JP3795978B2 - マイクロプロセッサ及びマルチプロセッサシステム - Google Patents
マイクロプロセッサ及びマルチプロセッサシステム Download PDFInfo
- Publication number
- JP3795978B2 JP3795978B2 JP31323996A JP31323996A JP3795978B2 JP 3795978 B2 JP3795978 B2 JP 3795978B2 JP 31323996 A JP31323996 A JP 31323996A JP 31323996 A JP31323996 A JP 31323996A JP 3795978 B2 JP3795978 B2 JP 3795978B2
- Authority
- JP
- Japan
- Prior art keywords
- bus
- bus right
- microprocessor
- central processing
- processing unit
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Multi Processors (AREA)
- Bus Control (AREA)
Description
【発明の属する技術分野】
本発明は、外部に対するバス権の獲得と解放をハンドシェークで制御する機能を備えたマイクロプロセッサに係り、特にバス権の解放に対して自由度を持たせる技術に関し、例えば、シンクロナスDRAMのような初期化を必要とする共有資源が共通バスに接続されたマルチプロセッサシステムにおいて、前記共有資源が初期化される前に不当にアクセスされるのを禁止するのに適用して有効な技術に関するものである。
【0002】
【従来の技術】
マルチプロセッサシステムにおいて夫々のマイクロプロセッサが共有資源をアクセスするためのバス占有権の移動に関しては、一つのマイクロプロセッサがマスタプロセッサとされ、初期的にバス権を獲得する。残りのマイクロプロセッサはスレーブプロセッサとされ、必要に応じてマスタプロセッサからバス権を獲得する。このとき、スレーブプロセッサのバス権要求の優先度はマスタ側のバス権よりも高く設定されている。このため、マスタプロセッサは、スレーブプロセッサからバス権の要求があれば、マスタプロセッサのバスサイクル終了後直ちに、バス権を解放するようになっている。例えばシステムリセットが行われると、マスタプロセッサが初期的にバス権を獲得する。マスタプロセッサは、スレーブプロセッサから供給されるバス権要求信号がアサートされると、マスタプロセッサのバスサイクル終了後直ちに、バス権を解放し、バス権承認信号をアサートする。スレーブプロセッサは、バス権承認信号がアサートされることによってバス権の解放を認識して、バスサイクルを起動する。スレーブプロセッサは、バス権を獲得しているとき、バス承認信号がネゲートされることによって、マスタプロセッサからのバス権要求を認識し、スレーブプロセッサのバスサイクル終了後、バス権を解放して、バス権要求信号をネゲートする。これによってマスタプロセッサは再度バス権を獲得する。
【0003】
尚、マルチプロセッサシステムについて記載された文献の例としては昭和60年12月25日に株式会社オーム社発行の「マイクロコンピュータハンドブック」第674頁及び第675頁がある。
【0004】
【発明が解決しようとする課題】
上述のハンドシェークによるバス権の獲得と解放の制御では、マイクロプロセッサはバス権の解放に関して自由度を持たない。マスタプロセッサはスレーブプロセッサからバス権解放要求があれば即座にバス権を解放しなければならず、スレーブプロセッサはマスタマスタプロセッサからのバス権解放の承認が撤回されると即座にバス権をマスタプロセッサに解放しなければならない。したがって、マイクロプロセッサはスレーブ又はマスタの何れであっても、所定の処理を完了するまでの間、バスを占有し続けることができない場合がある。すなわち、バス権の解放に関し自由度がない。このため、データ処理の高速化、データ処理の信頼性という観点から、バスを介してあるまとまった処理を一連に行わなければならないようなシステム用途では支障があった。
【0005】
例えば、上記のようなマルチプロセッサシステムにおいて、共通バスに接続された共有資源は、動作に当たって初期化を要するものと要しないものがある。初期化を必要としない共有資源としてはSRAM(Static Random Access Memory)やDRAM(Dynamic Random Access Memory)などがある。初期化を必要とする共有資源には、シンクロナスDRAMなどがある。シンクロナスDRAMにおいては、バースト長やレイテンシ等が初期設定されて始めて正常動作可能にされる。
【0006】
初期化を要しない共有資源に関しては、マスタプロセッサとスレーブプロセッサは夫々の動作プログラムに従ってハンドシェークでバス権の獲得及び解放を行えば、双方のプロセッサは共に当該共有資源を正常にアクセスできる。
【0007】
これに対し、複数のプロセッサが初期化を要する資源を共有する場合、スレーブプロセッサは、マスタプロセッサがそのような共有資源の初期設定を完了する前であっても、マスタプロセッサにバス権の要求を発行する事ができる。マスタプロセッサは、スレーブプロセッサからのバス権の要求に対して直ちにバス権を解放することになり、これによってスレーブプロセッサが初期化未完了の共有資源をアクセスすると、その正常動作を保証することはできない。
【0008】
この問題には、ハンドシェークによるバス権の獲得と解放に対して自由度を持たせることが一つの解決策になる、ということが本発明者によって明らかにされた。従来のマクロプロセッサはその解決策が考慮されていなかった。その場合には、マルチプロセッサシステム上、マイクロプロセッサの外部に特別な回路を用意して対処することが必要になると考えられる。公知ではないが、例えば、共有資源の初期化をマスタプロセッサが行う場合、システムリセットに際して、スレーブプロセッサに対するリセット信号のネゲートをマスタプロセッサによる初期化完了後に行うようにする外部回路を設けて対処することができる。また、初期化を要する共有資源に対する初期化完了フラグを設け、マスタプロセッサは初期化完了後にそのフラグをセットし、スレーブプロセッサはそのフラグのセット状態を確認してからアクセスを開始する様にして対処出来る。或いは、リセット直後にスレーブプロセッサを待機状態に制御し、マスタプロセッサによる初期化動作完了後に、スレーブプロセッサの待機状態を解除するための割り込み信号の発生回路を設けて対処したりすることができると考えられる。
【0009】
しかしながら、何れの場合にも、システム上で特別な外部回路を構成しなければならず、また、ソフトウェア的にも処理が複雑化することが予想される。
【0010】
本発明の目的は、ハンドシェークによるバス権の獲得と解放に対して自由度を持たせることができるマイクロプロセッサを提供することにある。特にそのような自由度はCPUの動作プログラムで制御できるようにする。
【0011】
本発明の別の目的は、外部周辺回路の初期化を担うときその初期化を完了するまで外部からのバス権要求を無視できるマイクロプロセッサを提供することにある。
【0012】
本発明の更に別の目的は、初期化を要する共有資源の初期化完了前に当該共有資源が任意にアクセスされて誤動作を生ずる虞を排除することができ、しかもそのためにシステム上で特別な外部回路を構成したり、ソフトウェア的にも処理を複雑化しなくても済むようにできるマルチプロセッサシステムを提供することにある。
【0013】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【0014】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【0015】
ハンドシェークによるバス権の獲得と解放に関する自由度をマイクロプロセッサに持たせるという観点による第1のマイクロプロセッサは、フェッチした命令を実行するCPUを半導体基板に含み、このマイクロプロセッサの動作モードが初期的にバス権を有するマスタモードか、必要に応じてバス権を獲得するスレーブモードかを決定するためのマスタ・スレーブモード制御情報が設定される第1の記憶手段と、前記CPUによって書き換え可能にバス権解放許可制御情報が初期設定される第2の記憶手段と、前記マスタ・スレーブモード制御情報によってマスタモードが設定された状態において、前記第2の記憶手段に設定された前記バス権解放許可制御情報が非活性状態のとき、当該バス権解放許可制御情報が活性状態に反転されるまで外部からのバス権解放要求信号のアサートによるバス権解放要求を無効化するバス調停手段と有する。
【0016】
このマイクロプロセッサがマルチプロセッサシステムにおけるマスタプロセッサに割り当てられるとき、システムリセット等によってバス権解放許可制御情報が非活性状態に初期化されると、バス調停手段は外部からのバス権解放要求信号のアサートによるバス権解放要求を無効化するから、外部バスアクセスを伴う所要の処理を完了するまで、バス権解放許可制御情報を非活性状態に維持することによって、外部からのバス解放要求とは無関係にバス権を維持することができる。即ち、マイクロプロセッサは、ハンドシェークによるバス権の獲得と解放に対して自由度を持つことができる。しかも、バス権解放許可制御情報が格納される第2の記憶手段は内蔵CPUがアクセスして書き換え可能であるから、そのような自由度はCPUの動作プログラムで制御できる。
【0017】
バス権を維持する期間において、マイクロプロセッサは例えば、マルチプロセッサシステムにおいて初期化動作を要する共有資源としての周辺回路の初期化を完了する。完了後、CPUがバス権解放許可制御情報を活性状態に反転することにより、バス調停手段は外部からのバス権解放要求信号のアサートに応じてバス権を解放する。このように、前記マイクロプロセッサは、外部周辺回路の初期化を担うときその初期化を完了するまで外部からのバス権要求を無視できるから、初期化を要する共有資源の初期化完了前に当該共有資源が任意にアクセスされて誤動作を生ずる虞を排除することができ、しかもそのためにシステム上で特別な外部回路を構成したり、ソフトウェア的にも複雑な処理を行わなくても済む。
【0018】
マスタモードが設定されるマイクロプロセッサのリセット動作直後におけるそのような初期化動作を考慮すると、マイクロプロセッサの使い勝手の点において、前記第1の記憶手段はマイクロプロセッサのリセット動作に応じてマスタ・スレーブモード制御情報が初期設定され、前記第2の記憶手段は、マスタ・スレーブ制御情報によるマスタモードの設定に呼応して、非活性状態のバス権解放許可制御情報が初期設定されるものであることが望ましい。
【0019】
ハンドシェークによるバス権の獲得と解放に関する自由度をマイクロプロセッサに持たせるという観点による別の第2のマイクロプロセッサは、スレーブモードが設定された状態において、前記第2の記憶手段に設定された前記バス権解放許可制御情報が活性状態のとき、当該バス権解放許可制御情報が非活性状態に反転されるまで外部からのバス権解放承認信号のネゲートによるバス権解放要求を無効化するバス調停手段を採用する。
【0020】
このマイクロプロセッサによれば、当該マイクロプロセッサがマルチプロセッサシステムにおけるスレーブプロセッサに割り当てられるとき、そのバス調停手段はマスタプロセッサにバス権解放要求信号をアサートすると、それに応答するバス権解放承認信号がマスタプロセッサからアサートされることによってバス権を獲得できる。このスレーブプロセッサはシステムリセット等によってバス権解放許可制御情報は活性状態に初期化されているから、前記の様にして一旦バス権を獲得したとき、そのバス調停手段は外部(マスタプロセッサ)からのバス権解放承認信号のネゲートによるバス権解放要求を無効化でき、外部バスアクセスを伴う所要の処理を完了するまで、バス権解放許可制御情報を活性状態に維持することによって、マスタプロセッサからのバス承認信号のネゲート状態とは無関係にバス権を維持することができる。即ち、このマイクロプロセッサは、ハンドシェークによるバス権の獲得と解放に対して自由度を持つことができる。しかも、バス権解放許可制御情報が格納される第1の記憶手段は内蔵CPUがアクセスして書き換え可能であるから、そのような自由度はCPUの動作プログラムで制御できる。
【0021】
スレーブモードが設定されるマイクロプロセッサのリセット動作直後においてもマスタプロセッサからバス権を獲得して一定期間バスアクセスを伴った初期化動作が必要になる場合に対処することを考慮すると、マイクロプロセッサの使い勝手の点において、前記第1の記憶手段はマイクロプロセッサのリセット動作に応じてマスタ・スレーブモード制御情報が初期設定され、前記第2の記憶手段はマスタ・スレーブ制御情報によるスレーブモードの設定に呼応して活性状態のバス権解放許可制御情報が初期設定されるものであることが望ましい。
【0022】
ハンドシェークによるバス権の獲得と解放に関する自由度をマイクロプロセッサに持たせるという観点による更に別の第3のマイクロプロセッサは、上記第1のマイクロプロセッサが有するバス調停手段と第2のマイクロプロセッサが有するバス調停手段の双方を備えるものである。そのようなマイクロプロセッサは、マスタ又はスレーブの何れに利用されても、バス権の獲得と解放に関する自由度を持つことができる。
【0023】
【発明の実施の形態】
〔マイクロプロセッサ〕
図1には本発明の一例に係るマイクロプロセッサのブロック図が示される。同図に示されるマイクロプロセッサ1は、32ビットRISC(Reduced Instruction Set Computer)アーキテクチャを有し、16ビット固定長命令を実行する。
【0024】
このマイクロプロセッサ1は、浮動小数点ユニット2を有する。さらに、マイクロプロセッサ1は中央処理装置(CPU)3を有し、このCPU3は整数を処理する能力を持つ整数ユニットとされる。前記CPU3は32ビットデータバス4を介して前記浮動小数点ユニット2に結合されている。CPU3及び浮動小数点ユニット2は命令バス5を介して命令キャッシュユニット6から命令を取り込む。命令アドレスはCPU3から命令キャッシュユニット6に与えられる。データキャッシュユニット7は、前記データバス4に接続され、データアドレスバス8を介してCPU3からデータアドレスが供給される。前記データキャッシュユニット7及び命令キャッシュユニット6は、夫々図示を省略するキャッシュコントローラ及びキャッシュメモリを備えている。前記命令キャッシュユニット6及びデータキャッシュユニット7はデータ信号やコントロール信号を含むキャッシュバス13を介してバスコントローラ9に接続される。命令キャッシュユニット6におけるキャッシュミス等に起因する外部アクセスのための命令アドレスは前記バスコントローラ9に与えられる。また、データキャッシュユニット7におけるキャッシュミス等に起因する外部アクセスのためのデータアドレスは前記バスコントローラ9に与えられる。バスコントローラ9はそれら命令アドレス又はデータアドレスに従って、代表的に図示されたアドレス出力端子31に結合されたアドレスバス33及びデータ入出力端子30に結合されたデータバス32を介して外部メモリなどをアクセスするための外部バスサイクルを起動する。また、バスコントローラ9にはタイマやシリアルコミュニケーションインタフェースコントローラ等の周辺回路10が周辺バス11を介して接続されている。図1に示されるマイクロプロセッサは、単結晶シリコンのような1個の半導体基板に形成されている。
【0025】
前記浮動小数点ユニット(以下単にFPUとも称する)2は浮動小数点処理のためにメモリからデータ又は命令を要求することになる。前記FPU2は、データキャッシュユニット7のキャッシュメモリにデータをストアし又は当該キャッシュメモリからデータを獲得するためのメモリアドレシング能力を持っていない。これは、FPU2のメモリ・アドレシング回路の必要性を取り除くことによってチップ面積を節約するためである。それに代えて、CPU3はFPU2に代わってキャッシュメモリなどをアドレシングする機能を有する。したがって、FPU2若しくは浮動小数点命令は、CPU3と同様の強力なアドレシングモードをサポートする必要はなく、その機能を全てCPU3が負担する。CPU3はFPU2のためにメモリからデータのフェッチを行うだけでなく、CPU3はまた、FPU2のために浮動小数点命令を含む全ての命令をメモリからフェッチする。命令はCPU3とFPU2の双方に取り込まれてデコードされる。CPU3は、デコードした命令がCPU命令である場合にはそれによって指示される整数処理を実行する。また、CPU3は、デコードした命令がFPU命令である場合には、FPU2に代わって実行すべきアドレシング処理などを行う。FPU2は、デコードした命令がFPU命令である場合にはそれによって指示される浮動小数点処理を実行する。また、FPU2は、デコードした命令がCPU命令である場合にはその命令を無視する。
【0026】
マイクロプロセッサ1は、当該マイクロプロセッサ1の動作モードが初期的にバス権を有するマスタモードか、必要に応じてバス権を獲得するスレーブモードかを決定するためのマスタ・スレーブモード制御情報MSMDが設定されるレジスタ22を有する。マスタ・スレーブモード制御情報MSMDはモード信号MDの状態によって決定される。モード信号MDはリセット信号RESETに所定の変化が与えられてリセット動作が指示されたとき有意とされ、リセット動作の一環として、マスタモードかスレーブモードかが決定される。図1において34はモード信号MDの入力端子、35はリセット信号RESETの入力端子である。
【0027】
図1に示されるマイクロプロセッサ1はバス権の獲得と解放をハンドシェークで制御する機能を備える。そのためにバス調停回路20を有する。バス調停回路20は、バス権解放要求信号BREQのインタフェース端子32とバス権解放承認信号BACKのインタフェース端子33に結合されている。
【0028】
マスタモードにおいてバス調停回路20は、外部からバス権解放要求信号BREQが供給され、外部にバス権解放承認信号BACKを出力する。このときバス調停回路20は、バス権解放要求信号BREQがアサートされると、現在実行中のバスサイクルを完了させた後にバス権を解放し、バス権解放承認信号BACKをアサートする。バス権を獲得する場合には、バス権解放承認信号BACKをネゲートして外部にバス権解放を要求し、これに応答して外部から返されるバス権解放要求信号BREQがネゲートされるのを待ってバス権を獲得する。
【0029】
スレーブモードにおいてバス調停回路20は、外部からバス権解放承認信号BACKが供給され、外部にバス権解放要求信号BREQを出力する。このときバス調停回路20は、バス権を獲得する場合にはバス権解放要求信号BREQを外部にアサートし、これに応答して外部から返されるバス権解放承認信号BACKがアサートされるのを待ってバス権を獲得することができる。バス権解放承認信号BACKがネゲートされると、現在実行中のバスサイクルを完了させた後にバス権を解放し、バス権解放要求信号BREQをネゲートする。
【0030】
バス権解放状態においてバスコントローラ9は外部アドレスバス33に接続される出力端子31と、外部データバス32に結合されるデータ入出力端子30とを夫々高出力インピーダンス状態に制御する。
【0031】
特にマイクロプロセッサ1は、前記信号BREQ,BACKによるバス権の獲得及び解放に関するハンドシェーク制御に自由度を持たせるために、バス権解放許可制御情報BREQENを格納するレジスタ21を有する。このレジスタ21はCPU3によってアクセス可能にされたコントロールレジスタの一種である。
【0032】
マスタモードにおいて前記バス調停回路20は、前記バス権解放許可制御情報BREQENが非活性状態にされているとき、前記バス権解放要求信号BREQのアサートによるバス権解放要求を無効化する。即ち、このマイクロプロセッサ1がマルチプロセッサシステムにおけるマスタプロセッサに割り当てられるとき、バス権解放許可制御情報BREQENが非活性状態に初期化されると、バス調停回路20は外部からのバス権解放要求信号BREQのアサートによるバス権解放要求を無効化する。したがって、マスタモードが設定されたマイクロプロセッサ1は、外部バスアクセスを伴う所要の処理を完了するまで、バス権解放許可制御情報BREQENを非活性状態に維持することによって、外部からのバス権解放要求信号BREQのアサート状態とは無関係にバス権を維持することができる。即ち、マイクロプロセッサ1は、ハンドシェークによるバス権の獲得と解放に対して自由度を持つことができる。しかも、バス権解放許可制御情報BREQENが格納されるレジスタ21は内蔵CPU3がアクセスして書き換え可能であるから、そのような自由度はCPU3の動作プログラムで制御できる。
【0033】
スレーブモードにおいて前記バス調停回路20は、前記バス権解放許可制御情報BREQENが活性状態にされているとき、前記バス権解放承認信号BACKのネゲートによるバス権解放要求を無効化する。即ち、このマイクロプロセッサ1がマルチプロセッサシステムにおけるスレーブプロセッサに割り当てられるとき、そのバス調停回路20はマスタプロセッサにバス権解放要求信号BREQをアサートすると、それに応答するバス権解放承認信号BACKがマスタプロセッサからアサートされることによってバス権を獲得できる。このスレーブモードが設定されたマイクロプロセッサ1においてバス権解放許可制御情報BREQENが活性状態にされていると、前記の様にして一旦バス権を獲得したとき、そのバス調停回路20が外部(マスタプロセッサ)からのバス権解放承認信号BACKのネゲートによるバス権解放要求を無効化できる。これによって、当該マイクロプロセッサ1は、外部バスアクセスを伴う所要の処理を完了するまで、バス権解放許可制御情報BREQENを活性状態に維持することによって、マスタプロセッサからのバス権解放承認信号BACKのネゲート状態とは無関係にバス権を維持することができる。したがって、このマイクロプロセッサ1は、スレーブモードにおいても、ハンドシェークによるバス権の獲得と解放に対して自由度を持つことができる。しかも、バス権解放許可制御情報BREQENが格納されるレジスタ21は内蔵CPU3がアクセスして書き換え可能であるから、そのような自由度はCPU3の動作プログラムで制御できる。
【0034】
特にこの例では、リセット動作で決定されるマイクロプロセッサ1の動作モードがマスタモードかスレーブモードかに応じて、前記バス権解放許可制御情報BREQENがレジスタ21に初期設定される。即ち、リセット動作において前記レジスタ22に設定されるマスタ・スレーブモード制御情報MSMDがマスタモードを示す場合、レジスタ21にはバス権解放許可制御情報BREQENが非活性状態に初期設定される。したがって、マスタモードが設定されるマイクロプロセッサ1は、リセット直後、バス権解放許可制御情報BREQENを活性状態に書き換えるまで、スレーブプロセッサにバス権を解放することなくバスアクセスを伴う一定の処理を完結させることができる。そのような処理としては、具体例については後述するが、マルチプロセッサシステムの共有資源等に対する全体的な初期設定動作であり、初期設定動作が完了される前に、スレーブプロセッサが共有資源をアクセスして誤動作するような事態を簡単に防止することができる。
【0035】
また、リセット動作において前記レジスタ22に設定されるマスタ・スレーブモード制御情報MSMDがスレーブモードを示す場合、レジスタ21にはバス権解放許可制御情報BREQENが活性状態に初期設定される。したがって、スレーブモードが設定されるマイクロプロセッサ1は、リセット直後、マスタプロセッサから一旦バス権を獲得した後は、バス権解放許可制御情報BREQENを非活性状態に書き換えるまで、マスタプロセッサにバス権を解放することなくバスアクセスを伴う一定の処理を完結させることができる。
【0036】
〔マルチプロセッサシステム〕
図2には図1に示されるマイクロプロセッサを2個用いたマルチプロセッサシステムのブロック図が示される。図2においてマスタプロセッサ1mはマスタモードが設定されるマイクロプロセッサ1であり、スレーブプロセッサ1sはスレーブモードが設定されるマイクロプロセッサ1である。図2において40で示されるものはモード信号MDm,MDsの発生回路である。MDmはマスタプロセッサ1mにマスタモードを設定するためのモード信号であり、MDsはスレーブプロセッサ1sにスレーブモードを設定するためのモード信号である。モード信号発生回路40は例えばプルアップ回路及びプルダウン回路によって簡単に構成されている。21m,22mはマスタプロセッサ1mにおいて前記バス権解放許可制御情報BREQEN,マスタ・スレーブモード制御情報MSMDが設定される前記レジスタ21,22である。21s,22sはスレーブプロセッサ1sにおいて前記バス権解放許可制御情報BREQEN,マスタ・スレーブモード制御情報MSMDが設定される前記レジスタ21,22である。20mはマスタプロセッサ1mのバス調停回路20、20sはスレーブプロセッサ1sのバス調停回路20である。マスタプロセッサ1mのバス調停回路20mは、バス権解放要求信号BREQを入力し、バス権解放承認信号BACKを出力する。スレーブプロセッサ1sのバス調停回路20sはバス権解放要求信号BREQを出力し、バス権解放承認信号BACKを入力する。
【0037】
図2において44で示されるものは共通バスとしてのアドレスバス33、データバス32及び図示を省略するコントロールバスに結合されたシンクロナスDRAMである。このシンクロナスDRAM44は双方のマイクロプロセッサ1m,1sの共有資源とされ、例えば、ワーク領域若しくはデータの一次記憶領域として利用されるメインメモリである。
【0038】
図2において42,43はマスタプロセッサ1mのローカルアドレスバス,ローカルデータバスであり、そこには、ブートメモリ41が接続されている。ブートメモリ41は、図2に示されるマルチプロセッサシステムを初期設定するための初期化プログラムが格納され、その初期化プログラムには、前記シンクロナスDRAM44を初期設置するための初期化プログラムも含まれている。例えばシンクロナスDRAM44は、バースト長やバーストタイプ、CASレイテンシなどが設定されるモードレジスタを含み、ブートメモリ41の初期化プログラムはそのようなモードレジスタの初期設定を行うための動作プログラムである。図2のマルチプロセッサシステムに最適な初期設定が行われないままシンクロナスDRAM44のメモリセルがアクセスされる場合には誤動作若しくはデータエラーを生ずる場合もある。これを考慮すれば、システムリセット後、スレーブプロセッサ1sは、マスタプロセッサ1mが初期化動作を完了させた後にシンクロナスDRAM44をアクセスすることが望ましい。
【0039】
図3にはリセットからその直後におけるマスタプロセッサ1mの動作フローチャート、図4にはリセットからその直後におけるスレーブプロセッサ1sの動作フローチャートが示される。
【0040】
リセット信号が入力されると、マスタプロセッサ1mはモード信号MDmに従ってマスタモードを指示するマスタ・スレーブ制御情報MSMDがレジスタ22mに初期設定され、且つ、非活性状態のバス権解放許可制御情報BREQENがレジスタ21mに初期設定される(M1)。これによってマスタプロセッサ1mにはマスタモードが設定され、且つバス調停回路20mは、バス権解放許可制御情報BREQENが活性状態に書き換えられるまで、バス権解放要求信号BREQのアサートによるバス権解放要求を無視する。その後、マスタプロセッサ1mはブートメモリ41をアクセスしてシンクロナスDRAM44に代表される共有資源の初期設定を行う(M2,M3)。
【0041】
一方スレーブプロセッサ1sは、リセット信号が入力されると、モード信号MDsに従ってスレーブモードを指示するマスタ・スレーブ制御情報MSMDがレジスタ22sに初期設定され、且つ、活性状態のバス権解放許可制御信号BREQENがレジスタ21sに初期設定される(S1)。これによってスレーブプロセッサ1sにはスレーブモードが設定され、且つバス調停回路20sは、バス権解放許可制御情報BREQENが非活性状態に書き換えられるまで、バス権解放承認信号BREQのネゲートによるバス権解放要求を無視する。この状態はスレーブプロセッサ1sがバス権を獲得した場合に実効がある。例えばスレーブプロセッサ1sはリセット後、シンクロナスDRAM44をアクセスするためにマスタプロセッサ1mに対してバス権解放要求信号BREQをアサートし(S2)、マスタプロセッサ1mからのバス権解放承認信号BACKがアサートされるのを待つ(S3)。
【0042】
マスタプロセッサ1mが共有資源の初期化を完了すると、マスタプロセッサ1mのCPUはバス権解放許可制御情報BREQENを活性状態に書き換える(M4)。そして、マスタプロセッサ1mは、スレーブプロセッサ1sからのバス権解放要求信号BREQがアサートされていることを検出すると(M5)、バス権解放承認信号BACKをアサートして、バス権を解放する。
【0043】
これによって、スレーブプロセッサ1sはステップS3にてバス権解放承認信号BACKのアサートを検出することによって,バス権を獲得し、シンクロナスDRAM44をアクセスすることができる。このとき、既にシンクロナスDRAM44の初期化は完了されているので、スレーブプロセッサ1sによるアクセスによって誤動作を生じない。
【0044】
このとき、スレーブプロセッサ1sのバス権解放許可制御情報BREQENは活性状態にされているので、スレーブプロセッサ1sのCPUがその情報を反転するまで、バス調停回路20sはバス権解放承認信号BACKのネゲートによるマスタプロセッサ1mからのバス権解放要求を無視して、シンクロナスDRAM44のアクセスを継続することができる。
【0045】
図5には図1のマイクロプロセッサ1をマスタプロセッサ1mとし、スレーブプロセッサとして別のマイクロプロセッサ50を用いたマルチプロセッサシステムのブロック図が示される。マイクロプロセッサ50にもバス調停回路51を有する。このバス調停回路51は、バス権解放許可制御情報BREQENに従った制御機能を有しない点が前記バス調停回路20と相違している。マイクロプロセッサ50は、バス権解放要求信号BREQを出力し、バス権解放承認信号BACKを入力することによってスレーブプロセッサとして動作される。このようなシステム構成においても、マスタプロセッサ1mは前記同様に、バス権の獲得と解放に自由度があるから、シンクロナスDRAMに対する初期化を完了するまでスレーブプロセッサ50にバス権を解放しなくても済む。
【0046】
図6には図1のマイクロプロセッサ1をスレーブプロセッサ1sとし、マスタプロセッサとして別のマイクロプロセッサ50を用いたマルチプロセッサシステムのブロック図が示される。マイクロプロセッサ50にもバス調停回路51を有する。このバス調停回路51は、バス権解放許可制御情報BREQENに従った制御機能を有しない点が前記バス調停回路20と相違している。マイクロプロセッサ50は、バス権解放要求信号BREQを入力し、バス権解放承認信号BACKを出力することによってマスタプロセッサとして動作される。このようなシステム構成においても、スレーブプロセッサ1sは前記同様に、バス権の獲得と解放に自由度があるから、マスタプロセッサ50からのバス権解放用要求を一定期間無視して、バスアクセスを伴い一連の処理を連続して実行出来る自由度を得ることができる。図6の例では、共通バス32,33には初期化を要しないDRAM52が共有資源の一例として図示されている。
【0047】
図7には更に別のマイクロプロプロセッサを用いたマルチプロセッサシステムの一例が示される。同図に示されるマイクロプロセッサ60は、フェッチした命令を実行するCPU61を半導体基板に含み、このマイクロプロセッサの動作モードが初期的にバス権を有するマスタモードか、必要に応じてバス権を獲得するスレーブモードかを決定するためのマスタ・スレーブモード制御情報MSMDが設定されるレジスタ62と、前記レジスタ62に対するマスタ・スレーブモード制御情報MSMDをリセット動作時に初期的に決定するためのモード信号MDの入力端子と、バス調停回路63とを有する。バス調停回路63は、バス権解放許可制御情報BREQENによる制御機能を除いた、ハンドシェークによるバス権要求と解放の制御機能を有する。更に、バス調停回路63は、前記レジスタ62に初期的に設定されるマスタ・スレーブモード制御情報MSMDがマスタモードを示す場合には、リセット後にCPUの動作プログラムに従って1回だけ外部へのバス権解放承認信号にハイレベル、ローレベル、ハイレベルのような一連の変化を生じさせ、また、前記レジスタ62に初期的に設定されるマスタ・スレーブモード制御情報MSMDがスレーブモードを示す場合には、リセット後、外部からのバス権承認信号BACKが前記ハイレベル、ローレベル、ハイレベルのような一連の変化を生じたことを検出して初めて、バス権要求信号BREQによるバス権の要求が可能になるという機能を備えている。マスタモードが設定されたマイクロプロセッサ60(マスタプロセッサ)は、シンクロナスDRAM44のような初期化を要する共有資源の初期化を完了するまで、スレーブモードが設定されたマイクロプロセッサ60(スレーブプロセッサ)にバス権を解放しない自由度を得ることができる。
【0048】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【0049】
例えば、バス権解放許可制御情報BREQENやマスタ・スレーブモード制御情報MSMDを格納するレジスタ21,22はバスコントローラに内蔵されることに限定されず、その配置はマイクロプロセッサのどこでもよい。また、上記実施例ではモード信号やリセット信号がバスコントローラに直接入力されてレジスタ21,22を初期設定するような図面を示したが、それら信号は、マイクロプロセッサのモード制御ロジックに供給され、そこで生成された内部制御信号によってレジスタ21,22の初期設定を行うようにすることも可能である。また、マイクロプロセッサの内蔵機能モジュールやその接続配置構成は図1の例に限定されず、適宜変更可能である。また、マイクロプロセッサにおけるバス権獲得及び解放に対する自由度は、図1のマイクロプロセッサ1ではマスタモードとスレーブモードの双方で得られるようになっているが、マスタモード又はスレーブモードの何れか一方だけで得られるようにバス調停回路を構成することも可能である。また、マルチプロセッサシステムに含まれるマイクロプロセッサの数は2個に限定されず、3個以上であってもよい。また、バス権を獲得出来るスレーブとしてDMAC(Direct Memory Access Controller)等を共通バスに接続することも当然可能である。スレーブが複数存在する場合には、例えば、スレーブ相互間のバス調停のための外部回路を利用して、バス権解放要求信号とバス権解放承認信号とをマスタプロセッサとの間でやりとりすることになる。本発明は、少なくとも、ハンドシェークでバス権の要求と解放を行う機能を備えた条件のものに広く適用することができる。
【0050】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【0051】
すなわち、ハンドシェークによるバス権の獲得と解放に対してマクロプロセッサに自由度を持たせることができる。特にそのような自由度はマイクロプロセッサ内蔵のCPUの動作プログラムで制御できる。
【0052】
マイクロプロセッサが外部周辺回路の初期化を担うとき、その初期化を完了するまで外部からのバス権要求を無視できる。
【0053】
上記マイクロプロセッサを適用したマルチプロセッサシステムは、初期化を要する共有資源の初期化完了前に当該共有資源が任意にアクセスされて誤動作を生ずる虞を排除することができ、しかもそのためにシステム上で特別な外部回路を構成したり、ソフトウェア的にも処理を複雑化しなくても済むようにできる。
【図面の簡単な説明】
【図1】本発明の一例に係るマイクロプロセッサのブロック図である。
【図2】図1に示されるマイクロプロセッサを2個用いたマルチプロセッサシステムのブロック図である。
【図3】図2のマルチプロセッサシステムにおいてリセットからその直後におけるマスタプロセッサの一例動作フローチャートである。
【図4】図2のマルチプロセッサシステムにおいてリセットからその直後におけるスレーブプロセッサの一例動作フローチャートである。
【図5】図1のマイクロプロセッサをマスタプロセッサとし、スレーブプロセッサとして別のマイクロプロセッサを用いたマルチプロセッサシステムのブロック図である。
【図6】図1のマイクロプロセッサをスレーブプロセッサとし、マスタプロセッサとして別のマイクロプロセッサを用いたマルチプロセッサシステムのブロック図である。
【図7】図1とは別のマイクロプロプロセッサを用いたマルチプロセッサシステムの一例ブロック図である。
【符号の説明】
1 マイクロプロセッサ
3 CPU
9 バスコントローラ
20 バス調停回路
21 レジスタ
BREQEN バス権解放許可制御情報
22 レジスタ
MSMD マスタ・スレーブモード制御情報
RESET リセット信号
MD モード信号
BREQ バス権解放要求信号
BACK バス権解放承認信号
40 モード信号発生回路
41 ブートメモリ
44 シンクロナスDRAM
Claims (4)
- 第1中央処理装置と、
第2中央処理装置と、
前記第1中央処理装置と第2中央処理装置との両方に接続されたバスと、を有し、
前記第1及び第2中央処理装置は、第1動作モードと第2動作モードのいずれかの状態で動作可能であって、前記動作モードを指定する第1情報と、を有し、
前記第1情報に従って一方の中央処理装置が第1動作モードで動作されるときであって、前記一方の中央処理装置は前記バスのバス権を有している場合に、前記第1情報に従って前記第2動作モードで動作される他方の中央処理装置からのバス権要求に対し、前記バスのバス権を与えるか否かを決定する第2情報を有し、
前記第2情報が非活性状態時、前記第2動作モードで動作される前記他方の中央処理装置からのバス権要求を無効化し、前記一方の中央処理装置にバス権を付与する制御を行い、
前記第1中央処理装置及び第2中央処理装置は前記バスを介してシンクロナスDRAMに対しアクセス可能であって、
前記第1動作モードで動作される一方の中央処理装置は、前記第2情報を非活性状態として前記シンクロナスDRAMが有するモードレジスタの初期設定を行うことを特徴とする半導体処理装置。 - 前記第1動作モードで動作される一方の中央処理装置による前記モードレジスタの初期設定後、前記第2情報は活性状態へ設定され、前記動作モードに関わらず前記第1もしくは第2中央処理装置からのバス権要求によってバス権を付与する制御が行われることを特徴とする請求項1記載の半導体処理装置。
- 前記第1及び第2中央処理装置は、前記第1情報と前記第2情報とをそれぞれ設定されるレジスタを有し、
前記第1情報が設定されるレジスタは、リセット信号の入力に応じて前記第1動作モードもしくは第2動作モードの何れかが設定され、
前記第1動作モードが設定されたレジスタを有する中央処理装置は、前記第2情報が設定されるレジスタを非活性状態に設定し、前記モードレジスタの初期設定を行うことを特徴とする請求項1記載の半導体処理装置。 - 前記モードレジスタの初期設定完了後、前記第2情報が設定されるレジスタを活性状態に設定し、前記第1情報に設定される動作モードに関わらず前記第1もしくは第2中央処理装置からのバス権要求によってバス権を付与する制御が行われることを特徴とする請求項3記載の半導体処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP31323996A JP3795978B2 (ja) | 1996-11-25 | 1996-11-25 | マイクロプロセッサ及びマルチプロセッサシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP31323996A JP3795978B2 (ja) | 1996-11-25 | 1996-11-25 | マイクロプロセッサ及びマルチプロセッサシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10154124A JPH10154124A (ja) | 1998-06-09 |
JP3795978B2 true JP3795978B2 (ja) | 2006-07-12 |
Family
ID=18038798
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP31323996A Expired - Fee Related JP3795978B2 (ja) | 1996-11-25 | 1996-11-25 | マイクロプロセッサ及びマルチプロセッサシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3795978B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007026033A (ja) * | 2005-07-15 | 2007-02-01 | Fujitsu Ltd | 半導体装置及び半導体装置の動作モード自動判定方法 |
CN112486740B (zh) * | 2020-11-27 | 2023-01-10 | 苏州浪潮智能科技有限公司 | 一种多控制器之间的主从关系确认方法、系统及相关装置 |
-
1996
- 1996-11-25 JP JP31323996A patent/JP3795978B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH10154124A (ja) | 1998-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100303947B1 (ko) | 다중프로세서시스템그리고그의초기화기능분산및자체진단시스템그리고그방법 | |
KR0185966B1 (ko) | 복식 프로세서 시스템의 프로세서 및 캐시 제어기의 독립 리세팅 장치 및 방법 | |
US7581054B2 (en) | Data processing system | |
JP3790323B2 (ja) | データ転送制御装置、マイクロコンピュータ及びデータ処理システム | |
US6513094B1 (en) | ROM/DRAM data bus sharing with write buffer and read prefetch activity | |
EP0917063A2 (en) | Data processing system and microprocessor | |
JP4226085B2 (ja) | マイクロプロセッサ及びマルチプロセッサシステム | |
JP2004502225A (ja) | フラッシュ・メモリを有する集積回路 | |
US5553268A (en) | Memory operations priority scheme for microprocessors | |
US20020138156A1 (en) | System of connecting multiple processors in cascade | |
US6519690B1 (en) | Flexible address programming with wrap blocking | |
US6490638B1 (en) | General purpose bus with programmable timing | |
US6516378B1 (en) | Microprocessor for controlling busses | |
JP3795978B2 (ja) | マイクロプロセッサ及びマルチプロセッサシステム | |
US5850529A (en) | Method and apparatus for detecting a resource lock on a PCI bus | |
US6484227B1 (en) | Method and apparatus for overlapping programmable address regions | |
JPH04332063A (ja) | ローカルコンピューティングシステムによるホストコンピューティングシステムへのアクセス制御を調整するためのローカルコンピューティングシステムとともに使用される装置 | |
JP3323341B2 (ja) | エミュレーション用プロセッサおよびそれを搭載したエミュレータ | |
US20030145175A1 (en) | Multiprocessor system having respective control programs of a plurality of processors stored contiguously in a memory | |
JP3077807B2 (ja) | マイクロコンピュータシステム | |
JPH11212903A (ja) | データ処理システム、周辺装置及びマイクロコンピュータ | |
KR20040056293A (ko) | 프로세서 번호 할당 및 순차적 부팅이 가능한에이엠비에이 버스 기반 멀티프로세서 시스템 | |
JP3868316B2 (ja) | マルチプロセッサ及びその制御方法 | |
JPH05242008A (ja) | データ処理装置 | |
JP2003296130A (ja) | マイクロコンピュータ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050804 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050823 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051021 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060404 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060414 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090421 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100421 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100421 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110421 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110421 Year of fee payment: 5 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110421 Year of fee payment: 5 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120421 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120421 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130421 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140421 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |