説明

マルチプロセッサシステム及びメモリアクセス制御方法

【課題】プロセッサエレメントごとにアクセス可能なメモリ領域を設定できるようにすること。
【解決手段】マルチプロセッサシステムは、共有バスを介して互いに接続された複数のプロセッサノードを備え、当該複数のプロセッサノードは、それぞれ、プロセッサエレメントと、当該プロセッサエレメントによる物理メモリに対するアクセスを制御するメモリ管理ユニットとを備えている。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はマルチプロセッサシステム及びメモリアクセス制御方法に関し、特に、メモリ保護機構を有するマルチプロセッサシステム及びメモリアクセス制御方法に関する。
【背景技術】
【0002】
非特許文献1に、メモリ保護機能の一例が記載されている。非特許文献1の図6−1を参照すると、このプロセッサはページテーブルを利用したメモリ保護機構を有する。
【0003】
非特許文献1に記載されたメモリ保護機能においては、あるプロセッサエレメントがメモリアクセスを行うとき、アクセスする仮想アドレスに対するページテーブルが存在するか否かを判定する。存在する場合には、そのページテーブルエントリに指定されているアクセスモード(読み込み、書き込み、動作モード)を満たしているか否かを判定し、満たしているときにはアクセスが許可され、違反しているときには例外(ページフォルト)を発生してプロセッサエレメントに通知する。
【0004】
なお、特許文献1において、マルチコアプロセッサを備えた複数のマイコン間でメモリを共有させながらプロセッサコア毎にその共有メモリへのアクセスを管理する情報処理システムが記載れている。また、特許文献2において、複数のプロセッサからアクセスされる共有メモリのアドレスをロックする方法が記載されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2008−225906号公報
【特許文献2】特開平09−231124号公報
【非特許文献】
【0006】
【非特許文献1】インテル「IA-32インテルアーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル 下巻:システム・プログラミング・ガイド」p.4−2〜4−4
【発明の概要】
【発明が解決しようとする課題】
【0007】
以下の分析は、本発明者によってなされたものである。非特許文献1に記載されたメモリ保護機能を有するプロセッサを、共有メモリ型マルチプロセッサシステムとして動作させた場合には、各プロセッサエレメントがページテーブルを共有しており、あるプロセッサエレメントが他のプロセッサエレメントで参照しているメモリ領域を破壊するおそれがある。ページテーブルエントリに、対応する領域にアクセス可能なプロセッサエレメントを指定することができないからである。
【0008】
また、共有メモリ型マルチプロセッサとして動作させる場合、動作モードによる保護の効果がないという問題がある。ページテーブルエントリに対応する領域にアクセス可能なプロセッサエレメントを指定することができないからである。
【0009】
そこで、プロセッサエレメントごとにアクセス可能なメモリ領域を設定できるようにすることが課題となる。本発明の目的は、かかる課題を解決するマルチプロセッサシステム及びメモリアクセス制御方法を提供することにある。
【課題を解決するための手段】
【0010】
本発明の第1の視点に係るマルチプロセッサシステムは、
共有バスを介して互いに接続された複数のプロセッサノードを備え、
前記複数のプロセッサノードは、それぞれ、
プロセッサエレメントと、
前記プロセッサエレメントによる物理メモリに対するアクセスを制御するメモリ管理ユニットとを備えている。
【0011】
本発明の第2の視点に係るメモリアクセス制御方法は、
共有バスを介して互いに接続された複数のプロセッサノードを有するマルチプロセッサシステムの各プロセッサノードに設けられたプロセッサエレメントが、物理メモリにアクセスする工程と、
前記プロセッサエレメントを含むプロセッサノードに設けられたメモリ管理ユニットが、前記プロセッサエレメントによる前記物理メモリに対するアクセスを制御する工程とを含む。
【発明の効果】
【0012】
本発明のマルチプロセッサシステム及びメモリアクセス制御方法によると、プロセッサエレメントごとにアクセス可能なメモリ領域を設定することができる。
【図面の簡単な説明】
【0013】
【図1】本発明の第1の実施形態に係るマルチプロセッサシステムの構成を示すブロック図である。
【図2】本発明の第1の実施形態に係るマルチプロセッサシステムにおけるページテーブルエントリのフォーマットを示す図である。
【図3】本発明の第1の実施形態に係るマルチプロセッサシステムの動作を示すフローチャートである。
【図4】本発明の第2の実施形態に係るマルチプロセッサシステムの構成を示すブロック図である。
【図5】本発明の第2の実施形態に係るマルチプロセッサシステムにおけるページテーブルエントリのフォーマットを示す図である。
【図6】本発明の第2の実施形態に係るマルチプロセッサシステムの動作を示すフローチャートである。
【図7】本発明の実施例におけるマルチプロセッサシステムの構成を示すブロック図である。
【図8】本発明の実施例におけるページテーブルエントリのフォーマットを示す図である。
【発明を実施するための形態】
【0014】
第1の展開形態のマルチプロセッサシステムは、上記第1の視点に係るマルチプロセッサシステムであることが好ましい。
【0015】
第2の展開形態のマルチプロセッサシステムは、
前記複数のプロセッサノードが、それぞれ前記物理メモリに対してアクセスを許されたプロセッサエレメントを識別するための識別子を含むページテーブルエントリを格納したページテーブルをさらに備え、
前記メモリ管理ユニットが、前記ページテーブルエントリを参照して、アクセス元のプロセッサエレメントの識別子と前記ページテーブルエントリに含まれる識別子とが一致するか否かを判定するようにしてもよい。
【0016】
第3の展開形態のマルチプロセッサシステムは、
前記複数のプロセッサノードが、それぞれ前記物理メモリに対する各プロセッサエレメントによるアクセスの許否を示すフラグを含むページテーブルエントリを格納したページテーブルをさらに備え、
前記メモリ管理ユニットが、前記ページテーブルエントリに格納されたアクセス元のプロセッサエレメントに対するフラグを参照して、該プロセッサエレメントによる物理メモリに対するアクセスが許されているか否かを判定するようにしてもよい。
【0017】
第4の展開形態のマルチプロセッサシステムは、
前記メモリ管理ユニットが、前記プロセッサエレメントによる前記物理メモリに対するアクセスが許されていない場合には、前記プロセッサエレメントにメモリアクセス違反を通知することが好ましい。
【0018】
第5の展開形態のマルチプロセッサシステムは、
前記ページテーブルが、前記ページテーブルエントリを仮想アドレスごとに保持し、
前記メモリメモリ管理ユニットが、プロセッサエレメントによる仮想アドレスに基づくメモリアクセスに応じて、前記ページテーブルに格納された該仮想アドレスに対応するページテーブルエントリを参照することが好ましい。
【0019】
第6の展開形態のメモリアクセス制御方法は、上記第2の視点に係るメモリアクセス制御方法であることが好ましい。
【0020】
第7の展開形態のメモリアクセス制御方法は、
前記メモリ管理ユニットが、前記物理メモリに対してアクセスを許されたプロセッサエレメントを識別するための識別子を含むページテーブルを参照して、アクセス元のプロセッサエレメントの識別子と前記ページテーブルに格納された識別子とが一致するか否かを判定する工程をさらに含んでいてもよい。
【0021】
第8の展開形態のメモリアクセス制御方法は、
前記メモリ管理ユニットが、前記物理メモリに対する各プロセッサエレメントによるアクセスの許否を示すフラグを含むページテーブルを参照して、アクセス元のプロセッサエレメントによる物理メモリに対するアクセスが許されているか否かを判定する工程をさらに含んでいてもよい。
【0022】
第9の展開形態のメモリアクセス制御方法は、
前記メモリ管理ユニットが、前記プロセッサエレメントによる前記物理メモリに対するアクセスが許されていない場合には、前記プロセッサエレメントにメモリアクセス違反を通知する工程をさらに含むことが好ましい。
【0023】
第10の展開形態のメモリアクセス制御方法は、
前記ページテーブルが、前記ページテーブルエントリを仮想アドレスごとに保持する工程と、
前記プロセッサエレメントが、仮想アドレスに基づいて前記物理メモリにアクセスする工程と、
前記メモリメモリ管理ユニットが、前記ページテーブルに格納された前記仮想アドレスに対応するページテーブルエントリを参照する工程とをさらに含むことが好ましい。
【0024】
(実施形態1)
本発明の第1の実施形態に係るマルチプロセッサシステムについて、図面を参照して詳細に説明する。図1は、本実施形態に係るマルチプロセッサシステムの構成を示すブロック図である。図2は、本実施形態に係るマルチプロセッサシステムにおけるページテーブルエントリのフォーマットを示す図である。
【0025】
図1を参照すると、本実施形態のマルチプロセッサシステムは、プログラム制御により動作するプロセッサエレメント11、21と、メモリ管理ユニット12、22と、ページテーブル13、23と、物理メモリ30を備えている。図1、2を参照すると、ページテーブル13、23は、ページテーブルエントリ40を複数個含む。ページテーブルエントリ40は、物理アドレス41、アクセスタイプ42、アクセス可能プロセッサエレメント識別子43を含む。これらの各部は、それぞれ次のように動作する。
【0026】
プロセッサエレメント11は、メモリ管理ユニット12を経由して物理メモリ30にアクセスする。プロセッサエレメント21も、同様にメモリ管理ユニット22を経由して物理メモリ30にアクセスする。
【0027】
メモリ管理ユニット12は、プロセッサエレメント11からの仮想アドレスによるメモリアクセスに応じてページテーブル13内の仮想アドレスに対応するページテーブルエントリを検索し、アクセスタイプ42及びアクセス可能プロセッサエレメント識別子43からアクセスが許可されているか否かを判定し、問題なければ物理メモリ30に物理アドレス41でアクセスする。アクセスが許可されていなければプロセッサエレメント11に通知する。メモリ管理ユニット22も、同様に動作する。
【0028】
物理アドレス41は、対応する仮想アドレスに対して割り当てられた物理メモリ30の領域を示す。
【0029】
アクセスタイプ42は、メモリアクセスを発行したプロセッサエレメントのアクセスを判定するために用いる。アクセスタイプ42は、具体的には、「読み込み」、「書き込み」のようなアクセス種別と、「ユーザーモード」、「カーネルモード」、「スーパーバイザーモード」のような動作モードを含む。
【0030】
アクセス可能プロセッサエレメント識別子43は、プロセッサエレメントを識別する識別子である。
【0031】
プロセッサエレメントとメモリ管理ユニットから成る対(例えば、対(11、12)、対(21、22))は、物理メモリ30に複数接続することができる。
【0032】
図3は、本実施形態に係るマルチプロセッサシステムの動作を示すフローチャートである。図1及び図3を参照して、本実施形態に係るマルチプロセッサ全体の動作について詳細に説明する。
【0033】
まず、プロセッサエレメントPEは、仮想アドレスVa、アクセス種別At(「読み込み」、「書き込み」)、動作モードM(「ユーザーモード」、「カーネルモード」、「スーパーバイザーモード」)でメモリをアクセスする(ステップS11)。次に、メモリ管理ユニットは、仮想アドレスVaに対応するページテーブルエントリPTEをページテーブルから検索する(ステップS12)。
【0034】
対応するPTEが存在しない場合(ステップS13のNo)、PEにアクセス違反を通知する(ステップS17)。対応するPTEが存在する場合(ステップS13のYes)、PEのアクセス種別At、動作モードMがPTEのアクセスタイプと一致しているか否かを判定する(ステップS14)。
【0035】
一致しない場合(ステップS14のNo)、PEにアクセス違反を通知する(ステップS17)。一致する場合(ステップS14のYes)、アクセス元PEがPTEに記述されているアクセス可能プロセッサエレメント識別子とアクセス元PEと一致するか否かを判定する(ステップS15)。
【0036】
一致しない場合(ステップS15のNo)、PEにアクセス違反(ページフォルト)を通知する(ステップS17)。一致する場合(ステップS15のYes)、PTEに指定されている物理アドレスで物理メモリ30にアクセスする(ステップS16)。
【0037】
本実施形態のマルチプロセッサシステムによると、ページテーブルエントリにアクセス可能なプロセッサエレメント識別子が記述されているため、プロセッサエレメントによるページ(メモリ領域)のアクセス制御ができる。また、本実施形態のマルチプロセッサシステムによると、複数のプロセッサエレメントが、物理メモリに対するアクセスの可否を同時に判定することができる。メモリ管理ユニットが、プロセッサエレメントごとに設けられているからである。
【0038】
さらに、本実施形態のマルチプロセッサシステムによると、システムの安全性を高めることができる。不用意なメモリ破壊を検出できることで、システムの動作を安全にできるからである。
【0039】
また、本実施形態のマルチプロセッサシステムによると、プログラム開発の効率を高めることができる。プログラムを開発する際、他のプロセッサエレメントのメモリ破壊を回避するようなソフトウェア構成を採用しなくて良いため、ソフトウェア構成が簡単になるからである。
【0040】
(実施形態2)
本発明の第2の実施形態に係るマルチプロセッサシステムについて、図面を参照して詳細に説明する。図4は、本実施形態に係るマルチプロセッサシステムの構成を示すブロック図である。図5は、本実施形態に係るマルチプロセッサシステムにおけるページテーブルエントリのフォーマットを示す図である。
【0041】
図4を参照すると、本実施形態に係るマルチプロセッサシステムは、プログラム制御により動作するプロセッサエレメント51、61と、メモリ管理ユニット52、62と、ページテーブル53、63と、物理メモリ70を備えている。図4、5を参照すると、ページテーブル53、63はページテーブルエントリ80を複数個含む。ページテーブルエントリ80は、物理アドレス81、アクセスタイプ82、アクセス可能プロセッサエレメントビットマップ83を含む。これらの各部は、それぞれ次のように動作する。
【0042】
プロセッサエレメント51は、メモリ管理ユニット52を経由して物理メモリ70にアクセスする。プロセッサエレメント61も同様にメモリ管理ユニット62を経由して物理メモリ70にアクセスする。
【0043】
メモリ管理ユニット52は、プロセッサエレメント51からの仮想アドレスによるメモリアクセスに応じてページテーブル53内の仮想アドレスに対応するページテーブルエントリを検索し、アクセスタイプ82及びアクセス可能プロセッサエレメントビットマップ83からアクセスが許可されているか否かを判定し、問題なければ物理メモリ70に物理アドレス81でアクセスする。アクセスが許可されていなければ、プロセッサエレメント51に通知する。メモリ管理ユニット62も、同様に動作する。
【0044】
物理アドレス81は、対応する仮想アドレスに対して割り当てられた物理メモリ70の領域を示す。
【0045】
アクセスタイプ82は、メモリアクセスを発行したプロセッサエレメントのアクセスを判定するために用いる。アクセスタイプ82は、具体的には、「読み込み」、「書き込み」のようなアクセス種別と、「ユーザーモード」、「カーネルモード」、「スーパーバイザーモード」のような動作モードを含む。
【0046】
アクセス可能プロセッサエレメントビットマップ83は、本PTEで指定したページ(メモリ領域)にアクセスできるプロセッサエレメントを複数指定することができる。具体的には、ビットマップ上の最下位ビットから0、1、2、…と1ビットずつ対応するプロセッサエレメントを割り当て、アクセス可能なプロセッサエレメントを1で表現し、アクセスできないプロセッサエレメントを0で表現する(あるいは、アクセス可能を0で表現し、アクセス不可能を1で表現してもよい)。
【0047】
プロセッサエレメントとメモリ管理ユニットの対(例えば、対(51、52)、対(61、62))は、物理メモリ70に複数接続することができる。
【0048】
図6は、本実施形態に係るマルチプロセッサシステムの動作を示すフローチャートである。図4及び図6を参照して、本実施形態のマルチプロセッサシステム全体の動作について詳細に説明する。
【0049】
まず、プロセッサエレメントPEは、仮想アドレスVa、アクセス種別At(「読み込み」、「書き込み」)、動作モードM(「ユーザーモード」、「カーネルモード」、「スーパーバイザーモード」)でメモリをアクセスする(ステップS21)。次に、メモリ管理ユニットは、仮想アドレスVaに対応するページテーブルエントリPTEをページテーブルから検索する(ステップS22)。
【0050】
対応するPTEが存在しない場合(ステップS23のNo)、PEにアクセス違反を通知する(ステップS27)。対応するPTEが存在する場合(ステップS23のYes)、PEのアクセス種別At、動作モードMがPTEのアクセスタイプと一致しているか否かを判定する(ステップS24)。
【0051】
一致しない場合(ステップS24のNo)、PEにアクセス違反(ページフォルト)を通知する(ステップS27)。一致する場合(ステップS24のYes)、アクセス元PEがPTEに記述されているアクセス可能プロセッサエレメントビットマップに含まれているか否かを判定する(ステップS25)。
【0052】
含まれていない場合(ステップS25のNo)、PEにアクセス違反を通知する(ステップS27)。含まれている場合(ステップS25のYes)、PTEに指定されている物理アドレスで物理メモリ70にアクセスする(ステップS26)。
【0053】
本実施形態に係るマルチプロセッサシステムによると、ページテーブルエントリにアクセス可能なプロセッサエレメント識別子を複数記述することができるため、複数のプロセッサエレメントによるページ(メモリ領域)のアクセス制御ができ、第1の実施形態よりも複雑なアクセス制御が可能となる。
【実施例】
【0054】
次に、具体的な実施例に基づいて、本発明の第2の実施形態のマルチプロセッサシステムの動作を説明する。図7は、本実施例におけるマルチプロセッサシステムの構成を示すブロック図である。
【0055】
図7を参照すると、マルチプロセッサシステムにおいて、プロセッサエレメントPE1、PE2、PE3、…は、それぞれメモリ管理ユニットMMU1、MMU2、MMU3、…を介して共有バスに接続されている。共有バスには物理メモリが接続されている。MMU1、MMU2、MMU3、…にはそれぞれページテーブルPT1、PT2、PT3、…が接続されており、ページテーブルにはページテーブルエントリPTEが配列として格納されている。図8は、PTEのフォーマットを一例として示す。
【0056】
仮想アドレスの上位nビットを添え字としてこの配列にアクセスし、目的のPTEを検索する。PTEには物理メモリのページ(メモリ領域)を示すページ番号PGが格納されており、アクセス種別Rに1ビット、動作モードMDに2ビット、アクセス可能プロセッサエレメントビットマップBにnビット(nは共有バスに接続されるプロセッサエレメントの最大個数)が、それぞれ割り当てられている。アクセス種別Rが0のときには読み込み専用ページ(メモリ領域)を示し、1のときには読み込みと書き込み可能を示す。動作モードMDが00のときにはすべてのモードで、01のときにはカーネルモード及びスーパーバイザーモードで、10のときにはスーパーバイザーモードでアクセス可能であることを示す。アクセス可能プロセッサエレメントビットマップは、最下位ビットからPE1、PE2、…が対応し、アクセス可能なときには1、アクセス不可能なときには0が割り当てられる。
【0057】
PEが仮想アドレスVaでメモリをアクセスすると、MMUがVaからページテーブル(配列)の添え字を計算し、目的のPTEを検索する。そして、アクセス種別、動作モードが、PTEに記述している条件を満たしているか否かを判定し、さらに、アクセス元PEがアクセス可能プロセッサエレメントビットマップで1が指定されているか否かを判定し、物理メモリにアクセスする。条件を満たしていない場合には例外(ページフォルト)を発生させて、PEに通知する。
【産業上の利用可能性】
【0058】
本発明に係るマルチプロセッサシステムは、共有メモリ型マルチプロセッサで動作するオペレーティングシステムの開発といった用途に適用することができる。また、本発明に係るマルチプロセッサシステムは、並列処理プログラムにおけるメモリ破壊による誤動作の検出・防止機能といった用途にも適用することができる。
【0059】
以上の記載は実施形態に基づいて行ったが、本発明は、上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更を加えることができる。
【符号の説明】
【0060】
11、21、51、61 プロセッサエレメント(PE)
12、22、52、62 メモリ管理ユニット(MMU)
13、23、53、63 ページテーブル(PT)
30、70 物理メモリ
40、80 ページテーブルエントリ
41、81 物理アドレス
42、82 アクセスタイプ
43 アクセス可能プロセッサエレメント識別子
83 アクセス可能プロセッサエレメントビットマップ

【特許請求の範囲】
【請求項1】
共有バスを介して互いに接続された複数のプロセッサノードを備え、
前記複数のプロセッサノードは、それぞれ、
プロセッサエレメントと、
前記プロセッサエレメントによる物理メモリに対するアクセスを制御するメモリ管理ユニットとを備えていることを特徴とするマルチプロセッサシステム。
【請求項2】
前記複数のプロセッサノードは、それぞれ前記物理メモリに対してアクセスを許されたプロセッサエレメントを識別するための識別子を含むページテーブルエントリを格納したページテーブルをさらに備え、
前記メモリ管理ユニットは、前記ページテーブルエントリを参照して、アクセス元のプロセッサエレメントの識別子と前記ページテーブルエントリに含まれる識別子とが一致するか否かを判定することを特徴とする、請求項1に記載のマルチプロセッサシステム。
【請求項3】
前記複数のプロセッサノードは、それぞれ前記物理メモリに対する各プロセッサエレメントによるアクセスの許否を示すフラグを含むページテーブルエントリを格納したページテーブルをさらに備え、
前記メモリ管理ユニットは、前記ページテーブルエントリに格納されたアクセス元のプロセッサエレメントに対するフラグを参照して、該プロセッサエレメントによる物理メモリに対するアクセスが許されているか否かを判定することを特徴とする、請求項2に記載のマルチプロセッサシステム。
【請求項4】
前記メモリ管理ユニットは、前記プロセッサエレメントによる前記物理メモリに対するアクセスが許されていない場合には、前記プロセッサエレメントにメモリアクセス違反を通知することを特徴とする、請求項2又は3に記載のマルチプロセッサシステム。
【請求項5】
前記ページテーブルは、前記ページテーブルエントリを仮想アドレスごとに保持し、
前記メモリメモリ管理ユニットは、プロセッサエレメントによる仮想アドレスに基づくメモリアクセスに応じて、前記ページテーブルに格納された該仮想アドレスに対応するページテーブルエントリを参照することを特徴とする、請求項2乃至4のいずれか1項に記載のマルチプロセッサシステム。
【請求項6】
共有バスを介して互いに接続された複数のプロセッサノードを有するマルチプロセッサシステムの各プロセッサノードに設けられたプロセッサエレメントが、物理メモリにアクセスする工程と、
前記プロセッサエレメントを含むプロセッサノードに設けられたメモリ管理ユニットが、前記プロセッサエレメントによる前記物理メモリに対するアクセスを制御する工程とを含むことを特徴とするメモリアクセス制御方法。
【請求項7】
前記メモリ管理ユニットが、前記物理メモリに対してアクセスを許されたプロセッサエレメントを識別するための識別子を含むページテーブルを参照して、アクセス元のプロセッサエレメントの識別子と前記ページテーブルに格納された識別子とが一致するか否かを判定する工程をさらに含むことを特徴とする、請求項6に記載のメモリアクセス制御方法。
【請求項8】
前記メモリ管理ユニットが、前記物理メモリに対する各プロセッサエレメントによるアクセスの許否を示すフラグを含むページテーブルを参照して、アクセス元のプロセッサエレメントによる物理メモリに対するアクセスが許されているか否かを判定する工程をさらに含むことを特徴とする、請求項6に記載のメモリアクセス制御方法。
【請求項9】
前記メモリ管理ユニットが、前記プロセッサエレメントによる前記物理メモリに対するアクセスが許されていない場合には、前記プロセッサエレメントにメモリアクセス違反を通知する工程をさらに含むことを特徴とする、請求項7又は8に記載のメモリアクセス制御方法。
【請求項10】
前記ページテーブルが、前記ページテーブルエントリを仮想アドレスごとに保持する工程と、
前記プロセッサエレメントが、仮想アドレスに基づいて前記物理メモリにアクセスする工程と、
前記メモリメモリ管理ユニットが、前記ページテーブルに格納された前記仮想アドレスに対応するページテーブルエントリを参照する工程とをさらに含むことを特徴とする、請求項7乃至9のいずれか1項に記載のメモリアクセス制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2011−70528(P2011−70528A)
【公開日】平成23年4月7日(2011.4.7)
【国際特許分類】
【出願番号】特願2009−222583(P2009−222583)
【出願日】平成21年9月28日(2009.9.28)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】