JP2020534598A - 不揮発性メモリのためのPersistent Write - Google Patents

不揮発性メモリのためのPersistent Write Download PDF

Info

Publication number
JP2020534598A
JP2020534598A JP2020514756A JP2020514756A JP2020534598A JP 2020534598 A JP2020534598 A JP 2020534598A JP 2020514756 A JP2020514756 A JP 2020514756A JP 2020514756 A JP2020514756 A JP 2020514756A JP 2020534598 A JP2020534598 A JP 2020534598A
Authority
JP
Japan
Prior art keywords
persistent
memory system
host
write
persistent write
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.)
Granted
Application number
JP2020514756A
Other languages
English (en)
Other versions
JPWO2019055164A5 (ja
JP7123129B2 (ja
JP2020534598A5 (ja
Inventor
ラジ・ラマヌジャン
クルジット・シン・ベインズ
リヨン・ワン
ウェスレー・クイーン
Original Assignee
クアルコム,インコーポレイテッド
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 クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Publication of JP2020534598A publication Critical patent/JP2020534598A/ja
Publication of JP2020534598A5 publication Critical patent/JP2020534598A5/ja
Publication of JPWO2019055164A5 publication Critical patent/JPWO2019055164A5/ja
Application granted granted Critical
Publication of JP7123129B2 publication Critical patent/JP7123129B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/068Hybrid storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2024Rewritable memory not requiring erasing, e.g. resistive or ferroelectric RAM
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Solid-Sorbent Or Filter-Aiding Compositions (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

永続動作のためのシステムおよび方法は、ホストおよびメモリシステムを含む。メモリシステムは、ホストからPersistent Writeコマンドおよび関連する書込みデータを受信すると、Persistent Writeコマンドに基づいて、メモリシステム内の不揮発性メモリへの書込みデータのPersistent Writeを実行する。メモリシステムはまた、ホストからPersistent Writeコマンドに関連付けられた書込み識別情報(WID)を受信し、Persistent Writeの完了が成功すると、Persistent Write完了指示を関連するWIDとともにホストに提供し得る。

Description

開示する態様は、メモリシステムを対象とする。より詳細には、例示的な態様は、不揮発性メモリのための永続的書込み(Persistent Write)動作およびそのプロトコルを対象とする。
ストレージクラスメモリ(SCM)は、一般に、高性能も有し得る大容量メモリを指す。SCMは、サーバまたは他の処理システムなどのアプリケーションにおいて使用されることがあり、ここにおいて、プロセッサまたは中央処理ユニットのためのデータの動作セットはSCMに記憶され得るが、完全なデータセットは補助メモリまたはハードディスクドライブ(HDD)に記憶され得る。SCMに対する重要な期待は書込みの永続性であり、これは、たとえば、サーバがクラッシュするかまたは電力を失うとしても、SCMに書き込まれた情報が失われないことを意味する。しかしながら、永続性に関連するそのような期待に応えることができる従来の不揮発性メモリは、SCMに望まれ得る容量および性能のメトリックを満たすことが可能ではないことがある。したがって、相変化メモリ(PCM)、スピン注入トルク磁気ランダムアクセスメモリ(STT MRAM)、抵抗変化RAM(ReRAM)などの技術は、SCMの実装形態においてますます普及している。
SCMを使用するとき、アプリケーションは、対応する永続メモリを更新するためにメモリ書込み動作を使用し得る。SCMへの書込みを永続的なものとするために、書込み動作を要求するアプリケーションは、書込み動作が永続メモリに達したという明示的な確認を期待し得る。対照的に、(ダイナミックランダムアクセスメモリ(DRAM)または他の揮発性メモリなどの)非永続メモリへの書込み動作は、従来、アプリケーションの観点からすると、書込み動作および関連するデータがメモリに転送されると完了したまたはポストされたと見なされ、データが書き込まれたという明示的な確認は必要とされない。したがって、永続性が期待されるSCMを使用するアプリケーションの場合、永続メモリへの書込み動作の明示的な確認を提供する高性能技法が望ましく、ここにおいて、高性能技法はまた、効率を最大化するために、異なるデータサイズと互換性がある。
永続メモリ動作について、2つのタイプの従来の方式がある。第1の方式は、メモリシステム全体(たとえば、当技術分野で知られているような、一連のDRAM集積回路を備えるデュアルインラインメモリモジュール(DIMM))がエネルギー支援されると想定する。この場合、DIMMの受信端上での中間バッファへの書込み動作は、永続性の期待を満たすのに十分であり得る。一実装形態では、書込み動作を要求するアプリケーションとDIMMとの間のチャネルインターフェースにわたる書込み動作が正常に完了すると、書込み動作は永続的であると見なされ得る。しかしながら、そのような方式を実装することは、電源障害が検出されたときにDIMM上の中間バッファをフラッシュするための電力/充電を提供するスーパーキャパシタまたはバッテリーなどのエネルギー貯蔵デバイスの使用を伴う場合がある。ただし、そのようなエネルギー貯蔵デバイスはすべてのDIMM上で利用可能ではない場合があり、さらに、利用可能であったとしても、高いコストがかかる。
第2の方式では、アプリケーションがDIMMからの完了ステータスを待っている間に、すべての以前の書込み動作が永続メモリにフラッシュされることがある。しかしながら、この方式は、かなりの性能コストがかかることがある。たとえば、アプリケーションがDIMMへの細粒度のPersistent Writeを要求していることがあるが、DIMMへの他の同時ではあるが独立した書込み動作ストリーミングがあり得る場合、完了ステータスまで待って、永続メモリへのすべての以前の書込み動作をフラッシュすることは、Persistent Write要求だけでなく、同時書込み動作も遅らせることがある。
したがって、従来の手法の上述の欠点を回避しながら、異なる粒度またはサイズのPersistent Writeをサポートする、高性能かつ高効率のPersistent Write動作が当技術分野において必要とされている。
本発明の例示的な態様は、永続動作のためのシステムおよび方法を含む。メモリシステムは、ホストからPersistent Writeコマンドおよび関連する書込みデータを受信すると、Persistent Writeコマンドに基づいて、メモリシステム内の不揮発性メモリへの書込みデータのPersistent Writeを実行する。メモリシステムはまた、ホストからPersistent Writeコマンドに関連付けられた書込み識別情報(WID)を受信し、Persistent Writeの完了が成功すると、Persistent Write完了指示を関連するWIDとともにホストに提供し得る。
たとえば、例示的な態様は、永続動作を実行する方法であって、メモリシステムにおいて、ホストからPersistent Writeコマンドおよび関連する書込みデータを受信するステップと、Writeコマンドに基づいて、メモリシステム内の不揮発性メモリへの書込みデータのPersistent Writeを実行するステップとを含む方法を対象とする。
別の例示的な態様は、永続動作を実行する方法であって、ホストからメモリシステムにPersistent Writeコマンドおよび関連する書込みデータを提供するステップを含み、Persistent Writeコマンドが、不揮発性メモリへの書込みデータのPersistent Writeを実行することをメモリシステムに示す、方法を対象とする。
別の例示的な態様は、ホストからPersistent Writeコマンドおよび関連する書込みデータを受信し、Persistent Writeコマンドに基づいて、メモリシステム内の不揮発性メモリへの書込みデータのPersistent Writeを実行するように構成されたメモリシステムを備える装置を対象とする。
別の例示的な態様は、Persistent Writeコマンドおよび関連する書込みデータをメモリシステムに提供するように構成されたホストを備え、Persistent Writeコマンドが、不揮発性メモリへの書込みデータのPersistent Writeを実行することをメモリシステムに示す、装置を対象とする。
別の例示的な態様は、データを記憶するための手段を備える装置であって、記憶するための手段が、ホストからPersistent Writeコマンドおよび関連する書込みデータを受信するための手段と、Persistent Writeコマンドに基づいて、記憶するための手段内の不揮発性メモリへの書込みデータのPersistent Writeを実行するための手段とを備える、装置を対象とする。
別の例示的な態様は、処理するための手段を備える装置であって、処理するための手段が、Persistent Writeコマンドおよび関連する書込みデータをメモリシステムに提供するための手段を備え、Persistent Writeコマンドが、不揮発性メモリへの書込みデータのPersistent Writeを実行することをメモリシステムに示す、装置を対象とする。
別の例示的な態様は、プロセッサによって実行されると、プロセッサに永続動作を実行させるコードを備える非一時的コンピュータ可読記憶媒体であって、メモリシステムにおいて、ホストからPersistent Writeコマンドおよび関連する書込みデータを受信するためのコードと、Persistent Writeコマンドに基づいて、メモリシステム内の不揮発性メモリへの書込みデータのPersistent Writeを実行するためのコードとを備える非一時的コンピュータ可読記憶媒体を対象とする。
別の例示的な態様は、プロセッサによって実行されると、プロセッサに永続動作を実行させるコードを備える非一時的コンピュータ可読記憶媒体であって、ホストからメモリシステムにPersistent Writeコマンドおよび関連する書込みデータを提供するためのコードを備え、Persistent Writeコマンドが、不揮発性メモリへの書込みデータのPersistent Writeを実行することをメモリシステムに示す、非一時的コンピュータ可読記憶媒体を対象とする。
添付の図面は、本発明の態様の説明を助けるために提示され、態様の限定ではなく、態様の例示のためのみに提供される。
本開示の態様による処理システムを示す図である。 本開示の様々な態様による、Persistent Writeを処理するためのトランザクションを示す図である。 本開示の様々な態様による、Persistent Writeを処理するためのトランザクションを示す図である。 本開示の様々な態様による、Persistent Writeを処理するためのトランザクションを示す図である。 本開示による、Persistent Writeコマンドのための例示的な符号化を示す図である。 本開示の態様による、Persistent Writeを実行する例示的な方法に関連するイベントのシーケンスを示す図である。 本開示の態様による、Persistent Writeを実行する例示的な方法に関連するイベントのシーケンスを示す図である。 本開示の一態様が有利に用いられ得る例示的なコンピューティングデバイスを示す図である。
本発明の態様は、本発明の特定の態様を対象とする以下の説明および関連する図面において開示される。本発明の範囲から逸脱することなく、代替の態様が考案され得る。加えて、本発明の関連する詳細を不明瞭にしないように、本発明のよく知られている要素は、詳細に説明されないか、または省略される。
「例示的」という語は、本明細書では「例、事例、または例示として機能すること」を意味するために使用される。本明細書で「例示的」として説明するいかなる態様も、必ずしも他の態様よりも好ましいまたは有利であると解釈されるべきではない。同様に、「本発明の態様」という用語は、本発明のすべての態様が、説明する特徴、利点または動作モードを含むことを必要としない。
本明細書で使用する用語は、特定の態様のみについて説明するためのものであり、本発明の態様を限定するものではない。本明細書で使用する単数形「a」、「an」および「the」は、文脈が別段に明確に示さない限り、複数形も含むものとする。「備える(comprises)」、「備える(comprising)」、「含む(includes)」および/または「含む(including)」という用語は、本明細書で使用するとき、述べられた特徴、整数、ステップ、動作、要素、および/または構成要素の存在を明示するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、構成要素、および/またはそれらのグループの存在または追加を排除しないことをさらに理解されたい。
さらに、多くの態様について、たとえば、コンピューティングデバイスの要素によって実行されるべきアクションのシーケンスに関して説明する。本明細書で説明する様々なアクションは、特定の回路(たとえば、特定用途向け集積回路(ASIC))によって、1つもしくは複数のプロセッサによって実行されるプログラム命令によって、または両方の組合せによって実行され得ることが認識されよう。加えて、本明細書で説明するこれらのアクションのシーケンスは、実行時に、関連するプロセッサに本明細書で説明する機能を実行させることになる、コンピュータ命令の対応するセットを記憶した、任意の形態のコンピュータ可読記憶媒体内で完全に具現化されるものと見なされ得る。したがって、本発明の様々な態様は、いくつかの異なる形態で具現化されてもよく、それらのすべてが、請求する主題の範囲内に入ることが企図されている。加えて、本明細書で説明する態様の各々について、任意のそのような態様の対応する形態が、たとえば、説明するアクションを実行する「ように構成された論理」として本明細書において説明される場合がある。
本開示の例示的な態様は、不揮発性DIMM(またはNVDIMM)などの不揮発性メモリのための効率的かつ高性能なPersistent Write動作を対象とする。対応して、例示的な態様によるPersistent Write動作をサポートする1つの例示的なメモリシステムとして、永続NVDIMMまたはNVDIMM-Pが開示される。以下のセクションでさらに詳細に説明するように、ホストデバイスは、たとえば、永続動作のための例示的な要求/コマンドおよび対応するデータを例示的なメモリシステムに提供するように構成されてもよく、メモリシステムは、要求されたPersistent Write動作を実行し、対応するシグナリングをホストデバイスに提供するように構成されてもよい。
次に図1を参照すると、ホスト120およびメモリシステム130を備える例示的な処理システム100が示されている。ホスト120は、明示的に示されていないが、中央処理ユニット(CPU)、デジタル信号プロセッサ(DSP)、マルチメディアプロセッサ、システムプロセッサ、グラフィックス処理ユニット(GPU)、変調器-復調器(モデム)、アプリケーションプロセッサなどの1つまたは複数の処理要素を備えることができる。これらの処理要素は、メモリシステム130にアクセスするための要求を行うことがある。メモリコントローラ(図示せず)は、これらのアクセス要求を制御するために、ホスト120内に存在してもよい。
メモリシステム130は、永続メモリ、たとえば、本開示によるNVDIMM-Pであってもよい。メモリシステム130は、入力/出力(I/O)ブロック132およびメモリバンク134を含むことが示されている。メモリバンク134は、Flashメモリ、DRAMなどを含んでもよい。
配線110はホスト120とメモリシステム130との間に示されており、データバス(DQ)112、コマンド/アドレスバス(CA)114、およびレスポンス116が別々に識別される。ホスト120は、CA114を介してメモリアクセス要求のためのコマンドおよび関連するアドレスを提供し、(二方向バスとして示されている)DQ112を介してデータを送信/受信することが可能であり得る。レスポンス116は、別々に示されているが、CA114の一部として構成されてもよく、場合によっては双方向バスとして実装されてもよい。レスポンス116は、いくつかの例示的な態様では、Persistent Writeのステータスなどの情報を提供するために使用されてもよい。様々な他のバス/ワイヤは別々に識別されていないが、これらも配線110内に存在することがある。いくつかの事例では、メモリシステム130は、確定的レスポンスおよび非確定的レスポンスのために別個のバスを使用してもよく、これについては、以下でさらに説明する。
メモリシステム130が少なくともいくつかの動作のための永続NVDIMM(NVDIMM-P)構成に対するさらなるサポートを有するNVDIMMとして構成され得る一実装形態では、ホスト120は、たとえばCA114上で、以下の例示的なコマンドのうちの1つまたは複数をメモリシステム130に提供することが可能であり得る。
- READコマンド(たとえば、64Bの倍数でのレングス符号化を伴う)、読取り識別情報(RID)とともに、
- WRITEコマンド(たとえば、従来の書込みコマンド)、
- P-WRITEコマンド(たとえば、Persistent Writeコマンド、Persistent Writeのための書込み識別情報(WID)とともに、所与のWIDを伴う書込みがメモリシステム130からの(たとえば、レスポンス116上で提供されるべき)Persistent Write完了(W_PER)信号を必要とするときを示す永続ビットとともに)、
- ADRxコマンド: 拡張アドレス、
- SENDコマンド(たとえば、メモリシステム130が読取りデータ要求のステータスを提供するためのコマンド)、
- SEND_Statusコマンド(たとえば、メモリシステム130がメモリシステム130からの永続動作に関連するエラー読出し、WIDなどを提供するためのコマンド)、
- (永続メモリにプッシュされるべき以前の書込みをフラッシュするための)FLUSHコマンド、
- NOP(動作なし)、
- (たとえば、キャッシュされたメモリを読み取るために使用される)Speculative Readコマンド、および
- 実装形態固有であり得る他のCachingコマンド
前述のように、メモリシステム130からホスト120への確定的レスポンスおよび非確定的レスポンスのために、別個のバスが配線110に設けられ得る。確定的レスポンスは、チェックビットピンなどの、I/O 132に結合されたピンから出てくるバス上で多重化され得る、メタデータ、DQ112上でホスト120に送られた読取りデータなどに関連するエラー制御コーディング(ECC)などのエラー/パリティ情報を含む。
ECCビットの中には、(たとえば、NVDIMMとしての)メモリシステム130の実装形態に固有のメディアECCおよびDQ112上のチャネル固有のECCビットがあってもよく、これらは、たとえば、様々な実装形態にわたる相互互換性を可能にするために標準化され得る。
メタデータビットは、アウトオブプログラムオーダーで送られた読取り要求のための遅延されたRIDを含んでもよい(ここにおいて、インオーダー動作の場合、RIDは「ドントケア(don't-care)」ステータスに設定され得る)。メタデータビットはまた、一定のホストまたはホスト120の処理要素に割り振られた、書込み動作のための未使用クォータを指す書込みクレジット(WC:write credit)を含んでもよい。メタデータビットは、当技術分野で知られているようなユーザ機器からのデータのためのデータポイズニングビット、および他のユーザ定義ビットをさらに含んでもよい。
本開示による非確定的レスポンスは、永続動作に関連してもよく、メモリシステム130からホスト120へのレスポンス116などの専用シグナリングを通じて送られてもよく、以下を示してもよい。
- R_RDY:読取りデータが利用可能であることを示す、メモリシステム130からホスト120への信号、
- Wr_Per:Persistent Writeが完了したことを示す、メモリシステム130からホスト120への信号、および
- ERROR:CRCチェック、クレジット違反、メディアタイムアウトなどのエラー条件を示す、メモリシステム130からホスト120への信号
NVDIMM-Pとしてのメモリシステム130の一実装形態の場合、たとえば、以下のプロトコルピンがI/O132において定義され得る。パルス幅変調を使用して、以下のピンおよびレスポンス信号構成が実装され得る。たとえば、NVDIMM-Pのダブルデータレート5(DDR5)実装形態では、RSP_nとして標識されたシングルワイヤ(サブチャネルごとに専用のワイヤ)は、以下のシグナリング、すなわち、R_RDYのための2クロックパルス低、W_PERのための4クロックパルス低、およびMESSAGEのための6クロックパルス低を提供するために使用され得る。各低パルスの後に、少なくとも2クロック高パルスが続いてもよい。別個のERROR信号が必要である場合、その信号は8クロック低パルスとして定義されてもよい。
DDR4実装形態の場合、単一のピンで性能問題に対処するために2つのピン(ODT1およびCKE1)が使用されてもよく、ここにおいて、ODT1は、R_RDYのための2クロック低パルス幅およびMESSAGEのための4クロック低を表し、CKE1は、W_PERのための2クロック低パルスを表す。各低パルスの後に、少なくとも2クロック高パルスが続いてもよく、別個のERROR信号が必要である場合、その信号はODT1上の6クロック低パルスとして定義されてもよい。
Persistent Writeの例示的な実装形態では、ハードウェア、ソフトウェア、ファームウェアなど(たとえば、アプリケーション、ドライバなど)の適切な組合せは、ホスト120からメモリシステム130への1つまたは複数の書込み要求が永続性を実現するときにメモリシステム130からホスト120に提供されるべき通知を可能にするように構成されてもよい。これらの通知は、以下で説明するように、実装形態固有であってもよい。
書込み動作のための書き込まれるべきデータがメディアコントローラ上のパワーフェイル保護バッファ(たとえば、メモリシステム130のパワーフェイル保護メモリ)に達したとき、書込み動作は、正常動作中に永続的と見なされ得る。しかしながら、いくつかのまれな場合またはメディアコントローラバッファがパワーフェイル保護されていないとき、ソフトウェアは、書込みがNVMメディアまでずっとプッシュされることを保証する。
NVDIMM-Pとしてのメモリシステム130の一実装形態の場合、エネルギー支援されるDIMMは、上述のバッファがパワーフェイル保護される構成を伴い、これは、正常な場合に永続性が必要とされるときでもNVDIMM-P Writeコマンドが使用され得ることを意味する。加えて、本明細書で定義するようなNVDIMM-P Flushコマンドは、メディアコントローラバッファ内のすべての書込みを不揮発性メモリにフラッシュするために使用され得る。Flushコマンドの場合、Flushの前に行われた書込みのみが、不揮発性メモリに対して永続的となることが保証される。適切なバリア動作などのソフトウェア実装コマンドは、(たとえば、ホスト120がアウトオブプログラムオーダーでPersistent Write要求を送るように構成され得るときに)書込みの正確な順序が維持されることを保証するために、最後の書込みの後かつFlushコマンドが発行される前に使用され得る。
エネルギー支援されないDIMMは、上記で説明したエネルギー支援されるDIMMよりも低い頻度で使用され得るが、NVDIMM-P Persistent Writeコマンドは、エネルギー支援されないDIMMにも永続性が必要とされるときに使用され得る。前述のように、ホスト120のメモリコントローラは、いつPersistent Writeコマンドを発行するかを決定するように構成されてもよい。この場合、メモリシステム130は、図2Aを参照しながら説明するように、いつPersistent Writeが完了したかという明示的な通知を提供することを期待される。さらに、NVDIMM-P Flushコマンドも、従来どおり、すべての書込みを(非Persistent Writeでさえも)不揮発性メモリにフラッシュするために使用され得る。
次に図2Aを参照すると、Persistent Writeコマンドの態様を示すために、ホスト120とメモリシステム130との間のトランザクションの例示的なセットが示されている。ホスト120からの上記で説明したReadコマンドに共通であり得る、例示的なPersistent Write(Wr_Per)コマンド(または単に「Persistent Write」)のいくつかの特徴がある。これらは、特定の書込み命令を識別するためのマルチビット識別子であり得る共通の書込み識別情報(WID)を含む。1つの有効ビット「Vld」を含む、それぞれ最大16ビット幅であり得る、WID210の例示的なセットが示されている(したがって、たとえば、CA114上で送られる64バイトコマンドパケットに最大31個のWIDが存在し得る)。Persistent Writeコマンドは、以下の節でさらに説明するFlushコマンドステータスリターンのためのWID符号化における予約済みフィールドも有し得る。
一態様では、ホスト120は、ホスト120が利用可能な関連するPersistent Writeクレジットを有するときのみ、Persistent Writeを発行するように構成されてもよい。(当技術分野で知られているReadクレジットに類似した)Persistent Writeクレジットは、ホスト120によって構成時に決定されてもよく、管理されてもよく、ホスト120が発行することを許可された未処理のPersistent Writeの数を反映してもよい。
発行されると、ホスト120は、未処理のPersistent Writeを、それらのそれぞれのWID210に基づいて追跡するように構成されてもよい。図2Aには(図1と組み合わせて参照すると)、CA114上でホスト120からメモリシステム130に発行された、202aおよび204aと標識された2つのPersistent Write(第1のアドレスおよびWIDを有するP-Write 1、ならびに第2のアドレスおよびWIDを有するP-Write 2)が、それぞれのデータ、たとえば、DQ112上の書込みデータ202bおよび書込みデータ204bとともに示されている。
メモリシステム130は、特定のPersistent Writeのためのすべてのデータがメモリシステム130内の不揮発性メモリに書き込まれると、そのPersistent Writeに対してレスポンス116上でレスポンス「Wr_Per」を発行するように構成される。Wr_Per202cおよびWr_Per204cが、それぞれのPersistent Write202aおよび204aに対して示されている。しかしながら、レスポンスがプログラムオーダーであるかまたはPersistent Write要求がホスト120から受信される順序である必要はないことを示すために、Wr_Per202cおよびWr_Per204cは、Persistent Write202aおよび204aがメモリシステム130によって受信された順序とは異なる順序で送られることが示されている。一態様では、メモリシステム130は、Wr_Perレスポンスに対するメッセージ「Write_Rdy」のための適切な符号化とともに、レスポンス116上の信号「Req」をアサートしてもよい。
さらに、ホスト120はまた、いつでも、その未処理のPersistent Writeのステータスを決定するために、参照番号206aで指定された「Send-Status for WID」コマンドを発行するように構成されてもよい。それに応答して、メモリシステム130は、たとえば、DQ112を介した8のバースト長または「BL8」転送において、完了したPersistent WriteのWIDを有するステータスパケットを発行するように構成されてもよい。
前述のように、最大31個のWID210が各64Bステータスパケットにパックされてもよく、ここにおいて、WID210ごとに、15ビットWIDとValidビットの組合せに割り当てられた16ビットがあってもよい。さらに、メモリシステム130はまた、他の書込みに対するステータスを返すために、前述のメタデータフィールドを使用してもよい。ホスト120は、たとえば、未処理のPersistent Writeの追跡を終了するために、WIDステータスパケット206b内の返されたWID210を使用してもよい。
いくつかの態様では、2つ以上のPersistent Writeがグループ化されてもよい。たとえば、64B Persistent Writeのセットが、たとえば、エネルギー支援されないDIMMの場合にコミットする(または不揮発性メモリに書き込む)ために、グループ化されてもよい。例示的な実装形態は、ホスト120からメモリシステム130に発行されるべきPersistent Writeのブロックを伴ってもよく、ここにおいて、メモリシステム130は、Persistent Writeのブロックまでをバッファにおいて収集し、Persistent Writeのブロックのすべてを一度にコミットするように構成されてもよく、このことは効率の改善につながり得る。しかしながら、Persistent Writeをグループ化し、ブロック内のPersistent Writeをコミットすることは、バッファがパワーフェイル保護されている、エネルギー支援されるDIMMには必要とされないことが理解されよう。
上記で説明したグループコミットを実装するために、以下の修正がPersistent Writeコマンドに対して行われてもよい。ホスト120は、2つ以上の書込みのセットに対して、(たとえば、WID210から)単一のWIDを選んでもよい。「Persist」と呼ばれる追加のビットが、たとえば、CA114上で送られるときにPersistent Writeコマンドに追加されてもよい。Persistビットは、いつPersistent Writeのグループ全体がメモリシステム130に送られたかを決定するために使用されてもよい。
たとえば、例示的な例においてWID=5を使用して、3つの64B Persistent Writeが以下のように一緒にグループ化されてもよい。第1のPersistent Write(WID=5、Persist=0)、第2のPersistent Write(WID=5、Persist=0)、および第3のPersistent Write(WID=5、Persist=1)がCA114上で送られてもよい。メモリシステム130は、Persistビットが0である間、WID=5を有するPersistent Writeをバッファにおいて収集し、Persistビットが1に設定された最後のPersistent Writeが到着すると、永続性コミットのプロセスを開始するように構成されてもよい。
一実装形態では、Persistent Writeのグループについて、1に設定されたPersistビットを有するPersistent Writeのみ(たとえば、上記の例では、第3のPersistent Writeのみ)が、メモリシステム130からWr_Perレスポンスを得るように構成されてもよい。これは、レスポンス116上のトラフィックを低減することができる。
いくつかの態様では、異なるWIDを有するPersistent Writeは、たとえば、CA114上でインターリーブされてもよい。したがって、永続コミットのためのPersistent Writeのグループ化は、同じWIDを有するグループ内のPersistent Writeがホスト120から連続的に送られることを暗に意味するものではない。
いくつかの態様では、Persistent Writeに対するWr_Perレスポンスにおいて生じ得る競合状態に対処するために、以下の図2Bを参照しながら説明するように、WGID-CompletedビットマップおよびWGID-Pendingビットマップなどの異なるビットマップを使用して、1つまたは複数のPersistent Writeのステータスをグループ化するためにWrite Group ID(WGID)ステータス方法が使用されてもよい。それぞれのWIDを有するPersistent Writeを考慮して、メモリシステム130は、Persist=1を有するPersistent WriteごとおよびFlush完了ごとに、それぞれのWr_Per(この場合は「W_PER」と呼ばれる)をアサートしてもよい。ホスト120は、1つまたは複数のW_PERを受信した後に別のコマンドSend-W_PER-Statusを使用してもよい(ここにおいて、ホスト120はまた、W_PER-Countと呼ばれるW_PERのカウントを維持してもよい)。メモリシステム130は、すでにアサートされたW_PERにのみ基づいて、完了したビットを有するWGID-Completed Statusを返してもよい。今度は、ホスト120は、WGIDのリスト、または「WGIDリスト」を更新し、完了の数に基づいてW_PER-Countをデクリメントしてもよい。
場合によっては、トランザクションにおいて訂正不可能なエラー(UE:uncorrectable error)が生じることがあり、これについては、図2Cを参照しながら説明する。Send-W_PER-Status内にUEがあるとき、ホスト120は、新しいPersistent Write/FlushおよびSend-W_PER-Statusを発行することを停止してもよい。ホスト120は、Xread-Statusと呼ばれるステータス読取りコマンドをメモリシステム130に送ってもよい。今度は、メモリシステム130は、Xread-Statusを受信する前にすべてのPersistent Writeを収集して、WGID-Pending Statusをホスト120に返し(ステータスパケットは、RD_RDYが受信される前にW_PERアサーションをカバーする)、メモリシステム130は、ステータス読取りの間にW_PERの発行を継続することができる。ホスト120は、ホスト120によって維持されるWGID Listを更新し、保留中の書込みに基づいてW_PER-Countをデクリメントしてもよい。次いで、ホスト120は、Persistent Write/Flushの再発行を開始することができる。
メモリシステム130のエネルギー支援されるDIMM実装形態の場合、通常のプロトコルにおいて、ホスト120は、コマンドPersistent Write(Persist=0/1を有する)およびFlushを発行することができるが、メモリシステム130は、Persist=1を有するPersistent WriteごとにW_PERをアサートせず、ただし、メモリシステム130は、Flushが完了したときにFlushコマンドのためのW_PERをアサートする。WGID実装形態の場合、メモリシステム130によるW_PER処理は、Flushに対する通常のプロトコルのみの場合と同じままである。メモリシステム130によって提供されるWGID Completed Statusビットマップは、Flush WGIDビットが完了したときにFlush WGIDビットを設定する。Send-W_PER-Status内にUEがあるとき、WGID Pending StatusのみがFlushに適用可能であることを除いて、動作は通常の場合と同じままである。
WGID実装形態に対するクレジットは、以下のように処理され得る。ステータス書込みまたはXwriteに対して、およびPersistent Writeに対して別個のCreditが維持されてもよく、ここにおいて、ホスト120は、どのようにクレジットのプールがメモリシステム130によって割り振られ得るかを決定してもよい。Incremental Credit ReturnがRead Metadataによって提供されてもよく、ここにおいて、XwriteまたはPersistent Writeクレジットを返すための符号化方式が使用されてもよい。X-Read-Statusリターンは、クレジット割振りに基づいて、XwriteおよびPersistent Writeバッファスロットに利用可能であり得る。
たとえば、図2B〜図2Cを参照しながら説明する一実装形態では、メモリシステム130は、任意の順序でPersistent Write(本明細書ではPWRITEと呼ばれる)およびFlushを完了してもよい。メディアへの特定のPWRITEを持続するために、ホスト120は、Persist=1を有する所与のWGIDのためのPWRITEを発行するか、または、後にFlushタイプのいずれかが続くPersist=0を有するPWRITEを発行してもよい。メモリシステム130は、コマンド内にPersist=1を有する完了したPWRITEごとならびにあらゆる完了したFlushごとにW_PERを発行してもよい。複数のPWRITEが単一のWGIDとともにグループ化され、最後のPWRITEにおけるPersist=1のみがグループを終了させる場合、メモリシステム130は、PWRITEのグループ全体が完了したときのみ、W_PERを発行してもよい。
次に図2Bを参照しながら、通常の場合のW_PER処理について説明する。システム250が、ホスト120およびメモリシステム130とともに示されている。Write-CreditとフリーWGIDの両方が利用可能である場合、ホスト120は、252a、254aとして示される、1つまたは複数のPWRITEまたはFLUSHコマンドを発行してもよい。ホスト120は、発行されたPWRITEまたはFLUSHコマンド252a、254aを、Host-WGID-Pendingリスト(図示しないが、ホスト120内で維持され得る)において追跡してもよい。
対応して、メモリシステム130は、保留中のPWRITEまたはFLUSHコマンド252a、254aを受け入れ、DIMM-WGID-Pendingリスト(図示せず)において追跡してもよい。メモリシステム130は、保留中のPWRITEまたはFLUSHコマンド252a、254aを実行し、受信された各コマンドのそれぞれの完了後に、対応するW_PER254bおよび252bをホスト120にアサートしてもよい。(受信されたPWRITEまたはFLUSHコマンド252a、254aの逆の順序で示されていることに留意されたい)。
メモリシステム130は、完了した受信されたコマンドPWRITEまたはFLUSH252a、254aを、様々な更新260a、260b、260cなどが示されているWGID-Completedビットマップ260において収集してもよい。メモリシステム130はまた、完了したPWRITEまたはFLUSHコマンド252a、254aをDIMM-WGID-Pendingリストから削除してもよい。
ホスト120は、たとえば、W_PER254b、252bを受信するための、W_PER-Countと呼ばれる、受信されたW_PERイベントのカウントを維持してもよい。同時に、ホスト120は、受信されたW_PERイベントを以下のように処理してもよい。W_PER-Count>0の場合、ホスト120は、Send-W_PER Status256aとして示されるステータス要求を発行してもよい。Tsend時間と呼ばれる事前定義された時間の後に、メモリシステム130は、ホスト120へのWGID_Status256bとして示されるレスポンスにおいて、その時間インスタンス(この場合は260b)におけるWGID-Completedビットマップ260のスナップショットを送ってもよい。スナップショットは、ホスト120へのWGID_Status256b転送の開始までに発行されたW_PERの完了を含んでもよい。
いくつかの態様では、最低でも1つの完了がスナップショットにログされる。メモリシステム130は、ビット位置のリセットまたはクリア後のWGID-Completedビットマップ260bからWGID-Completedビットマップ260cへの遷移によって示される、WGID_Status256bにおいて送られた完了に基づいて、WGID-Completedビットマップ260内のビット位置をクリアする。
ホスト120は、WGID_Status256bを受信し、完了したWGIDに関する情報を抽出することができる。対応して、ホスト120は、完了したWGIDをHost-WGID-Pendingリストから解放し、WGID-Completedビットマップ260において受信された完了の数だけW_PER-Countをデクリメント(たとえば、WGID-Completedビットマップ260bによって示されるような受信された2つのW_PERに基づいて、2のカウントをデクリメント)してもよい。ホスト120は、W_PER-Countを監視し、W_PER-Count>0の場合、別のステータス要求Send-W_PER Status256aをメモリシステム130に発行することから始めて、上記のプロセスを繰り返してもよい。
例示的な実装形態では、ホスト120およびメモリシステム130は、W_PERイベント処理が進行中である間、新しいPWRITEの発行および実行を継続してもよい。例示的な実装形態に関して、W_PER-Count、およびHost-WGID-Pendingリスト、DIMM-WGID-Pendingリストなどの保留中のリストについて説明してきたが、本開示の範囲から逸脱することなく、上記で説明した機能を実現するための代替構造が使用されてもよい。
次に図2Cを参照すると、メモリシステム130からの(上記の図2Bで説明した)WGID_Status256bにおいて送られた完了の損失をもたらす、ホスト120からのSEND-W_PER-Statusの後のチャネルUncorrectable Error(UE)を処理するためのシステム270が示されている。さらに、メモリシステム130が図2BのWGID-Completedビットマップ260から以前の完了をクリアした場合があることに留意されたい。
したがって、システム270におけるそのようなエラーから復旧するためのプロトコルにおいて、ホスト120は、新しいPWRITEまたはFLUSHコマンドの発行を停止することによって(たとえば、PWRITE-3またはFLUSH-3 272aは発行されず、エラーが発生しなければ発行したであろうタイムラインを示すために破線で示されている)、復旧プロセスを開始してもよく、一方、メモリシステム130は、完了した読取りまたはPWRITEもしくはFLUSHコマンドのためのRD_RDYおよび/またはW_PERイベントの発行を継続してもよい(たとえば、W_PER254bは発行されることが示されているが、W_PER252bはエラー復旧の後まで発行されない)。ホスト120はまた、SENDの発行およびW_PER-Countの更新を継続してもよい。
最後のPWRITEの後の、TWE_Delayと呼ばれる、書込みイネーブル信号のための事前に指定された最小時間遅延の後に、ホスト120は、XREAD-STATUS274aをメモリシステム130に発行し、メモリシステム130は、WGID-Pendingビットマップ280のスナップショットを有する完全なStatusパケットを準備してもよく、WGID-Pendingビットマップ280は、上記で説明したWGID-Completedビットマップ260に加えて提供される別のビットマップであり、ここにおいて、WGID-Pendingビットマップ280は、すべてのPending PWRITE/FLUSHのステータスを含む。メモリシステム130はRD_RDY276bをアサートしてもよく、ホスト120は、それに応答して、SEND278aを発行してもよい。
次いで、メモリシステム130は、準備されたStatusパケット278bを返してもよく、Statusパケット278bから、ホスト120は、Statusパケット278bにおいて受信されたWGID-Pendingビットマップ280を抽出し、処理してもよい。ホスト120は、そのHost-WGID-Pending追跡リストから適切なWGIDを解放し、解放されたWGIDの数だけW_PER-Countをデクリメントしてもよい。次いで、ホスト120は、新しいPWRITE/FLUSHコマンドを発行することから始めてプロセスを繰り返し、以前のページのとおりに現時点で保留中のW_PERを処理してもよい。
いくつかの態様では、Statusパケット278bは、それがWGID-Completedビットマップ260を有するかまたはWGID-Pendingビットマップ280を有するかを示すように構成される。W_PERレスポンスステータスパケットはWGID-Completedビットマップ260を含むが、すべての他のステータスパケットはWGID-Pendingビットマップ280を含む。TWE_Delay時間は、ホスト120から発行された最後のPWRITEについてメモリシステム130からエラー通知を得る時間を考慮するように構成され、ホスト120から発行されたXREAD-STATUS274aの前のUE検出からの待ち時間は、いつ最後のPWRITEが発行されたかに応じて変化することがある。
図3を参照すると、たとえば、メモリシステム130のDDR5実装形態について、Persistent Writeのための例示的な符号化が示されている。CA1フィールドは、典型的には、DDR5技術における1UIコマンドと2UIコマンドを差別化するために使用されており、NVDIMM-P実装形態のために保持されてもよい。CA114は、いくつかの実装形態では、7つのピンのみを有するDDR5用のDDR速度で構成されてもよく、そのような場合、別個のコマンド符号化は、たとえば、図3に示すように、Persistent Writeに使用されてもよい。
図3において、Persistビット=1の場合、これは、メモリシステム130がそれぞれのWIDに関連付けられたすべてのPersistent Writeを不揮発性メモリにプッシュすべきであることを示す。グループ内に単一の64B Persistent Writeがある場合、Persistビットは1に設定されてもよい。64Bよりも大きいPersistent Writeの場合、すべてのPersistent Writeは同じWIDを有してもよく、最後のPersistent WriteはそのPersistビットを1に設定するが、残りのPersistent WriteはそれらのPersistビットを0に設定する。
前のセクションで紹介したような上記のトランザクションに加えて、FLUSHコマンドと呼ばれる、Persistent Writeに関連する別のコマンドが使用されることもある。FLUSHコマンドは、(たとえば、非永続または揮発性メモリに)バッファされたすべての以前の書込みが永続メモリにプッシュされるべきであることをメモリシステム130に示すように構成されるが、FLUSHコマンドを使用するとき、将来の書込みが同様に影響を受けるかまたは永続メモリにプッシュされることがない場合があることに留意されたい。
FLUSHの実行が完了したとき、メモリシステム130は、上記で説明したPersistent Writeの場合と同様に、たとえば、レスポンス116上でホスト120に、Wr_Perをもう一度アサートしてもよい。
さらに、ホスト120はまた、FLUSHコマンドの場合に、(Persistent Writeと同様の)コマンドSend-Status for WIDsをメモリシステム130に提供してもよく、これに対して、メモリシステム130は、FLUSH実行の完了を示すために、一意の予約済みWIDを有するWID Status Packetで応答してもよい(たとえば、すべてのビットが1に設定されたWIDは、FLUSH実行の完了を示すために使用される、そのような予約済みWIDであってもよい)。
一実装形態では、ホスト120からの1つの未処理のFLUSHコマンドのみが許可されることがある。したがって、この実装形態では、ホスト120は、別のFLUSHコマンドを送る前に、メモリシステム130からのFLUSH完了レスポンスを待たなければならないことがある。代替実装形態では、FLUSHコマンドは、(たとえば、予約済みWIDフィールドから選択された)対応するFLUSH IDを伴うことがあり、対応するResponse to Send-Statusは、FLUSH実行が完了したFLUSH IDを返すことをメモリシステム130に行わせてもよい。
態様は、本明細書で開示するプロセス、機能および/またはアルゴリズムを実行するための様々な方法を含むことが諒解されよう。たとえば、図4Aは、永続動作を実行する例示的な方法400を示す。
ブロック402は、メモリシステム(たとえば、メモリシステム130)において、ホスト(たとえば、ホスト120)からPersistent Writeコマンド(たとえば、Persistent Write202a)および関連する書込みデータ(たとえば、データ202b)を受信することを含む。
ブロック404は、Persistent Writeコマンドに基づいて、メモリシステム内の不揮発性メモリへの(たとえば、メモリシステム130内の不揮発性メモリへの)書込みデータのPersistent Writeを実行することを含む。ホストからPersistent Writeコマンドに関連付けられた書込み識別情報(WID)が受信されてもよく、Persistent Writeの完了が成功すると、Persistent Write完了指示(Wr_Per)が関連するWID(たとえば、Wr_Per202c)とともにホストに提供されてもよい。
同様に、図4Bは、永続動作を実行する別の例示的な方法450を示す。
ブロック452は、ホスト(たとえば、ホスト120)からメモリシステム(たとえば、メモリシステム130)にPersistent Writeコマンド(たとえば、Persistent Write202a)および関連する書込みデータ(たとえば、データ202b)を提供することを含み、ここにおいて、Persistent Writeコマンドは、不揮発性メモリへの書込みデータのPersistent Writeを実行することをメモリシステムに示す。
ブロック454は、ホストからメモリシステムにPersistent Writeコマンドに関連付けられた書込み識別情報(WID)(たとえば、WID210)を提供することを含む。
次に、本開示の態様が利用され得る例示的な装置について、図5に関して説明する。図5は、コンピューティングデバイス500のブロック図を示す。コンピューティングデバイス500は、図1の処理システム100の例示的な実装形態に対応することができ、ここにおいて、プロセッサ120'は、ホスト120の処理要素のうちの1つであり得る。プロセッサ120'は、配線110を通じてメモリシステム130に結合されることが例示的に示されており、明快にするために、配線110のさらなる詳細はこの図から省略されている。プロセッサ120'、配線110、およびメモリシステム130は、上記で説明したように方法400〜450を実行するように構成され得る。図示されていないが、1つまたは複数のレベルのキャッシュを関与させるなどの、当技術分野で知られている他のメモリ構成がコンピューティングデバイス500内に存在し得ることが理解されよう。
図5は、プロセッサ120'とディスプレイ528とに結合されたディスプレイコントローラ526も示す。場合によっては、コンピューティングデバイス500はワイヤレス通信に使用されてもよく、図5は、プロセッサ120'に結合されたコーダ/デコーダ(コーデック)534(たとえば、オーディオおよび/またはボイスコーデック)、コーデック534に結合されたスピーカー536およびマイクロフォン538、プロセッサ120'に結合されたワイヤレスコントローラ540に結合されたワイヤレスアンテナ542などの任意選択のブロックも破線で示している。これらの任意選択のブロックのうちの1つまたは複数が存在する場合、特定の態様では、プロセッサ120'、ディスプレイコントローラ526、メモリシステム130、およびワイヤレスコントローラ540は、システムインパッケージまたはシステムオンチップデバイス522に含まれる。
したがって、特定の態様では、入力デバイス530および電源544は、システムオンチップデバイス522に結合される。さらに、特定の態様では、図5に示すように、1つまたは複数の任意選択のブロックが存在する場合、ディスプレイ528、入力デバイス530、スピーカー536、マイクロフォン538、ワイヤレスアンテナ542、および電源544は、システムオンチップデバイス522の外部にある。しかしながら、ディスプレイ528、入力デバイス530、スピーカー536、マイクロフォン538、ワイヤレスアンテナ542、および電源544の各々は、インターフェースまたはコントローラなどの、システムオンチップデバイス522の構成要素に結合され得る。
図5はコンピューティングデバイスを概略的に示しているが、プロセッサ120'およびメモリシステム130は、セットトップボックス、サーバ、音楽プレーヤ、ビデオプレーヤ、エンターテイメントユニット、ナビゲーションデバイス、携帯情報端末(PDA)、固定ロケーションデータユニット、コンピュータ、ラップトップ、タブレット、通信デバイス、モバイルフォン、または他の同様のデバイスに統合される場合もあることに留意されたい。
当業者は、情報および信号が、様々な異なる技術および技法のうちのいずれかを使用して表され得ることを諒解されよう。たとえば、上記の説明全体にわたって参照される場合があるデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表され得る。
さらに、当業者は、本明細書で開示する態様に関して説明する様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップが、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得ることを諒解されよう。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップについて、上記では概してそれらの機能に関して説明した。そのような機能がハードウェアとして実装されるかまたはソフトウェアとして実装されるかは、特定の適用例および全体的なシステムに課された設計制約に依存する。当業者は、説明した機能を様々な方法で特定の適用例ごとに実装し得るが、そのような実装の決定は、本発明の範囲からの逸脱を引き起こすものと解釈されるべきではない。
本明細書で開示する態様に関して説明する方法、シーケンスおよび/またはアルゴリズムは、直接ハードウェアにおいて、プロセッサによって実行されるソフトウェアモジュールにおいて、またはその2つの組合せにおいて具現化されてもよい。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野で知られている任意の他の形態の記憶媒体内に存在してもよい。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体は、プロセッサと一体であってもよい。
したがって、本発明の一態様は、Persistent Writeを実行する方法を具現化するコンピュータ可読媒体を含むことができる。したがって、本発明は図示の例に限定されず、本明細書で説明する機能を実行するためのいかなる手段も本発明の態様に含まれる。
上記の本開示は本発明の例示的な態様を示すが、添付の特許請求の範囲によって規定されるような本発明の範囲から逸脱することなく、本明細書において様々な変更および修正が行われ得ることに留意されたい。本明細書で説明する本発明の態様による方法クレームの機能、ステップおよび/またはアクションは、任意の特定の順序で実行される必要はない。さらに、本発明の要素は、単数形で説明または特許請求される場合があるが、単数形への限定が明示的に述べられていない限り、複数形が企図される。
100 処理システム
110 配線
112 データバス(DQ)、DQ
114 コマンド/アドレスバス(CA)、CA
116 レスポンス
120 ホスト
120' プロセッサ
130 メモリシステム
132 入力/出力(I/O)ブロック、I/O
134 メモリバンク
202a Persistent Write
202b 書込みデータ、データ
202c Wr_Per
204a Persistent Write
204b 書込みデータ
204c Wr_Per
206a 「Send-Status for WID」コマンド
206b WIDステータスパケット
210 WID
250 システム
252a PWRITEまたはFLUSHコマンド
252b W_PER
254a PWRITEまたはFLUSHコマンド
254b W_PER
256a Send-W_PER Status
256b WGID_Status
260 WGID-Completedビットマップ
260a 更新
260b 更新、WGID-Completedビットマップ
260c 更新、WGID-Completedビットマップ
270 システム
272a PWRITE-3またはFLUSH-3
274a XREAD-STATUS
276b RD_RDY
278a SEND
278b Statusパケット
280 WGID-Pendingビットマップ
400 方法
450 方法
500 コンピューティングデバイス
522 システムインパッケージまたはシステムオンチップデバイス、システムオンチップデバイス
526 ディスプレイコントローラ
528 ディスプレイ
530 入力デバイス
534 コーダ/デコーダ(コーデック)、コーデック
536 スピーカー
538 マイクロフォン
540 ワイヤレスコントローラ
542 ワイヤレスアンテナ
544 電源

Claims (52)

  1. 永続動作を実行する方法であって、
    メモリシステムにおいて、ホストからPersistent Writeコマンドおよび関連する書込みデータを受信するステップと、
    前記Persistent Writeコマンドに基づいて、前記メモリシステム内の不揮発性メモリへの前記書込みデータのPersistent Writeを実行するステップと
    を含む方法。
  2. 前記ホストから前記Persistent Writeコマンドに関連付けられた書込み識別情報(WID)を受信するステップをさらに含む、請求項1に記載の方法。
  3. 前記Persistent Writeの完了が成功すると、前記メモリシステムから、Persistent Write完了指示を前記関連するWIDとともに前記ホストに提供するステップをさらに含む、請求項2に記載の方法。
  4. 2つ以上のPersistent Write完了指示を、対応する2つ以上のPersistent Writeコマンドが前記ホストから受信された順序とは異なる順序で前記ホストに提供するステップを含む、請求項3に記載の方法。
  5. 前記ホストから1つまたは複数のPersistent Writeのための送信要求ステータスを関連するWIDとともに受信するステップをさらに含む、請求項3に記載の方法。
  6. ステータスパケットを前記ホストに提供するステップをさらに含み、
    前記ステータスパケットが、実行が完了したPersistent WriteコマンドのためのWIDを含む、請求項5に記載の方法。
  7. 前記WIDが、Persistent Writeおよび有効ビットのマルチビット識別情報を含む、請求項2に記載の方法。
  8. 共通のWIDを有する2つ以上のPersistent Writeコマンドのグループを受信するステップであって、
    前記グループの最後のPersistent WriteコマンドがPersistビットを1に設定し、
    残りのPersistent WriteコマンドがそれぞれのPersistビットを0に設定する、ステップと、
    前記最後のPersistent WriteコマンドのためのPersistent Write完了指示を提供するステップと
    をさらに含む、請求項2に記載の方法。
  9. 前記ホストからFLUSHコマンドを受信するステップをさらに含み、
    前記FLUSHコマンドが、揮発性媒体にバッファされたすべての以前の書込みが不揮発性または永続メモリにプッシュされるべきであることを示す、請求項1に記載の方法。
  10. 前記FLUSHコマンドの実行の完了時にFLUSH完了指示を前記ホストに提供するステップをさらに含む、請求項9に記載の方法。
  11. 1つまたは複数のPersistent Writeコマンドを受信するステップと、
    完了した前記1つまたは複数のPersistent Writeコマンドのステータスを完了ビットマップにおいて維持し、保留中の前記1つまたは複数のPersistent Writeコマンドのステータスを保留中ビットマップにおいて維持するステップと、
    前記ホストからのステータスの要求時に、訂正不可能なエラーがない場合は前記完了ビットマップを提供するか、または訂正不可能なエラーがある場合は前記保留中ビットマップを提供するステップと
    をさらに含む、請求項1に記載の方法。
  12. 前記メモリシステムが、Persistent Write(NVDIMM-P)をサポートするように構成された不揮発性デュアルインラインメモリモジュールである、請求項1に記載の方法。
  13. 永続動作を実行する方法であって、
    ホストからメモリシステムにPersistent Writeコマンドおよび関連する書込みデータを提供するステップを含み、
    前記Persistent Writeコマンドが、不揮発性メモリへの前記書込みデータのPersistent Writeを実行することを前記メモリシステムに示す、
    方法。
  14. 前記ホストから前記メモリシステムに前記Persistent Writeコマンドに関連付けられた書込み識別情報(WID)を提供するステップをさらに含む、請求項13に記載の方法。
  15. 前記ホストにおいて、前記Persistent Writeの完了が成功すると、前記メモリシステムからPersistent Write完了指示を前記関連するWIDとともに受信するステップをさらに含む、請求項14に記載の方法。
  16. 前記メモリシステムから、2つ以上のPersistent Write完了指示を、対応する2つ以上のPersistent Writeコマンドが前記ホストから前記メモリシステムに送られた順序とは異なる順序で受信するステップを含む、請求項15に記載の方法。
  17. 前記ホストから前記メモリシステムに、1つまたは複数のPersistent Writeのための送信要求ステータスを関連するWIDとともに送るステップをさらに含む、請求項14に記載の方法。
  18. 前記メモリシステムから前記ホストによってステータスパケットを受信するステップをさらに含み、
    前記ステータスパケットが、実行が完了したPersistent WriteコマンドのためのWIDを含む、請求項17に記載の方法。
  19. 前記WIDが、Persistent Writeおよび有効ビットのマルチビット識別情報を含む、請求項14に記載の方法。
  20. 前記ホストから前記メモリシステムに、共通のWIDを有する2つ以上のPersistent Writeコマンドのグループを送るステップであって、
    前記グループの最後のPersistent WriteコマンドがPersistビットを1に設定し、
    残りのPersistent WriteコマンドがそれぞれのPersistビットを0に設定する、ステップと、
    前記メモリシステムから前記最後のPersistent WriteコマンドのためのPersistent Write完了指示を受信するステップと
    をさらに含む、請求項14に記載の方法。
  21. 前記ホストから前記メモリシステムにFLUSHコマンドを送るステップをさらに含み、
    前記FLUSHコマンドが、揮発性媒体にバッファされたすべての以前の書込みが前記メモリシステムによって不揮発性または永続メモリにプッシュされるべきであることを示す、請求項13に記載の方法。
  22. 前記ホストにおいて、前記メモリシステムによる前記FLUSHコマンドの実行の完了時にFLUSH完了指示を受信するステップをさらに含む、請求項21に記載の方法。
  23. 前記メモリシステムが、Persistent Write(NVDIMM-P)をサポートするように構成された不揮発性デュアルインラインメモリモジュールである、請求項13に記載の方法。
  24. 装置であって、
    メモリシステムを備え、前記メモリシステムが、
    ホストからPersistent Writeコマンドおよび関連する書込みデータを受信し、
    前記Persistent Writeコマンドに基づいて、前記メモリシステム内の不揮発性メモリへの前記書込みデータのPersistent Writeを実行する
    ように構成される、装置。
  25. 前記メモリシステムが、前記ホストから前記Persistent Writeコマンドに関連付けられた書込み識別情報(WID)を受信するようにさらに構成される、請求項24に記載の装置。
  26. 前記メモリシステムが、前記Persistent Writeの完了が成功すると、Persistent Write完了指示を前記関連するWIDとともに前記ホストに提供するようにさらに構成される、請求項25に記載の装置。
  27. 前記メモリシステムが、2つ以上のPersistent Write完了指示を、対応する2つ以上のPersistent Writeコマンドが前記ホストから受信された順序とは異なる順序で前記ホストに提供するようにさらに構成される、請求項26に記載の装置。
  28. 前記メモリシステムが、前記ホストから1つまたは複数のPersistent Writeのための送信要求ステータスを関連するWIDとともに受信するようにさらに構成される、請求項26に記載の装置。
  29. 前記メモリシステムが、ステータスパケットを前記ホストに提供するようにさらに構成され、
    前記ステータスパケットが、実行が完了したPersistent WriteコマンドのためのWIDを含む、請求項27に記載の装置。
  30. 前記WIDが、Persistent Writeおよび有効ビットのマルチビット識別情報を含む、請求項25に記載の装置。
  31. 前記メモリシステムが、
    共通のWIDを有する2つ以上のPersistent Writeコマンドのグループを受信することであって、
    前記グループの最後のPersistent WriteコマンドがPersistビットを1に設定し、
    残りのPersistent WriteコマンドがそれぞれのPersistビットを0に設定する、受信することと、
    前記最後のPersistent WriteコマンドのためのPersistent Write完了指示を提供することと
    を行うようにさらに構成される、請求項25に記載の装置。
  32. 前記メモリシステムが、前記ホストからFLUSHコマンドを受信するようにさらに構成され、
    前記FLUSHコマンドが、揮発性媒体にバッファされたすべての以前の書込みが不揮発性または永続メモリにプッシュされるべきであることを示す、請求項24に記載の装置。
  33. 前記メモリシステムが、前記FLUSHコマンドの実行の完了時にFLUSH完了指示を前記ホストに提供するようにさらに構成される、請求項32に記載の装置。
  34. 前記メモリシステムが、
    1つまたは複数のPersistent Writeコマンドを受信することと、
    完了した前記1つまたは複数のPersistent Writeコマンドのステータスを完了ビットマップにおいて維持し、保留中の前記1つまたは複数のPersistent Writeコマンドのステータスを保留中ビットマップにおいて維持することと、
    前記ホストからのステータスの要求時に、訂正不可能なエラーがない場合は前記完了ビットマップを提供するか、または訂正不可能なエラーがある場合は前記保留中ビットマップを提供することと
    を行うようにさらに構成される、請求項24に記載の装置。
  35. 前記メモリシステムが、Persistent Write(NVDIMM-P)をサポートするように構成された不揮発性デュアルインラインメモリモジュールである、請求項24に記載の装置。
  36. セットトップボックス、サーバ、音楽プレーヤ、ビデオプレーヤ、エンターテイメントユニット、ナビゲーションデバイス、携帯情報端末(PDA)、固定ロケーションデータユニット、コンピュータ、ラップトップ、タブレット、通信デバイス、およびモバイルフォンからなるグループから選択されるデバイスに統合される、請求項24に記載の装置。
  37. 装置であって、
    Persistent Writeコマンドおよび関連する書込みデータをメモリシステムに提供するように構成されたホストを備え、
    前記Persistent Writeコマンドが、不揮発性メモリへの前記書込みデータのPersistent Writeを実行することを前記メモリシステムに示す、
    装置。
  38. 前記ホストが、前記Persistent Writeコマンドに関連付けられた書込み識別情報(WID)を前記メモリシステムに提供するようにさらに構成される、請求項37に記載の装置。
  39. 前記ホストが、前記Persistent Writeの完了が成功すると、前記メモリシステムからPersistent Write完了指示を前記関連するWIDとともに受信するようにさらに構成される、請求項38に記載の装置。
  40. 前記ホストが、前記メモリシステムから、2つ以上のPersistent Write完了指示を、対応する2つ以上のPersistent Writeコマンドが前記メモリシステムに送られた順序とは異なる順序で受信するようにさらに構成される、請求項39に記載の装置。
  41. 前記ホストが、1つまたは複数のPersistent Writeのための送信要求ステータスを関連するWIDとともに前記メモリシステムに送るようにさらに構成される、請求項38に記載の装置。
  42. 前記ホストが、前記メモリシステムからステータスパケットを受信するようにさらに構成され、
    前記ステータスパケットが、実行が完了したPersistent WriteコマンドのためのWIDを含む、請求項41に記載の装置。
  43. 前記WIDが、Persistent Writeおよび有効ビットのマルチビット識別情報を含む、請求項42に記載の装置。
  44. 前記ホストが、
    共通のWIDを有する2つ以上のPersistent Writeコマンドのグループを前記メモリシステムに送ることであって、
    前記グループの最後のPersistent WriteコマンドがPersistビットを1に設定し、
    残りのPersistent WriteコマンドがそれぞれのPersistビットを0に設定する、送ることと、
    前記メモリシステムから前記最後のPersistent WriteコマンドのためのPersistent Write完了指示を受信することと
    を行うようにさらに構成される、請求項38に記載の装置。
  45. 前記ホストが、FLUSHコマンドを前記メモリシステムに送るようにさらに構成され、
    前記FLUSHコマンドが、揮発性媒体にバッファされたすべての以前の書込みが前記メモリシステムによって不揮発性または永続メモリにプッシュされるべきであることを示す、請求項37に記載の装置。
  46. 前記ホストが、前記メモリシステムによる前記FLUSHコマンドの実行の完了時にFLUSH完了指示を受信するようにさらに構成される、請求項45に記載の装置。
  47. 前記メモリシステムが、Persistent Write(NVDIMM-P)をサポートするように構成された不揮発性デュアルインラインメモリモジュールである、請求項37に記載の装置。
  48. セットトップボックス、サーバ、音楽プレーヤ、ビデオプレーヤ、エンターテイメントユニット、ナビゲーションデバイス、携帯情報端末(PDA)、固定ロケーションデータユニット、コンピュータ、ラップトップ、タブレット、通信デバイス、およびモバイルフォンからなるグループから選択されるデバイスに統合される、請求項37に記載の装置。
  49. 装置であって、
    データを記憶するための手段を備え、前記記憶するための手段が、
    ホストからPersistent Writeコマンドおよび関連する書込みデータを受信するための手段と、
    前記Persistent Writeコマンドに基づいて、前記記憶するための手段内の不揮発性メモリへの前記書込みデータのPersistent Writeを実行するための手段と
    を備える、装置。
  50. 装置であって、
    処理するための手段を備え、前記処理するための手段が、
    Persistent Writeコマンドおよび関連する書込みデータをメモリシステムに提供するための手段を備え、
    前記Persistent Writeコマンドが、不揮発性メモリへの前記書込みデータのPersistent Writeを実行することを前記メモリシステムに示す、
    装置。
  51. プロセッサによって実行されると、前記プロセッサに永続動作を実行させるコードを記憶した非一時的コンピュータ可読記憶媒体であって、
    メモリシステムにおいて、ホストからPersistent Writeコマンドおよび関連する書込みデータを受信するためのコードと、
    前記Persistent Writeコマンドに基づいて、前記メモリシステム内の不揮発性メモリへの前記書込みデータのPersistent Writeを実行するためのコードと
    を記憶した、非一時的コンピュータ可読記憶媒体。
  52. プロセッサによって実行されると、前記プロセッサに永続動作を実行させるコードを記憶した非一時的コンピュータ可読記憶媒体であって、
    ホストからメモリシステムにPersistent Writeコマンドおよび関連する書込みデータを提供するためのコードを記憶し、
    前記Persistent Writeコマンドが、不揮発性メモリへの前記書込みデータのPersistent Writeを実行することを前記メモリシステムに示す、
    非一時的コンピュータ可読記憶媒体。
JP2020514756A 2017-09-15 2018-08-14 不揮発性メモリのためのPersistent Write Active JP7123129B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/706,530 US11194524B2 (en) 2017-09-15 2017-09-15 Apparatus and method for performing persistent write operations using a persistent write command
US15/706,530 2017-09-15
PCT/US2018/046590 WO2019055164A1 (en) 2017-09-15 2018-08-14 PERSISTENT SCRIPTURES FOR NON-VOLATILE MEMORY

Publications (4)

Publication Number Publication Date
JP2020534598A true JP2020534598A (ja) 2020-11-26
JP2020534598A5 JP2020534598A5 (ja) 2021-09-02
JPWO2019055164A5 JPWO2019055164A5 (ja) 2022-03-11
JP7123129B2 JP7123129B2 (ja) 2022-08-22

Family

ID=63449690

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020514756A Active JP7123129B2 (ja) 2017-09-15 2018-08-14 不揮発性メモリのためのPersistent Write

Country Status (22)

Country Link
US (2) US11194524B2 (ja)
EP (1) EP3682331B1 (ja)
JP (1) JP7123129B2 (ja)
KR (1) KR102425287B1 (ja)
CN (1) CN111095224B (ja)
AU (1) AU2018334452B2 (ja)
BR (1) BR112020004936A2 (ja)
CA (1) CA3073686C (ja)
CL (1) CL2020000647A1 (ja)
CO (1) CO2020002863A2 (ja)
DK (1) DK3682331T3 (ja)
FI (1) FI3682331T3 (ja)
IL (1) IL272795B (ja)
MX (1) MX2020002897A (ja)
NZ (1) NZ761924A (ja)
PH (1) PH12020500384A1 (ja)
PT (1) PT3682331T (ja)
SA (1) SA520411521B1 (ja)
SG (1) SG11202001491YA (ja)
SI (1) SI3682331T1 (ja)
TW (1) TWI779082B (ja)
WO (1) WO2019055164A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10534540B2 (en) * 2016-06-06 2020-01-14 Micron Technology, Inc. Memory protocol
US11194524B2 (en) 2017-09-15 2021-12-07 Qualcomm Incorporated Apparatus and method for performing persistent write operations using a persistent write command
US10996888B2 (en) * 2017-10-31 2021-05-04 Qualcomm Incorporated Write credits management for non-volatile memory
KR102426107B1 (ko) * 2017-12-20 2022-07-28 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
KR20190088790A (ko) * 2018-01-19 2019-07-29 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
US11048645B2 (en) * 2018-02-01 2021-06-29 Samsung Electronics Co., Ltd. Memory module, operation method therof, and operation method of host
US11709774B2 (en) * 2019-08-07 2023-07-25 Intel Corporation Data consistency and durability over distributed persistent memory systems
US11656967B2 (en) * 2020-02-13 2023-05-23 MemRay Corporation Method and apparatus for supporting persistence and computing device
US11886744B2 (en) * 2021-12-15 2024-01-30 Nvidia Corporation Systems, methods, and apparatuses for making writes to persistent memory

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140136786A1 (en) * 2012-11-13 2014-05-15 International Business Machines Corporation Asynchronous persistent stores for transactions
US20170147207A1 (en) * 2015-11-20 2017-05-25 Arm Ltd. Non-volatile buffer for memory operations
JP2018190412A (ja) * 2017-05-09 2018-11-29 三星電子株式会社Samsung Electronics Co.,Ltd. ハイブリッドメモリにおける書き込み及びフラッシュ支援のためのメモリモジュール及びその動作方法

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AP2001002117A0 (en) 1998-10-02 2001-06-30 Worldspace Man Corp System for providing a user with active and passive access to cached content.
US7139885B2 (en) 2001-12-27 2006-11-21 Hitachi, Ltd. Method and apparatus for managing storage based replication
US7139864B2 (en) 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
US8250329B2 (en) * 2007-10-24 2012-08-21 International Business Machines Corporation Preemptive write-inhibition for thin provisioning storage subsystem
US7930361B2 (en) 2008-09-15 2011-04-19 Dell Products L.P. System and method for management of remotely shared data
US8700842B2 (en) * 2010-04-12 2014-04-15 Sandisk Enterprise Ip Llc Minimizing write operations to a flash memory-based object store
WO2012020544A1 (ja) * 2010-08-11 2012-02-16 日本電気株式会社 データ処理システム、データ処理方法、およびプログラム
US10817421B2 (en) * 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent data structures
US8656130B2 (en) * 2011-12-23 2014-02-18 International Business Machines Corporation Low latency and persistent data storage
US9122810B2 (en) * 2012-05-18 2015-09-01 Dell Products, Lp System and method for providing input/output functionality to a processing node
US9501398B2 (en) * 2012-12-26 2016-11-22 Sandisk Technologies Llc Persistent storage device with NVRAM for staging writes
WO2014142908A1 (en) 2013-03-14 2014-09-18 Hewlett-Packard Development Company, L.P. Multiversioned nonvolatile memory hierarchy for persistent memory
US9417974B2 (en) * 2013-03-28 2016-08-16 Microsoft Technology Licensing, Llc. Transaction processing for database in persistent system
JP6192192B2 (ja) 2013-07-26 2017-09-06 インテル・コーポレーション 不揮発性メモリインターフェース
US9389976B2 (en) 2014-04-09 2016-07-12 Intel Corporation Distributed persistent memory using asynchronous streaming of log records
US10061719B2 (en) * 2014-12-25 2018-08-28 Intel Corporation Packed write completions
US9886194B2 (en) * 2015-07-13 2018-02-06 Samsung Electronics Co., Ltd. NVDIMM adaptive access mode and smart partition mechanism
US9946492B2 (en) * 2015-10-30 2018-04-17 Arm Limited Controlling persistent writes to non-volatile memory based on persist buffer data and a persist barrier within a sequence of program instructions
US10691553B2 (en) 2015-12-16 2020-06-23 Netapp, Inc. Persistent memory based distributed-journal file system
US10970175B2 (en) * 2016-06-15 2021-04-06 Sap Se Flexible per-request data durability in databases and other data stores
US10127074B2 (en) * 2017-01-27 2018-11-13 Futurewei Technologies, Inc. Transaction identification synchronization
EP3663901B1 (en) * 2017-08-31 2022-12-28 Huawei Technologies Co., Ltd. Information writing method and device
US11194524B2 (en) 2017-09-15 2021-12-07 Qualcomm Incorporated Apparatus and method for performing persistent write operations using a persistent write command
US11016669B2 (en) * 2018-05-01 2021-05-25 Qualcomm Incorporated Persistent write data for energy-backed memory

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140136786A1 (en) * 2012-11-13 2014-05-15 International Business Machines Corporation Asynchronous persistent stores for transactions
US20170147207A1 (en) * 2015-11-20 2017-05-25 Arm Ltd. Non-volatile buffer for memory operations
JP2018190412A (ja) * 2017-05-09 2018-11-29 三星電子株式会社Samsung Electronics Co.,Ltd. ハイブリッドメモリにおける書き込み及びフラッシュ支援のためのメモリモジュール及びその動作方法

Also Published As

Publication number Publication date
CA3073686C (en) 2023-10-03
RU2020110130A (ru) 2021-10-15
SI3682331T1 (sl) 2024-03-29
IL272795A (en) 2020-04-30
SG11202001491YA (en) 2020-03-30
US20190087096A1 (en) 2019-03-21
US11650765B2 (en) 2023-05-16
DK3682331T3 (da) 2024-01-29
AU2018334452B2 (en) 2023-03-16
CA3073686A1 (en) 2019-03-21
CL2020000647A1 (es) 2020-08-28
RU2020110130A3 (ja) 2022-03-29
AU2018334452A1 (en) 2020-03-19
PT3682331T (pt) 2024-01-26
US20220050600A1 (en) 2022-02-17
EP3682331B1 (en) 2023-12-27
KR20200051624A (ko) 2020-05-13
NZ761924A (en) 2022-05-27
US11194524B2 (en) 2021-12-07
CN111095224A (zh) 2020-05-01
MX2020002897A (es) 2020-07-22
BR112020004936A2 (pt) 2020-09-15
JP7123129B2 (ja) 2022-08-22
TW201933106A (zh) 2019-08-16
TWI779082B (zh) 2022-10-01
EP3682331A1 (en) 2020-07-22
PH12020500384A1 (en) 2020-12-07
WO2019055164A1 (en) 2019-03-21
FI3682331T3 (fi) 2024-01-25
SA520411521B1 (ar) 2022-08-02
IL272795B (en) 2022-08-01
CO2020002863A2 (es) 2020-04-13
CN111095224B (zh) 2023-11-14
KR102425287B1 (ko) 2022-07-25

Similar Documents

Publication Publication Date Title
JP7123129B2 (ja) 不揮発性メモリのためのPersistent Write
TWI769335B (zh) 用於非揮發性記憶體之寫入信用管理之方法、設備及非暫時性電腦可讀儲存媒體
CN106445724B (zh) 与受保护数据分开存储奇偶校验数据
US9389953B2 (en) Semiconductor memory device and system conducting parity check and operating method of semiconductor memory device
US9304691B2 (en) Memory system and bank interleaving method
CN107391397B (zh) 支持近存储器和远存储器访问的存储器通道
KR20180023804A (ko) 전기적으로 버퍼링된 nv-dimm 및 그에 사용하는 방법
US20190042413A1 (en) Method and apparatus to provide predictable read latency for a storage device
US10120600B2 (en) Persistent memory descriptor
TWI639086B (zh) 具有可中斷指令序列的記憶體及其操作方法
US20180150233A1 (en) Storage system
KR102366512B1 (ko) 논리 블록 어드레싱 범위 충돌 크롤러
US20170177487A1 (en) Deterministic operation of storage class memory
RU2780441C2 (ru) Постоянные записи для энергонезависимой памяти
US11397699B2 (en) Interrupt coalescing protection logic
US20230297277A1 (en) Combining Operations During Reset

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210721

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210721

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220302

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20220302

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220428

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220509

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220608

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220809

R150 Certificate of patent or registration of utility model

Ref document number: 7123129

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150