JP2019174941A - ストレージ装置、コンピュータシステムおよびストレージ装置の動作方法 - Google Patents
ストレージ装置、コンピュータシステムおよびストレージ装置の動作方法 Download PDFInfo
- Publication number
- JP2019174941A JP2019174941A JP2018059835A JP2018059835A JP2019174941A JP 2019174941 A JP2019174941 A JP 2019174941A JP 2018059835 A JP2018059835 A JP 2018059835A JP 2018059835 A JP2018059835 A JP 2018059835A JP 2019174941 A JP2019174941 A JP 2019174941A
- Authority
- JP
- Japan
- Prior art keywords
- host device
- garbage collection
- storage
- data
- host
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
Abstract
Description
本発明が解決しようとする課題は、適切でない状況下で実行中のGCを適応的に停止することができるストレージ装置、コンピュータシステムおよびストレージ装置の動作方法を提供することである。
(第1実施形態)
まず、第1実施形態について説明する。
図1は、本実施形態のコンピュータシステムの一例を示す図である。図1に示されるように、このコンピュータシステムは、ストレージ装置1と、このストレージ装置1をたとえばメインストレージとして用いるホスト装置2とから構成される。ストレージ装置1とホスト装置2とは、信号線3によって接続される。ストレージ装置1は、ホスト装置2の筐体内に収納されるものであってもよいし、ホスト装置2に外部接続されるものであってもよい。ここでは、ストレージ装置1が、SSDとして実現されるものと想定する。
コントローラ11は、ホスト装置2からのコマンドを受け付け、揮発性メモリ12をバッファとして使用しながら、不揮発性メモリ13へのデータの書き込み、不揮発性メモリ13からのデータの読み出しを行う処理回路である。コントローラ11は、たとえばCPU(Central Processing Unit)を内蔵するSoC(System on Chip)である。不揮発性メモリ13の所定の領域には、ストレージ装置1に目的の動作を行わせるためのプログラムが格納されている。このプログラムは、たとえばストレージ装置1の起動時やリセット時などに、その一部または全部が揮発性メモリ12にロードされ、コントローラ11内のCPUによって実行される。
ホスト装置2は、ストレージ装置1に対して、信号線3を介して、データの読み書きを含むデータ処理の要求、状態変化の要求、統計情報の要求などを送る。一方、ストレージ装置1は、ホスト装置2に対して、信号線3を介して、データ処理の結果、状態変化の結果、自装置の統計情報などのホスト装置2からの要求に対する返答を送る。様々なホスト装置2とストレージ装置1とを相互接続できるように、このような要求や返答を信号線3上で送る方法には、様々な標準規格が存在する。
前述したように、ストレージ装置1は、コントローラ11と、揮発性メモリ12と、不揮発性メモリ13とを有する。コントローラ11は、ホストインターフェースコントローラ111、ホスト要求処理部112、データ制御部113、NANDインターフェースコントローラ114、Direct Memory Access Controller(DMAC)115、誤り訂正処理部116などを有している。また、ストレージ装置1は、揮発性メモリ12としてバッファメモリ12Aを有し、不揮発性メモリ13としてNANDフラッシュメモリ13Aを有している。前述したように、バッファメモリ12Aは、コントローラ11内に設けられてもよい。NANDフラッシュメモリ13Aは、並列的に動作可能な複数のNANDフラッシュメモリチップ131を備えている。つまり、ストレージ装置1は、理論的には、NANDフラッシュメモリ13Aへのデータの書き込みまたはNANDフラッシュメモリ13Aからのデータの読み出しを、最大で、NANDフラッシュメモリチップ131の数だけ並列的に実行することができる。
ホスト装置2からストレージ装置1に対してデータの書き込み要求が送られた場合、ストレージ装置1は、次のように処理を行う。
ホスト装置2からデータの書き込み要求を送られたストレージ装置1は、まず、ホスト要求処理部112が、ホストインターフェースコントローラ111経由でこの書き込み要求を受信する。この書き込み要求には、書き込み先LBA領域の先頭LBAと、書き込みサイズと、書き込むデータが格納されているホスト装置2側の主メモリ22の先頭アドレスが含まれている。
もし、この論物変換テーブルに、そのLBAと、そのLBAに対応する古いデータが記録されているNPAとの組が記録されていた場合、データ制御部113は、そのエントリを新しいNPAで更新する。このようにして、論物変換テーブルの内容は、LBAとNPAとの対応関係が常に最新になるように管理される。
前述の通り、ストレージ装置1は、ホスト装置2から受信した書き込み要求のデータをNANDフラッシュメモリ13Aに書き込んでいく。また、NANDフラッシュメモリ13Aは、一旦データを書きこんだ記憶領域を再利用するためには、ブロックと呼ばれる単位でデータの消去処理が必要である。
図3は、NANDフラッシュメモリ13Aのブロックの構成および状態を例示する図である。ここでは、説明の簡略化のため、NANDフラッシュメモリ13Aのブロックが9つのページ(a〜i)から構成されている例を示している。また、たとえばページgのように、符号a1で示されるハッチングが施されていないページ(g,h,i)は、空きページであることを示している。一方、たとえばページaのように、符号a2で示される形状のハッチングが施されているページ(a,e,f)は、有効データを記録したページであることを示し、たとえばページdのように、符号a3で示される形状のハッチングが施されているページ(b,c,d)は、無効データを記録したページであることを示している。
NANDフラッシュメモリ13Aのブロックが図4(A)に示す状態にある場合、ストレージ装置1は、次にホスト装置2から受信したデータ書き込み要求について、ブロック3のページgにデータを書き込む。また、ブロック1とブロック2とは、既に全てのページがデータで埋まっていて、これら2つのブロックには、そのままではデータを書きこむことはできない。したがって、このままでは、ホスト装置2からのデータ書き込み要求を処理できなくなる。
このように、GCは、有効なデータをNANDフラッシュメモリ13Aから読み出す処理と、再度NANDフラッシュメモリ13Aに書きこむ処理とで構成される。より詳しくは、NANDフラッシュメモリ13Aから読み出すデータを決める処理と、前述の2つの処理とで構成される。すなわち、GCを行っている最中は、NANDフラッシュメモリ13Aは、ホスト装置2からの書き込みまたは読み出し要求に基づく処理を行うことができない。
従来は、このような理由から、GCを、ストレージ装置1がホスト装置2からデータ読み出しや書き込み要求を受信していない「暇な時」に行うことで、ホスト装置2からのデータ読み出しや書き込み要求を邪魔しないようにしていた。しかし、この「暇な時」にGCを行うことは、前述の通り、ストレージ装置1内部の状態を変化させてしまう。このことは、結局、ホスト装置2からのデータ読み出しや書き込み要求を邪魔してしまうことがある。
さらに、本来、GCは、ホスト装置2からの書き込み要求の存在に合わせて行われるべき処理であり、「暇な時」にあらかじめ行ったGCは、実は無駄なGCである可能性もある。これは、ストレージ装置1の寿命を縮める可能性がある。
一方、GCを行ってよいかどうかをホスト装置2からストレージ装置1に指定する仕組みが存在する。
しかし、前述の通り、GCはストレージ装置1が自身の内部状態を参照して行う処理である。また、ホスト装置2がGCの実行を指示した時がストレージ装置1にとって「暇な時」とは限らない。たとえば、「暇な時」にGCを行うことをポリシーとするストレージ装置1の場合、ホスト装置2がストレージ装置1にGCの実行を指示しても、ストレージ装置1がホスト装置2からのコマンドを処理している最中の場合、GCを行うことができない。
以上の状況を鑑み、本実施形態では、ストレージ装置1自身が暇かどうかを判断し、暇な時にはGCを行わないようにする。
ストレージ装置1は、このようにして定義した判断基準に従ってチェックを行い、ストレージ装置1が暇であると判断した場合、以降、GCを行わない。もし、GCを実行中に「ストレージ装置1が暇である」と判断した場合、速やかに処理を停止する。以下、速やかに処理を停止する例をいくつか説明する。
また、(A)〜(C)をブロック単位ではなく、ページ単位(第1使用単位)で巡回的に行っていくことも考えられ得る。つまり、1ブロック分まとめて(B)の処理でデータを読み出すのではなく、1ページ分のデータを(B)の処理で読み出したら(C)の処理で書き込むということを繰り返すことも考えられ得る。なお、この場合、図4に示したように、たとえばブロック1およびブロック2から読み出した有効なデータを(データ消去後の)当該ブロック1およびブロック2の一方に書き戻すのではなく、当該ブロック1およびブロック2以外の空きブロックに書き戻すことになる。(A)〜(C)をページ単位にすると、1つの例では、(A)の処理の所要時間は1ミリ秒程度、(B)の処理の所要時間は数ミリ秒程度、(C)の処理の所要時間も数ミリ秒程度となる。
もちろん、「ストレージ装置1が暇である」と判断したことに起因してGCを停止させるタイミングとして、仕掛かり中のブロックについての処理を完了させた時点を採用してもよく、本実施形態のストレージ装置1は、これを排除するものではない。
次に、第2実施形態について説明する。なお、前述した第1実施形態と同一の構成要素については同一の符号を使用し、重複した説明を省略する。
第1実施形態では、ストレージ装置1が、ストレージ装置1自身が暇であるかどうかを判断して、ストレージ装置1が暇な時にGCを実行しないことで、様々な効果を奏することを示した。一方、前述の通り、ホスト装置2からストレージ装置1に対しては、読み書き要求だけでなく、様々な要求や通知を行うことができる。
まず、ホスト装置2は、ホスト装置2の状態を示す通知、より詳しくは、ホスト装置2が暇かどうかを示す通知をストレージ装置1に対して送信する(図6:(1))。この通知には、たとえば、NVMe(登録商標)で規定されるAdmin Commandを用いることができる。図7を参照して、ホスト装置2の状態を示す通知への当該Admin Commandの一使用例を説明する。
NVMe(登録商標)では、1コマンドが64バイトに定められている。また、符号b1で示される位置に格納されるOpecodeについて、”C0h”から”FFh”までがvendor specificであると定められている。さらに、(64バイトのコマンド以外の)データ転送を含まない場合はOpecodeのビット[1:0]を”00b”にすることが定められている。そこで、ホスト装置2の状態を示す通知に用いるコマンドのOpecodeとして、たとえば”C0h(11000000b)”を割り当てる(図7:b1)。そして、Opecodeが”C0h”の場合、たとえば符号b2で示されるCDW(Command DWord)2が、”0h”ならば「ホスト装置2は暇である」、”1h”ならば「ホスト装置2は暇ではない」という取り決めをする。これにより、ホスト装置2からストレージ装置1へホスト装置2の状態を示す通知を送信することができる。
ストレージ装置1は、ホスト装置2から送信される、ホスト装置2の状態を示す通知を受信すると、その通知の内容に基づき、実行中のGCを停止したり、停止中のGCを再開したりなどのGCの制御を行う(図6:(2))。
ホスト装置2の状態に変化が生じていた場合(ステップB2:YES)、ホスト装置2は、ホスト装置2の状態を示す通知をストレージ装置1へ送信し(ステップB3)、図8の処理を終了する。ホスト装置2の状態に変化が生じていない場合は(ステップB2:NO)、ホスト装置2は、そのまま図8の処理を終了する。
まず、ストレージ装置1は、ホスト装置2から送信される、ホスト装置2の状態を示す通知を受信する(ステップC1)。ストレージ装置1は、受領した通知の内容をチェックする(ステップC2)。
(第3実施形態)
次に、第3実施形態について説明する。なお、前述した第1および第2実施形態と同一の構成要素については同一の符号を使用し、重複した説明を省略する。
図10は、本実施形態のコンピュータシステムにおけるストレージ装置のGCに関わる処理手順を示すフローチャートである。
受領した通知の内容が、ホスト装置が暇ではないことを示すものであった場合(ステップD3:YES)、ストレージ装置1は、第1実施形態において説明した図5で示される処理を行う(ステップD4)。受領した通知の内容が、ホスト装置2が暇であることを示すものであった場合(ステップD3:NO)、ストレージ装置1は、図5で示される処理は行わない。
(第4実施形態)
次に、第3実施形態について説明する。なお、前述した第1乃至第3実施形態と同一の構成要素については同一の符号を使用し、重複した説明を省略する。
図11は、本実施形態のコンピュータシステムにおけるストレージ装置1のGCに関わる処理手順を示すフローチャートである。
どちらにするかは、空きブロックが十分に存在するかや、ストレージ装置1が寿命に近いかなどのストレージ装置1の状態に関する判断基準で選択することが考えられる。
Claims (20)
- インタフェースを介してホスト装置と接続可能なストレージ装置であって、
データを書き込み済みの記憶領域へのデータの上書きを行うことができない不揮発性記憶媒体と、
前記ホスト装置と接続された場合に前記ホスト装置から受信し得る前記ホスト装置からの要求に応じて前記不揮発性記憶媒体へのデータの書き込みまたは前記不揮発性記憶媒体からのデータの読み出しを制御するコントローラと、
を具備し、
前記コントローラは、
前記不揮発性記憶媒体上の不要となったデータが残存する記憶領域を再利用するためのガベッジコレクションを実行するガベッジコレクション処理部と、
前記ストレージ装置が閾値以下の負荷状態の場合、前記ガベッジコレクション処理部が実行中の前記ガベッジコレクションを停止するガベッジコレクション制御部と、
を具備するストレージ装置。 - 前記ガベッジコレクション制御部は、前記ストレージ装置内においてキューイングされている前記ホスト装置と接続された場合に前記ホスト装置から受信し得る前記ホスト装置によって発行されたコマンドの数が第1値以下の場合、前記ストレージ装置は前記閾値以下の負荷状態と判定する請求項1に記載のストレージ装置。
- 前記第1値は、前記不揮発性記憶媒体が備える並列的に動作可能な複数のメモリチップの数である請求項2に記載のストレージ装置。
- 前記ガベッジコレクション制御部は、前記ストレージ装置が処理中の前記ホスト装置と接続された場合に前記ホスト装置から受信し得る前記ホスト装置によって発行されたコマンドの数が第2値以下の場合、前記ストレージ装置は前記閾値以下の負荷状態と判定する請求項1に記載のストレージ装置。
- 前記第2値は、前記不揮発性記憶媒体が備える並列的に動作可能な複数のメモリチップの数である請求項4に記載のストレージ装置。
- 前記ガベッジコレクション制御部は、前記ストレージ装置内においてキューイングされている前記ホスト装置と接続された場合に前記ホスト装置から受信し得る前記ホスト装置によって発行されたコマンドによるデータの書き込みまたは読み出しの総データサイズが第3値以下の場合、前記ストレージ装置は前記閾値以下の負荷状態と判定する請求項1に記載のストレージ装置。
- 前記第3値は、前記不揮発性記憶媒体へ書き込むデータまたは前記不揮発性記憶媒体から読み出したデータが一時的に格納されるバッファメモリのサイズである請求項6に記載のストレージ装置。
- 前記ガベッジコレクション制御部は、前記ストレージ装置内においてキューイングされている前記ホスト装置と接続された場合に前記ホスト装置から受信し得る前記ホスト装置によって発行されたコマンドの数が第1値以下である第1条件、前記ストレージ装置が処理中の前記ホスト装置と接続された場合に前記ホスト装置から受信し得る前記ホスト装置によって発行されたコマンドの数が第2値以下である第2条件、および前記ストレージ装置内においてキューイングされている前記ホスト装置と接続された場合に前記ホスト装置から受信し得る前記ホスト装置によって発行されたコマンドによるデータの書き込みまたは読み出しの総データサイズが第3値以下である第3条件の中のあらかじめ定められた2以上の条件の一部または全部が満たされる場合、前記ストレージ装置は前記閾値以下の負荷状態と判定する請求項1に記載のストレージ装置。
- 前記ガベッジコレクションは、対象となっている記憶領域内から読み出すべきデータを決定する第1工程と、前記決定したデータを読み出す第2工程と、前記読み出したデータを書き戻す第3工程とを含み、
前記ガベッジコレクション制御部は、前記ガベッジコレクション処理部が実行中の工程を完了させた時点で前記ガベッジコレクションの処理を停止する、
請求項1に記載のストレージ装置。 - 前記ガベッジコレクションは、対象となっている記憶領域内から読み出すべきデータを決定する第1工程と、前記決定したデータを読み出す第2工程と、前記読み出したデータを書き戻す第3工程とを含み、
前記ガベッジコレクション処理部は、前記第1工程乃至前記第3工程を、前記不揮発性記憶媒体の第1使用単位ごとに巡回的に実行し、
前記ガベッジコレクション制御部は、前記ガベッジコレクション処理部が前記第1工程乃至前記第3工程を前記第1使用単位分完了させた時点で前記ガベッジコレクションの処理を停止する、
請求項1に記載のストレージ装置。 - 前記ガベッジコレクション制御部は、前記ホスト装置と接続された場合に前記ホスト装置から受信し得る前記ホスト装置の状態を示す通知が、前記ホスト装置が第1状態であることを示す場合、前記ガベッジコレクション処理部が実行中の前記ガベッジコレクションを停止すべきか否かを決定するための前記ストレージ装置が前記閾値以下の負荷状態か否かの判定を行う請求項1に記載のストレージ装置。
- 前記ガベッジコレクション制御部は、前記ホスト装置と接続された場合に前記ホスト装置から受信し得る前記ホスト装置の状態を示す通知が、前記ホスト装置が第1状態でないことを示す場合、前記ガベッジコレクション処理部が実行中の前記ガベッジコレクションを停止すべきか否かを決定するための前記ストレージ装置が前記閾値以下の負荷状態か否かの判定を行う請求項1に記載のストレージ装置。
- 前記ガベッジコレクション制御部は、
前記ホスト装置と接続された場合に前記ホスト装置から受信し得る前記ホスト装置の状態を示す通知の履歴に基づき、前記ホスト装置が第1状態にある期間的な割合を算出し、
前記算出した割合が基準値を超える場合、前記ガベッジコレクション処理部が実行中の前記ガベッジコレクションを停止すべきか否かを決定するための前記ストレージ装置が前記閾値以下の負荷状態か否かの判定を、前記ホスト装置が前記第1状態であることを示す前記通知を前記ホスト装置から受信した場合に行い、
前記算出した割合が前記基準値以下の場合、前記ガベッジコレクション処理部が実行中の前記ガベッジコレクションを停止すべきか否かを決定するための前記ストレージ装置が前記閾値以下の負荷状態か否かの判定を、前記ホスト装置が前記第1状態でないことを示す前記通知を前記ホスト装置から受信した場合に行う、
請求項1に記載のストレージ装置。 - ホスト装置と、データを書き込み済みの記憶領域へのデータの上書きを行うことができない不揮発性記憶媒体を有し、前記ホスト装置からの要求に応じて前記不揮発性記憶媒体へのデータの書き込みまたは前記不揮発性記憶媒体からのデータの読み出しを実行するストレージ装置とによって構成されるコンピュータシステムであって、
前記ホスト装置は、前記ホスト装置の状態を示す通知を前記ストレージ装置へ送信するステータス通知部を具備し、
前記ストレージ装置は、
前記不揮発性記憶媒体上の不要となったデータが残存する記憶領域を再利用するためのガベッジコレクションを実行するガベッジコレクション処理部と、
前記通知を前記ホスト装置から受信した場合、前記ストレージ装置が閾値以下の負荷状態か否かを判定し、前記ストレージ装置が前記閾値以下の負荷状態の場合、前記ガベッジコレクション処理部が実行中の前記ガベッジコレクションを停止するガベッジコレクション制御部と、
を具備するコンピュータシステム。 - 前記ストレージ装置の前記ガベッジコレクション制御部は、前記ホスト装置が第1状態であることを前記通知が示す場合、前記ガベッジコレクション処理部が実行中の前記ガベッジコレクションを停止すべきか否かを決定するための前記ストレージ装置が前記閾値以下の負荷状態か否かの判定を行う請求項14に記載のコンピュータシステム。
- 前記ストレージ装置の前記ガベッジコレクション制御部は、前記ホスト装置が第1状態でないことを前記通知が示す場合、前記ガベッジコレクション処理部が実行中の前記ガベッジコレクションを停止すべきか否かを決定するための前記ストレージ装置が前記閾値以下の負荷状態か否かの判定を行う請求項14に記載のコンピュータシステム。
- 前記ストレージ装置の前記ガベッジコレクション制御部は、
前記ホスト装置から受信した前記ホスト装置の状態を示す通知の履歴に基づき、前記ホスト装置が第1状態にある期間的な割合を算出し、
前記算出した割合が基準値を超える場合、前記ガベッジコレクション処理部が実行中の前記ガベッジコレクションを停止すべきか否かを決定するための前記ストレージ装置が前記閾値以下の負荷状態か否かの判定を、前記ホスト装置が前記第1状態であることを示す前記通知を前記ホスト装置から受信した場合に行い、
前記算出した割合が前記基準値以下の場合、前記ガベッジコレクション処理部が実行中の前記ガベッジコレクションを停止すべきか否かを決定するための前記ストレージ装置が前記閾値以下の負荷状態か否かの判定を、前記ホスト装置が前記第1状態でないことを示す前記通知を前記ホスト装置から受信した場合に行う、
請求項14に記載のコンピュータシステム。 - データを書き込み済みの記憶領域へのデータの上書きを行うことができない不揮発性記憶媒体を有するストレージ装置の動作方法であって、
前記不揮発性記憶媒体上の不要となったデータが残存する記憶領域を再利用するためのガベッジコレクションを実行することと、
前記ストレージ装置が閾値以下の負荷状態か否かを判定することと、
前記ストレージ装置が前記閾値以下の負荷状態の場合、実行中の前記ガベッジコレクションを停止することと、
を具備するストレージ装置の動作方法。 - 前記ストレージ装置内においてキューイングされているホスト装置によって発行されたコマンドの数が第1値以下である第1条件、前記ストレージ装置が処理中の前記ホスト装置によって発行されたコマンドの数が第2値以下である第2条件、および前記ストレージ装置内においてキューイングされている前記ホスト装置によって発行されたコマンドによるデータの書き込みまたは読み出しの総データサイズが第3値以下である第3条件の中のあらかじめ定められた2以上の条件の一部または全部が満たされる場合、前記ストレージ装置は前記閾値以下の負荷状態と判定することを具備する請求項18に記載のストレージ装置の動作方法。
- ホスト装置の状態を示す通知を前記ホスト装置から受信した場合、実行中の前記ガベッジコレクションを停止すべきか否かを決定するための前記ストレージ装置が前記閾値以下の負荷状態か否かの判定を行うことを具備する請求項18に記載のストレージ装置の動作方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018059835A JP6901427B2 (ja) | 2018-03-27 | 2018-03-27 | ストレージ装置、コンピュータシステムおよびストレージ装置の動作方法 |
TW107123274A TWI694330B (zh) | 2018-03-27 | 2018-07-05 | 儲存裝置、電腦系統及儲存裝置之動作方法 |
CN201810839667.9A CN110308863B (zh) | 2018-03-27 | 2018-07-27 | 存储装置、计算机系统及存储装置的动作方法 |
US16/126,021 US10747663B2 (en) | 2018-03-27 | 2018-09-10 | Storage device, computer system, and operation method of storage device configured to arbitrarily stop garbage collection |
US16/921,296 US11397675B2 (en) | 2018-03-27 | 2020-07-06 | Storage device, computer system, and operation method of storage device configured to arbitrarily stop garbage collection |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018059835A JP6901427B2 (ja) | 2018-03-27 | 2018-03-27 | ストレージ装置、コンピュータシステムおよびストレージ装置の動作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019174941A true JP2019174941A (ja) | 2019-10-10 |
JP6901427B2 JP6901427B2 (ja) | 2021-07-14 |
Family
ID=68056223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018059835A Active JP6901427B2 (ja) | 2018-03-27 | 2018-03-27 | ストレージ装置、コンピュータシステムおよびストレージ装置の動作方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US10747663B2 (ja) |
JP (1) | JP6901427B2 (ja) |
CN (1) | CN110308863B (ja) |
TW (1) | TWI694330B (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210055408A (ko) * | 2019-11-07 | 2021-05-17 | 주식회사 파두 | 메모리 컨트롤러 및 이를 포함하는 스토리지 디바이스 |
US11416168B2 (en) | 2019-11-07 | 2022-08-16 | FADU Inc. | Memory controller and storage device including the same |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2572404B (en) * | 2018-03-29 | 2020-04-15 | Imagination Tech Ltd | Method and system for controlling processing |
CN111542803B (zh) | 2018-06-30 | 2021-10-01 | 华为技术有限公司 | 一种基于NVMe的数据写入方法、装置及系统 |
EP3792776B1 (en) * | 2018-06-30 | 2022-10-26 | Huawei Technologies Co., Ltd. | Nvme-based data reading method, apparatus and system |
US11580016B2 (en) * | 2019-08-30 | 2023-02-14 | Micron Technology, Inc. | Adjustable garbage collection suspension interval |
CN112559392B (zh) * | 2020-12-23 | 2023-08-15 | 深圳大普微电子科技有限公司 | 一种加速读存储介质的方法、读加速硬件模块及存储器 |
US20240069729A1 (en) * | 2022-08-31 | 2024-02-29 | Pure Storage, Inc. | Optimizing Data Deletion in a Storage System |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03141442A (ja) * | 1989-10-27 | 1991-06-17 | Hitachi Ltd | タスク制御方式 |
JPH09330185A (ja) * | 1996-06-13 | 1997-12-22 | Oki Electric Ind Co Ltd | ディスクアレイ装置 |
JP2008530708A (ja) * | 2005-02-16 | 2008-08-07 | サンディスク コーポレイション | フラッシュメモリにおける直接データファイル記憶実施技術 |
US8364918B1 (en) * | 2007-04-06 | 2013-01-29 | Marvell International Ltd. | Sensed opportunistic garbage collection in memory components |
JP2017168088A (ja) * | 2016-03-17 | 2017-09-21 | 三星電子株式会社Samsung Electronics Co.,Ltd. | ソリッドステートドライブ、ガーベッジコレクションを遂行する方法、及びストレージ媒体を含む物品 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007193883A (ja) * | 2006-01-18 | 2007-08-02 | Sony Corp | データ記録装置及び方法、及びデータ再生装置及び方法、並びにデータ記録再生装置及び方法 |
WO2013027642A1 (en) * | 2011-08-19 | 2013-02-28 | Kabushiki Kaisha Toshiba | Information processing apparatus, method for controlling information processing apparatus, non-transitory recording medium storing control tool, host device, non-transitory recording medium storing performance evaluation tool, and performance evaluation method for external memory device |
JP5586718B2 (ja) * | 2012-06-19 | 2014-09-10 | 株式会社東芝 | 制御プログラム、ホスト装置の制御方法、情報処理装置およびホスト装置 |
JP6005566B2 (ja) * | 2013-03-18 | 2016-10-12 | 株式会社東芝 | 情報処理システム、制御プログラムおよび情報処理装置 |
TW201606778A (zh) * | 2014-08-08 | 2016-02-16 | Toshiba Kk | 記憶體系統、主機裝置、資訊處理系統 |
JP6266479B2 (ja) * | 2014-09-12 | 2018-01-24 | 東芝メモリ株式会社 | メモリシステム |
TWI537816B (zh) * | 2014-10-13 | 2016-06-11 | 慧榮科技股份有限公司 | 非揮發性儲存裝置與控制器進行的控制方法 |
TWI585770B (zh) * | 2015-08-11 | 2017-06-01 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 |
US10229049B2 (en) | 2015-12-17 | 2019-03-12 | Toshiba Memory Corporation | Storage system that performs host-initiated garbage collection |
JP6517684B2 (ja) * | 2015-12-22 | 2019-05-22 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
KR102596400B1 (ko) * | 2016-03-07 | 2023-11-01 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 데이터 저장 장치의 동작 방법 |
JP2018181281A (ja) * | 2017-04-21 | 2018-11-15 | 富士通株式会社 | ストレージシステム、制御装置及びストレージ装置 |
-
2018
- 2018-03-27 JP JP2018059835A patent/JP6901427B2/ja active Active
- 2018-07-05 TW TW107123274A patent/TWI694330B/zh active
- 2018-07-27 CN CN201810839667.9A patent/CN110308863B/zh active Active
- 2018-09-10 US US16/126,021 patent/US10747663B2/en active Active
-
2020
- 2020-07-06 US US16/921,296 patent/US11397675B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03141442A (ja) * | 1989-10-27 | 1991-06-17 | Hitachi Ltd | タスク制御方式 |
JPH09330185A (ja) * | 1996-06-13 | 1997-12-22 | Oki Electric Ind Co Ltd | ディスクアレイ装置 |
JP2008530708A (ja) * | 2005-02-16 | 2008-08-07 | サンディスク コーポレイション | フラッシュメモリにおける直接データファイル記憶実施技術 |
US8364918B1 (en) * | 2007-04-06 | 2013-01-29 | Marvell International Ltd. | Sensed opportunistic garbage collection in memory components |
JP2017168088A (ja) * | 2016-03-17 | 2017-09-21 | 三星電子株式会社Samsung Electronics Co.,Ltd. | ソリッドステートドライブ、ガーベッジコレクションを遂行する方法、及びストレージ媒体を含む物品 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210055408A (ko) * | 2019-11-07 | 2021-05-17 | 주식회사 파두 | 메모리 컨트롤러 및 이를 포함하는 스토리지 디바이스 |
KR102266166B1 (ko) | 2019-11-07 | 2021-06-17 | 주식회사 파두 | 메모리 컨트롤러 및 이를 포함하는 스토리지 디바이스 |
US11416168B2 (en) | 2019-11-07 | 2022-08-16 | FADU Inc. | Memory controller and storage device including the same |
Also Published As
Publication number | Publication date |
---|---|
CN110308863B (zh) | 2023-07-18 |
US20190303289A1 (en) | 2019-10-03 |
US11397675B2 (en) | 2022-07-26 |
CN110308863A (zh) | 2019-10-08 |
US10747663B2 (en) | 2020-08-18 |
JP6901427B2 (ja) | 2021-07-14 |
TWI694330B (zh) | 2020-05-21 |
US20200334145A1 (en) | 2020-10-22 |
TW201942747A (zh) | 2019-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6901427B2 (ja) | ストレージ装置、コンピュータシステムおよびストレージ装置の動作方法 | |
KR102403489B1 (ko) | 비휘발성 메모리 익스프레스 컨트롤러에 의한 입출력 큐 관리 방법 | |
JP6517684B2 (ja) | メモリシステムおよび制御方法 | |
KR102446733B1 (ko) | 스토리지 장치 및 스토리지 장치를 포함하는 전자 장치 | |
JP5523561B2 (ja) | ストレージ装置に接続された記憶制御装置 | |
EP2849076B1 (en) | Dma transmission method and system | |
KR102094236B1 (ko) | 스토리지 디바이스 및 컴퓨터 시스템 | |
US10331584B2 (en) | Internal system namespace exposed through use of two local processors and controller memory buffer with two reserved areas | |
KR20200078382A (ko) | 개시자 모드를 갖는 솔리드-스테이트 드라이브 | |
US20170123686A1 (en) | Mitigating gc effect in a raid configuration | |
US10579300B2 (en) | Information handling system firmware persistent memory runtime reclaim | |
US10901624B1 (en) | Dummy host command generation for supporting higher maximum data transfer sizes (MDTS) | |
JP2009169650A (ja) | 計算機システム、管理計算機及びデータ管理方法 | |
US20220222016A1 (en) | Method for accessing solid state disk and storage device | |
CN110300960B (zh) | 信息系统、管理程序和信息系统的程序更换方法 | |
JP2014032582A (ja) | 画像処理装置、画像処理装置のストレージデバイス制御方法、及びプログラム | |
US11966585B2 (en) | Storage device and storage system | |
CN112231238B (zh) | 使用存储器压缩来减少存储器提交开销 | |
KR20190030790A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
WO2021174698A1 (zh) | 虚拟机快照创建方法、装置、存储介质及计算机设备 | |
JP5158576B2 (ja) | 入出力制御システム、入出力制御方法、及び、入出力制御プログラム | |
US10831684B1 (en) | Kernal driver extension system and method | |
JP2003288317A (ja) | 端数ブロックデータ転送を検出し補償するシステムおよび方法 | |
US20170123657A1 (en) | Systems and methods for back up in scale-out storage area network | |
US11586569B2 (en) | System and method for polling-based storage command processing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20180830 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200915 |
|
TRDD | Decision of grant or rejection written | ||
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210428 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20210518 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210617 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6901427 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |