(57)【特許請求の範囲】
【請求項１】
処理装置とデータ記憶装置との間のインタフェイスを行うためのインタフェイスコントローラであって、前記インタフェイスコントローラが、
前記データ記憶装置と前記処理装置との間でデータの転送の間に、前記データを記憶するためのバッファと、
前記処理装置から読み取り指令を受信するための手段と、
前記読み取り指令を間接読み取り指令として識別し、前記読み取り指令が前記間接読み取り指令として識別された場合、間接読み取りフラグをセットするための手段と、
前記間接読み取りフラグがセットされている場合、間接読み取り指令を合成し、前記データ記憶装置にその合成された間接読み取り指令を送信するための手段であって、前記合成された間接読み取り指令によって、前記データ記憶装置から前記バッファへのデータ転送が連続して行われる、手段と、
間接読み取り指令を受信する毎に、前記バッファから前記処理装置にデータを転送するための手段と、及び
前記間接読み取り指令ではない指令を受信した際、前記合成を停止させるための手段とを含む、インタフェイスコントローラ。
【請求項２】
前記間接読み取り指令ではないデータ転送指令の受信時に、データが前記バッファ内に残っている場合、前記データ記憶装置に対してアドレスリセット指令を送信するための手段を更に含む、請求項１に記載のインタフェイスコントローラ。
【請求項３】
前記間接読み取り指令ではないデータ転送指令の受信時に、前記バッファ内に残っている幾つかのデータ要素のカウントを判定するための手段と、及び
前記アドレスリセット指令と共に、前記カウントを前記データ記憶装置に送信するための手段であって、前記データ記憶装置が、前記カウントに等しい量だけ、データアドレスをリセットする、手段を更に含む、請求項２に記載のインタフェイスコントローラ。
【請求項４】
前記間接読み取り指令を合成するための手段が、
前記処理装置から受信した前記間接読み取り指令を保存指令として保存するための手段と、及び
前記保存指令を前記合成された間接読み取り指令として前記データ記憶装置に送信するための手段とを更に含む、請求項１に記載のインタフェイスコントローラ。
【請求項５】
処理装置とデータ記憶装置との間のインタフェイスを行うための方法であって、その方法が、
(a)前記処理装置から読み取り指令を受信するステップと、
(b)前記読み取り指令を、間接読み取り指令として識別し、前記読み取り指令が前記間接読み取り指令として識別された時に、間接読み取りフラグをセットするステップと、
(c)前記間接読み取りフラグがセットされている場合に、間接読み取り指令を合成し、その合成された間接読み取り指令を前記データ記憶装置に送信するステップであって、前記合成された間接読み取り指令によって、前記データ記憶装置から前記バッファへのデータ転送が連続して行われる、ステップと、
(d)間接読み取り指令を受信する毎に、前記バッファから前記処理装置にデータを転送するステップと、及び
(e)前記間接読み取り指令ではないデータ転送指令を受信した際、前記合成を停止させるステップとからなる、方法。
【請求項６】
前記ステップ(e)が、
(e1)前記間接読み取り指令ではない前記データ転送指令の受信時に、データが前記バッファに残っている場合、前記データ記憶装置にアドレスリセット指令を送信するステップを更に含む、請求項５に記載の方法。
【請求項７】
前記ステップ(e1)が、
(e1a)前記間接読み取り指令ではない前記データ転送指令の受信時に、前記バッファに残っている幾つかのデータ要素のカウントを判定するステップと、及び
(e1b)前記アドレスリセット指令と共に、前記カウントを前記データ記憶装置に送信するステップであって、前記データ記憶装置が、前記カウントに等しい量だけ、データアドレスをリセットする、ステップとを更に含む、請求項６に記載の方法。
【請求項８】
前記ステップ(c)が、
(c1)前記処理装置から受信した前記間接読み取り指令を保存指令として保存するステップと、及び
(c2)前記保存指令を前記合成された間接読み取り指令として前記データ記憶装置に送るステップとを更に含む、請求項５に記載の方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、コンピュータ・システムに関するものであり、より詳しくは、こうしたコンピュータ・システムにおける周辺装置コントローラに関するものである。とりわけ、本発明は、グラフィック装置コントローラにおけるホスト・コンピュータ・インタフェイスとフレーム・バッファ・コントローラの間の並行読み取り処理を実現するための装置、及び方法に関するものである。
【０００２】
【従来の技術】
コンピュータ・システムにおけるグラフィック・コントローラが高性能であることは、システムの高い対話性を実現する上で重要である。メモリからの読み取りが行われる時のアクセス時間を低減させるため、プロセッサ(CPU)とメモリ・バンク間の回路に、並行処理設計が組み込まれる場合が多い。通常、この並行処理は、メモリの制御を担う１つ、又は複数の回路だけで実施され、CPUをメモリにインタフェイスする回路では実施されない。
【０００３】
メモリのタイプによっては、アクセス時に間接アドレス指定が使われうる。間接アドレス指定は、実際に、メモリをアドレス指定するために用いられる、間接アドレス・レジスタを含む場合が多い。間接アドレス指定を利用するには、まず、CPUが間接アドレス・レジスタ内にメモリ・アドレスを記憶する。次にCPUは、メモリ・アドレスを含まない間接読み取り、又は書き込み指令を発行する。メモリ・コントローラは、間接読み取り、又は書き込み指令を受信すると、間接アドレス・レジスタ内に記憶されているアドレスのメモリ位置からデータを送り返すか、又は前記メモリ位置にデータを記憶し、その後、次の間接読み取り、又は書き込みに備えて、間接アドレス・レジスタをインクリメント、又はデクリメントする。間接アドレス・レジスタは、一定値、即ち一般には、間接読み取り、又は書き込み時に読み取られた、又は書き込まれたバイト数だけ、インクリメント、又はデクリメントされる。
【０００４】
メモリ・コントローラは、メモリから幾つかのバイトを事前読み出しするように設計されている場合もあり、この場合、前記バイトのアドレスは、間接読み取りアドレス・レジスタを利用して現在読み取られているバイトに隣接している。コントローラの、この「先読み」動作は、メモリの読み取りサイクル時間と、メモリ・コントローラがインタフェイスにデータを送るのに必要とする時間を重複させる。
【０００５】
しかし、一般的なグラフィック装置コントローラでは、グラフィック装置コントローラ内に含まれている、CPUインタフェイス・コントローラとフレーム・バッファ（メモリ）・コントローラを接続する、追加のフレーム・バッファ・データ・バスが設けられている。フレーム・バッファ・コントローラにおける先読みは、このフレーム・バッファ・データ・バス以上に性能を改良できない。
【０００６】
従って、当該技術において、グラフィック装置コントローラにおける並行読み取り処理を実現する方法、又は装置の改良が必要とされているのは明らかである。更に、グラフィック装置コントローラにおけるフレーム・バッファ・コントローラとCPUインタフェイス・コントローラのフレーム・バッファ・データ・バスよりも性能を向上させる、こうした方法、又は装置も必要とされている。本発明は、当該技術におけるこれらの、及びその他の要求を満たすものである。
【０００７】
【発明が解決しようとする課題】
本発明の課題は、グラフィック装置コントローラとプロセッサ間の並行読み取り処理を提供することにある。
【０００８】
本発明のもう１つの課題は、こうしたグラフィック装置コントローラにおけるフレーム・バッファ・コントローラに対する追加の読み取り指令を合成して、フレーム・バッファ・コントローラに、フレーム・バッファからの追加のデータを読み取らせることによって、こうした並行処理を実現することにある。
【０００９】
本発明のもう１つの課題は、非読み取り指令を受信すると、読み取り指令の合成を停止することにある。
【００１０】
本発明のもう１つの課題は、プロセッサによって、全ての先読みデータが用いられるわけではない場合、必要に応じて、フレーム・バッファ・コントローラ内のアドレスをリセットすることにある。
【００１１】
【課題を解決するための手段】
本発明の以上の、及びその他の課題は、グラフィック・コントローラ内のCPUインタフェイスが、フレーム・バッファ・データ・バスによってCPUインタフェイスに接続されたフレーム・バッファ（メモリ）・コントローラに、読み取りアクセス指令を転送する方法を修正することによって、改良された並行処理を達成する方法、及び装置において実現される。通常、このインタフェイスは、メモリ・コントローラに対して、CPUによって要求された読み取りデータの各バイト、又は各ワード毎に１つの読み取り指令を転送する。このデータが、メモリ・コントローラから、前記インタフェイスによって受信されると、このデータはCPUに送られ、現在の読み取りアクセス指令が廃棄される。CPUによって読み取りトランザクションが起動された結果、メモリ・コントローラに、それ以上の指令が転送されることはない。
【００１２】
本発明の方法、及び装置は、CPUから第１の読み取り指令を受信した後に、メモリ・コントローラに対して連続した読み取り指令のソースを供給することによって、CPUインタフェイスとメモリ・コントローラ間の指令構造に修正を加える。これは、読み取り指令を合成して、フレーム・バッファ・コントローラに送ることによって実施される。この指令は、新しい読み取り指令を生成するか、又はメモリ・コントローラに与えられた第１の読み取り指令を廃棄するのではなく、保存することによって合成される。メモリ・コントローラに送られた追加の指令によって、メモリ・コントローラが、連続的なデータの読み出し、そのデータのインタフェイスへの送信を効果的に行い、このインタフェイスは、CPUからの次の読み取り指令に備えて、そのデータを記憶する。このCPUインタフェイスが、CPUから第２、及び後続の読み取り要求を受信すると、CPUインタフェイス内のFIFOの出力における現在のバイト、又はワードが、即座にCPUに返送され、メモリ・コントローラに対して明示的に読み取りアクセス指令を転送する必要も、結果得られるデータを待つ必要もない。
【００１３】
これは、CPUが読み取り指令合成操作を開始させたタイプの読み取り指令ではないトランザクションを、メモリ・コントローラに対して発行するまで継続される。この新しいトランザクションを受信すると、FIFOのデータが不要になるので、インタフェイスは、FIFOの内容を廃棄する。インタフェイスに先読みを実施させた読み取り指令が、間接読み取り指令である場合、インタフェイスは、メモリ・コントローラに通知して、メモリ・コントローラに、CPUが用いた実際のデータ量を反映するように、間接読み取りアドレスのリセットを実施させる。
【００１４】
本発明の以上の、及びその他の課題、特徴、及び利点は、添付の図と共に示された、以下のより詳細な説明を読むことによって、より理解されるであろう。
【００１５】
【実施例】
以下の説明は、現時点で最良と考えられる本発明の実施態様に関するものである。この説明は、制限を意味するものではなく、単に、本発明の一般原理を説明するためのものにすぎない。本発明の範囲は、特許請求の範囲に基づいて判断されるべきである。
【００１６】
図１は、本発明を含むコンピュータ・システムのブロック図を示している。ここで図１を参照すると、コンピュータ・システム100は、システム・バス104を介して、コンピュータ・システム100の他の構成装置と通信を行う処理要素102を含んでいる。キーボード106は、コンピュータ・システム100に対するテキスト入力を可能にし、マウス110は、コンピュータ・システム100に対してグラフィカルに位置を指定するための入力を可能にする。グラフィック・ディスプレイ108は、コンピュータ・システム100のユーザに示されるグラフィック、及びテキスト出力を提供するものであり、本発明を含んでいる。ディスク112は、コンピュータ・システム100のオペレーティング・システム、及び他のユーザ・データを記憶する。メモリ116は、オペレーティング・システム118、及びアプリケーション・プログラム120を含んでいる。
【００１７】
図２は、図１のグラフィック・ディスプレイ108のブロック図を示している。ここで、図２を参照すると、システム・バス104はグラフィック・ディスプレイ108の機能を実施するのに必要な制御論理回路を提供するグラフィック・コントローラ202に接続されている。グラフィックCRT 206に表示されることになる、システム・バス104からのデータは、フレーム・バッファ204内に記憶される。本発明は、グラフィック・コントローラ202の一部である。
【００１８】
図３は、本発明を含むグラフィック・コントローラ202の部分に関する詳細なブロック図を示している。ここで、図３を参照すると、インタフェイス・コントローラ302は、指令FIFO 304、及び読み取りFIFO 306を制御するための制御論理を提供する。図４、及び５に関連する後述の制御信号が、制御バス312、及び314に含まれている。CPUからの指令は、システム・バス104を介して指令FIFO 304に到達する。インタフェイス・コントローラ302は、間接読み取り指令を認識すると、本発明の機能を実施する。しかし、当該技術の熟練者には明らかなように、本発明は、任意のタイプ、又はあらゆるタイプのデータ転送指令で機能する。
【００１９】
インタフェイス・コントローラ302は、間接読み取り指令が指令FIFO 304に丁度入るのを認識すると、まず、他の全ての指令が処理されて指令FIFO 304を通過するまで待機し、次に、インタフェイス・コントローラ302内に含まれていて、間接読み取り指令が指令FIFO 304に入った後で、その指令が指令FIFO 304に残るようにする、間接読み取りフラグ(IND_FLAG)をセットする。間接読み取り指令を指令FIFO 304に残したまま、フレーム・バッファ・コントローラ308が、間接アドレス・レジスタ310によってアドレス指定されたメモリ位置から情報を読み取り、次の読み取り指令を予想して間接アドレス・レジスタ310をインクリメント、又はデクリメントし、読み取りFIFO 306が満杯になるまで、バス318を介して、読み取りFIFO 306に情報を送り返す指令を、バス316を介して、フレーム・バッファ・コントローラ308に対して連続的に送信する。従って、インタフェイス・コントローラ302は、最後の間接読み取り指令を指令FIFO 304に保存することによって、間接読み取り指令を合成する。この指令の合成は、フレーム・バッファ・コントローラに、データを読み取らせ、そのデータをフレーム・バッファ・バス208を介し、更にバス318を介して、読み取りFIFO 306に転送させる。システム・バス104を経由して次の間接読み取り指令が到達すると、データは、読み取りFIFO 306において、すぐに使用可能となり、即座にプロセッサに送り返される。
【００２０】
当該技術の熟練者には明らかなように、インタフェイス・コントローラ302は、読み取り指令を、バス314を経由して、指令FIFO 304に直接記憶することによって、指令を合成することも可能であり、この場合、使用されるアドレスは、間接アドレス・レジスタ310から得られたものではなく、インタフェイス・コントローラ302によって合成されたものであってもよい。従って、フレーム・バッファ・コントローラが、間接アドレス・レジスタを備えていない場合には、インタフェイス・コントローラ302が、間接アドレス・レジスタを含むことも可能である。間接読み取り指令ではない指令が、システム・バス104を経由して到達すると、即ち、フレーム・バッファに対する幾つかの他の形態による通常アクセスが発生した場合、インタフェイス・コントローラ302は合成プロセスを停止し、指令FIFO 304からの最後の間接読み取り指令を解放する。データが読み取りFIFOに残っている場合、又はフレーム・バッファ・コントローラ308が「先読み」データを有している場合、通常のアクセス指令を受信すると、インタフェイス・コントローラ302は、読み取りFIFO、及び先読みデータを空にし、バス314を経由し、指令FIFOを通ってフレーム・バッファ・コントローラに指令を送り、フレーム・バッファ・コントローラが、読み取りFIFO 306から廃棄されたデータに関する読み取りが実施されなかった場合に、間接アドレス・レジスタ310が有するべき値になるよう、間接アドレス・レジスタ310を更新する。例えば、通常アクセスの指令を受信した時に、３ワードの情報が読み取りFIFO 306に残っているとすると、インタフェイス・コントローラ302は、フレーム・バッファ204から余分な３ワードが読み取られていなければ、含まれていたであろうアドレスを、間接アドレス・レジスタが含むように、フレーム・バッファ・コントローラ308に指令を与えて、３カウントだけ、間接アドレス・レジスタをデクリメントする。
【００２１】
図４、及び図５は、本発明を実施するインタフェイス・コントローラ302における制御論理回路の部分に関する状態図である。ここで、図４、及び図５を参照すると、インタフェイス・コントローラは、通常、読み取り指令を受信するまで、領域402によって識別される機能、即ち、書き込み関連機能のような他の状態マシン機能を実施する。実際に実施する場合、インタフェイス・コントローラ内において、全ての指令は、共通のアイドル状態で受信される。読み取り、及び間接読み取り以外の指令は、他の状態マシン機能402によって実施される。
【００２２】
システム・バス104上で、読み取り指令が受信されると、制御は、アイドル状態404に移行する。この状態マシンは、他の状態マシン機能を実施しているため、現時点では、IND_FLAGはセットされていない。IND_FLAGは、間接読み取りが進行中であることを示しており、ここでは他の状態マシン機能を実施しているため、間接読み取りの進行中ではなく、従ってこのフラグはセットされない。
【００２３】
読み取り指令が通常の読み取り指令の場合、即ち、間接読み取り指令ではない場合、IND_FLAGはセットされないので、制御は、アイドル状態404から読み取り指令ロード状態406に移行する。この状態では、読み取り指令が、システム・バス104から指令FIFO 304（図３）にロードされ、その後、指令FIFO 304からフレーム・バッファ・コントローラ308に送られる。次に、制御は、自動的に、読み取りFIFO(RFIFO)待機状態412に移行し、フレーム・バッファ・コントローラが読み取り指令を処理し、フレーム・バッファ204からデータを読み取り、読み取りFIFO 306にデータを送るまで、待機する。データが読み取りFIFO 306に転送されると、RFIFO_DATA_AVL信号が活動化し、読み取りFIFO待機状態412から読み取りFIFOアンロード状態414への移行が行われる。読み取りFIFOアンロード状態414では、読み取りFIFOデータがアンロードされ、そのデータがシステム・バス104を経由してCPUに転送され、その後、状態はアイドル状態404に戻る。こうして、通常の読み取り指令が、フレーム・バッファから、１単位の情報、一般的には１ワードの情報を検索し、この１単位の情報を、システム・バス104を経由してCPUに送る。通常の読み取り指令の場合、追加的な読み取りは発生しない。
【００２４】
受信した読み取り指令が、間接読み取り指令(IND_READ)であって、IND_FLAGがセットされていない場合、アイドル状態404は指令FIFOを検査し、指令FIFOが空かどうか判定する。指令FIFOが空でなければ、アイドル状態404は、指令FIFO(CFIFO)待機状態408に移行し、指令FIFOが完全に空になるまで、状態408にとどまる。指令FIFOが、完全に空になると、状態408は、間接読み取りロード状態410に移行し、IND_FLAGがセットされて、読み取り指令が、システム・バス104から指令FIFOにロードされる。
【００２５】
読み取り指令を受信した時に、指令FIFOが既に空である場合、アイドル状態404は、直接、間接読み取りロード状態410に移行して、IND_FLAGがセットされ、この状態に移行する間に、読み取り指令が指令FIFOにロードされる。間接読み取りロード状態410は、RFIFO_DATA_AVL信号を検査して、読み取りデータが、既に読み取りFIFO 306内に存在するかどうかを判定する。読み取りデータが存在しなければ、RFIFO_DATA_AVL信号は、偽になり、状態410は読み取りFIFO待機状態412に移行し、フレーム・バッファ・コントローラ308によって、データが読み取りFIFOに転送されるまで、待機する。読み取りFIFOにおいて、データが既に使用可能であれば、状態410は読み取りFIFOアンロード状態414に移行し、データが読み取りFIFOからアンロードされ、システム・バス104を経由してCPUに転送され、その後、状態414はアイドル状態404に戻る。
【００２６】
受信した指令が間接読み取り指令であって、間接フラグが既にセットされているが、RFIFO_DATA_AVL信号がセットされていない、即ち、データが読み取りFIFO 306にまだ存在していないことを表している場合、アイドル状態404は読み取りFIFO待機状態412に移行して、読み取りFIFOにおいてデータが使用可能になるまで待機し、使用可能になると、制御は、読み取りFIFOアンロード状態414に移行し、データを読み取りFIFOからアンロードし、システム・バス104を経由してCPUに送る。
【００２７】
受信した指令が、間接読み取り指令であって、間接フラグが既にセットされており、RFIFO_DATA_AVL信号がセットされている、即ち、読み取りFIFO 306に、既にデータが存在していることが示されている場合、アイドル状態404はすぐに読み取りFIFOアンロード状態414に移行し、データを読み取りFIFOからアンロードし、システム・バス104を経由してCPUに送る。従って、フレーム・バッファから転送されたデータを待つことなく、読み取りFIFOからすぐにデータを供給し、その一方で、フレーム・バッファ・コントローラが、並行して、フレーム・バッファから隣接データを読み取り、読み取りFIFOにそのデータを位置付けることによって、並列読み取り処理が提供される。
【００２８】
これは、間接読み取り指令以外の指令が、指令FIFOで受信され、アイドル状態404によって識別されるまで継続される。指令が通常の書き込み指令であって、IND_FLAGがセットされていなければ、アイドル状態404は他の状態マシン機能402に戻り、そこで書き込み指令が処理される。間接フラグがセットされていないので、間接読み取りは、事前処理がされておらず、読み取りFIFO 306にデータは残っていない。
【００２９】
アイドル状態404が、通常のアクセス指令、即ち、通常書き込み、又は通常読み取りを検出し、IND_FLAGがセットされている、即ち、間接読み取り指令が処理中であることを表している場合、アイドル状態404は、IND_FLAGをリセットし、フレーム・バッファ・コントローラによって指令FIFOの読み取り指令が削除できるようになり、そこで状態404は、図５に示す読み取りFIFOフラッシュ状態502に移行する。これが発生する場合、先行する間接読み取り指令によって、データは、フレーム・バッファ204から読み取りFIFO 306に転送されるが、CPUは、データが読み取りFIFO 306から転送されてCPUに戻らないことを表す、幾つかの他の指令を発行している。従って、図５の状態マシンの部分は、読み取りFIFO 306からの読み取りデータを削除して、フレーム・バッファ・コントローラ308内に位置する間接アドレス・レジスタをリセットしなければならない。
【００３０】
読み取りFIFOフラッシュ状態502は、RFIFO_DATA_AVL信号を検査し、それがセットされた状態のままである限り、読み取りFIFO 306内に残ったデータ単位数がどれだけになるかを示すためにカウンタをインクリメントする、INC_FLUSH_CTR信号をセットし、又読み取りFIFO 306から１単位のデータがフラッシュされる、UNLOAD_RFIFO信号もセットする。読み取りFIFO 306が空になると、状態502は状態504に移行し、メモリがアイドル状態になるのを待つ。
【００３１】
読み取りFIFOフラッシュ状態502は読み取りFIFOを空にするが、フレーム・バッファ・コントローラ308は、先読み中の可能性もあり、あるいは、指令FIFOからアンロードされたばかりの読み取り指令の処理中である可能性もあり、従って、追加データを読み取りFIFO 306に位置付ける可能性がある。状態504は、MEM_BUSY信号が真である、即ち、フレーム・バッファ・コントローラがフレーム・バッファからデータを読み取っているためビジー状態であることを表している限り、何も行わない。フレーム・バッファ・コントローラがもはやビジー状態でなくなると、メモリ・アイドル待機状態504は、RFIFO_DATA_AVL信号の検査を行い、それがセットされている、即ち、読み取りFIFOに追加データが残っている場合、フラッシュ・カウンタをインクリメントし、状態502によって行われたのと同様の方法で、UNLOAD_FIFO信号をセットする。これは、読み取りFIFO 306が再び空になるまで、継続される。上述のような方法で、読み取りFIFOフラッシュ状態502、及びメモリ・アイドル待機状態504は、読み取りFIFO 306からの元のデータを完全に空にし、フレーム・バッファ・コントローラ308の先読み機能によって、読み取りFIFO 306内に位置付けられたデータも空にする。従って、ステップ504が完了すると、読み取りデータは、システムのどこにも残されていない。従って、メモリがもはやビジー状態でなくなり、RFIFO_DATA_AVL信号が偽になると、状態504は間接アドレス・リストア状態506に移行する。間接アドレス・リストア状態506は、INC_FLUSH_CTRに従ってインクリメントされたカウンタの内容を、指令FIFOを介してフレーム・バッファ・コントローラに送信し、フレーム・バッファ・コントローラに、そのカウント量だけ、間接アドレス・レジスタの内容を調整させる。間接アドレス・リストア状態506は、次に、受信した指令を検査し、それが通常の読み取り指令であれば、状態506は、図４の読み取り指令ロード状態406に戻り、処理を継続する。受信した指令が、書き込み指令であれば、状態506は、図４に示す他の状態マシン機能402に戻る。
【００３２】
本発明の、現時点において好適な実施例に関する説明を行ってきたが、ここで明らかなように、本発明の課題は、完全に達成されており、当該技術の熟練者には分かるように、本発明の意図、及び範囲から逸脱することなく、構造、及び回路に関する多くの変更、及び本発明の広範な異なる実施例、及び応用例が考えられる。本発明の開示、及び説明は例示を意図したものであって、本発明を制限するものではなく、本発明の範囲は、特許請求の範囲で定義されることが好ましい。
【００３３】
以下に本発明の実施態様を列挙する。
【００３４】
１．  処理装置とデータ記憶装置の間のインタフェイスを行うためのインタフェイス・コントローラであって、前記インタフェイス・コントローラが、
前記データ記憶装置と前記処理装置の間でデータが転送される時に、前記データを記憶するためのバッファ、
前記処理装置から読み取り指令を受信するための手段、
前記読み取り指令を読み取り指令の第１タイプとして識別し、前記読み取り指令が読み取り指令の前記第１タイプとして識別された場合、間接フラグをセットする手段、
前記間接フラグがセットされている場合、前記第１タイプの読み取り指令を合成し、前記データ記憶装置に合成された前記読み取り指令を送信する手段であって、合成された前記読み取り指令によって、前記データ転送装置から前記バッファにデータが転送され、更に、追加読み取り指令が合成され、前記データ記憶装置から前記バッファへのデータ転送速度以上の速度で、前記データ記憶装置に送信される前記手段、
前記第１タイプの読み取り指令を受信する毎に、前記バッファから前記処理装置にデータを転送する手段、及び
読み取り指令の前記第１タイプではない指令を受信すると、前記合成を停止する手段を含むインタフェイス・コントローラ。
【００３５】
２．  読み取り指令の前記第１タイプではないデータ転送指令の受信時に、前記データが前記バッファ内に残っている場合、前記データ記憶装置に対してアドレス・リセット指令を送信する手段を更に含むことを特徴とする、項番１に記載のインタフェイス・コントローラ。
【００３６】
３．  読み取り指令の前記第１タイプではないデータ転送指令の受信時に、前記バッファ内に残っている幾つかの前記データ要素のカウントを判定する手段、及び
前記アドレス・リセット指令と共に、前記カウントを前記データ記憶装置に送信する手段であって、前記データ記憶装置が、前記カウントに等しい量だけ、データ・アドレスをリセットする前記手段を更に含むことを特徴とする、項番２に記載のインタフェイス・コントローラ。
【００３７】
４．  読み取り指令を合成するための前記手段が、
前記処理装置から受信する前記読み取り指令を保存指令として保存する手段、及び
前記保存指令を合成された前記読み取り指令として前記データ記憶装置に送信する手段を更に含むことを特徴とする、項番１に記載のインタフェイス・コントローラ。
【００３８】
５．  処理装置からデータを受信し、前記データを表示するグラフィック・コントローラであって、前記グラフィック・コントローラが、
前記処理装置から指令を受信するように接続されたインタフェイス・コントローラ、
フレーム・バッファ・メモリに対するアクセスを制御するフレーム・バッファ・コントローラであって、フレーム・バッファ・データ・バスを経由して、前記インタフェイス・コントローラに接続されている前記フレーム・バッファ・コントローラ、
前記フレーム・バッファ・コントローラと前記処理装置の間で前記データを転送する時に、データを記憶する、前記インタフェイス・コントローラに含まれている、読み取りバッファ、
前記処理装置から読み取り指令を受信する前記インタフェイス・コントローラ内の指令バッファ、
前記読み取り指令を読み取り指令の第１タイプとして識別し、前記読み取り指令が読み取り指令の前記第１タイプとして識別された時に、間接フラグをセットする、前記インタフェイス・コントローラ内の第１指令論理回路、
前記第１タイプの読み取り指令を合成し、前記間接フラグがセットされている時に、合成された前記読み取り指令を前記フレーム・バッファ・コントローラに送信する、前記インタフェイス・コントローラ内の合成論理回路であって、合成された前記読み取り指令によって、前記フレーム・バッファ・データ・バスを経由して、前記データ転送装置が前記バッファにデータを転送し、更に、追加読み取り指令が合成され、前記フレーム・バッファ・コントローラから前記バッファへのデータ転送速度以上の速度で、前記フレーム・バッファ・コントローラに送信する、前記合成論理回路、
前記第１タイプの読み取り指令を受信する毎に、前記バッファから前記処理装置にデータを転送する、前記インタフェイス・コントローラ内のアンロード論理回路、及び
読み取り指令の前記第１タイプではない指令を受信すると、前記合成を停止する、前記インタフェイス・コントローラ内の第２指令論理回路を含む、前記グラフィック・コントローラ。
【００３９】
６．  単一状態マシンが、
前記第１指令論理回路、
前記合成論理回路、
前記アンロード論理回路、及び
前記第２指令論理回路を含むことを特徴とする、項番５に記載のグラフィック・コントローラ。
【００４０】
７．  読み取り指令の前記第１タイプではない前記読み取り指令の受信時に、データが前記バッファに残っている場合、前記フレーム・バッファ・コントローラにアドレス・リセット指令を送信する、前記インタフェイス・コントローラ内のフラッシュ論理回路を更に含むことを特徴とする、項番５に記載のグラフィック・コントローラ。
【００４１】
８．  前記フラッシュ論理回路が、読み取り指令の前記第１タイプではない前記読み取り指令の受信時に、バッファに残っている幾つかのデータ要素のカウントを判定し、前記アドレス・リセット指令と共に、前記カウントを前記フレーム・バッファ・コントローラに送信するカウント論理回路を更に含み、前記フレーム・バッファ・コントローラが、前記カウントに等しい量だけ、データ・アドレスをリセットすることを特徴とする、項番７に記載のグラフィック・コントローラ。
【００４２】
９．  前記合成論理回路が、前記処理装置から受信する前記読み取り指令を保存指令として保存し、前記保存指令を合成された前記読み取り指令として前記フレーム・バッファ・コントローラに送信する、前記インタフェイス・コントローラ内の保存論理回路を更に含むことを特徴とする、項番５に記載のグラフィック・コントローラ。
【００４３】
10．  処理装置とデータ記憶装置の間のインタフェイスを行うための方法であって、前記方法が、
(a)前記処理装置から読み取り指令を受信するステップ、
(b)前記読み取り指令を、読み取り指令の第１タイプとして識別し、前記読み取り指令が読み取り指令の前記第１タイプとして識別された時に、間接フラグをセットするステップ、
(c)前記間接フラグがセットされている場合に、前記第１タイプの読み取り指令を合成し、合成された前記読み取り指令を前記データ記憶装置に送信するステップであって、合成された前記読み取り指令によって、前記データ転送装置がバッファにデータを転送し、更に、追加読み取り指令が合成され、前記データ記憶装置から前記バッファへのデータ転送速度以上の速度で、前記データ記憶装置に送信する前記ステップ、
(d)前記第１タイプの読み取り指令を受信する毎に、前記バッファから前記処理装置にデータを転送するステップ、及び
(e)読み取り指令の前記第１タイプではないデータ転送指令を受信すると、前記合成を停止するステップを含むことを特徴とする前記方法。
【００４４】
11．  ステップ(e)が、
(e1)読み取り指令の前記第１タイプではない前記読み取り指令の受信時に、データが前記バッファに残っている場合、前記データ記憶装置にアドレス・リセット指令を送信するステップを更に含むことを特徴とする、項番10に記載の方法。
【００４５】
12．  ステップ(e)が、
(e1a)読み取り指令の前記第１タイプではない前記読み取り指令の受信時に、前記バッファに残っている幾つかのデータ要素のカウントを判定するステップ、及び
(e1b)前記アドレス・リセット指令と共に、前記カウントを前記データ記憶装置に送信するステップであって、前記データ記憶装置が、前記カウントに等しい量だけ、データ・アドレスをリセットするステップを更に含むことを特徴とする、項番11に記載の方法。
【００４６】
13．  ステップ(c)が、
(c1)前記処理装置から受信する前記読み取り指令を保存指令として保存するステップ、及び
(c2)前記保存指令を合成された前記データ転送指令として前記データ記憶装置に送るステップを更に含むことを特徴とする、項番10に記載の方法。
【００４７】
【発明の効果】
本発明によって、グラフィック装置コントローラにおけるフレーム・バッファ・コントローラとCPUインタフェイス・コントローラのフレーム・バッファ・データ・バスよりも性能を向上させる、並行読み取り処理を実現する方法、及び装置が提供される。
【図面の簡単な説明】
【図１】本発明を組み込んだコンピュータ・システムのブロック図である。
【図２】本発明を含むグラフィック・ディスプレイのブロック図である。
【図３】本発明を含む図２のグラフィック・コントローラ装置の部分に関する詳細ブロック図である。
【図４】本発明を実施する図２のグラフィック・コントローラ装置における制御論理回路の部分に関する状態図である。
【図５】本発明を実施する図２のグラフィック・コントローラ装置における制御論理回路の部分に関する状態図である。
【符号の説明】
100  コンピュータ・システム
104  システム・バス
108  グラフィック・ディスプレイ
114  通信インタフェイス
116  メモリ
202  グラフィックス・コントローラ
204  フレーム・バッファ
206  グラフィックCRT
302  インタフェイス・コントローラ
304  指令FIFO
306  読み取りFIFO
308  フレーム・バッファ・コントローラ
310  間接アドレス・レジスタ
【図１】
0003756215.tif 000002
【図２】
0003756215.tif 000003
【図３】
0003756215.tif 000004
【図４】
0003756215.tif 000005
【図５】
0003756215.tif 000006