(57)【特許請求の範囲】
【請求項１】
ピクセルデータを生成する方法であって、
（ａ）ピクセルデータをフルフレーム・バッファにレンダリングするステップと、
（ｂ）ディスプレイ制御回路に応答して、前記フルフレーム・バッファからディスプレイ装置にピクセルデータを送るステップと、
（ｃ）前記ピクセルデータが前記ディスプレイ装置に送られる際に、前記ピクセルデータを同時に圧縮し、圧縮されたピクセルデータを圧縮フレーム・バッファに記憶するステップと、
（ｄ）前記ピクセルデータが前記ディスプレイ装置に送られる際に、前記ピクセルデータにおける複数の圧縮されたディスプレイ・データエレメントに対応する複数の有効ビットを有効にするステップと、
（ｅ）前記ディスプレイ制御回路による後続の更新において、前記圧縮フレーム・バッファにおける前記ピクセルデータを伸長するステップと、
（ｆ）前記ステップ（ｅ）において伸長されたピクセルデータを、前記有効ビットが有効であり、かつ前記ピクセルデータに関連するダーティビットがセットされていないかぎり、前記ディスプレイ装置に送るステップと、を含む方法。
【請求項２】
ビデオリフレッシュ圧縮システムにおいて、
（ａ）少なくとも１つのビデオフレームを形成するために、ピクセルデータをレンダリングするためのレンダリング手段であって、前記ビデオフレームは、複数のディスプレイ・データエレメントを有し、各ディスプレイ・データエレメントは、複数のピクセルデータを有し、かつ、前記複数のディスプレイ・データエレメントの各々は、互いに独立して圧縮可能であるレンダリング手段と、
（ｂ）前記レンダリング手段からピクセルデータを受け取るために接続され、圧縮されていないディスプレイ・データエレメントをバッファし、供給するためのフルフレーム・バッファ手段と、
（ｃ）圧縮されたディスプレイ・データエレメントをバッファするための圧縮フレーム・バッファ手段と、
（ｄ）前記フルフレーム・バッファ手段と前記圧縮フレーム・バッファ手段の間に接続され、前記ディスプレイ・データエレメントが、前記フルフレーム・バッファ手段から供給される際に、前記ディスプレイ・データエレメントを圧縮し、前記ディスプレイ・データエレメントを前記圧縮フレーム・バッファ手段に記憶するためのデータ圧縮手段と、
（ｅ）前記圧縮フレーム・バッファ手段に接続され、前記ディスプレイ・データエレメントを伸長するためのデータ伸長手段と、
（ｆ）前記データ圧縮手段に応答し、各々の圧縮されたデータエレメントに対応する有効ビットを含み、前記フルフレーム・バッファ手段と前記圧縮フレーム・バッファ手段の間でコヒーレンシを維持するための有効タグ手段と、
（ｇ）前記レンダリング手段に応答して、各々の圧縮されないディスプレイ・データエレメントに対応するダーティビットを含み、前記フルフレーム・バッファ手段における更新の表示を提供するダーティタグ手段と、
（ｈ）前記有効タグ手段およびダーティタグ手段に接続され、かつ、前記有効タグ手段およびダーティタグ手段に応答して、各ディスプレイ・データエレメントが前記フルフレーム・バッファ手段か、または前記圧縮フレーム・バッファ手段のいずれから供給されるかを制御するためのディスプレイ制御手段と、
（ｉ）前記フルフレーム・バッファ手段、前記データ圧縮手段、及び前記ディスプレイ制御手段に接続され、前記ビデオフレームを形成するためにディスプレイ・データエレメントを出力するためのマルチプレクサ手段と、を備える圧縮システム。
【請求項３】
前記ディスプレイ制御手段は、さらに、前記レンダリング手段によるピクセルデータのリフレッシュとの同期をとるために前記フルフレーム・バッファ手段に接続されることを特徴とする請求項２記載の圧縮システム。
【請求項４】
前記ディスプレイ制御手段と前記有効タグ手段に接続され、前記ダーティビットが選抜されるレートをプログラムするためのプログラム可能なフレーム速度制御手段をさらに備えることを特徴とする請求項３記載の圧縮システム。
【請求項５】
前記フルフレーム・バッファ手段及び前記圧縮フレーム・バッファ手段は統合されたメモリにある、ことを特徴とする請求項２記載の圧縮システム。
【請求項６】
前記レンダリング手段は、中央処理装置またはグラフィックエンジンであることを特徴とする請求項２記載の圧縮システム。
【請求項７】
ビデオ・フレームが複数のディスプレイ・データエレメントを有し、各ディスプレイ・データエレメントは複数のピクセルデータを有し、かつ、前記複数のディスプレイ・データエレメントの各々は互いに独立して圧縮可能である、ビデオ・リフレッシュ方法であって、
（ａ）ピクセルデータをフルフレーム・バッファにレンダリングするステップと、
（ｂ）ディスプレイ制御回路に応答して、圧縮されていないディスプレイ・データエレメントを前記フルフレーム・バッファからディスプレイ装置へ送るステップと、
（ｃ）前記圧縮されていないディスプレイ・データエレメントがディスプレイ装置に送られる際に、それを同時に圧縮し、圧縮されたディスプレイ・データエレメントを圧縮フレーム・バッファに記憶するステップと、
（ｄ）前記ステップ（ｃ）において圧縮された、複数の圧縮されたディスプレイ・データエレメントに対応する複数の有効ビットを有効にするとともに、前記ステップ（ａ）でレンダリングされた前記ピクセルデータに応答して、圧縮されないディスプレイ・データエレメントに対応するダーティビットをセットするステップと、
（ｅ）前記ディスプレイ制御回路による後続の更新にあって、有効にセットされた対応する有効ビットを有し、かつ、対応するダーティビットがセットされていない前記圧縮されたディスプレイ・データエレメントの各々に対して、前記圧縮フレーム・バッファにおける前記圧縮されたディスプレイ・データエレメントを伸長するステップと、
（ｆ）ビデオフレームを形成するために、ステップ（ｅ）において伸長された前記ディスプレイ・データエレメントをディスプレイ装置に送り、さもなければ、ステップ（ｂ）におけるように前記フルフレーム・バッファから圧縮されていないディスプレイ・データエレメントを送るステップと、を含む方法。
【請求項８】
ステップ（ｂ）における前記圧縮されていないディスプレイ・データエレメントを前記フルフレーム・バッファからディスプレイ装置に送るレートより遅いレートで、前記ダーティビットを選抜するステップ（ｈ）を含むことを特徴とする請求項７記載の方法。
【請求項９】
ビデオ・フレームが複数のディスプレイ・データエレメントを有し、各ディスプレイ・データエレメントは複数のピクセルデータを有し、かつ、前記複数のディスプレイ・データエレメントの各々は、互いに独立して圧縮可能である、ビデオ・リフレッシュ方法であって、
（ａ）第１のタグと第２のタグを前記ビデオフレームの複数のディスプレイ・データエレメントと関連付けるステップと、
（ｂ）ピクセルデータのソースからフルフレーム・バッファにおけるディスプレイ・データエレメントを更新し、前記ディスプレイ・データエレメントの前記第１のタグをセットするステップと、
（ｃ）ディスプレイ・データエレメントが前記フルフレーム・バッファから出力されるときに、そのディスプレイ・データエレメントと関連した前記第１のタグと前記第２のタグをクリアし、圧縮可能な各ディスプレイ・データエレメントに対して、圧縮し、前記圧縮されたディスプレイ・データエレメントを圧縮フレーム・バッファに記憶し、かつ圧縮可能な各ディスプレイ・データエレメントが前記フルフレーム・バッファから出力されるときに、前記関連付けられた第２のタグをセットするステップと、
（ｄ）前記関連付けられた第１のタグがセットされ、前記関連付けられた第２のタグがクリアされていることを条件として、ビデオフレームのリフレッシュのため前記フルフレーム・バッファからディスプレイ・データエレメントを出力するステップと、
（ｅ）前記関連付けられた第１のタグがセットされず、前記関連付けられた第２のタグがセットされていることを条件として、ビデオフレームのリフレッシュのため前記圧縮フレーム・バッファからディスプレイ・データエレメントを出力し、かつ、伸長するステップと、を含む方法。
【請求項１０】
Ｎをフレームの数とした場合に、ディスプレイ・データエレメントのＮ番目ごとのフレームを選抜するステップをさらに含み、前記ステップ（ｅ）は、さらに、前記関連付けられた第１のタグが選抜されていないことを条件とする、請求項９記載の方法。
【請求項１１】
コンピュータシステムにおいて、
（ａ）ビデオフレームをディスプレイするためのディスプレイであって、各ビデオフレームは複数のデータエレメントを有し、各ディスプレイ・データエレメントは複数のピクセルデータを有し、前記複数のディスプレイ・データエレメントの各々は互いに独立して圧縮可能である、ディスプレイと、
（ｂ）ピクセルデータを与えるプロセッサと、
（ｃ）圧縮されていないディスプレイ・データエレメントを記憶するために、ピクセルデータを受取り、記憶するために前記プロセッサに接続された入力、および圧縮されていないディスプレイ・データエレメントを与える出力を有するフルフレーム・バッファと、
（ｄ）圧縮されたディスプレイ・データエレメントを記憶するために、入力と出力を有する圧縮フレーム・バッファと、
（ｅ）ディスプレイ・データエレメントを受取り、記憶するために前記フルフレーム・バッファからの出力に接続された入力、および前記圧縮フレーム・バッファの入力に接続された出力を有する、ディスプレイ・データエレメントを圧縮するデータ圧縮器と、
（ｆ）前記圧縮フレーム・バッファからの出力に接続された入力、および出力を有するデータ伸長器と、
（ｇ）前記データ圧縮器に応答してセット可能な複数の有効ビットを有し、前記圧縮フレーム・バッファに記憶された各圧縮されたディスプレイ・データエレメントを有効にするとともに、前記プロセッサに応答してセット可能な複数のダーティビットを有し、前記フルフレーム・バッファにおける対応する圧縮されないディスプレイ・データエレメントが変更されたかどうかを特定するためのタグメモリと、
（ｈ）前記タグメモリに接続され、前記タグメモリに応答し、前記フルフレーム・バッファからの圧縮されていないディスプレイ・データエレメントか、または前記圧縮フレーム・バッファからの圧縮されたディスプレイ・データエレメントのいずれかの供給を制御するディスプレイ制御回路と、
（ｉ）前記フルフレーム・バッファからの出力に接続された第１の入力、前記データ伸長器からの出力に接続された第２の入力、前記ディスプレイ制御回路に接続された制御入力、および前記ディスプレイ制御回路に応答し、前記ビデオフレームを形成するために、前記第１と第２の入力からディスプレイ・データエレメントを与えるための出力と、
を備えるコンピュータシステム。
【請求項１２】
ディスプレイ、プロセッサ、および統合されたメモリを有するコンピュータシステムにおいて、前記ディスプレイ上でビデオフレームをリフレッシュする方法は、
（ａ）ビデオフレームを形成するために、前記プロセッサからのピクセルデータを統合されたメモリにあるフルフレーム・バッファへ与えるステップであって、各ビデオフレームは複数のディスプレイ・データエレメントを有し、各ディスプレイ・データエレメントは複数のピクセルデータを有し、前記複数のディスプレイ・データエレメントの各々は互いに独立して圧縮可能であるステップと、
（ｂ）ディスプレイ制御回路に応答して、圧縮していないディスプレイ・データエレメントを前記フルフレーム・バッファから前記ディスプレイヘ送るステップと、
（ｃ）前記圧縮していないディスプレイ・データエレメントが前記ディスプレイへ送られる際に、前記圧縮していないディスプレイ・データエレメントを圧縮し、前記圧縮されたディスプレイ・データエレメントを統合されたメモリにある圧縮フレーム・バッファに記憶するステップと、
（ｄ）前記ステップ（ｃ）において圧縮された、前記圧縮されたディスプレイ・データエレメントに対応する複数の有効ビットを有効にするとともに、前記ステップ（ａ）で与えられた前記ピクセルデータに応答して、圧縮されないディスプレイ・データエレメントに対応するダーティビットをセットするステップと、
（ｅ）各圧縮されたディスプレイ・データエレメントに対応する前記有効ビットが有効であり、かつ、各圧縮されていないディスプレイ・データエレメントに対応するダーティビットがセットされていない限り、前記ディスプレイ制御回路による後続の更新で、前記圧縮フレーム・バッファにおける前記圧縮されたディスプレイ・データエレメントを伸長して、それを前記ディスプレイに送り、さもなければ、前記ディスプレイ上で前記ビデオフレームをリフレッシュするために前記フルフレーム・バッファから圧縮していないディスプレイ・データエレメントを送るステップと、を含む方法。
【請求項１３】
ディスプレイ及びプロセッサを有するコンピュータシステムにおいて、前記ディスプレイをリフレッシュする方法は、
（ａ）ピクセルデータを前記プロセッサからフルフレーム・バッファヘ与えるステップと、
（ｂ）ディスプレイ制御回路に応答して、前記ピクセルデータを前記フルフレーム・バッファから前記ディスプレイに送るステップと、
（ｃ）前記ディスプレイに送られる前記ピクセルデータを圧縮し、それを圧縮フレーム・バッファに記憶するステップと、
（ｄ）前記ピクセルデータを代表する複数の圧縮されたデータエレメントに対応する複数の有効ビットを有効にするとともに、前記ピクセルデータを表す圧縮されないディスプレイ・データエレメントに対応するダーティビットをセットするステップと、
（ｅ）前記有効ビットが有効であり、かつ、前記ダーティビットがセットされていないときに、前記ディスプレイ制御回路による後続の更新における電力消費を節約するために、前記圧縮フレーム・バッファにおける前記ピクセルデータを伸長し、それを前記ディスプレイに送るステップと、を含む方法。
【請求項１４】
前記ピクセルデータが前記ディスプレイに送られ、圧縮されるに際に、前記圧縮されたデータが前記圧縮フレーム・バッファからの後続のフレーム更新のために有効にされるように、前記フルフレーム・バッファ及び前記圧縮フレーム・バッファ間でコヒーレンシを維持するステップをさらに含むことを特徴とする請求項１３記載の方法。
【請求項１５】
前記フルフレーム・バッファに対する更新を所定の期間無視するために、プログラム可能なフレーム速度制御回路を用いて、ダーティビットを選抜するためのプログラム可能なサンプル速度を与えるステップをさらに含むことを特徴とする請求項１４記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般にビデオディスプレイのシステムおよび方法に関し、特にコンピュータシステムにおけるピクセルデータの圧縮システムおよび方法に関する。
【０００２】
【従来の技術】
本発明の範囲を限定することなく、この背景についての情報は、発明が利用される特別の問題のコンテキストにおいて提供される。この１０年間に、コンピュータ・グラフィックス・ディスプレイの品質は、ディスプレイ装置、特にカソードレイチューブ（ＣＲＴ）あるいは液晶ディスプレイ（ＬＣＤ）のピクセルの解像度、カラーの深さ（color depth）およびスクリーンのリフレッシュ速度が改善されて、着実に良くなった。コンピュータ・グラフィックスにとって、１２８０×１０２４のピクセルまでの、および１６．７×１０6 までの同時式カラーのフレーム解像度を有することは当たり前のことである。このような高解像度および高いカラー内容のイメージ、特に、高いリフレッシュ速度での表示は、フレーム・バッファを記憶するメモリサブシステムに大きな要求を生じる。特に、トレードオフ(tradeoffs) は、グラフィックス・エンジン或いは主中央処理装置（ＣＰＵ）によって要求されるメモリアクセスを達成するために充分なバンド幅を有している限り、メモリ装置が供給することができる適当なディスプレイ速度と解像度を得るためになされる。もし、ディスプレイのデータ速度が非常に速いと、システムは、メモリからの一定のピクセルデータ読み取りのために麻痺する。つまり、メモリにアクセスする他のタスクのための時間が残されていない。
【０００３】
この点を示すために、費用の安いグラフィックス・エンジン、例えば４５ナノ秒の“高速ページ”(“fast-page”) アクセスを有する３２−ビットのワイドＤＲＡＭのメモリアレイは、８９メガバイト／秒の理論的なピークの利用可能なバンド幅を有している。しかし、現実的には、この値は、およそ７７メガバイト／秒の利用可能なバンド幅を負わせる、なかでもページミス、ための計算に減速されなければならない。１０２４×７６８ピクセル、ピクセル当たり８つのカラー強度、および７５Ｈｚのリフレッシュ速度のフレーム解像度で、必要なディスプレイのバンド幅は５９メガバイト／秒（＝１０２４×７６８×１バイト×７５）――全体の利用可能なメモリバンド幅の７７％である。もし、カラー強度の解像度がピクセル当たり１６ビットに増加されると、ディスプレイハンド幅の要求は１１８メガバイト／秒と二倍になり、ピークの利用可能なバンド幅より２９メガバイト／秒多い。これらの限界に立ち向かう一つの方法は、特別な目的のデュアルポートメモリ（dual-ported memory） を使用するか、或いはＤＲＡＭインターフェースの幅を増加することによって、メモリのサブシステムのバンド幅を簡単に増加することである。従って、いろいろな形式の専用のグラフィックスメモリ集積回路、例えばデュアルポートされたＶＲＡＭ或いはウインドーズ（登録商標）ＲＡＭが生まれた。しかしながら、この形式のメモリは、主メモリのために使用されるどこにでもあるＤＲＡＭと同じ大きさで作ることはできず、従って、特別料金が必要となる。
【０００４】
他の背景として、電力消費が、グラフィックス・ディスプレイのサブシステムの設計、特に限られたバッテリーの寿命によるポータブルコンピュータに主に関係している。消費電力が消費されるメモリのバンド幅、従って高解像度に比例して増大し、高カラー内容のディスプレイモードは、ポータブルコンピュータの応用には伝統的に適していない。前述から、電力消費を増大することなくグラフィックス・ディスプレイの高性能のシステムおよび方法を必要とすることがわかるであろう。
【０００５】
【本発明の概要】
上述した従来技術の限界を克服するため、また本明細書を読み、理解すると明らかになる他の限界を克服するために、フルフレーム・バッファおよび圧縮フレーム・バッファを用いてピクセルデータを発生するための、低電力、低減されたバンド幅のグラフィックス・ディスプレイ・システムおよびその方法が開示される。
ピクセルデータがフルフレーム・バッファからディスプレイ装置に送られる際に、それは同時に圧縮され、圧縮フレーム・バッファにキャプチャされて、後続の変化のないフレームは圧縮フレーム・バッファから直接再生成される。
フル・フレームバッファと圧縮フレーム・バッファの間のコヒーレンシ（一貫性）は、ダーティ／有効（dirty/valid）タグＲＡＭによって維持されるので、ピクセル・データ・ストリームを転送し、圧縮しながら、圧縮フレーム・バッファからの後続のフレーム更新のために、圧縮されたデータを有効にする。
一旦ピクセル・データ・ストリームが圧縮され、圧縮フレーム・バッファに記憶され、後続フレーム上で有効であるとされると、ピクセルデータは圧縮フレーム・バッファから直接取り出され、ディスプレイ装置に送られるように伸長（decompression）される。圧縮データエレメントが、将来のフレーム・バッファ書き込みによって無効とされるまで、圧縮フレーム・バッファからディスプレイをリフレッシュするために必要なピクセル・データが連続的に取り出される。新しいピクセル・データが、グラフィックス・エンジンあるいはホストＣＰＵによってフルフレーム・バッファに送られると、次の選抜されたフレーム走査の間に、対応するデータエレメントのダーティタグが再セットされ、ピクセルデータは、圧縮フレーム・バッファではなく、フルフレーム・バッファから取り出される。
【０００６】
本発明の特徴は、１フレームにおける各々のデータエレメント（好ましくは１ラスタラインであるが、これに限定されない）を有効にする分離したダーティおよび有効ビットと、ダーティビットを選抜する（qualify）ためのプログラム可能なフレーム速度（レート）制御メカニズムである。ダーティビットは、フルフレーム・バッファに送られるピクセルデータに応答してセットされる。有効ビットは、圧縮フレーム・バッファにおける圧縮データエレメントを更新するデータ圧縮器に応答してセットされる。プログラム可能なフレーム速度制御メカニズムはダーティビットを選抜するためのプログラム可能なサンプル速度を与え、それによってフルフレーム・バッファの更新を予め決められた時間期間について無視して、より多くのフレーム表示を圧縮フレーム・バッファから行い、メモリのバンド幅および消費電力を低下させる。
本発明の他の特徴は、実際のグラフィックス・エンジンにおいて、単一化したメモリを用いる能力である。つまり、グラフィックスあるいは主メモリの何れかのために、連続したＤＲＡＭの追加によって、簡単にアップグレードすることができる。
本発明を特徴づける、これらの、またいろいろな他の目的、特徴および新規性の利点は、特許請求の範囲においてとくに指示され、また特許請求の範囲の一部を形成している。しかしながら、本発明、その利点およびその使用によって得られる目的をより理解するために、本発明の一部分を形成する図面、記載事項を参照することにより、本発明によって実施されるシステムおよび方法の特別な例が示されている。
【０００７】
【実施の形態】
好適な実施の形態についての以下記載において、図面を参照すると、本発明が実施される特定の実施の形態が示されている。本発明の範囲から逸脱することなく、他の実施の形態が用いれ、構造の変形がなされることを理解するべきである。本発明の詳細は以下のようにまとめることができる。
１．典型的なリフレッシュ圧縮システム
２．圧縮命令およびカラーデータパス
３．伸長命令およびカラーデータパス
４．結論
このアウトラインおよび対応する見出しは、参考のためにのみこの詳細な説明の項において用いられる。マイクロプロセッサおよびグラフィックス・ディスプレイ・システムの従来あるいは公知の特徴の記載は、その不必要な記載によって本発明を曖昧にしないように省略される。特に、コンピュータ・ビデオ・ディスプレイの標準および動作モードに関する技術は、グラフィックス・ディスプレイ設計の分野においては、当業者に知られている。
【０００８】
１．典型的なリフレッシュ圧縮システム
図１を参照すると、ブロック図によって、本発明の原理によって実施されたビデオ・リフレッシュ圧縮システムが示されている。グラフィックス・エンジンあるいはＣＰＵ（図示せず）は、フルフレーム・バッファ１２に送られているピクセルデータを書き込み（レンダリング）、ラスタラインが更新されたことを示すためにダーティな／有効なＲＡＭ１４における対応するダーティビットをセットすることによって、フルフレーム・バッファ１２のデータエレメント（好ましくは１ラスタラインであるが、これに限定されない）を更新する。好適な実施の形態においては、フルフレーム・バッファ１２は、大きさは可変であるが、１２８０×１０２４ピクセル、或いはそれより多いピクセルのフレーム解像度を収容するのに充分な大きさであるのが好ましい。本発明の開示の助けによって、この分野の通常の知識を有するものは、他のフレーム解像度、フレーム・バッファの大きさ、フレーム・バッファに記憶されるフレームの数、およびデータエレメントの大きさを、本発明の範囲から逸脱することなく理解するであろう。
ダーティ／有効ＲＡＭ１４は、ダーティビットと有効ビットを、フルフレーム・バッファ１２--好適な実施例においては、２０４８（＝１０２４×２）ビットに相当する--に記憶されたおのおののデータエレメント（ラスタライン）に対して保持している。もし、ダーティ／有効ＲＡＭ１４にあるダーティビットが、ラスタラインが更新されたことを示しているならば（ダーティビットセット）、フルフレーム・バッファ１２は、ディスプレイ制御回路２２に応答して、ディスプレイ装置（以下により詳細に記載される以外）を、各々のラスタラインに対応するピクセルデータのストリームを２入力マルチプレックサ１６上の一方の入力に転送することによって、更新し、そしてそのデータエレメントに対する有効ビットをクリアする。マルチプレックサ１６の出力は、パレットルックアップが実行され、もし、必要であれば、すべてのオーバーレイが挿入され、平坦なバネル（ＬＣＤ）のインターフェースあるいは代わりにＣＲＴ（図示せず）を駆動するビデオパレットのディジタル−アナログコンバータ（ＤＡＣ）（図示せず）が駆動されるピクセル出力フォーマット化ステージ（図示せず）に送られる。
【０００９】
また、本発明の実施例においては、フルフレーム・バッファ１２からのピクセルデータのストリームはデータ圧縮器１８にも接続される。この圧縮器は、ストリームをマルチプレックサ１６で受信しながら、同時にピクセルデータを圧縮し、圧縮フレーム・バッファ２０に記憶する。完全なデータエレメント（ラスタライン）が圧縮フレーム・バッファ２０において圧縮され、記憶された後、データ圧縮器１８はダーティ／有効ＲＡＭ１４の対応する有効タグを有効にする（セットする）。ディスプレイ制御回路２２による後続のフレームリフレッシュの際に、有効ビットがセットされているが、ダーティビットがセットされない、または選抜されない (not qualified) 圧縮データエレメントは圧縮フレーム・バッファ２０からデータ伸長器２４を介してマルチプレックサ１６に供給される。データ伸長器２４はデータを復元し、それを出力用のマルチプレックサ１６を介して、ディスプレイ装置をリフレッシュするために供給する。フルフレーム・バッファ１２、圧縮フレーム・バッファ２０およびダーティ／有効ＲＡＭ１４は、主メモリとしてのＤＲＡＭアレイ内に物理的に配置することができる。しかし、グラフィックス・エンジン１０あるいはＣＰＵによる高速レンダリング（rendering）によって、大きなブロックのデータを急速にダーティにすることができるので、ダーティ／有効ＲＡＭ１４は主メモリから分離したスクラッチパッド(scratch pad) ＲＡＭに配置されるのが好ましい。
【００１０】
データ制御回路２２は、ダーティ／有効ＲＡＭ１４中のダーティビットを、フレームリフレッシュ速度（レート）でサンプルリングする必要はない。逆に、ディスプレイ制御回路２２によって設定された遅い速度が、ダーティビットの状態の変化を「選抜」することができるので、フルフレーム・バッファ１２においてなされた更新をＮフレームの期間、無視することができる。滑らかな動き(fluid motion)は、一般に３０フレーム／秒と考えられるので、表示されたフレームをそれより速く更新する必要はない。更に、ディスプレイ装置が、より遅い応答時間を持つ場合（例えばパッシブフラットパネル（ＬＣＤ）ディスプレイ）、フレームの更新速度をさらに遅くすることができる。例えば、２００ミリ秒の応答時間を有するディスプレイパネルに対して、５フレーム／秒より速く表示を更新する必要はない。もし、ディスプレイ制御回路２２が６０Ｈｚのリフレッシュ速度を与えるなら、選抜（qualifier）周波数は、ダーティビットが５フレーム／秒に等しいイメージ更新速度を保証するために、１２フレーム（５Ｈｚ）毎に一度選抜されるように１２分の１以下にされる。従って、全体のイメージが１２対１の選抜比（qualify ratio）で圧縮可能であるとすると、新しいピクセルデータがグラフィックス・エンジン１０によってフルフレーム・バッファ１２にどんなに高速レンダリングされるかに関係なく、ディスプレイはほぼ９２％の時間においては、圧縮フレーム・バッファ２０から更新される。
【００１１】
２．圧縮カラーおよび制御データパス
図２を参照すると、本発明によるシステムの好適なカラーおよび命令データパスが示されている。本願発明の開示によって、この分野の通常の知識を有するものは、本願の特許請求の範囲から逸脱することなくカラーおよび命令データパスに対する他の形状および多くのステージを理解するであろう。ディスプレイＦＩＦＯ３０はメモリ制御器３１を介して、フルフレーム・バッファ１２、圧縮フレーム・バッファ２０おび任意の主メモリ２１を有するＤＲＡＭアレイ１１に接続されている。
デコード制御回路３２はダーティ／有効ＲＡＭ１４に接続された第１の入力と、ダーティビットが選抜され、かつセットされ、または有効ビットがセットされないときに、フルフレーム・バッファ１２からピクセルデータをロードするディスプレイＦＩＦＯ３０を制御するための第１の出力を有する。代わって、ディスプレイＦＩＦＯ３０は、有効ビットがセットされ、かつ、ダーティビットが選抜されない、またはセットされないときに、圧縮フレーム・バッファ２０からピクセルデータをロードする。デコード制御回路３２は、圧縮フレーム・バッファ２０（以下により詳細に記載される）に記憶された制御ワードを検出し、デコードするためのディスプレイＦＩＦＯ３０の出力に接続された第２の入力、およびカラーアンパック回路３８、命令アンパック回路４０とマルチプレックサ１６に接続された第２の出力を有している。マルチプレックサ１６は、もし、ピクセルデータがフルフレーム・バッファ１２から発しているならば、カラーアンパック回路３８からのピクセルデータを通過させ、もしピクセルデータが圧縮フレーム・バッファ２０から発しているならば、カラーキャッシュ回路４２（あるいはロード・ニュー・カラー（load newcolor (ＬＮＣ）命令におけるカラーアンパック回路３８）からピクセルデータを通過させる。マルチプレックサ１６の出力は、ピクセル出力フォーマットステージ（図示せず）およびカラーパック回路５８の入力に接続される。マルチプレックサ１６からのカラーデータはカラーパック回路５８による３２ビット境界（32-bit boundaries）に“パックされて”結合される。
【００１２】
命令パック回路６０は、ヒット・オペコード・パイプライン（hit opcode pipeline)５０、ＲＬＥ検出器５４およびＲＬ８検出器５６（全て、以下に詳細に記載される）から３２ビット境界への可変長“ヒット・オペコード”を受信し、結合する。カラーパック回路５８と命令パック回路６０の出力は、マルチプレックサ６２の入力に接続される。ラインバッファ制御回路３４はマルチプレックサ６２を制御して、ラインバッファ３６の中央に向かって進み、それぞれ両端にある圧縮カラーおよび命令データを有する圧縮ラインバッファ３６を満たす。もし、ラインバッファ３６がラスタラインの終わりに到達する時間までにオバーフローしないならば、ラインバッファ制御回路３４は、６４ビット境界上のカラーおよび命令データを挟み込んで、圧縮ラインバッファ３６の内容を圧縮フレーム・バッファ２０に書き込む。各データエレメント（ラスタライン）に対する制御ワードは、ラインバッファ制御回路３４によって計算され、命令およびカラーデータの量および長さを定義するために、各圧縮されたラインバッファ３６のエントリーの始めに付加される。制御ワードの後に、圧縮フレーム・バッファ２０の各エントリーは、データストリームが終わるまで６４ビット境界上で代わる命令およびカラーデータを有している。
【００１３】
命令とカラーデータパス間の一様でないパイプラインのために、命令とカラーデータとの一時的な関係が失われるが、ラスタラインが、圧縮フレーム・バッファ２０から更なるリフレッシュについてのディスプレイＦＩＦＯ３０にロードされると、圧縮フレーム・バッファ２０にあるカラーと命令データの挟み込みは、要求される近似的なオーダーでデータを表す。ラスタラインが圧縮ラインバッファ３６から圧縮フレーム・バッファ２０に首尾よく書き込まれると、ラインバッファ制御回路３４は、ラスタラインのためのダーティ／有効ＲＡＭ１４にある対応する有効ビットを有効にする。カラーキャッシュ４２は、完全連想型（a full associative) 、三つのエントリ一次キャッシュ、単一のエントリー、二次の“ビクティム”キャッシュ（"victim" cache) および複数の比較器を有することが好ましく、カラーアンパック回路３８の出力からカラーデータを受信する。しかし、本開示によって、この分野の通常の知識を有する者は、本発明の範囲から逸脱することなく、他のキャッシュ形状、組み合わせ、サイズを理解するであろう。カラーキャッシュ４２に結合されているキャッシュ制御回路４４は、新しいカラーがカラーアンパック回路３８から送られると、一次のキャッシュの最も最近用いられた（least-recently-used (LRU))エントリーを追跡し、置き換える。もし新しいカラーが二次のキャッシュにおいてヒットすると、二次のキャッシュエントリーは、一次のキャッシュにおけるＬＲＵエントリーで置き換えられる。新しいカラーが一次のキャッシュにおいて更新されると、その位置におけるカラーは二次のキャッシュに前もって移される。
【００１４】
カラーキャッシュ４２は、カラーアンパック回路３８からのカラーデータがカラーキャッシュ４２におけるカラーデータにマッチするときは何時でもキャッシュ制御回路４４にヒットを信号する。応答においては、キャッシュ制御回路４４はエンコードし、ヒットのキャッシェ位置を識別する“ヒット・オペコード(hitopecode)"をマルチプレックサ４８に送る。マルチプレック４８の出力はヒット・オペコード・パイプライン５０を通して送られる。カラーキャッシュ４２におけるヒットのために用いられるオペコードに加えて、ランレングスをエンコードする（run-length encoding:(RLE))オペコードは４より大きな一連の、一定カラーを圧縮するために用いられる。分離したオペコード命令は、圧縮を最大にするために、短いラン（５−１９）および長いラン（２０−２５５）に対して用いられる。５より小さな一定のカラー・シークエンスは繰り返しキャッシュ・オペコード命令を用いてエンコードされる。ディザ法の背景（dithered background)を含むラスタラインを効果的に扱うために、リピートラスト（Repeat Last)“Ｎ”（例えば、Ｎ＝８）（ＲＬ８）のオペコードが用いられる。ラスタラインがピクセル出力フォーマット化ステージに送られると、もし、次の８ピクセルが、同じオーダーにおいて前の８ピクセルにマッチしており、グループが全て同じ色でないなら、８ピクセルのグループはＲＬ８オペコードでエンコードされる。
【００１５】
反復性のオペコードをエンコードすることを避けるために、ＲＬＥディテクタ５４とＲＬ８ディテクタ５６がそれぞれＲＬＥとＲＬ８ストリングを決定することができるように、マルチプレックサ４８からヒットオペコードをパイプライン化するための複数のステージを有する“ヒット・オペコード・パイプライン”５０が与えられる。ピクセルデータのストリームがカラーキャッシュ４２において一連のヒット・オペコードとして、ＲＬＥオペコードとして、あるいはおそらくＲＬ８オペコードとしてエンコードされるので、ヒット・オペコード・パイプライン５０は、多くの隣接ヒット・オペコードを比較し、計算し、そして最も効果的にエンコードするために、ディテクタ５４と５６のための手段を与える。ヒット・オペコード・パイプライン５０におけるステージの数は８が好ましい。しかし、この分野の通常の知識を有する者は、他のオペコード・ストリングを適用するために、パイプライン５０を縮めるたり、拡張したりすることができることを理解するであろう。ヒット・オペコード・パイプライン５０、ＲＬＥディテクタ５４、およびＲＬ８ディテクタ５６は、上述のように、各々のキャッシュロケーション、あるいはオペコード・ストリングに対してそれぞれのコードをパックするパック命令回路６０を駆動する。
【００１６】
もし、カラー・アンパック回路３８からの現在のピクセルカラーが、カラーキャッシュ４２のカラーのいづれにもマッチしないならば、キャッシュ制御回路４４は、ロードニューカラー（Load New Color:(LNC)) 命令オペコードをピクセルデータストリームにエンコードする。ＬＮＣオペコードはカラー値それ自体を記述するため、従って、圧縮以外のデータ拡張を生じるためにピクセルデータに追加して、４ビットを必要とする。スクリーンの大部分が繰り返しであり、ロードされるべき新しいカラーを殆ど必要としないので、データ拡張は重要ではない。
【００１７】
例示のためのエンコードされたオペコードが、テーブル１（表１）に記載される。
【表１】
0003904622.tif 000002
【００１８】
３．伸長カラーおよび命令データパス
図２を参照すると、リフレッシュに関して、もし、選択されたラスタラインに対してダーティ／有効ＲＡＭ１４において、有効ビットがセットされ、ダーティビットが選抜されない、またはセットされないならば、デコード制御回路３２は、圧縮フレーム・バッファ２０に記憶されている制御ワードを検出し、デコードする。この制御ワードは、命令とデータストリームの長さを識別し、従って、デコード制御回路３２がカラーアンパック回路１８を制御し、命令アンパック回路４０がディスプレイＦＩＦＯ３０からの命令およびカラーデータをアンパックするように指示する。命令データがキャッシュ制御回路４４によってデコードされるけれども、カラーアンパック回路３８からのカラーデータは、カラーキャッシュ４２においてキャッシュされる。命令データに応答して、キャッシュ制御回路４４は、３つの入力のうちの１つをマルチプレックサ４８に選択する。第１の入力は、新しいカラーをロードするために、単一のキャッシュロケーションあるいはＬＮＣオペコードを識別する単一オペコードを出力するキャッシュ制御回路４４に接続されている。マルチプレックサ４８の第２および第３の入力は、エンコードされた繰り返しランレングス（repetitive run-length encoded:(RLE))および繰り返しラスト８（repeat last 8: (RL8)) のオペコードをフィードバックするヒット・オペコード・パイプライン５０に接続されている。（１クロックサイクルだけ遅延されたマルチプレックサ４８の出力である）ヒット・オペコード・パイプライン５０の第１ステージは、キャッシュ制御回路４４に接続される。ヒット・オペコード・パイプライン５０における第１ステージによって発生されたオペコードに応答して、キャッシュ制御回路４４は、カラーキャッシュ４２がカラーデータを送るか、カラーアンパック回路３８からの新しいカラーデータをマルチプレックサ１６にロードするように命令する。
【００１９】
４．結論
本発明の詳細な説明が例示としてのある実施の形態に向けられているが、変形実施の形態ばかりでなく、これらの実施の形態のいろいろな変更が、この分野の通常の知識を有する者に示唆されるであろう。例えば、特定のレジスタ構造、マッピング、ビットアサイメント（割当て）、キャッシュ関連（cashe association）、およびサイズ、および他の具現化は、本発明の詳細な説明を提供する目的で、単に述べられた。しかしながら、本発明は、あらゆるコンピュータシステムのアーキテクチャーに一般に応用できる。ハードウェアとソフトウェア論理間のトレードオフに基づくいろいろな変更がこの分野の通常の知識を有する者にとって明らかであろう。本発明は、特許請求の範囲の範囲内にあるあらゆる変更あるいは代替できる実施の態様を含むものである。
【図面の簡単な説明】
【図１】  本発明の原理によって実行されるビデオリフレッシュ圧縮システムのブロックダイアグラムである。
【図２】  図１における例示システムのための命令およびカラーデータパスを示すブロックダイアグラムである。
【図１】
0003904622.tif 000003
【図２】
0003904622.tif 000004