JP4838843B2 - マイクロタイル方式がイネーブルされたメモリの自動検出 - Google Patents

マイクロタイル方式がイネーブルされたメモリの自動検出 Download PDF

Info

Publication number
JP4838843B2
JP4838843B2 JP2008519583A JP2008519583A JP4838843B2 JP 4838843 B2 JP4838843 B2 JP 4838843B2 JP 2008519583 A JP2008519583 A JP 2008519583A JP 2008519583 A JP2008519583 A JP 2008519583A JP 4838843 B2 JP4838843 B2 JP 4838843B2
Authority
JP
Japan
Prior art keywords
memory
microtile
cache line
address
channel
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008519583A
Other languages
English (en)
Other versions
JP2008545201A (ja
Inventor
ガベル、ダグラス
アキヤマ、ジェイムズ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of JP2008545201A publication Critical patent/JP2008545201A/ja
Application granted granted Critical
Publication of JP4838843B2 publication Critical patent/JP4838843B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明の実施形態は一般的にメモリに関する。本発明の実施形態は具体的には、メモリモジュールの検出およびメモリのサブチャネルに対するマイクロタイル方式のメモリアクセスをサポートするメモリ用集積回路に関する。
メモリアクセスが均一化または統合されているメモリアーキテクチャは、統合メモリアーキテクチャ(UMA)と呼ばれることもあるが、プロセッサとグラフィックコントローラがコスト削減を目的としてシステムメモリを共有している。UMAメモリアーキテクチャは通常、プロセッサからのシステムメモリに対するメモリ要求(読み出し/書き込みアクセス)を取り扱うべく最適化されている場合がある。つまり、UMAメモリアーキテクチャは通常、グラフィクスコントローラからのメモリ要求を後回しにする。近年では、3次元(3D)および高精度化をサポートするべく、グラフィクスに関する性能の重要性が高まっている。
普通のUMAメモリアーキテクチャでは、プロセッサからのメモリ要求とグラフィクスコントローラからのメモリ要求の両方をサポートするべく、キャッシュメモリが64バイトに固定されたキャッシュラインを利用している。UMAメモリアーキテクチャ内に設けられたメモリコントローラは通常、1つまたは2つのメモリチャネルを有する。各メモリチャネルは、読み出し/書き込みアクセスを実施する場合には、どのメモリモジュールについても共通して、アドレスバス内の全てのアドレスラインを利用する。通常のメモリチャネルのデータバスは普通、64ビットのビット幅を持っているので、メモリのあるアドレスの8バイトの連続データに対して同時にアクセスできる。データバスビットのメモリモジュールに対するルーティングは、メモリの種類およびサイズに応じて変更してもよい。
プロセッサは通常メモリを介してアクセスした64ビットの連続データを全て利用するが、グラフィクスコントローラは通常そうでない場合もある。UMAメモリアーキテクチャ内でグラフィクスコントローラがメモリ要求を出す場合、連続データの大半は破棄される場合もある。このため、UMAメモリアーキテクチャ内でグラふぃ来るコントローラがメモリ要求を発行した場合、メモリチャネルのバンド幅の利用が非効率となる場合がある。
本発明の実施形態の特徴は、以下に記載する詳細な説明から明らかとなる。
本発明の実施形態が利用され得る通常のコンピュータシステムを示すブロック図である。
本発明の実施形態が利用され得るクライアント−サーバシステムを示すブロック図である。
本発明の実施形態が利用され得る第1処理部を示すブロック図である。
それぞれ4つのメモリサブチャネルを持つ、一対のメモリチャネルに接続されたメモリ制御ブロックを示す、概略ブロック図である。
キャッシュメモリおよびそれぞれS本のサブチャネルを持つ一対のメモリチャネルに接続されたメモリ制御ブロックが備えるメモリコントローラを示す、詳細ブロック図である。
サブチャネルを用いずに線形メモリアクセスを利用した場合のメモリチャネルを介したメモリアクセスに対応した、ビデオディスプレイ上でのピクセルマッピングを示す図である。
マイクロタイル方式のメモリアクセスがサポートされ2つのサブチャネルを用いた場合のメモリチャネルを介したメモリアクセスに対応した、ビデオディスプレイ上でのピクセルマッピングを示す図である。
マイクロタイル方式のメモリアクセスがサポートされ4つのサブチャネルを用いた場合のメモリチャネルを介したメモリアクセスに対応した、ビデオディスプレイ上でのピクセルマッピングを示す図である。
64ビット幅のメモリチャネルを介した線形の64バイトのメモリアクセスを示す図である。
一対の32ビット幅のメモリサブチャネルを介した、一対の32バイトのメモリアクセスである独立したサブチャネルメモリアクセスを示す図である。
4つの16ビット幅のメモリサブチャネルを介した、4つの16バイトのメモリアクセスである独立したサブチャネルメモリアクセスを示す図である。
メモリチャネル用のアドレス信号ラインのビットマップを示す。
ホストプリント配線基板上に実装されたコネクタに接続される、マルチチップメモリモジュールを示すブロック図である。
メモリサブチャネルを介したマイクロタイル方式のメモリアクセスをサポートする、メモリ用集積回路を示すブロック図である。
16ビット幅のメモリサブチャネルおよび16バイトのメモリアクセスに対応する、モードレジスタに接続されたアドレスオーバーロードロジックを示す概略図である。
メモリ用集積回路においてマイクロタイル方式メモリアクセスがサポートされているかどうか検出するための第1の方法を示すフローチャートである。
メモリ用集積回路においてマイクロタイル方式メモリアクセスがサポートされているかどうか検出するための第2の方法を示すフローチャートである。
メモリ用集積回路においてマイクロタイル方式メモリアクセスがサポートされているかどうか検出するための第3の方法を示すフローチャートである。
図5Aに対応する、キャッシュラインの一意的なビット列の例を示す図である。
図5Bに対応する、キャッシュラインの一意的なビット列の例を示す図である。
図5Cに対応する、キャッシュラインの一意的なビット列の例を示す図である。
メモリ用集積回路においてマイクロタイル方式のメモリアクセスがサポートされているかどうか検出する場合に、識別可能なパターンを実現するためにキャッシュラインで用いることができる、ほかのビットパターンを示す。 メモリ用集積回路においてマイクロタイル方式のメモリアクセスがサポートされているかどうか検出する場合に、識別可能なパターンを実現するためにキャッシュラインで用いることができる、ほかのビットパターンを示す。 メモリ用集積回路においてマイクロタイル方式のメモリアクセスがサポートされているかどうか検出する場合に、識別可能なパターンを実現するためにキャッシュラインで用いることができる、ほかのビットパターンを示す。 メモリ用集積回路においてマイクロタイル方式のメモリアクセスがサポートされているかどうか検出する場合に、識別可能なパターンを実現するためにキャッシュラインで用いることができる、ほかのビットパターンを示す。 メモリ用集積回路においてマイクロタイル方式のメモリアクセスがサポートされているかどうか検出する場合に、識別可能なパターンを実現するためにキャッシュラインで用いることができる、ほかのビットパターンを示す。
上記の図面内において同様の参照番号および表示は同様の機能を持つ同様の素子を示すものとする。
以下に本発明の実施形態を詳細に説明するが、本発明の内容を十分に理解していただくべく具体的な内容を数多く記載する。しかし、本発明の実施形態は以下に記載した具体的な内容以外に基づいても実施できることは当業者には明らかである。また、公知の方法、処理、構成要素および回路については、本発明の実施形態の側面を必要以上にあいまいにすることを避けるべく、詳細な説明を行わない。
統合グラフィクスコンピュータシステムのメモリ効率は通常、キャッシュラインのサイズによって限定されてしまう。グラフィクスに関して理想的なメモリアクセスサイズは多くの場合、4バイトから16バイトのデータである。これは、グラフィクスプロセッサの動作が、一度に1または数個のピクセルまたはテクセルを取り扱うからである。しかしUMAメモリアーキテクチャは、プロセッサのメモリ効率を最適化するべく、64バイトのキャッシュラインに対して最適化されている。64バイトのキャッシュラインを用いる場合、グラフィクスコントローラからメモリ要求を出すと、平均して、メモリから非常に大量のデータが取得されるもののグラフィクスコントローラは結局取得されたデータを使用しないという事態が発生してしまう。使用されなかったデータのことを、「過取得」と呼ぶとしてもよい。
マイクロタイル方式を用いることによって、集積化されたグラフィクスコントローラを持つUMAメモリアーキテクチャのキャッシュライン要件を維持しつつ、グラフィクスコントローラからのメモリ要求に対する過取得を減少させることができる。一般的に言って、マイクロタイル方式は、メモリアーキテクチャもメモリコントローラアーキテクチャのどちらについても新式のものに基づいて実施される。マイクロタイルメモリアーキテクチャをサポートする新式のメモリサブシステムは、メモリチャネル内において独立したサブチャネルメモリアクセスを持つ。このような、メモリに対する独立したサブチャネルメモリアクセスは、マイクロタイルメモリアクセスと呼ばれ、一般的にマイクロタイル方式と呼ぶとしてもよい。
上述した新式のメモリコントローラおよびメモリアーキテクチャについても説明するが、本願が主眼においているのは、システムに接続されたメモリモジュールおよびメモリ用集積回路がマイクロタイル方式をサポートしているかどうか検出することである。
上述した新式のメモリアーキテクチャにより、マイクロタイルメモリアクセスをサポートできる新式のメモリモジュールおよびメモリ用集積回路が提供される。ここで、マイクロタイルメモリアクセスは、メモリチャネルのサブチャネル間に関する独立したアドレス指定能力を含む。新式のメモリモジュールおよびメモリ用集積回路は、後方互換性を有しており同一のフォームファクタを持つとしてもよい。このため、マイクロタイル方式に基づいていない旧式のシステムに接続しても利用できるとしてもよい。この場合、マイクロタイル方式がイネーブルされたメモリモジュールとそうでないメモリモジュールを識別するのが難しいことがある。マイクロタイル方式をサポートするホストプリント配線基板およびホストシステムにおいて、マイクロタイル方式がイネーブルされたメモリモジュールとイネーブルされていないメモリモジュールを共に設けることが可能である。マイクロタイル方式をサポートするシステムに対してメモリモジュールを接続し、当該メモリモジュールがイネーブルされていない場合、つまり、マイクロタイル方式をサポートしない場合、イネーブルされていないメモリモジュールが接続されたメモリチャネルはマイクロタイル方式を利用できない。これは、マイクロタイルメモリアーキテクチャが、マイクロタイル方式がイネーブルされていないメモリ(マイクロタイル方式をサポートしていないメモリモジュールおよびメモリ用集積回路)に対して後方互換性を有するからである。このため、システム内でマイクロタイル方式をイネーブルとするために、メモリチャネルに接続されたメモリモジュールのうちマイクロタイル方式がイネーブルされたメモリモジュールと、もし存在するのであれば、マイクロタイル方式をサポートしないメモリモジュールを自動的に検出する。具体的には、メモリチャネルに対してデータの読み出しおよび書き込みを行う前に、メモリチャネル内のすべてのメモリモジュール上のすべてのメモリ用集積回路がマイクロタイル方式をサポートするかどうか確認する。このため、メモリモジュールおよびメモリ用集積回路についてマイクロタイル方式がイネーブルされているかどうか自動的に確認するプロセスは通常、システム初期化の早い段階で実施される。システム初期化中に行われる、メモリモジュールおよびメモリ用集積回路がマイクロタイル方式をサポートするかどうかの自動確認プロセスは、直接ハードウェアで実施されるとしてもよいし、BIOS(Basic Input Operating System)ソフトウェアといったソフトウェアとハードウェアの組み合わせによって実施されるとしてもよい。
メモリがマイクロタイル方式をサポートしているかどうか判定する方法の1つに、マイクロタイル方式をイネーブルした場合とディセーブルした場合の書き込みデータおよび読み出しデータを比較する方法が挙げられる。本発明の一実施形態によると、まず、マイクロタイル方式をディセーブルとした状態において、メモリ位置Xに一意的なパターンまたは値を書き込む。続いて、各メモリモジュールおよび各メモリ用集積回路のイネーブルを試みる。続いて、メモリの同一メモリ位置からの読み出しを試みる。この場合、実際には、複数の異なるメモリ位置から複数のメモリサブチャネルを介して読み出すとしてもよい。続いて、マイクロタイル方式をイネーブルさせていない状態での書き込みデータと、マイクロタイル方式がイネーブルされている可能性がある状態での得られた読み出しデータとを比較する。メモリサブシステムがマイクロタイル方式をサポートしていれば、同一の先頭アドレスを用いてアクセスすることによって得られた読み出しデータとの間には差異が認められるはずである。マイクロタイル方式がサポートされていなければ、書き込みデータと、同一の先頭アドレスを用いてアクセスした場合に得られた読み出しデータは同一のはずである。
簡潔に述べると、マイクロタイル方式をイネーブルとすることによって、メモリ要求の対象をメモリ内のより小さい不連続部分またはより小さい領域とすることができる。マイクロタイル方式メモリアーキテクチャによれば、要求する側の都合に応じて、メモリに対する読み出しおよび書き込みでやり取りされるデータのサイズおよび構造を変更することができる。より小さい領域のデータを正しく特定するべく、マイクロタイル方式メモリコントローラはシステムメモリに対して追加アドレス情報を供給する。例えば、本発明の一実施形態によると、64ビット幅のメモリチャネル(物理ビット幅)が4つの16ビット幅のサブチャネルに分割されるとしてもよい。この実施形態によると、64バイトのメモリアクセス(メモリチャネルの論理バイト幅)は、4つの不連続の16バイトの領域に対応する(メモリトランザクションのバースト長は8と仮定する)。各サブチャネルは一意的なアドレス情報を用いる。図3Aは、それぞれが一意的なアドレス情報を持つ、4つの16ビットのサブチャネルの実施例を示す。他の実施例に係るマイクロタイル方式のメモリアーキテクチャでは、各サブチャネルのサイズおよび各サブチャネルに設けられた独立アドレスラインの数を変更するとしてもよい。
メモリアレイの各サブチャネルに対して独立アドレス情報をさらに供給するための方法が幾つか挙げられる。例えば、メモリコントローラからメモリ用集積回路までの専用ラインを新たにルーティングすることによってアドレスラインを追加する方法、またはメモリモジュール内にルーティングされたエラー補正コード(Error Correction Code)信号ラインのうち使用されていないものを改めて追加アドレスラインとして割り当てる方法などがある。また、独立アドレス情報は、例えば列アドレスがメモリ用集積回路に書き込まれるメモリサイクル中などの、既存のアドレス信号ラインが通常利用されていない期間中に、当該既存のアドレス信号ラインをオーバーロードすることによって、追加で供給されるとしてもよい。こうすることによって、メモリモジュールにおいてマイクロタイル方式をサポートさせつつ、既存のメモリモジュールに対する後方互換性も維持することができる。上述した方法は、本発明の実施形態において、追加のアドレスラインを含む所望の数のアドレスライン上でアドレス情報を追加で供給するべく、個別に用いるとしてもよいし、組み合わせて利用するとしてもよい。
標準規格のメモリチャネルにおいて(例えば、ダブル・データ・レート(DDR)DRAMに基づくメモリチャネル)、メモリチャネルの論理幅をMバイトとする。ここで、1バイトのデータは8ビットである。メモリチャネルの論理幅は、メモリモジュール上で行われるデータ転送のバースト長と何らかの関係を持っている。つまり、Mバイトのデータに対しては、ベースアドレスから連続してアドレスを増加させてバーストを形成するデータ転送を行うことによって、連続してアクセスが可能である。通常は、アクセスする(読み出しまたは書き込み)対象の数バイトから成るブロックのベースアドレスは、チャネルの論理幅の整数倍に等しい。メモリチャネルの物理幅は、メモリコントローラとメモリモジュールの間のデータバスのビット幅である。最小バースト長は通常、8メモリサイクルで、開始バイトオーダーはアドレスラインの最下位ビットによって設定されるとしてもよい。物理幅が通常の64ビットの場合、8回のメモリサイクルによってメモリチャネル内の64バイトのデータにアクセスする。このため、メモリチャネルの論理幅は通常、64バイトのデータとなる。
上述したように、メモリチャネルの論理幅はベースアドレスに従って連続して転送可能なバイト数であり、メモリチャネルの物理幅はメモリコントローラとメモリモジュールの間に設けられたデータバス(WDB)のビット幅である。ここで、マイクロタイル方式メモリシステムは、メモリチャネルの論理幅と物理幅を均等に分割し、より小さい論理バイト幅とより小さい物理ビット幅を持つ複数のサブチャネルとする。
メモリをマイクロタイル方式とすることによって、メモリチャネルの物理幅(WDBビット)およびメモリチャネルの論理幅(Mバイト)を分割し、S個のサブチャネル(WSC)を構成する。各サブチャネルは、物理幅がWSC=WDB/Sビットで論理幅がN=M/Sバイトである。このため、Nバイトのデータが、各サブチャネルにおいて、バースト長に等しいデータ転送回数ごとに、WSCビットのデータラインを介して転送されるとしてもよい。1本のメモリチャネルがメモリ内でアクセスするメモリ位置の総数は、TMLであるとしてもよい。各サブチャネルがアクセスするメモリ位置のサブセットの総数(TSML)は、TML/Sに等しい。
マイクロタイル方式を採用したメモリでは、各サブチャネルが独立して、メモリチャネルを介して、より細かい単位でデータにアクセスすることが可能となる。各サブチャネルを完全に独立したものとして構成するには、メモリコントローラから各サブチャネルにルーティングされるアドレス信号ラインを独立させるとしてもよい。独立したアドレス信号ラインが多くなり過ぎないようにアドレス信号ラインのうち一部はサブチャネル同士で共有して、メモリ位置は複数の共有アドレスから独立して選択するとしてもよい。このため、各サブチャネルに提示されるアドレスの独立アドレスビット(I)の値は、他のサブチャネルに提示されるアドレスの対応するビットの値とは異なるとしてもよい。このため、各サブチャネルで転送されるデータは一続きのブロックデータである一方、各サブチャネル上で転送される複数のデータブロックは必ずしも連続したアドレス範囲のものとは限らない。これは、独立アドレスビットIが、以下で詳述するように、異なるビット位置の場合があるためである。
本発明の実施形態は様々な異なるシステムにおいて利用されるとしてもよい。そのようなシステムの例を図1Aおよび図1Bに示す。図1Aは、本発明の実施形態を利用し得る典型的なコンピュータシステム100を示すブロック図である。コンピュータシステム100Aは、処理部101、キーボード、モデム、プリンタ、外部記憶装置などの入出力デバイス(I/O)102、およびCRTまたはグラフィクスディスプレイなどのモニタ装置(M)103を備える。モニタ装置(M)103は、演算情報を、人間が理解し得る形式で、例えば、画像形式または音声形式で、提供する。システム100はコンピュータシステム以外の多くの異なる電子システムであるとしてもよい。
図1Bは、本発明の実施形態を利用し得る、クライアント−サーバシステム100Bを示す。クライアント−サーバシステム100Bは、ネットワーク112に接続された1以上のクライアント110A〜110Mおよびネットワーク112に接続されたサーバ114を備える。クライアント110A〜110Mはネットワーク112を介してサーバ114と通信を行い、情報を送信または受信するとともに、サーバ上にある必要なデータベースおよび/またはアプリケーションソフトウェアへとアクセスする。クライアント110A〜110Mおよびサーバ114は、典型的なコンピュータシステム100Aの例であるとしてもよい。サーバ114はメモリおよび処理部を有し、さらに1以上のディスクドライブ記憶装置を有するとしてもよい。サーバ114は、例えばネットワーク接続ストレージ(NAS)デバイスとしてストレージエリアネットワーク(SAN)内で利用されるとしてもよく、ディスクアレイを有するとしてもよい。サーバ114へのデータアクセスは、複数のクライアント110A〜110C間において、ネットワーク112を利用して共有されるとしてもよい。
図2は、本発明の実施形態を利用し得る処理部101を詳細に示すブロック図である。処理部101は、図2に示すように互いに接続された、プロセッサ回路201、メモリ制御ブロック202、外部キャッシュメモリ203E、1以上のメモリチャネル204A〜204N、グラフィクスコントローラ206、および入出力コントローラ207を備えるとしてもよい。処理部101の構成要素のうち、処理回路201が有する2以上の素子、メモリ制御ブロック202、キャッシュメモリ203E、グラフィクスコントローラ206および入出力コントローラ207は、単一の集積回路に集積化されるとしてもよい。例えば、メモリ制御ブロック202、グラフィクスコントローラ206および入出力コントローラ207が、集積回路210として集積化されるとしてもよい。別の例を挙げると、処理回路201、メモリ制御ブロック202、キャッシュメモリ203E、グラフィクスコントローラ206および入出力コントローラ207が集積回路210'として集積化されるとしてもよい。またさらに別の例として、メモリコントローラを持つメモリ制御ブロック207をプロセッサ回路201に集積化するとしてもよい。プロセッサ回路201とメモリ制御ブロック202の間に接続されている外部キャッシュメモリ203Eは、集積回路210'の一部のように図示されているが、別の回路として構成されるとしてもよい。大きなメモリ容量は別に製造する方が効率が高いので、多くの場合、キャッシュメモリ203Eは集積回路210'に対して外部とする。
プロセッサ回路201は、1以上の実行部または2以上のプロセッサ(コアプロセッサともいう、例えばプロセッサA〜N 210A〜201N)を有する、マルチプロセッサ集積回路として構成されていてもよい。プロセッサ回路201が有する各プロセッサは、オンチップのまたは内蔵されたキャッシュメモリ203Iにおいて1以上のレベルを持つとしてもよいし、同じ内部キャッシュメモリを共有するとしてもよい。キャッシュメモリの他のレベルはプロセッサ201に対して外部としてもよく、外部キャッシュメモリ203Eのように、メモリコントローラに接続されるとしてもよい。プロセッサ回路201はさらに、マイクロコンピュータと同様に、オンチップ型または内蔵型のRAM(Random Access Memory)およびオンチップ型または内蔵型のROM(Read Only Memory)を有するとしてもよい。プロセッサ201の1以上の実行部とキャッシュメモリの1以上のレベルが、1以上のメモリチャネル204A〜204Nにおいて、メモリ制御ブロック202を介して、データの読み書き(命令を含む)を行うとしてもよい。
メモリ制御ブロック202は、グラフィクスコントローラ206に接続されるとともに、1以上のメモリチャネル204A〜204Nとプロセッサ201の間に接続されている。メモリ制御ブロック202は任意で、キャッシュメモリ203Mをその内部に有するとしてもよいし、キャッシュメモリ203Mはキャッシュメモリの別のレベルとして外部に構成されるとしてもよい。メモリ制御ブロック202は、1以上のメモリチャネル204A〜204Nに対応して、1以上のマイクロタイル方式メモリコントローラMCA〜MCN(208A〜208N)を有する。
1以上のメモリチャネル204A〜204Nはそれぞれ、1以上のメモリモジュールMM1〜MMnを有する。各メモリモジュールは1以上のメモリ用集積回路またはメモリ用集積デバイスを持つ。当該1以上のメモリ用集積回路またはメモリ用集積デバイスは、様々な種類のメモリ用集積回路から選択してよく、例えば、DRAM(Dynamic Random Access Memory)回路、SRAM(Static Random Access Memory)回路、またはNVRAM(不揮発性RAM)回路などがある。しかし、本発明の好ましい実施形態においては、当該1以上のメモリ用集積回路はDRAM回路である。
1以上のメモリチャネル204A〜204Nはそれぞれ、2つ以上のメモリサブチャネルを持つ。図2においては、メモリチャネル204A〜204Nはそれぞれ、4つのサブメモリチャネル205A〜205Dを持つ。各メモリチャネル内に4つのサブメモリチャネルを図示しているが、メモリチャネルの分割はこれに限定されず、サブチャネルの数は偶数であってもよいし奇数であってもよい。例えばサブチャネルの数は2つであってもよい。メモリチャネルの分割方法は、メモリチャネルの論理幅またはバースト長が大きくなるにつれて、変更するとしてもよい。
メモリチャネル204A〜204Nのそれぞれが有する1以上のメモリモジュールMM1〜MMNは、マイクロタイル方式をサポートするべく構成されるとしてもよい。メモリ制御ブロックはアルゴリズムを用いて、1以上のメモリモジュールがマイクロタイル方式をサポートしているかどうか判断するとしても良い。1以上のメモリモジュールに含まれる1以上のメモリ回路またはメモリデバイスは、マイクロタイル方式をサポートするべく構成されるとしてもよい。当該1以上のメモリ回路は、マイクロタイル方式をイネーブルすることができ(MTE)、あるメモリサブチャネルをサポートするように割り当てることができる。当該1以上のメモリ回路は、マイクロタイル方式をイネーブルするとともにあるメモリサブチャネルを割り当てるために、ピンを追加で持つとしてもよいし、またはビットを追加でモードレジスタに備えるとしてもよい。メモリ回路が追加でピンを持つ場合、マイクロタイル方式をサポートする構成とするべく、外部のジャンパピン、ジャンパ線、またはマイクロスイッチ(例えば、DIPスイッチ)を利用するとしてもよい。メモリ回路にモードレジスタを備える場合、各サブチャネルのデータバスの独立部分を用いて、適切なロードストローブに応じてモードレジスタをロードするとしてもよい。
入出力コントローラ207は、1以上のメモリチャネル204A〜204Nにデータを書き込むべく、メモリ制御ブロック202に接続されるとしてもよい。このため、プロセッサ201は入出力コントローラ207にアクセスできるようになる。処理部101はさらに、無線ネットワークインターフェース回路(WNIC)213、有線ネットワークインターフェース回路またはカード(NIC)214、USB(Universal Serial Bus)および/またはファイヤワイヤ(FW)シリアル・インターフェース215、および/または入出力コントローラ207に接続されたディスクドライブ216を有するとしてもよい。無線ネットワークインターフェース回路(WNIC)213は、無線ローカル・エリア・ネットワーク、wifi(IEEE 802.11)、Bluetooth(登録商標)またはそれ以外の無線接続方式に基づいて、無線ベースユニットに対する無線接続を行う。無線ネットワーク相互接続部(WNIC)213は、電波を介して無線ベースユニットまたはそれ以外の無線可動ユニットへの接続を確立するためのアンテナを持つ。NIC214はイーサネット(登録商標)有線ローカル・エリア・ネットワーク接続を確立する。USB/FWシリアルインターフェース215は、他の入出力周辺機器を含むべくシステムを拡張することを可能とする。ディスクドライブ216は公知のもので、プロセッサ201に対して書き換え可能なストレージを提供する。ディスクストレージデバイス216は、フロッピーディスク(登録商標)、ジップディスク、DVDディスク、ハードディスク、書き換え可能な光ディスク、フラッシュメモリ、またはそれ以外の不揮発性ストレージデバイスのうち1以上であるとしてもよい。
グラフィクスコントローラ206は、1以上のメモリチャネル204A〜204Nに対してデータの読み書きを行うべく、メモリ制御ブロック202に接続されている。プロセッサ201は1以上のメモリチャネル204A〜204Nに対してデータを書き込むとしてもよい。このように書き込まれたデータは、グラフィクスコントローラ206によるアクセスが可能となり、グラフィクスディスプレイまたはビデオデバイス上で表示が可能となる。グラフィクスディスプレイ217はグラフィクスコントローラ206に接続されるとしてもよい。ビデオインターフェース218はグラフィクスコントローラ206に接続されるとしてもよい。ビデオインターフェース218はアナログビデオインターフェースおよび/またはデジタルビデオインターフェースであってよい。
処理部101において、プロセッサ201、入出力コントローラ207およびグラフィクスコントローラ206は、メモリ制御ブロック202内に設けられたメモリコントローラを介して1以上のメモリチャネル204A〜204Nのデータにアクセスするとしてもよい。メモリ制御ブロック内のメモリコントローラは、システムメモリとプロセッサ201、入出力コントローラ207、およびグラフィクスコントローラ206との間でのデータの読み書きを行うべく、メモリチャネル204A〜205Nに接続される。マイクロタイル方式のメモリコントローラ208A〜208Nをメモリチャネル204A〜204Nへと接続するに当たって、メモリインターフェースの一部として、アドレスバスのアドレス信号ライン220、データバスのデータ信号ライン222、および制御クロック信号ライン224を利用するとしてもよい。入出力コントローラ207に接続された入力デバイス(例えばディスクストレージデバイス216)もまた、システムメモリに対して情報の読み書きを行うとしてもよい。
一般的に、データバスのデータ信号ライン222はS本のサブチャネルに分配されている。図2では、Sは4に設定され、データバスのデータ信号ライン222は、サブチャネルデータライン222A、222B、222Cおよび222Dとして図示されているように、4本のサブチャネルに対して分配され、サブチャネル205A、205B、205Cおよび205Dに接続される。一例を挙げると、64ビットのバスは4つの16ビットデータラインに分割される。本発明の一実施形態によると、アドレス信号ライン220の一部は複数のサブチャネルによって共有され、残りのアドレス信号ラインは独立して1本のサブチャネルと対応付けられる。本発明の別の実施形態によると、アドレス信号ライン220は完全に独立して各サブチャネルと対応付けられるとしてもよい。アドレス信号ラインについては、以下で詳述する。
図3Aは、2本のメモリチャネルを示すブロック図である。図3Aは、統合グラフィクスメモリコントローラ300(ホスト300とも呼ぶ)、および当該統合グラフィクスメモリコントローラ300に接続されたメモリチャネル0(304A)およびメモリチャネル1(304B)を示す。メモリチャネル0(304A)およびメモリチャネル1(304B)はそれぞれ、4本のサブチャネル305A、305B、305Cおよび305Dに分割される。各メモリチャネルは、サブチャネルをサポートするべく、独立してマイクロタイル方式のメモリコントローラを有する。各メモリチャネルは独立してデータバスを有する。例えば、各メモリチャネルのデータバスのビット幅が64ビットである場合、サブチャネルはそれぞれ、データバスの独立した16ビットの1セットに接続される。図3Aに示すように、サブチャネル305AはデータビットD15〜D0に接続され、サブチャネル305BはデータビットD31〜D16に接続され、サブチャネル305CはデータビットD47〜D32に接続され、サブチャネル305DはデータビットD63〜D48に接続される。
上述したように、本発明の一実施形態によると、アドレス信号ラインの一部はサブチャネル間で共有される一方、残りのアドレス信号ラインは独立して1本のサブチャネルに対応付けられる。一例を挙げると、アドレス信号ライン310(Axx〜A10、BA2〜BA2)は全サブチャネル305A〜305Dによって共有されている。つまり、アドレス信号ライン310はそれぞれファンアウトされ各サブチャネルに接続されるとしてもよい。これとは逆に、アドレス信号ライン311A(A9〜A6の第1セット)は独立してサブチャネル305Aに接続されている。アドレス信号ライン311B(A9〜A6の第2セット)は独立してサブチャネル305Bに接続されている。アドレス信号ライン311C(A9〜A6の第3セット)は独立してサブチャネル305Cに接続されている。アドレス信号ライン311D(A9〜A6の第4セット)は独立してサブチャネル305Dに接続されている。
ここで、割り当てられたメモリページサイズの細かさによって得られる最大のアドレス指定能力を実現するために十分な数の、独立したアドレスラインを設けるのが理想である。ページサイズは通常、グラフィクメモリスペースを管理するソフトウェアによって定められる。例えば、チャネルが2つのキャッシュラインを持つインターリーブドメモリサブシステムにおいて4キロバイト(KB)のページサイズを割り当てる場合を考える。各メモリチャネルに2KBのページをマッピングする。この場合、メモリの各物理ページにおける32個の64Bキャッシュラインに対してアドレス指定を行うべく5本のアドレスラインを利用するとしてもよい。このため、16ビットサブチャネルを4本設けるためには、15本の独立したアドレスラインを追加するのが理想的だと考えられる。これらの追加されたアドレスラインは、アドレス信号ライン311B〜311Dとして図示されている。アドレス信号ライン311B〜311Dはそれぞれ、アドレスラインA10〜A6の第2セット、第3セットおよび第4セットとして示されている一方、既存の第1セットであるアドレス信号ライン311Aは、アドレスラインA10〜A6の第1セットとして示されている。追加で利用できる独立アドレスラインの数がこれより少ない場合、各サブチャネルがアドレス指定可能な独立したアドレススペースは低減される。各サブチャネルが利用可能な独立アドレスラインの数がこれより大きければ、各サブチャネルがアドレス指定可能な独立したアドレススペースは拡大される。2本の32ビットサブチャネルを実現するためには、5本の独立したアドレスラインを追加するのが望ましい。
追加されるアドレス信号ラインは、図3Aに図示するように独立アドレス信号ラインを設けるように、メモリコントローラとサブチャネルとの間においてルーティングされるとしてもよい。アドレス信号は既存のアドレスラインにオーバーロードされるとしてもよい。追加するアドレス信号ラインをルーティングするとともにアドレス信号をオーバーロードすることによって、マイクロタイル方式をサポートするとしてもよい。もしくは、各サブチャネルに対して、図3Aに図示した共有アドレスライン310を設けずに、独立アドレスラインのみを設けるとしてもよい。しかし、共有アドレス信号ライン310を利用することによって、独立アドレス信号ラインのルーティングを減少させ、プリント配線基板領域を節約することが可能である。
図6は、共有アドレスビットおよび独立アドレスビットに基づいて、メモリチャネル用のアドレス信号ラインのビットマップを示す。つまり図6は、物理アドレスに含まれるアドレスビットの解釈を示すアドレスビットマップである。マイクロタイル方式をサポートするべく、各サブチャネルに対してI個の独立アドレスビット(IAB)が設けられている。全てのサブチャネルに対して、ゼロ以上のSA個の共有アドレスビット(SAB)が設けられるとしてもよい。メモリ要求をサブチャネルに割り当てる際に、Q個のサブチャネル選択ビット(SSB)が利用される。DRAMメモリ内の各キャッシュラインにおいてバイトのアドレスを指定するべく、P個のサブチャネルデータアドレスビット(SDAB)が利用される。P個のSDABビットは通常、アドレス信号ラインマップのビットの中の最下位ビットである。Q個のSSBビットおよびP個のSDABビットは実際には、メモリコントローラとサブチャネルメモリとの間でルーティングされておらず、アクセスされるデータブロックのベースアドレスはバーストサイズの整数倍であると理解されている。つまり、P個のSDABビットは、ダブル・データ・レート(DDR)メモリの仕様に従って、DRAMデバイスといったメモリ用集積回路によって内部的に生成されるとしてもよい。図6は、共有されるべく選択されたアドレスビットおよび独立アドレスビットを示しているが、これ以外に他のアドレスビットを割り当てるとしてもよい。つまり、P個のサブチャネルデータアドレス(SDAB)ビットより上位のアドレスビットのSA個の共有アドレス(SAB)ビットおよびI個の独立アドレス(IAB)ビットへの分割は通常、任意で行う。
図4A〜図4Cは、タイル状に分割されたアドレススペースに基づいて、三角形の理想的なピクセルマップレンダリングを説明するための図である。図4Aは、論理チャネル幅が64バイトであるマイクロタイル方式に準拠していないメモリシステムによる、タイル状に分割されたアドレススペースでの三角形401のラスタライゼーションを示す。図4Bおよび図4Cは、マイクロタイル方式に準拠したメモリシステムによる、タイル状に分割されたアドレススペースでの三角形401のラスタライゼーションを示す。三角形401のラスタライゼーションの単位はフラグメント402である。フラグメント402は、ピクセルもしくはテクセルを表すとしてもよい。タイル状に分割されたアドレススペースでは、論理的な2次元状のデータアレイがサブアレイの1セットとして編成されており、1つのサブアレイ内のデータはアドレススペースの連続した範囲に格納されているのでメモリ内で一部分に集中している。直線状にアドレス指定されている、論理的な2次元状のデータアレイの場合は、上述したようなサブアレイを有さず、フラグメント402のようなデータが、1行中を左から右へ、続いて上から下へと次の行へ移るという順番で、直線状にアドレス指定されている。このため、垂直方向に隣接するフラグメント402同士はメモリ内で互いに離れている場合がある。
図4Aとの比較に基づき、図4Bおよび図4Cは、より小さい単位のメモリ要求に答えられるという利点がマイクロタイルメモリアクセスによってどのように得られるかを示す。図4A、図4Bおよび図4Cはそれぞれ、メモリ要求サイズが異なる場合の、三角形401のラスタライゼーションを示す。
図4Aでは、1つのメモリ要求が16個のフラグメントから成るデータを含む。正方形402はそれぞれ1つのフラグメントを表し、1フラグメントは通常32ビットまたは4バイトのデータを持つ。図4A、図4Bおよび図4Cは20×20のフラグメントアレイを示す。4×4のフラグメントアレイは、図4Aに示すように、スパン404であって、64バイトのメモリ要求に対応する。サブスパン424は、図4Cに図示するように、2×2のフラグメントアレイであって、16バイトのメモリ要求に対応する。ダブルサブスパン414は、図4Bに示すように、32バイトのメモリ要求に対応し、2×4のフラグメントアレイとして編成されている。
図4A、図4Bおよび図4Cの相違点は、メモリ要求のサイズが減少するにつれて、過取得が理論上減少する様子を示したものである。図4A、図4Bおよび図4Cのそれぞれの例において、三角形401のラスタライゼーションを行うためにアクセスする必要があるフラグメントの数は同一である。しかし、1回のメモリアクセスで転送されるのは通常、2個以上のフラグメントのデータであるため、三角形401内のフラグメント408を表すデータと三角形401の外部にあるフラグメント406を表すデータが共に転送される場合がある。三角形401の外部にあるフラグメント406を表すデータは過取得されているので、メモリ帯域幅が非効率に使用されている。
図4Aについて、64バイトのメモリアクセスに応じてスパン404のデータである4×4のフラグメントブロックが転送される。例えば、スパン404Aが第1の64バイトのメモリアクセスに対応し、スパン404Bが第2の64バイトのメモリアクセスに対応する。一例として、三角形401が約57個のレンダリングすべきピクセルを含むとする。64バイトのメモリアクセスの場合、三角形内の65個のフラグメントにアクセスするためには10回のメモリアクセスが必要となる。ここで、95個のフラグメントのデータについてはアクセスするものの、利用されない場合がある。
図4Bについて、32バイトのメモリアクセスに応じて、ダブルサブスパンのデータである2×4のフラグメントブロック、つまり64バイトのメモリアクセスの場合に転送されるデータの半分が転送される。例えば、ダブルサブスパン414Aが第1の32バイトのメモリアクセスに対応し、ダブルサブスパン414Bが第2の32バイトのメモリアクセスに対応する。32バイトのメモリアクセスの場合、三角形内の65個のフラグメントにアクセスするためには13回のメモリアクセスが必要となる。ここで、47個のフラグメントのデータについては、アクセスするものの、利用されない場合がある。
図4Cにおいて、16バイトのメモリアクセスに応じて、サブスパンのデータである2×2のフラグメントブロック、つまり64バイトのメモリアクセスの場合のデータの4分の1が転送される。スパン424Aが第1の16バイトのメモリアクセスに対応し、スパン424Bが第2の16バイトのメモリアクセスに対応し、スパン424Cが第3の16バイトのメモリアクセスに対応し、スパン424Dが第4の16バイトのメモリアクセスに対応する。16バイトのメモリアクセスの場合、三角形内の65個のフラグメントにアクセスするためには、22回のメモリアクセスが必要となる。ここで、13個のフラグメントのデータについては、アクセスするものの、利用されない場合がある。
他の例として、図4A、図4Bおよび図4Cにおいて、三角形401が表示すべきピクセルまたはフラグメントが65個(260バイト)であるとする。図4Aについて、三角形401をレンダリングするためには、メモリ内の約10個のスパンがアクセスされる。これには、160個のピクセルまたは640バイトのデータが含まれる。図4Bについて、三角形401をレンダリングするためには、メモリ内の約13個のダブルサブスパンがアクセスされる。これには、112個のピクセルまたは448バイトのデータが含まれる。図4Cについて、三角形401をレンダリングするためには、メモリ内の約22個のサブスパンがアクセスされる。これには、88個のフラグメントまたは352バイトのデータが含まれる。上記の説明から分かるように、図4Aの例と比較すると、図4Bおよび図4Cの例の場合には、各メモリチャネル内のサブチャネルと共にマイクロタイル方式のアドレス指定を実施することによって、過取得されたピクセルまたはフラグメント406が減少している。
上述したように、図4Bおよび図4Cは、メモリサブチャネルを持つマイクロタイル方式のメモリシステムを用いた、タイル状に分割されたアドレススペース内における三角形401のラスタライゼーションを示している。図4Bにおいて、64バイトの幅のメモリチャネルを2本の32バイトの幅のメモリサブチャネルから形成するとしてもよい。この場合、マイクロタイル方式のメモリアクセスでは、2つの不連続の32バイトのアクセスを1つの64バイトのアクセスへと組み合わせ、2つのサブチャネルに1対1で2つのアクセスを対応させ、合計64バイトとする。三角形のラスタライゼーションを実施するには、ダブルサブスパン414へのアクセスを要求することになる。例えば、マイクロタイル方式のメモリコントローラはダブルサブスパン414Cおよび414Dへのアクセス要求を組み合わせて、1つのマイクロタイルメモリアクセスを生成する。別の例によると、メモリコントローラはダブルサブスパン414Eおよび414Fへのアクセス要求を組み合わせて、1つのマイクロタイルメモリ要求を生成する。このほかのダブルサブスパンに対するアクセス要求も組み合わせて1つのマイクロタイルメモリ要求またはマイクロタイルメモリアクセスを生成するとしてもよい。本発明の1以上の実施形態において、組み合わせたサブチャネルアクセスは、SA個の共有アドレスビットにおいて、共有アドレスビットパターンを持つ。
図4Cの例においては、64バイトの幅のメモリチャネルを、4つの16バイトの幅のメモリサブチャネルから形成するとしてもよい。この場合、マイクロタイルメモリアクセスでは、4つの不連続の16バイトのアクセスを組み合わせて1つの64バイトのアクセスを生成し、4つのサブチャネルに1対1でアクセスを対応させて、合計64バイトとする。三角形のラスタライゼーションを実施するには、サブスパン424へのアクセスを要求することになる。例えば、マイクロタイル方式のメモリコントローラはサブスパン424E、424F、424Gおよび424Hへのアクセス要求を組み合わせて、1つのマイクロタイルメモリアクセスを生成する。このほかのサブスパンに対するアクセス要求も組み合わせて1つのマイクロタイルメモリ要求またはマイクロタイルメモリアクセスを生成するとしてもよい。本発明の1以上の実施形態において、組み合わせたサブチャネルメモリアクセスは、4つのメモリサブチャネルそれぞれに対応するSA個の共有アドレスビットにおいて、共有アドレスビットパターンを持つ。
理想的には、マイクロタイル方式に準拠したメモリ要求が全て、不使用のサブチャネルを生じさせることなく、64バイトのメモリトランザクションを行うべく、マイクロタイル方式のトランザクションアセンブラによって利用されるのが望ましい。つまり、マイクロタイル方式の効率は、トランザクションアセンブラ326Aおよび326Bが完全にポピュレートされたメモリトランザクションを生成できるかどうかに左右される。
図3Bは、システムメモリチャネルおよび1以上のキャッシュメモリ203に接続されたマイクロタイル方式のメモリ制御ブロック300を有するマルチチャネルメモリサブシステムを示す。マルチチャネルメモリサブシステムは、メモリ制御ブロック300内に、システムメモリに対するメモリチャネル毎にマイクロタイル方式のメモリコントローラを持つ。
図3Bにおいて、2本のメモリチャネル304Aおよび304Bが設けられている。このため、メモリチャネル304Aおよび304Bに対応して、2つのマイクロタイル方式メモリコントローラ321Aおよび321Bが設けられている。メモリチャネル304Aおよび304Bはそれぞれ、S本のサブチャネル305A〜305Sを含む。各サブチャネル305は論理的にNバイトの幅およびBビットの幅を持つ。各メモリチャネル304は、論理的にM(M=N×S)バイトの幅を持つ。
メモリ制御ブロック300とキャッシュメモリ203の間には、書き込みデータパス301および読み出しデータパス302が設けられている。書き込みデータパス301および読み出しデータパス302はコマンドパスまたはアドレスパスを含み、当該パスを介して読み出し要求および書き込み要求が発行される。読み出しトランザクションの場合、読み出しデータパス302を介して、メモリ制御ブロック300からキャッシュ203へとNバイトが戻される。書き込みトランザクションの場合は、書き込みデータパス301を介してキャッシュ203からメモリ制御ブロック300へとNバイトの書き込み要求が供給される。キャッシュ203とメモリ制御ブロック300の間でNバイトの読み出し要求または書き込み要求が発行されるが、要求は、サブチャネルが4つの場合に利用されるように、2×2のピクセルアレイまたはテクセルアレイを表すべく2×2のタイルアレイとして図示されている。
メモリ制御ブロック300はチャネル割り当て器320、第1メモリコントローラ321A、および第2メモリコントローラ321Bを有する。メモリ制御ブロック300はまた、メモリチャネル0(304A)およびメモリチャネル1(304B)に接続されている。メモリチャネル0(304A)はS本のサブチャネル305A〜305Sを有する。同様に、メモリチャネル1(304B)はS本のサブチャネル305A〜305Sを有する。共有アドレスライン310によって、各メモリコントローラ322と対応するサブチャネル305A〜305Sが接続されている。独立アドレスライン311A〜311Sは、サブチャネル305A〜305Sと接続される。データバスのサブチャネル部分312A〜312Sはそれぞれ、メモリサブチャネル305A〜305Sに接続される。
メモリコントローラ321Aおよび321Bは、サブチャネル割り当て器322Aおよび322B、リオーダバッファ324Aおよび324B、およびトランザクションアセンブラ326Aおよび326Bを含む。
チャネルの論理幅である、Nバイトのデータに対するメモリ要求がチャネル割当器320に接続される。チャネル割り当て器は、当該メモリ要求を、メモリチャネルの変動などの状況に応じて、メモリチャネル0(304A)もしくはメモリチャネル1(304B)に割り当てる。チャネル割り当て器によってメモリチャネルに割り当てられた後、当該Nバイトのデータに対するメモリ要求は、メモリコントローラ321Aもしくは321B、そしてサブチャネル割り当て器322Aもしくは322Bに接続される。
サブチャネル割り当て器322Aおよび322Bは、当該Nバイトの要求をサブチャネル305A〜305Sのうちの1本に割り当てる。図6を参照しつつ説明すると、識別サブチャネル割り当て(Identity Sub−channel Assignment)、「s」、は以下に説明するプロセスによって定義されるとしてもよい。(1)要求アドレス「A」をP個のSDABビットだけ右にシフトすると、新しい整数値
Figure 0004838843
となる。(2)サブチャネル割り当て(Sub−channel Assignment)用の値「s」は、
Figure 0004838843
の最下位Q個のSSBビット
Figure 0004838843
である。
マイクロタイル方式のメモリコントローラ321Aおよび321Bは、リオーダバッファ324Aおよび324Bを有する。リオーダバッファはサブチャネルに対するメモリ要求を並べ替えて、各メモリチャネルにおける帯域幅の効率を上げる。アドレス「A」のNバイトのデータブロックに対する読み出し要求または書き込み要求がメモリコントローラ322Aまたは322Bに入力され、サブチャネルに割り当てられ、リオーダバッファに入れられる。リオーダバッファは各サブチャネルのリオーダ行列として実現されるとしてもよい。リオーダバッファは他の形態で実施するとしてもよい。
トランザクションアセンブラ326Aおよび326Bは、各サブチャネルに1つずつ、リオーダバッファからS個の読み出し要求を選択して、メモリ読出しトランザクションを形成する。このとき、S個の要求はすべて同一の共有アドレスビットを持つ。また、トランザクションアセンブラ326Aおよび326Bは、各サブチャネルに1つずつ、リオーダバッファからS個の書き込み要求を選択して、メモリ書き込みトランザクションを形成する。このとき、S個の要求はすべて同一の共有アドレスビットを持つ。例えば、トランザクションアセンブラ326Aおよび326Bは、各サブチャネルに1つずつとなる、4つの16バイトの要求に基づいて、メモリチャネルにおける64バイトのトランザクションをアセンブルするとしてもよい。
トランザクションの形成を試みる場合、マイクロタイル方式のコントローラに設けられたトランザクションアセンブラは、SA個の共有アドレスビットが全てのサブチャネルについて同一であるような要求を、各サブチャネルにつき1つずつ、1セット同時に見つけることができない場合がある。この場合には、要求が見つからなかったサブチャネル上ではデータが転送されないか、もしくは、そのサブチャネル上でデータが転送される場合は、転送されたデータは破棄される。
図5A〜図5Cは、メモリチャネル500A〜500Cのバイトオーダーの例を示す。図5Aにおいて、メモリチャネル500Aの転送サイズは0から63の番号が振られた64バイトである。論理幅64バイトは、メモリチャネルの64ビットの物理幅によってアクセスできるとしてもよい。
図5Bにおいて、メモリチャネル500Bは2本のメモリサブチャネル505Aおよび505Bに分割されるとしてもよい。メモリサブチャネル505Aおよび505Bはそれぞれ、64バイトの転送量の半分を転送するので、各サブチャネルは32バイトを転送する。メモリサブチャネル505Aは、アクセスされるメモリバイトは番号が0から31で、図5Aの番号付けから振り直されている。メモリサブチャネル505Bは、アクセスされるバイトは番号が32から63で図5Aの番号付けから振り直されている。
図5Cにおいて、メモリチャネル500Cは4本のメモリサブチャネル515A、515B、515Cおよび515Dに分割されるとしてもよい。メモリサブチャネル515A、515B、515Cおよび515Dはそれぞれ、64バイトの転送量の4分の1を転送するので、各サブチャネルは16バイトを転送する。メモリサブチャネル515Aは0から15の番号が振られたメモリバイトにアクセスし、番号の割り振りは図5Aの番号付けから振り直されている。メモリサブチャネル515Bは16から31の番号が振られたメモリバイトにアクセスし、番号の割り振りは図5Aの番号付けから振り直されている。メモリサブチャネル515Cは32から47の番号が振られたメモリバイトにアクセスし、番号の割り振りは図5Aの番号付けから振り直されている。メモリサブチャネル515Dは48から63の番号が振られたメモリバイトにアクセスし、番号の割り振りは図5Aの番号付けから振り直されている。このようにして、64バイトの転送がメモリサブチャネル間で均等に分割され、バイト番号が振り直され、新しく割り当てられる。
図6に戻って、本発明の他の実施形態によると、バイト番号は上記の方法とは違う方法で振り直されるとしてもよい。
上述したように、マイクロタイルメモリアクセスをサポートするべく、I個の独立アドレスビットと共に、SA個の共有アドレスビットを利用するとしてもよい。一方、Q個のサブチャネル選択ビットおよびP個のサブチャネルデータアドレスビットは、キャッシュラインによってアクセスされる物理バイトをアドレス指定するべく利用される。64バイトのキャッシュラインの場合、Q個のサブチャネル選択ビットおよびP個のサブチャネルデータアドレスビットの合計は6になる。
図6においては、P個のサブチャネルデータアドレスビットがA0〜A8として示されている。同図では、Q個のサブチャネル選択ビットはA10、A8およびその間のビットと示されている。同図において、I個の独立アドレスビットはA9、A10、A16、A18、A24およびその間のビットとして示されている。同図では、SA個の共有アドレスビットは例えば、A11、A15、A17、A19、A20、A25、A26およびAxとして示されている。その間のビットも共有アドレスビットとして利用されるとしてもよい。
I個の独立アドレスビットによって、サブチャネルアドレスはアドレスオフセットにおいて互いに独立している。サブチャネルを完全に独立したものにするためには、メモリコントローラから各サブチャネルへ送られるコマンドおよびアドレスを完全に複製するとしてもよいが、こうするとメモリコントローラのピンカウント、入出力ドライバ用のシリコン領域およびホストのプリント配線基板またはマザーボードにおける配線ルーティングに必要な領域が大幅に増加してしまう。この代わりとして本発明の実施形態は、図6に示すように、全サブチャネルがサブチャネルアドレスビットの1以上の部分を共有し、残りの部分「I」をサブチャネル毎に独立させる。I個の独立アドレスビットを慎重に選択することによって、帯域幅効率を高めることができると同時に、I個のアドレス信号を各サブチャネルに対して複製する場合の損失に対してバランスを取ることができる。
上述したように、I個の独立アドレスビットは様々な方法で取得されるとしてもよい。例えば、各メモリサブチャネルに対してアドレスラインを追加してルーティングさせることおよび/またはアドレスオーバーロードを利用することなどが挙げられる。
図7は、メモリモジュールMM1〜MMnの一例としてメモリモジュールMM710を示す図である。メモリモジュール710は例えば、SIMM(Single Inline Memory Module)またはDIMM(Dual Inline Memory Module)などであってもよい。メモリモジュール710は、プリント配線基板751に接続されたメモリ用集積回路チップ(メモリデバイス)752を有する。プリント配線基板751は、エッジコネクタまたはエッジコネクション754を持ち、当該エッジコネクタまたはエッジコネクション754はホストプリント配線基板762のエッジコネクタ760に接続される。
メモリモジュール710はマイクロタイル方法およびマイクロタイル方式メモリアクセスをサポートする。しかし、他の既存のメモリモジュールはマイクロタイル方法およびマイクロタイル方式メモリアクセスをサポートしない。マイクロタイル方法およびマイクロタイル方式メモリアクセスをサポートしない既存のメモリモジュールは、ホストプリント配線基板762の1つのエッジコネクタ760に接続されるとしてもよく、その一方、マイクロタイル方法およびマイクロタイル方式メモリアクセスをサポートするメモリモジュール710はホストプリント配線基板762の別のエッジコネクタ760に接続される。マイクロタイル方法をサポートするメモリモジュールはこのようにして、マイクロタイル方法をサポートしないメモリモジュールとシステム内において混合させられるとしてもよい。
メモリのマイクロタイル方式をサポートするべく、本発明の一実施形態においては、プリント配線基板751のエッジコネクション754のピンアウトのうち未使用の、もしくは接続されていないピンを用いて、メモリ用集積回路752に対してアドレス信号ラインを独立して追加するとしてもよい。エッジコネクション754の未使用の、もしくは接続されていないピンは、追加された独立アドレス信号ラインをメモリ用集積回路752にルーティングするために使用されるとしてもよい。同様の未使用のピンは、マザーボード762に実装された対応するエッジコネクタ760にも存在する。追加の独立アドレス信号ライン763は、独立アドレス情報を追加で供給するべく、メモリ制御ブロック内のメモリコントローラから既存のコネクタに対して、マザーボード762を横切るようにしてルーティングされる。メモリモジュールのエッジコネクション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は分割されて、図7に示すような4本のメモリサブチャネル205A、205B、205Cおよび205Dのような、複数の異なるメモリサブチャネルへと割り当てられるとしてもよい。1つのメモリ用集積回路752のデータ入出力のビット幅は通常、4、8または16ビットである。メモリチャネルの物理幅が64ビットで各メモリサブチャネルの物理幅が16ビットの場合、4つの16ビット幅のメモリ用集積回路752であれば、1対1で4つのメモリサブチャネル205A、205B、205Cおよび205Dへと割り当てられる。メモリチャネルの物理幅を64ビットとして各メモリサブチャネルの物理幅を16ビットとするべく、8個の8ビット幅のメモリ用集積回路752であれば、2対1で4つのメモリサブチャネル205A、205B、205Cおよび205Dへと割り当てられる。メモリチャネルの物理幅を64ビットとして各メモリサブチャネルの物理幅を16ビットとするべく、16個の4ビット幅のメモリ用集積回路752であれば、4対1で4つのメモリサブチャネル205A、205B、205Cおよび205Dへと割り当てられる。
メモリサブチャネルが2本の場合、メモリチャネルの物理幅を64ビットとして各メモリサブチャネルの物理幅を32ビットとするべく、4個の16ビット幅のメモリ用集積回路752であれば、2対1で2つのメモリサブチャネルへと割り当てられる。メモリチャネルの物理幅を64ビットとして各メモリサブチャネルの物理幅を32ビットとする場合、8個の8ビット幅のメモリ用集積回路752であれば、4対1で2つのメモリサブチャネルへと割り当てられる。メモリチャネルの物理幅を64ビットとして各メモリサブチャネルの物理幅を32ビットとする場合、16個の4ビット幅のメモリ用集積回路752であれば、8対1で2つのメモリサブチャネルへと割り当てられる。
メモリモジュールのエッジコネクション754および標準エッジコネクタ760の未使用のピンを利用することによって、メモリモジュール710は既存のメモリサブシステムに対して後方互換性を有することができる。
一例として、図3Aに示すように、4本の独立メモリサブチャネルが各メモリチャネルにあるとする。各サブチャネルのメモリ領域に独立してアクセスできるよう、サブチャネル毎に独立アドレスラインが4本追加されるとしてもよい。アドレスライン311A〜31D(A9〜A6と示す)は、サブチャネル毎に独立している。既存のアドレスラインとして4本のアドレスラインが1セットあるとすると、ルーティングされる追加アドレスラインの合計数は4本×3で、12本の独立アドレス信号ラインとなる。既存のエッジコネクタおよびメモリモジュールのピンアウトの一部が未使用の場合、独立アドレス信号を追加するにはメモリモジュールに対してマザーボードを介して追加信号ラインをルーティングするとしてもよい。
図8はメモリ用集積回路800を示すブロック図である。メモリ用集積回路800は、1以上のメモリデバイス752として、メモリモジュールMM1〜MMnに備えられるとしてもよい。メモリ用集積回路800は、メモリアレイ801、行アドレスデコーダ802、ビットラインプリチャージ/リフレッシュロジック803、列デコーダ804、センス増幅器アレイおよび書き込みドライバブロック806、コントローラ808、アドレスバッファ811およびマイクロタイル方式制御ロジック812を有し、これらの構成要素は図示するように互いに接続されている。マイクロタイル方式制御ロジック812は、オーバーロードロジック(OL)と呼ぶとしてもよい。
コントローラ808は、メモリ用集積回路800の一般的な機能を制御するべく設定/初期化され得る複数のビットを持つ、モードレジスタ810を有する。当該モードレジスタは、上記ビットを格納するためのビットストレージ回路を持つ。モードレジスタ810のビットは、ロードストローブと同時に、アドレスライン820またはデータライン821に対して適切なビット設定を印加することによって設定されるとしてもよい。ロードストローブは、メモリがアイドル状態の場合にメモリ用集積回路のコントローラ808に接続された制御ライン822のうち1以上の制御ライン822をトグルすることによって生成されるとしてもよい。コントローラ808は制御ライン822のうち1以上の制御ライン822を受け取る。当該1以上の制御ライン822には、行アドレスストローブRAS#、列アドレスストローブCAS#、書き込みイネーブルWE#、チップ選択CS#、バンク選択BA0、BA1、BA2またはこれ以外の標準規格メモリ用集積回路制御入力が含まれるとしてもよい。
具体的には、モードレジスタ810は、マイクロタイル方式メモリアクセスをサポートするように集積回路800を構成するための用いられるとしてもよい。以下で詳述するが、モードレジスタ810が持つビットのうち1つは、マイクロタイル方式イネーブルビットである。マイクロタイル方式イネーブルビットは、アクティブハイのビットでMTEビットと呼ぶとしてもよい。もしくは、マイクロタイル方式イネーブルビットは、アクティブローのビットでMTE#と呼ぶとしてもよい。どちらの場合にしても、マイクロタイル方式イネーブルビットは通常、マイクロタイルイネーブルビットまたはMTEビットと呼ぶとしてよい。マイクロタイルイネーブルビットは、デバイスの電源が最初に入った場合もしくはリセットされた場合にマイクロタイル方式がディセーブルされるように、デフォルトでリセットされる。このようにすることによって、メモリモジュール710およびメモリ用集積回路800は、マイクロタイル方式をサポートしないシステムに挿入された場合には、後方互換性を有することができる。モードレジスタ810はさらに、どのメモリサブチャネルに対してメモリ用集積回路が割り当てられてアドレス指定可能になっているか示す、1以上のサブチャネル選択(SCS)ビットを持つ。MTEビットおよび1以上のSCSビットは、マイクロタイル方式制御ロジック812に接続される。マイクロタイル方式をサポートしていないメモリモジュールでは、どのモードレジスタにも、マイクロタイル方式制御ロジック812をイネーブルとするために設定され得るMTEビット850がない。
ロードストローブはロードモードレジスタコマンドによって生成されビット設定をモードレジスタにロードするべく利用されるが、メモリ用集積回路からモードレジスタ内に格納されるビット設定を読み出すためには新しいコマンドが利用される。モードレジスタのビットを読み出すべく、メモリ用集積回路にステータスコマンドが供給されるとしてもよい。当該ステータスコマンドは、メモリがアイドル状態の場合に、メモリ用集積回路のコントローラ808に接続される制御ライン822のうち1以上の制御ラインを、一意的な方法でトグルまたは設定することによって、形成されるとしてもよい。この場合、マイクロタイル方式をサポートするメモリ用集積回路からは、MTEビット850が読み出される可能性がある。マイクロタイル方式をサポートしていないメモリモジュールの場合には、読み出すべきMTEビット設定はモードレジスタ内に設けられていないので、ステータスコマンドは利用できない。この場合、メモリモジュールおよびその上に設けられたメモリ用集積回路はステータスコマンドには反応せず、および/または、マイクロタイル方式がサポートされていない場合はMTEビット設定の応答もない。
マイクロタイル制御ロジック812は、複数のアドレス信号ライン820に接続され、アドレスを、アドレスバッファ811を介して列アドレスデコーダ804および/または行アドレスデコーダ802へと接続する。アドレスバッファ811は、内部アドレス信号ライン上のアドレス信号をラッチして当該アドレス信号をアドレスデコーダのために保持するとしてもよい。制御ロジック812はまた、メモリアレイ801へのマイクロタイルメモリアクセスをサポートするべく、マイクロタイルイネーブルビットおよび少なくとも1つのサブチャネル選択ビットを受け取る目的で、コントローラ内に設けられたモードレジスタに接続される。マイクロタイルイネーブルビットおよび少なくとも1つのサブチャネル選択ビットに応じて、制御ロジック812は、割り当てられている所定のサブチャネルの独立アドレス情報を取得するべく、アドレス信号ラインのうち1以上を選択する。つまり、所定のサブチャネルに割り当てられるのはアドレス信号ラインの一部のみであるとしてもよい。制御ロジック812は、独立アドレス情報を抽出するべく、この一部のアドレス信号ラインを選択する。これ以外のアドレス信号ラインは、他のサブチャネルに利用されるとしてもよいし、全サブチャネルによって共有される共有アドレス信号ラインであってもよい。制御ロジック812は、独立アドレス情報を、列アドレスデコーダ804および/または行アドレスデコーダ802に接続する。制御ロジックによる1以上のアドレス信号ラインの選択はさらに、列アドレスロード信号(CAS#)およびトランザクションイネーブル信号に基づいて行われるとしてもよい。
さらに1つの有効ビットの独立アドレス情報を別の有効ビット位置へとスウィズルするべく、マイクロタイル制御ロジック812に対して制御ロジックを追加して設けるとしてもよい。これは、マイクロタイル方式がイネーブルされている場合に、スクリーンリフレッシュのためなど、ある程度線形のアドレス指定方法を実現するためのものである。
センス増幅器アレイおよび書き込みドライバブロック806は、データ入出力(I/O)バスに接続され、メモリアレイからデータを読み出すための、もしくはメモリアレイ801にデータを書き込むための制御信号をコントローラ808から受け取るとしてもよい。センス増幅器アレイおよび書き込みドライバブロック806は、データ入出力(I/O)バス821を介して、メモリアレイ801に書き込むべきデータを受け取り、メモリアレイ801から読み出されたデータを出力する。データ入出力(I/O)バス821は、メモリ用集積回路800に備えられた、通常4ビット、8ビットまたは16ビットのビット幅を持つ双方向データラインを含む。
メモリアレイ801は、行列形式に編成されたメモリセルを有する。メモリセルは通常、DRAM(Dynamic Random Access Memory)セルであるが、SRAM(Static Random Access Memory)セルであってもよいし、プログラム可能な不揮発性型(NVRAM)の書き換え可能なメモリセルであってもよい。
行アドレスデコーダ802は、アドレスライン上の行アドレスを受け取り、メモリアレイ801内においてある行のメモリセルをアドレス指定するべく、1つのワードライン(WL)上で信号を生成する。列デコーダ804もまた、アドレスライン上の列アドレスを受け取り、当該ある行のメモリセルのうちどの列にアクセスすべきかを選択する。基本的に列デコーダ804は、アクセスすべきメモリセルに対応するビットラインを選択する。読み出しアクセスの場合、列デコーダ804はマルチプレクサとして機能する。書き込みアクセスの場合、列デコーダ804はデマルチプレクサとして機能する。列アドレスデコーダ804は、共有列アドレス信号に基づいて、メモリアレイ801内のメモリセルの列に対して選択的にアクセスする。モードレジスタ内でマイクロタイルイネーブルビットが設定されていれば、列アドレスデコーダ804は、独立サブチャネル列アドレス信号にさらに基づいて、メモリアレイ801内のメモリセルの列に対して選択的にアクセスする。
センス増幅器アレイおよび書き込みドライバブロック406は、読み出し動作中においてアクセスされたメモリセル内に格納されているのが論理値1であるか論理値0であるのかを判断するべく、センス増幅器を有するとしてもよい。読み出し動作において、アドレス指定されたメモリセルは、メモリアレイのビットラインのうち選択されたビットラインに対して論理値1もしくは論理値0を出力するよう試みる。センス増幅器は、読み出し動作において、メモリアレイのビットラインのうち選択されたビットラインに対してアドレス指定されたメモリセルが出力した値が論理値1であるか論理値0であるかを検出する。センス増幅器アレイおよび書き込みドライバブロック406はさらに、書き込み動作において、メモリアレイのビットラインのうち選択されたビットラインに対して、およびアドレス指定されたメモリセルに対して、論理値1または論理値0を出力する書き込みドライバを有するとしてもよい。
プリチャージ/リフレッシュブロック803はメモリアレイ801のビットラインに接続される。プリチャージ/リフレッシュブロック803は、読み出し動作または書き込み動作においてメモリセルに対するアドレス指定に先立って、ビットラインの準備を整えるとしてもよい。プリチャージ/リフレッシュブロック803はまた、動作していない期間において、メモリアレイ801内のメモリセルに格納されているデータをリフレッシュするとしてもよい。
あるメモリサイクルにおいて、メモリ用集積回路800に接続された既存の信号ラインのうち何本かは使用されていないため、別の目的を達成するべく再割り当てすることができる。一例を挙げると、CAS(列アドレスストローブ)サイクルの間は、アドレスライン全てが使用されているわけではない。使用されていないアドレス信号ラインは、CASサイクルにおいて、メモリモジュール(例えばDIMM)およびその内部に設けられたメモリ用集積回路デバイスに対して追加のアドレス情報を供給するように、再割り当てすることが可能である。メモリ制御ブロック202内に設けられたメモリコントローラ208が、CASサイクルにおいて、上記の使用されていないアドレス信号ラインを介して、追加のアドレス情報を送信する。マイクロタイル方式制御ロジック回路812が追加され、モードレジスタ810内にビットを有するメモリ用集積回路800は、CASサイクルにおいて、使用されていなかったアドレス信号ラインを介して送信されるこのようなオーバーロード信号を認識してデコードする。
図9は、マイクロタイル方式をサポートするべく、モードレジスタ810Aに接続されるようにメモリ用集積回路内に設けられた、マイクロタイル方式メモリ制御ロジック812Aの一例を示す図である。本実施例に係るマイクロタイル方式メモリ制御ロジック812Aは、使用されていないメモリサイクル、例えばCASサイクルにおいて追加のアドレス情報を有するオーバーロードされたアドレス信号ラインをデコードする。マイクロタイル方式メモリ制御ロジック812Aを示す同図の概略図によると、マイクロタイル方式をサポートするべく4本のサブチャネルが設けられており各サブチャネルの論理幅は16バイトとなっている。
マイクロタイル方式メモリ制御ロジック812Aの中心となるのは、独立アドレス情報を取得するデュアル4入力マルチプレクサ900である。マイクロタイル方式メモリ制御ロジック812Aのデュアル4入力マルチプレクサ900は、マルチプレクス出力(A3'およびA4')において、共有列アドレス信号または独立サブチャネル列アドレス信号を選択的に出力する。デュアル4入力マルチプレクサの出力(A3'およびA4')は列アドレスデコーダの入力に接続されている。独立サブチャネル列アドレス信号は、メモリサブチャネルで受け取るべく選択された1以上の独立列アドレス信号である。
マイクロタイル制御ロジック812Aはメモリ用集積回路のアドレスピンからアドレスラインを受け取る。マイクロタイル制御ロジック812Aは、行アドレスデコーダおよび列アドレスデコーダに分配されるべく、アドレスバッファにアドレスを供給する。メモリ用集積回路のアドレスピンの一部は、共有行アドレス信号、共有列アドレス信号、独立列アドレス信号もしくはこれらの組み合わせのいずれかを受け取る。例えば、アドレスピンA5〜A9およびA13はマイクロタイル制御ロジック812Aを通り抜けるように設けられ、共有行アドレス信号および/または共有列アドレス信号を、メモリサブチャネルで受け取るとしてもよい。アドレスピンA0〜A4およびA10〜A12はデュアル4入力マルチプレクサ900に接続され、共有行アドレス信号およびマイクロタイル方式がイネーブルされている場合は、独立列アドレス信号を受け取るとしてもよい。マイクロタイル方式がイネーブルされていない場合、デュアル4入力マルチプレクサ900に接続されたアドレスピンA3およびA4は、共有行アドレス信号および/または共有列アドレス信号を受け取るとしてもよい。列アドレスロードストローブピンCAS#は、列アドレスロードストローブ信号を受け取り、メモリ用集積回路内を取得するべくあるサブチャネルに割り当てられたアドレスピン上の独立列アドレス信号のうち適切な1以上の独立列アドレス信号を選択的に受け取るべく、制御ロジック812Aに接続されている。列アドレスロードストローブ信号はまた、適切なアドレスピン以外で共有列アドレス信号を受け取って取得するためにも利用するとしてもよい。
モードレジスタ810Aは3ビット格納回路を備えるとしてもよい。当該3ビット格納回路は例えば、マイクロタイルイネーブル(MTE)ビットの設定を格納するためのフリップフロップまたはメモリセル、サブチャネル選択ビット0(SCS0)ビット、およびサブチャネル選択ビット1(SCS1)ビットである。モードレジスタ810Aのこれらの3ビットは、適切なサブチャネル選択ビットおよびマイクロタイルイネーブルビットを用いてプログラムされる。上述した3ビットは、電源投入時またはリセット時といった初期化中において、メモリ用集積回路が受け取るビット設定に基づいて、設定/リセットされる。当該3ビットはまた、メモリ用集積回路がアイドル状態でメモリアクセスが行われていない場合に、設定/リセットされるとしてもよい。ビット設定は、アドレス信号ラインまたはデータ信号ラインを介して受け取られ、メモリ用集積回路に接続された1以上の制御ライン入力によって生成されるロードストローブ信号に対応してモードレジスタにロードされるとしてもよい。メモリ用集積回路においてマイクロタイル方式がイネーブルされる予定の場合は、マイクロタイルイネーブルビットMTEを設定する。MTEビットはアクティブハイのため、高ロジックレベルに設定される。アクティブローの場合には、MTE#ビットが低ロジックレベルに設定される。図9に例示した制御ロジックでは、メモリチャネルが持つサブチャネルの数は4以下である可能性がある。ここで、SCS0ビットおよびSCS1ビットによって、当該メモリ用集積回路は4本のメモリサブチャネルのうちのいずれかに割り当てられる。同一メモリモジュール上に設けられた他のメモリ用集積回路は、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サイクル)の場合に、メモリ用集積回路への行アドレスの書き込みにおいてメモリ用集積回路で行アドレスを選択するためにアドレスビットが利用されることがある。このことを本明細書ではアドレスオーバーロードと呼んでいる。列アドレスストローブCAS#の間はA0、A1、A2、A10、A11およびA12が使用されないアドレスビットとして図9では図示されているが、これら以外の未使用のアドレスビットが、マイクロタイル方式をサポートするためにオーバーロードされたアドレス信号ラインとして利用されるとしてもよい。
マイクロタイル方式メモリ制御ロジック812Aは、デュアル4入力マルチプレクサ900、3入力ANDゲート903、複数の2入力ANDゲート904〜911および複数のインバータ912〜918を有し、上記の構成要素は互いに図示するように接続されている。ANDゲートがNANDゲートと当該NANDゲートの出力に接続されたインバータによって構成されるのは公知である。
デュアル4入力マルチプレクサ900は一対の4:1マルチプレクサで、各マルチプレクサは第1選択制御入力S0および第2選択制御入力S1を有し、第1選択制御入力S0同士および第2選択制御入力S1同士は接続されている。第1の4:1マルチプレクサは、入力1I0〜1I3を受け取り、選択制御入力S0およびS1に応じた出力1Yを供給する。第2の4:1マルチプレクサは、入力2I0〜2I3を受け取り、選択制御入力S0およびS1に応じた出力2Yを供給する。S0とS1が共に論理値Lまたは0である場合、入力1I0および2I0がそれぞれ出力1Yおよび2Yに対してマルチプレクスされる。S0が論理値Hまたは1でS1が論理値Lまたは0である場合、入力1I1および2I1がそれぞれ出力1Yおよび2Yにマルチプレクスされる。S0が論理値Lまたは0でS1が論理値Hまたは1である場合、入力1I2および2I2がそれぞれ出力1Yおよび2Yにマルチプレクスされる。S0とS1が共に論理値Hまたは1である場合、入力1I3および2I3がそれぞれ出力1Yおよび2Yに対してマルチプレクスされる。
デュアル4入力マルチプレクサ900の第1の4入力マルチプレクサは、入力1I0〜1I3においてアドレスビットA3、A0、A1およびA2を受け取り、受け取ったアドレスビットのうち1つを選択して、1Y出力からアドレス信号ラインA3'へと出力する。第2の4入力マルチプレクサは、入力2I0〜2I3においてアドレスビットA4およびA10〜A12を受け取り、受け取ったアドレスビットのうち1つを選択して、2Y出力からアドレス信号ラインA4'へと出力する。選択制御入力S0およびS1はそれぞれ、ANDゲート904および905の出力へと接続される。
ANDゲート903は、出力においてマイクロタイルモード信号(MTM)902Aを生成する。マイクロタイルモード信号902Aはアクティブハイで、独立アドレス信号が、デュアル4入力マルチプレクサ900に接続されている、オーバーロードされたアドレス信号ライン上にある場合に適切なタイミングで生成される。インバータ912は、出力において、アクティブローなCAS#信号を反転させてアクティブハイのCAS信号を生成する。当該インバータ912の出力はANDゲート903の入力に接続されている。ANDゲート903は、CAS信号、MTEビット設定(ME)およびトランザクションイネーブル信号(TE、アドレスビットA13)を論理加算して、マイクロタイルモード信号902Aを生成する。つまり、マイクロタイル方式がMTEビットによってイネーブルとされ、トランザクションがTE信号によってイネーブルとされている場合、CAS#が論理値Lであればマイクロタイルモード信号(MTM)902Aが生成される。
マイクロタイルモード信号(MTM)902Aは、ANDゲート904および905の入力に接続されており、サブチャネル選択ビットSCS0およびSCS1を制御する。何らかの理由でマイクロタイルモード信号(MTM)902Aが論理値Lとなった場合、マルチプレクサ900の選択制御入力S0およびS1は、ANDゲート904および905の出力において、論理値がLまたは0となる。S0およびS1が共に論理値Lまたは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によって、4つの入力のうちいずれを選択してマルチプレクサ900の出力にマルチプレクスするかが制御される。サブチャネル選択ビットSCS0およびSCS1の設定は、メモリ用集積回路が割り当てられるサブチャネルを指し示し、マルチプレクサ900に接続されているアドレスビットラインのうちどれが、CASサイクルにおいて独立アドレス信号を取得するために使用されるかを決定する。
サブチャネル選択ビットSCS0およびSCS1の設定は、サブチャネル毎に異なる。サブチャネルが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が論理値Lまたは0の場合、ANDゲート906〜911は、アドレスラインA0、A1、A2、A10、A11およびA12上の信号を、出力A0'、A1'、A2'、A10'、A11'およびA12'ならびにアドレスデコーダへと通過させる。一方、マイクロタイルモード信号(MTM)902Aが論理値Hまたは1の場合、ANDゲート906〜911は、出力A0'、A1'、A2'、A10'、A11'およびA12'はすべて論理値Lまたは0へと制御する。このように、独立アドレス情報を取得するべくマイクロタイルモード信号(MTM)902Aがアクティブハイの場合、論理値0に制御されるので出力A0'、A1'、A2'、A10'、A11'およびA12'は使用されない。
マイクロタイル方式がイネーブルされたメモリモジュールおよびメモリICの検出
図10Aは、メモリ用集積回路内においてマイクロタイルメモリアクセスに対するサポートがあるかどうか検出するための第1の方法を示すフローチャートである。当該方法は、マイクロタイルメモリアクセスをサポートできるホストプリント配線基板およびシステムにおいてブロック1000Aの処理から開始される。マイクロタイル方式がイネーブルされたメモリモジュールおよびメモリ用集積回路を検出するべく、メモリコントローラのメモリ要求リオーダ機能をディセーブルする。ディセーブルしないと、メモリ要求がリオーダされてしまった場合、誤った指定がなされてしまう可能性がある。
ブロック1002において、メモリモジュールおよびメモリ用集積回路においてマイクロタイル方式をイネーブルすることに先立って、一意的なビットパターンを持つキャッシュラインを各メモリチャネルの開始アドレスに書き込む。マイクロタイル方式がディセーブルされている場合、当該開始アドレスはメモリモジュール間およびメモリ用集積回路間で共有される開始アドレスである。キャッシュラインの一意的なビットパターンは、図11Aに示したものと同様であってもよい。図11Aに示したビットパターンは、キャッシュラインのバイトオーダーを指定している。またキャッシュラインの一意的なビットパターンは、図12Aから図12Eに図示したような、隣接するバイト同士を識別するような別の一意的なパターンであってもよい。キャッシュラインの一意的なビットパターンは、2つの目的を持つとしてもよい。つまり、マイクロタイル方式を検出するためとメモリエラーがないかメモリモジュールのメモリを試験するために用いられるとしてもよい。さらに、同一のパターンを持つ1つのキャッシュラインは、メモリの複数の異なる開始アドレスに書き込まれるとしてもよい。
続いてブロック1003Aにおいて、メモリチャネルの各メモリモジュールの各メモリ用集積回路に対して、マイクロタイルメモリアクセスのイネーブルを試みる。マイクロタイルメモリアクセスをサポートしているメモリモジュールであればイネーブルされる。マイクロタイルメモリアクセスをサポートしていないメモリモジュールは、もしあれば、イネーブルされない。この場合、マイクロタイルメモリアクセスをサポートしていないメモリモジュールおよびメモリ用集積回路に対して行われた、マイクロタイルメモリアクセスをイネーブルしようとする試みは失敗することになる。また、サブチャネル選択(SCS)ビットを対応するサブチャネルへと割り当てるべく、メモリ用集積回路のモードレジスタの1以上のサブチャネル選択(SCS)ビットを設定しようと試みるとしてもよい。
ブロック1006Aにおいてメモリに対してマイクロタイルメモリアクセスをイネーブルすることを試みた後、同一の開始アドレスで始まるキャッシュラインを読み出すためのメモリ要求がメモリ制御ブロックおよびメモリコントローラに対して発行される。要求は同一の開始アドレスにおいてなされるが、マイクロタイル方式がイネーブルされたマイクロタイルメモリコントローラは、メモリモジュールおよびメモリ用集積回路においてマイクロタイルメモリアクセスがイネーブルされていれば、当該開始アドレスを、各メモリサブチャネルに対する独立した開始アドレスへと翻訳しようと試みる。しかしメモリモジュールおよびメモリ用集積回路においてマイクロタイルメモリアクセスがイネーブルされておらずサポートされていなければ、同一の開始アドレスにおける読み出し要求は、メモリモジュールおよびメモリ用集積回路によって独立アドレスとして解釈されない。代わりに、共有アドレスとして解釈され、書き込みアクセスの場合と同様に、それぞれにおいて同一のメモリ位置に対してアクセスがなされる。同一の開始アドレスを用いてキャッシュラインに対するメモリ要求を発行したが、マイクロタイル方式では、各メモリチャネルのサブチャネル内のデータにアクセスする場合、各サブチャネルおよびその内部に設けられたメモリ用集積回路に対して独立アドレスを使用する。メモリ用集積回路およびメモリモジュールがマイクロタイル方式をサポートせず独立アドレスが利用できない場合、一意的なデータビットパターンを書き込む場合に用いられたのと同様に、読み出し要求において各メモリ用集積回路に対して同一の開始アドレスが使用される。この場合、書き込まれた同一の一意的なデータビットパターンが、マイクロタイル方式をサポートしないメモリモジュールおよびメモリ用集積回路から読み出されることになる。
上記の動作は図4A〜図4Cに図示されている。図4Aでは、マイクロタイル方式がイネーブルされておらず、64バイトのキャッシュラインのデータが4×4のピクセルタイルであるスパン404Aをレンダリングしている。図4Bでは、マイクロタイル方式がイネーブルされており、各メモリチャネルには2本のサブチャネルが設定されている。1本のサブチャネルから得られるダブルサブスパン414Aによってスパン404Aの一部分がレンダリングされる一方、ダブルサブスパン414Bのように別の関係ないダブルスパンが、メモリチャネルの別のサブチャネルによってアクセスされる。つまり、マイクロタイル方式がイネーブルされている場合、異なるメモリ位置に対してアクセスが行われる。図4Cでは、マイクロタイル方式がイネーブルされており、各メモリチャネルには4本のサブチャネルが設定されている。1本のサブチャネルから得られるサブスパン424Aによって、スパン404Aの一部がレンダリングされる一方、サブスパン424B〜424Dといった別の関係ないサブスパンが、メモリチャネルの別のサブチャネルによってアクセスされる。図示内容から分かるように、マイクロタイル方式がイネーブルされている場合、マイクロタイル方式がディセーブルされている場合とは異なるメモリ位置がキャッシュラインによってアクセスされる。マイクロタイル方式がディセーブルされている場合とイネーブルされている場合のメモリアクセスの相違点は、図5A〜図5Cおよび図11A〜図11Cにおいても図示されており、以下でもさらに説明する。
続いてブロック1008Aにおいて、メモリ用集積回路およびメモリモジュールにおいて、マイクロタイル方式がディセーブルされた状態でメモリチャネルに書き込んだキャッシュライン(書き込みキャッシュラインと呼ぶ)と、可能であればマイクロタイル方式がイネーブルされた状態でメモリチャネルから読み出されたキャッシュライン(読み出しキャッシュラインと呼ぶ)とを比較する。メモリ用集積回路およびメモリモジュールにおいてマイクロタイル方式がイネーブルできない場合、同一の開始アドレスを用いた書き込みメモリアクセスおよび読み出しメモリアクセスは同一のメモリ位置にアクセスすることになり、メモリに書き込まれたキャッシュラインのデータビットとメモリから読み出されたキャッシュラインのデータビットの間に相違はない。
ブロック1010Aにおいて、読み出しキャッシュラインのビットと書き込みキャッシュラインのビットが一致するかどうか判断する。ブロック1012Aにおいて、読み出しキャッシュラインのビットと書き込みキャッシュラインのビットが一致しないということは、メモリチャネル、メモリモジュールおよびメモリ用集積回路がマイクロタイルメモリアクセスをサポートするので、当該方法はブロック1050Aで終了する。ブロック1014Aにおいて、読み出しキャッシュラインのビットと書き込みキャッシュラインのビットが一致するということは、メモリチャネル、メモリモジュールおよびメモリ用集積回路がマイクロタイルメモリアクセスをサポートしないので、当該方法はブロック1052Aにおいて終了する。
図10Bは、メモリ用集積回路内においてマイクロタイルメモリアクセスに対するサポートがあるかどうか検出するための第2の方法を示すフローチャートである。当該方法は、マイクロタイルメモリアクセスをサポートできるホストプリント配線基板およびシステムにおいてブロック1000Bの処理から開始される。
ブロック1003Aにおいて、メモリチャネルの各メモリモジュールの各メモリ用集積回路に対して、マイクロタイルメモリアクセスのイネーブルを試みる。マイクロタイルメモリアクセスをサポートしているメモリモジュールであればイネーブルされる。マイクロタイルメモリアクセスをサポートしていないメモリモジュールは、もしあれば、イネーブルされない。この場合、マイクロタイルメモリアクセスをサポートしていないメモリモジュールおよびメモリ用集積回路に対して行われた、マイクロタイルメモリアクセスをイネーブルしようとする試みは失敗することになる。また、サブチャネル選択(SCS)ビットを対応するサブチャネルへと割り当てるべく、メモリ用集積回路のモードレジスタの1以上のサブチャネル選択(SCS)ビットを設定しようと試みるとしてもよい。
ブロック1004において、可能であれば、メモリモジュールおよびメモリ用集積回路においてマイクロタイル方式をイネーブルした後、一意的なビットパターンを持つキャッシュラインを各メモリチャネルの開始アドレスに書き込む。キャッシュラインの一意的なビットパターンは、図11Aに示したものと同様であってもよい。図11Aに示したビットパターンは、キャッシュラインのバイトオーダーを指定している。またキャッシュラインの一意的なビットパターンは、図12Aから図12Eに図示したような、隣接するバイト同士を識別するような別の一意的なパターンであってもよい。キャッシュラインの一意的なビットパターンは、2つの目的を持つとしてもよい。つまり、マイクロタイル方式を検出するためとメモリエラーがないかメモリモジュールのメモリを試験するために用いられるとしてもよい。さらに、同一のパターンを持つ1つのキャッシュラインは、メモリの複数の異なる開始アドレスに書き込まれるとしてもよい。
ブロック1005において、メモリチャネルの各メモリモジュールの各メモリ用集積回路に対して、マイクロタイルメモリアクセスのディセーブルを試みる。マイクロタイルメモリアクセスをサポートしているメモリモジュールは、ディセーブルされる。マイクロタイルメモリアクセスをサポートしていないメモリモジュールについては、もしあれば、マイクロタイルメモリアクセスをサポートすることはできないので何も変化はない。
ブロック1006Bにおいて、同一の開始アドレスで始まるキャッシュラインを読み出すためのメモリ要求がメモリ制御ブロックおよびメモリコントローラに対して発行される。キャッシュラインに対するメモリ要求は同一の開始アドレスを用いて発行されるが、マイクロタイル方式では、各メモリチャネルのサブチャネル内のデータにアクセスする場合、各サブチャネルおよびその内部に設けられたメモリ用集積回路に対して、独立アドレスを使用する。メモリ用集積回路およびメモリモジュールがマイクロタイル方式をサポートせず独立アドレスが利用できない場合、一意的なデータビットパターンを書き込む場合に用いられたのと同様に、読み出し要求において各メモリ用集積回路に対して同一の開始アドレスが使用される。この場合、書き込まれたものと同一の一意的なデータビットパターンが、マイクロタイル方式をサポートしないメモリモジュールおよびメモリ用集積回路から読み出されることになる。
続いてブロック1008Bにおいて、メモリ用集積回路およびメモリモジュールにおいて、可能であればマイクロタイル方式がイネーブルされた状態でメモリチャネルに書き込んだキャッシュライン(書き込みキャッシュラインと呼ぶ)と、マイクロタイル方式がディセーブルされた状態でメモリチャネルから読み出されたキャッシュライン(読み出しキャッシュラインと呼ぶ)とを比較する。メモリ用集積回路およびメモリモジュールにおいてマイクロタイル方式がイネーブルできない場合、同一の開始アドレスを用いた書き込みメモリアクセスおよび読み出しメモリアクセスは同一のメモリ位置にアクセスすることになり、メモリに書き込まれたキャッシュラインのデータビットとメモリから読み出されたキャッシュラインのデータビットの間に相違はない。
ブロック1010Bにおいて、読み出しキャッシュラインのビットと書き込みキャッシュラインのビットが一致するかどうか判断する。ブロック1012Bにおいて、読み出しキャッシュラインのビットと書き込みキャッシュラインのビットが一致しないということは、メモリチャネル、メモリモジュールおよびメモリ用集積回路がマイクロタイルメモリアクセスをサポートするので、当該方法はブロック1050Bで終了する。ブロック1014Bにおいて、読み出しキャッシュラインのビットと書き込みキャッシュラインのビットが一致するということは、メモリチャネル、メモリモジュールおよびメモリ用集積回路がマイクロタイルメモリアクセスをサポートしないので、当該方法はブロック1052Bにおいて終了する。
図10Cは、メモリ用集積回路内においてマイクロタイルメモリアクセスに対するサポートがあるかどうか検出するための第3の方法を示すフローチャートである。当該方法は、マイクロタイルメモリアクセスをサポートできるホストプリント配線基板およびシステムにおいてブロック1000Cの処理から開始される。本発明のこの実施形態によると、メモリ用集積回路に対するステータス要求によって、マイクロタイルイネーブルビットのビット設定およびモードレジスタのほかのビットの設定ができる。マイクロタイルメモリアクセスをサポートしていないメモリ用集積回路において、マイクロタイルイネーブルビットは存在しないので、ステータス要求があったとしても当該メモリ用集積回路ではメモリビット設定は行われない。
ブロック1020において、マイクロタイルメモリアクセスをイネーブルすることを目的として、メモリ用集積回路のモードレジスタのマイクロタイルイネーブルビットを設定しようと試みる。当該メモリ用集積回路がモードレジスタ内にMTEビットを持っていれば、METビットが設定される。当該メモリ用集積回路がモードレジスタ内に設定すべきMTEビットを持っていなければ、設定しようとする試みは失敗し、何事も起こらない。
ブロック1024において、モードレジスタのビット設定のステータスに関する要求をメモリ用集積回路に対して送る。メモリ用集積回路は、当該コマンドがサポートされていれば、ステータス要求を受け取るとしてもよい。もしサポートされていなければ、ステータスコマンドの要求は無視される。
ブロック1028において、メモリ用集積回路がマイクロタイル方式をサポートしていれば、レジスタから、マイクロタイルメモリアクセスがイネーブルされていることを示すマイクロタイルイネーブルビットの設定を出力する。メモリ用集積回路がマイクロタイル方式をサポートしていなければ、マイクロタイルイネーブルビットの設定を出力せず、ステータスに対する要求を完全に無視するとしてもよい。上述したように、マイクロタイルイネーブル信号は、マイクロタイルメモリアクセスがイネーブルされているかどうかを示す信号であるが、アクティブローであってもよいりアクティブハイであってもよい。アクティブロー信号である場合は、メモリ用集積回路内において、マイクロタイルイネーブルビットはマイクロタイルメモリアクセスをイネーブルする場合には論理値0に設定される。アクティブハイ信号である場合は、メモリ用集積回路内において、マイクロタイルイネーブルビットはマイクロタイルメモリアクセスをイネーブルする場合には論理値1に設定される。
ブロック1030において、ステータス要求に対してMTEビットの設定が供給されたかどうか判定される。ブロック1012Cにおいて、MTEビット設定が供給されているということは、マイクロタイルメモリアクセスがイネーブルされており、メモリ用集積回路がマイクロタイルメモリアクセスをサポートしていることになるので、当該方法はブロック1050Cにおいて終了する。ブロック1014Cにおいて、MTEビット設定が供給されなかったということは、メモリ用集積回路はマイクロタイルメモリアクセスをサポートしていないということなので、当該方法はブロック1052Cにおいて終了する。
図11Aは、メモリチャネル500Aのキャッシュラインの一意的なビット列の一例を示す図である。図11Aに示したキャッシュラインのビットは、図5Aに示したバイトの番号付けに対応している、8ビットのバイトで編成されている。このようにすることによって、キャッシュラインの各バイトは一意的となるので、別の順番で並べ替えられても容易に検出することができる。つまり、キャッシュラインは、マイクロタイル方式がイネーブルできるかどうかを検出するために利用できる一意的なデータビットパターンを持つ。各バイトにおいて、最上位ビット(MSB)は左端に示され、最下位ビット(LSB)は右端に示される。図11Aは、バイト1100A、1101A、1106A、1107A、1108A、1109A、1113A、1114A、1156A、1157A、1162Aおよび1163Aのバイト位置とビット設定を示す。0番目のバイト1100Aは、2進法でゼロを示すべく、ビットすべてがゼロに設定されている。7番目のバイト1107Aは、2進法で7を示すべく、3つのLSBが1に設定されている。56番目のバイト1156Aは、2進法で56を示すべく、3番目から5番目のビットが1に設定されている。63番目のバイト1163Aは、2進法で63を示すべく、0番目から5番目までのビットが1に設定されている。図11Aに全ては図示していないが、バイト1100Aから1163Aまでのバイトのビット設定は、図11Aに示したビットパターンおよび図5Aに示したバイトの番号付けに基づいて容易に得られる。図11Aにおいて示したようなキャッシュラインが、マイクロタイル方式がイネーブルまたはサポートされていない場合に、メモリに書き込まれたりメモリから読み出されるとしてもよい。
図11Bは、図11Aに示したキャッシュラインおよび当該キャッシュラインのビット列がメモリチャネル500Bにおいてどのように並び替えられ得るかを示す図である。ここにおいて、メモリチャネル500Bは、マイクロタイル方式がイネーブルされサポートされており、2本のサブチャネル505Aおよび505Bを有する。図11Bに示すキャッシュライン内のバイトは、2本のサブチャネル505Aおよび505Bに編成され、図5Bに示した各サブチャネル内のバイトの番号付けに対応している。図11Bは、一方のサブチャネル505A内のバイト1100B、1101B、1104B、1105B、1124B、1125B、1128Bおよび1129Bのバイト位置とビット設定を示す。図11Bはまた、サブチャネル505B内のバイト1134B、1135B、1138B、1139B、1158B、1159B、1162Bおよび1163Bのバイト位置とビット設定を示す。図11Bに示していない残りのバイトのビット設定は容易に、図11Bに示したビットパターンと図5Bに示したバイトに対する番号付けに基づいて得られる。
図11Cは、図11Aに示したキャッシュラインおよび当該キャッシュラインのビット列がメモリチャネル500Cにおいてどのように並び替えられ得るかを示す図である。ここにおいて、メモリチャネル500Cは、マイクロタイル方式がイネーブルされサポートされており、4本のサブチャネル505A〜505Dを有する。図11Cに示すキャッシュライン内のバイトは、4本のサブチャネル505A〜505Dに編成され、図5Cに示した各サブチャネル内のバイトの番号付けに対応している。図11Bは、第1のサブチャネル515A内のバイト1100C、1108C、1101C、1109C、1106C、1114C、1107Cおよび1115Cのバイト位置とビット設定を示す。図11Bはまた、第4のサブチャネル515D内のバイト1148C、1156C、1149C、1151C、1154C、1162C、1155Cおよび1163Cのバイト位置とビット設定を示す。第2のサブチャネル515Bおよび第3のサブチャネル515Cのバイト位置は、図5Cに図示する通りである。図11Cに示していない残りのサブチャネルおよびバイトのビット設定は容易に、図11Cに示したビットパターンと図5Cに示したバイトに対する番号付けに基づいて得られる。
図11Bおよび図11Cならびに図5Bおよび図5Cに図示したバイトの大半の位置は、図11Aおよび図5Aに示したバイトの位置と異なる。しかし、図11A〜図11Cおよび図5A〜図5Cを互いに比較しつつ見てみると、0番目のバイト1100A、1100Bおよび1100Cのビットと63番目のバイト1163A、1163Bおよび1163Dのビットは、どのメモリチャネルでも変わらない。このため、これらのバイトだけは、マイクロタイル方式がイネーブルされているかどうかを正確に示すことはできない。この場合、マイクロタイル方式がイネーブルされているかどうかを検出するためには、追加のバイトを利用する。
図10Aを参照しつつ説明した検出方法では、図11Aのキャッシュラインが、マイクロタイル方式がイネーブルされていない状態で、メモリチャネルに書き込まれるとしてもよい。続いてマイクロタイル方式がイネーブルされ、同一の開始アドレスでキャッシュラインを読み出そうと試みる。その結果、図11Bまたは図11Cに示したようなデータを持つキャッシュラインになっていることがある。マイクロタイル方式がサポートされていれば、取得されたキャッシュラインのデータは書き込まれたものとはビットオーダーやバイトオーダーが異なると期待される。マイクロタイル方式がサポートされていなければ、同一の開始アドレスでキャッシュラインを読み出すと、返されたデータのビットオーダーとバイトオーダーは書き込まれたものと同一であると期待される。つまり、マイクロタイル方式がサポートされていなければ、図11Aおよび図5Aに示したようなビットオーダーおよびバイトオーダーを持つキャッシュラインが読み出される。
図10Bを参照しつつ説明した検出方法では、マイクロタイル方式がイネーブルされた状態で、2本のメモリサブチャネルがサポートされていれば、図5Bに示したバイトの番号付けに対応する、図11Bに示したようなキャッシュラインがメモリに書き込まれるとしてもよい。もしくは、4本のメモリサブチャネルがサポートされていれば、図5Cに示したバイトの番号付けに対応する、図11Cに示したようなキャッシュラインがメモリに書き込まれるとしてもよい。続いてマイクロタイル方式をディセーブルした後、マイクロタイル方式がサポートされていれば、図5Aに示したバイトの番号付けに対応する、図11Aに示したようなキャッシュラインがメモリから読み出されるとしてもよい。マイクロタイル方式がサポートされていなければ、書き込まれたものと同一のビットオーダーおよびバイトオーダーでメモリチャネルから読み出されると期待される。
上述したように、図11Aが示すキャッシュラインのビットは8ビットのバイトに編成され、ビット設定は図5Aに示したバイトの番号付けに対応している。しかし、バイトが並べ替えられてキャッシュラインのビットパターンが変更されたかどうか判断する場合に、上記以外の一意的なビットパターンをキャッシュラインのバイトにおいて用いるとしてもよい。
図12A〜図12Eは、メモリ用集積回路においてマイクロタイルメモリアクセスがサポートされているかどうか検出する場合に利用される識別可能なパターンを実現するためにキャッシュラインに用いることができる、ほかのビットパターンを示す。
図12Aは、1バイト単位のチェッカーボード状のパターンを示す。つまり、ある1バイトが含むビットは全て論理値1に設定され、隣接するバイトのビットはすべて論理値0に設定されている。
図12Bは、1バイトの半分を1単位とするチェッカーボード状のパターンを示す。つまり、あるバイトに含まれるビットのうち半分は論理値1に設定され、同じバイトの残り半分のビットは論理値0に設定される。隣接するバイトのビット設定は、逆としてもよいし同じでもよい。
図12Cは、キャッシュラインのバイトで使用される、1と0が交互に設定されたパターンである。各バイトにおいて、ビットの値は論理値0と1が交互になっている。
図12Dは、キャッシュラインのバイトで使用される、「ウォーキングワン(Walking One)パターンを示す。図12Dに示すように、最初のバイトでは全ビットが0に設定され、後続のバイトでは1つの論理値1のビットがMSBからLSBもしくはLSBからMSBに向けて「歩く」。
図12Eは、キャッシュラインのバイトで使用される、「ウォーキングゼロ(Walking Zero)パターンを示す。図12Eに示すように、最初のバイトでは全ビットが1に設定され、後続のバイトでは1つの論理値0のビットがMSBからLSBもしくはLSBからMSBに向けて「歩く」。
上述したパターンでは同じパターンが繰り返されているが、メモリモジュールおよびメモリ用集積回路においてマイクロタイル方式がイネーブルされサポートされているかどうか検出できるようにビットパターンおよびバイトオーダーが識別可能であれば、複数のパターンを組み合わせて利用するとしてもよい。また上記のパターンはメモリモジュールおよびメモリ用集積回路においてマイクロタイル方式がイネーブルされているかどうか検出するために利用するとして説明しているが、同時にメモリのエラーを試験するために用いられるとしてもよい。
マイクロタイルメモリアーキテクチャをサポートするべく、サブチャネルアクセスを実現するようにメモリサブシステムは改良されてきている。しかし、すべてのメモリモジュールがマイクロタイルメモリアクセスをサポートするわけではない。本発明の実施形態によれば、システムに接続されたメモリモジュールのうちマイクロタイル方式がイネーブルされたものとされていないものが検出される。こうすることによって、マイクロタイルメモリアーキテクチャは、マイクロタイルメモリアクセスがサポートされていない既存のメモリモジュールに対して後方互換性を有することができる。
添付図面においては具体的な実施形態の例を説明および図示しているが、例示を目的としたものにすぎず、本発明の内容を限定するものではないと解釈されたい。また本発明の実施形態は、当業者であれば他の様々な変形例に想到するので、本明細書および図面に図示および説明した具体的な構造や配置には限定されない。
本発明の実施形態の構成要素は、ソフトウェアで実施した場合、実質的に必要なタスクを実施するためのコードセグメントとなる。プログラムまたはコードセグメントは、プロセッサが読み取り可能な媒体に格納されるとしてもよいし、送信媒体または通信リンクを介して搬送波によって実現されるコンピュータデータ信号によって送信されるとしてもよい。「プロセッサが読み取り可能な媒体」は、情報を格納または送信できる媒体であればどのようなものであってもよい。「プロセッサが読み取り可能な媒体」の例を挙げると、電子回路、半導体メモリデバイス、ROM(Read Only Memory)、フラッシュメモリ、EPROM(Erasable Programmable Read Only Memory)、フロッピーディスク(登録商標)、CD−ROM、光ディスク、ハードディスク、光ファイバ媒体、無線(RF)リンクなどがある。コンピュータデータ信号は送信媒体を介して伝播する信号であればどのようなものであってもよい。送信媒体の例としては、電子ネットワークチャネル、光ファイバ、大気、電磁波、RFリンクなどがある。コードセグメントは、インターネットはイントラネットなどのコンピュータネットワークを介してダウンロードされるとしてもよい。

Claims (20)

  1. 方法であって、
    メモリチャネル内のメモリの開始アドレスに対して一意的なビットパターンを持つ書き込みキャッシュラインを書き込むことと、
    前記メモリチャネルの複数のメモリモジュールの各メモリ用集積回路に対して複数の独立したサブチャネルメモリアクセスのイネーブルを試みることと、
    前記メモリチャネルのメモリの前記開始アドレスからの読み出しキャッシュラインの読み出しを要求することと、
    前記読み出しキャッシュラインおよび前記書き込みキャッシュラインのビットパターンを互いに比較して、各メモリ用集積回路に対して独立したサブチャネルメモリアクセスがイネーブルされているかどうか判断することと、
    前記読み出しキャッシュラインのビットパターンが前記書き込みキャッシュラインと異なる場合、前記メモリチャネルの複数のメモリモジュールの各メモリ用集積回路に対して独立したサブチャネルメモリアクセスがイネーブルされていることと
    を備える方法。
  2. 各メモリ用集積回路に対する前記複数の独立したサブチャネルメモリアクセスは、複数のマイクロタイルメモリアクセスである
    請求項1に記載の方法。
  3. 前記読み出しキャッシュラインのビットパターンと前記書き込みキャッシュラインのビットパターンとが同一である場合、独立したサブチャネルメモリアクセスはサポートされておらず、前記メモリチャネルの複数のメモリモジュールの各メモリ用集積回路においてイネーブルされ得ない
    請求項1又は2に記載の方法。
  4. 前記開始アドレスは、独立したサブチャネルがイネーブルされていれば、前記読み出しキャッシュラインの読み出しの要求が行われる場合、各メモリサブチャネルの前記メモリによって独立アドレスとして翻訳され解釈される
    請求項1から3のいずれか1項に記載の方法。
  5. 複数の独立したサブチャネルメモリアクセスのイネーブルを試みる前に、複数のメモリエラーを検出するべく、前記メモリチャネルの前記メモリから、前記一意的なビットパターンを持つ前記書き込みキャッシュラインを読み出す
    請求項1から4のいずれか1項に記載の方法。
  6. 前記書き込みキャッシュラインの前記一意的なビットパターンは、メモリテストパターンである
    請求項5に記載の方法。
  7. 前記書き込みキャッシュラインの前記一意的なビットパターンは、ウォーキングワン(Walking One)テストパターン、ウォーキングゼロ(Walking Zero)テストパターン、もしくはこれらの組み合わせである
    請求項5に記載の方法。
  8. 前記書き込みキャッシュラインの前記一意的なビットパターンは、チェッカーボード状のテストパターンである
    請求項5に記載の方法。
  9. 方法であって、
    メモリチャネルの複数のメモリモジュールの各メモリ用集積回路に対して複数のマイクロタイルメモリアクセスのイネーブルを試みることと、
    一意的なビットパターンを持つ書き込みキャッシュラインを、メモリチャネルのメモリの開始アドレスに書き込むことと、
    前記メモリチャネルの複数のメモリモジュールの各メモリ用集積回路に対して、複数のマイクロタイルメモリアクセスのディセーブルを試みることと、
    前記メモリチャネルのメモリの前記開始アドレスからの読み出しキャッシュラインの読み出しを要求することと、
    前記読み出しキャッシュラインおよび前記書き込みキャッシュラインのビットパターンを互いに比較して、各メモリ用集積回路に対してマイクロタイルメモリアクセスがイネーブルされているかどうか判断することと、
    前記読み出しキャッシュラインのビットパターンが前記書き込みキャッシュラインとは異なる場合、前記メモリチャネルの複数のメモリモジュールの各メモリ用集積回路に対してマイクロタイルメモリアクセスがイネーブルされていることと
    を備える方法。
  10. 前記読み出しキャッシュラインのビットパターンと前記書き込みキャッシュラインのビットパターンとが同一である場合、マイクロタイルメモリアクセスはサポートされておらず、前記メモリチャネルの複数のメモリモジュールの各メモリ用集積回路においてイネーブルされ得ない
    請求項9に記載の方法。
  11. 前記開始アドレスは、マイクロタイル方式がイネーブルされていれば、前記読み出しキャッシュラインの読み出しの要求が行われる場合、各メモリサブチャネルの前記メモリによって独立アドレスとして翻訳され解釈される
    請求項9又は10に記載の方法。
  12. 複数のマイクロタイルメモリアクセスのイネーブルを試みる前に、複数のメモリエラーを検出するべく、前記メモリチャネルの前記メモリから、前記一意的なビットパターンを持つ前記書き込みキャッシュラインを読み出す
    請求項9から11のいずれか1項に記載の方法。
  13. 前記書き込みキャッシュラインの前記一意的なビットパターンは、メモリテストパターンである
    請求項12に記載の方法。
  14. 前記書き込みキャッシュラインの前記一意的なビットパターンは、ウォーキングワン(Walking One)テストパターン、ウォーキングゼロ(Walking Zero)テストパターン、もしくはこれらの組み合わせである
    請求項12に記載の方法。
  15. 前記書き込みキャッシュラインの前記一意的なビットパターンは、チェッカーボード状のテストパターンである
    請求項12に記載の方法。
  16. メモリ用集積回路における方法であって、
    メモリアレイの複数のメモリセルに複数のデータビットから成る一意的なパターンを書き込むべく、共有開始アドレスを受け取ることと、
    複数のデータビットから成る前記一意的なパターンを、前記共有開始アドレスから始まる、前記メモリアレイの複数のメモリセルに書き込むことと、
    複数のマイクロタイルメモリアクセスをイネーブルするべく、レジスタ内のマイクロタイルイネーブルビットを設定することと、
    前記メモリアレイ内の複数のメモリセルから複数のデータビットを読み出すべく、前記共有開始アドレスとは異なる、独立した開始アドレスを受け取ることと、
    前記独立した開始アドレスから始まる、前記メモリアレイの複数のメモリセルから複数のデータビットを読み出すことと、
    複数の前記メモリセルから読み出した前記データビットと複数の前記メモリセルに書き込んだ前記データビットとを互いに比較して、複数の前記メモリセルから読み出した前記データビットが複数の前記メモリセルから書き込んだ前記データビットと異なる場合、前記メモリアレイの複数のメモリセルに対してマイクロタイルメモリアクセスがイネーブルされていると判断することと、
    を備える方法。
  17. 複数のデータビットから成る前記一意的なパターンは、メモリテストパターンである
    請求項16に記載の方法。
  18. 前記書き込みキャッシュラインの前記一意的なビットパターンは、チェッカーボード状のテストパターンである
    請求項16又は17に記載の方法。
  19. コンピュータにより実行されるプログラムであって、
    前記コンピュータにより、メモリチャネルのメモリの開始アドレスに、一意的なビットパターンを持つ第1のキャッシュラインを書き込ませ、
    前記コンピュータにより、前記メモリチャネルの各メモリモジュールに対して複数のマイクロタイルメモリアクセスのイネーブルを試みさせ、
    前記コンピュータにより、前記メモリチャネルのメモリの前記開始アドレスからの第2のキャッシュラインの読み出しを要求させ、
    前記コンピュータにより、前記第1のキャッシュラインと前記第2のキャッシュラインのビットパターンを互いに比較させて、各メモリモジュールに対してマイクロタイルメモリアクセスがイネーブルされているかどうか判断させるための
    プログラム。
  20. 前記コンピュータにより、複数のメモリ用集積回路を有するメモリモジュールの前記複数のメモリ用集積回路のそれぞれに対して複数のマイクロタイルメモリアクセスのイネーブルを試みさせ、
    前記コンピュータにより、前記複数のメモリ用集積回路のそれぞれに対してマイクロタイルメモリアクセスがイネーブルされているかどうか判断させる
    請求項19に記載のプログラム。
JP2008519583A 2005-06-30 2006-06-28 マイクロタイル方式がイネーブルされたメモリの自動検出 Expired - Fee Related JP4838843B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/172,766 US7558941B2 (en) 2005-06-30 2005-06-30 Automatic detection of micro-tile enabled memory
US11/172,766 2005-06-30
PCT/US2006/025460 WO2007005551A2 (en) 2005-06-30 2006-06-28 Automatic detection of micro-tile enabled memory

Publications (2)

Publication Number Publication Date
JP2008545201A JP2008545201A (ja) 2008-12-11
JP4838843B2 true JP4838843B2 (ja) 2011-12-14

Family

ID=37591166

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008519583A Expired - Fee Related JP4838843B2 (ja) 2005-06-30 2006-06-28 マイクロタイル方式がイネーブルされたメモリの自動検出

Country Status (7)

Country Link
US (1) US7558941B2 (ja)
EP (1) EP1896961B1 (ja)
JP (1) JP4838843B2 (ja)
KR (1) KR100947132B1 (ja)
CN (1) CN1928919B (ja)
TW (1) TWI336837B (ja)
WO (1) WO2007005551A2 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8253751B2 (en) 2005-06-30 2012-08-28 Intel Corporation Memory controller interface for micro-tiled memory access
US8878860B2 (en) * 2006-12-28 2014-11-04 Intel Corporation Accessing memory using multi-tiling
US8427497B1 (en) 2008-08-01 2013-04-23 Marvell International Ltd. Methods and apparatuses for processing cached image data
GB0916924D0 (en) * 2009-09-25 2009-11-11 Advanced Risc Mach Ltd Graphics processing systems
US9406155B2 (en) * 2009-09-25 2016-08-02 Arm Limited Graphics processing systems
US8988443B2 (en) * 2009-09-25 2015-03-24 Arm Limited Methods of and apparatus for controlling the reading of arrays of data from memory
US9349156B2 (en) 2009-09-25 2016-05-24 Arm Limited Adaptive frame buffer compression
US8661200B2 (en) * 2010-02-05 2014-02-25 Nokia Corporation Channel controller for multi-channel cache
US20110197031A1 (en) * 2010-02-05 2011-08-11 Nokia Corporation Update Handler For Multi-Channel Cache
GB201105716D0 (en) 2011-04-04 2011-05-18 Advanced Risc Mach Ltd Method of and apparatus for displaying windows on a display
US9182934B2 (en) 2013-09-20 2015-11-10 Arm Limited Method and apparatus for generating an output surface from one or more input surfaces in data processing systems
US9195426B2 (en) 2013-09-20 2015-11-24 Arm Limited Method and apparatus for generating an output surface from one or more input surfaces in data processing systems
GB2524467B (en) 2014-02-07 2020-05-27 Advanced Risc Mach Ltd Method of and apparatus for generating an overdrive frame for a display
GB2528265B (en) 2014-07-15 2021-03-10 Advanced Risc Mach Ltd Method of and apparatus for generating an output frame
US10067903B2 (en) 2015-07-30 2018-09-04 SK Hynix Inc. Semiconductor device
US11755255B2 (en) 2014-10-28 2023-09-12 SK Hynix Inc. Memory device comprising a plurality of memories sharing a resistance for impedance matching
KR102358177B1 (ko) * 2015-12-24 2022-02-07 에스케이하이닉스 주식회사 제어회로 및 제어회로를 포함하는 메모리 장치
GB2540562B (en) 2015-07-21 2019-09-04 Advanced Risc Mach Ltd Method of and apparatus for generating a signature representative of the content of an array of data
CN105138380B (zh) * 2015-09-21 2018-06-19 天脉聚源(北京)传媒科技有限公司 一种Linux系统的启动方法及装置
CN108763106B (zh) * 2018-05-31 2020-07-24 西安微电子技术研究所 一种基于交叉存储的Cache实现方法
US10949278B2 (en) * 2018-06-26 2021-03-16 Qualcomm Incorporated Early detection of execution errors
WO2020118713A1 (zh) * 2018-12-14 2020-06-18 深圳市汇顶科技股份有限公司 位宽匹配电路、数据写入装置、数据读出装置和电子设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5725052A (en) * 1980-07-22 1982-02-09 Nec Corp Memory control device
JPH056305A (ja) * 1991-06-27 1993-01-14 Oki Electric Ind Co Ltd 主記憶装置構成制御方式
JPH0695959A (ja) * 1992-09-09 1994-04-08 Hitachi Ltd 情報処理装置
JPH08297605A (ja) * 1995-04-26 1996-11-12 Hitachi Ltd データ処理装置、及びそれを用いたシステム
JPH09120371A (ja) * 1995-10-26 1997-05-06 Nec Corp メモリ制御装置
JP2000011189A (ja) * 1998-06-25 2000-01-14 Sony Corp 画像処理装置
US6076139A (en) * 1996-12-31 2000-06-13 Compaq Computer Corporation Multimedia computer architecture with multi-channel concurrent memory access
JP2001022638A (ja) * 1999-07-05 2001-01-26 Hitachi Ltd 情報処理システム

Family Cites Families (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3323109A (en) 1963-12-30 1967-05-30 North American Aviation Inc Multiple computer-multiple memory system
JPS51127626A (en) 1975-04-30 1976-11-06 Hitachi Ltd Information processor
US3988717A (en) 1975-08-06 1976-10-26 Litton Systems, Inc. General purpose computer or logic chip and system
NL7510904A (nl) 1975-09-17 1977-03-21 Philips Nv Woordgroepsprioriteitsinrichting.
US4124891A (en) 1976-11-18 1978-11-07 Honeywell Information Systems Inc. Memory access system
US4495570A (en) 1981-01-14 1985-01-22 Hitachi, Ltd. Processing request allocator for assignment of loads in a distributed processing system
US4504902A (en) 1982-03-25 1985-03-12 At&T Bell Laboratories Cache arrangement for direct memory access block transfer
JPH083805B2 (ja) 1985-06-28 1996-01-17 ヒューレット・パッカード・カンパニー Tlb制御方法
JPH0267622A (ja) 1988-09-01 1990-03-07 Kansai Nippon Denki Software Kk ディスク入出力方式
US5325510A (en) 1990-05-25 1994-06-28 Texas Instruments Incorporated Multiprocessor system and architecture with a computation system for minimizing duplicate read requests
US5251310A (en) 1990-06-29 1993-10-05 Digital Equipment Corporation Method and apparatus for exchanging blocks of information between a cache memory and a main memory
US5526507A (en) 1992-01-06 1996-06-11 Hill; Andrew J. W. Computer memory array control for accessing different memory banks simullaneously
US5459842A (en) 1992-06-26 1995-10-17 International Business Machines Corporation System for combining data from multiple CPU write requests via buffers and using read-modify-write operation to write the combined data to the memory
JP3240709B2 (ja) 1992-10-30 2001-12-25 株式会社アドバンテスト メモリ試験装置
US6804760B2 (en) * 1994-12-23 2004-10-12 Micron Technology, Inc. Method for determining a type of memory present in a system
US5649157A (en) 1995-03-30 1997-07-15 Hewlett-Packard Co. Memory controller with priority queues
WO1996041274A1 (en) 1995-06-07 1996-12-19 Advanced Micro Devices, Inc. Dynamically reconfigurable data bus
US5799209A (en) 1995-12-29 1998-08-25 Chatter; Mukesh Multi-port internally cached DRAM system utilizing independent serial interfaces and buffers arbitratively connected under a dynamic configuration
US6061773A (en) 1996-05-03 2000-05-09 Digital Equipment Corporation Virtual memory system with page table space separating a private space and a shared space in a virtual memory
US5761708A (en) 1996-05-31 1998-06-02 Sun Microsystems, Inc. Apparatus and method to speculatively initiate primary memory accesses
US5905725A (en) 1996-12-16 1999-05-18 Juniper Networks High speed switching device
US5748554A (en) * 1996-12-20 1998-05-05 Rambus, Inc. Memory and method for sensing sub-groups of memory elements
US5790118A (en) 1997-03-07 1998-08-04 International Business Machines Corporation Mobile client programmed to hide empty table elements
US5913231A (en) 1997-03-31 1999-06-15 International Business Machines Corporation Method and system for high speed memory address forwarding mechanism
US6145065A (en) 1997-05-02 2000-11-07 Matsushita Electric Industrial Co., Ltd. Memory access buffer and reordering apparatus using priorities
US6151641A (en) 1997-09-30 2000-11-21 Lsi Logic Corporation DMA controller of a RAID storage controller with integrated XOR parity computation capability adapted to compute parity in parallel with the transfer of data segments
US6122709A (en) 1997-12-19 2000-09-19 Sun Microsystems, Inc. Cache with reduced tag information storage
US6643746B1 (en) 1997-12-24 2003-11-04 Creative Technology Ltd. Optimal multi-channel memory controller system
US6438675B1 (en) 1998-03-23 2002-08-20 Ati Technologies, Inc. Variable format memory access device
US6249851B1 (en) 1998-08-25 2001-06-19 Stmicroelectronics, Inc. Computer system having non-blocking cache and pipelined bus interface unit
US6405273B1 (en) 1998-11-13 2002-06-11 Infineon Technologies North America Corp. Data processing device with memory coupling unit
US6453380B1 (en) 1999-01-23 2002-09-17 International Business Machines Corporation Address mapping for configurable memory system
US6389488B1 (en) 1999-01-28 2002-05-14 Advanced Micro Devices, Inc. Read ahead buffer for read accesses to system memory by input/output devices with buffer valid indication
US6708248B1 (en) 1999-07-23 2004-03-16 Rambus Inc. Memory system with channel multiplexing of multiple memory devices
JP2001060169A (ja) 1999-08-24 2001-03-06 Hitachi Ltd キャッシュコントローラ及びコンピュータシステム
JP2001176282A (ja) 1999-12-20 2001-06-29 Fujitsu Ltd 半導体記憶装置およびその制御方法
US6678810B1 (en) 1999-12-30 2004-01-13 Intel Corporation MFENCE and LFENCE micro-architectural implementation method and system
US6430672B1 (en) 2000-07-17 2002-08-06 International Business Machines Corporation Method for performing address mapping using two lookup tables
EP1182564A3 (en) 2000-08-21 2004-07-28 Texas Instruments France Local memory with indicator bits to support concurrent DMA and CPU access
US7006505B1 (en) 2000-10-23 2006-02-28 Bay Microsystems, Inc. Memory management system and algorithm for network processor architecture
US6745272B2 (en) 2001-04-04 2004-06-01 Advanced Micro Devices, Inc. System and method of increasing bandwidth for issuing ordered transactions into a distributed communication system
US7200759B2 (en) 2001-06-08 2007-04-03 Safenet B.V. Method and device for making information contents of a volatile semiconductor memory irretrievable
US20030056058A1 (en) 2001-09-17 2003-03-20 Alistair Veitch Logical volume data migration
US6812928B2 (en) 2002-01-30 2004-11-02 Sun Microsystems, Inc. Performance texture mapping by combining requests for image data
US20030179598A1 (en) * 2002-03-20 2003-09-25 Yu-Guang Chen Device for selectively providing read-only data
DE10216611A1 (de) 2002-04-15 2003-11-06 Infineon Technologies Ag Verfahren zum Ersetzen eines Inhalts einer Datenspeichereinheit
US6842828B2 (en) 2002-04-30 2005-01-11 Intel Corporation Methods and arrangements to enhance an upbound path
US7028200B2 (en) 2002-05-15 2006-04-11 Broadcom Corporation Method and apparatus for adaptive power management of memory subsystem
US6934804B2 (en) 2002-05-28 2005-08-23 Sun Microsystems, Inc. Method and system for striping spares in a data storage system including an array of disk drives
US6820181B2 (en) 2002-08-29 2004-11-16 Micron Technology, Inc. Method and system for controlling memory accesses to memory modules having a memory hub architecture
US6851030B2 (en) 2002-10-16 2005-02-01 International Business Machines Corporation System and method for dynamically allocating associative resources
US7130229B2 (en) 2002-11-08 2006-10-31 Intel Corporation Interleaved mirrored memory systems
US6836434B2 (en) * 2002-11-21 2004-12-28 Micron Technology, Inc. Mode selection in a flash memory device
US7255895B2 (en) 2003-01-21 2007-08-14 Bioarray Solutions, Ltd. Method for controlling solute loading of polymer microparticles
US7243172B2 (en) 2003-10-14 2007-07-10 Broadcom Corporation Fragment storage for data alignment and merger
JP4601305B2 (ja) * 2004-02-27 2010-12-22 富士通セミコンダクター株式会社 半導体装置
US7587521B2 (en) 2005-06-23 2009-09-08 Intel Corporation Mechanism for assembling memory access requests while speculatively returning data
US8332598B2 (en) 2005-06-23 2012-12-11 Intel Corporation Memory micro-tiling request reordering
US7765366B2 (en) * 2005-06-23 2010-07-27 Intel Corporation Memory micro-tiling
US8032688B2 (en) * 2005-06-30 2011-10-04 Intel Corporation Micro-tile memory interfaces
US8253751B2 (en) * 2005-06-30 2012-08-28 Intel Corporation Memory controller interface for micro-tiled memory access
US7872892B2 (en) * 2005-07-05 2011-01-18 Intel Corporation Identifying and accessing individual memory devices in a memory channel

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5725052A (en) * 1980-07-22 1982-02-09 Nec Corp Memory control device
JPH056305A (ja) * 1991-06-27 1993-01-14 Oki Electric Ind Co Ltd 主記憶装置構成制御方式
JPH0695959A (ja) * 1992-09-09 1994-04-08 Hitachi Ltd 情報処理装置
JPH08297605A (ja) * 1995-04-26 1996-11-12 Hitachi Ltd データ処理装置、及びそれを用いたシステム
JPH09120371A (ja) * 1995-10-26 1997-05-06 Nec Corp メモリ制御装置
US6076139A (en) * 1996-12-31 2000-06-13 Compaq Computer Corporation Multimedia computer architecture with multi-channel concurrent memory access
JP2000011189A (ja) * 1998-06-25 2000-01-14 Sony Corp 画像処理装置
JP2001022638A (ja) * 1999-07-05 2001-01-26 Hitachi Ltd 情報処理システム

Also Published As

Publication number Publication date
TWI336837B (en) 2011-02-01
WO2007005551A3 (en) 2007-08-16
US20070005890A1 (en) 2007-01-04
EP1896961A2 (en) 2008-03-12
KR100947132B1 (ko) 2010-03-12
JP2008545201A (ja) 2008-12-11
US7558941B2 (en) 2009-07-07
KR20080015893A (ko) 2008-02-20
CN1928919A (zh) 2007-03-14
TW200710651A (en) 2007-03-16
CN1928919B (zh) 2010-09-22
EP1896961B1 (en) 2012-08-01
WO2007005551A2 (en) 2007-01-11

Similar Documents

Publication Publication Date Title
JP4838843B2 (ja) マイクロタイル方式がイネーブルされたメモリの自動検出
JP4796627B2 (ja) メモリチャネル内の各メモリデバイスの識別およびアクセス
JP4838844B2 (ja) 方法、記憶媒体、システムおよびプログラム
JP4795434B2 (ja) マイクロタイルメモリインターフェース

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110322

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110405

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110630

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110726

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110818

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110913

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110930

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141007

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4838843

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees