JP2018185815A - ソリッドステートドライブ(ssd)、そのガーベッジコレクションに係る方法、及びその具現に係る物品 - Google Patents
ソリッドステートドライブ(ssd)、そのガーベッジコレクションに係る方法、及びその具現に係る物品 Download PDFInfo
- Publication number
- JP2018185815A JP2018185815A JP2018084363A JP2018084363A JP2018185815A JP 2018185815 A JP2018185815 A JP 2018185815A JP 2018084363 A JP2018084363 A JP 2018084363A JP 2018084363 A JP2018084363 A JP 2018084363A JP 2018185815 A JP2018185815 A JP 2018185815A
- Authority
- JP
- Japan
- Prior art keywords
- valid data
- block
- stream
- ssd
- logic
- 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/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
- 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
- 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/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- 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/0608—Saving storage space on storage systems
-
- 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
- G06F3/064—Management of blocks
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
- G11C16/16—Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
-
- 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/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- 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/7201—Logical to physical mapping or translation of blocks or pages
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Vending Machines For Individual Products (AREA)
- Die Bonding (AREA)
- Storage Device Security (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
該SSDは、
データを格納するフラッシュメモリと、
フラッシュメモリへのデータのライト(write)及びフラッシュメモリからのデータのリード(read)を管理するSSDコントローラと、を含み、
前記SSDコントローラは、
データの属性に応答してストリーム識別子(ID)を選択する自動ストリーム検出ロジックと、
ガーベッジコレクションのために、フラッシュメモリ内の消去ブロックを選択し、自動ストリーム検出ロジックにより決定された第1ストリームIDに応答して第2ブロックに消去ブロックの有効データをプログラムするガーベッジコレクションロジックと、を含み、
自動ストリーム検出ロジックはガーベッジコレクションロジックがガーベッジコレクションのために消去ブロックを選択した後、第1ストリームIDを決定するように動作する。
SSDコントローラは、ホストコンピュータ上のアプリケーションからのリクエスト(request)を管理する入出力(I/O)キューを含み、
ガーベッジコレクションロジックは入出力キューに有効データに対するライト(write)リクエストを配置するライト(write)リクエストロジックを含む。
ガーベッジコレクションロジックは有効データをプログラムする前に、自動ストリーム検出ロジックから第1ストリームIDを要請するように動作するものの、
ガーベッジコレクションロジックは、
第1ストリームIDに応答して第2ブロックを選択するブロック選択ロジックと、及び第2ブロックに有効データを書き込むプログラミングロジックと、を包含する。
ガーベッジコレクションのためのソリッドステートドライブ(SSD)において消去ブロックを識別するステップと、
プログラミングを要請する消去ブロックの有効データを識別するステップと、及び
第2ブロックに消去ブロックの有効データをプログラミングするステップと、を包含するものの、第2ブロックはストリーム識別子(ID)に応答して選択され、ストリームIDはプログラムを要請する消去ブロックの有効データを識別するステップが識別された後に、有効データの属性に応答して決定される。
プログラミングを要請する消去ブロックの有効データを識別するステップの以前に、
アプリケーションからライトリクエストの有効データをSSDから受信するステップと、
有効データの属性に応答して第2ストリームIDを決定するステップと、
第2ストリームIDに応答して消去ブロックを選択するステップと、及び
第2ブロックに有効データを書き込むステップと、をさらに包含する。
有効データの属性に応答して、有効データに対するストリームIDを決定するステップと、
ストリームIDに応答して第2ブロックを選択するステップと、
第2ブロックに有効データをプログラムするステップと、を包含する。
ガーベッジコレクションのために、ソリッドステートドライブ(SSD)において消去ブロックを識別するステップと、
消去ブロックにおいてプログラムを要請する有効データを識別するステップと、
ストリーム識別子(ID)に応答して選択された第2ブロックに、消去ブロックの有効データをプログラムする(書き込む)ステップと、
ここで、ストリームIDはプログラミング(書き込み)を要請する消去ブロックが識別され、前記識別された消去ブロックの有効データを識別するステップがなされた後に、前記有効データの属性に応答して決定される。
有効データの属性に応答して第2ストリームIDを決定するステップと、
第2ストリームIDに応答して消去ブロックを選択するステップと、
消去ブロックに有効データを書き込むステップと、を、マシンにより実行される時、発生させる命令語を更に格納する。
有効データの属性に応答して有効データに対するストリームIDを決定するステップと、
ストリームIDに応答して第2ブロックを選択するステップと、
第2ブロックに有効データをプログラムするステップと、を包含する。
SSDコントローラ310はフラッシュメモリチップ315−1〜315−8上のガーベッジコレクションの動作と共に、リード及びライト動作を管理する。SSDコントローラ310は、斯かる管理の一部を遂行するフラッシュ変換階層325を包含する。SSDコントローラ310の機能の本願に係る詳細については、図7などを参照して後述する。図3は、4個のチャンネル320−1〜320−4として組織化された8個のフラッシュメモリチップ315−1〜315−8を包含するSSD120を図示するが、本発明の実施例は任意の個数のチャンネルとして組織された任意の個数のフラッシュメモリチップを支援できる。
斯かるチャンクは、消去ブロック又はスーパーブロック(superblocks)と命名され、任意の個数のページを包含できる。或るブロックがガーベッジコレクションの対象になると、現ブロック中の全てのページはフリー状態に遷移する。よって、現ブロック中の任意の現在有効データは、現ブロック中のページが消去される前に、何処か他のブロックのフラッシュメモリのフリーページに書き込まれ(斯かる処理過程はプログラム(プログラミング)と命名される)なければならない。
もしも、ガーベッジコレクションがブロック中の任意のデータが無効化されると直ちに、スタートすると仮定するならば、SSDは該ブロック中の有効ページから他のページにデータを移すのに相当膨大な時間を消費しなければならないはずである。消去ブロックからの有効データを他のページにプログラムすること自身が、それによる相当膨大なオーバヘッドを惹起するが、その事実を脇に措くとしても、フラッシュメモリは典型的に、限定された回数以上に書き込み(プログラム)アクセスされると信頼性が低下する(又は、より悪い場合には、使用不能になる)。
よって、消去ブロックからの有効データをプログラムするのに消費される時間量を最小化することが要求される。但し、同時に、ガーベッジコレクションは、消去ブロックの全てのページが無効としてマーキングされるまで遅延することはできない。フラッシュメモリはその全てのブロックが、有効又は無効としてマーキングされたページだけを含む(即ち、フリーページを含まない)状態になると、これは、これ以上データを該フラッシュメモリに書き込めないことを意味する。
アップデート頻度625:書き込まれたデータがどの程度頻繁にアップデート(現在データが書き込まれる場所のページを無効化する)されるであろうと期待されるか。
最新性630:書き込まれたデータのLBAが、どの程度近い以前に書き込まれたか。
ライトサイズ635:(同じ時期になされた他のライトに関するサイズに対して相対的な)書き込まれるべきデータのサイズ。
ライト時間640:(同じ時期になされた他のライトに関する書き込み時間に対して相対的な)データの書き込み時間。
リード頻度645:(他のデータのリード頻度に対して相対的に)リードされるべきデータがどの程度頻繁にリードされたか。
リード温度650:リードされるべきデータの“温度”、即ち、リードされるべきデータが“ホット(hot)”と考慮されるか“クール(cool)”と考慮されるか。
別の言葉で言えば、もし図5の有効データ510−3がこの時新しいライトリクエストの対象として受信されたと仮定すると、図5の有効データ510−3は、元来書き込まれた時に割り当てられたストリームと異なるストリームに割り当てられるであろう。図5の有効データ510−3をプログラムする時にストリームIDをアップデートすることの長所は、元来のストリームIDが図5の有効データ510−3を書き込むためのブロックを選択するのに使用されると仮定した場合に生起するであろう属性よりも、さらに類似した属性を有するデータを格納するブロックに有効データ510−3がプログラムされ得るという点である。
このような方式でライト(write)リクエストが処理される場合、有効データ510−3は、図1のSSD120の新たなページに書き込まれる。図1のSSD120の観点からは、このようなライト(write)リクエストは、図1のマシン105上を走るアプリケーションによって提起されるライト(write)リクエストと異なることはなく、同様に処理される。一旦ライト(write)リクエストが図7のI/Oキュー710に伝達されると、消去ロジック810は図5の消去ブロック505−2を消去する。ガーベッジコレクションロジック715は消去ロジック810を開始する前に、有効データが新たなページに書き込まれることを待つ必要のない点に留意されたい。何故ならば、該有効データは図7のI/Oキュー710内に完全に存在し、順に書き込まれるであろうから。もちろん、電力障害のような想定外の状況によってもデータが消失しないことを保証され場合には、消去ロジック810は図5の消去ブロック505−2を消去処理する前に、データの書き込みが成功するまで待たねばならない。但し、図1のSSD120がこのような保証を提供する場合は、想定外の状況によってもデータが消失しないように図7のI/Oキュー710のデータを保証する他のメカニズムが既に図1のSSD120内に通常、存在する。
図7のガーベッジコレクションロジック715は、図1のSSD120が異常に低いフリーページカウントを示す場合に開始され得る。但し、このような状況が発生すれば、有効データのプログラミング(書き込み)は何れにしても発生し、元来のライト(write)リクエストの書き込み遅延に対しては類似の影響を予期せざるを得ない。よって、有効データ510−3をプログラムする際に、あたかも元来のライト(write)リクエストの場合のようにI/Oキュー710を使用することは、伝統的な従来のガーベッジコレクションにおけるよりも大きい影響を惹起する可能性がない。そして、有効データ510−3は、残余寿命などの類似する属性を有する他のデータと共に配置される可能性が大きいので、ガーベッジコレクションの性能は、将来の有効データに対するプログラミング(書き込み)の機会を低減することにより、向上できる。
ブロック選択ロジック815は、図7の自動ストリーム検出ロジック415から受信されたストリームIDに基づいて任意の適切なブロックを選択できる点に留意されたい。例えば、選択されたブロックは、選択されたストリームIDを有する図1のマシン105上で走るアプリケーションから受信された元来のライト(write)リクエストに応答して、書き込みされたデータを保有するブロックでありうる。又は、選択されたブロックは、ガーベッジコレクションの結果としてプログラムされ、このようなストリームIDによって、割り当てられたデータのみ格納する特殊ブロックでありうる。なお、本発明の実施例は、他の方式で受信されたストリームIDに応答してブロックを選択するように、ブロック選択ロジック815を具現できる。
ステップ1130において、図7のガーベッジコレクションロジック715は、図5の消去ブロック505−2のような消去ブロックを識別する。ステップ1135において、図3のガーベッジコレクションロジック715は、図5の消去ブロック505−2内の有効データを識別する。そして、ステップ1140において、図7のガーベッジコレクションロジック715は、図7の自動ストリーム検出ロジック415によって決定されたとおりに、図10のストリームID1005に基づいて選択された、消去ブロック505−2とは相異なる第2ブロック505−8に図5の有効データ510−3をプログラムする。処理ステップはこの後、他の書き込み(又は他の)コマンドを処理するステップ1105に戻る。又は、他に消去すべきブロックがある場合はその消去ブロックを識別するステップ1130に戻る(図示せず)。
110 プロセッサ
115 メモリ
120 ソリッドステートドライブ(SSD)
125 メモリコントローラ
130 装置ドライバ
205 クロック
210 ネットワークコネクタ
215 バス
220 使用者インタフェース
225 入出力(I/O、Input/Output)エンジン
305 ホストインタフェースロジック
310 SSDコントローラ
315−1〜315−8 フラッシュメモリチップ
320−1〜320−4 チャンネル
325 フラッシュ変換階層
405−1〜405−4 ライトリクエスト
410、410−1〜410−4 論理ブロックアドレス(LBA)
415 自動ストリーム検出ロジック
420−1〜420−4 ストリーム識別子(ストリームID)
505−1〜505−10 ブロック、消去ブロック
510−1〜510−4、515−1〜515−4 ページ
510−3 (ページ410−3に格納された)有効データ
515−1〜515−4 フリーページ
605 属性の集合
610 アプリケーションID
615 残余寿命
620 順次性
625 アップデート頻度
630 最新性
635 ライトサイズ
640 ライト時間
645 リード頻度
645 リード温度
705 レシーバ
710 入出力(I/O)キュー
715 ガーベッジコレクションロジック
805 ライト(write)リクエストロジック
810 消去ロジック
815 ブロック選択ロジック
820 プログラミングロジック
1005 ストリーム識別子(ID)1010−3 フリーページ
1105〜1140 ステップ
1205〜1230 ステップ
Claims (20)
- データを格納するフラッシュメモリと、
前記フラッシュメモリへのデータのライト(write)及び前記フラッシュメモリからのデータのリード(read)を管理するSSDコントローラと、を含み、
前記SSDコントローラは、
前記データの属性に応答してストリーム識別子(ID)を選択する自動ストリーム検出ロジックと、
ガーベッジコレクションのために、前記フラッシュメモリ内の消去ブロックを選択し、前記自動ストリーム検出ロジックにより決定された第1ストリームIDに応答し、第2ブロックに前記消去ブロックの有効データをプログラムする(書き込む)ガーベッジコレクションロジックと、を含み、
前記自動ストリーム検出ロジックは前記ガーベッジコレクションロジックがガーベッジコレクションのために前記消去ブロックを選択した後、前記第1ストリームIDを決定する、ソリッドステートドライブ(SSD)。 - 前記SSDコントローラは、ホストコンピュータ上のアプリケーションからのリクエスト(request)を管理する入出力(I/O)キューを含み、
前記ガーベッジコレクションロジックは前記入出力(I/O)キューに前記有効データに対するライト(write)リクエストを配置するライト(write)リクエストロジックを含む、請求項1に記載のソリッドステートドライブ(SSD)。 - 前記SSDコントローラは、前記アプリケーションからの第2ライト(write)リクエストを受信するレシーバ(receiver)をさらに含み、
前記第2ライト(write)リクエストは、前記アプリケーションからの有効データを含む、請求項2に記載のソリッドステートドライブ(SSD)。 - 前記ソリッドステートドライブは、前記自動ストリーム検出ロジックからの第2ストリームIDに応答して、前記消去ブロックに前記有効データを書き込む、請求項3に記載のソリッドステートドライブ(SSD)。
- 前記ガーベッジコレクションロジックは、前記消去ブロックを消去する消去ロジックをさらに包含する、請求項2に記載のソリッドステートドライブ(SSD)。
- 前記消去ロジックは、前記ライトリクエストが前記ソリッドステートドライブにより処理された後、前記消去ブロックを消去する、請求項5に記載のソリッドステートドライブ(SSD)。
- 前記消去ロジックは、前記ライトリクエストロジックが前記入出力キューに前記ライトリクエストを配置した後、そして前記ライトリクエストが前記ソリッドステートドライブにより処理される前に、前記消去ブロックを消去する、請求項5に記載のソリッドステートドライブ(SSD)。
- 前記ガーベッジコレクションロジックは、前記有効データをプログラムする前に、前記自動ストリーム検出ロジックから前記第1ストリームIDを要請し、
前記ガーベッジコレクションロジックは、
前記第1ストリームIDに応答して第2ブロックを選択するブロック選択ロジックと、及び
前記第2ブロックに前記有効データを書き込むプログラミングロジックと、を包含する、請求項1に記載のソリッドステートドライブ(SSD)。 - 前記第2ブロックは、前記ガーベッジコレクションの間、プログラムされたデータを格納する特殊なブロックである、請求項8に記載のソリッドステートドライブ(SSD)。
- 前記ストリームIDは、有効データの論理ブロックアドレス(LBA)、前記ソリッドステートドライブに前記有効データを元来(original)書き込んでいるアプリケーションのアプリケーションID、前記有効データに対する残余寿命、前記有効データに対する順次性、前記有効データに対するアップデート頻度、前記有効データに対する最新性、前記有効データに対するライト(write)サイズ、前記有効データに対するライト時間、前記有効データに対するリード(read)頻度、及び前記有効データに対するリード(read)温度の中で,少なくとも一つに応答する、請求項1に記載のソリッドステートドライブ(SSD)。
- ソリッドステートドライブ(SSD)のガーベッジコレクションに係る方法であって、
ガーベッジコレクションのためのソリッドステートドライブ(SSD)において消去ブロックを識別するステップと、
プログラミングを要請する前記消去ブロックの有効データを識別するステップと、
ストリームIDに応答して選択された第2ブロックに、前記消去ブロックの前記有効データをプログラミングするステップと、を含み、
前記ストリームIDは、プログラミングを要請する前記消去ブロックの前記有効データを識別するステップが識別された後に、前記有効データの属性に応答して決定される、方法。 - 前記プログラミングを要請する前記消去ブロックの前記有効データを識別するステップの以前に、
アプリケーションからのライトリクエストの有効データを前記SSDにおいて受信するステップと、
前記有効データの前記属性に応答して第2ストリームIDを決定するステップと、
前記第2ストリームIDに応答して前記消去ブロックを選択するステップと、
前記第2ブロックに前記有効データを書き込むステップと、をさらに包含する、請求項11に記載の方法。 - 前記第2ブロックに、前記消去ブロックの前記有効データをプログラムするステップは、
前記第2ブロックに前記有効データを書き込むように入出力(I/O)キューにライトリクエストを配置するステップを包含する請求項11に記載の方法。 - 前記消去ブロックを消去するステップをさらに包含する、請求項13に記載の方法。
- 前記消去ブロックを消去するステップは、
前記有効データが前記第2ブロックに書き込まれる前に前記消去ブロックを消去するステップを包含する、請求項14に記載の方法。 - 前記第2ブロックに、前記消去ブロックの前記有効データをプログラムするステップは、
前記有効データの前記属性に応答して、前記有効データに対する前記ストリームIDを決定するステップと、
前記ストリームIDに応答して前記第2ブロックを選択するステップと、
前記第2ブロックに前記有効データをプログラムするステップと、を包含する、請求項11に記載の方法。 - 前記ストリームIDに応答して前記第2ブロックを選択するステップは、
前記ストリームIDに応答して、特殊なブロックを選択するステップを包含し、前記特殊なブロックは前記ガーベッジコレクションの間にプログラムされたデータを格納する、請求項16に記載の方法。 - 前記ストリームIDは、前記有効データの論理ブロックアドレス(LBA)、前記ソリッドステートドライブに前記有効データを元来書き込んでいるアプリケーションのアプリケーションID、前記有効データに対する残余寿命、前記有効データに対する順次性、前記有効データに対するアップデート頻度、前記有効データに対する最新性、前記有効データに対するライト(write)サイズ、前記有効データに対するライト時間、前記有効データに対するリード(read)頻度及び前記有効データに対するリード(read)温度の中で,少なくとも一つに応答する、請求項11に記載の方法。
- ソリッドステートドライブ(SSD)のガーベッジコレクションに係る方法の具現に係る、非一時的なストレージ媒体を含む物品(article)において、
前記非一時的なストレージ媒体上に、マシンにより実行されると下記の手順を結果する命令語を格納している物品。
ここで該手順は、
ガーベッジコレクションのために、前記ソリッドステートドライブ(SSD)において消去ブロックを識別するステップと、
前記消去ブロックにおいてプログラムを要請する有効データを識別するステップと、
ストリーム識別子(ID)に応答して選択された第2ブロックに、前記消去ブロックの前記有効データをプログラムする(書き込む)ステップと、を含み、
前記ストリームIDは、前記プログラミング(書き込み)を要請する前記消去ブロックが識別され、前記識別された消去ブロックの前記有効データを識別するステップがなされた後に、前記有効データの属性に応答して決定される。 - 前記第2ブロックに、前記消去ブロックの前記有効データをプログラミングする(書き込む)ステップは、
前記第2ブロックに前記有効データを書き込むライトリクエストを入出力(I/O)キューに配置するステップを包含する、請求項19に記載の物品。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762490027P | 2017-04-25 | 2017-04-25 | |
US62/490,027 | 2017-04-25 | ||
US15/620,814 US10698808B2 (en) | 2017-04-25 | 2017-06-12 | Garbage collection—automatic data placement |
US15/620,814 | 2017-06-12 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2018185815A true JP2018185815A (ja) | 2018-11-22 |
JP2018185815A5 JP2018185815A5 (ja) | 2021-06-10 |
JP6893897B2 JP6893897B2 (ja) | 2021-06-23 |
Family
ID=63853844
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018084363A Active JP6893897B2 (ja) | 2017-04-25 | 2018-04-25 | ソリッドステートドライブ(ssd)、そのガーベッジコレクションに係る方法、及びその具現に係る物品 |
Country Status (5)
Country | Link |
---|---|
US (4) | US10698808B2 (ja) |
JP (1) | JP6893897B2 (ja) |
KR (1) | KR102615007B1 (ja) |
CN (1) | CN108733321B (ja) |
TW (1) | TWI771383B (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10761750B2 (en) * | 2017-03-09 | 2020-09-01 | Netapp Inc. | Selectively storing data into allocation areas using streams |
JP2018160195A (ja) * | 2017-03-23 | 2018-10-11 | 東芝メモリ株式会社 | メモリシステムおよび不揮発性メモリの制御方法 |
US11379359B2 (en) * | 2020-02-11 | 2022-07-05 | Micron Technology, Inc. | Selecting data transfer units associated with a data stream for garbage collection |
KR20220022332A (ko) | 2020-08-18 | 2022-02-25 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
KR20220041593A (ko) | 2020-09-25 | 2022-04-01 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
KR20220049329A (ko) | 2020-10-14 | 2022-04-21 | 삼성전자주식회사 | 스토리지 컨트롤러, 스토리지 장치, 및 스토리지 장치의 동작 방법 |
US11822478B2 (en) * | 2021-04-16 | 2023-11-21 | Micron Technology, Inc. | Cache allocation techniques |
US11907123B2 (en) | 2021-04-20 | 2024-02-20 | International Business Machines Corporation | Flash memory garbage collection |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016170583A (ja) * | 2015-03-12 | 2016-09-23 | 株式会社東芝 | メモリシステムおよび情報処理システム |
Family Cites Families (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006235960A (ja) | 2005-02-24 | 2006-09-07 | Fujitsu Ltd | ガーベッジコレクション高速化方法 |
US20090119352A1 (en) | 2007-11-05 | 2009-05-07 | Steven Joseph Branda | Method for Optimizing Generational Garbage Collection Through Object Life Heuristics |
US8429658B2 (en) | 2008-10-16 | 2013-04-23 | International Business Machines Corporation | Lock deferral for real-time garbage collection |
KR20120068765A (ko) | 2009-07-17 | 2012-06-27 | 가부시끼가이샤 도시바 | 메모리 관리 장치 |
US8688894B2 (en) | 2009-09-03 | 2014-04-01 | Pioneer Chip Technology Ltd. | Page based management of flash storage |
US20130138915A1 (en) | 2010-08-11 | 2013-05-30 | Nec Corporation | Data processing system, data processing method, and program |
JP2012084127A (ja) | 2010-09-15 | 2012-04-26 | Toshiba Corp | 半導体装置 |
US20120110239A1 (en) | 2010-10-27 | 2012-05-03 | Seagate Technology Llc | Causing Related Data to be Written Together to Non-Volatile, Solid State Memory |
JP5500309B2 (ja) | 2011-09-07 | 2014-05-21 | 日本電気株式会社 | ストレージ装置 |
US10203881B2 (en) | 2011-12-19 | 2019-02-12 | Apple Inc. | Optimized execution of interleaved write operations in solid state drives |
JP5723812B2 (ja) | 2012-03-16 | 2015-05-27 | 株式会社 日立産業制御ソリューションズ | ファイルサーバ、データ入出力方法、i/oフックモジュールプログラム及びi/o代行デーモンプログラム |
US8886880B2 (en) | 2012-05-29 | 2014-11-11 | Dot Hill Systems Corporation | Write cache management method and apparatus |
US9158687B2 (en) | 2013-03-04 | 2015-10-13 | Dot Hill Systems Corporation | Method and apparatus for processing fast asynchronous streams |
WO2015005634A1 (ko) | 2013-07-08 | 2015-01-15 | 주식회사 윌러스표준기술연구소 | 메모리 시스템 및 이의 제어 방법 |
KR102074329B1 (ko) | 2013-09-06 | 2020-02-06 | 삼성전자주식회사 | 데이터 저장 장치 및 그것의 데이터 처리 방법 |
US9854270B2 (en) | 2013-12-19 | 2017-12-26 | Qualcomm Incorporated | Device and method for scalable coding of video information |
US9459810B2 (en) | 2013-12-30 | 2016-10-04 | Sandisk Technologies Llc | Storage module and method for configuring command attributes |
US8874835B1 (en) | 2014-01-16 | 2014-10-28 | Pure Storage, Inc. | Data placement based on data properties in a tiered storage device system |
KR101544309B1 (ko) | 2014-02-26 | 2015-08-12 | 한양대학교 산학협력단 | 스트림 기반의 비휘발성 메모리 제어 방법 및 장치 |
TWI554944B (zh) | 2014-06-20 | 2016-10-21 | 慧榮科技股份有限公司 | 快閃記憶體控制裝置、快閃記憶體控制系統以及快閃記憶體控制方法 |
EP3021208B1 (en) | 2014-11-14 | 2019-01-09 | Dot Hill Systems Corporation | Method and apparatus for processing fast asynchronous streams |
US9519429B2 (en) | 2014-12-09 | 2016-12-13 | Intel Corporation | Techniques to manage multiple sequential write streams to a solid state drive |
US10409526B2 (en) * | 2014-12-17 | 2019-09-10 | Violin Systems Llc | Adaptive garbage collection |
KR20160105624A (ko) | 2015-02-27 | 2016-09-07 | 에스케이하이닉스 주식회사 | 데이터 처리 시스템 및 그것의 동작 방법 |
US20160283124A1 (en) * | 2015-03-25 | 2016-09-29 | Kabushiki Kaisha Toshiba | Multi-streamed solid state drive |
US9760281B2 (en) * | 2015-03-27 | 2017-09-12 | Intel Corporation | Sequential write stream management |
US9996302B2 (en) | 2015-04-03 | 2018-06-12 | Toshiba Memory Corporation | Storage device writing data on the basis of stream |
US10261725B2 (en) | 2015-04-10 | 2019-04-16 | Toshiba Memory Corporation | Storage system capable of invalidating data stored in a storage device thereof |
US10013177B2 (en) | 2015-04-20 | 2018-07-03 | Hewlett Packard Enterprise Development Lp | Low write amplification in solid state drive |
US9696935B2 (en) | 2015-04-24 | 2017-07-04 | Kabushiki Kaisha Toshiba | Storage device that secures a block for a stream or namespace and system having the storage device |
US9594513B1 (en) | 2015-06-29 | 2017-03-14 | EMC IP Holding Company LLC | Data storage system with file system stream detection |
KR102381343B1 (ko) | 2015-07-27 | 2022-03-31 | 삼성전자주식회사 | 스토리지 장치 및 상기 스토리지 장치의 동작 방법 |
JP6403164B2 (ja) * | 2015-09-11 | 2018-10-10 | 東芝メモリ株式会社 | メモリシステム |
US9880780B2 (en) | 2015-11-30 | 2018-01-30 | Samsung Electronics Co., Ltd. | Enhanced multi-stream operations |
JP2018022275A (ja) * | 2016-08-02 | 2018-02-08 | 東芝メモリ株式会社 | 半導体記憶装置 |
JP2018160195A (ja) * | 2017-03-23 | 2018-10-11 | 東芝メモリ株式会社 | メモリシステムおよび不揮発性メモリの制御方法 |
-
2017
- 2017-06-12 US US15/620,814 patent/US10698808B2/en active Active
-
2018
- 2018-02-13 KR KR1020180017428A patent/KR102615007B1/ko active IP Right Grant
- 2018-03-05 TW TW107107148A patent/TWI771383B/zh active
- 2018-04-13 CN CN201810335530.XA patent/CN108733321B/zh active Active
- 2018-04-25 JP JP2018084363A patent/JP6893897B2/ja active Active
-
2020
- 2020-06-03 US US16/892,276 patent/US11194710B2/en active Active
-
2021
- 2021-12-06 US US17/543,710 patent/US11630767B2/en active Active
-
2023
- 2023-04-17 US US18/135,729 patent/US20230333977A1/en active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016170583A (ja) * | 2015-03-12 | 2016-09-23 | 株式会社東芝 | メモリシステムおよび情報処理システム |
Also Published As
Publication number | Publication date |
---|---|
CN108733321A (zh) | 2018-11-02 |
US20230333977A1 (en) | 2023-10-19 |
US20200293443A1 (en) | 2020-09-17 |
CN108733321B (zh) | 2023-05-23 |
US10698808B2 (en) | 2020-06-30 |
KR102615007B1 (ko) | 2023-12-18 |
JP6893897B2 (ja) | 2021-06-23 |
US11630767B2 (en) | 2023-04-18 |
TWI771383B (zh) | 2022-07-21 |
US11194710B2 (en) | 2021-12-07 |
US20180307596A1 (en) | 2018-10-25 |
KR20180119470A (ko) | 2018-11-02 |
US20220171701A1 (en) | 2022-06-02 |
TW201839612A (zh) | 2018-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6893897B2 (ja) | ソリッドステートドライブ(ssd)、そのガーベッジコレクションに係る方法、及びその具現に係る物品 | |
US11030094B2 (en) | Apparatus and method for performing garbage collection by predicting required time | |
US10579267B2 (en) | Memory controller and memory system | |
TWI761608B (zh) | 重復資料刪除快取及其方法 | |
CN111831583A (zh) | 用于传送存储器系统中的映射段的设备和方法 | |
US20210216446A1 (en) | Controller and method for selecting victim block for wear leveling operation | |
US9959046B2 (en) | Multi-streaming mechanism to optimize journal based data storage systems on SSD | |
TW202001573A (zh) | 記憶系統 | |
US11200178B2 (en) | Apparatus and method for transmitting map data in memory system | |
CN112684976A (zh) | 用于执行迁移操作的存储器系统及其操作方法 | |
US20140359211A1 (en) | Method for disk defrag handling in solid state drive caching environment | |
US9569113B2 (en) | Data storage device and operating method thereof | |
US20150121033A1 (en) | Information processing apparatus and data transfer control method | |
KR20200014175A (ko) | 소요시간을 예측하여 가비지 컬렉션을 수행하는 방법 및 장치 | |
TW201833780A (zh) | 管理裝置、資訊處理裝置及管理方法 | |
US7421536B2 (en) | Access control method, disk control unit and storage apparatus | |
KR20210051803A (ko) | 메모리 시스템 및 컨트롤러 | |
KR101477776B1 (ko) | 플래시 메모리에서의 페이지 교체 방법 | |
US10042753B2 (en) | Data storage device for storing data storage information of data and method for operating the same | |
US11941246B2 (en) | Memory system, data processing system including the same, and operating method thereof | |
US11657000B2 (en) | Controller and memory system including the same | |
US20220164119A1 (en) | Controller, and memory system and data processing system including the same | |
KR101466493B1 (ko) | Ssd의 버퍼 제어 장치 및 방법 | |
KR20180016660A (ko) | 스토리지 내의 데이터 처리 장치의 제어 방법 | |
KR20160015784A (ko) | 데이터 저장 장치 및 그것의 동작 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210426 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210426 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20210426 |
|
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: 20210525 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210602 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6893897 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |