(57)【要約】メモリコントローラハブが、データに対してグラフィックスオペレーションを実行するように構成されたグラフィックスサブシステムと、グラフィックスデータを記憶するためにグラフィックスサブシステムに利用可能であり、かつグラフィックスデータを記憶するため該メモリコントローラハブに接続されたグラフィックスコントローラに利用可能な物理メモリ内のロケーションのアドレスを記憶するよう採用されたキャッシュとを備えている。
2004510250.tif 000002
【特許請求の範囲】
【請求項１】
データに対してグラフィックスオペレーションを実行するように採用されたグラフィックスサブシステムと、
グラフィックスデータを記憶するためにグラフィックスサブシステムに利用可能でありかつグラフィックスデータを記憶するためメモリコントローラハブに接続されたグラフィックスコントローラに利用可能な物理メモリ内のロケーションのアドレスを記憶するように採用されたキャッシュとを備えてなるメモリコントローラハブ。
【請求項２】
グラフィックスコントローラをメモリコントローラハブに接続する専用のバスインタフェースをさらに備えている請求項１に記載のメモリコントローラハブ。
【請求項３】
専用のバスインタフェースが加速グラフィックスポート（ＡＧＰ）を備えている請求項２に記載のメモリコントローラハブ。
【請求項４】
グラフィックスサブシステムによる使用のために線形の仮想メモリアドレスのブロックを提供するように配置構成されたメモリコントローラハブであって、
キャッシュが、線形の仮想メモリアドレスのブロック内のアドレスに対応する物理メモリ内のロケーションのアドレスを記憶するように採用されている請求項１に記載のメモリコントローラハブ。
【請求項５】
グラフィックスコントローラによる使用のために線形の仮想メモリアドレスのブロックを提供するように配置構成されたメモリコントローラハブであって、
キャッシュが線形の仮想メモリアドレスのブロック内のアドレスに対応する物理メモリ内のロケーションのアドレスを記憶するように採用されている請求項１に記載のメモリコントローラハブ。
【請求項６】
グラフィックスコントローラによる使用のために線形の仮想メモリアドレスの第一ブロックを提供するように配置構成され、かつグラフィックスサブシステムによる使用のために線形の仮想メモリアドレスの第二ブロックを提供するように採用されたメモリコントローラハブであって、
キャッシュが、線形の仮想メモリアドレスの第一ブロック内のアドレスに対応する物理メモリ内のロケーションのアドレスを記憶し、かつ線形の仮想メモリアドレスの第二ブロック内のアドレスに対応する物理メモリ内のロケーションのアドレスを記憶するように採用されている請求項１に記載のメモリコントローラハブ。
【請求項７】
ＣＰＵと、
表示装置と、
ビデオデータ及び非ビデオデータを記憶するように採用されたシステムメモリと、
ＣＰＵに接続されかつシステムメモリに接続されたメモリコントローラハブとを備えたコンピュータシステムであって、
該メモリコントローラハブが、
グラフィックスデータに対してグラフィックスオペレーションを実行するように配置構成されたグラフィックスサブシステムと、
グラフィックスデータを記憶するためにグラフィックスサブシステムに利用可能であり、かつグラフィックスデータを記憶するため該メモリコントローラハブに接続されたグラフィックスコントローラに利用可能な物理メモリ内のロケーションのアドレスを記憶するように採用されたキャッシュとを備えてなるコンピュータシステム。
【請求項８】
グラフィックスコントローラをメモリコントローラハブに接続する専用のバスインタフェースをさらに備えている請求項７に記載のコンピュータシステム。
【請求項９】
専用のバスインタフェースが加速グラフィックスポート（ＡＧＰ）を備えている請求項８に記載のコンピュータシステム。
【請求項１０】
メモリコントローラハブが、グラフィックスサブシステムによる使用のために線形の仮想メモリアドレスのブロックを提供するように配置構成され、かつ
キャッシュが、線形の仮想メモリアドレスのブロック内のアドレスに対応する物理メモリ内のロケーションのアドレスを記憶するように採用されている請求項７に記載のコンピュータシステム。
【請求項１１】
メモリコントローラハブが、グラフィックスコントローラによる使用のために線形の仮想メモリアドレスのブロックを提供するように配置構成され、かつ
キャッシュが、線形の仮想メモリアドレスのブロック内のアドレスに対応する物理メモリ内のロケーションのアドレスを記憶するように採用されている請求項７に記載のコンピュータシステム。
【請求項１２】
メモリコントローラハブが、グラフィックスコントローラによる使用のために線形の仮想メモリアドレスの第一ブロックを提供するように配置構成されるとともに、グラフィックスサブシステムによる使用のために線形の仮想メモリアドレスの第二ブロックを提供するように採用され、かつ
キャッシュが、線形の仮想メモリアドレスの第一ブロック内のアドレスに対応する物理メモリ内のロケーションのアドレスを記憶するように採用されるとともに、線形の仮想メモリアドレスの第二ブロック内のアドレスに対応する物理メモリ内のロケーションのアドレスを記憶するように採用されている請求項７に記載のコンピュータシステム。
【請求項１３】
メモリコントローラハブのキャッシュ内に物理的メモリ内のロケーションのアドレスを記憶する方法であって、
物理メモリ内のロケーションが、該メモリコントローラハブに接続されたグラフィックスコントローラに利用可能であるか、又は該メモリコントローラハブのグラフィックスサブシステムに利用可能である方法。
【請求項１４】
グラフィックスサブシステムによる使用のためにメモリコントローラハブ内に線形の仮想メモリアドレスのブロックを提供し、かつ
該線形の仮想メモリアドレスのブロック内のアドレスに対応する物理メモリ内のロケーションのキャッシュアドレスを記憶することをさらに含む請求項１３に記載の方法。
【請求項１５】
グラフィックスコントローラによる使用のためにメモリコントローラハブ内に線形の仮想メモリアドレスのブロックを提供し、かつ
該線形の仮想メモリアドレスのブロック内のアドレスに対応する物理メモリ内のロケーションのキャッシュアドレスを記憶することをさらに含む請求項１３に記載の方法。
【請求項１６】
グラフィックスコントローラによる使用のためにメモリコントローラハブ内に線形の仮想メモリアドレスのブロックを提供し、かつ該線形の仮想メモリアドレスのブロック内のアドレスに対応する物理メモリ内のロケーションのキャッシュアドレスを記憶するか、又は
グラフィックスサブシステムによる使用のためにメモリコントローラハブ内に線形の仮想メモリアドレスのブロックを提供し、かつ該線形の仮想メモリアドレスのブロック内のアドレスに対応する物理メモリ内のロケーションのキャッシュアドレスを記憶することをさらに含む請求項１３に記載の方法。
【発明の詳細な説明】
【０００１】
背景
本発明はメモリコントローラハブのキャッシングに関する。
【０００２】
マイクロコンピュータシステムは、一般に、コンピュータのシステムメモリ、中央処理装置（ＣＰＵ）、及び周辺機器の間のデータの転送を制御し調整する１又は２以上のメモリコントローラハブを備えている。グラフィックスアプリケーションは、グラフィックスコントローラ、システムメモリ及びＣＰＵの間でデータを転送するためメモリコントローラハブを必要とするグラフィックスコントローラとして知られている周辺機器によってサポートすることができる。
【０００３】
マイクロコンピュータシステムに関連する設計上の問題点は、二次元（２Ｄ）、三次元（３Ｄ）及びビデオの画像（以後、総合的に「グラフィックス」と呼称する）の処理の品質である。高性能のグラフィックス処理を行うには、プロセッサ集約的計算と大量データの高速処理が必要である。完成システムのコストを下げかつそのコンピュータシステムの性能を向上させながら、高性能のグラフィックス処理を達成するため、いくつもの設計が行われている。
【０００４】
コンピュータシステムは、グラフィックスコントローラとシステムメモリ及び／又はＣＰＵの間で転送しなければならないデータの量を減らすために、グラフィックスデータを記憶する局所メモリに接続されたグラフィックスコントローラを備えているとよい。そのグラフィックスコントローラに使える局所メモリの量が増加すると、グラフィックスの性能は改善されるが、局所グラフィックスメモリが比較的高価なので、コンピュータシステムのコストも増加する。しかし、専用のバス、例えば加速グラフィックスポート（ＡＧＰ）を使用して該コントローラを該メモリコントローラハブに接続すると、同じグラフィックス性能を達成するのに必要な局所メモリの量は少なくなる。ＡＧＰは、該コントローラが、システムメモリの部分を専用の局所グラフィックスメモリとして扱うことを許容するので、局所メモリの必要量が減少して全システムのコストが低下する。
【０００５】
また、コンピュータシステムのコストは、周辺グラフィックスコントローラを除いて、その機能をメモリコントローラハブに統合することによって減らすことができる。このような配置構成では、そのメモリコントローラハブは、メモリを制御し転送する機能に加えてグラフィックスを処理する機能を実行するので、グラフィックス／メモリコントローラハブであるといった方が適切である。その上に、そのメモリコントローラハブは、外部機器、例えば陰極線管（ＣＲＴ）やフラットパネルモニタなどにグラフィックス信号を送る１又は２以上の出力ポートを備えている。グラフィックス／メモリコントローラハブは、グラフィックスデータを記憶する局所メモリに接続することができる。
【０００６】
詳細な説明
コンピュータシステムにおいて、メモリコントローラハブは内部グラフィックスコントローラと統合することができるので、ＡＧＰポートを通じて外部グラフィックス装置とインタフェースすることができる。該メモリコントローラハブは、グラフィックスとメモリ両者の機能を制御するので、グラフィックス／メモリコントローラハブ（ＧＭＣＨ）と呼称される。このＧＭＣＨは、内部グラフィックス処理と拡大縮小可能なグラフィックス性能の両方を、ＡＧＰインタフェースを通じて提供する。
【０００７】
このＧＭＣＨは、二つの相互に排他的なモードすなわちＡＧＰモード又はＧｆｘモードの一方に使用することができ、ＡＧＰモードの場合、ＧＭＣＨは外部グラフィックスコントローラとインタフェースするその性能を使用するのでその内部グラフィックス機能は動作不能になり、Ｇｆｘモードの場合、ＧＭＣＨはその内部グラフィックス性能を使用するので、外部グラフィックスコントローラとインタフェースするその性能は動作不能になる。Ｇｆｘモードにおいて、ＧＭＣＨはさらに、ＡＧＰポートを通じて局所メモリモジュールとインタフェースして、内部グラフィックスによる使用のために追加のグラフィックスメモリを提供できる。ＧＭＣＨがＡＧＰモードで作動するか又はＧｆｘモードで作動するかは、コンピュータの起動シーケンス中に、自動的に決定して設定することができる。
【０００８】
図１は、ＧＭＣＨを利用できる典型的なコンピュータシステム１を示す。コンピュータシステム１は、ＧＭＣＨ３に接続されたマイクロプロセッサ（例えばＣＰＵ）２を備え、そのＧＭＣＨ３はシステムメモリコントローラハブを含んでいる。ＧＭＣＨ３は「チップセット（ｃｈｉｐｓｅｔ）」又は「コアロジック（ｃｏｒｅ ｌｏｇｉｃ）」と呼ばれることもある。ＧＭＣＨ３は、ＣＰＵ２とシステムメモリ４の間、及びＣＰＵ２とバス例えば周辺要素インターコネクト（ＰＣＩ）バスすなわちＨｕｂｌｉｎｋ（商標）バス５の間のインタフェースを提供している。各種の入力／出力（Ｉ／Ｏ）装置６がＰＣＩバス５に接続され、そのＰＣＩバス５は、入力／出力コントローラハブ（ＩＣＨ）１１を介してＧＭＣＨ３に接続されている。また、コンピュータシステム１はグラフィックス装置７を備えていてもよく、そのグラフィックス装置７は、局所メモリ８に接続されたグラフィックスコントローラであってもよく、またはＧＭＣＨ３の内部グラフィックス機能のための外部局所メモリを提供するＡＧＰインラインメモリモジュール（ＡＩＭＭ）であってもよい。共用ＡＧＰ／局所メモリインタフェース９は、ＧＭＣＨ３とグラフィックス装置７の間に専用のインタフェースバスを提供している。グラフィックス信号とビデオ信号は、グラフィックス装置７がコンピュータシステム中に存在している場合、そのグラフィックス装置７から表示装置１０に送ることができ、又はグラフィックス装置７が存在していない場合、ＧＭＣＨ３から表示装置１０に送ることができる。
【０００９】
図２は、ＧＭＣＨ３の他の細部すなわちＡＧＰインタフェース２１に接続されたＣＰＵインタフェース２０、局所メモリインタフェース２２、入力／出力（Ｉ／Ｏ）ハブインタフェース２３、及びシステムメモリインタフェース２４を示す。グラフィックス機能は内部グラフィックス要素２５によって実行することができ、その内部グラフィックス要素２５は、データの流れと各種グラフィックスエンジン２７を管理してデータに対してグラフィックスアプリケーションを実行するデータストリーム及びディスパッチのコントローラ２６を備えている。
【００１０】
図３と図４を参照すると、ＡＧＰトランザクション（ＡＧＰ処理）が、システムメモリ４へ又はシステムメモリ４からのデータ転送の要求が、データ転送自体から適時に切り離されるスプリットトランザクション方式（ｓｐｌｉｔ ｔｒａｎｓａｃｔｉｏｎ ｆａｓｈｉｏｎ）で実行されている。ＡＧＰコンプライアント（ＡＧＰ ｃｏｍｐｌｉａｎｔ）グラフィックス装置（バスマスタ）７ａが、アクセス要求によってトランザクションを開始する。ＡＧＰインタフェース２１は、対応するデータ転送を遅れて指示することによってアクセス要求に応答し、その結果、ＡＧＰグラフィックス装置７ａは、データ転送が起こるのを待ちながらいくつものアクセス要求をパイプラインでつなげるようになる。パイプラインでつないだ結果、いくつもの読み取り及び／又は書き込みのアクセス要求が、要求待ち行列１００に同時に、未処理のままのことがある。アクセス要求は、ＡＧＰ９のアドレス／データバス（ＡＤバス）１０５、１０７を横切ってパイプラインでつなぐか又はＡＧＰ９のサイドバンドアドレスライン１０７を通じて転送して、要求待ち行列１００が受け取ることができる。
【００１１】
スケジューラ１０２が要求待ち行列１００中のアクセス要求を処理する。読み取りデータは、システムメモリ４から得られ、そしてスケジューラ１０２のイニシアチブで、読み取りデータ戻り待ち行列１０４を通じてかつＡＧＰ９のＡＤバス１０５を横切って戻される。書き込みデータは、書き込みデータ待ち行列１０８に利用できるスペースがあるとき、スケジューラ１０２の指示で、ＡＧＰコンプライアントグラフィックスコントローラ７によって提供される。したがって、ＡＧＰトランザクションは一般にとじ込まれたアクセス要求とデータ転送を含んでいる。
【００１２】
グラフィックスデータは、ＧＭＣＨ３が外部ＡＧＰコンプライアントグラフィックスコントローラ７ａとともにＡＧＰモードで作動しているときに、又はＧＭＣＨ３がその内部グラフィックス機能を使用してＧｆｘモードで作動しているとき、システムメモリ４に記憶することができる。ＧＭＣＨ３は、システムメモリ４を使用してグラフィックスデータを記憶するとき、グラフィックスデータにアクセスするために仮想メモリアドレス指定概念（ｖｉｒｔｕａｌ ｍｅｍｏｒｙ ａｄｄｒｅｓｓｉｎｇ ｃｏｎｃｅｐｔ）を利用する。ＡＧＰモードでは、３２ＭＢ又は６４ＭＢのグラフィックスアパチャ（ｇｒａｐｈｉｃｓ ａｐｅｒｔｕｒｅ）が、グラフィックスコントローラ７ａによって物理システムメモリ４中のグラフィックスアパチャのアドレスをアクセスし得ることを通じて定義されている。そのグラフィックスアパチャは、３２ＭＢ又は６４ＭＢの連続ブロックの線形メモリとしてグラフィックスコントローラ７ａに出現するが、ＡＧＰグラフィックスコントローラ７ａが使うために割り当てられた物理システムメモリ内のアドレスは連続していない。グラフィックスアパチャ内のメモリアドレスの連続ブロックによって、グラフィックスコントローラ７ａは、仮想メモリ中の単一エンティティとしての大きいデータ構造体、例えばテクスチャビットマップ（一般に１ＫＢ〜１２８ＫＢ）に、迅速にアクセスできるようになる。
【００１３】
グラフィックスコントローラ７ａからのアクセス要求は、アパチャ範囲内の仮想メモリをアドレス指定し、次にＧＭＣＨ３は、アパチャ内のアクセス要求を、物理システムメモリ４に転送する。グラフィックスコントローラ７ａから送られる、最初に発行されたアドレスは、グラフィックスアドレスリマッピングテーブル（Ｇｒａｐｈｉｃｓ Ａｄｄｒｅｓｓ Ｒｅｍａｐｐｉｎｇ Ｔａｂｌｅ）（ＧＡＲＴ）を使用して、データストリームコントローラ２６内で変換される。ＧＡＲＴは、アパチャ範囲内の仮想メモリアドレスを、対応する物理メモリアドレスにマッチさせているテーブルである。そのＧＡＲＴは、ＧＭＣＨ３に知られているロケーションのシステムメモリに記憶されるが、それは、そのロケーションがＧＭＣＨ３内のレジスタ内に記憶されているからである。アドレスは、グラフィックスアパチャからシステムメモリ中に、複数の４ＫＢページでマップされており、そしてＧＡＲＴの各エントリは一つの４ＫＢページを変換する。したがって、アクセス要求を、グラフィックスコントローラ７ａからグラフィックスアパチャ内に受け取ると、その要求は直ちにストール（ｓｔａｌｌ）されるが、適切なＧＡＲＴのエントリがシステムメモリ４から取り出される。グラフィックスアパチャ内のアクセス要求のアドレスは、前記取り出された変換テーブルエントリを用いて変換され、そのアクセス要求は、前記取り出されたＧＡＲＴエントリによって識別されたシステムメモリ４内の物理アドレスに転送される。
【００１４】
ＡＧＰグラフィックスコントローラ７ａからシステムメモリ４へのメモリアクセス要求を速めるため、ＧＭＣＨ３は、ＧＡＲＴからの４エントリまで局所記憶するためのＧＡＲＴエントリキャッシュ（ＧＡＲＴ ｅｎｔｒｙ ｃａｃｈｅ）２８を提供している。また、ＧＡＲＴエントリキャッシュ２８は変換ルックアサイドバッファ（ｔｒａｎｓｌａｔｉｏｎ ｌｏｏｋａｓｉｄｅ ｂｕｆｆｅｒ）（ＴＬＢ）としても知られている。ＧＡＲＴエントリが、最初に、システムメモリ４中のＧＡＲＴから検索されて、仮想アドレスを物理アドレスに変換すると、そのエントリは、データストリームコントローラ２６中に存在しているＴＬＢ２８に記憶することができる。次に、グラフィックスコントローラ７ａからのアドレス要求が同じＧＡＲＴエントリを使用することを必要とするとき、そのエントリは、離れたシステムメモリ４内のＧＡＲＴからではなくて局所ＴＬＢ２８から検索することができる。ＧＡＲＴのエントリはＴＬＢ２８内に記憶することができかつ各ＧＡＲＴエントリはメモリアドレスの４ＫＢページにアクセスするので、グラフィックスコントローラ７ａからの１６ＫＢまでのアクセス要求は、新しいＧＡＲＴエントリをシステムメモリ４から検索しなければならなくなる前に、ＴＬＢ２８内に局所記憶されたＧＡＲＴエントリを使って変換することができる。データストリームコントローラ２６が、ＴＬＢ２８内に局所記憶されていないＧＡＲＴエントリを使用する必要がある場合、必要なエントリは、システムメモリ４から検索し、次いで将来使用するためにＴＬＢ２８内に記憶させて、ＴＬＢ２８内に予め記憶されていたエントリを置換することができる。
【００１５】
図２に戻ると、Ｇｆｘモードでは、ＧＭＣＨ３の内部グラフィックスエンジン２７が、内部グラフィックスエンジン２７によって物理システムメモリ４又はＡＩＭＭ内の論理アドレススペースのアドレスにアクセスし得ることを通じて、６４ＭＢの論理アドレススペースを定義している。その論理アドレススペースは、線形メモリの３２ＭＢもしくは６４ＭＢの連続ブロックとして、グラフィックスコントローラ７ａに出現するが、内部グラフィックスエンジン２７による使用のために割り当てられた物理システムメモリ４又はＡＩＭＭ内のアドレスは連続していない。論理アドレススペース内のメモリアドレスの連続ブロックは、ＡＧＰモードで使用されるグラフィックスアパチャと同様に、内部グラフィックスエンジン２７が、仮想メモリ内の単一エンティティとして迅速に大きなデータ構造体にアクセスできるようにする。
【００１６】
内部グラフィックスエンジン２７からのアクセス要求は、グラフィックス変換テーブル（ＧＴＴ）（ＧＭＣＨ３内のレジスタ内でＧＭＣＨ３が記憶しているロケーション内のシステムメモリ内に記憶されている）を使用して、データストリームコントローラ２６内で変換される。論理アドレススペース内のアドレスは、複数の４ＫＢページのシステムメモリ又はＡＩＭＭにマップされ、そして該ＧＴＴの各エントリは一つの４ＫＢページを変換する。その上に、ＧＴＴエントリは、ＡＩＭＭカードが存在している場合、アクセス要求がシステムメモリ４又はＡＩＭＭメモリにマップされるかどうかを決定する。ＧＡＲＴエントリをキャッシュするためＧＭＣＨ３内で使用される同じＴＬＢ２８は、物理メモリに対するアクセスを速めるため、ＧＴＴから局所的に４エントリまでを記憶するのに使用できる。ＴＬＢ２８に記憶できるＧＡＲＴエントリ又はＧＴＴエントリの数は、ＴＬＢの物理的ダイエリアの大きさ（ｐｈｙｓｉｃａｌ ｄｉｅ ａｒｅａ ｓｉｚｅ）によって制限されるので、ＡＧＰモードでＧＡＲＴエントリを記憶するために及びＧｆｘモードでＧＴＴエントリを記憶するのに同じＴＬＢを使用すると、ＴＬＢ内に記憶できるＧＡＲＴエントリ又はＧＴＴエントリの数は、もし、ＧＡＲＴエントリとＧＴＴのエントリに対して別々にＴＬＢを使用するならば記憶できるであろう数と比べて事実上２倍になる。さらに、ＡＧＰモードでＧＡＲＴエントリを記憶するのに及びＧｆｘモードでＧＴＴエントリを記憶するのに同じＴＬＢを使用すると、単一論理がＴＬＢの両方の機能に役立つので、ＧＭＣＨ３の内部論理が簡単になる。
【００１７】
他の実施態様は本願の特許請求の範囲の範囲内に入っている。
【図面の簡単な説明】
【図１】コンピュータシステムの概略ブロック図である。
【図２】グラフィックスメモリコントローラハブの概略ブロック図である。
【図３】グラフィックスメモリコントローラハブの加速グラフィックスポート（ａｃｃｅｌｅｒａｔｅｄ ｇｒａｐｈｉｃｓ ｐｏｒｔ）（ＡＧＰ）の機能を示す概略ブロック図である。
【図４】グラフィックスメモリコントローラハブの加速グラフィックスポート（ａｃｃｅｌｅｒａｔｅｄ ｇｒａｐｈｉｃｓ ｐｏｒｔ）（ＡＧＰ）の機能を示す概略ブロック図である。
【図１】
2004510250.tif 000003
【図２】
2004510250.tif 000004
【図３】
2004510250.tif 000005
【図４】
2004510250.tif 000006
【国際公開パンフレット】
2004510250.tif 000007
2004510250.tif 000008
2004510250.tif 000009
2004510250.tif 000010
2004510250.tif 000011
2004510250.tif 000012
2004510250.tif 000013
2004510250.tif 000014
2004510250.tif 000015
2004510250.tif 000016
2004510250.tif 000017
2004510250.tif 000018
2004510250.tif 000019
2004510250.tif 000020
2004510250.tif 000021
2004510250.tif 000022
2004510250.tif 000023
2004510250.tif 000024
2004510250.tif 000025
2004510250.tif 000026
2004510250.tif 000027
【国際公開パンフレット（コレクトバージョン）】
2004510250.tif 000028
2004510250.tif 000029
【国際調査報告】
2004510250.tif 000030
2004510250.tif 000031
2004510250.tif 000032