CN115904228A - 闪存的数据随机化处理方法和装置 - Google Patents
闪存的数据随机化处理方法和装置 Download PDFInfo
- Publication number
- CN115904228A CN115904228A CN202211308527.1A CN202211308527A CN115904228A CN 115904228 A CN115904228 A CN 115904228A CN 202211308527 A CN202211308527 A CN 202211308527A CN 115904228 A CN115904228 A CN 115904228A
- Authority
- CN
- China
- Prior art keywords
- target
- data
- tap
- shift register
- flash memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Read Only Memory (AREA)
Abstract
本发明提供了一种闪存的数据随机化处理方法和装置。其中,该方法包括:获取目标数据,确定目标数据对应的闪存页数;基于闪存页数确定目标移位寄存器、目标抽头和目标种子,基于帧数确定目标扰动;对目标种子和目标扰动执行异或操作,得到异或结果;将异或结果输入目标移位寄存器中进行运算,输出运算结果;基于目标抽头从运算结果中确定抽头数据;将抽头数据与目标数据执行异或操作,得到加扰数据;将加扰数据写入闪存中。可以显著增强高字线层数闪存的数据随机性,节省种子个数,显著降低控制器成本,设计灵活,兼容性强,可适配不同类型的闪存。
Description
技术领域
本发明闪存技术领域,尤其是涉及一种闪存的数据随机化处理方法和装置。
背景技术
闪存是一种非易失存储介质,用于存储0、1信息。闪存的Bit-line(位线)之间、Word-line(字线)之间因为物理距离近,存在较大的相互干扰。一旦Bit-line之间、Word-line之间存储的数据相同,会因为相互干扰而导致数据出错,降低闪存的可靠性。因此,在Host data(主机数据)写入闪存前,需要经过随机化模块将数据进行随机化处理,然后将处理后的数据写入闪存。
数据的随机化处理一般通过线性反馈移位寄存器(LFSR)和异或运算(XOR)模块来实现。原始种子(Seed)经过LFSR之后产生一组随机数,然后与Host data执行XOR运算得到随机化处理的数据(Scrambled data),然后将该数据写入闪存,从而实现对写入数据的随机化。
现有的随机化模块一般通过一个16bit或者32bit的LFSR来实现。但是随着闪存技术发展,闪存的Word-line层数越来越高,即一个闪存block(块)的page(页)数越来越多,从而导致了如下缺陷。如:
(1)需要更多的seed来支持未来高Word-line层数闪存的随机化,导致用于存放seed的memory(存储)空间增加,造成控制器成本上升。
(2)维持原有seed个数会导致对未来高Word-line层数闪存的数据随机化程度不够,造成闪存的可靠性变差。
(3)一个LFSR的设计单一,在对不同类型闪存的数据随机化处理上不够灵活。
(4)因为只有一个LFSR,随机化算法基本上是硬件写死的,无法通过软件去配置。当遇到不兼容闪存时将出现无法适配的问题。
发明内容
有鉴于此,本发明的目的在于提供一种闪存的数据随机化处理方法和装置,以显著增强高字线层数闪存的数据随机性,节省种子个数,显著降低控制器成本,设计灵活,兼容性强,可适配不同类型的闪存。
第一方面,本发明实施例提供了一种闪存的数据随机化处理方法,方法包括:获取目标数据,确定目标数据对应的闪存页数;基于闪存页数确定目标移位寄存器、目标抽头和目标种子,基于帧数确定目标扰动;对目标种子和目标扰动执行异或操作,得到异或结果;将异或结果输入目标移位寄存器中进行运算,输出运算结果;基于目标抽头从运算结果中确定抽头数据;将抽头数据与目标数据执行异或操作,得到加扰数据;将加扰数据写入闪存中。
在本申请可选的实施例中,应用于数据随机化处理系统,数据随机化处理系统包括多个移位寄存器、多个抽头、异或运算模块、种子选取模块和扰动选取模块。
在本申请可选的实施例中,上述数据随机化处理系统包括16个32bit的移位寄存器,每个移位寄存器对应2个抽头。
在本申请可选的实施例中,上述基于闪存页数确定目标移位寄存器、目标抽头和目标种子,基于帧数确定目标扰动的步骤,包括:基于闪存页数和数据随机化处理系统的种子数量确定目标移位寄存器的编号、目标抽头的编号和目标种子的编号;基于目标移位寄存器的编号、目标抽头的编号和目标种子的编号分别确定目标移位寄存器、目标抽头和目标种子;基于帧数确定目标扰动的编号,基于目标扰动的编号确定目标扰动。
在本申请可选的实施例中,通过下述算式确定目标移位寄存器的编号、目标抽头的编号、目标种子的编号和目标扰动的编号:LFSR_num=Mod[Quotient(page address,n),16];LQ_num=Quotient[Quotient(page address,n),16];Seed_index=Mod(pageaddress,n);Agitation_num=Frame number;其中,Mod为取余运算,Quotient为取商运算,LFSR_num为目标移位寄存器的编号,LQ_num为目标抽头的编号,Seed_index为目标种子的编号,Agitation_num为目标扰动的编号,page address为闪存页数,n为种子数量,Framenumber为帧数。
在本申请可选的实施例中,上述算式在软件中执行。
在本申请可选的实施例中,通过下述步骤确定数据随机化处理系统的移位寄存器:从预先设置的第一数量的触发器中随机选择第二数量的触发器;其中,第二数量小于第一数量;基于预先设置的首触发器、随机选择的第二数量的触发器和预先设置的尾触发器确定移位寄存器。
在本申请可选的实施例中,通过下述步骤确定移位寄存器的第一抽头和第二抽头:从移位寄存器包括的触发器中确定第一触发器组和第二触发器组;其中,第一触发器组和第二触发器组均包括随机选择的目标数量的移位寄存器包括的触发器,第一触发器组和第二触发器组的相同的触发器的数量不大于预设的阈值;基于第一触发器组和第二触发器组分别确定第一抽头和第二抽头。
在本申请可选的实施例中,上述将异或结果输入目标移位寄存器中进行运算,输出运算结果的步骤,包括:将异或结果输入目标移位寄存器中进行运算,输出移位寄存器包括的各个触发器对应的第一数值作为运算结果;基于目标抽头从运算结果中确定抽头数据的步骤,包括:从目标移位寄存器包括的各个触发器对应的第一数值中选择目标抽头包括的各个触发器对应的第二数值作为抽头数据。
第二方面,本发明实施例还提供一种闪存的数据随机化处理装置,装置包括:目标数据获取模块,用于获取目标数据,确定目标数据对应的闪存页数;软件处理模块,用于基于闪存页数确定目标移位寄存器、目标抽头和目标种子,基于帧数确定目标扰动;硬件处理模块,用于对目标种子和目标扰动执行异或操作,得到异或结果;将异或结果输入目标移位寄存器中进行运算,输出运算结果;基于目标抽头从运算结果中确定抽头数据;将抽头数据与目标数据执行异或操作,得到加扰数据;数据写入模块,用于将加扰数据写入闪存中。
本发明实施例带来了以下有益效果:
本发明实施例提供了一种闪存的数据随机化处理方法和装置,可以显著增强高字线层数闪存的数据随机性,节省种子个数,显著降低控制器成本,设计灵活,兼容性强,可适配不同类型的闪存。
本公开的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本公开的上述技术即可得知。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种闪存数据随机化处理流程的示意图;
图2为本发明实施例提供的一种数据的随机化处理的示意图;
图3为本发明实施例提供的一种闪存的数据随机化处理方法的流程图;
图4为本发明实施例提供的另一种闪存的数据随机化处理方法的流程图;
图5为本发明实施例提供的一种数据随机化处理系统的示意图;
图6为本发明实施例提供的一种LFSR15及对应抽头LQ[7:0]_0的示意图;
图7为本发明实施例提供的一种闪存的数据随机化处理装置的结构示意图;
图8为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
闪存是一种非易失存储介质,用于存储0、1信息。闪存的Bit-line之间、Word-line之间因为物理距离近,存在较大的相互干扰。一旦Bit-line之间、Word-line之间存储的数据相同,会因为相互干扰而导致数据出错,降低闪存的可靠性。因此,可以参见图1所示的一种闪存数据随机化处理流程的示意图,在Host data写入闪存前,需要经过随机化模块将数据进行随机化处理,然后将处理后的数据写入闪存。
参见图2所示的一种数据的随机化处理的示意图,数据的随机化处理一般通过线性反馈移位寄存器和异或运算模块来实现。原始种子经过LFSR线性反馈移位寄存器之后产生一组随机数,然后与Host data执行异或运算得到随机化处理的数据,然后将该数据写入闪存,从而实现对写入数据的随机化。
目前,现有的随机化模块一般通过一个16bit或者32bit的LFSR来实现。但是随着闪存技术发展,闪存的Word-line层数越来越高,即一个闪存block的page数越来越多,从而导致了如下缺陷。如:需要更多的seed来支持未来高Word-line层数闪存的随机化,导致用于存放seed的memory空间增加,造成控制器成本上升。维持原有seed个数会导致对未来高Word-line层数闪存的数据随机化程度不够,造成闪存的可靠性变差。一个LFSR的设计单一,在对不同类型闪存的数据随机化处理上不够灵活。因为只有一个LFSR,随机化算法基本上是硬件写死的,无法通过软件去配置。当遇到不兼容闪存时将出现无法适配的问题。
基于此,本发明实施例提供的一种闪存的数据随机化处理方法,可以显著增强高字线层数闪存的数据随机性,节省种子个数,显著降低控制器成本,设计灵活,兼容性强,可适配不同类型的闪存。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种闪存的数据随机化处理方法进行详细介绍。
实施例一:
本发明实施例提供一种闪存的数据随机化处理方法,参见图3所示的一种闪存的数据随机化处理方法的流程图,该闪存的数据随机化处理方法包括如下步骤:
步骤S302,获取目标数据,确定目标数据对应的闪存页数。
本实施例中的目标数据即Host data,在获取目标数据Host data之后,可以确定目标数据Host data对应的闪存页数page。其中,闪存的基本读写操作单元是页,每一页的有效容量是512字节的倍数。
步骤S304,基于闪存页数确定目标移位寄存器、目标抽头和目标种子,基于帧数确定目标扰动。
本实施例中的目标移位寄存器一般为线性反馈移位寄存器LSFR,LSFR用于产生可重复的伪随机序列,电路由n级触发器和一些异或门构成,输入值的一部分来自于LFSR的输出端,另一部分由LFSR的各输出端进行异或运算得到。
本实施例中的移位寄存器均对应有2个抽头,抽头用于从移位寄存器输出的数据中提取抽头数据。本实施例中可以预先设置多个种子seed,在随机处理数据时选择一个种子作为目标种子。
本实施例中的扰动(Agitation)基于帧数生成,在进行数据的随机化处理时,需要添加一些基于帧数生成的扰动。
步骤S306,对目标种子和目标扰动执行异或操作,得到异或结果;将异或结果输入目标移位寄存器中进行运算,输出运算结果;基于目标抽头从运算结果中确定抽头数据;将抽头数据与目标数据执行异或操作,得到加扰数据。
线性反馈移位寄存器是指,给定前一状态的输出,将该输出的线性函数再用作输入的移位寄存器。异或运算是最常见的单比特线性函数:对寄存器的某些位进行异或操作后作为输入,再对寄存器中的各比特进行整体移位。
对于目标移位寄存器输出的运算结果,可以通过目标抽头进行抽取,从运算结果中确定抽头数据。再将抽头数据与目标数据执行异或操作,得到加扰数据Scrambled data。
步骤S308,将加扰数据写入闪存中。
加扰数据Scrambled data即随机化处理后得到的数据,可以写入闪存中。
本发明实施例提供了一种闪存的数据随机化处理方法和装置,可以显著增强高字线层数闪存的数据随机性,节省种子个数,显著降低控制器成本,设计灵活,兼容性强,可适配不同类型的闪存。
实施例二:
本实施例提供了另一种闪存的数据随机化处理方法,该方法在上述实施例的基础上实现,参见图4所示的另一种闪存的数据随机化处理方法的流程图,该闪存的数据随机化处理方法包括如下步骤:
步骤S402,获取目标数据,确定目标数据对应的闪存页数。
本实施例提供的方法,可以应用于数据随机化处理系统,数据随机化处理系统包括多个移位寄存器、多个抽头、异或运算模块、种子选取模块和扰动选取模块。
其中,数据随机化处理系统包括16个32bit的移位寄存器,每个移位寄存器对应2个抽头。参见图5所示的一种数据随机化处理系统的示意图,数据随机化处理系统由16个32bit的移位寄存器LFSR、每个LFSR两组抽头LQ、异或运算XOR、种子Seed选取和扰动Agitation选取等四部分组成。Seed个数为n,在图5中以n=400举例说明。
步骤S404,基于闪存页数和数据随机化处理系统的种子数量确定目标移位寄存器的编号、目标抽头的编号和目标种子的编号;基于目标移位寄存器的编号、目标抽头的编号和目标种子的编号分别确定目标移位寄存器、目标抽头和目标种子;基于帧数确定目标扰动的编号,基于目标扰动的编号确定目标扰动。
具体地,可以过下述算式确定目标移位寄存器的编号、目标抽头的编号、目标种子的编号和目标扰动的编号:LFSR_num=Mod[Quotient(page address,n),16];LQ_num=Quotient[Quotient(page address,n),16];Seed_index=Mod(page address,n);Agitation_num=Frame number。
其中,Mod为取余运算,Quotient为取商运算,LFSR_num为目标移位寄存器的编号,LQ_num为目标抽头的编号,Seed_index为目标种子的编号,Agitation_num为目标扰动的编号,page address为闪存页数,n为种子数量,Frame number为帧数。
可以根据Host data需要写入闪存的page address确定对应选取的LFSR编号LFSR_num和LQ[7:0]编号LQ_num,同时根据page address确定seed编号Seed_index和agitation编号Agitation_num。
其中,上述算式在软件中执行,并将计算结果提供给硬件。后续步骤由硬件自动执行。
步骤S406,对目标种子和目标扰动执行异或操作,得到异或结果;将异或结果输入目标移位寄存器中进行运算,输出运算结果;基于目标抽头从运算结果中确定抽头数据;将抽头数据与目标数据执行异或操作,得到加扰数据。
具体地,可以通过下述步骤确定数据随机化处理系统的移位寄存器:从预先设置的第一数量的触发器中随机选择第二数量的触发器;其中,第二数量小于第一数量;基于预先设置的首触发器、随机选择的第二数量的触发器和预先设置的尾触发器确定移位寄存器。
上述16个32bit的LFSR的设计按照以下原则确定:Xn为触发器,从X1-X31(即第一数量的触发器)中随机选取13个系数(即第二数量),与1(首触发器)、X32(尾触发器)一起组成一个LFSR。例如,LFSR15的多项式设定为:X32+X27+X26+X25+X22+X21+X15+X13+X11+X10+X9+X5+X3+X+1。其它LFSR则随机选取另外的系数组合,需要保证系数不能完全重复,确保随机性。
具体地,可以通过下述步骤确定移位寄存器的第一抽头和第二抽头:从移位寄存器包括的触发器中确定第一触发器组和第二触发器组;其中,第一触发器组和第二触发器组均包括随机选择的目标数量的移位寄存器包括的触发器,第一触发器组和第二触发器组的相同的触发器的数量不大于预设的阈值;基于第一触发器组和第二触发器组分别确定第一抽头和第二抽头。
上述抽头LQ的设计按照以下原则确定:从包含15个系数的LFSR多项式中选取两组系数组成LQ[7:0]_0(第一抽头)和LQ[7:0]_1(第二抽头),每组LQ[7:0]选取8(即目标数量)位系数,LQ[7:0]_0和LQ[7:0]_1选取的重复系数不超过4个(即阈值)。
参见图6所示的一种LFSR15及对应抽头LQ[7:0]_0的示意图,针对上述LFSR15,LQ可设定为如下:LQ[7:0]=[bit7,bit6,bit5,bit4,bit3,bit2,bit1,bit0];图6中的LQ[7:0]_0=[X27,X26,X22,X16,X11,X10,X6,X2];LQ[7:0]_1=[X28,X23,X22,X16,X14,X12,X6,X4]。
因此,本实施例可以将异或结果输入目标移位寄存器中进行运算,输出目标移位寄存器包括的各个触发器对应的第一数值作为运算结果;从移位寄存器包括的各个触发器对应的第一数值中选择目标抽头包括的各个触发器对应的第二数值作为抽头数据。
通过目标抽头,可以从目标移位寄存器包括的各个触发器对应的第一数值中抽取目标抽头包括的各个触发器对应的第二数值,作为抽头数据。
步骤S408,将加扰数据写入闪存中。
本实施例提供的上述方法包括以下内容:
(1)本发明实施中可以用16个32bit的LFSR组成数据随机化处理的核心模块,每个LFSR可以设定两组抽头LQ,每组抽头为1Byte。
(2)本实施例中的LFSR、LQ、seed、agitation等的选取依据page address通过软件配置来实现,可灵活适配各种类型的闪存。本实施例中的LFSR多项式的设定是从X1~X31中随机选取13个系数,与1、X32一起组成一个15位的最高幂次为32的多项式,且16个LFSR的多项式系数不重复。
(3)本实施例中的LQ的设定是从对应LFSR的多项式中选取8位系数(不包含1、X32)组成1Byte数据LQ[7:0],且两组LQ的重复系数不超过4个。
(4)本实施例中由抽头LQ得到的数据LQ[7:0]与Host data[7:0]执行XOR得到最终的随机化数据Scrambled data。
本实施例提供的上述方法具有以下优势:
(1)本实施例提供的上述方法可以显著增强高Word-line层数闪存的数据随机性。在对238L TLC闪存的数据实际仿真中,可以得到数据在Bit-line方向的分布比例在12~13%之间,满足闪存12.5±1.5%的要求。数据在Word-line方向的比例正态分Sigma为0.8%,满足闪存Sigma<4%的要求。
(2)本实施例提供的上述方法可以节省seed个数,显著降低控制器成本。比如当seed个数n=400时,针对block大小为12800page的闪存,需要的seed存储空间为32bit x400=1.6KB;而现有技术按照一个page对应一个seed,则需要32bit x 12800=51.2KB的seed存储空间。
(3)本实施例提供的上述方法的核心是由16个LFSR组成,其中LFSR、LQ、seed、agitation等的选取均通过软件配置来实现,设计灵活,兼容性强,可适配不同类型的闪存。
实施例三:
对应于上述方法实施例,本发明实施例提供了一种闪存的数据随机化处理装置,参见图7所示的一种闪存的数据随机化处理装置的结构示意图,该闪存的数据随机化处理装置包括:
目标数据获取模块71,用于获取目标数据,确定目标数据对应的闪存页数;
软件处理模块72,用于基于闪存页数确定目标移位寄存器、目标抽头和目标种子,基于帧数确定目标扰动;
硬件处理模块73,用于对目标种子和目标扰动执行异或操作,得到异或结果;将异或结果输入目标移位寄存器中进行运算,输出运算结果;基于目标抽头从运算结果中确定抽头数据;将抽头数据与目标数据执行异或操作,得到加扰数据;
数据写入模块74,用于将加扰数据写入闪存中。
本发明实施例提供了一种闪存的数据随机化处理装置,可以显著增强高字线层数闪存的数据随机性,节省种子个数,显著降低控制器成本,设计灵活,兼容性强,可适配不同类型的闪存。
上述装置应用于数据随机化处理系统,数据随机化处理系统包括多个移位寄存器、多个抽头、异或运算模块、种子选取模块和扰动选取模块。
上述数据随机化处理系统包括16个32bit的移位寄存器,每个移位寄存器对应2个抽头。
上述软件处理模块,用于基于闪存页数和数据随机化处理系统的种子数量确定目标移位寄存器的编号、目标抽头的编号和目标种子的编号;基于目标移位寄存器的编号、目标抽头的编号和目标种子的编号分别确定目标移位寄存器、目标抽头和目标种子;基于帧数确定目标扰动的编号,基于目标扰动的编号确定目标扰动。
上述软件处理模块,用于通过下述算式确定目标移位寄存器的编号、目标抽头的编号、目标种子的编号和目标扰动的编号:LFSR_num=Mod[Quotient(page address,n),16];LQ_num=Quotient[Quotient(page address,n),16];Seed_index=Mod(pageaddress,n);Agitation_num=Frame number;其中,Mod为取余运算,Quotient为取商运算,LFSR_num为目标移位寄存器的编号,LQ_num为目标抽头的编号,Seed_index为目标种子的编号,Agitation_num为目标扰动的编号,page address为闪存页数,n为种子数量,Framenumber为帧数。
上述算式在软件中执行。
上述装置还包括移位寄存器确定模块,用于从预先设置的第一数量的触发器中随机选择第二数量的触发器;其中,第二数量小于第一数量;基于预先设置的首触发器、随机选择的第二数量的触发器和预先设置的尾触发器确定移位寄存器。
上述装置还包括抽头确定模块,用于从移位寄存器包括的触发器中确定第一触发器组和第二触发器组;其中,第一触发器组和第二触发器组均包括随机选择的目标数量的移位寄存器包括的触发器,第一触发器组和第二触发器组的相同的触发器的数量不大于预设的阈值;基于第一触发器组和第二触发器组分别确定第一抽头和第二抽头。
上述硬件处理模块,用于将异或结果输入目标移位寄存器中进行运算,输出移位寄存器包括的各个触发器对应的第一数值作为运算结果;上述硬件处理模块,用于从目标移位寄存器包括的各个触发器对应的第一数值中选择目标抽头包括的各个触发器对应的第二数值作为抽头数据。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的闪存的数据随机化处理装置的具体工作过程,可以参考前述的闪存的数据随机化处理方法的实施例中的对应过程,在此不再赘述。
实施例四:
本发明实施例还提供了一种电子设备,用于运行上述闪存的数据随机化处理方法;参见图8所示的一种电子设备的结构示意图,该电子设备包括处理器101、闪存100和主机103,其中,闪存100用于存储一条或多条计算机指令,一条或多条计算机指令被处理器101执行,以实现上述闪存的数据随机化处理方法。
进一步地,图8所示的电子设备还包括、主机接口总线104、和闪存接口总线102,处理器101和主机103通过主机接口总线104连接,处理器101和闪存100通过闪存接口总线102连接。
闪存100是一种非易失性存储器(non-volatile memory)。主机接口总线104可以是PCIe总线、SATA总线或者SAS总线。闪存接口总线102可以是ONFI或者Toggle。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
处理器101可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器101中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器101可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processor,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于闪存100,处理器101读取闪存100中的信息,结合其硬件完成前述实施例的方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现上述闪存的数据随机化处理方法,具体实现可参见方法实施例,在此不再赘述。
本发明实施例所提供的闪存的数据随机化处理方法和装置的计算机程序产品,包括存储了程序代码的计算机可读存储介质,程序代码包括的指令可用于执行前面方法实施例中的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和/或装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、固态硬盘、SD卡、Micro SD卡、CFe卡、闪存颗粒等各种可以存储程序代码的介质。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种闪存的数据随机化处理方法,其特征在于,所述方法包括:
获取目标数据,确定所述目标数据对应的闪存页数;
基于所述闪存页数确定目标移位寄存器、目标抽头和目标种子,基于帧数确定目标扰动;
对所述目标种子和所述目标扰动执行异或操作,得到异或结果;将所述异或结果输入所述目标移位寄存器中进行运算,输出运算结果;基于所述目标抽头从所述运算结果中确定抽头数据;将所述抽头数据与所述目标数据执行异或操作,得到加扰数据;
将所述加扰数据写入闪存中。
2.根据权利要求1所述的方法,其特征在于,应用于数据随机化处理系统,所述数据随机化处理系统包括多个移位寄存器、多个抽头、异或运算模块、种子选取模块和扰动选取模块。
3.根据权利要求2所述的方法,其特征在于,所述数据随机化处理系统包括16个32bit的所述移位寄存器,每个所述移位寄存器对应2个所述抽头。
4.根据权利要求2所述的方法,其特征在于,基于所述闪存页数确定目标移位寄存器、目标抽头和目标种子,基于帧数确定目标扰动的步骤,包括:
基于所述闪存页数和所述数据随机化处理系统的种子数量确定目标移位寄存器的编号、目标抽头的编号和目标种子的编号;
基于所述目标移位寄存器的编号、所述目标抽头的编号和所述目标种子的编号分别确定所述目标移位寄存器、所述目标抽头和所述目标种子;
基于帧数确定目标扰动的编号,基于所述目标扰动的编号确定所述目标扰动。
5.根据权利要求4所述的方法,其特征在于,通过下述算式确定所述目标移位寄存器的编号、所述目标抽头的编号、所述目标种子的编号和所述目标扰动的编号:
LFSR_num=Mod[Quotient(page address,n),16];
LQ_num=Quotient[Quotient(page address,n),16];
Seed_index=Mod(page address,n);
Agitation_num=Frame number;
其中,Mod为取余运算,Quotient为取商运算,LFSR_num为所述目标移位寄存器的编号,LQ_num为所述目标抽头的编号,Seed_index为所述目标种子的编号,Agitation_num为所述目标扰动的编号,page address为所述闪存页数,n为所述种子数量,Frame number为帧数。
6.根据权利要求5所述的方法,其特征在于,所述算式在软件中执行。
7.根据权利要求3所述的方法,其特征在于,通过下述步骤确定所述数据随机化处理系统的所述移位寄存器:
从预先设置的第一数量的触发器中随机选择第二数量的触发器;其中,所述第二数量小于所述第一数量;
基于预先设置的首触发器、随机选择的所述第二数量的触发器和预先设置的尾触发器确定所述移位寄存器。
8.根据权利要求7所述的方法,其特征在于,通过下述步骤确定所述移位寄存器的第一抽头和第二抽头:
从所述移位寄存器包括的触发器中确定第一触发器组和第二触发器组;其中,所述第一触发器组和所述第二触发器组均包括随机选择的目标数量的所述移位寄存器包括的触发器,所述第一触发器组和所述第二触发器组的相同的触发器的数量不大于预设的阈值;
基于所述第一触发器组和所述第二触发器组分别确定所述第一抽头和所述第二抽头。
9.根据权利要求8所述的方法,其特征在于,将所述异或结果输入所述目标移位寄存器中进行运算,输出运算结果的步骤,包括:
将所述异或结果输入所述目标移位寄存器中进行运算,输出所述移位寄存器包括的各个触发器对应的第一数值作为运算结果;
基于所述目标抽头从所述运算结果中确定抽头数据的步骤,包括:
从所述目标移位寄存器包括的各个触发器对应的第一数值中选择所述目标抽头包括的各个触发器对应的第二数值作为抽头数据。
10.一种闪存的数据随机化处理装置,其特征在于,所述装置包括:
目标数据获取模块,用于获取目标数据,确定所述目标数据对应的闪存页数;
软件处理模块,用于基于所述闪存页数确定目标移位寄存器、目标抽头和目标种子,基于帧数确定目标扰动;
硬件处理模块,用于对所述目标种子和所述目标扰动执行异或操作,得到异或结果;将所述异或结果输入所述目标移位寄存器中进行运算,输出运算结果;基于所述目标抽头从所述运算结果中确定抽头数据;将所述抽头数据与所述目标数据执行异或操作,得到加扰数据;
数据写入模块,用于将所述加扰数据写入闪存中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211308527.1A CN115904228A (zh) | 2022-10-25 | 2022-10-25 | 闪存的数据随机化处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211308527.1A CN115904228A (zh) | 2022-10-25 | 2022-10-25 | 闪存的数据随机化处理方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115904228A true CN115904228A (zh) | 2023-04-04 |
Family
ID=86470083
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211308527.1A Pending CN115904228A (zh) | 2022-10-25 | 2022-10-25 | 闪存的数据随机化处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115904228A (zh) |
-
2022
- 2022-10-25 CN CN202211308527.1A patent/CN115904228A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107918571B (zh) | 测试储存单元的方法以及使用该方法的装置 | |
KR20100039647A (ko) | 데이터 저장 장치 및 이를 포함하는 데이터 저장 시스템 | |
JP5541792B2 (ja) | 半導体メモリ装置及びそれのデータ処理方法 | |
KR101818441B1 (ko) | 데이터 처리 장치 및 이의 동작 방법 | |
TW201503153A (zh) | 快閃記憶體裝置、記憶體控制器及快閃記憶體的控制方法 | |
CN112420115B (zh) | 一种动态随机存取存储器的故障检测方法 | |
JP2023512895A (ja) | 誤り訂正システム | |
CN111078462B (zh) | 数据校验方法及电路 | |
CN106155830B (zh) | 数据储存装置以及错误校正方法 | |
CN114090354A (zh) | 存储器模块筛选方法与测试装置 | |
CN103838638B (zh) | Fpga外挂存储器校验方法及装置 | |
CN115904228A (zh) | 闪存的数据随机化处理方法和装置 | |
TWI442406B (zh) | 針對一快閃記憶體的控制器之錯誤管理機制來提升驗證效率之方法以及相關之記憶裝置及其控制器 | |
CN108665940B (zh) | Ecc编码电路、解码电路以及存储器控制器 | |
US11928077B2 (en) | Data processing circuit, data storage device including the same, and operating method thereof | |
CN106155916B (zh) | 数据储存装置以及数据读取方法 | |
CN111240584B (zh) | 存储器的控制方法及非暂态电脑可读媒体 | |
CN113470723A (zh) | 读重试测试方法、装置、可读存储介质及电子设备 | |
CN114765054A (zh) | 纠错系统 | |
CN111796774A (zh) | 存储器控制方法、存储器存储装置及存储器控制器 | |
CN117349079B (zh) | 一种用于SPI NorFlash的ECC数据纠错方法 | |
CN113270134B (zh) | 半导体器件 | |
TWI789823B (zh) | 記憶體存取方法和裝置 | |
CN108877867B (zh) | Dram虚焊的检测方法及装置 | |
US10192634B2 (en) | Wire order testing method and associated apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |