(57)【特許請求の範囲】
【請求項１】
ディスプレイ・データを先入れ先出し（ＦＩＦＯ）メモリに書き込む、またディスプレイ・データを先入れ先出しメモリから読み取る装置であって、
ＦＩＦＯに結合され、ＦＩＦＯ書込み信号に応答してディスプレイ・データの一部分を最初のディスプレイ・データ・エントリから最後のディスプレイ・データ・エントリまで満たすようＦＩＦＯに書き込むように構成されたメモリ制御装置と、
特定のＦＩＦＯディスプレイ・データ・エントリを指示する値を記憶するように構成されたプログラム可能メモリ回路と、
ＦＩＦＯおよびメモリ制御装置に結合され、前記特定のＦＩＦＯディスプレイ・データ・エントリを指示する値によって指示されている特定のディスプレイ・データ・エントリがＦＩＦＯから読み取られたことに応答してＦＩＦＯ書込み信号をメモリ制御装置に向けて生成するように構成された出力ディスプレイ制御装置と
を含む装置。
【請求項２】
ＦＩＦＯが、アンダーフロー状態が発生したときにアンダーフロー信号を生成するように構成され、ＦＩＦＯがさらに、オーバフロー状態が発生したときにオーバフロー信号を生成するように構成され、出力ディスプレイ制御装置が、アンダーフロー信号およびオーバフロー信号を受信するように結合され、かつ前記特定のＦＩＦＯディスプレイ・データ・エントリを指示する値が前記オーバフロー信号またはアンダーフロー信号に応答して増分または減分される、請求項１に記載の装置。
【請求項３】
ＦＩＦＯ中の現在読み取られているＦＩＦＯディスプレイ・データ・エントリを指示する値を示すように構成されたカウンタ回路をさらに含む、請求項１に記載の装置。
【請求項４】
さらに、現在読み取られているＦＩＦＯディスプレイ・データ・エントリを指示する前記値が前記プログラム可能メモリ回路に記憶されている特定のＦＩＦＯディスプレイ・データ・エントリを指示する値と等しくなったことに応答して、前記出力ディスプレイ制御装置がＦＩＦＯ書込み信号を生成する、請求項３に記載の装置。
【請求項５】
プログラム可能メモリ回路がディスプレイ・データ・エントリ・レジスタである、請求項１に記載の装置。
【請求項６】
カウンタ回路がカウンタ・レジスタである、請求項３に記載の装置。
【請求項７】
メモリ制御装置が第１クロック信号の制御下でディスプレイ・データの一部分をＦＩＦＯにロードし、ディスプレイ・データが、第２クロック信号の制御下でＦＩＦＯから転送される、請求項１に記載の装置。
【請求項８】
前記第１クロック信号および前記第２クロック信号が可変のクロック周波数を有する、請求項７に記載の装置。
【請求項９】
前記第１クロック信号がシステム・クロック信号であり、前記第２クロック信号がビデオ・クロック信号である、請求項８に記載の装置。
【請求項１０】
メモリ制御装置に結合されたメモリをさらに含み、前記メモリ制御装置がこのメモリからディスプレイ・データを供給する、請求項１に記載の装置。
【請求項１１】
出力ディスプレイをさらに含み、ディスプレイ・データが、ＦＩＦＯ読取り信号に応答してＦＩＦＯから出力ディスプレイに転送される、請求項１に記載の装置。
【請求項１２】
ディスプレイ・データを先入れ先出し（ＦＩＦＯ）メモリに書き込む、またディスプレイ・データを先入れ先出しメモリから読み取る方法であって、
プログラム可能メモリ回路に、特定のＦＩＦＯディスプレイ・データ・エントリを指示する値を記憶する段階と、
ＦＩＦＯ書込み信号に応答して、ディスプレイ・データの一部分を最初のディスプレイ・データ・エントリから最後のディスプレイ・データ・エントリまで満たすようＦＩＦＯに書き込む段階と、
それぞれのＦＩＦＯ読取り信号に応答して、複数のディスプレイ・データ・エントリのそれぞれを順次ＦＩＦＯから読み取る段階と、
前記特定のＦＩＦＯディスプレイ・データ・エントリを指示する値によって指示されている特定のディスプレイ・データ・エントリがＦＩＦＯから読み取られたことに応答して、ＦＩＦＯ書込み信号を生成する段階と
を含む方法。
【請求項１３】
初期化期間後にＦＩＦＯ中でオーバフロー状態およびアンダーフロー状態が発生する可能性を低下させるために、前記特定のＦＩＦＯディスプレイ・データ・エントリを指示する値を調節する段階をさらに含む、請求項１２に記載の方法。
【請求項１４】
調節する段階が、
ＦＩＦＯ中のオーバフロー状態の発生に応答して、ＦＩＦＯによってオーバフロー信号を生成する段階と、
オーバフロー信号に応答して、前記特定のＦＩＦＯディスプレイ・データ・エントリを指示する値を増分する段階と、
ＦＩＦＯ中のアンダーフロー状態の発生に応答して、ＦＩＦＯによってアンダーフロー信号を生成する段階と、
アンダーフロー信号に応答して、前記特定のＦＩＦＯディスプレイ・データ・エントリを指示する値を減分する段階と
を含む、請求項１３に記載の方法。
【請求項１５】
増分する段階が、走査線の末端に対応するディスプレイ・データ・エントリがＦＩＦＯから読み取られた後で実行される、請求項１４に記載の方法。
【請求項１６】
減分する段階が、走査線の末端に対応するディスプレイ・データ・エントリがＦＩＦＯから読み取られた後で実行される、請求項１４に記載の方法。
【請求項１７】
メモリ制御装置が第１クロック信号の制御下でディスプレイ・データの一部分を受信し、ディスプレイ・データが、第２クロック信号の制御下で順次ＦＩＦＯから読み取られる、請求項１２に記載の方法。
【請求項１８】
第１および第２クロック信号が可変のクロック周波数を有する、請求項１７に記載の方法。
【請求項１９】
第１クロック信号がシステム・クロック信号であり、第２クロック信号がビデオ・クロック信号である、請求項１８に記載の方法。
【請求項２０】
メモリ制御装置が、ディスプレイ・データの一部分をメモリから受信する、請求項１２に記載の方法。
【請求項２１】
ＦＩＦＯから順次読み取られたディスプレイ・データが出力ディスプレイに出力される、請求項１２に記載の方法。
【請求項２２】
プログラム可能メモリ回路がレジスタである、請求項１２に記載の方法。
【請求項２３】
中央処理装置（ＣＰＵ）と、ＣＰＵに結合されたシステム・メモリと、ＣＰＵに結合されたバスと、このバスに結合された、出力ディスプレイ上にディスプレイ・データを生成および表示するグラフィックス・サブシステムとを備えたコンピュータ・システムにおいて、前記グラフィックス・サブシステムが：
ローカル・メモリに記憶されたディスプレイ・データと、
先入れ先出し（ＦＩＦＯ）メモリと、
ローカル・メモリおよびＦＩＦＯに結合され、ＦＩＦＯ書込み信号に応答してディスプレイ・データの一部分を最初のディスプレイ・データ・エントリから最後のディスプレイ・データ・エントリまで満たすようＦＩＦＯに書き込むように構成されたメモリ制御装置と、
ＦＩＦＯおよびメモリ制御装置に結合され、特定のディスプレイ・データ・エントリがＦＩＦＯから読み取られたことに応答してＦＩＦＯ書込み信号をメモリ制御装置に向けて生成するように構成された出力ディスプレイ制御装置と、
ＦＩＦＯ読取り信号に応答してＦＩＦＯからディスプレイ・データを受信するように結合され、ディスプレイ・データを出力ディスプレイに出力するビデオ出力回路と、
前記出力ディスプレイ制御装置に結合され、該出力ディスプレイ制御装置が前記特定のディスプレイ・データエントリが読み取られたことを認識できるよう、前記特定の
ＦＩＦＯディスプレイ・データ・エントリを指示する値を記憶するように構成されたプログラム可能メモリ回路と
を含んでいる、
ことを特徴とするコンピュータ・システム。
【請求項２４】
ＦＩＦＯが、ＦＩＦＯ中でオーバフロー状態が発生したときにオーバフロー信号を生成し、ＦＩＦＯ中でアンダーフロー状態が発生したときにアンダーフロー信号を生成する、請求項２３に記載のコンピュータ・システム。
【請求項２５】
オーバフロー信号に応答して、前記特定のＦＩＦＯディスプレイ・データ・エントリを指示する値がオーバフロー信号に応答して増分する、請求項２４に記載のコンピュータ・システム。
【請求項２６】
アンダーフロー信号に応答して、前記特定のＦＩＦＯディスプレイ・データ・エントリを指示する値が減分する、請求項２４に記載のコンピュータ・システム。
【請求項２７】
プログラム可能メモリ回路が出力ディスプレイ制御装置中のレジスタである、請求項２３に記載のコンピュータ・システム。
【請求項２８】
メモリ制御装置が第１クロック信号の制御下でディスプレイ・データの一部分をＦＩＦＯに書き込み、ディスプレイ・データが第２クロック信号の制御下でＦＩＦＯから順次読み取られる、請求項２３に記載のコンピュータ・システム。
【請求項２９】
第１および第２クロック信号が可変のクロック周波数を有する、請求項２８に記載のコンピュータ・システム。
【請求項３０】
第１クロック信号がシステム・クロック信号であり、第２クロック信号がビデオ・クロック信号である、請求項２９に記載のコンピュータ・システム。
【発明の詳細な説明】
〔発明の分野〕
本発明は一般にコンピュータ・システムに関し、さらに詳細には、本発明はグラフィックス・コンピュータ・システムに関する。
〔発明の背景〕
パーソナル・コンピュータやワークステーション・コンピュータなどは、陰極線管（ＣＲＴ）やモニタなどの出力ディスプレイ上にグラフィックスおよびビデオを生成する。近年、こうしたコンピュータ・システムの出力ディスプレイはますます進歩し、フレキシブルになっている。コンピュータ業界は、より複雑なグラフィックス、より多い色、および可変解像度を出力ディスプレイ上に生成する傾向にある。したがって、グラフィックス・コンピュータ・システムの設計者は、こうした設計の需要を満たすように、関連するコンピュータ・グラフィックス・ハードウェアを設計しなければならない。
第１図は、グラフィックス・ディスプレイをサポートする現在のコンピュータ・システムで一般に見られるコンピュータ・グラフィックス・ハードウェアの一部分を示す図である。第１図に示すように、従来技術のコンピュータ・システム１０１は、ディスプレイ・メモリ（図示せず）からディスプレイ・データ１１３を受信するために結合されたメモリ制御装置１０３を有する。メモリ制御装置１０３から受信されたディスプレイ・データ１１３は、その後、先入れ先出しメモリ（ＦＩＦＯ）１０５に転送される。ディスプレイ・データ１１３のエントリがＦＩＦＯ１０５中に書き込まれた後で、ＦＩＦＯの読取りサイクル（ＦＩＦＯ１０５中のディスプレイ・データ１１３がＦＩＦＯ１０５から順次に読み取られ、出力ディスプレイ１１５に転送されるサイクル）を開始できる。ディスプレイ・メモリから出力ディスプレイ１１５へのディスプレイ・データ１１３のエントリの転送は、第１図に示す出力ディスプレイ制御装置１０７によって制御される。出力ディスプレイ制御装置１０７は、ＦＩＦＯ書込み信号１０９をメモリ制御装置１０３に向けて生成する。ＦＩＦＯ書込み信号１０９は、出力ディスプレイ制御装置からのリクエスト（要求）であり、このリクエスト信号によって、メモリ制御装置１０３は、ディスプレイ・メモリからディスプレイ・データ１１３をフェッチし、その後このディスプレイ・データ１１３をＦＩＦＯ１０５中にロードする。第１図に示すように、メモリ制御装置１０３はシステム・クロック１１７によってクロックされる。さらに第１図に示すように、ディスプレイ・データ１１３は、出力ディスプレイ制御装置１０７によって生成された一連のＦＩＦＯ読取り信号１１１に応答して、出力ディスプレイ１１５に出力される。ＦＩＦＯ読取り信号１１１は、出力ディスプレイ制御装置１０７からのリクエスト（要求）であり、そのリクエスト信号によって、ディスプレイ・データ１１３のエントリは、ビデオ・クロック１１９の制御下で、ＦＩＦＯ１０５から出力ディスプレイ１１５へ転送される。
従来技術のコンピュータ・システム１０１では、システム・クロック１１７およびビデオ・クロック１１９は一般に異なるクロック周波数を有することを理解されたい。さらに詳細には、ディスプレイ・データ１１３がＦＩＦＯ１０５に書き込まれる速度は、その後で出力ディスプレイ１１５によって読み取られる、つまり消費される速度と異なる。結果として、コンピュータ・システムの設計者は、ＦＩＦＯ１０５が満杯になる可能性があるという問題に直面する。ＦＩＦＯ１０５が満杯になると、出力ディスプレイ１１５によってＦＩＦＯ１０５中のディスプレイ・データ１１３のエントリが読み取られる機会があるまでは、新規のディスプレイ・データ１１３のエントリが、既存のディスプレイ・データ１１３のエントリに上書きされる可能性がある。この状態は、一般にオーバフロー状態と呼ばれる。この状態の結果として、いくつかのディスプレイ・データ１１３のエントリが失われる、または出力ディスプレイ１１５に適当に書き込まれないこともある。
従来技術のコンピュータ・システム１０１などのコンピュータ・システムの１つの要件は、ディスプレイ・データ１１３を連続して出力ディスプレイ１１５に転送しなければならないことである。したがって、ＦＩＦＯ１０５は空になってはならない。メモリ制御装置１０３に向けてＦＩＦＯ書込み信号１０９を発生してから、関連するディスプレイ・データ１１３のエントリをＦＩＦＯ１０５中に読み取る準備ができるまでの間にいくらか遅れ時間があるので、ＦＩＦＯ読取りサイクルが完了するよりいくらか先にＦＩＦＯ書込み信号１０９を発生し、ＦＩＦＯ１０５が空にならないことを確実にしなければならない。
従来技術のコンピュータ・システム１０１の出力ディスプレイ制御装置１０７が、メモリ制御装置１０３が新規のディスプレイ・データ１１３のエントリをＦＩＦＯ１０５中に再ロードするのに十分な時間だけの待機をしない場合には、アンダーフロー状態が発生することになることにも留意されたい。すなわち、ＦＩＦＯ１０５が空であるときに、出力ディスプレイ制御装置１０７がＦＩＦＯ１０５に発行するＦＩＦＯ読取り信号１１１が早すぎる場合に、アンダーフロー状態が発生し、誤ったディスプレイ・データ１１３が出力ディスプレイ１１５に書き込まれることになる。当然、この状態も受容できるものではない。要するに、ＦＩＦＯ１０５は空になることも満杯になることも許されない。
ＦＩＦＯ読取りサイクル中にＦＩＦＯ１０５の再ロードを開始するためにＦＩＦＯ書込み信号１０９をメモリ制御装置１０３に発行すべき最適な時間を、設計者が前もって正確に予見することは非常に困難であることを理解されたい。上述のように、ＦＩＦＯ１０５がオーバフロー状態を回避するために不相応に大きく設計されると、回路設計者は、出力ディスプレイ制御装置１０７に、ＦＩＦＯ読取りサイクル中の非常に早い時点でＦＩＦＯ１０５を再ロードするＦＩＦＯ書込み信号１０９を発行させることができる。ＦＩＦＯ読取りサイクル中のＦＩＦＯ書込み信号１０９の発行が遅すぎると、新規のディスプレイ・データ１１３のエントリがＦＩＦＯ１０５に書き込まれるまでＦＩＦＯ１０５が空になり、望ましくないアンダーフロー状態が引き起こされる可能性がある。
出力ディスプレイ制御装置１０７がＦＩＦＯ書込み信号１０９を発行する最適な時間を予見する問題は、システム・クロック１１７および／またはビデオ・クロック１１９が未知である状況ではさらに悪化する。コンピュータ・システムの設計者は、システム・クロック１１７およびビデオ・クロック１１９のクロック周波数を事前に決定することができないことが多いことに留意されたい。さらに、コンピュータ上で動作するソフトウェアでシステム・クロック１１７およびビデオ・クロック１１９の周波数を突き止めることは困難である。結果として、ディスプレイ・データ１１３のエントリをＦＩＦＯ１０５に書き込む速度およびディスプレイ・データ１１３のエントリをＦＩＦＯ１０５から読み取る速度は未知である。したがって、最悪の場合のシナリオに対処するために、グラフィックス・コンピュータ・システムの設計者は、基板面積を受容できないほど犠牲にする、受容できないほどのコストを生じる非常に大きなＦＩＦＯ１０５を実装して、オーバフローおよびアンダーフロー状態を回避しなければならない。
上述の問題に対処するためにコンピュータの設計者が使用した別の従来技術の解決策は、多くのエントリを有する大きなＦＩＦＯ１０５を実装して、大量のディスプレイ・データ１１３を取り扱うというものである。理論的には、ＦＩＦＯ１０５が無限大に大きくなれば、オーバフロー状態は絶対に発生しない。さらに、出力ディスプレイ制御装置１０７は、出力ディスプレイ１１５によってＦＩＦＯ１０５中の既存の有効ディスプレイ・データ１１３のエントリの全てが消費される前に、適切な時点でＦＩＦＯ書込み信号１０９を発行することができる。したがって、アンダーフロー状態も回避される。このようにして、この従来技術の解決策では、従来技術のコンピュータ・システム１０１に関連するオーバフローおよびアンダーフローの問題に対処している。この従来技術の設計の明白な結果として、不必要に大きくＦＩＦＯ１０５を設計しなければならなくなる。
したがって、オーバフローおよびアンダーフロー状態を最小限に抑えた、ディスプレイ・データ・エントリをメモリから出力ディスプレイに転送することができるＦＩＦＯが必要とされている。さらに、このＦＩＦＯは、不相応に大きくしたり、貴重な基板面積を不必要に犠牲にしたり、高価にしたりしないものであることが必要とされている。さらに、このようなＦＩＦＯは、システム・クロックおよびビデオ・クロックの周波数の未知の組合せを取り扱え、これに適応することができるものとする。このＦＩＦＯは、オーバフローおよびアンダーフロー状態の発生を効果的に最小限に抑え、幅広い種類の現在のグラフィックス・コンピュータ・システムで使用することができる。
〔発明の概要〕
ディスプレイ・データをＦＩＦＯに書き込み、またディスプレイ・データをＦＩＦＯから読み取る方法および装置を開示する。１実施形態では、ディスプレイ・データを受信および供給するように構成されたメモリ制御装置が、ＦＩＦＯに結合される。ＦＩＦＯ書込み信号をメモリ制御装置に向けて生成するように構成された出力ディスプレイ制御装置がＦＩＦＯに結合され、メモリ制御装置が、ＦＩＦＯ書込み信号に応答してディスプレイ・データの一部分をＦＩＦＯに書き込むようになっている。その後、ＦＩＦＯ中のディスプレイ・データの一部分のディスプレイ・データ・エントリは、出力ディスプレイ制御装置が生成したＦＩＦＯ読取り信号に応答して、順次にＦＩＦＯから読み取られる。プラグラム可能レジスタは、ＦＩＦＯ中の特定のディスプレイ・データ・エントリに対応する値を記憶するように構成される。この特定のディスプレイ・データ・エントリがＦＩＦＯから読み取られるときに、出力ディスプレイ制御装置から別のＦＩＦＯ書込み信号がメモリ制御装置に向けて生成され、ディスプレイ・データの別の部分をＦＩＦＯ中にロードする。本発明の追加の特徴および利点は、以下に記載する詳細な説明、図、および請求の範囲から明らかになるであろう。本発明のその他の特徴および利点は、添付の図面および下記の詳細な説明から明らかになるであろう。
【図面の簡単な説明】
制限的なものではなく例示的なものとして、本発明を添付の図面に図示する。
第１図は、従来技術のＦＩＦＯを含む従来技術のコンピュータ・システムの一部分を示す図である。
第２図は、コンピュータ・システムに実施した本発明を示すブロック図である。
第３図は、本発明のカウンタ・レジスタおよびディスプレイ・データ・エントリ・レジスタと関連して本発明のＦＩＦＯを示す図である。
第４図は、本発明の教示による、特定の事象の発生を表すタイムラインを示す図である。
第５図は、本発明の教示による、例示的なプロセスを表す流れ図である。
〔発明の詳細な説明〕
ディスプレイ・データをＦＩＦＯに書き込み、またディスプレイ・データをＦＩＦＯから読み取る方法および装置を開示する。以下の記述では、本発明が完全に理解されるように、クロック周波数、メモリ・サイズ、消費速度など、多数の特定の詳細を記載する。しかし、本発明を実施する際に必ずしもこれらの特定の詳細を利用する必要はないことは当業者には明らかであろう。その他、本発明を不必要に理解しにくくないように、周知の材料または方法については詳細に記述していない。
本発明は、適度なサイズのＦＩＦＯを使用して、ビデオＦＩＦＯのオーバフローおよびアンダーフロー問題に対する革新的な解決策を提供する。本発明によれば、ＦＩＦＯオーバフローおよび／またはＦＩＦＯアンダーフロー状態の発生が初期化期間後に最小限に抑えられるように、ＦＩＦＯ書込み信号に対するＦＩＦＯ読取り信号のタイミングを調整する、自己調節または自己スロットリング・ビデオＦＩＦＯが組み込まれる。
第２図は、コンピュータ・システム２０１中で実施される本発明をブロック図の形態で示す図である。第２図に示すように、コンピュータ・システム２０１は、バス２２５に結合されたシステム・メモリ２２３および中央処理装置（ＣＰＵ）２２１を含む汎用コンピュータである。グラフィックス・サブシステム２４３はバス２２５に結合される。本発明の１実施形態では、バス２２５はＰＣＩバスである。ＣＰＵ２２１がグラフィックス・サブシステム２４３と交信できる限り、その他のタイプのバスも使用することができることに留意されたい。
第２図に示す実施形態では、グラフィックス・サブシステム２４３は、バス・インタフェース２２７を介してバス２２５に結合される。制御回路２２９は、バス・インタフェース２２７に結合され、また、メモリ制御装置２０３を制御する。ディスプレイ・データ２１３を含むローカル・メモリ２３１は、メモリ制御装置２０３に結合される。ディスプレイ・データ２１３は、最終的に出力ディスプレイ２１５に転送されるディスプレイ情報である。ディスプレイ・データ２１３は、ビデオ・データまたはグラフィックス情報を表すいくつかのディスプレイ・データ・エントリから構成することができることが分かる。メモリ制御装置２０３は、ビデオＦＩＦＯ２０５に結合される。メモリ制御装置２０３およびビデオＦＩＦＯ２０５は、出力ディスプレイ制御装置２０７に結合される。第２図に示すように、メモリ制御装置２０３は、出力制御装置２０７からＦＩＦＯ書込み信号２０９を受信し、ＦＩＦＯ２０５は、出力制御装置２０７からＦＩＦＯ読取り信号２１１を受信する。ＦＩＦＯ２０５の出力はビデオ出力回路２３３に結合され、ビデオ出力回路２３３は出力ディスプレイ２１５に結合される。第２図に示すように、メモリ制御装置２０３はシステム・クロック２１７でクロックされ、ビデオ出力回路２３３はビデオ・クロック２１９でクロックされる。
出力ディスプレイ制御装置２０７は、カウンタ・レジスタ２３５およびディスプレイ・データ・エントリ・レジスタ２３７を含む。さらに、出力ディスプレイ制御装置２０７は、ＦＩＦＯ２０５からアンダーフロー信号２３９およびオーバフロー信号２４１を受信するように結合される。ＦＩＦＯ２０５でアンダーフロー状態が発生すると、出力ディスプレイ制御装置２０７はアンダーフロー信号２３９を介して通知される。ＦＩＦＯ２０５でオーバフロー状態が発生すると、出力ディスプレイ制御装置２０７はオーバフロー信号２４１を介して通知される。
本発明の１実施形態では、ローカル・メモリ２３１を除いて、グラフィックス・サブシステム２４３の全ての要素は同一基板上に存在する。この実施形態では、制御回路２２９は、縮小命令セット・コンピュータ（ＲＩＳＣ）プロセッサ、および命令キャッシュやＶＧＡ互換回路などの支援回路を含む。
本発明では、ＣＲＴやモニタなどの出力ディスプレイが様々な出力モードを有することを考慮に入れている。例えば、出力ディスプレイには様々な出力解像度がある。ディスプレイの解像度が異なると、ビデオ消費速度またはＦＩＦＯ２０５からのビデオ出力速度が影響を受ける。すなわち、ビデオ・クロック２１９の周波数は、出力ディスプレイ２１５の特定の解像度によって決まる。さらに、多くのコンピュータ・システムは可変の出力解像度を有し、出力ディスプレイ２１５の出力解像度をいつでも変更し、それによりいつでもビデオ・クロック２１９の周波数を変更することができるようになっている。例えば、１実施形態では、出力ディスプレイ２１５が６４０×４８０×１６の解像度を有するようにセットされているときには、ビデオ・クロック２１９は３１メガヘルツの周波数を有する。別の例で、出力ディスプレイ２１５が１０２４×７６８×１６の解像度を有するようにセットされているときには、ビデオ・クロック２１９は７８メガヘルツの周波数を有する。このように、ビデオ情報またはディスプレイ・データがＦＩＦＯ２０５から読み取られる速度は、出力解像度の影響を受ける。
さらに、上記で論じたように、メモリ制御装置２０３がビデオ情報またはディスプレイ・データをＦＩＦＯ２０５に書き込む速度は、システム・クロック２１７に関係する。コンピュータ・システムの設計者は、システム・クロック２１７の周波数を事前に知らないことが多いことを理解されたい。この事情は、様々なシステム・クロック２１７の周波数を有する異なる様々なコンピュータ・システム２０１に、グラフィックス・サブシステム２４３を組み込むことができることから説明することができる。さらに、１実施形態の本発明のグラフィック・サブシステム２４３は様々な周波数で動作することができ、様々なシステム・クロック２１７のクロック周波数構成が生じる。
システム・クロック２１７およびビデオ・クロック２１９の周波数の未知の組合せを有することの全体的な影響は、コンピュータ・システムの設計者がＦＩＦＯ書込み信号２０９およびＦＩＦＯ読取り信号２１１の発行を精密に調整して、ＦＩＦＯ２０５中のオーバフローおよびアンダーフロー状態を回避することが、不可能ではないが非常に困難となることである。本発明は、ディスプレイ・データ・エントリ・レジスタ２３７を使用して、この問題の解決策を提供する。
ディスプレイ・データ・エントリ・レジスタ２３７およびＦＩＦＯ２０５を有する本発明の動作は以下のようになる。第３図に示すように、ＦＩＦＯ３０５は０〜Ｎ−１のＮ個のエントリを有するメモリである。ＦＩＦＯ３０５中の各エントリは、ＤＡＴＡ（０）からＤＡＴＡ（Ｎ−１）で示されたディスプレイ・データ・エントリを記憶するように構成される。本発明の１実施形態では、ＦＩＦＯ３０５は１０２４ビットの情報を記憶する１６エントリ×８バイトのメモリである。この実施形態では、３２ビットの情報が一度に読み取られ、ビデオ出力回路２３３に出力される。したがって、ＦＩＦＯ３０５がディスプレイ・データ・エントリで満杯である場合を想定すると、１つのＦＩＦＯ読取りサイクルでＦＩＦＯ３０５全体を読み取るのに、１０２４÷３２個すなわち３２個の別々のＦＩＦＯ読み取り信号２１１が必要となる。したがって、ＦＩＦＯ３０５中には３２個のエントリがあるので、この実施形態ではＮ＝３２となる。例えば、ＦＩＦＯ３０５のアクセス毎に６４ビットの情報を読み取ることができる場合には、ＦＩＦＯ３０５は１０２４÷６４個すなわち１６個のエントリを含むことになり、したがってＮはこの場合には１６に等しくなる。
次に再度第２図を参照し、ディスプレイ・データ２１３がすでにローカル・メモリ２３１に書き込みされていると想定する。その後、出力ディスプレイ制御装置２０７はＦＩＦＯ書込み信号２０９をメモリ制御装置２０３に向けて発行し、ＦＩＦＯ２０５へのロードを行う。これに応じて、メモリ制御装置２０３はディスプレイ・データ２１３の一部分、すなわち１０２４ビットのディスプレイ・データを獲得し、このデータをＦＩＦＯ２０５にロードする。ＦＩＦＯ２０５が１６エントリ×８バイトのＦＩＦＯであり、３２ビットの情報がクロック毎に読み取られると想定すると、ＦＩＦＯ２０５は第３図のＦＩＦＯ３０５に示すように３２個のエントリを含む。メモリ制御装置２０３は、システム・クロック２１７に制御された速度で、ＤＡＴＡ（０）からＤＡＴＡ（Ｎ−１）をＦＩＦＯ２０５に書き込む。その後、出力ディスプレイ制御装置２０７は、ＦＩＦＯ２０５中のディスプレイ・データ２１３のエントリをビデオ出力回路２３３を介して出力ディスプレイ２１５へ順次に転送することを開始する。これを行うために、出力ディスプレイ制御装置２０７は、一連のＦＩＦＯ読取り信号２１１をＦＩＦＯ２０５に発行する。次に再度第３図を参照すると、ＤＡＴＡ（０）中のディスプレイ・データ２１３のエントリは、まずＦＩＦＯ３０５から読み取られ、次いでビデオ出力回路２３３を介して出力ディスプレイ２１５に転送される。その後、出力ディスプレイ制御装置２０７が後続のＦＩＦＯ読取り信号２１１をＦＩＦＯ２０５に発行し、ＤＡＴＡ（１）がＦＩＦＯ３０５から読取られ、ビデオ出力回路２３３を介して出力ディスプレイ２１５に出力される。第３図に示すように、ディスプレイ・データ・エントリ・レジスタ３３７は、ＦＩＦＯ３０５中の特定のエントリをポイントする値を含む。第３図に示す例では、ディスプレイ・データ・エントリ３３７は、ＦＩＦＯ中のＭ番目のエントリ、すなわちＤＡＴＡ（Ｍ）をポイントしている。ＦＩＦＯ読取り信号２１１に応答してＤＡＴＡ（Ｍ）がＦＩＦＯ３０５から読み取られると、出力ディスプレイ制御装置２０７は別のＦＩＦＯ書込み信号２０９をメモリ制御装置２０３に発行し、出力ディスプレイ２１５に転送するディスプレイ・データ２１３の次の部分を、ＦＩＦＯ３０５へ再充填することを開始する。
本発明では、ディスプレイ・データ・エントリ・レジスタ３３７は、ＦＩＦＯ３０５中の特定のディスプレイ・データ２１３のエントリをポイントする値を含むようにプログラムされたプログラム可能レジスタである。特定のディスプレイ・データ２１３のエントリがＦＩＦＯ３０５から読み取られると、後続のＦＩＦＯ書込み信号２０９がメモリ制御装置２０３に発行される。ディスプレイ・データ・エントリ・レジスタ３３７中にプログラムされた特定のディスプレイ・データ２１３のエントリは、ＦＩＦＯ３０５中でのオーバフローおよびアンダーフロー状態の発生を最小限に抑えるように選択される。すなわち、ディスプレイ・データ・エントリ・レジスタ３３７中にプログラムされた値は、後続のＦＩＦＯ書込み信号２０９がＦＩＦＯ読取りサイクル中に（アンダーフロー状態が回避されるように）十分に早く発行されるように選択される。さらに、ディスプレイ・データ・エントリ・レジスタ３３７について選択されたエントリは、オーバフロー状態の発生を回避するためにＦＩＦＯ３０５中で十分な数のメモリ位置が空きとなるように、後続のＦＩＦＯ書込み信号２０９はＦＩＦＯ読取りサイクル中に十分に遅く発行されるように選択される。
アンダーフロー状態は、出力ディスプレイに転送すべき新規のデータがＦＩＦＯ３０５中に存在しないときに、ＦＩＦＯ読取り信号２１１がＦＩＦＯ３０５に発行された場合である。オーバフロー状態は、未だ読み取られていないディスプレイ・データ２１３のエントリでＦＩＦＯが満杯であるときにメモリ制御装置２０３がＦＩＦＯ３０５に書込みを行った場合に起こる。
本発明の１実施形態では、カウンタ・レジスタ３３５は、任意の特定の時間にＦＩＦＯ３０５から読み取られる特定のディスプレイ・データ２１３のエントリをポイントする。したがって、例えば、カウンタ３３５はゼロに等しくなることができ、特定のＦＩＦＯ読取りサイクルの開始時にＦＩＦＯ３０５中の第１エントリをポイントすることができる。その特定のエントリが読み取られた後で、カウンタ３３５は増分されて次の値に等しくなる。このようにして、この例では、カウンタ３３５は１に等しくなる。カウンタ３３５は、ＦＩＦＯ３０５中の最後のエントリに到達した後で、第３図に示すように、「ロールオーバー」してＦＩＦＯ３０５中の第１エントリに戻る。
本発明の１実施形態では、カウンタ・レジスタ３３５中に含まれる値は、ディスプレイ・データ・エントリ・レジスタ３３７に含まれる値と比較される。カウンタ３３５およびディスプレイ・データ・エントリ・レジスタ３３７が等しいときに、ＦＩＦＯ書込み信号２０９が発行される。第３図では、ディスプレイ・データ・エントリ・レジスタ３３７は、ＦＩＦＯ３０５中のＭ番目のエントリをポイントするように示され、カウンタ３３５も、ＦＩＦＯ３０５中のＭ番目のレジスタをポイントするように示されている。このように、本発明によれば、ＦＩＦＯ書込み信号２０９はメモリ制御装置２０３に発行されることになる。
したがって、ディスプレイ・データ・エントリ・レジスタ３３７中にプログラムされた値が適正な値であると想定すると、システム・クロック２１７およびビデオ・クロック２１９について未知のクロック周波数を有するコンピュータ・システム中のＦＩＦＯ２０５中で、アンダーフローおよびオーバフロー状態を回避することができる。本発明のさらに別の利点は、アンダーフローおよびオーバフロー状態を回避するためにＦＩＦＯ２０５または３０５を過度に大きくする必要がないことである。このようにして、不必要なコストおよび基板面積を犠牲にする必要がなくなる。
本発明の別の革新的な態様は、第２図に示すように、アンダーフロー信号２３９およびオーバフロー信号２４１の利用で理解することができる。アンダーフロー信号２３９およびオーバフロー信号２４１により、本発明は自己調節ないし自己スロットリング能力を特色とする。このような自己スロットリング能力により、ディスプレイ・データ・エントリ・レジスタ３３７にプログラムされた特定の値を動的に更新し、システム・クロック２１７およびビデオ・クロック２１９中のクロック周波数の任意の特定の組合せに対応することができる。したがって、ディスプレイ・データ・エントリ・レジスタ３３７中の値は、特定のクロック周波数の組合せに拘わらず動的に調節され、理想的な値をディスプレイ・データ・エントリ・レジスタ３３７にプログラムしてＦＩＦＯ２０５中のオーバフローおよびアンダーフロー状態の発生を最小限に抑えることが保証される。
本発明の自己スロットリングの性質は以下の通りである。上記の例の続きにおいて、次に、ディスプレイ・データ・エントリ・レジスタ３３７に含まれる値が最適化されていないものと想定する。このような状態は、システム始動時やシステム・リセット時などの場合である。次に、ディスプレイ・データ２１３のエントリが第３図のＦＩＦＯ３０５に書込まれており、後続のＦＩＦＯ読取り信号２１１が発行されていると想定する。カウンタ３３５に含まれる値がディスプレイ・データ・エントリ・レジスタ３３７に含まれる値と等しいときに、ＦＩＦＯ書込み信号２０９が第２図のメモリ制御装置２０３に発行される。
次に、メモリ制御装置２０３がローカル・メモリ２３１からのディスプレイ・データ２１３の次の部分についてのＦＩＦＯ３０５への充填を開始する際に、オーバフロー状態が発生するものと想定する。すなわち、メモリ制御装置２０３は、ＦＩＦＯ２０５が「満杯」である時にデータをＦＩＦＯ２０５に「押し込もう」と試みる。これに応じて、ＦＩＦＯ２０５は、出力制御装置２０７によって受信されるオーバフロー２４１信号を生成する。オーバフロー２４１信号の受信に応答して、ディスプレイ・データ・エントリ・レジスタ３３７中の値は第３図に示すように増分する。したがって、次のＦＩＦＯ書込み信号２０９は、ＦＩＦＯ読取りサイクル中の「より遅い時点」で発行されることになる。すなわち、ディスプレイ・データ・エントリ・レジスタ３３７が事前にＤＡＴＡ（Ｍ）をポイントしていた場合には、ディスプレイ・データ・エントリ・レジスタ３３７は、オーバフロー２４１信号に応答して増分した後では、ＤＡＴＡ（Ｍ＋１）をポイントすることになる。結果として、後続のＦＩＦＯ書込み信号２０９がメモリ制御装置２０３に発行されるまで、次のＦＩＦＯ読取りサイクル中に、ＦＩＦＯ３０５中のより多くのデータ・エントリが読み取られて空になることになる。
ディスプレイ・データ・エントリ・レジスタ３３７は、ＦＩＦＯ２０５から受信した各オーバフロー信号に対して増分する。最終的に、ディスプレイ・データ・エントリ・レジスタ３３７は、後続のＦＩＦＯ書込み信号２０９が発行される前にＦＩＦＯ３０５中の十分な数のメモリ位置が読み取られて空になり、ＦＩＦＯ２０５中のオーバフロー状態が回避されるように、最適化されることになる。
同様に、ＦＩＦＯ書込み信号がＦＩＦＯ読取りサイクル中で遅れて発行されると想定すると、メモリ制御装置２０３が任意のディスプレイ・データをＦＩＦＯ３０５に書き込む機会がある前に、ＦＩＦＯ読取り信号２１１がＦＩＦＯ３０５に発行されることもある。これは、ＦＩＦＯ書込み信号２０９がメモリ制御装置に発行された時間と、ディスプレイ・データ２１３のエントリが実際にＦＩＦＯ３０５に書き込まれた時間との間の遅れ時間の結果として起こる可能性がある。結果として、アンダーフロー状態がＦＩＦＯ２０５中で発生することになり、アンダーフロー信号２３９がＦＩＦＯ２０５から出力ディスプレイ制御装置２０７に発行されることになる。
アンダーフロー信号２３９の受信に応答して、ディスプレイ・データ・エントリ・レジスタ３３７中の値はこれにより減分することになる。したがって、ディスプレイ・データ・エントリ・レジスタ３３７が第３図に示すようにＤＡＴＡ（Ｍ）をポイントしていた場合には、ＦＩＦＯ２０５中でアンダーフロー状態が発生した後で、ディスプレイ・データ・エントリ・レジスタ３３７はＤＡＴＡ（Ｍ−１）をポイントしていることになる。これにより、次のＦＩＦＯ書込み信号２０９は、後続のＦＩＦＯ読取りサイクル中でより早く発行されることになる。ディスプレイ・データ・エントリ・レジスタ３３７が適切に調節されるまで、ディスプレイ・データ・エントリ・レジスタ３３７は、アンダーフロー信号２４１が発生するたびに減分することになる。
ある程度の数のオーバフローまたはアンダーフロー状態が、本発明では、ディスプレイ・データ・エントリ・レジスタ３３７中の値が最適化される前には発生する可能性があることに留意されたい。しかし、本発明の１実施形態では、ディスプレイ・データ・エントリ・レジスタ３３７中の値の最適化は非常に迅速に行われるので、コンピュータ・システム２０１のユーザは出力ディスプレイ２１５上で生まれたエラーを識別することができない。換言すれば、本発明は非常に迅速に安定するので、ユーザは画面上のエラーに気づかない。したがって、システム始動時またはシステム・リセット時にディスプレイ・データ・エントリ・レジスタ３３７に含まれる初期値は、本発明の安定時間がかなり短時間であることから無意味なものとなる。本発明の１実施形態では、ディスプレイ・データ・エントリ・レジスタ３３７は、最初に、システム・リセット時に「０」にセットされる。
本発明で起こる事象のいくつかを示すタイムライン（時間軸）が、第４図に時間線４０１として示されている。時間は、時間線４０１の左から右に進行する。ｔ0で、ディスプレイ・データ２１３がグラフィックス・サブシステム２４３のローカル・メモリ２３１に書き込まれる。
ｔ1で、ＦＩＦＯ書込み信号２０９が出力ディスプレイ制御装置２０７からメモリ制御装置２０３に発行され、ローカル・メモリ２３１に事前に書き込まれたディスプレイ・データ２１３の一部分を検索する。メモリ制御装置２０３は、システム・クロック２１７によって制御される速度で、ローカル・メモリ２３１からディスプレイ・データのその部分を獲得する。ディスプレイ・データの獲得された部分のディスプレイ・データ２１３のエントリは、次いでＦＩＦＯ２０５に書き込まれる。
ｔ2で、ｔ1のＦＩＦＯ書込み信号と関連する第１のディスプレイ・データ２１３のエントリが、ＦＩＦＯ２０５から読み取られる。
ｔ3で、ディスプレイ・データ・エントリ・レジスタ３３７によってポイントされた特定のディスプレイ・データ２１３のエントリが、ＦＩＦＯ２０５から読み取られる。したがって、次のＦＩＦＯ書込み信号２０９がメモリ制御装置２０３に発行される。このようにして、メモリ制御装置２０３はディスプレイ・データ２１３の次の部分をローカル・メモリ２３１から獲得し、ＦＩＦＯ２０５中のその時点で空になっているエントリにこのディスプレイ・データを書き込む。
ｔ4で、ｔ3のＦＩＦＯ書込み信号２０９に関連する第１のディスプレイ・データ２１３のエントリが、ＦＩＦＯ２０５から読み取られる。
同様に、ｔ5は、ディスプレイ・データ・エントリ・レジスタ３３７によってポイントされた特定のディスプレイ・データ２１３のエントリがＦＩＦＯ２０５から読み取られ、それにより次のＦＩＦＯ書込み信号２０９がメモリ制御装置２０３に発行される時間を表す。
最後に、ｔ6は、ｔ5の書込み信号２０９に関連する第１のディスプレイ・データ・エントリがＦＩＦＯ２０５から読み取られる時間を表す。
タイムライン４０１中のプロセスは、ｔNにおいてディスプレイ・データ２１３の全てが出力ディスプレイ２１５に出力され終わるまで継続する。
第４図に示すように、ｔ2とｔ4の間の時間は、１つのＦＩＦＯ読取りサイクルの時間を表す。同様に、ｔ4とｔ6の間の時間は、別のＦＩＦＯ読取りサイクルの時間を表す。さらに、ｔ3およびｔ5は、各ＦＩＦＯ読取りサイクル内でＦＩＦＯ書込み信号２０９が発行される時点を表す。本発明によれば、ｔ3およびｔ5は、ＦＩＦＯ２０５中でオーバフローおよびアンダーフロー状態が発生しないように、最適な時点で発行されるように選択される。
システム・クロック２１７およびビデオ・クロックの周波数が変化する可能性に対応するために、本発明の自己スロットリングの性質は、ｔ3およびｔ5を各ＦＩＦＯ読取りサイクル中の最適な時点に選択的にシフトさせ、ＦＩＦＯのアンダーフローおよびオーバフロー状態の発生を最小限に抑える。すなわち、ｔ3およびｔ5は、ＦＩＦＯ２０５中のアンダーフロー状態の発生に応答して、左側、すなわち各ＦＩＦＯ読取りサイクルのより早い時点にシフトする。逆に、ｔ3およびｔ5は、ＦＩＦＯ２０５中のオーバフロー状態の発生に応答して、右側、すなわち各ＦＩＦＯ読取りサイクルのより遅い時点にシフトする。したがって、時点ｔ3およびｔ5は、最適な時点がセットされるまで本発明によって左および／または右にシフトする。
第５図は、本発明の１実施形態の処理段階を表す流れ図５０１である。ディスプレイ・データはローカル・メモリ中に存在し、本発明はディスプレイ・データをローカル・メモリから連続的に読み取ってこれを出力ディスプレイに転送するものと想定する。ブロック５１３に示すように、ＦＩＦＯ読取り信号が生成される。その後、ブロック５１５に示すように、ディスプレイ・データ・エントリがＦＩＦＯから読み取られる。次いで、このディスプレイ・データ・エントリがＦＩＦＯから出力される。次に、特定の走査線が画面上に引かれている間に、アンダーフロー状態が発生したか否かを判定する。当技術分野では周知の通り、出力ディスプレイはいくつかの走査線を含む。この実施形態では、走査線の末端に到達するまで、ディスプレイ・データ・エントリ・レジスタは増分または減分しない。したがって、ブロック５１９に示すように、アンダーフロー状態が発生しない場合には、処理はブロック５３５に進行する。他方、この走査線の間にオーバフロー状態が発生し、ブロック５２１に示すようにこの走査線の末端に到達した場合には、ブロック５２３に示すようにディスプレイ・データ・エントリ・レジスタは減分する。
次に、ブロック５３５に示すように、この特定の走査線の間にオーバフロー状態が発生したかどうかを判定する。発生し、またブロック５３７に示すように走査線の末端に到達した場合には、ブロック５３９に示すようにディスプレイ・データ・エントリ・レジスタは増分する。
その後、処理は処理ブロック５１３に戻り、別の読取り信号が生成される。示すようにこのプロセスは常に繰り返され、ローカル・メモリから出力ディスプレイ２１５へのディスプレイ・データの連続転送を実現する。
このように、適応自己スロットリング・ビデオＦＩＦＯについて説明した。本明細書に記載のビデオＦＩＦＯは、ＦＩＦＯ読取りサイクルに関してＦＩＦＯ書込み信号が発行されるときの最適な調整を提供するプログラム可能レジスタを特徴とする。本発明を使用すれば、望ましくないＦＩＦＯのオーバフローおよびアンダーフロー状態の発生が、初期化期間後最小限に抑えられる。本発明を使用すれば、このようなオーバフローおよびアンダーフロー状態の発生を減少させるためにビデオＦＩＦＯを不必要に大きくする必要はない。さらに、本発明は、システム・クロックおよびビデオ・クロックの様々な、または未知の組合せを有するコンピュータ・システムに適応することができる。したがって、本発明は、低いコストでフレキシブルなグラフィックス・コンピュータ・システムを提供する。
前述の詳細な説明では、ＦＩＦＯにディスプレイ・データを書き込む、またＦＩＦＯからディスプレイ・データを読み取る装置および方法について説明した。本発明の装置および方法について、その特定の例示的な実施形態に関連して説明した。しかし、本発明の趣旨および範囲を逸脱することなく、様々な修正および変更を加えることができることは明らかであろう。したがって、本明細書および図面は、限定的なものではなく例示的なものとみなされたい。
【図１】
0003866770.tif 000002
【図２】
0003866770.tif 000003
【図３】
0003866770.tif 000004
【図４】
0003866770.tif 000005
【図５】
0003866770.tif 000006