JP5719013B2 - フラッシュ読取コマンド完了の時間推定に基づくホスト読取コマンドリターンのリオーダリング - Google Patents

フラッシュ読取コマンド完了の時間推定に基づくホスト読取コマンドリターンのリオーダリング Download PDF

Info

Publication number
JP5719013B2
JP5719013B2 JP2013250303A JP2013250303A JP5719013B2 JP 5719013 B2 JP5719013 B2 JP 5719013B2 JP 2013250303 A JP2013250303 A JP 2013250303A JP 2013250303 A JP2013250303 A JP 2013250303A JP 5719013 B2 JP5719013 B2 JP 5719013B2
Authority
JP
Japan
Prior art keywords
cost
volatile memory
host
memory die
read command
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
JP2013250303A
Other languages
English (en)
Other versions
JP2014110058A (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 JP2014110058A publication Critical patent/JP2014110058A/ja
Application granted granted Critical
Publication of JP5719013B2 publication Critical patent/JP5719013B2/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
    • 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/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • 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
    • 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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • 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
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/10Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
    • G06F2206/1014One time programmable [OTP] memory, e.g. PROM, WORM
    • 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/7205Cleaning, compaction, garbage collection, erase control

Description

本発明の実施形態は、ソリッドステートドライブ(SSD)からホストにデータを返す順序を決定するための推定機構に関する。
ソリッドステートドライブ(SSD)は、データを永続的に記憶するためにメモリユニットとして集積回路アセンブリを使用するデータ記憶装置である。SSD技術は、従来のブロック入力/出力(I/O)ハードディスクドライブ(HDD)と互換性がある電子インターフェースを使用する。SSDはいかなる移動機械部品も用いず、このことにより、可動読取書込ヘッドを使用し、回転している磁気ディスク上にデータを記憶させる従来のHDDと区別される。
現在、ほとんどのSSDは、NAND型フラッシュメモリを使用する。NAND型フラッシュメモリは、電力がない状態でデータを保持し、(フラッシュメモリはEEPROMから開発されたため)電気的に消去し、再プログラムすることができる不揮発性メモリの形態である。さらに、ハイブリッドドライブは、頻繁にアクセスされるデータの性能を改善するために典型的にはハードディスクドライブおよびSSDキャッシュを含む、SSDおよびHDDの両方の特徴を同じユニット内に併せ持つ。フラッシュメモリは、浮遊ゲートトランジスタから作られたメモリセルのアレイに情報を記憶する。
エンタープライズSSDの実装は、例えばサーバにおいて、典型的にデスクトップならびにラップトップのHDDドライブおよびSSDドライブと異なり、より高い性能基準が保たれている。すなわち、エンタープライズSSDは、比較的高いI/O性能を提供することが典型的に要求される。したがって、最適な読取専用および読取/書込混合性能は、多くのSSD開発技術者の目標である。
本発明の実施形態は、ソリッドステートドライブ(SSD)記憶装置で使用するための、読取コマンドに応答するホストへのデータリターンの管理に関する。最適な読取専用および読取/書込混合性能は、データをホストに返す順序に影響を受け、データをホストに返す順序は、ホストが読取コマンドを送った順序に必ずしも一致しない。
一実施形態によれば、ソリッドステートドライブ(SSD)の動作モニタは、対応するフラッシュダイ上の読取動作を完了する推定時間を特徴付ける数値指標、すなわち動作コストを管理するのに使用するカウンタを管理するために構成される。動作モニタは、カウンタをデクリメントする周期的なイベントを生成するタイマを起動する。各カウンタ内に記憶される値は、対応するダイに送られたフラッシュ動作に対して生成され、一般に動作の履歴および物理的な位置に基づく。読取コマンドが特定のダイに送られる予定の場合は常に、コントローラファームウェアは例えば、その特定のフラッシュ読取動作の時間推定を検索することができる。この情報に基づいて、データをホストに返す最適な順序を決定することができる。この順序は、ホストへのデータ転送を予定しプログラムするために使用され、最適な順序は、他の読取コマンドによってブロックされる読取コマンドの数が最小であるシーケンスを表し、これはブロッカコマンドが、ホストに返すことができる、それらの対応データを有していない場合である。
SSD装置が受け取った読取コマンドに応答するホストへのリターンを管理するための方法の一実施形態によれば、ホストからデータコマンドを受け取り、それぞれの不揮発性メモリダイに送られた動作ごとに動作コストが生成される。各動作コストは、周期的なイベント(例えば、時間刻み)を生成するタイマに基づいてデクリメントされる。このように、対応するダイを読み取る時間が経時で減少すると、カウンタ内に示される動作コストが経時で減少する。ホストから受け取った読取コマンドの総コストは、読取コマンドに関連付けられた各それぞれの不揮発性メモリダイに送られた動作ごとの現在の動作コストに基づいて計算される。読取コマンドの総コストに基づいて、ホストから受け取った他の読取コマンドに対して、要求されたデータをホストに返す順序が決定される。
発明の概要の章で検討した実施形態は、本明細書で検討するすべての実施形態を示唆、説明、または教示することを意図していない。したがって本発明の実施形態は、この章で検討したものの追加の、またはそれとは異なる特徴を含んでもよい。
本発明の実施形態は、添付図面の図において限定としてではなく一例として示し、図中の同じ参照符号は同様の要素を指す。
本発明の実施形態が実施され得る例示的動作環境を示すブロック図である。 本発明の実施形態が実施され得る、メモリ動作モニタに注目した例示的動作環境の一部を示すブロック図である。 本発明の一実施形態による、メモリ動作モニタを示すブロック図である。 本発明の一実施形態による、ホストへのリターンを管理するための方法を示すフローチャートである。
ソリッドステートドライブ(SSD)記憶装置で使用するための、ホストからの読取コマンドに応答するホストへのデータリターンを管理するための手法を記載する。以下の記述では、説明の目的で、本明細書に記載の本発明の実施形態を完全に理解するために多くの特定の詳細を述べる。しかしながら本明細書に記載の本発明の実施形態は、これらの特定の詳細なしに実施してもよいことが明らかであろう。他の事例では、本明細書に記載の本発明の実施形態を不必要に曖昧にしないように、よく知られている構造および装置をブロック図形式で示す。
[ソリッドステートドライブ構造]
本発明の一実施形態は、ソリッドステートドライブ(SSD)記憶装置を管理するために使用してもよい。図1は、本発明の実施形態が実施され得る例示的動作環境を示すブロック図である。図1は、主要な通信インターフェース106を介してホストデバイス104と通信可能に接続されたSSD102を備えた一般的なSSD構造100を示す。本発明の一実施形態は、図1に示したような構造に限定されず、むしろ実施形態は、SSD以外の動作環境に適用可能であってもよく、図1に示した構造以外のSSD構造内で実施してもよい。例えば実施形態は、データを書き込み、かつ読み取るための不揮発性メモリ記憶構成要素に依存する他の環境において動作するように実施してもよい。
ホストデバイス104(または単に「ホスト」)は、特に1つもしくは複数のメモリデバイスにデータI/O要求または呼び出しを行う任意の種類の計算ハードウェアまたは計算ソフトウェアを広く示す。例えば、ホスト104は、コンピュータ、タブレット、携帯電話、または一般に、メモリを含むもしくはメモリと相互作用する任意の種類の計算装置上で実行するオペレーティングシステムであってもよい。ホストデバイス104をSSD102に連結する主要インターフェース106は、例えばコンピュータの内部バスまたは通信ケーブルまたは無線通信リンクなどであってもよい。
図1に示した例示的SSD102は、インターフェース110と、コントローラ112(例えば、その中にファームウェア論理を有するコントローラ)と、アドレッシング部114の機能ブロックと、データバッファキャッシュ116と、エラー訂正コード(ECC)118と、1つまたは複数の不揮発性メモリ構成要素120a、120b、120nとを含む。
インターフェース110は、構成要素間、すなわち本内容においてSSD102とホストデバイス104との間の相互作用の点であり、ハードウェアとソフトウェアの両方のレベルで適用可能である。これにより、入力/出力システムおよび関連するプロトコルを介して、構成要素同士が通信することができる。ハードウェアインタフェースは、機械的、電気的および論理的な信号によって、インターフェースおよび、信号の順序を付けるためのプロトコルにおいて典型的に表される。一般的かつ標準的なインターフェースのうちのいくつかの限定しない例には、SCSI(小型コンピュータシステムインターフェース)、SAS(シリアル接続SCSI)およびSATA(シリアルATA)がある。
SSD102はコントローラ112を含み、コントローラ112は不揮発性メモリ120a、120b、120nをホストデバイス104へなど、不揮発性メモリ構成要素(例えばNANDフラッシュ)をホストへ橋架けする電子機器を組み込む。コントローラは典型的に、ファームウェアレベルコードを実行し、かつSSD性能において重要な因子である埋め込みプロセッサである。
コントローラ112は、アドレッシング部114の機能ブロックを介して不揮発性メモリ120a、120b、120nとインターフェースする。アドレッシング部114の機能は、例えば、ホスト104から、SSD102上の、すなわちSSD102の不揮発性メモリ120a、120b、120n上の、対応する物理的なブロックアドレスまでの論理ブロックアドレス(LBAs)間のマッピングを管理するよう動作する。不揮発性メモリページおよびホストセクタは寸法が異なるため、SSDは、セクタへのホスト書込みデータまたはセクタからのホスト読取データをSDDが変換することができるデータ構造と、そのデータが実際に配置される物理的な不揮発性メモリページとを構築し維持しなければならない。このテーブル構造、すなわち「マッピング」は、DRAMまたは、コントローラ112およびアドレッシング部114にアクセス可能ないくつかの他のローカル揮発性メモリ構成要素などのSSDの揮発性メモリ122内に1セッション中、構築し維持されてもよい。あるいは、テーブル構造は、不揮発性メモリ120a、120b、120nなどのSSDの不揮発性メモリ内に複数のセッションにわたって、より永続的に維持されてもよい。
アドレッシング部114は、不揮発性メモリ120a、120b、120nに加えて、データバッファキャッシュ116およびエラー訂正コード(ECC)118と相互作用する。SSD102のデータバッファキャッシュ116は、ハードディスクドライブ内のキャッシュと類似した、キャッシュとしてのDRAMを典型的に使用する。データバッファキャッシュ116は、キャッシュデータの今後の要求を速めるためのキャッシュとして役割を果たすと同様に、不揮発性メモリ構成要素間のデータ送信用のバッファまたは記憶領域として役割を果たす。データバッファキャッシュ116は典型的に、揮発性メモリと共に実装されるため、揮発性メモリに記憶されたデータはキャッシュに永久的には記憶されず、すなわちデータは永続的ではない。
ECC118は、重複データまたはパリティデータをメッセージに追加するシステムであり、送信工程中、または記憶時に多数のエラーが生じた場合、受信機によって回復することができるようになっている。
最後に、SSD102は1つまたは複数の不揮発性メモリ120a、120b、120nの構成要素を含む。限定しない例として、不揮発性メモリ構成要素120a、120b、120nは、フラッシュメモリ(例えばNANDもしくはNORフラッシュ)、または、現在もしくは将来利用可能な他の種類のソリッドステートメモリとして実装してもよい。不揮発性メモリ120a、120b、120nの構成要素は、データが永続的に記憶される実際のメモリ電子構成要素である。SSD102の不揮発性メモリ120a、120b、120nの構成要素は、ハードディスクドライブ(HDD)記憶装置内のハードディスクの類似物と考えることができる。
ホストからの読取コマンドに応答するホストへのデータリターンを管理する本発明の実施形態を記載する。結果として、読取コマンドに関連するデータをホストに返すべき最適な順序を決定することができ、より高性能なSSD記憶装置が達成可能である。
[メモリ動作モニタ]
図2は、本発明の一実施形態が実施され得る、メモリ動作モニタに注目した例示的動作環境の一部を示すブロック図である。例示的動作環境200は、CPU204に通信可能に連結されたメモリ動作モニタ202(以下「動作モニタ」と呼ぶ)を含む。動作モニタ202は、1つまたは複数のチャンネル206a、206b、206nにさらに連結され、各チャンネルは1つまたは複数の不揮発性メモリダイに連結される。例示的な目的として、図2は、ダイ208a0、ダイ208a1、ダイ208a2に連結され、それらと通信するチャンネル206aと、ダイ208b0、208b1、208b2に連結され、それらと通信するチャンネル206bと、ダイ208n0、208n1、208n2に連結され、それらと通信するチャンネル206nとを示す。図2に示したチャンネルおよび対応するメモリダイの数は、例を目的としており、本発明の実施形態は示した厳密な構造に限定されないことに留意されたい。
実施形態によれば、動作モニタ202は図3を参照して説明するように動作する。一般に、動作モニタ202は、コントローラが実行可能な作業を行うのを支援するように構成されるハードウェアアクセラレータと見なすことができる。一実施形態によれば、動作モニタ202は、コントローラ112(図1)内に実装されるが、本発明の実施形態の実施はそれほど限定されない。したがって動作モニタ202は、本質的にSSD102(図1)内のいかなる場所にも、例えば1つまたは複数のメモリダイ208a0〜208n2内にさえ実装することができるであろう。動作モニタ202は、ファームウェアまたはハードウェア内に実装されてもよい。図3を参照してより詳細に説明するように、動作モニタ202は推定器の機能として一般に機能する。
動作環境200は、動作モニタ202の機能性に関連する指示、手順などを実行する専用または共用のCPU204を含んでもよい。CPU204は、メモリダイ208a0〜208n2に関連する動作を行うための実行可能な論理を実行することができるSSD102のプロセッサである。同様に、チャンネル206a、206b、206nの各々は、それらそれぞれのメモリダイと同様に、互いにインターフェースする。チャンネルは、複数の実体または構成要素の間の通信「パイプライン」と考えることができる。したがって、SSD102のチャンネル206a、206b、206nは、動作モニタ202と各チャンネルのそれぞれのメモリダイとの間、およびCPU204と各チャンネルのそれぞれのメモリダイとの間の通信回線および動作回線として機能する。
フラッシュメモリは、一種の不揮発性メモリである。フラッシュメモリは、一種の電気的消去プログラム可能読取専用メモリ(EEPROM)である。メモリダイは、不揮発性メモリのハードウェアユニットである。フラッシュメモリダイは、個別の集積回路ダイであり、そのようなダイは少なくとも1つのフラッシュメモリ集積回路を含む。ダイは、データがフラッシュメモリ上に記憶される低レベル媒体である。
図3は、本発明の一実施形態による、メモリ動作モニタを示すブロック図である。図3のメモリ動作モニタ202は、複数のダイカウンタを含み、ダイカウンタの各々は、1つまたは複数の対応するメモリダイに関連付けられている。例えば、ダイカウンタ302a0、302a1、302a2は、対応するダイ208a0、208a1、208a2(図2)に関連付けられ、ダイカウンタ302b0、302b1、302b2は、対応するダイ208b0、208b1、208b2(図2)に関連付けられ、またダイカウンタ302n0、302n1、302n2は、対応するダイ208n0、208n1、208n2(図2)に関連付けられている。メモリダイの数と同様に、図3に示したダイカウンタの数は例を目的としており、本発明の実施形態は示した厳密な構造およびダイカウンタの数に限定されないことに留意されたい。
ダイカウンタ302a0〜302n2は、対応するダイ208a0〜208n2(図2)上の読取動作に関連する完了時間を追跡するために使用されるデータ構造である。特定のダイ上の読取動作を完了する推定時間は、対応するダイカウンタに記憶されている「動作コスト」数値指標によって特徴付けられる。ダイカウンタ302a0〜302n2に記憶される動作コスト値は、ダイ208a0〜208n2に送られたすべてのフラッシュ動作に対して生成され、一実施形態によれば、ダイ履歴および動作の物理的な位置に基づく。
メモリ動作モニタ202は、ダイカウンタ302a0〜302n2に関連付けられたタイマ304を含む。タイマ304は、時間刻みなどのダイカウンタ302a0〜302n2をすべてデクリメントする周期的なイベントを生成する。限定しない例として、タイマ304は1μsの時間刻みを生成してもよい。タイマ304は一旦初期化されると、いずれの読取コマンドにかかわらず時を刻む。タイマ304は、例えば、設定可能であることが多い固定周波数で、デクリメントするデジタルカウンタとして実装されてもよい。より精巧なタイマでは、比較論理を使用して、タイマ値を、ソフトウェアまたは他の論理によって設定された特定値と比較してもよい。この比較論理は、タイマ値が既定値と一致すると、何らかの作用を引き起こす。この種のタイマは、例えばパルスを生成するために使用することができる。一実施形態によれば、パルスを生成するために比較論理を使用するデジタルカウンタは、ダイカウンタ302a0〜302n2内の値をデクリメントするために使用される。しかしながら、使用されるタイマの種類は実施態様によって異なってもよい。
このように、動作モニタ202は、動作コストを備えたダイカウンタ302a0〜302n2をロードし、タイマ304が時間を刻むごとにこれらの動作コスト値をデクリメントすることによって、ソリッドステートドライブを含むすべてのフラッシュダイ上のフラッシュ読取動作の完了時間を推定かつ管理する。
メモリ動作モニタ202は、1つまたは複数のプログラムコストレジスタ314a、314b、314c、314nを含む。プログラムコストレジスタ314a〜314nは、書込動作としても知られているページプログラム動作を完了するのにかかる時間を考慮するのに使用される。図3に示したプログラムコストレジスタの数は、例を目的としており、本発明の実施形態は示した厳密な構造およびプログラムコストレジスタの数に限定されない。コストレジスタの数は、設計上の選択の問題であってもよく、例えば不揮発性メモリ120a〜120n(図1)およびSSD102(図1)構造に基づいてもよい。しかしながら、一実施形態によれば、プログラムコストに対して4つの取り得る値を保持するために4つのコストレジスタが使用され、そのようなプログラムコスト値は、不揮発性メモリ120a〜120n内のページ位置によるばらつきをプログラムすることを考慮する。一般的なプログラムコストレジスタ314a〜314nの値は不揮発性メモリ120a〜120nから予め決定することができるが、これらの値は要求されたデータが記憶される不揮発性メモリ上の関連位置に基づいて、および不揮発性メモリの種類などに基づいて変化する。
動作モニタ202は、消去コストレジスタ310および読取コストレジスタ312を含む。消去コストレジスタ310は、消去動作を完了するのにかかる時間を示す値を記憶するために使用され、読取コストレジスタ312は、読取動作を完了するのにかかる時間を示す値を記憶するために使用される。単純にするため、単一の消去コストレジスタ310および単一の読取コストレジスタ312を図3に示した。本明細書で記載したより広い教示を比較的単純に実施するため、図示したように本発明の実施形態を実施することができるであろう。すなわち、単純な実施では、単純なレジスタを利用して、様々なコスト情報を記憶してもよい。
しかしながら、読取、消去およびプログラムのコストは、SSDの寿命にわたって、およびダイ208a0〜208n2内の様々なブロックにわたって変化する。したがって、実施形態の実施は、コストが推定される粒度レベルの点で異なってもよい。よって、実施形態の比較的より複雑な実施は、メモリ308を使用して、ダイ、ブロックまたはページ単位で、およびドライブの寿命にわたるこれらのコスト変化として、読取、消去、プログラムのコストの多くのばらつきを記憶してもよい。コスト数値指標の多くのばらつきを記憶する、より大きいメモリ308は、より正確にコスト推定を行いやすいため、コスト粒度対推定精度は実施レベルで管理することができるトレードオフである。
プログラム(すなわち書込動作)コスト、読取コスト、および消去コストが考慮される1つの理由は、不揮発性メモリダイ208a0〜208n2上の読取動作の完了時間、ひいてはデータをホスト104(図1)に返す最適な順序が、例えば、ホスト書込動作およびガーベジコレクション動作(すなわちランダムミックスシナリオ)による読取動作、ならびに、同じダイ(すなわちランダム読取シナリオ)をターゲットとする他のホストコマンドによる読取動作と同時に実行する書込、消去、読取の動作により影響を受けることである。したがって、データをホスト104(図1)に返すべきコマンドの最適な順序は、少なくとも部分的に、背景動作と同様にランダムミックスシナリオおよびランダム読取シナリオにより、ホストがSSD102(図1)にコマンドを送った順序に必ずしも一致しない。
動作モニタ202の制御論理306は、ダイカウンタ302a0〜302n2を取り込んで管理し、かつ、プログラムコストレジスタ314a〜314n、消去コストレジスタ310および読取コストレジスタ312などの様々なレジスタ、ならびに動作モニタ202の代替の実施形態で実施されてもよい任意の他のレジスタを構成するように実行する論理である。制御論理306はまた、複数のダイ208a0〜208n2(図2)にわたる、または複数の不揮発性メモリ120a〜120n(図1)にわたる様々な動作コスト(例えば、消去コスト、読取コスト)を平均するなど、現在または実際の動作完了時間に基づいてレジスタ動作コストを調整するなどの、データをホスト104に返す最適な順序の決定を支援して、他の作業および計算を行ってもよい。制御論理306の範囲は、限定されるものではなく、他の機能を行うためのそのような論理の展開が具体的に考慮される。
動作モニタ202は、1つまたは複数のチャンネルバス制御316a、316b、316nを含み、各々はそれぞれのチャンネル206a、206b、206n(図2)に対応する。一実施形態によれば、チャンネルバス制御316a〜316nは、例えば、その上でチャンネル206a〜206nがダイ208a0〜208n2への動作を促進するチャンネルバス(図2)をスヌープすることにより、ダイ208a0〜208n2(図2)上の動作の開始および終了を検出するように構成される。そのような検出された動作活動は、ダイカウンタ302a0〜302n2の動作コスト値を取り込んで管理するために制御論理306によって使用することができる。
動作モニタ202のメモリ308は、様々な目的での動作モニタ202によって使用可能なメモリであり、それらのうちのいくつかは、所望のコスト数値指標の粒度、および動作モニタ202内で具体化されてもよい自動調整特徴の文脈において、より詳細に本明細書で述べる。メモリ308の種類および形態は限定されず、関連する設計制約、目標などに基づいて実施態様によって異なる。
[ホストへのリターンを管理するための方法]
図4は、本発明の一実施形態による、ホストへのリターンを管理するための方法を示すフローチャートである。図4に示した工程は、SSD102(図1)などのSSD内で実施してもよい。さらに具体的には、図4に示した工程は、一実施形態によるSSD102のコントローラ112(図1)内で実施してもよい。さらに一実施形態によれば、図4の工程はメモリ動作モニタ202(図2)内で実施する。プロセス論理は、SSD102内のアナログもしくはデジタルハードウェア回路として、またはSSD102内のCPU204(図2)もしくはMPUなどのプロセッサによって実行されるファームウェア命令として実施してもよい。
図4のブロック402では、データ読取コマンドをホストから受け取る。例えば、データ読取コマンドは、SSD102(図1)のインターフェース110(図1)を介してコントローラ112(図1)においてホストデバイス104(図1)から受け取る。待ち行列型コマンドシステムでは、ホストは多数の、すなわちSSD102が同時かつ瞬時に処理することができる量を超える読取および書込コマンドをSSD102などの記憶装置に送ることができる。顕著には、ホストがコマンドを送る順序は、必ずしも、最良のSSD性能のための、ホストに応答し、またデータを返す最良の順序ではない。これは、例えばターゲットダイがアイドル状態であるか否か、および、ターゲットダイが消去動作、ページプログラム動作または読取動作でビジー状態であるか否かに基づいて、フラッシュメモリダイからデータを読み取る待ち時間が異なることが一因である。
コントローラ112(図1)は、不揮発性メモリ120a〜120n(図1)内のどこにデータが記憶されているかの「知識」を有する。このように、コントローラ112は、要求を受け取る順序で要求に応答してデータをメモリから取り出してもよいが、例えば、不揮発性メモリが現在何をどのように動作しているか、メモリの前の動作は何であったか、関連データはメモリ内のどこに位置しているかなどによって、動作はかかる時間量が異なる。著しくは、本明細書で説明した実施形態は、性能目的でデータをホストに返す最適な順序を決定する。対照的に、次いで最適でないリターン順序が用いられる場合、システムはデータをホストに返すことができる前に、他のメモリ動作が完了するのをより長くおよび/またはより頻繁に待つ必要がある場合が多い。
ブロック404では、動作コストが、それぞれの不揮発性メモリダイに送られる動作ごとに生成される。例えば、消去コストレジスタ310(図3)、読取コストレジスタ312(図3)およびプログラムコストレジスタ314a〜314n(図3)に基づいて、ならびに、ターゲットメモリダイが現在何を処理しているのか、または何を待ち行列に入れているのかに基づいて、メモリ動作モニタ202(図2)の制御論理306(図3)は、ターゲットダイ(例えば、図2の1つまたは複数のダイ208a0〜208n2)に対する動作コストを、対応するダイカウンタ302a0〜302n2(図3)内に、構築かつ記憶する。動作コストは、必ずしもではないが、ホストからの読取要求に応答して生成されてもよいことに留意されたい。
一実施形態によれば、カウンタに記憶される動作コスト値は、特定の読取コマンドについて、ダイに送られたすべての不揮発性メモリ動作に対して自動的に生成される。先述したように、制御論理306(図3)は、チャネルバス制御316a〜316n(図3)によってそれぞれのチャンネルバスから得られた情報、例えば動作の開始および終了時間を使用し、読取コマンドに応答して様々なダイカウンタ302a0〜302n2(図3)に対して現在の値を計算することができる。あるいは、カウンタに記憶される動作コスト値は、すべての不揮発性メモリダイに対して、自動的に生成され、常時管理されるため、ホストからの読取コマンドに応答して要求される時、利用可能である。このように、制御論理306は、チャネルバス制御316a〜316nによってそれぞれのチャンネルバスから得た情報を使用し、経時で様々なダイカウンタ302a0〜302n2の初期化およびフラッシングを引き起こすことができる。
ブロック406では、各動作コストが、周期的なイベントを生成するタイマに基づいて経時でデクリメントされる。例えば、対応するダイカウンタ302a0〜302n2(図3)内のターゲットダイ(例えば、図2の1つまたは複数のダイ208a0〜208n2)に対して生成された動作コストは、タイマ304(図3)の時間刻みに基づいて、経時でデクリメントされる。1つまたは複数のダイが消去動作、読取動作、または書込動作で現在ビジー状態であると仮定すると、次いで、対応するダイ内の動作コストは、それぞれの現在の動作の完了までの時間を反映する。次いで、時間が経過し、動作が完了すると、現在の動作の動作コストを現在の動作完了に一致する0にデクリメントする目的で、ダイカウンタ内の動作コストは、デクリメントするタイマ304の時間刻みに基づいて、相応に減少している。
NANDフラッシュなどの特定の種類の不揮発性メモリについては、メモリから読み取ったり、またはメモリに書き込んだりすることができるデータの最大量は1ページである。例えば、1ページは8Kbのデータであり得る。したがって、読取または書込コマンドは、複数のダイにわたって広げられることが多い。読取動作について記述するホストデータコマンドを受け取ると、コントローラ112(図1)のファームウェアは、データコマンドをダイ読取コマンドに分けることができ、ダイ読取コマンドの数はコマンドの長さに依存する。例えば、8Kbページで、ホストからの64Kbの読取コマンドは、ダイからの8つの読取り、すなわち64Kbの読取コマンドに対して各8Kbの8つの読取りを必要とするであろう。
ブロック408では、ホストから受け取った読取コマンドの総コストが、それぞれの不揮発性メモリダイに送られた動作ごとの現在の動作コストに基づいて計算される。例えば、ダイからデータの各セグメントを検索するのに必要な全ての読取動作の完了までの最大時間が計算される。64Kbの読取コマンド例を続け、ホストからの読取コマンドを満たすために読み取る必要がある8つのダイのそれぞれに対する動作コストが、このセットのダイ読取動作の完了までの最大時間を決定するために比較され、読取コマンドの総動作コストを計算する。説明したように、各読取動作の完了までの時間は、各ダイが現在何を行っているかを考慮しており、各ダイがその動作寿命の間に何を行ったかを考慮してもよい。
例えば一実施形態によれば、動作モニタ202(図3)は記述したようなダイカウンタ302a0〜302n2(図3)内に動作コストを構築かつ維持する役割を果たし、一方、コントローラ112(図1)のファームウェアは、ブロック408でのように、総動作コストを計算する役割を果たす。しかしながら、機能性の分布は実施態様によって異なり、記述した分布に限定されない。例えば、代替の一実施形態では、総動作コストは、動作モニタ202によって計算され、コントローラ112のファームウェアに返されてもよい。
ブロック410では、ブロック408で計算された読取コマンドの総コストに基づいて、ホストから受け取った他の読取コマンドに対して、要求されたデータをどんな順序でホストに返すべきかが決定される。説明したように、ホストがコマンドを送る順序は、必ずしも最良のSSD性能のための、応答し、データをホストに返す最良の順序ではない。図4の方法は、様々な読取コマンドをホストから受け取る順序を第一に考慮せずに、データをホストに返す「最良の」または「最適な」順序を推定する。そのため、動作コストが最小である、すなわち完了までの時間が最短であるダイ動作は、動作コストおよび完了時間がより大きいダイ動作の前に、ホストに返すことができる。その結果、より短い動作のリターンをブロックする、より長い動作を回避するようにリターンは待ち行列に入れられる。
例えば一実施形態によれば、コントローラ112(図1)のファームウェアは、ブロック410でのように、リターン順序を決定する役割を果たす。しかしながら、機能性の分布は実施態様によって異なり、記述した分布に限定されない。例えば、代替の一実施形態では、リターン順序は動作モニタ202によって計算され、コントローラ112のファームウェアに返されてもよい。
動作コスト推定工程がどのように進むかを要約すると、一実施形態によれば、読取コマンドをホスト104(図1)から受け取ると、コントローラ112(図1)は、読取コマンドによってターゲットとされた(図2のダイ208a0〜208n2の)各不揮発性メモリダイの動作コストについて、動作モニタ202(図2および図3)に問い合わせる。コントローラ112は、各ターゲットダイの動作についての現在の状況を考慮して、各ターゲットダイの読取りを完了する時間量について動作モニタ202に効果的に問い合わせる。次いでコントローラ112は、すべてのターゲットダイに対する動作コストに基づいて、読取コマンドの総コストを計算する。読取コマンドの総コストから、コントローラは、ホストからの他の読取コマンドに対して読取コマンドに応答するデータを返す高性能な順序を決定することができる。
[推定器機構の自動調整]
フラッシュメモリの特性および作業能力は経時で、そして使用で変わり(例えばプログラム時間、消去時間などを)、また動作コスト推定が部分的にフラッシュの特性に基づくため、初期動作コスト値は、フラッシュが不揮発性メモリに使用される一実施形態において、ドライブの寿命の間、調整されてもよい。そのため、消去コストレジスタ310、読取コストレジスタ312、およびプログラムコストレジスタ314a〜314n(図3)内の値は、使用で生じる完了時間のばらつきに基づいて、すなわちフラッシュの動作履歴に基づいて経時で調整されてもよい。
一実施形態によれば、動作モニタ202(図2)は、フラッシュの物理的性質による経時での動作コスト変化を特定するために、様々な動作に対して各ダイが使用される回数を追跡する。この目的で、動作モニタ202は、チャンネルバス制御316a〜316n(図3)から得てもよい、フラッシュからの実際のデータを使用し、フラッシュの劣化に伴い、動作コストレジスタ値を調整してもよい。そのような情報は、各フラッシュメモリ構成要素に関連した正確なダイ依存の劣化を与え、そして、動作モニタ202のメモリ308(図3)に記憶することができるであろう。そのような情報の正確さは実施態様によって異なってもよく、このように「ダイごと」または「ブロックごと」で収集し、記憶することができるであろう。したがって、メモリ308は、フラッシュ劣化データに実施される精度レベルに基づいて、相応に大きさを形成することができる。
上述の明細書では、本発明の実施形態について、実施態様によって異なり得る多数の特定の詳細を参照し説明した。したがって本発明のもの、および本出願人により発明であるように意図されたものの唯一の指標は、特許請求範囲が由来する特定の形式の、いかなる以下の補正も含む本出願に由来する一組の特許請求範囲である。このような特許請求範囲に含まれる用語の、本明細書において明示的に記載したいかなる定義も、特許請求の範囲に使用したような用語の意味を規定するものとする。したがって請求項内で明示的に記載しない限界、素子、特性、特徴、利点、または属性により、このような請求項の範囲が決して制限されるべきではない。したがって本明細書と添付図面は限定的ではなく例示的であると解釈すべきである。
100 ソリッドステートドライブ(SSD)構造
102 SSD
104 ホストデバイス
106 主要インターフェース
110 インターフェース
112 コントローラ
114 アドレッシング部
116 データバッファキャッシュ
118 エラー訂正コード(ECC)
120a、120b、120n 不揮発性メモリ構成要素
122 揮発性メモリ
200 動作環境
202 メモリ動作モニタ
204 CPU
206a、206b、206n チャンネル
208a0、208a1、208a2、208b0、208b1、208b2、208n0、208n1、208n2 メモリダイ
302a0、302a1、302a2、302b0、302b1、302b2、302n0、302n1、302n2 ダイカウンタ
304 タイマ
306 制御論理
308 メモリ
310 消去コストレジスタ
312 読取コストレジスタ
314a、314b、314c、314n プログラムコストレジスタ
316a、316b、316n チャンネルバス制御機構
402、404、406、408、410、412 ブロック

Claims (13)

  1. ソリッドステートドライブ(SSD)装置がホストから受け取った読取コマンドに応答する前記ホストへのリターンを管理するための方法であって、
    前記ホストからデータ読取コマンドを受け取るステップと、
    それぞれの不揮発性メモリダイに送られた動作ごとに動作コストを生成するステップであって、各動作コストを周期的なイベントに基づいて経時でデクリメントするステップと、
    前記読取コマンドに対応する前記それぞれの不揮発性メモリダイに送られた動作ごとの現在の動作コストに基づいて、前記読取コマンドの総コストを計算するステップと、
    前記読取コマンドの前記総コストに基づいて、前記ホストから受け取った他のデータ読取コマンドに対して、要求されたデータをどんな順序で前記ホストに返すべきかを決定するステップと、
    前記要求されたデータを、決定された前記順序で前記ホストに返すステップと、
    を含む方法。
  2. 動作コストを生成するステップが、(1)ターゲット不揮発性メモリダイがアイドル状態であるか否か、(2)ターゲット不揮発性メモリダイが消去動作でビジー状態であるか否か、(3)ターゲット不揮発性メモリダイがページプログラム動作でビジー状態であるか否か、および(4)ターゲット不揮発性メモリダイが読取動作でビジー状態であるか否か、のうちの少なくとも1つに基づいて、動作コストを生成するステップを含む、
    請求項に記載の方法。
  3. 動作コストを生成するステップが、不揮発性メモリダイに送られた対応する動作の完了までの時間を推定するステップを含む、
    請求項に記載の方法。
  4. 動作コストを生成するステップが、不揮発性メモリダイ上の動作の物理的な位置に基づいて動作コストを生成するステップを含む、
    請求項に記載の方法。
  5. 動作コストを生成するステップが、不揮発性メモリダイの動作履歴に基づいて動作コストを生成するステップを含む、
    請求項に記載の方法。
  6. 前記要求されたデータを前記ホストに返すステップが、第1の読取コマンドに対応する第1の動作コストよりも、第2の読取コマンドに対応する第2の動作コストが少ないことに基づいて、前記第1の動作コストを有する第1の要求されたデータの前に、前記第2の動作コストを有する第2の要求されたデータを前記ホストに返すステップを含む、
    請求項に記載の方法。
  7. 前記第1の読取コマンドを前記ホストから受け取った後、前記第2の読取コマンドを前記ホストから受け取った、
    請求項に記載の方法。
  8. 前記動作コストが推定動作コストであり、
    動作コストを生成するステップが、
    前記推定動作コストと、不揮発性メモリダイに送られた対応する動作の完了までの時間との差を特定するステップと、
    前記差に基づいて、前記推定動作コストを調整するステップと、
    を含む、
    請求項に記載の方法。
  9. 不揮発性メモリダイと、前記不揮発性メモリダイ上の動作を管理するためのコントローラと、を含むソリッドステートドライブ(SSD)であって、
    前記コントローラがホストから受け取ったデータ読取コマンドの動作コストの要求を前記コントローラから受け取り、
    それぞれの不揮発性メモリダイに送られた動作ごとの完了までの時間を示す動作コストを生成し、前記対応するカウンタに前記動作コストを記憶することを含み、各カウンタがそれぞれの不揮発性メモリダイに関連付けられたカウンタを管理し、
    周期的なイベントを生成するタイマに基づいて各動作コストをデクリメントし、
    前記コントローラが受け取った前記読取コマンドに対応するそれぞれの不揮発性メモリダイに送られた動作ごとの現在の動作コストを前記コントローラに返し、前記現在の動作コストが、前記読取コマンドに対応するそれぞれの不揮発性メモリダイに関連付けられた各カウンタの現在の値に基づく、
    ように構成された動作モニタと、
    前記それぞれの不揮発性メモリダイに送られた動作ごとの現在の動作コストに基づいて、前記読取コマンドの総コストを計算し、
    前記読取コマンドの前記総コストに基づいて、前記ホストから受け取った他のデータ読取コマンドに対して、前記要求されたデータをどんな順序で前記ホストに返すべきかを決定する、
    ように構成された前記コントローラと、
    を含む、SSD。
  10. 1つまたは複数のチャンネルバス制御をさらに含み、
    カウンタを管理する前記動作モニタが、前記1つまたは複数のチャンネルバス制御からの情報に基づいて動作ごとの動作コストを生成するステップであって、前記情報から、不揮発性メモリダイに送られた動作の期間が、前記不揮発性メモリダイに関連付けられたチャンネルバスを監視することにより決定されるステップを含む、
    請求項に記載のSSD。
  11. 前記不揮発性メモリダイ上の消去動作の完了時間に対応する値を管理するための1つまたは複数の消去コストレジスタと、
    前記不揮発性メモリダイ上の読取動作の完了時間に対応する値を記憶するための1つまたは複数の読取コストレジスタと、
    前記不揮発性メモリダイ上の書込動作の完了時間に対応する値を記憶するための1つまたは複数のプログラムコストレジスタと、
    を含み、
    動作ごとに動作コストを生成するステップが、前記消去コストレジスタ、前記読取コストレジスタおよび前記プログラムコストレジスタに関連する1つまたは複数のそれぞれの値に基づく、
    請求項に記載のSSD。
  12. カウンタを管理する前記動作モニタが、
    カウンタからの動作コストと、対応する不揮発性メモリダイに送られた対応する動作の完了までの実際の時間との差を特定するステップと、
    前記差に基づいて、前記カウンタの前記動作コストを調整するステップと、
    を含む、
    請求項に記載のSSD。
  13. 1つまたは複数の命令シーケンスを記憶するソリッドステートドライブコントローラであって、1つまたは複数のプロセッサによって実行される時、
    ホストからデータ読取コマンドを受け取り、
    それぞれの不揮発性メモリダイに送られた動作ごとに動作コストを生成し、各動作コストを周期的なイベントに基づいて経時でデクリメントし、
    前記読取コマンドに対応する前記それぞれの不揮発性メモリダイに送られた動作ごとの現在の動作コストに基づいて、前記読取コマンドの総コストを計算し、
    前記読取コマンドの前記総コストに基づいて、前記ホストから受け取った他のデータ読取コマンドに対して、要求されたデータをどんな順序で前記ホストに返すべきかを決定し、
    前記要求されたデータを、決定された前記順序で前記ホストに返す、
    性能をもたらすコントローラ。
JP2013250303A 2012-12-04 2013-12-03 フラッシュ読取コマンド完了の時間推定に基づくホスト読取コマンドリターンのリオーダリング Active JP5719013B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/705,103 US9032177B2 (en) 2012-12-04 2012-12-04 Host read command return reordering based on time estimation of flash read command completion
US13/705,103 2012-12-04

Publications (2)

Publication Number Publication Date
JP2014110058A JP2014110058A (ja) 2014-06-12
JP5719013B2 true JP5719013B2 (ja) 2015-05-13

Family

ID=49979436

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013250303A Active JP5719013B2 (ja) 2012-12-04 2013-12-03 フラッシュ読取コマンド完了の時間推定に基づくホスト読取コマンドリターンのリオーダリング

Country Status (5)

Country Link
US (3) US9032177B2 (ja)
JP (1) JP5719013B2 (ja)
KR (1) KR101543102B1 (ja)
DE (1) DE102013020269A1 (ja)
GB (1) GB2509603B (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9508437B2 (en) * 2014-01-30 2016-11-29 Sandisk Technologies Llc Pattern breaking in multi-die write management
KR102317786B1 (ko) 2015-02-02 2021-10-26 삼성전자주식회사 스토리지 디바이스에서의 입출력 처리 방법 및 이를 적용하는 스토리지 디바이스 및 비휘발성 메모리 디바이스
KR102339779B1 (ko) 2015-04-06 2021-12-15 삼성전자주식회사 데이터 저장 장치, 이를 포함하는 데이터 처리 시스템, 및 상기 시스템의 작동 방법
US9477408B1 (en) 2015-04-14 2016-10-25 Samsung Electronics Co., Ltd. Memory systems having improved out-of-order execution of commands and methods for operating the same
CN106067321B (zh) * 2015-04-21 2020-09-15 爱思开海力士有限公司 适于存储器编程暂停-恢复的控制器
US9875053B2 (en) * 2015-06-05 2018-01-23 Western Digital Technologies, Inc. Scheduling scheme(s) for a multi-die storage device
CN106933492B (zh) * 2015-12-30 2020-05-22 伊姆西Ip控股有限责任公司 有助于固态硬盘的磨损平衡的方法和装置
US10636065B2 (en) * 2016-03-09 2020-04-28 Western Digital Technologies, Inc. Data storage device, method and system, and control of data storage device based on writing operations and lifetime
US10540274B2 (en) 2016-03-29 2020-01-21 Micron Technology, Inc. Memory devices including dynamic superblocks, and related methods and electronic systems
US10146444B2 (en) 2016-10-03 2018-12-04 Samsung Electronics Co., Ltd. Method for read latency bound in SSD storage systems
US10740228B2 (en) * 2017-05-18 2020-08-11 Sandisk Technologies Llc Locality grouping during garbage collection of a storage device
US10901892B2 (en) * 2017-05-18 2021-01-26 Western Digital Technologies, Inc. Locality grouping during garbage collection with flush of buffered write data upon completion of garbage collection operation
US10140027B1 (en) 2017-05-26 2018-11-27 Seagate Technology Llc Data transfers with adaptively adjusted polling times
US10528268B2 (en) 2017-09-12 2020-01-07 Toshiba Memory Corporation System and method for channel time management in solid state memory drives
KR102427323B1 (ko) * 2017-11-08 2022-08-01 삼성전자주식회사 반도체 메모리 모듈, 반도체 메모리 시스템, 그리고 반도체 메모리 모듈을 액세스하는 액세스 방법
KR102626048B1 (ko) * 2018-03-21 2024-01-18 에스케이하이닉스 주식회사 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 이의 동작 방법
JP2019175292A (ja) 2018-03-29 2019-10-10 東芝メモリ株式会社 電子機器、コンピュータシステム、および制御方法
US11593262B1 (en) * 2018-04-25 2023-02-28 Seagate Technology Llc Garbage collection command scheduling
US11150836B2 (en) 2018-06-28 2021-10-19 Seagate Technology Llc Deterministic optimization via performance tracking in a data storage system
JP2020149588A (ja) * 2019-03-15 2020-09-17 キオクシア株式会社 メモリシステム及びメモリコントローラ
US11074011B2 (en) 2019-03-20 2021-07-27 Western Digital Technologies, Inc. Solid state drive latency estimation interface for host performance tuning
US10971215B1 (en) 2020-02-24 2021-04-06 Western Digital Technologies, Inc. Dynamically adjust data transfer speed for non-volatile memory die interfaces
US11645009B2 (en) 2021-03-03 2023-05-09 Western Digital Technologies, Inc. Data storage with improved read parallelism
US11531499B2 (en) * 2021-03-04 2022-12-20 Western Digital Technologies, Inc. Data storage that controls decode performance by changing program PLC
KR20230096289A (ko) 2021-12-23 2023-06-30 국민대학교산학협력단 저장장치의 입출력 응답시간 추적 장치 및 방법
CN116882335B (zh) * 2023-09-06 2023-12-22 上海芯存天下电子科技有限公司 操作时间仿真获取方法、装置、电子设备及存储介质

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6013589A (en) * 1998-03-13 2000-01-11 The Procter & Gamble Company Absorbent materials for distributing aqueous liquids
US6513089B1 (en) * 2000-05-18 2003-01-28 International Business Machines Corporation Dual burst latency timers for overlapped read and write data transfers
US7146524B2 (en) * 2001-08-03 2006-12-05 Isilon Systems, Inc. Systems and methods for providing a distributed file system incorporating a virtual hot spare
EP1563411B1 (en) * 2002-11-14 2013-06-19 EMC Corporation Systems and methods for restriping files in a distributed file system
US7379974B2 (en) 2003-07-14 2008-05-27 International Business Machines Corporation Multipath data retrieval from redundant array
US20050041453A1 (en) 2003-08-22 2005-02-24 Brazis Paul W. Method and apparatus for reading and writing to solid-state memory
US7512762B2 (en) 2004-10-29 2009-03-31 International Business Machines Corporation System, method and storage medium for a memory subsystem with positional read data latency
US7493439B2 (en) * 2006-08-01 2009-02-17 International Business Machines Corporation Systems and methods for providing performance monitoring in a memory system
US7802061B2 (en) 2006-12-21 2010-09-21 Intel Corporation Command-based control of NAND flash memory
US7937321B2 (en) * 2007-01-16 2011-05-03 Verizon Patent And Licensing Inc. Managed service for detection of anomalous transactions
US9021482B2 (en) 2007-05-04 2015-04-28 International Business Machines Corporation Reordering data responses using ordered indicia in a linked list
US8140739B2 (en) 2008-08-08 2012-03-20 Imation Corp. Flash memory based storage devices utilizing magnetoresistive random access memory (MRAM) to store files having logical block addresses stored in a write frequency file buffer table
US9123409B2 (en) 2009-06-11 2015-09-01 Micron Technology, Inc. Memory device for a hierarchical memory architecture
DE112010002750T5 (de) 2009-06-29 2013-01-31 Mosaid Technologies Incorporated Brückenvorrichtung mit einer Taktdomäne mit konfigurierbarer Frequenz
US8495332B2 (en) 2009-07-24 2013-07-23 Apple Inc. Controller for optimizing throughput of read operations
JP4929379B2 (ja) 2010-06-30 2012-05-09 株式会社東芝 半導体記憶装置及びデータ書き込み読み出し方法
US20120008414A1 (en) 2010-07-06 2012-01-12 Michael Katz Systems and methods for storing, retrieving, and adjusting read thresholds in flash memory storage system
US8589655B2 (en) 2010-09-15 2013-11-19 Pure Storage, Inc. Scheduling of I/O in an SSD environment

Also Published As

Publication number Publication date
GB201320971D0 (en) 2014-01-15
GB2509603A (en) 2014-07-09
US9032177B2 (en) 2015-05-12
US20160253095A1 (en) 2016-09-01
US9354814B2 (en) 2016-05-31
JP2014110058A (ja) 2014-06-12
GB2509603B (en) 2015-05-20
DE102013020269A1 (de) 2014-06-05
KR101543102B1 (ko) 2015-08-07
US20140156911A1 (en) 2014-06-05
US9652156B2 (en) 2017-05-16
US20150212735A1 (en) 2015-07-30
KR20140071938A (ko) 2014-06-12

Similar Documents

Publication Publication Date Title
JP5719013B2 (ja) フラッシュ読取コマンド完了の時間推定に基づくホスト読取コマンドリターンのリオーダリング
KR102546244B1 (ko) 모픽 스토리지 장치
KR101394845B1 (ko) 비휘발성 메모리 상태 정보를 획득하여 이용하기 위한 시스템들 및 방법들
US8719531B2 (en) System and method for performing data retention that incorporates environmental conditions
US8254172B1 (en) Wear leveling non-volatile semiconductor memory based on erase times and program times
US9052826B2 (en) Selecting storage locations for storing data based on storage location attributes and data usage statistics
US9923562B1 (en) Data storage device state detection on power loss
US9348520B2 (en) Lifetime extension of non-volatile semiconductor memory for data storage device
US20180196743A1 (en) Directed sanitization of memory
CN108369818B (zh) 一种闪存设备的刷新方法和装置
JP6119533B2 (ja) ストレージ装置,ステージング制御方法及びステージング制御プログラム
US9213646B1 (en) Cache data value tracking
KR20140113211A (ko) 비휘발성 메모리 시스템, 이를 포함하는 시스템 및 상기 비휘발성 메모리 시스템의 적응적 사용자 저장 영역 조절 방법
KR20210111527A (ko) 메모리 시스템에서 가비지 컬렉션을 수행하는 장치 및 방법
US9690696B1 (en) Lifetime extension of memory for data storage system
US10339053B2 (en) Variable cache flushing
US10564886B2 (en) Methods and apparatus for controlling flash translation layer recycle from host
KR20140041408A (ko) 저장 위치 속성 및 데이터 사용량 통계에 기초하여 데이터 저장을 위한 저장 위치 선택
US11954367B2 (en) Active time-based command prioritization in data storage devices
CN110083496B (zh) 非易失存储设备的掉电时间估计方法和装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140926

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141028

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150115

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150319

R150 Certificate of patent or registration of utility model

Ref document number: 5719013

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250