(57)【要約】      （修正有）【課題】ＮＶＤＩＭＭの動作を支援し、そのレイテンシを改善したＤＤＲ互換非同期メモリモジュールＭＭの動作方法を提供する。【解決手段】不揮発性メモリＮＶＭ２１０及びそのＤＲＡＭキャッシュとして構成されたＤＲＡＭ２１１aを含むＭＭ２０１aと、ホストメモリコントローラＨＭＣとの間にＤＤＲインタフェイスｉｆを提供し、ＨＭＣ及びＭＭの間にメッセージＭＳＧｉｆを提供する。ＮＶＭ及びＭＭのＤＲＡＭの双方は、データバッファ２３０及びレジスタリングクロックドライバＲＣＤ２３１と連結される。ＲＣＤは、「制御及びアドレス」ＣＡバッファを含む。データバッファはＨＭＣによって要請されたデータ又はＭＭの状態をＤＤＲｉｆのデータバスＤＱ及びＭＳＧｉｆを通じて提供する。ＲＣＤは、ＤＤＲｉｆのＣＡバスを通じて受信された命令及びアドレスに基づいてデータバッファに対する命令シークェンスを生成する。【選択図】図３
2017220237.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリ及び前記不揮発性メモリのＤＲＡＭキャッシュとして構成されたＤＲＡＭを含むメモリモジュールとホストメモリコントローラとの間にＤＤＲインタフェイスを提供する段階と、
前記ホストメモリコントローラ及び前記メモリモジュールの間にメッセージインタフェイスを提供する段階と、を含み、
前記不揮発性メモリ及び前記メモリモジュールの前記ＤＲＡＭの双方は、データバッファ及びレジスタリングクロックドライバ（ＲＣＤ）と連結され、前記レジスタリングクロックドライバ（ＲＣＤ）は、「制御及びアドレス」（ＣＡ）バッファを含み、前記データバッファは、ホストメモリコントローラによって要請されたデータ又は前記メモリモジュールの状態を、前記ＤＤＲインタフェイスのデータバス（ＤＱ）及び前記メッセージインタフェイスを通じて提供し、前記レジスタリングクロックドライバ（ＲＣＤ）は、前記ＤＤＲインタフェイスのＣＡバスを通じて受信された命令及びアドレスに基づいて前記データバッファに対する命令シークェンスを生成し、
前記メモリモジュールの前記不揮発性メモリに格納されたデータは、前記メモリモジュールの不揮発性メモリコントローラによって非同期的にアクセス可能であり、
前記ＤＲＡＭキャッシュに格納されたデータは、前記ホストメモリコントローラによって同期的に直接、アクセス可能であることを特徴とする動作方法。
【請求項２】
前記ホストメモリコントローラから前記メモリモジュールに格納されたデータを読み出すための高速キャッシュ−読出し要請を受信する段階と、
前記高速キャッシュ−読出し要請によって要請された前記データが前記ＤＲＡＭキャッシュ又は前記不揮発性メモリの何れに格納されているのかを判別する段階と、
前記データが前記ＤＲＡＭキャッシュに格納されている時、前記データを前記データバスに同期的に提供する段階と、
前記データが前記不揮発性メモリに格納されている時、前記データを前記データバスに非同期的に提供する段階と、をさらに含むことを特徴とする請求項１に記載の動作方法。
【請求項３】
前記高速キャッシュ−読出し要請は、拡張された命令及びＤＲＡＭ読出し命令を含むことを特徴とする請求項２に記載の動作方法。
【請求項４】
前記拡張された命令は、前記メモリモジュールに格納されたデータと関連される読出しＩＤを含むことを特徴とする請求項３に記載の動作方法。
【請求項５】
前記メッセージインタフェイス上のメッセージ信号に含まれたタグをチェックする段階と、
前記タグと拡張されたアドレス（ＥＡ）を比較して前記高速キャッシュ−読出し要請がキャッシュヒットであるか、又はキャッシュミスであるかを判別する段階と、をさらに含むことを特徴とする請求項２に記載の動作方法。
【請求項６】
前記ホストメモリコントローラに対して、第２読出し命令を発送して前記不揮発性メモリから前記データを読出すように指示するために、前記メッセージインタフェイス上に読出し準備済信号を伝送する段階と、
前記第２読出し要請に応答して前記データバスに前記データを提供する段階をさらに含むことを特徴とする請求項２に記載の動作方法。
【請求項７】
前記ホストメモリコントローラに対して、前記メモリモジュールの状態を読出すように指示するために、読出し準備済信号を前記メッセージインタフェイスを介して提供する段階と、
前記ホストメモリコントローラから読出し要請を受信する段階と、
ＤＤＲインタフェイス上に前記メモリモジュールの状態を提供し、タグを含むメッセージを提供する段階と、をさらに含み、
前記メッセージ信号に含まれた前記タグは、前記ＤＤＲインタフェイスの前記データバス上の前記データが前記メモリモジュールの状態であることを示す、ことを特徴とする請求項１に記載の動作方法。
【請求項８】
前記メモリモジュールの状態は、内部動作時間を含み、
前記ホストメモリコントローラから内部動作命令を受信する段階をさらに含み、
前記内部動作命令は、承認された内部動作時間を含むことを特徴とする請求項７に記載の動作方法。
【請求項９】
前記内部動作時間及び前記承認された内部動作時間は、互いに異なることを特徴とする請求項８に記載の動作方法。
【請求項１０】
前記承認された内部動作時間の間には、前記ホストメモリコントローラは、前記メモリモジュールに格納されたデータにアクセスしないことを特徴とする請求項８に記載の動作方法。
【請求項１１】
前記ホストメモリコントローラからフラッシュＩＤを含むフラッシュ命令を受信する段階と、
前記フラッシュＩＤに基づいて前記ＤＲＡＭに格納されたデータを前記不揮発性メモリにフラッシュする段階と、をさらに含み、
前記メモリモジュールの状態は、前記フラッシュＩＤに基づいて前記フラッシュ命令が成功裡に遂行されているか否かを示すことを特徴とする請求項７に記載の動作方法。
【請求項１２】
前記メモリモジュールに格納された１つ以上のデータ及び前記メモリモジュールの状態を、前記ＤＤＲインタフェイス、及びタグを含む前記メッセージインタフェイスに提供する段階をさらに含み、
前記メッセージインタフェイス上の前記メッセージ信号に含まれる前記タグは、前記ＤＤＲインタフェイスの前記データバスにロードされたデータが、前記ホストメモリコントローラによって要請されたデータ又は前記メモリモジュールの状態の内の何れであるかを示すことを特徴とする請求項７に記載の動作方法。
【請求項１３】
前記読出し要請は、バーストカウントを含み、
前記バーストカウントによって定義された通り、前記メモリモジュールに格納された１つ以上のデータ及び前記メモリモジュールの状態を前記ＤＤＲインタフェイスに順次的に提供する段階をさらに含むことを特徴とする請求項１２に記載の動作方法。
【請求項１４】
前記ホストメモリコントローラから読出し状態命令を受信する段階と、
前記ＤＤＲインタフェイスを通じて前記メモリモジュールの前記状態を同期的に提供する段階と、をさらに含むことを特徴とする請求項１２に記載の動作方法。
【請求項１５】
不揮発性メモリと、
データインタフェイス、及び「制御及びアドレス」（ＣＡ）インタフェイスを前記不揮発性メモリに提供する不揮発性メモリコントローラと、
前記不揮発性メモリのＤＲＡＭキャッシュとして構成されたＤＲＡＭと、
データバッファと、
「制御及びアドレス」（ＣＡ）バッファを含むレジスタリングクロックドライバ（ＲＣＤ）と、
ホストメモリコントローラに対するＤＤＲインタフェイス及びメッセージインタフェイスと、を含み、
前記不揮発性メモリ及び前記ＤＲＡＭは、前記データバッファ及び前記レジスタリングクロックドライバ（ＲＣＤ）と連結され、
前記データバッファは、前記ホストメモリコントローラによって要請されたデータ又は前記メモリモジュールの状態を前記ＤＤＲインタフェイスのデータバス（ＤＱ）及び前記メッセージインタフェイスを通じて提供し、前記ＲＣＤは、前記ＤＤＲインタフェイスのＣＡバスを通じて受信された命令及びアドレスに基づいて前記データバッファに対して命令シークェンスを生成するように構成され、
前記メモリモジュールの前記不揮発性メモリに格納されたデータは、前記不揮発性メモリコントローラによって非同期的にアクセス可能であり、
前記ＤＲＡＭキャッシュに格納されたデータは、前記ホストメモリコントローラによって同期的に直接、アクセス可能であることを特徴とするメモリモジュール。
【請求項１６】
前記ホストメモリコントローラは、高速キャッシュ−読出し要請を伝送して前記メモリモジュールに格納されたデータを読出し、前記メモリモジュールは、前記データがＤＲＡＭキャッシュに格納されている時、前記データを前記データバスに同期的に提供し、前記データが前記不揮発性メモリに格納されている時、前記データを前記データバスに非同期的に提供することを特徴とする請求項１５に記載のメモリモジュール。
【請求項１７】
前記メモリモジュールは、前記メッセージインタフェイスにタグを含むメッセージ信号を伝送し、前記ホストメモリコントローラは、前記タグと拡張されたアドレス（ＥＡ）との比較によって前記高速キャッシュ−読出し要請がキャッシュヒットであるか、又はキャッシュミスであるかを判別することを特徴とする請求項１６に記載のメモリモジュール。
【請求項１８】
ホストメモリコントローラと、
メモリモジュールと、
前記ホストメモリコントローラと前記メモリモジュールとの間に位置し、データバス及び「制御及びアドレス」（ＣＡ）バスを含むＤＤＲインタフェイスと、
前記ホストメモリコントローラと前記メモリモジュールとの間に位置したメッセージインタフェイスと、を含み、
前記メモリモジュールは、
不揮発性メモリと、
データインタフェイス及び「制御及びアドレス」（ＣＡ）インタフェイスを前記不揮発性メモリに提供する不揮発性メモリコントローラと、
前記不揮発性メモリのＤＲＡＭキャッシュとして構成されたＤＲＡＭと、
データバッファと、
「制御及びアドレス」（ＣＡ）バッファを含むレジスタリングクロックドライバ（ＲＣＤ）と、を含み、
前記不揮発性メモリ及び前記ＤＲＡＭは、前記データバッファ及び前記レジスタリングクロックドライバ（ＲＣＤ）と連結され、
前記データバッファは、前記ホストメモリコントローラによって要請されたデータ又は前記メモリモジュールの状態を前記ＤＤＲインタフェイスのデータバス（ＤＱ）及び前記メッセージインタフェイスを通じて提供し、前記ＲＣＤは、前記ＤＤＲインタフェイスのＣＡバスを通じて受信された命令及びアドレスに基づいて前記データバッファに対して命令シークェンスを生成するように構成され、
前記メモリモジュールの前記不揮発性メモリに格納されたデータは、前記不揮発性メモリコントローラによって非同期的にアクセス可能であり、
前記ＤＲＡＭキャッシュに格納されたデータは、前記ホストメモリコントローラによって同期的に直接、アクセス可能であることを特徴とするメモリシステム。
【請求項１９】
前記ホストメモリコントローラは、前記メモリモジュールに格納されたデータを読出すために高速キャッシュ−読出し要請を伝送し、
前記メモリモジュールは、前記データが前記ＤＲＡＭキャッシュに格納されている時、前記データを前記データバスに同期的に提供し、前記データが前記不揮発性メモリに格納されている時、前記データを前記データバスに非同期的に提供することを特徴とする請求項１８に記載のメモリシステム。
【請求項２０】
前記メモリモジュールは、タグを含むメッセージ信号を前記メッセージインタフェイスに伝送し、前記ホストメモリコントローラは、前記タグと拡張されたアドレス（ＥＡ）との比較によって前記高速キャッシュ−読出し要請がキャッシュヒットであるか、又はキャッシュミスであるかを判別することを特徴とする請求項１９に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリモジュール、それを含むシステム及びその動作方法に係り、さらに具体的には、ＤＤＲ互換非同期メモリモジュール、それを含むシステム及びその動作方法に係る。
【背景技術】
【０００２】
不揮発性デュアルインラインメモリモジュール（ｎｏｎ＿ｖｏｌａｔｉｌｅ＿ｄｕａｌ  ｉｎ＿ｌｉｎｅ  ｍｅｍｏｒｙ＿ｍｏｄｕｌｅ、ＮＶＤＩＭＭ）は、不揮発性メモリ（例えば、ＮＡＮＤフラッシュメモリ）及び既存の動的ランダムアクセスメモリ（ＤＲＡＭｓ）を含む多様なメディアタイプ又はメディアタイプの混合を含み得る。ＮＶＤＩＭＭはＤＩＭＭソケットに連結され、ホストメモリコントローラからは標準ＤＤＲ４同期式ＤＲＡＭ（ＳＤＲＡＭ）メモリモジュールであるように見える。ＮＶＤＩＭＭインタフェイスはホストコンピュータとメモリモジュールとが、ＤＤＲ４メモリチャンネルを通じて非同期的に通信することを可能にする拡張ＤＤＲ４メモリインタフェイスである。ＮＶＤＩＭＭはＤＤＲ４メモリチャンネルを他の標準ＤＤＲ４＿ＤＩＭＭと共有できる。
【０００３】
ＮＶＤＩＭＭインタフェイスは１つ以上の大容量不揮発性メモリを含むメモリマッピングされたＮＶＤＩＭＭに対して最適化される。ＮＶＤＩＭＭは、格納装置よりはむしろアドレス可能なメモリとして機能する不揮発性メモリ容量を有するメモリチャンネル装置であり得る。現在技術者は、既存のＤＤＲ４ベースのメモリシステムに対するＮＶＤＩＭＭの以前バーションとの互換性（ｂａｃｋｗａｒｄ  ｃｏｍｐａｔｉｂｉｌｉｔｙ）の提供に重点を置いている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許第９，２５１，００３号公報
【特許文献２】米国特許第８，７３８，８４０号公報
【特許文献３】米国特許第８，７１３，３７９号公報
【特許文献４】米国特許第８，５６０，７６１号公報
【特許文献５】米国特許第８，２８１，０７４号公報
【特許文献６】米国特許第７，９４１，５９１号公報
【特許文献７】米国特許公開第２０１６／０１７９３７５号明細書
【特許文献８】米国特許公開第２０１５／０１８６２７８号明細書
【特許文献９】米国特許公開第２０１６／０１１８１２１号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の目的は、ＮＶＤＩＭＭの動作を支援し、ＮＶＤＩＭＭのレイテンシを改善した、ＤＤＲ互換非同期メモリモジュール、それを含むシステム及びその動作方法を提供することにある。
【課題を解決するための手段】
【０００６】
発明の一実施形態による動作方法は、不揮発性メモリ及び前記不揮発性メモリのＤＲＡＭキャッシュとして構成されたＤＲＡＭを含むメモリモジュールとホストメモリコントローラとの間にＤＤＲインタフェイスを提供する段階と、前記ホストメモリコントローラ及び前記メモリモジュールの間にメッセージインタフェイスを提供する段階と、を含む。
前記不揮発性メモリ及び前記メモリモジュールのＤＲＡＭの双方は、データバッファ及びレジスタリングクロックドライバ（ＲＣＤ）と連結され、前記レジスタリングクロックドライバ（ＲＣＤ）は「制御及びアドレス」（ＣＡ）バッファを含む。前記データバッファはホストメモリコントローラによって要請されたデータ又は前記メモリモジュールの状態を、前記ＤＤＲインタフェイスのデータバス（ＤＱ）及び前記メッセージインタフェイスを通じて提供する。前記レジスタリングクロックドライバ（ＲＣＤ）は、前記ＤＤＲインタフェイスのＣＡバスを通じて受信された命令及びアドレスに基づいて前記データバッファに対する命令シークェンスを生成する。
前記メモリモジュールの前記不揮発性メモリに格納されたデータは前記メモリモジュールの前記不揮発性メモリコントローラによって非同期的にアクセス可能である。前記ＤＲＡＭキャッシュに格納されたデータは前記ホストメモリコントローラによって同期的に直接、アクセス可能である。
【０００７】
本発明の他の実施形態によるメモリモジュールは、不揮発性メモリと、データインタフェイス、及び「制御及びアドレス」（ＣＡ）インタフェイスを前記不揮発性メモリに提供する不揮発性メモリコントローラと、前記不揮発性メモリのＤＲＡＭキャッシュとして構成されたＤＲＡＭと、データバッファと、「制御及びアドレス」（ＣＡ）バッファを含むレジスタリングクロックドライバ（ＲＣＤ）と、ホストメモリコントローラに対するＤＤＲインタフェイス及びメッセージインタフェイスと、を含む。前記不揮発性メモリ及び前記ＤＲＡＭは前記データバッファ及び前記レジスタリングクロックドライバ（ＲＣＤ）と連結される。前記データバッファは前記ホストメモリコントローラによって要請されたデータ又は前記メモリモジュールの状態を前記ＤＤＲインタフェイスのデータバス（ＤＱ）及び前記メッセージインタフェイスを通じて提供し、前記ＲＣＤは、前記ＤＤＲインタフェイスのＣＡバスを通じて受信された命令及びアドレスに基づいて前記データバッファに対して命令シークェンスを生成するように構成される。前記メモリモジュールの前記不揮発性メモリに格納されたデータは前記不揮発性メモリコントローラによって非同期的にアクセス可能である。前記ＤＲＡＭキャッシュに格納されたデータは前記ホストメモリコントローラによって同期的に直接、アクセス可能である。
【０００８】
その他の実施形態によるメモリシステムは、ホストメモリコントローラと、メモリモジュールと、前記ホストメモリコントローラと前記メモリモジュールとの間に位置し、データバス及び「制御及びアドレス」（ＣＡ）バスを含むＤＤＲインタフェイスと、前記ホストメモリコントローラと前記メモリモジュールとの間に位置したメッセージインタフェイスと、を含む。
前記メモリモジュールは、不揮発性メモリと、データインタフェイス及び「制御及びアドレス」（ＣＡ）インタフェイスを前記不揮発性メモリに提供する不揮発性メモリコントローラと、前記不揮発性メモリのＤＲＡＭキャッシュとして構成されたＤＲＡＭと、データバッファと、「制御及びアドレス」（ＣＡ）バッファを含むレジスタリングクロックドライバ（ＲＣＤ）と、を含む。
前記不揮発性メモリ及び前記ＤＲＡＭは前記データバッファ及び前記レジスタリングクロックドライバ（ＲＣＤ）と連結される。前記データバッファは前記ホストメモリコントローラによって要請されたデータ又は前記メモリモジュールの状態を前記ＤＤＲインタフェイスのデータバス（ＤＱ）及び前記メッセージインタフェイスを通じて提供する。前記ＲＣＤは前記ＤＤＲインタフェイスのＣＡバスを通じて受信された命令及びアドレスに基づいて前記データバッファに命令シークェンスを生成するように構成される。
前記メモリモジュールの前記不揮発性メモリに格納されたデータは前記不揮発性メモリコントローラによって非同期的にアクセス可能である。前記ＤＲＡＭキャッシュに格納されたデータは前記ホストメモリコントローラによって同期的に直接、アクセス可能である。
【０００９】
上述したような望ましい特徴は、さらに具体的に添付された図面を参照して説明され、請求範囲において指摘される。本明細書に説明された特定システム及び方法はあくまでも例としてのみ提示され、これに限定されないことが理解されよう。当業者によって理解されるように、本明細書に記載された原理及び特徴は、本発明の範囲を逸脱せずに多様かつ多数の実施形態で使用できる。
【発明の効果】
【００１０】
本発明に係る構成を有するメモリモジュール、これを含むシステム及びその動作方法によれば、高速キャッシュ−読出し要請によって要請されたデータがＤＲＡＭキャッシュ又は不揮発性メモリの何れに格納されているのかを判別し、不揮発性メモリに格納されたデータはメモリモジュールの不揮発性メモリコントローラによって非同期的にアクセスされ、そしてＤＲＡＭキャッシュに格納されたデータはホストメモリコントローラによって同期的に直接アクセスされる。従って、高速キャッシュ−読出し要請を行なうとＤＲＡＭキャッシュに対する低いレイテンシを具現化できる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態に係る直接モードに動作するＮＶＤＩＭＭを例示的に示す。
【図２】本発明の一実施形態に係るキャッシュモードに動作するＮＶＤＩＭＭを例示的に示す。
【図３】本発明の一実施形態に係るバックサイドＤＲＡＭキャッシュを含むＮＶＤＩＭＭを例示的に示す。
【図４】本発明の一実施形態に係るフロントサイドＤＲＡＭキャッシュを含むＮＶＤＩＭＭを例示的に示す。
【図５】本発明の一実施形態に係る高速キャッシュ読出し命令の一例に対する定義を示すテーブルである。
【図６】本発明の一実施形態に係る高速キャッシュ読出し命令の一例に対するタイミング図である。
【図７】本発明の一実施形態に係る内部動作命令の一例に対する定義を示すテーブルである。
【図８】本発明の一実施形態に係る内部動作命令の一例に対するタイミング図である。
【図９】本発明の一実施形態に係るフラッシュ命令の一例に対する定義を示すテーブルである。
【図１０】本発明の一実施形態に係るフラッシュ命令の一例に対するタイミング図である。
【図１１】本発明の一実施形態に係るトランザクションバースト（ＴＢ）命令の一例に対する定義を示すテーブルである。
【図１２】本発明の一実施形態に係るトランザクションバースト（ＴＢ）命令の一例に対するタイミング図である。
【図１３】本発明の一実施形態に係る読出し状態（ＲＳ）命令の一例に対する定義を示すテーブルである。
【図１４】本発明の一実施形態に係る読出し状態（ＲＳ）命令の一例に対するタイミング図である。
【図１５】本発明の一実施形態に係るメモリモジュールに格納されるデータを提供するためのフローチャートである。
【発明を実施するための形態】
【００１２】
本明細書で開示された特徴及び教示の各々はダブルデータレート（ＤＤＲ）と互換される非同期メモリモジュールを動作させるシステム及び方法を提供するために他の特徴及び教示と共に又は分離されて使用できる。このような追加的な特徴及び教示が分離されるか、或いは結合されて利用される代表的な例は添付された図面を参照して詳細に説明される。このような詳細な説明は、単に本教示の側面を実施するために本技術分野で詳細な知識を有する者を教示するためであり、請求項の範囲を制限しない。従って、詳細な説明に上述された特徴の組合わせは広い意味で教示を実施する必要がなくともよく、代わりに本教示、特に代表的な実施形態を説明するために単に教示される。
【００１３】
以下の説明で、単に説明を目的として、特定名称が本発明の完全な理解を提供するために説明される。しかし、このような特定細部事項は本発明の思想を実施するために必要ではないことは当業者に理解できる。
【００１４】
詳細な説明の幾つかの部分はアルゴリズム及びコンピュータメモリ内データビットに対する動作のシンボル表現の側面で提供される。これらのアルゴリズム説明及び表現は他の分野の当業者に作業の実体を効果的に伝達するために、データ処理分野の当業者によって使用される。ここで、アルゴリズムは一般的に望む結果に至る段階に対する一貫性ある順序であってもよい。段階は物理的量の物理的操作が必要であるものである。一般的に、必須的ではないが、このような量は格納、伝達、結合、比較、及び異なりに操作されることができる電気又は磁気信号の形態を取る。このような信号をビット、値、要素、シンボル、特徴、用語、数等として指称することが主に共通的な使用の理由でしばしば便利であることが立証された。
【００１５】
しかし、これら及び類似な用語の全ては適切な物理量と連関され、単なるこのような量に適用される便利なラベルであることを留意しなければならない。具体的には下の説明から明確であるように、説明で、このような“処理”、“コンピューティング”、“計算”、“決定”、“表示”等のような用語を使用する論議はコンピュータシステム又はコンピュータレジスタ及びメモリ内で物理的（電気的）量として現れるデータをコンピュータシステムメモリ又はレジスタ又は他の情報ストレージ、伝送又は表示装置内で物理的量として現れる類似な他のデータに操作及び変形する類似な電子コンピューティング装置の活動及び過程を示すためと理解される。
【００１６】
本明細書で説明されたアルゴリズムは本質的に任意の特定コンピュータ又は他の装置と関連されたことではない。多様な一般的な目的のシステム、コンピュータサーバー、又は個人用コンピュータは本明細書の教示に従うプログラムと共に使用されるか、或いは要求された方法段階を遂行するためのより特殊化された装置を構成することが便利であることができる。このような多様なシステムのために要求される構造は以下の説明で示される。多様なプログラミング言語が本明細書で記載されたように発明の教示を具現するのに使用されてもよいことを理解すべきである。
【００１７】
また、代表的な例に対する多様な特徴及び従属項は本発明の教示に対する有用な追加的な実施形態を提供するために明示的ではない、そして列挙されない方式に結合されることもできる。また、すべての値の範囲又は独立体のグループの暗示はすべての可能な中間値又は当該発明を制限する目的のみならず、本来の開示目的のための中間独立体を開示することが言及される。また、明示的な基準及び図面に図示された構成要素の形状は本明細書で実施される方式を理解できる設計されるが、寸法及び実施形態に示した形状に限定されないことを留意する。
【００１８】
本発明の一実施形態に係る不揮発性デュアルインラインメモリモジュール（ＮＶＤＩＭＭ）は、標準ＤＲＡＭのみならず、１つ以上の不揮発性メモリ（例えば、フラッシュメモリ）を含み得る。ＮＶＤＩＭＭは多様なモードにおいて動作でき、例えば直接モード（ｄｉｒｅｃｔ  ｍｏｄｅ）及びキャッシュモード（ｃａｃｈｅ  ｍｏｄｅ）において動作できるが、これに限定されない。本発明の開示は、ＮＶＤＩＭＭの動作におけるＮＶＤＩＭＭのレイテンシの改善を支援する。特に、本開示はメモリ命令及び制御動作を含むキャッシュモードにおいてＮＶＤＩＭＭが動作するための詳細なプロトコルを提供する。
【００１９】
図１は本発明の一実施形態に係る、直接モード動作するＮＶＤＩＭＭを例示的に示す。ＮＶＤＩＭＭ（１０１）が直接モード（ｄｉｒｅｃｔ  ｍｏｄｅ）動作する時、ホストコンピュータのメモリコントローラはＮＶＤＩＭＭ（１０１）のＤＲＡＭ（１１１ａ）と不揮発性メモリ１１０との双方を直接アクセスできる。一実施形態で、ＤＲＡＭ（１１１ａ）と不揮発性メモリ１１０とは互いに異なるアドレス空間でアドレシングされる。例えば、不揮発性メモリ１１０はランクアドレス０〜３を通じてアドレシングされ、ＤＲＡＭ（１１１ａ）はランクアドレス４〜７を通じて選択的にアドレシングされる。ＮＶＤＩＭＭ（１０１）の使用可能なメモリ空間はＤＲＡＭ及び不揮発性メモリの容量の合計に対応する。
【００２０】
図２は本発明の一実施形態に係るキャッシュモード動作するＮＶＤＩＭＭを例示的に示す。キャッシュモードで、ＮＶＤＩＭＭ（１０１）の不揮発性メモリ１１０は共通ランクアドレス０〜３を通じてアドレシングされる。しかし、ＮＶＤＩＭＭ（１０１）のＤＲＡＭ（１１１ｂ）は直接アドレシングされず、ＮＶＤＩＭＭ（１０１）の不揮発性メモリ１１０のためのキャッシュとして提供されるように構成される。ＤＲＡＭ（１１１ｂ）はキャッシュがＮＶＤＩＭＭ（１０１）の不揮発性メモリ１１０のためのキャッシュとして提供されるので、ＤＲＡＭキャッシュ（１１１ｂ）はホストメモリコントローラに対して透明（ｔｒａｎｓｐａｒｅｎｔ）である。
【００２１】
一実施形態で、ＮＶＤＩＭＭのＳＰＤ（ｓｅｒｉａｌ  ｐｒｅｓｅｎｃｅ  ｄｅｔｅｃｔ）はＮＶＤＩＭＭが支援できるモードに関する情報を含み、メモリコントローラはシステム初期化の際にその情報を受信する。もし、ＮＶＤＩＭＭが単なる１つのモードのみを支援する場合は、メモリコントローラはＮＶＤＩＭＭが支援するモードにＮＶＤＩＭＭを構成する。もし、ＮＶＤＩＭＭが直接モード及びキャッシュモードの双方を支援する場合は、メモリコントローラは、その内の特定モードに対するＮＶＤＩＭＭを構成する。
【００２２】
ＮＶＤＩＭＭの動作モードは多様な方法に構成できる。一実施形態で、メモリコントローラはＮＶＤＩＭＭのモードレジスタを構成するためにモードレジスタセット（ｍｏｄｅ  ｒｅｇｉｓｔｅｒ  ｓｅｔ、ＭＲＳ）命令を伝送する。この場合、モードレジスタは直接モード又はキャッシュモードを指定するフィールドを含む。他の実施形態で、メモリコントローラはＮＶＤＩＭＭ上の特定機能レジスタに対応する特定メモリアドレスに書き込む。この場合、特定機能レジスタは直接モード又はキャッシュモードを指定するフィールドを含む。
【００２３】
他の実施形態において、本ＮＶＤＩＭＭ（１０１）のＤＲＡＭキャッシュ１１１ｂは、バックサイド（ｂａｃｋｓｉｄｅ）ＤＲＡＭキャッシュ又はフロントサイド（ｆｒｏｎｔｓｉｄｅ）ＤＲＡＭで具現される。
図３は本発明の一実施形態に係るバックサイドＤＲＡＭキャッシュを含むＮＶＤＩＭＭを例示的に示す。ＮＶＤＩＭＭ（２０１ａ）は不揮発性メモリ２１０、バックサイドＤＲＡＭキャッシュ２１１ａ、及びＮＶＭ／キャッシュコントローラ２２０を含む。ＮＶＤＩＭＭ（２０１ａ）のデータバッファ２３０はホストメモリコントローラ（図示せず）によって要請されたデータ又はＮＶＤＩＭＭ（２０１ａ）の状態を、データバス（ＤＱ）を通じて提供する。ＮＶＤＩＭＭ（２０１ａ）のレジスタリングクロックドライバ（ＲＣＤ、ｒｅｇｉｓｔｅｒｉｎｇ  ｃｌｏｃｋ＿ｄｒｉｖｅｒ＿）２３１は、データバッファ２３０に対する命令シークェンスを発生する「制御及びアドレス」（ＣＡ）バッファを提供する。
【００２４】
バックサイドＤＲＡＭキャッシュ２１１ａはＮＶＭ／キャッシュコントローラ２２０と連結され、ＮＶＭ／キャッシュコントローラ２２０を通じてデータバッファ２３０からのデータ及びＲＣＤ（２３１）からの「制御及びアドレス」（ＣＡ）を受信する。これはホストメモリコントローラによるバックサイドＤＲＡＭキャッシュ２１１ａに対する直接的アクセスを禁止する。
ホストメモリコントローラは直接モードではバックサイドＤＲＡＭキャッシュ２１１ａをアクセスできるが、キャッシュモードではバックライトＤＲＡＭキャッシュ２１１ａを直接的にアクセスできない。バックサイドＤＲＡＭキャッシュ２１１ａに対してアクセスするにはハンドシェーキング（ｈａｎｄｓｈａｋｉｎｇ）を必要とするので、ＤＲＡＭに対する従来のアクセス時間より長いアクセス時間（例えば、１５ｎｓ以上）をもたらす。
【００２５】
図４は本発明の一実施形態に係るフロントサイドＤＲＡＭキャッシュを含むＮＶＤＩＭＭを例示的に示す。ＮＶＤＩＭＭ２０１ｂは不揮発性メモリ２１０、フロントサイドＤＲＡＭキャッシュ２１１ｂ、及びＮＶＭコントローラ２２１を含む。
ＮＶＤＩＭＭ２０１ｂのデータバッファ２３０はデータバス（ＤＱ）を通じてホストメモリコントローラ（図示せず）に／から通信するデータをバッファリングする。
ＮＶＤＩＭＭ２０１ｂのレジスタリングクロックドライバ（ＲＣＤ）２３１は、「制御及びアドレス」（ＣＡ）のバッファであって、データバッファ２３０に対する命令シ−クェンスを発生する。
【００２６】
図３に示されたＮＶＤＩＭＭ（２０１ａ）のバックサイドＤＲＡＭキャッシュ２１１ａと比較すれば、図４に示されたＮＶＤＩＭＭ（２０１ｂ）のフロントサイドＤＲＡＭキャッシュ２１１ｂは、ホストメモリコントローラによって直接的にアクセスできる。このような動作モードは以下の説明でキャッシュモードと称する。フロントサイドＤＲＡＭキャッシュ２１１ｂにアクセスするキャッシュモードはハンドシェーキングオーバヘッドを要求しないので、従来のＤＲＡＭに対するアクセスと同じくらい速いフロントサイドＤＲＡＭキャッシュ２１１ｂに対するアクセスが可能になる。
【００２７】
本発明はＮＶＤＩＭＭの動作、特にキャッシュモードのための多様な命令を提供する。キャッシュモードでＮＶＤＩＭＭのためのこのような命令は、例えば高速キャッシュ読出し命令（ｆａｓｔ  ｃａｃｈｅ−ｒｅａｄ  ｃｏｍｍａｎｄ）、内部動作命令（ｉｎｔｅｒｎａｌ  ｏｐｅｒａｔｉｏｎ  ｃｏｍｍａｎｄ）、フラッシュ命令（ｆｌｕｓｈ  ｃｏｍｍａｎｄ）、トランザクションバースト命令（ｔｒａｎｓａｃｔｉｏｎ  ｂｕｒｓｔ  ｃｏｍｍａｎｄ）、及び読出し状態命令（ｒｅａｄ  ｓｔａｔｕｓ  ｃｏｍｍａｎｄ）等を含むが、これに限定されない。
【００２８】
高速キャッシュ読出し命令はＤＲＡＭキャッシュアクセスに対する低いレイテンシキャッシュを可能にする。内部動作命令はホストメモリコントローラと衝突せずにＮＶＤＩＭＭが内部動作を遂行することを可能にする。ＮＶＭコントローラ２２１は書込みバッファ（例えば、ＳＲＡＭ）を含む。入力される書込み命令に対して、書込みデータはＮＶＭコントローラ２２１の書込みバッファに先ず格納され、ＮＶＭコントローラ２２１は書込みバッファからのデータをＤＲＡＭキャッシュ又はＮＶＭ２１０の中で１つに書き込む。
フラッシュ命令はホストメモリコントローラがＮＶＤＩＭＭにＮＶＭコントローラ２２１の書込みバッファ及び／又はＤＲＡＭキャッシュをフラッシュする命令を可能にする。フラッシュ命令は揮発性領域（例えば、書込みバッファ）に格納されたデータが不揮発性領域に書き込まれることを保障することによってデータが永久的に持続されるようにする。
異なって明示しない限り、本明細書でＤＲＡＭキャッシュは図４に示したフロントサイドＤＲＡＭキャッシュである。ＤＲＡＭキャッシュ及びフロントサイドＤＲＡＭキャッシュは本発明の範囲を逸脱しない限度内で互換的に使用されることができる。
【００２９】
本発明の一実施形態によれば、高速キャッシュ読出し命令は、ハンドシェークオーバヘッドを招くことなくホストメモリコントローラが高速でＤＲＡＭキャッシュにアクセスすることを可能にする。
図５は本発明の一実施形態に係る高速キャッシュ読出し命令の一例に対する定義を示すテーブルである。高速キャッシュ読出し命令は第１クロックサイクルで発生される「拡張された命令」（Ｅ）及び後続する第２クロックサイクルで発生される「ＤＲＡＭ読出し命令」（ＲＤ）を含む。
【００３０】
図６は本発明の一実施形態に係る高速キャッシュ読出し命令の一例に対するタイミング図である。（Ｅ）＋（ＲＤ）命令の組合わせ、（以下、「Ｅ＋ＲＤ」という）、ホストメモリコントローラは、標準ＤＤＲ４インタフェイスと同一のレイテンシ又は類似のレイテンシを有する固定されたＤＲＡＭレイテンシ後に、データ及びタグを取得できる。「Ｅ＋ＲＤ」命令を受信した後、ＮＶＭコントローラ（例えば、図４に示したＮＶＭコントローラ２２１）はメッセージ（ＭＳＧ）ピン上にタグを掲示（ｐｏｓｔ）する。一実施形態によれば、高速キャッシュ読出し命令と関連されたデータ及びデータバス（ＤＱ）に載せたデータがキャッシュされたデータであるか否かを識別するために、ホストメモリコントローラはタグをチェックする。ホストメモリコントローラ又はＮＶＭコントローラはキャッシュマネージメント（管理）ロジックを含む。
本発明の一実施形態によれば、キャッシュマネージメントロジックはタグをチェックしてキャッシュヒット又はキャッシュミスを判別する。ホストメモリコントローラが読出し要請を伝送する時、ホストメモリコントローラはアドレス及び対応するタグを持続的に把握しておく。読出しデータがリターンされる時、ホストメモリコントローラはリターンされたタグを使用して未処理の（ｏｕｔｓｔａｎｄｉｎｇ）読出し要請とタグとをマッチさせる。例えば、もしタグがキャッシュヒットを示せば、ホストメモリコントローラはデータバス（ＤＱ）にロードされたデータが有効であることと判別し、そうでなければ、ホストメモリコントローラはキャッシュミスであることと判別して、データバス（ＤＱ）にロードされたデータが無効であることと判別する。キャッシュミスである場合、ホストメモリコントローラはデータバス（ＤＱ）上のデータを無視する。
【００３１】
ＣＡバスを通じて「Ｅ＋ＲＤ」命令が受信された後、ＮＶＭコントローラは高速キャッシュ読出し命令と関連されたタグを内部的にチェックする。タグはＮＶＤＩＭＭのメモリ（例えば、ＤＲＡＭ）の個別ブロック内に格納される。ホストメモリコントローラは拡張されたアドレスＥＡを発生し、ＮＶＭコントローラは拡張されたアドレスＥＡをデコーディングし、タグマッチを遂行する。もし、拡張されたアドレスＥＡ及びタグが一致すれば（３１１ａ）、ＮＶＭコントローラはキャッシュヒットであることと判別し、何も遂行しない。この場合、キャッシュマネージメントロジックはＤＲＡＭキャッシュからのキャッシュデータ３１２をデータバッファ２３０にロードし、データバッファ２３０は自動的にデータバス（ＤＱ）上にデータを載せる。ホストメモリコントローラはデータバッファ２３０からのキャッシュされたデータを同期的に回収する。循環冗長検査（ｃｙｃｌｉｃ  ｒｅｄｕｎｄａｎｃｙ  ｃｈｅｃｋ、ＣＲＣ）又はパリティー（ｐａｒｉｔｙ）等の誤謬訂正コード（ｅｒｒｏｒ−ｃｏｒｒｅｃｔｉｎｇ  ｃｏｄｅ、ＥＣＣ）保護はデータバス（ＤＱ）でパケット無欠性保障（ｐａｃｋｅｔ  ｉｎｔｅｇｒｉｔｙ  ｐｒｏｔｅｃｔｉｏｎ）のために使用される。もし、拡張されたアドレスＥＡ及びタグが一致しなければ（３１１ｂ）、ＮＶＭコントローラはキャッシュミスであると判別し、不揮発性メモリに格納された要請されたデータをデータバッファ２３０にロードする。
【００３２】
一実施形態によれば、拡張命令（Ａ０〜Ａ９）内に含まれた読出しＩＤ（ＲＩＤ）は読出し要請及びＮＶＤＩＭＭからの読出しデータの間の連関性を識別するのに使用される。読出しＩＤ（ＲＩＤ）は多様な方法により発生できる。一実施形態で、ホストメモリコントローラは明示的に読出しＩＤ（ＲＩＤ）を発生する。この場合、図５に示した拡張された（Ｅ）命令で、読出しＩＤ（ＲＩＤ）はホストメモリコントローラからＮＶＤＩＭＭに明示的に伝達される。
他の実施形態で、ホストメモリコントローラ及びＮＶＤＩＭＭの双方は読出し命令のタイプに基づいて読出しＩＤ（ＲＩＤ）を明示的に発生する。その他の実施形態で、ホストメモリコントローラ又はＮＶＤＩＭＭの中の何れも読出しＩＤ（ＲＩＤ）を明示的に発生しない。代わりに、ホストメモリコントローラ及びＮＶＤＩＭＭの双方は読出しＩＤ（ＲＩＤ）メカニック（ｍｅｃｈａｎｉｃ、機構）に同意し、これに従う。初期化の間に同期化の後、ホストメモリコントローラ及びＮＶＤＩＭＭは同一のパッケージに対して個別的に同一の読出しＩＤ（ＲＩＤ）を発生する。読出しＩＤ（ＲＩＤ）はフィードバックチャンネル（例えば、メッセージ（ＭＳＧ）ピン）内の他のピンを通じて伝達される。
【００３３】
キャッシュミス以後の動作は非同期的である。例えば、データが読出し待機（Ｒｅａｄ＿Ｒｅａｄｙ）信号を使用して準備される時、ＮＶＤＩＭＭはホストメモリコントローラに非同期的に通知することができる。読出し待機（Ｒｅａｄ＿Ｒｅａｄｙ）信号は非同期信号であり、データバス（ＤＱ）上のデータ信号と整列（ａｌｉｇｎ）される必要がない。読出し待機（Ｒｅａｄ＿Ｒｅａｄｙ）信号はホストメモリコントローラによって読み出されるデータが準備されたか否かを示す特定の単数又は複数のピンを通じて伝達される。
ホストメモリコントローラが読出し待機（Ｒｅａｄ＿Ｒｅａｄｙ）信号を受信した後、ホストメモリコントローラはトランザクションバースト（ＴＢ）命令３１５を発行し、不揮発性メモリに格納されたデータをデータバス上に読み出す。トランザクションバースト（ＴＢ）命令３１５に応答して、ＮＶＤＩＭＭはメッセージ（ＭＳＧ）ピン内読出しＩＤ（ＲＩＤ）のみならず、不揮発性メモリに格納された要請されたデータをＤＱピンにロードする。メッセージ（ＭＳＧ）ピンにロードされた読出しＩＤ（ＲＩＤ）３２０はＤＱピン上のデータが「Ｅ＋ＲＤ」命令３０１ｂによって要請されたデータに対応するか否かを識別する。
【００３４】
ホストメモリコントローラ及びＮＶＭコントローラの双方がＤＲＡＭキャッシュに対する制御を有するので、ＤＲＡＭキャッシュにおけるアクセス衝突が発生し得る一実施形態において、内部動作（ＩＯＰ）命令は、ホストメモリコントローラ及びＮＶＭコントローラの双方がＤＲＡＭキャッシュに対する制御を要請する時潜在的に発生し得るＤＲＡＭアクセス衝突を回避できる。
【００３５】
図７は本発明の一実施形態に係る内部動作命令の一例に対する定義を示すテーブルである。
図８は本発明の一実施形態に係る内部動作命令の一例に対するタイミング図である。
【００３６】
時には、ＮＶＤＩＭＭはＤＲＡＭキャッシュから不揮発性メモリへのデータ移動又は不揮発性メモリからＤＲＡＭキャッシュへのデータ移動等の内部動作を遂行するための時間を必要とする。この場合で、ＮＶＭコントローラはホストメモリコントローラへ内部動作を遂行することに対する許可を問う要請を伝送する。例えば、ＮＶＭコントローラは内部動作（ＩＯＰ）要請４１０をホストメモリコントローラへ伝送して１つ以上の内部動作を遂行するための時間及び許可を要請することができる。
【００３７】
一実施形態によれば、ＮＶＤＩＭＭによって伝送される内部動作（ＩＯＰ）要請４１０は読出し待機（Ｒｅａｄ＿Ｒｅａｄｙ）信号とこれに続くトランザクションバースト（ＴＢ）命令４０１を含む。読出し待機（Ｒｅａｄ＿Ｒｅａｄｙ）信号を利用して、ＮＶＤＩＭＭはホストメモリコントローラにメッセージ及びデータが準備される（この例で、内部動作（ＩＯＰ）要請４１０）を通知する。トランザクションバースト（ＴＢ）命令４０１に応答してロードされるメッセージ（ＭＳＧ）パケット４２０はデータの代わりにＮＶＤＩＭＭの状態４１２を含むデータがＤＱピンにロードされることを示す識別子（１）を含む。ホストメモリコントローラはＮＶＤＩＭＭの状態４１２を読み出し、内部動作（ＩＯＰ）命令４０２をＮＶＭコントローラへ伝送する。これに対して、ノーマルトランザクションバースト読出し命令の場合は、図５に示したように、メッセージ（ＭＳＧ）パケット３２０は識別子（０）及び読出しＩＤ（ＲＩＤ）を含む。
【００３８】
データバス（ＤＱ）（そして、ＥＣＣ）にロードされたＮＶＤＩＭＭの状態４１２はＮＶＤＩＭが内部動作を完了するのにどのぐらい多い時間が必要とするかを示す内部動作（ＩＯＰ）時間を含む。データバス（ＤＱ）にロードされたＮＶＤＩＭＭの状態４１２（そして、ＥＣＣ）はＮＶＤＩＭが内部動作を完了するのに要する時間を示す内部動作（ＩＯＰ）時間を含む。内部動作（ＩＯＰ）命令４０２は要請された内部動作（ＩＯＰ）時間に対する承認又は非承認を示す。もし、ホストメモリコントローラが要請された内部動作（ＩＯＰ）時間を承認すれば、内部動作（ＩＯＰ）命令４０２は割当された時間（例えば、Ａ０〜Ａ９ピンで指定される）を含む。
一実施形態によれば、内部動作（ＩＯＰ）要請４１０で要請された内部動作（ＩＯＰ）時間は内部動作（ＩＯＰ）命令４０２で割当された内部動作（ＩＯＰ）時間と異なる。ＮＶＤＩＭＭが内部動作を遂行することを許容する割当された時間の間、ホストメモリコントローラはＮＶＤＩＭＭにアクセスしない。内部動作はＣＡ及びＤＱバスを占有しないので、共有されたメモリチャンネルバスは共有されたメモリチャンネル上の他のＤＩＭＭによって使用される。
【００３９】
一実施形態によれば、フラッシュ（ＦＬ）命令は、ホストメモリコントローラがＮＶＤＩＭＭに対して書込みバッファから、及び／又は、ＤＲＡＭキャッシュに対して不揮発性メモリにデータをフラッシュするように命令することを可能にするために使用される。
図９は本発明の一実施形態に係るフラッシュ命令の一例に対する定義を示すテーブルである。
図１０は本発明の一実施形態に係るフラッシュ命令の一例に対するタイミング図である。
【００４０】
一実施形態によれば、ホストメモリコントローラはフラッシュＩＤ（ＦＩＤ）を含むフラッシュ命令５０１を（例えば、Ａ０〜Ａ９ピン上に）伝送する。一実施形態で、フラッシュＩＤ（ＦＩＤ）はアドレス範囲である。ホストメモリコントローラ及びＮＶＭコントローラはフラッシュＩＤが所定のアドレス範囲を示すかを識別する。ホストメモリコントローラはＮＶＤＩＭＭがフラッシュＩＤ（ＦＩＤ）に基づいて不揮発性メモリの特定領域にデータをフラッシュするように命令する。これに応答して、ＮＶＭコントローラはＤＲＡＭキャッシュからの汚いデータ（ｄｉｒｔｙ  ｄａｔａ）を不揮発性メモリのフラッシュＩＤ（ＦＩＤ）にフラッシュし、フラッシュ命令５０１が完了されたことを示す読出し待機（Ｒｅａｄ＿Ｒｅａｄｙ）信号を伝送する。
読出し待機（Ｒｅａｄ＿Ｒｅａｄｙ）信号を受信した後、ホストメモリコントローラはトランザクションバースト（ＴＢ）命令５０２を伝送してフラッシュ命令５０１の状態をチェックする。状態はフラッシュＩＤ（ＦＩＤ）及びフラッシュＩＤ（ＦＩＤ）の状態（例えば、成功、保留（ｐｅｎｄｉｎｇ）、又は失敗）を含む。例えば、ＮＶＤＩＭＭが不揮発性メモリの指定された領域にフラッシュを成功裡に完了したら、ＮＶＤＩＭＭはフラッシュ命令５０１を成功裡に完了したことを示す確認を示す状態５１２を伝送する。トランザクションバースト（ＴＢ）命令５０２に応答してロードされたメッセージ（ＭＳＧ）パケット５２０は、ＤＱピン上にロードされたデータがデータの代わりにＮＶＤＩＭＭの状態５１２を含むとことを示す識別子（１）を含む。
【００４１】
トランザクションバースト（ＴＢ）命令は、ＮＶＤＩＭＭからデータ又は状態の中で何れか１つを得るようにホストメモリコントローラをイネーブルするために使用される。一実施形態によれば、トランザクションバースト（ＴＢ）命令はバーストカウントを含むので、ホストメモリコントローラは単一のトランザクションバースト（ＴＢ）命令を利用してＮＶＤＩＭＭから１つ以上のデータ及び／又は状態を要請できる。
図１１は本発明の一実施形態に係るトランザクションバースト（ＴＢ）命令の一例に対する定義を示すテーブルである。
図１２は本発明の一実施形態に係るトランザクションバースト（ＴＢ）命令の一例に対するタイミング図である。
【００４２】
一実施形態によれば、バーストカウントはトランザクションバースト（ＴＢ）命令のＡ０〜Ａ９ピンにロードされる。図１２に示した例で、トランザクションバースト（ＴＢ）命令６０１は１つのデータ読出し及び１つの相対読出しを含むバーストカウント２を含む。トランザクションバースト（ＴＢ）命令６０１の次に、ＮＶＤＩＭＭはＤＱピン（そして、ＥＣＣ）に要請されたデータ６１２及び状態６１３をロードする。ホストメモリコントローラはメッセージ（ＭＳＧ）ピン内識別子（０又は１）に基づいてデータ又は状態がＤＱピンにロードされたか否かを判別する。例えば、識別子（０）は要請されたデータがＤＱピンにロードされたことを示し、識別子（１）はＮＶＤＩＭＭの状態がＤＱピンにロードされたことを示す。
【００４３】
一実施形態によれば、読出し状態（ＲＳ）命令はホストメモリコントローラがＮＶＤＩＭＭの状態を能動的に読出すようにするために使用される。図１３は本発明の一実施形態に係る読出し状態（ＲＳ）命令の一例に対する定義を示すテーブルである。図１４は本発明の一実施形態に係る読出し状態（ＲＳ）命令の一例に対するタイミング図である。
【００４４】
ホストメモリコントローラは読出し状態（ＲＳ）命令７０１を、ＣＡバスを通じてＮＶＤＩＭＭに伝送する。読出し状態（ＲＳ）命令７０１に応答して、ＮＶＤＩＭＭは自分の状態７１２をＤＱピン（そして、ＥＣＣ）にロードする。メッセージ（ＭＳＧ）に含まれた識別子は状態７１２がＤＱピンにロードされたことを示す。他の実施形態によれば、ホストメモリコントローラは読出し状態（ＲＳ）命令７０１を伝送してＮＶＤＩＭＭの状態を検索できる。ＮＶＤＩＭＭは所定の時間（ｔＲＬ）が経過した後、自分の状態７１２を報告し、これに従って、ホストメモリコントローラは決定論的にそして同期的にＮＶＤＩＭＭの状態を受信する。例えば、もしＮＶＤＩＭＭがフラッシュ命令を完了したことを確認しなければ、ホストメモリコントローラはＮＶＤＩＭＭの状態を能動的にチェックする。
【００４５】
ＮＶＤＩＭＭは準備済のデータ／状態の数をリターン状態パケット７１２に埋め込む。この場合、たとえ読出し準備済（Ｒｅａｄ＿Ｒｅａｄｙ）信号が損失されても、ホストメモリコントローラは何件のデータ／状態が準備済かが分かる。一実施形態によれば、ホストメモリコントローラはＳＦＲ（ｓｐｅｃｉａｌ  ｆｕｎｃｔｉｏｎ  ｒｅｇｉｓｔｅｒ）アドレスに基づいてＮＶＤＩＭＭの特定のＳＦＲ（ｓｐｅｃｉａｌ  ｆｕｎｃｔｉｏｎ  ｒｅｇｉｓｔｅｒ）を読出し又は書き込む。ＳＦＲからの読出しのために、ホストメモリコントローラは読出し状態（ＲＳ）命令を発行する。ＳＦＲへの書込みのために、ホストメモリコントローラは望むＳＦＲに対応するアドレスにノーマル書込み命令を発行する。ＳＦＲはＮＶＤＩＭＭの不揮発性メモリ固有の環境設定、動作及び／又は状態情報を含み得る。
【００４６】
図１５は本発明の一実施形態に係るメモリモジュールに格納されるデータを提供するためのフローチャートである。メモリモジュールは不揮発性メモリ及び不揮発性メモリのＤＲＡＭキャッシュで構成されたＤＲＡＭを含む。メモリモジュールはホストメモリコントローラから読出し要請を受信する（８０１）。キャッシュマネージメントロジックは要請されたデータが格納された位置に基づいて読出し要請がキャッシュヒットであるか、又はキャッシュミスであるかを判別する（８０２）。キャッシュマネージメントロジックはホストメモリコントローラ又はメモリモジュールのＮＶＭコントローラに含まれる。キャッシュミスである場合、メモリモジュールはメモリモジュールの不揮発性メモリに格納されたデータを非同期的に提供する（８０３）。キャッシュヒットである場合、メモリモジュールはＤＲＡＭキャッシュに格納されたデータを同期的に提供する（８０４）。
【００４７】
一実施形態による動作方法は、不揮発性メモリ及び前記不揮発性メモリのＤＲＡＭキャッシュとして構成されたＤＲＡＭを含むメモリモジュールとホストメモリコントローラとの間にＤＤＲインタフェイスを提供する段階と、前記ホストメモリコントローラ及び前記メモリモジュールの間にメッセージインタフェイスを提供する段階と、を含む。
前記不揮発性メモリ及び前記メモリモジュールのＤＲＡＭの双方は、データバッファ及びレジスタリングクロックドライバ（ＲＣＤ）と連結され、前記レジスタリングクロックドライバ（ＲＣＤ）は「制御及びアドレス」（ＣＡ）バッファを含む。
前記データバッファはホストメモリコントローラによって要請されたデータ又は前記メモリモジュールの状態を前記ＤＤＲインタフェイスのデータバス（ＤＱ）及び前記メッセージインタフェイスを通じて提供する。
前記レジスタリングクロックドライバ（ＲＣＤ）は前記ＤＤＲインタフェイスのＣＡバスを通じて受信された命令及びアドレスに基づいて前記データバッファに対する命令シークェンスを生成する。
前記メモリモジュールの前記不揮発性メモリに格納されたデータは前記メモリモジュールの前記不揮発性メモリコントローラによって非同期的にアクセス可能である。前記ＤＲＡＭキャッシュに格納されたデータは前記ホストメモリコントローラによって同期的に直接、アクセス可能である。
【００４８】
前記動作方法は、前記ホストメモリコントローラから前記メモリモジュールに格納されたデータを読み出すための高速キャッシュ−読出し要請を受信する段階と、前記高速キャッシュ−読出し要請によって要請された前記データが前記ＤＲＡＭキャッシュ又は前記不揮発性メモリの何れに格納されているのかを判別する段階と、前記データが前記ＤＲＡＭキャッシュに格納されている時、前記データを前記データバスに同期的に提供する段階と、前記データが前記不揮発性メモリに格納されている時、前記データを前記データバスに非同期的に提供する段階と、をさらに含む。
【００４９】
前記高速キャッシュ−読出し要請は拡張された命令及びＤＲＡＭ読出し命令を含む。
【００５０】
前記拡張された命令は前記メモリモジュールに格納されたデータと関連される読出しＩＤを含む。
【００５１】
前記動作方法は、前記メッセージインタフェイス上のメッセージ信号に含まれたタグをチェックする段階と、前記タグと拡張されたアドレスＥＡを比較して前記高速キャッシュ−読出し要請がキャッシュヒットであるか、又はキャッシュミスであるかを判別する段階と、をさらに含む。
【００５２】
前記動作方法は、前記ホストメモリコントローラが第２読出し命令を発送して前記不揮発性メモリから前記データを読出すように指示するために、前記メッセージインタフェイス上に読出し準備済信号を伝送する段階と、前記第２読出し要請に応答して前記データバスに前記データを提供する段階と、をさらに含む。
【００５３】
前記動作方法は、前記ホストメモリコントローラに対して、前記メモリモジュールの状態を読出すように指示するために、読出し準備済信号を前記メッセージインタフェイスを介して提供する段階と、前記ホストメモリコントローラから読出し要請を受信する段階と、ＤＤＲインタフェイス上に前記メモリモジュールの状態を提供し、タグを含むメッセージを提供する段階と、をさらに含む。前記メッセージ信号に含まれた前記タグは、前記ＤＤＲインタフェイスの前記データバス上の前記データが前記メモリモジュールの状態であることを示す。
【００５４】
前記メモリモジュールの状態は内部動作時間を含み、前記動作方法は、前記ホストメモリコントローラから内部動作命令を受信する段階をさらに含む。前記内部動作命令は承認された内部動作時間を含む。
【００５５】
前記内部動作時間及び前記承認された内部動作時間は互いに異なる。
【００５６】
前記承認された内部動作時間の間には、前記ホストメモリコントローラは前記メモリモジュールに格納されたデータをアクセスしない。
【００５７】
前記動作方法は、前記ホストメモリコントローラからフラッシュＩＤを含むフラッシュ命令を受信する段階と、前記フラッシュＩＤに基づいて前記ＤＲＡＭに格納されたデータを前記不揮発性メモリにフラッシュする段階と、をさらに含む。前記メモリモジュールの状態は前記フラッシュＩＤに基づいて前記フラッシュ命令が成功裡に遂行されたか否かを示す。
【００５８】
前記動作方法は、前記メモリモジュールに格納された１つ以上のデータ及び前記メモリモジュールの状態を、前記ＤＤＲインタフェイス、及びタグを含む前記メッセージインタフェイスに提供する段階をさらに含む。前記メッセージインタフェイス上の前記メッセージ信号に含まれる前記タグは前記ＤＤＲインタフェイスの前記データバスにロードされたデータが、前記ホストメモリコントローラによって要請されたデータ又は前記メモリモジュールの状態の内の何れであるかを示す。
【００５９】
前記読出し要請はバーストカウントを含み、前記動作方法は、前記バーストカウントによって定義された通り、前記メモリモジュールに格納された１つ以上のデータ及び前記メモリモジュールの状態を前記ＤＤＲインタフェイスに順次的に提供する段階をさらに含む。
【００６０】
前記動作方法は、前記ホストメモリコントローラから読出し状態命令を受信する段階と、前記ＤＤＲインタフェイスを通じて前記メモリモジュールの前記状態を同期的に提供する段階と、をさらに含む。
【００６１】
他の実施形態によるメモリモジュールは、不揮発性メモリと、データインタフェイス、及び「制御及びアドレス」（ＣＡ）インタフェイスを前記不揮発性メモリに提供する不揮発性メモリコントローラと、前記不揮発性メモリのＤＲＡＭキャッシュとして構成されたＤＲＡＭと、データバッファと、「制御及びアドレス」（ＣＡ）バッファを含むレジスタリングクロックドライバ（ＲＣＤ）と、ホストメモリコントローラに対するＤＤＲインタフェイス及びメッセージインタフェイスと、を含む。前記不揮発性メモリ及び前記ＤＲＡＭは、前記データバッファ及び前記レジスタリングクロックドライバ（ＲＣＤ）と連結される。前記データバッファは、前記ホストメモリコントローラによって要請されたデータ又は前記メモリモジュールの状態を前記ＤＤＲインタフェイスのデータバス（ＤＱ）及び前記メッセージインタフェイスを通じて提供し、前記ＲＣＤは、前記ＤＤＲインタフェイスのＣＡバスを通じて受信された命令及びアドレスに基づいて前記データバッファに対して命令シークェンスを生成するように構成される。前記メモリモジュールの前記不揮発性メモリに格納されたデータは前記不揮発性メモリコントローラによって非同期的にアクセス可能である。前記ＤＲＡＭキャッシュに格納されたデータは前記ホストメモリコントローラによって同期的に直接、アクセス可能である。
【００６２】
前記ホストメモリコントローラは高速キャッシュ−読出し要請を伝送して前記メモリモジュールに格納されたデータを読出し、前記メモリモジュールは前記データがＤＲＡＭキャッシュに格納されている時、前記データを前記データバスに同期的に提供し、前記データが前記不揮発性メモリに格納されている時、前記データを前記データバスに非同期的に提供する。
【００６３】
前記メモリモジュールは、前記メッセージインタフェイスにタグを含むメッセージ信号を伝送し、前記ホストメモリコントローラは前記タグと拡張されたアドレスＥＡの比較によって前記高速キャッシュ−読出し要請がキャッシュヒットであるか、又はキャッシュミスであるかを判別する。
【００６４】
その他の実施形態によるメモリシステムは、ホストメモリコントローラと、メモリモジュールと、前記ホストメモリコントローラと前記メモリモジュールとの間に位置し、データバス及び「制御及びアドレス」（ＣＡ）バスを含むＤＤＲインタフェイスと、前記ホストメモリコントローラと前記メモリモジュールとの間に位置したメッセージインタフェイスと、を含む。前記メモリモジュールは、不揮発性メモリと、データインタフェイス及び「制御及びアドレス」（ＣＡ）インタフェイスを前記不揮発性メモリに提供する不揮発性メモリコントローラと、前記不揮発性メモリのＤＲＡＭキャッシュとして構成されたＤＲＡＭと、データバッファと、「制御及びアドレス」（ＣＡ）バッファを含むレジスタリングクロックドライバ（ＲＣＤ）と、を含む。
前記不揮発性メモリ及び前記ＤＲＡＭは、前記データバッファ及び前記レジスタリングクロックドライバ（ＲＣＤ）と連結される。前記データバッファは、前記ホストメモリコントローラによって要請されたデータ又は前記メモリモジュールの状態を前記ＤＤＲインタフェイスのデータバス（ＤＱ）及び前記メッセージインタフェイスを通じて提供し、前記ＲＣＤは、前記ＤＤＲインタフェイスのＣＡバスを通じて受信された命令及びアドレスに基づいて前記データバッファに命令シークェンスを生成するように構成される。前記メモリモジュールの前記不揮発性メモリに格納されたデータは前記不揮発性メモリコントローラによって非同期的にアクセス可能である。前記ＤＲＡＭキャッシュに格納されたデータは前記ホストメモリコントローラによって同期的に直接、アクセス可能である。
【００６５】
前記ホストメモリコントローラは前記メモリモジュールに格納されたデータを読み出すために高速キャッシュ−読出し要請を伝送する。前記メモリモジュールは、前記データが前記ＤＲＡＭキャッシュに格納されている時、前記データを前記データバスに同期的に提供し、前記データが前記不揮発性メモリに格納されている時、前記データを前記データバスに非同期的に提供する。
【００６６】
前記メモリモジュールはタグを含むメッセージ信号を前記メッセージインタフェイスに伝送し、前記ホストメモリコントローラは前記タグと拡張されたアドレスＥＡとの比較によって前記高速キャッシュ−読出し要請がキャッシュヒットであるか、又はキャッシュミスであるかを判別する。
【符号の説明】
【００６７】
１０１      ＮＶＤＩＭＭ
１１１ａ      ＤＲＡＭ
１１０      不揮発性メモリ
２０１ａ      ＮＶＤＩＭＭ
２１０      ＮＶＭ
２１１ａ      バックサイドＤＲＡＭキャッシュ
２１１ｂ      フロントサイドＤＲＡＭキャッシュ
２２０      ＮＶＭ／キャッシュコントローラ
２２１      ＮＶＭコントローラ
２３０      データバッファ
２３１      レジスタリングクロックドライバ（ＲＣＤ、ｒｅｇｉｓｔｅｒｉｎｇ＿ｃｌｏｃｋ＿ｄｒｉｖｅｒ）
３０１ｂ    「Ｅ＋ＲＤ」命令
３１５      ＴＢ命令
３２０      ＲＩＤ（読出しＩＤ）（識別子（０）を含む  ＭＳＧパケット）
４０１      ＴＢ命令
４０２      ＩＯＰ命令
４１０      ＩＯＰ要請
４１２      ＮＶＤＩＭＭの状態
４２０      ＲＩＤ（読出しＩＤ）（識別子（１）を含む  ＭＳＧパケット）
５０１      フラッシュ命令
５０２      ＴＢ命令
５１２      ＮＶＤＩＭＭの状態
６０１      ＴＢ命令
６１２      データ
６１３      状態
７０１      ＲＳ命令
７１２      状態
ＣＡ      「制御及びアドレス」
ＤＩＭＭ      ｄｕａｌ＿ｉｎ−ｌｉｎｅ＿ｍｅｍｏｒｙ＿ｍｏｄｕｌｅ＿
ＤＤＲ      ダブルデータレート
ＤＱ      データバス
ＥＡ      拡張（された）アドレス
ＦＬ      フラッシュ
ＦＩＤ    フラッシュＩＤ
ＩＯＰ      内部動作
ＭＳＧ      メッセージ（パケット）
ＮＶＤＩＭＭ      不揮発性ＤＩＭＭ
ＲＩＤ      読出しＩＤ
ＲＳ      読出し状態
ＴＢ      トランザクションバースト
【図１】
2017220237.tif 000003
【図２】
2017220237.tif 000004
【図３】
2017220237.tif 000005
【図４】
2017220237.tif 000006
【図５】
2017220237.tif 000007
【図６】
2017220237.tif 000008
【図７】
2017220237.tif 000009
【図８】
2017220237.tif 000010
【図９】
2017220237.tif 000011
【図１０】
2017220237.tif 000012
【図１１】
2017220237.tif 000013
【図１２】
2017220237.tif 000014
【図１３】
2017220237.tif 000015
【図１４】
2017220237.tif 000016
【図１５】
2017220237.tif 000017