(57)【要約】【課題】システムの処理能力を向上することができ、ハードウエアのコストを下げるマルチプロセッサシステムを提供する。【解決手段】マルチプロセッサシステムは、第１命令格納メモリ１０４と第２命令格納メモリ１１２からの命令に基いて内部動作の制御と演算終了信号１１５を発生する制御回路１０５と、自身の演算結果の保持と第１ソースデータの出力を行う第１レジスタファイル１０９と、他のプロセッサから実行を移行された演算結果の保持と第２ソースデータの出力を行う第２レジスタファイル１１３と、第１または第２ソースデータの選択を行う入力セレクタ１１４と、入力セレクタ１１４からの出力値に応じて演算を行う演算器１０６、１０７からの出力を第１および該第２レジスタファイル１０９、１１３に振り分ける出力セレクタ１０８を具備する。【選択図】　　　図１
2004070692.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサにより並行処理を行うマルチプロセッサシステムにおいて、
自身の実行する命令を格納する第１命令格納メモリと、
他のプロセッサから実行を移行された命令を格納する第２命令格納メモリと、
該第１命令格納メモリと該第２命令格納メモリとからの命令に基づき内部動作の制御と演算終了信号を発生する制御回路と、
自身の演算結果の保持と第１ソースデータの出力を行う第１レジスタファイルと、
他のプロセッサから実行を移行された演算結果の保持と第２ソースデータの出力を行う第２レジスタファイルと、
該第１ソースデータと該第２ソースデータの選択を行う入力セレクタと、
該入力セレクタからの出力値に応じた演算を行う複数の演算器と、
該複数の演算器からの出力を該第１レジスタファイルと該第２レジスタファイルとに振り分ける出力セレクタを具備したことを特徴とするマルチプロセッサシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のプロセッサにより並行処理を行うマルチプロセッサシステムに関する。
【０００２】
【従来の技術】
従来、複数のプロセッサにより並行処理を行うマルチプロセッサシステムは図２のようになっている。
図２は従来技術を示すマルチプロセッサシステムのブロック図である。
図２において、２０２は第１プロセッサ、２０３は第２プロセッサ、２１２は第１プロセッサ２０２と第２プロセッサ２０３を接続するデータアドレスバスである。また、第２プロセッサ２０３の内部回路として、２０４は命令格納メモリ、２０５は制御回路、２０６は第１演算器、２０７は第２演算器、２０８は出力セレクタ、２０９はレジスタファイル、２１０は出力レジスタ、２１１はソースデータである。
第１プロセッサ２０２の内部は第２プロセッサ２０３と同様の回路を含んでおり、第１プロセッサ２０２と第２プロセッサ２０３は独立して命令を実行している。ただし、２つのプロセッサは片方をマスタ、他方をスレーブとして動作し、マスタのアドレスにスレーブの内部領域がマッピングされている。
【０００３】
次に、例えば、第１プロセッサ２０２がマスタ、第２プロセッサ２０３がスレーブとした場合の動作を説明する。
第１プロセッサ２０２は第２プロセッサ２０３のレジスタファイル２０９に保持された演算結果を参照し、レジスタファイル２０９にデータを書き込むことで新たな演算結果を得る。また、命令格納メモリ２０４が書換え可能なメモリである場合は、第１プロセッサ２０２は命令格納メモリ２０４に命令を書き込むことも行う。第２プロセッサ２０３では、命令格納メモリ２０４から出力された命令を制御回路２０５で解読し、制御回路２０５ではその命令に応じたデータをレジスタファイル２０９からソースデータ２１１として出力するよう指令する。ソースデータ２１１は第１演算器２０６と第２演算器２０７に入力され、それぞれの演算結果が出力セレクタ２０８に入力される。第１演算器２０６と第２演算器２０７はそれぞれ別の演算を行う回路であり、例えば算術演算や論理演算、乗算、テーブルＲＯＭ等の場合が有り得る。
【０００４】
また、ここでは演算器が２つの場合の例を示しているが、さらに多数の演算器が含まれることも有る。出力セレクタ２０８ではそのときの命令が第１演算器２０６と第２演算器２０７のどちらの演算を行うものであるかを制御回路２０５から指令を受けて対応する演算結果を出力する。出力セレクタ２０８の出力はレジスタファイル２０９や出力レジスタ２１０に入力されており、その時の命令によって制御回路２０５から指令を受けて演算結果が保持される。レジスタファイル２０９に保持された演算結果は以降の命令でソースデータ２１１として使用される。出力レジスタ２１０に保持された演算結果は第２プロセッサ２０３の外部への演算結果に応じた出力となる。
【０００５】
【発明が解決しようとする課題】
しかしながら、上記マルチプロセッサシステムでは、それぞれのプロセッサで実行する命令に偏りが有ると、処理能力の違いによりそれぞれのプロセッサのスループットにばらつきが生じるため、システムの処理能力の向上を妨げるという問題が有った。
また、演算器の回路規模が演算の種類によって制御回路やセレクタと比較して非常に大きくなる場合が有る。このようなとき、個々のプロセッサがその演算を行う演算器を持たなければならないため演算資源の重複があり、ハードウエアのコストが増大するという問題も有った。
【０００６】
本発明は上記課題を解決するためになされたものであり、システムの処理能力を向上することができ、ハードウエアのコストを減少することが可能なマルチプロセッサシステムを提供することを目的とする。
【０００７】
【課題を解決するための手段】
上記課題を解決するために、本発明は、複数のプロセッサにより並行処理を行うマルチプロセッサシステムにおいて、自身の実行する命令を格納する第１命令格納メモリと、他のプロセッサから実行を移行された命令を格納する第２命令格納メモリと、該第１命令格納メモリと該第２命令格納メモリとからの命令に基づき内部動作の制御と演算終了信号を発生する制御回路と、自身の演算結果の保持と第１ソースデータの出力を行う第１レジスタファイルと、他のプロセッサから実行を移行された演算結果の保持と第２ソースデータの出力を行う第２レジスタファイルと、該第１ソースデータと該第２ソースデータの選択を行う入力セレクタと、該入力セレクタからの出力値に応じた演算を行う複数の演算器と、該複数の演算器からの出力を該第１レジスタファイルと該第２レジスタファイルとに振り分ける出力セレクタを具備したものである。
【０００８】
【発明の実施の形態】
以下、本発明の実施例を図に基づいて説明する。
図１は本発明の実施例を示すマルチプロセッサシステムのブロック図である。
図１において、１０２は第１プロセッサ、１０３は第２プロセッサ、１１７は第１プロセッサ１０２と第２プロセッサ１０３を接続するデータアドレスバスである。また、第２プロセッサ１０３の内部回路として、１０４は命令格納メモリ、１０５は制御回路、１０６は演算器１、１０７は演算器２、１０８は出力セレクタ、１０９はレジスタファイル、１１０は出力レジスタ、１１１は第１ソースデータ、１１２は第２命令格納メモリ、１１３は第２レジスタファイル、１１４は入力セレクタ、１１５は演算終了信号、１１６は第２ソースデータである。
【０００９】
本発明が従来技術と異なる点は、自身の実行する命令を格納する第１命令格納メモリ１０４とは別に、他のプロセッサから実行を移行された命令を格納する第２命令格納メモリ１１２を設けた点、また、自身の演算結果の保持と第１ソースデータの出力を行う第１レジスタファイル１０９とは別に、他のプロセッサから実行を移行された演算結果の保持と第２ソースデータの出力を行う第２レジスタファイル１１３を設けた点、さらに、第１ソースデータ１１１と該第２ソースデータ１１６の選択を行う入力セレクタ１１４を設けた点である。
なお、第１プロセッサ１０２の内部は第２プロセッサ１０３と同様の回路を含んでおり、第１プロセッサ１０２と第２プロセッサ１０３は独立して命令を実行している。ただし、第１演算器１０６または第２演算器１０７については必ずしも共通ではなく、片方だけが持つ演算器もある。また、２つのプロセッサは片方をマスタ、他方をスレーブとし動作し、マスタのアドレスにスレーブの内部領域がマッピングされている。
【００１０】
次に動作について説明する。
第１プロセッサ１０２がマスタ、第２プロセッサ１０３がスレーブとした場合に、第１プロセッサ１０２は第２プロセッサ１０３の第１レジスタファイル１０９に保持された演算結果を参照し、第１レジスタファイル１０９にデータを書き込むことで新たな演算結果を得る。また、第１命令格納メモリ１０４が書換え可能なメモリである場合は、第１プロセッサ１０２は第１命令格納メモリ１０４に命令を書き込むことも行う。第２命令格納メモリ１１２は書換え可能なメモリであり、第１プロセッサ１０２での処理が第２プロセッサ１０３での処理に比べて多い場合、そのうちのいくつかの命令を第２命令格納メモリ１１２に転送する。また、第１プロセッサ１０２の演算器では演算できない命令であって、第２プロセッサ１０３の演算器で演算可能な命令がある場合も第２命令格納メモリ１１２に転送する。第２プロセッサ１０３では、第１命令格納メモリ１０４から出力された命令を制御回路１０５で解読し、同時に第２命令格納メモリ１１２の出力も監視している。第１命令格納メモリ１０４から出力された命令で使用する演算器が、第２命令格納メモリ１１２の出力の命令で使用する演算器と異なる場合、制御回路１０５ではその命令に応じたデータを第１レジスタファイル１０９から第１ソースデータ１１１として出力するよう指令する。同時に第２レジスタファイル１１３からも第２命令格納メモリ１１２の出力の命令に応じたデータを第２ソースデータ１１６として出力するように指令する。第１ソースデータ１１１と第２ソースデータ１１６は入力セレクタ１１４に入力される。入力セレクタ１１４では制御回路１０５からの指令を受けて、第１ソースデータ１１１と第２ソースデータ１１６を第１演算器１０６と第２演算器１０７のどちらの演算器への入力として使用するかを選択する。第１演算器１０６と第２演算器１０７のそれぞれの演算結果は出力セレクタ１０８に入力される。第１演算器１０６と第２演算器１０７はそれぞれ別の演算を行う回路であり、例えば算術演算や論理演算、乗算、テーブルＲＯＭ等の場合が有り得る。
【００１１】
また、ここでは演算器が２つの場合の例を示しているが、さらに多数の演算器が含まれることも有る。出力セレクタ１０８では第１演算器１０６と第２演算器１０７の演算結果が、レジスタファイル１０９や出力レジスタ１１０もしくは第２レジスタファイル１１３で保持するのかという指令を制御回路１０５から受けて、それに応じた出力に振り分ける。レジスタファイル１０９や出力レジスタ１１０及び第２レジスタファイル１１３は、出力セレクタ１０８からの出力を制御回路１０５からの指令に応じて保持する。レジスタファイル１０９および第２レジスタファイル１１３に保持された演算結果は以降の命令で第１ソースデータ１１１もしくは第２ソースデータ１１６として使用される。出力レジスタ１１０に保持された演算結果は第２プロセッサ１０３の外部への演算結果に応じた出力となる。第２命令格納メモリ１１２の命令がすべて完了すると、制御回路１０５は演算終了信号１１５を発生し、第１プロセッサ１０２に処理の終了を通知する。この際、演算終了信号１１５は第１プロセッサ１０２の割込み信号として使用される場合や、第１プロセッサ１０２のアドレスに割り付けられたステータスビットとしてポーリングによる監視で使用される場合が有る。命令格納メモリ１０４から出力された命令と第２命令格納メモリ１１２から出力された命令で使用する演算器が同じ場合は、命令格納メモリ１０４から出力された命令を優先して行う。また、第２命令格納メモリ１１２に命令が格納されていない場合は従来のマルチプロセッサシステムと同様に命令格納メモリ１０４の命令だけが処理される。
【００１２】
したがって、本実施例に係るマルチプロセッサシステムは、自身の実行する命令を格納する第１命令格納メモリ１０４と、他のプロセッサから実行を移行された命令を格納する第２命令格納メモリ１１２と、該第１命令格納メモリ１０４と該第２命令格納メモリ１１２とからの命令に基づき内部動作の制御と演算終了信号１１５を発生する制御回路１０５と、自身の演算結果の保持と第１ソースデータの出力を行う第１レジスタファイル１０９と、他のプロセッサから実行を移行された演算結果の保持と第２ソースデータの出力を行う第２レジスタファイル１１３と、該第１ソースデータと該第２ソースデータの選択を行う入力セレクタ１１４と、該入力セレクタ１１４からの出力値に応じた演算を行う複数の演算器１０６、１０７と、該複数の演算器１０６、１０７からの出力を該第１レジスタファイル１０９と該第２レジスタファイル１１３とに振り分ける出力セレクタ１０８を具備する構成にしたので、一方のプロセッサで使用していない演算器を他方のプロセッサで使用することで、それぞれのプロセッサで実行する命令の偏りを平均化できることから、システムの処理能力を向上することができる。
また、一方のプロセッサと他方のプロセッサの間で演算器の重複を減らすことができるので、ハードウエアコストを減少することができる。
【００１３】
【発明の効果】
以上述べたように、本発明によれば、マルチプロセッサシステムにおいて、自身の実行する命令を格納する第１命令格納メモリと、他のプロセッサから実行を移行された命令を格納する第２命令格納メモリと、該第１命令格納メモリと該第２命令格納メモリとからの命令に基づき内部動作の制御と演算終了信号を発生する制御回路と、自身の演算結果の保持と第１ソースデータの出力を行う第１レジスタファイルと、他のプロセッサから実行を移行された演算結果の保持と第２ソースデータの出力を行う第２レジスタファイルと、該第１ソースデータと該第２ソースデータの選択を行う入力セレクタと、該入力セレクタからの出力値に応じた演算を行う複数の演算器と、該複数の演算器からの出力を該第１レジスタファイルと該第２レジスタファイルとに振り分ける出力セレクタを具備する構成にしたため、一方のプロセッサで使用していない演算器を他方のプロセッサで使用することで、それぞれのプロセッサで実行する命令の偏りを平均化できることから、システムの処理能力を向上することができる。
また、一方のプロセッサと他方のプロセッサの間で演算器の重複を減らすことができるので、ハードウエアコストを減少することができる。
【図面の簡単な説明】
【図１】本発明の実施例を示すマルチプロセッサシステムのブロック図である。
【図２】従来技術を示すマルチプロセッサシステムのブロック図である。
【符号の説明】
１０１　本発明のマルチプロセッサシステム
１０２　第１プロセッサ
１０３　第２プロセッサ
１０４　第１命令格納メモリ
１０５　制御回路
１０６　第１演算器
１０７　第２演算器
１０８　出力セレクタ
１０９　第１レジスタファイル
１１０　出力レジスタ
１１１　第１ソースデータ
１１２　第２命令格納メモリ
１１３　第２レジスタファイル
１１４　入力セレクタ
１１５　演算終了信号
１１６　第２ソースデータ
１１７　データアドレスバス
【図１】
2004070692.tif 000003
【図２】
2004070692.tif 000004