一种存储器件及其垃圾回收的控制方法转让专利

申请号 : CN202310889909.6

文献号 : CN116610597B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王守磊

申请人 : 合肥康芯威存储技术有限公司

摘要 :

本发明涉及存储器件领域,特别是涉及一种存储器件及其垃圾回收的控制方法。存储器件,包括:快闪存储器,包括多个物理区块,用以存放存储数据;以及控制器,电性连接于快闪存储器,控制器用以接收主机的存储数据;在快闪存储器上,控制器选取每个芯片中固定数量的逻辑单元处于可用状态,并设定垃圾回收处理的启动时间,启动时间满足:启动时间=初始时间*(固定数量/全部数量)/写入速度因子。本发明保证垃圾回收启动后的预留空间和使用寿命稳定的基础上,节省了数据传输时间和固件资源。

权利要求 :

1.一种存储器件,其特征在于,包括:

快闪存储器,包括多个物理区块,用以存放存储数据;以及

控制器,电性连接于所述快闪存储器,所述控制器用以接收主机的所述存储数据;

在所述快闪存储器上,所述控制器选取每个芯片中固定数量的逻辑单元处于可用状态,并设定垃圾回收处理的启动时间,所述启动时间满足:启动时间=初始时间*(固定数量/全部数量)/写入速度因子;

其中,所述全部数量表征每个芯片上所有逻辑单元的数量,所述初始时间表征每个芯片上所述全部数量的逻辑单元处于可用状态时,对所述快闪存储器进行垃圾回收处理的时间,所述写入速度因子表征所述控制器向所述快闪存储器写入数据的快慢程度;

所述控制器控制垃圾回收处理的启动时间,所述启动时间满足:启动时间=全部容量*垃圾回收比例阈值*(固定数量/全部数量)/(写入速度因子*写入速度);

所述全部容量表征每个芯片上的所述全部数量的逻辑单元处于可用状态时,所述快闪存储器的存储容量,所述写入速度表征所述控制器向所述快闪存储器写入所述存储数据的速度。

2.根据权利要求1所述的存储器件,其特征在于,所述多个物理区块包括闲置区块和使用区块,所述控制器设定每消耗启动数量的所述闲置区块时,调整一次垃圾回收处理的速度值,所述启动数量满足:启动数量=初始数量;

在所述快闪存储器上,每个芯片上的所述全部数量的逻辑单元处于可用状态时,将垃圾回收处理的速度值进行调整所消耗所述闲置区块的数量,记为所述初始数量;

其中,垃圾回收启动后,垃圾回收和主机写入需要共享所述快闪存储器的写入总带宽,将此时主机的写入速度定义为速度值。

3.根据权利要求2所述的存储器件,其特征在于,所述控制器设定所述快闪存储器的垃圾回收处理的速度挡,所述垃圾回收处理的速度挡满足:垃圾回收处理的速度挡=(用户区块数量‑用户区块数量*垃圾回收比例阈值)/初始数量;

在所述使用区块数量与所述用户区块数量的比值达到上限值,将所述上限值表征为所述垃圾回收比例阈值,所述用户区块数量表征所述快闪存储器中所有用户可操作的物理区块的数量;

其中,垃圾回收和主机写入需要共用所述快闪存储器的写入总带宽,改变主机写入速度和垃圾回收速度的不同比值,以调节垃圾回收速度,将每一个速度值定义为一个速度挡。

4.根据权利要求1所述的存储器件,其特征在于,所述控制器控制所述快闪存储器上的预留空间,所述预留空间满足:预留空间=(全部容量‑用户容量)/用户容量;

在所述快闪存储器上,所述用户容量表征用户可操作的物理区块对应的容量,所述预留空间表征用户不可操作的物理区块对应的容量与所述用户容量之间的比值。

5.一种存储器件垃圾回收的控制方法,其特征在于,包括:通过快闪存储器上的多个物理区块,存放存储数据;

通过控制器电性连接于所述快闪存储器;

通过所述控制器接收主机写入的所述存储数据;以及

在所述快闪存储器上,通过所述控制器,选取每个芯片中固定数量的逻辑单元处于可用状态,并设定垃圾回收处理的启动时间;

所述启动时间满足:启动时间=初始时间*(固定数量/全部数量)/写入速度因子;

其中,所述全部数量表征每个芯片上所有逻辑单元的数量,所述初始时间表征每个芯片上所述全部数量的逻辑单元处于可用状态时,对所述快闪存储器进行垃圾回收处理的时间,所述写入速度因子表征所述控制器向所述快闪存储器写入数据的快慢程度;

所述通过所述控制器,设定所述快闪存储器的垃圾回收处理的速度挡的步骤之后,包括:通过所述控制器控制垃圾回收处理的启动时间;

所述启动时间满足:启动时间=全部容量*垃圾回收比例阈值*(固定数量/全部数量)/(写入速度因子*写入速度);

其中,所述全部容量表征每个芯片上的所述全部数量的逻辑单元处于可用状态时,所述快闪存储器的存储容量,所述写入速度表征所述控制器向所述快闪存储器写入所述存储数据的速度。

6.根据权利要求5所述的存储器件垃圾回收的控制方法,其特征在于,所述选取每个芯片中固定数量的逻辑单元处于可用状态的步骤之后,包括:通过所述控制器,获取所述快闪存储器中闲置区块的数量和使用区块的数量;

通过所述控制器,设定每消耗启动数量的所述闲置区块时,调整一次垃圾回收处理的速度值;

所述启动数量满足:启动数量=初始数量;

其中,在所述快闪存储器上,每个芯片上的所述全部数量的逻辑单元处于可用状态时,将垃圾回收处理的速度值进行调整所消耗所述闲置区块的数量,记为所述初始数量;

其中,垃圾回收启动后,垃圾回收和主机写入需要共享所述快闪存储器的写入总带宽,将此时主机的写入速度定义为速度值。

7.根据权利要求6所述的存储器件垃圾回收的控制方法,其特征在于,所述通过所述控制器,设定每消耗启动数量的所述闲置区块时,调整一次垃圾回收处理的速度值的步骤之后,包括:通过所述控制器,设定所述快闪存储器的垃圾回收处理的速度挡;

所述垃圾回收处理的速度挡满足:垃圾回收处理的速度挡=(用户区块数量‑用户区块数量*垃圾回收比例阈值)/初始数量;

其中,在所述使用区块数量与所述用户区块数量的比值达到上限值,将所述上限值表征为所述垃圾回收比例阈值,所述用户区块数量表征所述快闪存储器中所有用户可操作的物理区块的数量;

其中,垃圾回收和主机写入需要共用所述快闪存储器的写入总带宽,改变主机写入速度和垃圾回收速度的不同比值,以调节垃圾回收速度,将每一个速度值定义为一个速度挡。

8.根据权利要求5所述的存储器件垃圾回收的控制方法,其特征在于,所述在所述快闪存储器上,通过所述控制器,选取每个芯片中固定数量的逻辑单元处于可用状态,并设定垃圾回收处理的启动时间的步骤之后,包括:通过所述控制器控制所述快闪存储器上的预留空间;

所述预留空间满足:预留空间=(全部容量‑用户容量)/用户容量;

其中,在所述快闪存储器上,所述用户容量表征用户可操作的物理区块对应的容量,所述预留空间表征用户不可操作的物理区块对应的容量与所述用户容量之间的比值。

说明书 :

一种存储器件及其垃圾回收的控制方法

技术领域

[0001] 本发明涉及存储器件领域,特别是涉及一种存储器件及其垃圾回收的控制方法。

背景技术

[0002] 快闪存储器在使用过程中,一些区块上会同时存在有效数据和无效数据,快闪存储器的存储空间就会逐渐被使用完。通过垃圾回收模块将有效数据进行集中,从而使得某些区块上只存放无效数据。可对存放无效数据的区块进行擦除数据处理,经过擦除数据处理后的区块就可以继续写入新的数据。在验证快闪存储器垃圾回收相关问题时,如果预留空间发生了改变,将导致垃圾回收处理的操作逻辑发生改变,也会影响快闪存储器的速度和写操作。因此存在待改进之处。

发明内容

[0003] 鉴于以上所述现有技术的缺点,本发明的目的在于提供一种存储器件及其垃圾回收的控制方法,用于解决现有存储器件垃圾回收处理的操作逻辑发生改变的问题。
[0004] 为实现上述目的及其他相关目的,本发明提供一种存储器件,包括:
[0005] 快闪存储器,包括多个物理区块,用以存放存储数据;以及
[0006] 控制器,电性连接于所述快闪存储器,所述控制器用以接收主机的所述存储数据;
[0007] 在所述快闪存储器上,所述控制器选取每个芯片中固定数量的逻辑单元处于可用状态,并设定垃圾回收处理的启动时间,所述启动时间满足:
[0008] 启动时间=初始时间*(固定数量/全部数量)/写入速度因子;
[0009] 其中,所述全部数量表征每个芯片上所有逻辑单元的数量,所述初始时间表征每个芯片上所述全部数量的逻辑单元处于可用状态时,对所述快闪存储器进行垃圾回收处理的时间,所述写入速度因子表征所述控制器向所述快闪存储器写入数据的快慢程度。
[0010] 在本发明的一个实施例中,所述多个物理区块包括闲置区块和使用区块,所述控制器设定每消耗启动数量的所述闲置区块时,调整一次垃圾回收处理的速度值,所述启动数量满足:
[0011] 启动数量=初始数量;
[0012] 在所述快闪存储器上,每个芯片上的所述全部数量的逻辑单元处于可用状态时,将垃圾回收处理的速度值进行调整所消耗所述闲置区块的数量,记为所述初始数量。
[0013] 在本发明的一个实施例中,所述控制器设定所述快闪存储器的垃圾回收处理的速度挡,所述垃圾回收处理的速度挡满足:
[0014] 垃圾回收处理的速度挡=(用户区块数量‑用户区块数量*垃圾回收比例阈值)/初始数量;
[0015] 在所述使用区块数量与所述用户区块数量的比值达到上限值,将所述上限值表征为所述垃圾回收比例阈值,所述用户区块数量表征所述快闪存储器中所有用户可操作的物理区块的数量。
[0016] 在本发明的一个实施例中,所述控制器控制垃圾回收处理的启动时间,所述启动时间满足:
[0017] 启动时间=全部容量*垃圾回收比例阈值*(固定数量/全部数量)/(写入速度因子*写入速度);
[0018] 所述全部容量表征每个芯片上的所述全部数量的逻辑单元处于可用状态时,所述快闪存储器的存储容量,所述写入速度表征所述控制器向所述快闪存储器写入所述存储数据的速度。
[0019] 在本发明的一个实施例中,所述控制器控制所述快闪存储器上的预留空间,所述预留空间满足:
[0020] 预留空间=(全部容量‑用户容量)/用户容量;
[0021] 在所述快闪存储器上,所述用户容量表征用户可操作的物理区块对应的容量,所述预留空间表征用户不可操作的物理区块对应的容量与所述用户容量之间的比值。
[0022] 本发明还提出一种存储器件垃圾回收的控制方法,包括:
[0023] 通过快闪存储器上的多个物理区块,存放存储数据;
[0024] 通过控制器电性连接于所述快闪存储器;
[0025] 通过所述控制器接收主机写入的所述存储数据;以及
[0026] 在所述快闪存储器上,通过所述控制器,选取每个芯片中固定数量的逻辑单元处于可用状态,并设定垃圾回收处理的启动时间;
[0027] 所述启动时间满足:启动时间=初始时间*(固定数量/全部数量)/写入速度因子;
[0028] 其中,所述全部数量表征每个芯片上所有逻辑单元的数量,所述初始时间表征每个芯片上所述全部数量的逻辑单元处于可用状态时,对所述快闪存储器进行垃圾回收处理的时间,所述写入速度因子表征所述控制器向所述快闪存储器写入数据的快慢程度。
[0029] 在本发明的一个实施例中,所述选取每个芯片中固定数量的逻辑单元处于可用状态的步骤之后,包括:
[0030] 通过所述控制器,获取所述快闪存储器中闲置区块的数量和使用区块的数量;
[0031] 通过所述控制器,设定每消耗启动数量的所述闲置区块时,调整一次垃圾回收处理的速度值;
[0032] 所述启动数量满足:启动数量=初始数量;
[0033] 其中,在所述快闪存储器上,每个芯片上的所述全部数量的逻辑单元处于可用状态时,将垃圾回收处理的速度值进行调整所消耗所述闲置区块的数量,记为所述初始数量。
[0034] 在本发明的一个实施例中,所述通过所述控制器,设定每消耗启动数量的所述闲置区块时,调整一次垃圾回收处理的速度值的步骤之后,包括:
[0035] 通过所述控制器,设定所述快闪存储器的垃圾回收处理的速度挡;
[0036] 所述垃圾回收处理的速度挡满足:垃圾回收处理的速度挡=(用户区块数量‑用户区块数量*垃圾回收比例阈值)/初始数量;
[0037] 其中,在所述使用区块数量与所述用户区块数量的比值达到上限值,将所述上限值表征为所述垃圾回收比例阈值,所述用户区块数量表征所述快闪存储器中所有用户可操作的物理区块的数量。
[0038] 在本发明的一个实施例中,所述通过所述控制器,设定所述快闪存储器的垃圾回收处理的速度挡的步骤之后,包括:
[0039] 通过所述控制器控制垃圾回收处理的启动时间;
[0040] 所述启动时间满足:启动时间=全部容量*垃圾回收比例阈值*(固定数量/全部数量)/(写入速度因子*写入速度);
[0041] 其中,所述全部容量表征每个芯片上的所述全部数量的逻辑单元处于可用状态时,所述快闪存储器的存储容量,所述写入速度表征所述控制器向所述快闪存储器写入所述存储数据的速度。
[0042] 在本发明的一个实施例中,所述在所述快闪存储器上,通过所述控制器,选取每个芯片中固定数量的逻辑单元处于可用状态,并设定垃圾回收处理的启动时间的步骤之后,包括:
[0043] 通过所述控制器控制所述快闪存储器上的预留空间;
[0044] 所述预留空间满足:预留空间=(全部容量‑用户容量)/用户容量;
[0045] 其中,在所述快闪存储器上,所述用户容量表征用户可操作的物理区块对应的容量,所述预留空间表征用户不可操作的物理区块对应的容量与所述用户容量之间的比值。
[0046] 如上所述,本发明的一种存储器件及其垃圾回收的控制方法,具有以下有益效果:本发明保证垃圾回收启动后的预留空间和使用性能稳定的基础上,节省了数据传输时间和固件资源。

附图说明

[0047] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0048] 图1显示为本发明一种存储器件的结构示意图。
[0049] 图2显示为本发明一种存储器件中逻辑单元的结构示意图。
[0050] 图3显示为本发明一种存储器件中超级区块的结构示意图。
[0051] 图4显示为本发明一种存储器件垃圾回收的控制方法的步骤示意图。
[0052] 图5显示为本发明图4中步骤S50的一步骤示意图。
[0053] 图6显示为本发明图4中步骤S50的又一步骤示意图。
[0054] 元件标号说明
[0055] 100、主机;200、存储器件;300、控制器;400、快闪存储器;
[0056] 310、总线接口;320、处理单元;330、指令缓冲单元;340、静态随机存储单元;350、快闪存储器接口;360、缓冲存储单元;370、动态随机存储单元;
[0057] 410、芯片;420、逻辑单元;430、面;440、物理区块;450、页;460、页寄存器;470、高速缓存寄存器;480、超级区块。

具体实施方式

[0058] 以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其它优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。还应当理解,本发明实施例中使用的术语是为了描述特定的具体实施方案,而不是为了限制本发明的保护范围。下列实施例中未注明具体条件的试验方法,通常按照常规条件,或者按照各制造商所建议的条件。
[0059] 须知,本说明书所附图式所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容所能涵盖的范围内。同时,本说明书中所引用的如“上”、“下”、“左”、“右”、“中间”及“一”等的用语,亦仅为便于叙述的明了,而非用以限定本发明可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当亦视为本发明可实施的范畴。
[0060] 请参阅图1至图5所示,在一些实施例中,本发明提供一种存储器件200及其垃圾回收的控制方法,可应用于SSD(Solid State Disk或Solid State Drive,固态硬盘)领域。例如可应用于固态硬盘的NAND flash(快闪存储器)中,以实现对快闪存储器400中多个区块(block)440的垃圾回收处理进行控制。本发明可使得快闪存储器400的垃圾回收提早进行。本发明在不影响垃圾回收启动后的使用寿命和固件逻辑的前提下,完全还原了原始固态硬盘等存储器件产品的固件逻辑行为,从而节省了大量的数据传输时间和固件资源。下面通过具体的实施例进行详细的描述。
[0061] 请参阅图1和图2所示,在本发明的一些实施例中,本发明提出一种存储器件200,可包括控制器300和快闪存储器400。控制器300可与主机100电性连接,控制器300用以接收主机100写入的存储数据。控制器300可与快闪存储器400电性连接,控制器300用以将存储数据传输至快闪存储器400上。快闪存储器400上可包括多个物理区块440,多个物理区块440可用以存放存储数据。一个物理区块440上可包括多个页(page)450。物理区块440在写入数据(program)前需要进行擦除数据(erase)处理,写入数据操作以页450为最小单位,擦除数据操作以物理区块440为最小单位。当物理区块440上存在有效数据时,无法对该物理区块440进行擦除数据处理,即无效数据所在的物理地址,无法用以写入新的存储数据。多个物理区块440可包括使用区块(data block)和闲置区块(free block)。当使用区块的数量占据多个物理区块440的总数量达到垃圾回收处理条件时,触发快闪存储器400的垃圾回收处理操作。在快闪存储器400的垃圾回收处理操作时,使用区块数量与用户区块数量的比值达到上限值,将此上限值表征为垃圾回收比例阈值。用户区块数量表征快闪存储器400中所有用户可操作的物理区块440的数量。
[0062] 请参阅图1和图2所示,在本发明的一些实施例中,在快闪存储器400上,控制器300可选取每个芯片410中固定数量的逻辑单元420处于可用状态,每个芯片410上剩余数量的逻辑单元420处于不可用状态。控制器300可设定垃圾回收处理的启动时间,启动时间满足:启动时间=初始时间*(固定数量/全部数量)/写入速度因子。其中,全部数量表征每个芯片
410上所有逻辑单元420的数量,初始时间表征每个芯片410上全部数量的逻辑单元420处于可用状态时,对快闪存储器400进行垃圾回收处理的时间。写入速度因子表征控制器300向快闪存储器400写入数据的快慢程度。当每个芯片410中全部数量的逻辑单元420处于可用状态时,控制器300向快闪存储器400写入数据较快,写入速度因子较大。当每个芯片410中固定数量的逻辑单元420处于可用状态时,控制器300向快闪存储器400写入数据较慢,写入速度因子较小。即通过控制器300的设定后,快闪存储器400垃圾回收处理的启动时间与初始时间的比例为(固定数量/全部数量)/写入速度因子,以使得垃圾回收处理提前进行。可在快闪存储器400对垃圾回收启动后的速度验证、寿命验证等方面,节省了大量数据传输时间和固件资源。
[0063] 请参阅图1和图2所示,在本发明的一些实施例中,多个物理区块440可包括闲置区块(free block)和使用区块(data block)。闲置区块表示有效数据为零的物理区块440,对该物理区块440可进行擦除数据处理。使用区块表示有效数据不为零的物理区块440,即该物理区块440上已写入存储数据。控制器300可设定每消耗启动数量的闲置区块时,调整一次垃圾回收处理的速度值。启动数量满足:启动数量=初始数量。其中,在快闪存储器400上,每个芯片410上的全部数量的逻辑单元420处于可用状态时,将垃圾回收处理的速度值进行调整所消耗闲置区块的数量,记为初始数量。
[0064] 请参阅图1和图2所示,在本发明的一些实施例中,控制器300还可设定快闪存储器400的垃圾回收处理的速度挡,垃圾回收处理的速度挡定义为:关于对快闪存储器400关于垃圾回收处理的速度值进行调整的次数。垃圾回收处理的速度挡满足:垃圾回收处理的速度挡=(用户区块数量‑用户区块数量*垃圾回收比例阈值)/初始数量。其中,在使用区块数量与用户区块数量的比值达到上限值,将上限值表征为垃圾回收比例阈值。用户区块数量表征快闪存储器400中所有用户可操作的物理区块440的数量。在每个芯片410中固定数量的逻辑单元420处于可用状态和每个芯片410上全部数量的逻辑单元420处于可用状态的状况下,两种状况下对应的垃圾回收处理的速度挡相同。本发明不影响垃圾回收启动后的使用寿命和固件逻辑,完全还原了原始固态硬盘等存储器件产品的固件逻辑行为,从而节省了大量的数据传输时间和固件资源。
[0065] 请参阅图1和图2所示,在本发明的一些实施例中,用写入速度表示控制器300向快闪存储器400写入存储数据的速度。控制器300可控制垃圾回收处理的启动时间,启动时间满足:启动时间=全部容量*垃圾回收比例阈值*(固定数量/全部数量)/(写入速度因子*写入速度)。其中,全部容量表征每个芯片410上的全部数量的逻辑单元420处于可用状态时,快闪存储器400的存储容量。控制器300可设定快闪存储器400的使用容量,使用容量满足:使用容量=全部容量*固定数量/全部数量。在每个芯片410中固定数量的逻辑单元420处于可用状态,每个芯片410剩余数量的逻辑单元420处于不可用状态的前提下,快闪存储器400的使用容量也应当予以确定。本发明可使得快闪存储器400的垃圾回收提早进行,减少了快闪存储器400的研发消耗和测试消耗。本发明还减小了硬件负担,增加了存储器件的使用寿命。
[0066] 请参阅图1和图2所示,在本发明的一些实施例中,控制器300可设定快闪存储器400的预留空间,预留空间满足:预留空间=(全部容量‑用户容量)/用户容量=预留容量/用户容量。在快闪存储器400上,用户容量表征用户可操作的物理区块440对应的容量,预留空间表征用户不可操作的物理区块440对应的容量与用户容量之间的比值。在每个芯片410中固定数量的逻辑单元420处于可用状态和每个芯片410上全部数量的逻辑单元420处于可用状态的状况下,两种状况下对应的预留空间相同。本发明不影响垃圾回收启动后的使用寿命和固件逻辑,完全还原了原始固态硬盘等存储器件产品的固件逻辑行为,从而节省了大量的数据传输时间和固件资源。
[0067] 请参阅图1和图2所示,在本发明的一些实施例中,控制器300可包括总线接口310、处理单元320、指令缓冲单元330、静态随机存储单元340、快闪存储器接口350、缓冲存储单元350和动态随机存储单元360。其中,总线接口310实现主机100和控制器300之间电性连接。处理单元320是控制器300的运算和控制核心,是信息处理、程序运行的最终执行单元。静态随机存储单元340、缓冲存储单元360和动态随机存储单元370是控制器300中数据的存储单元。快闪存储器接口350实现控制器300和快闪存储器400之间电性连接。
[0068] 请参阅图1和图2所示,在本发明的一些实施例中,快闪存储器400可为封装好的NAND快闪存储器(package)。一个快闪存储器400可包括多个芯片(target)410,一个芯片410可包括多个逻辑单元(lun或die)420。一个芯片410中的一个或者多个逻辑单元420共享一组数据信号。每个芯片410都由一个ce(chip enable,片选信号)引脚控制,即一个芯片
410上的多个逻辑单元420共享一个片选信号。逻辑单元420是执行读写命令的最小单元,不同的逻辑单元420可执行不同的命令序列。一个逻辑单元420可包括多个面(plane)430,每个面430具有独立的页寄存器(page register)460和高速缓存寄存器(cache register)
470,以优化快闪存储器400的访问速度。页寄存器460用以与快闪存储器400阵列之间传输数据。高速缓存寄存器470用以与主机100之间传输数据。一个面430可包括多个物理区块(block)440,物理区块440是擦除数据的最小单位。一个物理区块440可包括多个页(page)
450,页450是写入数据的最小单位。
[0069] 请参阅图3所示,在本发明的一些实施例中,可将不同逻辑单元420对应的同一序号的物理区块440定义为超级区块(super block)480,即在图3中将不同逻辑单元420对应同一行的物理区块440定位为超级区块480,将每个方格定义为物理区块(physical block)440。当每个芯片410中全部数量的逻辑单元420处于可用状态时,控制器300向快闪存储器
400写入数据较快,写入速度因子较大。当每个芯片410中固定数量的逻辑单元420处于可用状态时,控制器300向快闪存储器400写入数据较慢,写入速度因子较小。
[0070] 请参阅图4所示,在本发明的一些实施例中,本发明还提出一种存储器件垃圾回收的控制方法,可包括以下的步骤。
[0071] 步骤S10、通过快闪存储器上的多个物理区块,存放存储数据。
[0072] 步骤S20、通过控制器电性连接于快闪存储器。
[0073] 步骤S30、通过控制器接收主机写入的存储数据。
[0074] 步骤S40、在快闪存储器上,通过控制器,选取每个芯片中固定数量的逻辑单元处于可用状态。
[0075] 步骤S50、在快闪存储器上,通过控制器,设定垃圾回收处理的启动时间。启动时间满足:启动时间=初始时间*(固定数量/全部数量)/写入速度因子。其中,全部数量表征每个芯片上所有逻辑单元的数量,初始时间表征每个芯片上全部数量的逻辑单元处于可用状态时,对快闪存储器进行垃圾回收处理的时间,写入速度因子表征控制器向快闪存储器写入数据的快慢程度。
[0076] 步骤S10、通过快闪存储器上的多个物理区块,存放存储数据。
[0077] 在一些实施例中,快闪存储器400上可包括多个物理区块440,多个物理区块440可用以存放存储数据。一个物理区块440上可包括多个页(page)450。物理区块440在写入数据(program)前需要进行擦除数据(erase)处理,写入数据操作以页450为最小单位,擦除数据操作以物理区块440为最小单位。
[0078] 步骤S20、通过控制器电性连接于快闪存储器。
[0079] 在一些实施例中,控制器300可与快闪存储器400电性连接,控制器300用以将存储数据传输至快闪存储器400上。当物理区块440上存在有效数据时,无法对该物理区块440进行擦除数据处理,即无效数据所在的物理地址,无法用以写入新的存储数据。多个物理区块440可包括使用区块(data block)和闲置区块(free block)。当使用区块的数量占据多个物理区块440的总数量达到垃圾回收处理条件时,触发快闪存储器400的垃圾回收处理操作。在快闪存储器400的垃圾回收处理操作时,使用区块数量与用户区块数量的比值达到上限值,将此上限值表征为垃圾回收比例阈值。用户区块数量表征快闪存储器400中所有用户可操作的物理区块440的数量。
[0080] 步骤S30、通过控制器接收主机写入的存储数据。
[0081] 在一些实施例中,控制器300可与主机100电性连接,控制器300用以接收主机100写入的存储数据。
[0082] 步骤S40、在快闪存储器上,通过控制器,选取每个芯片中固定数量的逻辑单元处于可用状态。
[0083] 在一些实施例中,控制器300可选取每个芯片410中固定数量的逻辑单元420处于可用状态,每个芯片410中剩余数量的逻辑单元420处于不可用状态。每个芯片410中固定数量的逻辑单元420处于可用状态的前提下,快闪存储器400的使用容量也进行了确定。
[0084] 步骤S50、在快闪存储器上,通过控制器,设定垃圾回收处理的启动时间。启动时间满足:启动时间=初始时间*(固定数量/全部数量)/写入速度因子。其中,全部数量表征每个芯片上所有逻辑单元的数量,初始时间表征每个芯片上全部数量的逻辑单元处于可用状态时,对快闪存储器进行垃圾回收处理的时间,写入速度因子表征控制器向快闪存储器写入数据的快慢程度。
[0085] 在一些实施例中,控制器300可设定垃圾回收处理的启动时间,启动时间满足:启动时间=初始时间*(固定数量/全部数量)。其中,全部数量表征每个芯片410上所有逻辑单元420的数量,初始时间表征每个芯片410上全部数量的逻辑单元420处于可用状态时,对快闪存储器400进行垃圾回收处理的时间。即通过控制器300的设定后,快闪存储器400垃圾回收处理的启动时间与初始时间的比例为(固定数量/全部数量)/写入速度因子,以使得垃圾回收处理提前进行。可在快闪存储器400对垃圾回收启动后的速度验证、寿命验证等方面,节省了大量数据传输时间和固件资源。
[0086] 请参阅图5所示,在本发明的一些实施例中,步骤S50可包括步骤S510、步骤S520和步骤S530。其中,步骤S510可表示为通过控制器300,获取多个物理区块440中的闲置区块的数量和使用区块的数量。步骤S520可表示为通过控制器300,设定每消耗启动数量的闲置区块时,调整一次垃圾回收处理的速度值。启动数量满足:启动数量=初始数量。在快闪存储器400中每个芯片410中全部逻辑单元420处于可用状态时,将垃圾回收处理的速度值进行调整所消耗闲置区块的数量,记为初始数量。步骤S530可表示为通过控制器300,设定快闪存储器400的垃圾回收处理的速度挡。垃圾回收处理的速度挡满足:垃圾回收处理的速度挡=(用户区块数量‑用户区块数量*垃圾回收比例阈值)/初始数量。在使用区块数量与用户区块数量的比值达到上限值,将上限值表征为垃圾回收比例阈值。用户区块数量表征快闪存储器中400所有用户可操作的物理区块440的数量。
[0087] 请参阅图6所示,在本发明的一些实施例中,步骤S50还可包括步骤S540和步骤S550。步骤S540可表示为通过控制器300控制垃圾回收处理的启动时间,启动时间满足:启动时间=全部容量*垃圾回收比例阈值*(固定数量/全部数量)/(写入速度因子*写入速度)。全部容量表征每个芯片410上的全部数量的逻辑单元420处于可用状态时,快闪存储器400的存储容量。写入速度因子表征控制器300向快闪存储器400写入数据的快慢程度。写入速度表征控制器300向快闪存储器400写入存储数据的速度。步骤S550可表示为通过控制器
300设定快闪存储器400的预留空间,预留空间满足:预留空间=(全部容量‑用户容量)/用户容量。在快闪存储器400上,用户容量表征用户可操作的物理区块440对应的容量,预留空间表征用户不可操作的物理区块440对应的容量与用户容量之间的比值。
[0088] 请参阅图1、图2、图3、图4、图5和图6所示,在本发明的一些实施例中,例如存储器件200为SSD(固态硬盘),其存储空间是A TB(Tera byte,太字节),对应B个用户区块(block)和D个预留区块。则OP(Over Provisioning,预留空间)=(全部容量‑用户容量)/用户容量=预留容量/用户容量=D/B。当存储器件200上逻辑单元420的数量为N个时,每个逻辑单元420包括(B+D)/N个物理区块440。每个超级区块480的容量为A/B TB,每个物理区块440的容量为A/B/N TB。当每个芯片410上的全部数量的逻辑单元420处于可用状态时,控制器300设置使用区块(data block)达到B/M个超级区块480时启动垃圾回收处理,即存储器件
200写入A/M TB的存储空间时开始启动垃圾回收处理。在使用区块数量与用户区块数量的比值达到上限值,将该上限值表征为垃圾回收比例阈值1/M。即使用区块数量与用户区块数量的比值达到垃圾回收比例阈值1/M时,触发垃圾回收处理。控制器300可设定每消耗X个闲置区块(free block)时,既对应的每增加X个使用区块时,调整一次垃圾回收处理的速度。
因此,垃圾回收处理启动后会有(B‑B/M)/X个速度挡。假设存储器件200的写入速度为Y TB/s,那么存储器件200在写入A/M TB的存储空间,垃圾回收处理需要A/M/Y秒。
[0089] 请参阅图1、图2、图3、图4、图5和图6所示,在本发明的一些实施例中,将存储器件200为SSD(固态硬盘)的产品容量设置为原容量1/N,即为A/N TB的存储容量。并从每个芯片
410内,挑选1/N的逻辑单元420,记为固定数量的逻辑单元420。一个超级区块480中仅有一个物理区块440进行使用,并且容量为A/B/N TB。另外,由于逻辑单元420的数量减少,写入速度变为全部逻辑单元420处于使用状态下的E/N,E小于N。将垃圾回收处理的启动时间设置为使用区块的数量达到B/M个启动,即存储器件200写入(B/M)*(A/B/N)=A/N/M TB的存储空间时开始启动垃圾回收处理。并设定每消耗X个闲置区块时,即对应的每增加X个使用区块时,也即每写入X*(A/B/N)TB容量时,调整一次垃圾回收处理的速度。因此,垃圾回收处理仍然是有(A/N‑A/N/M)/(X*(A/B/N))=(B‑B/M)/X个速度挡。假设存储器件200的写入速度为Y*E/N TB/s,那么垃圾回收处理的启动时间是A/N/M/(Y*E/N),缩小为每个芯片410上的全部数量的逻辑单元420处于可用状态时的1/E。
[0090] 请参阅图1、图2、图3、图4、图5和图6所示,在本发明的一些实施例中,例如存储器件200为SSD(固态硬盘),其存储空间是8TB(Tera byte,太字节),对应4000个用户区块(block)和80个预留区块。则OP(Over Provisioning,预留空间)=(全部容量‑用户容量)/用户容量=预留容量/用户容量=1/50。当存储器件200上逻辑单元420的数量为80个时,每个逻辑单元420包括(4000+80)/80=51个物理区块480。每个超级区块480的容量为2000MB,每个物理区块440的容量为2000/80=25MB。当每个芯片410上全部逻辑单元420处于可用状态时,控制器300设置使用区块(data block)达到1000个区块440时启动垃圾回收处理,即存储器件200写入2TB的存储空间时开始启动垃圾回收处理。在使用区块数量与用户区块数量的比值达到上限值,将该上限值表征为垃圾回收比例阈值1/4。即使用区块数量与用户区块数量的比值达到垃圾回收比例阈值1/4时,触发垃圾回收处理。控制器300可设定每消耗100个闲置区块(free block)时,既对应的每增加100个使用区块时,调整一次垃圾回收处理的速度。因此,垃圾回收处理启动后会有(4000‑1000)/100=30个速度挡。假设存储器件200的写入速度为200MB/s,那么存储器件200在写入2TB的存储空间,垃圾回收处理需要10000秒。
[0091] 请参阅图1、图2、图3、图4、图5和图6所示,在本发明的一些实施例中,将存储器件200为SSD(固态硬盘)的产品容量设置为原容量1/80,即为100GB的存储容量。并从每个芯片
410内,挑选1/80的逻辑单元420,记为固定数量的逻辑单元420。一个超级区块480中仅有一个物理区块440进行使用,并且容量为25MB。另外,由于逻辑单元420的数量减少,写入速度变为全部逻辑单元420处于使用状态下的40/80=1/2。将垃圾回收处理的启动时间设置为使用区块的数量达到1000个启动,即存储器件200写入20GB的存储空间时开始启动垃圾回收处理。每消耗100个闲置区块时,即每增加100个使用区块时,即每写入量增加100*25=
2.5GB,调整一次垃圾回收处理的速度。所以,垃圾回收处理仍然是有30个速度挡。假设存储器件200的写入速度为100MB/s,那么垃圾回收处理的启动时间是250s,缩小为每个芯片上的全部数量的逻辑单元处于可用状态时的1/40。预留区块数量为80个,OP=80/4000,与每个芯片410上的全部数量的逻辑单元420处于可用状态时的OP相同。
[0092] 综上,本发明提出一种存储器件及其垃圾回收的控制方法,本发明保证垃圾回收启动后的使用寿命和固件逻辑的基础上,节省了数据传输时间和固件资源。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
[0093] 上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。