(58)【調査した分野】(Int.Cl.,DB名)
特定DIMMに専用の専用データピン及び多重DIMMによって共有される共有データピンの双方が、前記装置フィードバックを伝送するために利用されることを特徴とする請求項1に記載のメモリモジュール。
前記装置フィードバックの前記複数のタイムスロットの各々は、トランザクションID(Transaction Identification)を含むことを特徴とする請求項1に記載のメモリモジュール。
前記不揮発性メモリ及び前記揮発性メモリは、前記DDRメモリチャンネルに共に配置された(co−located)ことを特徴とする請求項1に記載のメモリモジュール。
特定DIMM専用の専用データピン及び複数のDIMMによって共有される共有データピンの双方が、前記装置フィードバックを伝送するために利用されることを特徴とする請求項8に記載のシステム。
前記装置フィードバックの前記複数のタイムスロットの各々は、トランザクションID(Transaction Identification)を含むことを特徴とする請求項8に記載のシステム。
特定DIMM専用の専用データピン、及び多重DIMMによって共有される共有データピンを利用して装置フィードバックを伝送する段階をさらに備えることを特徴とする請求項15に記載の方法。
【発明を実施するための形態】
【0013】
本明細書で開示された特徴及び教示の各々は、標準同期プロトコルと互換な非同期式通信プロトコルを提供するための他の特徴及び教示と共に、又は分離されて利用できる。このような追加的な特徴及び教示が分離されるか、或いは結合されて利用される代表的な例は、添付された図面を参照して詳細に説明される。このような詳細な説明は、単に、本教示の側面を実施するために、当該技術分野で詳細な知識を有する者に対してより詳細を教示するためであり、特許請求の範囲を制限しない。従って、詳細な説明に開示された特徴の組合せは、本教示をその最も広い意味で実施する際に必須とは限らず、単に、本教示の特に代表的な実施形態を説明するために教示される。
【0014】
以下の説明で、単に説明を目的として、特定名称が本発明の完全な理解を提供するために提起される。しかし、このような特定細部事項は本発明の思想を実施するために必須ではないことは当業者に理解できよう。
【0015】
詳細な説明の幾つかの部分は、アルゴリズム及びコンピュータメモリ内データビットに対する動作のシンボル表現の側面で提供される。これらのアルゴリズム説明及び表現は他の分野の当業者に作業の実体を効果的に伝達するために、データ処理分野の当業者によって利用される。ここで、アルゴリズムは一般的に望む結果に至る、一貫性ある一連の段階である。段階は物理的量に対する物理的操作が必要である。一般に このような量は、必ずしも絶対的ではないが、格納、伝達、結合、比較、及びその他の操作が可能な電気又は磁気信号の形態を取る。このような信号をビット、値、要素、シンボル、特徴、用語、数等として参照することが主に共通的な利用の理由でしばしば便利であることが立証されている。
【0016】
しかし、これら及び類似な用語の全ては適切な物理量と連関され、単なるこのような量に適用される便利なラベルであることを留意しなければならない。具体的には下の説明から明確であるように、説明で、このような“処理”、“コンピューティング”、“計算”、“決定”、“表示”等のような用語を利用する論議はコンピュータシステム又はコンピュータレジスター及びメモリ内で物理的(電気的)量として現れるデータをコンピュータシステムメモリ又はレジスター又は他の情報ストレージ、伝送又は表示装置内で物理的量として現れる類似な他のデータに操作及び変形する類似な電子コンピューティング装置の活動及び過程を示すことと理解される。
【0017】
本明細書で説明されたアルゴリズムは、本質的に任意の特定コンピュータ又は他の機器(apparatus)に関連付けされない。多様な一般的な目的のシステム、コンピュータサーバー、又は個人用コンピュータは本明細書の教示に従うプログラムと共に利用されるか、或いは要求された方法段階を遂行するためのより特殊化された装置を構成することが便利であることができる。このような多様なシステムのために要求される構造は以下の説明で示される。多様なプログラミング言語が本明細書で記載されたように発明の教示を具現するのに利用されてもよいことを理解すべきである。
【0018】
また、代表的な例に対する多様な特徴及び従属項は本発明の教示に対する有用な追加的な実施形態を提供するために明示的ではなく、そして列挙されない方式に結合されることもできる。また、全ての値の範囲又は独立体のグループの暗示は全ての可能な中間値又は当該発明を制限する目的のみならず、本来の開示目的のための中間独立体を開始することが言及される。また、明示的な基準及び図面に図示された構成要素の形状は本明細書で実施される方式を理解できる設計されるが、寸法及び実施形態に示した形状に限定されないことを留意しなければならない。
【0019】
本発明は多様な形態のDDRメモリ(例えば、DDR1、DDR2、DDR3、及びDDR4)と互換な非同期式通信プロトコルを提供する。非同期式通信プロトコルは多様な読出し、書込み、及び/又は活性化レイテンシ(Latency)を有するメモリモジュールを支援できる。非同期式メモリモジュールは、同一のメモリチャンネルに共に配置された不揮発性メモリ及び/又は揮発性メモリ(例えば、DRAM)の双方を含み得る。
追加的に、非同期式通信プロトコルはメモリモジュールがメモリコントローラへ装置フィードバック(Device Feedback)を提供するようにできる。DIMM(Dual In−line Memory Module)及びメモリモジュール用語は本明細書で相互交換的に利用できる。ここでDIMMは、DRAMを含む標準DIMM、NVM(Non Volatile Memory)を含むNVDIMM、又はDRAM及びNVMを含むハイブリッド(Hybrid)DIMMの何れかであり得る。
【0020】
NVDIMM形態のメモリの例としてはNVMを含む不揮発性メモリNVM DIMM及びNVM及びDRAMの双方を含むハイブリッドDIMMを含むが、これに限定されない。NVM DIMMはNVMに対してメモリとしての直接的なアクセスを提供する。ハイブリッドDIMMはダイレクト(Direct)モード又はキャッシュ(Cache)モードの中の何れか1つとして動作できる。ダイレクトモードで、ハイブリッドDIMMはNVM DIMMと同様にメモリとしての直接的なアクセスを提供する。ハイブリッドDIMM内のDRAM及びNVMは異なるアドレス範囲を有する。
ホストは異なるアドレス範囲を有するDRAM及びNVMに対してDRAM作業又はNVM作業を分離して送付できる。例えば、DDR標準のC[2]ピンはDRAM及びNVMのアドレス範囲を分離するために利用できる。C[2] ピンがロー(Low、0に設定)である場合、DRAMが選択される。そして、C[2]ピンがハイ(High、1に設定)である場合、NVMが選択される。キャッシュモードでは、DRAMはNVMのキャッシュとして動作できる。DRAMキャッシュはホストに対して透明(transparent)であり、ハイブリッドDIMM内部のコントローラによって管理される。
【0021】
図1は本発明の実施形態に係る非同期式通信プロトコルの実施形態を図示する。非同期式通信プロトコルは、チップとモジュールのインタフェイスに対してDDR4と互換である。メモリモジュール120は不揮発性メモリ121、揮発性メモリ(例えば、DRAM)122、又は双方を含む。不揮発性メモリ121は、例としてフラッシュメモリ、PRAM(Phase Change Random Access Memory)、STT−MRAM(Spin Transfer Torque Magnetic Random Access Memory)、ReRAM(Resistive Random Access Memory)を含むが、これに限定されない。メモリコントローラ110は不揮発性メモリ121とのインタフェイスとして非同期式通信プロトコル150を提供し、揮発性メモリ122とのインタフェイスとして同期式通信プロトコル151を提供する非同期式通信プロトコル150及び同期式通信プロトコル151は同一の物理的DDRチャンネルを共有するか、或いは専用の物理的DDRチャンネルを有する。
【0022】
一実施形態に拠ると、本発明の非同期式通信プロトコルは、RAS(Row Address Select又は Row Address Strobe)−CAS(Column Address Select又はColumn Address Strobe)を利用する既存の同期式DDRプロトコルを拡張する。既存の同期DDRプロトコルはまたRAS−CASプロトコル又は標準DDRプロトコルと称される。拡張されたRAS−CASプロトコルは標準DDRプロトコルに対して指定されたDRAM及びモジュールのピンの機能を拡張(extend)するか、或いは、用途変更(repurpose)し、メモリコントローラ100とメモリモジュール120の不揮発性メモリ121との間に非同期式インタフェイス150を提供する。
非同期式通信プロトコルは拡張されるか、或いは、用途変更されたRAM及びモジュールのピンを利用するので、不揮発性メモリ121及び揮発性メモリ122は同一のメモリモジュール120に共に配置でき、同一のメモリチャンネル(例えば、DDRメモリチャンネル)を通じてメモリコントローラ110と通信できる。さらに、本、非同期式通信プロトコルは、メモリモジュール120が、本、非同期式通信プロトコルを利用してDDRメモリチャンネルを通じてメモリコントローラ110に装置フィードバックを提供することを可能にする。
【0023】
図2は標準DDRプロトコルを利用する読出しサイクル(Cycle)に対するタイミングを示す。メモリモジュールに含まれたメモリ装置のメモリセルからデータを読出すために、セルは行及び列座標によって選択され、セルの電荷は感知され、増幅され、支援回路に送られ、そしてデータはメモリ装置のデータ出力ピンへ送らなければならない。RAS(Row Address Strobe)は行アドレスをラッチ(Latch)し、メモリサイクルを開始するために利用される。CAS(Column Address Strobe)は列アドレスをラッチし、そして読出しサイクル又は書込みサイクルの中で何れか1つを開始するために利用される。
【0024】
読出しサイクルのためのタイミング観点から見ると、読出しサイクルは次のような順序に発生する。最初に、メモリコントローラは読出しサイクルを開始し、メモリモジュールからデータを読出すために活性化命令(Activate command、ACT)を生成する。活性化命令は行アドレス(RA)をメモリモジュールのアドレス入力ピンへ伝達し、RASはラッチされる。その次に列アドレス(CA)がメモリモジュールのアドレス入力ピンへ伝達される。読出し信号RDはCAS変換の前に読出し動作を開始するために先ずラッチされる。その次にCASがラッチされる。事前に決定された時間が経た後に、要請されたデータはメモリモジュールのデータ出力ピンに示される。読出し信号RDが設定された後にデータが現れる時間はRAS及びCASを含む多様な信号のタイミング及び信号の間の事前に決定された遅延時間に依存する。読出しサイクルが完了される前に、CAS及びRASは非活性状態に戻る。
【0025】
図3は本発明の実施形態に係る拡張されたRAS−CASプロトコルを利用する例示的な読出しサイクルに対するタイミング図を図示する。ここで、拡張されたRAS−CASプロトコル及び非同期式通信プロトコル用語は相互交換的に利用される。拡張されたRAS−CASプロトコルは、メモリモジュールの不揮発性メモリNVMがメモリモジュールの専用の又は共有された1つ又はそれ以上の用途変更されたデータピンによってメモリコントローラと通信する。メモリモジュールは、また用途変更されたピンを利用してメモリコントローラへフィードバックを提供する。例えば、
図3のタイミング図を参照して記述された例は不揮発性メモリ(例えば、PCM(=PRAM、位相変化メモリ))又は揮発性メモリ(例えば、DRAM)のための読出しサイクルであるが、拡張されたRAS−CASプロトコルは本発明の範囲を逸脱することなく、書込みサイクル又は読出し−修正−書込み(Read−Modifiy−Write)サイクルにも適用できる。
【0026】
図2に示された標準同期式DDRプロトコルの場合は、メモリモジュールのデータ出力ピンに読出しデータが現れるタイミングは時間的(temporal)に予測可能であり、決定論的であったが、拡張されたRAS−CASプロトコルの場合は、メモリコントローラ及びメモリモジュールの間のデータが非同期式に交換される。例えば、DDR4メモリチャンネルに発送された活性化命令ACTに応答して、メモリモジュールは、例えば自分の状態(STATUS)を装置フィードバックとしてメモリコントローラに提供する。メモリモジュールは不揮発性メモリを含むか、或いは揮発性メモリに加えて不揮発性メモリを含む。
この場合、装置フィードバックは、DRAMのオープンページと類似な方式により、不揮発性メモリのデータバッファにデータが位置したことを示す。メモリモジュールの状態に基づいて、メモリコントローラはメモリチャンネル上に読出し信号RDを何時発送するかを決定する。読出し信号RDがラッチされた後、要請されたデータは事前に決定された時間だけ遅延された後、メモリモジュールのデータ出力ピンに示される。活性化命令ACTとフィードバック信号との間、及び、フィードバック信号と読出し信号RDとの間のタイミングは各々、変動可能であり、本発明の拡張されたRAS−CASプロトコルは、同期式DDRメモリチャンネルと互換に具現されているけれども、非同期式である。
【0027】
一実施形態に拠ると、フィードバック状態はNVMデータがデータバッファに位置したことを示す。データバッファはDRAMオープンページと類似な方式により要請された読出しデータを格納する。ページがオープンされた後、同一のページにおける全ての連続した読出し(又は書込み)アクセスは固定されたDRAMレイテンシを有する。
【0028】
一実施形態において、拡張されたRAS−CASプロトコルは専用又は共有ピンを拡張及び/又は用途変更でき、多重リンクが同一のチャンネル上の異なるDIMMs(Dual In−line Memory Modules)の間で確立できる。拡張されたRAS−CASプロトコルは、メモリモジュールからの共有された装置フィードバックをメモリコントローラへ提供するための同期化ロジックを必要とする。これに加えて、拡張RAS−CASプロトコルは装置フィードバック伝達によって、モジュール内(in−module)RAS特性に対する支援を提供する。
【0029】
他の実施形態において、フィードバック状態は2種類の信号(フィードバックメッセージMSG_DQ及び読出し準備完了信号(Read_Ready))を含む。MSG_DQは同期式信号であり、常にDQバス上でデータと共に整列される。しかし、Read_Ready信号はデータと整列される必要が無い非同期式信号である。
【0030】
図4は本発明の実施形態に係る例示的な読出しサイクルのタイミング図を示す。不揮発性メモリ又は揮発性メモリはDRAMと類似なページの概念乃至具現を有する必要がない。代わりに、非同期式通信プロトコルにおいて、ACT命令が発行された後、明示的なフィードバック(例えば、Read_Ready信号)が各読出し信号RDのために必要である。Read_Ready信号は、或るデータパッケージがホストによって読み出される準備完了になったことを示し、フィードバックチャンネルの特定の単数のピン(又は複数のピン)を通じて伝達される。メモリコントローラがメモリモジュールからRead_Ready信号を受信した後、メモリコントローラはデータを回収するための決定されたタイミングと共にデータ読出しトランザクション(Transaction)を開始する他の命令(例えば、SEND)を発行する。トランザクション命令(例えば、SEND)の後、事前に定義されたレイテンシ(例えば、tRL)の後に、読出しデータはデータバスに現れる。データに加えて、読出しID(RID)のような情報もフィードバックチャンネルの他のピン(例えば、MSG_DQピン)を通じて伝達される。
【0031】
図5は本発明の実施形態に係る例示的な書込みサイクルに対するタイミング図を示す。ホストが書込み要請(Write Request、WR)命令を発行した後、対応するデータが、事前に決定され且つ固定されたレイテンシ後のデータバスに現れる。ホストはどのくらい多い書込み動作がメモリモジュールへ伝達可能かを決定するために書込みクレジット(Write Credit、WC)のカウンティング(Counting)を維持する。
【0032】
図6は本発明の他の実施形態に係る例示的な読出し状態サイクルに対するタイミング図を示す。ホストが読出し状態(Read Status、RS)命令を発行した後、対応する状態パッケージが事前に決定され、固定されたレイテンシ以後データバスに現れる。ホストはメモリモジュールの書込みバッファにおいて利用可能な入力数(Entry)である書込みクレジットWCをアップデート(Update)するために読出し状態RS命令を利用する。ホストはメモリモジュールにおいて書込みバッファが利用可能になる時まで(例えば、WC>0)書込み要請(WR)を発行しない。
【0033】
書込みクレジット(WC)は、読出しデータパッケージ中のMSG DQを利用してアップデートされ得る。読出しデータパッケージ中のMSG DQの1つ又はそれ以上のビットは、メモリモジュールにおいて1又は特定の数のWCが利用可能なことを示すのに利用される。
【0034】
状態情報メッセージは、メモリモジュールが書込み状態に対する情報を返信するために、1つ又はそれ以上の書込みID(Write IDs、WIDs)を含む。例えば、データの書込みIDは以前の書込み命令に対する書込み確認として利用される。受信された書込みIDがホストによって送られた書込みIDと一致する場合、書込みは確認される。CRC(Cyclic Redundancy Check)又はパリティー(Parity)のようなECC(Error−correcting code)の保護はMSG_DQでパケット完全性保障(packet integrity protection)のために利用される。
状態情報メッセージは更に、準備完了パッケージカウント、NVM内部状態、以前命令又は動作に対する状態、及び任意のRAS情報及びインタラプトサービス(Interrupt service)情報を含む他の情報も含み得る。
【0035】
メモリコントローラ及びメモリモジュールの間でフィードバック状態が通信されるのに要するサイクル数は、特定のメモリモジュールによって決定されるか、及び/又は、メモリモジュールの初期化の時、メモリコントローラによって選択的に構成される。メモリコントローラ及びメモリモジュールの間で通信されるフィードバック状態情報の具体的な構成は、フィードバック状態の通信に要するサイクル数、又はフィードバック状態のクロック(Clock)速度に依存して変わる。
例えば、3つのコネクタ(Connector)ピンがMSG DQ(Message Data bus)に用途変更して割当られた場合、フィードバック状態は4個のSDR(Single Data Rate)サイクルの間に伝送される。この場合、フィードバック状態は12ビット分のデータを含む。更に、他のピンが読出し準備完了ピン(Read_Ready)に用途変更して割当られる。8個のコネクタピンが用途変更された他の例において、フィードバック状態は16ビットの情報を含み、そしてフィードバック状態を伝達するために2つのSDRサイクルを利用する。3つのコネクタピンが用途変更された他の例において、2つのピンが状態のために利用され、他のピンは状態のデータストロボ(Strobe)として利用される。この例でフィードバック状態は16ビットの情報を含み、そしてフィードバック状態を伝達するために8個のDDR(Double Data Rate)サイクル利用する。
サイクル数及び/又はフィードバック状態情報を伝達するビットの数は、本明細書に開示されてある実施形態によって限定されないと理解されなければならない。
【0036】
メモリコントローラは第1番目のサイクルにおけるフィードバック状態メッセージの第1番目のビットである、MSG[0]を読み出してノーマルデータパケット(Normal Data Packet)か、状態パケット(Status Packet)か、を区別する。例えば、MSG[0]ビットが0であれば、メモリコントローラはパケットをノーマルデータパケットとしてデコード(Decode)する。MSG[0]ビットが1であれば、メモリコントローラはパケットを状態パケットとしてデコードする。
【0037】
一実施形態において、読出し又は書込み命令は拡張(Extension)命令と共に伝達される。拡張命令は拡張されたアドレス、トランザクションID、及び読出し又は書込み命令と関連されたトランザクション優先順位のような他の情報を伝達する。拡張命令は対応する読出し又は書込み命令に対して一クロックサイクル以前又は以後に伝達される。拡張命令が利用される場合、各読出し又は書込み命令は命令バス(Command Bus)上で2つのサイクルを占有する。
【0038】
一実施形態において、非同期式通信プロトコルはSEND命令を支援する。SEND命令はメモリモジュールからホストに決定された(deterministic)タイミングと共にデータバーストトランザクション(Data Burst Transaction)を初期化するのに利用される。
【0039】
SEND命令は表1に示したように定義される。SEND命令はバーストでどのぐらい多いパッケージが要請されるかを規定するために利用される、最大10ビットのバースト命令を伝達する。
【表1】
【0040】
表2は一実施形態に係るトランザクション状態パケットの例示的な定義を示す。
【表2】
【0041】
図7は本発明の実施形態に係る例示的なSENDサイクルに対するタイミング図を示る。実施形態において、各読出し要請のためのRead_Readyリンク上の各々のReadyは、データパッケージが読み出される準備完了になったことを示す。ホストは複数のデータを固定された読出しレイテンシ(例えば、tRL)で以って順次的に読出すためのバースト読出しトランザクションを開始するためにSEND命令を発行する。また、要請されたバースト数もSEND命令内のバーストカウント(Burst Count)によって伝達される。バースト読出しトランザクションはデータパッケージ又は状態パッケージを含む。メモリコントローラは、第1番目のサイクル内における、フィードバック状態メッセージの第1番目のビットである、MSG[0]を利用してパッケージの種類を識別する。
【0042】
図8は本発明の実施形態に係る多様な命令の定義を示す表である。非同期式通信プロトコルは、NVM読出し命令、NVM書込み命令、NVM拡張命令、NVM_SEND命令、読出し状態命令、及びRFU命令を支援する。このような命令の詳細なタイミング図は
図4乃至
図7を参照して説明される。
【0043】
読出しID(Read ID、RID)は読出し要請とメモリモジュールからの読出しデータとの間の関係を確認するために利用される。RIDは多様な方式により生成される。一実施形態において、ホストは明示的にRIDを生成する。このような場合、RIDは明示的にホストからメモリモジュールに伝達される。他の実施形態において、ホスト及びメモリモジュールの双方は読出し命令の種類に依存して明示的にRIDを生成できる。その他の実施形態で、ホスト及びメモリモジュールのどちらも明示的にはRIDを生成せず、その代わりに、ホスト及びメモリモジュールの双方は、或るRIDメカニズムに同意して、それに従う。或るRIDメカニズムとは、例えば、初期化の間に同期化アップ(Sync Up)がなされた後、ホスト及びメモリモジュールは同一のパッケージのために別々に同一のRIDを生成する。
【0044】
図9は本発明の実施形態に係るチャンネル当たりメモリコントローラのピン出力を図示する。メモリコントローラのピン/リンクは特定DIMM専用の第1グループ401及び多重DIMMによって共有される第2グループ402に分けられる。メモリチャンネルのピン/リンクの定義は、例えばJEDEC(Joint Electron Device Engineering Council)標準のように、本発明の技術分野で広く公知されている。一実施形態において、非同期式通信プロトコルは、メモリモジュールがメモリコントローラへ装置フィードバックを提供するように多様なフィードバックピン/リンクを利用する。
【0045】
一実施形態において、専用フィードバックピンは非同期式通信プロトコルのために用途が変更される。このような専用フィードバックピンの例としてはODT[1]、CKE[1]、CS[1:3]、CK_N[1]、CK_P[1]、及び3つのRFUがあるが、これに限定されない。このような専用ピンはメモリチャンネル内DIMMの間の簡単な同期化を可能にする。
【0046】
所定の実施形態において、専用フィードバックピンはALERT_nピンを含む。ALERT_nピンは多重DIMMによって共有される。他の場合において、ホスト及びメモリボード(Board)はメモリチャンネル当たり2つのNV−DIMMがあるように別の専用ALERT_nピンを有するように再設計される。
【0047】
図10は本発明の実施形態に係る専用フィードバックピンに対する4つの例示を示す表である。第1番目の例は用途変更された4個のピンを利用し、第2番目及び第3番目の例は用途変更された8個のピンを利用し、第4番目の例は用途変更された10個のピンを利用し、第5番目の例は用途変更された5個のピンを利用する。このような例の全てはSDRメモリモジュールと同等な速度を達成できる。
【0048】
ODT[1]、CKE[1]、CS[1]、及びALERT_nピンが用途変更された第1番目の例で、CS[1]、ODT[1]、及びCKE[1]はメッセージDQピン(MSG_DQ)に利用される。読出し準備完了状態はALERT_nピンを利用して送られる。
【0049】
他の実施形態において、共有されたフィードバックピンは、拡張されたRAS−CASプロトコルのために利用される。このような共有されたフィードバックピンの例としてはDQS9_t〜DQS17_t、DQS9_c〜DQS17_c、及びALERT_nがあるが、これに制限されない。この場合、共有されたピンは通信分野で広く公知された時分割多重接近TDMA方式と類似の時分割方式で利用される。時分割方式は他のメモリ装置に他のタイムスロットを割当てし、各メモリ装置は割当されたスロットを用いて伝送する。
【0050】
図11は本発明の実施形態に係る例示的な時分割フィードバック方式を示す。1つ又はそれ以上の共有されたフィードバックピンは多重タイムスロットで装置フィードバックを伝達し、タイムスロットの各々は互いに異なるメモリモジュールのために専用される。例えば、装置フィードバックはDIMM0及びDIMM1のための交互タイムスロットを含む。時分割方式は他のメモリチャンネルを通じて他のメモリスロットに対するフィードバックを伝送するのに利用されることを留意する。
【0051】
他の実施形態において、ハイブリッドフィードバックピンは拡張されたRAS−CASプロトコルのために利用される。ハイブリッドフィードバックピンは専用フィードバックピン及び共有されたフィードバックピンの双方を含む。例えば、32個のハイブリッドフィードバックピンは10個の専用フィードバックピン(例えば、ODT[1]、CKE[1]、CS[1:3]、CK_N[1]、CK_P[1]、及び3つの、将来利用のための予備RFU)、18個の共有されたフィードバックピン(例えば、DQS9_t〜DQS17_t、DQS9_c〜DQS17_c)、及びALERT_nを含む。このようなハイブリッドフィードバックピンはただ共有ピンのみがあることに比べてさらに容易に同期化を許容する最大32個のピンを含む。例えば、同期化は専用ピンを通じて遂行され、状態伝送は専用ピン又は共有されたピンを通じて遂行される。
【0052】
図12は本発明の実施形態に係るハイブリッドフィードバックピンを利用して装置フィードバックを提供する例示的な過程に対する順序図である。専用ピンは同期化のために利用され、専用ピン及び共有されたピンの双方は装置フィードバックを伝送するために利用される。DIMMは、利用可能なメモリチャンネルの内から共有フィードバックチャンネルを割当てるようにメモリコントローラへ要請を送る(701段階)。前記要請に対する応答で、メモリコントローラは共有フィードバックチャンネルが他のDIMMによって所有されているか否かを判断する(702段階)。仮に共有フィードバックチャンネルが他のDIMMの所有である場合、メモリコントローラは後に再トライ(試図)するようにDIMMに要請する(711段階)。仮に共有フィードバックチャンネルが要請したDIMMの所有である場合、メモリコントローラは要請を確認し(712段階)、そしてDIMMはメモリコントローラへフィードバック情報の伝達を開始する(713段階)。701段階、711段階、及び712段階は専用ピンを利用し、713段階はハイブリッドピンを利用する。
【0053】
一実施形態において、各データ要請及び伝送はメモリ並列処理を強化するためにトランザクションID(例えば、読出しID(RID)、又は書込みID(WID)を含む。トランザクションIDは列、行、バンク(Bank)、ランク(Rank)、及びチャンネルアドレスの全部又は一部を含む。メモリコントローラは多重同時トランザクションを支援するために互いに相異なるIDを有するトランザクションを発行する。一実施形態において、ホストはホスト命令により明示的にトランザクションIDを伝達する。他の実施形態において、トランザクションIDは、列、行、バンク、ランク、及びチャンネルのアドレスと共に暗示的に伝達される。メモリモジュールはこのようなアドレスを利用してトランザクションIDを再生成する。
【0054】
他の実施形態において、ホスト及びメモリモジュールの双方はトランザクションIDリストを維持する。トランザクションIDリスト及びID割当/割当解除メカニズム(Mechanism)はシステムブーティングの間に初期化される。以後、ホスト及びメモリモジュールはホストメモリコントローラ及びメモリモジュール内部の各メモリトランザクションのために同一のトランザクションIDを割当てるか、或いは確保するために同一のメカニズムに従う。この場合、トランザクションIDはメモリチャンネルを通じて明示的に伝達される必要はない。
【0055】
一実施形態において、装置フィードバックの各状態伝送はモジュール内RAS特性を支援するためのRAS情報を含む。このようなRAS情報の例は読出し/書込み失敗レポーティング、エラー訂正コード(Error Correcting Code、ECC)、ウェアレベリング(Wear leveling)、及びガーベッジコレクション(Garbage Collection)、モジュール内リフレッシュ(Refresh)情報、及びモジュール内スクラビング(Scrubbing)情報を含むが、これに限定されない。
【0056】
一実施形態において、非同期式通信プロトコルはDDR4において両方向信号を伝達するためのALERT_nピンを定義する。一実施形態において、メモリモジュールは、DIMM0及びDIMM1として2つのNVDIMMを含む。このような場合、メッセージDQピンは専用ピンを利用し、読出し準備完了(Read_Ready)状態は2つのALERT_nピンを利用して送られる。
図13は本発明の実施形態に係る読出し準備完了信号を伝送するALERT_nピンに対する例示的な信号を示す。読出し準備完了フィードバック信号はメモリコントローラからの注意を要請するために利用される。
仮にメモリモジュールが既存のALERT_nピンにタイミング定義を追加してNVDIMMモードで動作するならば、ALERT_nピンは読出し準備完了フィードバック信号を伝達するために利用できる。
既存のDDR4スペック(Specification)においては、ALERT_n信号は書込みCRCエラー、及びCA(Command Address)パリティーアラーのような2種類のエラーの発生を信号伝達するために利用される。このような2つのエラーはALERT_n信号のパルス幅(Pulse Width)によって区別される。例えば、仮に書込みCRCエラーが発生した場合、DDR4 2400スペックに従ってメモリモジュールは約6乃至約10クロックサイクルの間だけALERT_n信号をローにする。仮にCAパリティーエラーが発生した場合、DDR4 2400スペックに従ってメモリモジュールは約72乃至約144クロックサイクルの間だけALERT_n信号をローにする。
所定の実施形態において、約2及び約3サイクルの短いALERT_nパルス幅は読出し準備完了信号を示すように利用され、それによって書込みCRCエラー及びCAパリティーエラーの発生に対してDDR4 2400スペックに従って機能するようにALERT_n信号を許容する。一実施形態において、ALERT_nピンが読出し準備完了フィードバック信号を伝達する場合、書込みCRCエラー又はCAパリティーエラーの発生検出を保障するために、最も低い優先順位を有する。
【0057】
図14は本発明の実施形態に係る例示的な用途変更されたメッセージピン割当及びメッセージ定義を示す。メモリモジュールは読出し準備完了フィードバック信号をメモリコントローラへ送るためにALERT_nピンを利用する。読出し準備完了フィードバック信号を受信した後、メモリコントローラはメモリモジュールからデータパッケージ又は状態パッケージ情報を受けるために2番目の用途変更されたコネクタピン(又はピン)を通じてSEND信号を送る。用途変更された3つのODT[1]、CKE[1]、及びCS_n[1]ピンはDQでデータバーストと共にメモリコントローラへMSG情報を伝達するように用途変更される。
MSG情報の例はデータパッケージ内トランザクションID(Transaction identification、TID)である。TID、RID、又はWIDは住所(アドレス)の一部分と類似のトランザクションIDを示す。選択的な実施形態において、フィードバックMSGはDQバスを通じて伝達されるパッケージは状態パッケージであることを示す。DQバスは相対的に大きいので、多数の情報ビットがメモリモジュールからメモリコントローラへ伝達されるのを可能にする。
【0058】
他の実施形態において、メモリモジュールは、DIMM0及びDIMM1において各々1つのDRAMと1つのNVMを含む。この場合、メッセージDQピンはデュアルNVDIMMのケースと同様に専用ピンを利用できるが、読出し準備完了状態フィードバックのために共有された1つのALERT_nピンを利用する。
図15は本発明の実施形態に係る同一のメモリチャンネルに共に配置された1つのDRAMと1つのNVDIMMのための例示的な信号を示す。NVDIMMモジュールからの読出し準備完了信号及びDRAMモジュールからの書込みCRCエラー又はCAパリティーエラー信号が互いに重畳される時、読出し準備完了信号は無くなる。従って、書込みCRCエラー又はCAパリティーエラーが検出された時、ホストはホスト及びNVDIMMモジュールの間の状態を再同期化するためにRS(Read Status)命令を発行する。
【0059】
図16は本発明の実施形態に係る2つのNVDIMMモジュールが共に配置されたメモリモジュールのための例示的な用途変更されたメッセージピン割当及びメッセージ定義を示す。ODT[1]、CKE[1]、及びCS_n[1]コネクタピンはDIMM0のためのMSG[0]としてメッセージ情報を伝達するための専用ピンであり、反面にODT[2]、CKE[2]、及びCS_n[5]コネクタピンはDIMM1のためのMSG[1]としてメッセージ情報を伝達するための専用ピンである。
一実施形態で、メッセージはDDR(Double Data Rate)を可能にする3ビット幅になる。ALERT_n/Read_Ready[0]及びALERT_n/Read_Ready[1]はNVDIMM1及びNVDIMM2の各々に伝達するための専用ピンである。他の実施形態で、同一のチャンネルに1つのDRAM及び1つのNVDIMMが共に配置された場合、1つの共有されたALERT_n/Read_Ready[0]が利用される。
【0060】
表3は本発明の実施形態に係る、DRAM_DIMMモード及びNVDIMMモードにおけるメモリモジュールのためのコネクタピンを示す。表3を参照すれば、仮にメモリモジュールがDRAM_DIMMモードにある場合、ALERT_nピン(208ピン)はメモリコントローラの観点からは、送信(Tx)及び受信(Rx)機能を提供するために広く公知された方式に従い動作する。CS_n[1]、ODT[1]、及びCKE[1](各々89、91、及び203ピン)信号も、またメモリコントローラの観点からは、送信機能を提供するために広く公知された方式に動作する。
仮にメモリモジュールがNVDIMMモードにある場合、208ピンはALERT_n/Read_Ready信号として定義され、メモリコントローラの観点からは、送信及び受信機能の全てを提供する。89、91、及び203ピンはMSG[2:0]として定義され、メモリコントローラの観点からは、受信機能を提供する。一実施形態において、ALERT_n/Read_Ready信号及びMSG[2:0]はSDR(Single Data Rate)で動作する。他の実施形態において、ALERT_n/Read_Ready信号及びMSG[2:0]はDDR(Double Data Rate)で動作することができる。
【表3】
【0061】
表4は本発明の実施形態に係るNVDIMMモードで読出し準備完了(Read_Ready)信号を伝達するために利用されるALERT_nコネクタピンのためのタイミング及びメッセージの定義を示す。NVDIMMモードで、ALERT_nコネクタピンは読出し準備完了信号のために2クロックサイクルとして定義される。約6乃至10の間のクロックサイクル数に相当するパルス幅で、ALERT_nコネクタピンは書込みCRCエラー発生として定義され、約72乃至144の間のクロックサイクル数に相当するパルス幅で、ALERT_nコネクタピンはCA(Command Address)パリティエラー発生として定義される。仮にエラーが発生すれば、ホストはイベントをアップデートするために状態を読み出さなければならない。
【表4】
【0062】
他の実施形態において、ODT[1]及びCKE[1]コネクタピンは、各々、MSG[0]及びMSG[1]として情報を通信するために利用され、その結果、メッセージは2ビット幅になるが、DDRを可能にするためにCS_n[1]を利用してメッセージストロボ信号MSG_Sを含むようにする。
【0063】
一実施形態において、拡張されたRAS−CASプロトコルはPWR(Persistent Write)命令を支援する。PWR命令は、メモリコントローラがWC(Write Credit)を有する時、メモリコントローラによるデータの書き込みを可能にし、メモリモジュールが非同期式書込み確認応答を送るように要請する。
【0064】
一実施形態において、メモリモジュールは、不揮発性メモリと、メモリコントローラに接続するための非同期式メモリインタフェイスとを含む。非同期式メモリインタフェイスはメモリコントローラへ非同期式データに送るためにDDR(Double Data Rate)メモリチャンネルの用途変更されたピンを利用する場合がある。
【0065】
非同期式データは不揮発性メモリの状態を示す装置フィードバックである場合がある。
【0066】
装置フィードバックはメモリコントローラから要請されたデータが不揮発性メモリのデータバッファに存置したことを示す場合がある。
【0067】
非同期式メモリインタフェイスはDDR1、DDR2、DDR3、及び/又は、DDR4と互換である場合がある。
【0068】
用途変更されたピンは特定のDIMMに専用される専用データピンを含む場合がある。
【0069】
用途変更されたピンは多重DIMMによって共有される共有データピンを含む場合がある。
【0070】
特定のDIMM専用の専用データピン及び多重DIMMによって共有される共有データピンの双方は、装置フィードバックを伝送するために利用される場合がある。
【0071】
装置フィードバックは多重DIMMのための複数のタイムスロットを含む場合がある。
【0072】
装置フィードバックの複数のタイムスロットの各々は、トランザクションIDを含む場合がある。
【0073】
装置フィードバックはメモリモジュールのRAS(Row Address Select)情報を含む場合がある。
【0074】
メモリモジュールは揮発性メモリを更に含み、不揮発性メモリと、揮発性メモリは、DDRメモリチャンネルに共に配置される場合がある。
【0075】
他の実施形態において、システムは、メモリコントローラ、不揮発性メモリを含むメモリモジュール、及びメモリコントローラとメモリモジュールとの間の非同期式メモリインタフェイスを含み、非同期式メモリインタフェイスは、メモリコントローラへメモリモジュールの装置フィードバックを送るためにDDRメモリチャンネルの用途変更されたピンを利用する場合がある。
【0076】
非同期式メモリインタフェイスは、DDR1、DDR2、DDR3、及び/又はDDR4と互換である場合がある。
【0077】
用途変更されたピンは、特定のDIMMに専用される専用データピンを含む場合がある。
【0078】
用途変更されたピンは、多重DIMMによって共有される共有データピンを含む場合がある。
【0079】
特定DIMM専用の専用データピン及び多重DIMMによって共有される共有データピンの双方は、装置フィードバックを伝送するために利用される場合がある。
【0080】
装置フィードバックは多重DIMMのための複数のタイムスロットを含む場合がある。
【0081】
装置フィードバックの複数のタイムスロットの各々は、トランザクションIDを含む場合がある。
【0082】
装置フィードバックはメモリモジュールのRAS(Row Address Select)情報を含む場合がある。
【0083】
メモリモジュールは、更に揮発性メモリを含み、不揮発性メモリと、揮発性メモリとは、DDRメモリチャンネルに共に配置される場合がある。
【0084】
その他の実施形態において、或る方法はメモリコントローラと、不揮発性メモリを含むメモリモジュールとの間の非同期式メモリインタフェイスを提供する段階、DDR(Double Data Rate)メモリチャンネルの用途変更されたピンを利用してメモリコントローラへメモリモジュールの装置フィードバックを伝達する段階を含む場合がある。
【0085】
非同期式メモリインタフェイスは、DDR1、DDR2、DDR3、及び/又は、DDR4と互換である場合がある。
【0086】
方法は、特定DIMM専用の専用データピン及び多重DIMMによって共有される共有データピンを利用して装置フィードバックを伝送する段階をさらに含む場合がある。
【0087】
方法は、装置フィードバックを複数のタイムスロットに、時間的に分割する段階、及び多重DIMMの各々のDIMMに対して各々のタイムスロットを割当する段階を含み、装置フィードバックの各タイムスロットは対応するDIMMを示すトランザクションIDを含む場合がある。
【0088】
メモリモジュールは更に揮発性メモリを含み、不揮発性メモリと、揮発性メモリとは、DDRメモリチャンネルに共に配置される場合がある。
【0089】
上述した例示的な実施形態は、標準同期化プロトコルと互換な非同期式通信プロトコルを提供するためのシステム及び方法を具現するための多様な実施形態を説明するために記述された。開示された例示的な実施形態から多様な変形及び離脱が、当業者にとっては想起されるであろう。本発明の範囲内で意図された主題は次の請求項において提示される。