(57)【特許請求の範囲】
【請求項１】
メモリ・バスの制御を有するコントローラからメモリ・バスの制御を希望するコントローラへメモリ・バスの制御を移動する方法において、
制御を希望するコントローラによって生成されたアクセス要求を検出するステップと、
メモリ・バスがメモリ・オペレーションに使用されているかどうかを検出するステップと、
メモリ・バスがメモリ・オペレーションに使用されていない場合に高速バス移動シーケンスを開始するステップであって、前記高速バス移動シーケンスは制御を希望するコントローラに前記メモリ・バスの制御を、第１の期間後に移動するものである、ステップと、
メモリ・バスがメモリ・オペレーションに使用されている場合にはそのメモリ・オペレーションが終わったときに、低速バス移動シーケンスを開始するステップであって、前記低速バス移動シーケンスは制御を希望するコントローラに前記メモリ・バスの制御を、前記メモリ・バスに接続されているメモリの選択回路をプリチャージするプリチャージ期間を含む前記第１の期間よりも長い第２の期間後に移動するものである、ステップと
を含むことを特徴とする方法。
【請求項２】
共有リソースが使用しているバスへのアクセスを有している複数のコントローラの間の共用リソースへのアクセスの制御の移動を加速する方法において、
第１のバス・コントローラによるアクセス要求を検出するステップと、
バスが第２のバス・コントローラによりメモリ・オペレーションに使用されているか否かを検出するステップと、
バスが第２のバス・コントローラによってメモリ・オペレーションに使用されていない場合に、高速バス移動シーケンスを開始するステップであって、前記高速バス移動シーケンスは第１のバス・コントローラにメモリ・バスの制御を、第１の期間後に移動するものである、ステップと、
バスが第２のバス・コントローラによつてメモリ・オペレーションに使用されている場合にはそのメモリ・オペレーションが終わったときに、低速バス移動シーケンスを開始するステップであって、前記低速バス移動シーケンスは第１のバス・コントローラにバスの制御を、前記バスに接続されているメモリの選択回路をプリチャージするプリチャージ期間を含む前記第１の期間よりも長い第２の期間後に移動するものである、ステップと
を含むことを特徴とする方法。
【請求項３】
共有リソースが使用しているバスへのアクセスを有している複数のコントローラの間の共用リソースへのアクセスの制御の移動を加速する装置において、
第１のバス・コントローラによるアクセス要求に応答して、バスが第２のバス・コントローラによりメモリ・オペレーションに使用されているかどうかを検出する第１の回路と、
バスが第２のバス・コントローラによってメモリ・オペレーションに使用されていない場合には高速バス移動シーケンスを、バスが第２のバス・コントローラによってメモリ・オペレーションに使用されている場合にはそのメモリ・オペレーションが終ったときに、低速バス移動シーケンスを、それぞれ選択する第２の回路であって、前記高速バス移動シーケンスは第１のバス・コントローラにメモリ・バスの制御を、第１の期間後に移動するものであり、前記低速バス移動シーケンスは第１のバス・コントローラにバスの制御を、前記バスに接続されているメモリの選択回路をプリチャージするプリチャージ期間を含む前記第１の期間よりも長い第２の期間後に移動するものである、第２の回路と
を有することを特徴とする装置。
【請求項４】
コンピュータ・システムにおいて、
中央演算処理装置と、
メイン・メモリ・アレイと、
メイン・メモリ・アレイへのアクセスを行うメモリ・バスと、
メモリ・バスによってメイン・メモリ・アレイに結合されている第１のコントローラと、
メモリ・バスによってメイン・メモリ・アレイに結合されている第２のコントローラと
第１のコントローラと第２のコントローラを接続する通知回路と、
第１と第２のコントローラの間のメモリ・アレイへのアクセスの制御の移動を加速する装置とを備えており、
上記移動を加速する装置は、
バスが第１のバス・コントローラによりメモリ・オペレーションに使用されているかどうかを検出するとともに、第２のバス・コントローラによるアクセス要求に応答する回路と、
バスが第１のバス・コントローラによってメモリ・オペレーションに使用されていない場合には高速バス移動シーケンスを、バスが第１のバス・コントローラによってメモリ・オペレーションに使用されている場合にはそのメモリ・オペレーションが終ったときに、低速バス移動シーケンスを、それぞれ選択する選択回路であって、前記高速バス移動シーケンスは第２のバス・コントローラにメモリ・バスの制御を、第１の期間後に移動するものであり、前記低速バス移動シーケンスは第２のバス・コントローラにメモリ・バスの制御を、前記バスに接続されているメモリの選択回路をプリチャージするプリチャージ期間を含む前記第１の期間よりも長い第２の期間後に移動するものである、選択回路と
を有することを特徴とする装置。
【請求項５】
メモリ・バスの制御を当該メモリ・バスがメモリ・オペレーションに使用されていないときに第１のコントローラから第２のコントローラに移動する方法において、
メモリ・バスの制御を要求する第２のコントローラからの要求信号を検出するステップと、
制御に対する要求に先立って、少なくとも所定期間はメモリ選択回路がプリチヤージされたかどうかを判定するステップと、
メモリ選択回路が少なくとも所定期間プリチャージされていなかった場合には、メモリ選択回路を少なくとも所定期間だけはプリチャージすることを可能にするために、メモリ・バスの制御が第２のコントローラに第１の期間後に移動される第１の移動シーケンスを開始するステップと、
メモリ選択回路が少なくとも所定期間プリチヤージされていた場合には、メモリ・バスの制御が第２のコントローラに前記第１の期間より短い第２の期間後に移動される第２の移動シーケンスを開始するステップと
を含むことを特徴とする方法。
【請求項６】
メモリ・バスの制御を当該メモリ・バスがメモリ・オペレーションに使用されていないときに第１のコントローラから第２のコントローラに移動する装置において、
第２のコントローラによるメモリ・バスの制御を求める要求信号のアサーションを検出するように構成された第１の回路と、
要求信号のアサーションに先立って、少なくとも所定期間はメモリ選択回路がプリチャージされたかどうかを判定するように構成された第２の回路と、
メモリ選択回路が少なくとも所定期間プリチャージされていなかった場合には、メモリ選択回路を少なくとも所定期間だけはプリチャージすることを可能にするために、メモリ・バスの制御が第２のコントローラに第１の期間後に移動される第１の移動シーケンスを、メモリ選択回路が少なくとも所定期間プリチヤージされていた場合には、メモリ・バスの制御が第２のコントローラに前記第１の期間より短い第２の期間後に移動される第２の移動シーケンスを、それぞれ開始するように構成された第３の回路と
を備えることを特徴とする装置。
【発明の詳細な説明】
発明の背景
発明の分野
本発明はパーソナル・コンピュータに関し、詳細にいえば、複数のバス・マスタが共用リソースへのアクセスを取得するためにアービトレーションを行う速度を高くする方法および装置に関する。
従来の技術の歴史
コンピュータ・システムの能力が高くなるにつれ、データおよびプログラムを記憶するのにこれらのシステムが利用するメモリ・スペースの量も増加してきた。たとえば、単一のＩｎｔｅｌ  Ｐｅｎｔｉｕｍマイクロプロセッサを使用している典型的なデスクトップ・コンピュータはメイン・メモリとして使用される１６メガバイトのダイナミック・ランダム・アクセスメモリ（ＤＲＡＭ）、長期間の記憶に使用されるギガバイトの電子機械的ハード・ディスク・メモリ、グラフィックス・フレーム・バッファの一部として使用される１ないし４メガバイトのＤＲＡＭまたはビデオ・ランダム・アクセス・メモリ（ＶＲＡＭ）、およびさまざまなその他の専用メモリ・アレイを含んでいる。このようなシステムが使用するメモリの量およびコストは今後も増加し続けると思われる。
歴史的に言って、フレーム・バッファは高速で、高価なメモリ・デバイス（ＶＲＡＭなど）をしばしば利用していたのに対し、メイン・メモリは低速なＤＲＡＭを利用していた。しかしながら、高速なプロセッサと改善されたシステム・アーキテクチャが、メイン・メモリが動作する速度をかなり増加させるようになってきている。たとえば、メイン・メモリを独立したメモリ・バス上に置き、メモリ・コントローラがそのバスへのアクセスを制御するのが現在では典型的なものとなっている。メイン・メモリにアクセスする速度の増加およびメモリが有している平均サイズの増加とは、メイン・メモリの一部をグラフィックス出力を記憶し、操作するのに利用することにより、全体的なシステム・コストを下げることを可能としている。
これを達成するには、グラフィックス・コントローラもメイン・メモリに迅速にアクセスできることが必要である。グラフィックス・コントローラは歴史的にいって、フレーム・バッファ・アレイ内での各種の操作（ビットブロック転送など）を実施するために使用されてきた。メイン・メモリの一部を使用して、フレーム・バッファ記憶装置と置き換えた場合、このようなグラフィックス・コントローラはメイン・メモリの割り当てられた部分においてグラフィックス・データに同じオペレーションを実行できなければならない。メイン・メモリにアクセスするためには、グラフィックス・コントローラ（または、その他のバス・マスタ）は、メモリ・コントローラによって主として制御されているメモリ・バスへのアクセスを取得しなければならない。メモリ・コントローラと他のコントローラまたはバス・マスタの間でメイン・メモリへのアクセスの制御をできるだけ短い時間で切り換える必要性は、したがってきわめて重要なものとなる。
パーソナル・コンピュータ・システム内のバス・マスタが、複数のバス・マスタないしコントローラを有しているコンピュータ・システムの共用リソースへのアクセスを取得する、詳細にいえば、グラフィックス・コントローラがメモリ・コントローラと共用されているメイン・メモリへのアクセスを取得するのに必要な時間を短縮するのが望ましい。
発明の概要
本発明はリソースが使用するバスへのアクセスを有している複数のコントローラの間での、メイン・メモリなどの共用リソースへのアクセスの制御の移動を加速する新しい方法および装置を利用する。この方法は、バス・コントローラによるアクセス要求を検出し、バスがコントローラによって使用されているかどうかを検出し、バスが使用中でない場合には、時限バス移動シーケンスを直ちに開始し、バスが使用されている場合には、バスの使用が完了したときに直ちに時限バス移動シーケンスを開始し、時限バス移動シーケンスの終了時に直ちにバスをリリースし、制御を要求元コントローラへ移す。
本発明のこれらおよびその他の特徴は、いくつかの図面を通じて同じ要素を同じ符号で示している図面に関して行う以下の詳細な説明を参照することにより、よりよく理解されよう。
【図面の簡単な説明】
第１図は従来の技術にしたがって設計されたコンピュータ・システムのアーキテクチャのブロック図である。
第２図は本発明にしたがって設計されたコンピュータ・システムのアーキテクチャのブロック図である。
第３図はローカル・バス・マスタによるメモリ・バス上のメイン・メモリへのアクセス速度を高めるための、本発明回路の実施形態の１つを示すブロック図である。
第４図はメモリ・バスが使用されていない場合のローカル・バス・マスタによるメモリ・バスのアクセスを示すタイミング図である。
第５図はメモリ・バスが使用されている場合のローカル・バス・マスタによるメモリ・バスのアクセスを示すタイミング図である。
第６図は本発明による方法のステップを示す流れ図である。
表記および用語
以下の詳細な説明の中には、コンピュータ・メモリ内のデータ・ビットにおける動作の記号表記の用語によってあらわされている部分がある。これらの説明および表記はデータ処理分野の技術者がその作業の内容を他の技術者に最も効果的に伝えるために使用される手段である。オペレーションは物理量の物理的な取り扱いを必要とするものである。通常、必然的なものではないが、これらの量は記憶、転送、組合せ、比較、あるいは取り扱いを行える電気または磁気信号の形態を取る。適宜、主として一般的な用法を理由として、これらの信号をビット、値、要素、記号、文字、専門用語、数値などと呼ぶのが便利なことが証明されている。しかしながら、これらおよびその他の同様の用語がすべて適切な物理量に関連付けられており、これらの量に適用される便宜上のラベルに過ぎないことに留意すべきである。
さらに、実行される操作は加算または比較などの用語で呼ばれることがあるが、これらは人間のオペレータが行う頭脳作業と一般に関連付けられている。人間のオペレータのこのような能力は、本発明の一部を形成する本明細書に記載するオペレーションのいずれにおいてもほとんどの場合に必要でも、望ましいものでもなく、オペレーションは機械オペレーションである。本発明のオペレーションを行うのに有用な機械は汎用ディジタル・コンピュータまたはその他の同様な装置を含んでいる。すべての場合に、コンピュータを操作するオペレーションの方法と計算それ自体の方法の区別を念頭においておくべきである。本発明は、電気的またはその他（たとえば、機械的、化学的）物理信号の処理における、他の希望する物理信号を生成するためにコンピュータをオペレーティングする方法および装置に関する。
本明細書において、その名前に「＃」を含んでいる信号はアクティブ低信号である。信号に適用された場合「アサート」という用語は信号のレベルが低いか、高いかにかかわりなく信号がアクティブ状態であることを示す。「デアサート」という用語は信号が非アクティブ状態であることを示す。
詳細な説明
第１図を参照すると、典型的な従来技術のコンピュータ・システム１０が示されている。システム１０は上述の一般的な態様で機能する任意のコンピュータ・システムでよいが、このようなシステムはカリフォルニア州Ｓａｎｔａ  ＣｌａｒａのＩｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎが設計製造しているタイプのＰｅｎｔｉｕｍなどのマイクロプロセッサを利用するように設計されているシステムによって代表されるものである。図示のシステム１０はシステム１０のオペレーション中に与えられる各種の命令を実行する中央演算処理装置１１を含んでいる。中央演算処理装置１１は通常、プロセッサ・バスによって、システム１０の各種の構成要素の間で情報を搬送するようになされたローカル・バス１２へのアクセスを制御するブリッジ回路１４に接続されている。第１図において、バス１２はデータの特に高速な転送を行うようになされている周辺構成要素インタフェース（ＰＣＩ）バスまたはその他の高速ローカル・バスであることが好ましい。典型的なシステム１０において、各種の入出力装置がバス・マスタおよびバス・スレーブ回路としてバス１２に接続されている。この図においては、たとえば、フレーム・バッファ１７を制御するグラフィック・コントローラ１６をバス・マスタまたはバス・スレーブとしてＰＣＩバス１２に接続することができる。サウンド・ボード、フレーム・バッファなどのその他の入出力装置を同様な態様でバス１２に接続することもできる。
ブリッジ回路１４もメモリ・バスによってメイン・メモリ１３に接続されている。メイン・メモリ１３は通常、電力がシステム１０に与えられている期間中に情報を記憶するために、従来技術の技術者に周知の態様で構成されているダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）で構成されている。特定の構成にもよるが、ブリッジ回路１４は通常、２次キャッシュ・コントローラ、２次キャッシュ（Ｌ２キャッシュと呼ばれることがよくある）、メモリ・コントローラ１５、およびプロセッサ、メイン・メモリおよびローカル・バスの間でのデータの転送中にデータを記憶するためのいくつかのバッファを含んでいる。これらの構成要素はブリッジ回路１４の一体部分であっても、あるいは回路板上で他の構成要素に結合されているものであってもよい。
第１図の構成において、アプリケーション・プログラムと協働して、データをシステム１０の各種の構成要素へ転送するオペレーティング・システムの制御下で、オペレーションが中央演算処理装置１１によって行われる。メイン・メモリ１３へアドレス指定されたデータは、たとえば、メモリ・コントローラ１５の制御下で、メモリ・バス上で転送される。同様に、中央演算処理装置１１によって読み取られるデータは、メモリ・コントローラ１５の制御下で、メモリ・バス上でメイン・メモリ１３から転送される。これに対し、フレーム・バッファ１７への記憶および出力表示装置１８での表示のために、グラフィックス・コントローラ１６によって制御されるフレーム・バッファ・アドレスへ転送されるデータは、ブリッジ回路１４内のデータ・パスを介して、バス１２へ転送される。このデータが中央演算処理装置１１から転送されている場合には、データおよびアドレスはブリッジ回路によってバス１２へ転送される。このデータがメイン・メモリ１３から転送されている場合には、メモリ・コントローラ１５はメイン・メモリからブリッジ回路１４への転送を制御し、ブリッジ回路１４において、データはバス１２へのブリッジ・データ・パスにおかれる。他のバス・マスタによるオペレーションがない場合に、ブリッジ回路１４は通常バス１２の制御を有しているが、ブリッジ回路１４がバス１２に対してアービトレーションを行い、バス１２にアクセスして、グラフィックス・コントローラ１６への転送のためにバス１２にデータをおかなければならない時期がある。
当分野の技術者には、システム１０のアーキテクチャ内のフレーム・バッファ１７を除去し、フレーム・バッファ・オペレーションをメイン・メモリ１３の記憶スペースの一部で行う場合、グラフィックス・コントローラ１６はバス１２およびメモリ・コントローラ１３を通るロング・パスを利用して、データを取り扱い、転送しなければならないことが理解されるだろう。この待ち時間を短縮するために、第１図のシステム内のフレーム・バッファによって与えられる記憶装置をメイン・メモリ内の記憶スペースと置き換えるときに、グラフィックス・コントローラの制御の下で、オペレーションを加速する、改善されたアーキテクチャが設計されている。
第２図はグラフィックス・コントローラの制御下で表示されるデータの記憶装置をメイン・メモリに与える場合に、グラフィックス・コントローラの制御下でオペレーションを加速するように設計された、改善されたアーキテクチャを示している。第２図のシステム２０からわかるように、図示のシステム２０はシステム１０の各種の構成要素の間で情報を搬送するようになされた高速ローカル・バス２２へのアクセスを制御するブリッジ回路２４へ、プロセッサ・バスによって接続されている中央演算処理装置１１を含んでいる。典型的なシステム２０において、各種の入出力装置がバス・マスタおよびバス・スレーブ回路としてバス２２に接続されている。本発明においては、たとえば、出力表示装置１８へのデータの取扱いおよび転送を制御するグラフィックス・コントローラ２６を、バス・マスタまたはスレーブとしてバス２２へ接続することもできる。サウンド・ボード、フレーム・バッファなどのその他の入出力装置を同様な態様でバス２２に接続することもできる。
ブリッジ回路２４をメモリ・バスによってメイン・メモリ１３に接続することもできる。電力がシステム２０に与えられている期間中に情報を記憶するために、従来技術の技術者に周知の態様で構成されているＤＲＡＭ、ＶＲＡＭまたはその他のランダム・アクセス・メモリで、メイン・メモリ１３を構成することができる。第１図のシステム１０と同様に、ブリッジ回路２４は２次キャッシュ・コントローラ、２次キャッシュ（Ｌ２キャッシュと呼ばれることがよくある）、メモリ・コントローラ２５、データを記憶するためのいくつかのバッファ、ならびにプロセッサ、メイン・メモリ、およびローカル・バスの間でのデータおよびアドレスの転送を可能とするデータおよびアドレス・パスを含むであろう。これらの構成要素はブリッジ回路２４の一体部分であっても、あるいは回路板上で他の構成要素に接続されているものであってもよい。
システム１０と対照的に、システム２０のグラフィックス・コントローラ２６はバス２２へだけでなく、メモリ・バスへも接続されている。これらの接続により、グラフィックス・コントローラ２６は、メモリ・バスへアクセスしたとき、直接グラフィックス・コントローラ自体へ、および表示装置１８へのデータの転送を制御することができる。メイン・メモリ１３へのこのアクセスにより、グラフィックス・コントローラ２６は、メイン・メモリ１３内でのデータの記憶、読取り、および取扱いを行って、メイン・メモリ１３の一部がフレーム・バッファの態様で機能する。
第３図は本発明を実施するための第２図に示されている回路の一部の実施形態の１つの詳細なブロック図である。メイン・メモリの一部をグラフィックス・フレーム・バッファの機能に置き換えるためには、グラフィックス・コントローラがメイン・メモリへアクセスして、グラフィックスの表示に必要な各種の取扱いを実施できるようにする必要がある。第３図には、メモリ・コントローラ２５、グラフィックス・コントローラ２６、およびメイン・メモリ１３が示されている。メモリ・コントローラ２５はバス１２との間で情報の送受信を行い、クロック入力ＣＬＫを受け取るように接続されている。同様に、グラフィックス・コントローラ２６はバス１２との間で情報の送受信を行い、クロック入力ＣＬＫを受け取るように接続されている。メモリ・コントローラ２５およびグラフィックス・コントローラ２６は、複数の制御信号をメイン・メモリ１３へ与えるように接続されている。これらの信号は書込み可能信号ＷＥ＃、行アクセス・ストローブＲＡＳ＃、および列アクセス・ストローブＣＡＳ＃を含んでいる。さらに、メモリ・アドレスＭＡＤＤＲがメモリのアクセス中にメモリ・アドレス・バス上で駆動される。データはこれらの信号の制御下でメモリ・データ・バス上でメイン・メモリ１３との間で転送される。
一般に、あるコントローラがメモリ・バスへアクセスし、メモリ・オペレーションが生じる場合、有効なメモリ・アドレスＭＡＤＤＲがバス上に駆動され、ＲＡＳ＃信号がアサートされて、メモリ・アドレスを使用して適切な行の選択を可能とし、その後、１つまたは複数のＣＡＳ＃信号のアサートによって、アドレス指定された列の選択を可能とする。
本発明が利用できるシステムの１つでは、メモリ・コントローラ２５は、メモリ・バスがリリースされた場合には常に制御がメモリ・コントローラへ戻るようにメモリ・バスを制御する。他のシステムにおいては、２つ以上のコントローラのいずれかが、使用終了後、アクセスが他のコントローラによって要求されるまで、バスの制御を保持するようにすることができる。
第３図の回路において、メモリ・コントローラ２５がメモリ・バスの制御を行っていると想定すると、グラフィックス・コントローラ２６がメモリ・オペレーションを行うことを望んでいる場合、グラフィックス・コントローラ２６はグラフィックス・コントローラがメモリ・バスへのアクセスを望んでいることをメモリ・コントローラへ示すメモリ・バス要求信号ＭＲＥＱ＃をアサートする。メモリ・コントローラ２５がメモリ・バスを使用していない場合、メモリ・コントローラ２５はメモリ・バス許可信号ＭＧＮＴ＃をグラフィックス・コントローラ２６へアサートすることによって、応答する。これはグラフィックス・コントローラ２６に対して、メモリ・バスの制御を有しており、そのバス上で読み書きを行えることを示している。これに対し、メモリ・コントローラ２５がメモリ・バスを使用している場合、メモリ・コントローラ２５はそのオペレーションを完了してから、バスをグラフィックス・コントローラ２６へリリースする。メモリ・コントローラはメモリ・アドレス・ラインをトライステート化し、ＲＡＳ＃およびＣＡＳ＃信号をデアサートし、およびグラフィックス・コントローラ２６に対してメモリ・バス許可信号ＭＧＮＴ＃をアサートすることによって、メモリ・バスをリリースする。
メモリ・バスへの２つのコントローラの直接アクセスを可能とする際に生じる問題は、他のコントローラへバスの制御を渡すコントローラによって、ＲＡＳ＃信号をデアサートした後、行および列選択回路をプリチャージするのに所定の期間が必要なことである。クロック速度とＤＲＡＭメモリ・アレイ内の個々の構成要素両方によって左右されるため、プリチャージ時間が特定のシステムによって変動する。１つのシステムにおいて、プリチャージ時間は３クロック・サイクルである。他のシステムにおいては、他の長さのプリチャージ時間が必要となる。行アクセス・ストローブをアサートする前にプリチャージを行って、適切な行の選択を行わなければならないため、バスを一方のコントローラによってリリースし、他のコントローラによってアサートした後、少なくともこの長さの時間を与える必要がある。これに対し、プリチャージが起こる時間の長さをこのわかっている期間に制限して、コントローラ間での制御の移動（渡し）でサイクルが無駄にならないようにすることが望ましい。バス・コントローラの移動が生じる前に、所定のオペレーションが完了しなければならない、バス・コントローラ間の制御の他の移動でも同じ問題が生じ得る。
本発明はグラフィックス・コントローラ２６がメイン・メモリ１３へのアクセスを要求した場合に可能な２つの異なる状況のいずれかにおいて、メモリ・コントローラ２５からグラフィックス・コントローラ２６へのメモリ・バス制御の移動時間をできるだけ短くするものである。メモリ・バス制御の移動が関与していないが、所定のオペレーションを完了してから、バス制御の移動が行われる状況でも、本発明を利用することができる。第４図および第５図は本発明の特定の実施形態で生じる２つの異なるオペレーションのタイミングを示す。第４図はメモリ・コントローラがメモリ・バスの制御を有しているが、メモリ・バスを使用していない場合のオペレーションのタイミングを示し、第５図はメモリ・コントローラがメモリ・バスを使用している場合のオペレーションのタイミングを示す。第６図は本発明を遂行するのに関与するステップを示す。
バス制御の移動時間を最も短くするために、メモリ・コントローラ２５はまず、グラフィックス・コントローラ２６がＭＲＥＱ＃信号をアサートしたとき（第４図および第５図の各々における点「ａ」）に、ＲＡＳラインの状態を判定する。ＲＡＳラインの状態は点「ｂ」における次のクロックのエッジにおいてメモリ・コントローラ２５によって判定される。ＲＡＳ信号が第４図に示すように高く、ＲＡＳ＃がメモリ・コントローラ２５によってアサートされていないことを示している場合、行われる移動オペレーションは高速移動オペレーションとなり、ＲＡＳ信号が第５図に示すように低く、ＲＡＳ＃がメモリ・コントローラ２５によってアサートされていることを示している場合、移動オペレーションは低速オペレーションとなる。
ＲＡＳ信号が第５図に示すように低く、ＲＡＳ＃がメモリ・コントローラ２５によってアサートされていることを示している場合には、メモリ・コントローラ２５に行われているオペレーションの終了してメモリ・バスをリリースする準備ができるまで、何も行われない。オペレーションが終了するのは第５図のサイクル３中である。オペレーションが終了したこと、およびＭＲＥＱ＃信号がグラフィックス・コントローラによってアサートされていることをメモリ・コントローラ２５が認識しているため、メモリ・コントローラはメモリ・オペレーションを完了すると直ちに、３つの事項を行う。メモリ・コントローラ２５はＲＡＳラインを高に駆動して、ＲＡＳ＃信号をデアサートし、ＲＡＳプリチャージを開始し（第５図の点「ｅ」参照）、メモリ・アドレス・ラインをトライステート化し（第５図の点「ｉ」参照）、かつメモリ・バス許可信号ＭＧＮＴ＃をグラフィックス・コントローラ２６に対してアサートする。これはグラフィックス・コントローラ２６に対して、メモリ・バスの制御を行えることを示す。１サイクル後に、メモリ・コントローラ２５はＲＡＳラインをトライステート化し、グラフィックス・コントローラ２６がこれらのラインを駆動できるようにする。
できるだけ早く機能するように、グラフィックス・コントローラ２６は、グラフィックス・コントローラがＭＲＥＱ＃信号をアサートしたときに、あるインターバルを開始するタイミング回路２７（または、同様なタイミング回路）を含んでいる。タイミング回路２７はＭＧＮＴ＃信号が復帰したときに、これを感知する。ＭＲＥＱ＃信号が最初にアサートされた後の次のクロック内にＭＧＮＴ＃信号が復帰した場合には、グラフィックス・コントローラは直ちにバスの制御を取得し、高速移動オペレーションを行って、これを達成する。ただし、第５図において、メモリ・オペレーションが完了するまで、ＭＧＮＴ＃信号はメモリ・コントローラによって戻されない。これが起こった場合、メモリ・コントローラ２５は１サイクルの間ＲＡＳラインを駆動して高とし、クロック・エッジでＭＧＮＴ＃信号をアサートする（第５図の点「ｃ」で示す）。ＭＧＮＴ＃信号がプリセット期間内にタイミング回路によってサンプルされないため、グラフィックス・コントローラ２６のタイミング回路２７は移動オペレーションを低速移動オペレーションとする。ＲＡＳラインを１クロックの間駆動した後、メモリ・コントローラ２５はＲＡＳラインをトライステート化し（第５図の点「ｆ」において）、このタインはドリフトして、若干低くなるが、プル・アップ抵抗（第３図において抵抗２８によって例示されている）によって高に保持される。低速移動オペレーションを行うにあたり、ＭＧＮＴ＃信号の感知後の次のサイクルにおいて、グラフィックス・コントローラ２６はＲＡＳラインを再度高に駆動してから（第５図の点「ｇ」において）、メモリ・コントローラによってトライステート化された後でドリフトして、低くなる。同時に、グラフィックス・コントローラ２６はメモリ・アドレス・ライン上でメモリ・アドレスを駆動する（第５図の点「ｊ」において）。次いで、１サイクル後に、グラフィックス・コントローラ２６はＲＡＳラインを低に駆動することによってＲＡＳ＃信号をアサートする（第５図の点「ｈ」によって示されている）。
ＭＲＥＱ＃がアサートされているときにメモリ・コントローラがバスを使用している場合に行われるメモリ・コントローラ２５からグラフィックス・コントローラ２６へのメモリ・バスの低速移動を示している第５図からわかるように、グラフィックス・コントローラ２６によるＲＡＳ＃信号のアサート（第５図において点「ｈ」で示されている）までの、メモリ・コントローラ２５によるバス上でのオペレーションの終了（第５図において点「ｃ」および点「ｅ」で示されている）からの期間はちょうど３サイクルとなる。例示した回路の場合。ＲＡＳプリチャージがメモリ・コントローラ操作の終了時に直ちに始まり、ＲＡＳラインをプリチャージするのに必要な時間の間だけ継続するため、これが遷移に対して考えられる最も短い時間である。したがって、本発明は低速移動シーケンスを使用した２つのコントローラの間の制御の移動の時間を最も短いものとする。
ＭＲＥＱ＃信号がグラフィックス・コントローラ２６によってアサートされたときに、メモリ・コントローラ２５が制御を有しているが、メモリ・バスを使用していない、第４図に示した場合に、メモリ・コントローラ２５は、点「ｂ」における次のクロックのエッジにおけるＲＡＳラインの状態を感知することによって、ＭＲＥＱ＃信号がグラフィックス・コントローラ２６によってアサートされた場合（第４図の点「ａ」）のＲＡＳ信号の状態を再度判定する。ＲＡＳ信号が高で（第４図におけるように）、メモリ・コントローラ２５がメモリ・バスに対して何らかのオペレーションを行っておらず、かつＲＡＳラインの充電が少なくとも１サイクルの間継続している（少なくとも、第５図の点「ｅ」による）ことを示している場合、メモリ・コントローラ２５は以前に高に駆動されているＲＡＳラインをトライステート化し（第５図の点「ｆ」参照）、メモリ・アドレス・ラインをトライステート化し（第５図の点「ｉ」参照）、グラフィックス・コントローラ２６に対してメモリ・バス許可信号ＭＧＮＴ＃をアサートすることによってＭＲＥＱ＃信号に応答する。
ＭＧＮＴ＃信号はグラフィックス・コントローラ２６に対して、メモリ・バスの制御を取得できることを示す。グラフィックス・コントローラ２６は高速移動オペレーションを示すＭＲＥＱ＃アサート後のインターバル内の次のクロック・エッジにおいてＭＧＮＴ＃信号を感知する（第４図の点「ｄ」参照）。タイミング回路２７はプリセット・インターバル内で受信が行われたことを検出し、グラフィックス・コントローラ２６を高速移動オペレーションへ切り換える。高速移動において、同じクロック・サイクルにおけるＭＧＮＴ＃信号の感知の直後に、グラフィックス・コントローラ２６はＲＡＳラインを高に駆動し（第４図の点「ｇ」において）、ＲＡＳラインの充電が継続するようにする。同時に、グラフィックス・コントローラ２６はメモリ・アドレス・ライン上でそのメモリ・アドレスを駆動する（第４図の点「ｊ」において）。次いで、１サイクル後に、グラフィックス・コントローラ２６はＲＡＳラインを低に駆動することによってＲＡＳ＃信号をアサートする（第４図の点「ｈ」によって示されている）。
メモリ・コントローラがバスを使用していない場合に生じる、メモリ・コントローラ２５からグラフィックス・コントローラ２６へのメモリ・バスの高速移動を示している第４図において、ＲＡＳラインが高に駆動され、ＭＧＮＴ＃信号が感知されるのと同じサイクルにおいて、メモリ・アドレスがアサートされることに留意すべきである。これは低速移動オペレーションと同様に、メモリ・コントローラ２５によるオペレーションの終了（少なくとも、第４図の点「ｅ」によって生じるように示されている）から、グラフィックス・コントローラ２６によるＲＡＳ＃信号のアサート（第４図の点「ｈ」で示されている）までの期間をちょうど３サイクルにすることを可能とする。ＲＡＳラインの状態を高であると感知することを高速移動シーケンスが示しているが、感知されたときにどれ位の長さの間、高であったかを示していないため（第４図の点「ｅ」前方のハッチング部分はラインが任意の点で高になっていることを示している）、これはＲＡＳラインのプリチャージを完了するのに考えられる最短の時間であり、したがって、ＲＡＳラインの完全なプリチャージに充分な時間をかけなければならない。例示した回路の場合、ＲＡＳプリチャージ時間の測定がメモリ・コントローラに対するＭＲＥＱ＃信号のアサート時に直ちに始まり、ＲＡＳラインをプリチャージするのに必要な時間の間だけ継続するため、これが遷移に対して考えられる最も短い時間である。したがって、本発明は２つのコントローラの間の制御移動の時間を最も短いものとする。
本発明を好ましい実施形態によって説明してきたが、本発明の精神および範囲から逸脱することなく、当分野の技術者が各種の改変および変更を行えることを理解されたい。たとえば、２つ以上のコントローラ、バス・マスタ、プロセッサなどがコンピュータ・システム内のメイン・メモリまたはその他のメモリ・アレイに対する同一の信号に対するアクセスを共用しているあらゆる状況で、本発明を使用することができる。同様にして、他のバスの他のバス・コンピュータが固定期間を、あるコントローラから他のコントローラへのバスの移動に関連した詳細を達成するために必要とすることがしばしばあり、あるコントローラから他のコントローラへのバス制御の移動時間をできるだけ短くするのが有用である。本発明はしたがって、以下の請求の範囲によって判断されるべきである。
【図１】
0003749732.tif 000002
【図２】
0003749732.tif 000003
【図３】
0003749732.tif 000004
【図４】
0003749732.tif 000005
【図５】
0003749732.tif 000006
【図６】
0003749732.tif 000007