(57)【特許請求の範囲】
【請求項１】
中央プロセッサと、
メインメモリまたはシステムメモリの少なくとも１つを含む第１メモリと、
ローカルメモリを含む第２メモリと、
入力デバイスと、
前記第１メモリおよび前記入力デバイスに結合されたバスと、
グラフィックス・デバイスと、そして  前記中央プロセッサに結合され、かつ前記バスに結合され、そしてまた前記第２メモリにも結合されたメモリ制御ハブであって、前記グラフィックス・デバイスを含むメモリ制御ハブとから構成され；  上記メモリ制御ハブは第１メモリ内と第２メモリ内のオペランドにアクセスするためにグラフィックス・メモリ制御コンポーネントを具備し、かつ第１メモリ内のオペランドにアクセルするためにメモリ制御コンポーネントを具備し、
前記グラフィックス・メモリ制御コンポーネントは、グラフィックス変換テーブルを使用して、前記メモリ内のグラフィックス・オペランドが第１メモリか或は第２メモリにあるのかの決定を行い、また前記グラフィックス変換テーブルは、複数のエントリを包含し、これらエントリの夫々は、仮想アドレスとシステム・アドレスの関連付けを行い、この仮想アドレスは、前記中央プロセッサによって使用され、また上記システム・アドレスは前記第１又は第２メモリのいづれかによって使用され、前記中央プロセッサは前記グラフィックス変換テーブルを修正することを特徴とするダイナミック・ディスプレイ・メモリを実装するための装置。
【請求項２】
中央プロセッサと、
メインメモリまたはシステムメモリの少なくとも１つを含む第１メモリと、
ローカルメモリを含む第２メモリと、
入力デバイスと、
前記第１メモリおよび前記入力デバイスに結合されるバスと、
グラフィックス・デバイスと、および、
前記中央プロセッサに結合され、かつ前記バスに結合され、そしてまた前記第２メモリにも結合されたメモリ制御ハブであって、前記グラフィックス・デバイスを含むメモリ制御ハブとから構成され、
上記メモリ制御ハブは上記第１メモリと第２メモリ内のオペランドにアクセスするグラフィックス・メモリ制御コンポーネントとを具備すると共に第１メモリ内のオペランドにアクセスするメモリ制御コンポーネントを具備し、
前記グラフィックス・メモリ制御コンポーネントは、前記中央プロセッサからのグラフィックス・オペランドの仮想アドレスを、システム・アドレスに変換するものであり、前記システム・アドレスは、前記第１かまたは第２のメモリ内のグラフィックス・オペランドのロケーションに対応していることを特徴とするダイナミック・ディスプレイ・メモリを実装するための装置。
【請求項３】
中央プロセッサ；  メインメモリまたはシステムメモリの少なくとも１つを含む第１メモリと、
ローカルメモリを含む第２メモリと、
前記中央プロセッサに結合された入力デバイスと、
前記中央プロセッサに結合された出力デバイスと、
グラフィックス・コントローラと、
バスと、そして  前記中央プロセッサに結合され、かつ前記バスに結合され、また前記グラフィックス・コントローラに結合され、そして前記第１メモリおよび前記第２メモリに結合されたメモリ制御ハブであって、前記第１メモリ内および前記第２メモリ内でオペランドにアクセスするためにグラフィックス・メモリ制御コンポーネントを有し、そして更に前記第１メモリ内でオペランドにアクセスするためにメモリ制御コンポーネントを有するメモリ制御ハブとから構成され、
前記グラフィックス・コントローラは、グラフィックス・メモリ制御コンポーネントを使用して前記第１メモリ内又は前記第２メモリ内に収められている複数のグラフィックス・オペランドにアクセスし、そして  前記中央プロセッサは、グラフィックス・メモリ制御コンポーネントを使用して前記グラフィックス・オペランドにアクセスする、ことを特徴とするダイナミック・ディスプレイ・メモリを実装するための装置。
【請求項４】
メモリにアクセスする方法において、
中央プロセッサが仮想アドレスのオペランドにアクセスするステップと、
メモリ制御コンポーネントが、前記オペランドがグラフィックス・オペランドであるか否かについて決定するステップと、
前記オペランドがグラフィックス・オペランドでない場合には、前記メモリ制御コンポーネントが前記仮想アドレスに対応するシステム・アドレスのオペランドにアクセスするステップと、そして  前記オペランドがグラフィックス・オペランドである場合には、前記メモリ制御コンポーネントのグラフィックス・メモリ制御コンポーネントが前記仮想アドレスに対応するシステム・アドレスの前記第１メモリ又は前記第２メモリのいづれか１つにあるオペランドにアクセスするステップであって、前記第１のメモリはメインメモリまたはシステムメモリの少なくとも１つを含み、前記第２のメモリはローカルメモリを含むステップと、を包含することを特徴とする方法。
【請求項５】
中央プロセッサと、
メインメモリまたはシステムメモリの少なくとも１つを含む第１メモリと、
ローカルメモリを含む第２メモリと、
前記中央プロセッサに結合され、かつ前記第１および第２メモリの双方に結合されたメモリ・コントローラとから構成され、
前記メモリ・コントローラはグラフィックス制御コンポーネントおよびメモリ制御コンポーネントを有し、
前記グラフィックス制御コンポーネントは、前記中央プロセッサによってアクセスされたオペランドがグラフィックス・オペランドであるか否かについての決定を行い、前記オペランドがグラフィックス・オペランドである場合には前記オペランドのアドレスを第１メモリ又は第２メモリのどちらか一方内の前記オペランドのロケーションに対応するアドレスに変換することを特徴とするダイナミック・ディスプレイ・メモリを実装するための装置。
【発明の詳細な説明】
【０００１】
（発明の分野）
本発明は、グラフィックスのチップセットに関し、より具体的に述べれば、グラフィックス・メモリのマネジメントに関する。
【０００２】
（関連技術の説明）
一般に、自身のメモリを制御することができるグラフィックス・サブシステムを備えることはよく知られており、この種のサブシステムは、通常、システムバスによって、ＣＰＵ、メインメモリ、およびその他のデバイス、たとえば補助記憶デバイス等に接続される。この種のシステムバスは、ＣＰＵ、メインメモリ、およびその他のデバイスに接続される。これによりＣＰＵは、バスに接続されているあらゆるものにアクセスすることができる。グラフィックス・サブシステムは、しばしば、当該グラフィックス・サブシステムからのみアクセス可能な高速メモリを含んでいる。それに加えて、通常はシステムバスを介して、この種のサブシステムがメインメモリ内のオペランドにアクセスすることもある。
【０００３】
こういったシステムにおいては、ＣＰＵが、グラフィックス・オペランドに対するオペレーションを実行しなければならないことも少なくない。しかしながら、これらのオペランドのオーガナイゼーションは、グラフィックス・サブシステムによって制御される。そのため、ＣＰＵがグラフィックス・サブシステムからオペランドを獲得することが必要になる。これに対して、ＣＰＵまたは関連するメモリ・マネジメント・ユニット（ＭＭＵ）がグラフィックス・オペランドのオーガナイゼーションを制御することがあり、その場合にはグラフィックス・サブシステムが、そのオペレーションのためにＣＰＵまたはＭＭＵからデータを獲得しなければならなくなる。いずれの場合においても、一方のデバイスが、そのタスクを実行するために他方のデバイスに対してデータを要求しなければならないことから、ある程度の効率の低下が招かれる。
【０００４】
別のシステムにおいては、ＣＰＵとグラフィックス・サブシステムが、ともにグラフィックス・オペランドのオーガナイゼーションを制御する。この種のシステムにおいては、ＣＰＵおよびグラフィックス・サブシステムが、互いにオペランドを要求する必要がなくなるが、メモリ内においてグラフィックス・オペランドの移動があった時点で互いの情報の交換が必要となり、それが行われない場合にはアクセス不能となる。その結果、グラフィックス・オペランドに対する各オペレーションに、オーバーヘッドの増加がもたらされる。
【０００５】
図１は、従来技術のシステムを示している。この図を参照すると、グラフィックス・アドレス変換器１００（ＧＡＴ  １００）がグラフィックス・デバイス・コントローラ１２０（ＧＤＣ  １２０）に接続されており、さらにそれがグラフィックス・デバイス１３０に接続されている。またＧＡＴ  １００は、バスに接続されており、それによってメインメモリ１６０、補助記憶１７０、メモリ・マネジメント・ユニット１５０（ＭＭＵ  １５０）に接続されている。中央処理ユニット１４０（ＣＰＵ  １４０）は、ＭＭＵ  １５０に接続されており、それによってメインメモリ１６０および補助記憶１７０にアクセスする。またＣＰＵ  １４０は、ＧＡＴ  １００に対する制御接続を有し、それによってＣＰＵ  １４０によるＧＡＴ  １００の制御が可能になる。メインメモリ１６０は、セグメント・バッファ１１０を包含している。
【０００６】
ＣＰＵ  １４０は、メインメモリ１６０ならびに補助記憶１７０内に記憶されているグラフィックス・オペランドに対するオペレーションを行う。これを容易にするために、ＭＭＵ  １５０は、各種オペランドがどこに記憶されているかについてのレコードを維持しつつ、メインメモリ１６０および補助記憶１７０をマネージする。メモリ内においてオペランドが移動させられると、ＭＭＵ  １５０は、そのオペランドのロケーションのレコードを更新する。ＧＤＣ  １２０もまた、メインメモリ１６０ならびに補助記憶１７０内に記憶されているグラフィックス・オペランドに対するオペレーションを行う。これを容易にするために、ＧＡＴ  １００は、グラフィックス・オペランドがどこに記憶されているかについてのレコードを維持しており、メモリ内においてオペランドの移動があったときには、それらのレコードを更新する。その結果、ＣＰＵ  １４０もしくはＧＤＣ  １２０が、グラフィックス・オペランドの移動をもたらすアクションを行った場合には、必ずＭＭＵ  １５０ならびにＧＡＴ  １００双方のレコードが更新されなければならないことになる。ＭＭＵ  １５０およびＧＡＴ  １００のレコードの間の一貫性を維持することは、メインメモリ１６０もしくは補助記憶１７０のいずれに対するアクセスにおいても多くのエラーに遭遇する可能性があることから、高度に同期化されたオペレーションを必要とする。
【０００７】
たとえば、ＣＰＵ  １４０が、補助記憶１７０からメモリのセグメントをメインメモリ１６０内のセグメント・バッファ１１０に移動し、それによってセグメント・バッファ１１０内の以前の内容を上書きすることがある。その種のアクションが発生したとき、ＭＭＵ  １５０は、そのレコードを更新して、セグメント・バッファ１１０内にはどのようなオペランドがあり、どのオペランドがセグメント・バッファ１１０から削除されたかを継続的に追跡する。これらのオペランドのうちのいずれかがグラフィックス・オペランドである場合には、ＣＰＵ  １４０がＧＡＴ  １００をその制御の下に置いて、ＧＡＴ  １００に対して、関連する各種グラフィックス・オペランドに関するレコードを更新させる。さらに、ＣＰＵ  １４０がセグメント・バッファ１１０を上書きしたとき、ＧＤＣ  １２０がセグメント・バッファ１１０にアクセスしていると、ＧＤＣ  １２０は壊れたデータもしくは正しくないデータに対してオペレーションを行うことになる。
【０００８】
（発明の要約）
本発明は、ダイナミック・ディスプレイ・メモリを実装するための方法および装置である。本発明の一実施態様は、中央処理ユニットとメモリの間の仲裁に適したメモリ制御ハブである。このメモリ制御ハブは、グラフィックス・メモリ制御コンポーネントおよびメモリ制御コンポーネントを包含している。
【０００９】
添付図面には、限定の意図ではなく例示を目的として本発明を示した。
【００１０】
（詳細な説明）
本発明は、グラフィックス・データを使用する任意のシステムにおける改良されたグラフィックス・オペランドの処理およびオーバーヘッド・プロセッシングの除去を視野に入れている。以下、ダイナミック・ディスプレイ・メモリを実装するための方法および装置について説明する。以下の説明においては、本発明の完全な理解の提供に資するために例示を目的として多数の具体的な詳細を示す。しかしながら、当業者であれば、これらの具体的な詳細を用いなくても本発明の実施が可能なことは明らかであろう。なお、本発明が不明瞭になることを避けるため、構造ならびにデバイスの表現についてはブロック図の形式を用いている。
【００１１】
この明細書において「一実施形態」もしくは「実施形態」と言うときは、当該実施形態に関連して説明されている特定の特徴、構造もしくは特性が、本発明の実施形態の少なくとも１つに含まれていることを意味する。また本明細書の随所に用いている「一実施形態において」という表現は、必ずしもすべてが同じ実施形態を参照している必要がないものとする。
【００１２】
図２は、システムの一実施形態を示している。ＣＰＵ  ２１０は、中央処理ユニットであり、この分野において周知である。グラフィックス・メモリ制御２２０が、ＣＰＵ  ２１０および、システム残部２３０に結合されている。グラフィックス・メモリ制御２２０は、システム残部２３０内に含まれるメモリ内のグラフィックス・オペランドのロケーションを追跡すること、およびＣＰＵ  ２１０からのグラフィックス・オペランドの仮想アドレスをシステム残部２３０による使用に適したシステム・アドレスに変換することが可能なロジックを具体化する。つまり、ＣＰＵ  ２１０がオペランドにアクセスするとき、グラフィックス・メモリ制御２２０は、当該オペランドがグラフィックス・オペランドであるか否かを判断する。それがグラフィックス・オペランドである場合には、グラフィックス・メモリ制御２２０は、ＣＰＵ  ２１０によって示された仮想アドレスに対応するシステム・メモリ・アドレスを決定する。続いてグラフィックス・メモリ制御２２０は、適切なシステム・アドレスを使用してシステム残部２３０内の当該オペランドにアクセスし、ＣＰＵ  ２１０のためのアクセスを完成する。
【００１３】
そのオペランドがグラフィックス・オペランドでないと判断されると、グラフィックス・メモリ制御２２０は、システム残部２３０がＣＰＵ  ２１０によるメモリ・アクセスに適切に応答できるようにする。この種の応答は、この分野においてよく知られており、限定する意図はないが、メモリ・アクセスの完成、エラーのシグナリング、あるいは仮想アドレスから対応する物理アドレスへの変換ならびにそれによるオペランドのアクセスが挙げられる。メモリに対するＣＰＵのアクセスには、読み出しならびに書き込みアクセスが含まれ、その種のアクセスの完成には、適切なロケーションに対するそのオペランドの書き込み、もしくは適切なロケーションからのそのオペランドの読み出しが含まれる。
【００１４】
図２の装置は図３を参照することによってさらによく理解することができる。図３に示したプロセスは、開始ステップ３００から始まり、ＣＰＵアクセス・ステップ３１０に進む。ＣＰＵアクセス・ステップ３１０は、ＣＰＵ  ２１０によるグラフィックス・オペランドのアクセスに関係し、ＣＰＵ  ２１０は、仮想アドレスに基づいてメモリ・ロケーションに対するメモリ・アクセスを実行することによってグラフィックス・オペランドにアクセスする。その後、プロセスはグラフィックス・マッピング・ステップ３２０に進み、そこでグラフィックス・メモリ制御２２０がマップもしくはその他の変換を行い、ＣＰＵ  ２１０によって供給された仮想アドレスからシステム残部２３０内における使用に適したシステム・アドレスもしくはその他のアドレスを求める。さらにプロセスは、システム・アクセス・ステップ３３０に進み、システム残部２３０が、このシステム・アドレスを使用して適切なメモリ・アクセスを実行してグラフィックス・オペランドの位置決めをし、その後、終了ステップ３４０においてプロセスが終了する。
【００１５】
当業者にとっては明らかであろうが、図２のブロック図は、ＣＰＵ  ２１０およびグラフィックス・メモリ制御２２０を別体のコンポーネントとして描かれている。しかしながら、ＣＰＵ  ２１０およびグラフィックス・メモリ制御２２０を単一の集積回路の部分とすることもできる。
【００１６】
次に図４を参照すると、システムの別な実施形態がより詳細に示されている。図４において、ＣＰＵ  ４１０は、ＭＭＵ  ４２０を含み、ＭＣＨ  ４３０に結合されている。ＭＣＨ  ４３０は、グラフィックス・デバイス４４０、アドレス・リオーダ・ステージ４５０、およびＧＴＴ  ４６０（グラフィックス変換テーブル）を含んでいる。ＭＣＨ  ４３０には、さらにローカル・メモリ４８０、メインメモリ４７０、ディスプレイ４９０、およびＩ／Ｏデバイス４９６が結合されている。ローカル・メモリ４８０は、グラフィックス・オペランド４８５を含んでおり、メインメモリ４７０は、グラフィックス・オペランド４７５を含んでいる。ＭＣＨ  ４３０とＩ／Ｏデバイス４９６は、Ｉ／Ｏバス４９３を介して結合されている。グラフィックス・デバイス４４０およびＣＰＵ  ４１０は、いずれもアドレス・リオーダ・ステージ４５０に対するアクセスを有する。一実施形態においては、一貫性を理由として、ＧＴＴ  ４６０の修正がＣＰＵ  ４１０のみに限られ、したがってＣＰＵ  ４１０だけがグラフィックス・オペランドのメモリ内におけるロケーションを変更することができる。
【００１７】
図４に示したシステムのオペレーションは、図５に示したオペレーションの方法を参照することによってさらによく理解することができる。ＣＰＵアクセス・ステップ５１０は、ＣＰＵ  ４１０がグラフィックス・オペランドの仮想アドレスに対してアクセスを実行すること表している。ＭＭＵプロセッシング・ステップ５２０は、ＭＭＵ  ４２０がマップもしくはその他の変換を行い、ＣＰＵ  ４１０によって供給された仮想アドレスからＣＰＵ  ４１０外のメモリのアクセスにおける使用に適したシステム・アドレスを求めること表している。ここで、ＣＰＵ  ４１０によってアクセスされたグラフィックス・オペランドがＣＰＵ  ４１０内のキャッシュに収められていた場合に、ＭＭＵ  ４２０がＣＰＵ  ４１０外のメモリにアクセスしないことがある。しかしながら、ほとんどのグラフィックス・オペランドはキャッシュ不可能であり、したがってメモリ・アクセスはＣＰＵの外に向けられる。
【００１８】
判断ステップ５３０においてＭＣＨ  ４３０は、ＭＭＵ  ４２０からのシステム・アドレスがグラフィックス・メモリの範囲内に含まれるか否かをチェックする。グラフィックス・メモリの範囲は、グラフィックス・デバイス４４０による使用のためにＧＴＴ  ４６０によってマップされたアドレスの範囲である。システム・アドレスがグラフィックス・メモリの範囲内になければ、プロセスがアクセス・ステップ５４０に進み、ＭＣＨ  ４３０が、通常の方式に従ってそのシステム・アドレスによるメモリ・アクセスを実行する。通常これは、ある種のアドレス変換、そのアドレスが特定のメモリ・デバイスに導くか否かの判断、およびその特定のデバイスに対するアクセスを伴う。
【００１９】
システム・アドレスがグラフィックス・メモリの範囲内に含まれるときには、プロセスは判断ステップ５５０に進み、そのアドレスが囲い込み済み領域内に含まれるか否かをアドレス・リオーダ・ステージ４５０が判断する。アドレス・リオーダ・ステージ４５０の一実施形態は、囲い込み済み領域としてアドレス・リオーダ・ステージ４５０が使用するように割り当てられたメモリの特定部分を区切る情報を収めた囲い込みレジスタを包含している。これらの囲い込み済み領域は、他のメモリと異なる態様においてオーガナイゼーションし、あるいはシステム・メモリの残部と何らかの形で異なるものとすることができる。一実施形態においては、囲い込み済み領域の内容がタイリングもしくは再オーガナイゼーションされるが、これはグラフィックス・オペランドに関連付けされたメモリが、矩形、方形、立体、その他の形状等の空間形式を論理的に模したタイルを形成するようにオーガナイゼーションできることを意味する。システム・アドレスが囲い込み済み領域内に含まれると判断されると、リオーダ・ステップ５６０においてシステム・アドレスに対する適切なリオーダが実行される。この種のリオーダは、一般に、いくつかの単純な算術的再計算を含み、ルックアップ・テーブルの使用を通じても実行することができる。
【００２０】
リオーダ・ステップ５６０に続いて、マッピング・ステップ５７０において、リオーダ後のアドレスが物理アドレスにマップされる。リオーダが必要ない場合にも、同様にマッピング・ステップ５７０において、ＭＭＵ  ４２０から供給されたシステム・アドレスが物理アドレスにマップされる。このマッピング・ステップは、通常、変換テーブルの使用を必要とし、この場合においては、ＧＴＴ  ４６０、すなわちアドレスもしくはシステム・アドレスの範囲とメインメモリまたはローカル・メモリ内の特定のロケーションとの対応関係を示すエントリを含んでいるグラフィックス変換テーブルが使用される。ＭＣＨ  ４３０によるアクセス・ステップ５４０のメモリ・アクセスにおいても、類似の変換テーブルが使用される。最後に、アクセス・ステップ５８０において、アクセス・ステップ５４０と類似の態様に従って変換後のアドレスが使用されてアクセスが行なわれる。その後、終了ステップ５９０においてこのプロセスが終了する。
【００２１】
図６は、システムのさらに別の実施形態を示している。ＣＰＵ  ６１０は、ＭＭＵ  ６２０を含み、メモリ制御６３０に結合されている。メモリ制御６３０は、グラフィックス・メモリ制御６４０を含み、バス６６０に結合されている。バス６６０には、さらにローカル・メモリ６５０、システム・メモリ６９０、入力デバイス６８０、および出力デバイス６７０が接続されている。ＣＰＵ  ６１０がオペランドに対するアクセスを要求した後は、メモリ制御６３０が、ＣＰＵ  ６１０から供給されたアドレスを変換し、バス６６０に結合されている任意の他のコンポーネント内のオペランドにバス６６０でアクセスすることができる。そのオペランドがグラフィックス・オペランドであった場合には、グラフィックス・メモリ制御６４０が、ＣＰＵ  ６１０から供給されたアドレスの適切な操作ならびに変換を行って、メモリ制御６３０に関して説明したアクセスと同じ類のアクセスを行う。
【００２２】
図８は、システムのさらに別の実施形態およびグラフィックス・オペランドに対するアクセスの方法を示している。グラフィックス・オペランド仮想アドレス８０５は、ＣＰＵで実行されているプログラムから見たアドレスである。ＭＭＵ  ８１０は、ＣＰＵの内部メモリ・マネジメント・ユニットである。一実施形態においては、それが、仮想アドレスとシステム・アドレスの対応関係を示すエントリを含んだルックアップ・テーブルを使用して仮想アドレスをシステム・アドレスに変換する。メモリ範囲８１５は、ＭＭＵ  ８１０によってマップされたメモリの構造であり、ＭＭＵ  ８１０が生成したグラフィックス・オペランドに関する各システム・アドレスは、このメモリ・スペースのいずれかの部分をアドレスする。図示した部分は、一実施形態においてＣＰＵがアクセスすることができるグラフィックス・メモリであり、このメモリ範囲の他の部分は、入力デバイスまたは出力デバイス等のデバイスに対応する。
【００２３】
グラフィックス・メモリ・スペース８２５は、グラフィックス・デバイスから見たグラフィックス・メモリの構造である。グラフィックス・デバイス・アクセス８２０は、一実施形態において、グラフィックス・デバイスがＣＰＵによってアクセス可能なメモリの残部に対するアクセスを有していないことから、グラフィックス・デバイスがオフセットＮを伴わずにメモリにアクセスすること、すなわちＣＰＵおよびＭＭＵ  ８１０によってグラフィックス・メモリ・スペースに対するアクセスに使用される部分のオフセットを伴わずにメモリにアクセスすることを示している。メモリ範囲８１５およびグラフィックス・メモリ・スペース８２５のいずれも本質的に線形であり、これはＣＰＵ上におけるプログラムの実行にとって、またグラフィックス・デバイスによるアクセスにとって必要な構造である（一実施形態においては、そのサイズが６４ＭＢになる）。
【００２４】
グラフィックス・デバイス・アクセス８２０からアドレスが与えられると、あるいはＭＭＵ  ８１０からメモリにアクセスするためのシステム・アドレスが与えられると、アドレス・リオーダ・ステージ８３５がそれらのアドレスに対するオペレーションを行う。アドレス・リオーダ・ステージ８３５は、囲い込みレジスタ８３０の内容とそれを照合することによって、与えられたアドレスが囲い込み済み領域内に含まれるか否かを判断する。そのアドレスが囲い込み済み領域内に含まれるときには、アドレス・リオーダ・ステージ８３５が、囲い込みレジスタ８３０内の他の情報、すなわちリオーダ済みアドレス・スペース８４０内のメモリをどのようにオーガナイゼーションするかということを指定する情報に基づいてそのアドレスを変換する。リオーダ済みアドレス・スペース８４０は、メモリとＣＰＵもしくはグラフィックス・デバイスの間における転送レートを最適化するために、異なる方式に従ってメモリをオーガナイゼーションすることができる。オーガナイゼーションの方式は２つ挙げられ、一方は線形オーガナイゼーション、他方はタイリング・オーガナイゼーションである。線形オーガナイゼーションされたアドレス・スペース、たとえば線形スペース８４３、８４９、および８５８はすべて、アドレス・リオーダ・ステージ８３５の観点から考えてメモリ内に逐次到来するアドレスを有する。
【００２５】
タイリングされたアドレス、たとえばタイリング済みスペース８４６、８５２、および８５５におけるアドレスは、図７に示した態様に整列される。各タイルは、そのタイル内のロケーションを行ごとにカウントするアドレスを有し、全体的な構造としては、所定のタイルの各アドレスがそれに後続するタイル内のすべてのアドレスより前のアドレスになり、それに先行するタイル内のすべてのアドレスより後のアドレスになる。一実施形態においては、タイルのサイズが２ｋＢに制限され、タイリング済みスペースの幅（タイル数により測定）が２の累乗でなければならない。タイリング済みスペース８４６、８５２、および８５５に用いられているピッチがタイリング済みスペースの幅である。しかしながら、１つのタイル内のすべてのアドレスが実際のオペランドに対応している必要はなく、したがってタイリング済みスペース８４６、８５２、および８５５内の「×」によってマークされたアドレスは、実際のオペランドに対応する必要はない。それに加えて、この種の不要なタイルは、スクラッチ・メモリ・ページに対応させることもできる。当業者にとっては明らかであろうが、上記以外のサイズ、形状、および制限を用いてタイルを設計することは可能であり、またタイル内のアドレスを図７に示した方法と異なる方法を用いて整理することもできる。
【００２６】
メモリとグラフィックス・デバイスもしくはＣＰＵのいずれか間のグラフィックス・オペランドの転送におけるシステム・リソースの最適な使用、もしくはほぼ最適な使用に向けて形状およびサイズを設定できるので、タイリング済みスペースは有用である。つまり、これらの形状は、グラフィックス・オブジェクトもしくは表面に対応するように設計される。わかりやすく述べれば、タイリング済みスペースは、システムのオペレーションの間に動的に割り当ておよび割り当て解除を行うことができる。タイリング済みスペース内におけるアドレスの整理は、各種の方法を用いて行うことが可能であり、それには図７に示した行優先（Ｘ軸）順序だけでなく、列優先（Ｙ軸）順序およびその他の整理方法も含まれる。
【００２７】
図８に戻るが、リオーダ済みアドレス・スペース８４０内のアドレスに対するアクセスは、ＧＴＴ  ８６５（グラフィックス変換テーブル）と協働するＧＴＬＢ  ８６０（グラフィックス変換ルックアサイド・バッファ）を通じてなされる。ＧＴＴ  ８６５自体は、通常、一実施形態におけるシステム・メモリ８７０内に記憶され、グラフィックス・メモリ・スペース８２５内のアドレスに割り当てられているシステム・メモリ８７０の部分の内側に記憶される必要はない。一実施形態においては、ＧＴＬＢ  ８６０およびＧＴＴ  ８６５に、アドレスのセットとシステム・メモリ８７０もしくはローカル・メモリ８７５内のロケーションのセットを関連付けするルックアップ・テーブルの形式が用いられる。この分野においてよく知られているように、ＴＬＢまたは変換テーブルは、各種の方法を用いて実装することができる。しかしながら、ＧＴＬＢ  ８６０およびＧＴＴ  ８６５は、グラフィックス・デバイスによる使用に特化されており、グラフィックス・オペランドに関するアドレスとメモリを関連付けするためにだけ使用できることから、他のＴＬＢおよび変換テーブルとは異なる。この制約は、ＧＴＬＢ  ８６０ないしはＧＴＴ  ８６５のコンポーネントによってもたらされるものではなく、むしろＧＴＬＢ  ８６０およびＧＴＴ  ８６５を包含するシステム設計によってもたらされる。ＧＴＬＢ  ８６０は、好ましくはメモリ制御ハブ内に含められ、またＧＴＴ  ８６５は、そのメモリ制御ハブを介してアクセス可能になる。
【００２８】
システム・メモリ８７０は、通常、システムのランダム・アクセス・メモリを表すが、別の形式のストレージとすることもできる。また実施形態によっては、ローカル・メモリ８７５を含まないこともある。ローカル・メモリ８７５は、通常、グラフィックス・デバイスを伴う使用のための専用メモリを表し、システムが機能する上ではなくてもよい。
【００２９】
以上の詳細な説明においては、具体的な実施形態を参照して本発明の方法および装置の説明を行ってきた。しかしながら、本発明の精神ならびに範囲はより広範であり、それから逸脱することなく、それらに対する各種の修正ないしは変更が可能であることは明らかである。したがって、本件明細書ならびに図面は、例示に過ぎず、限定を意図したものではないことを理解する必要がある。
【図面の簡単な説明】
【図１】  従来技術のグラフィックス・ディスプレイ・システムを示している。
【図２】  システムの一実施形態を示している。
【図３】  システムのオペレーションの、可能性のあるモードを表したフローチャートである。
【図４】  システムの別の実施形態を示している。
【図５】  システムのオペレーションの、可能性のあるモードを表したフローチャートである。
【図６】  システムの別の実施形態を示している。
【図７】  タイリングされたメモリを示している。
【図８】  システム内におけるメモリ・アクセスを示している。
【図１】
0004562919.tif 000002
【図２】
0004562919.tif 000003
【図３】
0004562919.tif 000004
【図４】
0004562919.tif 000005
【図５】
0004562919.tif 000006
【図６】
0004562919.tif 000007
【図７】
0004562919.tif 000008
【図８】
0004562919.tif 000009