非易失性存储介质访问方法、数据更新方法及设备的制作方法

文档序号:6509563阅读:538来源:国知局
非易失性存储介质访问方法、数据更新方法及设备的制作方法
【专利摘要】本发明涉及非易失性存储介质访问方法、数据更新方法及设备。该访问方法包括在供电状态为正常时,在非易失性存储介质中划分出预留空间并擦除预留空间中的数据;以及在供电状态为异常时,将高速缓存中的数据写入预留空间。该数据更新方法包括将非易失性存储介质中的第一块空间标记为中转块空间,并擦除第一块空间中的数据;将需要更新数据的非易失性存储介质中的第二块空间中的全部数据读出到高速缓存;更新读出到高速缓存中的数据;以及将更新后高速缓存中的相应数据写入中转块空间。本发明实施例提供的非易失性存储介质访问方法、数据更新方法及设备,能够有效的提高非易失性存储介质访问的效率和数据更新的可靠性。
【专利说明】非易失性存储介质访问方法、数据更新方法及设备
【技术领域】
[0001]本发明涉及存储介质【技术领域】,尤其涉及一种非易失性存储介质访问方法、数据更新方法及设备。
【背景技术】
[0002]图1为通常技术中固态存储的基本架构图,如图1所示,固态存储的基本数据流向是用户数据从主机端通过固态存储接ロ进入控制器,然后经过高速缓存(Double DataRate,简称DDR),最后被写入到非易失性存储介质例如FLASH中。读取非易失性存储介质中的用户数据的过程为上述写入过程的逆过程。当给固态存储供电的外部电源关闭时,高速缓存里面的用户数据会丢失。为了保证异常掉电时,能够可靠保存高速缓存中的用户数据,控制器连接有备电模块,以便在外部电源关闭时,为固态存储提供临时的短暂电源,使得控制器能够将高速缓存中的数据写入到非易失性存储介质中。
[0003]随着固态存储容量的増大及速度的提高,对高速缓存的容量需求也越来越大。高速缓存容量増大,存储的数据量变大,当固态存储的外部电源关闭时,数据从高速缓存写入到非易失性存储介质的时间就会变长。因此,如何高效地完成数据保存变得越发迫切。
[0004]通常技术方案中,当外部供电关闭吋,为了实现高效地完成数据保存,对非易失性存储介质进行了优化。图2为通常技术中优化后的非易失性存储介质的基本架构图,如图2所示,可以将FLASH分为多层单元(Mult1-Level Cell,简称MLC) FLASH颗粒和单层单元(Single Layer Cell,简称SLC) FLASH颗粒。其中,MLC FLASH颗粒的特性是容量大,价格低,读写速度慢,可靠性低;SLC FLASH颗粒的特性是容量小,价格高,读写速度快,可靠性高。该技术方案利用两种FLASH颗粒的读写速度差异,当外部供电正常时,通过路径2将固态存储的用户数据存储到MLC FLASH颗粒中,当外部供电关闭时,通过路径1将固态存储的用户数据存储到SLC FLASH颗粒中。从而在外部供电关闭时,用户数据写入到存取速度更快的颗粒中可以节约时间。
[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]图1为通常技术中固态存储的基本架构图;
[0045]图2为通常技术优化后的非易失性存储介质的基本架构图;
[0046]图3示出根据本发明一实施例的非易失性存储介质访问方法的流程图;
[0047]图4示出根据本发明再一实施例的非易失性存储介质访问方法的流程图;
[0048]图5示出控制器在非易失性存储介质上划分出预备空间和冗余空间的示意图;
[0049]图6示出根据本发明另ー实施例的非易失性存储介质访问方法的流程图;
[0050]图7示出根据本发明另ー实施例的非易失性存储介质访问方法的流程图;
[0051]图8示出根据本发明一实施例的控制器的结构框图;
[0052]图9示出根据本发明再一实施例的控制器的结构框图;
[0053]图10示出根据本发明另ー实施例的控制器的结构框图;
[0054]图11示出根据本发明一实施例的固态存储设备的结构框图;
[0055]图12示出根据本发明一实施例的非易失性存储介质数据更新方法的流程图;
[0056]图13示出根据本发明再一实施例的非易失性存储介质数据更新方法的流程图;
[0057]图14示出根据本发明又一实施例的非易失性存储介质数据更新方法的流程图;[0058]图15示出根据本发明一实施例的控制器的结构框图;
[0059]图16示出根据本发明再一实施例的控制器的结构框图;
[0060]图17示出根据本发明一实施例的固态存储设备的结构框图;
[0061]图18示出了本发明再一实施例的固态存储设备的结构框图;
[0062]图19示出了本发明另一实施例的固态存储设备的结构框图。
【具体实施方式】
[0063]以下将參考附图详细说明本发明的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
[0064]在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
[0065]另外,为了更好的说明本发明,在下文的【具体实施方式】中给出了众多的具体细节。本领域技术人员应当理解,没有这些具体细节,本发明同样可以实施。在另外ー些实例中,对于大家熟知的方法、手段、元件和电路未作详细描述,以便于凸显本发明的主旨。
[0066]本申请首先对数据从高速缓存写入到非易失性存储介质的过程以及固态存储中备电模块的备电能力进行分析。
[0067]如【背景技术】和
【发明内容】
所述,数据从高速缓存写入到非易失性存储介质例如FLASH的过程主要可以分为两个步骤:FLASH擦除(Erase)和FLASH写入,这是FLASH操作必须要遵循的规范。即在往FLASH空间的某个存储空间中写入数据之前,首先得将该存储空间中原有的数据擦除,例如,可以用FF (11111111)表示该存储空间已经被擦除。这时,可以往该存储空间写入数据,例如,写入的数据可以为BB (10101010)。
[0068]通过对非易失性存储介质例如FLASH颗粒擦除时间和写入时间进行比较分析可知,擦除所需的时间是ms (毫秒)级,而写入所需时间是us (微秒)级,因此,可以得出完成擦除所花费的时间远大于进行写入所花费的时间。
[0069]针对备电模块的备电能力分析,本申请采用了最传统的能量公式:
[0070]ff=Pt=UIt
[0071]其中,U为介质工作电压,I为掉电时经过介质的工作电流,t为备电模块能够持续提供上述工作电压U和工作电流I的时间。
[0072]通过上述公式可以得出,在备电能力一定吋,即W —定,若要完成在高速缓存中的更多的数据保存,可以通过減少持续时间t来实现。
[0073]通过以上两点分析,本发明所提出的一个解决方案为主要是针对异常掉电时,如何减少将高速缓存中数据写入非易失性存储介质的持续时间。具体方案详见下面的实施例。
[0074]实施例1
[0075]图3示出根据本发明一实施例的非易失性存储介质访问方法的流程图。如图3所示,该方法主要可以包括外部供电正常和外部供电异常两种情况,在外部供电状态为正常时,该方法主要可以包括以下步骤:
[0076]步骤S100、在非易失性存储介质中划分出预留空间。[0077]步骤S120、擦除预留空间中的数据。
[0078]在外部供电状态为异常时,例如突然掉电,该方法还可以包括以下步骤:
[0079]步骤S130、将高速缓存中的数据写入预留空间。
[0080]由上述分析可知完成擦除所花费的时间远大于进行写入所花费的时间,因此,在实施例中,本申请的固态存储在外部供电正常时,将异常掉电时高速缓存中的数据所需要的非易失性存储介质例如FLASH的空间准备好,即完成FLASH擦除操作;在外部供电突然关闭时,对FLASH操作省掉擦除步骤,直接编程写入数据,即可节约相当长时间。
[0081]对于上述步骤S100,在ー种可能的实现方式中,还可以主要包括以下步骤:
[0082]步骤S1001、根据高速缓存中数据量计算出该数据量所需占用的非易失性存储介质的空间容量。
[0083]步骤S1002、根据所计算的空间容量在非易失性存储介质中划分出预留空间。
[0084]具体地,在外部供电状态为正常时,控制器首先需要计算此时高速缓存中数据量,并根据高速缓存中数据量,计算出存储这些高速缓存中的数据需要的非易失性存储介质的大小,然后控制器根据所计算出的所需要的非易失性存储介质空间容量在该非易失性存储介质上划分出存储空间,本实施例中称之为预留空间。预留空间可以用来存储异常掉电等情况发生时还存储在高速缓存中的数据,预留空间容量可以大于或等于存储上述高速缓存中的数据所需要的空间容量。
[0085]对于上述步骤S120,在控制器给高速缓存中的数据划分出相应的预留空间后,可以直接擦除预留空间中的原始数据,从而在异常掉电等情况发生时,可以直接将高速缓存中的数据写入已经完成擦除的预留空间中。
[0086]对于上述步骤S130,在外部供电突然关闭,即出现异常掉电时,控制器向高速缓存下发相应的指示,指示将高速缓存中的数据直接写入上述已经完成擦除的预留空间中。
[0087]本实施例的非易失性存储介质访问方法,通过在外部供电正常时,控制器为高速缓存中的数据划分出预留空间,并擦除预留空间的原始数据。在外部供电异常时,直接将高速缓存中的数据写入非易失性存储介质上划分好的预留空间中,这样能够有效的节省异常掉电时控制器将高速缓存中的数据写入非易失性存储介质空间的时间,极大的提高了非易失性存储介质访问的效率。
[0088]实施例2
[0089]图4示出根据本发明再一实施例的非易失性存储介质访问方法的流程图。图4中标号与图3相同的步骤具有相同的功能,为简明起见,省略对这些步骤的详细说明。
[0090]如图4所示,图4所示的非易失性存储介质访问方法与图3所示非易失性存储介质访问方法的主要区别在于,所述预留空间包括预备空间和冗余空间,所述预备空间表示将所述高速缓存中数据所需占用的所述非易失性存储介质的空间,所述冗余空间表示根据所述预备空间容量増加的一部分裕量。
[0091]具体地,外部供电正常时,控制器根据实际使用的高速缓存中数据量,计算出外部供电关闭时,存储上述高速缓存中数据所需要的非易失性存储介质的大小,即预备空间。同时,还需要根据计算出的预备空间容量,増加一部分裕量,称之为冗余空间。例如,图5示出控制器在非易失性存储介质上划分出预备空间和冗余空间的示意图,如图5所示,控制器可以根据上述计算在非易失性存储介质上划分出10个BLOCK为预备空间,2个BLOCK为冗余空间。
[0092]在ー种可能的实现方式中,如图4所示,在步骤S1001之前,该非易失性存储介质访问方法还可以包括以下步骤:
[0093]步骤S1000、根据一定的时间间隔检测高速缓存中的数据量。
[0094]具体地,由于高速缓存中数据量可能不是恒定的,可能会随时变化,因此,控制器可以预先设定ー个时间长度,并以这个预先设定的时间长度为时间间隔检测高速缓存中数据量,然后控制器再执行步骤S1001和步骤S1002,以达到在外部供电正常吋,根据需求实时调整预留空间容量,即同时调整预备空间和冗余空间容量。
[0095]本实施例的非易失性存储介质访问方法,控制器通过实时检测高速缓存中数据量,计算出存储上述高速缓存中的数据所需的非易失性存储介质空间容量,然后控制器根据上述计算结果为高速缓存中的数据划分出预留空间并擦除上述预留空间上的数据。能够实时检测和计算能够实时调整预留空间容量,实现预留空间的动态管理。
[0096]实施例3
[0097]图6示出根据本发明另ー实施例的非易失性存储介质访问方法的流程图。图6中标号与图3、图4相同的步骤具有相同的功能,为简明起见,省略对这些步骤的详细说明。
[0098]本实施例与上一实施例的主要区别在于,该非易失性存储介质访问方法的步骤S120中,还可以具体包括以下步骤:
[0099]步骤S1201、以上述冗余空间容量为单位,分批次擦除预留空间中的数据。
[0100]具体地,在外部供电正常时,将已经划出来的非易失性存储介质上预留空间完成擦除操作,例如,可以全擦为FF( 11111111),但是外部供电任何时刻都有可能出现因为异常掉电而关闭,因此为了保证任何时刻掉电,都有足够的,已经完成擦除的预备空间用来存储高速缓存中的数据,需要以冗余空间容量为单位,分批次擦除所述预留空间即预备空间和冗余空间中的数据。例如,预备空间容量为10个BLOCK,如图5所示的2个BL0CK_A、2个BL0CK_B、2个BL0CK_C、2个BL0CK_D以及2个BL0CK_E,冗余空间容量为2个BLOCK,如图5 所示的 2 个 BL0CK_X (BL0CK_A、BL0CK_B> BL0CK_C、BL0CK_D、BL0CK_E 以及 BL0CK_X 的大小都为ー个BLOCK)。因此擦除流程可以按照如下的顺序循环:擦除BL0CK_A->擦除BL0CK_B-> 擦除 BL0CK_C-> 擦除 BL0CK_D-> 擦除 BL0CK_E_> 擦除 BL0CK_X_> 擦除 BL0CK_A_> ……。
[0101]在ー种可能的实现方式中,在实施例2的步骤S120之前,该非易失性存储介质访问方法还可以包括以下步骤:
[0102]步骤S110、检测非易失性存储介质的温度并根据检测结果确定擦除所述预留空间中的数据的频率。
[0103]具体地,擦除完毕的空间,由于非易失性存储介质器件本身特性,电子会慢慢流失,导致所需的非易失性存储介质空间没有擦除完全,即不是全FF,这将进一歩导致为高速缓存中的数据准备好的预留空间并没有准备好,因此,还可以设定擦除频率,并按照设定的频率,定期擦除控制器划分出来的预留空间。对于非易失性存储介质擦除周期的控制,可以通过检查非易失性存储介质器件温度,设定擦除频率,即控制器先检测非易失性存储介质的温度,然后根据所述检测结果定期擦除所述预留空间。
[0104]本发明实施例的非易失性存储介质访问方法,控制器通过以冗余空间容量为单位,分批次擦除预留空间中的数据以及检测非易失性存储介质的温度,井根据检测结果定期擦除所述预留空间。这样,控制器就能够保证每时每刻非易失性存储介质上都已经准备好了足够多的已经完成擦除的预留空间来存储高速缓存中的数据,井能够有效的防止由于电子流失带来的预留空间没有被完全擦除的问题。
[0105]实施例4
[0106]图7示出根据本发明另ー实施例的非易失性存储介质访问方法的流程图。图7中标号与图3、图4、图6相同的步骤具有相同的功能,为简明起见,省略对这些步骤的详细说明。
[0107]本实施例与上一实施例的主要区别在于,该非易失性存储介质访问方法的步骤S130中,还可以具体包括以下步骤:
[0108]步骤S1301、监控到供电状态异常的中断信号,根据所述中断信号将高速缓存中的数据写入预留空间。
[0109]具体地,控制器可以实时监控外部供电状态,当外部供电正常时,控制器可以循环完成上述实施例中对预留空间的划分和对预留空间的擦除过程。当外部供电关闭时,异常监控模块(未图示)将会产生一个异常中断信号,例如掉电中断信号,控制器监控到掉电中断信号后,立即进入异常掉电保护状态,启动将高速缓存中数据写入上述非易失性存储介质的预留空间的流程。控制器通过查询预留空间的信息,例如查询到如图5所示的BL0CK_A到BL0CK_X,然后控制高速缓存中的数据写入到非易失性存储介质具体位置。由于预留空间在外部供电关闭前已经擦除完成,此时可以直接编程写入高速缓存中的数据。
[0110]本实施例的非易失性存储介质访问方法,控制器可以通过接收供电状态异常的中断信号,根据中断信号将所述高速缓存中的数据写入预留空间。这样能够对供电状态的实时监测以及有效的节省异常掉电时控制器将高速缓存中的数据写入非易失性存储介质空间的时间,极大的提高了非易失性存储介质访问的效率。
[0111]实施例5
[0112]图8示出根据本发明一实施例的控制器的结构框图。如图8所示,该控制器能够用于固态存储,主要可以包括划分模块81、擦除模块82以及写入模块83。划分模块81主要用于在供电状态正常时,在非易失性存储介质中划分出预留空间;擦除模块82,与划分模块81连接,主要用于擦除预留空间中的数据以及写入模块83,与划分模块81和擦除模块82连接,主要用于供电状态为异常时将高速缓存中的数据写入预留空间。
[0113]由上述对非易失性存储介质访问时对擦除所花费时间和写入所花费时间可知,完成擦除所花费的时间远大于进行写入所花费的时间,因此,在实施例中,本申请的固态存储在外部供电正常时,控制器将异常掉电时高速缓存中的数据所需要的非易失性存储介质的空间准备好,即完成非易失性存储介质擦除操作;在外部供电突然关闭时,控制器可以对非易失性存储介质操作省掉擦除步骤,直接编程写入数据,即可节约相当长时间。
[0114]对于上述划分模块81,在ー种可能的实现方式中,还可以具体包括计算单元811和划分单元812。其中,计算单元811主要用于根据高速缓存中数据量计算出数据所需占用的非易失性存储介质的空间容量;划分单元812,与计算单元811连接,主要用于根据所计算的空间容量在非易失性存储介质中划分出预留空间。
[0115]具体地,在外部供电状态为正常时,计算单元811首先需要计算此时高速缓存中数据量,并根据高速缓存中数据量,计算出存储这些高速缓存中的数据需要的非易失性存储介质的大小,然后划分単元812根据所计算出的所需要的非易失性存储介质空间容量在该非易失性存储介质上划分出存储空间,本实施例中称之为预留空间。预留空间可以用来存储异常掉电等情况发生时还存储在高速缓存中的数据,预留空间容量可以大于或等于存储上述高速缓存中的数据所需要的存储空间容量。
[0116]对于上述擦除模块82,在划分模块81给高速缓存中的数据划分出相应的预留空间后,可以直接擦除预留空间中的原始数据,从而在异常掉电等情况发生时,可以直接将高速缓存中的数据写入已经完成擦除的预留空间中。
[0117]对于上述写入模块83,在外部供电突然关闭,即出现异常掉电时,写入模块83将高速缓存中的数据直接写入上述已经完成擦除的预留空间中。
[0118]本实施例的控制器,通过在外部供电正常时,划分模块为高速缓存中的数据划分出预留空间,擦除模块擦除预留空间的原始数据。在外部供电异常时,写入模块直接将高速缓存中的数据写入非易失性存储介质上划分好的预留空间中,这样能够有效的节省异常掉电时控制器将高速缓存中的数据写入非易失性存储介质空间的时间,极大的提高了非易失性存储介质访问的效率。
[0119]实施例6
[0120]图9示出根据本发明再一实施例的控制器的结构框图。如图9所示,图9中标号与图8相同的组件具有相同的功能,为简明起见,省略对这些组件的详细说明。
[0121]如图9所示,图9所示的控制器与图8所示控制器的主要区别在于,划分単元812划分出的预留空间包括预备空间和冗余空间,预备空间表示将所述高速缓存中数据所需占用的所述非易失性存储介质的空间,冗余空间表示根据所述预备空间容量増加的一部分裕量。
[0122]具体地,外部供电正常吋,计算单元811根据实际使用的高速缓存中数据量,计算出外部供电关闭时,存储上述高速缓存中数据所需要的非易失性存储介质的大小,即预备空间。同时,还需要根据计算出的预备空间容量,増加一部分裕量,称之为冗余空间。预备空间和冗余空间划分的示意图可以具体參照图5。
[0123]在ー种可能的实现方式中,划分模块81还可以包括检测单元813。检测单元813与计算单元811连接,主要用于以一定的时间间隔检测所述高速缓存中数据量,则计算单元811可以具体用于根据所述检测単元检测到的高速缓存中数据量,计算出所述数据所需占用的所述非易失性存储介质的空间容量。
[0124]具体地,由于高速缓存中数据量可能不是恒定的,可能会随时变化,因此,检测单元813可以预先设定ー个时间长度,并以这个预先设定的时间长度为时间间隔检测高速缓存中数据量,计算单元811根据检测単元813检测到高速缓存中数据量,计算出需要在非易失性存储介质上划出的预备空间和冗余空间容量,划分单元813再划分上述预备空间和冗余空间。这样,在外部供电正常时,控制器就可以根据需求实时调整预留空间容量,即同时调整预备空间和冗余空间容量。
[0125]本实施例的控制器,检测单元通过检测高速缓存中数据量,计算单元根据检测单元的检测结果计算出存储上述高速缓存中的数据所需的非易失性存储介质空间容量,然后划分单元根据上述计算结果为高速缓存中的数据划分出预留空间,擦除模块擦除上述预留空间上的数据。这样,能够实时调整预留空间容量,实现预留空间的动态管理。[0126]实施例7
[0127]图10示出根据本发明另ー实施例的控制器的结构框图。如图10所示,图10中标号与图8、图9相同的组件具有相同的功能,为简明起见,省略对这些组件的详细说明。
[0128]本实施例与上一实施例的主要区别在于,擦除模块82可以具体用于以上述冗余空间容量为单位,分批次擦除预留空间中的数据。
[0129]具体地,在外部供电正常时,擦除模块82将已经划出来的非易失性存储介质上预留空间完成擦除操作,例如,可以全擦为FF( 11111111),但是外部供电任何时刻都有可能出现因为异常掉电而关闭,因此为了保证任何时刻掉电,都有足够的、已经完成擦除的预备空间用来存储高速缓存中的数据,需要以冗余空间容量为单位,分批次擦除所述预留空间即预备空间和冗余空间中的数据,具体擦除方法可以參照上述实施例的相关说明。
[0130]在ー种可能的实现方式中,该控制器还可以包括频率确定模块84。频率确定模块84,与擦除模块82连接,主要用于检测所述非易失性存储介质的温度并根据所述检测结果确定擦除所述预留空间中的数据的频率。
[0131]具体地,擦除模块82擦除完毕的空间,由于非易失性存储介质器件本身特性,电子会慢慢流失,导致所需的非易失性存储介质空间没有擦除完全,即不是全FF,这将进一歩导致给高速缓存中的数据准备好的预留空间并没有准备好,因此,还需要按照一定的频率,定期擦除控制器划分出来的预留空间。对于非易失性存储介质擦除周期的控制,频率确定模块84可以通过检查非易失性存储介质器件温度,得出定期擦除的频率,即频率确定模块84先检测非易失性存储介质的温度,然后据所述检测结果定期擦除所述预留空间。
[0132]在ー种可能的实现方式中,写入模块83可以具体用于根据监控到供电状态异常的中断信号,将高速缓存中的数据写入预留空间。
[0133]具体地,控制器可以通过接收异常监控模块(未图示)产生的异常中断信号来实时监控外部供电状态。当外部供电正常时,控制器可以循环完成上述实施例中对预留空间的划分和对预留空间的擦除过程。当外部供电关闭吋,异常监控模块(未图示)将会产生ー个异常中断信号,例如掉电中断信号,控制器监控到掉电中断信号后,立即进入异常掉电保护状态,启动写入模块83将高速缓存中数据写入上述非易失性存储介质的预留空间的流程。控制器通过查询预留空间的信息,例如查询到如图5所示的BL0CK_A到BL0CK_X,然后写入模块83将高速缓存中的数据写入到非易失性存储介质具体位置。由于预留空间在外部供电关闭前已经由擦除模块82擦除完成,此时可以通过写入模块83直接编程写入高速缓存中的数据。
[0134]本发明实施例的控制器,擦除模块可以通过以冗余空间容量为单位,分批次擦除预留空间中的数据,频率确定模块可以检测非易失性存储介质的温度,井根据检测结果定期擦除所述预留空间。这样,控制器就能够保证每时每刻非易失性存储介质上都已经准备好了足够多的已经完成擦除的预留空间来存储高速缓存中的数据,井能够有效的防止由于电子流失带来的预留空间没有被完全擦除的问题。控制器接收到中断信号后,写入模块根据接收到的中断信号将高速缓存中的数据写入预留空间。这样能够对供电状态的实时监测以及有效的节省异常掉电时控制器将高速缓存中的数据写入非易失性存储介质空间的时间,极大的提高了非易失性存储介质访问的效率。
[0135]实施例8[0136]图11示出根据本发明一实施例的固态存储设备的结构框图。如图11所示,该固态存储设备主要可以包括高速缓存器111、非易失性存储介质112,控制器113。其中,控制器113能够用来完成上述实施例中任何一种非易失性存储介质访问方法。例如,在供电状态正常时,控制器113在非易失性存储介质112中划分出预留空间,然后擦除预留空间中的数据以及在供电状态为异常时,将高速缓存器111中的数据写入预留空间。该非易失性存储介质访问方法的具体流程可以參见上述实施例的详细说明。
[0137]本发明实施例的固态存储设备,控制器可以在供电状态正常时,准备好供电状态异常时高速缓存器中的数据的存储空间,在发生供电状态异常时直接将高速缓存器中的数据写入准备好的存储空间中,这样能够有效的节省异常掉电时控制器将高速缓存中的数据写入非易失性存储介质空间的时间,极大的提高了非易失性存储介质访问的效率。
[0138]实施例9
[0139]图12示出根据本发明一实施例的非易失性存储介质数据更新方法的流程图。
[0140]固态存储中还有ー个重要的问题是如何保证异常掉电时,非易失性存储介质中数据更新的可靠性。非易失性存储介质例如FLASH由FLASH颗粒构成,FLASH颗粒由若干BLOCK (块)组成,每ー个BLOCK又由若干PAGE (页)组成。在FLASH的基本操作中,主要分为擦除(Erase)和读写,其中,擦除是以BLOCK为单位,而读写是以PAGE为单位。当用户需要更新FLASH中某个BLOCK中的几个PAGE的数据时,通常将需要更新的数据读到高速缓存中进行更新,擦除原BLOCK再将更新之后的数据写回原BLOCK。在该操作流程中会存在如下问题:在原BLOCK中的数据已经被擦除,而更新后的数据还未完全写入时,若FLASH被复位,或者外部供电关闭,会导致数据丢失。因此,如何保证FLASH中数据更新的可靠性是需要面临的问题。
[0141]通常技木通过检测非易失性存储介质复位信号来保证非易失性存储介质中数据更新的可靠性。但是若复位信号发出时检测到非易失性存储介质尚未结束写操作,则延迟复位信号的发出,待完成当前数据写入后再实施复位操作。
[0142]本发明实施例提供的非易失性存储介质数据更新方法,能够在非易失性存储介质数据的更新过程中,避免非易失性存储介质的写操作因为芯片复位、掉电等异常情况导致的数据丢失问题。
[0143]如图12所示,该非易失性存储介质数据更新方法主要可以包括以下步骤:
[0144]步骤S200、将非易失性存储介质中的第一 BLOCK空间,标记为中转BLOCK空间,并擦除第一 BLOCK空间中的数据;
[0145]步骤S210、将需要更新数据的非易失性存储介质中的第二 BLOCK空间中的全部数据读出到高速缓存;
[0146]步骤S220、更新读出到高速缓存中的数据;以及
[0147]步骤S230、将更新后高速缓存中的相应数据写入中转BLOCK空间。
[0148]对于上述步骤S200,在非易失性存储介质初始化时,控制器首先会下发相应的指令为需要更新的数据准备一中转BLOCK空间,具体过程如下:控制器对任意一BLOCK空间即第一 BLOCK空间,设置一个标志位,将第一 BLOCK空间标记为中转BLOCK空间,并擦除第一BLOCK空间中的全部数据,该第一 BLOCK空间用于非易失性存储介质更新数据时存储更新后的数据。[0149]对于上述步骤S210到步骤S230,当非易失性存储介质中有某一 BLOCK空间即、第ニ BLOCK空间有数据需要更新时,例如,第二 BLOCK空间有几个PAGE中的数据需要进行更新。这时,可以将第二 BLOCK空间的全部数据读出到高速缓存中去。然后,控制器再将读出到高速缓存中的那几个PAGE的数据进行更新,更新数据完成后,再将高速缓存中的相应数据写入上述步骤200中标记的中转BLOCK空间。
[0150]上述将高速缓存中更新后的数据写入非易失性存储介质的操作过程中,需要先将更新后的数据写入中转BLOCK空间(第一 BLOCK空间),其后再对原目标BLOCK空间(第二BLOCK空间)进行擦除。如果在更新后的数据从高速缓存写到中转BLOCK空间的操作过程中因为系统掉电、复位等原因导致高速缓存中的数据丢失,则非易失性存储介质仍然可以使用原目标BLOCK空间中的没有更新的数据,当系统正常工作时需要再次对这些数据进行更新。如果更新后的数据已经完成写入到中转BLOCK空间,则在对原目标BLOCK空间进行擦除时,因为系统掉电、复位等原因导致高速缓存中数据丢失,则非易失性存储介质可以使用更新后的存储在中转BLOCK空间中的数据。
[0151]本发明实施例的非易失性存储介质数据更新方法,控制器通过设置一个中转BLOCK空间,先将高速缓存中更新后的相应数据写入中转BLOCK空间,其后再对原目标BLOCK空间进行擦除,能够有效的防止数据更新过程中因为掉电、复位等原来造成的数据丢失,提高了数据更新的可靠性。
[0152]实施例10
[0153]图13示出根据本发明再一实施例的非易失性存储介质数据更新方法的流程图。图13中标号与图12相同的步骤具有相同的功能,为简明起见,省略对这些步骤的详细说明。
[0154]如图13所示,本实施例与上一实施例的主要区别在于,步骤S210具体可以包括以下步骤:
[0155]步骤S2101、向所述高速缓存申请第三BLOCK空间,并擦除所述第三BLOCK空间中的全部数据;
[0156]步骤S2102、将所述第二块空间中的全部数据读出到所述第三块空间。
[0157]对于上述步骤S2101,当有某一 BLOCK空间、即第二 BLOCK空间需要进行数据更新时,可以向控制器申请高速缓存中的一 BLOCK空间、即第三BLOCK空间,控制器在高速缓存中给第二 BLOCK空间划分出第三BLOCK空间后,将第三BLOCK空间中的全部数据擦除。
[0158]对于上述步骤S2102,当第三BLOCK空间中的全部数据被擦除后,控制器下发相应的指令,将第二 BLOCK空间中的全部数据读出到第三BLOCK空间。
[0159]在ー种可能的实现方式中,更新读出到高速缓存中的数据,具体可以包括以下步骤:
[0160]步骤S2201、更新第三BLOCK空间中需要更新的数据。
[0161]在ー种可能的实现方式中,所述将更新后所述高速缓存中的相应数据写入所述中转BLOCK空间,具体可以包括以下步骤:
[0162]步骤S2301、将数据更新后所述第三BLOCK空间的相应数据写入所述中转BLOCK空间。
[0163]本发明实施例的非易失性存储介质数据更新方法,控制器通过设置一个中转BLOCK空间,先将高速缓存中更新后的数据写入中转BLOCK空间,其后再对原目标BLOCK空间进行擦除,能够有效的防止数据更新过程中因为掉电、复位等原来造成的数据丢失,提高了数据更新的可靠性。
[0164]实施例U
[0165]图14示出根据本发明又一实施例的非易失性存储介质数据更新方法的流程图。图14中标号与图12、图13相同的步骤具有相同的功能,为简明起见,省略对这些步骤的详细说明。
[0166]如图14所示,本实施例与上一实施例的主要区别在于,在步骤S230之后,该非易失性存储介质数据更新方法还可以包括以下步骤:
[0167]步骤S240、清除第一 BLOCK空间的中转标记。
[0168]具体地,在已经将高速缓存中更新的数据写入中转BLOCK空间后,可以清除中转块空间的中转标记,即清除其标志位。
[0169]相应地,在ー种可能的实现方式中,在步骤S240之后,该非易失性存储介质数据更新方法还可以包括以下步骤:
[0170]步骤S250、将第二 BLOCK空间标记为中转块空间,并擦除第二 BLOCK空间中的数据。
[0171]具体地,步骤S240中已经将中转BLOCK空间的标记清除,为了更有效的实现数据更新,可以在步骤240后,将第二 BLOCK空间标记为中转BLOCK空间。
[0172]在ー种可能的实现方式中,该非易失性存储介质数据更新方法还可以包括若第二BLOCK空间标记失败,在非易失性存储介质的初始化阶段将非易失性存储介质的任意一空BLOCK空间即第四BLOCK空间标记为中转BLOCK空间。
[0173]具体地,如果在清除了中转标记后,尚未完成对第二 BLOCK空间的中转标记时,系统出现了异常掉电或复位等异常情況,即此时第二 BLOCK空间中转标记失败,则在非易失性存储介质的初始化阶段重新初始化ー块空间、即第四BLOCK空间,并将第四BLOCK空间标记为中转BLOCK空间。
[0174]本发明实施例的非易失性存储介质数据更新方法,控制器通过设置ー个中转块空间,先将高速缓存中更新后的数据写入中转BLOCK空间,然后清除中转BLOCK空间该中转BLOCK空间的中转标记,其后再对原目标BLOCK空间进行擦除并将该原目标BLOCK空间标记为中转BLOCK空间,能够有效的防止数据更新过程中因为掉电、复位等原来造成的数据丢失,提高了数据更新的可靠性。
[0175]需要说明的是,在上面的实施例中,本申请以FLASH为例,详述了非易失性存储介质访问方法和数据更新方法,事实上本领域技术人员能够明白该非易失性存储介质访问方法和数据更新方法还可以应用到其他非易失性存储介质中。
[0176]实施例12
[0177]图15示出根据本发明一实施例的控制器的结构框图。如图15所示,该控制器能够用于固态存储,主要可以包括标记模块151、擦除模块152、读出模块153、更新模块154以及写入模块155。标记模块151主要用于将非易失性存储介质中的第一BLOCK空间,标记为中转BLOCK空间;擦除模块152,与标记模块151连接,主要用于擦除第一 BLOCK空间中的数据;读出模块153,与擦除模块152连接,主要用于将需要更新数据的非易失性存储介质中的第二 BLOCK空间中的全部数据读出到高速缓存;更新模块154,与读出模块153连接,主要用于更新读出到高速缓存中的数据;写入模块155,与更新模块154连接,主要用于将更新后高速缓存中的相应数据写入中转BLOCK空间。
[0178]具体地,在非易失性存储介质初始化时,控制器首先会下发相应的指令为需要更新的数据准备一中转BLOCK空间,具体过程如下:标记模块151对非易失性存储介质中任意空的BLOCK空间即第一 BLOCK空间设置一个标志位,将第一 BLOCK空间标记为中转BLOCK空间,擦除模块152擦除第一 BLOCK空间中的全部数据,该第一 BLOCK空间用于非易失性存储介质更新数据时存储更新后的数据。当非易失性存储介质中有某一 BLOCK空间即、第二BLOCK空间有数据需要更新时,例如,第二 BLOCK空间有几个PAGE中的数据需要进行更新。这时,读出模块153可以将第二 BLOCK空间的全部数据读出到高速缓存中去。然后,更新单元154再将读出到高速缓存中的那几个PAGE的数据进行更新,更新単元154更新数据完成后,再将高速缓存中的相应数据写入上述标记模块151标记的中转BLOCK空间。
[0179]上述将高速缓存中更新后的数据写入非易失性存储介质的操作过程中,需要写入模块155先将更新単元154更新后的数据写入中转BLOCK空间(第一 BLOCK空间),其后再利用擦除单元152对原目标BLOCK空间(第二 BLOCK空间)进行擦除。如果在写入模块155将更新模块154更新后的数据从高速缓存写入到中转BLOCK空间的操作过程中因为系统掉电、复位等原因导致高速缓存中的数据丢失,则非易失性存储介质仍然可以使用原目标BLOCK空间中的没有更新的数据,当系统正常工作时需要再次利用更新模块154对这些数据进行更新。如果更新模块154更新后的数据已经完成写入到中转BLOCK空间,则在擦除模块152对原目标BLOCK空间进行擦除吋,因为系统掉电、复位等原因导致高速缓存中数据丢失,则非易失性存储介质可以使用更新模块154更新后的存储在中转BLOCK空间中的数据。
[0180]本发明实施例的控制器,标记模块设置一个中转BLOCK空间,写入模块先将更新模块更新后的高速缓存中相应数据写入中转BLOCK空间,其后利用擦除模块对原目标BLOCK空间进行擦除,能够有效的防止数据更新过程中因为掉电、复位等原来造成的数据丢失,提高了数据更新的可靠性。
[0181]实施例13
[0182]图16示出根据本发明再一实施例的控制器的结构框图。如图16所示,图160中标号与图15相同的组件具有相同的功能,为简明起见,省略对这些组件的详细说明。
[0183]本实施例与上一实施例的主要区别在于,读出模块153可以具体包括申请单元1531和读出单元1532。其中,申请单元1531主要用于向高速缓存申请第三块空间,并擦除第三块空间中的数据;读出单元1532,与申请单元1531连接,将第二块空间中的全部数据读出到第三块空间。
[0184]具体地,当有某一 BLOCK空间、即第二 BLOCK空间需要进行数据更新时,申请单元1531可以申请高速缓存中的ー个BLOCK空间、即第三BLOCK空间,控制器在高速缓存中给第ニ BLOCK空间划分出第三BLOCK空间后,利用擦除模块152将第三BLOCK空间中的全部数据擦除。当第三BLOCK空间中的全部数据被擦除后,读出单元1532将第二 BLOCK空间中的全部数据读出到第三BLOCK空间。
[0185]在ー种可能的实现方式中,写入模块155具体用于将更新后所述第三BLOCK空间的相应数据写入所述中转BLOCK空间。
[0186]在ー种可能的实现方式中,所述控制器还包括清除模块156,清除模块156与写入模块155连接,主要用于清除所述第一 BLOCK空间的中转标记。
[0187]具体地,在写入模块155已经将高速缓存中更新的数据写入中转BLOCK空间后,还可以清除中转BLOCK空间的中转标记,即清除其标志位。
[0188]相应地,在ー种可能的实现方式中,标记模块151还用于将所述第二 BLOCK空间标记为中转BLOCK空间;擦除模块152还用于擦除第二 BLOCK空间中的数据。
[0189]具体地,写入模块155已经将中转BLOCK空间的标记清除后,为了更有效的实现数据更新,还可以利用标记模块151将第二 BLOCK空间标记为中转BLOCK空间,并利用擦除模块152于擦除第二块空间中的数据。
[0190]在ー种可能的实现方式中,若所述第二BLOCK空间标记失败,标记模块151还可以用于在所述非易失性存储介质的初始化阶段将非易失性存储介质的任意一空BLOCK空间即第四BLOCK空间标记为中转BLOCK空间;擦除模块152还可以用于擦除所述第四BLOCK空间中的数据。
[0191]本发明实施例的控制器,标记模块设置一个中转BLOCK空间,写入模块将更新模块更新后高速缓存中的数据写入中转BLOCK空间,然后清除中转BLOCK空间该中转BLOCK空间的中转标记,其后再利用擦除模块对原目标BLOCK空间进行擦除,标记模块再将原目标BLOCK空间标记为中转BLOCK空间,这样能够有效的防止数据更新过程中因为掉电、复位等原来造成的数据丢失,提高了数据更新的可靠性。
[0192]实施例14
[0193]图17示出根据本发明一实施例的固态存储设备的结构框图。如图17所示,该固态存储设备主要可以包括高速缓存器171、非易失性存储介质172,控制器173。其中,控制器173能够用来完成上述实施例中任何一种非易失性存储介质数据更新方法。例如,控制器173首先将非易失性存储介质中的任意ー块没有数据的空间即第一 BLOCK空间,标记为中转BLOCK空间,然后将需要更新数据的第二 BLOCK空间中的全部数据读出到高速缓存器171中,控制器173再更新读出到高速缓存器171中的数据,最后,控制器再将更新后高速缓存中的相应数据写入中转BLOCK空间。该非易失性存储介质数据更新方法的具体流程可以參见上述实施例的详细说明。
[0194]本发明实施例的固态存储设备,通过控制器在非易失性存储介质中设置一个中转BLOCK空间,并将更新后的高速缓存器中相应数据写入中转BLOCK空间,能够有效的防止数据更新过程中因为掉电、复位等原来造成的数据丢失,提高了数据更新的可靠性。
[0195]实施例15
[0196]图18示出了本发明的再一个实施例的固态存储设备的结构框图。所述固态存储设备设备1800可以是具备计算能力的主机服务器、个人计算机PC、或者可携帯的便携式计算机或終端等。本发明具体实施例并不对计算节点的具体实现做限定。
[0197]所述固态存储设备1800包括处理器(processor) 1810、通信接ロ(Communications Interface) 1820、存储器(memory array) 1830 和总线 1840。其中,处理器1810、通信接ロ 1820、以及存储器1830通过总线1840完成相互间的通信。
[0198]通信接ロ 1820用于与网元通信,其中网元包括例如虚拟机管理中心、共享存储坐寸。
[0199]处理器1810用于执行程序。处理器1810可能是ー个中央处理器CPU,或者是专用集成电路ASIC (Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的ー个或多个集成电路。
[0200]存储器1830用于存放文件。存储器1830可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少ー个磁盘存储器。存储器1830也可以是存储器阵列。存储器1830还可能被分块,并且所述块可按一定的规则组合成虚拟卷。
[0201]在ー种可能的实施方式中,上述程序可为包括计算机操作指令的程序代码。该程序具体可用于:
[0202]在供电状态为正常时,在所述非易失性存储介质中划分出预留空间并擦除所述预留空间中的数据;以及
[0203]在所述供电状态为异常时,将高速缓存中的数据写入所述预留空间。
[0204]对于上述程序,在ー种可能的实现方式中,所述在供电状态为正常时,在所述非易失性存储介质中划分出预留空间并擦除所述预留空间中的数据包括:
[0205]根据所述高速缓存中数据量计算出所述数据所需占用的所述非易失性存储介质的空间容量;
[0206]根据所计算的空间容量在所述非易失性存储介质中划分出所述预留空间;以及
[0207]擦除所述预留空间中的数据。
[0208]对于上述程序,在ー种可能的实现方式中,所述预留空间包括预备空间和冗余空间,所述预备空间表示所述高速缓存中数据所需占用的所述非易失性存储介质的空间,所述冗余空间表示根据所述预备空间容量増加的裕量。
[0209]对于上述程序,在ー种可能的实现方式中,在根据所述高速缓存中数据量计算出所述数据所需占用的所述非易失性存储介质的空间容量之前,还包括:
[0210]以一定的时间间隔检测所述高速缓存中数据量。
[0211]对于上述程序,在ー种可能的实现方式中,擦除所述预留空间中的数据,包括:
[0212]以所述冗余空间容量为单位,分批次擦除所述预留空间中的数据。
[0213]对于上述程序,在ー种可能的实现方式中,在所述在供电状态为正常时,在所述非易失性存储介质中划分出预留空间并擦除所述预留空间中的数据之后,该方法还包括:
[0214]检测所述非易失性存储介质的温度;以及
[0215]根据所述检测结果确定擦除所述预留空间中的数据的频率。
[0216]对于上述程序,在ー种可能的实现方式中,在所述供电状态为异常时,所述将高速缓存中的数据写入所述预留空间具体包括:
[0217]监控到供电状态异常的中断信号,将所述高速缓存中的数据写入所述预留空间。
[0218]实施例16
[0219]图19示出了本发明的另ー实施例的固态存储设备的结构框图。所述固态存储设备设备1900可以是具备计算能力的主机服务器、个人计算机PC、或者可携帯的便携式计算机或終端等。本发明具体实施例并不对计算节点的具体实现做限定。
[0220]所述固态存储设备1900包括处理器(processor) 1910、通信接ロ(Communications Interface) 1920、存储器(memory array) 1930 和总线 1940。其中,处理器1910、通信接ロ 1920、以及存储器1930通过总线1940完成相互间的通信。
[0221]通信接ロ 1920用于与网元通信,其中网元包括例如虚拟机管理中心、共享存储
坐寸。
[0222]处理器1910用于执行程序。处理器1910可能是ー个中央处理器CPU,或者是专用集成电路ASIC (Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的ー个或多个集成电路。
[0223]存储器1930用于存放文件。存储器1930可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少ー个磁盘存储器。存储器1930也可以是存储器阵列。存储器1930还可能被分块,并且所述块可按一定的规则组合成虚拟卷。
[0224]在ー种可能的实施方式中,上述程序可为包括计算机操作指令的程序代码。该程序具体可用于:
[0225]将所述非易失性存储介质中的第一块空间标记为中转块空间,并擦除所述第一块空间中的数据;
[0226]将需要更新数据的所述非易失性存储介质中的第二块空间中的全部数据读出到高速缓存;
[0227]更新读出到所述高速缓存中的数据;以及
[0228]将更新后所述高速缓存中的相应数据写入所述中转块空间。
[0229]对于上述程序,在ー种可能的实现方式中,所述将需要更新数据的第二块空间中的全部数据读出到高速缓存,具体包括:
[0230]向所述高速缓存申请第三块空间,并擦除所述第三块空间中的数据;以及[0231 ] 将所述第二块空间中的全部数据读出到所述第三块空间。
[0232]对于上述非易失性存储介质数据更新方法,在ー种可能的实现方式中,所述更新读出到所述高速缓存中的数据,具体包括:
[0233]更新所述第三块空间中需要更新的数据。
[0234]对于上述非易失性存储介质数据更新方法,在ー种可能的实现方式中,所述将更新后所述高速缓存中的相应数据写入所述中转块空间,具体包括:
[0235]将更新后所述第三块空间的相应数据写入所述中转块空间。
[0236]对于上述程序,在ー种可能的实现方式中,在所述将更新后所述高速缓存中的相应数据写入所述中转块空间之后,还包括:
[0237]清除所述第一块空间的中转标记。
[0238]对于上述程序,在ー种可能的实现方式中,在所述清除所述第一块空间的中转标记之后,还包括:
[0239]将所述第二块空间标记为中转块空间,并擦除所述第二块空间中的数据。
[0240]对于上述程序,在ー种可能的实现方式中,还包括:
[0241]若所述第二块空间标记失败,在所述非易失性存储介质的初始化阶段将所述非易失性存储介质的第四块空间标记为中转块空间,并擦除所述第四块空间中的数据。
[0242]本领域普通技术人员可以意识到,本文所描述的实施例中的各示例性単元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件形式来实现,取决于技术方案的特定应用和设计约束条件。专业技术人员可以针对特定的应用选择不同的方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0243]如果以计算机软件的形式来实现所述功能并作为独立的产品销售或使用吋,则在一定程度上可认为本发明的技术方案的全部或部分(例如对通常技术做出贡献的部分)是以计算机软件产品的形式体现的。该计算机软件产品通常存储在计算机可读取的存储介质中,包括若干指令用以使得计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各实施例方法的全部或部分步骤。而前述的存储介质包括U盘、移动硬盘、只读存储器(ROM, Read-Only Memory)、随机存取存储器(RAM, Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0244]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
【权利要求】
1.一种非易失性存储介质访问方法,其特征在于,该方法包括: 在供电状态为正常时,在所述非易失性存储介质中划分出预留空间并擦除所述预留空间中的数据;以及 在所述供电状态为异常时,将高速缓存中的数据写入所述预留空间。
2.根据权利要求1所述的非易失性存储介质访问方法,其特征在于,所述在供电状态为正常时,在所述非易失性存储介质中划分出预留空间并擦除所述预留空间中的数据包括: 根据所述高速缓存中数据量计算出所述数据量所需占用的所述非易失性存储介质的空间容量; 根据所计算的空间容量在所述非易失性存储介质中划分出所述预留空间;以及 擦除所述预留空间中的数据。
3.根据权利要求2所述的非易失性存储介质访问方法,其特征在于,所述预留空间包括预备空间和冗余空间,所述预备空间表示所述高速缓存中数据量所需占用的所述非易失性存储介质的空间,所述冗余空间表示根据所述预备空间容量増加的裕量。
4.根据权利要求3所述的非易失性存储介质访问方法,其特征在于,在根据所述高速缓存中数据量计算出所述数据量所需占用的所述非易失性存储介质的空间容量之前,还包括: 根据一定的时间间隔检测所述高速缓存中的数据量。
5.根据权利要求3或4所述的非易失性存储介质访问方法,其特征在于,所述擦除所述预留空间中的数据,包括: 以所述冗余空间容量为单位,分批次擦除所述预留空间中的数据。
6.根据权利要求1-5任一项所述的非易失性存储介质访问方法,其特征在于,在所述擦除所述预留空间中的数据之前,该方法还包括: 检测所述非易失性存储介质的温度,井根据所述检测结果确定擦除所述预留空间中的数据的频率。
7.根据权利要求1-6任一项所述的非易失性存储介质访问方法,其特征在于,在所述供电状态为异常时,所述将高速缓存中的数据写入所述预留空间具体包括: 监控到供电状态异常的中断信号,将所述高速缓存中的数据写入所述预留空间。
8.—种控制器,其特征在于,包括: 划分模块,用于在供电状态正常时,在非易失性存储介质中划分出预留空间; 擦除模块,与所述划分模块连接,用于擦除所述预留空间中的数据;以及 写入模块,与所述划分模块和所述擦除模块连接,用于所述供电状态为异常时将高速缓存中的数据写入所述预留空间。
9.根据权利要求8所述的控制器,其特征在于,所述划分模块包括: 计算单元,用于根据所述高速缓存中数据量计算出所述数据量所需占用的所述非易失性存储介质的空间容量;以及 划分单元,与所述计算单元连接,用于根据所述计算単元所计算的空间容量在所述非易失性存储介质中划分出所述预留空间。
10.根据权利要求9所述的控制器,其特征在于,所述划分单元划分出的预留空间包括预备空间和冗余空间,所述预备空间表示所述高速缓存中数据量所需占用的所述非易失性存储介质的空间,所述冗余空间表示根据所述预备空间容量増加的裕量。
11.根据权利要求10所述的控制器,其特征在于,所述划分模块还包括: 检测单元,与所述计算单元连接,用于根据一定的时间间隔检测所述高速缓存中数据量,则所述计算单元具体用于根据所述检测単元检测到的高速缓存中数据量,计算出所述数据量所需占用的所述非易失性存储介质的空间容量。
12.根据权利要求10或11所述的控制器,其特征在于,所述擦除模块具体用于以所述冗余空间容量为单位,分批次擦除所述预留空间中的数据。
13.根据权利要求8-12任一项所述的控制器,其特征在于,所述控制器还包括: 频率确定模块,与所述擦除模块连接,用于检测所述非易失性存储介质的温度并根据所述检测结果确定擦除所述预留空间中的数据的频率。
14.根据权利要求8-13任一项所述的控制器,其特征在于,所述写入模块具体用于根据监控到供电状态异常的中断信号,将所述高速缓存中的数据写入所述预留空间。
15.ー种固态存储设备,其特征在于,包括:高速缓存器、非易失性存储介质,以及如权利要求8-14任一项所述的控制器。
16.一种非易失性存储介质数据更新方法,其特征在于,包括: 将所述非易失性存储介质中的第一块空间标记为中转块空间,并擦除所述第一块空间中的数据; 将需要更新数据的所述非易失性存储介质中的第二块空间中的全部数据读出到高速缓存; 更新读出到所述高速缓存中的数据;以及 将更新后所述高速缓存中的相应数据写入所述中转块空间。
17.根据权利要求16所述的非易失性存储介质数据更新方法,其特征在于,所述将需要更新数据的第二块空间中的全部数据读出到高速缓存,具体包括: 向所述高速缓存申请第三块空间,并擦除所述第三块空间中的数据;以及 将所述第二块空间中的全部数据读出到所述第三块空间; 所述更新读出到所述高速缓存中的数据,具体包括: 更新所述第三块空间中需要更新的数据; 所述将更新后所述高速缓存中的相应数据写入所述中转块空间,具体包括: 将更新后所述第三块空间的相应数据写入所述中转块空间。
18.根据权利要求16或17所述的非易失性存储介质数据更新方法,其特征在于,在所述将更新后所述高速缓存中的相应数据写入所述中转块空间之后,还包括: 清除所述第一块空间的中转标记; 将所述第二块空间标记为中转块空间,并擦除所述第二块空间中的数据。
19.根据权利要求18所述的非易失性存储介质数据更新方法,其特征在于,还包括: 若所述第二块空间标记失败,在所述非易失性存储介质的初始化阶段将所述非易失性存储介质的第四块空间标记为中转块空间,并擦除所述第四块空间中的数据。
20.—种控制器,其特征在于,包括: 标记模块,用于将非易失性存储介质中的第一块空间标记为中转块空间;擦除模块,与所述标记模块连接,用于擦除所述第一块空间中的数据; 读出模块,与所述擦除模块连接,用于将需要更新数据的所述非易失性存储介质中的第二块空间中的全部数据读出到高速缓存; 更新模块,与所述读出模块连接,用于更新读出到所述高速缓存中的数据;以及写入模块,与所述更新模块连接,用于将更新后所述高速缓存中的相应数据写入所述中转块空间。
21.根据权利要求20所述的控制器,其特征在于,所述读出模块具体包括: 申请单元,用于向所述高速缓存申请第三块空间,并擦除所述第三块空间中的数据;以及 读出单元,与所述申请单元连接,将所述第二块空间中的全部数据读出到所述第三块空间; 所述更新模块具体用于更新所述第三块空间中需要更新的数据; 所述写入模块具体用于将更新后所述第三块空间的相应数据写入所述中转块空间。
22.根据权利要求20或21所述的控制器,其特征在于,还包括: 清除模块,用于清除所述第一块空间的中转标记; 所述标记模块还用于将所述第二块空间标记为中转块空间; 所述擦除模块还用于擦除所 述第二块空间中的数据。
23.根据权利要求22所述的控制器,其特征在于,所述标记模块还用于当所述第二块空间标记失败,在所述非易失性存储介质的初始化阶段将所述非易失性存储介质的第四块空间标记为中转块空间;所述擦除模块还用于擦除所述第四块空间中的数据。
24.ー种固态存储设备,其特征在于,包括:高速缓存器、非易失性存储介质、以及如权利要求20-23任一项所述的控制器。
【文档编号】G06F12/16GK103455449SQ201310386421
【公开日】2013年12月18日 申请日期:2013年8月29日 优先权日:2013年8月29日
【发明者】陈勇军, 方斌华, 吴汇梅 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1