CN109960663B - 执行垃圾回收的存储装置和存储装置的垃圾回收方法 - Google Patents
执行垃圾回收的存储装置和存储装置的垃圾回收方法 Download PDFInfo
- Publication number
- CN109960663B CN109960663B CN201811398650.0A CN201811398650A CN109960663B CN 109960663 B CN109960663 B CN 109960663B CN 201811398650 A CN201811398650 A CN 201811398650A CN 109960663 B CN109960663 B CN 109960663B
- Authority
- CN
- China
- Prior art keywords
- memory
- garbage collection
- cost
- meta
- memory blocks
- 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
- 238000000034 method Methods 0.000 title claims abstract description 28
- 230000015654 memory Effects 0.000 claims abstract description 295
- 238000012545 processing Methods 0.000 claims description 28
- 101100481702 Arabidopsis thaliana TMK1 gene Proteins 0.000 description 81
- 101100481704 Arabidopsis thaliana TMK3 gene Proteins 0.000 description 66
- 238000010586 diagram Methods 0.000 description 32
- 239000000872 buffer Substances 0.000 description 12
- 238000004590 computer program Methods 0.000 description 9
- 238000006243 chemical reaction Methods 0.000 description 7
- 238000004088 simulation Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 101100058965 Arabidopsis thaliana CALS6 gene Proteins 0.000 description 2
- 101100229708 Homo sapiens GOLT1B gene Proteins 0.000 description 2
- 101150081316 SSL11 gene Proteins 0.000 description 2
- 102100024018 Vesicle transport protein GOT1B Human genes 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 101100058962 Arabidopsis thaliana CALS3 gene Proteins 0.000 description 1
- 101100366710 Arabidopsis thaliana SSL12 gene Proteins 0.000 description 1
- 101000777370 Homo sapiens Coiled-coil domain-containing protein 6 Proteins 0.000 description 1
- 101100179827 Homo sapiens INTS13 gene Proteins 0.000 description 1
- 101000610970 Homo sapiens Mitochondrial thiamine pyrophosphate carrier Proteins 0.000 description 1
- 102100027019 Integrator complex subunit 13 Human genes 0.000 description 1
- 101100520796 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) PTC4 gene Proteins 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000010410 layer Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 229920000642 polymer Polymers 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/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)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
公开一种执行垃圾回收的存储装置和存储装置的垃圾回收方法。一种存储装置,包括:包括多个存储器块的至少一个非易失性存储器装置,其中,非易失性存储器装置被配置为将用户数据和元数据存储在所述多个存储器块中;装置控制器,被配置为:控制非易失性存储器装置,针对所述多个存储器块中的每个存储器块计算与将在垃圾回收执行的访问用户数据的存储器时间对应的用户成本,针对所述多个存储器块中的每个存储器块计算与将在垃圾回收执行的访问元数据的存储器时间对应的元成本,基于用户成本和元成本,在所述多个存储器块之中选择牺牲块,对牺牲块执行垃圾回收。
Description
本申请要求于2017年12月22日提交到韩国知识产权局(KIPO)的第10-2017-0177907号韩国专利申请的优先权的权益,所述韩国专利申请的全部公开通过引用全部包含于此。
技术领域
本发明构思的示例实施例涉及存储装置。例如,执行垃圾回收的存储装置和/或存储装置的垃圾回收方法。
背景技术
近来,采用非易失性存储器装置的存储装置(诸如,固态驱动器(SSD)、非易失性存储器快速标准(NVMe)、嵌入式多媒体卡(eMMC)、通用闪存(UFS)等)已被广泛使用。这种存储装置具有如下优点:诸如,不存在移动的机械部件、更高的数据存取速度、增强的稳定性和耐用性、低功耗等。在包括在存储装置中的非易失性存储器装置(诸如,闪存)中,可在写入操作之前执行擦除操作。此外,在闪存中,以页为基础执行写入操作,而以块为基础执行擦除操作,其中,每个块包括多个页。
当数据被连续写入闪存时,数据会分散在整个闪存中。在这种情况下,为了获得空闲的存储器块或能够写入数据的存储空间,可执行垃圾回收以将一个存储器块的有效页移动到另一存储器块,并擦除所述一个存储器块。
发明内容
一些示例实施例提供一种执行垃圾回收的存储装置。
一些示例实施例提供一种执行垃圾回收的存储装置的垃圾回收方法。
根据示例实施例,一种存储装置,包括:包括多个存储器块的至少一个非易失性存储器装置,其中,非易失性存储器装置被配置为将用户数据和元数据存储在所述多个存储器块中;装置控制器,被配置为:在所述多个存储器块内计算与在垃圾回收期间访问用户数据的存储器时间对应的用户成本,在所述多个存储器块内计算与在垃圾回收期间访问元数据的存储器时间对应的元成本,基于用户成本和元成本选择所述多个存储器块之中的牺牲块,对牺牲块执行垃圾回收。
根据示例实施例,一种存储装置,包括:包括多个存储器块的至少一个非易失性存储器装置,其中,非易失性存储器装置被配置为将用户数据和元数据存储在所述多个存储器块中;装置控制器,被配置为控制非易失性存储器装置,装置控制器包括:至少一个存储器,被配置为存储所述多个存储器块中的每个存储器块的用户成本信息,并存储所述多个存储器块中的每个存储器块的元成本信息,处理电路配置为:基于用户成本信息在所述多个存储器块内计算与在垃圾回收期间访问用户数据的存储器时间对应的用户成本,基于元成本信息在所述多个存储器块内计算与在垃圾回收期间访问元数据的存储器时间对应的元成本,基于用户成本和元成本计算所述多个存储器块中的每个存储器块的每空闲页的垃圾回收成本,选择所述多个存储器块中的具有最低的每空闲页的垃圾回收成本的一个存储器块作为牺牲块。
一些示例实施例涉及一种存储装置的垃圾回收方法,存储装置包括:包括多个存储器块的至少一个非易失性存储器装置。所述垃圾回收方法可包括:在所述多个存储器块内计算与在垃圾回收期间访问存储在非易失性存储器装置中的用户数据的存储器时间对应的用户成本;在所述多个存储器块内计算与在垃圾回收期间访问存储在非易失性存储器装置中的元数据的存储器时间对应的元成本;基于用户成本和元成本计算所述多个存储器块中的每个存储器块的每空闲页的垃圾回收成本;选择所述多个存储器块中的具有最低的每空闲页的垃圾回收成本的一个存储器块作为牺牲块;对牺牲块执行垃圾回收。
如上所述,根据示例实施例的存储装置和存储装置的垃圾回收方法可通过不仅计算用户成本而且还计算元成本来选择具有最低的每空闲页的垃圾回收成本的存储器块作为牺牲块,从而相对更有效地执行垃圾回收。
此外,根据示例实施例的存储装置和存储装置的垃圾回收方法可通过使用通过不仅考虑用户成本而且还考虑元成本计算的每空闲页的垃圾回收成本来设置垃圾回收的时间段,从而减小存储装置的延迟(例如,写入延迟)。
附图说明
根据下面结合附图进行的详细描述,示意性的非限制的示例实施例将被更清楚地理解。
图1是示出根据示例实施例的存储装置的框图。
图2是示出包括在图1的存储装置中的非易失性存储器装置的示例的框图。
图3A是示出包括在图2的非易失性存储器装置中的存储器单元阵列的示例的电路图,图3B是示出包括在图2的非易失性存储器装置中的存储器单元阵列的另一示例的电路图。
图4是示出根据示例实施例的存储装置的框图。
图5A是示出包括在图4的存储装置中的用户成本表(user cost table)的示例的示图,图5B是示出包括在图4的存储装置中的用户成本表的另一示例的示图。
图6A是示出包括在图4的存储装置中的元成本表(meta cost table)的示例的示图,图6B是示出包括在图4的存储装置中的元成本表的另一示例的示图。
图7是示出根据示例实施例的存储装置的垃圾回收方法的流程图。
图8是用于描述在图7的垃圾回收方法中选择牺牲块(victim block)的示例的示图。
图9是示出根据示例实施例的存储装置的框图。
图10是用于描述由图9的存储装置设置垃圾回收时间的示例的示图。
图11是示出根据示例实施例的存储装置的垃圾回收方法的流程图。
图12A和图12B是用于描述传统的垃圾回收方法和根据示例实施例的垃圾回收方法的垃圾回收时间的示例的示图。
图13A是示出针对传统的存储装置的延迟的模拟的示例的示图,图13B是示出针对根据示例实施例的存储装置的延迟的模拟的示例的示图。
图14是示出根据示例实施例的包括存储装置的计算系统的框图。
具体实施方式
图1是示出根据示例实施例的存储装置的框图,图2是示出包括在图1的存储装置中的非易失性存储器装置的示例的框图,图3A是示出包括在图2的非易失性存储器装置中的存储器单元阵列的示例的电路图,图3B是示出包括在图2的非易失性存储器装置中的存储器单元阵列的另一示例的电路图。
参照图1,根据示例实施例的数据装置100包括至少一个非易失性存储器装置200和装置控制器120,其中,非易失性存储器装置200包括多个存储器块BLK1和BLK2,装置控制器120控制非易失性存储器装置200。存储装置100可以是执行垃圾回收的任何存储装置,诸如,固态驱动器(SSD)、非易失性存储器快速标准(NVMe)、嵌入式多媒体卡(eMMC)、通用闪存(UFS)等。
参照图2,非易失性存储器装置200可包括存储器单元阵列210、行解码器220、页缓冲器电路230、数据输入/输出(I/O)电路240、电压生成器250和控制电路260。
存储器单元阵列210可通过串选择线SSL、多条字线WL和地选择线GSL结合到行解码器220。存储器单元阵列210还可通过多条位线BL结合到页缓冲器电路230。存储器单元阵列210可被划分为如图1中所示的多个存储器块BLK1和BLK2,每个存储器块BLK1和BLK2可包括结合到多条字线WL和多条位线BL的多个非易失性存储器单元。
在一些示例实施例中,存储器单元阵列210可以是以二维结构(或水平结构)形成在基底上的二维存储器单元阵列。例如,如图3A中所示,存储器单元阵列210a可包括串选择晶体管SST、地选择晶体管GST和存储器单元MC。串选择晶体管SST可结合到位线BL(1)至BL(m),地选择晶体管GST可结合到共源线CSL。同一串中的存储器单元MC可串联布置在位线BL(1)至BL(m)中的相应的一个与共源线CSL之间。同一行中的存储器单元MC可结合到字线WL(1)、WL(2)、WL(3)……WL(n-1)和WL(n)中的相应的一个。因此,存储器单元MC可串联结合在串选择晶体管SST与地选择晶体管GST之间,例如,16条、32条或64条字线WL(1)至WL(n)可设置在串选择线SSL与地选择线GSL之间。串选择晶体管SST可结合到串选择线SSL,并可根据施加到串选择线SSL的电压的电平来控制。地选择晶体管GST可结合到地选择线GSL,并可根据施加到地选择线GSL的电压的电平来控制。存储器单元MC可根据施加到字线WL(1)至WL(n)的电压的电平来控制。包括存储器单元阵列210a的非易失性存储器装置200可基于页212执行写入(或编程)操作和读取操作,并可基于块213执行擦除操作。
在其他示例实施例中,存储器单元阵列210可以是以三维结构(或垂直结构)形成在基板上的三维存储器单元阵列。例如,如图3B中所示,存储器单元阵列210b可包括具有垂直结构的多个串216。多个串216可沿第二方向D2形成,使得串行可被形成。多个串行可沿第三方向D3形成,使得串阵列可被形成。多个串216中的每个可包括地选择晶体管GSTV、存储器单元MC和串选择晶体管SSTV,它们在位线BL(1)、……、BL(m)与共源线CSL之间沿第一方向D1串联设置。地选择晶体管GSTV可连接到地选择线GSL11、GSL12、……、GSLi1、GSLi2,串选择晶体管SSTV可连接到串选择线SSL11、SSL12、……、SSLi1和SSLi2。布置在同一层上的存储器单元MC可共同连接到字线WL(1)、WL(2)、……、WL(n-1)和WL(n)中的一个。地选择线GSL11至GSLi2和串选择线SSL11至SSLi2可沿第二方向D2延伸,并可沿第三方向D3形成。字线WL(1)至WL(n)可沿第二方向D2延伸,并可沿第一方向D1和第三方向D3形成。位线BL(1)至BL(m)可沿第三方向D3延伸,并可沿第二方向D2形成。存储器单元MC可根据施加到字线WL(1)至WL(n)的电压的电平来控制。通过整体引用包含于此的下面的专利文献描述对于包括3D垂直阵列结构的存储器单元阵列的合适的配置,其中,3D存储器阵列被配置为多个层(level),在多个层之间共享字线和/或位线:美国专利号7,679,133、8,553,466、8,654,587和8,559,235,以及美国专利公布号2011/0233648。
尽管基于NAND闪存装置来描述包括在根据示例实施例的非易失性存储器装置200中的存储器单元阵列210a和210b的示例,但是根据示例实施例的非易失性存储器装置可以是任何非易失性存储器装置,例如,相位随机存取存储器(PRAM)、电阻随机存取存储器(RRAM)、纳米浮栅存储器(NFGM)、聚合物随机存取存储器(PoRAM)、磁随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)、晶闸管随机存取存储器(TRAM)等。
再次参照图2,控制电路260可从图1中的装置控制器120接收命令CMD和地址ADDR,并可基于命令CMD和地址ADDR控制行解码器220、页缓冲器电路230、数据I/O电路240和电压生成器250针对存储器单元阵列210执行写入(或编程)操作、读取操作和擦除操作。例如,控制电路260可基于命令CMD生成用于控制电压生成器250的控制信号CON,并可基于地址ADDR生成行地址R_ADDR和列地址C_ADDR。控制电路260可将行地址R_ADDR提供给行解码器220,并可将列地址C_ADDR提供给数据I/O电路240。
行解码器220可经由串选择线SSL、多条字线WL和地选择线GSL连接到存储器单元阵列210。行解码器220可基于行地址R_ADDR将多条字线WL中的至少一条确定为选择的字线,并可基于行地址R_ADDR将多条字线WL中的其余的字线确定为未选择的字线。
电压生成器250可基于控制信号CON生成非易失性存储器装置200的操作所需的字线电压VWL。字线电压VWL可经由行解码器220施加到多条字线WL。例如,在擦除操作期间,电压生成器250可将擦除电压施加到存储器块的阱或共源线,并可将接地电压施加到存储器块的全部字线。在擦除验证操作期间,电压生成器250可将擦除验证电压施加到存储器块的所有字线,或者在逐条字线(word line-by-word line)的基础上顺序地施加擦除验证电压。在编程操作(或写入操作)期间,电压生成器250可将编程电压施加到选择的字线,并可将编程通过电压施加到未选择的字线。在编程验证操作期间,电压生成器250可将编程验证电压施加到选择的字线,并可将验证通过电压施加到未选择的字线。在读取操作期间,电压生成器250可将读取电压施加到选择的字线,并可将读取通过电压施加到未选择的字线。
页缓冲器电路230可经由多条位线BL连接到存储器单元阵列210。页缓冲器电路230可包括多个页缓冲器。在一些示例实施例中,每个页缓冲器可连接到一条位线。在其他示例实施例中,每个页缓冲器可连接到两条或更多条位线。页缓冲器电路230可存储将被编程到存储器单元阵列210中的数据DAT,或者可读取从存储器单元阵列210感测的数据DAT。换句话说,页缓冲器电路230可根据非易失性存储器装置200的操作模式作为写驱动器或感测放大器进行操作。
数据I/O电路240可经由数据线DL连接到页缓冲器电路230。数据I/O电路240可基于列地址C_ADDR,经由页缓冲器电路230将数据DAT从非易失性存储器装置200的外部(例如,从图1中的装置控制器120)提供到存储器单元阵列210,或者可将数据DAT从存储器单元阵列210提供到非易失性存储器装置100的外部。
再次参照图1,装置控制器120可包括存储器和处理电路。
存储器可包括易失性存储器、非易失性存储器、随机存取存储器(RAM)、闪存、硬盘驱动器和光盘驱动器中的至少一个。存储器可存储图4中所示的用户成本表140和元成本表150。
处理电路可以是,但不限于:处理器、中央处理器(CPU)、控制器、算术逻辑单元(ALU)、数字信号处理器、微型计算机、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、片上系统(SoC)、可编程逻辑单元、微处理器或能够以限定方式执行操作的任何其他装置。
处理电路可通过布局设计或存储在存储器(未示出)中的计算机可读指令的执行被配置为专用计算机,以控制非易失性存储器装置200的操作。此外,如下所述,处理电路(包括图4中所示的成本计算器160)可被配置为计算与在垃圾回收期间访问元数据相关联的元成本,并考虑元成本来选择牺牲块。因此,装置控制器120可通过改进存储装置100的垃圾回收来改善存储装置100自身的功能。
装置控制器120可基于从主机接收到的命令和数据来控制非易失性存储器装置200的操作。例如,装置控制器120可从主机接收用户数据270和请求针对用户数据270的写入操作的写入命令,并可控制非易失性存储器装置200对多个存储器块BLK1和BLK2中的用户数据270进行编程。
此外,装置控制器120可执行用于操作存储装置100的固件,并可生成在操作固件时所使用的元数据280。元数据280可以是用于管理非易失性存储器装置200的数据,并可包括用户数据270的管理信息。例如,元数据280可包括逻辑到物理(L2P)映射表,其中,L2P映射表具有针对用户数据270从逻辑地址到物理地址的地址转换信息。元数据280还可包括垃圾回收进度信息,诸如,回拷进度信息(copyback progress information)、先前的垃圾回收时间等。由于装置控制器120的高速缓存或操作存储器的容量限制,或者为了准备突然关机,因此,装置控制器120可将元数据280存储在多个存储器块BLK1和BLK2中的至少一个中。因此,装置控制器120可在需要时将元数据280从非易失性存储器装置200加载到高速缓存或操作存储器中,并且当元数据280被改变时,装置控制器120可将改变的元数据280编程到多个存储器块BLK1和BLK2中的至少一个。L2P映射表可被存储在多个存储器块BLK1和BLK2中的至少一个中的多个页中,这里,存储地址转换信息的每个页可被称为“L2P映射页”。装置控制器120可基于L2P映射页读取地址转换信息或对地址转换信息进行编程。
在诸如闪存的非易失性存储器装置200中,为了将新数据写入已经写入其他数据(例如,用户数据270)的区域,针对该区域的擦除操作应被预先执行(即,新数据不会重写到该区域),并且基于页执行写入操作而基于块执行擦除操作,其中,每个块包括多个页。因此,随着响应于来自主机的写入请求将用户数据270连续写入多个存储器块BLK1和BLK2,有效数据可散布在整个存储器块BLK1和BLK2,可写入新数据的存储空间或者空闲块可能不足。因此,为了获得空闲块,装置控制器120可执行垃圾回收,其中,垃圾回收在多个存储器块BLK1和BLK2之中选择牺牲块,将牺牲块的有效页移动(或回拷)到另一存储器块,并针对牺牲块执行擦除操作。
为了执行垃圾回收,装置控制器120可针对多个存储器块BLK1和BLK2中的每个(或者针对多个存储器块BLK1和BLK2之中的存储用户数据270的存储器块中的每个)计算用户成本。这里,用户成本可对应于将在垃圾回收执行的访问用户数据270的存储器时间,并且用户成本可包括读取每个存储器块BLK1和BLK2的有效页的时间以及将读取的有效页编程到另一存储器块的时间。在一些示例实施例中,装置控制器120可基于以下项中的至少一个来计算用户成本:每个存储器块BLK1和BLK2的有效页的数量、每个存储器块BLK1和BLK2的单元类型、每个存储器块BLK1和BLK2的擦除操作的数量以及存储在每个存储器块BLK1和BLK2中的用户数据270的类型。
此外,装置控制器120可针对多个存储器块BLK1和BLK2中的每个计算元成本。这里,元成本可对应于将在垃圾回收执行的访问元数据280的存储器时间,并且元成本可包括:读取L2P映射表的多个L2P映射页之中的包括针对包括在每个存储器块BLK1和BLK2中的有效页的地址转换信息的L2P映射页的时间、以及对包括由回拷操作改变的地址转换信息的L2P映射页进行编程的时间。在一些示例实施例中,装置控制器120可基于与每个存储器块BLK1和BLK2的有效页相关的L2P映射页的数量和垃圾回收进度信息中的至少一个来计算元成本。
装置控制器120可基于用户成本和元成本在多个存储器块BLK1和BLK2之中选择牺牲块。在一些示例实施例中,装置控制器120可针对多个存储器块BLK1和BLK2中的每个,通过将用户成本与元成本的总和除以每个存储器块BLK1和BLK2的无效页的数量来计算每空闲页的垃圾回收成本,并可选择多个存储器块BLK1和BLK2中的具有最低的每空闲页的垃圾回收成本的一个存储器块作为牺牲块。
此外,装置控制器120可对牺牲块执行垃圾回收。也就是说,装置控制器120可读取牺牲块的有效页,可将读取的有效页编程(或回拷)到另一块(例如,空闲块),并可擦除牺牲块。擦除的牺牲块可用作空闲块。
传统的存储装置可选择具有最少数量的有效页的存储器块作为牺牲块。然而,尽管每个存储器块的有效页的数量可与作为垃圾回收所需的时间的一部分的回拷操作的时间成比例,但是有效页的数量可不与用于读取与牺牲块的有效页相关的L2P映射页的时间(或搜索有效时间)和用于对更新的L2P映射页进行编程的时间(或元更新时间)成比例。此外,搜索有效时间和元更新时间可对应于垃圾回收所需的大部分时间,因此,由传统存储装置选择的牺牲块可不具有多个存储器块BLK1和BLK2之中的最短垃圾回收持续时间。
然而,在根据示例实施例的存储装置100中,在选择牺牲块时不仅考虑与将在垃圾回收执行的访问用户数据270的存储器时间(例如,回拷时间)对应的用户成本,而且还考虑与将在垃圾回收执行的访问元数据280的存储器时间(例如,搜索有效时间和元更新时间)对应的元成本,因此,具有最短垃圾回收持续时间(或最小的每空闲页的垃圾回收持续时间)的存储器块可被选择作为牺牲块。因此,垃圾回收可被有效地执行。
在一些示例实施例中,装置控制器120可基于牺牲块的每空闲页的垃圾回收成本来设置执行垃圾回收的时间段。例如,装置控制器120可周期性地执行垃圾回收,或者每当从主机接收期望的(或者,可选地,预定的)数量(或数据大小)的写入请求时执行垃圾回收,并且每当执行垃圾回收时装置控制器120可设置与每空闲页的垃圾回收成本成比例的垃圾回收的时间段。
传统的存储装置可不管垃圾回收成本如何,或者仅考虑牺牲块的有效页的数量来设置垃圾回收的时间段。因此,在传统的存储装置中,一次垃圾回收的时间段可被设置为过度的长于必要时间,因此,存储装置的延迟可被增大。可选地,在传统的存储装置中,一次垃圾回收的时间段可被设置为过度的短于必要时间。因此,可无法获得足够的空闲页或足够的空闲块,或者可在下一垃圾回收时增大存储装置的延迟。
然而,根据示例实施例的存储装置100可使用通过不仅考虑用户成本而且还考虑元成本计算的垃圾回收成本(或每空闲页的垃圾回收成本)来设置垃圾回收的时间段,从而减小存储装置100的延迟(例如,写入延迟)。
图4是示出根据示例实施例的存储装置的框图,图5A是示出包括在图4的存储装置中的用户成本表的示例的示图,图5B是示出包括在图4的存储装置中的用户成本表的另一示例的示图,图6A是示出包括在图4的存储装置中的元成本表的示例的示图,图6B是示出包括在图4的存储装置中的元成本表的另一示例的示图。
参照图4,根据示例实施例的存储装置100a的装置控制器120a可包括存储用户成本信息的用户成本表140、存储元成本信息的元成本表150以及基于用户成本信息和元成本信息计算垃圾回收成本的成本计算器160。
用户成本表140可存储针对多个存储器块BLK1和BLK2中的每个的用户成本信息。在一些示例实施例中,用户成本表140可存储每个存储器块BLK1和BLK2的有效页的数量作为用户成本信息。例如,如图5A中所示,示例用户成本表140a可存储每个存储器块BLK1和BLK2的块编号BN以及包括在每个存储器块BLK1和BLK2中的有效页的数量VPC。当执行针对每个存储器块BLK1和BLK2的写入操作时或者在执行针对每个存储器块BLK1和BLK2的写入操作之后,每个存储器块BLK1和BLK2的有效页数量(或计数)VPC可被记录在用户成本表140a中。在图5A中所示的示例中,第一存储器块BLK1可具有10个有效页,第二存储器块BLK2可具有30个有效页。
在其他示例实施例中,用户成本表140可存储以下项中的至少一个作为用户成本信息:每个存储器块BLK1和BLK2的单元类型、对每个存储器块BLK1和BLK2先前执行的擦除操作的次数、存储在每个存储器块BLK1和BLK2中的用户数据270的类型以及每个存储器块BLK1和BLK2的有效页的数量。例如,如图5B中所示,示例用户成本表140b可存储每个存储器块BLK1和BLK2的块编号BN、包括在每个存储器块BLK1和BLK2中的有效页的数量VPC、每个存储器块BLK1和BLK2的单元类型CT、针对每个存储器块BLK1和BLK2的擦除操作的次数EC以及存储在每个存储器块BLK1和BLK2中的用户数据270的类型UDT。
在图5B中所示的示例中,第一存储器块BLK1可具有10个有效页,第一存储器块BLK1可包括单层单元SLC,对第一存储器块BLK1执行200次擦除操作,并且第一存储器块BLK1可存储主机的文件系统的元数据FSM作为用户数据270。此外,在示例中,第二存储器块BLK2可具有30个有效页,第二存储器块BLK2可包括多层单元MLC,对第二存储器块BLK2执行100次擦除操作,并且第二存储器块BLK2可存储数据库的元数据DBM作为用户数据270。虽然图5B示出主机的文件系统的元数据FSM和数据库的元数据DBM作为用户数据270的类型的示例,但是用户数据270的类型可不限于此。
元成本表150可存储多个存储器块BLK1和BLK2中的每个的元成本信息。在一些示例实施例中,元成本表150可存储与每个存储器块BLK1和BLK2的有效页相关的L2P映射页(或者具有有效页的地址转换信息的L2P映射页)的数量作为元成本信息。例如,如图6A中所示,示例元成本表150a可存储每个存储器块BLK1和BLK2的块编号BN以及与包括在每个存储器块BLK1和BLK2中的有效页相关的L2P映射页的数量RLC。当执行对每个存储器块BLK1和BLK2的写入操作时或者在执行对每个存储器块BLK1和BLK2的写入操作之后,每个存储器块BLK1和BLK2的相关的L2P映射页数量(或计数)RLC可被记录在元成本表150a中。在图6A中所示的示例中,第一存储器块BLK1的有效页的地址转换信息可被存储在两个L2P映射页中,第二存储器块BLK2的有效页的地址转换信息可被存储在二十个L2P映射页中。
在其他示例实施例中,元成本表150可存储垃圾回收进度信息以及与每个存储器块BLK1和BLK2的有效页相关的L2P映射页的数量。例如,如图6B中所示,示例元成本表150b可存储关于与包括在每个存储器块BLK1和BLK2中的有效页相关的L2P映射页的数量RLC的信息152、以及垃圾回收进度信息154。例如,垃圾回收进度信息154可包括,但不限于:表示在先前的垃圾回收已经将牺牲块的多少个有效页移动到另一存储器块的回拷进度信息156、以及表示执行先前的垃圾回收的时间段(例如,持续时间)的先前垃圾回收时间158。
成本计算器160可基于存储在用户成本表140中的用户成本信息来计算多个存储器块BLK1和BLK2中的每个的用户成本。在一些示例实施例中,用户成本表140可存储每个存储器块BLK1和BLK2的有效页计数VPC,成本计算器160可使用等式“tUC=(tURD+tUPROG)×VPC”来计算多个存储器块BLK1和BLK2中的每个的用户成本,其中,tURD可表示读取用户数据270的一个页的时间,tUPROG可表示对用户数据270的一个页进行编程的时间,VPC可表示每个存储器块BLK1和BLK2的有效页的数量,tUC可表示用户成本。也就是说,成本计算器160可通过将确定的(或者,可选地,预定的)用户数据页读取时间(tURD)与确定的(或者,可选地,预定的)用户数据页编程时间(tUPROG)的总和乘以存储在用户成本表140中的有效页计数VPC,来计算每个存储器块BLK1和BLK2的用户成本(tUC)。在其他示例实施例中,在计算用户成本时不仅可考虑有效页计数VPC,而且还可考虑每个存储器块BLK1和BLK2的单元类型CT、擦除计数EC和用户数据270的类型UDT中的至少一个。
此外,成本计算器160可基于存储在元成本表150中的元成本信息来计算多个存储器块BLK1和BLK2中的每个的元成本。在一些示例实施例中,元成本表150可存储每个存储器块BLK1和BLK2的相关的L2P映射页计数RLC,成本计算器160可使用等式“tMC=(tMRD+tMPROG)×RLC”来计算多个存储器块BLK1和BLK2中的每个的元成本,其中,tMRD可表示读取元数据280的一个页的时间,tMPROG可表示对元数据280的一个页进行编程的时间,RLC可表示与每个存储器块BLK1和BLK2的有效页相关的L2P映射页的数量,tMC可表示元成本。也就是说,成本计算器160可通过将确定的(或者,可选地,预定的)元数据页读取时间(tMRD)与确定的(或者,可选地,预定的)元数据页编程时间(tMPROG)的总和乘以存储在元成本表150中的相关的L2P映射页计数RLC,来计算每个存储器块BLK1和BLK2的元成本(tMC)。在其他示例实施例中,在计算元成本时不仅可考虑相关的L2P映射页计数RLC,而且还可考虑垃圾回收进度信息154。
成本计算器160可基于用户成本和元成本来计算多个存储器块BLK1和BLK2中的每个存储器块的每空闲页的垃圾回收成本。在一些示例实施例中,成本计算器160可使用等式“tGCCPP=(tUC+tMC)/(TPC-VPC)”来计算多个存储器块BLK1和BLK2中的每个存储器块的每空闲页的垃圾回收成本,其中,tUC可表示每个存储器块BLK1和BLK2的用户成本,tMC可表示每个存储器块BLK1和BLK2的元成本,TPC可表示每个存储器块BLK1和BLK2的总页数,VPC可表示每个存储器块BLK1和BLK2的有效页的数量,tGCCPP可表示每空闲页的垃圾回收成本。也就是说,成本计算器160可通过将用户成本(tUC)与元成本(tMC)的总和除以无效页数量(或TPC-VPC)来计算每空闲页的垃圾回收成本(tGCCPP)。
装置控制器120a可在多个存储器块BLK1和BLK2之中,选择具有最低的每空闲页的垃圾回收成本(tGCCPP)的存储器块作为牺牲块,并可对牺牲块执行垃圾回收。因此,牺牲块可被选择,使得最大数量的空闲页可在有限的时间内获得,并且垃圾回收可被有效地执行。
图7是示出根据示例实施例的存储装置的垃圾回收方法的流程图,图8是用于描述在图7的垃圾回收方法中选择牺牲块的示例的示图。
参照图4和图7,在操作S210中,成本计算器160可基于存储在用户成本表140中的用户成本信息,来计算多个存储器块BLK1和BLK2中的每个的用户成本。例如,成本计算器160可通过将用户数据页读取时间与用户数据页编程时间的总和乘以存储在用户成本表140中的有效页计数,来计算每个存储器块BLK1和BLK2的用户成本。
在操作S220中,成本计算器160可基于存储在元成本表150中的元成本信息,来计算多个存储器块BLK1和BLK2中的每个的元成本。例如,成本计算器160可通过将元数据页读取时间与元数据页编程时间的总和乘以存储在元成本表150中的相关的L2P映射页计数,来计算每个存储器块BLK1和BLK2的元成本。
在操作S230中,成本计算器160可基于用户成本和元成本,来计算多个存储器块BLK1和BLK2中的每个存储器块的每空闲页的垃圾回收成本。例如,成本计算器160可通过将用户成本与元成本的总和除以无效页数量,来计算每个存储器块BLK1和BLK2的每空闲页的垃圾回收成本。
在操作S240中,装置控制器120a可在多个存储器块BLK1和BLK2之中,选择具有最低的每空闲页的垃圾回收成本的存储器块作为牺牲块。
在操作S260中,装置控制器120a可对选择的牺牲块执行垃圾回收。
在图8中所示的示例中,其中,第一存储器块BLKA具有100个有效页,第一存储器块BLKA的有效页的地址转换信息被存储在50个L2P映射页中,第二存储器块BLKB具有110个有效页,第二存储器块BLKB的有效页的地址转换信息被存储在5个L2P映射页中,仅考虑有效页计数VPC的传统的存储装置可选择具有最少有效页的第一存储器块BLKA。然而,尽管第一存储器块BLKA具有最少有效页,但是在对第一存储器块BLKA执行垃圾回收的情况下,在回拷操作之后,可读取50个L2P映射页并且可对50个更新的L2P映射页进行编程,但是在对第二存储器块BLKB执行垃圾回收的情况下,在回拷操作之后,可仅读取5个L2P映射页并且可对5个更新的L2P映射页进行编程。因此,第一存储器块BLKA的垃圾回收成本或每空闲页的垃圾回收成本可大于第二存储器块BLKB的垃圾回收成本或每空闲页的垃圾回收成本。在根据示例实施例的垃圾回收方法中,可通过不仅考虑基于有效页计数VPC计算的用户成本而且还考虑基于相关的L2P映射页计数RLC计算的元成本,来计算每空闲页的垃圾回收成本,因此,具有最低的每空闲页的垃圾回收成本的存储器块或图8的示例中的第二存储器块BLKB可被选择作为牺牲块。因此,在根据示例实施例的垃圾回收方法中,可有效地执行垃圾回收。
图9是示出根据示例实施例的存储装置的框图,图10是用于描述由图9的存储装置设置垃圾回收时间的示例的示图。
与图4的存储装置100a的装置控制器120a相比,图9的存储装置100b的装置控制器120b还可包括基于牺牲块的每空闲页的垃圾回收成本来设置执行垃圾回收的时间段的垃圾回收时间设置器180。
垃圾回收时间设置器180可基于由成本计算器160计算的牺牲块的每空闲页的垃圾回收成本和在相邻的垃圾回收之间的时间间隔期间请求写入操作的用户数据270的页的数量,来设置垃圾回收的时间段。也就是说,当存储装置100b进行操作时,装置控制器120b可周期性地执行垃圾回收,或者每当从主机接收期望的(或者,可选地,预定的)数量(或数据大小)的写入请求时执行垃圾回收,并且每当执行垃圾回收时,装置控制器120b可设置与每空闲页的垃圾回收成本以及请求写入操作的页的数量成比例的垃圾回收的时间段。
例如,在图10的示例中,装置控制器120b可从第一时间点TP1执行针对第一时间段GCT1的第一垃圾回收,之后可在第二时间点TP2执行第二垃圾回收。在一个示例中,垃圾回收时间设置器180可基于每空闲页的垃圾回收成本和在第一垃圾回收与第二垃圾回收之间的时间间隔GCTI1期间请求写入操作的页的数量,来设置第二垃圾回收的第二时间段GCT2的长度。在另一示例中,垃圾回收时间设置器180可预测在下一时间间隔GCTI2期间请求写入操作的页的数量,并且可基于每空闲页的垃圾回收成本和预测的请求写入的页的数量来设置第二垃圾回收的第二时间段GCT2的长度。
在一些示例实施例中,垃圾回收时间设置器180可使用等式“tGC=tGCCPP×WPC”来设置垃圾回收的时间段,其中,tGCCPP可表示每空闲页的垃圾回收成本,WPC可表示在相邻的垃圾回收之间的时间间隔期间请求写入操作的用户数据270的页的数量,tGC可表示垃圾回收的时间段。因此,由于垃圾回收的时间段可通过考虑获得每个空闲页的时间和针对用户数据270的页的写入请求两者来设置,因此,获得新的空闲页的速率可与使用空闲页的速率匹配。
图11是示出根据示例实施例的存储装置的垃圾回收方法的流程图,图12A和图12B是用于描述传统的垃圾回收方法和根据示例实施例的垃圾回收方法的垃圾回收时间的示例的示图。
与图7的垃圾回收方法相比,在图11的垃圾回收方法中,可设置垃圾回收时间或执行垃圾回收的时间段。
例如,参照图9和图11,在操作S250中,垃圾回收时间设置器180可基于由成本计算器160计算的牺牲块的每空闲页的垃圾回收成本和在相邻垃圾回收之间的时间间隔期间请求写入操作的用户数据270的页的数量,来设置垃圾回收的时间段。例如,垃圾回收时间设置器180可通过将每空闲页的垃圾回收成本乘以请求写入的页的数量,来设置垃圾回收的时间段(在下文中,称为“垃圾回收时间”)。此外,图9中的操作S210至S240和S260与图7中的操作S210至S240和S260相似,为了简明,将省略相似的描述。
在图12A和图12B中示出的示例中,可对第一存储器块BLKC执行第一垃圾回收,然后可对第二存储器块BLKD执行第二垃圾回收。通过仅考虑有效页计数VPC来设置每个垃圾回收的时间段的传统的存储装置可针对具有相同的有效页计数VPC的第一存储器块BLKC的第一垃圾回收和第二存储器块BLKD的第二垃圾回收设置相同的垃圾回收时间。在传统的存储装置将第一垃圾回收的垃圾回收时间设置为过度长于必要时间的示例中,如图12B中的310所示,在第一垃圾回收期间,传统的存储装置的延迟(例如,与写入时间和垃圾回收时间的总和对应的写入延迟)会过度增大。在传统的存储装置将第一垃圾回收的垃圾回收时间设置为过度短于必要时间的另一示例中,如图12B中的330所示,由于在第一垃圾回收没有获得足够的空闲页,所以第二垃圾回收的垃圾回收时间应被设置得过长,因此,在第二垃圾回收期间,传统的存储装置的延迟会过度增大。然而,在根据示例实施例的垃圾回收方法中,如图12B中的350所示,由于垃圾回收时间可通过考虑基于用户成本和元成本计算的垃圾回收成本和请求写入的页的数量两者来设置,因此,垃圾回收时间可被适当地设置,存储装置100的延迟可被减小。
图13A是示出针对传统的存储装置的延迟的模拟的示例的示图,图13B是示出针对根据示例实施例的存储装置的延迟的模拟的示例的示图。
参照图13A和图13B,与通过仅考虑有效页计数选择牺牲块并设置垃圾回收时间的传统的存储装置的延迟410相比,通过不仅考虑用户成本而且还考虑元成本选择牺牲块并设置垃圾回收时间的根据示例实施例的存储装置可具有更短的延迟430。
例如,根据示例实施例的存储装置可通过不仅考虑用户成本而且还考虑元成本,来选择具有最低的每空闲页的垃圾回收成本的存储器块作为牺牲块,因此,根据示例实施例的存储装置可具有比可选择具有相对高的每空闲页的垃圾回收成本的存储器块作为牺牲快的传统的存储装置的平均延迟AL1短的平均延迟AL2。
此外,根据示例实施例的存储装置可通过考虑每空闲页的垃圾回收成本和请求写入的页的数量来设置垃圾回收时间,使得获得新的空闲页的速率可与使用空闲页的速率基本匹配,因此,根据示例实施例的存储装置可具有比可将垃圾回收时间设置得过长的传统的存储装置的最大延迟ML1短的最大延迟ML2。
图14是示出根据示例实施例的包括存储装置的计算系统的框图。
参照图14,计算系统500可包括中央处理器(CPU)510、随机存取存储器(RAM)520、用户接口530、调制解调器540和存储装置100。在一些示例实施例中,计算系统500还可包括应用芯片组、相机图像处理器(CIS)、移动DRAM等。根据示例实施例,存储装置100可以是SSD、NVMe、eMMC、UFS等。
存储装置100可包括至少一个非易失性存储器装置200和用于控制非易失性存储器装置200的装置控制器120。装置控制器120可通过不仅计算用户成本而且还计算元成本,来选择具有最低的每空闲页的垃圾回收成本的存储器块作为牺牲块,从而有效地执行垃圾回收。此外,装置控制器120可通过使用每空闲页的垃圾回收成本来设置垃圾回收的时间段,从而减小存储装置100的延迟(例如,写入延迟)。
本发明构思的示例实施例可被应用于包括非易失性存储器装置的任何存储装置。例如,本发明构思的示例实施例可被应用于SSD、NVMe、eMMC、UFS等。
根据一个或多个示例实施例,上面描述的包括存储装置100、100a、100b的元件(诸如,装置控制器及其子元件(诸如,成本计算器160和垃圾回收时间设置器180))的单元和/或装置可使用硬件、硬件和软件的组合或者存储可执行的用于执行其功能的软件的非暂时性存储介质来实现。
硬件可使用处理电路(诸如,但不限于,一个或多个处理器、一个或多个中央处理器(CPU)、一个或多个控制器、一个或多个算术逻辑单元(ALU)、一个或多个数字信号处理器(DSP)、一个或多个微型计算机、一个或多个现场可编程门阵列(FPGA)、一个或多个片上系统(SoC)、一个或多个可编程逻辑单元(PLU)、一个或多个微处理器、一个或多个专用集成电路(ASIC),或能够以限定的方式响应和执行指令的任何其他装置)来实现。
软件可包括用于独立地或共同地指示或配置硬件装置按照期望地进行操作的计算机程序、程序代码、指令或它们的一些组合。计算机程序和/或程序代码可包括能够由一个或多个硬件装置(诸如,上面提到的硬件装置中的一个或多个)实现的程序或计算机可读指令、软件组件、软件模块、数据文件、数据结构等。程序代码的示例包括由编译器生成的机器代码和使用解释器执行的高级程序代码二者。
例如,当硬件装置是计算机处理装置(例如,一个或多个处理器、CPU、控制器、ALU、DSP、微型计算机、微处理器等)时,计算机处理装置可被配置为执行通过根据程序代码执行算术、逻辑和输入/输出操作的程序代码。一旦程序代码被加载到计算机处理装置中,计算机处理装置可被编程为执行该程序代码,从而将计算机处理装置转换成专用计算机处理装置。在更具体的示例中,当程序代码被加载到处理器中时,处理器变得程序化以执行程序代码和与其对应的操作,从而将处理器变换为专用处理器。在另一示例中,硬件装置可以是定制为专用处理电路的集成电路(例如,ASIC)。
硬件装置(诸如,计算机处理装置)可运行操作系统(OS)以及在OS上运行的一个或多个软件应用。响应于软件的执行,计算机处理装置还可访问、存储、操控、处理并创建数据。为了简明起见,一个或多个示例实施例可被举例为一个计算机处理装置,然而,本领域的技术人员将理解,硬件装置可包括多个处理元件以及多种类型的处理元件。例如,硬件装置可包括多个处理器或者一个处理器和一个控制器。此外,其他处理配置是可行的,诸如并行处理器。
可以以任意类型的存储介质(存储介质包括,但不限于,能够将指令或数据提供给硬件装置,或者能够提供由硬件装置解释的任何机器、组件、物理或虚拟设备或计算机存储介质或者装置)来永久地或临时地实现软件和/或数据。软件还可分布在联网的计算机系统上,使得软件以分布式的方式被存储和被执行。具体地讲,例如,软件和数据可通过包括如在此讨论的有形的或非暂时性计算机可读存储介质的一个或多个计算机可读记录介质来存储。
存储介质还可包括:在根据一个或多个示例实施例的单元和/或装置的一个或多个存储装置。一个或多个存储装置可以是有形或非暂时性计算机可读存储介质(诸如,随机存取存储器(RAM)、只读存储器(ROM)、永久大容量存储装置(诸如,磁盘驱动器)和/或能够存储和记录数据的任何其他类似的数据存储结构)。一个或多个存储装置可被配置为存储用于一个或多个操作系统和/或用于实现在此描述的示例实施例的计算机程序、程序代码、指令或它们的一些组合。还可使用驱动机制将计算机程序、程序代码、指令或它们的一些组合从单独的计算机可读存储介质加载到一个或多个存储装置和/或一个或多个计算机处理装置中。这种单独的计算机可读存储介质可包括通用串行总线(USB)闪存驱动器、记忆棒、蓝光/DVD/CD-ROM驱动器、存储卡和/或其他类似的计算机可读存储介质。计算机程序、程序代码、指令或它们的一些组合可经由网络接口而不是经由计算机可读存储介质从远程数据存储装置加载到一个或多个存储装置和/或一个或多个计算机处理装置中。此外,计算机程序、程序代码、指令或它们的一些组合可通过网络从远程计算系统加载到一个或多个存储装置和/或一个或多个处理器中,其中,该远程计算系统被配置为通过网络传送和/或分布计算机程序、程序代码、指令或它们的一些组合。远程计算系统可经由有线接口、空中接口和/或任何其他类似介质传送和/或分布计算机程序、程序代码、指令或它们的一些组合。
为了示例实施例的目的,一个或多个硬件装置、存储介质、计算机程序、程序代码、指令或它们的一些组合可被专门设计和构造,或者它们可以是为了示例实施例的目的而改变和/或修改的已知的装置。
上述内容是对示例实施例的说明,并且不应被解释成对示例实施例的限制。尽管已经描述了一些示例实施例,但是本领域技术人员将容易地理解,在不实质上脱离本发明构思的示例实施例的新颖性教导和优点的情况下,可在示例实施例中进行许多修改。因此,所有这些修改意在包括在权利要求中所限定的本发明构思的示例实施例的范围内。因此,将理解,前面的叙述是各种示例实施例的说明,不应被解释为限于公开的特定示例实施例,对公开的示例实施例的修改以及其他示例实施例意在包括在所附权利要求的范围内。
Claims (20)
1.一种存储装置,包括:
包括多个存储器块的至少一个非易失性存储器装置,其中,所述至少一个非易失性存储器装置被配置为将用户数据和元数据存储在所述多个存储器块中;
装置控制器,被配置为,
针对所述多个存储器块中的每个存储器块,计算与在垃圾回收期间访问用户数据的存储器时间对应的用户成本,
针对所述多个存储器块中的每个存储器块,计算与在垃圾回收期间访问元数据的存储器时间对应的元成本,其中,基于与所述多个存储器块中的每个存储器块的有效页相关的逻辑到物理映射页的数量,来计算元成本,
基于用户成本和元成本,在所述多个存储器块之中选择牺牲块,
对牺牲块执行垃圾回收。
2.根据权利要求1所述的存储装置,其中,装置控制器被配置为:
针对所述多个存储器块中的每个存储器块,基于用户成本与元成本的总和以及每个存储器块的无效页的数量,来计算每空闲页的垃圾回收成本,
选择所述多个存储器块中的具有最低的每空闲页的垃圾回收成本的一个存储器块作为牺牲块。
3.根据权利要求2所述的存储装置,其中,装置控制器被配置为:基于牺牲块的每空闲页的垃圾回收成本设置垃圾回收的时间段。
4.根据权利要求3所述的存储装置,其中,装置控制器基于tGC=tGCCPP×WPC来设置垃圾回收的时间段,其中,
tGCCPP表示每空闲页的垃圾回收成本,WPC表示在相邻的垃圾回收之间的时间间隔期间请求写入操作的用户数据的页的数量,tGC表示垃圾回收的时间段。
5.根据权利要求1所述的存储装置,其中,装置控制器被配置为:基于以下项中的至少一个来计算用户成本:每个存储器块的有效页的数量、每个存储器块的单元类型、每个存储器块的擦除操作的次数以及存储在每个存储器块中的用户数据的类型。
6.根据权利要求1所述的存储装置,其中,装置控制器被配置为:基于tUC=(tURD+tUPROG)×VPC来计算所述多个存储器块中的每个存储器块的用户成本,其中,
tURD表示读取用户数据的一个页的时间,tUPROG表示对用户数据的一个页进行编程的时间,VPC表示每个存储器块的有效页的数量,tUC表示用户成本。
7.根据权利要求1所述的存储装置,其中,装置控制器被配置为:还基于垃圾回收进度信息来计算元成本。
8.根据权利要求1所述的存储装置,其中,装置控制器被配置为:基于tMC=(tMRD+tMPROG)×RLC来计算所述多个存储器块中的每个存储器块的元成本,其中,
tMRD表示读取元数据的一个页的时间,tMPROG表示对元数据的一个页进行编程的时间,RLC表示与每个存储器块的有效页相关的逻辑到物理映射页的数量,tMC表示元成本。
9.根据权利要求1所述的存储装置,其中,装置控制器被配置为:基于tGCCPP=(tUC+tMC)/(TPC-VPC)来计算所述多个存储器块中的每个存储器块的每空闲页的垃圾回收成本,其中,
tUC表示所述多个存储器块中的每个存储器块的用户成本,tMC表示所述多个存储器块中的每个存储器块的元成本,TPC表示每个存储器块的总页数,VPC表示每个存储器块的有效页的数量,tGCCPP表示每空闲页的垃圾回收成本。
10.根据权利要求1所述的存储装置,其中,装置控制器包括:
至少一个存储器,被配置为存储以下信息:
所述多个存储器块中的每个存储器块的用户成本信息,
所述多个存储器块中的每个存储器块的元成本信息;
处理电路,被配置为,
基于存储在所述至少一个存储器中的用户成本信息来计算所述多个存储器块中的每个存储器块的用户成本,
基于存储在所述至少一个存储器中的元成本信息来计算所述多个存储器块中的每个存储器块的元成本,
基于用户成本和元成本计算所述多个存储器块中的每个存储器块的每空闲页的垃圾回收成本。
11.根据权利要求10所述的存储装置,其中,用户成本信息包括每个存储器块的有效页的数量。
12.根据权利要求11所述的存储装置,其中,用户成本信息还包括每个存储器块的单元类型、每个存储器块的擦除操作的次数和存储在每个存储器块中的用户数据的类型中的至少一个。
13.根据权利要求10所述的存储装置,其中,元成本信息包括与每个存储器块的有效页相关的逻辑到物理映射页的数量。
14.根据权利要求13所述的存储装置,其中,元成本信息还包括垃圾回收进度信息。
15.根据权利要求10所述的存储装置,其中,处理电路还被配置为:基于牺牲块的每空闲页的垃圾回收成本和在相邻的垃圾回收之间的时间间隔期间请求写入操作的用户数据的页的数量,来设置垃圾回收的时间段。
16.一种存储装置,包括:
包括多个存储器块的至少一个非易失性存储器装置,其中,所述至少一个非易失性存储器装置被配置为将用户数据和元数据存储在所述多个存储器块中;
装置控制器,被配置为控制所述至少一个非易失性存储器装置,装置控制器包括,
至少一个存储器,被配置为:存储所述多个存储器块中的每个存储器块的用户成本信息,并存储所述多个存储器块中的每个存储器块的元成本信息,
处理电路,被配置为,
基于用户成本信息,针对所述多个存储器块中的每个存储器块,计算与在垃圾回收期间访问用户数据的存储器时间对应的用户成本,
基于元成本信息,针对所述多个存储器块中的每个存储器块,计算与在垃圾回收期间访问元数据的存储器时间对应的元成本,其中,基于与所述多个存储器块中的每个存储器块的有效页相关的逻辑到物理映射页的数量,来计算元成本,
基于用户成本和元成本,计算所述多个存储器块中的每个存储器块的每空闲页的垃圾回收成本,
选择所述多个存储器块中的具有最低的每空闲页的垃圾回收成本的一个存储器块作为牺牲块。
17.根据权利要求16所述的存储装置,其中,
存储在所述至少一个存储器中的用户成本信息包括以下项中的至少一个:每个存储器块的有效页的数量、每个存储器块的单元类型、每个存储器块的擦除操作的次数以及存储在每个存储器块中的用户数据的类型,
存储在所述至少一个存储器中的元成本信息包括与所述多个存储器块中的每个存储器块的有效页相关的逻辑到物理映射页的数量和垃圾回收进度信息中的至少一个。
18.根据权利要求16所述的存储装置,其中,处理电路还被配置为:基于牺牲块的每空闲页的垃圾回收成本和在相邻的垃圾回收之间的时间间隔期间请求写入操作的用户数据的页的数量,来设置垃圾回收的时间段。
19.一种存储装置的垃圾回收方法,其中,存储装置包括:包括多个存储器块的至少一个非易失性存储器装置,其中,所述垃圾回收方法包括:
针对所述多个存储器块中的每个存储器块,计算与在垃圾回收期间访问存储在所述至少一个非易失性存储器装置中的用户数据的存储器时间对应的用户成本;
针对所述多个存储器块中的每个存储器块,计算与在垃圾回收期间访问存储在所述至少一个非易失性存储器装置中的元数据的存储器时间对应的元成本,其中,基于与所述多个存储器块中的每个存储器块的有效页相关的逻辑到物理映射页的数量,来计算元成本,
基于用户成本和元成本,计算所述多个存储器块中的每个存储器块的每空闲页的垃圾回收成本;
选择所述多个存储器块中的具有最低的每空闲页的垃圾回收成本的一个存储器块作为牺牲块;
对牺牲块执行垃圾回收。
20.根据权利要求19所述的垃圾回收方法,还包括:
基于牺牲块的每空闲页的垃圾回收成本,来设置垃圾回收的时间段。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2017-0177907 | 2017-12-22 | ||
KR1020170177907A KR102512727B1 (ko) | 2017-12-22 | 2017-12-22 | 가비지 컬렉션을 수행하는 스토리지 장치, 및 스토리지 장치의 가비지 컬렉션 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109960663A CN109960663A (zh) | 2019-07-02 |
CN109960663B true CN109960663B (zh) | 2024-04-30 |
Family
ID=66950300
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811398650.0A Active CN109960663B (zh) | 2017-12-22 | 2018-11-22 | 执行垃圾回收的存储装置和存储装置的垃圾回收方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10884921B2 (zh) |
KR (1) | KR102512727B1 (zh) |
CN (1) | CN109960663B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201947402A (zh) * | 2018-05-14 | 2019-12-16 | 深圳大心電子科技有限公司 | 記憶體管理方法以及儲存控制器 |
KR20200016075A (ko) * | 2018-08-06 | 2020-02-14 | 에스케이하이닉스 주식회사 | 메모리 시스템에서의 유효 데이터 탐색 방법 및 장치 |
TWI790383B (zh) * | 2019-06-19 | 2023-01-21 | 慧榮科技股份有限公司 | 資料儲存裝置與資料處理方法 |
KR102626058B1 (ko) * | 2019-07-08 | 2024-01-18 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
CN116166570A (zh) * | 2019-07-31 | 2023-05-26 | 华为技术有限公司 | 一种垃圾回收方法及装置 |
CN112306896B (zh) * | 2019-07-31 | 2022-12-27 | 华为技术有限公司 | 一种垃圾回收方法及装置 |
CN110543284A (zh) * | 2019-09-05 | 2019-12-06 | 北京兆易创新科技股份有限公司 | 存储块的垃圾回收方法及装置、电子设备和存储介质 |
CN110598879B (zh) * | 2019-09-12 | 2023-09-15 | 腾讯科技(深圳)有限公司 | 基于区块链的垃圾回收方法、装置、设备及存储介质 |
KR102691776B1 (ko) * | 2019-10-01 | 2024-08-06 | 에스케이하이닉스 주식회사 | 메모리 시스템에서 멀티 스트림 동작을 제공하는 방법 및 장치 |
KR20210065356A (ko) * | 2019-11-27 | 2021-06-04 | 에스케이하이닉스 주식회사 | 메모리 시스템, 메모리 컨트롤러 및 그 동작 방법 |
CN111858394B (zh) * | 2020-07-28 | 2024-02-13 | 深圳忆联信息系统有限公司 | 垃圾回收的流量控制方法、装置、计算机设备及存储介质 |
CN113094295A (zh) * | 2021-04-15 | 2021-07-09 | 深圳芯邦科技股份有限公司 | 数据存储管理方法、NAND Flash控制器及计算机存储介质 |
US11580018B2 (en) * | 2021-04-25 | 2023-02-14 | Silicon Motion, Inc. | Method and apparatus for page validity management and related storage system |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101241471A (zh) * | 2006-11-03 | 2008-08-13 | 三星电子株式会社 | 快闪存储器系统及其垃圾收集方法 |
KR20170003776A (ko) * | 2015-06-30 | 2017-01-10 | 삼성전자주식회사 | 저장 장치 및 그것의 가비지 컬렉션 방법 |
CN106575258A (zh) * | 2014-08-08 | 2017-04-19 | 三星电子株式会社 | 电子设备、片上存储器和操作所述片上存储器的方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100526190B1 (ko) * | 2004-02-06 | 2005-11-03 | 삼성전자주식회사 | 플래시 메모리의 재사상 방법 |
US8880775B2 (en) * | 2008-06-20 | 2014-11-04 | Seagate Technology Llc | System and method of garbage collection in a memory device |
US20120030260A1 (en) | 2010-07-30 | 2012-02-02 | Maohua Lu | Scalable and parallel garbage collection method and system for incremental backups with data de-duplication |
KR20140040998A (ko) * | 2012-09-27 | 2014-04-04 | 삼성전자주식회사 | 로그기반 데이터 저장 시스템의 관리방법 |
KR20160027805A (ko) | 2014-09-02 | 2016-03-10 | 삼성전자주식회사 | 비휘발성 메모리 장치를 위한 가비지 컬렉션 방법 |
US10318414B2 (en) | 2014-10-29 | 2019-06-11 | SK Hynix Inc. | Memory system and memory management method thereof |
KR102343246B1 (ko) | 2014-12-12 | 2021-12-27 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US10409526B2 (en) | 2014-12-17 | 2019-09-10 | Violin Systems Llc | Adaptive garbage collection |
KR102301772B1 (ko) * | 2015-03-09 | 2021-09-16 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 가비지 컬렉션 방법 |
US9652164B2 (en) | 2015-05-14 | 2017-05-16 | Toshiba Corporation | Solid-state mass storage device and method for processing forced unit access write commands |
TWI575374B (zh) | 2015-08-04 | 2017-03-21 | 群聯電子股份有限公司 | 映射表格更新方法、記憶體儲存裝置及記憶體控制電路單元 |
US10139884B2 (en) | 2015-12-23 | 2018-11-27 | Toshiba Memory Corporation | Power loss protection for solid state drives |
-
2017
- 2017-12-22 KR KR1020170177907A patent/KR102512727B1/ko active IP Right Grant
-
2018
- 2018-09-28 US US16/146,339 patent/US10884921B2/en active Active
- 2018-11-22 CN CN201811398650.0A patent/CN109960663B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101241471A (zh) * | 2006-11-03 | 2008-08-13 | 三星电子株式会社 | 快闪存储器系统及其垃圾收集方法 |
CN106575258A (zh) * | 2014-08-08 | 2017-04-19 | 三星电子株式会社 | 电子设备、片上存储器和操作所述片上存储器的方法 |
KR20170003776A (ko) * | 2015-06-30 | 2017-01-10 | 삼성전자주식회사 | 저장 장치 및 그것의 가비지 컬렉션 방법 |
Also Published As
Publication number | Publication date |
---|---|
US10884921B2 (en) | 2021-01-05 |
KR102512727B1 (ko) | 2023-03-22 |
KR20190076256A (ko) | 2019-07-02 |
US20190196966A1 (en) | 2019-06-27 |
CN109960663A (zh) | 2019-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109960663B (zh) | 执行垃圾回收的存储装置和存储装置的垃圾回收方法 | |
US20160062885A1 (en) | Garbage collection method for nonvolatile memory device | |
US11126602B2 (en) | Key-value storage device and operating method thereof | |
CN109800177B (zh) | 垃圾收集方法、执行方法的存储设备和含设备的计算系统 | |
US20150347291A1 (en) | Flash memory based storage system and operating method | |
US20130080689A1 (en) | Data storage device and related data management method | |
KR102535104B1 (ko) | 저장 장치 및 그 동작 방법 | |
KR102287760B1 (ko) | 메모리 시스템 및 상기 메모리 시스템의 동작 방법 | |
KR20190107963A (ko) | 저장 장치 및 그 동작 방법 | |
KR102635689B1 (ko) | 메모리 시스템, 메모리 컨트롤러 및 동작 방법 | |
KR20220005111A (ko) | 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법 | |
KR20160044989A (ko) | 불휘발성 메모리 장치를 포함하는 데이터 저장 장치 및 그것의 동작 방법 | |
KR20220077691A (ko) | 호스트, 메모리 컨트롤러 및 메모리 장치를 포함하는 전자 시스템 및 이의 동작 방법 | |
KR102694952B1 (ko) | 메모리 시스템 및 그것의 동작방법 | |
US10996881B2 (en) | Storage device and method of operating the same | |
KR20210157544A (ko) | 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법 | |
KR20210128780A (ko) | 메모리 컨트롤러 및 이를 포함하는 저장 장치 | |
KR20210099930A (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
US12072809B2 (en) | Memory system, memory controller, and operation method of memory system for loading and updating mapping information to host memory area | |
US11544002B2 (en) | Memory system, memory controller and operating method thereof | |
KR102693834B1 (ko) | 저장 장치 및 그 동작 방법 | |
KR102716788B1 (ko) | 메모리 시스템, 메모리 장치 및 메모리 컨트롤러 | |
CN112131143A (zh) | 存储器系统、存储器控制器及元信息存储装置 | |
US20240184486A1 (en) | Storage device determining memory area to which data is written using write throughput and method of operation | |
US12131042B2 (en) | Memory system for managing namespace using write pointer and write count, memory controller, and method for operating memory system |
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 |