JPH05197671A - マスター・スレーブ通信方法 - Google Patents
マスター・スレーブ通信方法Info
- Publication number
- JPH05197671A JPH05197671A JP4162239A JP16223992A JPH05197671A JP H05197671 A JPH05197671 A JP H05197671A JP 4162239 A JP4162239 A JP 4162239A JP 16223992 A JP16223992 A JP 16223992A JP H05197671 A JPH05197671 A JP H05197671A
- Authority
- JP
- Japan
- Prior art keywords
- master
- slave
- bus
- arbitration
- control
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/368—Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Bus Control (AREA)
- Multi Processors (AREA)
- Information Transfer Systems (AREA)
Abstract
(57)【要約】
【目的】マルチ・プロセッサ・システムにおいて, 応答
の遅いスレーブからの応答を待つことによるバス帯域幅
の浪費をなくする。 【構成】マスターはバス制御権を獲得してスレーブにサ
ービスを要求する。スレーブは,即応できない時,マス
ターの調停コードを記憶するとともにマスターにその旨
連絡する。マスターはバスの制御権を放棄する。スレー
ブは前記サービスが可能になると,要求元マスターの調
停コードをバスに乗せる。マスターはそれを検出し,バ
スの制御権を獲得した後スレーブのサービスをうける。
マスターはスレーブの応答準備期間バスを放棄するの
で,バスはその期間有効に使用される。図2はマスター
の状態遷移を示す。
の遅いスレーブからの応答を待つことによるバス帯域幅
の浪費をなくする。 【構成】マスターはバス制御権を獲得してスレーブにサ
ービスを要求する。スレーブは,即応できない時,マス
ターの調停コードを記憶するとともにマスターにその旨
連絡する。マスターはバスの制御権を放棄する。スレー
ブは前記サービスが可能になると,要求元マスターの調
停コードをバスに乗せる。マスターはそれを検出し,バ
スの制御権を獲得した後スレーブのサービスをうける。
マスターはスレーブの応答準備期間バスを放棄するの
で,バスはその期間有効に使用される。図2はマスター
の状態遷移を示す。
Description
【0001】
【発明の技術分野】本発明は、広義には、マルチプロセ
ッサ・コンピュータシステムに関するものである。より
詳しくは、本発明は、マルチプロセッサ・コンピュータ
システムにおける応答が緩慢なスレーブに起因するバス
帯幅の無駄遣いを縮減するための方法に関するものであ
る。
ッサ・コンピュータシステムに関するものである。より
詳しくは、本発明は、マルチプロセッサ・コンピュータ
システムにおける応答が緩慢なスレーブに起因するバス
帯幅の無駄遣いを縮減するための方法に関するものであ
る。
【0002】
【従来技術とその問題点】マルチプロセッサのリソース
(資源)共用型コンピュータシステムは、一般に高速ス
ループットが必要とされる場合に用いられる。典型的に
言うと、このようなシステムは、マスターとして機能し
かつ共通バスを共用する複数のプロセッサで特徴ずけら
れる。スレーブとして機能する複数の入出力装置も、マ
スターとスレーブが周知のやり方で相互に通信し得るよ
うに、共通バスを共用する。図1はこのようなシステム
の一例を簡略化して示し、図中M0、M1、...で示
すブロックはマスターを表し、S1、S2、...で示
すブロックはスレーブを表す。所与の各時点においては
1つのマスターと1つのスレーブだけが相互に通信をお
こなうので、このようなシステムにおいては、一般にマ
スターがバス制御を求めて互いに競合する何らかの技法
が用いられる。アービトレーション(調停)法は、通
常、何れかの所与のデータサイクルの間どちらのマスタ
ーがバスを制御するべきであるかを決定するのに用いら
れる。典型的には、何らかの種類のアービトレーション
法を用いたアービトレーション回路が、次にどのマスタ
ーがバスを制御すべであるかを決定する。2、3の例を
挙げるならば、例えば、競合している各マスターに割り
当てられた優先順位や各マスターのその前のバス使用レ
ベルに基づいて、あるいはラウンドロビン法に基づいて
バス制御権を与える等、様々なアービトレーション法が
知られている。
(資源)共用型コンピュータシステムは、一般に高速ス
ループットが必要とされる場合に用いられる。典型的に
言うと、このようなシステムは、マスターとして機能し
かつ共通バスを共用する複数のプロセッサで特徴ずけら
れる。スレーブとして機能する複数の入出力装置も、マ
スターとスレーブが周知のやり方で相互に通信し得るよ
うに、共通バスを共用する。図1はこのようなシステム
の一例を簡略化して示し、図中M0、M1、...で示
すブロックはマスターを表し、S1、S2、...で示
すブロックはスレーブを表す。所与の各時点においては
1つのマスターと1つのスレーブだけが相互に通信をお
こなうので、このようなシステムにおいては、一般にマ
スターがバス制御を求めて互いに競合する何らかの技法
が用いられる。アービトレーション(調停)法は、通
常、何れかの所与のデータサイクルの間どちらのマスタ
ーがバスを制御するべきであるかを決定するのに用いら
れる。典型的には、何らかの種類のアービトレーション
法を用いたアービトレーション回路が、次にどのマスタ
ーがバスを制御すべであるかを決定する。2、3の例を
挙げるならば、例えば、競合している各マスターに割り
当てられた優先順位や各マスターのその前のバス使用レ
ベルに基づいて、あるいはラウンドロビン法に基づいて
バス制御権を与える等、様々なアービトレーション法が
知られている。
【0003】実際に使用する個々のアービトレーション
法にかかわらず、マスターによってあるタスクを遂行す
るために選択されたスレーブがビジーであかまたは応答
が遅い場合には問題が生ずる。典型的に、スレーブは、
この状況をバスのコントロール権を持つマスターに通知
する。当技術分野においては、このような状況は、一般
に「ビジー」または「待機中」と称する。マスターがサ
ービスをスレーブに要求し、スレーブと通信してデータ
を検索するプロセスは「トランザクション」として知ら
れているため、スレーブが「トランザクションビジー」
あるいは「トランザクション待機中」であるという言い
方がなされる。
法にかかわらず、マスターによってあるタスクを遂行す
るために選択されたスレーブがビジーであかまたは応答
が遅い場合には問題が生ずる。典型的に、スレーブは、
この状況をバスのコントロール権を持つマスターに通知
する。当技術分野においては、このような状況は、一般
に「ビジー」または「待機中」と称する。マスターがサ
ービスをスレーブに要求し、スレーブと通信してデータ
を検索するプロセスは「トランザクション」として知ら
れているため、スレーブが「トランザクションビジー」
あるいは「トランザクション待機中」であるという言い
方がなされる。
【0004】スレーブがトランザクションビジーになる
には少なくともの2つの理由があるまず、スレーブが必
要なトランザクションを実行するのが遅い場合、ビジー
になる。ここで、「遅い」というのは相対的な言い方で
ある。一部のシステムにおいて「遅い」が数マイクロ秒
を意味することがあれば、他のシステムでは数100ナ
ノ秒を指すこともある。第2には、スレーブが何か他の
ことを実行中しているためビジーであるであるか、また
は入って来るトランザクションに割り振るための余分の
リソースが全くなく、そのためにマスターにすぐに応答
することができな場合がある。
には少なくともの2つの理由があるまず、スレーブが必
要なトランザクションを実行するのが遅い場合、ビジー
になる。ここで、「遅い」というのは相対的な言い方で
ある。一部のシステムにおいて「遅い」が数マイクロ秒
を意味することがあれば、他のシステムでは数100ナ
ノ秒を指すこともある。第2には、スレーブが何か他の
ことを実行中しているためビジーであるであるか、また
は入って来るトランザクションに割り振るための余分の
リソースが全くなく、そのためにマスターにすぐに応答
することができな場合がある。
【0005】従来技術においてビジーまたは応答が緩慢
なスレーブあるいはビジーかつ応答が遅いスレーブを扱
う方法の1つは、バス制御権を持つマスター(「競合勝
利マスター」)が、スレーブがその競合勝利マスターに
より要求されたサービスを実行し、その結果得られたデ
ータを供給するまでバス制御権を保持するというもので
ある。
なスレーブあるいはビジーかつ応答が遅いスレーブを扱
う方法の1つは、バス制御権を持つマスター(「競合勝
利マスター」)が、スレーブがその競合勝利マスターに
より要求されたサービスを実行し、その結果得られたデ
ータを供給するまでバス制御権を保持するというもので
ある。
【0006】周知のもう一つの方法においては、スレー
ブがビジーのとき、フラグを立て、競合勝利マスター
は、そのスレーブが利用可能になるまで、バスの制御権
を保持すると共に、そのスレーブをポーリングする。そ
の後、競合勝利マスターは、そのスレーブが要求された
サービスを終了するまで、バス制御権を保持する。
ブがビジーのとき、フラグを立て、競合勝利マスター
は、そのスレーブが利用可能になるまで、バスの制御権
を保持すると共に、そのスレーブをポーリングする。そ
の後、競合勝利マスターは、そのスレーブが要求された
サービスを終了するまで、バス制御権を保持する。
【0007】競合勝利マスターが、スレーブが利用可能
になるかあるいはタスクを終了するまで待機する時間
は、バスの利用及びシステムリソースの共用という点に
関する限り、無駄な時間を表すものであるということは
明らかであろう。従って、競合勝利マスターのスレーブ
を待機する動作がなければ、他のマスターがバスを有効
に利用することができるであろうから、これらの従来の
方法では、バス帯幅が無駄遣いされている。
になるかあるいはタスクを終了するまで待機する時間
は、バスの利用及びシステムリソースの共用という点に
関する限り、無駄な時間を表すものであるということは
明らかであろう。従って、競合勝利マスターのスレーブ
を待機する動作がなければ、他のマスターがバスを有効
に利用することができるであろうから、これらの従来の
方法では、バス帯幅が無駄遣いされている。
【0008】もう一つの周知方法においては、マスター
は、ビジー応答を受けたならば、バスを解放する。その
後、マスターはバス制御を求めて再びアービトレーショ
ンに参加し、アクセスしようとしているスレーブがなお
ビジーであれば、マスターは再度バスを解放し、さらに
その後バス制御を求めて再度アービトレーションし、そ
のスレーブへのアクセスを試みるようになっている。こ
の方法には、動作の前進を確保する、すなわち、最終的
には全ての要求が必ず処理されるようにしなければなら
ないという問題があり、これが確保されないとデッドロ
ックまたはスターベーション(飢餓状態)あるいはその
両者がは発生することがある。さらに、この方法には、
スレーブが応答できるようになるまでの間に出される
「無駄遣いされた」トランザクションの数について実質
的に上限がないという問題もある。
は、ビジー応答を受けたならば、バスを解放する。その
後、マスターはバス制御を求めて再びアービトレーショ
ンに参加し、アクセスしようとしているスレーブがなお
ビジーであれば、マスターは再度バスを解放し、さらに
その後バス制御を求めて再度アービトレーションし、そ
のスレーブへのアクセスを試みるようになっている。こ
の方法には、動作の前進を確保する、すなわち、最終的
には全ての要求が必ず処理されるようにしなければなら
ないという問題があり、これが確保されないとデッドロ
ックまたはスターベーション(飢餓状態)あるいはその
両者がは発生することがある。さらに、この方法には、
スレーブが応答できるようになるまでの間に出される
「無駄遣いされた」トランザクションの数について実質
的に上限がないという問題もある。
【0009】さらにもう一つの周知の方法においては、
競合勝利マスターは、スレーブに対してサービスを要求
した後、バスを解放し、そしてスレーブが使用可能であ
るか、あるいはスレーブがタスクを終了したことをその
マスターに知らせるのに割込みを用いることが行われ
る。
競合勝利マスターは、スレーブに対してサービスを要求
した後、バスを解放し、そしてスレーブが使用可能であ
るか、あるいはスレーブがタスクを終了したことをその
マスターに知らせるのに割込みを用いることが行われ
る。
【0010】この方法によれば、上記の最初の2つの方
法の欠点は解消されるが、第3の方法と同じ欠点が依然
として残る。さらに、この方法では、プロセススワップ
を用いたり、バス上に何本か割込み線を設けることが必
要な場合がある。また、どのスレーブがマスターに割込
みみかけたかを判断するのにマスターがポーリングを用
いることが必要な場合もある。このように、この方法
は、割込みを処理するために割当てなければならないリ
ソースの点においてコスト高であるばかりでなく、プロ
セススワップを実行するかまたはどのスレーブが割込み
をかけたかを判断するために、あるいはプロセススワッ
プを実行すると共にどのスレーブが割込みかけたかを判
断するのに時間を要するという問題がある。さらに、こ
の方法は、アービトレーションに基づく技法と割込みに
基づく技法を組み合わせることが必要なため、システム
のオーバーヘッドが増大することがある。
法の欠点は解消されるが、第3の方法と同じ欠点が依然
として残る。さらに、この方法では、プロセススワップ
を用いたり、バス上に何本か割込み線を設けることが必
要な場合がある。また、どのスレーブがマスターに割込
みみかけたかを判断するのにマスターがポーリングを用
いることが必要な場合もある。このように、この方法
は、割込みを処理するために割当てなければならないリ
ソースの点においてコスト高であるばかりでなく、プロ
セススワップを実行するかまたはどのスレーブが割込み
をかけたかを判断するために、あるいはプロセススワッ
プを実行すると共にどのスレーブが割込みかけたかを判
断するのに時間を要するという問題がある。さらに、こ
の方法は、アービトレーションに基づく技法と割込みに
基づく技法を組み合わせることが必要なため、システム
のオーバーヘッドが増大することがある。
【0011】さらにもう一つの周知方法として、マスタ
ーがサービス要求を出し、スレーブは、その後不定の時
点において「リターン」トランザクションを出すことに
よりその要求されたサービスに応じるようにした「スプ
リットトランザクション」法がある。この方法は、やは
り「ビジー」の問題が解消されない上、スレーブがトラ
ンザクションを「マスターする」ことができる能力を必
要とする。
ーがサービス要求を出し、スレーブは、その後不定の時
点において「リターン」トランザクションを出すことに
よりその要求されたサービスに応じるようにした「スプ
リットトランザクション」法がある。この方法は、やは
り「ビジー」の問題が解消されない上、スレーブがトラ
ンザクションを「マスターする」ことができる能力を必
要とする。
【0012】
【発明の目的】従って、当技術分野においては、応答が
緩慢なスレーブのために無駄に費消される帯幅の量を縮
減すると共に、上記の問題点を解消するための簡単かつ
比較的安価に実施可能な方法が要望されている。本発明
は、これらの要望を達成するためになされたものであ
る。
緩慢なスレーブのために無駄に費消される帯幅の量を縮
減すると共に、上記の問題点を解消するための簡単かつ
比較的安価に実施可能な方法が要望されている。本発明
は、これらの要望を達成するためになされたものであ
る。
【0013】
【発明の概要】本発明は、特に、共用バス上の複数のス
レーブデバイス(スレーブ)と通信する複数のマスター
デバイス(マスター)を有するコンピュータシステムに
おいて使用するのに特に好適である。このようなシステ
ムにおいては、一般に、スレーブによって実行すべき処
理を有するいくつかのマスターがバス制御を求めて互い
に調停をし、競合勝利マスターに選択された1つのスレ
ーブとの通信を許可する。どのようなアービトレーショ
ン法でも使用可能である。
レーブデバイス(スレーブ)と通信する複数のマスター
デバイス(マスター)を有するコンピュータシステムに
おいて使用するのに特に好適である。このようなシステ
ムにおいては、一般に、スレーブによって実行すべき処
理を有するいくつかのマスターがバス制御を求めて互い
に調停をし、競合勝利マスターに選択された1つのスレ
ーブとの通信を許可する。どのようなアービトレーショ
ン法でも使用可能である。
【0014】本発明によれば、選択されたスレーブが競
合勝利マスターによって出された要求を処理するために
使用することができないか、またはその要求されたサー
ビスを計算された時間あるいは所定時間内に完了するこ
とができないとき、その選択されたスレーブは、競合勝
利マスターにバスの制御権を放棄すべきであるというこ
とを指示する。これに応答して、競合勝利マスターは、
バスの制御権を放棄する。以下、用語の定義のみを目的
として、このようなマスターを「制御放棄マスター」と
呼ぶ。
合勝利マスターによって出された要求を処理するために
使用することができないか、またはその要求されたサー
ビスを計算された時間あるいは所定時間内に完了するこ
とができないとき、その選択されたスレーブは、競合勝
利マスターにバスの制御権を放棄すべきであるというこ
とを指示する。これに応答して、競合勝利マスターは、
バスの制御権を放棄する。以下、用語の定義のみを目的
として、このようなマスターを「制御放棄マスター」と
呼ぶ。
【0015】制御放棄マスターは、それ以後、下記の場
合を除いてバス制御について競合するアービトレーショ
ンを抑止される。選択されたスレーブは、前に制御放棄
マスターによって出された要求を処理するために利用可
能になるか、またはその要求されたサービスを完了する
と、制御放棄マスターに代わりバス制御を求めてアービ
トレーションに参加する。
合を除いてバス制御について競合するアービトレーショ
ンを抑止される。選択されたスレーブは、前に制御放棄
マスターによって出された要求を処理するために利用可
能になるか、またはその要求されたサービスを完了する
と、制御放棄マスターに代わりバス制御を求めてアービ
トレーションに参加する。
【0016】本発明の一実施例によれば、このステップ
は、選択されたスレーブに制御放棄マスターに付随する
一意のアービトレーションコードを記憶し、その制御放
棄マスターのアービトレーションコードをバス上に出す
ことによって行われる。制御放棄マスターは、自己のア
ービトレーションコードがバス上にだされたことを検出
すると、バス制御を求めて他のマスターとアービトレー
ションを開始する。バス制御権を獲得すると、その制御
放棄マスター(現在競合勝利マスターになっている)
は、その選択されたスレーブに対して、それが「ビジ
ー」を返す原因になった前回出した要求を再び出す。
は、選択されたスレーブに制御放棄マスターに付随する
一意のアービトレーションコードを記憶し、その制御放
棄マスターのアービトレーションコードをバス上に出す
ことによって行われる。制御放棄マスターは、自己のア
ービトレーションコードがバス上にだされたことを検出
すると、バス制御を求めて他のマスターとアービトレー
ションを開始する。バス制御権を獲得すると、その制御
放棄マスター(現在競合勝利マスターになっている)
は、その選択されたスレーブに対して、それが「ビジ
ー」を返す原因になった前回出した要求を再び出す。
【0017】上に述べたように、制御放棄マスターは、
バス上における自己のアービトレーションコード(スレ
ーブによってバス上に出される)の存在を検出するま
で、バス制御を求めて他のマスターとのアービトレーシ
ョンに参加することを抑止される。しかしながら、本発
明の一実施例によれば、制御放棄マスターは、スレーブ
がその制御放棄マスターのアービトレーションコードを
所定の時間間内にバス上に出さなかった場合、バス制御
のためのアービトレーションに参加することを許可され
る。
バス上における自己のアービトレーションコード(スレ
ーブによってバス上に出される)の存在を検出するま
で、バス制御を求めて他のマスターとのアービトレーシ
ョンに参加することを抑止される。しかしながら、本発
明の一実施例によれば、制御放棄マスターは、スレーブ
がその制御放棄マスターのアービトレーションコードを
所定の時間間内にバス上に出さなかった場合、バス制御
のためのアービトレーションに参加することを許可され
る。
【0018】本発明の他の実施例によれば、選択された
スレーブが、競合勝利マスターによって出された要求を
処理中のためにビジーであって、バスが他のマスターに
よるアービトレーションのために利用可能であるとき
に、続いて別のマスターがバス制御権を獲得して、その
ビジーである選択されたスレーブに要求を出すと、選択
されたスレーブは、さらに次のステップを実行する:ま
ず、選択されたスレーブは、要求を出す他の各マスター
のアービトレーションコードを記録し;次に、選択され
たスレーブは、記録したアービトレーションコードに従
い、それら他の各競合勝利マスター毎に上記の各ステッ
プを実行する。
スレーブが、競合勝利マスターによって出された要求を
処理中のためにビジーであって、バスが他のマスターに
よるアービトレーションのために利用可能であるとき
に、続いて別のマスターがバス制御権を獲得して、その
ビジーである選択されたスレーブに要求を出すと、選択
されたスレーブは、さらに次のステップを実行する:ま
ず、選択されたスレーブは、要求を出す他の各マスター
のアービトレーションコードを記録し;次に、選択され
たスレーブは、記録したアービトレーションコードに従
い、それら他の各競合勝利マスター毎に上記の各ステッ
プを実行する。
【0019】
【実施例の説明】添付図面において、同じ構成要素は同
じ参照符号で表わされている。図5は、通常のマルチプ
ロセッサ・コンピュータ10を示し、このアーキテクチ
ャのシステムは、共用バス12を介して複数のスレーブ
デバイスS1〜S(N)と通信する複数のマスターデバ
イスM0〜M(N)を有する。バス12は、好ましくは
同期バスが用いられる。これらの各マスターM0〜M
(N)は、バス12の制御を求めて他の全てのマスター
とアービトレーション状態機械(図4参照)を介して競
合する。マスターM0〜M(N)は、スレーブとして機
能することもある。
じ参照符号で表わされている。図5は、通常のマルチプ
ロセッサ・コンピュータ10を示し、このアーキテクチ
ャのシステムは、共用バス12を介して複数のスレーブ
デバイスS1〜S(N)と通信する複数のマスターデバ
イスM0〜M(N)を有する。バス12は、好ましくは
同期バスが用いられる。これらの各マスターM0〜M
(N)は、バス12の制御を求めて他の全てのマスター
とアービトレーション状態機械(図4参照)を介して競
合する。マスターM0〜M(N)は、スレーブとして機
能することもある。
【0020】一般に行われているように、マスターの1
つがバス制御権を獲得すると、そのマスターは、スレー
ブS1〜S(N)の選択された1つに対してサービスを
要求する。例えば、これらのスレーブは、メモリまたは
入出力装置、あるいはその他のデバイスであるが、本発
明は、これらのスレーブが応答が緩慢な入出力装置であ
る場合に特に好適に使用される。通常、これらのマスタ
ーの1つがバス制御権を獲得すると、そのマスターは、
そのバス制御権のために確保した期間に、スレーブの選
択された1つに対してサービスを要求を出すと共に、そ
のスレーブと通信する。
つがバス制御権を獲得すると、そのマスターは、スレー
ブS1〜S(N)の選択された1つに対してサービスを
要求する。例えば、これらのスレーブは、メモリまたは
入出力装置、あるいはその他のデバイスであるが、本発
明は、これらのスレーブが応答が緩慢な入出力装置であ
る場合に特に好適に使用される。通常、これらのマスタ
ーの1つがバス制御権を獲得すると、そのマスターは、
そのバス制御権のために確保した期間に、スレーブの選
択された1つに対してサービスを要求を出すと共に、そ
のスレーブと通信する。
【0021】本発明の一実施例によれば、本発明は、最
低使用頻度(LRU)または分散優先権リスト式アービ
トレーション法との関連において用いられる。この点に
関しては、例えば、本願出願人が出願人である「コンピ
ュータシステムにおいてトランザクションを実行するた
めの直交バスプロトコル(Quadrature Bu
s Protocol for Carrying O
ut Transactions in a Com
puter System)」という名称の米国特許出
願一連番号第694,265号を参照のこと。
低使用頻度(LRU)または分散優先権リスト式アービ
トレーション法との関連において用いられる。この点に
関しては、例えば、本願出願人が出願人である「コンピ
ュータシステムにおいてトランザクションを実行するた
めの直交バスプロトコル(Quadrature Bu
s Protocol for Carrying O
ut Transactions in a Com
puter System)」という名称の米国特許出
願一連番号第694,265号を参照のこと。
【0022】本発明の方法は、図2及至図4の状態遷移
図に詳細に示されている。概して言うと、本発明の方法
は、どの競合勝利マスターも、選択されたスレーブが、
他のマスターからの前のサービス要求を満たすのにビジ
ーであるか、または選択されたスレーブが要求されたサ
ービスを所定時間内に提供することができないとき、図
2及至図4に示す下記のステップに従って機能すること
によって、その選択されたスレーブが使用可能になるの
を待つために,バスを独占することが決して起こらない
ようにしたものである:
図に詳細に示されている。概して言うと、本発明の方法
は、どの競合勝利マスターも、選択されたスレーブが、
他のマスターからの前のサービス要求を満たすのにビジ
ーであるか、または選択されたスレーブが要求されたサ
ービスを所定時間内に提供することができないとき、図
2及至図4に示す下記のステップに従って機能すること
によって、その選択されたスレーブが使用可能になるの
を待つために,バスを独占することが決して起こらない
ようにしたものである:
【0023】(a)選択されたスレーブがビジーである
か、または競合勝利マスターからの要求を第1の期間内
に処理することができないとき、選択されたスレーブを
して競合勝利マスターにバス制御権を放棄すべきである
ということを指示する信号を出させると共に、競合勝利
マスターに付随する一意のアービトレーションコードを
その選択されたスレーブのメモリレジスタ(図示省略)
に記憶させる;
か、または競合勝利マスターからの要求を第1の期間内
に処理することができないとき、選択されたスレーブを
して競合勝利マスターにバス制御権を放棄すべきである
ということを指示する信号を出させると共に、競合勝利
マスターに付随する一意のアービトレーションコードを
その選択されたスレーブのメモリレジスタ(図示省略)
に記憶させる;
【0024】(b)上記ステップ(a)からの信号に応
答して、競合勝利マスターにバス制御権を放棄させ、次
いで、その競合勝利マスターを制御放棄マスターとして
定義し直し、それ以後、その制御放棄マスターがバス制
御権を放棄してから第2の期間が経過するまで、その制
御放棄マスターがバス制御を求めて他のマスターとのア
ービトレーションに参加するのを抑止する;
答して、競合勝利マスターにバス制御権を放棄させ、次
いで、その競合勝利マスターを制御放棄マスターとして
定義し直し、それ以後、その制御放棄マスターがバス制
御権を放棄してから第2の期間が経過するまで、その制
御放棄マスターがバス制御を求めて他のマスターとのア
ービトレーションに参加するのを抑止する;
【0025】(c)選択されたスレーブが、制御放棄マ
スターによって前に要求されたサービスを提供するため
に利用可能になるか、または制御放棄マスターによって
前に要求されたサービスを完了したとき、選択されたス
レーブをして上記制御放棄マスターのアービトレーショ
ンコードをバス上に出させる。このステップにおいて
は、選択されたスレーブは、他の要求を処理するのにビ
ジーであることによりステップ(a)において信号を出
した場合、まずその競合勝利マスターによって出された
要求を処理するためのリソースをリザーブする;
スターによって前に要求されたサービスを提供するため
に利用可能になるか、または制御放棄マスターによって
前に要求されたサービスを完了したとき、選択されたス
レーブをして上記制御放棄マスターのアービトレーショ
ンコードをバス上に出させる。このステップにおいて
は、選択されたスレーブは、他の要求を処理するのにビ
ジーであることによりステップ(a)において信号を出
した場合、まずその競合勝利マスターによって出された
要求を処理するためのリソースをリザーブする;
【0026】(d)制御放棄マスターにバス上に存在す
るそのアービトレーションコードを検出させ、これに応
答して、上記第2の期間が経過していなくても、制御放
棄マスターを他のマスターとのバス制御に関するアービ
トレーションに参加させる。このステップにおいて、制
御放棄マスターは、バス制御権を獲得すると同時に、競
合勝利マスターが制御放棄マスターになる以前に要求し
たのと同じサービスの要求を選択されたスレーブに対し
て再出する。ここで、制御放棄マスターは、その最初の
アービトレーションの試みでバス制御権を獲得こともあ
るということに注意すべきである。この実施例において
は、スレーブがマスターのアービトレーションコードを
バス上に出す動作は、事実上マスターのアービトレーシ
ョンサイクルであり、マスターは、このアービトレーシ
ョンサイクル中に実際に自らアービトレーションコード
を再出する必要なしにバス制御権を獲得し得る。このよ
うにして、マスターは、バス上で自己のアービトレーシ
ョンコードを認識すると、その時のサイクルで実際にア
ービトレーションをしているかのように、そのアービト
レーションサイクルを引き継ぎ、必要ならばバス制御権
を得るまでアービトレーションし続ける。
るそのアービトレーションコードを検出させ、これに応
答して、上記第2の期間が経過していなくても、制御放
棄マスターを他のマスターとのバス制御に関するアービ
トレーションに参加させる。このステップにおいて、制
御放棄マスターは、バス制御権を獲得すると同時に、競
合勝利マスターが制御放棄マスターになる以前に要求し
たのと同じサービスの要求を選択されたスレーブに対し
て再出する。ここで、制御放棄マスターは、その最初の
アービトレーションの試みでバス制御権を獲得こともあ
るということに注意すべきである。この実施例において
は、スレーブがマスターのアービトレーションコードを
バス上に出す動作は、事実上マスターのアービトレーシ
ョンサイクルであり、マスターは、このアービトレーシ
ョンサイクル中に実際に自らアービトレーションコード
を再出する必要なしにバス制御権を獲得し得る。このよ
うにして、マスターは、バス上で自己のアービトレーシ
ョンコードを認識すると、その時のサイクルで実際にア
ービトレーションをしているかのように、そのアービト
レーションサイクルを引き継ぎ、必要ならばバス制御権
を得るまでアービトレーションし続ける。
【0027】(e)選択されたスレーブにステップ
(d)において要求されたサービスを実行させる。
(d)において要求されたサービスを実行させる。
【0028】(f)選択されたスレーブが競合勝利マス
ターによって前に出された要求を処理中のためビジーで
あり、バスが他のマスターによるアービトレーションに
利用可能であって、引き続きべ別のマスターがバス制御
権を獲得し、そのビジーである選択されたスレーブに要
求を出したとき、次のステップ(i)、(ii)を実行
する: (i)要求を出す各マスターのアービトレーションコー
ドをスレーブに記録する(図1参照); (ii)そのビジーである選択されたスレーブに記録さ
れたアービトレーションコードに基づいて他の各競合勝
利マスター毎に上記ステップ(a)及至(e)を実行す
る。
ターによって前に出された要求を処理中のためビジーで
あり、バスが他のマスターによるアービトレーションに
利用可能であって、引き続きべ別のマスターがバス制御
権を獲得し、そのビジーである選択されたスレーブに要
求を出したとき、次のステップ(i)、(ii)を実行
する: (i)要求を出す各マスターのアービトレーションコー
ドをスレーブに記録する(図1参照); (ii)そのビジーである選択されたスレーブに記録さ
れたアービトレーションコードに基づいて他の各競合勝
利マスター毎に上記ステップ(a)及至(e)を実行す
る。
【0029】このように、ステップ(c)と(d)が行
われる間において、選択されたスレーブがビジーである
か、または第1の所定期間内に要求を処理することがで
きない時間中、バスは、他のマスターとスレーブの間の
通信のために利用可能である。競合勝利マスターは、選
択されたスレーブが第1の所定期間内に要求を処理する
ことができないため、バス制御権を放棄し、選択された
スレーブは、その後その制御放棄マスターが再びバス制
御権を獲得する時には、要求されたデータを制御放棄マ
スターへ送信可能な状態になっている。
われる間において、選択されたスレーブがビジーである
か、または第1の所定期間内に要求を処理することがで
きない時間中、バスは、他のマスターとスレーブの間の
通信のために利用可能である。競合勝利マスターは、選
択されたスレーブが第1の所定期間内に要求を処理する
ことができないため、バス制御権を放棄し、選択された
スレーブは、その後その制御放棄マスターが再びバス制
御権を獲得する時には、要求されたデータを制御放棄マ
スターへ送信可能な状態になっている。
【0030】図2は、本発明をM0〜M(N)の各マス
ターによって実施する場合を示す状態遷移図である。バ
ス制御の要求に先立ち、特定のマスターはアイドル状態
20にあり、それが新しいトランザクションを発行する
必要が生じない限りこの状態に保たれる。しかしなが
ら、そのマスターは、新しいトランザクションを出す必
要があるとき、アービトレーション状態22に入り、バ
ス制御を求めて能動的にアービトレーションする。
ターによって実施する場合を示す状態遷移図である。バ
ス制御の要求に先立ち、特定のマスターはアイドル状態
20にあり、それが新しいトランザクションを発行する
必要が生じない限りこの状態に保たれる。しかしなが
ら、そのマスターは、新しいトランザクションを出す必
要があるとき、アービトレーション状態22に入り、バ
ス制御を求めて能動的にアービトレーションする。
【0031】典型的には、アービトレーション状態機械
40(図4)は、どのマスターが次にバス制御権を獲得
するかを決定する。あるマスターがバス制御権を獲得す
ると、そのマスターは、状態24で示すように、バス上
にそのトランザクションを出す。このマスターは、トラ
ンザクションを出し続ける限り、バス制御権を維持す
る。トランザクションが完了すると、マスターが通信し
ているスレーブ(すなわち選択されたスレーブ)は、ビ
ジーであるか、またはトランザクションを完了したとい
うことを指示する信号を出す。
40(図4)は、どのマスターが次にバス制御権を獲得
するかを決定する。あるマスターがバス制御権を獲得す
ると、そのマスターは、状態24で示すように、バス上
にそのトランザクションを出す。このマスターは、トラ
ンザクションを出し続ける限り、バス制御権を維持す
る。トランザクションが完了すると、マスターが通信し
ているスレーブ(すなわち選択されたスレーブ)は、ビ
ジーであるか、またはトランザクションを完了したとい
うことを指示する信号を出す。
【0032】この動作は、図3により詳細に示されてい
る。選択的スレーブが「ビジー」信号を返信すると、バ
ス制御権を獲得したマスター(競合勝利マスター)は、
バス制御権を放棄し、以下に述べるように、その後適宜
の時点までバス制御権に関するアービトレーションを抑
止される。一般には、スレーブは、別のトランザクショ
ンを実行中のためビジーであり、マスターによって出さ
れたトランザクションまたは要求を処理することができ
ないか、あるいは速度が緩慢で要求されたサービスを所
定の期間内に完了することができないとき、「ビジー」
信号を出す。
る。選択的スレーブが「ビジー」信号を返信すると、バ
ス制御権を獲得したマスター(競合勝利マスター)は、
バス制御権を放棄し、以下に述べるように、その後適宜
の時点までバス制御権に関するアービトレーションを抑
止される。一般には、スレーブは、別のトランザクショ
ンを実行中のためビジーであり、マスターによって出さ
れたトランザクションまたは要求を処理することができ
ないか、あるいは速度が緩慢で要求されたサービスを所
定の期間内に完了することができないとき、「ビジー」
信号を出す。
【0033】図2に示すように、スレーブが要求された
サービスを実行するために利用可能であり、その要求さ
れたサービスが所定の期間内に実行された場合は、マス
ターは再びアイドル状態20に入り、前述のプロセスが
繰り返される。
サービスを実行するために利用可能であり、その要求さ
れたサービスが所定の期間内に実行された場合は、マス
ターは再びアイドル状態20に入り、前述のプロセスが
繰り返される。
【0034】アービトレーション技法を用いる一部のマ
ルチプロセッサ・コンピュータシステムにおけるのと同
様に、各マスターにはそれぞれ一意のアービトレーショ
ンコードが割り振られている。本発明によれば、選択さ
れたスレーブがサービス要求に応答して「ビジー」に戻
った結果競合勝利マスターがバス制御権を放棄すると、
その制御放棄マスターは、選択されたスレーブが制御放
棄マスターのアービトレーションコードをバス上に出す
まで、バス制御に関するアービトレーションに再度参加
することを抑止される。
ルチプロセッサ・コンピュータシステムにおけるのと同
様に、各マスターにはそれぞれ一意のアービトレーショ
ンコードが割り振られている。本発明によれば、選択さ
れたスレーブがサービス要求に応答して「ビジー」に戻
った結果競合勝利マスターがバス制御権を放棄すると、
その制御放棄マスターは、選択されたスレーブが制御放
棄マスターのアービトレーションコードをバス上に出す
まで、バス制御に関するアービトレーションに再度参加
することを抑止される。
【0035】この動作は、図3により詳細に説明されて
いる。この間のマスターの動作は図4に示されている。
図4に示すように、マスター(符号46で示す)は、4
2で示すように通常イネーブル(使用可能)状態にあ
り、バス制御を求めてアービトレーションすることがで
きる。しかしながら、マスターがトランザクションを発
行し、スレーブが「ビジー」を返信すると、マスター
は、44で示すように、ディスエーブル(使用不可能)
状態になるか、あるいはバス制御権を放棄し、この状態
はスレーブがこの制御放棄マスターのアービトレーショ
ンコードをバス上に出すまで続く。図示のように、制御
放棄マスターは、バス上に自己のアービトレーションコ
ードが存在することを検出すると、42で示すようにイ
ネーブル化され、再びバス制御に関するアービトレーシ
ョンに参加する。すなわち、図2の22で示す状態に戻
る。
いる。この間のマスターの動作は図4に示されている。
図4に示すように、マスター(符号46で示す)は、4
2で示すように通常イネーブル(使用可能)状態にあ
り、バス制御を求めてアービトレーションすることがで
きる。しかしながら、マスターがトランザクションを発
行し、スレーブが「ビジー」を返信すると、マスター
は、44で示すように、ディスエーブル(使用不可能)
状態になるか、あるいはバス制御権を放棄し、この状態
はスレーブがこの制御放棄マスターのアービトレーショ
ンコードをバス上に出すまで続く。図示のように、制御
放棄マスターは、バス上に自己のアービトレーションコ
ードが存在することを検出すると、42で示すようにイ
ネーブル化され、再びバス制御に関するアービトレーシ
ョンに参加する。すなわち、図2の22で示す状態に戻
る。
【0036】図3は、選択されたスレーブが競合勝利マ
スターからサービス、すなわちトランザクションの要求
を受けたときの関連動作のを示す。図示のように、スレ
ーブは、通常アイドル状態30にあり、競合勝利マスタ
ーからサービス要求を受けるまでこの状態に保たれる。
サービス要求を受けると、スレーブは状態32に移っ
て、サービス要求を受け取ったことを確認する応答を出
す。スレーブがビジーでなく、第1の所定期間内に要求
を処理することができる場合は、で要求されたサービス
を実行したあ後アイドル状態30へ戻る。このような状
態においては、マスターも状態24から状態20へ移行
する。しかしながら、選択されたスレーブがビジーであ
るか、または第1の所定期間内に要求されたサービスを
完了することができない場合は、状態34に入って、競
合勝利マスターのアービトレーションコードを記憶し、
競合勝利マスターへ「ビジー」を返信する。このような
場合、競合勝利マスターは、状態24から前に説明した
図4に示す状態へ移行し、バス制御権を放棄する。選択
されたスレーブが利用可能になるか、また要求されたサ
ービスを完了すると、そのスレーブはマスターのアービ
トレーションコードをバス上に出して、実際上、制御放
棄マスターに状態36で示すようにバス制御に関するア
ービトレーションを開始して、再度選択されたスレーブ
との通信関係を確立すべきであるということを指示す
る。しかしながら、バス制御に関するアービトレーショ
ンに加わるようマスターに指示するこのスレーブの動作
の結果、その同じサイクル中にマスターがバス制御権を
獲得することもある。
スターからサービス、すなわちトランザクションの要求
を受けたときの関連動作のを示す。図示のように、スレ
ーブは、通常アイドル状態30にあり、競合勝利マスタ
ーからサービス要求を受けるまでこの状態に保たれる。
サービス要求を受けると、スレーブは状態32に移っ
て、サービス要求を受け取ったことを確認する応答を出
す。スレーブがビジーでなく、第1の所定期間内に要求
を処理することができる場合は、で要求されたサービス
を実行したあ後アイドル状態30へ戻る。このような状
態においては、マスターも状態24から状態20へ移行
する。しかしながら、選択されたスレーブがビジーであ
るか、または第1の所定期間内に要求されたサービスを
完了することができない場合は、状態34に入って、競
合勝利マスターのアービトレーションコードを記憶し、
競合勝利マスターへ「ビジー」を返信する。このような
場合、競合勝利マスターは、状態24から前に説明した
図4に示す状態へ移行し、バス制御権を放棄する。選択
されたスレーブが利用可能になるか、また要求されたサ
ービスを完了すると、そのスレーブはマスターのアービ
トレーションコードをバス上に出して、実際上、制御放
棄マスターに状態36で示すようにバス制御に関するア
ービトレーションを開始して、再度選択されたスレーブ
との通信関係を確立すべきであるということを指示す
る。しかしながら、バス制御に関するアービトレーショ
ンに加わるようマスターに指示するこのスレーブの動作
の結果、その同じサイクル中にマスターがバス制御権を
獲得することもある。
【0037】競合勝利マスターの応答は、前に述べたよ
うに、図4に示されている。選択されたスレーブは、制
御放棄マスターのアービトレーションコードをバス上に
出したならば、アイドル状態30に移り、そのスレーブ
が前に要求されたトランザクションを完了することがで
きるよう制御放棄マスターが再びバス制御権を獲得し、
再びそのスレーブを選択するまで、この状態に保たれ
る。このように、選択されたスレーブは、実際上、制御
放棄マスターに代わってバス制御に関するアービトレー
ションに参加する。ここで、制御放棄マスターに代わっ
て実際上アービトレーションに参加するスレーブの動作
は1回しか行われず、それ以降は、スレーブがマスター
に代わってアービトレーションに勝った場合を除き、マ
スターは自らアービトレーションしなければならないと
いうことに注意すべきである。
うに、図4に示されている。選択されたスレーブは、制
御放棄マスターのアービトレーションコードをバス上に
出したならば、アイドル状態30に移り、そのスレーブ
が前に要求されたトランザクションを完了することがで
きるよう制御放棄マスターが再びバス制御権を獲得し、
再びそのスレーブを選択するまで、この状態に保たれ
る。このように、選択されたスレーブは、実際上、制御
放棄マスターに代わってバス制御に関するアービトレー
ションに参加する。ここで、制御放棄マスターに代わっ
て実際上アービトレーションに参加するスレーブの動作
は1回しか行われず、それ以降は、スレーブがマスター
に代わってアービトレーションに勝った場合を除き、マ
スターは自らアービトレーションしなければならないと
いうことに注意すべきである。
【0038】前に述べたように、制御放棄マスターは、
その最初のアービトレーションの試みでバス制御権を獲
得する可能性があるということに注意すべきである。ま
た、マスターのアービトレーションコードをバス上に出
すスレーブの動作は、ある場合には、事実上そのマスタ
ーのアービトレーションサイクルであるということ、及
びマスターは、このアービトレーションサイクル中に実
際に自らアービトレーションコードを再出する必要なし
にバス制御権を獲得し得るということに注意すべきであ
る。このようにして、マスターは、バス上で自己のアー
ビトレーションコードを認識すると、その時のサイクル
で実際にアービトレーションをしているかのように、そ
のアービトレーションサイクルを引き継ぎ、必要ならば
バス制御権を得るまでアービトレーションし続ける。
その最初のアービトレーションの試みでバス制御権を獲
得する可能性があるということに注意すべきである。ま
た、マスターのアービトレーションコードをバス上に出
すスレーブの動作は、ある場合には、事実上そのマスタ
ーのアービトレーションサイクルであるということ、及
びマスターは、このアービトレーションサイクル中に実
際に自らアービトレーションコードを再出する必要なし
にバス制御権を獲得し得るということに注意すべきであ
る。このようにして、マスターは、バス上で自己のアー
ビトレーションコードを認識すると、その時のサイクル
で実際にアービトレーションをしているかのように、そ
のアービトレーションサイクルを引き継ぎ、必要ならば
バス制御権を得るまでアービトレーションし続ける。
【0039】上記説明から、アービトレーション状態機
械は、スレーブがビジーである間、バス制御に関して繰
り返しアービトレーションし続けるが、そのアービトレ
ーションコードをバス上に出すことを抑止されるため、
バス制御権を獲得することはできない。アービトレーシ
ョン状態機械は、バス制御権を獲得するまでアービトレ
ーションし続けるのであるから、自己のコードをバス上
に出すことを抑止されていることを知らせなくともよ
い。アービトレーション状態機械は、実際にアービトレ
ーションしていると「考える」ため、スレーブが代わり
にそのアービトレーションの競合に勝利することがで
き、アービトレーションを再開するためのスタートアッ
プ・ペナルティがない。
械は、スレーブがビジーである間、バス制御に関して繰
り返しアービトレーションし続けるが、そのアービトレ
ーションコードをバス上に出すことを抑止されるため、
バス制御権を獲得することはできない。アービトレーシ
ョン状態機械は、バス制御権を獲得するまでアービトレ
ーションし続けるのであるから、自己のコードをバス上
に出すことを抑止されていることを知らせなくともよ
い。アービトレーション状態機械は、実際にアービトレ
ーションしていると「考える」ため、スレーブが代わり
にそのアービトレーションの競合に勝利することがで
き、アービトレーションを再開するためのスタートアッ
プ・ペナルティがない。
【0040】上記説明ににおいては、アービトレーショ
ンのためと、バス上にアービトレーションコードを送出
すことができるようにするためにそれぞれ別個の状態機
械を用いた。しかしながら、これは単に一実施例を表わ
したものであり、本発明はこれに限定されるものではな
い。さらに、これらの状態機械は、必ずしも実際の機械
またはバスの状態との1対1の対応がなくともよい。
ンのためと、バス上にアービトレーションコードを送出
すことができるようにするためにそれぞれ別個の状態機
械を用いた。しかしながら、これは単に一実施例を表わ
したものであり、本発明はこれに限定されるものではな
い。さらに、これらの状態機械は、必ずしも実際の機械
またはバスの状態との1対1の対応がなくともよい。
【0041】本発明の最も好ましい実施例によれば、制
御放棄マスターが、バス制御権を放棄した後第2の所定
期間内にバス上に自己のアービトレーションコードが存
在することを検出しないと、イネーブルとなり、選択さ
れたスレーブの状態にかかわりなく、バス制御に関する
アービトレーションに参加することが可能になる。言い
換えると、そのマスターは、第2の所定期間内に自己の
アービトレーションコードがバス上に現れないと、状態
44から状態42遷移する(図4)。
御放棄マスターが、バス制御権を放棄した後第2の所定
期間内にバス上に自己のアービトレーションコードが存
在することを検出しないと、イネーブルとなり、選択さ
れたスレーブの状態にかかわりなく、バス制御に関する
アービトレーションに参加することが可能になる。言い
換えると、そのマスターは、第2の所定期間内に自己の
アービトレーションコードがバス上に現れないと、状態
44から状態42遷移する(図4)。
【0042】本発明の他の実施例によれば、スレーブが
マスターに対して「ビジー」を指示する信号を送った各
トランザクションについて「前進」を確保する方法が得
られる。ビジースレーブは、競合勝利マスターからの要
求(あるいは制御放棄マスターからの要求であってもよ
い)を処理中に他のマスターからのサービス要求を受理
することが可能である。本発明のこの実施例によれば、
他のマスターからサービス要求がスレーブに入って来る
と、スレーブは、それらのマスターに対して「ビジー」
の処理を行なうが、これと当時にそれら他の各マスター
の識別情報(すなわちアービトレーションコード)を記
録する。これらの識別情報は、記憶レジスタ中の1ビッ
トでもよいし、あるいはその他のコードでもよい。スレ
ーブは、利用可能になると、この記録を用いて次にどの
マスターのサービスを処理するかを決定し、そのマスタ
ーが図2及び4に示すステップを実行してバス制御に関
するアービトレーションに参加し、選択されたスレーブ
と通信することができるよう、そのマスターのアービト
レーションコードをバス上に送出する。
マスターに対して「ビジー」を指示する信号を送った各
トランザクションについて「前進」を確保する方法が得
られる。ビジースレーブは、競合勝利マスターからの要
求(あるいは制御放棄マスターからの要求であってもよ
い)を処理中に他のマスターからのサービス要求を受理
することが可能である。本発明のこの実施例によれば、
他のマスターからサービス要求がスレーブに入って来る
と、スレーブは、それらのマスターに対して「ビジー」
の処理を行なうが、これと当時にそれら他の各マスター
の識別情報(すなわちアービトレーションコード)を記
録する。これらの識別情報は、記憶レジスタ中の1ビッ
トでもよいし、あるいはその他のコードでもよい。スレ
ーブは、利用可能になると、この記録を用いて次にどの
マスターのサービスを処理するかを決定し、そのマスタ
ーが図2及び4に示すステップを実行してバス制御に関
するアービトレーションに参加し、選択されたスレーブ
と通信することができるよう、そのマスターのアービト
レーションコードをバス上に送出する。
【0043】図1に示す本発明の一実施態様において
は、各スレーブは例えば下記のメモリを具備する:ビジ
ー過ぎて新しい要求に応答することができないとき、そ
のスレーブを求めてアービトレーションで競合するマス
ターのコードを記録するために用いられるスナップショ
ットメモリ素子SR(キューバッファまたはレジスタ
等);スレーブがトランザクションを完遂するためにリ
ソースを割当てたマスターのアービトレーションコード
を記憶するビジーメモリ素子BR;マスターコードを1
つずつBRに転送し、空の時、SRからのデータで自ら
更新した後、SRをクリアするワーキングメモリ素子W
R。BRの内容は、トランザクションが完了したときの
みゼロ化、すなわちクリアされる。ここで、BRには内
容を多重に記憶することができるということに注意すべ
きである。
は、各スレーブは例えば下記のメモリを具備する:ビジ
ー過ぎて新しい要求に応答することができないとき、そ
のスレーブを求めてアービトレーションで競合するマス
ターのコードを記録するために用いられるスナップショ
ットメモリ素子SR(キューバッファまたはレジスタ
等);スレーブがトランザクションを完遂するためにリ
ソースを割当てたマスターのアービトレーションコード
を記憶するビジーメモリ素子BR;マスターコードを1
つずつBRに転送し、空の時、SRからのデータで自ら
更新した後、SRをクリアするワーキングメモリ素子W
R。BRの内容は、トランザクションが完了したときの
みゼロ化、すなわちクリアされる。ここで、BRには内
容を多重に記憶することができるということに注意すべ
きである。
【0044】このように、十分なリソースを有するスレ
ーブであれば、他のマスターに対してサービス要求を処
理することができないためにビジーを返信する状態にな
る以前に、一度に複数のマスターのサービス要求を処理
することも可能である。BRの内容は、コードがBRに
記憶されたデバイスが利用可能になったとき、または前
にビジーの処理がなされたトランザクションが完了した
とき、バス上に送出される。スレーブは、1つ以上のB
Rの内容がエが空になると、該当するどのマスターにで
も応答することができる。ここで、スレーブについて唯
一保証しなければならないのは、あるマスターのコード
がBRに入ったならば、スレーブはそのBRの内容また
はこれに関連するリソースをトランザクションが完了す
るまで除去してはならないということである。このよう
に、スレーブは、マスターに代わって再アービトレーシ
ョンするとき、そのマスターによって出されたトランザ
クションを完遂するのに十分なリソースを必ず割当て終
えていなければならない。
ーブであれば、他のマスターに対してサービス要求を処
理することができないためにビジーを返信する状態にな
る以前に、一度に複数のマスターのサービス要求を処理
することも可能である。BRの内容は、コードがBRに
記憶されたデバイスが利用可能になったとき、または前
にビジーの処理がなされたトランザクションが完了した
とき、バス上に送出される。スレーブは、1つ以上のB
Rの内容がエが空になると、該当するどのマスターにで
も応答することができる。ここで、スレーブについて唯
一保証しなければならないのは、あるマスターのコード
がBRに入ったならば、スレーブはそのBRの内容また
はこれに関連するリソースをトランザクションが完了す
るまで除去してはならないということである。このよう
に、スレーブは、マスターに代わって再アービトレーシ
ョンするとき、そのマスターによって出されたトランザ
クションを完遂するのに十分なリソースを必ず割当て終
えていなければならない。
【0045】マスターは、システムにより決定された順
序で1つずつ再始動される(使用可能になる)。この順
序は、アービトレーション要求が受理された順序、任意
の順序、システムが設定したマスターの順序等である。
スレーブは、マスターが第3の所定期間内にトランザク
ションを再出することができないかった場合、そのマス
ターのためにリザーブされたリソースを解除することが
できるる。
序で1つずつ再始動される(使用可能になる)。この順
序は、アービトレーション要求が受理された順序、任意
の順序、システムが設定したマスターの順序等である。
スレーブは、マスターが第3の所定期間内にトランザク
ションを再出することができないかった場合、そのマス
ターのためにリザーブされたリソースを解除することが
できるる。
【0046】
【発明の効果】以上詳述したように、どの競合勝利マス
ターも、ビジースレーブまたは応答が緩慢なスレーブを
待っている間、決してバスを独占することがなく、従来
技術においては競合勝利マスターによって独占されるで
あろうと思われる時間中、他のマスターがバスを利用で
きる。アービトレーションコードは、通常、本発明が適
用されると考えられるシステムにおいて既に用いられて
いるため、割込み体系で用いられているような信号線を
新たに追加する必要はない。従って,バス帯域幅の有効
利用が計られ,システムのスループットが顕著に向上す
る。また,当業者であれば、本発明の実施例を開示した
本願の明細書及び図面に基づき、本発明に対し多くの変
更、修正、変形並びにその他の応用形態を自明に実施す
ることができよう。
ターも、ビジースレーブまたは応答が緩慢なスレーブを
待っている間、決してバスを独占することがなく、従来
技術においては競合勝利マスターによって独占されるで
あろうと思われる時間中、他のマスターがバスを利用で
きる。アービトレーションコードは、通常、本発明が適
用されると考えられるシステムにおいて既に用いられて
いるため、割込み体系で用いられているような信号線を
新たに追加する必要はない。従って,バス帯域幅の有効
利用が計られ,システムのスループットが顕著に向上す
る。また,当業者であれば、本発明の実施例を開示した
本願の明細書及び図面に基づき、本発明に対し多くの変
更、修正、変形並びにその他の応用形態を自明に実施す
ることができよう。
【図1】本発明の1実施例の実施に関わるスレーブのス
ナップショットメモリ素子SR(キューバッファまたは
レジスタ等)とワーキングメモリ素子WRの実装例を説
明するための図である。
ナップショットメモリ素子SR(キューバッファまたは
レジスタ等)とワーキングメモリ素子WRの実装例を説
明するための図である。
【図2】本発明の1実施例における各マスターの動作を
説明するための状態遷移図である。
説明するための状態遷移図である。
【図3】本発明の1実施例における各スレーブの動作を
説明するための状態遷移図である。
説明するための状態遷移図である。
【図4】本発明の1実施例における各マスターの詳細動
作を説明するための状態遷移図である。
作を説明するための状態遷移図である。
【図5】複数のマスターと複数のスレーブとを有するマ
ルチプロセッサー,資源共用型コンピューターシステム
の構造を示す簡易図である。
ルチプロセッサー,資源共用型コンピューターシステム
の構造を示す簡易図である。
Claims (2)
- 【請求項1】複数のスレーブと共通バスを介して通信す
る複数のマスターを有し,前記マスターが競合調停によ
り前記共通バスの制御権を獲得して前記スレーブと通信
できるシステムにおける,後記(イ)乃至(ホ)のステ
ップを含む,マスター・スレーブ通信方法。 (イ)前記共通バスの制御権を獲得した前記マスター
(以下勝利マスターと呼称する)が特定の前記スレーブ
(以下被選択スレーブと呼称する)にサービスを要求す
るステップ。 (ロ)前記被選択スレーブが,第一の所定の期間内で,
前記サービスを提供出来ないとき,前記被選択スレーブ
が前記勝利マスターに第一の信号を送るステップ。 (ハ)前記勝利マスターが,前記第一の信号を受信し
て,前記共通バスの制御権を放棄するステップ。 (ニ)前記被選択スレーブが,前記サービスを提供出来
るようになると,前記被選択スレーブが前記勝利マスタ
ーに前記共通バスの制御権を与えるために,前記競合調
停に参加するステップ。 (ホ)前記勝利マスターが,前記被選択スレーブの前記
競合調停への参加を検出し,前記共通バスの制御権を獲
得して前記サービスを要求するステップ。 - 【請求項2】前記マスターの各々は個別に各々の調停コ
ードを有し,前記(ロ)のステップにおいて,前記被選
択スレーブが,第一の所定の期間内で,前記サービスを
提供出来ないとき,前記被選択スレーブが,前記調停コ
ードを記憶することを含む請求項1記載のマスター・ス
レーブ通信方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US07/705,873 US5257356A (en) | 1991-05-28 | 1991-05-28 | Method of reducing wasted bus bandwidth due to slow responding slaves in a multiprocessor computer system |
| US705873 | 1996-08-28 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH05197671A true JPH05197671A (ja) | 1993-08-06 |
Family
ID=24835307
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP4162239A Pending JPH05197671A (ja) | 1991-05-28 | 1992-05-28 | マスター・スレーブ通信方法 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US5257356A (ja) |
| EP (1) | EP0518527B1 (ja) |
| JP (1) | JPH05197671A (ja) |
| KR (1) | KR920022118A (ja) |
| DE (1) | DE69222469T2 (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6782439B2 (en) | 2000-07-21 | 2004-08-24 | Samsung Electronics Co., Ltd. | Bus system and execution scheduling method for access commands thereof |
| JP4842804B2 (ja) * | 2003-05-08 | 2011-12-21 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | データを通信する処理システム及び方法 |
Families Citing this family (30)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE69319763T2 (de) * | 1992-03-04 | 1999-03-11 | Motorola, Inc., Schaumburg, Ill. | Verfahren und Gerät zur Durchführung eines Busarbitrierungsprotokolls in einem Datenverarbeitungssystem |
| EP0575651A1 (en) * | 1992-06-24 | 1993-12-29 | International Business Machines Corporation | Multiprocessor system |
| GB2273376B (en) * | 1992-12-11 | 1997-03-12 | Sony Corp | Data processing |
| DE4317567A1 (de) * | 1993-05-26 | 1994-12-01 | Siemens Ag | Verfahren zum Betreiben eines Bussystems sowie Anordnung zur Durchführung des Verfahrens |
| US5469435A (en) * | 1994-01-25 | 1995-11-21 | Apple Computer, Inc. | Bus deadlock avoidance during master split-transactions |
| US5590299A (en) * | 1994-10-28 | 1996-12-31 | Ast Research, Inc. | Multiprocessor system bus protocol for optimized accessing of interleaved storage modules |
| US5625779A (en) * | 1994-12-30 | 1997-04-29 | Intel Corporation | Arbitration signaling mechanism to prevent deadlock guarantee access latency, and guarantee acquisition latency for an expansion bridge |
| US5621897A (en) * | 1995-04-13 | 1997-04-15 | International Business Machines Corporation | Method and apparatus for arbitrating for a bus to enable split transaction bus protocols |
| US5592631A (en) * | 1995-05-02 | 1997-01-07 | Apple Computer, Inc. | Bus transaction reordering using side-band information signals |
| USRE38428E1 (en) | 1995-05-02 | 2004-02-10 | Apple Computer, Inc. | Bus transaction reordering in a computer system having unordered slaves |
| US5996036A (en) * | 1997-01-07 | 1999-11-30 | Apple Computers, Inc. | Bus transaction reordering in a computer system having unordered slaves |
| US5812799A (en) * | 1995-06-07 | 1998-09-22 | Microunity Systems Engineering, Inc. | Non-blocking load buffer and a multiple-priority memory system for real-time multiprocessing |
| US5737547A (en) * | 1995-06-07 | 1998-04-07 | Microunity Systems Engineering, Inc. | System for placing entries of an outstanding processor request into a free pool after the request is accepted by a corresponding peripheral device |
| US6072798A (en) * | 1995-11-01 | 2000-06-06 | Whittaker Corporation | Network access communication switch |
| US5943483A (en) * | 1995-12-11 | 1999-08-24 | Lsi Logic Corporation | Method and apparatus for controlling access to a bus in a data processing system |
| US5805837A (en) * | 1996-03-21 | 1998-09-08 | International Business Machines Corporation | Method for optimizing reissue commands in master-slave processing systems |
| US6058436A (en) * | 1997-06-16 | 2000-05-02 | Adaptec, Inc. | Quick arbitration and select (QAS) protocol in SCSI interface for configuring a current target device to assert a QAS message code during a message-in phase |
| KR100265428B1 (ko) * | 1997-06-27 | 2000-09-15 | 서평원 | 데이지 체인에 의한 패킷 통신 시스템의 패킷 버스 제어 방법 |
| US6247101B1 (en) | 1998-07-01 | 2001-06-12 | Lsi Logic Corporation | Tagged access synchronous bus architecture |
| US6434650B1 (en) | 1998-10-21 | 2002-08-13 | Intel Corporation | Apparatus and method for multiplexing bi-directional data onto a low pin count bus between a host CPU and co-processor |
| US6463494B1 (en) | 1998-12-30 | 2002-10-08 | Intel Corporation | Method and system for implementing control signals on a low pin count bus |
| US6732210B1 (en) * | 2000-01-03 | 2004-05-04 | Genesis Microchip Inc | Communication bus for a multi-processor system |
| US6820152B2 (en) * | 2001-04-25 | 2004-11-16 | Matsushita Electric Industrial Co., Ltd. | Memory control device and LSI |
| US7174401B2 (en) * | 2002-02-28 | 2007-02-06 | Lsi Logic Corporation | Look ahead split release for a data bus |
| US6948019B2 (en) * | 2002-04-30 | 2005-09-20 | Lsi Logic Corporation | Apparatus for arbitrating non-queued split master devices on a data bus |
| DE602004026195D1 (de) * | 2004-10-21 | 2010-05-06 | Hewlett Packard Development Co | Serielles Bussystem |
| US7738504B1 (en) * | 2008-12-22 | 2010-06-15 | The United States Of America As Represented By The Director National Security Agency | Method of establishing and updating master node in computer network |
| US8751715B1 (en) * | 2010-03-31 | 2014-06-10 | Enc Corporation | System and method for controlling device access |
| JP6210187B2 (ja) * | 2012-10-23 | 2017-10-11 | セイコーエプソン株式会社 | 集積回路装置、物理量測定装置、電子機器および移動体 |
| US11144358B1 (en) | 2018-12-06 | 2021-10-12 | Pure Storage, Inc. | Asynchronous arbitration of shared resources |
Family Cites Families (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4236203A (en) * | 1978-01-05 | 1980-11-25 | Honeywell Information Systems Inc. | System providing multiple fetch bus cycle operation |
| US4390944A (en) * | 1980-05-13 | 1983-06-28 | Bti Computer Systems | System for controlling access to a common bus in a computer system |
| US4602327A (en) * | 1983-07-28 | 1986-07-22 | Motorola, Inc. | Bus master capable of relinquishing bus on request and retrying bus cycle |
| US4706190A (en) * | 1983-09-22 | 1987-11-10 | Digital Equipment Corporation | Retry mechanism for releasing control of a communications path in digital computer system |
| US4785394A (en) * | 1986-09-19 | 1988-11-15 | Datapoint Corporation | Fair arbitration technique for a split transaction bus in a multiprocessor computer system |
| US4817037A (en) * | 1987-02-13 | 1989-03-28 | International Business Machines Corporation | Data processing system with overlap bus cycle operations |
| US5101479A (en) * | 1989-07-21 | 1992-03-31 | Clearpoint Research Corporation | Bus device for generating and responding to slave response codes |
| US5131085A (en) * | 1989-12-04 | 1992-07-14 | International Business Machines Corporation | High performance shared main storage interface |
| US5241628A (en) * | 1990-01-04 | 1993-08-31 | Intel Corporation | Method wherein source arbitrates for bus using arbitration number of destination |
-
1991
- 1991-05-28 US US07/705,873 patent/US5257356A/en not_active Expired - Lifetime
-
1992
- 1992-05-27 KR KR1019920009008A patent/KR920022118A/ko not_active Withdrawn
- 1992-05-28 EP EP92304856A patent/EP0518527B1/en not_active Expired - Lifetime
- 1992-05-28 JP JP4162239A patent/JPH05197671A/ja active Pending
- 1992-05-28 DE DE69222469T patent/DE69222469T2/de not_active Expired - Lifetime
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6782439B2 (en) | 2000-07-21 | 2004-08-24 | Samsung Electronics Co., Ltd. | Bus system and execution scheduling method for access commands thereof |
| JP4842804B2 (ja) * | 2003-05-08 | 2011-12-21 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | データを通信する処理システム及び方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| KR920022118A (ko) | 1992-12-19 |
| US5257356A (en) | 1993-10-26 |
| EP0518527A3 (en) | 1993-01-07 |
| EP0518527B1 (en) | 1997-10-01 |
| EP0518527A2 (en) | 1992-12-16 |
| DE69222469D1 (de) | 1997-11-06 |
| DE69222469T2 (de) | 1998-01-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH05197671A (ja) | マスター・スレーブ通信方法 | |
| EP0382469B1 (en) | Arbitration of bus access in digital computers | |
| US5355455A (en) | Method and apparatus for avoiding deadlock in a computer system with two or more protocol-controlled buses interconnected by a bus adaptor | |
| US5901295A (en) | Address and data bus arbiter for pipelined transactions on a split bus | |
| US5710891A (en) | Pipelined distributed bus arbitration 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 | |
| US6282598B1 (en) | PCI bus system wherein target latency information are transmitted along with a retry request | |
| US5590299A (en) | Multiprocessor system bus protocol for optimized accessing of interleaved storage modules | |
| US5528766A (en) | Multiple arbitration scheme | |
| JPH02500784A (ja) | 保留バスにおいて割り込み要求メッセージを処理するノード | |
| JPH0679305B2 (ja) | 保留バスを用いて割り込みに応じる装置及び方法 | |
| JPH08263312A (ja) | バス仲裁方法及びその装置 | |
| US5708783A (en) | Data bus arbiter for pipelined transactions on a split bus | |
| JPH0656602B2 (ja) | キヤツシユを有するプロセツサのための優先制御システム | |
| JPH0962640A (ja) | 共有メモリのアクセス制御方法 | |
| US5815676A (en) | Address bus arbiter for pipelined transactions on a split bus | |
| JPH1125036A (ja) | 調停システム、およびアクセスを調停する方法 | |
| JPS63286949A (ja) | バス制御方式 | |
| JPH06266657A (ja) | 情報処理装置 | |
| KR100243868B1 (ko) | 주 전산기에서의 중재로직 방법 | |
| JPH0844661A (ja) | 情報処理装置 | |
| JPS6145348A (ja) | バス優先権制御方式 | |
| JP2697974B2 (ja) | デッドロックを回避する方法 | |
| JP2836591B2 (ja) | プロセッサ間バス伝送方法及びプロセッサ間バス伝送システム | |
| JPH04128957A (ja) | マルチプロセッサシステムにおける共有資源の排他制御方法 |