CN107025071B - 非易失性存储器装置及其垃圾收集方法 - Google Patents
非易失性存储器装置及其垃圾收集方法 Download PDFInfo
- Publication number
- CN107025071B CN107025071B CN201710043233.3A CN201710043233A CN107025071B CN 107025071 B CN107025071 B CN 107025071B CN 201710043233 A CN201710043233 A CN 201710043233A CN 107025071 B CN107025071 B CN 107025071B
- Authority
- CN
- China
- Prior art keywords
- data
- layer
- layers
- address
- 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.)
- Active
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
- 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/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- 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
-
- 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/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
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)
Abstract
非易失性存储器(NVM)装置及其垃圾收集方法。所述NVM装置包括NVM以及控制器。控制器耦接至NVM。控制器依照主机的写入命令的逻辑地址而存取NVM。控制器可以进行垃圾收集方法来释放无效数据所占据的空间。所述垃圾收集方法包括:依照数据的热门程度而将NVM的多个实体块分群为多个层,将这些层中的一个较热层的一个已写满来源块中的有效数据搬移至这些层中的一个较冷层的一个未写满目标块,以及抹除所述较热层的此已写满来源块以释放空间。
Description
技术领域
本发明涉及一种存储器装置,且特别涉及一种非易失性存储器装置及其垃圾收集方法。
背景技术
与传统的硬盘机(hard disk drives)相比,由于快闪存储器(flash memory)存储设备的读/写性能佳且功耗低,使得快闪存储器被广泛应用于数据存储系统中。然而,将数据写入快闪存储器的关键因素是写入放大(Write Amplification,WA)。写入放大会影响快闪存储器的性能和耐久性。当主机对快闪存储器存储设备发出一个写入命令时,快闪存储器存储设备会将此主机写入命令转换(或解码)为多个内部写入动作/指令,以便完成此主机写入命令。所述“将一个主机写入命令转换为多个内部写入动作/指令”即为写入放大。写入放大主要是为了内部写入操作,例如垃圾收集(garbage collection)、磨损平衡(wearleveling)和/或其他快闪存储器管理性写入操作,以便管理数据更新和存储耐久性(storage endurance)。
写入放大的操作主要分布于垃圾收集。垃圾收集可以将一个已写满的实体块(block,在此称为来源块)中的有效数据(valid data)搬移至另一个未写满的实体块(从自由池中取出的实体块,在此称为目标块)。完成垃圾收集后,逻辑块地址(Logical BlockAddress,LBA)将从来源块改映射至目标块,而此来源块将被抹除(erased)并且被丢回到自由池中。垃圾收集的主要目的是要将有效数据聚集在一起,并将无效数据所占据的记忆空间释放给新的写入请求。
垃圾收集的效率取决于主机写入工作负荷(host write workloads)。在实际的主机写入工作负荷中,通常有一些数据被更频繁地存取与更新。这些被频繁存取与更新的数据通常被称为热数据(hot data)。相较之下,其他数据的存取与更新可能较不频繁。存取与更新较不频繁的数据通常被称为冷数据(cold data)。已知的非易失性存储器装置往往将冷数据与热数据混合在一个相同的实体块中。将冷数据与热数据混合在一个相同的实体块中,其往往导致垃圾收集的效率降低,进而导致更高的写入放大。
发明内容
本发明提供一种非易失性存储器装置及其垃圾收集方法,以提升垃圾收集的效率。
本发明的实施例提供一种非易失性存储器装置。所述非易失性存储器装置包括非易失性存储器以及控制器。控制器耦接至非易失性存储器。控制器依照主机的写入命令的逻辑地址而存取非易失性存储器。控制器可以进行垃圾收集方法来释放多个无效数据所占据的空间。所述垃圾收集方法包括:依照数据的热门程度(hotness)而将非易失性存储器的多个实体块分群为多个层,将这些层中的一个较热层的一个已写满来源块中的有效数据搬移至这些层中的一个较冷层的一个未写满目标块,以及抹除所述较热层的此已写满来源块以释放空间。
本发明的实施例提供一种非易失性存储器装置的垃圾收集方法,用以释放多个无效数据所占据的空间。所述垃圾收集方法包括:依照数据的热门程度而将该非易失性存储器的多个实体块分群为多个层;将这些层中的一个较热层的一个已写满来源块中的有效数据搬移至这些层中的一个较冷层的一个未写满目标块;以及抹除所述较热层的此已写满来源块以释放空间。
基于上述,本发明实施例所述非易失性存储器装置及其垃圾收集方法,其依照数据的热门程度而将多个实体块分群为多个层。当这些层中的一个层(在此称为较热层)的一个已写满来源块需要进行垃圾收集时,控制器可以将此较热层的所述已写满来源块中的有效数据搬移至这些层中的一个较冷层的一个未写满目标块,以提升垃圾收集的效率。在此较热层的所述已写满来源块已完成垃圾收集后,控制器可以抹除此较热层的所述已写满来源块以释放空间。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1是依照本发明一实施例说明一种非易失性存储器装置的电路方块(circuitblock)示意图。
图2是依照本发明一实施例说明一种垃圾收集方法的流程示意图。
图3是依照本发明一实施例说明非易失性存储器120的多个实体块被分群为N个层的示意图。
图4是依照本发明一实施例说明依据地址分类(数据分类)的结果来将主机数据写入对应层的流程示意图。
图5是依照本发明另一实施例说明依据地址分类(数据分类)的结果来将主机数据写入对应层的流程示意图。
图6是依照本发明另一实施例说明一种非易失性存储器装置的电路方块(circuitblock)示意图。
【符号说明】
10:主机
100、600:非易失性存储器装置
110、110’:控制器
111:中央处理单元
112:存储器控制电路
113:存储器缓冲器
114:数据分类电路
115:错误校验纠正(ECC)电路
120:非易失性存储器
301、303、305:已写满来源块
302、304、306:未写满目标块
S210~S230、S410~S450、S510~S560:步骤
T[1]:第1层
T[2]:第2层
T[N]:第N层
具体实施方式
在本申请说明书全文(包括权利要求书)中所使用的“耦接(或连接)”一词可指任何直接或间接的连接手段。举例而言,若文中描述第一装置耦接(或连接)于第二装置,则应该被解释成该第一装置可以直接连接于该第二装置,或者该第一装置可以通过其他装置或某种连接手段而间接地连接至该第二装置。另外,凡可能之处,在图式及实施方式中使用相同标号的元件/构件/步骤代表相同或类似部分。不同实施例中使用相同标号或使用相同用语的元件/构件/步骤可以相互参照相关说明。
图1是依照本发明一实施例说明一种非易失性存储器装置100的电路方块(circuit block)示意图。依照设计需求,非易失性存储器装置100可以是随身碟、固态硬盘(solid state disc,SSD)或是其他存储装置。非易失性存储器装置100可以耦接至主机(host)10。此主机10可以是计算机、手持式电话、多媒体播放器、相机或是其他电子装置。非易失性存储器装置100包括控制器110以及非易失性存储器120。依照设计需求,非易失性存储器120可以是与非快闪存储器(NAND flash memory)或是其他非易失性存储电路/元件。
控制器110耦接至非易失性存储器120。控制器110可以依照主机10的写入命令(write command)的逻辑地址而存取非易失性存储器120。在一些实施例中,所述逻辑地址信息可以是逻辑块地址(logical block address,LBA)或是其他逻辑地址。控制器110可以对存取非易失性存储器120进行“垃圾收集方法”,来释放无效数据所占据的空间。在图1所示实施例中,控制器110包括中央处理单元111、存储器控制电路112、存储器缓冲器113、数据分类电路114与错误校验纠正(Error Checking and Correcting,以下称ECC)电路115。中央处理单元111经由通信接口耦接至主机10。依照设计需求,所述通信接口包括小型计算机系统接口(small computer system interface,SCSI)、串行连接小型计算机系统接口(Serial Attached SCSI,SAS)、增强型小型装置接口(Enhanced Small Disk Interface,ESDI)、串行先进技术连接(serial advanced technology attachment,SATA)、快速周边元件互连(peripheral component interconnect express,PCI-express)、整合式电子装置(integrated drive electronics,IDE)接口、通用串行总线(universal serial bus,USB)、雷电(Thunderbolt)接口或其他接口。本实施例并没有限制主机10与非易失性存储器装置100之间的接口结构。
当主机10发出写入命令时,待写入的数据可以被暂存于存储器缓冲器113,而中央处理单元111可以将主机10的写入命令(包含逻辑地址)转换/解码为对应的内部控制信号(包含非易失性存储器120的物理地址),并将内部控制信号提供给存储器控制电路112和/或存储器缓冲器113。存储器缓冲器113的例子包括动态随机存取存储器(dynamic randomaccess memory,DRAM)、静态随机存取存储器(static random access memory,SRAM)或是其他易失性存储器(volatile memory)。ECC电路115可以执行ECC算法,以便将暂存于存储器缓冲器113的数据加以编码为码字(codeword)。在一些实施例中,ECC电路115可以执行BCH(Bose-Chaudhuri-Hocquengh)码算法、低密度同位校验(Low Density Parity Check,LDPC)码算法或是其他ECC算法。依照内部控制信号,存储器控制电路112可以定址/控制非易失性存储器120,以便将码字写入非易失性存储器120。
当主机10发出读取命令时,中央处理单元111可以将主机10的读取命令(包含逻辑地址)转换/解码为对应的内部控制信号(包含非易失性存储器120的物理地址)。依照内部控制信号,存储器控制电路112可以定址/控制非易失性存储器120,以便将非易失性存储器120内的码字读出。ECC电路115可以执行ECC算法,以便将码字解码为数据,并将经解码的数据暂存于存储器缓冲器113。然后,中央处理单元111可以将暂存于存储器缓冲器113的数据回传给主机10。
图2是依照本发明一实施例说明一种垃圾收集方法的流程示意图。本实施例所提出的想法是基于层(tier based)的垃圾收集方法。请参照图1与图2,控制器110的中央处理单元111可以依照数据的热门程度(hotness,亦即数据被更新的机率),而将非易失性存储器120的多个实体块分群为多个层(步骤S210)。中央处理单元111可以依照某一算法来决定在非易失性存储器120的所有实体块中,哪一个已写满实体块需要进行垃圾收集。本实施例并不限定所述某一算法的实施方式。举例来说,中央处理单元111可以采用已知算法,来决定在非易失性存储器120中的哪一个已写满实体块需要进行垃圾收集。当这些层中的一个层(在此称为较热层)的一个已写满来源块需要进行垃圾收集时,控制器110的中央处理单元111可以将此较热层的所述已写满来源块中的有效数据搬移至这些层中的另一层(较冷层)的一个未写满目标块(步骤S220)。其中,在所述较热层中的实体块的数据被存取机率(被存取频率)大于在所述较冷层中的实体块的数据被存取机率。在此较热层的所述已写满来源块已完成垃圾收集后,控制器110的中央处理单元111可以抹除(erasing)此较热层的所述已写满来源块(步骤S230),以释放无效数据所占据的空间。
如果已写满的来源块具有较少有效数据(或此来源块包含更多的热数据),则垃圾收集的效率会更高。所述多个层可以依照数据的热门程度(被存取频率)而分群非易失性存储器120的所有实体块。在较热层的已写满来源块中因为具有热数据(频繁被更新的数据)而没有冷数据,使得这个已写满来源块具有较多的无效数据,因此可以提升垃圾收集的效率。在垃圾收集的过程中,从较热层的已写满来源块中收集而来的有效数据一般可以视为热门程度较低的数据。因此,中央处理单元111可以将较热层的这个已写满来源块中的有效数据搬移至较冷层的一个未写满目标块。
图3是依照本发明一实施例说明非易失性存储器120的多个实体块被分群为N个层的示意图。在图3中,多个方块(例如图3所示301~306)表示非易失性存储器120的多个实体块。控制器110的中央处理单元111可以依照数据的热门程度(hotness)而将非易失性存储器120的多个实体块分群为N个层,例如图3所示第1层T[1]、第2层T[2]、…、第N层T[N]。依据设计需求,N为大于1的任意整数。这些层T[1]~T[N]的排序是由数据的热门程度来决定的。例如,在第1层T[1]中的实体块的数据被存取机率(被存取频率)大于在第2层T[2]中的实体块的数据被存取机率。以此类推,在第2层T[2]中的实体块的数据被存取机率(被存取频率)大于在第N层T[N]中的实体块的数据被存取机率。因此,第1层T[1]是用于存放最热的数据,而第N层T[N]用于存放最冷的数据。
当这些层T[1]~T[N]中的一个第i层(较热层)T[i]的一个已写满来源块需要进行垃圾收集时,控制器110的中央处理单元111可以将此第i层T[i]的所述已写满来源块中的有效数据搬移至这些层T[1]~T[N]中的一个第j层(较冷层)T[j]的一个未写满目标块。其中,i、j为整数,0<i<N,0<j≤N,且i<j。在图3所示实施例中,j=i+1。在其他实施例中,j可以是i+2、i+3或是更大的数。
举例来说,请参照图3,当第1层T[1]的一个已写满来源块301需要进行垃圾收集时,控制器110的中央处理单元111可以将此第1层T[1](较热层)的所述已写满来源块301中的有效数据搬移至第2层T[2](较冷层)的一个未写满目标块302。在第1层T[1]的所述已写满来源块301已完成垃圾收集后,控制器110的中央处理单元111可以抹除(erasing)此第1层T[1]的所述已写满来源块301,以释放无效数据所占据的空间。以此类推,当第2层T[2]的一个已写满来源块303需要进行垃圾收集时,控制器110的中央处理单元111可以将此第2层T[2](较热层)的所述已写满来源块303中的有效数据搬移至第3层T[3](较冷层,未绘示)的一个未写满目标块(未绘示)。当第N-1层T[N-1](未绘示)的一个已写满来源块(未绘示)需要进行垃圾收集时,控制器110的中央处理单元111可以将此第N-1层T[N-1](较热层,未绘示)的所述已写满来源块(未绘示)中的有效数据搬移至第N层T[N](较冷层)的一个未写满目标块304。当第N层T[N]的一个已写满来源块305需要进行垃圾收集时,控制器110的中央处理单元111可以将第N层T[N]的已写满来源块305中的有效数据搬移至第N层T[N]的一个未写满目标块(例如未写满目标块304或是第N层T[N]的其他未写满目标块)。
当主机10发出一个写入命令给非易失性存储器装置100时,控制器110可以进行“地址分类方法”,来决定来自主机10的写入命令的逻辑地址是否为热数据(hot data)地址。所谓“热数据”是指近期很可能被修改/更新的数据。在主机10的写入命令的逻辑地址被判定为热数据地址(或者非热数据地址)后,控制器110可以依据判定结果,以及依据此写入命令的逻辑地址,来将主机10的数据写入非易失性存储器120中的对应层的未写满目标块中。因为在将数据写入非易失性存储器120的过程中,“所写入数据是否为热数据”已被考虑,因此可以有效降低写入放大(Write Amplification,WA)。例如,基于热数据地址的判定而将冷数据与热数据分别写入非易失性存储器120的不同层的未写满目标块中,因此垃圾回收操作的效率可以被提升。
当主机10请求写入操作时,请求写入的数据将被确定为热数据或冷数据。图4是依照本发明一实施例说明依据地址分类(数据分类)的结果来将主机数据写入对应层的流程示意图。在主机10发出写入命令要求进行写入操作(步骤S410)后,控制器110的中央处理单元111可以依据写入命令的逻辑地址进行地址分类方法(步骤S420),来判定来自主机10的写入命令的逻辑地址是否为热数据地址(步骤S430)。本实施例并不限制步骤S420进行的地址分类方法的实施细节。在一些实施例中,步骤S420可以进行任何的地址分类方法,以便判定来自主机10的数据是热数据或是冷数据。在另一些实施例中,主机10可以发送热/冷数据信息(或暗示)给非易失性存储器装置100,而控制器110可以依据所述热/冷数据信息而得知来自主机10的数据是热数据或是冷数据。在又一些实施例中,步骤S420可以进行其他的地址分类方法(容后详述)。
请参照图3与图4。当步骤S430将主机10的逻辑地址判定为热数据地址时,控制器110的中央处理单元111可以进行步骤S440以便将主机10的写入命令的数据被写入第1层T[1]的一个未写满目标块306。当步骤S430将主机10的逻辑地址判定为非热数据地址时,控制器110的中央处理单元111可以进行步骤S450以便将主机10的写入命令的数据写入其他层T[2]~T[N]中的一个对应层的一个未写满目标块。举例来说(但不限于此),在另一些实施例中,中央处理单元111可以将主机10的非热数据写入第2层T[2]中的未写满目标块302(或是第2层T[2]中的其他未写满目标块)。在另一些实施例中,中央处理单元111可以将主机10的非热数据写入第N层T[N]中的未写满目标块304(或是第N层T[N]中的其他未写满目标块)。
在另一些实施例中,所述地址分类方法可以将主机10的逻辑地址判定为M种数据地址的其中一种,其中M为大于2的整数,且M≤N。举例来说(但不限于此),所述M种数据地址可以包括热数据地址、次热数据地址、次冷数据地址以及冷数据地址。
图5是依照本发明另一实施例说明依据地址分类(数据分类)的结果来将主机数据写入对应层的流程示意图。在主机10发出写入命令要求进行写入操作(步骤S510)后,控制器110的中央处理单元111可以依据写入命令的逻辑地址进行地址分类方法,来判定来自主机10的写入命令的逻辑地址是否为热数据地址(步骤S520)。
详而言之,控制器110的数据分类电路114可以提供数据集合(data set),所述数据集合可以快速暂存(cache)一组或多组数据项目信息(data entry information),以识别热数据。其中,所述数据集合包括多个数据项目,而每一个数据项目各自包括逻辑地址信息、计数器(counter)值Vc与计时器(timer)值Vt。在一些实施例中,所述逻辑地址信息可以是逻辑块地址(logical block address,LBA)或是其他逻辑地址。中央处理单元111可以直接使用主机10的写入命令的逻辑块地址而在所述数据集合寻找具有相同逻辑块地址的数据项目。在另一些实施例中,所述逻辑地址信息可以是一种具唯一性的识别码。中央处理单元111可以将主机10的写入命令的逻辑地址转换为对应的识别码,然后使用此对应的识别码而在所述数据集合寻找具有相同识别码的数据项目。
计数器值Vc用于追踪某一个逻辑地址的数据频率信息(data frequencyinformation),亦即这个逻辑地址的被写入频率。计时器值Vt用于追踪某一个逻辑地址的数据是否最近被存取,亦即这个逻辑地址在目前时间窗中是否曾被更新数据。中央处理单元111可以依照主机10的写入命令的逻辑地址来更新对应计数器值Vc与对应计时器值Vt。当所述数据集合中的一个对应数据项目的逻辑地址信息吻合主机10的写入命令的逻辑地址时,控制器110的数据分类电路114可以将此对应数据项目的对应计数器值Vc累进加一来追踪数据的写入频率,以及将此对应数据项目的对应计时器值Vt设置为第一逻辑态(例如逻辑1)以表示最近被存取。因此,控制器110可以依据对应计数器值Vc与对应计时器值Vt来决定主机10的写入命令的逻辑地址是否为热数据地址。
在主机10发出写入命令后,主机命令计数值host_write_count被累进加一,以便计数主机10的写入命令的数量。当主机命令计数值host_write_count大于等于阈值时,控制器110的数据分类电路114可以将每一个数据项目的计数器值Vc分别除以一个参数f,以及将每一个数据项目的计时器值Vt重置为第二逻辑态(例如为逻辑0),以及将主机命令计数值host_write_count重置为0。上述参数f可以依照设计需求来决定。举例来说,上述阈值可以是8192或是其他整数,而上述参数f可以是2或是其他实数。因此,在每8192个主机写入请求时,每一个数据项目的计数器值Vc分别被除以2,且每一个数据项目的定时器值Vt被重置为第二逻辑态(例如为逻辑0)。
在主机10发出写入命令后,中央处理单元111可以依据写入命令的逻辑地址查找数据分类电路114的所述数据集合,以获得对应的数据项目。中央处理单元111可以从所述对应的数据项目中获得对应计数器值Vc与对应计时器值Vt。当对应计数器值Vc超出预设范围且该对应计时器值Vt为第一逻辑态(例如逻辑1)时,控制器110的中央处理单元111在步骤S520中将主机10的写入命令的逻辑地址判定为“热数据地址”。依照设计需求,所述预设范围可以是单边界范围或是双边界范围。举例来说,在一些实施例中,步骤S520可以校验对应计数器值Vc是否大于阈值Th1(对应计数器值Vc大于阈值Th1表示超出预设范围),其中阈值Th1可以依照设计需求来决定。在另一些实施例中,步骤S520可以校验对应计数器值Vc是否小于阈值Th2(对应计数器值Vc小于阈值Th2表示超出预设范围),其中阈值Th2可以依照设计需求来决定。依照设计需求,所述第一逻辑态可以是逻辑1或是逻辑0。举例来说,在一些实施例中,步骤S520可以校验对应计时器值Vt是否为逻辑1,而以逻辑1表示对应的逻辑地址在目前时间窗中曾被更新数据。在另一些实施例中,步骤S520可以校验对应计时器值Vt是否为逻辑0,而以逻辑0表示对应的逻辑地址在目前时间窗中曾被更新数据。
当对应计数器值Vc超出预设范围且对应计时器值Vt为第二逻辑态(例如逻辑0)时,控制器110的中央处理单元111在步骤S520中将主机10的写入命令的逻辑地址判定为“次热数据地址”。当对应计数器值Vc不超出预设范围且对应计时器值Vt为第一逻辑态(例如逻辑1)时,控制器110的中央处理单元111在步骤S520中将主机10的写入命令的逻辑地址判定为“次冷数据地址”。当对应计数器值Vc不超出预设范围且对应计时器值Vt为第二逻辑(例如逻辑0)态时,控制器110的中央处理单元111在步骤S520中将主机10的写入命令的逻辑地址判定为“冷数据地址”。
当在步骤S520中主机10的逻辑地址被判定为“热数据地址”时,主机10的写入命令的数据在步骤S530中被写入这些层T[1]~T[N]中的第1层T[1]的一个未写满目标块。当在步骤S520中主机10的逻辑地址被判定为“次热数据地址”时,主机10的写入命令的数据在步骤S540中被写入这些层T[1]~T[N]中的第2层T[2]的一个未写满目标块。当在步骤S520中主机10的逻辑地址被判定为“次冷数据地址”时,主机10的写入命令的数据在步骤S550中被写入这些层T[1]~T[N]中的第3层T[3]的一个未写满目标块。当在步骤S520中主机10的逻辑地址被判定为“冷数据地址”时,主机10的写入命令的数据在步骤S560中被写入这些层T[1]~T[N]中的第4层T[4]的一个未写满目标块。
值得注意的是,在不同的应用情境中,上述控制器110、中央处理单元111、存储器控制电路112、数据分类电路114和/或ECC电路115的相关功能可以利用一般的编程语言(programming languages,例如C或C++)、硬件描述语言(hardware descriptionlanguages,例如Verilog HDL或VHDL)或其他合适的编程语言来实现为软件、固件或硬件。可执行所述相关功能的软件(或固件)可以被布置为任何已知的计算机可存取介质(computer-accessible medias),例如磁带(magnetic tapes)、半导体(semiconductors)存储器、磁盘(magnetic disks)或光盘(compact disks,例如CD-ROM或DVD-ROM),或者可通过互联网(Internet)、有线通信(wired communication)、无线通信(wirelesscommunication)或其它通信介质传送所述软件(或固件)。所述软件(或固件)可以被存放在计算机的可存取介质中,以便于由计算机的处理器来存取/执行所述软件(或固件)的编程码(programming codes)。另外,本发明的装置和方法可以通过硬件和软件的组合来实现。
举例来说,图6是依照本发明另一实施例说明一种非易失性存储器装置600的电路方块(circuit block)示意图。非易失性存储器装置600包括控制器110’以及非易失性存储器120。在图6所示实施例中,控制器110’包括中央处理单元111、存储器控制电路112、存储器缓冲器113与ECC电路115。图6所示非易失性存储器装置600、控制器110’、非易失性存储器120、中央处理单元111、存储器控制电路112、存储器缓冲器113与ECC电路115可以参照图1所示非易失性存储器装置100、控制器110、非易失性存储器120、中央处理单元111、存储器控制电路112、存储器缓冲器113与ECC电路115的相关说明来类推,故不再赘述。在图6所示实施例中,数据分类电路114已被省略,而数据分类电路114的功能可以利用固件和/或软件方式实现于中央处理单元111中。
综上所述,上述诸实施例所述非易失性存储器装置及其垃圾收集方法,其依照数据的热门程度而将多个实体块分群为多个层。根据数据的热门程度,控制器可以将数据存储到这些层T[1]~T[N]的对应层。当这些层T[1]~T[N]中的第i层T[i](在此称为较热层)的一个已写满来源块需要进行垃圾收集时,控制器可以将此第i层T[i](较热层)的所述已写满来源块中的有效数据搬移至这些层T[1]~T[N]中的第j层T[j](在此称为较冷层)的一个未写满目标块。藉由分离冷数据与热数据,上述诸实施例所述非易失性存储器装置及其垃圾收集方法可以提升垃圾收集的效率。因此,系统可以达到更低的写入放大(WriteAmplification,WA),进而获得更好的效能和耐久性。
虽然本发明已以实施例公开如上,然其并非用以限定本发明,本领域技术人员在不脱离本发明的精神和范围内,当可作些许的更动与润饰,故本发明的保护范围当视所附权利要求书界定范围为准。
Claims (20)
1.一种非易失性存储器装置,包括:
非易失性存储器;以及
控制器,耦接至该非易失性存储器,用以依照主机的写入命令的逻辑地址而存取该非易失性存储器,以及进行垃圾收集方法来释放多个无效数据所占据的空间;
其中该垃圾收集方法包括:依照数据的热门程度而将该非易失性存储器的所有多个实体块分群为多个层,当这些层中的一个较热层的一个已写满来源块需要进行垃圾收集时,将所述较热层的此已写满来源块中的有效数据搬移至这些层中的一个较冷层的一个未写满目标块,以及抹除所述较热层的此已写满来源块以释放空间。
2.如权利要求1所述的非易失性存储器装置,其中在所述较热层中的实体块的数据被存取机率大于在所述较冷层中的实体块的数据被存取机率。
3.如权利要求1所述的非易失性存储器装置,其中这些层为N个层,该较热层为这些层中的一个第i层,而该较冷层为这些层中的一个第j层,其中N、i、j为整数,0<i<N,0<j≤N且i<j。
4.如权利要求3所述的非易失性存储器装置,其中j=i+1。
5.如权利要求3所述的非易失性存储器装置,其中该垃圾收集方法还包括:将这些层中的一个第N层的一个已写满来源块中的有效数据搬移至该第N层的一个未写满目标块。
6.如权利要求3所述的非易失性存储器装置,其中该控制器用以进行地址分类方法来判定来自该主机的该写入命令的该逻辑地址是否为热数据地址,以及当该逻辑地址被判定为热数据地址时,该写入命令的数据被写入这些层中的一个第1层的一个未写满目标块,其中在所述第1层中的实体块的数据被存取机率大于在这些层的任一层中的实体块的数据被存取机率。
7.如权利要求6所述的非易失性存储器装置,其中当该逻辑地址被判定为非热数据地址时,该写入命令的数据被写入这些层的第2层至第N层中的一个对应层的一个未写满目标块。
8.如权利要求6所述的非易失性存储器装置,其中该地址分类方法用以判定该逻辑地址为M种数据地址的其中一种,其中M为整数,且M≤N。
9.如权利要求8所述的非易失性存储器装置,其中所述M种数据地址包括热数据地址、次热数据地址、次冷数据地址以及冷数据地址。
10.如权利要求9所述的非易失性存储器装置,其中当该逻辑地址被判定为次热数据地址时,该写入命令的数据被写入这些层中的一个第2层的一个未写满目标块,当该逻辑地址被判定为次冷数据地址时,该写入命令的数据被写入这些层中的一个第3层的一个未写满目标块,以及当该逻辑地址被判定为冷数据地址时,该写入命令的数据被写入这些层中的一个第4层的一个未写满目标块。
11.一种非易失性存储器装置的垃圾收集方法,用以释放多个无效数据所占据的空间,所述垃圾收集方法包括:
依照数据的热门程度而将非易失性存储器的所有多个实体块分群为多个层;
当这些层中的一个较热层的一个已写满来源块需要进行垃圾收集时,将所述较热层的此已写满来源块中的有效数据搬移至这些层中的一个较冷层的一个未写满目标块;以及
抹除所述较热层的此已写满来源块以释放空间。
12.如权利要求11所述的垃圾收集方法,其中在所述较热层中的实体块的数据被存取机率大于在所述较冷层中的实体块的数据被存取机率。
13.如权利要求11所述的垃圾收集方法,其中这些层为N个层,该较热层为这些层中的一个第i层,而该较冷层为这些层中的一个第j层,其中N、i、j为整数,0<i<N,0<j≤N且i<j。
14.如权利要求13所述的垃圾收集方法,其中j=i+1。
15.如权利要求13所述的垃圾收集方法,其中该垃圾收集方法还包括:
将这些层中的一个第N层的一个已写满来源块中的有效数据搬移至该第N层的一个未写满目标块。
16.如权利要求13所述的垃圾收集方法,还包括:
进行地址分类方法来判定来自主机的写入命令的逻辑地址是否为热数据地址;以及
当该逻辑地址被判定为热数据地址时,该写入命令的数据被写入这些层中的一个第1层的一个未写满目标块,其中在所述第1层中的实体块的数据被存取机率大于在这些层的任一层中的实体块的数据被存取机率。
17.如权利要求16所述的垃圾收集方法,还包括:
当该逻辑地址被判定为非热数据地址时,该写入命令的数据被写入这些层的第2层至第N层中的一个对应层的一个未写满目标块。
18.如权利要求16所述的垃圾收集方法,其中该地址分类方法用以判定该逻辑地址为M种数据地址的其中一种,其中M为整数,且M≤N。
19.如权利要求18所述的垃圾收集方法,其中所述M种数据地址包括热数据地址、次热数据地址、次冷数据地址以及冷数据地址。
20.如权利要求19所述的垃圾收集方法,还包括:
当该逻辑地址被判定为次热数据地址时,该写入命令的数据被写入这些层中的一个第2层的一个未写满目标块;
当该逻辑地址被判定为次冷数据地址时,该写入命令的数据被写入这些层中的一个第3层的一个未写满目标块;以及
当该逻辑地址被判定为冷数据地址时,该写入命令的数据被写入这些层中的一个第4层的一个未写满目标块。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/378,041 | 2016-12-14 | ||
US15/378,041 US11126544B2 (en) | 2016-12-14 | 2016-12-14 | Method and apparatus for efficient garbage collection based on access probability of data |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107025071A CN107025071A (zh) | 2017-08-08 |
CN107025071B true CN107025071B (zh) | 2020-06-09 |
Family
ID=59525503
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710043233.3A Active CN107025071B (zh) | 2016-12-14 | 2017-01-19 | 非易失性存储器装置及其垃圾收集方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11126544B2 (zh) |
CN (1) | CN107025071B (zh) |
TW (1) | TWI606337B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI647567B (zh) * | 2017-12-13 | 2019-01-11 | 國立中正大學 | 使用記憶體位址定位冷熱存取區間之方法 |
JP2019169101A (ja) * | 2018-03-26 | 2019-10-03 | 東芝メモリ株式会社 | 電子機器、コンピュータシステム、および制御方法 |
KR102080089B1 (ko) * | 2018-05-18 | 2020-02-21 | 최영준 | 정전시 전력 소모를 감소시키기 위한 데이터 저장 방법 및 데이터 저장 장치 |
CN110543279B (zh) * | 2018-05-29 | 2023-08-04 | 杭州海康威视数字技术股份有限公司 | 一种数据存储、处理方法、装置及系统 |
US10956058B2 (en) | 2018-08-03 | 2021-03-23 | Western Digital Technologies, Inc. | Tiered storage system with tier configuration by peer storage devices |
US10628074B2 (en) * | 2018-08-03 | 2020-04-21 | Western Digital Technologies, Inc. | Tiered storage system with data routing by peer storage devices |
CN112823331B (zh) * | 2018-10-10 | 2024-03-29 | 阿里巴巴集团控股有限公司 | 用于具有较细粒度的并行多租户ssd中的数据恢复的系统和方法 |
CN109753240B (zh) * | 2018-11-28 | 2021-12-21 | 上海威固信息技术股份有限公司 | 一种采用垃圾回收机制的数据存储方法 |
CN109542358A (zh) * | 2018-12-03 | 2019-03-29 | 浪潮电子信息产业股份有限公司 | 一种固态硬盘冷热数据分离方法、装置及设备 |
KR20200086472A (ko) * | 2019-01-09 | 2020-07-17 | 에스케이하이닉스 주식회사 | 컨트롤러, 데이터 저장 장치 및 그것의 동작 방법 |
TWI726314B (zh) * | 2019-05-02 | 2021-05-01 | 慧榮科技股份有限公司 | 資料儲存裝置與資料處理方法 |
TWI724550B (zh) * | 2019-09-19 | 2021-04-11 | 慧榮科技股份有限公司 | 資料儲存裝置以及非揮發式記憶體控制方法 |
CN111309268B (zh) * | 2020-02-27 | 2023-05-30 | 格兰菲智能科技有限公司 | 数据搬移装置与有重叠的数据搬移方法 |
CN111309645B (zh) * | 2020-03-12 | 2023-06-27 | 上海交通大学 | 基于非易失性内存的新型混合内存垃圾回收方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200825738A (en) * | 2006-08-04 | 2008-06-16 | Sandisk Corp | Phased garbage collection |
CN102054534A (zh) * | 2009-10-30 | 2011-05-11 | 西部数据技术公司 | 包括响应电源故障信号而刷新写入数据的电源故障电路的非易失性半导体存储器 |
CN102576293A (zh) * | 2009-09-08 | 2012-07-11 | 国际商业机器公司 | 固态存储设备和分层存储系统中的数据管理 |
CN103688246A (zh) * | 2011-05-17 | 2014-03-26 | 桑迪士克科技股份有限公司 | 具有在活跃slc和mlc存储器分区之间分布的小逻辑组的非易失性存储器和方法 |
US9330009B1 (en) * | 2011-06-14 | 2016-05-03 | Emc Corporation | Managing data storage |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2498154A1 (en) * | 2002-09-16 | 2004-03-25 | Tigi Corporation | Storage system architectures and multiple caching arrangements |
US7711889B2 (en) | 2006-07-31 | 2010-05-04 | Kabushiki Kaisha Toshiba | Nonvolatile memory system, and data read/write method for nonvolatile memory system |
US7451265B2 (en) | 2006-08-04 | 2008-11-11 | Sandisk Corporation | Non-volatile memory storage systems for phased garbage collection |
US8307241B2 (en) | 2009-06-16 | 2012-11-06 | Sandisk Technologies Inc. | Data recovery in multi-level cell nonvolatile memory |
KR20120088454A (ko) | 2011-01-31 | 2012-08-08 | 에스케이하이닉스 주식회사 | 비휘발성 메모리 시스템 및 비휘발성 메모리 장치와, 이를 위한 프로그램 방법 |
US9141528B2 (en) * | 2011-05-17 | 2015-09-22 | Sandisk Technologies Inc. | Tracking and handling of super-hot data in non-volatile memory systems |
US9652376B2 (en) * | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
US10552085B1 (en) * | 2014-09-09 | 2020-02-04 | Radian Memory Systems, Inc. | Techniques for directed data migration |
US9672905B1 (en) * | 2016-07-22 | 2017-06-06 | Pure Storage, Inc. | Optimize data protection layouts based on distributed flash wear leveling |
-
2016
- 2016-12-14 US US15/378,041 patent/US11126544B2/en active Active
-
2017
- 2017-01-12 TW TW106100967A patent/TWI606337B/zh active
- 2017-01-19 CN CN201710043233.3A patent/CN107025071B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200825738A (en) * | 2006-08-04 | 2008-06-16 | Sandisk Corp | Phased garbage collection |
CN102576293A (zh) * | 2009-09-08 | 2012-07-11 | 国际商业机器公司 | 固态存储设备和分层存储系统中的数据管理 |
CN102054534A (zh) * | 2009-10-30 | 2011-05-11 | 西部数据技术公司 | 包括响应电源故障信号而刷新写入数据的电源故障电路的非易失性半导体存储器 |
CN103688246A (zh) * | 2011-05-17 | 2014-03-26 | 桑迪士克科技股份有限公司 | 具有在活跃slc和mlc存储器分区之间分布的小逻辑组的非易失性存储器和方法 |
US9330009B1 (en) * | 2011-06-14 | 2016-05-03 | Emc Corporation | Managing data storage |
Also Published As
Publication number | Publication date |
---|---|
TWI606337B (zh) | 2017-11-21 |
US11126544B2 (en) | 2021-09-21 |
TW201821995A (zh) | 2018-06-16 |
CN107025071A (zh) | 2017-08-08 |
US20180165189A1 (en) | 2018-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107025071B (zh) | 非易失性存储器装置及其垃圾收集方法 | |
US10318414B2 (en) | Memory system and memory management method thereof | |
US8438361B2 (en) | Logical block storage in a storage device | |
US9244619B2 (en) | Method of managing data storage device and data storage device | |
US10795827B2 (en) | Adaptive management of intermediate storage | |
CN106897026B (zh) | 非易失性存储器装置及其地址分类方法 | |
US10120606B2 (en) | Data storage devices including storage controller circuits to select data streams based on application tags and computing systems including the same | |
US8706953B2 (en) | Data storage device and method performing background operation with selected data compression | |
KR20100039180A (ko) | 반도체 디스크 장치 및 그것의 데이터 관리 방법 | |
CN107102953B (zh) | 非易失性存储器装置及其迭代排序方法 | |
US10942848B2 (en) | Apparatus and method for checking valid data in memory system | |
US10733107B2 (en) | Non-volatile memory apparatus and address classification method thereof | |
US9977732B1 (en) | Selective nonvolatile data caching based on estimated resource usage | |
CN111625187B (zh) | 一种存储器及其控制方法与存储系统 | |
US11106390B1 (en) | Combining in-process reads to reduce die collisions | |
US20230315646A1 (en) | Method of managing data in storage device based on variable size mapping, method of operating storage device using the same and storage device performing the same | |
US9652172B2 (en) | Data storage device performing merging process on groups of memory blocks and operation method thereof | |
US11307766B2 (en) | Apparatus and method and computer program product for programming flash administration tables | |
CN114780018A (zh) | 用于促进多流顺序读取性能改进并减少阅读放大的方法和系统 | |
Koltsidas et al. | Spatial data management over flash memory | |
US11693574B2 (en) | Method of writing data in storage device and storage device performing the same | |
US11893269B2 (en) | Apparatus and method for improving read performance in a system | |
CN110069428B (zh) | 系统数据压缩和重建方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |