JPH03230251A - バス制御方式 - Google Patents

バス制御方式

Info

Publication number
JPH03230251A
JPH03230251A JP2644890A JP2644890A JPH03230251A JP H03230251 A JPH03230251 A JP H03230251A JP 2644890 A JP2644890 A JP 2644890A JP 2644890 A JP2644890 A JP 2644890A JP H03230251 A JPH03230251 A JP H03230251A
Authority
JP
Japan
Prior art keywords
bus
memory
bus control
processor
output buffer
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.)
Granted
Application number
JP2644890A
Other languages
English (en)
Other versions
JP2825589B2 (ja
Inventor
Hiroshi Mori
啓 森
Masanori Hirano
平野 正則
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.)
NTT Inc
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2644890A priority Critical patent/JP2825589B2/ja
Publication of JPH03230251A publication Critical patent/JPH03230251A/ja
Application granted granted Critical
Publication of JP2825589B2 publication Critical patent/JP2825589B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)
  • Information Transfer Systems (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、複数のプロセッサとメモリが複数本のバスで
接続されたマルチプロセッサのバス制御方式に関するも
のである。
〔従来技術〕
複数台のプロセッサがメモリを共有するマルチプロセッ
サ構成において、互いに矛盾なく処理を実行するために
は、プロセッサ間で共有するデータの排他制御が必要で
ある。
排他制御とは、あるプロセッサが共有データを使用して
処理している間は、他のプロセッサに共用データを使用
させないようにするためのものであり、一般に、次の6
つの処理からなっている(第2図参照)。
処理■、テスト&セット命令(T&S)共用データは、
そのデータがプロセッサによる処理を受けているかどう
かを示すロックバイトを持っている。ある共用データの
ロックバイトにtt 1 ttがセットされていれば、
その共用データがプロセッサによる処理を受けているこ
とを示し、0”ならば、処理を受けていない状態にある
ことを示す。
テスト&セット命令は、プロセッサが共有データを使え
るか否かをチエツクするための命令であり、 (1)ロックバイトのリードアクセス、(2)読み込ん
だロックバイトがセットされているか否かの判断、 (3)ロックバイトがl Onである場合に“1”にセ
ットするためのメモリへのライトアクセス(1”である
場合は、既に他のプロセッサが、対応するロックバイト
を持つ共用データを用いて処理を行っていることを示す
)、 (4)ロックバイトが“O”であるか、パ1”であるか
をプログラムに通知するため、コンデイションコードの
設定、 の4つの処理からなる。プロセッサがテスト&セット命
令を実行している期間中は、他プロセッサからのロック
バイトへのアクセスを抑止するため、プロセッサとメモ
リを結合する該バスのロック信号をオンとして、該バス
を占有(ロック)し、他のプロセッサが該バスを使用で
きないようにする(参考二パコンピュータ・アーキテク
チャ 第2版”、村岡陽−、コンピュータ・サイエンス
大学講座11、pp137−139、近代科学社)。
処理■、共用データの使用可否の判断 コンデイションコードをチエツクし、ロックバイトが1
1011であった場合は処理■、ロックバイトが“1″
であった場合は処理■、に進む。
処理■、共用データのリード メモリから共用データを読み込む。
処理■、プロセッサ内焙処 理ロセッサによる読み込んだデータの処理。
処理■、共有データの書換え プロセッサが処理したデータをメモリへ書き込むための
ライトアクセス(以後、STIと記す)。
処理■、ロックバイトのリセット プロセッサがアクセスした共用データのロックバイトを
リセット(即ち“0”)するためのメモリライトアクセ
ス(以後、ST2と記す)。
以上の順番に従って処理を実行することにより、複数プ
ロセッサ間で、共用データを用いた処理が矛盾なく行わ
れる。
プロセッサの単位性能を向上させる一つの方法として、
メモリへのライトアクセスのおいてきぼり制御がある。
おいてきぼり制御とは、命令実行部(以下、CPUとい
う)がライトアクセスを実行する際、バス制御部が、そ
のライトアドレスとデータを内部の出力バッファに保持
し、CPUに対しては該アドレスとデータを受け取った
時点でライトアクセスの終了を通知するとともに、次の
命令の実行を促し、メモリへの書き込みはCPUの後続
命令の実行と並行して行うものである。この制御により
、CPUは、ライトアクセスの度にメモリへの書き込み
終了を待たされることなく、次の命令の実行を行うこと
ができるので、処理性能が向上する。
〔発明が解決しようとする課題〕
しかしながら、前記従来の複゛数のバスで結合されたマ
ルチプロセッサの場合、おいてきぼり制御を行うと、先
に述べた排他制御がうまく機能しないという問題がある
以下、この問題について説明する。
ここでは、前記問題点を分かりやすく説明するために、
2台のプロセッサと1台のメモリが、バスをロックする
ための機能(ロック信号)を持つ2本のバスで結合され
たマルチプロセッサ構成を想定する。各プロセッサは1
台のCPUとバス対応に2台のバス制御部とからなり、
バス制御部はおいてきぼり制御用の出力バッファを持つ
ものとする。メモリ上の1番地には共用データ、0番地
には共用データに対応するロックバイトが格納され、共
用データの値は“A−ロックバイトの値は“0”になっ
ているものとする、更に、メモリの偶数番地へのアクセ
スはバス0、奇数番地へのアクセスはバス1を経由して
行なわれるものとする。ここで想定するマルチプロセッ
サ構成の全体図を第3図に示す。
第3図において、100はメモリ、#1.#2はプロセ
ッサである。プロセッサ#1はバス制御部10、11及
びCPU12からなっている。また、プロセッサ#2は
バス制御部20.21及びCPU22からなっている。
バス制御部10は出力バッファIOAを有し、バス制御
部11は出力バッファIIAを有している。また、バス
制御部20は出力バッファ20Aを有し、バス制御部2
1は出力バッファ21Aを有している。
次に、前記のマルチプロセッサの構成における各プロセ
ッサ#1及び#2の動作について説明する。
プロセッサ#2のCPU22は、バス0のロック信号を
オン状態にして、バス制御部20、バスOを経由して、
テスト&セット命令を実行し、メモリ100上の0番地
にあるロックバイトを“1”にセットする。ロックバイ
トをセットしたプロセッサ#2は、バスOのロック信号
をオフ状態にして。
1番地にある共用データ(元データはAとする)に対す
るアクセス権を獲得する。
プロセッサ#2のCPU22は、バス制御部21、バス
1を介して、メモリ100上の1番地にある共用データ
に対してリードアクセスを行い、CPU22内で処理を
行う。
次に、プロセッサ#2のCPU22は、処理した共用デ
ータ(新データはBとする)をメモリ100上の1番地
に書き込む(STI)ため、ライトアドレスと書換えデ
ータ(アドレスは1.データはBである)をバス制御部
21の出力バッファ21Aに送る。
バス制御部21は、STIを出力バッファ21Aに格納
し、CPU22に対してライトアクセスの終了を通知す
る。
続いて、プロセッサ#2のCPU22は、メモリ100
上の0番地にある口、ツクバイトをリセット(Sr1)
するため、ライトアドレスと、データ(アドレスはO,
データはOである)をバス制御部20に送る。
バス制御部20はSr1を出力バッファ20Aに格納し
、CPU22に対してライトアクセスの終了を通知する
次に、プロセッサ#2のバス制御部20は、バス0のバ
ス権を獲得し、出力バッファ2OAに格納されているS
r1をバスOを経由してメモリ100に送出して、メモ
リ100上の0番地のロックバイトを“1”から3′0
”にリセットする。この時、たまたま、バス1がプロセ
ッサ#1または図に示していないが入出力チャネルによ
って使用されており、バス制御部21はバス1を獲得で
きず、′sT1はバス制御部21の出力バッファに保留
されたままになっている。
今度は、プロセッサ#1のCPU12は、バス0のロッ
ク信号をオン状態にして、バス制御部1o、バスOを経
由して、テスト&セット命令を実行し、メモリ上の0番
地にあるロックバイトを“1″にセットする。ロックバ
イトをセットしたプロセッサ#1は、バス0のロック信
号をオフ状態にして、1番地にある共用データに対する
アクセス権を獲得する。
この時、プロセッサ#2のバス制御部21の出力バッフ
ァにあるSTI (アドレスは1.データはBである)
は依然として保留状態にあるとする。
次に、プロセッサ#1のCPU12は、メモリ100上
の1番地にある共用データに対してリードアクセスをバ
ス制御部11に要求する。
バス制御部11は1番地のリードアクセス、バス制御部
21は1番地へのライトアクセス(STI)のため、バ
ス1を獲得しようとし1図には示していないがバス使用
権割当回路によってバス制御部11にバスの使用権が与
えられたとする。バス制御部11は、STIが行われる
以前の旧データ(A)を読み出し、プロセッサ#1のC
PU12に与える。
以後、プロセッサ#1は、書き換えられる以前の旧デー
タを用いて処理を継続することになり、処理の矛盾が発
生する。
複数本のバス及びおいてきぼり制御を行うプロセッサか
ら構成されるマルチプロセッサにおいては、上記の矛盾
が発生する。このため、従来のマルチプロセッサの構成
方法として、バス制御部に出力バッファを設けずライト
アクセスのおいてきぼり制御を行わない方法またはバス
を1本にする方法などが採られていた。
前者の方法は、メモリへのライトアクセス(STl)が
メモリ上で実行されて、終了するまでは次のメモリアク
セス(S T 2)を実行させないことで、処理の矛盾
を起こさせない方法である。しかし、この項目の前半で
説明したように、おいてきぼり制御を行わないため、プ
ロセッサの単体性能が向上しないという問題があった。
後者の方法は、バスを1本にすることによりメモリへの
ライトアクセスSTIとSr1がバスでシリアライズさ
れ、Sr1がSTIを追い越してメモリに反映されるこ
とがないため、前述の問題は発生しない。しかし、この
方法では、プロセッサ台数の増加に伴って、バス競合が
増し、それによる処理性能が飽和するという問題があっ
た。
本発明は、前記問題点を解決するためになされたもので
ある。
本発明の目的は、複数本のバスを持ち、かつ、おいてき
ぼり制御を行うプロセッサから構成されるマルチプロセ
ッサに適したバス制御方式を提供することにある。
本発明の前記ならびにその他の目的と新規な特徴は、本
明細書の記述及び添付図面によって明らかになるであろ
う。
〔課題を解決するための手段〕
前記目的を達成するために、本発明のバス制御方式は、
メモリへのライトアクセスに有効なおいてきぼり制御を
可能とする出力バッファを持つ複数台のプロセッサとメ
モリとが、複数のプロセッサからのメモリアクセスの排
他制御を行うためのロック信号を有する複数本のバスで
結合されたマルチプロセッサの構成において、所定のプ
ロセッサのCPUが所定のバス制御部及びバスを経由し
ロック信号をオンとしたリードアクセスを発出した場合
、他のプロセッサの所定のバス以外に接続された全ての
バス制御部は該ロック信号を検出し、出力バッファにメ
モリへのライトアクセスが存在しないときは出力バッフ
ァが空である旨を、一方、出力バッファにメモリへのラ
イトアクセスが存在するときは、該ライトアクセスをメ
モリに対して行った後、出力バッファが空になった旨を
ロック信号をオンとしたリードアクセスを発出したバス
制御部に通知し、該バス制御部は他のプロセッサの所定
バス以外に接続された全てのバス制御部からの該通知を
受け取った後、メモリから読み出したデータをCPUに
送ることを最も主要な特徴とする。
〔作用〕
前述の手段によれば、所定のCPUが所定のバス制御部
及びバスを経由しロック信号をオンとしたリードアクセ
スを発出した場合、他プロセッサの所定のバス以外に接
続された全てのバス制御部は、該ロック信号を検出し、
出力バッファにメモリへのライトアクセスが存在しない
ときは出力バッファが空である旨を、一方、出力バッフ
ァにメモリへのライトアクセスが存在するときは、該ラ
イトアクセスをメモリに対して行った後、出力バッファ
が空になった旨をロック信号をオンとしたリードアクセ
スを発出したバス制御部に通知し、該バス制御部は他プ
ロセッサの前記所定のバス以外に接続された全てのバス
制御部からの該通知を受け取った後、メモリから読み出
したデータをCPUに送るので、複数本のバスを持ち、
かつ、おいてきぼり制御を行うプロセッサから構成され
るマルチプロセッサに適したバス制御方式を実現するこ
とができる。
すなわち1本発明のバス制御方式は、従来の技術とは、
ロック信号をオンとしたバス以外に接続された全てのバ
ス制御部が該ロック信号を検出するための信号線とバス
制御部の出力バッファにメモリへのライトアクセスが存
在するか否かをロック信号をオンにしたバス制御部に通
知するための信号線を有する点が異なる。
〔発明の実施例〕
以下、本発明の一実施例を図面を用いて具体的に説明す
る。
第1図は、本発明を複数本のバスを持ち、かつ、おいて
きぼり制御を行うプロセッサから構成されるマルチプロ
セッサに適用した一実施例のバス制御方式を説明するた
めのマルチプロセッサの構成を示すブロック図である。
第1図において、100は共用データとそのデータに対
するアクセスの有無を示すロックバイトを持つメモリ、
101.103はバス、102.104はバス制御部の
出力バッファがメモリへのライトアクセスを持っている
か否かを通知する信号線、105.106はロック信号
をオンとしたバス以外に接続されたバス制御部が該ロッ
ク信号を検出するための信号線、107.109.11
2.114はメモリ100へのアクセスを制御するため
のバス制御部、108.110.113゜115はおい
てきぼり制御を行うために必要なバス制御部の出力バッ
ファ、111.116は命令を実行するCPU (命令
実行部)である。
本発明のバス制御方式を適用した場合、複数のプロセッ
サ間で行われる動作を分かりやすく説明するために、新
たに追加した2種類の信号線(102、104,105
,106)の部分を除いては、全体のブロック構成は第
3図のマルチプロセッサ構成と全く同じであるとする。
次に、前記マルチプロセッサの構成における各プロセッ
サの動作について説明する。
プロセッサ#2のCPU116は、バスOのロック信号
をオン状態にして、バス制御部112、バス101を経
由して、テスト&セット命令を実行し、メモリ上の0番
地にあるロックバイトを1”にセットする。ロックバイ
トをセットしたプロセッサ#2は、バス101のロック
信号をオフ状態にして、1番地にある共用データ(元デ
ータはAとする)に対するアクセス権を獲得する。
プロセッサ#2のc p U116は、バス制御部11
4、バス103を介して、メモリ100上の1番地にあ
る共用データに対してリードアクセスを行い、CPU1
16内で処理を行う。
次に、プロセッサ#2のCPU116は、処理した共用
データ(新データはBとする)をメモリ100上の1番
地の領域に書き込む(STI)ため、ライトアドレスと
書換えデータ(アドレスは1゜データはBである)をバ
ス制御部114に送る。
バス制御部114は、STIが出力バッファ115に格
納し、CPU116に対してライトアクセスの終了を通
知する。
続いて、プロセッサ#2のC:PU116は、メモリ1
00上の0番地のロックバイトをリセット(Sr1)す
るため、ライトアドレスとデータ(アドレスはO,デー
タは0である)をバス制御部112に送る。
バス制御部112は、Sr1を出力バッファ113に格
納し、CP U116に対してライトアクセスの終了を
通知する。
次に、プロセッサ#2のバス制御部112は、バス0の
バス権を獲得し、出力バッファに格納されているSr1
をバス101を経由してメモリ100に送出して、0番
地のロックバイトを“1”からII OITにリセット
する。この時、たまたま、バス103がプロセッサ#1
または図に示していないが入出力制御チャネルによって
使用されており、バス制御部114はバス103を獲得
できず、STIはバス制御部114の出力バッファ11
5に保留されたままになっている。
第1図は、マルチプロセッサが前述した状態にあること
を図示したものである。
マルチプロセッサが第1図の状態にあるものとして、プ
ロセッサ#1のCP Ulllは、テスト&セット命令
の実行のため、メモリ100上の0番地のロックバイト
のリード要求をバス制御部107に出す。バス制御部1
07はバス101のバス権を獲得して、バス101のロ
ック信号をオンとし、メモリ100上のO番地のリード
要求を出す。
この時、プロセッサ#2のバス制御部114は、バス1
01のロック信号がオン状態になっていることを信号線
105を通じて検出する。
バス制御部114は、その検出を受けて、出力バッファ
115に保留されている共用データを書き換えるための
ライトアドレスとデータ(STIニアドレスは1.デー
タはBである)をバス103を経由してメモ官月00に
対して送出し、メモ1月00上の1番地にある共用デー
タを“A”から“B ITに書き換える。
プロセッサ#2のライトアクセスが終了すると、バス制
御部114の出力バッファ115は空になっているので
、バス制御部114はその旨を信号線104を通じてバ
ス制御部107に報告する。
プロセッサ#1のバス制御部107は、メモリ100か
らロックバイトをリードした後、前記の報告をCP U
lllに送る。CP Ulllは、ロックバイトがOの
ため、共用データに対するアクセス権を獲得し、ロック
バイトを1にするライトアクセスをバス制御部107に
送る。バス制御部107は、該ライトアクセスを出力バ
ッファ108に格納し、CP Ulllに対しライトア
クセスの終了を通知する。
次に、CP Ulllは、共用データの読み出しに移る
が、この時、共用データは′B″に書き換えられており
、以後矛盾なくに処理が行われる。
以上、本発明を実施例にもとづき具体的に説明したが、
本発明は、前記実施例に限定されるものではなく、その
要旨を逸脱しない範囲において種々変更可能であること
は言うまでもない。
〔発明の効果〕
以上、説明したように、本発明によれば、おいてきぼり
ライト制御を行うプロセッサを複数本のバスで結合した
マルチプロセッサ構成を採ることが可能となり、システ
ムの高性能化が図れる。
【図面の簡単な説明】
第1図は1本発明を複数本のバスを持ち、かつ、おいて
きぼり制御を行うプロセッサから構成されるマルチプロ
セッサに適用した一実施例のバス制御方式を説明するた
めのマルチプロセッサの構成を示すブロック図、 第2図は、プロセッサが行うメモリへのライトアクセス
の排他制御の動作フローチャート、第3図は、従来の複
数本のバスを持つマルチプロセッサの動作を説明するた
めの図である。 図中、100・メモリ、101.103・・・バス、1
02.104・・・信号線、105.106・・・信号
線、107.109.112゜114・・・バス制御部
、108.110.113.115・・・出力バッファ
、111.116・・・CPU。

Claims (1)

    【特許請求の範囲】
  1. (1)複数のプロセッサとメモリとが複数本のバスで接
    続され、各プロセッサは命令実行部とメモリへのアクセ
    スを制御するためバス対応に設けられた複数のバス制御
    部とから構成され、命令実行部からのメモリアクセスは
    アドレスによりどのバス制御部を経由して行なうか、あ
    らかじめ決められた規則に従って一義的に決定され、各
    バスは複数のプロセッサからのメモリアクセスの排他制
    御用のロック信号を有し、該ロック信号がオンの間は他
    プロセッサからのメモリアクセスができないようになっ
    ており、前記バス制御部は出力バッファを有し、命令実
    行部からのライトアクセスに対しアドレスとデータを出
    力バッファに格納すると命令実行部に対しライトアクセ
    スの終了を通知し、バスが獲得できた時点でメモリに対
    しライトアドレスとデータを送るように構成されたマル
    チプロセッサのバス制御方式において、所定の命令実行
    部が所定のバス制御部及びバスを経由しロック信号をオ
    ンとしたリードアクセスを発出した場合、他プロセッサ
    の所定のバス以外に接続された全てのバス制御部は、該
    ロック信号を検出し、出力バッファにメモリへのライト
    アクセスが存在しないときは出力バッファが空である旨
    を、一方、出力バッファにメモリへのライトアクセスが
    存在するときは、該ライトアクセスをメモリに対して行
    なった後、出力バッファが空になった旨をロック信号を
    オンとしたリードアクセスを発出したバス制御部に通知
    し、該バス制御部は他プロセッサの前記所定のバス以外
    に接続された全てのバス制御部からの該通知を受け取っ
    た後、メモリから読み出したデータを命令実行部に送る
    ことを特徴とするバス制御方式。
JP2644890A 1990-02-05 1990-02-05 バス制御方式 Expired - Fee Related JP2825589B2 (ja)

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 true JPH03230251A (ja) 1991-10-14
JP2825589B2 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)

Also Published As

Publication number Publication date
JP2825589B2 (ja) 1998-11-18

Similar Documents

Publication Publication Date Title
EP0443557A2 (en) Interrupt controller capable of realizing interrupt nesting function
JP4874165B2 (ja) マルチプロセッサシステム及びマルチプロセッサシステムにおけるアクセス権設定方法
US6839811B2 (en) Semaphore management circuit
US10628352B2 (en) Heterogeneous multi-processor device and method of enabling coherent data access within a heterogeneous multi-processor device
US4864533A (en) Data transfer control unit permitting data access to memory prior to completion of data transfer
JPH03230251A (ja) バス制御方式
JPH0355657A (ja) マルチタスク・マルチプロセッサシステムにおける共有メモリアクセス方式
JPH01125633A (ja) マルチプロセッサシステムのデバッグ法
JP4818820B2 (ja) バスシステムおよびバススレーブならびにバス制御方法
JPH04140860A (ja) マルチプロセッサにおけるバス制御方法
CN109358903A (zh) 数据访问设备和访问错误通知方法
JP2679440B2 (ja) 情報処理装置
JP3130798B2 (ja) バス転送装置
JP3219422B2 (ja) キャッシュメモリ制御方式
JPS5834856B2 (ja) キオクセイギヨソウチ
JPS62184564A (ja) 電子計算機制御方式
JPH0528090A (ja) メモリ制御装置
JPH07111711B2 (ja) 処理終了割込制御システム
JPH08328997A (ja) ローカルバスアクセス方法及びバスアダプタ
JPH01310466A (ja) マルチプロセッサシステム
JPH058459B2 (ja)
JPS62229457A (ja) Dmaデータ転送制御装置
JPH01300365A (ja) マルチプロセッサシステムの排他制御方式
JPH04305746A (ja) キャッシュメモリ制御装置
JPH04330549A (ja) 制御装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees