随机数种子生成器及其方法

文档序号:7157 发布日期:2021-09-17 浏览:65次 英文

随机数种子生成器及其方法

技术领域

本申请涉及用于数据随机化的随机数种子生成器、该随机数种子生成器所实施的方法与使用该随机数种子生成器的存储设备。

背景技术

参看图1,展示了存储设备的框图。存储设备102同主机相耦合,用于为主机提供存储能力。主机同存储设备102之间可通过多种方式相耦合,耦合方式包括但不限于通过例如SATA、IDE、USB、PCIE、NVMe(NVM Express)、SAS、以太网、光纤通道、无线通信网络等连接主机与存储设备102。主机可以是能够通过上述方式同存储设备相通信的信息处理设备,例如,个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路由器、蜂窝电话、个人数字助理等。存储设备102包括接口103、控制部件104、一个或多个NVM(非易失存储器,Non-Volatile Memory)芯片105以及可选地固件存储器110。接口103可适配于通过例如SATA、IDE、USB、PCIE、NVMe、SAS、以太网、光纤通道等方式与主机交换数据。控制部件104用于控制在接口103、NVM芯片105以及固件存储器110之间的数据传输,还用于存储管理、主机逻辑地址到闪存物理地址映射、擦除均衡、坏块管理等。可通过软件、硬件、固件或其组合的多种方式实现控制部件104。控制部件104可以是FPGA(Field-programmable gate array,现场可编程门阵列)、ASIC(Application Specific Integrated Circuit,应用专用集成电路)或者其组合的形式。控制部件104也可以包括处理器或者控制器。控制部件104在运行时从固件存储器110加载固件。固件存储器110可以是NOR闪存、ROM、EEPROM,也可以是NVM芯片105的部分。

控制部件104包括闪存接口控制器(或称为介质接口控制器、闪存通道控制器),闪存接口控制器耦合到NVM芯片105,并以遵循NVM芯片105的接口协议的方式向NVM芯片105发出命令,以操作NVM芯片105,并接收从NVM芯片105输出的命令执行结果。已知的NVM芯片接口协议包括“Toggle”、“ONFI”等。

存储器目标(Target)是NAND闪存封装内的共享芯片使能(CE,Chip Enable)信号的一个或多个逻辑单元(Logic Unit)。每个逻辑单元具有逻辑单元号(LUN,Logic UnitNumber)。NAND闪存封装内可包括一个或多个管芯(Die)。典型地,逻辑单元对应于单一的管芯。逻辑单元可包括多个平面(Plane)。逻辑单元内的多个平面可以并行存取,而NAND闪存芯片内的多个逻辑单元可以彼此独立地执行命令和报告状态。在可从http://www.micron.com/~/media/Documents/Products/Other%20Documents/ONFI3_0Gold.ashx获得的“Open NAND Flash Interface Specification(Revision3.0)”中,提供了关于目标(target)、逻辑单元、LUN、平面(Plane)的含义,其为现有技术的一部分。

存储介质上通常按页来存储和读取数据。而按块来擦除数据。块(也称物理块)包含多个页。块包含多个页。存储介质上的页(称为物理页)具有固定的尺寸,例如17664字节。物理页也可以具有其他的尺寸。

诸如NAND闪存的NVM芯片,要求向其写入的数据具有一定的统计特性。例如,“0”与“1”的个数基本相同,避免出现连续的“0”或者“1”,在一个物理存储单元周围的存储单元中存储的“0”与“1”大体上均匀等。为满足此类要求,向NVM芯片写入数据前,对数据加扰,使得写入NVM芯片的数据随机化。

图2为现有技术的数据加扰方式的示意图。

随机化器200用于对要写入NVM芯片的数据加扰。随机化器200包括m序列生成器210与异或单元。异或单元对输入数据与m序列生成器210的输出做异或,得到同数据输入对应的输出数据,作为对输入数据加扰的结果。随机数种子被提供给m序列生成器210。

作为举例,为向NVM芯片的物理页P写入数据,将物理页P的物理地址作为随机数种子初始化m序列生成器210。整页的输入数据分成同m序列生成器210的大小相对应的小块,每个小块数据被依次提供给异或单元,以同m序列生成器210输出的值做异或。异或结果作为加扰后的数据。每对一个小块执行了异或操作,m序列生成器210向前推进,以生成新的值。

在从物理页P读出数据时,采用类似的方式,对读出数据解扰,以得到原始数据。例如,用物理页P的物理地址作为种子初始化m序列生成器,对读出数据的每个小块,同m序列生成器的值做异或,以得到对应的原始数据的小块,并使m序列生成器向前推进。

现有技术中也存在其他结构的随机数生成器。例如,中国实用新型专利ZL201621458968.X提供又一种随机化加扰器与随机化解扰器。

NVM芯片也在快速发展,已经出现了3DNAND存储介质,其每个存储单元存储1比特(SLC)、2比特(MLC)、3比特(TLC)甚至更多比特数据。3DNAND在其所承载于的晶圆的晶圆平面的Z方向(垂直于晶圆平面的方向)包括多层。物理块在每层设置字线。

图3展示了3DNAND存储介质的架构图。

3DNAND闪存芯片包括在X-Y方向被布置的多个物理块(图3中展示了块0与块200)。物理块包括多层,图3中展示了层L3、层L4、层L30与层L31,各层又包括多个区段(展示了区段0~区段3)。每个区段包括一条字线。以TLC存储介质为例,字线中包括3个物理页,将同一字线的各物理页分别称为LSB(最低有效位)页、CSB(中间有效位)页与MSB(最高有效位)页。各物理页具有唯一的物理地址。通过物理地址访问NVM芯片中的物理页。可选地,物理地址代表或不代表物理页在存储介质的物理空间中的位置。

对写入NVM芯片的数据的随机化的需求也同承载被写入数据的空间位置相关。例如,属于相同区块的LSB页、CSB页与MSB页共享相同的字线,除了希望写入各物理页的数据具有随机性,还希望写入属于相同字线的LSB页、CSB页与MSB页的数据之间不具有相关性或尽量小的相关性。也希望写入这三个物理页的数据使得所在字线的各存储单元所记录的电位(或电荷量)也具有随机性。依然作为举例,也参看图3,物理块0的层L3的区块0与L4层的区块0在X-Y平面上的位置相同,而在Z轴上相邻,因而也希望属于这两个区块0的各物理页之间不具有相关性或尽量小的相关性。类似地,属于相同物理块与相同层的相邻区块(例如,区块0与区块1)的各物理页之间也希望不具有相关性或尽量小的相关性。

随着NVM芯片的发展,对写入NVM芯片数据的随机性也会有新的要求。

现有技术中,普遍以例如物理页地址作为随机数种子。然而以物理页地址作为随机数种子,在相邻物理页之间,由于相邻物理页的物理地址大多数情况下也具有相邻关系,这使得应用于相邻物理页的随机数种子具有较强的相关性,例如两个随机数种子的差值为0。

图4展示了以物理页地址作为随机数种子时应用于相邻物理页的种子的比特差异。

比特差异代表两个二进制数的相同位置的对应比特的相同或不同情况所出现的次数。图4的例子中,统计了一个物理块中的所有物理页所使用的随机数种子的情况。对于数值相邻的两个二进制数,很多情况下,这两个二进制数仅一比特不同而其他比特相同。

发明内容

以物理页地址作为随机数种子,导致应用于相邻物理页的随机数种子具有较高的相关性,而相邻物理页又大概率在存储介质的物理空间上相邻,这对写入存储介质的数据的随机性造成影响。希望改进或消除这种影响。

NVM芯片响应于读命令而输出被读取的数据。然而,一些NVM芯片存在缺陷,并导致响应于访问物理地址P1的读命令却输出了物理地址P2的数据。但是存储设备的控制部件却难以知晓这种错误的发生。为了检查NVM芯片输出的数据来自被访问的地址,向NVM芯片写入的数据同数据所被写入的物理地址相关。例如,用物理地址作为随机数种子来为待写入的数据加扰。从而在从NVM芯片的指定地址读出数据时,用该指定地址再次生成随机数种子。如果再次生成的随机数种子同从NVM芯片读出的随机数种子一致,则意味着NVM芯片输出的数据来自被访问的地址,否则,意味着NVM芯片可能给出了来自错误地址的数据。然而这样进一步增加了相邻物理页所使用的随机数种子的相关性。

以及还希望加扰后的数据呈现出足够的随机性。例如,物理页的数据的各比特的值呈现随机性,空间相关(例如相邻)的物理页的数据之间关联性低或没有关联性,属于相同字线的物理页的数据之间关联性低或没有关联性,字线的各存储单元的电压分布呈现随机性等。

根据本申请的第一方面,提供了根据本申请第一方面的第一随机数种子生成器,包括随机数寄存器、选择器与异或单元;随机数寄存器存储多个随机数;所述随机数种子生成器的输入信号耦合到所述选择器的控制端;所述选择器根据所述随机数种子生成器的输入信号生成索引选择随机数寄存器存储的多个随机数之一提供给所述异或单元;所述随机数种子生成器的输入信号也耦合到所述异或单元的输入,所述异或单元的输出作为所述随机数种子生成器根据输入信号生成的随机数种子。

根据本申请第一方面的第一随机数种子生成器,提供了根据本申请第一方面的第二随机数种子生成器,还包括与门与掩码寄存器;所述异或单元的输出耦合到所述与门;所述掩码寄存器的输出也耦合到所述与门;所述与门对所述异或单元的输出与所述掩码寄存器的输出进行与操作;所述与门的输出作为所述随机数种子生成器根据输入信号生成的随机数种子;其中所述掩码寄存器的值用于通过所述与门选取所述异或单元的输出的指定比特。

根据本申请第一方面的第一或第二随机数种子生成器,提供了根据本申请第一方面的第三随机数种子生成器,其中所述随机数种子生成器的输入信号是用于访问存储介质的物理地址。

根据本申请第一方面的第三随机数种子生成器,提供了根据本申请第一方面的第四随机数种子生成器,其中所述物理地址的第一部分比特被耦合到所述选择器,作为所述选择器的控制信号;所述物理地址的第二部分比特被耦合到所述异或单元;所述第一部分比特的数量小于所述第二部分比特的数量。

根据本申请第一方面的第四随机数种子生成器,提供了根据本申请第一方面的第五随机数种子生成器,其中所述第一部分比特的数量适于索引所述随机数寄存器存储的随机数。

根据本申请的第二方面,提供了根据本申请第二方面的第一随机数种子生成器,包括随机数寄存器、选择器、异或单元、地址选取单元、乘法器与加法器;所述随机数种子生成器的输入耦合到所述地址选取单元;所述地址选取单元输出所述随机数种子生成器的输入的第一部分比特与第二部分比特;所述地址选取单元输出的所述第一部分比特耦合到所述乘法器的输入;所述地址选取单元输出的所述第二部分比特耦合到所述加法器的输入;所述乘法器的输出耦合到所述加法器的输入;随机数寄存器存储多个随机数;选择器根据所述加法器的输出选择随机数寄存器存储的多个随机数之一提供给所述异或单元;所述异或单元也耦合所述加法器输出的索引;所述异或单元的输出作为所述随机数种子生成器根据输入信号生成的随机数种子。

根据本申请第二方面的第一随机数种子生成器,提供了根据本申请第二方面的第二随机数种子生成器,还包括与门与掩码寄存器;所述异或单元的输出耦合到所述与门的输入;所述掩码寄存器的输出也耦合到所述与门的输入;所述与门对所述异或单元的输出与所述掩码寄存器的输出进行与操作;所述与门的输出作为所述随机数种子生成器根据输入信号生成的随机数种子;其中所述掩码寄存器的值用于通过所述与门选取所述异或单元的输出的指定比特。

根据本申请第二方面的第一或第二随机数种子生成器,提供了根据本申请第二方面的第三随机数种子生成器,其中所述随机数种子生成器的输入信号是用于访问存储介质的物理地址。

根据本申请第二方面的第一至第三随机数种子生成器之一,提供了根据本申请第二方面的第四随机数种子生成器,其中所述乘法器对所述地址选取单元输出的所述第一部分比特与指定的值进行乘法操作,其乘积是所述乘法器的输出。

根据本申请第二方面的第三随机数种子生成器,提供了根据本申请第二方面的第五随机数种子生成器,其中所述地址选取单元输出的所述第一部分是所述物理地址指示的物理块在独立单元内的编号;所述地址选取单元输出的所述第二部分是所述物理地址指示的物理页在物理块内的编号。

根据本申请第二方面的第四随机数种子生成器,提供了根据本申请第二方面的第六随机数种子生成器,其中所述指定的值是物理块内的物理页的数量。

根据本申请的第三方面,提供了根据本申请第三方面的第一随机化加扰器,包括根据本申请第一方面与第二方面所述的随机数种子生成器之一、随机数生成单元与第二异或单元;所述随机数种子生成器的输出耦合所述随机数生成单元;所述随机数生成单元的输出耦合所述第二异或单元;所述第二异或单元对要被加扰的数据与所述随机数生成单元的输出做异或。

根据本申请第三方面的第一随机化加扰器,提供了根据本申请第三方面的第二随机化加扰器,所述随机数种子生成器生成的随机数种子被提供给所述随机数生成单元;以及所述随机数生成单元根据所述随机数种子生成随机数。

根据本申请第三方面的第一或第二随机化加扰器,提供了根据本申请第三方面的第三随机化加扰器,其中数据要被写入的存储介质的物理地址被作为所述随机数种子生成单元的输入;要被写入存储介质的所述数据被作为所述第二异或单元的输入。

根据本申请的第四方面,提供了根据本申请第四方面的第一用于存储设备的方法,包括:获取要写入存储设备的数据与所述存储设备承载所述数据的存储介质的物理地址;通过权利要求1-11之一所述的随机数种子生成器利用所述物理地址生成随机数种子;用所述随机数种子对所述数据加扰;用所述物理地址将加扰后的数据与所述随机数种子写入存储介质。

根据本申请第四方面的第一用于存储设备的方法,提供了根据本申请第四方面的第二用于存储设备的方法,其中对所述加扰后的数据与所述随机数种子进行错误校正编码得到校验数据;用所述物理地址将所述加扰后的数据、所述校验数据与所述随机数种子写入存储介质。

根据本申请第四方面的第一用于存储设备的方法,提供了根据本申请第四方面的第三用于存储设备的方法,还包括:响应于用第一物理地址从存储介质读出数据,通过根据本申请第一方面与第二方面所述的随机数种子生成器利用所述第一物理地址生成第一随机数种子,以及从读出的数据中获取第二随机数种子;若第一随机数种子同第二随机数种子不同,识别出用第一物理地址从存储介质读出的数据存在错误。

根据本申请第四方面的第三用于存储设备的方法,提供了根据本申请第四方面的第四用于存储设备的方法,还包括:若第一随机数种子同第二随机数种子相同,识别出用第一物理地址从存储介质读出的数据正确。

根据本申请第四方面的第二用于存储设备的方法,提供了根据本申请第四方面的第五用于存储设备的方法,还包括:响应于用第一物理地址从存储介质读出数据,对读出数据实施错误校验译码,通过权利要求1-11之一所述的随机数种子生成器利用所述第一物理地址生成第一随机数种子,以及从错误校验译码得到的数据中获取第二随机数种子;若第一随机数种子同第二随机数种子不同,识别出用第一物理地址从存储介质读出的数据存在错误。

根据本申请第四方面的第五用于存储设备的方法,提供了根据本申请第四方面的第六用于存储设备的方法,还包括:若第一随机数种子同第二随机数种子相同,识别出用第一物理地址从存储介质读出的数据正确。

根据本申请的第五方面,提供了根据本申请第五方面的第一为要写入存储介质的物理地址的数据生成随机数种子的方法,包括:选取所述物理地址的第一部分作为索引,从多个随机数中获取第一随机数;用所述物理地址的第二部分同所述第一随机数做异或操作;用所述异或操作的结果得到随机数种子。

根据本申请第五方面的第一为要写入存储介质的物理地址的数据生成随机数种子的方法,提供了根据本申请第五方面的第二为要写入存储介质的物理地址的数据生成随机数种子的方法,其中用指定的掩码选取所述异或操作的结果的部分比特作为所述随机数种子。

根据本申请第五方面的第一或第二为要写入存储介质的物理地址的数据生成随机数种子的方法,提供了根据本申请第五方面的第三为要写入存储介质的物理地址的数据生成随机数种子的方法,其中所述物理地址的第一部分的比特的数量小于所述第二部分比特的数量。

根据本申请第五方面的第一为要写入存储介质的物理地址的数据生成随机数种子的方法,提供了根据本申请第五方面的第四为要写入存储介质的物理地址的数据生成随机数种子的方法,其中从所述物理地址提取块号与页号;用提取的块号乘以块内的页数,再加上提取的页号,所得的结果的指定比特作为索引,从多个随机数中获取第一随机数;用所述所得的结果与所述第一随机数做异或操作,用所述异或操作的结果得到随机数种子。

根据本申请第五方面的第四为要写入存储介质的物理地址的数据生成随机数种子的方法,提供了根据本申请第五方面的第五为要写入存储介质的物理地址的数据生成随机数种子的方法,其中用指定的掩码选取所述异或操作的结果的部分比特作为所述随机数种子。

根据本申请的第六方面,提供了根据本申请第六方面的第一用于存储设备的方法,包括:获取要写入存储设备的数据与所述存储设备承载所述数据的存储介质的物理地址;根据本申请第五方面所述的方法之一为所述物理地址生成随机数种子;用所述随机数种子对要写入存储设备的所述数据加扰;用所述物理地址将加扰后的数据与所述随机数种子写入存储介质。

根据本申请第六方面的第一用于存储设备的方法,提供了根据本申请第六方面的第二用于存储设备的方法,其中对所述加扰后的数据与所述随机数种子进行错误校正编码得到校验数据;用所述物理地址将所述加扰后的数据、所述校验数据与所述随机数种子写入存储介质。

根据本申请第六方面的第一用于存储设备的方法,提供了根据本申请第六方面的第三用于存储设备的方法,还包括:响应于用第一物理地址从存储介质读出数据,根据权利要求1-5之一所述的方法为所述第一物理地址生成第一随机数种子,以及从读出的数据中获取第二随机数种子;若第一随机数种子同第二随机数种子不同,识别出用第一物理地址从存储介质读出的数据存在错误。

根据本申请第六方面的第三用于存储设备的方法,提供了根据本申请第六方面的第四用于存储设备的方法,还包括:若第一随机数种子同第二随机数种子相同,识别出用第一物理地址从存储介质读出的数据正确。

根据本申请第六方面的第二用于存储设备的方法,提供了根据本申请第六方面的第五用于存储设备的方法,还包括:响应于用第一物理地址从存储介质读出数据,对读出数据实施错误校验译码,根据权利要求1-5之一所述的方法为所述第一物理地址生成第一随机数种子,以及从错误校验译码得到的数据中获取第二随机数种子;若第一随机数种子同第二随机数种子不同,识别出用第一物理地址从存储介质读出的数据存在错误。

根据本申请第六方面的第五用于存储设备的方法,提供了根据本申请第六方面的第六用于存储设备的方法,还包括:若第一随机数种子同第二随机数种子相同,识别出用第一物理地址从存储介质读出的数据正确。

根据本申请的第七方面,提供了根据本申请第七方面的第一用于存储设备的方法,包括:响应于用第一物理地址从存储介质读出数据,根据本申请第五方面所述的方法之一为所述第一物理地址生成第一随机数种子;以及从读出的数据中获取第二随机数种子;若第一随机数种子同第二随机数种子不同,识别出用第一物理地址从存储介质读出的数据存在错误。

根据本申请第七方面的第一用于存储设备的方法,提供了根据本申请第七方面的第二用于存储设备的方法,包括:若第一随机数种子同第二随机数种子相同,识别出用第一物理地址从存储介质读出的数据正确。

根据本申请的第八方面,提供了根据本申请第八方面的第一用于存储设备的方法,包括:响应于用第一物理地址从存储介质读出数据,对读出数据实施错误校验译码,根据本申请第五方面所述的方法之一为所述第一物理地址生成第一随机数种子,以及从错误校验译码得到的数据中获取第二随机数种子;若第一随机数种子同第二随机数种子不同,识别出用第一物理地址从存储介质读出的数据存在错误。

根据本申请第八方面的第一用于存储设备的方法,提供了根据本申请第八方面的第二用于存储设备的方法,还包括:若第一随机数种子同第二随机数种子相同,识别出用第一物理地址从存储介质读出的数据正确。

根据本申请的第九方面,提供了根据本申请第九方面的第一存储设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的程序,其特征在于,所述处理器执行所述程序时实现根据本申请第六方面所述的用于存储设备的方法之一,第七方面所述的用于存储设备的方法之一,或者第八方面所述的用于存储设备的方法之一。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。

图1是现有技术的存储设备的框图;

图2为现有技术的数据加扰方式的示意图;

图3展示了3D NAND存储介质的架构图;

图4展示了以物理页地址作为随机数种子时应用于相邻物理页的种子的比特差异;

图5展示了根据本申请实施例的生成写入NVM芯片的数据的示意图;

图6展示了根据本申请实施例的随机化种子生成器的框图;

图7展示了根据图6的实施例应用于相邻物理页的种子的比特差异;以及

图8展示了根据本申请又一实施例的随机化种子生成器的框图。

具体实施方式

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

图5展示了根据本申请实施例的生成写入NVM芯片的数据的示意图。

用户数据552来自用户要写入存储设备的写命令。物理地址550是存储设备分配来承载用户数据552的NVM芯片的地址。随机数种子生成器510根据物理地址550生成随机数种子560。随机化器520根据随机数种子560与用户数据552生成经加扰的用户数据562。

随机数种子560与经加扰的用户数据562被提供给ECC(ErrorCorrectionCode,错误校验编码)编码器540。ECC编码器540将随机数560与加扰的用户数据562的组合作为消息码字,并根据校验矩阵(未示出)生成校验数据566。随机数种子560、加扰的用户是数据562与校验数据566被写入NVM芯片。

在从NVM芯片读出数据时,ECC解码器对读出的数据解码,解码后的数据包括随机数种子560。以及用读数据所使用的物理地址以写入数据时同样的方式生成随机数种子。比较从NVM芯片读出的随机数种子560与根据物理地址生成的随机数种子是否一致,来识别从NVM芯片读出的数据是否来自指定的物理地址。

图6展示了根据本申请实施例的随机数种子生成器的框图。

随机数种子生成器600包括随机数寄存器610、选择器620、异或单元630、与门640与掩码寄存器644。

随机数寄存器610存储多个随机数。例如,随机数寄存器610存储32、64或更多个随机数。随机数寄存器610存储的每个随机数可被单独的访问。选择器620向随机数寄存器610提供索引,用于选择存储的随机数之一。

数据680是要写入NVM芯片的数据,物理地址682指示了被分配来承载要写入的数据的NVM芯片的物理地址。物理地址682的部分比特被截断并提供给选择器620,作为索引来选择随机数寄存器610所存储的随机数。选择器620选择出的随机数被提供给异或单元630。物理地址682也被提供给异或单元。异或单元630将对选择器620选择出的随机数与物理地址682做异或计算,并输出异或结果给与门640。

通过用物理地址682作为索引选择随机数,使得由物理地址682计算出的各随机数种子消除了彼此之间的关联性。作为举例,随机数寄存器610存储32个随机数,物理地址682的低5位被作为索引,使得根据连续的32个物理地址所选择出的随机数之间的关联性被降到最低。而在每32个物理地址之间,随机数被重复使用,并引起对应的随机数种子之间一定的关联性。可选地,通过增大随机数寄存器610,使之存储更多数量的随机数,继而随机数被重复利用的几率被降低,对应的随机数种子之间的关联性也降低。由于NVM芯片的物理页数量很大,为每个物理页提供专用的随机数将导致极大数量的随机数并占用大量存储空间,这在实践中是不可行的。为了使随机数种子同物理地址有更强的关联关系以满足用物理地址与随机数种子检查NVM芯片给出的数据是否来自正确的被访问物理地址,还需要用物理地址682直接参与随机数种子的计算,并使得生成的随机数种子数量更多(远大于随机数寄存器610存储的随机数数量)。

继续参看图6,异或单元630的输入被提供给与门640。与门640将异或单元630的输出同掩码寄存器644存储的值进行按位与操作,计算结果被提供给随机数生成单元660。掩码寄存器存储的值是例如0x7FFF,用于从异或单元630的输出中截取指定的比特,以同随机数生成单元660的输入端口相适应。与门640的输出是随机数种子生成器600从物理地址682所得到的随机数种子。

随机数生成单元660是例如m序列生成器,包括LFSR(Linear Feedback ShiftingRegister)生成器、CS6序列生成器、AI CS6序列生成器或者NERO序列生成器等。

随机数生成单元660根据随机数种子生成随机数,并提供给异或单元670。异或单元670用随机数生成单元660提供的随机数对数据680实施异或操作,以实现对数据680的加扰,得到加扰后的数据用于写入NVM芯片。

根据一种可选的实施方式,还根据加扰后的数据生成用于错误校正的校验数据。加扰后的数据、随机数种子生成器600生成的用于得到该加扰后数据的随机数种子以及校验数据被一同写入NVM芯片。在从NVM芯片读出数据时,读出数据所使用的物理地址记为P1。用随机数种子生成器600根据物理地址P1生成随机数种子(记为RS1)。从NVM芯片读出的数据中提取随机数种子(记为RS2)。可选地,先对从NVM芯片读出数据实施错误校验译码,并从译码结果中提取随机数种子RS2。比较RS1与RS2是否相同,来检查从NVM芯片读出的数据是否来自物理地址P1。可选地,若识别出从NVM芯片读出的数据并非来自物理地址P1,则有错误发生。通过例如尝试重新从NVM芯片读出物理地址为P1的数据来处理错误,或者通过其他数据恢复或数据重建手段来得到应在物理地址P1处存储的数据。

图7展示了根据图6的实施例应用于相邻物理页的种子的比特差异。

根据图6的实施例生成的应用于相邻物理页的随机数种子的比特差异在4比特到12比特之间分布,各差异比特数量对应的统计值,同图4相比,分布得更均匀。这说明图6的实施例的随机数种子生成器产生的应用于各物理页的随机数种子具有较高的质量、较低的在对应各物理页的随机数种子之间的相关性。并且图6的实施例中也未引入复杂的计算,产生随机数种子的代价较低。

图8展示了根据本申请又一实施例的随机化种子生成器的框图。

随机化种子生成器800包括随机数寄存器810、选择器820、异或单元830、与门840、掩码寄存器844、独立单元地址选取单元822、乘法器824与加法器826。

随机数寄存器810存储多个随机数。

数据880是要写入NVM芯片的数据,物理地址882指示了被分配来承载要写入的数据的NVM芯片的物理地址。

独立单元地址选择单元822截取物理地址882的部分比特。独立单元包括例如NVM芯片的管芯(DIE)、逻辑单元(LUN)或平面(Plane)。根据图8的实施例中,为每个独立单元的物理页生成随机数种子。而多个独立单元各自的物理页对应的随机数种子可能相同。作为举例,独立单元地址选择单元822截取的物理地址882的部分比特是用于寻址独立单元内的物理块与物理页的比特。可选帝,所截取的物理地址882的部分比特还包括寻址物理页的数据帧的比特,物理页内包括2个、4个或其他数量的数据帧。

独立单元地址选择单元822根据所截取的物理地址882的部分比特,输出代表物理块的块号884与代表物理页的块内页号886。块号884是物理地址882所访问的物理块的编号,块内页号是物理地址882所访问的物理页在其所属物理块内的编号。随机数种子生成器800还被配置而记录了块内页数888,其指示存储设备所使用的NVM芯片的物理块内拥有的物理页的数量。

块号884与块内页数888被提供给乘法器824,乘法器824输出块号884与块内页数888相乘的结果,并提供给加法器826。块内页号886也被提供给加法器826。加法器826为乘法器826输出的结果与块内页号886求和,结果作为物理页索引889。从而物理页索引889是物理地址882所访问的物理页在其所属独立单元内的所有物理页的唯一编号。

物理页索引889的部分比特被截断并提供给选择器820,作为索引来选择随机数寄存器810所存储的随机数。选择器820选择出的随机数被提供给异或单元830。物理页索引889也被提供给异或单元830。异或单元830将对选择器820选择出的随机数与物理页索引889做异或计算,并输出异或结果给与门840。

由于物理页的物理地址在物理地址空间是不连续分布的,其中的一些值没有被使用。而随机数寄存器810中的随机数被连续存储,从而以截断物理地址的方式获得的随机数索引将使得一些随机数无法被索引,造成对随机数的浪费。图8的实施例,相对于图6的实施例,将对独立单元内的物理页重新编号,为每个物理页赋予唯一编号,并且这种编号的取值在取值空间中是连续的。通过这样的编号(物理页索引889)生成的随机数索引得以利用随机数寄存器810所存储的每个随机数。

继续参看图8,异或单元830的输入被提供给与门840。与门840将异或单元830的输出同掩码寄存器844存储的值进行按位与操作,计算结果被提供给随机数生成单元860。与门840的输出是随机化种子生成器800从物理地址882所得到的随机数种子。

随机数生成单元860根据随机数种子生成随机数,并提供给异或单元870。异或单元870用随机数生成单元860提供的随机数对数据8880实施异或操作,以实现对数据880的加扰。

尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

完整详细技术资料下载
上一篇:石墨接头机器人自动装卡簧、装栓机
下一篇:基于去中心化可验证延迟函数生成随机数的方法及系统

网友询问留言

已有0条留言

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

精彩留言,会给你点赞!

技术分类