本発明の実施形態の特徴は、以下の詳細な記載から明らかになるであろう。
図面中の同じ参照番号及び記号表示は、類似する機能を提供する同様の要素を示す。
本発明の実施形態の以下の詳細な記載で、多数の特定の詳細は、本発明の全体的理解を与えるために挙げられている。しかし、所謂当業者には明らかであるように、本発明の実施形態は、かかる特定の詳細を用いずとも行われ得る。他の例で、周知の方法、手順、構成要素、及び回路は、本発明の実施形態の態様を不必要に不明瞭にしないよう、記載されていない。
集積されたグラフィックコンピュータシステムのメモリ効率は、通常、キャッシュラインのサイズによって制限される。かなり頻繁に、グラフィックスのための理想的なメモリアクセスサイズは、グラフィックプロセッサが1度に1又は幾つかの画素若しくはテクセル(texel)を操作するので、4から16バイトのデータである。しかし、UMAメモリアーキテクチャは、プロセッサのメモリ効率を最適化するよう64バイトキャッシュラインに関して最適化される。64バイトキャッシュラインを用いると、グラフィックコントローラによるメモリ要求は、概して、メモリからフェッチされが、決してグラフィックコントローラによって使用されない相当量のデータを生じさせる。使用されないデータは、オーバーフェッチと呼ばれる。
マイクロタイリング(micro−tiling)を含む本発明の実施形態は、集積されるグラフィックコントローラを備えたUMAメモリアーキテクチャにおいてプロセッサに対するキャッシュライン要求を保存しながら、グラフィックコントローラからのメモリ要求のオーバーフェッチを低減する。一般に、マイクロタイリングは、新しいメモリアーキテクチャと、新しいメモリコントローラアーキテクチャとを有する。新しいメモリコントローラアーキテクチャが記載される一方、本願の焦点は、マイクロタイリングをサポートする新しいメモリアーキテクチャに当てられる。マイクロタイリングメモリアーキテクチャをサポートするよう、新しいメモリサブシステムは、メモリチャネル内で、独立してサブチャネルメモリアクセスを提供する。メモリへのかかる独立したサブチャネルメモリアクセスは、マイクロタイリング又はマイクロタイルメモリアクセスと呼ばれ、概してマイクロタイリングと呼ばれる。
簡潔に述べると、マイクロタイリングは、メモリ要求が、メモリの不連続なセクション又はチャンク(chunk)に関して、より小さな要求から成ることを可能にする。マイクロタイリングメモリアーキテクチャは、読み出し及び書き込みメモリフェッチが要求側のニーズに基づいてサイズ及び構成を変化させることを可能にする。より小さなチャンクが正確に特定されるよう、付加的なアドレス情報はマイクロタイルメモリコントローラによってシステムメモリに提供される。例えば、本発明の一実施形態で、64ビットワイドメモリチャネル(物理的なビット幅)は、4つの16ビットワイドサブチャネルに分けられ得る。この実施形態で、64バイトメモリアクセス(メモリチャネルの論理バイト幅)は、4つの不連続な16バイトチャンクから成る(メモリトランザクションは8回の転送のバースト(burst)であるとする。)。各サブチャネルは、ある一意のアドレス情報を使用する。図3Aは、ある一意のアドレス情報を夫々有する4つの16ビットサブチャネルの例となる実施である。マイクロタイルメモリアーキテクチャの他の実施は、各サブチャネルの大きさと、各サブチャネルに提供される独立アドレスラインの数とを変更することができる。
メモリコントローラからメモリ集積デバイスへ新しい専用のラインを定めることによって、又は、付加的なアドレスラインであるようメモリモジュールにおいて経路を定められた未使用のエラー補正符号(ECC;Error Correction Code)を新しい目標に向けることによって、付加的なアドレスラインの供給を含むメモリアレイの各チャネルへ付加的な独立アドレス情報を供給可能な幾つかの方法が存在する。独立した付加的なアドレス情報は、また、例えば、列アドレスがメモリ集積回路に書き込まれるところのメモリ周期の間に、未使用の標準周期の間に既存のアドレス信号ラインにオーバーロードとすることによって供給され得る。この場合に、マイクロタイリングサポートは、メモリモジュールにおいて実施され得、依然として、既存のメモリモジュール実施へ下位互換性を提供することができる。かかる方法は、別個に、又は本発明の実施形態と組み合わせて使用され得、如何なる付加的なアドレスラインも含む所望数のアドレスラインにおいて付加的なアドレス情報を提供する。
本発明の一実施形態で、付加的なアドレス信号ラインは、マイクロタイリング及びマイクロタイルメモリアクセスをサポートするよう、マザー基板上でメモリ集積回路への経路を定められる。新しいアドレス信号ラインは、マザー基板上のメモリコントローラからメモリ集積回路デバイスへと送られる専用のアドレスラインである。本発明の更なる他の実施形態で、付加的なアドレス信号ラインは、マザー基板上で新しいコネクタへの経路を定められ、新しいピン割り当て(ピン出力)を有する新しいメモリモジュールは、新しいコネクタにプラグインされる。
本発明の他の実施形態で、アドレス信号のオーバーロードは、マイクロタイリングをサポートするよう付加的なアドレスを転送するために使用されても良い。典型的な動的ランダムアクセスメモリ(DRAM;Dynamic Randam Access Memory)集積回路は、行アドレスストローブ(RAS#)制御信号がロー(Low)状態にされる場合に、アドレス信号ラインを介して行アドレスを受け取る。列アドレスは、列アドレスストローブ(CAS#)制御信号がロー状態にされる場合、より少数のアドレス信号ラインを介してDRAM集積回路によって受け取られる。行アドレスは既存のアドレス信号ラインの全てを介して送信され、一方、より少ない列アドレスが同じアドレス信号ラインを介してしばしば送信されることが観測されている。即ち、少数の既存のアドレス信号ラインが列アドレス信号を転送するために使用される。従って、付加的なアドレス信号は、CAS#制御信号がロー状態にされる場合に、使用されていないアドレス信号ラインを介してDRAM集積回路へ転送され得る。このようにして、全く又はほんの僅かしか付加的なアドレス信号ラインは、マイクロタイリングのための付加的なアドレッシング機能をサポートするよう経路を定められる必要がない。
本発明の他の実施形態で、使用されていないエラー補正符号化又はパリティ信号ラインは、マイクロタイリングをサポートするよう付加的なアドレスを転送するために使用され得る。幾つかのメモリモジュールで、エラー補正符号化(ECC)は、ECCデータを記憶するようデータのビット及び付加的なメモリを、ECC集積回路モニタを有することによってサポートされ得る。しかし、ECCを有するメモリモジュールは、通常、例えば、それらがより高価である場合にサーバのような、よりハイエンドのシステムでしか使用されない。コンピュータの数がより多数であるところのデスクトップ又はクライアントコンピュータにおいて、ECCは、それが付加的なコストとなるため、通常はサポートされない。かかる場合に、ECC又はパリティに関しては別として、メモリモジュールセットの多数のピンは、通常は使用されなくなる。ECCを用いないメモリモジュールで、使用されないECC又はパリティ用のピンは、マイクロタイリングをサポートするよう付加的なアドレスを転送するために使用されても良い。メモリモジュールの他の使用されない未接続(NC;Non−Connect)ピンは、また、マイクロタイリングをサポートするよう付加的な独立アドレス信号ラインを提供するために使用されても良い。
本発明の更なる他の実施形態で、付加的な独立アドレス信号伝達は、列アドレスの転送の間のアドレス信号のオーバーロードを、未使用ピンによって提供される付加的なアドレス信号ラインに結合することによって提供され得る。
例えば、ダブルデータレート(DDR;Double Data Rate)DRAM技術に基づくメモリチャネルのような典型的なメモリチャネルにおいて、メモリチャネルの論理幅は、Mバイトワイドであると考えられる。1バイトのデータには8ビットが存在する。メモリチャネルの論理幅は、メモリモジュール上でのデータ転送のバースト長にいくらか関連する。即ち、Mバイトのデータは、基本アドレスから増分される連続アドレスを用いることによって、バーストを形成するデータ転送によって連続してアクセスされ得る。通常、アクセスされる(読み出し又は書き込みをなされる)べきバイトのブロックの基本アドレスは、チャネルの論理幅の整数倍である。メモリチャネルの物理的な幅は、メモリコントローラとメモリモジュールとの間のデータバスのビット幅である。典型的な最小バースト長は、アドレスラインの最小有効ビットによって設定され得る開始バイト順を伴う8のメモリ周期でありうる。64ビットの典型的な物理幅により、8のメモリ周期は、メモリチャネルにおいて64バイトのデータにアクセスする。従って、メモリチャネルの典型的な論理幅は64バイトのデータである。
上述されるように、メモリチャネルの論理幅は、基本アドレスにより連続的に転送され得るバイトの数であり、メモリの物理幅は、メモリコントローラとメモリモジュールとの間のデータバスのビット幅(“WDB”)である。マイクロタイルメモリシステムは、メモリチャネルの論理幅及び物理幅を、より小さな論理バイト幅及びより小さな物理ビット幅を有するサブチャネルに等しく分ける。
メモリのマイクロタイリングは、メモリチャネルの物理幅(WDBビット)及びメモリチャネルの論理幅(Mバイト)を、S個のサブチャネル(WSC)に分ける。各サブチャネルは、WSC=WDB/Sビットの物理幅と、N=M/Sバイトの論理幅とを有する。従って、Nバイトのデータは、データ転送のバーストごとに、各サブチャネルにおいてWSCビットのデータラインを介して転送され得る。メモリチャネルは、メモリ内にアクセスすべき総数TMLのメモリ域を有することができる。各サブチャネルは、TSML=TML/Sである場合に、メモリチャネルの全てのメモリ域(TSML)のサブセットにアクセスする。
マイクロタイリングメモリで、各サブチャネルは、互いから独立して、メモリチャネルを介して、より細分化されたデータにアクセスすることができる。それらを完全に独立させるよう、別個のアドレス信号ラインがメモリコントローラから各サブチャネルへと経路を定められ得る。過剰に多くの別個のアドレス信号ラインの経路指定を回避するよう、幾つかのアドレス信号ラインは、メモリ域が共通アドレスの組から独立に選択され得るように、サブチャネル全体で共有され得る。従って、各サブチャネルへ与えられるアドレスは、他のサブチャネルへ与えられるアドレスにおける対応するビットとは異なる値を有する多数の独立アドレスビット(“T”)を有する。従って、各サブチャネルで転送されるデータは、連続するデータブロックを表し、一方、各サブチャネルにおけるデータブロックは、必ずしも連続的なアドレス範囲から形成されるわけではない。
本発明の実施形態は、例えば、図1A及び図1Bで表されるような、様々なシステムで使用され得る。ここで図1Aを参照すると、本発明の実施形態が利用され得るところの典型的なコンピュータシステム100Aのブロック図が表されている。コンピュータシステム100Aは、第1の処理ユニット(PU)101と、例えばキーボード、モデム、プリンタ、外部記憶装置等のような入出力デバイス(I/O)102と、例えばCRT又はグラフィックディスプレイのようなモニタデバイス(M)103とを有する。モニタデバイス(M)103は、例えば、ビジュアル又はオーディオフォーマットのような、ヒトが認知可能な形式で、コンピュータ情報を提供することができる。システム100Aは、コンピュータシステム以外の多種多様な電子システムであっても良い。
ここで図1Bを参照すると、本発明の実施形態が利用され得るところのクライアント−サーバシステム100Bが表されている。クライアント−サーバシステム100Bは、ネットワーク112へ結合された1又はそれ以上のクライアント110A乃至110nと、ネットワーク112へ結合されたサーバ114とを有する。クライアント110A乃至110nは、情報を送受信し、且つ、サーバで必要とされ得るいずれかのデータベース及び/又はアプリケーションソフトウェアへのアクセスを得るために、ネットワーク112を介してサーバ114と通信する。クライアント110A乃至110n及びサーバ114は、典型的なコンピュータシステム100Aの例であっても良い。サーバ114は、メモリを備えた処理ユニットを有し、更に、1又はそれ以上のディスク駆動記憶装置を有しても良い。サーバ114は、例えばネットワーク接続ストレージ(NAS;Network Attached Storage)デバイスとして記憶領域ネットワーク(SAN;Storage Area Network)において使用されても良く、ディスクのアレイを有する。サーバ114へのデータアクセスは、複数のクライアント110A乃至110Cと共にネットワーク112上で共有されても良い。
ここで図2Aを参照すると、本発明の実施形態が利用され得るところの第1の処理ユニット101Aのブロック図が表されている。処理ユニット101Aは、示されるように共に結合された、プロセッサ回路201と、メモリ制御ブロック202と、外部キャッシュメモリ203Eと、1又はそれ以上のメモリチャネル204A乃至204Nと、グラフィックコントローラ206と、入出力コントローラ207とを有することができる。処理ユニット101Aのプロセッサ回路201、メモリ制御ブロック202、キャッシュメモリ203E、グラフィックコントローラ206及び入出力コントローラ207のうちの2又はそれ以上の要素の組合せは、単一の集積回路に共に集積され得る。例えば、メモリ制御ブロック202、グラフィックコントローラ206、及び入出力コントローラ207は、集積回路210として共に集積され得る。他の例として、プロセッサ回路201、メモリ制御ブロック202、キャッシュメモリ203E、グラフィックコントローラ206、及び入出力コントローラ207は、集積回路210′として共に集積されても良い。他の例として、そのメモリコントローラを備えたメモリ制御ブロック202は、プロセッサ回路201に集積されても良い。プロセッサ回路201とメモリ制御ブロック202との間に結合される外部キャッシュメモリ203Eは、集積回路210′の一部であるように表されているが、それは別個の回路であっても良い。しばしば、キャッシュメモリ203Eは、大きなメモリ容量を別個に製造するのにより有効であるため、集積回路210′の外部にとどまる。
プロセッサ回路201は、マルチプロセッサ集積回路として、プロセッサA乃至N(201A〜201N)のような、1若しくはそれ以上の実行ユニット又は1よりも多いプロセッサ(コアプロセッサとも呼ばれる。)を有することができる。プロセッサ回路201の各プロセッサは、1又はそれ以上の段のオンチップ若しくは内部キャッシュメモリ203Iを有しても、あるいは、同じ内部キャッシュメモリを共有しても良い。他の段のキャッシュメモリは、プロセッサ回路201の外部にあり、例えば外部キャッシュメモリ203Eのようなメモリコントローラのインターフェースであっても良い。プロセッサ回路201は、また、マイクロコンピュータが有しうるならば、オンチップの又は内部のランダムアクセスメモリ(RAM)及びオンチップの又は内部の読み出し専用メモリ(ROM;Read Only Memory)を有しても良い。プロセッサ回路201、その1又はそれ以上の実行ユニット、及び、その1又はそれ以上の段のキャッシュメモリは、1又はそれ以上のメモリチャネル204A乃至204Nによりメモリ制御ブロック202を介して(命令を含む)データの読み出し又は書き込みをなされ得る。
1又はそれ以上のメモリチャネル204A乃至204N及びプロセッサ回路201並びにグラフィックコントローラ206へ結合され、それらの間に置かれたメモリ制御ブロック202は、それ自身の内部キャッシュメモリ203Mを随意的に有しうる。あるいは、キャッシュメモリ203Mは、他の段のキャッシュメモリとして外部にあっても良い。メモリ制御ブロック202は、1又はそれ以上のメモリチャネル204A乃至204Nの夫々について、1又はそれ以上のマイクロタイルメモリコントローラMCA乃至MCN(208A〜208N)を有する。
1又はそれ以上のメモリチャネル204A乃至204Nの夫々は、1又はそれ以上のメモリモジュールMM1乃至MMnを有する。各メモリモジュールは1又はそれ以上のメモリ集積回路又はデバイスを有する。1又はそれ以上のメモリ集積回路又はデバイスは、動的ランダムアクセスメモリ(DRAM)回路、静的ランダムアクセスメモリ(SRAM)回路、又は不揮発性ランダムアクセスメモリ(NVRAM)回路を含む様々な種類のメモリ集積回路でありうる。しかし、本発明の好ましい実施形態で、1又はそれ以上のメモリ集積回路は動的ランダムアクセスメモリ(DRAM)回路である。
1又はそれ以上のメモリチャネル204A乃至204Nの夫々は、2又はそれ以上のサブチャネルを有する。図2Aでは、4つのメモリサブチャネル205A乃至205Dが、各メモリチャネル204A乃至204Nに含まれている。一時的に図2Bを参照すると、2つのサブチャネル205A′及び205B′が各メモリチャネル204A乃至204Nに含まれている。2及び4のメモリサブチャネルが各メモリチャネルにおいて表されるが、当然、メモリチャネルの他の分割は偶数又は奇数のサブチャネルを含みうる。これは、特に、メモリチャネルの論理幅又はバースト長が増大するような場合である。
各メモリチャネル204A乃至204Nにおける1又はそれ以上のメモリモジュールMM1乃至MMnは、マイクロタイリングをサポートするよう構成され得る。アルゴリズムは、1又はそれ以上のメモリモジュールがマイクロタイリングをサポートするか否かを決定するために、メモリ制御ブロック202によって使用され得る。1又はそれ以上のメモリモジュールに含まれる1又はそれ以上のメモリ回路又はデバイスは、マイクロタイリングをサポートするよう構成され得る。1又はそれ以上のメモリ回路は、マイクロタイル化を可能とされ(MTE)、特定のメモリサブチャネルをサポートするよう割り当てられ得る。1又はそれ以上のメモリ回路は、マイクロタイル化を可能とされ且つ特定のメモリサブチャネルへ割り当てられるよう、追加のピンを有しても、あるいは、モードレジスタにおいて付加的なビットを有しても良い。付加的なピンがメモリ回路によって提供される場合には、外部ジャンパピン、ジャンパワイヤ、又はマイクロスイッチ(例えば、DIPスイッチ。)が、マイクロタイリングサポートを構成するために使用されても良い。モードレジスタがメモリ回路で提供される場合には、各サブチャネルへのデータバスの独立した部分が、適切なロードストローブをモードレジスタにロードするために使用されても良い。
I/Oコントローラ207は、メモリ制御ブロック202へ結合され、1又はそれ以上のメモリチャネル204A乃至204Nにデータを書き込むことができる。従って、Iメモリチャネル204A乃至204Nはプロセッサ201によってアクセス可能である。処理ユニット101Aは、更に、I/Oコントローラ207へ結合された、無線ネットワークインターフェース回路(WNIC;Wireless Network Interface Circuit)213、有線ネットワークインターフェース回路又はカード(NIC;Network Interface Circuit or Card)214、ユニバーサルシリアルバス(USB;Universal Serial Bus)及び/又はファイヤワイヤ(FW;Firewire)シリアルインターフェース215、且つ/あるいは、ディスクドライブ216を有することができる。無線ネットワークインターフェース(WNIC)213は、例えば、無線ローカルエリアネットワーク、ワイファイ(WiFi)(IEEE802.11)、ブルートュース(Bluetooth(登録商標))、又は他の無線接続を介して、基地無線ユニットへの無線接続を提供する。無線ネットワークインターフェース(WNIC)213は、基地無線ユニット又は他の移動体無線ユニットへ無線波によって結合するようアンテナを有する。NIC214は、イーサネット(登録商標)有線ローカルエリアネットワーク接続を提供する。USB/FWシリアルインターフェース215は、他のI/O周辺デバイスを含むようシステムの拡張を可能にする。ディスクドライブ216はよく知られており、プロセッサ201に書き換え可能な記憶装置を提供する。ディスク記憶装置216は、フロッピー(登録商標)ディスク、ジップ(Zip)ディスク、DVDディスク、ハードディスク、書き換え可能な光学ディスク、フラッシュメモリ、又は他の不揮発性記憶装置のうちの1又はそれ以上であっても良い。
グラフィックコントローラ206は、メモリ制御ブロック202へ結合され、1又はそれ以上のメモリチャネル204A乃至204Nに対してデータの読み出し及び書き込みを行う。プロセッサ201は、1又はそれ以上のメモリチャネル204A乃至204Nにデータを書き込むことができる。従って、メモリチャネル204A乃至204Nは、グラフィックコントローラ206によってアクセス可能であり、グラフィックディスプレイまたはビデオデバイスに表示可能である。グラフィックディスプレイ217は、グラフィックコントローラ206へ結合され得る。ビデオインターフェース218は、グラフィックコントローラ206へ結合され得る。ビデオインターフェース218は、アナログ及び/又はデジタルのビデオインターフェースであっても良い。
処理ユニット101Aで、プロセッサ201、I/Oコントローラ207、及びグラフィックコントローラ206は、メモリ制御ブロック202におけるメモリコントローラを介して1又はそれ以上のメモリチャネル204A乃至204N内のデータにアクセスすることができる。メモリ制御ブロック202におけるメモリコントローラは、システムメモリと、プロセッサ201、I/Oコントローラ207及びグラフィックコントローラ206との間でデータの読み出し及び書き込みを行うよう、各メモリチャネル204A乃至204Nへインターフェースで接続する。マイクロタイルメモリコントローラ208A乃至208Nをメモリチャネル204A乃至204Nへ夫々インターフェースで接続する際に、アドレスバスのアドレス信号ライン220と、データバスのデータ信号ライン222と、クロック信号ライン224とがメモリインターフェースの一部として存在する。例えばディスク記憶装置216のような、I/Oコントローラ207へ結合された入力デバイスは、また、システムメモリへの情報の読み出し及び書き込みを行うことができる。
概して、データバスのデータ信号ライン222は、S個のサブチャネルに分割される。Sが4であるところの図2Aにおいて、データバスのデータ信号ライン222は、サブチャネルデータライン222A、222B、222C及び222Dによって表されるように、4つのサブチャネルに分割され、夫々のサブチャネル205A、205B、205C及び205Dへ結合されている。例えば、64ビットバスは、4組の16ビットデータラインに分けられる。アドレス信号ライン220の幾つかはサブチャネルに共有され得、一方、残りのアドレス信号ラインは、本発明の一実施形態において、1のサブチャネルから次のサブチャネルに対して独立している。本発明の他の実施形態で、アドレス信号ライン220は、各サブチャネルについて完全に独立している。アドレス信号ラインについては、以下で更に記載する。
ここで図2Bを参照すると、本発明の実施形態が利用され得るところの第2の処理ユニット101Bのブロック図が表されている。第2の処理ユニット101Bは、示されるように共に結合された、プロセッサ回路201と、メモリ制御ブロック202と、外部キャッシュメモリ203Eと、1又はそれ以上のメモリチャネル204A乃至204Nと、グラフィックコントローラ206と入出力コントローラ207とを有する点で、第1の処理ユニット101Aに類似する。簡潔さのために、同じ参照番号を有する要素については図2Aの記載を参照することにより、ここでは説明を繰り返さない。しかし、第2の処理ユニット101Bで、1又はそれ以上のメモリチャネル204A乃至204Nの夫々は、表されているように、2つのサブチャネル205A′及び205B′に分割される。即ち、サブチャネルの数Sは2である。データバスのデータ信号ライン222は、サブチャネルデータライン222A及び222Bによって表されるように、2つのサブチャネルに分けられ、夫々のサブチャネル205A′及び205B′に結合されている。例えば、64ビットバスは、2組の32ビットデータラインに分けられる。アドレス信号ライン220の幾つかはサブチャネルの夫々に共有され得、一方、残りのアドレス信号ラインは、本発明の一実施形態において、1のサブチャネルから次のサブチャネルに対して独立している。本発明の他の実施形態で、アドレス信号ライン220は、各サブチャネルについて完全に独立している。
ここで図3Aを参照すると、2つのメモリチャネルのブロック図が表されている。図3Aは、ホスト300とも呼ばれる、メモリチャネル0(304A)及びメモリチャネル1(304B)へ結合された結合グラフィックス及びメモリコントローラ300を表す。メモリチャネル0(304A)及びメモリチャネル1(304B)は、夫々、4つのサブチャネル305A、305B、305C及び305Dに分割されている。各メモリチャネルは、メモリチャネルのサブチャネルをサポートするよう、独立したマイクロタイルメモリコントローラを有する。各メモリチャネルは独立データバスを有する。例えば、メモリチャネルのデータバスごとに64ビットの総データビット幅を仮定すると、各サブチャネルは、独立した組の16ビットのデータバスへ結合される。図3Aに表されるように、サブチャネル305AはデータビットD15乃至D0へ結合され、サブチャネル305BはデータビットD31乃至D16へ結合され、サブチャネル305CはデータビットD47乃至D32へ結合され、サブチャネル305DはデータビットD63乃至D48へ結合されている。
上述されたように、幾つかのアドレス信号ラインはサブチャネルの夫々に共有され得、一方、残りのアドレス信号ラインは、本発明の一実施形態において、1のサブチャネルから次のサブチャネルに対して独立している。例えば、(Axx〜A10、BA2〜BA0とラベルを付された)アドレス信号ライン310は、全てのサブチャネル305A乃至305Dに共有されている。即ち、アドレス信号ライン310の夫々は、散開され、各サブチャネルに結合され得る。対照的に、アドレス信号ライン311A(A10乃至A6とラベルを付された第1の組)は、独立してサブチャネル305Aに結合されている。アドレス信号ライン311B(A10乃至A6とラベルを付された第2の組)は、独立してサブチャネル305Bに結合されている。アドレス信号ライン311C(A10乃至A6とラベルを付された第3の組)は、独立してサブチャネル305Cに結合されている。アドレス信号ライン311D(A10乃至A6とラベルを付された第4の組)は、独立してサブチャネル305Dに結合されている。
理想的には、十分に独立したアドレスラインが、割り当てられたメモリページサイズの細かさにおいて完全なアドレス指定能力を可能にするよう提供される。通常、ページサイズは、グラフィックメモリ空間を管理するソフトウェアによって設定される。例えば、2チャネルキャッシュライン・インターリーブ・メモリサブシステムにおける4キロバイト(KB)のページサイズの場合を考える。2KBのページが各メモリチャネルにマッピングされる。その場合に、5本のアドレスラインは、メモリの各物理ページにおいて32の64Bキャッシュラインをアドレス指定するために使用され得る。このようにして、15の追加の独立アドレスラインは、4つの16ビットサブチャネルの実施にとって理想的である。これらは、第1の組のアドレスラインA10乃至A6としてラベルを付された元の第1の組のアドレス信号ライン311Aと共に、第2、第3、及び第4の組のアドレスラインA10乃至A6として夫々ラベルを付されたアドレス信号ライン311B乃至311Dとして示されている。利用可能とされる付加的な独立アドレスラインがより少ない場合、各サブチャネルによってアクセス可能な独立アドレス空間は減少する。各サブチャネルに利用可能とされる独立アドレスラインがより多い場合、各サブチャネルによって利用可能な独立アドレス空間は増える。2つの32ビットサブチャネルを実施するよう、5本の追加の独立アドレスラインを有することが好ましい。
本発明の一実施形態で、余分のアドレス信号ラインが、図3Aに表されるように、メモリコントローラとサブチャネルとの間で経路を定められ、独立アドレス信号ラインを提供する。本発明の他の実施形態で、アドレス信号は、既存のアドレスラインオーバーロードとすることがある。本発明の更なる他の実施形態で、余分のアドレス信号ラインの経路指定及びアドレス信号のオーバーロードの組合せは、マイクロタイリングをサポートするために使用されても良い。本発明の更なる他の実施形態で、各サブチャネルは、図3Aに表される共通のアドレスライン310を有さずに、完全な組の独立アドレスラインを設けられても良い。しかし、共通のアドレス信号ライン310の使用は、独立アドレス信号ラインの経路指定を回避することによってプリント回路基板の面積を節約に結びつく。
一時的に図6を参照すると、メモリチャネルに対するアドレス信号ラインビットマップが、共通の且つ独立したアドレスビットを用いて表されている。即ち、図6は、物理アドレスにおいてアドレスビットの解釈を表すアドレスビットマップである。I独立アドレスビット(IAB;Independent Address Bits)の組は、マイクロタイリングをサポートするよう各サブチャネルへ与えられる。零又はそれ以上のSA共通アドレスビット(SAB;Shared Address Bits)の組は、サブチャネルの全てへ与えられ得る。Qサブチャネル選択ビット(SSB;Sub−channel Select Bits)の組は、サブチャネルへのメモリ要求の割り当てにおいて使用される。Pサブチャネルデータアドレスビット(SDAB;Sub−channel Data Address Bits)の組は、DRAMメモリ内の各キャッシュラインにおいてバイトをアドレス指定するために使用される。PのSDABの組は、通常、アドレス信号ラインマップの最小有効ビットである。QのSSBビット及びPのSDABビットの組は、実際は、メモリコントローラとサブチャネルメモリとの間に経路を定められない。明らかなように、アクセスされているデータのブロックの基本アドレスはバーストサイズの整数倍である。即ち、PのSDABビットは、例えば、ダブルデータレート(DDR)メモリの仕様に従うDRAMデバイスによるように、メモリ集積回路によって内部で発生しうる。図6は、共有の且つ独立したアドレスビットであるよう選択される特定のアドレスビットを表し、一方、他のアドレスビットが代わりに割り当てられても良い。即ち、SA共通アドレスビット(SAB)及びI独立アドレスビット(IAB)へのPサブチャネルデータアドレスビット(SDAB)を上回るアドレスビットの分配は任意である。
ここで図4A乃至4Cを参照すると、三角形の理想的な画素マップレンダリングが、タイル状のアドレス空間を用いて表されている。図4Aは、論理チャネル幅が64バイトであるところの非マイクロタイルメモリシステムによる、タイル状アドレス空間における三角形401のラスタライズを表す。図4B及び図4Cは、マイクロタイルメモリシステムによる、タイル状アドレス空間における三角形401のラスタライズを表す。三角形401のラスタライズの単位はフラグメント402である。フラグメント402は、画素又はテクセル(texel)を表しうる。タイル状アドレス空間は、データの論理的2次元配列がサブアレイの組として編成されるところの空間であり、サブアレイ内のデータは、アドレス空間の連続的な範囲に格納され、従って、メモリにおいて高度にローカライズされる。線形にアドレス指定されるデータの論理的2次元配列はこのようなサブアレイを有さない。代わりに、フラグメント402のようなデータは、行において左から右へと線形に横切って、次いで、上から下へと次の行へ下りてアドレス指定される。従って、垂直に隣接するフラグメント402はメモリにおいて遠く離れている。
図4Aと比べ、図4B及び図4Cは、どのようにマイクロタイルメモリアクセスがより小さなメモリ要求の効果を与えるかを示す。図4A乃至4Cの夫々は、異なったメモリ要求サイズに関して三角形401のラスタライズの単位を示す。
図4Aで、単一のメモリ要求は、16のフラグメントを表すデータを含む。個々の正方形402の夫々はフラグメントを表し、通常は、フラグメントごとに32ビット又は4バイトのデータを表す。図4A乃至4Cは、20×20の配列のフラグメントを表す。図4Aに表されるような4×4の配列のフラグメントは、スパン404であり、64バイトのメモリ要求を表す。サブスパン424は、2×2の配列のフラグメント、即ち、16バイトのメモリ要求として、図4Cに表されている。ダブル・サブスパン414は図4Bに表されており、2×4の配列のフラグメントとして定められた32バイトのメモリ要求である。
図4A乃至4Cの間の相違は、メモリ要求サイズが減少するにつれ、オーバーフェッチにおいて理論上の減少を示す。図4A乃至4Cの夫々で、三角形401は同数のフラグメントのアクセスを要求する。しかし、通常、メモリアクセスは、それが三角形401の内側のフラグメント408と、三角形401の外側のフラグメント406とを表すデータを含みうるように、1よりも多いフラグメントのデータを転送する。三角形401の外側のフラグメント406を表すデータはオーバーフェッチとされ、結果として、メモリバンド幅の能率の悪い使用をもたらす。
図4Aで、64バイトのメモリアクセスは、スパン404、即ち、4×4のブロックのフラグメントを転送する。例えば、スパン404Aは第1の64バイトメモリアクセスである。スパン404Bは第2の64バイトメモリアクセスである。例えば、三角形401は、レンダリングされるべき約57個の画素を含むとする。64バイトメモリアクセスの場合に関して、10のメモリアクセスが、三角形401の内側の65個のフラグメントにアクセスするために必要とされる。更なる95個のフラグメントのデータはアクセスされるが、使用され得ない。
図4Bで、32バイトのメモリアクセスは、ダブル・サブスパン414、即ち、2×4のブロックのフラグメント(即ち、64バイトメモリアクセスの半分。)のデータを転送する。例えば、ダブル・サブスパン414Aは第1の32バイトメモリアクセスである。ダブル・サブスパン414Bは第2の32バイトメモリアクセスである。32バイトメモリアクセスの場合に関して、13のメモリアクセスが、三角形401の内側の65個のフラグメントにアクセスするために必要とされる。更なる47個のフラグメントのデータはアクセスされるが、使用され得ない。
図4Cで、16バイトのメモリアクセスは、サブスパン424、即ち、2×2のブロックのフラグメント(即ち、64バイトメモリアクセスの4分の1。)のデータを転送する。例えば、サブスパン424Aは第1の16バイトメモリアクセスである。サブスパン424Bは第2の16バイトメモリアクセスである。サブスパン424Cは第3の16バイトメモリアクセスである。サブスパン424Dは第4の16バイトメモリアクセスである。16バイトメモリアクセスの場合に関して、22のメモリアクセスが、三角形401の内側の65個のフラグメントにアクセスするために必要とされる。更なる13個のフラグメントのデータはアクセスされるが、使用され得ない。
他の例として、三角形401は、図4A、図4B及び図4Cの夫々において、表示すべき65個の画素又はフラグメント(260バイト)を要するとする。図4Aで、アクセスされる約10のスパンのメモリは、三角形401をレンダリングするよう、160の画素又は640バイトのデータを含む。図4Bで、アクセスされる約13のダブル・サブスパンのデータは、三角形401をレンダリングするよう、112の画素又は448バイトのデータを含む。図4Cで、アクセスされる約22のサブスパンのデータは、三角形401をレンダリングするよう、88のフラグメント又は352バイトのデータを含む。従って、図4Aに比べ、オーバーフェッチされる画素又はフラグメント406は、各メモリチャネル内のサブチャネルによりマイクロタイルアドレス指定を実施することによって、図4B及び図4Cでは減じられる。
上述されたように、図4B及び図4Cは、メモリサブチャネルを含むマイクロタイルメモリシステムによるタイル状アドレス空間における三角形401のラスタライズを表す。図4Bで、64バイトワイドメモリチャネルは、2つの32バイトワイドメモリサブチャネルから形成され得る。この場合に、マイクロタイルメモリアクセスは、2つの離れた32バイトアクセスを、64バイトの総体的サイズに関して2つのサブチャネルの夫々で1つである単一の64バイトアクセスに結合する。三角形のラスタライズは、ダブル・サブスパン414へのアクセス要求を生ずる。例えば、マイクロタイルメモリコントローラは、ダブル・サブスパン414C及び414Dへのアクセス要求を単一のマイクロタイルメモリアクセスに結合することができる。他の例として、メモリコントローラは、ダブル・サブスパン414E及び414Fへのアクセス要求を単一のマイクロタイルメモリ要求に結合することができる。ダブル・サブスパンへのアクセス要求の他の結合は、単一のマイクロタイルメモリ要求又はアクセスへと形成され得る。本発明の1又はそれ以上の実施形態で、結合されるサブチャネルアクセスは、SA共通アドレスビットにおいて共通のアドレスビットパターンを有する。
図4Cで、64バイトワイドメモリチャネルは、4つの16バイトワイドメモリサブチャネルから形成され得る。この場合に、マイクロタイルメモリアクセスは、4つの離れた16バイトアクセスを、64バイトの総体的サイズに関して4つのサブチャネルの夫々で1つである単一の64バイトアクセスに結合する。三角形のラスタライズは、サブスパン424へのアクセス要求を生ずる。例えば、マイクロタイルメモリコントローラは、サブスパン424E、424F、424G及び424Hへのアクセス要求を単一のマイクロタイルメモリアクセスに結合することができる。サブスパンへのアクセス要求の他の結合は、単一のマイクロタイルメモリ要求又はアクセスへと形成され得る。本発明の1又はそれ以上の実施形態で、結合されるサブチャネルアクセスは、4つのメモリサブチャネルの夫々に関して、SA共通アドレスビットにおいて共通のアドレスビットパターンを有する。
理想的な場合において、全てのマイクロタイルメモリ要求は、未使用のサブチャネルを用いずに64Bメモリトランザクションを形成するようマイクロタイル・トランザクションアセンブラによって利用され得るとする。即ち、マイクロタイリングの有効性は、完全に満たされたメモリトランザクションを構成するようトランザクションアセンブラ326A、326Bの機能に依存する。
ここで図3Bを参照すると、表されるマルチチャネルメモリサブシステムは、システムメモリチャネル及び1又はそれ以上のキャッシュメモリ203へ結合されたマイクロタイルメモリ制御ブロック300を有する。メモリ制御ブロック300において、マルチチャネルメモリサブシステムは、システムメモリへのメモリチャネルごとにマイクロタイリングメモリコントローラを有する。
図3Bで、2つのメモリチャネル304A及び304Bが設けられている。このようにして、2つのマイクロタイルメモリコントローラ321A及び321Bは、各メモリチャネル304A及び304Bに設けられている。各メモリチャネル304A及び304Bは、S個のサブチャネル305A乃至305Sから構成され得る。各サブチャネル305は、論理的にNバイトワイド且つBビットワイドである。各メモリチャネル304は、論理的にM=N×Sバイトワイドである。
メモリ制御ブロック300とキャッシュメモリ203との間には、書き込みデータ経路301及び読み出しデータ経路302がある。これらは、読み出し及び書き込み要求が行われ得るところのコマンド経路又はアドレス経路を含みうる。Nバイトは、読み出しトランザクションの場合に、読み出しデータ経路302を介してメモリ制御ブロック300からキャッシュ203へと返される。Nバイトの書き込み要求は、書き込みトランザクションの場合に、キャッシュ203からメモリ制御ブロック300へ書き込みデータ経路300を介して送られる。Nバイトの読み出し又は書き込み要求はキャッシュ203とメモリ制御ブロック300との間で行われ、一方、要求は、例えば、4つのサブチャネルと共に使用され得る2×2の配列の画素又はテクセルを表すよう、2×2個のタイルの配列として表される。
メモリ制御ブロック300は、チャネルアサイナ(assignor)320と、第1のメモリコントローラ321Aと、第2のメモリコントローラ321Bとを有する。メモリ制御ブロック300は、また、メモリチャネル0(304A)及びメモリチャネル1(304B)へ結合されている。メモリチャネル0(304A)はS個のサブチャネル305A乃至305Sを有する。同様に、メモリチャネル1(304B)はS個のサブチャネル305A乃至305Sを有する。共通のアドレスライン310は、各メモリコントローラ321から各サブチャネル305A乃至305Sへと結合する。独立アドレスライン311A乃至311Sは、夫々のサブチャネル305A乃至305Sに結合する。データバスサブチャネル部312A乃至312Sの夫々は、夫々のメモリサブチャネル305A乃至305Sに結合される。
メモリコントローラ321A及び321Bの夫々は、サブチャネルアサイナ322A及び322Bと、再順序づけバッファ324A及び324Bと、トランザクションアセンブラ326A及び326Bを夫々有する。
Nバイトのデータに対するメモリ要求、即ち、チャネルの論理幅はチャネルアサイナ320に結合されている。チャネルアサイナ320は、メモリチャネルの変動を含む状況に依存して、メモリ要求をメモリチャネル0(304A)又はメモリチャネル1(304B)のいずれか一方に割り当てる。チャネルアサイナ320によってメモリチャネルへと割り当てられた後、Nバイトの要求は、夫々のメモリコントローラ321A又は321Bと、サブチャネルアサイナ322A又は322Bとへ結合される。
サブチャネルアサイナ322A及び322Bは、Nバイトの要求をサブチャネル305A乃至305Sへ割り当てる。一時的に図6を参照すると、識別サブチャネル割り当てsは、以下の処理によって決定され得る。(1)要求アドレス“A”はPのSDABビットによって右へシフトされ、結果として、新しい整数値
が得られる。(2)サブチャネル割り当てのための値“s”は、
の最小有効Q−SSBビットである。
マイクロタイリングメモリコントローラ321A及び321Bの夫々は、再順序づけバッファ324A及び324Bを夫々有する。再順序づけバッファ324A及び324Bは、各メモリチャネルにおいてバンド幅効率を向上させるように、メモリ要求をサブチャネルに並べ替える。メモリコントローラ321A又は321Bに入力されるアドレス“A”におけるNバイトデータのブロックの読み出し又は書き込み要求は、サブチャネルに割り当てられ、再順序づけバッファ324A又は324Bにセットされる。再順序づけバッファ324A又は324Bは、サブチャネルごとに再順序づけキュー(queue)として実施され得る。再順序づけバッファの他の実施も可能である。
トランザクションアセンブラ326A、326Bは、全てのS個の要求が同じ共通アドレスビットを有するように、再順序づけバッファからサブチャネルごとに1つであるS個の読み出し要求を選択することによって、メモリ読み出しトランザクションを形成する。それは、全てのS個の要求が同じ共通アドレスビットを有するように、再順序づけバッファからサブチャネルごとに1つであるS個の書き込み要求を選択することによって、メモリ書き込みトランザクションを形成する。例えば、トランザクションアセンブラ326A、326Bは、各サブチャネルに対して1つである4個の16バイト要求から、メモリチャネルにおける16バイトトランザクションを作ることができる。
トランザクションを形成するよう試みる際に、マイクロタイルコントローラにおけるトランザクションアセンブラは、SAの共通アドレスビットが全てのサブチャネルにわたって同じであるように、サブチャネルごとに1つである同時の組の要求を見つけることができない場合がある。このような場合に、要求が見つけられなかったサブチャネルではデータが転送され得ない。あるいは、かかるサブチャネルを介してデータが転送されるならば、データは捨てられ得る。
ここで図5A乃至5Cを参照すると、例となるバイトの再順序づけが、各メモリチャネル500A乃至500Cに関して表されている。図5Aで、メモリチャネル500Aは、0から63までの番号を付された64バイトの転送サイズを有する。64バイトの論理幅は、メモリチャネルの64ビット物理幅によってアクセスされ得る。
図5Bで、メモリチャネル500Bは、2つのメモリサブチャネル505A及び505Bに分割され得る。これらのサブチャネルの夫々は64バイト転送の半分を転送する。従って、各サブチャネルは32バイトを転送する。メモリサブチャネル505Aに関して、アクセスされるメモリバイトは、図5Aのチャネルから並べ替えられた0から31までの番号を付されている。メモリサブチャネル505Bに関して、アクセスされるバイトは、図5Aのチャネルから並べ替えられた32から63までの番号を付されている。
図5Cで、メモリチャネル500Cは、4つのメモリサブチャネル515A、515B、515C及び515Dに分割され得る。これらのサブチャネルの夫々は64バイト転送の4分の1を転送する。従って、各サブチャネルは16バイトを転送する。メモリサブチャネル515Aは、図5Aのチャネルから並べ替えられた0から15までの番号を付されたメモリバイトにアクセスする。メモリサブチャネル515Bは、図5Aのチャネルから並べ替えられた16から31までの番号を付されたメモリバイトにアクセスする。メモリサブチャネル515Cは、図5Aのチャネルから並べ替えられた32から47までの番号を付されたメモリバイトにアクセスする。メモリサブチャネル515Dは、図5Aのチャネルから並べ替えられた48から63までの番号を付されたメモリバイトにアクセスする。このようにして、64バイト転送は、メモリサブチャネルの夫々にわたって等しく分配され、一方、バイト番号は並べ替えられ、割り当てられる。
ここで再び図6を参照すると、バイトは、本発明の他の実施形態において、違うように並べ替えられても良い。
上述されたように、マイクロタイルメモリアクセスをサポートするよう、SAの共通アドレスビットはIの独立アドレスビットと共に利用され得、一方、Qのサブチャネル選択ビット及びPのサブチャネルデータドレスビットは、キャッシュラインによってアクセスされる物理バイトをアドレス指定するよう利用される。64バイトキャッシュラインに関して、Qのサブチャネル選択ビット及びPのサブチャネルデータドレスビットの合計は6である。
図6で、PのサブチャネルデータドレスビットはA0乃至A7と示される。図6で、Qのサブチャネル選択ビットはA10、A8及びその間にあるその他ラベルを付されている。図6で、Iの独立アドレスビットは、A9、A16、A18、A24及びそれらの間にあるその他ラベルを付されている。図6で、SAの共通アドレスビットは、例えば、A11、A15、A17、A19、A20、A25、A26及びAxとラベルを付されている。更なる共通アドレスビットがそれらの間で使用されても良い。
Iの独立アドレスビットにより、サブチャネルアドレスは、互いのアドレスオフセット内で独立である。サブチャネルを互いから完全に独立させるよう、メモリコントローラから各サブチャネルへの命令及びアドレスの完全重複は使用され得るが、メモリコントローラのピン数、入出力ドライバのためのシリコン面積、及びホストプリント回路基板若しくはマザー基板上で必要とされるワイヤ経路面積を著しく増大させうる。代わりに、本発明の実施形態は、図6に表されるように、全てのサブチャネルにわたってサブチャネルアドレスビットの1又はそれ以上の部分を共有し、残りIがサブチャネルごとに独立していることを可能にする。従って、Iの独立アドレスビットの賢明な選択は、Iのアドレス信号を各サブチャネルへ分配する費用に対してバランスの取れた、増大したバンド幅効率を提供することができる。
上述されたように、Iの独立アドレスビットは、各メモリサブチャネルへの追加のアドレスラインの経路を定め、且つ/あるいは、アドレスオーバーロードを用いるところの様々な方法で得られる。
ここで図7Aを参照すると、メモリモジュール(MM)710が表されている。メモリモジュール710は、メモリモジュールMM1乃至MMnの例である。メモリモジュール710は、例えば、SIMM又はDIMMのようないずれかの形式から成る。メモリモジュール710は、プリント回路基板751へ結合されたメモリ集積回路チップ(“メモリデバイス”)752を有する。プリント回路基板751は、ホストプリント回路基板762のエッジコネクタ760へ結合するエッジコネクタ又はエッジ接続754を有する。
メモリのマイクロタイリングをサポートするよう、追加のアドレス信号ラインは、本発明の一実施形態において、プリント回路基板751のエッジ接続754のピン出力のうち未使用の又は未接続のピンを使用することによって、メモリ集積回路752へ独立して供給され得る。エッジ接続754のかかる未使用の又は未接続のピンは、追加の独立アドレス信号ラインをメモリ集積回路752へ経路指定するために使用され得る。同じ未使用のピンは、マザー基板762へ実装された対応するエッジコネクタ760で見つけられる。追加の独立アドレス信号ライン763は、追加の独立アドレス情報を供給するよう、メモリ制御ブロックにおいてメモリコントローラから既存のコネクタへマザー基板にわたって経路を定められる。メモリモジュールのエッジ接続754のピン出力の中には多種多様な未使用の又は未接続のピンがある。
例えば、パリティ又はエラー補正符号(ECC)機能は、エッジ接続754に関してピン出力の一部として確保されたピンを有することができる。消費者に対してメモリモジュールのコストを下げるために、パリティ及びECC機能は、しばしば、メモリモジュールから除かれる。従って、確保されていた信号ライン及びピンは、しばしば使用されなくなる。即ち、パリティ/ECC信号ラインは、マザー基板の全てのエッジ接続に経路を定められ得るが、ECCを使用可能なメモリモジュール(例えば、デュアルインラインメモリモジュール(DIMM;Dual Inline Memory Module)。)がそれに組み込まれる場合のみ使用される。メモリモジュールの未使用の既存のECCライン/ピンは、独立したアドレス信号ラインとして新しい目標に、非ECCメモリモジュールにおいてマイクロタイリングを実施するために使用される。しかし、マイクロタイリングに関してECCライン/ピンを用いる際には、ECC及びマイクロタイリングの両機能は、メモリモジュールにおいて同時に使用され得ない。この解決法は、通常、パリティ/ECCが使用される必要がない環境で、適切に作動する。
他の例として、エッジ接続754のピン出力において確保されていた任意のアクティブローのデータ信号ラインは、それらが、設けられたアクティブハイの信号ラインに関して不必要である場合に、しばしば使用されなくなる。更なる他の例として、メモリモジュールのエッジ接続754のピン出力において確保された任意のテストピンは、かかるテストモードが使用され得ない場合に、しばしば使用されなくなる。
いずれの場合でも、かかる未使用ピンは、独立したアドレス信号ピン755A乃至755Dであるよう目的を改められ、独立アドレス信号ライン763は、ホストプリント回路基板762上で経路指定され、独立アドレス信号ライン756A乃至756Dは、メモリモジュール710のPCB751上で、メモリ集積回路752へと経路指定される。
幾つかの場合に、メモリモジュール710は、更に、例えば、バッファ集積回路(“バッファ”)又はエラー補正制御(ECC)集積回路のような、サポート集積回路750を有することができる。しかし、上述されたように、ECCがメモリモジュール710において提供されない場合には、そうでない場合にECCのために確保されてきた、使用されていないエッジ接続754のピンは、マイクロタイリングをサポートするようメモリサブチャネルへの独立したアドレスラインのために使用され得る。
メモリサブチャネルのマイクロタイリング及び独立アドレス指定をサポートするよう、メモリモジュール710上のメモリ集積回路752は、図7Aに表されるように、例えば、4つのメモリサブチャネル205A、205B、205C及び205Dのように、異なるメモリサブチャネルへ分割されて、割り当てられ得る。通常、メモリ集積回路752のデータI/Oは、4、8又は16ビットワイドである。メモリチャネルに関する64ビット及び各メモリサブチャネルに関する16ビットの物理幅のために、4つの16ビットワイドメモリ集積回路752が、夫々、4つのメモリサブチャネル205A、205B、205C及び205Dへ一対一で割り当てられうる。8つの8ビットワイドメモリ集積回路752は、夫々、4つのメモリサブチャネル205A、205B、205C及び205Dへ1度に2つを割り当てられ、メモリチャネルに関する64ビット及び各メモリサブチャネルに関する16ビットの物理幅を提供しうる。16個の4ビットワイドメモリ集積回路752は、夫々、4つのメモリサブチャネル205A、205B、205C及び205Dへ1度に4つを割り当てられ、メモリチャネルに関する64ビット及び各メモリサブチャネルに関する16ビットの物理幅を提供しうる。
2つのメモリサブチャネルの場合、4つの16ビットワイドメモリ集積回路752は、夫々、メモリチャネルに関する64ビット及び各メモリサブチャネルに関する32ビットの物理幅のために、2つのメモリサブチャネルに1度に2つを割り当てられうる。8つの8ビットワイドメモリ集積回路752は、夫々、メモリチャネルに関する64ビット及び各メモリサブチャネルに関する32ビットの物理幅のために、2つのメモリサブチャネルに1度に4つを割り当てられうる。16個の4ビットワイドメモリ集積回路752は、夫々、メモリチャネルに関する64ビット及び各メモリサブチャネルに関する32ビットの物理幅のために、2つのメモリサブチャネルに1度に8つを割り当てられうる。
メモリモジュールのエッジ接続754及び標準のエッジコネクタ760の未使用ピンを用いることによって、メモリモジュール710は、既存のメモリサブシステムとの下位互換性を有することができる。本発明の他の実施形態で、新しいエッジ接続754及び新しいエッジコネクタ760は、マイクロタイリングメモリをサポートするよう、追加の独立アドレス信号ラインを設けられる。しかし、本発明のこの実施形態で、メモリモジュール及びエッジコネクタは、特にメモリのマイクロタイリングをサポートするよう設計されており、既存のシステムとの下位互換性は有さない。本発明の更なる他の実施形態で、メモリ集積回路は、メモリモジュール710又はエッジコネクタ760を用いることなくマザー基板に取り付けられる。
ここで図7Bを参照すると、メモリ集積回路752は、マイクロタイルメモリコントローラ208A乃至208Nを有するメモリ制御ブロック202と共にホスト回路基板762に半田付けされることによって、図2A及び図2Bで先に記載及び図示された他の構成要素と共にホストプリント回路基板762上に組み込まれている。ホストプリント回路基板762上の経路面積を犠牲にして、独立アドレス信号ライン766A乃至766Dは、メモリ制御ブロック202におけるマイクロタイルメモリコントローラ208A乃至208Nと、メモリ集積回路752との間に設けられている。かかる独立アドレス信号ライン766A乃至766Dは、異なるメモリサブチャネル205A乃至205Dにおいてメモリ集積回路752にわたって共有されない。しかし、独立アドレス信号ラインは、同じメモリサブチャネルにおいて1又はそれ以上のメモリ集積回路752の中で共有され得る。
例えば、4つの独立したメモリサブチャネルが各メモリチャネルで見つけられるところの図3Aを考える。追加の独立した4つのアドレスラインは、各サブチャネルにおいてメモリの領域に独立してアクセスするよう、サブチャネルごとに設けられ得る。(A10〜A6とラベルを付された)アドレスライン311A乃至311Dは、各サブチャネルにおいて独立している。ひと組の4本のアドレスラインが予め存在するならば、経路指定されるべき追加のアドレスラインの総数は、3×4、即ち12の独立したアドレス信号ラインである。追加の信号ラインの経路指定は、メモリがマザー基板上に取り付けられる場合に適切に作動する。代替的に、メモリモジュールへのマザー基板上での追加の信号ラインの経路指定は、既存のエッジコネクタ及びメモリモジュールのピン出力が全く利用されない場合に、独立したアドレス信号伝送を加えるために使用され得る。しかし、既存のコネクタのピン出力が完全に使用されているならば、追加のラインのための余地はなく、かかる方法、即ち、追加の信号ラインの経路指定は、特に下位互換性が望まれる場合には、容易に実行可能でない。
ここで図8を参照すると、メモリ集積回路800のブロック図が表されている。メモリ集積回路800は、1又はそれ以上のメモリデバイス752としてメモリモジュールMM1乃至MMnに含まれうる。メモリ集積回路800は、示されるように共に結合された、メモリアレイ801と、行アドレスデコーダ802と、ビットライン・プレチャージ/リフレッシュロジック803と、列デコーダ804と、センスアンプアレイ及び書き込みドライバブロック806と、コントローラ808と、アドレスバッファ811と、マイクロタイル制御ロジック812とを有する。マイクロタイルロジック812は、また、オーバーロードロジック(OL;Overload Logic)とも呼ばれる。
コントローラ808は、メモリ集積回路800の一般的機能を制御するよう設定/初期化され得る複数のビットを含むモードレジスタ810を有する。モードレジスタ810は、ビットを記憶するためのビット記憶回路を有する。モードレジスタ810のビットは、ロードストローブと同期してアドレスライン820又はデータライン821において適切なビット設定を適用することによって設定され得る。ロードストローブは、メモリが遊休状態である場合に、メモリ集積回路800のコントローラ808に結合された制御ライン822のうちの1又はそれ以上を切り替えることによって発生することができる。コントローラ808は、制御ライン822のうちの1又はそれ以上を受け入れる。1又はそれ以上の制御ライン822は、行アドレスストローブRAS#、列アドレスストローブCAS#、書き込みイネーブルWE#、バンクセレクトBA0、BA1、BA0、又は、他の標準的なメモリ集積回路制御入力を有しうる。
より具体的に、モードレジスタ810は、マイクロタイルメモリアクセスのための集積回路800を構成するために使用され得る。以下で更に記載されるように、モードレジスタ810のビットの1つは、マイクロタイルイネーブルビットである。マイクロタイルイネーブルビットはアクティブハイであって、MTEビットと呼ばれうる。代替的に、マイクロタイルイネーブルビットはアクティブローであって、MTE#と呼ばれうる。いずれにせよ、マイクロタイルイネーブルビットは、概して、マイクロタイルイネーブルビット、即ち、MTE(Micro−Tile Enable)ビットと呼ばれる。マイクロタイルイネーブルビットは、装置が最初に電源を入れられる場合に、又はリセットされる場合にマイクロタイリングが使用不可能とされるように、デフォルトによってリセットされる。このことは、メモリモジュール710及びメモリ集積回路800が、マイクロタイリングをサポートしないシステムに組み込まれる場合に下位互換性を有することを可能にする。モードレジスタ810は、更に、集積されるメモリが割り当てられ、アドレス指定可能であるところのメモリサブチャネルを示すための、1又はそれ以上のサブチャネル選択(SCS;Sub−Channel Select)を有する。MTEビット及び1又はそれ以上のSCSビットは、マイクロタイル制御ロジック812に結合される。
マイクロタイル制御ロジック812は、アドレスバッファ811を介して列アドレスデコーダ804及び/又は行アドレスデコーダ802へアドレスを結合するように、複数のアドレス信号ライン820へ結合されている。アドレスバッファ811は、内部アドレス信号ラインにおいてアドレス信号をラッチして、それらをアドレスデコーダに対して保持することができる。制御ロジック812は、また、コントローラ808のモードレジスタ810へ結合されており、メモリアレイ801へのマイクロタイルメモリアクセスをサポートするためにマイクロタイルイネーブルビット及び少なくとも1つのサブチャネル選択ビットを受け取る。マイクロタイルイネーブルビット及び少なくとも1つのサブチャネル選択ビットに応答して、制御ロジック812は、アドレス信号ラインのうちの1又はそれ以上を選択し、それによって、独立したアドレス情報が割り当てられた所定のサブチャネルに関して独立したアドレス情報を獲得する。即ち、アドレス信号ラインのサブセットのみが、所定のサブチャネルへ割り当てられ得る。制御ロジック812は、アドレス信号ラインのかかるサブセットを選択し、独立したアドレス情報を得る。他のアドレス信号ラインは他のサブチャネルに対して使用され得、又は、幾つかは、各サブチャネルへのアドレス信号ラインを共有され得る。制御ロジック812は、独立したアドレス情報を列アドレスデコーダ804及び/又は行アドレスデコーダ802に結合する。制御ロジック812による1又はそれ以上のアドレス信号ラインの選択は、更に、列アドレスロード信号(CAS#)及びトランザクションイネーブル信号に応答しても良い。
更なる制御ロジックは、1有効ビットの独立アドレス情報を他の有効ビット部へ更に変換する(swizzle)ために、マイクロタイル制御ロジック812に加えられ得る。これは、マイクロタイリングが使用可能である場合に、スクリーンリフレッシュとして、いくらか線形なアドレッシング方法を提供するためである。
センスアンプアレイ及び書き込みドライバブロック806はデータ入出力(I/O)バスへ結合し、メモリアレイ801からデータを読み出したり、あるいはメモリアレイ801にデータを書き込んだりするようコントローラ808から制御信号を受信することができる。センスアンプアレイ及び書き込みドライバブロック806は、メモリアレイ801に書き込み込まれるべきデータを受け取って、メモリアレイ801からデータ入出力(I/O)バス821を介して読み出されたデータを送り出す。データ入出力(I/O)バス821は、通常4、8又は16ビットワイドであるメモリ集積回路800の双方向データラインを有する。
メモリアレイ801は、行及び列において編成され得るメモリセルから成る。通常、メモリセルは動的ランダムアクセスメモリ(DRAM)であるが、任意に、スタティックタイプのランダムアクセスメモリ(SRAM)セル又は不揮発性プログラム可能(NVRAM)タイプの書き換え可能なメモリセルであっても良い。
行アドレスデコーダ802は、メモリアレイ801においてメモリセルの行をアドレス指定するために、アドレスラインにおいて行アドレスを受け取り、ワードライン(WL;Word Line)の1つにおいて信号を発生させる。列デコーダ804は、また、アドレスラインにおいて列アドレスを受け取り、メモリセルの行内のどの列がアクセスされるべきかを選択する。列デコーダ804は、本質的に、アクセスされるべきメモリセルへのビットラインを選択する。読出アクセスで、列デコーダ804はマルチプレクサとして機能する。書き込みアクセスで、列デコーダ804はデマルチプレクサとして機能する。列アドレスデコーダ804は、共通の列アドレス信号に応答してメモリアレイ801内のメモリセルの列に選択的にアクセスし、モードレジスタ810内のマイクロタイルイネーブルビットが設定されるならば、列アドレスデコーダ804は、更に独立サブチャネル列アドレス信号に応答してメモリアレイ801内のメモリセルの列に選択的にアクセスする。
センスアンプアレイ及び書き込みドライバブロック806は、読み出し動作の間に論理1又は論理0のどちらがアクセスされるメモリセル内に記憶されたかを決定するよう、センス増幅器を有することができる。アドレス指定されるメモリセルは、読み出し動作の間に、論理1又は論理0をメモリアレイの選択されたビットラインに駆動するよう試みる。センス増幅器は、読み出し動作の間に論理1又は論理0のどちらがメモリアレイの選択されたビットラインへとアドレス指定されるメモリセルによって送り出されたかを検出する。センスアンプアレイ及び書き込みドライバブロック806は、書き込み動作の間に論理1又は論理0をメモリアレイの選択されたビットライン上に及びアドレス指定されるメモリセルへと駆動するよう、書き込みドライバを更に有することができる。
プレチャージ/リフレッシュブロック803は、メモリアレイ801においてビットラインへ結合する。プレチャージ/リフレッシュブロック803は、読み出し又は書き込み動作の間にメモリセルをアドレス指定する前にビットラインを予め調整することができる。プレチャージ/リフレッシュブロック803は、また、非アクティブの期間の間、メモリアレイ801のメモリセルに記憶されるデータをリフレッシュすることができる。
あるメモリ周期の間、メモリ集積回路800への幾つの既存の信号ラインは使用されず、他の目的のためにこの時間の間に新しい目標へ向けられ得る。例えば、CAS(Column Address Strobe)周期の間、全てのアドレスラインが使用されるわけではない。かかる未使用のアドレス信号ラインは、追加のアドレス情報をメモリモジュール(例えばDIMM。)及びその中のメモリ集積回路デバイスへ送るよう、CAS周期の間は新しい目標へ向けられる。メモリ制御ブロック202におけるメモリコントローラ208は、CAS周期の間、かかる未使用のアドレス信号ラインを介して追加のアドレス情報を送る。追加のマイクロタイル制御ロジック回路812及びモードレジスタ810内のビットを有するメモリ集積回路800は、CAS周期の間使用されなかった以前に未使用であったアドレス信号ラインにおいてこれらのオーバーロード信号を認識し、復号化する。
ここで図9Aを参照すると、マイクロタイリングをサポートするよう、メモリ集積回路内のモードレジスタ810Aへ結合された例となるマイクロタイルメモリ制御ロジック812Aが表されている。マイクロタイルメモリ制御ロジック812Aの例となる実施は、例えばCAS周期のような、未使用メモリ周期の間に提供される追加のアドレス情報を有するオーバーロードアドレス信号ラインを復号化する。マイクロタイルメモリ制御ロジック812Aの回路図は、4つのサブチャネルが設けられ、それらの夫々がマイクロタイリングをサポートするよう16バイトの論理幅を有するとする。
マイクロタイルメモリ制御ロジック812Aの中心は、独立アドレス情報を獲得するようデュアル4入力マルチプレクサ900である。マイクロタイルメモリ制御ロジック812Aのデュアル4入力マルチプレクサ900は、マルチプレックス出力(A3′及びA4′)において共通列アドレス信号又は独立サブチャネル列アドレス信号を選択的に出力する。デュアル4入力マルチプレクサ900の出力(A3′及びA4′)は、列アドレスデコーダの入力部へ結合される。独立サブチャネル列アドレス信号は、夫々のメモリサブチャネルによって受信されるよう選択された1又はそれ以上の独立した列アドレス信号である。
マイクロタイルメモリ制御ロジック812Aは、メモリ集積回路のアドレスピンからアドレスラインを受け取る。マイクロタイルメモリ制御ロジック812Aは、行アドレスデコーダ及び列アドレスデコーダへ分配されるようアドレスバッファへアドレスを供給する。メモリ集積回路のアドレスピンの幾つかは、共通行アドレス信号、共通列アドレス信号、独立列アドレス信号、又はそれらの組合せを受け取る。例えば、アドレスピンA5乃至A9及びA13はマイクロタイルメモリ制御ロジック812Aを順に回し、メモリサブチャネルの夫々への共通行アドレス信号及び/又は共通列アドレス信号を受信することができる。アドレスピンA0乃至A4及びA10乃至A12はデュアル4入力マルチプレクサ900に結合され、マイクロタイリングが使用可能である場合に、共通行アドレス信号及び独立列アドレス信号を受信することができる。マイクロタイリングが使用可能でない場合、デュアル4入力マルチプレクサ900へ結合されるアドレスピンA3及びA4は、共通行アドレス信号及び/又は共通列アドレス信号を受信することができる。列アドレスロードストローブピンCAS#は、列アドレスロードストローブ信号を受信し、メモリ集積回路の内部での獲得のために所与のサブチャネルに割り当てられたアドレスピンにおいて独立列アドレス信号のうちの適切な1又はそれ以上を選択的に受信するよう、制御ロジック812Aへ結合される。列アドレスロードストローブ信号は、また、適切なアドレスピンから共通列アドレス信号を受信及び獲得するために使用され得る。
モードレジスタ810Aは、マイクロタイルイネーブル(MTE)ビット、サブチャネル選択ビット0(SCS0)ビット、及びサブチャネル選択ビット1(SCS1)ビットの設定を記憶するよう、例えばフリップフロップ又はメモリセルのような、3つのビット記憶回路を有することができる。モードレジスタ810Aにおけるかかる3つのビットは、適切なサブチャネル選択ビット及びマイクロタイルイネーブルビットによりプログラムされる。かかる3つのビットは、メモリ集積回路が、例えば電源オン又はリセットのような初期化の間に受信するビット設定から設定/リセットされる。かかる3つのビットは、また、メモリ集積回路が進行中のメモリアクセスがない遊休状態である場合に、設定/リセットされ得る。ビット設定は、アドレス又はデータ信号ラインを介して受信され、メモリ集積回路に結合された1又はそれ以上の制御ラインによって生成されるロードストローブ信号に応答してモードレジスタにロードされ得る。マイクロタイリングがメモリ集積回路において使用可能とされるべきならば、マイクロタイルイネーブルビットMTEが設定される。MTEビットがアクティブハイである場合、それはハイ論理レベルに設定される。アクティブローであるならば、MTE#ビットは論理ローレベルに設定される。図9Aの例となる制御ロジックでは、メモリチャネル内に場合により4又はそれより少ないサブチャネルが存在する。SCS0及びSCS1ビットは4つのメモリサブチャネルのうちの1つへメモリ集積回路を割り当てる。同じメモリモジュールにおける他のメモリ集積回路は、4つのメモリサブチャネルのうちの他の1つへ割り当てられ得る。
サブチャネルの夫々に対する独立アドレス情報は、CAS周期の間、例えばアドレスラインA0乃至A4及びA10乃至A12などの既存のアドレスラインを介して利用可能とされる。この例で、アドレスラインA3及びA4が通常は使用される。従って、アドレスラインA0、A1、A2、A10、A11、A12及びA13は過剰な信号ラインである(A13はトランザクション基準において規定されるマイクロタイル・トランザクションイネーブルであっても良い。)。実際には、既存のアドレスラインにおいて信号ラインをオーバーロードとする当該方法は、追加のトレース(即ち、ワイヤ経路)の使用又は追加のピンの使用を伴わずにメモリ集積回路デバイスへ6本の追加のアドレスライン(A0乃至A2及びA10乃至A12)を提供する。
マイクロタイルメモリ制御ロジック812Aは、適切な独立サブチャネルアドレス情報がモードレジスタに記憶されたサブチャネル選択ビットに応答してアドレスラインA0乃至A4及びA10乃至A12から選択されるように、各メモリ集積回路に設けられる。サブチャネル選択ビットの設定は、マルチプレクサ900の入力選択処理を制御するようモードレジスタ810Aからマイクロタイルメモリ制御ロジック812Aへと送られる。マルチプレクサ900の出力端子は、アドレス信号ラインA3′及びA4′へ結合される。アドレス信号ラインA3′及びA4′は、メモリアレイ内のメモリセルを選択するようアドレスデコーダ(例えば、列アドレスデコーダ804)へ結合される。
マイクロタイル制御ロジックは、CAS#がアクティブローであるところの列アドレス書き込みアクセス時間(“CAS周期”)の間、メモリアドレス信号ラインA3′及びA4′をオーバーロードとする。即ち、アドレスビットA0、A1、A2、A10、A11及びA12は、通常、列アドレスがマイクロタイリングを有さないメモリ集積回路へ書き込まれている場合には使用されないアドレスビットである。A3′及びA4′によって置換されるアドレスビットA3及びA4は、列アドレスをメモリ集積回路へ書き込むために使用されるアドレスビットである。アドレスビットは、通常、CAS周期の間はマイクロタイリングなしで使用されず、一方、それらは、RAS#がアクティブローである場合に行アドレスがメモリ集積回路に書き込まれている場合(“RAS周期”)、メモリ集積回路において行アドレスを選択するために使用される。これは、アドレス過剰と呼ばれる。A0、A1、A2、A10、A11及びA12は、図9Aにおいて列アドレスストローブCA#の間未使用アドレスビットとして表されるが、異なる未使用アドレスビットが、マイクロタイリングをサポートするようオーバーロードアドレス信号ラインとして使用されても良い。
マイクロタイルメモリ制御ロジック812Aは、示されるように共に結合された、デュアル4入力マルチプレクサ900と、3入力ANDゲート903と複数の2入力ANDゲート904乃至911と、複数のインバータ912乃至918とを有する。当然、ANDゲートは、NANDゲートと、NANDゲートの出力へ結合されたインバータとの組合せによって形成されても良い。
デュアル4入力マルチプレクサ900は、共に結合された第1の選択制御入力S0と、共に結合された第2の選択制御入力S1とを夫々有する一対の4入力1出力マルチプレクサである。第1の4入力1出力マルチプレクサは、入力1I0乃至1I3を受け取り、選択制御入力S0及びS1に応答して出力1Yを供給する。第2の4入力1出力マルチプレクサは、入力2I0乃至2I3を受け取り、選択制御入力S0及びS1に応答して出力2Yを供給する。S0及びS1が両方とも論理ロー又は0であるならば、入力1I0及び2I0は夫々の出力1Y及び2Yにマルチプレックスされる。S0が論理ハイ又は1であり、且つ、S1が論理ロー又は0であるならば、入力1I1及び2I1は夫々の出力1Y及び2Yにマルチプレックスされる。S0が論理ロー又は0であり、且つ、S1が論理ハイ又は1であるならば、入力1I2及び2I2は夫々の出力1Y及び2Yにマルチプレックスされる。S0及びS1が両方とも論理ハイ又は1であるならば、入力1I3及び2I3は夫々の出力1Y及び2Yにマルチプレックスされる。
デュアル4入力マルチプレクサ900の第1の4入力1出力マルチプレクサは、その夫々の1I0乃至1I3入力でアドレスビットA3、A0、A1及びA2を受け取り、その1Y出力でアドレス信号ラインA3′に駆動されるようそれらの1つを選択する。第2の4入力1出力マルチプレクサは、その夫々の2I0乃至2I3入力でアドレスビットA4及びA10乃至A12を受け取り、その2Y出力でアドレス信号ラインA4′に駆動されるようそれらの1つを選択する。選択制御入力S0及びS1は、夫々、ANDゲート904及び905の出力へ結合されている。
ANDゲート903は、その出力でマイクロタイルモード信号(MTM)902Aを発生させる。マイクロタイルモード信号902Aはアクティブハイであり、独立アドレス信号がデュアル4入力マルチプレクサ900に結合されるオーバーロードアドレス信号ラインにあるところの適切な時点に発生する。インバータ912は、ANDゲート903の入力に結合されるその出力でアクティブハイCAS信号へとアクティブローCAS#信号を反転させる。ANDゲート903は、CAS信号、MTEビット設定(ME)及びトランザクションイネーブル信号(TE、アドレスビットA13)の論理アンドを取り、マイクロタイルモード信号902Aを発生させる。即ち、マイクロタイルがMTEビットによって使用可能にされ、トランザクションがTE信号によって使用可能にされるならば、マイクロタイルモード信号(MTM)902Aは、CAS#がローになる場合に発生する。
マイクロタイルモード信号(MTM)902Aは、サブチャネル選択ビットSCS0及びSCS1をゲート制御するようANDゲート904及び905の入力に結合されている。マイクロタイルモード信号(MTM)902Aが何らかの理由でローであるならば、マルチプレクサ900への選択制御S0及びS1は、ANDゲート904及び905の出力において論理ロー又は0である。S0及びS1が両方とも論理ロー又0であるならば、入力1I0及び2I0へ夫々結合されているアドレスビットA3及びA4は、夫々、夫々の出力1Y及び2Yにおいてアドレス信号ラインA3′及びA4′にマルチプレックスされる。ビットA3及びA4は、夫々、単に、信号ラインA3′及びA4′に送られる。これは、マイクロタイリングが使用可能でない場合に、又は、ビットA3及びA4が、例えば行アドレッシングなど、何らかの他の理由で使用される場合に、デフォルト状態である。
マイクロタイルモード信号(MTM)902Aがアクティブハイである場合、サブチャネル選択ビットSCS0及びSCS1は、夫々、ANDゲート904及び905を夫々介することによって、マルチプレクサ900の選択制御入力S0及びS1に結合される。従って、マイクロタイルモード信号(MTM)902AがANDゲート903によってアクティブハイであるよう発生する場合、サブチャネル選択ビットSCS0及びSCS1は、マルチプレクサ900の夫々の出力に対する夫々の4入力のマルチプレックスの選択を制御する。有効に、メモリICが割り当てられるところのサブチャネルを示すサブチャネル選択ビットSCS0及びSCS1の設定は、マルチプレクサ900に結合されるどのアドレスビットラインがCAS周期の間に独立アドレス信号を獲得するために使用されるかを決定する。
サブチャネル選択ビットSCS0及びSCS1の設定は、1のサブチャネルから次のサブチャネルへと変化する。4つのサブチャネルに関して、SCS0及びSCS1のために夫々4つの異なる設定が存在する。しかし、留意すべきは、4つのサブチャネルをサポートするよう設計されるマイクロタイル制御ロジックは、サブチャネル選択ビットSCS0及びSCS1の2つの異なる設定のみを用いることによって2つのサブチャネルをサポートするよう容易に減じられ得る。SCS0及びSCS1に対する異なる設定により、マルチプレクサ900は、マイクロタイルモード信号が発生する場合に独立アドレス信号を獲得するよう異なるアドレス信号ラインを選択する。
マイクロタイルモード信号(MTM)902Aは、ANDゲート906乃至911に対する第1の入力部に夫々あるインバータ913乃至918に結合されている。アドレス信号A0、A1、A2、A10、A11及びA12は、夫々、ANDゲート906乃至911の第2の入力部に結合されている。マイクロタイルモード信号(MTM)902Aは、有効に、アドレス信号ライン上の信号A0、A1、A2、A10、A11及びA12を、夫々、ANDゲート906乃至911の出力A0′、A1′、A2′、A10′、A11′及びA12′でメモリ集積回路へとゲート制御する。即ち、マイクロタイルモード信号(MTM)902Aが論理ロー又0である場合に、ANDゲート906乃至911は、アドレス信号ライン上の信号A0、A1、A2、A10、A11及びA12が出力A0′、A1′、A2′、A10′、A11′及びA12′に及びアドレスデコーダへ送られることを可能にする。マイクロタイルモード信号(MTM)902Aが論理ハイ又は1である場合に、ANDゲート906乃至911は、全ての出力A0′、A1′、A2′、A10′、A11′及びA12′を論理ロー又は0へと駆動する。従って、マイクロタイルモード信号(MTM)902Aが独立アドレス情報を獲得するようアクティブハイである場合、出力A0′、A1′、A2′、A10′、A11′及びA12′は、それらが全て0へと駆動されるので、使用されない。
ここで図9Bを参照すると、マイクロタイリングをサポートするよう、メモリ集積回路内のマイクロタイル制御ロジック812Bへ結合されたモードレジスタ810Bが表されている。マイクロタイルメモリ制御ロジック812Bは、メモリチャネル内の2つのサブチャネルのサポート及びアクティブロー制御信号伝送の使用を除いて、マイクロタイル制御ロジック812Aに幾らか類似するよう機能する。マイクロタイル制御ロジック812Bにおける回路は、マルチプレクサの選択制御入力によるアドレス信号ラインでの独立アドレス信号の選択における遅延を低減するよう形成されている。サポートすべき2つのメモリサブチャネルにより、マイクロタイル制御ロジック812Bは、受信するよう選択されるアドレス信号ラインにおいて2つの独立した組のアドレス信号を受信する。マイクロタイルメモリ制御ロジック812Bの中心は、アドレス信号ラインから独立アドレス情報を獲得するようヘックス(6)2入力マルチプレクサ901Aである。マイクロタイルメモリ制御ロジック812Bにおけるヘックス2入力マルチプレクサ901Aは、独立した組のアドレス信号が選択的に受信され得るところの更なる異なったアドレス信号ラインを受け取る。即ち、図6に表されるIの独立アドレスラインの数は、より大きくなる。結果として、メモリサブチャネル内の独立にアドレス可能なメモリ空間は、より大きくなる。
マイクロタイル制御ロジック812Bは、アドレスピンA0乃至A8及びA10乃至A13を含むメモリ集積回路のアドレスピンへ結合されている。サブチャネルの夫々に対する独立アドレス情報は、CAS周期の間、かかる既存のアドレスラインを介して利用可能にされる。マイクロタイル制御ロジック812Bは、内部アドレス信号ラインA3′乃至A8′において独立サブチャネルアドレス信号を選択的に形成する。内部アドレス信号ラインA0′乃至A8′及びA11′乃至A13′は、アドレスバッファを介してアドレスデコーダへ結合される。アドレスバッファは、RAS#及びCAS#ストローブ信号に応答して内部アドレス信号ラインA0′乃至A8′及びA11′乃至A13′並びにA9乃至A10においてアドレス信号をラッチして、アドレス信号をアドレスデコーダへ結合することができる。アドレスピンA0乃至A8及びA10乃至A13は、使用されないメモリ周期の間、オーバーロードアドレス信号を有しており、示されるように、ヘックス2入力マルチプレクサ901Aの入力部へ結合される。アドレス信号ラインA3乃至A8は第1の組のアドレス信号ラインであり、これを介して第1の組の独立アドレス信号は第1のメモリサブチャネルに結合され得る。アドレス信号ラインA0乃至A2及びA11乃至A13は第2の組のアドレス信号ラインであり、これを介して第2の組の独立アドレス信号は第2のメモリサブチャネルに結合され得る。第1のサブチャネル選択ビット(SCS0)及びマイクロタイルモード信号(MTM#)902Bに応答して、マイクロタイル制御ロジック812Bは、概して、受信した第1のメモリサブチャネルに対する第1の組の独立アドレス信号と、第2のメモリサブチャネルに対する第2の組の独立アドレス信号との間で選択する。選択された組の独立アドレス信号は、ヘックス2入力マルチプレクサ901Aの出力において供給される。かかる独立アドレス信号は、各メモリサブチャネルに結合され得るSA共通アドレスビットによって形成される共通メモリ領域の組の中で独立に異なるメモリ領域をアドレス指定するようメモリ集積回路に結合される。
サブチャネルの夫々に対する独立アドレス情報は、CAS周期の間、例えばアドレスラインA0乃至A4及びA10乃至A12のように、既存のアドレスラインを介して利用可能にされる。この例で、アドレスラインA3乃至A8が通常は使用される。従って、アドレスラインA0乃至A2及びA10乃至A12は可能な信号ラインである(A13はトランザクション基準において規定されるマイクロタイル・トランザクションイネーブルであっても良い。)。実際には、既存のアドレスラインにおいて信号ラインをオーバーロードとする当該方法は、追加のトレース(即ち、ワイヤ経路)の使用又は追加のピンの使用を伴わずにメモリ集積回路デバイスへ6本の追加のアドレスライン(A0乃至A2及びA10乃至A12)を提供する。
モードレジスタ810Bは、アクティブロー・マイクロタイルイネーブルビットMTE#及びサブチャネル選択ビット0(SCS0)の設定を記憶するよう、例えばフリップフロップ又はメモリセルのような、2つのビット記憶回路を有することができる。モードレジスタはかかる2つのビットに関するビット設定を受け取る。ビット設定は、1又はそれ以上の制御信号によって生成されるロードストローブ信号を用いてモードレジスタにロードされる。かかる2つのビットは、メモリ集積回路が、例えば電源オン又はリセットのような初期化の間に受信するビット設定から設定/リセットされる。かかる2つのビットは、また、メモリ集積回路が進行中のメモリアクセスがない遊休状態である場合に、設定/リセットされ得る。ビット設定は、アドレス又はデータ信号ラインを介して受信され、メモリ集積回路に結合された1又はそれ以上の制御ラインによって生成されるロードストローブ信号に応答してモードレジスタにロードされ得る。
モードレジスタ810BにおけるMTE#ビット及びSCS0ビットは、適切なサブチャネル選択ビット及びマイクロタイルイネーブルビットによりプログラムされる。マイクロタイリングがメモリ集積回路において使用可能とされるべきならば、アクティブロー信号であるマイクロタイルイネーブルビットMTE#は論理ローレベルに設定され得る。マイクロタイルイネーブルビットは、メモリサブシステムがマイクロタイリングをサポートする場合に設定される。そうでない場合、マイクロタイルイネーブルビットは、メモリ集積回路が、マイクロタイリングをサポートしないより古いシステムと下位互換性を有するように設定されない。図9Bの例となる制御ロジックでは、メモリチャネル内に2つの可能なサブチャネルが存在する。SCS0ビットは、メモリチャネル内の2つのメモリサブチャネルのうちの1つへメモリ集積回路を割り当てる。同じメモリモジュールにおける他のメモリ集積回路は、残りのメモリサブチャネルへ割り当てられ得る。
マイクロタイルメモリ制御ロジック812Bは、適切な独立サブチャネルアドレス情報がモードレジスタに記憶されたサブチャネル選択ビットに応答してアドレス信号ピンから選択され得るように、各メモリ集積回路に設けられる。サブチャネル選択ビットの設定は、マルチプレクサ901Aの入力選択処理を制御するようモードレジスタ810Bからマイクロタイルメモリ制御ロジック812Bへと送られる。
マイクロタイル制御ロジック812Bは、図9Bに表されるように共に結合された、第1のヘックス2入力マルチプレクサ901Aと、第2のヘックス2入力マルチプレクサ901Bと、複数のANDゲート906乃至911と、複数のインバータ913乃至918と、3入力ORゲート923とを有する。当然、ORゲートは、NORゲートの出力へインバータの入力を結合することによって形成されても良い。ANDゲートの周知の形状については上述したとおりである。
第1のヘックス2入力マルチプレクサ901Aの出力は、第2のヘックス2入力マルチプレクサ901Bにおけるマルチプレクサの夫々の2入力のうちの第1入力部に結合されている。アドレスビット又は信号ラインA3、A4、A5、A6、A7及びA8は、第2のヘックス2入力マルチプレクサ901Bにおけるマルチプレクサの夫々の2入力のうちの第2入力部に結合されている。第2のヘックス2入力マルチプレクサ901Bの出力は、アドレス信号ラインA3′乃至A8′へ結合されている。アドレス信号ラインA3′乃至A8′は、アドレスデコーダ(例えば、列アドレスデコーダ804)へ結合され、メモリアレイ内のメモリセルを選択する。アドレスバッファは、アドレス信号ラインA3′乃至A8′をラッチ又はレジストし、それらがアドレスデコーダによって復号化され得るようにその状態を保持する。
第1のヘックス2入力マルチプレクサ901Aは、マルチプレクサ901Aの出力がメモリ集積回路のサブチャネル割り当てによって直接的に制御されるように、サブチャネル選択0(SCS0)ビットへ結合されたその選択制御S0を有する。この方法で、選択される出力は、アドレス信号の伝搬遅延を最小限とするよう適切に設定される。第2のヘックス2入力マルチプレクサ901Bは、3入力ORゲート923の出力、即ち、アクティブロー・マイクロタイルモード(MTM#)902Bへ結合されたその選択制御入力S0を有する。アクティブロー・マイクロタイルモード(MTM#)902Bが論理ロー又は0であるならば、マイクロタイリングメモリアクセスは使用可能であり、従って、第1のヘックス2入力マルチプレクサ901Aは、アドレス信号ラインA3′乃至A8′において第2のヘックス2入力マルチプレクサ901Bの夫々の論理出力である。マイクロタイリングアクセスが使用可能でないならば、MTM#はハイであり、従って、マルチプレクサの夫々の2入力のうちの第2入力部は選択され、アドレス信号ラインA3乃至A8は独立サブチャネル列アドレスラインA3′乃至A8′に結合される。この場合に、第1のヘックス2入力マルチプレクサ901Aは、夫々マイクロタイル制御ロジック812Bの周りに有効に経路を定められ、且つ、内部アドレスラインA3′乃至A8′上に駆動されるアドレス信号A3乃至A8に作用しない。
ヘックス2入力マルチプレクサ901A及び901Bは、共に結合された選択制御入力S0を有する6つの2入力1出力マルチプレクサを有する。第1の2入力1出力マルチプレクサは、入力1I0及び1I1を受け取り、選択制御入力S0に応答して出力1Yを供給する。第2の2入力1出力マルチプレクサは、入力2I0及び2I1を受け取り、選択制御入力S0に応答して出力2Yを供給する。第3の2入力1出力マルチプレクサは、入力3I0及び3I1を受け取り、選択制御入力S0に応答して出力3Yを供給する。第4の2入力1出力マルチプレクサは、入力4I0及び4I1を受け取り、選択制御入力S0に応答して出力4Yを供給する。第5の2入力1出力マルチプレクサは、入力5I0及び5I1を受け取り、選択制御入力S0に応答して出力5Yを供給する。第3の2入力1出力マルチプレクサは、入力6I0及び6I1を受け取り、選択制御入力S0に応答して出力6Yを供給する。S0が論理ロー又は0であるならば、入力1I0、2I0、3I0、4I0、5I0及び6I0は、夫々、出力1Y、2Y、3Y、4Y、5Y及び6Yに駆動される。S0が論理ハイ又は1であるならば、入力1I1、2I1、3I1、4I1、5I1及び6I1は、夫々、出力1Y、2Y、3Y、4Y、5Y及び6Yに駆動される。
上述されたように、3入力ORゲート923は、その出力でアクティブロー・マイクロタイルモード(MTM#)信号902Bを発生させる。その入力で、3入力ORゲート923は、マイクロタイルイネーブルビットMTE#、列アドレスストローブCAS#信号及びトランザクションイネーブルビットTE#(アドレスラインA10)を受け取る。かかる3入力の全てがロー論理レベル又は0であるならば、マイクロタイルモード(MTM#)信号902Bは、オーバーロードアドレスラインから独立サブチャネルアドレス信号を選択的に受信するよう論理ロー又は0である。これは、マイクロタイリングがアクティブローレベル又は0に設定されるマイクロタイルイネーブルビットによって有効にされ、マイクロタイルトランザクションが論理ロー又は0に設定されるアドレスラインA10によって有効にされ、列アドレスが論理ロー又0にストローブされるCAS#制御信号によってメモリ集積回路にストローブされるべきことを必要とする。即ち、全てのかかる入力信号は、マイクロタイリングメモリアクセスのために制御ロジック812Bに対してアクティブローである。入力MTE#、CAS#又はTE#のいずれか1つが論理ハイは1であるならば、マイクロタイルモード(MTM#)信号902Bは論理ハイ又は1である。マイクロタイルモード(MTM#)信号902Bが論理ハイ又は1である場合、制御ロジック812Bの第2のヘックス2入力マルチプレクサ901Bは、如何なる独立サブチャネルアドレス信号情報も選択することなく、基準として内部アドレス信号ラインA3′乃至A8′にアドレス信号A3乃至A8を送る。マイクロタイルアクセスを可能とするために1よりも多い信号を必要とすることは、マイクロタイルモードが誤りによってただ1つのビット信号においてエラーとならない保証を与える。
制御ロジック812BにおけるANDゲート906乃至911は、制御ロジック812AにおけるANDゲート906乃至911と同様に動作するが、異なるアドレス信号をゲート制御し、マイクロタイルモード(MTM#)信号902Bがアクティブロー信号である場合には、インバータ913乃至918を用いずにそのような動作をすることができる。従って、制御ロジック812BにおけるANDゲート906乃至911は、アクティブローであるマイクロタイルモード(MTM#)信号902Bに応答して、アドレス信号A0乃至A2及びA11乃至A12を、夫々、内部アドレスラインA0′乃至A2′及びA11′乃至A12において0へ至らせる。
ここで図9Cを参照すると、モードレジスタ810Cへ結合されたアドレス変換(swizzle)ロジック930の回路図が表されている。図9Cに表されるアドレス変換ロジック930は、2つのメモリサブチャネルを有するメモリチャネルのために使用される。変換制御ロジックは、図9A及び図9Bに表されるオーバーロード又はマイクロタイル制御ロジック812A及び812Bの前又は後に付加されても良い。
手短に言えば、アドレス変換ロジック930は、いくらか線形なアドレッシング性能が、スクリーンリフレッシュの間望まれうるように、マイクロタイルメモリコントローラにより可能であるよう、設けられる。アドレス変換ロジック930は、メモリコントローラから受け取った有意なアドレスビットを選択的に並べ替え又は置換する。これを行う1つの方法は、ビット位置を交換することである。これが達成され得る他の方法は、アドレスビットを選択的に反転させることである。
アドレス変換ロジック930は、示されるように共に結合された、デュアル2入力マルチプレクサ935と、NORゲート936と、排他的OR(XOR)ゲート937及び938とを有する。デュアル2入力マルチプレクサ935は、共に結合され、且つ、NORゲート936から出力される変換制御信号(SWZ)932へ結合されたそれらの選択制御入力S0を有する一対の2入力マルチプレクサを有する。アドレスビット又はピンA4及びA3は、夫々、マルチプレクサ935の1I0及び2I0入力へ結合され、選択制御入力S0が論理ロー又は0である場合に出力されるよう選択される。XORゲート937及び938の出力は、夫々、マルチプレクサ935の1I1及び2I1へ結合され、選択制御入力S0が論理ハイ又は1である場合に出力されるよう選択される。
サブチャネル選択ビット1(SCS1)及びサブチャネル選択ビット0(SCS0)は、夫々、排他的OR(XOR)ゲート937及び938の第1入力部に結合されている。アドレスビットA3及びA4は、夫々、XORゲート937及び938の第2入力部に結合されている。SCS1ビットが1に設定されるならば、XORゲート937は、マルチプレクサ935の1I1に結合されたその出力部においてアドレスビットA3を反転させる。SCS0が1に設定されるならば、XORゲート938は、マルチプレクサ935の2I1に結合されたその出力部でアドレスビットA4を反転させる。このようにして、SCS1及びSCS0ビットの設定は、アドレスビットラインA3及びA4におけるアドレス信号を有効に反転させることができる。
NORゲート936は、デュアル2入力マルチプレクサ935の選択制御入力S0に結合されたその出力部で変換制御信号(SWZ)932を発生させる。アクティブハイ信号である変換制御信号(SWZ)932は、変換されたアドレスビットがデュアル2入力マルチプレクサ935から出力されるよう選択されるか否かを選択する。変換制御信号(SWZ)932が論理ハイ又は1で、デュアル2入力マルチプレクサ935の選択制御入力S0に結合されるならば、XORゲート937及び938から出力される変換アドレスビットがマルチプレクサ935の出力において夫々のアドレスラインA4”及びA3”へと駆動される。これは、マイクロタイリングがアクティブロー・マイクロタイルイネーブルビットMTE#によって有効にされ、CAS#ストローブ信号が列アドレス情報を獲得するよう論理ローであり、TE#ビットがNORゲート936に入力されるマイクロタイルトランザクションを有効にするよう論理ローである場合に生ずる。しかし、変換制御信号(SWZ)932が論理ロー又は0で、デュアル2入力マルチプレクサ935の選択制御入力S0に結合されるならば、アドレスビットA4及びA3がマルチプレクサ935の出力において夫々のアドレスラインA4”及びA3”に送られる。これは、マイクロタイリングがアクティブロー・マイクロタイルイネーブルビットMTE#によって有効とされない場合、又はCAS#ストローブ信号が列アドレス情報を獲得するよう論理ローでない場合、又はTE#ビットがマイクロタイルトランザクションを有効にするよう論理ローでない場合に起こり得る。
モードレジスタ810Cは、モードレジスタ810Bと同様であるが、更なるビットの設定(SCS1)を記憶する。モードレジスタ810Cは、アクティブロー・マイクロタイルイネーブルビットMTE#、サブチャネル選択ビット0(SCS0)、及びサブチャネル選択ビット1(SCS1)の設定を記憶するよう、例えばフリップフロップ又はメモリセルのような3つのビット記憶回路を有する。モードレジスタは、3つのビットに対する設定を受け取る。ビット設定は、1又はそれ以上の制御信号によって生成されたロードストローブ信号を用いてモードレジスタにロードされる。かかる3つのビットは、メモリ集積回路が、例えば電源オン又はリセットのような初期化の間に受信するビット設定から設定/リセットされる。かかる3つのビットは、また、メモリ集積回路が進行中のメモリアクセスがない遊休状態である場合に、設定/リセットされ得る。ビット設定は、アドレス又はデータ信号ラインを介して受信され、メモリ集積回路に結合された1又はそれ以上の制御ラインによって生成されるロードストローブ信号に応答してモードレジスタにロードされ得る。
可能な限り小さくアドレス信号遅延を保つことが重要であるので、図9Cのアドレス変換ロジックは、内部アドレス信号ラインにおいて信号遅延を低減するよう、図9Bに表されるオーバーロードロジックと組み合わされ、簡単化される。
ここで図9Dを参照すると、メモリ集積回路においてモードレジスタ810Cへ結合された複合型変換及びマイクロタイル制御ロジック950が表されている。制御ロジック950は、図9Cのアドレス変換ロジック930を図9Bのオーバーロード又はマイクロタイル制御ロジック812Bに結合し、簡単化する。従って、複合型変換及びマイクロタイル制御ロジック950は、マイクロタイル制御ロジック812B及びアドレス変換ロジック930の別個の構成要素と同様に機能する。制御ロジック950における仕様の目標は、メモリ集積回路においてアドレスデコーダ及びアドレスバッファへのアドレス信号経路における時間遅延を低減することである。ヘックス2入力マルチプレクサ901A及び901Bは、単一のヘックス3入力マルチプレクサ960に簡単化されている。
モードレジスタ810Cは、上述されたように、アクティブロー・マイクロタイルイネーブルビット(MTE#)と、SCS0ビットと、SCS1ビットとを有している。モードレジスタビットは、メモリ集積回路に結合された制御信号から発生するロードストローブをビット設定からロードされ得る。
制御ロジック950は、示されるように共に結合された、ヘックス3入力マルチプレクサ960と、ANDゲート906乃至911と、ORゲート923と、ANDゲート969と、排他的NOR(XNOR)ゲート974及び975と、インバータ976とを有する。代替的に、排他的NOR(XOR)ゲート974及び975は、反転されたSCS0及びSCS1のビット設定を有する排他的OR(XOR)ゲートであっても良い。制御ロジック950は、アドレスピンA0乃至A8及びA10乃至A13へ結合され、アドレス信号を受信して、アドレス信号ラインA0′乃至A8′において伝送される内部アドレスを生成する。アドレス信号入力A10は、マイクロタイルモードにおけるトランザクションビットTE#としての、及びアドレス入力信号としての、2つの役目を有する。
制御ロジックにおいて、アドレスピンからのアドレス信号ラインは、ヘックス3入力マルチプレクサ960の入力へ結合される前に、最初に、アドレス変換ロジックへ結合され得る。例えば、アドレスA4はXNORゲート974の入力部に結合され、アドレスA1はXNORゲート975の入力部に結合され、アドレスA0はインバータ976に結合されている。SCS0ビットが論理ロー又は0であるならば、XNORゲート974及び975は、マルチプレクサ960の1I0及び1I1入力に夫々結合される前に、夫々のアドレス信号A4及びA1を反転させる。SCS0ビットが論理ハイ又は1に設定されるならば、XNORゲート974及び975は、反転させることなく夫々のアドレス信号A4及びA1を送り、次いで、それらのアドレス信号は、夫々、マルチプレクサ960の1I0及び1I1に結合される。
ヘックス3入力マルチプレクサ960は、共に結合された第1の選択制御入力S0と、共に結合された第2の選択制御入力S1とを有する6つの3入力1出力マルチプレクサを有する。第1の3入力1出力マルチプレクサは入力1I0、1I1及び1I2を受け取り、選択制御入力S0及びS1に応答して出力1Yを供給する。第2の3入力1出力マルチプレクサは入力2I0、2I1及び2I2を受け取り、選択制御入力S0及びS1に応答して出力2Yを供給する。第3の3入力1出力マルチプレクサは入力3I0、3I1及び3I2を受け取り、選択制御入力S0及びS1に応答して出力3Yを供給する。第4の3入力1出力マルチプレクサは入力4I0、4I1及び4I2を受け取り、選択制御入力S0及びS1に応答して出力4Yを供給する。第5の3入力1出力マルチプレクサは入力5I0、5I1及び5I2を受け取り、選択制御入力S0及びS1に応答して出力5Yを供給する。第6の3入力1出力マルチプレクサは入力6I0、6I1及び6I2を受け取り、選択制御入力S0及びS1に応答して出力6Yを供給する。
ヘックス3入力マルチプレクサ960は、3つの入力のうちのどれが夫々の出力へ結合されるべきかを選択するよう、第1の選択制御入力S0及び第2の選択制御入力S1を有する。2つの選択制御入力により4つの中から1つを選択することが可能である場合に、ヘックス3入力マルチプレクサ960のための真理値表についてここで記載する。選択ビットS0及びS1が両方とも0に設定されるならば、I0入力はマルチプレクサから出力されるよう選択される。S0ビットが1に設定され、S1ビットが0に設定されるならば、I1入力はマルチプレクサから出力されるよう選択される。S1ビットが1に設定されるならば、I2入力は、S0に対するビット設定に関わらずマルチプレクサから出力されるよう設定される。即ち、この最後の場合には、ヘックス3入力マルチプレクサ960へのS0入力は、S1ビットがオーバーライディングにより1に設定される場合を考慮しない。
上述されたように、ORゲート923は、アクティブロー・マイクロモード信号(MTM#)902Bを発生させる。アクティブロー・マイクロタイルモード信号(MTM#)902Bは、マルチプレクサ960の第2の選択制御入力S1に結合されている。マルチプレクサ960への夫々のI2入力は、アドレスビットA3乃至A8である。マルチプレクサ960への夫々のI1入力は、夫々、XNORゲート974からの出力、インバータ976からの出力、並びにアドレスビットA2、A11、A12及びA13である。マルチプレクサ960への夫々のI0入力は、夫々、XNORゲート974からの出力、並びにアドレスビットA3、A5、A6、A7及びA8である。
上述されたように、マイクロタイルモード信号(MTM#)902Bはアクティブロー信号である。しかし、マイクロタイルモード信号(MTM#)902Bが論理ハイ又は1であるならば、I2入力は、第1の選択制御入力S0に対するビット設定に関わらずマルチプレクサから出力されるよう選択される。即ち、I2入力(アドレスビットA3乃至A8)は、マイクロタイルモード信号(MTM#)902Bがハイ又は1であるならば、マルチプレクサ960を介して送られて、内部アドレス信号ラインA3′乃至A8′上に送り出されるよう選択される。
マイクロタイルモード信号(MTM#)902Bが、ORゲート923への入力状態によってアクティブロー信号であるよう発生するならば、マルチプレクサの第1の選択制御入力に結合されるSCS1ビットは、その夫々のY出力において発生するようマルチプレクサ960へのI0入力又はI1入力のいずれか一方を選択する。SCS1ビットが論理ロー又は0で、S0に結合される場合、I0入力(XNORゲート974からの出力並びに出力ビットA3、A5、A6、A7及びA8)が、マルチプレクサ960から夫々の内部アドレス信号ラインA3′乃至A8′上に出力されるよう選択される。このようにして、サブチャネル0に対する独立アドレス情報は、アドレスラインから選択され、変換され、獲得される。しかし、SCS1ビットが論理ハイ又は1に設定され、S0に結合される場合、I1入力(XNOR975からの出力、インバータ976からの出力、並びにアドレスビットA2、A11、A12及びA13)が、マルチプレクサ960から夫々の内部アドレス信号ラインA3′乃至A8′上に出力されるよう選択される。このようにして、サブチャネル1に対する独立アドレス情報は、アドレスラインから選択され、変換され、獲得される。
制御ロジック950におけるANDゲート906乃至911は、アクティブローであるマイクロタイルモード信号(MTM#)902Bに応答して、同じアドレス信号A0乃至A2及びA11乃至A12を、夫々、内部アドレスラインA0′乃至A2′及びA11′乃至A12′において0へと至らせるよう、制御ロジック812BにおけるANDゲート906乃至911と同様に機能する。更に、ANDゲート969は、アクティブローであるマイクロタイルモード信号(MTM#)902Bに応答して、アドレス信号A10を内部アドレスラインA10′において0へと至らせる。
ここで図10を参照すると、メモリ集積回路がマイクロタイルメモリ動作を提供するための方法1000が表されている。
ブロック1002で、メモリ集積回路は、メモリチャネルのそれらの夫々の独立メモリサブチャネルへ割り当てられる。即ち、メモリ集積回路内のモードレジスタにおける1又はそれ以上のサブチャネル選択ビットは、メモリICを所定のメモリサブチャネルへ割り当てるよう設定される。
ブロック1004で、メモリ集積回路へのマイクロタイルアクセスが有効にされる。即ち、メモリ集積回路内のモードレジスタにおけるマイクロタイルイネーブルMTEビットは、モードレジスタにおいてマイクロタイルメモリアクセスを可能にするよう設定される。MTEビットがアクティブハイであるならば、それはハイ論理レベルに設定される。MTEビットがアクティブローであるならば(“MTE#”)、MTE#ビットは論理ローレベルに設定される。
ブロック1006で、1のメモリサブチャネルでの1又はそれ以上のメモリ集積回路におけるメモリセルは、他のサブチャネルでの1又はそれ以上のメモリ集積回路におけるメモリセルとは独立してアドレス指定される。即ち、メモリ集積回路は、各メモリサブチャネルにおいて独立してメモリにアクセスするよう、それらの夫々の独立メモリサブチャネルにおいて独立してアドレス指定される。
上述されたように、サブチャネルへの独立アドレッシングは、様々な方法で提供され得る。サブチャネルへの独立アドレッシングが提供され得る1つの方法は、例えば、列アドレスが書き込まれているところのCAS周期のような、未使用メモリ周期の間に既存のアド列す信号ラインで各メモリサブチャネルにおいて独立アドレス情報を同時に獲得することによる。サブチャネルへの独立アドレッシングが提供され得る他の方法は、メモリチャネルの夫々の独立メモリサブチャネルにおいてメモリコントローラとメモリ集積回路との間に独立アドレス信号ラインの経路を定めることによる。
サブチャネルへの独立アドレッシングが提供され得る更なる他の方法は、独立したアドレスピンであるようエッジ接続の未使用ピンを再割り当てし、メモリモジュール上の夫々の独立メモリサブチャネルにおいて複数のメモリ集積回路とエッジコネクタの独立したアドレスピンとの間に独立アドレス信号ラインの経路を定めることによる。その場合に、独立アドレッシングは、更に、メモリモジュール上でエッジ接続の独立したアドレスピンへ結合するようエッジコネクタのピンとメモリコントローラとの間に独立アドレス信号ラインの経路を定めることによる。エッジ接続の未使用ピンは、エラー接続制御ピン、パリティピン、又はそれらの組合せであっても良い。
マイクロタイリングが使用可能である限り、マイクロタイルメモリアクセスは、メモリチャネルを介して各メモリサブチャネルへと生ずる。ブロック1008で、マイクロタイリングがメモリ集積回路において依然として有効であるか否かの判断がなされる。モードレジスタにおけるMTEビットの確認は、マイクロタイリングが依然として有効であるか否かを決定するよう行われる。マイクロタイリングが依然として有効であるならば、処理は、マイクロタイリングを用いるメモリ集積回路への次なるアクセスのためにブロック1006へ戻る。マイクロタイリングがもはや有効でないならば、処理は終了し、通常の線形アドレッシングが行われ得る。
これまで、UMAメモリアーキテクチャに基づく集中画像コントローラはバンド幅を制限される傾向があった。本発明の実施形態のモデル化は、UMAメモリアーキテクチャへのマイクロタイリングの適用が20〜40%だけテクスチャメモリアクセスバンド幅を低減し、メモリアクセスをより効率的にすることができることを提示する。色深度のメモリアクセスバンド幅は、メモリアクセスをより効率的にするようマイクロタイリングを適用することによって、ゲームの作業負荷に関して約10〜20%だけ低減され得る。
マイクロタイリングメモリアーキテクチャをサポートするよう、メモリサブシステムはサブチャネルアクセスを可能にするよう改善されてきた。本発明の実施形態は、マイクロタイリングが実施可能であり、更には既存のメモリモジュールのフォームファクタ及び標準と下位互換性を有しうることを示してきた。これまで、既存のメモリモジュール(例えば、DIMM。)コネクタを介して更なるアドレス信号ラインを引くために利用可能な方法は存在しなかった。本発明の実施形態は、各サブチャネルに対する独立アドレス情報を既存のアドレスラインにオーバーロードすることによって、かかる問題に対する解決法を提供している。各サブチャネルへ独立アドレス情報を供給する他の方法は、下位互換性が重要でない場合に提供され得る。
特定の例となる実施形態が添付の図面において記載及び図示されてきたが、当然、かかる実施形態は本発明を説明するために提示されているのであって、本発明はこれに限定されない。また、本発明の実施形態は、様々な他の変形例が当業者になされえるので、記載及び図示されている特定の構成及び配置に限定されない。