JPH08329257A - テクスチャ・マッピング・データ管理方法 - Google Patents

テクスチャ・マッピング・データ管理方法

Info

Publication number
JPH08329257A
JPH08329257A JP8124486A JP12448696A JPH08329257A JP H08329257 A JPH08329257 A JP H08329257A JP 8124486 A JP8124486 A JP 8124486A JP 12448696 A JP12448696 A JP 12448696A JP H08329257 A JPH08329257 A JP H08329257A
Authority
JP
Japan
Prior art keywords
texture
data
cache
texel
map
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.)
Granted
Application number
JP8124486A
Other languages
English (en)
Other versions
JP3857355B2 (ja
Inventor
Byron A Alcorn
バイロン・エイ・アルコーン
Darel N Emmot
ダレル・エヌ・エモット
Steven Paul Tucker
スティーブン・ポール・タッカー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HP Inc
Original Assignee
Hewlett Packard Co
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH08329257A publication Critical patent/JPH08329257A/ja
Application granted granted Critical
Publication of JP3857355B2 publication Critical patent/JP3857355B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)

Abstract

(57)【要約】 【課題】コンピュータ・グラフィックス・システムにお
いてテクスチャ・マッピング・データを管理する方法お
よび装置を提供する。 【解決手段】該システムは、ホスト・コンピュータおよ
びプリミティブ・レンダリング・ハードウェアを備え
る。ホスト・コンピュータはテクスチャ・プリミティブ
に対応するテクスチャ・マッピング・データを記憶する
主メモリを備え、プリミティブ・レンダリング・ハード
ウェアは、レンダリングすべきテクスチャ・プリミティ
ブに対応するテクスチャ・マッピング・データをローカ
ルに記憶するローカル・メモリを備える。ホスト・コン
ピュータは、レンダリングのためのテクスチャ・データ
がローカル・メモリ内に記憶されていない場合テクスチ
ャ・プリミティブ・データ用経路とは別のテクスチャ・
データ経路経由で主メモリからローカル・メモリへテク
スチャ・データをダウンロードする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般的に、テクス
チャ・マッピングを行うコンピュータ・グラフィックス
・システムに関するもので、特にテクスチャ・マッピン
グ・データを記憶するキャッシュ・メモリ・システムに
関するものである。
【0002】
【従来の技術】コンピュータ・グラフィックス・システ
ムは、2次元表示画面上でオブジェクトのグラフィック
表現を表示するために一般に使用される。現在のコンピ
ュータ・グラフィックス・システムは、高度に細密な表
現を提供することができ、種々のアプリケーションにお
いて使用されている。
【0003】典型的なコンピュータ・グラフィックス・
システムにおいては、表示画面に表現されるべきオブジ
ェクトは、複数のグラフィックス・プリミティブに分解
される。プリミティブは、グラフィックス・ピクチャの
基本コンポーネントであって、点、線、ベクトルおよび
三角形のような多角形を含む場合がある。典型的ハード
ウェア/ソフトウェア方式は、画面上に表現される1つ
または複数のオブジェクトの画像を表現するグラフィッ
クス・プリミティブを、2次元表示画面上にレンダリン
グ(rendering)または描画するように実施される。
【0004】レンダリングされるべき3次元オブジェク
トを定義するプリミティブは、典型的には、ホスト・コ
ンピュータによってプリミティブ・データとして定義さ
れ提供される。例えば、あるプリミティブが三角形であ
るとすれば、ホスト・コンピュータは、三角形の各頂点
のx,y,z座標および各頂点のR、G、Bカラー値と
して、そのプリミティブを定義する。レンダリング・ハ
ードウェアは、プリミティブ・データを補間して、各ピ
クセルを表現するため画面上オンにする表示画面ピクセ
ルおよび各ピクセルに関するR,G,B値を計算する。
【0005】初期のグラフィックス・システムは、複雑
な3次元のオブジェクトを表現またはモデル化する場合
十分に現実的な形態で画像を表示することができなかっ
た。そのようなシステムによって表示される画像は、極
端になめらかな表面をしていて、モデル化されたオブジ
ェクトに存在するテクスチャ、凹凸、スクラッチ、陰影
およびその他の表面細部に欠けていた。
【0006】このため、表面細部が改善された画像を表
示するいくつかの方法が開発された。テクスチャ・マッ
ピング手法はそのような方法の1つであって、これは、
先ず、テクスチャ(textureすなわち表面模様)と呼ばれ
るソース画像を3次元オブジェクトの面にマッピング
し、次に、その3次元オブジェクを2次元グラフィック
ス表示画面にマップして、その結果生成される画像を表
示する。一般にマップされたテクスチャの細部の面特性
は、カラー、鏡面反射、ベクトル摂動、反射、透明性、
陰影、表面不規則性および階調度を含む。
【0007】テクスチャ・マッピングは、テクスチャの
1つまたは複数のテクセル(texelすなわち点要素)を、
テクスチャがマップされる先のオブジェクトの表示部分
の点要素(すなわちピクセルまたは画素)に対応させる
ことを意味する。テクスチャ・マッピング・ハードウェ
アは、テクスチャ・マップにおけるテクセルがオブジェ
クトを表現する表示画面のピクセルに対応する形態を標
示する情報を伝統的に備えている。テクスチャ・マップ
における各テクセルは、2次元テクスチャ・マップにお
けるその位置を識別するSおよびT座標によって定義さ
れる。各ピクセル毎に、該ピクセルに対応する1つまた
は複数のテクセルが、テクスチャ・マップから取り出さ
れ、表示画面上でテクスチャ化されたオブジェクトを表
現するため該ピクセルに対して生成される最終的R,
G,B値と統合される。
【0008】オブジェクト・プリミティブのピクセルの
各々は、オブジェクトのあらゆる表現についてテクスチ
ャ・マップにおける単一のテクセルと1対1の対応関係
でマップすることはできない点理解されるべきである。
例えば、オブジェクトが表示画面上で表示される場合表
示位置に接近すればする程、オブジェクトは一層大きく
表現される。オブジェクトが表示画面上大きく表現され
る程、テクスチャの表現はより詳細になる。従って、オ
ブジェクトが表示画面の大部分を使う時、オブジェクト
を表示画面で表現するため多数のピクセルが使用され、
オブジェクトを表現する各ピクセルは、テクスチャ・マ
ップにおける1つのテクセルと1対1の対応関係をもっ
てマップされるか、あるいは、単1のテクセルが複数の
ピクセルに対応することもある。しかし、逆にオブジェ
クトが表示画面の相対的に小さい部分を占める時、オブ
ジェクトを表示画面で表現するため相対的に少ないピク
セルが使用され、テクスチャの表現は粗くなり、従っ
て、各ピクセルは複数のテクセルに対応することにな
る。テクスチャがオブジェクトの小さい部分にマップさ
れる場合、各ピクセルは、また、複数のテクセルにマッ
プされる可能性がある。この結果、典型的には、ピクセ
ルの各々毎に、複数のテクセルに対応し、かつ、そのピ
クセルへ対応するテクセルの平均を表すテクセル・デー
タが計算される。
【0009】典型的テクスチャ・マッピング・ハードウ
ェア・システムは、レンダリングされるオブジェクトに
関連するテクスチャを表現するデータを記憶するローカ
ル・メモリを含む。上述のように、1つのピクセルが複
数のテクセルに対応する場合がある。平均値を生成する
ためテクスチャ・マッピング・ハードウェアがローカル
・メモリから1つのピクセルに対応する多数のテクセル
を読み取らねばならないとすれば、多数のメモリ読み出
し動作と多数のテクセル値の平均算出演算が必要とな
り、これは時間浪費的であってシステム処理能力を低下
させる原因となるであろう。
【0010】この問題を解決するため、各テクスチャ毎
に一連のMIPマップを作成し、レンダリングされるテ
クスチャのMIPマップをテクスチャ・マッピング・ハ
ードウェアのローカル・メモリに記憶する方式が開発さ
れた。あるテクスチャに関するMIPマップは、テクス
チャ・マップに直接対応する基本マップならびにそれ以
外の一連のフィルタされたマップを含み、この場合、連
続するマップは前後で、2の自乗のサイズで減少する。
図1は1組のMIPマップの例を示す。(注:MIP
は、multum in parvoの頭文字をとったもので、「小さ
い場所の多数の事柄」を意味する)。図1のMIPマッ
プは、サイズ的に8×8テクセルである基本マップ10
0の他、それぞれサイズ4×4、2×2ならびに1×1
テクセルである一連のマップ102、104および10
8を含む。
【0011】4×4マップ102は、基本マップ100
をフィルタ(すなわち比例減少)することによって生成
されるが、具体的には、マップ102のテクセルの各々
は、基本マップ10の4個のテクセルの平均値に対応す
る。例えば、マップ102のテクセル110は、マップ
100のテクセル112ないし115の平均に等しく、
マップ102のテクセル118および120は、マップ
100のテクセル121ないし124の平均およびテク
セル125ないし128の平均にそれぞれ等しい。2×
2マップ104は、例えばマップ104のテクセル13
0がマップ102のテクセル110、118、119お
よび120の平均に等しくなるように、マップ102を
フィルタすることによって同様に生成される。マップ1
08の単一(1×1)テクセルは、マップ104の4つ
のテクセルを平均することによって生成される。
【0012】従来技術のグラフィックス・システムは、
一般的に、ホスト・コンピュータの主メモリからテクス
チャ・マッピング・ハードウェアのローカル・メモリ
へ、表示画面にレンダリングされるプリミティブに関し
て使用されるべきテクスチャに対する完全な一連のMI
Pマップをダウンロードする。従って、テクスチャ・マ
ッピング・ハードウェアは、一連のMIPマップのうち
のいずれのマップからもテクスチャ・データをアクセス
することができる。特定のピクセルについてテクセル・
データを提供するためどのマップにアクセスすべきか
は、当該ピクセルがマップするテクセルの数に基づいて
決定される。例えば、ピクセルがテクスチャ・マップの
単一のテクセルと1対1の対応関係でマップする場合
は、基本マップ100がアクセスされる。しかし、ピク
セルが、4、16または64のテクセルへマップすると
すれば、マップ102、104および108が、それぞ
れテクスチャ・マップの4、16、64個のテクセルの
平均を表すテクセル・データを保持しているので、それ
らのマップがそれぞれアクセスされる。
【0013】1つのピクセルが選択されたマップのどの
1つのテクセルにも直接対応せず、複数のテクセルの間
に落ちることがある。このような場合、グラフィックス
・システムによっては、テクセル・データを正確に生成
するため双線形補間(bilinear interpolation)を使う。
1つのピクセルが、1つのMIPマップの複数のテクセ
ル・エントリに対応する場合、使用されるテクセル・デ
ータは、最も近いテクセル・エントリの加重平均であ
る。このように、ピクセルに対応するテクセル・データ
は、単一のマップにおける4つのテクセル・エントリの
加重平均とすることができる。例えば、ピクセルがマッ
プ102の132で示される位置に対応する場合、その
ピクセルに対応するテクセル・データは、テクセル11
0、118、199および120の加重平均である。
【0014】また、ピクセルが一連のMIPマップのど
のマップにも直接対応せず、2つのマップの間に落ちる
こともある。例えば、あるピクセルが、テクスチャ・マ
ップの1より大で4未満の数のテクセルに対応すること
もある。このような場合、所望のテクセル・データを作
成するため、グラフィックス・システムによっては、2
つの近接するMIPマップの間で補間を行う。例えば、
上述のように、1つのピクセルがテクスチャ・マップの
1より大で4未満の数のテクセルに対応するような場
合、マップ100および102によって提供されるテク
セル・データが補間され、該ピクセルに関するテクセル
・データが作成される。単一のマップにおける複数のテ
クセル・エントリの上述の補間と組み合わせられる時、
この方式は、3線形補間(trilinear interpolation)と
して知られるもので、2つの近接するマップのそれぞれ
における4個の近接するテクセル、すなわち8個のテク
セルの加重平均として特定のピクセルに対する所望のテ
クセル・データを生成することができる。
【0015】
【発明が解決しようとする課題】上述のように、従来技
術のテクスチャ・マッピング・システムは、システムに
よってレンダリングされるべきプリミティブに関連する
いかなるテクスチャについても、一連のMIPマップを
(たとえ一部がアクセスされないとしても)すべてダウ
ンロードする。アクセスされないMIPマップのダウン
ロードは、アクセスされるマップのうちの使用されない
部分のダウンロードと共に、システム資源の浪費であ
り、その帯域幅(すなわちデータ伝送率)を減少させ
る。
【0016】更に、種々の動作が異なるオブジェクト・
プリミティブに関して同時に実行されるように、パイプ
ライン形態を実施するテクスチャ・マッピング・システ
ムもある。しかし、そのようなシスステムでは、1つの
テクスチャに関する一連のMIPマップが非常に大きく
なる可能性がある。大部分のシステムが使用するローカ
ル・メモリは、そのような大規模のMIPマップを1度
に1つしか記憶することができない。従って、プリミテ
ィブをレンダリングする際テクスチャの切り替えが行わ
れる場合、システムは新たな一連のMIPマップをダウ
ンロードしなければならない。新しいテクスチャ・デー
タをテクスチャ・マッピング・ハードウェアのローカル
・メモリにロードするために使用されるデータ経路は、
典型的には、システムのプリミティブ・レンダリング・
パイプラインを通過する。従って、新しいテクスチャを
マップする必要がある場合、新たな一連のMIPマップ
がダウンロードされる前にプリミティブ・レンダリング
・パイプラインをフラッシュ(flush)することができな
ければならない。一連のMIPマップがダウンロードさ
れたなら、パイプラインに再びデータを送らなければな
らない。このように、新しいテクスチャが必要とされる
度毎にプリミティブ・レンダリング・パイプラインをフ
ラッシュしなければならないので、システムの帯域幅が
低下する。
【0017】
【課題を解決するための手段】本発明の1つの実施形態
において、ホスト・コンピュータ、プリミティブ・レン
ダリング・ハードウェア、および、上記ホスト・コンピ
ュータと上記プリミティブ・レンダリング・ハードウェ
アの間に展開するテクスチャ・プリミティブ・データ経
路を含むコンピュータ・グラフィックス・システムにお
いてテクスチャ・マッピング・データを管理する方法が
提供される。上記ホスト・コンピュータは、対応するテ
クスチャ・マッピング・データを使用して上記システム
によってレンダリングされるべきテクスチャ・プリミテ
ィブを、上記テクスチャ・プリミティブ・データ経路を
経由して、上記プリミティブ・レンダリング・ハードウ
ェアに渡す。上記ホスト・コンピュータは、テクスチャ
・プリミティブに対応するテクスチャ・マッピング・デ
ータを記憶する主メモリを備える。上記プリミティブ・
レンダリング・ハードウェアは、レンダリングされるべ
きテクスチャ・プリミティブの少くとも1つに対応する
テクスチャ・マッピング・データをローカルに記憶する
ローカル・テクスチャ・メモリを備える。上記方法は、
(a)レンダリングされるべきテクスチャ・プリミティブ
の1つに対応するテクスチャ・マッピング・データが、
上記ホスト・コンピュータの主メモリに記憶されている
が上記ローカル・テクスチャ・メモリ内に記憶されてい
ない場合、該テクスチャ・プリミティブの1つをレンダ
リングする前に、該テクスチャ・プリミティブの1つに
対応するテクスチャ・マッピング・データを、上記テク
スチャ・プリミティブ・データ経路とは別個のテクスチ
ャ・マッピング・データ経路を経由して、上記ホスト・
コンピュータの主メモリから上記ローカル・テクスチャ
・メモリへダウンロードするステップを含む。
【0018】本発明の別の1つの実施形態に従って、ホ
スト・コンピュータ、プリミティブ・レンダリング・ハ
ードウェア、テクスチャ・プリミティブ・データ経路お
よびテクスチャ・データ経路を備えるコンピュータ・グ
ラフィックス・システムが提供される。上記ホスト・コ
ンピュータは、テクスチャ・プリミティブに対応するテ
クスチャ・マッピング・データを記憶する主メモリを備
え、該システムによってレンダリングされるべきプリミ
ティブをプリミティブ・レンダリング・ハードウェアに
提供する。上記プリミティブ・レンダリング・ハードウ
ェアは、上記ホスト・コンピュータから提供されるプリ
ミティブをレンダリングする機能を持ち、レンダリング
されるべきテクスチャ・プリミティブの少くとも1つに
対応するテクスチャ・マッピング・データを記憶するロ
ーカル・テクスチャ・メモリを備える。上記テクスチャ
・プリミティブ・データ経路は、上記ホスト・コンピュ
ータを上記プリミティブ・レンダリング・ハードウェア
に接続させ、対応するテクスチャ・マッピング・データ
を使用してレンダリングされるべきテクスチャ・プリミ
ティブが上記ホスト・コンピュータから上記プリミティ
ブ・レンダリング・ハードウェアに送られる経路として
機能する。上記テクスチャ・データ経路は、上記テクス
チャ・プリミティブ・データ経路とは別個の経路であっ
て、上記ホスト・コンピュータを上記プリミティブ・レ
ンダリング・ハードウェアに接続させ、上記テクスチャ
・マッピング・データが上記ホスト・コンピュータの主
メモリから上記プリミティブ・レンダリング・ハードウ
ェアのローカル・テクスチャ・メモリに送られる経路と
して機能する。
【0019】本発明の更に別の実施形態に従えば、ホス
ト・コンピュータ、プリミティブ・レンダリング・ハー
ドウェア、テクスチャ・プリミティブ・データ経路およ
びテクスチャ・データ・ダウンロード手段を備えるコン
ピュータ・グラフィックス・システムが提供される。上
記ホスト・コンピュータは、テクスチャ・プリミティブ
に対応するテクスチャ・マッピング・データを記憶する
主メモリを備え、該システムによってレンダリングされ
るべきプリミティブをプリミティブ・レンダリング・ハ
ードウェアに提供する。上記プリミティブ・レンダリン
グ・ハードウェアは、上記ホスト・コンピュータから提
供されるプリミティブをレンダリングする機能を持ち、
レンダリングされるべきテクスチャ・プリミティブの少
くとも1つに対応するテクスチャ・マッピング・データ
を記憶するローカル・テクスチャ・メモリを備える。上
記テクスチャ・プリミティブ・データ経路は、上記ホス
ト・コンピュータを上記プリミティブ・レンダリング・
ハードウェアに接続させ、対応するテクスチャ・マッピ
ング・データを使用してレンダリングされるべきテクス
チャ・プリミティブが上記ホスト・コンピュータから上
記プリミティブ・レンダリング・ハードウェアに送られ
る経路として機能する。上記テクスチャ・データ・ダウ
ンロード手段は、上記プリミティブ・データ経路を通ら
ずに、上記ホスト・コンピュータの主メモリから上記ロ
ーカル・テクスチャ・メモリへ上記テクスチャ・マッピ
ング・データをダウンロードする機能を有する。
【0020】
【発明の実施の形態】I. システム概要 図2は、テクスチャ・データをローカルに記憶するため
のキャッシュ・メモリを備えるテクスチャ・マッピング
・ハードウェアを含む本発明のグラフィックス・システ
ムの1つの実施形態のブロック図である。図示されてい
る実施例が、基板ならびにチップの数、細分化の形態、
バス幅およびデータ転送速度に関して単なる典型例にす
ぎないことは理解されるべきである。図示される以外の
その他多数の形態を実施することは可能であるる。図2
に示されているように、本システムは、フロントエンド
基板10、テクスチャ・マッピング基板12およびフレ
ーム・バッファ基板14を含む。フロントエンド基板
は、52ビット幅バス16を経由してホスト・コンピュ
ータ15と通信する。フロントエンド基板は、レンダリ
ング(描画)すべきプリミティブを、バス16経由でホ
スト・コンピュータから受け取る。プリミティブは、
x,y,zベクトル座標データ、R,G,Bカラー・デ
ータおよびテクスチャS,T座標によって指定される。
これらデータは、すべて、例えばプリミティブが三角形
であれば頂点のようなプリミティブの部分に関するデー
タである。次に、プリミティブを3次元で表すデータ
が、フロントエンド基板10によって、テクスチャ・マ
ッピング基板12およびフレーム・バッファ基板14に
対して85ビット幅バス18を経由して与えられる。テ
クスチャ・マッピング基板は、プリミティブを表現する
画面表示ピクセルを計算するため受け取ったプリミティ
ブ・データを補間し、該プリミティブのピクセル毎に対
応するテクスチャ・データを決定する。計算結果のテク
スチャ・データは、図2では単純化のため1本線として
示されている5本の55ビット幅バス28を経由してフ
レーム・バッファ基板に送られる。
【0021】フレーム・バッファ基板14もまた、フロ
ントエンド基板10から受け取ったプリミティブ・デー
タを補間し、各プリミティブを表現する表示画面上のピ
クセルを計算し、各ピクセル毎にオブジェクトのカラー
を決定する。次に、フレーム・バッファ基板は、上記オ
ブジェクト・カラー値をテクスチャ・マッピング基板か
ら送られたテクスチャ・データとピクセル毎に結合し
て、各ピクセル毎に画像R,G,Bを生成する。表示画
面(図示されてない)のピクセルを制御するため各ピク
セルに関するR,G,Bカラー制御信号が、R,G,B
ライン29経由でそれぞれ与えられ、テクスチャ・マッ
プ・プリミティブを表現する画像が表示画面上に表示さ
れる。
【0022】フロントエンド基板10、テクスチャ・マ
ッピング基板12およびフレーム・バッファ基板14の
各々はパイプライン化され、複数のプリミティブに対し
て同時に動作する。テクスチャ・マッピングおよびフレ
ーム・バッファ基板が、フロントエンド基板によって前
に提供されたプリミティブに対して動作を行う際、フロ
ントエンド基板は、基板12および14のパイプライン
がいっぱいにならない限り、新しいプリミティブに対し
て動作し基板12および14へ提供し続ける。フロント
エンド基板10は、分配器チップ30、3次元(3D)
加速器チップ32A、32Bならびに32C、2次元
(2D)加速器チップ34および集線器チップ36を含
む。分配器チップ30は、X,Y,Z座標およびカラー
・プリミティブ・データをバス16経由でホスト・コン
ピュータから受け取り、3次元プリミティブ・データを
3次元加速器チップ32A、32Bおよび32Cに均等
に分配する。このような形態で、3つのグループのプリ
ミティブが同時に処理されることによって、システムの
帯域幅が増加される。データは、40ビット幅バス38
Aを経由して3次元加速器チップ32Aおよび32Bに
送られ、40ビット幅バス38Bを経由してチップ32
Cに送られる。バス38Aおよび38Bは、60MHZ
の伝送率でデータを伝送し、2つの3次元加速器チップ
をサポートするために十分な帯域幅を提供する。2Dプ
リミティブ・データは、44ビット幅バス40を経由し
て40MHZの伝送率で2D加速速器チップ34へ送ら
れる。
【0023】3次元加速器チップの各々は、受け取った
プリミティブを定義するx,y,z座標を、対応する画
面空間座標に変換し、画面空間座標に対するオブジェク
トR,G,B値およびテクスチャS,T値を決定し、プ
リミティブの四辺形を三角形へ分解し、各三角形を定義
するため三角形平面方程式を計算する。各3次元加速器
チップは、また、複数ウィンドウが表示される時、ある
いは、プリミティブの一部が表示画面上に表される視野
を越えて広がる時、画像の正確な画面表示を確実にする
ため視野クリッピング動作を実行する。3次元加速器3
2Aおよび32Bからの出力データは44ビット幅バス
42Aを経由して、また3次元加速器32Cからの出力
データは44ビット幅バス42Bを経由して、それぞ
れ、集線器チップ36へ60MHZの伝送率で送られ
る。2次元加速器34からの出力データは46ビット幅
バス44を経由して集線器チップ36へ40MHZの伝
送率で送られる。集線器チップ36は、3次元加速器チ
ップ32A−32Cから受け取った3次元プリミティブ
出力データを結合し、分配器チップ30による分配の前
の元の順序にプリミティブを配列し直し、結合したプリ
ミティブ出力データをバス18を経由してテクスチャ・
マッピング基板およびフレーム・バッファ基板に送る。
【0024】テクスチャ・マッピング基板12は、テク
スチャ・マッピング・チップ46、および、好ましくは
キャッシュ・メモリとして構成されるローカル・メモリ
48を備える。本発明の1つの好ましい実施形態におい
て、ローカル・メモリは、後述の理由から、複数のSD
RAMチップ(すなわち同期ダイナミックRAM)から
形成される。詳細は後述するが、キャッシュ・メモリ4
8は、フレーム・バッファ基板においてレンダリングさ
れるプリミティブに関連するテクスチャMIPマップ・
データを記憶する。テクスチャMIPマップ・データ
は、ホスト・コンピュータ15の主メモリ17から、バ
ス40を経由して、2D加速器チップ34を通過し、2
4ビット幅バス24を経由して、キャッシュ・メモリ4
8にダウンロードされる。
【0025】テクスチャ・マッピング・チップ46は、
表示画面上で描画(レンダリング)されるべきプリミテ
ィブを表すプリミティブ・データをバス18経由で連続
的に受け取る。上述のように、3次元加速器チップ32
A−32Cから送られるプリミティブは、点、線分およ
び三角形を含む。テクスチャ・マッピング基板は、点ま
たは線分に関してはテクスチャ・マッピングを実行せ
ず、三角形プリミティブについてのみ実行する。三角形
プリミティブを表現するデータは、少くとも1つの頂点
に関するx,y,zオブジェクト・ピクセル座標、少く
とも1つの頂点のオブジェクト・カラーR,G,B値、
少くとも1つの頂点に対応するテクスチャ・マップ部分
のS,T座標、および三角形の平面方程式を含む。テク
スチャ・マッピング・チップ46は、オブジェクト・ピ
クセルz座標およびオブジェクト・カラーR,G,B値
を無視する。チップ46は、x,yピクセル座標を補間
し、プリミティブを表現する各x,y画面表示ピクセル
に対応するSおよびT座標を補間する。各ピクセル毎
に、テクスチャ・マッピング・チップは、ピクセルに対
応するテクスチャMIPマップ部分をキャッシュ・メモ
リから取り出し、複数のテクセルの加重平均を含むテク
スチャ・データを該ピクセルについて計算する。
【0026】1つの典型的実施形態において、キャッシ
ュは1ブロックが256×256テクセルからなる64
ブロックのテクセルを記憶する。従来技術のシステムの
テクスチャ・マッピング・ハードウェアで使われるロー
カル・メモリと異なって、本発明のキャッシュ・メモリ
は、レンダリングされるプリミティブに対応する(大規
模な)テクスチャの一連のMIPマップ全体を記憶しな
くてもよい。むしろ、本発明のキャッシュ・メモリは、
ある1時点をとると、その時点でプリミティブをレンダ
リングする場合一連のMIPマップの実際に使用される
特定部分のみを記憶する。従って、ほとんどのアプリケ
ーションの場合、ある1時点で、全テクスチャ・データ
のうちレンダリングされる画像に関する部分だけがキャ
ッシュ・メモリに記憶される。
【0027】各テクスチャに関する完全な一連のMIP
マップは、ホスト・コンピュータ15の主メモリ17に
記憶される。レンダリングされるプリミティブの各ピク
セルについて、テクスチャ・マッピング・チップ46
は、キャッシュ・メモリ48のディレクトリにアクセス
して、テクスチャMIPマップの対応する1つまたは複
数のテクセルが現在キャッシュに存在するか否かを判断
する。対応するテクセルがアクセス時点でキャッシュ・
メモリに存在する場合、キャッシュ・ヒット(cache hi
t)が発生し、テクセルがキャッシュ・メモリから読み取
られ、テクスチャ・マッピング・チップ46によってフ
レーム・バッファ基板に渡されるテクスチャ・データが
計算される。
【0028】しかし、プリミティブ・ピクセルについて
対応するテクセルがアクセス時点で存在しない場合、キ
ャッシュ・ミス(cache miss)が発生する。キャッシュ・
ミスが発生すると、プリミティブをレンダリングするた
めに必要とされるテクスチャMIPマップ部分データ
が、ホスト・コンピュータ15の主メモリ17からキャ
ッシュ・メモリ48へダウンロードされ、既に記憶され
ているなにがしかのデータを置き換えることになろう。
しかしながら、レンダリングされるプリミティブに関す
る一連のMIPマップ全体をダウンロードする従来技術
のテクスチャ・マッピング・システムと異なって、本発
明は、現時点でプリミティブをレンダリングする場合一
連のMIPマップの実際に使用される特定部分または現
時点でレンダリングされている部分のみをダウンロード
する。詳細は後述するが、キャッシュ・ミスが発生する
と、ホスト・コンピュータ15のテクスチャ割り込み管
理機構を始動する割込み制御信号が、テクスチャ・マッ
ピング・チップ46によって生成される。割込み制御信
号は、ライン94を経由して分配器チップ30へ送ら
れ、次に、ライン95を経由してホスト・コンピュータ
へ送られる。
【0029】要求されたテクスチャ・データが、ホスト
・コンピュータによって主メモリから読み出され、3D
プリミティブ・レンダリング・パイプラインをバイパス
して、バス24経由でテクスチャ・マッピング基板のメ
モリ48へダウンロードされる。このように、キャッシ
ュ・ミス割込みが発生する時、キャッシュ・ミスを引き
起こしたプリミティブに関連するテクスチャ・データが
主メモリ17からダウンロードされている間、フロント
エンド基板が、3次元プリミティブに関する動作を継続
し、テクスチャ・マッピング・チップおよびフレーム・
バッファ基板へバス18を経由してプリミティブ・デー
タを出力することができる。従来技術のテクスチャ・マ
ッピング・システムと対照的に、テクスチャ・マッピン
グ・ハードウエアへのテクスチャ・データのダウンロー
ドが3次元プリミティブ・パイプラインのフラッシング
を必要としないので、システムの帯域幅および処理能力
が向上する。各ピクセルに関するテクスチャ・データ
は、テクスチャ・マッピング・チップ46によって、5
本のバス28を経由してフレーム・バッファ基板へ送ら
れる。5本のバス28は、フレーム・バッファ基板に備
えられる5つのフレーム・バッファ制御器チップ50
A、50B、50C、50Dおよび50Eにそれぞれ接
続され、それらフレーム・バッファ制御器チップに、計
算結果のテクスチャ・データが並列的に送られる。フレ
ーム・バッファ制御器チップ50A−50Eは、それぞ
れ対応するVRAM(ビデオ・ランダム・アクセス・メ
モリ)チップ51A−51Eグループに接続される。更
にフレーム・バッファ基板は、4つのビデオ形式チップ
(52A、52B、52Cおよび52D)およびRAM
DAC(ランダム・アクセス・メモリ・デジタル・アナ
ログ変換器)54を含む。フレーム・バッファ制御器チ
ップは、表示画面の異なる非上重ねセグメントを制御す
る。各フレーム・バッファ制御器チップは、バス18経
由でフロントエンド基板からプリミティブ・データを、
そして、バス28経由でテクスチャ・マッピングから計
算結果のテクスチャ・マッピング・データを受け取る。
フレーム・バッファ制御器チップは、プリミティブ・デ
ータを補間して、それぞれの対応するセグメントに関す
る画面表示ピクセル座標、および各ピクセル座標に関し
て対応するオブジェクトR,G,Bカラー値を計算す
る。テクスチャ・マッピング基板から計算結果のテクス
チャ・データが渡される(例えば三角形のような)プリ
ミティブについて、フレーム・バッファ制御器チップ
は、ピクセル毎にオブジェクト・カラー値と計算結果の
テクスチャ・データを結合して、表示画面上で表示され
るべき最終的R,G,B値をピクセル毎に生成する。
【0030】オブジェクトとテクスチャ・カラー値の結
合は、多くの異なる形態で制御することができる。例え
ば、置き換えモードでは、オブジェクト・カラー値が、
単純にテクスチャ・カラー値によって置き換えられ、テ
クスチャ・カラー値だけがピクセルのレンダリングに使
用される。別の形態の調整モードでは、オブジェクトと
テクスチャ・カラー値が乗じられピクセルに関する最終
的R,G,B値が生成される。更に、対応するテクスチ
ャ・カラー値とオブジェクト・カラー値との組み合わせ
方法を定める比率を指定するカラー制御ワードを各テク
セルについて記憶することもできる。カラー制御ワード
は、各ピクセルに対応するテクセル・データに関して決
定され、フレーム・バッファ制御器チップにバス28経
由で渡されるので、制御器チップは対応する制御ワード
によって指定された比率を使用して最終的R,G,B値
を各ピクセル毎に決定することができる。
【0031】フレーム・バッファ制御器チップ50A−
50Eによって生成され、各ピクセルのR,G,B値を
含む画像ビデオ・データが対応するVRAMチップ51
A−51Eに記憶される。VRAMチップ51A−51
Eの各グループは、40個のVRAMチップがフレーム
・バッファ基板上に配置されるように、8つのVRAM
チップを含む。ビデオ形式チップ52A−52Dの各々
は、異なるセットの10個のVRAMチップに接続さ
れ、そこからデータを受け取る。ビデオ・データは、V
RAMチップから順次シフトされ、64ビット幅バス5
8A、58B、58Cおよび58Dを経由して4つのビ
デオ形式チップ52A、52B、52Cおよび52Dへ
33MHZ伝送率でそれぞれ送られる。ビデオ形式チッ
プは、RAMDACが処理できるような形式にビデオ・
データを変換して、形式化データを、32ビット幅バス
60A、60B、60Cおよび60Dを経由して33M
HZ伝送率でRAMDAC54へ送る。次に、RAMD
AC54は、デジタル・カラー・データをアナログR,
G,Bカラー制御信号に変換し、各ピクセルに関する
R,G,B制御信号を、R,G,B制御ライン29を介
して表示画面に送る。
【0032】本発明の1つの実施形態において、特定の
プリミティブ・レンダリング・タスクが複数のプリミテ
ィブに関して並列的に実行されるように、テクスチャ・
マッピング基板12およびフレーム・バッファ基板14
に関するハードウェアが反復配置され、これによって、
システムの帯域幅が拡大される。そのような代替的実施
形態の1例が図3に示されている。図3は、特定のハー
ドウエアが複製されている本発明のコンピュータ・グラ
フィックス・システムのブロック図である。図3のシス
テムは、4つの3次元加速器チップ32A、32B、3
2Cおよび32D、キャッシュ・メモリ48Aならびに
48Bとそれぞれ連動する2つのテクスチャ・マッピン
グ・チップ46Aならびに46B、および、各々が対応
するVRAMチップを持つ10個のフレーム・バッファ
・チップ50A−50Jを含む。図3のシステムの動作
は、図2のシステムのそれに類似している。図3の実施
形態におけるハードウェアの反復配置によって、特定の
プリミティブ・レンダリング・タスクが複数のプリミテ
ィブに関して並列的に実行されるためシステムの帯域幅
が増大する。
【0033】II. テクスチャ・マッピング・チップの概
図4は、テクスチャ・マッピング・チップ46のブロッ
ク図である。チップ46は、オブジェクトおよびテクス
チャ・プリミティブ・データをフロントエンド基板から
64ビット幅バス18経由で受け取るフロントエンド・
パイプライン・インターフェース60を含む。テクスチ
ャ・マッピング・チップ上で処理される三角形プリミテ
ィブは最高52個の32ビット・デジタル・ワードによ
って定義されるが、異なる長さのワードによって定義す
ることもできる。パイプライン・インターフェースは、
一組のマスター・レジスタと一組の対応するスレーブ・
レジスタを含む。レンダリングの間、マスター・レジス
タは、プリミティブを定義する52個のデジタル・ワー
ド・データで逐次満たされる。次に、適切なレンダリン
グ・コマンドを受領すると、データは、パイプライン・
インターフェースのスレーブ・レジスタにシフトされ、
これによって、マスター・レジスタはパイプライン方式
で別のプリミティブを表現するデータで満たされる。バ
ス18経由で提供されるプリミティブ・データは、x,
y,zベクトル座標データ、少なくとも1つの三角形頂
点に関するS,Tテクスチャ座標ならびにR,G,Bオ
ブジェクト・カラー・データ、および三角形平面方程式
を表すデータを含む。上述のように、テクスチャ・マッ
ピング・チップは、オブジェクト・ピクセルz座標およ
びオブジェクト・カラーR,G,B値を無視し、その他
のデータだけをフロントエンド・パイプライン・インタ
ーフェース60に記憶する。
【0034】パイプライン・インターフェース60のス
レーブ・レジスタは、バス62経由でパラメータ補間器
回路64へプリミティブ・データを転送する。パラメー
タ補間器回路64は、各プリミティブ三角形を補間し
て、三角形を表現する各表示画面ピクセル座標につい
て、ピクセルにマップするS,Tテクスチャ・マップ座
標、および、SならびにT勾配値を決定する。Sならび
にT勾配は、それぞれ、隣接するピクセルの間でのSな
びにT座標の変化に等しく、以下に説明される方法で計
算される。
【0035】パラメータ補間回路64は、図5を用いて
詳細は後述するが、辺ステッパ(edge steper)66、F
IFO(先入れ先出し)バッファ68、スパン・ステッ
パ(span stepper)70、勾配ならびに釣り合い補正回路
72を全て逐次接続形態で含む。辺ステッパは、三角形
頂点の1つのx,yピクセル座標で開始し、三角形平面
方程式を利用して、三角形の辺を辿って、三角形の辺を
定義するピクセル座標を決定する。各ピクセル座標につ
いて、テクスチャ・マップにおけるどのテクセルが各表
示画面ピクセル座標に対応するかを識別するように、三
角形頂点のS,T値に基づいてテクスチャ・マップのS
ならびにT座標が決定される。ピクセルおよびテクセル
座標は、一時的にFIFOバッファに記憶され、次にス
パン・ステッパに渡される。三角形の辺に沿った各x,
yピクセル位置毎に、スパン・ステッパは三角形の対応
する(x、y間の)スパンに沿って進み、該スパンに沿
ったピクセル位置のそれぞれについてS,Tテクセル座
標を決定する。
【0036】もしも、ピクセルが、テクスチャに関する
一連のMIPマップの中の1つにおける単一のテクセル
と1対1の対応関係を持たない場合、表示画面ピクセル
に対するSならびにT座標の各々は、整数部分と小数部
分を持つであろう。上述のように、テクスチャ・マップ
と対応付けされる時、各表示画面ピクセルが、テクスチ
ャに関する一連のMIPマップの1つにおける複数のテ
クセルの間に落ちることがあり、更に、一連のMIPマ
ップのサイズ的に隣接するMIPマップの間に落ちるこ
ともある。
【0037】勾配および釣り合い補正回路72は、各表
示画面ピクセルに対するSおよびTの勾配値(ΔSおよ
びΔT)を決定する。本発明の1つの実施形態におい
て、勾配ΔSは、勾配ΔSxと勾配ΔSyのいずれか大
なる方であるように選択される。ここで、勾配ΔSx
は、表示画面上の隣接ピクセルの間でx座標が変化する
につれて変わるテクスチャ・マップにおけるS座標の変
化であり、勾配ΔSyは、表示画面上の隣接ピクセルの
間でy座標が変化するにつれて変わるテクスチャ・マッ
プにおけるS座標の変化である。勾配ΔTも同様に計算
される。1つの表示画面ピクセルに関するΔSおよびΔ
Tは、表示画面上のピクセルの対応するS,T軸での変
化に対するテクスチャ・マップ内の座標位置の変化率を
示し、ピクセルに対するテクスチャ・データを作成する
ため、どのMIPマップがアクセスされなければならな
いかを決定するために使用される。例えば、表示画面ピ
クセルについて2に等しい勾配は、ピクセルが4つの
(すなわち、後述されるように22の)テクセルにマップ
することを示して、当該ピクセルに関するテクスチャ・
データを提供できるように基本マップからサイズ的に2
だけ減じられたMIPマップ(例えば図1のマップ10
2)をアクセスしなければならない。かくして、勾配が
増加するにつれて、ピクセルに対するテクスチャ・デー
タを提供するためアクセスされるMIPマップのサイズ
は減少する。
【0038】本発明の1つの実施形態において、各ピク
セルに対する適切なMIPマップを選択するため、勾配
が当該ピクセルに関するΔSx、ΔSy、ΔTxおよび
ΔTyの最大値に等しくなるように、ΔSおよびΔTの
大なる方に等しい単一の傾斜が使用される。しかし、勾
配は、例えば上記の値の最小値、それら平均値あるいは
その他の組合せを選択することによって、異なる形態で
代替的に選択することも可能であることは理解されるべ
きであろう。S,T座標の1つだけの変化率を示す単一
の勾配が選択されるので、その勾配の平方値は、対応す
るピクセルにマップするテクセルの数を表す。
【0039】勾配を使用して、パラメータ補間回路はピ
クセルが対応する最も近いマップと、ピクセルがそのマ
ップに直接対応するものからどれほど離れているかを示
す値を決定する。最も近いマップは、マップ番号の整数
部分によって識別され、ピクセルがそのマップに直接対
応するものからどれほど離れているかを示す値は、マッ
プ番号の小数部によって識別される。
【0040】再び図4のテクスチャ・マッピング・チッ
プのブロック図を参照して説明すれば、パラメータ補間
回路64からのテクセル・データ出力が、ライン70経
由でタイル作成器/境界検査器(tiler and boundary ch
ecker)72に送られ、そこで、テクセル・データによっ
て指定されるテクスチャ・マップの各々の位置に最も近
い4つのテクセルのアドレスが決定され、それらテクセ
ルの各々がテクスチャ境界の内部にあるか否かが検査さ
れる。テクセル・データは、補間されたS、Tマップ座
標(整数値と小数値)、およびマップ番号ならびにマッ
プ小数を含む。タイル作成器は、SおよびT座標の整数
部分がパラメータ補間回路6によって計算された整数を
使用し、各々の整数部に1を加えて4つの最も近いテク
セルのアドレスを生成する。次に、境界検査器が、それ
ら4つのテクセルのいずれかのS,T座標がテクスチャ
・マップの境界の外側に落ちるか否かを判断する。もし
もある表示画面ピクセルが、テクスチャ・マップの境界
の外側に落ちるS,T座標位置に対応する場合、いくつ
かのマッピング・テクスチャ方式の1つによって、その
ピクセルについてテクスチャ・データを生成すべきか、
またそのデータをどのように生成すべきかが決定され
る。そのような方式の例には、ラッピング(wrapping、
すなわちテクスチャの繰り返し)、ミラーリング(mirr
oring、すなわちテクスチャの鏡画像の繰り返し)、境
界の外側にあるテクスチャ・マッピングの取り消し、お
よび、境界外での同一調カラー表示などが含まれる。
【0041】境界を越えたテクスチャ・マップ位置にピ
クセルをマップすることを可能にすることによって、テ
クスチャをオブジェクト・プリミティブにマップする方
法に柔軟性が与えられる。例えば、テクスチャがオブジ
ェクトの複数部分にマップされるように、反復動作でテ
クスチャをオブジェクトにマップすることが望ましい場
合がある。例えば、[0, 0]から(10,10)までの範囲の
S,T座標を持つテクスチャが定義される場合、ユーザ
は、そのような範囲のS,T座標へマップするようにオ
ブジェクトの特定部分を指定することができる。上記に
おいて、記号[ ]は、指定する範囲が括弧内座標を含
み、記号( )は括弧内座標を含まないことを表し、以
下においても同様の表記法を使用する。ラッピング機構
がテクスチャの境界の外側に落ちるS,T座標について
動作するように選択される場合、[10,10]から(20, 20)
までのS,T座標を持つピクセルは、[10, 10]から(20,
20)までのS,T座標にあるテクセルにそれぞれ対応す
るであろう。
【0042】上述のように、1つのピクセルに関して2
次元テクスチャ・マップから得られるテクスチャ・デー
タは、8つのテクセル、すなわち最も近い2つのMIP
マップにおける最も近い4つのテクセルが結合された結
果である。8つのテクセルを結合してテクセル・データ
を生成する多数の方法がある。例えば最も近いマップに
おける最も近い単一のテクセルを選択することによっ
て、平均算出の必要性をなくすことができる。別の方法
として、最も近い2つのマップそれぞれの最も近い単一
のテクセルが、勾配値に基づいて平均される。このよう
な方法は、8つの最も近いテクセルの平均値が計算され
る場合のように正確にテクチャをマップしない。
【0043】本発明の1つの実施形態においては、単一
ピクセルに関するテクスチャ・データを8つのテクセル
の加重平均として計算する3線形補間法(trilinear int
erpolation)が利用される。テクスチャ・データをアク
セスする最も近い2つのMIPマップを識別するため
S,Tの変化率を表す勾配が使用され、各々のマップ内
の最も近い4つのテクセルがアクセスされる。表示画面
ピクセルがマップするMIPマップの位置のS,T座標
に最も近いテクセルに基づいて、各マップ内の4つのテ
クセルの平均が加重される。該ピクセルに関するS、T
座標の小数部分が、この加重を実行するために使用され
る。次に、最も近い2つのMIPマップ各々の上記平均
値が、勾配値に基づいて加重される。この加重プロセス
における使用のため、勾配を基に小数値が計算される。
例えば、値3の勾配は、勾配2および勾配4にそれぞれ
対応するMIPマップの中間にある。
【0044】テクセル補間プロセスは、テクセル補間回
路76によって実行される。各表示画面ピクセルに関す
るSおよびT座標の小数部分は、タイル作成/境界検査
器を経由して、パラメータ補間回路からテクセル補間回
路76へライン74を介して送られる。テクセル補間回
路は小数部分を使用して、複数のテクセルの各々に与え
られる加重を決定し、所望のテクセル・データを計算す
る。
【0045】上述のように、レンダリングされるプリミ
ティブに関連するテクスチャMIPマップは、ローカル
・キャッシュ・メモリ48(図2)に記憶される。本発
明の1つの実施形態において、キャッシュは完全連想型
である。キャッシュは、各インターリーブに2つのSD
RAMチップが配置される構成で、全体として4つのイ
ンターリーブに区分けされる8つのSDRAMチップを
含む。各インターリーブ内のSDRAMチップが同時に
アクセスされるように各インターリーブに対応して1つ
宛計4つのコントローラが備えられる。各SDRAMチ
ップは2つのメモリ・バンクを含む。上記メモリ・バン
クにおいては、従来技術のDRAMの場合に起きるよう
な2つの異なるページ(すなわち2つの異なる行アドレ
ス)からデータを取り出すことに一般に関連する再ペー
ジングの負荷を伴うことなく、メモリの異なるページを
連続的読取りサイクルでアクセスすることができる。
【0046】テクスチャ・データ(すなわち、MIPマ
ップ)は、各々が256×256のテクセルを含むテク
セル・データ・ブロックに分割される。キャッシュ・メ
モリは、一時点で64個のデータ・ブロックを記憶する
ことができる。各ブロックは、ブロックをユニークに識
別するブロック・タグを持つ。キャッシュは、キャッシ
ュに現在記憶されているデータ・ブロックに対応するブ
ロック・タグを記憶するディレクトリ78を含む。詳細
は後述するが、ブロック・タグの各々は、データ・ブロ
ックが表現する特定のテクスチャを識別するテクスチャ
識別子(すなわちテクスチャID)、当該テクスチャの
一連のマップの中からデータ・ブロックが表す特定のM
IPマップを識別するマップ番号、および、該特定マッ
プ内の上記データ・ブロックの位置を識別する高位Sな
びにT座標を含む。キャッシュ・ディレクトリ内のブロ
ック・タグの物理的位置が、キャッシュ・メモリ内にお
ける対応するデータ・ブロックの位置を表す。
【0047】異なるテクスチャを区別するテクスチャ識
別子を用いて、複数のテクスチャのMIPマップをキャ
ッシュ・メモリに同時に記憶することもできる。一部の
MIPマップが256×256未満のテクセルを含むこ
ともあり、この場合データ・ブロックの一部は使用され
ない。例えば、一連のMIPマップの小さい方のマッ
プ、または小さいテクスチャの場合大きい方のマップで
も、256×256個のテクセルを越えないことがあ
る。メモリ空間を有効に活用するため、各マップ部分が
ブロック内のサブブロックに割り当てられるように、複
数のマップ部分がテクスチャ・データの1つのブロック
内に記憶されるようにすることもできる。1つのブロッ
ク内に記憶される複数のマップの各々は、ブロック内の
マップの位置を識別するサブテクスチャ識別子(ID)
を持つ。
【0048】レンダリングの間、タイル作成/境界検査
器72は、レンダリングされるピクセルに対応するテク
スチャ・データ・ブロックに関する読取りキャッシュ・
タグを生成する。タグを生成する方法の詳細は後述す
る。タグは、テクスチャ・データのテクスチャIDを表
す8ビット、テクスチャ・データのマップ番号を決定す
る際に使用される1ビット、および、テクスチャ・デー
タの高位7ビットのSならびにT座標を含む23ビット
のフィールドである。キャッシュ・ディレクトリ78
は、タイル作成/境界検査器から送られる読み取りキャ
ッシュ・タグをディレクトリに記憶されているブロック
・タグと比較して、レンダリングの際に使用されるべき
テクスチャ・データ・ブロックがキャッシュ・メモリに
存在するか否かを判断する。レンダリングされるべきプ
リミティブに対応するテクスチャ・データ・ブロックが
キャッシュ・メモリに記憶されている場合(すなわちキ
ャッシュ・ヒットの場合)、キャッシュ・ディレクトリ
は、ヒットしたタグに対応するキャッシュ内のテクスチ
ャ・データ・ブロックの物理的位置を標示するブロック
・インデックスを生成する。ブロック・インデックスの
計算の詳細は後述する。キャッシュから読み取られるべ
き各テクセルについて、ブロック内のテクセルの位置を
標示するテクセル・アドレスがまたタイル作成/境界検
査器72によって生成される。テクセル・アドレスは、
より大きいサイズ・マップに関する補間されたS,T座
標の低位アドレス・ビットを含み、より小さいサイズの
マップに関して以下に記述されるアルゴリズムに基づい
て計算される。ブロック・インデックスおよびテクセル
・アドレスはともに、キャッシュ内のテクセルの位置を
示すキャッシュ・アドレスを含む。詳細は後述するが、
4つのインターリーブのどこにテクセルが記憶されてい
るかを決定するため、各テクセルに関するSならびにT
座標のLSB(すなわち最下位ビット)がデコ―ドさ
れ、キャッシュ・アドレスの残りのビットは、コマンド
と共に、ライン84経由でテクセル・キャッシュ・アク
セス回路82へ送られ、キャッシュ内の上記アドレス位
置に記憶されているテクセル・データが読み取られる。
【0049】読取りキャッシュ・タグがキャッシュ・デ
ィレクトリに記憶されてるブロック・タグのいずれとも
一致しない場合、すなわちキャッシュ・ミスが発生する
場合、キャッシュ・ディレクトリ78は、ライン94
(図2)経由でフロントエンド基板上に対して割込み制
御信号を生成し、これに応答して、分配器チップ30が
ライン95経由でホスト・コンピュータ15に対する割
り込みを生成する。割り込みに応答して、ホスト・コン
ピュータのプロセッサ19が、サービス・ルーチン(詳
細は後述)を実行することによって、キャッシュ・ミス
のあったブロック・タグをキャッシュ・ディレクトリか
ら読み取り、フロントエンド基板10およびテクスチャ
・マッピング・チップ46における3次元プリミティブ
・パイプラインをバイパスする形態で、テクスチャ・デ
ータの対応するブロックをキャッシュ・メモリにダウン
ロードする。主メモリからダウンロードされたテクスチ
ャ・データは、バス24経由で(図4の)テクセル・ポ
ート92を通ってテクセル・キャッシュ・アクセス回路
82へ送られ、キャッシュ・メモリを形成するSDRA
Mへ書き込まれる。
【0050】キャッシュ・ミスが発生する時、テクスチ
ャ・マッピング・チップは、ミスが発生したプリミティ
ブの処理を進める前に、新しいテクスチャ・データがダ
ウンロードされるのを待つ。しかしながら、キャッシュ
読み取りに続くパイプラインの処理段階は、ミスのあっ
たプリミティブに先行して受け取ったプリミティブを処
理し続ける。同様に、キャッシュ読み取りに先行するパ
イプラインの処理段階は、新しいテクスチャ・データの
ダウンロードを待っている間、パイプラインがいっぱい
にならない限り、キャッシュ読み取り動作の背後でプリ
ミティブの処理を続行する。
【0051】レンダリングの間、フレーム・バッファ基
板14におけるパイプラインの後の方の処理段階は、対
応するテクスチャ・データがテクスチャ・マッピング基
板から受け取られるまで、プリミティブの処理を進めな
い。従って、キャッシュ・ミスが発生して、テクスチャ
・マッピング・チップが新しいテクスチャ・データのダ
ウンロードを待つ時、フレーム・バッファ基板14は、
同様に、テクスチャ・マッピング・チップから送られて
くるテクスチャ・データを待つ。テクスチャ・マッピン
グ・チップの場合と同様に、テクスチャ・マッピング・
データの受け取り段階に続くパイプラインの処理段階
は、キャッシュ・ミスのあったプリミティブに先立って
受け取ったプリミティブの処理を続行し、テクスチャ・
マッピング・データを受け取る段階に先行するパイプラ
インの処理段階はパイプラインがいっぱいにならない限
りプリミティブの処理を続行する。
【0052】キャッシュ・ミスに応答して新しいテクス
チャ・データを待つ時テクスチャ・マッピング基板また
はフレーム・バッファ基板いずれかのパイプラインが待
機する場合、フロントエンド基板10のパイプラインも
また同様に待機するする点は理解されるべきであろう。
キャッシュ・ミスの発生によって、ホスト・コンピュー
タの主メモリへのアクセスおよびテクスチャ・データの
ダウンロードを完了するにはいくつかのサイクルがかか
るので、フレーム・バッファ基板のパイプラインが待機
させられたことによってテクスチャ・マッピング・チッ
プのパイプラインが待機する必要がないことを確認する
ことが望ましい。従って、本発明の1つの実施形態にお
いては、フレーム・バッファ基板が、テクスチャ・マッ
ピング基板より深いプリミティブ・パイプラインを備え
るように構成され、それにより、フレーム・バッファ・
パイプラインが使用可能になるのを待つことによるテク
スチャ・マッピング・パイプラインの遅延がなくなる。
【0053】本発明の1つの実施形態では、上記の機能
を備えさせるため、テクスチャ・マッピング機能がオフ
にされる。これは、ホスト・コンピュータのプロセッサ
19上でソフトウェアを操作して、テクスチャ・マッピ
ング基板12およびフレーム・バッファ基板におけるレ
ジスタを設定することによって達成される。テクスチャ
・マッピングがオフに設定される時、これらのレジスタ
はそれぞれ、テクスチャ・マッピング・チップ46がフ
レーム・バッファ基板14へテクスチャ・データを送る
ことを禁止し、テクスチャ・マッピング基板からのテク
スチャ・データを待つことなくプリミティブに対するレ
ンダリングを続けるようにフレーム・バッファ基板に命
令する。
【0054】上述のように、2次元テクスチャ・マップ
からのテクスチャ・データでレンダリングされる表示画
面ピクセルの各々について、(双線形補間の場合)1つ
のMIPマップから4つのテクセル、または(3線形補
間の場合)2つの隣接MIPマップから8つのテクセル
が、キャッシュ・メモリから取り出され、該ピクセルに
対するテクスチャ・データが決定される。キャッシュか
ら読まれたテクセルは(図3の)バス86経由でテクセ
ル補間回路76へ送られ、そこで、複数テクセルの補間
によって、各ピクセルのテクセル・データが計算され
る。補間方法は、システムに関して設定されるモードに
応じて変り得る。1点標本抽出補間モードが設定される
場合、結果として生成されるテクセル・データは、テク
スチャ・マップにおけるピクセルのS,T座標によって
定義される位置に最も近い1つのテクセルに等しい。別
の方法として、双線形補間または3線形補間が用いられ
る場合、それぞれ1つまたは最も近い2つのマップにお
ける4または8個の最も近いテクセルの加重平均であ
る。複数のテクセルの各々に与えられる加重は、タイル
作成/境界検査器からテクセル補間回路76へ提供され
る勾配値およびSならびにT座標の小数部分に基づいて
決定される。
【0055】表示画面ピクセルに関する計算結果のテク
セル・データは、バス88経由でフレーム・バッファ・
インターフェースFIFOバッファ90へ順次送られ
る。フレーム・バッファ・インターフェースFIFOバ
ッファ90は、最高64までの計算結果のテクセルを記
憶することができる。
【0056】計算結果のテクセルの各々は、R,G,B
を表現する各8ビット、およびαを表す8ビットを含む
32ビット・ワードである。αバイトは、(図2の)フ
レーム・バッファ基板14に対して、テクセルに対応す
るピクセルについて最終的表示画面R,G,B値を計算
する際に、計算結果のテクスチャ・データのR,G,B
値をフレーム・バッファ基板によって生成されたオブジ
ェクト・データのR,G,B値と結合する方法を標示す
る。フレーム・バッファ・インターフェースFIFOバ
ッファ出力T0−T4は、(図2の)バス28を経由し
てフレーム・バッファ基板14へ送られる。フレーム・
バッファ基板は、各画面表示ピクセルについて最終的
R,G,B値を生成するためαによって指定された方法
で、計算結果のテクセル・データのR,G,B値をオブ
ジェクトR,G,値と結合する。
【0057】III.キャッシュ・メモリの構成 図6は、本発明の1つの実施形態に従うキャッシュ・メ
モリのブロック図である。該キャッシュ・メモリは、テ
クセル・ポート92、テクスチャ補間回路76、キャッ
シュ・ディレクトリ78およびテクセル・キャッシュ・
アクセス回路82を含むテクスチャ・マッピング・チッ
プ部分に接続する。この実施形態では、キャッシュ・メ
モリ48は、4つのインターリーブ204A、204
B、204Cおよび204Dを含む。各インターリーブ
は、同時にアクセスされることができる2つのSDRA
Mチップ(図示されてない)を含む。各SDRAMは1
回の読み取りサイクルの間に8ビットのデータを提供す
る。従って、各インターリーブは、1読取りサイクルの
間に16ビットのテクセル・データを提供する。インタ
ーリーブの各SDRAMの2つの連続する位置のそれそ
れに8ビットが記憶される形態で、1つのインターリー
ブのキャッシュに各々32ビット・ワードのテクセル・
データが記憶される。従って、キャッシュから1つのテ
クセルを読み取るためには、該当するインターリーブの
連続的位置に対する2回の読取りサイクルの実行によっ
て32ビットのテクセル・データが取り出される。後述
されるように、2回の連続サイクルでバース・データ(b
urst data)を作成するには、(行および桁データを含
む)1つのアドレス・ワードだけを各インターリーブ内
のSDRAMに送出すればよい。バースト・データは、
与えられたアドレスから第1のサイクルで渡される16
ビット、同じ行を持つアドレスから第2のサイクルで渡
される16ビット、および1だけ増分される桁を含む。
【0058】テクセル・キャッシュ・アクセス回路82
は、コントローラA(200A)、コントローラB(2
00B)、コントローラC(200C)およびコントロ
ーラD(200D)と名付けられた4つの独立したコン
トローラを含む。4つのコントローラA、B、Cおよび
Dは、並列バス202A、202B、202Cおよび2
02Dを経由して4つのインターリーブ204A、20
4B、204Cおよび204Dのデータに同時にアクセ
スすることができる。上記コントローラは、バス84
A、84B、84Cおよび84D経由でそれぞれ受け取
ったコマンドおよびアドレスに応答してキャッシュ・メ
モリ48からテクセル・データを読み取る。
【0059】上述のように、各ピクセルは、潜在的に、
1つのMIPマップの4つのテクセルに対応するか、あ
るいは複数のMIPマップの8つのテクセルに対応す
る。詳細は後述するが、キャッシュにダウンロードされ
るテクセル・データは、ホスト・コンピュータの主メモ
リにおいて、各MIPマップにおけるいかなる4つの隣
接するテクセルも並列的アクセスが可能なように別々の
インターリーブに位置づけられるように配置される。従
って、双線形補間法によってテクセル・データを生成す
るために必要とされるMIPマップにおけるいかなる4
つの隣接するテクセルも、1回の読取り動作で読み取る
ことができる。3線形補間法が使用される場合は、1組
4つからなる2組の(計8つの)テクセルが隣接するM
IPマップから2回の読み取り動作で読み取られる。
【0060】図7は、キャッシュ・メモリの4つのイン
ターリーブ構成によってある1つのMIPマップにおけ
る任意の4つの隣接テクセルを同時に読み取ることがで
きる利点を活かすようにテクスチャ・データ・ブロック
が配置される形態の1例を示している。各テクセルに
は、該テクセルが記憶されているキャッシュ・メモリの
インターリーブを識別するラベルA、B、CおよびDが
付けられている。マップ内のいかなる位置もA、B、C
およびDのラベルを持つ4つのテクセルの間に落ちるよ
うに、AないしDのラベルのパターンが繰り返されてい
る。このようにして、あるマップの内の任意の位置に対
応するピクセルについて、最も近い4つのテクセルは、
別々のインターリーブAないしDに存在するため、それ
らテクセルは4つの独立コントローラ200A−200
Dによって同時にアクセスされることができる。例え
ば、ピクセルP0はA、B、CおよびDというラベルの
4つのテクセルの間の位置に対応し、ピクセルP1は
B、A、DおよびCというラベルの4つのテクセルの間
の位置に対応する。
【0061】上述のキャッシュ構成は例示の目的で記述
したものであって他の代替構成も実施できることは理解
されるべきであろう。例えば、キャッシュを、8つの別
々のコントローラを持つ8つの別々のインターリーブの
形態で実施して、3線形補間法が使われ時、8つのテク
セルが、1回の読み取り動作で同時にアクセスされるこ
とができるように構成することもできる。
【0062】キャッシュ・メモリ内のSDRAMチップ
の各々は、同時に別々の活動ページ(すなわち、共通の
行アドレスを持つメモリ位置グループ)を維持すること
ができる2つの等しいサイズのバンクに内部的に分割さ
れる。このようにして、従来技術のDRAMの場合に起
きるような2つの異なるページ(すなわち2つの異なる
行アドレス)からデータを取り出すことに一般に関連す
る再ページングの負荷を伴うことなく、SDRAMチッ
プの2つのバンク内の異なるページにあるデータを連続
的読取りサイクルでアクセスすることができる。
【0063】更に詳細は後述するが、3線形補間法を使
用する際のページ間アクセス負荷を最小限にとどめるこ
のSDRAM構成の利点を活かすようにテクスチャ・デ
ータがキャッシュ・メモリ内に配置される。3線形補間
のために必要な8つのテクセルは、2つのMIPマップ
に収納されている1組4テクセルからなる2組のテクセ
ルを含む。1つのMAPにある1組の4つの隣接するテ
クセルの各々は、上述のように、同時にアクセスできる
ようにインターリーブA、B、CおよびDにそれぞれ記
憶されている。更に、任意のテクスチャについて一連の
MIPマップにおける隣接するMIPマップ上で共通す
るデータが、キャッシュの異なるSDRAMバンクに記
憶される。3線形補間が実行される時、第1のバースト
の2回の読取りサイクルの間に、1つのMIPマップの
4つのテクセルがインターリーブAないしDのSDRA
Mバンクの1つから同時に読み取られ、後続のバースト
の2回の読取りサイクルの間に、隣接するMIPマップ
の4つのテクセルが別のSDRAMバンクから読み取ら
れる。SDRAMの両方のバンクは同時に行が有効であ
るので、再ページングの負荷なしに2組のテクセルは連
続的バースト・モードで読み取られる。オブジェクトの
複数ピクセルがレンダリングされる場合、隣接ピクセル
は、該テクスチャに関する同じ2つのMIPマップに対
応していることが多いため、キャッシュへの読取りが、
2つのマップに共通データを記憶するキャッシュ・ブロ
ックの間で連続的に切り換えを行うことが必要とされる
点は理解されるべきであろう。表示画面ピクセルをレン
ダリングする間2つの隣接MIPマップの間での切り換
えを行う時、各サイクルの再ページングの負荷を伴うこ
となく3線形補間を実行できるので、2つのページが各
SDRAM内で活動的であることを可能にする本発明の
キャッシュ構成は利点がある。
【0064】図8は、本発明のキャッシュ・メモリの上
述の実施形態のさらに詳細なブロック図である。キャッ
シュは、各々が2つのSDRAMチップを含む4つのイ
ンターリーブ204A−204Dに均一に分割されたS
D1−SD8というラベルの8つのSDRAMチップを
含む。各インターリーブの2つのSDRAMは、以下の
ような共通のラインを共有する。すなわち、11本のア
ドレス線(ADD)、行・桁ストローブ(RASなびに
CAS)、書き込みイネーブル(WE)、クロック・イ
ネーブル(CKE)、およびデータ入出力マスク(DQ
M)である。各インターリーブ内のSDRAMは、各読
取りまたは書込みサイクルの間8ビットデータがそれぞ
れ読み書きされる8本の独立データ線に接続される。各
SDRAMチップは、各々がテクスチャ・データの1,
048,576個の8ビット・ワードを記憶する2つの
メモリ・バンクを含む。
【0065】各インターリーブの2つのSDRAMは同
時にアクセスされ、一方のSDRAMがデータ・ビット
[15:08]を、他方がデータ・ビット[07:0
0]をそれそれ提供することによって両方で16ビット
のデータを提供する。上述のように、1回のバースト・
モードの2つの連続的読取りサイクルが、各インターリ
ーブから32ビット・テクセル・データを読み取る。そ
の個々の8ビット・ワードは、当該テクセルR,G,B
およびα値の各々を表す。
【0066】SDRAMチップが、11本のアドレス線
ADD上で多重送信された20のアドレス・ビットを受
け取り、各バンク内の1,048,576個の8ビット・
ワードをデコードする。詳細は後述するが、キャッシュ
からアクセスされるべき各テクセルについて6ビットの
ブロック・インデックスおよび16ビットのテクセル・
アドレスが計算される。ブロック・インデックスは、6
4個のデータ・ブロックのどこにテクセルが位置してい
るか標示し、テクセル・アドレスは、ブロック内のテク
セルの正確なS,T座標アドレスを標示する。1平方デ
ータ・ブロックが256×256テクセルを含むと仮定
すれば、8つのSビットおよび8つのTビットがテクセ
ル・アドレスを構成する。キャッシュ・アドレスは、ブ
ロック・インデックス(MSB6ビット)およびテクセ
ル・アドレス(LSB16ビット)の組合せを含む22
ビット・ワードである。キャッシュ・アドレスは、キャ
ッシュ内の正確なテクセル位置を示す。
【0067】レンダリングの間、タイル作成/境界検査
器が、テクセル・アドレスの下位Sビットおよび下位T
ビット(すなわち、LSB S座標おyびLSB T座
標)をデコードして、テクセルがキャッシュの4つのイ
ンターリーブのどれに記憶されているかを決定する。キ
ャッシュ・アドレスの残りの20アドレス・ビットは、
アドレス線ADDに沿って、該当するインターリーブ内
の2つのSDRAMチップに対して提供される。2つの
SDRAMチップに対して提供される20アドレス・ビ
ットのうち、9ビットは、テクセル・データにアクセス
するためSDRAM内の桁を選択するために使用され、
11ビットは行を選択するために使用される。当業者に
よって理解されるように、桁および行アドレス・ビット
は、異なるサイクルでSDRAMにラッチされ、RAS
およびCASストローブは、従来技術の方法でデータに
アクセスするために使用される。
【0068】2サイクルのバースト・モードの間に、第
1のサイクルの間に同じインターリーブ内の2つのSD
RAMのアドレス指定された位置から16ビットが読み
取られ、次に、別のアドレスを用意することなく、第2
のサイクルで、2つのSDRAMのもう1つ別の位置か
ら16ビットが読み取られる。第2のサイクル中のアド
レスは、同じ行アドレスおよび1増分された桁アドレス
を含む。一旦1つのページ(すなわち特定の行)のアド
レスが起動されれば、異なる行アドレスが与えられるま
でその行は活動的であるという点は理解されるべきであ
ろう。従って、同じインターリーブからアクセスされる
べき連続的テクセルが(同じ行アドレスを含む)同じペ
ージにあるならば、行アドレスは、連続バーストの最初
に1度だけ提供されればよい。
【0069】加えて、RAS、CASおよびWEライン
は、従来技術の方法でアドレス指定しSDRAMチップ
へデータを書き込むため使用される。クロック・イネー
ブル信号CKEがオフにされると、内部クロックは中断
される。SDRAMは、この信号に応答してデータを処
理しない状態に保ち、両方のバンクをアイドル状態にす
る。データ入出力マスクDQM信号は、読取りサイクル
の間出力イネーブルとして機能し、書き込みサイクルの
間入力データ・マスクとして機能する。
【0070】従来技術におけるSDRAMの使用方法で
は、SDRAMは、現在ページから現在のデータをアク
セスしている間に後続のデータをどのページからアクセ
スするかを決定して現在データ読み取りサイクルが完了
する前にその将来のページを起動させる。SDRAM
が、2つの異なるページをイネーブルして同時に活動的
にさせるので、上記従来技術のSDRAMの使用は、従
来技術のDRAMの使用におけるようなデータを異なる
ページからアクセスする場合に派生する再ページングの
負荷を回避する。しかしながら、多数の連続読取りサイ
クルで読み取られるべきデータが異なるページに位置す
る場合、将来ページを前もって調べ起動するために複数
のサイクルが必要とされるため、従来技術のSDRAM
使用法は上記の利点を提供しない。本発明のテクスチャ
・データ記憶方法は、再ぺージングなしで異なるページ
からの複数の連続的SDRAM読取りサイクルを実行可
能とさせることによって、従来技術のSDRAM使用に
比較して利点を持つ。特に、(3線形補間を実行する場
合連続的読取りサイクルの間のアクセスを必要とする)
テクスチャの隣接MIPの共通データをSDRAMの別
々のバンクに記憶することによって、別々のバンクから
のデータが、連続的な読取りサイクルで再ページングの
負荷なしにアクセスされることができる。SDRAM処
理性能を向上させるための本発明のデータ記憶配置方法
をテクスチャ・マッピング・データに関して以上説明し
たが、本発明の方法がそのようなテクスチャ・マッピン
グ・データに関するものに限定されない点は理解される
べきであろう。特に、複数の連続的読取りサイクルが異
なるメモリ位置からデータをアクセスするようなタイプ
のデータのすべてを割り当てる場合に本発明の方法は応
用できる。
【0071】IV.キャッシュ制御FIFO 図9は、境界検査器72、キャッシュ・ディレクトリ7
8、キャッシュ・アクセス回路82、キャッシュ・メモ
リ48およびテクセル補間回路76を含むテクスチャ・
マッピング・チップの一層詳細なブロック図である。テ
クセル・キャッシュ・アクセス回路82は、4つのキャ
ッシュ・アクセス・コマンドFIFO206A、206
B、206Cおよび206Dを含む。キャッシュ・アク
セス・コマンドFIFO206A−206Dは、16ビ
ット・バス84A、84B、84Cおよび84Dを経由
して境界検査器からそれぞれ受け取るキャッシュ・アク
セス・コマンドを記憶する。キャッシュ・アクセス・コ
マンドFIFO206A−206Dは、図6に示される
コントローラ200A−200Dにそれぞれ対応する。
例えば、FIFO206Aコマンドは、インターリーブ
204A内のSDRAMのキャッシュ・アクセスを起動
する。この実施形態においては、各キャッシュ・アクセ
ス・コマンドFIFOは、8つの16ビット・コマンド
を一時的に記憶する能力を持つ。このように、システム
のパイプライン性能を向上させるため、キャッシュ・ア
クセス回路が働く前に、8つのコマンドがキャッシュ・
アクセス・コマンドFIFOの各々に記憶される。
【0072】上述のように、レンダリングの間、境界検
査器72は、対象のピクセルに対応するテクスチャ・デ
ータのブロックの各々に関する読取りキャッシュ・タグ
をキャッシュ・ディレクトリ78に記憶されているブロ
ック・タグの各々と比較して、テクセルがキャッシュに
あるかどうかを判定する。ヒットが発生すれば、キャッ
シュ内のテクスチャ・データの対応するブロックの位置
を表すブロック・インデックスが生成される。タイル作
成/境界検査器は、補間S,T座標、テクスチャID、
特定テクセルのサブテクスチャID、テクセルをアクセ
スすべきマップのマップ番号およびテクスチャの基本マ
ップのサイズを用いてテクセル・アドレスを決定するル
ーチンを同時に実行する。詳細は後述する。(キャッシ
ュ・アドレスを構成する)ブロック・インデックスおよ
びテクセル・アドレスを用いて、タイル作成/境界検査
器がテクセルが記憶されているキャッシュの特定のイン
ターリーブおよびそのインターリーブのSDRAMチッ
プの行および桁アドレス・ビットを決定する。アドレス
情報は、キャッシュ読み取りコマンドとともに、対応す
るキャッシュ・アクセス・コマンドFIFOに送られ
る。
【0073】テクセル補間回路76は、8つのテクセル
・データFIFO214A0、214A1、214B
0,214B1,214C0,214C1,214D0
および2l4D1を含む。テクセル・データFlFO2
l4A0ならびに2l4A1は、キャッシュ・メモリの
インターリーブ204Aに対応し、FlFO2l4B0
ならびに2l4B1は、インターリーブ204Bに対応
し、FlFO2l4C0ならびに2l4C1は、インタ
ーリーブ204Cに対応し、FlFO2l4D0ならび
に2l4D1は、インターリーブ204Dに対応する。
【0074】先に述べたように、キャッシュ・メモリの
4つのインターリーブの各々は、別々のキャッシュ・ア
クセス経路を通して同時にアクセスされることができ
る。レンダリングの間、テクセル・キャッシュ・アクセ
ス回路82がキャッシュ・メモリ48からテクセル・デ
ータをアクセスする時、テクセル・アクセス制御ワード
が、バス208A、208B、208Cおよび208D
を経由してキャッシュ・メモリ48へ与えられる。2つ
の連続する16ビットの読取りサイクルの間に4つのテ
クセルが同時に4つのインターリーブからアクセスされ
る。4つのテクセルは、バス210A、210B、21
0Cおよび210D経由で、テクセル・データAのFI
FOの1つ(214A0または214A1)に、テクセ
ル・データBのFIFOの1つ(214B0または21
4B1)に、テクセル・データCのFIFOの1つ(2
14C0または214C1)に、テクセル・データDの
FIFOの1つ(214D0または214D1)にそれ
ぞれ送られる。各インターリーブA−Dに対応するFI
FOのペア(すなわち0および1)は交互にロードされ
る。例えば、インターリーブAから読み取られる第1の
テクセルがテクセル・データFIFO214A0に記憶
され、インターリーブAから読み取られる第2のテクセ
ルがテクセル・データFIFO214A1に記憶され、
インターリーブAからの第3のテクセルがテクセル・デ
ータFIFO214A0に記憶されるというようにテク
セルが交互に記憶される。このような交互方式を使用す
る理由は以下の通りである。
【0075】テクセル・データFIFOの各々は、幅3
2ビットで深さ8段階である。組合せれば、8つのFI
FO214は、8つのパイプライン化された段階を記憶
する。各段階は、3線形補間の間所望のテクセル・デー
タを決定するために使用される8つのテクセルを含む。
バス210A、210B、210Cおよび210Dは、
幅16ビットである。各インターリーブにおける各SD
RAMペアは、各読取りサイクルの間に16ビットのデ
ータを提供する。各バースト読み取りの間、第1の16
ビットが、各SDRAMペアから第1の16ビット・レ
ジスタ(図示されてないない)に送られ、次の16ビッ
トが、各SDRAMペアから第2の16ビット・レジス
タ(やはり図示されてないない)に送られる。バースト
読み取りの第2サイクルの終了時点で、両方のレジスタ
からのデータが、対応する32ビット・バス212A、
212B、212Cまたは212D上へ送られる。任意
のピクセルに関する所望のテクセル・データを決定する
ため、テクセル補間回路76が、FIFOにアクセスし
て次の段階の8つのテクセルを読み取り、上述の方法で
それらのテクセルを補間する。補間結果のテクセル・デ
ータが、バス28経由でフレーム・バッファ基板14
(図2)へ送られ、そこで、上述の方法で表示画面ピク
セルをレンダリングするために使用される。
【0076】3線形補間が実行される時、任意のピクセ
ルに関する所望のテクセル・データは、ある1つのMI
Pマップの4つのテクセルを補間し、隣接する別のMI
Pマップの4つのテクセルを補間して得られる。隣接す
る表示画面ピクセルは、一般的には連続的にレンダリン
グされる。隣接する表示画面ピクセルは、頻繁に、1つ
のテクスチャMIPマップの隣接位置に対応する。この
結果、連続的にレンダリングされるプリミティブに関し
て所望のテクセル・データを補間する際いくつかの共通
のテクセル・データが使用されることがよくある。本発
明の1つの実施形態において、多数の近接した読み取り
サイクル内で共通のテクセル・データが多数回アクセス
される場合、キャッシュは、最初の読取りについてのみ
アクセスされるだけで、後続の読取りの各々については
キャッシュ読取りサイクルを節約する。最も最近読まれ
たテクセルが、テクセル・データFIFO内に記憶され
る。このように、それらテクセルに対する後続のアクセ
スは、キャッシュではなくFIFOからなされる。これ
によって、必要とされるキャッシュ・アクセス数が減
り、システムの帯域幅が増大する。
【0077】テクセル・データ経路A、B、CおよびD
の各々について、前回のピクセルに関してテクセル・デ
ータFIFO0または1の1つに最も最近書き込まれた
テクセル・データが、キャッシュをアクセスするためパ
イプライン位置に現在あるテクセル・データと一致する
場合、キャッシュ・アクセス・コマンドは、対応するキ
ャッシュ・アクセスFIFO206A、B、CまたはD
に送られない。代わりに、テクセル・データが対応する
テクセル・データFIFO214A、B、CまたはDの
最も最近書かれた位置に記憶されていることを示すコマ
ンドがテクセル補間器に送られる。キャッシュをアクセ
スするためパイプライン位置に現在あるテクセル・デー
タに対応するテクセル・データが、対応するテクセル・
データFIFOの最も最近書き込まれた位置のデータと
一致しない場合、経路A、B、CおよびDのいずれにつ
いても、テクセル・キャッシュ・アクセス・コマンドが
対応するテクセル・キャッシュ・アクセス・コマンドF
IFOに送られ、キャッシュ・メモリ48からそのテク
セル・データが読み取られる。
【0078】キャッシュ・アクセスを考慮しなければな
らない現在パイプライン位置にあるピクセルについてイ
ンターリーブAないしDのいくつかが異なる結果を生み
出す点は理解されるべきであろう。例えば、連続的ピク
セルに関する共通のテクセル・データがインターリーブ
Aには存在するがインターリーブB−Dには存在しない
ことがある。そのような状況においては、キャッシュか
らテクセル・データをアクセスするためにパイプライン
位置にある第2の連続ピクセルに関してテクセル・デー
タがインターリーブB−Dから読み取られるであろう
が、その第2のピクセルに関するインターリーブAから
のテクセル・データは、テクセル・データFIFO21
4A0または214Alの1つの同じ位置から読み取ら
れるであろう。キャッシュをアクセスせずに複数のピク
セルに関してテクセル・データFIFOからテクセルが
再読み取りされる場合、本方式は帯域幅を節約する。
【0079】テクセル補間回路76は、53ビット・コ
マンドを境界検査器72から53ビット・バス218経
由で受け取るテクセル補間回路コマンドFIFO216
を含む。テクセル補間回路コマンドFIFOは、各サイ
クルの間所望のテクセル・データを補間する際に使用さ
れるべきテクセル・データをどこのテクセル・データF
IFO位置が含むかを補間回路に標示する最高16のコ
マンドを記憶することができる。補間回路コマンドは、
また、(点標本抽出、双線形または3線形などの)補間
モードを示し、補間の際に各テクセルが加重される方法
を指定するSおよびT座標の勾配および小数値を含む。
コマンドは、(双線形補間の場合)4個または(3線形
補間の場合)8個のテクセルがFIFO214A0、A
1、B0、B1、C0、C1、D0またはD1のいずれ
から読み取られるべきか、また、該テクセルが新しいか
古いかを示すデータを含む。テクセル・データがその経
路のいずれかのテクセル・データFIFOの位置に最も
最近書き込まれたテクセル・データと異なる場合は、そ
のテクセル・データは新しいという。新しい場合キャッ
シュ読取りが必要とされる。テクセル・データがいずれ
かのテクセル・データFIFOの位置に最も最近書き込
まれたものと同じ場合は、そのテクセル・データは古い
という。古い場合キャッシュ読取りは必要とされない。
テクセル・データが新しい時、FIFO読取りポインタ
が、FIFOの内の次の位置へ移動されなければなら
ず、一方、テクセル・データが古い時、同じデータが同
じFIFO位置から読み取られ、読取りポインタを移動
する必要はない。
【0080】図9に示されたテクセル・アクセス回路の
動作を図10および図11を参照しながら以下に更に例
示する。図10は、上位MIPマップの複数のテクセル
および(サイズ的に小さい)下位MIPマップの複数の
テクセルを示す。テクセルは、上記図8の場合に使用し
た標記法と同様に、An、Bn、CnおよびDnという
ラベルをつけられている(但しnは整数)。レンダリン
グされるべき7つのピクセルに、P0、P1、P6とい
うラベルがつけられている。図に示されているように、
レンダリングされるべき(複数)ピクセルは、MIPマ
ップのテクセルに直接対応していない。この例において
は、3線形補間法が実行され、上位マップから4つのテ
クセルおよび低位マップから4つのテクセルがアクセス
され各ピクセルごとに補間される。進行方向は、レンダ
リングの方向であって、ピクセルに付けられた数字番号
に対応する。
【0081】図11は、キャッシュ・アクセス・コマン
ドFIFO(206A)、テクセル・データFIFOA
0(214A0)、テクセル・データFIFOA1(2
14A1)およびテクセル補間回路コマンドFIFO2
16を示す。他のテクセル・データ経路B、CおよびD
の各々に関するFIFOも同じ形態でで動作するので、
便宜上テクセル・データ経路Aに関連するFIFOだけ
が示されている。各FIFOバッファは、データが読み
書きされるべきFIFO内の単一の位置をそれぞれポイ
ントする書込みポインタおよび読取りポインタを含む。
両ポインタは、本実施例では1回につき1位置移動する
ことができる。
【0082】ピクセルP0は、上位マップにおけるテク
セルA0、B0、C0およびD0に、そして下位マップ
におけるテクセルA0、B0、C0およびD0に対応し
ているので、これら8つのテクセルが補間され、ピクセ
ルP0に対するテクセル・データが生成される。ピクセ
ルP0について、キャッシュから読み取られるテクセル
・データをテクセル・データFIFO214A0に書き
込むべきアドレスと共に、上位マップのテクセルA0の
アドレス(図10でuA0と標記されている)が、キャ
ッシュ・アクセス・コマンドFIFO206Aの最初の
位置に書き込まれる。次に、キャッシュ・アクセス・コ
マンドFIFO206Aの書込みポインタが1位置移動
され、キャッシュから読み取られるテクセル・データを
テクセル・データFIFO214A1に書き込むべきア
ドレスと共に、下位マップのテクセルA0のアドレス
(図10でlA0と標記されている)がFIFOの次の
位置に書き込まれる。このように、上述の理由からテク
セル・データFIFO0と1は交互に使用される。キャ
ッシュ・アクセス・コマンドFIFO206B−206
Dは低位マップのテクセルB0、C0およびD0に関し
て同様の方法で更新される。
【0083】ピクセルP1について、上位および下位マ
ップのテクセルA1がアドレスuA1およびlA1にそ
れぞれ補間のため記憶される。上位および低位マップの
テクセルA1は新しいテクセルであり、前のピクセルP
0からのテクセルに対応していないので、それらはキャ
ッシュからアクセスされる。このようにして、これらテ
クセルのテクセル・アドレスが、それらのアドレスから
読み取られるテクセル・データがテクセル・データFI
FO214A0および214A1に書き込まれるべきこ
とをそれぞれ示す対応するアドレスと共に、キャッシュ
・アクセス・コマンドFIFOの後続の2つの位置に付
加される。図11は、上記情報で更新された後のキャッ
シュ・アクセス・コマンドFIFO206Aを示す。
【0084】最初の2つのピクセルP0およびP1につ
いては共通のAアドレス指定テクセルが存在しないの
で、両者に関するテクセル・データを取り出すためキャ
ッシュ・メモリがアクセスされる。最初のコマンドがキ
ャッシュ・アクセス・コマンドFIFO206Aから読
み取られ、アドレスuA0にあるテクセル・データがキ
ャッシュ・メモリから読み取られテクセル・データFI
FO214A0の最初の位置に書き込まれる。そして、
次のコマンドがキャッシュ・アクセス・コマンドFIF
Oから読み取られ、アドレスlA0にあるテクセル・デ
ータがキャッシュ・メモリから読み取られテクセル・デ
ータFIFO214A1の最初の位置に書き込まれる。
次のコマンドがキャッシュ・アクセス・コマンドFIF
Oから読み取られ、アドレスuA1にあるテクセル・デ
ータがキャッシュ・メモリから読み取られテクセル・デ
ータFIFO214A0の次の位置に書き込まれる。最
後に、第4番目のコマンドがキャッシュ・アクセス・コ
マンドFIFOから読み取られ、アドレスlA1にある
テクセル・データがキャッシュ・メモリから読み取られ
テクセル・データFIFO214A1の次の位置に書き
込まれる。
【0085】次のピクセルP2をレンダリングするた
め、アドレスuA1およびlA1のテクセルが補間され
る必要がある。これらのテクセルが前にレンダリングさ
れたピクセルP1についてアクセスされたものなので、
それらは、テクセル・データFIFO214A0および
214A1の最も最近書き込まれたエントリにそれぞれ
記憶されている。従って、それらのテクセルについて新
しいキャッシュ・アクセス・コマンドがキャッシュ・ア
クセス・コマンドFIFO206Aに送られることはな
い。その代わり、ピクセルP1に関する所望のテクセル
・データが補間された後、アドレスuA1およびlA1
に記憶されたテクセル・データが、テクセル補間回路に
よってテクセル・データFIFO214A0および21
4Alの最も最近読まれた位置からそれぞれアクセスさ
れ、キャッシュへのアクセスは必要とされない。直接F
IFOバッファからデータを読み取る方が、キャッシュ
・メモリからデータをアクセスする場合に比較して所要
時間は少ない。従って、キャッシュ・アクセスを減らす
本発明のFIFOバッファはシステムの帯域幅を増加さ
せる。
【0086】上述のように、インターリーブA−Dの各
々に対応するテクセル・データFIFO214は、別々
に制御されるFIFOゼロおよび1を含む。FIFO
は、このような形態で3線形補間を実行するために能率
的に分割される。上述から理解されるように、上記の実
施形態において、テクセル・データFIFO214の各
々は、後続の読取りが同じエントリをポイントできるポ
インタを維持することによって、その最も最近読み取ら
れたエントリへのアクセスを提供する。このため、連続
的な読取りサイクルの間、各インターリーブが2つのマ
ップの間で交互に読み取りを行うが、独立したFIFO
が、1つのマップ内で連続的読み取りを実行することが
できるので、FIFOへの連続アクセスにおいて読取り
ポインタが同じテクセル・データをポイントすることが
可能となる。
【0087】各ピクセルがタイル作成/境界検査器72
によって処理されコマンドがキャッシュ・アクセス・コ
マンドFIFOに送られる場合、コマンドはまたテクセ
ル補間回路コマンドFIFO216に書き込まれる。例
えば、ピクセルP0についてアドレスuA0でテクセル
にアクセスすべきコマンドがキャッシュ・アクセス・コ
マンドFIFOに送られると、コマンドNew0が、テ
クセル補間回路コマンドFIFO216の最初の位置に
送られる。コマンドNew0は、インターリーブAから
の次のテクセル・データがキャッシュからアクセスされ
てテクセル・データFIFO214A0に渡されるこ
と、および、FIFOからテクセル・データを読むため
にテクセル補間回路は最も最近読み取られた位置から1
位置FIFO読取りポインタを移動させなければならな
いことをテクセル補間回路に示す。
【0088】キャッシュ・アクセス・コマンドFIFO
に送られるテクセル・アドレスlA0に対応する次のコ
マンドについて、コマンドNew1が、テクセル補間回
路コマンドFIFOの次の位置に書き込まれる。コマン
ドNew1は、インターリーブAからの次のテクセル・
データも新しいもので、テクセル・データ補間回路21
4A1から読み取らなければならないことをテクセル補
間回路に示す。同様に、ピクセルP1に対応するテクセ
ル・アドレスuA1およびlA1に関連するコマンドに
関して、コマンドNew0およびNew1がそれぞれテ
クセル補間器コマンドFIFO216の次の2つの位置
に書き込まれる。
【0089】ピクセルP2については、アドレスuA1
およびlA1のテクセル・データが前のピクセルP1の
ためFIFOに書かれたデータと同一であるので、テク
セル補間器コマンドFIFO216の次の2つの位置に
書かれるコマンドはOld0およびOld1であり、次
のテクセル・データはテクセル・データFIFO214
A0および214A1の最も最近読まれた位置から再読
み取りされるべきであることをテクセル補間器に対して
それぞれ標示する。Old0およびOld1コマンド
は、FIFOから次のテクセル・データを読むため最も
最近読み取られた位置からFIFO読取りポインタを移
動する必要がないことをテクセル補間回路に示す。
【0090】図10は、次の3つのテーブルをリストし
ている。第1のテーブルはピクセルの各々について補間
される必要があるテクセルを示し、第2のテーブルは、
テクセル・データFIFOA0、B0、C0およびD0
に記憶される必要がある別々のテクセル・データ値をリ
ストし、第3のテーブルは、テクセル・データFIFO
A1、B1、C1およびD1に記憶される必要がある別
々のテクセル・データ値をリストする。ブランク空間
は、キャッシュから再び読まれる必要がなく、FIFO
からアクセスされることができるようにキャッシュから
既に読み込まれた共通テクセル・データを示す。図が示
す通り、複数のピクセルについて所望のテクセル・デー
タが補間される時、本発明のFIFO方式によって多数
のキャッシュ・アクセスが節約され、この結果システム
の帯域幅が増大する。
【0091】図12は、各インターリーブにおいて、あ
るピクセルについて読み取られるべきテクセル・データ
が最も最近レンダリングされたピクセルについて読み込
まれたか否かを判断するため、テクスチャ・マッピング
・チップによって使用される回路のブロック図である。
この回路は、新しいデータをキャッシュから読み取るよ
うに指示する新しいコマンドをキャッシュ・アクセス・
コマンドFIFOの1つに書き込むべきか、あるいは、
テクセル・データは古いのでテクセル・データFIFO
の1つから読み取られるべきことを示すコマンドをテク
セル補間器コマンドFIFOに書き込むべきか判断する
ために使用される。図12は、インターリーブAに対応
する1つの回路だけを示しているが、インターリーブ
B、CおよびDに対して、同様の回路が用意される。こ
の回路は、タイル作成/境界検査器の最適化エレメント
の範囲内に配置される。補間されるべき各テクセルにつ
いてタイル作成/境界検査器によって受け取られる補間
されたS,T値を用いて、最適化エレメントは、バス2
20A上に(ブロック・タグおよびテクセル・アドレス
を含む)テクセル・アドレスを出力する。テクセル・デ
ータFIFO214A0および214A1に割り当てら
れた最も最近処理されたテクセルのアドレスは、アドレ
ス・レジスタ222A0および222A1にそれぞれ記
憶されている。現在のテクセル・アドレスが、比較器2
24A0および224A1によって、レジスタ222A
0および222A1に記憶されているテクセル・アドレ
スとそれぞれ比較される。
【0092】現在のテクセル・アドレスが、レジスタ2
22A0および222A1に記憶されているアドレスの
いずれとも一致しない場合、そのテクセル・アドレスに
対応するテクセル・データが、キャッシュ・メモリから
アクセスされる必要があり、適切なコマンドがキャッシ
ュ・アクセス・コマンドFIFOに書かれる。しかし、
テクセル・アドレスが、レジスタ222A0および22
2A1に記憶されているアドレスと一致する場合、テク
セル・データはテクセル・データFIFO212A0ま
たは212A1にそれぞれ記憶されていて、そのアドレ
スに対応するテクセル・データをアクセスする直前にテ
クセル補間器によって読み取られる。従って、キャッシ
ュ・アクセス・コマンドはキャッシュ・アクセス・コマ
ンドFIFOに書かれず、テクセル・データは古いの
で、読取りポインタを動かすことなく最も最近読まれた
FIFO位置からアクセスされるべきことを示すコマン
ドが、対応するテクセル補間器コマンドFIFOに書き
込まれる。
【0093】V. テクスチャ・データ・ブロックの構成 図1は、8×8テクセルの基本マップ100を含む一連
の平方テクスチャMIPマップを示す。基本マップを基
に、サイズ的にフィルタして、最小サイズのマップ10
8まで連続的マップの各々が作成される。最小サイズの
マップ108にはマップ番号ゼロが割り当てられ、サイ
ズが大きくなるマップ毎に番号を1ずつ増分する。従っ
て,本例の場合の基本マップ100はマップ番号3を持
つ。マップ番号は、後述する方法で、テクスチャ・デー
タの各ブロックに対するブロック・タグを決定する際に
使用される。このマップ番号付け方式に従って、1×1
テクスチャ基本マップを仮定すると、マップ番号10は
1024×1024テクセルのマップに対応し、マップ
番号9は512×512テクセルのマップに、マップ番
号8は256×256テクセルのマップにというように
それぞれ対応する。テクスチャ基本マップが1×1でな
ければ、マップ番号10は、1024テクセルより大き
い次元を持つマップに対応する。ここでの記述は、正方
形のテクスチャ・ベース・マップを仮定しているが、長
方形のマップも可能である。長方形の場合、マップ番号
は、マップの長い方の次元のテクセル数によって決定さ
れる。例えば、マップ番号10を持つ長方形のマップ
は、長次元に1024以上のテクセルを持つ。上記以外
のマップ番号付け法を使用できる点は理解されるべきで
あろう。
【0094】マップ番号10を持つ正方形1024×1
024テクセル・マップは、マップ内の各テクセル位置
をユニークに識別するため10ビットのS座標S[9:
0]および10ビットのT座標T[9:0]を必要とす
る。同様に、マップ番号9を持つマップは、マップ内の
各テクセル位置を識別するため9ビットのSおよびT座
標を必要とし、マップ番号8を持つマップは、マップ内
の各テクセル位置を識別するため8ビットのSおよびT
座標を必要とするというように、以下のマップ番号につ
いて同様となる。任意のピクセルに対応するMIPマッ
プのテクセルの位置をユニークに識別するSおよびT座
標は上述の方法で補間される。
【0095】詳細は後述するが、テクスチャ・データ
は、(図2の)ホスト・コンピュータ15の主メモリ1
7に256×256テクセルのブロックの形式で記憶さ
れる。キャッシュ・ミスが発生すると、キャッシュ・ミ
スのあったテクスチャ・データのブロックを識別するキ
ャッシュ・タグが、ホスト・コンピュータによって読み
取られ、次に、そのブロックのテクスチャ・データがテ
クスチャ・マッピング基板のキャッシュ・メモリ48へ
ダウンロードされる。本発明の実施形態において、任意
の1時点で、64ブロックのテクスチャ・データがキャ
ッシュ・メモリに記憶されることができる。これらの6
4ブロックのテクスチャ・データは、1つまたは複数の
テクスチャの複数のMIPマップからのデータを含むこ
とができる。各ブロックは、それをユニークに識別する
ブロック・タグを持つ。9以上のマップ番号を持つMI
Pマップは、256×256を超えるテクセルを含み、
従って,複数のブロックの形態で記憶される。複数ブロ
ックの形態で記憶されるマップに対する高位S,T座標
は、マップを記憶するデータ・ブロックに関するブロッ
ク・タグに含められる。
【0096】例えば、マップ番号9を持つMIPマップ
は、512のテクセルに等しい1つの次元を持ち、正方
形の場合は、サイズ的に512×512テクセルであ
る。(正方形マップを仮定すると)マップは1ブロック
256×256テクセルの4つのブロックに分割され
る。従って、それらのブロックの各々に対するブロック
・タグは、マップの範囲内でのブロックの位置を識別す
る1つの高位S座標ビット(S[8])および1つの高
位T座標ビット(T[8])を含む。同様に、マップ番
号10を持つMIPマップはサイズ的に1024×10
24テクセルであり、1ブロック256×256テクセ
ルの16のブロックに分割される。従って、それらのブ
ロックの各々に対するブロック・タグは、マップの範囲
内でのブロックの位置を識別する2つの高位S座標ビッ
ト(S[9:8])および2つの高位T座標ビット(T
[9:8])を含む。
【0097】後述するが、補間の間システムの帯域幅を
減らすため、隣接するMIPマップの同じ部分が反対側
のSDRAMバンクに記憶されるように、テクスチャM
IPマップは更に小さく分割されてメモリに記憶され
る。加えて、キャッシュ・メモリ内のメモリ空間を効率
的に利用するため、256×256未満テクセルの複数
マップをキャッシュ・メモリの1つのブロックの中に記
憶することができる。
【0098】図13は、 LA 95 という面画像を含む特定テクスチャに関する一組のテク
スチャMIPマップを示す。図13に示されるように、
あるテクスチャに関する一連のMIPマップにおけるM
IPマップの各々は、1つの平方テクスチャ・マップに
対して等しいサイズの4つの象限に分割される。図12
に示される例においては、基本マップは、マップ番号9
を持ち、(画像Lを含む)9Q1、(画像Aを含む)9
Q2、(画像9を含む)9Q3および(画像5を含む)
9Q4の象限に分割されている。同様にマップ番号8
は、それぞれL,A,9および5を含む象限8Q1,8
Q2,8Q3および8Q4に分割されている。同様にマ
ップ番号7は、それぞれL,A,9および5を含む象限
7Q1,7Q2,7Q3および7Q4に分割されてい
る。同様に、更に小さいマップは同様の象限に小分割さ
れている。
【0099】各MIPマップの2つの象限が、キャッシ
ュを形成するSDRAMの1つのバンクに記憶され、残
りの2つの象限が反対側のバンクに記憶される。本発明
のテクスチャ・データ配置方式に従えば、8以上の番号
の(すなわちサイズが256×256テクセル以上の)
基本マップを持つテクスチャに関しては、そのテクスチ
ャのMIPマップすべての象限のすべてについてメモリ
空間のブロック内のメモリ位置はあらかじめ定められて
いる。例えば、図14に示されるように、マップ番号9
の象限9Q1および9Q4は、キャッシュ・バンク1内
の別々のブロックに記憶され、象限9Q2および9Q3
は、キャッシュ・バンク0内の別々のブロックに記憶さ
れる。隣接するMIPマップの対応する象限は、反対側
のバンク内のブロックに記憶される。この例において、
それぞれ象限9Q1および9Q4をフィルタしたデータ
を含む象限8Q1および8Q4は、キャッシュ・バンク
0内の同じブロックに記憶される。同様に、それぞれ象
限9Q2および9Q3をフィルタしたデータを含む象限
8Q2および8Q3は、キャッシュ・バンク1内の同じ
ブロックに記憶される。図14は、図13に対してスケ
ールが合うように描かれてはいない。図13のマップの
象限が、対応する図14のものと同じ大きさであること
は理解されなければならない。
【0100】マップのそれぞれのサイズに従って、マッ
プ番号9の各象限は完全な256×256テクセル・ブ
ロックを占めるが、マップ番号8の4象限は各々ブロッ
クの1/4だけを占める。従って、象限8Q2および8
Q3は合わせて同じブロックの1/2を占め、象限8Q
1および8Q4は、反対のバンク内のもう1つのブロッ
クの1/2を占める。キャッシュ・メモリ空間を効率的
に割り当てるため、それらブロックの各々の中で空いて
いる位置は、マップ番号7以下の適切な象限によって占
められる。従って、ゼロないし8の番号を持つマップの
すべては、それぞれ別のバンクにある2つのブロックを
占める。
【0101】8以下のマップ番号を持つマップに関する
4象限の位置は、(8以上のマップ番号を持つ基本マッ
プを所与として)、図14に示される形態にあらかじめ
定められる。図に示されているように、右上の象限8Q
2および左下象限8Q3は同じ物理的関係を維持して、
それぞれ第1のブロックの右上および左下の象限を占
め、左上の象限8Q1および右下象限8Q4も同じ物理
的関係を維持して、第1のブロックとは異なるバンクに
ある第2のブロックの左上および右下の象限をそれぞれ
占めている。また、象限7Q1および象限7Q4は同じ
物理的関係を維持して、それぞれ第1のブロックの左上
の象限を占め、象限7Q2および象限7Q3は同じ物理
的関係を維持して、第2のブロックの右上の象限をそれ
ぞれ占めている。
【0102】3線形補間の間、1つのピクセルが、1つ
のMIPマップの中の4つのテクセルと隣接するMIP
マップの中の4つのテクセルの間にあるテクスチャ・マ
ップの位置に対応すれば、すべての8つのテクセルがキ
ャッシュからアクセスされる。両方のMIPマップから
アクセスされるテクセルは、大きい方のマップのデータ
をフィルタリングした小さい方のマップのデータと共
に、共通のテクスチャ・データを含む。上述のように、
オブジェクトのピクセルがレンダリングされる時、隣接
ピクセルは、そのテクスチャについて同じ2つのMIP
マップに対応することがしばしばあり、2つのマップを
記憶するキャッシュ・ブロックの間でキャッシュへの読
取りを連続的に切り換える必要が生じる。キャッシュS
DRAMチップの異なるバンクに隣接MIPの共通デー
タを記憶することによって、連続的な読取りサイクルの
間2つのMIPマップの間でのキャッシュ読取り切り換
えによる再ページングの負荷が発生しない。これは、3
線形補間の効率的な実施を提供する。
【0103】上述の説明から理解されるように、テクス
チャが8以上のマップ番号を持つ基本マップを含む場
合、そのテクスチャに対するブロック間のMIPマップ
割り付けは、本発明の上述の実施例に従って、あらかじ
め定められている。すなわち、マップ番号8を持つマッ
プの2つの象限が、図14に関して上述したように、バ
ンクの1つの範囲内の第1のブロックの予め定められた
位置を占め、マップ番号8を持つマップの別の2つの象
限が、反対バンクの別の1つのブロックの範囲内の予め
定められた反対の位置を占める。しかし、マップ番号7
以下の基本マップを持つテクスチャについては、(各バ
ンクに1つのブロックの)2つのブロック内の複数の位
置がマップを記憶するために使用可能であり、ホスト・
コンピュータによって選択される。複数のマップ部分が
単一ブロックのデータを共有する時、共有されたブロッ
ク内の各マップの位置を識別するため、以下に記述され
る方法で、サブテクスチャ識別子(ID)が割り当てら
れる。
【0104】図13の一連のMIPマップの構成に加え
て、図14は、異なるテクスチャからの第2の一連のM
IPマップ(図でチェッカー盤模様部分)がメモリ・ブ
ロックの間に割り当てられる。この第2のテクスチャの
MIPマップは小分割され、第1のテクスチャと同じ方
法で別々のブロックに記憶される。図14の構成が別々
のブロックに構成される異なるテクスチャのMIPマッ
プを示してはいるが、2つの異なるテクスチャからのテ
クスチャ・データを同じブロック内に記憶することもで
きる点は理解されるべきであろう。
【0105】上述のとおり、本発明の1つ実施形態にお
いて、キャッシュ・メモリは、テクスチャ・マッピング
・データの最高64までのブロック(各ブロックは25
6×256テクセルを含む)を記憶することができる。
キャッシュ・メモリは、ブロック0−31を収納するバ
ンク0およびブロック32−63を収納するバンク1と
いう2つのバンクに区分される。キャッシュ・ディレク
トリは、キャッシュのブロックに対応する最高64まで
のブロック・タグ・エントリを含む。キャッシュ・ディ
レクトリ内の各ブロック・タグの物理的な位置は、キャ
ッシュ・メモリ内のテクスチャ・データの対応するブロ
ックの物理的な位置を識別する。ブロックの位置を示す
ブロック・タグから、ブロック・インデックスが生成さ
れる。キャッシュのテクセルに関するキャッシュ・アド
レスは、ブロックに対するブロック・インデックスおよ
びキャッシュ・メモリ内のテクセル・アドレスによって
形成される。テクセル・アドレスは、テクセルに関する
補間された低位S,T座標を含み、また場合によっては
以下に述べるようにサブテクスチャIDのビットを含
む。
【0106】図15は、4象限に小区分されているマッ
プ番号9を持つテクスチャMIPマップの1例を示す。
MIPマップは512×5l2テクセルであり、従っ
て、各象限はサイズ256×256テクセルでありメモ
リの1ブロックに対応する。本発明の1つの実施形態に
従って、MIPマップの各象限に割り当てられるべきキ
ャッシュ・バンクを決定する簡単な方式がホスト・コン
ピュータによって実施される。MIPマップの4象限の
各々について、象限に関するSおよびT座標の最上位ビ
ットの値に対する論理的排他OR演算の結果が、象限が
割り当てられるキャッシュSDRAMバンクを指し示
す。
【0107】512×5l2テクセルのマップについて
は、9つのS座標ビットS[8:0]および9つのT座
標ビットT[8:0]がマップ内の各テクセルの位置を
指定する。象限境界は、SおよびT座標ビットS[8]
およびT[8]によって表されるSおよびT次元両方の
中間点に定められる。従って、マップ番号9を持つMI
Pマップの4つの象限の各々に関するキャッシュ・バン
クを決定するため、各象限の対応する最上位SおよびT
座標ビットS[8]およびT[8]の値に対する論理的
排他OR演算が実行される。同様に、マップ番号10を
持つMIPマップに関しては、そのの4つの象限の各々
に関するキャッシュ・バンクは、各象限の対応する最上
位SおよびT座標ビットS[9]およびT[9]の値に
対する論理的排他OR演算によって決定される。奇数の
マップ番号を持つMIPマップについては、隣接マップ
からの共通データが異なるバンクに記憶されるようにす
るため排他OR演算の結果が反転される。
【0108】図15で示される例において、ブロック1
ないしブロック4は、それぞれ、左上象限、右上象限、
左下象限および右下象限の512×512テクセル・マ
ップに対応する。ブロック1ないしブロック4につい
て、ビットS[8]、T[8]はそれぞれ[0,0]、
[1,0]、[0,1]および[1,1]に等しい。従
って、ブロック1について XOR S[8]XOR T
[8]演算の結果はゼロとなる。マップが奇数マップ番
号(すなわち9)を持つので、この結果の反転値(すな
わち1)によって、ブロック1はキャッシュ・バンク1
に記憶されるべきことが標示される。ブロック2につい
ては、S[8]XOR T[8]演算の結果の反転がゼ
ロであって、ブロック2はキャッシュ・バンク0に記憶
されるべきことが標示される。ブロック3およびブロッ
ク4については、 S[8]XORT[8]演算の結果
の反転がそれぞれ1およびゼロであって、ブロック3は
キャッシュ・バンク1に、ブロック4はキャッシュ・バ
ンク0にそれぞれ記憶されるべきことが標示される。
【0109】図15の例で示されているものと同じテク
スチャについてマップ番号10を持つマップに関する限
り、そのマップのサイズが1024×1024テクセル
であるため16個の256×256テクセル・ブロック
に区分けされる。各ブロック毎に、S[9]XOR T
[9]演算の結果がその特定ブロックに対するバンク番
号を標示する。マップ番号10を持つマップの各ブロッ
ク毎のXOR演算の結果は、マップ番号9を持つ隣接マ
ップの場合のように反転されずに、これら2つの対応す
る象限は異なるキャッシュ・バンクに記憶される。
【0110】マップのサイズに応じて、マップを表すテ
クスチャ・データ・ブロックのブロック・タグは、特定
のMIPマップ内のブロックの位置を示す少くとも1つ
の高位S座標ビットおよび高位T座標ビットを含む。マ
ップ番号9を持つ512×512テクセルMIPマップ
については、MIPマップ内の各ブロックの位置を示す
ためにブロック・タグ内にただ1つのS座標ビットおよ
びT座標ビットが必要とされる。マップ番号10を持
ち、16ブロックのデータを含む1024×1024テ
クセルMIPマップについては、MIPマップ内の各ブ
ロックの位置を示すためにブロック・タグ内に2つのS
座標ビットおよびT座標ビットが必要とされる。8以下
のマップ番号を持つマップに関する限り、ブロック・タ
グにSおよびTビットは必要とされない。テクスチャM
IPマップ・データをホスト・コンピュータの主メモリ
からキャッシュ・メモリへダウンロードする際、ホスト
・コンピュータは、上述の排他的OR演算方式を使用し
てブロック・タグの上位SおよびT座標ビットをデコー
ドして、各データ・ブロックが書き込まれるべき特定バ
ンクを決定する。
【0111】未使用メモリ空間を最小にするようにテク
スチャ・データを割り当てるために、各データ・ブロッ
クは、1サブブロックが64×64テクセルである16
個のサブブロックにさらに小区分される。テクスチャ・
データの各サブブロックは、ブロック内の特定サブブロ
ックの位置を識別するサブテクスチャIDを含む。サブ
テクスチャIDは、2つのSビットS[1:0]および
2つのTビットT[1:0]を含む。1つまたは複数の
テクスチャの1つまたは複数MIPマップからの複数サ
ブテクスチャを1つのブロックに記憶することも可能で
ある。
【0112】図16において、ブロック1およびブロッ
ク2が、各々16個の64×64テクセル・サブブロッ
クに小区分されているキャッシュのバンク0および1に
それぞれ割り当てられている。各ブロックのサブテクス
チャは、ST0ないしST15という符号をつけられ、
2つのS座標ビットおよび2つのT座標ビットを含むサ
ブテクスチャIDによって識別される。サブテクスチャ
は、上述のメモリ割り当て方式と整合性がとれるよう
に、一貫した符号が付けられるが2つのキャッシュ・バ
ンク内で鏡面反射位置を持つ。64×64テクセルのサ
ブテクスチャのサイズは例示のため選択したもので、変
えることはできる。一層小さいサイズのサブテクスチャ
は同じブロック内に更に多くのテクスチャを詰め込むこ
とができる。サブテクスチャのサイズを小さくすればサ
ブテクスチャIDが一層多くのビット必要とする点は理
解されるべきであろう。
【0113】レンダリングの間、一連のテクセルを補間
するため、テクスチャID、サブテクスチャIDおよび
当該テクスチャに関する基本マップのサイズを表す8ビ
ット・ワードが、3Dパイプラインを経由して、それら
データを20ビット・レジスタ(図示されてない)に一
時的に記憶するタイル作成/境界検査器へ送られる。補
間されるべきテクセルが異なるサブテクスチャIDまた
はテクスチャIDを持つ場合、新しいデータがタイル作
成/境界検査器へ送られ、レジスタに記憶される。サブ
テクスチャIDは以下に述べるようにテクセル・アドレ
スの一部として使用される。
【0114】テクセル・アドレスがサブテクスチャID
の下位S,T座標ビットを含むか否かは、アドレス指定
されているマップのサイズおよびそのテクスチャの基本
マップのサイズに依存する。アドレス指定されているマ
ップが、7以下のマップ・サイズであり、また、その対
応する基本マップもまた7以下のサイズである場合、以
下に詳細を説明するように、ブロック内のサブテクスチ
ャの位置のアドレスを示すため、テクセル・アドレスの
特定の上位アドレス・ビットが、サブテクスチャIDの
ビットを含む。上述のように、基本マップがマップ番号
8以上をもつ場合、それぞれのデータ・ブロックの範囲
内のそのテクスチャに関するMIPマップ象限のすべて
の位置はあらかじめ定義されている。従って、マップ番
号8以上を持つマップの1つからテクスチャが取り出さ
れる時、サブテクスチャを使用せず、既知のあらかじめ
定められた位置を使用して各象限に関するテクセル・ア
ドレスの上位ビットが生成される。しかし、テクスチャ
の基本マップが7以下のマップ番号を持つ時、MIPマ
ップ象限の位置はあらかじめ定められてなく、サブテク
スチャIDビットをテクセル・アドレスの上位ビットと
して使用してサブテクスチャの位置を決定する。
【0115】上述のように、異なるテクスチャからの複
数のマップは、テクスチャの基本マップが十分小さい限
り、単一のデータ・ブロックの異なるサブテクスチャ内
に記憶することができる。この場合、各マップについて
のテクスチャ・アドレスが下位テクスチャIDビットを
含む。例えば、4つの異なるテクスチャからのマップ番
号7を持つ4つの異なるマップは、1つのブロック内で
異なるサブテクスチャ内に割り当てられ、各テクスチャ
の基本マップのマップ番号が7である場合、サブテクス
チャIDの1S座標ビットおよび1T座標ビットが、テ
クスチャを見分けるテクセル・アドレスの一部である。
タイル作成/境界検査器がテクセル・アドレスを計算す
るルーチンは、図18を参照して後述される。
【0116】本発明の実施形態において、テクスチャM
IPマップ・データは、一度に1ブロックずつダウンロ
ードされる。しかし、サブテクスチャが主メモリからダ
ウンロードされることができるようにサブテクスチャI
Dをブロック・タグに含めることができる点は理解され
るべきであろう。また、本実施形態で記述されるブロッ
クおよびサブテクスチャのサイズは単に例示の目的のも
のにすぎず、アプリケーションにとって都合のよいよう
に変更することは可能である。
【0117】VI. キャッシュ・ブロック・タグおよびブ
ロック・インデックス キャッシュ・ディレクトリは、64個のエントリの各々
に関するブロック・タグを含み、各エントリ毎に対応す
るブロック・インデックスを識別する。ブロック・イン
デックスは、テクスチャ・データの対応するブロックの
先頭が記憶されるキャッシュの物理的な位置を識別す
る。ブロック・タグは、図17に示される方法でテクス
チャ・データの各ブロックをユニークに識別する23ビ
ットの識別子である。
【0118】テクスチャ・データの任意のテクセルをユ
ニークに識別するため、そのテクセルが対応するテクス
チャが識別されなければならない。本発明の1つの実施
形態において、テクスチャ・マッピング・ハードウェア
は、1つのテクスチャをユニークに識別する8ビット・
テクスチャIDを導入する。加えて、同じブロック内に
記憶される異なるテクスチャからのテクスチャ・データ
について、4ビットのサブテクスチャIDが、テクスチ
ャを識別するハードウェアによってサポートされる。こ
のように、本発明のテクスチャ・マッピング・ハードウ
ェアは、任意の1時点で使用可能な212すなわち409
6個のユニークなテクスチャをサポートする。
【0119】上述のとおり、各テクスチャは、一連のM
IPマップによって表現され、本発明の1つの実施形態
において、MIPマップの各々は、一連のMIPマップ
における位置を示すマップ番号を備えている。このよう
に、任意のテクセル・データは、そのテクスチャに関す
るテクスチャID、サブテクスチャIDおよび基本マッ
プのサイズによって識別されるだけでなく、それが対応
するMIPマップのマップ番号によっても識別される。
最後に、テクセルは、そのSおよびT座標(すなわちそ
の補間されたS,T値)によって、MIPマップ内でユ
ニークに識別される。
【0120】サブテクスチャIDおよびテクスチャ・マ
ップ基本サイズの他、テクセルをユニークに識別する上
記のパラメータ類を使用して23ビットのブロック・タ
グが生成される。マップ番号およびSならびにT座標に
関しては、本発明の1つの実施形態において、Sならび
にT座標を生成するために使用されるハードウェアが1
5ビットに限定されている。従って、この実施形態に関
する限り、ハードウェアによってサポートされる最大の
テクスチャ・マップは、15ビットSフィールド[1
4:0]および15ビットTフィールド[14:0]を
持ち、その結果、最大テクスチャ・マップは32K×3
2Kテクセルとなる。上述のとおり、テクセル・データ
の各ブロックは、256×256テクセルを含む。従っ
て、低位SならびにTビット(すなわちT[7:0]な
らびにS[7:0])がテクセル・データ・ブロック内
の特定のテクセルを識別するために使用される。高位S
ならびにTビット(すなわちT[14:8]ならびにS
[14:8])だけがテクセル・データの特定ブロック
を識別するためブロック・タグの中で使用される。
【0121】上述のとおり、各MIPマップは、その対
応するテクスチャに関する一連のマップ内でそのマップ
を識別するマップ番号を割り当てられる。あるテクスチ
ャに関する一連のマップにおけるMIPマップの数にか
かわりなく、その中の最小の(すなわち1×1テクセル
のサイズの)MIPマップにマップ番号0が割り当てら
れる。32K×32Kテクスチャに関する一連のMIP
マップの最大のものは16個のMIPマップを含むの
で、サポートされる最大のMIPマップ番号は15であ
る。
【0122】図17は、ブロック・タグが形成される様
態を示す。ブロック・タグの上位8ビット[22:1
5]は、テクスチャ・データのブロックによって表され
るテクスチャのテクスチャIDに対応する。ブロック・
タグの低位ビット[13:00]は、高位TならびにS
座標[14:08]ならびにS[14:08]に対応す
る。ブロック・タグ[14]は、高位T座標フィールドの
値と連係してマップ番号の識別を可能にするマップ・ビ
ットに対応する。最大32K×32Kより小さいマップ
は、小さくなる程少ないビット数となって、SなびにT
アドレス・フィールド全体を使用しない点は理解される
べきであろう。図17に示されるように、9以上のマッ
プ番号を持つマップについては、未使用ビット中の最下
位T座標ビットに対応するブロック・タグ・ビットは、
論理「0」にセットされ、残りの上位T座標ビットに対
応するブロック・タグ・ビットは、論理「1」にセット
される。例えば、T座標ビットすべてを使用するマップ
番号15については、マップ・ビットが論理「0」にセ
ットされている。マップ・ビットに対応するブロック・
タグ・ビット[14:07]および高位T座標ビット
[14:8]を読み取ることによって、左から右に読ん
で最初の論理「0」に出会う位置が、ブロック・タグに
よって表されるマップ番号を示す。論理「1」がブロッ
ク・タグ・ビット[14:08]のすべてに含まれてい
る場合、そのマップ番号が8以下であることを表す。
【0123】上述のように、8以下のマップ番号を持つ
特定テクスチャのマップのすべては、それぞれが別のバ
ンクに位置する2つのデータ・ブロック内に記憶され
る。8以下のマップ番号を持つマップの各々の2つの象
限すなわち半分が、2つのブロックの各々の中に記憶さ
れる。ブロック・タグ・ビット[07]は、8以下のマ
ップ番号を持つマップの1/2部分の各々が2つのブロ
ックのいずれに記憶されているかを示す。このように、
8以下のマップ番号を持つマップの各々について、ブロ
ック・タグ・ビット[07]は、そのマップの1/2が
バンク・ゼロに記憶されている場合は「0」の値を持
ち、バンク1に記憶されている別の1/2について値
「1」を持つ。特定テクスチャからの8以下のマップ番
号を持つマップのすべてが2つのブロック内に記憶され
るので、それらのブロックを識別するため、1ブロック
・タグ・ビットだけが使用される点は理解されるべきで
あろう。従って、8以下の番号を持つマップの各々に関
する特定のマップ番号は、ブロック・タグ・フィールド
の一部として記憶されない。
【0124】8以下の番号を持つマップの各々の各象限
に関するブロック・タグ・ビット[07]の値は、当該
象限が記憶されるべきバンクを決定する方式に基づいて
計算される。この方式は、マップ番号が偶数の場合各象
限について実行されるMSB(上位)ビット値の論理的
排他OR演算であり、奇数の場合は上記演算結果の反転
値である。
【0125】図17に示されるように、上位Sアドレス
・ビットに対応するブロック・タグ・ビット[6:0]
は、Sアドレス・ビットが使われないマップ番号8以下
の小さいマップについて論理「0」にセットされるた
め、論理「0」に等しくなければならないことを示すマ
ップ番号に関連して、これらのビットのいずれかが論理
「1」として検出されればキャッシュ・ディレクトリ・
エントリには有効なデータが含まれていないことを示す
ように、上位Sアドレス・ビットを使用することができ
る。
【0126】各MIPマップ象限について、該象限に関
する最上位SならびにT座標の値に対する論理的排他O
R(すなわちXOR)演算の結果が、該象限が割り当て
られるべきキャッシュのSDRAMバンクを指し示す。
バンク番号は、偶数のマップ番号を持つマップについて
はこのXOR演算結果に等しく、奇数のマップ番号を持
つマップについてはこのXOR演算結果の反転値に等し
い。これは、図17のテーブルの右欄に、XOR演算を
示す記号"^"および論理反転を示す記号"!"を用いて示
されている。9以上のマップ番号を持つマップに関して
は、各象限は、少なくとも1つのデータ・ブロックの全
体を使用し、各ブロックは、(図17の最後の欄に示さ
れる)XOR演算によって指し示されるバンクに記憶さ
れる。
【0127】8以下のマップ番号を持つマップについ
て、それらのマップのすべては、(各バンクに1つのブ
ロックという形態で)2つのデータ・ブロックを占め
る。図17のテーブルの最後の2つの行は、8以下のマ
ップ番号を持つマップの別々の半分(2つの象限)に対
応する。ブロック・タグ・ビット[07]が、マップの
半分がバンク0ブロックあるいはバンク1ブロックのい
ずれに記憶されるかを表す。ビット[07]の値は、上
述のXOR演算に基づいて計算される。例えばマップ番
号8を持つマップの場合、マップの象限の各々につい
て、ブロック・タグ・ビット[07]は、S[7] X
OR T[7]に等しい。マップ番号7を持つマップの
象限の各々について、ブロック・タグ・ビット[07]
は、S[6] XOR T[6]の反転値に等しい。7
より小さいマップ番号を持つマップの各象限に関するブ
ロック・タグ・ビット[07]は、同様に、番号の奇偶
に応じて計算される。(8以下のマップ番号を持つ)マ
ップ各々の2つの象限は同じブロックに記憶されるた
め、各マップのそれらの2つの象限が同じブロック・タ
グ・ビット[07]を持つこととなる点は理解されるべ
きであろう。
【0128】(アクセスされるべきテクセルをアドレス
する)補間されたS,T座標とキャッシュ・ディレクト
リの23ビット・ブロック・タグの中の1つの間でヒッ
ト(一致)が発生すると、キャッシュ・ディレクトリ
は、そのテクセルを含むキャッシュ・ブロックが記憶さ
れているキャッシュ・メモリの物理的な位置を識別する
ブロック・インデックスを生成する。キャッシュは、任
意の1時点で64ブロックのテクセル・データを記憶す
る。従って、キャッシュ・メモリにおけるブロック・ア
ドレスを識別するため、先に述べたように、キャッシュ
に対する高位アドレス・ビットの役目を果たす6ビット
のブロック・インデックス(26=64)が提供され
る。
【0129】テクセル・アドレスは、256×256テ
クセル・ブロック内でアクセスされるべきテクセルの位
置を示すビットS[7:0]およびT[7:0]を含む
16ビット・ワードである。テクセル・アドレスは、補
間されたS,T座標、アクセスされるべきマップのマッ
プ番号、テクスチャならびにサブテクスチャアID、お
よびテクスチャの基本マップのサイズを使用して、図1
8を参照して記述されるルーチンに従って計算される。
上述のように、テクセルが記憶される該当するインター
リーブを決定するため、テクセル・アドレスの下位(L
SB)Sビットおよび下位(LSB)Tビットがデコ―
ドされる。テクセル・アドレスの残りの14ビットは、
(キャッシュ・アドレスの6つのMSBすなわち上位ビ
ットである)6つのブロック・インデックス・ビットと
連係して、デコードされたキャッシュ・インターリーブ
内のSDRAMペアに送られるキャッシュ・アドレスと
して使用される。
【0130】VII. テクセル・アドレス計算 レンダリングの間、タイル作成/境界検査器エレメント
72は、パラメータ補間器64から、アクセスされるべ
きテクセルの補間されたS,T値およびテクセルがアク
セスされるべきマップのマップ番号を表す4ビット・ワ
ードを受け取る。パラメータ補間器64から受け取る補
間されたS,T座標値の各々は、16個の整数ビットお
よび8個の小数ビットを含む。マップ番号を表す4ビッ
ト・ワードは、(テクセル・サイズ1の)マップ番号0
から(32k×32kテクセル・サイズの)マップ番号
15に至る範囲を含み、既に記述したように勾配から計
算される。次に、補間されたS,T値とキャッシュ・デ
ィレクトリにおけるブロック・タグ・エントリの比較が
実行される。ブロック・タグの1つとのヒットが発生す
れば、ブロック・インデックスが生成される。キャッシ
ュ・ディレクトリ・サーチが実行されている時間と並列
して、図18を参照して記述されるルーチンに従ってテ
クセル・アドレスが計算される。
【0131】テクセル・アドレスは、タイル作成/境界
検査器によって、テクセルのテクスチャID、サブテク
スチャID、マップ番号、基本マップ番号および補間さ
れたS,T座標を用いて計算される。タイル作成/境界
検査器はこれらの情報のすべてを持つ。アクセスされる
べきユニークなテクセル毎に、タイル作成/境界検査器
は、パラメータ補間器から、(S、Tの各々について1
6個の整数ビットと8個の小数ビットを含む)補間され
たS,T座標およびテクセルがアクセルされるべきマッ
プ番号を表す4ビット・ワードを受け取り、更に、(パ
ラメータ補間器を通過して来る)3Dパイプラインを経
由して、8ビット・テクスチャID、4ビット・サブテ
クスチャIDおよび該テクスチャに対する基本マップの
サイズを表す8ビット・ワードを含むコマンドを受け取
る。基本マップのサイズを表す8ビット・ワードは、本
発明のマップ番号づけ方式に対応し基本マップのS軸と
T軸のサイズをそれぞれ定義する4つのSビットならび
4つのTビットを含む。例えば、4ビットのSおよびT
ワードの各々は、(1テクセル次元に対応する)ゼロか
ら(32kのテクセルの次元に対応する)15に至る範
囲の値を持つことができる。テクスチャID、サブテク
スチャIDおよび基本マップ番号を含む20ビット・デ
ータが、キャッシュからアクセスされるべき次のテクセ
ルに関する新しく異なるデータと置き換えられるまで、
タイル作成/境界検査器内に配置される(図示されてな
い)20ビット・レジスタに一時的に記憶される。この
情報を使用して、タイル作成/境界検査器は、各テクセ
ル毎のテクセル・アドレスを計算する。
【0132】上述のように、(256×256テクセル
の基本マップ以上に対応する)8以上のマップ番号の基
本マップを持つテクスチャについては、そのテクスチャ
内の各マップの象限は、テクスチャ・データ・ブロック
およびキャッシュ・メモリ・バンク内のあらかじめ定め
られた位置を持つ。そのようなテクスチャのテクセルに
関するテクセル・アドレスの各ビットは、既知のあらか
じめ定められた割り当て方式に従って計算される。しか
し、(128×128テクセルの基本マップ以下に対応
する)7以下のマップ番号の基本マップを持つテクスチ
ャについては、そのテクスチャの複数マップの各象限に
ついて多数のメモリ位置が使用可能であるので、テクセ
ル・アドレスの一定の上位ビットが、サブテクスチャI
Dのビットのすべてまたは一部を含む必要がある。
【0133】テクセル・アドレスを計算するためにタイ
ル作成/境界検査器によって実施されるルーチンが図1
8の流れ図によって示される。ルーチンは、完了するた
め1サイクルを必要とする。ルーチンは、テクスチャ・
マッピング・チップの境界検査器部分を形成する一組の
論理ゲート(図示されてない)によって実施されること
ができる。図18によって概要が示されているルーチン
を実行する論理ゲートを実施する方法は当業者によって
理解されるべきものであろう。例えば、このルーチンを
Verilogのようなソフトウェア・シミュレーショ
ン言語で書き、メイン・プロセッサ上で動くSynop
sysのような合成ツールによって論理ゲート回路に変
換することが可能である。その代替方法として、このル
ーチンをソフトウエアで書きプロセッサによって実行す
ることもできる ルーチンはステップ250で開始し、テクセル・アドレ
ス・ビットS[7:0]およびT[7:0]が、補間さ
れたS,T座標ビットS[7:0]およびT[7:0]
に等しく なるように事前設定される。このステップで
事前設定された値は、後にリセットされない限りそのま
まの値が維持される。次に、補間されたテクセルが記憶
されている特定マップが8以上のマップ番号を持つか否
かが判断される(ステップ262)。もしそうであれ
ば、そのようなテクセルに関する限りこのルーチンは終
了し、テクセル・アドレスに関するビット値は、事前設
定された補間されたS,T座標のまま残る。
【0134】マップ番号が8未満であれば、ルーチンは
ステップ254に進み、テクセルがバンク番号1または
バンク番号0のいずれに記憶されているかが決定され
る。上述のように、ブロック・タグ・ビット[07]の
値を検査することで、どちらのバンクにテクセルが記憶
されているかはわかる。
【0135】テクセルがバンク番号1に記憶されている
場合、ルーチンはステップ256へ進み、一定のテクセ
ル・アドレス・ビットをその事前設定値からリセットす
る。マップ番号1ないし4を持つマップについては、テ
クセル・アドレス・ビットS[4]=1、マップ番号1
および2を持つマップについては、テクセル・アドレス
・ビットS[2]=1とする。テクセルがバンク0に記
憶されている場合、ルーチンはステップ258へ進み、
マップ番号0ないし5を持つマップについては、テクセ
ル・アドレス・ビットS[5]=1とし、マップ番号0
ないし3を持つマップについては、テクセル・アドレス
・ビットS[3]=1とし、マップ番号0および1を持
つマップについては、テクセル・アドレス・ビットS
[1]=1とする。
【0136】ステップ256、ステップ258いずれの
後もステップ260へ進み、基本マップが8以上のマッ
プ番号を持つか否か判断される。そうであれば、ステッ
プ262へ進み、テクセルがバンク0または1のいずれ
に記憶されているかが判断される。テクセルがバンク1
に記憶されている場合、ルーチンはステップ264へ進
み、マップ番号7を持つマップについては、テクセル・
アドレス・ビットS[7]=0とし、マップ番号0ない
し6を持つマップについては、テクセル・アドレス・ビ
ットS[7:6]=0:1とする。次に、ルーチンはそ
のようなテクセルについて終了する。バンク0に記憶さ
れているテクセルの場合、ルーチンはステップ266へ
進み、マップ番号7を持つマップについては、テクセル
・アドレス・ビットS[7]=1とし、マップ番号0な
いし6を持つマップについては、テクセル・アドレス・
ビットS[7:6]=1:0とする。次に、ルーチンは
そのようなテクセルについて終了する。
【0137】基本マップが8以上のマップ番号を持って
いない場合、ルーチンはステップ268へ進み、基本マ
ップが7に等しいマップ番号を持っているか否か判断さ
れる。そうであれば、ステップ270へ進み、テクセル
がバンク0または1のいずれに記憶されているかが判断
される。テクセルがバンク1に記憶されている場合、ル
ーチンはステップ272へ進み、マップ番号7を持つマ
ップについては、テクセル・アドレス・ビットS[7]
をサブテクスチャIDビットS[1]の反転に等しく、
テクセル・アドレス・ビットT[7]をサブテクスチャ
IDビットT[1]に等しくし、マップ番号0ないし6
を持つマップについては、テクセル・アドレス・ビット
S[7:6]をサブテクスチャIDビットS[1]の反
転および1にそれぞれ等しくさせ、テクセル・アドレス
・ビットT[7]をサブテクスチャIDビットT[1]
に等しくする。次に、ルーチンはそのようなテクセルに
ついて終了する。テクセルがバンク0に記憶されている
場合、ルーチンはステップ274へ進み、マップ番号7
を持つマップについては、テクセル・アドレス・ビット
S[7]をサブテクスチャIDビットS[1]に等し
く、テクセル・アドレス・ビットT[7]をサブテクス
チャIDビットT[1]に等しくし、マップ番号0ない
し6を持つマップについては、テクセル・アドレス・ビ
ットS[7:6]をサブテクスチャIDビットS[1]
および0にそれぞれ等しくさせ、テクセル・アドレス・
ビットT[7]をサブテクスチャIDビットT[1]に
等しくする。次に、ルーチンはそのようなテクセルにつ
いて終了する。
【0138】(ステップ260において)テクスチャの
基本マップが8以上のマップ番号を持ってなく、かつ、
(ステップ268において)マップ番号が7に等しくな
い場合、当然テクスチャの基本マップが6以下のマップ
番号を持っているので、ルーチンはステップ276へ進
み、テクセルがバンク0または1のいずれに記憶されて
いるかが判断される。テクセルがバンク1に記憶されて
いる場合、ルーチンはステップ278へ進み、テクセル
・アドレス・ビットS[7:6]をサブテクスチャID
ビットS[1:0]の反転に等しくセットし、テクセル
・アドレス・ビットT[7:6]をサブテクスチャID
ビットT[1:0]に等しくセットする。次に、ルーチ
ンはそのようなテクセルについて終了する。テクセルが
バンク0に記憶されている場合、ルーチンはステップ2
80へ進み、テクセル・アドレス・ビットS[7:6]
をサブテクスチャIDビットS[1:0]に等しくセッ
トし、テクセル・アドレス・ビットT[7:6]をサブ
テクスチャIDビットT[1:0]に等しくセットす
る。次に、ルーチンはそのようなテクセルについて終了
する。
【0139】VIII. テクスチャ・データ構成の例 以下の例は、本発明 の上述の実施形態に従って、ホス
ト・コンピュータがテクスチャ・データを構成するプロ
シージャを説明するものである。特定のアプリケーショ
ンに関して、レンダリングされるプリミティブAがテク
スチャAに対応し、プリミティブBがテクスチャBに対
応する場合がある。1つの可能性として、ホスト・コン
ピュータがテクスチャAを複数のテクスチャ・データ・
ブロックに構成し、テクスチャBをテクスチャAと同じ
ブロック内の異なるサブテクスチャに構成することがあ
る。ホスト・コンピュータは、プリミティブAをレンダ
リングする前にテクスチャAおよびBを含むテクスチャ
・データ・ブロックをキャッシュ・メモリへダウンロー
ドする。
【0140】代替方法として、ホストはテクスチャAを
複数のテクスチャ・データ・ブロックに構成して、キャ
ッシュ・メモリにテクスチャAを含むブロックをダウン
ロードすることもできる。次に、ホスト・コンピュータ
は、テクスチャAと同じブロックの異なるサブテクスチ
ャ内で主メモリにテクスチャBを構成することができ
る。このような形態では、ホスト・コンピュータは、
(図2の)テクスチャ・マッピング・チップ46の動作
を停止させるコマンドを発し、(同じブロック内のテク
スチャAおよびBを含む)新しく構成されたテクスチャ
・データ・ブロックをテクスチャ・マッピング・システ
ムのキャッシュ・メモリへダウンロードする。理解され
ることであろうが、停止状態が実行されず、新たに構成
されたデータが主メモリからテクスチャ・マッピング・
システムのキャッシュ・メモリにダウンロードされなか
ったならば、間違ったテクスチャ・マッピング・データ
が、プリミティブBのレンダリングの間アクセスされる
可能性がある。なぜならば、プリミティブBをレンダリ
ングする時、テクスチャBを含むデータ・ブロックに関
する読取りキャッシュ・タグがテクスチャAを記憶する
キャッシュのデータ・ブロックに対応するブロック・タ
グと一致するためキャッシュ・ディクトリのヒットが発
生するからである。しかし、キャッシュのデータ・ブロ
ックは、テクスチャAに関するテクスチャ・データだけ
を記憶していてテクスチャBに関するものは記憶してい
ない。
【0141】IX. 3次元プリミティブ・パイプラインの
バイパスおよびテクスチャ・マップのダウンロードに関
する割り込み方式 上述のように、本発明の1つの機能によって、新しいテ
クスチャのためのMIPマップは、3Dプリミティブ・
データを扱うパイプラインとは別個のデータ経路を経由
してテクスチャ・マッピング・ハードウェアのローカル
・メモリにダウンロードされる。(図2の)テクスチャ
・マッピング基板12および(図4の)テクスチャ・マ
ッピング・チップ46は各々、3Dプリミティブ・デー
タおよびテクスチャ・データをそれぞれ受け取る独立し
たポートを有する。3Dプリミティブ・データはバス1
8経由で集線器チップ36から受け取られ、一方、テク
スチャ・データは2D加速器チップ34からバス24を
経由で受け取られる。従って、新しいテクスチャ・デー
タがホスト・コンピュータ15からテクスチャ・マッピ
ング・チップ46へダウンロードされる時、フロントエ
ンド基板10を通過する3Dプリミティブ・パイプライ
ンおよびテクスチャ・マッピング・チップ46はフラッ
シュされる必要はなく、このため、新しいテクスチャ・
データがホスト・コンピュータからテクスチャ・マッピ
ング・チップへダウンロードされる時は必ず3Dプリミ
ティブ・パイプラインのフラッシュを必要とする従来技
術のテクスチャ・マッピング・システムに比較して帯域
幅が増大する。
【0142】3Dプリミティブ・パイプラインをバイパ
スしてテクスチャ・データをダウンロードする独立した
データ経路は、テクスチャ・マッピング基板上のローカ
ル・メモリがキャッシュとして実施される本発明の上述
の実施形態と相まって特に有効である。上述のように、
新しいテクスチャ・データがキャッシュにダウンロード
される場合、テクスチャに関する一連のMIPマップ全
体ではなく、必要とされるMIPマップ部分だけがダウ
ンロードされる。このようにして、3Dパイプラインの
バイパスは、パイプラインをフラッシュすることなくキ
ャッシュ・ミスの処理を取り扱うことを可能にする。
【0143】上述のように、図3に示される本発明の1
つの実施形態において、グラフィックス・システムの特
定部分が反復複製して構成されることによって、システ
ムの帯域幅が増加される。テクスチャ・マッピング基板
12は、2つのテクスチャ・マッピング・チップ46A
ならびに46B、および2つのキャッシュ・メモリ48
Aならびに48Bを備えている。この実施形態では、典
型的には2つのテクスチャ・マッピング・チップの両方
が同時に同じテクスチャ・データを使用するプリミティ
ブに関して処理を行うので、両方のキャッシュ・メモリ
48は同じテクスチャ・データを常に保持する。従っ
て、ある一方でキャッシュ・ミスが発生すれば必ず両方
を更新するので、同じテクスチャ・データが別々の動作
で両方のキャッシュへダウンロードされる必要のないこ
とが保証されるため、この実施形態はシステムの帯域幅
を節約する。
【0144】図3の複式テクスチャ・マッピング・チッ
プ実施形態において、各キャッシュ・メモリは、ホスト
・コンピュータからダウンロードされるテクスチャ・デ
ータのみについて更新され、テクスチャ・マッピング・
ハードウェアからローカルに書き込まれることはない。
従って、キャッシュの1つにおけるキャッシュ・ミスに
応答してテクスチャ・データがホスト・コンピュータか
らダウンロードされる時は必ず両方のキャッシュが新し
いテクスチャ・データで更新されることが保証されるた
め、2つのキャッシュ・メモリの間の整合性が維持され
る。テクスチャ・マッピング・チップ46の1つにキャ
ッシュ・ミスが発生し割り込みが生成されると、ダウン
ロードされたテクスチャ・データを用いて両方のキャッ
シュ・メモリを更新することができるように、両方のテ
クスチャ・マッピング・チップ46が停止させられる。
このように、いずれかのテクスチャ・マッピング・チッ
プから発せられるキャッシュ・ミス信号に応答して、テ
クスチャ・マッピング・チップの各々は動作を停止す
る。更に、本発明は、異なるキャッシュ・ブロックに対
する2つのテクスチャ・マッピング・チップ46の同時
キャッシュ・ミスをサポートし、キャッシュ・ミスに応
答して、新しいテクスチャ・データ・ブロックの両方を
両方のキャッシュにダウンロードする。
【0145】図2に示されるように、3Dプリミティブ
・パイプラインのバイパスは、2D加速器チップ34を
通過する2Dプリミティブ・パイプラインを使用してテ
クスチャ・データをダウンロードすることによって達成
される。テクスチャ・マッピング・チップ46へテクス
チャ・データをダウンロードするデータ経路は、3Dプ
リミティブ・パイプラインをバイパスする点は同じとし
ても、多数の形態で実施できることは理解されるべきで
あろう。例えば、ホスト・コンピュータからテクスチャ
・マッピング基板へテクスチャ・データをダウンロード
する1つの専用データ経路を備えることも可能である。
【0146】本発明のグラフィックス・システムのホス
ト・コンピュータが、同時に動作する複数のプロセスを
持ち、プロセスが割り込まれないように一定のシステム
資源をロックすることを可能にする何らかの方式を提供
するUNIXのようなオペレーティング・システムを使
うこともある。ロッキング方式の使用によって、特定の
ハードウェア資源を使用するプロセスは、それらの資源
のロックをはずすまでプロセスはスワップアウトされな
いことを保証することができる。
【0147】本発明の1つの実施形態において、急速ロ
ック(fast lock)と遅速ロック(slowlock)という2つの
タイプのロックがプロセスによる使用のため用意され
る。急速ロックが使われると、スワップインされるプロ
セスは、適切なハードウエア資源を検査して、そのプロ
セスがそれらの資源を使用する最後のプロセスであった
か否か判断する。そうであれば、プロセスはハードウェ
ア資源状態を復元することなく継続する。しかし、最後
のものでない場合、遅速ロックが要求され、そのプロセ
スが最後にスワップアウトされた時の状態にハードウエ
ア資源が復元される。同様の結果を達成することができ
る多数の代替方法があることは理解されるべきであろ
う。
【0148】3Dプリミティブをレンダリングする間2
Dプリミティブ・パイプラインを使用してテクスチャ・
データをダウンロードする本発明の実施形態において、
2Dおよび3Dプロセスは同時に動かされない。ホスト
・コンピュータのオペレーティング・システムによって
提供されるロッキング方式の使用によって、3Dパイプ
ラインが空でない限り2Dプロセスは開始しないこと、
および、2Dパイプラインが空でない限り3Dプロセス
は開始しないことを保証することによって、上記制約が
守られる。3Dプロセスが開始する時それはロックをか
け、先行プロセスが2Dであった場合2Dパイプライン
が空になるまで開始せず待機する。同様に、2Dプロセ
スが開始する時それはロックをかけ、先行プロセスが3
Dであった場合3Dパイプラインが空になるまで開始せ
ず待機する。
【0149】プロセスによって、3Dおよび2D動作の
両方を実行し、かつ、遅速ロックを放棄することなく3
Dプリミティブと2Dプリミティブの間の切り換えを行
うこともできる。そのようなプロセスは、また、3Dパ
イプラインがハードウェアへ2Dプリミティブ・データ
をダウンロードする前に空であることを確認し、同様に
2Dパイプラインがハードウェアへ3Dプリミティブ・
データをダウンロードする前に空であることを確認する
方式を実行する。この方式を達成するため、2Dおよび
3Dプリミティブ・パイプラインの各々が空であるか否
かを標示するレジスタ状態ビットが用意されることもあ
る。2Dおよび3Dプリミティブ・データを使うプロセ
スは、2Dおよび3Dプリミティブ・データの間の切り
換えを行う前にパイプラインがが空であることを確認す
るため、この状態レジスタを読み取る。
【0150】上記の本発明の実施形態はキャッシュとし
て実施されるテクスチャ・マッピング基板上のローカル
・メモリを含むが、本発明はそれに限定されない点は理
解されるべきであろう。テクスチャ・マッピング基板上
のローカル・メモリがキャッシュでなく、プリミティブ
がレンダリングされる時テクスチャ・マッピング・デー
タがローカル・メモリで使用可能であるようにするた
め、3Dプリミティブ・パイプラインとは別の経路を経
由して、プリミティブがレンダリングされる前に、プリ
ミティブをレンダリングするために必要とされるテクス
チャ・マッピング・データの各ブロックがダウンロード
されることを保証するようなその他の技術を使用するテ
クスチャ・マッピング・システムを実施することもでき
る。
【0151】更に、ホスト・コンピュータによるローカ
ル・メモリのデータ・ブロックの更新のための割り込み
を生成する本発明の方式は、多くの他のアプリケーショ
ンについて実施することができ、テクスチャ・マッピン
グ・ハードウェア・システムにおける使用に限定されな
い点は理解されなければならない。この方式は、処理さ
れるべきデータ・ブロックを記憶する主メモリを備える
ホスト・コンピュータ、および処理されるべきデータ・
ブロックを記憶するローカル・メモリを備えるデータ処
理ハードウェアを含むデータ処理システムにとって利点
がある。
【0152】X. キャッシュ・ブロック置き換え方式 上述のように、キャッシュにないテクスチャ・データ・
ブロックについてキャッシュ・ミスが発生すると、ホス
ト・コンピュータは、要求されたテクスチャ・データの
ブロックを(図2の)キャッシュ48へダウンロードす
る。キャッシュがいっぱいの時キャッシュ・ミスが発生
すると、キャッシュ・ブロックの1つが、新しくダウン
ロードされるテクスチャ・データ・ブロックと置き換え
られる。本発明の1つの実施形態において、最も以前に
使用されたキャッシュ・ブロックが判定され、キャッシ
ュの活動的ブロックを維持するための置き換え用として
そのブロックが選択される。ホスト・コンピュータ15
のメモリ17に記憶されホスト・コンピュータのプロセ
ッサ19上で動くソフトウェア・ルーチンによって、置
き換えられるべきキャッシュ・ブロックが決定される。
テクスチャ・マッピング・チップ46は、置き換えられ
るべきキャッシュ・ブロックを決定するソフトウェア・
ルーチンをサポートする2組のレジスタを含む。キャッ
シュ・ミスが発生すると、これらのレジスタが、3Dバ
イパス・データ経路を経由してホスト・コンピュータに
よって読み取られ、置き換えられるべきキャッシュ・ブ
ロックを決定する際に使用される。
【0153】レジスタの第1の組は、バンク0およびキ
ャッシュ48の1つにそれぞれ対応するように配置さ
れ、最も最近使用された2つの32ビット・レジスタM
RU0およびMRU1(集合的にMRU、Most Recentl
y Usedと呼ぶ)を含む。これらのレジスタの各ビット
は、その対応するキャッシュ・バンク内に含まれる32
個のキャッシュ・ブロックの1つに対応する。あるブロ
ックについてキャッシュ・ヒットが発生するたびごと
に、最も最近使用されたレジスタがキャッシュ・ヒット
を蓄積するように、MRU0またはMRU1における対
応するビットがセットされる。
【0154】レジスタの第2の組は、バンク0およびキ
ャッシュの1つにそれぞれ対応するように配置され、現
在使用中の32ビット・レジスタCU0およびCU1
(集合的にCU、Currently Usedと呼ぶ)を含む。CU
0またはCU1の1つのビットがセットされている場
合、それは、対応するキャッシュ・ブロックがキャッシ
ュのミニディレクトリに現在存在し、従って置き換えら
れるべきものではないことを標示する。キャッシュのミ
ニディレクトリの詳細は後述する。
【0155】キャッシュ・ミスが発生し、ホスト・コン
ピュータへの割り込みが起きると、図19の流れ図によ
って示されるソフトウェア・ルーチンが、ホスト・コン
ピュータのプロセッサ19によって実行され、ダウンロ
ードされるように要求されたテクスチャ・データを含む
ブロックとどのキャッシュ・ブロックを置き換えるべき
かが決定される。ソフトウェア・ルーチンは、置き換え
ルーチンを実行する際に使用される2つの64ビット状
態ワード(すなわちBLOCKS_TO_USEおよび
BLOCKS_BUSY)を保持する。これらの状態ワ
ードの64状態ビットの各々は、64個のキャッシュ・
ブロックの1つに対応する。
【0156】図19のステップ300において、それぞ
れ初期的に置き換え可能状態にあることを各ビットが標
示するようにBLOCKS_TO_USEが初期化され
る、ステップ302において、ルーチンはキャッシュ・
ミス割り込みが受け取られたか否かを判断するため継続
的に検査し、割り込みが検出されると、ステップ304
へ進み、3Dバイパス・データ経路を経由してレジスタ
MRUおよびCUを読み取る。上述のように、2つのテ
クスチャ・マッピング・チップが使われている本発明の
実施形態においては、2つのチップのキャッシュ・メモ
リは、同じテクスチャ・データを常時保持する。従っ
て、システムが2つのテクスチャ・マッピング・チップ
46を含むならば、両方のチップのレジスタMRUおよ
びCUが読み取られ、ルーチンは、置き換え用として、
いずれかのテクスチャ・マッピング・チップにおいて最
も以前に使用されたキャッシュを選択することができ
る。ステップ306において、MRUまたはCUでオン
にされているビットに対応するBLOCKS_TO_U
SEのビットをオフにする。2つ以上のテクスチャ・マ
ッピング・チップが使用される実施形態では、MRUと
CUの論理和を使用して、オフにすべきBLOCKS_
TO_USEのビットを決定する。
【0157】ステップ308で、BLOCKS_TO_
USEのいずれかのビットがオンにされているかという
判断が行われ、少くとも1つがオンであれば、ルーチン
はステップ310へ進み、BLOCKS_TO_USE
のオンにされているビットの数が所定のしきい値より少
ないか否かの判断が行われる。このステップは、複数の
キャッシュ・ミスに関するキャッシュ・ブロック使用実
績の維持を援助し、(後述される)将来のキャッシュ・
ミス割り込みの適切な処理を確実にするため実行され
る。BLOCKS_TO_USEのオンにされているビ
ットの数が所定のしきい値より少ない場合、ルーチンは
ステップ312へ進み、MRUのビットのすべてがオフ
にされる。この結果、MRUは、現在処理されているキ
ャッシュ・ミスの後に発生するキャッシュ・ヒットにつ
いてのみキャッシュ・ヒットを累積し始める。本発明の
1つの実施形態では、上記しきい値は、BLOCKS_
TO_USE中オンにされた11ビットと設定され、こ
れは11個のキャッシュ・ブロックが置き換えに使用で
きることを標示する。
【0158】ステップ312でMRUがクリアされた
後、または、ステップ310でBLOCKS_TO_U
SEのオンのビット数が所定のしきい値未満であると判
断された後、ルーチンはステップ314へ進み、BLO
CKS_TO_USEでオンにセットされたビットの1
つが、ダウンロードされるべきテクスチャ・データの新
しいブロックとの置き換え用として選択される。ステッ
プ314において置き換えのため選択されたブロック
が、図21を参照して後に説明する方法で、テクスチャ
・データの新しいブロックによって置き換えられる。ス
テップ314において、置き換えられるブロックが選択
された後、ルーチンはステップ302へ戻り、別のキャ
ッシュ・ミス割り込みを待つ。
【0159】ステップ308でBLOCKS_TO_U
SEのビットにオンにされているビットがないと判断さ
れると、ルーチンはステップ316へ進み、BLOCK
S_BUSYが、MRUとCUの論理和と等しく設定さ
れる。従って、BLOCKS_BUSYでセットされて
いるビットだけが、MRUまたはCUレジスタのどちら
かにセットされているビットに対応する。その後、BL
OCKS_TO_USEは、BLOCKS_BUSYの
補数に等しく設定される。このような形態では、MRU
およびCUでオンにされ、置き換え用に選択されるべき
でないことを標示するビットに対応するビットを除い
て、BLOCKS_TO_USEの各ビットはオンにさ
れる。
【0160】ステップ316でBLOCKS_TO_U
SEがBLOCKS_BUSYの補数と等しく設定され
た後、ルーチンはステップ318へ進み、BLOCKS
_TO_USEのいずれかのビットがオンになっている
か判断される。BLOCKS_TO_USEの少なくと
も1つのビットがオンとなっていれば、ルーチンはステ
ップ310ないしステップ314へ進み、BLOCKS
_TO_USEのオンにされたビットの数がしきい値を
下まわっていればMRUのすべてのビットがオフにさ
れ、BLOCKS_TO_USEのオンにされたビット
の1つが置き換えのため上述の方法で選択される。
【0161】オンとなっているビットがBLOCKS_
TO_USEに1つもない場合、ルーチンはステップ3
20へ進み、3つのアクションが取られる。第1に、B
LOCKS_TO_USEのオンにされたビットの数が
所定のしきい値より少ないのでMRUのすべてのビット
をオフにする。第2に、BLOCKS_BUSYは、C
Uレジスタと等しい値に設定される。上述のように、各
CUレジスタは、対応するキャッシュ・ミニディレクト
リに現在維持されているキャッシュ・ブロックを示して
いるので、置き換えられてはならない。複数のテクスチ
ャ・マッピング・チップが使われている場合、BLOC
KS_BUSYは、CUレジスタの論理和と等しく設定
される。最後に、BLOCK_TO_USEが、BLO
CKS_BUSYの補数に等しく設定される。その結
果、テクスチャ・マッピング・チップの1つのキャッシ
ュ・ミニディレクトリに現在維持されているデータ・ブ
ロックのビットに対応するビットを除いて、BLOCK
S_TO_USEの各ビットはオンにされる。ルーチン
はステップ314へ進み、BLOCKS_TO_USE
の中のオンにされたビットの1つが置き換え用として選
択される。このように、ミニディレクトリにあるもの以
外のキャッシュのブロックのいずれかを置き換え用とし
て選択することができる。
【0162】図19に示される本発明の実施形態は、キ
ャッシュ・ミスが発生する時LRU法(すなわち最も以
前に使用されたものを対象とする方式)を用いてキャッ
シュ・ブロックを置き換える置き換え方式を使う。本発
明の有効範囲を逸脱することなくこの方式に種々の変更
を加えることができることは理解されなければならな
い。例えば、図19に示される実施形態において、MR
Uハードウェア・レジスタが、複数のキャッシュ・ミス
が潜在的に含まれる可能性のある一定時間にわたってキ
ャッシュ・ヒットを収集するために使用され、BLOC
KS_TO_USEのオンにされたビットの数が所定の
しきい値を下回った時にのみMRUレジスタをクリアす
る。更にまた、ソフトウエア状態ワードのBLOCKS
_BUSYは、BLOCKS_TO_USEのすべての
ビットがオフであることが判明した場合にのみステップ
316またはステップ320で更新される。代わりの方
法として、キャッシュ・ミス割り込みが受け取られる度
毎にMRUを使用してBLOCKS_BUSYを更新す
ることによって置き換えを実行することができる。この
形態で、複数のキャッシュ・ミスが潜在的に含まれる可
能性のある一定時間にわたってキャッシュ・ヒットの実
績を累積するためソフトウェア状態ワードBLOCKS
_BUSYを使用することができ、そして、ハードウェ
ア・レジスタMRUを、ミスとミスの間のヒットを累積
するため使用することができる。
【0163】更に、MRUをクリアする効果を持つBL
OCKS_TO_USEのオン・ビットのしきい値が上
述の実施形態において11ブロックについてオンにセッ
トされているというものであったが、この数値は明らか
に変更することができることは理解されるべきであろ
う。このしきい値は、ルーチンが、ステップ308にお
て、BLOCKS_TO_USEのビットがどれもオン
になってない状態に遭遇する回数に影響を及ぼす。この
状態は最も最近使用されたキャッシュ・ブロックについ
て(ステッップ316またはステップ320で)BLO
CK_TO_USEの更新につながるのでこの状態を回
避することが望ましい。BLOCKS_TO_USEに
おいてオンにセットされるビットが、複数のキャッシュ
・ミスの処理を通して使用されたことのないブロックを
反映するように、高分解能を備えることが望ましい。従
って、MRUクリアにつながるBLOCKS_TO_U
SEのオン・ビットのしきい値を制御することによっ
て、ステップ308においてBLOCKS_TO_US
Eのオン・ビット数を判断する本ルーチンの回数が最小
限に抑えられ、最も以前に使用されたキャッシュ・ブロ
ックを決定する場合の望ましい分解能が与えられる。
【0164】ホスト・コンピュータ上で実行されるソフ
トウエア・ルーチンによって実施される上述の置き換え
方式がキャッシュ・メモリに関する使用に限定されるも
のではないことは理解されるべきであろう。ローカル・
メモリが、処理されるデータ・ブロックを含み、追加デ
ータ・ブロックがホスト・コンピュータからローカル・
メモリへダウンロードされる時にローカル・メモリ内の
データ・ブロックが置き換えられるようなデータ処理シ
ステムのどのようなシステムにおいても上記置き換えル
ーチンを使用することが可能である。
【0165】XI. キャッシュ動作の実行禁止 本発明の1つの実施形態において、プリミティブのレン
ダリングの間テクスチャ・データが必要とされる前に任
意の3Dプリミティブに関するテクスチャ・データがメ
モリ48にダウンロードされるようにするため、キャッ
シュ・ミスを実行禁止(disable、ディスエーブル)にす
ることによってテクスチャ・マッピング基板上のローカ
ル・メモリ48のキャッシュ動作を実行禁止にする機能
が備えられる。テクスチャ・マッピング・チップ46の
各々は、キャッシュとしてのローカル・メモリの動作が
実行可能状態であることを標示する状態ビットを含む。
この状態ビットがオンになっていれば、キャッシュ・ミ
スの発生が、ホスト・コンピュータの割り込みおよびテ
クスチャ・マッピング・チップの停止を引き起こす。し
かし、この状態ビットがオフとなっていれば、テクスチ
ャ・マッピング基板のローカル・メモリ48はキャッシ
ュとして機能せず、いかなるプリミティブに対するテク
スチャ・データも、キャッシュ・ミスが発生しないよう
に、該プリミティブによって必要とされる前にメモリ4
8にダウンロードされる。本発明の1つの実施形態にお
いて、キャッシュとしてのローカル・メモリの動作が実
行禁止にされ、テクスチャ・データが、テクスチャ・マ
ッピング基板上のローカル・メモリに3Dプリミティブ
・パイプラインを経由してダウンロードされ、テクスチ
ャ・データと対応する3Dプリミティブ・データの同期
が取られる。
【0166】XII. キャッシュ・ミスに応答してテクス
チャ・データをダウンロードする方式を支援するテクセ
ル・ポート・レジスタ 上述のように、(図2の)テクスチャ・マッピング・チ
ップ46は、ホスト・コンピュータ15からダウンロー
ドされるテクスチャ・データを受け取るため使用される
(図4の)テクセル・ポート92を含む。テクセル・ポ
ートは、テクセル・データのダウンロードを支援する多
数のレジスタを含む。それらのレジスタのいくつかは、
上述のレジスタMRUとCUを含む。その他のテクセル
・ポート・レジスタには、コマンド・レジスタ、状態レ
ジスタ、テクセル・データ・レジスタ、ディレクトリ・
タグ・レジスタ、キャッシュ・アドレス・レジスタおよ
びパイプ・タグ・レジスタが含まれる。それぞれの機能
を以下に説明する。
【0167】3Dプリミティブ・パイプライン経由でこ
れらレジスタへの書き込みを行えるように、テクセル・
ポート・レジスタへのアクセスが提供される。3Dパイ
プラインが使用中の時でも、単にパイプラインに置かれ
ているレジスタ書き込み用データを用いて、テクセル・
ポート・レジスタに書き込むことができる。さらに、テ
クセル・ポート・レジスタは、24ビット・バス24
(図2)上に備わる3Dパイプライン・バイパスを経由
してアクセスすることも可能である。テクセル・ポート
・レジスタをアクセスする場合、バス24の8ビット
が、どのテクセル・ポート・レジスタの読み取りまたは
書き込みを行うべきかを指定するレジスタ・アドレスと
して使用され、データがテクセル・ポート・レジスタに
書き込まれる時、上記バス24のその他の16ビットが
データを提供する。
【0168】テクセル・ポート・レジスタの構成は図2
0に示されている通りである。本発明の1つの実施形態
において、テクセル・ポート・レジスタの各々のビット
数は32ビットである(ただし一部のレジスタの多数の
ビットは未使用)。
【0169】A. テクセル・コマンド・レジスタ テクセル・コマンド・レジスタは、詳細は後述するが、
キャッシュ・ミスを取り扱うホスト・コンピュータのソ
フトウェア・ルーチンによって使用される多数のビット
を含む。停止ビット350は、ソフトウェア割込み処理
ルーチンによってセットされ、テクスチャ・マッピング
・チップに対してその動作を停止するように指示する。
上述のように、2つのテクスチャ・マッピング・チップ
が備わる本発明の実施形態においては、両方のキャッシ
ュが整合性を保つようにどちらのキャッシュ・ミスが発
生しても両方のテクスチャ・マッピング・チップは同じ
テクスチャ・データで更新される。どちらかのテクスチ
ャ・マッピング・チップのキャッシュ・ミスが受け取ら
れると、それぞれのテクセル・コマンド・レジスタの停
止ビット350をセットすることによって両方のテクス
チャ・マッピング・チップが停止させられる。キャッシ
ュ・ミスに応答して新しいテクスチャ・データがホスト
・コンピュータからダウンロードされた後、キャッシュ
・ミスを扱うソフトウェア・ルーチンがコマンド・レジ
スタに書き込みを行うことによって停止ビットがクリア
される。
【0170】割り込み可能ビット352は、それがオン
の時、キャッシュ・ミス発生の際テクセル・ポートから
の割り込みを可能にする。このビットは、テクスチャ・
マッピング基板12(図2)上のローカル・メモリ48
をキャッシュとして動作させない上述の機能を提供する
場合にはオフにセットされる。
【0171】書込みLoki0354ならびに書込みL
oki1ビット356は、テクセル・ポート・レジスタ
に関する書込み可能/禁止を制御する。Lokiは、テ
クスチャ・マッピング・チップ46を識別するために使
用される短縮形名称である。2つのチップが使用される
本発明の実施形態においては、それら2つのチップはL
oki0ならびにLoki1と呼ばれる。単一のテクス
チャ・マッピング・チップが使われ時は、そのチップは
Loki0として識別される。テクセル・ポート・レジ
スタのいずれかに対する書込みを行うコマンドがバス2
4経由で受け取られると、各テクスチャ・マッピング・
チップ(すなわちLoki0ならびにLoki1)はそ
の書込みビットが使用可能とされているかを判断するた
めそのコマンド・レジスタを検査し、使用可能であれ
ば、受け取られた書込みコマンドに従ってそのテクセル
・ポート・レジスタを更新する。従って、書込みLok
i0354ならびに書込みLoki1ビット356の値
を制御することによって、ホスト・コンピュータ上で動
くソフトウェア・ルーチンが、2つのテクスチャ・マッ
ピング・チップのテクセル・ポート・レジスタに、別々
に、あるいはまた同時に書き込むことができる。
【0172】Loki読取りビット358は、テクスチ
ャ・マッピング・チップの1つのテクセル・ポート・レ
ジスタの読取りを可能にする。テクセル・ポート・レジ
スタを読み取るコマンドがテクセル・バス24経由で受
け取られると、一時点において、テクスチャ・マッピン
グ・チップ(複数)の中の1つだけが応答して、バス上
へそのテクセル・ポート・レジスタの内容を送出する。
2つのテクスチャ・マッピング・チップが備わる実施形
態において、各々は、該チップがLoki0かLoki
1のどちらかであることを示すハードウエア・ピンを備
える場合がある。Loki読取りビットがソフトウェア
によってセットされる場合、それはLoki1からの読
取りが可能とされていることを示し、Loki読取りビ
ットがセットされていない場合、それはLoki0から
の読取りが可能とされていることを示す。テクセル・コ
マンド・レジスタの形式が、両方のテクスチャ・マッピ
ング・チップ(Loki0とLoki1)に同じデータ
で同時に書き込むことを可能にするため、レジスタへの
書き込みのため1回の書込みサイクルだけでよい点は前
述の記載から理解されることであろう。
【0173】B. テクセル状態レジスタ テクセル・ポート状態レジスタは、オンにセットされる
時、システムが2つのテクスチャ・マッピング・チップ
を含むことを示す複数Lokiビット360を含む。コ
マンド・レジスタのビット352がオンの時は必ず割込
み可能ビット362はオンにされ、テクスチャ・マッピ
ング・チップのローカル・メモリはキャッシュとして機
能し、キャッシュにないテクスチャ・データが必要とさ
れる時、ホスト・コンピュータに割り込むためのキャッ
シュ・ミスを生成することを標示する。このビットは、
コマンド・レジスタと共に状態レジスタにも含められる
ので、状態レジスタを単に読むだけでテクセル・ポート
の状態を読み取ることができる。
【0174】割り込みがテクスチャ・マッピング・チッ
プから発生し、該チップが新たなテクスチャ・データが
ダウンロードされるのを待つ時、割り込み有効ビット3
64がオンにされる。パイプ・タグ・レジスタ(後述)
に記憶されているキャッシュ・ミスを発生したキャッシ
ュ読取りタグと一致するキャッシュ・タグを用いてキャ
ッシュ・ディレクトリ・タグ・レジスタ(後述)に書き
込みが行われると、このビットはクリアされる。
【0175】状態レジスタは、キャッシュ・ミスが発生
する時テクスチャ・マッピングの停止を支援する2つの
ビットを含む。停止可能ビット368は、コマンド・レ
ジスタの停止ビット350がセットまたはクリアされる
毎に、ホスト・コンピュータ上のソフトウェア・ルーチ
ンによってそれぞれセットまたはクリアされ、当ビット
がオンの時動作を停止するようにテクスチャ・マッピン
グ・チップに指示する。このビットがコマンド・レジス
タと共に状態レジスタに備えられるので、テクスチャ・
マッピング・チップの状態が単一のレジスタに記憶され
る。キャッシュ・ミスが発生し、キャッシュ・ディクト
リが新たなデータがダウンロードされるのを待つ時、割
込み有効ビット364がテクスチャ・マッピング・チッ
プのハードウエアによってオンにされる。キャッシュ・
ミスが発生したブロック・タグと一致するキャッシュ・
タグを用いてキャッシュ・ディレクトリ・タグ・レジス
タ(後述)に書き込みが行われると、このビットはクリ
アされる。
【0176】C. パイプ・タグ・レジスタ パイプ・タグ・レジスタは、テクスチャ・マッピング・
チップのパイプラインによってインデックス付けされた
最後のブロック・タグを記憶する。キャッシュ・ミスが
発生すると、パイプ・タグ・レジスタは、キャッシュ・
ミスが発生したブロック・タグ370を記憶する。テク
セル・ポート・バス24を経由してパイプ・タグ・レジ
スタを読み取ることによって、キャッシュ・ミス割り込
みに応答するソフトウェアが、キャッシュ・ミスに応答
してダウンロードされなければならないキャッシュ・ブ
ロックのタグを決定することができる。
【0177】D. テクセル・データ・レジスタ テクセル・データレジスタは、キャッシュ・ミスが発生
した時テクスチャ・データをキャッシュ48へダウンロ
ードするために使用される。上述のように、各テクセル
は、αを示す1バイト372、赤の値を表す1バイト3
74、緑の値を表す1バイト376および青の値を表す
1バイト378を含む32ビットのデータによって表さ
れる。
【0178】E. テクセル・キャッシュ・アドレス・レ
ジスタ テクセル・キャッシュ・アドレス・レジスタは、キャッ
シュへテクセル・データを書き込み、ブロック・タグを
キャッシュ・ディレクトリに書き込むために使用され
る。上述のように、キャッシュは、各ブロックが256
×256アレイのテクセルを含む64ブロックのテクス
チャ・データを記憶する。テクセル・キャッシュ・アド
レス・レジスタは、キャッシュにおける64ブロックの
うちで読み込みまたは書き込みの対象となる特定の1つ
のブロックを識別する6ビットのブロック・インデック
ス・フィールド380を含む。加えて、このレジスタ
は、上記ブロック・インデックス・フィールドで識別さ
れるブロック内で読み込みまたは書き込みの対象となる
特定のテクセル・アドレスを識別する16ビットのブロ
ック・アドレス・フィールド382を含む。キャッシュ
・ミスに応答してテクスチャ・メモリにデータがダウン
ロードされる時、ブロック・インデックスが、上述のL
RU(すなわち最も以前に使用されたものを選択する)
置き換え法を使用してソフトウェア・ルーチンによって
セットされ、ブロック・アドレス・フィールド382が
最初のテクセルをブロックに書き込むためゼロに初期化
される。キャッシュ・アドレス・レジスタは、テクセル
・データ・レジスタがアクセスされると必ずブロック・
アドレス・フィールド382を自動的に増分する。この
ように、キャッシュ・ブロック内のブロック・アドレス
のすべてにわたってブロック・アドレス・フィールドが
増分され、テクセル・データの新しいブロックがキャッ
シュに書き込まれる。
【0179】F. テクセル・ディレクトリ・タグ・レジ
スタ テクセル・ディレクトリ・タグ・レジスタは、キャッシ
ュ・ブロック・タグを表す23ビットのブロック・タグ
・フィールド384を含み、キャッシュ・アドレス・レ
ジスタのブロック・インデックス・フィールド380に
よって定義されるキャッシュ・ディレクトリ・エントリ
を書き込むために使用される。上述のように、キャッシ
ュ・ブロック・タグの23ビットは、8ビットのテクス
チャID、7ビットのS座標、7ビットのT座標、およ
び、ブロック・タグに対応するテクスチャ・データのブ
ロックによって表されるマップのマップ番号を識別する
付加ビット(1ビット)を表す。キャッシュ・ミスに応
答してテクスチャ・データの新しいブロックがホスト・
コンピュータからダウンロードされる時、そのブロック
・タグは、テクセル・バス24経由でディレクトリ・タ
グ・レジスタにロードされる。ディレクトリ・タグ・レ
ジスタから、ブロック・タグは、キャッシュ・アドレス
・レジスタのブロック・インデックス・フィールド38
0によって識別されるキャッシュ・ディレクトリ・エン
トリに書き込まれる。上述のように、キャッシュ・ミス
を発生させたパイプ・タグ・レジスタのタグと一致する
ディレクトリ・タグ・レジスタにブロック・タグが書き
込まれると、キャッシュ・ミス割り込みはクリアされ
る。
【0180】XIII. キャッシュ・ミス割り込みを取り扱
うソフトウエア・ルーチン 上述の記載から理解されるように、テクセル・ポート・
レジスタは、キャッシュ・ミス割り込みに応じて必要な
テクスチャ・データをダウンロードする機能を遂行する
ホスト・コンピュータ15上のソフトウェア・ルーチン
によって使用される。図21は、このソフトウェア・ル
ーチンの流れ図を示す。ステップ400において、Lo
ki0およびLokil両方のテクセル・コマンド・レ
ジスタにおける停止ビット350がセットされる。次に
ルーチンはステップ402へ進み、テクセル状態レジス
タの停止ビット368を読み、両方のLokiが停止し
たか否か判断する。Loki0およびLoki1が停止
したことが確認できるまでルーチンは両方の状態レジス
タの読み取りを継続する。両方が停止したと確認する
と、ルーチンはステップ404へ進む。システムがただ
1つのテクスチャ・マッピング・チップ46(すなわ
ち、Loki0)を含む場合、Loki0は、テクセル
・バス24上にLoki0のテクセル・ポート・レジス
タの内容を送出することによってLoki1のテクセル
・ポート・レジスタを読み取る要求に応答する。このよ
うに、ソフトウェア・ルーチンがステップ402で両方
のLokiが停止したか否か判断する時、Loki0
が、Loki0が停止した場合のようにLoki1の読
み取り要求に応答するので、処理はステップ404へ進
む。
【0181】ステップ404で、Loki0がキャッシ
ュ・ミスによって割り込みを起こした否かを調べるため
Loki0のテクセル状態レジスタ中の割り込み有効ビ
ット364が読み込まれる。もし割り込みが発生してい
れば、ルーチンはステップ406へ進み、Loki0の
パイプ・タグ・レジスタが読み取られ、キャッシュ・ミ
スを発生させたテクスチャ・データのブロックのブロッ
ク・タグを識別する。ソフトウェア・ルーチンはこのブ
ロック・タグを使用して、ホスト・コンピュータのメモ
リ17(図2)に記憶されているテクスチャ・データの
対応するブロックにアクセスし、ステップ408で、キ
ャッシュのどのブロックを、ダウンロードされるテクス
チャ・データの新しいブロックと置き換えるべきかを決
定する。この決定は、図19に関連して上述したLRU
法を使用して実行される。
【0182】上述のように、システムが2つのテクスチ
ャ・マッピング・チップを含む場合、各々におけるキャ
ッシュは全く同じエントリを持つように維持される。従
って、テクスチャ・マッピング・チップの1つに発生し
たキャッシュ・ミスに応答してホスト・コンピュータか
らダウンロードされるテクスチャ・データは、両方のチ
ップのキャッシュに書き込まれる。かくして、置き換え
られるキャッシュ・ブロックが識別されたならば、ルー
チンはステップ410へ進み、Loki0および(Lo
ki1が存在する場合)Loki1におけるキャッシュ
・アドレス・レジスタが、ステップ408で決定された
ブロック・インデックスを用いて書き込まれる。ステッ
プ412で、キャッシュ・ミスに応答してテクスチャ・
キャッシュにダウンロードされるべきテクスチャ・デー
タのブロックのブロック・タグを用いてディレクトリ・
タグ・レジスタに書き込みが行われ、ステップ414に
おいて、テクスチャ・データがテクセル・データ・レジ
スタに書き込まれる。このように、本ルーチンは、キャ
ッシュ・ミスのあったテクスチャ・データのブロックを
ダウンロードしてキャッシュにこのデータ・ブロックを
書くことによってキャッシュ・ミスに応答する。
【0183】ステップ406ないしステップ414にお
いてテクスチャ・データのブロックがLoki0および
Loki1にダウンロードされたあと、あるいは、ステ
ップ404でLoki0が割り込まれなかったと判断さ
れたなら、ルーチンはステップ416へ進み、キャッシ
ュ・ミスが発生したのがLoki1であることを示すL
oki1状態レジスタの割り込み有効ビット364を調
べる。上述のように、システムが1つのテクスチャ・マ
ッピング・チップだけを含む場合、Loki0がLok
i1テクセル・ポート・レジスタの読取りに応答する。
Loki0がLoki1の状態レジスタの読取りに応答
する場合、その割り込み有効ビット364はマスクされ
ているので、ソウフトウエア・ルーチンはステップ41
6においてLoki1が割り込みを起こしていないと判
断する。このマスキングによって、Loki0からの割
り込みを再プロセスしてテクスチャ・データをダウンロ
ーすることが防止される。従って、ただ1つのテクスチ
ャ・マッピング・チップだけが備わるシステムにおいて
は、ルーチンはステップ416でLoki1に割り込み
が発生していないと判断し、ステップ418へ進み、L
oki0のコマンド・レジスタの停止ビット350がオ
フにされ、これによって、テクスチャ・マッピング・チ
ップがそのパイプラインにおけるプリミティブ処理を続
行することが可能とされる。
【0184】システムが2つのテクスチャ・マッピング
・チップを含む場合、ルーチンはステップ416でLo
ki1が割り込みを起こしたか否かを判断し、起こして
いなければ、ステップ418へ直接進み、両方のテクス
チャ・マッピング・チップの停止ビットをオフにして両
方のチップがプリミティブ処理を続行することを可能に
する。しかし、ステップ416で、Loki1がキャッ
シュ・ミスに応答して割り込みを起こしたと判断すれ
ば、ルーチンは、ステップ420ないしステップ424
へ進み、Loki0の割り込みを処理するステップ40
6ないしステップ414と同様の方法でLoki1の割
り込みを処理する。次にルーチンはステップ418へ進
み両方のテクスチャ・マッピング・チップの停止ビット
をオフにする。
【0185】2つのテクスチャ・マッピング・チップを
備えるシステムにおいては、両方のチップが同じブロッ
ク・タグについてまたは異なるブロック・タグについて
同時にキャッシュ・ミス割り込みを生成することができ
る点は理解されるべきであろう。両方のテクスチャ・マ
ッピング・チップが、同じブロック・タグについてキャ
ッシュ・ミス割り込みを生成する場合、割り込みは、ス
テップ400ないしステップ414で処理される。従っ
て、ステップ412においてキャッシュ・ミスのあった
ブロック・タグを両方のLokiのディレクトリ・タグ
・レジスタに書き込むことによってLoki1からの割
り込みがクリアされるので、ステップ416においてル
ーチンはLoki1の割り込みを検出しない。このよう
にして、図21に示される方法が、いずれのテクスチャ
・マッピング・チップからの割り込みに対してもそれぞ
れ個別的に、あるいは、両方の割り込みに同時に、応答
することができる。
【0186】XIV. キャッシュ・ミニディレクトリおよ
び主ディレクトリ 上述のように、本発明の1つの実施形態において、キャ
ッシュは、1ブロックが256×256テクセル・デー
タからなる64ブロックのテクセル・データ、および2
3ビットのブロック・タグを持つ64のエントリを含む
完全連想型キャッシュ・ディレクトリを含む。本発明が
3線形補間モードで動作する場合、8個のテクセル読取
りが、ある1つのピクセルについて所望のテクセル・デ
ータを決定するために実行される。それら8個のテクセ
ルのうち、ある1つのマップにおける4個のテクセルが
1回の読み取り動作で同時に読み出され、別のマップの
4個のテクセルが第2の1回の読み取り動作で同時に読
み出される。当該ピクセルがキャッシュ・ブロック境界
を隣接するマップの位置に対応する場合、1つのマップ
内で所望のテクセル・データを生成するためキャッシュ
から読み取られる4つのテクセルが各々異なるキャッシ
ュ・ブロックに記憶されていることがある。このよう
に、各ピクセルに関するキャッシュからの4つのテクセ
ルの同時の読み取りは、キャッシュ・ディレクトリにお
ける64ブロック・タグ・エントリと4回の別々の比較
を行うことを必要とする場合がある。
【0187】従来技術の完全連想型キャッシュは、次の
2つの形態の1つで動作する。第1の形態は、1つの読
取りタグを1回のサイクルであらゆるキャッシュ・タグ
・エントリと比較することができるように、キャッシュ
・タグ・エントリ毎に別々のハードウェア比較器を備え
るものである。そのような技術は、4回の読み取りを同
時に行う本発明において高価なハードウェア・コストの
原因となる254(すなわち4×64)個の23ビット
比較器を必要とするであろう。従来技術の完全連想型キ
ャッシュによって使われる第2の技術は、1つのキャッ
シュ・タグ比較器を使用し、各キャッシュ・エントリ
は、読取りタグと順次比較される。そのような技術は、
1回の読取り動作の間に読み取られる4つのテクセルの
各々がキャッシュにあるか否かを判断するためキャッシ
ュ・ディレクトリに対する256回の読取りサイクルが
潜在的に必要とされるため、本発明のシステム帯域幅に
マイナスの影響を与える。
【0188】これらの問題を克服するため、本発明のキ
ャッシュ・システムは、ミニディレクトリ(図22)お
よび主ディレクトリ(図23)を含む。ミニディレクト
リは、完全連想型ディレクトリであって、対応するブロ
ック・インデックスと共に、5つの最も最近読まれたキ
ャッシュ・ブロック・タグを含む。図21に示されるよ
うに、ミニディレクトリ500は、ミニディレクトリか
ら出力501−505上にそれぞれ出力される5つのエ
ントリを含む。それらエントリの各々は、4グループの
タグ比較器507−510に接続される。タグ比較器5
07−510の各グループは、5つの23ビット比較器
(図示されてない)を含み、双線形または3線形補間が
実行される時1回の読取り動作で実行される4つのキャ
ッシュ読取りタグの1つに対応する。このように、完全
連想型ミニディレクトリの特性が、同時に読み取られる
タグの数にミニディレクトリのエントリの数を乗じた数
に等しい20個の23ビット比較器を用いて実現され
る。
【0189】同時に読み込まれるある1つのピクセルに
関する4つのキャッシュ読取りタグが、該ピクセルが対
応するマップ位置に最も近い4つのテクセルを含むキャ
ッシュ・ブロックを識別する。それらの4つのキャッシ
ュ読取りタグは、左上(UL、Upper Left)タグ、右上
(UR、Upper Right)タグ、左下(LL、Lower Lef
t)タグおよび右下(LR、Lower Right)タグと呼ばれ
る。左上、右上、左下および右下のテクセルのためのキ
ャッシュ読取りタグは、それぞれ左上、右上、左下およ
び右下のタグ比較器507−510グループに接続され
る。タグ比較器507−510の各グループは、その対
応するキャッシュ読取りタグをミニディレクトリに記憶
されている5つのブロック・タグと比較して、タグがミ
ニディレクトリ・エントリの中の1つと一致することを
示すヒット出力を生成し、同時に対応するテクセル・デ
ータ・ブロックが記憶されているキャッシュの位置を標
示するブロック・インデックスを出力する。
【0190】上述から認められるように、4つのキャッ
シュ読み取りタグ(UL、UR、LL、LR)の各々が
ミニディレクトリにあれば、対応する4つのテクセル・
データ・ブロックが記憶されているキャッシュの位置を
標示するブロック・インデックスを決定するため必要と
されるディレクトリ・アクセスはただ1回でよい。1つ
または複数の読取りタグがミニディレクトリにない場合
にだけ主キャッシュ・ディレクトリに対するアクセスが
行われる。ミニディレクトリ500は、ミニディレクト
リにおいてキャッシュ読み取りタグ・ミスが発生するた
びごとに更新されるので、ミニディレクトリ500は常
にテクスチャ・データの最も最近アクセスされた5つの
ブロックのブロック・タグを保持する。
【0191】4つのキャッシュ読み取りタグの1つまた
は複数がミニディレクトリでヒットしない場合、主キャ
ッシュ・ディレクトリ520(図22)に対するアクセ
スが行われる。上述のように、主ディレクトリは、各々
が1つのブロック・タグを持つ64のエントリを含む。
主ディレクトリは、64個の23ビット比較器522を
備えるため、1つのキャッシュ読み取りタグは1回のサ
イクルで主ディレクトリのすべてと比較することができ
る。比較器522は、キャッシュ読取りタグが主ディレ
クトリのエントリの1つと一致したことを標示する信号
を生成し、読み取りタグと一致した比較器の位置を使用
して、テクセル・データの対応するブロックがキャッシ
ュに存在する位置を標示するブロック・インデックスを
生成する。読取りタグが主キャッシュ・ディレクトリの
どのエントリとも一致しない場合、キャッシュ・ミスが
生成され、その結果、ホスト・コンピュータの割り込み
が発生し、テクスチャ・データの要求されたブロックが
上述の方法でダウンロードされる。
【0192】上述のように、4つのキャッシュ読取りタ
グ(UL、UR、LL、LR)の1つまたは複数がミニ
ディレクトリをヒットしない場合のみ主キャッシュ・デ
ィレクトリ520がアクセスされる。キャッシュ読取り
タグの複数がミニディレクトリと一致しない場合、各キ
ャッシュ読取りタグ毎に別々のサイクルで主ディレクト
リをアクセスしなければならないとすれば、処理能力低
下の負荷を減らすことが望ましい。そのような成果を達
成するため、本発明の1つの実施形態において、図24
に示されるように、6つの比較器526−530が追加
される。これら6つの比較器は、同時にアクセスされる
4つのキャッシュ読取りタグの各々を一致するものがあ
るか調べるため他のものと比較する。これらの比較器
は、ULタグをURタグと比較する比較器526、UL
タグをLLタグと比較する比較器527、ULタグをL
Rタグと比較する比較器528、URタグをLLタグと
比較する比較器529、URタグをLRタグと比較する
比較器530、およびLLタグをLRタグと比較する比
較器531を含む。
【0193】比較器526−532によって実行される
比較は、処理性能の低下が起きないように他の比較と並
列的に実行される。例えば、キャッシュ読み取りタグが
ミニディレクトリと比較されるサイクルの間に、あるい
は、ミニディレクトリにおけるミスを起こした最初のキ
ャッシュ読取りタグが主ディレクトリと比較される時の
サイクルの間に、上記の比較を実行することができる。
少くとも2つのキャッシュ読取りタグが主ディレクトリ
においてヒットせず、かつそれらが等しいものであると
判断されれば、比較器526−532の出力は、これら
少くとも2つのキャッシュ読取りタグについては主ディ
レクトリを1回だけアクセスすればよいことを示す。こ
のようにして同一のタグについて主ディレクトリをアク
セスする場合複数サイクルを伴う必要がなくなるので、
複数のキャッシュ読み取りタグがミニディクトリで一致
ミスを起こす場合のシステム帯域幅に対する影響を最小
限にとどめることができる。
【0194】上述のことから認められるように、キャッ
シュ・ミニディレクトリを利用する本発明の実施形態
は、高いシステム帯域幅を達成する一方、キャッシュ・
ディレクトリを実施するハードウェアの数量を比較的少
なくするという対立する目標を効率的に均衡させる。複
数のキャッシュ読取りタグがミニディレクトリで一致し
ない場合の処理性能の低下はアプリケーションに依存す
る。それぞれが4つのキャッシュ読取りタグからなるユ
ニークな2セットをミニディレクトリに対して2サイク
ル毎に処理することもできるが、典型的には4つのキャ
ッシュ読取りタグの各セットにおいてただ1つまたは2
つのユニークなブロック・タグが現れると考えられる。
上述のように、1つのオブジェクトの複数ピクセルがレ
ンダリングされ、そして、3線形補間法が使われる場
合、隣接するピクセルが、MIPマップの同じ2つのマ
ップに頻繁に対応するので、キャッシュに対する読取り
が2つのマップを記憶するキャッシュ・ブロックの間で
連続的に切り換わることを必要とする。図22に示され
る実施形態において、現在処理されている読取りタグの
セットに対する4つのユニークなキャッシュ・タグがミ
ニディレクトリにたとえ存在するとしても、前の読取り
タグ・セットでアクセスされた少くとも1つのタグがミ
ニディレクトリに残っていることを保証するため、ミニ
ディレクトリは5つのブロック・タグを記憶する。この
ようにして、3線形補間の間4つのユニークなキャッシ
ュ・タグの2つのセットの間で切り替えが行われても、
各セットについて少なくとも1つの読取りキャッシュ・
タグが、ミニディレクトリに残るので、4つのキャッシ
ュ・タグを主ディレクトリと順次比較する必要がない。
【0195】3線形補間を使用するテクセルのレンダリ
ングの間、キャッシュへの連続的な読取りは、1つのマ
ップにおける第1のセットの4つのテクセルと別のマッ
プにおける第2のセットの4つのテクセルを読み取る。
プリミティブがレンダリングされる際、2つのマップの
各々の範囲内の隣接するテクセルが1つおきのサイクル
毎にそれぞれアクセスされ、複数のテクセルが、1つの
キャッシュ・ブロック内に一般的に位置づけられる。従
って、複数のユニークなタグが4つのキャッシュ読取り
タグの各セットに出現するとすれば、各ピクセルのキャ
ッシュ読取りタグがミニディレクトリ500においてヒ
ットする状態を保ちながら多数のピクセルをレンダリン
グすることができる。もしも4つのセットの各々におい
てただ1つのキャッシュ読み取りタグがミニディレクト
リと一致しない場合は、次の4つの読み取りタグセット
がミニディレクトリと比較されている間にそのタグを主
ディレクトリと比較することができるので、処理性能の
低下は派生しない。
【0196】主ディレクトリおよび相対的に小規模のミ
ニディレクトリを含む本発明のキャッシュ・ディレクト
リは、テクスチャ・マッピング・ハードウエアでの使用
に限定されず、その他の多数のアプリケーションについ
て使用することができることは理解されるべきであろ
う。複数のキャッシュ読取りタグが同時に処理される場
合、およびキャッシュ読み取りタグが連続的にアクセス
される以前に使用されたタグと相関している場合、完全
連想型キャッシュを実施し、ディレクトリ・タグ比較の
コストを低減する上で、本発明のミニキャッシュ・ディ
レクトリ方式は特に有効である。例えば、1時点でX個
のタグを記憶するキャッシュ・メモリについて、N個の
キャッシュ読み取りタグが同時にディレクトリ・ブロッ
ク・タグと比較されると仮定し、M個のタグを含むミニ
ディレクトリを維持すれば十分である(ただしMはN以
上である)。M個のミニディレクトリ・タグの各々は、
N個のキャッシュ読取りタグに対して、1回の読取り動
作において比較される。ミニディレクトリにおいてヒッ
トしないキャッシュ読取りタグについて、主ディレクト
リが順次アクセスされる。そのような読取りタグは、主
ディレクトリ・タグと1回のサイクルで比較される。主
ディレクトリのX個のタグの各々がN個の読み取りタグ
と1回の読取り動作で比較される場合のシステムにおい
て、比較器の観点からのハードウエア節約は、(X+M
*N)/(X*N)という比率に従う。
【0197】このハードウェア節約を達成するために必
要とされる処理速度の減少はアプリケーションに依存
し、連続的読み取り動作でアクセスされる一連のタグの
様態に基づく。各読取りセットにおいて1つ以上のタグ
がミニディレクトリとの不一致を起こさなければ、ミス
のあったタグと主ディレクトリとの比較は、次のセット
の読み取りタグがミニディレクトリと比較されている間
に並列的に行うことができるため、処理速度の低下は起
きない。
【0198】複数のキャッシュ読み取りタグがミニディ
レクトリでミスをを起こす場合の処理性能の低下を防ぐ
ため使用される上述の比較器526−530に関して
は、4つの読取りタグが同時にアクセスされるので、6
つの比較器が使用される。各キャッシュ読取りタグを他
のものと比較するために使われる比較器の数は、同時に
アクセスされる読取りタグの数Nに依存し、1から(N
−1)までの整数の和に等しい。
【0199】図22ないし図24のミニディレクトリお
よび主ディレクトリを含むキャッシュ・ディレクトリの
1つの実施形態が図25に示されている。図25に示さ
れている実施形態は例示の目的のためにすぎず、その他
の形態を実施することができる点は理解されるべきであ
ろう。
【0200】図22のミニディレクトリ・エントリ50
1−505は、タグ・レジスタ501T−505Tに記
憶されるタグ・コンポーネント、および、インデックス
・レジスタ501I−505Iに記憶されるインデック
ス・コンポーネントに分割される。上述のように、キャ
ッシュ・ディレクトリは、処理中のピクセルが対応する
MIPマップ位置に最も近い4つのテクセル(すなわち
UL、UR、LLおよびLR)に対応する一組の4つの
読取りキャッシュ・タグを受け取る。4つの読取りタグ
の各々は、6つのタグ比較器541−546へ送られ
る。比較器のうちの5つ(すなわち、542−546)
は、また、5つのミニディレクトリ・タグ・レジスタ5
01T−505Tの1つにそれぞれ接続している。例え
ば、比較器542は、ミニディレクトリ・エントリ1に
関するタグ・レジスタ501Tに接続して、ミニディレ
クトリのそのエントリのタグが読取りキャッシュ・タグ
UL、UR、LLまたはLRのいずれかのタグと一致す
るか否かを標示する出力を生成する。比較器543−5
46は同様に動作して、読取りキャッシュ・タグUL、
UR、LLまたはLRをミニディレクトリ・エントリ2
−エントリ5に対するタグを記憶するタグ・レジスタ5
02T−505Tとそれぞれ比較する。4つの読取りキ
ャッシュ・タグの新しいセットの各々が1回のサイクル
でミニディレクトリと比較される。そのサイクルの終了
時点で、4つのタグUL、UR、LLおよびLRは、レ
ジスタ550−553にそれぞれ記憶される。図25に
示されるように、レジスタ550−553の各々は、ま
た、ミニディレクトリ・タグ比較器542−546の出
力を受け取る制御回路559に接続する。4つの読取り
キャッシュ・タグの新しい1セットがミニディレクトリ
・タグと比較されるサイクルの終了時点で、レジスタ5
50−553の各々は、その対応するタグ(すなわちU
L、UR、LL、LR)がミニディレクトリ・エントリ
の1つと一致したか否か、一致した場合はどのエントリ
と一致したかを標示するデータをロードされる。
【0201】上述のように、ただ1つのキャッシュ読取
りタグのミスがミニディレクトリで発生すれば、次のセ
ットの4つのテクセル読取りタグがミニディレクトリと
比較されている間に、そのタグは主ディレクトリと比較
される。1つのキャッシュ・ミスがミニディレクトリで
発生する場合、ミスを起こしたタグを含むようにミニデ
ィレクトリは更新されるので、ミニディレクトリは常に
最も最近アクセスされた5つのキャッシュ・タグを反映
する。次のセットの4つのテクセル読取りタグがミニデ
ィレクトリと比較されている間にミニディレクトリでミ
スを起こした読み取りキャッシュ・タグが主ディレクト
リと比較されるサイクルの間、ミニディレクトリ・タグ
・レジスタ501T‐505Tは、前のサイクルでミニ
ディレクトリにおけるミスを発生したキャッシュ・タグ
を含むようにまだ更新されていない。従って、次のセッ
トの読み込みキャッシュ・タグがミニディレクトリと比
較される時、6番目の比較器541を使用して、前のサ
イクルでミニディレクトリとミスを起こし現在主ディレ
クトリと比較されているタグと、4つの読取りタグ(U
L、UR、LLおよびLR)を比較する。4つのキャッ
シュ読取りタグ(UL、UR、LLおよびLR)のセッ
トにおける複数のユニークなタグがミニディレクトリの
キャッシュ・ミスを発生する場合、主ディレクトリとの
複数の比較が発生するため、キャッシュ・ディレクトリ
を通過するパイプラインが停止させられる。しかし、た
だ1つのユニークなタグがミニディレクトリにおけるキ
ャッシュ・ミスを起こすならば、キャッシュ・ディレク
トリが各サイクル毎に4つのキャッシュ読取りの新しい
セットを受取る後述の方法でパイプラインは続行する。
【0202】上述のように、前のサイクルでミニディレ
クトリと比較された読取りタグがレジスタ550−55
3に記憶される。これらのレジスタの出力は、4対1マ
ルチプレクサ555に接続する。このマルチプレクサ
は、主ディレクトリと比較され、ミニディレクトリが最
も最近受け取った読取りキャッシュ・タグで更新される
ようにするためサイクルの終了時にミニディレクトリに
ロードされるべき上記レジスタの1つを選択する。マル
チプレクサ555の出力が、また、6番目の比較器54
1に接続されるので、前のサイクルでミニディレクトリ
におけるキャッシュ・ミスを起こしたキャッシュ読み取
りタグを新しいセットの読取りタグ(UL、UR、LL
およびLR)の各々と比較することができる。比較器5
42−546との連係で、比較器541は、ミニディレ
クトリがキャッシュ・ディレクトリによって受け取られ
た4つのキャッシュ読取りタグの各セットを最も最近受
け取った5つの読取りタグと比較することを保証する。
【0203】上述のように、マルチプレクサ555から
出力されるキャッシュ読取りタグが、主ディレクトリと
比較されるサイクルの終了時点で、ミニディレクトリ・
タグ・レジスタ501Tないし505Tの1つにロード
される。このようにして、ミニディレクトリは、最も最
近アクセスされたキャッシュ・タグを含むように更新さ
れる。マルチプレクサ555から出力される新しいキャ
ッシュ・タグでどのエントリを更新するかの決定は、以
下に記述の置き換え方式に基づいて行われる。
【0204】図24に関連して記述された6つの比較器
セット526−532が、図25においては便宜上単一
の比較器ブロックとして示されている。これらの比較器
の出力は、各々が制御回路559に送られる比較器54
1−546の出力と共に、いくつかの機能を実行する。
ミニディレクトリに対するキャッシュ・ミスが発生する
と、制御回路559は、ミニディレクトリの中のどのエ
ントリが新しい読取りキャッシュ・タグと置き換えられ
るべきかを決定する。制御回路559は、ミニディレク
トリに対して比較されている新しく受け取った4つの読
取りキャッシュ・タグの1つ、または主ディクトリと比
較された最後の読み取りキャッシュ・タグによってヒッ
トされたいかなるエントリも置き換えることはせず、ミ
ニディレクトリに維持される最高優先度をこれらのエン
トリに割り当てる。加えて、制御回路559は、4つの
読み取りタグの先行セットによるヒットがあったミニデ
ィレクトリ・エントリに関する状態情報を記憶し、ミニ
ディレクトリに維持される次に高い優先度をそれらのエ
ントリに割り当てる。残りのエントリには低い優先度が
割り当てられる。
【0205】制御回路559は、少くとも1つのエント
リを含む最下位優先度グループにあるエントリを置き換
えのため選択する。このように、ミニディレクトリに対
して比較されている新しく受け取った4つの読取りキャ
ッシュ・タグの1つによってヒットされず、主ディレク
トリに対して比較された最後の読み取りキャッシュ・タ
グでなく、4つの読取りタグの先行セットに含まれてい
なかった低位優先度グループに少くとも1つのエントリ
があれば、その低位優先度グループの中のエントリの1
つが置き換えのため選択される。しかし、低位優先度グ
ループにエントリがなければ、最優先グループのエント
リ(すなわち新しく受け取った4つの読取りキャッシュ
・タグの1つおよび主ディクトリと比較された最後の読
み取りキャッシュ・タグによってヒットされたエント
リ)を除く高位優先度グループのエントリから置き換え
のためのエントリが選択される。
【0206】使用可能な最下位優先度ミニディレクトリ
・エントリのグループが識別されると、5つのミニディ
レクトリ・エントリの各々が1度に1つずつ置き換えら
れるサイクルをとる置き換え方式に従って、そのグルー
プ内のどのエントリを置き換えるべきか決定される。こ
の決定を行う方法は多数ある。本発明の1つの実施形態
においては、5つのミニディレクトリ・エントリに1な
いし5というラベルが付けられる。置き換えられるべき
エントリを最下位優先度グループから選択する場合、先
ず当該グループにない最も高い番号のエントリを識別
し、次に、当該グループ内で次に最も高い番号を持つエ
ントリを置き換え用に選択する。エントリ5が最下位優
先度グループにない場合、置き換え方式は1にもどっ
て、エントリ1が次の最高の番号を持つエントリとみな
される。この置き換え方式によって、制御回路559
は、ミニディレクトリ・エントリが1サイクルに1つず
つ置き換えられるようにサイクルを進め、選択されたミ
ニディレクトリ・タグ・レジスタ501T−505Tへ
の書き込みを制御する。
【0207】制御回路559は、また、比較器541−
546の出力をデコードして、読取りタグがミニディレ
クトリの1つのエントリと一致したか否か、一致したと
すればどのエントリと一致したかを標示するデータを4
つの読取りタグ(UL、UR、LLおよびLR)の各々
毎に生成する。このデータは、4つの読取りタグ(U
L、UR、LLおよびLR)の各々に対応するレジスタ
550−553に記憶される。例えば、読取りタグUL
がミニディレクトリ・エントリ3と一致すれば、制御回
路559によってデコ―ドされたデータは、ULレジス
タ550に記憶され、読取りタグがミニディレクトリ・
エントリ3と一致したことを標示する。後述するよう
に、このデータは、キャッシュ・ディレクトリ・パイプ
ラインを通過し、ULテクセルに関するブロック・イン
デックスが、ミニディレクトリ・エントリ3に関するブ
ロック・インデックスを保持するレジスタ503Iに記
憶されていることを標示する。
【0208】読み取りタグセットUL、UR、LLおよ
びLRのただ1つのユニークなタグがミニディレクトリ
と一致しない場合、対応するテクスチャ・データに関す
るブロック・インデックスがミニディレクトリにないこ
とを標示するデータが、その読取りタグを記憶するレジ
スタ550−553の各々にロードされる。次のサイク
ルの間、不一致のタグを記憶するレジスタ550−55
3の1つの出力が、主ディレクトリ520と比較され、
読取りタグに対するブロック・インデックスが、主ディ
レクトリから、主ディレクトリ・ブロック・インデック
スを記憶するレジスタ561にロードされる。また、ブ
ロック・インデックスがミニディレクトリのエントリに
対応しないことを標示するデータが、マルチプレクサ5
55の出力から、入力562経由で、レジスタ561に
記憶される。
【0209】上述のように、4つのテクセルが同時にア
クセスされることができるようにキャッシュ・メモリは
4つのインターリーブA−Dを含む。4つのテクセル読
取りタグUL、UR、LLおよびLRのセットは、いか
なる形態でもインターリーブA−Dに対応することがで
きる。レジスタ550−553に記憶され、どのミニデ
ィレクトリ・エントリがテクセルUL、UR、LLおよ
びLRの各々に対応するかを標示するデータは、テクセ
ルUL、UR、LLおよびLRの各々をその対応するイ
ンターリーブA−Dに関連づけるように制御される軸シ
フタ(barrel shifter)563を通過する。軸シフタの出
力は、それぞれインターリーブA−Dに対応するインタ
ーリーブ・インデックス制御レジスタ565−568に
ロードされる。インターリーブ・インデックス制御レジ
スタの各々は、インターリーブに関するブロック・イン
デックスを記憶するミニディレクトリ・エントリを識別
する。ただ1つのユニークな読み取りキャッシュ・タグ
だけがミニディレクトリと一致しない場合、レジスタ5
50−553からの出力のシフトおよびレジスタ565
−568の書き込みが、主ディレクトリ520へのアク
セスと並列して行われる。
【0210】上述のように、レジスタ565−568に
ロードされるデータは、対応するインターリーブに関す
るブロック・インデックスを記憶するミニディレクトリ
・エントリを識別する。このデータは、ミニディレクト
リ・インデックス・レジスタ501I−505Iの1つ
および主ディレクトリ・ブロック・インデックス・レジ
スタ561から、各インターリーブに対する対応するブ
ロック・インデックスを選択する複数のインターリーブ
・インデックス・マルチプレクサ571を制御するため
に使用される。複数のインターリーブ・インデックス・
マルチプレクサ571は、4つの独立した6対1マルチ
プレクサを表す。1つのマルチプレクサは、各インター
リーブに対応して、5つのミニディレクトリ・インデッ
ク・スレジスタ501I−505Iおよび主ディレクト
リ・ブロック・インデックス・レジスタ561から1つ
を選択する。各インターリーブ・インデックス・マルチ
プレクサは、同じインターリーブに対応し、どのミニデ
ィレクトリ・エントリが該インターリーブに対するブロ
ック・インデックスを記憶しているかを識別するレジス
タ565−568の1つによって制御される。インター
リーブに対するブロック・インデックスがミニディレク
トリ・エントリにないことをこのデータが標示する場
合、対応するマルチプレクサが、ミニディレクトリ不一
致に引き続いて主ディレクトリから読み取られたブロッ
ク・インデックスを記憶する主ディレクトリ・ブロック
・インデックス・レジスタ561から提供されるインデ
ックスを選択する。インターリーブA−Dの各々に対す
るブロック・インデックスは、ライン580−583上
に送出され、上述の方法でキャッシュSDRAMをアド
レス指定するために使用される。
【0211】上述のように、読み取りキャッシュ・タグ
UL、UR、LLおよびLRのセットの複数タグがミニ
ディレクトリと一致せずしかしただ1つのユニークなキ
ャッシュ・タグだけを含む場合、その読み取りタグに関
するブロック・インデックスを提供するため、主ディレ
クトリ520は1回だけアクセスされる。このプロセス
も、4つの読取りタグのどの2つが一致するかを識別す
る比較器526−532の出力を使用する制御回路55
9によって制御される。4つの読取りタグのセットの2
つ以上が、同じキャッシュ・タグを含むミニディレクト
リと一致しない場合、対応するレジスタ550−553
の各々は、ブロック・インデックスがミニディレクトリ
・エントリに含まれないことを標示するように制御回路
559によってセットされる。このようにして、読み取
りタグに対応するデータが、インターリーブ・インデッ
クス・レジスタ565−568を通過する時、各々がそ
の対応するインターリーブ・インデックス・マルチプレ
クサ571に送られるように主ディレクトリ・ブロック
・インデックス制御レジスタ561を選択する。
【0212】制御回路559は、また、読取りタグ・レ
ジスタ550−553のどれが主ディレクトリに対して
比較されるべきかを制御するディレクトリ制御レジスタ
573をセットする。レジスタ573は、主ディレクト
リに対して1時点に比較されるべきレジスタ550−5
53の1つを選択するようにマルチプレクサ555を制
御する。読取りタグUL、UR、LLおよびLRの1つ
がミニディレクトリと一致せずしかし共通タグを共有し
ない場合、制御レジスタ573は、レジスタの中の1つ
だけが主ディレクトリに対して比較されるべきであるこ
とを標示するようにセットされる。このようにして、4
つの読取りキャッシュ・タグのセットがミニディレクト
リとの不一致を起こすただ1つのユニークなタグだけを
含む場合、主ディレクトリは一度だけアクセスされる。
【0213】4つの読取りキャッシュ・タグUL、U
R、LLおよびLRのセットがミニディレクトリとの不
一致を起こす2つ以上のユニークなタグを含む場合、キ
ャッシュ・ディレクトリ・パイプラインを通過する上記
の流れが変更され、キャッシュ・ディレクトリは、ビジ
ー(busy)となって読取りタグの新しいセットを次のサイ
クルで受け取らない。ディレクトリがビジー(busy)であ
ることを標示することによって、ミニディレクトリと一
致しなかった読取りタグを含むレジスタ550−553
の各々が主ディレクトリに対して比較されることがで
き、新しい読取りタグで上書きされない。更に、ディレ
クトリ・パイプラインを通過する流れが変更されるた
め、ミニディレクトリと一致しなかった読取りタグの各
々について主ディレクトリがアクセスされ、それらに対
応するブロック・インデックスが、主ディレクトリから
レジスタ501I−505Iまたは561の1つにロー
ドされることができる。読取りキャッシュ・タグUL、
UR、LLおよびLRのセットに対するブロック・イン
デックスのすべてが主ディレクトリから読み取られる
か、あるいは既にミニディレクトリに存在するようにな
るまで、パイプラインは、レジスタ550−553のい
ずれのデータも軸シフタ563を通過させないように構
成される。このように、テクセルUL、UR、LLおよ
びLRのセットは、グループとして対応するインターリ
ーブに関連づけられる。
【0214】読取りタグの1セット中の複数のユニーク
なタグがミニディレクトリと一致しない場合、不一致の
タグは順次処理される。(タグのセットがミニディレク
トリと比較される)第1のサイクルの間、制御回路55
9は、ミニディレクトリの中のどのエントリが第1の不
一致読取りタグによって置き換えられるべきかを判断
し、対応するレジスタ550−553には、そのブロッ
ク・インデックスがそのミニディレクトリ・エントリに
記憶されることを標示するデータがロードされる。最初
に処理された不一致タグを記憶するレジスタ550−5
53の出力が、第2のサイクルの間に、主ディレクトリ
520と比較される時、主ディレクトリ・ブロック・イ
ンデックス・レジスタ561は、ミニディレクトリ・イ
ンデックス・レジスタ501I−505Iのどれが置き
換えられるべきかを標示するデータを用いて更新され
る。第3のサイクルの間、対応するブロック・インデッ
クスは、レジスタ561から、置き換えのため選択され
たミニディレクトリ・エントリに対応するレジスタ50
1I−505Iにロードされる。
【0215】ミニディレクトリと一致しなかった後続の
ユニークなタグの各々は、それが処理されるべき最後の
タグとなるまで同じ方法で処理される。キャッシュ・デ
ィレクトリを通過して処理される最後の不一致タグは、
あたかも読取りタグのセット中でミニディレクトリと一
致しない唯一のユニークなタグであるかのように取り扱
われる。最後の不一致タグの処理を開始する時、ディレ
クトリは、読取りタグの新しいセットを受け取ることが
できるようにするため、ビジー(busy)であることを標示
する信号をオフにセットする。
【0216】最後に処理される不一致タグに関して、制
御回路559は、その対応するレジスタ550−553
に、該タグに対するブロック・インデックスがミニディ
レクトリ・エントリに記憶されていないことを標示する
データをロードする。これは、すべての読取りタグがミ
ニディレクトリと比較される第1のサイクルの間に、ま
たはその他の不一致タグの処理と並列して、実行され
る。最後の不一致タグが主ディレクトリと比較されるサ
イクルの間、レジスタ550−553のデータが、軸シ
フタ563を通過して、インターリーブ制御レジスタ5
65−568にロードされ、不一致タグに関するブロッ
ク・インデックスは、主ディレクトリから、主ディレク
トリ・ブロック・インデックス・レジスタ561にロー
ドされる。最後に、ディレクトリの最終パイプライン段
階において、インターリーブ・インデックス制御レジス
タ565−568の出力を使用して、それらの対応する
インターリーブ・インデックス・マルチプレクサ571
を制御することによって、最後に処理された不一致タグ
に関するインデックスが主ディレクトリ・ブロック・イ
ンデックス・レジスタ561から送られ、該セット中の
他の読取りタグの各々に関するブロック・インデックス
が、その対応するミニディレクトリ・インデックスレジ
スタ501I−505Iから渡される。最後に処理され
た不一致タグに関するブロック・インデックスを主ディ
レクトリ・ブロック・インデックス・レジスタ561か
らアクセスすることによって、サイクルは、このタグに
関するブロック・インデックスがそのミニディレクトリ
・インデックス・レジスタにロードされるのを待たない
ので、1サイクルが節約される点理解されるべきであろ
う。
【0217】以上、本発明の少なくとも1つ実施形態を
記述したが、当業者にとって種々の変更、修正および改
良を行うことは容易であろう。そのような変更、修正お
よび改良は本発明の精神および対象範囲内にあるものと
意図されている。従って、上記記述は、例示のためのも
のにすぎず、本発明をそれに限定するものとして意図さ
れていない。
【0218】本発明には、例として次のような実施様態
が含まれる。 (1)ホスト・コンピュータ、プリミティブ・レンダリ
ング・ハードウェア、および、上記ホスト・コンピュー
タと上記プリミティブ・レンダリング・ハードウェアの
間に展開するテクスチャ・プリミティブ・データ経路を
含むコンピュータ・グラフィックス・システムにおい
て、テクスチャ・マッピング・データを管理する方法で
あって、上記ホスト・コンピュータが、対応するテクス
チャ・マッピング・データを使用して上記システムによ
ってレンダリングされるべきテクスチャ・プリミティブ
を、上記テクスチャ・プリミティブ・データ経路を経由
して、上記プリミティブ・レンダリング・ハードウェア
に渡す機能を有し、かつ、テクスチャ・プリミティブに
対応するテクスチャ・マッピング・データを記憶する主
メモリを備え、上記プリミティブ・レンダリング・ハー
ドウェアが、レンダリングされるべきテクスチャ・プリ
ミティブの少くとも1つに対応するテクスチャ・マッピ
ング・データをローカルに記憶するローカル・テクスチ
ャ・メモリを備えるように構成され、(a)レンダリング
されるべきテクスチャ・プリミティブの1つに対応する
テクスチャ・マッピング・データが上記ホスト・コンピ
ュータの主メモリに記憶されているが上記ローカル・テ
クスチャ・メモリ内に記憶されていない場合、該テクス
チャ・プリミティブの1つをレンダリングする前に、該
テクスチャ・プリミティブの1つに対応するテクスチャ
・マッピング・データを、上記テクスチャ・プリミティ
ブ・データ経路とは別個のテクスチャ・マッピング・デ
ータ経路を経由して、上記ホスト・コンピュータの主メ
モリから上記ローカル・テクスチャ・メモリへダウンロ
ードするステップを含むテクスチャ・マッピング・デー
タを管理する方法。 (2)上記コンピュータ・グラフィックス・システム
が、ホスト・コンピュータとプリミティブ・レンダリン
グ・ハードウェア間に展開する非テクスチャ・プリミテ
ィブ・データ経路を含み、上記ホスト・コンピュータ
が、対応するテクスチャ・マッピング・データなしにレ
ンダリングされるべき少なくともいくつかの非テクスチ
ャ・データを、上記非プリミティブ・データ経路を経由
して、上記プリミティブ・レンダリング・ハードウェア
へ渡すように構成され、また、上記ステップ(a)が、上
記テクスチャ・マッピング・データ経路内に上記非テク
スチャ・プリミティブ・データ経路の少なくとも一部を
含めることによって、上記ホスト・コンピュータの主メ
モリから上記ローカル・テクスチャ・メモリへダウンロ
ードするステップを含む、上記(1)に記載の方法。 (3)レンダリングされるべきテクスチャ・プリミティ
ブの1つが第1のテクスチャ・プリミティブであり、上
記テクスチャ・プリミティブ・データ経路が、レンダリ
ングされるべき第2のテクスチャ・プリミティブを記憶
するパイプラインを含み、上記ステップ(a)が、上記第
2のテクスチャ・プリミティブを上記パイプラインに保
持しながら、上記第1のテクスチャ・プリミティブに対
応するテクスチャ・マッピング・データをダウンロード
するステップを含む、上記(1)に記載の方法。
【0219】(4)上記パイプラインが少くとも第1お
よび第2の段階を有し、上記第1の段階がレンダリング
されるべきテクスチャ・プリミティブを処理し、処理し
たテクスチャ・プリミティブを第2の段階へ渡すように
構成され、第1のテクスチャ・プリミティブに対応する
テクスチャ・マッピング・データをダウンロードする間
に、第1の段階にある第2のテクスチャ・プリミティブ
を処理して第2の段階へ渡すステップを含む、上記
(3)に記載の方法。 (5)上記ステップ(a)が、テクスチャ・プリミティブ
の1つに対応するテクスチャ・マッピング・データをダ
ウンロードする要求によってホスト・コンピュータに割
り込みをかけるステップを含む、上記(1)に記載の方
法。 (6)ローカル・テクスチャ・メモリに記憶されている
テクスチャ・マッピング・データが複数のテクスチャを
表し、テクスチャ・プリミティブの1つに対応するテク
スチャ・マッピング・データが第1のテクスチャに対応
するように構成され、上記ステップ(a)が、上記第1の
テクスチャに対応するダウンロードされたテクスチャ・
マッピング・データが、上記ローカル・テクスチャ・メ
モリに記憶される時、第2のテクスチャに対応するテク
スチャ・マッピング・データを上記ローカル・テクスチ
ャ・メモリ内に保持するステップを含む、上記(1)に
記載の方法。 (7)上記主メモリに記憶されているテクスチャ・マッ
ピング・データが、各々が一連のMIPマップによって
表される複数のテクスチャを表し、テクスチャ・プリミ
ティブの1つに対応するテクスチャ・マッピング・デー
タが第1のテクスチャを表し、上記ステップ(a)が、上
記第1のテクスチャのため一連のMIPマップの一部を
ダウンロードするステップを含む、上記(1)に記載の
方法。
【0220】(8)ホスト・コンピュータ、プリミティ
ブ・レンダリング・ハードウェア、テクスチャ・プリミ
ティブ・データ経路およびテクスチャ・データ経路を備
えるコンピュータ・グラフィックス・システムであっ
て、上記ホスト・コンピュータが、テクスチャ・プリミ
ティブに対応するテクスチャ・マッピング・データを記
憶する主メモリを備え、かつ、該システムによってレン
ダリングされるべきプリミティブを上記プリミティブ・
レンダリング・ハードウェアに提供する機能を有し、上
記プリミティブ・レンダリング・ハードウェアが、上記
ホスト・コンピュータから提供されるプリミティブをレ
ンダリングする機能を持ち、かつ、レンダリングされる
べきテクスチャ・プリミティブの少くとも1つに対応す
るテクスチャ・マッピング・データを記憶するローカル
・テクスチャ・メモリを備え、上記テクスチャ・プリミ
ティブ・データ経路が、上記ホスト・コンピュータを上
記プリミティブ・レンダリング・ハードウェアに接続さ
せ、対応するテクスチャ・マッピング・データを使用し
てレンダリングされるべきテクスチャ・プリミティブが
上記ホスト・コンピュータから上記プリミティブ・レン
ダリング・ハードウェアに送られる経路として機能し、
上記テクスチャ・データ経路が、上記テクスチャ・プリ
ミティブ・データ経路とは別個の経路であって、上記ホ
スト・コンピュータを上記プリミティブ・レンダリング
・ハードウェアに接続させ、上記テクスチャ・マッピン
グ・データが上記ホスト・コンピュータの主メモリから
上記プリミティブ・レンダリング・ハードウェアのロー
カル・テクスチャ・メモリに送られる経路として機能す
るように構成されるコンピュータ・グラフィックス・シ
ステム。 (9)上記ローカル・テクスチャ・メモリがキャッシュ
・メモリであることを特徴とする上記(8)に記載のコ
ンピュータ・グラフィックス・システム。
【0221】(10)ホスト・コンピュータ、プリミテ
ィブ・レンダリング・ハードウェア、テクスチャ・プリ
ミティブ・データ経路およびテクスチャ・データ・ダウ
ンロード手段を備えるコンピュータ・グラフィックス・
システムであって、上記ホスト・コンピュータが、テク
スチャ・プリミティブに対応するテクスチャ・マッピン
グ・データを記憶する主メモリを備え、かつ、該システ
ムによってレンダリングされるべきプリミティブを上記
プリミティブ・レンダリング・ハードウェアに提供する
機能を有し、上記プリミティブ・レンダリング・ハード
ウェアが、上記ホスト・コンピュータから提供されるプ
リミティブをレンダリングする機能を持ち、かつ、レン
ダリングされるべきテクスチャ・プリミティブの少くと
も1つに対応するテクスチャ・マッピング・データを記
憶するローカル・テクスチャ・メモリを備え、上記テク
スチャ・プリミティブ・データ経路が、上記ホスト・コ
ンピュータを上記プリミティブ・レンダリング・ハード
ウェアに接続させ、対応するテクスチャ・マッピング・
データを使用してレンダリングされるべきテクスチャ・
プリミティブが上記ホスト・コンピュータから上記プリ
ミティブ・レンダリング・ハードウェアに送られる経路
として機能し、上記テクスチャ・データ・ダウンロード
手段が、上記プリミティブ・データ経路を通らずに、上
記ホスト・コンピュータの主メモリから上記ローカル・
テクスチャ・メモリへ上記テクスチャ・マッピング・デ
ータをダウンロードする機能を有するように構成される
コンピュータ・グラフィックス・システム。
【0222】
【発明の効果】本発明に従うテクスチャ・マッピング・
ハードウエアへのテクスチャ・データのダウンロード
が、プリミティブ伝送経路と異なる経路を使用して実施
され、従って3次元プリミティブ・パイプラインのフラ
ッシングを必要としないので、システムの帯域幅および
処理能力が向上する。また、本発明の1つの実施形態に
おいて、特定のプリミティブ・レンダリング・タスクが
複数のプリミティブに関して並列的に実行されるよう
に、テクスチャ・マッピング基板およびフレーム・バッ
ファ基板に関する諸ハードウェアが反復配置されるた
め、システムの帯域幅が拡大される。
【0223】更にまた、本発明に従うキャッシュ・メモ
リ内のSDRAMチップの各々は、同時に別々の活動ペ
ージ(すなわち、共通の行アドレスを持つメモリ位置グ
ループ)を維持することができる2つの等しいサイズの
バンクに内部的に分割されるため、従来技術のDRAM
の場合に起きるような2つの異なるページ(すなわち2
つの異なる行アドレス)からデータを取り出すことに付
随する再ページングの負荷を伴うことなく、SDRAM
チップの2つのバンク内の異なるページにあるデータを
連続的読取りサイクルでアクセスすることができるとい
う効果を持つ。
【0224】また、本発明の1つの実施形態において、
多数の近接した読み取りサイクル内で共通のテクセル・
データが多数回アクセスされる場合、キャッシュは、最
初の読取りについてのみアクセスされるだけで、後続の
読取りの各々についてはキャッシュ読取りサイクルが節
約され、これによって、必要とされるキャッシュ・アク
セス数が減り、システムの帯域幅が増大する。
【0225】加えて、本発明に従って、キャッシュ・デ
ィレクトリを主ディレクトリおよびミニディレクトリに
分割構成することによって、同一のタグについて主ディ
レクトリをアクセスする場合複数サイクルを伴う必要が
なくなるので、複数のキャッシュ読み取りタグがミニデ
ィクトリで一致ミスを起こす場合のシステム帯域幅に対
する影響を最小限にとどめることができ、高いシステム
帯域幅を達成する一方キャッシュ・ディレクトリを実施
するハードウェアの数量を比較的少なくすることができ
る。
【0226】このように、本発明は、種々の局面におい
て、コンピュータ・グラフィックス・システムなどのデ
ータ処理システムの処理能力を向上させる効果を奏す
る。
【図面の簡単な説明】
【図1】一組のテクスチャMIPマップの例を示す図で
ある。
【図2】本発明のコンピュータ・グラフィックス・シス
テム全体の1つの実施形態のブロック図である。
【図3】本発明のコンピュータ・グラフィックス・シス
テム全体の別の1つの実施形態のブロック図である。
【図4】本発明のテクスチャ・マッピング・ハードウェ
アのブロック図である。
【図5】本発明のテクスチャ・マッピング・ハードウェ
アのパラメータ補間回路エレメントのブロック図であ
る。
【図6】本発明のキャッシュ・メモリおよびテクスチャ
・マッピング・ハードウェアの一部を示すブロック図で
ある。
【図7】テクスチャ・データのブロックが、本発明のキ
ャッシュ・メモリの4つのインターリーブ形態の利点を
生かすように構成される様態を示す図である。
【図8】本発明のキャッシュ・メモリを形成するメモリ
・チップの構成を示すブロック図である。
【図9】本発明のテクスチャ・マッピング・ハードウェ
アの一部を示すブロック図である。
【図10】本発明のテクスチャ・マッピング方式に従っ
て、ピクセルの各々について隣接するMIPマップから
アクセスされるテクセルの例を示す図である。
【図11】テクスチャ・マッピング・ハードウェア・バ
ッファおよび図10の例に従う関連データのエントリを
示す図である。
【図12】本発明のテクスチャ・マッピング・ハードウ
ェアによって使われる回路のブロック図である。
【図13】一組のテクスチャMIPマップの例を示す図
である。
【図14】本発明のメモリ記憶方式に従って図13の例
のMIPマップがメモリに記憶される形態を示す図であ
る。
【図15】本発明のメモリ記憶方式に従ってMIPマッ
プが細分化される形態を示すMIPマップのブロック図
である。
【図16】本発明のメモリ記憶方式に従ってMIPマッ
プが更に細分化される形態を示す図15のMIPマップ
部分のブロック図である。
【図17】キャッシュ・ブロック・タグが生成される形
態を示す図である。
【図18】補間されたテクセルを基に対応するテクスチ
ャ・データ・ブロックを持つテクセル・アドレスを決定
するプロセスを示す流れ図である。
【図19】キャッシュ・ミスが発生する時置き換えられ
るべきキャッシュ・ブロックを決定するプロセスを表す
流れ図である。
【図20】テクスチャ・マッピング・チップにおいて提
供されるテクセル・ポート・レジスタを示す図である。
【図21】ホスト・コンピュータにおいてキャッシュ・
ミス割り込みを処理するプロセスを示す流れ図である。
【図22】キャッシュのミニディレクトリのブロック図
である。
【図23】キャッシュの主ディレクトリのブロック図で
ある。
【図24】キャッシュ読取りタグがミニディレクトリと
一致しない場合の処理能力低下を防ぐために用意される
一連の比較器のブロック図である。
【図25】本発明のキャッシュ・ディレクトリの1つの
実施形態を表すブロック図である。
【符号の説明】
10 フロントエンド基板 12 テクスチャ・マッピング基板 14 フレーム・バッファ基板 15 ホスト・コンピュータ 46 テクスチャ・マッピング・チップ 48 ローカル・メモリまたはキャッシュ・メモリ 100 基本マップ 102、104、108 MIPマップ 110、112、130 テクセル 132 加重平均テクセル 204A、204B、204C、204D インター
リーブ 206A、206B、206C、206D キャッシ
ュ・アクセス・コマンドFIFO 214A0、214A1、214B0、214B1、2
14C0、214C1、214D0、214D1
テクセル・データFIFO 216 テクセル補間回路コマンドFIFO 555 4対1マルチプレクサ
フロントページの続き (72)発明者 スティーブン・ポール・タッカー アメリカ合衆国80526コロラド州フォー ト・コリンズ、プレスコット・ストリート 817

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】ホスト・コンピュータ、プリミティブ・レ
    ンダリング・ハードウェア、および、上記ホスト・コン
    ピュータと上記プリミティブ・レンダリング・ハードウ
    ェアの間に展開するテクスチャ・プリミティブ・データ
    経路を含むコンピュータ・グラフィックス・システムに
    おいて、テクスチャ・マッピング・データを管理する方
    法であって、 上記ホスト・コンピュータが、対応するテクスチャ・マ
    ッピング・データを使用して上記システムによってレン
    ダリングされるべきテクスチャ・プリミティブを、上記
    テクスチャ・プリミティブ・データ経路を経由して、上
    記プリミティブ・レンダリング・ハードウェアに渡す機
    能を有し、かつ、テクスチャ・プリミティブに対応する
    テクスチャ・マッピング・データを記憶する主メモリを
    備え、 上記プリミティブ・レンダリング・ハードウェアが、レ
    ンダリングされるべきテクスチャ・プリミティブの少く
    とも1つに対応するテクスチャ・マッピング・データを
    ローカルに記憶するローカル・テクスチャ・メモリを備
    えるように構成され、 レンダリングされるべきテクスチャ・プリミティブの1
    つに対応するテクスチャ・マッピング・データが上記ホ
    スト・コンピュータの主メモリに記憶されているが上記
    ローカル・テクスチャ・メモリ内に記憶されていない場
    合、該テクスチャ・プリミティブの1つをレンダリング
    する前に、該テクスチャ・プリミティブの1つに対応す
    るテクスチャ・マッピング・データを、上記テクスチャ
    ・プリミティブ・データ経路とは別個のテクスチャ・マ
    ッピング・データ経路を経由して、上記ホスト・コンピ
    ュータの主メモリから上記ローカル・テクスチャ・メモ
    リへダウンロードするステップ、 を含むテクスチャ・マッピング・データを管理する方
    法。
JP12448696A 1995-06-06 1996-05-20 テクスチャ・マッピング・データ管理方法 Expired - Lifetime JP3857355B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US465,846 1995-06-06
US08/465,846 US5745118A (en) 1995-06-06 1995-06-06 3D bypass for download of textures

Publications (2)

Publication Number Publication Date
JPH08329257A true JPH08329257A (ja) 1996-12-13
JP3857355B2 JP3857355B2 (ja) 2006-12-13

Family

ID=23849403

Family Applications (1)

Application Number Title Priority Date Filing Date
JP12448696A Expired - Lifetime JP3857355B2 (ja) 1995-06-06 1996-05-20 テクスチャ・マッピング・データ管理方法

Country Status (4)

Country Link
US (1) US5745118A (ja)
EP (1) EP0747857B1 (ja)
JP (1) JP3857355B2 (ja)
DE (1) DE69630165T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7528842B2 (en) 2004-04-23 2009-05-05 Sony Computer Entertainment Inc. Image processing apparatus and image processing method

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9501832D0 (en) 1995-01-31 1995-03-22 Videologic Ltd Texturing and shading of 3-d images
DE69635066T2 (de) * 1995-06-06 2006-07-20 Hewlett-Packard Development Co., L.P., Houston Unterbrechungsschema zum Aktualisieren eines Lokalspeichers
JP4084428B2 (ja) * 1996-02-02 2008-04-30 富士通株式会社 半導体記憶装置
US5936632A (en) * 1996-07-26 1999-08-10 Hewlett-Packard Co. Method for fast downloading of textures to accelerated graphics hardware and the elimination of extra software copies of texels
US5889994A (en) * 1997-03-27 1999-03-30 Hewlett-Packard, Co. Method for cataloging graphics primitives by rendering state
US6154216A (en) * 1997-04-30 2000-11-28 Ati Technologies Method and apparatus for decompression of a two dimensional video texture map
US6046747A (en) * 1997-08-04 2000-04-04 Hewlett-Packard Company Graphics application programming interface avoiding repetitive transfer of texture mapping data
DE69816469T2 (de) * 1997-10-31 2004-04-15 Hewlett-Packard Co. (N.D.Ges.D.Staates Delaware), Palo Alto Verfahren und vorrichtung zur schnellen wiedergabe eines bildes in abhängigkeit von dreidimensionalen graphikdaten in einer umgebung mit begrenzter datengeschwindigkeit
US6452603B1 (en) 1998-12-23 2002-09-17 Nvidia Us Investment Company Circuit and method for trilinear filtering using texels from only one level of detail
US6181352B1 (en) 1999-03-22 2001-01-30 Nvidia Corporation Graphics pipeline selectively providing multiple pixels or multiple textures
US6618048B1 (en) 1999-10-28 2003-09-09 Nintendo Co., Ltd. 3D graphics rendering system for performing Z value clamping in near-Z range to maximize scene resolution of visually important Z components
US6717577B1 (en) 1999-10-28 2004-04-06 Nintendo Co., Ltd. Vertex cache for 3D computer graphics
US6700586B1 (en) 2000-08-23 2004-03-02 Nintendo Co., Ltd. Low cost graphics with stitching processing hardware support for skeletal animation
US6811489B1 (en) 2000-08-23 2004-11-02 Nintendo Co., Ltd. Controller interface for a graphics system
US7538772B1 (en) 2000-08-23 2009-05-26 Nintendo Co., Ltd. Graphics processing system with enhanced memory controller
US6707458B1 (en) 2000-08-23 2004-03-16 Nintendo Co., Ltd. Method and apparatus for texture tiling in a graphics system
US7576748B2 (en) 2000-11-28 2009-08-18 Nintendo Co. Ltd. Graphics system with embedded frame butter having reconfigurable pixel formats
US7196710B1 (en) 2000-08-23 2007-03-27 Nintendo Co., Ltd. Method and apparatus for buffering graphics data in a graphics system
US6636214B1 (en) 2000-08-23 2003-10-21 Nintendo Co., Ltd. Method and apparatus for dynamically reconfiguring the order of hidden surface processing based on rendering mode
JP4581261B2 (ja) * 2001-02-14 2010-11-17 ソニー株式会社 演算装置、演算処理方法及び画像処理装置
US7796133B1 (en) 2002-11-18 2010-09-14 Ati Technologies Ulc Unified shader
US7061495B1 (en) * 2002-11-18 2006-06-13 Ati Technologies, Inc. Method and apparatus for rasterizer interpolation
US8933945B2 (en) * 2002-11-27 2015-01-13 Ati Technologies Ulc Dividing work among multiple graphics pipelines using a super-tiling technique
US7633506B1 (en) * 2002-11-27 2009-12-15 Ati Technologies Ulc Parallel pipeline graphics system
US10649775B2 (en) 2013-07-15 2020-05-12 Texas Instrum Ents Incorporated Converting a stream of data using a lookaside buffer
CN109992234B (zh) * 2017-12-29 2020-11-17 浙江宇视科技有限公司 图像数据读取方法、装置、电子设备及可读存储介质

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5051889A (en) * 1987-10-23 1991-09-24 Chips And Technologies, Incorporated Page interleaved memory access
US5097427A (en) * 1988-07-06 1992-03-17 Hewlett-Packard Company Texture mapping for computer graphics display controller system
GB2240017A (en) * 1990-01-15 1991-07-17 Philips Electronic Associated New, interpolated texture values are fed back to texture memories
GB2240015A (en) * 1990-01-15 1991-07-17 Philips Electronic Associated Texture memory addressing
US5222205A (en) * 1990-03-16 1993-06-22 Hewlett-Packard Company Method for generating addresses to textured graphics primitives stored in rip maps
WO1992002923A1 (en) * 1990-08-03 1992-02-20 Du Pont Pixel Systems Limited Data processing and memory systems
US5276798A (en) * 1990-09-14 1994-01-04 Hughes Aircraft Company Multifunction high performance graphics rendering processor
US5255360A (en) * 1990-09-14 1993-10-19 Hughes Aircraft Company Dual programmable block texturing and complex clipping in a graphics rendering processor
US5293607A (en) * 1991-04-03 1994-03-08 Hewlett-Packard Company Flexible N-way memory interleaving
US5412788A (en) * 1992-04-16 1995-05-02 Digital Equipment Corporation Memory bank management and arbitration in multiprocessor computer system
GB2267203B (en) * 1992-05-15 1997-03-19 Fujitsu Ltd Three-dimensional graphics drawing apparatus, and a memory apparatus to be used in texture mapping
JPH0628485A (ja) * 1992-07-09 1994-02-04 Toshiba Corp テクスチャーアドレス生成器、テクスチャーパターン生成器、テクスチャー描画装置及びテクスチャーアドレス生成方法
GB2270243B (en) * 1992-08-26 1996-02-28 Namco Ltd Image synthesizing system
US5561745A (en) * 1992-10-16 1996-10-01 Evans & Sutherland Computer Corp. Computer graphics for animation by time-sequenced textures
JPH06251166A (ja) * 1993-02-25 1994-09-09 Toshiba Corp 画像処理装置
DE69430857T2 (de) * 1993-06-23 2003-03-20 Sun Microsystems Inc Zeichnungsverarbeitungsgerät für drei-dimensionalen graphischen Hoch-Leistungsbeschleuniger
US5548709A (en) * 1994-03-07 1996-08-20 Silicon Graphics, Inc. Apparatus and method for integrating texture memory and interpolation logic in a computer system
US5461712A (en) * 1994-04-18 1995-10-24 International Business Machines Corporation Quadrant-based two-dimensional memory manager

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7528842B2 (en) 2004-04-23 2009-05-05 Sony Computer Entertainment Inc. Image processing apparatus and image processing method

Also Published As

Publication number Publication date
EP0747857A3 (en) 1999-09-01
DE69630165T2 (de) 2004-07-22
EP0747857A2 (en) 1996-12-11
DE69630165D1 (de) 2003-11-06
US5745118A (en) 1998-04-28
JP3857355B2 (ja) 2006-12-13
EP0747857B1 (en) 2003-10-01

Similar Documents

Publication Publication Date Title
JP3645654B2 (ja) データ割り当て方法およびデータ記憶システム
JPH08329260A (ja) テクスチャ・データのアクセス方法
JPH08329258A (ja) テクスチャ・マッピング・データ管理方法
JPH08328951A (ja) データ・ブロック管理方法
JPH08329257A (ja) テクスチャ・マッピング・データ管理方法
JPH08329256A (ja) テクスチャ・データ割り当て方法
US6636225B2 (en) Managing texture mapping data in a computer graphics system
JP3888477B2 (ja) テクスチャマッピング・コンピュータ・グラフィックス・システム
US5801711A (en) Polyline and triangle strip data management techniques for enhancing performance of computer graphics system
US6426753B1 (en) Cache memory for high latency and out-of-order return of texture data
US7050063B1 (en) 3-D rendering texture caching scheme
US7151544B2 (en) Method for improving texture cache access by removing redundant requests
US5760780A (en) Computer graphics system using caching of pixel Z values to improve rendering performance
JP3803425B2 (ja) キャッシュ・ディレクトリ
US20050052449A1 (en) Novel design for a non-blocking cache for texture mapping
EP0803859A2 (en) System and method for optimizing storage requirements for an N-way distribution channel
GB2252024A (en) Graphics accelerator area fill system

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051227

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060322

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060327

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060616

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: 20060815

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060914

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100922

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110922

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110922

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120922

Year of fee payment: 6

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130922

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130922

Year of fee payment: 7

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130922

Year of fee payment: 7

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130922

Year of fee payment: 7

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term