JP2008097134A - アドレスオフセット制御回路 - Google Patents

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

Info

Publication number
JP2008097134A
JP2008097134A JP2006275562A JP2006275562A JP2008097134A JP 2008097134 A JP2008097134 A JP 2008097134A JP 2006275562 A JP2006275562 A JP 2006275562A JP 2006275562 A JP2006275562 A JP 2006275562A JP 2008097134 A JP2008097134 A JP 2008097134A
Authority
JP
Japan
Prior art keywords
address
circuits
output
control circuit
address offset
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2006275562A
Other languages
English (en)
Inventor
Yoshitaka Suzuki
嘉貴 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP2006275562A priority Critical patent/JP2008097134A/ja
Priority to US11/769,119 priority patent/US20080086538A1/en
Publication of JP2008097134A publication Critical patent/JP2008097134A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs

Abstract

【課題】あるプロセッサが記憶したデータを他のプロセッサが破壊してしまう可能性があり、その原因となっているソフトウェア(プログラム)の不具合を特定するのに時間が掛かってしまう。
【解決手段】アドレスオフセット制御回路は、複数のアドレスオフセット加算回路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に与える。
【選択図】図1

Description

本発明は、共有のメモリをアクセスする複数のプロセッサを有するマルチプロセッサシステム等において、複数のプロセッサ(例えば、中央処理装置、以下「CPU」という。)が同じメモリアドレスに対してデータを書き込んでしまうことでそのメモリ上のデータを破壊してしまい、システムとして誤動作してしまうことを防止するためのアドレスオフセット制御回路に関するものである。
従来、マルチプロセッサシステムとしては、例えば、次のような文献に記載されるものがあった。
特開平11−102348号公報 特開2001−318906号公報 特開2002−245022号公報
図2は、特許文献1〜3等に記載された従来のマルチプロセッサシステムを示す概略の構成図である。
このマルチプロセッサシステムは、アドレス端子A1を有する共有のメモリ1と、アドレスを出力するアドレス端子A2,A3をそれぞれ有するメモリアクセス用の複数のCPU2−1,2−2とを備え、それらのメモリ1のアドレス端子A1と、各CPU2−1,2−2のアドレス端子A2,A3とが、複数(n)ビットの共通のアドレスバス3を介して相互に接続されている。なお、この図2では、説明を簡単にするために、システムバスとしてアドレスバス3のみが記載されている。
この種のマルチプロセッサシステムでは、CPU2−1とCPU2−2がアドレスを出力し、同一のメモリ1をアクセス(即ち、リード又はライト)することができる。
しかしながら、従来のマルチプロセッサシステムでは、複数のCPU2−1,2−2が同じメモリ1の同一アドレスに上書きしてしまい、一方のCPU2−1が記憶したデータを他方のCPU2−2が破壊してしまう可能性があり、その原因となっているソフトウェア(プログラム)の不具合を特定するのに時間が掛かってしまうという課題があった。
本発明は、マルチプロセッサシステム等におけるアドレスオフセット制御回路であって、複数のアドレスオフセット加算回路と、複数の選択回路とを有している。前記複数のアドレスオフセット加算回路は、共有のメモリに対するアクセスをそれぞれ行う複数のプロセッサからそれぞれ出力されるアドレスに、所定のオフセット値をそれぞれ加算して加算結果をそれぞれ出力する回路である。更に、前記複数の選択回路は、前記各アドレスオフセット加算回路の前記加算結果と前記各プロセッサから出力される前記アドレスとをそれぞれ選択して前記メモリに与える回路である。
本発明によれば、複数のアドレスオフセット加算回路及び複数の選択回路を設けたので、複数のプロセッサから出力されるアドレスを排他的に制御することができ、競合が発生せず、あるプロセッサが他のプロセッサのデータを破壊してしまうことを防ぐことができる。
アドレスオフセット制御回路は、複数のアドレスオフセット加算回路と、複数の選択回路とを有している。前記複数のアドレスオフセット加算回路は、共有のメモリに対するアクセスをそれぞれ行う複数のプロセッサ(例えば、CPU)からそれぞれ出力されるアドレスに、所定のオフセット値をそれぞれ加算して加算結果をそれぞれ出力する。すると、前記複数の選択回路は、前記各アドレスオフセット加算回路の前記加算結果と前記各CPUから出力される前記アドレスとをそれぞれ選択して前記メモリに与える。
(実施例1の構成)
図1は、本発明の実施例1を示すマルチプロセッサシステム等におけるアドレスオフセット制御回路の概略の構成図である。
このアドレスオフセット制御回路は、半導体集積回路等で構成され、この半導体集積回路等の内部又は外部に設けられた共有のメモリ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”入力端子がそれぞれ接続されている。
各アドレスオフセット加算回路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に接続されている。
なお、図1では、説明を簡単にするために、システムバスとしてアドレスバス24のみが記載されている。
図3は、図1中のメモリ10の内部データ領域を示す概略の構成図である。
メモリ10は、例えば、アドレス0000番地からアドレス7FFF番地までのCPU20−1の使用領域11と、アドレス8000番地からアドレスFFFF番地までのCPU20−2の使用領域12とを有している。CPU20−1とCPU20−2は、それぞれメモリ10を共通にアクセス(リード又はライト)するが、同じ領域を共有することはしない。
(実施例1の動作)
例えば、外部端子23−1を“0”に設定し、外部端子23−2を“1”に設定すると、選択回路22−1が“0”入力端子を選択し、選択回路22−2が“1”入力端子を選択する。すると、CPU20−1のアドレス端子A2から出力されるアドレスは、選択回路22−1により選択されてアドレスバス24へ送られ、CPU20−2のアドレス端子A3から出力されるアドレスは、アドレスオフセット加算回路21−2へ与えられる。
アドレスオフセット加算回路21−2は、CPU20−2のアドレス端子A3から出力されるアドレスにオフセット値8000を加算して出力する。この加算されたアドレスは、選択回路22−2により選択され、アドレスバス24を介してメモリ10のアドレス端子A1へ与えられる。これにより、CPU20−1とCPU20−2は、同じメモリ10の異なる使用領域11,12にアクセスすることになり、リードやライトが競合することがない。
(実施例1の効果)
本実施例1によれば、アドレスオフセット加算回路21−1,21−2と選択回路22−1,22−2を設けたので、CPU20−1,20−2から出力されるアドレスを排他的に制御することができ、競合が発生せず、一方のCPU20−1(又は20−2)が他方のCPU20−2(又は20−1)のデータを破壊してしまうことを防ぐことができる。
(実施例2の構成)
図4は、本発明の実施例2を示すマルチプロセッサシステム等におけるアドレスオフセット制御回路の概略の構成図であり、実施例1を示す図1中の要素と共通の要素には共通の符号が付されている。
本実施例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と同様である。
図5は、図4中のメモリ10の内部データ領域を示す概略の構成図である。
メモリ10は、例えば、アドレス0000番地からアドレスFFFF番地までにおいて、CPU20−1,20−2の任意の使用領域13,14を有している。CPU20−1とCPU20−2は、それぞれメモリ10を共通にアクセス(リード又はライト)するが、同じ領域を共有することはしない。
(実施例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の出力信号を選択する。
そのため、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にアクセスすることになり、リードやライトが競合することがない。
(実施例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の構成)
図6は、本発明の実施例3を示すマルチプロセッサシステム等におけるアドレスオフセット制御回路の概略の構成図であり、実施例2を示す図4中の要素と共通の要素には共通の符号が付されている。
本実施例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と同様である。
(実施例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へ知らせる。
同様に、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へ知らせる。
(実施例3の効果)
本実施例3によれば、不正アドレス検出回路26−1,26−2を設けたので、CPU20−1,20−2が不正なアドレスを出力した際に、割り込み信号int1,int2が入るようになり、CPU20−1,20−2にてそれぞれ動いているプログラムのデバッグを容易にできるようになる。
(実施例4の構成)
図7は、本発明の実施例4を示すマルチプロセッサシステム等におけるアドレスオフセット制御回路の概略の構成図であり、実施例3を示す図6中の要素と共通の要素には共通の符号が付されている。
本実施例4のアドレスオフセット制御回路では、実施例3の各不正アドレス検出回路26−1,26−2の他の出力端子と各選択回路22−1,22−2の出力端子とが、新たに追加された各アドレス保持手段(例えば、アドレス保持レジスタ27−1,27−2及び選択回路28−1,28−2)を介して、アドレスバス24に接続されている。
各アドレス保持レジスタ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と同様である。
(実施例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へ与える。
(実施例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)が破壊してしまうことはなくなる。
(変形例)
本発明は、上記実施例1〜4に限定されず、種々の利用形態や変形が可能である。この利用形態や変形例としては、例えば、次の(1)、(2)のようなものがある。
(1) 実施例3を示す図6では、不正アドレス検出回路26−1,26−2から割り込み信号int1,int2が出力されているが、他の特定のレジスタに不正アドレスが検出されたことを示すような構成にすることもできる。
(2) 実施例4を示す図7では、アドレスオフセット加算回路21−1,21−2が設けられているが、不正アドレスを検出した際には、アドレス保持レジスタ27−1,27−2で設定されているアドレスへのアクセスを行うようにするため、設けなくてもよい。
本発明の実施例1を示すアドレスオフセット制御回路の概略の構成図である。 従来のマルチプロセッサシステムを示す概略の構成図である。 図1中のメモリ10の内部データ領域を示す概略の構成図である。 本発明の実施例2を示すアドレスオフセット制御回路の概略の構成図である。 図4中のメモリ10の内部データ領域を示す概略の構成図である。 本発明の実施例3を示すアドレスオフセット制御回路の概略の構成図である。 本発明の実施例4を示すアドレスオフセット制御回路の概略の構成図である。
符号の説明
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 アドレス保持レジスタ

Claims (4)

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

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006275562A JP2008097134A (ja) 2006-10-06 2006-10-06 アドレスオフセット制御回路
US11/769,119 US20080086538A1 (en) 2006-10-06 2007-06-27 Address offset control circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006275562A JP2008097134A (ja) 2006-10-06 2006-10-06 アドレスオフセット制御回路

Publications (1)

Publication Number Publication Date
JP2008097134A true JP2008097134A (ja) 2008-04-24

Family

ID=39275814

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006275562A Withdrawn JP2008097134A (ja) 2006-10-06 2006-10-06 アドレスオフセット制御回路

Country Status (2)

Country Link
US (1) US20080086538A1 (ja)
JP (1) JP2008097134A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011180840A (ja) * 2010-03-01 2011-09-15 Toshiba Corp プロセッサ、マルチプロセッサシステム、及びメモリアクセス不正検出方法
JP2015095218A (ja) * 2013-11-14 2015-05-18 株式会社デンソー 電子制御装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6813522B1 (en) * 2000-12-29 2004-11-02 Emc Corporation Method of sharing memory in a multi-processor system including a cloning of code and data
JP4394298B2 (ja) * 2001-02-20 2010-01-06 日本電気株式会社 マルチプロセッサシステムとその共有メモリ制御方法、及び共有メモリ制御プログラム
US6647483B1 (en) * 2001-03-01 2003-11-11 Lsi Logic Corporation Address translation circuit for processors utilizing a single code image

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011180840A (ja) * 2010-03-01 2011-09-15 Toshiba Corp プロセッサ、マルチプロセッサシステム、及びメモリアクセス不正検出方法
JP2015095218A (ja) * 2013-11-14 2015-05-18 株式会社デンソー 電子制御装置

Also Published As

Publication number Publication date
US20080086538A1 (en) 2008-04-10

Similar Documents

Publication Publication Date Title
JP5535547B2 (ja) セキュアメモリインターフェース
KR101153712B1 (ko) 멀티-포트 sdram 엑세스 제어장치와 제어방법
US9798679B2 (en) Information processing device and processor
JP2008130056A (ja) 半導体回路
JP4587756B2 (ja) 半導体集積回路装置
US9753870B2 (en) Hardware monitor with context switching and selection based on a data memory access and for raising an interrupt when a memory access address is outside of an address range of the selected context
JP2018511860A (ja) 統合プロセッサを備えたdram回路
US6421765B1 (en) Method and apparatus for selecting functional space in a low pin count memory device
JP2006171952A (ja) 半導体集積回路装置
JP2000132430A (ja) 信号処理装置
JP2008097134A (ja) アドレスオフセット制御回路
JP2005293596A (ja) データ要求のアービトレーション
JP2007334432A (ja) 情報処理装置及びそのアクセス制御方法
US8032720B2 (en) Memory access monitoring apparatus and related method
US20050022073A1 (en) Microcomputer system
JP2007058493A (ja) マルチプロセッサシステム及びそれにおける排他制御方法
US5893932A (en) Address path architecture
JP2008102886A (ja) バス制御方法および装置
JP2003309564A (ja) マイクロコンピュータシステムおよびそれに使用されるトランシーバ
JP5464676B2 (ja) 半導体装置
JP2007316880A (ja) デュアルポートメモリのアクセス権調停方式
JP2006155488A (ja) データ処理装置およびデータ処理方法
JP2004021422A (ja) マイクロコンピュータ
JP4426344B2 (ja) メモリデバイス制御方法および装置
JP2002032352A (ja) マルチプロセッサシステム

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20100105