CN113495850B - 管理垃圾回收程序的方法、装置及计算机可读取存储介质 - Google Patents
管理垃圾回收程序的方法、装置及计算机可读取存储介质 Download PDFInfo
- Publication number
- CN113495850B CN113495850B CN202010268085.7A CN202010268085A CN113495850B CN 113495850 B CN113495850 B CN 113495850B CN 202010268085 A CN202010268085 A CN 202010268085A CN 113495850 B CN113495850 B CN 113495850B
- Authority
- CN
- China
- Prior art keywords
- pages
- block
- type
- total number
- 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 31
- 238000012545 processing Methods 0.000 claims description 34
- 239000002356 single layer Substances 0.000 claims description 4
- 238000004809 thin layer chromatography Methods 0.000 description 19
- 239000010410 layer Substances 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000004242 micellar liquid chromatography Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- CXOXHMZGEKVPMT-UHFFFAOYSA-N clobazam Chemical compound O=C1CC(=O)N(C)C2=CC=C(Cl)C=C2N1C1=CC=CC=C1 CXOXHMZGEKVPMT-UHFFFAOYSA-N 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 229940044442 onfi Drugs 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000002699 waste material Substances 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- 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/1016—Performance 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/7205—Cleaning, compaction, garbage collection, erase control
-
- 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/7209—Validity control, e.g. using flags, time stamps or sequence numbers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
Abstract
本发明涉及一种管理垃圾回收程序的方法、装置及计算机可读取存储介质,管理垃圾回收程序的方法由闪存控制器执行,包含:决定待处理的多个来源块;将来源块中小于一个第一类型物理块的页面总数的有效页面的用户数据写入第二类型物理块中的空页面,其中一个第一类型物理块的页面总数大于一个第二类型物理块的页面总数;以及将第二类型物理块中剩余的空页面填满虚假值。由此,本发明通过如上所述的写入操作,可减少关闭物理块所需使用的资源和时间,提升执行垃圾回收程序的效率。
Description
技术领域
本发明涉及存储装置,尤指一种管理垃圾回收程序的方法、装置及计算机可读取存储介质。
背景技术
闪存通常分为NOR闪存与NAND闪存。NOR闪存为随机存取装置,中央处理器(Host)可于地址引脚上提供任何存取NOR闪存的地址,并及时地从NOR闪存的数据引脚上获得存储于该地址上的数据。相反地,NAND闪存并非随机存取,而是串行存取。NAND闪存无法像NOR闪存一样,可以存取任何随机地址,中央处理器反而需要写入串行的字节(Bytes)的值到NAND闪存中,用于定义请求命令(Command)的类型(如,读取、写入、抹除等),以及用在此命令上的地址。地址可指向一个页面(闪存中写入操作的最小数据块)或一个区块(闪存中抹除操作的最小数据块)。
经过多次的存取后,一个物理块可能包含有效页面及无效页面(又称为过期页面),其中,有效页面存储有效的用户数据,无效页面存储无效的(旧的)用户数据。当闪存控制器侦测到存储装置的可用空间低于阈值时,可发出读取命令指示存储装置读取并搜集多个物理块中的有效页面的用户数据,接着,发出写入命令指示存储装置重新写入搜集起来的有效的用户数据至闲置块或主动块的空物理页面,使得这些包含无效的用户数据的数据块可变更成为闲置区块,于抹除后,即可提供数据存储空间。如上所述的程序称为垃圾回收(GarbageCollection,GC)。然而,垃圾回收程序若设计不良则会影响存储装置的整体效能。因此,本发明提出一种管理垃圾回收程序的方法、装置及计算机可读取存储介质,用于优化垃圾回收程序的运行时间。
发明内容
有鉴于此,如何减轻或消除上述相关领域的缺陷,实为有待解决的问题。
本发明涉及一种计算机可读取存储介质,用于存储能够被闪存控制器的处理单元执行的程序代码,并且所述程序代码被所述处理单元执行时实现以下步骤:决定待处理的多个来源块;将来源块中小于一个第一类型物理块的页面总数的有效页面的用户数据写入第二类型物理块中的空页面;以及将第二类型物理块中剩余的空页面填满虚假值。
本发明还涉及一种管理垃圾回收程序的方法,由闪存控制器执行,包含:决定待处理的多个来源块;将来源块中小于一个第一类型物理块的页面总数的有效页面的用户数据写入第二类型物理块中的空页面;以及将第二类型物理块中剩余的空页面填满虚假值。
本发明还涉及一种管理垃圾回收程序的装置,包含:闪存接口和处理单元。闪存接口耦接闪存模块,并且处理单元耦接闪存接口。处理单元决定闪存模块中待处理的多个来源块;驱动闪存接口将来源块中小于一个第一类型物理块的页面总数的有效页面的用户数据写入第二类型物理块中的空页面;以及驱动闪存接口将第二类型物理块中剩余的空页面填满虚假值。
每个来源块包含至少一个无效页面,一个第一类型物理块的页面总数大于一个第二类型物理块的页面总数。
上述实施例的优点之一,通过如上所述的写入操作,可减少关闭物理块所需使用的资源和时间,提升执行垃圾回收程序的效率。
本发明的其他优点将配合以下的说明和附图进行更详细的解说。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
图1为依据本发明实施例的电子装置的系统架构图。
图2为依据本发明实施例的闪存模块的示意图。
图3为依据本发明实施例的NAND闪存单元的示意图。
图4为依据一些实施方式的垃圾回收示意图。
图5为依据本发明实施例的垃圾回收程序的写入方法的流程图。
图6和图7为依据本发明实施例的垃圾回收示意图。
其中,附图中符号的简单说明如下:
10:电子装置;110:主机端;130:闪存控制器;131:主机接口;132:总线;134:处理单元;136:随机存取存储器;138:直接存储存取控制器;139:闪存接口;150:闪存模块;151:接口;153#0~153#15:NAND闪存单元;CH#0~CH#3:通道;CE#0~CE#3:启动信号;310、330:数据平面;310#0~310#m、330#0~330#m:物理块;P#0~P#n:物理页面;410#0~410#5:SLC块;430:TLC块;S510~S560:方法步骤;610:SLC块;710#0~710#5:SLC块;730:TLC块;750:SLC块。
具体实施方式
以下将配合相关附图来说明本发明的实施例。在这些附图中,相同的标号表示相同或类似的组件或方法流程。
必须了解的是,使用于本说明书中的“包含”、“包括”等词,是用于表示存在特定的技术特征、数值、方法步骤、操作、元件和/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、操作、元件、组件,或以上的任意组合。
本发明中使用如“第一”、“第二”、“第三”等词是用来修饰权利要求中的组件,并非用来表示之间具有优先权顺序,先行关系,或者是一个组件先于另一个组件,或者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的组件。
必须了解的是,当组件描述为“连接”或“耦接”至另一组件时,可以是直接连结、或耦接至其他组件,可能出现中间组件。相反地,当组件描述为“直接连接”或“直接耦接”至另一组件时,其中不存在任何中间组件。用于描述组件之间关系的其他词语也可以类似方式解读,例如“介于”相对于“直接介于”,或者“邻接”相对于“直接邻接”等等。
参考图1。电子装置10包含主机端(Host Side)110、闪存控制器130及闪存模块150,并且闪存控制器130及闪存模块150可合称为装置端(Device Side)。电子装置10可实施于个人计算机、笔记本计算机(Laptop PC)、平板计算机、移动电话、数字相机、数字摄影机等电子产品之中。主机端110与闪存控制器130的主机接口(Host Interface)131可以通用串行总线(Universal Serial Bus,USB)、先进技术附件(Advanced TechnologyAttachment,ATA)、串行先进技术附件(Serial Advanced Technology Attachment,SATA)、快速外设组件互联(Peripheral Component Interconnect Express,PCI-E)、通用闪存存储(Universal Flash Storage,UFS)、嵌入式多媒体卡(Embedded Multi-Media Card,eMMC)等通信协议彼此通信。闪存控制器130的闪存接口(Flash Interface)139与闪存模块150可以双倍数据率(Double Data Rate,DDR)通信协议彼此通信,例如,开放NAND闪存接口(Open NAND Flash Interface,ONFI)、双倍数据率开关(DDR Toggle)或其他通信协议。闪存控制器130包含处理单元134,可使用多种方式实施,如使用通用硬件(例如,单处理器、具有并行处理能力的多处理器、图形处理器或其他具有运算能力的处理器),并且在执行软件以及/或固件指令时,提供之后描述的功能。处理单元134通过主机接口131接收主机命令,例如读取命令(Read Command)、写入命令(Write Command)、抹除命令(Erase Command)等,调度并执行这些命令。闪存控制器130还包含随机存取存储器(Random Access Memory,RAM)136,可实施为动态随机存取存储器(Dynamic Random Access Memory,DRAM)、静态随机存取存储器(Static Random Access Memory,SRAM)或上述两者的结合,用于配置空间作为数据缓冲区,存储从主机端110读取并即将写入闪存模块150的用户数据(也可称为主机数据),以及从闪存模块150读取并即将输出给主机端110的用户数据。随机存取存储器136还可存储执行过程中需要的数据,例如,变量、数据表、主机-闪存对照表(Host-to-Flash,H2F Table)、闪存-主机对照表(Flash-to-Host,F2H Table)等。闪存接口139包含NAND闪存控制器(NAND Flash Controller,NFC),提供存取闪存模块150时需要的功能,例如命令串行器(Command Sequencer)、低密度奇偶校验(Low Density Parity Check,LDPC)等。
闪存控制器130中可配置总线架构(Bus Architecture)132,用于让组件之间彼此耦接以传递数据、地址、控制信号等,这些组件包含主机接口131、处理单元134、RAM 136、直接存储存取(Direct Memory Access,DMA)控制器138、闪存接口139等。在一些实施例中,主机接口131、处理单元134、RAM 136、DMA控制器138与闪存接口139可通过单一总线彼此耦接。在另一些实施例中,闪存控制器130中可配置高速总线,用于让处理单元134、DMA控制器138与RAM 136彼此耦接,并且配置低速总线,用于让处理单元134、DMA控制器138、主机接口131与闪存接口139彼此耦接。DMA控制器138可依据处理单元134的指令,通过总线架构132在组件间迁移数据,例如,将主机接口131或闪存接口139中的特定数据缓存器(DataBuffer)的数据搬到RAM 136中的特定地址,将RAM 136中的特定地址的数据搬到主机接口131或闪存接口139中的特定数据缓存器等。
总线包含并行的物理线,连接闪存控制器130中两个以上的组件。总线是一种共享的传输介质,在任意的时间上,只能有两个装置可以使用这些线来彼此通信,用于传递数据。数据及控制信号能够在组件间分别沿数据和控制线进行双向传播,但另一方面,地址信号只能沿地址线进行单向传播。例如,当处理单元134想要读取RAM 136的特定地址上的数据时,处理单元134在地址线传送此地址给RAM 136。接着,此地址的数据会在数据线上回复给处理单元134。为了完成数据读取操作,控制信号会使用控制线进行传递。
闪存模块150提供大量的存储空间,通常是数百个千兆字节(Gigabytes,GB),甚至是多个兆兆字节(Terabytes,TB),用于存储大量的用户数据,例如高分辨率图片、影片等。闪存模块150中包含控制电路以及存储器数组,存储器数组中的存储单元可包含单层式单元(Single Level Cells,SLCs)、多层式单元(Multiple Level Cells,MLCs)、三层式单元(Triple Level Cells,TLCs)、四层式单元(Quad-Level Cells,QLCs)或上述的任意组合。处理单元134通过闪存接口139写入用户数据到闪存模块150中的指定地址(目的地址),以及从闪存模块150中的指定地址(来源地址)读取用户数据。闪存接口139使用多个电子信号来协调闪存控制器130与闪存模块150间的数据与命令传递,包含数据线(Data Line)、时钟信号(Clock Signal)与控制信号(Control Signal)。数据线可用于传递命令、地址、读出及写入的数据;控制信号线可用于传递芯片启动(Chip Enable,CE)、地址提取启动(AddressLatch Enable,ALE)、命令提取启动(Command Latch Enable,CLE)、写入启动(WriteEnable,WE)等控制信号。
当一个物理块的每个存储单元设置为单层式单元而可记录两个状态时,一个物理字符线只存储单一页面的用户数据。当一个物理块的每个存储单元设置为多层式单元而可记录四个状态时,一个物理字符线可存储两个页面的用户数据,包含最高有效比特页面(Most Significant Bit,MSB Page)和最低有效比特页面(Least Significant Bit page,LSB)。当一个物理块的每个存储单元设置为三层式单元而可记录八个状态时,一个物理字符线可存储三个页面的用户数据,包含最高有效比特页面、中间有效比特页面(CenterSignificant Bit,CSB Page)和最低有效比特页面。当一个物理块的每个存储单元设置为四层式单元而可记录十六个状态时,一个物理字符线可存储除了最高有效比特页面、中间有效比特页面和最低有效比特页面的用户数据之外,还包括存储顶部有效比特页面(TopSignificant Bit,TSB Page)的用户数据。以上所述包含SLC、MLC、TLC及QLC的存储单元的物理块可视为不同类型的物理块。
参考图2,闪存模块150中的接口151可包含四个输入输出通道(I/O channels,以下简称通道)CH#0至CH#3,每一个通道连接四个NAND闪存单元,例如,信道CH#0连接NAND闪存单元153#0、153#4、153#8及153#12。每个NAND闪存单元可封装为独立的芯片(die)。闪存接口139可通过接口151发出启动信号CE#0至CE#3中的一个来启动NAND闪存单元153#0至153#3、153#4至153#7、153#8至153#11、或153#12至153#15,接着以并行的方式从启动的NAND闪存单元读取用户数据,或者写入用户数据至启动的NAND闪存单元。
每个NAND闪存单元可包含多个数据平面(Data Planes),每个数据平面可包含多个物理块(Physical Blocks),并且每个物理块可包含多个物理页面(Physical Pages)。参考图3的实施例,NAND闪存单元153#0包含两个数据平面310及330。数据平面310包含物理块310#0至310#m,且数据平面330包含物理块330#0至330#m。每个物理块包含P#0至P#n共n+1个物理页面。NAND闪存单元、物理块和物理页面可分别使用逻辑单元号(Logical BlockNumber,LUN)、块编号(Block Number)和页面编号(Page Number)标识,而以上编号的任意组合可称为闪存模块150的物理地址。每个数据平面中的任一个物理块可设置为SLC、MLC、TLC或QLC块。
当闪存模块150的可用存储空间少于阈值时,例如1/2的物理块、1/3的物理块,闪存控制器130启动垃圾回收(Garbage Collection,GC)程序,用于释放出无效页面的存储空间。在这里需要注意的是,GC程序是一种闪存控制器130主动发动的程序,而不是受到主机端110的指挥来发动。在一些实施方式中,处理单元134可搜集多个SLC块(可称为来源块)的有效页面的用户数据,然后将搜集完成的用户数据写入TLC块(可称为目的块)的空页面。来源块被处理单元134抹除后,即可提供存储空间给未来接收到的用户数据。然而,当来源块的有效页面的数目少于一个TLC块的页面总数时,剩余未写入用户数据的空页面需要填满虚假值来关闭物理块(Close Physical Block)。参考图4,处理单元134搜集SLC块410#0至410#5中的有效页面的用户数据(以斜线的方块表示),并且将搜集到的用户数据写入TLC块430中的空页面(以斜线的方块表示)。接着,处理单元134将剩余的空页面填满虚假值(Dummy Values)。虽然虚假值是没有用的,但填满虚假值也是一种写入操作,闪存模块150同样需要花费相同于写入用户数据的时间来完成操作。
为了解决如上所述实施方式的问题,本发明实施例提出一种GC程序的管理方法,由处理单元134加载和执行相关固件或软件指令时实施。参考图5,详细步骤说明如下:
步骤S510:决定闪存模块150中待处理的来源块。处理单元134可选择多个包含无效页面的物理块,当作来源块。来源块可以是SLC、MLC、TLC、QLC块,或者以上的任意组合。
步骤S520:计算来源块中的有效页面数目。
步骤S530:判断有效页面数目是否等于或大于一个TLC块的页面总数。如果是,流程进行步骤S540的处理;否则,流程进行步骤S550的处理。
步骤S540:将来源块中i×N个有效页面的用户数据写入闪存模块150中至少一个TLC块(也称为目的块),i×N<M,i代表大于零的正整数,M代表有效页面数目,N代表一个TLC块的页面总数。处理单元134驱动闪存接口139来完成多个来源块中i×N个有效页面的读取操作,以及TLC块的写入操作。
步骤S550:将来源块中剩余的有效页面(其数目不足一个TLC块的页面总数)的用户数据写入闪存模块150中至少一个SLC块(也称为目的块)的空页面。于此需注意的是,来源块中剩余的有效页面的数目可能超过一个SLC块的页面总数。处理单元134驱动闪存接口139来完成一个或多个来源块中剩余的有效页面的读取操作,以及一个或多个SLC块的写入操作。
步骤S560:将闪存模块150中SLC块(目的块)中剩余的空页面填满虚假值。在这里需要注意的是,由于TLC块的写入操作使用粗略到精细(Foggy-to-Fine,F2F)的技术,其写入数据的步骤复杂度相较于写入SLC块为高,并且其所需要的时间通常也较长。此外,由于一个TLC块的页面总数相较于一个SLC块的页面总数为多,大约是一个SLC块的页面的三倍,TLC块的剩余空页面总数通常会比SLC块的剩余空页面总数多。
对比于图4所示的使用案例,参考图6。通过如上所述的方法,由于处理单元134将搜集到的SLC块410#0至410#5中的有效页面的用户数据(以斜线的方块表示)写入SLC块610中的空页面(以斜线的方块表示),因此,需要填写的虚假值较少。
此外,参考图7所示的另一个使用案例。处理单元134搜集SLC块710#0至710#5中有效页面的用户数据(以斜线的方块表示),将搜集到的用户数据写入TLC块730中的所有页面(以斜线的方块表示),并且将剩余的用户数据写入SLC块750中的页面(以斜线的方块表示)。接着,处理单元134将SLC块750中的剩余空页面填满虚假值)。
虽然图6和图7显示的每个物理块中的有效页面和无效页面分别是两块连续的局部,但这只是方便说明的简化表达。实际上,每个物理块中的有效页面和无效页面经常是互相交错,本发明并不因此受限。例如,一个物理块的有效页面为页面P#0~P#5、P#10~P#15、P#20~P#25和P#30~P#35。
如上所述本发明实施例的GC程序管理方法可经过适当修改后应用到QLC块的情境。步骤S530可修改为判断有效页面数目是否等于或大于一个QLC块的页面总数。步骤S540可修改为将闪存模块150的来源块中i×N个有效页面的用户数据写入闪存模块150中至少一个QLC块(也称为目的块)的空页面,i×N<M,i代表大于零的正整数,M代表有效页面数目,N代表一个QLC块的页面总数。步骤S550可修改为将来源块中剩余的有效页面(其数目不足一个QLC块的页面总数)的用户数据写入闪存模块150中至少一个SLC块(也称为目的块)的空页面。
在本发明的一个方面,处理单元134决定待处理的多个来源块,其中,每个来源块包含至少一个无效页面;将来源块中不足(或小于)一个第一类型物理块的页面总数的有效页面的用户数据写入第二类型物理块中的空页面,其中,一个第一类型物理块的页面总数高于一个第二类型物理块的页面总数;以及将第二类型物理块中剩余的空页面填满虚假值,用于避免花费太多时间和资源来填写虚假值。举例来说,一个第一类型物理块(如TLC或QLC块)的页面总数至少两倍于一个第二类型物理块(如SLC块)的页面总数。一个第一类型物理块的页面总数和一个第二类型物理块的页面总数分别指在一个第一类型物理块和一个第二类型物理块中用于存储用户数据的最大空页面总数。
所以,相较于以前的实施方式,通过步骤S530的判断和步骤S560的写入操作,可减少关闭物理块所需使用的资源和时间,提升执行垃圾回收程序的效率。
本发明所述的方法中的全部或部分步骤可以由计算机程序实现,例如存储装置中的固件转换层(Firmware Translation Layer,FTL)、计算机中特定硬件的驱动程序等。此外,也可实现于如上所示的其他类型程序。所属技术领域中的技术人员可将本发明实施例的方法撰写成程序代码,为求简明不再加以描述。依据本发明实施例方法实施的计算机程序可存储于适当的计算机可读取存储介质,例如DVD、CD-ROM、U盘、硬盘,也可置于可通过网络(例如,互联网,或其他适当介质)存取的网络服务器。
虽然图1、图2中包含了以上描述的组件,但不排除在不违反发明的精神下,使用更多其他的附加组件,以达成更佳的技术效果。此外,虽然图5的流程图采用指定的顺序来执行,但是在不违反发明精神的情况下,所属技术领域的技术人员可以在达到相同效果的前提下,修改这些步骤之间的顺序,所以,本发明并不局限于仅使用如上所述的顺序。此外,所属技术领域的技术人员也可以将若干步骤整合为一个步骤,或者是除了这些步骤外,循序或并行地执行更多步骤,本发明也不应因此而局限。
以上所述仅为本发明较佳实施例,然其并非用以限定本发明的范围,任何熟悉本项技术的人员,在不脱离本发明的精神和范围内,可在此基础上做进一步的改进和变化,因此本发明的保护范围当以本申请的权利要求书所界定的范围为准。
Claims (11)
1.一种计算机可读取存储介质,用于存储能够被闪存控制器的处理单元执行的程序代码,其特征在于,所述程序代码被所述处理单元执行时实现以下步骤:
决定待处理的多个来源块,其中,每个所述来源块包含至少一个无效页面;
计算所述来源块中的有效页面数目;
判断所述来源块中的所述有效页面数目是否等于或大于一个第一类型物理块的页面总数;
当所述来源块中的所述有效页面数目等于或大于一个所述第一类型物理块的页面总数时,将所述来源块中i×N个有效页面的用户数据写入至少一个所述第一类型物理块中的空页面,i×N<M,i代表大于零的正整数,M代表所述有效页面数目,N代表一个所述第一类型物理块的页面总数,以及将所述来源块中剩余的有效页面的用户数据写入第二类型物理块中的空页面,其中一个所述第一类型物理块的所述页面总数大于一个所述第二类型物理块的页面总数;
当所述来源块中的所述有效页面数目小于一个所述第一类型物理块的页面总数时,将所述来源块中有效页面的用户数据写入所述第二类型物理块中的空页面;以及
将所述第二类型物理块中剩余的空页面填满虚假值。
2.如权利要求1所述的计算机可读取存储介质,其特征在于,一个所述第一类型物理块的页面总数是一个所述第二类型物理块的页面总数的两倍或以上。
3.如权利要求1或2所述的计算机可读取存储介质,其特征在于,所述第一类型物理块是三层式单元块或四层式单元块,所述第二类型物理块是单层式单元块。
4.如权利要求1或2所述的计算机可读取存储介质,其特征在于,每个所述来源块是单层式单元块。
5.一种管理垃圾回收程序的方法,由闪存控制器执行,其特征在于,所述管理垃圾回收程序的方法包括:
决定待处理的多个来源块,其中,每个所述来源块包含至少一个无效页面;
计算所述来源块中的有效页面数目;
判断所述来源块中的所述有效页面数目是否等于或大于一个第一类型物理块的页面总数;
当所述来源块中的所述有效页面数目等于或大于一个所述第一类型物理块的页面总数时,将所述来源块中i×N个有效页面的用户数据写入至少一个所述第一类型物理块中的空页面,i×N<M,i代表大于零的正整数,M代表所述有效页面数目,N代表一个所述第一类型物理块的页面总数,以及将所述来源块中剩余的有效页面的用户数据写入第二类型物理块中的空页面,其中一个所述第一类型物理块的所述页面总数大于一个所述第二类型物理块的页面总数;
当所述来源块中的所述有效页面数目小于一个所述第一类型物理块的页面总数时,将所述来源块中有效页面的用户数据写入所述第二类型物理块中的空页面;以及
将所述第二类型物理块中剩余的空页面填满虚假值。
6.如权利要求5所述的管理垃圾回收程序的方法,其特征在于,一个所述第一类型物理块的页面总数是一个所述第二类型物理块的页面总数的两倍或以上。
7.如权利要求5所述的管理垃圾回收程序的方法,其特征在于,所述第一类型物理块是三层式单元块或四层式单元块,所述第二类型物理块是单层式单元块。
8.一种管理垃圾回收程序的装置,其特征在于,包括:
闪存接口,耦接闪存模块;以及
处理单元,耦接所述闪存接口,用于决定所述闪存模块中待处理的多个来源块,其中,每个所述来源块包含至少一个无效页面;计算所述来源块中的有效页面数目;判断所述来源块中的所述有效页面数目是否等于或大于一个第一类型物理块的页面总数;当所述来源块中的所述有效页面数目等于或大于一个所述第一类型物理块的页面总数时,驱动所述闪存接口将所述闪存模块中所述来源块中i×N个有效页面的用户数据写入至少一个所述第一类型物理块中的空页面,i×N<M,i代表大于零的正整数,M代表所述有效页面数目,N代表一个所述第一类型物理块的页面总数,驱动所述闪存接口将所述闪存模块的所述来源块中剩余的有效页面的用户数据写入所述闪存模块的第二类型物理块中的空页面,其中一个所述第一类型物理块的页面总数大于一个所述第二类型物理块的页面总数;当所述来源块中的有效页面数目小于一个所述第一类型物理块的页面总数时,驱动所述闪存接口将所述来源块中有效页面的用户数据写入所述第二类型物理块中的空页面;以及驱动所述闪存接口将所述第二类型物理块中剩余的空页面填满虚假值。
9.如权利要求8所述的管理垃圾回收程序的装置,其特征在于,一个所述第一类型物理块的页面总数是一个所述第二类型物理块的页面总数的两倍或以上。
10.如权利要求8所述的管理垃圾回收程序的装置,其特征在于,所述第一类型物理块是三层式单元块或四层式单元块,所述第二类型物理块是单层式单元块。
11.如权利要求8所述的管理垃圾回收程序的装置,其特征在于,每个所述来源块是单层式单元块。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010268085.7A CN113495850B (zh) | 2020-04-08 | 2020-04-08 | 管理垃圾回收程序的方法、装置及计算机可读取存储介质 |
US17/026,961 US11397676B2 (en) | 2020-04-08 | 2020-09-21 | Computer program product and method and apparatus for managing garbage collection process |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010268085.7A CN113495850B (zh) | 2020-04-08 | 2020-04-08 | 管理垃圾回收程序的方法、装置及计算机可读取存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113495850A CN113495850A (zh) | 2021-10-12 |
CN113495850B true CN113495850B (zh) | 2024-02-09 |
Family
ID=77995612
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010268085.7A Active CN113495850B (zh) | 2020-04-08 | 2020-04-08 | 管理垃圾回收程序的方法、装置及计算机可读取存储介质 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11397676B2 (zh) |
CN (1) | CN113495850B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11544182B2 (en) * | 2020-06-30 | 2023-01-03 | Micron Technology, Inc. | Smart factory reset procedure using one or more commands at least on user data and system data |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108628754A (zh) * | 2017-03-22 | 2018-10-09 | 慧荣科技股份有限公司 | 一般及垃圾回收的数据存取方法以及使用该方法的装置 |
CN108628543A (zh) * | 2017-03-22 | 2018-10-09 | 慧荣科技股份有限公司 | 垃圾回收方法以及使用该方法的装置 |
CN108733578A (zh) * | 2017-04-21 | 2018-11-02 | 慧荣科技股份有限公司 | 快闪存储器的垃圾回收断电回复方法及使用该方法的装置 |
CN110058794A (zh) * | 2018-01-19 | 2019-07-26 | 上海宝存信息科技有限公司 | 用于动态执行垃圾回收数据储存装置与操作方法 |
CN110347332A (zh) * | 2018-04-04 | 2019-10-18 | 爱思开海力士有限公司 | 用于存储器系统的垃圾收集策略及执行该垃圾收集的方法 |
CN110704330A (zh) * | 2018-07-09 | 2020-01-17 | 慧荣科技股份有限公司 | 数据存取控制装置及方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4280055B2 (ja) | 2001-11-28 | 2009-06-17 | 株式会社Access | メモリ制御方法および装置 |
TWI385527B (zh) * | 2009-02-10 | 2013-02-11 | Phison Electronics Corp | Mlc nand型快閃記憶體儲存系統及其控制器與存取方法 |
WO2012056491A1 (en) | 2010-10-26 | 2012-05-03 | Hitachi, Ltd. | Storage apparatus and data control method |
CN102511044B (zh) | 2011-09-06 | 2013-10-02 | 华为技术有限公司 | 一种数据删除方法及装置 |
US10521339B2 (en) | 2013-02-28 | 2019-12-31 | Technion Research And Development Foundation Ltd. | Retired page utilization (RPU) for improved write capacity of solid state drives |
US9798657B2 (en) * | 2014-10-15 | 2017-10-24 | Samsung Electronics Co., Ltd. | Data storage device including nonvolatile memory device and operating method thereof |
US9996268B2 (en) * | 2015-12-18 | 2018-06-12 | Toshiba Memory Corporation | Memory system and control method of the same |
JP6855704B2 (ja) * | 2016-08-22 | 2021-04-07 | 富士通株式会社 | ストレージシステム、ストレージ制御装置及びデータ格納方法 |
TWI653538B (zh) | 2017-11-13 | 2019-03-11 | 慧榮科技股份有限公司 | 資料儲存裝置與記憶體裝置之資料處理方法 |
US10956317B2 (en) * | 2019-02-11 | 2021-03-23 | International Business Machines Corporation | Garbage collection in non-volatile memory that fully programs dependent layers in a target block |
-
2020
- 2020-04-08 CN CN202010268085.7A patent/CN113495850B/zh active Active
- 2020-09-21 US US17/026,961 patent/US11397676B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108628754A (zh) * | 2017-03-22 | 2018-10-09 | 慧荣科技股份有限公司 | 一般及垃圾回收的数据存取方法以及使用该方法的装置 |
CN108628543A (zh) * | 2017-03-22 | 2018-10-09 | 慧荣科技股份有限公司 | 垃圾回收方法以及使用该方法的装置 |
CN108733578A (zh) * | 2017-04-21 | 2018-11-02 | 慧荣科技股份有限公司 | 快闪存储器的垃圾回收断电回复方法及使用该方法的装置 |
CN110058794A (zh) * | 2018-01-19 | 2019-07-26 | 上海宝存信息科技有限公司 | 用于动态执行垃圾回收数据储存装置与操作方法 |
CN110347332A (zh) * | 2018-04-04 | 2019-10-18 | 爱思开海力士有限公司 | 用于存储器系统的垃圾收集策略及执行该垃圾收集的方法 |
CN110704330A (zh) * | 2018-07-09 | 2020-01-17 | 慧荣科技股份有限公司 | 数据存取控制装置及方法 |
Non-Patent Citations (1)
Title |
---|
"一种SSD存储系统中的先应式垃圾回收算法";屠雪真等;《 电信科学》(第5期);第86-96页 * |
Also Published As
Publication number | Publication date |
---|---|
US11397676B2 (en) | 2022-07-26 |
CN113495850A (zh) | 2021-10-12 |
US20210318954A1 (en) | 2021-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107844431B (zh) | 映射表更新方法、存储器控制电路单元与存储器存储装置 | |
TWI409633B (zh) | 快閃記憶體儲存裝置、其控制器與資料寫入方法 | |
US8812784B2 (en) | Command executing method, memory controller and memory storage apparatus | |
KR102691851B1 (ko) | 불휘발성 메모리 장치, 이를 포함하는 데이터 저장 장치 및 그 동작 방법 | |
CN107908571B (zh) | 一种数据写入方法、闪存装置及存储设备 | |
KR20170053278A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
TWI698749B (zh) | 資料儲存裝置與資料處理方法 | |
KR102595233B1 (ko) | 데이터 처리 시스템 및 그것의 동작 방법 | |
CN111796759B (zh) | 多平面上的片段数据读取的计算机可读取存储介质及方法 | |
KR20210144249A (ko) | 저장 장치 및 이의 동작 방법 | |
KR20200114212A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US20230266884A1 (en) | Operating method for storage controller and storage system including same | |
KR102544162B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
KR101081948B1 (ko) | 불휘발성 메모리 장치 및 그것의 데이터 저장 방법 | |
CN113448487B (zh) | 写入闪存管理表的计算机可读取存储介质、方法及装置 | |
KR20200114086A (ko) | 컨트롤러, 메모리 시스템 및 그것의 동작 방법 | |
KR102434840B1 (ko) | 데이터 저장 장치 | |
CN113495850B (zh) | 管理垃圾回收程序的方法、装置及计算机可读取存储介质 | |
CN112230849A (zh) | 存储器控制方法、存储器存储装置及存储器控制器 | |
CN114327240A (zh) | 计算机可读存储介质、闪存存储器的数据存储方法及装置 | |
KR102425470B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
TWI749490B (zh) | 寫入閃存管理表的電腦程式產品及方法及裝置 | |
TWI740446B (zh) | 管理垃圾回收程序的電腦程式產品及方法及裝置 | |
CN114625307A (zh) | 计算机可读存储介质、闪存芯片的数据读取方法及装置 | |
US20200394134A1 (en) | Data storage device and operating method thereof |
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 |