JP2023044330A - メモリシステムおよび制御方法 - Google Patents

メモリシステムおよび制御方法 Download PDF

Info

Publication number
JP2023044330A
JP2023044330A JP2021152308A JP2021152308A JP2023044330A JP 2023044330 A JP2023044330 A JP 2023044330A JP 2021152308 A JP2021152308 A JP 2021152308A JP 2021152308 A JP2021152308 A JP 2021152308A JP 2023044330 A JP2023044330 A JP 2023044330A
Authority
JP
Japan
Prior art keywords
blocks
block
valid data
data
garbage collection
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.)
Pending
Application number
JP2021152308A
Other languages
English (en)
Inventor
亮一 加藤
Ryoichi Kato
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.)
Kioxia Corp
Original Assignee
Kioxia Corp
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 Kioxia Corp filed Critical Kioxia Corp
Priority to JP2021152308A priority Critical patent/JP2023044330A/ja
Priority to TW111104399A priority patent/TWI803179B/zh
Priority to CN202210160683.1A priority patent/CN115831194A/zh
Priority to US17/679,859 priority patent/US20230087470A1/en
Publication of JP2023044330A publication Critical patent/JP2023044330A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/0608Saving storage space on storage systems
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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
    • 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
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

Figure 2023044330000001
【課題】コールドデータを単一のブロックに集めるガベッジコレクションを実現するメモリシステムを提供する。
【解決手段】実施形態によれば、メモリシステムは、不揮発性メモリと、コントローラと、を具備する。不揮発性メモリは、N個(Nは2以上の自然数)の第1ブロックおよびN個未満の第2ブロックを含む複数のブロックを備える。コントローラは、不揮発性メモリに対して、N個の第1ブロックの有効データをN個未満の第2ブロックに移動させて1以上のフリーブロックを作成するガベッジコレクション処理を実行可能である。コントローラは、ガベッジコレクション処理を実行する場合、有効データの移動元ブロックの候補である各候補ブロックの有効データの減少頻度に基づき、有効データの移動元ブロックとしてN個の第1ブロックを選択する。
【選択図】図1

Description

本発明の実施形態は、メモリシステムおよび制御方法に関する。
近年、NAND型フラッシュメモリ(NANDメモリ)を有するSSD(Solid State Drive)のようなメモリシステムが広く利用されている。NANDメモリは、既にデータが書き込まれている記憶領域へのデータの上書きを行うことができない不揮発性の記憶媒体である。そのため、SSDは、NANDメモリ上のデータの書き換えを、元のデータが格納される記憶領域とは別の記憶領域に新たなデータを書き込み、元のデータを無効化することによって実行する。従って、SSDのようなメモリシステムでは、無効なデータが格納されているNANDメモリ上の記憶領域を再利用するためのガベッジコレクションと称される処理が必要となる。ガベッジコレクションは、コンパクションとも称される。
SSDは、NANDメモリに対するデータの書き込みや読み出しを、ページと称される単位で実行する。また、SSDは、NANDメモリ上のデータの消去を、複数のページで構成されるブロックと称される単位で実行する。そして、ガベッジコレクションは、無効なデータが格納されたページを多く含むブロック、換言すれば、有効データの少ないブロックを選択し、N(Nは2以上の自然数)個以上のブロックの中の有効データをN個未満のブロックに移動させて1以上のフリーブロックを作成する。
NANDメモリ上のデータは、書き換えが発生する可能性が低いコールドデータと、書き換えが発生する可能性が高いホットデータとに大別できる。換言すると、コールドデータのアクセス頻度は、ホットデータのアクセス頻度よりも低い。あるブロックにコールドデータのみが格納されたならば、そのブロックは、有効データが占める割合が高い水準で維持される可能性が高い。従って、コールドデータを単一のブロックに集めることができれば、全ブロックにおける有効データが占める割合と比較して、コールドデータを集めたブロックを除く他のブロックにおける有効データが占める割合を低めることができる。ガベッジコレクションの効率は、総有効データ量が少ない程向上する。有効データが占める割合が高い水準で維持される可能性が高いコールドデータを集めたブロックはガベッジコレクションの対象として選択されにくい。一方、コールドデータを集めたブロックを除く他のブロックはガベッジコレクションの対象として選択されやすい。従って、コールドデータを単一のブロックに集めることにより、ガベッジコレクションの効率を向上させることが期待できる。
米国特許出願公開第2019/0095116号明細書
本発明の1つの実施形態は、コールドデータを格納するブロックのガベッジコレクションを好適に実行するメモリシステムを提供する。
実施形態によれば、メモリシステムは、不揮発性メモリと、コントローラと、を具備する。不揮発性メモリは、N個(Nは2以上の自然数)の第1ブロックおよびN個未満の第2ブロックを含む複数のブロックを備える。コントローラは、不揮発性メモリに対して、N個の第1ブロックの有効データをN個未満の第2ブロックに移動させて1以上のフリーブロックを作成するガベッジコレクション処理を実行可能である。コントローラは、ガベッジコレクション処理を実行する場合、有効データの移動元ブロックの候補である各候補ブロックの有効データの減少頻度に基づき、有効データの移動元ブロックとしてN個のブロックを選択する。
実施形態のメモリシステムの一構成例を示す図 実施形態のメモリシステムのNANDメモリダイの一構成例を示す図 実施形態のメモリシステムのスーパーブロックの一構成例を示す図 ガベッジコレクションの基本的な概要を示す図 有効データの少なさのみを基準とするガベッジコレクションの例を説明するための図 コールドデータを単一のブロックに集めるガベージコレクションの例を説明するための図 実施形態のメモリシステムにおける第2モードでのガベッジコレクションを説明するための図 実施形態のメモリシステムにおける第2モードでのガベッジコレクションの手順を示すフローチャート
以下、実施の形態について、図面を参照して説明する。
図1は、実施形態のメモリシステム1の一構成例を示す図である。ここでは、メモリシステム1がSSDとして実現されている例を説明する。メモリシステム1は、ホスト2と接続可能に構成される。図1は、メモリシステム1と、メモリシステム1と接続された状態のホスト2とを含む情報処理システムの一構成例を示す。ホスト2は、サーバやパーソナルコンピュータのような情報処理装置である。
メモリシステム1は、コントローラ11と、NAND型フラッシュメモリ(以下、NANDメモリと称する)12とを有する。メモリシステム1は、たとえばPCI ExpressTM(PCIeTM)仕様に準拠するインターフェースを介してホスト2と接続される。
コントローラ11は、NANDメモリ12を制御するデバイスである。コントローラ11は、たとえば、ホスト2からのコマンドに応じて、NANDメモリ12へのデータの書き込み処理や、NANDメモリ12からのデータの読み出し処理を制御する。コントローラ11は、たとえばNVM ExpressTM(NVMeTM)仕様に準拠するプロトコルでホスト2との間の通信を行う。コントローラ11は、たとえばSoC(System on a Chip)といった半導体集積回路として構成され得る。
NANDメモリ12は、既にデータが書き込まれている記憶領域へのデータの上書きを行うことができない不揮発性の記憶媒体である。NANDメモリ12は、複数のNAND型フラッシュメモリダイ(以下、NANDメモリダイと称する)121を含む。NANDメモリダイ121は、NANDメモリチップなどとも称される。NANDメモリダイ121は、不揮発にデータを記憶可能なメモリセルアレイと、メモリセルアレイを制御する周辺回路とを含む。メモリセルアレイは、複数の物理ブロックを含む。個々のNANDメモリダイ121は、独立して動作可能である。ある数のNANDメモリダイ121は、並列動作単位として機能する。
コントローラ11は、ブロック管理部111と、ガベッジコレクション制御部112とを有する。ブロック管理部111およびガベッジコレクション制御部112は、ファームウェア(プログラム)によって実現されてもよいし、電子回路などのハードウェアによって実現されてもよい。
ブロック管理部111は、NANDメモリ12に含まれる複数の物理ブロックの中のある数の物理ブロックによって構成される拡張的な管理単位である論理ブロック(以下、スーパーブロックと称する)を管理するモジュールである。ある数とは、たとえば並列動作単位として機能するNANDメモリダイ121の数である。ブロック管理部111は、スーパーブロックに関する情報をブロック情報として管理する。また、ブロック管理部111は、ガベッジコレクション制御部112に対する、未使用状態のスーパーブロックの供給を行う。
ここで、ブロック管理部111によって管理されるスーパーブロックについて説明する。
図2は、NANDメモリダイ121の一構成例を示す図である。
各NANDメモリダイ121は、複数の物理ブロック122を含む。複数の物理ブロック122のそれぞれは、複数のページ123を含む。NANDメモリダイ121に対するデータの書き込みや読み出しは、このページ123の単位で実行される。
図3は、スーパーブロック200の一構成例を示す図である。
たとえばM(Mは2以上の自然数)個のNANDメモリダイ121が並列動作単位として機能する場合を説明する。この場合、ブロック管理部111は、M個のNANDメモリダイ121から1つずつ物理ブロック122を選択し、M個の物理ブロック122を含むスーパーブロック200を作成する。M個のNANDメモリダイ121は並列動作可能なので、たとえばスーパーブロック200へのデータの書き込みは、Mページずつ実行していくことができる。実施形態のメモリシステム1においては、このスーパーブロック200の単位でデータの消去が実行されるものとする。
図1に戻り、コントローラ11の説明を続ける。
ガベッジコレクション制御部112は、無効なデータが格納されたページ123を再利用するためのガベッジコレクション(GC)を制御する。前述したように、NANDメモリ12は、既にデータが書き込まれている記憶領域へのデータの上書きを行うことができない記憶媒体である。たとえば、あるスーパーブロック200の、あるページ123に格納されているデータの書き換えは、別のあるスーパーブロック200の、あるページ123に新たなデータを書き込み、あるスーパーブロック200の、あるページに格納されているデータを無効化することによって実行する。従って、時間の経過に伴って、あるスーパーブロック200が、無効なデータを格納するページ123で占められるといった状況が生じ得る。ガベッジコレクション制御部112は、ガベッジコレクションにおいて、基本的には、このような有効データの少ないスーパーブロック200を選択する。ガベッジコレクション制御部112は、選択したN個以上のスーパーブロック200の中の有効データをN個未満のスーパーブロック200に移動させて1以上の未使用状態のスーパーブロック200を作成する。以下、未使用状態のスーパーブロック200をフリーブロックと称する。
図4は、ガベッジコレクションの基本的な概要を示す図である。
ここでは、説明を簡略化するために、各スーパーブロック200が9個のページを含む例を説明する。スーパーブロック(#1)200は、ページA1~A9を含む。スーパーブロック(#2)200は、ページB1~B9を含む。ハッチングの施されていないページ(A3~A5、A8、A9、B1、B3、B5~B8)は、無効なデータを格納するページを示す。また、ハッチングの施されたページ(A1、A2、A6、A7、B2、B4、B9)は、有効なデータを格納するページを示す。ガベッジコレクション制御部112は、まず、ブロック管理部111からフリーブロックであるスーパーブロック(#3)200の供給を受ける。
なお、図4では、便宜的に、フリーブロックが、フリーブロックプールa1に溜められているものとしている。符号a2で示す枠内のスーパーブロック200は、フリーブロックプールa1から取り出されて使用状態にあるスーパーブロック200である。使用状態のスーパーブロック200は、データの書き込みが行われているものと、データの書き込みが完了しているものとを含む。前者のスーパーブロック200は、インプットブロックなどと称される。後者のスーパーブロック200は、アクティブブロックなどと称される。
ガベッジコレクション制御部112は、スーパーブロック(#1、#2)200内の有効データ、つまり、ページA1、A2、A6、A7、B2、B4、B9に格納されているデータを、スーパーブロック(#3)200にコピーする。ガベッジコレクション制御部112は、スーパーブロック(#1、#2)200内の有効データを無効化し、スーパーブロック(#1、#2)200をフリーブロックにする。これにより、無効なデータが格納されていたページA3~A5、A8、A9、B1、B3、B5~B8に加えて、有効なデータが格納されていたページA1、A2、A6、A7、B2、B4、B9の再利用が可能となる。ここでは、2つのスーパーブロック(#1、#2)200の有効データを1つのスーパーブロック(#3)200に移動することで、差し引き1つのフリーブロックの確保が実現されている。
前述したように、ブロック管理部111は、スーパーブロック200に関するブロック情報を管理する。ブロック情報には、有効クラスタ率が含まれている。有効クラスタ率は、スーパーブロック200内の利用可能な全ページ123に占める有効データを格納するページ123の割合である。有効クラスタ率の低いスーパーブロック200は、有効データの少ないスーパーブロック200である。ガベッジコレクション制御部112は、ガベッジコレクションにおいて、基本的には、ブロック情報で管理される有効クラスタ率が低いスーパーブロック200を、有効データの移動元のスーパーブロック200として選択する。
次に、図5を参照して、ガベッジコレクションにおける有効データの移動元のスーパーブロック200を、有効データの少なさのみを基準として選択する例を説明する。
図5(A)は、スーパーブロック200に格納されるデータの内訳を示している。図5(A)に示すように、スーパーブロック200には、一般的に、無効データb1と、有効データb2とが含まれている。また、有効データb2には、一般的に、無効データ化しやすいホットデータb21と、無効データ化しにくいコールドデータb22とが含まれている。無効データ化しやすいデータとは、アクセス頻度が相対的に高く、書き換えが発生する可能性が高いデータである。無効データ化しにくいデータとは、アクセス頻度が相対的に低く、書き換えが発生する可能性が低いデータである。有効データb2の中のどれがホットデータb21であり、どれがコールドデータb22であるのかは、メモリシステム1は直接的には知り得ない。
このような内訳のスーパーブロック200について、一般的なガベッジコレクションでは、有効データb2の少なさのみを基準として、有効データb2の移動元のスーパーブロック200が選択される。図5(B)は、有効データb2の少ない順に4つのスーパーブロック200が、ガベッジコレクションにおける移動元ブロック(GC元ブロック群)として選択された例を示している。図5(C)は、図5(b)で移動元ブロックとして選択された4つのスーパーブロック200のガベッジコレクションの結果を示している。
図5(C)に示すように、移動先ブロック(GC先ブロック)のスーパーブロック200には、ホットデータb21とコールドデータb22とが混在している。そのため、このスーパーブロック200は、時間経過でホットデータb21が減少すると、今度は移動元ブロックとして選択される可能性がある。そうすると、コールドデータb22の再移動が発生する。
続いて、図6を参照して、コールドデータb22を単一のスーパーブロック200に集めるガベージコレクションの例について説明する。
図6(A)は、使用状態の全スーパーブロック200における有効データb2が占める割合が70%である状態を示している。全スーパーブロック200は、b21又はb22のいずれかを含む。図6(B)は、コールドデータb22が単一のスーパーブロック200に集められた状態を示している。この状態は、いずれのコールドデータb22も無効化されておらず(有効データ比率が100%)、かつ、コールドデータb22が集められたスーパーブロック200の中のいずれにも余剰領域が生じていない状態である。
コールドデータb22を単一のスーパーブロック200に集めた結果、コールドデータb22を集めたスーパーブロック200を除く使用状態のスーパーブロック200には、ホットデータb21が残る。図6(c)は、ホットデータb21が残ったスーパーブロック200の状態を示している。ホットデータb21が残ったスーパーブロック200における有効データb2が占める割合は、使用状態の全スーパーブロック200における有効データb2が占める割合である70%よりも低い60%となっている。
ガベッジコレクションの効率は、有効データ比率が低い程向上する。図6(B)のコールドデータb22が集められたスーパーブロック200は、有効データb2が占める割合が高い水準で維持される可能性が高い。従って、これらのスーパーブロック200は、ガベッジコレクションの対象として選択されにくい。一方、図6(C)のコールドデータb22を集めたスーパーブロック200を除くスーパーブロック200は、ガベッジコレクションの対象として選択されやすい。よって、コールドデータb22を単一のスーパーブロック200に集めることで、コールドデータb22を集めたスーパーブロック200を除くスーパーブロック200の有効データ比率を低めて、ガベッジコレクションの効率を向上させることが期待できる。
そこで、実施形態のメモリシステム1は、ガベッジコレクション制御部112が、有効データb2の少なさを基準として移動元のスーパーブロック200を選択してガベッジコレクションを実行するモード(第1モードの一例)に加えて、コールドデータb22を単一ブロックに集めることを目的としたガベッジコレクションを実行するモード(第2モードの一例)を有する。以下、ガベッジコレクション制御部112による第2モードでのガベッジコレクションについて詳述する。
ガベッジコレクション制御部112は、たとえば1日毎といった予め定められた間隔で定期的にガベッジコレクションを第2モードで実行してもよいし、ホスト2からのコマンドやスーパーブロック200のデータの格納状態などに応じて随時にガベッジコレクションを第2モードで実行してもよい。
図7は、ガベッジコレクション制御部112による第2モードでのガベッジコレクションを説明するための図である。
ブロック管理部111は、ブロック情報の1つとして、使用状態のスーパーブロック200内でたとえば直近1時間にデータが無効化されたページ123の数、つまり、有効データb2の減少数を記録する。有効データb2の減少数は、有効データb2の減少量に対応する。ブロック管理部111は、有効データb2の減少数をたとえば直近1日分(24個)保持する。24個の有効データb2の減少数を合計すれば、直近1日(24時間)の有効データb2の減少数を容易に算出できる。たとえば直近3時間の有効データb2の減少数や直近6時間の有効データb2の減少数といった任意の期間での有効データb2の減少数を算出できる。なお、ブロック管理部111は、直近1時間の有効データb2の減少数と、直近1日の有効データb2の減少数とを、独立して記録してもよい。
ガベッジコレクション制御部112は、第2モードでガベッジコレクションを実行する場合、ブロック管理部111によって管理されるブロック情報に含まれる、有効データb2の減少数を参照する。ガベッジコレクション制御部112は、参照した減少数に基づいて、有効データb2がコールドデータb22で占められていると推定されるスーパーブロック200を検出し、検出したスーパーブロック200を移動元ブロックとして選択する。すなわち、ガベッジコレクション制御部112は、無効データ化しにくいというコールドデータb22の特性に着目し、有効データb2の減少頻度が小さいスーパーブロック200を移動元ブロックとして選択する。ここで、減少頻度は、ある期間における減少数である。
有効データb2がコールドデータb22で占められていると推定されるスーパーブロック200の検出基準は、データの局所性にも着目している。同一ブロックに存在するデータは同一タイミングで書かれた可能性が高いので、あるスーパーブロック200のあるデータについて書き換えが発生していない場合、このスーパーブロック200の他のデータについても、同様に、書き換えが発生しない可能性が高いと考えられる。
ガベッジコレクション制御部112は、有効データb2の減少頻度として、直近1時間または直近1日の何れかの期間の数値を用いてもよいが、実施形態のメモリシステム1においては、直近1時間および直近1日の両方の期間の数値を用いる。ガベッジコレクション制御部112は、3つ以上の期間での有効データb2の減少数を用いてもよい。ガベッジコレクション制御部112は、長期間での有効データb2の減少数よりも、直近の短期間での有効データb2の減少数を重視して、移動元ブロックとするスーパーブロック200を選択する。
図7(A)には、移動元ブロックの候補である6個のスーパーブロック200(200-1~200-6)が示されている。また、移動先ブロックとしてフリーブロックプールa1から取り出されたスーパーブロック200-7が図示されている。スーパーブロック200-1は、直近1日の有効データb2の減少数は9であり、そのうち1個は直近1時間のものである。スーパーブロック200-2は、直近1日の有効データb2の減少数は78であり、そのうち2個は直近1時間のものである。スーパーブロック200-3は、直近1日の有効データb2の減少数は5であり、直近1時間のものはない。スーパーブロック200-4は、直近1日の有効データb2の減少数は7であり、そのうち4個は直近1時間のものである。スーパーブロック200-5は、直近1日の減少数は0であり、よって、直近1時間の減少数も0である。そして、スーパーブロック200-6は、直近1日の有効データb2の減少数は8であり、そのうち7個は直近1時間のものである。
ガベッジコレクション制御部112は、たとえば、直近1日の有効データb2の減少数と、直近1時間の有効データb2の減少数とを加算して、得られた値が閾値以下のスーパーブロック200を移動元ブロックとして選択する。すなわち、直近1時間の有効データb2の減少数はダブルカウントされる。直近1日の有効データb2の減少数が近似するスーパーブロック200が複数存在する場合、直近1時間の有効データb2の減少数が相対的に少ないスーパーブロック200が移動元ブロックとして選択されやすくなる。つまり、ガベッジコレクション制御部112は、長期間よりも短期間の減少数が目的のスーパーブロック200の検出に寄与するように、複数の期間の有効データb2の減少数を使用する。目的のスーパーブロック200とは、有効データb2がコールドデータb22で占められていると推定されるスーパーブロック200である。
また、ガベッジコレクション制御部112は、さらに、直近1日の有効データb2の減少数と、直近1時間の有効データb2の減少数とのそれぞれに係数を設定してもよい。すなわち、長期間よりも短期間の方が目的のスーパーブロック200の検出に、より寄与するように、当該係数による重み付けを行ってもよい。
具体的には、直近1日の有効データb2の減少数に第1係数を乗じ、直近1時間の有効データb2の減少数に第2係数を乗じる。ここで、第1係数を1で固定し、第2係数を正の値とすることで、直近1時間の有効データb2の減少数に対して重み付けの計算をすることのみで、長期間よりも短期間の方が目的のスーパーブロック200の検出に、より寄与するように、有効データb2の減少数を調整することができる。
図7(A)に示す例では、たとえば、スーパーブロック200-6の直近1日の有効データb2の減少数は8であり、スーパーブロック200-1の直近1日の有効データb2の減少数の9よりも小さい。しかし、スーパーブロック200-6の直近1時間の有効データb2の減少数は7であるのに対して、スーパーブロック200-1の直近1時間の有効データb2の減少数は1である。直近1日の有効データb2の減少数と、直近1時間の有効データb2の減少数との加算値は、スーパーブロック200-6が15であるのに対して、スーパーブロック200-1は10である。この結果、スーパーブロック200-6よりも、スーパーブロック200-1が移動元ブロックとして選択される可能性が高い。仮に、閾値を13とすると、ガベッジコレクション制御部112は、スーパーブロック200-1、3~5を移動元ブロックとして選択する。
図7(B)は、第2モードでのガベッジコレクション後の状態を示している。移動先ブロックであるスーパーブロック200-7には、スーパーブロック200-1、3~5に格納されていたコールドデータb22が集められている。コールドデータb22が1ヶ所に固まることで、第1モードでのガベッジコレクションにおいて当該コールドデータb22が再移動してしまうことを抑制することができる。
移動元ブロックとして選択されなかったスーパーブロック200-2、6のホットデータb21は、時間経過で無効化が期待できる。つまり、ガベッジコレクションによるコピー対象のデータ量を削減するこができ、メモリシステム1のWAF(Write Amplification Factor)を小さくすることができる。
図8は、実施形態のメモリシステム1における第2モードでのガベッジコレクションの手順を示すフローチャートである。
ガベッジコレクション制御部112は、各ブロックの単位時間当たりの有効データ数の減少頻度を算出する(S101)。単位時間は、たとえば、1時間と1日とのような短期間と長期間との2つが設けられる。単位時間は、1つであってもよいし、3つ以上であってもよい。
ガベッジコレクション制御部112は、有効データ数の減少頻度に基づき、ガベッジコレクション元ブロックを選択する(S102)。第2モードにおいては、ガベッジコレクション制御部112は、有効データ数の減少頻度が小さいブロックを、有効データがコールドデータで占められているブロックであると推定し、ガベッジコレクション元ブロックとして選択する。
そして、ガベッジコレクション制御部112は、コールドデータを単一のブロックに集めることを目的とするガベッジコレクションを実行する(S103)。
ところで、以上の説明では、ガベッジコレクション制御部112は、第2モードでガベッジコレクションを実行する場合、ブロック管理部111によって管理されるブロック情報に含まれる有効データb2の減少数を使う例を示した。この例では、ガベッジコレクション制御部112は、減少数に基づいて、有効データb2がコールドデータb22で占められていると推定されるスーパーブロック200を検出し、当該スーパーブロック200を移動元ブロックとして選択する。
ガベッジコレクション制御部112は、有効データb2がコールドデータb22で占められていると推定されるスーパーブロック200を検出するにあたり、有効データb2の減少数に加えて、さらに、別の情報を使用してもよい。
たとえば、ブロック管理部111は、ブロック情報の1つとして、ホスト2からのライトコマンドに応じたライト処理での書き込みデータが格納されているスーパーブロック200であるのか、ガベッジコレクションでの書き込みデータが格納されているスーパーブロック200であるのかを示す属性情報を管理することが可能である。ブロック管理部111は、これらのスーパーブロック200から、ガベッジコレクション元ブロックの候補となるスーパーブロック200を、ガベッジコレクション制御部112に供給する。
前述したように、有効データb2がコールドデータb22で占められていると推定されるスーパーブロック200の検出基準は、データの局所性に着目したものである。そのため、複数のスーパーブロック200から有効データb2が寄せ集められる、ガベッジコレクションの移動先ブロックは、データの局所性が小さくなる。そこで、ガベッジコレクション制御部112は、ブロック管理部111によって管理されるブロック情報に含まれる属性情報に基づき、ホスト2からのライトコマンドに応じたライト処理での書き込みデータが格納されているスーパーブロック200より、ガベッジコレクションでの書き込みデータが格納されているスーパーブロック200を、コールドデータb22で占められているスーパーブロック200であると推定され易くするように、有効データb2の減少数に対する重み付けを行うようにしてもよい。
また、ホスト2からのライトコマンドに応じたライト処理での書き込みデータが格納されているスーパーブロック200について、有効データb2の減少数に対する重み付けを行うにあたり、ガベッジコレクション制御部112は、たとえば画像処理におけるコントラスト補正の手法を適用してもよい。
コントラスト補正では、各ピクセルの色データ(0[黒]~255[白])を集めたヒストグラムを拡張したり平坦化したりすることで、たとえば深夜の画像(0近辺の値が多い画像)に対して、色データを255(白)側に再分布させる補正を施し、当該画像の視認性を上げることができる。
このコントラスト補正と同様、変化量の平均値と比べて、より大きいものは、さらにより大きく、一方、変化量の平均値と比べて、より小さいものは、さらにより小さく、という考え方を適用してもよい。
さらに、ガベッジコレクション制御部112は、各スーパーブロック200の有効データb2の数を、第2モードでのガベッジコレクションの実行時における移動元ブロックの選択に使用してもよい。有効データb2の数も、ブロック管理部111によって管理されるブロック情報に含まれ得る。
有効データb2の数の減少頻度が小さく、有効データb2がコールドデータb22で占められていると推定されるスーパーブロック200のうち、有効データb2の数が多いスーパーブロック200は、コールドデータb22が既に一ヶ所に集められたスーパーブロック200である可能性が高い。そこで、ガベッジコレクション制御部112は、有効データb2の数の減少頻度が小さいスーパーブロック200であっても、有効データb2の数が多いスーパーブロック200については、移動元ブロックの候補から除外するようにしてもよい。
あるいは、ガベッジコレクション制御部112は、たとえば、各スーパーブロック200について移動元ブロックとしての適切度を評価するための関数を定義してもよい。この関数は、有効データb2の減少頻度と、有効データb2の量との2つの因子を変数として含んでもよい。
以上のように、実施形態のメモリシステム1は、コールドデータを単一のブロックに集める第2モードでのガベッジコレクションを実現する。これにより、実施形態のメモリシステム1は、第1モードでのガベッジコレクションの効率の向上させることができる。
なお、前述した、コールドデータを単一のブロックに集めることを目的とする第2モードでのガベッジコレクションは、メモリシステム1のコントローラ11の制御下で実行することに限らず、ホスト2の制御下で実行することも可能である。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1…メモリシステム、2…ホスト、11…コントローラ、12…NANDメモリ、111…ブロック管理部、112…ガベッジコレクション制御部、121…NANDメモリダイ、122…物理ブロック、123…ページ、200…スーパーブロック、b2…有効データ、b21…ホットデータ、b22…コールドデータ。

Claims (7)

  1. N個(Nは2以上の自然数)の第1ブロックおよび前記N個未満の第2ブロックを含む複数のブロックを備える不揮発性メモリと、
    前記不揮発性メモリに対して、前記N個の第1ブロックの有効データを前記N個未満の第2ブロックに移動させて1以上のフリーブロックを作成するガベッジコレクション処理を実行可能なコントローラと、
    を具備し、
    前記コントローラは、
    前記ガベッジコレクション処理を実行する場合、前記有効データの移動元ブロックの候補である各候補ブロックの有効データの減少頻度に基づき、前記有効データの移動元ブロックとして前記N個の第1ブロックを選択する、
    メモリシステム。
  2. 前記コントローラは、前記減少頻度として、前記有効データの第1期間における減少量である第1減少量を前記候補ブロック毎に算出し、前記第1減少量が小さいブロックを前記移動元ブロックとして選択する請求項1に記載のメモリシステム。
  3. 前記コントローラは、
    前記減少頻度として、前記有効データの前記第1期間よりも短い第2期間における減少量である第2減少量を前記候補プロック毎にさらに算出し、
    前記第1減少量と前記第2減少量との加算値が小さいブロック、または、前記第1減少量に第1係数を乗じて得られる値と、前記第2減少量に前記第1係数よりも大きい第2係数を乗じて得られる値との加算値が小さいブロックを、前記移動元ブロックとして選択する請求項2に記載のメモリシステム。
  4. 前記コントローラは、ホストと通信可能であり、
    前記ホストからのライトコマンドに応じたライト処理での書き込みデータが格納されている第3ブロックであるのか、前記ガベッジコレクション処理での書き込みデータが格納されている第4ブロックであるのかを示す属性情報を前記複数のブロック毎に管理し、
    前記複数のブロック全体の前記第1期間における前記有効データの減少量の平均値である第1平均値または前記第2期間における前記有効データの減少量の平均値である第2平均値の少なくとも一方を算出し、
    前記複数のブロックのうち、前記属性情報が第3ブロックであることを示す各ブロックについて、
    前記第1平均値よりも前記第1減少量が大きいほど前記第1係数が大きくなり、前記第1平均値よりも前記第1減少量が小さいほど前記第1係数が小さくなるように、前記第1係数を適応的に調整し、
    前記第2平均値よりも前記第2減少量が大きいほど前記第2係数が大きくなり、前記第2平均値よりも前記第2減少量が小さいほど前記第2係数が小さくなるように、前記第2係数を適応的に調整する、
    請求項3に記載のメモリシステム。
  5. 前記コントローラは、有効データの量が閾値以上のブロックを前記候補ブロックから除外する請求項1~4のいずれか1項に記載のメモリシステム。
  6. 前記コントローラは、さらに、各候補ブロックの有効データの量に基づき、前記有効データの移動元ブロックとして前記N個の第1ブロックを選択する請求項1~5のいずれか1項に記載のメモリシステム。
  7. N個(Nは2以上の自然数)の第1ブロックおよび前記N個未満の第2ブロックを含む複数のブロックを備える不揮発性メモリの制御方法であって、
    前記N個の第1ブロックの有効データを前記N個未満の第2ブロックに移動させて1以上のフリーブロックを作成するガベッジコレクション処理を実行する場合、前記有効データの移動元ブロックの候補である各候補ブロックの有効データの減少頻度に基づき、前記有効データの移動元ブロックとして前記N個の第1ブロックを選択する、
    制御方法。
JP2021152308A 2021-09-17 2021-09-17 メモリシステムおよび制御方法 Pending JP2023044330A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2021152308A JP2023044330A (ja) 2021-09-17 2021-09-17 メモリシステムおよび制御方法
TW111104399A TWI803179B (zh) 2021-09-17 2022-02-07 記憶體系統及非揮發性記憶體的控制方法
CN202210160683.1A CN115831194A (zh) 2021-09-17 2022-02-22 存储系统以及非易失性存储器的控制方法
US17/679,859 US20230087470A1 (en) 2021-09-17 2022-02-24 Memory system and control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021152308A JP2023044330A (ja) 2021-09-17 2021-09-17 メモリシステムおよび制御方法

Publications (1)

Publication Number Publication Date
JP2023044330A true JP2023044330A (ja) 2023-03-30

Family

ID=85522411

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021152308A Pending JP2023044330A (ja) 2021-09-17 2021-09-17 メモリシステムおよび制御方法

Country Status (4)

Country Link
US (1) US20230087470A1 (ja)
JP (1) JP2023044330A (ja)
CN (1) CN115831194A (ja)
TW (1) TWI803179B (ja)

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7984084B2 (en) * 2005-08-03 2011-07-19 SanDisk Technologies, Inc. Non-volatile memory with scheduled reclaim operations
US7464216B2 (en) * 2006-09-29 2008-12-09 Sandisk Corporation Method for phased garbage collection with state indicators
JP4912174B2 (ja) * 2007-02-07 2012-04-11 株式会社日立製作所 ストレージシステム及び記憶管理方法
US8402242B2 (en) * 2009-07-29 2013-03-19 International Business Machines Corporation Write-erase endurance lifetime of memory storage devices
US8285918B2 (en) * 2009-12-11 2012-10-09 Nimble Storage, Inc. Flash memory cache for data storage device
US8443263B2 (en) * 2009-12-30 2013-05-14 Sandisk Technologies Inc. Method and controller for performing a copy-back operation
US9164887B2 (en) * 2011-12-05 2015-10-20 Industrial Technology Research Institute Power-failure recovery device and method for flash memory
GB2502076A (en) * 2012-05-15 2013-11-20 Ibm Managing memory in a computer system
US9465731B2 (en) * 2012-12-31 2016-10-11 Sandisk Technologies Llc Multi-layer non-volatile memory system having multiple partitions in a layer
US9336133B2 (en) * 2012-12-31 2016-05-10 Sandisk Technologies Inc. Method and system for managing program cycles including maintenance programming operations in a multi-layer memory
US9734050B2 (en) * 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for managing background operations in a multi-layer memory
US9348746B2 (en) * 2012-12-31 2016-05-24 Sandisk Technologies Method and system for managing block reclaim operations in a multi-layer memory
US8873284B2 (en) * 2012-12-31 2014-10-28 Sandisk Technologies Inc. Method and system for program scheduling in a multi-layer memory
US9734911B2 (en) * 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for asynchronous die operations in a non-volatile memory
US9223693B2 (en) * 2012-12-31 2015-12-29 Sandisk Technologies Inc. Memory system having an unequal number of memory die on different control channels
US9652376B2 (en) * 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
KR102053865B1 (ko) * 2013-03-15 2019-12-09 삼성전자주식회사 호스트-주도 가비지 컬렉션 방법과 상기 방법을 수행할 수 있는 시스템
US20140325148A1 (en) * 2013-04-29 2014-10-30 Sang Hoon Choi Data storage devices which supply host with data processing latency information, and related data processing methods
US20150227601A1 (en) * 2014-02-13 2015-08-13 Actifio, Inc. Virtual data backup
US10409526B2 (en) * 2014-12-17 2019-09-10 Violin Systems Llc Adaptive garbage collection
US10120613B2 (en) * 2015-10-30 2018-11-06 Sandisk Technologies Llc System and method for rescheduling host and maintenance operations in a non-volatile memory
US9778855B2 (en) * 2015-10-30 2017-10-03 Sandisk Technologies Llc System and method for precision interleaving of data writes in a non-volatile memory
US10133490B2 (en) * 2015-10-30 2018-11-20 Sandisk Technologies Llc System and method for managing extended maintenance scheduling in a non-volatile memory
US10185658B2 (en) * 2016-02-23 2019-01-22 Sandisk Technologies Llc Efficient implementation of optimized host-based garbage collection strategies using xcopy and multiple logical stripes
US10108543B1 (en) * 2016-09-26 2018-10-23 EMC IP Holding Company LLC Efficient physical garbage collection using a perfect hash vector
US10255179B2 (en) * 2016-12-30 2019-04-09 Western Digital Technologies, Inc. Garbage collection read throttling
US10430279B1 (en) * 2017-02-27 2019-10-01 Tintri By Ddn, Inc. Dynamic raid expansion
JP6765321B2 (ja) * 2017-02-28 2020-10-07 キオクシア株式会社 メモリシステムおよび制御方法
JP6709180B2 (ja) * 2017-02-28 2020-06-10 キオクシア株式会社 メモリシステムおよび制御方法
US10795812B1 (en) * 2017-06-30 2020-10-06 EMC IP Holding Company LLC Virtual copy forward method and system for garbage collection in cloud computing networks
US11416162B2 (en) * 2017-09-27 2022-08-16 Beijing Memblaze Technology Co., Ltd Garbage collection method and storage device
US10983715B2 (en) * 2018-09-19 2021-04-20 Western Digital Technologies, Inc. Expandable memory for use with solid state systems and devices
KR20200064499A (ko) * 2018-11-29 2020-06-08 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
KR20200086472A (ko) * 2019-01-09 2020-07-17 에스케이하이닉스 주식회사 컨트롤러, 데이터 저장 장치 및 그것의 동작 방법
US11507305B2 (en) * 2019-03-29 2022-11-22 EMC IP Holding Company LLC Concurrently performing normal system operations and garbage collection
TWI726314B (zh) * 2019-05-02 2021-05-01 慧榮科技股份有限公司 資料儲存裝置與資料處理方法
CN112650691A (zh) * 2019-10-10 2021-04-13 戴尔产品有限公司 基于改变频率的分层数据存储和垃圾回收系统
US11893126B2 (en) * 2019-10-14 2024-02-06 Pure Storage, Inc. Data deletion for a multi-tenant environment
KR20210063764A (ko) * 2019-11-25 2021-06-02 에스케이하이닉스 주식회사 메모리 시스템의 동작 방법 및 장치
CN111105766B (zh) * 2019-12-04 2022-08-26 昆山龙腾光电股份有限公司 频率转换方法、组件、时序处理装置及可读存储介质
KR20210083448A (ko) * 2019-12-26 2021-07-07 삼성전자주식회사 비지도 학습 기법을 사용하는 스토리지 장치 및 그것의 메모리 관리 방법
US11042307B1 (en) * 2020-01-13 2021-06-22 Alibaba Group Holding Limited System and method for facilitating improved utilization of NAND flash based on page-wise operation
KR20210097353A (ko) * 2020-01-30 2021-08-09 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
US11144250B2 (en) * 2020-03-13 2021-10-12 Alibaba Group Holding Limited Method and system for facilitating a persistent memory-centric system
US11514075B2 (en) * 2020-04-29 2022-11-29 EMC IP Holding Company, LLC System and method for prioritizing replication copy activity

Also Published As

Publication number Publication date
US20230087470A1 (en) 2023-03-23
TWI803179B (zh) 2023-05-21
TW202314513A (zh) 2023-04-01
CN115831194A (zh) 2023-03-21

Similar Documents

Publication Publication Date Title
US10552315B2 (en) Data processing method and apparatus, and flash device
KR101894625B1 (ko) 데이터 저장 시스템들에 대한 우선순위 기반 가비지 수집
US7774390B2 (en) Apparatus for collecting garbage block of nonvolatile memory according to power state and method of collecting the same
RU2642349C1 (ru) Способ для сохранения данных посредством устройства хранения данных и устройство хранения данных
US9201786B2 (en) Memory controller and memory system
JP2015001908A (ja) 情報処理装置、制御回路、制御プログラム、および制御方法
US10235284B2 (en) Memory system
CN111159059B (zh) 一种垃圾回收方法、装置及非易失性的存储设备
US20220261342A1 (en) Garbage collection operation management
US11138104B2 (en) Selection of mass storage device streams for garbage collection based on logical saturation
JP6167646B2 (ja) 情報処理装置、制御回路、制御プログラム、および制御方法
CN112749101A (zh) 控制器和存储器系统
US20170090782A1 (en) Writing management method and writing management system for solid state drive
JP4561246B2 (ja) メモリ装置
US20170220253A1 (en) Memory system
CN111610930A (zh) 数据储存装置以及非挥发式存储器控制方法
CN113986773A (zh) 基于固态硬盘的写放大优化方法、装置及计算机设备
WO2015087651A1 (ja) メモリの使用可能期間を延ばすための装置、プログラム、記録媒体および方法
JP6988231B2 (ja) 情報処理装置、情報処理システム、情報処理方法及び情報処理プログラム
JP2023044330A (ja) メモリシステムおよび制御方法
US10990520B2 (en) Method for gabage collecting for non-volatile memory
US11269534B2 (en) Data storage device and non-volatile memory control method
JP2013200726A (ja) 半導体記憶装置
JP6721765B2 (ja) メモリシステムおよび制御方法
US11886335B2 (en) Memory system and controlling method of performing rewrite operation at maximum rewrite speed