(57)【特許請求の範囲】
【請求項１】
コンピュータシステムであって、
メモリシステムと、
入出力デバイスと、
アドレスライン、データライン、及び書き込み／読み出し指定ラインを含み、前記メモリシステムと前記入出力デバイスとに直接接続された共有バスと、
アドレス伝送シーケンスと、前記アドレス伝送シーケンスに続いて待ち時間の後に実行されるデータ伝送シーケンスとを発生するバスコントローラと、
前記入出力デバイスと前記バスコントローラとに直接接続された、入出力デバイスアドレスバスを含む制御ラインとを有することを特徴とし、
前記アドレス伝送シーケンスが、
上位アドレスビットが前記共有バス及び前記入出力デバイスアドレスバス上に供給される第１サイクルと、
下位アドレスビットが前記共有バスに供給され、所定のデータフィールドフォーマットの組を特定するマスクビットが前記入出力デバイスアドレスバス上に供給される第２サイクルとを含み、
前記バスコントローラは、書き込み肯定応答を受け取る前に、前記アドレス伝送シーケンスの間に書き込み要求のシーケンスを発生することを特徴とし、
前記データ伝送シーケンスが、前記メモリシステムまたは前記入出力デバイスによって選択的に行われる処理のための、前記共有バス上への複数のデータビットの送出を含んでいることを特徴とするコンピュータシステム。
【請求項２】
前記所定のデータフィールドフォーマットの組が、
（ａ）所定の数のデータビットから構成されるバイトと、
（ｂ）前記所定の数のデータビットの２倍の数のデータビットから構成される半ワードと、
（ｃ）２個の前記半ワードから構成されるワードと、
（ｄ）４個の前記半ワードから構成される倍ワードとを含むことを特徴とする請求項１に記載のコンピュータシステム。
【請求項３】
前記データ伝送シーケンスが、前記アドレス伝送シーケンスに続いてランダムな待ち時間の後に実行されることを特徴とする請求項１に記載のコンピュータシステム。
【請求項４】
前記入出力デバイスが、前記書き込み要求のシーケンスを保存し、続けて前記書き込み要求のシーケンスにおける各書き込み要求に対する書き込み肯定応答を供給することを特徴とする請求項１に記載のコンピュータシステム。
【請求項５】
前記入出力デバイスが、ランダムな待ち時間の後に前記書き込み肯定応答を供給することを特徴とする請求項４に記載のコンピュータシステム。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、コンピュータシステムに於けるデータ伝送に関する。特に、中央演算装置、システムメモリ、及び一つ以上のスレーブデバイス（ｓｌａｖｅ  ｄｅｖｉｃｅ）の間をつなぐバスに関する。このバスは、多重化アドレスサイクルを用いており、データ伝送肯定応答（ａｃｈｎｏｗｌｅｄｇｅｍｅｎｔ）によるオーバヘッドを小さくするためにパイプライン化された書き込み動作を実行する。
【０００２】
【従来の技術】
コンピュータシステムは、システムメモリと中央演算装置（ＣＰＵ）との間のデータ伝送を高速メモリバスによって行う。例えばプリンタドライバのようなスレーブデバイスとＣＰＵとの間の入力／出力（Ｉ／Ｏ）動作に対しては、通常、より速度の遅いＩ／Ｏバスが別に用いられる。従来のコンピュータシステムは、システムメモリとＣＰＵとの間のデータ伝送に対してもより速度の遅いＩ／Ｏバスを用いていた。この方法では、データのメモリからの読み出し及びメモリへの書き込みに要する時間が大幅に増加する。そのため、従来のコンピュータシステムは、システムメモリに対しては高速メモリバスを、スレーブデバイスに対しては別の低速Ｉ／Ｏバスを用いるようになった。このようなハードウェア上の冗長性をなくし、システムメモリとＣＰＵとの間のデータ伝送と、ＣＰＵとスレーブデバイスとの間の制御動作の両方に対して一つの高速メモリバスを用いることが強く望まれている。そのようなシステムは、システムメモリの再構成を必要としない。言い換えると、スレーブデバイスは、既存のシステムメモリアクセスアーキテクチャと共に動作する。
【０００３】
低速Ｉ／ＯバスによってＣＰＵとスレーブデバイスとの間のデータ伝送をするための従来の方法は、２つのステップからなる。最初に、ＣＰＵ（マスタデバイスとも呼ばれる）が、書き込み要求と、メモリマッピングされたＩ／Ｏアドレスと、データとをＩ／Ｏバス上に発生する。プリンタドライバのようなスレーブデバイスは、情報を読みとり、マスタデバイスへ肯定応答を送り返す。書き込み要求とデータ肯定応答との間の時間は、データ伝送肯定応答待ち時間（ｄａｔａ  ｔｒａｎｓｆｅｒ  ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ  ｌａｔｅｎｃｙ）となる。
【０００４】
従来のコンピュータバスの帯域幅は、このデータ伝送肯定応答待ち時間によって制限されている。データ伝送肯定応答待ち時間の問題は、図１を参照することによって、より理解されるだろう。まず、マスタデバイスから書き込み要求が送られる。データの受信を知らせる肯定応答信号がスレーブデバイスから数サイクル後に送られる。図１に示されているように、この肯定応答信号が受け取られた後にしか、マスタデバイスは次の書き込み要求を発生しない。同期式バスでは、このデータ伝送肯定応答待ち時間によって、一つの書き込み要求を送るのに必要なクロックサイクル数が２倍または３倍になる。
【０００５】
データ伝送肯定応答待ち時間に関連する帯域幅の消費を緩和するため、バーストモードデータ伝送が開発された。バーストモードデータ伝送では、大きなデータブロックに対して一つの肯定応答が送られる。従って、バーストモードデータ伝送によって、より大きな書き込みデータブロックに渡ってデータ伝送肯定応答待ち時間が減少される。
【０００６】
都合の悪いことに、バーストモードデータ伝送法にも関連する問題がある。まず、データ伝送肯定応答待ち時間が、第１図に示した従来のデータ伝送の場合と同じ長さである。別の問題点として、バーストモードデータ伝送は、常に同じ量のデータの伝送を必要とする。しばしば、送られるべきデータ量が、バーストモードデータ伝送に要求される量より少ないことがある。この問題は、バーストモードデータの未使用部分をマスクする特別な方法によって解決される。しかし、その結果、システムが複雑になりコストも上昇する。
【０００７】
バーストモードデータ伝送に関する他の問題は、固定バイトオーダ（ｆｉｘｅｄ  ｂｙｔｅ  ｏｒｄｅｒ）が必要とされることである。即ち、バーストサイズ内のアドレスのみしかバーストモードではアクセスできない。どのアドレスをどのようなオーダでもアクセスできることが望まれている。この機能はグラフィック応用に於いては特に重要である。例えば、ベクトルや三角形を描く場合、アドレスは局在化しているが、それらはランダムな方向となっている。
【０００８】
従って、データ伝送肯定応答待ち時間によるオーバヘッドを減少させるコンピュータシステムデータバスの提供が強く望まれている。そのようなシステムではバーストモードデータ伝送にまつわる問題を回避することができる。
【０００９】
【発明が解決しようとする課題】
本発明の目的は、データ伝送肯定応答待ち時間によるオーバヘッドを減少させると共に、複数バスによるハードウェアの冗長性を解消することのできるデータバスを備えたコンピュータシステム及びその動作方法を提供することである。
【００１０】
【課題を解決するための手段】
上述の課題を解決するため、本発明によれば、システムメモリとスレーブデバイスの両方に共有される多重化アドレスバスを備えたコンピュータシステムが提供される。また、そのようなコンピュータシステムの動作方法が提供される。
【００１１】
【作用】
本発明に於いて、スレーブデバイスは、多重化アドレスバス上で２サイクルのアドレスシーケンスを実行するためのバスコントローラが提供されることによって、既存のシステムメモリ構造に組み込まれる。各アドレスシーケンスは、上位アドレスビットがバス上に送出され、選択されたスレーブデバイスにラッチされる第１書き込みサイクルを含む。また、各アドレスシーケンスは、残りの下位アドレスビット及びバイトマスクビット（ｂｙｔｅ  ｍａｓｋ  ｂｉｔｓ）が選択されたスレーブデバイスに送られる第２サイクルを含む。その後のアドレスシーケンスでは、上位アドレスビットは、それらの内容が変化したときにのみ再送付される。従って、バスコントローラからスレーブデバイスへのほとんどのアドレスシーケンスは、一つのアドレスサイクルしか含まない。
【００１２】
本システムのバスコントローラは、最初のデータ書き込みに対する肯定応答が受信される前に、多重化された、またはパイプライン化されたバスへのデータ書き込みを行う。この方法では、最初のデータ書き込みに対するスレーブデバイスによる肯定応答は、通常、マスタデバイスによって次のデータ書き込みが行われるのと同じ時間に送られる。従って、データ伝送肯定応答は、データ書き込みとオーバラップする。このオーバラップ動作によって、書き込み動作の間バスが十分に使用され、それによってデータ帯域幅を改善することができる。本発明の特徴及び目的をより理解するため、添付の図面と共に、以下の詳細な説明を参照されたい。
【００１３】
【実施例】
本発明は、システムメモリとスレーブデバイスの両方に共有される多重化アドレスバスを備えたコンピュータシステムを指向している。このようにバスを一つにすることによって、ハードウェアの冗長性が減少される。更に、このシステムよって、スレーブデバイスは、システムメモリに用いられる大きなデータフィールド（本例では、６４ビット）にアクセスすることができる。本発明によれば、多重化アドレスバス上で２サイクルのアドレスシーケンスを実行するためのバスコントローラを提供することによって、スレーブデバイスは既存のシステムメモリ構造に組み込まれる。各アドレスシーケンスは、上位アドレスビットがバス上に送出され、選択されたスレーブデバイスにラッチされる第１書き込みサイクルを含む。また、各アドレスシーケンスは、残りの下位アドレスビット及びバイトマスクビットが選択されたスレーブデバイスに送られる第２サイクルを含む。その後のアドレスシーケンスでは、上位アドレスビットは、それらの内容が変化したときにのみ再送付される。従って、バスコントローラからスレーブデバイスへのほとんどのアドレスシーケンスは、一つのアドレスサイクルしか含まない。この特徴によってスレーブデバイスのデータ帯域幅が改善される。これは、メモリシステムに於ける高速ページモードと似ているが、スレーブデバイスに関する使用に於いては新規であると考えられる。
【００１４】
アドレスシーケンスの後、データの伝送がそれに続く。本発明のシステムは、アドレス情報の受信時間と、そのアドレス情報に対応するデータの受信時間との間に、ランダムな待ち時間を設けることができる。このランダムな待ち時間は、他のコンピュータの目的に対して活用することができる。アドレス動作とデータ書き込み動作の間にランダムな待ち時間を設けることができるという機能は新規であると考えられる。
【００１５】
また、本発明では、最初のデータ書き込みに対する肯定応答が受信される前の、多重化された、またはパイプライン化されたデータバスへのデータ書き込みを可能とすることによって、コンピュータシステムのデータバス上のデータ帯域幅が改善されている。この方法では、最初の書き込みに対するスレーブデバイスによる肯定応答は、通常、マスタデバイスによって次のデータ書き込みが行われるのと同じ時間に送られる。従って、データ伝送肯定応答は、データ書き込みとオーバラップする。このオーバラップ動作によって、書き込み動作の間バスが十分に使用され、それによってデータ帯域幅を改善することができる。
【００１６】
本発明の顕著な特徴について述べてきたが、今度は、本発明のより詳細な考察に移る。まず、本発明の多重化バスのアーキテクチャについて説明し、その後、本発明によるパイプライン化された書き込み動作の説明に移る。
【００１７】
図２は、本発明の多重化バス２２を組み込んだコンピュータシステム２０を図示している。多重化バス２２は、制御ライン２２Ａとアドレス／データライン２２Ｂとを含む。多重化バス２２は、一つ若しくは複数のスレーブデバイス２４をシステム２０内に組み込むために用いられる。スレーブデバイス２４は、バスコントローラ２６によって制御される。簡単のため、本発明は、一つのスレーブデバイス２４について説明されるが、理解されるように、複数のスレーブデバイスを使用することが可能である。
【００１８】
制御ライン２２Ａ、バスコントローラ２６、及びスレーブデバイス２４は、中央演算装置（ＣＰＵ）２８、メモリコントローラ３０、メモリ制御ライン３２、及びシステムメモリ３４を含む既存のシステム内に組み込まれている。アドレス／データライン２２Ｂは、システムメモリ３４によって用いられる既存のアドレス／データラインから構成されている。従って、理解されるように、本発明の多重化バスは既存のシステムメモリ３４の資源を活用すると共に、スレーブデバイス２４が使えるように更に制御ラインが付け加えられている。このようにして、スレーブデバイス２４は別々のアドレスバス及びデータバスを必要としなくなるため、システムのハードウェアの冗長性を減らすことができる。この特徴は、また、第２のバスがないことによってＣＰＵがサポートしなければならないピンの数が減少するという点からみても利点を有する。このことは、パッケージングに於ける重要な留意事項である。更に、スレーブデバイスは、アドレス／データライン２２Ｂの広い帯域幅のデータにアクセスすることができる。従って、グラフィックカードのようなデータスループットの高いデバイスをスレーブデバイス２４として用いることができる。
【００１９】
本発明は、既存のシステム資源を活用する多重化バス２２に向けられている。ＣＰＵ２８、メモリコントローラ３０、及びシステムメモリ３４を含む既存のシステム資源は、本分野では公知であり、詳細に述べる必要はない。更に、アドレス／データライン２２Ｂに対する、バスコントローラ２６とメモリコントローラ３０との間の競合（ｃｏｎｔｅｎｔｉｏｎ）は、いくつかの競合解消技法によって処理される。アドレス／データライン２２Ｂがシステムメモリ３４とスレーブデバイス２４とによって異なった時間に使用されるということが重要である。
【００２０】
アドレス／データライン２２Ｂは、既存のコンピュータバスの構成内にある。図２は、アドレス／データライン２２Ｂが、以下のラインを含んでいることを示している。即ち、ＡＢ［１０：０］、ＷＲＩＴＥ＿Ｌ、及びＤＢ［６３：０］を含んでいる。ＡＢ［１０：０］は１１本のアドレスラインがあることを示しており、ＤＢ［６３：０］は６４本のデータラインがあることを示しており、ＷＲＩＴＥ＿Ｌは、読み取りまたは書き込み動作を区別するのに用いられる。
【００２１】
本発明の多重化バスは、これらの既存のラインを用いると共に、スレーブデバイス２４がサービスを受けることができるように、１セットの制御ライン２２Ａを更に備えている。図２に於いて、制御ライン２２Ａは、ＡＥＮ（アドレスイネーブル）、ＡＢ［１４：１１］、Ｓ＿ＲＥＰＬＹ［１：０］、Ｐ＿ＲＥＰＬＹ［１：０］、ＬＯ＿ＡＤＤＲ（下位アドレス）、ＩＮＴ＿Ｌ、ＣＬＫ、ＲＥＳＥＴ＿Ｌ、及びＤＥＶ＿ＰＲＥＳ＿Ｌを含む。制御ライン２２Ａは、テスト信号線、電源及び接地線を含むが、それらは簡単のため省略されている。
【００２２】
多重化バスの各ラインの動作の特徴を、以下に述べる。ＡＥＮはアドレスイネーブル信号である。ＡＥＮが立っている（ハイ状態）とき、それはコマンド要求があると同時に、ＡＢバス、ＬＯ＿ＡＤＤＲ、及びＷＲＩＴＥ＿Ｌライン上に有効なデータがあることを示している。ＡＥＮ信号は、また、読み取りサイクルに許可を与える。アドレス／バイトマスクバスＡＢ［１４：０］は、データがどこに書き込まれるか、またはデータがどこから読み出されるかを示す多重化された物理アドレスを含んでいる。更に、それはバイトマスクを含んでいる。このアドレス／バイトマスクのデータは、２つのアドレスサイクルに渡って多重化されるが、それについて以下に述べる。
【００２３】
本システムの応答信号Ｓ＿ＲＥＰＬＹ［１：０］は、バスが選択されたということ及びアクセスの種類を示す。ポートの応答信号Ｐ＿ＲＥＰＬＹ［１：０］は、データが書き込みによって書き込みバッファから処理された（取り除かれた）こと、または読み取りデータが読み取りラッチ内で入手可能な状態にあることを示す。
【００２４】
下位アドレス信号ＬＯ＿ＡＤＤＲは、ＡＥＮ信号によって有効になる。この信号によって、コントローラがアドレスバス及び書き込みライン上に送っているのがどちらのアドレスサイクルであるかが決定される。０にされているときは、この信号は、アドレスサイクル０（上位アドレスビット）を示す。１にされているときは、この信号はアドレスサイクル１（下位アドレスビット及びバイトマスク）を示す。
【００２５】
バス割り込み信号ＩＮＴ＿Ｌは、スレーブデバイス２４が、何らかのイベントが発生し、サービスを要求するということをコントローラ２６に対して通知するのに用いられる。割り込み信号を立てる前に、スレーブデバイス２４は内部レジスタ内のビットを割り込みの原因を示すようにセットしなければならない。割り込みは、このビットを読んだＣＰＵ２８によって処理される。このビットは、それを読むことによって、またはＣＰＵ２８による外部書き込みによってクリアされる。いったんクリアされると、スレーブデバイス２４は割り込み信号を落とさなければならない。
【００２６】
信号ＤＥＶ＿ＰＲＥＳ＿Ｌは、デバイスの存在を認識するのに用いられる。より詳細には、このピンは、スレーブデバイス２４が、ある物理的位置に存在することを示すのに用いられる。
【００２７】
バスのリセット信号ＲＥＳＥＴ＿Ｌによって、電源投入若しくはシステムリセットの後、全てのスレーブデバイスが適切に初期化される。ＲＥＳＥＴ＿Ｌの要求を検出すると、スレーブデバイス２４は、初期化に必要とされる内部処理を全て行わなければならない。
【００２８】
ＷＲＩＴＥ＿Ｌ信号は、ＡＥＮによって有効にされ、またアドレスサイクル１の間のみ有効である。０にされているときは、この信号は書き込み要求を示す。１にされているときは、この信号は読み取り要求を示す。
【００２９】
データラインＤＢ［６３：０］は、ＣＰＵ２８とスレーブデバイス２４との間のデータ伝送に用いられる。これらのデータラインは、４つの基本データフォーマットをサポートする。即ち、（１）８個のデータビットから構成されるバイト、（２）１６個のデータビットから構成される半ワード、（３）３２個のデータビットから構成されるワード、（４）６４個のデータビットから構成される倍ワードをサポートする。簡便のため、データバスの最下位ビットはＤＢ［０］であり、最上位ビットはＤＢ［６３］とする。
【００３０】
多重化バス２２の上述したラインの各動作を表１にまとめる。
【００３１】
【表１】
0003703532.tif 000002
【００３２】
本発明の多重化バス２２は、上述した信号と以下の表２を参照して説明されるように、２サイクルのアドレスシーケンス動作を実行する。
【００３３】
【表２】
0003703532.tif 000003
【００３４】
表２に描かれている線は、信号の第１のセットは制御ライン２２Ａに加えられ、信号の第２のセットはアドレス／データライン２２Ｂに加えられるということを示している。サイクル０の間、スレーブデバイス２４は、上位アドレスビット（ＰＡ［２７］〜ＰＡ［１４］）をラッチする。これらのラッチされた値は、以後の各アドレスサイクルに於いて、下位アドレスビット（ＰＡ［１３］〜ＰＡ［３］）と組み合わせられる。次のアドレスサイクル０は、データが“ページ境界”を越え、上位アドレスビットの修正が必要とならない限り必要とされない。
【００３５】
サイクル１では、バイトマスク値がスレーブデバイス２４にラッチされることに注意されたい。これらのバイトマスク値は、データが６４ビットフィールドの中のどこにあるかを認識するのに用いられる。上述したように、データラインは４つの基本データフォーマットをサポートする。即ち、（１）８個のデータビットから構成されるバイト、（２）１６個のデータビットから構成される半ワード、（３）３２個のデータビットから構成されるワード、（４）６４個のデータビットから構成される倍ワードをサポートする。従来のバーストモードデータ伝送と異なり、本発明は下位アドレスの範囲内でどのようなアドレスのシーケンス（ｓｅｑｕｅｎｃｅ）も可能とする。このことは、データが逆のオーダで読み取り及び書き込みされなければならないような、オーバラップする複写動作に於いて有用である。また、アクセスが局在化されているがランダムな方向となるベクトル及び三角形グラフィック応用に於いても有用である。
【００３６】
多重化バス２２の２サイクルアドレスシーケンス動作は、図３を参照することにより、より詳細に理解される。図３は、アドレスイネーブル信号ＡＥＮによって、最初のサイクルのＡＢ［１４：０］への上位ビットの書き込みが始められることを示している。その後、下位アドレス信号ＬＯ＿ＡＤＤＲに応答して、下位ビットが書き込まれる。上位ビットは変化しないため、それらは再送付されず、下位ビットが続けて書き込まれていることに注意されたい。
【００３７】
図４は、多重化バス２２の２サイクルアドレスシーケンス動作に応じたスレーブデバイス２４による処理を示している。書き込みシーケンスの初期サイクルで、上位アドレスビットが送られる。詳述すると、上位アドレスビットの上位アドレス信号（ＡＢ［１４：１１］）は、制御ライン２２Ａを介してラッチ４０にラッチされ、上位アドレス信号の下位アドレスビット（ＡＢ［１０：０］）は、アドレス／データライン２２Ｂを介してラッチ４０にラッチされる。
【００３８】
アドレスシーケンスの次のサイクルでは、バイトマスクが、制御ライン２２ＡのラインＡＢ［１４：１１］によって、ラッチ４０に伝達され、上位アドレス信号の残りの下位アドレスビット（ＡＢ［１０：０］）が、アドレス／データライン２２Ｂによってラッチ４０へと伝えられる。こうして、全てのアドレスデータが得られる。更に、続いてアドレスの書き込みが開始されると、ラッチ４０内のデータは、例えば先入れ先出し（ＦＩＦＯ）データ記憶構造のような、標準的なデータ記憶構造４３へ送られる。図４には、一連のアドレスを記憶するためのアドレスＦＩＦＯ４３が図示されている。
【００３９】
各アドレスが書き込まれた後、そのアドレスに対応するデータがデータＦＩＦＯ４２に受信される。制御論理回路４４は、ラッチ４０内の受信されたアドレスとＦＩＦＯ４２内の受信されたデータを整合させる。アドレス情報には、適切なデータを選択するべく制御論理回路４４によって使用されるバイトマスクデータが含まれていることを想起されたい。メモリマッピングされたＩ／Ｏ４６を用いることにより、制御論理回路４４は、受信されたデータに関する選択された動作を実行する。
【００４０】
本発明の多重化バス２２については、ここまでに詳細に説明した。次に、本発明のパイプライン化された書き込み動作の説明に移る。
【００４１】
既述したように、スレーブデバイス２４は、伝送されたアドレス及びデータ情報を保持するアドレスＦＩＦＯ４３とデータＦＩＦＯ４２を備えている。スレーブデバイス２４に送られた書き込み要求は、アドレスＦＩＦＯ４３とデータＦＩＦＯ４２に保存される。続いて、制御論理回路が、それぞれのＦＩＦＯ４２、４３からデータを読み、バスコントローラ２６へ肯定応答信号を送る。従って、本発明に従うと、予め定められた数の書き込み要求が実行され、スレーブデバイス２４のアドレスＦＩＦＯ４３及びデータＦＩＦＯ４２に保持される。
【００４２】
この動作は、図３を参照して説明される。図３では、４つの書き込み要求（Ａ、Ｂ、Ｃ、Ｄ）がＳ＿ＲＥＰＬＹライン上に送出されている。既述したように、このＳ＿ＲＥＰＬＹ信号は、制御ライン２２Ａを介して直接スレーブデバイス２４に伝えられる。データラインの書き込みが、次に、データライン２２Ｂ（ＤＢ［６３：０］）上で各書き込み要求の１サイクル以内に開始される。制御ライン２２ＡのＰ＿ＲＥＰＬＹライン上の肯定応答は、書き込み動作とオーバラップする。例えば、書き込み要求Ｃは、書き込みデータＡに対する肯定応答と同じ時間に発生している。
【００４３】
従って、図３から理解されるように、一連の書き込み動作は、肯定応答が受信される前及び間に実行される。
【００４４】
この方法は、各書き込み動作の前に肯定応答が必要とされる従来技術と対照的である。従って、本発明によれば、パイプライン化された書き込み動作による広い帯域幅が達成される。各書き込み動作に対して肯定応答が送られることに注意されたい。バーストモードデータ伝送法では、複数の書き込みが送られるが、ひとまとめの書き込みに対して一つの肯定応答しか使用されない。本発明のパイプライン化された書き込み動作は、バーストモードデータ伝送に関わる欠点の多くを回避している。詳述すると、パイプライン化された書き込み動作では、一定量のデータを伝送する必要はなく、固定バイトオーダを必要とすることもなく、また、アドレスの範囲も制限されない。また、本発明に関して用いられる既述したようなマスクバイトによって、バーストモードデータ伝送で可能であったデータフォーマットより、はるかにフレキシブルなデータフォーマットが可能となっている。
【００４５】
既述したように、本発明は、受信されたアドレスと書き込みデータとを記憶するためのＦＩＦＯを各スレーブデバイス２４に備えさせることによって、実現することができる。図３に示した動作に対応するＦＩＦＯは、４つの書き込みを保持することができなければならない。本発明は、任意の数の書き込み動作に対応したデータ記憶構造を備えるようにすることができる。
【００４６】
バスコントローラ２６は、標準的に動作するが、書き込み動作の数を追うカウンタを含んでいる。カウンタは、予め定められた書き込みの制限値に達すると、制御回路を動作させ、バスコントローラ２６がＦＩＦＯ４２及び４３の容量を超えて書き込みを生成するのを防止する。このようにして、図３の例では、４つの書き込み動作の後、バスコントローラ２６はデータバス２２Ｂに対するデータ書き込み処理を中止している。
【００４７】
図３に於いて、ＥとＦは読み取りサイクルである。読み取りサイクルＥの前にスペースがあることに注意されたい。スレーブデバイス２４のＦＩＦＯ内の肯定応答がなされていない書き込みが一つまたは０の場合のみ、読み取りが開始されるようにシステム２０を設計することが望まれている。従って、Ｅの読み取り要求は、Ｃに対する肯定応答がＰ＿ＲＥＰＬＹライン上に送られた後に送出されている。システム２０は、肯定応答なされていない書き込みがＦＩＦＯ内に多数あっても読み取りを開始できるように設計することもできる。しかし、その数が大きすぎる場合、読み取り動作がシステム２０を長時間止めてしまう危険がある。
【００４８】
読み取り動作は、図３に示されているように、同じクロックサイクルに、ＡＥＮ信号が活性化され、“Ｒｅａｄ  Ｓｉｎｇｌｅ”コード（１１）がＳ＿ＲＥＰＬＹライン上に置かれ、サイクル１に於けるＡＢ［１４：０］への下位アドレスの書き込みが行われるときに実行される。スレーブデバイス２４の読み取りに対する応答の準備ができると、スレーブデバイス２４は、図４に示されているレジスタ４８を介してＤＢライン上にデータを送出すると同時に、“Ｒｅａｄ  Ｓｉｎｇｌｅ”コード（１１）をＰ＿ＲＥＰＬＹライン上に送出する。このモードは、２クロックサイクルに於ける最適な読み取り動作を行えるという利点を有する。
【００４９】
本発明のアーキテクチャを十分に活用するため、バスコントローラ２６とスレーブデバイス２４は、別のタイプの読み取り動作（本明細書中では分割読み取りと呼ぶ）をサポートすることが好ましい。この分割読み取りによって、読み取りデータを待っている間に、ＣＰＵ２８は、例えばメモリ書き込みなどの機能を実行することができる。
【００５０】
分割読み取りは、本発明に於いてはアドレス信号がデータ信号から切り離されているという事実を活用するものである。従って、本発明によれば、アドレスとデータを別の時間に送ることができる。ただし、アドレスが最初に送られなければならない。データは、その後、任意のクロックサイクルの後に送ることができる。
【００５１】
この動作は図５を参照することによりより詳細に理解される。分割読み取りサイクルは、アドレスサイクル１の間、Ｓ＿ＲＥＰＬＹ信号が立っていない場合にスレーブデバイス２４に認識される。アクセス対象のデータを準備すると、スレーブデバイス２４は、“Ｒｅａｄ  Ｓｉｎｇｌｅ”コード（１１）をＰ＿ＲＥＰＬＹライン上に送出する。コントローラ２６は、それに応答して、Ｓ＿ＲＥＰＬＹライン上に“Ｒｅａｄ  Ｓｉｎｇｌｅ”コード（１１）を出し、スレーブデバイス２４にデータバスが使用可能であることを伝える。スレーブデバイス２４は２クロックサイクル後にＤＢライン上にデータを送出し、データ伝送が終了する。
【００５２】
図５に示されているように、分割読み取りは、最短でも、５クロック（ＣＬＫ）サイクルを要する。サイクル０に於いて、必要ならば、バスコントローラ２６はＡＢ［１４：０］上にアドレスを送出してから、ＡＥＮを立ててもよい。第２のアドレスサイクル（アドレスサイクル１）では、バスコントローラ２６はＬＯ＿ＡＤＤＲを立てる。読み取りに対して準備ができると（ＷＲＩＴＥ＿Ｌが立っていないことで認識される）、スレーブデバイス２４は、Ｐ＿ＲＥＰＬＹに“Ｒｅａｄ  Ｓｉｎｇｌｅ”コード（１１）を立てる。読み取りデータを受け取る準備ができると、バスコントローラ２６は、Ｓ＿ＲＥＰＬＹを立てる。２クロックサイクル後、スレーブデバイス２４は要求された読み取りデータをＤＢ［６３：０］上に送出する。
【００５３】
上述の本発明の特定の実施例に関する説明は、例示及び説明を目的としたものであり、網羅的であることを意図したものでも、あるいは本発明を説明されたもののみに限定することを意図したものでもなく、上述の観点から様々な変形変更が可能であることは明らかであろう。例えば、本発明は複数のスレーブデバイスに対して適用可能であることを思いつくであろう。また、バスコントローラ２６は、ＣＰＵ２８内に収容されている必要もない。これらの実施例は、本発明の趣旨及びその実際の応用を最もよく説明し、当業者が、考えられる特定の使用に適合するように、最もよく本発明と様々な変形を伴う様々な実施例を利用する事ができるように記述されたものである。本発明の範囲は特許請求の範囲によって画定される。
【００５４】
【発明の効果】
本発明によると、システムメモリとスレーブデバイスの両方に共有される多重化アドレスバスを備えたコンピュータシステムによって、データ伝送肯定応答をデータ書き込みとオーバラップさせることができ、それによって、データ伝送肯定応答待ち時間によるオーバヘッドを小さくすることができる。また、バスを一つにできるためハードウェアの冗長性も減少される。
【図面の簡単な説明】
【図１】図１は、従来の、データ伝送肯定応答待ち時間の問題を示すのに用いられるタイミング信号の組を示す図である。
【図２】本発明によるコンピュータシステムの概念図である。
【図３】本発明のパイプライン化された書き込み動作と多重化されたアドレスを例示するタイミングダイヤグラムである。
【図４】図４は、本発明に従って使用し得るスレーブデバイスを示す図である。
【図５】図５は、本発明の分割読み取り動作を示すためのタイミングダイヤグラムである。
【符号の説明】
２０  コンピュータシステム
２２  多重化バス
２２Ａ  制御ライン
２２Ｂ  アドレス／データライン
２４  スレーブデバイス
２６  バスコントローラ
２８  中央演算装置（ＣＰＵ）
３０  メモリコントローラ
３２  メモリ制御ライン
３４  システムメモリ
４０  ラッチ
４２  データＦＩＦＯ
４３  アドレスＦＩＦＯ
４４  制御論理回路
４６  メモリマッピングされたＩ／Ｏ
【図１】
0003703532.tif 000004
【図２】
0003703532.tif 000005
【図３】
0003703532.tif 000006
【図４】
0003703532.tif 000007
【図５】
0003703532.tif 000008