JP2825589B2 - バス制御方式 - Google Patents
バス制御方式Info
- Publication number
- JP2825589B2 JP2825589B2 JP2644890A JP2644890A JP2825589B2 JP 2825589 B2 JP2825589 B2 JP 2825589B2 JP 2644890 A JP2644890 A JP 2644890A JP 2644890 A JP2644890 A JP 2644890A JP 2825589 B2 JP2825589 B2 JP 2825589B2
- Authority
- JP
- Japan
- Prior art keywords
- bus
- memory
- bus control
- control unit
- processor
- 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
Landscapes
- Multi Processors (AREA)
- Information Transfer Systems (AREA)
Description
【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、複数のプロセッサとメモリが複数本のバス
で接続されたマルチプロセッサのバス制御方式に関する
ものである。
で接続されたマルチプロセッサのバス制御方式に関する
ものである。
複数台のプロセッサがメモリを共有するマルチプロセ
ッサ構成において、互いに矛盾なく処理を実行するため
には、プロセッサ間で共有するデータの排他制御が必要
である。
ッサ構成において、互いに矛盾なく処理を実行するため
には、プロセッサ間で共有するデータの排他制御が必要
である。
排他制御とは、あるプロセッサが共有データを使用し
て処理している間は、他のプロセッサに共用データを使
用させないようにするためのものであり、一般に、次の
6つの処理からなっている(第2図参照)。
て処理している間は、他のプロセッサに共用データを使
用させないようにするためのものであり、一般に、次の
6つの処理からなっている(第2図参照)。
処理.テスト&セット命令(T&S) 共用データは、そのデータがプロセッサによる処理を
受けているかどうかを示すロックバイトを持っている。
ある共用データのロックバイトに“1"がセットされてい
れば、その共用データがプロセッサによる処理を受けて
いることを示し、“0"ならば、処理を受けていない状態
にあることを示す。
受けているかどうかを示すロックバイトを持っている。
ある共用データのロックバイトに“1"がセットされてい
れば、その共用データがプロセッサによる処理を受けて
いることを示し、“0"ならば、処理を受けていない状態
にあることを示す。
テスト&セット命令は、プロセッサが共有データを使
えるか否かをチェックするための命令であり、 (1)ロックバイトのリードアクセス、 (2)読み込んだロックバイトがセットされているか否
かの判断、 (3)ロックバイトが“0"である場合に“1"にセットす
るためのメモリへのライトアクセス(“1"である場合
は、既に他のプロセッサが、対応するロックバイトを持
つ共用データを用いて処理を行っていることを示す)、 (4)ロックバイトが“0"であるか、“1"であるかをプ
ログラムに通知するため、コンディションコードの設
定、 の4つの処理からなる。プロセッサがテスト&セット命
令を実行している期間中は、他プロセッサからのロック
バイトへのアクセスを抑止するため、プロセッサとメモ
リを結合する該バスのロック信号をオンとして、該バス
を占有(ロック)し、他のプロセッサが該バスを使用で
きないようにする(参考:“コンピュータ・アーキテク
チャ 第2版”、村岡陽一、コンピュータ・サイエンス
大学講座11、pp137−139、近代科学社)。
えるか否かをチェックするための命令であり、 (1)ロックバイトのリードアクセス、 (2)読み込んだロックバイトがセットされているか否
かの判断、 (3)ロックバイトが“0"である場合に“1"にセットす
るためのメモリへのライトアクセス(“1"である場合
は、既に他のプロセッサが、対応するロックバイトを持
つ共用データを用いて処理を行っていることを示す)、 (4)ロックバイトが“0"であるか、“1"であるかをプ
ログラムに通知するため、コンディションコードの設
定、 の4つの処理からなる。プロセッサがテスト&セット命
令を実行している期間中は、他プロセッサからのロック
バイトへのアクセスを抑止するため、プロセッサとメモ
リを結合する該バスのロック信号をオンとして、該バス
を占有(ロック)し、他のプロセッサが該バスを使用で
きないようにする(参考:“コンピュータ・アーキテク
チャ 第2版”、村岡陽一、コンピュータ・サイエンス
大学講座11、pp137−139、近代科学社)。
処理.共用データの使用可否の判断 コンディションコードをチェックし、ロックバイトが
“0"であった場合は処理、ロックバイトが“1"であっ
た場合は処理.に進む。
“0"であった場合は処理、ロックバイトが“1"であっ
た場合は処理.に進む。
処理.共用データのリード メモリから共用データを読み込む。
処理.プロセッサ内処理 プロセッサによる読み込んだデータの処理。
処理.共有データの書換え プロセッサが処理したデータをメモリへ書き込むため
のライトアクセス(以後、ST1と記す)。
のライトアクセス(以後、ST1と記す)。
処理.ロックバイトのリセット プロセッサがアクセスした共用データのロックバイト
をリセット(即ち“0")するためのメモリライトアクセ
ス(以後、ST2と記す)。
をリセット(即ち“0")するためのメモリライトアクセ
ス(以後、ST2と記す)。
以上の順番に従って処理を実行することにより、複数
プロセッサ間で、共用データを用いた処理が矛盾なく行
われる。
プロセッサ間で、共用データを用いた処理が矛盾なく行
われる。
プロセッサの単位性能を向上させる一つの方法とし
て、メモリへのライトアクセスのおいてきぼり制御があ
る。
て、メモリへのライトアクセスのおいてきぼり制御があ
る。
おいてきぼり制御とは、命令実行部(以下、CPUとい
う)がライトアクセスを実行する際、バス制御部が、そ
のライトアドレスとデータを内部の出力バッファに保持
し、CPUに対しては該アドレスとデータを受け取った時
点でライトアクセスの終了を通知するとともに、次の命
令の実行を促し、メモリへの書き込みはCPUの後続命令
の実行と並行して行うものである。この制御により、CP
Uは、ライトアクセスの度にメモリへの書き込み終了を
待たされることなく、次の命令の実行を行うことができ
るので、処理性能が向上する。
う)がライトアクセスを実行する際、バス制御部が、そ
のライトアドレスとデータを内部の出力バッファに保持
し、CPUに対しては該アドレスとデータを受け取った時
点でライトアクセスの終了を通知するとともに、次の命
令の実行を促し、メモリへの書き込みはCPUの後続命令
の実行と並行して行うものである。この制御により、CP
Uは、ライトアクセスの度にメモリへの書き込み終了を
待たされることなく、次の命令の実行を行うことができ
るので、処理性能が向上する。
しかしながら、前記従来の複数のバスで結合されたマ
ルチプロセッサの場合、おいてきぼり制御を行うと、先
に述べた排他制御がうまく機能しないという問題があ
る。
ルチプロセッサの場合、おいてきぼり制御を行うと、先
に述べた排他制御がうまく機能しないという問題があ
る。
以下、この問題について説明する。
ここでは、前記問題点を分かりやすく説明するため
に、2台のプロセッサと1台のメモリが、バスをロック
するための機能(ロック信号)を持つ2本のバスで結合
されたマルチプロセッサ構成を想定する。各プロセッサ
は1台のCPUとバス対応に2台のバス制御部とからな
り、バス制御部はおいてきぼり制御用の出力バッファを
持つものとする。メモリ上の1番地には共用データ、0
番地には共用データに対応するロックバイトが格納さ
れ、共用データの値は“A"、ロックバイトの値は“0"に
なっているものとする。更に、メモリの偶数番地へのア
クセスはバス0、奇数番地へのアクセスはバス1を経由
して行われるものとする。ここで想定するマルチプロセ
ッサ構成の全体図を第3図に示す。
に、2台のプロセッサと1台のメモリが、バスをロック
するための機能(ロック信号)を持つ2本のバスで結合
されたマルチプロセッサ構成を想定する。各プロセッサ
は1台のCPUとバス対応に2台のバス制御部とからな
り、バス制御部はおいてきぼり制御用の出力バッファを
持つものとする。メモリ上の1番地には共用データ、0
番地には共用データに対応するロックバイトが格納さ
れ、共用データの値は“A"、ロックバイトの値は“0"に
なっているものとする。更に、メモリの偶数番地へのア
クセスはバス0、奇数番地へのアクセスはバス1を経由
して行われるものとする。ここで想定するマルチプロセ
ッサ構成の全体図を第3図に示す。
第3図において、100はメモリ、#1,#2はプロセッ
サである。プロセッサ#1はバス制御部10,11及びCPU12
からなっている。また、プロセッサ#2はバス制御部2
0,21及びCPU22からなっている。バス制御部10は出力バ
ッファ10Aを有し、バス制御部11は出力バッファ11Aを有
している。また、バス制御部20は出力バッファ20Aを有
し、バス制御部21は出力バッファ21Aを有している。
サである。プロセッサ#1はバス制御部10,11及びCPU12
からなっている。また、プロセッサ#2はバス制御部2
0,21及びCPU22からなっている。バス制御部10は出力バ
ッファ10Aを有し、バス制御部11は出力バッファ11Aを有
している。また、バス制御部20は出力バッファ20Aを有
し、バス制御部21は出力バッファ21Aを有している。
次に、前記のマルチプロセッサの構成における各プロ
セッサ#1及び#2の動作について説明する。
セッサ#1及び#2の動作について説明する。
プロセッサ#2のCPU22は、バス0のロック信号をオ
ン状態にして、バス制御部20、バス0を経由して、テス
ト&セット命令を実行し、メモリ100上の0番地にある
ロックバイトを“1"にセットする。ロックバイトをセッ
トしたプロセッサ#2は、バス0のロック信号をオフ状
態にして、1番地にある共用データ(元データはAとす
る)に対するアクセス権を獲得する。
ン状態にして、バス制御部20、バス0を経由して、テス
ト&セット命令を実行し、メモリ100上の0番地にある
ロックバイトを“1"にセットする。ロックバイトをセッ
トしたプロセッサ#2は、バス0のロック信号をオフ状
態にして、1番地にある共用データ(元データはAとす
る)に対するアクセス権を獲得する。
プロセッサ#2のCPU22は、バス制御部21、バス1を
介して、メモリ100上の1番地にある共用データに対し
てリードアクセスを行い、CPU22内で処理を行う。
介して、メモリ100上の1番地にある共用データに対し
てリードアクセスを行い、CPU22内で処理を行う。
次に、プロセッサ#2のCPU22は、処理した共用デー
タ(新データはBとする)をメモリ100上の1番地に書
き込む(ST1)ため、ライトアドレスと書換えデータ
(アドレサは1,データはBである)をバス制御部21の出
力バッファ21Aに送る。
タ(新データはBとする)をメモリ100上の1番地に書
き込む(ST1)ため、ライトアドレスと書換えデータ
(アドレサは1,データはBである)をバス制御部21の出
力バッファ21Aに送る。
バス制御部21は、ST1を出力バッファ21Aに格納し、CP
U22に対してライトアクセスの終了を通知する。
U22に対してライトアクセスの終了を通知する。
続いて、プロセッサ#2のCPU22は、メモリ100上の0
番地にあるロックバイトをリセット(ST2)するため、
ライトアドレスとデータ(アドレスは0,データは0であ
る)をバス制御部20に送る。
番地にあるロックバイトをリセット(ST2)するため、
ライトアドレスとデータ(アドレスは0,データは0であ
る)をバス制御部20に送る。
バス制御部20はST2を出力バッファ20Aに格納し、CPU2
2に対してライトアクセスの終了を通知する。
2に対してライトアクセスの終了を通知する。
次に、プロセッサ#2のバス制御部20は、バス0のバ
ス権を獲得し、出力バッファ20Aに格納されているST2を
バス0を経由してメモリ100に送出して、メモリ100上の
0番地のロックバイトを“1"から“0"にリセットする。
この時、たまたま、バス1がプロセッサ#1または図に
示していないが入出力チャネルによって使用されてお
り、バス制御部21はバス1を獲得できず、ST1はバス制
御部21の出力バッファに保留されたままになっている。
ス権を獲得し、出力バッファ20Aに格納されているST2を
バス0を経由してメモリ100に送出して、メモリ100上の
0番地のロックバイトを“1"から“0"にリセットする。
この時、たまたま、バス1がプロセッサ#1または図に
示していないが入出力チャネルによって使用されてお
り、バス制御部21はバス1を獲得できず、ST1はバス制
御部21の出力バッファに保留されたままになっている。
今度は、プロセッサ#1のCPU12は、バス0のロック
信号をオン状態にして、バス制御部10、バス0を経由し
て、テスト&セット命令を実行し、メモリ上の0番地に
あるロックバイトを“1"にセットする。ロックバイトを
セットしたプロセッサ#1は、バス0のロック信号をオ
フ状態にして、1番地にある共有用データに対するアク
セス権を獲得する。
信号をオン状態にして、バス制御部10、バス0を経由し
て、テスト&セット命令を実行し、メモリ上の0番地に
あるロックバイトを“1"にセットする。ロックバイトを
セットしたプロセッサ#1は、バス0のロック信号をオ
フ状態にして、1番地にある共有用データに対するアク
セス権を獲得する。
この時、プロセッサ#2のバス制御部21の出力バッフ
ァにあるST1(アドレスは1,データはBである)は依然
として保留状態にあるとする。
ァにあるST1(アドレスは1,データはBである)は依然
として保留状態にあるとする。
次に、プロセッサ#1のCPU12は、メモリ100上の1番
地にある共用データに対してリードアクセスをバス制御
部11に要求する。
地にある共用データに対してリードアクセスをバス制御
部11に要求する。
バス制御部11は1番地のリードアクセス、バス制御部
21は1番地へのライトアクセス(ST1)のため、バス1
を獲得しようとし、図には示していないがバス使用権割
当回路によってバス制御部11にバスの使用権が与えられ
たとする。バス制御部11は、ST1が行われる以前の旧デ
ータ(A)を読み出し、プロセッサ#1のCPU12に与え
る。
21は1番地へのライトアクセス(ST1)のため、バス1
を獲得しようとし、図には示していないがバス使用権割
当回路によってバス制御部11にバスの使用権が与えられ
たとする。バス制御部11は、ST1が行われる以前の旧デ
ータ(A)を読み出し、プロセッサ#1のCPU12に与え
る。
以後、プロセッサ#1は、書き換えられる以前の旧デ
ータを用いて処理を継続することになり、処理の矛盾が
発生する。
ータを用いて処理を継続することになり、処理の矛盾が
発生する。
複数本のバス及びおいてきぼり制御を行うプロセッサ
から構成されるマルチプロセッサにおいては、上記の矛
盾が発生する。このため、従来のマルチプロセッサの構
成方法として、バス制御部に出力バッファを設けずライ
トアクセスのおいてきぼり制御を行わない方法またはバ
スを1本にする方法などが採られていた。
から構成されるマルチプロセッサにおいては、上記の矛
盾が発生する。このため、従来のマルチプロセッサの構
成方法として、バス制御部に出力バッファを設けずライ
トアクセスのおいてきぼり制御を行わない方法またはバ
スを1本にする方法などが採られていた。
前者の方法は、メモリへのライトアクセス(ST1)が
メモリ上で実行されて、終了するまでは次のメモリアク
セス(ST2)を実行させないことで、処理の矛盾を起こ
させない方法である。しかし、この項目の前半で説明し
たように、おいてきぼり制御を行わないため、プロセッ
サの単体性能が向上しないという問題があった。
メモリ上で実行されて、終了するまでは次のメモリアク
セス(ST2)を実行させないことで、処理の矛盾を起こ
させない方法である。しかし、この項目の前半で説明し
たように、おいてきぼり制御を行わないため、プロセッ
サの単体性能が向上しないという問題があった。
後者の方法は、バスを1本にすることによりメモリへ
のライトアクセスST1とST2がバスでシリアライズされ、
ST2かST1を追い越してメモリに反映されることがないた
め、前述の問題は発生しない。しかし、この方法では、
プロセッサ台数の増加に伴って、バス競合が増し、それ
による処理性能が飽和するという問題があった。
のライトアクセスST1とST2がバスでシリアライズされ、
ST2かST1を追い越してメモリに反映されることがないた
め、前述の問題は発生しない。しかし、この方法では、
プロセッサ台数の増加に伴って、バス競合が増し、それ
による処理性能が飽和するという問題があった。
本発明は、前記問題点を解決するためになされたもの
である。
である。
本発明の目的は、複数本のバスを持ち、かつ、おいて
きぼり制御を行うプロセッサから構成されるマルチプロ
セッサに適したバス制御方式を提供することにある。
きぼり制御を行うプロセッサから構成されるマルチプロ
セッサに適したバス制御方式を提供することにある。
本発明の前記ならびにその他の目的と新規な特徴は、
本明細書の記述及び添付図面によって明らかになるであ
ろう。
本明細書の記述及び添付図面によって明らかになるであ
ろう。
前記目的を達成するために、本発明のバス制御方式
は、メモリへのライトアクセスに有効なおいてきぼり制
御を可能とする出力バッファを持つ複数台のプロセッサ
とメモリとが、複数のプロセッサからのメモリアクセス
の排他制御を行うためのロック信号を有する複数本のバ
スで結合されたマルチプロセッサの構成において、所定
のプロセッサのCPUが所定のバス制御部及びバスを経由
しロック信号をオンとしたリードアクセスを発出した場
合、他のプロセッサの所定のバス以外に接続された全て
のバス制御部は該ロック信号を検出し、出力バッファに
メモリへのライトアクセスが存在しないときは出力バッ
ファが空である旨を、一方、出力バッファにメモリへの
ライトアクセスが存在するときは、該ライトアクセスを
メモリに対して行った後、出力バッファが空になった旨
をロック信号をオンとしたリードアクセスを発出したバ
ス制御部に通知し、該バス制御部は他のプロセッサの所
定バス以外に接続された全てのバス制御部からの該通知
を受け取った後、メモリから読み出したデータをCPUに
送ることを最も主要な特徴とする。
は、メモリへのライトアクセスに有効なおいてきぼり制
御を可能とする出力バッファを持つ複数台のプロセッサ
とメモリとが、複数のプロセッサからのメモリアクセス
の排他制御を行うためのロック信号を有する複数本のバ
スで結合されたマルチプロセッサの構成において、所定
のプロセッサのCPUが所定のバス制御部及びバスを経由
しロック信号をオンとしたリードアクセスを発出した場
合、他のプロセッサの所定のバス以外に接続された全て
のバス制御部は該ロック信号を検出し、出力バッファに
メモリへのライトアクセスが存在しないときは出力バッ
ファが空である旨を、一方、出力バッファにメモリへの
ライトアクセスが存在するときは、該ライトアクセスを
メモリに対して行った後、出力バッファが空になった旨
をロック信号をオンとしたリードアクセスを発出したバ
ス制御部に通知し、該バス制御部は他のプロセッサの所
定バス以外に接続された全てのバス制御部からの該通知
を受け取った後、メモリから読み出したデータをCPUに
送ることを最も主要な特徴とする。
〔作用〕 前述の手段によれば、所定のCPUが所定のバス制御部
及びバスを経由しロック信号をオンとしたリードアクセ
スを発出した場合、他プロセッサの所定のバス以外に接
続された全てのバス制御部は、該ロック信号を検出し、
出力バッファにメモリへのライトアクセスが存在しない
といは出力バッファが空である旨を、一方、出力バッフ
ァにメモリへのライトアクセスが存在するときは、該ラ
イトアクセスをメモリに対して行った後、出力バッファ
が空になった旨をロック信号をオンとしたリードアクセ
スを発出したバス制御部に通知し、該バス制御部は他プ
ロセッサの前記所定のバス以外に接続された全てのバス
制御部からの該通知を受け取った後、メモリから読み出
したデータをCPUに送るので、複数本のバスを持ち、か
つ、おいてきぼり制御を行うプロセッサから構成される
マルチプロセッサに適したバス制御方式を実現すること
ができる。
及びバスを経由しロック信号をオンとしたリードアクセ
スを発出した場合、他プロセッサの所定のバス以外に接
続された全てのバス制御部は、該ロック信号を検出し、
出力バッファにメモリへのライトアクセスが存在しない
といは出力バッファが空である旨を、一方、出力バッフ
ァにメモリへのライトアクセスが存在するときは、該ラ
イトアクセスをメモリに対して行った後、出力バッファ
が空になった旨をロック信号をオンとしたリードアクセ
スを発出したバス制御部に通知し、該バス制御部は他プ
ロセッサの前記所定のバス以外に接続された全てのバス
制御部からの該通知を受け取った後、メモリから読み出
したデータをCPUに送るので、複数本のバスを持ち、か
つ、おいてきぼり制御を行うプロセッサから構成される
マルチプロセッサに適したバス制御方式を実現すること
ができる。
すなわち、本発明のバス制御方式は、従来の技術と
は、ロック信号をオンとしたバス以外に接続された全て
のバス制御部が該ロック信号を検出するための信号線と
バス制御部の出力バッファにメモリへのライトアクセス
が存在するか否かをロック信号をオンにしたバス制御部
に通知するための信号線を有する点が異なる。
は、ロック信号をオンとしたバス以外に接続された全て
のバス制御部が該ロック信号を検出するための信号線と
バス制御部の出力バッファにメモリへのライトアクセス
が存在するか否かをロック信号をオンにしたバス制御部
に通知するための信号線を有する点が異なる。
以下、本発明の一実施例を図面を用いて具体的に説明
する。
する。
第1図は、本発明を複数本のバスを持ち、かつ、おい
てきぼり制御を行うプロセッサから構成されるマルチプ
ロセッサに適用した一実施例のバス制御方式を説明する
ためのマルチプロセッサの構成を示すブロック図であ
る。
てきぼり制御を行うプロセッサから構成されるマルチプ
ロセッサに適用した一実施例のバス制御方式を説明する
ためのマルチプロセッサの構成を示すブロック図であ
る。
第1図において、100は共用データとそのデータに対
するアクセスの有無を示すロックバイトを持つメモリ、
101,103はバス、102,104はバス制御部の出力バッファが
メモリへのライトアクセスを持っているか否かを通知す
る信号線、105,106はロック信号をオンとしたバス以外
に接続されたバス制御部が該ロック信号を検出するため
の信号線、107,109,112,114はメモリ100へのアクセスを
制御するためのバス制御部、108,110,113,115はおいて
きぼり制御を行うために必要なバス制御部の出力バッフ
ァ、111,116は命令を実行するCPU(命令実行部)であ
る。
するアクセスの有無を示すロックバイトを持つメモリ、
101,103はバス、102,104はバス制御部の出力バッファが
メモリへのライトアクセスを持っているか否かを通知す
る信号線、105,106はロック信号をオンとしたバス以外
に接続されたバス制御部が該ロック信号を検出するため
の信号線、107,109,112,114はメモリ100へのアクセスを
制御するためのバス制御部、108,110,113,115はおいて
きぼり制御を行うために必要なバス制御部の出力バッフ
ァ、111,116は命令を実行するCPU(命令実行部)であ
る。
本発明のバス制御方式を適用した場合、複数のプロセ
ッサ間で行われる動作を分かりやすく説明するために、
新たに追加した2種類の信号線(102,104,105,106)の
部分を除いては、全体のブロック構成は第3図のマルチ
プロセッサ構成と全く同じであるとする。
ッサ間で行われる動作を分かりやすく説明するために、
新たに追加した2種類の信号線(102,104,105,106)の
部分を除いては、全体のブロック構成は第3図のマルチ
プロセッサ構成と全く同じであるとする。
次に、前記マルチプロセッサの構成における各プロセ
ッサの動作について説明する。
ッサの動作について説明する。
プロセッサ#2のCPU116は、バス0のロック信号をオ
ン状態にして、バス制御部112、バス101を経由して、テ
スト&セット命令を実行し、メモリ上の0番地にあるロ
ックバイトを“1"にセットする。ロックバイトをセット
したプロセッサ#2は、バス101のロック信号をオフ状
態にして、1番地にある共用データ(元データはAとす
る)に対するアクセス権を獲得する。
ン状態にして、バス制御部112、バス101を経由して、テ
スト&セット命令を実行し、メモリ上の0番地にあるロ
ックバイトを“1"にセットする。ロックバイトをセット
したプロセッサ#2は、バス101のロック信号をオフ状
態にして、1番地にある共用データ(元データはAとす
る)に対するアクセス権を獲得する。
プロセッサ#2のCPU116は、バス制御部114、バス103
を介して、メモリ100上の1番地にある共用データに対
してリードアクセスを行い、CPU116内で処理を行う。
を介して、メモリ100上の1番地にある共用データに対
してリードアクセスを行い、CPU116内で処理を行う。
次に、プロセッサ#2のCPU116は、処理した共用デー
タ(新データはBとする)をメモリ100上の1番地の領
域に書き込む(ST1)ため、ライトアドレスと書換えデ
ータ(アドレスは1,データはBである)をバス制御部11
4に送る。
タ(新データはBとする)をメモリ100上の1番地の領
域に書き込む(ST1)ため、ライトアドレスと書換えデ
ータ(アドレスは1,データはBである)をバス制御部11
4に送る。
バス制御部114は、ST1が出力バッファ115に格納し、C
PU116に対してライトアクセスの終了を通知する。
PU116に対してライトアクセスの終了を通知する。
続いて、プロセッサ#2のCPU116は、メモリ100上の
0番地のロックバイトをリセット(ST2)するため、ラ
イトアドレスとデータ(アドレスは0,データは○であ
る)をバス制御部112に送る。
0番地のロックバイトをリセット(ST2)するため、ラ
イトアドレスとデータ(アドレスは0,データは○であ
る)をバス制御部112に送る。
バス制御部112は、ST2を出力バッファ113に格納し、C
PU116に対してライトアクセスの終了を通知する。
PU116に対してライトアクセスの終了を通知する。
次に、プロセッサ#2のバス制御部112は、バス0の
バス権を獲得し、出力バッファに格納されているST2を
バス101を経由してメモリ100に送出して、0番地のロッ
クバイトを“1"から“0"にリセットする。この時、たま
たま、バス103がプロセッサ#1または図に示していな
いが入出力制御チャネルによって使用されており、バス
制御部114はバス103を獲得できず、ST1はバス制御部114
の出力バッファ115に保留されたままになっている。
バス権を獲得し、出力バッファに格納されているST2を
バス101を経由してメモリ100に送出して、0番地のロッ
クバイトを“1"から“0"にリセットする。この時、たま
たま、バス103がプロセッサ#1または図に示していな
いが入出力制御チャネルによって使用されており、バス
制御部114はバス103を獲得できず、ST1はバス制御部114
の出力バッファ115に保留されたままになっている。
第1図は、マルチプロセッサが前述した状態にあるこ
とを図示したものである。
とを図示したものである。
マルチプロセッサが第1図の状態にあるものとして、
プロセッサ#1のCPU111は、テスト&セット命令の実行
のため、メモリ100上の0番地のロックバイトのリード
要求をバス制御部107に出す。バス制御部107はバス101
のバス権を獲得して、バス101のロック信号をオンと
し、メモリ100上の0番地のリード要求を出す。
プロセッサ#1のCPU111は、テスト&セット命令の実行
のため、メモリ100上の0番地のロックバイトのリード
要求をバス制御部107に出す。バス制御部107はバス101
のバス権を獲得して、バス101のロック信号をオンと
し、メモリ100上の0番地のリード要求を出す。
この時、プロセッサ#2のバス制御部114は、バス101
のロック信号がオン状態になっていることを信号線105
を通じて検出する。
のロック信号がオン状態になっていることを信号線105
を通じて検出する。
バス制御部114は、その検出を受けて、出力バッファ1
15に保留されている共用データを書き換えるためのライ
トアドレスとデータ(ST1:アドレスは1,データはBであ
る)をバス103を経由してメモリ100に対して送出し、メ
モリ100上の1番地にある共用データを“A"から“B"に
書き換える。
15に保留されている共用データを書き換えるためのライ
トアドレスとデータ(ST1:アドレスは1,データはBであ
る)をバス103を経由してメモリ100に対して送出し、メ
モリ100上の1番地にある共用データを“A"から“B"に
書き換える。
プロセッサ#2のライトアクセスが終了すると、バス
制御部114の出力バッファ115は空になっているので、バ
ス制御部114はその旨を信号線104を通じてバス制御部10
7に報告する。
制御部114の出力バッファ115は空になっているので、バ
ス制御部114はその旨を信号線104を通じてバス制御部10
7に報告する。
プロセッサ#1のバス制御部107は、メモリ100からロ
ックバイトをリードした後、前記の報告をCPU111に送
る。CPU111は、ロックバイトが0のため、共用データに
対するアクセス権を獲得し、ロックバイトを1にするラ
イトアクセスをバス制御部107に送る。バス制御部107
は、該ライトアクセスを出力バッファ108に格納し、CPU
111に対しライトアクセスの終了を通知する。
ックバイトをリードした後、前記の報告をCPU111に送
る。CPU111は、ロックバイトが0のため、共用データに
対するアクセス権を獲得し、ロックバイトを1にするラ
イトアクセスをバス制御部107に送る。バス制御部107
は、該ライトアクセスを出力バッファ108に格納し、CPU
111に対しライトアクセスの終了を通知する。
次に、CPU111は、共用データの読み出しに移るが、こ
の時、共用データは“B"に書き換えられており、以後矛
盾なくに処理が行われる。
の時、共用データは“B"に書き換えられており、以後矛
盾なくに処理が行われる。
以上、本発明を実施例にもとづき具体的に説明した
が、本発明は、前記実施例に限定されるものではなく、
その要旨を逸脱しない範囲において種々変更可能である
ことは言うまでもない。
が、本発明は、前記実施例に限定されるものではなく、
その要旨を逸脱しない範囲において種々変更可能である
ことは言うまでもない。
以上、説明したように、本発明によれば、おいてきぼ
りライト制御を行うプロセッサを複数本のバスで結合し
たマルチプロセッサ構成を採ることが可能となり、シス
テムの高性能化が図れる。
りライト制御を行うプロセッサを複数本のバスで結合し
たマルチプロセッサ構成を採ることが可能となり、シス
テムの高性能化が図れる。
第1図は、本発明を複数本のバスを持ち、かつ、おいて
きぼり制御を行うプロセッサから構成されるマルチプロ
セッサに適用した一実施例のバス制御方式を説明するた
めのマルチプロセッサの構成を示すブロック図、 第2図は、プロセッサが行うメモリへのライトアクセス
の排他制御の動作フローチャート、 第3図は、従来の複数本のバスを持つマルチプロセッサ
の動作を説明するための図である。 図中、100……メモリ、101,103……バス、102,104……
信号線、105,106……信号線、107,109,112,114……バス
制御部、108,110,113,115……出力バッファ、111,116…
…CPU。
きぼり制御を行うプロセッサから構成されるマルチプロ
セッサに適用した一実施例のバス制御方式を説明するた
めのマルチプロセッサの構成を示すブロック図、 第2図は、プロセッサが行うメモリへのライトアクセス
の排他制御の動作フローチャート、 第3図は、従来の複数本のバスを持つマルチプロセッサ
の動作を説明するための図である。 図中、100……メモリ、101,103……バス、102,104……
信号線、105,106……信号線、107,109,112,114……バス
制御部、108,110,113,115……出力バッファ、111,116…
…CPU。
Claims (1)
- 【請求項1】複数のプロセッサとメモリとが複数本のバ
スで接続され、各プロセッサは命令実行部とメモリへの
アクセスを制御するためバス対応に設けられた複数のバ
ス制御部とから構成され、命令実行部からのメモリアク
セスはアドレスによりどのバス制御部を経由して行なう
か、あらかじめ決められた規則に従って一義的に決定さ
れ、各バスは複数のプロセッサからのメモリアクセルの
排他制御用のロック信号を有し、該ロック信号がオンの
間は他プロサッサからのメモリアクケスができないよう
になっており、前記バス制御部は出力バッファを有し、
命令実行部からのライトアクセスに対しアドレスとデー
タを出力バッファに格納すると命令実行部に対しライト
アクセスの終了を通知し、バスが獲得できた時点でメモ
リに対しライトアドレスとデータを送るように構成され
たマルチプロセッサのバス制御方式において、所定の命
令実行部が所定のバス制御部及びバスを経由しロック信
号をオンとしたリードアクセスを発出した場合、他プロ
セッサの所定のバス以外に接続された全てのバス制御部
は、該ロック信号を検出し、出力バッファにメモリへの
ライトアクセスが存在しないときは出力バッファが空で
ある旨を、一方、出力バッファにメモリへのライトアク
セスが存在するときは、該ライトアクセスをメモリに対
して行なった後、出力バッファが空になった旨をロック
信号をオンとしたリードアクセスを発出したバス制御部
に通知し、該バス制御部は他プロセッサの前記所定のバ
ス以外に接続された全てのバス制御部からの該通知を受
け取った後、メモリから読み出したデータを命令実行部
に送ることを特徴とするバス制御方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2644890A JP2825589B2 (ja) | 1990-02-05 | 1990-02-05 | バス制御方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2644890A JP2825589B2 (ja) | 1990-02-05 | 1990-02-05 | バス制御方式 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH03230251A JPH03230251A (ja) | 1991-10-14 |
| JP2825589B2 true JP2825589B2 (ja) | 1998-11-18 |
Family
ID=12193786
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2644890A Expired - Fee Related JP2825589B2 (ja) | 1990-02-05 | 1990-02-05 | バス制御方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2825589B2 (ja) |
-
1990
- 1990-02-05 JP JP2644890A patent/JP2825589B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JPH03230251A (ja) | 1991-10-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2825589B2 (ja) | バス制御方式 | |
| JPH0789328B2 (ja) | データ処理装置 | |
| US7877533B2 (en) | Bus system, bus slave and bus control method | |
| EP3428799B1 (en) | Data access device and access error notification method | |
| JP3187446B2 (ja) | キャッシュメモリ制御装置 | |
| JP3130798B2 (ja) | バス転送装置 | |
| JP2679440B2 (ja) | 情報処理装置 | |
| JP2504323B2 (ja) | システムバス制御方法 | |
| JP2848437B2 (ja) | マルチクラスタ排他制御装置 | |
| JPH04140860A (ja) | マルチプロセッサにおけるバス制御方法 | |
| JPH07234850A (ja) | マルチプロセッサの装置と方法 | |
| JPS5834856B2 (ja) | キオクセイギヨソウチ | |
| JP2781999B2 (ja) | マルチプロセツサシステムにおける共通データチヤネル装置起動方式 | |
| JP3219422B2 (ja) | キャッシュメモリ制御方式 | |
| JPS6138504B2 (ja) | ||
| JPS6130296B2 (ja) | ||
| JPH058459B2 (ja) | ||
| JP2665173B2 (ja) | プロセッサトラップ回路 | |
| JPH01316851A (ja) | チャネル制御方式 | |
| JP3029445B2 (ja) | 起動受付装置及び方法 | |
| JPH07111711B2 (ja) | 処理終了割込制御システム | |
| JPS62184564A (ja) | 電子計算機制御方式 | |
| JPS6111867A (ja) | インタフエ−ス制御における異常処理方式 | |
| JPH02183342A (ja) | 割込み制御装置 | |
| JPS6238743B2 (ja) |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |