JP3444933B2 - バスウェイト機構を備えるデジタルコンピュータ装置 - Google Patents

バスウェイト機構を備えるデジタルコンピュータ装置

Info

Publication number
JP3444933B2
JP3444933B2 JP22379493A JP22379493A JP3444933B2 JP 3444933 B2 JP3444933 B2 JP 3444933B2 JP 22379493 A JP22379493 A JP 22379493A JP 22379493 A JP22379493 A JP 22379493A JP 3444933 B2 JP3444933 B2 JP 3444933B2
Authority
JP
Japan
Prior art keywords
bus
data
wait
module
address
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
JP22379493A
Other languages
English (en)
Other versions
JPH06168202A (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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH06168202A publication Critical patent/JPH06168202A/ja
Application granted granted Critical
Publication of JP3444933B2 publication Critical patent/JP3444933B2/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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4208Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
    • G06F13/4217Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus with synchronous protocol

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はディジタルコンピュータ
の分野に関し、特に、バスにウェイトをかけ、低速バス
モジュールがバス信号及びデータに応答できるようにす
ることに関する。
【0002】
【従来技術及びその問題点】ディジタルコンピュータは
一般的に、中央処理装置(CPU)モジュール、メモリモジ
ュール、ディスクコントローラモジュール、及び他の入
出力モジュールから構成され、これらモジュールは全て
1本あるいは複数本ののバスにより共通接続されてい
る。図1はバスに接続された複数のバスモジュールを利
用している簡略したコンピュータシステムを示す。モジ
ュールはバスを介して互いに通信するが、その通信はア
ドレス、データ、及び状態の各信号の転送から成立して
いる。
【0003】コンピュータモジュールが互いに通信する
ためには、各々のモジュールはバスのプロトコルに忠実
でなければならない。このプロトコルはバスを如何に使
用するかを判定するタイミング及び電気的仕様から構成
されている。バスプロトコルにはモジュールがバスを
「待たせる」ことができるようにするウェイト機構が機
構が含まれている。バスモジュールが常にバスプロトコ
ルにより指定されている通常のタイミングでデータを発
生したりまたは受入れたりすることができるとは限らな
いため、ウェイト機構が必要になる。メモリのリフレッ
シュあるいはマイクロプロセッサにおいてキャッシュの
一貫性チェックの結果を得る際の遅れのような事象は、
バスを待たせる一般的な理由である。ウェイト信号をア
サート (assert) することにより、バスモジュールは、
モジュールがバストランザクションを続けることができ
るようになるまで、バスによる有効データの転送を実効
的に停止しておくことができる。
【0004】以下の説明において、「良好データ」、
「不良データ」、「有効データ」、及び「無効データ」
という用語を使用する。「良好データ」は正しいデータ
を指し、「不良データ」とは正しくないデータのことを
指す。不良データの一例は、ドライバが現在のバスサイ
クル中に適格なビットを供給することができなかったた
め1つまたは複数のビットが正しくないデータワードで
ある。「有効データ」は良好データとバスプロトコルに
よってデータが使用可能になっている期間中にバス上に
存在しているデータの両方のことを指す。「無効デー
タ」は不良データであるか、または良好データではある
がバスプロトコルによりデータが使用可能ではないとさ
れているときにバス上に存在しているデータのいずれか
である。
【0005】また、ドライバモジュールは、バスを駆動
してアドレス、データ、または状態の各信号を与えてい
るモジュールである。レシーバモジュールはドライバモ
ジュールによりバスに与えられたアドレス、データ、ま
たは状態の各信号を受取るモジュールである。
【0006】図2の(A)及び(B)には、それぞれウェイト
状態のない、及びウェイト状態のある従来技術のバスの
タイミングチャートである。図2(A)では、モジュール
がウェイトコマンドをアサートしていない(このタイミ
ングチャートでは、ウェイトコマンドのアサート状態を
示す信号WAITが低レベルのままである)から、 "DATA"
で表されているデータは遅延されず、T1バスサイクル中
有効である。図2(B)では、T1バスサイクルの間WAIT信
号が高レベルになっていることで示されるように、バス
モジュールがバスウェイトコマンドをアサートしてお
り、T1バスサイクル中バス上にあるデータは無効であ
る。バス上にあるデータはウェイトコマンドがアサート
バスモジュールにより解除されるまで無効のままであ
る。ウェイトコマンドが解除されると、ウェイトコマン
ドの解除の直後のバスサイクル中に有効データがバスに
送り込まれる。図2(B)に示す例では、有効データはT2
バスサイクル中にバス上に送り込まれる。バスを待たせ
る必要があるのがドライバモジュール側であれば、ドラ
イバは利用できるデータを持っていないので、T1バスサ
イクル中にバス上で利用できるデータは良好データでは
ない。しかし、待たせる必要があるのがレシーバモジュ
ール側である場合には、T1バスサイクル中に利用可能な
データは良好データであるかもしれないが、プロトコル
の定義により無効データとみなされる。ドライバモジュ
ールはT1バスサイクル中バスに良好データを送り込み、
T2バスサイクルを通じてこの同じ良好データをバス上に
保持する。
【0007】従来技術のバスプロトコル及びウェイト機
構に伴う1つの問題は、ウェイトコマンドがアサートさ
れたら、ほとんど瞬時にモジュールが認識して応答しな
ければならないことである。図2(B)に示したように、
モジュールはT1バスサイクル中にウェイトコマンドがア
サートされたことを認識し、T2バスサイクルの開始期間
中に適切に応答しなければならない。この応答時間はコ
ンピュータが8MHzで動作していたときには充分であっ
た。現在、50MHz以上で動作するコンピュータでは、バ
スモジュールがウェイトコマンドを認識して次のバスサ
イクルの開始時に応答することを要求するプロトコル
は、モジュールが使用している集積回路の速度制限のた
め現実的ではない。
【0008】モジュールがウェイトコマンドに応答しな
ければならない時間を長くするため、図2(C)に示すプ
ロトコルを使用することができる。このプロトコルで
は、待たせたいバスサイクルの1バスサイクル前にバス
モジュールがウェイトコマンドをアサートする必要があ
る。図2(C)で示すように、ウェイトコマンドはT0の間
にアサートされており、従ってバスサイクルT1の間にバ
ス上にあるデータは無効である。バスサイクルT2の間に
バス上にあるデータは有効である。このプロトコルでは
バス上のモジュールがウェイトコマンドに応答する時間
を長くすることができるが、これだけの時間の延長では
なお充分でないことがある。また、ウェイトをアサート
するモジュールはウェイト状態を入れなければならない
ことをT0より以前に明確に知っていないことがあるの
で、モジュールにT0より早くウェイトコマンドをアサー
トさせる(たとえばT-1でウェイトをアサートする)こ
とにより応答時間を長くするために費やされる性能上の
出費がかかる。必要でないときにモジュールがウェイト
をアサートすれば、バスサイクルが浪費され、コンピュ
ータの性能が低下する。
【0009】
【目的】本願発明は、コンピュータの性能を不必要に低
下させず、その一方ではバス上のモジュールがウェイト
コマンドを認識して応答するのに充分な時間を与えるこ
とを目的とする。
【0010】
【概要】本発明は、高速コンピュータにおいてバスを待
たせるプロトコル方法及び装置を提供する。この新規な
方法及び装置では、バス上の各モジュールに、待たせる
べきバスサイクルのはるかに前にウェイトが必要になる
ことを判定する必要なしに、ウェイトコマンドを認識し
て応答するのに充分な時間を与える。
【0011】好適なウェイトプロトコルでは、バスウェ
イトコマンドは待たせるべきバスサイクルより1サイク
ル前にアサートされ、これにより不必要な無効サイクル
が防止される。このウェイトプロトコルでは、ウェイト
コマンドの直後のNバスサイクルが無効であると定義す
るが、更にまた、最初の無効サイクルでバスを凍結する
のではなく、ウェイトをかけているにもかかわらずこれ
らのNサイクルの間にバスが進行すると定義している。
従って、バスモジュールはN個のウェイトサイクルの後
までウェイトコマンドに応答しなければならない。
【0012】本発明の好適実施例では、再試行待行列を
取入れた装置が提供される。この再試行待行列は最後の
Nバスサイクルを保持し、必要なら、バスウェイトコマ
ンドが終了した後で、バス上でこれらのNサイクルを再
試行する。
【0013】本発明の他の好適実施例では、ドライババ
スモジュールは、ドライバモジュールが生成した最後の
Nバスサイクルを再試行するために再試行待行列 (repl
ay queue) を組み込んでいる。必要ならば、ドライバモ
ジュールは、バスが待たされている間、ドライバモジュ
ールが先に発生しバスを駆動して与えていたNサイクル
全てまたはそのNサイクルのサブセットをバス上で再試
行する。
【0035】
【実施例】図3は本発明の方法及び装置を利用するバス
の模範的タイミングチャートを示す。図示の通り、ウェ
イトコマンド302がバスモジュール(図示せず)により
バスサイクルT0の間にアサートされている。この例で
は、ウェイトコマンドがアサートされている結果、T1〜
T4の4バスサイクルでウェイトがかかっている。ウェイ
ト時間304の間にバス上に存在するデータワードd1〜dは
プロトコルの定義により無効である。バスサイクルT5〜
T8の間で、データワードd1〜d4がバス駆動モジュールに
よってバス上で再試行され、この段階ではこれらのデー
タワードは有効になっている。受信バスモジュール(図
示せず)はT1〜T4バスサイクルのデータを捨てまたは無
視し、T5〜T8バスサイクルのデータを使用する。
【0036】この新規なウェイトプロトコルにより、バ
スモジュールは待たせるべきバスサイクルの直前のバス
サイクルまでウェイトコマンドのアサートを遅らすこと
ができ、これにより不必要なウェイトサイクルが回避さ
れる。また、全てのバスモジュールはウェイトコマンド
を認識してこれに応答するのに4バスサイクル使う。図
示した4サイクルのウェイト期間304は特定のハードウ
ェア構成に基づいて選択されたものであるが、他のウェ
イト期間もその方が有益ならば使用される。たとえば、
バスモジュールがウェイトコマンドを認識してこれに応
答するのに4バスサイクルより長いサイクルが必要であ
れば、ウェイト期間304を再試行するデータワード306の
数を増やすことにより延長することができる。待たせる
バスサイクルの数を減らすには、バスモジュールが最初
のウェイトバスサイクルより1サイクル早くウェイトコ
マンドをアサートする必要があるというようにプロトコ
ルを修正することができる。
【0037】図4は図3に示すバスウェイトプロトコル
を実現する再試行モジュールのブロック図である。再試
行モジュールは、直列に接続されている4つのデータ格
納ブロック406、408、410、及び412から成る再試行待行
列404に接続された出力を備えているデータレシーバ402
を有している。ドライバ414は待行列404の最後のデータ
格納ブロック412からの出力に接続されている。制御ブ
ロック416はドライバ414に接続され、これを制御する。
【0038】その動作に当たっては、コンピュータバス
418の最近の最後の4サイクルは再試行待行列404に格納
されている。制御ブロック416はウェイトコマンドがバ
ス418上でアサートされていることを認識し、これらの
最近の4サイクルを、ドライバ414がウェイト期間の最
後のバスサイクルの直後のサイクルからバス上に送り出
すことができるようにする。コンピュータシステムは再
試行ブロックを1つしか必要しない。
【0039】図5(A)は本発明の好適実施例を示す図で
ある。この簡略化された実施例では、バスドライバモジ
ュール502には、コンピュータバス506とモジュールの内
部論理回路(図示せず)に接続されたバスデータレシー
バ504が設けられている。内部論理ブロック508の出力で
ある径路1はマルチプレクサ510の入力に接続されてい
る。マルチプレクサ510の第2の入力は、データ格納ブ
ロック512の出力である径路2に接続されている。マル
チプレクサ510の出力はデータ格納ブロック512の入力と
バスデータドライバ514の入力に接続されている。
【0040】図5(B)は、図5(A)に示すバスモジュール
に接続されているバスの簡略化したバスタイミングチャ
ートを示す。このタイミングチャートでは、502以外の
あるモジュールがデータワード"A"をバスサイクルT0の
間にバスに送り出しており、モジュール502はバスサイ
クルT1の間にデータワード"B"をバスに送り出すように
予定されている。図示のように、ウェイトコマンドがT0
バスサイクル中にアサートされている。従って、T1バス
サイクル中にバス上に存在しているデータはプロトコル
の定義により無効である。T2バスサイクル中、モジュー
ル502はデータワード"B"をバスに送り出す。
【0041】図5(C)は上に示したT0〜T2バスサイクル
中の図5(A)に示すモジュールの内部動作の詳細を示す
チャートである。このチャートは2つの場合を示してい
る。場合1では、バスモジュール502はバスサイクルT0
の間にウェイトコマンドをアサートしない。従ってモジ
ュール502はサイクルT1中にバスに送り出すことができ
るデータワード"B"を持っている。サイクルT1の間、論
理ブロック508は、径路1を使ってマルチプレクサ510及
びドライバ514を介してデータワード"B"をバスに送り出
す。データワード"B"はまた、データ格納ブロック512に
格納される。T2の間、データ格納ブロック512は、径路
2を使ってマルチプレクサ510及びドライバ514を介して
データワード"B"をバスに送り出す。かくして、場合1
では、バスにはT0ではデータワード"A"が、T1ではデー
タワード"B"(無効)が、またT2ではデータワード"B"
(有効)が乗っている。この例では、バスモジュール
は、格納データブロックが1つ存在するだけであるか
ら、1バスサイクル内にウェイトコマンドを認識してこ
れに応答しなければならない。1サイクルの応答時間は
高速コンピュータでは実際的でないことがある。この例
は本発明の動作の基本理論を説明することだけを目的と
しているものである。
【0042】場合2では、バスモジュール502はバスサ
イクルT1の間にバスに送り出すことができるデータワー
ド"B"を持っていない。このときには、バスモジュール5
02は、バスサイクルT0の間にウェイトコマンドをアサー
トする。T1の間に、論理ブロック508は径路1を使用し
て不良データをバスに送り出す。T2の間に、論理ブロッ
ク508は径路1を再び使用してデータワード"B"をバス50
6に送り出し、再試行待行列はドライバモジュールによ
り使用されない。かくして、この場合には、バスには、
T0でデータワード"A"が、T1で不良データが、T2でデー
タワード"B"がのっている。場合1、場合2のどちら
も、受信バスモジュール(図示せず)はバスサイクルT1
の間にバス上にあるデータを無視するか捨てるかし、バ
スサイクルT2の間にバス上にあるデータを使用する。
【0043】図6(A)は4つのデータ格納ブロックを持
っている本発明の一実施例の簡略化されたバスモジュー
ルを示している。図示のように、バスモジュール602は
モジュールの内部の論理(図示せず)をバス604に接続
するバスレシーバ504を備えている。再試行待行列606は
直列に接続されている4つのデータ格納ブロック608、6
10、612、及び614から構成されている。格納ブロック60
8の入力はマルチプレクサ510の出力に接続されている。
格納ブロック614の出力はマルチプレクサ510の1つの入
力に接続されている。バスドライバ514の入力はマルチ
プレクサ510の出力に接続されており、ドライバ514の出
力はバス604に接続されている。バスモジュール602の動
作は上述のバスモジュール502と実質的に同じである。
しかし、バスモジュール602は4データワードを格納し
再試行することができるが、バスモジュール502は1デ
ータワードを格納することができるだけである。格納能
力が増えたことにより、高速コンピュータに必要なバス
ウェイトコマンドに応答するのに充分な時間が与えられ
る。
【0044】図6(B)はバスモジュール602に接続された
バスの簡略化されたタイミングチャートである。"Z"は
モジュール602の直前にバスにデータを送り出すように
予定されていたドライバモジュールにより送り出された
データワードを表す。"E"及び"F"はモジュール602の直
後にバスにデータを送り出すように予定されていたドラ
イバモジュールにより送り出されたデータワードを表
す。モジュール602はバスサイクルT1から始めて、デー
タワード"A"〜"D"をバスにデータワードを送り出すよう
に予定されている。場合1では、602以外のあるモジュ
ールがバスサイクルT0の間にウェイトコマンドをアサー
トする。このとき、バスサイクルT1〜T4の間にモジュー
ル602によりバスに送り出されたデータ"A"〜"D"は、プ
ロトコル定義により良好データであるが無効である。再
試行待行列606はバスサイクルT5〜T8の間にデータワー
ド"A"〜"D"をバスに再び送り出す。
【0045】場合2では、モジュール602ではデータワ
ード"A"〜"D"はバスサイクルT1までに利用できるように
なっていない。このときには、モジュール602は、バス
サイクルT0の間にバス上にウェイトコマンドをアサート
する。モジュール602はバスサイクルT1〜T4の間に不良
データをバスに送り出し、次いでバスサイクルT5〜T8の
間にデータワード"A"〜"D"をバスに送り出す。場合2で
は、再試行待行列606は使用されない。
【0046】図7はバス704に接続されている基本バス
モジュール702を示す。一群の有限状態機械(FSM)706が
モジュール702を制御する。FSM706はレシーバブロック7
08によりバス704から受取った情報を調べ、この情報を
内行きトランザクション待行列710に格納する。FSM706
がトランザクションをバス704に送る必要があれば、FSM
706は外行きトランザクション待行列712にトランザクシ
ョンを格納する。バスモジュール702がバス競合調停で
バス支配権を獲得した後(図示せず)、トランザクショ
ンは外行きトランザクション待行列712からドライバブ
ロック716に送られる。また、外行きトランザクション
は再試行待行列714にロードされる。ドライバ716はトラ
ンザクションをバス704に送り出す。再試行待行列714は
FSM706のうちの1つにより制御される。この制御を行な
うFSM706は、ウェイトがバス704上でアサートされたこ
とを検出すると、適切なFSM706を停止し、外行きトラン
ザクション待行列712と再試行待行列714のいずれからN
個の状態をバス704に送るかを判断する。
【0047】図8は本発明によるバスモジュール802の
詳細ブロック図を示す。バス804は競合調停(ARB)、アド
レス(ADDR)、データ(DATA)、及びウェイト(WAIT)の各信
号から構成されて図示されている。レシーバブロック80
6はバス804からのデータをバッファしてラッチし、その
データをモジュール802の内部にある論理回路に供給す
る。スレーブFSM808はアドレスをレシーバブロック806
から受取り、それに対応するトランザクションのアドレ
ス及びデータを内行きトランザクション待行列810に格
納する。
【0048】マスタFSM812は外行きトランザクション待
行列814を制御する。FSM812がトランザクションをバス8
04に送る必要があるときは、FSM812はWANT_ADDR信号を
競合調停FSM816及びドライバブロック818に送る。ドラ
イバブロック818は競合調停信号820をバス上に送り出
す。競合調停FSM816はバス804から受取った全ての競合
調停信号を調べ、モジュール802がバス支配権を得たと
きDRIVE_ADDR信号822を発生する。DRIVE_ADDR信号822
は、バスドライバ818がバス804を駆動できるようにす
る。DRIVE_ADDR信号が発生されると、マスタFSMは外行
きトランザクション待行列814に格納されている情報を
ドライバ818を通してバスに送る。マスタFSMがアドレス
またはデータの特定のサイクルをバスに送出する態勢に
なっていなければ、FSMはNOT_READY信号826を発生す
る。このNOT_READY信号はドライバ818によりバス804に
送られ、この信号はウェイトFSM828に送られる。ウェイ
トコマンドをバス804から受取ると、ウェイトFSM828はF
REEZ信号により、NOT_READYを発生しているマスタFSMを
除く全てのFSMを凍結する。ウェイトFSMはまた再試行待
行列の適切な部分に、N個以前の状態以降のバス行き信
号を再送出させる。NOT_READY信号を発生しているFSMは
凍結されず、従ってそのFSMにより制御されるバス行き
信号をバスに送ることができる。そのようなものとし
て、再試行待行列の先頭に外行きバスデータの各種のサ
ブセットを制御する2つあるいはもっと多くのマルチプ
レクサ830及び832を置くことがある。
【0049】図9は本発明の好適実施例が4バスサイク
ルのバスウェイト期間を利用する理由を説明するバスモ
ジュール902のブロック図を示している。バスウェイト
期間は何バスサイクルでもよいが、バスモジュールの設
計により、ウェイト期間に使用すべき最も有利なバスサ
イクル数が決まる。
【0050】図9に示す通り、バスモジュール902はバ
ス906と第2の入力レジスタ908との間に接続されている
第1の入力レジスタ904を含んでいる。レジスタ908から
の出力はマルチプレクサ912を制御する制御論理ブロッ
ク910に接続されている。マルチプレクサ912からの出力
は出力レジスタ914の入力及び再試行待行列916の入力に
接続されている。レジスタ914からの出力は第2の出力
レジスタ918の入力に接続され、レジスタ918の出力はバ
ス906に接続されている。2つの入力がマルチプレクサ9
12に設けられており、その1つは外行きトランザクショ
ン待行列(図示せず)に接続され、他の入力は再試行待
行列916の出力に接続されている。
【0051】バスサイクルT0の間にウェイトコマンドが
アサートされると、そのコマンドはT1の期間中に第2の
入力レジスタ908の入力に到達して利用できる。制御ブ
ロック910はウェイトコマンドに応答し、T2の間にレジ
スタ902中のマルチプレクサの選択を設定する。レジス
タ920の内容はT3の間に再試行待行列を選択する。再試
行待行列の出力はT3の間に出力レジスタ914の入力で、
またT4の間に第2の出力レジスタ918の入力で利用でき
る。従って再試行データがバス906に現れる最も早い時
期はT5バスサイクルの期間中である。勿論、他のバスモ
ジュール装置も、個別の構成での遅れ時間に、それより
も多いあるいはそれよりも少ないバスサイクルを必要と
することがある。
【0052】図10は図8及び図9に示すバスモジュー
ルに接続されたバスの簡略化したバスタイミングチャー
トを示す。アドレスバスの状態は図の最上部にADDRと略
して示してあり、データバスの状態DATAは中間に示して
あり、ウェイト信号WAITは図の最下部に示してある。こ
れらのバスは互いに独立している。すなわち、所与のバ
スサイクル中にアドレスバスを駆動するモジュールは同
じバスサイクル中にデータバスを駆動するのと同じモジ
ュールでなくてよい。この図に示したように、ウェイト
コマンドはアサートされておらず、従ってアドレスバス
及びデータバスは共に無効サイクルなしで動作する。
【0053】T1の間に、バスモジュール間の調停が行わ
れ、データワード"A"が第1のモジュール(図示せず)
によりデータバス上に送り出される。T2で、この説明に
関係のない入出力データI/Oがアドレスバス上に発生
し、データワード"B"が第1のモジュールによりデータ
バスに送り出される。T3の間に、T1の間の調停でバスの
支配権を得たモジュールがスレーブアドレスsadd1をア
ドレスバス上に送り出し、第1のモジュールがデータワ
ード"C"をデータバスに送り出す。T4で、仮想アドレスv
add1がT1でバス支配権を得たモジュールによりアドレス
バスに送り出され、第1のモジュールがデータワード"
D"をデータバスに送り出す。
【0054】T5の間に、第2の調停がバスモジュール間
で行われ、第2のモジュールがデータワード"W"をデー
タバス上に送り出す。バスサイクルT6〜T8の間に、第2
のモジュールはそのデータワード"X", "Y", "Z"をデー
タバスに送り出し続け、第2の調停でバス支配権を得た
モジュールがそのスレーブアドレスsadd2及び仮想アド
レスvadd2をアドレスバスに送り出す。
【0055】図11はウェイトコマンドが1回だけアサ
ートた場合のバスタイミングチャートを示す。上に説明
したように、アドレスバス及びデータバスは互いに無関
係である。しかし、アドレスバス及びデータバスは共に
同時にウェイトコマンドに応答する。
【0056】図11に示す例では、4個のドライバモジ
ュールが関係している。第1のアドレスバスドライバ
は、バスサイクルT0でバス支配権を獲得して、その後に
スレーブアドレスsadd1及び仮想アドレスvadd1をアドレ
スバスに送り出す。第2のアドレスバスドライバは、最
初、T4でバス支配権を獲得して、スレーブアドレスsadd
2及び仮想アドレスvadd2をアドレスバスに送り出そうと
する。第1のデータバスドライバはデータワード"A"〜"
D"をデータバスに送り出し、第2のデータバスドライバ
はデータワード"W"〜"Z"をデータバスに送り出す。第1
のデータドライバは、T2及びT3の間に、それぞれデータ
ワード"C"及び"D"をデータバスに送出する態勢が整って
いないので、T1の間にウェイトコマンドを発生し、T2及
びT3の間に不良データをデータバスに送り出す。ウェイ
トコマンドは4つ組みデータ期間(4データワードトラ
ンザクション)の途中でアサートされるので、第2のデ
ータバスドライバは良好ではあるが無効なデータワー
ド"W"及び"X"をT4及びT5の間にデータバスに送り出す。
第1のデータドライバモジュールは今度はデータワー
ド"C"及び"D"をデータバスに送り出す準備が整ってお
り、T6及びT7の間にその送り出しを行う。データワー
ド"W"及び"X"はバスサイクルT8及びT9の間に第2のデー
タドライバモジュールによりデータバス上に再送出され
る。この場合には、第2のデータドライバモジュールは
2つのワードをバス上に再送出するだけでよい。
【0057】アドレスバスはデータバスと同様にしてこ
のウェイトに応答する。第1のアドレスバスドライバは
T0の間の調停でバス支配権を獲得し、スレーブアドレス
sadd1及び仮想アドレスvadd1をT2及びT3の間にアドレス
バスに送り出す。ウェイトコマンドはT1の間にアサート
されたので、T2及びT3の間にアドレスバス上にある情報
は有効ではなく、T6及びT7の間に第1のアドレスバスド
ライバによりアドレスバス上に再び送り出される。T4の
間に第2のアドレスバスドライバがバス支配権を得る
が、この調停はウェイト期間112の間に行われるので、
この調停は無効で、T8の間に繰返されなければならな
い。第2のアドレスドライバモジュールはT8の間にバス
支配権を獲得するので、第2のアドレスモジュールはバ
スサイクルT10及びT11の間にスレーブアドレスsadd2及
び仮想アドレスvadd2をバス上に送り出す。
【0058】図12は2つの背中合わせのウェイト状態
がアサートされた場合のバスタイミングチャートを示し
ている。この例では、ウェイトコマンドが、図11に示
した前の例におけるようにT1の間に第1のデータバスド
ライバによりアサートされている。しかしこの現在の例
では第1のデータバスドライバは更にT5バスサイクル中
に別のウェイトコマンドをアサートする。従って、図1
1の場合のようにT6及びT7の間にデータワード"C"及び"
D"が有効になる代わりに、それぞれT10及びT11までこれ
らのデータワードは有効にならない。第2のデータバス
ドライバは、T8及びT9のバスサイクル中に1回、更にT1
2及びT13のバスサイクル中にもう一度、都合2回ずつデ
ータワード"W"及び"X"を再試行する。
【0059】第1のアドレスバスドライバはスレーブ及
び仮想アドレス1をバス上に2回再送出し、アドレスsa
dd1及びvadd1はT10及びT11の間に有効になる。ウェイト
が1102の間に起こっているので、この期間に含まれるT4
及びT8の間の調停は無効である。バスサイクルT12の間
に第2のアドレスバスドライバがバス支配権を獲得し、
T14及びT15のバスサイクル中にスレーブアドレスsadd2
及び仮想アドレスvadd2をアドレスバス上に送り出す。
【0060】図13はウェイトコマンドが連続する4サ
イクルの間に複数のモジュールによりアサートされた場
合のバスタイミングチャートを示す。ウェイトコマンド
はどのウェイトサイクル中でもアサートすることができ
る。しかし、あるモジュールがサイクルNでウェイトコ
マンドを発生すれば、サイクルN+1、N+2、及びN
+3でのウェイトコマンドは何の効果も引き起こさな
い。第1のウェイトの「影」でアサートされたウェイト
コマンドは無視される。
【0061】図13に示した例では、第1のウェイトコ
マンドはバスサイクルT1の間に発生され、従ってT2、T
3、及びT4の間に発生されるウェイトコマンドは無視さ
れる。ウェイトコマンドが有効である次のバスサイクル
はバスサイクルT5である。T1の影に入ったウェイトは無
視されるので、バストランザクションは図11について
上に説明したように行われる。
【0062】図14及び図15はバスモジュールの内部
の論理ブロックを示している。図9に示した受信及び駆
動用のトランシーバは図示していない。図16及び図1
7は、データ"A"から"D"までを無効にしようとするバス
モジュールの動作のタイミングチャートであり、以下の
説明を理解する際の補助とすることを目的としている。
バスモジュールは、ウェイト状態機械(SM)1402、SM1 14
04、SM2 1406、及びSMx 1408を含む幾つかのFSMにより
制御される。SM1、SM2、及びSMxは各々いくつかの外部
バス(図示せず)の部分集合を駆動するが、これらの部
分集合同士は共通部分を持っていない。SM1及びSM2は時
にはバスにウェイトをかける必要があるが、SMxは決し
てそうならない。ウェイトコマンドをアサートするに
は、SM1がDO_WAIT_1信号1436を発生するか、またはSM2
がDO_WAIT_2信号1438を発生するかして、外部トランシ
ーバに2バスサイクル後にバスにウェイトコマンドをア
サートさせる。2バスサイクル後にウェイトがバス上に
アサートされ、バスモジュールのレシーバはウェイトコ
マンドを受取り、この信号はモジュール内部でIN_WAIT
信号1414のように伝播する。IN_WAIT信号1414は組合わ
せ論理1416を通って進み、SMxを直ちに凍結する。SM1及
びSM2はまた、それらが現在アサートされているウェイ
トコマンドの出所でなければ凍結される。ウェイトSM 1
402は、SM1またはSM2がウェイトコマンドを4バスサイ
クル前にアサートしたか否かをいつも知っている。一方
のSMがウェイトコマンドをアサートしていれば、信号KE
EP_RUN_SM1信号1418またはKEEP_RUN_SM2信号1420がその
SMを凍結しないようにする。ウェイトコマンドは4サイ
クルの間バスを無効化するので、ウェイトSM 1402はWAI
T_SHADOW信号1422を最初のIN_WAIT信号の後更に3サイ
クルだけアサートすることにより、FREEZ_OTHER信号を
延長する。
【0063】3つの再試行待行列1424、1426、及び1428
はSM1、SM2、及びSMxにより制御される外部バスの種々
のサブセットを示す。各SMnが凍結されると、FREEZ_SMn
信号はマルチプレクサ1430、1432、または1434の1つを
選択し、これによりその状態機械により制御されるバス
信号に対応する再試行待行列を選択する。かくして、特
定の状態機械が凍結されている間、その状態機械に対応
付けられた再試行待行列が4バスサイクル前からバス行
きデータを再試行する。各SMは独立に動作または凍結が
できる。
【0064】SM1及びSM2が2つのウェイト信号を持って
いる理由は、2つの場合を区別するためである。第1の
場合とは、バスに関する新しいウェイト期間を開始する
場合であり、第2の場合とは、自分がアサートしたウェ
イト期間を延長する場合である。SMnがバス上に最初に
ウェイトをアサートしていたかどうかは、4サイクル前
にバス上で発生したウェイトコマンドにより検証しなけ
ればならない。ウェイトコマンドが4サイクル以前にバ
ス上でアサートされていれば、ウェイトコマンドをアサ
ートしようとしているSMnは、異なるSMnのまたはモジュ
ールのウェイト期間を延長しないように、IN_WAITによ
り阻止されなければならない。SMnが自分のウェイト期
間をうまく獲得すれば、SMnは自分のウェイト期間を長
くしてバスを2ウェイト期間あるいはもっと長い期間ウ
ェイトさせるように希望することができる。
【0065】DO_WAIT_n信号1436及び1438)はSMnが最初
にウェイトコマンドをアサートしようとする際に使用さ
れ、この信号はウェイトSM 1402に送られる。DO_WAIT_n
信号はANDゲート1440及び1442によりIN_WAIT信号1414と
の論理積を取られ、現在のウェイト期間を延長しないよ
うにする。DO_WAIT信号がIN_WAIT信号によりキャンセル
されれば、ウェイトSM 1402は4サイクル後に自分がDO_
WAIT_W信号1444を発生することにより、SMnに対するウ
ェイトを再アサートする。SMnがそれ自身のDO_WAIT_n信
号またはウェイトSMからのDO_WAIT_W信号によりバス上
にウェイトコマンドを首尾よくアサートすれば、SMnはF
RC_WAIT_n信号1410または1412を発生することにより更
に4サイクルだけウェイト期間を延長することができ
る。FRC_WAIT_n信号はゲートされることはなく、常にバ
ス上にウェイトを発生させる。
【0066】当業者にとっては、本発明の他の実現形態
は本明細書またはここに開示した本発明の実施の態様を
考察することにより明らかであろう。明細書及び例は単
に模範であると考えられることを意図しており、本発明
の真の範囲及び精神は本願特許請求の範囲により示され
ている。
【0067】
【効果】以上詳細に説明したように、本発明によれば、
特別に高速の素子や回路構成を使用しなくとも遅いタイ
ミングで発生するバスウェイト信号に対処できるので、
バスを使用するシステムの設計にとって極めて有益であ
る。
【図面の簡単な説明】
【図1】複数のバスモジュールを使用する簡略化された
コンピュータシステムを示す図。
【図2】従来技術にかかるのバスタイミングチャート。
【図3】本発明のウェイトプロトコルを使用するバスの
バスタイミングチャート。
【図4】本発明の一実施例による再試行モジュールのブ
ロック図。
【図5】本発明の一実施例の回路及び動作を説明する
図。
【図6】本発明の一実施例の回路及び動作を説明する
図。
【図7】本発明の一実施例のバスモジュールの基本構造
を示すブロック図。
【図8】本発明の一実施例のバスモジュールの詳細ブロ
ック図。
【図9】本発明の一実施例におけるバスモジュールの動
作を説明するためのブロック図。
【図10】本発明の一実施例のバスタイミングチャー
ト。
【図11】本発明の一実施例のバスタイミングチャー
ト。
【図12】本発明の一実施例のバスタイミングチャー
ト。
【図13】本発明の一実施例のバスタイミングチャー
ト。
【図14】本発明の一実施例のバスモジュールの詳細論
理ブロック図。
【図15】本発明の一実施例のバスモジュールの詳細論
理ブロック図。
【図16】図14及び図15に示すバスモジュールにお
ける、DO_WAITn信号が阻止されなかった場合の動作を説
明するためのタイミングチャート。
【図17】図14及び図15に示すバスモジュールにお
ける、DO_WAITn信号が阻止された場合の動作を説明する
ためのタイミングチャート。
【符号の説明】
302:ウェイトコマンド 304:ウェイト期間 306:データワード 402:データレシーバ 404:再試行待行列404 406、408、410、412:データ格納ブロック 414:ドライバ4 416:制御ブロック 418:コンピュータバス 502:バスドライバモジュール 506:コンピュータバス 504:バスデータレシーバ504 508:内部論理ブロック 510:マルチプレクサ 512:データ格納ブロック 514:バスデータドライバ 602:バスモジュール 604:バス 606:再試行待行列 608、610、612、614:データ格納ブロック 702:基本バスモジュール 704:バス 706:有限状態機械 708:レシーバブロック 710:内行きトランザクション待行列 712:外行きトランザクション待行列 714:再試行待行列 716:ドライバブロック 802:バスモジュール 804:バス 806:レシーバブロック 808:スレーブ有限状態機械 810:内行きトランザクション待行列 812:マスタ有限状態機械 814:外行きトランザクション待行列 816:競合調停有限状態機械 818:ドライバブロック 820:競合調停信号 826:NOT_READY信号 828:ウェイト有限状態機械 830、832:マルチプレクサ 902:バスモジュール 904、908:入力レジスタ 906:バス 910:制御論理ブロック 912:マルチプレクサ 914、918:出力レジスタ914 916:再試行待行列 1402、1404、1406、1408:ウェイト状
態機械
───────────────────────────────────────────────────── フロントページの続き (72)発明者 トーマス・ビー・アレクサンダ アメリカ合衆国カリフォルニア州サン タ・クララ・プルーンリッジ・アベニュ ー2840 (56)参考文献 特開 平4−291624(JP,A) 特開 平4−264947(JP,A) 特開 平3−187643(JP,A) 特開 平3−177949(JP,A) 特開 平1−234940(JP,A) 特開 昭64−78362(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 13/42 350 EUROPAT(QUESTEL) WPI(DIALOG)

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】データ・セクションおよびアドレス・セク
    ションを別個に有するコンピュータ・バスを備えるデジ
    タルコンピュータ装置であって、前記コンピュータバス
    は、データが該バス上に送出され、かつ該バス上からデ
    ータが読み出されるバスサイクルを有しており、 前記コンピュータバスのデータ・セクション上にデータ
    ・シーケンスを送出すると同時に、該送出されたデータ
    をデータ再試行待ち行列に格納するデータバスの駆動モ
    ジュールと、 前記コンピュータバスのアドレス・セクション上にデー
    タ・シーケンスを送出すると同時に、該送出されたデー
    タをアドレス再試行待ち行列に格納するアドレスバスの
    駆動モジュールとを備え、 前記データバス駆動モジュールおよびアドレスバス駆動
    モジュールは、あるバスモジュールによってアサートさ
    れたウェイトコマンドに関連づけされたバスウェイト期
    間の間、同時に、前記コンピュータバスのそれぞれのセ
    クションにデータ・シーケンスを送出し続けるよう動作
    し、 前記データバス駆動モジュールおよびアドレスバス駆動
    モジュールは、前記バスウェイト期間の終了後、それぞ
    れの再試行待ち行列に格納されたデータを、それぞれの
    バス上に再試行するよう動作し、 前記コンピュータバス上のアドレス・セクション上に送
    出されるデータが、前記コンピュータバスのデータ・セ
    クションに送出される関連データに、少なくとも1つの
    バスサイクルだけ先行するよう、前記コンピュータバス
    上のデータがパイプライン化されるデジタルコンピュー
    タ装置。
  2. 【請求項2】前記アドレス再試行待ち行列が、少なくと
    も4つの記憶場所を有する請求項1に記載のデジタルコ
    ンピュータ装置。
  3. 【請求項3】前記データ再試行待ち行列が、少なくとも
    4つの記憶場所を有する請求項1に記載のデジタルコン
    ピュータ装置。
  4. 【請求項4】前記ウェイトコマンドが、前記バスウェイ
    ト期間の開始より1バスサイクルだけ前にアサートされ
    る請求項1に記載のデジタルコンピュータ装置。
  5. 【請求項5】前記バスウェイト期間が、少なくとも4つ
    のバスサイクルを有する請求項1に記載のデジタルコン
    ピュータ装置。
  6. 【請求項6】前記駆動バスモジュールが、前記バスウェ
    イト期間が開始するよりも1またはそれ以上のバスサイ
    クル前に、バスウェイトコマンドをアサートする請求項
    1に記載のデジタルコンピュータ装置。
JP22379493A 1992-08-21 1993-08-17 バスウェイト機構を備えるデジタルコンピュータ装置 Expired - Fee Related JP3444933B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US933,434 1992-08-21
US07/933,434 US5339440A (en) 1992-08-21 1992-08-21 Wait state mechanism for a high speed bus which allows the bus to continue running a preset number of cycles after a bus wait is requested

Publications (2)

Publication Number Publication Date
JPH06168202A JPH06168202A (ja) 1994-06-14
JP3444933B2 true JP3444933B2 (ja) 2003-09-08

Family

ID=25463954

Family Applications (1)

Application Number Title Priority Date Filing Date
JP22379493A Expired - Fee Related JP3444933B2 (ja) 1992-08-21 1993-08-17 バスウェイト機構を備えるデジタルコンピュータ装置

Country Status (4)

Country Link
US (1) US5339440A (ja)
EP (1) EP0584498B1 (ja)
JP (1) JP3444933B2 (ja)
DE (1) DE69328462T2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5717872A (en) * 1996-01-11 1998-02-10 Unisys Corporation Flexible, soft, random-like counter system for bus protocol waiting periods
JP2000187981A (ja) 1998-12-22 2000-07-04 Mitsubishi Electric Corp 同期型半導体記憶装置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3781478A (en) * 1972-07-07 1973-12-25 Bell Telephone Labor Inc Multiplex communication system
US4281380A (en) * 1978-12-27 1981-07-28 Harris Corporation Bus collision avoidance system for distributed network data processing communications system
US4445214A (en) * 1980-05-30 1984-04-24 Harris Corporation Method of controlling message transmission sequence in multi station communication system
US4535404A (en) * 1982-04-29 1985-08-13 Honeywell Information Systems Inc. Method and apparatus for addressing a peripheral interface by mapping into memory address space
US4517670A (en) * 1983-06-15 1985-05-14 General Electric Company Preemptive bid communication system
US4807109A (en) * 1983-11-25 1989-02-21 Intel Corporation High speed synchronous/asynchronous local bus and data transfer method
US4891835A (en) * 1986-04-30 1990-01-02 Dictaphone Corporation Method and device for recording and replaying audio communications
JPS6353669A (ja) * 1986-08-22 1988-03-07 Hitachi Micro Comput Eng Ltd マイクロプロセツサ
US4845522A (en) * 1986-11-04 1989-07-04 Hiroyuki Kataoka Data communication system for camera system
US5155812A (en) * 1989-05-04 1992-10-13 Texas Instruments Incorporated Devices and method for generating and using systems, software waitstates on address boundaries in data processing
GB8808353D0 (en) * 1988-04-09 1988-05-11 Int Computers Ltd Data processing system
US5006982A (en) * 1988-10-21 1991-04-09 Siemens Ak. Method of increasing the bandwidth of a packet bus by reordering reply packets
US5101347A (en) * 1988-11-16 1992-03-31 National Semiconductor Corporation System for reducing skew in the parallel transmission of multi-bit data slices
US5237676A (en) * 1989-01-13 1993-08-17 International Business Machines Corp. High speed data transfer system which adjusts data transfer speed in response to indicated transfer speed capability of connected device
US5020020A (en) * 1989-04-07 1991-05-28 Digital Equipment Corporation Computer interconnect system with transmit-abort function
US5247654A (en) * 1989-05-19 1993-09-21 Compaq Computer Corporation Minimum reset time hold circuit for delaying the completion of a second and complementary operation
JPH03167649A (ja) * 1989-11-28 1991-07-19 Nec Corp ウエイト・サイクル制御装置
US5253355A (en) * 1990-11-13 1993-10-12 Compaq Computer Corporation Apparatus and method for developing wait states during addressing operation by using unused address bits

Also Published As

Publication number Publication date
EP0584498A1 (en) 1994-03-02
US5339440A (en) 1994-08-16
JPH06168202A (ja) 1994-06-14
DE69328462D1 (de) 2000-05-31
DE69328462T2 (de) 2001-01-25
EP0584498B1 (en) 2000-04-26

Similar Documents

Publication Publication Date Title
US9032166B2 (en) Memory arbitration system and method having an arbitration packet protocol
US5003463A (en) Interface controller with first and second buffer storage area for receiving and transmitting data between I/O bus and high speed system bus
JP2821552B2 (ja) 2経路データ転送装置
US6032211A (en) Method of mode control in a bus optimized for personal computer data traffic
US5261057A (en) I/O bus to system interface
US5919254A (en) Method and apparatus for switching between source-synchronous and common clock data transfer modes in a multiple processing system
EP0321628B1 (en) Shared memory interface for a data processing system
US5787475A (en) Controlled prefetching of data requested by a peripheral
US5574868A (en) Bus grant prediction technique for a split transaction bus in a multiprocessor computer system
US20020147875A1 (en) Response and data phases in a highly pipelined bus architecture
EP0380856A2 (en) Method and apparatus for interfacing a system control unit for a multi-processor
JPH0810445B2 (ja) 動的バス調停方法及び装置
US20020184453A1 (en) Data bus system including posted reads and writes
US5313591A (en) Computer bus arbitration for N processors requiring only N unidirectional signal leads
US6970962B2 (en) Transfer request pipeline throttling
JPH0969855A (ja) トランザクション・フローを制御する制御システムおよびその方法
US5937167A (en) Communication controller for generating four timing signals each of selectable frequency for transferring data across a network
US6199132B1 (en) Communication link with isochronous and asynchronous priority modes
JP3444933B2 (ja) バスウェイト機構を備えるデジタルコンピュータ装置
US7206904B2 (en) Method and system for buffering multiple requests from multiple devices to a memory
JPH0772886B2 (ja) データ処理システム
JPS6290742A (ja) 中央処理装置の性能を向上させる方法および装置
US5671370A (en) Alternating data valid control signals for high performance data transfer
JP3240863B2 (ja) 調停回路
KR100593787B1 (ko) 통신 버스에서의 차동 스트로빙 방법 및 장치

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080627

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090627

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090627

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100627

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100627

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110627

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees