JP2018200689A - 調節ポーリング時間によるデータ転送 - Google Patents

調節ポーリング時間によるデータ転送 Download PDF

Info

Publication number
JP2018200689A
JP2018200689A JP2018097209A JP2018097209A JP2018200689A JP 2018200689 A JP2018200689 A JP 2018200689A JP 2018097209 A JP2018097209 A JP 2018097209A JP 2018097209 A JP2018097209 A JP 2018097209A JP 2018200689 A JP2018200689 A JP 2018200689A
Authority
JP
Japan
Prior art keywords
command
time interval
delay time
circuit
mme
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
JP2018097209A
Other languages
English (en)
Other versions
JP6805205B2 (ja
JP2018200689A5 (ja
Inventor
ティモシー・カネパ
Canepa Timothy
スティーブン・ハンナ
Hanna Stephen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seagate Technology LLC
Original Assignee
Seagate Technology LLC
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 Seagate Technology LLC filed Critical Seagate Technology LLC
Publication of JP2018200689A publication Critical patent/JP2018200689A/ja
Publication of JP2018200689A5 publication Critical patent/JP2018200689A5/ja
Application granted granted Critical
Publication of JP6805205B2 publication Critical patent/JP6805205B2/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/1689Synchronisation and timing concerns
    • 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
    • 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/0611Improving I/O performance in relation to response time
    • 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
    • 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
    • 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]
    • 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
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory

Abstract

【課題】フラッシュメモリなどのメモリ内のデータを管理するための装置及び方法を提供する。
【解決手段】メモリモジュールは、不揮発性メモリ(NVM)と、メモリモジュール電子(MME)回路とを有する。制御部回路は、MME回路に第1のコマンドを伝達して、NVMの選択されたアドレスに対して選択された行為を実行する。可変遅延時間間隔の後、第2のコマンドは、第1のコマンドに関するステータス要求として制御部回路によってMME回路に伝達される。可変遅延時間間隔は、選択されたアドレスについて最初のコマンドに先立って発行されたステータス要求の累積数に基づいて決定される。
【選択図】図3

Description

本開示の様々な実施形態は、一般に、これらに限定されないがフラッシュメモリなどのメモリ内のデータの管理に関する。
いくつかの実施形態によれば、装置は、メモリモジュール及び制御部回路を備える。メモリモジュールは、不揮発性メモリ(NVM)と、NVMのソリッドステート不揮発性メモリセルにデータをプログラムし、NVMのソリッドステート不揮発性メモリセルからデータを読み取るように構成されたメモリモジュール電子(MME)回路と、を備える。制御部回路は、NVM内の選択されたアドレスと、選択されたアドレスに関してMME回路によって取られる選択された行為をと含む第1のコマンドをメモリモジュールに伝達するように構成されている。制御部回路は、可変遅延時間間隔の終わりに、第1のコマンドの完了に関連するステータス要求を含む第2のコマンドをメモリモジュールに伝達するように更に構成されている。可変遅延時間間隔は、第1のコマンドの伝達に先立って発行された、選択されたアドレスに関連する以前のコマンドについて制御部回路によってメモリモジュールに以前に伝達されたステータス要求の累積数に応答して選択される。
更なる実施形態では、方法は、制御部回路からメモリモジュールのメモリモジュール電子(MME)回路に、メモリモジュールの不揮発性メモリ(NVM)内の選択されたアドレスと、アドレスに関してMME回路によって取られる選択された行為とを含む第1のコマンドを伝達するステップを含む。可変遅延時間間隔は、第1のコマンドの伝達に応答して開始される。可変遅延時間間隔の終わりには、第2のコマンドが、第1のコマンドの完了に関連するステータス要求として制御部回路からMME回路に伝達される。可変遅延時間間隔は、第1のコマンドの伝達に先立って選択されたアドレスについて制御部回路によってメモリモジュールに以前に伝達されたステータス要求の累積数に応答して選択される。
様々な実施形態を特徴付けることがある上記の特徴及び他の特徴は、以下の詳細な説明及び添付図面を考慮して理解することができる。
様々な実施形態によるデータストレージデバイスの機能ブロック表現を提供する。 いくつかの実施形態によるソリッドステートドライブ(SSD)として特徴付けられる図1のデバイスの態様を示す。 いくつかの実施形態では、図2の制御部とメモリモジュール電子(MME)回路との間のデータ及びコマンドの流れを描写する。 制御部によってMMEに対して発行されるコマンドの例示的なフォーマットである。 コマンド、ステータス要求及びデータを転送するために、制御部及びMMEによって使用されるプルシステムを示すタイミング図である。 制御部がNVM内の異なる場所に対して可変遅延時間間隔を確立する様式を描写する。 図6の制御部の動作を示す処理フロー図である。 コマンドの母集団に対する早期ステータス要求の累積数を描写するバケット図である。 NVM内の選択された場所に対する選択された遅延時間間隔に対する適応調整のグラフ表示である。 NVMのソリッドステートメモリセルの異なる母集団を示す。 NVM内の異なる場所によって実行される同じコマンドに対する異なるコマンド実行間隔を示す。 いくつかの実施形態に従って実行されるステップを示すデータ処理ルーチンのフローチャートである。
本開示は、一般に、これらに限定されないが、ソリッドステートドライブ(SSD)のフラッシュメモリなどのメモリに記憶されたデータを管理することに関する。
幅広い種類のデータ記憶メモリが当該技術分野で知られている。いくつかのメモリは、フラッシュメモリなどのフローティングゲート構造上の累積された電荷量に関連してデータを記憶するソリッドステートメモリセルから形成される。所与のフラッシュメモリ場所に新しいデータが書き込まれ得る前には、消去操作が一般的に必要とされる。
いくつかのフラッシュメモリデバイスは、フラッシュメモリモジュール及び制御部を備える。制御部がメモリモジュールにコマンドを発行し、その後、要求されたコマンドが完了したかどうかを判定するために確認するプルシステムが使用される。これは、コマンド発行後にステータスが繰り返し確認される場合など、メモリモジュールにコマンドを発行する必要がある回数を増加させる傾向がある。
メモリモジュールの製造者が、読み取り、書き込み(プログラミング)及び消去動作などの様々なコマンドの特定のコマンド完了時間を指定することが一般的である。このような規格は、最良の値であり得、異なる場所及び異なる環境条件及び状態での実際のシステム動作を表し得ないことが判明している。
コマンド完了時間の変動は、制御部とメモリモジュールとの間のデータ転送性能に複数の方法で悪影響を与えることがある。コマンド完了時間が予想以上に有意に長くなった場合は、制御部から複数のステータス要求が発行され得、その各々に対して応答され、「準備未完了(not ready)」タイプのステータスが返される。このような早期ステータス要求のサービスは、制御部とメモリモジュールの両方の重要な処理リソースを消費する可能性がある。一方、コマンドが予想よりもかなり速い速度で完了した場合、制御部はコマンドの完了を待つ必要がなくてもよく、ステータス要求を発行し、コマンドの発行又は他のプロセスへのデータ転送などの後続のステップに進んでもよい。
したがって、本開示の様々な実施形態は、概して、これらに限定されないが、ソリッドステートドライブ(SSD)におけるフラッシュメモリなどのメモリにおいてデータを管理するための装置及び方法に関する。以下に説明するように、いくつかの実施形態は、メモリモジュールに伝達するように構成された制御部回路を提供する。メモリモジュールは、メモリモジュール電子(MME)回路及び不揮発性メモリ(NVM)を備える。NVMは、フラッシュメモリアレイなどの複数のソリッドステート不揮発性メモリセルから形成される。制御部回路は、アドレス情報を含む第1のコマンド及びアドレス情報に関連してメモリモジュールによって取られる第1の行為を識別する第1の動作コードをメモリモジュールに伝達するように構成される。
制御部回路は、第1のコマンドに関連するステータス要求を含む第2のコマンドをメモリモジュールに引き続き伝達するように更に構成される。第2のコマンドは、第1のコマンドのアドレス情報に関連付けられた履歴統計に基づいて制御回路によって決定された適応又は可変遅延時間間隔に応答して発行される。このようにして、制御部回路は、メモリモジュールの観測された挙動に基づいて遅延時間を適応的に調節して、モジュールの実際のコマンド完了時間性能に更に厳密に適合させる。
様々な実施形態のこれらの並びに他の特徴及び利点は、データ取扱いシステム100を提供している図1を最初にレビューすることによって理解することができる。システム100は、ホストデバイス102及びデータ記憶デバイス104を備える。データ記憶デバイス104は、制御部106及びメモリモジュール108を備える。制御部は、メモリモジュール108内の不揮発性メモリ(NVM)ストレージへの、及びメモリモジュール108内の不揮発性メモリ(NVM)ストレージからのデータ転送のための最上位の伝達及び制御機能を提供するプログラム可能なプロセッサ及び/又はハードウェアベースの回路である。ホストデバイスとデータ記憶デバイスとの間のデータ転送は、選択されたプロトコルを介して提供され得る。
図2は、図1のデバイス104に概して対応するデータ記憶デバイス110を示す。デバイス110は、図1の102などのホストデバイスと、1つ以上のPCIe(Peripheral Component Interface Express)ポート経由で伝達するソリッドステートドライブ(SSD)として構成されるが、他の構成が使用されてもよい。
SSD 110は、制御部回路112及びメモリモジュール114を備える。制御部回路112(以下、「制御部」)は、フロントエンド制御部114と、コア制御部116と、バックエンド制御部118と、を備える。フロントエンド制御部114は、ホストI/F機能を実行し、バックエンド制御部118は、メモリモジュール114とのデータ転送を指示し、コア制御部116は、デバイスの最上位制御を提供する。
各制御部114、116及び118は、適切なメモリ場所に関連のプログラミング(例えば、ファームウェア、FW)を備えた別個のプログラム可能なプロセッサ、並びに様々なハードウェア要素を含み、データ管理及び転送機能を実行する。これは一実施形態の例示的なものにすぎない。他の実施形態において、単一のプログラム可能なプロセッサ(又は3つより少ないプログラム可能なプロセッサ)を構成し、適切なメモリ位置の関連のFWを使用して、フロントエンド、コア及びバックエンド処理を各々実行することもできる。純粋なハードウェアベースの制御部構成も使用できる。様々な制御部は、単一のシステムオンチップ(SOC)集積回路デバイスに統合されてもよく、又は必要に応じて様々な個別素子に分散されてもよい。
制御部メモリ120は、制御部112によってローカルメモリとして利用される様々な形態の揮発性及び不揮発性メモリ(例えば、SRAM、DDR DRAM、フラッシュなど)を表す。1つ以上のマップ構造122、マップデータ及び他の制御情報のための1つ以上のキャッシュ124、及びデータ転送中のホスト(ユーザ)データの一時記憶のための1つ以上のデータバッファ126など、種々のデータ構造及びデータセットは、メモリによって記憶されてもよい。非プロセッサベースのハードウェアアシスト回路128は、必要に応じて1つ以上の制御部による特定のメモリ管理タスクのオフロードを可能にすることができる。ハードウェア回路118は、プログラム可能なプロセッサを使用せず、代わりに特定アプリケーション向け集積回路(ASIC)、ゲート論理回路、フィールドプログラマブルゲートアレイ(FPGA)などのハードワイヤード論理回路の様々な形態を使用する。
メモリモジュール114は、メモリモジュール電子回路130(以下、「MME」)及びフラッシュメモリアレイ132を備える。MME 130は、読み取り/書き込み/消去(R/W/E)回路及びフラッシュメモリ132にデータを書き込むためにメモリモジュール114に組み込まれた他の制御回路を備える。MMEは、メモリ内に関連するプログラミングを有する1つ以上のプログラム可能なプロセッサ回路、並びに/又は制御部112との様々なコマンド及びデータの転送を実行するように適合されたハードウェア回路から形成されてもよい。
フラッシュメモリ132は、いくつかのフラッシュダイ134(ダイ0からダイ3と称される)を備える。3つのダイのみが示されているが、任意の数を使用することができる。MME 130は、関連するダイ134を有する確立された各チャネル(レーン)に沿って並列データ転送動作を実行するように動作することができる。フラッシュメモリは、単一の記憶階層として、又は必要に応じて複数の階層として配列させることができる。
これに限定されるものではないが、現在の世代のSSD及び他のデータ記憶デバイスシステムは、そのようなデバイスの供給元から市販されている114などの統合メモリモジュールから形成することができることは当業者には理解されよう。メモリモジュールは、デバイス製造者によって、SSDに統合され得、制御部機能を供給し、メモリモジュールと共に動作するように制御部を調節する。したがって、制御部及びメモリモジュールは、1つ以上の定義されたデータ及びコマンドインタフェースにわたって伝達する別個の動作エンティティである。「プル」システムが一般的に使用され、そのシステムでは、制御部112がコマンドを発行し、その後、コマンドが完了したかどうかを判定するために、メモリモジュール114によるこれらのコマンドのステータスを繰り返し確認(ポーリング)する。
図3は、制御部112及びMME 130の態様をより詳細に示す。MMEバッファメモリ136は、フラッシュメモリ132と制御部112のホストデータバッファ138との間で転送されるデータを一時的に記憶するために、MME 130に組み込まれているか、又はMME 130によって利用される。このようなデータ転送を実行するために、制御部112は、読み取りコマンド、書き込みコマンド、消去コマンド、データ転送コマンド、及びステータスコマンド(ステータス要求とも称される)などの様々なコマンドをMME 130に発行する。MME 130は、制御部コマンドのステータスの指示を提供するために、様々なコマンドステータス応答を提供する。
フラッシュメモリ132からデータを読み取るとき、制御部112は、SSD 110に結合された外部ホストデバイス(例えば、図1のホスト102)へのその後の転送のために、メモリから制御部に戻される要求されたデータを識別するフォーマットで読み取りコマンドを発行する。MME 130は、読み取りコマンドをスケジューリングして実行し、検索したデータをローカルMMEバッファ136に入れる。次に、制御部112は、読み取りステータス拡張(RSE)コマンドなどの1つ以上のステータス要求を発行し、検索されたデータに関連するステータスを要求する。MME 130は、各ステータス要求に応答して、読み取りステータスを供給する。
MME 130がまだデータ読み取り動作を完了していない場合、MMEは、「コマンド保留状態」タイプの読み取りステータス(「準備未完了」応答とも称される)信号を送信することができる。一旦データ読み取り動作が完了すると、MMEは、「転送準備完了(ready to transfer)」(「準備完了(ready)」応答とも称される)読み取りステータス信号を送信し、検索されたデータがMMEバッファ136に保留中であり、ホストバッファ138への転送の準備ができていることを示す。その後、制御部112は、MMEバッファ1136からホストバッファ138にデータを転送するための転送(XFER)コマンドを発行し、その後、データが要求元のホストデバイスに転送される。
書き込み(プログラム)動作も同様の様式で行うことができる。制御部112は、MME 130に書き込みコマンドを発行し、フラッシュメモリ108への後続の処理及び書き込みのためにMMEバッファ136への転送を保留しているホストバッファ138に書き込みデータを転送する。MME 130は、フラッシュメモリに正常にデータが書き込まれたことを示すために、制御部112にコマンド完了タイプの応答の信号を送る。
消去コマンドは、一度に消去され得る最小のメモリユニットを構成する特定の消去ブロックなど、フラッシュメモリ132内の選択されたメモリユニットを消去するために制御部112によって発行される。消失ブロックは、ガベージコレクションユニット(GCU)と称されるより大きいマルチブロックセットにグループ化することができる。MME 130は、消去コマンドに応答して、影響を受けたブロック内の現在の(有効な)データが新しい場所にコピーされ、ブロックが消去され、その後、新しいデータのストレージのために後続の割り当てを保留する割り当てプールに配置されるガーベジコレクション動作をスケジュールする。理解されるように、NANDフラッシュなどの消去可能メモリは、典型的には、所与の場所が新しいデータで上書きされ得る前に消去動作を必要とする。
制御部112によってMME 130に発行されるこれらのコマンド及び他の様々なコマンドは、図4に示すような一般的な形態を取ることができる。例示的なコマンド140は、オペコード142及びアドレス144を含む。オペコード142は、マルチビットシーケンスであり、MME 130のオペレーションデコーダ146によってデコードされ、MMEによって取られる所望の動作又は行為を表す。第1のマルチビットシーケンスは、読み取りコマンドを表すことができ、第2のマルチビットシーケンスは、プログラムコマンドなどを表すことができる。
アドレス144は、コマンドが実行される対応するメモリの場所を表す。アドレス144は、MME 130のアドレスバッファ148にロードされる。アドレスは様々な形式を取ることができ、特定のダイ、プレーン、GCU(ガベージコレクションユニット)、消去ブロック、ページ、行、列オフセットなどを識別する値を含むことができる。行アドレス指定及び/又は列アドレス指定の両方を使用することができる。所望のとおり、ヘッダ、パリティビットなど、コマンドフォーマットに他の要素を組み込むことができるが、このようなものは、例解を簡略化するために省略している。
この時点で、所与のコマンドの特定のフォーマットは、制御部とMMEとの間のI/O通信を制御するために確立された通信プロトコルに依存することに留意されたい。ステータス要求などのコマンドは、オペコード部分を含み得るが、対応するアドレス部分などは含まない。
図5は、制御部112とMME 130との間の選択されたコマンドの処理中に実行される動作の一般的なシーケンスを例解するために、タイミング図150を提供する。図5では、コマンドは、MME内の選択された場所から選択された量のデータを読み取るための読み取りコマンドであることが企図される。制御部112によって、MME 130に、図4に示すフォーマットの読み取りコマンドが発行される。一旦受信されると、MMEは、フラッシュメモリ132からの要求されたデータの読み取りのスケジューリング及び実行を進める。
所定の待機時間(遅延時間)後、制御部は、第1の読み取りステータス要求を発行する。MMEは、コマンド(読み取りステータス要求)をデコードし、システムの状態を決定し(コマンドの実行はまだ進行中である)、応答(準備未完了)を発行する。後続の待機時間は制御部によって経験され、続いて第2の読み取りステータス要求がMMEに対して発行される。第2の待機時間は、第1の待機時間と同じ持続時間であってもよいか、又は第2の間隔に対してより短い待機時間が用いられてもよい。第1のステータス要求と第2のステータス要求との間に介在する時間において、読み取りコマンドが完了し、データはMMEバッファ136(図3)に移動される。
MMEは、第2の読み取りステータスを処理し、このとき、データが準備完了であることを示す。これに制御部からの転送コマンドが続き、データはMMEバッファ136から要求元ホストへの転送が保留されているホストバッファ138(図3)に転送される。書き込みコマンド及び消去コマンドなどの他のコマンドも同様のシーケンスに従うことが理解されよう。最上レベルのコマンドが発行され、コマンドの進行を追跡する1つ以上のステータス要求が続き、その後、一旦コマンドが完了したものとして示されると、後続の処理が行われる。
システムの構成及び作業負荷に応じて、図5に示されたコマンドシーケンスと同様の数百又は数千のコマンドシーケンスがそれぞれの制御部及びMMEによって同時に処理され得る。図5では、2つのステータス要求のみが発行されたが、任意の数の追加のステータス要求が、所与のコマンドの保留中に発行され得ることは理解されよう。したがって、保留中の多数のコマンドについて多くの失敗したステータス要求が発行されると、ホストデータのI/O転送中に制御部とMMEとの両方に大きな負荷が付与されることがある。同時に、ステータス要求間の遅延を著しく長くして、これらの早期要求を取り除くことは、制御部がコマンドのステータスを要求するよりもかなり前にMMEがコマンドを完了することがあり得るため、実効ホストデータのI/Oデータ転送速度を不必要に低下させる可能性がある。
制御部112は、様々なタイプのコマンドが遭遇する様々な遅延時間を適応的に調節して、ステータスコマンドの発行をより良く管理し、MME 130の実際の性能と一致させるように構成される。図6は、制御部に組み込まれているか、さもなければ制御部によって利用されている様々な動作回路と共に制御部112を示す。制御部と同様に、様々な回路は、所望のとおり、ハードウェア及び/又はファームウェア(プログラミング)で実現することができる。
回路は、タイマー回路160と、ローカルメモリ内のデータ構造として記憶された累積統計テーブル162と、学習アルゴリズム164と、平均化回路166と、ローカルメモリ内のデータ構造としても記憶された遅延テーブル168と、1つ以上の環境センサ170と、を備える。確率的(ブルーム)フィルタの使用を含む他の構成を使用することができる。制御部は、コマンドのタイプ、場所(例えば、異なるダイ、ページなど)及び環境条件(例えば、温度、コマンドキューの深さなど)の異なる組み合わせに対して、これらの様々な回路を利用して、適切な遅延時間又は経過時間の遅延間隔を確立する。その後、遅延時間は、様々な組み合わせについての以前の累積された統計値に対して、増分又は減分などによって連続的に調節される。
図7は、いくつかの実施形態において、図6の回路の動作を説明するための一般化されたプロセスフローを示す。具体的な例解を提供する目的で、図7のフローは、選択されたダイ134(例えば、ダイ0)などの特定の場所から以前に記憶されたデータを検索するために制御部112によって発行される読み取りコマンドの母集団を網羅することを企図するものとする。コマンド母集団は、すべての環境条件用であってもよいか、又は、デバイスが選択された周囲温度範囲内で動作している間に実行されるコマンドのサブセットであってもよい。これにより、制御部は、統計的に有意であることが判明している場合、他の温度範囲(又は他の環境条件)において、異なる遅延時間又は読み取りコマンドの時間を選択することが可能になる。
各読み取りコマンドは、ステップ172に示すように発行される。これに続いて、タイマーが開始され、174において以前に選択されたベースライン増分に対応する経過時間間隔を数える。ついでながら、Xマイクロ秒(ms)など、毎回同じ遅延間隔を使用することができるか、又は長い初期遅延時間Xmsを使用することができ、その後、各連続した読み取り要求について、短い遅延Ymsが続く(X>Y)。一例では、Xは約40〜45msオーダーであり得、使用される場合、Yは約5〜10msオーダーであり得る。他の値を使用してもよい。
ステップ176に示すように、各遅延期間増分の終了時にステータス要求が発行され、MME 130は、「準備未完了」応答又は「準備完了」応答のいずれかで応答する(図5参照)。ステップ178では、早期ステータス要求、すなわち、ステップ178において、「準備未完了」表示を戻した要求の総数が累積される。
一旦十分な数の統計が累積されると、ステップ180において、X−A又はX+Bなどの新しいベースライン遅延値が割り当てられる。場合によっては、応答を得るために必要な時間の平均を、累積データから補間することができる。新しいベースライン遅延値は、ステップ182で記憶され、更なる読み取り要求に使用される。このようにして、システムは、不要な(早期の)ステータス要求及びコマンドが完了した後にステータスを提供する際の望ましくない遅延の両方を低減するために、ベースライン遅延を適応的に調節し続けることができる。場合によっては、累積数マスクビットを使用して、制御部が誤っていることが分かっている特定の数を除外することができる。これにより、より正確なランニングアベレージ又は他の累積統計値を決定することができる。
図8は、図7の動作から累積された早期ステータス要求の異なる数に対する様々なバー186(バケット)を示すバケット分析グラフ184である。図8の累積データは、0からN−1までの早期なステータス要求の異なる相対的なそれぞれの数を示す。テストされた組み合わせに関連するばらつきの量、並びに連続するステータス要求間で使用される増分が、全体の分布の形状に影響する傾向がある。
それにもかかわらず、時間の経過と共に得られる分布は、本質的に多少ガウス分布であり、平均的なコマンド完了時間の付近にピーク値又はその他の平均値を有することが企図される。図8に提示するようなデータは、統計的に有意な数のコマンドにわたって累算し、1つ以上の新しい適切なベースライン遅延値に到達することができる。場合によっては、1〜2の要求又は他の値などの少数の許容可能な早期ステータス要求が発行されるように、平均を設定することができる。
図9は、ある時間にわたる所与の組み合わせに対する遅延時間に適用され得る適応調節を示す曲線188を示す。遅延時間は、定常状態の値又は範囲に収束することが企図される。経時的に、温度、エージング、読み取り妨害効果、訂正不能エラーによる読み取り回復効果などの環境要因を、適切な遅延時間の適応調節に組み入れることもある。調節量は、システムにヒステリシスを追加し、閉ループ収束を確実に最適な遅延値にするために、最大の増分値又は減分値に制限され得る。平均化、ローリングウィンドウ、カーブフィット、回帰分析及び他の技術は、次の調節された遅延値(複数可)に達するように容易に適用することができる。関連する場所の以前の履歴データの好適な量をメモリ内に維持し(例えば、図6の累積統計ブロック162を参照)、新しい計算に使用することができる。
場合によっては、同じダイ又は他のメモリ構造内の異なる場所が、著しく異なる応答時間をもたらし得る。図10は、マルチレベルセル(MLC)としてプログラムされた異なるフラッシュメモリセルの一連の集団曲線190を示す。各MLCは、合計2ビットを記憶する。メモリセルの行(例えば、消去ブロック内の共通ワード線に結合される)は、データの下位ページとデータの上位ページを同時に記憶するMLCとして構成されてもよい。下位ページは、プログラムされた状態の最上位ビット(MSB)によって表され、上位ページは少なくとも最下位ビット(LSB)によって表される。SLC(単一レベルセル)、TLC(3レベルセル)、QLC(4レベルセル)などの他の記録方式を使用してもよい。
それぞれの集団のプログラムされた状態は、セルの制御ゲートに対して1つ以上の電圧閾値を適用することによって決定することができる。このような4つの電圧閾値は、V1〜V4に示す。一般に、電圧閾値の適用は、導通状態で閾値以下にセルを配置する(例えば、図10の左側)傾向があり、通常の非導通状態で閾値を超えるセルを維持する傾向がある(例えば、図10の右側)。
したがって、各状態のMSBを識別し、それ故に、データの下位ページを回復させるために、単一の電圧閾値(例えば、V3)のみが適用される必要があるということに基づいて、データの下位ページはデータの上位ページより速く読み取られ得る。それぞれの状態のLSBを識別し、データの上位ページを回復するために追加の閾値(例えば、V2、V4)を適用する必要がある。したがって、制御部112は、データのどのページが検索されているかに関するベースライン遅延を更に調節することができる。下位ページが要求されている場合、第1の遅延値が使用され得、上位(又はそれ以上)のページが要求されている場合は、長い第2の遅延値が使用されてもよい。場合によっては、ベースライン遅延値は、下位ページ(SLCデータ)の検索に基づいて決定され得、わずかな増分がベースライン遅延値に追加され、同じセルセットから上位又はより高いページデータを検索するために必要な追加時間となり得る。
コマンドのタイプが異なると、完了までに平均時間量が大幅に異なる必要がある傾向にある。例えば、読み取りコマンドにはXms、書き込みコマンドにはYms、消去コマンドにはZms(X<Y<Z)が必要な場合がある。それにもかかわらず、選択された消去ブロック又は消去ブロックのグループからのすべてのページは、それぞれ、同様の読み取り時間性能、書き込み時間性能及び消去時間性能をもたらす傾向があり得る。このような場合には、必要に応じてページ場所を調節して、消去ブロックごとにコマンドの各タイプの平均値を計算することができる。しかし、異なるダイ134は、様々なコマンドされた動作を完了するために、有意に異なる遅延時間を示すことがある。これにより、1つのダイが平均読み取り/書き込み/消去時間(X、Y、Z)を提供し、別のダイが異なる平均読み取り/書き込み/消去時間(A、B、C)を提供するようになる。
図11は、フラッシュアレイ内の2つの異なる場所に関する2つの別個のコマンド実行間隔のグラフ表示を示す。第1のコマンド実行間隔は192で表されており、第1の選択されたダイX上の第1の選択されたページWに向けられた選択されたコマンドの実行を完了するための時間T0から時間T1までの平均経過時間を表す。第2の更に長いコマンド実行間隔は、194で表されており、第2の選択されたダイZ内の第2の選択されたページYのための同じタイプのコマンドの実行を完了するための時間T0から時間T2に及ぶ平均経過時間を表す。
例示的な可変遅延時間間隔は、T0から時間T3までの経過時間として示される。上述のとおり、可変遅延時間間隔は、第1のコマンド(時間T0で選択された行為)から第2のコマンドの次の伝達(時間T3でのステータス要求)までの時間間隔を表す。時間T3でステータス要求を発行することは、両方の実行間隔に関して準最適な解決策であり得ることが分かり得る。遅延は、ダイX(ブロック172)については長く、ダイZ(ブロック174)については短すぎると考えられ得る。したがって、別個の遅延を個々に調節することが、ドライブのスループット性能の向上をもたらし、速いダイXには短い遅延間隔を使用することができ、遅いダイZには長い遅延間隔を使用することができ、早期の及び不必要に遅延したステータス要求の数がいずれも削減されることになる。
上述したように、場合によっては、所与のタイプのコマンドについて所与の場所についての初期ベースライン遅延が計算され、次に、ページの場所、環境要因、データエージング、プログラム/消去数、読み取り妨害数などの他の要因を使用して、初期ベースライン遅延を増分又は減分させて、最終的な遅延値とすることができる。全体として、平均して比較的少数の早期ステータス要求をもたらすベースライン遅延を選択することが最適であることが想起されるであろう。上述の図7〜図8に論じたとおり、これらの統計値を継続して累積することで、制御部にフィードバックを提供して、既存の設定を増減させ得る。所定の設定は、早期ステータス要求の数の閾値限界(個々のコマンド又は平均コマンド数のいずれかに)に達するまで、継続して使用され得る。
図12は、上記で論じた態様を要約するためのデータ処理ルーチン200のフローチャートを示す。このルーチンは、ホストデバイス102によって発行された様々なデータ転送コマンドのサービス中での、制御部112による動作を表すことが企図されている。様々なステップは、1つ以上のプログラマブルプロセッサによって実行されるプログラミングに組み込まれたプログラム命令フローに対応することができる。このルーチンは単なる例示であり、本開示に従って必要に応じて変更され得る。
ステップ202において、データ転送コマンドが制御部112によって最初にMME 130に発行される。これは、読み取りコマンド、書き込みコマンド又は消去コマンドなど、任意の数の適切な形態を取ることができる。ステップ204では、コマンドのアドレス(例えば、図4のコマンドのアドレス部分)に関連する遅延時間のベースライン値がメモリ(図6の遅延テーブル168など)から呼び出される。ベースライン値は、ベースライン値に対応する経過時間間隔を示すためにタイマー(図6のタイマー回路160など)を開始するために使用される(ステップ206)。
決定ステップ208は、経過時間間隔が完了したかどうかを決定するためにループを提供する。決定した場合、制御部112は、ステップ210において、第1のステータス要求コマンドをMME 130に発行することに進む。ステップ212は、コマンド実行が完了したかどうか、すなわち、MMEが「準備未完了」又は「準備完了」ステータスを返すかどうかを示す。そうでなければ、ルーチンは第2の時間間隔の実行のためにブロック206に返る。上述したように、この第2の時間間隔は、第1の時間間隔と同じ持続時間であってもよいか、又は異なる時間間隔であってもよい。時間間隔はすべて同じであるか、又は後続の時間間隔が短くなることが企図されるが、これは必ずしも必要ではない。特定の状況下で長い時間間隔を提供することが有利になり得る場合には、異なる構成が企図される。
一旦コマンドがきちんと完了したことをMMEが示すと、フローはステップ212からステップ214に移行し、図5で上述したとおりデータが検索される。この時点で、制御部112は、必要に応じて、他のステップを実行することに進み、ルーチンのサービスを完了させる。更に、制御部112は、ステップ216において、既存のベースライン遅延値を調節するかどうかを決定する。このような場合には、ステップ218において、上述したように、関連付けられた場所に関する累積統計が分析され、新しいベースライン値に到達し、その後、この値がステップ202のその後の動作中に記憶され使用される。
場合によっては、制御部112は、連続動作中に様々な遅延時間のリアルタイム調節を提供することができ、その結果、システムは、時間の経過と共に常に適応的に調節される。このアプローチの利点は、システムが、メモリモジュール114の進行中の性能を厳密に監視し、それに適合させることである。他の場合には、データは、図7及び図9に示されるように累積されてもよく、制御部112は、オフライン又はより低い需要間隔の間に較正ルーチンを実行して、適切な遅延間隔を確立してもよい。更に他の実施形態では、制御部112は、定期的に試験較正読み取りを実施してもよい(例えば、システム内の各ダイ/消去ブロックの組み合わせから少なくとも1ページを読み取って、現在の遅延値を評価し、必要に応じて調節を行う)。
様々な実施形態をフラッシュメモリの環境で記載してきたが、これは単なる例示である。様々な実施形態は、スピントルク転送ランダムアクセスメモリ(STRAM)、抵抗ランダムアクセスメモリ(RRAM(登録商標))、相変化ランダムアクセスメモリ(PCRAM)、磁気ランダムアクセスメモリ(MRAM)など、他の形態のソリッドステートメモリに容易に実装され得る。
本開示の様々な実施形態の多数の特徴及び利点が、様々な実施形態の構成及び機能の詳細と一体となって、前述の説明に記載されているとしても、この詳細な説明は一例にすぎず、変更が詳細に行われ、特に、本開示の原理の範囲内の部品の構成及び配置という点で特許請求の範囲に記載された用語の広い一般的な意味によって示唆された最大限の範囲まで行われることがある、と理解されるべきである。

Claims (20)

  1. 不揮発性メモリ(NVM)及び前記NVMのソリッドステート不揮発性メモリセルにデータをプログラムし、前記NVMの前記ソリッドステート不揮発性メモリセルから前記データを読み取るように構成されたメモリモジュール電子(MME)回路を備える、メモリモジュールと、
    前記NVM内の選択されたアドレス及び前記選択されたアドレスに関して前記MME回路によって取られる選択された行為を含む第1のコマンドを前記メモリモジュールに伝達するように適合された制御部回路と、を備え、前記制御部回路が続いて、可変遅延時間間隔の終わりに、前記第1のコマンドの完了に関連するステータス要求を含む第2のコマンドを前記メモリモジュールに伝達するように更に適合され、前記可変遅延時間間隔が、前記第1のコマンドの伝達に先立って発行された、前記選択されたアドレスに関連する以前のコマンドについて前記制御部回路によって前記メモリモジュールに以前に伝達されたステータス要求の累積数に応答して選択される、装置。
  2. 前記MME回路が、コマンド実行間隔にわたって前記第1のコマンドを実行するように構成され、前記MME回路が、前記コマンド実行間隔の終了前に前記第2のコマンドの前記ステータス要求を受信したことに応答して、前記制御部回路に「準備未完了(not ready)」ステータスを伝達するように更に構成され、前記MME回路が、前記コマンド実行間隔の終了後に前記第2のコマンドの前記ステータス要求を受信したことに応答して、前記制御部回路に準備完了(ready)ステータスを伝達するように更に構成されている、請求項1に記載の装置。
  3. 可変遅延時間間隔が、第1の可変遅延時間間隔であり、前記制御部回路が、前記第2のコマンドの前記ステータス要求に応答して、前記MME回路から前記準備未完了ステータスを受信したことに応答して、第2の可変遅延時間間隔の終わりに、前記第1のコマンドの完了に関連する第2のステータス要求を含む第3のコマンドを前記メモリモジュールに伝達するように更に構成されている、請求項2に記載の装置。
  4. 前記第1の可変遅延時間間隔及び前記第2の可変遅延時間間隔が、それぞれ同じ持続時間である、請求項3に記載の装置。
  5. 前記第2の可変遅延時間間隔が、前記第1の可変遅延時間間隔よりも短い持続時間である、請求項3に記載の装置。
  6. 前記制御部回路が、前記複数の異なるアドレスの各々に対するコマンドの伝達と前記コマンドの関連するステータス要求の伝達との間の経過時間の間、前記NVM内の複数の異なるアドレスの各々について異なる可変遅延時間間隔を使用する、請求項1に記載の装置。
  7. 前記可変遅延時間間隔が、第1の可変遅延時間間隔であり、前記選択された行為が、読み取り、書き込み又は消去動作のうちの選択された1つであり、前記制御部回路が、前記選択されたアドレスに関連する前記読み取り、書き込み又は消去動作のうちの残りの1つを実行するための第3のコマンドを前記メモリモジュールに伝達することと、前記第3のコマンドのステータスを決定するためにステータス要求を発行することとの間で、異なる第2の可変遅延時間間隔を使用する、請求項1に記載の装置。
  8. 前記制御部回路が、前記選択されたアドレスに関連する前記メモリモジュールに伝達された複数の連続するコマンドについて、初期遅延時間間隔を使用して、前記複数の連続するコマンドの各々に関連する早期ステータス要求のそれぞれの数を累積することと、前記早期ステータス要求の集団分布に応答して前記可変遅延時間間隔に到達するように前記初期遅延時間間隔を調節することと、によって、前記遅延時間間隔を決定し、前記早期ステータス要求の各々が、前記関連するコマンドがまだ完了していないことを示す前記MME回路による指示を含む、請求項1に記載の装置。
  9. 前記NVMが、複数のダイを含むNANDフラッシュメモリアレイを備え、前記選択されたアドレスが、前記複数のダイから選択されたダイを含む、請求項1に記載の装置。
  10. ローカルメモリにデータ構造として記憶される遅延テーブルを更に含み、前記遅延テーブルが、前記複数のダイの各々について異なる可変遅延時間間隔を前記制御部回路に提供する、請求項1に記載の装置。
  11. 前記選択されたアドレスが、少なくともデータの第1ページ及びデータの第2ページを記憶する前記ソリッドステート不揮発性メモリセルの選択されたグループを含むように、前記NVMの前記ソリッドステート不揮発性メモリセルが複数ビットセルとして構成され、前記可変遅延時間間隔が、前記選択されたアドレスにおけるデータの前記第1のページに関連する第1の可変遅延時間間隔であり、前記制御部回路が、前記選択されたアドレスにおけるデータの前記第2のページに関連する第3のコマンドを発行することと、前記第3のコマンドの完了に関するステータス要求として第4のコマンドを発行することとの間で、異なる第2の可変遅延時間間隔を更に使用する、請求項1に記載の装置。
  12. 前記第1のコマンドが、前記MME回路によって取られる前記選択された行為を示すマルチビット値としての第1の動作コード部分と、前記NVMにおける前記選択されたアドレスを識別するマルチビット値としてのアドレス部分とを含み、前記第2のコマンドが、前記第1のコマンドにおける前記第1の動作コード部分の完了に関するステータスを要求するマルチビット値としての第2の動作コード部分を含む、請求項1に記載の装置。
  13. 前記制御部回路によって前記第1のコマンドと前記第2のコマンドとの間に前記選択されたアドレスに対する介在コマンドが発行されないように、前記第2のコマンドが、前記第1のコマンドの後に前記選択されたアドレスに対して前記制御部回路によって発行された次の即時コマンドである、請求項1に記載の装置。
  14. 制御部回路からメモリモジュールのメモリモジュール電子(MME)回路に、前記メモリモジュールの不揮発性メモリ(NVM)内の選択されたアドレス及び前記アドレスに関連して前記MME回路によって取られる選択された行為を含む第1のコマンドを伝達することと、
    前記第1のコマンドの前記伝達に応答して可変遅延時間間隔を開始することと、
    前記可変遅延時間間隔の終わりに、前記第1のコマンドの完了に関連するステータス要求を含む第2のコマンドを前記制御部回路から前記MME回路に伝達することと、を含み、前記可変遅延時間間隔が、前記第1のコマンドの前記伝達に先立つ前記選択されたアドレスについて前記制御部回路によって前記メモリモジュールに以前に伝達されたステータス要求の累積数に応答して選択される、方法。
  15. 前記可変遅延時間間隔が、第1の持続時間を有する第1の間隔であり、前記方法が、前記第2のコマンドの前記ステータス要求に応答した、前記選択された行為が完了していないことを示す前記MMEからの指示を受信したことに応答して、前記制御部回路によって前記可変遅延時間間隔を長い第2の持続時間を有する第2の間隔に増分させることを更に含む、請求項14に記載の方法。
  16. 前記可変遅延時間間隔が、第1の可変遅延時間間隔であり、前記制御部回路が、前記第2のコマンドの前記ステータス要求に応答して、前記MME回路から準備未完了ステータスを受信したことに応答する第2の可変遅延時間間隔の終わりに、前記第1のコマンドの完了に関連する第2のステータス要求を含む第3のコマンドを前記メモリモジュールに伝達するように更に構成されている、請求項14に記載の方法。
  17. 前記MME回路によって、コマンド実行間隔にわたって前記第1のコマンドを実行することと、
    前記コマンド実行間隔の終了前に、前記第2のコマンドの前記ステータス要求を受信したことに応答して、準備未完了ステータスを前記MME回路によって前記制御部回路に伝達することと、を更に含む、請求項14に記載の方法。
  18. 前記MME回路によって、コマンド実行間隔にわたって前記第1のコマンドを実行することと、
    前記コマンド実行間隔の前記終了後に、前記第2のコマンドの前記ステータス要求を受信したことに応答して準備完了ステータスを前記MME回路によって前記制御部回路に伝達することと、
    前記準備完了ステータスに応答して前記第1のコマンドに関連する第2の選択された行為を取るための第3のコマンドを前記制御部回路によって前記MME回路に伝達することと、を更に含む、請求項14に記載の方法。
  19. 初期遅延時間間隔を使用して、前記選択されたアドレスに対する複数の連続コマンドの各々に関連する早期ステータス要求のそれぞれの数を累積することであって、前記早期ステータス要求の各々が、前記関連するコマンドがまだ完了していないことを示す前記MME回路による指示を含む、累積することと、
    前記早期ステータス要求の集団分布に応答して前記可変遅延時間間隔に到達するように前記初期遅延時間間隔を調節することと、によって前記可変遅延時間間隔の規模を決定することを更に含む、請求項14に記載の方法。
  20. 前記NVMが、複数のダイを含むNANDフラッシュメモリアレイを備え、前記選択されたアドレスが、前記複数のダイから選択されたダイを含み、前記方法が、前記残りのダイの各々に対するコマンドの発行と後続のステータス要求との間で異なる可変遅延時間間隔を使用することを更に含む、請求項14に記載の方法。
JP2018097209A 2017-05-26 2018-05-21 メモリ内のデータを管理するための装置および方法 Active JP6805205B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/606,549 US10140027B1 (en) 2017-05-26 2017-05-26 Data transfers with adaptively adjusted polling times
US15/606,549 2017-05-26

Publications (3)

Publication Number Publication Date
JP2018200689A true JP2018200689A (ja) 2018-12-20
JP2018200689A5 JP2018200689A5 (ja) 2019-03-07
JP6805205B2 JP6805205B2 (ja) 2020-12-23

Family

ID=64315827

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018097209A Active JP6805205B2 (ja) 2017-05-26 2018-05-21 メモリ内のデータを管理するための装置および方法

Country Status (5)

Country Link
US (2) US10140027B1 (ja)
JP (1) JP6805205B2 (ja)
KR (1) KR102154781B1 (ja)
CN (1) CN108932110B (ja)
TW (1) TWI672591B (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10474361B1 (en) * 2018-05-02 2019-11-12 Seagate Technology Llc Consolidating non-volatile memory across multiple storage devices for front end processing
KR102655360B1 (ko) * 2018-12-13 2024-04-05 에스케이하이닉스 주식회사 컨트롤러, 데이터 저장 장치 및 그것의 동작 방법
KR20200073592A (ko) * 2018-12-14 2020-06-24 에스케이하이닉스 주식회사 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
US10685722B1 (en) * 2019-01-24 2020-06-16 Western Digital Technologies, Inc. Method and system for improving performance of a storage device using asynchronous independent plane read functionality
CN109979508A (zh) * 2019-03-15 2019-07-05 合肥沛睿微电子股份有限公司 固态硬盘装置与相关的固态硬盘控制电路
TWI718532B (zh) 2019-05-10 2021-02-11 技嘉科技股份有限公司 固態硬碟以及固態硬碟的效能優化方法
US11669272B2 (en) * 2019-05-31 2023-06-06 Micron Technology, Inc. Predictive data transfer based on availability of media units in memory sub-systems
US10949115B2 (en) 2019-06-24 2021-03-16 Western Digital Technologies, Inc. Flash memory polling
KR20210041829A (ko) * 2019-10-08 2021-04-16 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 동작 방법
CN111078146B (zh) * 2019-12-13 2023-11-14 合肥兆芯电子有限公司 存储器管理方法、存储器存储装置及存储器控制电路单元
US11468960B2 (en) * 2019-12-31 2022-10-11 Micron Technology, Inc. Semiconductor device with selective command delay and associated methods and systems
CN113867640A (zh) * 2021-09-28 2021-12-31 合肥兆芯电子有限公司 存储器轮询方法、存储器存储装置及存储器控制电路单元
US11836384B2 (en) 2022-03-10 2023-12-05 Western Digital Technologies, Inc. Automatic prediction timers adaptation
CN115269468B (zh) * 2022-09-29 2023-01-24 北京特纳飞电子技术有限公司 状态读取指令发送方法、装置、存储设备和可读存储介质

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5159672A (en) * 1989-12-28 1992-10-27 Intel Corporation Burst EPROM architecture
US7953931B2 (en) * 1999-08-04 2011-05-31 Super Talent Electronics, Inc. High endurance non-volatile memory devices
US6804741B2 (en) 2002-01-16 2004-10-12 Hewlett-Packard Development Company, L.P. Coherent memory mapping tables for host I/O bridge
US8533401B2 (en) 2002-12-30 2013-09-10 Intel Corporation Implementing direct access caches in coherent multiprocessors
US7844778B2 (en) 2006-07-11 2010-11-30 International Business Machines Corporation Intelligent cache replacement mechanism with varying and adaptive temporal residency requirements
US20090172213A1 (en) * 2007-12-31 2009-07-02 Sowmiya Jayachandran Command completion detection in a mass storage device
KR101507122B1 (ko) * 2008-04-29 2015-04-01 삼성전자주식회사 반도체 메모리 장치 및 그것의 액세스 방법
US8825940B1 (en) 2008-12-02 2014-09-02 Siliconsystems, Inc. Architecture for optimizing execution of storage access commands
US9176859B2 (en) 2009-01-07 2015-11-03 Siliconsystems, Inc. Systems and methods for improving the performance of non-volatile memory operations
US10079048B2 (en) 2009-03-24 2018-09-18 Western Digital Technologies, Inc. Adjusting access of non-volatile semiconductor memory based on access time
CN101692647B (zh) * 2009-10-12 2012-03-14 清华大学 路由器中采用IPv6头封装IPv4包的隧道转发系统
US8495299B2 (en) 2009-11-16 2013-07-23 Microsoft Corporation Non-blocking data transfer via memory cache manipulation
US9218281B2 (en) 2012-05-04 2015-12-22 Seagate Technology Llc Maintaining ordering via a multi-level map of a solid-state media
US9772651B2 (en) * 2012-09-14 2017-09-26 Samsung Electronics Co., Ltd. Embedded multimedia card (eMMC), host controlling eMMC, and method operating eMMC system including the use of a switch command defining an adjustment delay for a data signal
US9032177B2 (en) * 2012-12-04 2015-05-12 HGST Netherlands B.V. Host read command return reordering based on time estimation of flash read command completion
US9250901B2 (en) 2013-03-12 2016-02-02 Intel Corporation Execution context swap between heterogeneous functional hardware units
US9405672B2 (en) 2013-06-25 2016-08-02 Seagate Technology Llc Map recycling acceleration
US9824004B2 (en) * 2013-10-04 2017-11-21 Micron Technology, Inc. Methods and apparatuses for requesting ready status information from a memory
US9514057B2 (en) * 2013-12-04 2016-12-06 Sandisk Technologies Llc Storage module and method for managing logical-to-physical address mapping
US9093160B1 (en) * 2014-05-30 2015-07-28 Sandisk Technologies Inc. Methods and systems for staggered memory operations
US20160019160A1 (en) * 2014-07-17 2016-01-21 Sandisk Enterprise Ip Llc Methods and Systems for Scalable and Distributed Address Mapping Using Non-Volatile Memory Modules
KR20170001237A (ko) * 2015-06-26 2017-01-04 에스케이하이닉스 주식회사 상태 읽기를 수행하는 메모리 시스템 및 그것의 동작 방법

Also Published As

Publication number Publication date
US10664168B2 (en) 2020-05-26
TWI672591B (zh) 2019-09-21
JP6805205B2 (ja) 2020-12-23
KR102154781B1 (ko) 2020-09-10
KR20180129696A (ko) 2018-12-05
TW201901440A (zh) 2019-01-01
US20180341403A1 (en) 2018-11-29
US10140027B1 (en) 2018-11-27
CN108932110A (zh) 2018-12-04
US20190095099A1 (en) 2019-03-28
CN108932110B (zh) 2021-08-13

Similar Documents

Publication Publication Date Title
JP6805205B2 (ja) メモリ内のデータを管理するための装置および方法
EP3637421A1 (en) Storage device and operating method of storage device
CN105843553B (zh) 包括能够进行重写操作的存储装置的存储系统的操作方法
US20160026402A1 (en) System and method for providing consistent, reliable, and predictable performance in a storage device
US10643711B1 (en) Workload based dynamic erase suspend adaptation
US20130205085A1 (en) Program suspend/resume for memory
KR20180027710A (ko) 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 불휘발성 메모리 장치의 액세스 방법
US10949115B2 (en) Flash memory polling
JP6716693B2 (ja) 書き込みカウントに基づいて書き込みパラメータを調整する装置および方法
CN111381777A (zh) 用于受管理存储器的仲裁技术
CN111383679A (zh) 用于管理存储器的仲裁技术
US20160342365A1 (en) Memory device that sorts access commands to a nonvolatile semiconductor memory unit thereof
CN112534392A (zh) 用于存储器系统中的读取操作的服务质量控制
US11041763B2 (en) Adaptive throttling
CN111382097A (zh) 用于受管理存储器的仲裁技术
KR102553264B1 (ko) 메모리 컨트롤러 및 이의 동작 방법
US20200409561A1 (en) Data storage system with i/o determinism latency optimization
CN111833949A (zh) 存储器控制器、存储器系统及其操作方法
US9507710B2 (en) Command execution using existing address information
US11861207B2 (en) Management of erase suspend and resume operations in memory devices
US11307918B2 (en) Memory controller performing recovery operation, operating method of the same, and memory system including the same
US11256621B2 (en) Dual controller cache optimization in a deterministic data storage system
CN112231252B (zh) 用于存储器子系统的内部管理业务调节
US20230393750A1 (en) Apparatus with response completion pacing
CN109508205B (zh) 支持原位操作的nvm芯片、其操作方法以及固态存储设备

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190123

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190123

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200303

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200527

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201203

R150 Certificate of patent or registration of utility model

Ref document number: 6805205

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150