(57)【特許請求の範囲】
【請求項１】
システムメモリとＰＣＩマスタ装置との間のデータの転送を最適化するための方法であって、前記ＰＣＩマスタはＰＣＩバスを介してＰＣＩブリッジに接続し、ＰＣＩブリッジはＣＰＵローカルバス上にあり、システムメモリはメモリバスを介してメモリコントローラに接続し、前記メモリコントローラもまたＣＰＵローカルバス上にあり、前記方法は
（ａ）  ＰＣＩマスタによってＰＣＩバスの所有権を主張するステップと、
（ｂ）  ＰＣＩマスタによってＰＣＩバス上のアドレス信号を駆動するステップと、
（ｃ）  ＰＣＩブリッジによってＣＰＵローカルバス上のアドレスストローブ信号を発生し、前記アドレス信号をＣＰＵローカルバスを介して駆動するステップと、
（ｄ）  ＰＣＩブリッジによって待ち信号を発生して、ＰＣＩマスタがデータトランザクションのデータ段階を直ちに完了することができないことを示すステップと、
（ｅ）  メモリコントローラによってアドレス信号をデコードするステップと、
（ｆ）  前記メモリコントローラによってシステムメモリ内の適切なページを開くステップと、
（ｇ）  ＰＣＩマスタがデータ段階を完了する準備ができたという指示に応答して待ち信号をデアサートするステップと、
（ｈ）  メモリコントローラによってデータトランザクションを完了するステップとを含む、方法。
【請求項２】
システムメモリとＰＣＩマスタ装置との間のデータの転送を最適化するための方法であって、前記ＰＣＩマスタはＰＣＩバスを介してＰＣＩブリッジに接続し、ＰＣＩブリッジはＣＰＵローカルバス上にあり、システムメモリはメモリバスを介してメモリコントローラに接続し、前記メモリコントローラもまたＣＰＵローカルバス上にあり、前記方法は
（ａ）  ＰＣＩマスタによってＰＣＩバスの所有権を主張するステップと、
（ｂ）  ＰＣＩマスタによってＰＣＩバス上のアドレス信号を駆動するステップと、
（ｃ）  ＰＣＩブリッジによってＣＰＵローカルバス上のアドレスストローブ信号を発生し、前記アドレス信号をＣＰＵローカルバスを介して駆動するステップと、
（ｄ）  ＰＣＩブリッジによってメモリ待ち信号を発生して、ＰＣＩマスタがトランザクションのデータ段階を直ちに完了することができないことを示すステップと、
（ｅ）  前記メモリ待ち信号を前記メモリコントローラに与えるステップと、
（ｆ）  メモリコントローラによってアドレス信号をデコードするステップと、
（ｇ）  前記メモリ待ち信号がアサートされている間に、かつ前記ＰＣＩマスタがデータトランザクションを完了する準備ができるより先に、前記メモリコントローラによってシステムメモリ内の適切なページを開くステップと、
（ｈ）  ＰＣＩマスタがデータ段階を完了する準備ができたという指示に応答して待ち信号をデアサートするステップと、
（ｉ）  メモリコントローラによってデータトランザクションを完了するステップとを含む、方法。
【請求項３】
適切なメモリページを開く前記ステップ（ステップ（ｇ））が、
（ｇ）（１）  行アドレス信号をシステムメモリに与えるステップと、
（ｇ）（２）  適切な行アドレスストローブ（ＲＡＳ）ラインをアサートして行アドレス信号を可能化するステップとを含む、請求項２に記載の方法。
【請求項４】
メモリコントローラがまた列アドレスを与え、適切な列アドレスストローブ（ＣＡＳ）信号をアサートして、メモリ待ち信号がまだアサートされている一方で読出サイクル中に前記システムメモリからデータを駆動する、請求項３に記載の方法。
【請求項５】
前記メモリ待ち信号がアサートされている間にリフレッシュサイクルが行なわれる、請求項２に記載の方法。
【請求項６】
データトランザクションを完了する前記ステップ（ステップ（ｉ））が、
（ｉ）（１）  適切な列アドレスストローブ（ＣＡＳ）信号をアサートしている間に前記システムメモリに列アドレス信号を与えて、待ち信号がまだアサートされている間に読出サイクル中に前記システムメモリからデータを送り出すステップと、
（ｉ）（２）  ＰＣＩブリッジにＢＲＤＹ＃をアサートするステップとを含む、請求項２に記載の方法。
【請求項７】
前記ＰＣＩブリッジが、前記メモリコントローラからのＢＲＤＹ＃に応答してＰＣＩマスタにＴＲＤＹ＃をアサートする、請求項６に記載の方法。
【請求項８】
ＴＲＤＹ＃信号に応答して前記ＰＣＩマスタがＩＲＤＹ＃をアサートしなければ、前記ＰＣＩブリッジが前記メモリ待ち信号をアサートする、請求項７に記載の方法。
【請求項９】
書込サイクル中にＰＣＩマスタ装置とシステムメモリとの間のデータの転送を最適化する方法であって、前記ＰＣＩマスタはＰＣＩバスを介してＰＣＩブリッジに接続し、ＰＣＩブリッジはＣＰＵローカルバス上にあり、システムメモリはメモリバスを介してメモリコントローラに接続し、前記メモリコントローラもまたＣＰＵローカルバス上にあり、前記方法は
（ａ）  ＰＣＩバスの所有権をＰＣＩマスタが得るステップと、
（ｂ）  ＰＣＩマスタがＰＣＩバスを介してバーストサイクルを送るステップと、
（ｃ）  前記ＰＣＩブリッジが第１のアドレス信号および第１のデータ信号を前記バーストサイクルから受取り、前記ＣＰＵローカルバスの所有権を得るステップと、
（ｄ）  前記ＰＣＩブリッジが前記第１のアドレス信号および前記第１のデータ信号を前記ＣＰＵローカルバスを介して送るステップと、
（ｅ）  前記メモリコントローラが前記第１のデータ信号を第１のアドレス信号に対応する前記システムメモリ内のアドレスに書込み、前記ＰＣＩブリッジにメモリレディ信号を発行するステップと、
（ｆ）  前記メモリコントローラからの前記レディ信号に応答して、前記ＰＣＩブリッジが前記ＰＣＩマスタにターゲットレディ信号を発行するステップと、
（ｇ）  前記ＰＣＩマスタからのイニシエータレディ信号がない状態で、前記ＰＣＩブリッジがメモリ待ち信号をメモリコントローラに発生し、第２のアドレス信号を前記メモリコントローラに与えるステップと、
（ｈ）  前記システムメモリコントローラが第２のアドレス信号をデコードして、行アドレスおよび列アドレスを発生するステップと、
（ｉ）  前記システムメモリコントローラが前記第２のアドレス信号の行アドレスを前記システムメモリに送り、前記システムメモリに行アドレスストローブ（ＲＡＳ）信号をアサートして、前記メモリ待ち信号がアサートされている間に、かつ前記ＰＣＩマスタが第２のデータ信号を前記ＰＣＩバスを介して送る準備ができるより先に、前記システムメモリ内の適切なページを開くステップとを含む、方法。
【請求項１０】
第１のアドレス信号がシステムメモリ内にある場合に、前記メモリコントローラがステップ（ｄ）に応答してＭＥＭＨＩＴ信号を発生する、請求項９に記載の方法。
【請求項１１】
（ｊ）ＰＣＩマスタが第２のデータ信号を前記ＰＣＩバスを介して駆動したことを示す前記ＰＣＩマスタからのイニシエータレディ信号に応答して待ち信号をデアサートするステップと、
（ｋ）  前記システムメモリコントローラが前記第２のアドレス信号の列アドレスを前記システムメモリに送り、適切な列アドレスストローブ（ＣＡＳ）信号を前記システムメモリにアサートして、前記第２のデータ信号が前記システムメモリに書込まれることを可能にするステップとをさらに含む、請求項１０に記載の方法。
【請求項１２】
待ち信号がアサートされている間に、前記システムメモリのバンクに対してリフレッシュサイクルが行なわれる、請求項９に記載の方法。
【請求項１３】
待ち状態がアサートされている間に、メモリ内の適切なページが開いているメモリの同じバンクに対して、リフレッシュサイクルが行われる、請求項１０に記載の方法。
【請求項１４】
リフレッシュサイクルがＲＡＳ前ＣＡＳシーケンスを含む、請求項１２に記載の方法。
【請求項１５】
メモリの各バンクが独立してリフレッシュされる、請求項１２に記載の方法。
【請求項１６】
読出サイクル中にＰＣＩマスタ装置とシステムメモリとの間のデータの転送を最適化する方法であって、前記ＰＣＩマスタはＰＣＩバスを介してＰＣＩブリッジに接続し、ＰＣＩブリッジはＣＰＵローカルバス上にあり、システムメモリはメモリバスを介してメモリコントローラに接続し、前記メモリコントローラもまたＣＰＵローカルバス上にあり、前記方法は
（ａ）  ＰＣＩマスタがＰＣＩバスの所有権を得るステップと、
（ｂ）  ＰＣＩマスタがＰＣＩバスを介して読出されるべき前記システムメモリ内の第１のアドレス信号を送るステップと、
（ｃ）  前記ＰＣＩブリッジが前記第１のアドレス信号を受取り、前記ＣＰＵローカルバスの所有権を得るステップと、
（ｄ）  前記ＰＣＩブリッジが前記ＣＰＵローカルバスを介して前記第１のアドレス信号を送るステップと、
（ｅ）  前記メモリコントローラが前記第１のアドレス信号を受取り、第１のアドレス信号に対応する前記システムメモリ内の第１のデータ信号を読出し、前記第１のデータ信号を前記ローカルバスを介して送り、メモリレディ信号を前記ＰＣＩブリッジに発行するステップと、
（ｆ）  前記ＰＣＩブリッジが、前記メモリコントローラからの前記メモリレディ信号に応答して、前記ＰＣＩマスタにターゲットレディ信号を発行するステップと、
（ｇ）  前記ＰＣＩマスタからのイニシエータレディ信号がない状態で、前記ＰＣＩブリッジがメモリ待ち信号をメモリコントローラに発生し、第２のアドレス信号を前記メモリコントローラに与えるステップと、
（ｈ）  前記メモリコントローラが第２のアドレス信号をデコードして行アドレスおよび列アドレスを発生するステップと、
（ｉ）  前記メモリコントローラが前記第２のアドレス信号の行アドレスを前記システムメモリに駆動し、行アドレスストローブ（ＲＡＳ）信号を前記システムメモリにアサートして、前記メモリ待ち信号がアサートされている間に、かつ前記ＰＣＩマスタが第２のデータ信号を受取る準備ができるより先に、メモリ内の適切なページを開くステップとを含む、方法。
【請求項１７】
第１のアドレス信号がシステムメモリ内に位置するとき、前記メモリコントローラがステップ（ｄ）に応答してＭＥＭＨＩＴ信号を発生する、請求項１６に記載の方法。
【請求項１８】
（ｊ）  前記メモリコントローラが前記第２のアドレス信号の列アドレスを前記システムメモリに駆動し、列アドレスストローブ（ＣＡＳ）を前記システムメモリにアサートして、前記第２のアドレス信号に対応する前記第２のデータ信号を前記ＣＰＵローカルバスへと駆動するステップをさらに含む、請求項１７に記載の方法。
【請求項１９】
（ｋ）  ＰＣＩマスタが前記第１のデータ信号を受取る準備ができたことを示す前記ＰＣＩマスタからのイニシエータレディ信号に応答して、待ち信号をデアサートするステップと、
（ｌ）  前記メモリコントローラがメモリレディ信号を発行するステップと、
（ｍ）  前記ＰＣＩブリッジが前記ＰＣＩマスタにターゲットレディ信号をアサートし、別の読出サイクルを始めるステップとをさらに含む、請求項１８に記載の方法。
【請求項２０】
メモリ待ち信号がアサートされている間に前記システムメモリのバンクに対してリフレッシュサイクルが行なわれる、請求項１６に記載の方法。
【請求項２１】
コンピュータ内のメモリアクセス時間を最適化するためのシステムであって、
データを記憶し、アクセスするためのシステムメモリと、
前記システムメモリに接続されて前記システムメモリへのアクセスを制御するメモリコントローラユニットと、
ＣＰＵローカルバスを介して前記メモリコントローラユニットに接続されるＰＣＩブリッジと、
前記ＰＣＩブリッジにＰＣＩバスを介して接続される周辺ＰＣＩマスタ装置とを含み、前記ＰＣＩマスタ装置は、システムメモリへのデータトランザクションを完了するようにＰＣＩバスの所有権を主張し、前記ＰＣＩブリッジは、ＰＣＩマスタがＰＣＩバスの所有権を主張するときにＣＰＵローカルバスの所有権を主張し、さらに
前記ＣＰＵローカルバスに接続されるＣＰＵコアを含み、
前記ＰＣＩブリッジはメモリコントローラに対してメモリ待ち信号をアサートし、実質的に同時に、ＰＣＩマスタ装置がデータ転送を完了するのが遅れる場合に、メモリコントローラユニットにＣＰＵローカルバスを介して次のデータトランザクションに対応する前記システムメモリ内のアドレスを駆動し、
前記メモリ待ち信号がアサートされている間に、かつ前記ＰＣＩマスタがデータ転送の完了に遅れている間に、前記メモリコントローラが前記システムメモリ内の適切なページを開く、システム。
【請求項２２】
前記システムメモリがＤＲＡＭチップの４つの別個のバンクを含む、請求項２１に記載のシステム。
【請求項２３】
約１５．６２５／４マイクロ秒ごとにＤＲＡＭチップのバンクのためのリフレッシュリクエストサイクルを発生するシステムタイマをさらに含む、請求項２２に記載のシステム。
【請求項２４】
リフレッシュサイクルが約１５．６２５マイクロ秒ごとに前記ＤＲＡＭチップの各バンクにおいて発生される、請求項２３に記載のシステム。
【請求項２５】
リフレッシュサイクルが４つのバンクで時間をずらして行なわれる、請求項２４に記載のシステム。
【請求項２６】
データがＰＣＩバスを介して送られるときに前記ＰＣＩマスタがレディ信号を発行しなければ、前記ＰＣＩブリッジが読出サイクルにおいて前記メモリ待ち信号をアサートする、請求項２１に記載のシステム。
【請求項２７】
ＰＣＩブリッジがレディ信号を発行した後、フレームサイクル信号がアサートされたままの状態で前記ＰＣＩマスタがレディ信号を発行しなければ、前記ＰＣＩブリッジが前記待ち信号をアサートする、請求項２１に記載のシステム。
【発明の詳細な説明】
【０００１】
【発明の背景】
本発明は一般にメモリユニットとコンピュータシステム内の周辺構成要素との間のデータの転送に関する。より特定的には、本発明は、中央処理装置（ＣＰＵ）の外部にある構成要素と主メモリとの間のトランザクションを速めるためのシステムに関する。さらに特定的には、本発明は主メモリと周辺マスタコントローラとの間のデータの転送を最適化するためのシステムに関する。
【０００２】
【関連技術の説明】
データは一般に２つのステップでメモリとコンピュータシステム内の他の構成要素との間で転送される。まずアクセスする構成要素が、所望のメモリ位置のアドレスを表わす信号をアドレスバスを介して発生する。次のまたは後続のクロックサイクルで、その構成要素がデータバスを介して実際にデータをアドレス指定したメモリ位置に、またはそこから転送する。ほとんどのコンピュータシステムでは、メモリへのデータアクセスに要するクロックサイクル数は、メモリにアクセスする構成要素とメモリユニットの速度とに依存する。
【０００３】
メモリ回路の速度は２つのタイミングパラメータに基づく。第１のパラメータはメモリアクセス時間であり、これは、メモリアドレスを設定し、データバスを介して、またはそれからデータを生成する、または捕捉するのにメモリ回路が必要とする最小の時間である。第２のパラメータはメモリサイクル時間であり、これはメモリ回路への２つの連続するアクセス間に必要な最小の時間である。典型的にコンピュータシステムの主ワーキングメモリを構成するのに用いられるダイナミックランダムアクセスメモリ（ＤＲＡＭ）回路では、サイクル時間は典型的にはアクセス時間の約２倍である。ＤＲＡＭ回路は一般に、約６０−１００ナノ秒の範囲のアクセス時間を有し、サイクル時間は１２０−２００ナノ秒である。ＤＲＡＭ回路内の連続メモリアクセスに要する余分な時間が必要なのは、内部メモリ回路がデータ信号を正確に生成するためにリチャージ（またはプリチャージ）するためのさらなる時間を必要とするためである。したがって、１０Ｍｈｚで動作するマイクロプロセッサは、このようなマイクロプロセッサにおけるクロックパルスが１００ナノ秒ごとに発生されるにもかかわらず、同じ１００ナノ秒チップに対して連続して（すなわち隣接するクロックパルスで）２つのメモリアクセスを行なうことはできない。ＤＲＡＭチップはそのチップ内の次のアドレスにアクセスし得る前に安定するための時間を必要とする。結果として、このような状態ではマイクロプロセッサはＤＲＡＭ回路内のデータへのアクセスを得るまでに１つ以上のループサイクルを行なわなくてはならない。典型的には、メモリコントローラユニット（ＭＣＵ）がコンピュータシステムの一部として設けられて、ＤＲＡＭ主メモリへのアクセスを調整する。
【０００４】
サイクルおよびアクセス時間によって起こる遅延に加えて、ＤＲＡＭ回路はまた、記憶データの整合性を守るために周期的なリフレッシュサイクルを必要とする。これらのサイクルはメモリアクセスに利用可能な時間の約５〜１０％を消費し、典型的には４ミリ秒ごとに２５６のリフレッシュサイクルを必要とする。ＤＲＡＭ回路が周期的にリフレッシュされなければ、ＤＲＡＭ回路内に記憶されたデータは失われてしまう。
【０００５】
これらの制約のために、ＤＲＡＭ回路で構成されるメモリは、常に中央処理装置（ＣＰＵ）または周辺マスタコントローラによって割当てられた時間間隔内でメモリアクセスに応答できるわけではない。この場合、データバスを介してデータの準備ができるまで、またはデータバスからのデータがメモリ回路によって記憶されるまでに補足プロセッササイクルまたは待ち状態が必要であることを外部回路がＣＰＵ（または周辺マスタコントローラ）に伝えなくてはならない。ＣＰＵの処理を遅くするだけでなく、待ち状態は一般にＣＰＵローカルバスの使用を必要とし、それによって他のシステム回路によるバスへのアクセスを制限してしまう。
【０００６】
プロセッサの動作速度が上昇し、新世代のプロセッサが開発されるにつれて、これらの新しいプロセッサの能力をフルに利用するには待ち状態を最小にすることが有利である。しかしながら、パーソナルコンピュータにおいてこれらの新世代の高速プロセッサの最大の利点を得るのは、ＤＲＡＭ主メモリ等のシステム内の他の構成要素のサイズおよび電力の制約のために、特に難しい。技術的または科学的計算や計算機援用設計のプログラム等を伴うメモリ集約型のアプリケーションでは、メモリアクセス時間がシステムの動作を大きく遅延させるおそれがある。
【０００７】
図１は先行技術のコンピュータシステム１０のブロック図であり、マイクロプロセッサまたは中央処理装置（ＣＰＵ）１２と、ＣＰＵ１２に結合されるＣＰＵローカルバス１４と、双方ともＣＰＵローカルバス１４に結合されるメモリコントローラ１６およびローカルバス周辺装置１８とを含む。メモリバス１５を介してメモリコントローラ１６に結合されるシステムメモリ１７も示される。さらに、ＰＣＩ標準バス２０がＰＣＩバスブリッジ２２を介してＣＰＵローカルバス１４に結合する。ＰＣＩバス２０に結合されるＰＣＩ周辺装置２８が示される。ＰＣＩ周辺装置２８は、ＰＣＩマスタサイクルの間にＰＣＩバスの所有権を主張できるＰＣＩマスタコントローラを含んでもよい。
【０００８】
図１に示されるマイクロプロセッサ１２はモデル８０４８６マイクロプロセッサを含んでもよく、ＣＰＵローカルバス１４は８０４８６スタイルローカルバスを含んでもよい。ＣＰＵローカルバス１４は、データラインの組Ｄ［３１：０］、アドレスラインの組Ａ［３１：０］、および制御ラインの組（特定的には図示せず）を含む。８０４８６ＣＰＵローカルバス１４のプロトコルおよび種々のバスサイクルに関する詳細は当該分野では周知であり、多くの刊行物に見られるのでここでは詳細には議論しない。ＣＰＵ１２、メモリコントローラ１６およびＰＣＩバスブリッジ２２は従来は別個の集積回路チップ上に製造されていた。しかしながら、コンピュータシステムにおける最近の傾向としては、ＣＰＵコアが単一の集積プロセッサチップ上に種々の周辺装置と組合されている。例示的な集積プロセッサチップは、内部ＣＰＵローカルバスと外部ＰＣＩバスとの間の高性能インタフェースを与えるバスブリッジを含む。外部ＰＣＩバスに高性能インタフェースを与えることによって、外部データ転送に関して比較的高性能の特性を達成することができる。
【０００９】
ＰＣＩバスブリッジ２２は、ＣＰＵローカルバス１４とＰＣＩバス２０との間の標準的なインタフェースを与える。このように、ＰＣＩバスブリッジ２２は２つのバス間のデータ、アドレスおよび制御信号の転送を調整する。ＰＣＩバス２０は典型的には、マルチプレクスされるデータ／アドレスラインを含む高性能周辺バスを含み、これはバーストモードデータ転送をサポートする。
【００１０】
バーストモードの特徴は、ＰＣＩバス上のバーストサイクルを介して高速で連続する記憶場所への読出または書込を可能にする。メモリからの読出または書込のための通常の手順では、第１のクロックサイクルでＣＰＵがアドレスバスを介してアドレス信号を発生し、後続のクロックサイクルでデータがシステムメモリ１７へ、またはそれから転送される。データバスは３２ビット幅なので、合計４つの８ビットバイトのデータが２クロックサイクルごとにＣＰＵによって読出されるか、または書込まれることが可能である。データバスを介して転送される４つの８ビットバイトの各組は、「倍長語」と称する。バーストモードでは、アドレス段階に干渉することなく後続のクロックサイクルの間にさらなるシーケンシャルな倍長語を転送できる。たとえば、開始アドレスのみがアドレスバスを介して送られるので、合計４つの倍長語が５クロックサイクルだけを用いてＣＰＵに読出され、次に第１の倍長語データが第２のサイクルの間に読出され、第３のサイクルの間に次の倍長語データが読出されるといった具合である。これによってバーストモード動作は比較的速いデータ転送速度を与える。
【００１１】
認められるように、ＰＣＩ周辺装置２８はＰＣＩマスタコントローラを含んでもよい。従来の技術に従えば、ＰＣＩマスタはＰＣＩバスの「所有権」をリクエストしてＰＣＩバス２０を介したトランザクションを制御することができる。当業者には理解されるように、コンピュータシステム内に複数のＰＣＩマスタが含まれてもよく、このいずれもＰＣＩバス２０の所有権をリクエストできる。ＰＣＩマスタはＰＣＩバス２０内の制御ラインを介してＰＣＩブリッジ２２にＰＣＩバス２０の所有権に対するリクエストを出す。ＰＣＩバスブリッジ２２は典型的には、種々のＰＣＩマスタ間、およびＣＰＵ１２等の内部マスタと他の内部マスタ間の所有権のリクエストを調停する。典型的には、種々のマスタの各々に優先権のランクが割当てられてその優先権を決定する際にバスブリッジ２２を補助する。
【００１２】
ＰＣＩブリッジ２２はＰＣＩマスタとしても、ローカルバスマスタとしても動作し得る。ＣＰＵ１２が集積プロセッサ外部のＰＣＩ「スレーブ」にアクセスすると、ＰＣＩブリッジ２２はＰＣＩマスタとして動作する。典型的には、ＰＣＩブリッジ２２のこれらのＰＣＩマスタサイクルの間に、ＣＰＵ１２または別のローカルバスマスタ（たとえばＤＭＡコントローラ）がＣＰＵローカルバス１４を所有し、ＰＣＩブリッジ２２がＰＣＩバス２０を所有する。逆に、ＣＰＵローカルバス１４上にある装置に対するＰＣＩ外部マスタアクセスに関しては、ＰＣＩブリッジ２２は外部マスタに関してターゲットまたはスレーブとして機能し、ＣＰＵローカルバス１４のマスタとして機能する。
【００１３】
結果として、ＰＣＩマスタ（すなわち周辺装置２８等）がＰＣＩバス２０の所有権を得て、メモリコントローラ１６等のＣＰＵローカルバス上にある装置に対応するサイクルを始めると、ＰＣＩブリッジ２２はローカルバス１４の所有権を得る。この期間中に、ＣＰＵ１２および他の内部マスタはローカルバス１４を用いることはできない。これによって、上述のように主メモリ１７内のデータへのアクセスは少なくとも数クロックサイクルを要するので、システムの動作にかなりの遅延が生じる恐れがあり、ＣＰＵ１２等の他のシステム資源は、外部マスタから／にデータがアクセスされている間、待たなくてはならない。ＰＣＩマスタは非常に遅い速度でデータを転送し得るし、かつバーストデータ転送の実行中に複数の倍長語を転送し得ることがこの問題をさらに大きくしている。結果として、ＰＣＩマスタが低速でシステムメモリ１７にアクセスすると、システムメモリバスおよびＣＰＵローカルバスのバンド幅が制限される。
【００１４】
【発明の概要】
上で概略的に述べた問題は、周辺ＰＣＩマスタ装置から主メモリへのデータアクセスを調整するＰＣＩブリッジを含むコンピュータシステムを提供することによって、大部分解決される。ＰＣＩバスブリッジは、ＰＣＩマスタによって実行されるバーストメモリサイクルをＣＰＵローカルバス上の単一のメモリサイクルに変換する。ＰＣＩマスタが書込サイクルの間にデータを送信する、または読出サイクルの間にデータを受信する準備ができていない場合にＣＰＵローカルバスを介して次のデータトランザクションのメモリアドレスを駆動することによってデータトランザクションを最適化するようにＰＣＩブリッジが機能する。メモリコントローラユニット（ＭＣＵ）はＣＰＵローカルバスからメモリアドレスを受取り、これが有効メモリ領域内にあることを判断し、アドレス信号を行アドレス信号および列アドレス信号にデコードする。行アドレス信号は直ちにＤＲＡＭメモリに適切な行アドレスストローブ信号（ＲＡＳ）とともに入力され、アクセスされるメモリのページおよびバンクを示す。ＤＲＡＭメモリは、メモリの適切なページを開くことによって応答し、ＰＣＩマスタがデータを与えるまたは受取る準備ができるまでＭＣＵが待たなくてはならなければＤＲＡＭページを開くのに必要であろうプリチャージ時間およびアクセス時間を節約する。
【００１５】
ＰＣＩマスタが書込データを与えるのをＰＣＩブリッジが待つ、またはＰＣＩマスタが読出データを受取る準備ができたことを示す（バースト書込および読出に関する第１のデータトランザクションの後）のを待つ間、ＰＣＩブリッジはＭＥＭＷＡＩＴ信号をＭＣＵに対してアサートして、データがまだ書込まれるかまたは読出される準備ができていないことを示す。しかしながら、このＭＥＭＷＡＩＴ期間の間であり、かつＰＣＩがローカルバスの所有権を有している間、ＭＣＵは次のアドレス信号を用いてメモリの適切なページを開き、後続のデータ転送を速める。マスタからデータがＰＣＩブリッジによって受取られると（またはマスタがデータを読出す準備ができたことを示すと）、ＰＣＩブリッジはＭＥＭＷＡＩＴ信号をデアサートし、ＭＣＵが列アドレスストローブ（ＣＡＳ）信号をアサートして、データ転送を行なう。
【００１６】
ＰＣＩマスタが次の書込データを送る、または現在ＰＣＩブリッジによってラッチされているデータを読出す準備ができたことを示すのをＰＣＩブリッジが待つ間、ＭＥＭＷＡＩＴ信号をアサートするのと実質的に同時に、ＰＣＩブリッジはローカルバスアドレスストローブＡＤＳ＃を駆動して、次のデータトランザクションをはじめ、次のトランザクションのメモリアドレスを駆動する。アドレスおよび制御信号を与えることによってより早く次のデータトランザクションを始めることによって、ＭＣＵはアドレス信号をデコードし、かつＤＲＡＭページを開くことができ、一方で同時にマスタ装置はデータを受取るまたは駆動する準備をする。ＤＲＡＭページが開かれ、ＭＥＭＷＡＩＴ信号がアクティブである間、ＰＣＩブリッジがＭＥＭＷＡＩＴラインをデアサートしてＰＣＩマスタがデータ転送を完了する準備ができたことを示すまで、ＭＣＵは「減速する」または待ち状態サイクルを介してループする。
【００１７】
ＭＥＭＷＡＩＴラインがＰＣＩブリッジによってデアサートされると、ＭＣＵはメモリアクセスを「加速」し、ＤＲＡＭページを開いたままでＢＲＤＹ＃ラインをアサートすることによってサイクルを完了する。ＢＲＤＹ＃がアサートされると、ＰＣＩブリッジは、ＡＤＳ＃をアサートして新しいアドレスをＣＰＵローカルバスへと駆動することによって次のサイクルを始める。ＰＣＩブリッジがＭＥＭＷＡＩＴをアサートしてメモリバスを減速し、その間にＭＣＵがアドレスをデコードして次のアクセスが同じＤＲＡＭページまたはＤＲＡＭバンク内にあるかどうかを判断する。ＭＥＭＷＡＩＴがアサートされるている間に、適切なＤＲＡＭページを開くことによって次のアクセスが行なわれる。
【００１８】
ＭＥＭＷＡＩＴがアサートされる期間中、システムメモリのバンクのうちの何らかのものに対してシステムタイマによってリフレッシュサイクルが始められて、そのバンク内のＤＲＡＭ回路をリフレッシュできる。ＭＣＵはリフレッシュサイクルがサービスされる前にまずアドレスされたメモリ位置をラッチしなくてはならない。リフレッシュが完了した後、その間に別のページへのアドレスが受取られるのでない限り、メモリ内の前のページが再び開かれる。
【００１９】
本発明の他の目的および利点は、添付の図面を参照して、以下の説明を読むことにより明らかになるであろう。
【００２０】
本発明には種々の変形および代替的な形態が可能だが、その具体的な実施例を例として図面に示し、ここに詳細に説明する。しかしながら、図面およびその詳細な説明は本発明を開示する特定の形に制限するものではなく、本発明は前掲の特許請求の範囲によって規定されるその範囲および精神に含まれるすべての変形、均等物および代替物を包含するものである。
【００２１】
【詳細な説明】
ここで図２を参照して、好ましい実施例に従って構成されるコンピュータシステムは一般に、集積プロセッサ（ＩＰ）５０と、ＰＣＩバス１００を介して集積プロセッサ５０に接続される外部ＰＣＩマスタ７５と、好ましくはメモリバス１５０によって集積プロセッサ５０に接続されるＤＲＡＭ回路からなる主メモリユニット１２５とを含む。集積プロセッサ５０は好ましくは、ＣＰＵコア６０と、ＣＰＵコア６０に結合されるＣＰＵローカルバス６５と、ローカルバス６５と外部ＰＣＩバス１００との間でデータ、アドレス、および制御信号をインタフェースさせることができるＰＣＩバスブリッジ８０と、メモリコントローラユニット（ＭＣＵ）９０と、タイマ８５と、オンチップ周辺装置７０とを含む。集積プロセッサ５０の図示される構成要素の各々は、好ましくは単一の集積回路上に製造され、共通の集積回路パッケージ内に収容される。
【００２２】
好ましい実施例では、ＣＰＵコア６０はモデル８０４８６マイクロプロセッサ命令セットを実現し、ＣＰＵバス６５はモデル８０４８６スタイルローカルバスを含む。したがって、好ましい実施例において、ＣＰＵローカルバス６５は３２ビット組のデータラインＤ［３１：０］と、３２ビット組のアドレスラインＡ［３１：０］と、１組の制御ライン（具体的には図示せず）とを含む。しかしながら、ＣＰＵコアは、本発明の原理から逸脱することなく、他のマイクロプロセッサタイプの命令セットを実現するように構成されてもよいことを理解されたい。
【００２３】
当業者には理解されるように、ＰＣＩバスブリッジ８０は好ましくはバスインタフェースユニット（ＢＩＵ）（具体的には図示せず）の一部を形成し、ＣＰＵローカルバス６５とＰＣＩバス１００との間の標準的なインタフェースを与える。このように、ＰＣＩバスブリッジ８０は、ＣＰＵローカルバス６５とＰＣＩバス１００との間のデータ、アドレス、および制御信号の転送を調整する。認められるように、ＣＰＵローカルバス６５は好ましくは８０４８６スタイルローカルバスを含み、これは当業者には周知であるように別個のアドレスおよびデータラインを含み、一方ＰＣＩバス１００は複数のマルチプレクスされるアドレス／データラインを含む。したがって、当業者には理解されるように、ＰＣＩバスブリッジ８０は、好ましくはローカルバス６５の３２ビットアドレスラインＡ［３１：０］をＰＣＩバス１００上のマルチプレクスされるアドレス／データラインＡＤ［３１：０］に適切なマルチプレクスユニット（図示せず）を介して接続するように機能する。同様に、ＰＣＩブリッジ８０は、ローカルバス６５の３２ビットデータラインＤ［３１：０］をＰＣＩバス１００のマルチプレクスされるアドレス／データラインＡＤ［３１：０］に直接接続する。
【００２４】
ＰＣＩブリッジ８０はまた、ＣＰＵローカルバス６５の制御ラインを介して駆動されるいくつかの制御信号、ＡＤＳ＃、Ｒ／Ｗ、Ｍ／ＩＯ、バイトイネーブル（Ｃ／ＢＥ＃）、Ｄ／ＣおよびＢＬＡＳＴ＃を発生する。通常の規定に従って、ＡＤＳ＃はＣＰＵローカルバス６５を介して読出または書込サイクルを始めるように機能するアドレスストローブ制御信号である。ＰＣＩブリッジ８０は、ローカルバス６５上にターゲットを有するバスサイクルのためにＡＤＳ＃信号を発生する。ＡＤＳ＃信号は、好ましくはアクティブ・ロー・ストローブ信号である。ＰＣＩブリッジ８０はまた、ＰＣＩバス上のＣ／ＢＥ＃（０）ラインの状態に応答してＲ／Ｗ信号を発生して、トランザクションが読出または書込サイクルを含むかどうかを示す。Ｍ／ＩＯは、メモリまたはＩ／Ｏ装置にサイクル状態を示す。最後に、ＢＬＡＳＴ＃信号は、データがローカルバス上の単一のアクセスにおいて転送されているのか、またはバーストモードにおいて転送されているのかを示す。好ましい実施例に従えば、ＰＣＩブリッジ８０はまた、メモリコントローラユニット（ＭＣＵ）９０にＭＥＭＷＡＩＴ信号を送り、これからＭＥＭＨＩＴ信号を受取る。これらの信号は、図２に示されるようにＰＣＩブリッジ８０とＭＣＵ９０との間の直接の電気的接続を介して伝送されてもよく、またはＣＰＵローカルバス６５内の制御線を介して与えられてもよい。
【００２５】
ＰＣＩブリッジ８０はまた、ＣＰＵローカルバス上の構成要素からＲＤＹ＃／ＢＲＤＹ＃制御信号を受取って、その構成要素によるサイクルの完了を示す。たとえば、メモリコントローラ９０がＢＲＤＹ＃をアサートすると、データラインＤ［３１：０］を介してデータを与えていること、またはデータを受取ったことを示す。ＰＣＩバス１００の側で、ＰＣＩブリッジ８０は、図２に示されるように好ましくはＰＣＩマスタ７５に制御ラインを介して接続するＴＲＤＹ＃出力信号を発生する。同様に、ＰＣＩブリッジ８０は、好ましくはＰＣＩマスタ７５と集積プロセッサ５０との間の制御ラインを介してＰＣＩマスタ７５からＩＲＤＹ＃を受取る。ＩＲＤＹ＃およびＴＲＤＹ＃の双方ともがアサートされるとデータが転送される。
【００２６】
ＣＰＵ内部ローカルバス６５は、好ましくは複数のバスマスタをサポートすることができるマルチマスタバスである。ＣＰＵ６０、ＰＣＩブリッジ８０、および周辺装置７０（たとえば直接メモリアクセスコントローラを含み得る）は各々、ＣＰＵローカルバス６５の所有権を主張することができる。これらの内部マスタによる内部ローカルバス６５の所有権は、典型的にはバスインタフェースユニット（ＢＩＵ）または他のバスアービタ（具体的には図示せず）によって調停される。
【００２７】
本発明の動作の説明において以下により詳細に説明するように、ＰＣＩブリッジ８０はＰＣＩマスタとして機能し得る。集積プロセッサ５０が外部ＰＣＩ「スレーブ」にアクセスすると、ＰＣＩブリッジ８０は、ＰＣＩバス１００の所有権を得ることによって他の外部ＰＣＩマスタと同様に動作する。したがって、ＣＰＵコア６０、または周辺装置７０がＣＰＵローカルバス６５の所有権を主張すると、ＰＣＩブリッジ８０は、好ましくは、サイクルがＰＣＩバス１００上にある装置に向けられていれば、ＰＣＩバス１００の所有権を主張する。
【００２８】
逆に、ＰＣＩ外部マスタがＣＰＵローカルバス６５上にある装置に対してアクセスを求める場合には、ＰＣＩブリッジ８０は外部ＰＣＩマスタに関するターゲットまたはスレーブとして動作する。ＰＣＩブリッジはこれに応答してＣＰＵローカルバス６５上で対応するサイクルを実行し、それによって外部ＰＣＩマスタがたとえばシステムメモリ１２５内に割当てられたデータを読出し、かつ書込むことを可能にする。したがって、これらのＰＣＩマスタサイクルの間に、外部ＰＣＩマスタはＰＣＩバス１００を所有し、ＰＣＩブリッジ８０はローカルバス６５を所有する。ＰＣＩブリッジ８０がＣＰＵローカルバス６５の所有権をリクエストすると、ＨＯＬＤリクエストをＣＰＵ６０に発生し、マスタシップが付与されるとＣＰＵ６０はＰＣＩブリッジ８０に肯定応答信号ＨＬＤＡを戻す。
【００２９】
メモリコントローラ９０は好ましくは、主メモリ１２５への高性能３２ビットデータ経路をサポートする統合制御ユニットを含む。好ましい実施例においては、メモリコントローラ９０は工業規格モジュールを用いて２５６ＭＢまでのＤＲＡＭをサポートする４つの３２ビットバンクの直接の接続を与える。ＭＣＵ９０は主メモリ１２５へのアクセスを制御し、ＣＰＵローカルバス６５に接続して、ＣＰＵ６０、ＰＣＩブリッジ８０および他の周辺装置（包括的に７０として示される）のためのメモリへの経路を与える。上述のように、ＭＣＵ９０は好ましくは、本発明の原理に従ってＰＣＩブリッジ８０にＭＥＭＨＩＴ信号を与え、ＰＣＩブリッジからＭＥＭＷＡＩＴ信号を受取る。ＭＣＵ９０はシステムタイマ８５からタイミング信号を受取る。
【００３０】
引続き図２を参照して、ＭＣＵ９０は好ましくは主メモリ１２５に、アドレスラインＭＡ［１１：０］、メモリデータラインＭＤ［３１：０］、行アドレスストローブ（ＲＡＳ）ラインＲＡＳ＃（３：０）、列アドレスストローブ（ＣＡＳ）ラインＣＡＳ＃（３：０）および書込イネーブルラインＷＥ＃を含むメモリバス１５０を介して接続する。アドレス信号はメモリアドレスラインＭＡ［１１：０］を介して伝送され、マルチプレクスされる、およびマルチプレクスされないメモリ装置のためにアクセスされるメモリ内の位置を選択する。データライン（ＭＤ３１─ＭＤ０）は、従来の技術に従って、ＤＲＡＭ回路および集積プロセッサ５０、または他の外部装置に、およびこれらからデータを転送するためのメモリデータバスラインである。書込イネーブル信号ＷＥ＃は、メモリアクセスが書込サイクルであるかどうかを示し、典型的にはＣＰＵローカルバス上のＷ／Ｒ制御信号から捕捉される。
【００３１】
慣用の技術に従って、行アドレスストローブ（ＲＡＳ）ライン（ＲＡＳ３＃−ＲＡＳ０＃）は、好ましくは、各ＤＲＡＭバンクに関してメモリアドレスバスＭＡ［１１：０］から行アドレスデータをクロックインするためにＤＲＡＭ回路が用いるアクティブロー出力を含む。好ましい実施例では、１つのＲＡＳラインが各バンク専用となる。４つのＤＲＡＭバンクが用いられる好ましい実施例では４つのＲＡＳラインが設けられる。同様に、４つの列アドレスストローブ（ＣＡＳ）ライン（ＣＡＳ３＃−ＣＡＳ０＃）は、１バイトにつき１ＣＡＳで、ＤＲＡＭバイトの各バンクに対してメモリアドレスバスＭＡ［１１：０］から列アドレスデータをクロックインするのにＤＲＡＭ回路が用いるアクティブロー出力として設けられる。したがって、たとえばＣＡＳ３＃は各ＤＡＲＭバンク内のバイト３に関するＤＲＡＭ列アドレスストローブである。
【００３２】
引続き図２を参照して、主メモリ１２５は好ましくは、各バンクが３２ビット（すなわち４バイト）幅である複数のバンクに構成されるＤＲＡＭ回路を含む。当業者には理解されるように、ＤＲＡＭバンクの各々は典型的には「ページ」にさらに分割される。ページサイズは、使用されるそれぞれのＤＲＡＭチップのサイズに依存する。システムボード上に配置され得るチップの数を減らすようにより少ないコネクタピンでＤＲＡＭチップが動作することを可能にするために、ＤＲＡＭチップはマルチプレクスされた態様でアドレスされる。すなわち、各メモリセルのアドレスが２つの部分に分けて伝送される。アドレスの前半は行アドレスを規定し、後半は列アドレスを規定する。好ましい実施例では、メモリアドレスバスＭＡ（１１：０）の最初の１２のラインはマルチプレクスされる出力であり、ＲＡＳ信号の間に行アドレス位置を、ＣＡＳ信号の間に列アドレス位置を伝える。したがって、個々のメモリセルが列アドレスおよび行アドレスによって選択される。行アドレスおよび列アドレス信号がＤＲＡＭメモリに入力される従来の態様は、図３および４の従来のタイミング図に示される。
図３（読出サイクル）および図４（書込サイクル）に一般的に示されるように、ＲＡＳ（行アドレスストローブ）制御ラインがアサートされると（すなわちＲＡＳがローに駆動されると）、行アドレスがＤＲＡＭメモリのアドレス入力に駆動される。これは行アドレスを内部行アドレスラッチにクロックする。行アドレスは、ＲＡＳがアサートされる前の期間（ｔASR ）と、ＲＡＳがアサートされた後の期間（ｔRAH ）との間、安定していなくてはならない。アドレス入力は次に列アドレスに変えられ、ＣＡＳ（列アドレスストローブ）がアサートされる（ＣＡＳがローに駆動される）。ＣＡＳはまた出力イネーブルとして機能して、ＣＡＳがアサートされると必ずデータピンアウト上の３状態ドライバが可能化されるようにする。ＣＡＳがアサートされ得る時間は、最小のＲＡＳ対ＣＡＳ遅延期間（ｔRCD ）によって決定される。ＲＡＳからのアクセス時間（ｔRAC ）およびＣＡＳからのアクセス時間（ｔCAC ）の両方が出会ってから、データが利用可能となる。性能の制限はＲＡＳからのアクセス時間（ｔRAC ）によって決定される。メモリアクセスにとって決定的となる別のタイミングパラメータはＲＡＳプリチャージ時間（ｔRP）である。プリチャージ時間（ｔRP）とは、ＤＲＡＭ回路が前のアクセスから回復するのに必要な時間のことである。データが利用可能となった瞬間に同じＤＲＡＭ装置への別のサイクルが始められるわけではない。したがって、ダイナミックメモリに対するサイクル時間はアクセス時間を上回る。アクセス時間とサイクル時間との差がプリチャージ時間である。ＤＲＡＭ回路のこれらのタイミング特性は、メモリトランザクションを迅速にしようとすると決定的なものとなる。
【００３３】
引続き図２を参照して、ＤＲＡＭ主メモリ１２５の動作に関する別の重要なファクタは、ＤＲＡＭ回路の周期的リフレッシュの必要性に関する。当業者には理解されるように、データビットをストアするのに個々のＤＲＡＭ回路において用いられるトランジスタは典型的には１つだけである。トランジスタは、単に、キャパシタにわずかな電荷をストアするスイッチとして機能する。電荷の量は「０」がストアされるか、「１」がストアされるかを決定する。どのキャパシタにも漏れがあるので、ＤＲＡＭチップ内のキャパシタの電荷は、絶縁体の損失の結果、ゆっくりと放散する。最終的にキャパシタの電荷は完全に放散し、メモリ内容が失われてしまう恐れがある。この問題に対する解決法は、データが失われる前にＤＲＡＭ回路を読出し、同じデータをＤＲＡＭチップに再度書込むことである。この手順は、ＤＲＡＭを「リフレッシュする」と称する。
【００３４】
ＤＲＡＭリフレッシュ速度は、好ましくはシステムタイマ８５から導出される。好ましい実施例では、ほとんどのＤＲＡＭリフレッシュサイクルがシステムの性能に影響を与えないように、「隠れた」ＲＡＳ前ＣＡＳの時間をずらしたリフレッシュ機構が用いられる。リフレッシュサイクルに必要な期間をさらに最小にするために、ＭＣＵ９０は好ましくは空のバンクに対してはリフレッシュサイクルを行なわない（すなわちＤＲＡＭメモリの特定のバンクにＤＲＡＭ回路が設けられていない場合）。リフレッシュの時間をずらすと、各ＤＲＡＭバンクを個々にリフレッシュすることによって瞬時の電流の需要を低減する。この態様で、バンク０がリフレッシュされ、次にバンク１がリフレッシュされるという具合である。リフレッシュサイクルが起こる周期はシステムタイマ８５によって決定される。タイマによって与えられるクロックは、好ましくは標準の周波数（２５６ＫＨｚ）の４倍であって、リフレッシュサイクルは４μ秒ごとに始まり、事実上のリフレッシュ周期は１ミリ秒につき２５６サイクルとなる。結果として、各ＤＲＡＭバンクを別個に、かつ２５６のリフレッシュサイクルを行なうのに標準のリフレッシュ周期である４ミリ秒以内で連続して、駆動するために、タイマ出力を用いることができる。この態様で、各バンクはいかなるバンクも同時にリフレッシュされることなく、約１５．６２５μ秒の標準速度でリフレッシュサイクルを受取る。従来の技術に従えば、リフレッシュサイクルはＲＡＳの前縁の前にＣＡＳをアサートすることによって始められ、これは通常のＤＲＡＭアクセス中には起こらない。
【００３５】
オンチップ周辺装置ブロック７０は、好ましくは集積プロセッサ５０内に実現され得る種々の周辺装置を表わす。たとえば、直接メモリアクセスコントローラ（ＤＭＡ）または割込コントローラ等の構成要素が集積プロセッサパッケージの一体化した部分として含まれてもよい。当業者には理解されるように、種々の周辺装置が集積プロセッサ５０の一部として設けられる。
【００３６】
引続き図２を参照して、ＰＣＩバス１００およびＰＣＩマスタ装置７５を以下に詳細に説明する。ＰＣＩバス１００は、いくつかのＰＣＩマスタをサポートすることができるマルチマスタ能力を備えた高性能３２ビットマルチプレクスアドレス／データバスである。好ましいコンピュータシステムの実施例では、どのＰＣＩマスタもＰＣＩバスの制御をリクエストすることができ、バスの所有権を付与されると、どのＰＣＩターゲット装置に対してもサイクルを発生することができる。
【００３７】
ＰＣＩバス１００の制御ラインおよびマルチプレクスされるアドレス／データラインＡＤ［３１：０］は、好ましくは、ＰＣＩマスタ７５等のＰＣＩ周辺構成要素とＰＣＩブリッジ８０とに接続する。制御ラインは好ましくは、コマンド／バイトイネーブル、サイクルフレーム信号、ターゲットレディ信号、およびイニシエータレディ信号を含む。コマンド／バイトイネーブル（Ｃ／ＢＥ３＃−Ｃ／ＢＥ０＃）は、同じラインを介してマルチプレクスされた転送コマンドおよびバイトイネーブルデータを伝送する。コマンド／バイトイネーブルラインＣ／ＢＥ［３−０］＃は、アドレス段階におけるバスコマンドを規定する。データ段階の間に、Ｃ／ＢＥ［３−０］＃は、どのバイトレーンが意味のあるデータを有しているかを決定するバイトイネーブルとして用いられる。
【００３８】
サイクルフレーム信号（ＦＲＡＭＥ＃）は維持入力／出力信号であり、好ましくは、ＰＣＩマスタによって駆動されてトランザクションの開始および継続を示すアクティブロー信号を含む。したがって、ＦＲＡＭＥ＃はアサートされるとバストランザクションの開始を伝える。ＦＲＡＭＥ＃がデアサートされると、トランザクションは最終データ段階にある。ＩＲＤＹ＃は、最終データ段階をマークするＦＲＡＭＥ＃のデアサートと同じクロック端縁でアサートされなくてはならないことに注目されたい。
【００３９】
ターゲット／ローカルバスレディ（ＴＲＤＹ＃／ＬＲＤＹ＃）は、ＰＣＩおよびＣＰＵローカルバスターゲットによって駆動されて、ターゲットの現在のデータ段階を完了する能力を示すアクティブロー入力信号を含む。ＴＲＤＹ＃と関連して用いられるイニシエータレディ信号（ＩＲＤＹ＃）は、ＰＣＩマスタの現在のデータ段階を完了する能力を示すアクティブロー信号を含む。書込サイクルの間、たとえば、ＩＲＤＹ＃は有効書込データがＡＤ［３１−０］にあることを示す。
【００４０】
ＰＣＩバスに関するさらなる特徴は、オレゴン州、ヒルスボロ（Hillsboro ）のＰＣＩ特殊権益グループ（PCI Special Interest Group）の刊行物「ＰＣＩローカルバス仕様」（PCI Local Bus Specification ）に説明され、ここに引用によって援用する。
【００４１】
引続き図２を参照して、本発明の動作を好ましい実施例に従って説明する。ＰＣＩマスタ７５は、ＰＣＩバスを介してリクエストを駆動することによってＰＣＩバス１００の所有権をリクエストする。ＰＣＩブリッジ８０はこれに応答してＨＯＬＤ信号をＣＰＵ６０に送り、ＣＰＵローカルバス６５の所有権をリクエストする。ＣＰＵ６０は、ＨＬＤＡ信号をアサートすることによってローカルバス６５の所有権を付与し、これがＰＣＩブリッジ８０によって受取られる。ＰＣＩブリッジ８０は、適切なバス付与信号をマスタ装置７５に送ることによってＰＣＩマスタ装置７５がＰＣＩバス１００を所有することを認める。
【００４２】
ＰＣＩマスタ７５によってＦＲＡＭＥ＃信号がアサートされると、ＰＣＩバス１００のマルチプレクスされるアドレスデータラインＡＤ［３１：０］が、ＰＣＩマスタ７５によって有効アドレスで駆動される。ＰＣＩブリッジ８０はアドレスを捕捉し、これをＣＰＵローカルバス６５を介して与える。アドレスがメモリ内の位置に対応する場合には、ＭＣＵ９０はＰＣＩブリッジ８０にＭＥＭＨＩＴ信号を発行し、次にこれが装置選択（デバイスセレクト）（ＤＥＶＳＥＬ＃）をＰＣＩマスタに発行して、トランザクションをクレームする。ＰＣＩバス１００のサイクル定義／バイトイネーブルラインＣ／ＢＥ［３：０］が次にサイクル状態オペコードで駆動され、現在のサイクルが書込（または読出）動作であることを示す。好ましい実施例に従えば、ＰＣＩブリッジのＭ／ＩＯ信号は、ＰＣＩバスのＣ／ＢＥ［２］ラインから捕捉され、ＰＣＩブリッジの読出／書込信号Ｒ／Ｗは、ＰＣＩバスのＣ／ＢＥ［０］ラインから捕捉される。次に（書込サイクルにおいて）、ＰＣＩマスタ７５はＰＣＩバス１００のＡＤラインを介して書込みたいデータを送り、ＩＲＤＹ＃信号をアサートして有効データがＰＣＩバス上にあることを示す。
【００４３】
ＰＣＩマスタ７５によって始められたサイクルがバーストモード動作であれば、ＰＣＩマスタ７５は初期メモリアドレスを送り、次にＰＣＩバス１００を介してデータ信号を駆動する。後続のサイクルで、ＰＣＩマスタ７５は、連続するデータ伝送の各々についてメモリアドレスが４バイト増分されるべきであることを理解して、バス１００を介してデータ信号を駆動するのみである。
【００４４】
ＰＣＩマスタ７５からのバースト伝送に応答して、ＰＣＩブリッジ８０は連続した（back-to-back）メモリサイクルのシーケンスを発生する。ＣＰＵがＰＣＩブリッジ８０によってホールドにされると、ＰＣＩマスタ７５からのバーストサイクルは、従来の技術に従ってＢＬＡＳＴ＃信号をアサートした状態に保つことによってＣＰＵローカルバス６５上の単一サイクルデータ転送のシーケンスに変形する。本発明の原理に従えば、ＰＣＩブリッジ８０による主メモリへの単一のアクセスの各々は、マスタ装置が最高速度で動作しているときさえも、性能の点で妥協することなくＰＣＩマスタの速度に加減速することができる。
【００４５】
本発明の動作は、ＰＣＩブリッジがメモリへの書込サイクルを行なっているか、メモリへの読出サイクルを行なっているかによって異なる。これらの各サイクルを次に具体的に述べる。書込トランザクションの間、ＰＣＩマスタ７５からのバーストサイクルは、ＰＣＩブリッジ８０によってＣＰＵローカルバス６５上の単一サイクル書込アクセスのシーケンスに変えられる。ＰＣＩマスタはまず、ＰＣＩバスのＡＤラインＡＤ［３１：０］を介してアクセスしたいメモリ内の位置のアドレスを駆動する。ＰＣＩブリッジ８０はこれに応答してＣＰＵローカルバス６５を介してアドレスを駆動し、ＭＥＭＨＩＴがＭＣＵ９０によって（ヒットがもし起これば）発行される。デバイスセレクトがＰＣＩブリッジ８０によってアサートされ、ＰＣＩマスタに戻される。ＰＣＩマスタによってＰＣＩバスを介してデータが駆動され（ＩＲＤＹ＃として示される）、ＰＣＩブリッジ８０へとデータがラッチされる（ＴＲＤＹ＃によって示される）。ＰＣＩブリッジ８０がＰＣＩマスタ７５から第１のデータ情報およびアドレスを受取ると、ＰＣＩブリッジ８０はＡＤＳ＃信号をアサートし、アドレスおよびデータ信号をＣＰＵローカルバスへと送ることによってＣＰＵローカルバス６５を介してそのサイクルを始める。ＭＣＵ９０はメモリ内の特定されたアドレスへのデータの書込を進め、ＣＰＵローカルバス６５を介してＰＣＩブリッジ８０にＢＲＤＹ＃制御信号をアサートして、データ書込サイクルの第１の倍長語を受取ったことを示す。
【００４６】
メモリへの後続のデータ書込（ＰＣＩバスを介したバーストサイクルの間）に関しては、本発明は、ＭＥＭＷＡＩＴを発行することによって、およびＭＣＵ９０に次の倍長語データのメモリアドレスを、対応する倍長語がＰＣＩマスタ７５から受取られる前に与えることによって、メモリを「加減速」する。これによって、ＭＣＵ９０は、前もってデータが書込まれるメモリ内のページを開く。その結果、ＭＣＵ９０は本質的に「先を見て」次のデータ書込がどこで起こるかを判断することができ、データが実際にＰＣＩマスタ７５によって伝送される前にメモリのそのページへのアクセスを始めることができる。
【００４７】
この先を見る能力は、ＭＣＵ９０がＢＤＲＹ＃信号を戻した直後のバーストサイクルの間に第２のおよびすべての後続のデータ転送を開始することによって達成される。ＭＣＵ９０からＢＲＤＹ＃信号を受取った後、ＰＣＩブリッジ８０はＴＲＤＹ＃信号をアサートして、ＰＣＩマスタ装置７５にターゲット（すなわちＭＣＵ）がデータ書込トランザクションを完了したか、または準備ができていることを示す。次のクロック信号で、ＰＣＩマスタはもし準備ができていれば書込むべき次のデータを駆動して、ＩＲＤＹ＃をアサートして有効データがＡＤラインを介して駆動されていることを示してもよい。しかしながら、ＰＣＩマスタ７５が遅く、データがまだ運ばれる準備ができていなければ、ＩＲＤＹ＃がＰＣＩマスタによってデアサートされて、準備ができている有効データを持たないことを示す。ＩＲＤＹ＃がＴＲＤＹ＃のアサートに続くクロックサイクルでデアサートされれば、ＰＣＩブリッジ８０はＭＥＭＷＡＩＴ信号をＭＣＵ９０に対してアサートし続け、ＭＣＵが無効データを書込むことを防ぐ。ＭＥＭＷＡＩＴ信号は少なくとも１クロックサイクルの間、無条件にアサートされることに注目されたい。ＭＥＭＷＡＩＴ信号を与えるのに加えて、ＰＣＩブリッジ８０はＣＰＵローカルバス６５を介して次の書込位置のメモリアドレスを駆動し、同時にＡＤＳ＃信号をアサートし、これによってＭＣＵ９０はアドレス信号をラッチすることとなる。ＭＣＵは次に適切な行アドレスストローブ（ＲＡＳ）ラインをアサートし、それによって次のアドレスが位置されるページをＤＲＡＭメモリ内の適切なバンクにおいて開くのを可能にする。
【００４８】
ＰＣＩマスタ装置７５が、ＩＲＤＹ＃のマスタによるアサートで示されるようにデータを駆動する準備ができると、データがＰＣＩバス１００からＰＣＩブリッジ８０を介してＣＰＵローカルバス６５に転送され、ＭＥＭＷＡＩＴ信号がＰＣＩブリッジ８０によってデアサートされる。ＭＵＣ９０はこれに応答してデータをラッチして、列アドレスストローブ（ＣＡＳ）をアサートして転送を完了する。この手順の結果、アドレスが異なるＤＲＡＭバンク内にあった場合にはＲＡＳアクセス時間（ｔRAC ）を節約することができ、アドレスが同じＤＲＡＭバンク内の異なるページにあった場合にはＲＡＳアクセス時間（ｔRAC ）とＲＡＳプリチャージ時間（ｔRP）の両方を節約することができる。
【００４９】
逆に、ＰＣＩマスタ７５によるバースト読出トランザクションの第１のサイクルにおいては、システムメモリ１２５に対するサイクルが、ＰＣＩバス１００およびＣＰＵローカルバス６５の両方のマスタシップが達成された後に開始される。ＰＣＩマスタ７５は、ＦＲＡＭＥ＃信号をアサートしてＰＣＩバス１００のアドレスラインをリクエストされたデータのアドレスで駆動することによってサイクルを示す。ＰＣＩブリッジ８０は、読出すべきメモリ内のアドレスを実質的に同時に駆動する。ＭＣＵ９０は読出アドレスを受取り、アドレスが主メモリ１２５内のアドレスに対応する場合にはＭＥＭＨＩＴ信号を発行し、これに応答してＰＣＩブリッジはマスタ７５にＤＥＶＳＥＬ＃信号を発行する。ＰＣＩマスタ７５はトランザクションを続け、ＰＣＩブリッジ８０はローカルバスアドレスストローブ信号ＡＤＳ＃をアサートして、ＭＣＵ９０にアドレス信号をラッチさせる。ＭＣＵ９０は次にメモリの行および列に対するアクセスを進め、有効データを戻し、これはローカルバス６５上のＢＲＤＹ＃のアサートによって示される。これに応答して、ＰＣＩブリッジ８０はＰＣＩバス１００上でＴＲＤＹ＃信号を発行し、メモリに対する次の読出サイクルをすぐに開始する。
【００５０】
ＰＣＩマスタ７５がＴＲＤＹ＃信号に応答して（またはその前に）ＩＲＤＹ＃信号をアサートしなければ、ＰＣＩブリッジ８０がＭＣＵ９０にＭＥＭＷＡＩＴをアサートして読出サイクルが加減速される。ＭＥＭＷＡＩＴがアサートされている間、ＭＣＵ９０はＰＣＩブリッジ８０から次の読出アドレスを受取り、アドレス信号を行および列アドレスにデコードする。ＭＣＵ９０は次に、適切なＲＡＳラインのアサートによって可能化される行アドレスを用いて、読出アドレスが位置されるメモリ内のページを開く。好ましい実施例においては、ＭＣＵ９０はまた、適切なＣＡＳラインによって可能化される列アドレスを与えることによってメモリバス１５０へとデータを駆動する。結果として、ＭＥＭＷＡＩＴがまだアサートされている間に、読出すべきデータがローカルバスに駆動される。
【００５１】
ＰＣＩマスタ装置７５がＩＲＤＹ＃をアサートし、かつ第１のデータ段階を受取ると、次の読出サイクルはＰＣＩブリッジ８０によるＭＥＭＷＡＩＴのデアサートで進められる。好ましい実施例に従って次のデータがローカルバスにロードされると、ＭＣＵ９０はＢＲＤＹ＃信号をもって直ちに応答し、ＰＣＩブリッジ８０はＴＲＤＹ＃信号を発行して、ＰＣＩマスタに次のデータ段階の読出の準備ができていることを示す。ＴＲＤＹ＃信号の発行後、ＰＣＩマスタは、ＡＤＳ＃をアサートしてローカルバスを介して次の読出アドレスを駆動し、ＭＥＭＷＡＩＴをアサートすることによって、次の読出サイクルを直ちに始める。
【００５２】
本発明の原理はまた、ＭＥＭＷＡＩＴがアサートされている間にリフレッシュサイクルを行なうことを可能にするように、リフレッシュサイクルの間にも実現することができる。ＭＥＭＷＡＩＴがアサートされている間に、ページが開かれている同じＤＲＡＭバンクにリフレッシュリクエストが発行されると、ＭＣＵ９０は好ましくは、ＣＡＳラインをアクティブな状態に保ち、かつＲＡＳラインをデアサートしてプリチャージサイクルを始めることによって、ＲＡＳ前ＣＡＳリフレッシュサイクルを始める。プリチャージサイクルが完了すると、ＭＣＵ９０はＲＡＳラインをアサートしてリフレッシュサイクルを開始し、ｔRAS 時間に出会うまで行ない、このときにＲＡＳラインはデアサートされてプリチャージサイクルを再び始める。プリチャージサイクルが完了すると、ＭＣＵ９０は前のＤＲＡＭページを再び開き、ＭＥＭＷＡＩＴがまだアサートされていればメモリバスを減速し続ける。
【００５３】
ＭＥＭＷＡＩＴがリフレッシュサイクルの間にデアサートされると、ＭＣＵ９０は好ましくはｔRAS に出会うまで待ち、ＲＡＳラインをデアサートしてプリチャージサイクルを始める。プリチャージサイクルが完了すると、ＭＣＵ９０は前のＤＲＡＭページを開き、ＢＲＤＹ＃をＰＣＩブリッジ８０にアサートした後メモリアクセスを完了する。リフレッシュリクエストが起こるまで、または別のマスタによって異なるＤＲＡＭページに後続のデータアクセスが行なわれるまで、ＤＲＡＭページは開かれたままである。リフレッシュが完了した後にＤＲＡＭページを先に開くことによってこのシーケンスで節約される時間はｔRAC 期間である。
【００５４】
ＭＥＭＷＡＩＴがアサートされている間に、リフレッシュリクエストが異なるＤＲＡＭバンクに発行されれば、ＭＣＵ９０は好ましくは、ＣＡＳラインをアクティブに保ったままで現在のアクティブＲＡＳラインをデアサートして現在のページを閉じ、新しいバンクのＲＡＳラインを直ちにアサートしてリフレッシュサイクルを始める。ｔRAS に出会うまで新しいＲＡＳラインはアクティブなままであり、出会うとＲＡＳラインはデアサートされてプリチャージを始める。プリチャージサイクルが完了すると、ＭＣＵ９０は前のＤＲＡＭページを開き、ＭＥＭＷＡＩＴがまだアサートされていればメモリバスを減速し続ける。
【００５５】
逆に、リフレッシュサイクルの間にＭＥＭＷＡＩＴがデアサートされれば、ＭＣＵは好ましくはｔRAS に出会うまで待ち、ＲＡＳラインをデアサートしてプリチャージサイクルを始める。プリチャージサイクルの完了時に、ＭＣＵは前のＤＲＡＭページを開き、ＢＲＤＹ＃をアサートした後メモリアクセスを完了する。リフレッシュリクエストまたは別のＰＣＩマスタが異なるページにメモリリクエストを発行するまで、ＤＲＡＭページは開いたままである。やはり、リフレッシュが完了した後に前もってＤＲＡＭページを開くことによって節約される時間はｔRAC 期間である。
【００５６】
本発明のプロトコルが実現される態様をさらに理解するために、例示的なタイミング図を説明する。図５ないし９は、主メモリ内の様々な位置への読出および書込サイクルと関連するデータ、アドレスおよび制御信号を示すタイミング図である。ＤＲＡＭメモリの状態は、これらの図の理解を深めるために、タイミング図の下の行に示される。
【００５７】
まず図５を参照して、主メモリ内のＤＲＡＭバンクの同じページに対してメモリへの２つの連続するアクセスが行なわれる場合について、加減速されるメモリ読出サイクルが示される。初期状態において、メモリ内のページは、同じページへの前のメモリアクセスを示すＤＲＡＭＳＴＡＴＥ表示で示されるように、開かれている。この初期期間において、ＲＡＳ（１）ラインはアサートされて、ＤＲＡＭメモリのバンク１がアクセスされ、そのバンクのページが開かれていることを示す。次に、ＰＣＩブリッジによって（１）ＡＤＳ＃制御信号をローに駆動し、（２）Ｗ／Ｒ信号をハイにアサートして書込サイクルを示し、（３）アドレスおよびデータ情報をローカルバスを介して与えることによって、書込サイクルが始められる。従来の技術に従って、ＭＣＵは、メモリ書込が実際にそのサイクルを完了するまでに、第１のＴ２サイクルにおいて早くＢＲＤＹ＃をアサートする。その後少し経ってから、ＭＣＵはＣＡＳ（２）ラインをアサートし、データ書込を完了する。
【００５８】
ＰＣＩブリッジはＢＲＤＹ＃信号をＭＣＵから受取ると直ちに、ＡＤＳ＃信号をアサートして読出サイクルである次のサイクルを開始し、これはＷ／Ｒラインがローに駆動されることによって表わされる。同時に、ＰＣＩブリッジはＭＥＭＷＡＩＴ信号をアサートし、メモリバスを減速する。好ましい実施例に従えば、ＭＥＭＷＡＩＴがアサートされている間にアドレス信号がＭＣＵに与えられる。ＤＲＡＭページが既に開かれているので、ＭＣＵは、図５に示される状態においてＲＡＳラインの状態を変えることによってページを開く必要はない。しかしながら、好ましい実施例では、ＭＣＵはＣＡＳライン（この場合ＣＡＳ（２））をアサートして、読出すべきデータをメモリバスへと駆動し、したがってローカルバスへと駆動する。ＭＥＭＷＡＩＴがデアサートされると、ＭＣＵはＢＲＤＹ＃をアサートして、データが利用可能であり、ＤＲＡＭページが次のサイクルのために開いたままであることを示す。
【００５９】
したがって、アドレスが同じＤＲＡＭページにあれば、ＰＣＩブリッジ８０によってＭＥＭＷＡＩＴがデアサートされるまで、またはリフレッシュサイクルリクエストが発行されるまで待ち状態サイクルを介してループすることによってＭＣＵ９０はメモリバス１５０を減速する。ＭＥＭＷＡＩＴがデアサートされると、ＭＣＵ９０はＢＲＤＹ＃をアサートし、メモリアクセスを完了する。別のマスタ装置が異なるページに対してメモリリクエストを発行するまで、またはリフレッシュリクエストが起こるまで、ＤＲＡＭページは開いたままである。
【００６０】
ここで図６を参照して、同じＤＲＡＭページに対する加減速メモリ書込サイクルが示される。やはり、初期状態においてＤＲＡＭページは開かれており、そのページへの前のアクセスを示す。次に、ＰＣＩブリッジはＡＤＳ＃制御信号をアサートし、Ｗ／Ｒ信号をアサートして書込サイクルを示し、ＭＥＭＷＡＩＴラインをアサートしてＰＣＩマスタがまだデータを送信する準備ができていないことを示す。ＭＥＭＷＡＩＴラインがアサートされている間、好ましい実施例に従えば、ＰＣＩブリッジはＭＣＵに書込サイクルのアドレスを駆動する。しかしながら、適切なページが既に開かれているので、ＲＡＳラインの状態は変わらない。ＭＥＭＷＡＩＴ信号がＰＣＩブリッジによってデアサートされると、ＭＣＵはＢＲＤＹ＃をアサートして、適切なＣＡＳライン（ＣＡＳ（２））をアサートすることによって書込サイクルを完了する。ＭＥＭＷＡＩＴ信号のない後続の読出サイクルが図６に示される。
【００６１】
ここで図７を参照して、異なるＤＲＡＭバンクに対する加減速メモリ読出サイクルが示される。初期状態において、バンク３のＤＲＡＭページが、ＲＡＳ（３）のアサートによって示されるように前のメモリアクセスから開かれている。次に、ＰＣＩブリッジは読出サイクルを示すようにＲ／Ｗラインをローに保ったままでＡＤＳ＃制御信号をアサートする。実質的に同時にＰＣＩブリッジはＭＥＭＷＡＩＴ信号をアサートして、ＰＣＩマスタ装置がデータを受取る準備がまだできていないことを示す。好ましい実施例に従えば、ＰＣＩブリッジはローカルバスを介してアドレスを駆動し、そこでＭＣＵによって受取られる。ＭＣＵはアドレスをデコードし、ＤＲＡＭバンク３からＤＲＡＭバンク２に変え、ＲＡＳ（３）をハイに駆動しながら行アドレスストローブラインＲＡＳ（２）をローに駆動して、デコードされた行アドレスをバンク２に駆動する。ＭＣＵは次にバンク２内の適切なＤＲＡＭページを開き、４つのＣＡＳラインをアサートすることによって所望のデータをメモリバスを介して送り、次にローカルバスに駆動する。ＭＥＭＷＡＩＴ信号がデアサートされてＰＣＩマスタがデータを受取る準備ができたことを示すと、ＭＣＵはＢＲＤＹ＃信号をアサートし、読出サイクルが行なわれたことを示す。
【００６２】
したがって、アドレスが異なるＤＲＡＭバンクに対するものであれば、ＭＣＵは、ＭＥＭＷＡＩＴがアサートされている間に現在のバンクの現在のＤＲＡＭページを閉じ、新しいバンクのＤＲＡＭページを直ちに開く（異なるＤＲＡＭバンクがアクセスされるのでＲＡＳプリチャージサイクル時間が存在しないため）。ＭＥＭＷＡＩＴがデアサートされるまで、またはリフレッシュリクエストが発行されるまで、待ち状態サイクルを介してループすることによってＭＣＵはメモリバスを減速する。ＭＥＭＷＡＩＴがデアサートされた後、ＭＣＵはＢＲＤＹ＃をアサートし、メモリアクセスを完了する。マスタによる別のページへの後続のメモリアクセスまで、またはリフレッシュリクエストが受取られるまで、ＤＲＡＭページは開いたままである。このシーケンスにおいて、ＤＲＡＭページにアクセスする時間（ｔRAC ）が、データアクセスに先立ってページを開くことによって節約される。
【００６３】
図８はメモリ内の別のページへの加減速メモリ読出サイクルを示す。最初の２つの状態は、ＭＥＭＷＡＩＴのない読出サイクル前の書込サイクルを示す。次にＰＣＩブリッジは、読出サイクルを示すようにＷ／Ｒラインがローに保たれたままで、ＡＤＳ＃制御信号をアサートし、ＭＥＭＷＡＩＴを同時にアサートする。ＭＥＭＷＡＩＴがアサートされている間、ＰＣＩブリッジはアドレスをローカルバスを介してＭＣＵに駆動する。ＭＣＵはアドレスをデコードし、メモリ内の適切なページを開く。ページが開かれると、ＭＣＵはＣＡＳラインをアサートして、データをメモリバスへ、次にローカルバスへと駆動する。ＭＥＭＷＡＩＴがデアサートされると、ＭＣＵはＢＲＤＹ＃をアサートして、読出サイクルが完了することを示す。
【００６４】
したがって、アドレスが別のＤＲＡＭページにあれば、ＭＣＵはＭＥＭＷＡＩＴがアサートされた状態で現在のＤＲＡＭページを閉じ、プリチャージ状態に進む。ＲＡＳプリチャージが完了すると、ＭＣＵ９０はＤＲＡＭページを開き、ＭＥＭＷＡＩＴがデアサートされるまで、またはリフレッシュリクエストが発行されるまで待ち状態サイクルを介してループすることによってメモリバス１５０を減速する。ＭＥＭＷＡＩＴがデアサートされた後、ＭＣＵはＢＲＤＹ＃をアサートし、ＣＡＳをアサートすることによってメモリアクセスを完了し、ＤＲＡＭページの特定のバイトがアクセスされることを可能にする。データ転送が完了した後、ＤＲＡＭページは、リフレッシュリクエストが受取られるまで、または別のマスタ装置がメモリリクエストを別のページに発行するまで、開いたままである。このシーケンスでは、ＲＡＳプリチャージサイクル時間（ｔRP）が節約され、ＤＲＡＭページにアクセスするのに必要な時間（ｔRAC ）が節約される。
【００６５】
最後に図９はリフレッシュサイクルが介在する加減速メモリ読出サイクルを示す。図９の初期状態は書込サイクルである。次にＰＣＩブリッジはＡＤＳ＃制御信号をアサートし、Ｗ／Ｒ信号をローに駆動し、同時にＭＥＭＷＡＩＴをアサートし、ＰＣＩマスタがデータを受取る準備がまだできていないことを示す。ＰＣＩブリッジはローカルバス上でアドレスを駆動し、ここでこれがＭＣＵによって受取られ、メモリ内の所望のページにアクセスするのに用いられる、。ＭＣＵは次に適切な列アドレスストローブラインＣＡＳ（２）をアサートし、データをメモリバスへと駆動する。しかしながら、ＭＥＭＷＡＩＴがまだアサートされている間に、リフレッシュリクエストがＭＣＵによって受取られる。ＭＥＭＷＡＩＴがまだアサートされた状態で、ＭＣＵは、バンク０のためのリフレッシュサイクルをそのバンクについてＲＡＳ前にＣＡＳをアサートすることによって行なう。リフレッシュが完了した後、ＭＣＵは、再びＲＡＳ（１）をアサートすることによってメモリ内の適切なページを再び開き、ＣＡＳ（２）をアサートすることによってデータを駆動する。
【００６６】
上の開示が十分に理解されれば、種々の変形および変更が当業者には明らかになるであろう。前掲の特許請求の範囲はこれらの変形および変更のすべてを包含すると解釈されたい。
【図面の簡単な説明】
【図１】ＰＣＩマスタ装置をサポートする先行技術のコンピュータシステムの機能ブロック図である。
【図２】好ましい実施例に従って構成されるコンピュータシステムの機能ブロック図である。
【図３】典型的な読出サイクルのタイミング図である。
【図４】典型的な書込サイクルのタイミング図である。
【図５】図２に示されるシステムの動作を示すタイミング図である。
【図６】図２に示されるシステムの動作を示すタイミング図である。
【図７】図２に示されるシステムの動作を示すタイミング図である。
【図８】図２に示されるシステムの動作を示すタイミング図である。
【図９】図２に示されるシステムの動作を示すタイミング図である。
【符号の説明】
５０  集積プロセッサ
６０  ＣＰＵ
６５  ＣＰＵローカルバス
７０  オンチップ周辺装置
８０  ＰＣＩブリッジ
１００  ＰＣＩバス
【図１】
0003720872.tif 000002
【図２】
0003720872.tif 000003
【図３】
0003720872.tif 000004
【図４】
0003720872.tif 000005
【図５】
0003720872.tif 000006
【図６】
0003720872.tif 000007
【図７】
0003720872.tif 000008
【図８】
0003720872.tif 000009
【図９】
0003720872.tif 000010