提升掉电时数据写入速度的方法、装置及计算机设备转让专利

申请号 : CN201810479638.6

文献号 : CN108762669B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李传业冯元元胡中中

申请人 : 深圳忆联信息系统有限公司

摘要 :

本发明涉及提升掉电时数据写入速度的方法、装置及计算机设备,其中,方法包括预留擦除单元,并设置预留的擦除单元处于擦除状态;判断系统是否出现异常掉电状态;若是,则处理NAND Flash的擦除状态;解析请求列队的请求类型,并根据请求类型进行请求处理;获取需要备份的数据以及需要回收的请求,存储于预留的擦除单元内。本发明通过预留擦除单元,并对擦除单元设置处于擦除状态,以进入接收数据写入,在系统出现异常掉电时,将需要回收的请求以及需要备份的数据存储在擦除单元内,减少对已写入且正确的数据的影响,提升用户数据写入速度,降低用户数据的丢失。

权利要求 :

1.提升掉电时数据写入速度的方法,其特征在于,所述方法包括:预留擦除单元,并设置预留的擦除单元处于擦除状态;

判断系统是否出现异常掉电状态;

若是,则处理NAND Flash的擦除状态;

解析请求列队的请求类型,并根据请求类型进行请求处理;

获取需要备份的数据以及需要回收的请求,存储于预留的擦除单元内;

预留擦除单元,并设置预留的擦除单元处于擦除状态的步骤,包括以下具体步骤:预留擦除单元;

将预留的擦除单元分配于不同的CH或者可独立并发操作的单元上;

在颗粒允许的情况下设置预留的擦除单元处于擦除状态。

2.根据权利要求1所述的提升掉电时数据写入速度的方法,其特征在于,判断系统是否出现异常掉电状态的步骤之前,还包括:获取上次掉电期间需要写入预留的擦除单元内的数据,纳入垃圾回收管理。

3.根据权利要求1至2任一项所述的提升掉电时数据写入速度的方法,其特征在于,处理NAND Flash的擦除状态的步骤,包括以下具体步骤:判断系统当前是否在执行擦除操作;

若否,则进入解析请求列队的请求类型,并根据请求类型进行请求处理的步骤;

若是,则判断需要是否终止擦除操作;

若是,则终止擦除操作;

若否,则进入解析请求列队的请求类型,并根据请求类型进行请求处理的步骤。

4.根据权利要求3所述的提升掉电时数据写入速度的方法,其特征在于,解析请求列队的请求类型,并根据请求类型进行请求处理的步骤,包括以下具体步骤:获取请求列队中的下一个请求;

解析下一个请求的类型;

判断下一个请求是否需要执行;

若否,则对请求标记丢弃状态,并回收请求,返回所述获取请求列队中的下一个请求的步骤;

若是,则判断当前的操作是否可安全执行请求;

若是,则进入获取需要备份的数据以及需要回收的请求,存储于预留的擦除单元内的步骤;

若否,则对请求标记丢弃状态,并回收请求,返回所述获取请求列队中的下一个请求的步骤。

5.提升掉电时数据写入速度的装置,其特征在于,包括预留单元、掉电判断单元、状态处理单元、请求处理单元以及存储单元;

所述预留单元,用于预留擦除单元,并设置预留的擦除单元处于擦除状态;

所述掉电判断单元,用于判断系统是否出现异常掉电状态;

所述状态处理单元,用于若是,则处理NAND Flash的擦除状态;

所述请求处理单元,用于解析请求列队的请求类型,并根据请求类型进行请求处理;

所述存储单元,用于获取需要备份的数据以及需要回收的请求,存储于预留的擦除单元内;

所述预留单元包括擦拭单元预留模块、分配模块以及设置模块;

所述擦拭单元预留模块,用于预留擦除单元;

所述分配模块,用于将预留的擦除单元分配于不同的CH或者可独立并发操作的单元上;

所述设置模块,用于在颗粒允许的情况下设置预留的擦除单元处于擦除状态。

6.根据权利要求5所述的提升掉电时数据写入速度的装置,其特征在于,所述装置还包括数据获取单元;

所述数据获取单元,用于获取上次掉电期间需要写入预留的擦除单元内的数据,纳入垃圾回收管理。

7.根据权利要求6所述的提升掉电时数据写入速度的装置,其特征在于,所述状态处理单元包括操作判断模块、终止判断模块以及终止模块;

所述操作判断模块,用于判断系统当前是否在执行擦除操作;

所述终止判断模块,用于若是,则判断需要是否终止擦除操作;

所述终止模块,用于若是,则终止擦除操作。

8.一种计算机设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至4中任意一项所述的提升掉电时数据写入速度的方法。

说明书 :

提升掉电时数据写入速度的方法、装置及计算机设备

技术领域

[0001] 本发明涉及SSD固态硬盘,更具体地说是指提升掉电时数据写入速度的方法、装置及计算机设备。

背景技术

[0002] 固态硬盘在实际应用场景中,会发生异常掉电情况。掉电时,固态硬盘系统中可能有缓冲的数据没有写入NAND Flash中;掉电时,NAND Flash端可能正在执行写操作,该写操作的数据不但丢失,还会因为NAND Flash的特性导致写入点附近的数据被破坏。
[0003] 掉电时,对正在执行的擦除操作会在仲裁后决定是取消还是继续执行;针对后续的写入操作,可能因为没有预留擦除单元而需要做垃圾回收处理,启动擦除操作,耗时较多;掉电时,现有技术在NFC端会对请求做区分处理,优先响应写请求和写请求相关的读请求以及擦除请求,写请求可以是TLC模式写入或者SLC模式写入,写入的区域是正常的用户区域。因为写入的区域是正常的用户区域,存在没有合适的Block写入的情况,导致需要进行垃圾回收,启动Erase操作,耗时较多;以TLC模式写入,因为TLC模式的tPROG较大,导致在备电时间内写入的数据量有限;TLC颗粒存在共享读写单元的现象,后写入数据可能导致先前写入的数据状态改变,造成数据丢失,即不安全的写入。如图1所示,Nand Flash的内部组成如下:其中,DIE代表可独立并发操作的单元;Block代表擦除单元;Page代表读写单元。DIE下的操作是串行化的,即对同一个DIE发起多个操作,必须等前面一个操作完成之后才能执行后面一个操作。同一个擦除单元内的读写单元必须按顺序进行写操作。由于Nand Flash的内部构造,当前读写单元的写操作异常可能会对其他已经安全写入数据的读写单元造成影响,以TLC为例,读写单元M和读写单元N及读写单元(N+1)组成共享读写单元,共享NAND单元,且N>M+1,一般N>>M;读写单元M可以单独使用程序,读写单元N和读写单元(N+1)需同时使用程序,且读写单元N/N+1使用程序时会修改共享的NAND Cell的状态,从而影响读写单元M的状态。使用程序完成后,读写单元M/N/(N+1)数据正确,但如果读写单元N/N+1在使用程序时掉电导致写入不成功,不仅读写单元N/N+1的数据错误,读写单元M的数据也被破坏。
[0004] 目前常见的解决此类问题的方法是固态硬盘硬件设计时引入电容备电。掉电时通过电容短暂的供电能力支撑NAND Flash操作的完成,但是由于掉电点不可控,掉电时刻请求比较多的情况下,依然存在未完成的写操作导致安全写入的数据被破坏的可能性。
[0005] 因此,有必要设计一种新的数据写入方法,实现保证异常掉电时数据写入的安全可靠,降低用户数据丢失的风险。

发明内容

[0006] 本发明的目的在于克服现有技术的缺陷,提供提升掉电时数据写入速度的方法、装置及计算机设备。
[0007] 为实现上述目的,本发明采用以下技术方案:提升掉电时数据写入速度的方法,所述方法包括:
[0008] 预留擦除单元,并设置预留的擦除单元处于擦除状态;
[0009] 判断系统是否出现异常掉电状态;
[0010] 若是,则处理NAND Flash的擦除状态;
[0011] 解析请求列队的请求类型,并根据请求类型进行请求处理;
[0012] 获取需要备份的数据以及需要回收的请求,存储于预留的擦除单元内。
[0013] 其进一步技术方案为:预留擦除单元,并设置预留的擦除单元处于擦除状态的步骤,包括以下具体步骤:
[0014] 预留擦除单元;
[0015] 将预留的擦除单元分配于不同的CH或者可独立并发操作的单元上;
[0016] 在颗粒允许的情况下设置预留的擦除单元处于擦除状态。
[0017] 其进一步技术方案为:判断系统是否出现异常掉电状态的步骤之前,还包括:
[0018] 获取上次掉电期间需要写入预留的擦除单元内的数据,纳入垃圾回收管理。
[0019] 其进一步技术方案为:处理NAND Flash的擦除状态的步骤,包括以下具体步骤:
[0020] 判断系统当前是否在执行擦除操作;
[0021] 若否,则进入解析请求列队的请求类型,并根据请求类型进行请求处理的步骤;
[0022] 若是,则判断需要是否终止擦除操作;
[0023] 若是,则终止擦除操作;
[0024] 若否,则进入解析请求列队的请求类型,并根据请求类型进行请求处理的步骤。
[0025] 其进一步技术方案为:解析请求列队的请求类型,并根据请求类型进行请求处理的步骤,包括以下具体步骤:
[0026] 获取请求列队中的下一个请求;
[0027] 解析下一个请求的类型;
[0028] 判断下一个请求是否需要执行;
[0029] 若否,则对请求标记丢弃状态,并回收请求,返回所述获取请求列队中的下一个请求的步骤;
[0030] 若是,则判断当前的操作是否可安全执行请求;
[0031] 若是,则进入获取需要备份的数据以及需要回收的请求,存储于预留的擦除单元内的步骤;
[0032] 若否,则对请求标记丢弃状态,并回收请求,返回所述获取请求列队中的下一个请求的步骤。
[0033] 本发明还提供了提升掉电时数据写入速度的装置,包括预留单元、掉电判断单元、状态处理单元、请求处理单元以及存储单元;
[0034] 所述预留单元,用于预留擦除单元,并设置预留的擦除单元处于擦除状态;
[0035] 所述掉电判断单元,用于判断系统是否出现异常掉电状态;
[0036] 所述状态处理单元,用于若是,则处理NAND Flash的擦除状态;
[0037] 所述请求处理单元,用于解析请求列队的请求类型,并根据请求类型进行请求处理;
[0038] 所述存储单元,用于获取需要备份的数据以及需要回收的请求,存储于预留的擦除单元内。
[0039] 其进一步技术方案为:所述预留单元包括擦拭单元预留模块、分配模块以及设置模块;
[0040] 所述擦拭单元预留模块,用于预留擦除单元;
[0041] 所述分配模块,用于将预留的擦除单元分配于不同的CH或者可独立并发操作的单元上;
[0042] 所述设置模块,用于在颗粒允许的情况下设置预留的擦除单元处于擦除状态。
[0043] 其进一步技术方案为:所述装置还包括数据获取单元;
[0044] 所述数据获取单元,用于获取上次掉电期间需要写入预留的擦除单元内的数据,纳入垃圾回收管理。
[0045] 其进一步技术方案为:所述状态处理单元包括操作判断模块、终止判断模块以及终止模块;
[0046] 所述操作判断模块,用于判断系统当前是否在执行擦除操作;
[0047] 所述终止判断模块,用于若是,则判断需要是否终止擦除操作;
[0048] 所述终止模块,用于若是,则终止擦除操作。
[0049] 本发明还提供了一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的提升掉电时数据写入速度的方法。
[0050] 本发明与现有技术相比的有益效果是:本发明的提升掉电时数据写入速度的方法,通过预留擦除单元,并对擦除单元设置处于擦除状态,以进入接收数据写入,在系统出现异常掉电时,将需要回收的请求以及需要备份的数据存储在擦除单元内,减少对已写入且正确的数据的影响,提升用户数据写入速度,降低用户数据的丢失。
[0051] 下面结合附图和具体实施例对本发明作进一步描述。

附图说明

[0052] 图1为现有技术中的NAND Flash的示意性框图;
[0053] 图2为本发明一具体实施例提供的提升掉电时数据写入速度的方法的流程图;
[0054] 图3为图2中预留擦除单元并设置预留的擦除单元处于擦除状态的流程图;
[0055] 图4为图2中处理NAND Flash的擦除状态的流程图;
[0056] 图5为图2中解析请求列队的请求类型并根据请求类型进行请求处理的流程图;
[0057] 图6为本发明一具体实施例提供的提升掉电时数据写入速度的装置的结构框图;
[0058] 图7为图6具体实施例中预留单元的结构框图;
[0059] 图8为图6具体实施例中状态处理单元的结构框图;
[0060] 图9为本发明一具体实施例提供的一种计算机设备的结构框图。

具体实施方式

[0061] 为了更充分理解本发明的技术内容,下面结合具体实施例对本发明的技术方案进一步介绍和说明,但不局限于此。
[0062] 应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
[0063] 还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
[0064] 还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
[0065] 如图2~9所示的具体实施例,本实施例提供的提升掉电时数据写入速度的方法、装置及计算机设备,可以运用在SSD系统掉电时处理数据写入的过程中,还可以用于其他固态存储硬盘掉电过程中,实现保证异常掉电时数据写入的安全可靠,降低用户数据丢失的风险。
[0066] 如图2所示,本实施例提供了提升掉电时数据写入速度的方法,该方法包括步骤S101~步骤S107。
[0067] S101、预留擦除单元,并设置预留的擦除单元处于擦除状态。
[0068] 具体地,固件系统要预留一部分擦除单元,用于掉电时的紧急写入;因电容备点时间短,在颗粒允许的情况下保证预留擦除单元处于擦除状态。在掉电时以pSLC方式快速写入数据,避免数据丢失。
[0069] 另外,优选地,固件系统设计时,会带有写入Cache功能,以保证写性能。异常掉电时间点,写入Cache中可能有比较多的用户数据。借助预留的擦除单元,在掉电时以pSLC方式将需要写入的数据写入NAND Flash中,最大程度上降低未完成写操作导致写入数据被破坏的可能性,同时最大程度上降低写入Cache中数据丢失的可能性。
[0070] 于其他实施例,若已预留了擦除单元,则直接进入S102步骤。
[0071] S102、获取上次掉电期间需要写入预留的擦除单元内的数据,纳入垃圾回收管理。
[0072] 在系统上电时,固件要查看上次掉电期间是否有需要写入预留擦除单元内的数据,将需要写入预留擦除单元内的数据纳入正常的垃圾回收管理,对于垃圾回收管理的数据和回收的请求,FTL会下发请求将这些回收的数据和请求写入到预留的擦除单元内,提升写入速度,保证异常掉电时,数据写入的安全可靠。
[0073] 以TLC为例,读写单元M和读写单元N及读写单元(N+1)组成共享读写单元,共享NAND单元,且N>M+1,一般N>>M;读写单元M可以单独使用程序,读写单元N和读写单元(N+1)需同时使用程序,且读写单元N/N+1使用程序时会修改共享的NAND Cell的状态,从而影响读写单元M的状态。使用程序完成后,读写单元M/N/(N+1)数据正确,但如果读写单元N/N+1在使用程序时掉电导致写入不成功,FTL会下发请求将读写单元N/N+1的数据以及写入请求写入预留的擦除单元内,避免异常掉电时,造成对读写单元M/N/(N+1)数据的影响。
[0074] S103、判断系统是否出现异常掉电状态。
[0075] 当出现非正常掉电的情况是,系统会获取到异常掉电通知,从而可判断系统是否出现异常掉电的状态。
[0076] S104、若是,则处理NAND Flash的擦除状态。
[0077] 如果Nand Flash端已经处于擦除操作状态,发起通知Nand Flash终止擦除操作的命令,也就是停止各个物理位置的数据写入后在下一次写之前将整个擦除单元的擦除的操作。
[0078] S105、解析请求列队的请求类型,并根据请求类型进行请求处理。
[0079] 在本实施例中,请求列队内会包含有对若干个擦除单元进行数据写入的请求以及擦除等各类型的请求,当某一个写入请求在执行或者即将执行时,遇到掉电的情况,需要判断该请求是否需要执行写入,让需要执行写入的请求且在可安全执行的情况下继续执行,而不需要执行的请求或需要执行却无法安全执行的请求进行回收操作,此处的可安全执行的情况包括电容备电时间允许请求写入的情况。该需要执行写入的请求且在可安全执行的情况下内包括有必须处理的请求,如PD_WRITE类型请求及FTL Read请求等,其中PD_WRITE类型请求为写入预留的擦除单元内的请求,FTL Read请求是读取需要回收的请求以及需要备份的数据的请求。
[0080] S106、获取需要备份的数据以及需要回收的请求,存储于预留的擦除单元内。
[0081] 固件系统设计时会带有Write Cache功能,以保证写性能。异常掉电时间点,Write Cache中可能有比较多的用户数据。FTL在收到掉电通知后,检查固件系统中是否有需要备份数据。如果有需要备份数据,则后续下发PD_WRITE请求写入预留的擦除单元内;对回收的请求,如果标记为丢弃且为需要备份数据,也需下发PD_WRITE请求写入预留的擦除单元内。
[0082] 若系统未出现异常掉电,则S107、将数据写入擦除单元内,并返回S103步骤。
[0083] 具体地,请参阅图3,上述的S101步骤,预留擦除单元,并设置预留的擦除单元处于擦除状态的步骤,包括以下具体步骤:
[0084] S1011、预留擦除单元;
[0085] S1012、将预留的擦除单元分配于不同的CH或者可独立并发操作的单元上;
[0086] S1013、在颗粒允许的情况下设置预留的擦除单元处于擦除状态。
[0087] 在系统正常运行期间,保证预留的擦除单元能够容纳固件系统中缓存的用户数据。预留擦除单元要分配在不同的CH/DIE上,以保证写入的并发性,也就是可以同时在不同的CH或者可独立并发操作的单元(DIE)上写入需要备份的数据和需要回收的请求,提升写入的速度。
[0088] 具体地,请参阅图4,上述的S104步骤,处理NAND Flash的擦除状态的步骤,包括以下具体步骤:
[0089] S1041、判断系统当前是否在执行擦除操作;
[0090] 若否,则进入S105步骤;
[0091] S1042、若是,则判断需要是否终止擦除操作;
[0092] S1043、若是,则终止擦除操作;
[0093] 若否,则进入S105步骤。
[0094] 如果Nand Flash端已经处于擦除操作状态,发起通知Nand Flash终止擦除操作的命令。
[0095] 另外,请参阅图5,上述的S105步骤,解析请求列队的请求类型,并根据请求类型进行请求处理的步骤,包括以下具体步骤:
[0096] S1051、获取请求列队中的下一个请求;
[0097] S1052、解析下一个请求的类型;
[0098] S1053、判断下一个请求是否需要执行;
[0099] S1054、若否,则对请求标记丢弃状态,并回收请求,返回S1051步骤;
[0100] S1055、若是,则判断当前的操作是否可安全执行请求;
[0101] 若是,则进入S106步骤;
[0102] 若否,则返回S1054步骤。
[0103] 解析请求队列中的请求类型,区分出必须处理的请求,必须处理请求放行,否则标记丢弃状态返回给FTL,必须处理的请求包括PD_WRITE类型请求,及FTL Read请求。
[0104] 把SSD系统的用户数据写入使用预留的SLC擦除单元,提升写入速度,保证异常掉电时,数据写入的安全可靠,用户数据丢失的风险大大降低。
[0105] 上述的提升掉电时数据写入速度的方法,通过预留擦除单元,并对擦除单元设置处于擦除状态,以进入接收数据写入,在系统出现异常掉电时,将需要回收的请求以及需要备份的数据存储在擦除单元内,减少对已写入且正确的数据的影响,提升用户数据写入速度,降低用户数据的丢失。
[0106] 请参阅图6,图6是本申请实施例提供的提升掉电时数据写入速度的装置的示意性框图。如图6所示,该装置包括预留单元1、掉电判断单元3、状态处理单元4、请求处理单元5以及存储单元6。
[0107] 预留单元1,用于预留擦除单元,并设置预留的擦除单元处于擦除状态。
[0108] 掉电判断单元3,用于判断系统是否出现异常掉电状态。
[0109] 状态处理单元4,用于若是,则处理NAND Flash的擦除状态。
[0110] 请求处理单元5,用于解析请求列队的请求类型,并根据请求类型进行请求处理。
[0111] 存储单元6,用于获取需要备份的数据以及需要回收的请求,存储于预留的擦除单元内。
[0112] 请参阅图7,具体地,上述的预留单元1包括擦拭单元预留模块11、分配模块12以及设置模块13。
[0113] 擦拭单元预留模块11,用于预留擦除单元。
[0114] 分配模块12,用于将预留的擦除单元分配于不同的CH或者可独立并发操作的单元上。
[0115] 设置模块13,用于在颗粒允许的情况下设置预留的擦除单元处于擦除状态。
[0116] 请参照图6,上述的装置还包括数据获取单元2。
[0117] 数据获取单元2,用于获取上次掉电期间需要写入预留的擦除单元内的数据,纳入垃圾回收管理。
[0118] 请参照图8,相应地,上述的状态处理单元4包括操作判断模块41、终止判断模块42以及终止模块43。
[0119] 操作判断模块41,用于判断系统当前是否在执行擦除操作。
[0120] 终止判断模块42,用于若是,则判断需要是否终止擦除操作。
[0121] 终止模块43,用于若是,则终止擦除操作。
[0122] 另外,上述的请求处理单元5还包括请求获取模块、解析模块、执行判断模块、丢弃模块以及安全判断模块。
[0123] 请求获取模块,用于获取请求列队中的下一个请求。
[0124] 解析模块,用于解析下一个请求的类型。
[0125] 执行判断模块,用于判断下一个请求是否需要执行。
[0126] 丢弃模块,用于若否,则对请求标记丢弃状态,并回收请求。
[0127] 安全判断模块,用于若是,则判断当前的操作是否可安全执行请求。
[0128] 所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的提升掉电时数据写入速度装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0129] 上述的提升掉电时数据写入速度的装置可以实现为一种计算机程序的形式,计算机程序可以在如图9所示的计算机设备上运行。
[0130] 上述的提升掉电时数据写入速度的装置,通过预留擦除单元,并对擦除单元设置处于擦除状态,以进入接收数据写入,在系统出现异常掉电时,将需要回收的请求以及需要备份的数据存储在擦除单元内,减少对已写入且正确的数据的影响,提升用户数据写入速度,降低用户数据的丢失。
[0131] 请参阅图9,图9是本申请实施例提供的一种计算机设备的示意性框图。该计算机设备700设备可以是终端或服务器。
[0132] 参照图9,该计算机设备700包括通过系统总线710连接的处理器720、存储器和网络接口750,其中,存储器可以包括非易失性存储介质730和内存储器740。
[0133] 该非易失性存储介质730可存储操作系统731和计算机程序732。该计算机程序732被执行时,可使得处理器720执行任意一种提升掉电时数据写入速度的方法。
[0134] 该处理器720用于提供计算和控制能力,支撑整个计算机设备700的运行。
[0135] 该内存储器740为非易失性存储介质730中的计算机程序732的运行提供环境,该计算机程序732被处理器720执行时,可使得处理器720执行任意一种提升掉电时数据写入速度的方法。
[0136] 该网络接口750用于进行网络通信,如发送分配的任务等。本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备700的限定,具体的计算机设备700可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。其中,所述处理器720用于运行存储在存储器中的程序代码,以实现以下步骤:
[0137] 预留擦除单元,并设置预留的擦除单元处于擦除状态;
[0138] 判断系统是否出现异常掉电状态;
[0139] 若是,则处理NAND Flash的擦除状态;
[0140] 解析请求列队的请求类型,并根据请求类型进行请求处理;
[0141] 获取需要备份的数据以及需要回收的请求,存储于预留的擦除单元内。
[0142] 在一实施例中,所述处理器720用于判断系统是否出现异常掉电状态之前,还实现以下步骤:
[0143] 获取上次掉电期间需要写入预留的擦除单元内的数据,纳入垃圾回收管理。
[0144] 其中,所述预留擦除单元,并设置预留的擦除单元处于擦除状态,包括:
[0145] 预留擦除单元;以及将预留的擦除单元分配于不同的CH或者可独立并发操作的单元上;以及在颗粒允许的情况下设置预留的擦除单元处于擦除状态。
[0146] 所述处理NAND Flash的擦除状态,包括:
[0147] 判断系统当前是否在执行擦除操作;以及若否,则进入解析请求列队的请求类型,并根据请求类型进行请求处理;以及若是,则判断需要是否终止擦除操作;以及若是,则终止擦除操作;以及若否,则进入解析请求列队的请求类型,并根据请求类型进行请求处理的步骤。
[0148] 另外,所述解析请求列队的请求类型,并根据请求类型进行请求处理,包括:获取请求列队中的下一个请求;以及解析下一个请求的类型;以及判断下一个请求是否需要执行;以及若否,则对请求标记丢弃状态,并回收请求,返回所述获取请求列队中的下一个请求的步骤;以及若是,则判断当前的操作是否可安全执行请求;以及若是,则进入获取需要备份的数据以及需要回收的请求,存储于预留的擦除单元内的步骤;以及若否,则对请求标记丢弃状态,并回收请求,返回所述获取请求列队中的下一个请求的步骤。
[0149] 应当理解,在本申请实施例中,处理器720可以是中央处理单元(Central Processing Unit,CPU),该处理器720还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0150] 本领域技术人员可以理解,图9中示出的计算机设备700结构并不构成对计算机设备700的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0151] 上述的一种计算机设备,通过预留擦除单元,并对擦除单元设置处于擦除状态,以进入接收数据写入,在系统出现异常掉电时,将需要回收的请求以及需要备份的数据存储在擦除单元内,减少对已写入且正确的数据的影响,提升用户数据写入速度,降低用户数据的丢失。
[0152] 上述仅以实施例来进一步说明本发明的技术内容,以便于读者更容易理解,但不代表本发明的实施方式仅限于此,任何依本发明所做的技术延伸或再创造,均受本发明的保护。本发明的保护范围以权利要求书为准。