JP5231642B2 - メモリモジュール内の独立制御式仮想メモリ装置 - Google Patents

メモリモジュール内の独立制御式仮想メモリ装置 Download PDF

Info

Publication number
JP5231642B2
JP5231642B2 JP2011522033A JP2011522033A JP5231642B2 JP 5231642 B2 JP5231642 B2 JP 5231642B2 JP 2011522033 A JP2011522033 A JP 2011522033A JP 2011522033 A JP2011522033 A JP 2011522033A JP 5231642 B2 JP5231642 B2 JP 5231642B2
Authority
JP
Japan
Prior art keywords
command
virtual memory
register
address
memory device
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.)
Active
Application number
JP2011522033A
Other languages
English (en)
Other versions
JP2011530735A (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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of JP2011530735A publication Critical patent/JP2011530735A/ja
Application granted granted Critical
Publication of JP5231642B2 publication Critical patent/JP5231642B2/ja
Active 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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
    • 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
    • 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
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • G11C5/04Supports for storage elements, e.g. memory modules; Mounting or fixing of storage elements on such supports
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/12Group selection circuits, e.g. for memory block selection, chip selection, array selection
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Dram (AREA)

Description

本発明の実施形態は、メモリモジュールに関連し、特に、1つ以上のメモリチップを有する個々の仮想メモリ装置を独立に制御できるように構成されたメモリモジュールに関する。
現代のコンピュータシステムでは、メモリの容量及び帯域幅に対する要求が高まっている。近年のマイクロプロセッサ性能のスケーリングは、チップ当たりのコアの数を増やすことに頼っており、マルチコア及び多くのコアからなるチップマルチプロセッサ(CMP:chip multi-processors)は、プロセッサ当たりに複数のメモリコントローラを使うことによってよりいっそう高いメモリ帯域幅及び容量を必要としている。そのため、メインメモリモジュールの電力量は、現在のコンピュータシステムにおけるプロセッサのそれと同程度かそれよりも大きくなっている。
しかしながら、典型的なメモリモジュールはエネルギー効率が悪い。たとえば、メモリアクセス毎にあまりに多くのビットがアクティブにされ、アクセスされるビットのほとんどが使用されることなく(メモリに)再び戻されるが、これは、動的電力の浪費である。コンパイラまたはメモリコントローラによって時間的に近接した複数のメモリアクセスを組み合わせて、アクセスパターンの局在性を利用することにより1回のメモリ作動(メモリ活性化)当たりの使用ビット数を多くすることができるが、これらの試みは、不規則なアクセスパターンによりアプリケーションの性能を限定してしまう。このアプローチの効率は、一般的なアプリケーションにおけるメモリアクセスのランダム性によって制限され、かかる制限はCMPメモリシステムではさらに大きい。なぜなら、多数のスレッドからの独立したメモリアクセス要求がインターリーブされるからである。
システム性能を大きく犠牲にすることなくエネルギーを節約しつつ、メモリシステムに格納されている情報にアクセスすることを可能にするメモリシステムが必要とされている。
本発明の種々の実施形態は、マルチコアメモリモジュールに向けられている。1実施形態では、メモリモジュールは、少なくとも1つの仮想メモリ装置(本発明において、仮想メモリ装置を仮想メモリデバイスとすることもできる)、及び、この少なくとも1つの仮想メモリ装置に電子的に接続されたデマルチプレクサレジスタ、及びメモリコントローラを備える。デマルチプレクサレジスタは、メモリコントローラから該少なくとも1つの仮想メモリ装置の1つを識別(特定)するコマンド(または命令。以下同じ)を受け取って、そのコマンドを該コマンドによって識別(特定)されたその仮想メモリ装置に送る。該少なくとも1つの仮想メモリ装置の各々は、少なくとも1つのメモリチップを備える。
8個のメモリチップを有するメモリモジュールの等角図である。 回路基板に搭載されたメモリモジュール及びメモリコントローラの等角図である。 1つメモリチップを構成する8個のバンクの略図である。 従来のメモリモジュールの略図である。 従来のメモリモジュールの全てのメモリチップにコマンドを一斉に送る場合の1例を示す。 本発明のいくつかの実施形態にしたがって構成された単一のマルチコアメモリモジュールの等角図である。 本発明のいくつかの実施形態にしたがう、回路基板に搭載されたマルチコアメモリモジュール及びメモリコントローラの等角図である。 本発明のいくつかの実施形態にしたがって構成されたマルチコア、デュアルインラインメモリモジュールの全体的な略図である。 本発明の所定の実施形態にしたがって構成された第1のデマルチプレクサレジスタの略図である。 本発明の他の実施形態にしたがって構成された第2のデマルチプレクサレジスタの略図である。 本発明の他の実施形態にしたがって構成された第2のデマルチプレクサレジスタの略図である。 本発明のいくつかの実施形態にしたがって構成されたマルチコアデュアルインラインメモリモジュール及び2つの関連するデマルチプレクサレジスタの第1の例の略図である。 本発明のいくつかの実施形態にしたがって構成されたマルチコアデュアルインラインメモリモジュール及び2つの関連するデマルチプレクサレジスタの第1の例の略図である。 本発明のいくつかの実施形態にしたがって構成されたマルチコアデュアルインラインメモリモジュール及び2つの関連するデマルチプレクサレジスタの第1の例の略図である。 本発明のいくつかの実施形態にしたがって構成されたマルチコアデュアルインラインメモリモジュール及び2つの関連するデマルチプレクサレジスタの第1の例の略図である。 本発明のいくつかの実施形態にしたがって構成されたマルチコアデュアルインラインメモリモジュール及び2つの関連するデマルチプレクサレジスタの第2の例の略図である。 本発明のいくつかの実施形態にしたがって構成されたマルチコアデュアルインラインメモリモジュール及び2つの関連するデマルチプレクサレジスタの第2の例の略図である。 本発明のいくつかの実施形態にしたがって構成されたマルチコアデュアルインラインメモリモジュール及び2つの関連するデマルチプレクサレジスタの第2の例の略図である。 本発明のいくつかの実施形態にしたがって構成されたマルチコアデュアルインラインメモリモジュール及び2つの関連するデマルチプレクサレジスタの第2の例の略図である。 本発明のいくつかの実施形態にしたがう、誤り訂正符号をサポートするように構成されたマルチコアデュアルインラインメモリモジュールの略図である。 本発明のいくつかの実施形態にしたがう、少なくとも1つの仮想メモリ装置からなるメモリモジュールを制御するための方法の制御フロー図である。
本発明の種々の実施形態はマルチコアメモリモジュールに向けられており、該メモリモジュールは、システム性能に与える影響を小さくしつつメモリシステムのエネルギー効率を改善するように設計されている。該メモリモジュールは、「仮想メモリ装置」(VMD。または仮想メモリデバイス。以下同じ)と呼ばれる1つ以上のメモリチップのグループに分割される複数のメモリチップを備える。該メモリチップをダイナミックランダムアクセスメモリ(「DRAM」)チップとすることができる。各VMDは、それ自体のデータパスを有しており、コマンドバスを介して時分割多重方式で個別のメモリ要求を受け取ることができる。その結果、従来のメモリモジュールに比べて、1メモリアクセス当たりに関与するメモリチップの数が少なく、及び、(メモリに)記憶し戻されるビットの数が少ない。このメモリチップを何の変更も行うことなく使用することができ、各々のVMDにそれぞれ異なるコマンドを提供するために、このメモリモジュールのレジスタに追加される機能上の変更はほとんどない。
詳細な説明は次のように編成されている。最初のサブセクションにおいて、従来のメモリモジュール及び関連するエネルギーの非効率性についての一般的な説明がなされている。次のサブセクションにおいて、メモリモジュールの実施形態及びエネルギー効率の向上についての説明が提供されている。
メモリモジュール、及びメモリアクセス時のエネルギーの非効率性
メモリモジュールは、典型的には、「デュアルインラインメモリモジュール」(「DIMM」)と呼ばれる記憶装置を形成する、プリント回路基板に搭載されたいくつかのDRAMチップから構成される。図1Aは、8個のDRAMチップから構成される単一のDIMMの等角図である。この場合、1つ以上のDIMMが、回路基板に搭載されて、メモリコントローラによって制御される。図1Bは、回路基板106に搭載されたメモリ102及びメモリコントローラ104の等角図である。メモリ102は、4つのDIMMスロット112−115に挿入された4つのDIMM108−111からなる。メモリコントローラ104は、中央処理装置などの、コンピュータチップ、またはマルチコアマイクロプロセッサチップの一部であり、DIMM108−111に対して送受信されるコマンド及びデータの流れを管理(及び/または制御)し、メモリ102をコンピュータシステムの他の主要なコンポーネントとインターフェース(接続)する。各DIMMは、インターフェース118を介してメモリコントローラ104と電気的に通信する。インターフェース118は、メモリコントローラ104からメモリ102にクロック信号及びコマンドを伝送し、及び、DIMM108−111とメモリコントローラ104間でデータ信号を伝送するバスである。データ信号は、メモリコントローラ104とDIMM108−111内のDRAMチップとの間を並列(または同時)に送られる。インターフェース118は、シングルデータレート(single-data rate:SDR)、ダブルデータレート(double-data rate:DDR)、及び、これらより高いデータレートでのデータ転送をサポートすることができる。SDRは、1クロックサイクルで1回データを送信することをいい、DDRは、コンピュータシステムクロック信号の立ち上がりエッジと立ち下がりエッジの両方においてデータを送信することをいう。メモリコントローラ104及びDIMM108−111を、SDR及びDDRにしたがってデータを送受信するように構成することができる。DDRにおいてクロックの両方のエッジを使用することによって、データ信号を同じ限界周波数で動作させた場合に、シングルデータレート送信に比べてデータ伝送速度(またはデータ伝送率)が2倍になる。
DRAMチップは、トランジスタ及びコンデンサからなるDRAMメモリセルと呼ばれる構造中に1ビットを記憶する。単一のDRAMチップ中に数十億のセルがあり、これらのセルを、「バンク」と呼ばれる多くの2次元アレイからなる2次元配列をなすように編成することができる。図2は、DRAMチップ200を構成する0〜7で示される8個のバンクの略図である。図2の例に示すように、各バンクは、交差信号線を介して行デコーダ、センスアンプ、及び列デコーダに接続されている。たとえば、バンク0は、信号線204などのx軸に平行に走る信号線を介して行デコーダ202に接続されている。バンク0はまた、信号線210などのy軸に平行に走る信号線を介して、センスアンプ206及び列デコーダ208に接続されている。メモリセルは信号線の交差部に配置されている。たとえば、メモリセル212は、信号線204と210が交差するポイントに配置されている。
メモリコントローラ104からメモリ102に送られるコマンドには、READ(読み出し)、WRITE(書き込み)、ACTIVATE(活性化または起動)、REFRESH(リフレッシュ)、及び、PRECHARGE(プリチャージ)が含まれる。コマンドは、制御信号及びアドレス信号からなる。制御信号は、コマンドによって実行される動作(または処理)を表し、アドレス信号は、そのコマンドが実行されるDRAMチップ内のバンク及び行アドレスまたは列アドレスを特定する。たとえば、ACTIVATEコマンドは、活性化制御信号、並びに、該ACTIVATEコマンドが実行されるDRAMチップ内のバンク及び行を識別するバンクアドレス及び行アドレスから構成される。READ及びWRITEコマンドは、読み出し及び書き込み制御信号、並びに、該READ及びWRITEコマンドが実行されるDRAMチップ内のバンク及び列を識別するバンクアドレス及び列アドレスから構成される。
DRAMチップ200のバンクに格納されたデータは2つのステップでアクセスされる。先ず、メモリコントローラ(不図示)がDRAMチップ200の行アドレスとバンクアドレスを指定するACTIVATEコマンドを送信する。典型的には、該バンクの8または16Kビットである、該行中の全てのビットが、活性化されて該バンク内のセンスアンプに送られる。次に、該バンクアドレス及び列アドレスを指定する1以上のREAD/WRITEコマンドが送信される。READ/WRITEトランザクション当たりに伝送されるビット数は、データバスの大きさとバースト長によって決まる。バースト長は、単一のバーストトランザクションまたはデータブロックの高速伝送において実行されるREAD/WRITE動作(処理)の数を制御するメモリに関連する共通の基本入力/出力システム設定値である。典型的には、バースト長は4または8に設定される。DRAMチップが、たとえばメモリREADリクエストを受け取ると、該チップは、インターフェース118の信号線にデータを供給することによって応答する。メモリREADリクエストに応答して送られるデータブロックの大きさは、バースト長によって決まる。64ビット幅のデータバス(すなわち、64個のシングルエンド信号線、または、128個の差分(差動)信号線)、及びバースト長4をサポートするように構成されたDRAMチップを有するメモリモジュールは、メモリコントローラからの単一のREADリクエストに応答して、32バイト(4×64ビット=32バイト)のデータブロックを送る。一方、64ビット幅のデータバス、及びバースト長8をサポートするように構成されたDRAMチップを有するメモリモジュールは、メモリコントローラからの単一のREADリクエストに応答して、64バイト(8×64ビット=64バイト)のデータブロックを送る。
データが、DRAMチップの同じバンク内の2つの異なる行で読み出されるときには、第2の行のデータを読み出すことができるようになる前に、第1の行を書き戻して、ビットラインを充電し、及び、PRECHARGE及びACTIVATEコマンドによって該第2の行をラッチしなければならない。PRECHARGEコマンドは、その行をDRAMバンクに書いて戻すが、これは、ACTIVATEコマンドが破壊的読み出しを行うために必要である。バンクアドレスは、READ、WRITE、ACTIVATE、及びPRECHARGEコマンド中の少数のビットによって与えられる。これらのコマンド処理には、しばしば、同じバンクにおける最初のACTIVATEコマンドと次のACTIVATEコマンドとの間で約50nsを要する。したがって、ACTIVATEコマンドとPRECHARGEコマンドの間に多くのREAD/WRITEコマンドが存在しない場合には、コマンド/アドレス/データバスは、しばしばアイドル状態となる。しかしながら、データが異なるバンクで読み出される場合には、異なるバンクへのコマンドをパイプライン処理することができる。なぜなら、2つの異なるバンク間のACTIVATEからACTIVATEまでの時間は、約8nsだけ短いからである。したがって、異なるバンクにおけるリクエスト(要求)をインターリーブすることによって、より高いスループットを達成することができ、これは、ACTIVATEコマンドとPRECHARGEコマンドの対の間にREAD/WRITEコマンドが多く存在しない場合に特にあてはまる。
図3Aは、各々が8ビットデータバスを有する8個のDRAMチップを備える従来のDIMM300の略図である。矢印302は、メモリコントローラ(不図示)からレジスタ304と呼ばれるオプションの装置に送られるコマンドの配送を表している。レジスタ304は、メモリコントローラとDRAMチップの間のバス上に配置されている。レジスタ304は、メモリコントローラからのコマンド信号をラッチし、その後、メモリコントローラに対する電気的負荷を小さくし、かつ、コマンド信号の安定性を維持するために、信号の品質及びタイミングマージンがより良好とされた状態で、該コマンド信号を各DRAMチップに転送する。レジスタ304は、また、1つもメモリコントローラ毎に複数のDIMMを有するシステム内のそれぞれのDIMMに対する重複するアクセスを容易にするために、コマンドをバッファリングし、及び、クロック信号をDRAMチップへと一斉に送信(以下、「一斉に送信」には、同時送信ではない配信、または同報送信が含まれる)することができる。分岐した矢印306及び308によって示すように、レジスタ304は、これらのコマンドをバスを介して8個の全てのDRAMチップに一斉に送信する。他の従来のメモリモジュールでは、コマンドは、レジスタ304なしでDRAMチップに一斉に送られる。
図3Bは、従来のDIMM動作の1例を示す。図3Bの例に示すように、DIMM300内の全てのDRAMチップは、メモリコントローラから同じコマンドを受け取って、影付きの領域310によって表されている各DRAMチップ内の同じ行を活性化する。この結果、DIMM300内の全てのDRAMチップは、より広いデータパス及びより大きな行を有する単一のDRAMチップとして動作する。
図2を参照して上述したように、DRAMチップの行のサイズ(大きさ)は典型的には8(すなわち16Kビット)である。DIMMに対するキャッシュラインを読み出し、または、キャッシュラインに書き込むために、READ/WRITEコマンドが全てのDRAMチップに一斉に送信され、各DRAMチップは同じ行を活性化する。換言すれば、8個のDRAMチップから構成される典型的なDIMMにおいて、各DRAMチップは、8Kビットからなる同じ行アドレスを活性化する。したがって、1つのDIMMの8×8Kビットすなわち64KビットのDRAMセルが一度に活性化されるが、これは、読み出しまたは書き込みが行われることになるキャッシュラインのサイズよりも大きい。典型的なキャッシュラインは、64バイトすなわち512ビットのオーダーである。したがって、READ及びWRITEコマンドは、典型的には、活性化されたDRAMセルの1%未満を使用して1つのキャッシュラインにおいて読み出され、または、書き込まれるので、活性化されているDRAMセルの99%以上が、単一のREADまたはWRITEトランザクションに対して使用されず、エネルギーの使用効率が悪い。
本発明の実施形態
本発明のメモリモジュールの実施形態は、メモリコントローラからコマンドを受け取るためのデマルチプレクサレジスタ(「demux register」)を導入する。メモリチップをVMDにグループ化することができ、該メモリチップは、demux registerと共にプリント回路基板に搭載されて、「マルチコアデュアルインラインメモリモジュール」(「MCDIMM」)と呼ばれる単一の記憶装置を形成する。いくつかの実施形態では、メモリチップをDRAMチップとすることができる。図4Aは、本発明のいくつかの実施形態にしたがって構成された、回路基板412に配置された8個のDRAMチップ401−408、及びdemux register410から構成される単一のMCDIMM400の等角図である。これらのDRAMチップ401−408を1つ以上のDRAMチップからなるVMDにグループ化することができる。この例については、より詳細に後述する。
従来のDIMMと同様に、1つ以上のMCDIMMを回路基板に搭載して、メモリコントローラによって制御することができる。図4Bは、本発明のいくつかの実施形態にしたがう、回路基板424に搭載されたメモリ420及びメモリコントローラ422の等角図である。メモリ420は、DIMMスロット430−433にそれぞれ挿入されたMCDIMM426−429から構成される。MCDIMM400は、メモリコントローラ422とメモリモジュール426−429のdemux registerとの間にインターフェース434を有する。インターフェース434は、メモリコントローラ422からメモリ420へとコマンド信号を送るバス、及び、メモリコントローラ422とメモリ420の間でデータ信号を伝送するデータバスを備える。このアーキテクチャでは、メモリコントローラ422によって送られるコマンドは、メモリ420のDRAMチップに一斉送信はされない。その代わり、メモリコントローラ420は、MCDIMM426−429のdemux registerにコマンドを送る。MCDIMM426−429の各々は、demux registerがコマンドをVMDに直接遅れるようにするコマンドバスを備える。
図5Aは、本発明のいくつかの実施形態にしたがって構成されたMCDIMM500の全体的な略図である。MCDIMM500はn個のVMDを備える。ここで、nは、MCDIMM500内のVMDの数を表す整数である。VMDの各々は、図5Aに表されており、VMDによって示されている。ここで、下付き文字kは、0〜n−1の範囲の整数である。MCDIMM500は、VMDの各々が別個の組をなす信号線を介してdemux register502に接続されるように構成されている。demux register502の2つの異なる実施形態については、図5Bと図5Cを参照して後述する。たとえば、VMD、VMD、VMD、VMDk+1、VMDn−2、VMDn−1が、信号線の組504−509を介してdemux register502に接続される。VMDをdemux register502に接続する信号線の組み合わされた組は、「コマンドバス」と呼ばれる。各VMDを、DRAMチップなどの1つ以上のメモリチップから構成することができる。メモリコントローラ(不図示)からMCDIMM500に送信されたコマンドは、「コマンドパス」と呼ばれる1組の信号線510を介してdemux register502に到達する。VMDの各々は、図5Aにおいて、両矢印511などの両矢印によって識別される別個のデータバスでメモリコントローラとデータをやりとりする。
図5Bは、本発明のいくつかの実施形態にしたがって構成された第1のdemux register525の略図である。demux register525は、レジスタ512とデマルチプレクサ514から構成される。demux register525は、メモリコントローラから、図5Aのコマンドパス510を介してコマンドを受け取る。これらのコマンドは時分割多重される。換言すれば、各コマンドは、持続時間間隔が一定のタイムスロットでメモリコントローラからdemux register525に送られるビットストリームに符号化される。図5Bにおいて、時分割多重されたコマンドのタイムスロットは、一連の矩形515−520によって表されている。図5Bに示されているコマンドの各々は、該コマンドを受け取ることが意図されている図5AのVMDのインデックスを含んでいる。それらのコマンドがdemux register525に送られる順番は、メモリコントローラによって決定される。したがって、それらのコマンドは、その順番で図5Bに現れている。実行されることになる特定の種類の動作(処理や演算)を識別する制御信号、バンクや行や列を識別するアドレス信号、及び、メモリコントローラによってコマンドを受け取るように割り当てられた特定のVMDを識別するVMDアドレスが、コマンドに埋め込まれている。たとえば、あるコマンドが特定のVMDに送られようとしているときには、メモリコントローラは、そのVMDを特定するVMDアドレスを含むコマンドを生成する。一般に、VMDアドレスは、logn個のビットからなるビット列である。
レジスタ512は、コマンドを受け取ってそれを一時的に格納するバッファである。デマルチプレクサ514は2つの入力を備える。矢印522、524によって示されているように、レジスタは、一方の入力にコマンドを送り、他方の入力にVMDアドレスを送る。デマルチプレクサ514は、VMDアドレスを使用して、該VMDアドレスによって特定されるVMDに通じているコマンドバスのうちの適切な信号線の組を選択する。図5Bにおいて、コマンドバスの信号線のn個の組のうちの6個の組が、それらの信号線の組504−509に対応する矢印504−509によって示されており、かつ、図5Aに示す関連するVMDのインデックスでラベル付けされている。各コマンドは、次のコマンドが処理される前に、特定の時間間隔内でdemux register525によって別個に処理されることに注意されたい。
たとえば、図5A及び図5Bに関して、メモリコントローラがコマンドk-1 519をVMDに送る場合を考える。図5Aにおいて、コマンドk-1 519は、コマンドパス510に沿ってdemux register525へと送られる。図5Bに示すように、レジスタ512は、コマンドk-1 519を受け取ってそれを一時的に格納し、VMDアドレス及び該コマンドがデマルチプレクサ514に送られ、該デマルチプレクサは、次に、適切な信号線の組506を選択して、該コマンドk-1 519を図5AのVMDに送る。コマンドk-1 519が送られた後、次のコマンド1 518が同様にして処理される。
図5Bに示すように、demux register525は、信号線の各組に関連付けられたカウンタをオプションとして備える。カウンタは、VMDのDRAMチップがキャッシュラインのREADまたはWRITEトランザクションに関連する長いバースト長をサポートできないときに必要になりうる。demux registerは、キャッシュラインをキャッシュラインセグメントに分割して、該コマンドを、各々が1つのキャッシュラインセグメントに対応する複数のコマンドに変換する。したがって、VMDに送られる各キャッシュラインセグメントは、カウンタによって送られる対応するコマンドの後にくる。たとえば、VMDの1つ以上のDRAMチップのバースト長を1つのキャッシュラインをカバーするのに十分な長さに設定できない場合には、カウンタは、READまたはWRITEなどの列レベルのコマンドを、各キャッシュラインセグメントに対する複数のREAD/WRITEコマンドに変換して、各キャッシュラインセグメントを、該DRAMチップに対して別個にREAD(読み出し)またはWRITE(書き込み)できるようにする。各カウンタは、分割されたキャッシュライン用に生成されたコマンドの数を追跡する(把握して記憶する)計数装置を備える。カウンタによって実行される変換は、メモリコントローラからのコマンド帯域幅を節約する。
図5Cは、本発明のいくつかの実施形態にしたがって構成された第2のdemux register527の略図である。demux register527は、0〜n−1で示されているn個のコマンドセレクタと1つのブロードキャストバス(broadcast bus。または同報通信バス)528を備えており、1つのコマンドセレクタが、図5Aに示すn個のVMDの各々に対応する。図5Bを参照して上述したように、メモリコントローラは、時分割多重されたコマンド515−520を、コマンドパス510を通じてdemux register527に送る。コマンドセレクタは、分岐529−534を介してブロードキャストバス528に電子的に接続されており、各コマンドセレクタは、コマンドバスの1組の信号線を介してVMDの1つに接続されている。図5Cにおいて、コマンドバスの信号線のn個の組のうちの6個の組が、該信号線の組504−509に対応する矢印504−509によって示されており、かつ、図5Aに示す関連するVMDのインデックスでラベル付けされている。図5Cに示すように、各コマンドは、n個の全てのコマンドセレクタに一斉に送信される。各コマンドセレクタは、コマンドに埋め込まれたVMDアドレスを抽出して、該コマンドを対応するVMDに送るべきか、または、該コマンドは異なるVMDにアドレス指定されているかを判定するように構成されている。後者と判定された場合には、該コマンドは破棄される。したがって、n個の全てのコマンドセレクタに一斉送信される各コマンドについて、該コマンドは、コマンドセレクタのうちの1つによってのみ対応するVMDに送られる。たとえば、demux register527は、コマンドn-2 520を受け取って、それを、n個の全てのコマンドセレクタ0〜n−1に一斉に送る。しかしながら、コマンドn-2 520は、VMDn−2のアドレスを含んでいるので、コマンドセレクタn−2は、該コマンドn-2 520を信号線の組508を介してVMDn−2に送り、他のコマンドセレクタは該コマンドn-2 520を破棄する。各コマンドは、次のコマンドが処理される前に、特定の時間間隔内でdemux register527によって別個に処理されることに留意されたい。
図5Dは、本発明のいくつかの実施形態にしたがって構成された例示的なコマンドセレクタn−2の略図である。他のn−1個のコマンドセレクタも同様に構成される。コマンドセレクタn−2は、ANDゲート530、レジスタ/カウンタ532、及び、ランダムアクセスメモリ(「DRAM」)タイミング制御534を備える。コマンドは、分岐533においてコマンドセレクタn−1に入力される。ANDゲート530は、各コマンドに埋め込まれたVMDアドレスを抽出して、システムクロック信号を受け取る。ANDゲート530は、抽出されたVMDアドレスが対応するVMDn−2のアドレスに一致するときに、レジスタ/カウンタ532に選択信号を送るように構成されている。レジスタ/カウンタは、クロック信号を受け取って、該レジスタ/カウンタがいつコマンドをラッチするかを決定する。レジスタ/カウンタを、クロックの立ち上がりエッジ及び/またはクロックの立ち下がりエッジ毎に選択信号にしたがって動作するように構成することができる。レジスタ/カウンタ532はバッファであり、選択信号をANDゲート530から受け取ったときに、コマンドを一時的に格納して、該コマンドを対応するVMDn−2に送る。レジスタ/カウンタ532はまた、図5Bを参照して上述したように、キャッシュライン及びコマンドの分割を実行するカウンタを備える。RAMタイミング制御534は、レジスタ/カウンタ532のカウンタ部分を制御する。
一般的に、ANDゲートは、全ての入力信号がビット「1」に対応しているときにビット「1」に対応する信号を出力し、入力信号のうちの少なくとも1つがビット「0」に対応しているときにビット「0」に対応する信号を出力する。ここで、ビット「1」、「0」は、それぞれ、信号の高電圧、低電圧を表すことができる。コマンドセレクタ0〜n−1のANDゲートは、いくつかの入力信号線上にインバータ(反転器)を備えることができる。インバータは、ビット「0」に関連付けられた信号をビット「1」に関連付けられた信号に変換し、または、その逆も同じである。ANDゲートは、対応するVMDを表すVMDアドレスを全てのビットが「1」ビットからなるビットストリームに変換するために、いくつかの入力信号線上にインバータを備える。この場合、ANDゲートは、ビット「1」に対応する選択信号をレジスタ/カウンタ532に出力する。たとえば、VMDn−2のVMDアドレスがビットストリーム11...1101である場合を想定する。ANDゲート530は、線538においてANDゲート530に入力される信号の電圧を反転させるインバータ536を備える。したがって、図5Dに示すように、コマンド内に埋め込まれたVMDアドレスが該アドレス11...1101と一致するときには、該アドレスは、11...1111に変換され、ANDゲート530は、ビット「1」を表す選択信号をレジスタ/カウンタ532へと出力し、該レジスタ/カウンタ532は、該クロックによって表明されたときにコマンドをラッチして信号線の組508上に送り出す。他のアドレスについては、ANDゲート530に入るビットストリームは少なくとも1つの「0」ビットを有し、ANDゲート530は、信号を出力しないか、ビット「0」に対応する低(レベル)信号を出力する。したがって、レジスタ/カウンタ532は、コマンドをラッチして1組の信号線508上に送り出すことをしない。
次に、図6〜図8を参照して、いくつかの異なるMCDIMMの実施形態を説明する。各実施形態は、異なるdemux register及びコマンドバス構成を有しているが、本発明のいくつかの実施形態にしたがって構成することが可能な異なる全てのdemux register及びコマンドバスを網羅することは決して意図されていない。
図6A、図6Bは、それぞれ、本発明のいくつかの実施形態にしたがって構成されたMCDIMM600、それに関連するdemux register602の略図である。図6Aに示すように、MCDIMM600は8個のVMDを備えており、該VMDの各々は、1〜8でラベル付けされた単一のDRAMチップを備えている。コマンドバスは、DRAM1〜8の各々をdemux register602に接続する8個の組の信号線604〜611から構成されている。コマンドは、コマンドパス612を通ってメモリコントローラ(不図示)からdemux register602に送られる。logn(nは8)にしたがって、DRAM1〜8の各々を、3ビットのVMDアドレス000、001、010、011、100、101、110、111の1つに割り当てることができ、これらは、メモリコントローラからdemux register602に送られるコマンドに含められる。DRAMチップ1〜8の各々は、コマンドバスを通じて異なるコマンドを受け取り、他のDRAMチップとは独立して、両矢印613などの両矢印で示されているように、各自のデータバスを介してデータを転送する。
いくつかの実施形態では、図6Bのdemux register602は、レジスタ614及びデマルチプレクサ616を備える。メモリコントローラは、VMDアドレスを有する各コマンド(該VMDアドレスは、該コマンドを受信することになるDRAMチップに対応する)を準備する。図6Bの例に示すようように、コマンドの各々は、時分割多重されており、DRAMチップ1〜8の1つに関連付けられている整数でラベル付けされた矩形によって表されている。レジスタ614は、コマンドの各々を順次(または連続して)受け取って、VMDアドレスを読み出し、矢印618、620でそれぞれ示されているように、該VMDアドレス及びコマンドを、デマルチプレクサ616の別個の入力に送る。デマルチプレクサ616は、VMDアドレスを使用して、該コマンドをVMDまで伝送する適切な信号線の組604〜611を選択する。demux register602は、オプションとして、VMDが長いバーストキャッシュラインをサポートできないときに実装されることができるカウンタを備える。
コマンドをMCDIMM600に送る1例は、メモリコントローラが、DRAMチップ3に提供されることが意図されたコマンドを、コマンドパス612に沿ってdemux register602に送ることから開始する。図6Bに示すように、レジスタ614は、コマンド3 624を受け取って、DRAMチップ3のVMDアドレス及びコマンドを、信号線618及び620に沿ってデマルチプレクサ716に送信する。このVMDアドレスに基づいて、デマルチプレクサ616は、信号線の組606を選択して、該コマンドをDRAMチップ3に送る。
他の実施形態では、図6Cのdemux register602は、0〜7で示されている8個のコマンドセレクタを備える。各コマンドは、7つの全てのコマンドセレクタに一斉に送られる。各コマンドセレクタは、コマンドに埋め込まれたVMDアドレスを取り出して、該コマンドを対応するVMDに送るべきか、または、該コマンドは異なるVMDにアドレス指定されていて破棄されるのかを判定する。たとえば、図6Cのdemux register602は、コマンド3を受け取って、ブロードキャストバス626を介して該コマンドを7つの全てのコマンドセレクタに一斉に送る。しかしながら、コマンド3 624は、VMDのアドレスを含んでいるので、コマンドセレクタ3は、該コマンド3 624を信号線の組607を介してVMDに送り、他のコマンドセレクタは該コマンド3 624を破棄する。
図6Dは、本発明のいくつかの実施形態にしたがって構成されたコマンドセレクタ3の略図である。コマンドセレクタ3は、ANDゲート628、レジスタ/カウンタ630、及び、RAMタイミング制御632を備える。他のコマンドセレクタも同様に構成されている。コマンドは、分岐634を通ってコマンドセレクタ3に入力される。ANDゲート628は、各コマンドのVMDアドレス部を抽出して、レジスタ/カウンタ630がいつ選択されたかを判定する。VMDアドレスがANDゲート628に入力されると、インバータ636は、線638を通ってANDゲート628に入力されるビット値を反転する。したがって、コマンドに埋め込まれたVMDアドレスが、VMDの3ビットアドレス011に一致するときには、このアドレスは111に変換され、ANDゲート628は、ビット「1」に対応する選択信号を出力し、そうでない場合には、レジスタ/カウンタ630へは選択信号は送られない。クロック信号もレジスタ/カウンタ630に入力され、これによって、レジスタ/カウンタ630が、クロック信号の立ち上がりエッジ及び/または立ち下がりエッジで該コマンドをラッチするようにする。
図6A及び図6BのMCDIMM600の例では、1つのメモリアクセス要求に対して1つのDRAMチップだけが関与する。DRAMチップの影付き領域は、異なるコマンドに関連する異なる別個のメモリ要求を表している。各DRAMチップは、コマンドバスを通じてコマンドを受け取り、各自のデータバスを用いて独立にデータを転送する。したがって、より少ないビットが活性化され、活性化及びプリチャージのためのエネルギーが節約される。しかしながら、従来のDIMMよりもデータを配信するのに必要な時間は長くなりうる。なぜなら、データバスのサイズが、従来のDIMMにおけるデータバスのサイズよりも小さいからである。データを転送するために、該データを、直列化された(または連続した)より小さなデータ部分に分割することができ、この場合、各部分は、VMDからメモリコントローラに別々に送られる。しかしながら、データを直列化することによって、データを送るのに必要な時間量が、従来のDIMMからメモリコントローラにデータを送るのに比べて長くなる。直列化により追加されるこの遅れ(待ち時間)の問題は、システム性能に悪影響を与える場合がある。MCDIMMを2つ以上のDRAMチップを有するVMDで構成することによって、この直列化による遅れの問題を軽減することができる。
図7A及び図7Bは、それぞれ、本発明のいくつかの実施形態にしたがって構成されたMCDIMM700、これに関連するdemux register702の略図である。図7Aに示すように、MCDIMM700は、VMDによって示される4つのVMDを備える。ここで、kは1〜4の範囲の整数である。VMDの各々は2つのDRAMチップを備える。コマンドバスは、VMDの各々をdemux register702に接続する信号線の4つの組704〜707から構成される。コマンドは、コマンドパス708に沿ってメモリコントローラ(不図示)からdemux register702に送られる。logn(nは4)にしたがって、VMDの各々を、2ビットのVMDアドレス00、01、10、及び11の1つに割り当てることができ、これらは、コマンドを受け取ることが意図されているVMDを識別するためにコマンドに含められている。VMDの各々は、コマンドバスを通じて異なるコマンドを受け取り、他のVMDとは独立して、両矢印709などの両矢印によって示されているように、各自のデータバスを介してデータを転送する。
図7Bにおいて、demux register702は、レジスタ710及びデマルチプレクサ712を備える。コマンドの各々は、時分割多重され、MCDIMM700のVMDの1つを識別する整数でラベル付けされた矩形によって表されている。レジスタ701は、コマンドの各々を順次(または連続して)受け取って、DRAMアドレスを読み出し、該DRAMアドレス及びコマンドを、それぞれ信号線714、716に沿ってデマルチプレクサ712に送る。デマルチプレク712は、VMDアドレスを用いて、該コマンドを、信号線の組704〜707のうちの適切な組を通じてVMDに送る。
図7Cにおいて、demux register702は、0〜3で示されている4つのコマンドセレクタを備える。各コマンドは、ブロードキャストバス718を介して4つの全てのコマンドセレクタに一斉に送られる。これらのコマンドセレクタは、コマンドに埋め込まれたVMDアドレスを取り出して、そのコマンドを対応するVMDに送るべきか、または、そのコマンドは破棄されるべきかを判定する。
図7Dは、本発明のいくつかの実施形態にしたがって構成されたコマンドセレクタ2の略図である。コマンドセレクタ2は、ANDゲート720、レジスタ/カウンタ722、及び、RAMタイミング制御724を備える。コマンドは、分岐726を通じてコマンドセレクタ2に入力される。ANDゲート720は、各コマンドのVMDアドレス部を抽出して、レジスタ/カウンタ722がいつ選択されたかを判定する。VMDアドレスが2ビットのVMDアドレス10に一致するときには、このアドレスは11に変換され、ANDゲート720は、ビット「1」に対応する選択信号をレジスタ/カウンタ722へと出力し、そうでない場合には、レジスタ/カウンタ722へは選択信号は送られず、該コマンドは破棄される。レジスタ/カウンタ722へのクロック信号入力は、該クロック信号の立ち上がりエッジ及び/または立ち下がりエッジで該コマンドをラッチする。
図7A及び図7BのMCDIMM700の例では、DRAMチップの同様に影付けされた領域によって表されている2つのDRAMチップが、1つのメモリアクセス要求毎に関与する。各VMDのDRAMチップは、コマンドバスを通じてコマンドを受け取り、関連するデータバスを用いて独立にデータを転送する。したがって、活性化されるビットは従来のDIMMよりも少ないが、MCDIMM600と同様に、直列化による問題が依然として生じえ、同じデータ量を転送するのに従来のDIMMよりも多くの時間が必要になる場合がある。demux register702はまた、オプションとして、キャッシュラインに書き込むのに多くのバーストが必要になるときにカウンタを備えることに留意されたい。
個々のメモリセルの破壊を招くことが多いソフトエラーからデータ及びデータ転送を保護するために、DRAMチップをグループ化して、誤り訂正符号(「ECC」)をサポートすることもできる。典型的には8ビットのデータ毎に1つのECCビットを付加し、通常、並列構成の8個DRAMチップではなく並列構成の9個のDRAMチップを同時にアクセスすることによって、ECCを実施することができる。したがって、いくつかの実施形態では、個々のDRAMチップを、追加のデータセル、並びに、8ビットデータパスではなく9ビットデータパスを介して出力されるバスビットを有するように構成することができる。
他の実施形態では、チップのアドレス範囲の一部をECCビット専用に割り当てることができ、demux registerの同じコマンド変換機能を用いて、データ及びECCビットを1つのグループで転送することができる。
さらに他の実施形態では、1つのVMDにつき、記憶容量が低い個別のDRAMチップを複数のDRAMチップと対にすることができる。図8は、本発明のいくつかの実施形態にしたがう、ECCをサポートするように構成されたMCDIMM800の略図である。図8の例に示すように、MCDIMM800は、コマンドパス804を介してメモリコントローラ(不図示)からコマンドを受け取るdemux register802、及び、信号線の4つの組806〜809から構成されるコマンドバスを備える。信号線の各組は、コマンドをVMDの各々まで伝送する。MCDIMM800は、各VMDが追加の小容量のDRAMチップを有することを除いて、MCDIMM700とほとんど同じである。たとえば、VMDは、データを格納するために使用される2つの正規のDRAMチップ810、811と、ECCビットを格納するための比較的記憶容量が小さい追加のDRAMチップ812を備える。各VMDのデータ及びECCビットを、データバス上に別々に読み出すことができる。
図9は、本発明のいくつかの実施形態にしたがう、少なくとも1つの仮想メモリ装置を備えるメモリモジュールを制御するための方法の制御フロー図である。ステップ901において、メモリコントローラは、メモリモジュールのVMDの1つによって受信されることになるコマンドを、該1つのVMDに割り当てられたアドレスを該コマンド内に符号化することによって準備する。ステップ902において、メモリコントローラは、そのコマンドを該メモリモジュールのdemux registerに送る。このコマンドは、図5Aを参照して上述したように、コマンドパスを介してdemux registerによって受信される。ステップ903において、demux registerは、該コマンドのVMDアドレスを読み出すレジスタを有しており、図5Bを参照して上述したように、どのVMDが該コマンドを受け取ることになるかを判定する。ステップ904において、図5A及び図5Bを参照して上述したように、レジスタは、VMDに送られるコマンドを乗せるコマンドバスの適切な信号線の組を該アドレスに基づいて選択するデマルチプレクサに、該コマンド及びアドレスを送る。ステップ905において、該方法は、(はじめに)戻って、次のメモリリクエストのためにステップ901〜904が繰り返される。
上記説明は、説明を目的としたものであって、本発明を十分に理解できるように特定の用語を使用した。しかしながら、本発明を実施するために特定の細部が必要ではないことは当業者には明らかであろう。本発明の特定の実施形態の上記説明は、例示と説明のために提示されたものである。それらは、本発明を網羅することも、本発明を開示した形態そのものに限定することも意図していない。上記の教示に照らして多くの修正形態及び変形形態が可能であることは明らかである。それらの実施形態は、本発明の原理及びそれの実用上の適用を最良に説明し、これによって、当業者が、意図する特定の用途に適するように本発明及び種々の実施形態を様々に改変して最良に利用できるようにするために、図示し説明されている。本発明の範囲は、添付の特許請求の範囲及びそれの等価物によって画定されることが意図されている。

Claims (13)

  1. メモリモジュールであって、
    各々の仮想メモリ装置が少なくとも1つのメモリチップを備える、複数の仮想メモリ装置と、
    前記複数の仮想メモリ装置及びメモリコントローラに電子的に接続されたデマルチプレクサレジス
    を備え、
    前記デマルチプレクサレジスタは、前記メモリコントローラから前記複数の仮想メモリ装置の1つを特定するコマンドを受け取って、該コマンドを、該コマンドにおいて特定される仮想メモリ装置に送り、
    前記デマルチプレクサレジスタが、コマンドを複数のコマンドに変換し、これによって、前記デマルチプレクサレジスタがキャッシュラインをキャッシュラインセグメントに分割できるようにするカウンタを備え、
    各コマンドは、前記キャッシュラインセグメントの1つに関連付けられ、前記複数のコマンド及び関連するキャッシュラインセグメントが、前記仮想メモリ装置に連続的に送られる、メモリモジュール。
  2. 前記メモリチップは、ダイナミックランダムアクセスメモリチップを備える、請求項1のメモリモジュール。
  3. 前記コマンドは、前記メモリコントローラから、時分割多重方式で前記デマルチプレクサレジスタへと送られて、各コマンドは、前記デマルチプレクサレジスタに到達し、及び、該コマンドにおいて特定される仮想メモリ装置に一定の持続時間間隔内で送られる、請求項1または2のメモリモジュール。
  4. 前記デマルチプレクサレジスタがさらに、
    前記コマンドを受け取って、該コマンドにおいて特定される仮想メモリ装置の仮想メモリ装置アドレスを決定するように構成されたレジスタと
    前記レジスタから前記コマンド及びアドレスを受け取って、該コマンドを前記仮想メモリ装置に送るための1組の信号を選択するように構成されたデマルチプレク
    を備えることからなる、請求項1乃至3のいずれかのメモリモジュール。
  5. 前記デマルチプレクサレジスタがさらに、
    複数のコマンドセレクタであって、各コマンドセレクタは、前記複数の仮想メモリ装置の1つに電気的に接続される、複数のコマンドセレクタと、
    前記コマンドを前記複数のコマンドセレクタに一斉送信するように構成されたブロードキャストバ
    を備え、
    各コマンドセレクタは、前記コマンドに埋め込まれている仮想メモリ装置アドレスを取り出して、該アドレスが、前記接続された仮想メモリ装置のアドレスに一致するときに、前記コマンドを該接続された仮想メモリ装置に転送するように構成され、一致しないときには、コマンドセレクタは該コマンドを破棄する、請求項1乃至3のいずれかのメモリモジュール。
  6. コマンドセレクタが、
    前記コマンドから前記仮想メモリ装置アドレスを取り出して、該アドレスが前記接続された仮想メモリ装置のアドレスに一致するときに選択信号を生成するように構成されたANDゲートと、
    前記ANDゲートが前記選択信号を提供したときに、前記コマンドを受け取って、該コマンドを前記接続された仮想メモリ装置に送るように構成されたレジスタ/カウンタであって、該レジスタ/カウンタは前記ANDゲートが前記選択信号を提供しないときには、前記コマンドを破棄する、レジスタ/カウンタと、
    前記カウンタを制御するRAMタイミング制御
    を備えることからなる、請求項のメモリモジュール。
  7. 前記デマルチプレクサレジスタと前記複数の仮想メモリ装置の間に配置されたコマンドバスをさらに備え、
    前記コマンドバスが、前記複数の仮想メモリ装置の各々を前記デマルチプレクサレジスタに接続する個別の信号線の組から構成される、請求項1乃至6のいずれかのメモリモジュール。
  8. 前記メモリコントローラを前記デマルチプレクサレジスタに接続するコマンドパスをさらに備える、請求項1乃至7のいずれかのメモリモジュール。
  9. 前記複数の仮想メモリ装置の各々がさらに、誤り訂正符号情報を格納するように構成されたメモリチップを備える、請求項1乃至8のいずれかのメモリモジュール。
  10. 複数の仮想メモリ装置を備えるメモリモジュールを制御するための方法であって、
    メモリコントローラにおいて、前記複数の仮想メモリ装置の1つに対応するアドレスを含むようにコマンドを準備するステップ(901)と、
    前記メモリコントローラから前記メモリモジュールのデマルチプレクサレジスタに前記コマンドを送るステップ(902)と、
    前記複数の仮想メモリ装置のどれが前記アドレスによって特定されるかを判定するステップ(903)と、
    前記コマンドを前記アドレスによって特定された仮想メモリ装置に送るステップ(904)
    を含み、
    前記コマンドを前記アドレスによって特定された仮想メモリ装置に送る前記ステップが、前記コマンドを複数のコマンドに変換し、これによって、前記デマルチプレクサレジスタがキャッシュラインをキャッシュラインセグメントに分割できるようにするステップをさらに含み、
    各コマンドは、前記キャッシュラインセグメントの1つに関連付けられ、前記複数のコマンド及び関連するキャッシュラインセグメントが、前記仮想メモリ装置に連続的に送られる、方法。
  11. メモリコントローラからデマルチプレクサレジスタにコマンドを送る前記ステップが、前記コマンドを時分割多重して前記デマルチプレクサレジスタへと送るステップを含み、該時分割多重されたコマンドは、一定の持続時間間隔内で前記コマンドにおいて特定される仮想メモリ装置に送られる、請求項10の方法。
  12. 前記複数の仮想メモリ装置のどれがアドレスによって特定されるかを判定する前記ステップが、前記コマンドに埋め込まれた仮想メモリ装置アドレスを読み出すステップを含む、請求項10または11の方法。
  13. 前記複数の仮想メモリ装置の各々が少なくとも1つのメモリチップを備える、請求項10乃至12のいずれかの方法。
JP2011522033A 2008-08-08 2008-08-08 メモリモジュール内の独立制御式仮想メモリ装置 Active JP5231642B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2008/009523 WO2010016818A1 (en) 2008-08-08 2008-08-08 Independently controlled virtual memory devices in memory modules

Publications (2)

Publication Number Publication Date
JP2011530735A JP2011530735A (ja) 2011-12-22
JP5231642B2 true JP5231642B2 (ja) 2013-07-10

Family

ID=41663890

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011522033A Active JP5231642B2 (ja) 2008-08-08 2008-08-08 メモリモジュール内の独立制御式仮想メモリ装置

Country Status (6)

Country Link
US (1) US8788747B2 (ja)
EP (1) EP2313891B1 (ja)
JP (1) JP5231642B2 (ja)
KR (1) KR101467623B1 (ja)
CN (1) CN102177550B (ja)
WO (1) WO2010016818A1 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8472199B2 (en) * 2008-11-13 2013-06-25 Mosaid Technologies Incorporated System including a plurality of encapsulated semiconductor chips
US8612676B2 (en) 2010-12-22 2013-12-17 Intel Corporation Two-level system main memory
US9098209B2 (en) 2011-08-24 2015-08-04 Rambus Inc. Communication via a memory interface
US11048410B2 (en) 2011-08-24 2021-06-29 Rambus Inc. Distributed procedure execution and file systems on a memory interface
WO2013028859A1 (en) 2011-08-24 2013-02-28 Rambus Inc. Methods and systems for mapping a peripheral function onto a legacy memory interface
US9342453B2 (en) 2011-09-30 2016-05-17 Intel Corporation Memory channel that supports near memory and far memory access
US20130111122A1 (en) * 2011-10-31 2013-05-02 Futurewei Technologies, Inc. Method and apparatus for network table lookups
US9412423B2 (en) 2012-03-15 2016-08-09 Samsung Electronics Co., Ltd. Memory modules including plural memory devices arranged in rows and module resistor units
US9934194B2 (en) 2013-12-20 2018-04-03 Rambus Inc. Memory packet, data structure and hierarchy within a memory appliance for accessing memory
KR102222445B1 (ko) 2015-01-26 2021-03-04 삼성전자주식회사 선택적으로 동작하는 복수의 디램 장치를 포함하는 메모리 시스템
KR102406267B1 (ko) * 2015-11-19 2022-06-08 삼성전자주식회사 불휘발성 메모리 모듈 및 이를 포함하는 전자 장치
KR102446677B1 (ko) 2015-11-26 2022-09-23 삼성전자주식회사 스토리지 컨트롤러의 동작 방법 및 상기 스토리지 컨트롤러를 포함하는 데이터 저장 장치의 동작 방법
US9542290B1 (en) 2016-01-29 2017-01-10 International Business Machines Corporation Replicating test case data into a cache with non-naturally aligned data boundaries
US10169180B2 (en) 2016-05-11 2019-01-01 International Business Machines Corporation Replicating test code and test data into a cache with non-naturally aligned data boundaries
US10055320B2 (en) 2016-07-12 2018-08-21 International Business Machines Corporation Replicating test case data into a cache and cache inhibited memory
US10223225B2 (en) 2016-11-07 2019-03-05 International Business Machines Corporation Testing speculative instruction execution with test cases placed in memory segments with non-naturally aligned data boundaries
US10261878B2 (en) 2017-03-14 2019-04-16 International Business Machines Corporation Stress testing a processor memory with a link stack
US10747442B2 (en) 2017-11-29 2020-08-18 International Business Machines Corporation Host controlled data chip address sequencing for a distributed memory buffer system
US10534555B2 (en) 2017-11-29 2020-01-14 International Business Machines Corporation Host synchronized autonomous data chip address sequencer for a distributed buffer memory system
US10395698B2 (en) 2017-11-29 2019-08-27 International Business Machines Corporation Address/command chip controlled data chip address sequencing for a distributed memory buffer system
US10489069B2 (en) 2017-11-29 2019-11-26 International Business Machines Corporation Address/command chip synchronized autonomous data chip address sequencer for a distributed buffer memory system
JP7469978B2 (ja) 2020-07-22 2024-04-17 株式会社日立製作所 プリント配線板及び情報処理装置
CN114928514A (zh) * 2022-05-18 2022-08-19 深圳通业科技股份有限公司 多芯片数据传输方法、装置、终端及存储介质

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5982696A (en) * 1996-06-06 1999-11-09 Cirrus Logic, Inc. Memories with programmable address decoding and systems and methods using the same
US5960468A (en) * 1997-04-30 1999-09-28 Sony Corporation Asynchronous memory interface for a video processor with a 2N sized buffer and N+1 bit wide gray coded counters
US6182253B1 (en) * 1997-07-16 2001-01-30 Tanisys Technology, Inc. Method and system for automatic synchronous memory identification
JP4098496B2 (ja) * 2001-06-22 2008-06-11 株式会社ルネサステクノロジ 半導体記憶装置
US6865646B2 (en) * 2001-12-31 2005-03-08 Intel Corporation Segmented distributed memory module cache
DE10223178B4 (de) * 2002-05-24 2004-11-04 Infineon Technologies Ag Schaltungsanordnung mit einer Ablaufsteuerung, integrierter Speicher sowie Testanordnung mit einer derartigen Schaltungsanordnung
US7505890B2 (en) * 2003-01-15 2009-03-17 Cox Communications, Inc. Hard disk drive emulator
US20080082763A1 (en) * 2006-10-02 2008-04-03 Metaram, Inc. Apparatus and method for power management of memory circuits by a system or component thereof
US7590796B2 (en) 2006-07-31 2009-09-15 Metaram, Inc. System and method for power management in memory systems
US7464225B2 (en) 2005-09-26 2008-12-09 Rambus Inc. Memory module including a plurality of integrated circuit memory devices and a plurality of buffer devices in a matrix topology
US20070156947A1 (en) * 2005-12-29 2007-07-05 Intel Corporation Address translation scheme based on bank address bits for a multi-processor, single channel memory system
WO2007095080A2 (en) * 2006-02-09 2007-08-23 Metaram, Inc. Memory circuit system and method
US9632929B2 (en) * 2006-02-09 2017-04-25 Google Inc. Translating an address associated with a command communicated between a system and memory circuits
JP5292935B2 (ja) * 2008-06-16 2013-09-18 日本電気株式会社 メモリモジュール制御方法及びメモリモジュール並びにデータ転送装置

Also Published As

Publication number Publication date
EP2313891B1 (en) 2016-04-27
EP2313891A1 (en) 2011-04-27
EP2313891A4 (en) 2011-08-31
US20110145493A1 (en) 2011-06-16
KR20110059712A (ko) 2011-06-03
US8788747B2 (en) 2014-07-22
WO2010016818A1 (en) 2010-02-11
CN102177550B (zh) 2014-03-12
CN102177550A (zh) 2011-09-07
JP2011530735A (ja) 2011-12-22
KR101467623B1 (ko) 2014-12-01

Similar Documents

Publication Publication Date Title
JP5231642B2 (ja) メモリモジュール内の独立制御式仮想メモリ装置
KR101477849B1 (ko) 메모리 모듈 및 메모리 모듈 제어 방법
US9773531B2 (en) Accessing memory
US7180816B2 (en) Address coding method and address decoder for reducing sensing noise during refresh operation of memory device
KR0184091B1 (ko) 다이나믹형 메모리
JP5400886B2 (ja) マルチコアメモリモジュール内のパワーダウンモードの動的利用
US9268719B2 (en) Memory signal buffers and modules supporting variable access granularity
KR20110099227A (ko) 다중-직렬 인터페이스 적층-다이 메모리 아키텍처
US20090097348A1 (en) Integrated circuit including a memory module having a plurality of memory banks
US6779074B2 (en) Memory device having different burst order addressing for read and write operations
KR101183739B1 (ko) 멀티포트 메모리 슈퍼셀 및 데이터 경로 스위칭 회로를 갖는 집적 회로
US20160313923A1 (en) Method for accessing multi-port memory module and associated memory controller
US20070038803A1 (en) Transparent SDRAM in an embedded environment
JP5204777B2 (ja) メモリ装置及びその制御方法
KR20120126031A (ko) 반도체 장치
KR102545175B1 (ko) 어드레스 테이블을 포함하는 메모리 장치, 및 메모리 컨트롤러의 동작 방법
US7778102B2 (en) Semiconductor memory device
JP2009032055A (ja) データ記憶装置
CN112835513A (zh) 控制数据读写装置与方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121026

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130123

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: 20130219

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130321

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

Free format text: PAYMENT UNTIL: 20160329

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5231642

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

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250