(57)【要約】  一実施形態では、メモリコントローラを開示する。メモリコントローラは、割り当て論理、並べ替えテーブル、およびトランザクションアセンブラを含む。割り当て論理は、メモリチャネルにアクセスするリクエストを受信し、そのリクエストを、そのチャネル内の２つ以上の独立アドレス指定可能サブチャネルのうちの１つにアクセスするよう割り当てする。並べ替えテーブルは、２つ以上のテーブル要素を含む。各テーブル要素は、共有アドレスコンポーネントと、２つ以上の独立してアドレス可能なサブチャネルのそれぞれに対応する独立アドレスコンポーネントを含む。トランザクションアセンブラは、共有および独立アドレスコンポーネントを並べ替えテーブル要素に組み合わせ、そして、単一のメモリトランザクションを発行する。【選択図】  なし
2008544415.tif 000002
【特許請求の範囲】
【請求項１】
一のメモリチャネルにアクセスするための一のリクエストを受信し、前記リクエストを前記メモリチャネル内の２つ以上の独立してアドレス可能なサブチャネルのうちの１つにアクセスするよう割り当てる割り当て論理と、
２つ以上のテーブル要素を有し、各テーブル要素は、一の共有アドレスコンポーネントおよび前記２つ以上の独立してアドレス可能なサブチャネルのそれぞれに対応する一の独立アドレスコンポーネントを有する一の並べ替えテーブルと、
前記共有アドレスコンポーネントおよび前記独立アドレスコンポーネントを一の並べ替えテーブル要素に組み合わせ、一の単一のメモリトランザクションを発行する一のトランザクションアセンブラと、
を含むメモリコントローラ。
【請求項２】
前記サブチャネルリクエストのそれぞれは、一の独立アドレス値および一の共有アドレス値を含む請求項１に記載のメモリコントローラ。
【請求項３】
一のサブチャネルリクエストの前記共有アドレス値は、各テーブル要素に格納された前記共有アドレスコンポーネントと比較される請求項２に記載のメモリコントローラ。
【請求項４】
一のサブチャネルリクエストの前記独立アドレス値は、前記サブチャネルリクエストの前記共有アドレス値と一のテーブルエントリの前記共有アドレスコンポーネントが一致し、前記テーブルエントリの一の対応独立アドレスコンポーネントが空である場合に、前記テーブルエントリの前記対応独立アドレスコンポーネントに挿入される請求項３に記載のメモリコントローラ。
【請求項５】
前記共有アドレス値および前記独立アドレス値は、一の空のテーブル要素に格納される請求項３に記載のメモリコントローラ。
【請求項６】
前記サブチャネルリクエストを前記関連付けられるサブチャネルに転送するよう前記テーブル要素に格納される前記サブチャネルリクエストをアセンブルする一のトランザクションアセンブラをさらに含む請求項１に記載のメモリコントローラ。
【請求項７】
一のテーブル要素は、一のサブチャネルリクエストが一の関連付けられるサブチャネルに転送された後、一の空のテーブルとして前記並べ替えテーブルに戻される請求項６に記載のメモリコントローラ。
【請求項８】
前記並べ替えテーブルにおける各テーブル要素は、前記共有アドレスコンポーネントおよび前記独立アドレスコンポーネントを格納する一のレジスタを含む請求項１に記載のメモリコントローラ。
【請求項９】
各レジスタは、１つ以上の前記格納された値が有効か否かを示す一の有効ビットを含む請求項８に記載のメモリコントローラ。
【請求項１０】
前記並べ替えテーブルは、各レジスタに結合される一の比較器論理ユニットをさらに含む請求項９に記載のメモリコントローラ。
【請求項１１】
一のメモリコントローラにおいて、前記メモリコントローラに結合される一のメモリチャネルにアクセスするための一のリクエストを受信する工程と、
前記リクエストを、前記メモリチャネル内の一の関連付けられる独立してアドレス可能なサブチャネルに割り当てる工程と、
前記リクエストを、一の並べ替えテーブルにおける各テーブルエントリに対して比較する工程と、
を含む方法。
【請求項１２】
前記リクエストの一の共有アドレス値が、一のテーブルエントリの一の共有アドレスコンポーネントと一致するか否かを決定する工程と、
一致する場合は、前記テーブルエントリに対する一の独立アドレスコンポーネントが空であるか否かを決定する工程と、
をさらに含む請求項１１に記載の方法。
【請求項１３】
前記テーブルエントリに対する前記独立アドレスコンポーネントが空である場合は、前記テーブルエントリに前記リクエストを挿入する工程をさらに含む請求項１２に記載の方法。
【請求項１４】
前記リクエストを前記関連付けられるサブチャネルに転送する工程をさらに含む請求項１３に記載の方法。
【請求項１５】
前記リクエストを前記関連付けられるサブチャネルに転送した後、前記並べ替えテーブルの終わりに前記空のテーブルエントリを戻す工程をさらに含む請求項１４に記載の方法。
【請求項１６】
１つ以上のチャネルを有する一のメモリデバイスと、
前記メモリデバイスに結合され、一のメモリコントローラを有する一のチップセットと、
を含み、
前記メモリコントローラは、
一のメモリチャネルにアクセスするための一のリクエストを受信し、前記リクエストを前記メモリチャネル内の２つ以上の独立してアドレス可能なサブチャネルのうちの１つにアクセスするよう割り当てる割り当て論理と、
１つ以上のテーブル要素を有し、各テーブル要素は、一の共有アドレスコンポーネントおよび前記２つ以上の独立してアドレス可能なサブチャネルのそれぞれに対応する一の独立アドレスコンポーネントを有する一の並べ替えテーブルと、
前記共有アドレスコンポーネントおよび前記独立アドレスコンポーネントを一の並べ替えテーブル要素に組み合わせ、一の単一のメモリトランザクションを発行する一のトランザクションアセンブラと、
を含むシステム。
【請求項１７】
前記サブチャネルリクエストのそれぞれは、一の独立アドレス値および一の共有アドレス値を含む請求項１６に記載のシステム。
【請求項１８】
一のサブチャネルリクエストの前記共有アドレス値は、各テーブル要素に格納された前記共有アドレスコンポーネントと比較される請求項１７に記載のシステムコントローラ。
【請求項１９】
一のサブチャネルリクエストの前記独立アドレス値は、前記サブチャネルリクエストの前記共有アドレス値と一のテーブルエントリの前記共有アドレスコンポーネントが一致する場合に、前記テーブルエントリの一の対応独立アドレスコンポーネントに挿入される請求項１８に記載のシステム。
【請求項２０】
前記サブチャネルリクエストを前記関連付けられるサブチャネルに転送するよう前記テーブル要素に格納される前記サブチャネルリクエストをアセンブルする一のトランザクションアセンブラをさらに含む請求項１６に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムに関する。より具体的には、本発明は、メモリコントロールへのアクセスに関する。
【背景技術】
【０００２】
ユニファイドメモリアーキテクチャ（ＵＭＡ）を実装するコンピュータシステムは、ビデオメモリ用のメインメモリにアクセスするグラフィクスコントローラを具備することを特徴とする。しかし、ＵＭＡグラフィクスシステムのメモリ効率は、ＣＰＵキャッシュ線サイズ要件によって制限されうる。たとえば、グラフィクス用の理想的なメモリアクセスサイズは、４乃至１６バイトでありうる。これは、グラフィクスコントローラは、一度に１つのまたは数個のピクセルまたはテクセルを処理することができるからである。しかしながら、メモリアーキテクチャは、しばしば、ＣＰＵメモリ効率を最適化するために６４バイトＣＰＵキャッシュ線サイズに対して最適化される。この結果、平均的に、メモリから読出しされる相当量のデータがグラフィクスコントローラによって決して使用されない場合がある。
【０００３】
個々のグラフィクスコントローラの製造業者はこの過剰フェッチをより狭いメモリチャネルを使用することによって最小限にする。しかし、この解決策は、ＵＭＡベースの統合型グラフィクスコントローラでは利用可能ではない。
【０００４】
本発明を、例示的に且つ添付図面における実施形態に制限することなく説明する。添付図面では、同様の参照は、同様の要素を示す。
【発明を実施するための最良の形態】
【０００５】
メモリリクエスト並べ替えアーキテクチャを説明する。以下の本発明の詳細な説明では、多数の特定の詳細を、本発明の完全な理解のために記載する。しかし、当業者には、本発明はこれらの特定の詳細なしでも実施しうることが明らかであろう。ある場合には、周知の構造およびデバイスは、本発明を曖昧にすることを避けるため詳細にではなくブロック図形式で示す。
【０００６】
明細書中の「一実施形態」への参照は、その実施形態に関連して説明される特定の機能、構造、または特徴が本発明の少なくとも１つの実施形態に含まれることを意味する。明細書中に散見する「一実施形態では」という表現は、必ずしもすべて同じ実施形態を参照しているわけではない。
【０００７】
図１は、コンピュータシステム１００の一実施形態のブロック図である。コンピュータシステム１００は、インターフェース１０５に結合される中央演算処理ユニット（ＣＰＵ）１０２を含む。一実施形態では、ＣＰＵ１０２は、カリフォルニア州サンタクララにあるインテル社から入手可能であるＰｅｎｔｉｕｍ（登録商標）ＩＶプロセッサのＰｅｎｔｉｕｍ（登録商標）ファミリーのプロセッサである。或いは、他のＣＰＵを使用してもよい。たとえば、ＣＰＵ１０２は、複数の処理コアを使用して実施してもよい。さらに別の実施形態では、コンピュータシステム１００は、複数のＣＰＵ１０２を含んでもよい。
【０００８】
更なる実施形態では、チップセット１０７もインターフェース１０５に結合される。チップセット１０７は、メモリコントロールコンポーネント１１０を含む。メモリコントロールコンポーネント１１０は、メインシステムメモリ１１５に結合されるメモリコントローラ１１２を含みうる。メインシステムメモリ１１５は、ＣＰＵ１０２またはシステム１００に含まれる任意の他のデバイスによって実行されるデータおよび命令シーケンスを格納する。一実施形態では、メインシステムメモリ１１５は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）を含む。しかし、メインシステムメモリ１１５は、他のメモリタイプを使用して実施されてもよい。複数のＣＰＵおよび／または複数のシステムメモリといった追加のデバイスもインターフェース１０５に結合されうる。
【０００９】
メモリコントロールコンポーネント１１０は、インターフェースを介して入力／出力（Ｉ／Ｏ）コントロールコンポーネント１４０に結合されうる。Ｉ／Ｏコントロールコンポーネント１４０は、コンピュータシステム１００におけるＩ／Ｏデバイスへのインターフェースを供給する。Ｉ／Ｏコントロールコンポーネント１４０は、周辺コンポーネント相互接続（ＰＣＩ）、アクセラレーテッドグラフィクスポート（ＡＧＰ）、汎用シリアルバス（ＵＳＢ）、低ピン数（ＬＰＣ）バス、または任意の他のＩ／Ｏバス（図示せず）といったＩ／Ｏバス上の標準Ｉ／Ｏオペレーションをサポートしうる。
【００１０】
一実施形態では、グラフィクスコントローラ１６０は、チップセット１０７に結合され、また、コンピュータシステム１００に結合される表示モニタ（図示せず）にビデオグラフィクスを供給するよう実施される。グラフィクスコントローラ１６０は、ビデオメモリ用のメインメモリ１１５にアクセスする。上述したように、グラフィクスシステムとＣＰＵの両方をサポートするメモリデバイスのメモリ効率は制限される。これは、グラフィクスのメモリアクセスサイズはしばしば理想的に４乃至１６バイトであるのに対して、メモリアーキテクチャはＣＰＵメモリ効率を最適化するために６４バイトのＣＰＵ線サイズに対して最適化されるからである。
【００１１】
一実施形態では、メモリコントロールコンポーネント１１０特徴は、６４バイトのメモリトランザクションを維持しながら、グラフィクスデバイスに対するメモリリクエストサイズを減少する。ＤＤＲ  ＤＲＡＭ技術に基づいたメモリチャネルといった１つの標準メモリチャネルは、ｍ個のビットからなる幾らかの物理幅を有する。１つのメモリトランザクションは、Ｔ個の転送から、全論理幅Ｍ＝ｍ＊Ｔ／８バイトに対して構成されうる。各トランザクションにおけるバイトは、連続アドレスを有すると考えられる。以降の説明において、幅という用語は、論理幅を意味する。
【００１２】
マイクロタイリング（Micro-Tiling）は、Ｍバイト幅チャネルを、それぞれＮ＝Ｍ／Ｓバイト幅であるＳ個のサブチャネルに分割し、Ｎバイトのデータが各サブチャネル上を転送される。各サブチャネルに１つのアドレスが与えられうる。このアドレスにおける幾つかの独立アドレスビット（Ｉ）は、他のサブチャネルに与えられるアドレスにおける対応ビットとは異なりうる。各サブチャネル上を転送されるデータは、連続アドレス範囲を表すと考えられうる。しかし、各サブチャネル上のデータのブロックは、必ずしも連続アドレス範囲からのものではない。各サブチャネルは、チャネルの全メモリロケーションのサブセットを含む。
【００１３】
図２は、メモリコントローラ１１０の一実施形態を示す。一実施形態では、マルチチャンネルメモリサブシステムは、１チャネルにつき１つのマイクロタイリングメモリコントローラを有する。したがって、図２に示すように、メモリコントロールコンポーネント１１０は、２つのチャネルのそれぞれに対する２つのメモリコントローラ１１２（メモリコントローラ１およびメモリコントローラ２）を含む。各チャネルは、それぞれＮバイト幅のＳ個のサブチャネルを含む。したがって、各チャネルは、Ｍ＝Ｎ＊Ｓバイト幅でありうる。
【００１４】
図２では、メモリから読み出しするまたはメモリに書き込みするリクエストは、ピクセルまたはテクセルの２×２アレイを表しうる正方形の２×２アレイとして示す。サブチャネルに割り当てられる前のリクエストを示す。サブチャネル割り当て後、リクエストは、サブチャネル割り当てを示すよう番号０〜（Ｓ−１）が付けられる。メモリコントロールコンポーネント１１０に結合されるリクエスタ２０５へのＮバイトの戻りは、読出しトランザクションの場合に発生する。
【００１５】
メモリコントロールコンポーネント１１０は、メモリコントローラ１１２に結合されるチャネル割り当て論理２１０を含む。チャネル割り当て２１０は、リクエスタ２０５から受信した各リクエストを、メモリコントローラ１１２を介してメモリチャネル２４０に割り当てる。さらに各メモリコントローラ１１２は、サブチャネル割り当て２１５、並べ替えバッファ２２０、およびトランザクションアセンブラ２３０を含む。したがって、リクエストは、図２に示すメモリコントローラ１またはメモリコントローラ２に割り当てられる。
【００１６】
サブチャネル割り当て２１５は、各リクエストを、１つのメモリチャネル２４０内のサブチャネルに割り当てる。並べ替えバッファ２２０はリクエストを収集して、トランザクションアセンブラ２３０が、各メモリ２４０サブチャネルに対するメモリアクセスをアセンブルすることを試みることを可能にする。一実施形態では、各サブチャンネルは、等しいＮバイト幅を有する。
【００１７】
図２に示すシステムの動作時に、アドレスＡにおけるＮバイトのデータブロックから読出しするまたはアドレスＡにおけるＮバイトのデータブロックに書込みするリクエストは、メモリコントローラ（１または２）に入り、サブチャネルに割り当てられ、並べ替えバッファ２２０内に入れられうる。一実施形態では、識別サブチャネル割り当て（ｓ）が、以下の通りに定義されうる。すなわち、リクエストアドレス（Ａ）は、Ｐ＝ｌｏｇ２（Ｎ）ビット分右にシフトされ、新しい整数値
【数１】
2008544415.tif 000003
をもたらし、ｓは、
【数２】
2008544415.tif 000004
の最下位Ｑ＝ｌｏｇ２（Ｓ）ビット
【数３】
2008544415.tif 000005
である。
【００１８】
メモリコントローラは、並べ替えバッファ２２０からＳ個の読出しリクエスト（各サブチャネルに対し１つのリクエスト）を選択することにより１つのメモリ読出しトランザクションを形成する。メモリコントローラは、並べ替えバッファ２２０からＳ個の書込みリクエスト（各サブチャネルに対し１つのリクエスト）を選択することにより１つのメモリ書込みトランザクションを形成する。共有アドレス線により表されるアドレスの部分は、トランザクションにおけるすべてのサブチャネルリクエストに対して同じでありうる。
【００１９】
図３は、物理アドレスにおけるアドレスビットの解釈の一実施形態を示す。図３に示す共有および独立アドレスビットと、サブチャネル選択ビットの選択は、Ｐ個のサブチャネルデータアドレスビットより上のアドレスビットの共有および独立アドレスビットと、サブチャンネル選択ビットへの分割は任意であるので、説明目的に過ぎない。独立アドレスビットは、サブチャネル全体にわたって異なり、必ずしも連続しない。１つのサブチャネルに送信されるアドレスビットは、そのサブチャネルの共有アドレスビットと独立アドレスビットである。
【００２０】
図４は、４つの１６バイトリクエストから６４バイトトランザクションをアセンブルするメモリコントロールコンポーネント１１０の一実施形態を示す。ここでは、単一のチャネルだけを示す。図４は、各サブチャネルに対する並べ替えキューとして実施される並べ替えバッファ２２０を示す。しかし、他の実施形態では、並べ替えバッファ２２０は、他のメカニズムを介して実施されてもよい。
【００２１】
この実施形態では、トランザクションアセンブラ２３０は、複数の１６Ｂリクエストから１つの６４Ｂメモリリクエストを構成する（各サブチャネルに対して１つのメモリリクエスト）。メモリリクエストを形成するすべての１６Ｂリクエストは、同じ共有アドレスビットを有する。したがって、アセンブラ２３０は、リクエストが共通の共有アドレスを有するか否かに基づいて単一のトランザクションにアセンブル可能なリクエストをキューから探す。
【００２２】
なお、図４に示す実施形態では、アセンブラ２３０は、サブチャネル１ｃに対するリクエストを見つけることができない。１つのトランザクションを形成することを試みる場合に、メモリコントローラは、すべてが同じ共有アドレスセグメントを有する（たとえば、各共有アドレスビットの値はすべてのリクエストに対して同じである）ような各サブチャネルに対するリクエストを見つけることができない場合がある。
【００２３】
サブチャネルが、対応するキューにおいてリクエストにより満たすことができない場合、そのサブチャネルからまたはそのサブチャネルには転送が行われえない。一実施形態では、サブチャネルが、リクエストにより満たされることができない場合、任意のロケーションが読出しされ、その結果は廃棄されうる。代替実施形態では、サブチャネル毎に追加の制御線が含まれうる。この制御線は、サブチャネルへの対応リクエストがない場合にそのサブチャネルの電源を切るよう使用されうる。
【００２４】
上述した実施形態では、トランザクションアセンブラ２３０は、各並べ替えキューからのサブチャネルリクエストを選択することによってチャネルリクエストをアセンブルする。しかし、代替実施形態では、各サブチャネルに別個の並べ替えキューが関連付けられるのではなく並べ替えテーブルが実施されて、サブチャネルリクエストが格納されうる。
【００２５】
図５は、並べ替えテーブル５２０を通るリクエストのフローを有するメモリコントロールコンポーネント１１０の一実施形態を示す。この実施形態では、１つのリクエストは、共有アドレスコンポーネントおよび独立アドレスコンポーネントを含むものとして表しうる。図５では、共有アドレスコンポーネントには、異なるまたは同じ値を示すようパターンが付けられる。リクエストの独立アドレスコンポーネントは、サブチャネルが割り当てられる前は空白でありうる。一実施形態では、ｌｏｇ２（Ｎ）サブチャネルデータアドレスビットは、このレベルにおいてメモリトランザクションに関係がないので示さない。同様に、実際の転送データも示さない。
【００２６】
並べ替えテーブル５２０のテーブル要素は、それぞれ、１つの共有アドレスコンポーネントと、Ｓ個の独立アドレスコンポーネント（１つの独立アドレスコンポーネントが各サブチャネルに対応する）を有する。図５に示すように、共有アドレス値がまだ割り当てられていないことを示すよう１つのテーブル要素は空白である。各独立アドレスコンポーネントも、独立アドレス値が割り当てられるまで空白でありうる。
【００２７】
図５において、サブチャネル割り当て後、リクエストの独立アドレスコンポーネントは、それが割り当てられるサブチャネルを示すようラベル付けされうる（たとえば、サブチャネル１ａに対する１ａ、サブチャネル１ｂに対する１ｂ青など）。次に、共有アドレス値が、各テーブルエントリに格納された共有アドレス値と比較されうる。一致して、テーブルエントリにおける対応サブチャネルアドレスコンポーネントが利用可能である場合、独立アドレス値は、そのサブチャネルアドレスコンポーネントに入れられうる。サブチャネルアドレスコンポーネントがすでに値を含む場合、一致する共有アドレス値を有するテーブルエントリの検索が続けられる。検索が不成功に終わる場合、そのリクエストの共有および独立アドレス値は、空のテーブルエントリに入れられる。
【００２８】
図５は、Ｓ＝４個のサブチャネルがあり、最大テーブル深度Ｄ＝８である特定の例を示す。ＳおよびＤは共に任意の値であることが可能であり、それにより、並べ替えテーブル５２０に対し多数の可能な構成が形成される。トランザクションを発行する目的で、テーブルエントリが選択され、トランザクションアセンブラ２３０に転送されうる。次に、将来の使用のために並べ替えテーブル５２０に空のテーブルエントリとして戻される。
【００２９】
一実施形態では、アセンブラ２３０は、１つの並べ替えテーブル５２０行上の複数の１６バイトリクエストから１つの６４バイトのメモリリクエストを構成し、すべてのサブスパンは、同じ共有アドレスビットを有する。さらに、選択されたテーブルエントリにおけるサブチャネルコンポーネントが空である場合、トランザクションアセンブラ２３０は、メモリ読出しのためにサブスパンリクエストを推測的に挿入することができる。
【００３０】
図６は、そのようなメカニズムを実施する並べ替えテーブル５２０の一実施形態を示す。並べ替えテーブル５２０は、リングバッファエントリおよび論理６２０と称する比較器論理ユニットのリングを含む。図７は、リングバッファエントリおよび論理６２０の一実施形態を示す。
【００３１】
図６を再び参照するに、テーブルエントリは、単一の共有アドレス値と各サブチャネルに対する独立アドレス値を格納可能なレジスタとして表されうる。テーブルエントリは、現在の格納された値が有効であるか否かを示す有効ビットを有する一連のレジスタとして実施されうる。出力リクエストは、テーブルエントリを選択し、それをトランザクションアセンブラ２３０に出すことによって生成される。その場合、対応するテーブルエントリコンポーネントは無効とマーク付けられる。
【００３２】
一実施形態では、各テーブルエントリは、論理ユニット６２０に結合されうる。さらに、各入来リクエストは、トランザクションアセンブラ２３０に供給されるよう、テーブルエントリ選択論理６３０により選択される次のテーブルエントリに関連付けられる論理ユニット６２０においてリングに挿入されうる。共有アドレス値、独立アドレス値、およびサブチャネル割り当てを含む入来リクエストは、以下のように関連付けられるテーブルエントリと比較されうる。
【００３３】
最初に、テーブルエントリにおける共有アドレス値が有効ではない場合、リクエスト内の共有アドレス値はテーブルエントリにコピーされうる。リクエストにおける独立アドレス値は、テーブルエントリにおける対応サブチャネルアドレスコンポーネントにコピーされうる。テーブルエントリの両方の要素は、有効とマーク付けられる。次に、リクエストは廃棄される。
【００３４】
しかし、リクエストとテーブルエントリにおける共有アドレス値が等しく、また、テーブルエントリにおける割り当てられたサブチャネルの独立アドレス値が有効ではない場合、リクエストにおける独立アドレス値が、テーブルエントリに書込みされ、有効とマーク付けされうる。次にリクエストは廃棄される。そうではない場合、リクエストは次に続くリングバッファ要素に送られ、処理が繰り返される。一実施形態では、すべてのリングバッファエントリに対する比較が不成功に終わると、入来リクエストは、出力リクエストが生成され、それにより、リングバッファエントリが空くまでストールされうる。
【００３５】
図８は、そのようなメカニズムを実施する並べ替えテーブル５２０の別の実施形態を示す。並べ替えテーブル５２０は、比較および選択論理８２０と称する比較器論理ユニットのリングを含む。図９は、比較および選択論理８２０の一実施形態を示す。
【００３６】
図８を再び参照するに、テーブルエントリは、単一の共有アドレス値と各サブチャネルに対する独立アドレス値を格納可能なレジスタとして表されうる。テーブルエントリは、現在の格納された値が有効であるか否かを示す有効ビットを有する一連のレジスタとして実施されうる。出力リクエストは、最高優先順位テーブルエントリを選択し、それをトランザクションアセンブラ２３０に出すことによって生成される。その場合、対応するテーブルエントリコンポーネントは無効とマーク付けられる。
【００３７】
一実施形態では、各テーブルエントリは、論理ユニット８２０に結合される。さらに、各入来リクエストは、各論理８２０ユニットによって見られる。各論理８２０ユニットは、共有アドレス値、独立アドレス値、およびサブチャネル割り当てを含む入来リクエストを、以下のように関連付けられるテーブルエントリと比較する（「入来リクエスト比較」）。
【００３８】
最初に、テーブルエントリにおける共有アドレス値が有効ではない場合、比較は成功する。そうではない場合、リクエストおよびテーブルエントリにおける共有アドレス値が等しく、テーブルエントリにおける割り当てられるサブチャネルの独立アドレス値が有効ではない場合、比較は成功する。そうではない場合、比較は不成功に終わる。
【００３９】
一実施形態では、各論理８２０ユニットは、固定および一意のテーブルエントリＩｄを有し、これを、トランザクションアセンブラ２３０に供給されるようテーブルエントリ選択論理６３０により選択される最高優先順位テーブルエントリと比較する。最高優先順位エントリにより行われる入来リクエスト比較が成功する場合、リクエストにおける共有アドレス値は、テーブルエントリにコピーされ、リクエストにおける独立アドレス値は、テーブルエントリにおける対応サブチャネルアドレスコンポーネントにコピーされる。テーブルエントリにおける両方の要素は、有効とマーク付けされる。次に、リクエストは廃棄される。
【００４０】
そうでなければ、優先順位リングの次のテーブルエントリにより行われる入来リクエスト比較が成功する場合、入来リクエストはそのテーブルエントリにコピーされる。そうでなければ、この処理は、入来リクエスト比較が成功するテーブルエントリが見つかるまで繰り返される。入来リクエスト比較のテーブルエントリが見つからない場合、入来リクエストの挿入は、出力リクエストが生成され、それにより、リングバッファエントリが空くまでストールされうる。
【００４１】
マイクロタイリングメモリサブチャネルは、共有アドレスビットおよびＩ個の独立アドレスビットによって決定される一部のアドレス範囲にある不連続のメモリアドレスにアクセス可能である。Ｉの適切な選択は、独立サブチャネルの同時並行性および帯域幅効率を増加し、これは、各サブチャネルに対してＩ個のアドレス信号を複製するコストに対してバランスがとられる。
【００４２】
図１０Ａおよび図１０Ｂは、マイクロタイリングのパフォーマンス利益を示す。各図は、タイリングされたアドレス空間における三角形のラスタライゼーションを示す。小さな四角形はそれぞれ、４バイトのピクセルまたはテクセルを表す。図１０Ａは、複数のリクエストはそれぞれ６４バイトである標準メモリシステムにおける過剰フェッチを示す。ピクセルの各４×４ブロックは、６４バイトの位置合わせされたメモリブロックを表す。三角形は、５７ピクセルを包含する。標準メモリサブシステムでは、これらの５７（ピクセルは、１１（６４バイト）のメモリブロックにある。したがって、これらの５７ピクセルにアクセスするためには、使用されない場合のある追加の１１９ピクセル相当のデータがアクセスされる（たとえば、３２％の効率がもたらされる）。
【００４３】
図１０Ｂは、複数のリクエストはそれぞれ１６バイトであり、すべてのそのようなリクエストは、未使用のサブチャネルのない６４バイトメモリトランザクションを構成するようマイクロタイルアセンブラにより使用可能である場合の過剰フェッチを示す。この場合、三角形は、２３の２×２ピクセルアレイに接触し、その結果、３５の追加ピクセル相当のデータがアクセスされる（たとえば、６２％の効率がもたらされる）。マイクロタイリングの有効性は、完全にポピュレートされたメモリトランザクションを構成するアセンブラの能力に依存する。
【００４４】
さらに、上述の並べ替えテーブルメカニズムは、出力側にリクエストを構築しようと試みるのではなく入来メモリリクエストに比較を行う。これは、比較を実行するのにより多くの時間的余裕を与え、競合条件を潜在的に回避し、比較器の数を減らす（したがって、並べ替えキューの総ゲート数を減少する）。クロック毎にＳ＊Ｄ回の比較を行うのではなく、クロック毎にＤ回の比較しかない。
【００４５】
図１１は、コンピュータシステム１００の別の実施形態を示す。この実施形態では、チップセット１０７は、別個のメモリコントロールコンポーネントおよびＩ／Ｏコントロールコンポーネントとは対照的に単一のコントロールハブ１１２０を含む。したがって、メモリコントローラ１１２は、ＣＰＵ１０２内に含められ、メモリ１１５は、ＣＰＵ１０２に結合される。このような実施形態では、グラフィクスコントローラ１６０は、コントロールハブ１１２０に結合され、ＣＰＵ１０２を介してメインメモリ１１５にアクセスする。
【００４６】
上述の説明を読んだ当業者には本発明の多くの変更および修正が疑いもなく明らかであろうが、例示的に図示および説明する任意の特定の実施形態は、制限と考えることを意図しない。したがって、様々な実施形態の詳細への参照は、請求項の範囲を制限することを意図せず、また、請求項も、本発明に本質的であるとみなされる特徴だけを示す。
【図面の簡単な説明】
【００４７】
【図１】コンピュータシステムの一実施形態を示すブロック図である。
【００４８】
【図２】メモリコントローラの一実施形態を示す図である。
【００４９】
【図３】論理仮想アドレスの一実施形態を示す図である。
【００５０】
【図４】メモリコントローラの別の実施形態を示す図である。
【００５１】
【図５】メモリコントローラのさらに別の実施形態を示す図である。
【００５２】
【図６】並べ替えテーブルの一実施形態を示す図である。
【００５３】
【図７】リングバッファエントリおよび論理の一実施形態を示す図である。
【００５４】
【図８】並べ替えテーブルの別の実施形態を示す図である。
【００５５】
【図９】比較および選択論理の一実施形態を示す図である。
【００５６】
【図１０Ａ】パフォーマンス利益を示す図である。
【００５７】
【図１０Ｂ】パフォーマンス利益を示す図である。
【００５８】
【図１１】コンピュータシステムの別の実施形態を示すブロック図である。
【図１】
2008544415.tif 000006
【図２】
2008544415.tif 000007
【図３】
2008544415.tif 000008
【図４】
2008544415.tif 000009
【図５】
2008544415.tif 000010
【図６】
2008544415.tif 000011
【図７】
2008544415.tif 000012
【図８】
2008544415.tif 000013
【図９】
2008544415.tif 000014
【図１０Ａ】
2008544415.tif 000015
【図１０Ｂ】
2008544415.tif 000016
【図１１】
2008544415.tif 000017
【国際調査報告】
2008544415.tif 000018
2008544415.tif 000019
2008544415.tif 000020