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