(57)【特許請求の範囲】
【請求項１】
半導体チップ内に、演算プロセッサと、データ読書き可能な内蔵メモリと、当該半導体チップ外部のローカルバスとの間でデータの入出力を行う外部バスインタフェースとを有して成る複数のプロセッサが、互いにデータの共有・交換を行うマルチプロセッサシステムにおいて、
前記複数のプロセッサの内部に、前記データの共有・交換に使用する記憶容量を有して前記内蔵メモリ内に配備された仮想共有メモリと、前記データの共有・交換に使用される共通バスインタフェースと、前記演算プロセッサとは独立に指定された前記仮想共有メモリの記憶領域から他の記憶領域へ複写動作を行うＤＭＡプロセッサとを備え、
前記複数のプロセッサの外部に、前記共通バスインタフェース間を接続して前記データの共有・交換に使用される共通バスと、
前記ＤＭＡプロセッサを起動するトリガ信号及び前記仮想共有メモリに対するデータの書込み及び読出しの動作の形式を指定する指定信号を発生する発生手段と、この発生手段からのトリガ信号及び指定信号を各プロセッサのＤＭＡプロセッサに伝達する伝達バスとを備え、
前記ＤＭＡプロセッサは、前記トリガ信号及び前記指定信号に応じて前記仮想共有メモリからのデータの書込及び読出の動作を行う
ことを特徴とするマルチプロセッサシステム。
【請求項２】
前記仮想共有メモリは、前記複数のプロセッサ毎の書込み用の領域に区分けされ、前記演算プロセッサは自プロセッサ内の仮想共有メモリの自プロセッサ用書込み領域へ他プロセッサに通知したいデータを書込み、当該仮想共有メモリの自プロセッサ用書込み領域以外の領域から他のプロセッサが通知したデータを読み出すことで、データの共有・交換を行う
ことを特徴とする請求項１に記載のマルチプロセッサシステム。
【請求項３】
前記発生手段は、前記トリガ信号として、前記仮想共有メモリに書込まれた他プロセッサに通知したいデータを前記共通バスヘ出力するタイミング用の第１のトリガ信号と、前記共通バスで伝達される他プロセッサから通知されたデータを前記共通バスから読込むタイミング用の第２のトリガ信号とを、前記第１のトリガ信号が前記第２のトリガ信号よりも早いタイミングで生成する
ことを特徴とする請求項１又は２に記載のマルチプロセッサシステム。
【請求項４】
前記仮想共有メモリを前記内蔵メモリの内部から出して前記プロセッサ内に備え、前記発生手段は、前記指定信号として前記仮想共有メモリに対する上位アドレスの指定を行う第１の指定信号と、下位アドレスの指定を行う第２の指定信号とを生成し、前記ＤＭＡプロセッサは、前記第１及び第２の指定信号に応じて前記仮想共有メモリに対する上位及び下位アドレスの指定を行ってデータの書込み及び読出しの動作を行う
ことを特徴とする請求項１又は２に記載のマルチプロセッサシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器や電子システムに組み込まれるマルチプロセッサシステムに関する。
【背景技術】
【０００２】
図１０は、従来のマルチプロセッサシステムの構成を示すブロック図である。この図１０に示すマルチプロセッサシステムは、非特許文献１でも略同様の構成例が紹介されている組込み用マルチプロセッサシステムの典型的な構成例である。
図１０に示すマルチプロセッサシステムは、各々が半導体チップにより形成されたｎ個のプロセッサ１Ａ〜１Ｎと、これらプロセッサ１Ａ〜１Ｎの各内部に、半導体チップ内のＣＰＵ（中央処理装置）である演算プロセッサ１１Ａ〜１１Ｎと、これら演算プロセッサ１１Ａ〜１１Ｎに接続された読書き可能な内蔵メモリ１２Ａ〜１２Ｎと、外部バスＩＦ１３Ａ〜１３Ｎとを有し、また、各外部バスＩＦ（インタフェース）１３Ａ〜１３Ｎにローカルバス４Ａ〜４Ｎを介して接続されたイネーブル付バスドライバ４１Ａ〜４１Ｎ、Ｅ2ＰＲＯＭ(Electrically Erasable Programmable Read-Only Memory)等のローカルメモリ４２Ａ〜４２Ｎ及びローカルＩ／Ｏ(Input／Output)４３Ａ〜４３Ｎと、更に、イネーブル付バスドライバ４１Ａ〜４１Ｎから共通バス９を介して接続された共有メモリ２と、各外部バスＩＦ１３Ａ〜１３Ｎに接続されたアクセス調停装置３とを備えて構成されている。
【０００３】
なお、以下の説明において各構成要素の数字符号の後ろに付したＡ〜Ｎ等のサフィックスは省略する場合もある。
更に説明すると、外部バスＩＦ１３Ａ〜１３Ｎは、各プロセッサ１Ａ〜１Ｎ、即ち半導体チップの外部のバスへのアクセス制御を行う半導体チップ内のインタフェースコントローラである。共通バス９は、各プロセッサ１Ａ〜１Ｎが共有メモリ２へアクセスする時に使用する共通のバスである。
【０００４】
アクセス調停装置３は、複数のアクセス要求があった場合に、１つのアクセスのみ選択して許可する調停を行う。このアクセス調停装置３と各プロセッサ１Ａ〜１Ｎ間のアクセス要求信号５Ａ〜５Ｎは、アクセス許可を要求する信号であり、アクセス許可信号６Ａ〜６Ｎは、アクセス許可の要求信号５Ａ〜５Ｎに対するアクセスを許可する信号である。
このマルチプロセッサシステムでは、ｎ個のプロセッサ１Ａ〜１Ｎで共通に使用する共有メモリ２を備え、各プロセッサ１Ａ〜１Ｎによって共有メモリ２の予め約束されたアドレスに書込み又は読出しを行うことで、データの共有と交換を行っている。
【０００５】
共有メモリ２及び共通バス９は、各プロセッサ１Ａ〜１Ｎで同時に使用することが出来ないため、アクセス調停装置３が設けられている。共有メモリ２へアクセスしたいプロセッサ（例えば１Ａ）は、第１ステップとしてアクセス要求信号５Ａを出力し、第２ステップでアクセス調停装置３からアクセス許可信号６Ａを受け取ったら、第３ステップでイネーブル付バスドライバ４１Ａを開き、共通バス９を介して共有メモリ２への読書きを行う。
【０００６】
プロセッサ１Ａ〜１Ｎがローカルに使用するローカルメモリ４２Ａ〜４２Ｎ又はローカルＩ／Ｏ４３Ａ〜４３Ｎにアクセスする際は、イネーブル付バスドライバ４１Ａ〜４１Ｎは閉じており、共通バス９へは影響を与えない。
各プロセッサ１Ａ〜１Ｎで同時に２つ以上のアクセス要求が重なった場合には、アクセス調停装置３が決められた規則に従いアクセス要求の内の１つを選択して、それに対するアクセス許可信号を返答するようになっており、共通バス９と共有メモリ２を複数のプロセッサが同時に使用しないようになっている。
【非特許文献１】「マイクロプロセッサ技術：昭和５４年５月１０日初版発行、編集兼発行者・電気学会、発売元・オーム社」の「４．３マルチプロセッサシステム／４．３．３具体例／（７）プロセス制御システム」
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、従来のマルチプロセッサシステムにおいて、共有メモリ２は、各プロセッサ１Ａ〜１Ｎの半導体チップ外部に設置されるので、演算プロセッサ１１Ａ〜１１Ｎの動作クロックの高速化と共に、同じ半導体チップ上にある内蔵メモリ１２Ａ〜１２Ｎに対する読込み・書込み動作に要する時間に対して、外部バスＩＦ１３Ａ〜１３Ｎから共通バス９を介した共有メモリ２等の半導体チップ外部に対する読込み・書込み動作に要する時間が相対的に長くかかるようになってきた。
【０００８】
これに加え、外部バスＩＦ１３Ａ〜１３Ｎにはローカルバス４Ａ〜４Ｎを介してローカルメモリ４２Ａ〜４２Ｎ及びローカルＩ／Ｏ４３Ａ〜４３Ｎが接続されているので、ローカルメモリ４２Ａ〜４２Ｎ又はローカルＩ／Ｏ４３Ａ〜４３Ｎにもアクセスする場合、このアクセスが共通バス９を介した共有メモリ２へのアクセスと時分割で行われることになる。この場合、共通バス９を介した共有メモリ２等の半導体チップ外部に対する読込み・書込み動作に要する時間が更に長くかかることになる。
【０００９】
汎用的な演算プロセッサにおいては、特に読込み動作について、演算プロセッサ１１Ａ〜１１Ｎに読込むデータが何時使用されるかはプログラム次第であって不明である。このため、読込みデータが演算プロセッサ１１Ａ〜１１Ｎの内部レジスタに格納されるまで、プログラム処理が停止する。
これらの理由により、マルチプロセッサシステムにて必須となる共有メモリ２への読み書きが、プログラム処理効率を低下させるという問題がある。
本発明は、このような課題に鑑みてなされたものであり、共有メモリへの読書きに起因するプログラム処理効率の低下を防止することができるマルチプロセッサシステムを提供することを目的としている。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、本発明の請求項１によるマルチプロセッサシステムは、半導体チップ内に、演算プロセッサと、データ読書き可能な内蔵メモリと、当該半導体チップ外部のローカルバスとの間でデータの入出力を行う外部バスインタフェースとを有して成る複数のプロセッサが、互いにデータの共有・交換を行うマルチプロセッサシステムにおいて、前記複数のプロセッサの内部に、前記データの共有・交換に使用する記憶容量を有して前記内蔵メモリ内に配備された仮想共有メモリと、前記データの共有・交換に使用される共通バスインタフェースと、前記演算プロセッサとは独立に指定された前記仮想共有メモリの記憶領域から他の記憶領域へ複写動作を行うＤＭＡプロセッサとを備え、前記複数のプロセッサの外部に、前記共通バスインタフェース間を接続して前記データの共有・交換に使用される共通バスと、前記ＤＭＡプロセッサを起動するトリガ信号及び前記仮想共有メモリに対するデータの書込み及び読出しの動作の形式を指定する指定信号を発生する発生手段と、この発生手段からのトリガ信号及び指定信号を各プロセッサのＤＭＡプロセッサに伝達する伝達バスとを備え、前記ＤＭＡプロセッサは、前記トリガ信号及び前記指定信号に応じて前記仮想共有メモリからのデータの書込及び読出の動作を行うことを特徴とする。
【００１１】
この構成によれば、各プロセッサの演算プロセッサは、データの共有・交換を行うために、従来技術のような半導体チップ外部に共有メモリを設け直接アクセスする必要はなく、同じ半導体チップ上にある内蔵メモリ内の仮想共有メモリへの書込み・読出しを行えば良い。また、外部バスインタフェースを介してローカルバスとの間でデータの入出力を行う動作と、共通バスインタフェースを介して共通バスとの間でデータの共有・交換を行う動作とを独立して行うことができる。これによって、また、従来のように共通バスへのアクセスの際にローカルバスへのアクセスと時分割で実行されることもなくなり、本発明では共通バスへのアクセスと、ローカルバスへのアクセスとを並列に行うことができる。
また、上記構成によれば、各プロセッサは、予め定められたデータの書込み及び読出しの動作の形式に従って、仮想共有メモリに対する書込み・読出しを行うことができる。
【００１２】
また、本発明の請求項２によるマルチプロセッサシステムは、請求項１において、前記仮想共有メモリは、前記複数のプロセッサ毎の書込み用の領域に区分けされ、前記演算プロセッサは自プロセッサ内の仮想共有メモリの自プロセッサ用書込み領域へ他プロセッサに通知したいデータを書込み、当該仮想共有メモリの自プロセッサ用書込み領域以外の領域から他のプロセッサが通知したデータを読み出すことで、データの共有・交換を行うことを特徴とする。
【００１３】
この構成によれば、例えばプロセッサＡの演算プロセッサが、他のプロセッサＢ〜Ｎに通知したいデータを仮想共有メモリの領域Ａへ書込み、他のプロセッサＢ〜Ｎから通知されたデータを仮想共有メモリの領域Ｂ〜Ｎから読み出すことで、データの共有・交換を行う。他のプロセッサＢ〜Ｎでも同様のことを行う。このような動作によって、各プロセッサの演算プロセッサは、データの共有・交換を行うために半導体チップ外部の共有メモリに直接アクセスする必要はなく、同じ半導体チップ上にある内蔵メモリ内の仮想共有メモリへの書込み・読出しを行えば良い。
【００１５】
また、本発明の請求項３によるマルチプロセッサシステムは、請求項１又は２において、前記発生手段は、前記トリガ信号として、前記仮想共有メモリに書込まれた他プロセッサに通知したいデータを前記共通バスヘ出力するタイミング用の第１のトリガ信号と、前記共通バスで伝達される他プロセッサから通知されたデータを前記共通バスから読込むタイミング用の第２のトリガ信号とを、前記第１のトリガ信号が前記第２のトリガ信号よりも早いタイミングで生成することを特徴とする。
この構成によれば、第１のトリガ信号のタイミングで自プロセッサからデータを共通バスへ出力すると、この出力されたデータは、第２のトリガ信号のタイミングで他プロセッサにて読込まれるので、データを適正に交換することができる。
【００１６】
また、本発明の請求項４によるマルチプロセッサシステムは、請求項１又は２において、前記仮想共有メモリを前記内蔵メモリの外部から出して前記プロセッサ内に備え、前記発生手段は、前記指定信号として前記仮想共有メモリに対する上位アドレスの指定を行う第１の指定信号と、下位アドレスの指定を行う第２の指定信号とを生成し、前記ＤＭＡプロセッサは、前記第１及び第２の指定信号に応じて前記仮想共有メモリに対する上位及び下位アドレスの指定を行ってデータの書込み及び読出しの動作を行うことを特徴とする。
この構成によれば、演算プロセッサは、自プロセッサ内の仮想共有メモリの自領域へのデータ書込みと他領域からのデータの読出しで、他プロセッサとデータの共有・交換を行うことができる。
【発明の効果】
【００１７】
以上説明したように本発明によれば、共有メモリへの読書きに起因するプログラム処理効率の低下を防止することができるという効果がある。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施の形態を、図面を参照して説明する。但し、本明細書中の全図において相互に対応する部分には同一符号を付し、重複部分においては後述での説明を適時省略する。
（実施の形態）
図１は、本発明の実施の形態に係るマルチプロセッサシステムの構成を示すブロック図である。
図１に示すマルチプロセッサシステムが、図１０に示した従来のマルチプロセッサシステムと異なる構成点を説明する。
各プロセッサ１Ａ〜１Ｎに、バスへのアクセス用のインタフェース回路である共通バスＩＦ１５Ａ〜１５Ｎを設け、これら共通バスＩＦ１５Ａ〜１５Ｎに共通バス９２を接続した。更に、ＤＭＡプロセッサ１４Ａ〜１４Ｎを設け、共通バスＩＦ１５及びＤＭＡプロセッサ１４を、演算プロセッサ１１、内蔵メモリ１２及び外部バスＩＦ１３と共に内部バス１９Ａ〜１９Ｎで接続した。
【００１９】
また、内蔵メモリ１２Ａ〜１２Ｎは、各々が半導体チップによって形成される各プロセッサ１Ａ〜１Ｎの読書き可能なメモリであるが、この内部に、仮想共有メモリ１２１Ａ〜１２１Ｎと称する記憶領域（単に、領域とも称す）を設けた。
仮想共有メモリ１２１の容量は、図１０に示した共有メモリ２で実際にデータ共有を行うために使用される記憶容量と同じであり、記憶領域の割付けは、図２（ａ）に示すように、各プロセッサ１Ａ〜１Ｎの専用書込み領域Ａ〜Ｎが割付けられている。
【００２０】
図２（ｂ）に示すように、各仮想共有メモリ１２１Ａ〜１２１Ｎを代表する仮想共有メモリ１２１Ａにおいて、領域Ａは、自プロセッサ１Ａの演算プロセッサ１１Ａがデータを書込み、この書込まれたデータを、自プロセッサ１ＡのＤＭＡプロセッサ１４Ａが読み出して共通バス９２を介して他のプロセッサ１Ｂ〜１Ｎへ出力する領域である。
他の領域Ｂ〜Ｎは、自プロセッサ１ＡのＤＭＡプロセッサ１４Ａが共通バス９２を介して他のプロセッサ１Ｂ〜１Ｎからデータを読み込んで書込み、この書込まれたデータを自プロセッサ１Ａの演算プロセッサ１１Ａが読み出す領域である。
【００２１】
更に、全ての領域Ａ〜Ｎは、自プロセッサ１Ａの演算プロセッサ１１が書込まれたデータを読出し可能な領域となっている。
この他、各プロセッサ１Ａ〜１Ｎにトリガ信号伝達バス８を介して接続されたトリガ信号発生器７を設けた。トリガ信号発生器７は、ＤＭＡプロセッサ１４を起動するためのトリガ信号を発生する。トリガ信号伝達バス８は、トリガ信号発生器７から発生されたトリガ信号を伝達する。なお、トリガ信号伝達バス８は、複数の信号線で構成される場合もある。
【００２２】
トリガ信号発生器７からトリガ信号伝達バス８へは、各ＤＭＡプロセッサ１４Ａ〜１４Ｎが、共通バス９２ヘのデータの出力、又は、共通バス９２からのデータの読込みのタイミングを与えるトリガ信号８３１が発生されて伝達されるようになっている。
更に、トリガ信号発生器７からトリガ信号伝達バス８へは、図３及び図４に示すように、各ＤＭＡプロセッサ１４Ａ〜１４Ｎが、仮想共有メモリ１２１の指定される領域からデータを読み出して共通バス９２に出力するか、共通バス９２からデータを読込んで仮想共有メモリ１２１の指定される領域へ書込むかの動作を指定するタイプ指定信号８３２も発生されて伝達されるようになっている。
【００２３】
タイプ指定信号８３２は、図４に時系列で示す時刻ｔ１〜ｔ２間のトリガタイプＸと、時刻ｔ２〜ｔ３間のトリガタイプＸＸと、時刻ｔ２〜ｔ３間のトリガタイプＸＸＸとが、その順に一定周期で繰り返される。
また、（１）〜（５）で示すタイミング順のトリガ信号８３１のトリガによって、予め各ＤＭＡプロセッサ１４Ａ〜１４Ｎに設定された規則に従って各ＤＭＡプロセッサ１４Ａ〜１４Ｎが、仮想共有メモリ１２１のタイプ指定信号８３２で指定されるメモリ領域のオフセットアドレスからのデータを読出して共通バス９２へ出力するか、或いは、共通バス９２からデータを読み込んで仮想共有メモリ１２１のタイプ指定信号８３２で指定されるメモリ領域のオフセットアドレスヘの書込みを行う。
【００２４】
これによって、プロセッサ１Ａの仮想共有メモリ１２１Ａの自領域のデータは、他のプロセッサ１Ｂ〜１Ｎの仮想共有メモリ１２１Ｂ〜１２１Ｎのプロセッサ１Ａ用領域に複写される。同様に、プロセッサ１ｘ内の仮想共有メモリ１２１ｘの自領域のデータも、他のプロセッサの仮想共有メモリ１２１のプロセッサ１ｘ用領域に複写される。
【００２５】
演算プロセッサ１１の仮想共有メモリ１２１の自領域への書込み頻度が、タイプ指定信号８３２の「トリガタイプＸ→ＸＸ→ＸＸＸ」の一周期より長ければ、その書込みは他のプロセッサ内の仮想共有メモリ１２１へ複写される。よって、各プロセッサの演算プロセッサ１１Ａ〜１１Ｎは、データの共有・交換を行うために、従来技術のような半導体チップ外部に共有メモリ２を設け直接アクセスする必要はなく、同じ半導体チップ上にある内蔵メモリ内の仮想共有メモリ１２１Ａ〜１２１Ｎへの書込み・読出しを行えば良い。
また、従来のように、共通バス９２へのアクセスの際に、ローカルバス４Ａ〜４Ｎへのアクセスと時分割で実行されることもなくなる。本実施の形態の場合、共通バス９２へのアクセスと、ローカルバス４Ａ〜４Ｎへのアクセスとを並列に行うことができる。
【００２６】
以下、このような本実施の形態に基づく具体的な実施例を説明する。
（実施例１）
本実施例１のマルチプロセッサシステムの構成は、上記実施の形態で説明したマルチプロセッサシステムと同構成である。
本実施例１では、各ＤＭＡプロセッサ１４Ａ〜１４Ｎは、次に図３及び図４を参照して説明する設定が成されている。
ＤＭＡプロセッサ１４Ａは、トリガタイプＸの場合の（１）で示すタイミングのトリガ信号８３１の時は、時刻ｔ１〜ｔ２間のＳ１行に示すように、仮想共有メモリ１２１Ａの領域Ａのオフセットアドレス０のデータを読み出して共通バス９２へ出力する。（２）で示すタイミングのトリガ信号８３１の時は、仮想共有メモリ１２１Ａの領域Ａのオフセットアドレス１のデータを読み出して共通バス９２へ出力する。即ち、トリガ信号８３１のカウント数に従って読み出す仮想共有メモリ１２１Ａの領域Ａのオフセットアドレスをインクリメント或いはデクリメントするような設定が成されている。
【００２７】
また、ＤＭＡプロセッサ１４Ａは、トリガタイプＸＸの場合の（１）で示すタイミングのトリガ信号８３１の時は、時刻ｔ２〜ｔ３間のＳ１行に示すように、共通バス９２からデータを読込んで仮想共有メモリ１２１Ａの領域Ｂのオフセットアドレス０へ書込む。（２）で示すタイミングのトリガ信号８３１の時は、共通バス９２からデータを読込んで仮想共有メモリ１２１Ａの領域Ｂのオフセットアドレス１へ書込む。即ち、トリガ信号８３１のカウント数に従って書込む仮想共有メモリ１２１Ａの領域Ｂのオフセットアドレスをインクリメント或いはデクリメントするような設定が成されている。
更に、ＤＭＡプロセッサ１４Ａは、トリガタイプＸＸＸ等の場合も、時刻ｔ３〜ｔ４間のＳ１行に示すように、上記同様に、トリガ信号８３１のカウント数に従って、書込む仮想共有メモリ１２１Ａの領域Ｎのオフセットアドレスをインクリメント或いはデクリメントするような設定が成されている。
【００２８】
次に、ＤＭＡプロセッサ１４Ｂは、時刻ｔ１〜ｔ２間のＳ２行に示すように、トリガタイプＸの場合の（１）で示すタイミングのトリガ信号８３１の時は、共通バス９２からデータを読込んで仮想共有メモリ１２１Ｂの領域Ａのオフセットアドレス０へ書込む。（２）で示すタイミングのトリガ信号８３１の時は、共通バス９２からデータを読込んで仮想共有メモリ１２１Ｂの領域Ａのオフセットアドレス１へ書込む。即ち、トリガ信号８３１のカウント数に従って書込む仮想共有メモリ１２１Ａの領域Ｂのオフセットアドレスをインクリメント或いはデクリメントするような設定が成されている。
【００２９】
また、ＤＭＡプロセッサ１４Ｂは、トリガタイプＸＸの場合の（１）で示すタイミングのトリガ信号８３１の時は、時刻ｔ２〜ｔ３間のＳ２行に示すように、仮想共有メモリ１２１Ｂの領域Ｂのオフセットアドレス０のデータを読み出して共通バス９２へ出力する。（２）で示すタイミングのトリガ信号８３１の時は、仮想共有メモリ１２１Ｂの領域Ｂのオフセットアドレス１のデータを読み出して共通バス９２へ出力する。即ち、トリガ信号８３１のカウント数に従って読み出す仮想共有メモリ１２１Ｂの領域Ｂのオフセットアドレスをインクリメント或いはデクリメントするような設定が成されている。
【００３０】
更に、ＤＭＡプロセッサ１４Ｂは、トリガタイプＸＸＸ等の場合も、時刻ｔ３〜ｔ４間のＳ２行に示すように、上記同様に、トリガ信号８３１のカウント数に従って、書込む仮想共有メモリ１２１Ｂの領域Ｎのオフセットアドレスをインクリメント或いはデクリメントするような設定が成されている。
更には、ＤＭＡプロセッサ１４Ｎにも、時刻ｔ１〜ｔ４間のＳｎ行に示すように、上記ＤＭＡプロセッサ１４Ａ，１４Ｂと同様な動作を行う設定が成されている。
【００３１】
このような設定動作によって、プロセッサ１Ａの演算プロセッサ１１Ａは、自プロセッサ内の仮想共有メモリ１２１Ａの領域Ａへのデータの書込みと、他領域Ｂ〜Ｎからのデータの読出しとによって、他のプロセッサ１Ｂ〜１Ｎとデータの共有・交換を行うことができる。
他のプロセッサ１Ｂ〜１Ｎの演算プロセッサ１１Ｂ〜１１Ｎも同様に、自プロセッサ内の仮想共有メモリ１２１の自領域へのデータ書込みと他領域Ｂ〜Ｎからのデータの読出しとによって、他のプロセッサ１Ａ〜１Ｎとデータの共有・交換を行うことができる。
【００３２】
（実施例２）
本実施例２のマルチプロセッサシステムの構成も、上記実施例１の構成と基本的には同じであるが、トリガ信号伝達バス８が図５に示すように構成され、また共通バスＩＦ１５が図６に示すように構成されている。
上記実施例１では、同一のトリガ信号８３１で各ＤＭＡプロセッサ１４Ａ〜１４Ｎが同時に動作していた。例えば、ＤＭＡプロセッサ１４Ａによる共通バス９２への出力と、ＤＭＡプロセッサ１４Ｂ〜１４Ｎによる共通バス９２からの読込みが同時に動作していた。しかし、プロセッサ内部バス１９Ａ〜１９Ｎの使用状況如何では、各ＤＭＡプロセッサ１４Ａ〜１４Ｎが同時に動作できるとは限らない。実施例２はそれを次に説明するように考慮した例である。
【００３３】
図６に示す共通バスＩＦ１５は、内部バス１９に接続されたラッチレジスタ１５１と、このラッチレジスタ１５１及び共通バスＩＦ１５の間に接続されたトライステート出力バッファ１５２と、共通バスＩＦ１５と内部バス１９との間に接続された入力バッファ１５３とを備えて構成されている。
ラッチレジスタ１５１は、内部バス１９からの書込み時にデータがセットされると、次に当該ラッチレジスタ１５１ヘ書込みが行われるまで同じデータを共通バスＩＦ１５へ出力する。よって、各ＤＭＡプロセッサ１４が共通バス９２ヘデータを出力する場合は、動作が終了しても次の動作までは共通バス９２へ同じデータの出力が継続される。
【００３４】
図５に示すトリガ信号伝達バス８は、トリガ信号８３１として各プロセッサ１Ａ〜１Ｎ専用のトリガ信号８３１Ａ〜８３１Ｎと、タイプ指定信号８３２とが伝達されるように構成されている。つまり、トリガ信号発生器７は、トリガ信号８３１Ａ〜８３１Ｎとタイプ指定信号８３２を発生するようになっている。
トリガ信号８３１Ａ〜８３１Ｎは、図７の（１）に示すように、共通バス９２ヘデータを出力するＤＭＡプロセッサ１４に対するトリガ信号８３１Ａが、共通バス９２からデータを読込むＤＭＡプロセッサ１４に対するトリガ信号８３１Ｂ，８３１Ｎより先に、トリガ信号発生器７から出力される。このトリガ信号８３１Ａ〜８３１Ｎの時間差は、トリガ信号８３１ｘ受信後、ＤＭＡプロセッサ１４ｘの動作終了までの時間はプロセッサ内部バス１９の使用状況で変化するが、その最大時間から決定される。
【００３５】
図６の共通バスＩＦ１５の構成によって、共通バス９２ヘデータを出力するＤＭＡプロセッサ１４の動作が終了しても、次の動作が行われるまでは、図７に示す共通バス９２のデータの状態のようにデータが保持される。
そして、上記実施例１の時刻ｔ１〜ｔ４間のＳ１〜Ｓｎ行に示したと同様の動作（図７にも対応する動作を同符号で示した）により、演算プロセッサ１１Ａ〜１１Ｎは、自プロセッサ内の仮想共有メモリ１２１の自領域へのデータ書込みと他領域からのデータの読出しで、プロセッサ１Ａ〜１Ｎとデータの共有・交換を行うことができる。
【００３６】
（実施例３）
本実施例３のマルチプロセッサシステムは図８に示すように構成されており、トリガ信号伝達バス８は図９に示すように構成されている。
まず、図９に示すトリガ信号伝達バス８は、図５に示したトリガ信号伝達バス８のタイプ指定信号８３２を拡張することによって、領域指定信号（上位アドレス信号）８３３と、領域内のオフセットアドレス信号（下位アドレス信号）８３４とが伝達されるようにした。即ち、トリガ信号発生器７は、領域指定信号８３３及びオフセットアドレス指定信号８３４を発生する。
【００３７】
図８に示すマルチプロセッサシステムは、図１に示したマルチプロセッサシステムの内蔵メモリ１２内にあった仮想共有メモリ１２１を、半導体チップに内蔵されたデュアルポートメモリの仮想共有メモリ１６Ａ〜１６Ｎとして分離したものである。この仮想共有メモリ１６Ａ〜１６Ｎの片ポートは内部バス１９Ａ〜１９Ｎに接続され、反対側ポートは共通バスＩＦ１５を介して共通バス９２及び、トリガ信号伝達バス８の領域指定信号８３３及びオフセットアドレス指定信号８３４が伝達される線路に接続されている。
【００３８】
仮想共有メモリ１６Ａ〜１６Ｎの内部は、図２（ａ）及び（ｂ）に示したと同様に各プロセッサ１Ａ〜１Ｎの専用の書込み領域が割付けられている。
また、図８のマルチプロセッサシステムにおいては、各プロセッサ１Ａ〜１Ｎにおいて共通バス用ＤＭＡプロセッサ１７Ａ〜１７Ｎを更に備え、これらを内部バス１９Ａ〜１９Ｎに接続すると共に、仮想共有メモリ１６Ａ〜１６Ｎの下位アドレスをオフセットアドレス指定信号８３４に応じた制御信号で指定する線路に接続されている。
【００３９】
共通バス用ＤＭＡプロセッサ１７Ａ〜１７Ｎは、仮想共有メモリ１６Ａ〜１６Ｎに対して、領域指定信号８３３で上位アドレスを指定すると共にオフセットアドレス指定信号８３４で下位アドレスを指定してデータを読出し、これを共通バス９２に出力する。更には共通バス９２からデータを読み込んで上記と同指定による仮想共有メモリ１６へ書込む動作を行う。更に、トリガ信号８３１Ａ〜８３１Ｎのタイミングで、各データの仮想共有メモリ１６Ａ〜１６Ｎからの読出し、又は書込みを行う。
演算プロセッサ１１Ａ〜１１Ｎは、自プロセッサ内の仮想共有メモリ１６の自領域へのデータ書込みと他領域からのデータの読出しで、プロセッサ１Ａ〜１Ｎとデータの共有・交換を行うことができる。
【００４０】
以上説明した実施例１〜３によれば、各演算プロセッサ１１Ａ〜１１Ｎが、データの共有・交換を行うために半導体チップ外部の共有メモリに直接アクセスする必要はなく、同じ半導体チップ上にある内蔵メモリである仮想共有メモリ１２１Ａ〜１２１Ｎ又は仮想共有メモリ１６Ａ〜１６Ｎに対するデータの書込み・読出しを行えば良い。
一般的に、同じ半導体チップ上にある内蔵メモリ対する読込み・書込み動作に要する時間は、外部バスＩＦ１３Ａ〜１３Ｎを介して半導体チップ外部に対する読込み・書込み動作に要する時間よりも遥かに短い。
【００４１】
また、本実施例では、ローカルバス４Ａ〜４Ｎと共通バス９２とを切り離したので、従来のように外部バスＩＦ１３を介した共通バス９２へのアクセスの際にローカルバス４Ａ〜４Ｎへのアクセスと時分割で実行されることがなく、共通バス９２へのアクセスと、ローカルバス４Ａ〜４Ｎへのアクセスとを並列に行うことができる。
よって、マルチプロセッサシステムにおいて必須となる共有メモリヘの読書きによるプログラム処理効率の低下を防止することができる。
【図面の簡単な説明】
【００４２】
【図１】本発明の実施の形態に係るマルチプロセッサシステムの構成を示すブロック図である。
【図２】上記実施の形態に係るマルチプロセッサシステムの共有メモリ及び仮想共有メモリを示し、（ａ）は仮想共有メモリの記憶領域の割付け図、（ｂ）は仮想共有メモリの各記憶領域への書込み読出し動作の説明図である。
【図３】上記実施の形態に係る実施例１のマルチプロセッサシステムにおけるトリガ信号伝達バスの構成を示す図である。
【図４】上記実施例１のマルチプロセッサシステムにおけるタイプ指定信号とトリガ信号とのタイミングチャートである。
【図５】上記実施の形態に係る実施例２のマルチプロセッサシステムにおけるトリガ信号伝達バスの構成を示す図である。
【図６】上記実施例２のマルチプロセッサシステムにおける共通バスＩＦの構成を示すブロック図である。
【図７】上記実施例２のマルチプロセッサシステムにおけるタイプ指定信号及びトリガ信号と、共通バスのデータ状態とのタイミングチャートである。
【図８】上記実施の形態に係る実施例３のマルチプロセッサシステムの構成を示すブロック図である。
【図９】上記実施例３のマルチプロセッサシステムにおけるトリガ信号伝達バスの構成を示す図である。
【図１０】従来のマルチプロセッサシステムの構成を示すブロック図である。
【符号の説明】
【００４３】
１Ａ〜１Ｎ  プロセッサ
２  共有メモリ
３  アクセス調停装置
４Ａ〜４Ｎ  ローカルバス
７  トリガ信号発生器
８  トリガ信号伝達バス
１２Ａ〜１２Ｎ  内蔵メモリ
１３Ａ〜１３Ｎ  外部バスＩＦ
１４Ａ〜１４Ｎ  ＤＭＡプロセッサ
１５Ａ〜１５Ｎ  共通バスＩＦ
１６Ａ〜１６Ｎ，１２１Ａ〜１２１Ｎ  仮想共有メモリ
１７Ａ〜１７Ｎ  共通バス用ＤＭＡプロセッサ
１９Ａ〜１９Ｎ  内部バス
３１Ａ〜３１Ｎ  アクセス要求信号
３２Ａ〜３２Ｎ  アクセス許可信号
４１Ａ〜４１Ｎ  イネーブル付バスドライバ
４２Ａ〜４２Ｎ  ローカルメモリ
４３Ａ〜４３Ｎ  ローカルＩ／Ｏ
９２  共通バス
１５１  ラッチレジスタ
１５２  トライステート出力バッファ
１５３  入力バッファ
８３１，８３１Ａ〜８３１Ｎ  トリガ信号
８３２  タイプ指定信号
８３３  領域指定信号
８３４  オフセットアドレス指定信号
【図１】
0004539481.tif 000002
【図２】
0004539481.tif 000003
【図３】
0004539481.tif 000004
【図４】
0004539481.tif 000005
【図５】
0004539481.tif 000006
【図６】
0004539481.tif 000007
【図７】
0004539481.tif 000008
【図８】
0004539481.tif 000009
【図９】
0004539481.tif 000010
【図１０】
0004539481.tif 000011