本发明专利技术公开了一种随机化方法及数据读写方法,包括:基于目标写入扇区的物理地址以及写入数据的当前块的写入/擦除计数,生成基值数据;提供随机数据表,基于所述基值数据从所述随机数据表中查找随机数;基于查找到的随机数执行逻辑运算,以根据逻辑运算的结果生成随机种子。本发明专利技术实施例基于物理地址以及写入/擦除计数来生成基值数据,由此产生的随机数的随机性更好,从而提高了flash数据的可靠性,随机数的生成不仅仅依靠物理地址,扰码器可以实现更好的闪存数据随机性。现更好的闪存数据随机性。现更好的闪存数据随机性。
【技术实现步骤摘要】
一种随机化方法及数据读写方法
[0001]本专利技术涉及存储
,尤其涉及一种随机化方法及数据读写方法。
技术介绍
[0002]SSD存储的Flash数据需要随机化,如果Flash数据不够随机,就会相互干扰。
[0003]通常,数据在写入闪存之前由加扰器随机化,加扰器生成随机数据的能力由它的决定和种子控制。种子是扰码器生成随机数序列的起点。
[0004]现在的存储方案中,经常使用Nand Flash作为存储器件。多比特存储单元(Mult1
‑
Level CelI,MLC)中一个单元(Cell)中存放2比特(bit),相比于单比特存储单元(Single Level,SLC)中一个Cell中只存I比特(bit),增多了电平阈值,增大了出现比特(bit)翻转的几率。由于Nand Flash可靠性较低,所以在使用时需要保证其可靠性,保证不会写入全零或全一的数据,保证相邻数据尽量不相同。
[0005]利用传统的方法生成的随机种子如果将相同的数据写入附近扇区,则种子几乎相同,加扰后的数据没有足够的随机性。
技术实现思路
[0006]本专利技术实施例提供一种随机化方法及数据读写方法,用以使得flash数据的随机性更好,提高flash数据的可靠性,随机数的生成不仅仅依靠物理地址,从而扰码器可以实现更好的闪存数据随机性。
[0007]本专利技术实施例提供一种随机化方法,包括:
[0008]基于目标写入扇区的物理地址以及写入数据的当前块的写入/擦除计数,生成基值数据;
[0009]提供随机数据表,基于所述基值数据从所述随机数据表中查找随机数;
[0010]基于查找到的随机数执行逻辑运算,以根据逻辑运算的结果生成随机种子。
[0011]可选的,所述目标写入扇区的物理地址包括:lun、块、页、平面和扇区号;
[0012]基于目标写入扇区的物理地址以及写入数据的当前块的写入/擦除计数,生成基值数据包括:
[0013]基于目标写入扇区的物理地址,以及,当前块的写入/擦除计数的指定位数的值,生成目标位数的基值数据。
[0014]可选的,所述随机数据表包含指定数量的随机数;
[0015]基于所述基值数据从所述随机数据表中查找随机数包括:
[0016]将生成的目标位数的基值数据拆分为多个位数相同的子值数据;
[0017]将子值数据作为索引,基于所述随机数据表,查询随机数;
[0018]将查询获得的随机数,按照拆分顺序的逆序组成所需的目标位数的随机数。
[0019]可选的,基于查找到的随机数执行逻辑运算,以根据逻辑运算的结果生成随机种子包括:
[0020]将查找到的目标位数的随机数与其第一位数的移位副本进行异或运算;
[0021]将与其第一位数的移位副本异或运算的结果,再,与其第二位数的移位副本进行异或运算;
[0022]将与其第二位数的移位副本异或运算的结果,再,与其第三位数的移位副本进行异或运算,其中,第一位数、第二位数以及第三位数均不相同。
[0023]可选的,执行逻辑运算之后还包括:
[0024]将逻辑运算的结果作为基值数据,重复查找随机数,以生成随机种子。
[0025]可选的,
[0026]所述当前块的写入/擦除计数作为元数据存储在存储器中,且,元数据以SLC模式编写;
[0027]对于存储有写入/擦除计数的区域,直接基于对应写入扇区的物理地址确定基值数据,以生成该区域的随机种子;
[0028]在存储器重启的情况下,执行检索,以获得相应区域的写入/擦除计数。
[0029]可选的,在当前块丢失写入/擦除计数的元数据的情况下,通过如下方式恢复写入/擦除计数:
[0030]基于当前块的错误擦写次数X,为当前块的写入/擦除计数赋值Y;
[0031]基于Y+1生成随机种子,利用生成的随机种子读取数据;
[0032]若数据读取错误,则重复Y+1生成随机种子,直至数据读取正确,以确定当前块丢失写入/擦除计数值。
[0033]本申请还提出一种数据读写方法,包括:
[0034]在数据写入的情况下,利用前述的随机化方法生成的随机种子写入扰码器的硬件寄存器,扰码器的硬件寄存器利用生成的随机种子加扰数据并传递给闪存控制器,并将其发送到闪存;
[0035]在数据读取的情况下,利用前述的随机化方法生成的随机种子写入扰码器的硬件寄存器,从闪存读取数据,扰码器的硬件寄存器利用生成的随机种子对读取的数据进行解扰。
[0036]本申请还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现前述的方法的步骤。
[0037]本专利技术实施例基于物理地址以及写入/擦除计数来生成基值数据,由此产生的随机数的随机性更好,从而提高了flash数据的可靠性,随机数的生成不仅仅依靠物理地址,扰码器可以实现更好的闪存数据随机性。
[0038]上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。
附图说明
[0039]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0040]图1为本申请实施例随机化方法的基本流程图;
[0041]图2为利用本申请实施例生成的随机种子进行数据写的流程示例;
[0042]图3为利用本申请实施例生成的随机种子进行数据读的流程示例。
具体实施方式
[0043]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0044]本专利技术实施例提供一种随机化方法,如图1所示,包括:
[0045]在步骤S101中,基于目标写入扇区的物理地址以及写入数据的当前块的写入/擦除计数,生成基值数据。具体的,SSD的寿命局限于它的读写次数。对相同的存储单元不断地进行编写和擦除将更容易导致该存储单元受到永久性的损害。为了避免该情况的发生,有一种叫“Wear
‑
Leveling”的特殊的算法被配置到SSD中,为了将擦除/写入循环平均地分配到SSD的所有存储单元中。这样就避免了对同一个存储单元持续不断地进行擦除/写入操作,从而有效地延长了SSD的寿命。保证SSD的磨损平衡,通常使用闪存转换层(FTL)提供对逻辑地址到物理地址映射的管理,同时对闪存和无效块映射进行擦除计数管理。每个块的擦除次数本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种随机化方法,其特征在于,包括:基于目标写入扇区的物理地址以及写入数据的当前块的写入/擦除计数,生成基值数据;提供随机数据表,基于所述基值数据从所述随机数据表中查找随机数;基于查找到的随机数执行逻辑运算,以根据逻辑运算的结果生成随机种子。2.如权利要求1所述的随机化方法,其特征在于,所述目标写入扇区的物理地址包括:lun、块、页、平面和扇区号;基于目标写入扇区的物理地址以及写入数据的当前块的写入/擦除计数,生成基值数据包括:基于目标写入扇区的物理地址,以及,当前块的写入/擦除计数的指定位数的值,生成目标位数的基值数据。3.如权利要求2所述的随机化方法,其特征在于,所述随机数据表包含指定数量的随机数;基于所述基值数据从所述随机数据表中查找随机数包括:将生成的目标位数的基值数据拆分为多个位数相同的子值数据;将子值数据作为索引,基于所述随机数据表,查询随机数;将查询获得的随机数,按照拆分顺序的逆序组成所需的目标位数的随机数。4.如权利要求3所述的随机化方法,其特征在于,基于查找到的随机数执行逻辑运算,以根据逻辑运算的结果生成随机种子包括:将查找到的目标位数的随机数与其第一位数的移位副本进行异或运算;将与其第一位数的移位副本异或运算的结果,再,与其第二位数的移位副本进行异或运算;将与其第二位数的移位副本异或运算的结果,再,与其第三位数的移位副本进行异或运算,其中,第一位数、第二位数以及第三位数均不相同。5.如权利要求4所述的随机化方法,其特征在于,执行逻辑运算之后还包括:将逻辑运算的...
【专利技术属性】
技术研发人员:约翰,
申请(专利权)人:镕铭微电子济南有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。