(57)【特許請求の範囲】
【請求項１】
表示装置に表示するイメージを定義する１組の画素データをバッファリングし、１組のメモリ・セルとそのメモリ・セルをアクセスするように結合された１組のセンス・アンプをそれぞれ含む１組のメモリ・バンクとして構成されるメモリ・アレイと、
各メモリ・バンクの上記センス・アンプをアクセスするように結合され、複数の画素キャッシュ・ブロックと各画素キャッシュブロックに対応する１組のダーティ・タグ・ビットを含む画素キャッシュと、
上記画素キャッシュとレンダリングバスに結合された画素ＡＬＵと、
上記メモリ・アレイ及び上記画素キャッシュに結合され、メモリ・アクセス機能と１つのメモリ・バンクを指定するメモリ・アクセス要求を受け取るように結合され、上記メモリ・アクセス要求に従って上記メモリ・アクセス機能を起動するメモリ・アクセス回路と、
上記画素キャッシュに結合され、１つの上記画素キャッシュ・ブロックを指定する画素アクセス要求を受け取るように結合され、上記画素アクセス要求に従って、上記レンダリングバスを通して上記画素キャッシュに対する画素アクセスを起動する回路を有する画素アクセス回路と、
上記メモリ・アレイに結合され、上記メモリ・アレイから上記組の画素データを読み取りそして上記組の画素データをシフト・アウトして表示装置のリフレッシュ機能を行うオン−チップ・ビデオ・バッファと
を備えたフレーム・バッファ・メモリ。
【請求項２】
表示装置に表示するイメージに対応する１組のグラフィック・データをシステム・バスを通して転送するように結合されたプロセッサと、
システム・バスを通してグラフィック・データを受け取るように結合され、レンダリングバスを通して、メモリ・アクセス要求、画素アクセス要求及び画素値を転送するように結合されたレンダリングコントローラと、
１組のメモリ・バンクとして構成されたメモリ・アレイと、複数の画素キャッシュ・ブロックを含む画素キャッシュと、上記メモリ・アレイに結合され、上記メモリ・アレイから画素データを読み取りそして上記画素データをシフト・アウトして表示装置のリフレッシュ機能を行うオン−チップ・ビデオ・バッファとから成るフレーム・バッファ・メモリ装置であって、１つの上記メモリ・バンクを指定するメモリ・アクセス要求を受け取るように結合され、１つの画素キャッシュ・ブロックを指定する画素アクセス要求を受け取るように結合され、上記メモリ・アクセス要求に従ってメモリ・アクセス機能を実行する回路を有し、かつ上記画素アクセス要求に従って上記レンダリングバスを通して上記画素キャッシュに対する画素アクセスを行う回路を有するフレーム・バッファ・メモリ装置と、
を備えたコンピュータ・システム。
【請求項３】
表示装置に表示するイメージを定義する１組の画素データをバッファリングする複数のダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）セルを含むＤＲＡＭアレイと、
上記ＤＲＡＭアレイの上記ＤＲＡＭセルに結合されたセンス・アンプと、
上記センス・アンプをアクセスするように結合された画素キャッシュと、
上記画素キャッシュとレンダリングバスに結合された画素ＡＬＵと、
上記レンダリングバスを通して受け取ったアクセス・ページ・コマンドに従って、上記画素データを上記ＤＲＡＭアレイの第１のページから上記センス・アンプへ転送する回路と、
レンダリングバスを通して受け取った重複ページ・コマンドに従って、上記画素データを上記センス・アンプからＤＲＡＭアレイの第２のページへ転送する回路と、
上記ＤＲＡＭアレイに結合され、上記ＤＲＡＭアレイから上記画素データを読み取りそして上記画素データをシフト・アウトして表示装置のリフレッシュ機能を行うオン−チップ・ビデオ・バッファと、
を備えたフレーム・バッファ・メモリ装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、コンピュータ・グラフィックス・システムの分野に関し、特に高速化されたレンダリング動作に対する、書き込みを主とした体系を提供するフレーム・バッファ・メモリ装置に関する。
【０００２】
【従来の技術】
従来のコンピュータ・グラフィックス・システムは、通常ビデオ・ランダム・アクセス・メモリ（ＶＲＡＭ）チップから成るフレーム・バッファを採用している。ＶＲＡＭチップは表示装置上に表示するイメージを定義する１組の画素データをストアする。一般に、このようなシステムのレンダリング・コントローラは、イメージを表現し、画素データをＶＲＡＭチップに書き込む。このようなシステムでは、ランダム・アクセス・メモリ・ディジタル・アナログ変換装置（ＲＡＭＤＡＣ）は、ＶＲＡＭチップから画素データをアクセスし、その画素データに対してカラー・ルック・アップ・テーブル及びディジタル・アナログ変換を行う。ＲＡＭＤＡＣは、通常１組のビデオ信号を生成し、イメージを表示装置上に生成する。
【０００３】
従来のＶＲＡＭチップは、一般にランダム・アクセス・ポート及びシリアル・ポートと共にダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）・アレイを有する。一般に、レンダリング・コントローラは、ランダム・アクセス・ポートを通してＶＲＡＭチップのＤＲＡＭアレイをアクセスする。ＲＡＭＤＡＣは、一般に、シリアル・アクセス・ポートを通してＶＲＡＭチップのＤＲＡＭアレイをアクセスする。
【０００４】
一般的な従来のＶＲＡＭチップは、パラレル・アクセス・ポートに対してＤＲＡＭページ・モード・アクセス・メカニズムを実施する。ＤＲＡＭページ・モード・アクセス・メカニズムは、ＤＲＡＭアレイのページのアクセスを可能にする１組のセンス・アンプを有する。ページ・モードのセンス・アンプは、一般に表示装置上に表示されるラスタ走査の水平行にマップする。ＤＲＡＭページ・モード・アクセス・メカニズムは、通常ラスタ走査の水平行に沿って配置された画素に対する比較的高速のアクセスを可能にする。例えば、ＤＲＡＭページ・モード・アクセス・メカニズムは、水平ラインを描いたりブロック・フィルを行う際、レンダリング・コントローラがＶＲＡＭチップから成るフレーム・バッファに比較的高速に書き込むのを可能にする。
【０００５】
一方、このような従来のＶＲＡＭチップのＤＲＡＭページ・モード・メカニズムでは、ラインを描く際、レンダリング・コントローラが２−３行以上のラスタ走査にまたがると、画素のアクセス速度は非常に遅くなる。一般に、センス・アンプ・ページの垂直の境界にまたがる画素アクセスでは、このようなＶＲＡＭチップは、ページ・モードからはずれ、センス・アンプをＤＲＡＭアレイからの新しいページで再ロードする。その結果、殆どのグラフィック・プリミティブの表示では、このようなＶＲＡＭチップはページ・モードからはずれ、従来システムにおける表示スループットを低減させる。
【０００６】
更に、このようなＶＲＡＭチップにおけるセンス・アンプは、通常ＤＲＡＭアレイからの新しい行からロードする前にプリチャージ時間が必要である。このプリ・チャージアクセス遅延は、ＶＲＡＭチップがページ・モードからはずれる度に発生する。このプリチャージ・アクセス遅延は、ＤＲＡＭアレイに対するアクセス・タイムを増大させ、レンダリング・コントローラが共通して発生するグラフィック・プリミティブを描く際、全体的画素アクセスの速度を著しく低下させる。
【０００７】
従って、多くの従来のレンダリング・コントローラの性能は、一般的従来のＶＲＡＭチップの入力帯域幅の限界を超えている。いくつかの従来のコンピュータ・グラフィックス・システムは、ＶＲＡＭチップに対する入出力のバス幅を大きくすることによって、従来のＶＲＡＭチップの帯域幅の制限を克服しようとしている。別の従来型コンピュータ・グラフィックス・システムは、高インターリーブ・ファクタを有するインターリーブ型ＶＲＡＭフレーム・バッファを実施している。残念ながら、従来システムに対するバス幅の増加や高インターリーブ・ファクタは、システムのコストを著しく増大させる。
【０００８】
一般に、従来のＶＲＡＭチップを採用しているシステムの表示プロセッサは、Ｚバッファ・イメージを表示する際、ＶＲＡＭチップのランダム・アクセス・ポートに対して読み出し・修正・書き込みアクセスを行う。隠れた面を表示する一般的Ｚバッファ・アルゴリズムは、表示プロセッサがフレーム・バッファのＺバッファから旧Ｚ値を読み出し、旧Ｚ値と新しいＺ値とを数値的に比較し、次に旧Ｚ及び関連画素値を新しいＺ及び関連画素値で条件的に置き換える必要がある。
【０００９】
更に、このようなシステムのレンダリング・コントローラは、一般にＶＲＡＭチップのランダム・アクセス・ポートに対して読み出し・修正・書き込みアクセス・サイクルを必要とするブレンド機能を実行する。ブレンド機能は、合成機能中、透明な物体及びアンチ・エイリアシング・ラインの表示中に行われる。ブレンド動作は、一般にレンダリング・コントローラが新しい画素値の一部をフレーム・バッファにストアされた旧画素値の一部に加えることを要する。
【００１０】
このような読み出し・修正・書き込みアクセスでは、データが各アクセス中に２回ランダム・アクセス・ポートの入出力ピンを通過する必要がある。例えば、Ｚバッファ動作中、Ｚデータは、ＶＲＡＭチップのデータ・ピンの１回目の通過で、旧Ｚ値を読み出し、２回目の通過で新しいＺ値を書き込む。更に、従来のＶＲＡＭチップに対する読み出し動作は、一般に書き込み動作より遅い。更に、一般のＶＲＡＭチップのデータ・ピンには、読み出しと書き込み動作の間に電気的ターン・アラウンド・タイムを強要する不利がある。従って、この読み出し・修正・書き込み動作は、書き込み動作より著しく遅い。
【００１１】
いくつかの従来システムは、読み・書き動作のバースト・バッチ等の複雑な方式を採用し、電気的ターン・アラウンド遅延を低減させている。残念ながら、バースト・バッチの分裂効果によって、この方式による性能向上は制約されている。ターン・アラウンド・タイムの不利益のために、これらの方式は、読み出しを行う時間と書き込みを行う時間の合計よりも遅い。
【００１２】
このようなＶＲＡＭチップを用いるコンピュータ・グラフィックス・システムは、高速クリアを有する各表示ウィンドウに対して高速クリア・ビット・プレーンを設けることによって、限定された数の表示ウィンドウに対する高速クリア動作を実行する。高速クリア・ビット・プレーンは、クリアされる表示ウィンドウに対応する画素を示す。このようなシステムは、一般に従来のＶＲＡＭのフラッシュ書き込みモードを採用し、１ページ・プリチャージ及びアクセス・サイクル内で、１組の高速クリア・ビットをクリアする。残念ながら、このようなシステムの特別のビット・プレーンは、フレーム・バッファのサイズとＶＲＡＭチップの数を増大させ、システム・コストを増大させる。更に、この特別のビット・プレーンを有するシステムは、通常限られた数の高速クリア・ウィンドウしか提供しない。
【００１３】
【発明が解決しようとする課題】
本発明の目的は、上記従来システムの問題を解決することである。
【００１４】
【課題を解決するための手段】
フレーム・バッファ・ランダム・アクセス・メモリ（ＦＢＲＡＭ）チップを開示する。ＦＢＲＡＭチップは、コンピュータ・グラフィックス・システムにおいて、Ｚバッファ・イメージの高速レンダリングを行う。ＦＢＲＡＭチップは、高速画素ブレンド動作も行う。ＦＢＲＡＭチップは、Ｚバッファ比較読み出し・修正・書き込み動作及び内部ブレンド読み出し・修正・書き込み動作を、ＦＢＲＡＭチップの入出力ピンで、書き込み動作に変換する回路を構成する。
【００１５】
ＦＢＲＡＭチップは、レンダリング・バスを通してレンダリング・コントローラによってアクセス可能なマルチ・ポート高速画素バッファを有する。ＦＢＲＡＭチップは、Ｚバッファ比較及びウィンドウＩＤ比較動作を行う内部比較回路を構成する。ＦＢＲＡＭチップは、ブレンド動作に対する内部乗算累積回路も含む。ＦＢＲＡＭチップは、内部でラスタ動作に対するブール・ビット演算を行う。ＦＢＲＡＭチップは、内部ブレンド動作やブール・ラスタ動作を可能にし、内部Ｚ及びウィンドウＩＤ比較動作を並列に進める回路を有する。マルチ・ポートの画素バッファは、ＡＬＵがデータ・ピンにおいて１画素当たり１クロックのスループット・レートで、内部読み出し・修正・書き込みサイクルを、書き込みだけのサイクルに変換することを可能にする、ＡＬＵに対する独立した高速読み書きポートを有する。
【００１６】
ＦＢＲＡＭチップは、複数バンクの高ビット密度のＤＲＡＭアレイを有し、各アレイは、ページに構成される記憶セルを有する。ＦＢＲＡＭチップは、各ＤＲＡＭアレイのページ全体をアクセスし、そのＤＲＡＭアレイのページ・バッファ・キャッシュとして機能するセンス・アンプを有する。ＦＢＲＡＭチップはまた、各ＤＲＡＭアレイに対して重複ページ・メカニズムを提供する。重複ページ・メカニズムは、特別のビット・プレーンを設けるという犠牲なしに、無制限の数の表示ウィンドウの高速クリア動作を可能にする。
【００１７】
センス・アンプ・ページ・バッファ、マルチ・ポートの画素バッファ及び画素ＡＬＵは、ＦＢＲＡＭチップのキャッシュ階層内に構成される。ＦＢＲＡＭキャッシュ階層は、グラフィックスのアクセス動作を促進するように構成されている。ＦＢＲＡＭキャッシュ階層は、ＤＲＡＭアレイの低速記憶セルに対するＦＢＲＡＭチップの高速入出力ピンの帯域幅にも適合する。ＦＢＲＡＭは、別々の画素ＡＬＵ／画素バッファ及びＤＲＡＭ制御ピンのシステムを有し、レンダリング・コントローラが内部の画素フローを管理するのを可能にする。ＦＢＲＡＭチップは、広い、高速の内部バスを設けることによって、キャッシュ・ミスを低減している。
【００１８】
ＦＢＲＡＭチップは、Ｚ比較等の内部比較の結果を、複数のＦＢＲＡＭチップ間で伝送する回路を提供する。内部比較の結果は、赤、緑、青等の画素成分及び単一ＦＢＲＡＭチップの内部画素ＡＬＵより広いＺ画素表現又はノーマル成分又はアルファ成分を必要とするシステムに転送される。広い画素表現を有するシステムの例は、ダブル・バッファされた赤、緑、青の色、ノーマル成分、アルファ透明値及び累積バッファ又は高精度線形カラー・イメージ用に設計された、成分当たり８ビット以上のフレーム・バッファを含む。このようなシステムにおいて、比較結果は、ＦＢＲＡＭチップの出力ピンから他の画素プレーンを有する別のＦＢＲＡＭチップの入力可能ピンに転送される。比較結果は、ＺプレーンをバッファリングするＦＢＲＡＭチップによって、内部でも用いられる。
【００１９】
【実施例】
図１は、グラフィックス・サブシステム８６を示す。グラフィックス・サブシステム８６は、１組のＦＢＲＡＭチップ７１−８２、レンダリング・コントローラ７０及びビデオ出力回路８４から成る。グラフィックス・サブシステム８６は、４ウェイの水平インターリーブ・フレーム・バッファである。グラフィックス・サブシステム８６の各インターリーブ部分の画素深度は、３つのＦＢＲＡＭチップから成る。グラフィックス・サブシステム８６は、ダブル・バッファになっており、赤、緑、青の画素データ（ＲＧＢ）バッファＡ及びＢ、及び単一バッファのＺバッファを含む。１実施例では、グラフィックス・サブシステム８６は、１２８０×１０２４×９６ビットのフレーム・バッファを含む。
【００２０】
ＦＢＲＡＭチップ７１−７３は、ＲＧＢ画素バッファＡ（ＦＢＲＡＭ７１）、ＲＧＢ画素バッファＢ（ＦＢＲＡＭ７２）及びＺバッファ（ＦＢＲＡＭ７３）を含むグラフィックス・サブシステム８６の第１のインターリーブ部分から成る。ＦＢＲＡＭチップ７４−７６は、ＲＧＢ画素バッファＡ（ＦＢＲＡＭ７４）、ＲＧＢ画素バッファＢ（ＦＢＲＡＭ７５）及びＺバッファ（ＦＢＲＡＭ７６）を含むグラフィックス・サブシステム８６の第２のインターリーブ部分から成る。ＦＢＲＡＭチップ７７−７９は、ＲＧＢ画素バッファＡ（ＦＢＲＡＭ７７）、ＲＧＢ画素バッファＢ（ＦＢＲＡＭ７８）及びＺバッファ（ＦＢＲＡＭ７９）を含むグラフィックス・サブシステム８６の第３のインターリーブ部分から成る。ＦＢＲＡＭチップ８０−８２は、ＲＧＢ画素バッファＡ（ＦＢＲＡＭ８０）、ＲＧＢ画素バッファＢ（ＦＢＲＡＭ８１）及びＺバッファ（ＦＢＲＡＭ８２）を含むグラフィックス・サブシステム８６の第４のインターリーブ部分から成る。
【００２１】
レンダリング・コントローラ７０は、ＦＢＲＡＭチップ７１−８２に対する制御情報を転送し、レンダリング・バス９８を通して、ＦＢＲＡＭチップ７１−８２に対するデータ・アクセスを行う。レンダリング・バス９８は、グラフィックス・サブシステム８６の各インターリーブ部分に対する独立した制御及びアクセスを可能にする１組のインターリーブ・バス６４−６７から成る。
各ＦＢＲＡＭチップ７１−８２は、内部ＡＬＵとパイプライン回路を有し、レンダリング・コントローラ７０に対する「書き込みを主とした」インターフェースを与える。ＦＢＲＡＭチップ７１−８２の書き込みを主とした体系は、レンダリング・コントローラ７０によるレンダリング動作中、レンダリング・バス９８上の平均メモリ・サイクル・タイムを最小にする。
【００２２】
１実施例では、各ＦＢＲＡＭチップ７１−８２は、３２０×１０２４×３２ビットの深度のフレーム・バッファをサポートする１０メガ・ビットのＤＲＡＭアレイを有する。各ＦＢＲＡＭチップ７１−８２のＤＲＡＭアレイは、４つの独立したインターリーブＤＲＡＭバンクを含む。
各ＦＢＲＡＭチップ７１−８２は画素ＡＬＵ及びスタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）画素バッファも有する。各ＦＢＲＡＭチップ７１−８２のＳＲＡＭ画素バッファは、レンダリング・バス９８を通してのレンダリング・コントローラ７０によるアクセスに対する画素キャッシュとして機能する。
【００２３】
各ＦＢＲＡＭチップ７１−８２は、４つのＤＲＡＭバンクとＳＲＡＭ画素バッファの間の高帯域通信を可能にする包括バスを有する。各ＦＢＲＡＭチップ７１−８２は、表示装置に対するＣＲＴリフレッシュ動作を行う１対のビデオ・バッファも有する。
各ＦＢＲＡＭチップ７１−８２の画素ＡＬＵは、４つ１組のラスタ動作装置を含む。各ラスタ動作装置は、レンダリング・バス９８を通して、対応するＳＲＡＭ画素バッファへ転送された画素データの個々のバイトに対する選択可能なラスタ動作を行う。各ＦＢＲＡＭチップ７１−８２の画素ＡＬＵは、４つ１組の画素ブレンド装置を有する。各画素ブレンド装置は、１バイトの旧内部画素値をレンダリング・バス９８を通して受信した１バイトの新しい内部画素値及び関係情報と組合わせる。各ＦＢＲＡＭチップ７１−８２の画素ＡＬＵは、３２ビット幅の一致比較装置及び３２ビット幅のマグニチュード比較装置も有する。
【００２４】
各ＦＢＲＡＭチップ７１−８２は、ＤＲＡＭアレイ、ＳＲＡＭ画素バッファ、画素ＡＬＵ及び内部のビデオ・バッファのセットに係わる同時動作を可能にする回路を含む。各ＦＢＲＡＭチップ７１−８２は、レンダリング・コントローラが画素ＡＬＵを通してＳＲＡＭ画素バッファをアクセスし、ビデオ出力回路がビデオ・バッファからビデオ・データを読み出すとき、ＤＲＡＭアレイとＳＲＡＭ画素バッファの間の画素データの転送を可能にする回路を有する。
ＦＢＲＡＭチップ７１−８２は、１組のビデオ・バス１３４−１３７を通して、ビデオ・データをビデオ出力回路８４へ転送する。ビデオ出力回路８４は、ＦＢＲＡＭチップ７１−８２からのビデオ・データの転送を同期させる１組の対応するビデオ・クロックをビデオ・バス１３４−１３７上に生成する。
【００２５】
レンダリング・コントローラ７０は、レンダリング・バス９８を通して画素データをＦＢＲＡＭチップ７１−８２に書き込む。レンダリング・コントローラ７０は、レンダリング・バス９８を通して画素データをＦＢＲＡＭチップ７１−８２から読み出す。レンダリング・コントローラ７０は、レンダリング・バス９８を通してフレーム・バッファ制御信号及びコマンドをＦＢＲＡＭチップ７１−８２に転送する。フレーム・バッファ制御信号及びコマンドは、画素ＡＬＵ動作、ＳＲＡＭ画素バッファとＤＲＡＭアレイの動作及びビデオ・バッファの動作を含むＦＢＲＡＭチップ７１−８２の内部動作を制御する。
【００２６】
１実施例では、レンダリング・バス９８は、２７２ビットのデータ、制御及びアドレス信号を含み、インターリーブ・レンダリング・バス６４−６７のそれぞれは、フレーム・バッファ８６の対応するインターリーブ部分に対する６８ビットの画素データ・パスを与える。例えば、バス６４は、３６ビットのデータをＲＧＢ  ＦＢＲＡＭ７１及び７２に与え、別の３２ビットのデータをＺ  ＦＢＲＡＭ７３に与える。２７２ビットのレンダリング・バス９８は、レンダリング・バス９８の１サイクルで４画素をＦＢＲＡＭチップ７１−８２に転送することができる。各ＦＢＲＡＭチップ７１−８２は、それぞれが３２ビットの完全な画素値をバッファリングする。
【００２７】
別の実施例では、レンダリング・バス９８は、１４４ビットのデータを含み、インターリーブ・レンダリング・バス６４−６７のそれぞれは、３６ビットの画素データ・パスを与える。レンダリング・バス６４は、ＦＢＲＡＭ７１及び７２への３６ビットのＲＧＢデータとＦＢＲＡＭ７３への３２ビットのＺデータを多重化する。このようなシステムは、レンダリング・コントローラ７０のピン・コストを節約し、Ｚバッファリングを用いるとき２バス・サイクルを要する。
【００２８】
また別の実施例では、レンダリング・バス９８は、レンダリング・バス６４とレンダリング・バス６６を多重化し、レンダリング・バス６５とレンダリング・バス６７を多重化し、更にＲＧＢをＺと多重化することによって、７２ビットのデータとすることができる。このようなシステムは、各画素が固有のデータを必要とするとき（例えば陰をつけたイメージ）２ウェイ・インターリーブとなり、全ての画素が同じデータ値（例えば、フィル領域又はテキスト）を受け取るとき、４ウェイ・インターリーブとなる。このようなシステムは、ピン・コストをより多く節約し、陰をつけ、Ｚバッファリングするとき低レベルのパフォーマンスを与え、フィル領域やテキストの時、同様のパフォーマンスを与える。
【００２９】
図２は、１実施例に関するＦＢＲＡＭチップ７１を示す。ＦＢＲＡＭチップ７１は、ＤＲＡＭアレイ、１対のビデオ・バッファ５２及び５４、画素バッファ５６及び画素ＡＬＵ５８を含む。ＦＢＲＡＭチップ７１は、実質的にＦＢＲＡＭチップ７２−８２のそれぞれと類似である。
ＦＢＲＡＭチップ７１のＤＲＡＭアレイは、４つ１組のＤＲＡＭバンク（ＤＲＡＭバンクＡ−Ｄ）及び対応するページ・バッファＡ−Ｄを含む。１実施例では、各ＤＲＡＭバンクＡ−Ｄは、２５７ページに構成された２．５メガ・ビットのＤＲＡＭアレイから成る。各ページは、３２０ワードであり、各ワードは３２ビットである。
【００３０】
ページ・バッファＡ−Ｄは、対応するＤＲＡＭバンクＡ−Ｄのセンス・アンプを含む。１実施例では、各ページ・バッファＡ−Ｄは、対応するＤＲＡＭバンクＡ−Ｄの３２０ワードのページをバッファリングする。
ビデオ・バッファ５２及び５４は、ビデオ・データをバッファリングし、ビデオ・バス１３４を通してビデオ出力回路８４に転送する。ビデオ・バッファ５４は、データをページ・バッファＢ及びＣから受け取る。ビデオ・バッファ５２及び５４のデータは、ビデオ・バス１３４を通して、マルチプレクサ６２経由でビデオ出力回路８４へシフト・アウトされる。
【００３１】
画素バッファ５６は、高速の３ポート・スタティックＲＡＭ（ＳＲＡＭ）であり、ＦＢＲＡＭチップ７１に対するレベル１（Ｌ１）の画素キャッシュとして働く。
Ｌ１画素キャッシュに対する結合パラメータは、外部的に決定され、完全な結合マッピングを含む。Ｌ１画素キャッシュは、書き戻し方式を用いる。Ｌ１画素キャッシュは、１組のＬ１キャッシュ・ブロックを含む。レンダリング・コントローラ７０は、各Ｌ１キャッシュ・ブロックに対するデータの書き込みを行う。複数の書き込みは、各Ｌ１キャッシュ・ブロックに累積され、後でレベル２（Ｌ２）画素キャッシュを通してＤＲＡＭバンクＡ−Ｄに転送される。
【００３２】
画素バッファ５６は、ＡＬＵ読み出しポート２０４及びＡＬＵ書き込みポート２０２を有する。レンダリング・コントローラ７０は、インターリーブ・レンダリング・バス６４を通してＡＬＵ５８に対してパイプライン化された書き込み動作を行う。ＦＢＲＡＭチップ７１の入出力ピンからの画素入力データ１６２は、画素ＡＬＵ５８に対するソース・データを与える。画素ＡＬＵ５８は、選択された画素処理機能を行い、書き込みポート・データ２０２を画素バッファ５６のＡＬＵ書き込みポートへ転送する。
【００３３】
もし所望の画素処理機能が、読み出し・修正・書き込み動作を必要とすれば、画素ＡＬＵ５８は、読み出しデータを読み出しポート２０４から取得し、ソース・データと読み出しデータ２０４を併合して修正を行い、結果を画素バッファの書き込みポート２０２へ書き込む。画素バッファ５６の読み書きポートは、レンダリング・バス６４を通して１クロックのパイプライン化された書き込みを提供する、同時１クロックの読み書き動作を可能にし、１クロックの読み出し・修正・書き込みサイクルを達成する。
【００３４】
レンダリング・コントローラ７０は、インターリーブ・レンダリング・バス６４を通して画素バッファ５６の読み出しポートからデータを読み出す。画素バッファ５６からの読み出しポート・データ２０４は、ＦＢＲＡＭチップ７１の入出力ピンを通してインターリーブ・レンダリング・バス６４を通してアクセスできる。
画素バッファ５６は、包括バス６０上のブロック転送のため、包括的読み書きポート２０８を提供する。レンダリング・コントローラ７０は、ＡＬＵ読み出しポート、ＡＬＵ書き込みポート及び画素バッファ５６の包括的読み書きポートを、同時に活性化できる。
【００３５】
１実施例に関して、画素バッファ５６は、２０４８ビットのＳＲＡＭバッファ及び対応するダーティ・タグ・メモリを有する。２０４８ビットのＳＲＡＭバッファは、８つの２５６ビットのＬ１キャッシュ・ブロックに構成される。各Ｌ１キャッシュ・ブロックは、各３２ビットから成る８ワードをバッファリングする。各Ｌ１キャッシュ・ブロックは、３２ビット画素の幅２、高さ４の矩形でバッファリングする。８つのＬ１キャッシュ・ブロックは、ダーティ・タグ・メモリの８組の３２ビット・ダーティ・タグ・ビットに対応する。包括的読み・書きポートは、２５６ビット幅であり、ＡＬＵ読み書きポートは、それぞれ３２ビット幅である。
【００３６】
画素ＡＬＵ５８は、インターリーブ・レンダリング・バス６４を通して画素バッファ５６へのパイプライン化された読み出し・修正・書き込み動作を可能にする。パイプライン化された読み出し・修正・書き込み動作は、Ｚバッファ比較、ＲＧＢアルファ・ブレンド及びブール演算を含む。画素バッファ５６の包括的読み書きポートは、包括バス６０を通してページ・バッファＡ−Ｄと画素バッファ５６の間で、Ｌ１キャッシュ・ブロック全体の並列転送を可能にする。
【００３７】
ページ・バッファＡ−Ｄは、Ｌ２画素キャッシュを含む。Ｌ２画素キャッシュは、ＤＲＡＭバンクＡ−Ｄに直接マップされる。各ページ・バッファＡ−Ｄは、対応するＤＲＡＭバンクＡ−Ｄの１つのページにマップする。１実施例では、Ｌ２画素キャッシュのエントリは、各ワードが３２ビットの３２０ワードから成る。各Ｌ２キャッシュのエントリは、幅２０、高さ１６の画素の矩形として構成される。Ｌ２画素キャッシュは、書き込みスルー方式を採用する。包括バス６０を通してＬ２画素キャッシュのエントリに書き込まれた画素データは、対応するＤＲＡＭバンクＡ−Ｄの対応するページに直ちに転送される。
【００３８】
包括バス６０は、Ｌ１画素キャッシュとＬ２画素キャッシュの間の通信を可能にする。１実施例では、包括バス６０は、２５６ビット幅であり、Ｌ１画素キャッシュとＬ２画素キャッシュの間で、２×４の画素ブロックの並列転送を可能にする。
各ＤＲＡＭバンクＡ−Ｄは、１組のビット・ラインから成るセンス・アンプ・バスを有する。センス・アンプ・バスは、ページ・バッファＡ−ＤをＤＲＡＭバンクＡ−Ｄに結合する。１実施例では、各センス・アンプ・バスは、ＤＲＡＭバンクＡ−Ｄから対応するＬ２画素キャッシュへの２０×１６（３２ビット画素）の画素矩形の並列転送を可能にする。
【００３９】
レンダリング・コントローラ７０は、インターリーブ・レンダリング・バス６４の制御及びアドレス信号を介してＤＲＡＭバンクＡ−Ｄに対するアクセスをインターリーブする。レンダリング・コントローラは、ページ・バッファＡ−Ｄの１つのセンス・アンプでのプリ・チャージ動作とＤＲＡＭバンクＡ−Ｄの別の１つへのレンダリング動作とを重複させる。レンダリング・コントローラ７０は、ＤＲＡＭバンクＡ−Ｄの１つに対するアクセス・ページ動作とＤＲＡＭバンクＡ−Ｄの別の１つへのレンダリング動作とをインターリーブする。
ＦＢＲＡＭチップ７１は、矩形フィル動作を加速する内部メカニズムを有する。矩形フィル・メカニズムは、ＤＲＡＭバンクＡ−Ｄの部分を定数値又はくり返しパターンでフィル（充填）する。
【００４０】
矩形フィルの１つの方法は、包括バス６０上での高帯域幅のデータ転送を用いる。Ｌ１画素キャッシュ・ブロックは、一定の色又はパターンに初期化される。その後Ｌ１画素キャッシュ・ブロックは、包括バス６０上で利用可能なデータ転送レートでＬ２画素キャッシュ内の異なるブロックにくり返しコピーされる。このような矩形フィル・メカニズムは、ＦＢＲＡＭチップ７１の入出力ピンでの帯域幅制限を回避できる。１実施例では、包括バスの転送レートは、入力ピンの転送レートの半分であり、Ｌ１キャッシュ・ブロックのサイズは、入力ピンの幅よりも８倍大きい。次の結果は、このブロック・フィルのモードが入力ピンのフィル・レートより４倍速いということである。更に、インターリーブされたＦＢＲＡＭチップ７１−８２は、単一のＦＢＲＡＭチップの４倍の矩形フィル・レートを生ずる。このブロック・フィル方法と４ウェイ・インターリーブの組合せ効果は、１６倍速いフィル・レートとなる。
【００４１】
別の矩形フィル方法は、ページ・バッファＡ−Ｄと対応するＤＲＡＭバンクＡ−Ｄの間の高帯域幅のデータ・パスを用いる。Ｌ１画素キャッシュ・ブロックは、一定の色又はパターンに初期化される。Ｌ１画素キャッシュ・ブロックは、次に包括バス６０を通してＬ２キャッシュの全ての４ページ内の全てのブロックにコピーされる。Ｌ２画素キャッシュの４ページは、次にページ重複サイクルを用いて、インターリーブの手法で対応するＤＲＡＭバンクＡ−Ｄにコピーされる。１実施例では、ページ重複レートは、入力ピンの転送レートの１／４であり、Ｌ２ページ・バッファのサイズは、入力ピンの幅より３２０倍大きい。ページ・フィル・モードは、入力ピン・フィル・レートより８０倍速い。４ウェイ・インターリーブと組合せたページ・フィル・モードは、３２０倍速いフィル・レートを生ずる。
【００４２】
ＦＢＲＡＭチップ７１の読み出し・修正・書き込み動作は、通常包括バス６０を通してＬ２画素キャッシュからＬ１画素キャッシュへのプリ・フェッチ読み出し動作、Ｌ１画素キャッシュでの修正動作及び包括バス６０を通してＬ２画素キャッシュへのコピー書き戻し動作から成る。ＦＢＲＡＭチップ７１は、プリ・フェッチ読み出し動作をオプショナルにスキップする。このようなプリ・フェッチ動作のスキップは、レンダリング・コントローラ７０による書き込み専用レンダリング動作のパフォーマンスを倍にする。書き込み専用レンダリング動作の例には、ウィンドウ・システムにおけるテキスト及び単純な２Ｄグラフィックスのレンダリング動作が含まれる。
【００４３】
ＦＢＲＡＭチップ７１は、ＡＬＵ５８及び読み書きポート２０４、２０２を通して画素バッファ５６をアクセスするための１組の画素ポート制御及びアドレス入出力インターフェース・ピン１１４、及び包括バス６０又はビデオ・バッファ５２及び５４を通してＤＲＡＭバンクＡ−Ｄをアクセスするための１組の独立したＤＲＡＭ制御及びアドレス入出力インターフェース・ピン１１２を有する。１組の独立した制御及びアドレス・ピンは、ＤＲＡＭバンクＡ−Ｄに関する動作を可能にし、画素バッファ５６に対するＡＬＵ動作を平行して進める。ＦＢＲＡＭチップ７１は、ビデオ・バッファ５２及び５４及びシリアル・ポート１３４に係わるビデオ動作のための、もう１組の独立したビデオ・ポート制御インターフェース・ピン１１０を提供する。
【００４４】
図３は、１実施例に関し、ＦＢＲＡＭチップ７１−８２に設けたフレーム・バッファの構成を示す論理ブロック図である。ＦＢＲＡＭチップ７１−８２は、レンダリング・バス９８を通してアクセス可能な１つの大きなフレーム・バッファ・メモリ・システムとして働く。ＦＢＲＡＭチップ７１−８２の４つの水平インターリーブは、インターリーブなしのフレーム・バッファに比べて、４のファクタでレンダリング・バス９８の入出力データ・ピンの数を増加させる。
【００４５】
ＦＢＲＡＭチップ７１−８２は、赤、緑、青及びＺ値等の画素成分を含む４画素の画素データをレンダリング・バス９８を通して同時に書き込むことができる。ＦＢＲＡＭチップ７１−８２は、赤、緑、青及びＺ値等の画素成分を含む４画素の画素データの同時ブレンドを可能にする。ＦＢＲＡＭチップ７１−８２は、４画素の同時Ｚバッファリングも可能にする。
【００４６】
フレーム・バッファ８６の４つの水平インターリーブは、水平ディメンジョンにおいて、内部キャッシュとＦＢＲＡＭチップ７１−８２の内部バスのサイズを４のファクタで実際上増大させる。ＦＢＲＡＭチップ７１−８２は、論理Ｌ１画素キャッシュ９２、論理Ｌ２画素キャッシュ９４及び１組の論理ＤＲＡＭ９６を実際上含む。論理Ｌ１画素キャッシュは、ＦＢＲＡＭチップ７１−８２のＬ１画素キャッシュを含む。論理Ｌ１画素キャッシュ９２は、８つの論理Ｌ１キャッシュを実際上含み、各論理Ｌ１キャッシュ・ブロックは、幅８画素、高さ４画素である。論理Ｌ２画素キャッシュ９４は、ＦＢＲＡＭチップ７１−８２のＬ２画素キャッシュを実際上含む。論理Ｌ２画素キャッシュのエントリは、実際上幅８０画素、高さ１６画素である。
【００４７】
ＦＢＲＡＭチップ７１−８２は、実際上ＦＢＲＡＭチップ７１−８２における包括バスの合計幅を含む論理包括バス１００を有する。論理包括バス１００は、Ｌ１画素キャッシュとＬ２画素キャッシュの間で、８×４画素の並列転送を可能にする。
ＦＢＲＡＭチップ７１−８２のメモリ階層は、論理Ｌ１画素キャッシュ９２、論理Ｌ２画素キャッシュ９４及び論理ＤＲＡＭバンク９６を含む。レンダリング・コントローラ７０は、レンダリング・バス９８の各サイクル中に最大４画素までアクセスする。レンダリング・コントローラ７０は、異なったメモリ階層のレベルへに対して動作を発することによって、フレーム・バッファ８６に対する同時動作を実行する。
【００４８】
もしレンダリング・バス９８を通してアドレスされた画素が、論理Ｌ１画素キャッシュ９２に存在すれば、ＦＢＲＡＭチップに対する最高のアクセス速度が生ずる。もしレンダリング・バス９８を通してアドレスされた画素が、論理Ｌ１画素キャッシュ９２に存在しなければ、アドレスされた画素に対応するミスしたブロックは、論理Ｌ２画素キャッシュ９４から論理Ｌ１画素キャッシュ９２へ転送される。アドレスされた画素に対するレンダリング動作が行われ、ミスしたブロックは論理Ｌ２画素キャッシュ９４に書き戻される。もし論理Ｌ２画素キャッシュ９４に必要なブロックがなければ、必要なブロックが論理ＤＲＡＭ９６から読み出される。
【００４９】
同様に、Ｌ２画素キャッシュは、図１及び図３にあるようにインターリーブしたとき、そのサイズは８０×１６画素である。Ｌ２キャッシュ・ミスの損害は、１実施例では、４−８クロックである。垂直に移動するとき、ミスの確率はわずか１／１６で、水平に移動するとき、わずか１／８０である。ミスの損害は、別々のＤＲＡＭ制御を用い、ＤＲＡＭバンクＡ−Ｄをインターリーブすることによって、ヒットとオーバラップされる。
【００５０】
図４は、１実施例に関し、ＦＢＲＡＭチップ７１に対する入出力インターフェースを示す。この入力出力インターフェースは、画素ポート動作に対する画素ポート制御インターフェース１１４、ビデオ動作に対するビデオ・ポート制御インターフェース１１０、及びＦＢＲＡＭチップ７１におけるＤＲＡＭ動作に対するＤＲＡＭ制御インターフェース１１２から成る。
【００５１】
画素ＡＬＵ５８及び画素バッファ５６に対する画素ポート・アクセス動作は、１組の画素ポート・アドレス及び制御信号によって制御される。ＤＲＡＭバンクＡ−Ｄに対する動作は、１組のＤＲＡＭ制御信号によって制御される。ビデオ・バッファ５２及び５４の機能は、１組のビデオ制御信号によって制御される。４ウェイ・インターリーブＤＲＡＭバンクと共に３組の別々の制御によって、ＦＢＲＡＭチップ７１に対する最大６つの同時動作が可能となる。
【００５２】
表１は、１実施例に関する画素ポート・アドレス及び制御信号をリストしたものである。レンダリング・コントローラ７０は、画素ポート・アドレス及び制御信号を介して、画素ＡＬＵ５８及び画素バッファ読み・書きポート２０４、２０２に対する画素ポート動作を制御する。レンダリング・コントローラ７０は、ＰＡ＿ＥＮＡ［１..０］信号をアサートし、画素ＡＬＵ５８及び画素バッファ・ポート２０４、２０２に関する動作を起動する。もしＰＡ＿ＥＮＡ信号がアサートされなければ、残りの画素ポート制御信号は無視される。
【００５３】
0003779748.tif 000002
【００５４】
レンダリング・コントローラ７０は、ＰＡ＿ＷＥ信号をアサートし、書き込み動作を示す。ＰＡ＿ＷＥ信号は、もしアサートされなければ、読み出し動作を示す。レンダリング・コントローラ７０は、ＰＡ＿ＷＥ信号と組合わせてＰＡ＿ＯＰ［２..０］信号をドライブし、画素ＡＬＵ５８に対する動作を指定する。レンダリング・コントローラ７０は、ＰＡ＿ＡＤＤＲ［５..０］信号を用いて、画素ＡＬＵ５８の動作に関して、画素バッファ読み・書きポート２０４、２０２のアドレスを指定する。
【００５５】
レンダリング・コントローラ７０は、レジスタ書き込み及びダーティ・タグ書き込みを含む読み出し、書き込み動作中、ＰＡ＿ＢＥ［３..０］信号をドライブする。読み出し動作中、ＰＡ＿ＷＥはアサートされず、ＰＡ＿ＢＥ信号は、出力バイト可能化信号を与える。書き込み動作中、ＰＡ＿ＷＥは、アサートされ、ＰＡ＿ＢＥ信号は、書き込みバイト可能化信号を与える。ＰＡ＿ＢＥ［０］信号は、ＰＡ＿ＤＱ［７..０］データ・バイトを制御し、ＰＡ＿ＢＥ［１］信号は、ＰＡ＿ＤＱ［１５..８］データ・バイトを制御し、ＰＡ＿ＢＥ［２］信号は、ＰＡ＿ＤＱ［２３..１６］データ・バイトを制御し、ＰＡ＿ＢＥ［３］信号は、ＰＡ＿ＤＱ［３１..２４］データ・バイトを制御する。
【００５６】
レンダリング・コントローラ７０は、ＦＢＲＡＭチップ７１に対する読み・書き動作中、ＰＡ＿ＤＱ［３１..０］信号を用いる。書き込み動作中、ＰＡ＿ＤＱ信号は、画素ＡＬＵ５８に転送される。読み出し動作中、ＰＡ＿ＤＱ信号は、画素バッファ５６の読み出しポートによって与えられる。内部コピー及び垂直スクロール動作中、レンダリング・コントローラ７０は、書き込みアドレスにＰＡ＿ＤＱ［２９..２４］信号を供給する。
【００５７】
ブレンドを行うＡＬＵ書き込みの間、レンダリング・コントローラ７０は、ＰＡ＿ＤＸ［３..０］信号を用いて、ＰＡ＿ＤＱ信号を介して転送されたデータ・バイトに関する特別の上位データ・ビットを与える。ＰＡ＿ＤＸ［０］信号は、ＰＡ＿ＤＱ［７..０］バイトに関する上位ビットを与える。同様に、ＰＡ＿ＤＸ［１］信号は、ＰＡ＿ＤＱ［１５..８］バイトの上位ビットであり、ＰＡ＿ＤＸ［２］信号は、ＰＡ＿ＤＱ［２３..１６］の上位ビット、ＰＡ＿ＤＸ［３］信号は、ＰＡ＿ＤＱ［３１..２４］バイトの上位ビットである。
【００５８】
ＰＡ＿ＰＡＳＳ＿ＩＮ及びＰＡ＿ＰＡＳＳ＿ＯＵＴ信号は、ＦＢＲＡＭチップ７１−８２間でのパス／フェイル（pass／fail）比較装置結果の調整を可能にする。ＦＢＲＡＭチップ７１の内部比較装置からの比較結果は、ＰＡ＿ＰＡＳＳ＿ＯＵＴ信号を介して転送される。ＰＡ＿ＰＡＳＳ＿ＯＵＴ信号は、画素バッファ５６に対するステートフル（stateful）書き込み動作中、内部比較テストがフェイルしたかどうかを示す。もしＰＡ＿ＰＡＳＳ＿ＩＮ信号がパスを示し、ＰＡ＿ＰＡＳＳ＿ＯＵＴ信号がパスを示すと、データはステートフル・データ書き込み中に画素バッファ５６に書き込まれる。
【００５９】
表２は、１実施例に関するＤＲＡＭアドレス及び制御信号を記述している。レンダリング・コントローラ７０は、ＤＲＡＭアドレス及び制御信号を介して、ＤＲＡＭバンクＡ−Ｄ、包括バス６０、画素バッファの包括バス・ポート及びビデオ・バッファ５２及び５４に対するＤＲＡＭアクセス動作を起動する。レンダリング・コントローラ７０は、ＤＲＡＭ＿ＯＰ［２..０］信号を介して、ＤＲＡＭ動作を指定する。レンダリング・コントローラ７０は、ＤＲＡＭ＿ＥＮＡをマスタ・クロックＣＬＫの立ち上がり端でアサートし、次のクロック・サイクルでＤＲＡＭバンクＡ−Ｄの１つに対する動作を起動する。
【００６０】
0003779748.tif 000003
【００６１】
レンダリング・コントローラ７０は、ＤＲＡＭ＿ＢＡＮＫ［１..０］信号でＤＲＡＭバンクＡ−Ｄの１つを選択する。レンダリング・コントローラ７０は、ＤＲＡＭ＿ＡＤＤＲ［８..０］信号を介して選択されたＤＲＡＭ  バンクＡ−Ｄのページを選択する。更に、レンダリング・コントローラ７０は、ＤＲＡＭ＿ＡＤＤＲ［８..０］信号を用いて、包括バス６０上でのブロック転送中に、画素バッファ包括バス・ポート・アドレスを指定し、ＤＲＡＭページからビデオ・データをビデオ・バッファ５２及び５４の１つへ転送することを指定する。
【００６２】
表３は、１実施例に関するビデオ制御信号をリストしたものである。ビデオ制御信号は、ビデオ・バス１３４を通して、ビデオ・データをビデオ出力回路８４へ転送するために用いられる。ビデオ・バス１３４上に転送されたビデオ・データは、ＶＩＤ＿ＣＬＫ信号に同期する。ＶＩＤ＿ＣＬＫ信号は、ゲートされた、或いはフリー・ランのビデオ・シフト・クロックである。ＶＩＤ＿ＣＭ（上バー）信号は、次のＶＩＤ＿ＣＬＫサイクルをマスクし、ビデオ・バッファ５２及び５４をドライブするＦＢＲＡＭチップ７１のビデオ・カウンタを動作不能にするために用いられる同期信号である。ＶＩＤ＿ＯＥ信号は、ＶＩＤ＿ＤＡＴＡ信号によって与えられたビデオ・データに対する非同期のビデオ出力可能化信号である。ＶＩＤ＿ＤＡＴＡ［１５..０］信号によって与えられた１６ビット幅のビデオ・データ・バスは、１サイクル中でのビデオ・データの２バイト転送を可能にする。ＶＩＤ＿ＱＳＦ信号は、ＶＩＤ＿ＤＡＴＡ［１５..０］信号を介して転送されたビデオ・データを、ビデオ・バッファ５２又はビデオ・バッファ５４がドライブしているかどうかを示す。
【００６３】
0003779748.tif 000004
【００６４】
図５は、１実施例に関するＤＲＡＭバンクＡの体系を示す。ＤＲＡＭバンクＡは、実質的にＤＲＡＭバンクＢ−Ｄと同様である。ＤＲＡＭバンクＡは、ＤＲＡＭアレイ１５４、１組のセンス・アンプ１５６、行デコーダ回路１５８及びラッチ１６０を含む。ＤＲＡＭアレイ１５４は２５７ページで構成される。各ページは、１０，２４０のメモリ・セルから成り、ＤＲＡＭバンクＡに関して合計２，６３１，６８０ビットの記憶域を与える。
【００６５】
行デコーダ回路１５８は、ＤＲＡＭ制御回路１１２からＤＲＡＭアクセス信号１６８を受け取り、ＤＲＡＭアクセス信号１６８によって与えられたページ・アドレスで指定されたＤＲＡＭアレイ１５４のページに対するワード・ラインを選択する。ワード・ラインは、センス・アンプ１５６への転送のため、ＤＲＡＭアレイ１５４のページを選択する。センス・アンプ１５６は、ＤＲＡＭアレイ１５４に対するページ・キャッシュとして働く。センス・アンプ１５６は、等化され、ＤＲＡＭバンクＡは、行デコーダ回路１５８からのワード・ラインが不活性のときアイドル状態である。
【００６６】
ＤＲＡＭアクセス信号１６８で示されるページ・アクセス動作中、行デコーダ回路１５８は、適当なワード・ラインを活性化することによって、ＤＲＡＭアレイ１５４のページを選択する。活性化されたワード・ラインは、ＤＲＡＭアレイ１５４の対応するページのビット・セル・チャージをセンス・アンプ１５６へ転送する。センス・アンプ１５６は、ＤＲＡＭアレイ１５４の選択されたページのビット・セル・チャージを増幅する。
ＤＲＡＭバンクＡは、ＤＲＡＭアレイ１５４のどのページに対しても、ページ・データ書き込みに関する重複ページ・メカニズムを与える。もしＤＲＡＭアクセス信号１６８が、重複ページ動作を示すと、行デコーダ回路１５８は、最初にセンス・アンプ１５６を等化せずにワード・ラインを選択する。選択されたワード・ラインは、センス・アンプ１５６にあるデータをＤＲＡＭアレイ１５４の選択されたページのデータ上に書き直す。
【００６７】
ＤＲＡＭバンクＡはＤＲＡＭアレイ１５４に対するページ・アクセス前にプリチャージされる。ＤＲＡＭバンクＡに対するプリチャージ動作は、包括バス６０へのデータ転送動作又はビデオ・バッファ５２との通信の完了後に始まる。プリ・チャージ動作は、ＤＲＡＭアクセス信号１６８によって示される。プリチャージ動作は、選択されたワード・ラインを不活性にし、センス・アンプ１５６を等化する。プリチャージ動作後、不活性になったワード・ラインに対応するＤＲＡＭアレイ１５４のページは、以前センス・アンプ１５６にあったデータを含む。ＤＲＡＭアレイ１５４からのページ・アクセスは、プリチャージ動作に続いて、遅れなしに行われる。
【００６８】
図６は、１実施例に関するビデオ・バッファ５２及び５４を示す。ビデオ・バッファ５２及び５４は、ダブル・バッファとして構成され、ビデオ・データをビデオ・バス１３４を通して転送する。ビデオ・バッファ５２からのビデオ・データ１１６又はビデオ・バッファ５４からのビデオ・データ１１７は、マルチプレクサ６２によって選択される。ビデオ・バス１３４上に転送されるビデオ・データは、レジスタ１８６によって同期される。レジスタ１８６は、ビデオ出力回路８４からのＶＩＤ＿ＣＬＫ信号によってクロックされる。ビデオ・バス１３４でのビデオ・データ転送動作は、ＶＩＤ＿ＯＥ信号によって動作可能・動作不能にされる。
【００６９】
ビデオ・バッファ５２は、１組のセンス・アンプ・データ１７０を、ページ・バッファＡ又はＣから受け取る。ビデオ・バッファ５４は、１組のセンス・アンプ・データ１７２を、ページ・バッファＢ又はＤから受け取る。カウンタ１７４は、ＶＩＤ＿ＣＬＫ信号及びＶＩＤ＿ＥＮＡ信号に従ってビデオ・アドレス１７６を生成する。ビデオ・アドレス１７６によって、ビデオ・バッファ５２及び５４は、ビデオ・データ１１６及び１１７をマルチプレクサ６２へシフトさせる。カウンタ１７４は、ビデオ・クロック１０８に同期し、ＶＩＤ＿ＥＮＡ信号によって動作可能・動作不能にされる。
【００７０】
１実施例では、ビデオ・バッファ５２及び５４のそれぞれは、６４０ビットのセンス・アンプ・データをバッファリングする。センス・アンプ・データ１７０及び１７２は、それぞれ対応するページ・バッファＡ−Ｄの１つからの６４ビットのセンス・アンプ・データを含む。ビデオ・バッファ５２及び５４は、ＶＩＤ＿ＣＬＫ信号の各サイクル中、ビデオ・アドレス１７６に従って、１６ビットのデータをビデオ・バス１３４上へシフトする。各ビデオ・バッファ５２及び５４は、全６４０ビットのビデオ・データをビデオ・バス１３４へ転送するのに、それぞれ４０サイクルのＶＩＤ＿ＣＬＫ信号を要する。カウンタ１７４は、ビデオ・データ１１６及び１１７の間で選択する選択信号１８８を生成する。カウンタは、ＶＩＤ＿ＣＬＫ信号モジュール４０をカウントし、カウントが０にラップ・アラウンドするとき、選択信号１８８をトグルすることによって、選択信号１８８を生成する。選択信号１８８は、レジスタ１８２を通してＶＩＤ＿ＣＬＫ信号に同期し、ビデオ・バス１３４上のＶＩＤ＿ＱＳＦ信号をドライブする。
【００７１】
ＶＩＤ＿ＤＡＴＡ信号は、１６ビットの並列ビデオ・データをビデオ出力回路８４に与える。ＶＩＤ＿ＤＡＴＡ信号上のデータのバイト順は、ＦＢＲＡＭチップ７１のバイト・ペア・モード・ラッチによって選択される。バイト・ペア・モード・ラッチは、ＤＲＡＭ＿ＡＤＤＲ［８］信号がアサートされると、ＤＲＡＭ＿ＡＤＤＲ［７］信号を介してロードされる。バイト・ペア・モード・ラッチは、正常ビデオ出力モードか又は反転ビデオ出力モードを選択する。
【００７２】
図７は、１実施例に関する画素バッファ５６を示す。画素バッファ５６は、ＳＲＡＭバッファ２００、対応するダーティ・タグ・メモリ１９４、プレーン・マスク・レジスタ１９８、書き込み可能化回路１９０、書き込みバッファ１９２、書き込みポート２８６及び読み出しポート２８８から成る。ＳＲＡＭバッファ２００は、２０４８ビットのＳＲＡＭアレイから成る。ＳＲＡＭバッファ２００は、８つの画素キャッシュ・ブロックに構成される。ＳＲＡＭバッファ２００の各画素キャッシュ・ブロックは、２５６ビットから成る。
ＳＲＡＭバッファ２００の各画素キャッシュ・ブロックは、各３２ビットの８ワードをストアする。ダーティ・タグ・メモリ１９４は、８組の３２ビットのダーティ・タグを有する。ＳＲＡＭバッファ２００の各画素キャッシュ・ブロックは、ダーティ・タグ・メモリ１９４の１組のダーティ・タグに対応する。
【００７３】
画素ポート制御回路１１４は、ＡＬＵブロック・アドレス２１４及びワード・アドレス２０６を生成し、画素アクセス動作に関して、ＳＲＡＭバッファ２００の画素データ及びダーティ・タグ・メモリ１９４の対応するダーティ・タグ・ビットを選択する。画素バッファ５６は、ＳＲＡＭバッファ２００に対して入力される書き込みポート・データ２０２を、書き込みポート２８６を通して受け取る。書き込みポート２８６は、画素ＡＬＵ５８からの画素バッファ書き込み可能化信号２７６によって、動作可能・動作不能にされる。画素バッファ５６は、出力されるＳＲＡＭバッファ２００からの読み出しポート・データ２０４を読み出しポート２８８を通して転送する。ダーティ・タグ・メモリ１９４のダーティ・タグは、ＡＬＵブロック・アドレス２１４によって選択される。
【００７４】
ＤＲＡＭ制御回路１１２は、包括ブロック・アドレス２１６を生成して、包括バス６０上でのブロック転送動作に対するＳＲＡＭバッファ２００の画素キャッシュ・ブロックを選択する。書き込みバッファ１９２は、包括読み・書きポート・バス２０８経由で、包括バス６０をＳＲＡＭバッファ２００にインターフェースさせる。
包括バス６０上でのＳＲＡＭバッファ２００に対するＤＲＡＭバンクＡ−Ｄからの画素キャッシュのブロック転送はＤＲＡＭ制御回路１１２からの包括バス読み出し信号２１０によって制御される。包括バス読み出し信号２１０は、包括読み・書きポート・バス２０８を通して、画素キャッシュ・ブロックを書き込みバッファ１９２からＳＲＡＭバッファ２００へ転送する。包括バス読み出し信号２１０は、１組の定数ゼロ２１４をダーティ・タグ・メモリ１９４の対応するダーティ・タグ・ビットにロードする。ダーティ・タグ・メモリ１９４の対応するダーティ・タグ・ビットは包括ブロック・アドレス２１６によって選択される。
【００７５】
包括バス６０上でのＤＲＡＭバンクＡ−Ｄに対するＳＲＡＭバッファ２００からの画素キャッシュのブロック転送は、ＤＲＡＭ制御回路１１２からの包括バス書き込み信号２１２によって制御される。包括バス書き込み信号２１２は、書き込み可能化回路１９０に１組の書き込み可能化信号１６４を生成させる。書き込み可能化信号１６４は、包括バス６０を通して画素キャッシュ・ブロックを書き込みバッファからページ・バッファＡ−Ｄへ転送するのを制御する。書き込み可能化信号１６４は、ダーティ・タグ・メモリ１９４の対応するダーティ・タグ・ビットによって左右される。
【００７６】
書き込み可能化信号１６４は、プレーン・マスク・レジスタ１９８にストアされたプレーン・マスク値によっても左右される。１実施例に関して、書き込み可能化信号１６４は、包括バス６０を通して転送される２５６ビットの画素キャッシュ・ブロックに対応する１組の２５６の書き込み可能化信号から成る。
【００７７】
図８は、１実施例に関する画素ＡＬＵ５８を示す。画素ＡＬＵ５８は、１組のラスタ動作及びブレンド（ＲＯＰ／ブレンド）装置２３０−２３３、定数レジスタ２３６、及び比較装置２３５から成る。画素ＡＬＵ５８に対するソース・データは、定数レジスタ２３６からの定数値、ＦＢＲＡＭチップ７１の入出力ピンからの入力画素データ及び画素バッファ５６からの読み出しポート・データ２０４によって与えられる。
【００７８】
入力画素データ１６２は、ＰＡ＿ＤＱ［３１..０］信号を介して供給される３２ビットと、ＰＡ＿ＤＸ［３..０］信号を介して供給される４ビットから成る。ＰＡ＿ＤＸ［３..０］信号を介して与えられるデータは、ＦＢＲＡＭチップ７１のブレンド動作中に用いられる。定数レジスタ２３６は、ソース・データとして後で使用するため、入力画素データ１６２をラッチする。
【００７９】
画素バッファ５６からの読み出しポート・データ２０４は、旧データ（Ｏ［３１..０］）を、ラスタ動作、ブレンド動作及び比較動作に対して与える。入力画素データ１６２は、新データ（Ｎ［３１..０］）及び拡張新データ（ＮＸ［３..０］）を、ラスタ動作、ブレンド動作及び比較動作に対して与える。定数レジスタ２３６は、定数ソース・データ（Ｋ［３１..０］）及び拡張された定数ソース・データ（ＫＸ［３..０］）を、ラスタ動作、ブレンド動作及び比較動作に対して与える。
【００８０】
各ＲＯＰ／ブレンド装置２３０−２３３は、８ビット・ラスタ動作及び８ビット・ブレンド動作を実行する。ＲＯＰ／ブレンド装置２３０−２３３は、それぞれパイプライン化されている。各ＲＯＰ／ブレンド装置２３０−２３３は、画素バッファ５６からの旧データの対応する８ビット、９ビットのフラクション及び９ビットの新データに対して動作する。ＲＯＰ／ブレンド装置２３０−２３３は、それぞれ対応するフラクション及び対応する新データに関して様々なソースを用いる。
【００８１】
旧データ ０［３１..０］、新データＮ［３１..０］及びＮＸ［３..０］及び定数データＫ［３１..０］、ＫＸ［３..０］は、ソースとしてＲＯＰ／ブレンド装置２３０−２３３及び比較装置２３５に分配される。旧データＯ［３１..０］、新データＮ［３１..０］及びＮＸ［３..０］及び定数データＫ［３１..０］及びＫＸ［３..０］は、１組のソース２５０−２５３をＲＯＰ／ブレンド装置２３０−２３３に与える。旧データＯ［３１..０］、新データＮ［３１..０］及定数データＫ［３１..０］は、１組の比較ソース２４８を比較装置２３５に与える。
【００８２】
ＲＯＰ／ブレンド装置２３０−２３３によって生成されたＲＯＰ／ブレンド結果は、書き込みポート・データ２０２として画素バッファ５６に転送される。ＲＯＰ／ブレンド装置２３０−２３３によって生成されたＲＯＰ／ブレンド結果は、比較装置２３５によって生成された画素バッファ書き込み可能化信号２７６に従って、書き込みポート・データ２０２を通して画素バッファ５６に条件付きで書き込まれる。
比較装置２３５は、３２ビットの一致比較装置及び３２ビットのマグニチュード比較装置を含む。比較装置２３５で生成された比較結果２４０は、ＰＡ＿ＰＡＳＳ＿ＩＮ及びＰＡ＿ＰＡＳＳ＿ＯＵＴ信号を介して、もう１つのＦＢＲＡＭチップからの比較結果と組み合わされる。
【００８３】
図９は、１実施例に関するＲＯＰ／ブレンド装置２３０を示す。ＲＯＰ／ブレンド装置２３１−２３３は実質的にＲＯＰ／ブレンド装置２３０と同様である。ＲＯＰ／ブレンド装置２３１−２３３は、ソース・データの異るフィールドに動作する。ＲＯＰ／ブレンド装置２３０は、ラスタＯＰ回路２２２、アダー２２４及びクランプ回路２２６及び乗算回路２２８から成る。ＲＯＰ／ブレンド装置２３０は、更に、ＲＯＰ／ブレンド装置２３０に対するソース・データの経路を定め、結果を画素バッファ５６の書き込みポート２０２へ伝達する１組のマルチプレクサ２４２−２４４を含む。更に、１００ｈｅｘと等しい定数データ・ソースは、マルチプレクサ２４４を通して利用可能である。
【００８４】
ＲＯＰ／ブレンド装置２３０は、入力画素データ１６２を介して新データＮ［７..０］でプログラムされた制御レジスタ２２０を含む。制御レジスタ２２０は、画素ポート制御回路１１４からのロードＲＯＰ／ブレンド信号２１８によってロードされる。レンダリング・コントローラ７０は、ＲＯＰ／ブレンド装置２３０をＲＯＰ装置又はブレンド装置として構成するように制御レジスタ２２０をプログラムする。制御レジスタ２２０は、１組の制御信号２４８を生成して、マルチプレクサ２４２ー２４４及びラスタＯＰ回路２２２を制御する。マルチプレクサ２４３は、ラスタＯＰ回路２２２からのブレンド結果３４６又はブレンド結果３４８を選択する。
【００８５】
１実施例では、ラスタＯＰ回路２２２は、制御信号２４８に従って、１６のブール・ラスタＯＰ関数の１つを実行する。ラスタＯＰ関数は、制御レジスタ２２０の内容に従って、旧データＯ［７..０］及び新データＮＸ［０］、Ｎ［７..０］又は定数データＫＸ［０］、Ｋ［７..０］を用いて実行される。
ＲＯＰ／ブレンド装置２３０に対する一般的画素ブレンドの方程式は、
ブレンド結果＝新データ × 新フラクション＋旧データ × 旧フラクションである。乗算回路２２８及びアダー２２４は、一般的画素ブレンドの方程式における旧データ × 旧フラクションの乗算と加算を行う。新データ × 新フラクションの乗算結果及び旧フラクションはレンダリング・コントローラ７０によって供給される。
【００８６】
アダー２２４は、中間ブレンド結果を生成する。中間ブレンド結果は、クランプ回路２２６によってクランプされる。クランプ回路２２６は、アダーのアンダーフローを０にクランプし、アダーのオーバーフローを２５５にクランプする。クランプ結果３４８は、書き込みポート・データ２０２を介して、マルチプレクサ２４３を通して画素バッファ５６へ転送される。
【００８７】
図１０は、１実施例に関する比較装置２３５を示す。比較装置２３５は、一致比較回路２６０、マグニチュード比較回路２６２、一致マスク・レジスタ２６４、マグニチュード・マスク・レジスタ２６６及び比較制御レジスタ２６８から成る。
一致比較回路２６０及びマグニチュード比較回路２６２は、それぞれの比較機能を並行して行う。
【００８８】
比較制御レジスタ２６８の内容は、一致及びマグニチュード比較機能を指定する。一致マスク・レジスタ２６４及びマグニチュード・マスク・レジスタ２６６は、一致及びマグニチュード比較機能に参加するソース・データ・ビットを指定する。比較制御レジスタ２６８は、入力画素データ１６２を介して新データＮ［５..０］でプログラムされる。比較制御レジスタ２６８は、画素ポート制御回路１１４からのロード比較制御信号２８２によってロードされる。一致マスク・レジスタ２６４及びマグニチュード・マスク・レジスタ２６６は、それぞれ入力画素データ１６２を介して新データＮ［３１..０］でプログラムされる。一致マスク・レジスタ２６４及びマグニチュード・マスク・レジスタ２６６は、画素ポート制御回路１１４からのロード一致マスク信号２８０及びロード・マグニチュード・マスク信号２８１によってそれぞれロードされる。
【００８９】
画素バッファ５６から受け取った旧データＯ［３１..０］は、一致比較回路２６０及びマグニチュード比較回路２６２に対する１つのソース・データ入力を与える。一致比較回路２６０及びマグニチュード比較回路２６２に対するもう１つのソース・データ入力は、ＦＢＲＡＭチップ７１のＰＡ＿ＤＱピンからの新データＮ［３１..０］又は定数レジスタ２３６からの定数データ（Ｋ［３１..０］）によって与えられる。
【００９０】
一致比較回路２６０及びマグニチュード比較回路２６２からの比較結果は、ＡＮＤゲート２７０によって組み合わされる。ＡＮＤゲート２７０は、インターリーブ・レンダリング・バス６４を通して転送された比較結果をＰＡ＿ＰＡＳＳ＿ＯＵＴ信号として与える。比較結果２４０はＡＮＤゲート２７１によってＰＡ＿ＰＡＳＳ＿ＩＮと組み合わされる。ＡＮＤゲート２７１の出力は、画素バッファ書き込み可能化信号２７６を与える。画素バッファ書き込み可能信号２７６は、書き込みポート・データ２０２の画素バッファ５６への書き込みを可能にする。
【００９１】
図１１は、１実施例に関して、画素バッファ５６及び画素ＡＬＵ５８のパイプライン体系を示す。画素バッファ５６及び画素ＡＬＵ５８は、７ステージのパイプライン（ステージ１からステージ７）を実行する。パイプライン・ステージ１からステージ７は、インターリーブ・レンダリング・バス６４上でのＦＢＲＡＭチップ７１に対する画素ポート読み出しアクセスと書き込みアクセスの間の移行遅延を最小にする。パイプライン・ステージのステージ１からステージ７は、レンダリング・コントローラ７０が遅延サイクルなしに、１クロック当たり１つの割合で連続して書き込み動作を発生させるのを可能にする。画素バッファ５６及び画素ＡＬＵ５８のパイプライン体系は、ＡＬＵ論理が、ＡＬＵ論理に対して最適化されていない標準的ＤＲＡＭ処理を用いて実施されているにも係わらず、高いスループットを可能にする。
【００９２】
１実施例では、３パイプライン・ステージを用いて比較装置のパイプライン２３５を実施し、４パイプライン・ステージを用いてＲＯＰ／ブレンド装置のパイプライン２３０−２３３を実施している。深い処理パイプラインは、ＦＢＲＡＭチップ７１の製造において用いられる遅くて安価なメモリ処理において、必要とする高速な論理及び数値計算の実際的実施を可能にする。
【００９３】
レンダリング・コントローラ７０は、インターリーブ・レンダリング・バス６４上にレジスタ書き込み動作を発して、画素バッファ５６及び画素ＡＬＵ５８の制御レジスタを含むＦＢＲＡＭチップ７１の制御レジスタをプログラムする。レジスタ書き込み動作は、レジスタ書き込み動作に先行するインターリーブ・レンダリング・バス６４のサイクル中に発生したパイプライン動作には影響を与えない。レジスタ書き込み動作は、インターリーブ・レンダリング・バス６４上の次のサイクルに発生した動作に影響する。
【００９４】
パイプライン・ステージのステージ１からステージ７は、レンダリング・コントローラ７０が遅延サイクルなしにインターリーブ・レンダリング・バス６４上に読み出し動作を連続して発するのを可能にする。インターリーブ・レンダリング・バス６４上の読み出し動作は、複数のサイクルのデータ・フェーズを含む。レンダリング・コントローラ７０は、書き込み動作をインターリーブ・レンダリング・バス６４上に発した直後に、遅延サイクルなしで、インターリーブ・レンダリング・バス６４上に読み出し動作を発することができる。
表４は、パイプライン・ステージのステージ１からステージ７に関して、ＦＢＲＡＭチップ７１の入出力インターフェース・ピンでの外部動作と関連して、画素バッファ５６及び画素ＡＬＵ５８の内部動作を記述したものである。
【００９５】
0003779748.tif 000005
0003779748.tif 000006
0003779748.tif 000007
【００９６】
図１２は、１実施例に関して、パイプライン・ステージのステージ１からステージ７でのパイプライン読み・書き転送を示すタイミング図である。レンダリング・コントローラ７０は、１対の読み出し動作（読み出しＡ及び読み出しＢ）をインターリーブ・レンダリング・バス６４上に発し、次に一連の書き込み動作（ＷＣ，ＷＤ，ＷＥ，ＷＦ）を発し、続いて読み出し動作（読み出しＧ）を発する。図は、ＰＡ＿ＡＤＤＲ信号、ＰＡ＿ＯＰ，ＰＡ＿ＢＥ，ＰＡ＿ＷＥ，及びＰＡ＿ＥＮＡ信号、ＰＡ＿ＤＱ及びＰＡ＿ＤＸ信号、及び比較結果ＰＡ＿ＰＡＳＳ＿ＯＵＴ信号を含む画素ポート入出力インターフェース・ピンでのタイミングを示す。マスター・クロック信号（ＣＬＫ）は、インターリーブ・レンダリング・バス６４上での読み・書き動作を同期させる。
【００９７】
レンダリング・コントローラ７０は、時間ｔ０とｔ１の間にインターリーブ・レンダリング・バス６４上に読み出し動作「読み出しＡ」を発する。読み出し動作「読み出しＡ」に対する有効なデータＡは、時間ｔ３中に利用可能である。データＡは、時間ｔ４中にＣＬＫ信号の立ち上がり端でサンプリングされる。読み出し動作「読み出しＢ」と書き込み動作ＷＣの間で、２サイクルのＮＯ−ＯＰ（ＮＯＰ）が、インターリーブ・レンダリング・バス６４上に発生する。ＮＯ−ＯＰ時間は、インターリーブ・レンダリング・バス６４上のデータ・ターンアラウンド中にアイドル時間を与える。
【００９８】
レンダリング・コントローラ７０は、書き込み動作ＷＦ発生の直後に、読み出し動作「読み出しＧ」を発する。読み込み動作ＷＣは、時間ｔ６でパイプライン・ステージのステージ１に達する。書き込み動作ＷＣ（パスＣ）に対応するＰＡ＿ＰＡＳＳ＿ＯＵＴ信号は、時間ｔ１１中にパイプライン・ステージのステージ６に達する。
【００９９】
図１３は、１実施例に関する画素バッファ５６の構成を示す。ＳＲＡＭバッファ２００は、８つの２５６ビット画素キャッシュ・ブロック（ブロックＢ０からＢ７まで）として構成され、各ブロックが３２ビット画素を有する８つのブロックで構成されている。ブロックＢ０からＢ７は、包括バス６０上でのブロック転送及びＡＬＵ読み・書きポート２８６及び２８８を通してのアクセスに関して、ＤＲＡＭ＿ＡＤＤＲ信号によってアドレスされる。ＤＲＡＭ＿ＡＤＤＲ信号によって指定されるワード・アドレスは、ＡＬＵ読み・書きポート２８６及び２８８を通してのアクセスに関して、ＳＲＡＭバッファ２００の３２ビット・ワードを識別する。
【０１００】
各ブロックＢ０からＢ７は８つの３２ビット・ワードから成る。例えば、ブロックＢ０は、ワードＷ０からワードＷ７より成る。各ワードＷ０からＷ７は、ブロックＢ０の１／８スライスである。ワードＷ０は、ＰＡ＿ＤＱ［３１..０］信号に直接マップさせる。Ｗ０の第１バイトは、ＰＡ＿ＤＱ［７..０］信号にマップされ、Ｗ０の第２バイトは、ＰＡ＿ＤＱ［１５..８］信号にマップされ、Ｗ０の第３バイトは、ＰＡ＿ＤＱ［２３..１６］信号にマップされ、Ｗ０の残りのバイトは、ＰＡ＿ＤＱ［３１..２４］信号にマップされる。
【０１０１】
各ブロックＢ０からＢ７の各データ・バイトは、ダーティ・タグ・メモリ１９４のダーティ・タグ・ビットに関連する。ダーティ・タグ・メモリ１９４は、ブロックＢ０からＢ７に対応する８組のダーティ・タグＴ０からＴ７を有する。ダーティ・タグＴ０からＴ７の各３２ビットの組は、対応するブロックＢ０からＢ７を制御する。ダーティ・タグＴ０のダーティ・タグ・ビットｂ０−ｂ３１のブロックＢ０へのマッピングが示されている。
【０１０２】
ダーティ・タグＴ０からＴ７は、ＳＲＡＭバッファ２００とＤＲＡＭバンクＡ−Ｄの間の包括バス６０上でのブロック転送中に用いられる。ダーティ・タグＴ０からＴ７は、書き込みポート２８６を通して、画素バッファ５６への書き込み動作中にも用いられる。レンダリング・コントローラ７０は、ＰＡ＿ＤＱ［３１..０］信号を介して、ダーティ・タグ・メモリ１９４にストアされたダーティ・タグＴ０からＴ７を直接アクセスする。
【０１０３】
包括バス６０を通して、ＤＲＡＭバンクＡ−Ｄの１つからＳＲＡＭバッファ２００のブロックＢ０からＢ７の１つへのブロック読み出し動作中、対応するダーティ・タグＴ０からＴ７はクリアされる。包括バス６０を通して、ＳＲＡＭバッファ２００のブロックＢ０からＢ７の１つからＤＲＡＭバンクＡ−Ｄの１つへのブロック書き込み動作中、対応するダーティ・タグＴ０からＴ７は、プレーン・マスク・レジスタ１９８の内容に関連して、指定されたＤＲＡＭバンクＡ−Ｄに書き込まれるデータ・バイトを決定する。もしダーティ・タグ・ビットｂ０−ｂ３が０なら、指定されたＤＲＡＭバンクＡ−Ｄの対応するデータ・バイトは書き込まれない。
【０１０４】
プレーン・マスク・レジスタ１９８のプレーン・マスク・ビットのＰＡ＿ＤＱ信号へのマッピングは、図１３に示される。プレーン・マスク・レジスタ１９８のプレーン・マスク・ビットは、ＳＲＡＭバッファ２００とＤＲＡＭバンクＡ−Ｄへの書き込みを限定する。レンダリング・コントローラ７０は、プレーン・マスク・ビットをプレーン・マスク・レジスタ１９８に書き込む。プレーン・マスク・ビットは、プレーン・マスク・レジスタ１９８への書き込み動作後のサイクル中に、レンダリング・コントローラ７０によって発せられるステートフル書き込みに対して有効である。
【０１０５】
プレーン・マスク・レジスタ１９８のプレーン・マスク・ビットは、書き込みポート２８６を通してのステートフル書き込み中、ＳＲＡＭバッファ２００に入力されるデータに対するビット毎の書き込み可能化として働く。プレーン・マスク・レジスタ１９８のプレーン・マスク・ビットは、ＳＲＡＭバッファ２００から包括バス６０上に転送されたブロックのマスク書き込みに対しても、ビット毎の書き込み可能化として働く。プレーン・マスク・ビットは、包括バス６０を通してＤＲＡＭバンクＡ−Ｄの１つへ転送されるマスク書き込みブロックの各ワードに適用される。
【０１０６】
表５は、ダーティ・タグＴ０からＴ７に作用する画素ポート動作を記述している。ダーティ・タグＴ０からＴ７に作用する画素ポート書き込み動作は、ステートフル初期データ書き込み、ステートレス（stateless ）初期データ書き込み、ステートフル正常データ書き込み、及びステートレス正常データ書き込みを含む。ダーティ・タグＴ０からＴ７は、インターリーブ・レンダリング・バス６４上に転送され、出力される読み出しデータには作用せず、画素バッファ５６の読み出しポート２８８を通してのワード読み出し動作中は、修正されない。
【０１０７】
0003779748.tif 000008
【０１０８】
ＰＡ＿ＢＥ［３..０］信号は、対応する画素ポート動作がパイプライン・ステージのステージ１からステージ７を通して伝達される間に、パイプライン・ステージのステージ１からステージ７を通して伝達される。パイプライン・ステージのステージ１からステージ７の終わりで、パイプライン化されたＰＡ＿ＢＥ［３..０］信号がダーティ・タグ・メモリ１９４の対応する４つのダーティ・タグ・ビットを修正する間に、画素データは、条件付きでＳＲＡＭバッファ２００のワードに書き込まれる。
【０１０９】
初期データの書き込みについては、ダーティ・タグ・メモリ１９４のアドレスされたダーティ・タグの４ビットは、パイプライン化されたＰＡ＿ＢＥ［３..０］信号で置き換えられる。ＳＲＡＭバッファ２００のアドレスされたブロックに関するダーティ・タグの残りの２８ビットは、初期データ書き込み中にゼロにクリアされる。正常データの書き込みについては、ダーティ・タグ・メモリ１９４のアドレスされたダーティ・タグの４ビットは、もし対応するパイプライン化されたＰＡ＿ＢＥ［３..０］信号が１なら、それぞれ１にセットされる。もし対応するパイプライン化されたＰＡ＿ＢＥ［３..０］信号がゼロなら、アドレスされたダーティ・タグの４ビットは変わらない。ＳＲＡＭバッファ２００のアドレスされたブロックに関する残りの２８ビットのダーティ・タグは、正常データ書き込み中変わらない。
【０１１０】
更に、ダーティ・タグ・ビットは、レンダリング・コントローラ７０によって直接アクセス可能である。レンダリング・コントローラ７０は、ダーティ・タグ置き換え動作を発して、指定されたブロックＢ０からＢ７に対するダーティ・タグ・ビットをＰＡ＿ＤＱ信号を介して与えられたタグ・データで置き換える。レンダリング・コントローラ７０は、ダーティ・タグの「ＯＲ」動作を発して、指定されたブロックＢ０からＢ７に関するダーティ・タグ・ビットを、ダーティ・タグ・メモリ１９４からの元のダーティ・タグ・ビットとＰＡ＿ＤＱ［３..０］信号を介した新タグ・データとの間の「ＯＲ」の結果で置き換える。
【０１１１】
選択されたダーティ・タグＴ０からＴ７のダーティ・タグ・ビットｂ０からｂ３１とＰＡ＿ＤＱ信号を介して転送されたワードとの間のビット・マッピングは、図１３に示されている。例えば、レンダリング・コントローラ７０は、新しいダーティ・タグ・データをＰＡ＿ＤＱ［０］，ＰＡ＿ＤＱ［８］，ＰＡ＿ＤＱ［１６］及びＰＡ＿ＤＱ［２４］信号を介して転送し、選択されたブロックＢ０からＢ７のワードＷ０に対するダーティ・タグ・ビットを変える。レンダリング・コントローラ７０は、新しいダーティ・タグ・データをＰＡ＿ＤＱ［５］，ＰＡ＿ＤＱ［１３］，ＰＡ＿ＤＱ［２１］及びＰＡ＿ＤＱ［２９］信号を介して転送し、選択されたブロックＢ０からＢ７のワードＷ５に関するダーティ・タグ・ビットを変える。
【０１１２】
画素キャッシュ・ブロックＢ０からＢ７に関連するダーティ・タグ・ビットＴ０からＴ７は、レンダリング・コントローラ７０による共通カラーレンダリング動作に関するカラー拡張メカニズムに用いられる。カラー拡張メカニズムは、レンダリング・コントローラ７０が個々の画素を１ビットで指定できるようにする。カラー拡張メカニズムは、そのビットを画素全体に拡張する。レンダリング・コントローラ７０は、カラー拡張メカニズムを、レンダリング・コントローラ７０が共通カラー値をＤＲＡＭバンクＡ−Ｄの多くの画素に書き込むことを要するテキスト描画等の二次元レンダリング動作中に用いる。
【０１１３】
レンダリング・コントローラ７０は、カラー拡張ブロックを画素キャッシュ・ブロックＢ０〜Ｂ７の中から選択し、次に共通のカラー値をカラー拡張ブロックの全画素に対して８回書き込む。レンダリング・コントローラ７０は、次に３２ビットのカラー拡張ワードをカラー拡張ブロックに対応するダーティ・タグ・メモリ１９４のダーティ・タグ・ビットに書き込む。
【０１１４】
レンダリング・コントローラ７０は、次にＤＲＡＭバンクＡ−Ｄに対して包括バス６０を通してカラー拡張ブロックの書き込みブロック転送動作を起動する。共通カラー値を有し、対応するダーティ・タグ・ビットのセットを有するカラー拡張ブロックの画素は、共通カラー値で選択されたＤＲＡＭバンクＡ−Ｄに書き込まれる。対応するダーティ・タグ・ビットのセットを持たないカラー拡張ブロックの画素は、選択されたＤＲＡＭバンクＡ−Ｄに書き込まれない。
【０１１５】
その後、レンダリング・コントローラ７０は、新しいカラー拡張ワードをカラー拡張ブロックのダーティ・タグ・ビットに書き込み、次にＤＲＡＭバンクＡ−Ｄの異なった部分に対してカラー拡張ブロックの書き込みブロック転送動作を起動し、さらにカラー拡張ブロックを用いて、ＤＲＡＭバンクＡ−Ｄにテキストを書き込むのにくり返し用いられる前景カラーを保持する。
【０１１６】
図１４は、包括バス６０上のマスク・ブロック書き込み動作に対する画素キャッシュ・ブロックに関して、プレーン・マスク・レジスタ１９８におけるプレーン・マスク・ビットのマッピング及びダーティ・タグ・メモリ１９４におけるダーティ・タグ・ビットのマッピングを示す。１実施例では、包括バス６０上に転送されるマスク書き込みブロックは２５６ビットから成る。包括バス６０上の下位４０ビットに関するダーティ・タグ・ビットとプレーン・マスク・ビットとの間の相互作用が示されている。
【０１１７】
包括バス６０を通してのマスク書き込みブロック動作中、マスク書き込みブロックのビットに対応するダーティ・タグ・ビットとプレーン・ビットが両方共１であれば、マスク書き込みブロックのそのビットは、ＤＲＡＭバンクＡ−Ｄの選択されたセンス・アンプに書き込まれる。プレーン・マスクの３２ビットは、包括バス６０上でマスク書き込みブロックの各３２ビット部分に対してくり返し適用される。各ダーティ・タグ・ビットは、包括バス６０上で、マスク書き込みブロックの８ビット部分に対して適用される。
【０１１８】
表６は、１実施例に関するＦＢＲＡＭチップ７１の画素ポート動作を記述する。画素ポート動作は、データを画素バッファ５６から読み出す動作、データを画素バッファ５６に４つの異なったモードで書き込む動作、ダーティ・タグ・メモリ１９４のダーティ・タグ・ビットを置き換え、修正する動作及びＦＢＲＡＭチップ７１の制御レジスタに書き込む動作を含む。
【０１１９】
0003779748.tif 000009
【０１２０】
レンダリング・コントローラ７０は、画素ポート動作に関するブロック及びワードのアドレスをＰＡ＿ＡＤＤＲ［５..０］信号を介して指定する。レンダリング・コントローラ７０は、画素ＡＬＵに関するブロック・アドレスをＰＡ＿ＡＤＤＲ［５..３］信号を介して指定する。レンダリング・コントローラ７０は、画素ＡＬＵに関するワード・アドレスをＰＡ＿ＡＤＤＲ［２..０］信号を介して指定する。レンダリング・コントローラ７０は、制御レジスタを、制御レジスタ書き込み動作中にＰＡ＿ＡＤＤＲ［５..０］信号を介して指定する。
【０１２１】
レンダリング・コントローラ７０は、読み出し画素ポート動作を発して画素バッファ５６から３２ビットのデータを読み出す。ＳＲＡＭバッファ２００のブロック及びワードのアドレスは、ＰＡ＿ＡＤＤＲ［５..０］信号によって指定される。
【０１２２】
レンダリング・コントローラ７０は、ステートレス初期データ書き込み動作を発して、３２ビットのデータをＰＡ＿ＡＤＤＲ［５..０］信号によって指定されたＳＲＡＭバッファ２００のブロック及びワードへ書き込む。図１２は、レンダリング・コントローラ７０が、書き込みデータを、ＰＡ＿ＤＱ［３１..０］信号を介して、ＰＡ＿ＡＤＤＲ信号によって書き込みアドレスが指定された１クロック後に転送することを示す。ステートレス初期データ書き込み動作は、ＦＢＲＡＭチップ７１の制御レジスタの内容によって影響されない。ＲＯＰ／ブレンド装置２３１−２３３は、レンダリング・コントローラ７０から受け取った書き込みデータを修正なしにパスする。図１１は、６ステージのアドレス・パイプライン遅延及び５ステージのデータ・パイプライン遅延によって、書き込みデータとアドレスが、同時に画素バッファ５６に到達することを示している。
【０１２３】
ステートレス初期データ書き込み動作中、比較装置２３５からの比較結果２４０は、ＳＲＡＭバッファ２００に対するデータの書き込みに影響しない。画素ポート制御回路１１４は、比較装置２３５が画素バッファ書き込み可能化信号２７６を介して、画素バッファの書き込みを可能にするようにさせる。ＰＡ＿ＰＡＳＳ＿ＯＵＴ信号は「高」に強制されてパスを示し，ＰＡ＿ＰＡＳＳ＿ＩＮ信号は無視される。アドレスされたブロック及びワードに関して、対応するダーティ・タグの４ビットは、ＰＡ＿ＤＱ信号を介してインターリーブ・レンダリング・バス６４を通してレンダリング・コントローラ７０から受け取った３２ビットの書き込みデータに関するＰＡ＿ＢＥ［３..０］信号に従ってセットされる。アドレスされたブロックに関する残りのダーティ・タグ・ビットはクリアされる。
【０１２４】
ステートレス正常データ書き込み動作も、ＦＢＲＡＭチップ７１の制御レジスタの内容によって影響されない。レンダリング・コントローラ７０は、ステートレス正常データ書き込み動作を発生して、ＰＡ＿ＤＱ［３１..０］信号によって与えられた３２ビットのデータを、ＰＡ＿ＡＤＤＲ［５..０］信号によって指定されたＳＲＡＭバッファ２００のブロック及びワードに書き込む。ステートレス正常データ書き込み動作中、アドレスされたブロック及びワードに関するダーティ・タグの４ビットは、ＰＡ＿ＤＱ［３１..０］書き込みデータに対応するＰＡ＿ＢＥ［３..０］信号とインクルーシブＯＲされる。ＲＯＰ／ブレンド装置２３１−２３３は、書き込みデータを修正なしに通過させ、比較結果２４０は、ＳＲＡＭバッファ２００へのデータ書き込みに影響しない。ＰＡ＿ＰＡＳＳ＿ＯＵＴ信号は、「高」に強制されてパスを示し、ＰＡ＿ＰＡＳＳ＿ＩＮ信号は無視される。
【０１２５】
レンダリング・コントローラ７０は、ステートフル初期データ書き込み動作を発して、ＦＢＲＡＭチップ７１の制御レジスタの内容に従って３２ビットのデータをＳＲＡＭバッファ２００に書き込む。図１２は、レンダリング・コントローラ７０が、ＰＡ＿ＤＱ［３１..０］信号を介して新データを与える１クロック前に、ＰＡ＿ＡＤＤＲ［５..０］信号を介してＳＲＡＭバッファ２００のブロック及びワードを指定することを示している。図１１は、レンダリング・コントローラ７０が、ＰＡ＿ＤＱピン（パイプラインのステージ２）を通して新データを供給すると同時に、ＰＡ＿ＡＤＤＲを用いて旧画素バッファ・データを読み出すことを示す。新データは、画素ＡＬＵ動作を制御するＦＢＲＡＭチップ７１のレジスタの内容に従って、アドレスされたブロック及びワードからの既存のデータと組み合わされる。図１１は、組み合わされたデータ（ステージ２の画素バッファ読み出しポート・データ及びステージ２のＰＡ＿ＤＱ書き込みデータ）が５パイプライン・ステージ遅延され、アドレスが６パイプライン・ステージ遅延されることを示し、これによって、組み合わされたデータ及びアドレスが画素バッファ５６の書き込みポートに同時に到達する。
【０１２６】
ステートフル初期データ書き込み動作中、比較装置２３５からの比較結果２４０及びＰＡ＿ＰＡＳＳ＿ＩＮ信号は、ＳＲＡＭバッファ２００が画素バッファ書き込み可能化信号２７６に従って書き込まれるかどうかを決定する。アドレスされたブロックとワードに関するダーティ・タグの４ビットは、インターリーブ・レンダリング・バス６４を通して新データと共に受け取ったＰＡ＿ＢＥ［３..０］信号にセットされる。アドレスされたブロックに関する残りのダーティ・タグ・ビットはクリアされる。ＳＲＡＭバッファ２００及びダーティ・タグ・メモリ１９４に対する書き込みは、画素バッファ書き込み可能化２７６によって左右される。比較テストのフェイルは、ＰＡ＿ＰＡＳＳ＿ＩＮ信号又はＰＡ＿ＰＡＳＳ＿ＯＵＴ信号が「低」なら、ＳＲＡＭバッファ２００に対する書き込みを不可にする。
【０１２７】
レンダリング・コントローラ７０は、ステートフル正常書き込み動作を発して、ＦＢＲＡＭチップ７１の制御レジスタの内容にしたがって、３２ビットのデータをＳＲＡＭバッファ２００に書き込む。レンダリング・コントローラ７０は、ＳＲＡＭバッファ２００のブロック及びワードをＰＡ＿ＡＤＤＲ［５..０］信号を介して指定し、ＰＡ＿ＤＱ［３１..０］信号を介して新データを与える。新データは、画素ＡＬＵ動作を制御するＦＢＲＡＭチップ７１のレジスタの内容に従って、アドレスされたブロック及びワードの既存のデータと組み合わされる。比較装置２３５からの比較結果２４０及びＰＡ＿ＰＡＳＳ＿ＩＮ信号は、ＳＲＡＭバッファ２００が画素バッファ書き込み可能化信号２７６に従って書き込まれるかどうかを決定する。アドレスされたブロック及びワードに関するダーティ・タグの４ビットは、インターリーブ・レンダリング・バス６４を通して新データと共に受け取ったＰＡ＿ＢＥ［３..０］信号とインクルーシブＯＲされる。ＳＲＡＭバッファ２００及びダーティ・タグ・メモリ１９４に対する書き込みは、ＰＡ＿ＰＡＳＳ＿ＩＮ信号又はＰＡ＿ＰＡＳＳ＿ＯＵＴ信号が比較テストのフェイルを示すと、画素バッファ書き込み可能化２７６によって禁止される。図１１は、比較動作パイプライン２３５とその可能化パイプラインが、書き込みデータ・パイプライン２３０−２３３と同じ深度であり、従って、比較決定及び書き込み可能化条件は、書き込みデータと同時に画素バッファ５６の書き込みポートに到達する。
【０１２８】
レンダリング・コントローラ７０は、置き換えダーティ・タグ動作を発し、ダーティ・タグ・データをＰＡ＿ＤＱ［３１..０］信号を介してダーティ・タグ・メモリ１９４に転送する。レンダリング・コントローラ７０は、新タグ・データ・ビットに関する画素バッファ５６のブロックをＰＡ＿ＡＤＤＲ［５..３］信号を介して指定する。ＰＡ＿ＢＥ［３..０］信号は、新タグ・データを与えるＰＡ＿ＤＱ［３１..０］信号からの１バイトを選択する。新タグ・データは、ＲＯＰ／ブレンド装置２３１−２３３のラスタＯＰ回路を無修正で通過する。
【０１２９】
レンダリング・コントローラ７０は、ＯＲダーティ・タグ動作を発して、新タグ・データとダーティ・タグ・メモリの既存のタグ・データに対してインクルーシブＯＲを行う。レンダリング・コントローラ７０は、ＰＡ＿ＤＱ［３１..０］信号を介して新タグ・データを与え、ＯＲ機能に関する画素バッファ５６のブロックを、ＰＡ＿ＡＤＤＲ［５..３］信号を介して指定する。ＰＡ＿ＢＥ［３..０］信号は、既存のダーティ・タグビットとのインクルーシブＯＲ機能に関して、ＰＡ＿ＤＱ［３１..０］信号から１バイトを選択する。新タグ・データは、ＲＯＰ／ブレンド装置２３１−２３３のラスタＯＰ回路を通過し、インクルーシブＯＲ機能を実行する。
【０１３０】
レンダリング・コントローラ７０は、書き込み制御レジスタ動作を発して、新データをＦＢＲＡＭチップ７１の内部制御レジスタに転送する。レンダリング・コントローラ７０は、新データをＰＡ＿ＤＱ［３１..０］信号を介して転送し、ＰＡ＿ＡＤＤＲ信号を介して制御レジスタを指定する。ＰＡ＿ＢＥ［０］信号は、指定された制御レジスタのビット７：０への書き込みを可能にし、ＰＡ＿ＢＥ［１］信号は、ビット１５：８への書き込みを可能にし、ＰＡ＿ＢＥ［２］信号は、ビット２３：１６への書き込みを可能にし、ＰＡ＿ＢＥ［３］信号は、ビット３１：２４への書き込みを可能にする。
【０１３１】
ＦＢＲＡＭチップ７１の内部制御レジスタは、プレーン・マスク・レジスタ１９８、定数ソース・レジスタ２３６、一致マスク・レジスタ２６４、マグニチュード・マスク・レジスタ２６６、ＲＯＰ／ブレンド制御レジスタ２２０、比較制御レジスタ２６８及び書き込みアドレス制御レジスタから成る。ＦＢＲＡＭチップ７１の制御レジスタの内容は、ステートレス書き込み動作中無視される。書き込み制御レジスタ動作中に制御レジスタにロードされた新データは、前のサイクルでレンダリング・コントローラ７０によって発せられた動作に影響しない。
【０１３２】
プレーン・マスク・レジスタ１９８の内容は、包括バス６０上のステートフル書き込み画素ポート動作及びマスク書き込みブロック動作に影響する。マスク書き込みブロック動作中、プレーン・マスク・レジスタ１９８の各ビットは、ＤＲＡＭバンクＡ−Ｄの３２のビット・プレーンの１つに対する書き込み可能化を与える。
定数ソース・レジスタ２３６は、画素ＡＬＵ５８のＲＯＰ／ブレンド及び比較動作に定数データを与える３６ビットのレジスタである。レンダリング・コントローラ７０は、インターリーブ・レンダリング・バス６４を通して、ＰＡ＿ＤＱ信号及びＰＡ＿ＤＸ信号を介して定数ソース・レジスタ２３６にロードする。ＲＯＰ／ブレンド装置２３１ー２３３及び比較装置２３５は、それぞれ定数ソース・レジスタを選択し、ソース・データを与えることができる。
【０１３３】
レンダリング・コントローラ７０は、一致マスク・レジスタ２６４に書き込み、一致比較回路２６０による一致テストに参加するビットを指定する。マグニチュード・マスク・レジスタ２６６は、マグニチュード比較回路２６２によるマグニチュード・テストに参加するビットを指定する。レンダリング・コントローラ７０は、データをインターリーブ・レンダリング・バス６４を通してＰＡ＿ＤＱ信号を介して一致マスク・レジスタ２６４及びマグニチュード・マスク・レジスタ２６６へ転送する。
【０１３４】
レンダリング・コントローラ７０は、ＲＯＰ／ブレンド制御レジスタ２２０に書き込み、ＲＯＰ／ブレンド装置２３１−２３３のそれぞれによって行われる機能を制御する。各ＲＯＰ／ブレンド装置２３１−２３３は、３２ビットのＲＯＰ／ブレンド制御レジスタ２２０の８ビット・フィールドによって独立して制御される。例えば、ＲＯＰ／ブレンド制御レジスタ２２０のビット０−３は、ＲＯＰ／ブレンド装置２３０に関する１６の可能なラスタＯＰの１つを選択し、ＲＯＰ／ブレンド制御レジスタ２２０のビット８−１１は、ＲＯＰ／ブレンド装置２３１に関する１６の可能なラスタＯＰの１つを選択する。
【０１３５】
表７は、１実施例に関して、各ＲＯＰ／ブレンド装置２３１−２３３によって行われるラスタＯＰをリストしたものである。ラスタＯＰは、ＲＯＰ／ブレンド制御レジスタ２２０の対応する部分のビット０−３によって選択される。ＮＥＷは、ＰＡ＿ＤＱ［３１..０］信号を介してレンダリング・コントローラ７０によって与えられる新データか又は定数ソース・レジスタ２３６の内容を表す。ＯＬＤは、画素バッファ５６にストアされた旧データを表す。
【０１３６】
0003779748.tif 000010
【０１３７】
ＲＯＰ／ブレンド制御レジスタ２２０のビット４は、ＲＯＰ／ブレンド装置２３０に関するラスタＯＰ機能又はブレンド機能を選択する。ＲＯＰ／ブレンド制御レジスタ２２０のビット５は、ラスタＯＰ回路２２２及びアダー２２４に対するソースをＰＡ＿ＤＱ［３１..０］信号又は定数ソース・レジスタ２３６から選択する。ＲＯＰ／ブレンド制御レジスタ２２０の類似のビットは、ＲＯＰ／ブレンド装置２３１−２３３に対応する。
【０１３８】
表８は、乗算回路２２８に対するソース・フラクションをリストしたものである。リストされたＲＯＰ／ブレンド装置０−ｎは、ＲＯＰ／ブレンド装置２３０−２３３から成る。ＲＯＰ／ブレンド装置２３０の乗算回路２２８に対するソース・フラクションは、ＲＯＰ／ブレンド制御レジスタ２２０のビット７−６によって選択される。
0003779748.tif 000011
【０１３９】
レンダリング・コントローラ７０は、比較制御レジスタ２６８に書き込み、比較装置２３５の機能を制御する。比較制御レジスタのビット１６は、比較装置に対するソースを、ＰＡ＿ＤＱ信号を介してレンダリング・コントローラ７０から受け取ったデータ又は定数ソース・レジスタ２３６からのデータから選択する。比較制御レジスタ２６８のビット２７−２４は、ＦＢＲＡＭチップ７１のピッキング論理を制御する。ビット２５−２４は、ＨＩＴフラグをクリア／セットし、ビット２７−２６は、ピッキング論理を可能化／不能化する。
【０１４０】
表９は、比較装置２３５のマグニチュード比較テストをリストしたものである。比較装置２３５のマグニチュード比較テストは、比較制御レジスタ２６８のビット２−０によって選択される。比較制御レジスタ２６８のビット２−０は、マグニチュード比較回路２６２に関する８つのテストの１つを選択する。
【０１４１】
0003779748.tif 000012
【０１４２】
表１０は、比較装置２３５の一致比較テストをリストしたものである。比較装置２３５の一致比較テストは、比較制御レジスタ２６８のビット９−８によって選択される。比較制御レジスタ２６８のビット９−８は、一致比較回路２６０に関する４つの比較テストの１つを選択する。
0003779748.tif 000013
【０１４３】
ステートフル書き込み動作は、マグニチュード比較回路２６２によるマグニチュード・テスト、一致比較回路２００による一致テスト及びＰＡ＿ＰＡＳＳ＿ＩＮのそれぞれがパスを示すときのみ画素バッファ５６に書き込む。ＰＡ＿ＰＡＳＳ＿ＯＵＴ信号は、マグニチュード・テスト及び一致テストの両方がパスのとき、パスを示す。
比較制御レジスタ２６８のＨＩＴフラグは、ＦＢＲＡＭチップ７１のピッキング論理が可能化され、ＰＡ＿ＰＡＳＳ＿ＩＮがパスを示すとき、ステートフル書き込み動作がマグニチュード及び一致テストをパスすれば、セットされる。ＨＩＴフラグは、比較制御レジスタ２６８に対する書き込みがビット２４をクリアするまでセットされたままである。比較制御レジスタ２６８のＨＩＴフラグは、ＦＢＲＡＭチップ７１のＨＩＴ入出力インターフェース・ピンに反映される。
【０１４４】
画素ポート制御回路１１４の書き込みアドレス制御レジスタは、画素ポート書き込み動作中、ＳＲＡＭバッファ２００に対する書き込みアドレス・ソースを選択する。ＳＲＡＭバッファ２００に対する書き込みアドレス・ソースは、ＰＡ＿ＡＤＤＲ［５..０］信号又はＰＡ＿ＤＱ［２９..２４］信号のどれかである。レンダリング・コントローラ７０は、通常書き込みアドレス制御レジスタをプログラムし、画素ポート書き込み中、書き込みアドレス・ソースに関するＰＡ＿ＡＤＤＲ［５..０］信号を選択する。レンダリング・コントローラ７０は、書き込みアドレス制御レジスタをプログラムし、垂直スクロール及びその他の内部コピー動作中、画素ポート書き込みに関する書き込みアドレス・ソースとして、ＰＡ＿ＤＱ［２９..２４］信号を選択する。
【０１４５】
図１５は、書き込みアドレス制御レジスタによって選択された両方のアドレス・ソースから画素バッファ５６へのパイプライン・データ・フローを示す。書き込みアドレス・ソースに関するパイプライン・フローは、書き込みアドレス・ソースがＰＡ＿ＤＱ［２９..２４］信号のとき、書き込みアドレス制御レジスタによって与えられる書き込みアドレス選択機能と組み合わせて、高速の垂直スクロール及び内部コピー動作を可能にする。画素ＡＬＵ５８のパイプライン体系は、レンダリング・コントローラ７０がＰＡ＿ＡＤＤＲ［５..０］によって指定されたＳＲＡＭバッファ２００の１ロケーションからの読み出しデータをコピーし、そのデータを垂直スクロール及び内部コピー動作中、１クロックにつきＦＢＲＡＭ当たり３２ビットの割合で、１回のステートフル書き込みでＰＡ＿ＤＱ［２９..２４］によって指定されたＳＲＡＭバッファ２００の別のロケーションに書き込むことを可能にする。
【０１４６】
図１６は、垂直スクロール動作を示し、画素Ａに対する画素データは、画素Ｂに移動される。画素Ａに対する画素データは、ＳＲＡＭバッファ２００のブロック３：ワード０にストアされる。画素Ｂに対する画素データは、ＳＲＡＭバッファ２００のブロック０：ワード５にストアされる。
図１７は、ステートフル・データ書き込み動作と共に書き込みアドレス選択機能を用いる垂直スクロール又はその他の内部コピー動作中に、画素データを画素Ａから画素Ｂへ転送するパイプライン転送を示している。レンダリング・コントローラ７０は、ＦＢＲＡＭチップ７１の制御レジスタに書き込み、画素Ａを画素Ｂへ移動させるステートフル書き込み動作を発する前に、垂直スクロール動作をセット・アップする。
【０１４７】
レンダリング・コントローラ７０は、書き込みアドレス制御レジスタをプログラムして、ＳＲＡＭバッファ２００に対する書き込みアドレスに関するＰＡ＿ＤＱ［２９..２４］信号を選択する。レンダリング・コントローラ７０は、ＲＯＰ／ブレンド制御レジスタ２２０をプログラムして、ＲＯＰ／ブレンド装置２３０−２３３に関する旧データを選択する。レンダリング・コントローラ７０は、比較制御レジスタ２６８をプログラムして、常にパスさせる。レンダリング・コントローラ７０は、プレーン・マスク・レジスタ１９８をプログラムして、所望のビットをステートフル・データ書き込み動作中にＳＲＡＭバッファ２００にパスする。
レンダリング・コントローラ７０は、時間ｔ２０中に書き込みアドレス制御レジスタに書き込む。時間ｔ２０中、書き込みアドレス制御レジスタは、ＰＡ＿ＡＤＤＲ信号を介して選択される。時間ｔ２１中に、レンダリング・コントローラ７０は、ＰＡ＿ＤＱ信号を介して、書き込みアドレス制御レジスタを目標とするデータを転送する。
【０１４８】
時間ｔ２１−ｔ２３でのインターリーブ・レンダリング・バス６４上の次のアドレス・サイクルの間、及び時間ｔ２２−ｔ２４のデータ・サイクルの間に、レンダリング・コントローラ７０は、ＲＯＰ／ブレンド制御レジスタ２２０をプログラムして、ＲＯＰ／ブレンド装置２３１−２３３のそれぞれに関する旧データを選択し、比較制御レジスタ２６８をプログラムして、常にパスを示し、プレーン・マスク・レジスタ１９８をプログラムして、ステートフル書き込み動作中にＳＲＡＭバッファ２００への所望のビットを可能化する。
レンダリング・コントローラ７０は、時間ｔ２４で、ＰＡ＿ＡＤＤＲ［５..０］信号を介して画素Ａに対するアドレスを転送し、時間ｔ２５でＰＡ＿ＤＱ［２９..２４］信号を介して画素Ｂに対するアドレスを転送する。７パイプライン・サイクルの後、画素Ａは画素Ｂの位置に書き込まれる。
【０１４９】
表１１は、１実施例に関して、ＦＢＲＡＭチップ７１によって与えられるＤＲＡＭアクセス動作をリストしたものである。ＤＲＡＭアクセス動作は、ページ・アクセス動作、ブロック・アクセス動作及びビデオ・バッファ・ロード動作を含む。ページ・アクセス動作は、アクセス・ページ動作、プリチャージ動作及び重複ページ動作を含む。ブロック・アクセス動作は、読み出しブロック動作、マスクなしの書き込みブロック動作及びマスク書き込みブロック動作を含む。レンダリング・コントローラ７０は、ＤＲＡＭ＿信号を介して、インターリーブ・レンダリング・バス６４の各サイクルでＤＲＡＭアクセス動作を発することができる。
【０１５０】
0003779748.tif 000014
【０１５１】
レンダリング・コントローラ７０は、ページ・アクセス動作を発して、ＤＲＡＭバンクＡ−Ｄのページを選択する。レンダリング・コントローラ７０は、ＤＲＡＭ＿ＢＡＮＫ信号を介してＤＲＡＭバンクＡ−Ｄを指定し、ＤＲＡＭ＿ＡＤＤＲ［８..０］信号を介してアクセスされたページを指定する。
レンダリング・コントローラ７０は、ブロック・アクセス動作を発して、データのブロックをページ・バッファＡ−Ｄと画素バッファ５６の間で転送する。レンダリング・コントローラ７０は、ＤＲＡＭ＿ＢＡＮＫ信号を介して、ＤＲＡＭバンクＡ−Ｄ及びページ・バッファＡ−Ｄを指定する。レンダリング・コントローラ７０は、ＤＲＡＭ＿ＡＤＤＲ［８..６］信号を介して、画素バッファ５６の画素キャッシュ・ブロックを指定し、ＤＲＡＭ＿ＡＤＤＲ［５..０］信号を介して、指定されたページ・バッファＡ−Ｄのブロックを選択する。
【０１５２】
レンダリング・コントローラ７０は、マスクなしの書き込みブロック動作を発し、画素バッファ５６の指定されたブロックから、データのブロックを包括バス６０を通して指定されたページ・バッファＡ−Ｄの指定されたブロックへ転送する。プレーン・マスク・レジスタ１９８のプレーン・マスク・ビットはマスクしない書き込みブロック動作に影響を与えない。画素バッファ５６の指定されたブロックに対応するダーティ・タグ・メモリ１９４のダーティ・タグ・ビットは、指定されたページ・バッファＡ−Ｄに対するバイト方式の書き込みを制御する。
【０１５３】
レンダリング・コントローラ７０は、マスク書き込み動作を発して、画素バッファ５６の指定された画素キャッシュ・ブロックから、データのブロックを、包括バス６０を通して指定されたページ・バッファの指定されたブロックに転送する。画素バッファ５６の指定された画素キャッシュ・ブロックに関するプレーン・マスク・レジスタ１９８及びダーティ・タグ・ビットは、指定されたＤＲＡＭバンクＡ−Ｄのページ・バッファＡ−Ｄに対するビット方式の書き込みを制御する。
【０１５４】
レンダリング・コントローラ７０は、プリチャージ・バンク動作を発して、指定されたＤＲＡＭバンクＡ−Ｄのセンス・アンプをプリチャージする。レンダリング・コントローラ７０は、プリチャージ・バンク動作を発して、続いて起こるアクセス・ページ動作の準備をする。
レンダリング・コントローラ７０は、ビデオ転送動作を発して、６４０ビット・ラインのセンス・アンプ・データを、指定されたページ・バッファＡ−Ｄから対応するビデオ・バッファ５２又は５４へ転送する。レンダリング・コントローラ７０は、ＤＲＡＭ＿ＡＤＤＲ［３..０］信号を用いてページ・バッファＡ−Ｄからからのラインを指定する。
【０１５５】
レンダリング・コントローラ７０は、重複ページ動作を発して、指定されたページ・バッファＡ−Ｄのセンス・アンプ・データを対応するＤＲＡＭバンクＡ−Ｄの指定されたページへ転送する。プレーン・マスク・レジスタ１９８のプレーン・マスク・ビットは、重複ページ動作に影響を与えない。
レンダリング・コントローラ７０は、読み出しブロック動作を発して、データのブロックを指定されたページ・バッファＡ−Ｄの指定されたブロックから、包括バス６０を通して画素バッファ５６の指定された画素キャッシュ・ブロックへ転送する。読み出しブロック動作は、画素バッファ５６の指定された画素キャッシュ・ブロックに関するダーティ・タグ・ビットをクリアする。
【０１５６】
レンダリング・コントローラ７０は、アクセス・ページ動作を発して、指定されたＤＲＡＭバンクＡ−Ｄの指定されたページから、データをページ・バッファＡ−Ｄの対応するセンス・アンプへ転送する。レンダリング・コントローラ７０は、ＤＲＡＭバンクに対するプリチャージによって、特定のＤＲＡＭバンクＡ−Ｄに対するアクセス・ページ動作に先行させる。
【０１５７】
図１８は、１実施例に関してＦＢＲＡＭチップ７１に対する画素ポート書き込みタイミングを示す。示されている画素ポート制御信号は、インターリーブ・レンダリング・バス６４上のマスタ・クロック信号（ＣＬＫ）に同期している。マスタ・クロック信号ＣＬＫは、ＰＡ＿ＤＱ信号及びＰＡ＿ＤＸ信号を介したインターリーブ・レンダリング・バス６４上のデータ転送にも同期する。
時間ｔ４１で、レンダリング・コントローラ７０は、書き込み制御レジスタ動作をインターリーブ・レンダリング・バス６４上に発する。ＰＡ＿ＯＰ信号は、書き込み制御レジスタ動作及びＰＡ＿ＡＤＤＲ信号を示し、ＦＢＲＡＭチップ７１の内部レジスタを指定する。
【０１５８】
時間ｔ４２で、レンダリング・コントローラ７０は、置き換えダーティ・タグ動作をＰＡ＿ＯＰ信号を介して発する。レンダリング・コントローラ７０は、ＰＡ＿ＡＤＤＲ信号を介して置き換えダーティ・タグ動作に関するブロックを指定する。また時間ｔ４２で、レンダリング・コントローラ７０は、時間ｔ４１で発せられた書き込み制御レジスタ動作に関して、ＰＡ＿ＤＱ及びＰＡ＿ＤＸピンを介して、レジスタ・データを転送する。
時間ｔ４３で、レンダリング・コントローラ７０は、ＰＡ＿ＯＰ信号を介してＯＲダーティ・タグ動作を発し、ＰＡ＿ＡＤＤＲ信号を用いてＯＲダーティ・タグ動作に関するブロックを示す。また時間ｔ４３において、時間ｔ４２で発せられた置き換えダーティ・タグ動作に対するダーティ・タグ・ビットは、ＰＡ＿ＤＱ信号を介してレンダリング・コントローラ７０によって転送される。
【０１５９】
時間ｔ４４で、ＰＡ＿ＯＰ信号は、レンダリング・コントローラ７０によって発せられたステートフル初期書き込み動作を示し、ＰＡ＿ＡＤＤＲ信号は、そのステートフル動作のブロックとワードを示す。またｔ４４において、ｔ４３で発せられたＯＲダーティ・タグ動作に関するダーティ・タグは、レンダリング・コントローラ７０によってＰＡ＿ＤＱ信号を介して転送される。
時間ｔ４５で、ＰＡ＿ＯＰ信号は、レンダリング・コントローラ７０によって発せられたステートレス初期書き込み動作を示す。また時間ｔ４５において、レンダリング・コントローラ７０は、ｔ４４で発せられたステートフル初期書き込み動作に関して、ＰＡ＿ＤＱ及びＰＡ＿ＤＸ信号を介して新データを転送する。
【０１６０】
時間ｔ４６において、ｔ４５で発せられたステートレス初期データ書き込み動作に関する新データは、ＰＡ＿ＤＱ及びＰＡ＿ＤＸ信号を介してレンダリング・コントローラ７０によって転送される。時間ｔ４９において、ＦＢＲＡＭチップ７１は、有効なＰＡ＿ＰＡＳＳ＿ＩＮ信号を受け取り、その結果ｔ４４で発せられたステートフル初期書き込み動作に関し、ＰＡ＿ＰＡＳＳ＿ＯＵＴ信号を転送する。
【０１６１】
図１９は、１実施例に関し、ＦＢＲＡＭチップ７１のＤＲＡＭバンクＡに対する一連のＤＲＡＭ動作を示す。時間ｔ６０で、レンダリング・コントローラ７０は、ＤＲＡＭ＿ＯＰ信号を介してプリチャージ動作（ＰＲＥ）を発する。レンダリング・コントローラ７０は、ＤＲＡＭ＿ＢＡＮＫ信号を介してＤＲＡＭバンク７Ａを示し、ＤＲＡＭ＿ＡＤＤＲ信号を介してプリチャージ動作に対するＤＲＡＭバンクＡのページを示す。時間ｔ６１で、レンダリング・コントローラ７０は、インターリーブ・レンダリング・バス６４上のＮＯ  ＯＰ（無動作）（ＮＯＰ）を示す。
【０１６２】
時間ｔ６２で、レンダリング・コントローラ７０は、ＤＲＡＭ＿ＯＰ信号を介してアクセス・ページ動作（ＡＣＰ）を発し、ＤＲＡＭ＿ＢＡＮＫ信号を介してＤＲＡＭバンクＡを示す。レンダリング・コントローラ７０は、ＤＲＡＭ＿ＡＤＤＲ信号を用いて、アクセス・ページ動作に対するＤＲＡＭバンクＡのページを示す。
時間ｔ６４で、レンダリング・コントローラ７０は、ＤＲＡＭ＿ＯＰ信号を介してマスクなしの書き込みブロック動作（ＵＷＢ）を発し、ＤＲＡＭ＿ＢＡＮＫ信号を介して、ＤＲＡＭバンクＡを示す。レンダリング・コントローラ７０は、ＤＲＡＭ＿ＡＤＤＲ信号を介して、マスクなしの書き込みブロック動作に対するブロック・アドレスを転送する。
【０１６３】
時間ｔ６６で、レンダリング・コントローラ７０は、ＤＲＡＭバンクＡを目標とするマスク書き込みブロック動作を発する。時間ｔ６６で、ＤＲＡＭ＿ＡＤＤＲ信号を介して、マスク書き込みブロック動作に関するブロック・アドレスを転送する。時間ｔ６８で、レンダリング・コントローラ７０は、ＤＲＡＭバンクＡに対するプリチャージ動作を発し、ＤＲＡＭ＿ＡＤＤＲ信号を介してプリチャージ動作に関するＤＲＡＭページ識別子を転送する。
【０１６４】
図２０は、ＦＢＲＡＭチップ７１のＤＲＡＭバンクＡに関する一連のＤＲＡＭ動作を示す。時間ｔ８０で、レンダリング・コントローラ７０は、ＤＲＡＭ＿ＯＰ信号を介してアクセス・ページ動作を示し、ＤＲＡＭ＿ＢＡＮＫ信号を介してＤＲＡＭバンクＡを指定し、ＤＲＡＭ＿ＡＤＤＲ信号を介してアクセス・ページ動作に関するページを指定する。
時間ｔ８２で、レンダリング・コントローラ７０は、ＤＲＡＭ＿ＯＰ信号を介して重複ページ動作（ＤＵＰ）を示す。レンダリング・コントローラ７０は、ＤＲＡＭ＿ＢＡＮＫ信号を介してＤＲＡＭバンクＡを示し、ＤＲＡＭ＿ＡＤＤＲ信号を介して重複ページ動作に対するページを示す。
【０１６５】
時間ｔ８４で、レンダリング・コントローラ７０は、ＤＲＡＭバンクＡに対して重複ページ動作を発し、ＤＲＡＭ＿ＡＤＤＲ信号を介して重複ページ動作に対するページを指定する。時間ｔ８６で、レンダリング・コントローラ７０は、ＤＲＡＭバンクＡに対するマスクなしの書き込みブロック動作を発し、ＤＲＡＭ＿ＡＤＤＲ信号を介してブロックを指定する。時間ｔ８８で、レンダリング・コントローラ７０は、ＤＲＡＭバンクＡの重複ページ動作を発し、ＤＲＡＭ＿ＡＤＤＲ信号を介して重複ページ動作に対するページを示す。
【０１６６】
図２１は、ＦＢＲＡＭチップ７１のＤＲＡＭバンクＡ−Ｄに対してレンダリング・コントローラ７０によって発せられる一連のＤＲＡＭ動作を示す。時間ｔ１４０でレンダリング・コントローラ７０は、ＤＲＡＭバンクＡにプリチャージ動作を発し、ＤＲＡＭ＿ＡＤＤＲ信号のプリチャージ動作に対するページを示す。時間ｔ１４１で、レンダリング・コントローラ７０は、ＤＲＡＭバンクＢのページにプリチャージ動作を発する。時間ｔ１４２で、レンダリング・コントローラ７０は、ＤＲＡＭバンクＣのページにアクセス・ページ動作を発する。時間ｔ１４３で、レンダリング・コントローラ７０は、ＤＲＡＭバンクＤのマスク書き込み動作を発し、ＤＲＡＭ＿ＡＤＤＲ信号を介してブロックを示す。
【０１６７】
時間ｔ１４５で、レンダリング・コントローラ７０は、ＤＲＡＭバンクＢに対するアクセス・ページ動作を発する。時間ｔ１４６で、レンダリング・コントローラ７０は、ＤＲＡＭバンクＣに対する読み出しブロック動作を発する。時間ｔ１４８で、レンダリング・コントローラ７０は、ＤＲＡＭバンクＤに対するプリチャージ動作を発する。時間ｔ１４９で、レンダリング・コントローラ７０は、ＤＲＡＭバンクＢに対する重複ページ動作を発する。
【０１６８】
図２２は、レンダリング・コントローラ７０によってＦＢＲＡＭチップ７１に対して発せられる一連のＤＲＡＭ動作を示す。時間ｔ１６０で、レンダリング・コントローラ７０は、ＤＲＡＭバンクＡに対してアクセス・ページ動作を発する。時間ｔ１６２で、レンダリング・コントローラ７０は、ＤＲＡＭ・バンクＢに対して重複ページ動作を発する。時間ｔ１６３で、レンダリング・コントローラ７０は、ＤＲＡＭ＿ＡＤＤＲ信号を介して指定されたブロックで、ＤＲＡＭバンクＡのマスク書き込みブロック動作を発する。
時間ｔ１６５で、レンダリング・コントローラ７０は、ＤＲＡＭバンクＣのページの重複ページ動作を発する。時間ｔ１６７で、レンダリング・コントローラ７０は、ＤＲＡＭバンクＡのプリチャージ動作を発する。時間ｔ１６８で、レンダリング・コントローラ７０は、ＤＲＡＭバンクＤのアクセス・ページ動作を発する。
【０１６９】
図２３は、ＦＢＲＡＭチップ７１のレンダリング・コントローラ７０によって発せられる一連のＤＲＡＭ動作を示す。時間ｔ１８０で、レンダリング・コントローラ７０は、ＤＲＡＭバンクＡの重複ページ動作を発し、時間ｔ１８１で、レンダリング・コントローラ７０は、ＤＲＡＭバンクＢのマスク書き込み動作を発する。
時間ｔ１８２で、レンダリング・コントローラ７０は、ＤＲＡＭ＿ＡＤＤＲ信号に示されたラインで、ＤＲＡＭバンクＣのビデオ転送動作を発する。時間ｔ１８３で、レンダリング・コントローラ７０は、ＤＲＡＭバンクＢに対してマスクなしの書き込みブロック動作を発する。
【０１７０】
時間ｔ１８４で、レンダリング・コントローラ７０は、ＤＲＡＭバンクＤに対してプリチャージ動作を発し、時間ｔ１８５で、ＤＲＡＭバンクＢに対してビデオ転送動作を発する。時間ｔ１８６で、レンダリング・コントローラ７０は、ＤＲＡＭバンクＤに対してアクセス・ページ動作を発し、時間ｔ１８７で、ＤＲＡＭバンクＡに対して重複ページ動作を発する。時間ｔ１８９で、レンダリング・コントローラ７０は、ＤＲＡＭバンクＣに対してビデオ転送動作を発する。
【０１７１】
図２４は、コンピュータ・グラフィックス・システム２９０を示す。コンピュータ・グラフィックス・システム２９０は、プロセッサ３３８、グラフィックス・サブシステム３００及び表示装置３０６から成る。プロセッサ３３８は、システム・バス３０６を通してグラフィックス・サブシステム３００と通信する。
プロセッサ３３８は、コンピュータ・グラフィックス・アプリケーション・プログラムを実行する。コンピュータ・グラフィックス・アプリケーション・プログラムは、表示に関するグラフィック・エレメントを定義するグラフィック・データを生成する。プロセッサ３３８は、グラフィック・データをシステム・バス３９６を通してグラフィックス・サブシステム３００へ転送する。プロセッサ３３８は、対話的コンピュータ・グラフィックス・アプリケーション・プログラムに関して、システム・バス３９６を通してグラフィックス・サブシステム３００からグラフィック・データをアクセスする。
【０１７２】
グラフィックス・サブシステム３００は、プロセッサ３３８から受け取ったグラフィック・データを処理し、対応するグラフィック・エレメントを表示装置３０６上に表示する。グラフィックス・サブシステム３００は、１組のインターフェース・ライン３９８を通して表示装置３０６と通信する。インターフェース・ライン３９８は、赤、緑、青のビデオ信号及びビデオ・シンク・信号を転送し、表示装置３０６上にイメージを生成する。
【０１７３】
図２５は、グラフィックス・サブシステム３００を示す。グラフィックス・サブシステム３００は、１つ以上のＦＢＲＡＭチップ３０２、レンダリング・コントローラ３０８及びランダム・アクセス・メモリ・ディジタル・アナログ変換器（ＲＡＭＤＡＣ）３０４から成る。
レンダリング・コントローラ３０８は、レンダリング・バス３１０を通してＦＢＲＡＭチップ３０２をアクセスする。レンダリング・コントローラ３０８は、制御バス３１２を通してＦＢＲＡＭチップ３０２の機能を制御する。レンダリング・コントローラ３０８は、画素ポート動作、ＤＲＡＭ動作及びその他のＦＢＲＡＭ動作を含むＦＢＲＡＭチップ３０２の動作を制御する。
【０１７４】
レンダリング・コントローラ３０８は、ＦＢＲＡＭチップ３０２に関する画素データをレンダリング・バス３１０を通して転送する。レンダリング・コントローラ３０８は、ＦＢＲＡＭチップ３０２に関するアドレス及び制御信号を制御バス３１２を通して転送する。ＦＢＲＡＭチップ３０２は、ビデオ・データをビデオ・バス３１６を通してＲＡＭＤＡＣ３０４へ転送する。ＲＡＭＤＡＣ３０４は、ビデオ・バス３１６上でのビデオ・データの転送を同期させるビデオ・クロック３１４を生成する。ＲＡＭＤＡＣ３０４は、ビデオ信号をインターフェース・ライン３９８を通して転送し、イメージを表３０６上に表示する。
【０１７５】
１実施例では、単一のＦＢＲＡＭチップ３０２は、表示装置３０６に対する単一の１２８０×１０２４フレーム・バッファとして構成される。表示装置３０６に対する各画素は、８ビットから成る。表示装置３０６の表示フレームは、ＦＢＲＡＭチップ３０２において、幅８、高さ３２のアレイのページ・グループを含む。各ページ・グループは、幅１６０画素、高さ３２画素である。各ページ・グループは、各ＤＲＡＭバンクＡ−Ｄからの１ページで構成される。
ＦＢＲＡＭチップ３０２の４つの独立したＤＲＡＭバンクＡ−Ｄはインターリーブされる。インターリーブＤＲＡＭバンクＡ−Ｄは、イメージを他のＤＲＡＭバンクＡ−Ｄに表示している間に、レンダリング・コントローラ３０８が１つのＤＲＡＭバンクＡ−Ｄのページ・リフレッシュ動作を発することを可能にする。
【０１７６】
ＦＢＲＡＭチップ３０２のページ・グループ内の各ＤＲＡＭページは、幅８０画素、高さ１６画素である。ＤＲＡＭページは、各８０画素幅の１６スキャンラインに小分割され、ＤＲＡＭバンクＡ−Ｄに関する対応するビデオ・バッファへ転送される。ＤＲＡＭページは、幅１０、高さ４のアレイの２５６ビット・ブロックに小分割され、ＦＢＲＡＭチップ３０２の包括バスを通して転送される。ビデオ・クロック３１４の各サイクル中に、２画素がＦＢＲＡＭチップ３０２のビデオ・バッファからビデオ・バス３１６上にシフト・アウトされる。
【０１７７】
ＦＢＲＡＭチップ３０２の包括バスを通して画素バッファとＤＲＡＭバンクＡ−Ｄの間で転送される画素ブロックは、幅８画素、高さ４画素である。レンダリング・コントローラ３０８は、レンダリング・バス３１０を通してＦＢＲＡＭチップ３０２の画素バッファの指定された画素キャッシュ・ブロックから４画素のセットをアクセスする。ＦＢＲＡＭチップ３０２の画素ＡＬＵは、画素バッファの画素キャッシュ・ブロックから４画素のセットを内部でアクセスする。レンダリング・コントローラ３０８は、レンダリング・バス３１０を通して１サイクルで、ＦＢＲＡＭチップ３０２の画素バッファの画素キャッシュ・ブロックに関するダーティ・タグ・ヒットを書き込む。
【０１７８】
次の等式は、ＦＢＲＡＭチップ３０２によって与えられる単一バッファの１２８０×１０２４×８ビットのフレーム・バッファの各画素に関して、ＤＲＡＭバンクＡ−Ｄ、ＤＲＡＭページ、ページ内のスキャン・ライン、ページ内のブロック、ブロック内のワード及びワード内の画素を決定する。
ＤＲＡＭバンク＝２＊（（ｙ％３２）／１６）＋（ｘ％１６０）／８０
ページ＝８＊（ｙ／３２）＋ｘ／１６０
スキャンライン＝ｙ％１６
ブロック＝（ｙ％１６）／４＋４＊（（ｘ％８０）／８）
ワード＝２＊（ｙ％４）＋（ｘ％８）／４
画素＝ｘ％４
【０１７９】
ここで、ｘ及びｙは、画素の表示座標、「％」は整数モジュールの演算を示し、［／］はＣプログラム・シンタックスでの整数除算を示し、ＤＲＡＭバンク＝０は、ＤＲＡＭバンクＡを指定し、ＤＲＡＭバンク＝１はＤＲＡＭバンクＢを、ＤＲＡＭバンク＝２はＤＲＡＭバンクＣを、ＤＲＡＭバンク＝３はＤＲＡＭバンクＤをそれぞれ指定する。
他の実施例では、単一のＦＢＲＡＭチップ３０２は、表示装置３０６に対する１６ビットのＺバッファを有するダブル・バッファの６４０×５１２×８ビットのフレーム・バッファとして構成される。Ｚ比較機能及びＲＯＰ／ブレンド機能は、ＦＢＲＡＭチップ３０２内で行われる。
【０１８０】
図２６は、グラフィックス・サブシステム１２０を示す。グラフィックス・サブシステム１２０は、１組のＦＢＲＡＭチップ１３０−１３３を含む。ＦＢＲＡＭチップ１３０−１３３は、表示装置３０６に関して、単一バッファの１２８０×１０２４×３２ビットフレーム・バッファを提供する。グラフィックス・サブシステム１２０は、更にレンダリング・コントローラ１２２及びＲＡＭＤＡＣ１２４を含む。
レンダリング・コントローラ１２２は、ＦＢＲＡＭチップ１３０−１３３に関する画素データをレンダリング・バス１２８を通して転送する。レンダリング・コントローラ１２２は、画素ポート・アクセス動作、ビデオ・アクセス動作及びＤＲＡＭアクセス動作を含むＦＢＲＡＭチップ１３０−１３３の動作を制御バス１４８を通して制御する。
【０１８１】
ＲＡＭＤＡＣ１２４は、１組のビデオ・バス１４０−１４３上でＦＢＲＡＭチップ１３０−１３３からのビデオ・データの転送を同期させるビデオ・クロック１４５を生成する。レンダリング・コントローラ１２２は、ＦＢＲＡＭチップ１３０−１３３のそれぞれの画素データを１組のレンダリング・バス１５０−１５３を通してアクセスする。レンダリング・コントローラ１２２は、制御バス１４８を通して、アドレス及び制御信号をＦＢＲＡＭチップ１３０−１３３へ転送する。
ＦＢＲＡＭチップ１３０−１３３は、表示装置１２６に関して単一バッファの１２８０×１０２４のフレーム・バッファとして構成され、各画素は、３２ビットから成る。各３２ビット画素は、８ビットの赤の値、８ビットの緑の値、８ビットの青の値及びブレンド、オーバーレイ、ウィンドウＩＤのようなウィンドウ・アトリビュート制御又はウィンドウ・クリップに用いられる８ビットのＸ値から成る。
【０１８２】
１実施例では、各ＦＢＲＡＭチップ１３０−１３３は、１つの８ビットの画素成分に関して、１２８０×１０２４×８ビット画素バッファを与える。ＦＢＲＡＭチップ１３０は、１２８０×１０２４×８ビットの赤のバッファを与え、ＦＢＲＡＭチップ１３１は、１２８０×１０２４×８ビットの緑のバッファを与え、ＦＢＲＡＭチップ１３２は、１２８０×１０２４×８ビットの青のバッファを与え、ＦＢＲＡＭチップ１３３は、１２８０×１０２４×８ビットのＸのバッファを与える。各ＦＢＲＡＭチップ１３０−１３３の中で、バンク、ページ、スキャンライン、ブロック、ワード及び画素を決定する等式は、コンピュータ・サブシステム３００の単一バッファの１２８０×１０２４×８ビット・フレーム・バッファに関して上で与えられるものである。
【０１８３】
別の実施例では、各ＦＢＲＡＭチップ１３０−１３３は、各画素の赤、緑、青及びＸ成分を収容する３２０×１０２４×３２ビットのフレーム・バッファを与える。ＦＢＲＡＭチップ１３０−１３３は、水平方向に画素単位でインターリーブされ、インターリーブされた１２８０×１０２４×３２ビットのフレーム・バッファを与える。表示フレームは、ＦＢＲＡＭチップ１３０−１３３において、幅８、高さ３２のアレイのページ・グループを含む。各ページ・グループは、幅１６０画素、高さ３２画素である。
【０１８４】
ＦＢＲＡＭチップ１３０−１３３のページ・グループ内の各ＤＲＡＭページは、幅８０画素、高さ１６画素である。ＤＲＡＭページは、各８０画素幅の１６スキャンラインに小分割され、ＤＲＡＭバンクＡ−Ｄに関する対応するビデオ・バッファへ転送される。１つの３２ビット画素が、ビデオ・クロック１４５の２サイクル中に、ビデオ・バス１４０−１４３を通して、４つのＦＢＲＡＭチップ１３０−１３３のそれぞれのビデオ・バッファからシフト・アウトされる。
【０１８５】
各ＦＢＲＡＭチップ１３０−１３３の包括バスを通して、画素バッファとＤＲＡＭバンクの間で転送される画素バッファは、幅２画素、高さ４画素である。レンダリング・コントローラ１２２は、各レンダリング・バス１５０−１５３を通して、ＦＢＲＡＭチップ１３０−１３３の画素バッファの画素キャッシュ・ブロックから１画素をアクセスする。ＦＢＲＡＭチップ１３０−１３３の画素ＡＬＵは、対応する画素バッファの画素キャッシュ・ブロックから１画素をアクセスする。
次の等式は、ＦＢＲＡＭチップ１３０−１３３の各画素に関して、バンク、ページ、スキャンライン、ブロック、ワード及び画素を決定する。
ＤＲＡＭバンク＝２＊（（ｙ％３２）／１６）＋（ｘ％４０）／２０
ページ＝８＊（ｙ／３２）＋ｘ／４０
スキャンライン＝ｙ％１６
ブロック＝（ｙ％１６）／４＋４＊（（ｘ％２０）／８）
画素＝２＊（ｙ％４）＋（ｘ％２）
【０１８６】
図２７は、グラフィックス・サブシステム２８４を示す。グラフィックス・サブシステム２８４は、レンダリング・コントローラ２９８、１組のＦＢＲＡＭチップ３２０−３３１及びＲＡＭＤＡＣ２９６から成る。ＦＢＲＡＭチップ３２０−３３１は、表示装置３０６に関して、画素フレーム・バッファ当たり、ダブル３２ビットのＲ，Ｇ，Ｂ，Ｘバッファ及び単一３２ビットのＺバッファを含む１２８０×１０２４×９６ビットで構成されている。
【０１８７】
ＦＢＲＡＭチップ３２０−３３１によって与えられるフレーム・バッファは、水平方向にインターリーブされる。ＦＢＲＡＭチップ３２０、３２４及び３２８は、第１のインターリーブ部分を含む。ＦＢＲＡＭチップ３２１、３２５及び３２９は、第２のインターリーブ部分を与える。ＦＢＲＡＭチップ３２２、３２６及び３３０は、第３のインターリーブ部分を与え、ＦＢＲＡＭチップ３２３、３２７及び３３１は、フレーム・バッファの第４のインターリーブ部分を与える。フレーム・バッファの各インターリーブ部分は、表示装置３０６に対する１２８０×１０２４の表示イメージの３２０×１０２４の部分を含む。
【０１８８】
グラフィックス・サブシステム２８４に対する画素データは、ＦＢＲＡＭチップ３２４−３３１によってダブル・バッファされる。ＦＢＲＡＭチップ３２４−３２７は、バッファＡを与え、ＦＢＲＡＭチップ３２８−３３１は、バッファＢを与える。ＦＢＲＡＭチップ３２０−３２３は、Ｚバッファを与える。
バッファＡ、バッファＢ及びＺバッファのそれぞれは、３２ビットの深度を有する。３２ビットの深度は、８ビットの赤の値、８ビットの緑の値、８ビットの青の値及び８ビットのオーバーレイ制御、カラー・パレット選択、ウィンドウ・クリップ又はブレンドに適応する。Ｚバッファの３２ビット深度は、２８ビット深度の制御と４ビット深度の追加クリップ又はステンシル機能を与える。
【０１８９】
レンダリング・コントローラ２９８は、レンダリング・バス３１８を通してＦＢＲＡＭチップ３２０−３３１をアクセスする。レンダリング・コントローラ２９８は、ＦＢＲＡＭチップ３２０−３３１に関して、各ＦＢＲＡＭチップ３２０−３３１に結合した制御バス３３４を通して画素ポート制御インターフェース、ＤＲＡＭ制御インターフェース及びビデオ・ポート制御インターフェースをアクセスする。
１実施例では、レンダリング・バス３１８は、フレーム・バッファの各インターリーブ部分に対する３２ビットを含む１２８ビットで構成される。レンダリング・バス３１８は、１組のインターリーブ・レンダリング・バス３６０−３６３から成る。フレーム・バッファの各インターリーブ部分は、３２ビットの画素データを共有する。例えば、フレーム・バッファの第１のインターリーブ部分のＦＢＲＡＭチップ３２０、３２４及び３２８は、インターリーブ・レンダリング・バス３６０を共有する。
【０１９０】
別の実施例では、レンダリング・バス３１８は、バッファＡ及びバッファＢの各インターリーブ部分に関する３２ビットと、各インターリーブＺバッファ部分に関する３２ビットを含めて、２５６ビットで構成される。
ＦＢＲＡＭチップ３２０−３２３は、１組の比較結果信号ライン３６５−３６８を通して、比較結果を対応するバッファＡ及びＢへ転送する。例えば、ＦＢＲＡＭチップ３２０は、比較結果をＰＡ＿ＰＡＳＳ＿ＯＵＴピンを通して、ＦＢＲＡＭチップ３２４のＰＡ＿ＰＡＳＳ＿ＩＮピン及びＦＢＲＡＭチップ３２８のＰＡ＿ＰＡＳＳ＿ＩＮピンへ、比較結果信号３６５を介して転送される。ＦＢＲＡＭチップ３２４のＰＡ＿ＰＡＳＳ＿ＯＵＴピンは、ＦＢＲＡＭチップ３２０のＰＡ＿ＰＡＳＳ＿ＩＮピンも左右することができ、バッファＡが、第２の比較結果信号９６５によってバッファＣにおける書き込みを左右することも可能にする。
【０１９１】
ＦＢＲＡＭチップ３２０−３２３内の比較装置は、深度チェック機能及び追加のクリップ又はステンシル機能を行い、その結果を比較結果信号３６５−３６８を介して、対応するバッファＡ及びＢへ転送する。比較結果信号３６５−３６８は、ＦＢＲＡＭチップ３２４−３３１のバッファＡ及びＢにおける内部比較結果と組み合わせて、チップ３２４−３３１の対応する内部画素バッファへの内部書き込みを制御する。バッファＡチップ３２４−３２７の比較装置は、ウィンドウ・クリップ機能を行うこともでき、その結果を比較結果信号９６５−９６８を介して、対応するＺバッファ・チップ３２０−３２３へ転送する。比較結果信号９６５−９６８は、Ｚバッファ・チップ３２０−３２３の内部比較結果と組み合わせて、チップ３２０−３２３の対応する内部画素バッファにおける内部書き込みを制御する。
【０１９２】
ＦＢＲＡＭチップ３２４−３２７は、フレーム・バッファのバッファＡに関して、ビデオ・データを１組のビデオ・バス３５０−３５３を通してＲＡＭＤＡＣ２９６へ転送する。ＦＢＲＡＭチップ３２８−３３１は、フレーム・バッファのバッファＢに関して、ビデオ・データを１組のビデオ・バス３４０−３４３を通してＲＡＭＤＡＣ２９６へ転送する。
ビデオ・バス３５０−３５３及び３４０−３４３は、１２８ビットから成る。ＲＡＭＤＡＣ２９６は、１組のビデオ制御信号３３６を生成し、バッファＡからのビデオ・データか又はバッファＢからのビデオ・データを選択する。バッファＡ又はバッファＢは、ウィンドウ動作に関して画素単位で選択される。
【０１９３】
図２８は、Ｚバッファを含む３２ビットのダブル・バッファのフレーム・バッファに関する画素ポートの接続を示す。フレーム・バッファは、レンダリング・コントローラ３９４に結合した１組のＦＢＲＡＭチップ３８０−３９１を含む。レンダリング・コントローラ３９４は、画素データをレンダリング・バス３７０を通してアクセスする。レンダリング・コントローラ３９４は、画素ポート動作を制御バス３７２を通して制御する。
ＦＢＲＡＭチップ３８０−３９１は、４ウェイの水平インターリーブ・フレーム・バッファに構成されている。ＦＢＲＡＭチップ３８０−３８２は、フレーム・バッファの第１のインターリーブ部分から成る。ＦＢＲＡＭチップ３８３−３８５は、第２のインターリーブ部分から成る。ＦＢＲＡＭチップ３８６−３８８は、第３のインターリーブ部分から成る。ＦＢＲＡＭチップ３８９−３９１は、第４のインターリーブ部分から成る。
【０１９４】
フレーム・バッファのバッファＡの部分は、ＦＢＲＡＭチップ３８１、３８４、３８７及び３９０から成る。フレーム・バッファのバッファＢの部分は、ＦＢＲＡＭチップ３８２、３８５、３８８及び３９１から成る。フレーム・バッファのＺバッファ部分は、ＦＢＲＡＭチップ３８０、３８３、３８６及び３８９から成る。
レンダリング・バス３７０は、インターリーブ・レンダリング・バス４００及びインターリーブ・レンダリング・バス４０２から成る。インターリーブ・レンダリング・バス４００及びインターリーブ・レンダリング・バス４０２は、それぞれ３６ビットから成る。ＦＢＲＡＭチップ３８０−３８２及び３８６−３８８の画素データ・パス（ＰＡ＿ＤＱ信号）は、インターリーブ・レンダリング・バス４００を共有する。ＦＢＲＡＭチップ３８３−３８５及び３８９−３９１の画素データ・パスは、インターリーブ・レンダリング・バス４０２を共有する。
【０１９５】
各ＦＢＲＡＭチップ３８０−３９１は、レンダリング・バス３７０上でのデータ転送中に、対応するＰＡ＿ＥＮＡ［０..１］信号によって可能化及び不能化される。レンダリング・コントローラ３９４は、１組のインターリーブ可能化信号（ＥＮ＿０からＥＮ＿３）を生成する。可能化信号ＥＮ＿０からＥＮ＿３は、１組の可能化信号ライン４１０−４１３を通して、ＦＢＲＡＭチップ３８０−３９１に結合される。レンダリング・コントローラ３９４からの可能化信号ＥＮ＿０からＥＮ＿３は、ＦＢＲＡＭチップ３８０−３９１に対するＰＡ＿ＥＮＡ［０］信号を与える
【０１９６】
レンダリング・コントローラ３９４は、１組のバッファ可能化信号ＥＮ＿Ａ、ＥＮ＿Ｂ及びＥＮ＿Ｚを生成する。可能化信号ＥＮ＿Ａは、バッファＡを可能化及び不能化し、可能化信号ＥＮ＿Ｂは、バッファＢを可能化及び不能化し、可能化信号ＥＮ＿Ｚは、Ｚバッファを可能化及び不能化する。可能化信号ライン４１５は、ＥＮ＿Ａを、ＦＢＲＡＭチップ３８１、３８４、３８７及び３９０のＰＡ＿ＥＮＡ［１］に結合する。可能化信号ライン４１６は、ＥＮ＿Ｂ信号を、ＦＢＲＡＭチップ３８２、３８５、３８９及び３９１のＰＡ＿ＥＮＡ［１］に結合する。可能化信号ライン４１７は、ＥＮ＿Ｚ信号を、各ＦＢＲＡＭチップ３８０、３８３、３８６及び３８９のＰＡ＿ＥＮＡ［１］に結合する。
【０１９７】
どのチップに対しても、そのチップを読み・書きするために、ＰＡ＿ＥＮＡ［０］及びＰＡ＿ＥＮＡ［１］の両方が起動されなければならない。所望のインターリーブ及び所望のバッファのチップだけが信号４１０−４１７のマトリックスによって指定され、アクセスされる。
【０１９８】
Ｚバッファ動作中、可能化信号ＥＮ＿Ａ，ＥＮ＿Ｂ及びＥＮ＿Ｚは、画素及びＺバッファ・データをレンダリング・バス３７０上で多重化する。Ｚバッファ・モードでは、２画素に対する画素データとＺバッファ・データは、２クロック・サイクルでレンダリング・バス３７０上に転送される。最初のクロック・サイクルでは、ＥＮ＿Ｚが有効であり、２つの３２ビットのＺバッファ値が、インターリーブ・レンダリング・バス４００及びインターリーブ・レンダリング・バス４０２を通して、ＦＢＲＡＭチップ３８０、３８３、３８６及び３８９へ転送される。次のクロック・サイクル中では、ＥＮ＿Ａ又はＥＮ＿Ｂ又は両方が有効であり、２つの３２ビットのカラー画素値が、可能化信号ＥＮ＿Ａ及びＥＮ＿Ｂに従って、各インターリーブ・レンダリング・バス４００及び４０２を通して、ＦＢＲＡＭチップ３８１、３８４、３８７及び３９０又はＦＢＲＡＭチップ３８２、３８５、３８８及び３９１へ転送される。
【０１９９】
図２９は、レンダリング・コントローラ７０によってＦＢＲＡＭチップ７１に対して発せられたＤＲＡＭアクセス動作に関する状態図である。レンダリング・コントローラ７０は、１組の状態４２０−４２６を実行する。ＦＢＲＡＭチップ７１に対するＤＲＡＭアクセス動作は、アクセス・ページ（ＡＣＰ）動作、ビデオ転送（ＶＤＸ）動作、プリチャージ（ＰＲＥ）バンク動作、読み出しブロック（ＲＤＢ）動作、マスクなしの書き込みブロック（ＵＷＢ）動作、マスク書き込み動作（ＭＷＢ）及び重複ページ動作（ＤＵＰ）を含む。レンダリング・コントローラ７０は、ＤＲＡＭバンクＡ−Ｄの特定のページに対する制御トランザクションを、そのページに対するアクセス・ページ動作と共に開始する。
【０２００】
レンダリング・コントローラ７０は、状態４２０で、ページに対するアクセス・ページ動作を行うことによって、ＤＲＡＭバンクＡ−Ｄの１つのページをリフレッシュし、続いて状態４２６で、そのページに対してプリチャージ動作が行われる。状態４２０でのアクセス・ページ動作は、リフレッシュ・ページ動作に関して、ＤＲＡＭバンクＡ−Ｄの１つのページを指定する。状態４２６でのプリチャージ動作の後、レンダリング・コントローラ７０は、状態４２０へ戻り、ＤＲＡＭバンクＡ−Ｄに対する別の制御トランザクションの準備をする。
【０２０１】
レンダリング・コントローラ７０は、状態４２０で、初めにアクセス・ページ動作を行うことによって、ＤＲＡＭバンクＡ−Ｄからのデータをビデオ・バッファ５２及び５４へ転送し、指定されたページを指定されたページ・バッファＡ−Ｄへ転送する。その後、状態４２４で、レンダリング・コントローラは、ビデオ・転送動作を行い、アクセスされたデータを指定されたページ・バッファＡ−Ｄからビデオ・バッファ５２及び５４の１つへ転送する。レンダリング・コントローラ７０は、次に状態４２６でプリチャージ動作を行い、ＤＲＡＭバンクＡ−Ｄに対する別の制御トランザクションの準備をする。
【０２０２】
レンダリング動作中、レンダリング・コントローラ７０は、状態４２０のアクセス・ページ動作で始まり、状態４２６のプリチャージ動作で終わるＤＲＡＭバンクＡ−Ｄに対する制御手順を行う。各表示制御手順は、読み出しブロック動作、マスク又はマスクなしの書き込みブロック動作又は重複ページ動作を含む。レンダリング・コントローラ７０は、表示手順中、状態４２０、４２２及び４２６の間を移行し、状態４２２へ戻る。
【０２０３】
図３０は、１実施例に関して、ＦＢＲＡＭチップ７１のＤＲＡＭバンクＡとページ・バンクＡとの間の接続を示す。４つのＤＲＡＭセルのアレイが示されており、これにはトランジスタＱ１及びキャパシタＣ１から成るＤＲＡＭセル、トランジスタＱ２及びキャパシタＣ２から成るＤＲＡＭセル、トランジスタＱ３及びキャパシタＣ３から成るＤＲＡＭセル、及びトランジスタＱ４及びキャパシタＣ４から成るＤＲＡＭセルが含まれる。
【０２０４】
電荷は、１組のビット・ライン４４０及び４４１を介して、ＤＲＡＭアレイ１５４のＤＲＡＭセル間で転送される。ビット・ライン４４０は、電荷をＤＲＡＭアレイ１５４の１つの列に沿って、キャパシタＣ１及びＣ３へ転送する。ビット・ライン４４１は、電荷をＤＲＡＭアレイ１５４のもう１つの列に沿って、Ｃ２及びＣ４へ転送する。ビット・ライン４４０は、正のビット・ライン及び負のビット・ラインから成る。同様に、ビット・ライン４４１は、正のビット・ライン及び負のビット・ラインから成る。
【０２０５】
１組のセンス・アンプ４３０及び４３２は、ビット・ライン４４０及び４４１にそれぞれ結合されている。センス・アンプ４３０は、ビット・ライン４４０の電圧信号を差動的にセンスし、増幅する。センス・アンプ４３２は、ビット・ライン４４１の電圧信号を差動的にセンスし、増幅する。行デコード回路１５８は、ワード・ライン４５０及びワード・ライン４５１を含むＤＲＡＭアレイ１５４のＤＲＡＭセルの各行に対するワード・ラインをドライブするように結合している。ワード・ライン４４０は、トランジスタＱ１及びＱ２のゲートに結合し、ワード・ライン４４１は、トランジスタＱ３及びＱ４のゲートに結合している。
【０２０６】
行デコード回路１５８は、各ワード・ライン４５０及び４５１を起動し、対応する行のＤＲＡＭセルをアクセスする。行デコード回路１５８は、ワード・ライン４５０を起動して、トランジスタＱ１及びＱ２をオンにする。オンになったトランジスタＱ１及びＱ２は、キャパシタＣ１をビット・ライン４４０に結合し、キャパシタＣ２をビット・ライン４４１に結合する。起動されたワード・ライン４５０は、電荷をビット・ライン４４０とキャパシタＣ１の間及びビット・ライン４４１とキャパシタＣ２の間で転送する。同様に、行デコード回路１５８は、ワード・ライン４５１を起動して、電荷をキャパシタＣ３、Ｃ４とビット・ライン４４０、４４１の間でそれぞれ結合させる。
【０２０７】
ＤＲＡＭアレイ１５４のプリチャージ動作中、センス・アンプ４３０は、ビット・ライン４４０を基準電圧レベルにドライブし、センス・アンプ４３２は、ビット・ライン４４１を基準電圧レベルにドライブする。
アクセス・ページ動作中、行デコード回路１５８は、ワード・ライン４５０及び４５１を不活性にする。不活性になったワード・ライン４５０及び４５１は、ビット・ライン４４０及び４４１をキャパシタＣ１及びＣ２から切り離す。この結果、ビット・ライン４４０及び４４１は、アクセス・ページ動作中初めはフロートする。その後、行デコード回路１５８は、アクセス・ページ動作によって指定されたページに従って、ワード・ライン４５０又は４５１の１つを起動する。
【０２０８】
例えば、行デコード回路１５８がワード・ライン４５０を起動すると、トランジスタＱ１及びＱ２はオンになり、電荷をキャパシタＣ１及びＣ２からそれぞれビット・ライン４４０及び４４１へ転送する。センス・アンプ４３０は、ビット・ライン４４０の電圧を差動的にセンスし、増幅する。センス・アンプ４３２は、ビット・ライン４４１の電圧を差動的にセンスし、増幅する。センス・アンプ４３０及び４３２は、ビット・ライン４４０及び４４１をフル・レール（full rail）の電圧レベルにドライブする。ビット・ライン４４０及び４４１のフル・レールの電圧レベルは、トランジスタＱ１及びＱ２を通してキャパシタＣ１及びＣ２にドライブ・バックされ、対応するＤＲＡＭセルをリフレッシュする。
【０２０９】
図３１及び図３２は、１実施例に関して、ＦＢＲＡＭチップ７１のＤＲＡＭバンクＡ及びページ・バッファに関する重複ページ動作を示す。レンダリング・コントローラ７０は、アクセス・ページ動作又は前回の重複ページ動作後、重複ページ動作を起動する。重複ページ動作の開始時点で、ワード・ライン４５０又は４５１の１つは、先行するページ動作又は重複ページ動作に従って、行デコード回路１５８によってドライブされる。
【０２１０】
図３１は、重複ページ動作の開始を示す。行デコード回路１５８は、重複ページ動作の開始時点で、ワード・ライン４５１をドライブする。起動されたワード・ライン４５１は、キャパシタＣ３及びＣ４をそれぞれビット・ライン４４０及び４４１に結合する。センス・アンプ４３０及び４３２は、先行するアクセス・ページ又は重複ページ動作に関するデータのフル・レール電圧を、各ビット・ライン４４０及び４４１上にドライブする。ビット・ライン４４０及び４４１上のデータは、それぞれキャパシタＣ３及びＣ４に転送される。
【０２１１】
図３２は、重複ページ動作の完了を示す。行デコード回路１５８は、ワード・ライン４５１を不活性にし、ワード・ライン４５０を起動し、重複ページ動作を完了する。行デコード回路１５８は、先行するアクセス・ページ動作又は重複ページ動作に関するデータが、センス・アンプ４３０及び４３２によってビット・ライン４４０及び４４１上にドライブされているとき、ワード・ライン４５０を起動する。起動されたワード・ライン４５０は、トランジスタＱ１及びＱ２をオンにし、ビット・ライン４４０及び４４１上のデータをキャパシタＣ１及びＣ２へ転送する。
【０２１２】
図３３は、ＦＢＲＡＭチップ７１のピッキング論理５００を示す。ピッキング論理５００は、１組のステージ７パイプライン・レジスタ５０２−５０６、ＨＩＴフラグ・ラッチ５２０、ピック可能化ラッチ５２２、１対のマルチプレクサ５１４及び５１６、及び１組の論理ゲート５１０、５１２、５３０及び５３２から成る。
レジスタ５０２は、画素ポート制御回路１１４からのロード比較制御信号２８２をバッファリングする。レジスタ５０４は、信号５５０を介して、比較制御レジスタ２６８のビット２７..２４をバッファリングする。レジスタ５０６は、ＰＡ＿ＰＡＳＳ＿ＩＮ及びＰＡ＿ＰＡＳＳ＿ＯＵＴ信号、及び画素ポート制御回路１１４からのステートフル書き込み可能化信号５５２をバッファリングする。
【０２１３】
ＨＩＴフラグ・レジスタ５２０は、ＨＩＴフラグ５６０を与える。ピック可能化レジスタ５２２は、ピック可能化信号５６２を与える。ＨＩＴフラグ信号５６０は、ＦＢＲＡＭチップ７１の出力ピンＨＩＴ（上バー）をドライブする。比較制御レジスタ２６８のビット２７..２４は、ピッキング論理５００を制御する。比較制御レジスタ２６８のビット２４及び２５は、ＨＩＴフラグ５００をセット／クリアする。比較制御レジスタ２６８のビット２６及び２７は、ピッキング論理５００を可能化／不能化する。レンダリング・コントローラ７０は、１０をビット２５..２４に書き込み、ＨＩＴフラグ５６０をクリアする。レンダリング・コントローラ７０は、１１をビット２５..２４に書き込み、ＨＩＴフラグ５６０をセットする。レンダリング・コントローラは、０をビット２５に書き込み、ＨＩＴフラグが、ピック・ヒットによる以外は、変わらないようにする。レンダリング・コントローラ７０は、１０をビット２７．..２６に書き込み、ピッキング論理５００を不能にし、１１をビット２７..２６に書き込み、ピッキング論理５００を可能化する。レンダリング・コントローラは、０をビット２７に書き込み、ピック可能化状態が変わらないようにする。
【０２１４】
ＦＢＲＡＭチップ７１のＨＩＴ（上バー）出力ピンは、ＦＢＲＡＭチップ７１のピッキング機能の結果を反映するオープン・ドレインの低活性化出力信号である。レンダリング・コントローラ７０は、初めにピッキング論理５００を可能化し、ＨＩＴフラグ５６０をクリアする。ＦＢＲＡＭチップ７１のＨＩＴ（上バー）出力ピンは、パイプライン・ステージ８の間７サイクル後に有効である。レンダリング・コントローラ７０によって書き込み比較制御レジスタ動作の後に発せられ、ＨＩＴフラグ５６０をクリアするステートフル書き込み動作は、ＰＡ＿ＰＡＳＳ＿ＩＮ信号及びＰＡ＿ＰＡＳＳ＿ＯＵＴ信号の両方がパイプライン・ステージ６でパスを示すと、ＦＢＲＡＭチップ７１の出力ピンを低にアサートする。
【０２１５】
図３４は、ピッキング論理５００のタイミングを示す。時間ｔ２００で、レンダリング・コントローラ７０は、インターリーブ・レンダリング・バス６４を通して比較制御レジスタ２６８を目標とする書き込み制御レジスタ動作を発する。時間ｔ２０１で、レンダリング・コントローラ７０は、ＰＡ＿ＡＤＤＲ信号を介して示されるブロック及びワードに対して、ステートフル正常データ書き込み動作を発する。又時間ｔ２０１において、レンダリング・コントローラ７０は、時間ｔ２００で発せられた書き込み比較制御レジスタ動作に関するＰＡ＿ＤＱ信号を介して、レジスタ・データを転送する。
【０２１６】
ＰＡ＿ＤＱ信号を介して時間ｔ２０１で転送されたレジスタ・データは、ピッキング論理５００を可能化し、ＨＩＴフラグ５６０をクリアする。その後、時間ｔ２０２で、レンダリング・コントローラ７０は、ＰＡ＿ＤＱ信号を介して、ステートフル正常データ書き込み動作（前のサイクルで発せられた）に関するデータを転送する。時間ｔ２０６で、ＰＡ＿ＰＡＳＳ＿ＩＮ及びＰＡ＿ＰＡＳＳ＿ＯＵＴ信号は、両方共パス条件を示し、時間ｔ２０７で、ＦＢＲＡＭチップ７１のＨＩＴ（上バー）出力ピンは、有効なＨＩＴフラグを与える。
ピッキング論理５００は、表示画面の定義された領域で、見ることができる表示対象を決定するために用いられる。ピッキング機能は、指示装置が位置づけられ、表示装置上の特定の点を指示した後、対象を選択してハイライトし、又は編集するためにしばしば用いられる。その点の位置は、ピック・アパーチャと呼ばれる小さな領域の中心を定義するのに用いられる。
【０２１７】
レンダリング・コントローラは、表示フレームを書き直し、ピック・アパーチャに入らない全ての対象をクリップするようにプログラムされている。ピック・アパーチャ内の画素に寄与し、内部比較テストをパスする画素を有する対象だけが、画素バッファへのステートフル書き込みを生じ、ＨＩＴフラグをセットする。ピックＨＩＴフラグが、各対象が描かれる前にクリアされ、レンダリング・コントローラが、各対象が描かれた後にＨＩＴフラグをテストすると、ＨＩＴフラグは、ピック・アパーチャ内に見える画素を有する対象に対してのみセットされる。ＦＢＲＡＭチップのＨＩＴ出力ピンは、１実施例では、オープン・ドレイン出力であり、複数のＦＢＲＡＭチップからのＨＩＴの結果を単一の信号を用いてワイヤＯＲすることができる。
【０２１８】
ＦＢＲＡＭチップの比較制御レジスタのビット２７及び２６は、ピッキング論理に対する可能化／不能化の制御を与える。可能化／不能化制御の機能は、ピッキング・テストから特定の対象を取り除き、マルチ・タスク・システムにおいて、ピッキング論理を共有する複数処理を可能にするのに役立つ。
比較制御レジスタのビット２５及びビット２４によって、ＨＩＴフラグをプリセット又はクリアすることができる。ＨＩＴピンを介してのＨＩＴ状態と組み合わされたプリセット／クリア機能は、マルチ・タスク・システムにおいてピッキング論理を共有するスワップ処理のＨＩＴ状態をセーブ／リストアするメカニズムを提供する。
【０２１９】
以上明細書において、本発明は、具体的、例示的実施例を参照して説明された。しかし、特許請求の範囲に記載された本発明の広い精神と範囲から離れることなく様々な修正、変更が可能であることは明らかである。従って、明細書及び図面は限定的でなく例証的なものとして考えるべきである。
【図面の簡単な説明】
【図１】  １組のＦＢＲＡＭチップ、レンダリング・コントローラ及びビデオ出力回路から成るグラフィックス・サブシステムを示す図である。
【図２】  １組のＤＲＡＭバンク、１対のビデオ・バッファ、１つの画素バッファ及び１つの画素ＡＬＵから成る１実施例のＦＢＲＡＭチップを示す図である。
【図３】  １実施例に関して、の１組のＦＢＲＡＭチップを設けたフレーム・バッファ構成を示す論理ブロック図である。
【図４】  １実施例のＦＢＲＡＭチップに対する入出力インターフェースを示す図であり、これには、画素ポート機能に関する画素ポート制御インターフェース、ビデオ機能に関するビデオ・ポート制御インターフェース及びＤＲＡＭ機能に関するＤＲＡＭ制御インターフェースが含まれる。
【図５】  ＤＲＡＭアレイ、１組のセンス・アップ、行デコーダ及びラッチから成る１実施例に関するＤＲＡＭバンクＡの体系を示す図である。
【図６】  １実施例に関するビデオ・バッファを示す図であり、ビデオ・データをビデオ・バス上に転送する回路を示す。
【図７】  対応するダーティ・タグ・メモリと共にＳＲＡＭバッファを含む１実施例に関する画素バッファを示す図である。
【図８】  １組のラスタ動作及びブレンド（ＲＯＰ／ブレンド）装置、定数ソース・レジスタ及び比較装置から成る１実施例に関する画素ＡＬＵ５８を示す図である。
【図９】  ラスタＯＰ回路、加算器及び乗算回路を含む１実施例に関するＲＯＰ／ブレンド装置を示す図である。
【図１０】  一致比較回路及びマグニチュード比較回路から成る１実施例に関する比較装置を示す図である。
【図１１】  １実施例に関する画素バッファ及び画素ＡＬＵのパイプライン体系を示す図である。
【図１２】  １実施例に関して、画素ＡＬＵと画素バッファのパイプライン・ステージでのパイプライン化された読み書き転送を示すタイミング図である。
【図１３】  １実施例に関する画素バッファの構成を示す図であり、ダーティ・タグとプレーン・マスク・ビットのマッピングを示す。
【図１４】  プレーン・マスク・レジスタのプレーン・マスク・ビット及びダーティ・タグ・メモリのダーティ・タグの、包括バス上に転送されたマスク書き込みブロックへのマッピングを示す図である。
【図１５】  書き込みアドレス制御レジスタ及びＦＢＲＡＭチップの入出力ピンによって選択された書き込みアドレス・ソースに関して、画素バッファへのパイプライン化されたデータ・フローを示す図である。
【図１６】  垂直スクロール動作を示す図であり、画素Ａの画素データは、表示画面の画素Ｂに移動する。
【図１７】  ステートフル・データ書き込み動作と共に書き込みアドレス選択機能を用いる、垂直スクロール又はその他の内部コピー動作中における画素データのパイプライン化された転送を示す図である。
【図１８】  １実施例に関して、ＦＢＲＡＭチップに対する画素ポート書き込みタイミングを示す図である。
【図１９】  レンダリング・コントローラによって発せられたＦＢＲＡＭチップのＤＲＡＭバンクＡに対する一連のＤＲＡＭ動作を示す図である。
【図２０】  レンダリング・コントローラによって発せられたＦＢＲＡＭチップのＤＲＡＭバンクＡに対する別の一連のＤＲＡＭ動作を示す図である。
【図２１】  ＦＢＲＡＭチップのＤＲＡＭバンクＡ−Ｄに対して、レンダリング・コントローラによって発せられた一連のＤＲＡＭ動作を示す図である。
【図２２】  ＦＢＲＡＭチップに対してレンダリング・コントローラによって発せられた別の一連のＤＲＡＭ動作を示す図である。
【図２３】  ＦＢＲＡＭチップに対してレンダリング・コントローラによって発せられた別の一連のＤＲＡＭ動作を示す図である。
【図２４】  グラフィックス・サブシステム及び表示装置及びプロセッサから成るコンピュータ・グラフィックス・システムを示す図である。
【図２５】  ＦＢＲＡＭチップ、レンダリング・コントローラ及びランダム・アクセス・メモリ・ディジタル・アナログ変換器から成るグラフィックス・サブシステムを示す図である。
【図２６】  表示装置に対して、単一バッファの１２８０×１０２４×３２ビットのフレーム・バッファを与える１組のＦＢＲＡＭチップから成るグラフィックス・サブシステムを示す図であり、更にレンダリング・コントローラ及びＲＡＭＤＡＣを含む。
【図２７】  レンダリング・コントローラ、ＦＢＲＡＭチップを備え、Ｚバッファを有するダブル・バッファのフレーム・バッファ、ＲＡＭＤＡＣ及び表示装置から成るグラフィックス・サブシステムを示す図である。
【図２８】  Ｚバッファを備えた３２ビットのダブル・バッファのフレーム・バッファに対する画素ポートの制御接続を示す図であり、フレーム・バッファは、レンダリング・コントローラに結合した１組のＦＢＲＡＭチップから成る。
【図２９】  アクセス・ページ動作、ビデオ転送動作、プリチャージ・バンク動作、読み出しブロック動作、マスクなしの書き込みブロック動作、マスク書き込みブロック動作及び重複ページ動作を含むＤＲＡＭ・アクセス動作の状態図である。
【図３０】  １実施例に関して、ＤＲＡＭバンクＡ、ページ・バッファＡ及び４つのＤＲＡＭセルのアレイの間の相互接続を示す図である。
【図３１】  １実施例に関する重複ページ動作の開始を示す図である。
【図３２】  １実施例に関する重複ページ動作の完了を示す図である。
【図３３】  １組のステージ７パイプライン・レジスタ、ＨＩＴフラグ・ラッチ、ピック可能化ラッチ、１組のマルチプレクサ及び１組の論理ゲートから成るＦＢＲＡＭチップのピッキング論理を示す図である。
【図３４】  レンダリング・バス動作との関係におけるピッキング論理のタイミングを示す図であり、ＨＩＴ出力ピンのタイミングを示す。
【符号の説明】
５２、５４  ビデオ・バッファ
５６  画素バッファ
５８  画素ＡＬＵ
７０、１２２、２９８、３０８、３９４  レンダリング・コントローラ
７１−８２、１３０−１３３、３０２、３２０−３３１、３８０ー３９１
ＦＢＲＡＭチップ
８６、１２０、２８４、３００  グラフィックス・サブシステム
８４  ビデオ出力回路
１５４  ＤＲＡＭアレイ
１５６、４３０、４３２  センス・アンプ
１５８  行デコーダ
２００  ＳＲＡＭバッファ
２３０−２３３  ＲＯＰ／ブレンド装置
２３５  比較装置
２９０  コンピュータ・グラフィックス・システム
１２６、３０６  表示装置
３３８  プロセッサ
５００  ピッキング論理
【図１】
0003779748.tif 000015
【図２】
0003779748.tif 000016
【図３】
0003779748.tif 000017
【図４】
0003779748.tif 000018
【図５】
0003779748.tif 000019
【図６】
0003779748.tif 000020
【図７】
0003779748.tif 000021
【図８】
0003779748.tif 000022
【図９】
0003779748.tif 000023
【図１０】
0003779748.tif 000024
【図１１】
0003779748.tif 000025
【図１２】
0003779748.tif 000026
【図１３】
0003779748.tif 000027
【図１４】
0003779748.tif 000028
【図１５】
0003779748.tif 000029
【図１６】
0003779748.tif 000030
【図１７】
0003779748.tif 000031
【図１８】
0003779748.tif 000032
【図１９】
0003779748.tif 000033
【図２０】
0003779748.tif 000034
【図２１】
0003779748.tif 000035
【図２２】
0003779748.tif 000036
【図２３】
0003779748.tif 000037
【図２４】
0003779748.tif 000038
【図２５】
0003779748.tif 000039
【図２６】
0003779748.tif 000040
【図２７】
0003779748.tif 000041
【図２８】
0003779748.tif 000042
【図２９】
0003779748.tif 000043
【図３０】
0003779748.tif 000044
【図３１】
0003779748.tif 000045
【図３２】
0003779748.tif 000046
【図３３】
0003779748.tif 000047
【図３４】
0003779748.tif 000048