CN108255464B - 数据加扰方法、解扰方法及其装置 - Google Patents

数据加扰方法、解扰方法及其装置 Download PDF

Info

Publication number
CN108255464B
CN108255464B CN201611230836.6A CN201611230836A CN108255464B CN 108255464 B CN108255464 B CN 108255464B CN 201611230836 A CN201611230836 A CN 201611230836A CN 108255464 B CN108255464 B CN 108255464B
Authority
CN
China
Prior art keywords
data
physical page
sequence generator
physical
seed
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.)
Active
Application number
CN201611230836.6A
Other languages
English (en)
Other versions
CN108255464A (zh
Inventor
董磊
其他发明人请求不公开姓名
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Memblaze Technology Co Ltd
Original Assignee
Beijing Memblaze Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Memblaze Technology Co Ltd filed Critical Beijing Memblaze Technology Co Ltd
Priority to CN201611230836.6A priority Critical patent/CN108255464B/zh
Publication of CN108255464A publication Critical patent/CN108255464A/zh
Application granted granted Critical
Publication of CN108255464B publication Critical patent/CN108255464B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

数据加扰方法、解扰方法及其装置,本申请提供一种写入数据的方法及装置、读取数据的方法及装置,涉及随机序列生成器领域,解决了现有技术中数据的加扰、解扰无法满足序列随机化的统计要求。本申请提出一种写入数据的方法,包括:生成第一随机化种子;用第一随机化种子初始化第一m序列生成器,使第一m序列生成器向前推进,推进次数为要写入数据的物理页索引,将第一m序列生成器的输出作为第二随机化种子;用第二随机化种子初始化第二m序列生成器,用第二m序列生成器的输出对要写入的数据加扰;以及将加扰后的数据写入物理页。本申请应用于向物理页写入数据或读取数据。

Description

数据加扰方法、解扰方法及其装置
技术领域
本申请涉及随机序列生成,具体地,涉及生成向NVM芯片写入的随机序列,用于提升固态存储设备的可靠性。
背景技术
诸如NAND闪存的NVM芯片,要求向其写入的数据具有一定的统计特性。例如,“0”与“1”的个数基本相同,避免出现连续的“0”或者“1”,在一个物理存储单元周围的存储单元中存储的“0”与“1”大体上均匀等。为满足此类要求,向NVM芯片写入数据前,对数据加扰,使得写入NVM芯片的数据随机化。图1为现有技术的常用的加扰方式的示意图。如图1所示,为向NVM芯片的物理页P写入数据,将物理页P的物理地址作为种子初始化m序列生成器101。将整页的数据分成同m序列生成器101的大小相对应的小块,将每个小块数据同m序列生成器101输出的值做异或,将异或结果作为输出,并写入物理页P。每对一个小块执行了异或操作,m序列生成器101向前推进,以生成新的值。
在从物理页P读出数据时,采用类似的方式,对读出数据解扰,以得到原始数据。例如,用物理页P的物理地址作为种子初始化m序列生成器,对读出数据的每个小块,同m序列生成器的值做异或,以得到对应的原始数据的小块,并使m序列生成器向前推进。
发明内容
现有技术中的数据加扰、解扰的方法,由于多个物理页之间的数据相关性,对加扰的结果产生影响。虽然现有技术生成的随机序列,能够在NVM芯片的一条字线或一个物理页上产生满足关于随机化的统计要求的序列,但在相邻字线间或相邻物理页之间,或者在一条位线上产生的序列难以满足关于随机化的统计要求。
本申请的目的在于提供一种写入数据的方法、一种写入数据的装置、一种读取数据的方法、一种读取数据的装置、一种数据加扰器及一种数据解扰器,用于解决现有技术中存在的问题。
根据本发明的第一方面,提供了根据本发明的第一方面的第一写入数据的方法,该方法包括:生成第一随机化种子;用第一随机化种子初始化第一m序列生成器,使第一m序列生成器向前推进,推进次数为要写入数据的物理页的索引,将第一m序列生成器的输出作为第二随机化种子;用第二随机化种子初始化第二m序列生成器,用第二m序列生成器的输出对要写入的数据加扰;以及将加扰后的数据写入物理页。
根据本发明的第一方面的第一写入数据的方法,提供了根据本发明的第一方面的第二写入数据的方法,将要写入的数据与第二m序列生成器的输出做异或,生成加扰后的数据。
根据本发明的第一方面的第一或第二写入数据的方法,提供了根据本发明的第一方面的第三写入数据的方法,其中,第一随机化种子为写入数据的物理页所在的物理块的编号或依据物理块的编号所确定的值。
根据本发明的第一方面的第一或第二写入数据的方法,提供了根据本发明的第一方面的第四写入数据的方法,其中,第一随机化种子为写入数据的物理页所在的物理块的编号与任意自然数的和。
根据本发明的第一方面的第一至第四写入数据的方法之一,提供了根据本发明的第一方面的第五写入数据的方法,其中物理页索引是依据物理页的物理页地址得到的。
根据本发明的第一方面的第五写入数据的方法,提供了根据本发明的第一方面的第六写入数据的方法,其中按照物理页在物理空间上的排列次序确定物理页索引。
根据本发明的第一方面的第六写入数据的方法,提供了根据本发明的第一方面的第七写入数据的方法,其中物理页索引与物理页的物理地址之间具有指定的映射关系,使得物理页索引按物理页在物理空间上的排列次序确定。
根据本发明的第一方面的第五写入数据的方法,提供了根据本发明的第一方面的第八写入数据的方法,其中物理页索引与物理页的物理地址具有相同的值。
根据本发明的第一方面的第六写入数据的方法,提供了根据本发明的第一方面的第九写入数据的方法,其中按照物理页所在字线在NVM芯片的管芯所在的物理空间上的排列顺序确定物理页索引。
根据本发明的第一方面的第六写入数据的方法,提供了根据本发明的第一方面的第十写入数据的方法,按照物理页所在的字线段在NVM芯片的管芯所在的物理空间上的排列顺序确定物理页索引。
根据本发明的第一方面的第九或第十写入数据的方法,提供了根据本发明的第一方面的第十一写入数据的方法,依据NVM芯片的物理页在字线上的排布方式,确定物理页地址与物理页索引的映射关系,并依据物理页地址通过所述映射关系获得物理页索引。
根据本发明的第一方面的第一至第十一写入数据的方法之一,提供了根据本发明的第一方面的第十二写入数据的方法,TLC存储单元中的多个比特所属的物理页的物理页索引连续。
根据本发明的第一方面的第一至第十二写入数据的方法之一,提供了根据本发明的第一方面的第十三写入数据的方法,向同一物理块的多个物理页写入数据时,第一随机化种子相同。
根据本发明的第一方面的第一至第十三写入数据的方法之一,提供了根据本发明的第一方面的第十四写入数据的方法,为向第二物理页写入数据,使第一m序列生成器向前推进,并用第一m序列生成器的输出更新第二随机化种子;以及其中使第一m序列生成器向前推进的次数由第二物理页的物理页索引与前一被写入数据的物理页的物理页索引的差决定。
根据本发明的第一方面的第一至第十四写入数据的方法之一,提供了根据本发明的第一方面的第十五写入数据的方法,其中写入物理页的数据包括第一数据、第二数据、……、以及第N数据,N为大于等于1的正整数。
根据本发明的第一方面的第十五写入数据的方法,提供了根据本发明的第一方面的第十六写入数据的方法,第一数据、……、第N数据的每个的比特数与第二m序列生成器的输出的比特数相同。
根据本发明的第一方面的第十五或第十六写入数据的方法,提供了根据本发明的第一方面的第十七写入数据的方法,所述用第二m序列生成器的输出对要写入的数据加扰包括:将第二m序列生成器的输出同第一数据做异或,异或结果作为第一加扰数据;将第二m序列生成器向前推进;将第二m序列生成器的输出同第二数据做异或,得到第二加扰数据;以此类推,直至完成对要写入的数据的加扰。
根据本发明的第一方面的第一至第十七写入数据的方法之一,提供了根据本发明的第一方面的第十八写入数据的方法,第一m序列生成器或第二m序列生成器为LFSR生成器、CS6序列生成器、AI CS6序列生成器或者NERO序列生成器。
根据本发明的第一方面的第一至第十八写入数据的方法之一,提供了根据本发明的第一方面的第十九写入数据的方法,用于第一m序列生成器或第二m序列生成器的32阶本原多项式为0x100400007。
本发明的写入数据的方法,对于不同的物理页,使用不同的种子进行加扰,利用了m序列生成器良好的随机性消除了不同物理页的地址之间的相关性对加扰结果的影响。
根据本发明的第二方面,提供了根据本发明的第二方面的第一写入数据的装置,包括:第一随机化种子生成模块,用于生成第一随机化种子;第二随机化种子生成模块,用于用第一随机化种子初始化第一m序列生成器,使第一m序列生成器向前推进,推进次数为要写入数据的物理页的索引,将第一m序列生成器的输出作为第二随机化种子;加扰模块,用第二随机化种子初始化第二m序列生成器,用第二m序列生成器的输出对要写入的数据加扰;写入模块,将加扰后的数据写入物理页。
本发明的写入数据的装置,对于不同的物理页,使用不同的种子进行加扰,利用了m序列生成器良好的随机性消除了不同物理页的地址之间的相关性对加扰结果的影响。
根据本发明的第三方面,提供了根据本发明的第三方面的第一读取数据的方法,包括:生成第一随机化种子;用第一随机化种子初始化第一m序列生成器,使第一m序列生成器向前推进,推进次数依据所读取的物理页的物理页索引确定,将第一m序列生成器的输出作为第二随机化种子;从物理页读出数据;用第二随机化种子初始化第二m序列生成器,用第二m序列生成器的输出对读出的数据解扰。
根据本发明的第三方面的第一读取数据的方法,提供了根据本发明的第三方面的第二读取数据的方法,其中,将读出的数据与第二m序列生成器的输出做异或,生成解扰后的数据。
根据本发明的第三方面的第一或第二读取数据的方法,提供了根据本发明的第三方面的第三读取数据的方法,其中,第一随机化种子为读出数据的物理页所在的物理块的编号或依据物理块的编号所确定的值。
根据本发明的第三方面的第一或第二读取数据的方法,提供了根据本发明的第三方面的第四读取数据的方法,其中,第一随机化种子为读出数据的物理页所在的物理块的编号与任意自然数的和。
根据本发明的第三方面的第一至第四读取数据的方法之一,提供了根据本发明的第三方面的第五读取数据的方法,其中物理页索引是依据物理页的物理页地址得到的。
根据本发明的第三方面的第五读取数据的方法,提供了根据本发明的第三方面的第六读取数据的方法,其中,按照物理页在物理空间上的排列次序确定物理页索引。
根据本发明的第三方面的第六读取数据的方法,提供了根据本发明的第三方面的第七读取数据的方法,其中物理页索引与物理页的物理地址之间具有指定的映射关系,使得物理页索引按物理页在物理空间上的排列次序确定。
根据本发明的第三方面的第五读取数据的方法,提供了根据本发明的第三方面的第八读取数据的方法,其中物理页索引与物理页的物理地址具有相同的值。
根据本发明的第三方面的第六读取数据的方法,提供了根据本发明的第三方面的第九读取数据的方法,其中按照物理页所在字线在NVM芯片的管芯所在的物理空间上的排列顺序确定物理页索引。
根据本发明的第三方面的第六读取数据的方法,提供了根据本发明的第三方面的第十读取数据的方法,按照物理页所在的字线段在NVM芯片的管芯所在的物理空间上的排列顺序确定物理页索引。
根据本发明的第三方面的第九或第十读取数据的方法,提供了根据本发明的第三方面的第十一读取数据的方法,依据NVM芯片的物理页在字线上的排布方式,确定物理页地址与物理页索引的映射关系,并依据物理页地址通过所述映射关系获得物理页索引。
根据本发明的第三方面的第一至第十一读取数据的方法之一,提供了根据本发明的第三方面的第十二读取数据的方法,TLC存储单元中的多个比特所属的物理页的物理页索引连续。
根据本发明的第三方面的第一至第十二读取数据的方法之一,提供了根据本发明的第三方面的第十三读取数据的方法,从同一物理块的多个物理页读出数据时,第一随机化种子相同。
根据本发明的第三方面的第一至第十三读取数据的方法之一,提供了根据本发明的第三方面的第十四读取数据的方法,为从第二物理页读出数据,使第一m序列生成器向前推进,并用第一m序列器生成器的输出更新第二随机化种子;以及其中使第一m序列生成器向前推进的次数由第二物理页的物理页索引与前一被读出数据的物理页的物理页索引的差决定。
根据本发明的第三方面的第一至第十四读取数据的方法之一,提供了根据本发明的第三方面的第十五读取数据的方法,其中读取物理页的数据包括第一数据、第二数据、……、第N数据,N为大于等于1的正整数。
根据本发明的第三方面的第十五读取数据的方法,提供了根据本发明的第三方面的第十六读取数据的方法,第一数据、……、第N数据的每个的比特值数与第二m序列生成器的输出的比特数相同。
根据本发明的第三方面的第十五或第十六读取数据的方法,提供了根据本发明的第三方面的第十七读取数据的方法,所述用第二m序列生成器的输出对从所述物理页读出的数据解扰包括:将第二m序列生成器的输出同第一数据做异或,异或结果作为第一解扰数据;将第二m序列生成器向前推进;将第二m序列生成器的输出同第二数据做异或,得到第二解扰数据;以此类推,直至完成对所读出的数据的解扰。
根据本发明的第一至第十七读取数据的方法之一,提供了根据本发明的第三方面的第十八读取数据的方法,第一m序列生成器或第二m序列生成器为LFSR生成器、CS6序列生成器、AI CS6序列生成器或者NERO序列生成器。
根据本发明的第三方面的第一至第十八读取数据的方法之一,提供了根据本发明的第三方面的第十九读取数据的方法,用于第一m序列生成器或第二m序列生成器的32阶本原多项式为0x100400007。
根据本发明的第四方面,提供了根据本发明的第四方面的第一读取数据的装置,包括:第一随机化种子生成模块,用于生成第一随机化种子;第二随机化种子生成模块,用第一随机化种子初始化第一m序列生成器,使经初始化的第一m序列生成器向前推进,推进次数依据所读取的物理页的物理页索引确定,将第一m序列生成器的输出作为第二随机化种子;读取模块,用于从物理页读出数据;解扰模块,用第二随机化种子初始化第二m序列生成器,用第二m序列生成器的输出对读出的数据解扰。
根据本发明的第五方面,提供了根据本发明的第五方面的第一数据加扰器,包括:第一m序列生成器,第二m序列生成器,映射电路以及异或单元;所述映射电路接收物理页地址作为输入;所述第一m序列生成器的第一输入耦合到所述映射电路的输出,所述第一m序列生成器还接收第二输入,以及所述第二输入用于初始化所述第一m序列生成器;所述第二m序列生成器的输入耦合到所述第一m序列生成器的输出,所述第二m序列生成器的输出耦合到所述异或单元;所述异或单元对所述第二m序列生成器的输出与待加扰的数据作异或,所述异或单元的输出是经加扰的数据。
根据本发明的第五方面的第一数据加扰器,提供了根据本发明的第五方面的第二数据加扰器,其中,物理页的物理页索引依照物理页在物理空间上的排列次序确定。
根据本发明的第五方面的第一或第二数据加扰器,提供了根据本发明的第五方面的第三数据加扰器,其中,所述映射电路包括查找表,所述查找表以物理页地址作为索引,所述查找表的值是同物理页地址对应的物理页索引。
根据本发明的第五方面的第一至第三数据加扰器之一,提供了根据本发明的第五方面的第四数据加扰器,其中,所述映射电路将物理页地址映射为物理页索引作为输出。
根据本发明的第五方面的第一至第三数据加扰器之一,提供了根据本发明的第五方面的第五数据加扰器,其中,所述映射电路将物理页地址映射为物理页索引,并将当前物理页索引与前一物理页索引的差值作为输出。
根据本发明的第五方面的第一至第五数据加扰器之一,提供了根据本发明的第五方面的第六数据加扰器,所述第二输入是指定值、物理块地址或依据物理块地址得到的值。
根据本发明的第五方面的第一至第六数据加扰器之一,提供了根据本发明的第五方面的第七数据加扰器,其中,响应于收到第一输入,所述第一m序列生成器依据第一输入的值向前推进。
根据本发明的第五方面的第一至第七数据加扰器之一,提供了根据本发明的第五方面的第八数据加扰器,其中,所述第二m序列生成器的输入用于初始化所述第二m序列生成器。
根据本发明的第五方面的第一至第八数据加扰器之一,提供了根据本发明的第五方面的第九数据加扰器,其中,要写入物理页的数据包括多个数据单元,所述多个数据单元的每个作为所述待加扰数据;响应于完成对待加扰数据的异或操作,所述第二m序列生成器向前推进,并将下一个数据单元作为待加扰数据。
根据本发明的第五方面的第一至第九数据加扰器之一,提供了根据本发明的第五方面的第十数据加扰器,其中,所述映射电路还接收数据帧序号,并将物理页地址与数据帧序号的组合映射为数据帧索引作为输出。
根据本发明的第五方面的第十数据加扰器,提供了根据本发明的第五方面第十一数据加扰器,其中,所述映射电路将物理页地址与数据帧号的组合映射为数据帧索引,并将当前数据帧索引与前一数据帧索引的差值作为输出。
根据本发明的第五方面的第一至第十一数据加扰器之一,提供了根据本发明的第五方面的第十二数据加扰器,其中,第一m序列生成器或第二m序列生成器为LFSR生成器、CS6序列生成器、AI CS6序列生成器或者NERO序列生成器。
本发明的数据加扰器,对于不同的物理页,利用了m序列生成器良好的随机性消除了不同物理页的地址之间的相关性对加扰结果的影响。
根据本发明的第六方面,提供了本发明的第六方面的第一数据解扰器,包括:第一m序列生成器,第二m序列生成器,映射电路以及异或单元;所述映射电路接收物理页地址作为输入;所述第一m序列生成器的第一输入耦合到所述映射电路的输出,所述第一m序列生成器还接收第二输入,以及所述第二输入用于初始化所述第一m序列生成器;所述第二m序列生成器的输入耦合到所述第一m序列生成器的输出,所述第二m序列生成器的输出耦合到所述异或单元;所述异或单元对所述第二m序列生成器的输出与待解扰的数据作异或,所述异或单元的输出是解扰后的数据。
根据本发明的第六方面的第一数据解扰器,提供了根据本发明的第六方面的第二数据解扰器,其中,物理页的物理页索引依照物理页在物理空间上的排列次序确定。
根据本发明的第六方面的第一或第二数据解扰器,提供了根据本发明的第六方面的第三数据解扰器,其中,所述映射电路包括查找表,所述查找表以物理页地址作为索引,所述查找表的值是同物理页地址对应的物理页索引。
根据本发明的第六方面的第一至第三数据解扰器之一,提供了根据本发明的第六方面的第四数据解扰器,其中,所述映射电路将物理页地址映射为物理页索引作为输出。
根据本发明的第六方面的第一至第三数据解扰器之一,提供了根据本发明的第六方面的第五数据解扰器,其中,所述映射电路将物理页地址映射为物理页索引,并将当前物理页索引与前一物理页索引的差值作为输出。
根据本发明的第六方面的第一至第五数据解扰器之一,提供了根据本发明的第六方面的第六数据解扰器,其中,所述第二输入是指定值、物理块地址或依据物理块地址得到的值。
根据本发明的第六方面的第一至第六数据解扰器之一,提供了根据本发明的第六方面的第七数据解扰器,其中,响应于收到第一输入,所述第一m序列生成器依据第一输入的值向前推进。
根据本发明的第六方面的第一至第七数据解扰器之一,提供了根据本发明的第六方面的第八数据解扰器,其中,所述第二m序列生成器的输入用于初始化所述第二m序列生成器。
根据本发明的第六方面的第一至八数据解扰器之一,提供了根据本发明的第六方面的第九数据解扰器,其中,要从物理页读出的数据包括多个数据单元,所述多个数据单元的每个作为所述待解扰数据;响应于完成对待解扰数据的异或操作,所述第二m序列生成器向前推进,并将下一个数据单元作为待解扰数据。
根据本发明的第六方面的第一至第九数据解扰器之一,提供了根据本发明的第六方面的第十数据解扰器,其中,所述映射电路还接收数据帧序号,并将物理页地址与数据帧序号的组合映射为数据帧索引作为输出。
根据本发明的第六方面的第十数据解扰器,提供了根据本发明的第六方面的第十一数据解扰器,其中,所述映射电路将物理页地址与数据帧号的组合映射为数据帧索引,并将当前数据帧索引与前一数据帧索引的差值作为输出。
根据本发明的第六方面的第一至第十一数据解扰器之一,提供了根据本发明的第六方面的第十二数据解扰器,其中,第一m序列生成器或第二m序列生成器为LFSR生成器、CS6序列生成器、AI CS6序列生成器或者NERO序列生成器。
根据本发明的第七方面,提供一种包括程序代码的程序,当被载入电子设备并在电子设备上执行时,所述程序代码使所述电子设备执行根据本发明的第一方面或第三方面的方法。
本发明的电子设备的程序代码的程序,使得电子设备对物理页中的数据进行写入或读取时,进行加扰或解扰,并且使得加扰生成的随机序列具有满足要求的统计特性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为现有技术的常用的加扰方式的示意图;
图2为本申请实施例的按照物理页在物理空间上的排列次序生成物理页索引的示意图;
图3为本申请又一实施例的按照字线在物理空间上的排布顺序生成物理页索引的示意图;
图4为本申请实施例的对输入数据加扰的示意图;
图5为本申请实施例的数据加扰器的结构的框图;以及
图6为本申请实施例的数据解扰器的结构框图。
具体实施方式
下面结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请请求保护的范围。
实施例1
实施例1描述了对向物理页P写入数据进行加扰的方法。
(1)生成第一随机化种子。
以物理页P为例,向物理页P写入数据时,以物理页P所在物理块的编号或物理块的地址,作为第一随机化种子,记为Seed_0。
(2)生成第二随机化种子。
可选地,依据物理页P的物理页地址或物理页编号,生成物理页索引,记为Index。用Seed_0初始化m序列生成器,为向物理页P写入数据,使经初始化的m序列生成器向前推进,推进次数为Index。得到的m序列生成器的输出值为第二随机化种子,记为Seed_1。
作为举例,m序列生成器为LFSR(Linear Feedback Shifting Register)生成器、CS6序列生成器、AI CS6序列生成器或者NERO序列生成器中的一种。
可选地,按照物理页在物理空间上的排列次序生成物理页索引。图2为本申请实施例的按照物理页在物理空间上的排列次序生成物理页索引的示意图。如图2所示,在NVM芯片的管芯的物理空间上,布置有多条字线。字线包括字线0、字线1、……、字线n,其中n为自然数。字线包括多个存储单元,字线上的物理单元构成物理页。按字线在物理空间上的排布顺序生成物理页索引。例如,在管芯平面的Y轴方向上,按照从上到下的顺序,各字线的物理页索引依次为0、1、……、n,其中n为自然数。在一个例子中,每条字线上的多个存储单元构成物理页。从而物理页索引与物理页地址可以具有相同的值。
在一些情况下,物理页地址并非按物理空间顺序编排。例如,物理地址为0的物理页可以位于管芯平面Y轴空间的中点,而从中点沿Y轴一个方向物理地址递增,并在达到Y轴空间的端点后,回到中点,并沿Y轴另一个方向使物理地址递增。在此情况下,在物理页的物理地址与物理页索引之间进行映射,使得物理页索引按物理页在物理空间上到的排列次序生成。例如,在Y轴一个方向的端点位置的物理页的物理页索引为0,从该端点位置向Y轴另一个方向,物理页的物理页索引递增,直到到达Y轴的另一个方向的端点。在Y轴另一个方向的端点位置的物理页具有最大值的物理页索引。
可选地,图3为本申请又一实施例的按照字线在物理空间上的排布顺序生成物理页索引的示意图。如图3所示,在NVM芯片的管芯的物理空间上,布置有多条字线,包括字线0、字线1、……、字线n,其中n为自然数。字线包括多个存储单元,字线上的多个存储单元构成物理页。按字线在物理空间上的排布顺序生成物理页索引。例如,在3D闪存管芯平面的z轴方向上,按照从上到下的顺序,各字线的物理页索引依次为0、1、……、n,其中n为自然数。在每条字线中包括多个字线段。图3中,字线包括3个字线段,字线中的字线段数量也可以为其它数量,例如2、4、5、6个。每个字线段中的存储单元的数量等于物理页的比特数,以及每个存储单元中存储有多个比特。图3中,作为举例,存储单元的类型是TLC(Triple-LevelCell),即三阶存储单元,每个存储单元中存储3比特信息。从而字线0包括3个字线段,每个子线段中存储3个物理页,从而字线0包括9个物理页。
在TLC存储单元构成的物理页中,物理页地址的编排方式可能是多样的。例如图3中TLC存储单元存储的3个比特属于3个物理页,其中两个物理页的地址连续,而另一个物理页的地址同前两个物理页的地址不连续。在图3中,字线0的第一个字线段包括3个物理页,其物理地址分别为50、51与80,而第二个字线段包括3个物理页,其物理地址分别为52、53与81,第三个字线段包括3个物理页,其物理地址分别为54、55与82。而物理页索引按照物理页所在的字线(或字线段)在物理空间上的排列次序生成。属于同一字线或字线段的多个物理页,按TLC存储单元所存储的3个比特的排列顺序排列。从而图3中,以字线0为例,为字线0上的多个物理页提供从0到8的物理页索引。并且,在物理页地址与物理页索引之间具有指定的如图3所示的1对1映射关系。
对于不同厂商或型号的NVM芯片,依据其物理页在字线上的排布方式,确定物理页地址与物理页索引的映射关系。以及,在物理页地址与物理页索引之间可提供多种映射关系,以满足物理页索引按物理页所在的字线(或字线段)在物理空间上的排列次序生成。
在依然另一个例子中,物理页内包括多个数据帧。还为物理页内的各个数据帧生成数据帧索引。数据帧索引是物理页索引与数据帧在物理页中的序号的组合。
(3)对输入数据加扰。
图4为本申请实施例的对输入数据加扰的示意图。如图4所示,向物理页P写入数据,向物理页P写入数据的尺寸为16KB。对于物理页P,依据前面提到的方法基于物理页P的物理页索引生成第二随机化种子Seed_1。作为举例,Seed_1为32比特。此处的m序列生成器可以是例如LFSR。用第二随机数种子Seed_1初始化m序列生成器401。对16KB的待写入的数据加扰,每次加扰32比特数据,即输入数据为32比特数据。将输入数据同第二m序列生成器401的值做异或,异或结果作为输出数据,并写入NVM芯片。每完成1次对输入数据的加扰,使第二m序列生成器401向前推进。并使第二m序列生成器401的下次输出的值同接下来的32比特数据求异或,并得到下一输出数据,直至完成对16KB数据的加扰。
可以理解的,输入数据可以有不同的尺寸,既可以是完整物理页,也可以是部分物理页。每次加扰的数据可以有不同的尺寸,第二m序列生成器401可以有不同的尺寸。第二m序列生成器401可以是LFSR(Linear Feedback Shifting Register)生成器、CS6序列生成器、AI CS6序列生成器或者NERO序列生成器中的一种。
实施例2
图5为本申请实施例的数据加扰器的结构的框图。如图5所示,数据加扰器包括:映射电路501、第一m序列生成器502、第二m序列生成器503和异或单元504。映射电路501接收物理页地址作为输入,生成物理页索引。第一m序列生成器502接收第一随机化种子作为输入。第一m序列生成器502还接收映射电路501提供的物理页索引。第一m序列生成器502向前推进,并产生输出,推进的次数为物理页索引,而第一m序列生成器502的输出作为第二随机化种子。第二m序列生成器503的输入耦合到第一m序列生成器502的输出。用第二随机化种子初始化第二m序列生成器503。第二m序列生成器的输出耦合到异或单元。异或单元504将待写入数据的部分与第二m序列生成器503的输出进行异或,得到加扰后的数据。响应于完成异或操作,第二m序列生成器503向前推进,以及异或单元504将待写入数据的下一部分与第二m序列生成器503的输出进行异或。
可选地,映射电路501还接收数据帧序号。映射电路501将物理页地址与数据帧序号的组合映射为数据帧索引作为数据。数据帧索引,作为举例,是物理页索引与数据帧在物理页中的序号的组合。
在另一个例子中,映射电路501将先后两次映射结果的差作为输出。两个映射结果可以都是物理页索引,或都是数据帧索引。以及第一m序列生成器502向前推进的次数为映射电路501输出的值。
为向物理页写入数据,映射电路501依据物理页的物理地址生成物理页索引。以物理页P为例,向物理页P写入数据,依据物理页P的物理页地址生成物理页索引。依据物理页P所在的物理块地址生成第一随机化种子。例如,第一随机化种子为物理块地址加1。使用第一随机化种子初始化第一m序列生成器502,在对写入物理页P的数据加扰时,依据物理页P的物理页索引使第一m序列生成器502推进,推进的次数为物理页索引的值。第一m序列生成器502输出的值为第二随机化种子。第一m序列生成器502为每个物理页提供一个第二随机化种子。
使用第二随机化种子初始化第二m序列生成器503,将要写入物理页P的数据的小块同第二m序列生成器503输出的值做异或,生成加扰后的输出数据,每次对一个小块做异或后,使第二m序列生成器503向前推进。
可选地,第一m序列生成器502或第二m序列生成器503可以是LFSR生成器、CS6序列生成器、AI CS6序列生成器或者NERO序列生成器中的一种。
具体地,向同一物理块的多个物理页写入数据时,例如物理页P1、P2时,第一随机化种子相同。为物理页P1生成的物理页索引记为Index_1,为物理页P2生成的物理页索引记为Index_2。依据Index_2与Index_1的差(记为d),在由Index_1生成物理页P1的第二随机化种子Seed_1_1后,使第一m序列生成器向前推进d次,得到物理页P2的第二随机化种子Seed_1_2,用于为加扰用于物理页P2的数据而初始化第二m序列生成器502。
可选地,在对物理页P1的数据完成加扰后,用第一随机化种子重新初始化第一m序列生成器502,并将第一m序列生成器502向前推进Index_2次,此时第一m序列生成器502的输出为第二随机化种子Seed_1_2。
然后,使用物理页P2的第二随机化种子Seed_1_2初始化第二m序列生成器503,将要写入物理页P2的数据的小块同第二m序列生成器503输出的值做异或,生成加扰后的输出数据,每次对一个小块做异或后,使第二m序列生成器503向前推进,直至完成对物理页P2的数据的写入。
实施例3
图6为本申请实施例的数据解扰器的结构框图。如图6所示,数据解扰器包括:映射电路601、第一m序列生成器602、第二m序列生成器603和异或单元604。映射电路601接收物理页地址作为输入,生成物理页索引。第一m序列生成器602接收第一随机化种子作为输入。第一m序列生成器602还接收映射电路601的输出。第一m序列生成器602向前推进,并产生输出,推进的次数为映射电路601的输出所指示的值,而将第一m序列生成器602的输出作为第二随机化种子。用第二随机化种子初始化第二m序列生成器603。第二m序列生成器的输出耦合到异或单元604。异或单元604将读出数据与第二m序列生成器603的输出进行异或,得到解扰后的数据。响应于完成异或操作,第二m序列生成器603向前推进,以及异或单元604将读出数据的下一部分与第二m序列生成器603的输出进行异或。
可选地,映射电路601还接收数据帧序号。映射电路601将物理页地址与数据帧序号的组合映射为数据帧索引作为数据。数据帧索引,作为举例,是物理页索引与数据帧在物理页中的序号的组合。
在另一个例子中,映射电路601将先后两次映射结果的差作为输出。两个映射结果可以都是物理页索引,或都是数据帧索引。以及第一m序列生成器602向前推进的次数为映射电路601输出的值。
如图6所示,从物理页读取数据,以物理页P为例,为从物理页P读取数据,映射电路601依据物理页P的物理地址生成物理页索引。用物理页P所在的物理块地址作为第一随机化种子(Seed_0,例如Seed_0=物理块地址+1)初始化第一m序列生成器602。依据物理页P的物理页索引使第一m序列生成器602推进,推进的次数为物理页索引的值,得到的第一m序列生成器602输出的值作为第二随机化种子Seed_1。可以理解地,所使用的第一随机化种子Seed_0应当按同向物理页P写入数据时相同的过程生成。例如,若向物理页P写入数据时,用物理页P的块地址+1作为第一随机化种子,那么在从物理页读出数据时,也使用物理页P的块地址+1作为第一随机化种子。
用Seed_1初始化第二m序列生成器602603,将从物理页P的读出数据的小块(例如,具有同第二m序列生成器602603相同的大小)同第二m序列生成器602603输出的值做异或,生成解扰后的输出数据,每次对一个小块做异或后,使第二m序列生成器602603推进,直至完成对数据的读取。
作为举例,在根据本申请的实施例中,用于m序列生成器的32阶本原多项式为0x100400007。
本申请中的数据加扰方法、数据解扰方法以及数据加扰器、数据解扰器,在对不同的物理页中的数据进行写入或读取时,使用不同的种子进行加扰和解扰。由于不同物理页的地址之间具有相关性,用物理页地址选择m序列不同周期的值,作为用于该物理页的随机化种子。利用m序列本身良好的随机性来消除了不同物理页的地址之间的相关性对加扰结果或解扰结果的影响。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (10)

1.一种写入数据的方法,其特征在于,包括:
生成第一随机化种子;
用第一随机化种子初始化第一m序列生成器,使第一m序列生成器向前推进,推进次数为要写入数据的物理页索引,将第一m序列生成器的输出作为第二随机化种子;
其中,物理页索引按照物理页在物理空间上的排列次序生成;
或者,物理页索引按照物理页所在的字线或字线段在物理空间上的排列次序生成;
用第二随机化种子初始化第二m序列生成器,用第二m序列生成器的输出对要写入的数据加扰;以及
将加扰后的数据写入物理页。
2.如权利要求1所述的写入数据的方法,其特征在于,其中,将要写入的数据与第二m序列生成器的输出做异或,生成加扰后的数据。
3.如权利要求1或2所述的写入数据的方法,其特征在于,其中物理页索引是依据物理页的物理页地址得到的。
4.如权利要求3所述的写入数据的方法,其特征在于,其中按照物理页在物理空间上的排列次序确定物理页索引。
5.如权利要求1至4任一项所述的写入数据的方法,其特征在于,TLC存储单元中的多个比特所属的物理页的物理页索引连续。
6.如权利要求1至5任一项所述的写入数据的方法,其特征在于,向同一物理块的多个物理页写入数据时,第一随机化种子相同。
7.如权利要求1至6任一项所述的写入数据的方法,其特征在于,为向第二物理页写入数据,使第一m序列生成器向前推进,并用第一m序列生成器的输出更新第二随机化种子;以及其中使第一m序列生成器向前推进的次数由第二物理页的物理页索引与前一被写入数据的物理页的物理页索引的差决定。
8.一种写入数据的装置,其特征在于,包括:
第一随机化种子生成模块,用于生成第一随机化种子;
第二随机化种子生成模块,用于用第一随机化种子初始化第一m序列生成器,使第一m序列生成器向前推进,推进次数为要写入数据的物理页的索引,将第一m序列生成器的输出作为第二随机化种子;
其中,物理页索引按照物理页在物理空间上的排列次序生成;
或者,物理页索引按照物理页所在的字线或字线段在物理空间上的排列次序生成;
加扰模块,用第二随机化种子初始化第二m序列生成器,用第二m序列生成器的输出对要写入的数据加扰;
写入模块,将加扰后的数据写入物理页。
9.一种读取数据的方法,其特征在于,包括:
生成第一随机化种子;
用第一随机化种子初始化第一m序列生成器,使第一m序列生成器向前推进,推进次数依据所读取的物理页的物理页索引确定,将第一m序列生成器的输出作为第二随机化种子;
其中,物理页索引按照物理页在物理空间上的排列次序生成;
或者,物理页索引按照物理页所在的字线或字线段在物理空间上的排列次序生成;
从物理页读出数据;
用第二随机化种子初始化第二m序列生成器,用第二m序列生成器的输出对读出的数据解扰。
10.一种读取数据的装置,其特征在于,包括:
第一随机化种子生成模块,用于生成第一随机化种子;
第二随机化种子生成模块,用第一随机化种子初始化第一m序列生成器,使经初始化的第一m序列生成器向前推进,推进次数依据所读取的物理页的物理页索引确定,将第一m序列生成器的输出作为第二随机化种子;
其中,物理页索引按照物理页在物理空间上的排列次序生成;
或者,物理页索引按照物理页所在的字线或字线段在物理空间上的排列次序生成;
读取模块,用于从物理页读出数据;
解扰模块,用第二随机化种子初始化第二m序列生成器,用第二m序列生成器的输出对读出的数据解扰。
CN201611230836.6A 2016-12-28 2016-12-28 数据加扰方法、解扰方法及其装置 Active CN108255464B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611230836.6A CN108255464B (zh) 2016-12-28 2016-12-28 数据加扰方法、解扰方法及其装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611230836.6A CN108255464B (zh) 2016-12-28 2016-12-28 数据加扰方法、解扰方法及其装置

Publications (2)

Publication Number Publication Date
CN108255464A CN108255464A (zh) 2018-07-06
CN108255464B true CN108255464B (zh) 2021-09-28

Family

ID=62719393

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611230836.6A Active CN108255464B (zh) 2016-12-28 2016-12-28 数据加扰方法、解扰方法及其装置

Country Status (1)

Country Link
CN (1) CN108255464B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109582602A (zh) * 2018-12-09 2019-04-05 江苏华存电子科技有限公司 一种可自动调变激励方式的闪存数据扰频器设计
US11150985B2 (en) * 2019-10-02 2021-10-19 SK Hynix Inc. Decoder for memory system and method thereof
CN111221747B (zh) * 2020-01-10 2022-02-18 深圳市德明利光电有限公司 一种随机种子保存的方法、装置、存储介质及计算机设备
CN111193446A (zh) * 2020-01-13 2020-05-22 珠海格力电器股份有限公司 调制参数的生成方法及装置、逆变器

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4742604B2 (ja) * 2005-02-10 2011-08-10 ソニー株式会社 情報処理装置、コンテンツ管理システム、情報記録媒体、および情報処理方法、並びにコンピュータ・プログラム
CN101098299B (zh) * 2006-06-27 2010-08-18 中兴通讯股份有限公司 一种比特加扰的并行方法及装置
US8370561B2 (en) * 2006-12-24 2013-02-05 Sandisk Il Ltd. Randomizing for suppressing errors in a flash memory
US8848913B2 (en) * 2007-10-04 2014-09-30 Qualcomm Incorporated Scrambling sequence generation in a communication system
CN102546079B (zh) * 2010-12-17 2016-04-13 中兴通讯股份有限公司 数据处理方法、装置及系统
US9612978B2 (en) * 2010-12-31 2017-04-04 International Business Machines Corporation Encrypted flash-based data storage system with confidentiality mode
US8806112B2 (en) * 2011-07-14 2014-08-12 Lsi Corporation Meta data handling within a flash media controller
US9503914B2 (en) * 2012-01-31 2016-11-22 Apple Inc. Methods and apparatus for enhanced scrambling sequences
US9210010B2 (en) * 2013-03-15 2015-12-08 Apple, Inc. Methods and apparatus for scrambling symbols over multi-lane serial interfaces
CN103745746A (zh) * 2013-12-31 2014-04-23 华为技术有限公司 数据处理方法、加扰器和存储控制器
CN103777904B (zh) * 2014-02-12 2017-07-21 威盛电子股份有限公司 数据储存装置以及数据加扰与解扰方法
US9576624B2 (en) * 2014-06-30 2017-02-21 Seagate Technology Llc Multi-dimentional data randomization
GB2530722B (en) * 2014-09-19 2016-08-17 Imagination Tech Ltd Cache hashing
CN105761753A (zh) * 2016-02-02 2016-07-13 清华大学 数据加扰解扰器、存储装置及加扰解扰方法

Also Published As

Publication number Publication date
CN108255464A (zh) 2018-07-06

Similar Documents

Publication Publication Date Title
CN108255464B (zh) 数据加扰方法、解扰方法及其装置
JP6542171B2 (ja) ランダマイザおよび半導体記憶装置
US8552891B2 (en) Method and apparatus for parallel data interfacing using combined coding and recording medium therefor
US9576624B2 (en) Multi-dimentional data randomization
EP0342832A2 (en) Dynamic feedback arrangement scrambling technique keystream generator
TW201007737A (en) Method for page and block based scrambling in non-volatile memory
US9158500B2 (en) Device and method for processing data including generating a pseudo random number sequence
CN102314332B (zh) 伪随机数生成装置和方法
CN103745746A (zh) 数据处理方法、加扰器和存储控制器
CN103777904A (zh) 数据储存装置以及数据加扰与解扰方法
US11543977B2 (en) Semiconductor device and semiconductor storage device
JP2017102844A (ja) 乱数発生回路および半導体記憶装置
TWI546731B (zh) 輸入-相依隨機數產生裝置及其方法
Acevedo et al. Using the Berlekamp-Massey algorithm to obtain LFSR characteristic polynomials for TPG
CN107799140A (zh) 用于向或从存储器传送数据的方法和装置
CN107885459B (zh) 一种软件实现固态硬盘写入数据加扰的方法
CN206470746U (zh) 随机化加扰器与随机化解扰器
CN102543182A (zh) 随机化电路、存储器控制单元、存储器、通信系统及方法
US11928077B2 (en) Data processing circuit, data storage device including the same, and operating method thereof
Siap et al. Reversible cellular automata with penta-cyclic rule and ECCs
RU2246129C2 (ru) Способ генерации случайных чисел
US20020129071A1 (en) Pseudo random address generator for 0.75M cache
CN104199635A (zh) 集成crc校验电路的伪随机数发生器
Ramesh et al. SRAM based random number generator for non-repeating pattern generation
CN105931661A (zh) 扰码装置、电子设备及信息处理方法

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 100192 room A302, building B-2, Dongsheng Science Park, Zhongguancun, 66 xixiaokou Road, Haidian District, Beijing

Applicant after: Beijing yihengchuangyuan Technology Co.,Ltd.

Address before: 100192 Room 302, 3 / F, building B-2, Dongsheng Science Park, 66 xixiaokou Road, Haidian District, Beijing

Applicant before: MEMBLAZE TECHNOLOGY (BEIJING) Co.,Ltd.

GR01 Patent grant
GR01 Patent grant