JP3828184B2 - フレーム・バッファ・メモリ装置制御装置 - Google Patents
フレーム・バッファ・メモリ装置制御装置 Download PDFInfo
- Publication number
- JP3828184B2 JP3828184B2 JP20024995A JP20024995A JP3828184B2 JP 3828184 B2 JP3828184 B2 JP 3828184B2 JP 20024995 A JP20024995 A JP 20024995A JP 20024995 A JP20024995 A JP 20024995A JP 3828184 B2 JP3828184 B2 JP 3828184B2
- Authority
- JP
- Japan
- Prior art keywords
- pixel
- cache
- frame buffer
- dram
- buffer memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
- G09G5/393—Arrangements for updating the contents of the bit-mapped memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/12—Frame memory handling
- G09G2360/121—Frame memory handling using a cache memory
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/12—Frame memory handling
- G09G2360/123—Frame memory handling using interleaving
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Image Input (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Dram (AREA)
- Image Generation (AREA)
- Memory System (AREA)
- Controls And Circuits For Display Device (AREA)
Description
【産業上の利用分野】
本発明は、コンピュータ・グラフィック・システムの分野に関する。詳細には、本発明は、加速グラフィックス・レンダリング・オペレーション用のwrite mostlyアーキテクチャを提供するフレーム・バッファ・メモリ装置用のインタフェース制御装置に関する。
【0002】
【従来の技術】
従来型のコンピュータ・グラフィックス・システムは通常、ビデオ・ランダム・アクセス・メモリ(VRAM)チップから成るフレーム・バッファを使用する。VRAMチップは、表示装置上で表示すべきイメージを定義する1組のピクセル・データを記憶する。通常、そのようなシステム中のレンダリング制御装置は、イメージをレンダリングし、ピクセル・データをVRAMチップに書き込む。そのようなシステムでは、ランダム・アクセス・メモリ・ディジタル・アナログ変換装置(RAMDAC)は通常、VRAMチップのピクセル・データにアクセスし、カラー・ルックアップ・テーブル機能およびディジタル・アナログ変換機能をピクセル・データに対して実行する。
【0003】
従来型のVRAMチップは通常、動的ランダム・アクセス・メモリ(DRAM)をランダム・アクセス・ポートおよび直列アクセス・ポートと共に含む。通常、RAMDACは、直列アクセス・ポートを介してVRAMチップのDRAMアレイにアクセスし、レンダリング制御装置は、DRAMページ・モード・アクセスに従ってランダム・アクセス・ポートを介してDRAMアレイにアクセスする。残念なことに、そのような従来型のVRAMチップのDRAMページ・モード機構では、レンダリング制御装置が、ラスタ走査の2行ないし3行よりも多くの行を横切りながら線を描画する場合、ピクセル・アクセス速度が大幅に減少する。さらに、一般にレンダリング・オペレーション時に使用されるリード・モディファイ・ライト・オペレーションは、そのような従来型のVRAMチップに対する書込みオペレーションよりもはるかに低速である。
【0004】
コンピュータ・グラフィックス・システムは、フレーム・バッファ・ランダム・アクセス・メモリ(FBRAM)チップから成るフレーム・バッファを使用する。そのようなFBRAMチップは、表示装置上で表示すべきイメージを定義する1組のピクセル・データを記憶するDRAMコア領域を含む。通常、そのようなグラフィック・システム中のレンダリング制御装置は、イメージをレンダリングし、対応するピクセル・データをFBRAMチップに書き込む。
【0005】
そのようなFBRAMチップは、2レベルの二次元領域キャッシュを用意することによって、DRAMコアへのスループットを増大させる。たとえば、そのようなFBRAMチップは、DRAMコアの事前に選択された領域を反映するレベル1(L1)ピクセル・キャッシュを用意する。そのようなFBRAMチップは、FBRAMチップのDRAMコアに密結合されたレベル2(L2)キャッシュも用意する。そのようなFBRAMチップは、通常のリード・モディファイ・ライト・フレーム・バッファ・アクセス・サイクルをFBRAMデバイスの入力ピンでwrite mostlyトランザクションに変換することによって、改良されたレンダリングを行う。
【0006】
【発明が解決しようとする課題】
しかし、FBRAMチップを有するそのようなフレーム・バッファへのレンダリング・スループットは、結果的にL1キャッシュまたはL2キャッシュ、あるいはその両方に対するキャッシュ・ミスとなるピクセル・アクセスでは低減する。L1キャッシュまたはL2キャッシュに存在しないDRAMコアの領域をターゲットとするそのようなシステムでのピクセル・アクセスでは、欠落キャッシュ・ブロックがDRAMコアから取り出される間、ピクセル・オペレーションを停止させる必要がある。欠落キャッシュ・ブロックを取り出すためのFBRAMチップ中のそのようなオペレーションは、FBRAMチップへのレンダリング・パイプライン入力を停止させ、全体的なレンダリング速度を低下させる。
【0007】
【課題を解決するための手段】
ピクセル・アクセス・オペレーションがディスパッチされたとき、そのピクセル・アクセス・オペレーションで必要なピクセル・データがフレーム・バッファ・メモリ装置のレベル1キャッシュに存在するように、フレーム・バッファ・メモリ装置に対するオペレーションをスケジューリングし、かつそのオペレーションを前記メモリ装置にディスパッチする、フレーム・バッファ・メモリ装置制御装置を開示する。フレーム・バッファ・メモリ装置制御装置は、ダーティ・キャッシュ・ラインを書き直すオペレーションと、フレーム・バッファ・メモリ装置中のキャッシュ・ラインをクリアするオペレーションによって生じるタイミング・オーバヘッドを低減するキャッシュ制御オペレーションを作成し、スケジューリングし、ディスパッチする。フレーム・バッファ・メモリ装置制御装置は、フレーム・バッファ・メモリ装置のビデオ出力ポートからのビデオ・リフレッシュ・オペレーションによって生じるタイミング・オーバヘッドを低減させる制御オペレーションも作成し、スケジューリングし、ディスパッチする。
【0008】
フレーム・バッファ・メモリ装置制御装置は、フレーム・バッファ・メモリ装置に記憶されているピクセル・データをターゲットとするピクセル・アクセス・トランザクションを受け取るように結合される。一実施例では、フレーム・バッファ・メモリ装置制御装置は、アロケータ回路と、スケジューラ回路と、アービタ回路とを含む。アロケータ回路は、前のピクセル・アクセス・トランザクションに基づいてフレーム・バッファ・メモリ装置のキャッシュ状態を判定し、必要なキャッシュ制御オペレーションを判定する。スケジューラ回路は、ピクセル・アクセス・オペレーションおよびキャッシュ制御オペレーションをバッファし、適当なキャッシュ制御オペレーションを対応するピクセル・アクセス・トランザクションよりも前へプッシュする。アービタ回路は、キャッシュ制御オペレーションとビデオ要求オペレーションの調停をはかり、フレーム・バッファ・メモリ装置の現状態に応じてキャッシュ制御オペレーションをディスパッチする。アービタ回路は、フレーム・バッファ・メモリ装置の現状態に応じてピクセル・アクセス・トランザクションをディスパッチする。
【0009】
【実施例】
図1は、グラフィック・サブシステム86を示す。グラフィック・サブシステム86は、1組のFBRAMチップ71ないし82と、レンダリング・プロセッサ70と、フレーム・バッファ・メモリ装置制御装置83と、ビデオ出力回路84とを備える。
【0010】
各FBRAMチップ71ないし82は、内部ALUと、レンダリング・プロセッサ70からFBRAMへの「write−mostly」インタフェースを提供するパイプライニング回路とを含む。FBRAMチップ71ないし82のwrite mostlyアーキテクチャは、レンダリング・プロセッサ70によるレンダリング・オペレーション中の平均メモリ・サイクル時間を最小限に抑える。
【0011】
一実施例では、各FBRAMチップ71ないし82は、320x1024x32ビットの深さのフレーム・バッファをサポートする10メガビットDRAMアレイを含む。各FBRAMチップ71ないし82中のDRAMアレイは、インタリーブされた4つの独立DRAMバンクを備える。
【0012】
各FBRAMチップ71ないし82は、ピクセルALUと静的ランダム・アクセス・メモリ(SRAM)ピクセル・バッファも含む。各FBRAMチップ71ないし82中のSRAMピクセル・バッファは、レンダリング・プロセッサ70がアクセスすべきピクセル・キャッシュとして機能する。
【0013】
各FBRAMチップ71ないし82は、4つのDRAMバンクとSRAMピクセル・バッファの間の高帯域幅通信を可能にするグローバル・バスを含む。各FBRAMチップ71ないし82は、表示装置のためのCRTリフレッシュ・オペレーションを実行する一対のビデオ・バッファも含む。
【0014】
各FBRAMチップ71ないし82中のピクセルALUは、1組の4つのラスタ演算装置を含む。各ラスタ演算装置は、対応するSRAMピクセル・バッファに送るピクセル・データの各個別のバイトに対する選択可能なラスタ演算を実行する。各FBRAMチップ71ないし82中のピクセルALUは、1組の4つのピクセル・ブレンド装置を含む。各ピクセル・ブレンド装置は、ピクセルALUに関する一連のパイプライン処理段に従って、1バイトの古い内部ピクセル値と、レンダリング・プロセッサ70から受け取った1バイトの新しいピクセル値および関連情報を組み合わせる。
【0015】
各FBRAMチップ71ないし82は、DRAMアレイ、SRAMピクセル・バッファ、ピクセルALU、および内部の1組のビデオ・バッファを使用する並行演算を可能にする回路を含む。各FBRAMチップ71ないし82は、レンダリング・プロセッサ70がピクセルALUを介してSRAMピクセル・バッファにアクセスする間と、ビデオ出力回路84がビデオ・バッファからビデオ・データを読み取る間に、DRAMアレイとSRAMピクセル・バッファの間のピクセル・データ転送を可能にする回路を含む。
【0016】
FBRAMチップ71ないし82は、ビデオ・データをビデオ・バス134を介してビデオ出力回路84へ送る。ビデオ出力回路84は、FBRAMチップ71ないし82からのビデオ・データの転送の同期をとる対応する1組のビデオ・クロックをビデオ・バス134上で生成する。
【0017】
レンダリング・プロセッサ70は、ピクセル・データをフレーム・バッファ・メモリ装置制御装置83を通じレンダリング・バス98を介してFBRAMチップ71ないし82に書き込む。フレーム・バッファ・メモリ装置制御装置83は、フレーム・バッファ制御信号およびフレーム・バッファ制御コマンドをFBRAMチップ71ないし82に送り、ピクセルALUオペレーション、SRAMピクセル・バッファ・オペレーションおよびDRAMアレイ・オペレーション、ビデオ・バッファ・オペレーションを含め、FBRAMチップ71ないし82の内部オペレーションを制御する。
【0018】
レンダリング・プロセッサ70は、システム・バス102を介してホスト・プロセッサ(図示せず)からグラフィックス・プリミティブを受け取る。レンダリング・プロセッサ70は、受け取ったグラフィックス・プリミティブをレンダリングし、対応する一連のピクセル・アクセス・トランザクションをフレーム・バッファ制御バス106を介してフレーム・バッファ・メモリ装置制御装置83へ送る。
【0019】
フレーム・バッファ・メモリ装置制御装置83は、レンダリング・プロセッサ70からピクセル・アクセス・トランザクションを受け取り、対応する一連のピクセル・アクセス・トランザクションをFBRAMデバイス71ないし82へ発行する。フレーム・バッファ・メモリ装置制御装置83は、ピクセル・アクセス・トランザクション用のピクセル・データをレンダリング・バス98を介してFBRAMチップ71ないし82との間で転送する。フレーム・バッファ・メモリ装置制御装置83は、DRAM操作バス110を介してFBRAMチップ71ないし82のDRAMコア・オペレーションを制御するコマンドを発行する。フレーム・バッファ・メモリ装置制御装置83は、ピクセル・キャッシュ関数およびピクセルALU関数をピクセル操作バス112を介してFBRAMチップ71ないし82へ制御するコマンドを発行する。
【0020】
フレーム・バッファ・メモリ装置制御装置83は、各FBRAMチップ71ないし82中のL2ピクセル・キャッシュと、L1ピクセル・キャッシュ、ビデオ・バッファ、またはDRAMコアとの間のオペレーションを制御するコマンドをDRAM操作バス110を介して発行する。フレーム・バッファ・メモリ装置制御装置83は、各FBRAMチップ71ないし82中のピクセルALUとL1ピクセル・キャッシュとの間のオペレーションを制御するコマンドをピクセル操作バス112を介して発行する。フレーム・バッファ・メモリ装置制御装置83は、フレーム・バッファ制御バス106を介して受け取ったピクセル・アドレスおよびピクセル・データならびに操作コマンドに応じ、ビデオ操作バス108を介してビデオ出力回路84によって指定されたビデオ・オペレーションに応じ、フレーム・バッファ・メモリ装置制御装置によって維持されるFBRAMの現キャッシュ状態に応じて、DRAM操作バス110およびピクセル操作バス112を介して前記コマンドを発行する。
【0021】
図2は、一実施例のFBRAMチップ71を示す。FBRAMチップ71は、DRAMアレイと、一対のビデオ・バッファ52および54と、ピクセル・バッファ56と、ピクセルALU58とを備える。FBRAMチップ71は基本的に、各FBRAMチップ72ないし82に類似している。
【0022】
FBRAMチップ71中のDRAMアレイは、1組の4つのDRAMバンク(DRAMバンクAないしD)と、対応するページ・バッファAないしDとを備える。一実施例では、各DRAMバンクAないしDは、257ページとして構成された2.5メガビットDRAMアレイを備える。各ページは320ワードを備え、各ワードは32ビットを備える。
【0023】
ページ・バッファAないしDは、対応するDRAMバンクAないしDのセンス増幅器を備える。一実施例では、各ページ・バッファAないしDは、対応するDRAMバンクAないしDの320ワード・ページをバッファする。
【0024】
ビデオ・バッファ52および54は、ビデオ・バス134を介してビデオ出力回路84へ送るべきビデオ・データをバッファする。ビデオ・バッファ52は、ページ・バッファAおよびCからデータを受け取る。ビデオ・バッファ54は、ページ・バッファBおよびDからデータを受け取る。ビデオ・バッファ52および54中のデータは、ビデオ・バス134を介しマルチプレクサ62を通じてビデオ出力回路84へシフトされる。
【0025】
ピクセル・バッファ56は、高速の3ポート静的RAM(SRAM)であり、FBRAMチップ71用のレベル1(L1)ピクセル・キャッシュとして機能する。L1ピクセル・キャッシュに関するアソシエイティビティ・パラメータは、フレーム・バッファ・メモリ装置制御装置83によって外部で決定され、フル・アソシエーティブ・マッピングを含む。L1ピクセル・キャッシュは、ライト・バック方式を使用する。L1ピクセル・キャッシュは、1組のL1キャッシュ・ブロックを備える。レンダリング・プロセッサ70は、フレーム・バッファ・メモリ装置制御装置83を介して各L1キャッシュ・ブロックへのデータ書込みを実行する。複数の書込みが、後でレベル2(L2)ピクセル・キャッシュを介してDRAMバンクAないしDへ送れるるように、各L1キャッシュ・ブロックに累積される。
【0026】
ピクセル・バッファ56は、ALU読取りポート204およびALU書込みポート202を有する。FBRAMチップ71の入出力ピンからのピクセル入力データ162は、ピクセルALU58用のソース・データを提供する。ピクセルALU58は、選択されたピクセル処理機能を実行し、ピクセル・バッファ56のALU書込みポートへ書込みポート・データ202を送る。
【0027】
所望のピクセル処理機能がリード・モディファイ・ライト・オペレーションを必要とする場合、ピクセルALU58は、読取りポート204から読取りデータを得て、ソース・データ162を読取りデータ204とマージすることによって修正を実行し、次いでピクセル・バッファ書込みポート202に結果を書き込む。ピクセル・バッファ56の読取りポートおよび書込みポートは、レンダリング・バス98上で1クロック・パイプライン化書込みを行う同時1クロック読取り・書込みオペレーションをイネーブルして、1クロック・パイプライン化リード・モディファイ・ライト・サイクルを実行する。
【0028】
レンダリング・プロセッサ70は、フレーム・バッファ・メモリ装置制御装置83を通じレンダリング・バス98を介してピクセル・バッファ56の読取りポートからデータを読み取る。ピクセル・バッファ56の読取りポート・データ204は、FBRAMチップ71の入出力ピンを介してレンダリング・バス98上でアクセスすることができる。
【0029】
ピクセル・バッファ56は、グローバル・バス60を介したブロック転送オペレーション用のグローバル読取り/書込みポートを有する。レンダリング・プロセッサ70は、ピクセル・バッファ56のALU読取りポート、ALU書込みポート、およびグローバル読取り/書込みポートを同時に活動化するオペレーションをフレーム・バッファ・メモリ装置制御装置83へ発行することができる。
【0030】
一実施例では、ピクセル・バッファ56は、2048ビットSRAMバッファと、対応するダーティ・タグ・メモリとを含む。2048ビットSRAMバッファは、8つの256ビットL1キャッシュ・ブロックとして構成される。各L1キャッシュ・ブロックは、それぞれ、32ビットを備える、8つのワードをバッファする。各L1キャッシュ・ブロックは、幅2高さ4の32ビット・ピクセル矩形用のピクセル・データをバッファする。また、8つのL1キャッシュ・ブロックは、ダーティ・タグ・メモリ中の8組の32ビット・ダーティ・タグ・ビットに対応する。グローバル読取り/書込みポートは、256ビット幅であり、ALU読取りポートおよびALU書込みポートはそれぞれ32ビット幅である。
【0031】
ピクセルALU58は、レンダリング・バス98を介してピクセル・バッファ56へのパイプライン化リード・モディファイ・ライト・オペレーションをイネーブルする。パイプライン化リード・モディファイ・ライト・オペレーションには、Zバッファ比較演算、RGBアルファ・ブレンド演算、およびブール演算が含まれる。ピクセル・バッファ56のグローバル読取り/書込みポートは、グローバル・バス60を介したページ・バッファAないしDとピクセル・バッファ56の間のL1キャッシュ・ブロック全体の並行転送をイネーブルする。
【0032】
ページ・バッファAないしDはL2ピクセル・キャッシュを備える。L2ピクセル・キャッシュは、DRAMバンクAないしDに直接マップされる。各ページ・バッファAないしDは、対応するDRAMバンクAないしDの1ページにマップされる。一実施例では、L2ピクセル・キャッシュ項目は、各ワードごとに32ビットの320ワードを備える。各L2キャッシュ項目は、幅20高さ16のピクセル矩形として構成される。L2ピクセル・キャッシュはライト・スルー方式を使用する。グローバル・バス60を介してL2ピクセル・キャッシュ項目に書き込まれたピクセル・データはただちに、対応するDRAMバンクAないしDの対応するページに送られる。
【0033】
グローバル・バス60は、L1ピクセル・キャッシュとL2ピクセル・キャッシュの間の通信をイネーブルする。一実施例では、グローバル・バス60は、256ビット幅であり、L1ピクセル・キャッシュとL2ピクセル・キャッシュの間の2×4ピクセル・ブロックの並行転送をイネーブルする。
【0034】
各DRAMバンクAないしDは、1組のビット線を備えるセンス増幅器バスを含む。センス増幅器バスは、ページ・バッファAないしDをDRAMバンクAないしDに結合する。一実施例では、各センス増幅器バスは、DRAMバンクAないしDから対応するL2ピクセル・キャッシュへの20×16(32ビット・ピクセルを含む)ピクセル矩形の並行転送をイネーブルする。
【0035】
フレーム・バッファ・メモリ装置制御装置83は、DRAM操作バス110およびピクセル操作バス112の制御信号およびアドレス信号を介してDRAMバンクAないしDへのアクセスをインタリーブする。フレーム・バッファ・メモリ装置制御装置83は、1つのページ・バッファAないしDのセンス増幅器上のプレチャージ・オペレーションを他のDRAMバンクAないしDへのレンダリング・オペレーションとオーバラップさせる。フレーム・バッファ・メモリ装置制御装置83は、1つのDRAMバンクAないしDへのアクセス・ページ・オペレーションを、他のDRAMバンクAないしDへのレンダリング・オペレーションとインタリーブする。
【0036】
FBRAMチップ71は、ALU58ならびに読取りポート204および書込みポート202を介してピクセル・バッファ56にアクセスするための1組のピクセル・ポート制御入出力インタフェース・ピンおよびピクセル・ポートアドレス入出力インタフェース・ピンをピクセル操作バス112上で提供し、グローバル・バス60を介してDRAMバンクAないしDにアクセスし、あるいはビデオ・バッファ52および54にアクセスするための独立の1組のDRAMポート制御入出力インタフェース・ピンおよびDRAMポート・アドレス入出力インタフェース・ピンをDRAM操作バス110上で提供する。独立の数組の制御ピンおよびアドレス・ピンによって、DRAMバンクAないしDに対するオペレーションは、ピクセル・バッファ56へのALUオペレーションと並行して進行することができる。FBRAMチップ71は、ビデオ・バッファ52および24ならびに直列出力134を使用するビデオ・オペレーションに関する他の独立の1組のビデオ・ポート制御インタフェース・ピンをビデオ操作バス134上で提供する。
【0037】
FBRAMチップ71用の入出力インタフェースは、ピクセル・ポート・オペレーション用のピクセル・ポート制御インタフェース118と、ビデオ・オペレーション用のビデオ・ポート制御インタフェース114と、FBRAMチップ71中のDRAMオペレーション用のDRAM制御インタフェース116とを備える。ピクセルALU58およびピクセルバッファ56に対するピクセル・ポート・アクセス・オペレーションは、1組のピクセル・ポート・アドレス信号およびピクセル・ポート制御信号によって制御される。DRAMバンクAないしDに対するオペレーションは、1組のDRAM制御信号によって制御される。ビデオ・バッファ52および54の機能は、1組のビデオ制御信号によって制御される。この3組の別々の制御信号は、4方向インタリーブ済みDRAMバンクと共に、FBRAMチップ71に対する6つの同時オペレーションをイネーブルする。
【0038】
表1は、一実施例のピクセル・ポート・アドレス信号およびピクセル・ポート制御信号をリストしたものである。フレーム・バッファ・メモリ装置制御装置83は、ピクセル操作バス112上のピクセル・ポート・アドレス信号およびピクセル・ポート制御信号を介してピクセルALU58ならびにピクセル・バッファの読取りポート204および書込みポート202に対するピクセル・ポート・オペレーションを制御する。フレーム・バッファ・メモリ装置制御装置83は、PA_ENA[1..0]信号をアサートして、ピクセルALU58ならびにピクセル・バッファ・ポート204および202に対するオペレーションを開始する。いずれかのPA_ENA信号がアサート解除された場合、残りのピクセル・ポート制御信号は無視される。
【0039】
【0040】
フレーム・バッファ・メモリ装置制御装置83は、PA_WE信号をアサートして書込みオペレーションを示す。PA_WE信号は、アサート解除された場合に読取りオペレーションを示す。フレーム・バッファ・メモリ装置制御装置83は、PA_OP[2..0]信号をPA_WE信号と共にドライブしてピクセルALU58に対するオペレーションを指定する。フレーム・バッファ・メモリ装置制御装置83は、PA_ADDR[5..0]信号を使用して、ピクセルALU58オペレーションに関するピクセル・バッファ読取りポート204およびピクセル・ポート書込みポート202を指定する。
【0041】
フレーム・バッファ・メモリ装置制御装置83は、レジスタ書込みおよびダーティ・タグ書込みを含め、読取りオペレーションおよび書込みオペレーション時に、信号PA_BE[3..0]信号をドライブする。読取りオペレーション時には、PA_WEがアサート解除され、PA_BE信号が、output byte enable信号を提供する。書込みオペレーション時には、PA_WEがアサートされ、PA_BE信号がwrite byte enable信号を提供する。PA_BE[0]信号はPA_DQ[7..0]データ・バイトを制御し、PA_BE[1]信号はPA_DQ[15..8]データ・バイトを制御し、PA_BE[2]信号はPA_DQ[23..16]データ・バイトを制御し、PA_BE[3]信号はPA_DQ[31..24]データ・バイトを制御する。
【0042】
フレーム・バッファ・メモリ装置制御装置83は、レンダリング・バス98を介したFBRAMチップ71に対する読取りオペレーションおよび書込みオペレーション時にPA_DQ[31..0]信号を使用する。書込みオペレーション時には、PA_DQ信号がピクセルALU58に送られる。読取りオペレーション時には、ピクセル・バッファ56の読取りポートによってPA_DQ信号が提供される。内部コピー・オペレーションおよび垂直スクロール・オペレーション時には、フレーム・バッファ・メモリ装置制御装置83が、PA_DQ[29..24]信号によって書込みアドレスを供給する。
【0043】
ブレンドを実行するALU書込み時には、フレーム・バッファ・メモリ装置制御装置83がPA_DX[3..0]信号を使用して、PA_DQ信号を介して送られるデータ・バイト用の余分の高位データ・ビットを提供する。PA_DX[0]信号は、PA_DQ[7..0]バイト用の高位ビットを提供する。同様に、PA_DX[1]信号は、PA_DQ[15..8]バイト用の高位ビットであり、PA_DX[2]信号は、PA_DQ[23..16]用の高位ビットであり、PA_DX[3]信号は、PA_DQ[31..24]バイト用の高位ビットである。
【0044】
PA_PASS_IN信号およびPA_PASS_OUT信号は、FBRAMチップ71ないし82間の合格/不合格比較装置の結果の調整をイネーブルする。FBRAMチップ71の内部比較装置からの比較結果は、PA_PASS_OUT信号を介して送られる。PA_PASS_OUT信号は、ピクセル・バッファ56へのstateful書込みオペレーション時に内部比較試験の結果が不合格であったかどうかを示す。stateful書込みオペレーション時に、PA_PASS_IN信号が合格を示し、PA_PASS_OUT信号が合格を示す場合、データはピクセル・バッファ56に書き込まれる。
【0045】
表2は、一実施例のDRAMアドレス信号およびDRAM制御信号について説明したものである。フレーム・バッファ・メモリ装置制御装置83は、DRAM操作バス110上のDRAMアドレス信号およびDRAM制御信号を介して、DRAMバンクAないしD、グローバル・バス60、ピクセル・バッファ・グローバル・バス・ポート、ビデオ・バッファ52および54に対するアクセス・オペレーションを開始する。フレーム・バッファ・メモリ装置制御装置83は、DRAM_OP[2..0]信号を介してDRAMオペレーションを指定する。フレーム・バッファ・メモリ装置制御装置83は、マスタ・クロックCLKの立上りエッジ上でDRAM_ENAをアサートして、次のCLKサイクル中に1つのDRAMバンクAないしDに対するオペレーションを開始する。
【0046】
【表2】
【0047】
フレーム・バッファ・メモリ装置制御装置83は、DRAM_BANK[1..0]信号によって1つのDRAM信号AないしDを選択する。フレーム・バッファ・メモリ装置制御装置83は、DRAM_ADDR[8..0]信号を介して、選択されたDRAMバンクAないしD中のページを選択する。また、フレーム・バッファ・メモリ装置制御装置83は、DRAM_ADDR[8..0]信号を使用して、グローバル・バス60を介したブロック転送オペレーション時のピクセル・バッファ・グローバル・バス・ポート・アドレスを指定し、かつDRAMページからビデオ・バッファ52および54のうちの一方へのビデオ・データの転送を指定する。
【0048】
表3は、一実施例のビデオ制御信号をリストしたものである。ビデオ制御信号は、ビデオ・データをビデオ・バス134を介してビデオ出力回路84へ送るために使用される。ビデオ・バス134を介して送られるビデオ・データは、VID_CLK信号によって同期をとられる。VID_CLK信号は、ゲート・ビデオ・シフト・クロックまたは自走ビデオ・シフト・クロックである。VID_CM(上バー)信号は、次のVID_CLKサイクルをマスクし、ビデオ・バッファ52および54をドライブするFBRAMチップ71中のビデオ・カウンタをディスエーブルするために使用される。VID_OE信号は、VID_DATA信号によって提供されるビデオ・データに対する非同期ビデオ出力イネーブル信号である。VID_DATA[15..0]信号によって提供される16ビット幅ビデオ・データバスは、1サイクル中の2バイトのビデオ・データの転送をイネーブルする。VID_QSF信号は、ビデオ・バッファ52またはビデオ・バッファ54が、VID_DATA[15..0]信号を介して送られるビデオ・データをドライブしているかどうかを示す。
【0049】
【表3】
【0050】
表4は、一実施例のFBRAMチップ71のピクセル・ポート・オペレーションについて説明したものである。ピクセル・ポート・オペレーションは、ピクセル・バッファ56からデータを読み取るオペレーション、4つの異なるモードでピクセル・バッファ56にデータを書き込むオペレーション、ダーティ・タグ・メモリ194中のダーティ・タグ・ビットを置換し修正するオペレーション、FBRAMチップ71の制御レジスタに書き込むオペレーションが含まれる。
【0051】
【表4】
【0052】
フレーム・バッファ・メモリ装置制御装置83は、PA_ADDR[5..0]信号を介してピクセル・ポート・オペレーション用のブロック・アドレスおよびワード・アドレスを指定する。レンダリング・プロセッサ70は、PA_ADDR[5..3]信号を介してピクセルALUオペレーション用のブロック・アドレスを指定する。レンダリング・プロセッサ70は、PA_ADDR[2..0]信号を介してピクセルALUオペレーション用のワード・アドレスを指定する。レンダリング・プロセッサ70は、PA_ADDR[5..0]信号を介して制御レジスタ書込みオペレーション時の制御レジスタを指定する。
【0053】
フレーム・バッファ・メモリ装置制御装置83は、ピクセル・ポート読取りオペレーションを発行して、ピクセル・バッファ50から32ビット・データを読み取る。ピクセル・バッファ56中のブロック・アドレスおよびワード・アドレスは、PA_ADDR[5..0]信号によって指定される。
【0054】
フレーム・バッファ・メモリ装置制御装置83は、stateless初期データ書込みオペレーションを発行して、PA_ADDR[5..0]信号によって指定されたピクセル・バッファ56中のブロックおよびワードに32ビット・データを書き込む。stateless初期データ書込みオペレーションは、PA_DQ[31..0]によって提供された32ビット・データに対応するアドレスされたブロック中のダーティ・タグをセットし、PA_DQ[31..0]によって提供された32ビット・データに対応しないアドレスされたブロック中のダーティ・タグをクリアする。stateless初期データ書込みオペレーションは、FBRAMチップ71中の制御レジスタの内容の影響を受けない。stateless通常データ書込みオペレーションも、FBRAMチップ71中の制御レジスタの内容の影響を受けない。フレーム・バッファ・メモリ装置制御装置83は、stateless通常データ書込みオペレーションを発行して、PA_ADDR[5..0]信号によって指定されたピクセル・バッファ56中のブロックおよびワードに、PA_DQ[31..0]信号によって提供された32ビット・データを書き込む。stateless通常データ書込みオペレーションは、PA_DQ[31..0]によって提供された32ビット・データに対応するダーティ・タグをセットする。
【0055】
フレーム・バッファ・メモリ装置制御装置83は、stateful初期データ書込みオペレーションを発行して、FBRAMチップ71中の制御レジスタの内容に応じてピクセル・バッファ56に32ビット・データを書き込む。stateful初期データ書込みオペレーションも、stateless初期データ書込みオペレーションと同様にダーティ・タグをセットしクリアする。フレーム・バッファ・メモリ装置制御装置83は、stateful通常データ書込みオペレーションを発行して、FBRAMチップ71中の制御レジスタの内容に応じてピクセル・バッファ56に32ビット・データを書き込む。stateful通常データ書込みオペレーションは、stateless通常データ書込みオペレーションと同様にダーティ・タグをセットする。フレーム・バッファ・メモリ装置制御装置83は、PA_ADDR[5..0]信号を介してピクセル・バッファ56中のブロックおよびワードを指定し、PA_DQ[31..0]信号を介して新しいデータを指定する。ピクセルALUオペレーションを制御するFBRAMチップ71中のレジスタの内容に応じて、アドレスされたブロックおよびワード中の既存のデータと新しいデータを組み合わせることができる。
【0056】
フレーム・バッファ・メモリ装置制御装置83は、ダーティ・タグ置換オペレーションを発行し、PA_DQ[31..0]信号を介してダーティ・タグ・データをダーティ・タグ・メモリ194へ送る。フレーム・バッファ・メモリ装置制御装置83は、ORダーティ・タグ・オペレーションを発行して、新しいタグ・データとダーティ・タグ・メモリ中の既存のタグ・データに対する排他的OR関数を実行する。フレーム・バッファ・メモリ装置制御装置83は、制御レジスタ書込みオペレーションを発行して、FBRAMチップ71の内部制御レジスタへ新しいデータを送る。
【0057】
表5は、一実施例のFBRAMチップ71によって提供されるDRAMアクセス・オペレーションをリストしたものである。DRAMアクセス・オペレーションには、ページ・アクセス・オペレーション、ブロック・アクセス・オペレーション、ビデオ・バッファ・ロード・オペレーションが含まれる。ページ・アクセス・オペレーションには、ページ・アクセス・オペレーション、プレチャージ・オペレーション、ページ重複オペレーションが含まれる。ブロック・アクセス・オペレーションには、ブロック読取りオペレーション、マスクされないブロック書込みオペレーション、マスクされたブロック書込みオペレーションが含まれる。フレーム・バッファ・メモリ装置制御装置83は、DRAM操作バス110上で各サイクルごとにDRAMアクセス・オペレーションを開始することができる。
【0058】
【表5】
【0059】
フレーム・バッファ・メモリ装置制御装置83は、ページ・アクセス・オペレーションを開始して、DRAMバンクAないしDのページを選択する。フレーム・バッファ・メモリ装置制御装置83は、DRAM_BANK信号を介してDRAMバンクAないしDを指定し、DRAM_ADDR[8..0]信号を介して、アクセスされるページを指定する。
【0060】
フレーム・バッファ・メモリ装置制御装置83は、ブロック・アクセス・オペレーションを開始して、ページ・バッファAないしDとピクセル・バッファ56の間でデータ・ブロックを送る。フレーム・バッファ・メモリ装置制御装置83は、DRAM_BANK信号を介してDRAMバンクAないしDおよびページ・バッファAないしDを指定する。フレーム・バッファ・メモリ装置制御装置83は、DRAM_ADDR[8..6]信号を介してピクセル・バッファ56中のピクセル・キャッシュ・ブロックを指定し、DRAM_ADDR[5..0]信号を介して、指定されたページ・バッファAないしDのブロックを選択する。
【0061】
フレーム・バッファ・メモリ装置制御装置83は、マスクされないブロック書込みオペレーションを発行して、グローバル・バス60を介して、指定されたピクセル・バッファ56ブロックから、指定されたページ・バッファAないしDの指定されたブロックへ、データ・ブロックを送る。ピクセル・バッファ56の指定されたブロックに対応するダーティ・タグ・メモリ中のダーティ・タグ・ビットは、指定されたページ・バッファAないしDへの書込みをビットごとに制御する。
【0062】
フレーム・バッファ・メモリ装置制御装置83は、マスクされたブロック書込みオペレーションを発行し、グローバル・バス60を介して、ピクセル・バッファ56の指定されたピクセル・キャッシュ・ブロックから、指定されたページ・バッファAないしDの指定されたブロックへ、データ・ブロックを送る。プレーン・マスク・レジスタと、ピクセル・バッファ56の指定されたピクセル・キャッシュ・ブロック用のダーティ・タグ・ビットは、指定されたDRAMバンクAないしDのページ・バッファAないしDへの書込みをビットごとに制御する。
【0063】
フレーム・バッファ・メモリ装置制御装置83は、バンク・プレチャージ・オペレーションを発行して、指定されたDRAMバンクAないしD中のセンス増幅器をプレチャージする。フレーム・バッファ・メモリ装置制御装置83は、以後のページ・アクセス・オペレーションに備えてバンク・プレチャージ・オペレーションを行う。
【0064】
フレーム・バッファ・メモリ装置制御装置83は、ビデオ転送オペレーションを発行して、指定されたページ・バッファAないしDから対応するビデオ・バッファ52または54へセンス増幅器データの640ビット・ラインを送る。レンダリング・プロセッサ70は、DRAM_ADDR[3..0]信号を使用して、ページ・バッファAないしDのラインを指定する。
【0065】
フレーム・バッファ・メモリ装置制御装置83は、ページ重複オペレーションを発行して、指定されたページ・バッファAないしD中のセンス増幅器データを、対応するDRAMバンクAないしD中の指定されたページへ送る。フレーム・バッファ・メモリ装置制御装置83は、ブロック読取りオペレーションを発行して、グローバル・バス60を介して、指定されたページ・バッファAないしDの指定されたブロックから、ピクセル・バッファ56の指定されたピクセル・キャッシュ・ブロックへデータ・ブロックを送る。ブロック読取りオペレーションは、ピクセル・バッファ56の指定されたピクセル・キャッシュ・ブロック用のダーティ・タグ・ビットをクリアする。
【0066】
フレーム・バッファ・メモリ装置制御装置83は、ページ・アクセス・オペレーションを発行して、指定されたDRAMバンクAないしD中の指定されたページから、ページ・バッファAないしD中の対応するセンス増幅器へデータを送る。フレーム・バッファ・メモリ装置制御装置83は、特定のDRAMバンクAないしDへのページ・アクセス・オペレーションの前に、そのDRAMバンクへのプレチャージオペレーションを実行する。
【0067】
FBRAMチップ71などFBRAMチップの例に関する他の情報に関しては、1994年5月3日に出願され、「Frame Buffer RandomAccess Memory and System」と題する、米国特許出願第08/237289号を参照されたい。
【0068】
図3は、一実施例のフレーム・バッファ・メモリ装置制御装置83を示す。フレーム・バッファ・メモリ装置制御装置83は、トランスレータ回路300と、アロケータ回路310と、スケジューラ回路320と、アービタ回路330と、ビデオ要求ジェネレータ340とを備える。なお、図において$はキャッシュを意味している。
【0069】
フレーム・バッファ・メモリ装置制御装置83がフレーム・バッファ制御バス106を介して受け取ったピクセル・アクセス・トランザクションによって、最終的にピクセル操作バス112およびレンダリング・バス98を介してオペレーションが発行される。フレーム・バッファ・メモリ装置制御装置83は、DRAM操作バス110を介してDRAMオペレーションを発行して、ピクセル・オペレーションをサポートするFBRAMチップ71ないし82のL2ピクセル・キャッシュを介して、DRAMコアとL1ピクセル・キャッシュの間でデータを送る。
【0070】
フレーム・バッファ・メモリ装置制御装置83は、フレーム・バッファ制御バス106を介して受け取った一連のピクセル・アクセス・トランザクションに応じて、DRAM操作バス110上へ発行するDRAMオペレーションを決定する。たとえば、フレーム・バッファ制御バス106を介して受け取ったピクセル・アクセス・トランザクションによって指定されたピクセル・データが、FBRAMチップ71ないし82のL1ピクセル・キャッシュに記憶されていない場合、FBRAMチップ71ないし82のL1ピクセル・キャッシュへ適当なブロックを送らなければならない。また、フレーム・バッファ制御バス106上でピクセル・アクセス・トランザクションによって指定されたピクセルがL2ピクセル・キャッシュに含まれていない場合、指定されたブロックをL2ピクセル・キャッシュからFBRAMチップ71ないし82のL1ピクセル・キャッシュへ送る前に、L2ピクセル・キャッシュへ適当なページを送っておかなければならない。
【0071】
フレーム・バッファ・メモリ装置制御装置83は、L1ピクセル・キャッシュ中の修正済みブロックが、FBRAMチップ71ないし82のグローバル・バスを介してL2ピクセル・キャッシュに適切に書き直されるようにする。また、フレーム・バッファ・メモリ装置制御装置83は、L2ピクセル・キャッシュ中のページが適宜、FBRAMチップ71ないし82のDRAMコアに返されるようにする。
【0072】
フレーム・バッファ・メモリ装置制御装置83は、ACPオペレーション、VDXオペレーション、PREオペレーションを含め一連のビデオ転送を発行して、FBRAMチップ71ないし82中のDRAMバンクAないしDおよび対応するビデオ・バッファからビデオ・データを送る。
【0073】
トランスレータ回路300は、フレーム・バッファ制御バス106を介してピクセル・アクセス・トランザクションを受け取る。フレーム・バッファ制御バス106上の各ピクセル・アクセス・トランザクションは、XアドレスおよびYアドレスと、命令コード(OP)と、ピクセル・データとを備える。命令コードは、FBRAMチップ71ないし82のためのピクセル書込みサイクル、ピクセル・リード・モディファイ・ライト・サイクル、ピクセル読取りサイクル、レジスタ書込みサイクル、レジスタ読取りサイクル、およびブロック転送機能を指定する。XアドレスおよびYアドレスは、対応するピクセル・データ用の表示装置の座標を指定する。
【0074】
トランスレータ回路300は、受け取ったXアドレスおよびYアドレスをFBRAMチップ71ないし82用のアクセス・パラメータに変換する。FBRAMチップ71ないし82用のアクセス・パラメータは、バンクと、ページと、列(COL)と、ワードとを備える。バンクは、FBRAMチップ71ないし82の1つのバンクAないしDを指定する。ページは、選択されたバンク内のページを指定し、列は、選択されたページの一部を指定し、ワードは、選択された列のピクセル部分を指定する。
【0075】
アロケータ回路310は、FBRAMチップ71ないし82の内部L1ピクセル・キャッシュおよび内部L2ピクセル・キャッシュの状態に影響を及ぼすスケジューラのすべての要求の累積状態を追跡する。アロケータ回路310は、L2ピクセル・キャッシュにマップされたDRAMページのログ、FBRAMチップ71ないし82のL1ピクセル・キャッシュ中の各項目ごとのバンク、ページ、および列のログを維持する。
【0076】
アロケータ回路310は、バンク、ページ、列、ワード、および命令コードをトランスレータ回路300から受け取り、指定されたピクセル・アクセス・トランザクションを実行するのにFBRAMチップ71ないし82中のL1ピクセル・キャッシュおよびL2ピクセル・キャッシュの状態を変更する必要があるかどうかを判定する。アロケータ回路310は、トランスレータ回路300からのバンク・パラメータ、ページ・パラメータ、および列パラメータを使用して、L1ピクセル・キャッシュおよびL2ピクセル・キャッシュに、指定されたピクセルが含まれているかどうかを判定する。
【0077】
アロケータ回路310は、トランスレータ回路300から受け取ったバンク・パラメータ、ページ・パラメータ、列パラメータ、ワード・パラメータ、および命令(OP)コードを、ブロック・パラメータと共にスケジューラ320に渡す。また、アロケータ回路310は、指定されたピクセル・アクセス・トランザクションで、FBRAMチップ71ないし82のL1ピクセル・キャッシュの状態をさらに変更する必要がある場合、対応するL1キャッシュ要求(L1$Req)をスケジューラ回路320へ送る。また、アロケータ回路310は、指定されたピクセル・アクセス・トランザクションで、FBRAMチップ71ないし82のL2ピクセル・キャッシュの状態をさらに変更する必要がある場合、対応するL2キャッシュ要求(L2$Req)をスケジューラ回路320へ送る。
【0078】
アロケータ回路310からのL1キャッシュ要求は、FBRAMチップ71ないし82中のL1ピクセル・キャッシュとL2ピクセル・キャッシュの間の転送を指定する。たとえば、L1キャッシュ要求は、L2ピクセル・キャッシュからL1ピクセル・キャッシュへデータを転送する(RDB)事前取出しオペレーションを指定することも、あるいはFBRAMチップ71ないし82中のグローバル・バスを介してL1ピクセル・キャッシュからL2ピクセル・キャッシュへダーティ・ピクセル・データを書き直す(UWB,MWB)書直しオペレーションを指定することもできる。単一のピクセル・オペレーションは、事前取出しオペレーションの後に書直しオペレーションを生成することができる。他の実施例では、書直しと事前取出しをスケジューラ回路320への1つの要求として組み合わせる。
【0079】
L2キャッシュ要求は、各FBRAMチップ71ないし82中のDRAMコアに対するオペレーションを指定する。たとえば、アロケータ回路310からのL2キャッシュ要求は、DRAMコアに対するページ・アクセス(ACP)オペレーションを指定することも、あるいはDRAMコアに対するプレチャージ(PRE)オペレーションを指定することもできる。他の実施例では、アロケータ回路310が、スケジューラ回路320へのページ・アクセス・オペレーションを指定し、アービタ回路330が、この要求をページ・アクセスと、(必要に応じて)その後に続くプレチャージとして拡張する。
【0080】
スケジューラ回路320は、ピクセル・アクセス・ブロック・パラメータ、バンク・パラメータ、ページ・パラメータ、列パラメータ、および命令コードを、L1キャッシュ要求およびL2キャッシュ要求と共に、アロケータ回路310から受け取る。スケジューラ回路320は、ピクセル・アクセス・パラメータ、L1キャッシュ要求、およびL2キャッシュ要求を別々の内部先入れ先出し(FIFO)メモリ待ち行列にバッファする。この別々のメモリ待ち行列は、独立にオペレーションし、したがって、L2キャッシュ要求をL1キャッシュ要求よりも先へ「プッシュ」することができ、L1キャッシュ要求をピクセル・アクセス・パラメータよりも先へプッシュすることができる。
【0081】
アービタ回路330は、それぞれDRAM操作バス110およびピクセル操作バス112を介して前にディスパッチされたDRAMオペレーションおよびピクセル・オペレーションに応じてFBRAM71ないし82の現内部状態のログを維持する。アービタ回路330は、FBRAMチップ71ないし82中のL1ピクセル・キャッシュおよびL2ピクセル・キャッシュの現状態を追跡する。アービタ回路330は、ピクセル操作バス112を介して最も新しく発行された5つのピクセル・オペレーションを示すスコアボードも維持する。
【0082】
アービタ回路330は、FBRAMチップ71ないし82中の内部タイミング・オペレーションを実行する内部の1組のインタロック回路を維持する。アービタ回路330は、読取りサイクルと書込みサイクルの間の遷移時に回線反転がうまく行われるように、レンダリング・バス98上でサイクルを追跡する状態マシンも含む。アービタ回路330は、FBRAMチップ71ないし82中のグローバル・バスの内部状態も追跡する。
【0083】
アービタ回路330は、ビデオ要求ジェネレータ340からビデオ転送要求を受け取る。ビデオ要求ジェネレータ340からのビデオ転送要求は、ビデオ操作バス106を介してビデオ出力回路84から受け取ったタイミング信号によって決定される。各ビデオ・アクセス要求も、1つのFBRAMチップ71ないし82のQSFフラグの遷移によって決定される。各ビデオ・アクセス要求は、FBRAMチップ71ないし82中の一連のビデオ転送が必要であるかどうかを示す。
【0084】
アービタ回路330は、L1キャッシュ要求、L2キャッシュ要求、およびビデオ転送オペレーション要求をDRAM操作バス110を介してFBRAMチップ71ないし82へ発行する。アービタ回路330は、FBRAMチップ71ないし82がDRAMオペレーションを受け取る準備ができている場合にDRAM操作バス112上でDRAMオペレーションとして発行される、スケジューラ回路320からのL1キャッシュ要求およびL2キャッシュ要求と、ビデオ要求ジェネレータ340からのビデオ・アクセス要求の調停をはかる。アービタ回路330は、FBRAMチップ71ないし82がピクセル・アクセス・トランザクションを受け取る準備ができている場合、ピクセル操作バス110を介するピクセル・ポート・オペレーションおよびレンダリング・バス98を介するデータとしてピクセル・アクセス・トランザクションを発行する。
【0085】
各FBRAMチップ71ないし82は、DRAM操作バス110およびピクセル操作バス112に結合された独立の数組の制御ピンおよびアドレスピンを提供する。ピクセル操作バス112は、FBRAMチップ71ないし82中のL1ピクセル・キャッシュとの間の読取りポート204および書込みポート202を介したピクセルの読取りおよび書込みを制御する。DRAM操作バス110は、DRAMコアとL2ピクセル・キャッシュの間のデータ転送、L2ピクセル・キャッシュとL1ピクセル・キャッシュの間のグローバル・バス60転送、およびL2ピクセル・キャッシュからFBRAMチップ71ないし82中の対応するビデオ・バッファへのビデオ転送を制御する。
【0086】
図4は、トランスレータ回路300による、フレーム・バッファ制御バス106を介して受け取ったXピクセル・アドレスおよびYピクセル・アドレスの、FBRAMチップ71ないし82用のバンク・パラメータ、ページ・パラメータ、ブロック・パラメータ、およびワード・パラメータへのマッピングを示す。図の例は、1280×1024解像度のディスプレイでの画面マッピングを示す。バンクAないしDをマップするために二次元パターンが使用され、そのため、近隣のページのレンダリングでは常に、異なるバンクが使用され、新しいバンクを事前に取り出して古いバンクを削除する時間が与えられることに留意されたい。トランスレータ回路300は、以下で表1に記載した変換関数を実行する1組の組合せ論理を備える。
【0087】
【表6】
【0088】
図5は、一実施例のアロケータ回路310を示す。アロケータ回路310は、トランスレータ回路300からの着信ピクセル・アクセスにL1キャッシュ要求およびL2キャッシュ要求が必要であるかどうかを判定する。アロケータ回路310は、L1キャッシュ・テーブル(L1$テーブル)、L2キャッシュ・テーブル(L2$テーブル)、および最古の割振りブロック・レジスタ400を維持する。
【0089】
L2キャッシュ・テーブルは、FBRAMチップ71ないし82の各バンクAないしDごとの項目を提供し、ここで、バンクAないしDはバンク0ないしバンク3に対応する。L2キャッシュ・テーブル中の各項目は、有効ビットとページ・フィールドとを含む。有効ビットは、対応するバンクAないしDのページがL2ピクセル・キャッシュにマップされているかどうかを示し、ページ・フィールドは、マップすべきDRAMバンクのページを指定する。
【0090】
一実施例では、アロケータ回路310は、トランスレータ回路300から着信したピクセル・アクセス・パラメータの各組ごとにL2キャッシュ・テーブルにインデックス付けする。アロケータ回路310は、トランスレータ回路300からのバンク・パラメータでL2キャッシュ・テーブルにインデックス付けする。アロケータ回路310は、指定されたL2キャッシュ・テーブル項目のページ・フィールドを、トランスレータ回路300から着信したページ・パラメータと比較する。着信ページ・パラメータが、指定されたL2キャッシュ・テーブル項目のページ・フィールドに一致し、対応する有効ビットがセットされている場合、アロケータ回路310は、ピクセル・アクセス・パラメータがスケジューラ回路320に渡されたときにL2キャッシュ要求を発行しない。そうでない場合、アロケータ回路310は、適当なL2キャッシュ要求をスケジューラ回路320へ発行し、適当なL2キャッシュ・テーブル項目をトランスレータ回路300から着信したページ・パラメータにセットする。
【0091】
他の実施例では、L2キャッシュ・テーブルでミスしたが、L1キャッシュ・テーブルではヒットしたトランスレータからの着信要求によってアロケータがL2キャッシュ要求をスケジューリングすることはない。その代わり、L1キャッシュの削除を必要とするトランスレータへの以後の要求ではまず、ブロックを削除するL1要求を生成する前にページをスケジューリングするL2要求が生成される。
【0092】
L1キャッシュ・テーブル中の各項目は、有効ビット(V)と、ダーティ・ビット(D)と、書込み専用ビット(W)と、statefulビット(S)と、バンク・フィールドと、ページ・フィールドと、列フィールドとを含む。ダーティ・ビットは、L1ピクセル・キャッシュの対応するブロックが、L1ブロックを再割り振りできるようにするためにL2ピクセル・キャッシュに書き直しておかなければならない更新済みピクセルを含むことを示す。有効ビットは、L2$のブロックが対応するL1$ブロックにマップされているかどうかを示す。statefulビットは、L1ピクセル・キャッシュの対応するブロックにはstateful書込みオペレーションが必要か、それともstateless書込みオペレーションが必要かを示す。書込み専用ビットは、L1ピクセル・キャッシュの対応するブロックにはグローバル・バス読取りトランザクションが必要とされないことを示す。
【0093】
一実施例では、アロケータ回路310は、L1ピクセル・キャッシュが常にL2ピクセル・キャッシュのサブセットとなるようにする。L1キャッシュ・テーブルはフル・アソシエーティブである。アロケータ回路310は、トランスレータ回路300から着信したバンク・パラメータ、ページ・パラメータ、および列パラメータを同時にL1キャッシュ・テーブル中のすべての6つの項目と比較する。着信ピクセル・アクセス・パラメータがL1キャッシュ・テーブル中の項目に対応していない場合、最古の割振りカウンタ400によって示されたL1キャッシュ・テーブル中の項目がアロケータ回路310によって削除される。次いで、指定されたL1キャッシュ・テーブル項目の3ビット・インデックスが、トランスレータ回路300から受け取った残りのピクセル・アクセス・パラメータと共に、スケジューラ回路320へL1キャッシュ要求として送られる。次いで、最古割振りカウンタ400がモジュロ6だけ増分される。最古割振りカウンタ400によって指定されたL1キャッシュ・テーブル中の項目がダーティである場合、アロケータ回路310は、スケジューラ回路320へL1キャッシュ要求を発行して、ダーティ・ブロックを書き直す。また、L1キャッシュ・テーブルの指定された項目はクリーンにセットされる。
【0094】
他の実施例では、L1ピクセル・キャッシュは常にL2ピクセル・キャッシュのサブセットであるとは限らない。この場合も、L1キャッシュ・テーブルはフル・アソシエーティブである。アロケータ回路310は、トランスレータ回路300から着信したバンク・パラメータ、ページ・パラメータ、および列パラメータを同時に、L1キャッシュ・テーブル中のすべての6つの項目と比較する。着信ピクセル・アクセス・パラメータがL1キャッシュ・テーブル中の項目に対応するものでない場合、最古割振りカウンタ400で示されたL1キャッシュ・テーブル中の項目は、アロケータ回路310によって割り振り解除される。最古の割振りカウンタ400によって指定されたL1キャッシュ・テーブル中の項目がダーティである場合、アロケータ回路310は、L1キャッシュ要求をスケジューラ回路320へ発行して、ダーティ・ブロックを書き直す。削除されるL1ブロックによって使用されているL2ページがL2テーブル中で有効でない場合、古いページを削除して、必要なページを取り出すことを求めるL2要求は、スケジューラに送られる。また、L1キャッシュ・テーブルの指定された項目はクリーンにセットされる。割り振り解除されたブロックが削除された後、指定されたL1キャッシュ・テーブル項目の3ビット・インデックスが、トランスレータ回路300から受け取った残りのピクセル・アクセス・パラメータと共に、スケジューラ回路320へL1キャッシュ取出し要求として送られる。次いで、最古の割振りカウンタ400がモジュロ6だけ増分される。L1キャッシュ取出し要求によって使用されるページがL2テーブル中で有効でない場合、必要なページを取り出すことを求めるL2要求もスケジューラ回路320へ送られる。
【0095】
他の実施例は、最古割振りブロック・レジスタの代わりにLRUブロック・レジスタを使用することができる。
【0096】
他の代替実施例では、トランスレータ回路300からアロケータ回路310への要求が待機する。どのキャッシュ項目が削除するのに最も適しているかを判定する選択では、実行に関してすでにスケジューリングされているのはどのオペレーションかを調べるだけでなく、後で着信ピクセルが必要とするブロックを削除することを避けるために着信ピクセル・オペレーションの待ち行列を調べることもできる。
【0097】
アロケータ回路310は、L1キャッシュ・テーブル中の指定された項目のダーティ・ビットを検査して、L2ピクセル・キャッシュからの書直しオペレーションが必要であるかどうかを判定する。対応するSビットは、L1ピクセル・キャッシュからL2ピクセル・キャッシュへの書直しに、マスクされないブロック書込みを使用するか、マスクされたブロック書込みを使用するかを示す。
【0098】
図6は、一実施例のスケジューラ回路320を示す。スケジューラ回路320は、ブロック・パラメータ、バンク・パラメータ、ページ・パラメータ、列パラメータ、命令コード・パラメータ、ピクセル・データ・パラメータを含めピクセル・アクセス・パラメータをアロケータ回路310から受け取り、そのピクセル・アクセス・パラメータをピクセル待ち行列に置く。スケジューラ回路320は、L1キャッシュ要求を、アロケータ回路310から受け取り、L1キャッシュ待ち行列(L1$待ち行列)に置く。スケジューラ回路320は、L2キャッシュ要求を、アロケータ回路310から受け取り、L2キャッシュ待ち行列(L2$待ち行列)に置く。ピクセル待ち行列、L1キャッシュ待ち行列、およびL2キャッシュ待ち行列はそれぞれ、先入れ先出しバッファ・メモリを備える。
【0099】
スケジューラ回路320は、L2キャッシュ要求とは異なるバンクに対する無関係のL1キャッシュ要求よりも先へL2キャッシュ要求をプッシュし、L1キャッシュ要求とは異なるブロックに対する無関係のピクセル・アクセス要求よりも先へL1キャッシュ要求をプッシュする。対応する要求を先へプッシュするために、ピクセル待ち行列は、L1キャッシュ待ち行列よりも深く、L1キャッシュ待ち行列は、L2キャッシュ待ち行列よりも深い。ピクセル待ち行列、L1待ち行列、およびL2待ち行列は独立にオペレーションし、それによって、L2キャッシュ要求は、前に受け取ったL1キャッシュ要求およびピクセル・アクセス要求よりも先へ移動することができる。同様に、L1キャッシュ要求は、ピクセル待ち行列中の前に受け取ったピクセル・アクセス要求よりも先へ移動することができる。
【0100】
この「プッシュ・アヘッド」方式は、大部分のL2オペレーションが完了するのにかかる時間が、L1オペレーションが完了するのにかかる時間よりも長く、大部分のL1オペレーションが完了するのにかかる時間が、ピクセル・オペレーションが完了するのにかかる時間よりも長いため、非常に有利である。一方、L2ページ領域はL1ブロック領域よりも大きく、L1ブロック領域はピクセル領域よりも大きい。その結果、通常、L1要求ごとに複数のピクセル要求があり、L2要求ごとに複数のL1要求がある。より遅いL2要求およびL1要求をより数の多いL1要求およびピクセル要求よりも先へプッシュすることによって、より遅い要求が、より数の多いピクセル要求をサポートするために必要とされる前に完了する機会が大幅に増大し、したがってピクセル要求を停止する必要がなくなる。
【0101】
スケジューラ回路320は、L2キャッシュ要求が、それと同じバンクおよびページへの関連L1キャッシュ要求よりも先へプッシュされるのを妨げる。スケジューラ回路320は、アロケータ回路310から着信した各L2キャッシュ要求のバンク・パラメータを各L1待ち行列項目のバンク・フィールドと比較する。バンク・フィールドが有効なL1キャッシュ待ち行列項目に一致する場合、着信L2キャッシュ要求はスケジューラ回路320によって停止される。スケジューラ回路320は、L2キャッシュ要求のバンク・フィールドが有効なL1$待ち行列項目のバンク・フィールドに一致する場合、L2キャッシュ要求を停止させ、対応するすべてのL1$待ち行列項目が書き直される前にL2$項目が変更されるのを妨げる。
【0102】
スケジューラ回路320は、L1キャッシュ要求が、それと同じブロックへの関連ピクセル・アクセス要求よりも先へプッシュされるのを妨げる。スケジューラ回路320は、アロケータ回路310から着信した各L1キャッシュ要求のブロック・パラメータをピクセル待ち行列中の各項目のブロック・フィールドと比較する。着信ブロック・パラメータがピクセル待ち行列中の項目に一致する場合、着信L1キャッシュ要求はスケジューラ回路320によって遅延させられる。
【0103】
図7は、一実施例のアービタ回路330を示す。アービタ回路330は、1組のL2キャッシュ・タグ(L2$タグ)、1組のL1キャッシュ・タグ(L1$タグ)、スコアボード、1組のインタロックを維持し、インタフェース状態マシンを含む。アービタ回路330は、各サイクル中に操作バス110および112上でFBRAMチップ71ないし82へ転送すべき1つのDRAMオペレーションおよび1つのピクセル・オペレーションを選択する。アービタ回路330は、FBRAMチップ71ないし82の内部状態の詳細なモデルを維持して、DRAMオペレーションおよびピクセル・オペレーションが適切に発行されるようにする。
【0104】
L1キャッシュ・タグおよびL2キャッシュ・タグは、FBRAMチップ71ないし82中のL1ピクセル・キャッシュおよびL2ピクセル・キャッシュの状態を示す。スコアボードは、FBRAMチップ71ないし82内部のピクセルALUパイプラインの状態を追跡する。インタロックは、DRAMオペレーションに関するFBRAMチップ71ないし82のハードウェア・タイミング要件を追跡する。インタフェース状態マシンは、適切な回線反転を維持し、FBRAMチップ71ないし82のデータ・ピンへの拡張読取りサイクルをサポートする。
【0105】
アービタ回路330は、スケジューラ回路320から着信したピクセル・アクセス・パラメータをスコアボード中の情報と比較する。スコアボード中の情報は、FBRAMチップ71ないし82のピクセルALUで現在実行中のオペレーションが、着信ピクセル・アクセス要求に干渉しないようにする。また、着信ピクセル・アクセス・パラメータは、FBRAMチップ71ないし82のL1ピクセル・キャッシュで、指定されたピクセル・データが利用できるように、L1キャッシュ・タグと比較される。着信ピクセル・アクセス・オペレーションフィールドは、インタフェース状態マシンの現状態と比較されて、データ・バスが使用できるかどうかが判定される。スコアボードとの競合、L1キャッシュ・タグとの競合、またはインタフェース状態マシン中の競合がアービタ回路330によって検出された場合、スケジューラ回路320から着信したピクセル・アクセス・パラメータは停止される。
【0106】
アービタ回路330は、L2ピクセル・キャッシュで、必要なDRAMページが利用できるように、スケジューラ回路320から着信したL1キャッシュ要求をL2キャッシュ・タグと比較する。アービタ回路330は、L1キャッシュ・ブロックがL2ピクセル・キャッシュへ転送される前に、指定されたL1キャッシュ・ブロックへのすべての未処理ピクセル書込みが完了するように、着信L1キャッシュ書込み要求をスコアボードと比較する。アービタ回路330は、FBRAMチップ71ないし82のグローバル・バスがビジーでなくなるように、すべての着信L1キャッシュ要求をインタロックと比較する。さらにアービタ回路330は、スケジューラ回路320から着信したL2キャッシュ要求をインタロックと比較する。
【0107】
図8は、アービタ回路330中のL2キャッシュ・タグを示す。L2キャッシュ・タグの各項目は、対応するDRAMバンクAないしDの状態を示すビットを含む。このビットは、DRAMバンクAないしDにアクセスするか、それとも前記バンクをプレチャージするかを示す。L2キャッシュ・タグの各項目はページ・フィールドも含む。各L2キャッシュ・タグ項目の状態ビットは、FBRAMチップ71ないし82でのDRAMオペレーションの指定されたサブセットを実行できることを示す(A)に、アクセス・ページ・オペレーションによってセットされる。指定される1組のDRAMオペレーションには、ページ重複、ブロック読取り、マスク・ブロック書込み、マスクされないブロック書込み、ビデオ転送、プレチャージが含まれる。状態ビットは、プレチャージ・オペレーションによってクリアされ、ページ・アクセス・オペレーションまたはプレチャージ・オペレーションを実行できることを示す。
【0108】
図9は、一実施例のアービタ回路330中のL1キャッシュ・タグのフォーマットを示す。L1キャッシュ・タグは、アロケータ回路310中のL1キャッシュ・テーブルに類似しているが、FBRAMチップ71ないし82に関するより新しい状態情報を提供する。
【0109】
図10は、アービタ回路中のスコアボードのフォーマットを示す。スコアボードは、FBRAMチップ71ないし82中のパイプライン化ピクセルALUを通過するピクセル・アクセス・オペレーションを追跡する。スコアボードは、前の5サイクル中にレンダリング・バス98を介してFBRAMチップ71ないし82へ発行されたピクセル・オペレーションのブロック・アドレスおよびワード・アドレスを追跡する。アービタ回路330は、スコアボードに示されたように、同じブロックおよびワードへの前にディスパッチされたピクセル書込みが依然として、ピクセルALUのパイプラインを介して伝搬している場合、L1ピクセル・キャッシュからの読取りを行うピクセル・アクセス・オペレーションを停止させる。
【0110】
また、スコアボードは、FBRAMチップ71ないし82中のピクセルALUオペレーションとL1キャッシュとL2キャッシュの間の転送(書直しまたはUWB、MWB)の調和をはかる。L1キャッシュとL2キャッシュの間の転送は、スコアボードに示されたように、指定されたL1キャッシュ・ブロックへのピクセル書込みオペレーションがピクセルALUのパイプラインを介して伝搬している場合、アービタ回路330によって停止される。
【0111】
各スコアボード項目は、有効ビットと、ブロック・フィールドと、ワード・フィールドとを含む。アービタ回路330は、ピクセル書込みオペレーションがFBRAMチップ71ないし82に発行されたときに項目の有効ビットをセットする。対応する項目のブロック・アドレスおよびワード・アドレスは、スケジューラ回路320から受け取った対応するピクセル・アクセス・オペレーション用のパラメータからコピーされる。アービタ回路330は、あらゆるサイクルでスコアボード項目を先へ進める。
【0112】
アービタ回路330は、スケジューラ回路320から着信した各ピクセル・アクセス・オペレーションをスコアボード中のすべての5つの項目と比較する。着信ピクセル・アクセス・オペレーションがスコアボード中のL1キャッシュ・ブロックからの読取りを指定するものであり、対応する有効ビットがセットされており、スコアボードの対応するブロック・フィールドおよびワード・フィールドが一致する場合、着信ピクセル・アクセス・オペレーションが停止される。スコアボードは、L1ピクセル・キャッシュからの読取りを必要としない着信ピクセル・アクセス・オペレーションに関しては無視される。また、アービタ回路330は、L1ピクセル・キャッシュからL2ピクセル・キャッシュへの転送を指定する各着信L1$キャッシュ要求を、スコアボードの各項目の有効フィールドおよびブロック・フィールドと比較する。そのようなオペレーションには、マスクされないブロック書込みオペレーションとマスクされたブロック書込みオペレーションが含まれる。スコアボード中の項目のブロック・フィールドが着信要求に一致し、対応する有効ビットがセットされている場合、L1キャッシュ要求はアービタ回路330によって停止される。
【0113】
FBRAMデバイスのタイミング仕様を実施するためにインタロックが提供されている。アービタ中のインタロックは、1組のカウンタを備える。このようなカウンタには、各DRAMバンクAないしDごとの2つのバンク内カウンタ、すなわち1つのバンク間カウンタと1つのグローバル・バス・カウンタが含まれる。対応するDRAMオペレーションが、FBRAMへ発行され、次いであらゆるサイクルでカウント・ダウンされるとき、これらのカウンタにはある種の値が値がロードされる。ある種のDRAMオペレーションは、対応するカウンタがゼロでないときには停止される。
【0114】
バンク内継続時間カウンタはDRAMオペレーションがカウンタのバンクへ発行されたときに必ずロードされる。バンク内継続時間カウンタにロードされる値は、DRAMオペレーションのタイプに依存する。バンクへのDRAMオペレーションは、バンクのバンク内継続時間カウンタがゼロでない場合は停止される。
【0115】
バンク内プレチャージ・カウンタはACPオペレーションがカウンタのバンクへ発行されたときにロードされる。バンクへのプレチャージ・オペレーションは、バンクのバンク内プレチャージ・カウンタがゼロでない場合には停止される。
【0116】
バンク間カウンタは、ACP DRAMオペレーション、DUP DRAMオペレーション、またはVDX DRAMオペレーションがFBRAMへ発行されたときに必ずロードされる。ACP DRAMオペレーション、DUP DRAMオペレーション、VCX DRAMオペレーション、およびPRE DRAMオペレーションは、バンク間カウンタがゼロでない場合には停止される。
【0117】
グローバル・バス・カウンタは、RDB DRAMオペレーション、UWB DRAMオペレーション、またはMWB DRAMオペレーションがFBRAMへ発行されたときに必ずロードされる。RDB DRAMオペレーション、UWB DRAMオペレーション、またはMWB DRAMオペレーションは、グローバル・バス・カウンタがゼロでない場合には停止される。
【0118】
他のインタロックは、グローバル・バス上で転送されているL1キャッシュ・ブロックに対するピクセル・オペレーションを停止する。
【0119】
図11は、アービタ回路330中のインタフェース状態マシンを示す。インタフェース状態マシンは、フレーム・バッファ・メモリ装置制御装置83とFBRAMチップ71ないし82の間の双方向バス98のオペレーションを制御する。インタフェース状態マシンは、レンダリング・バス98の書込みトランザクションが1サイクルを必要とするようにする責任を負う。レンダリング・バス98を介した読取りトランザクションには2サイクルが必要である。また、インタフェース状態マシンは、レンダリング・バス98を介する読取りオペレーションとその後の書込みオペレーションの間に2つのアイドル・サイクルが挿入されるようにする。
【0120】
ビデオ要求ジェネレータ340は、ビデオ操作バス108を介してビデオ出力回路84からタイミング信号を受け取る。ビデオ要求ジェネレータは、1つのFBRAMチップ71ないし82からQSF信号も受け取る。ビデオ操作バス108上のタイミング信号は、ビデオ出力回路84によって1組のビデオ線104を介して駆動される表示装置に関する各フレームおよび各走査線の始めを示す。QSF信号は、ビデオ転送オペレーションをいつFBRAMチップ71ないし82へ発行すべきかを示す。
【0121】
ビデオ要求ジェネレータ340は、モード・フィールドと、バンク・フィールドと、ページ・フィールドと、アービタ回路330への走査線アドレス・フィールドとを備えるビデオ転送要求を発行する。アービタ回路330は、ビデオ転送要求を使用して、FBRAMチップ71ないし82に対する一連のDRAMオペレーションを生成する。DRAMオペレーションには、指定されたバンクおよびページへのページ・アクセス・オペレーションと、指定されたバンクおよび走査線へのビデオ転送オペレーションと、指定されたバンクのへのプレチャージ・オペレーションが含まれる。
【0122】
前記明細では、特定の実施例に関して本発明を説明したが、添付の特許請求の範囲に記載した本発明の広範囲な趣旨および範囲から逸脱せずに様々な修正および変更を本発明に加えられることが明らかになろう。したがって、明細および図面は、制限的なものではなく例示的なものとみなすべきである。
【図面の簡単な説明】
【図1】 1組のFBRAMチップと、レンダリング・プロセッサと、フレーム・バッファ・メモリ装置制御装置と、ビデオ出力回路とを備えるグラフィック・サブシステムを示す図である。
【図2】 DRAMアレイと、一対のビデオ・バッファと、ピクセル・バッファと、ピクセルALUとを備える、一実施例のFBRAMチップを示す図である。
【図3】 トランスレータ回路と、アロケータ回路と、スケジューラ回路と、アービタ回路と、ビデオ要求ジェネレータとを備える、一実施例のフレーム・バッファ・メモリ装置制御装置を示す図である。
【図4】 トランスレータ回路によって、フレーム・バッファ制御バスを介して受け取ったXピクセル・アドレスおよびYピクセル・アドレスをFBRAMチップ用のバンク・パラメータ、ページ・パラメータ、ブロック・パラメータ、ワード・パラメータとしてマッピングすることを示す図である。
【図5】 トランスレータ回路からの着信ピクセル・アクセスにL1キャッシュ要求およびL2キャッシュ要求が必要であるかどうかを判定するアロケータ回路を示す図である。
【図6】 ピクセル・アクセス・パラメータをピクセル待ち行列に置き、L1キャッシュ要求をL1キャッシュ待ち行列(L1$待ち行列)に置き、L2キャッシュ要求をL2キャッシュ待ち行列(L2$待ち行列)に置く、スケジューラ回路を示す図である。
【図7】 1組のL2キャッシュ・タグ(L2$タグ)、1組のL1キャッシュ・タグ(L1$タグ)、スコアボード、1組のインタロックを維持し、インタフェース状態マシンを含む、アービタ回路を示す図である。
【図8】 DRAMバンクがアクセスされるか、それともプレチャージされるかを示す対応するDRAMの状態を示すビットを含むアービタ回路中のL2キャッシュ・タグを示す図である。
【図9】 一実施例のアービタ回路のL1キャッシュ・タグのフォーマットを示す図である。
【図10】 FBRAMチップ中のパイプライン化ピクセルALUを通過するピクセル・アクセス・オペレーションを追跡するアービタ回路中のスコアボードのフォーマットを示す図である。
【図11】 フレーム・バッファ・メモリ装置制御装置とFBRAMチップの間の双方向バスのオペレーションを制御するアービタ回路中のインタフェース状態マシンを示す図である。
【符号の説明】
52 ビデオ・バッファ、 56 ピクセル・バッファ、 58 ピクセルALU、 60 グローバル・バス、 70 レンダリング・プロセッサ、 71FBRAMチップ、 83 フレーム・バッファ・メモリ装置制御装置、 84 ビデオ出力回路、 98 レンダリング・バス、 102 システム・バス、 110 DRAM操作バス、 112 ピクセル操作バス、 114 ビデオ・ポート制御インタフェース、 116 DRAM制御インタフェース、 118 ピクセル・ポート制御インタフェース、 134 ビデオ・バス、 162 ピクセル入力データ、 194 ダーティ・タグ・メモリ、 202 ALUポート、 204 読取りポート。
Claims (2)
- 少なくとも1つのフレーム・バッファ・メモリにマップされたピクセル・データをターゲットとするピクセル・アクセス・トランザクションを受け取るように結合されたフレーム・バッファ・メモリ制御装置であって、前のピクセル・アクセス・トランザクションに基づいてフレーム・バッファ・メモリのキャッシュ状態を判定する回路と、キャッシュ転送オペレーションをスケジューリングして、ピクセル・アクセス・トランザクションをフレーム・バッファ・メモリへディスパッチする前にキャッシュ転送オペレーションをフレーム・バッファ・メモリへディスパッチしておく回路とを有することを特徴とするフレーム・バッファ・メモリ装置制御装置。
- 少なくとも1つのフレーム・バッファ・メモリにマップされたピクセル・データをターゲットとするピクセル・アクセス・トランザクションを受け取るように結合されたフレーム・バッファ・メモリ制御装置であって、一連のピクセル・アクセス・トランザクションを調べる回路と、一連のピクセル・アクセストランザクションに適応するようにフレーム・バッファ・メモリ中の一連のキャッシュ転送オペレーションをスケジューリングする回路と、フレーム・バッファ・メモリへのキャッシュ転送オペレーションが、フレーム・バッファ・メモリへのピクセル・アクセス・トランザクションのシーケンスの停止を妨げるように、キャッシュ転送オペレーションをピクセル・アクセス・トランザクションよりも前にディスパッチする回路とを有することを特徴とするフレーム・バッファ・メモリ装置制御装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/276,814 US5579473A (en) | 1994-07-18 | 1994-07-18 | Interface controller for frame buffer random access memory devices |
US276814 | 1994-07-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08211859A JPH08211859A (ja) | 1996-08-20 |
JP3828184B2 true JP3828184B2 (ja) | 2006-10-04 |
Family
ID=23058173
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP20024995A Expired - Fee Related JP3828184B2 (ja) | 1994-07-18 | 1995-07-14 | フレーム・バッファ・メモリ装置制御装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US5579473A (ja) |
EP (1) | EP0696023A3 (ja) |
JP (1) | JP3828184B2 (ja) |
KR (1) | KR100346817B1 (ja) |
Families Citing this family (78)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5946005A (en) * | 1995-09-21 | 1999-08-31 | Industrial Technology Research Institute | Computer graphics memory architecture having a graphics processor and a buffer |
US5761720A (en) * | 1996-03-15 | 1998-06-02 | Rendition, Inc. | Pixel engine pipeline processor data caching mechanism |
US5781201A (en) * | 1996-05-01 | 1998-07-14 | Digital Equipment Corporation | Method for providing improved graphics performance through atypical pixel storage in video memory |
US5987567A (en) * | 1996-09-30 | 1999-11-16 | Apple Computer, Inc. | System and method for caching texture map information |
WO1998043154A2 (en) * | 1997-03-25 | 1998-10-01 | Seiko Epson Corporation | Method and apparatus for efficient memory-read operations with a vga-compliant video display adaptor |
US6067608A (en) * | 1997-04-15 | 2000-05-23 | Bull Hn Information Systems Inc. | High performance mechanism for managing allocation of virtual memory buffers to virtual processes on a least recently used basis |
EP0926600B1 (en) * | 1997-12-24 | 2003-06-11 | Texas Instruments Inc. | Computer system with processor and memory hierarchy and its operating method |
US6260114B1 (en) | 1997-12-30 | 2001-07-10 | Mcmz Technology Innovations, Llc | Computer cache memory windowing |
US6535218B1 (en) * | 1998-05-21 | 2003-03-18 | Mitsubishi Electric & Electronics Usa, Inc. | Frame buffer memory for graphic processing |
US6661421B1 (en) | 1998-05-21 | 2003-12-09 | Mitsubishi Electric & Electronics Usa, Inc. | Methods for operation of semiconductor memory |
US6504550B1 (en) * | 1998-05-21 | 2003-01-07 | Mitsubishi Electric & Electronics Usa, Inc. | System for graphics processing employing semiconductor device |
US6559851B1 (en) | 1998-05-21 | 2003-05-06 | Mitsubishi Electric & Electronics Usa, Inc. | Methods for semiconductor systems for graphics processing |
KR100308066B1 (ko) * | 1998-06-29 | 2001-10-19 | 박종섭 | 데이터 버스 라인 제어회로 |
US6825848B1 (en) * | 1999-09-17 | 2004-11-30 | S3 Graphics Co., Ltd. | Synchronized two-level graphics processing cache |
US6473834B1 (en) * | 1999-12-22 | 2002-10-29 | Unisys | Method and apparatus for prevent stalling of cache reads during return of multiple data words |
US6801203B1 (en) * | 1999-12-22 | 2004-10-05 | Microsoft Corporation | Efficient graphics pipeline with a pixel cache and data pre-fetching |
US6640289B2 (en) * | 2000-11-15 | 2003-10-28 | Unisys Corporation | Software controlled cache line ownership affinity enhancements in a multiprocessor environment |
US6828977B2 (en) * | 2001-02-15 | 2004-12-07 | Sony Corporation | Dynamic buffer pages |
US6791557B2 (en) * | 2001-02-15 | 2004-09-14 | Sony Corporation | Two-dimensional buffer pages using bit-field addressing |
US6803917B2 (en) * | 2001-02-15 | 2004-10-12 | Sony Corporation | Checkerboard buffer using memory bank alternation |
US7038691B2 (en) * | 2001-02-15 | 2006-05-02 | Sony Corporation | Two-dimensional buffer pages using memory bank alternation |
US6850241B2 (en) * | 2001-02-15 | 2005-02-01 | Sony Corporation | Swapped pixel pages |
US6768490B2 (en) * | 2001-02-15 | 2004-07-27 | Sony Corporation | Checkerboard buffer using more than two memory devices |
US6765580B2 (en) * | 2001-02-15 | 2004-07-20 | Sony Corporation | Pixel pages optimized for GLV |
US6765579B2 (en) * | 2001-02-15 | 2004-07-20 | Sony Corporation | Pixel pages using combined addressing |
US7205993B2 (en) * | 2001-02-15 | 2007-04-17 | Sony Corporation | Checkerboard buffer using two-dimensional buffer pages and using memory bank alternation |
US6831649B2 (en) * | 2001-02-15 | 2004-12-14 | Sony Corporation | Two-dimensional buffer pages using state addressing |
US6795079B2 (en) * | 2001-02-15 | 2004-09-21 | Sony Corporation | Two-dimensional buffer pages |
US6831651B2 (en) * | 2001-02-15 | 2004-12-14 | Sony Corporation | Checkerboard buffer |
US7379069B2 (en) * | 2001-02-15 | 2008-05-27 | Sony Corporation | Checkerboard buffer using two-dimensional buffer pages |
US6992674B2 (en) * | 2001-02-15 | 2006-01-31 | Sony Corporation | Checkerboard buffer using two-dimensional buffer pages and using state addressing |
US7088369B2 (en) * | 2001-02-15 | 2006-08-08 | Sony Corporation | Checkerboard buffer using two-dimensional buffer pages and using bit-field addressing |
US6801204B2 (en) * | 2001-02-15 | 2004-10-05 | Sony Corporation, A Japanese Corporation | Checkerboard buffer using memory blocks |
US6831650B2 (en) * | 2001-02-15 | 2004-12-14 | Sony Corporation | Checkerboard buffer using sequential memory locations |
US6778179B2 (en) | 2001-05-18 | 2004-08-17 | Sun Microsystems, Inc. | External dirty tag bits for 3D-RAM SRAM |
US6720969B2 (en) | 2001-05-18 | 2004-04-13 | Sun Microsystems, Inc. | Dirty tag bits for 3D-RAM SRAM |
US20030058368A1 (en) * | 2001-09-24 | 2003-03-27 | Mark Champion | Image warping using pixel pages |
JP2003132347A (ja) * | 2001-10-26 | 2003-05-09 | Sony Corp | 画像処理装置 |
US6753870B2 (en) * | 2002-01-30 | 2004-06-22 | Sun Microsystems, Inc. | Graphics system configured to switch between multiple sample buffer contexts |
US6965980B2 (en) * | 2002-02-14 | 2005-11-15 | Sony Corporation | Multi-sequence burst accessing for SDRAM |
US7027064B2 (en) * | 2002-02-28 | 2006-04-11 | Sun Microsystems, Inc. | Active block write-back from SRAM cache to DRAM |
US6812929B2 (en) * | 2002-03-11 | 2004-11-02 | Sun Microsystems, Inc. | System and method for prefetching data from a frame buffer |
US7313764B1 (en) * | 2003-03-06 | 2007-12-25 | Apple Inc. | Method and apparatus to accelerate scrolling for buffered windows |
US7015918B2 (en) * | 2003-06-10 | 2006-03-21 | Lsi Logic Corporation | 2-D luma and chroma DMA optimized for 4 memory banks |
US6977656B1 (en) | 2003-07-28 | 2005-12-20 | Neomagic Corp. | Two-layer display-refresh and video-overlay arbitration of both DRAM and SRAM memories |
US7091979B1 (en) * | 2003-08-29 | 2006-08-15 | Nvidia Corporation | Pixel load instruction for a programmable graphics processor |
US8174531B1 (en) | 2003-10-29 | 2012-05-08 | Nvidia Corporation | Programmable graphics processor for multithreaded execution of programs |
US7139003B1 (en) * | 2003-12-15 | 2006-11-21 | Nvidia Corporation | Methods of processing graphics data including reading and writing buffers |
US8860737B2 (en) * | 2003-10-29 | 2014-10-14 | Nvidia Corporation | Programmable graphics processor for multithreaded execution of programs |
US7836276B2 (en) * | 2005-12-02 | 2010-11-16 | Nvidia Corporation | System and method for processing thread groups in a SIMD architecture |
US8416242B1 (en) | 2004-05-14 | 2013-04-09 | Nvidia Corporation | Method and system for interpolating level-of-detail in graphics processors |
US8411105B1 (en) | 2004-05-14 | 2013-04-02 | Nvidia Corporation | Method and system for computing pixel parameters |
US8711155B2 (en) * | 2004-05-14 | 2014-04-29 | Nvidia Corporation | Early kill removal graphics processing system and method |
US7079156B1 (en) * | 2004-05-14 | 2006-07-18 | Nvidia Corporation | Method and system for implementing multiple high precision and low precision interpolators for a graphics pipeline |
US8736620B2 (en) * | 2004-05-14 | 2014-05-27 | Nvidia Corporation | Kill bit graphics processing system and method |
US8743142B1 (en) | 2004-05-14 | 2014-06-03 | Nvidia Corporation | Unified data fetch graphics processing system and method |
US8860722B2 (en) * | 2004-05-14 | 2014-10-14 | Nvidia Corporation | Early Z scoreboard tracking system and method |
US20060007234A1 (en) * | 2004-05-14 | 2006-01-12 | Hutchins Edward A | Coincident graphics pixel scoreboard tracking system and method |
US8736628B1 (en) | 2004-05-14 | 2014-05-27 | Nvidia Corporation | Single thread graphics processing system and method |
US8687010B1 (en) | 2004-05-14 | 2014-04-01 | Nvidia Corporation | Arbitrary size texture palettes for use in graphics systems |
US8432394B1 (en) | 2004-05-14 | 2013-04-30 | Nvidia Corporation | Method and system for implementing clamped z value interpolation in a raster stage of a graphics pipeline |
US8544008B2 (en) * | 2004-12-10 | 2013-09-24 | Nxp B.V. | Data processing system and method for cache replacement using task scheduler |
US7434032B1 (en) | 2005-12-13 | 2008-10-07 | Nvidia Corporation | Tracking register usage during multithreaded processing using a scoreboard having separate memory regions and storing sequential register size indicators |
US8537168B1 (en) | 2006-11-02 | 2013-09-17 | Nvidia Corporation | Method and system for deferred coverage mask generation in a raster stage |
US8441497B1 (en) | 2007-08-07 | 2013-05-14 | Nvidia Corporation | Interpolation of vertex attributes in a graphics processor |
US9183607B1 (en) | 2007-08-15 | 2015-11-10 | Nvidia Corporation | Scoreboard cache coherence in a graphics pipeline |
US8949541B2 (en) * | 2008-12-08 | 2015-02-03 | Nvidia Corporation | Techniques for evicting dirty data from a cache using a notification sorter and count thresholds |
US8060700B1 (en) * | 2008-12-08 | 2011-11-15 | Nvidia Corporation | System, method and frame buffer logic for evicting dirty data from a cache using counters and data types |
US8244984B1 (en) * | 2008-12-08 | 2012-08-14 | Nvidia Corporation | System and method for cleaning dirty data in an intermediate cache using a data class dependent eviction policy |
US8464001B1 (en) * | 2008-12-09 | 2013-06-11 | Nvidia Corporation | Cache and associated method with frame buffer managed dirty data pull and high-priority clean mechanism |
SG172162A1 (en) * | 2009-01-27 | 2011-07-28 | Mitsubishi Electric Corp | State display device and method for display in state display device |
TW201234334A (en) * | 2011-02-15 | 2012-08-16 | Novatek Microelectronics Corp | Driving method for bistable display device and driving device thereof |
US9411595B2 (en) | 2012-05-31 | 2016-08-09 | Nvidia Corporation | Multi-threaded transactional memory coherence |
US9824009B2 (en) | 2012-12-21 | 2017-11-21 | Nvidia Corporation | Information coherency maintenance systems and methods |
US10102142B2 (en) | 2012-12-26 | 2018-10-16 | Nvidia Corporation | Virtual address based memory reordering |
US9569385B2 (en) | 2013-09-09 | 2017-02-14 | Nvidia Corporation | Memory transaction ordering |
US10482033B2 (en) | 2016-03-24 | 2019-11-19 | Samsung Electronics Co., Ltd | Method and device for controlling memory |
JP6249120B1 (ja) * | 2017-03-27 | 2017-12-20 | 日本電気株式会社 | プロセッサ |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0228745A3 (en) * | 1985-12-30 | 1990-03-28 | Koninklijke Philips Electronics N.V. | Raster scan video controller provided with an update cache, update cache for use in such video controller, and crt display station comprising such controller |
US5185856A (en) * | 1990-03-16 | 1993-02-09 | Hewlett-Packard Company | Arithmetic and logic processing unit for computer graphics system |
US5450563A (en) * | 1992-10-30 | 1995-09-12 | International Business Machines Corporation | Storage protection keys in two level cache system |
JPH06332664A (ja) * | 1993-03-23 | 1994-12-02 | Toshiba Corp | 表示制御システム |
US5450542A (en) * | 1993-11-30 | 1995-09-12 | Vlsi Technology, Inc. | Bus interface with graphics and system paths for an integrated memory system |
-
1994
- 1994-07-18 US US08/276,814 patent/US5579473A/en not_active Expired - Lifetime
-
1995
- 1995-07-10 EP EP95304809A patent/EP0696023A3/en not_active Withdrawn
- 1995-07-14 JP JP20024995A patent/JP3828184B2/ja not_active Expired - Fee Related
- 1995-07-18 KR KR1019950021726A patent/KR100346817B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR100346817B1 (ko) | 2002-11-30 |
US5579473A (en) | 1996-11-26 |
JPH08211859A (ja) | 1996-08-20 |
EP0696023A3 (en) | 1998-02-04 |
EP0696023A2 (en) | 1996-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3828184B2 (ja) | フレーム・バッファ・メモリ装置制御装置 | |
US6195106B1 (en) | Graphics system with multiported pixel buffers for accelerated pixel processing | |
US5392391A (en) | High performance graphics applications controller | |
US5561780A (en) | Method and apparatus for combining uncacheable write data into cache-line-sized write buffers | |
JP3779748B2 (ja) | フレーム・バッファ・メモリ、コンピュータ・システム、画素のアクセス方法、及びブロック・フィル動作を行う方法 | |
US6856320B1 (en) | Demand-based memory system for graphics applications | |
US7310100B2 (en) | Efficient graphics pipeline with a pixel cache and data pre-fetching | |
US6104418A (en) | Method and system for improved memory interface during image rendering | |
US5638531A (en) | Multiprocessor integrated circuit with video refresh logic employing instruction/data caching and associated timing synchronization | |
EP0780761B1 (en) | Method and apparatus for instruction prefetching in a graphics processor | |
TWI437507B (zh) | 具有多線程執行單元之繪圖處理裝置及其記憶體存取方法 | |
JPH06332664A (ja) | 表示制御システム | |
US8838934B2 (en) | System and method for storing data in a virtualized memory system with destructive reads | |
JPH0348370A (ja) | メモリアクセス制御回路 | |
JPH0954832A (ja) | デジタル・データ及びビデオ信号の処理デバイス及びシステム | |
US5696985A (en) | Video processor | |
US5784076A (en) | Video processor implementing various data translations using control registers | |
US6720969B2 (en) | Dirty tag bits for 3D-RAM SRAM | |
US5717896A (en) | Method and apparatus for performing pipeline store instructions using a single cache access pipestage | |
US5557759A (en) | Video processor with non-stalling interrupt service | |
JPH08255107A (ja) | ディスプレイコントローラ | |
US6778179B2 (en) | External dirty tag bits for 3D-RAM SRAM | |
JPH06318174A (ja) | キャッシュ・メモリ・システム及び主メモリに記憶されているデータのサブセットをキャッシュする方法 | |
US6097403A (en) | Memory including logic for operating upon graphics primitives | |
US5229758A (en) | Display device controller and method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051004 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20060104 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20060110 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060404 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060606 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060706 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |