(57)【要約】本発明の種々の実施形態はマルチコアメモリモジュールに向けられている。１実施形態では、メモリモジュール(500)は、少なくとも１つの仮想メモリデバイス、該少なくとも１つの仮想メモリデバイスとメモリコントローラとの間に配置されたデマルチプレクサレジスタ(502)を備える。デマルチプレクサレジスタは、メモリコントローラから該少なくとも１つの仮想メモリデバイスの１つを特定するコマンドを受け取って、該コマンドを特定された仮想メモリデバイスに送る。さらに、該少なくとも１つの仮想メモリデバイスは少なくとも１つのメモリチップを備える。
2011530735.tif 000002
【特許請求の範囲】
【請求項１】
メモリモジュール（５００）であって、
少なくとも１つのメモリチップを備える少なくとも１つの仮想メモリ装置と、
前記少なくとも１つの仮想メモリ装置及びメモリコントローラに電子的に接続されたデマルチプレクサレジスタ（５０２）
を備え、
前記デマルチプレクサレジスタは、前記メモリコントローラから前記少なくとも１つの仮想メモリ装置の１つを特定するコマンドを受け取って、該コマンドを、該コマンドにおいて特定される仮想メモリ装置に送る、メモリモジュール。
【請求項２】
前記メモリチップは、ダイナミックランダムアクセスメモリチップ（４０１−４０８）をさらに備える、請求項１のメモリモジュール。
【請求項３】
前記コマンドは、前記メモリコントローラから、時分割多重方式で前記デマルチプレクサレジスタへと送られて、各コマンドは、前記デマルチプレクサレジスタに到達し、及び、該コマンドにおいて特定される仮想メモリ装置に一定の持続時間間隔（５１５−５２０）内で送られる、請求項１のメモリモジュール。
【請求項４】
前記デマルチプレクサレジスタ（５２５）がさらに、
前記コマンドを受け取って、該コマンドにおいて特定される仮想メモリ装置の仮想メモリ装置アドレスを決定するように構成されたレジスタ（５１２）と、
前記レジスタから前記コマンド及びアドレスを受け取って、該コマンドを前記仮想メモリ装置に送るための１組の信号を選択するように構成されたデマルチプレクサ（５１４）
を備えることからなる、請求項１のメモリモジュール。
【請求項５】
前記デマルチプレクサレジスタ（５０２）がさらに、コマンドを複数のコマンドに変換し、これによって、前記デマルチプレクサレジスタがキャッシュラインをキャッシュラインセグメントに分割できるようにするカウンタを備え、
各コマンドは、前記キャッシュラインセグメントの１つに関連付けられ、前記複数のコマンド及び関連するキャッシュラインセグメントが、前記仮想メモリ装置に連続的に送られる、請求項４のメモリモジュール。
【請求項６】
前記デマルチプレクサレジスタがさらに、
少なくとも１つのコマンドセレクタであって、各コマンドセレクタは、前記少なくとも１つの仮想メモリ装置の１つに電気的に接続される、少なくとも１つのコマンドセレクタと、
前記コマンドを前記少なくとも１つのコマンドセレクタに一斉送信するように構成されたブロードキャストバス（５２８）
を備え、
各コマンドセレクタは、前記コマンドに埋め込まれている仮想メモリ装置アドレスを取り出して、該アドレスが、前記接続された仮想メモリ装置のアドレスに一致するときに、前記コマンドを該接続された仮想メモリ装置に転送するように構成され、一致しないときには、該コマンドセレクタは該コマンドを破棄する、請求項１のメモリモジュール。
【請求項７】
前記コマンドセレクタがさらに、
前記コマンドから前記仮想メモリ装置アドレスを取り出して、該アドレスが前記接続された仮想メモリ装置のアドレスに一致するときに選択信号を生成するように構成されたANDゲートと、
前記ANDゲートが前記選択信号を提供したときに、前記コマンドを受け取って、該コマンドを前記接続された仮想メモリ装置に送るように構成されたレジスタ／カウンタであって、該レジスタ／カウンタは前記ANDゲートが前記選択信号を提供しないときには、前記コマンドを破棄する、レジスタ／カウンタと、
キャッシュラインの分割を制御して、前記コマンドがより小さなキャッシュラインセグメントに入るようにするRAMタイミング制御
を備えることからなる、請求項６のメモリモジュール。
【請求項８】
前記少なくとも１つの仮想メモリ装置に電子的に接続されたデマルチプレクサレジスタ（５０２）がさらに、該デマルチプレクサレジスタと前記少なくとも１つの仮想メモリ装置の間に配置されたコマンドバスを備え、
前記コマンドバスが、前記少なくとも１つの仮想メモリ装置の各々を前記デマルチプレクサレジスタ（５０２）に接続する個別の信号線の組（５０４−５０９）から構成される、請求項１のメモリモジュール。
【請求項９】
前記メモリコントローラを前記デマルチプレクサレジスタ（５０２）に接続するコマンドパス（５１０）をさらに備える、請求項１のメモリモジュール。
【請求項１０】
前記少なくとも１つの仮想メモリ装置がさらに、誤り訂正符号情報を格納するように構成されたメモリチップ（８１２）を備える、請求項１のメモリモジュール。
【請求項１１】
少なくとも１つの仮想メモリ装置を備えるメモリモジュールを制御するための方法であって、
メモリコントローラにおいて、前記少なくとも１つの仮想メモリ装置の１つに対応するアドレスを含むようにコマンドを準備するステップ（９０１）と、
前記メモリコントローラから前記メモリモジュールのデマルチプレクサレジスタに前記コマンドを送るステップ（９０２）と、
前記少なくとも１つの仮想メモリ装置のどれが前記アドレスによって特定されるかを判定するステップ（９０３）と、
前記コマンドを前記アドレスによって特定された仮想メモリ装置に送るステップ（９０４）
を含む方法。
【請求項１２】
メモリコントローラからデマルチプレクサレジスタにコマンドを送る前記ステップがさらに、前記コマンドを時分割多重して前記デマルチプレクサレジスタへと送るステップを含み、該時分割多重されたコマンドは、一定の持続時間間隔（５１５−５２０）内で前記コマンドにおいて特定される仮想メモリ装置に送られる、請求項１１の方法。
【請求項１３】
少なくとも１つの仮想メモリ装置のどれがアドレスによって特定されるかを判定する前記ステップがさらに、前記コマンドに埋め込まれた仮想メモリ装置アドレスを読み出すステップを含む、請求項１１の方法。
【請求項１４】
前記仮想メモリ装置が少なくとも１つのメモリチップ（４０１−４０８）をさらに備える、請求項１１の方法。
【請求項１５】
コマンドをアドレスによって特定された仮想メモリ装置に送る前記ステップがさらに、
前記コマンドを複数のコマンドに変換するステップと、
前記コマンドをキャッシュラインセグメントに割り当てるステップ
を含む、請求項１１の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、メモリモジュールに関連し、特に、１つ以上のメモリチップを有する個々の仮想メモリ装置を独立に制御できるように構成されたメモリモジュールに関する。
【背景技術】
【０００２】
現代のコンピュータシステムでは、メモリの容量及び帯域幅に対する要求が高まっている。近年のマイクロプロセッサ性能のスケーリングは、チップ当たりのコアの数を増やすことに頼っており、マルチコア及び多くのコアからなるチップマルチプロセッサ（CMP:chip multi-processors）は、プロセッサ当たりに複数のメモリコントローラを使うことによってよりいっそう高いメモリ帯域幅及び容量を必要としている。そのため、メインメモリモジュールの電力量は、現在のコンピュータシステムにおけるプロセッサのそれと同程度かそれよりも大きくなっている。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかしながら、典型的なメモリモジュールはエネルギー効率が悪い。たとえば、メモリアクセス毎にあまりに多くのビットがアクティブにされ、アクセスされるビットのほとんどが使用されることなく（メモリに）再び戻されるが、これは、動的電力の浪費である。コンパイラまたはメモリコントローラによって時間的に近接した複数のメモリアクセスを組み合わせて、アクセスパターンの局在性を利用することにより１回のメモリ作動（メモリ活性化）当たりの使用ビット数を多くすることができるが、これらの試みは、不規則なアクセスパターンによりアプリケーションの性能を限定してしまう。このアプローチの効率は、一般的なアプリケーションにおけるメモリアクセスのランダム性によって制限され、かかる制限はCMPメモリシステムではさらに大きい。なぜなら、多数のスレッドからの独立したメモリアクセス要求がインターリーブされるからである。
【０００４】
システム性能を大きく犠牲にすることなくエネルギーを節約しつつ、メモリシステムに格納されている情報にアクセスすることを可能にするメモリシステムが必要とされている。
【課題を解決するための手段】
【０００５】
本発明の種々の実施形態は、マルチコアメモリモジュールに向けられている。１実施形態では、メモリモジュールは、少なくとも１つの仮想メモリ装置（本発明において、仮想メモリ装置を仮想メモリデバイスとすることもできる）、及び、この少なくとも１つの仮想メモリ装置に電子的に接続されたデマルチプレクサレジスタ、及びメモリコントローラを備える。デマルチプレクサレジスタは、メモリコントローラから該少なくとも１つの仮想メモリ装置の１つを識別（特定）するコマンド（または命令。以下同じ）を受け取って、そのコマンドを該コマンドによって識別（特定）されたその仮想メモリ装置に送る。該少なくとも１つの仮想メモリ装置の各々は、少なくとも１つのメモリチップを備える。
【図面の簡単な説明】
【０００６】
【図１Ａ】８個のメモリチップを有するメモリモジュールの等角図である。
【図１Ｂ】回路基板に搭載されたメモリモジュール及びメモリコントローラの等角図である。
【図２】１つメモリチップを構成する８個のバンクの略図である。
【図３Ａ】従来のメモリモジュールの略図である。
【図３Ｂ】従来のメモリモジュールの全てのメモリチップにコマンドを一斉に送る場合の１例を示す。
【図４Ａ】本発明のいくつかの実施形態にしたがって構成された単一のマルチコアメモリモジュールの等角図である。
【図４Ｂ】本発明のいくつかの実施形態にしたがう、回路基板に搭載されたマルチコアメモリモジュール及びメモリコントローラの等角図である。
【図５Ａ】本発明のいくつかの実施形態にしたがって構成されたマルチコア、デュアルインラインメモリモジュールの全体的な略図である。
【図５Ｂ】本発明の所定の実施形態にしたがって構成された第１のデマルチプレクサレジスタの略図である。
【図５Ｃ】本発明の他の実施形態にしたがって構成された第２のデマルチプレクサレジスタの略図である。
【図５Ｄ】本発明の他の実施形態にしたがって構成された第２のデマルチプレクサレジスタの略図である。
【図６Ａ】本発明のいくつかの実施形態にしたがって構成されたマルチコアデュアルインラインメモリモジュール及び２つの関連するデマルチプレクサレジスタの第１の例の略図である。
【図６Ｂ】本発明のいくつかの実施形態にしたがって構成されたマルチコアデュアルインラインメモリモジュール及び２つの関連するデマルチプレクサレジスタの第１の例の略図である。
【図６Ｃ】本発明のいくつかの実施形態にしたがって構成されたマルチコアデュアルインラインメモリモジュール及び２つの関連するデマルチプレクサレジスタの第１の例の略図である。
【図６Ｄ】本発明のいくつかの実施形態にしたがって構成されたマルチコアデュアルインラインメモリモジュール及び２つの関連するデマルチプレクサレジスタの第１の例の略図である。
【図７Ａ】本発明のいくつかの実施形態にしたがって構成されたマルチコアデュアルインラインメモリモジュール及び２つの関連するデマルチプレクサレジスタの第２の例の略図である。
【図７Ｂ】本発明のいくつかの実施形態にしたがって構成されたマルチコアデュアルインラインメモリモジュール及び２つの関連するデマルチプレクサレジスタの第２の例の略図である。
【図７Ｃ】本発明のいくつかの実施形態にしたがって構成されたマルチコアデュアルインラインメモリモジュール及び２つの関連するデマルチプレクサレジスタの第２の例の略図である。
【図７Ｄ】本発明のいくつかの実施形態にしたがって構成されたマルチコアデュアルインラインメモリモジュール及び２つの関連するデマルチプレクサレジスタの第２の例の略図である。
【図８】本発明のいくつかの実施形態にしたがう、誤り訂正符号をサポートするように構成されたマルチコアデュアルインラインメモリモジュールの略図である。
【図９】本発明のいくつかの実施形態にしたがう、少なくとも１つの仮想メモリ装置からなるメモリモジュールを制御するための方法の制御フロー図である。
【発明を実施するための形態】
【０００７】
本発明の種々の実施形態はマルチコアメモリモジュールに向けられており、該メモリモジュールは、システム性能に与える影響を小さくしつつメモリシステムのエネルギー効率を改善するように設計されている。該メモリモジュールは、「仮想メモリ装置」（VMD。または仮想メモリデバイス。以下同じ）と呼ばれる１つ以上のメモリチップのグループに分割される複数のメモリチップを備える。該メモリチップをダイナミックランダムアクセスメモリ（「DRAM」）チップとすることができる。各VMDは、それ自体のデータパスを有しており、コマンドバスを介して時分割多重方式で個別のメモリ要求を受け取ることができる。その結果、従来のメモリモジュールに比べて、１メモリアクセス当たりに関与するメモリチップの数が少なく、及び、（メモリに）記憶し戻されるビットの数が少ない。このメモリチップを何の変更も行うことなく使用することができ、各々のVMDにそれぞれ異なるコマンドを提供するために、このメモリモジュールのレジスタに追加される機能上の変更はほとんどない。
【０００８】
詳細な説明は次のように編成されている。最初のサブセクションにおいて、従来のメモリモジュール及び関連するエネルギーの非効率性についての一般的な説明がなされている。次のサブセクションにおいて、メモリモジュールの実施形態及びエネルギー効率の向上についての説明が提供されている。
【０００９】
メモリモジュール、及びメモリアクセス時のエネルギーの非効率性
メモリモジュールは、典型的には、「デュアルインラインメモリモジュール」（「DIMM」）と呼ばれる記憶装置を形成する、プリント回路基板に搭載されたいくつかのDRAMチップから構成される。図１Ａは、８個のDRAMチップから構成される単一のDIMMの等角図である。この場合、１つ以上のDIMMが、回路基板に搭載されて、メモリコントローラによって制御される。図１Ｂは、回路基板１０６に搭載されたメモリ１０２及びメモリコントローラ１０４の等角図である。メモリ１０２は、４つのDIMMスロット１１２−１１５に挿入された４つのDIMM１０８−１１１からなる。メモリコントローラ１０４は、中央処理装置などの、コンピュータチップ、またはマルチコアマイクロプロセッサチップの一部であり、DIMM１０８−１１１に対して送受信されるコマンド及びデータの流れを管理（及び／または制御）し、メモリ１０２をコンピュータシステムの他の主要なコンポーネントとインターフェース（接続）する。各DIMMは、インターフェース１１８を介してメモリコントローラ１０４と電気的に通信する。インターフェース１１８は、メモリコントローラ１０４からメモリ１０２にクロック信号及びコマンドを伝送し、及び、DIMM１０８−１１１とメモリコントローラ１０４間でデータ信号を伝送するバスである。データ信号は、メモリコントローラ１０４とDIMM１０８−１１１内のDRAMチップとの間を並列（または同時）に送られる。インターフェース１１８は、シングルデータレート（single-data rate：SDR）、ダブルデータレート（double-data rate：DDR）、及び、これらより高いデータレートでのデータ転送をサポートすることができる。SDRは、１クロックサイクルで１回データを送信することをいい、DDRは、コンピュータシステムクロック信号の立ち上がりエッジと立ち下がりエッジの両方においてデータを送信することをいう。メモリコントローラ１０４及びDIMM１０８−１１１を、SDR及びDDRにしたがってデータを送受信するように構成することができる。DDRにおいてクロックの両方のエッジを使用することによって、データ信号を同じ限界周波数で動作させた場合に、シングルデータレート送信に比べてデータ伝送速度（またはデータ伝送率）が２倍になる。
【００１０】
DRAMチップは、トランジスタ及びコンデンサからなるDRAMメモリセルと呼ばれる構造中に１ビットを記憶する。単一のDRAMチップ中に数十億のセルがあり、これらのセルを、「バンク」と呼ばれる多くの２次元アレイからなる２次元配列をなすように編成することができる。図２は、DRAMチップ２００を構成する０〜７で示される８個のバンクの略図である。図２の例に示すように、各バンクは、交差信号線を介して行デコーダ、センスアンプ、及び列デコーダに接続されている。たとえば、バンク０は、信号線２０４などのｘ軸に平行に走る信号線を介して行デコーダ２０２に接続されている。バンク０はまた、信号線２１０などのｙ軸に平行に走る信号線を介して、センスアンプ２０６及び列デコーダ２０８に接続されている。メモリセルは信号線の交差部に配置されている。たとえば、メモリセル２１２は、信号線２０４と２１０が交差するポイントに配置されている。
【００１１】
メモリコントローラ１０４からメモリ１０２に送られるコマンドには、READ（読み出し）、WRITE（書き込み）、ACTIVATE（活性化または起動）、REFRESH（リフレッシュ）、及び、PRECHARGE（プリチャージ）が含まれる。コマンドは、制御信号及びアドレス信号からなる。制御信号は、コマンドによって実行される動作（または処理）を表し、アドレス信号は、そのコマンドが実行されるDRAMチップ内のバンク及び行アドレスまたは列アドレスを特定する。たとえば、ACTIVATEコマンドは、活性化制御信号、並びに、該ACTIVATEコマンドが実行されるDRAMチップ内のバンク及び行を識別するバンクアドレス及び行アドレスから構成される。READ及びWRITEコマンドは、読み出し及び書き込み制御信号、並びに、該READ及びWRITEコマンドが実行されるDRAMチップ内のバンク及び列を識別するバンクアドレス及び列アドレスから構成される。
【００１２】
DRAMチップ２００のバンクに格納されたデータは２つのステップでアクセスされる。先ず、メモリコントローラ（不図示）がDRAMチップ２００の行アドレスとバンクアドレスを指定するACTIVATEコマンドを送信する。典型的には、該バンクの８または１６Ｋビットである、該行中の全てのビットが、活性化されて該バンク内のセンスアンプに送られる。次に、該バンクアドレス及び列アドレスを指定する１以上のREAD／WRITEコマンドが送信される。READ／WRITEトランザクション当たりに伝送されるビット数は、データバスの大きさとバースト長によって決まる。バースト長は、単一のバーストトランザクションまたはデータブロックの高速伝送において実行されるREAD／WRITE動作（処理）の数を制御するメモリに関連する共通の基本入力／出力システム設定値である。典型的には、バースト長は４または８に設定される。DRAMチップが、たとえばメモリREADリクエストを受け取ると、該チップは、インターフェース１１８の信号線にデータを供給することによって応答する。メモリREADリクエストに応答して送られるデータブロックの大きさは、バースト長によって決まる。６４ビット幅のデータバス（すなわち、６４個のシングルエンド信号線、または、１２８個の差分（差動）信号線）、及びバースト長４をサポートするように構成されたDRAMチップを有するメモリモジュールは、メモリコントローラからの単一のREADリクエストに応答して、３２バイト（４×６４ビット＝３２バイト）のデータブロックを送る。一方、６４ビット幅のデータバス、及びバースト長８をサポートするように構成されたDRAMチップを有するメモリモジュールは、メモリコントローラからの単一のREADリクエストに応答して、６４バイト（８×６４ビット＝６４バイト）のデータブロックを送る。
【００１３】
データが、DRAMチップの同じバンク内の２つの異なる行で読み出されるときには、第２の行のデータを読み出すことができるようになる前に、第１の行を書き戻して、ビットラインを充電し、及び、PRECHARGE及びACTIVATEコマンドによって該第２の行をラッチしなければならない。PRECHARGEコマンドは、その行をDRAMバンクに書いて戻すが、これは、ACTIVATEコマンドが破壊的読み出しを行うために必要である。バンクアドレスは、READ、WRITE、ACTIVATE、及びPRECHARGEコマンド中の少数のビットによって与えられる。これらのコマンド処理には、しばしば、同じバンクにおける最初のACTIVATEコマンドと次のACTIVATEコマンドとの間で約５０ｎｓを要する。したがって、ACTIVATEコマンドとPRECHARGEコマンドの間に多くのREAD／WRITEコマンドが存在しない場合には、コマンド／アドレス／データバスは、しばしばアイドル状態となる。しかしながら、データが異なるバンクで読み出される場合には、異なるバンクへのコマンドをパイプライン処理することができる。なぜなら、２つの異なるバンク間のACTIVATEからACTIVATEまでの時間は、約８ｎｓだけ短いからである。したがって、異なるバンクにおけるリクエスト（要求）をインターリーブすることによって、より高いスループットを達成することができ、これは、ACTIVATEコマンドとPRECHARGEコマンドの対の間にREAD／WRITEコマンドが多く存在しない場合に特にあてはまる。
【００１４】
図３Ａは、各々が８ビットデータバスを有する８個のDRAMチップを備える従来のDIMM３００の略図である。矢印３０２は、メモリコントローラ（不図示）からレジスタ３０４と呼ばれるオプションの装置に送られるコマンドの配送を表している。レジスタ３０４は、メモリコントローラとDRAMチップの間のバス上に配置されている。レジスタ３０４は、メモリコントローラからのコマンド信号をラッチし、その後、メモリコントローラに対する電気的負荷を小さくし、かつ、コマンド信号の安定性を維持するために、信号の品質及びタイミングマージンがより良好とされた状態で、該コマンド信号を各DRAMチップに転送する。レジスタ３０４は、また、１つもメモリコントローラ毎に複数のDIMMを有するシステム内のそれぞれのDIMMに対する重複するアクセスを容易にするために、コマンドをバッファリングし、及び、クロック信号をDRAMチップへと一斉に送信（以下、「一斉に送信」には、同時送信ではない配信、または同報送信が含まれる）することができる。分岐した矢印３０６及び３０８によって示すように、レジスタ３０４は、これらのコマンドをバスを介して８個の全てのDRAMチップに一斉に送信する。他の従来のメモリモジュールでは、コマンドは、レジスタ３０４なしでDRAMチップに一斉に送られる。
【００１５】
図３Ｂは、従来のDIMM動作の１例を示す。図３Ｂの例に示すように、DIMM３００内の全てのDRAMチップは、メモリコントローラから同じコマンドを受け取って、影付きの領域３１０によって表されている各DRAMチップ内の同じ行を活性化する。この結果、DIMM３００内の全てのDRAMチップは、より広いデータパス及びより大きな行を有する単一のDRAMチップとして動作する。
【００１６】
図２を参照して上述したように、DRAMチップの行のサイズ（大きさ）は典型的には８（すなわち１６Ｋビット）である。DIMMに対するキャッシュラインを読み出し、または、キャッシュラインに書き込むために、READ／WRITEコマンドが全てのDRAMチップに一斉に送信され、各DRAMチップは同じ行を活性化する。換言すれば、８個のDRAMチップから構成される典型的なDIMMにおいて、各DRAMチップは、８Ｋビットからなる同じ行アドレスを活性化する。したがって、１つのDIMMの８×８Ｋビットすなわち６４ＫビットのDRAMセルが一度に活性化されるが、これは、読み出しまたは書き込みが行われることになるキャッシュラインのサイズよりも大きい。典型的なキャッシュラインは、６４バイトすなわち５１２ビットのオーダーである。したがって、READ及びWRITEコマンドは、典型的には、活性化されたDRAMセルの１％未満を使用して１つのキャッシュラインにおいて読み出され、または、書き込まれるので、活性化されているDRAMセルの９９％以上が、単一のREADまたはWRITEトランザクションに対して使用されず、エネルギーの使用効率が悪い。
【００１７】
本発明の実施形態
本発明のメモリモジュールの実施形態は、メモリコントローラからコマンドを受け取るためのデマルチプレクサレジスタ（「demux register」）を導入する。メモリチップをVMDにグループ化することができ、該メモリチップは、demux registerと共にプリント回路基板に搭載されて、「マルチコアデュアルインラインメモリモジュール」（「MCDIMM」）と呼ばれる単一の記憶装置を形成する。いくつかの実施形態では、メモリチップをDRAMチップとすることができる。図４Ａは、本発明のいくつかの実施形態にしたがって構成された、回路基板４１２に配置された８個のDRAMチップ４０１−４０８、及びdemux register４１０から構成される単一のMCDIMM４００の等角図である。これらのDRAMチップ４０１−４０８を１つ以上のDRAMチップからなるVMDにグループ化することができる。この例については、より詳細に後述する。
【００１８】
従来のDIMMと同様に、１つ以上のMCDIMMを回路基板に搭載して、メモリコントローラによって制御することができる。図４Ｂは、本発明のいくつかの実施形態にしたがう、回路基板４２４に搭載されたメモリ４２０及びメモリコントローラ４２２の等角図である。メモリ４２０は、DIMMスロット４３０−４３３にそれぞれ挿入されたMCDIMM４２６−４２９から構成される。MCDIMM４００は、メモリコントローラ４２２とメモリモジュール４２６−４２９のdemux registerとの間にインターフェース４３４を有する。インターフェース４３４は、メモリコントローラ４２２からメモリ４２０へとコマンド信号を送るバス、及び、メモリコントローラ４２２とメモリ４２０の間でデータ信号を伝送するデータバスを備える。このアーキテクチャでは、メモリコントローラ４２２によって送られるコマンドは、メモリ４２０のDRAMチップに一斉送信はされない。その代わり、メモリコントローラ４２０は、MCDIMM４２６−４２９のdemux registerにコマンドを送る。MCDIMM４２６−４２９の各々は、demux registerがコマンドをVMDに直接遅れるようにするコマンドバスを備える。
【００１９】
図５Ａは、本発明のいくつかの実施形態にしたがって構成されたMCDIMM５００の全体的な略図である。MCDIMM５００はｎ個のVMDを備える。ここで、ｎは、MCDIMM５００内のVMDの数を表す整数である。VMDの各々は、図５Ａに表されており、VMDｋによって示されている。ここで、下付き文字ｋは、０〜ｎ−１の範囲の整数である。MCDIMM５００は、VMDの各々が別個の組をなす信号線を介してdemux register５０２に接続されるように構成されている。demux register５０２の２つの異なる実施形態については、図５Ｂと図５Ｃを参照して後述する。たとえば、VMD０、VMD１、VMDｋ、VMDｋ＋１、VMDｎ−２、VMDｎ−１が、信号線の組５０４−５０９を介してdemux register５０２に接続される。VMDをdemux register５０２に接続する信号線の組み合わされた組は、「コマンドバス」と呼ばれる。各VMDを、DRAMチップなどの１つ以上のメモリチップから構成することができる。メモリコントローラ（不図示）からMCDIMM５００に送信されたコマンドは、「コマンドパス」と呼ばれる１組の信号線５１０を介してdemux register５０２に到達する。VMDの各々は、図５Ａにおいて、両矢印５１１などの両矢印によって識別される別個のデータバスでメモリコントローラとデータをやりとりする。
【００２０】
図５Ｂは、本発明のいくつかの実施形態にしたがって構成された第１のdemux register５２５の略図である。demux register５２５は、レジスタ５１２とデマルチプレクサ５１４から構成される。demux register５２５は、メモリコントローラから、図５Ａのコマンドパス５１０を介してコマンドを受け取る。これらのコマンドは時分割多重される。換言すれば、各コマンドは、持続時間間隔が一定のタイムスロットでメモリコントローラからdemux register５２５に送られるビットストリームに符号化される。図５Ｂにおいて、時分割多重されたコマンドのタイムスロットは、一連の矩形５１５−５２０によって表されている。図５Ｂに示されているコマンドの各々は、該コマンドを受け取ることが意図されている図５ＡのVMDのインデックスを含んでいる。それらのコマンドがdemux register５２５に送られる順番は、メモリコントローラによって決定される。したがって、それらのコマンドは、その順番で図５Ｂに現れている。実行されることになる特定の種類の動作（処理や演算）を識別する制御信号、バンクや行や列を識別するアドレス信号、及び、メモリコントローラによってコマンドを受け取るように割り当てられた特定のVMDを識別するVMDアドレスが、コマンドに埋め込まれている。たとえば、あるコマンドが特定のVMDに送られようとしているときには、メモリコントローラは、そのVMDを特定するVMDアドレスを含むコマンドを生成する。一般に、VMDアドレスは、log２ｎ個のビットからなるビット列である。
【００２１】
レジスタ５１２は、コマンドを受け取ってそれを一時的に格納するバッファである。デマルチプレクサ５１４は２つの入力を備える。矢印５２２、５２４によって示されているように、レジスタは、一方の入力にコマンドを送り、他方の入力にVMDアドレスを送る。デマルチプレクサ５１４は、VMDアドレスを使用して、該VMDアドレスによって特定されるVMDに通じているコマンドバスのうちの適切な信号線の組を選択する。図５Ｂにおいて、コマンドバスの信号線のｎ個の組のうちの６個の組が、それらの信号線の組５０４−５０９に対応する矢印５０４−５０９によって示されており、かつ、図５Ａに示す関連するVMDのインデックスでラベル付けされている。各コマンドは、次のコマンドが処理される前に、特定の時間間隔内でdemux register５２５によって別個に処理されることに注意されたい。
【００２２】
たとえば、図５Ａ及び図５Ｂに関して、メモリコントローラがコマンドk-1 ５１９をVMDｋに送る場合を考える。図５Ａにおいて、コマンドk-1 ５１９は、コマンドパス５１０に沿ってdemux register５２５へと送られる。図５Ｂに示すように、レジスタ５１２は、コマンドk-1 ５１９を受け取ってそれを一時的に格納し、VMDアドレス及び該コマンドがデマルチプレクサ５１４に送られ、該デマルチプレクサは、次に、適切な信号線の組５０６を選択して、該コマンドk-1 ５１９を図５ＡのVMDｋに送る。コマンドk-1 ５１９が送られた後、次のコマンド1 ５１８が同様にして処理される。
【００２３】
図５Ｂに示すように、demux register５２５は、信号線の各組に関連付けられたカウンタをオプションとして備える。カウンタは、VMDのDRAMチップがキャッシュラインのREADまたはWRITEトランザクションに関連する長いバースト長をサポートできないときに必要になりうる。demux registerは、キャッシュラインをキャッシュラインセグメントに分割して、該コマンドを、各々が１つのキャッシュラインセグメントに対応する複数のコマンドに変換する。したがって、VMDに送られる各キャッシュラインセグメントは、カウンタによって送られる対応するコマンドの後にくる。たとえば、VMDの１つ以上のDRAMチップのバースト長を１つのキャッシュラインをカバーするのに十分な長さに設定できない場合には、カウンタは、READまたはWRITEなどの列レベルのコマンドを、各キャッシュラインセグメントに対する複数のREAD／WRITEコマンドに変換して、各キャッシュラインセグメントを、該DRAMチップに対して別個にREAD（読み出し）またはWRITE（書き込み）できるようにする。各カウンタは、分割されたキャッシュライン用に生成されたコマンドの数を追跡する（把握して記憶する）計数装置を備える。カウンタによって実行される変換は、メモリコントローラからのコマンド帯域幅を節約する。
【００２４】
図５Ｃは、本発明のいくつかの実施形態にしたがって構成された第２のdemux register５２７の略図である。demux register５２７は、０〜ｎ−１で示されているｎ個のコマンドセレクタと１つのブロードキャストバス(broadcast bus。または同報通信バス)５２８を備えており、１つのコマンドセレクタが、図５Ａに示すｎ個のVMDの各々に対応する。図５Ｂを参照して上述したように、メモリコントローラは、時分割多重されたコマンド５１５−５２０を、コマンドパス５１０を通じてdemux register５２７に送る。コマンドセレクタは、分岐５２９−５３４を介してブロードキャストバス５２８に電子的に接続されており、各コマンドセレクタは、コマンドバスの１組の信号線を介してVMDの１つに接続されている。図５Ｃにおいて、コマンドバスの信号線のｎ個の組のうちの６個の組が、該信号線の組５０４−５０９に対応する矢印５０４−５０９によって示されており、かつ、図５Ａに示す関連するVMDのインデックスでラベル付けされている。図５Ｃに示すように、各コマンドは、ｎ個の全てのコマンドセレクタに一斉に送信される。各コマンドセレクタは、コマンドに埋め込まれたVMDアドレスを抽出して、該コマンドを対応するVMDに送るべきか、または、該コマンドは異なるVMDにアドレス指定されているかを判定するように構成されている。後者と判定された場合には、該コマンドは破棄される。したがって、ｎ個の全てのコマンドセレクタに一斉送信される各コマンドについて、該コマンドは、コマンドセレクタのうちの１つによってのみ対応するVMDに送られる。たとえば、demux register５２７は、コマンドn-2 ５２０を受け取って、それを、ｎ個の全てのコマンドセレクタ０〜ｎ−１に一斉に送る。しかしながら、コマンドn-2 ５２０は、VMDｎ−２のアドレスを含んでいるので、コマンドセレクタｎ−２は、該コマンドn-2 ５２０を信号線の組５０８を介してVMDｎ−２に送り、他のコマンドセレクタは該コマンドn-2 ５２０を破棄する。各コマンドは、次のコマンドが処理される前に、特定の時間間隔内でdemux register５２７によって別個に処理されることに留意されたい。
【００２５】
図５Ｄは、本発明のいくつかの実施形態にしたがって構成された例示的なコマンドセレクタｎ−２の略図である。他のｎ−１個のコマンドセレクタも同様に構成される。コマンドセレクタｎ−２は、ANDゲート５３０、レジスタ／カウンタ５３２、及び、ランダムアクセスメモリ（「DRAM」）タイミング制御５３４を備える。コマンドは、分岐５３３においてコマンドセレクタｎ−１に入力される。ANDゲート５３０は、各コマンドに埋め込まれたVMDアドレスを抽出して、システムクロック信号を受け取る。ANDゲート５３０は、抽出されたVMDアドレスが対応するVMDｎ−２のアドレスに一致するときに、レジスタ／カウンタ５３２に選択信号を送るように構成されている。レジスタ／カウンタは、クロック信号を受け取って、該レジスタ／カウンタがいつコマンドをラッチするかを決定する。レジスタ／カウンタを、クロックの立ち上がりエッジ及び／またはクロックの立ち下がりエッジ毎に選択信号にしたがって動作するように構成することができる。レジスタ／カウンタ５３２はバッファであり、選択信号をANDゲート５３０から受け取ったときに、コマンドを一時的に格納して、該コマンドを対応するVMDｎ−２に送る。レジスタ／カウンタ５３２はまた、図５Ｂを参照して上述したように、キャッシュライン及びコマンドの分割を実行するカウンタを備える。RAMタイミング制御５３４は、レジスタ／カウンタ５３２のカウンタ部分を制御する。
【００２６】
一般的に、ANDゲートは、全ての入力信号がビット「１」に対応しているときにビット「１」に対応する信号を出力し、入力信号のうちの少なくとも１つがビット「０」に対応しているときにビット「０」に対応する信号を出力する。ここで、ビット「１」、「０」は、それぞれ、信号の高電圧、低電圧を表すことができる。コマンドセレクタ０〜ｎ−１のANDゲートは、いくつかの入力信号線上にインバータ（反転器）を備えることができる。インバータは、ビット「０」に関連付けられた信号をビット「１」に関連付けられた信号に変換し、または、その逆も同じである。ANDゲートは、対応するVMDを表すVMDアドレスを全てのビットが「１」ビットからなるビットストリームに変換するために、いくつかの入力信号線上にインバータを備える。この場合、ANDゲートは、ビット「１」に対応する選択信号をレジスタ／カウンタ５３２に出力する。たとえば、VMDｎ−２のVMDアドレスがビットストリーム１１．．．１１０１である場合を想定する。ANDゲート５３０は、線５３８においてANDゲート５３０に入力される信号の電圧を反転させるインバータ５３６を備える。したがって、図５Ｄに示すように、コマンド内に埋め込まれたVMDアドレスが該アドレス１１．．．１１０１と一致するときには、該アドレスは、１１．．．１１１１に変換され、ANDゲート５３０は、ビット「１」を表す選択信号をレジスタ／カウンタ５３２へと出力し、該レジスタ／カウンタ５３２は、該クロックによって表明されたときにコマンドをラッチして信号線の組５０８上に送り出す。他のアドレスについては、ANDゲート５３０に入るビットストリームは少なくとも１つの「０」ビットを有し、ANDゲート５３０は、信号を出力しないか、ビット「０」に対応する低（レベル）信号を出力する。したがって、レジスタ／カウンタ５３２は、コマンドをラッチして１組の信号線５０８上に送り出すことをしない。
【００２７】
次に、図６〜図８を参照して、いくつかの異なるMCDIMMの実施形態を説明する。各実施形態は、異なるdemux register及びコマンドバス構成を有しているが、本発明のいくつかの実施形態にしたがって構成することが可能な異なる全てのdemux register及びコマンドバスを網羅することは決して意図されていない。
【００２８】
図６Ａ、図６Ｂは、それぞれ、本発明のいくつかの実施形態にしたがって構成されたMCDIMM６００、それに関連するdemux register６０２の略図である。図６Ａに示すように、MCDIMM６００は８個のVMDを備えており、該VMDの各々は、１〜８でラベル付けされた単一のDRAMチップを備えている。コマンドバスは、DRAM１〜８の各々をdemux register６０２に接続する８個の組の信号線６０４〜６１１から構成されている。コマンドは、コマンドパス６１２を通ってメモリコントローラ（不図示）からdemux register６０２に送られる。ｌｏｇ２ｎ（ｎは８）にしたがって、DRAM１〜８の各々を、３ビットのVMDアドレス０００、００１、０１０、０１１、１００、１０１、１１０、１１１の１つに割り当てることができ、これらは、メモリコントローラからdemux register６０２に送られるコマンドに含められる。DRAMチップ１〜８の各々は、コマンドバスを通じて異なるコマンドを受け取り、他のDRAMチップとは独立して、両矢印６１３などの両矢印で示されているように、各自のデータバスを介してデータを転送する。
【００２９】
いくつかの実施形態では、図６Ｂのdemux register６０２は、レジスタ６１４及びデマルチプレクサ６１６を備える。メモリコントローラは、VMDアドレスを有する各コマンド（該VMDアドレスは、該コマンドを受信することになるDRAMチップに対応する）を準備する。図６Ｂの例に示すようように、コマンドの各々は、時分割多重されており、DRAMチップ１〜８の１つに関連付けられている整数でラベル付けされた矩形によって表されている。レジスタ６１４は、コマンドの各々を順次（または連続して）受け取って、VMDアドレスを読み出し、矢印６１８、６２０でそれぞれ示されているように、該VMDアドレス及びコマンドを、デマルチプレクサ６１６の別個の入力に送る。デマルチプレクサ６１６は、VMDアドレスを使用して、該コマンドをVMDまで伝送する適切な信号線の組６０４〜６１１を選択する。demux register６０２は、オプションとして、VMDが長いバーストキャッシュラインをサポートできないときに実装されることができるカウンタを備える。
【００３０】
コマンドをMCDIMM６００に送る１例は、メモリコントローラが、DRAMチップ３に提供されることが意図されたコマンドを、コマンドパス６１２に沿ってdemux register６０２に送ることから開始する。図６Ｂに示すように、レジスタ６１４は、コマンド３ ６２４を受け取って、DRAMチップ３のVMDアドレス及びコマンドを、信号線６１８及び６２０に沿ってデマルチプレクサ７１６に送信する。このVMDアドレスに基づいて、デマルチプレクサ６１６は、信号線の組６０６を選択して、該コマンドをDRAMチップ３に送る。
【００３１】
他の実施形態では、図６Ｃのdemux register６０２は、０〜７で示されている８個のコマンドセレクタを備える。各コマンドは、７つの全てのコマンドセレクタに一斉に送られる。各コマンドセレクタは、コマンドに埋め込まれたVMDアドレスを取り出して、該コマンドを対応するVMDに送るべきか、または、該コマンドは異なるVMDにアドレス指定されていて破棄されるのかを判定する。たとえば、図６Ｃのdemux register６０２は、コマンド３を受け取って、ブロードキャストバス６２６を介して該コマンドを７つの全てのコマンドセレクタに一斉に送る。しかしながら、コマンド３ ６２４は、VMD３のアドレスを含んでいるので、コマンドセレクタ３は、該コマンド３ ６２４を信号線の組６０７を介してVMD３に送り、他のコマンドセレクタは該コマンド３ ６２４を破棄する。
【００３２】
図６Ｄは、本発明のいくつかの実施形態にしたがって構成されたコマンドセレクタ３の略図である。コマンドセレクタ３は、ANDゲート６２８、レジスタ／カウンタ６３０、及び、RAMタイミング制御６３２を備える。他のコマンドセレクタも同様に構成されている。コマンドは、分岐６３４を通ってコマンドセレクタ３に入力される。ANDゲート６２８は、各コマンドのVMDアドレス部を抽出して、レジスタ／カウンタ６３０がいつ選択されたかを判定する。VMDアドレスがANDゲート６２８に入力されると、インバータ６３６は、線６３８を通ってANDゲート６２８に入力されるビット値を反転する。したがって、コマンドに埋め込まれたVMDアドレスが、VMD２の３ビットアドレス０１１に一致するときには、このアドレスは１１１に変換され、ANDゲート６２８は、ビット「１」に対応する選択信号を出力し、そうでない場合には、レジスタ／カウンタ６３０へは選択信号は送られない。クロック信号もレジスタ／カウンタ６３０に入力され、これによって、レジスタ／カウンタ６３０が、クロック信号の立ち上がりエッジ及び／または立ち下がりエッジで該コマンドをラッチするようにする。
【００３３】
図６Ａ及び図６ＢのMCDIMM６００の例では、１つのメモリアクセス要求に対して１つのDRAMチップだけが関与する。DRAMチップの影付き領域は、異なるコマンドに関連する異なる別個のメモリ要求を表している。各DRAMチップは、コマンドバスを通じてコマンドを受け取り、各自のデータバスを用いて独立にデータを転送する。したがって、より少ないビットが活性化され、活性化及びプリチャージのためのエネルギーが節約される。しかしながら、従来のDIMMよりもデータを配信するのに必要な時間は長くなりうる。なぜなら、データバスのサイズが、従来のDIMMにおけるデータバスのサイズよりも小さいからである。データを転送するために、該データを、直列化された（または連続した）より小さなデータ部分に分割することができ、この場合、各部分は、VMDからメモリコントローラに別々に送られる。しかしながら、データを直列化することによって、データを送るのに必要な時間量が、従来のDIMMからメモリコントローラにデータを送るのに比べて長くなる。直列化により追加されるこの遅れ（待ち時間）の問題は、システム性能に悪影響を与える場合がある。MCDIMMを２つ以上のDRAMチップを有するVMDで構成することによって、この直列化による遅れの問題を軽減することができる。
【００３４】
図７Ａ及び図７Ｂは、それぞれ、本発明のいくつかの実施形態にしたがって構成されたMCDIMM７００、これに関連するdemux register７０２の略図である。図７Ａに示すように、MCDIMM７００は、VMDｋによって示される４つのVMDを備える。ここで、ｋは１〜４の範囲の整数である。VMDの各々は２つのDRAMチップを備える。コマンドバスは、VMDの各々をdemux register７０２に接続する信号線の４つの組７０４〜７０７から構成される。コマンドは、コマンドパス７０８に沿ってメモリコントローラ（不図示）からdemux register７０２に送られる。ｌｏｇ２ｎ（ｎは４）にしたがって、VMDの各々を、２ビットのVMDアドレス００、０１、１０、及び１１の１つに割り当てることができ、これらは、コマンドを受け取ることが意図されているVMDを識別するためにコマンドに含められている。VMDの各々は、コマンドバスを通じて異なるコマンドを受け取り、他のVMDとは独立して、両矢印７０９などの両矢印によって示されているように、各自のデータバスを介してデータを転送する。
【００３５】
図７Ｂにおいて、demux register７０２は、レジスタ７１０及びデマルチプレクサ７１２を備える。コマンドの各々は、時分割多重され、MCDIMM７００のVMDの１つを識別する整数でラベル付けされた矩形によって表されている。レジスタ７０１は、コマンドの各々を順次（または連続して）受け取って、DRAMアドレスを読み出し、該DRAMアドレス及びコマンドを、それぞれ信号線７１４、７１６に沿ってデマルチプレクサ７１２に送る。デマルチプレク７１２は、VMDアドレスを用いて、該コマンドを、信号線の組７０４〜７０７のうちの適切な組を通じてVMDに送る。
【００３６】
図７Ｃにおいて、demux register７０２は、０〜３で示されている４つのコマンドセレクタを備える。各コマンドは、ブロードキャストバス７１８を介して４つの全てのコマンドセレクタに一斉に送られる。これらのコマンドセレクタは、コマンドに埋め込まれたVMDアドレスを取り出して、そのコマンドを対応するVMDに送るべきか、または、そのコマンドは破棄されるべきかを判定する。
【００３７】
図７Ｄは、本発明のいくつかの実施形態にしたがって構成されたコマンドセレクタ２の略図である。コマンドセレクタ２は、ANDゲート７２０、レジスタ／カウンタ７２２、及び、RAMタイミング制御７２４を備える。コマンドは、分岐７２６を通じてコマンドセレクタ２に入力される。ANDゲート７２０は、各コマンドのVMDアドレス部を抽出して、レジスタ／カウンタ７２２がいつ選択されたかを判定する。VMDアドレスが２ビットのVMDアドレス１０に一致するときには、このアドレスは１１に変換され、ANDゲート７２０は、ビット「１」に対応する選択信号をレジスタ／カウンタ７２２へと出力し、そうでない場合には、レジスタ／カウンタ７２２へは選択信号は送られず、該コマンドは破棄される。レジスタ／カウンタ７２２へのクロック信号入力は、該クロック信号の立ち上がりエッジ及び／または立ち下がりエッジで該コマンドをラッチする。
【００３８】
図７Ａ及び図７ＢのMCDIMM７００の例では、DRAMチップの同様に影付けされた領域によって表されている２つのDRAMチップが、１つのメモリアクセス要求毎に関与する。各VMDのDRAMチップは、コマンドバスを通じてコマンドを受け取り、関連するデータバスを用いて独立にデータを転送する。したがって、活性化されるビットは従来のDIMMよりも少ないが、MCDIMM６００と同様に、直列化による問題が依然として生じえ、同じデータ量を転送するのに従来のDIMMよりも多くの時間が必要になる場合がある。demux register７０２はまた、オプションとして、キャッシュラインに書き込むのに多くのバーストが必要になるときにカウンタを備えることに留意されたい。
【００３９】
個々のメモリセルの破壊を招くことが多いソフトエラーからデータ及びデータ転送を保護するために、DRAMチップをグループ化して、誤り訂正符号（「ECC」）をサポートすることもできる。典型的には８ビットのデータ毎に１つのECCビットを付加し、通常、並列構成の８個DRAMチップではなく並列構成の９個のDRAMチップを同時にアクセスすることによって、ECCを実施することができる。したがって、いくつかの実施形態では、個々のDRAMチップを、追加のデータセル、並びに、８ビットデータパスではなく９ビットデータパスを介して出力されるバスビットを有するように構成することができる。
【００４０】
他の実施形態では、チップのアドレス範囲の一部をECCビット専用に割り当てることができ、demux registerの同じコマンド変換機能を用いて、データ及びECCビットを１つのグループで転送することができる。
【００４１】
さらに他の実施形態では、１つのVMDにつき、記憶容量が低い個別のDRAMチップを複数のDRAMチップと対にすることができる。図８は、本発明のいくつかの実施形態にしたがう、ECCをサポートするように構成されたMCDIMM８００の略図である。図８の例に示すように、MCDIMM８００は、コマンドパス８０４を介してメモリコントローラ（不図示）からコマンドを受け取るdemux register８０２、及び、信号線の４つの組８０６〜８０９から構成されるコマンドバスを備える。信号線の各組は、コマンドをVMDの各々まで伝送する。MCDIMM８００は、各VMDが追加の小容量のDRAMチップを有することを除いて、MCDIMM７００とほとんど同じである。たとえば、VMD２は、データを格納するために使用される２つの正規のDRAMチップ８１０、８１１と、ECCビットを格納するための比較的記憶容量が小さい追加のDRAMチップ８１２を備える。各VMDのデータ及びECCビットを、データバス上に別々に読み出すことができる。
【００４２】
図９は、本発明のいくつかの実施形態にしたがう、少なくとも１つの仮想メモリ装置を備えるメモリモジュールを制御するための方法の制御フロー図である。ステップ９０１において、メモリコントローラは、メモリモジュールのVMDの１つによって受信されることになるコマンドを、該１つのVMDに割り当てられたアドレスを該コマンド内に符号化することによって準備する。ステップ９０２において、メモリコントローラは、そのコマンドを該メモリモジュールのdemux registerに送る。このコマンドは、図５Ａを参照して上述したように、コマンドパスを介してdemux registerによって受信される。ステップ９０３において、demux registerは、該コマンドのVMDアドレスを読み出すレジスタを有しており、図５Ｂを参照して上述したように、どのVMDが該コマンドを受け取ることになるかを判定する。ステップ９０４において、図５Ａ及び図５Ｂを参照して上述したように、レジスタは、VMDに送られるコマンドを乗せるコマンドバスの適切な信号線の組を該アドレスに基づいて選択するデマルチプレクサに、該コマンド及びアドレスを送る。ステップ９０５において、該方法は、（はじめに）戻って、次のメモリリクエストのためにステップ９０１〜９０４が繰り返される。
【００４３】
上記説明は、説明を目的としたものであって、本発明を十分に理解できるように特定の用語を使用した。しかしながら、本発明を実施するために特定の細部が必要ではないことは当業者には明らかであろう。本発明の特定の実施形態の上記説明は、例示と説明のために提示されたものである。それらは、本発明を網羅することも、本発明を開示した形態そのものに限定することも意図していない。上記の教示に照らして多くの修正形態及び変形形態が可能であることは明らかである。それらの実施形態は、本発明の原理及びそれの実用上の適用を最良に説明し、これによって、当業者が、意図する特定の用途に適するように本発明及び種々の実施形態を様々に改変して最良に利用できるようにするために、図示し説明されている。本発明の範囲は、添付の特許請求の範囲及びそれの等価物によって画定されることが意図されている。
【図１Ａ】
2011530735.tif 000003
【図１Ｂ】
2011530735.tif 000004
【図２】
2011530735.tif 000005
【図３Ａ】
2011530735.tif 000006
【図３Ｂ】
2011530735.tif 000007
【図４Ａ】
2011530735.tif 000008
【図４Ｂ】
2011530735.tif 000009
【図５Ａ】
2011530735.tif 000010
【図５Ｂ】
2011530735.tif 000011
【図５Ｃ】
2011530735.tif 000012
【図５Ｄ】
2011530735.tif 000013
【図６Ａ】
2011530735.tif 000014
【図６Ｂ】
2011530735.tif 000015
【図６Ｃ】
2011530735.tif 000016
【図６Ｄ】
2011530735.tif 000017
2011530735.tif 000018
【図７Ｂ】
2011530735.tif 000019
【図７Ｃ】
2011530735.tif 000020
【図７Ｄ】
2011530735.tif 000021
【図８】
2011530735.tif 000022
【図９】
2011530735.tif 000023
【国際調査報告】
2011530735.tif 000024
2011530735.tif 000025