JP6983313B2 - 不揮発性メモリの書込みクレジットの管理 - Google Patents

不揮発性メモリの書込みクレジットの管理 Download PDF

Info

Publication number
JP6983313B2
JP6983313B2 JP2020522847A JP2020522847A JP6983313B2 JP 6983313 B2 JP6983313 B2 JP 6983313B2 JP 2020522847 A JP2020522847 A JP 2020522847A JP 2020522847 A JP2020522847 A JP 2020522847A JP 6983313 B2 JP6983313 B2 JP 6983313B2
Authority
JP
Japan
Prior art keywords
write
write buffer
memory system
buffer space
host device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020522847A
Other languages
English (en)
Other versions
JP2021503642A (ja
JP2021503642A5 (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 JP2021503642A publication Critical patent/JP2021503642A/ja
Publication of JP2021503642A5 publication Critical patent/JP2021503642A5/ja
Application granted granted Critical
Publication of JP6983313B2 publication Critical patent/JP6983313B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1694Configuration of memory controller to different memory types
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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
    • 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/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Description

本特許出願は、係属中であり、本出願の譲受人に譲渡され、その全体が参照により本明細書に明確に組み込まれる、2017年10月31日に出願された「WRITE CREDITS MANAGEMENT FOR NON-VOLATILE MEMORY」と題する仮特許出願第62/579,715号の利益を主張する。
開示された態様は、不揮発性メモリシステムの書込み動作の管理を対象とする。より詳細には、本開示の例示的な態様は、不揮発性デュアルインラインメモリモジュール(NVDIMM)および永続的NVDIMM(NVDIMM-P)などの不揮発性メモリを対象とする書込み動作のための書込みクレジットの使用および管理を対象とする。
いくつかのメモリシステムでは、書込み動作の永続性の期待があり、これは、たとえば、永続的な書込み動作の実行が進行中で完了していない間に、電力の損失またはシステムクラッシュがあった場合でも、メモリシステムに書き込まれ、永続的な書込みとして分類された情報が失われないことを意味する。書込み動作を永続的にするために、書込み動作を要求するホスト(たとえば、プロセッサ)またはそのアプリケーションは、書込み動作が永続メモリに到達したという明示的な確認を期待し得る。対照的に、(ダイナミックランダムアクセスメモリ(DRAM)または他の揮発性メモリなどの)非永続メモリへの書込み動作は、従来、アプリケーションの観点からすると、書込み動作および関連するデータがメモリに転送されると完了したまたはポストされたと見なされ、データが書き込まれたという明示的な確認は必要とされない。
当技術分野で知られている一連のDRAM集積回路を含む不揮発性デュアルインラインメモリモジュール(NVDIMM)などの不揮発性メモリ(NVM)は、永続的な書込みをサポートするように構成され得る。たとえば、永続的な書込みをサポートするための他の実装形態も知られているが、NVDIMMは、永続的な書込みをサポートする一実装形態でエネルギーがバックアップされ得る。永続的な書込みをサポートするNVDIMMは、NVDIMM-Pとしても知られている。ホストデバイスは、NVDIMM-PなどのNVMを含むメモリシステムへの永続的な書込みの要求を含む書込み要求を送信するように構成されてもよい。NVDIMM-Pの読取り/書込みアクセスを管理するように構成されたメディアコントローラは、メモリシステムに統合されてもよく、メディアコントローラは、ホストデバイスから書込み要求を受信し、書込み要求をサポートするために利用可能なリソースに基づいて、たとえば、メディアコントローラの利用可能な書込みバッファスペースに基づいて、書込み要求をNVDIMM-Pに向けるように構成されてもよい。
しかしながら、従来の実装形態では、メディアコントローラからNVM(たとえばNVDIMM-P)への書込みパフォーマンスが不十分であり、書込み動作の速度が遅くなる場合がある。これは、従来の実装形態では、メディアコントローラが書込み動作をNVMに後退させる、または転送すると、メディアコントローラが対応する書込みバッファスペースを解放し、今度は、解放された書込みバッファスペースが、ホストデバイスに戻されるように、書込みクレジットに変換されるからである。ホストデバイス上のメモリコントローラは、メモリシステムへの書込みトラフィックの量を制限して、書込みバッファスペースを超えないように、戻された書込みクレジットに基づいて、書込み動作を調整するように構成され得る。
しかしながら、メディアコントローラからホストデバイスに書込みクレジットを戻す際の訂正不可能な誤り(UE)などの誤りが発生する場合がある。メモリコントローラは、当技術分野で知られているように、誤り検査、たとえばパリティチェックを実行する、または誤り制御コーディング(ECC)などを使用することなどによって、そのような誤りを検出し得る。しかしながら、そのような誤りが検出されると、メモリコントローラは、従来の実装形態では、対応する戻される書込みクレジットにおいて誤りを招いた可能性のある書込み動作を単純に再試行できない場合がある。これは、メディアコントローラが戻される書込みクレジットの誤りを認識しておらず、そのため、メディアコントローラは、適切に後退されなかった書込み動作を考慮するために、その書込みバッファスペースを更新せず、ホストデバイスに報告された書込みクレジットとメディアコントローラにおける使用可能な書込みバッファスペースとの間に不一致が生じることになるからである。
したがって、たとえば、メディアコントローラからホストデバイスへの書込みクレジットの報告において誤りが生じる可能性があるシナリオで上記の問題を回避するために、ホストデバイスとメディアコントローラとの間の書込みクレジットの効率的な同期の必要性が認識されている。
本発明の例示的な態様は、不揮発性メモリ(NVM)を含むメモリシステムのメディアコントローラとホストデバイスとの間で書込みクレジットを同期させるためのシステムおよび方法を含む。ホストデバイスは、ホストデバイスのメモリコントローラに実装された書込みクレジット(WC)カウンタを維持するように構成されている。WCカウンタは、NVMに発行される可能性のある未解決の書込みコマンドの数を追跡し、制限する。ホストデバイスは、メディアコントローラ内の利用可能な書込みバッファスペースのステータスを取得し、メモリシステムから送信された読取りパケットのメタデータで報告された書込みバッファスペースにおいて検出された任意の誤りに基づいてWCカウンタを調整するよう、メモリシステムに問合せを行い得る。
たとえば、例示的な態様は、メモリシステムにアクセスする方法を対象とし、この方法は、メモリシステム内の書込みバッファの利用可能な書込みバッファスペースを反映するようにホストデバイス内の書込みクレジットカウンタを設定するステップと、ホストデバイスからメモリシステムに書込みコマンドを発行すると、書込みクレジットカウンタを減分するステップと、ホストデバイスにおいて、メモリシステムから書込みバッファ内の追加の利用可能な書込みバッファスペースの指示を受信すると、書込みクレジットカウンタを増分するステップとを含む。
別の例示的な態様は、書込みクレジットカウンタを含むホストデバイスを含む装置を対象とし、ホストデバイスは、書込みバッファを含むメモリシステムに結合される。ホストデバイスは、書込みバッファの利用可能な書込みバッファスペースを反映するように書込みクレジットカウンタを設定し、メモリシステムに書込みコマンドを発行すると、書込みクレジットカウンタを減分し、メモリシステムから書込みバッファ内の追加の利用可能な書込みバッファスペースの指示を受信すると、書込みクレジットカウンタを増分するように構成される。
別の例示的な態様は、プロセッサによって実行されると、メモリシステムにアクセスするための動作をプロセッサに実行させるコードを含む非一時的コンピュータ可読記憶媒体を対象とする。非一時的コンピュータ可読記憶媒体は、メモリシステム内の書込みバッファの利用可能な書込みバッファスペースを反映するようにホストデバイス内の書込みクレジットカウンタを設定するためのコードと、ホストデバイスからメモリシステムに書込みコマンドを発行すると、書込みクレジットカウンタを減分するためのコードと、ホストデバイスにおいて、メモリシステムから書込みバッファ内の追加の利用可能な書込みバッファスペースの指示を受信すると、書込みクレジットカウンタを増分するためのコードとを含む。
また別の例示的な態様は、メモリシステムに結合されたホストデバイスを備える装置を対象とし、ホストデバイスは、書込みクレジットを追跡するための手段を備え、書込みクレジットは、メモリシステム内の書込みバッファの利用可能な書込みバッファスペースを反映する。書込みクレジットを追跡するための手段は、ホストデバイスがメモリシステムに書込みコマンドを発行すると、書込みクレジットを減分するための手段と、ホストデバイスにおいて、メモリシステムから書込みバッファ内の追加の利用可能な書込みバッファスペースの指示を受信すると、書込みクレジットを増分するための手段とを備える。
添付の図面は、本発明の態様の説明を助けるために提示され、態様の限定ではなく、態様の例示のためのみに提供される。
本開示の態様による処理システムを示す図である。 書込みクレジットの戻りの例示的な態様に従って、メモリシステムからホストに報告される書込みバッファスペースに関する情報を含むためのメタデータフォーマットを示す図である。 書込みクレジットの戻りの例示的な態様に従って、メモリシステムからホストに報告される書込みバッファスペースに関する情報を含むためのメタデータフォーマットを示す図である。 書込みクレジットの戻りの例示的な態様に従って、メモリシステムからホストに報告される書込みバッファスペースに関する情報を含むためのメタデータフォーマットを示す図である。 本開示による、書込みクレジット報告の例を示す図である。 本開示による、書込みクレジット報告の例を示す図である。 本開示の態様による、XWRITEおよびPWRITEの書込みクレジット報告を分離する態様を示す図である。 本開示の態様が有利に使用される場合がある例示的なコンピューティングデバイスを示す図である。 本開示の態様による、ホストデバイスの書込みクレジットとメモリシステムの利用可能な書込みバッファスペースとを同期させる例示的な方法を示す図である。
本発明の態様は、本発明の特定の態様を対象とする以下の説明および関連する図面において開示される。本発明の範囲から逸脱することなく、代替の態様が考案され得る。加えて、本発明の関連する詳細を不明瞭にしないように、本発明のよく知られている要素は、詳細に説明されないか、または省略される。
「例示的」という語は、本明細書において「一例、事例、または例示としての働きをすること」を意味するために使用される。「例示的」として本明細書で説明するいかなる態様も、必ずしも他の態様よりも好適または有利なものと解釈すべきではない。同様に、「本発明の態様」という用語は、本発明のすべての態様が、説明する特徴、利点または動作モードを含むことを必要としない。
本明細書で使用する用語は、特定の態様のみについて説明するためのものであり、本発明の態様を限定するものではない。本明細書で使用する単数形「a」、「an」および「the」は、文脈が別段に明確に示さない限り、複数形も含むものとする。「備える(comprises)」、「備える(comprising)」、「含む(includes)」および/または「含む(including)」という用語は、本明細書で使用するとき、述べられた特徴、整数、ステップ、動作、要素、および/または構成要素の存在を明示するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、構成要素、および/またはそれらのグループの存在または追加を排除しないことをさらに理解されたい。
さらに、多くの態様について、たとえば、コンピューティングデバイスの要素によって実行されるべきアクションのシーケンスに関して説明する。本明細書で説明する様々なアクションは、特定の回路(たとえば、特定用途向け集積回路(ASIC))によって、1つもしくは複数のプロセッサによって実行されるプログラム命令によって、または両方の組合せによって実行され得ることが認識されよう。加えて、本明細書で説明するこれらのアクションのシーケンスは、実行時に、関連するプロセッサに本明細書で説明する機能を実行させることになる、コンピュータ命令の対応するセットを記憶した、任意の形態のコンピュータ可読記憶媒体内で完全に具現化されるものと見なされ得る。したがって、本発明の様々な態様は、いくつかの異なる形態で具現化されてもよく、それらのすべてが、請求する主題の範囲内に入ることが企図されている。加えて、本明細書で説明する態様の各々について、任意のそのような態様の対応する形態が、たとえば、説明するアクションを実行する「ように構成された論理」として本明細書において説明される場合がある。
本開示の例示的な態様は、ホストデバイスと不揮発性メモリ(NVM)を備えるメモリシステムのメディアコントローラとの間で書込みクレジットを同期させるための効率的なシステムおよび方法を対象とする。ホストデバイスは、NVMに発行される可能性のある未解決の書込みコマンドの数を追跡し、制限する、たとえばホストデバイスのメモリコントローラに実装される書込みクレジット(WC)カウンタを維持するように構成される。ホストデバイスは、メディアコントローラ内の利用可能な書込みバッファスペースのステータスを取得し、検出された任意の誤りに基づいてWCカウンタを調整するよう、メモリシステムに問合せを行い得る。
NVMは、たとえば、本開示の範囲から逸脱することなく、任意の技術に従って構成され得るNVDIMM-Pを含むことができる。本開示の例示的な態様の説明のために、NVDIMM-P(またはDDR4 NVDIMM-P)のダブルデータレート4(DDR4)実装、およびNVDIMM-P(またはDDR5 NVDIMM-P)のダブルデータレート5(DDR5)実装について説明する。
次に図1を参照すると、ホストとラベル付けされたホストデバイス120およびメモリシステム130を備える例示的な処理システム100が示されている。ホスト120は、明示的に示されていないが、中央処理ユニット(CPU)、デジタル信号プロセッサ(DSP)、マルチメディアプロセッサ、システムプロセッサ、グラフィックス処理ユニット(GPU)、変調器-復調器(モデム)、アプリケーションプロセッサなどの1つまたは複数の処理要素を備えることができる。これらの処理要素は、メモリシステム130にアクセスするための要求を行うことがある。ホスト120のメモリコントローラ122は、これらのアクセス要求を制御するように構成され得る。例示的な態様では、メモリコントローラ122は、書込みクレジット(WC)カウンタ124を維持し得るが、本開示によるWCカウンタは、ホスト120内で他の任意の方法で構成されてもよい。
メモリシステム130は、例示的な態様では、NVDIMMまたはNVDIMM-P(たとえば、DDR4またはDDR5)として構成された不揮発性メモリ(NVM)136を備えてもよい。NVM136は、1つまたは複数のメモリバンクを備えてもよく、これらは特に図示されていない。NVM136への読取りや書込みなどのアクセスは、メディアコントローラ132によって制御され得る。書込み動作では、例示的な図または様々な他の態様に示されるように、書込みバッファ134は、メディアコントローラ132に提供されてもよく、適切な書込みバッファは、本開示の範囲から逸脱することなく任意の他の方法で適切に提供されてもよい。NVM136に書き込まれるようにホスト120から受信された書込み動作のための書込みデータは、書込みデータがNVM136に転送される前に、書込みバッファ134に一時的に記憶されてもよい。転送の完了を報告するために応答が必要とされる場合(たとえば、永続的な書込みの場合)、書込み完了の報告が成功すると、書込み動作は後退されたと見なされるか、そうでなければ、書込みデータが書込みバッファ134からNVM136に転送されると、書込み動作は後退されたと見なされ得る。NVM136は、永続的なメモリ書込み(PWRITE)および付随するパリティ情報、たとえば、XWRITEと呼ばれる論理排他的OR(XOR)を伴う書込み動作をサポートし得る。
ホスト120とメモリシステム130との間の配線110が示されており、データバス(DQ)112、コマンドおよびアドレスバス(CA)114などの標準インターフェースが示されている。ホスト120は、CA114を介してメモリアクセス要求のためのコマンド(PWRITEおよびXWRITEなどの書込み要求を含む)および関連するアドレスを提供し、(二方向バスとして示されている)DQ112を介してデータを送信/受信することが可能であり得る。応答とラベル付けされたバス116は、別々に示されているが、CA114の一部として構成されてもよく、場合によっては双方向バスとして実装されてもよい。応答116は、たとえば、以下のセクションでさらに詳細に説明されるように、書込みバッファ134内の利用可能なスペースに関する情報をホスト120に提供するために使用され得る。様々な他のバス/ワイヤは別々に識別されていないが、これらも配線110内に存在することがある。
例示的な態様では、WCカウンタ124は、書込みバッファ134内の利用可能な書込みバッファスペースに基づいて未解決のXWRITEまたはPWRITEコマンドの数を制限する目的で、メモリシステム130に発行された未解決のXWRITEまたはPWRITEコマンドの数を追跡するように構成される。一態様では、WCカウンタ124は、既知の値に初期化されるか、またはゼロなどの基本値にリセットされてもよい(たとえば、アプリケーションの開始時または定期的に)。初期化時に、ホスト120は、メモリシステム130に問合せを行って、利用可能な書込みバッファスペースを決定し、この情報を使用してWCカウンタ124をプリセットして、利用可能な書込みバッファスペースを反映し(たとえば、書込みバッファ134内で利用可能なライン(またはブロック)の数は、WCカウンタ124を比例数にプリセットすることによって追跡され得る比例数に変換され得る)、利用可能な書込みバッファ空間が変化すると、それに応じてWCカウンタ124のカウントを増減するように構成され得、使用可能な書込みバッファスペースの変化は次のように追跡され得る。
ホスト120は、READ_STATUSコマンド(たとえば、CA114上で送信され得る)などのコマンドを使用して、利用可能な書込みバッファスペースを読み取るように構成され得る。READ_STATUSコマンドは、当技術分野で知られているXREADコマンドとして符号化され得、1つの例示的な実装形態では、読取りID(RID)が16進数表記ですべて1または0xFFに設定される。メモリシステム130は、たとえば、メディアコントローラ132を介して、利用可能な書込みバッファスペースに関する情報を含むステータスパケットがホスト120に配信される準備ができると、応答RD_RDYを(たとえば、応答116上で)提供し得る。次いで、ホスト120は、SENDコマンドをメモリシステム130に発行し、RIDが0xFFに設定された状態でメモリシステム130からDQ112上で受信された任意の後続のデータパケットは、特定の実装形態では、ホスト120、たとえばメモリコントローラ122によってメッセージパケットとして扱われ得る。そのように受信されたメッセージパケットは、利用可能な書込みバッファスペースに関する情報を含み得る。
上述の方法で利用可能な書込みバッファスペースを取得すると、ホスト120、または具体的には、メモリコントローラ122は、WCカウンタ124を対応する値で設定またはプリセットするように構成され得る。その後、各XWRITEまたはPWRITEコマンドがメモリシステム130に発行されると、メモリコントローラ122は、対応して(たとえば「1」だけ)WCカウンタ124を減分するように構成され得る。WCカウンタ124が「0」の値に達すると、メモリコントローラ122は、任意のさらなるXWRITEまたはPWRITEコマンドがCA114上でホスト120からメモリシステム130に発行されるのを停止または防止するように構成され得る。
例示的な態様では、メモリシステム130は、1つもしくは複数の読取りデータパケット、または場合によっては、上記のSENDコマンドに応答してメモリシステム130からホスト120に戻される各読取りデータパケットに含まれるメタデータの一部として、ホストに増分書込みクレジットフィードバックを提供するように構成され得る。増分書込みクレジット報告は、特定の実装形態に基づいて異なる場合がある。たとえば、NVM136のDDR4 NVDIMM-P実装の特定の構成に応じて、このフィードバックは、1ビットのプログラム可能なWC戻り値(PWC)または書込みクレジットの3ビット符号化(たとえば、WC[2:0]によって表される)であり得る。フィードバックで戻される書込みクレジット(たとえば、WC[2:0]で表される)は、読取りメタデータとも呼ばれ、ホスト120がその利用可能な書込みクレジットカウントに追加できる書込みクレジットの数を表し得る(たとえば、対応する量だけWCカウンタ124を増分させる)。
いくつかの態様では、WC[2:0]などのマルチビットプログラム可能書込みクレジット値は、特定の数の書込みクレジットの符号化(たとえば、バイナリ表現)であってもよい。代替態様では、たとえば、図2Cに示すように、WC[2:0]の値は、応答に関連付けられた事前プログラムされた数のクレジットに対応する場合がある。たとえば、図2Cにおいてビット[WC2, WC1, WC0]として識別されるWC[2:0]のビット値の異なる符号化または組合せは、0-64の範囲で代表的に示される、異なる数の書込みクレジットを表し得る。これらの事前プログラムされた値は、いくつかの実装形態では、WC[2:0]のビットをテーブルへのインデックスとして使用するテーブルによって取得され得る。
1ビットのプログラム可能なWC戻り値(PWC)が使用されるときに戻される書込みクレジットは、ホスト120の書込みクレジットカウントに追加される事前プログラムされた数のクレジットを表し得る(たとえば、対応する量だけWCカウンタ124を増分する)。モードレジスタのビット設定、たとえば、設定されるモードレジスタの適切な位置のビットを使用して、DDR4 NVDIMM-P実装の2つの可能な構成のうちの1つを選択し得る。NVM136のDDR5 NVDIMM-P実装では、書込みクレジットのための3ビット符号化(たとえば、WC[2:0])が使用され得る。
ホスト120は、メモリシステム130によって戻されたPWCまたはWC[2:0]符号化(上記のDDR4またはDDR5実装に依存する)で符号化された書込みクレジットの数だけWCカウンタ124を増分し得る。メディアコントローラ132上で利用可能な総書込みバッファスペースは、異なる実装形態では64以上とすることができる。書込みクレジットは、メディアコントローラ132がNVM136に後退され、したがって上述のように書込みバッファ134内のより多くのバッファスペースを解放した書込みの数を表し得る。
例示的な態様では、ホスト120はまた、READ_STATUSコマンドを発行し、それに応じてそのWCカウンタ124を更新することによって、いつでも、書込みバッファ134で利用可能な総書込みバッファスペースを要求し得る。一例として、ホスト120は、発行可能なSENDコマンドがなく、そのWCカウンタ124が「0」の値であるとき、READ_STATUSコマンドを送信して、さらなる書込みの発行を防止し得る。
別の例では、ホスト120は、ホスト120が読取りデータパケット上で訂正不可能な誤り(UE)を検出すると、書込みバッファ134内の利用可能な書込みバッファスペースに基づいて、そのWCカウンタ124を更新するために、READ_STATUSコマンドを発行し得る。たとえば、メモリコントローラ122は、メモリシステム130から受信されたパケットにおいて誤り検査を実行し、誤りがあったことを発見し得、このことは、読取りデータパケットに含まれるPWCまたはWC[2:0]フィールド(上記のDDR4またはDDR5実装に依存する)を無効にすることになる。
いくつかの態様では、メモリシステム130は、メディアコントローラ132がREAD_STATUSコマンドを受信するときに基づいて、書込みバッファスペースの合計値を提供してもよい。ホスト120に戻された書込みクレジットまたは書込みバッファスペースを含む任意の後続のメッセージでは、メディアコントローラ132は、受信されたREAD_STATUSコマンドに応答してホスト120に送信された総書込みバッファスペースの最後の値を考慮してもよい。したがって、メモリシステム130は、以下のセクションで説明するように、書込み動作が完了するかまたは後退されると解放される追加の書込みバッファスペースに基づいて適切な書込みクレジットを戻し得る。
例示的な例では、書込みバッファ134内の書込みバッファスペースは、128(たとえば、128ラインまたはブロック)であり得る。たとえば、ホスト120が10の書込みを発行し、これらの書込みのうち3つが、メディアコントローラ132がホスト120からREAD_STATUSコマンドを受信する前に、NVM136に対して完了したか、または後退された場合、メディアコントローラ132は、応答して、128-10+3=121の合計書込みバッファスペース利用可能値をホスト120に戻し得る。
いくつかの態様では、メモリシステム130はまた、たとえば、READ_STATUSコマンドを受信した後、ステータスメッセージがDQ112上で送り返される前に、NVM136への対応する追加の介在する書込みが完了し得る場合、報告された総書込みバッファスペースの一部として追加のクレジットを戻し得る。
例示的な例では、前に示したように、書込みバッファ134内の書込みバッファスペースは128であり得る。たとえば、ホスト120が10の書込みを発行し、これらの書込みのうち3つが、メディアコントローラ132がホスト120からREAD_STATUSコマンドを受信する前に、NVM136に対して完了したか、または後退され、READ_STATUSパケットが受信された後、しかし、書込みクレジット値を含むステータスパケットがホスト120に送信される前に、さらに2つの書込みがNVM136に対して完了した場合、メディアコントローラ132は、応答して、128-10+3+2=123の合計書込みバッファスペース利用可能値をホスト120に戻し得る。
1つの可能なシナリオでは、メディアコントローラ132は、READ_STATUSが受信された後書込み要求を受信し、ステータスが報告される前に書込み要求を完了し得る。このシナリオでは、メディアコントローラ132は、総書込みバッファスペースを報告するときに、完了した書込み要求に対応する書込みバッファ134におけるこの追加の空きスペースを考慮せず、報告される後続の書込みクレジットの戻りで対応する書込みクレジットを報告するように構成され得る。
ホスト120の観点から、戻された総書込みバッファスペースは、READ_STATUSコマンドを発行した後ホスト120によって発行された書込みコマンドでは考慮されない。ホスト120は、メディアコントローラ132から総書込みバッファスペースを受信する前にそれらの書込みコマンドが発行されたとしても、戻り値からREAD_STATUSコマンドに続いて発行された書込みコマンドの数を減算するように構成される。ホスト120は、WCカウンタ124の書込みクレジットカウントを調整し続け、総書込みバッファスペースを受信した後増分書込みクレジットの戻りが受信される。
例示的な態様において、PWCおよびWC[2:0]ビットは、メモリシステム130からホスト120に情報を戻すための他のプロトコルに従って定義されたメタデータビットに対しても「1」に設定されたポイズンビットを有する読取り戻りデータについて有効であり得る。ポイズンデータは、ホスト120がメモリシステム130(または具体的には、メディアコントローラ132)に不良もしくは「毒入り」データを書き込んだか、またはホスト120が破損した読取りデータを検出し、破損した読取りデータを、「毒入り」ビットによって示されるように、不良もしくは使用不可として戻したことを示す指示である。たとえば、正確な数の書込みクレジット(最大64の書込みクレジット)を報告するために6ビットを使用して、DQ112上で送信されるステータスパケットで使用され得る例示的なメタデータパケットは、図2Cに示されるフォーマットに従い得る。
図2Aは、DDR4規格によるデータビートを示し、たとえば、ポイズンビットが1に設定されていることを示し、WC[2:0]ビットが、ホスト120からのREAD_STATUSコマンドに応答して、DQ112上で送信される応答パケットで報告される書込みクレジットの数を示す。NVM136のDDR4 NVDIMM-P実装は、読取りメタデータパケット内の書込みクレジットビットおよびユーザ定義ビットの数を選択するための2つの構成可能なオプションを可能にし得る。メタデータパケットのモードレジスタMRxビットyが「0」に設定される場合、3つの書込みクレジットビットおよび4つのUSERビットは、図2Aに示されるように利用可能であり得る。
図2Bは、モードレジスタMRxビットyが「1」に設定されている場合に利用可能な単一の書込みクレジットビット(PWC)および6つのUSERビットを示す。
図2Cは、DDR4またはDDR5 NVDIMM-P実装による3つの書込みクレジットビットの例示的な符号化を示す。たとえば、図1のメモリシステム130は、戻されるべきクレジットの実数以下の最適な符号化を戻してもよい。
NVM136のDDR4 NVDIMM-P実装の場合、PWCビットは、プログラム可能な書込みクレジットしきい値を表す。この値は、ホスト120によって、モードレジスタ位置MRxビットn(2:0)において、3つの書込みクレジットビットを有する上述の実装形態と同じ符号化を使用してプログラムされ得る。メモリシステム130は、ホスト120からREAD_STATUSを受信して総書込みバッファスペースを取得するまで、その報告においてPWC値の使用を開始しない場合がある。READ_STATUSを使用して取得された書込みクレジットは、ステータス読取りに基づくクレジットとも呼ばれる。3ビットPWCフィールドもREAD_STATUSパケットで戻される場合があり、前述のように、これらの書込みクレジットは、読取りメタデータから取得されたクレジットと呼ばれる。増分書込みクレジット値の変更は、総書込みバッファスペースが戻された後有効になる場合がある。
例示的な態様では、PWC=0の場合、クレジットはホスト120に戻されない。PWC=1の場合、プログラムされた値に基づいた書込みクレジットがホスト120に戻され得る。
図3A-図3Bは、書込みクレジットをホスト120に報告するために読取りパケットメタデータで使用される3つの書込みクレジットビットおよび1つの書込みクレジットビットを含む数値例を示す。図3A-図3Bにおいて、「返却可能」として示される列は、たとえば、メディアコントローラ132のステータスを表し得る。
図3Aに示されるように、3つの書込みクレジットビットが使用されるとき、1、2、4、8、16、32、および64クレジットが、3ビットの様々なバイナリ符号化を使用して報告され得る。示されるように、ホスト120は、READ_STATUSへの応答を通して提供される書込みクレジット(または、ステータス読取りに基づくクレジット)、ならびにPWCビットなどの読取りメタデータから取得される書込みクレジットを利用し得る。いくつかの実装形態では、ステータス読取りおよび読取りメタデータは、メモリシステム130からホスト120に同時に戻されることを制限され得る。したがって、ステータス読取りまたは読取りメタデータのいずれかを介して書込みクレジットが戻されるときのホスト120の書込みクレジットカウントが図3Aの例に示されている。
図3Bでは、書込みクレジットに1ビットのみを使用すると、各読取りパケットのメタデータ内のプリセットされたしきい値に基づいて、単一の値(たとえば、この例では4)のみが戻され得る。また、図3Bは、ホスト120が、(上述のように、いくつかの実装形態では同時に戻されない場合もあるが)ステータス読取りならびに読取りメタデータから書込みクレジットを利用し得ることも示している。より具体的には、図3Bは、ステータス読取りまたは読取りメタデータのいずれかから戻された書込みクレジットに基づくホスト120の書込みクレジットカウントも示している。前記のように、「返却可能」は、メディアコントローラ132が戻す準備ができている可能性のある書込みクレジットを示し得るが、返却可能とホスト120に戻される読取りメタデータ値との間の潜在的な変動は、ホスト120によって検出できない場合があり、これは、メディアコントローラ132が追加の書込みクレジットを処理していない可能性がある競合状態が存在する可能性があるからである。
次に図4を参照すると、PWRITEおよびXWRITEの書込みバッファスペースを報告するために別個の書込みクレジットを使用する態様が示されている。この方法で書込みクレジットを分離すると、XWRITEクレジットがメモリシステム130からホスト120に戻され得る速度が向上し得る。分離はまた、メディアコントローラ132が総書込みバッファスペースのサブセットにエネルギーバッキングを提供することを可能にし得る。読取りパケット内の書込みクレジットを報告するためのメタデータをポイズンビットと組み合わせて、余分なクレジットの戻りを報告するための追加の符号化オプションを取得し得る。
XWRITEおよびPWRITEクレジット報告が分離され得る態様では、共通のPWCしきい値がXWRITEおよびPWRITEクレジット報告に使用され得、ユーザの好みに基づいて別個の対応するしきい値を使用するオプションがあり得る。それぞれのXWRITEおよびPWRITEのクレジット報告に、個別の3ビットフィールドが使用され得る。ステータスパケットで戻される総書込みバッファスペースは、XWRITEクレジットおよびPWRITEクレジットのための個別のフィールドを有し、XWRITEおよびPWRITEの固定割振りとなり得る。ホスト120は、PWRITEスペースの一部をXWRITEに割り振るように構成され得る。ホスト120はまた、PWRITEクレジットとXWRITEクレジットとの間にスペースを割り振るために、メディアコントローラ132内のレジスタ(図示せず)をプログラムし得る。
次に、本開示の態様が利用され得る例示的な装置について、図5に関して説明する。図5は、コンピューティングデバイス500のブロック図を示す。コンピューティングデバイス500は、図1の処理システム100の例示的な実装形態に対応することができ、ここにおいて、プロセッサ120'は、ホスト120の処理要素のうちの1つであり得る。プロセッサ120'は、配線110を通じてメモリシステム130に結合されることが例示的に示されており、明快にするために、配線110のさらなる詳細はこの図から省略されている。図示されていないが、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)、固定ロケーションデータユニット、コンピュータ、ラップトップ、タブレット、通信デバイス、モバイルフォン、または他の同様のデバイスに統合される場合もあることに留意されたい。
例示的な態様は、本明細書に開示されたプロセス、機能、および/またはアルゴリズムを実行するための様々な方法を含むことが諒解されよう。たとえば、図6は、メモリシステムにアクセスする方法600を示す。たとえば、方法600は、ホスト120の書込みクレジットと、メモリシステム130の書込みバッファ134内の利用可能な書込みバッファスペースとを同期させることを対象とし得る。
ブロック602は、メモリシステム内の書込みバッファの利用可能な書込みバッファスペースを反映するようにホストデバイス内の書込みクレジットカウンタを設定することを含む。たとえば、ホスト120のWCカウンタ124は、方法600など、前のプロセスからの書込みバッファ134内の利用可能な書込みバッファスペースの決定に基づいて初期化または設定され得る。
ブロック604は、メモリシステムに書込みコマンドを発行すると、書込みクレジットカウンタを減分することを含む。たとえば、ホスト120によって各PWRITEまたはXWRITEを発行すると、それに応じてWCカウンタ124が減分され得る。
ブロック606は、メモリシステムから書込みバッファ内の追加の利用可能な書込みバッファスペースの指示を受信すると、書込みクレジットカウンタを増分することを含む。たとえば、ホスト120が読取りステータス(READ_STATUS)コマンドに応答して、利用可能な書込みバッファスペースを有する1つまたは複数の読取りパケットを受信したとき、対応するWCカウンタ124の値よりも利用可能な書込みバッファスペースがさらにある場合、WCカウンタ124は対応して増分される。
当業者は、情報および信号が、様々な異なる技術および技法のうちのいずれかを使用して表され得ることを諒解されよう。たとえば、上記の説明全体にわたって言及される場合があるデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表現される場合がある。
さらに、本明細書で開示する態様に関連して説明した種々の例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップが、電子ハードウェア、コンピュータソフトウェア、またはその両方の組合せとして実装されてもよいことを当業者は理解されよう。ハードウェアおよびソフトウェアのこの互換性を明確に示すために、種々の例示的な構成要素、ブロック、モジュール、回路、およびステップについて、上記では概してそれらの機能に関して説明してきた。そのような機能が、ハードウェアとして実装されるか、またはソフトウェアとして実施されるのかは、特定の適用例と、システム全体に課される設計制約とによって決まる。当業者は、説明した機能を様々な方法で特定の適用例ごとに実装し得るが、そのような実装の決定は、本発明の範囲からの逸脱を引き起こすものと解釈されるべきではない。
本明細書において開示される態様に関して説明される方法、シーケンスおよび/またはアルゴリズムは、直接ハードウェアにおいて具現化される場合があるか、プロセッサによって実行されるソフトウェアモジュールにおいて具現化される場合があるか、またはその2つの組合せにおいて具現化される場合がある。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野で知られている任意の他の形態の記憶媒体内に存在してもよい。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、かつ記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体は、プロセッサと一体であってもよい。
したがって、本発明の一態様は、NVMを含むメモリシステムからホストに書込みクレジットを報告する方法を具現化するコンピュータ可読媒体を含むことができる。したがって、本発明は図示の例に限定されず、本明細書で説明する機能を実行するためのいかなる手段も本発明の態様に含まれる。
上記の本開示は本発明の例示的な態様を示すが、添付の特許請求の範囲によって規定されるような本発明の範囲から逸脱することなく、本明細書において様々な変更および修正が行われ得ることに留意されたい。本明細書で説明する本発明の態様による方法クレームの機能、ステップおよび/またはアクションは、任意の特定の順序で実行される必要はない。さらに、本発明の要素は、単数形で説明または特許請求される場合があるが、単数形への限定が明示的に述べられていない限り、複数形が企図される。
100 処理システム
110 配線
112 データバス(DQ)
114 コマンドおよびアドレスバス(CA)
116 応答
120 ホスト
120' プロセッサ
122 メモリコントローラ
124 書込みクレジット(WC)カウンタ
130 メモリシステム
132 メディアコントローラ
134 書込みバッファ
136 不揮発性メモリ(NVM)
500 コンピューティングデバイス
522 システムオンチップデバイス
526 ディスプレイコントローラ
528 ディスプレイ
530 入力デバイス
534 コーデック
536 スピーカ
538 マイクロフォン
540 ワイヤレスコントローラ
542 ワイヤレスアンテナ
544 電源

Claims (27)

  1. メモリシステムにアクセスする方法であって、
    前記メモリシステム内の書込みバッファの利用可能な書込みバッファスペースを反映するようにホストデバイス内の書込みクレジットカウンタを設定するステップと、
    前記ホストデバイスから前記メモリシステムに書込みコマンドを発行すると、前記書込みクレジットカウンタを減分するステップであって、前記書込みコマンドが、永続的メモリ書込み(PWRITE)または付随するパリティ情報による書込み(XWRITE)である、ステップと、
    個別のPWRITEおよびXWRITEのクレジット報告に基づいて、前記ホストデバイスにおいて、前記メモリシステムから前記書込みバッファ内の追加の利用可能な書込みバッファスペースの指示を受信すると、前記書込みクレジットカウンタを増分するステップと
    を含み、
    PWRITEコマンドについて、前記ホストデバイスは、書込み動作が永続メモリに到達したという明示的な確認を受信し、
    XWRITEコマンドについて、前記付随するパリティ情報は、排他的OR(XOR)パリティ情報であり、
    追加の利用可能な書込みバッファスペースの前記指示は、追加の利用可能な書込みバッファスペースの前記指示内の符号化される書込みクレジットの数の範囲が追加の利用可能な書込みバッファスペースの前記指示のビット値の範囲より広い、前記書込みクレジットカウンタを増分するための書込みクレジットの前記数を符号化する1つまたは複数のビットを含む、方法。
  2. 前記書込みバッファ内の前記追加の利用可能な書込みバッファスペースが、前記メモリシステム内の不揮発性メモリに書き込まれる前記書込みバッファからの書込み動作に基づく、請求項1に記載の方法。
  3. 前記メモリシステムから、前記書込みバッファ内のPWRITEおよびXWRITEのための追加の利用可能な書込みバッファスペースの個別の指示を受信するステップを含む、請求項1に記載の方法。
  4. 読取りステータスコマンドが前記ホストデバイスによって前記メモリシステムに送信されたことに応答して、前記メモリシステムから前記書込みバッファ内の利用可能な書込みバッファスペースの前記指示を受信するステップをさらに含む請求項1に記載の方法。
  5. 前記メモリシステムから、1つまたは複数の読取りデータパケットのメタデータで前記利用可能な書込みバッファスペースの前記指示を受信するステップを含む請求項4に記載の方法。
  6. 前記指示が、プログラム可能な書込みクレジット値、書込みクレジットの符号化、またはモードレジスタビット設定のうちの1つを含む、請求項5に記載の方法。
  7. 前記ホストデバイスによって、前記1つまたは複数の読取りデータパケットに対して誤り検査を実行するステップをさらに含む請求項5に記載の方法。
  8. 前記ホストデバイスによって、前記誤り検査に基づいて前記1つまたは複数の読取りデータパケットにおける誤りを決定し、別の読取りステータスコマンドを前記メモリシステムに発行するステップをさらに含む請求項7に記載の方法。
  9. 前記書込みクレジットカウンタがゼロの値に達した場合、書込みコマンドが前記ホストデバイスによって前記メモリシステムに発行されることを防止するステップをさらに含む請求項1に記載の方法。
  10. 装置であって、
    書込みクレジットカウンタを備えるホストデバイスを備え、前記ホストデバイスが、書込みバッファを備えるメモリシステムに結合されており、前記ホストデバイスが、
    前記書込みバッファの利用可能な書込みバッファスペースを反映するように前記書込みクレジットカウンタを設定し、
    前記メモリシステムに書込みコマンドを発行すると、前記書込みクレジットカウンタを減分し、前記書込みコマンドが、永続的メモリ書込み(PWRITE)または付随するパリティ情報による書込み(XWRITE)であり、
    個別のPWRITEおよびXWRITEのクレジット報告に基づいて、前記メモリシステムから前記書込みバッファ内の追加の利用可能な書込みバッファスペースの指示を受信すると、前記書込みクレジットカウンタを増分する
    ように構成され
    PWRITEコマンドについて、前記ホストデバイスは、書込み動作が永続メモリに到達したという明示的な確認を受信し、
    XWRITEコマンドについて、前記付随するパリティ情報は、排他的OR(XOR)パリティ情報であり、
    追加の利用可能な書込みバッファスペースの前記指示は、追加の利用可能な書込みバッファスペースの前記指示内の符号化される書込みクレジットの数の範囲が追加の利用可能な書込みバッファスペースの前記指示のビット値の範囲より広い、前記書込みクレジットカウンタを増分するための書込みクレジットの前記数を符号化する1つまたは複数のビットを含む、装置。
  11. 前記書込みバッファ内の前記追加の利用可能な書込みバッファスペースが、前記メモリシステム内の不揮発性メモリに書き込まれる前記書込みバッファからの書込み動作に基づく、請求項10に記載の装置。
  12. 前記ホストデバイスが、前記メモリシステムから、前記書込みバッファ内のPWRITEおよびXWRITEのための追加の利用可能な書込みバッファスペースの個別の指示を受信するように構成される、請求項10に記載の装置。
  13. 前記ホストデバイスが、読取りステータスコマンドが前記ホストデバイスによって前記メモリシステムに送信されたことに応答して、前記メモリシステムから前記書込みバッファ内の利用可能な書込みバッファスペースの前記指示を受信するようにさらに構成される、請求項10に記載の装置。
  14. 前記ホストデバイスが、前記メモリシステムから、1つまたは複数の読取りデータパケットのメタデータで前記利用可能な書込みバッファスペースの前記指示を受信するように構成される、請求項13に記載の装置。
  15. 前記指示が、プログラム可能な書込みクレジット値、書込みクレジットの符号化、またはモードレジスタビット設定のうちの1つを含む、請求項14に記載の装置。
  16. 前記ホストデバイスが、前記1つまたは複数の読取りデータパケットに対して誤り検査を実行するようにさらに構成される、請求項14に記載の装置。
  17. 前記ホストデバイスが、前記誤り検査に基づいて前記1つまたは複数の読取りデータパケットの誤りを決定し、別の読取りステータスコマンドを前記メモリシステムに発行するようにさらに構成される、請求項16に記載の装置。
  18. 前記ホストデバイスが、前記書込みクレジットカウンタがゼロの値に達した場合、書込みコマンドが前記メモリシステムに発行されるのを防止するようにさらに構成される、請求項10に記載の装置。
  19. プロセッサによって実行されると、メモリシステムにアクセスするための動作を前記プロセッサに実施させるコードを記憶した非一時的コンピュータ可読記憶媒体であって、前記非一時的コンピュータ可読記憶媒体が、
    前記メモリシステム内の書込みバッファの利用可能な書込みバッファスペースを反映するようにホストデバイス内の書込みクレジットカウンタを設定するためのコードと、
    前記ホストデバイスから前記メモリシステムに書込みコマンドを発行すると、前記書込みクレジットカウンタを減分するためのコードであって、前記書込みコマンドが、永続的メモリ書込み(PWRITE)または付随するパリティ情報による書込み(XWRITE)である、コードと、
    個別のPWRITEおよびXWRITEのクレジット報告に基づいて、前記ホストデバイスにおいて、前記メモリシステムから前記書込みバッファ内の追加の利用可能な書込みバッファスペースの指示を受信すると、前記書込みクレジットカウンタを増分するためのコードと
    を記憶し
    PWRITEコマンドについて、前記ホストデバイスは、書込み動作が永続メモリに到達したという明示的な確認を受信し、
    XWRITEコマンドについて、前記付随するパリティ情報は、排他的OR(XOR)パリティ情報であり、
    追加の利用可能な書込みバッファスペースの前記指示は、追加の利用可能な書込みバッファスペースの前記指示内の符号化される書込みクレジットの数の範囲が追加の利用可能な書込みバッファスペースの前記指示のビット値の範囲より広い、前記書込みクレジットカウンタを増分するための書込みクレジットの前記数を符号化する1つまたは複数のビットを含む、非一時的コンピュータ可読記憶媒体。
  20. 前記書込みバッファ内の前記追加の利用可能な書込みバッファスペースが、前記メモリシステム内の不揮発性メモリに書き込まれる前記書込みバッファからの書込み動作に基づく、請求項19に記載の非一時的コンピュータ可読記憶媒体。
  21. 前記メモリシステムから、前記書込みバッファ内のPWRITEおよびXWRITEのための追加の利用可能な書込みバッファスペースの個別の指示を受信するためのコードをさらに記憶した請求項19に記載の非一時的コンピュータ可読記憶媒体。
  22. 読取りステータスコマンドが前記ホストデバイスによって前記メモリシステムに送信されたことに応答して、前記メモリシステムから前記書込みバッファ内の利用可能な書込みバッファスペースの前記指示を受信するためのコードをさらに記憶した請求項19に記載の非一時的コンピュータ可読記憶媒体。
  23. 前記メモリシステムから、1つまたは複数の読取りデータパケットのメタデータで前記利用可能な書込みバッファスペースの前記指示を受信するためのコードをさらに記憶した請求項22に記載の非一時的コンピュータ可読記憶媒体。
  24. 前記指示が、プログラム可能な書込みクレジット値、書込みクレジットの符号化、またはモードレジスタビット設定のうちの1つを含む、請求項23に記載の非一時的コンピュータ可読記憶媒体。
  25. 前記ホストデバイスによって、前記1つまたは複数の読取りデータパケットに対して誤り検査を実行するためのコードをさらに記憶した請求項23に記載の非一時的コンピュータ可読記憶媒体。
  26. 前記ホストデバイスによって、前記誤り検査に基づいて前記1つまたは複数の読取りデータパケットにおける誤りを決定するためのコード、および別の読取りステータスコマンドを前記メモリシステムに発行するためのコードをさらに記憶した請求項25に記載の非一時的コンピュータ可読記憶媒体。
  27. 装置であって、
    メモリシステムに結合されたホストデバイスであり、前記ホストデバイスが、書込みクレジットを追跡するための手段を備え、前記書込みクレジットが、前記メモリシステム内の書込みバッファの利用可能な書込みバッファスペースを反映し、書込みクレジットを追跡するための前記手段が、
    前記ホストデバイスが前記メモリシステムに書込みコマンドを発行すると、前記書込みクレジットを減分するための手段であって、前記書込みコマンドが、永続的メモリ書込み(PWRITE)または付随するパリティ情報による書込み(XWRITE)である、手段と、
    個別のPWRITEおよびXWRITEのクレジット報告に基づいて、前記ホストデバイスにおいて、前記メモリシステムから前記書込みバッファ内の追加の利用可能な書込みバッファスペースの指示を受信すると、前記書込みクレジットを増分するための手段と
    を含み、
    PWRITEコマンドについて、前記ホストデバイスは、書込み動作が永続メモリに到達したという明示的な確認を受信し、
    XWRITEコマンドについて、前記付随するパリティ情報は、排他的OR(XOR)パリティ情報であり、
    追加の利用可能な書込みバッファスペースの前記指示は、追加の利用可能な書込みバッファスペースの前記指示内の符号化される書込みクレジットの数の範囲が追加の利用可能な書込みバッファスペースの前記指示のビット値の範囲より広い、前記書込みクレジットカウンタを増分するための書込みクレジットの前記数を符号化する1つまたは複数のビットを含む、装置。
JP2020522847A 2017-10-31 2018-10-31 不揮発性メモリの書込みクレジットの管理 Active JP6983313B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762579715P 2017-10-31 2017-10-31
US62/579,715 2017-10-31
US16/175,381 US10996888B2 (en) 2017-10-31 2018-10-30 Write credits management for non-volatile memory
US16/175,381 2018-10-30
PCT/US2018/058343 WO2019089683A1 (en) 2017-10-31 2018-10-31 Write credits management for non-volatile memory

Publications (3)

Publication Number Publication Date
JP2021503642A JP2021503642A (ja) 2021-02-12
JP2021503642A5 JP2021503642A5 (ja) 2021-11-11
JP6983313B2 true JP6983313B2 (ja) 2021-12-17

Family

ID=66242945

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020522847A Active JP6983313B2 (ja) 2017-10-31 2018-10-31 不揮発性メモリの書込みクレジットの管理

Country Status (9)

Country Link
US (1) US10996888B2 (ja)
EP (1) EP3704591B1 (ja)
JP (1) JP6983313B2 (ja)
KR (1) KR102384907B1 (ja)
CN (1) CN111279327B (ja)
BR (1) BR112020008423A2 (ja)
SG (1) SG11202002411YA (ja)
TW (1) TWI769335B (ja)
WO (1) WO2019089683A1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10585624B2 (en) * 2016-12-01 2020-03-10 Micron Technology, Inc. Memory protocol
KR102410021B1 (ko) * 2017-11-20 2022-06-21 에스케이하이닉스 주식회사 메모리 컨트롤러 및 메모리 모듈을 갖는 메모리 시스템 및 그 메모리 시스템에서의 데이터 처리 방법
US11048645B2 (en) * 2018-02-01 2021-06-29 Samsung Electronics Co., Ltd. Memory module, operation method therof, and operation method of host
US11372580B2 (en) 2018-08-07 2022-06-28 Marvell Asia Pte, Ltd. Enabling virtual functions on storage media
US11656775B2 (en) 2018-08-07 2023-05-23 Marvell Asia Pte, Ltd. Virtualizing isolation areas of solid-state storage media
US10969994B2 (en) 2018-08-08 2021-04-06 Micron Technology, Inc. Throttle response signals from a memory system
US11074007B2 (en) * 2018-08-08 2021-07-27 Micron Technology, Inc. Optimize information requests to a memory system
US11010314B2 (en) 2018-10-30 2021-05-18 Marvell Asia Pte. Ltd. Artificial intelligence-enabled management of storage media access
US10901657B2 (en) * 2018-11-29 2021-01-26 International Business Machines Corporation Dynamic write credit buffer management of non-volatile dual inline memory module
US11269524B2 (en) * 2019-10-07 2022-03-08 Samsung Electronics Co., Ltd. Methods and systems for managing data transfer between a UFS host and a UFS target
US11947995B2 (en) 2020-05-19 2024-04-02 Intel Corporation End-to-end data protection for far memory data transfer from host to media
US11604743B2 (en) * 2020-08-31 2023-03-14 International Business Machines Corporation Input/output queue hinting for resource utilization
CN113485672B (zh) * 2021-09-07 2021-11-19 苏州浪潮智能科技有限公司 基于fifo存储器的信息生成方法、装置、设备及介质
US11842056B2 (en) * 2021-10-25 2023-12-12 EMC IP Holding Company, LLC System and method for allocating storage system resources during write throttling
US20230325075A1 (en) * 2022-04-07 2023-10-12 Mellanox Technologies, Ltd. Methods and systems for managing memory buffer usage while processing computer system operations

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7574556B2 (en) * 2006-03-20 2009-08-11 International Business Machines Corporation Wise ordering for writes—combining spatial and temporal locality in write caches
US8427891B2 (en) 2007-04-17 2013-04-23 Rambus Inc. Hybrid volatile and non-volatile memory device with a shared interface circuit
US7702871B1 (en) * 2007-08-31 2010-04-20 Emc Corporation Write pacing
US8688894B2 (en) * 2009-09-03 2014-04-01 Pioneer Chip Technology Ltd. Page based management of flash storage
JP5349515B2 (ja) * 2011-03-14 2013-11-20 株式会社東芝 バッファ管理装置、バッファ管理方法及び記憶装置
KR101778782B1 (ko) * 2011-04-08 2017-09-27 삼성전자주식회사 데이터 저장 장치 및 그것의 동작 방법
US8806282B2 (en) * 2012-02-16 2014-08-12 Lsi Corporation Data integrity field (DIF) implementation with error detection and intelligent recovery mechanism
CN104981872B (zh) * 2013-03-15 2018-11-06 英特尔公司 存储系统
US20160139807A1 (en) * 2013-07-09 2016-05-19 Hewlett-Packard Development Company, L.P. Write flow control for memory modules that include or interface with non-compliant memory technologies
US9542251B2 (en) * 2013-10-30 2017-01-10 Oracle International Corporation Error detection on a low pin count bus
US9817693B2 (en) * 2014-03-14 2017-11-14 International Business Machines Corporation Coherence protocol augmentation to indicate transaction status
US10452529B1 (en) * 2014-06-11 2019-10-22 Servicenow, Inc. Techniques and devices for cloud memory sizing
US9959203B2 (en) * 2014-06-23 2018-05-01 Google Llc Managing storage devices
US11232848B2 (en) * 2015-04-30 2022-01-25 Hewlett Packard Enterprise Development Lp Memory module error tracking
US10102070B2 (en) * 2015-06-01 2018-10-16 Hitachi, Ltd. Information processing system, storage apparatus and storage device
US10558388B2 (en) 2016-03-03 2020-02-11 Samsung Electronics Co., Ltd. Memory system and method of controlling the same
US11175853B2 (en) * 2017-05-09 2021-11-16 Samsung Electronics Co., Ltd. Systems and methods for write and flush support in hybrid memory
US11327887B2 (en) * 2017-09-14 2022-05-10 Oracle International Corporation Server-side extension of client-side caches
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

Also Published As

Publication number Publication date
US20190129656A1 (en) 2019-05-02
TWI769335B (zh) 2022-07-01
EP3704591B1 (en) 2022-11-16
CN111279327B (zh) 2023-11-03
BR112020008423A2 (pt) 2020-11-17
EP3704591A1 (en) 2020-09-09
KR20200079496A (ko) 2020-07-03
JP2021503642A (ja) 2021-02-12
WO2019089683A1 (en) 2019-05-09
CN111279327A (zh) 2020-06-12
KR102384907B1 (ko) 2022-04-08
SG11202002411YA (en) 2020-05-28
TW201923588A (zh) 2019-06-16
US10996888B2 (en) 2021-05-04

Similar Documents

Publication Publication Date Title
JP6983313B2 (ja) 不揮発性メモリの書込みクレジットの管理
TWI791536B (zh) 記憶體控制器、系統及包括記憶體控制器的應用處理器
US20180364910A1 (en) Non-deterministic memory protocol
US11650765B2 (en) Apparatus and method for performing persistent write operations using a persistent write command
TWI600010B (zh) 用於進行連續寫入至動態隨機存取記憶體的排組之設備、方法及系統
JP5464528B2 (ja) 同時読み出し及び書き込みメモリ動作を実行する方法及び装置
US20190042413A1 (en) Method and apparatus to provide predictable read latency for a storage device
US20200241956A1 (en) Memory system and operating method thereof
US10922000B2 (en) Controller, operating method thereof, and memory system including the same
US20170147429A1 (en) Adjustable error protection for stored data
TW201923574A (zh) 記憶體系統中的動態鏈路差錯保護
US10747439B2 (en) Method and apparatus for power-fail safe compression and dynamic capacity for a storage device
CN112115076A (zh) 使用者数据的加解密装置及方法
US11263126B2 (en) Data storage device and operating method thereof
US11513736B2 (en) Revised host command generation for unaligned access
KR20220032816A (ko) 메모리 시스템에서 데이터 통신을 보정하는 장치 및 방법
CN114730247A (zh) 具有数据的最小写入大小的存储设备
KR102547251B1 (ko) 비휘발성 메모리 장치를 제어하는 제어기, 그것을 포함하는 저장 장치 및 그것의 동작 방법
US11893240B2 (en) Reducing latency in pseudo channel based memory systems
EP4187398A1 (en) Controller controlling non-volatile memory device, storage device including the same, and operating method thereof

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211004

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211004

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20211004

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211122

R150 Certificate of patent or registration of utility model

Ref document number: 6983313

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150