(57)【特許請求の範囲】
【請求項１】
メモリからファーストイン・ファーストアウトメモリ装置（FIFO）へのデータ転送を要求し、前記FIFOへロードするためのデータを要求する低優先度リクエストおよび高優先度リクエストを含む優先順位を付けたリクエストを活性化するメモリ制御装置であって、
前記FIFOのFIFOデータレベルのトラッキングを行うカウンタと、
前記カウンタに応答し、前記FIFOデータレベルを予め決められた低優先度の閾
値の値と比較するコンパレータとを有しており、前記コンパレータはさらに、
（Ａ）前記カウンタに応答し、前記FIFOデータレベルを、前記低優先度の閾値の値よりも小さい、FIFOアンダーラン閾値を表わす予め決められた高優先度の閾値の値と比較する手段と、
（Ｂ）前記FIFOデータレベルが、前記高優先度の閾値の値以下になったときに、データを要求する前記低優先度リクエストを活性化し、また前記FIFOデータレベルが前記低優先度の閾値の値よりも大きくなったとき活性化した前記低優先度リクエストを非活性化する手段と、
（Ｃ）前記FIFOデータレベルが、前記高優先度の閾値の値以下になったときに、データを要求する前記高優先度リクエストを活性化し、また前記FIFOデータレベルが前記高優先度の閾値の値よりも大きくなったとき活性化した前記高優先度リクエストを非活性化する手段と、
を有することを特徴とするメモリ制御装置。
【請求項２】
前記低優先度の閾値および前記高優先度の閾値のそれぞれの値は、プログラム可能であることを特徴とする請求項1に記載のメモリ制御装置。
【請求項３】
請求項１に記載のメモリ制御装置において、
前記低優先度の閾値の値は、前記FIFOデータレベルが前記低優先度の閾値の値以下になったとき、まだ読まれていない前記FIFOのデータを上書きせずに前記FIFOがデータを受け取ることができるような値に予め設定されており、
前記高優先度の閾値の値は、前記FIFOデータレベルが前記高優先度の閾値の値以下になると、前記FIFOがデータを入力しなければFIFOアンダーラン状態になるような値に予め設定されている、ことを特徴とするメモリ制御装置。
【請求項４】
請求項１に記載のメモリ制御装置において、前記カウンタはアップ／ダウン・カウンタを備えており、前記アップ／ダウン・カウンタはデータ要素がFIFOにロードされるとき一定値だけ増加し、データ要素がFIFOから出力されるとき一定値だけ減少するものであり、前記アップ／ダウン・カウンタの出力が前記FIFOデータレベルを表していることを特徴とするメモリ制御装置。
【請求項５】
メモリからファーストイン・ファーストアウトメモリ装置（FIFO）へのデータ転送を要求し、前記FIFOへロードするためのデータを要求する低優先度リクエストおよび高優先度リクエストを含む優先順位を付けたリクエストを活性化するメモリ制御方法であって、
（Ａ）前記FIFOのFIFOデータレベルのトラッキングを行うステップと、
（Ｂ）前記FIFOデータレベルを予め決められた低優先度の閾値の値と比較するステップと、
（Ｃ）前記FIFOデータレベルを、前記低優先度の閾値の値よりも小さい、FIFOアンダーラン閾値を表わす予め決められた高優先度の閾値の値と比較するステップと、
（Ｄ）前記FIFOデータレベルが、前記高優先度の閾値の値以下になったときに、データを要求する前記低優先度リクエストを活性化し、また前記FIFOデータレベルが前記低優先度の閾値の値よりも大きくなったとき活性化した前記低優先度リクエストを非活性化するステップと、
（Ｅ）前記FIFOデータレベルが、前記高優先度の閾値の値以下になったときに、データを要求する前記高優先度リクエストを活性化し、また前記FIFOデータレベルが前記高優先度の閾値の値よりも大きくなったとき活性化した前記高優先度リクエストを非活性化するステップと、
を有することを特徴とするメモリ制御方法。
【請求項６】
前記低優先度の閾値および前記高優先度の閾値のそれぞれの値をプログラムするステップをさらに有することを特徴とする請求項５に記載のメモリ制御方法。
【請求項７】
請求項５に記載のメモリ制御方法において、
前記FIFOデータレベルが前記低優先度の閾値の値以下になったとき、まだ読まれていない前記FIFOのデータを上書きせずに前記FIFOがデータを受け取ることができるような前記低優先度の閾値の値を予め設定するステップと、
前記FIFOデータレベルが前記高優先度の閾値の値以下になると、前記FIFOがデータを入力しなければFIFOアンダーラン状態になるような前記高優先度の閾値の値を予め設定するステップと、
を有することを特徴とするメモリ制御方法。
【請求項８】
請求項５に記載のメモリ制御方法において、前記FIFOデータレベルをトラッキングするステップは、データ要素がFIFOにロードされるときアップ／ダウン・カウンタを一定値だけ増加するステップと、データ要素がFIFOから出力されるときアップ／ダウン・カウンタを一定値だけ減少するステップとを有し、前記アップ／ダウン・カウンタの出力が前記FIFOデータレベルを表していることを特徴とするメモリ制御方法。
【請求項９】
メモリからファーストイン・ファーストアウトメモリ装置（FIFO）へのデータ転送を要求し、前記FIFOへロードするためのデータを要求する低優先度リクエストおよび高優先度リクエストを含む優先順位を付けたリクエストを活性化する方法を機械が実行するための、前記機械が実行可能な命令のプログラムを含み、かつ前記機械が読み込み可能な記録媒体であって、
（Ａ）前記FIFOのFIFOデータレベルのトラッキングを行うステップと、
（Ｂ）前記FIFOデータレベルを予め決められた低優先度の閾値の値と比較するステップと、
（Ｃ）前記FIFOデータレベルを、前記低優先度の閾値の値よりも小さい、FIFOアンダーラン閾値を表わす予め決められた高優先度の閾値の値と比較するステップと、
（Ｄ）前記FIFOデータレベルが、前記高優先度の閾値の値以下になったときに、データを要求する前記低優先度リクエストを活性化し、また前記FIFOデータレベルが前記低優先度の閾値の値よりも大きくなったとき活性化した前記低優先度リクエストを非活性化するステップと、
（Ｅ）前記FIFOデータレベルが、前記高優先度の閾値の値以下になったときに、データを要求する前記高優先度リクエストを活性化し、また前記FIFOデータレベルが前記高優先度の閾値の値よりも大きくなったとき活性化した前記高優先度リクエストを非活性化するステップと、
を実行するための命令のプログラムを有することを特徴とする記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、表示ファーストイン・ファーストアウトメモリ装置（表示FIFO）に関し、特に、種々のモジュールが発行するダイナミックランダムアクセスメモリ（DRAM）へのアクセスを求めるリクエストの優先順位を付けるDRAMコントローラ・シークエンサに、表示データを請求する表示FIFOモジュールについてのメモリ制御装置及びメモリ制御方法に関するものである。
【０００２】
【従来の技術】
図1に示すように、DRAMインタフェースでは、表示 FIFO モジュール 12、CPU 14、BLIT エンジン・モジュール 16、ハーフ・フレーム・バッファ論理モジュール 18 や n-番目のモジュール 20 のような他のモジュールを含む複数のモジュールが、どのモジュールに DRAM24へのアクセスを許可するかを決定する DRAM コントローラ・シーケンサ 22 に接続されている。BLIT エンジン・モジュール16は、DRAM24内およびDRAM24内外へのビットマップ画像のブロック転送を制御する。ハーフ・フレーム・バッファ論理モジュールは二重スキャン LCD パネルへの表示をサポートする。DRAM アドレス発生器 52 は DRAM コントローラ・シーケンサ 22 および表示 FIFO モジュール 12 に接続されている。DRAM アドレス発生器52は、DRAM コントローラ・シーケンサ22に DRAM アドレスを生成する。CRT コントローラ 50 は DRAM アドレス発生器 52 および表示パイプライン 27 を制御する。CRT コントローラ50は、FIFO へのローディングをいつ開始するか DRAM アドレス発生器52に指示を与える。表示 FIFO モジュール 12 は、DRAM コントローラ・シーケンサ 22 と表示パイプライン 27 との間に接続されており、該表示パイプラインはブラウン管 (CRT) または液晶表示装置 (LCD) のような表示装置 26 に接続されている。表示 FIFO モジュール 12 は、表示装置26に表示するデータを受け取り格納する。DRAM 24 から受け取った表示データを格納するのに表示 FIFO モジュール12内の FIFO が使用される場合、FIFO オーバーランが発生する場合がある。すなわち、FIFO に転送された新しいデータがキャパシティを超過し、FIFO 内のまだ読まれていないデータのいくらかを新しいデータが上書きしてしまう場合である。逆に、FIFO アンダーランが発生する場合もある。この場合には FIFO の表示データがなくなり、表示装置26に意図しないデータが表示されてしまう。FIFOオーバーランおよびFIFOアンダーランが発生するのを防ぐことは緊急課題である。同時に、DRAM コントローラ・シーケンサ22に接続されている種々のモジュールと表示 FIFO モジュール12との間の相互作用の効率を向上させることもまた望ましい。例えば、表示 FIFO モジュール12が DRAM コントローラ・シーケンサ22のサービスを受けている間、CPU14がDRAM24へのアクセスを長い時間待つのは好ましくない。
【０００３】
図 1 に示すような装置では、表示 FIFO モジュール 12 は、まだ読まれていないデータを上書きせずに新しいデータを受け取る準備ができたとき、優先順位の低いリクエストを発行する。しかし FIFO が新しいデータを受け取らなくては FIFO アンダーランが発生するようなときには、表示 FIFO モジュールは優先順位の高いリクエストを発行する。これらのリクエストは、例えば米国特許 No. 5,673,416 に記載されているように、CPU や BLT エンジンからのリクエストも合わせて、優先順位に基づいて許可される。
【０００４】
【発明が解決しようとする課題】
従来技術の装置の中には、DRAM リクエストの性質および優先順位方式のため、CPU が DRAM アクセスを長期間待たなくてはならないものがあった。このため CPU 動作の効率は落ち、コンピュータシステムの速度が低下した。米国特許 No. 5,673,416 ではこの問題は低優先度のリクエストの有効時間を長くすることにより取り扱われた。しかし、FIFO がデータレベルの低優先度リクエストの閾値を越えて満たされればリクエストは取り下げられ、データレベルが閾値を下回ると直ちにリクエストが行われるので、FIFO データレベルが閾値の上下で振動するのに伴い、表示 FIFO のリクエストが繰返し行われることになる。携帯用 PC のような低電力装置ではこのように頻繁にメモリアクセスを行うと大きな電力損失を招くことになる。
【０００５】
本発明の主目的は静的表示の期間中に電力消費を減少させることである。この期間中には、CPU の動作、BLT の動作はなく、画面に静止画像を描くのに必要なメモリ動作以外のメモリ動作もない。本発明は、長いバースト DRAM アクセスを最大限に使用することによりこの目的を達成する。これは実質的に、DRAM にアクセスする時間を最小にし、アクセス間のアイドル期間を最大にする。DRAM にアクセスする時間を減らすことにより DRAM の電力消費が減少する。アクセスとアクセスの間のアイドル期間を最大にすることにより制御装置が節電モードを最大限利用することが可能になる。電池駆動のラップトップコンピュータやハンドヘルド・コンピュータのような低電力装置には節電は重要である。
【０００６】
【課題を解決するための手段】
本発明は、表示装置に転送する表示データを FIFO にロードするため DRAM アクセスを要求する低優先度・高優先度のリクエストをDRAM コントローラ・シーケンサに発行する表示 FIFO モジュールに関するものである。FIFO が新しいデータを受け取らなければ FIFO のアンダーランが発生するというときに高優先度リクエストが出される。これは、FIFO のデータレベルを予め決められた高優先度閾値と比較することにより決定される。すなわち、高優先度リクエストは、FIFOデータレベルが高閾値の値以下に落ちたときに発行され、FIFO レベルが高閾値の値よりも大きくなったときに非活性化される。
【０００７】
FIFO がまだ読まれていないデータを上書きせずに新しいデータを受け取ることができるとき低優先度リクエストが発行される。本発明では低優先度リクエストは、FIFO データレベルが高閾値の値以下に落ちたときに発行され、FIFO レベルが予め決められた低閾値の値よりも大きいときに非活性化される。低優先度リクエストが示すヒステリシス効果により、FIFO レベルが低閾値の値に落ちるや低優先度リクエストが直ちに再活性化され、したがって低閾値の値のまわりで FIFO レベルが振動するのが防止される。初期の装置ではこの振動によりシングル・メモリアクセスの多数のリクエストが行われた。低優先度リクエストに対してヒステリシスを導入したことにより FIFO レベルは高閾値の値まで下がり、低閾値の値のまわりの振動がなくなるのである。数回のシングル・メモリアクセスが 1 回の長いメモリアクセスに引き伸ばされたのである。このため、メモリ転送の数を制限することにより電力が節減され（1 回の転送毎に電力が消費される）、低電力装置が電力節減モードに入ることが可能なアイドル期間の形成が可能になる。
【０００８】
以下の説明およびクレームならびに添付の図を参照することにより、本発明のより完全な理解が得られ、他の目的および成果が明らかになるであろう。
【０００９】
【関連出願および特許】
本出願は、1997 年 9月 30 日付けでチー (Chee) 達に発行された米国特許 5,673,416 およびチー (Chee) 達が 1995 年 6 月 7 日付で出願した米国特許出願 N0. 08/487,117 に関連している。
【００１０】
【発明の実施の形態】
本発明の環境の概略は発明の背景の項で説明した図 1 に示されている。
【００１１】
ここに本発明を機能ユニットとして説明する。これらの機能ユニットは、個々の部品、ASIC、適当なソフトウエアおよび同類物を実行するプロセッサ、またはそれらの組合わせを用いて実現することができる。図 1 および図 2 に示すシステムを動作させるソフトウエアおよび／または本発明の方法を実行するソフトウエアは、ハードディスク、フロッピディスク、またはコンパクトディスクのような記憶媒体 20a に記憶しておき、例えば N 番目のモジュール 20 からなるその媒体のドライブを通して入力する。
【００１２】
本発明の表示 FIFO モジュールには表示 FIFO、読み出し制御回路、および書き込み制御回路を含む。読み出し制御回路は、表示装置にデータを転送する表示パイプラインから表示データのリクエストを受け取る。読み出し制御回路は、FIFO からデータを読み出すため読み出しアドレスを生成し FIFO に出力する。書き込み制御回路内にあるアップ／ダウン・カウンタは FIFO 内のデータレベルのトラッキングを行い、データ要素が FIFO にロードされようとするときアップ／ダウン・カウンタは 1 だけ増加し、読み出し制御回路が表示パイプラインからデータリクエストを受け取ったときアップ／ダウン・カウンタは 1 だけ減少する。アップ／ダウン・カウンタの値は FIFO のレベルである。書き込み制御回路はこの FIFO レベルにより高優先度または低優先度のリクエストを生成する。
【００１３】
高いレベルおよび低いレベルの閾値は閾値レジスタに予め設定されている。閾値はプログラム可能で、表示装置の表示モードにしたがって予め設定される。予め設定された閾値を用いることにより、書き込み制御回路は DRAM にアクセスを求めるリクエストをいつ発行するかを容易に且つ効率よく決定することが可能である。
【００１４】
DRAM コントローラ・シーケンサ 22 と表示パイプライン 27 の間に接続された本発明の表示 FIFO モジュール 12 を図 2 に示す。表示 FIFO モジュール 12 内では FIFO 42 が読み出し制御回路 44 と書き込み制御回路 46 に接続されている。FIFO 42 はさらに表示パイプライン 27 にも接続されている。本実施例では FIFO 42 は通常の 8 x 32 ビットの RAM セルを有する。すなわち、FIFO 42 は 8 個のデータレベルの容量を有する。FIFO 42 はDRAM コントローラ・シーケンサ 22 からデータバス 66 を経由し表示データを入力し、データバス 68 を経由して表示パイプライン 27 に表示データを出力する。勿論、FIFO 42 は他の大きさであっても良い。読み出し制御回路 44 は、表示データのリクエスト GetNextData を表示パイプライン 27 から受け取り、FIFO からデータを読み出すため読み出しアドレス AddrRd を生成し FIFO に出力する。続いて読み出し制御回路 44 は GetNextDataFF 信号を書き込み制御回路 46 に出力する。読み出し制御回路 44 は表示装置のピクセルクロックにより駆動されている。
【００１５】
図 3 は書き込み制御回路46の詳細を示しているが、それから分かるように書き込み制御回路46にはアップ／ダウン・カウンタ85が含まれている。アップ／ダウン・カウンタ85は、FIFO 42 内の現在のデータレベルをトラッキングするのに用いられる。データ要素が FIFO に書き込まれようとするときアップ／ダウン・カウンタ85は 1 だけ増加し、読み出し制御回路44が表示パイプライン27から表示データのリクエストを受け取ったとき 1 だけ減少する。データライン 66 を経由してデータ要素が FIFO 42 に書き込まれようとするとき、NextDispAdrAck 信号が DRAM コントローラ・シーケンサ 22 から 書き込み制御回路 46 に出力される。読み込みアドレス AddrRd が生成された後、読み出し制御回路 44 からの GetNextDataFF 信号によりアップ／ダウン・カウンタ85は 1 だけ減少する。
【００１６】
例えばレジスタブロックにあるプログラム可能な閾値レジスタ 47 は予め決められた高閾値（HI THRESHOLD、以下同様）、低閾値（LOW THRESHOLD、以下同様）のそれぞれの値を書き込み制御回路 46 のコンパレータ 88 に出力し、アップ／ダウン・カウンタ 85 の出力で表わされる FIFO のデータレベルと比較する。比較した結果に基づきコンパレータ 88 は DRAM アクセスのため 2 種類のリクエストを発行する。一つは低優先度リクエスト（DispLoReq、以下同様）であり、もう一つは高優先度リクエスト（DispHiReq、以下同様）である。低閾値に対する値は、まだ読まれていないデータを上書きせずに新しいデータを受け取ることができるようなレベルに設定されている。しかし本発明では低優先度リクエストは、FIFO データレベルが高閾値の値以下に落ちたときに活性化するようになっている。これは、FIFO に新しいデータが入力されないと FIFO アンダーランが起きてしまうようなときに発生する。低優先度のリクエストは 、FIFO レベルが低閾値の値よりも大きくなったときに非活性化（activate）される。
【００１７】
低優先度リクエストを活性化（activate）・非活性化（De-activate）するコンパレータ 88 の機能を図 4 にフローチャートで示す。低優先度リクエストを高閾値の値で活性化（activate、以下同様）し、低閾値の値で非活性化（De-activate、以下同様）することにより、低優先度リクエストにヒステリシス効果を生じさせ、静的表示の際 FIFO レベルが低閾値の値のまわりで振動するのを防止することができる。つまり図4のフローチャートでは、まず低優先度リクエストのFIFOレベルが高閾値以下かどうかが比較され、以下であると低優先度リクエストを活性化し、低優先度リクエストのFIFOレベルが低閾値以上かどうかが比較され、以上であると低優先度リクエストを非活性化するものである。
【００１８】
また、高優先度リクエストは、FIFO データレベルが高閾値の値以下に落ちたときに発行され（活性化され）、FIFO レベルが高閾値の値よりも大きくなったときに非活性化される。高優先度リクエストを活性化・非活性化するコンパレータ 88 の機能は図 5 にフローチャートで示されている。
【００１９】
高閾値・低閾値のそれぞれの値は閾値レジスタ 47 に予め設定されている。これら 2 つの閾値の値は、16 色の平面グラフィックス・モードまたは 256 色パックドピクセル・モード等のような表示装置 26 の表示モードによりプログラム変更可能である。8 つのデータレベルを有する FIFO では低い閾値の値は 4〜7 の範囲で、高い閾値の値は 0〜7 の範囲である。１ つの実施例では低い閾値の値は 4 で、高い閾値の値は 1 である。
【００２０】
閾値に対する FIFO データレベルに応じて、書き込み制御回路 46 は、DRAM コントローラ・シーケンサ 22 に対し DRAM にアクセスしデータを FIFO 42 に書き込むための低優先度リクエスト DispLoReq または高優先度リクエスト DispHiReq、あるいは両方を発行（活性化）する。この様子は図 6 のフローチャートに示されている。データを FIFO へ転送（Transfer data、以下同様）するため予め与えられた数のアドレスを DRAM へラッチした後、書き込み制御回路46は、FIFO データレベルを閾値の値と比較して、これらのリクエストを活性状態で維持するか非活性にするかを図 4 および図 5 のフローチャートに示したようにして再評価する。
【００２１】
上述したような低優先度リクエストに対するヒステリシスの導入は高優先度リクエストまで FIFO を空にすることにつながり、低い閾値のまわりの FIFO レベルの振動を防止する。図 7 のタイミング図によく示されているように数回のシングル・メモリアクセスが 1 回の長いメモリアクセスに引き伸ばされている。メモリ転送の数を制限することにより電力が節減され（1 回の転送毎に電力が消費される）、静的表示の間はアイドル期間が形成される。このアイドル期間には低電力装置は電力節減モードに入ることが可能である。
【００２２】
本発明は特定の実施例に関連して説明されたが、本発明の代替え、修正、および変更が多々可能であることは上述の説明から当業者には明白であろう。したがって、ここに説明した本発明は、本クレームの精神と範囲内に入るような代替え、修正、応用および変更すべてを含むものとする。
【図面の簡単な説明】
【図１】本発明の背景を説明する図であり、本発明に関連する表示 FIFO を含む多くのモジュールが DRAM コントローラ・シーケンサに接続された DRAM インタフェースのブロックダイアグラム図である。
【図２】DRAM コントローラ・シーケンサと表示パイプラインの間に接続された本発明の表示 FIFO モジュールのブロックダイアグラム図である。
【図３】本発明の表示 FIFO モジュールの書き込み制御回路のブロックダイアグラム図である。
【図４】低優先度リクエストを活性化および非活性化するシーケンスを示すフローチャートである。
【図５】高優先度リクエストを活性化および非活性化するシーケンスを示すフローチャートである。
【図６】FIFO へデータを転送するシーケンスを示すフローチャートである。
【図７】高優先度リクエストと低優先度リクエストとの間の関係並びに DRAM からのデータ転送を示すタイミング図である。
【図１】
0003931491.tif 000002
【図２】
0003931491.tif 000003
【図３】
0003931491.tif 000004
【図４】
0003931491.tif 000005
【図５】
0003931491.tif 000006
【図６】
0003931491.tif 000007
【図７】
0003931491.tif 000008