(57)【要約】【課題】あるプロセッサが記憶したデータを他のプロセッサが破壊してしまう可能性があり、その原因となっているソフトウェア（プログラム）の不具合を特定するのに時間が掛かってしまう。【解決手段】アドレスオフセット制御回路は、複数のアドレスオフセット加算回路２１−１，２１−２と、複数の選択回路２２−１，２２−２とを有している。アドレスオフセット加算回路２１−１，２１−２は、メモリ１０に対するアクセスをそれぞれ行うプロセッサ（例えば、ＣＰＵ）２０−１，２０−２からそれぞれ出力されるアドレスに、所定のオフセット値をそれぞれ加算して加算結果をそれぞれ出力する。すると、選択回路２２−１，２２−２は、各アドレスオフセット加算回路２１−１，２１−２の加算結果と各ＣＰＵ２０−１，２０−２から出力されるアドレスとをそれぞれ選択してメモリ１０に与える。【選択図】図１
2008097134.tif 000002
【特許請求の範囲】
【請求項１】
共有のメモリに対するアクセスをそれぞれ行う複数のプロセッサからそれぞれ出力されるアドレスに、所定のオフセット値をそれぞれ加算して加算結果をそれぞれ出力する複数のアドレスオフセット加算回路と、
前記各アドレスオフセット加算回路の前記加算結果と前記各プロセッサから出力される前記アドレスとをそれぞれ選択して前記メモリに与える複数の選択回路と、
を有することを特徴とするアドレスオフセット制御回路。
【請求項２】
請求項１記載のアドレスオフセット制御回路は、更に、
前記各プロセッサから出力される前記アドレスをそれぞれ判別して前記各選択回路の選択動作をそれぞれ制御する複数のアドレス判別回路を有することを特徴とするアドレスオフセット制御回路。
【請求項３】
請求項２記載のアドレスオフセット制御回路は、更に、
前記各プロセッサから出力される前記アドレスの不正状態をそれぞれ検出して前記各プロセッサに対して割り込み信号をそれぞれ与える複数の不正アドレス検出回路を有することを特徴とするアドレスオフセット制御回路。
【請求項４】
請求項３記載のアドレスオフセット制御回路は、更に、
前記各プロセッサが不正なアドレスを出力した際に、保持した正常なアドレスをそれぞれ出力して前記メモリに与える複数のアドレス保持手段を有することを特徴とするアドレスオフセット制御回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、共有のメモリをアクセスする複数のプロセッサを有するマルチプロセッサシステム等において、複数のプロセッサ（例えば、中央処理装置、以下「ＣＰＵ」という。）が同じメモリアドレスに対してデータを書き込んでしまうことでそのメモリ上のデータを破壊してしまい、システムとして誤動作してしまうことを防止するためのアドレスオフセット制御回路に関するものである。
【背景技術】
【０００２】
従来、マルチプロセッサシステムとしては、例えば、次のような文献に記載されるものがあった。
【０００３】
【特許文献１】特開平１１−１０２３４８号公報
【特許文献２】特開２００１−３１８９０６号公報
【特許文献３】特開２００２−２４５０２２号公報
【０００４】
図２は、特許文献１〜３等に記載された従来のマルチプロセッサシステムを示す概略の構成図である。
【０００５】
このマルチプロセッサシステムは、アドレス端子Ａ１を有する共有のメモリ１と、アドレスを出力するアドレス端子Ａ２，Ａ３をそれぞれ有するメモリアクセス用の複数のＣＰＵ２−１，２−２とを備え、それらのメモリ１のアドレス端子Ａ１と、各ＣＰＵ２−１，２−２のアドレス端子Ａ２，Ａ３とが、複数（ｎ）ビットの共通のアドレスバス３を介して相互に接続されている。なお、この図２では、説明を簡単にするために、システムバスとしてアドレスバス３のみが記載されている。
【０００６】
この種のマルチプロセッサシステムでは、ＣＰＵ２−１とＣＰＵ２−２がアドレスを出力し、同一のメモリ１をアクセス（即ち、リード又はライト）することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来のマルチプロセッサシステムでは、複数のＣＰＵ２−１，２−２が同じメモリ１の同一アドレスに上書きしてしまい、一方のＣＰＵ２−１が記憶したデータを他方のＣＰＵ２−２が破壊してしまう可能性があり、その原因となっているソフトウェア（プログラム）の不具合を特定するのに時間が掛かってしまうという課題があった。
【課題を解決するための手段】
【０００８】
本発明は、マルチプロセッサシステム等におけるアドレスオフセット制御回路であって、複数のアドレスオフセット加算回路と、複数の選択回路とを有している。前記複数のアドレスオフセット加算回路は、共有のメモリに対するアクセスをそれぞれ行う複数のプロセッサからそれぞれ出力されるアドレスに、所定のオフセット値をそれぞれ加算して加算結果をそれぞれ出力する回路である。更に、前記複数の選択回路は、前記各アドレスオフセット加算回路の前記加算結果と前記各プロセッサから出力される前記アドレスとをそれぞれ選択して前記メモリに与える回路である。
【発明の効果】
【０００９】
本発明によれば、複数のアドレスオフセット加算回路及び複数の選択回路を設けたので、複数のプロセッサから出力されるアドレスを排他的に制御することができ、競合が発生せず、あるプロセッサが他のプロセッサのデータを破壊してしまうことを防ぐことができる。
【発明を実施するための最良の形態】
【００１０】
アドレスオフセット制御回路は、複数のアドレスオフセット加算回路と、複数の選択回路とを有している。前記複数のアドレスオフセット加算回路は、共有のメモリに対するアクセスをそれぞれ行う複数のプロセッサ（例えば、ＣＰＵ）からそれぞれ出力されるアドレスに、所定のオフセット値をそれぞれ加算して加算結果をそれぞれ出力する。すると、前記複数の選択回路は、前記各アドレスオフセット加算回路の前記加算結果と前記各ＣＰＵから出力される前記アドレスとをそれぞれ選択して前記メモリに与える。
【実施例１】
【００１１】
（実施例１の構成）
図１は、本発明の実施例１を示すマルチプロセッサシステム等におけるアドレスオフセット制御回路の概略の構成図である。
【００１２】
このアドレスオフセット制御回路は、半導体集積回路等で構成され、この半導体集積回路等の内部又は外部に設けられた共有のメモリ１０と、このメモリ１０に対してアクセスを行うための複数（例えば、２つ）のプロセッサ（例えば、ＣＰＵ）２０−１，２０−２とを有している。メモリ１０は、アドレス入力用のアドレス端子Ａ１等を有し、随時読み書き可能なメモリ（以下「ＲＡＭ」という。）等で構成されている。各ＣＰＵ２０−１，２０−２は、アドレス出力用のアドレス端子Ａ２，Ａ３等を有し、この各アドレス端子Ａ２，Ａ３に、アドレスオフセット加算回路２１−１，２１−２の入力端子がそれぞれ接続されると共に、選択回路２２−１，２２−２の論理“０”入力端子がそれぞれ接続されている。
【００１３】
各アドレスオフセット加算回路２１−１，２１−２の出力端子は、各選択回路２２−１，２２−２の論理“１”入力端子に接続されている。各選択回路２２−１，２２−２は、各選択端子に接続された各外部端子２３−１，２３−２からの信号“０”又は“１”に基づき、“０”入力端子又は“１”入力端子の入力信号を選択して出力端子から出力する回路であり、この各選択回路２２−１，２２−２の出力端子が、複数（ｎ）ビットのアドレスバス２４を介して、メモリ１０のアドレス端子Ａ１に接続されている。
【００１４】
なお、図１では、説明を簡単にするために、システムバスとしてアドレスバス２４のみが記載されている。
【００１５】
図３は、図１中のメモリ１０の内部データ領域を示す概略の構成図である。
メモリ１０は、例えば、アドレス００００番地からアドレス７ＦＦＦ番地までのＣＰＵ２０−１の使用領域１１と、アドレス８０００番地からアドレスＦＦＦＦ番地までのＣＰＵ２０−２の使用領域１２とを有している。ＣＰＵ２０−１とＣＰＵ２０−２は、それぞれメモリ１０を共通にアクセス（リード又はライト）するが、同じ領域を共有することはしない。
【００１６】
（実施例１の動作）
例えば、外部端子２３−１を“０”に設定し、外部端子２３−２を“１”に設定すると、選択回路２２−１が“０”入力端子を選択し、選択回路２２−２が“１”入力端子を選択する。すると、ＣＰＵ２０−１のアドレス端子Ａ２から出力されるアドレスは、選択回路２２−１により選択されてアドレスバス２４へ送られ、ＣＰＵ２０−２のアドレス端子Ａ３から出力されるアドレスは、アドレスオフセット加算回路２１−２へ与えられる。
【００１７】
アドレスオフセット加算回路２１−２は、ＣＰＵ２０−２のアドレス端子Ａ３から出力されるアドレスにオフセット値８０００を加算して出力する。この加算されたアドレスは、選択回路２２−２により選択され、アドレスバス２４を介してメモリ１０のアドレス端子Ａ１へ与えられる。これにより、ＣＰＵ２０−１とＣＰＵ２０−２は、同じメモリ１０の異なる使用領域１１，１２にアクセスすることになり、リードやライトが競合することがない。
【００１８】
（実施例１の効果）
本実施例１によれば、アドレスオフセット加算回路２１−１，２１−２と選択回路２２−１，２２−２を設けたので、ＣＰＵ２０−１，２０−２から出力されるアドレスを排他的に制御することができ、競合が発生せず、一方のＣＰＵ２０−１（又は２０−２）が他方のＣＰＵ２０−２（又は２０−１）のデータを破壊してしまうことを防ぐことができる。
【実施例２】
【００１９】
（実施例２の構成）
図４は、本発明の実施例２を示すマルチプロセッサシステム等におけるアドレスオフセット制御回路の概略の構成図であり、実施例１を示す図１中の要素と共通の要素には共通の符号が付されている。
【００２０】
本実施例２のアドレスオフセット制御回路では、実施例１の外部端子２３−１，２３−２に代えて、アドレス判別回路２５−１，２５−２が設けられている。各アドレス判別回路２５−１，２５−２は、各入力端子が各ＣＰＵ２０−１，２０−２のアドレス端子Ａ２，Ａ３に接続され、各出力端子が各選択回路２２−１，２２−２の選択端子に接続され、各ＣＰＵ２０−１，２０−２のアドレス端子Ａ２，Ａ３から出力されるアドレスを判別してこの判別結果に応じて選択回路２２−１，２２−２の“０”入力端子又は“１”入力端子を選択する回路である。その他の構成は、実施例１と同様である。
【００２１】
図５は、図４中のメモリ１０の内部データ領域を示す概略の構成図である。
メモリ１０は、例えば、アドレス００００番地からアドレスＦＦＦＦ番地までにおいて、ＣＰＵ２０−１，２０−２の任意の使用領域１３，１４を有している。ＣＰＵ２０−１とＣＰＵ２０−２は、それぞれメモリ１０を共通にアクセス（リード又はライト）するが、同じ領域を共有することはしない。
【００２２】
（実施例２の動作）
各アドレス判別回路２５−１，２５−２は、例えば、各ＣＰＵ２０−１，２０−２のアドレス端子Ａ２，Ａ３から出力されるアドレスの上位数ビットがオール“０”であるか否かを判別し、上位数ビットがオール“０”の場合には“１”を出力し、そうでない場合には“０”を出力する。各アドレス判別回路２５−１，２５−２の出力信号が“１”の時は、各選択回路２２−１，２２−２が各アドレスオフセット加算回路２１−１，２１−２の出力信号を選択する。
【００２３】
そのため、ＣＰＵ２０−１，２０−２がリード又はライトしようとするアドレスの上位数ビットがオール“０”の時は、アドレスオフセット加算回路２１−１，２１−２により、ＣＰＵ２０−１，２０−２から出力されるアドレスにアドレスオフセット値が加算され、その使用領域１３，１４のアドレスがメモリ１０へ与えられる。各アドレスオフセット加算回路２１−１，２１−２には、それぞれ異なったアドレスオフセット値が加算されるように設計しておくことで、各ＣＰＵ２０−１，２０−２は同じメモリ１０の異なる使用領域１３，１４にアクセスすることになり、リードやライトが競合することがない。
【００２４】
（実施例２の効果）
本実施例２によれば、アドレス判別回路２５−１，２５−２を設けたので、実施例１のような外部端子２３−１，２３−２を使用することなく、アドレスオフセット加算回路２１−１，２１−２の出力信号を使用でき、図５に示すように、ＣＰＵ２０−１，２０−２から出力されるアドレスを排他的に制御することができる。これにより、競合が発生せず、一方のＣＰＵ２０−１（又は２０−２）が他方のＣＰＵ２０−２（又は２０−１）のデータを破壊してしまうことを防ぐことができる。
【実施例３】
【００２５】
（実施例３の構成）
図６は、本発明の実施例３を示すマルチプロセッサシステム等におけるアドレスオフセット制御回路の概略の構成図であり、実施例２を示す図４中の要素と共通の要素には共通の符号が付されている。
【００２６】
本実施例３のアドレスオフセット制御回路では、実施例２の各ＣＰＵ２０−１，２０−２のアドレス端子Ａ２，Ａ３に、新たに追加された不正アドレス検出回路２６−１，２６−２の入力端子がそれぞれ接続されている。各不正アドレス検出回路２６−１，２６−２は、各ＣＰＵ２０−１，２０−２から不正アドレスが出力されると、これを検出して割り込み信号ｉｎｔ１，ｉｎｔ２をアサートし、各ＣＰＵ２０−１，２０−２へ知らせる回路である。その他の構成は、実施例２と同様である。
【００２７】
（実施例３の動作）
例えば、ＣＰＵ２０−１がアドレス端子Ａ２から不正なアドレスを出力すると、アドレスオフセット加算回路２１−１は、その不正なアドレスにアドレスオフセット値を加算したアドレスを選択回路２２−１へ出力する。アドレス判別回路２５−１は、その不正なアドレスが入力されると、“１”を選択回路２２−１へ出力する。これにより、選択回路２２−１は、アドレスオフセット加算回路２１−１の出力信号を選択し、アドレスバス２４を介してメモリ１０のアドレス端子Ａ１へ与える。同時に、不正アドレス検出回路２６−１が、ＣＰＵ２０−１から出力された不正なアドレスを検出するので、割り込み信号ｉｎｔ１をアサートし、ＣＰＵ２０−１，２０−２へ知らせる。
【００２８】
同様に、ＣＰＵ２０−２がアドレス端子Ａ３から不正なアドレスを出力すると、アドレスオフセット加算回路２１−２は、その不正なアドレスにアドレスオフセット値を加算したアドレスを選択回路２２−２へ出力する。アドレス判別回路２５−２は、その不正なアドレスが入力されると、“１”を選択回路２２−２へ出力する。これにより、選択回路２２−２は、アドレスオフセット加算回路２１−２の出力信号を選択し、アドレスバス２４を介してメモリ１０のアドレス端子Ａ１へ与える。同時に、不正アドレス検出回路２６−２が、ＣＰＵ２０−２から出力された不正なアドレスを検出するので、割り込み信号ｉｎｔ２をアサートし、ＣＰＵ２０−１，２０−２へ知らせる。
【００２９】
（実施例３の効果）
本実施例３によれば、不正アドレス検出回路２６−１，２６−２を設けたので、ＣＰＵ２０−１，２０−２が不正なアドレスを出力した際に、割り込み信号ｉｎｔ１，ｉｎｔ２が入るようになり、ＣＰＵ２０−１，２０−２にてそれぞれ動いているプログラムのデバッグを容易にできるようになる。
【実施例４】
【００３０】
（実施例４の構成）
図７は、本発明の実施例４を示すマルチプロセッサシステム等におけるアドレスオフセット制御回路の概略の構成図であり、実施例３を示す図６中の要素と共通の要素には共通の符号が付されている。
【００３１】
本実施例４のアドレスオフセット制御回路では、実施例３の各不正アドレス検出回路２６−１，２６−２の他の出力端子と各選択回路２２−１，２２−２の出力端子とが、新たに追加された各アドレス保持手段（例えば、アドレス保持レジスタ２７−１，２７−２及び選択回路２８−１，２８−２）を介して、アドレスバス２４に接続されている。
【００３２】
各アドレス保持レジスタ２７−１，２７−２は、設定された正常なアドレスを保持するレジスタであり、この各出力端子が各選択回路２８−１，２８−２の“１”入力端子に接続され、この各選択回路２８−１，２８−２の“０”入力端子が、各選択回路２２−１，２２−２の出力端子に接続されている。各選択回路２８−１，２８−２は、各不正アドレス検出回路２６−１，２６−２の出力信号“０”又は“１”により、“０”入力端子の入力信号又は“１”入力端子の入力信号を選択してアドレスバス２４へ出力する回路である。その他の構成は、実施例３と同様である。
【００３３】
（実施例４の動作）
例えば、ＣＰＵ２０−１がアドレス端子Ａ２から不正なアドレスを出力すると、不正アドレス検出回路２６−１は、他の出力端子から信号“１”を出力する。これにより、選択回路２８−１は、アドレス保持レジスタ２７−１に設定されているアドレスを選択し、アドレスバス２４を介してメモリ１０のアドレス端子Ａ１へ与える。同様に、ＣＰＵ２０−２がアドレス端子Ａ３から不正なアドレスを出力すると、不正アドレス検出回路２６−２は、他の出力端子から信号“１”を出力する。これにより、選択回路２８−２は、アドレス保持レジスタ２７−２に設定されているアドレスを選択し、アドレスバス２４を介してメモリ１０のアドレス端子Ａ１へ与える。
【００３４】
（実施例４の効果）
本実施例４によれば、アドレス保持レジスタ２７−１，２７−２及び選択回路２８−１，２８−２を設けたので、ＣＰＵ２０−１，２０−２が不正なアドレスを出力した時にも、アドレス保持レジスタ２７−１，２７−２に正しく設定したアドレスへのアクセスとなり、一方のＣＰＵ２０−１（又は２０−２）が書き込んだデータを他方のＣＰＵ２０−２（又は２０−１）が破壊してしまうことはなくなる。
【００３５】
（変形例）
本発明は、上記実施例１〜４に限定されず、種々の利用形態や変形が可能である。この利用形態や変形例としては、例えば、次の（１）、（２）のようなものがある。
【００３６】
（１）  実施例３を示す図６では、不正アドレス検出回路２６−１，２６−２から割り込み信号ｉｎｔ１，ｉｎｔ２が出力されているが、他の特定のレジスタに不正アドレスが検出されたことを示すような構成にすることもできる。
【００３７】
（２）  実施例４を示す図７では、アドレスオフセット加算回路２１−１，２１−２が設けられているが、不正アドレスを検出した際には、アドレス保持レジスタ２７−１，２７−２で設定されているアドレスへのアクセスを行うようにするため、設けなくてもよい。
【図面の簡単な説明】
【００３８】
【図１】本発明の実施例１を示すアドレスオフセット制御回路の概略の構成図である。
【図２】従来のマルチプロセッサシステムを示す概略の構成図である。
【図３】図１中のメモリ１０の内部データ領域を示す概略の構成図である。
【図４】本発明の実施例２を示すアドレスオフセット制御回路の概略の構成図である。
【図５】図４中のメモリ１０の内部データ領域を示す概略の構成図である。
【図６】本発明の実施例３を示すアドレスオフセット制御回路の概略の構成図である。
【図７】本発明の実施例４を示すアドレスオフセット制御回路の概略の構成図である。
【符号の説明】
【００３９】
１０      メモリ
２０−１，２０−２      ＣＰＵ
２１−１，２１−２      アドレスオフセット加算回路
２２−１，２２−２，２８−１，２８−２      選択回路
２３−１，２３−２      外部端子
２４      アドレスバス
２５−１，２５−２      アドレス判別回路
２６−１，２６−２      不正アドレス検出回路
２７−１，２７−２      アドレス保持レジスタ
【図１】
2008097134.tif 000003
【図２】
2008097134.tif 000004
【図３】
2008097134.tif 000005
【図４】
2008097134.tif 000006
【図５】
2008097134.tif 000007
【図６】
2008097134.tif 000008
【図７】
2008097134.tif 000009