JP2874488B2 - 処理装置 - Google Patents

処理装置

Info

Publication number
JP2874488B2
JP2874488B2 JP4292517A JP29251792A JP2874488B2 JP 2874488 B2 JP2874488 B2 JP 2874488B2 JP 4292517 A JP4292517 A JP 4292517A JP 29251792 A JP29251792 A JP 29251792A JP 2874488 B2 JP2874488 B2 JP 2874488B2
Authority
JP
Japan
Prior art keywords
exclusive control
command
module
bus
control signal
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
Application number
JP4292517A
Other languages
English (en)
Other versions
JPH06139207A (ja
Inventor
肇 高橋
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP4292517A priority Critical patent/JP2874488B2/ja
Priority to US08/142,918 priority patent/US5517625A/en
Publication of JPH06139207A publication Critical patent/JPH06139207A/ja
Application granted granted Critical
Publication of JP2874488B2 publication Critical patent/JP2874488B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Multi Processors (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は複数のプロセッサから構
成されるマルチプロセッサシステムのシステムバス制御
方式に関する。
【0002】
【従来の技術】複数のプロセッサがそれぞれに別の処理
を実行することでシステム全体の性能を高める様に構成
されたマルチプロセッサシステムにおいては、リソース
(資源)の競合を回避する目的等で、プロセッサ間の排
他制御が必須となってくる。この様な排他制御の実現方
法として、全てのプロセッサからアクセス出来る共有メ
モリ上に排他制御用のエリアを設け、そのメモリ内容に
よってリソースの使用権を排他的に与える方式がある。
この方式は全てのプロセッサが同一のアドレスを同一の
手順、即ち先ず内容を読み出してから、条件の一致によ
って書き込みを行うと言う手順を踏むこと、かつその一
連の動作中に他のプロセッサのアクセスが割り込まない
ことが絶対条件となる。
【0003】アドレスの一致については当然のことであ
り、説明するまでもない。前述の同一手順を踏む必要が
あることは、あるプロセッサが内容も見ずに書き込みを
行えば、直ちに内容が破壊されてしまうことからも分か
る様に、排他制御に使用するエリアでは排他制御用のア
クセスは、まず条件を読みゆく動作、この条件が例えば
「0」であれば、あるリソースは他のプロセッサが使用
しておらず「1」であれば使用しているとすると、
「0」を確認後、書き込みを行うという、いわゆるリー
ド−条件チェック−ライト動作しか行えず、このエリア
に一般のライトアクセスを行えば、排他制御は成り立た
なくなる。最後の他のプロセッサのアクセスが割り込め
ば、一度に複数のプロセッサが使用権を得(られたと思
っ)てしまいリソースの競合等が発生することが容易に
想像出来る。
【0004】上記3点の条件の内、前者2点は純粋に排
他制御を行おうとするソフトウェアの問題(ルールと言
った方が良い)であり、最後の1点はハードウェアの問
題である。このハードウェアの問題を解決する為に、排
他制御専用の命令を具備するプロセッサが登場してい
る。このプロセッサは排他制御命令を実行している期間
中は排他制御であることを示す信号をアサートし続け、
かつリード−条件チェック−ライト動作を連続して(リ
ード−ライト動作の切れ目でもバスを開放したり、割り
込みを受け付けたりしない)処理することで、他プロセ
ッサの割込みが発生しない様にしている。
【0005】このため、従来のシステムバスにおける排
他制御は、システムバスの調整を行うアービタ(AB
T)が排他期間中を示す排他制御信号(LOC)を監視
することで、この信号(LOC)がアサートされている
間は、他のモジュールのコマンド送信要求を一切受け付
けない様に制御していた。
【0006】
【発明が解決しようとする課題】従来の排他制御方式で
は、誰かが排他制御アクセスを開始すると、その期間中
他のモジュールが一切コマンドを発行することが出来な
いため、著しく性能が低下する問題があった。つまり、
LOC信号が出されると、アービタはシステムバスをL
OC信号を出力したモジュールにしか使用させず、他の
モジュールは一切コマンドを発行することを禁止する。
しかし、LOC信号を発行してシステムバスを専有して
いるモジュールがシステムバスを使用する期間は断続的
であり、使用してない期間がかなりの割合となる場合も
多い。しかし、この使用していない期間でも、他のモジ
ュールはシステムバスを使用することができずシステム
全体としては性能が低下していた。
【0007】以下従来のシステムバスの排他制御例を説
明する。図21はマルチプロセッサシステムの構成図であ
る。複数のモジュールがアービタ(ABT)4によって
制御されるシステムバス1に接続される。各モジュール
間のデータ転送は、各モジュールが特定モジュールに対
してコマンドを送出し、その指定されたモジュールがコ
マンドを実行してステータスを返送することで行われ
る。システムバス(SBUS)1はデータを送出する双
方向のシステムデータバス(SDB)13と、そのデータ
の中身を示す双方向のタグバス(TB)14と、コマンド
あるいはステータスの送信に同期して転送状態を通知す
る双方向のレスポンスライン(RLN)15と、各プロセ
ッサモジュール2が排他制御を行っていることを示す双
方向の排他制御表示信号(LOC)線16と、モジュール
とアービタ間で各々に専用に設けられるバス使用要求信
号(High/Low)とバス使用許可信号(Mast
er/Slave)とに用いる使用要求/許可バス17と
から構成される。
【0008】バス使用要求信号は、High/Lowの
2本から構成され、コマンドの送信要求はLowレベ
ル、ステータスの送信要求はHighレベルに設定され
る。アービタ4においてはHighレベルの要求を優先
的に受け付ける。これは、コマンドの一方的な送出を避
ける為である。一方、バスの使用許可信号はマスタとス
レーブの2種があり、バス使用要求を出しているモジュ
ールに許可を与える場合はマスタ信号を与え、そのモジ
ュールはマスタ信号でSDB/TBバス13,14をドライ
ブすることが出来る。アービタ4はマスタとなったモジ
ュールの発行するコマンド内の相手モジュールを認識
し、そのモジュールに対してスレーブ信号を与える。ス
レーブ信号を与えられたモジュールはRLNバス15をド
ライブし、コマンドに同期して受信状況を報告する。モ
ジュールの機能からバス使用要求が使われない場合があ
る。例えば、メモリモジュール3がコマンドを発行する
ことは無いのでLowレベルのバス使用要求は使われな
い。
【0009】図22は、従来のモジュール構成の一例であ
り、プロセッサモジュール2とメモリモジュール3の例
を示している。プロセッサモジュール2はMPU20とM
PU20のプログラムを含むローカルメモリ21と、システ
ムバス1との制御を行うバスコントローラ(BC)23と
から成り、各部が内部インタフェースであるアドレスバ
ス(AB)/データバス(DB)24及び制御信号(CO
NTROL)線25とで接続される。メモリモジュール3
は、メモリ部(MEM)26とバスコントローラ(BC)
27とから成り、同様にアドレスバス(AB)/データバ
ス(DB)28と制御信号(CONTROL)線29で接続
される。バスコントローラ27の信号線は図21で説明した
通りである。
【0010】図23は、従来の各モジュールに搭載される
バスコントローラ23, 27の構成例を示しており、各モジ
ュール機能によって若干の違いがあるが、基本的には内
部インタフェースを制御するMAC部(メモリアクセス
コントローラ)30,35と、内部のMEMやMPUと授受
するデータ等を一時的に蓄えるバッファ(BUFF)3
1,36と、コマンドあるいはステータスを生成/送出す
る送信部(XMT)32,37と、コマンドあるいはステー
タスを受ける受信部(RCV)33,38及びアービタ4と
の制御を行うバスアービトレーション部(BUS)34,
39とからなる。さらに詳細について言えば、プロセッサ
モジュール2の送信部(XMT)32はLOC信号のドラ
イブ機能を有するが、メモリモジュール3は機能的に不
要なのでLOCのドライブ機能は持たない。
【0011】図24は各モジュールの送信部 (XMT)32
,37,受信部(RCV)33,38およびバスアービトレ
ーション部(BUS)34,39に設けられたラッチの配置
を示す図である。
【0012】図25は、従来のアービタ4の信号を示して
いる。アービタコントローラ(ABTC)45は前述の様
に、各モジュールからのバス使用要求信号を受け付ける
とそれらの中から適当なモジュールに対してバス使用許
可信号(マスタ)を与える。また、モジュールの発行す
るコマンド内の相手モジュールを確認してそのモジュー
ルにRLNバス15のドライブを許可するスレーブ信号を
与える。但し、コマンド転送時にパリティエラーを検出
するなどの異常時は、相手ユニットが分からないので、
スレーブ信号は誰にも与えず、自らがRLN15をドライ
ブしてハードエラーを出力する。またLOC信号を監視
して、LOC信号のアサートを検出するとその期間中は
コマンドの送出を抑止する。具体的にはLowレベルの
バス使用要求を受け付けないことで実現する。
【0013】次に上述のように構成されたシステムバス
の動作を図26を用いて説明する。本図では、モジュール
#1からモジュール#2をアクセス(モジュール#1が
モジュール#2にデータを送る。即ち書き込み動作)す
る例を示している。モジュール#1はコマンドを送信す
る為にBRQ#1(L)をアサートする。アービタ4は
BRQ#1(L)を受けるとBGR#1(M)信号を与
える。モジュール#1はBGR#1(M)信号を受ける
とSDB/TBバス13,14のドライブを開始すると同時
にコマンドに続くアドレス/データ情報を順次送出す
る。タグバス14はバス動作の開始(即ちコマンドかステ
ータスであること)を示すSTT(スタート)と、最終
データであることを示すCPT(コンプリート)信号と
からなる。
【0014】アービタ4は、CPT信号を確認するとモ
ジュール#1に対するBGR#1(M)信号をネゲート
する。またアービタ4はタグバス14情報によりコマンド
であることを認識するとコマンド内の相手先モジュール
情報を読取り、対応するモジュール(図ではモジュール
#2)にBGR#2(S)信号を与える。モジュール#
2はBGR#2(S)信号を受けるとRLN15をドライ
ブし、コマンド転送に同期して受信状況を逐次報告す
る。モジュール#2はコマンドを受信後、内部で処理を
行い、その結果からステータスを作成する。
【0015】ステータスをモジュール#1に送出する為
に、アービタ4に対してBRQ#2(H)信号をアサー
トする。アービタはBRQ#2(H)に対してBGR#
2(M)信号を与える。モジュール#2はBGR#2
(M)信号を受けるとSDB/TBバス13,14をドライ
ブしステータスを送出する。アービタ4はステータスの
内容からモジュール#1に対してBGR#1(S)信号
を与え、RLNバス15のドライブを許可する。この様
に、モジュール間のデータ転送は、コマンド−ステータ
スの授受によって遂行される。システムバス上ではコマ
ンドとステータスの転送間は空きサイクルがあり、排他
制御信号LOCが出力されていないときは、他のモジュ
ールが使用することが出来る。この様なバスは分割(ス
プリット)型バスと呼ばれ、アクセス毎にバスを占有し
続ける方式に比してスループットが向上する。
【0016】図27は、排他制御アクセスの動作例を示し
ている。図26と同様にモジュール#1(プロセッサモジ
ュール)がモジュール#2(メモリモジュール)に対し
てアクセスを行う例で説明する。図26のモジュール#1
の部分は内部バス動作を示している。MPU20は排他制
御アクセスするアドレスをアドレスバスABに確定させ
るとアドレスストローブ(*AS)をアサートしてバス
動作の開始を知らせる。バスコントローラBC23はその
アクセスがモジュール#2に対するリードアクセスであ
ることを認識すると、システムバスコマンド(図中C)
を生成し、続いてアドレス(図中A)を送出し、ステー
タスの返送を待つ。MPU20が排他制御アクセスである
こと示す信号(*LOCI)をアサートしているのでバ
スコントローラ23はコマンドの送出と同時にLOC信号
をアサートする。
【0017】アービタ4はLOC信号のアサートを検出
すると前述の様に以降その期間中は他のモジュールから
のコマンドの送信要求を受け付けない。モジュール#2
は、コマンドを受け付けると内部のMEM26へのアクセ
ス(読みだし)を行い、その結果からステータスを作成
する。モジュール#1がモジュール#2からのステータ
スとデータを受け取り、ステータスに異常がなければ、
バスコントローラBC23がそのデータをデータバスDB
24に確定してから、バス動作の完了をMPU20に通知す
る完了通知(*DC)信号をアサートする。MPU20
は、リードデータを取り込んでデータ判定が終わると、
そのまま書き込みの為のライト動作を開始する。内部バ
ス、システムバスの動作は、データ(図中D)の転送方
向が違うのみで同様に行われる。
【0018】このMPUの一命令(リード・モディファ
イ・ライト)実行期間中、システムバスは他のモジュー
ルによる一切のコマンド送信が抑止されるので、メモリ
アクセスに対する競合が発生しなくなりデータのインテ
グリティが保証される。この従来の排他制御方式におい
ては、データのインテグリティを保証する為に排他制御
アクセス中に一切のコマンド送信を抑えてしまうことに
あり、排他制御アクセスの実行に伴いシステムバスのス
ループットが低下する問題があった。
【0019】本発明は、上述の問題点に鑑みてなされた
もので、排他制御中のシステムバスの使用効率を高める
システムバス制御方式を提供することを目的とする。
【0020】
【課題を解決するための手段】図1は本発明の原理図で
ある。システムバス1に複数の第1モジュール2と1つ
または複数の第2モジュール3とアービタ4を接続し、
前記第1モジュール2には、排他制御期間中であること
を示す排他制御信号を監視する第1の排他制御信号監視
手段5と、前記排他制御信号を出力する排他制御信号出
力手段6と、前記排他制御信号を自身が出力していると
き自身が発信元であることを示すことも含めた排他制御
命令を出力する命令出力手段7と、この命令に対する返
信を受信する返信受信手段8とを備え、前記第2モジュ
ール3は、前記排他制御信号を監視する第2の排他制御
信号監視手段9と、前記排他制御命令の発信元を記憶す
る発信元記憶手段10と、前記命令出力手段7の命令を
受信する命令受信手段11と、この受信した命令の返信
をする返信出力手段12とを備え、前記アービタ4は前
記第1モジュール2と前記第2モジュール3からの前記
システムバス1の使用要求があると、前記システムバス
1の使用状態により使用許可を与えるようにしたもので
ある。
【0021】また、前記第2モジュール3の発信元記憶
手段10は、前記第2の排他制御信号監視手段9が前記
排他制御信号がアサートされ始めた後の最初の前記排他
制御命令に含まれる発信元を前記排他制御信号がネゲー
トされるまで保持するようにしたものである。
【0022】また、前記第2モジュール3の命令受信手
段11は前記排他制御命令を受信するとその発信元を調べ
前記発信元記憶手段10に記憶した発信元と異なる場合は
この排他制御命令を拒絶するようにしたものである。
【0023】また、前記排他制御信号と前記排他制御命
令を発行しようとした前記第1モジュール2が、前記排
他制御信号監視手段5によって既に排他制御信号が他の
第1モジュール2より発行されていることを認識した場
合、受信側が何ら処理を行なわないダミーコマンドを発
行すると共に自身からの排他制御信号の発行を抑止する
ようにしたものである。
【0024】また、前記ダミーコマンドを発行した第1
モジュール2は、既に発行されている前記排他制御信号
がネゲートされるまで新たな前記排他制御命令の発行を
行なわないようにしたものである。
【0025】
【作用】第1モジュール2は第1の排他制御信号監視手
段5によりシステムバス1に排他制御信号が出力されて
いないことを検出し、排他制御信号出力手段6により排
他制御信号を出力すると共にアービタ4によりシステム
バス1の使用許可をもらい命令出力手段7より排他制御
命令を出力する。第2モジュール3は、第2の排他制御
信号監視手段9により排他制御信号を検出し、命令受信
手段11により排他制御命令を受信すると発信元が発信
元記憶手段10に記憶されている発信元と同じであるか
調べ、同じであり、その排他制御命令が自分宛のもので
あれば、その命令を実行し、その結果を返信出力手段1
2より返信するに当り、アービタ4よりシステムバス1
の使用許可を受け返信する。第1モジュール2の返信受
信手段8はこの返信を受信する。この間システムバス1
が空であれば他のモジュールより非排他制御命令が第1
モジュール2または第2モジュール3に出された場合、
アービタ4は排他制御命令、非排他制御命令にかかわり
なく、これを許可し、第1モジュール2または第2モジ
ュール3はこの非排他制御命令を実行することができ
る。これにより排他制御信号が出力されている状態で
も、システムバス1が空いていれば非排他制御命令が実
行できシステム全体の効率が向上する。
【0026】第2モジュール3の発信元記憶手段10は
第2の排他制御信号監視手段9が排他制御信号がアサー
トされ始めた後の最初の排他制御命令に含まれる発信元
を保持し、この排他制御信号がネゲートされたときに保
持を解除する。これにより、この排他制御信号出力中に
最初に排他制御命令を出力した第1モジュール2以外の
ところからの排他制御命令を識別することができる。
【0027】命令受信手段11で排他制御命令を受信する
とその発信元が発信元記憶手段10に記憶されている発信
元と同じか否か調べ、異なる場合はその排他制御命令を
拒絶するので、排他制御が異なるモジュールによって行
なわれることが防止でき排他制御が保証される。
【0028】第1モジュール2が排他制御信号と共に排
他制御命令を出力しようと思い、アービタ4にシステム
バス使用許可を要求したところ、その時点ではシステム
バス1は空いていたのでバス使用許可が出たので出力し
ようとしたところ、既に他のモジュールより排他制御信
号が出力されているのを検知した場合は、受信側が何ら
処理を行なわないダミーコマンドを出力して自身からの
排他制御信号の発行を抑える。これによりシステムバス
1の使用許可を受けても二重に排他制御信号を発行する
ことを防止でき排他制御を保証する。
【0029】このようなダミーコマンドを発行した第1
モジュール2は既に発行されている排他制御信号が廃止
されるまで新たな排他制御命令を行なわず、ネゲートさ
れたら排他制御命令を出力するようにすることにより排
他制御が保証される。
【0030】
【実施例】以下、本発明の実施例を図面を参照して説明
する。図2は本実施例のシステムの構成図である。図21
と同一符号は同一の部材を示す。なお、以下の図面にお
いても、図21〜図25と同一符号は同一部材を表わす。図
21との相違点は排他制御信号のLOCバス16がアービタ
4に入力していない点である。アービタ4はシステムバ
ス使用要求に対してこの排他制御信号LOCを考慮せず
に、システムバスが空いていれば使用許可を出し、排他
制御に関与しない。
【0031】図3は第1モジュール2をプロセッサモジ
ュール2とし、第2モジュール3をメモリモジュール3
とした場合で、図22と相違する点はメモリモジュール3
に「a」に示すように排他制御信号LOC線16が接続さ
れ、メモリモジュール3でも排他制御信号LOCを監視
するようにした点である。
【0032】図4はプロセッサモジュール2とメモリモ
ジュール3のバスコントローラBC23,27を示したもの
で、図23との相違点は、プロセッサモジュール2では
「b」に示すように排他制御信号を出力するのみならず
これを監視するようにし、メモリモジュール3では
「c」に示すように排他制御信号LOCを監視するよう
にした点である。
【0033】図5はアービタ4のアービタコントローラ
ABTC45に排他制御信号LOCを入力せず、アービタ
4は排他制御に関与せず、システムバス1の使用要求に
対してシステムバス1が空いているときは使用許可を与
え、使用中のときは与えないようにするバス調整を行
う。
【0034】図6は本実施例によるメモリモジュール2
のバスコントローラ内受信部(RCV)38の一部であ
り、排他制御に関係する部分を抜粋している。受信部
(RCV)38はシステムバス上のタグバス14を常時監視
しており、タグバス14のSTT(スタート)信号を検知
すると、そのデータをコマンドデコード部48にて解析
し、コマンドの内容、送り元、送り先等をチェックす
る。チェックの結果自モジュールあてのコマンドである
と判断したならば、自身のバッファ36内に以降続くアド
レス、データ情報を格納していく。同時にコマンド、ア
ドレス、データ毎にデータ受信状態をRLN生成部49で
コード化しRLNバス15を介して通知する。ラッチRL
NO40はレスポンス信号を一時保持し、ラッチDBFI
41はタグバス14の入力を一時保持する。
【0035】本実施例による排他制御を実現するため
に、RCV38は排他制御状態を保持することを示すEX
Cフラグを保持するEXCラッチ46と、EXCフラグに
よって制御される送り元モジュール識別子(SID)を
保持するSIDラッチ47が設けられている。EXCフラ
グの状態遷移図を図7に示す。EXCは、LOC信号が
アサートされている時に排他制御用のコマンドを受信し
たことをコマンドデコード部48から通知されると排他制
御状態(L状態)に遷移し、以降LOC信号がネゲート
されるまで状態を保持する。同時にSIDラッチ47に排
他制御コマンドを発行したSIDを保持する。
【0036】一旦、排他制御状態に入った後、次に来た
コマンドが排他制御コマンドであれば、SIDラッチ47
に保持したモジュールからのコマンドであるかどうかを
チェックし、一致すれば受信し、一致しなければRLN
バス15にて受け付けられないことを通知する。各メモリ
モジュール3が同様の動作を行うことにより、システム
バス上を通過する排他制御コマンドは同時には1つしか
存在しないことが保証される。つまり一致しなければ受
け付けられない排他制御コマンドとして排除されるので
一致した1つの排他制御コマンドしか受け入れられな
い。
【0037】しかしながら、メモリモジュール3による
前述の様な排他制御だけでは、排他制御命令の実行が複
数のモジュールから頻繁に行われる様になると、大部分
の排他制御命令アクセスがSID不一致のため異常終結
してしまう可能性がある。ここで異常終結とは、レスポ
ンスラインRLNにてメモリモジュール3より受付けら
れないことを通知され動作を中断することを表わす。
【0038】また、LOC信号をオープンコレクタ素子
などの伝送速度の遅い素子で実現すればバスファイトな
どの心配がないが、高速化のためにトライステート素子
を使用した場合、複数のモジュールが同時にLOC信号
をアサートする期間が発生し、最悪バスファイトによる
素子破壊という事態が生じる。
【0039】図8はプロセッサモジュール2のバスコン
トローラBC23内の送信部XMT32の構成を示す。送信
部コントローラXMTC50はアービタ4とのバス使用権
の許諾処理とLOC信号の発行および監視をし、ダミー
コマンド発行指示をコマンドジェネレータCMDGEN
51に要求する。ラッチDBFO43はこのダミーコマンド
を一旦保持する。ドライバDRV53はLOC信号、ダミ
ーコマンドの出力を制御する。
【0040】このようにプロセッサモジュール2のバス
コントローラ内の送信部(XMT)32にLOC信号を監
視させるパスを設け、排他制御コマンドを送信するため
のバス使用許可信号を獲得した時に、すでに他のプロセ
ッサモジュール2のLOC信号がアサートされていると
排他制御コマンドに変えてダミーコマンドを送出し、L
OC信号のドライブを抑止する様に動作する。メモリモ
ジュール3はダミーコマンドを受けるとRLNバス15で
は正常に受けた様に応答しても実際には何も動作しない
様にすることで実質そのコマンドを無視することが出来
る。送信部XMT32が本状態になると、以降LOC信号
がネゲートされるまで排他制御コマンドを送信するため
のバス使用要求はアサートしない。LOC信号のネゲー
トを検出すると、再びバス使用要求を発行し、排他制御
コマンドの再発行を試みる。
【0041】この様に本実施例においては、アービタ4
によるコマンド送信の一括抑止による排他制御の実現に
代えて、各メモリモジュール3が個々に排他制御を行う
(分散排他制御)ことと、各プロセッサモジュール2に
おいてもLOC信号の監視により、排他制御アクセスの
競合を避ける様にすることで、排他制御アクセス中でも
一般のメモリアクセス等が何らの制約も無しに実行可能
となり、システムバスの性能向上が図れる。
【0042】次にこれまでの説明で述べたコマンドおよ
びステータスのシステムバス上でのフォーマットを例を
示す。図9はメモリライト・アクセス時のコマンド
(a)とステータス(b)を示す。ライトアクセス時の
コマンドはコマンドワード、メモリアドレスワード、デ
ータワード(複数も有り得る)からなり、それに対応す
るステータスはステータスワードのみからなる。図10は
メモリワード・アクセス時のコマンド(a)とステータ
ス(b)を示す。メモリリード時はコマンドはコマンド
ワードとアドレスワードからなり、ステータスは、ステ
ータスワードとデータワード(複数も有り得る)からな
る。
【0043】コマンドワード及びステータスワード内の
#1〜#3はコマンド種を示すコードであり、これらの
コードは、ステータスワード内においてOPCD領域に
フィードバックされる。コマンド内のRビットはアクセ
スがリード動作であるかライト動作であるかを示し、B
CTはライト時は後続するデータワードのデータ長を、
リード時は読みだしデータ長を示す。*印はリザーブビ
ットであり意味を持たない。後続のMEM−ADDRE
SSワードはメモリアクセスアドレスを、MEM−DA
TAは転送されるデータを示す。ステータス内のCSC
はコマンドの処理結果を示すコードが格納される。
【0044】コマンドコードのアサイン例を図11に示
す。図11は、従来の実施例でのアサインであり、メモリ
をアクセスするメモリコマンドと、メモリモモジュール
3に存在するレジスタをアクセスするレジスタコマンド
で定義される。レジスタアクセスについては、本発明と
関係ないので特に説明しない。
【0045】図12は本実施例により追加されるコマンド
の一実施例を示している。コマンドコード‘110’が
排他メモリアクセスコマンドとしてアサインされ、前述
のダミーコマンドを兼用し、従来コマンドでリーザーブ
であったビット23にダミーであることを示すフラグ
(F)ビットを追加する。図13に追加される排他メモリ
(ダミー)コマンドのフォーマットを図示する。
【0046】図14は、コマンド/ステータスに同期して
転送されるRLNバス上のデータフォーマットの一例を
示している。本実施例では、図示する様に9状態を定義
している。‘0000’はコマンドを受けるべきモジュ
ールが存在しない場合に返送されるコードであり、実際
には、RLNをドライブするモジュールが存在しないこ
とから必然的に‘0000’になる。‘0110’はコ
マンドを受けるべきモジュールが初期化処理中であり、
コマンドを受けられないことを示す。‘0111’はコ
マンドを受けるべきモジュールがHALT(停止)して
いる場合に返送されるコードであり、そのモジュールが
自身で重大な異常を検出した時にHALT状態に遷移す
る。やはりコマンドを受けることは出来ない。‘100
1’はシステムバス上での異常を検出した場合に返送さ
れるコードであり、SDB/TBバス13,14のパリティ
エラーがこれに当たる。
【0047】‘1010’はコマンド内に示すデータ長
と、タグバス14のCPT信号が示す最終ワードの対応が
取れない場合であり、データの脱送/冗送時あるいはB
CT化け等の障害時に返送され得る。‘1011’はコ
マンドを受けるべきモジュールがサポートしていないコ
マンドをうけた時に返送される。プロセッサモジュール
2が間違ったモジュールにコマンドを転送した場合に発
生する。‘1101’は、コマンドを受けるべきモジュ
ールが具備するバッファ(BUFF)に未だ未処理コマ
ンドが残っていてコマンドを受けられない場合に返送さ
れる。‘1110’は正常にコマンドを受け、かつ処理
完了後にステータスを返送することを示す。メモリアク
セス時のコマンドはステータスが返送されるので、RL
Nは本コードが返されるのが普通である。‘1111’
はコマンドを正常に受け付けたがステータスを返さない
と言う場合に返送されるコードであり、一部のレジスタ
アクセスと、本実施例による排他制御命令のダミーコマ
ンド時に本コードが返送される。
【0048】図15、図16は本実施例の排他制御アクセス
中のシステムバスのタイミングチャートを示し、図15は
モジュール#1(プロセッサモジュール2)よりモジュ
ール#2(メモリモジュール3)の読み出し、図16が書
き込みを表わす。図15,図16はシステムバスとアービタ
の動作と排他制御アクセスの両方を示しており、システ
ムバスとアービタの動作は図26で説明したのと同様であ
るので排他制御アクセスを主体に説明する。
【0049】モジュール#1のMPU20は排他制御アク
セスするアドレスをABに確定させるとアドレスストロ
ーブ(*AS)をアサートしてバス動作の開始を知らせ
る。バスコントローラBC23はそのアクセスがモジュー
ル#2に対するリードアクセスであると認識すると、コ
マンドを送信するためにBRQ#1(L)をアサートす
る。アービタ4はBRQ#1(L)を受付けるとBGR
#1(M)信号を与える。モジュール#1はBGR#1
(M)信号を受信すると、SDB/TBバス13,14のド
ライブを開始して排他制御コマンド(図中L)を生成し
アドレス(図中A)と共にSDB/TBバス13,14に送
出する。これと同時にLOC信号をアサートする。
【0050】システムバス1に接続されている全てのモ
ジュールは同時に排他制御を開始し、SID(この場合
モジュール#1のもの)を保持する。タグバス14にはバ
ス動作の開始を示すSTT信号と終了を示すCPT信号
が順次出力されるが、アービタ4はCPT信号を認識す
ると、モジュール#1に対するBGR#1(M)信号を
ネゲートする。またアービタ4はタグバス情報によりコ
マンドであることを認識するとコマンド内の相手先モジ
ュール情報を読み取り、対応するモジュール#2にBG
R#2(S)信号を与える。モジュール#2はBGR#
2(S)信号を受けるとRLNバス15をドライブしてコ
マンド転送に同期して受信状況「RL」、「RA」を返
信する。
【0051】コマンドの送出が終わるとシステムバス1
は空き状態になり、アービタ4はLOC信号を見ていな
いので次のコマンド送信要求を受け付ける。本例では、
モジュール#mの使用要求を受け付け許可信号を与えて
いる。本例ではモジュール#mのコマンドはモジュール
#2宛のメモリライトコマンド(図中C−A−D)であ
るので、排他制御対象にはならず、かつメモリモジュー
ル3のバッファ36に空きあるので正常に受け付けてい
る。モジュール#2内でのメモリアクセスは順次処理さ
れ、先に受け付けた排他制御アクセス処理が完了する
と、ステータスを生成し、データと共に返送する(図中
S−D)。さらにモジュール#mの処理が完了すると、
そのステータスを返送する(図中S)。先の排他制御コ
マンドのステータス(及びデータ)の転送が完了する
と、モジュール#1のバスコントローラBC23はデータ
バス24にデータを確定させMPU20に*DC信号を返
す。
【0052】次に図16に移り、MPU20が続いてライト
動作に入るとバスコントローラBC23は排他制御コマン
ドとアドレス、データを送出する(図中L−A−D)。
モジュール#2(メモリモジュール)は、排他制御コマ
ンドであることを認識すると、先に保持しているSID
情報と比較し、一致していることを確認してこのコマン
ドを受け付ける。モジュール#2がこのコマンドを処理
中に、モジュール#mがモジュール#n(メモリモジュ
ール)に排他制御命令を出そうとするが、すでにLOC
信号がアサートされているので排他制御ダミーコマンド
(図中P)を送出する。モジュール#nはこのダミーコ
マンドを正常に受付ける(IACK)が、実際には何も
動作せず、ステータスも返送しない。万一モジュール#
mの故障で排他制御コマンドが発行された場合でも、モ
ジュール#nもモジュール#2と同時に排他制御状態に
入っているのでそのコマンドを受け付けることはない
(RLNで‘1001’を返送する)。
【0053】先の排他制御ライト処理が完了するとステ
ータスを生成し、返送する。モジュール#1がこのステ
ータスを受けると、MPU20に対して*DC信号を与え
る。MPU20はDC信号で命令を完了し、*LOCI信
号をネゲートする。MPU20のネゲートによりシステム
バス上にLOC信号もネゲートされ、全てのメモリモジ
ュールが排他制御を解除する。
【0054】次に図15、図16の動作フロー図について説
明する。図17はプロセッサモジュールのバスコントロー
ラBC23の動作のコマンド送信、ステータス受信を示す
動作フロー図である。バスコントローラBC23は内部バ
ス24,25を監視し(ステップ60)、MPU20からの排他
制御リード命令があると(ステップ61)、内部バス情報
およびアクセス先などの設定情報によりシステムバス1
に送出する排他制御コマンドおよび読み出しアドレスを
生成する(ステップ62)。
【0055】次にアービタ4にバス使用要求信号BRQ
#1(L)を発行し(ステップ63)、バス使用許可信号
BGR#1(M)を獲得すると(ステップ64)、LOC
信号が他のプロセッサモジュール2によってアサートさ
れているか調べ(ステップ65)、アサートされていると
排他制御コマンドをダミーコマンドに変更して送出する
がLOC信号はアサートしない(ステップ66)。そして
既にアサートされているLOC信号がネゲートされるの
を待ち(ステップ67)、ネゲートされるとステップ63に
戻る。
【0056】ステップ65でLOC信号が他のプロセッサ
モジュールによってアサートされていない場合、排他制
御コマンドとアドレスをシステムバス1に送出すると共
にLOC信号をアサートし(ステップ68)、返信を待つ
ためシステムバス1を監視する(ステップ69)。自分宛
の返信ステータスがくると(ステップ70)、このステー
タスと共に受信した読み出しデータを内部バスのデータ
バスDB24に出力し、バス動作の完了通知(DC)をM
PU20に通知する(ステップ71)。
【0057】次に図18に移り、バスコントローラBC23
は再び内部バス24,25を監視し(ステップ72)、MPU
20より排他制御ライト命令が出されると(ステップ7
3)、内部バス情報および書き込みに対する設定情報よ
りシステムバス1に送出する排他制御コマンドと書き込
みアドレスと書き込みデータを生成する(ステップ7
4)。次にアービタ4にバス使用許可信号を発行し(ス
テップ75)、バス使用許可信号が得られると(ステップ
76)、排他制御コマンドと書き込みアドレスとデータを
システムバス1に送出し(ステップ77)、システムバス
を監視して返信がくるのを待つ(ステップ78)。自分宛
のステータスがくると(ステップ79)、内部バス24,25
にバス動作の完了通知(DC)を送出しMPU20に報告
する(ステップ80)。
【0058】図19はメモリモジュールのバスコントロー
ラBC27のコマンド送信およびステータス受信フロー図
である。メモリモジュール3のバスコントローラBC27
はシステムバス1を監視し(ステップ90)、コマンドを
受信すると(ステップ91)、それが排他制御コマンドか
排他制御でない一般のコマンドか調べ(ステップ92)、
排他制御コマンドであればSIDラッチ47に保持した発
信元と同じか調べ(ステップ93)、一致すれば自分宛か
調べる(ステップ94)。また一般のコマンドの場合も自
分宛か調べる(ステップ94)。
【0059】自分宛のコマンドであれば、そのコマンド
の内容を実施しそのステータスを生成し(ステータス9
5)、アービタ4にバス使用許可を求め(ステップ9
6)、バス使用許可信号が得られると(ステップ97)、
コマンドがライト命令のときはステータスのみを、リー
ド命令のときはステータスと読み出したデータとをシス
テムバス1に送出する(ステップ98)。
【0060】図20はメモリモジュールのバスコントロー
ラBC27のSID保持動作フロー図である。バスコント
ローラBC27はシステムバス1を監視し(ステップ100
)、LOC信号のアサートを認識し、かつ排他制御コ
マンドを受信すると(ステップ101 )、排他制御コマン
ドの発信元をSIDラッチ47に保持し(ステップ102
)、LOC信号がネゲートされるかを監視し(ステッ
プ103 )、ネゲートされるとSIDラッチ47に保持した
発信元を無効化する(ステップ104 )。
【0061】
【発明の効果】以上の説明から明らかなように本発明は
システムバスに接続されたモジュール同志で排他制御を
行うので、従来のようにアービタが排他制御期間中は排
他制御と関係ないコマンドまで遮断するようなことはな
く、排他制御期間中であってもシステムバスが空いてい
れば、一般のコマンド用にシステムバスを使用すること
ができ、システム全体の効率が向上する。
【図面の簡単な説明】
【図1】本発明の原理図である。
【図2】本発明の実施例のシステム構成図である。
【図3】実施例のプロセッサモジュール、メモリモジュ
ール構成例を示す図である。
【図4】実施例のプロセッサモジュールとメモリモジュ
ールのバスコントローラBC構成例を示す図である。
【図5】実施例のアービタの扱う信号の構成例を示す図
である。
【図6】実施例のバスコントローラ受信部RCVの構成
例を示す図である。
【図7】実施例のバスコントローラ受信部RCVの排他
制御フラグにおける状態遷移図である。
【図8】実施例のバスコントローラ送信部XMTの構成
例を示す図である。
【図9】システムバス上でのメモリライト・アクセス時
のデータフォーマットの一例を示す図である。
【図10】システムバス上でのメモリリード・アクセス
時のデータフォーマットの一例を示す図である。
【図11】従来のコマンドの定義例を示す図である。
【図12】本実施例のコマンドの定義例を示す図であ
る。
【図13】実施例で追加したコマンドのフォーマット例
を示す図である。
【図14】RLNバス上でのデータ定義例を示す図であ
る。
【図15】実施例のリード時におけるタイミングチャー
ト図である。
【図16】実施例のライト時におけるタイミングチャー
ト図である。
【図17】実施例のプロセッサモジュールのバスコント
ローラBC動作フローチャートで、コマンド送信、ステ
ータス受信の動作を示す図である。
【図18】図17の続きの動作を示す図である。
【図19】実施例のプロセッサモジュールのバスコント
ローラBC動作フローチャートで、コマンド受信、ステ
ータス受信の動作を示す図である。
【図20】実施例のプロセッサモジュールのバスコント
ローラBC動作フローチャートで、SID保持動作を示
す図である。
【図21】従来のシステム構成例を示す図である。
【図22】従来のプロセッサモジュール、メモリモジュ
ール構成例を示す図である。
【図23】従来のプロセッサモジュールとメモリモジュ
ールのバスコントローラBCの構成例を示す図である。
【図24】図23のバスコントローラBCのラッチを示す
図である。
【図25】従来のアービタの扱う信号の構成例を示す図
である。
【図26】システムバスの動作を示すタイミングチャー
ト図である。
【図27】従来の排他制御アクセスの動作を示すタイミ
ングチャート図である。
【符号の説明】
1 システムバス 2 プロセッサモジュール 3 メモリモジュール 4 アービタ 13 システムデータバス 14 タグバス 15 RLNバス 16 排他制御表示信号線 17 使用要求/許可バス 20 プロセッサモジュールのMPU 23,27 バスコントローラBC 32,37 バスコントローラBCの送信部 33,38 バスコントローラBCの受信部 46 EXCラッチ 47 SIDラッチ 50 送信部コントローラ 51 コマンドジェネレータ
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.6,DB名) G06F 15/16 350 G06F 15/362 510

Claims (5)

    (57)【特許請求の範囲】
  1. 【請求項1】バスを介して接続された複数の第1モジュ
    ールおよび少なくとも1つの第2モジュールと、前記バ
    スを制御するアービタとを備えた装置であって、 前記第1モジュールは、 排他制御期間中であることを示す排他制御信号を監視す
    る第1の排他制御信号監視手段と、 前記排他制御信号を出力する排他制御信号出力手段と、 前記排他制御信号を自身が出力しているとき自身が発信
    元であることを示すことも含めた排他制御命令を出力す
    ると共に非排他制御命令を出力する命令出力手段と、 前記命令出力手段が出力する排他制御命令または非排他
    制御命令に対する返信を受信する返信受信手段とを備
    え、 前記第2モジュールは、 前記排他制御信号を監視する第2の排他制御信号監視手
    段と、 前記排他制御命令の発信元を記憶する発信元記憶手段
    と、 前記命令出力手段が出力する排他制御命令と非排他制御
    命令を受信する命令受信手段と、 受信した前記排他制御命令または非排他制御命令の返信
    をする返信出力手段とを備え、 前記アービタは、前記第1モジュールと前記第2モジュ
    ールからの前記バスの使用要求があると、前記バスの使
    用状況により使用の許可を与えるように制御する制御手
    段を備えたことを特徴とする処理装置。
  2. 【請求項2】前記発信元記憶手段は、前記第2の排他制
    御信号監視手段により前記排他制御信号がアサートされ
    始めた後の最初の前記排他制御命令に含まれる発信元を
    前記排他制御信号がネゲートされるまで保持することを
    特徴とする請求項1記載の処理装置。
  3. 【請求項3】前記命令受信手段は、前記排他制御命令を
    受信するとその発信元を調べ前記発信元記憶手段に記憶
    した発信元と異なる場合はこの排他制御 命令を拒絶する
    ことを特徴とする請求項1または2記載の処理装置。
  4. 【請求項4】前記第1モジュールは、前記排他制御信号
    と前記排他制御命令を発行する際に前記排他制御信号監
    視手段によって既に排他制御信号が他の第1モジュール
    より発行されていることを認識した場合、受信側が何ら
    処理を行わないダミーコマンドを発行すると共に自身か
    らの排他制御信号の発行を抑止する手段を備えたことを
    特徴とする請求項1記載の処理装置。
  5. 【請求項5】前記ダミーコマンドを発行した第1モジュ
    ールは、既に発行されている前記排他制御信号がネゲー
    トされるまで新たな前記排他制御命令の発行を行わない
    ようにしたことを特徴とする請求項4記載の処理装置。
JP4292517A 1992-10-30 1992-10-30 処理装置 Expired - Fee Related JP2874488B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP4292517A JP2874488B2 (ja) 1992-10-30 1992-10-30 処理装置
US08/142,918 US5517625A (en) 1992-10-30 1993-10-29 System bus control system for multiprocessor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4292517A JP2874488B2 (ja) 1992-10-30 1992-10-30 処理装置

Publications (2)

Publication Number Publication Date
JPH06139207A JPH06139207A (ja) 1994-05-20
JP2874488B2 true JP2874488B2 (ja) 1999-03-24

Family

ID=17782838

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4292517A Expired - Fee Related JP2874488B2 (ja) 1992-10-30 1992-10-30 処理装置

Country Status (2)

Country Link
US (1) US5517625A (ja)
JP (1) JP2874488B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2641110B1 (ja) * 1988-12-23 1995-07-21 Thomson Csf
US5652846A (en) * 1995-07-03 1997-07-29 Compaq Computer Corporation Bus deadlock prevention circuit for use with second level cache controller
US6073204A (en) * 1997-04-23 2000-06-06 Micron Technology, Inc. Memory system having flexible architecture and method
US5790811A (en) * 1996-05-17 1998-08-04 Advanced Micro Devices, Inc. System and method for performing data transfers during PCI idle clock cycles
US6021459A (en) 1997-04-23 2000-02-01 Micron Technology, Inc. Memory system having flexible bus structure and method
US6851005B1 (en) * 2000-03-03 2005-02-01 International Business Machines Corporation Apparatus and method for implementing raid devices in a cluster computer system
US6973521B1 (en) * 2000-05-16 2005-12-06 Cisco Technology, Inc. Lock controller supporting blocking and non-blocking requests
JP2005284578A (ja) * 2004-03-29 2005-10-13 Mitsubishi Electric Corp バス装置
US7350002B2 (en) * 2004-12-09 2008-03-25 Agere Systems, Inc. Round-robin bus protocol
KR20120097831A (ko) * 2011-02-25 2012-09-05 삼성전자주식회사 시스템 온 칩의 버스 시스템
US10360746B1 (en) * 2016-12-30 2019-07-23 Alarm.Com Incorporated Controlled indoor access using smart indoor door knobs

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59174962A (ja) * 1983-03-25 1984-10-03 Nec Corp メモリアクセス制御方式
US4587609A (en) * 1983-07-01 1986-05-06 Honeywell Information Systems Inc. Lockout operation among asynchronous accessers of a shared computer system resource
US4984153A (en) * 1988-04-27 1991-01-08 Unisys Corporation Storage locking control for a plurality of processors which share a common storage unit
JPH01300365A (ja) * 1988-05-30 1989-12-04 Nippon Telegr & Teleph Corp <Ntt> マルチプロセッサシステムの排他制御方式
US5167022A (en) * 1988-10-25 1992-11-24 Hewlett-Packard Company Multiprocessor bus locking system with a winning processor broadcasting an ownership signal causing all processors to halt their requests
JPH0387958A (ja) * 1989-06-30 1991-04-12 Nec Corp バスロツク制御方式
JPH0664567B2 (ja) * 1989-12-25 1994-08-22 株式会社日立製作所 多重プロセッサシステム
JPH03232052A (ja) * 1990-02-07 1991-10-16 Nec Corp 共有データの排他アクセス方式
US5269005A (en) * 1991-09-17 1993-12-07 Ncr Corporation Method and apparatus for transferring data within a computer system

Also Published As

Publication number Publication date
US5517625A (en) 1996-05-14
JPH06139207A (ja) 1994-05-20

Similar Documents

Publication Publication Date Title
US4698746A (en) Multiprocessor communication method and apparatus
US4737932A (en) Processor
US4864496A (en) Bus adapter module for interconnecting busses in a multibus computer system
US6141715A (en) Method and system for avoiding live lock conditions on a computer bus by insuring that the first retired bus master is the first to resubmit its retried transaction
JPH0666821B2 (ja) デ−タ通信コントロ−ラ
EP0196331A1 (en) METHOD AND DEVICE FOR ORDERING MULTIPROCESSOR OPERATIONS IN A MULTIPROCESSOR SYSTEM.
JPS59188752A (ja) 欠陥サイクル作動式デ−タ処理システム用バス
JPH0625985B2 (ja) 多重プロセッサコンピュータシステムにおけるプロセッサによるシステムリソースに対する適切なアクセスを保証するための方法及び装置
JPH0218657A (ja) 複数バス・マイクロコンピユータ・システム
EP0329776A1 (en) Method and apparatus for interconnecting busses in a multibus computer system
WO1988008584A1 (en) Method and apparatus for implementing multiple lock indicators in a multiprocessor computer system
JP2874488B2 (ja) 処理装置
JPH02500784A (ja) 保留バスにおいて割り込み要求メッセージを処理するノード
JPH0246974B2 (ja)
US4858234A (en) Method and apparatus for error recovery in a multibus computer system
JPH06250916A (ja) 共有メモリの排他制御方法
EP2904765A1 (en) Method and apparatus using high-efficiency atomic operations
US4837767A (en) Bus adapter module with improved error recovery in a multibus computer system
JPH07104826B2 (ja) 転送制御装置
JPH06149730A (ja) バスシステム,バス制御方式及びそのバス変換装置
JP2008511890A (ja) アトミック・オペレーションを用いて情報単位を変更する方法及び装置
JP3345102B2 (ja) 結合したモジュールをリセットする方法及びこの方法を用いるシステム
JPH10307788A (ja) バスブリッジ
JP2002278923A (ja) バスシステム,バス制御方式及びそのバス変換装置
KR0126583B1 (ko) 시스템 제어기 모듈에서의 요청기 읽기 제어기(Requester Read Controller In System Controller In System Control Module)

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19981215

LAPS Cancellation because of no payment of annual fees