TWI803179B - 記憶體系統及非揮發性記憶體的控制方法 - Google Patents
記憶體系統及非揮發性記憶體的控制方法 Download PDFInfo
- Publication number
- TWI803179B TWI803179B TW111104399A TW111104399A TWI803179B TW I803179 B TWI803179 B TW I803179B TW 111104399 A TW111104399 A TW 111104399A TW 111104399 A TW111104399 A TW 111104399A TW I803179 B TWI803179 B TW I803179B
- Authority
- TW
- Taiwan
- Prior art keywords
- blocks
- block
- data
- valid data
- garbage collection
- Prior art date
Links
Images
Classifications
-
- 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/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
- 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/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/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/0683—Plurality of storage devices
-
- 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)
- Read Only Memory (AREA)
Abstract
本發明提供一種實現將冷資料集中於單一區塊的垃圾收集的記憶體系統及非揮發性記憶體的控制方法。根據實施形態,記憶體系統包括非揮發性記憶體、及控制器。非揮發性記憶體包括多個區塊,所述多個區塊包括N個(N為2以上的自然數)第一區塊及未滿N個的第二區塊。控制器能夠對非揮發性記憶體執行垃圾收集處理,所述垃圾收集處理為使N個第一區塊的有效資料移動至未滿N個的第二區塊,製作一個以上自由區塊。控制器於執行垃圾收集處理的情況時,基於作為有效資料的移動源區塊的候選的各候選區塊的有效資料的減少頻度,選擇N個第一區塊作為有效資料的移動源區塊。
Description
本申請案享有以日本專利申請案2021-152308號(申請日:2021年9月17日)為基礎申請案的優先權。本申請案藉由參照該基礎申請案而包括基礎申請案的全部內容。
本發明的實施形態是有關於一種記憶體系統及非揮發性記憶體的控制方法。
近年來,廣泛利用如包括反及(Not-And,NAND)型快閃記憶體(NAND記憶體)的固態磁碟(Solid State Drive,SSD)的記憶體系統。NAND記憶體為無法對已寫入資料的記憶區域進行資料的覆寫的非揮發性記憶媒體。因此,SSD藉由將新的資料寫入與儲存原來的資料的記憶區域不同的記憶區域,並將原來的資料無效化來執行NAND記憶體上的資料的改寫。因此,於如SSD的記憶體系統中,需要用以將儲存有無效的資料的NAND記憶體上的記憶區域加以循環利用的被稱為垃圾收集(Garbage Collection,GC)的處理。垃圾收集亦稱為壓縮。
SSD藉由被稱為頁面的單元執行針對NAND記憶體的資料的寫入或讀取。又,SSD藉由包括多個頁面的被稱為區塊的
單元執行NAND記憶體上的資料的抹除。並且,垃圾收集選擇包括大量儲存有無效的資料的頁面的區塊、換言之為有效資料少的區塊,使N(N為2以上的自然數)個以上區塊中的有效資料移動至未滿N個的區塊中,製作1個以上自由區塊。
NAND記憶體上的資料大致分為發生改寫的可能性低的冷資料與發生改寫的可能性高的熱資料。換言之,冷資料的存取頻度低於熱資料的存取頻度。若於某區塊僅儲存有冷資料,則該區塊以高水準維持有效資料所占比例的可能性高。因此,只要能夠將冷資料集中於單一區塊,與全區塊中的有效資料所占比例相比,能夠降低除了集中有冷資料的區塊以外的其他區塊中的有效資料所占比例。總有效資料量越少,垃圾收集的效率越提高。難以選擇集中有以高水準維持有效資料所占比例的可能性高的冷資料的區塊作為垃圾收集的對象。另一方面,容易選擇除了集中有冷資料的區塊以外的其他區塊作為垃圾收集的對象。因此,藉由將冷資料集中於單一區塊,可期待提高垃圾收集的效率。
本發明的一實施形態提供一種適宜地執行儲存冷資料的區塊的垃圾收集的記憶體系統及非揮發性記憶體的控制方法。
根據實施形態,記憶體系統包括非揮發性記憶體、及控制器。非揮發性記憶體包括多個區塊,所述多個區塊包括N個(N為2以上的自然數)第一區塊及未滿N個的第二區塊。控制器能
夠對非揮發性記憶體執行垃圾收集處理,所述垃圾收集處理使N個第一區塊的有效資料移動至未滿N個的第二區塊,而製作一個以上自由區塊。控制器於執行垃圾收集處理的情況時,基於作為有效資料的移動源區塊的候選的各候選區塊的有效資料的減少頻度,選擇N個區塊作為有效資料的移動源區塊。
1:記憶體系統
2:主機
11:控制器
12:NAND記憶體
111:區塊管理部
112:垃圾收集控制部
121:NAND記憶體裸晶
122:物理區塊
123:頁面
200、200-1~200-7:超級塊
A1~A9、B1~B9:頁面
a1:自由區塊池
b1:無效資料
b2:有效資料
b21:熱資料
b22:冷資料
圖1是表示實施形態的記憶體系統的一結構例的圖。
圖2是表示實施形態的記憶體系統的NAND記憶體裸晶的一結構例的圖。
圖3是表示實施形態的記憶體系統的超級塊的一結構例的圖。
圖4是表示垃圾收集的基本概要的圖。
圖5是用以對僅以有效資料的多少為基準的垃圾收集的例進行說明的圖。
圖6是用以對將冷資料集中於單一區塊的垃圾收集的例進行說明的圖。
圖7是用以對實施形態的記憶體系統中的第二模式下的垃圾收集進行說明的圖。
圖8是表示實施形態的記憶體系統中的第二模式下的垃圾收集的順序的流程圖。
以下,參照圖式對實施形態進行說明。
圖1是表示實施形態的記憶體系統1的一結構例的圖。此處,對記憶體系統1作為SSD而實現的例進行說明。記憶體系統1以能夠與主機2連接的方式構成。圖1表示包括記憶體系統1、及與記憶體系統1連接的狀態的主機2的資訊處理系統的一結構例。主機2為如伺服器或個人電腦的資訊處理裝置。
記憶體系統1包括控制器11、及NAND型快閃記憶體(以下稱為NAND記憶體)12。記憶體系統1例如經由依照高速外圍組件互聯(Peripheral Component Interconnect Express,PCI Express)TM(PCIeTM)規格的介面與主機2連接。
控制器11是控制NAND記憶體12的元件。控制器11例如根據來自主機2的指令,對針對NAND記憶體12的資料的寫入處理或自NAND記憶體12的資料的讀取處理進行控制。控制器11例如按照依照高速非揮發性記憶體(Non-Volatile Memory Express,NVM Express)TM(NVMeTM)規格的協定進行與主機2之間的通訊。控制器11例如可以系統單晶片(System on a Chip,SoC)之類的半導體積體電路的形式構成。
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各選擇一個物理區塊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中,製作一個以上未使用狀態的超級塊200。以下,將未使用狀態的超級塊200稱為自由區塊。
圖4是表示垃圾收集的基本概要的圖。
此處,為了簡化說明,而對各超級塊200包括九個頁面的例進行說明。超級塊(#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也能夠循環利用。此處,藉由將兩個超級塊(#1、#2)200的有效資料移動至一個超級塊(#3)200,相抵實現確保一個自由區塊。
如上文所述,區塊管理部111對與超級塊200相關的區塊資訊進行管理。區塊資訊包括有效群集率。有效群集率為超級
塊200內儲存有效資料的頁面123於能夠利用的全部頁面123中所占的比例。有效群集率低的超級塊200為有效資料少的超級塊200。垃圾收集控制部112於垃圾收集中,基本選擇由區塊資訊所管理的有效群集率低的超級塊200作為有效資料的移動源的超級塊200。
繼而,參照圖5,對僅以有效資料的多少為基準選擇垃圾收集中的有效資料的移動源的超級塊200的例進行說明。
圖5的(A)表示儲存於超級塊200中的資料的分析。如圖5的(A)所示,超級塊200中通常包括無效資料b1與有效資料b2。又,有效資料b2中通常包括容易進行無效資料化的熱資料b21與不易進行無效資料化的冷資料b22。容易進行無效資料化的資料為存取頻度相對較高且發生改寫的可能性高的資料。不易進行無效資料化的資料為存取頻度相對較低且發生改寫的可能性低的資料。記憶體系統1無法直接獲知有效資料b2中何為熱資料b21、何為冷資料b22。
關於此種分析的超級塊200,於通常的垃圾收集中,僅以有效資料b2的多少為基準,選擇有效資料b2的移動源的超級塊200。圖5的(B)表示按照有效資料b2由多至少的順序選擇四個超級塊200作為垃圾收集中的移動源區塊(GC源區塊群)的例。圖5的(C)表示圖5的(B)中作為移動源區塊所選擇的四個超級塊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中的任一者均未產生預留區域(Over-Provisioning)的狀態。
將冷資料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執行垃圾收集的模式(第一模式的一例)以外,還包括執行以將冷資料b22集中於單一區塊為目的的垃圾收集的模式(第二模式的一例)。以下,對利用垃圾收集控制部112進行的第二模式下的垃圾收集進行詳細說明。
垃圾收集控制部112可以例如每隔一天等預先確定的間隔定期以第二模式執行垃圾收集,亦可根據來自主機2的指令或超級塊200的資料的儲存狀態等隨時以第二模式執行垃圾收集。
圖7是用以對利用垃圾收集控制部112進行的第二模式下的垃圾收集進行說明的圖。
作為區塊資訊之一,區塊管理部111記錄使用狀態的超級塊200內例如最近1小時資料被無效化的頁面123的數量、即有效資料b2的減少數。有效資料b2的減少數對應於有效資料b2的減少量。區塊管理部111例如保持最近一天(24個)的有效資料b2的減少數。將24個有效資料b2的減少數加以合計,可容易地算出最近一天(24小時)的有效資料b2的減少數。例如可算出最近3小時的有效資料b2的減少數或最近6小時的有效資料b2的減少數等任意期間內的有效資料b2的減少數。再者,區塊管理
部111可獨立記錄最近1小時的有效資料b2的減少數與最近一天的有效資料b2的減少數。
垃圾收集控制部112於以第二模式執行垃圾收集的情況時,參照由區塊管理部111所管理的區塊資訊所包括的有效資料b2的減少數。垃圾收集控制部112基於所參照的減少數,檢測出被推定有效資料b2被冷資料b22佔據的超級塊200,並選擇所檢測出的超級塊200作為移動源區塊。即,垃圾收集控制部112著眼於不易進行無效資料化的冷資料b22的特性,選擇有效資料b2的減少頻度小的超級塊200作為移動源區塊。此處,減少頻度為一定期間內的減少數。
被推定有效資料b2被冷資料b22佔據的超級塊200的檢測基準亦著眼於資料的局部性。存在於同一區塊的資料於同一時間點寫入的可能性高,因此認為於某一超級塊200的某一資料未發生改寫的情況時,該超級塊200的其他資料亦同樣未發生改寫的可能性高。
垃圾收集控制部112可使用最近1小時或最近一天的任一期間的數值作為有效資料b2的減少頻度,但於實施形態的記憶體系統1中,使用最近1小時及最近一天的兩個期間的數值。垃圾收集控制部112亦可使用三個以上期間內的有效資料b2的減少數。相較於長期間內的有效資料b2的減少數,垃圾收集控制部112更重視最近的短期間內的有效資料b2的減少數,而選擇作為移動源區塊的超級塊200。
圖7的(A)中示出作為移動源區塊的候選的六個超級塊200(200-1~200-6)。又,作為移動目標區塊,而圖示出從自由區塊池a1取出的超級塊200-7。超級塊200-1的最近一天的有效資料b2的減少數為9,其中一個為最近1小時的減少數。超級塊200-2的最近一天的有效資料b2的減少數為78,其中兩個為最近1小時的減少數。超級塊200-3的最近一天的有效資料b2的減少數為5,無最近1小時的減少數。超級塊200-4的最近一天的有效資料b2的減少數為7,其中四個為最近1小時的減少數。超級塊200-5的最近一天的減少數為0,因此最近1小時的減少數亦為0。並且,超級塊200-6的最近一天的有效資料b2的減少數為8,其中七個為最近1小時的減少數。
垃圾收集控制部112例如將最近一天的有效資料b2的減少數與最近1小時的有效資料b2的減少數相加,選擇所獲得的值為臨限值以下的超級塊200作為移動源區塊。即,最近1小時的有效資料b2的減少數經雙重計數。於存在多個最近一天的有效資料b2的減少數近似的超級塊200的情況時,容易選擇最近1小時的有效資料b2的減少數相對較少的超級塊200作為移動源區塊。即,相較於長期間,垃圾收集控制部112以短期間的減少數有助於目標超級塊200的檢測的方式,使用多個期間的有效資料b2的減少數。目標超級塊200為被推定有效資料b2被冷資料b22佔據的超級塊200。
又,垃圾收集控制部112可進而對最近一天的有效資料
b2的減少數與最近1小時的有效資料b2的減少數分別設定係數。即,可以相較於長期間而短期間更有助於目標超級塊200的檢測的方式,利用該係數進行加權。
具體而言,使最近一天的有效資料b2的減少數乘以第一係數,使最近1小時的有效資料b2的減少數乘以第二係數。此處,藉由將第一係數固定為1,將第二係數設為正值,而僅對最近1小時的有效資料b2的減少數進行加權計算,藉此可以相較於長期間而短期間更有助於目標超級塊200的檢測的方式調整有效資料b2的減少數。
於圖7的(A)所示的例中,例如超級塊200-6的最近一天的有效資料b2的減少數為8,小於超級塊200-1的最近一天的有效資料b2的減少數9。然而,超級塊200-6的最近1小時的有效資料b2的減少數為7,與此相對,超級塊200-1的最近1小時的有效資料b2的減少數為1。作為最近一天的有效資料b2的減少數與最近1小時的有效資料b2的減少數的相加值,超級塊200-6為15,與此相對,超級塊200-1為10。其結果為,相較於超級塊200-6,選擇超級塊200-1作為移動源區塊的可能性高。假設臨限值為13,則垃圾收集控制部112選擇超級塊200-1、超級塊200-3~超級塊200-5作為移動源區塊。
圖7的(B)表示第二模式下的垃圾收集後的狀態。於作為移動目標區塊的超級塊200-7中集中有儲存於超級塊200-1、超級塊200-3~超級塊200-5中的冷資料b22。藉由將冷資料b22
固定於一處,於第一模式下的垃圾收集中可抑制該冷資料b22再次移動。
未選擇作為移動源區塊的超級塊200-2、超級塊200-6的熱資料b21伴隨時間經過而可期待無效化。即,可減少垃圾收集的複製對象的資料量,而能夠減小記憶體系統1的寫入放大因子(Write Amplification Factor,WAF)。
圖8是表示實施形態的記憶體系統1中的第二模式下的垃圾收集的順序的流程圖。
垃圾收集控制部112算出各區塊的每單位時間的有效資料數的減少頻度(S101)。單位時間例如設置如1小時與一天的短期間與長期間的兩個。單位時間亦可為一個,亦可為三個以上。
垃圾收集控制部112基於有效資料數的減少頻度,選擇垃圾收集源區塊(S102)。於第二模式下,垃圾收集控制部112推定有效資料數的減少頻度小的區塊為有效資料被冷資料佔據的區塊,並選擇其作為垃圾收集源區塊。
然後,垃圾收集控制部112執行以將冷資料集中於單一區塊為目的的垃圾收集(S103)。
此外,於以上說明中,垃圾收集控制部112於以第二模式執行垃圾收集的情況時,示出使用由區塊管理部111所管理的區塊資訊所包括的有效資料b2的減少數的例。於該例中,垃圾收集控制部112基於減少數,檢測出被推定有效資料b2被冷資料b22佔據的超級塊200,並選擇該超級塊200作為移動源區塊。
垃圾收集控制部112於檢測被推定有效資料b2被冷資料b22佔據的超級塊200時,除了有效資料b2的減少數以外,亦可進而使用其他資訊。
例如,作為區塊資訊之一,區塊管理部111能夠對表示為儲存有與來自主機2的寫入指令相對應的寫入處理中的寫入資料的超級塊200、或者為儲存有垃圾收集中的寫入資料的超級塊200的屬性資訊進行管理。區塊管理部111自該些超級塊200向垃圾收集控制部112供給成為垃圾收集源區塊的候選的超級塊200。
如上文所述,被推定有效資料b2被冷資料b22佔據的超級塊200的檢測基準著眼於資料的局部性。因此,自多個超級塊200收集有效資料b2的垃圾收集的移動目標區塊的資料的局部性變小。因此,垃圾收集控制部112可基於由區塊管理部111所管理的區塊資訊所包括的屬性資訊,以相較於儲存有與來自主機2的寫入指令相對應的寫入處理中的寫入資料的超級塊200,容易將儲存有垃圾收集中的寫入資料的超級塊200推定為被冷資料b22佔據的超級塊200的方式,對有效資料b2的減少數進行加權。
又,對於儲存有與來自主機2的寫入指令相對應的寫入處理中的寫入資料的超級塊200,於對有效資料b2的減少數進行加權時,垃圾收集控制部112例如可應用圖像處理中的對比度修正的方法。
於對比度修正中,藉由將集中有各像素的顏色資料(0[黑]~255[白])的直方圖擴展或平坦化,而對例如深夜的圖像
(0附近的值多的圖像)實施使顏色資料重新分布於255(白)側的修正,而能夠提高該圖像的視認性。
與該對比度修正同樣,亦可應用如下觀點:與變化量的平均值相比更大者進一步變得更大,另一方面,與變化量的平均值相比更小者進一步變得更小。
進而,垃圾收集控制部112可將各超級塊200的有效資料b2的數量用於執行第二模式下的垃圾收集時的移動源區塊的選擇中。有效資料b2的數量亦可包括於由區塊管理部111所管理的區塊資訊中。
有效資料b2的數的減少頻度小、且被推定有效資料b2被冷資料b22佔據的超級塊200中,有效資料b2的數量多的超級塊200為已將冷資料b22集中於一處的超級塊200的可能性高。因此,垃圾收集控制部112對於即便為有效資料b2的數量的減少頻度小但有效資料b2的數量多的超級塊200,亦可將其自移動源區塊的候選中排除。
或垃圾收集控制部112例如亦可定義用以評價各超級塊200作為移動源區塊的合適度的函數。該函數可包括有效資料b2的減少頻度與有效資料b2的量的兩個因子作為變量。
如以上所述,實施形態的記憶體系統1實現將冷資料集中於單一區塊的第二模式下的垃圾收集。藉此,實施形態的記憶體系統1可提高第一模式下的垃圾收集的效率。
再者,上文所述的以將冷資料集中於單一區塊為目的的
第二模式下的垃圾收集並不限於在記憶體系統1的控制器11的控制下執行,亦可於主機2的控制下執行。
已對本發明的若干實施形態進行了說明,但該些實施形態是作為例所提示者,並不對發明的範圍進行限定。該些新穎的實施形態可以其他各種形態實施,可於不脫離發明的主旨的範圍內進行各種省略、置換、變更。該些實施形態或其變形包括於發明的範圍或主旨中,並且包括於申請專利的範圍所記載的發明及其均等的範圍中。
1:記憶體系統
2:主機
11:控制器
12:NAND記憶體
111:區塊管理部
112:垃圾收集控制部
121:NAND記憶體裸晶
Claims (7)
- 一種記憶體系統,包括:非揮發性記憶體,包括多個區塊,所述多個區塊包括N個第一區塊及未滿所述N個的第二區塊,N為2以上的自然數;以及控制器,能夠對所述非揮發性記憶體執行垃圾收集處理,所述垃圾收集處理為使所述N個第一區塊的有效資料移動至未滿所述N個的第二區塊,製作一個以上自由區塊,所述控制器於執行所述垃圾收集處理的情況時,基於作為所述有效資料的移動源區塊的候選的各候選區塊的有效資料的減少頻度,選擇所述N個第一區塊作為所述有效資料的移動源區塊。
- 如請求項1所述的記憶體系統,其中所述控制器針對每個所述候選區塊算出所述有效資料的第一期間內的減少量即第一減少量來作為所述減少頻度,並選擇所述第一減少量小的區塊作為所述移動源區塊。
- 如請求項2所述的記憶體系統,其中所述控制器針對每個所述候選區塊進一步算出所述有效資料的較所述第一期間更短的第二期間內的減少量即第二減少量來作為所述減少頻度,並選擇所述第一減少量與所述第二減少量的相加值小的區塊、或使所述第一減少量乘以第一係數所得的值與使所述第二減少量乘以大於所述第一係數的第二係數所得的值的相加值小的區塊作 為所述移動源區塊。
- 如請求項3所述的記憶體系統,其中所述控制器能夠與主機進行通訊,對於每個所述多個區塊,對表示為儲存有與來自所述主機的寫入指令相對應的寫入處理中的寫入資料的第三區塊、或者為儲存有所述垃圾收集處理中的寫入資料的第四區塊的屬性資訊進行管理,算出所述多個區塊整體的所述第一期間內的所述有效資料的減少量的平均值即第一平均值或所述第二期間內的所述有效資料的減少量的平均值即第二平均值的至少一個,對於所述多個區塊中所述屬性資訊表示為第三區塊的各區塊,以相較於所述第一平均值,所述第一減少量越大,所述第一係數越大,且相較於所述第一平均值,所述第一減少量越小,所述第一係數越小的方式,相應地調整所述第一係數,以相較於所述第二平均值,所述第二減少量越大,所述第二係數越大,且相較於所述第二平均值,所述第二減少量越小,所述第二係數越小的方式,相應地調整所述第二係數。
- 如請求項1至請求項4中任一項所述的記憶體系統,其中所述控制器將有效資料的量為臨限值以上的區塊自所述候選區塊中排除。
- 如請求項1至請求項4中任一項所述的記憶體系統, 其中所述控制器進而基於各候選區塊的有效資料的量,選擇所述N個第一區塊作為所述有效資料的移動源區塊。
- 一種非揮發性記憶體的控制方法,所述非揮發性記憶體包括多個區塊,所述多個區塊包括N個第一區塊及未滿所述N個的第二區塊,N為2以上的自然數,所述非揮發性記憶體的控制方法中,於執行使所述N個第一區塊的有效資料移動至未滿所述N個的第二區塊而製作一個以上自由區塊的垃圾收集處理的情況時,基於作為所述有效資料的移動源區塊的候選的各候選區塊的有效資料的減少頻度,選擇所述N個第一區塊作為所述有效資料的移動源區塊。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021-152308 | 2021-09-17 | ||
JP2021152308A JP2023044330A (ja) | 2021-09-17 | 2021-09-17 | メモリシステムおよび制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202314513A TW202314513A (zh) | 2023-04-01 |
TWI803179B true TWI803179B (zh) | 2023-05-21 |
Family
ID=85522411
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111104399A TWI803179B (zh) | 2021-09-17 | 2022-02-07 | 記憶體系統及非揮發性記憶體的控制方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230087470A1 (zh) |
JP (1) | JP2023044330A (zh) |
CN (1) | CN115831194A (zh) |
TW (1) | TWI803179B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI489468B (zh) * | 2009-07-29 | 2015-06-21 | Sk Hynix Inc | 記憶體裝置寫入抹除耐久期 |
US9348746B2 (en) * | 2012-12-31 | 2016-05-24 | Sandisk Technologies | Method and system for managing block reclaim operations in a multi-layer memory |
US20160179386A1 (en) * | 2014-12-17 | 2016-06-23 | Violin Memory, Inc. | Adaptive garbage collection |
TWI596480B (zh) * | 2011-12-05 | 2017-08-21 | 財團法人工業技術研究院 | 記憶體儲存系統及其中控裝置、管理方法與斷電復原方法 |
TWI646429B (zh) * | 2017-02-28 | 2019-01-01 | 東芝記憶體股份有限公司 | Memory system and control method |
TWI726314B (zh) * | 2019-05-02 | 2021-05-01 | 慧榮科技股份有限公司 | 資料儲存裝置與資料處理方法 |
TWI734011B (zh) * | 2017-02-28 | 2021-07-21 | 日商東芝記憶體股份有限公司 | 記憶體系統及控制方法 |
Family Cites Families (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7409489B2 (en) * | 2005-08-03 | 2008-08-05 | Sandisk Corporation | Scheduling of reclaim operations in non-volatile memory |
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 | 株式会社日立製作所 | ストレージシステム及び記憶管理方法 |
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 |
GB2502076A (en) * | 2012-05-15 | 2013-11-20 | Ibm | Managing memory in a computer system |
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 |
US9734050B2 (en) * | 2012-12-31 | 2017-08-15 | Sandisk Technologies Llc | Method and system for managing background operations in a multi-layer memory |
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 |
US9465731B2 (en) * | 2012-12-31 | 2016-10-11 | Sandisk Technologies Llc | Multi-layer non-volatile memory system having multiple partitions in a layer |
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 |
US10133490B2 (en) * | 2015-10-30 | 2018-11-20 | Sandisk Technologies Llc | System and method for managing extended maintenance scheduling 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 |
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 |
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 |
US10108544B1 (en) * | 2016-09-26 | 2018-10-23 | EMC IP Holding Company LLC | Dynamic duplication estimation for garbage collection |
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 |
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 |
WO2019062231A1 (zh) * | 2017-09-27 | 2019-04-04 | 北京忆恒创源科技有限公司 | 垃圾回收方法及其存储设备 |
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 |
CN112650691B (zh) * | 2019-10-10 | 2024-05-24 | 戴尔产品有限公司 | 基于改变频率的分层数据存储和垃圾回收系统 |
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 |
-
2021
- 2021-09-17 JP JP2021152308A patent/JP2023044330A/ja active Pending
-
2022
- 2022-02-07 TW TW111104399A patent/TWI803179B/zh active
- 2022-02-22 CN CN202210160683.1A patent/CN115831194A/zh not_active Withdrawn
- 2022-02-24 US US17/679,859 patent/US20230087470A1/en not_active Abandoned
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI489468B (zh) * | 2009-07-29 | 2015-06-21 | Sk Hynix Inc | 記憶體裝置寫入抹除耐久期 |
TWI596480B (zh) * | 2011-12-05 | 2017-08-21 | 財團法人工業技術研究院 | 記憶體儲存系統及其中控裝置、管理方法與斷電復原方法 |
US9348746B2 (en) * | 2012-12-31 | 2016-05-24 | Sandisk Technologies | Method and system for managing block reclaim operations in a multi-layer memory |
US20160179386A1 (en) * | 2014-12-17 | 2016-06-23 | Violin Memory, Inc. | Adaptive garbage collection |
TWI646429B (zh) * | 2017-02-28 | 2019-01-01 | 東芝記憶體股份有限公司 | Memory system and control method |
TWI734011B (zh) * | 2017-02-28 | 2021-07-21 | 日商東芝記憶體股份有限公司 | 記憶體系統及控制方法 |
TWI726314B (zh) * | 2019-05-02 | 2021-05-01 | 慧榮科技股份有限公司 | 資料儲存裝置與資料處理方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2023044330A (ja) | 2023-03-30 |
US20230087470A1 (en) | 2023-03-23 |
CN115831194A (zh) | 2023-03-21 |
TW202314513A (zh) | 2023-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10552315B2 (en) | Data processing method and apparatus, and flash device | |
CN106874217B (zh) | 存储器系统及控制方法 | |
US20200097403A1 (en) | Recency based victim block selection for garbage collection in a solid state device (ssd) | |
JP2013137770A (ja) | Lbaビットマップの使用 | |
US20200142613A1 (en) | Data categorization based on invalidation velocities | |
KR20150100862A (ko) | 데이터 저장 시스템들에 대한 우선순위 기반 가비지 수집 | |
CN111159059B (zh) | 一种垃圾回收方法、装置及非易失性的存储设备 | |
US11416389B2 (en) | Managing garbage collection in a memory subsystem based on characteristics of data streams | |
US10891070B1 (en) | Managing garbage collection in a memory subsystem based on characteristics of data streams | |
US11138104B2 (en) | Selection of mass storage device streams for garbage collection based on logical saturation | |
CN112749101A (zh) | 控制器和存储器系统 | |
TWI553481B (zh) | 固態硬碟的資料管理方法、寫入管理系統及其方法 | |
JP2018160189A (ja) | メモリシステム | |
US11972143B2 (en) | Techniques for balancing write commands on solid state storage devices (SSDs) | |
US10628301B1 (en) | System and method for optimizing write amplification of non-volatile memory storage media | |
KR101456370B1 (ko) | 스토리지 관리 방법 및 장치 | |
TWI803179B (zh) | 記憶體系統及非揮發性記憶體的控制方法 | |
JP6988231B2 (ja) | 情報処理装置、情報処理システム、情報処理方法及び情報処理プログラム | |
Khanbadr et al. | A novel method for victim block selection for NAND flash-based solid state drives based on scoring | |
US20200319999A1 (en) | Storage device, control method of storage device, and storage medium | |
US10394480B2 (en) | Storage device and storage device control method | |
JP6721765B2 (ja) | メモリシステムおよび制御方法 | |
US11886335B2 (en) | Memory system and controlling method of performing rewrite operation at maximum rewrite speed | |
JP2013200726A (ja) | 半導体記憶装置 | |
JP6666405B2 (ja) | メモリシステムおよび制御方法 |