首页 / 专利库 / 资料储存系统 / 高速缓冲存储器 / 顶点缓存 / Vertex cache for three-dimensional graphics

Vertex cache for three-dimensional graphics

阅读:607发布:2021-01-15

专利汇可以提供Vertex cache for three-dimensional graphics专利检索,专利查询,专利分析的服务。并且PROBLEM TO BE SOLVED: To provide spatial locality for display processing without the need to previously store vertex data in display order. SOLUTION: This vertex cache 212 includes a cache memory which is local as against graphics engine, small in scale, and short in wait time and a polygon can be represented as an indexed array, e.g. an indexed linear list 300 of data components representing several features (e.g. position, color, surface normal, or texture coordinates) of vertexes. The vertex cache can take in relative blocks of indexed vertex attribute data at need and use them for the graphics engine.,下面是Vertex cache for three-dimensional graphics专利的具体信息内容。

【特許請求の範囲】
  • 【請求項1】ポリゴン頂点データを保存するメモリおよび少なくとも一部は前記ポリゴン頂点データに応答して画像を発生して表示する3次元グラフィックスエンジンを含む3次元グラフィックスシステムにおいて、前記メモリおよび前記3次元グラフィックスエンジンに動作可能に結合された頂点キャッシュであって、 前記ポリゴン頂点データが索引付き頂点データ表現を含み、前記頂点キャッシュは前記索引付き頂点データ表現に応答して動作し、前記メモリから索引付き頂点データをキャッシュし、画像表示のための再ソーティングなしで、前記グラフィックスエンジンに使用させるようにしたことを特徴とする、頂点キャッシュ。
  • 【請求項2】前記3次元グラフィックスエンジンは集積回路に配置されており、 前記集積回路に配置されて前記3次元グラフィックスエンジンと動作可能に結合されたメモリ装置をさらに備える、請求項1記載の頂点キャッシュ。
  • 【請求項3】前記メモリ装置は前記頂点データをキャッシュするための組連想キャッシュメモリを備える、請求項2記載の頂点キャッシュ。
  • 【請求項4】前記組連想キャッシュメモリは8個のキャッシュラインを提供する、請求項3記載の頂点キャッシュ。
  • 【請求項5】前記メモリ装置は8キロバイトの短い待ち時間のRAMを含む、請求項2記載の頂点キャッシュ。
  • 【請求項6】複数のキャッシュタグラインを備える、請求項1記載の頂点キャッシュ。
  • 【請求項7】前記複数のキャッシュタグ状態レジスタを含む、請求項1記載の頂点キャッシュ。
  • 【請求項8】待ち行列およびミス待ち行列を含む、請求項1記載の頂点キャッシュ。
  • 【請求項9】前記頂点キャッシュは、使用時に前記メモリに結合され、前記グラフィックスエンジンが前記頂点データを必要とするときに、前記メモリから頂点データを取り込む、請求項1記載の頂点キャッシュ。
  • 【請求項10】前記頂点キャッシュと前記3次元グラフィックスエンジンとの間に動作可能に連結されたハードウエアベースの逆量子化装置をさらに備え、 前記逆量子化装置は、前記3次元グラフィックスエンジンによる使用のために、複数の頂点データフォーマットを一様な浮動小数点フォーマットに変換する、請求項1
    記載の頂点キャッシュ。
  • 【請求項11】前記索引付き頂点データ表現は属性データを参照する索引付きアレイを含む、請求項1記載の頂点キャッシュ。
  • 【請求項12】前記索引付きアレイは前記属性データを直接参照する、請求項11記載の頂点キャッシュ。
  • 【請求項13】前記索引付きアレイは前記属性データを間接的に参照する、請求項11記載の頂点キャッシュ。
  • 【請求項14】ポリゴン頂点データを保存するメモリおよび少なくとも一部は前記ポリゴン頂点データに応答して画像を発生および表示する3次元グラフィックスエンジンを含む3次元ビデオグラフィックスシステムにおいて、前記3次元グラフィックスエンジンが使用するために前記メモリから前記頂点データにアクセスするための方法であって、 (a) 前記ポリゴン頂点データを索引付き頂点データ表現で表現するステップ、および(b) 前記索引付き頂点データを、前記3次元グラフィックスエンジンに対してローカルな短い待ち時間のキャッシュメモリ装置の中に取り込んで、前記索引付き頂点データを前記3次元グラフィックスエンジンによるアクセスのために利用可能にするステップを含む、方法。
  • 【請求項15】前記ステップ(b) は、前記3次元グラフィックスエンジンが前記頂点データを必要とするときに、頂点データを前記メモリから前記キャッシュメモリ装置へ取り込むステップをさらに含む、請求項14記載の方法。
  • 【請求項16】前記ステップ(b) は、前記キャッシュメモリ装置に保存された複数の頂点データフォーマットを、前記3次元グラフィックスエンジンによる使用のための一様な浮動小数点フィーマットに変換するステップをさらに含む、請求項14記載の方法。
  • 说明书全文

    【発明の詳細な説明】

    【0001】

    【発明の分野】この発明は3次元対話型コンピュータグラフィックスのための頂点キャッシュに関し、より詳細には、アニメーションおよびおよび表示処理のための頂点情報を効率的に表現および保存するための構成および技術に関する。 さらにまた、この発明は特に、3次元ポリゴンデータのより効率的な映像化のための頂点キャッシュを含む3次元グラフィックス集積回路に関する。

    【0002】

    【発明の背景】現代の3次元グラフィックスシステムは、表示要素(すなわち、ポリゴン)からアニメーション化された表示を構成する。 各表示オブジェクト(たとえば木,自動車もしくは人物または他のキャラクタ)
    は、典型的には、多数のポリゴンから構築される。 夫々のポリゴンは、他の特徴(たとえば色,濃淡付けのための表面法線,テクスチャなど)とともにその頂点によって表され、この頂点が3次元空間におけるポリゴンの位置,向きおよび大きさを特定する。 コンピュータ技術は、これらの技術を使用してアニメーション化された3
    次元グラフィックスシーンを効率的に構築することができる。

    【0003】ビデオゲームシステムのような低コストの高速対話型(interactive) 3次元グラフィックスシステムは、メモリおよび処理資源によって構築される。 したがって、このようなシステムでは、表示オブジェクトを表す種々のポリゴンを効率的に表現および処理できることが重要である。 たとえば、表示オブジェクトをコンパクトに表現するデータを作成して、特定のタスクのために必要な全てのデータが便利に利用可能であるような方法で、そのデータを3次元グラフィックスシステムに提示することが望ましい。

    【0004】或るものは、時間的局所性および空間的局所性に関してデータを特徴付けすることができる。 時間的局所性とは、同じデータが短い時間の間に頻繁に参照されることを意味する。 一般に、3次元対話型グラフィックスアプリケーションのためのポリゴン表現データは、大きな時間的局所性を有する。 空間的局所性とは、
    参照される次のデータ項目が、最後に参照された項目に対して近接したメモリに保存されることを意味する。 効率の改善は、データの空間的局所性を増大させることによって実現することができる。 無制限量のデータに対する待ち時間の短い無制限のランダムアクセスを許容しない実際のメモリシステムにおいては、所定のタスクを実行するために必要とされる全てのデータが、待ち時間の短いメモリの中に近接して保存されれば性能は増大する。

    【0005】データの空間的局所性を増大させるために、特定のタスクを実行するために必要な全てのデータが一緒に保存され得るように同じ時間に近接して存在するであろうことを仮定して、処理の順序に基づいてポリゴンデータをソーティングすることができる。 たとえば、アニメーションを形成するポリゴンデータは、実行されるアニメーションの種類に対して優先的な方法で保存することができる。 一つの例として、表面変形(surfa
    ce deformation) のような典型的な複雑な対話型リアルタイムアニメーションは、表面における全ての頂点の操作を必要とする。 このようなアニメーションを効率的に実行するためには、一定の方法で頂点データをソーティングするのが望ましい。

    【0006】典型的な3次元グラフィックスシステムは、アニメーション処理および表示処理を別々に実行し、これらの別々の工程はデータを異なる方法で処理する。 残念なことに、アニメーション処理のための頂点データをソーティングする最適順序は、一般に、表示処理のための最適なソーティング順序とは異なる。 アニメーションのためのソーティングは、表示順序に対してランダム性を加え易いかもしれない。 アニメーション処理を単純化するためにデータストリームをソーティングすることによって、データを効率的に表示することを一層困難にしてしまう。

    【0007】したがって、種々の理由で、表示のためのデータにアクセスするときに空間的局所性が存在することを仮定することは困難かも知れない。 困難性は、任意の大きな表示オブジェクトに効率的にアクセスする必要性から生じる。 加えて、上記で説明した理由で、少なくとも表示目的については、表示エンジンに提示される頂点データの順序には、典型的には幾らかのランダム性が存在するであろう。 さらに、実施に有用であり得る頂点レベルを超えるような他のデータ局所性が存在するであろう(たとえば、一定のテクスチャを共有する全てのポリゴンを一緒にグループ化すること)。

    【0008】より高い効率を達成するための1つのアプローチは、短い待ち時間の追加メモリ(たとえば最短待ち時間の手頃なメモリシステム)を準備することである。 また、高速ローカルメモリ中の表示オブジェクトに適合させて、ランダムアクセスを達成することも可能であろう。 しかし、オブジェクトが非常に大きい可能性がないとはいえず、また二重にバッファする必要があるかもしれない。 したがって、このようなアプローチのために必要とされるバッファは非常に大きくなる可能性がある。

    【0009】また、メインCPUのデータキャッシュを使用して、表示エンジンのための最適順序で、ポリゴンデータをアセンブルしソーティングすることが可能であるかもしれない。 しかし、これを効率的に行うには、ポリゴンデータがデータキャッシュの残部をスラッシング
    (thrashing) するのを防止する方法が必要であろう。 加えて、データを先取り(prefetch) してメモリ待ち時間を隠す必要があるであろう。 なぜなら、表示順序のためにソーティングされた偶数データがアクセスされる方法において、幾らかのランダム性が存在する可能性があるからである。 さらに、このアプローチは、CPUに対して追加の負荷を与えるであろう。 特に、或る具体化においては、表示エンジンが解釈できる2値フォーマットにデータをアセンブリすることが必要があるからである。
    このアプローチを使用することにより、メインCPUおよび表示エンジンは直列になり、CPUはデータをグラフィックスエンジンに直接供給する。 処理を並列化すること(たとえば、表示エンジンを、DRAM FIFO
    バッファを介して供給すること)は、直接モードの供給に比較して、実質的に追加のメモリアクセスバンド幅を必要とするであろう。

    【0010】したがって、3次元グラフィックス表示プロセスのためのポリゴンデータを表現し、保存し供給するために使用できるさらに効率的な技術の必要性が存在している。

    【0011】

    【発明の概要】この発明は、索引付きプリミティブ頂点データストリームを編成する頂点キャッシュを提供することにより、この問題を解決するものである。

    【0012】この発明により提供される1つの局面に従えば、ポリゴン頂点データは、頂点キャッシュを介して表示(グラフィックス)エンジンに供給される。 頂点キャッシュは、表示エンジンハードウエア(たとえばその一部)に対してローカルな、短い待ち時間の小規模のメモリでよい。 融通性および効率性は、実際のキャッシュ内容よりもはるかに大きい仮想メモリビューを与えるキャッシュから生じる。

    【0013】頂点キャッシュは、必要なときに、フライ
    (fly)に対する表示処理のために必要な頂点データを形成するために使用することができる。 したがって、表示目的のために頂点データを予めソーティングするのではなく、頂点キャッシュは、関連ブロックのデータを必要なときに単純に取得して、これを表示プロセサが利用できるようにする。 対話型ビデオゲーム表示のための頂点データによって示される高度の時間的局所性、および特定の最適な索引付きアレイデータ構造(下記参照)に基づいて、何れかの時点で必要とされる殆どの頂点データが、頂点データストリームの数に比例した数のキャッシュラインを有する小規模の組連想頂点キャッシュ(small
    set-associative vertex cache) においてでも入手可能であることを見出した。 最適構成の一例は、8組連想頂点キャッシュを形成する512×128ビットのデュアルポートRAMを提供する。

    【0014】グラフィックスエンジンに頂点を供給する目的で、頂点キャッシュおよび関連タグをカスタマイズしかつ最適化することによって効率を増大させることができ、汎用のキャッシュおよびタグ構造を使用した場合よりも、さらに効率的な頂点の先取り(prefetching) およびアセンブリ(assembling) を可能にする。 頂点キャッシュはデータを表示エンジンに直接供給することを可能にするので、追加のメモリアクセスバンド幅のコストが回避される。 ダイレクトメモリアクセスを使用して、
    頂点キャッシュへ頂点データを効率的に転送してもよい。

    【0015】頂点キャッシュにより与えられる効率をさらに増大させるためには、特定のポリゴンまたはポリゴンの組を、それ(ら)が使用される度毎に完全に再特定
    (re-specify)する必要性を低減することが望ましい。 この発明により提供される別の局面に従えば、ポリゴンはアレイ、たとえば頂点の幾つかの特徴を表すデータ成分の線形リスト(たとえば位置,色,表面法線(surface n
    ormal),またはテクスチャ座標)として表現することができる。 夫々の表示オブジェクトは、種々の組の索引とともに、このようなアレイの集合として表現することができる。 これらの索引は、特定のアニメーションまたは表示目的のためのアレイを参照する。 ポリゴンデータを索引付き成分のリストとして表すことによって、マッピング間で不連続性が許容される。 さらに、個々の成分(コンポーネント)を分離することは、データをよりコンパクトに保存する(たとえば、より完全に圧縮されたフォーマットで)ことを可能にする。 この発明によって与えられる頂点キャッシュは、索引サイズ以下のこのような索引付きデータのストリームを収容することができる。

    【0016】頂点キャッシュに関連して索引付き頂点表現を使用することにより、表示目的のためにいかなる再ソーティングの必要性も存在しない。 たとえば、アニメーションのために予めソーティングされた表示とは逆の順序で、頂点データを表示エンジンに提供し、アニメーションをより効率的なプロセスにしてもよい。 頂点キャッシュは、索引付き頂点データ構造表現を使用して、明確な再ソーティングを何等必要とせずに、効率的に、頂点データを表示エンジンが利用可能にする。

    【0017】いかなる頂点成分も、コマンドストリームにおいて索引参照されることができ、または直接インライン化されることができる。 このことは、グラフィックス表示データ構造に沿ったメインプロセサの出を必要とせずに、メインプロセサによる効率的なデータ処理を可能にする。 たとえば、メインプロセサにより実行されるライティング操作は、色アレイを発生させるライティングパラメータのリストをループ処理することによって、法線および位置のリストから色アレイのみを発生させてもよい。 アニメーションプロセスが3形リスト表示データ構造に従う必要もなく、またアニメーションプロセスが表示のためのデータを再フォーマット化する必要もない。 表示プロセスは当然ながら、アニメーションプロセスに対して実質的なデータ再フォーマット化オーバヘッドを加えることなく、アニメーションプロセスにより提供されるデータを使用することができる。

    【0018】他方、表示順序で頂点データをソーティングすることについてペナルティはなく、いずれの場合にも、表示のために予めソーティングされたデータを提示するために最適化された頂点提示構造と比較して、性能を顕著に劣化させる頂点キャッシュを伴わずに、頂点データは表示のために効率的に表示エンジンに提示される。

    【0019】この発明により提供されるさらなる局面に従えば、頂点データは、幾つかの異なったフォーマット(たとえば8ビット固定小数点,16ビット固定小数点または浮動小数点)の何れかで量子化された圧縮データストリームを含む。 このデータは、索引付け(すなわち、頂点データストリームにより参照される)されてもよく、または直接的(すなわち、該ストリーム自身の中に含まれる)であってもよい。 これらの種々のデータフォーマットを全て共通の頂点キャッシュに保存し、続いて復元し、グラフィックス表示パイプラインのための共通のフォーマットに変換することができる。 このような弾力的なタイプのハードウエアサポート,フォーマット,および直接的または索引付き入力データとしての多くの属性は、複雑かつ時間を要するソフトウエアデータ変換を回避する。

    【0020】この発明の上述の目的,その他の目的,特徴,および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。

    【0021】

    【実施例】図1はこの発明が実施され得る対話型3次元コンピュータグラフィックスシステム100の一例を示す全体の概略図である。 システム100は、ステレオサウンドを伴って対話型3次元ビデオゲームをプレイするために使用することができる。 光ディスクのような適切な記憶媒体を光ディスク装置134に挿入することによって、異なるゲームをすることができる。 ゲームプレイヤは、手持ちコントローラ132(これはジョイスティック,ボタン,スイッチ,キーボードまたはキーパッド等の種々のコントロールを含むことができる)のような入力装置を操作することによって、システム100とリアルタイムで対話することができる。

    【0022】システム100は、メインプロセサ(CP
    U)102,メインメモリ104,ならびにグラフィックス/オーディオコプロセサ106を含んでいる。 この例では、メインプロセサ102は、コプロセサ106を介して手持ちコントローラ132(および/または他の入力装置)からの入力を受け取る。 メインプロセサ10
    2は、このようなユーザ入力に対して対話的に応答し、
    たとえば外部記憶装置134によって供給されるビデオゲームまたは他のグラフィックスプログラムを実行する。 たとえば、メインプロセサ102は、種々のリアルタイムの対話型制御機能に加えて、衝突検出およびアニメーション処理を行うことができる。

    【0023】メインプロセサ102は、3次元グラフィックスおよびオーディオコマンドを発生し、これらをグラフィックス/オーディオコプロセサ106に送る。 グラフィックス/オーディオコプロセサ106は、これらのコマンドを処理して画像を表示装置136上に発生し、またステレオスピーカ137R、137Lまたは他の適切な音声発生装置上でスイレオサウンドを発生する。

    【0024】システム100は、コプロセサ100からの画像信号を受け取って、該画像信号を標準のディスプレイ装置136(たとえばコンピュータモニタまたは家庭用カラーテレビ)に表示するのに適した複合ビデオ信号に変換するためのTVエンコーダ140を含む。 システム100はまた、ディジタル化されたオーディオ信号を圧縮および復元する(またディジタルオーディオ信号フォーマットとアナログオーディオ信号フォーマットの間での変換を行うことができる)オーディオコーデック(圧縮器/復元器)138を含む。 オーディオコーデック138は、バッファ140を介してオーディオ入力を受け取り、またこれを処理(たとえば、該コプロセサが発生する他のオーディオ信号および/または光ディスク装置134のストリーミングオーディオ出力を介して受信する他のオーディオ出力とのミキシング)のためにコプロセサ106に与えることができる。 コプロセサ10
    6は、オーディオ関連情報をオーディオタスク専用のメモリ144に保存する。 コプロセサ106は、得られたオーディオ出力信号を(たとえばバッファアンプ142
    L、142Rを介して)スピーカ137L,137Rによって再生できるように、復元およびアナログ信号への変換のためにオーディオコーデック138に与える。

    【0025】コプロセサ106は、システム100内に存在し得る種々の周辺機器と通信する能力を有する。 たとえば、並列ディジタルバス146は、光ディスク装置134と通信するために使用できる。 直列バス148
    は、たとえばROMおよび/またはリアルタイムクロック150,モデム152およびフラッシュメモリ154
    を含む種々の周辺機器と通信することができる。 別の外部直列バス156は、追加の拡張メモリ158(たとえばメモリカード)と通信するために使用することができる。

    【0026】 グラフィックス/オーディオコプロセサ図2はコプロセサ106内のコンポーネントのブロック図である。 コプロセサ106は、単一の集積回路であってもよい。 この例において、コプロセサ106は、3次元グラフィックスプロセサ107,プロセサインタフェース108,メモリンタフェース110,オーディオディジタル信号プロセサ(DSP)162,オーディオメモリンタフェース(I/F)164,オーディオインタフェース/ミキサ166,周辺コントローラ168および表示コントローラ128を含む。

    【0027】3次元グラフィックスプロセサ107はグラフィックス処理タスクを行い、またオーディオDSP
    162はオーディオ処理タスクを行う。 表示コントローラ128は、メモリ104からの画像情報にアクセスし、それを表示装置136に表示するためにTVエンコーダ140に与える。 オーディオインタフェース/ミキサ166は、オーディオコーデック138とのインタフェースをとり、また異なった音源(たとえばディスク1
    34からのストリーミングオーディオ入力,オーディオDSP162の出力,およびオーディオコーデック13
    8を介して受信された外部オーディオ入力)からのオーディオをミックスすることができる。 プロセサインタフェース108は、メインプロセサ102とコプロセサ1
    06との間のデータおよび制御インタフェースを与える。 メモリインタフェース110は、コプロセサ106
    とメモリ104との間のデータおよび制御インタフェースを与える。 この例において、メインプロセサ102
    は、コプロセサ106の一部であるプロセサインタフェース108およびメモリコントローラ110を介して、
    メインメモリ104にアクセスする。 周辺コントローラ168は、コプロセサ106と上記で述べた種々の周辺機器(たとえば、光ディスク装置134,コントローラ132,ROMおよび/またはリアルタイムクロック1
    50,モデム152,フラッシュメモリ154およびメモリカード158)との間のデータインタフェースおよび制御インタフェースを提供する。 オーディオメモリインタフェース164は、オーディオメモリ144とのインタフェースを提供する。

    【0028】図3はコプロセサ106内の3次元グラフィックスプロセサ107および関連するコンポーネントのより詳細な図を示している。 3次元グラフィックスプロセサ107は、コマンドプロセサ114および3次元グラフィックスパイプライン116を含んでいる。 メインプロセサ102は、グラフィックスデータ(すなわち、表示リスト)のストリームをコマンドプロセサ11
    4に通信する。 コマンドプロセサ114はこれらの表示コマンドを受取り、これらを解析し(それらを処理するのに必要な何等かの追加のデータをメモリ104から得る)、3次元処理およびレンダリングのために、頂点コマンドのストリームをグラフィックスパイプライン11
    6に与える。 グラフィックスパイプライン116は、これらのコマンドに基づいて3次元画像を発生する。 得られた画像情報は、表示コントローラ128(これはパイプライン116のフレームバッファ出力を表示装置13
    6上に表示する)によるアクセスのために、メインメモリ104に転送される。

    【0029】より詳細には、メインプロセサ102は表示リストをメインメモリ104に保存し、バスインタフェース108を介してポインタをコマンドプロセサ11
    4に渡す。 コマンドプロセサ114(これは以下で詳細に述べる頂点キャッシュ212を含む)は、CPU10
    2からコマンドストリームを取り込み、コマンドストリームおよび/またはメモリの中の頂点アレイから頂点属性を取り込み、属性タイプを浮動小数点フォーマットに変換し、得られた完全な頂点ポリゴンデータをレンダリング/ラスタ化のためにグラフィックスパイプライン1
    16に渡す。 以下でさらに詳細に説明するように、頂点データはコマンドストリームから、および/または各属性がそれ自身の線形アレイで保存されているメモリ中の頂点アレイから直接に来ることができる。 メモリ調停回路130は、グラフィックスパイプライン116,コマンドプロセサ114および表示コントローラ128の間でのメモリアクセスを調停する。 以下で説明するように、頂点属性アクセス待ち時間を低減するために、オンチップの8方向の組連想頂点キャッシュ(8-way set-ass
    ociative vertex cache) 212が用いられる。

    【0030】図3に示すように、グラフィックスパイプライン116は、変換ユニット118,セットアップ/
    ラスタライザ120,テクスチャユニット122,テクスチャ環境ユニット124およびピクセルエンジン12
    6を含むことができる。 グラフィックスパイプライン1
    16において、変換ユニット118は種々の3次元変換操作を行い、またライティングおよびテクスチャ効果を実行してもよい。 たとえば、変換ユニット118は、入ってくる頂点毎のジオメトリをオブジェクト空間からスクリーン空間に変換し、入ってくるテクスチャ座標を変換しそして投影テクスチャ座標を計算し、ポリゴンクリッピングを行い、頂点ライティング毎の計算を行い、テクスチャ座標発生のバンプマッピングを実行する。 セットアップ/ラスタライザ120は、変換ユニット118
    から頂点データを受け取って、エッジラスタ化,テクスチャ座標ラスタ化および色ラスタ化を実行するラスタライザへ3角形セットアップ情報を送信するセットアップユニットを含んでいる。 テクスチャユニット122は、
    投影テクスチャならびにアルファ透明性および深さをもったBLITを使用することにより、多重テクスチャ処理,ポストキャッシュテクスチャ復元,テクスチャフィルタリング,エンボスされたバンプマッピング,投影およびライティングを含むテクスチャリングに関連した種々のタスクを実行する。 テクスチャユニット122は、
    フィルタリングされたテクスチャ値をテクスチャ環境ユニット124へ出力する。 テクスチャ環境ユニット12
    4は、ポリゴンの色およびテクスチャの色を一緒にブレンドし、テクスチャかぶりおよび他の環境関連機能を実行する。 ピクセルエンジン126は、Zバッファリングおよびブレンドを行い、データをオンチップのフレームバッファメモリの中に保存する。

    【0031】したがって、グラフィックスパイプライン116は、フレームバッファおよび/またはテクスチャ情報をローカルに保存する1以上の埋め込み型DRAM
    (図示せず)を含んでいてもよい。 オンチップのフレームバッファは、表示コントローラ128によるアクセスのために、メインメモリ104に周期的に書き込まれる。 グラフィックスパイプライン116のフレームバッファ出力(これは、結局はメインメモリ104に保存される)は、表示コントローラ128によってフレーム毎に読取られる。 表示コントローラ128は、ディスプレイ136上に表示するためのディジタルRGBピクセル値を提供する。

    【0032】 頂点キャッシュおよび頂点索引アレイ図4は頂点キャッシュ212および表示リストプロセサ213を含むコマンドプロセサ114の概略図である。
    コマンドプロセサ114は、位置,法線,テクスチャ座標および色の信号ストリームから完全な索引付きアレイまでの、広範囲の頂点データおよびプリミティブデータ構造を取り扱う。 何れかの頂点成分は索引参照されることができ、またはコマンドストリームの中に直接インライン化することができる。 したがって、コマンドプロセサ114は、融通可能なタイプ,フォーマットおよび多くの属性を直接または索引付きデータとしてサポートする。

    【0033】コマンドプロセサ114内の表示リストプロセサ213は、(典型的にはメインメモリ104内に割当てられたバッファを介して)CPU102により与えられる表示リストコマンドを処理する。 頂点キャッシュ212は、図4に示す例示データ構造300のような、索引付きポリゴン頂点データ構造をキャッシュメモリに入れる。 例示した索引付きポリゴン頂点データ構造300は、多くの頂点成分データアレイ(たとえば、色データアレイ306a,テクスチャ頂点データアレイ3
    06b,表面法線データアレイ306c,位置頂点データアレイ306d等)を参照する頂点索引アレイ304
    を含んでいてもよい。 頂点キャッシュ212は、メインメモリ104内のこれらアレイ306から頂点データにアクセスし、表示リストプロセサ213による迅速アクセスおよび使用のために、それらをキャッシュメモリに入れる。

    【0034】 表示リストプロセサ図5は、コマンドプロセサ114によって実行される表示リストプロセサ213の例を示している。 この図5において、表示リストプロセサ213は、幾つかの構文解析(パーシング:parsing)の段階を提供する。 メインプロセサ102から受け取られた表示リストコマンドは、表示リストストリームパーサ200によって解釈される。 表示リストストリームパーサ200は、アドレススタック202を使用して、指令のネスティングを与えることができる。 あるいは、FIFOからの頂点コマンドのストリームをメインメモリ106に保存して、予め取り込まれた頂点コマンドデータを再ロードする必要なく、インスタンスにおけるサブルーチン分岐を可能にするために、デュアルFIFOを使用してもよい(図6参照)。 図6のアプローチを使用することにより、表示リストコマンドは1レベル深さの表示リストを提供し、ここでトップレベルのコマンドストリームは表示リスト1
    レベル深さをコールすことができる。 この「コール」能力は、ジオメトリにおける予め計算されたコマンドおよびインスタンスのために有用である。

    【0035】表示ストリームパーサ200は、グラフィックスパイプライン116の状態に影響するコマンドを、該グラフィックスパイプラインに向けて送り出す。
    残りのプリミティブコマンドストリームは、メインメモリ104から得たプリミティブ記述子に基づいて、プリミティブストリームパーサ204により解析される(以下参照)。

    【0036】頂点に対する索引が参照され、ハードウエア中のテーブルに設けられ得る頂点記述子に基づいて、
    頂点ストリームパーサ208によって解析される。 頂点ストリームパーサ208に与えられる頂点ストリームは、メインメモリ104内に保存された頂点データに対するこのような索引を含んでいてもよい。 頂点ストリームパーサ208は、頂点キャッシュ212を介して、メインメモリ104からこの頂点データにアクセスすることができ、直接のデータに対して反対に索引付けされた場合の異なった経路を介して、頂点コマンドおよび関連の索引付き頂点属性を別々に与える。 1つの例において、頂点ストリームパーサ208は、それがメインメモリ104の全体であるかのように、頂点キャッシュ21
    2をアドレス指定する。 次いで、頂点キャッシュ212
    はメインメモリ104から頂点データを検索し(また多くは先取りし)、これを頂点ストリームパーサ208による使用のために一時的にキャッシュメモリに入れる。
    頂点キャッシュ212における頂点データのキャッシングは、メインメモリ104に対するアクセス回数を減少させ、したがってコマンドプロセサ114が必要とするメインメモリバンド幅を減少させる。

    【0037】頂点ストリームパーサ208は、各3角形(ポリゴン)内に表現されるべき夫々の頂点についてのデータを与える。 この頂点毎データ(per-vertex dat
    a)は、プリミティブストリームパーサ204によって出力されるプリミティブ毎(per-primitive) データとともに、復元/逆量子化器ブロック214に与える。 逆量子化器214は、異なった頂点表現(たとえば8ビットおよび16ビットの固定小数点フォーマットデータ)
    を、グラフィックスパイプライン116によって使用される一様な浮動小数点表現へと変換する。 逆量子化器2
    14は、弾力的な種々の異なるタイプのフォーマットおよび多くの属性のためのハードウエアサポートを提供し、このようなデータは直接のデータまたは索引付データとして、表示リストプロセサ213に提示されることができる。 逆量子化器214の一様な浮動小数点表現出力は、ラスタ化およびさらなる処理のためにグラフィックスパイプライン116に与えられる。 最適化として所望のときは、頂点ストリップデータを再変換する必要性を回避するために、逆量子化器214の出力位置にさらなる小さいキャッシュまたはバッファを設けてもよい。

    【0038】 頂点索引アレイ図7は、頂点キャッシュ212を介して間接的(すなわち、索引付の)頂点属性データを与えるために使用される、好ましい実施例における索引付き頂点リスト300
    のさらに詳細な例を示している。 この一般化された索引付き頂点リスト300は、図1に示したシステムにおけるプリミティブを定義するために使用してもよい。 夫々のプリミティブは索引のリストによって記述され、その夫々は頂点アレイの中に索引をつける。 頂点およびプリミティブは夫々、フォーマット記述子を使用して、それらの項目のタイプを定義する。 これらの記述子は、属性をタイプに結びつける。 属性は、表現するハードウエアに対して特定の意味を有するデータ項目である。 これは、頂点/プリミティブストリームがロードされたときにそれを解析および変換するように、記述子でハードウエアをプログラミングする可能性を与える。 最小のサイズを用いることにより、頂点当たり最小数の属性がジオメトリ圧縮に導く。 図7の構成はまた、所望により、属性を頂点、索引またはプリミティブに関連させる。

    【0039】したがって、図7の索引付き頂点アレイ3
    00の例では、プリミティブリスト302は、データストリーム(たとえばprim0,prim1,prim
    2,prim3…)における種々の各プリミティブ(たとえば3角形)を定義する。 プリミティブ記述子ブロック308は、プリミティブに共通の属性を与えることができる(たとえば直接または索引付けされ得るテクスチャデータおよび結合データ)を与えることができる。 プリミティブリスト302内の各プリミティブは、頂点リスト304内の対応する頂点に索引を付ける。 頂点リスト304内の1つの頂点は、プリミティブリスト302
    内の複数のプリミティブによって使用され得る。 所望であれば、プリミティブリスト302は明確ではなく暗示的であってもよい。 すなわち、頂点リスト304は、暗示によって(たとえば3角形ストリップを使用して)対応するプリミティブを定義するように配列することができる。

    【0040】頂点記述子ブロック306は、頂点リスト304の夫々の頂点について与えることができる。 頂点記述子ブロック306は、特定の頂点に対応する属性データを含んでいる(たとえば、rgbまたは他の色データ,アルファデータ,xyz表面法線データ)。 図4に示すように、頂点記述子ブロック306は、多くの異なった索引付き成分ブロックを含むことができる。 この頂点属性記述子ブロック306は、いずれの頂点属性が存在するか、成分の数およびサイズならびに成分が参照される方法(たとえば直接的…すなわち、量子化された頂点データストリーム内に含まれる…または索引付けされる)を決定する。 一例において、特定のプリミティブについての引き出し(DRAW)コマンドにおける頂点は、全て同じ頂点属性データ構造フォーマットを有する。

    【0041】図8は、頂点属性ブロック306によって与えられる属性リストの例を示している。 次表1に示す属性が提供されてもよい。

    【0042】

    【表1】

    【0043】この例の頂点属性記述子ブロック306において、位置属性は常に存在し、索引付けされたものまたは直接的なものでもよく、多くの異なった量子化され圧縮されたフォーマット(たとえば、浮動小数点,8ビット,整数,または16ビット)をとることができる。
    全ての残りの属性は、いずれかの頂点について存在しても存在しなくてもよく、所望により索引付きでも直接的であってもよい。 位置値と同様に、テクスチャ座標値は種々の異なったフォーマット(たとえば、8ビット整数、16ビット整数または浮動小数点)で表現することができ、表面法線属性についてもそうである。 拡散色および鏡色の属性は、16ビット3補数,24ビット3補数,32ビット3補数,または16,24もしくは32
    ビット4補数を含む種々のフォーマットで、3(rg
    b)または4(rgba)の値を与えることができる。
    所定のプリミティブについての全ての頂点は、好ましくは同じフォーマットを有する。

    【0044】この例において、頂点記述子306は、1
    6ビットポインタを使用する索引付きデータを属性アレイの中に照合する。 アレイ内の特定の属性にアクセスするために使用される特定のオフセットは、たとえば属性における成分の数,成分の大きさ,整列目的の属性間の埋め込み(padding),および複数の属性が同じアレイの中にインタリーブされるかどうかを含む多くの因子に依存する。 1つの頂点は、混合された直接的または間接的な属性を有することができ、また幾つかの属性はハードウエアによって発生することができる(たとえば、位置からテクスチャ座標を発生させる)。 何れの属性も直接に、または索引としてアレイの中に送ることができる。
    頂点キャッシュう212は、過剰なキャッシュミスを伴うことなく、典型的な数の夫々のデータ成分ストリーム(たとえば位置,法線,色およびテクスチャ)を扱うために充分なキャッシュラインを含んでいる。

    【0045】 頂点キャッシュの具体化図9は、頂点キャッシュ212および関連ロジックの一例を示す概略図である。 この例の頂点キャッシュ212
    は、512×112ビットのデュアルポートRAMとして構成された8キロバイトのキャッシュメモリ400を含んでいる。 多くの属性ストリームがキャッシュ212
    の中で探索されるので、8本のタグラインを含む8組の組連想キャッシュを使用して、スラッシングを低減する。 各タグラインは32×16ビットのデュアルポートのRAM404および関連タグ状態レジスタ406を含んでいる。 タグRAM 404は、頂点RAM404内に保存された対応するデータブロックのメインメモリアドレスを保存する。 アドレス計算ブロック408は、必要な頂点属性データが既に頂点RAM400内に存在するか否か、あるいはメインメモリへの追加の取り込みが必要か否かを決定する。 メモリ待ち時間を隠すために、
    キャッシュラインはメインメモリ104から先取りされる。

    【0046】図10は、頂点ストリームパーサ208によって頂点キャッシュ212に与えられるメモリアドレスフォーマットの一例を示している。 このメモリアドレス450は、キャッシュラインの中にバイトオフセットを与えるフィールド452,タグRAMアドレス45
    4,およびタグRAM404の内容と比較するためのメインメモリアドレス456を含んでいる。 アドレス計算ブロック408はメインメモリアドレス456をタグR
    AM404の内容と比較して、必要なデータが既に頂点RAM400内にキャッシュされたか否か、またはそれをメインメモリ104から取り込むことが必要か否かを決定する。

    【0047】タグ状態レジスタ406は、図11に示したフォーマットでデータを保存する。 データ有効フィールド462は、特定のキャッシュライン内のデータが有効であるかどうかを指示する。 カウンタフィールド46
    4は、キャッシュラインに依存する待ち行列410中のエントリ数の追跡を維持する。 カウンタフィールド46
    4は、ミスが発生したときに全てのタグ状態レジスタ4
    06がデータ有効を示す場合に使用される。 アドレス計算ブロック408は、新たなエントリのための余裕を形成するために、キャッシュラインの1つを捨てる必要がある。 カウンタフィールド464がゼロでなければ、キャッシュラインは未だ使用中であり、捨て去ることはできない。 修飾された部分的LRUアルゴリズムに基づき、アドレス計算ブロック408は置き換えのためにキャッシュラインの1つを選択する。 データ有効フィールド462は「無効」にセットされ、キャッシュラインはメインメモリ104からの新たな内容で置き換えられる。 もう1つの属性索引が同じキャッシュラインにマップすると、カウンタフィールド464はインクリメントされる。 データがメインメモリ104から到達すると、
    データ有効ビットがセットされ、エントリは待ち行列4
    10からの処理され得る。 あるいは、データがキャッシュRAM400の中に入れられるまで、待ち行列410
    の処理が停止されるであろう。 待ち行列エントリのためにキャッシュRAM400がアクセスされると、カウンタ464はディクリメントされる。

    【0048】現時点で最も実際的且つ好ましいと思われる実施例に関連してこの発明を説明してきたが、この発明はこの開示された実施例に限定されるものではなく、
    逆に、特許請求の範囲内に含まれる種々の変形例および均等な構成をもカバーするものであることが理解されるべきである。

    【図面の簡単な説明】

    【図1】図1は対話型3次元グラフィックスシステムの一例を示すブロック図である。

    【図2】図2は図1に示したグラフィックス/オーディオコプロセサの例を示すブロック図である。

    【図3】図3は図2のグラフィックス/オーディオコプロセサ部分のより詳細なブロック図で3次元パイプライングラフィックス処理構成の一例を示す。

    【図4】図4は頂点索引アレイデータを設けた頂点キャッシュを含むコマンドプロセサの一例を示す。

    【図5】図5はこの発明に従って設けられた頂点キャッシュを含む表示リストプロセサの一例を示す。

    【図6】図6はデュアルFIFO構成の一例を示している。

    【図7】図7は索引付き頂点データ構造の一例を示す概略図である。

    【図8】図8は頂点記述子ブロックの一例を示している。

    【図9】図9は頂点キャッシュの具体化の一例を示すブロック図である。

    【図10】図10は頂点キャッシュメモリアドレスフォーマットの一例を示している。

    【図11】図11は頂点キャッシュタグ状態レジスタフォーマットの一例を示している。

    【符号の説明】

    100 …対話型3次元コンピュータグラフィックスシステム 102 …メインプロセサ(CPU) 104 …メインメモリ 106 …グラフィックス/オーディオコプロセサ 107 …3次元グラフィックスプロセサ 114 …コマンドプロセサ 116 …グラフィクスパイプライン 212 …頂点キャッシュ 213 …表示リストプロセサ

    【手続補正書】

    【提出日】平成13年1月11日(2001.1.1
    1)

    【手続補正1】

    【補正対象書類名】明細書

    【補正対象項目名】全文

    【補正方法】変更

    【補正内容】

    【書類名】 明細書

    【発明の名称】 3次元グラフィックスのための頂点キャッシュ

    【特許請求の範囲】

    【発明の詳細な説明】

    【0001】

    【発明の分野】この発明は3次元対話型コンピュータグラフィックスのための頂点キャッシュに関し、より詳細には、アニメーションおよび表示処理のための頂点情報を効率的に表現および保存するための構成および技術に関する。 さらにまた、この発明は特に、3次元ポリゴンデータのより効率的な映像化のための頂点キャッシュを含む3次元グラフィックス集積回路に関する。

    【0002】

    【発明の背景】現代の3次元グラフィックスシステムは、表示要素(すなわち、ポリゴン)からアニメーション化された表示を作り上げる 。 各表示オブジェクト(たとえば木,自動車もしくは人物または他のキャラクタ)
    は、典型的には、多数のポリゴンから構築される。 夫々のポリゴンは、他の特徴(たとえば色,濃淡付けのための表面法線,テクスチャなど)とともにその頂点によって表され、この頂点が3次元空間におけるポリゴンの位置,向きおよび大きさを特定する。 コンピュータ技術は、これらの技術を使用してアニメーション化された3
    次元グラフィックスシーンを効率的に構築することができる。

    【0003】ビデオゲームシステムのような低コストの高速対話型(interactive) 3次元グラフィックスシステムは、メモリおよび処理資源によって構築される。 したがって、このようなシステムでは、表示オブジェクトを表す種々のポリゴンを効率的に表現および処理できることが重要である。 たとえば、表示オブジェクトをコンパクトに表現するデータを作成して、特定のタスクのために必要な全てのデータが便利に利用可能であるような方法で、そのデータを3次元グラフィックスシステムに提示することが望ましい。

    【0004】或るものは、時間的局所性および空間的局所性に関してデータを特徴付けすることができる。 時間的局所性とは、同じデータが短い時間の間に頻繁に参照されることを意味する。 一般に、3次元対話型グラフィックスアプリケーションのためのポリゴン表現データは、大きな時間的局所性を有する。 空間的局所性とは、
    参照される次のデータ項目が、最後に参照された項目
    接したメモリに保存されることを意味する。 効率の改善は、データの空間的局所性を増やすことによって実現することができる。 無制限量のデータに対し、無制限に
    低いレイテンシのランダムアクセスを許容しない実際のメモリシステムにおいては、所定のタスクを実行するために必要とされる全てのデータが、 低いレイテンシのメ<br>モリに近接して一緒に保存されれば性能はよくなる

    【0005】データの空間的局所性を増やすために、
    実に特定のタスクを実行するために必要な全てのデータがほとんど同時に提供されるように一緒に保存しておい
    、処理の順序に基づいてポリゴンデータをソーティングすることができる。 たとえば、アニメーションを形成するポリゴンデータは、実行されているアニメーションの種類に対して優先的であるような方法で保存することができる。 一つの例として、表面変形(surface deforma
    tion) のような典型的な複雑な対話型リアルタイムアニメーションは、表面における全ての頂点の操作を必要とする。 このようなアニメーションを効率的に実行するためには、一定の方法で頂点データをソーティングするのが望ましい。

    【0006】典型的な3次元グラフィックスシステムは、アニメーション処理および表示処理を別々に実行し、これらの別々の工程はデータを異なる方法で処理する。 残念なことに、アニメーション処理のための頂点データをソーティングする最適順序は、一般に、表示処理のための最適なソーティング順序とは異なる。 アニメーションのためのソーティングは、表示順序に対してランダム性を加えるようにしてもよい 。 アニメーション処理を単純化するためにデータストリームをソーティングすることによって、データを効率的に表示することを一層困難にしてしまう。

    【0007】したがって、種々の理由で、表示のためのデータにアクセスするときに空間的局所性が存在することを仮定することは困難かも知れない。 困難性は、任意の大きな表示オブジェクトに効率的にアクセスする必要性から生じる。 加えて、上記で説明した理由で、少なくとも表示目的については、表示エンジンに提供される頂点データの順序には、典型的には幾らかのランダム性が存在するであろう。 さらに、実施に有用であり得る頂点レベルを超えるような他のデータ局所性が存在するであろう(たとえば、一定のテクスチャを共有する全てのポリゴンを一緒にグループ化すること)。

    【0008】より高い効率を達成するための1つのアプローチは、 低いレイテンシの追加メモリ(たとえば手頃
    な中で、最も低いレイテンシのメモリシステム)を準備することである。 また、高速ローカルメモリ中表示オブジェクト適合させて、ランダムアクセスを達成することも可能であろう。 しかし、オブジェクトが非常に大きい可能性がないとはいえず、また二重にバッファする必要があるかもしれない。 したがって、このようなアプローチのために必要とされるバッファは非常に大きくなる可能性がある。

    【0009】また、メインCPUのデータキャッシュを使用して、表示エンジンのための最適順序で、ポリゴンデータをアセンブルしソーティングすることが可能であるかもしれない。 しかし、これを効率的に行うには、ポリゴンデータがデータキャッシュの残部をスラッシング
    (thrashing) するのを防止する方法が必要であろう。 加えて、データを先取り(prefetch) してメモリのレイテ
    ンシを隠す必要があるであろう。 なぜなら、表示順序のためにソーティングされた偶数データがアクセスされる方法において、幾らかのランダム性が存在する可能性があるからである。 さらに、このアプローチは、CPUに対して追加の負荷を与えるであろう。 特に、或る具体化においては、表示エンジンが解釈できる2値フォーマットにデータをアセンブルすることが必要あるからである。 このアプローチを使用することにより、メインCP
    Uおよび表示エンジンは直列になり、CPUはデータをグラフィックスエンジンに直接供給する。 処理を並列化すること(たとえば、表示エンジンを、DRAM FI
    FOバッファを介して供給すること)は、直接モードの供給に比較して、実質的に追加のメモリアクセスバンド幅を必要とするであろう。

    【0010】したがって、3次元グラフィックス表示プロセスのためのポリゴンデータを表現し、保存し供給するために使用できるさらに効率的な技術の必要性が存在している。

    【0011】

    【発明の概要】この発明は、索引付きプリミティブ頂点データストリームを編成する頂点キャッシュを提供することにより、この問題を解決するものである。

    【0012】この発明により提供される1つの局面に従えば、ポリゴン頂点データは、頂点キャッシュを介して表示(グラフィックス)エンジンに供給される。 頂点キャッシュは、表示エンジンハードウエア(たとえばその一部)に対してローカルな、 低いレイテンシの小規模のメモリでよい。 実際のキャッシュの中身よりもはるかに大きい仮想メモリビューを与えるキャッシュから融通性
    および効率性が生じる。

    【0013】頂点キャッシュは、必要なときに、 オンザ
    フライの表示処理のために必要な頂点データを形成するために使用してもよい 。 したがって、表示目的のために頂点データを予めソーティングするのではなく、頂点キャッシュは、関連ブロックのデータを必要なときに単純に取得して、これを表示プロセサが利用できるようにする。 対話型ビデオゲーム表示のための頂点データによって示される高度の時間的局所性、および特定の最適な索引付きアレイデータ構造(下記参照)に基づいて、何れかの時点で必要とされる殆どの頂点データが、頂点データストリームの数に比例した数のキャッシュラインを有する比較的小規模のセットアソシアティブ頂点キャッシュ(small set-associative vertex cache) においてでも入手可能であることを見出した。 最適構成の一例は、
    セットアソシアティブ頂点キャッシュを形成する51
    2×128ビットのデュアルポートRAMを提供する。

    【0014】グラフィックスエンジンに頂点を供給する目的で、頂点キャッシュおよび関連タグをカスタマイズしかつ最適化することによって効率を増大させることができ、汎用のキャッシュおよびタグ構造を使用した場合よりも、さらに効率的な頂点の先取り(prefetching) およびアセンブル (assembling) を可能にする。 頂点キャッシュはデータを表示エンジンに直接供給することを可能にするので、追加のメモリアクセスバンド幅のコストが回避される。 ダイレクトメモリアクセスを使用して、
    頂点キャッシュへ頂点データを効率的に転送してもよい。

    【0015】頂点キャッシュにより与えられる効率をさらに増大させるためには、特定のポリゴンまたはポリゴンの組を、それ(ら)が使用される度毎に完全に再特定
    (re-specify)する必要性を低減することが望ましい。 この発明により提供される別の局面に従えば、ポリゴンはアレイ、たとえば頂点の幾つかの特徴を表すデータ成分の線形リスト(たとえば位置,色,表面法線(surface n
    ormal),またはテクスチャ座標)として表現することができる。 夫々の表示オブジェクトは、種々の組の索引とともに、このようなアレイの集合として表現することができる。 これらの索引は、特定のアニメーションまたは表示目的のためのアレイを参照する。 ポリゴンデータを索引付き成分のリストとして表すことによって、マッピング間で不連続性が許容される。 さらに、個々の成分(コンポーネント)を分離することは、データをよりコンパクトに保存する(たとえば、より完全に圧縮されたフォーマットで)ことを可能にする。 この発明によって与えられる頂点キャッシュは、索引サイズ以下のこのような索引付きデータのストリームを収容することができる。

    【0016】頂点キャッシュに関連して索引付き頂点表現を使用することにより、表示目的のためにいかなる再ソーティングの必要性も存在しない。 たとえば、アニメーションのために予めソーティングされた表示とは逆の順序で、頂点データを表示エンジンに提供し、アニメーションをより効率的なプロセスにしてもよい。 頂点キャッシュは、索引付き頂点データ構造表現を使用して、明確な再ソーティングを何等必要とせずに、効率的に、頂点データを表示エンジンが利用可能にする。

    【0017】いかなる頂点成分も、コマンドストリームにおいて索引参照されることができ、または直接インライン化されることができる。 このことは、グラフィックス表示データ構造に沿ったメインプロセサの出力を必要とせずに、メインプロセサによる効率的なデータ処理を可能にする。 たとえば、メインプロセサにより実行されるライティング操作は、色アレイを発生させるライティングパラメータのリストをループ処理することによって、法線および位置のリストから色アレイのみを発生させてもよい。 アニメーションプロセスが3角形リスト表示データ構造に従う必要もなく、またアニメーションプロセスが表示のためのデータを再フォーマット化する必要もない。 表示プロセスは当然ながら、アニメーションプロセスに対して実質的なデータ再フォーマット化オ<br>ーバヘッドを加えることなく、アニメーションプロセスにより提供されるデータを使用することができる。

    【0018】他方、表示順序で頂点データをソーティングすることについてペナルティはなく、いずれの場合にも、表示のために予めソーティングされたデータを提示するために最適化された頂点提示構造と比較して、性能を顕著に劣化させる頂点キャッシュを伴わずに、頂点データは表示のために効率的に表示エンジンに提示される。

    【0019】この発明により提供されるさらなる局面に従えば、頂点データは、幾つかの異なったフォーマット(たとえば8ビット固定小数点,16ビット固定小数点または浮動小数点)の何れかで量子化された圧縮データストリームを含む。 このデータは、索引付け(すなわち、頂点データストリームにより参照される)されてもよく、または直接的(すなわち、該ストリーム自身の中に含まれる)であってもよい。 これらの種々のデータフォーマットを全て共通の頂点キャッシュに保存し、続いて復元し、グラフィックス表示パイプラインのための共通のフォーマットに変換することができる。 このような弾力的なタイプのハードウエアサポート,フォーマット,および直接的または索引付き入力データとしての多くの属性は、複雑かつ時間を要するソフトウエアデータ変換を回避する。

    【0020】この発明の上述の目的,その他の目的,特徴,および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。

    【0021】

    【実施例】図1はこの発明が実施され得る対話型3次元コンピュータグラフィックスシステム100の一例を示す全体の概略図である。 システム100は、ステレオサウンドを伴って対話型3次元ビデオゲームをプレイするために使用することができる。 光ディスクのような適切な記憶媒体を光ディスク装置134に挿入することによって、異なるゲームをすることができる。 ゲームプレイヤは、手持ちコントローラ132(これはジョイスティック,ボタン,スイッチ,キーボードまたはキーパッド等の種々のコントロールを含むことができる)のような入力装置を操作することによって、システム100とリアルタイムで対話することができる。

    【0022】システム100は、メインプロセサ(CP
    U)102,メインメモリ104,ならびにグラフィックス/オーディオコプロセサ106を含んでいる。 この例では、メインプロセサ102は、コプロセサ106を介して手持ちコントローラ132(および/または他の入力装置)からの入力を受け取る。 メインプロセサ10
    2は、このようなユーザ入力に対して対話的に応答し、
    たとえば外部記憶装置134によって供給されるビデオゲームまたは他のグラフィックスプログラムを実行する。 たとえば、メインプロセサ102は、種々のリアルタイムの対話型制御機能に加えて、衝突検出およびアニメーション処理を行うことができる。

    【0023】メインプロセサ102は、3次元グラフィックスおよびオーディオコマンドを発生し、これらをグラフィックス/オーディオコプロセサ106に送る。 グラフィックス/オーディオコプロセサ106は、これらのコマンドを処理して画像を表示装置136上に発生し、またステレオスピーカ137R、137Lまたは他の適切な音声発生装置上でステレオサウンドを発生する。

    【0024】システム100は、コプロセサ100からの画像信号を受け取って、該画像信号を標準のディスプレイ装置136(たとえばコンピュータモニタまたは家庭用カラーテレビ)に表示するのに適した複合ビデオ信号に変換するためのTVエンコーダ140を含む。 システム100はまた、ディジタル化されたオーディオ信号を圧縮および復元する(またディジタルオーディオ信号フォーマットとアナログオーディオ信号フォーマットの間での変換を行うことができる)オーディオコーデック(圧縮器/復元器)138を含む。 オーディオコーデック138は、バッファ140を介してオーディオ入力を受け取り、またこれを処理(たとえば、該コプロセサが発生する他のオーディオ信号および/または光ディスク装置134のストリーミングオーディオ出力を介して受信する他のオーディオ出力とのミキシング)のためにコプロセサ106に与えることができる。 コプロセサ10
    6は、オーディオ関連情報をオーディオタスク専用のメモリ144に保存する。 コプロセサ106は、得られたオーディオ出力信号を(たとえばバッファアンプ142
    L、142Rを介して)スピーカ137L,137Rによって再生できるように、復元およびアナログ信号への変換のためにオーディオコーデック138に与える。

    【0025】コプロセサ106は、システム100内に存在し得る種々の周辺機器と通信する能力を有する。 たとえば、 パラレルディジタルバス146は、光ディスク装置134と通信するために使用できる。 シリアルバス148は、たとえばROMおよび/またはリアルタイムクロック150,モデム152およびフラッシュメモリ154を含む種々の周辺機器と通信することができる。
    別の外部シリアルバス156は、追加の拡張メモリ15
    8(たとえばメモリカード)と通信するために使用することができる。

    【0026】 グラフィックス/オーディオコプロセサ図2はコプロセサ106内のコンポーネントのブロック図である。 コプロセサ106は、単一の集積回路であってもよい。 この例において、コプロセサ106は、3次元グラフィックスプロセサ107,プロセサインタフェース108,メモリインタフェース 110,オーディオディジタル信号プロセサ(DSP)162,オーディオメモリインタフェース (I/F)164,オーディオインタフェース/ミキサ166,周辺コントローラ168
    および表示コントローラ128を含む。

    【0027】3次元グラフィックスプロセサ107はグラフィックス処理タスクを行い、またオーディオDSP
    162はオーディオ処理タスクを行う。 表示コントローラ128は、メモリ104からの画像情報にアクセスし、それを表示装置136に表示するためにTVエンコーダ140に与える。 オーディオインタフェース/ミキサ166は、オーディオコーデック138とのインタフェースをとり、また異なった音源(たとえばディスク1
    34からのストリーミングオーディオ入力,オーディオDSP162の出力,およびオーディオコーデック13
    8を介して受信された外部オーディオ入力)からのオーディオをミックスすることができる。 プロセサインタフェース108は、メインプロセサ102とコプロセサ1
    06との間のデータおよび制御インタフェースを与える。 メモリインタフェース110は、コプロセサ106
    とメモリ104との間のデータおよび制御インタフェースを与える。 この例において、メインプロセサ102
    は、コプロセサ106の一部であるプロセサインタフェース108およびメモリコントローラ110を介して、
    メインメモリ104にアクセスする。 周辺コントローラ168は、コプロセサ106と上記で述べた種々の周辺機器(たとえば、光ディスク装置134,コントローラ132,ROMおよび/またはリアルタイムクロック1
    50,モデム152,フラッシュメモリ154およびメモリカード158)との間のデータインタフェースおよび制御インタフェースを提供する。 オーディオメモリインタフェース164は、オーディオメモリ144とのインタフェースを提供する。

    【0028】図3はコプロセサ106内の3次元グラフィックスプロセサ107および関連するコンポーネントのより詳細な図を示している。 3次元グラフィックスプロセサ107は、コマンドプロセサ114および3次元グラフィックスパイプライン116を含んでいる。 メインプロセサ102は、グラフィックスデータ(すなわち、表示リスト)のストリームをコマンドプロセサ11
    4に通信する。 コマンドプロセサ114はこれらの表示コマンドを受取り、これらを解析し(それらを処理するのに必要な何等かの追加のデータをメモリ104から得る)、3次元処理およびレンダリングのために、頂点コマンドのストリームをグラフィックスパイプライン11
    6に与える。 グラフィックスパイプライン116は、これらのコマンドに基づいて3次元画像を発生する。 得られた画像情報は、表示コントローラ128(これはパイプライン116のフレームバッファ出力を表示装置13
    6上に表示する)によるアクセスのために、メインメモリ104に転送される。

    【0029】より詳細には、メインプロセサ102は表示リストをメインメモリ104に保存し、バスインタフェース108を介してポインタをコマンドプロセサ11
    4に渡す。 コマンドプロセサ114(これは以下で詳細に述べる頂点キャッシュ212を含む)は、CPU10
    2からコマンドストリームを取り込み、コマンドストリームおよび/またはメモリの中の頂点アレイから頂点属性を取り込み、属性タイプを浮動小数点フォーマットに変換し、得られた完全な頂点ポリゴンデータレンダリ<br>ング/ ラスタライズのためにグラフィックスパイプライン116に渡す。 以下でさらに詳細に説明するように、
    頂点データはコマンドストリームから、および/または各属性がそれ自身の線形アレイで保存されているメモリ中の頂点アレイから直接に来ることができる。 メモリ調停回路130は、グラフィックスパイプライン116,
    コマンドプロセサ114および表示コントローラ128
    の間でのメモリアクセスを調停する。 以下で説明するように、頂点属性アクセス待ち時間を低減するために、オンチップの8方向のセットアソシアティブ頂点キャッシュ(8-way set-associative vertex cache) 212が用いられる。

    【0030】図3に示すように、グラフィックスパイプライン116は、変換ユニット118,セットアップ/
    ラスタライザ120,テクスチャユニット122,テクスチャ環境ユニット124およびピクセルエンジン12
    6を含むことができる。 グラフィックスパイプライン1
    16において、変換ユニット118は種々の3次元変換操作を行い、またライティングおよびテクスチャ効果を実行してもよい。 たとえば、変換ユニット118は、入ってくる頂点毎のジオメトリをオブジェクト空間からスクリーン空間に変換し、入ってくるテクスチャ座標を変換しそして投影テクスチャ座標を計算し、ポリゴンクリッピングを行い、頂点ライティング毎の計算を行い、テクスチャ座標発生のバンプマッピングを実行する。 セットアップ/ラスタライザ120は、変換ユニット118
    から頂点データを受け取って、エッジのラスタライズ
    テクスチャ座標のラスタライズおよび色のラスタライズ
    を実行するラスタライザへ3角形セットアップ情報を送信するセットアップユニットを含んでいる。 テクスチャユニット122は、投影テクスチャならびにアルファ透<br>明および深さをもったBLITを使用することにより、多重テクスチャ処理,ポストキャッシュテクスチャ復元,テクスチャフィルタリング,エンボスされたバンプマッピング,投影およびライティングを含むテクスチャリングに関連した種々のタスクを実行する。 テクスチャユニット122は、フィルタリングされたテクスチャ値をテクスチャ環境ユニット124へ出力する。 テクスチャ環境ユニット124は、ポリゴンの色およびテクスチャの色を一緒にブレンドし、テクスチャかぶりおよび他の環境関連機能を実行する。 ピクセルエンジン126
    は、Zバッファリングおよびブレンドを行い、データをオンチップのフレームバッファメモリの中に保存する。

    【0031】したがって、グラフィックスパイプライン116は、フレームバッファおよび/またはテクスチャ情報をローカルに保存する1以上の埋め込み型DRAM
    (図示せず)を含んでいてもよい。 オンチップのフレームバッファは、表示コントローラ128によるアクセスのために、メインメモリ104に周期的に書き込まれる。 グラフィックスパイプライン116のフレームバッファ出力(これは、結局はメインメモリ104に保存される)は、表示コントローラ128によってフレーム毎に読取られる。 表示コントローラ128は、ディスプレイ136上に表示するためのディジタルRGBピクセル値を提供する。

    【0032】 頂点キャッシュおよび頂点索引アレイ図4は頂点キャッシュ212および表示リストプロセサ213を含むコマンドプロセサ114の概略図である。
    コマンドプロセサ114は、位置,法線,テクスチャ座標および色の信号ストリームから完全な索引付きアレイまでの、広範囲の頂点データおよびプリミティブデータ構造を取り扱う。 何れかの頂点成分は索引参照されることができ、またはコマンドストリームの中に直接インライン化することができる。 したがって、コマンドプロセサ114は、融通可能なタイプ,フォーマットおよび多くの属性を直接または索引付きデータとしてサポートする。

    【0033】コマンドプロセサ114内の表示リストプロセサ213は、(典型的にはメインメモリ104内に割当てられたバッファを介して)CPU102により与えられる表示リストコマンドを処理する。 頂点キャッシュ212は、図4に示す例示データ構造300のような、索引付きポリゴン頂点データ構造をキャッシュメモリに入れる。 例示した索引付きポリゴン頂点データ構造300は、多くの頂点成分データアレイ(たとえば、色データアレイ306a,テクスチャ頂点データアレイ3
    06b,表面法線データアレイ306c,位置頂点データアレイ306d等)を参照する頂点索引アレイ304
    を含んでいてもよい。 頂点キャッシュ212は、メインメモリ104内のこれらアレイ306から頂点データにアクセスし、表示リストプロセサ213による迅速アクセスおよび使用のために、それらをキャッシュメモリに入れる。

    【0034】 表示リストプロセサ図5は、コマンドプロセサ114によって実行される表示リストプロセサ213の例を示している。 この図5において、表示リストプロセサ213は、幾つかの構文解析(パーシング:parsing)の段階を提供する。 メインプロセサ102から受け取られた表示リストコマンドは、表示リストストリームパーサ200によって解釈される。 表示リストストリームパーサ200は、アドレススタック202を使用して、指令のネスティングを与えることができる。 あるいは、FIFOからの頂点コマンドのストリームをメインメモリ106に保存して、予め取り込まれた頂点コマンドデータを再ロードする必要なく、インスタンスにおけるサブルーチン分岐を可能にするために、デュアルFIFOを使用してもよい(図6参照)。 図6のアプローチを使用することにより、表示リストコマンドは1レベル深さの表示リストを提供し、ここでトップレベルのコマンドストリームは表示リスト1
    レベル深さをコールすことができる。 この「コール」能力は、ジオメトリにおける予め計算されたコマンドおよびインスタンスのために有用である。

    【0035】表示ストリームパーサ200は、グラフィックスパイプライン116の状態に影響するコマンドを、該グラフィックスパイプラインに向けて送り出す。
    残りのプリミティブコマンドストリームは、メインメモリ104から得たプリミティブ記述子に基づいて、プリミティブストリームパーサ204により解析される(以下参照)。

    【0036】頂点に対する索引が参照され、ハードウエア中のテーブルに設けられ得る頂点記述子に基づいて、
    頂点ストリームパーサ208によって解析される。 頂点ストリームパーサ208に与えられる頂点ストリームは、メインメモリ104内に保存された頂点データに対するこのような索引を含んでいてもよい。 頂点ストリームパーサ208は、頂点キャッシュ212を介して、メインメモリ104からこの頂点データにアクセスすることができ、直接のデータに対して反対に索引付けされた場合の異なった経路を介して、頂点コマンドおよび関連の索引付き頂点属性を別々に与える。 1つの例において、頂点ストリームパーサ208は、それがメインメモリ104の全体であるかのように、頂点キャッシュ21
    2をアドレス指定する。 次いで、頂点キャッシュ212
    はメインメモリ104から頂点データを検索し(また多くは先取りし)、これを頂点ストリームパーサ208による使用のために一時的にキャッシュメモリに入れる。
    頂点キャッシュ212における頂点データのキャッシングは、メインメモリ104に対するアクセス回数を減少させ、したがってコマンドプロセサ114が必要とするメインメモリバンド幅を減少させる。

    【0037】頂点ストリームパーサ208は、各3角形(ポリゴン)内に表現されるべき夫々の頂点についてのデータを与える。 この頂点毎データ(per-vertex dat
    a)は、プリミティブストリームパーサ204によって出力されるプリミティブ毎(per-primitive) データとともに、復元/逆量子化器ブロック214に与えられる。
    逆量子化器214は、異なった頂点表現(たとえば8ビットおよび16ビットの固定小数点フォーマットデータ)を、グラフィックスパイプライン116によって使用される一様な浮動小数点表現へと変換する。 逆量子化器214は、弾力的な種々の異なるタイプのフォーマットおよび多くの属性のためのハードウエアサポートを提供し、このようなデータは直接のデータまたは索引付データとして、表示リストプロセサ213に提示されることができる。 逆量子化器214の一様な浮動小数点表現出力は、ラスタ化およびさらなる処理のためにグラフィックスパイプライン116に与えられる。 最適化として所望のときは、頂点ストリップデータを再変換する必要性を回避するために、逆量子化器214の出力位置にさらなる小さいキャッシュまたはバッファを設けてもよい。

    【0038】 頂点索引アレイ図7は、頂点キャッシュ212を介して間接的(すなわち、索引付の)頂点属性データを与えるために使用される、好ましい実施例における索引付き頂点リスト300
    のさらに詳細な例を示している。 この一般化された索引付き頂点リスト300は、図1に示したシステムにおけるプリミティブを定義するために使用してもよい。 夫々のプリミティブは索引のリストによって記述され、その夫々は頂点アレイの中に索引をつける。 頂点およびプリミティブは夫々、フォーマット記述子を使用して、それらの項目のタイプを定義する。 これらの記述子は、属性をタイプに結びつける。 属性は、表現するハードウエアに対して特定の意味を有するデータ項目である。 これは、頂点/プリミティブストリームがロードされたときにそれを解析および変換するように、記述子でハードウエアをプログラミングする可能性を与える。 最小サイズ
    のタイプと最小数の属性を使用することで、ジオメトリ
    の圧縮につながる 。 図7の構成はまた、所望により、属性を頂点、索引またはプリミティブに関連させる。

    【0039】 このように 、図7の索引付き頂点アレイ3
    00の例では、プリミティブリスト302は、データストリーム(たとえばprim0,prim1,prim
    2,prim3…)における種々の各プリミティブ(たとえば3角形)を定義する。 プリミティブ記述子ブロック308は、プリミティブに共通の属性を与えることができる(たとえば直接または索引付けされ得るテクスチャデータおよび結合データ)を与えることができる。 プリミティブリスト302内の各プリミティブは、頂点リスト304内の対応する頂点に索引を付ける。 頂点リスト304内の1つの頂点は、プリミティブリスト302
    内の複数のプリミティブによって使用され得る。 所望であれば、プリミティブリスト302は明確ではなく暗示的であってもよい。 すなわち、頂点リスト304は、暗示的に (たとえば3角形ストリップを使用して)対応するプリミティブを定義するように配列することができる。

    【0040】頂点記述子ブロック306は、頂点リスト304の夫々の頂点について与えることができる。 頂点記述子ブロック306は、特定の頂点に対応する属性データを含んでいる(たとえば、rgbまたは他の色データ,アルファデータ,xyz表面法線データ)。 図4に示すように、頂点記述子ブロック306は、多くの異なった索引付き成分ブロックを含むことができる。 この頂点属性記述子ブロック306は、いずれの頂点属性が存在するか、成分の数およびサイズならびに成分が参照される方法(たとえば直接的…すなわち、量子化された頂点データストリーム内に含まれる…または索引付けされる)を決定する。 一例において、特定のプリミティブについての描画 (DRAW)コマンドにおける頂点は、全て同じ頂点属性データ構造フォーマットを有する。

    【0041】図8は、頂点属性ブロック306によって与えられる属性リストの例を示している。 次表1に示す属性が提供されてもよい。

    【0042】

    【表1】

    【0043】この例の頂点属性記述子ブロック306において、位置属性は常に存在し、索引付けされたものまたは直接的なものでもよく、多くの異なった量子化され圧縮されたフォーマット(たとえば、浮動小数点,8ビット,整数,または16ビット)をとることができる。
    全ての残りの属性は、いずれかの頂点について存在しても存在しなくてもよく、所望により索引付きでも直接的であってもよい。 位置値と同様に、テクスチャ座標値は種々の異なったフォーマット(たとえば、8ビット整数、16ビット整数または浮動小数点)で表現することができ、表面法線属性についてもそうである。 拡散色および鏡色の属性は、16ビット3補数,24ビット3補数,32ビット3補数,または16,24もしくは32
    ビット4補数を含む種々のフォーマットで、3(rg
    b)または4(rgba)の値を与えることができる。
    所定のプリミティブについての全ての頂点は、好ましくは同じフォーマットを有する。

    【0044】この例において、頂点記述子306は、1
    6ビットポインタを使用する索引付きデータを属性アレイの中に照合する。 アレイ内の特定の属性にアクセスするために使用される特定のオフセットは、たとえば属性における成分の数,成分の大きさ, アライメント目的の属性間のパディング ,および複数の属性が同じアレイの中にインタリーブされるかどうかを含む多くの因子に依存する。 1つの頂点は、混合された直接的または間接的な属性を有することができ、また幾つかの属性はハードウエアによって発生することができる(たとえば、位置からテクスチャ座標を発生させる)。 何れの属性も直接に、または索引としてアレイの中に送ることができる。
    頂点キャッシュう212は、過剰なキャッシュミスを伴うことなく、典型的な数の夫々のデータ成分ストリーム(たとえば位置,法線,色およびテクスチャ)を扱うために充分なキャッシュラインを含んでいる。

    【0045】 頂点キャッシュの具体化図9は、頂点キャッシュ212および関連ロジックの一例を示す概略図である。 この例の頂点キャッシュ212
    は、512×112ビットのデュアルポートRAMとして構成された8キロバイトのキャッシュメモリ400を含んでいる。 多くの属性ストリームがキャッシュ212
    の中で探索されるので、8本のタグラインを含む8組の
    セットアソシアティブキャッシュを使用して、スラッシングを低減する。 各タグラインは32×16ビットのデュアルポートのRAM404および関連タグ状態レジスタ406を含んでいる。 タグRAM 404は、頂点R
    AM404内に保存された対応するデータブロックのメインメモリアドレスを保存する。 アドレス計算ブロック408は、必要な頂点属性データが既に頂点RAM40
    0内に存在するか否か、あるいはメインメモリへの追加の取り込みが必要か否かを決定する。 メモリ待ち時間を隠すために、キャッシュラインはメインメモリ104から先取りされる。

    【0046】図10は、頂点ストリームパーサ208によって頂点キャッシュ212に与えられるメモリアドレスフォーマットの一例を示している。 このメモリアドレス450は、キャッシュラインの中にバイトオフセットを与えるフィールド452,タグRAMアドレス45
    4,およびタグRAM404の内容と比較するためのメインメモリアドレス456を含んでいる。 アドレス計算ブロック408はメインメモリアドレス456をタグR
    AM404の内容と比較して、必要なデータが既に頂点RAM400内にキャッシュされたか否か、またはそれをメインメモリ104から取り込むことが必要か否かを決定する。

    【0047】タグ状態レジスタ406は、図11に示したフォーマットでデータを保存する。 データ有効フィールド462は、特定のキャッシュライン内のデータが有効であるかどうかを指示する。 カウンタフィールド46
    4は、キャッシュラインに依存する待ち行列410中のエントリ数のトラックを維持する。 カウンタフィールド464は、ミスが発生したときに全てのタグ状態レジスタ406がデータ有効を示す場合に使用される。 アドレス計算ブロック408は、新たなエントリのための余裕を形成するために、キャッシュラインの1つを捨てる必要がある。 カウンタフィールド464がゼロでなければ、キャッシュラインは未だ使用中であり、捨て去ることはできない。 改良された部分的LRUアルゴリズムに基づき、アドレス計算ブロック408は置き換えのためにキャッシュラインの1つを選択する。 データ有効フィールド462は「無効」にセットされ、キャッシュラインはメインメモリ104からの新たな内容で置き換えられる。 もう1つの属性索引が同じキャッシュラインにマップすると、カウンタフィールド464はインクリメントされる。 データがメインメモリ104から到達すると、データ有効ビットがセットされ、エントリは待ち行列410から処理可能となる 。 あるいは、データがキャッシュRAM400の中に入れられるまで、待ち行列4
    10の処理が停止されるであろう。 待ち行列エントリのためにキャッシュRAM400がアクセスされると、カウンタ464はディクリメントされる。

    【0048】現時点で最も実際的且つ好ましいと思われる実施例に関連してこの発明を説明してきたが、この発明はこの開示された実施例に限定されるものではなく、
    逆に、特許請求の範囲内に含まれる種々の変形例および均等な構成をもカバーするものであることが理解されるべきである。

    【図面の簡単な説明】

    【図1】図1は対話型3次元グラフィックスシステムの一例を示すブロック図である。

    【図2】図2は図1に示したグラフィックス/オーディオコプロセサの例を示すブロック図である。

    【図3】図3は図2のグラフィックス/オーディオコプロセサ部分のより詳細なブロック図で3次元パイプライングラフィックス処理構成の一例を示す。

    【図4】図4は頂点索引アレイデータを設けた頂点キャッシュを含むコマンドプロセサの一例を示す。

    【図5】図5はこの発明に従って設けられた頂点キャッシュを含む表示リストプロセサの一例を示す。

    【図6】図6はデュアルFIFO構成の一例を示している。

    【図7】図7は索引付き頂点データ構造の一例を示す概略図である。

    【図8】図8は頂点記述子ブロックの一例を示している。

    【図9】図9は頂点キャッシュの具体化の一例を示すブロック図である。

    【図10】図10は頂点キャッシュメモリアドレスフォーマットの一例を示している。

    【図11】図11は頂点キャッシュタグ状態レジスタフォーマットの一例を示している。

    【符号の説明】 100 …対話型3次元コンピュータグラフィックスシステム 102 …メインプロセサ(CPU) 104 …メインメモリ 106 …グラフィックス/オーディオコプロセサ 107 …3次元グラフィックスプロセサ 114 …コマンドプロセサ 116 …グラフィクスパイプライン 212 …頂点キャッシュ 213 …表示リストプロセサ

    【手続補正2】

    【補正対象書類名】図面

    【補正対象項目名】図1

    【補正方法】変更

    【補正内容】

    【図1】

    ───────────────────────────────────────────────────── フロントページの続き (72)発明者 ロバート ムーア アメリカ合衆国 ワシントン州 レドモン ド 2522 227番地北東 (72)発明者 ティモシー ジェイ ヴァンフック アメリカ合衆国 カリフォルニア州 アサ ートン オークグローブ通り224

    高效检索全球专利

    专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

    我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

    申请试用

    分析报告

    专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

    申请试用

    QQ群二维码
    意见反馈