(57)【要約】【課題】マイクロタイル方式がイネーブルされたメモリを自動的に検出する。【解決手段】本発明の一実施形態において、一意的なビットパターンを持った書き込みキャッシュラインがメモリチャネルのメモリの開始アドレスに書き込まれる。メモリチャネルのメモリモジュールの各メモリ用集積回路に対してマイクロタイルメモリアクセスのイネーブルを試みる。メモリチャネルのメモリの開始アドレスから読み出しキャッシュラインを読み出す。読み出しキャッシュラインのビットパターンと、書き込みキャッシュラインのビットパターンを比較する。比較の結果、読み出しキャッシュラインのビットパターンが書き込みキャッシュラインのビットパターンとは異なることが分かった場合、メモリチャネルのメモリモジュールの各メモリ用集積回路に対してマイクロタイルメモリアクセスがイネーブルされている。比較の結果、読み出しキャッシュラインのビットパターンが書き込みキャッシュラインのビットパターンと同一であることが分かった場合、マイクロタイルメモリアクセスは、メモリチャネルのメモリモジュールの各メモリ用集積回路において、サポートされておらず、したがってイネーブルされ得ない。【選択図】図１０Ａ
2008545201.tif 000002
【特許請求の範囲】
【請求項１】
方法であって、
一のメモリチャネル内のメモリの一の開始アドレスに対して一の一意的なビットパターンを持つ一の書き込みキャッシュラインを書き込むことと、
前記メモリチャネルの複数のメモリモジュールの各メモリ用集積回路に対して複数の独立したサブチャネルメモリアクセスのイネーブルを試みることと、
前記メモリチャネルのメモリの前記開始アドレスからの一の読み出しキャッシュラインの読み出しを要求することと、
前記読み出しキャッシュラインおよび前記書き込みキャッシュラインのビットパターンを互いに比較して、各メモリ用集積回路に対して独立したサブチャネルメモリアクセスがイネーブルされているかどうか判断することと、
前記読み出しキャッシュラインのビットパターンが前記書き込みキャッシュラインと異なる場合、前記メモリチャネルの複数のメモリモジュールの各メモリ用集積回路に対して独立したサブチャネルメモリアクセスがイネーブルされていることと
を備える方法。
【請求項２】
各メモリ用集積回路に対する前記複数の独立したサブチャネルメモリアクセスは、複数のマイクロタイルメモリアクセスである
請求項１に記載の方法。
【請求項３】
前記読み出しキャッシュラインのビットパターンと前記書き込みキャッシュラインのビットパターンとが同一である場合、独立したサブチャネルメモリアクセスはサポートされておらず、前記メモリチャネルの複数のメモリモジュールの各メモリ用集積回路においてイネーブルされ得ない
請求項１に記載の方法。
【請求項４】
前記開始アドレスは、独立したサブチャネルがイネーブルされていれば、前記読み出しキャッシュラインの読み出しの要求が行われる場合、各メモリサブチャネルの前記メモリによって一の独立アドレスとして翻訳され解釈される
請求項１に記載の方法。
【請求項５】
複数の独立したサブチャネルメモリアクセスのイネーブルを試みる前に、複数のメモリエラーを検出するべく、前記メモリチャネルの前記メモリから、前記一意的なビットパターンを持つ前記書き込みキャッシュラインを読み出す
請求項１に記載の方法。
【請求項６】
前記書き込みキャッシュラインの前記一意的なビットパターンは、一のメモリテストパターンである
請求項５に記載の方法。
【請求項７】
前記書き込みキャッシュラインの前記一意的なビットパターンは、一のウォーキングワン（Ｗａｌｋｉｎｇ  Ｏｎｅ）テストパターン、一のウォーキングゼロ（Ｗａｌｋｉｎｇ  Ｚｅｒｏ）テストパターン、もしくは一のこれらの組み合わせである
請求項５に記載の方法。
【請求項８】
前記書き込みキャッシュラインの前記一意的なビットパターンは、一のチェッカーボード状のテストパターンである
請求項５に記載の方法。
【請求項９】
方法であって、
前記メモリチャネルの複数のメモリモジュールの各メモリ用集積回路に対して複数のマイクロタイルメモリアクセスのイネーブルを試みることと、
一の一意的なビットパターンを持つ一の書き込みキャッシュラインを、一のメモリチャネルのメモリの一の開始アドレスに書き込むことと、
一の一意的なビットパターンを持つ一の書き込みキャッシュラインを、一のメモリチャネルのメモリの一の開始アドレスに書き込むことと、
前記メモリチャネルの複数のメモリモジュールの各メモリ用集積回路に対して、複数のマイクロタイルメモリアクセスのディセーブルを試みることと、
前記メモリチャネルのメモリの前記開始アドレスからの一の読み出しキャッシュラインの読み出しを要求することと、
前記読み出しキャッシュラインおよび前記書き込みキャッシュラインのビットパターンを互いに比較して、各メモリ用集積回路に対してマイクロタイルメモリアクセスがイネーブルされているかどうか判断することと、
前記読み出しキャッシュラインのビットパターンが前記書き込みキャッシュラインとは異なる場合、前記メモリチャネルの複数のメモリモジュールの各メモリ用集積回路に対してマイクロタイルメモリアクセスがイネーブルされていることと
を備える方法。
【請求項１０】
前記読み出しキャッシュラインのビットパターンと前記書き込みキャッシュラインのビットパターンとが同一である場合、マイクロタイルメモリアクセスはサポートされておらず、前記メモリチャネルの複数のメモリモジュールの各メモリ用集積回路においてイネーブルされ得ない
請求項９に記載の方法。
【請求項１１】
前記開始アドレスは、マイクロタイル方式がイネーブルされていれば、前記読み出しキャッシュラインの読み出しの要求が行われる場合、各メモリサブチャネルの前記メモリによって一の独立アドレスとして翻訳され解釈される
請求項９に記載の方法。
【請求項１２】
複数のマイクロタイルメモリアクセスのイネーブルを試みる前に、複数のメモリエラーを検出するべく、前記メモリチャネルの前記メモリから、前記一意的なビットパターンを持つ前記書き込みキャッシュラインを読み出す
請求項９に記載の方法。
【請求項１３】
前記書き込みキャッシュラインの前記一意的なビットパターンは、一のメモリテストパターンである
請求項１２に記載の方法。
【請求項１４】
前記書き込みキャッシュラインの前記一意的なビットパターンは、一のウォーキングワン（Ｗａｌｋｉｎｇ  Ｏｎｅ）テストパターン、一のウォーキングゼロ（Ｗａｌｋｉｎｇ  Ｚｅｒｏ）テストパターン、もしくは一のこれらの組み合わせである
請求項１２に記載の方法。
【請求項１５】
前記書き込みキャッシュラインの前記一意的なビットパターンは、一のチェッカーボード状のテストパターンである
請求項１２に記載の方法。
【請求項１６】
メモリ用集積回路における方法であって、
一のメモリアレイの複数のメモリセルに複数のデータビットから成る一の一意的なパターンを書き込むべく、一の共有開始アドレスを受け取ることと、
複数のデータビットから成る前記一意的なパターンを、前記共有開始アドレスから始まる、前記メモリアレイの複数のメモリセルに書き込むことと、
複数のマイクロタイルメモリアクセスをイネーブルするべく、一のレジスタ内の一のマイクロタイルイネーブルビットを設定することと、
前記メモリアレイ内の複数のメモリセルから複数のデータビットを読み出すべく、前記共有開始アドレスとは異なる、一の独立した開始アドレスを受け取ることと、
前記独立した開始アドレスから始まる、前記メモリアレイの複数のメモリセルから複数のデータビットを読み出すことと
を備える方法。
【請求項１７】
複数のデータビットから成る前記一意的なパターンは、一のメモリテストパターンである
請求項１６に記載の方法。
【請求項１８】
前記書き込みキャッシュラインの前記一意的なビットパターンは、一のチェッカーボード状のテストパターンである
請求項１６に記載の方法。
【請求項１９】
メモリ用集積回路における方法であって、
複数のマイクロタイルメモリアクセスをイネーブルするべく、一のレジスタ内の一のマイクロタイルイネーブルビットを設定することと、
前記レジスタ内の複数のビット設定のステータスに対する一の要求を受け取ることと、
複数のマイクロタイルメモリアクセスをイネーブルするべく前記レジスタ内で前記マイクロタイルイネーブルビットが設定されていることの一の指定を供給することと
を備える方法。
【請求項２０】
前記レジスタは、前記メモリ用集積回路内に設けられた一のモードレジスタである
請求項１９に記載の方法。
【請求項２１】
一のマイクロタイルイネーブル信号はアクティブローな信号で、
前記マイクロタイルイネーブルビットは、前記メモリ用集積回路内において複数のマイクロタイルメモリアクセスをイネーブルするべく、０に設定される
請求項１９に記載の方法。
【請求項２２】
機械読み取り可能な製品であって、
一の機械読み取り可能な媒体を備え、当該機械読み取り可能な媒体は、
一のメモリチャネルのメモリの一の開始アドレスに、一の一意的なビットパターンを持つ一の第１のキャッシュラインを書き込むための、機械読み取り可能なプログラムコードと、
前記メモリチャネルの各メモリモジュールに対して複数のマイクロタイルメモリアクセスのイネーブルを試みるための、機械読み取り可能なプログラムコードと、
前記メモリチャネルのメモリの前記開始アドレスからの一の第２のラインの読み出しを要求するための、機械読み取り可能なプログラムコードと、
前記第１のキャッシュラインと前記第２のキャッシュラインのビットパターンを互いに比較して、各メモリモジュールに対してマイクロタイルメモリアクセスがイネーブルされているかどうか判断するための、機械読み取り可能なプログラムコードと
を格納する
機械読み取り可能な製品。
【請求項２３】
前記機械読み取り可能な媒体は、磁気記憶媒体、光学記憶媒体もしくは半導体記憶媒体のうち１以上である
請求項２２に記載の機械読み取り可能な製品。
【請求項２４】
各メモリモジュールは複数のメモリ用集積回路を有し、前記機械読み取り可能なプログラムコードは、
前記複数のメモリ用集積回路のそれぞれに対して複数のマイクロタイルメモリアクセスのイネーブルを試みて、
前記複数のメモリ用集積回路のそれぞれに対してマイクロタイルメモリアクセスがイネーブルされているかどうか判断する
請求項２２に記載の機械読み取り可能な製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は一般的にメモリに関する。本発明の実施形態は具体的には、メモリモジュールの検出およびメモリのサブチャネルに対するマイクロタイル方式のメモリアクセスをサポートするメモリ用集積回路に関する。
【背景技術】
【０００２】
メモリアクセスが均一化または統合されているメモリアーキテクチャは、統合メモリアーキテクチャ（ＵＭＡ）と呼ばれることもあるが、プロセッサとグラフィックコントローラがコスト削減を目的としてシステムメモリを共有している。ＵＭＡメモリアーキテクチャは通常、プロセッサからのシステムメモリに対するメモリ要求（読み出し／書き込みアクセス）を取り扱うべく最適化されている場合がある。つまり、ＵＭＡメモリアーキテクチャは通常、グラフィクスコントローラからのメモリ要求を後回しにする。近年では、３次元（３Ｄ）および高精度化をサポートするべく、グラフィクスに関する性能の重要性が高まっている。
【０００３】
普通のＵＭＡメモリアーキテクチャでは、プロセッサからのメモリ要求とグラフィクスコントローラからのメモリ要求の両方をサポートするべく、キャッシュメモリが６４バイトに固定されたキャッシュラインを利用している。ＵＭＡメモリアーキテクチャ内に設けられたメモリコントローラは通常、１つまたは２つのメモリチャネルを有する。各メモリチャネルは、読み出し／書き込みアクセスを実施する場合には、どのメモリモジュールについても共通して、アドレスバス内の全てのアドレスラインを利用する。通常のメモリチャネルのデータバスは普通、６４ビットのビット幅を持っているので、メモリのあるアドレスの８バイトの連続データに対して同時にアクセスできる。データバスビットのメモリモジュールに対するルーティングは、メモリの種類およびサイズに応じて変更してもよい。
【０００４】
プロセッサは通常メモリを介してアクセスした６４ビットの連続データを全て利用するが、グラフィクスコントローラは通常そうでない場合もある。ＵＭＡメモリアーキテクチャ内でグラフィクスコントローラがメモリ要求を出す場合、連続データの大半は破棄される場合もある。このため、ＵＭＡメモリアーキテクチャ内でグラふぃ来るコントローラがメモリ要求を発行した場合、メモリチャネルのバンド幅の利用が非効率となる場合がある。
【図面の簡単な説明】
【０００５】
本発明の実施形態の特徴は、以下に記載する詳細な説明から明らかとなる。
【０００６】
【図１Ａ】本発明の実施形態が利用され得る通常のコンピュータシステムを示すブロック図である。
【０００７】
【図１Ｂ】本発明の実施形態が利用され得るクライアント−サーバシステムを示すブロック図である。
【０００８】
【図２】本発明の実施形態が利用され得る第１処理部を示すブロック図である。
【０００９】
【図３Ａ】それぞれ４つのメモリサブチャネルを持つ、一対のメモリチャネルに接続されたメモリ制御ブロックを示す、概略ブロック図である。
【００１０】
【図３Ｂ】キャッシュメモリおよびそれぞれＳ本のサブチャネルを持つ一対のメモリチャネルに接続されたメモリ制御ブロックが備えるメモリコントローラを示す、詳細ブロック図である。
【００１１】
【図４Ａ】サブチャネルを用いずに線形メモリアクセスを利用した場合のメモリチャネルを介したメモリアクセスに対応した、ビデオディスプレイ上でのピクセルマッピングを示す図である。
【００１２】
【図４Ｂ】マイクロタイル方式のメモリアクセスがサポートされ２つのサブチャネルを用いた場合のメモリチャネルを介したメモリアクセスに対応した、ビデオディスプレイ上でのピクセルマッピングを示す図である。
【００１３】
【図４Ｃ】マイクロタイル方式のメモリアクセスがサポートされ４つのサブチャネルを用いた場合のメモリチャネルを介したメモリアクセスに対応した、ビデオディスプレイ上でのピクセルマッピングを示す図である。
【００１４】
【図５Ａ】６４ビット幅のメモリチャネルを介した線形の６４バイトのメモリアクセスを示す図である。
【００１５】
【図５Ｂ】一対の３２ビット幅のメモリサブチャネルを介した、一対の３２バイトのメモリアクセスである独立したサブチャネルメモリアクセスを示す図である。
【００１６】
【図５Ｃ】４つの１６ビット幅のメモリサブチャネルを介した、４つの１６バイトのメモリアクセスである独立したサブチャネルメモリアクセスを示す図である。
【００１７】
【図６】メモリチャネル用のアドレス信号ラインのビットマップを示す。
【００１８】
【図７】ホストプリント配線基板上に実装されたコネクタに接続される、マルチチップメモリモジュールを示すブロック図である。
【００１９】
【図８】メモリサブチャネルを介したマイクロタイル方式のメモリアクセスをサポートする、メモリ用集積回路を示すブロック図である。
【００２０】
【図９】１６ビット幅のメモリサブチャネルおよび１６バイトのメモリアクセスに対応する、モードレジスタに接続されたアドレスオーバーロードロジックを示す概略図である。
【００２１】
【図１０Ａ】メモリ用集積回路においてマイクロタイル方式メモリアクセスがサポートされているかどうか検出するための第１の方法を示すフローチャートである。
【００２２】
【図１０Ｂ】メモリ用集積回路においてマイクロタイル方式メモリアクセスがサポートされているかどうか検出するための第２の方法を示すフローチャートである。
【００２３】
【図１０Ｃ】メモリ用集積回路においてマイクロタイル方式メモリアクセスがサポートされているかどうか検出するための第３の方法を示すフローチャートである。
【００２４】
【図１１Ａ】図５Ａに対応する、キャッシュラインの一意的なビット列の例を示す図である。
【００２５】
【図１１Ｂ】図５Ｂに対応する、キャッシュラインの一意的なビット列の例を示す図である。
【００２６】
【図１１Ｃ】図５Ｃに対応する、キャッシュラインの一意的なビット列の例を示す図である。
【００２７】
【図１２Ａ】メモリ用集積回路においてマイクロタイル方式のメモリアクセスがサポートされているかどうか検出する場合に、識別可能なパターンを実現するためにキャッシュラインで用いることができる、ほかのビットパターンを示す。
【図１２Ｂ】メモリ用集積回路においてマイクロタイル方式のメモリアクセスがサポートされているかどうか検出する場合に、識別可能なパターンを実現するためにキャッシュラインで用いることができる、ほかのビットパターンを示す。
【図１２Ｃ】メモリ用集積回路においてマイクロタイル方式のメモリアクセスがサポートされているかどうか検出する場合に、識別可能なパターンを実現するためにキャッシュラインで用いることができる、ほかのビットパターンを示す。
【図１２Ｄ】メモリ用集積回路においてマイクロタイル方式のメモリアクセスがサポートされているかどうか検出する場合に、識別可能なパターンを実現するためにキャッシュラインで用いることができる、ほかのビットパターンを示す。
【図１２Ｅ】メモリ用集積回路においてマイクロタイル方式のメモリアクセスがサポートされているかどうか検出する場合に、識別可能なパターンを実現するためにキャッシュラインで用いることができる、ほかのビットパターンを示す。
【００２８】
上記の図面内において同様の参照番号および表示は同様の機能を持つ同様の素子を示すものとする。
【発明を実施するための最良の形態】
【００２９】
以下に本発明の実施形態を詳細に説明するが、本発明の内容を十分に理解していただくべく具体的な内容を数多く記載する。しかし、本発明の実施形態は以下に記載した具体的な内容以外に基づいても実施できることは当業者には明らかである。また、公知の方法、処理、構成要素および回路については、本発明の実施形態の側面を必要以上にあいまいにすることを避けるべく、詳細な説明を行わない。
【００３０】
統合グラフィクスコンピュータシステムのメモリ効率は通常、キャッシュラインのサイズによって限定されてしまう。グラフィクスに関して理想的なメモリアクセスサイズは多くの場合、４バイトから１６バイトのデータである。これは、グラフィクスプロセッサの動作が、一度に１または数個のピクセルまたはテクセルを取り扱うからである。しかしＵＭＡメモリアーキテクチャは、プロセッサのメモリ効率を最適化するべく、６４バイトのキャッシュラインに対して最適化されている。６４バイトのキャッシュラインを用いる場合、グラフィクスコントローラからメモリ要求を出すと、平均して、メモリから非常に大量のデータが取得されるもののグラフィクスコントローラは結局取得されたデータを使用しないという事態が発生してしまう。使用されなかったデータのことを、「過取得」と呼ぶとしてもよい。
【００３１】
マイクロタイル方式を用いることによって、集積化されたグラフィクスコントローラを持つＵＭＡメモリアーキテクチャのキャッシュライン要件を維持しつつ、グラフィクスコントローラからのメモリ要求に対する過取得を減少させることができる。一般的に言って、マイクロタイル方式は、メモリアーキテクチャもメモリコントローラアーキテクチャのどちらについても新式のものに基づいて実施される。マイクロタイルメモリアーキテクチャをサポートする新式のメモリサブシステムは、メモリチャネル内において独立したサブチャネルメモリアクセスを持つ。このような、メモリに対する独立したサブチャネルメモリアクセスは、マイクロタイルメモリアクセスと呼ばれ、一般的にマイクロタイル方式と呼ぶとしてもよい。
【００３２】
上述した新式のメモリコントローラおよびメモリアーキテクチャについても説明するが、本願が主眼においているのは、システムに接続されたメモリモジュールおよびメモリ用集積回路がマイクロタイル方式をサポートしているかどうか検出することである。
【００３３】
上述した新式のメモリアーキテクチャにより、マイクロタイルメモリアクセスをサポートできる新式のメモリモジュールおよびメモリ用集積回路が提供される。ここで、マイクロタイルメモリアクセスは、メモリチャネルのサブチャネル間に関する独立したアドレス指定能力を含む。新式のメモリモジュールおよびメモリ用集積回路は、後方互換性を有しており同一のフォームファクタを持つとしてもよい。このため、マイクロタイル方式に基づいていない旧式のシステムに接続しても利用できるとしてもよい。この場合、マイクロタイル方式がイネーブルされたメモリモジュールとそうでないメモリモジュールを識別するのが難しいことがある。マイクロタイル方式をサポートするホストプリント配線基板およびホストシステムにおいて、マイクロタイル方式がイネーブルされたメモリモジュールとイネーブルされていないメモリモジュールを共に設けることが可能である。マイクロタイル方式をサポートするシステムに対してメモリモジュールを接続し、当該メモリモジュールがイネーブルされていない場合、つまり、マイクロタイル方式をサポートしない場合、イネーブルされていないメモリモジュールが接続されたメモリチャネルはマイクロタイル方式を利用できない。これは、マイクロタイルメモリアーキテクチャが、マイクロタイル方式がイネーブルされていないメモリ（マイクロタイル方式をサポートしていないメモリモジュールおよびメモリ用集積回路）に対して後方互換性を有するからである。このため、システム内でマイクロタイル方式をイネーブルとするために、メモリチャネルに接続されたメモリモジュールのうちマイクロタイル方式がイネーブルされたメモリモジュールと、もし存在するのであれば、マイクロタイル方式をサポートしないメモリモジュールを自動的に検出する。具体的には、メモリチャネルに対してデータの読み出しおよび書き込みを行う前に、メモリチャネル内のすべてのメモリモジュール上のすべてのメモリ用集積回路がマイクロタイル方式をサポートするかどうか確認する。このため、メモリモジュールおよびメモリ用集積回路についてマイクロタイル方式がイネーブルされているかどうか自動的に確認するプロセスは通常、システム初期化の早い段階で実施される。システム初期化中に行われる、メモリモジュールおよびメモリ用集積回路がマイクロタイル方式をサポートするかどうかの自動確認プロセスは、直接ハードウェアで実施されるとしてもよいし、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）ソフトウェアといったソフトウェアとハードウェアの組み合わせによって実施されるとしてもよい。
【００３４】
メモリがマイクロタイル方式をサポートしているかどうか判定する方法の１つに、マイクロタイル方式をイネーブルした場合とディセーブルした場合の書き込みデータおよび読み出しデータを比較する方法が挙げられる。本発明の一実施形態によると、まず、マイクロタイル方式をディセーブルとした状態において、メモリ位置Ｘに一意的なパターンまたは値を書き込む。続いて、各メモリモジュールおよび各メモリ用集積回路のイネーブルを試みる。続いて、メモリの同一メモリ位置からの読み出しを試みる。この場合、実際には、複数の異なるメモリ位置から複数のメモリサブチャネルを介して読み出すとしてもよい。続いて、マイクロタイル方式をイネーブルさせていない状態での書き込みデータと、マイクロタイル方式がイネーブルされている可能性がある状態での得られた読み出しデータとを比較する。メモリサブシステムがマイクロタイル方式をサポートしていれば、同一の先頭アドレスを用いてアクセスすることによって得られた読み出しデータとの間には差異が認められるはずである。マイクロタイル方式がサポートされていなければ、書き込みデータと、同一の先頭アドレスを用いてアクセスした場合に得られた読み出しデータは同一のはずである。
【００３５】
簡潔に述べると、マイクロタイル方式をイネーブルとすることによって、メモリ要求の対象をメモリ内のより小さい不連続部分またはより小さい領域とすることができる。マイクロタイル方式メモリアーキテクチャによれば、要求する側の都合に応じて、メモリに対する読み出しおよび書き込みでやり取りされるデータのサイズおよび構造を変更することができる。より小さい領域のデータを正しく特定するべく、マイクロタイル方式メモリコントローラはシステムメモリに対して追加アドレス情報を供給する。例えば、本発明の一実施形態によると、６４ビット幅のメモリチャネル（物理ビット幅）が４つの１６ビット幅のサブチャネルに分割されるとしてもよい。この実施形態によると、６４バイトのメモリアクセス（メモリチャネルの論理バイト幅）は、４つの不連続の１６バイトの領域に対応する（メモリトランザクションのバースト長は８と仮定する）。各サブチャネルは一意的なアドレス情報を用いる。図３Ａは、それぞれが一意的なアドレス情報を持つ、４つの１６ビットのサブチャネルの実施例を示す。他の実施例に係るマイクロタイル方式のメモリアーキテクチャでは、各サブチャネルのサイズおよび各サブチャネルに設けられた独立アドレスラインの数を変更するとしてもよい。
【００３６】
メモリアレイの各サブチャネルに対して独立アドレス情報をさらに供給するための方法が幾つか挙げられる。例えば、メモリコントローラからメモリ用集積回路までの専用ラインを新たにルーティングすることによってアドレスラインを追加する方法、またはメモリモジュール内にルーティングされたエラー補正コード（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ  Ｃｏｄｅ）信号ラインのうち使用されていないものを改めて追加アドレスラインとして割り当てる方法などがある。また、独立アドレス情報は、例えば列アドレスがメモリ用集積回路に書き込まれるメモリサイクル中などの、既存のアドレス信号ラインが通常利用されていない期間中に、当該既存のアドレス信号ラインをオーバーロードすることによって、追加で供給されるとしてもよい。こうすることによって、メモリモジュールにおいてマイクロタイル方式をサポートさせつつ、既存のメモリモジュールに対する後方互換性も維持することができる。上述した方法は、本発明の実施形態において、追加のアドレスラインを含む所望の数のアドレスライン上でアドレス情報を追加で供給するべく、個別に用いるとしてもよいし、組み合わせて利用するとしてもよい。
【００３７】
標準規格のメモリチャネルにおいて（例えば、ダブル・データ・レート（ＤＤＲ）ＤＲＡＭに基づくメモリチャネル）、メモリチャネルの論理幅をＭバイトとする。ここで、１バイトのデータは８ビットである。メモリチャネルの論理幅は、メモリモジュール上で行われるデータ転送のバースト長と何らかの関係を持っている。つまり、Ｍバイトのデータに対しては、ベースアドレスから連続してアドレスを増加させてバーストを形成するデータ転送を行うことによって、連続してアクセスが可能である。通常は、アクセスする（読み出しまたは書き込み）対象の数バイトから成るブロックのベースアドレスは、チャネルの論理幅の整数倍に等しい。メモリチャネルの物理幅は、メモリコントローラとメモリモジュールの間のデータバスのビット幅である。最小バースト長は通常、８メモリサイクルで、開始バイトオーダーはアドレスラインの最下位ビットによって設定されるとしてもよい。物理幅が通常の６４ビットの場合、８回のメモリサイクルによってメモリチャネル内の６４バイトのデータにアクセスする。このため、メモリチャネルの論理幅は通常、６４バイトのデータとなる。
【００３８】
上述したように、メモリチャネルの論理幅はベースアドレスに従って連続して転送可能なバイト数であり、メモリチャネルの物理幅はメモリコントローラとメモリモジュールの間に設けられたデータバス（ＷＤＢ）のビット幅である。ここで、マイクロタイル方式メモリシステムは、メモリチャネルの論理幅と物理幅を均等に分割し、より小さい論理バイト幅とより小さい物理ビット幅を持つ複数のサブチャネルとする。
【００３９】
メモリをマイクロタイル方式とすることによって、メモリチャネルの物理幅（ＷＤＢビット）およびメモリチャネルの論理幅（Ｍバイト）を分割し、Ｓ個のサブチャネル（ＷＳＣ）を構成する。各サブチャネルは、物理幅がＷＳＣ＝ＷＤＢ／Ｓビットで論理幅がＮ＝Ｍ／Ｓバイトである。このため、Ｎバイトのデータが、各サブチャネルにおいて、バースト長に等しいデータ転送回数ごとに、ＷＳＣビットのデータラインを介して転送されるとしてもよい。１本のメモリチャネルがメモリ内でアクセスするメモリ位置の総数は、ＴＭＬであるとしてもよい。各サブチャネルがアクセスするメモリ位置のサブセットの総数（ＴＳＭＬ）は、ＴＭＬ／Ｓに等しい。
【００４０】
マイクロタイル方式を採用したメモリでは、各サブチャネルが独立して、メモリチャネルを介して、より細かい単位でデータにアクセスすることが可能となる。各サブチャネルを完全に独立したものとして構成するには、メモリコントローラから各サブチャネルにルーティングされるアドレス信号ラインを独立させるとしてもよい。独立したアドレス信号ラインが多くなり過ぎないようにアドレス信号ラインのうち一部はサブチャネル同士で共有して、メモリ位置は複数の共有アドレスから独立して選択するとしてもよい。このため、各サブチャネルに提示されるアドレスの独立アドレスビット（Ｉ）の値は、他のサブチャネルに提示されるアドレスの対応するビットの値とは異なるとしてもよい。このため、各サブチャネルで転送されるデータは一続きのブロックデータである一方、各サブチャネル上で転送される複数のデータブロックは必ずしも連続したアドレス範囲のものとは限らない。これは、独立アドレスビットＩが、以下で詳述するように、異なるビット位置の場合があるためである。
【００４１】
本発明の実施形態は様々な異なるシステムにおいて利用されるとしてもよい。そのようなシステムの例を図１Ａおよび図１Ｂに示す。図１Ａは、本発明の実施形態を利用し得る典型的なコンピュータシステム１００を示すブロック図である。コンピュータシステム１００Ａは、処理部１０１、キーボード、モデム、プリンタ、外部記憶装置などの入出力デバイス（Ｉ／Ｏ）１０２、およびＣＲＴまたはグラフィクスディスプレイなどのモニタ装置（Ｍ）１０３を備える。モニタ装置（Ｍ）１０３は、演算情報を、人間が理解し得る形式で、例えば、画像形式または音声形式で、提供する。システム１００はコンピュータシステム以外の多くの異なる電子システムであるとしてもよい。
【００４２】
図１Ｂは、本発明の実施形態を利用し得る、クライアント−サーバシステム１００Ｂを示す。クライアント−サーバシステム１００Ｂは、ネットワーク１１２に接続された１以上のクライアント１１０Ａ〜１１０Ｍおよびネットワーク１１２に接続されたサーバ１１４を備える。クライアント１１０Ａ〜１１０Ｍはネットワーク１１２を介してサーバ１１４と通信を行い、情報を送信または受信するとともに、サーバ上にある必要なデータベースおよび／またはアプリケーションソフトウェアへとアクセスする。クライアント１１０Ａ〜１１０Ｍおよびサーバ１１４は、典型的なコンピュータシステム１００Ａの例であるとしてもよい。サーバ１１４はメモリおよび処理部を有し、さらに１以上のディスクドライブ記憶装置を有するとしてもよい。サーバ１１４は、例えばネットワーク接続ストレージ（ＮＡＳ）デバイスとしてストレージエリアネットワーク（ＳＡＮ）内で利用されるとしてもよく、ディスクアレイを有するとしてもよい。サーバ１１４へのデータアクセスは、複数のクライアント１１０Ａ〜１１０Ｃ間において、ネットワーク１１２を利用して共有されるとしてもよい。
【００４３】
図２は、本発明の実施形態を利用し得る処理部１０１を詳細に示すブロック図である。処理部１０１は、図２に示すように互いに接続された、プロセッサ回路２０１、メモリ制御ブロック２０２、外部キャッシュメモリ２０３Ｅ、１以上のメモリチャネル２０４Ａ〜２０４Ｎ、グラフィクスコントローラ２０６、および入出力コントローラ２０７を備えるとしてもよい。処理部１０１の構成要素のうち、処理回路２０１が有する２以上の素子、メモリ制御ブロック２０２、キャッシュメモリ２０３Ｅ、グラフィクスコントローラ２０６および入出力コントローラ２０７は、単一の集積回路に集積化されるとしてもよい。例えば、メモリ制御ブロック２０２、グラフィクスコントローラ２０６および入出力コントローラ２０７が、集積回路２１０として集積化されるとしてもよい。別の例を挙げると、処理回路２０１、メモリ制御ブロック２０２、キャッシュメモリ２０３Ｅ、グラフィクスコントローラ２０６および入出力コントローラ２０７が集積回路２１０'として集積化されるとしてもよい。またさらに別の例として、メモリコントローラを持つメモリ制御ブロック２０７をプロセッサ回路２０１に集積化するとしてもよい。プロセッサ回路２０１とメモリ制御ブロック２０２の間に接続されている外部キャッシュメモリ２０３Ｅは、集積回路２１０'の一部のように図示されているが、別の回路として構成されるとしてもよい。大きなメモリ容量は別に製造する方が効率が高いので、多くの場合、キャッシュメモリ２０３Ｅは集積回路２１０'に対して外部とする。
【００４４】
プロセッサ回路２０１は、１以上の実行部または２以上のプロセッサ（コアプロセッサともいう、例えばプロセッサＡ〜Ｎ  ２１０Ａ〜２０１Ｎ）を有する、マルチプロセッサ集積回路として構成されていてもよい。プロセッサ回路２０１が有する各プロセッサは、オンチップのまたは内蔵されたキャッシュメモリ２０３Ｉにおいて１以上のレベルを持つとしてもよいし、同じ内部キャッシュメモリを共有するとしてもよい。キャッシュメモリの他のレベルはプロセッサ２０１に対して外部としてもよく、外部キャッシュメモリ２０３Ｅのように、メモリコントローラに接続されるとしてもよい。プロセッサ回路２０１はさらに、マイクロコンピュータと同様に、オンチップ型または内蔵型のＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）およびオンチップ型または内蔵型のＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）を有するとしてもよい。プロセッサ２０１の１以上の実行部とキャッシュメモリの１以上のレベルが、１以上のメモリチャネル２０４Ａ〜２０４Ｎにおいて、メモリ制御ブロック２０２を介して、データの読み書き（命令を含む）を行うとしてもよい。
【００４５】
メモリ制御ブロック２０２は、グラフィクスコントローラ２０６に接続されるとともに、１以上のメモリチャネル２０４Ａ〜２０４Ｎとプロセッサ２０１の間に接続されている。メモリ制御ブロック２０２は任意で、キャッシュメモリ２０３Ｍをその内部に有するとしてもよいし、キャッシュメモリ２０３Ｍはキャッシュメモリの別のレベルとして外部に構成されるとしてもよい。メモリ制御ブロック２０２は、１以上のメモリチャネル２０４Ａ〜２０４Ｎに対応して、１以上のマイクロタイル方式メモリコントローラＭＣＡ〜ＭＣＮ（２０８Ａ〜２０８Ｎ）を有する。
【００４６】
１以上のメモリチャネル２０４Ａ〜２０４Ｎはそれぞれ、１以上のメモリモジュールＭＭ１〜ＭＭｎを有する。各メモリモジュールは１以上のメモリ用集積回路またはメモリ用集積デバイスを持つ。当該１以上のメモリ用集積回路またはメモリ用集積デバイスは、様々な種類のメモリ用集積回路から選択してよく、例えば、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）回路、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）回路、またはＮＶＲＡＭ（不揮発性ＲＡＭ）回路などがある。しかし、本発明の好ましい実施形態においては、当該１以上のメモリ用集積回路はＤＲＡＭ回路である。
【００４７】
１以上のメモリチャネル２０４Ａ〜２０４Ｎはそれぞれ、２つ以上のメモリサブチャネルを持つ。図２においては、メモリチャネル２０４Ａ〜２０４Ｎはそれぞれ、４つのサブメモリチャネル２０５Ａ〜２０５Ｄを持つ。各メモリチャネル内に４つのサブメモリチャネルを図示しているが、メモリチャネルの分割はこれに限定されず、サブチャネルの数は偶数であってもよいし奇数であってもよい。例えばサブチャネルの数は２つであってもよい。メモリチャネルの分割方法は、メモリチャネルの論理幅またはバースト長が大きくなるにつれて、変更するとしてもよい。
【００４８】
メモリチャネル２０４Ａ〜２０４Ｎのそれぞれが有する１以上のメモリモジュールＭＭ１〜ＭＭＮは、マイクロタイル方式をサポートするべく構成されるとしてもよい。メモリ制御ブロックはアルゴリズムを用いて、１以上のメモリモジュールがマイクロタイル方式をサポートしているかどうか判断するとしても良い。１以上のメモリモジュールに含まれる１以上のメモリ回路またはメモリデバイスは、マイクロタイル方式をサポートするべく構成されるとしてもよい。当該１以上のメモリ回路は、マイクロタイル方式をイネーブルすることができ（ＭＴＥ）、あるメモリサブチャネルをサポートするように割り当てることができる。当該１以上のメモリ回路は、マイクロタイル方式をイネーブルするとともにあるメモリサブチャネルを割り当てるために、ピンを追加で持つとしてもよいし、またはビットを追加でモードレジスタに備えるとしてもよい。メモリ回路が追加でピンを持つ場合、マイクロタイル方式をサポートする構成とするべく、外部のジャンパピン、ジャンパ線、またはマイクロスイッチ（例えば、ＤＩＰスイッチ）を利用するとしてもよい。メモリ回路にモードレジスタを備える場合、各サブチャネルのデータバスの独立部分を用いて、適切なロードストローブに応じてモードレジスタをロードするとしてもよい。
【００４９】
入出力コントローラ２０７は、１以上のメモリチャネル２０４Ａ〜２０４Ｎにデータを書き込むべく、メモリ制御ブロック２０２に接続されるとしてもよい。このため、プロセッサ２０１は入出力コントローラ２０７にアクセスできるようになる。処理部１０１はさらに、無線ネットワークインターフェース回路（ＷＮＩＣ）２１３、有線ネットワークインターフェース回路またはカード（ＮＩＣ）２１４、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）および／またはファイヤワイヤ（ＦＷ）シリアル・インターフェース２１５、および／または入出力コントローラ２０７に接続されたディスクドライブ２１６を有するとしてもよい。無線ネットワークインターフェース回路（ＷＮＩＣ）２１３は、無線ローカル・エリア・ネットワーク、ｗｉｆｉ（ＩＥＥＥ  ８０２．１１）、Ｂｌｕｅｔｏｏｔｈ（登録商標）またはそれ以外の無線接続方式に基づいて、無線ベースユニットに対する無線接続を行う。無線ネットワーク相互接続部（ＷＮＩＣ）２１３は、電波を介して無線ベースユニットまたはそれ以外の無線可動ユニットへの接続を確立するためのアンテナを持つ。ＮＩＣ２１４はイーサネット（登録商標）有線ローカル・エリア・ネットワーク接続を確立する。ＵＳＢ／ＦＷシリアルインターフェース２１５は、他の入出力周辺機器を含むべくシステムを拡張することを可能とする。ディスクドライブ２１６は公知のもので、プロセッサ２０１に対して書き換え可能なストレージを提供する。ディスクストレージデバイス２１６は、フロッピーディスク（登録商標）、ジップディスク、ＤＶＤディスク、ハードディスク、書き換え可能な光ディスク、フラッシュメモリ、またはそれ以外の不揮発性ストレージデバイスのうち１以上であるとしてもよい。
【００５０】
グラフィクスコントローラ２０６は、１以上のメモリチャネル２０４Ａ〜２０４Ｎに対してデータの読み書きを行うべく、メモリ制御ブロック２０２に接続されている。プロセッサ２０１は１以上のメモリチャネル２０４Ａ〜２０４Ｎに対してデータを書き込むとしてもよい。このように書き込まれたデータは、グラフィクスコントローラ２０６によるアクセスが可能となり、グラフィクスディスプレイまたはビデオデバイス上で表示が可能となる。グラフィクスディスプレイ２１７はグラフィクスコントローラ２０６に接続されるとしてもよい。ビデオインターフェース２１８はグラフィクスコントローラ２０６に接続されるとしてもよい。ビデオインターフェース２１８はアナログビデオインターフェースおよび／またはデジタルビデオインターフェースであってよい。
【００５１】
処理部１０１において、プロセッサ２０１、入出力コントローラ２０７およびグラフィクスコントローラ２０６は、メモリ制御ブロック２０２内に設けられたメモリコントローラを介して１以上のメモリチャネル２０４Ａ〜２０４Ｎのデータにアクセスするとしてもよい。メモリ制御ブロック内のメモリコントローラは、システムメモリとプロセッサ２０１、入出力コントローラ２０７、およびグラフィクスコントローラ２０６との間でのデータの読み書きを行うべく、メモリチャネル２０４Ａ〜２０５Ｎに接続される。マイクロタイル方式のメモリコントローラ２０８Ａ〜２０８Ｎをメモリチャネル２０４Ａ〜２０４Ｎへと接続するに当たって、メモリインターフェースの一部として、アドレスバスのアドレス信号ライン２２０、データバスのデータ信号ライン２２２、および制御クロック信号ライン２２４を利用するとしてもよい。入出力コントローラ２０７に接続された入力デバイス（例えばディスクストレージデバイス２１６）もまた、システムメモリに対して情報の読み書きを行うとしてもよい。
【００５２】
一般的に、データバスのデータ信号ライン２２２はＳ本のサブチャネルに分配されている。図２では、Ｓは４に設定され、データバスのデータ信号ライン２２２は、サブチャネルデータライン２２２Ａ、２２２Ｂ、２２２Ｃおよび２２２Ｄとして図示されているように、４本のサブチャネルに対して分配され、サブチャネル２０５Ａ、２０５Ｂ、２０５Ｃおよび２０５Ｄに接続される。一例を挙げると、６４ビットのバスは４つの１６ビットデータラインに分割される。本発明の一実施形態によると、アドレス信号ライン２２０の一部は複数のサブチャネルによって共有され、残りのアドレス信号ラインは独立して１本のサブチャネルと対応付けられる。本発明の別の実施形態によると、アドレス信号ライン２２０は完全に独立して各サブチャネルと対応付けられるとしてもよい。アドレス信号ラインについては、以下で詳述する。
【００５３】
図３Ａは、２本のメモリチャネルを示すブロック図である。図３Ａは、統合グラフィクスメモリコントローラ３００（ホスト３００とも呼ぶ）、および当該統合グラフィクスメモリコントローラ３００に接続されたメモリチャネル０（３０４Ａ）およびメモリチャネル１（３０４Ｂ）を示す。メモリチャネル０（３０４Ａ）およびメモリチャネル１（３０４Ｂ）はそれぞれ、４本のサブチャネル３０５Ａ、３０５Ｂ、３０５Ｃおよび３０５Ｄに分割される。各メモリチャネルは、サブチャネルをサポートするべく、独立してマイクロタイル方式のメモリコントローラを有する。各メモリチャネルは独立してデータバスを有する。例えば、各メモリチャネルのデータバスのビット幅が６４ビットである場合、サブチャネルはそれぞれ、データバスの独立した１６ビットの１セットに接続される。図３Ａに示すように、サブチャネル３０５ＡはデータビットＤ１５〜Ｄ０に接続され、サブチャネル３０５ＢはデータビットＤ３１〜Ｄ１６に接続され、サブチャネル３０５ＣはデータビットＤ４７〜Ｄ３２に接続され、サブチャネル３０５ＤはデータビットＤ６３〜Ｄ４８に接続される。
【００５４】
上述したように、本発明の一実施形態によると、アドレス信号ラインの一部はサブチャネル間で共有される一方、残りのアドレス信号ラインは独立して１本のサブチャネルに対応付けられる。一例を挙げると、アドレス信号ライン３１０（Ａｘｘ〜Ａ１０、ＢＡ２〜ＢＡ２）は全サブチャネル３０５Ａ〜３０５Ｄによって共有されている。つまり、アドレス信号ライン３１０はそれぞれファンアウトされ各サブチャネルに接続されるとしてもよい。これとは逆に、アドレス信号ライン３１１Ａ（Ａ９〜Ａ６の第１セット）は独立してサブチャネル３０５Ａに接続されている。アドレス信号ライン３１１Ｂ（Ａ９〜Ａ６の第２セット）は独立してサブチャネル３０５Ｂに接続されている。アドレス信号ライン３１１Ｃ（Ａ９〜Ａ６の第３セット）は独立してサブチャネル３０５Ｃに接続されている。アドレス信号ライン３１１Ｄ（Ａ９〜Ａ６の第４セット）は独立してサブチャネル３０５Ｄに接続されている。
【００５５】
ここで、割り当てられたメモリページサイズの細かさによって得られる最大のアドレス指定能力を実現するために十分な数の、独立したアドレスラインを設けるのが理想である。ページサイズは通常、グラフィクメモリスペースを管理するソフトウェアによって定められる。例えば、チャネルが２つのキャッシュラインを持つインターリーブドメモリサブシステムにおいて４キロバイト（ＫＢ）のページサイズを割り当てる場合を考える。各メモリチャネルに２ＫＢのページをマッピングする。この場合、メモリの各物理ページにおける３２個の６４Ｂキャッシュラインに対してアドレス指定を行うべく５本のアドレスラインを利用するとしてもよい。このため、１６ビットサブチャネルを４本設けるためには、１５本の独立したアドレスラインを追加するのが理想的だと考えられる。これらの追加されたアドレスラインは、アドレス信号ライン３１１Ｂ〜３１１Ｄとして図示されている。アドレス信号ライン３１１Ｂ〜３１１Ｄはそれぞれ、アドレスラインＡ１０〜Ａ６の第２セット、第３セットおよび第４セットとして示されている一方、既存の第１セットであるアドレス信号ライン３１１Ａは、アドレスラインＡ１０〜Ａ６の第１セットとして示されている。追加で利用できる独立アドレスラインの数がこれより少ない場合、各サブチャネルがアドレス指定可能な独立したアドレススペースは低減される。各サブチャネルが利用可能な独立アドレスラインの数がこれより大きければ、各サブチャネルがアドレス指定可能な独立したアドレススペースは拡大される。２本の３２ビットサブチャネルを実現するためには、５本の独立したアドレスラインを追加するのが望ましい。
【００５６】
追加されるアドレス信号ラインは、図３Ａに図示するように独立アドレス信号ラインを設けるように、メモリコントローラとサブチャネルとの間においてルーティングされるとしてもよい。アドレス信号は既存のアドレスラインにオーバーロードされるとしてもよい。追加するアドレス信号ラインをルーティングするとともにアドレス信号をオーバーロードすることによって、マイクロタイル方式をサポートするとしてもよい。もしくは、各サブチャネルに対して、図３Ａに図示した共有アドレスライン３１０を設けずに、独立アドレスラインのみを設けるとしてもよい。しかし、共有アドレス信号ライン３１０を利用することによって、独立アドレス信号ラインのルーティングを減少させ、プリント配線基板領域を節約することが可能である。
【００５７】
図６は、共有アドレスビットおよび独立アドレスビットに基づいて、メモリチャネル用のアドレス信号ラインのビットマップを示す。つまり図６は、物理アドレスに含まれるアドレスビットの解釈を示すアドレスビットマップである。マイクロタイル方式をサポートするべく、各サブチャネルに対してＩ個の独立アドレスビット（ＩＡＢ）が設けられている。全てのサブチャネルに対して、ゼロ以上のＳＡ個の共有アドレスビット（ＳＡＢ）が設けられるとしてもよい。メモリ要求をサブチャネルに割り当てる際に、Ｑ個のサブチャネル選択ビット（ＳＳＢ）が利用される。ＤＲＡＭメモリ内の各キャッシュラインにおいてバイトのアドレスを指定するべく、Ｐ個のサブチャネルデータアドレスビット（ＳＤＡＢ）が利用される。Ｐ個のＳＤＡＢビットは通常、アドレス信号ラインマップのビットの中の最下位ビットである。Ｑ個のＳＳＢビットおよびＰ個のＳＤＡＢビットは実際には、メモリコントローラとサブチャネルメモリとの間でルーティングされておらず、アクセスされるデータブロックのベースアドレスはバーストサイズの整数倍であると理解されている。つまり、Ｐ個のＳＤＡＢビットは、ダブル・データ・レート（ＤＤＲ）メモリの仕様に従って、ＤＲＡＭデバイスといったメモリ用集積回路によって内部的に生成されるとしてもよい。図６は、共有されるべく選択されたアドレスビットおよび独立アドレスビットを示しているが、これ以外に他のアドレスビットを割り当てるとしてもよい。つまり、Ｐ個のサブチャネルデータアドレス（ＳＤＡＢ）ビットより上位のアドレスビットのＳＡ個の共有アドレス（ＳＡＢ）ビットおよびＩ個の独立アドレス（ＩＡＢ）ビットへの分割は通常、任意で行う。
【００５８】
図４Ａ〜図４Ｃは、タイル状に分割されたアドレススペースに基づいて、三角形の理想的なピクセルマップレンダリングを説明するための図である。図４Ａは、論理チャネル幅が６４バイトであるマイクロタイル方式に準拠していないメモリシステムによる、タイル状に分割されたアドレススペースでの三角形４０１のラスタライゼーションを示す。図４Ｂおよび図４Ｃは、マイクロタイル方式に準拠したメモリシステムによる、タイル状に分割されたアドレススペースでの三角形４０１のラスタライゼーションを示す。三角形４０１のラスタライゼーションの単位はフラグメント４０２である。フラグメント４０２は、ピクセルもしくはテクセルを表すとしてもよい。タイル状に分割されたアドレススペースでは、論理的な２次元状のデータアレイがサブアレイの１セットとして編成されており、１つのサブアレイ内のデータはアドレススペースの連続した範囲に格納されているのでメモリ内で一部分に集中している。直線状にアドレス指定されている、論理的な２次元状のデータアレイの場合は、上述したようなサブアレイを有さず、フラグメント４０２のようなデータが、１行中を左から右へ、続いて上から下へと次の行へ移るという順番で、直線状にアドレス指定されている。このため、垂直方向に隣接するフラグメント４０２同士はメモリ内で互いに離れている場合がある。
【００５９】
図４Ａとの比較に基づき、図４Ｂおよび図４Ｃは、より小さい単位のメモリ要求に答えられるという利点がマイクロタイルメモリアクセスによってどのように得られるかを示す。図４Ａ、図４Ｂおよび図４Ｃはそれぞれ、メモリ要求サイズが異なる場合の、三角形４０１のラスタライゼーションを示す。
【００６０】
図４Ａでは、１つのメモリ要求が１６個のフラグメントから成るデータを含む。正方形４０２はそれぞれ１つのフラグメントを表し、１フラグメントは通常３２ビットまたは４バイトのデータを持つ。図４Ａ、図４Ｂおよび図４Ｃは２０×２０のフラグメントアレイを示す。４×４のフラグメントアレイは、図４Ａに示すように、スパン４０４であって、６４バイトのメモリ要求に対応する。サブスパン４２４は、図４Ｃに図示するように、２×２のフラグメントアレイであって、１６バイトのメモリ要求に対応する。ダブルサブスパン４１４は、図４Ｂに示すように、３２バイトのメモリ要求に対応し、２×４のフラグメントアレイとして編成されている。
【００６１】
図４Ａ、図４Ｂおよび図４Ｃの相違点は、メモリ要求のサイズが減少するにつれて、過取得が理論上減少する様子を示したものである。図４Ａ、図４Ｂおよび図４Ｃのそれぞれの例において、三角形４０１のラスタライゼーションを行うためにアクセスする必要があるフラグメントの数は同一である。しかし、１回のメモリアクセスで転送されるのは通常、２個以上のフラグメントのデータであるため、三角形４０１内のフラグメント４０８を表すデータと三角形４０１の外部にあるフラグメント４０６を表すデータが共に転送される場合がある。三角形４０１の外部にあるフラグメント４０６を表すデータは過取得されているので、メモリ帯域幅が非効率に使用されている。
【００６２】
図４Ａについて、６４バイトのメモリアクセスに応じてスパン４０４のデータである４×４のフラグメントブロックが転送される。例えば、スパン４０４Ａが第１の６４バイトのメモリアクセスに対応し、スパン４０４Ｂが第２の６４バイトのメモリアクセスに対応する。一例として、三角形４０１が約５７個のレンダリングすべきピクセルを含むとする。６４バイトのメモリアクセスの場合、三角形内の６５個のフラグメントにアクセスするためには１０回のメモリアクセスが必要となる。ここで、９５個のフラグメントのデータについてはアクセスするものの、利用されない場合がある。
【００６３】
図４Ｂについて、３２バイトのメモリアクセスに応じて、ダブルサブスパンのデータである２×４のフラグメントブロック、つまり６４バイトのメモリアクセスの場合に転送されるデータの半分が転送される。例えば、ダブルサブスパン４１４Ａが第１の３２バイトのメモリアクセスに対応し、ダブルサブスパン４１４Ｂが第２の３２バイトのメモリアクセスに対応する。３２バイトのメモリアクセスの場合、三角形内の６５個のフラグメントにアクセスするためには１３回のメモリアクセスが必要となる。ここで、４７個のフラグメントのデータについては、アクセスするものの、利用されない場合がある。
【００６４】
図４Ｃにおいて、１６バイトのメモリアクセスに応じて、サブスパンのデータである２×２のフラグメントブロック、つまり６４バイトのメモリアクセスの場合のデータの４分の１が転送される。スパン４２４Ａが第１の１６バイトのメモリアクセスに対応し、スパン４２４Ｂが第２の１６バイトのメモリアクセスに対応し、スパン４２４Ｃが第３の１６バイトのメモリアクセスに対応し、スパン４２４Ｄが第４の１６バイトのメモリアクセスに対応する。１６バイトのメモリアクセスの場合、三角形内の６５個のフラグメントにアクセスするためには、２２回のメモリアクセスが必要となる。ここで、１３個のフラグメントのデータについては、アクセスするものの、利用されない場合がある。
【００６５】
他の例として、図４Ａ、図４Ｂおよび図４Ｃにおいて、三角形４０１が表示すべきピクセルまたはフラグメントが６５個（２６０バイト）であるとする。図４Ａについて、三角形４０１をレンダリングするためには、メモリ内の約１０個のスパンがアクセスされる。これには、１６０個のピクセルまたは６４０バイトのデータが含まれる。図４Ｂについて、三角形４０１をレンダリングするためには、メモリ内の約１３個のダブルサブスパンがアクセスされる。これには、１１２個のピクセルまたは４４８バイトのデータが含まれる。図４Ｃについて、三角形４０１をレンダリングするためには、メモリ内の約２２個のサブスパンがアクセスされる。これには、８８個のフラグメントまたは３５２バイトのデータが含まれる。上記の説明から分かるように、図４Ａの例と比較すると、図４Ｂおよび図４Ｃの例の場合には、各メモリチャネル内のサブチャネルと共にマイクロタイル方式のアドレス指定を実施することによって、過取得されたピクセルまたはフラグメント４０６が減少している。
【００６６】
上述したように、図４Ｂおよび図４Ｃは、メモリサブチャネルを持つマイクロタイル方式のメモリシステムを用いた、タイル状に分割されたアドレススペース内における三角形４０１のラスタライゼーションを示している。図４Ｂにおいて、６４バイトの幅のメモリチャネルを２本の３２バイトの幅のメモリサブチャネルから形成するとしてもよい。この場合、マイクロタイル方式のメモリアクセスでは、２つの不連続の３２バイトのアクセスを１つの６４バイトのアクセスへと組み合わせ、２つのサブチャネルに１対１で２つのアクセスを対応させ、合計６４バイトとする。三角形のラスタライゼーションを実施するには、ダブルサブスパン４１４へのアクセスを要求することになる。例えば、マイクロタイル方式のメモリコントローラはダブルサブスパン４１４Ｃおよび４１４Ｄへのアクセス要求を組み合わせて、１つのマイクロタイルメモリアクセスを生成する。別の例によると、メモリコントローラはダブルサブスパン４１４Ｅおよび４１４Ｆへのアクセス要求を組み合わせて、１つのマイクロタイルメモリ要求を生成する。このほかのダブルサブスパンに対するアクセス要求も組み合わせて１つのマイクロタイルメモリ要求またはマイクロタイルメモリアクセスを生成するとしてもよい。本発明の１以上の実施形態において、組み合わせたサブチャネルアクセスは、ＳＡ個の共有アドレスビットにおいて、共有アドレスビットパターンを持つ。
【００６７】
図４Ｃの例においては、６４バイトの幅のメモリチャネルを、４つの１６バイトの幅のメモリサブチャネルから形成するとしてもよい。この場合、マイクロタイルメモリアクセスでは、４つの不連続の１６バイトのアクセスを組み合わせて１つの６４バイトのアクセスを生成し、４つのサブチャネルに１対１でアクセスを対応させて、合計６４バイトとする。三角形のラスタライゼーションを実施するには、サブスパン４２４へのアクセスを要求することになる。例えば、マイクロタイル方式のメモリコントローラはサブスパン４２４Ｅ、４２４Ｆ、４２４Ｇおよび４２４Ｈへのアクセス要求を組み合わせて、１つのマイクロタイルメモリアクセスを生成する。このほかのサブスパンに対するアクセス要求も組み合わせて１つのマイクロタイルメモリ要求またはマイクロタイルメモリアクセスを生成するとしてもよい。本発明の１以上の実施形態において、組み合わせたサブチャネルメモリアクセスは、４つのメモリサブチャネルそれぞれに対応するＳＡ個の共有アドレスビットにおいて、共有アドレスビットパターンを持つ。
【００６８】
理想的には、マイクロタイル方式に準拠したメモリ要求が全て、不使用のサブチャネルを生じさせることなく、６４バイトのメモリトランザクションを行うべく、マイクロタイル方式のトランザクションアセンブラによって利用されるのが望ましい。つまり、マイクロタイル方式の効率は、トランザクションアセンブラ３２６Ａおよび３２６Ｂが完全にポピュレートされたメモリトランザクションを生成できるかどうかに左右される。
【００６９】
図３Ｂは、システムメモリチャネルおよび１以上のキャッシュメモリ２０３に接続されたマイクロタイル方式のメモリ制御ブロック３００を有するマルチチャネルメモリサブシステムを示す。マルチチャネルメモリサブシステムは、メモリ制御ブロック３００内に、システムメモリに対するメモリチャネル毎にマイクロタイル方式のメモリコントローラを持つ。
【００７０】
図３Ｂにおいて、２本のメモリチャネル３０４Ａおよび３０４Ｂが設けられている。このため、メモリチャネル３０４Ａおよび３０４Ｂに対応して、２つのマイクロタイル方式メモリコントローラ３２１Ａおよび３２１Ｂが設けられている。メモリチャネル３０４Ａおよび３０４Ｂはそれぞれ、Ｓ本のサブチャネル３０５Ａ〜３０５Ｓを含む。各サブチャネル３０５は論理的にＮバイトの幅およびＢビットの幅を持つ。各メモリチャネル３０４は、論理的にＭ（Ｍ＝Ｎ×Ｓ）バイトの幅を持つ。
【００７１】
メモリ制御ブロック３００とキャッシュメモリ２０３の間には、書き込みデータパス３０１および読み出しデータパス３０２が設けられている。書き込みデータパス３０１および読み出しデータパス３０２はコマンドパスまたはアドレスパスを含み、当該パスを介して読み出し要求および書き込み要求が発行される。読み出しトランザクションの場合、読み出しデータパス３０２を介して、メモリ制御ブロック３００からキャッシュ２０３へとＮバイトが戻される。書き込みトランザクションの場合は、書き込みデータパス３０１を介してキャッシュ２０３からメモリ制御ブロック３００へとＮバイトの書き込み要求が供給される。キャッシュ２０３とメモリ制御ブロック３００の間でＮバイトの読み出し要求または書き込み要求が発行されるが、要求は、サブチャネルが４つの場合に利用されるように、２×２のピクセルアレイまたはテクセルアレイを表すべく２×２のタイルアレイとして図示されている。
【００７２】
メモリ制御ブロック３００はチャネル割り当て器３２０、第１メモリコントローラ３２１Ａ、および第２メモリコントローラ３２１Ｂを有する。メモリ制御ブロック３００はまた、メモリチャネル０（３０４Ａ）およびメモリチャネル１（３０４Ｂ）に接続されている。メモリチャネル０（３０４Ａ）はＳ本のサブチャネル３０５Ａ〜３０５Ｓを有する。同様に、メモリチャネル１（３０４Ｂ）はＳ本のサブチャネル３０５Ａ〜３０５Ｓを有する。共有アドレスライン３１０によって、各メモリコントローラ３２２と対応するサブチャネル３０５Ａ〜３０５Ｓが接続されている。独立アドレスライン３１１Ａ〜３１１Ｓは、サブチャネル３０５Ａ〜３０５Ｓと接続される。データバスのサブチャネル部分３１２Ａ〜３１２Ｓはそれぞれ、メモリサブチャネル３０５Ａ〜３０５Ｓに接続される。
【００７３】
メモリコントローラ３２１Ａおよび３２１Ｂは、サブチャネル割り当て器３２２Ａおよび３２２Ｂ、リオーダバッファ３２４Ａおよび３２４Ｂ、およびトランザクションアセンブラ３２６Ａおよび３２６Ｂを含む。
【００７４】
チャネルの論理幅である、Ｎバイトのデータに対するメモリ要求がチャネル割当器３２０に接続される。チャネル割り当て器は、当該メモリ要求を、メモリチャネルの変動などの状況に応じて、メモリチャネル０（３０４Ａ）もしくはメモリチャネル１（３０４Ｂ）に割り当てる。チャネル割り当て器によってメモリチャネルに割り当てられた後、当該Ｎバイトのデータに対するメモリ要求は、メモリコントローラ３２１Ａもしくは３２１Ｂ、そしてサブチャネル割り当て器３２２Ａもしくは３２２Ｂに接続される。
【００７５】
サブチャネル割り当て器３２２Ａおよび３２２Ｂは、当該Ｎバイトの要求をサブチャネル３０５Ａ〜３０５Ｓのうちの１本に割り当てる。図６を参照しつつ説明すると、識別サブチャネル割り当て（Ｉｄｅｎｔｉｔｙ  Ｓｕｂ−ｃｈａｎｎｅｌ  Ａｓｓｉｇｎｍｅｎｔ）、「ｓ」、は以下に説明するプロセスによって定義されるとしてもよい。（１）要求アドレス「Ａ」をＰ個のＳＤＡＢビットだけ右にシフトすると、新しい整数値
【数１】
2008545201.tif 000003
となる。（２）サブチャネル割り当て（Ｓｕｂ−ｃｈａｎｎｅｌ  Ａｓｓｉｇｎｍｅｎｔ）用の値「ｓ」は、
【数２】
2008545201.tif 000004
の最下位Ｑ個のＳＳＢビット
【数３】
2008545201.tif 000005
である。
【００７６】
マイクロタイル方式のメモリコントローラ３２１Ａおよび３２１Ｂは、リオーダバッファ３２４Ａおよび３２４Ｂを有する。リオーダバッファはサブチャネルに対するメモリ要求を並べ替えて、各メモリチャネルにおける帯域幅の効率を上げる。アドレス「Ａ」のＮバイトのデータブロックに対する読み出し要求または書き込み要求がメモリコントローラ３２２Ａまたは３２２Ｂに入力され、サブチャネルに割り当てられ、リオーダバッファに入れられる。リオーダバッファは各サブチャネルのリオーダ行列として実現されるとしてもよい。リオーダバッファは他の形態で実施するとしてもよい。
【００７７】
トランザクションアセンブラ３２６Ａおよび３２６Ｂは、各サブチャネルに１つずつ、リオーダバッファからＳ個の読み出し要求を選択して、メモリ読出しトランザクションを形成する。このとき、Ｓ個の要求はすべて同一の共有アドレスビットを持つ。また、トランザクションアセンブラ３２６Ａおよび３２６Ｂは、各サブチャネルに１つずつ、リオーダバッファからＳ個の書き込み要求を選択して、メモリ書き込みトランザクションを形成する。このとき、Ｓ個の要求はすべて同一の共有アドレスビットを持つ。例えば、トランザクションアセンブラ３２６Ａおよび３２６Ｂは、各サブチャネルに１つずつとなる、４つの１６バイトの要求に基づいて、メモリチャネルにおける６４バイトのトランザクションをアセンブルするとしてもよい。
【００７８】
トランザクションの形成を試みる場合、マイクロタイル方式のコントローラに設けられたトランザクションアセンブラは、ＳＡ個の共有アドレスビットが全てのサブチャネルについて同一であるような要求を、各サブチャネルにつき１つずつ、１セット同時に見つけることができない場合がある。この場合には、要求が見つからなかったサブチャネル上ではデータが転送されないか、もしくは、そのサブチャネル上でデータが転送される場合は、転送されたデータは破棄される。
【００７９】
図５Ａ〜図５Ｃは、メモリチャネル５００Ａ〜５００Ｃのバイトオーダーの例を示す。図５Ａにおいて、メモリチャネル５００Ａの転送サイズは０から６３の番号が振られた６４バイトである。論理幅６４バイトは、メモリチャネルの６４ビットの物理幅によってアクセスできるとしてもよい。
【００８０】
図５Ｂにおいて、メモリチャネル５００Ｂは２本のメモリサブチャネル５０５Ａおよび５０５Ｂに分割されるとしてもよい。メモリサブチャネル５０５Ａおよび５０５Ｂはそれぞれ、６４バイトの転送量の半分を転送するので、各サブチャネルは３２バイトを転送する。メモリサブチャネル５０５Ａは、アクセスされるメモリバイトは番号が０から３１で、図５Ａの番号付けから振り直されている。メモリサブチャネル５０５Ｂは、アクセスされるバイトは番号が３２から６３で図５Ａの番号付けから振り直されている。
【００８１】
図５Ｃにおいて、メモリチャネル５００Ｃは４本のメモリサブチャネル５１５Ａ、５１５Ｂ、５１５Ｃおよび５１５Ｄに分割されるとしてもよい。メモリサブチャネル５１５Ａ、５１５Ｂ、５１５Ｃおよび５１５Ｄはそれぞれ、６４バイトの転送量の４分の１を転送するので、各サブチャネルは１６バイトを転送する。メモリサブチャネル５１５Ａは０から１５の番号が振られたメモリバイトにアクセスし、番号の割り振りは図５Ａの番号付けから振り直されている。メモリサブチャネル５１５Ｂは１６から３１の番号が振られたメモリバイトにアクセスし、番号の割り振りは図５Ａの番号付けから振り直されている。メモリサブチャネル５１５Ｃは３２から４７の番号が振られたメモリバイトにアクセスし、番号の割り振りは図５Ａの番号付けから振り直されている。メモリサブチャネル５１５Ｄは４８から６３の番号が振られたメモリバイトにアクセスし、番号の割り振りは図５Ａの番号付けから振り直されている。このようにして、６４バイトの転送がメモリサブチャネル間で均等に分割され、バイト番号が振り直され、新しく割り当てられる。
【００８２】
図６に戻って、本発明の他の実施形態によると、バイト番号は上記の方法とは違う方法で振り直されるとしてもよい。
【００８３】
上述したように、マイクロタイルメモリアクセスをサポートするべく、Ｉ個の独立アドレスビットと共に、ＳＡ個の共有アドレスビットを利用するとしてもよい。一方、Ｑ個のサブチャネル選択ビットおよびＰ個のサブチャネルデータアドレスビットは、キャッシュラインによってアクセスされる物理バイトをアドレス指定するべく利用される。６４バイトのキャッシュラインの場合、Ｑ個のサブチャネル選択ビットおよびＰ個のサブチャネルデータアドレスビットの合計は６になる。
【００８４】
図６においては、Ｐ個のサブチャネルデータアドレスビットがＡ０〜Ａ８として示されている。同図では、Ｑ個のサブチャネル選択ビットはＡ１０、Ａ８およびその間のビットと示されている。同図において、Ｉ個の独立アドレスビットはＡ９、Ａ１０、Ａ１６、Ａ１８、Ａ２４およびその間のビットとして示されている。同図では、ＳＡ個の共有アドレスビットは例えば、Ａ１１、Ａ１５、Ａ１７、Ａ１９、Ａ２０、Ａ２５、Ａ２６およびＡｘとして示されている。その間のビットも共有アドレスビットとして利用されるとしてもよい。
【００８５】
Ｉ個の独立アドレスビットによって、サブチャネルアドレスはアドレスオフセットにおいて互いに独立している。サブチャネルを完全に独立したものにするためには、メモリコントローラから各サブチャネルへ送られるコマンドおよびアドレスを完全に複製するとしてもよいが、こうするとメモリコントローラのピンカウント、入出力ドライバ用のシリコン領域およびホストのプリント配線基板またはマザーボードにおける配線ルーティングに必要な領域が大幅に増加してしまう。この代わりとして本発明の実施形態は、図６に示すように、全サブチャネルがサブチャネルアドレスビットの１以上の部分を共有し、残りの部分「Ｉ」をサブチャネル毎に独立させる。Ｉ個の独立アドレスビットを慎重に選択することによって、帯域幅効率を高めることができると同時に、Ｉ個のアドレス信号を各サブチャネルに対して複製する場合の損失に対してバランスを取ることができる。
【００８６】
上述したように、Ｉ個の独立アドレスビットは様々な方法で取得されるとしてもよい。例えば、各メモリサブチャネルに対してアドレスラインを追加してルーティングさせることおよび／またはアドレスオーバーロードを利用することなどが挙げられる。
【００８７】
図７は、メモリモジュールＭＭ１〜ＭＭｎの一例としてメモリモジュールＭＭ７１０を示す図である。メモリモジュール７１０は例えば、ＳＩＭＭ（Ｓｉｎｇｌｅ  Ｉｎｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）またはＤＩＭＭ（Ｄｕａｌ  Ｉｎｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）などであってもよい。メモリモジュール７１０は、プリント配線基板７５１に接続されたメモリ用集積回路チップ（メモリデバイス）７５２を有する。プリント配線基板７５１は、エッジコネクタまたはエッジコネクション７５４を持ち、当該エッジコネクタまたはエッジコネクション７５４はホストプリント配線基板７６２のエッジコネクタ７６０に接続される。
【００８８】
メモリモジュール７１０はマイクロタイル方法およびマイクロタイル方式メモリアクセスをサポートする。しかし、他の既存のメモリモジュールはマイクロタイル方法およびマイクロタイル方式メモリアクセスをサポートしない。マイクロタイル方法およびマイクロタイル方式メモリアクセスをサポートしない既存のメモリモジュールは、ホストプリント配線基板７６２の１つのエッジコネクタ７６０に接続されるとしてもよく、その一方、マイクロタイル方法およびマイクロタイル方式メモリアクセスをサポートするメモリモジュール７１０はホストプリント配線基板７６２の別のエッジコネクタ７６０に接続される。マイクロタイル方法をサポートするメモリモジュールはこのようにして、マイクロタイル方法をサポートしないメモリモジュールとシステム内において混合させられるとしてもよい。
【００８９】
メモリのマイクロタイル方式をサポートするべく、本発明の一実施形態においては、プリント配線基板７５１のエッジコネクション７５４のピンアウトのうち未使用の、もしくは接続されていないピンを用いて、メモリ用集積回路７５２に対してアドレス信号ラインを独立して追加するとしてもよい。エッジコネクション７５４の未使用の、もしくは接続されていないピンは、追加された独立アドレス信号ラインをメモリ用集積回路７５２にルーティングするために使用されるとしてもよい。同様の未使用のピンは、マザーボード７６２に実装された対応するエッジコネクタ７６０にも存在する。追加の独立アドレス信号ライン７６３は、独立アドレス情報を追加で供給するべく、メモリ制御ブロック内のメモリコントローラから既存のコネクタに対して、マザーボード７６２を横切るようにしてルーティングされる。メモリモジュールのエッジコネクション７５４のピンアウトには、多くの異なる種類の未使用、もしくは接続されていないピンがあるとしてもよい。
【００９０】
例えば、パリティ機能またはエラー補正コード（ＥＣＣ）機能はエッジコネクション７５４のピンアウトの一部にピンを有するとしてもよい。消費者のことを考慮してメモリモジュールのコストを低減するべく、パリティ機能およびＥＣＣ機能は通常メモリモジュールから外されるので、当該機能用に取っておかれた信号ラインおよびピンが未使用となる場合が多い。つまり、パリティ／ＥＣＣ信号ラインはマザーボードの全てのエッジコネクタにルーティングされるとしてもよいが、ＥＣＣがイネーブルされたメモリモジュール（例えば、ＤＩＭＭ（Ｄｕａｌ  Ｉｎｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ））がインストールされた場合にのみ利用される。メモリモジュールの未使用の既存のＥＣＣライン／ピンは、独立アドレス信号ラインとして改めて割り当てられ、ＥＣＣがイネーブルされていないメモリモジュールにおいてマイクロタイル方式を実現するべく利用される。しかし、ＥＣＣライン／ピンを利用してマイクロタイル方式を実現する場合、ＥＣＣ機能およびマイクロタイル機能の両方を同時にメモリモジュール上でイネーブルすることはできない。上記の解決方法は、パリティ／ＥＣＣのイネーブルを通常必要としない（もしくは望まない）環境において、効果を発揮する。
【００９１】
別の例を挙げると、エッジコネクション７５４のピンアウトのうち任意で設けられるアクティブローデータ信号ラインは、しばしば未使用となる。これは、確実に設けられるアクティブハイ信号ラインに対して冗長であるためである。またさらに別の例として、メモリモジュールのエッジコネクション７５４のピンアウトのうち任意で設けられるテストピンは、テストモードが利用されないこともあるので、未使用となることもある。
【００９２】
どの場合であっても、未使用のピンが独立アドレス信号ピン７５５Ａ〜７５５Ｄとして再割り当てされ、独立アドレス信号ライン７６３はホストプリント配線基板７６２上でルーティングされ、独立アドレス信号ライン７５６Ａ〜７５６Ｄはメモリモジュール７１０のＰＣＢ７５１上でメモリ用集積回路７５２へとルーティングされる。
【００９３】
場合によっては、メモリモジュール７１０はさらに、バッファ用集積回路（バッファ）またはエラー補正制御（ＥＣＣ）用集積回路といった、サポート用集積回路７５０を備えるとしてもよい。しかし上述したように、ＥＣＣがメモリモジュール７１０で実現されていない場合、ＥＣＣ用に取っておかれるはずであったエッジコネクション７５４のピンは未使用となり、マイクロタイル方式をサポートするべくメモリサブチャネル用の独立アドレスラインに対して利用されている可能性がある。
【００９４】
マイクロタイル方式をサポートし、メモリサブチャネルの独立したアドレス指定をサポートするべく、メモリモデル７１０が備える複数のメモリ用集積回路７５２は分割されて、図７に示すような４本のメモリサブチャネル２０５Ａ、２０５Ｂ、２０５Ｃおよび２０５Ｄのような、複数の異なるメモリサブチャネルへと割り当てられるとしてもよい。１つのメモリ用集積回路７５２のデータ入出力のビット幅は通常、４、８または１６ビットである。メモリチャネルの物理幅が６４ビットで各メモリサブチャネルの物理幅が１６ビットの場合、４つの１６ビット幅のメモリ用集積回路７５２であれば、１対１で４つのメモリサブチャネル２０５Ａ、２０５Ｂ、２０５Ｃおよび２０５Ｄへと割り当てられる。メモリチャネルの物理幅を６４ビットとして各メモリサブチャネルの物理幅を１６ビットとするべく、８個の８ビット幅のメモリ用集積回路７５２であれば、２対１で４つのメモリサブチャネル２０５Ａ、２０５Ｂ、２０５Ｃおよび２０５Ｄへと割り当てられる。メモリチャネルの物理幅を６４ビットとして各メモリサブチャネルの物理幅を１６ビットとするべく、１６個の４ビット幅のメモリ用集積回路７５２であれば、４対１で４つのメモリサブチャネル２０５Ａ、２０５Ｂ、２０５Ｃおよび２０５Ｄへと割り当てられる。
【００９５】
メモリサブチャネルが２本の場合、メモリチャネルの物理幅を６４ビットとして各メモリサブチャネルの物理幅を３２ビットとするべく、４個の１６ビット幅のメモリ用集積回路７５２であれば、２対１で２つのメモリサブチャネルへと割り当てられる。メモリチャネルの物理幅を６４ビットとして各メモリサブチャネルの物理幅を３２ビットとする場合、８個の８ビット幅のメモリ用集積回路７５２であれば、４対１で２つのメモリサブチャネルへと割り当てられる。メモリチャネルの物理幅を６４ビットとして各メモリサブチャネルの物理幅を３２ビットとする場合、１６個の４ビット幅のメモリ用集積回路７５２であれば、８対１で２つのメモリサブチャネルへと割り当てられる。
【００９６】
メモリモジュールのエッジコネクション７５４および標準エッジコネクタ７６０の未使用のピンを利用することによって、メモリモジュール７１０は既存のメモリサブシステムに対して後方互換性を有することができる。
【００９７】
一例として、図３Ａに示すように、４本の独立メモリサブチャネルが各メモリチャネルにあるとする。各サブチャネルのメモリ領域に独立してアクセスできるよう、サブチャネル毎に独立アドレスラインが４本追加されるとしてもよい。アドレスライン３１１Ａ〜３１Ｄ（Ａ９〜Ａ６と示す）は、サブチャネル毎に独立している。既存のアドレスラインとして４本のアドレスラインが１セットあるとすると、ルーティングされる追加アドレスラインの合計数は４本×３で、１２本の独立アドレス信号ラインとなる。既存のエッジコネクタおよびメモリモジュールのピンアウトの一部が未使用の場合、独立アドレス信号を追加するにはメモリモジュールに対してマザーボードを介して追加信号ラインをルーティングするとしてもよい。
【００９８】
図８はメモリ用集積回路８００を示すブロック図である。メモリ用集積回路８００は、１以上のメモリデバイス７５２として、メモリモジュールＭＭ１〜ＭＭｎに備えられるとしてもよい。メモリ用集積回路８００は、メモリアレイ８０１、行アドレスデコーダ８０２、ビットラインプリチャージ／リフレッシュロジック８０３、列デコーダ８０４、センス増幅器アレイおよび書き込みドライバブロック８０６、コントローラ８０８、アドレスバッファ８１１およびマイクロタイル方式制御ロジック８１２を有し、これらの構成要素は図示するように互いに接続されている。マイクロタイル方式制御ロジック８１２は、オーバーロードロジック（ＯＬ）と呼ぶとしてもよい。
【００９９】
コントローラ８０８は、メモリ用集積回路８００の一般的な機能を制御するべく設定／初期化され得る複数のビットを持つ、モードレジスタ８１０を有する。当該モードレジスタは、上記ビットを格納するためのビットストレージ回路を持つ。モードレジスタ８１０のビットは、ロードストローブと同時に、アドレスライン８２０またはデータライン８２１に対して適切なビット設定を印加することによって設定されるとしてもよい。ロードストローブは、メモリがアイドル状態の場合にメモリ用集積回路のコントローラ８０８に接続された制御ライン８２２のうち１以上の制御ライン８２２をトグルすることによって生成されるとしてもよい。コントローラ８０８は制御ライン８２２のうち１以上の制御ライン８２２を受け取る。当該１以上の制御ライン８２２には、行アドレスストローブＲＡＳ＃、列アドレスストローブＣＡＳ＃、書き込みイネーブルＷＥ＃、チップ選択ＣＳ＃、バンク選択ＢＡ０、ＢＡ１、ＢＡ２またはこれ以外の標準規格メモリ用集積回路制御入力が含まれるとしてもよい。
【０１００】
具体的には、モードレジスタ８１０は、マイクロタイル方式メモリアクセスをサポートするように集積回路８００を構成するための用いられるとしてもよい。以下で詳述するが、モードレジスタ８１０が持つビットのうち１つは、マイクロタイル方式イネーブルビットである。マイクロタイル方式イネーブルビットは、アクティブハイのビットでＭＴＥビットと呼ぶとしてもよい。もしくは、マイクロタイル方式イネーブルビットは、アクティブローのビットでＭＴＥ＃と呼ぶとしてもよい。どちらの場合にしても、マイクロタイル方式イネーブルビットは通常、マイクロタイルイネーブルビットまたはＭＴＥビットと呼ぶとしてよい。マイクロタイルイネーブルビットは、デバイスの電源が最初に入った場合もしくはリセットされた場合にマイクロタイル方式がディセーブルされるように、デフォルトでリセットされる。このようにすることによって、メモリモジュール７１０およびメモリ用集積回路８００は、マイクロタイル方式をサポートしないシステムに挿入された場合には、後方互換性を有することができる。モードレジスタ８１０はさらに、どのメモリサブチャネルに対してメモリ用集積回路が割り当てられてアドレス指定可能になっているか示す、１以上のサブチャネル選択（ＳＣＳ）ビットを持つ。ＭＴＥビットおよび１以上のＳＣＳビットは、マイクロタイル方式制御ロジック８１２に接続される。マイクロタイル方式をサポートしていないメモリモジュールでは、どのモードレジスタにも、マイクロタイル方式制御ロジック８１２をイネーブルとするために設定され得るＭＴＥビット８５０がない。
【０１０１】
ロードストローブはロードモードレジスタコマンドによって生成されビット設定をモードレジスタにロードするべく利用されるが、メモリ用集積回路からモードレジスタ内に格納されるビット設定を読み出すためには新しいコマンドが利用される。モードレジスタのビットを読み出すべく、メモリ用集積回路にステータスコマンドが供給されるとしてもよい。当該ステータスコマンドは、メモリがアイドル状態の場合に、メモリ用集積回路のコントローラ８０８に接続される制御ライン８２２のうち１以上の制御ラインを、一意的な方法でトグルまたは設定することによって、形成されるとしてもよい。この場合、マイクロタイル方式をサポートするメモリ用集積回路からは、ＭＴＥビット８５０が読み出される可能性がある。マイクロタイル方式をサポートしていないメモリモジュールの場合には、読み出すべきＭＴＥビット設定はモードレジスタ内に設けられていないので、ステータスコマンドは利用できない。この場合、メモリモジュールおよびその上に設けられたメモリ用集積回路はステータスコマンドには反応せず、および／または、マイクロタイル方式がサポートされていない場合はＭＴＥビット設定の応答もない。
【０１０２】
マイクロタイル制御ロジック８１２は、複数のアドレス信号ライン８２０に接続され、アドレスを、アドレスバッファ８１１を介して列アドレスデコーダ８０４および／または行アドレスデコーダ８０２へと接続する。アドレスバッファ８１１は、内部アドレス信号ライン上のアドレス信号をラッチして当該アドレス信号をアドレスデコーダのために保持するとしてもよい。制御ロジック８１２はまた、メモリアレイ８０１へのマイクロタイルメモリアクセスをサポートするべく、マイクロタイルイネーブルビットおよび少なくとも１つのサブチャネル選択ビットを受け取る目的で、コントローラ内に設けられたモードレジスタに接続される。マイクロタイルイネーブルビットおよび少なくとも１つのサブチャネル選択ビットに応じて、制御ロジック８１２は、割り当てられている所定のサブチャネルの独立アドレス情報を取得するべく、アドレス信号ラインのうち１以上を選択する。つまり、所定のサブチャネルに割り当てられるのはアドレス信号ラインの一部のみであるとしてもよい。制御ロジック８１２は、独立アドレス情報を抽出するべく、この一部のアドレス信号ラインを選択する。これ以外のアドレス信号ラインは、他のサブチャネルに利用されるとしてもよいし、全サブチャネルによって共有される共有アドレス信号ラインであってもよい。制御ロジック８１２は、独立アドレス情報を、列アドレスデコーダ８０４および／または行アドレスデコーダ８０２に接続する。制御ロジックによる１以上のアドレス信号ラインの選択はさらに、列アドレスロード信号（ＣＡＳ＃）およびトランザクションイネーブル信号に基づいて行われるとしてもよい。
【０１０３】
さらに１つの有効ビットの独立アドレス情報を別の有効ビット位置へとスウィズルするべく、マイクロタイル制御ロジック８１２に対して制御ロジックを追加して設けるとしてもよい。これは、マイクロタイル方式がイネーブルされている場合に、スクリーンリフレッシュのためなど、ある程度線形のアドレス指定方法を実現するためのものである。
【０１０４】
センス増幅器アレイおよび書き込みドライバブロック８０６は、データ入出力（Ｉ／Ｏ）バスに接続され、メモリアレイからデータを読み出すための、もしくはメモリアレイ８０１にデータを書き込むための制御信号をコントローラ８０８から受け取るとしてもよい。センス増幅器アレイおよび書き込みドライバブロック８０６は、データ入出力（Ｉ／Ｏ）バス８２１を介して、メモリアレイ８０１に書き込むべきデータを受け取り、メモリアレイ８０１から読み出されたデータを出力する。データ入出力（Ｉ／Ｏ）バス８２１は、メモリ用集積回路８００に備えられた、通常４ビット、８ビットまたは１６ビットのビット幅を持つ双方向データラインを含む。
【０１０５】
メモリアレイ８０１は、行列形式に編成されたメモリセルを有する。メモリセルは通常、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）セルであるが、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）セルであってもよいし、プログラム可能な不揮発性型（ＮＶＲＡＭ）の書き換え可能なメモリセルであってもよい。
【０１０６】
行アドレスデコーダ８０２は、アドレスライン上の行アドレスを受け取り、メモリアレイ８０１内においてある行のメモリセルをアドレス指定するべく、１つのワードライン（ＷＬ）上で信号を生成する。列デコーダ８０４もまた、アドレスライン上の列アドレスを受け取り、当該ある行のメモリセルのうちどの列にアクセスすべきかを選択する。基本的に列デコーダ８０４は、アクセスすべきメモリセルに対応するビットラインを選択する。読み出しアクセスの場合、列デコーダ８０４はマルチプレクサとして機能する。書き込みアクセスの場合、列デコーダ８０４はデマルチプレクサとして機能する。列アドレスデコーダ８０４は、共有列アドレス信号に基づいて、メモリアレイ８０１内のメモリセルの列に対して選択的にアクセスする。モードレジスタ内でマイクロタイルイネーブルビットが設定されていれば、列アドレスデコーダ８０４は、独立サブチャネル列アドレス信号にさらに基づいて、メモリアレイ８０１内のメモリセルの列に対して選択的にアクセスする。
【０１０７】
センス増幅器アレイおよび書き込みドライバブロック４０６は、読み出し動作中においてアクセスされたメモリセル内に格納されているのが論理値１であるか論理値０であるのかを判断するべく、センス増幅器を有するとしてもよい。読み出し動作において、アドレス指定されたメモリセルは、メモリアレイのビットラインのうち選択されたビットラインに対して論理値１もしくは論理値０を出力するよう試みる。センス増幅器は、読み出し動作において、メモリアレイのビットラインのうち選択されたビットラインに対してアドレス指定されたメモリセルが出力した値が論理値１であるか論理値０であるかを検出する。センス増幅器アレイおよび書き込みドライバブロック４０６はさらに、書き込み動作において、メモリアレイのビットラインのうち選択されたビットラインに対して、およびアドレス指定されたメモリセルに対して、論理値１または論理値０を出力する書き込みドライバを有するとしてもよい。
【０１０８】
プリチャージ／リフレッシュブロック８０３はメモリアレイ８０１のビットラインに接続される。プリチャージ／リフレッシュブロック８０３は、読み出し動作または書き込み動作においてメモリセルに対するアドレス指定に先立って、ビットラインの準備を整えるとしてもよい。プリチャージ／リフレッシュブロック８０３はまた、動作していない期間において、メモリアレイ８０１内のメモリセルに格納されているデータをリフレッシュするとしてもよい。
【０１０９】
あるメモリサイクルにおいて、メモリ用集積回路８００に接続された既存の信号ラインのうち何本かは使用されていないため、別の目的を達成するべく再割り当てすることができる。一例を挙げると、ＣＡＳ（列アドレスストローブ）サイクルの間は、アドレスライン全てが使用されているわけではない。使用されていないアドレス信号ラインは、ＣＡＳサイクルにおいて、メモリモジュール（例えばＤＩＭＭ）およびその内部に設けられたメモリ用集積回路デバイスに対して追加のアドレス情報を供給するように、再割り当てすることが可能である。メモリ制御ブロック２０２内に設けられたメモリコントローラ２０８が、ＣＡＳサイクルにおいて、上記の使用されていないアドレス信号ラインを介して、追加のアドレス情報を送信する。マイクロタイル方式制御ロジック回路８１２が追加され、モードレジスタ８１０内にビットを有するメモリ用集積回路８００は、ＣＡＳサイクルにおいて、使用されていなかったアドレス信号ラインを介して送信されるこのようなオーバーロード信号を認識してデコードする。
【０１１０】
図９は、マイクロタイル方式をサポートするべく、モードレジスタ８１０Ａに接続されるようにメモリ用集積回路内に設けられた、マイクロタイル方式メモリ制御ロジック８１２Ａの一例を示す図である。本実施例に係るマイクロタイル方式メモリ制御ロジック８１２Ａは、使用されていないメモリサイクル、例えばＣＡＳサイクルにおいて追加のアドレス情報を有するオーバーロードされたアドレス信号ラインをデコードする。マイクロタイル方式メモリ制御ロジック８１２Ａを示す同図の概略図によると、マイクロタイル方式をサポートするべく４本のサブチャネルが設けられており各サブチャネルの論理幅は１６バイトとなっている。
【０１１１】
マイクロタイル方式メモリ制御ロジック８１２Ａの中心となるのは、独立アドレス情報を取得するデュアル４入力マルチプレクサ９００である。マイクロタイル方式メモリ制御ロジック８１２Ａのデュアル４入力マルチプレクサ９００は、マルチプレクス出力（Ａ３'およびＡ４'）において、共有列アドレス信号または独立サブチャネル列アドレス信号を選択的に出力する。デュアル４入力マルチプレクサの出力（Ａ３'およびＡ４'）は列アドレスデコーダの入力に接続されている。独立サブチャネル列アドレス信号は、メモリサブチャネルで受け取るべく選択された１以上の独立列アドレス信号である。
【０１１２】
マイクロタイル制御ロジック８１２Ａはメモリ用集積回路のアドレスピンからアドレスラインを受け取る。マイクロタイル制御ロジック８１２Ａは、行アドレスデコーダおよび列アドレスデコーダに分配されるべく、アドレスバッファにアドレスを供給する。メモリ用集積回路のアドレスピンの一部は、共有行アドレス信号、共有列アドレス信号、独立列アドレス信号もしくはこれらの組み合わせのいずれかを受け取る。例えば、アドレスピンＡ５〜Ａ９およびＡ１３はマイクロタイル制御ロジック８１２Ａを通り抜けるように設けられ、共有行アドレス信号および／または共有列アドレス信号を、メモリサブチャネルで受け取るとしてもよい。アドレスピンＡ０〜Ａ４およびＡ１０〜Ａ１２はデュアル４入力マルチプレクサ９００に接続され、共有行アドレス信号およびマイクロタイル方式がイネーブルされている場合は、独立列アドレス信号を受け取るとしてもよい。マイクロタイル方式がイネーブルされていない場合、デュアル４入力マルチプレクサ９００に接続されたアドレスピンＡ３およびＡ４は、共有行アドレス信号および／または共有列アドレス信号を受け取るとしてもよい。列アドレスロードストローブピンＣＡＳ＃は、列アドレスロードストローブ信号を受け取り、メモリ用集積回路内を取得するべくあるサブチャネルに割り当てられたアドレスピン上の独立列アドレス信号のうち適切な１以上の独立列アドレス信号を選択的に受け取るべく、制御ロジック８１２Ａに接続されている。列アドレスロードストローブ信号はまた、適切なアドレスピン以外で共有列アドレス信号を受け取って取得するためにも利用するとしてもよい。
【０１１３】
モードレジスタ８１０Ａは３ビット格納回路を備えるとしてもよい。当該３ビット格納回路は例えば、マイクロタイルイネーブル（ＭＴＥ）ビットの設定を格納するためのフリップフロップまたはメモリセル、サブチャネル選択ビット０（ＳＣＳ０）ビット、およびサブチャネル選択ビット１（ＳＣＳ１）ビットである。モードレジスタ８１０Ａのこれらの３ビットは、適切なサブチャネル選択ビットおよびマイクロタイルイネーブルビットを用いてプログラムされる。上述した３ビットは、電源投入時またはリセット時といった初期化中において、メモリ用集積回路が受け取るビット設定に基づいて、設定／リセットされる。当該３ビットはまた、メモリ用集積回路がアイドル状態でメモリアクセスが行われていない場合に、設定／リセットされるとしてもよい。ビット設定は、アドレス信号ラインまたはデータ信号ラインを介して受け取られ、メモリ用集積回路に接続された１以上の制御ライン入力によって生成されるロードストローブ信号に対応してモードレジスタにロードされるとしてもよい。メモリ用集積回路においてマイクロタイル方式がイネーブルされる予定の場合は、マイクロタイルイネーブルビットＭＴＥを設定する。ＭＴＥビットはアクティブハイのため、高ロジックレベルに設定される。アクティブローの場合には、ＭＴＥ＃ビットが低ロジックレベルに設定される。図９に例示した制御ロジックでは、メモリチャネルが持つサブチャネルの数は４以下である可能性がある。ここで、ＳＣＳ０ビットおよびＳＣＳ１ビットによって、当該メモリ用集積回路は４本のメモリサブチャネルのうちのいずれかに割り当てられる。同一メモリモジュール上に設けられた他のメモリ用集積回路は、４本のメモリサブチャネルのうち別の１本に割り当てられるとしてもよい。
【０１１４】
各サブチャネルの独立アドレス情報は、ＣＡＳサイクルにおいて、アドレスラインＡ０〜Ａ４およびＡ１０〜Ａ１２といった既存のアドレスラインを介して入手できる。本例によると、アドレスラインＡ３およびＡ４は普通に使用される。従って、アドレスラインＡ０、Ａ１、Ａ２、Ａ１０、Ａ１１、Ａ１２およびＡ１３がオーバーロードされる信号ラインとなる（Ａ１３は、トランザクション毎に特定されるが、マイクロタイルトランザクションイネーブル信号ラインとしてもよい）。既存のアドレスラインをオーバーロードするこの方法によると、実質的には６本の追加アドレスライン（Ａ０〜Ａ２およびＡ１０〜Ａ１２）が、配線（つまり、ワイヤによるルーティング）またはピンを追加する必要なくメモリ用集積回路デバイスに提供される。
【０１１５】
マイクロタイル方式メモリ制御ロジック８１２Ａは各メモリ用集積回路に設けられるので、モードレジスタに格納されたサブチャネル選択ビットに応じてアドレスラインＡ０〜Ａ４およびＡ１０〜Ａ１２から適切な独立サブチャネルアドレス情報が選択される。サブチャネル選択ビットの設定は、マルチプレクサ９００の入力選択プロセスを制御するべく、モードレジスタ８１０Ａからマイクロタイル方式メモリ制御ロジック８１２Ａにルーティングされる。マルチプレクサ９００の出力端子は、アドレス信号ラインＡ３'およびＡ４'に接続される。アドレス信号ラインＡ３'およびＡ４'は、メモリアレイからメモリセルを選択するべく、アドレスデコーダ（例えば、列アドレスデコーダ８０４）に接続される。
【０１１６】
マイクロタイル方式制御ロジックは、ＣＡＳ＃がアクティブロー（ＣＡＳサイクル）の場合である列アドレス書き込みアクセス時間において、メモリのアドレス信号ラインＡ３'およびＡ４'をオーバーロードするとしてもよい。つまり、アドレスビットＡ０、Ａ１、Ａ２、Ａ１０、Ａ１１およびＡ１２は通常、マイクロタイル方式が採用されていない場合には、メモリ用集積回路に列アドレスが書き込まれている間には使用されないアドレスビットである。アドレスビットＡ３およびＡ４は、Ａ３'およびＡ４'によって置換されるが、メモリ用集積回路に列アドレスを書き込むために使用されるアドレスビットである。マイクロタイル方式でない場合ＣＡＳサイクルの間は通常アドレスビットは使用されないが、ＲＡＳ＃がアクティブロー（ＲＡＳサイクル）の場合に、メモリ用集積回路への行アドレスの書き込みにおいてメモリ用集積回路で行アドレスを選択するためにアドレスビットが利用されることがある。このことを本明細書ではアドレスオーバーロードと呼んでいる。列アドレスストローブＣＡＳ＃の間はＡ０、Ａ１、Ａ２、Ａ１０、Ａ１１およびＡ１２が使用されないアドレスビットとして図９では図示されているが、これら以外の未使用のアドレスビットが、マイクロタイル方式をサポートするためにオーバーロードされたアドレス信号ラインとして利用されるとしてもよい。
【０１１７】
マイクロタイル方式メモリ制御ロジック８１２Ａは、デュアル４入力マルチプレクサ９００、３入力ＡＮＤゲート９０３、複数の２入力ＡＮＤゲート９０４〜９１１および複数のインバータ９１２〜９１８を有し、上記の構成要素は互いに図示するように接続されている。ＡＮＤゲートがＮＡＮＤゲートと当該ＮＡＮＤゲートの出力に接続されたインバータによって構成されるのは公知である。
【０１１８】
デュアル４入力マルチプレクサ９００は一対の４：１マルチプレクサで、各マルチプレクサは第１選択制御入力Ｓ０および第２選択制御入力Ｓ１を有し、第１選択制御入力Ｓ０同士および第２選択制御入力Ｓ１同士は接続されている。第１の４：１マルチプレクサは、入力１Ｉ０〜１Ｉ３を受け取り、選択制御入力Ｓ０およびＳ１に応じた出力１Ｙを供給する。第２の４：１マルチプレクサは、入力２Ｉ０〜２Ｉ３を受け取り、選択制御入力Ｓ０およびＳ１に応じた出力２Ｙを供給する。Ｓ０とＳ１が共に論理値Ｌまたは０である場合、入力１Ｉ０および２Ｉ０がそれぞれ出力１Ｙおよび２Ｙに対してマルチプレクスされる。Ｓ０が論理値Ｈまたは１でＳ１が論理値Ｌまたは０である場合、入力１Ｉ１および２Ｉ１がそれぞれ出力１Ｙおよび２Ｙにマルチプレクスされる。Ｓ０が論理値Ｌまたは０でＳ１が論理値Ｈまたは１である場合、入力１Ｉ２および２Ｉ２がそれぞれ出力１Ｙおよび２Ｙにマルチプレクスされる。Ｓ０とＳ１が共に論理値Ｈまたは１である場合、入力１Ｉ３および２Ｉ３がそれぞれ出力１Ｙおよび２Ｙに対してマルチプレクスされる。
【０１１９】
デュアル４入力マルチプレクサ９００の第１の４入力マルチプレクサは、入力１Ｉ０〜１Ｉ３においてアドレスビットＡ３、Ａ０、Ａ１およびＡ２を受け取り、受け取ったアドレスビットのうち１つを選択して、１Ｙ出力からアドレス信号ラインＡ３'へと出力する。第２の４入力マルチプレクサは、入力２Ｉ０〜２Ｉ３においてアドレスビットＡ４およびＡ１０〜Ａ１２を受け取り、受け取ったアドレスビットのうち１つを選択して、２Ｙ出力からアドレス信号ラインＡ４'へと出力する。選択制御入力Ｓ０およびＳ１はそれぞれ、ＡＮＤゲート９０４および９０５の出力へと接続される。
【０１２０】
ＡＮＤゲート９０３は、出力においてマイクロタイルモード信号（ＭＴＭ）９０２Ａを生成する。マイクロタイルモード信号９０２Ａはアクティブハイで、独立アドレス信号が、デュアル４入力マルチプレクサ９００に接続されている、オーバーロードされたアドレス信号ライン上にある場合に適切なタイミングで生成される。インバータ９１２は、出力において、アクティブローなＣＡＳ＃信号を反転させてアクティブハイのＣＡＳ信号を生成する。当該インバータ９１２の出力はＡＮＤゲート９０３の入力に接続されている。ＡＮＤゲート９０３は、ＣＡＳ信号、ＭＴＥビット設定（ＭＥ）およびトランザクションイネーブル信号（ＴＥ、アドレスビットＡ１３）を論理加算して、マイクロタイルモード信号９０２Ａを生成する。つまり、マイクロタイル方式がＭＴＥビットによってイネーブルとされ、トランザクションがＴＥ信号によってイネーブルとされている場合、ＣＡＳ＃が論理値Ｌであればマイクロタイルモード信号（ＭＴＭ）９０２Ａが生成される。
【０１２１】
マイクロタイルモード信号（ＭＴＭ）９０２Ａは、ＡＮＤゲート９０４および９０５の入力に接続されており、サブチャネル選択ビットＳＣＳ０およびＳＣＳ１を制御する。何らかの理由でマイクロタイルモード信号（ＭＴＭ）９０２Ａが論理値Ｌとなった場合、マルチプレクサ９００の選択制御入力Ｓ０およびＳ１は、ＡＮＤゲート９０４および９０５の出力において、論理値がＬまたは０となる。Ｓ０およびＳ１が共に論理値Ｌまたは０となった場合、入力１Ｉ０および２Ｉ０に接続されたアドレスビットＡ３およびＡ４がそれぞれ出力１Ｙおよび２Ｙにおいてアドレス信号ラインＡ３'およびＡ４'にマルチプレクスされる。ビットＡ３およびＡ４は単に信号ラインＡ３'およびＡ４'へと通過するだけである。マイクロタイル方式がイネーブルされていない場合、もしくはビットＡ３およびＡ４が他の目的、例えば行アドレス指定に使用されている場合には、これがデフォルト状態となる。
【０１２２】
マイクロタイルモード信号（ＭＴＭ）９０２Ａがアクティブハイの場合、サブチャネル選択ビットＳＣＳ０およびＳＣＳ１が、ＡＮＤゲート９０４および９０５を介して、マルチプレクサ９００の選択制御入力Ｓ０およびＳ１に接続される。このため、マイクロタイルモード信号（ＭＴＭ）９０２ＡがアクティブハイとなるようにＡＮＤゲート９０３によって生成される場合、サブチャネル選択ビットＳＣＳ０およびＳＣＳ１によって、４つの入力のうちいずれを選択してマルチプレクサ９００の出力にマルチプレクスするかが制御される。サブチャネル選択ビットＳＣＳ０およびＳＣＳ１の設定は、メモリ用集積回路が割り当てられるサブチャネルを指し示し、マルチプレクサ９００に接続されているアドレスビットラインのうちどれが、ＣＡＳサイクルにおいて独立アドレス信号を取得するために使用されるかを決定する。
【０１２３】
サブチャネル選択ビットＳＣＳ０およびＳＣＳ１の設定は、サブチャネル毎に異なる。サブチャネルが４本ある場合、サブチャネル選択ビットＳＣＳ０およびＳＣＳ１については４つの異なる設定がある。しかし、４本のサブチャネルをサポートするべく構成されたマイクロタイル制御ロジックは、サブチャネル選択ビットＳＣＳ０およびＳＣＳ１について２つの異なる設定のみを使用することによって、サポートするサブチャネルの数を２本にまで簡単に低減できる。サブチャネル選択ビットＳＣＳ０およびＳＣＳ１について設定を異ならせることによって、マイクロタイルモード信号が生成された場合に、独立アドレス信号を取得するためのアドレス信号ラインとして、マルチプレクサ９００は複数の異なるアドレス信号ラインを選択する。
【０１２４】
マイクロタイルモード信号（ＭＴＭ）９０２Ａはまた、ＡＮＤゲート９０６〜９１１の第１入力において、インバータ９１３〜９１８に接続されている。アドレス信号Ａ０、Ａ１、Ａ２、Ａ１０、Ａ１１およびＡ１２は、ＡＮＤゲート９０６〜９１１の第２入力に接続されている。マイクロタイルモード信号（ＭＴＭ）９０２Ａは、メモリ用集積回路に接続されたアドレスラインＡ０、Ａ１、Ａ２、Ａ１０、Ａ１１およびＡ１２上の信号を、ＡＮＤゲート９０６〜９１１の出力Ａ０'、Ａ１'、Ａ２'、Ａ１０'、Ａ１１'およびＡ１２'において制御する。つまり、マイクロタイルモード信号（ＭＴＭ）９０２Ａが論理値Ｌまたは０の場合、ＡＮＤゲート９０６〜９１１は、アドレスラインＡ０、Ａ１、Ａ２、Ａ１０、Ａ１１およびＡ１２上の信号を、出力Ａ０'、Ａ１'、Ａ２'、Ａ１０'、Ａ１１'およびＡ１２'ならびにアドレスデコーダへと通過させる。一方、マイクロタイルモード信号（ＭＴＭ）９０２Ａが論理値Ｈまたは１の場合、ＡＮＤゲート９０６〜９１１は、出力Ａ０'、Ａ１'、Ａ２'、Ａ１０'、Ａ１１'およびＡ１２'はすべて論理値Ｌまたは０へと制御する。このように、独立アドレス情報を取得するべくマイクロタイルモード信号（ＭＴＭ）９０２Ａがアクティブハイの場合、論理値０に制御されるので出力Ａ０'、Ａ１'、Ａ２'、Ａ１０'、Ａ１１'およびＡ１２'は使用されない。
【０１２５】
マイクロタイル方式がイネーブルされたメモリモジュールおよびメモリＩＣの検出
図１０Ａは、メモリ用集積回路内においてマイクロタイルメモリアクセスに対するサポートがあるかどうか検出するための第１の方法を示すフローチャートである。当該方法は、マイクロタイルメモリアクセスをサポートできるホストプリント配線基板およびシステムにおいてブロック１０００Ａの処理から開始される。マイクロタイル方式がイネーブルされたメモリモジュールおよびメモリ用集積回路を検出するべく、メモリコントローラのメモリ要求リオーダ機能をディセーブルする。ディセーブルしないと、メモリ要求がリオーダされてしまった場合、誤った指定がなされてしまう可能性がある。
【０１２６】
ブロック１００２において、メモリモジュールおよびメモリ用集積回路においてマイクロタイル方式をイネーブルすることに先立って、一意的なビットパターンを持つキャッシュラインを各メモリチャネルの開始アドレスに書き込む。マイクロタイル方式がディセーブルされている場合、当該開始アドレスはメモリモジュール間およびメモリ用集積回路間で共有される開始アドレスである。キャッシュラインの一意的なビットパターンは、図１１Ａに示したものと同様であってもよい。図１１Ａに示したビットパターンは、キャッシュラインのバイトオーダーを指定している。またキャッシュラインの一意的なビットパターンは、図１２Ａから図１２Ｅに図示したような、隣接するバイト同士を識別するような別の一意的なパターンであってもよい。キャッシュラインの一意的なビットパターンは、２つの目的を持つとしてもよい。つまり、マイクロタイル方式を検出するためとメモリエラーがないかメモリモジュールのメモリを試験するために用いられるとしてもよい。さらに、同一のパターンを持つ１つのキャッシュラインは、メモリの複数の異なる開始アドレスに書き込まれるとしてもよい。
【０１２７】
続いてブロック１００３Ａにおいて、メモリチャネルの各メモリモジュールの各メモリ用集積回路に対して、マイクロタイルメモリアクセスのイネーブルを試みる。マイクロタイルメモリアクセスをサポートしているメモリモジュールであればイネーブルされる。マイクロタイルメモリアクセスをサポートしていないメモリモジュールは、もしあれば、イネーブルされない。この場合、マイクロタイルメモリアクセスをサポートしていないメモリモジュールおよびメモリ用集積回路に対して行われた、マイクロタイルメモリアクセスをイネーブルしようとする試みは失敗することになる。また、サブチャネル選択（ＳＣＳ）ビットを対応するサブチャネルへと割り当てるべく、メモリ用集積回路のモードレジスタの１以上のサブチャネル選択（ＳＣＳ）ビットを設定しようと試みるとしてもよい。
【０１２８】
ブロック１００６Ａにおいてメモリに対してマイクロタイルメモリアクセスをイネーブルすることを試みた後、同一の開始アドレスで始まるキャッシュラインを読み出すためのメモリ要求がメモリ制御ブロックおよびメモリコントローラに対して発行される。要求は同一の開始アドレスにおいてなされるが、マイクロタイル方式がイネーブルされたマイクロタイルメモリコントローラは、メモリモジュールおよびメモリ用集積回路においてマイクロタイルメモリアクセスがイネーブルされていれば、当該開始アドレスを、各メモリサブチャネルに対する独立した開始アドレスへと翻訳しようと試みる。しかしメモリモジュールおよびメモリ用集積回路においてマイクロタイルメモリアクセスがイネーブルされておらずサポートされていなければ、同一の開始アドレスにおける読み出し要求は、メモリモジュールおよびメモリ用集積回路によって独立アドレスとして解釈されない。代わりに、共有アドレスとして解釈され、書き込みアクセスの場合と同様に、それぞれにおいて同一のメモリ位置に対してアクセスがなされる。同一の開始アドレスを用いてキャッシュラインに対するメモリ要求を発行したが、マイクロタイル方式では、各メモリチャネルのサブチャネル内のデータにアクセスする場合、各サブチャネルおよびその内部に設けられたメモリ用集積回路に対して独立アドレスを使用する。メモリ用集積回路およびメモリモジュールがマイクロタイル方式をサポートせず独立アドレスが利用できない場合、一意的なデータビットパターンを書き込む場合に用いられたのと同様に、読み出し要求において各メモリ用集積回路に対して同一の開始アドレスが使用される。この場合、書き込まれた同一の一意的なデータビットパターンが、マイクロタイル方式をサポートしないメモリモジュールおよびメモリ用集積回路から読み出されることになる。
【０１２９】
上記の動作は図４Ａ〜図４Ｃに図示されている。図４Ａでは、マイクロタイル方式がイネーブルされておらず、６４バイトのキャッシュラインのデータが４×４のピクセルタイルであるスパン４０４Ａをレンダリングしている。図４Ｂでは、マイクロタイル方式がイネーブルされており、各メモリチャネルには２本のサブチャネルが設定されている。１本のサブチャネルから得られるダブルサブスパン４１４Ａによってスパン４０４Ａの一部分がレンダリングされる一方、ダブルサブスパン４１４Ｂのように別の関係ないダブルスパンが、メモリチャネルの別のサブチャネルによってアクセスされる。つまり、マイクロタイル方式がイネーブルされている場合、異なるメモリ位置に対してアクセスが行われる。図４Ｃでは、マイクロタイル方式がイネーブルされており、各メモリチャネルには４本のサブチャネルが設定されている。１本のサブチャネルから得られるサブスパン４２４Ａによって、スパン４０４Ａの一部がレンダリングされる一方、サブスパン４２４Ｂ〜４２４Ｄといった別の関係ないサブスパンが、メモリチャネルの別のサブチャネルによってアクセスされる。図示内容から分かるように、マイクロタイル方式がイネーブルされている場合、マイクロタイル方式がディセーブルされている場合とは異なるメモリ位置がキャッシュラインによってアクセスされる。マイクロタイル方式がディセーブルされている場合とイネーブルされている場合のメモリアクセスの相違点は、図５Ａ〜図５Ｃおよび図１１Ａ〜図１１Ｃにおいても図示されており、以下でもさらに説明する。
【０１３０】
続いてブロック１００８Ａにおいて、メモリ用集積回路およびメモリモジュールにおいて、マイクロタイル方式がディセーブルされた状態でメモリチャネルに書き込んだキャッシュライン（書き込みキャッシュラインと呼ぶ）と、可能であればマイクロタイル方式がイネーブルされた状態でメモリチャネルから読み出されたキャッシュライン（読み出しキャッシュラインと呼ぶ）とを比較する。メモリ用集積回路およびメモリモジュールにおいてマイクロタイル方式がイネーブルできない場合、同一の開始アドレスを用いた書き込みメモリアクセスおよび読み出しメモリアクセスは同一のメモリ位置にアクセスすることになり、メモリに書き込まれたキャッシュラインのデータビットとメモリから読み出されたキャッシュラインのデータビットの間に相違はない。
【０１３１】
ブロック１０１０Ａにおいて、読み出しキャッシュラインのビットと書き込みキャッシュラインのビットが一致するかどうか判断する。ブロック１０１２Ａにおいて、読み出しキャッシュラインのビットと書き込みキャッシュラインのビットが一致しないということは、メモリチャネル、メモリモジュールおよびメモリ用集積回路がマイクロタイルメモリアクセスをサポートするので、当該方法はブロック１０５０Ａで終了する。ブロック１０１４Ａにおいて、読み出しキャッシュラインのビットと書き込みキャッシュラインのビットが一致するということは、メモリチャネル、メモリモジュールおよびメモリ用集積回路がマイクロタイルメモリアクセスをサポートしないので、当該方法はブロック１０５２Ａにおいて終了する。
【０１３２】
図１０Ｂは、メモリ用集積回路内においてマイクロタイルメモリアクセスに対するサポートがあるかどうか検出するための第２の方法を示すフローチャートである。当該方法は、マイクロタイルメモリアクセスをサポートできるホストプリント配線基板およびシステムにおいてブロック１０００Ｂの処理から開始される。
【０１３３】
ブロック１００３Ａにおいて、メモリチャネルの各メモリモジュールの各メモリ用集積回路に対して、マイクロタイルメモリアクセスのイネーブルを試みる。マイクロタイルメモリアクセスをサポートしているメモリモジュールであればイネーブルされる。マイクロタイルメモリアクセスをサポートしていないメモリモジュールは、もしあれば、イネーブルされない。この場合、マイクロタイルメモリアクセスをサポートしていないメモリモジュールおよびメモリ用集積回路に対して行われた、マイクロタイルメモリアクセスをイネーブルしようとする試みは失敗することになる。また、サブチャネル選択（ＳＣＳ）ビットを対応するサブチャネルへと割り当てるべく、メモリ用集積回路のモードレジスタの１以上のサブチャネル選択（ＳＣＳ）ビットを設定しようと試みるとしてもよい。
【０１３４】
ブロック１００４において、可能であれば、メモリモジュールおよびメモリ用集積回路においてマイクロタイル方式をイネーブルした後、一意的なビットパターンを持つキャッシュラインを各メモリチャネルの開始アドレスに書き込む。キャッシュラインの一意的なビットパターンは、図１１Ａに示したものと同様であってもよい。図１１Ａに示したビットパターンは、キャッシュラインのバイトオーダーを指定している。またキャッシュラインの一意的なビットパターンは、図１２Ａから図１２Ｅに図示したような、隣接するバイト同士を識別するような別の一意的なパターンであってもよい。キャッシュラインの一意的なビットパターンは、２つの目的を持つとしてもよい。つまり、マイクロタイル方式を検出するためとメモリエラーがないかメモリモジュールのメモリを試験するために用いられるとしてもよい。さらに、同一のパターンを持つ１つのキャッシュラインは、メモリの複数の異なる開始アドレスに書き込まれるとしてもよい。
【０１３５】
ブロック１００５において、メモリチャネルの各メモリモジュールの各メモリ用集積回路に対して、マイクロタイルメモリアクセスのディセーブルを試みる。マイクロタイルメモリアクセスをサポートしているメモリモジュールは、ディセーブルされる。マイクロタイルメモリアクセスをサポートしていないメモリモジュールについては、もしあれば、マイクロタイルメモリアクセスをサポートすることはできないので何も変化はない。
【０１３６】
ブロック１００６Ｂにおいて、同一の開始アドレスで始まるキャッシュラインを読み出すためのメモリ要求がメモリ制御ブロックおよびメモリコントローラに対して発行される。キャッシュラインに対するメモリ要求は同一の開始アドレスを用いて発行されるが、マイクロタイル方式では、各メモリチャネルのサブチャネル内のデータにアクセスする場合、各サブチャネルおよびその内部に設けられたメモリ用集積回路に対して、独立アドレスを使用する。メモリ用集積回路およびメモリモジュールがマイクロタイル方式をサポートせず独立アドレスが利用できない場合、一意的なデータビットパターンを書き込む場合に用いられたのと同様に、読み出し要求において各メモリ用集積回路に対して同一の開始アドレスが使用される。この場合、書き込まれたものと同一の一意的なデータビットパターンが、マイクロタイル方式をサポートしないメモリモジュールおよびメモリ用集積回路から読み出されることになる。
【０１３７】
続いてブロック１００８Ｂにおいて、メモリ用集積回路およびメモリモジュールにおいて、可能であればマイクロタイル方式がイネーブルされた状態でメモリチャネルに書き込んだキャッシュライン（書き込みキャッシュラインと呼ぶ）と、マイクロタイル方式がディセーブルされた状態でメモリチャネルから読み出されたキャッシュライン（読み出しキャッシュラインと呼ぶ）とを比較する。メモリ用集積回路およびメモリモジュールにおいてマイクロタイル方式がイネーブルできない場合、同一の開始アドレスを用いた書き込みメモリアクセスおよび読み出しメモリアクセスは同一のメモリ位置にアクセスすることになり、メモリに書き込まれたキャッシュラインのデータビットとメモリから読み出されたキャッシュラインのデータビットの間に相違はない。
【０１３８】
ブロック１０１０Ｂにおいて、読み出しキャッシュラインのビットと書き込みキャッシュラインのビットが一致するかどうか判断する。ブロック１０１２Ｂにおいて、読み出しキャッシュラインのビットと書き込みキャッシュラインのビットが一致しないということは、メモリチャネル、メモリモジュールおよびメモリ用集積回路がマイクロタイルメモリアクセスをサポートするので、当該方法はブロック１０５０Ｂで終了する。ブロック１０１４Ｂにおいて、読み出しキャッシュラインのビットと書き込みキャッシュラインのビットが一致するということは、メモリチャネル、メモリモジュールおよびメモリ用集積回路がマイクロタイルメモリアクセスをサポートしないので、当該方法はブロック１０５２Ｂにおいて終了する。
【０１３９】
図１０Ｃは、メモリ用集積回路内においてマイクロタイルメモリアクセスに対するサポートがあるかどうか検出するための第３の方法を示すフローチャートである。当該方法は、マイクロタイルメモリアクセスをサポートできるホストプリント配線基板およびシステムにおいてブロック１０００Ｃの処理から開始される。本発明のこの実施形態によると、メモリ用集積回路に対するステータス要求によって、マイクロタイルイネーブルビットのビット設定およびモードレジスタのほかのビットの設定ができる。マイクロタイルメモリアクセスをサポートしていないメモリ用集積回路において、マイクロタイルイネーブルビットは存在しないので、ステータス要求があったとしても当該メモリ用集積回路ではメモリビット設定は行われない。
【０１４０】
ブロック１０２０において、マイクロタイルメモリアクセスをイネーブルすることを目的として、メモリ用集積回路のモードレジスタのマイクロタイルイネーブルビットを設定しようと試みる。当該メモリ用集積回路がモードレジスタ内にＭＴＥビットを持っていれば、ＭＥＴビットが設定される。当該メモリ用集積回路がモードレジスタ内に設定すべきＭＴＥビットを持っていなければ、設定しようとする試みは失敗し、何事も起こらない。
【０１４１】
ブロック１０２４において、モードレジスタのビット設定のステータスに関する要求をメモリ用集積回路に対して送る。メモリ用集積回路は、当該コマンドがサポートされていれば、ステータス要求を受け取るとしてもよい。もしサポートされていなければ、ステータスコマンドの要求は無視される。
【０１４２】
ブロック１０２８において、メモリ用集積回路がマイクロタイル方式をサポートしていれば、レジスタから、マイクロタイルメモリアクセスがイネーブルされていることを示すマイクロタイルイネーブルビットの設定を出力する。メモリ用集積回路がマイクロタイル方式をサポートしていなければ、マイクロタイルイネーブルビットの設定を出力せず、ステータスに対する要求を完全に無視するとしてもよい。上述したように、マイクロタイルイネーブル信号は、マイクロタイルメモリアクセスがイネーブルされているかどうかを示す信号であるが、アクティブローであってもよいりアクティブハイであってもよい。アクティブロー信号である場合は、メモリ用集積回路内において、マイクロタイルイネーブルビットはマイクロタイルメモリアクセスをイネーブルする場合には論理値０に設定される。アクティブハイ信号である場合は、メモリ用集積回路内において、マイクロタイルイネーブルビットはマイクロタイルメモリアクセスをイネーブルする場合には論理値１に設定される。
【０１４３】
ブロック１０３０において、ステータス要求に対してＭＴＥビットの設定が供給されたかどうか判定される。ブロック１０１２Ｃにおいて、ＭＴＥビット設定が供給されているということは、マイクロタイルメモリアクセスがイネーブルされており、メモリ用集積回路がマイクロタイルメモリアクセスをサポートしていることになるので、当該方法はブロック１０５０Ｃにおいて終了する。ブロック１０１４Ｃにおいて、ＭＴＥビット設定が供給されなかったということは、メモリ用集積回路はマイクロタイルメモリアクセスをサポートしていないということなので、当該方法はブロック１０５２Ｃにおいて終了する。
【０１４４】
図１１Ａは、メモリチャネル５００Ａのキャッシュラインの一意的なビット列の一例を示す図である。図１１Ａに示したキャッシュラインのビットは、図５Ａに示したバイトの番号付けに対応している、８ビットのバイトで編成されている。このようにすることによって、キャッシュラインの各バイトは一意的となるので、別の順番で並べ替えられても容易に検出することができる。つまり、キャッシュラインは、マイクロタイル方式がイネーブルできるかどうかを検出するために利用できる一意的なデータビットパターンを持つ。各バイトにおいて、最上位ビット（ＭＳＢ）は左端に示され、最下位ビット（ＬＳＢ）は右端に示される。図１１Ａは、バイト１１００Ａ、１１０１Ａ、１１０６Ａ、１１０７Ａ、１１０８Ａ、１１０９Ａ、１１１３Ａ、１１１４Ａ、１１５６Ａ、１１５７Ａ、１１６２Ａおよび１１６３Ａのバイト位置とビット設定を示す。０番目のバイト１１００Ａは、２進法でゼロを示すべく、ビットすべてがゼロに設定されている。７番目のバイト１１０７Ａは、２進法で７を示すべく、３つのＬＳＢが１に設定されている。５６番目のバイト１１５６Ａは、２進法で５６を示すべく、３番目から５番目のビットが１に設定されている。６３番目のバイト１１６３Ａは、２進法で６３を示すべく、０番目から５番目までのビットが１に設定されている。図１１Ａに全ては図示していないが、バイト１１００Ａから１１６３Ａまでのバイトのビット設定は、図１１Ａに示したビットパターンおよび図５Ａに示したバイトの番号付けに基づいて容易に得られる。図１１Ａにおいて示したようなキャッシュラインが、マイクロタイル方式がイネーブルまたはサポートされていない場合に、メモリに書き込まれたりメモリから読み出されるとしてもよい。
【０１４５】
図１１Ｂは、図１１Ａに示したキャッシュラインおよび当該キャッシュラインのビット列がメモリチャネル５００Ｂにおいてどのように並び替えられ得るかを示す図である。ここにおいて、メモリチャネル５００Ｂは、マイクロタイル方式がイネーブルされサポートされており、２本のサブチャネル５０５Ａおよび５０５Ｂを有する。図１１Ｂに示すキャッシュライン内のバイトは、２本のサブチャネル５０５Ａおよび５０５Ｂに編成され、図５Ｂに示した各サブチャネル内のバイトの番号付けに対応している。図１１Ｂは、一方のサブチャネル５０５Ａ内のバイト１１００Ｂ、１１０１Ｂ、１１０４Ｂ、１１０５Ｂ、１１２４Ｂ、１１２５Ｂ、１１２８Ｂおよび１１２９Ｂのバイト位置とビット設定を示す。図１１Ｂはまた、サブチャネル５０５Ｂ内のバイト１１３４Ｂ、１１３５Ｂ、１１３８Ｂ、１１３９Ｂ、１１５８Ｂ、１１５９Ｂ、１１６２Ｂおよび１１６３Ｂのバイト位置とビット設定を示す。図１１Ｂに示していない残りのバイトのビット設定は容易に、図１１Ｂに示したビットパターンと図５Ｂに示したバイトに対する番号付けに基づいて得られる。
【０１４６】
図１１Ｃは、図１１Ａに示したキャッシュラインおよび当該キャッシュラインのビット列がメモリチャネル５００Ｃにおいてどのように並び替えられ得るかを示す図である。ここにおいて、メモリチャネル５００Ｃは、マイクロタイル方式がイネーブルされサポートされており、４本のサブチャネル５０５Ａ〜５０５Ｄを有する。図１１Ｃに示すキャッシュライン内のバイトは、４本のサブチャネル５０５Ａ〜５０５Ｄに編成され、図５Ｃに示した各サブチャネル内のバイトの番号付けに対応している。図１１Ｂは、第１のサブチャネル５１５Ａ内のバイト１１００Ｃ、１１０８Ｃ、１１０１Ｃ、１１０９Ｃ、１１０６Ｃ、１１１４Ｃ、１１０７Ｃおよび１１１５Ｃのバイト位置とビット設定を示す。図１１Ｂはまた、第４のサブチャネル５１５Ｄ内のバイト１１４８Ｃ、１１５６Ｃ、１１４９Ｃ、１１５１Ｃ、１１５４Ｃ、１１６２Ｃ、１１５５Ｃおよび１１６３Ｃのバイト位置とビット設定を示す。第２のサブチャネル５１５Ｂおよび第３のサブチャネル５１５Ｃのバイト位置は、図５Ｃに図示する通りである。図１１Ｃに示していない残りのサブチャネルおよびバイトのビット設定は容易に、図１１Ｃに示したビットパターンと図５Ｃに示したバイトに対する番号付けに基づいて得られる。
【０１４７】
図１１Ｂおよび図１１Ｃならびに図５Ｂおよび図５Ｃに図示したバイトの大半の位置は、図１１Ａおよび図５Ａに示したバイトの位置と異なる。しかし、図１１Ａ〜図１１Ｃおよび図５Ａ〜図５Ｃを互いに比較しつつ見てみると、０番目のバイト１１００Ａ、１１００Ｂおよび１１００Ｃのビットと６３番目のバイト１１６３Ａ、１１６３Ｂおよび１１６３Ｄのビットは、どのメモリチャネルでも変わらない。このため、これらのバイトだけは、マイクロタイル方式がイネーブルされているかどうかを正確に示すことはできない。この場合、マイクロタイル方式がイネーブルされているかどうかを検出するためには、追加のバイトを利用する。
【０１４８】
図１０Ａを参照しつつ説明した検出方法では、図１１Ａのキャッシュラインが、マイクロタイル方式がイネーブルされていない状態で、メモリチャネルに書き込まれるとしてもよい。続いてマイクロタイル方式がイネーブルされ、同一の開始アドレスでキャッシュラインを読み出そうと試みる。その結果、図１１Ｂまたは図１１Ｃに示したようなデータを持つキャッシュラインになっていることがある。マイクロタイル方式がサポートされていれば、取得されたキャッシュラインのデータは書き込まれたものとはビットオーダーやバイトオーダーが異なると期待される。マイクロタイル方式がサポートされていなければ、同一の開始アドレスでキャッシュラインを読み出すと、返されたデータのビットオーダーとバイトオーダーは書き込まれたものと同一であると期待される。つまり、マイクロタイル方式がサポートされていなければ、図１１Ａおよび図５Ａに示したようなビットオーダーおよびバイトオーダーを持つキャッシュラインが読み出される。
【０１４９】
図１０Ｂを参照しつつ説明した検出方法では、マイクロタイル方式がイネーブルされた状態で、２本のメモリサブチャネルがサポートされていれば、図５Ｂに示したバイトの番号付けに対応する、図１１Ｂに示したようなキャッシュラインがメモリに書き込まれるとしてもよい。もしくは、４本のメモリサブチャネルがサポートされていれば、図５Ｃに示したバイトの番号付けに対応する、図１１Ｃに示したようなキャッシュラインがメモリに書き込まれるとしてもよい。続いてマイクロタイル方式をディセーブルした後、マイクロタイル方式がサポートされていれば、図５Ａに示したバイトの番号付けに対応する、図１１Ａに示したようなキャッシュラインがメモリから読み出されるとしてもよい。マイクロタイル方式がサポートされていなければ、書き込まれたものと同一のビットオーダーおよびバイトオーダーでメモリチャネルから読み出されると期待される。
【０１５０】
上述したように、図１１Ａが示すキャッシュラインのビットは８ビットのバイトに編成され、ビット設定は図５Ａに示したバイトの番号付けに対応している。しかし、バイトが並べ替えられてキャッシュラインのビットパターンが変更されたかどうか判断する場合に、上記以外の一意的なビットパターンをキャッシュラインのバイトにおいて用いるとしてもよい。
【０１５１】
図１２Ａ〜図１２Ｅは、メモリ用集積回路においてマイクロタイルメモリアクセスがサポートされているかどうか検出する場合に利用される識別可能なパターンを実現するためにキャッシュラインに用いることができる、ほかのビットパターンを示す。
【０１５２】
図１２Ａは、１バイト単位のチェッカーボード状のパターンを示す。つまり、ある１バイトが含むビットは全て論理値１に設定され、隣接するバイトのビットはすべて論理値０に設定されている。
【０１５３】
図１２Ｂは、１バイトの半分を１単位とするチェッカーボード状のパターンを示す。つまり、あるバイトに含まれるビットのうち半分は論理値１に設定され、同じバイトの残り半分のビットは論理値０に設定される。隣接するバイトのビット設定は、逆としてもよいし同じでもよい。
【０１５４】
図１２Ｃは、キャッシュラインのバイトで使用される、１と０が交互に設定されたパターンである。各バイトにおいて、ビットの値は論理値０と１が交互になっている。
【０１５５】
図１２Ｄは、キャッシュラインのバイトで使用される、「ウォーキングワン（Ｗａｌｋｉｎｇ  Ｏｎｅ）パターンを示す。図１２Ｄに示すように、最初のバイトでは全ビットが０に設定され、後続のバイトでは１つの論理値１のビットがＭＳＢからＬＳＢもしくはＬＳＢからＭＳＢに向けて「歩く」。
【０１５６】
図１２Ｅは、キャッシュラインのバイトで使用される、「ウォーキングゼロ（Ｗａｌｋｉｎｇ  Ｚｅｒｏ）パターンを示す。図１２Ｅに示すように、最初のバイトでは全ビットが１に設定され、後続のバイトでは１つの論理値０のビットがＭＳＢからＬＳＢもしくはＬＳＢからＭＳＢに向けて「歩く」。
【０１５７】
上述したパターンでは同じパターンが繰り返されているが、メモリモジュールおよびメモリ用集積回路においてマイクロタイル方式がイネーブルされサポートされているかどうか検出できるようにビットパターンおよびバイトオーダーが識別可能であれば、複数のパターンを組み合わせて利用するとしてもよい。また上記のパターンはメモリモジュールおよびメモリ用集積回路においてマイクロタイル方式がイネーブルされているかどうか検出するために利用するとして説明しているが、同時にメモリのエラーを試験するために用いられるとしてもよい。
【０１５８】
マイクロタイルメモリアーキテクチャをサポートするべく、サブチャネルアクセスを実現するようにメモリサブシステムは改良されてきている。しかし、すべてのメモリモジュールがマイクロタイルメモリアクセスをサポートするわけではない。本発明の実施形態によれば、システムに接続されたメモリモジュールのうちマイクロタイル方式がイネーブルされたものとされていないものが検出される。こうすることによって、マイクロタイルメモリアーキテクチャは、マイクロタイルメモリアクセスがサポートされていない既存のメモリモジュールに対して後方互換性を有することができる。
【０１５９】
添付図面においては具体的な実施形態の例を説明および図示しているが、例示を目的としたものにすぎず、本発明の内容を限定するものではないと解釈されたい。また本発明の実施形態は、当業者であれば他の様々な変形例に想到するので、本明細書および図面に図示および説明した具体的な構造や配置には限定されない。
【０１６０】
本発明の実施形態の構成要素は、ソフトウェアで実施した場合、実質的に必要なタスクを実施するためのコードセグメントとなる。プログラムまたはコードセグメントは、プロセッサが読み取り可能な媒体に格納されるとしてもよいし、送信媒体または通信リンクを介して搬送波によって実現されるコンピュータデータ信号によって送信されるとしてもよい。「プロセッサが読み取り可能な媒体」は、情報を格納または送信できる媒体であればどのようなものであってもよい。「プロセッサが読み取り可能な媒体」の例を挙げると、電子回路、半導体メモリデバイス、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フロッピーディスク（登録商標）、ＣＤ−ＲＯＭ、光ディスク、ハードディスク、光ファイバ媒体、無線（ＲＦ）リンクなどがある。コンピュータデータ信号は送信媒体を介して伝播する信号であればどのようなものであってもよい。送信媒体の例としては、電子ネットワークチャネル、光ファイバ、大気、電磁波、ＲＦリンクなどがある。コードセグメントは、インターネットはイントラネットなどのコンピュータネットワークを介してダウンロードされるとしてもよい。
【図１Ａ】
2008545201.tif 000006
【図１Ｂ】
2008545201.tif 000007
【図２】
2008545201.tif 000008
【図３Ａ】
2008545201.tif 000009
【図３Ｂ】
2008545201.tif 000010
【図４Ａ】
2008545201.tif 000011
【図４Ｂ】
2008545201.tif 000012
【図４Ｃ】
2008545201.tif 000013
【図５Ａ】
2008545201.tif 000014
【図５Ｂ】
2008545201.tif 000015
【図５Ｃ】
2008545201.tif 000016
【図６】
2008545201.tif 000017
【図７】
2008545201.tif 000018
【図８】
2008545201.tif 000019
【図９】
2008545201.tif 000020
【図１０Ａ】
2008545201.tif 000021
【図１０Ｂ】
2008545201.tif 000022
【図１０Ｃ】
2008545201.tif 000023
【図１１Ａ】
2008545201.tif 000024
【図１１Ｂ】
2008545201.tif 000025
【図１１Ｃ】
2008545201.tif 000026
【図１２Ａ】
2008545201.tif 000027
【図１２Ｂ】
2008545201.tif 000028
【図１２Ｃ】
2008545201.tif 000029
【図１２Ｄ】
2008545201.tif 000030
【図１２Ｅ】
2008545201.tif 000031
【国際調査報告】
2008545201.tif 000032
2008545201.tif 000033
2008545201.tif 000034
2008545201.tif 000035