JP4891925B2 - メモリモジュールからローカルデータをマージするためのメモリバッファ - Google Patents

メモリモジュールからローカルデータをマージするためのメモリバッファ Download PDF

Info

Publication number
JP4891925B2
JP4891925B2 JP2007553363A JP2007553363A JP4891925B2 JP 4891925 B2 JP4891925 B2 JP 4891925B2 JP 2007553363 A JP2007553363 A JP 2007553363A JP 2007553363 A JP2007553363 A JP 2007553363A JP 4891925 B2 JP4891925 B2 JP 4891925B2
Authority
JP
Japan
Prior art keywords
data
input
signal
coupled
serial
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
JP2007553363A
Other languages
English (en)
Other versions
JP2008529175A (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 JP2008529175A publication Critical patent/JP2008529175A/ja
Application granted granted Critical
Publication of JP4891925B2 publication Critical patent/JP4891925B2/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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1647Handling requests for interconnection or transfer for access to memory bus based on arbitration with interleaved bank access
    • 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
    • G06F13/1673Details of memory controller using buffers
    • 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
    • G06F13/1684Details of memory controller using multiple buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/74Selecting or encoding within a word the position of one or more bits having a specified value, e.g. most or least significant one or zero detection, priority encoders
    • 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
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4093Input/output [I/O] data interface arrangements, e.g. data buffers
    • 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
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/103Read-write modes for single port memories, i.e. having either a random port or a serial port using serially addressed read-write data registers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/1036Read-write modes for single port memories, i.e. having either a random port or a serial port using data shift registers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • G11C7/222Clock generating, synchronizing or distributing circuits within memory device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/10Aspects relating to interfaces of memory device to external buses
    • G11C2207/107Serial-parallel conversion of data or prefetch

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)
  • Information Transfer Systems (AREA)
  • Multi Processors (AREA)

Description

本発明の実施形態は、一般的にはメモリに関し、特に、メモリバッファからシリアルデータチャンネル上へデータをマージすることに関する。
メモリ回路において、一般的に、有効なデータのためにメモリ回路の読出しにかかる期間であるメモリ読出しレーテンシがある。メモリ書込みレーテンシは、一般的に、また、メモリにデータを書込むためのメモリ回路に有効なデータを保持するために要求される期間である。メモリ読出しレーテンシ及びメモリ書込みレーテンシは、時々キャッシュメモリによってプロセッサからバッファリングされてもよい。しかしながら、求められたデータがキャッシュメモリの中で見つけられないときがある。それらのケースでは、プロセッサは、メモリ回路に、その時、データを読出すか又は書込むことを必要とする場合がある。このように、それぞれのメモリ読出しレーテンシ又はメモリ書込みレーテンシが、プロセッサによって実施(経験)されてもよい。メモリ回路が異なるならば、メモリ読出しレーテンシ及びメモリ書込みレーテンシは、一のメモリ回路から次まで一致していなくてもよい。その場合には、プロセッサによって実施(経験)されたメモリ読出しレーテンシ及びメモリ書込みレーテンシは異なることになる。
事前に、メモリモジュールは、マザー又はホスト・プリント回路基板に結合され、それにより、パラレルデータでメモリから読出しでき及びメモリに書込みできるように、パラレルデータ・バスとパラレルに結合される。パラレル・データバスは、一度にデータの少なくとも一のデータバイト又はワードを転送するために共に同期したパラレルデータビットラインを有する。パラレルデータビットラインは、一般的に、プリント回路基板(PCB)上の一のメモリモジュール・ソケットから他への間隔をまたぐようにルートを決められる。これは、第1の寄生容量性負荷を発生させる。メモリモジュールがメモリ・ソケットに結合されるので、追加の寄生容量性負荷は、パラレル・データバスのパラレルデータビットラインの上に発生される。プラグが差し込まれる多くのメモリモジュールがあってもよいので、追加の寄生の容量性負荷は重大な量になり、高周波メモリ回路を動作させなくすることがある。
一のメモリモジュールは、一般的に、アドレスライン上のアドレスによって一度にアドレス指定される。一のアドレスされた記憶モジュールは、一般的にパラレルのデータバス上へ一度にデータを書込む。他のメモリモジュールは、衝突を避けるために、パラレルデータバス上への書込みデータを一般的に待機させなければならない。
パラレルデータビットラインは、データフローの速度を上げる場合がある一方で、メモリのパラレル・データバスは、メモリ回路及びプロセッサ間のデータの読出し及び書込みのアクセスを遅くすることがある。
本発明の各実施形態の以下の詳細な説明においては、本発明の完全な理解を与えるために、多数の具体的な詳細が記載される。しかし、本発明のその各実施形態が、これらの特定の詳細なしで実行されてもよいことは、当業者にとって明らかである。他の場合において、不必要に本発明の各実施形態の態様を不明瞭にしないために、周知の方法、プロシージャ、コンポーネント、及び、回路は、詳述していない。
一般的に、本発明の各実施形態では、高速で、高速リンク上のデータの一部をそれ自身のデータと変換するノースバウンド(上りシリアルリンク)・データ・マージ(NBDM)と称されるデータ・マージ機能を提供する。すなわち、本発明の各実施形態は、シリアル・データリンク上の入力シリアル・データトラフィック(例えば「アイドル状態のパケット又はフレーム」)の一部を、入力シリアル・データトラフィックが、どこへローカル・データを挿入するべきかについて決定して、その中に挿入されたローカル・データを備える入力データトラフィックを再送信する処理(例えば、シリアル/パラレル変換、フレームへのアセンブル、及び、デパケッタイズ/デインターリーブ・データ)を内部コア・ロジックが実施することなく、そのローカルデータと変換する。
あらかじめ、入力シリアルデータは、フレームにアセンブルされて、コア・ロジックによりローカルデータを伝送するために、受信されていなければならない。メモリモジュールの入力/出力(IO)インタフェースは、ローカルデータを送信するための入力シリアルデータ処理を有さずに、シリアル・データリンク上の他のメモリモジュール、又は、メモリコントローラから受信されて、バッファ集積化回路の内部コア・ロジックをバイパスしている入力シリアルデータストリームを単に再送信してもよい。これは、シリアルデータストリームのデータ・レーテンシを減らすことができる。再送信されたシリアルデータストリームの一部は、時々「フィードスルデータ」、又は、「フィードスルーデータ」(FTD)と称される。
いかなるローカルデータを送信することなく、入出力インタフェースは、通常、チップのコア・ロジックをバイパスして、受信されたシリアルデータストリームを再送信する。バッファ・メモリチップのコア・ロジックは、ローカルデータを送信することを必要とするときに、ローカル・データと共にマージ・リクエストを入出力インタフェースに送信する。ローカル・データを生成するコア・クロックが、トレーニングの間、本発明の各実施形態の高速シリアル・データリンクのフレーム・クロックに同調するので、入出力インタフェースは、アイドル状態のパケット、又は、フレームを変換するために、該当するフレーム境界で、直ちにデータをマージすることができる。
先に、受信されたシリアル・データがフレームにアセンブルされて、コア・ロジックによって受信されて、それから出力のリンクに再送信されることが意図された。この場合、もしコア・ロジックが出力のリンクで送信するローカルデータを有するなら、その時にいくつかの着信データがそれ自身のデータと取り替えられ、出力リンク上へデータがリパケッタイズ及びシリアル化される。これは、データに少なくとも2フレームのデータ・レーテンシを招く。本発明の各実施形態は、ローカル・データが出力リンクにマージできるようにするためのイニシャルトレーニングの間に、アイドル状態のパケットを変換するための正常動作の間に入力データを受信して分析することなく、マージ・タイミングを設定する。本発明の各実施形態は、バッファ・メモリ集積回路により、少なくとも2フレームのデータ・ダウンから2、3ビット・インターバルのデータ・レーテンシを減らすことができる。
本発明の一実施形態において、少なくとも一つのレーンを有するシリアル入出力インタフェースを含む集積回路が与えられる。シリアル通信チャネルの各レーンは、第1のパラレル入力シリアル出力(PISO)シフトレジスタ、第1のマルチプレクサ、及び、シリアル・トランスミッタを共に結合させて備えてもよい。
第1のパラレル入力シリアル出力(PISO)シフトレジスタは、ローカル・データバスに結合するパラレル入力、第1のクロック信号に結合するクロック入力、ロード信号に結合するロード/シフトバー入力を有する。第1のPISOシフトレジスタは、ローカル・データバス上のパラレルデータを、第1のシリアル出力上のシリアル化されたローカルデータにシリアル化する。
The 第1のマルチプレクサは、第1のシリアル出力に結合する第1のデータ入力、フィードスルー・データを受信するための第2のデータ入力、及び、ローカル・データ選択信号に結合する第1の選択制御入力を有する。マルチプレクサは、ローカル・データ選択信号に応じて、選択的にシリアル化されたローカルデータ、及び、フィードスルー・データをマージして、多重化出力のシリアル・データストリームにする。
シリアル・トランスミッタは、シリアル・データストリームを受信するために、マルチプレクサの多重化された出力と結合する入力を有する。シリアル・トランスミッタは、シリアル・データリンク上へシリアル・データストリームをドライブする。
フィードスルー・データは、2ビット長であってもよく、一方、PISOシフトレジスタへのパラレル入力は6ビット長であってもよく、PISOシフトレジスタのシリアル出力は2ビット長であってもよい。この場合、第1のマルチプレクサは、シリアル・トランスミッタが 2つのビットシリアル・データストリームを受信してそれをシリアル・データリンク上へのシングルビットシリアル・データストリームとしてシリアル化するような、そのような多重化された出力のシリアルデータストリームが2ビット長である、2ビット・バス・マルチプレクサであってもよい。
各レーンは、再同期したデータを受信するための第1の入力、再サンプリングされたデータを受信するための第2の入力、及び、ローカル・クロック・モード信号に結合する選択入力を有する第2のマルチプレクサを更に備えてもよい。第2のマルチプレクサは、出力されたローカルクロック・モード信号に応じたフィードスルー・データとして、再同期したデータ、又は、再サンプリングされたデータの間で選択する。各レーンは、第1のマルチプレクサ及び第1のPISOシフトレジスタと結合する制御ロジックを更に備えてもよい。制御ロジックは、マージ制御ロジック、及び、モード制御ロジックを備えてもよい。制御ロジックは、第1のクロック信号、及び、マージ・イネーブル信号及び第1のクロック信号に応じて、シリアル化されたローカルデータ及びフィードスルー・データをマージしてシリアル・データストリームにするための、ローカル・データ選択信号を生成するためのマージ・イネーブル信号を受信してもよい。
本発明の他の実施形態において、データのアイドル状態のフレームの間に散在するデータのフィードスルーフレームを表している入力シリアルデータストリームを受信すること、入力シリアルデータストリームを復号することなく、マージ・イネーブル信号に応じて、データのローカルフレームとデータのフィードスルーフレームとを共にマージして出力シリアルデータストリームにすること、及び、次のメモリモジュール又はメモリコントローラに出力されたノースバウンド・データ上の出力シリアル・データストリームを送信することを含むメモリモジュールのための方法が提供される。データのローカルフレームは、入力されたシリアル・データストリームのデータのアイドル状態のフレームを変換することにより、出力されたシリアル・データストリームにマージされることができる。受信している入力シリアルデータストリームにおいて、入力されたシリアル・データストリームのデータのビットをサンプリングすること(また、再サンプリングすることと称してもよい)、又は、入力されたシリアル・データストリームのデータのビットを再同期することが、提供されてもよい。データのローカルフレームと、フィードスルーフレームのデータとを共にマージングすることにおいて、データのローカルフレームのパラレルビットを、データのシリアルビットにシリアル化すること、そして、マージ・イネーブル信号に応じて、データのローカルフレームのデータのシリアルビットと、データのフィードスルーフレームのシリアルビットとを多重化して、出力シリアル・データストリームのシリアルビットにすることが、提供されてもよい。データのローカルなフレームは、バス・モード信号に応じて、ローカルバスの上に、6ビット、又は、12ビットのパケットで、パラレルに、選択的に受信されてもよい。
本発明の他の実施形態のシステムは、プロセッサ、プロセッサに結合するメモリコントローラ、及び、メモリコントローラに結合するメモリの少なくとも一つバンクを備えて提供される。プロセッサは、命令、及び、プロセス・データを実行するために提供される。メモリコントローラは、プロセッサからの書込みデータを有する書込みメモリ命令を受信するためと、プロセッサから読出しメモリ命令を受信して読出しデータをそれに対して出力するために提供される。
メモリの一つバンクは、それぞれが、共に結合しているバッファ集積回路、及び、ランダムアクセスメモリ集積回路を有する少なくとも一つのメモリモジュールを含む。バッファ集積回路は、メモリコントローラから書込みデータを受け取るための、少なくとも一つのシリアルレーンを有するサウスバウンド(下りシリアルリンク)シリアル入出力インタフェースと、ノースバウンドシリアル入力の少なくとも一つのシリアルレーン及びメモリコントローラに読出されたデータを送信するためのノースバウンドシリアル出力を有するノースバウンドシリアル入出力インタフェースとを含む。
ノースバウンド入出力インタフェースの各シリアル・レーンは、パラレル/シリアル・コンバータ、及び、第1のマルチプレクサを有する。パラレル/シリアル・コンバータは、ローカル・データバスのパラレルビットと、第1のクロック信号に結合するクロック入力と、ロード信号に結合するロード/シフト−バー入力と、に結合するパラレル入力を有する。パラレル/シリアル・コンバータは、ローカル・データバス上のデータのパラレルビットを、第1のシリアル出力上のシリアル化されたローカルデータにシリアル化する。第1のマルチプレクサは、パラレル/シリアル・コンバータのシリアル出力に結合する第1のデータ入力、ノースバウンドシリアル入力からシリアル・フィードスルー・データを受け取るための第2のデータ入力、及び、ローカル・データ選択信号に結合する選択入力を有する。ローカル・データ選択信号に応じて、シリアル化されたローカルデータ、及び、シリアル・フィードスルー・データを選択的にマージしてノースバウンドシリアル出力上のシリアル・データストリームにする第1のマルチプレクサ。
ノースバウンドシリアル入出力インタフェースの各シリアル・レーンは、シリアル・データストリームを、ノースバウンドシリアル・データ出力上で、シリアル・データストリームを受信する第1のマルチプレクサの多重化された出力に結合する入力を有するメモリコントローラの方へドライブするために、トランスミッタを更に有してもよい(トランスミッタ)。
ノースバウンド・シリアル入出力インタフェースの各シリアル・レーンは、マルチプレクサ及び第1のパラレル/シリアル・コンバータに結合する制御ロジックを更に備えてもよい。制御ロジックは、第1のクロック信号、及び、ローカル・データ選択信号を生成するためのマージ・イネーブル信号を受信し、マージ・イネーブル信号及び第1のクロック信号に応じて、シリアル化されたローカルデータとシリアル・フィードスルー・データをマージしてシリアル・データストリームにする。
システムのメモリの各バンクのために、メモリコントローラは、少なくとも一つのメモリモジュールからシリアルデータの少なくとも一つのレーンを受信するノースバウンドシリアル入力インタフェース、及び、少なくとも一つのメモリモジュールに、シリアルデータの少なくとも一つのレーンを送信するサウスバウンドシリアル出力インタフェースを備える。
本発明の他の実施形態において、バッファー付きメモリモジュールは、プリント回路基板、複数のランダムアクセスメモリ(RAM)集積回路、及び、バッファ集積回路を備えて、提供される。プリント回路基板は、ホストシステムのレセプタクルに結合させるエッジ結合を有する。複数のランダムアクセスメモリは、(RAM)集積回路の及び、バッファ集積回路は、プリント回路基板に結合される。バッファ集積回路は、複数のRAM集積回路、及び、エッジ結合に、電気的に結合する。バッファ集積回路は、シリアルデータストリームの複数のレーンのための複数のマージ・ロジックスライスを有しているデータ・マージ・ロジックを有するサウスバウンド入出力インタフェース、及び、ノースバウンド入出力インタフェースを備える。
バッファ集積回路の各マージロジック・スライスは、第1のパラレル入力シリアル出力(PISO)シフトレジスタ、及び、第1のマルチプレクサを含む。第1のパラレル入力−シリアル出力された(PISO)シフトレジスタは、ローカル・データバス、第1のクロック信号に結合するクロック入力、第1のロード信号に結合するロード/シフトバー入力に結合するパラレル入力を有する。第1のPISOシフトレジスタは、ローカル・データバス上のパラレルデータを、第1のシリアル出力上のシリアル化されたローカルデータにシリアル化する。第1のマルチプレクサは、第1のPISOシフトレジスタの第1のシリアル出力に結合する第1のデータ入力、シリアル化されたフィードスルー・データを受信するための第2のデータ入力、及び、ローカル・データ選択信号に結合する第1の選択入力を有する。第1のマルチプレクサは、ローカル・データ選択信号に応じて、シリアル化されたローカルデータと、シリアル化されたフィードスルー・データとを選択的にマージして、多重化された出力上のシリアル・データストリームにする。
各マージ・ロジック・スライスは、第1のマルチプレクサ、及び、第1のPISOシフトレジスタに結合する制御ロジックを更に備えていてもよい。制御ロジックは、マージ・イネーブル信号、及び、第1のクロック信号に応じて、シリアル化されたローカルデータ、及び、シリアル化されたフィードスルー・データをマージしてシリアル・データストリームにするローカル・データ選択信号を生成するために、第1のクロック信号、及び、マージ・イネーブル信号を受信する。
バッファー付きメモリモジュールのバッファ集積回路のノースバウンド入出力インタフェースは、各マージ・ロジック・スライスに、各々が第1のマルチプレクサの対応する出力に結合された入力を有する複数のトランスミッタ、シリアル・データストリームを受信して、それをシリアル・データリンク上へドライブするための複数のトランスミッタを更に備えてもよい。
本発明の他の実施形態において、メモリシステムは、メモリのバンクを形成するために共にデイジーチェーン方式でつながれた複数のバッファー付きメモリモジュールを備えて与えられる。各バッファー付きメモリモジュールは、複数のメモリ集積回路、及び、複数のメモリ集積回路に結合するバッファ集積回路を備える。バッファ集積回路は、メモリコントローラ、又は、従来のバッファー付きメモリモジュールからサウスバウンドシリアル・データを受信して次のバッファー付きメモリモジュールに再送信するサウスバウンド入出力シリアルインターフェース、シリアル化されたフィードスルー・データとしての少なくとも一つのバッファー付きメモリモジュールからノースバウンド・シリアル・データを受信してそれをメモリコントローラに向けて再送信出力するノースバウンド入出力シリアルインターフェース、書込みコマンドによってバッファー付きメモリモジュールにアドレス指定されたサウスバウンド入出力シリアルインターフェースから書込みデータを記憶する書込みデータ先入れ先出し方式(FIFO)バッファ、書込みデータFIFOバッファに記憶された書込みデータを複数のメモリ集積回路の少なくとも一つに転送して読出しデータを複数のメモリ集積回路の少なくとも一つから読出しデータFIFOバッファに転送するメモリ入出力インタフェース、及び、読出されたコマンドによってバッファー付きメモリモジュールからアドレス指定されたローカル・データとしてメモリ集積回路の少なくとも一つからの読出しデータを記憶する読出しデータFIFOバッファ、を含む。
ノースバウンド入出力シリアルインターフェースは、複数のメモリ集積回路からのローカル・データをシリアル化し、それをマージして、タイミング・ベース上で、受信されたノースバウンド・シリアルデータをデコードせずに、シリアル化されたフィードスルー・データを有するノースバウンド・シリアルデータストリームにする。ノースバウンド入出力シリアルインターフェースは、第3のFIFOバッファ、第3のFIFOバッファに結合するデータ・マージ・ロジック、及び、データマージロジックに結合する複数のトランスミッタを備える。
データ・マージ・ロジックは、各々が、ローカル・データバス上のパラレルデータをシリアル化して、第1のシリアル出力上のシリアル化されたローカルデータにする第1のパラレル入力シリアル出力(PISO)シフトレジスタと、ローカル・データ選択信号に応じて、シリアル化されたローカルデータとシリアル化されたフィードスルー・データとを選択的にマージして、多重化された出力上のシリアル・データストリームにする第1のマルチプレクサを備える。PISOシフトレジスタは、ローカル・データバス、第1のクロック信号に結合するクロック入力、及び、第1のロード信号に結合するロード/シフトバー入力に結合するパラレル入力を有する。第1のマルチプレクサは、第1のPISOシフトレジスタの第1のシリアル出力に結合する第1のデータ入力、シリアル化されたフィードスルー・データを受信する第2のデータ入力、ローカル・データ選択信号に結合する第1の選択入力、を有する。
複数のトランスミッタの各々は、各マージ・ロジック・スライスの第1のマルチプレクサに対応する出力に結合する入力を有する。複数のトランスミッタは、シリアル・データストリームからデータを受信し、シリアル・データリンク上へそれをドライブする。
メモリシステムにおいて、データマージロジックの各マージロジック・スライスは、第1のマルチプレクサ、及び、第1のクロック信号及びマージ・イネーブル信号を受信し、シリアル化されたローカルデータ、及び、シリアル化されたフィードスルー・データをマージしてシリアル・データストリームにするローカル・データ選択信号を生成するための第1のPISOシフトレジスタに結合した制御ロジックを更に含んでも良い。
メモリシステムは、複数のバッファー付きメモリモジュールの少なくとも一つに結合するメモリコントローラを更に備えてもよい。メモリコントローラは、サウスバウンド・シリアル・データストリームを、複数のバッファー付きメモリモジュールの少なくとも一つに送信するサウスバウンド出力シリアルインターフェースと、ノースバウンド・シリアル・データストリームを、複数のバッファー付きメモリモジュールの少なくとも一つから受信するノースバウンド入力シリアルインターフェースとを有する。
ここで図1Aを参照する。本発明の各実施形態が利用されてもよい代表的なコンピュータシステム100のブロック図が示されている。コンピュータシステム100Aは、中央処理装置(CPU)101、キーボードのような入出力装置(I/O)102、モデム、プリンタ、外部記憶装置など、及び、 CRT、又は、グラフィックディスプレイのようなモニタ装置(M)103、を備える。モニタ装置(M)103は、視覚、又は、音声フォーマットのような人間の理解できるフォーマットのコンピュータ情報を提供してもよい。システム100は、コンピュータシステム以外の多くの異なる電子的システムであってもよい。
ここで図1Bを参照する。本発明の各実施形態が利用されてもよいクライアント・サーバーシステム100Bが示されている。クライアント・サーバーシステム100Bは、ネットワーク112に結合された少なくとも一つのクライアント110A−110M、及び、ネットワーク112に結合するサーバ114を備える。クライアント110A−110Mは、情報を送信又は受信してサーバに必要になるであろう、いかなるデータベースおよび/またはアプリケーションソフトウェアとのアクセスを得るためのネットワーク112を通してサーバ114と通信する。サーバ114は、メモリを備えた中央処理装置を有して、少なくとも一つのディスクドライブ・ストレージ・デバイスを更に備えてもよい。サーバ114は、例えばネットワーク付属のストレージ(NAS)デバイスとしてストレージ・エリアネットワーク(SAN)において使用されてもよくて、ディスクアレイを有していてもよい。サーバ114に対するデータアクセスは、多重クライアント110A−110Cを有するネットワーク112を通じて共有される。
ここで図2Aを参照することで、本発明の各実施形態が利用されてもよい中央処理装置101Aのブロック図が示される。中央処理装置101Aは、図示されたように共に結合されたプロセッサ201、メモリコントローラ202、及び、第1のメモリ・チャンネルの第1のメモリ204Aを備える。中央処理装置101Aは、メモリコントローラ202、及び、プロセッサ201の間に結合されたキャッシュメモリ203、及び、プロセッサ201に結合されたディスクストレージデバイス206を更に備えてもよい。中央処理装置101Aは、メモリコントローラ202に結合された第2のメモリ204Bを有する第2のメモリ・チャンネルを更に備えてもよい。中央処理装置101Aにて図示したように、メモリコントローラ202、及び、キャッシュメモリ203は、プロセッサ201の外部にあってもよい。
ここで図2Bを参照する。本発明の各実施形態が利用されてもよい他の中央処理装置101Bのブロック図が示されている。中央処理装置101Bは、内部メモリコントローラ202'、及び、プロセッサ201'の中で内蔵メモリ・コントローラ202'に結合されたメモリ204Aに伴われる第1のメモリ・チャンネルを有するプロセッサ201'を備える。プロセッサ201'は、内部キャッシュメモリ203'を更に備えてもよい。中央処理装置101Bは、第2のメモリ・チャンネルのための第2メモリ204B、及び、プロセッサ201'に結合させたディスク記憶デバイス206を更に備えてもよい。
ディスクストレージデバイス206は、フロッピーディスク、zipディスク、DVDディスク、ハードディスク、書換形光ディスク、フラッシュメモリ、又は、他の不揮発性ストレージ・デバイスであってもよい。
プロセッサ201、201'は、少なくとも一つの実行ユニット、及び、少なくとも一つのレベルのキャッシュメモリを更に備えてもよい。他のレベルのキャッシュメモリは、プロセッサの外部、及び、メモリコントローラのインタフェースにあってもよい。プロセッサ、少なくとも一つ実行ユニット、又は、少なくとも一つのレベルのキャッシュメモリは、メモリ204A−204Bを伴うメモリコントローラ通して、(命令を含む)データを読出し、又は、書込んでもよい。メモリコントローラ202、202'にインターフェイスする場合に、メモリインタフェースの一部として、メモリに結合されたアドレス、データ、制御及びクロックの各信号があってもよい。プロセッサ201、201'及びディスクストレージデバイス206は、メモリ204A、204Bに情報を読出し及び書込みの両方とも実施してよい。
各図2A−2B中に示されたメモリ204A及び204Bは、例えば、フルバッファー付きデュアルインライン(FB)メモリモジュール(DIMM)、(FBDIMM)、又は、フルバッファー付き(FB)シングルインラインメモリモジュール(SIMM)、(FBSIMM)のような、少なくとも一つのバッファー付きメモリモジュール(MM1−MMn)を備えてもよい。
メモリコントローラ202、202'は、各メモリ204A−204Bをインターフェイスする。本発明の一実施形態において、メモリコントローラ202、202'は、特に、各メモリ204A−204Bの第1のバッファー付きメモリモジュールMM1中のバッファ(図2A−2Bに不図示、しかし、図5のバッファ450Aを参照のこと)をインターフェイスする。メモリコントローラ202、202'を用いて、メモリモジュールのバッファにインターフェイスすることは、バッファー付きメモリモジュール(MM1−MMn)のメモリデバイスに対する直接のインタフェースを避けることができる。このように、バッファ、及び、メモリコントローラ間のインタフェースを整合したままにできるとき、メモリ領域を提供するために異なるタイプのメモリ素子を使用することができる。
ここで図3を参照する。少なくとも一つのメモリバンク304A−304F(メモリバンク304、又は、複数のメモリバンク304と一般に称される)に結合されたバッファー付きメモリモジュール(BMM)メモリコントローラ(BMMMC)302が図示されている。メモリコントローラ302は、メモリの2つ以上のチャンネル、及び、メモリモジュールの2つ以上のメモリバンクをサポートすることができる。各メモリバンク304は、シリアル・チェインに共に結合された複数のバッファー付きメモリモジュール310A−310Hで構成される。バッファー付きメモリモジュール310A−310Hのこのシリアル・チェインは、時々、デイジーチェーンとも称される。隣接したメモリモジュールは、互いに結合され、時々、例えば、隣接したメモリモジュール310Bに結合されているメモリモジュール310Aのように、デイジーチェーン方式で共に結合されるように示されている。
各バンクの各メモリモジュール310A−310Hは、メモリコントローラ302を伴うシリアル形態で、メモリモジュール310A−310Hのシリアル・チェインに沿って、双方向に通信する。メモリコントローラ302から各メモリバンク304への、出力のコマンド(例えば、読み書きする)及びデータを備えた出力のデータリンクとして参照されてもよいサウスバウンド・シリアル・データリンク(SB)がある。メモリコントローラからのメモリモジュールに書込まれることになっている全書込みデータは、サウスバウンド・シリアル・データリンクを通じて送信される。各メモリバンク304からメモリコントローラ302への、帰りのデータを備えた帰りのデータリンクとして参照されてもよい、ノースバウンド・シリアル・データリンク(Nb)がある。メモリモジュールからの全読出しデータは、ノースバウンド・シリアル・データリンク上のメモリコントローラに送信される。
サウスバウンド・シリアル・データリンク(SB)において、メモリコントローラ302から第1のメモリバンク304へのデータ出力は、データを読出すことができて、それをメモリモジュール310Bに通過させることができる第1のメモリモジュール310Aに結合される。メモリモジュール310Bは、データを読出すことができて、シリアル・チェインの次のメモリモジュールに、それを通過させることができ、サウスバウンド・シリアル・チェインの最後のメモリモジュールに達するまで、同様に実施される。サウスバウンド・シリアル・チェインの最後のメモリモジュール、メモリモジュール310Hは、もはや更にデータを通過させるメモリモジュールを備えないので、サウスバウンド・シリアル・データリンクは、終了する。
ノースバウンド・シリアル・データリンク(Nb)において、データは、メモリバンク304からメモリコントローラ302の方向にシリアルに通信される。各メモリバンクの各メモリモジュールは、メモリの方へノースバウンド・シリアル・データリンク(Nb)上のコントローラを戻り方向に通信する。メモリモジュール310Hは、メモリコントローラの方へデータを通過させているメモリモジュールのシリアル・チェインを開始する。メモリモジュール310Hによって送信されたシリアルデータは、メモリモジュール310Gにより、通過されるか、又は、そうでなければ再送信される。
メモリモジュール310Gが前のメモリモジュール310Hからのシリアルデータを通過、又は、再送信してもよいとき、それは、また、それ自身のローカルデータを、メモリコントローラ302に向かうノースバウンド・シリアル・データストリームに加えるか、マージしてもよい。同様に、チェインを下る各メモリモジュールは、先のメモリモジュールからのシリアルデータを通過させるか、又は、再送信し、それら自身のローカルデータを、メモリコントローラ302に向かうノースバウンド・シリアル・データストリームに加えるか、又は、マージする。ノースバウンド・シリアル・チェインの最後のメモリモジュール、メモリモジュール310Aは、最終的なノースバウンド・シリアルデータストリームをメモリコントローラ302に送信する。
ノースバウンド、及び、サウスバウンド・シリアル・データリンクは、1つのメモリモジュールから他のメモリモジュールへのポイントからポイントへの通信を、シリアル・チェインに沿って同様に提供するように検討されてもよい。メモリコントローラ302から、メモリモジュール310Aからメモリモジュール310Hまでに、流れ出すシリアルデータは、サウスバウンド・データフローと称してもよい。メモリモジュール310Hからメモリモジュール310Zを通してメモリコントローラ302へのシリアルデータ流れは、ノースバウンド・データフローと称してもよい。図3において、サウスバウンド・データフローは、SBと記載された矢印によって示され、一方、ノースバウンド・データフローは、NBと記載された矢印によって図示される。
ここで図4を参照することで、メモリモジュール310A−310Hを例示するバッファー付きメモリモジュール(BMM)310を図示する。バッファー付きメモリモジュール310は、例えば、SIMM、又は、DIMMのようないかなるタイプであってもよい。バッファー付きメモリモジュール310は、プリント回路基板451に結合された、バッファ集積回路チップ(「バッファ」)450と、メモリ集積回路チップ(「メモリ素子」)452と、を備える。プリント回路基板451は、プリント回路基板をホストのエッジコネクタに結合するエッジコネクタ、又は、エッジコネクション454を備える。メモリモジュール310のサウスバウンド・データ入力(SBDI)、及び、ノースバウンド・データ出力(NBDO)は、それぞれ、前のバッファー付きメモリモジュール、又は、バッファー付きメモリコントローラ、から受信されるか、又は、に送信される。メモリモジュール310のノースバウンド・データ入力(NBDI)、及び、サウスバウンド・データ出力(SBDO)は、それぞれ、もしあれば、次のバッファー付きメモリモジュール、から受信されるか、又は、に送信される。
ここで図4を参照する。メモリコントローラ302は、サウスバウンド・データフロー、及び、ノースバウンド・データフローを使用することで、各メモリバンク304内の各メモリモジュール310A−310Hのバッファ450と通信している。各バンクのメモリコントローラに最も近接する第1のメモリモジュールであるメモリモジュール310Aのエッジ・コネクション454は、各メモリモジュール310Aのバッファ450をメモリコントローラ302に結合する。メモリモジュール310Aは、ノースバウンド・データフローのパスにおいて、もはや隣接するメモリモジュールを有していない。メモリモジュール310Aからのノースバウンド・データフローは、メモリコントローラ302に結合される。各バンクの隣接したメモリモジュール310A−310Hは、データが、書込み、読出し、各メモリモジュールの各バッファ450を通過、ができるように共に結合される。各バンクのメモリコントローラから最も遠い最後のメモリモジュールである、メモリモジュール310Hは、サウスバウンド・データフローのパスにおいて、もはや隣接するメモリモジュールを有していない。このように、メモリモジュール310Hは、メモリモジュールのシリアル・チェインに沿って、更なるサウスバウンド・データフローを通過させない。
メモリコントローラ302は、いかなるメモリモジュール内のメモリデバイス452とも直接に結合しない。各メモリバンク304内の各メモリモジュール310A−310H内のバッファ450は、プリント回路基板351上のメモリデバイス452に直接に結合する。バッファ450は、メモリモジュール310の同じプリント回路基板451上の全部のメモリ集積回路チップ、又は、デバイス452に、データのバッファリングを提供する。バッファ450は、データのインタリーブ/デインターリーブ、及び、パケット化/デパケッタイズとを実行すると同様に、必要に応じて、データのシリアル/パラレル変換、及び、パラレル/シリアル変換を更に実行する。バッファ450は、また、ノースバウンド、及び、サウスバウンド・データリンクのシリアル・チェインのその一部を、隣接したメモリモジュールにより制御する。さらに、第1のメモリモジュールである、メモリモジュール310Aの場合、バッファ450は、又、ノースバウンド、及び、サウスバウンド・データリンクのシリアル・チェインのその一部を、メモリコントローラ302により制御する。さらに、最後のメモリモジュールであるメモリモジュール310Hの場合、バッファ450は、また、メモリモジュールのシリアル・チェインの初期化、アイドル状態のフレーム又はノースバウンド・データリンクのデータのアイドル状態のパケットの生成、及び、メモリコントローラ302へのノースバウンド・データフロー、を制御する。
メモリモジュールのメモリコントローラ302、及び、メモリデバイス452間の直接結合がない場合、メモリチップ又はデバイス452は、バッファ450がどこと通信するかにより、タイプ、速度、サイズ、その他が異なっていてもよい。これは、メモリコントローラとメモリモジュールとの間のハードウェアインタフェースをアップデートすることを必要とせずに、新規のホスト、又は、マザーボードのプリント回路基板を購入することにより、メモリモジュールに改良されたメモリチップが使用されることを許容する。プリント回路基板をホスト、又は、マザーボードに結合するメモリモジュールは、その代わりにアップデートされる。本発明の一実施形態において、メモリチップ、集積回路、又は、デバイス452は、ダイナミック・ランダム・アクセス・メモリ(DRAM)を備えたDDRメモリチップである。さもなければ、本発明の他の各実施形態において、メモリチップ、集積回路、又は、デバイス452は、いかなる他のタイプのメモリ、又は、ストレージ・デバイスであってもよい。
ここで図5を参照する。メモリシステムのメモリバンク304A−304Fの、バッファー付きメモリモジュール(BMM)メモリコントローラ302に結合された、1個のメモリバンク304をより詳細に図示している。本発明の一実施形態において、BMMメモリコントローラ302は、フルバッファー付きデュアル・インライン(FBD)メモリコントローラであり、各メモリモジュール310A−310Hは、フルバッファー付きデュアル・インライン(FBD)メモリモジュール(FBDIMM)である。メモリバンク304は、デイジーチェーン方式で共につながれる少なくとも一つのメモリモジュール310A−310nを備える。各メモリモジュール310は、ノースバウンド・データリンク(Nb)、及び、サウスバウンド・データリンク(SB)に沿って、シリアルビットストリームに流れる有効なデータのためのリピータのように動作する。
メモリバンク304の各メモリモジュール310A−310nは、それぞれ、バッファ450A−450nを備える。それぞれの各バッファー付きメモリモジュール310A−310Nは、互いに異なってもよいメモリデバイス452A−452Nを備える。例えば、バッファー付きメモリモジュール310A内のメモリデバイス452Aは、バッファー付きメモリモジュール310B内のメモリデバイス452Bと異なってもよい。すなわち、各メモリモジュールのバッファ450は、メモリコントローラ302からトランスペアレントなメモリ素子に使用されるメモリのタイプを作る。
各メモリモジュールのバッファ450は、ノースバウンド・データリンク(Nb)、及び、サウスバウンド・データリンク(SB)に沿って、シリアルビットストリームで流れているデータのためのリピータのように動作する。さらに、各メモリモジュールのバッファ450は、アイドル状態の、又は、無効なデータのフレーム、又は、部分的なフレームの代わりに、それ自身のローカルデータを、ノースバウンド・データリンク(Nb)に沿って流れるシリアルビットストリームのレーンに挿入、又は、マージしてもよい。
メモリバンク304内のメモリコントローラ302とメモリモジュール310A−310nとのタイミングを共に同期させるために、各メモリモジュール、及び、メモリコントローラに結合されたクロック・ジェネレータ500が提供される。クロック・ジェネレータ500からのクロック信号501は、メモリコントローラ302に結合される。クロック信号502A−502nは、それぞれメモリモジュール310A−310nのバッファ450A−450nに結合される。
メモリコントローラ302は、メモリバンク304内のメモリモジュールを通して、サウスバウンド・データリンクSBl−SBnの上で通信する。メモリコントローラ302は、メモリバンク304内で、ノースバウンド・データリンクNB1−NBnの上で、各メモリモジュール310からデータを受信してもよい。サウスバウンド・データリンクSBl−SBnは、シリアルデータの少なくとも一つのレーンを備えてもよい。同様に、ノースバウンド・データリンクNBl−NBnは、シリアルデータの少なくとも一つのレーンを備えてもよい。本発明の一実施形態において、ノースバウンド・データリンクNBl−NBnのシリアルデータには、14本のレーンがある。
最後のメモリモジュールである、メモリモジュール310nは、それが送信するデータを有するか否かに関わらず、疑似乱数のビットストリームを生成して、それをノースバウンド・リンクNBn上のメモリコントローラ302の方へ流し始める。疑似乱数のビットストリームは、ノースバウンド・リンクNB1−NBn上の1つのメモリモジュールから次まで通過させてもよい。メモリモジュール310nがメモリコントローラ302に送信するローカルデータを有する場合、メモリモジュール310nは、ローカルデータを備えているデータのフレームを生成して、そのフレームを疑似乱数のビットストリームのデータのフレームの代わりに、ノースバウンド・リンクNBnに配置する。疑似乱数のビットストリームは、データのアイドル状態のフレームを示すデータのフレームにパケット化されたビットのシーケンスを備えてもよい。データのアイドル状態のフレームは、ローカルデータのフレームをノースバウンド・リンクNB1−NBn.の上を流れるシリアルビットストリームにマージするために、更に完全に他のメモリモジュール(メモリモジュール310A−310n)と取り替えられてもよい。例えば、メモリモジュール310Bは、入力ノースバウンド・リンクNB3上のアイドル状態のフレームを受信してもよく、アイドル状態のフレームの代わりにローカルデータのフレームを、出力ノースバウンド・リンクNB2上のシリアルビットストリームにマージしてもよい。
図5において図示されたメモリシステムは、メモリコントロール302から各メモリモジュール310A−310Nに結合されたSMバス(SMBus)506を更に備えてもよい。SMバス506は、シリアル・データバスであってもよい。SMバス506は、バッファの内部レジスタにアクセスするためのサイドバンドメカニズムである。リンク・パラメータは、ノースバウンド、及び、サウスバウンド・シリアル・データリンクをあげることの前に、バッファの BIOSにより設定されてもよい。SM−バスは、また、バッファの内部レジスタにアクセスすることにより、システムをデバッグするために使用されてもよい。
メモリコントローラ302は、(図2Bのプロセッサ201'及びメモリコントローラ202'で図示されたように)プロセッサの一部であってもよく、又は、(図2Aのプロセッサ201及びメモリコントローラ202で図示されたように)別々の集積回路であってもよい。いずれにせよ、メモリコントローラ302は、メモリへ又はメモリからそれぞれの書込み又は読出しデータのために、プロセッサから書込みデータを備えた書込みメモリ命令を受信し、プロセッサから読出されたメモリ命令を受信し、プロセッサに読出しデータを出力することができる。メモリコントローラ302は、メモリの各バンクの少なくとも一つのメモリモジュールにシリアルデータの少なくとも一つのレーンを送信するための、サウスバウンド・シリアル出力インタフェース(SBO)510を備えてもよい。メモリコントローラ302は、メモリの各バンクの少なくとも一つのメモリモジュールからシリアルデータの少なくとも一つのレーンを受信するための、ノースバウンド・シリアル入力インタフェース(NBI)511を更に備えてもよい。
ここで図6(図6−1及び6−2)を参照する。バッファー付きメモリモジュール310のバッファ450の機能ブロック図が示されている。バッファ450は、バッファー付きメモリモジュール310のプリント回路基板451に取り付けられることができる集積回路である。バッファー付きメモリモジュール310に及びからデータを結合するために、バッファ450は、サウスバウンド・バッファ入出力インターフェイス600A、及び、ノースバウンド・バッファ入出力インターフェイス600Bを備える。
ノースバウンド・バッファ入出力インターフェイス600Bは、ノースバウンドデータ出力(NBDO)601、及び、ノースバウンドデータ入力(NBDI)602をインターフェイスする。サウスバウンド・バッファ入出力インターフェイス600Aは、サウスバウンドデータ入力(SBDI)603、及び、サウスバウンドデータ出力(SBDO)604をインターフェイスする。本発明の一実施形態において、ノースバウンドデータ入力602、及び、ノースバウンドデータ出力601は、シリアルデータストリームの14レーンを備える。本発明の一実施形態において、サウスバウンドデータ入力603、及び、サウスバウンドデータ出力604は、シリアルデータストリームの10レーンを備える。
メモリデバイス452にインターフェイスするために、バッファ450は、メモリ入出力インターフェイス612を備える。メモリ入出力インターフェイス612で、DRAMデータは、双方向にDRAMデータ/ストローブ・バス605の上を搬送され、一方、アドレス及びコマンドは、メモリデバイスに送出するためにDRAMアドレス/コマンド・バス606A−606B上を搬送される。メモリ素子452は、メモリ入出力インターフェイス612を備えたデータ転送を同期させるために、DRAMクロック・バス607A−607Bによって計時される。バッファ450のコア・ロジックから、メモリ入出力インターフェイス612は、マルチプレクサ635からCMDアウト・バス692の上のコマンド、マルチプレクサ637からのADDアウト・バス693上のアドレス、マルチプレクサ636からのデータ・アウト・バス691上の書込データ、を受信する。データ・アウト・バス691上の書込みデータは、DRAMデータ/ストローブ・バス605の上の該当するメモリデバイスに通信される。データアウトバス691上のアドレス・データは、DRAMアドレス/コマンド・バス606A−606Bの上の該当するメモリデバイスに通信される。CMDアウトバス692上のコマンドは、DRAMアドレス/コマンド・バス606A−606Bの上の該当するメモリデバイスに通信される。
バッファ450の機能ブロックのためのコア・クロック信号611を生成するために、結合されたフェイズロックループ(PLL)613は、リファレンスクロック(REF CLOCK)502を受信する。リファレンスクロック(REF CLOCK)502は、差分の入力信号であってもよく、差分入力受信機によって適切に受信される。バッファ450は、SMバスコントローラ629に結合されたSMバス506を更に受信する。
リセット信号(Reset#)608は、それがアクティブローになる時に、バッファ450、及び、機能ブロックをリセットするために、リセット制御ブロック628に結合される。
メモリ入出力インターフェイス612、及び、バッファ入出力インターフェイス600A−600Bの間は、バッファ450のコア・ロジックである。バッファ450のコア・ロジックは、メモリデバイスからのデータの読出し、ノースバウンド・データインタフェース600Bを通してのローカルデータとしてのデータの出力、に使用される。さらに、メモリモジュールからの他のいかなるレスポンスも、バッファによって出力され、ノースバウンド・データインタフェース600Bを通して、ノースバウンド・シリアル・データストリームに入力される。バッファ450のコア・ロジックは、また、サウスバウンド・データインタフェース600Aから受信されたメモリデバイスへの書込みデータに使用される。データを読出し及び書込むコマンドは、サウスバウンド・データインタフェース600Aから受信される。与えられたバッファー付きメモリモジュール310のメモリデバイス452がアクセスされない場合、ノースバウンド・データ入力602、及び、サウスバウンド・データ入力603上のシリアルデータは、それぞれ、バッファ入出力インターフェイス600A−600Bを通って、ノースバウンド・データ出力601上、及び、サウスバウンド・データ出力604上まで通過してもよい。このように、他のバッファー付きメモリモジュール310からのデータは、バッファ450のコア・ロジックによって処理されることなく、ノースバウンド・データインタフェース600B上のメモリコントローラを通過する。同様に、メモリコントローラからのデータは、バッファ450のコア・ロジックによって処理されることなく、サウスバウンド・データインタフェース600A上の他のメモリモジュールの上を通過してもよい。
バッファ450のコア・ロジックは、データをメモリデバイス452から読出すため及びメモリデバイス452に書込むための機能ブロックを有する。バッファ450のコア・ロジックは、位相同期ループ(PLL)613、データCRCジェネレータ614、読出されたFIFOバッファ633、5入力1出力バス・マルチプレクサ616、同期及びアイドル状態のパターンジェネレータ618、NB LAIバッファ620、リンク(IBIST)622Bのための集積化されたビルトインセルフテスタ、リンク初期化SM及び制御とコンフィギュレーションのステータスレジスタ(CSR)624B、リセット・コントローラ625、コア制御及びコンフィギュレーション・ステータスレジスタ(CSR)ブロック627、LAIコントローラ・ブロック628、SMバスコントローラ629、外部MEMBISTメモリキャリブレーションブロック630、及び、図6に示されたように共に結合されたフェールオーバ・ブロック646Bを備える。バッファ450のコア・ロジックは、コマンド・デコーダ及びCRCチェッカ・ブロック626、アイドル状態のビルトイン・セルフテスタ(IBIST)ブロック622A、リンク初期化SM及び制御及びCSRブロック624A、メモリの状態コントローラ及びCSR632、書込みデータFIFOバッファ634、4入力1出力バス・マルチプレクサ635、4入力1出力バス・マルチプレクサ636、3入力1出力バス・マルチプレクサ637、LAIロジック・ブロック638、初期化パターン・ブロック640、1つのバス・マルチプレクサ642への二つ及び共に図6に示すように結合されたフェールオーバ・ブロック646Aを有する。
マルチプレクサは、少なくとも2つのデータ入力、出力、及び、マルチプレクサの出力に与えられるデータ入力を選択するための少なくとも一つ制御入力又は選択入力を有する。2入力マルチプレクサのために、1つの制御入力又は選択入力は、マルチプレクサでの出力であるデータを選択するために使用される。バス・マルチプレクサは、各データ入力でビットを受信し、同様に、ビットを含む出力を有する。2入力1出力バス・マルチプレクサは、そのデータ入力、及び、単一のバス出力としての2つのバスを有する。3入力1出力バス・マルチプレクサは、そのデータ入力、及び、単一のバス出力として3つのバスを有する。4入力1出力バス・マルチプレクサは、そのデータ入力、及び、単一のバス出力として4つのバスを有する。
バッファ450内では、各バッファ入出力インターフェイス600A−600Bは、FIFOバッファ651、データマージ・ロジック650、トランスミッタ652、レシーバ654、再同期ブロック653、及び、デマルチプレクサ/シリアル・パラレル・コンバータ・ブロック656を有する。データは、コア・ロジックにインターフェイスせずに、再同期パス661又は再サンプリングするパス662を通って、各バッファ入出力インターフェイス600A−600Bを通過することができる。本発明の各実施形態によれば、バッファ450に関連するローカルデータは、シリアル・データストリームを受信するコア・ロジックを有さずにアイドル状態のフレームに上書きして、アイドル状態のフレームがその中に位置するところを決定するために、シリアルデータストリームにマージされることができる。
マルチプレクサ616は、ノースバウンド・データ出力601のシリアルレーン上のローカルデータとして出力するために、どのデータが、ノースバウンド・バッファ入出力インターフェイス600BのFIFOバッファ651の方向に向かうのかを選択する。一般的に、マルチプレクサ616は、コア制御、及び、CSRブロック627からのステータス、又は、読出されたFIFOバッファ633からの読出しデータ、CRCジェネレータ614からの付属のCRCデータを有する読出しデータ、パターンジェネレータ618からの同期又はアイドル状態のパターン、又は、IBISTブロック622Bからのテストパターン・データからの他の制御情報を選んでもよい。
マルチプレクサ642は、サウスバウンドデータ出力604のシリアルレーン上へ出力するために、どのデータが、サウスバウンド・バッファ入出力インターフェイス600AのFIFOバッファ651の方向に向かうのかを選択する。一般的に、マルチプレクサ642は、初期化パターン・ブロック640からの初期化パターン、又は、IBISTブロック622Aからのテストパターン・データ、を選んでもよい。
ここで、図7Aを参照する。トランスミッタに652に結合されたデータ・マージ・ロジック650のブロック図が示されている。トランスミッタ652は、トランスミッタ752A−752nのNレーンで構成される。上記したように、本発明の一実施形態において、レーンの数は10である。本発明の他の実施形態において、レーンの数は14である。データ・マージ・ロジック650においては、Nレーンのそれぞれのための、データ・マージ・ロジック・スライス700A−700nがある。
先入れ先出し方式(FIFO)バッファ651からのパラレル・ローカルデータ・バス660は、各データ・マージロジック・スライス700A−700nに結合する。再同期パス661のシリアルデータのそれぞれのレーンは、各々個々のデータ・マージロジック・スライス700A−700nに結合する。再同期バス661のビット長は、レーンの数の2倍である。再同期バス661の各々個々のレーンの2ビットは、各々個々のデータ・マージ・ロジック・スライス700A−700Nに結合される。再サンプリングするバス662のシリアルデータの個々のレーンは、各々個々のデータ・マージロジック・スライス700A−700nに結合する。再サンプリングバス662のビット長は、レーンの2倍の数である。再サンプリングバス662の各々個々のレーンの2ビットは、各々個々のデータ・マージ・ロジック・スライス700A−700Nに結合される。
再サンプリングするバス662、及び、再同期バス661の両方共は、 各レーンのために、2ビットシリアル・データストリームを、各々個々のデータマージロジック・スライス700A−700Nに転送する。対照的に、パラレル・データバス660は、各レーンのための6又は12ビットを各々個々のデータマージロジック・スライス700A−700Nに結合する。パラレル・ローカルデータ・バス660のビット長は、レーン数の12倍である。しかし6ビットのモードにおいて、12ビット中の6ビットだけがレーンごとにアクティブになることができる。各データ・マージ・ロジックスライス700A−700Nからの出力は、シリアル・トランスミッタ752A−752Nにそれぞれ結合され2ビットシリアル・データストリームである。各シリアル・トランスミッタ752は、図7Aに示すように、シリアルデータの2つのパラレルビットを、ノースバウンド・データ出力(NBDO)604の中の、個々のレーン601A−601N、又は、サウスバウンドデータ出力(SBDO)601の中の個々のレーン604A−604Nの上の単一のビットシリアル・データストリームに変換する。
ここで図7Bを参照する。トランスミッタ752iに結合されたデータ・マージ・ロジック・スライス700iの回路図が示されている。データ・マージ・ロジック・スライス700iは、図7Aに図示された各Nレーンのための、データ・マージ・ロジックスライス700A−700nのうちの1つを表す。トランスミッタ752iは、図7Aに図示された各Nレーンのためのトランスミッタ752A−752nのうちの一つを表す。
各データ・マージ・ロジック・スライス700iは、12ビット長の全フレーム・モード(12ビットモードとも称される)、又は、6ビット長のハーフ・フレーム・モード(6ビットモードとも称される)、の2ビット長モードのうちの1つにおいて動作することができる。モード制御信号(6bit_mode)722は、データマージロジック・スライス700iが、どちらの2ビット長モードのコア・ロジックで動作するかを示し、制御する。
全フレーム・モード、又は、12ビットのモードにおいて、コア・ロジックは、データマージロジック・スライス700iを用いてバス660i上でデータを通信するために、12ビットの全フレームを使用する。バス660iの下位の6ビットは、Data[5:0] バス726に表され、一方、バス660iの上位の6ビットは、Delayed_data[5:0]バス727に表される。シリアルデータストリームにマージされて送信されたローカルデータの12ビット(Data[5:0]、及び、Delayed_data[5:0])は、それぞれ、フレームの初めに、「Early_Load_Pulse」制御信号720により、下位のパラレル入力シリアル出力(PISO)コンバータ708B、及び、上位のパラレル入力シリアル出力(PISO)コンバータ708にラッチされる。
下位のパラレル入力シリアル出力(PISO)コンバータ708B、及び、上位のパラレル入力シリアル出力(PISO)コンバータ708Aは、パラレル入力シリアル出力(PISO)シフトレジスタであり、また、本願明細書においてもそのように参照される。各PISOコンバータ708A−708Bは、また、PISOシフトレジスタ708A−708Bとしても参照され、パラレル・データ入力、クロック入力、ロード/シフトバー入力、シリアル入力(SIN)、及び、シリアル出力(SO)を有する。上位のPISOシフトレジスタ708Aのシリアル出力は、ローカルデータ・バス660iの12パラレルビットをシリアル化することをサポートするために、下位のPISOシフトレジスタ708Bのシリアル入力に結合される。上位のPISOシフトレジスタ708Aのシリアル入力は、本発明の一実施形態における論理上のロー(例えばグランド)、又は、本発明の他の実施形態における論理上のハイ(例えばVDD)に結合されることができる。PISOシフトレジスタ708A−708Bのシリアル出力(SOUT)は、本発明の一実施形態において、一度に2ビットである。本発明の他の実施形態において、PISOシフトレジスタ708A−708Bのシリアル出力(SOUT)は、一度に1ビットであってもよい。
12ビット・モードにおいて、バス726の6ビットは、下位のPISOシフトレジスタ708Bのパラレル・データ入力(ピン)に結合され、一方、バス727の6ビットは、上位のPISOシフトレジスタ708のパラレル・データ入力(ピン)に結合される。これらの12ビットは、12ビット・バス・モードを示すモード制御信号722を備えた初期のロード・パルス720の間に、各PISOシフトレジスタにそれぞれロードされる。(例えば、本発明の一実施形態において、モード制御信号722は、論理上のローレベルであることにより12ビットのモード、論理上のハイ・レベルであることにより6ビットのモードであることを示す。)12ビット・モードにおいて、D−typeフリップフロップ706Aへのクリア入力は、論理的にハイ・セッティングであり、D−typeフリップフロップ706AのQ出力は、マルチプレクサ703への制御入力が、バス728上への出力にバス726が選択されるように、論理上のゼロである。
ハーフ・フレーム・モード、又は、6ビットのモードにおいて、コア・ロジックは、データマージロジック・スライス700iにより、バス660i上でデータを通信するために、一度に6ビットのハーフ・フレームを使用するだけである。コア・ロジックは、一度に6ビットのデータ、又は、フレームの半分によりオフセットされた初期のデータ(Data[5:0]726)、及び、遅れたデータ(Delayed_data[5:0])を送信する。ハーフ・フレーム・モードにおいて、データ・マージ・ロジック・スライス700iの下位のPISOシフトレジスタ708Bのみが、送信するためのシリアルデータストリームにデータをマージするために使用される。
6−ビット・モードのマルチプレクサ703は、初期のロード・パルス720の間に、選択的にバス726の6ビットを、下位のPISOシフトレジスタ708Bのパラレル・データ入力(ピン)に結合し、遅れたロードパルス721の間に、バス727の6ビットを、下位のPISOシフトレジスタ708Bのパラレル・データ入力(ピン)に結合する。バス726の6つのビットは、遅れたロード・パルス721の間に、6ビットのバス・モードを示すモード制御信号722により、PISOシフトレジスタ708Bにロードされる。バス727の6ビットは、初期のロード・パルス720の間に、6ビットのバス・モードを示すモード制御信号722により、PISOシフトレジスタ708Bにロードされる。
データ・マージ・スライス700iは、データパス・ロジック、及び、制御ロジック701iを有する。データパス・ロジックは、ローカルデータ、及び、フィードスルー・データを、シリアルビットストリームに選択的にマージする。制御ロジック701iは、ローカルデータ及びフィードスルー・データのシリアルビットストリームへのマージングを適切に同期させるために、各データ・マージ・スライスのデータパス・ロジックを制御する。
モード制御ロジック、及び、マージ制御ロジックを備える制御ロジック701iは、図7Bに示されて、図示されたように、共に結合された、3つのシングル・ビット2入力1出力マルチプレクサ702A−702C、セット/リセットDフリップフロップ706A−706B、ORゲート710、ANDゲート711、及び、インバータ712を有する。制御ロジック701iによって生成された信号は、データパス・ロジックに結合される。マルチプレクサ702A−702B、D−typeフリップフロップ706A、ORゲート710、ANDゲート711、及び、インバータ712は、モード制御ロジックを提供する。マルチプレクサ702C、及び、D−typeフリップフロップ706Bは、マージ制御ロジックを提供する。
データパス・ロジックは、図7Bに図示されたように、共に結合された、6ビットの2入力1出力バス・マルチプレクサ703、2ビット2入力1出力バス・マルチプレクサ704−705、一対の6ビット入力/2ビット出力のパラレル入力シリアル出力(PISO)コンバータ708A−708Bを有する。
データ・マージ・ロジック650の各スライス700iは、再同期データ661iの2ビット・シリアル・レーン、再サンプリングデータ662iの2ビット・シリアル・レーン、及び、ローカルデータ660iの12ビット・パラレル・レーンを受信してもよい。ローカルデータ660iのパラレル・レーンは、バッファ450のコア・ロジックからであり、様々なタイプのデータであってもよい。例えば、ローカルデータ660iは、メモリデバイス452からの読出しデータ、サイクリックリダンダンシチェック(CRC)データ、試験データ、ステータス・データ、又は、バッファのコア・ロジックにより受信され、送信され、又は、生成された他のいかなるデータ、であってもよい。
再同期データ661iの2ビット・レーン、及び、再サンプリングデータ662iの2ビット・レーンは、与えられたバッファ450のコア・ロジックに結合点を有しておらず、マルチプレクサ705により、ローカル・クロック・モード信号736に応じて、フィードスルー・データ(また、本願明細書において「フィードスルー・データ」としても参照される)725に多重化される。バッファ450がローカル・クロック・モードで動作している場合、再同期データは、フィードスルー・データ725の上へ多重化される。バッファ450がローカルクロック・モードで動作していない場合、再サンプリングデータ662iは、フィードスルー・データ725の上へ多重化される。ローカル・クロック・モードにおいて、フェーズ・ロック・ループ(PLL)クロック・ジェネレータは、再同期データを生成するために、入力シリアルデータストリームを再同期することに使用されたバッファ内で、遠隔クロック信号を生成するために使用される。ローカル・クロック・モードでない場合、再サンプリングデータを生成するために、受信されたクロックが、入力シリアルデータストリームのサンプルをとるために使用された受信されたシリアル・データストリーム内のデータのフレームから生成され、同期される。クロック信号Clock_2UI723は、ローカル・クロック・モード信号736に応じて、局所的に生成されたクロック信号と受信されたクロック信号との間で切替えられる。フィードスルー・データ725のソースは、ノースバウンド(Nb)側(また、伝送されたノースバウンド・データとも称する)上の他のメモリモジュール310のバッファ450から、又は、サウスバウンド(SB)側(また、伝送されたサウスバウンド・データと称する)上の他のメモリモジュール310のバッファ450から、代わりに、サウスバウンド(SB)側上のメモリコントローラ302から、であってもよい。
2入力1出力バス・マルチプレクサ704は、第1の入力としてのシリアル・フィードスルー・データ725の2ビット、第2の入力としての6−2PISOシフトレジスタ708Bからの2ビット・シリアル出力、及び、制御入力におけるローカル・データ選択信号(PISO_SEL)732を受信する。6−2PISOシフトレジスタ708Bからの2ビット・シリアル出力735は、パラレル・データバス660iからのローカルデータ735の2つのシリアル化されたビットである。このように、ローカルデータ選択信号(PISO_SEL)732に応じて、マルチプレクサ704は、フィードスルー・データ725の2ビット、又は、パラレル・データバス660iから、6−2PISOシフトレジスタ708Bによって発生され、シリアル化されたローカルデータ735の2ビットのどちらも出力に選択する。マルチプレクサ704からの2ビット出力730は、トランスミッタ752に結合され、更に、レーンNBDOi/SBDOi601i、604iの上へのシングル・ビットにシリアル化される。このように、コア・ロジックからのローカルデータは、フィードスルー・データと多重化され、NBDOi/SBDOi601i、604iで、シリアルビットストリームのレーンにマージすることができる。
データのシリアルビットストリームへのマージングを制御するローカル・データ選択信号(PISO_SEL)732は、Dフリップフロップ706Bにより発生される。マージ・イネーブル信号724に応じて、Dフリップフロップ706Bは、クロック信号Clock_2UI723の立ち上がりエッジ上のローカルデータ選択信号(PISO_SEL)732を生成する。マージ・イネーブル信号724は、マルチプレクサ702Cの第1の入力に結合される。ローカルデータ選択信号(PISO_SEL)732は、フィードバックされ、マルチプレクサの702Cの第2入力に結合される。マルチプレクサ702Cの出力は、Dフリップフロップ706BのD入力に結合される。初期のロード・パルス(EARLY_LD_PULSE)信号720は、マルチプレクサ702Cの選択制御入力に結合される。初期のロード・パルス720がアクティブハイである場合、マージ・イネーブル信号724はマルチプレクサ702Cにより出力され、Dフリップフロップ706BのD入力に結合される。初期のロード・パルス720がローである場合、ローカルデータ選択信号(PISO_SEL)732は、マルチプレクサ702Cフィードバックにされ、ローカルデータ選択信号(PISO_SEL)732の現在状態を保持するために、Dフリップフロップ706BのD入力に結合する。初期のロード・パルス720は周期的に記録されるので、マージ・イネーブル信号724がローである場合、それは、適切な時期にDフリップフロップ706Bをクリアする、したがって、そのQ出力は、データのマージを終了するロー論理レベル信号である。
マージイネーブル信号724は、クロック信号Clock_2UI723のエッジ上で、ローカルデータ選択信号(PISO_SEL)732に同期される。merge_enable信号724は、ローカルデータ選択信号(PISO_SEL)732を生成するために、early_load_pulse720の間にサンプリングされて、マルチプレクサ704は、フレーム境界(フレームのレーンごとにデータの12ビット)で切り替えられる。マージ・イネーブル信号724が、クロック信号Clock_2UI723の立ち上がりエッジ上のアクティブハイである場合、ローカルデータ選択信号(PISO_SEL)732は、ローカルデータ735の2つのシリアル化されたビットを選択するためのマルチプレクサ704、と同様にその2ビット出力730、を制御するために、アクティブハイになる。マージ・イネーブル信号724が、クロック信号Clock_2UI723の立ち上がりエッジ上のローである場合、ローカルデータ選択信号(PISO_SEL)732は、データ725の2つのフィードスルービットを選択するためのマルチプレクサ704、と同様にその2ビット出力730、を制御するためにローのままである。
ローカル・データ選択信号(PISO−SEL)732が論理上のハイであることに応じて、パラレル・データバス660iの2つのシリアルビットは、レーンNBDOi/SBDOi601i、604i.にマージされる。ローカル・データ選択信号(PISO_SEL)732が論理上のローであることに応じて、フィードスルー・データ725の2ビットは、マルチプレクサ704によりレーンNBDOi/SBDOi601i、604i.の上の出力に選ばれる。
ローカル・データ選択信号(PISO_SEL)732は、マージ・イネーブル信号724に応ずるので、マージ・イネーブル信号724の生成は、レーンNBDOi/SBDOi601i、604iのシリアル・データストリームの上へマージされるバス660iのパラレルデータを与える。マージ・イネーブル信号724は、リンク制御ロジック(図6に示されたリンク初期化SM及び制御及びCSR機能ブロック624B)によりシリアル・データストリームにマージされるためのローカルデータを与えるために、適切な時期の時間内に生成される。
一時的に図5に戻って参照する。マージ・イネーブル信号のタイミングは、システムの初期化及びトレーニングの間の各メモリモジュール310に対して決められている。バンク304の最後のメモリモジュール310nについては、マージイネーブル信号は、ノースバウンド・データリンクにおいて、続けて生成しているデータの更なるメモリーモジュールがもはやないといった、データ送信信号よりも多くの意味があることに注意する。
ここで図10を参照する。フローチャートは、初期化、トレーニング、及び、ローカルデータとフィードスルー・データを共にシリアル・データストリーム出力にマージする場合のバッファの動作のために図示している。フローチャートは、ブロック1000から始まる。
ブロック1002で、各メモリバンクの各メモリモジュールのバッファは、初期化される。メモリバンク304の初期化の間、各メモリモジュールでは、そのサウスバウンド、及び、ノースバウンド・シリアル・データリンクが初期化(また、リンク・トレーニングの一部であることと称してもよい)される。メモリコントローラ302は、サウスバウンド(SB)データリンクSBl−SBn上の外の初期化パターンを送信する。初期化の間、最後のメモリーモジュールの310nのバッファ450nは、サウスバウンド・データリンクSBn上の初期化パターンを受信し、それを他のメモリモジュールを通して、ノースバウンド(Nb)データリンクNB1−NBnの上を再送信してメモリーコントローラ302に戻す。各バッファがそれ自身のクロックを有するように、ノースバウンド(Nb)データリンクNB1−NBnでバッファにより受信された初期化パターンは、ビットをロックするためと、シリアルデータの各レーンのフレームを同期させる目的で使用される。バッファのクロックは、初期化パターンに同期してもよい。ロジックのタイミングは、シリアル・データストリームのデータのパケットを受信するためと、同様にデータのフレームからのヘッダ、及び、いかなるエラー訂正/検出、又は、パケット内の他のデータフィールドを解析するために、初期化パターンに合わせられてもよい。Early_Ld_Pulse720の生成は、与えられたメモリモジュールによって受信されたデータのフレームの始まりと一致するように設定される。Late_LD_Pulse721の生成は、与えられたメモリモジュールによって受信されたデータのフレームのハーフ・フレーム境界にあるように設定される。
次にブロック1004で、各メモリーバンクの各メモリモジュールの各バッファは、トレーニングされる。初期化パターンを送出した後に、メモリ・コントローラ302は、トレーニングの間に与えられたバンク304の最後のメモリモジュールまでトレーニング・パターンを送信する。トレーニングの間、最後のメモリモジュールの310nのバッファ450nは、サウスバウンドデータリンクSBn上のトレーニング・パターンを受信して、それをメモリ・コントローラ302に戻すために、他のメモリモジュールを通して、ノースバウンド(Nb)データリンクNB1−NBnの上へ再送信する。各メモリモジュールは、サウスバウンド(SB)データリンク上のトレーニング・パターンのうちの1つを観察して、ノースバウンド(Nb)データリンク上で同じメモリモジュールに戻すための時間又はそのためのクロックサイクルを決定する。ラウンドトリップ時間は、各メモリモジュールの与えられたポジションに対して決定される。
リクエストが過剰に集中されないと仮定するならば、ラウンドトリップ時間は、他のメモリモジュールの有効なデータと衝突せずに、ノースバウンド・データリンク上へデータをマージするための、与えられたメモリモジュールのために安全である時間内のスロットを表す。与えられたメモリモジュールで、アイドル状態のデータ・パケットは、サウスバウンド・データリンク上のメモリ・リクエストコマンドを確かめた後の、その瞬間に、ノースバウンド・データリンク上で受信されることが求められる。その時点で、アイドル状態のデータパケットは、ローカル・データパケットと取り替えられることができる。与えられたメモリモジュールのためのデータ遅延時間に対するラウンドトリップ時間、及び、コマンドは、ノースバウンドデータリンクにローカル・データをマージすることを制御するために使用されるマージ・イネーブル信号のタイミングをセットするための根拠である。ラウンドトリップ時間が長いならば、データは、先にフェッチされ、FIFOバッファに置かれ、ノースバウンド・データストリームにマージされるための適当な時間を待つことができる。バッファのノースバウンド・インタフェースの読み書きFIFOバッファ・ポインタの間の距離は、ラウンドトリップタイミングに基づいてセットすることができる。
ラウンドトリップ時間は、ビットレートクロック(clock_2UI 723)の周期の整数の関数として、決定されてもよい。チャネルのメモリモジュールの数、及び、チャネルの最後のメモリモジュールのデータ遅延に対するコマンドは、そのチャネルの往復の時間を決定する。
各メモリモジュールに対するデータ遅延のためのコマンドは、各メモリモジュールのマージイネーブル信号のタイミングを確立することをアシストするために更に決定されてもよい。データ遅延タイミングに対するコマンドは、少なくとも一つの以下の期間を有してもよい:サウスバウンド入出力インターフェイス600Aからメモリ入出力インタフェース612にコマンドが転送されるための時間、メモリ入出力インタフェース612からメモリデバイス452までコマンドが転送されるための時間、メモリ入出力インタフェース612、及び、メモリデバイス452のクロック・タイミングの差、メモリデバイス452に対するクロック信号、及び、コマンド信号のルートを決めることによる遅延、バッファ450、及び、メモリデバイス452のためのいかなるセットアップ/ホールド時間、メモリデバイス452(例えばCASタイミング、及び、いかなる追加レーテンシも)の読出しレーテンシ、メモリデバイス452からバッファ450へのデータ信号、及び、ストローブ信号のルートを決めることによる遅延、メモリデバイス間のデータの遅延スキュー、メモリ入出力インタフェース612による遅延、バッファ450、及び、メモリ機器452のためのいかなるセットアップ/ホールド時間、及び、メモリ入出力インタフェース612からノースバウンド入出力インタフェース600Bまでデータが転送されるための時間(これは、バッファ450の中でデータがバッファリング、及び、計時されるための遅延を含んでもよい)。データ遅延タイミングに対するコマンドは、フレームのマルチプルの数、又は、ビット・レート・クロックの周期(フレーム/12又はclock_2ui/2のようなビットタイミング)の整数の関数として存在する遅延時間の粒状性により、それのフラクションとして決定されてもよい。例えば最後のメモリモジュール310nのようなメモリモジュールのデータ遅延タイミングに対するコマンドは、追加の遅延時間が求められる場合、プログラム的にレジスタをセットすることにより増大させることができる。
次のブロック1006で、初期化、及び、トレーニングの後には、各バッファは、シリアル・データ入力から入力シリアルデータストリームを受信する準備ができている。しかし、メモリバンク304の最後のメモリモジュール310nのバッファは、ノースバウンド・データリンク上のメモリ・コントローラ302の方へのアイドル状態のパケット又は読み出しリクエストされたデータ・パケットのどちらも送信する。一方、入力シリアルデータストリームは、データのアイドル状態のフレーム間に散在するデータのフィードスルー・フレームを表したものが受信される。
次のブロック1008で、判定は、ローカルデータのアベイラビリティに関してなされてもよい。シリアル・データストリームにマージするローカルデータがある場合、その時、制御フローはブロック1010へジャンプする。シリアル・データストリームにマージするローカルデータがもはやない場合、その時、制御フローはブロック1014へジャンプする。
マージするローカルデータのないブロック1014で、フィードスルー・データは、シリアル・データ出力の上へ送信される。フィードスルー・データは、再サンプリングされた入力シリアルデータストリームのデータのそのビットを有してもよい。代わりに、フィードスルー・データは、再同期された入力シリアルデータストリームのデータのそのビットを有してもよい。その時、制御フローは、連続的に入力シリアルデータストリームを受信するために、ブロック1006へ戻るようにジャンプする。
ローカルデータのマージに関するブロック1010で、ローカルデータのフレームは、出力シリアルデータストリームのフィードスルー・データと置き換えられる。すなわち、ローカルデータがバッファによって送信されることを必要とする場合、入力シリアルデータストリームのデータのフレームは、ドロップされ、ローカルデータのフレームは、その場所においてマージ・イネーブル信号に応じて送信される。ローカル・データ、及び、フィードスルー・データのフレームは、データのローカル・フレームのパラレルビットをデータのシリアル・ビットにシリアル化することによって共にマージされて、それから、マージイネーブル信号に応じて、データのローカル・フレームのデータのシリアル・ビット、及び、データのフィードスルー・フレームのシリアル・ビットを、出力シリアルデータストリームのシリアル・ビットに多重送信されてもよい。初期化及びトレーニングの間、ホスト及びメモリ・コントローラは、入力シリアルデータストリームのデータのアイドル状態のフレームをデータのローカル・フレームと取り替えることを確保する。バッファは、交換されている入力シリアルデータストリームの入力フレームがデータがアイドル状態のフレームであるか否かをチェックする必要がない。
ブロック1012で、マージされたデータを備える出力シリアルデータストリームは、チェインの上で次のメモリモジュールへのシリアル・データ出力上へ、又は、代わりにメモリコントローラに送信される。
次に、制御プロセスは、シリアル・データ入力から入力シリアルデータストリームを受信することを続けるために、ブロック1006へジャンプする。
上記したように、コア・ロジック、及び、バッファ450からのローカルデータは、一度に6ビットのチャンク、又は、12ビットのチャンクの出力であってもよい。モード制御信号(6bit_mode)722は、データ・マージ・ロジック・スライス700iが、6ビット・モード(ハーフ・フレーム・モード)、又は、12ビット・モード(全フレーム・モード)において動作するかを決定する。モード制御信号(6bit_mode)722は、マルチプレクサ702A、及び、ANDゲート711の第1の入力、及び、インバータ712への入力の選択入力又は制御入力に結合される。
初期の負荷パルス信号720は、パラレルデータバス660i上の最初の6ビットのローディングを制御する。遅れた負荷パルス信号721は、パラレルデータバス660i上の第2の6ビットのローディングを制御する。遅れたロード・パルス721は、ORゲート710の第1の入力に結合される。初期のロード・パルス制御信号720は、マルチプレクサ702Bの第1の入力、ORゲート710の第2の入力、マルチプレクサ信号702Aの第1の入力、6−2PISOシフトレジスタ708Aのload/shift−バー入力、及び、マルチプレクサの702C選択入力に結合される。
クロック信号Clock_2UI723は、D flip−FLOPS706A−706Bのクロック入力、及び、6−2PISOシフトレジスタ708A−708Bのクロック入力に結合する。マルチプレクサ702Aの出力は、6−2PISOシフトレジスタ708B.のload/shift−バー入力に結合する。
6−2PISOシフトレジスタ708Aのパラレル入力は、6ビット遅延されたデータバス727に結合する。6−2PISOシフトレジスタ708Aの2ビット・シリアル出力は、6−2PISOシフトレジスタ708Bの2ビット・シリアル入力に結合する。6−2PISOシフトレジスタ708Bのパラレル入力は、マルチプレクサ703からの6ビット出力に結合する。このようにデータ・マージ・ロジカル・スライス700iが12ビット・モードであるときに、12ビットのデータは、6−2PISOシフトレジスタ708A−708Bにロードされることができ、それから、マルチプレクサ704により2ビットシリアル出力708Bからシリアルにシフト出力され、トランスミッタ752iに結合される。
シリアル・トランスミッタ752iは、2パラレルビットを、その出力601i、604iで、シリアル1ビットにセットするために、クロック信号によってダブルクロックされる。
データマージロジカル・スライス700iは、6bit_mode制御信号722が論理上のローであるときに、12ビット・モードである。データ・マージlogical/700iは、6ビットモード制御信号722が論理上のハイであるときに、6ビット・モードである。マルチプレクサ702B、及び、Dフリップフロップ706Aとの制御ロジック710−712は、6ビット・モード制御信号722に応じて12ビット・モード又は6ビット・モードを決めるために、マルチプレクサ703の選択入力に結合されたデータバス選択(Data_Sel)信号729を生成する。データバス選択信号729が論理的にローであるときに、データの12ビットは、6−2PISOシフトレジスタ708A−708Bとパラレルにロードされる。データバス選択信号729が論理上のハイであるときに、データバス727の6ビットは、6−2PISOシフトレジスタ708Bに結合される。
6ビット・モードにおいて、初期のロード・パルス信号720、又は、遅れたロード・パルス721のどちらも、6−2PISOシフトレジスタ708Bにパラレルデータをロードすることができる。6ビットモードも、又は、12ビットのモードのいずれにおいても、初期のロード・パルス720は、データバス727から6−2PISOシフトレジスタ708Aに、パラレルデータをロードするためだけに使用される。
6−2PISOシフトレジスタ708Aのシリアル入力は、送信されたデータの後にゼロだけがシリアルにシフトされるように、グランドに結合される。代わりに6−2PISOシフトレジスタ708Aのシリアル入力は、送信されたデータの後に論理上のものだけがシリアルにシフトされるように、VDDに結合される。
Dフリップフロップ706AのQ出力は、ANDゲート711の出力が論理上のローであるときに、マルチプレクサ702Bの第2の入力に結合され、Q出力は、ロードされた論理状態をデータバス選択(DATA_SEL)信号729のその中で保持するために、Dフリップフロップ706AのD入力に結合される。
ここで、図8を参照する。12ビットのモードにおいて動作しているデータ・マージ・ロジック・スライス700iを表す波形のタイミング図が示されている。すなわち、6ビットのモード制御信号722は、図8のタイミング図における論理上のローである。
図8において、Clock_2UI信号723は、波形823で示される。コア・クロック信号611は、波形811で示される。パラレル・データバス690上のデータ(MEM_DATA入力[5:0])690Aのより下位の6ビットは、波形890Aで示される。パラレル・データバス690上のデータ(MEM_DATA入力[11:6])690Bの上位の6ビットは、波形図890Bで示される。パラレル・データバス660i上のデータ(FBD_DATA[5:0])726の下位の6ビットは、波形図826で示される。パラレル・データバス660i上のデータ(FBD_DATA[11:6])727の上位の6ビットは、波形図827で示される。マージイネーブル制御信号724は、波形図824で示される。初期のロード・パルス制御信号720は、波形820で示される。遅れたロード・パルス制御信号721は、波形821で示される。ローカルデータ選択制御信号(PISO_SEL)732は、波形832で図示される。シングルビットシリアル出力データストリームNBDOi601iは、波形801で示される。
ノースバウンド・シリアルデータストリームにマージするいかなるローカル・データなしでも、バッファ450は、ノースバウンド・データ入力602に受信されたビット(「フィードスルーデータ」725)を、バッファ450のコア・ロジックを迂回することで、高速クロック領域のトランスミッタ752iに通過させる。ローカルデータ選択制御信号(PISO_SEL)732は、波形832で図示されたように、フィードスルー・データ725がトランスミッタ752iに多重化されるときは、ローである。
上記したように、「Early_Ld_Pulse」720は、フレーム(リンクに参照されるように)の始まりと一致するようにセットされ、late_ld_pulse721は、シリアル・データリンクのレーンの最初のトレーニングの間に、ハーフ・フレーム境界にあるようにセットされる。本発明の一実施形態において、データのフレームは、全フレーム動作モードの場合、リンク上のデータの論理ユニットであり、12ビットのデータで作られる。
全フレーム動作モードにおいて、フレームの12のビットは、「Early_Ld_Pulse」信号720を使用しているPISOシフトレジスタにロードされる。「late_ld_pulse」信号721は、PISOシフトレジスタにビットをロードするために使用されない。上下のPISOシフトレジスタ708A−708Bの両方は、このモードにおいて使用される。6bit_mode制御信号722は、12ビット・モードにおいてローであり、Dフリップフロップ706Aの出力をクリアすることによって12ビットのモードにおいてローになるために、Data_Sel信号729を生じさせる。12のビット・モードにおいて「Data_Sel」信号729がローであることで、6つのより下位のデータ・ビット(バス660iのFBD_DATA[5:0]726)が、マルチプレクサ703により、より下位のPISOシフトレジスタ708Bに結合される。
Early_Ld_Pulse720の周期的な生成は、また、Dフリップフロップ706Bによって「Merge_enable」信号724のサンプリングを可能にする。Early_Ld_Pulse720の周期的な生成は、アクティブ、ハイであり、Dフリップフロップ706Bのデータ入力Dに結合されたデータの出力としてのmerge_enable信号724を選択するために、選択的にマルチプレクサ702Cを制御する。
上記したように、マージイネーブル信号724は、与えられたメモリモジュールからローカル・データをノースバウンド・シリアル・データのレーンに挿入して、シリアルデータストリームのデータのパケット又はアイドル状態のフレームを交換するために、適切な時期に発生される。波形824は、ローカル・データが、データバス660iより上のビット(FBDJD ATA[11:6])727、及び、それより下のビット(FBD_DATA[5:0])726上で有効になる場合に、発生されたアクティブ・ハイ・パルス844を示す。
マージイネーブル信号724の波形824にアクティブ・ハイ・パルス844が発生する時に、early_ld_pulse信号720のパルス840A−840Bは、マージイネーブル信号724のアクティブ・ハイ・パルス844がclock_2UI信号723を使用しているDフリップフロップ706Bによりサンプルをとることを認める。これは、ローカル・データ選択信号(PISO_SEL)732の波形832にアクティブ・ハイ・パルス842を発生させる。ローカル・データ選択信号(PISO_SEL)732のアクティブ・ハイ・パルス842は、その出力で2ビットの「フィードスルーデータ」725を与えることから、その代わりに、その出力で2ビットのシリアル化ローカル・データ735を与えるように、マルチプレクサ704を切り替えさせる。ローカルデータ735に対するフィードスルー・データ725からの切替は、アクティブ・ハイ・パルス842が最初に発生するときに、フレーム境界で起こる。これは、PISOシフトレジスタ708A−708Bにシフトさせ始める「Early_Ld_Pulse」720の立下りエッジは、フレーム開始位置と一致するという理由からである。
「Early_Ld_Pulse」720を備えるマージング・データと、マルチプレクサ出力731の両方ともがローであるとき、PISOシフトレジスタ708A−708Bは、ローカルデータの12 ビットを、「Clock_2ui」クロック信号723を使用して、シリアル出力735上に、一度に2ビットを、シリアルにシフト出力する。トランスミッタ725iは、上記の波形801に示されたローカルデータで示されるように、NBDOi出力601i上の2ビットをシングル・ビットシリアル・データストリームに更にシリアル化する。
ここで図9を参照する。6ビット・モードにおいて動作するデータ・マージ・ロジック・スライス700iを表している波形のタイミング図が示されている。すなわち、6ビット・モード制御信号(6BITJVIODE)722は、図9のタイミング図の波形922で示すように論理上のハイである。
図9において、Clock_2UI信号723は、波形923で図示される。コア・クロック信号(core_clk)611は、波形901で図示される。メモリーデータバス690上のより下位の6つのパラレルデータビット(MEM_DATA入力[5:0])690Aは、波形990Aで示される。メモリデータバス690の上位の6つのパラレル・データビット(MEM−データ入力[11:6])690Bは、波形990Bで示される。パラレルデータバス660i上のデータ(FBD_DATA[5:0])726のより下位の6ビットは、波形図926で示される。パラレルデータバス660i上のデータ(FBD_DATA[11:6])727のより上位の6ビットは、波形図927で示される。マージ・イネーブル制御信号724は、波形図924によって示され、図8の波形824のそれより早く発生する。初期のロード・パルス制御信号(EARLY_LD_PULSE)720は、波形920で示される。遅れるロード・パルス制御信号(LATE_LD_PULSE)721は、波形921で示される。データバス選択制御信号(DATA_SEL)729は、波形929で示される。ローカルなデータ選択制御信号(PISO_SEL)732は、波形932で示される。シングルビットシリアル出力データストリームNBDOi601iは、波形901で示される。
6ビット・モードにおいて、より下位のPISOシフトレジスタ708Bは、データのパラレルビットをシフトさせたビット出力によりシリアルデータに変換するために使用される。データバス選択信号(DATA_SEL)729は、フレームの最下位6ビット、FBD_Data[5:0]726、又は、フレームの最上位6ビット、FBD_Data[11:6]727、を切り換え、バス・マルチプレクサ703の選択された出力により、より下位のPISOシフトレジスタ708Bにロードされる。
「Early_Ld_Pulse」720、及び、「Late_Ld_Pulse」721の双方は、6BIT_MODE信号722がアクティブハイである時にマルチプレクサ702Aにより、ORゲート710の出力がより下位のPISOシフトレジスタ708Bのロード/シフトバー入力に結合されたので、より下位のPISOシフトレジスタ708Bにロード・データ又はシフト・データのどちらも出力させることができる。
「Early_Ld_Pulse」720、及び、「Late_Ld_Pulse」721がローのときに、ビットはより下位のPISOシフトレジスタ708Bからシフト出力される。また、ビットのパラレルロードがより下位のPISOシフトレジスタ708Bに入力する間の、ロード/シフトバー制御入力がハイであるときに、予めロードされたビットは、シフトされて出力され続ける。ロード/シフトバー制御入力が、データビットのパラレルロードの後に、ローに復帰するときに、新しくロードされたビットは、その時、より下位のPISOシフトレジスタ708Bによりシフト出力される。このように、データの全6ビットは、パラレルビットの新規のセットがロードされている時に、シフト出力されてもよい。
フレームの最下位の6ビット、FBD_Data[5:0]726は、データバス選択信号(DATA_SEL)729が、例えば、ローの点949C、949Dのようなローであるとき、「Early_Ld_Pulse」720の入力波形920のパルス940A、及び、940Bによりより下位のPISOシフトレジスタ708Bにロードされる。フレームの最上位の6ビット、FBD_Data[11:6]727は、データバス選択信号(DATA_SEL)729が、例えば、パルス949A、949Bの間のようなハイであるとき、「Late_Ld_Pulse」721の入力波形921のパルス941A、及び、941Bによりより下位のPISOシフトレジスタ708Bにロードされる。
6ビット・モードにおいて、シリアル化された「フィードスルーデータ」725とシリアル化されたローカルデータ735との間の切替は、前述した12ビットモードの動作に類似しており、簡潔にする理由からここでは繰り返さない。
データをマージするとき、PISOシフトレジスタ708Bは、シリアルにシフト出力しているローカルデータの最上位6ビット、又は、最下位6ビット出力を、Clock_2UIクロック信号723を使用して、一度に2ビットをシリアル出力735の上へ変換する。トランスミッタ725iは、上記の波形901に示されたローカルデータにより図示されるように、NBDOi出力601i上の2ビットをシングル・ビットシリアル・データストリームに更にシリアル化する。
6ビット・モードの間、全フレームのデータは、さらに送信され、本発明の各実施形態は、シリアル・データストリームにマージされたことデ、更にローカルデータのレーテンシを減らす。図8、及び、9を共に比較する場合、ローカルデータのマージングは、図9よりも1フレーム期間早くなる。
本発明の各実施形態は、アイドル状態のパケットの場所を決定するために、シリアル入力データストリームのデコード入力パケットを有さずに、フィードスルー・データ、及び、ローカルデータを共にして高速のシリアル・データリンクにマージングすることを可能にする。予め、入力シリアルデータストリームは、受信され、デパケッタイズ/デコードされ、及び、再送信された前コア・ロジックによってフレームにリアセンブルされる。本発明の各実施形態は、入力シリアルデータストリームがデパケッタイズ/デコードされ、データのフレームにそれがリアセンブリされることを避け、そして、再送信のためのエンコーディング/パケット化を防ぐ。本発明の各実施形態は、入力シリアルデータストリームの再送信と、バッファ集積回路のコア・ロジックを有さないでの、シリアル・データストリームへのローカルデータのマージングを可能にする。マルチ・メモリーモジュール・システムにおいて、シリアル通信チャネルは、メモリーが回路を集積化してデイジーチェーン方式でつながれたメモリーモジュールの一つの入力が機能しない場合であっても、動作し続けることができる。
本発明の各実施形態は、低いレーテンシのメモリアクセス・オペレーションを提供するように設計されている。これは、チャンネルのメモリーモジュールの数が増加するにつれて、システム性能を低下させるメモリアクセス・レーテンシなしで、各バンクにより多くのメモリーモジュールを有するより大きいメモリを与えることができる。
一例としての実施形態が、記述され、そして添付の図面に示されているが、そのような実施形態は、単に図示するだけであり、広義の発明を制限するものではなく、この発明を、図示され記述された特定の構造及びそのアレンジに限定するものではない。なぜなら当業者によれば多様な他の変形例を形成できることが理解できるからである。例えば、本発明の一実施形態は、フルバッファー付きのデュアル・インライン・メモリモジュールのためのシリアル・データリンクを提供するために述べられている。しかし、本発明の各実施形態は、他のタイプのメモリモジュール、及び、システムにおいてインプリメントされてもよい。他の実施形態として、データは、PISOシフトレジスタ708A−708Bの周囲の2ビット・バス上で、本発明の一実施形態における和やかなデータ・タイミングを提供するために、マージ・ロジックにより、一度に2ビットがシリアル化される。しかし、本発明の各実施形態は、ローカルデータをフィードスルー・データとシングル・ビットシリアル・データストリームにシリアル化した、異なるクロック・タイミングのシングルビット出力PISOが使用され、マルチプレクサ704、705が、シングル・ビットシリアル・データストリームをサポートするために提供されてもよい。
本発明の各実施形態が用いられてもよい代表的なコンピュータシステムのブロック図を示す。
本発明の各実施形態が用いられてもよいクライアント−サーバーシステムのブロック図を示す。
本発明の各実施形態が用いられてもよい他の中央処理装置のブロック図を示す。
バッファー付きメモリモジュールのバンクに入力及び出力するデータを結合させるバッファー付きメモリコントローラの簡略ブロック図を示す。
データをフィードスルー・データとマージしてもよいバッファを備えているバッファー付きメモリモジュールのブロック図を示す。
バッファー付きメモリモジュールのバンクに結合されたバッファー付きメモリコントローラの詳細なブロック図を示す。
バッファー付きメモリモジュールのバッファの機能ブロック図を示す。 バッファー付きメモリモジュールのバッファの機能ブロック図を示す。
トランスミッタに結合するデータ・マージ・ロジックスライスのレーンを含むデータ・マージ・ロジックの簡略ブロック図を示す。
シリアルデータの一つのレーンのためのデータ・マージ・ロジック・スライスの回路図を示す。
12ビット・モードで動作しているデータ・マージ・ロジック・スライスのための信号のタイミング図を示す。
6ビット・モードで動作しているデータ・マージ・ロジック・スライスのための信号のタイミング図を示す。
ローカルデータ及びフィードスルー・データを共にマージしてシリアルデータストリーム出力にする場合の、バッファの初期化、トレーニング、及び、動作することのフローチャートを示す。

Claims (6)

  1. 一以上のレーンを有するシリアル入出力インタフェースを備え、前記一以上のレーンのそれぞれは、
    ローカル・データバスに結合したパラレル入力と、第1のクロック信号に結合されたクロック入力と、ロード信号に結合されたロード/シフトバー入力と、を有し、前記ローカル・データバス上のパラレルデータを第1のシリアル出力上のシリアル化されたローカルデータにシリアル化する第1のパラレル入力シリアル出力(PISO)シフトレジスタと、
    前記第1のシリアル出力に結合された第1のデータ入力と、フィードスルー・データを受信するための第2のデータ入力と、ローカル・データ選択信号に結合された選択入力と、を有し、前記ローカル・データ選択信号に応じて前記シリアル化されたローカルデータとフィードスルー・データとをマージして多重化された出力上のシリアル・データストリームにする第1のマルチプレクサと、
    前記シリアル・データストリームを受信するための前記多重化された出力に結合された入力を有し、シリアル・データリンク上へ前記シリアル・データストリームをドライブするトランスミッタと、
    前記第1のマルチプレクサ及び前記第1のPISOシフトレジスタに結合され、前記第1のクロック信号及びマージ・イネーブル信号を受信し、前記マージ・イネーブル信号及び前記第1のクロック信号に応じて、前記シリアル化されたローカルデータ及び前記フィードスルー・データを前記シリアル・データストリームにマージする前記ローカル・データ選択信号を生成する制御ロジックと、
    前記ローカル・データバス及び前記第1のPISOシフトレジスタの間で結合されたバス・マルチプレクサと、
    を備え、
    前記バス・マルチプレクサは、前記ローカル・データバスの複数のビットの半分に結合された第1のデータ入力と、前記ローカル・データバスの前記複数のビットの残り半分に結合された第2のデータ入力と、前記第1のPISOシフトレジスタのパラレル入力に結合された多重化出力と、データバス選択信号に結合された選択入力と、を有し、前記バス・マルチプレクサは、データバス選択信号に応じて、前記ローカル・データバスの前記複数のビットの前記半分又は前記ローカル・データバスの前記複数のビットの前記残りの半分に結合させて、前記第1のPISOシフトレジスタの前記パラレル入力にし、
    前記制御ロジックは、前記マージ・イネーブル信号に結合された第1のデータ入力及びロード信号に結合された選択入力を有する、第2のマルチプレクサと、
    前記第2のマルチプレクサに結合されたDタイプフリップフロップと、を含むマージ制御ロジックを有し、前記Dタイプフリップフロップは、前記第2のマルチプレクサの出力に結合されたデータ入力と、前記第1のクロック信号に結合されたクロック入力と、前記第1のマルチプレクサの前記選択入力及び前記第2のマルチプレクサの第2のデータ入力に結合されたデータ出力と、を有し、前記Dタイプフリップフロップは、前記データ出力上の前記ローカル・データ選択信号を生成するために、前記ロード信号及び前記第1のクロック信号に応じて、マージ・イネーブル信号を記録し、
    前記第2のマルチプレクサは、前記ロード信号の反転信号に応じて、前記ローカル・データ選択信号を前記Dタイプフリップフロップの前記データ入力に再循環させる
    積回路。
  2. 一以上のレーンを有するシリアル入出力インタフェースを備え、前記一以上のレーンのそれぞれは、
    ローカル・データバスに結合したパラレル入力と、第1のクロック信号に結合されたクロック入力と、ロード信号に結合されたロード/シフトバー入力と、を有し、前記ローカル・データバス上のパラレルデータを第1のシリアル出力上のシリアル化されたローカルデータにシリアル化する第1のパラレル入力シリアル出力(PISO)シフトレジスタと、
    前記第1のシリアル出力に結合された第1のデータ入力と、フィードスルー・データを受信するための第2のデータ入力と、ローカル・データ選択信号に結合された選択入力と、を有し、前記ローカル・データ選択信号に応じて前記シリアル化されたローカルデータとフィードスルー・データとをマージして多重化された出力上のシリアル・データストリームにする第1のマルチプレクサと、
    前記シリアル・データストリームを受信するための前記多重化された出力に結合された入力を有し、シリアル・データリンク上へ前記シリアル・データストリームをドライブするトランスミッタと、
    前記ローカル・データバス及び前記第1のPISOシフトレジスタの間で結合されたバス・マルチプレクサと、
    前記ローカル・データバスの複数のビットの残りの半分に結合されたパラレル入力と、前記第1のクロック信号に結合されたクロック入力と、前記ロード信号に結合されたロード/シフトバー入力と、前記第1のPISOシフトレジスタのシリアル入力に結合した第2のシリアル出力と、を含み、前記ローカル・データバスの前記複数のビットの前記残りの半分上のパラレルデータをシリアル化して、前記第1のPISOシフトレジスタの前記シリアル入力に結合するための前記第2のシリアル出力上のシリアル化されたローカルデータにする第2のパラレル入力シリアル出力(PISO)シフトレジスタと、
    を備え、
    前記バス・マルチプレクサは、前記ローカル・データバスの複数のビットの半分に結合された第1のデータ入力と、前記ローカル・データバスの前記複数のビットの残り半分に結合された第2のデータ入力と、前記第1のPISOシフトレジスタのパラレル入力に結合された多重化出力と、データバス選択信号に結合された選択入力と、を有し、前記バス・マルチプレクサは、データバス選択信号に応じて、前記ローカル・データバスの前記複数のビットの前記半分又は前記ローカル・データバスの前記複数のビットの前記残りの半分に結合させて、前記第1のPISOシフトレジスタの前記パラレル入力にし、
    前記第1のPISOシフトレジスタのパラレル入力は、前記ローカル・データバスの複数のビットの半分に結合される
    積回路。
  3. 前記フィードスルー・データは、2ビット長であり、
    前記第1のPISOシフトレジスタのパラレル入力は、少なくとも6ビット長で、前記第1のPISOシフトレジスタのシリアル出力は、2ビット長であり、
    前記第1のマルチプレクサは、2ビット・バス・マルチプレクサであり、前記多重化された出力の前記シリアル・データストリームは2ビット長であり、
    前記トランスミッタは、前記2ビット長のシリアル・データストリームを受信して、それを前記シリアル・データリンク上へのシングル・ビットシリアル・データストリームとしてシリアル化する
    請求項1または2に記載の集積回路。
  4. 前記一以上のレーンのそれぞれは、
    前記第1のマルチプレクサ及び前記第1のPISOシフトレジスタに結合された制御ロジックを更に有し、前記制御ロジックは、前記第1のクロック信号と、モード選択信号と、マージ・イネーブル信号と、を受信し、前記制御ロジックは、前記マージ・イネーブル信号と前記第1のクロック信号に応じて、前記シリアル化されたローカルデータと前記フィードスルー・データとをマージさせて、前記シリアル・データストリームにするための前記ローカル・データ選択信号を生成し、前記制御ロジックは、前記モード選択信号に応じて、前記データバス選択信号を更に生成する、
    請求項に記載の集積回路。
  5. 前記ロード信号は、前記第2のPISOシフトレジスタのロード/シフトバーのバー入力に結合された初期のロード・パルス信号であり、
    前記制御ロジックは、マージ制御ロジックを有し、前記マージ制御ロジックは、
    前記マージ・イネーブル信号に結合された第1のデータ入力と、前記初期のロード・パルス信号に結合された選択入力と、を含む第2のマルチプレクサと、
    前記第2のマルチプレクサに結合された第1のDタイプフリップフロップと、を含み、前記第1のDタイプフリップフロップは、前記第2のマルチプレクサの出力に結合されたデータ入力と、前記第1のクロック信号に結合されたクロック入力と、前記第1のマルチプレクサと前記第2のマルチプレクサの第2のデータ入力との前記選択入力に結合されたデータ出力と、を有し、前記第1のDタイプフリップフロップは、前記初期のロード・パルス信号と前記データ出力上の前記ローカル・データ選択信号を生成するための前記第1のクロック信号に応じて、前記マージ・イネーブル信号を記録し、
    前記第2のマルチプレクサは、前記初期のロード・パルス信号が論理上のローになるのに応じて、前記ローカル・データ選択信号を前記第1のDタイプフリップフロップのデータ入力に再循環させ、前記マージ・イネーブル信号は、前記初期のロード・パルス信号が論理上のハイになるのに応じて前記第1のDタイプフリップフロップに結合され、
    前記制御ロジックは、モード制御ロジックを更に有し、前記モード制御ロジックは、
    第3のマルチプレクサを含み、前記第3のマルチプレクサは、前記初期のロード・パルス信号に結合された第1のデータ入力を含み、
    第2のDタイプフリップフロップを含み、前記第2のDタイプフリップフロップは、前記第3のマルチプレクサに結合され、前記第3のマルチプレクサの出力に結合されたデータ入力と、前記第1のクロック信号に結合されたクロック入力と、反転バス・モード信号に結合されたクリア入力と、前記バス・マルチプレクサの前記選択入力及び前記第3のマルチプレクサの第2のデータ入力に結合されたデータ出力と、を含み、前記第2のDタイプフリップフロップは、前記反転バス・モード信号、前記初期のロード・パルス信号、及び、前記第1のクロック信号に応じて、前記データ出力上の前記データバス選択信号を生成させ、
    ORゲートを含み、前記ORゲートは、前記初期のロード・パルス信号に結合された第1の入力と、遅れたロード・パルス信号に結合された第2の入力と、を有し、前記ORゲートは、前記初期のロード・パルス信号と、前記遅れたロード・パルス信号を、論理的にOR演算し、
    ANDゲートを含み、前記ANDゲートは、前記ORゲートの出力に結合された第1の入力と、バス・モード信号に結合された第2の入力と、前記第3のマルチプレクサの選択入力に結合された出力と、を有し、
    インバータを含み、前記インバータは、バス・モード信号に結合された入力と、前記第2のDタイプフリップフロップの前記クリア入力が結合された出力、を有し、前記インバータは、バス・モード信号に応じて、前記反転バス・モード信号を生成し、
    第4のマルチプレクサを含み、前記第4のマルチプレクサは、前記初期のロード・パルス信号に結合された第1のデータ入力、前記ORゲートの前記出力に結合する第2のデータ入力、前記バス・モード信号に結合する制御入力、及び、前記第1のPISOシフトレジスタのロード/シフトバーのバー入力に結合する多重化された出力を有し、
    前記第3のマルチプレクサは、前記反転バス・モード信号に応じて、データバス選択信号を、前記第2のDタイプフリップフロップのデータ入力に再循環させ
    前記第4のマルチプレクサは、前記初期のロード・パルス信号か、又は、前記初期のロード・パルス信号と前記遅れたロード・パルス信号との両方を、前記第1のPISOシフトレジスタのロード/シフトバーのバー入力に、選択的に結合させる
    請求項に記載の集積回路。
  6. 前記集積回路は、バッファ集積回路であり、
    前記ローカル・データバスは、12ビット長であり、
    前記一以上のレーンのそれぞれの前記バス・マルチプレクサは、前記データバス選択信号に応じて、前記ローカル・データバスのより下位の6ビットを前記第1のPISOシフトレジスタに選択的に結合し、前記ローカル・データバスのより上位の6ビットを前記第1のPISOシフトレジスタに選択的に結合する
    請求項に記載の集積回路。
JP2007553363A 2005-01-31 2006-01-27 メモリモジュールからローカルデータをマージするためのメモリバッファ Expired - Fee Related JP4891925B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/047,890 US20060195631A1 (en) 2005-01-31 2005-01-31 Memory buffers for merging local data from memory modules
US11/047,890 2005-01-31
PCT/US2006/003445 WO2006083899A1 (en) 2005-01-31 2006-01-27 Memory buffers for merging local data from memory modules

Publications (2)

Publication Number Publication Date
JP2008529175A JP2008529175A (ja) 2008-07-31
JP4891925B2 true JP4891925B2 (ja) 2012-03-07

Family

ID=36602709

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007553363A Expired - Fee Related JP4891925B2 (ja) 2005-01-31 2006-01-27 メモリモジュールからローカルデータをマージするためのメモリバッファ

Country Status (7)

Country Link
US (2) US20060195631A1 (ja)
JP (1) JP4891925B2 (ja)
KR (1) KR20070092318A (ja)
DE (1) DE112006000298T5 (ja)
GB (1) GB2438116A (ja)
TW (1) TWI335514B (ja)
WO (1) WO2006083899A1 (ja)

Families Citing this family (110)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7389375B2 (en) * 2004-07-30 2008-06-17 International Business Machines Corporation System, method and storage medium for a multi-mode memory buffer device
US7296129B2 (en) 2004-07-30 2007-11-13 International Business Machines Corporation System, method and storage medium for providing a serialized memory interface with a bus repeater
US7395476B2 (en) * 2004-10-29 2008-07-01 International Business Machines Corporation System, method and storage medium for providing a high speed test interface to a memory subsystem
US7356737B2 (en) * 2004-10-29 2008-04-08 International Business Machines Corporation System, method and storage medium for testing a memory module
US7299313B2 (en) 2004-10-29 2007-11-20 International Business Machines Corporation System, method and storage medium for a memory subsystem command interface
US7277988B2 (en) * 2004-10-29 2007-10-02 International Business Machines Corporation System, method and storage medium for providing data caching and data compression in a memory subsystem
US7512762B2 (en) 2004-10-29 2009-03-31 International Business Machines Corporation System, method and storage medium for a memory subsystem with positional read data latency
US7331010B2 (en) 2004-10-29 2008-02-12 International Business Machines Corporation System, method and storage medium for providing fault detection and correction in a memory subsystem
US20060195631A1 (en) 2005-01-31 2006-08-31 Ramasubramanian Rajamani Memory buffers for merging local data from memory modules
US7827462B2 (en) 2005-03-31 2010-11-02 Intel Corporation Combined command and data code
US20060245226A1 (en) * 2005-05-02 2006-11-02 Inphi Corporation Fully buffered DIMM architecture and protocol
US8244971B2 (en) 2006-07-31 2012-08-14 Google Inc. Memory circuit system and method
US7386656B2 (en) 2006-07-31 2008-06-10 Metaram, Inc. Interface circuit system and method for performing power management operations in conjunction with only a portion of a memory circuit
US9507739B2 (en) 2005-06-24 2016-11-29 Google Inc. Configurable memory circuit system and method
US8335894B1 (en) 2008-07-25 2012-12-18 Google Inc. Configurable memory system with interface circuit
US8055833B2 (en) 2006-10-05 2011-11-08 Google Inc. System and method for increasing capacity, performance, and flexibility of flash storage
US8077535B2 (en) 2006-07-31 2011-12-13 Google Inc. Memory refresh apparatus and method
US8359187B2 (en) 2005-06-24 2013-01-22 Google Inc. Simulating a different number of memory circuit devices
US8130560B1 (en) 2006-11-13 2012-03-06 Google Inc. Multi-rank partial width memory modules
US8081474B1 (en) 2007-12-18 2011-12-20 Google Inc. Embossed heat spreader
US8111566B1 (en) 2007-11-16 2012-02-07 Google, Inc. Optimal channel design for memory devices for providing a high-speed memory interface
US8169233B2 (en) 2009-06-09 2012-05-01 Google Inc. Programming of DIMM termination resistance values
US8327104B2 (en) 2006-07-31 2012-12-04 Google Inc. Adjusting the timing of signals associated with a memory system
US8060774B2 (en) 2005-06-24 2011-11-15 Google Inc. Memory systems and memory modules
US10013371B2 (en) 2005-06-24 2018-07-03 Google Llc Configurable memory circuit system and method
US8438328B2 (en) 2008-02-21 2013-05-07 Google Inc. Emulation of abstracted DIMMs using abstracted DRAMs
GB2441726B (en) 2005-06-24 2010-08-11 Metaram Inc An integrated memory core and memory interface circuit
US7609567B2 (en) 2005-06-24 2009-10-27 Metaram, Inc. System and method for simulating an aspect of a memory circuit
US8796830B1 (en) 2006-09-01 2014-08-05 Google Inc. Stackable low-profile lead frame package
US9171585B2 (en) 2005-06-24 2015-10-27 Google Inc. Configurable memory circuit system and method
US8089795B2 (en) 2006-02-09 2012-01-03 Google Inc. Memory module with memory stack and interface with enhanced capabilities
US8397013B1 (en) 2006-10-05 2013-03-12 Google Inc. Hybrid memory module
US8090897B2 (en) 2006-07-31 2012-01-03 Google Inc. System and method for simulating an aspect of a memory circuit
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
US8386722B1 (en) 2008-06-23 2013-02-26 Google Inc. Stacked DIMM memory interface
US20080028136A1 (en) 2006-07-31 2008-01-31 Schakel Keith R Method and apparatus for refresh management of memory modules
US9542352B2 (en) 2006-02-09 2017-01-10 Google Inc. System and method for reducing command scheduling constraints of memory circuits
US8041881B2 (en) 2006-07-31 2011-10-18 Google Inc. Memory device with emulated characteristics
JP5242397B2 (ja) 2005-09-02 2013-07-24 メタラム インコーポレイテッド Dramをスタックする方法及び装置
US7478259B2 (en) 2005-10-31 2009-01-13 International Business Machines Corporation System, method and storage medium for deriving clocks in a memory system
US7577039B2 (en) * 2005-11-16 2009-08-18 Montage Technology Group, Ltd. Memory interface to bridge memory buses
US7558124B2 (en) * 2005-11-16 2009-07-07 Montage Technology Group, Ltd Memory interface to bridge memory buses
US7368950B2 (en) * 2005-11-16 2008-05-06 Montage Technology Group Limited High speed transceiver with low power consumption
US7685392B2 (en) 2005-11-28 2010-03-23 International Business Machines Corporation Providing indeterminate read data latency in a memory system
US9632929B2 (en) 2006-02-09 2017-04-25 Google Inc. Translating an address associated with a command communicated between a system and memory circuits
US7636813B2 (en) * 2006-05-22 2009-12-22 International Business Machines Corporation Systems and methods for providing remote pre-fetch buffers
US7783935B2 (en) * 2006-06-02 2010-08-24 Hewlett-Packard Development Company, L.P. Bit error rate reduction buffer
US7584336B2 (en) * 2006-06-08 2009-09-01 International Business Machines Corporation Systems and methods for providing data modification operations in memory subsystems
US7844769B2 (en) * 2006-07-26 2010-11-30 International Business Machines Corporation Computer system having an apportionable data bus and daisy chained memory chips
US7724589B2 (en) 2006-07-31 2010-05-25 Google Inc. System and method for delaying a signal communicated from a system to at least one of a plurality of memory circuits
US7669086B2 (en) 2006-08-02 2010-02-23 International Business Machines Corporation Systems and methods for providing collision detection in a memory system
US9984012B2 (en) 2006-09-28 2018-05-29 Virident Systems, Llc Read writeable randomly accessible non-volatile memory modules
US20080082750A1 (en) * 2006-09-28 2008-04-03 Okin Kenneth A Methods of communicating to, memory modules in a memory channel
US7761623B2 (en) * 2006-09-28 2010-07-20 Virident Systems, Inc. Main memory in a system with a memory controller configured to control access to non-volatile memory, and related technologies
US8074022B2 (en) * 2006-09-28 2011-12-06 Virident Systems, Inc. Programmable heterogeneous memory controllers for main memory with different memory modules
US8949555B1 (en) 2007-08-30 2015-02-03 Virident Systems, Inc. Methods for sustained read and write performance with non-volatile memory
US8051253B2 (en) * 2006-09-28 2011-11-01 Virident Systems, Inc. Systems and apparatus with programmable memory control for heterogeneous main memory
US7761625B2 (en) * 2006-09-28 2010-07-20 Virident Systems, Inc. Methods for main memory with non-volatile type memory modules, and related technologies
US7761624B2 (en) * 2006-09-28 2010-07-20 Virident Systems, Inc. Systems and apparatus for main memory with non-volatile type memory modules, and related technologies
US7761626B2 (en) * 2006-09-28 2010-07-20 Virident Systems, Inc. Methods for main memory in a system with a memory controller configured to control access to non-volatile memory, and related technologies
WO2008051940A2 (en) 2006-10-23 2008-05-02 Virident Systems, Inc. Methods and apparatus of dual inline memory modules for flash memory
US7870459B2 (en) 2006-10-23 2011-01-11 International Business Machines Corporation High density high reliability memory module with power gating and a fault tolerant address and command bus
US7861140B2 (en) 2006-10-31 2010-12-28 Globalfoundries Inc. Memory system including asymmetric high-speed differential memory interconnect
US7694031B2 (en) * 2006-10-31 2010-04-06 Globalfoundries Inc. Memory controller including a dual-mode memory interconnect
US20080133864A1 (en) * 2006-12-01 2008-06-05 Jonathan Randall Hinkle Apparatus, system, and method for caching fully buffered memory
US7721140B2 (en) 2007-01-02 2010-05-18 International Business Machines Corporation Systems and methods for improving serviceability of a memory system
US7606988B2 (en) * 2007-01-29 2009-10-20 International Business Machines Corporation Systems and methods for providing a dynamic memory bank page policy
DE102007010284A1 (de) * 2007-03-02 2008-09-04 Qimonda Ag Schnittstellenvorrichtung, Schaltungsmodul, Schaltungssystem, Vorrichtung für eine Datenkommunikation und Verfahren zum Kalibrieren eines Schaltungsmoduls
US7975082B2 (en) * 2007-07-12 2011-07-05 Oracle America, Inc. System and method to facilitate deterministic testing of data transfers between independent clock domains on a chip
US8209479B2 (en) 2007-07-18 2012-06-26 Google Inc. Memory circuit system and method
US9921896B2 (en) 2007-08-30 2018-03-20 Virident Systems, Llc Shutdowns and data recovery to avoid read errors weak pages in a non-volatile memory system
US8080874B1 (en) 2007-09-14 2011-12-20 Google Inc. Providing additional space between an integrated circuit and a circuit board for positioning a component therebetween
JP2009164786A (ja) * 2007-12-28 2009-07-23 Nec Electronics Corp データ転送システムおよびデータ転送方法
US8225016B2 (en) * 2007-12-31 2012-07-17 Intel Corporation Even and odd frame combination data path architecture
US9251899B2 (en) * 2008-02-12 2016-02-02 Virident Systems, Inc. Methods for upgrading main memory in computer systems to two-dimensional memory modules and master memory controllers
US8856464B2 (en) * 2008-02-12 2014-10-07 Virident Systems, Inc. Systems for two-dimensional main memory including memory modules with read-writeable non-volatile memory devices
US7948975B2 (en) * 2008-03-03 2011-05-24 IPLight Ltd. Transparent switching fabric for multi-gigabit transport
US9513695B2 (en) 2008-06-24 2016-12-06 Virident Systems, Inc. Methods of managing power in network computer systems
US8417873B1 (en) 2008-06-24 2013-04-09 Virident Systems, Inc. Random read and read/write block accessible memory
US20100005206A1 (en) * 2008-07-01 2010-01-07 International Business Machines Corporation Automatic read data flow control in a cascade interconnect memory system
US20100122003A1 (en) * 2008-11-10 2010-05-13 Nec Laboratories America, Inc. Ring-based high speed bus interface
US8713248B2 (en) * 2009-06-02 2014-04-29 Nokia Corporation Memory device and method for dynamic random access memory having serial interface and integral instruction buffer
US8762657B2 (en) * 2009-07-28 2014-06-24 Rambus Inc. Method and system for synchronizing address and control signals in threaded memory modules
JP5535672B2 (ja) * 2010-02-02 2014-07-02 エヌイーシーコンピュータテクノ株式会社 シリアル転送装置及び方法
US9159442B2 (en) * 2011-11-11 2015-10-13 Microchip Technology Incorporated Serial memory with fast read with look-ahead
EP2801032B1 (en) * 2012-01-04 2020-01-01 Intel Corporation Bimodal functionality between coherent link and memory expansion
US9357649B2 (en) 2012-05-08 2016-05-31 Inernational Business Machines Corporation 276-pin buffered memory card with enhanced memory system interconnect
US8842490B2 (en) * 2012-06-29 2014-09-23 Intel Corporation Apparatus and method for selectively using a memory command clock as a reference clock
TWI456398B (zh) * 2012-07-03 2014-10-11 Acer Inc 支援雙主控裝置的資料路由系統
US9336164B2 (en) 2012-10-04 2016-05-10 Applied Micro Circuits Corporation Scheduling memory banks based on memory access patterns
US8990473B2 (en) 2012-10-04 2015-03-24 Applied Micro Circuits Corporation Managing requests to open and closed banks in a memory system
US9146677B2 (en) 2013-01-28 2015-09-29 Applied Micro Circuits Corporation Systems and methods for queue request ordering without stalling requests in aliasing conditions by using a hash indexed based table
US20140244900A1 (en) * 2013-02-28 2014-08-28 Spansion Llc Non-volatile memory based system ram
US9519315B2 (en) 2013-03-12 2016-12-13 International Business Machines Corporation 276-pin buffered memory card with enhanced memory system interconnect
US9141541B2 (en) 2013-09-20 2015-09-22 Advanced Micro Devices, Inc. Nested channel address interleaving
CN110265071B (zh) * 2013-09-24 2023-05-12 拉姆伯斯公司 具有内部读取-修改-写入操作的存储部件
US9984026B2 (en) * 2015-05-11 2018-05-29 Nakaikegami Koubou Co., Ltd. Circuit, parallel computing device, computer system and computer readable storage medium
US20170006462A1 (en) * 2015-07-04 2017-01-05 Sphero, Inc. Triggering associations based on detection events
CN105183433B (zh) * 2015-08-24 2018-02-06 上海兆芯集成电路有限公司 指令合并方法以及具有多数据通道的装置
US10102884B2 (en) 2015-10-22 2018-10-16 International Business Machines Corporation Distributed serialized data buffer and a memory module for a cascadable and extended memory subsystem
US9934090B2 (en) * 2015-12-22 2018-04-03 Intel Corporation Apparatus and method for enforcement of reserved bits
US10339072B2 (en) 2016-04-01 2019-07-02 Intel Corporation Read delivery for memory subsystem with narrow bandwidth repeater channel
JP6734536B2 (ja) * 2016-07-29 2020-08-05 富士通株式会社 情報処理装置及びメモリコントローラ
US10095421B2 (en) 2016-10-21 2018-10-09 Advanced Micro Devices, Inc. Hybrid memory module bridge network and buffers
US10140222B1 (en) 2017-07-06 2018-11-27 Micron Technology, Inc. Interface components
US10216685B1 (en) * 2017-07-19 2019-02-26 Agiga Tech Inc. Memory modules with nonvolatile storage and rapid, sustained transfer rates
US11336757B2 (en) 2019-03-19 2022-05-17 Texas Instruments Incorporated Sample based data transmission over low-level communication channel
US11631455B2 (en) 2021-01-19 2023-04-18 Qualcomm Incorporated Compute-in-memory bitcell with capacitively-coupled write operation
US11538509B2 (en) * 2021-03-17 2022-12-27 Qualcomm Incorporated Compute-in-memory with ternary activation
CN116233200B (zh) * 2023-05-10 2023-08-15 浙江正泰仪器仪表有限责任公司 一种基于后续帧动态注册的电能表通信方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04369720A (ja) * 1991-06-18 1992-12-22 Fujitsu Ltd パラレル/シリアル変換装置
US20040193821A1 (en) * 2003-03-27 2004-09-30 Michael Ruhovets Providing an arrangement of memory devices to enable high-speed data access
WO2004102403A2 (en) * 2003-05-13 2004-11-25 Advanced Micro Devices, Inc. A system including a host connected to a plurality of memory modules via a serial memory interconnect
WO2004109528A2 (en) * 2003-06-04 2004-12-16 Intel Corporation Memory channel with unidrectional links

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3914741A (en) * 1973-11-01 1975-10-21 Bell Telephone Labor Inc Fault detection arrangement for digital transmission system
US4672609A (en) * 1982-01-19 1987-06-09 Tandem Computers Incorporated Memory system with operation error detection
US4541091A (en) * 1982-06-11 1985-09-10 Hitachi, Ltd. Code error detection and correction method and apparatus
US4907228A (en) * 1987-09-04 1990-03-06 Digital Equipment Corporation Dual-rail processor with error checking at single rail interfaces
US5173905A (en) * 1990-03-29 1992-12-22 Micron Technology, Inc. Parity and error correction coding on integrated circuit addresses
US5530835A (en) * 1991-09-18 1996-06-25 Ncr Corporation Computer memory data merging technique for computers with write-back caches
US5455834A (en) * 1993-06-14 1995-10-03 Hal Computer Systems, Inc. Fault tolerant address translation method and system
JPH0981463A (ja) 1995-09-14 1997-03-28 Fuji Electric Co Ltd メモリアクセス方法
US5940137A (en) * 1996-03-01 1999-08-17 Trw Inc. Symbol timing generation and recovery for data transmission in an analog video signal
JP2984913B2 (ja) * 1996-04-23 1999-11-29 順一 仙波 プログラム可能なシーケンス制御回路
US5900742A (en) * 1996-06-21 1999-05-04 Quicklogic Corporation Interface cell for a programmable integrated circuit employing antifuses
US5996113A (en) * 1996-11-26 1999-11-30 Intel Corporation Method and apparatus for generating digital checksum signatures for alteration detection and version confirmation
US6101198A (en) * 1996-12-03 2000-08-08 Carrier Access Corporation Processor-based voice and data time slot interchange system
US7076568B2 (en) * 1997-10-14 2006-07-11 Alacritech, Inc. Data communication apparatus for computer intelligent network interface card which transfers data between a network and a storage device according designated uniform datagram protocol socket
US7243543B2 (en) * 1999-10-01 2007-07-17 Optoplan As Highly sensitive accelerometer
US6760743B1 (en) * 2000-01-04 2004-07-06 International Business Machines Corporation Instruction memory system for multi-processor environment and disjoint tasks
US7266634B2 (en) * 2000-01-05 2007-09-04 Rambus Inc. Configurable width buffered module having flyby elements
US6999407B2 (en) * 2001-03-15 2006-02-14 Samsung Electronics Co., Ltd. Speed negotiation device and method
JP3757204B2 (ja) * 2002-12-06 2006-03-22 ファナック株式会社 エラー検出/訂正方式及び該方式を用いた制御装置
US7313639B2 (en) * 2003-01-13 2007-12-25 Rambus Inc. Memory system and device with serialized data transfer
US20060095620A1 (en) * 2004-10-29 2006-05-04 International Business Machines Corporation System, method and storage medium for merging bus data in a memory subsystem
US20060195631A1 (en) 2005-01-31 2006-08-31 Ramasubramanian Rajamani Memory buffers for merging local data from memory modules
US20060242537A1 (en) * 2005-03-30 2006-10-26 Dang Lich X Error detection in a logic device without performance impact
US7827462B2 (en) * 2005-03-31 2010-11-02 Intel Corporation Combined command and data code

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04369720A (ja) * 1991-06-18 1992-12-22 Fujitsu Ltd パラレル/シリアル変換装置
US20040193821A1 (en) * 2003-03-27 2004-09-30 Michael Ruhovets Providing an arrangement of memory devices to enable high-speed data access
WO2004102403A2 (en) * 2003-05-13 2004-11-25 Advanced Micro Devices, Inc. A system including a host connected to a plurality of memory modules via a serial memory interconnect
WO2004109528A2 (en) * 2003-06-04 2004-12-16 Intel Corporation Memory channel with unidrectional links

Also Published As

Publication number Publication date
DE112006000298T5 (de) 2007-12-13
GB2438116A8 (en) 2007-11-19
US20060195631A1 (en) 2006-08-31
GB2438116A (en) 2007-11-14
US8166218B2 (en) 2012-04-24
US20090013108A1 (en) 2009-01-08
WO2006083899A1 (en) 2006-08-10
TW200641621A (en) 2006-12-01
TWI335514B (en) 2011-01-01
JP2008529175A (ja) 2008-07-31
KR20070092318A (ko) 2007-09-12
GB0714910D0 (en) 2007-09-12

Similar Documents

Publication Publication Date Title
JP4891925B2 (ja) メモリモジュールからローカルデータをマージするためのメモリバッファ
US11513955B2 (en) Memory module with local synchronization and method of operation
US6445624B1 (en) Method of synchronizing read timing in a high speed memory system
EP3279798B1 (en) System including hierarchical memory modules having different types of integrated circuit memory devices
KR100450672B1 (ko) 포인트 대 포인트 버스 구성을 갖는 메모리 시스템
KR101462604B1 (ko) 반도체 장치 및 멀티-칩 패키지
US7925824B2 (en) System to reduce latency by running a memory channel frequency fully asynchronous from a memory device frequency
US5926838A (en) Interface for high speed memory
US8392686B2 (en) System and method for read synchronization of memory modules
US7925825B2 (en) System to support a full asynchronous interface within a memory hub device
US20060004968A1 (en) Method and apparatus for memory compression
US20030018848A1 (en) Memory device interface
KR20040106303A (ko) 프리페치 길이보다 짧은 버스트 길이를 갖는 메모리 시스템
JP2004524641A (ja) リードデータ用のシステムレイテンシーレベライゼーション
US20060095620A1 (en) System, method and storage medium for merging bus data in a memory subsystem
TW200830326A (en) Memory system including a high-speed serial buffer
US20070156993A1 (en) Synchronized memory channels with unidirectional links
US20090319748A1 (en) Memory system and memory device
KR20090032168A (ko) 어드레스 트레이닝 모드 동작을 하는 반도체 메모리장치.
JPH11232180A (ja) データ処理装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101122

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110104

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110404

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110411

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110427

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110802

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111102

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4891925

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20141222

Year of fee payment: 3

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