(57)【特許請求の範囲】
【請求項１】
複数のノードおよび該各ノードに接続されるランダムアクセスメモリ（ＲＡＭ）を規定する集積回路コンポーネントのシステムであって、
前記各ノードが、
予め定められた処理機能を実行するよう構成された少なくとも一つの機能ユニットと、
他のノードとの情報の通信を管理し制御するよう構成された通信機構と、
前記ノードに接続される前記ＲＡＭに対する書込みおよび読取りを制御するよう構成されたメモリコントローラと、
遠隔機能ユニットによるメモリの使用およびアクセスを制御するための制御手段と、を備え、
前記ＲＡＭが、接続されたノードの制御手段に専用の少なくとも一つのセグメントと、システムの機能動作を実行するための専用の少なくとも一つの付加的なセグメントとを含むようセグメント化され、前記ＲＡＭが、テクスチャマップ面の一部および画像面の一部に専用の少なくとも一つの付加的なセグメントをさらに含むようセグメント化されており、残りのテクスチャマップ面および画像面は、他のノードに接続されたＲＡＭのメモリセグメントに格納され、多種のテクスチャマップ面セグメントおよび画像面セグメントが、分割されて、重複しない態様でＲＡＭに記憶されるよう構成され、
前記システムが、該システムの複数のノードによるＲＡＭへの読取りアクセスを許可し、書込みアクセスをＲＡＭが接続されているノードだけに制限するよう構成される、前記システム。
【請求項２】
前記システムがコンピューターグラフィックス・システムである、請求項１に記載のシステム。
【請求項３】
前記少なくとも一つの機能ユニットが、テクスチャマッピング・コンポーネント、幾何学アクセラレータ、シェーダ、z/混合コンポーネント、ラスタライザ、タイラ、およびキャッシュ・コントローラからなるグループから選択される、請求項１に記載のシステム。
【請求項４】
前記制御手段が、少なくとも一つの仕事待ち行列を含むメモリセグメントを含み、該仕事待ち行列は、前記少なくとも一つの機能ユニットのための先入れ先出し命令待ち行列の形である、請求項１に記載のシステム。
【請求項５】
前記仕事待ち行列が複数のメッセージを含む、請求項４に記載のシステム。
【請求項６】
前記メッセージが前記制御手段の制御の下で異なるノードの間で通信される、請求項５に記載のシステム。
【請求項７】
前記複数のノードが複数のシリアル通信リンクを介して相互接続されている、請求項１に記載のシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はコンピュータ・グラフィックス・システム、より具体的にはコンピュータ・グラフィックス・システムの新しい分散型の記憶構造に関する。
【０００２】
【従来の技術】
コンピュータ・グラフィックス・システムは、二次元のビデオ表示画面上にオブジェクトの図形表示を表示するために使われている。現在のコンピュータ画像表示システムは、非常に詳細な表現を提供し、様々なアプリケーションにおいて使われている。コンピュータ画像表示システムは、中央処理装置（CPU）、システムメモリ、グラフィックス・マシーンおよびビデオ表示スクリーンを一般に含む。
【０００３】
典型的なコンピュータ画像表示システムにおいて、表示画面に示されるオブジェクト（対象）は、グラフィック・プリミティブに分解される。プリミティブは、グラフィック・ディスプレイの基礎成分であって、点、線、ベクトルおよび多辺形（例えば三角形および四辺形）を含むことができる。典型的には、ハードウェア/ソフトウェア手法が実行され、表示画面に表示される一つまたは複数のオブジェクトのビューを表すグラフィック・プリミティブを描く。
【０００４】
通常、描かれる三次元オブジェクトのプリミティブは、プリミティブ・データに関してホストCPUにより定義される。例えば、プリミティブが三角形であるとき、ホストコンピュータはその頂点のX、YおよびZ座標でプリミティブを定義できる。付加的なプリミティブ・データを特定のアプリケーションにおいて使うことができる。レンダリング・ハードウェアは、各々のプリミティブを表示する表示スクリーンピクセルを計算するためにプリミティブ・データを補間する。
【０００５】
グラフィックス・マシーンは、幾何学アクセラレータ、ラスタライザ、フレームバッファ・コントローラおよびフレームバッファを一般に備えている。グラフィックス・マシーンは、またテクスチャ・マッピングハードウェアを含むこともある。幾何学アクセラレータは、表示されるビューを構成するプリミティブを定義するホストCPUから頂点データを受け取る。知られているように、幾何学アクセラレータのオペレーションは、計算的に非常に高密度である。三次元（3D）グラフィクス・ディスプレイの1つのフレームは、何十万ものオーダーのプリミティブを含むことがある。最新技術のパフォーマンスを達成するために、幾何学アクセラレータは、１秒あたり数億の浮動小数点計算を実行することを要求されることがある。さらに、ホストコンピュータおよびグラフィックス・ハードウェアの間で転送されるデータの量は、非常に大きい。ホストコンピュータから幾何学アクセラレータまで伝送される付加的なデータは、照度パラメータ、クリッピング・パラメータその他のグラフィック・ディスプレイを生成するに必要なパラメータを含む。
【０００６】
知られているように、ラスタライザは図またはオブジェクトを表すデータを受け取り、それから図の画素のような表現を提供する。同じく知られているように、テクスチャマッピングは、テクスチャの一つまたは複数の点エレメント（テクセル）を、そこへテクスチャをマップしている時の表示されたオブジェクト部分の各点エレメント（画素）に適用することを含む。テクスチャマッピング・ハードウェアには、テクスチャマップのテクセルがオブジェクトを表わす表示画面上の画素に対応する態様を示す情報が与えられている。テクスチャマップの各テクセルは、２次元のテクスチャマップ上の位置を識別するSおよびT座標により定義されることができる。各画素について、それにマップする対応しているテクセル（１つまたは複数）は、テクスチャマップからアクセスされて、表示画面上にテクスチャされたオブジェクトを表わす画素のために生成される最終的なR,G,B値に組み込まれる。二次元のテクスチャマップに加えて、一次元、三次元、その他の次元のテクスチャマップが知られている。この点で、二次元のテクスチャマップは、図示する目的だけのものである。
【０００７】
オブジェクト・プリミティブの各画素が、オブジェクトのすべてのビューについてテクスチャマップにおける一つのテクセルと一対一の対応でマップするというわけでない。たとえば、オブジェクトが表示画面に表わされるビューポートに近ければ近いほど、オブジェクトはより大きく見える。オブジェクトが表示画面に大きく現れると、テクスチャの表現はより詳細になる。このように、オブジェクトが表示画面のかなり大きい部分を消費するとき、表示画面上にオブジェクトを表示するために多数の画素が用いられ、そのオブジェクトを表わす各画素がテクスチャマップの一つのテクセルに一対一対応でマップすることができるか、または、一つのテクセルが、複数画素にマップすることができる。しかし、オブジェクトが表示画面の比較的小さい部分を占めるとき、オブジェクトを表わすのにかなり少数の画素が使われ、テクスチャがより荒く表される結果になり、各画素が複数のテクセルにマップすることができる。テクスチャがオブジェクトの小さい部分にマップされるときに、各画素はまた複数テクセルにマップできる。結果として生じるテクセル・データが、１つまたは複数のテクセルにマップする各ピクセルについて計算され、そのピクセルにマップするテクセルの平均を表す。
【０００８】
従来のグラフィックス・システムを例示するために、図１を参照する。図１は、公知のグラフィックス・パイプライン１Oを示す。図1において、例示されるグラフィックス・パイプライン１Oには様々な代替方法があり、図１は例示のためだけのものであることが認識されなければならない。
【０００９】
図示するように、ホストコンピュータ20は、例えばAGP（加速グラフィクス・ポート）バスまたはPCI（周辺コンポーネント相互接続）バスのような高速バスを介して、グラフィックス・ハードウェアと通信する。ホストインタフェース22は、典型的には、高速バスとインターフェースするグラフィックス・ハードウェアのフロントエンドに位置する。フォーマット・ブロック24がホストインタフェース22の下流に設けられている。一つまたは複数の幾何学アクセラレータ(GA)26、27および一つまたは複数のラスタライザ(RA)30、31がフォーマット・ブロック24の下流に設けられている。幾何学アクセラレータおよびラスタライザのオペレーション、およびこれら複数のコンポーネントを操作するための方法、構成(configurations)は、公知であり、本願明細書においては、説明を省略する。
【００１０】
ラスタライザ30および31の下流には、テクスチャ・マッピングハードウェア(TM)34、フラグメント・プロセッサ(FP)36、Z-バッファ(Z-BUF)38および混合ハードウェア40がある。これらのコンポーネントの機能およびオペレーションは、公知であり、この明細書では説明を省略する。しかし、知られているように、テクスチャマッピング・ハードウェアシステムは、描画中のオブジェクトと関連するテクスチャを表わすデータを記憶するローカルメモリ・サブシステム50を含む。
【００１１】
テクスチャ・マッピングハードウェアの下流には、表示合成52、表示タイミング54、デジタル・アナログ変換器(DAC)56およびディスプレイ58がある。知られているように、表示合成ハードウェア52は、表示される所与の画素の色を判断するために異なるオブジェクト/プリミティブ層を処理する。
【００１２】
図１のもののようなグラフィックス・パイプライン１０の一般的なアーキテクチャおよびデータフローと一致して、マルチプル/パラレル・ラスタライザおよびマルチプル/パラレル・テクスチャマッピング・サブシステムを提供する従来技術システムが知られている。そこでは、各ラスタライザおよびテクスチャマッピング・コンポーネントは、専用のローカルメモリと通信した。
【００１３】
ラスタライゼーション・ハードウェアおよびテクスチャ・マッピングハードウェアを結合する他のシステムも知られている。そのようなシステムでは、マルチプル/パラレル結合されたラスタライゼーション/テクスチャ・マッピング・サブシステムがあるかもしれない。この種のシステムは、概して各ラスタライザ/テクスチャマッピング・コンポーネントのため専用メモリを用いた。知られているようにこの種のシステムは、ディスプレイの一部分をセグメント化し、処理のため異なるラスタライザ/テクスチャマッピング・コンポーネントにゆだねた。しかし、セグメント境界をまたがるプリミティブを処理するために、この型の平行性を実行するシステムは、異なるメモリにわたってテクスチャマップその他データを重複させた。その結果、容量および帯域幅の問題を生じた。言い換えると、先に述べたテクスチャマップを分離することができない。むしろ、テクスチャ・データが、分離されたディスプレイ・セグメントまたはドメインのそれぞれにおいて重複する。帯域幅問題は、メモリから読取られる際の細分性によってさらに悪化した（すなわちバースト読取り）。
【００１４】
【発明が解決しようとする課題】
したがって、スケーラブルであり（拡張性があり）同時に従来技術のグラフィックス・システムの帯域幅要求その他の欠点に応えることができるグラフィックス・システムが求められている。
【００１５】
この発明の目的、効果および特徴は、部分的にこのあとの説明に記載されており、この発明を実施することにより当業者に明らかになるであろう。この発明の目的および利点は、特許請求の範囲に記載した手段および組み合わせによって、実現することができる。
【００１６】
【課題を解決するための手段】
本発明は、広く集積回路コンポーネントのシステムに向けられている。このシステムは、通信リンクによって相互接続される複数のノードを含む。ランダムアクセスメモリ（ＲＡＭ）が、各ノードに接続している。少なくとも一つの機能ユニットが各ノードに組み込まれ、各機能ユニットが予め定められた処理機能を実行するよう構成(configure)されている。各ＲＡＭは、他のノードによるＲＡＭへの読取りアクセスだけを許すよう構成された一貫性（coherent、コヒーレント）のある機構を含み、この機構は、そのノードにローカルである機能ユニットだけにＲＡＭへの書込みアクセスを許可するよう構成されている。
【００１７】
好適な実施例において、上に広く記したシステムは、グラフィクス処理システムで実行されることができる。この種のシステムにおいて、ノードは、例えば幾何学アクセラレータ、ラスタライザ、タイラ（tiler）、シェーダ（shader、陰影付け）などの機能ユニットを含むことができる。また、ノードは物理的な集積回路境界と同一の広がりを有する必要はない。すなわち、一つの集積回路コンポーネントは、一つのノードを含んでよい。または、一つの集積回路コンポーネントが、複数のノードを含むこともできる。更に、好適な実施例において、ノードに接続している各ＲＡＭがセグメント化され、そのＲＡＭの指定されたセグメントがそのノードの特定の機能ユニットに割り当てられる。ＲＡＭに対する書込みアクセスは接続されているノードに限られるのがよいが、読み込みアクセスはシステムの全てのノードに許されてもよい。
【００１８】
【発明の実施の形態】
次に図面を参照してこの発明の実施例を説明する。以下の記述は、この発明を限定する意図のものではない。
【００１９】
図は、グラフィクス処理システムのコンテクストで本発明を例示した。本発明がグラフィックス・システムに限られるものではなく、他のタイプの処理システムにも適用可能であることは、当業者が認めるところであると考えられる。
【００２０】
本発明の中心的な機能および態様を説明する前に、本発明が存在し動く環境を最初に説明する。本発明は、ノードが通信リンクにわたって相互に通信する機能ユニットを有するユニークなノード・アーキテクチャにおいて動作する。後述するところから明らかになるように、このノード・アーキテクチャのユニークな設計は、帯域幅集約型の動作環境において特に効率的なパフォーマンスを提供する。後述する実施例において、通信リンクは直列リンクである。しかし、他の（すなわち、非直列の）通信リンクもこの発明の精神にしたがって実施することができる。
【００２１】
図2（A）を参照すると、2つのノード102および104を有するシステムが示されている。2つのノード102および104は、複数の直列リンク106にわたって相互通信する。直列リンクの数は、直列リンクのスピードおよびシステムの帯域幅要求によって、システムごとに変ってよい。上述したように、テクスチャマッピングは高メモリ帯域幅要求をグラフィックス・システムに課する。したがって、コンピューター・グラフィックス・システムのようなシステムにおいては、低帯域幅システムにおけるよりも多くの通信リンク106が一般に所望される。
【００２２】
図2（B）を参照すると、4つのノード11O、112、114および116を有するシステムが示される。図2（A）の 2ノードのシステムにおけると同様に、４つのノード110、112、114、116が複数の直列リンクにわたって相互通信する。しかし、4ノードのシステムにおいては、所与の2つのノードを相互接続する直列リンクの数は減少する。システムがより多くの機能処理ノードに分割（partition）されるにつれて、ノードのそれぞれの間を接続するのに必要な直列リンクは少なくなる。図2（A）および2（B）で示される例において、図2（A）の2ノードのシステムのシステム帯域幅をサポートするのにｎ個の直列リンクを必要とするならば、図2（B）の4ノードのシステムの各ノード間を相互接続するためには数学的にｎ／３の直列リンクを必要とする。
【００２３】
本発明を理解するうえで図2（A）および2（B）から観察する重大な点は、帯域幅集約型の処理システムが機能ノードに区分され、これら複数の機能ノードは、全体としてシステムの機能を協力して実行するように設計されているということである。加えて、機能ユニットは複数の直列リンクにわたって相互通信する。
【００２４】
基本アーキテクチャをこのように要約し、次にグラフィクス処理システムの機能ユニットの1つの構造を例示する図面を参照し、機能ユニットがデータを転送するために相互通信し、協力してそれらの演算機能を実行する態様を参照する。図3を参照すると、高性能なグラフィクス処理システムにおいて使うことができるノード120が例示されている。図示するように、この種のノード120は、集積された幾何学アクセラレータ(GA)122、ラスタライザ(RA)124およびキャッシュ126を含むことができる。幾何学アクセラレータ122、ラスタライザ124およびキャッシュ126の一般的な機能動作は、公知のシステムのものと同様である。したがって、これについての説明は省略する。
【００２５】
図4を参照すると、所与のグラフィックス処理システムにおいて相互接続された複数のノードが示されている。図4は、ノード開発がチップ区分化とは独立であることを示す。むしろ、チップ集積およびチップ分割は、ピン・カウント、集積の経済性、スケーラビリティ（拡張性）の細分性などによって導かれる。スケーラビリティの細分性に関し、チップにつき1つのノードがある場合、システムは一度に一つのノードで拡張（または縮小）される。しかし、１つのチップにつき4つのノードがある場合、システムは一度に4つのノードで拡張（または縮小）されなければならない。図には4つのチップ152、154、156および158が示されている。各チップは、2つのノードを含む。例えば、チップ152は、ノード162および166を含む。ノード162はＲＡＭ 164と通信する。ノード166はＲＡＭ 168と通信する。このように、この種の実施例は、2つのノードの増分で拡張縮小可能である。
【００２６】
図4は、ＲＡＭエレメント164および168をチップ152と別のものとして描く。実施例によっては、ノードにつき別々の専用のＲＡＭデバイスがあってもよい。そのような手法は、より細かい細分性を提供し、より良い効率を生み、内部機能の設計の複雑さを減らす。もう一つの実施例（図示せず）では、単一のＲＡＭデバイスを使用することができる。そのような実施例での単一のＲＡＭデバイスは、個々の区分が個々のノードに割り当てられるように区分けすることができる。個々のノードに一つのメモリデバイスを割り当てか単にメモリデバイスの区分を割り当てるかどうかに関する設計上の判断は、帯域幅要求のような種々の設計固有の考察に基づくことができる。他の実施例において、ＲＡＭは接続されるノードと同じチップ上に埋め込まれることができる。
【００２７】
更に図4に示されるように、各ノードは複数（ｐ）の直列リンクを介してすべての他のノードに接続している。前述したように、さまざまなノードを相互接続する直列リンクの数は、帯域幅要求によって導かれ、システムごとに相違してもよい。所与のグラフィックス・システムにおいて、多くの幾何学アクセラレータ/ラスタライザ（GA/RA）ノードを、これらの機能のパラレル性によって得られるパフォーマンスを強化するために設けることができる。いくつかのノードでは、これらの機能、またはこれらの機能の少なくとも一部を他の機能とグループ化することが可能である。
【００２８】
次に図5を参照すると、好適な実施例のノードの詳細が示されている。このノードは、階層的なタイラ184と幾何学アクセラレータ（GA0/GA1）183を含み、これらは一緒に正確な領域選択を行う。階層的なラスタライザ185、シェーダ186およびパラメトリック補間を有するz/混合187のエレメントは、簡単なハードウェアが多数のパラメータを補間することを可能にする。好ましくは、シェーダはパラメトリック・テクスチャリングをサポートし、z/混合はz検査をサポートする。
【００２９】
また、ノード180に対してローカルであるＲＡＭ 175を管理するために、オンボード・キャッシュを有するメモリコントローラ188が設けられている。スクリーン・リフレッシュ・ユニット（SRU）189も示されている。SRU 189は、表示結合機能を含み、スクリーンへのRGB値を作る。これらのコンポーネントの一般的な機能および動作に公知であり、従来技術における当業者が理解するとことである。したがって、それらに関する説明は省略する。
【００３０】
図5は、ネットワーク・インターフェース181および待ち行列ネットワーク・マネジャ（QNM、queue network manager）182を示す。QNM 182は、後述の仕事待ち行列を操作し、ノード180の機能ユニットにデータおよび命令の流れを導くようにプログラムされているプロセッサである。後述するようにQNM 182のプログラム性は、本発明に従って造られるシステムの融通性を強化する。
【００３１】
ネットワーク・インターフェース181は、ノード180を複数の直列リンクにインターフェースする回路であり、この複数の直列リンクは、ノード・ネットワークにおける他のノードを相互接続する。QNM 182は、後述の仕事待ち行列190の使用を介して、異なるノード/機能ユニットを一緒にインターフェースするように設計されている。この点に関し、QNM 182は仕事待ち行列190をパラレルの機能ユニットに向かわせるためセグメント化し整理する。特定の直列リンクに到着するパケットのアイデンティティ(identity)は、そのパケットを特定の論理的仕事待ち行列190に関連づける。仕事待ち行列190は、ローカルなＲＡＭ 1 75に記憶され、QNM 182は好ましくは複数のスレッドをサポートするように設計されている。スレッド中のリソースの分割は、特定のアプリケーションのためプログラマにより決定される。この分割は本発明を限定するものではないので、説明を省略する。
【００３２】
図5にはQNM 182の一部である経路選択機構(routing mechanism)178が示されている。経路選択機構178は、メッセージをさまざまなノードに向けて経路選択する責任を負う。更に詳細に後述するように、各メッセージはそのメッセージが向けられている宛て先ノードの識別を含む。介在するノードに到着するメッセージを転送するための経路選択機構178において、確立された経路選択技術およびアルゴリズムが実行される。このような経路選択アルゴリズムは公知のものであるので、説明を省略する。
【００３３】
図5に関する説明は、グラフィクス処理システムにおける1つの潜在的なノード設計の高水準の図解を提供するだけのものである。本発明は、特定のノード設計によって限定されるものではなく、またそれに依存するものでもない。図形処理技術の当業者は、上に概要を記した要素の動作を理解するであろう。したがって、更なる記述は省略する。
【００３４】
図6は、仕事待ち行列190を例示している図で、さまざまなノードの機能動作を制御するために使われる。本質的に仕事待ち行列は論理的FIFOである。第2のノードの動作を引き起こす第1のノードは、第2のノードに伝えられ、その仕事待ち行列190に置かれる１つのメッセージまたは複数のメッセージのシーケンスを生成する。第2のノードは、その仕事待ち行列内のメッセージを処理するとき、第1のノードにより要求されまたは特定される動作(operation)を実行する。仕事待ち行列190は、複数のメッセージ192を含む。通常、メッセージはノードにある機能ユニットのための指令または命令である。データパケット194も示されている。データパケットは、メッセージを伝えるために用いられる機構であり、通信リンクに伝えられる最も小さい量のデータである。
【００３５】
仕事待ち行列190およびメッセージがとることができる様々な形があり、実施例の仕事待ち行列およびメッセージの形を表１から表６に示す。
【００３６】
表1は本発明の一実施例に従うメッセージのための仕事待ち行列メッセージの形式を示す。表1および表2に示すように、メッセージは、2つの基本形の1つで一般に提供される。第1のフォーマット（ビット31を１にセットすることによって定義される）は、１から128のコヒ―レント・ワードを可能にする。第２のフォーマット（ビット31を０にセットすることによって定義される）は、2ワードの長さであり、一度に１ピクセルずつの2D表面の直接描画アクセスをサポートする。
【００３７】
【表１】
0004059675.tif 000002
【００３８】
表２は、表１のメッセージ・フィールドの内容の一般的な動作を示す。
【００３９】
【表２】
0004059675.tif 000003
【００４０】
表1に示すように、３ビットが、メッセージのタイプを定義する。表2に示すように、これらの３ビットの値がゼロであるときに、メッセージは「状態」タイプのメッセージである。「状態」タイプのメッセージは、機能ユニットの内部レジスタにアクセスするために機能ユニットタイプによって、使うことができる。「状態」タイプのメッセージの構造およびフォーマットは、表3に示される。
【００４１】
【表３】
0004059675.tif 000004
【００４２】
表3に示すように、定義されるさまざまなフィールドが状態タイプのメッセージ内にある。これらのフィールドのオペレーションまたは内容が表4に示される。
【００４３】
【表４】
0004059675.tif 000005
【００４４】
QNM 182に向けられた仕事待ち行列メッセージは、QNM 182のファイル・アドレス空間内で実行される仕事待ち行列ルーチンによって解析され翻訳される。それらのルーチンは、QNM 182の挙動に影響を及ぼす内容がないか全てのメッセージを調べることができる。1つのメッセージタイプがQNM 182専用に確保される。このメッセージタイプはQGOメッセージ（表5は、QGOメッセージのためのメッセージ構造を示す）と呼ばれ、仕事待ち行列インタープリタ（明示的には示されていない）がこれを使用してメッセージにおいて示されるレジスタ・ファイル位置への実行点を変更する。これは、QNM内で複雑な演算を遂行するコンパクトで効率的な方法を提供する。その位置でのメッセージ・リストは、仕事待ち行列インタープリタへの復帰を遂行する。
【００４５】
QGOに含まれる付加的なデータワードの利用は、呼び出されたルーチンの機能である。さらに、仕事待ち行列応答機（responder）は、直列リンクのネットワーク上のパケット・フレーミングを受け入れるためにデータ・カウントにパディング（詰め物）をすることができる。
【００４６】
【表５】
0004059675.tif 000006
【００４７】
表5に示すように、定義されるさまざまなフィールドがQGOタイプのメッセージ内にある。これらのフィールドのあるものの動作または内容は、表6のように定義される。
【００４８】
【表６】
0004059675.tif 000007
【００４９】
間接的なアドレス指定は、生成部（producer）と利用者（consumer）との間をポインタを介して分離する。QGOメッセージの重要な含意は、メッセージを受信する機能ユニットのための新しいメッセージタイプを合成する能力である。QNM 182は、新しいメッセージを仕事待ち行列インタープリタに挿入するためにQGOメッセージを使用できる。QGOメッセージはなんらかのサブルーチンへのポインタであるので、所与の機能ユニットにおいてあらかじめ定義されていない新しいコマンドを作るために、プログラマが使うことができる。
【００５０】
QNMのレジスタ・ファイル内で、QNM 182の挙動を実行するために別の組のメッセージを用いてもよい。バッファされた仕事待ち行列QGOメッセージも有効なQNMメッセージである。QNM 182は、直列リンクのネットワークを介してすべてのノードのローカル記憶装置に読取りアクセスすることができ、自身のノード180のローカル記憶装置に読取り／読み込みアクセスすることができる。それは、任意に使用することができるように記憶装置の一部を割り当てられていてもよく、ローカル記憶装置に対し指定された情報をロードし、格納するためにサブルーチン・メッセージによって明示的に指示されてもよい。
【００５１】
QNM 182は、また、非常に動的である多数の待ち行列およびスタック構造を管理できる。構造の数のため、それぞれについてレジスタ・ファイル空間の固定部分を確保することは、望ましくない。また、機能ユニット間の干渉のダイナミックスにより、所与の瞬間に最も多くのデータを含む構造がシフトされると思われる。したがって、記憶装置の動的割当てをサポートする機構も含まれることができる。
【００５２】
本発明により造られるグラフィックス・システムの基本要素の高水準の構造およびオペレーションを説明した。このシステムは新しいアーキテクチャを有し、ノード内に含まれる機能ユニット、例えばテクスチャ・マッパーおよび幾何学アクセラレータは、ルータをベースとするネットワークを介して通信する。このネットワークは、ポイント・ツー・ポイントの直列リンクを有するノードを含んでいる。直列リンクは、発信者ノードがネットワーク上の応答機ノードのローカル記憶空間からデータのパケットが返されるようリクエストするメディアを確立する。ローカル記憶空間は、物理的なＲＡＭ、またはキャッシュおよび待ち行列のようなそのＲＡＭの仮想表現であってもよい。直接リンクのないノードは、中間ノードを介してQNM 182によって、経路選択される。好適な実施例において、リモートノードのローカルメモリ空間に対する書込みは許されない。その代わりに、ノードのローカル空間への書込みだけが必要なように、リソースおよび仕事が分散されている。
【００５３】
仕事またはデータがシステムのノードに分散される態様を示すためにSRU 189を考える。SRUは、そのモダリティ（ディスプレイ解像度、フロントバッファ選択など）を修正する以外には待ち行列によって駆動されない連続プロセスである。合成プロセスは、ディスプレイを表すイメージ面の空間位置に基づいて分割される。このプロセスは、それら自身の空間位置とは独立に、複数のイメージ面をアクセスすることができる。ディスプレイと位置あわせした面は、同じ空間位置をもつことができる。
【００５４】
ディスプレイを更新するプロセスは、ディスプレイ・ドライバ（DACまたはデジタル）の位置に対しローカルである。この点について、死すプレイ用には一つのドライバだけが存在することが好ましい。これにより、実際のディスプレイ上の画素のアライメント問題を避けることができる。ディスプレイの更新プロセスは、適当なノードから構成されたイメージをアクセスする。
【００５５】
幾何学アクセラレータに関して、さまざまな幾何学アクセラレータの中で均衡のとれた仕事負荷が維持されるように、仕事は、システムのさまざまな幾何学アクセラレータの間に分散されることができる。知られているように、幾何学アクセラレータによって演算されるデータは、スクリーン座標ではなくユーザー座標にある。したがって、空間位置に基づいて幾何学アクセラレータの間で仕事を分割する実際的な方法がはない。しかし、それは負荷のバランスに基づいて分割することができる。
【００５６】
この点について、アイドル状態になるかまたは仕事を必要とするようになるとき、さまざまな幾何学エンジンは、ホストインタフェースQNMからそれぞれの仕事待ち行列をポール（ポーリング）する。ホストインタフェースQNMは、このポーリング活動を監視し、どの幾何学アクセラレータがより暇であるかを判断し、付加的なプリミティブをそれらの幾何学アクセラレータに割り当てることができる。このような方法で、ホストインタフェースQNMは、最も能率的に仕事負荷をバランスさせる態様でさまざまな幾何学アクセラレータの間で仕事を分散することができる。
【００５７】
ラスタライザに関して、仕事が幾何学アクセラレータにより実行されたあと、仕事は空間位置に基づいて分散されることができる。すなわち、幾何学アクセラレータがデータに対する仕事を完了したあと、そのデータはスクリーン空間に出される。仕事がスクリーン空間に投影されると、階層的なタイラ184は、どのラスタライザがディスプレイ（スクリーン空間）の特定の領域に関連するかを判断することができ、仕事は、そのスクリーン空間射影に基づいてラスタライザに適切に割り当てられることができる。
【００５８】
テクスチャマッピングに関して、画素またはサブピクセル・レベルに対するテクスチャ・パラメータを計算した後、個々のテクセルの空間位置を決定できる。一般に、テクスチャの空間位置とイメージの空間位置との間には相関がない。これにより、テクセル計算が異なるノードに再分散されることがある。これについては、いくつかの実際的な制約がある。第１に、一つの画素のための計算は、複数のノードからテクセル・サンプルを必要とすることができる。第２に、ラスタライゼーション・プロセスは、直接テクセルに関しないが後の複数のz/混合計算に関係する複数のピクセルあたりの値を生成する。これらの値は、なんらかの方法でテクセル値と相関づけることができる。
【００５９】
理想的には、コストをかけることなくノード間通信を広げることができるならば、パイプラインの各ステージで負荷をバランスさせることが有益であろう。これは該当しないので、仕事は画像空間位置により示されるノード、伝統的なFIFO格納手段のパイプライン・パラメータに分散されるのが好ましく、空間位置とは独立のテクセル・サンプルを読む能力をもつテクスチャマッピングを提供するのが好ましい。
【００６０】
他のユニットにおける一連の作用を実行する機能ユニットのために、メッセージのシーケンスが生成される。それらは実行（effector、エフェクタ）ノードのローカル記憶空間に記憶される。好適な実施例において、１つのメッセージは、コマンドワードにデータワードが続く一連の32ビットのワードである。このデータワードは、示された作用を実行するために用いられる。機能ユニットは、同意されたロケーションからのシーケンスを消費し、意図されたメッセージを解釈する。一連のメッセージは仕事待ち行列(work queue)と呼ばれ、上述した。機能ユニットは、それらの入力上の仕事待ち行列を消費し、それらの出力上に仕事待ち行列を生成する。この点で、生成者ノードは、それ自身のローカルメモリ空間に仕事待ち行列を生成する。対照的に、消費者ノードは、データ、命令その他の情報を生成者のメモリから引き離す。このような方法で、コヒーレント性が簡略化された態様で維持される。消費者がまだ準備ができていないデータまたは情報を要求する場合、データまたは情報は消費者に（データまたは情報が生成者により生成されるまで）返されない。
【００６１】
エフェクタおよび影響を受ける機能ユニットは、同じ物理的なノードに存在する必要がない。プログラム可能なポインタが明確なノードのローカル記憶空間における待ち行列のための空間を特定するので、生成者および消費者がばらばらであってもよい。生成者および消費者ポインタを特定することは、新しい機能ユニットが古いユニットについての知識なしで挿入されることを可能にすることによって、それぞれスケーラビリティを強化する。機能ユニットはFIF0のようなインターフェースを経て待ち行列にアクセスし、ノード記憶装置の番地の管理は、ＱＮＭによって行われる。
【００６２】
例えば、機能ユニットによるメッセージの実行は、仕事待ち行列において、明示的に提供される情報否定を必要とすることがある。たとえば、あるアクションは、適用されるテクスチャに三角形プリミティブを描画するとか、またはDACを介して画像を表す情報をシーケンスさせることであってもよい。必要な情報は、そのノードのメモリサブシステム・インターフェースに対するその専用インターフェースを介して、またはQNM 182に対する専用ポートを介して、機能ユニットによって直接要求される。例えば、図5のシェーダ186はメモリコントローラ188と直接通信できるか、またはQNM 182への専用ポートを介して通信できるので、ＱＮＭは、シェーダ186からの、またはシェーダ186へのデータがローカルであるかリモートであるか判断することができる。メモリサブシステムは、どのノードのローカル記憶装置がその情報を含むかを判断し、リモートノード上であればネットワークへのそのインターフェース上に要求を出し、リモートノード状でなければそれ自身のローカル記憶装置インターフェースに対するアクセスを始める。返ってくる応答の潜在性を補償するために複数の要求を始めてもよい。
【００６３】
QNMSにキューポインタを変更する能力を与えることは、仕事待ち行列パラダイムにおけるフロー制御を行うことになる。たとえば、一連の生成者から消費者仕事待ち行列を得うるのが望ましいことがある。QNMの能力をＱＮＭ内に含まれるレジスタ・ファイルに格納されるルーチンにアクセスするためのメッセージクラスで強化することは、ローカル記憶空間に多様な挙動を創作することができる。例えばユニットのクラスのラウンドロビン・シーケンスとか、またはローカル記憶空間に保存しまたは復元するとかである。さらに、QNMの全ての挙動は、メッセージ待ち行列の内容を転送し解釈するルーチンによって決定され、その結果、より高水準のルーチンにアクセスすることができる。予想される正確な挙動は、QNMにプログラムされるインプリメンテーションによって、判断されるのが好ましい。
【００６４】
このパラダイムの使用の単純な実例を提供するために、図7を参照する。図７は仕事待ち行列を介して通信する機能ユニットの概念を例示する。具体的には、図7はホストインタフェース202、4つの幾何学アクセラレータ（ＧＡ）204、206、208および210、2つのシェーダ212および214を示す。ホスト上のデバイスドライバ220は指令/データバッファの形でメッセージ222を有するＩ／Ｏバスに書き、ホストインタフェース202がホストインタフェースQNM 230に書き込まれる仕事待ち行列メッセージに変換する。例示の実施例において、４つの完全な図面プリミティブごとにその後ろに、ホストインタフェースQNM 230が、チャンク終わり（EOC、 End of Chunk）メッセージを合成する。EOCメッセージは、後述するチャンクの終わりを遂行するQGOメッセージ（上記した）である。
【００６５】
破線の矢印が素子間の論理的通信を表示する。この種の素子間の実際の通信は、直接でなく、直列リンクのネットワークを通じて、および、それぞれのノードのQNMSを介して行われる。
【００６６】
QNM 230は、仕事待ち行列（QNMに対すローカルのメモリにおいて）を解析するパワーアップの後、始められるメッセージ・リストを実行し、状態メッセージを全ての幾何学アクセラレータ仕事待ち行列に配布し、次のEOCまで、一つの幾何学アクセラレータ仕事待ち行列に仕事メッセージを配布する。このEOCは、次の幾何学アクセラレータをラウンドロビン・シーケンスから選ぶことができるサブルーチン・メッセージ・リストを起動し、アクティブ幾何学アクセラレータ仕事待ち行列にシェーダEOCを合成する。各幾何学アクセラレータ204、206、208および210は、その仕事待ち行列を消費し、シェーダ212および214のための仕事待ち行列を生成する。幾何学アクセラレータによって直接実行可能でないメッセージは、その出力に伝播し、他は、新しいシェーダメッセージの合成になるプリミティブの描画を示す。QNMは、シェーダ仕事待ち行列を解析するパワーアップの後、始められる他のメッセージ・リストをも実行し、全てのシェーダ仕事待ち行列に状態メッセージを配布し、メッセージに含まれる空間情報によって示される各シェーダ仕事待ち行列に仕事メッセージを配布する。
【００６７】
図示するように、ネットワーク240を有する通信は、さまざまなQNMにより実行される。例えば、ホストインタフェースQNM 230は、幾何学アクセラレータ204、206、208および210のための仕事待ち行列メッセージをネットワーク240に伝える。これらの仕事待ち行列メッセージは、ネットワーク240から、幾何学アクセラレータ204、206、208および21OのためのQNM 242、244、246および248によって受け取られる。
【００６８】
概念的には、ノードにいかなる数の機能ユニットでも存在でき、それぞれが独立にそれ自身の仕事待ち行列を生成し消費することができる。与えられたノードに存在する機能ユニットの実際の数は、QNM内で必要なリソースを決め、ネットワーク上の帯域幅消費に貢献する。入出力の帯域幅は、ネットワークのノード部上の有効帯域幅を上回ることはなく、付加的な生成者および消費者にサービスを提供することができるとしても、実際上QNMの複雑さの上限となる。ノードクラスの異種集合は、機能ユニットタイプの異方性分布を許し、ネットワークへの新しいタイプの機能ユニットの導入を容易にする。こうして、スケーラビリティ（拡張性）が強化される。
【００６９】
各機能ユニットの通信シーケンス順序が他の機能ユニットのものと独立に維持されるので、複数の機能ユニットがデッドロックなしに並行して機能することができる。好ましくは、ネットワーク240上の通信の粒状性は、十分に細かいので、どの機能ユニットも他の機能ユニットがネットワークにアクセスするのを大きく遅延させることはない。むしろ、利用できないパケットに対して所与の要求を出した特定の機能ユニットだけが遅れる。他のシーケンスは、ネットワーク240上で独立に継続する。仕事待ち行列は、漠然と応答のない始動を待ち続けることなく、終わるよう構成されている。上のEOCのような機構を利用している待ち行列は、次のようなルーチンを生成者および消費者QNMに含む。すなわち、先を見越し、近づくEOCを警告する作用をするQNMメッセージを挿入することによって、待ち行列の論理的末端または待ち行列間の遷移を越えて要求が出されるのを防ぐルーチンが含まれている。
【００７０】
機能ユニット間の動作を同期させる必要性も、待ち行列概念によって実現可能である。同期すべき各ユニットは、単にリターン(return)である短い待ち行列を生成する。ここで、リターンは、指定されたアドレスから取り出される内容のないパケットであってよく、リターンされた（返された）値について解釈または実行はない。一つの指定されたユニットが、順番に各待ち行列を消費するためにジャンプする。それがうまく最後の待ち行列を読み出すときに、それは各ユニットのための待ち行列を生成する。生成は、同時に本質的に完了され、各機能ユニットがその消費を完了し、ほぼ同期してそれらの仕事待ち行列を続けることを可能にする。
【００７１】
仕事待ち行列生成に関して、1つの機能ユニットにおいて生成された一連のメッセージは、複数のユニットによって消費される複数のシーケンスに区切ることができる。このシーケンスは、全てのターゲットユニットについて複製されてもよい部分（状態）と、ターゲットユニットの部分集合により処理される部分（仕事）とを含むことができる。状態部分は、更に最適化可能な部分（同じメッセージの以前の書込みは、取り除いてもよい）およびそうでない部分に分割することができる。仕事部分のためのターゲットは、その内容によってあらかじめ決められることができ、または最初に利用できるものによって動的に決定されることができる。このとき、ラウンドロビン・シーケンスの中間ユニットは、空の仕事部分を受け取る。
【００７２】
最適化可能な状態が区分けされるべきシーケンスで見つけられるときはいつでも、それは、活性（active、アクティブ）状態として保存され、全部機能ユニットがマークされる。レジスタ・ファイルのワードをビット・アレイとして操作するメッセージがこれらの作用を容易にする。仕事がターゲット仕事待ち行列に置かれるべきときはいつでも、マークされた活性状態のすべては、先ず仕事待ち行列に置かれる。このような方法で、仕事を有する機能ユニットは、仕事メッセージ間の全ての状態遷移を受け取ることなく活性状態を有する。
【００７３】
さらに、適当な機能ユニットの入力または出力で仕事メッセージを処理するQNMメッセージを導入することによって、生成者、消費者および／またはネットワーク240の帯域幅に対してより効率的なシーケンスを特定することが可能である。例えば、ノードに頂点データ（例えば、X、Y、Z、R、G、B、Alpha、S、T、その他のための座標および値）の異なる部分を伝えるために複数の連続したメッセージが用いられる場合、これらすべてのデータを一つのパケットで送る一つのメッセージ・パッケージを構成してもよい。これによって、複数のメッセージで伝えられる「ヘッダ」情報の量を減らすことができる。
【００７４】
図8は、図５のノード180に類似するが異なる機能ユニットを有するノード280を示す。図5はコンピュータ・グラフィックス・システムの特定のグラフィクス・プロセシング機能を実行するためのノード180を例示した。図5のノードと同様に、図8で例示されるノード280は、ネットワーク・インターフェース281、QNM 282、メモリコントローラ288、および専用のＲＡＭ 275を含む。ノード280は、ホスト・インタフェースユニット290およびVGA/ROM 292をも含む。
【００７５】
このノード280またはこれと同様のものは、他のノードとホストとの初期化および通信を調整するように動作する。機能ユニット290は、ホストインタフェースとして働き、ホストと通信する動きをする。スタートアップすると、システムの他のノードは、命令を受信するためにノード290と通信できる。すなわち、スタートアップすると、他のノード（消費者）は、それらのセットアップおよび構成情報を得るためにホストインタフェース290から読取ることができる。この早期の通信の間、他のノードは、それらの仕事待ち行列をどこから読むべきかに関して指示を受ける。
【００７６】
VGA/ROM 292として分類されるブロックは、QNM 282およびホストインタフェース装置290と通信できる。本発明のグラフィックス・システムおよびドライバがディスプレイの制御をはじめる前に、グラフィクスBIOS（標準入力出力・サービス）と通信することによって、VGA/ROM 292はグラフィクス初期化を提供することができる。
【００７７】
ノード290を介してホストとの初期化および通信が生じる特定の態様は、本発明を制限するものではなく、当業者によって実施することができるものである。したがって、これらの機能に関する詳細の記述は省略する。
【００７８】
分散型の共有メモリ
本発明の好適な実施例の環境を説明したので、好適な実施例の発明事項の例を説明する。好適な実施例の発明は、分散型の共有メモリとして見ることが可能である。共有または統合されたメモリシステムは周知であり、メモリシステムは、複数のサブシステムまたは機能ユニット/処理ユニットにより共有される。分散型のメモリシステムも公知であり、メモリはさまざまな機能ユニット/演算処理ユニットで使用されるために分散される。分散型の共有メモリは、共有および分散型の手法の利益を得る。第１に、それは分散型のメモリシステムから、分散された帯域幅のような便益（メモリ帯域幅ボトルネックを避ける）を得る。同時に、それはメモリ・リソースの共有を許すので、複数の記憶装置の間でのデータの繰返を避けることができる。好適な実施例において、記憶装置に対するアクセスは、制限され、記憶装置に対する書込みアクセスは、関連ノードの機能ユニットだけにより実行されることができる。しかし、読み込みアクセスは全てのノードに許可される。
【００７９】
図9は、図5に示されるようなグラフィクス・ノードにより使用されることができるメモリ・セグメンテーション手法の1例を示す。しかし、本発明の範囲および趣旨にそって多数の他のセグメンテーション手法が使用されうる。図9の実施例において、グラフィックス処理機能を実行するノード180にローカルであるメモリ175は、多数の専用セグメントを含むことができる。1つのセグメント302は、ローカルノード180のQNM 182（図5）に専用である。その空間に格納されることができる他のデータおよび情報の中で、この専用のメモリ空間302は、複数の仕事待ち行列303を含むことができる。この点で、QNM 182はノードを消費するための仕事待ち行列を生成する生成者ノードとして作用する。関連して、消費ノードは、これらの仕事待ち行列303から読むことができる。
【００８０】
メモリ175の他のメモリセグメントは、第1の幾何学アクセラレータのためのセグメント304、第2の幾何学アクセラレータのためのセグメント306、ラスタライザのためのセグメント308、画像面の一部を含むセグメント310、テクスチャ面の一部を含むセグメント312を含むことができる。幾何学アクセラレータおよびラスタライザ・セグメントに関して、それらのコンポーネントは「消費者」であるので、メモリセグメントは仕事待ち行列を記憶する必要がない（生成者コンポーネントだけが仕事待ち行列のための記憶装置を必要とするから）。本発明の統合された記憶構造によって、テクスチャ面が区分けされ、複数のノードにわたって記憶されることができる。ディスプレイ中の画像にテクスチャ面を空間的にマップすることは容易でないので、これは特にユニークである。
【００８１】
したがって、本発明は、さまざまなノードのメモリのセグメンテーションに基づく仕事待ち行列を修飾するための機構を含む。この機構は、メモリ・セグメンテーションに関連する機能ユニットによって異なる。前述のように、ホストインタフェースは、さまざまなノードの幾何学アクセラレータ間の負荷バランスを行う態様で幾何学アクセラレータ間で仕事を分散するための機構（特には図示していない）を含むことができる。他の機構（例えば階層的なタイラ184）が、空間位置に基づくさまざまなラスタライザの中の仕事を分散するために用いられてもよい。メモリ・セグメンテーションに基づいて仕事を分散するために、この種の他の機構も同様に利用できる。
【００８２】
例示の実施例（例えば図5）において、記憶装置はノードに割り当てられノードと関連している。各ノードは、データ処理のための少なくとも一つの機能ユニットを含む。特にコンピューターグラフィックス環境において、この種のシステム・アーキテクチャに多くの利点がある。これの利点は、統合された面定義を提供すること、複数のメモリにおいてテクスチャの繰返なしにテクスチャの共有を許すこと、画像面がテクスチャを定義できること、コンピュータ・グラフィックカード内に表示リストを分散記憶することを可能にすること、全ての幾何学アクセラレータが表示リストにアクセスをすることができること、グラフィックス・システムが変倍されるときのテクスチャ帯域幅のスケーラビリティ、および大規模メモリ構成のサポート、を含む。大規模メモリ構成のサポートに関して、このような構成（コンフィギュレーション）は、テクスチャマッピング、アンチエイリアジング(anti-aliasing)および表示リスト記憶のための拡張サポートを提供する。
【００８３】
周知のように、表示リスト（display list、ディスプレイ・リスト）は、グラフィックス・ハードウェアにローカルに格納された図形プリミティブのリストである。表示リストの実施および使用は周知で、グラフィックス・ハードウェアの速度がホストCPUより速かったときに開発された。発展的にCPUスピードが改善され、表示リストの使用および実施が減少し始めた。しかし、グラフィックス・ハードウェアの速度およびパワーは、再びホストＣＰＵのものより勝るようになりつつあり、表示リストの使用および実施が望ましくなってきている。本発明の分散型の共有記憶構造は、表示リストの実施をささいなものにすることが評価されねばならない。
【００８４】
以上にこの発明を具体的な実施例について記述したが、この発明はこのような実施例に限定されるものではない。この発明は、例として次の実施態様を含む。
【００８５】
（１）複数のノード(180)を規定する集積回路コンポーネントのシステムであって、各ノードにはランダムセスメモリ（ＲＡＭ）(175)が接続されており、前記各ノードは、予め定められた処理機能を実行するよう構成された少なくとも一つの機能ユニット(182, 183, 184, 185, 186, 187, 188)と、他のノードとの情報の通信を管理し制御するよう構成された通信機構(178, 182)と、前記ノードに接続される前記ＲＡＭに対する書込みおよび読取りを制御するよう構成されたメモリコントローラ(188)と、を備え、前記システムは、該システムの複数のノードによる前記ＲＡＭへの読取りアクセスを許し、書込みアクセスは前記ＲＡＭが接続されているノードだけに制限するよう構成されている。
【００８６】
（２）前記システムは、コンピューターグラフィックス・システムである（１）のシステム。
【００８７】
（３） 少なくとも一つの機能ユニット（182、183、184、185、186、187）は、テクスチャマッピング・コンポーネント、幾何学アクセラレータ（183）、シェーダ（186）、z/混合コンポーネント（187）、ラスタライザ（185）、タイラ(184)、およびキャッシュ・コントローラ（188）からなる群から選択される（１）のシステム。
【００８８】
（４） 各ノード（180）が遠隔機能ユニット（182、183、184、185、186、187、188）によるメモリの使用およびアクセスを制御するための制御手段（190）を更に含む（1）のシステム。
【００８９】
（５） 制御手段（190）が、少なくとも一つの仕事待ち行列を含むメモリセグメント（図９）を含み、仕事待ち行列(303)は、少なくとも一つの機能ユニットのための先入れ先出し(first-in-first-out)命令待ち行列の形である（４）のシステム。
【００９０】
（６） 仕事待ち行列（303）が複数のメッセージを含む（5）のシステム。
【００９１】
（７） メッセージが制御手段(190)の制御の下で異なるノードの間で通信される（6）のシステム。
【００９２】
（８）複数のノード（190）が複数のシリアル通信リンク（118）を介して相互接続されている（１）のシステム。
【００９３】
（９） ＲＡＭ（175）が接続されたノードの制御手段（190）に専用の少なくとも一つのセグメント（302）と、システムの機能動作を実行するための専用の少なくとも一つのセグメント(304, 305, 308)とにセグメント化されている（4）のシステム。
【００９４】
（10）ＲＡＭ（175）が、テクスチャマップ面の一部および画像面の一部に専用の少なくとも一つの付加的なセグメント(310, 312)を含む用セグメント化されており、残りのテクスチャマップ面および画像面は、他のノードに接続されたＲＡＭのメモリセグメントに格納され、さまざまなテクスチャマップ面セグメントおよび画像面セグメントが、分割されて、重複しない態様でＲＡＭに記憶されるよう構成された（９）のシステム。
【図面の簡単な説明】
【図１】従来技術に従うコンピュータ・グラフィックス・システムの構成図である。
【図２】本発明に従って機能ノードが直列リンクで相互接続されているノード・アーキテクチャを例示する図である。
【図３】幾何学アクセラレータ、ラスタライザ、ローカルＲＡＭと連絡するキャッシュを含む機能ノードを例示する図である。
【図４】本発明の一実施例に従って、マルチチップ・アーキテクチャにおけるノード構成を例示する図である。
【図５】本発明の一実施例の一つのノードに表現されることができるさまざまな機能エレメントを例示する図である。
【図６】機能ユニットのオペレーションを制御するために使われる、仕事待ち行列を例示する図である。
【図７】4つのパラレル幾何学アクセラレータおよび2つのシェーダを有するノード・グラフィックス・システムにおける例としての仕事待ち行列のフローを例示する図である。
【図８】図5のノードと同様のノードであるが、異なる機能ユニットを有しているノードを示す図である。
【図９】図5に例示されるようなグラフィクス・ノードにより使用されることができるメモリ・セグメンテーション法の一例を示す図である。
【符号の説明】
１７５      メモリ（ＲＡＭ）
１８０      ノード
１７８，１８２    通信機構
１８８      メモリコントローラ
【図１】
0004059675.tif 000008
【図２】
0004059675.tif 000009
【図３】
0004059675.tif 000010
【図４】
0004059675.tif 000011
【図５】
0004059675.tif 000012
【図６】
0004059675.tif 000013
【図７】
0004059675.tif 000014
【図８】
0004059675.tif 000015
【図９】
0004059675.tif 000016