一种基于闪存的固态硬盘及其数据管理方法

文档序号:1952036 发布日期:2021-12-10 浏览:2次 >En<

阅读说明:本技术 一种基于闪存的固态硬盘及其数据管理方法 (Solid state disk based on flash memory and data management method thereof ) 是由 方浩俊 黄运新 杨亚飞 于 2021-09-10 设计创作,主要内容包括:本发明公开了一种基于闪存的固态硬盘及其数据管理方法,对于纠错单元,有两个条件:第一个是纠错单元写入目的数据块后的RBER预期值小于预设比特错误率阈值;第二个是源数据块的纠错单元所含元信息为非时变信息。在纠错单元需从源数据块搬移至目的数据块时,若同时满足两个条件,则纠错单元无需编解码,直接搬移即可;若未同时满足两个条件,则纠错单元需先解码,在纠错单元所含元信息为非时变信息时,无需编码,直接将解码后的纠错单元搬移即可;在纠错单元所含元信息为时变信息时,需更新元信息并重新编码,而后将重新编码后的纠错单元搬移即可。可见,本申请通过对纠错单元的数据管理,减少了编解码操作,减轻了内部总线IO压力。(The invention discloses a solid state disk based on a flash memory and a data management method thereof, and for an error correction unit, two conditions are provided: the first is that the expected value of RBER after the error correction unit writes in the target data block is smaller than a preset bit error rate threshold; the second is that the meta-information contained in the error correction unit of the source data block is time invariant information. When the error correction unit needs to be moved from the source data block to the target data block, if two conditions are met simultaneously, the error correction unit does not need to be coded and decoded, and can be moved directly; if the two conditions are not met simultaneously, the error correction unit needs to be decoded first, and when the meta information contained in the error correction unit is the time-invariant information, the decoding is not needed, and the decoded error correction unit is directly moved; when the meta-information contained in the error correction unit is time-varying information, the meta-information needs to be updated and re-encoded, and then the re-encoded error correction unit is moved. Therefore, the coding and decoding operations are reduced and the IO pressure of an internal bus is reduced through the data management of the error correction unit.)

一种基于闪存的固态硬盘及其数据管理方法

技术领域

本发明涉及固态存储领域,特别是涉及一种基于闪存的固态硬盘及其数据管理方法。

背景技术

闪存的基本结构如图1所示,一个封装好的闪存芯片(Chip)由多个裸片(Die)组成,每个裸片由多个分组(Plane)组成,每个分组由多个数据块(Block)组成,每个数据块由多个字线(Word Line)组成,每个字线由1~N个页(Page)组成,比如,TLC(Triple-LevelCell,三阶储存单元)闪存芯片的一个字线由LSB(最低有效位)、CSB(中央有效位)、MSB(最高有效位)三页组成。需要说明的是,有的闪存无字线,每个数据块直接由多个页组成。数据块是闪存擦除的基本单位。对于有字线的闪存,字线是闪存读写的基本单位;对于无字线的闪存,页是闪存读写的基本单位。当一个字线或者页被写入数据后,只有在所在数据块进行了擦除操作之后,才可进行新的写入操作。

在基于闪存的固态硬盘(采用闪存芯片作为存储介质的固态硬盘)中,当数据存放到闪存页上时,基于可靠性要求,必须有纠错码保护。目前,闪存页上的数据是按照纠错单元进行存放,一个闪存页可存放多个纠错单元。如图2所示,纠错单元由有效数据和校验数据组成,校验数据用于有效数据的纠错处理;有效数据又分为用户数据和管理数据,管理数据一般也称为元信息,用于固态硬盘中固件算法的管理。具体地,固态硬盘的控制器包含SBM(System Buffer Management,系统缓冲区管理)、ECC Engine(纠错引擎)及FLC(闪存控制器)。从逻辑角度,用户数据是按照逻辑映射单元划分。则如图3及图4所示,闪存的数据写入过程为:1)利用SBM将待写入闪存的逻辑映射单元和元信息分解成一定大小的纠错单元;2)利用ECC Engine将分解得到的各纠错单元进行编码,得到编码后的各纠错单元;3)利用FLC将编码后的各纠错单元组合成页写入到闪存。闪存的数据读取过程为:1)利用FLC读取闪存中有待读取的各纠错单元;2)利用ECC Engine将读取的各纠错单元进行解码(解码过程即纠错过程:错误比特还原成正确比特);3)利用SBM将解码后的各纠错单元中用于存放用户数据的逻辑块组合成逻辑映射单元,并将组合的逻辑映射单元及解码后的各纠错单元中的元信息送到固态硬盘的动态随机存储器,供主机读取。

在固态硬盘中,垃圾回收是一种常规操作。垃圾回收操作的原理为:由于固态硬盘所在主机的数据更新后,原来在闪存的数据便成为无效数据,导致闪存中有的数据块同时包含有效数据和无效数据,需要将这些数据块内仍然有效的数据整理搬移到新的数据块,以便释放掉无效数据所占用的存储空间。如图5所示,数据块A和数据块B均同时包含有效数据和无效数据,即有效数据分散占据两个数据块,通过整理搬移后集中到同一个数据块C,从而释放掉数据块A和数据块B的存储空间(总体上讲释放的是无效数据的空间)。其中,数据块A和数据块B称为源数据块,数据块C称为目的数据块,一般都是多个源数据块对应一个目的数据块。

则垃圾回收中的纠错处理过程为(如图6所示):步骤S1:利用FLC从源数据块的有效页读取纠错单元后放在内部缓存;步骤S2:利用ECC Engine将读取的纠错单元进行解码;步骤S3:丢弃解码后的纠错单元的纠错校验数据,并修改其内的元信息;步骤S4:利用ECCEngine对修改好的纠错单元进行编码,得到包含新的纠错校验数据的纠错单元;步骤S5:将编码后的纠错单元写入目的数据块。需要说明的是,在数据搬移过程中,元信息和纠错校验数据均发生变化,而纠错校验数据变化的原因是元信息发生变化,唯一不变的是逻辑块中的用户数据。

可见,在固态硬盘的垃圾回收过程中,每个纠错单元均需要进行解码和编码操作,但在固态硬盘中,垃圾回收是一种非常频繁的操作,导致编解码操作过频繁,内部总线IO压力过大。

因此,如何提供一种解决上述技术问题的方案是本领域的技术人员目前需要解决的问题。

发明内容

本发明的目的是提供一种基于闪存的固态硬盘及其数据管理方法,只有在纠错单元所含元信息为时变信息时才需完整的解码和编码操作,从而减少了编解码操作,减轻了内部总线IO压力。

为解决上述技术问题,本发明提供了一种数据管理方法,应用于基于闪存的固态硬盘,包括:

将待写入所述闪存的元信息分为非时变信息和时变信息,并将所述非时变信息和所述时变信息分配给不同的纠错单元,且将所述不同的纠错单元编码后写入所述闪存中;

当所述闪存中出现待搬移数据的源数据块时,从所述闪存中确定用于存放所述源数据块中有效页内各纠错单元的目的数据块;

获取目标纠错单元写入所述目的数据块后的RBER预期值,并判断所述RBER预期值是否小于预设比特错误率阈值、所述目标纠错单元所含元信息是否为非时变信息;其中,所述目标纠错单元为所述有效页内任一纠错单元;

若判断结果均为是,则直接将所述目标纠错单元写入所述目的数据块;

若判断结果中存在否的情况,则将所述目标纠错单元进行解码,并在所述元信息为非时变信息时,将解码后的目标纠错单元直接写入所述目的数据块;或在所述元信息为时变信息时,更新解码后的目标纠错单元所含的元信息,并对更新元信息的目标纠错单元进行重新编码,且将重新编码后的目标纠错单元写入所述目的数据块。

优选地,获取目标纠错单元写入所述目的数据块后的RBER预期值,包括:

获取所述源数据块中有效页内纠错单元的RBER参考值,并获取所述目的数据块的IRBER值;

将所述RBER参考值加上所述IRBER值,得到RBER预期评估值,并将所述RBER预期评估值作为所述目标纠错单元写入所述目的数据块后的RBER预期值。

优选地,获取所述源数据块中有效页内纠错单元的RBER参考值,包括:

根据所述源数据块的有效页地址,对目标页内各纠错单元均进行解码,得到所述目标页内各纠错单元的RBER值;其中,所述目标页为任一所述有效页;

从所述目标页内各纠错单元的RBER值中选择最大的RBER值,并将所述最大的RBER值作为所述源数据块中有效页内各纠错单元的RBER参考值。

优选地,根据所述源数据块的有效页地址,对目标页内各纠错单元均进行解码,包括:

根据所述源数据块的有效页地址确定所述源数据块的第一个有效页,以对所述第一个有效页内各纠错单元均进行解码。

优选地,所述数据管理方法还包括:

预先设置所述闪存中不同数据块的地址与IRBER值之间的对应关系;

获取所述目的数据块的IRBER值,包括:

根据所述目标数据块的地址查询所述对应关系,以确定所述目的数据块的IRBER值。

优选地,预先设置所述闪存中不同数据块的地址与IRBER值之间的对应关系,包括:

预先设置表征所述闪存中不同数据块的地址与IRBER值之间的对应关系的IRBER维护表。

优选地,将所述不同纠错单元编码后写入所述闪存中,包括:

将分配有所述非时变信息的纠错单元写入闪存页的预设位置,并将分配有所述时变信息的纠错单元写入所述闪存页的剩余位置;

则判断所述目标纠错单元所含元信息是否为非时变信息,包括:

判断所述目标纠错单元是否存放于所述闪存页的预设位置;

若是,则确定所述目标纠错单元所含元信息为非时变信息;

若否,则确定所述目标纠错单元所含元信息为时变信息。

为解决上述技术问题,本发明还提供了一种基于闪存的固态硬盘,包括闪存;还包括:

固态硬盘控制器,用于在执行所存储的计算机程序时实现上述任一种数据管理方法的步骤。

优选地,所述固态硬盘控制器包括:

SBM;所述SBM包括数据流管理器,用于所述固态硬盘涉及的相关数据流的管理;

纠错引擎,用于所述纠错单元的编码及解码操作;

RAM,用于存放所述纠错单元的编解码数据;

闪存控制器,用于将所述RAM中缓存的数据写入到所述闪存,或将所述闪存的数据读取到所述RAM。

优选地,所述数据流管理器包括:

信息管理器,用于获取、管理并存放所述RBER参考值、所述目的数据块的IRBER值、所述RBER预期值、所述预设比特错误率阈值、所述源数据块的地址、所述目的数据块的地址、所述源数据块的有效页地址及分配有所述非时变信息的纠错单元在所述内存页的预设位置信息;

数据处理器,用于所述纠错单元内元信息的分配和更新管理,及所述纠错单元内纠错校验数据的管理;

纠错控制管理器,用于控制所述纠错引擎是否进行所述纠错单元的编码及解码操作;

闪存控制管理器,用于控制所述闪存控制器进行闪存读写操作。

本发明提供了一种数据管理方法,将待写入闪存的元信息分为非时变信息和时变信息,并将非时变信息和时变信息分配给不同纠错单元,且将不同纠错单元编码后写入闪存中。对于纠错单元,有两个条件:第一个是纠错单元写入目的数据块后的RBER预期值小于预设比特错误率阈值;第二个是源数据块的纠错单元所含元信息为非时变信息。在纠错单元需从源数据块搬移至目的数据块时,若同时满足两个条件,则纠错单元无需编解码,直接搬移即可;若未同时满足两个条件,则纠错单元需先解码,在纠错单元所含元信息为非时变信息时,无需编码,直接将解码后的纠错单元搬移即可;在纠错单元所含元信息为时变信息时,需更新元信息并重新编码,而后将重新编码后的纠错单元搬移即可。可见,本申请只有在纠错单元所含元信息为时变信息时才需完整的解码和编码操作,从而减少了编解码操作,减轻了内部总线IO压力。

本发明还提供了一种基于闪存的固态硬盘,与上述数据管理方法具有相同的有益效果。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为现有技术中的一种闪存的基本结构图;

图2为现有技术中的一种纠错单元的组成示意图;

图3为现有技术中的一种固态硬盘中不同视角示意图;

图4为现有技术中的一种固态硬盘中闪存的数据读写流程示意图;

图5为现有技术中的一种固态硬盘中垃圾回收的示意图;

图6为现有技术中的一种垃圾回收中的纠错处理流程示意图;

图7为本发明实施例提供的一种数据管理方法的流程图;

图8为本发明实施例提供的一种元信息的分配原理图;

图9为本发明实施例提供的第一种固态硬盘中垃圾回收的示意图;

图10为本发明实施例提供的第二种固态硬盘中垃圾回收的示意图;

图11为本发明实施例提供的一种垃圾回收中的纠错处理流程示意图;

图12为本发明实施例提供的一种固态硬盘控制器的结构示意图;

图13为本发明实施例提供的一种数据流管理器的结构示意图;

图14为本发明实施例提供的一种固态硬盘SSD的结构示意图。

具体实施方式

本发明的核心是提供一种基于闪存的固态硬盘及其数据管理方法,只有在纠错单元所含元信息为时变信息时才需完整的解码和编码操作,从而减少了编解码操作,减轻了内部总线IO压力。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参照图7,图7为本发明实施例提供的一种数据管理方法的流程图。

该数据管理方法应用于基于闪存的固态硬盘,包括:

步骤S1:将待写入闪存的元信息分为非时变信息和时变信息,并将非时变信息和时变信息分配给不同的纠错单元,且将不同的纠错单元编码后写入闪存中。

具体地,现有的闪存的数据写入过程为:1)将待写入闪存的逻辑映射单元(用户数据)和元信息分解成预设数据大小的纠错单元;2)将分解得到的各纠错单元进行编码,得到编码后的各纠错单元;3)将编码后的各纠错单元组合成页写入到闪存。

通常元信息会被分散到多个纠错单元内,而元信息内大部分是非时变信息(在固态硬盘生命周期内一直不会变),只有小部分是时变信息(每次固态硬盘的垃圾回收操作都需更新内容),如时间戳等,所以本申请在闪存的数据写入过程中,先将待写入闪存的元信息分为非时变信息和时变信息,并将非时变信息和时变信息分配给不同的纠错单元(如图8所示),然后将不同的纠错单元编码后写入闪存中,以为后续处理不同的纠错单元提供依据。

步骤S2:当闪存中出现待搬移数据的源数据块时,从闪存中确定用于存放源数据块中有效页内各纠错单元的目的数据块。

具体地,当闪存中出现待搬移数据的源数据块(包含存放无效数据的无效页和存放有效数据的有效页)时,本申请需从闪存中确定目的数据块(空数据块),目的是将源数据块中有效页内各纠错单元存放至目的数据块,从而完成垃圾回收操作。

步骤S3:获取目标纠错单元写入目的数据块后的RBER预期值,并判断RBER预期值是否小于预设比特错误率阈值、目标纠错单元所含元信息是否为非时变信息;若判断结果均为是,则执行步骤S4;若判断结果中存在否的情况,则执行步骤S5。步骤S4:直接将目标纠错单元写入目的数据块。步骤S5:将目标纠错单元进行解码,并在元信息为非时变信息时,将解码后的目标纠错单元直接写入目的数据块;或在元信息为时变信息时,更新解码后的目标纠错单元所含的元信息,并对更新元信息的目标纠错单元进行重新编码,且将重新编码后的目标纠错单元写入目的数据块。

需要说明的是,本申请的目标纠错单元为源数据块中有效页内任一纠错单元。

具体地,现有的源数据块中数据搬移至目的数据块的过程为:1)从源数据块的有效页中读取纠错单元;2)将读取的纠错单元进行解码;3)丢弃解码后的纠错单元的纠错校验数据,并修改解码后的纠错单元的元信息;4)对修改好的纠错单元进行编码,得到包含新的纠错校验数据的纠错单元;5)将编码后的纠错单元写入目的数据块。

需要说明的是,纠错单元由有效数据和纠错校验数据组成,有效数据又分为用户数据和元信息。纠错单元的解码过程即纠错过程,目的是将纠错单元的有效数据中错误比特还原成正确比特,以满足纠错单元的比特错误率要求;纠错单元的编码过程是为了在纠错单元所含元信息修改后,按照修改后的元信息重新编码得到新的纠错校验数据。

也就是说,若源数据块中一纠错单元原本就满足比特错误率要求,且此纠错单元所含元信息为非时变信息,则此纠错单元在从源数据块搬移至目的数据块时,便无需进行解码和编码操作,直接搬移即可,如图9所示;若源数据块中一纠错单元原本不满足比特错误率要求,但此纠错单元所含元信息为非时变信息,则此纠错单元在从源数据块搬移至目的数据块时,便只需进行解码操作,无需进行编码操作,如图10所示;若源数据块中一纠错单元所含元信息为时变信息,则无论此纠错单元满不满足比特错误率要求,为了更新元信息及按照更新的元信息重新得到新的纠错校验数据,此纠错单元在从源数据块搬移至目的数据块时,既需进行解码操作,又需进行编码操作,如图6所示。

基于此,本申请在源数据块中数据搬移至目的数据块的过程中,获取源数据块中有效页内任一纠错单元(称为目标纠错单元)写入目的数据块后的RBER(Raw Bit ErrorRate,原始比特错误率)预期值,并判断RBER预期值是否小于预设比特错误率阈值、目标纠错单元所含元信息是否为非时变信息;若RBER预期值小于预设比特错误率阈值(目标纠错单元满足比特错误率要求)、且目标纠错单元所含元信息为非时变信息,即判断结果均为是,则直接将目标纠错单元写入目的数据块;若RBER预期值不小于预设比特错误率阈值(目标纠错单元不满足比特错误率要求)和/或目标纠错单元所含元信息为时变信息,即判断结果中存在否的情况,则将目标纠错单元进行解码,然后,若目标纠错单元所含元信息为非时变信息,则将解码后的目标纠错单元直接写入目的数据块;若目标纠错单元所含元信息为时变信息,则更新解码后的目标纠错单元所含的元信息,并对更新元信息的目标纠错单元进行重新编码,且将重新编码后的目标纠错单元写入目的数据块。

综上,对于源数据块中有效页内任一纠错单元,有两个条件:第一个是纠错单元写入所述目的数据块后的RBER预期值小于预设比特错误率阈值;第二个是源数据块的纠错单元所含元信息为非时变信息。在纠错单元需从源数据块搬移至目的数据块时,若同时满足两个条件,则纠错单元无需编解码,直接搬移即可;若未同时满足两个条件,则纠错单元需先解码,在纠错单元所含元信息为非时变信息时,无需编码,直接将解码后的纠错单元搬移即可;在纠错单元所含元信息为时变信息时,需更新元信息并重新编码,而后将重新编码后的纠错单元搬移即可。可见,本申请只有在纠错单元所含元信息为时变信息时才需完整的解码和编码操作,从而减少了编解码操作,减轻了内部总线IO(Input/Output,输入/输出)压力。

在上述实施例的基础上:

作为一种可选的实施例,获取目标纠错单元写入目的数据块后的RBER预期值,包括:

获取源数据块中有效页内纠错单元的RBER参考值,并获取目的数据块的IRBER值;

将RBER参考值加上IRBER值,得到RBER预期评估值,并将RBER预期评估值作为目标纠错单元写入目的数据块后的RBER预期值。

具体地,本申请获取目标纠错单元写入目的数据块后的RBER预期值的过程为:1)获取源数据块中有效页内纠错单元的RBER参考值,并获取目的数据块的IRBER(InitialRaw Bit Error Rate,初始原始错误比特率)值;需要说明的是,源数据块中有效页内所有纠错单元对应同一RBER参考值;2)将源数据块中有效页内纠错单元的RBER参考值加上目的数据块的IRBER值,得到RBER预期评估值;3)将计算得到的RBER预期评估值作为目标纠错单元写入目的数据块后的RBER预期值。

可见,源数据块中有效页内所有纠错单元对应同一RBER预期值,即只要按照步骤1)和步骤2)计算出RBER预期评估值,便可得到源数据块中有效页内所有纠错单元对应的RBER预期值。

作为一种可选的实施例,获取源数据块中有效页内纠错单元的RBER参考值,包括:

根据源数据块的有效页地址,对目标页内各纠错单元均进行解码,得到目标页内各纠错单元的RBER值;其中,目标页为任一有效页;

从目标页内各纠错单元的RBER值中选择最大的RBER值,并将最大的RBER值作为源数据块中有效页内各纠错单元的RBER参考值。

具体地,本申请获取源数据块中有效页内纠错单元的RBER参考值的过程为:1)根据源数据块的有效页地址,对源数据块的任一有效页(称为目标页)内各纠错单元均进行解码,可得到目标页内各纠错单元的RBER值;2)比较目标页内各纠错单元的RBER值,以从目标页内各纠错单元的RBER值中选择最大的RBER值;3)将选择出的最大的RBER值作为源数据块中有效页内各纠错单元的RBER参考值。

之所以设置源数据块中有效页内所有纠错单元对应同一RBER参考值,是因为同一数据块内不同页的纠错单元的RBER情况差异不大,同一页内不同纠错单元的RBER情况差异也不大。之所以以目标页内各纠错单元最大的RBER值作为RBER参考值,是因为最大的RBER值满足比特错误率要求,其余RBER值均满足比特错误率要求。

作为一种可选的实施例,根据源数据块的有效页地址,对目标页内各纠错单元均进行解码,包括:

根据源数据块的有效页地址确定源数据块的第一个有效页,以对第一个有效页内各纠错单元均进行解码。

具体地,本申请获取源数据块的有效页内纠错单元的RBER参考值的过程具体为:1)根据源数据块的有效页地址,确定源数据块的第一个有效页;2)对源数据块的第一个有效页内各纠错单元均进行解码,可得到第一个有效页内各纠错单元的RBER值;2)比较第一个有效页内各纠错单元的RBER值,以从第一个有效页内各纠错单元的RBER值中选择最大的RBER值;3)将选择出的最大的RBER值作为源数据块的有效页内各纠错单元的RBER参考值。

之所以选择源数据块的第一个有效页分析,是因为根据源数据块的有效页地址可优先读取到源数据块的第一个有效页,便于RBER参考值的分析。作为一种可选的实施例,数据管理方法还包括:

预先设置闪存中不同数据块的地址与IRBER值之间的对应关系;

获取目的数据块的IRBER值,包括:

根据目标数据块的地址查询对应关系,以确定目的数据块的IRBER值。

具体地,本申请还提前设置闪存中不同数据块的地址与IRBER值之间的对应关系,目的是在从闪存中确定目的数据块之后,根据目标数据块的地址查询对应关系,以确定目的数据块的IRBER值。

作为一种可选的实施例,预先设置闪存中不同数据块的地址与IRBER值之间的对应关系,包括:

预先设置表征闪存中不同数据块的地址与IRBER值之间的对应关系的IRBER维护表。

具体地,本申请提前设置的闪存中不同数据块的地址与IRBER值之间的对应关系具体以表格形式设置,称为IRBER维护表。则本申请在从闪存中确定目的数据块之后,根据目标数据块的地址查询IRBER维护表,以确定目的数据块的IRBER值。

作为一种可选的实施例,将不同纠错单元编码后写入闪存中,包括:

将分配有非时变信息的纠错单元写入闪存页的预设位置,并将分配有时变信息的纠错单元写入闪存页的剩余位置;

则判断目标纠错单元所含元信息是否为非时变信息,包括:

判断目标纠错单元是否存放于闪存页的预设位置;

若是,则确定目标纠错单元所含元信息为非时变信息;

若否,则确定目标纠错单元所含元信息为时变信息。

具体地,本申请具体将分配有非时变信息的纠错单元写入闪存页的预设位置,并将分配有时变信息的纠错单元写入闪存页的剩余位置,则通过判断目标纠错单元是否存放于闪存页的预设位置,便可判断出目标纠错单元所含元信息是否为非时变信息,具体是若目标纠错单元存放于闪存页的预设位置,则目标纠错单元所含元信息为非时变信息;若目标纠错单元未存放于闪存页的预设位置,则目标纠错单元所含元信息为时变信息。

综上,如图11所示,在闪存的垃圾回收过程中,数据管理处理的具体流程为:步骤S11:获得目的数据块地址,并查询获得目的数据块的IRBER值;其中,IRBER值用于判断第一条件;步骤S12:获得源数据块地址,读取有效页;步骤S13:判断读取的有效页是否为第一个有效页,如果是进入步骤S14,否则进入步骤S15;步骤S14:将第一个有效页内各个纠错单元解码获得的最大RBER作为RBER参考值;其中,RBER参考值用于判断第一条件;步骤S15:所有有效页(包括第一个有效页)的目标纠错单元是否符合第一条件和第二条件,如果符合,则进入步骤S19,否则进入步骤S16;步骤S16:对目标纠错单元进行解码后,进入步骤S17;步骤S17:解码后的目标纠错单元是否符合第二条件,如果是进入步骤S20,否则进入步骤S18;步骤S18:解码的目标纠错单元更新元信息后进行重新编码,然后写入闪存;步骤S19:目标纠错单元不进行解码和编码,直接写入闪存;步骤S20:解码的目标纠错单元不更新元信息,利用原有纠错校验数据,不进行编码直接写入闪存。

需要说明的是,上述实施例所提供的数据管理方法均可由基于闪存的固态硬盘中的控制器编程或者硬件逻辑电路实现。具体地,如图12所示,固态硬盘控制器包括:1)SBM(System Buffer Management,系统缓冲区管理);SBM包括数据流管理器:用于固态硬盘涉及的相关数据流的管理;2)ECC Engine(纠错引擎):用于纠错单元的编码及解码操作;3)RAM(Random Access Memory,随机存取存储器):用于存放纠错单元的编解码数据;4)FLC(闪存控制器):用于将RAM中缓存的数据写入到闪存,或将闪存的数据读取到RAM。其中,如图13所示,数据流管理器包括:1)信息管理器:用于获取、管理并存放RBER参考值、目的数据块的IRBER值、RBER预期值、预设比特错误率阈值、源数据块的地址、目的数据块的地址、源数据块的有效页地址及分配有非时变信息的纠错单元在内存页的预设位置信息;2)数据处理器:用于纠错单元内元信息的分配和更新管理,及纠错单元内纠错校验数据的管理;3)纠错控制管理器:用于控制纠错引擎是否进行纠错单元的编码及解码操作;4)闪存控制管理器:用于控制闪存控制器进行闪存读写操作(具体的数据管理方法在上述实施例已详细介绍,本申请在此不再赘述,相互参照即可)。

另外,基于闪存的固态硬盘通常指的是SSD(Solid State Disk,固态驱动器),如图14所示,固态硬盘SSD包括:1)SSD Controller(固态硬盘控制器):作为控制运算单元,管理SSD内部系统;2)NAND Flash Array(非易失性闪存阵列):作为存储单元,存储数据(用户数据和系统数据),一般呈现多个闪存通道(Channel,简写为CH),一个通道独立连接一组NAND Flash Array,如图14中CH0/CH1······CHx;其中,NAND Flash(闪存)的特性是写入之前必须进行擦除,且每个闪存擦除次数有限;3)DDR(Double Data Rate,双倍速率同步动态随机存储器)/DRAM(Dynamic Random Access Memory,动态随机存取存储器):作为缓存及算法表的存储单元;4)Connector(连接器):用于连接主机,如PC(PersonalComputer,个人计算机)或者服务器;5)其他外围单元,如PMIC(Power Management IC,电源管理集成电路)、OSC(Oscillator,晶振)、JTAG(Joint Test Action Group,联合测试工作组)接口、SPI(Serial Peripheral Interface,串行外设接口)接口、Sensor(传感器)及UART(Universal Asynchronous Receiver/Transmitter,通用异步收发传输器)接口等。

本申请还提供了一种基于闪存的固态硬盘,包括闪存;还包括:

固态硬盘控制器,用于在执行所存储的计算机程序时实现上述任一种数据管理方法的步骤。

作为一种可选的实施例,固态硬盘控制器包括:

SBM;SBM包括数据流管理器,用于固态硬盘涉及的相关数据流的管理;

纠错引擎,用于纠错单元的编码及解码操作;

RAM,用于存放纠错单元的编解码数据;

闪存控制器,用于将RAM中缓存的数据写入到闪存,或将闪存的数据读取到RAM。

作为一种可选的实施例,数据流管理器包括:

信息管理器,用于获取、管理并存放RBER参考值、目的数据块的IRBER值、RBER预期值、预设比特错误率阈值、源数据块的地址、目的数据块的地址、源数据块的有效页地址及分配有非时变信息的纠错单元在内存页的固定位置信息;

数据处理器,用于纠错单元内元信息的分配和更新管理,及纠错单元内纠错校验数据的管理;

纠错控制管理器,用于控制纠错引擎是否进行纠错单元的编码及解码操作;

闪存控制管理器,用于控制闪存控制器进行闪存读写操作。

本申请提供的基于闪存的固态硬盘的介绍请参考上述数据管理方法的实施例,本申请在此不再赘述。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

20页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:分布式存储数据读取效率优化方法、系统、设备和介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类