JPH0786859B2 - マルチプロセッサシステムにおいて仲裁及び直列化を行う方法及び装置 - Google Patents

マルチプロセッサシステムにおいて仲裁及び直列化を行う方法及び装置

Info

Publication number
JPH0786859B2
JPH0786859B2 JP62220102A JP22010287A JPH0786859B2 JP H0786859 B2 JPH0786859 B2 JP H0786859B2 JP 62220102 A JP62220102 A JP 62220102A JP 22010287 A JP22010287 A JP 22010287A JP H0786859 B2 JPH0786859 B2 JP H0786859B2
Authority
JP
Japan
Prior art keywords
cpu
priority
cpus
order
request
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 - Lifetime
Application number
JP62220102A
Other languages
English (en)
Other versions
JPS63132371A (ja
Inventor
ヴァヒドサファ アリ
マギー クリスティン
ジェイ ベグリー マイケル
Original Assignee
アムダール コーポレーション
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 アムダール コーポレーション filed Critical アムダール コーポレーション
Publication of JPS63132371A publication Critical patent/JPS63132371A/ja
Publication of JPH0786859B2 publication Critical patent/JPH0786859B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • 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
    • 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
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port

Description

【発明の詳細な説明】 産業上の利用分野 本発明は、一般に、マルチプロセッサシステムに係り、
特に、マルチプロセッサシステムの複数のプロセッサ間
の仲裁を行なったりこれらプロセッサを直列化したりす
る方法及び装置に係る。
従来の技術 マルチプロセッサシステムは、互いに直接接続されるか
又は1つ以上の他のプロセッサを介して間接的に接続さ
れた複数のプロセッサを備えている。このようなシステ
ムにおけるプロセッサの接続は、1つのプロセッサのデ
ータ及び/又は制御信号バスと、システムにおける1つ
以上の他のプロセッサの対応するデータ及び/又は制御
信号バスとの接続を含む。例えば、第1、第2、第3及
び第4と各々示された4つのプロセッサより成るマルチ
プロセッサシステムにおいては、第1のプロセッサが第
2のプロセッサに直結されると共に第2のプロセッサを
介して第3及び第4のプロセッサに間接的に接続され、
第2のプロセッサが第1及び第3のプロセッサに直結さ
れると共に第3のプロセッサを介して第4のプロセッサ
に間接的に接続され、第3のプロセッサが第2及び第4
のプロセッサに直結されると共に第2のプロセッサを介
して第1のプロセッサに間接的に接続され、そして第4
のプロセッサが第3のプロセッサに直結されると共に第
3のプロセッサを介して第2及び第1のプロセッサに間
接的に接続されるような構成でこれらのプロセッサが接
続される。
作動に際し、システム内の中央処理装置(CPU)は、命
令の実行中に、システム内の他のCPUの特殊な動作を必
要とする命令に遭遇する。例えば、幾つかの命令は、CP
Uにおいて実行される時に、CPUにおいてそれ以前に実行
された命令によって生じた結果が、現在の命令の結果が
出る前に、システム内の他のCPU及びチャンネルに分か
り且つこれらにおいて得ることができねばならないこと
を必要とする。現在の命令の結果が出る前に他のCPU及
びチャンネルに得ることができねばならない手前の命令
の特殊な結果は、記憶装置アクセス命令と、変換ルック
アサイドバッファパージ命令とを含んでいる。要求を発
しているCPUにおいて実行されるこのような命令は、要
求を発しているCPUにおいて1単位の動作が完了する前
に他の全てのCPUにおいて動作を開始しなければならな
い。動作の単位とは、割込みすることのできない所定量
の作業として定められる。更に、システム内の他のCPU
の各々において開始される動作は、これらCPUにおける
動作の単位と単位との間で開始されねばならない。要求
を発していないCPUの各々において開始される動作(要
求を発していない全てのCPUを所定の状態にする)は、
総体的に、直列化として知られている。
一般に、マルチプロセッサシステムにおけるプロセッサ
の直列化は、プロセッサに或る種の動作を強制的に完了
させると共に、プロセッサに新たな動作を開始しない状
態を強制的にとらせることを含む。例えば、プロセッサ
の直列化中に完了される動作は、各プロセッサにとって
特定のものであるが、典型的に、現在の動作単位を完了
させ、システムメモリ及びローカルプロセッサキャッシ
ュへの記憶を完了させそしてローカルプロセッサ変換ル
ックアサイドバッファへのペンディング中の更新を完了
させることを含む。
時には、マルチプロセッサシステム内の2つ以上のプロ
セッサがシステム内の別のプロセッサの直列化を同時に
要求することがある。このようなことが生じると、要求
を発しているプロセッサは、所定の機構に基づいて優先
順位を裁定しなければならない。優先順位の裁定は、仲
裁アービトレーション)と称する。
マルチプロセッサシステム内のプロセッサの優先順位を
裁定する場合、必要な制御信号を発生する特殊な回路が
必要とされる。これまで、優先順位を裁定するに必要な
制御信号は、システム内の全てのプロセッサに共通な優
先順位論理回路を用いて発生されている。共通の優先順
位論理回路を用いる場合には幾つかの効果があるが、共
通の優先順位論理回路を用いた場合、制御信号ラインの
配列が複雑になり、信号遅延を予想することができずそ
してシステムを作動可能な状態に維持することが困難と
なる。というのは、共通の優先順位回路が故障した場
合、システム内の全てのCPUに影響が及ぶからである。
公知の仲裁及び直列化方法及び装置の更に別の欠点は、
これまで、全体的な直列化のオーバーヘッドを伴うこと
なく仲裁優先順位許可機構で命令がそれ自体を保護でき
るように仲裁機能を直列化機能から分離することができ
ない。これが得られた場合には、システム内の他のCPU
は、仲裁を必要とする動作を実行しようとしない限り、
通常の通りに処理を進めることができる。
公知の仲裁方法及び装置の上記制約に加えて、公知の仲
裁機構では多数の命令を処理することができない。例え
ば、高速助成モード(FAM)と称する或るモードでは、
命令を単一の動作単位として機能するようにグループ分
けすることができる。多数の命令に対して仲裁の許可を
保持できるようにすることにより、仲裁又は直列化を必
要とする命令が命令グループに含まれた時に生じること
のあるデッドロック状態が防止される。このような機能
がない場合には、これらの命令がFAMにおいて生じて、
その結果、機能が失われることを防止しなければならな
いか、或いは、これらが生じた時に、ソフトウェアによ
りFAMから退出して命令を実行し、これが完了した時
に、FAMに復帰するようにしなければならない。これら
の解決策は、どちらも、ここに開示する方法及び装置に
比べて性能及び/又は機能を著しく低下させる。
発明の構成 以上の説明から、本発明の主たる目的は、マルチプロセ
ッサシステムにおいて複数の中央処理装置(CPU)間の
仲裁を行なうと共にこれらを直列化する新規な方法及び
装置を提供することである。
上記の目的によれば、システム内の各CPUには、命令プ
ロセッサと、「他のCPUの直列化を許す要求」制御信号
(REQUEST)を登録する手段と、複数の入力優先順位回
路と、優先順位回路の入力に接続された遅延回路網と、
「あなた自身を直列化する」制御信号(ORDER)を発生
する手段と、直列化回路と、システム内の他のCPUが使
用するための「直列化完了確認」制御信号(ACK)を発
生する手段と、上記の制御信号をシステム内の全てのCP
U間で送信するための手段と、「確認」制御信号受信器
と、ローカル直列化回路と、命令プロセッサが使用する
ための「仲裁/直列化完了」制御信号を発生するための
手段とが設けられる。
各CPUの優先順位回路の入力に接続された遅延回路網が
設けられていて、システム内の複数のCPUによって同時
に発生されたREQUESTが各々の優先順位回路によって同
時に受信されるようになっている。特に、遅延回路網の
各々には、優先順位回路の選択された入力と直列に接続
された遅延回路が設けられている。各遅延回路によって
与えられる遅延の大きさは、システム内のCPUから、遅
延回路が接続された優先順位回路の入力にREQUESTを送
信するに要する時間に反比例するように選択される。
本発明の好ましい実施例では、遅延回路網は、優先順位
回路の入力に直列に入れられるべき遅延の大きさを選択
するためのセレクタ回路を備えている。例えば、修理又
は交換のために、CPUがシステム内で移動されるか又はC
PUがシステム内で交換された場合に、遅延回路網に所要
の遅延を与えるために必要とされることは、システム内
の遅延回路網の位置に基づいてセレクタ回路を単に設定
することだけである。又、システムがマルチプロセッサ
システムから二重プロセッサ又は単一プロセッサに再構
成される場合には、必要とされる遅延の大きさを減少で
きるという効果が得られる。
作動に際し、CPUがシステム内の別のCPUの直列化を要求
する場合には、他のCPUの直列化を許すためのREQUESTを
発生し、これをシステム内の他の全てのCPUに送信す
る。複数のCPUが同時にREQUESTを発生する場合には、各
々のCPUの優先順位回路がCPUの1つに対して優先順位を
裁定する。全てのCPUの優先順位回路は同一であるか
ら、それらの各々は同じ判断をなし、それ故、他のCPU
に判断の結果を送信する必要はない。優先順位が裁定さ
れたCPUは、ローカル直列化動作を実行し、他のCPUがそ
れ自体を直列化するように命令するORDERを発生しそし
てそのREQUESTを落とす。REQUESTが落ちると、要求を発
している他のCPUの1つが優先順位を裁定することがで
きる一方、このCPUと他のCPUが直列化される。然し乍
ら、ORDERがペンディングである間は、他のCPUがORDER
を発生しない。要求を発していない各々のCPUがその直
列化を完了すると、直列化を完了したことを示すACK制
御信号を発生する。要求を発していてORDERを発生するC
PUが、他の全てのCPUがそれらの直列化を完了し且つ要
求を発しているCPUがその直列化を完了したことを指示
するACK信号を受信した時には、制御信号が命令プロセ
ッサに送られ、要求を発しているCPUがそのREQUESTを生
じたタスクを完了し、そのORDERを落とす。その後、次
の優先順位を有するCPUがローカル直列化動作を実行
し、そのORDERを発生しそして上記のプロセスが繰り返
される。
CPUが命令又は命令のグループを実行する時は、その実
行を中断することができない。システム内の別のCPUがR
EQUESTを発生して優先順位が裁定されるのを防止するた
めに、前者のCPUは、命令又は命令のグループの実行を
完了するまでREQUESTを出し続ける。このようにして、
本発明の方法及び装置は、これまで必要とされた高価な
ハードウェア又はソフトウェアの実施に頼ることなく特
定の命令の破壊的な中断を防止することができる。
実施例 本発明の上記及び他の目的、特徴並びに効果は、添付図
面を参照した以下の詳細な説明から明らかとなろう。
第1図には、本発明のマルチプロセッサシステムが参照
番号1で一般的に示されている。このシステム1には、
CPU1、CPU2、CPU3及びCPU4で一般的に示された複数の中
央処理装置(CPU)が備えられている。これらのCPUは、
全て、複数のREQUEST信号ライン20−23と、複数のORDER
信号ライン27−30と、複数の確認(ACK)信号ライン35
−38とによって相互接続されている。複数の破線は、各
ラインの信号がCPU内のシステムクロックとラッチされ
て同期された後にCPU2及びCPU3を通じてそれに隣接する
CPUに送られることを示すために用いられている。
CPU1−4の各々には、CPU1のブロック図であって且つ他
のCPUの典型である第2図から明らかになるように、命
令プロセッサ6と、優先順位回路11と、要求レジスタ回
路12と、命令発生器13と、直列化回路14と、ローカル直
列化回路15と、ACK受信器16と、仲裁/直列化(ARB/SE
R)完了回路17とが含まれている。CPU1−4の各々に
は、更に、複数の遅延回路網10A、10B、10C及び10Dがそ
れぞれ含まれている。
以下に更に詳しく述べるように、遅延回路網10Aないし1
0Dの各々には、制御信号ライン20、21、22及び23にそれ
ぞれ結合された4つの入力1−4と、優先順位回路11の
対応する入力に結合された4つの出力とを含んでいる。
入力1−4は、これらを引き出すCPUを好都合に識別す
るために、参照番号1−4で示されている。例えば、入
力1はCPU1から引き出され、入力2はCPU2から引き出さ
れる、等々となっている。この識別構成は、直列化回路
14及びACK受信器16についても使用される。
優先順位回路11には、出力制御信号ライン24に結合され
た出力が備えられている。
要求レジスタ回路12には、REQUEST制御信号ライン45に
よって命令プロセッサ6の出力に結合された入力と、
「ローカル直列化を要求する」制御信号ライン46によっ
てローカル直列化回路15の入力に結合された出力と、
「仲裁のみ」の制御信号ライン47によって命令発生器13
の入力に結合された出力と、「要求を落とす」制御信号
ライン48によって命令発生器13の出力に結合された入力
と、入力SELECT(選択)制御信号ライン49によってARB/
SER完了回路17の入力に結合された出力と、制御信号ラ
イン20−23の1つに結合された出力とが含まれている。
命令発生器13には、「要求を落とす」制御信号入力ライ
ン50によって命令プロセッサ6の出力に結合された入力
と、ORDER制御信号ライン27−30の1つに結合された出
力とが含まれている。
直列化回路14には、ORDER制御信号ライン27−30の中の
ラインに結合された3つの入力と、制御信号ライン51に
よって命令プロセッサ6の出力に結合された4番目の入
力と、「直列化完了」(ACK)制御信号ライン35−38の
1つに結合された出力とが含まれている。
「ローカル直列化」回路15には、制御信号ライン52によ
って命令プロセッサ6の出力に結合された入力と、「ロ
ーカル直列化完了」制御信号ライン52によって「ARB/SE
R完了」回路17の入力に結合された出力とが含まれてい
る。
ACK受信器16には、制御信号ライン35,37,38の中の3つ
のラインに結合された複数の3つの入力と、制御信号ラ
イン53により回路17の入力に結合された「他のCPUを直
列化する」制御出力信号出力とが含まれている。
ARB/SER回路17には、制御信号ライン54によって命令プ
ロセッサ6の入力に結合された出力が含まれている。
動作中、CPU1−4の中の1台に含まれた命令プロセッサ
6の命令が、システム内のCPU1−4の別の1台に特定の
動作を行わせることを要求するときには、そのCPUの命
令プロセッサ6で「他のCPUの直列化を許す要求」制御
信号(REQUEST)を発生することにより、他のCPUの直列
化を許すことを要求し、即ち、優先順位を要求する。こ
のREQUESTは、次いで、CPUによってライン45を通じてRE
QUESTレジスタ12に送信され、このレジスタ12を通じて
そのCPU自身の優先順位回路11に送信されると共に、制
御信号ライン20−23及びそれに関連する遅延回路網10A
−10Dの1つを通じて他のCPUの各々の優先順位回路11に
送信される。例えば、CPU1はライン20を使用し、CPU2は
ライン21を使用し、CPU3はライン22を使用し、CPU4はラ
イン23を使用する。
第3図を参照すれば、各々のREQUESTがCPUによって受信
されるのに要する時間は、システム内の送信CPUと受信C
PUとの相対的な位置によって左右され、これは、遅延単
位数によって表わされる。送信CPU及び受信CPUが1つの
同一のCPUである場合には、明らかに遅延はない。又、
送信CPUと受信CPUとが直結されている場合には、遅延単
位数は1つである。又、送信CPUと受信CPUとが1台のCP
Uによって分離されている場合には、遅延単位数は2で
ある。そして送信CPUと受信CPUとが2台のCPUによって
分離されている場合には、遅延単位数は3である。又、
以下についても同様である。
例えば、第1図について述べた上記4CPUシステムでは、
遅延単位数は次の通りである。
第1表 受信CPU 送信器CPU 遅延単位数 1 1 0 1 2 1 1 3 2 1 4 3 2 1 1 2 2 0 2 3 1 2 4 2 3 1 2 3 2 1 3 3 0 3 4 1 4 1 3 4 2 2 4 3 1 4 4 0 全てのCPUの優先順位回路は同一であり、それらのCPUの
各々は、そのCPU自身或いはシステム内の他のCPUに対し
て、他のCPU内の優先順位回路とは無関係に優先順位を
裁定する。その結果、2つ以上のCPUが、同時に優先順
位を要求したとき、即ち、システム内の他のCPUを直列
化する許可を要求したときは、全ての優先順位回路が同
時に他のCPUからREQUESTを受け取るすることが必要とな
る。
全てのCPUの全ての優先順位回路が同時に他のCPUからRE
QUESTを受け取るように確保するために、或るCPUから優
先順位回路によって受け取らるREQUESTを遅延させるた
めの遅延回路Dが設けられている。与えられる遅延の単
位数は、システム内の送信CPUと受信CPUとの相対的な位
置によって左右される。従って、送信CPUと受信CPUが1
つで同一であるときには、与えられる遅延の単位数は、
システム内のCPUの優先順位回路の入力に与えられる遅
延の単位の最大数であり、受信CPUとシステム内の最も
遠い送信CPUとの間の信号遅延と等しい。送信CPUと受信
CPUとが直結されている場合には、与えられる遅延単位
数が最大数よりも1単位少ないものとなる。又、送信CP
Uと受信CPUとが1台のCPUによって分離されている場合
には、与えられる遅延単位数は最大数よりも2単位少な
いものとなる。そして、送信CPUと受信CPUとが2台のCP
Uによって分離されている場合には、与えられる遅延単
位数は最大数よりも3単位少ないものとなる。以下も同
様である。例えば、第1図ないし第3図と共に述べた上
記の4CPUシステムにおいては、与えられる遅延単位の数
は、次の通りである。
第2表 受信CPU 送信器CPU 遅延単位数 1 1 3 1 2 2 1 3 1 1 4 0 2 1 2 2 2 3 2 3 2 2 4 1 3 1 1 3 2 2 3 3 3 3 4 2 4 1 0 4 2 1 4 3 2 4 4 3 上記の遅延回路Dの各々には、遅延単位が1つ含まれて
いる。
第4図ないし第7図に示された本発明の好ましい実施例
では、複数のプログラム可能な遅延回路網が含まれてい
る。これらの回路網の各々は、必要な数の遅延回路を、
それが接続される優先順位回路の各入力と直列に配置す
るように容易にプログラムすることができる。システム
内の優先順位回路の入力に対して必要な最大の遅延単位
数がいったん決定されると、各優先順位回路の各入力に
は、最大数の遅延回路Dと多入力セレクタ回路Sとが設
けられる。この多入力セレクタ回路Sは、1つ以上のラ
ッチLに応答して必要数の上記遅延回路Dをこのような
入力の各々と直列に結合する。従って、優先順位回路へ
の入力に3単位の遅延が必要な場合には、セレクタ回路
Sは、ラッチLからの制御信号に応答して、3つの上記
遅延回路Dを上記入力と直列に結合する。別の優先順位
回路への入力に2単位の遅延が必要な場合には、セレク
タ回路Sは、各ラッチからの別の制御信号に応答して、
2つの上記遅延回路Dを上記入力と直列に結合する。以
下、同様となる。
例えば、第1図と共に述べた上記の4CPUシステムでは、
受信器−送信器の組み合せの各々についてのセレクタ回
路の入力は次の通りである。
システム内の各CPUの優先順位回路と遅延回路とセレク
タ回路が同一の場合には、CPUを別のCPUと取り換えるこ
ともできるし、システム内の別のCPUと交換することも
できる。又、上記の説明から、このような交換を行なう
に必要な作業は、セレクタ回路Sを制御するラッチLを
システム内のCPUの位置を識別するように設定するだけ
であることが明らかになろう。
システム内のCPUの位置を識別するためのラッチLの設
定は、CPUに結合された通常のキーボード、CPU上のスイ
ッチ、或いはCPUがシステムに挿入されているときにコ
ネクタを通じてCPUに結合される適当な電気信号によっ
て行うことができる。
システム1の動作の説明を続けると、全てのCPUの優先
順位回路11は、システム1の2つ以上のCPUからREQUEST
を同時に受け取った際に、1つのCPUに対して優先順位
を裁定する決定を行う。システム内の優先順位回路は全
て同一であるため、全ての優先順位回路が同一の決定を
行う。全ての優先順位回路が同一の決定を行うため、特
定のCPUに対して優先順位を裁定する制御信号を他のCPU
に送信する必要はない。然し、この制御信号は、ライン
24を通じてシステムの全てのCPUが同時に利用できるも
のである。
CPUが優先順位を裁定した後で、要求を発していて優先
順位を裁定したCPUによって実行されている命令或いは
命令のグループが他のCPUの直列化を要求する場合に
は、優先順位を裁定したCPUが、制御信号を発生して送
信し、即ち、「あなた自身を直列化する」命令(ORDE
R)をライン27−30の1つを通じてシステム内の他のCPU
全部に送信し、その後に、そのREQUESTを落とす。このR
EQUESTは、命令発生器13によって発せられた「要求を落
とす」制御信号によって落とされる。この信号は、ライ
ン48を通じて要求レジスタ12に送られる。ORDERが他のC
PUに送られるのと同時に、要求レジスタは「ローカル直
列化を要求する」制御信号をライン46を通じて回路15に
送り、要求を発しているCPU自身を直列化させる。命令
を発しているCPUは、ORDERをシステム内の他の全てのCP
Uに発した後に、ライン35−38を通じてシステムの他の
全てのCPUから「直列化完了」(ACK)信号を受け取り
(これは、ライン53上の信号によって指示される)且つ
回路15からライン52を経て「ローカル直列化完了」信号
を受け取るまで待機する。
回路14と回路15の両方が命令プロセッサ6からの入力を
受け取る。回路14は、必要な直列化動作を実行している
間にプロセッサへ入力を供給する。当然、回路14は、他
のCPUからORDERを受け取るときに使用され、回路15はOR
DERを発するCPUによって使用される。更に、ライン49を
通じた「入力選択」制御信号により、回路17は、他のCP
Uを直列化することが要求されているのか仲裁のみが要
求されているのかに基づいて、ライン24、52及び53上の
入力からを選択を行う。
「ARB/SER完了」回路17がライン52、53及び24を通じて
信号を受け取ったときには、この回路17は、ライン54を
通じて命令プロセッサ54に信号を送る。プロセッサ6
は、その後、命令の実行を完了させるか或いはREQUEST
を発生させる他の動作を完了させそして「命令を落と
す」制御信号をライン50を通じて命令発生器13に送るこ
とによってORDERを落とす。
優先順位が裁定されていてORDERを発したCPUがそのREQU
ESTを落とすと、REQUESTが保留中であるか或いは新たに
発せられた上に最も高い優先順位をもつシステム内の第
2のCPUが前述した方法で優先順位を裁定される。然し
乍ら、第2のCPUは、第1のCPUがそのORDERを落とすま
で他のCPUにORDERを発しない。第2のCPUのREQUESTの処
理及びこれに対する優先順位の裁定は、保留中のORDER
が落とされるまで第2のCPUがORDERを発することを許さ
れていなくても、動作をオーバーラップさせると共に、
特に多数の同時のREQUESTが発せられるときの処理時間
を大幅に短縮する。
この点については、CPUによってREQUESTを発すること
は、要求を発しているCPUが他のCPUの直列化を常に要求
するものではないことに注意されたい。例えば、要求を
発しているCPUは、別のCPUがREQUESTを発し、優先順位
が許可されそしてORDERを発した場合に起こり得るよう
な中断なしに、命令グループの実行を完了することを必
要とすることもある。このような場合は、命令プロセッ
サ6は、ランイ45を通じてレジスタ12に特別のREQUEST
を送る。このレジスタ12は、次いで、その優先順位回路
11と他のCPUの優先順位回路11とにREQUESTを送ると共
に、「仲裁のみ」制御信号をその命令発生器13に送っ
て、CPUが優先順位を裁定されたときにORDERの発生を防
ぐ。その後、要求を発しているCPUが優先順位を裁定さ
れた場合には、命令プロセッサ6は、当該命令グループ
が実行されるまで命令発生器12にREQUESTを保持させ
る。要求を発しているCPUは、そのREQUESTを保持するこ
とにより、他のCPUが優先順位を獲得することを効果的
に防ぐ。
以上、本発明の2つの実施例について述べてきたが、上
記の実施例は、本発明の精神及び範囲を逸脱せずに多数
の変更が加え得るということが理解されよう。例えば、
ここでは、4つのCPUを含むマルチプロセッサシステム
について述べたが、CPUの数が4つよりも多い或いは少
ない他のシステムを本発明によって実施することもでき
る。従って、以上に述べた実施例は本発明を説明するた
めのみのものであり、本発明の範囲は、特許請求の範囲
によって定められるものであるということを理解された
い。
【図面の簡単な説明】
第1図は、本発明による4つの中央処理装置を含むマル
チプロセッサシステムのブロック図、 第2図は、第1図の中央処理装置の1つの更に詳しいブ
ロック図、 第3図は、第1図の中央処理装置の固定遅延回路網と優
先順位回路の1つの実施例を示すブロック図、そして 第4図ないし第7図は、第1図の中央処理装置のプログ
ラム可能な遅延回路網と優先順位回路の1つの実施例を
示すブロック図である。 1……マルチプロセッサシステム 6……命令プロセッサ 10A、10B、10C、10D……遅延回路網 11……優先順位回路 12……要求レジスタ回路 13……命令発生器、14……直列化回路 15……ローカル直列化回路 16……ACK受信器 17……仲裁/直列化完了回路 20−23、45−54……制御信号ライン 27、28、29、30……ORDER制御信号ライン 35、36、37、38……確認信号ライン
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭56−67432(JP,A)

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】複数の中央処理装置(CPU)を具備するマ
    ルチプロセッサシステムにおいて、上記CPUの各々は、 所定の命令に応答して「他のCPUを直列化する要求」(R
    EQUEST)を発生する手段と、 この要求発生手段により発生されたREQUESTを上記シス
    テムの全てのCPUに送信する手段と、 上記システムのCPUからの複数のREQUESTを同時に受信す
    るのに応答して上記CPUの1つの優先順位を裁定する手
    段と、 この優先順位裁定手段に組み合わされ、上記送信手段と
    優先順位裁定手段との間に接続されていて、上記システ
    ムのCPUによって同時に発生された全てのREQUESTが上記
    優先順位裁定手段に同時に受け取られるように確保する
    手段とを備えたことを特徴とするマルチプロセッサシス
    テム。
  2. 【請求項2】上記CPUの各々は、 上記優先順位裁定手段からの優先順位の裁定に応答して
    「あなた自身を直列化する命令」(ORDER)を発生する
    手段と、 ORDERを発生するCPUによって発生されたREQUESTに応答
    してローカル直列化動作を実行する手段と、 上記ORDER発生手段からの上記ORDERを上記システム内の
    他のCPUに送信する手段と、 上記ORDERの発生に応答し、上記システム内の別のCPUが
    そこに配置された優先順位裁定手段により優先順位を裁
    定できるように上記REQUESTを落すための手段と、 上記CPUが上記ORDERに応答して直列化動作を完了した時
    に上記システム内の全てのCPUから受け取る直列化完了
    信号(ACK)と、上記ORDERを発生した上記CPUが上記ロ
    ーカル直列化動作を完了した時に発生されるローカル直
    列化完了信号とに応答して、上記REQUESTを生じた命令
    を完了し、その後、他のCPUがORDERを発生するための優
    先順位を裁定できるように上記ORDERを落すための手段
    とを備えた特許請求の範囲第1項に記載のシステム。
  3. 【請求項3】同時に発生された複数のREQUESTが上記優
    先順位回路により同時に受け取られるように確保する上
    記手段は、遅延回路網を備えている特許請求の範囲第1
    項に記載のシステム。
  4. 【請求項4】上記優先順位回路は、上記システム内の各
    CPUからのREQUESTを受け取るための複数の入力を備え、
    上記遅延回路網は、上記複数の入力の各々と直列に、送
    信側CPUから上記入力にREQUESTを送信するに要する時間
    に反比例する大きさの所定の遅延を与える遅延回路手段
    を備えている特許請求の範囲第3項に記載のシステム。
  5. 【請求項5】上記遅延回路手段は、複数の遅延回路と、
    上記入力の各々と直列に所定数の上記遅延回路を接続す
    るセレクタ手段とを備えており、上記所定数は、送信側
    CPUから上記入力にREQUESTを送信するに要する時間に反
    比例する特許請求の範囲第4項に記載のシステム。
  6. 【請求項6】上記REQUEST発生手段は、 割込み及びシステム内の他のCPUの直列化を行うことな
    く所定の動作を実行することを要求する命令に応答し
    て、上記CPUに対し優先順位が許可されると、上記REQUE
    STを保持し、上記所定の動作の実行が完了するまでシス
    テム内の他のCPUに優先順位が許可されないようにする
    手段を備えている特許請求の範囲第1項に記載のシステ
    ム。
  7. 【請求項7】マルチプロセッサシステムの複数の中央処
    理装置(CPU)間の仲裁を行なうと共にこれらを直列化
    する方法であって、上記複数のCPUの各々が、複数の入
    力を有する優先順位回路と、「他のCPUを直列化する要
    求」制御信号(REQUEST)を発生する手段とを具備する
    ように構成されており、上記方法は、 上記複数のCPUによって同時に発生された全てのREQUEST
    が全ての上記複数のCPU内の上記優先順位回路によって
    同時に受け取られて、上記複数のCPUの所定の1つに対
    して優先順位を裁定するように、上記複数のCPUから各
    々のCPU内の上記優先順位回路へREQUESTを送信するとい
    う段階を具備することを特徴とする方法。
  8. 【請求項8】優先順位が裁定された上記CPUに配置され
    たORDER発生手段において「あなた自身を直列化する」
    制御信号(ORDER)を発生し、 上記ORDERを発生するCPUにおいてローカル直列化動作を
    実行し、 上記ORDER発生手段から上記複数のCPUの他部分へ上記OR
    DERを送信し、 上記ORDERを受け取る上記CPUの各々において上記ORDER
    に応答して直列化動作を実行し、 上記直列化動作を実行する上記CPUの各々に配置されたA
    CK発生手段において上記直列化動作の上記実行が完了し
    た時に「直列化完了」制御信号(ACK)を発生し、 上記ACK発生手段の各々から、上記ORDERを発生した上記
    CPUへ上記ACKを送信し、 上記ORDERを発生した上記CPUの上記ORDERに応答して上
    記REQUESTを落とし、REQUESTを発生した上記複数のCPU
    の別のものがそれに配置された優先順位回路によって優
    先順位を裁定できるようにし、そして 上記REQUESTを生じた命令を完了し、その後、上記他のC
    PUからの上記ACKの受信に応答し且つ上記ORDERを発生し
    た上記CPUにおいて上記ローカル直列化動作が完了した
    際に上記ORDERを落として、優先順位が裁定された別のC
    PUがORDERを発生できるようにするという段階を備えた
    特許請求の範囲第7項に記載の方法。
  9. 【請求項9】上記送信段階は、上記優先順位回路の複数
    の入力の各々と直列に、送信側CPUから上記入力にREQUE
    STを送信するに要する時間に反比例する大きさの所定の
    遅延を与える段階を備えている特許請求の範囲第7項に
    記載の方法。
  10. 【請求項10】上記遅延を与える段階は、複数の遅延回
    路を設ける段階と、上記優先順位回路の上記入力の各々
    と直列に所定数の上記遅延回路を選択的に接続する段階
    とを備え、上記所定数は、送信側CPUから上記入力へREQ
    UESTを送信するに要する時間に反比例する特許請求の範
    囲第9項に記載の方法。
  11. 【請求項11】割込み及びシステム内の他のCPUの直列
    化を行なうことなく所定の動作を実行することを要求す
    る命令に応答して、優先順位が許可されたCPUにおけるR
    EQUESTを保持し、上記所定の動作の実行が完了するまで
    システム内の他のCPUに優先順位が許可されないように
    する段階を備えている特許請求の範囲第7項に記載の方
    法。
JP62220102A 1986-09-02 1987-09-02 マルチプロセッサシステムにおいて仲裁及び直列化を行う方法及び装置 Expired - Lifetime JPH0786859B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US90249786A 1986-09-02 1986-09-02
US902497 1986-09-02

Publications (2)

Publication Number Publication Date
JPS63132371A JPS63132371A (ja) 1988-06-04
JPH0786859B2 true JPH0786859B2 (ja) 1995-09-20

Family

ID=25415943

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62220102A Expired - Lifetime JPH0786859B2 (ja) 1986-09-02 1987-09-02 マルチプロセッサシステムにおいて仲裁及び直列化を行う方法及び装置

Country Status (5)

Country Link
EP (1) EP0259135B1 (ja)
JP (1) JPH0786859B2 (ja)
AU (1) AU586120B2 (ja)
CA (1) CA1286416C (ja)
DE (1) DE3750739T2 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5667432A (en) * 1979-11-02 1981-06-06 Nec Corp Microcomputer composite system
FR2474198B1 (fr) * 1980-01-21 1986-05-16 Bull Sa Dispositif pour decentraliser la gestion du bus de transfert de donnees commun a plusieurs unites d'un systeme de traitement de l'information
JPS5945527A (ja) * 1982-09-07 1984-03-14 Hitachi Ltd バス制御方法
US4870704A (en) * 1984-10-31 1989-09-26 Flexible Computer Corporation Multicomputer digital processing system
US4612542A (en) * 1984-12-20 1986-09-16 Honeywell Inc. Apparatus for arbitrating between a plurality of requestor elements

Also Published As

Publication number Publication date
JPS63132371A (ja) 1988-06-04
EP0259135A3 (en) 1990-03-07
EP0259135A2 (en) 1988-03-09
AU586120B2 (en) 1989-06-29
CA1286416C (en) 1991-07-16
DE3750739T2 (de) 1995-04-27
EP0259135B1 (en) 1994-11-09
DE3750739D1 (de) 1994-12-15
AU7771287A (en) 1988-03-10

Similar Documents

Publication Publication Date Title
US4488217A (en) Data processing system with lock-unlock instruction facility
US5379434A (en) Apparatus and method for managing interrupts in a multiprocessor system
US4381542A (en) System for interrupt arbitration
US4920485A (en) Method and apparatus for arbitration and serialization in a multiprocessor system
EP0063334B1 (en) Data processing apparatus for a multiprocessor system
EP0166341B1 (en) Multiprocessor system with fast path means for storage accesses
US6557069B1 (en) Processor-memory bus architecture for supporting multiple processors
US5345566A (en) Method and apparatus for controlling dual bus system
EP0358716B1 (en) Node for servicing interrupt request messages on a pended bus
KR930002791B1 (ko) 펜디드 버스에서의 인터럽트 서비스노드
US5228127A (en) Clustered multiprocessor system with global controller connected to each cluster memory control unit for directing order from processor to different cluster processors
EP0358725B1 (en) Apparatus and method for servicing interrupts utilizing a pended bus
US4321665A (en) Data processing system having centralized data alignment for I/O controllers
US4363096A (en) Arbitration controller providing for access of a common resource by a duplex plurality of central processing units
AU611964B2 (en) Inter and intra priority resolution network for an asynchronous bus system
JPS6048791B2 (ja) アクセス制御装置
CA1143854A (en) Apparatus for interconnecting the units of a data processing system
US5038274A (en) Interrupt servicing and command acknowledgement system using distributed arbitration apparatus and shared bus
JPH08263312A (ja) バス仲裁方法及びその装置
US4740910A (en) Multiprocessor system
JPH0786859B2 (ja) マルチプロセッサシステムにおいて仲裁及び直列化を行う方法及び装置
EP0251234B1 (en) Multiprocessor interrupt level change synchronization apparatus
EP0283580B1 (en) Computer system with direct memory access channel arbitration
KR920000480B1 (ko) 인터럽트 버스의 중재 방법
GB2044967A (en) Data processing system