説明

アドレスオフセット制御回路

【課題】あるプロセッサが記憶したデータを他のプロセッサが破壊してしまう可能性があり、その原因となっているソフトウェア(プログラム)の不具合を特定するのに時間が掛かってしまう。
【解決手段】アドレスオフセット制御回路は、複数のアドレスオフセット加算回路21−1,21−2と、複数の選択回路22−1,22−2とを有している。アドレスオフセット加算回路21−1,21−2は、メモリ10に対するアクセスをそれぞれ行うプロセッサ(例えば、CPU)20−1,20−2からそれぞれ出力されるアドレスに、所定のオフセット値をそれぞれ加算して加算結果をそれぞれ出力する。すると、選択回路22−1,22−2は、各アドレスオフセット加算回路21−1,21−2の加算結果と各CPU20−1,20−2から出力されるアドレスとをそれぞれ選択してメモリ10に与える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、共有のメモリをアクセスする複数のプロセッサを有するマルチプロセッサシステム等において、複数のプロセッサ(例えば、中央処理装置、以下「CPU」という。)が同じメモリアドレスに対してデータを書き込んでしまうことでそのメモリ上のデータを破壊してしまい、システムとして誤動作してしまうことを防止するためのアドレスオフセット制御回路に関するものである。
【背景技術】
【0002】
従来、マルチプロセッサシステムとしては、例えば、次のような文献に記載されるものがあった。
【0003】
【特許文献1】特開平11−102348号公報
【特許文献2】特開2001−318906号公報
【特許文献3】特開2002−245022号公報
【0004】
図2は、特許文献1〜3等に記載された従来のマルチプロセッサシステムを示す概略の構成図である。
【0005】
このマルチプロセッサシステムは、アドレス端子A1を有する共有のメモリ1と、アドレスを出力するアドレス端子A2,A3をそれぞれ有するメモリアクセス用の複数のCPU2−1,2−2とを備え、それらのメモリ1のアドレス端子A1と、各CPU2−1,2−2のアドレス端子A2,A3とが、複数(n)ビットの共通のアドレスバス3を介して相互に接続されている。なお、この図2では、説明を簡単にするために、システムバスとしてアドレスバス3のみが記載されている。
【0006】
この種のマルチプロセッサシステムでは、CPU2−1とCPU2−2がアドレスを出力し、同一のメモリ1をアクセス(即ち、リード又はライト)することができる。
【発明の開示】
【発明が解決しようとする課題】
【0007】
しかしながら、従来のマルチプロセッサシステムでは、複数のCPU2−1,2−2が同じメモリ1の同一アドレスに上書きしてしまい、一方のCPU2−1が記憶したデータを他方のCPU2−2が破壊してしまう可能性があり、その原因となっているソフトウェア(プログラム)の不具合を特定するのに時間が掛かってしまうという課題があった。
【課題を解決するための手段】
【0008】
本発明は、マルチプロセッサシステム等におけるアドレスオフセット制御回路であって、複数のアドレスオフセット加算回路と、複数の選択回路とを有している。前記複数のアドレスオフセット加算回路は、共有のメモリに対するアクセスをそれぞれ行う複数のプロセッサからそれぞれ出力されるアドレスに、所定のオフセット値をそれぞれ加算して加算結果をそれぞれ出力する回路である。更に、前記複数の選択回路は、前記各アドレスオフセット加算回路の前記加算結果と前記各プロセッサから出力される前記アドレスとをそれぞれ選択して前記メモリに与える回路である。
【発明の効果】
【0009】
本発明によれば、複数のアドレスオフセット加算回路及び複数の選択回路を設けたので、複数のプロセッサから出力されるアドレスを排他的に制御することができ、競合が発生せず、あるプロセッサが他のプロセッサのデータを破壊してしまうことを防ぐことができる。
【発明を実施するための最良の形態】
【0010】
アドレスオフセット制御回路は、複数のアドレスオフセット加算回路と、複数の選択回路とを有している。前記複数のアドレスオフセット加算回路は、共有のメモリに対するアクセスをそれぞれ行う複数のプロセッサ(例えば、CPU)からそれぞれ出力されるアドレスに、所定のオフセット値をそれぞれ加算して加算結果をそれぞれ出力する。すると、前記複数の選択回路は、前記各アドレスオフセット加算回路の前記加算結果と前記各CPUから出力される前記アドレスとをそれぞれ選択して前記メモリに与える。
【実施例1】
【0011】
(実施例1の構成)
図1は、本発明の実施例1を示すマルチプロセッサシステム等におけるアドレスオフセット制御回路の概略の構成図である。
【0012】
このアドレスオフセット制御回路は、半導体集積回路等で構成され、この半導体集積回路等の内部又は外部に設けられた共有のメモリ10と、このメモリ10に対してアクセスを行うための複数(例えば、2つ)のプロセッサ(例えば、CPU)20−1,20−2とを有している。メモリ10は、アドレス入力用のアドレス端子A1等を有し、随時読み書き可能なメモリ(以下「RAM」という。)等で構成されている。各CPU20−1,20−2は、アドレス出力用のアドレス端子A2,A3等を有し、この各アドレス端子A2,A3に、アドレスオフセット加算回路21−1,21−2の入力端子がそれぞれ接続されると共に、選択回路22−1,22−2の論理“0”入力端子がそれぞれ接続されている。
【0013】
各アドレスオフセット加算回路21−1,21−2の出力端子は、各選択回路22−1,22−2の論理“1”入力端子に接続されている。各選択回路22−1,22−2は、各選択端子に接続された各外部端子23−1,23−2からの信号“0”又は“1”に基づき、“0”入力端子又は“1”入力端子の入力信号を選択して出力端子から出力する回路であり、この各選択回路22−1,22−2の出力端子が、複数(n)ビットのアドレスバス24を介して、メモリ10のアドレス端子A1に接続されている。
【0014】
なお、図1では、説明を簡単にするために、システムバスとしてアドレスバス24のみが記載されている。
【0015】
図3は、図1中のメモリ10の内部データ領域を示す概略の構成図である。
メモリ10は、例えば、アドレス0000番地からアドレス7FFF番地までのCPU20−1の使用領域11と、アドレス8000番地からアドレスFFFF番地までのCPU20−2の使用領域12とを有している。CPU20−1とCPU20−2は、それぞれメモリ10を共通にアクセス(リード又はライト)するが、同じ領域を共有することはしない。
【0016】
(実施例1の動作)
例えば、外部端子23−1を“0”に設定し、外部端子23−2を“1”に設定すると、選択回路22−1が“0”入力端子を選択し、選択回路22−2が“1”入力端子を選択する。すると、CPU20−1のアドレス端子A2から出力されるアドレスは、選択回路22−1により選択されてアドレスバス24へ送られ、CPU20−2のアドレス端子A3から出力されるアドレスは、アドレスオフセット加算回路21−2へ与えられる。
【0017】
アドレスオフセット加算回路21−2は、CPU20−2のアドレス端子A3から出力されるアドレスにオフセット値8000を加算して出力する。この加算されたアドレスは、選択回路22−2により選択され、アドレスバス24を介してメモリ10のアドレス端子A1へ与えられる。これにより、CPU20−1とCPU20−2は、同じメモリ10の異なる使用領域11,12にアクセスすることになり、リードやライトが競合することがない。
【0018】
(実施例1の効果)
本実施例1によれば、アドレスオフセット加算回路21−1,21−2と選択回路22−1,22−2を設けたので、CPU20−1,20−2から出力されるアドレスを排他的に制御することができ、競合が発生せず、一方のCPU20−1(又は20−2)が他方のCPU20−2(又は20−1)のデータを破壊してしまうことを防ぐことができる。
【実施例2】
【0019】
(実施例2の構成)
図4は、本発明の実施例2を示すマルチプロセッサシステム等におけるアドレスオフセット制御回路の概略の構成図であり、実施例1を示す図1中の要素と共通の要素には共通の符号が付されている。
【0020】
本実施例2のアドレスオフセット制御回路では、実施例1の外部端子23−1,23−2に代えて、アドレス判別回路25−1,25−2が設けられている。各アドレス判別回路25−1,25−2は、各入力端子が各CPU20−1,20−2のアドレス端子A2,A3に接続され、各出力端子が各選択回路22−1,22−2の選択端子に接続され、各CPU20−1,20−2のアドレス端子A2,A3から出力されるアドレスを判別してこの判別結果に応じて選択回路22−1,22−2の“0”入力端子又は“1”入力端子を選択する回路である。その他の構成は、実施例1と同様である。
【0021】
図5は、図4中のメモリ10の内部データ領域を示す概略の構成図である。
メモリ10は、例えば、アドレス0000番地からアドレスFFFF番地までにおいて、CPU20−1,20−2の任意の使用領域13,14を有している。CPU20−1とCPU20−2は、それぞれメモリ10を共通にアクセス(リード又はライト)するが、同じ領域を共有することはしない。
【0022】
(実施例2の動作)
各アドレス判別回路25−1,25−2は、例えば、各CPU20−1,20−2のアドレス端子A2,A3から出力されるアドレスの上位数ビットがオール“0”であるか否かを判別し、上位数ビットがオール“0”の場合には“1”を出力し、そうでない場合には“0”を出力する。各アドレス判別回路25−1,25−2の出力信号が“1”の時は、各選択回路22−1,22−2が各アドレスオフセット加算回路21−1,21−2の出力信号を選択する。
【0023】
そのため、CPU20−1,20−2がリード又はライトしようとするアドレスの上位数ビットがオール“0”の時は、アドレスオフセット加算回路21−1,21−2により、CPU20−1,20−2から出力されるアドレスにアドレスオフセット値が加算され、その使用領域13,14のアドレスがメモリ10へ与えられる。各アドレスオフセット加算回路21−1,21−2には、それぞれ異なったアドレスオフセット値が加算されるように設計しておくことで、各CPU20−1,20−2は同じメモリ10の異なる使用領域13,14にアクセスすることになり、リードやライトが競合することがない。
【0024】
(実施例2の効果)
本実施例2によれば、アドレス判別回路25−1,25−2を設けたので、実施例1のような外部端子23−1,23−2を使用することなく、アドレスオフセット加算回路21−1,21−2の出力信号を使用でき、図5に示すように、CPU20−1,20−2から出力されるアドレスを排他的に制御することができる。これにより、競合が発生せず、一方のCPU20−1(又は20−2)が他方のCPU20−2(又は20−1)のデータを破壊してしまうことを防ぐことができる。
【実施例3】
【0025】
(実施例3の構成)
図6は、本発明の実施例3を示すマルチプロセッサシステム等におけるアドレスオフセット制御回路の概略の構成図であり、実施例2を示す図4中の要素と共通の要素には共通の符号が付されている。
【0026】
本実施例3のアドレスオフセット制御回路では、実施例2の各CPU20−1,20−2のアドレス端子A2,A3に、新たに追加された不正アドレス検出回路26−1,26−2の入力端子がそれぞれ接続されている。各不正アドレス検出回路26−1,26−2は、各CPU20−1,20−2から不正アドレスが出力されると、これを検出して割り込み信号int1,int2をアサートし、各CPU20−1,20−2へ知らせる回路である。その他の構成は、実施例2と同様である。
【0027】
(実施例3の動作)
例えば、CPU20−1がアドレス端子A2から不正なアドレスを出力すると、アドレスオフセット加算回路21−1は、その不正なアドレスにアドレスオフセット値を加算したアドレスを選択回路22−1へ出力する。アドレス判別回路25−1は、その不正なアドレスが入力されると、“1”を選択回路22−1へ出力する。これにより、選択回路22−1は、アドレスオフセット加算回路21−1の出力信号を選択し、アドレスバス24を介してメモリ10のアドレス端子A1へ与える。同時に、不正アドレス検出回路26−1が、CPU20−1から出力された不正なアドレスを検出するので、割り込み信号int1をアサートし、CPU20−1,20−2へ知らせる。
【0028】
同様に、CPU20−2がアドレス端子A3から不正なアドレスを出力すると、アドレスオフセット加算回路21−2は、その不正なアドレスにアドレスオフセット値を加算したアドレスを選択回路22−2へ出力する。アドレス判別回路25−2は、その不正なアドレスが入力されると、“1”を選択回路22−2へ出力する。これにより、選択回路22−2は、アドレスオフセット加算回路21−2の出力信号を選択し、アドレスバス24を介してメモリ10のアドレス端子A1へ与える。同時に、不正アドレス検出回路26−2が、CPU20−2から出力された不正なアドレスを検出するので、割り込み信号int2をアサートし、CPU20−1,20−2へ知らせる。
【0029】
(実施例3の効果)
本実施例3によれば、不正アドレス検出回路26−1,26−2を設けたので、CPU20−1,20−2が不正なアドレスを出力した際に、割り込み信号int1,int2が入るようになり、CPU20−1,20−2にてそれぞれ動いているプログラムのデバッグを容易にできるようになる。
【実施例4】
【0030】
(実施例4の構成)
図7は、本発明の実施例4を示すマルチプロセッサシステム等におけるアドレスオフセット制御回路の概略の構成図であり、実施例3を示す図6中の要素と共通の要素には共通の符号が付されている。
【0031】
本実施例4のアドレスオフセット制御回路では、実施例3の各不正アドレス検出回路26−1,26−2の他の出力端子と各選択回路22−1,22−2の出力端子とが、新たに追加された各アドレス保持手段(例えば、アドレス保持レジスタ27−1,27−2及び選択回路28−1,28−2)を介して、アドレスバス24に接続されている。
【0032】
各アドレス保持レジスタ27−1,27−2は、設定された正常なアドレスを保持するレジスタであり、この各出力端子が各選択回路28−1,28−2の“1”入力端子に接続され、この各選択回路28−1,28−2の“0”入力端子が、各選択回路22−1,22−2の出力端子に接続されている。各選択回路28−1,28−2は、各不正アドレス検出回路26−1,26−2の出力信号“0”又は“1”により、“0”入力端子の入力信号又は“1”入力端子の入力信号を選択してアドレスバス24へ出力する回路である。その他の構成は、実施例3と同様である。
【0033】
(実施例4の動作)
例えば、CPU20−1がアドレス端子A2から不正なアドレスを出力すると、不正アドレス検出回路26−1は、他の出力端子から信号“1”を出力する。これにより、選択回路28−1は、アドレス保持レジスタ27−1に設定されているアドレスを選択し、アドレスバス24を介してメモリ10のアドレス端子A1へ与える。同様に、CPU20−2がアドレス端子A3から不正なアドレスを出力すると、不正アドレス検出回路26−2は、他の出力端子から信号“1”を出力する。これにより、選択回路28−2は、アドレス保持レジスタ27−2に設定されているアドレスを選択し、アドレスバス24を介してメモリ10のアドレス端子A1へ与える。
【0034】
(実施例4の効果)
本実施例4によれば、アドレス保持レジスタ27−1,27−2及び選択回路28−1,28−2を設けたので、CPU20−1,20−2が不正なアドレスを出力した時にも、アドレス保持レジスタ27−1,27−2に正しく設定したアドレスへのアクセスとなり、一方のCPU20−1(又は20−2)が書き込んだデータを他方のCPU20−2(又は20−1)が破壊してしまうことはなくなる。
【0035】
(変形例)
本発明は、上記実施例1〜4に限定されず、種々の利用形態や変形が可能である。この利用形態や変形例としては、例えば、次の(1)、(2)のようなものがある。
【0036】
(1) 実施例3を示す図6では、不正アドレス検出回路26−1,26−2から割り込み信号int1,int2が出力されているが、他の特定のレジスタに不正アドレスが検出されたことを示すような構成にすることもできる。
【0037】
(2) 実施例4を示す図7では、アドレスオフセット加算回路21−1,21−2が設けられているが、不正アドレスを検出した際には、アドレス保持レジスタ27−1,27−2で設定されているアドレスへのアクセスを行うようにするため、設けなくてもよい。
【図面の簡単な説明】
【0038】
【図1】本発明の実施例1を示すアドレスオフセット制御回路の概略の構成図である。
【図2】従来のマルチプロセッサシステムを示す概略の構成図である。
【図3】図1中のメモリ10の内部データ領域を示す概略の構成図である。
【図4】本発明の実施例2を示すアドレスオフセット制御回路の概略の構成図である。
【図5】図4中のメモリ10の内部データ領域を示す概略の構成図である。
【図6】本発明の実施例3を示すアドレスオフセット制御回路の概略の構成図である。
【図7】本発明の実施例4を示すアドレスオフセット制御回路の概略の構成図である。
【符号の説明】
【0039】
10 メモリ
20−1,20−2 CPU
21−1,21−2 アドレスオフセット加算回路
22−1,22−2,28−1,28−2 選択回路
23−1,23−2 外部端子
24 アドレスバス
25−1,25−2 アドレス判別回路
26−1,26−2 不正アドレス検出回路
27−1,27−2 アドレス保持レジスタ

【特許請求の範囲】
【請求項1】
共有のメモリに対するアクセスをそれぞれ行う複数のプロセッサからそれぞれ出力されるアドレスに、所定のオフセット値をそれぞれ加算して加算結果をそれぞれ出力する複数のアドレスオフセット加算回路と、
前記各アドレスオフセット加算回路の前記加算結果と前記各プロセッサから出力される前記アドレスとをそれぞれ選択して前記メモリに与える複数の選択回路と、
を有することを特徴とするアドレスオフセット制御回路。
【請求項2】
請求項1記載のアドレスオフセット制御回路は、更に、
前記各プロセッサから出力される前記アドレスをそれぞれ判別して前記各選択回路の選択動作をそれぞれ制御する複数のアドレス判別回路を有することを特徴とするアドレスオフセット制御回路。
【請求項3】
請求項2記載のアドレスオフセット制御回路は、更に、
前記各プロセッサから出力される前記アドレスの不正状態をそれぞれ検出して前記各プロセッサに対して割り込み信号をそれぞれ与える複数の不正アドレス検出回路を有することを特徴とするアドレスオフセット制御回路。
【請求項4】
請求項3記載のアドレスオフセット制御回路は、更に、
前記各プロセッサが不正なアドレスを出力した際に、保持した正常なアドレスをそれぞれ出力して前記メモリに与える複数のアドレス保持手段を有することを特徴とするアドレスオフセット制御回路。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2008−97134(P2008−97134A)
【公開日】平成20年4月24日(2008.4.24)
【国際特許分類】
【出願番号】特願2006−275562(P2006−275562)
【出願日】平成18年10月6日(2006.10.6)
【出願人】(000000295)沖電気工業株式会社 (6,645)
【Fターム(参考)】