掌桥专利:专业的专利平台
掌桥专利
首页

非易失性存储器装置中的功率高效码字加扰

文献发布时间:2024-04-18 19:58:26


非易失性存储器装置中的功率高效码字加扰

技术领域

本公开的实施例大体上涉及存储器子系统,且更明确来说,涉及存储器子系统的非易失性存储器装置中的功率高效码字加扰。

背景技术

存储器子系统可包含存储数据的一或多个存储器装置。存储器装置可为例如非易失性存储器装置及易失性存储器装置。一般来说,主机系统可利用存储器子系统将数据存储在存储器装置处及从所述存储器装置检索数据。

发明内容

本公开的一方面提供一种系统,其包括:存储器装置;及处理装置,其可操作地与所述存储器装置耦合,以执行包括以下的操作:接收对所述存储器装置执行存储器存取操作的请求;确定与所述存储器存取操作相关联的存储器分段标识符;将散列函数应用到所述存储器分段标识符以产生散列种子;将所述散列种子提供到伪随机数产生器以产生随机化串;及使用所述随机化串对所述存储器装置执行所述存储器存取操作。

本公开的另一方面提供一种方法,其包括:接收对存储器装置执行存储器存取操作的请求;确定与所述存储器存取操作相关联的存储器分段标识符;将散列函数应用到所述存储器分段标识符以产生散列种子;将所述散列种子提供到伪随机数产生器以产生随机化串;及使用所述随机化串对所述存储器装置执行所述存储器存取操作。

本公开的另一方面提供一种包括指令的非暂时性计算机可读存储媒体,所述指令在由处理装置执行时致使所述处理装置执行包括以下的操作:接收对存储器装置执行存储器存取操作的请求;确定对至少一个其它种子值具有基于位置的相依性的种子值;将散列函数应用到所述种子值以产生所述种子值的散列;使用所述种子值的所述散列产生所期望长度的随机化序列;及使用所述随机化序列对所述存储器装置执行所述存储器存取操作。

附图说明

从下文给出的详细描述及从本公开的各种实施例的附图将更加完全地理解本公开。

图1A说明根据本公开的一些实施例的包含存储器子系统的实例计算系统。

图1B是根据本公开的一些实施例的与存储器子系统的存储器子系统控制器通信的存储器装置的框图。

图2是说明根据本公开的一些实施例的在存储器子系统的非易失性存储器装置中实施功率高效码字加扰的码字加扰组件的框图。

图3是根据本公开的一些实施例的在存储器子系统的非易失性存储器装置中进行功率高效码字加扰的实例方法的流程图。

图4是本公开的实施例可在其中操作的实例计算机系统的框图。

具体实施方式

本公开的方面涉及存储器子系统的非易失性存储器装置中的功率高效码字加扰。存储器子系统可为存储装置、存储器模块或存储装置与存储器模块的混合。下文结合图1A描述存储装置及存储器模块的实例。一般来说,主机系统可利用包含例如存储数据的存储器装置的一或多个组件的存储器子系统。主机系统可提供将存储于存储器子系统处的数据且可请求将从存储器子系统检索的数据。

存储器子系统可包含高密度非易失性存储器装置,其中期望在没有电力供应到存储器装置时保留数据。举例来说,NAND存储器(例如3D快闪NAND存储器)提供呈紧凑高密度配置形式的存储装置。非易失性存储器装置是各自包含一或多个平面的一或多个裸片的封装。针对一些类型的非易失性存储器装置(例如NAND存储器),每一平面包含一组物理块。每一块包含一组页面。每一页面包含一组存储器单元(“若干单元”)。单元是存储信息的电子电路。取决于单元类型,单元可存储一或多个二进制信息位,且具有与所存储位的数目相关的各种逻辑状态。逻辑状态可由例如“0”及“1”或此类值的组合的二进制值表示。

存储器装置可由布置成二维或三维网格的位组成。存储器单元以列(下文也称为位线)及行(下文也称为字线)的阵列形成到硅晶片上。字线可涉及存储器装置的一或多行存储器单元,其与一或多个位线一起用于产生存储器单元中的每一者的地址。位线与字线的相交点构成存储器单元的地址。块在下文指代用于存储数据的存储器装置的单位且可包含一群组存储器单元、字线群组、字线或个别存储器单元。一或多个块可分组在一起以形成存储器装置的单独分区(例如平面)以便允许并发操作发生于每一平面上。

存储器子系统的一个实例是固态驱动器(SSD),其包含一或多个非易失性存储器装置及用于管理所述非易失性存储器装置的存储器子系统控制器。存储器子系统控制器可将数据编码成某种格式以用于存储于存储器装置处。举例来说,一类错误检测及校正码(ECC)(例如低密度奇偶校验(LDPC)码)可用于编码数据。LDPC码是容量逼近码,这意味着存在允许将错误阈值设置为十分接近理论最大值的实际构造。此错误阈值定义数据中错误的上界,在上界范围内,可根据需要使信息丢失的概率尽可能地小。LDPC码是可靠且高度高效的,从而使其在带宽受约束的应用中有用。举例来说,写入到存储器装置的物理存储器单元的经编码数据可称为码字。从单元读取的可能包含错误且与码字不同的数据可称为感测字。感测字可包含用户数据、错误校正码、元数据或其它信息中的一或多者。

码字的存储或感测字的请求可基于随机值(例如随机数)。举例来说,存储器子系统控制器可通过在加扰操作期间利用随机值加扰码字并将经加扰数据存储于存储器装置上。经加扰数据可由存储器子系统以与原本存储未加扰码字的模式不同的模式存储。通过加扰码字(例如写入数据),存储器子系统可将写入数据更均匀地分布在存储器装置的块的字线及位线上,这允许更均匀的电压分布(例如,编程到逻辑‘1’与逻辑‘0’的单元的平衡)及减少对相同存储器单元的过度使用。

某些存储器子系统控制器利用散列函数加扰要写入的码字。举例来说,码字(例如,2字节)的子集可作为输入应用到散列函数,且输出借助于所执行的一或多个数学运算(例如,用10个十进制数字的素数进行的消耗功率的乘法)可包含所得散列。输出因此具有很强的随机化,但扩大的计算需求导致极高的功耗,从而使方法对于某些应用来说是不实际的(例如,在移动装置中)。其它存储器子系统控制器可利用伪随机数产生器(PRNG)(例如,随机性发生器)产生随机值。举例来说,存储器子系统可将初始值(例如种子值)提供到PRNG,例如(举例来说)线性反馈移位寄存器,且PRNG可基于种子值继续输出随机化序列。因为PRNG的输出是基于提供到PRNG的种子值,因此PRNG是确定性的。举例来说,如果所使用的种子值包含来自存储器阵列的行索引的一部分、物理块地址(PBA)的一部分或与数据将被写入到其上的字线相关联的某个其它值,那么可降低PRNG的输出的随机性。PRNG因此易受在存储器装置的不同字线中重新使用特定数据模式或数据模式的部分影响。以相同数据模式重复地对存储器单元进行编程(例如,在相同位线上或在相同字线上编程到相同数据状态)可能会引起问题(例如存储器单元的编程干扰及过早降级)以及限制某些错误检测及校正码的有效性。

本公开的方面通过在存储器子系统的非易失性存储器装置中提供功率高效码字加扰来解决上述及其它缺点。在一个实施例中,当执行编程操作时,存储器子系统控制器可使用字线相依种子值(例如,存储器阵列的行索引)且应用散列函数来产生种子值的散列。接着,种子值的散列可与PRNG(例如线性反馈移位寄存器)一起使用,以产生随机化串用于将码字编程到存储器装置的存储器阵列的字线。

本文中描述的方法的优点包含(但不限于)存储器子系统中的性能改进。因为散列函数提供强随机化,因此使用其可消除用于产生用于对与每一字线相关联的存储器单元进行编程的随机数的种子之间的任何相依性。通过仅散列化种子而非整个码字,块(例如,约4k字节)的每字线仅需要使用散列函数一次,借此提供显著功率节省。线性反馈移位寄存器是十分功率高效的函数(例如,仅使用简单XOR函数来产生每一位)且因为种子值的散列消除任何字线相依性,因此所得输出提供充分随机性以使得能对存储器阵列执行高效编程及读取操作。

图1A说明根据本公开的一些实施例的包含存储器子系统110的实例计算系统100。存储器子系统110可包含媒体,例如一或多个易失性存储器装置(例如存储器装置140)、一或多个非易失性存储器装置(例如一或多个存储器装置130)或其组合。

存储器子系统110可为存储装置、存储器模块或存储装置与存储器模块的混合体。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储装置(UFS)驱动器、安全数字(SD)卡及硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM)及各种类型的非易失性双列直插式存储器模块(NVDIMM)。

计算系统100可为例如台式计算机、膝上型计算机、网络服务器、移动装置、运载工具(例如飞机、无人机、汽车或其它运输工具)、具有物联网(IoT)能力的装置、嵌入式计算机(例如,包含于运载工具、工业设备或联网商用装置中的嵌入式计算机)或包含存储器及处理装置的此类计算装置的计算装置。

计算系统100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1A说明耦合到一个存储器子系统110的主机系统120的一个实例。如本文中使用,“耦合到”或“与…耦合”一般指代组件之间的连接,其可为间接通信连接或直接通信连接(例如,不具有中介组件),无论是有线还是无线的,包含例如电连接、光学连接、磁性连接等的连接。

主机系统120可包含处理器芯片组及由处理器芯片组执行的软件堆栈。处理器芯片组可包含一或多个核心、一或多个高速缓存、存储器控制器(例如NVDIMM控制器)及存储协议控制器(例如PCIe控制器、SATA控制器)。主机系统120使用存储器子系统110(例如)将数据写入到存储器子系统110及从存储器子系统110读取数据。

主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含(但不限于)串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行附接SCSI(SAS)、双倍数据速率(DDR)存储器总线、小计算机系统接口(SCSI)、双列直插式存储器模块(DIMM)接口(例如,支持双倍数据率(DDR)的DIMM插槽接口)等。物理主机接口可用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过PCIe接口与主机系统120耦合时,主机系统120可进一步利用NVM高速(NVMe)接口存取存储器组件(例如一或多个存储器装置130)。物理主机接口可提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据及其它信号的接口。图1A将存储器子系统110说明为实例。一般来说,主机系统120可经由相同通信连接、多个单独通信连接及/或通信连接的组合存取多个存储器子系统。

存储器装置130、140可包含不同类型的非易失性存储器装置及/或易失性存储器装置的任何组合。易失性存储器装置(例如存储器装置140)可为(但不限于)随机存取存储器(RAM),例如动态随机存取存储器(DRAM)及同步动态随机存取存储器(SDRAM)。

非易失性存储器装置(例如存储器装置130)的一些实例包含“与非”(NAND)型快闪存储器及原位写入存储器,例如三维交叉点(“3D交叉点”)存储器。非易失性存储器单元的交叉点阵列可基于体电阻变化结合可堆叠交叉栅格式数据存取阵列来执行位存储。因此,与许多基于快闪的存储器形成对照,交叉点非易失性存储器可执行原位写入操作,其中非易失性存储器单元可在无需事先擦除非易失性存储器单元的情况下进行编程。NAND型快闪存储器包含例如二维NAND(2D NAND)及三维NAND(3D NAND)。

存储器装置130中的每一者可包含一或多个存储器单元阵列。例如单电平单元(SLC)的一种类型的存储器单元每单元可存储一个位。例如多电平单元(MLC)、三电平单元(TLC)及四电平单元(QLC)的其它类型的存储器单元每单元可存储多个位。在一些实施例中,存储器装置130中的每一者可包含一或多个存储器单元阵列,例如SLC、MLC、TLC、QLC或其任何组合。在一些实施例中,特定存储器装置可包含存储器单元的SLC部分及MLC部分、TLC部分或QLC部分。存储器装置130的存储器单元可经分组为页面,其可指代用于存储数据的存储器装置的逻辑单位。对于一些类型的存储器(例如NAND),页面可经分组以形成块。

尽管描述了例如非易失性存储器单元的3D交叉点阵列及NAND型快闪存储器(例如2D NAND、3D NAND)的非易失性存储器组件,但存储器装置130可基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、自选择存储器、其它硫属化物基存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电随机存取存储器(FeRAM)、磁随机存取存储器(MRAM)、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻式随机存取存储器(RRAM)、氧化物基RRAM(OxRAM)、“或非”(NOR)快闪存储器、电可擦除可编程只读存储器(EEPROM)。

存储器子系统控制器115(或为了简化起见,控制器115)可与存储器装置130通信以执行例如在存储器装置130处读取数据、写入数据或擦除数据及其它此类操作的操作。存储器子系统控制器115可包含硬件,例如一或多个集成电路及/或离散组件、缓冲存储器或其组合。硬件可包含具有用于执行本文中描述的操作的专用(即,硬编码)逻辑的数字电路系统。存储器子系统控制器115可为微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或其它合适的处理器。

存储器子系统控制器115可包含经配置以执行存储于本地存储器119中的指令的处理器117(例如,处理装置)。在说明的实例中,存储器子系统控制器115的本地存储器119包含经配置以存储用于执行控制存储器子系统110的操作的各种过程、操作、逻辑流及例程的指令的嵌入式存储器,所述操作包含处置存储器子系统110与主机系统120之间的通信。

在一些实施例中,本地存储器119可包含存储存储器指针、经提取数据等的存储器寄存器。本地存储器119还可包含用于存储微代码的只读存储器(ROM)。虽然已将图1A中的实例存储器子系统110说明为包含存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110不包含存储器子系统控制器115,而可代替地依赖于外部控制(例如,由外部主机提供或由与存储器子系统分离的处理器或控制器提供)。

一般来说,存储器子系统控制器115可从主机系统120接收命令或操作且可将所述命令或操作转换成指令或适当命令以实现对存储器装置130的所期望存取。存储器子系统控制器115可负责其它操作,例如损耗均衡操作、废弃项目收集操作、错误检测及错误校正码(ECC)操作、加密操作、高速缓存操作以及与存储器装置130相关联的逻辑块地址(例如逻辑块地址(LBA)、命名空间)与物理地址(例如物理块地址)之间的地址转译。存储器子系统控制器115可进一步包含用以经由物理主机接口与主机系统120通信的主机接口电路系统。所述主机接口电路系统可将从主机系统接收的命令转换成命令指令以存取存储器装置130,而且还将与存储器装置130相关联的响应转换成用于主机系统120的信息。

存储器子系统110还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓存或缓冲器(例如DRAM)及地址电路系统(例如行解码器及列解码器),其可从存储器子系统控制器115接收地址且解码所述地址以存取存储器装置130。

在一些实施例中,存储器装置130包含本地媒体控制器135,其结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器装置130是受管理的存储器装置,其是具有用于相同存储器装置封装内的媒体管理的控制逻辑(例如本地控制器135)的原始存储器装置(例如存储器阵列104)。受管理的存储器装置的实例是受管理的NAND(MNAND)装置。存储器装置130例如可各自表示其上嵌入有某种控制逻辑(例如,本地媒体控制器135)的单个裸片。在一些实施例中,可省略存储器子系统110的一或多个组件。

在一个实施例中,存储器子系统110包含码字加扰组件113,其可关于被写入到存储器装置130的存储器阵列104或从存储器装置130的存储器阵列104读取的数据执行加扰及解扰操作。在一个实施例中,响应于执行编程操作的请求,码字加扰组件113可识别与存储器阵列104中将在其处对数据(例如码字)进行编程的位置相关联的地址、索引或其它标识符并将散列函数应用到那个值以产生散列。码字加扰组件113可将那个散列用作线性反馈移位寄存器或其它伪随机数产生器的种子值以产生随机化串用于将数据编程到存储器阵列104中的位置。在另一实施例中,响应于执行读取操作的请求,码字加扰组件113可识别与存储器阵列104中将从其读取数据的位置相关联的地址、索引或其它标识符及将在数据被编程时使用的相同散列函数应用到那个值以产生散列。码字加扰组件113可将那个散列用作线性反馈移位寄存器或其它伪随机数产生器的种子值以产生随机化串用于从存储器阵列104中的位置读取数据。下文描述关于码字加扰组件113的操作的另外细节。

图1B是根据实施例的与呈存储器子系统(例如图1A的存储器子系统110)的存储器子系统控制器115形式的第二设备通信的呈存储器装置130形式的第一设备的简化框图。电子系统的一些实例包含个人计算机、个人数字助理(PDA)、数码相机、数字媒体播放器、数字记录器、游戏机、家用电器、运载工具、无线装置、移动电话及类似物。存储器子系统控制器115(例如存储器装置130外部的控制器)可为存储器控制器或其它外部主机装置。

存储器装置130包含在逻辑上布置成行及列的存储器单元阵列104。一逻辑行的存储器单元通常连接到同一存取线(例如字线),而一逻辑列的存储器单元通常被选择性地连接到同一数据线(例如位线)。单个存取线可与多于一个逻辑行的存储器单元相关联,且单个数据线可与多于一个逻辑列相关联。存储器单元阵列104的至少一部分的存储器单元(图1B中未展示)能够被编程到至少两种目标数据状态中的一者。

行解码电路系统108及列解码电路系统109经提供以解码地址信号。地址信号经接收及解码以存取存储器单元阵列104。存储器装置130还包含用以管理命令、地址及数据到存储器装置130的输入以及数据及状态信息从存储器装置130输出的输入/输出(I/O)控制电路系统160。地址寄存器114与I/O控制电路系统160及行解码电路系统108及列解码电路系统109通信以在解码之前锁存地址信号。命令寄存器124与I/O控制电路系统160及本地媒体控制器135通信以锁存传入命令。

控制器(例如存储器装置130内部的本地媒体控制器135)响应于命令而控制对存储器单元阵列104的存取且产生用于外部存储器子系统控制器115的状态信息,即,本地媒体控制器135经配置以对存储器单元阵列104执行存取操作(例如读取操作、编程操作及/或擦除操作)。本地媒体控制器135与行解码电路系统108及列解码电路系统109通信以响应于地址而控制行解码电路系统108及列解码电路系统109。

本地媒体控制器135还与高速缓存寄存器172通信。高速缓存寄存器172根据本地媒体控制器135的引导锁存传入或传出数据以在存储器单元阵列104分别忙于写入或读取其它数据时临时存储数据。在编程操作(例如写入操作)期间,数据可从高速缓存寄存器172传递到数据寄存器170以传送到存储器单元阵列104;接着,新数据可从I/O控制电路系统160锁存于高速缓存寄存器172中。在读取操作期间,数据可从高速缓存寄存器172传递到I/O控制电路系统160以输出到存储器子系统控制器115;接着,新数据可从数据寄存器170传递到高速缓存寄存器172。高速缓存寄存器172及/或数据寄存器170可形成存储器装置130的页面缓冲器(例如,可形成所述页面缓冲器的一部分)。页面缓冲器可进一步包含用以例如通过感测连接到存储器单元阵列104中的存储器单元的数据线的状态来感测所述存储器单元的数据状态的感测装置(图1B中未展示)。状态寄存器122可与I/O控制电路系统160及本地媒体控制器135通信以锁存状态信息以输出到存储器子系统控制器115。

存储器装置130经由控制链路132从本地媒体控制器135接收存储器子系统控制器115处的控制信号。举例来说,所述控制信号可包含芯片启用信号CE#、命令锁存启用信号CLE、地址锁存启用信号ALE、写入启用信号WE#、读取启用信号RE#及写入保护信号WP#。可取决于存储器装置130的性质,经由控制链路132进一步接收额外或替代控制信号(未展示)。在一个实施例中,存储器装置130经由多路复用输入/输出(I/O)总线134从存储器子系统控制器115接收命令信号(其表示命令)、地址信号(其表示地址)及数据信号(其表示数据)且经由I/O总线134将数据输出到存储器子系统控制器115。

举例来说,命令可经由I/O总线134的输入/输出(I/O)引脚[7:0]在I/O控制电路系统160处接收,且接着,可被写入到命令寄存器124中。地址可经由I/O总线134的输入/输出(I/O)引脚[7:0]在I/O控制电路系统160处接收,且接着,可被写入到地址寄存器114中。数据可经由用于8位装置的输入/输出(I/O)引脚[7:0]或用于16位装置的输入/输出(I/O)引脚[15:0]在I/O控制电路系统160处接收,且接着,可被写入到高速缓存寄存器172中。数据随后可被写入到数据寄存器170中以对存储器单元阵列104进行编程。

在实施例中,可省略高速缓存寄存器172,且数据可被直接写入到数据寄存器170中。数据还可经由用于8位装置的输入/输出(I/O)引脚[7:0]或用于16位装置的输入/输出(I/O)引脚[15:0]输出。尽管可参考I/O引脚,但其可包含通过外部装置(例如存储器子系统控制器115)提供到存储器装置130的电连接的任何导电节点,例如通常所使用的导电垫或导电凸块。

所属领域的技术人员应了解,可提供额外电路系统及信号,且已经简化了图1B的存储器装置130。应认识到,参考图1B描述的各种块组件的功能性可不必被分隔到集成电路装置的相异组件或组件部分。举例来说,集成电路装置的单个组件或组件部分可经调适以执行图1B的多于一个块组件的功能性。替代地,集成电路装置的一或多个组件或组件部分可经组合以执行图1B的单个块组件的功能性。另外,虽然根据用于接收及输出各种信号的流行惯例描述特定I/O引脚,但应注意,在各种实施例中可使用其它组合或数目的I/O引脚(或其它I/O节点结构)。

图2是说明根据本公开的一些实施例的在存储器子系统的非易失性存储器装置中实施功率高效码字加扰的码字加扰组件的框图。在一个实施例中,码字加扰组件113接收存储器分段标识符210作为输入。取决于实施例,存储器分段标识符210可为唯一地识别存储器装置(例如存储器装置130)的分段的一位置或一群组位置(例如,块的字线)的任何值。在一个实施例中,存储器分段标识符210对至少一个其它值具有基于位置的相依性,使得在与一个位置相关联的存储器分段标识符210与和另一位置相关联的存储器分段标识符之间存在某可辨别关系。举例来说,如果与邻近存储器位置相关联,那么存储器分段标识符可为连续值。在其它实施例中,存储器分段标识符210可为某个其它值。

在一个实施例中,码字加扰组件113将散列函数220应用到存储器分段标识符210以产生散列种子225。散列函数220可包含可用于将输入数据(例如,存储器分段标识符210)映射到输出散列(例如,散列种子225)的任何函数。散列函数220可采取许多可能形式中的任一者但通常计算速度很快且最小化输出值的重复(即,碰撞)。因此,虽然输出散列种子225能够通过多次将散列函数220应用到输入数据来重建,但输出散列种子225通常对输入数据没有可辨别的相依性且通常与在提供其它输入数据时产生的输出不同。

在一个实施例中,码字加扰组件113包含一或多个伪随机数产生器。举例来说,如图2中说明,码字加扰组件113包含数个线性反馈移位寄存器(LFSR)230、232、234及236。取决于实施例,线性反馈移位寄存器230、232、234及236中的每一者可为相同的,或线性反馈移位寄存器230、232、234及236中的两者或更多者可具有不同结构。在其它实施例中,码字加扰组件113可包含某个其它数目的线性反馈移位寄存器或某种其它类型的伪随机数产生器。在一个实施例中,散列种子225(或散列函数220的其它输出)被用作线性反馈移位寄存器230、232、234及236中的每一者的种子值。在每一时钟周期期间,反馈移位寄存器230、232、234及236中的每一者可对种子的某些位执行所选择的逻辑操作(例如布尔逻辑运算)以创建新位值、移位种子中的所有位及在开始处附加新位值。输出位落在种子值的末尾,且随着众多时钟周期被重复,产生随机化序列。可重复所述过程达数个时钟周期直到输出序列达到所期望长度。在一个实施例中,码字加扰组件113组合(例如,序连)来自反馈移位寄存器230、232、234及236中的每一者的随机化输出序列以产生随机化串240。如下文更详细描述,随机化串240可用于对存储器装置(例如存储器装置130)执行某些存储器存取操作(例如,编程及读取操作)。

图3是根据本公开的一些实施例的在存储器子系统的非易失性存储器装置中进行功率高效码字加扰的实例方法的流程图。方法300可由处理逻辑执行,所述处理逻辑可包含硬件(例如处理装置、电路系统、专用逻辑、可编程逻辑、微代码、装置的硬件、集成电路等)、软件(例如运行或执行于处理装置上的指令)或其组合。在一些实施例中,方法300由图1A的码字加扰组件113执行。尽管以特定序列或顺序展示,但除非另外指定,否则过程的顺序可修改。因此,所说明实施例应仅被理解为实例,且所说明过程可以不同顺序执行,且一些过程可并行执行。另外,在各个实施例中,可省略一或多个过程。因此,不是每个实施例中都需要所有过程。其它过程流程是可能的。

在操作305处,接收请求。举例来说,处理逻辑(例如,码字加扰组件113)从请求者接收对存储器装置(例如存储器装置130)执行存储器存取操作的请求。在一个实施例中,存储器子系统控制器115从主机系统120或从连接到存储器子系统110或在存储器子系统110内的某个其它组件接收请求。取决于实施例,请求可为执行编程操作或读取操作中的至少一者。因此,请求可包含要编程到存储器装置130的数据(例如码字)或标识要从存储器子系统110的存储器装置130读取的数据。

在操作310处,确定某一值。举例来说,处理逻辑可确定与存储器存取操作相关联的值,例如存储器分段标识符210。存储器分段标识符210可为唯一地识别存储器装置(例如存储器装置130)的分段的一位置或一群组位置(例如,块的字线)的任何值。在一个实施例中,存储器分段标识符210对至少一个其它值具有基于位置的相依性。举例来说,存储器分段标识符210可包含来自存储器装置130的存储器阵列104的行索引的一部分、物理块地址(PBA)的一部分或与数据将被写入到其上的字线相关联的某个其它值。取决于实施例,在操作305处接收的请求可包含存储器分段标识符210,或码字加扰组件113可从某个其它源(例如逻辑到物理(L2P)映射表、系统元数据或某种其它数据结构)确定存储器分段标识符210。

在操作315,应用散列函数。举例来说,处理逻辑可将散列函数(例如散列函数220)应用到在操作310处确定的存储器分段标识符。在一个实施例中,码字加扰组件113将散列函数220应用到存储器分段标识符210以产生散列种子225。散列函数220可包含可用于将输入数据(例如,存储器分段标识符210)映射到输出散列(例如,散列种子225)的任何函数。在一个实施例中,散列函数220包含福勒-诺尔-沃(Fowler-Noll-Vo)(FNV)散列函数。举例来说,FNV散列函数可取输入(例如,存储器分段标识符210)的每一字节,将那个字节乘以FNV素数,且接着,将结果与字节进行XOR运算。替代地,可反转所述操作顺序。在其它实施例中,散列函数220可包含可将输入数据(例如,存储器分段标识符210)映射到输出散列(例如,散列种子225)的某种其它散列函数。

在操作320处,产生随机化串。举例来说,处理逻辑可将散列函数的结果(例如,散列种子225)提供到伪随机数产生器,例如线性反馈移位寄存器230、232、234及236中的一或多者,以产生随机化串。在一个实施例中,散列种子225(或散列函数220的其它输出)被用作线性反馈移位寄存器230、232、234及236中的一或多者的种子值。在每一时钟周期期间,反馈移位寄存器230、232、234及236中的一或多者可对种子的某些位执行所选择的逻辑操作(例如布尔逻辑运算)以创建新位值、移位种子中的所有位及在开始处附加新位值。输出位落在种子值的末尾,且随着众多时钟周期被重复,产生随机化序列。可重复所述过程达数个时钟周期直到输出序列(例如随机化串240)达到所期望长度。

在操作325处,执行存储器存取操作。举例来说,处理逻辑可响应于在操作305处接收的请求使用随机化串240对存储器装置130执行存储器存取操作。取决于实施例,存储器存取操作可包含例如编程操作或读取操作。当存储器存取操作包含编程操作时,码字加扰组件113可:使用随机化串240对与请求一起接收到的码字进行加扰,所述码字包括将写入到存储器装置的物理存储器单元的经编码数据;及将经加扰码字编码到与在操作310处确定的存储器分段标识符相关联的存储器装置130的分段。当存储器存取操作包含读取操作时,码字加扰组件113可从与在操作310处确定的存储器分段标识符相关联的存储器装置130的分段读取经加扰感测字并使用随机化串240对经加扰感测字进行解扰。在一个实施例中,针对编程操作或读取操作,随机化串240可与被编程或读取的数据在逻辑上进行组合(例如,经由XOR运算)。

图4说明计算机系统400的实例机器,在所述计算机系统内可执行用于致使所述机器执行本文中论述的方法论中的任一或多者的一组指令。在一些实施例中,计算机系统400可对应于主机系统(例如图1A的主机系统120),其包含、经耦合到或利用存储器子系统(例如图1A的存储器子系统110)或可用于执行控制器的操作(例如,执行操作系统以执行对应于图1A的码字加扰组件113的操作)。在替代实施例中,机器可连接(例如联网)到LAN、内联网、外联网及/或因特网中的其它机器。机器可在客户端-服务器网络环境中以服务器或客户端机器的身份操作,在对等(或分布式)网络环境中作为对等机器操作,或在云计算基础设施或环境中作为服务器或客户端机器操作。

机器可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络设备、服务器、网络路由器、交换机或网桥或能够(循序或以其它方式)执行指定由所述机器所采取的动作的一组指令的任何机器。此外,虽然说明了单个机器,但术语“机器”还应被视为包含个别地或联合地执行一(或多组)指令以执行本文中论述的方法论中的任一或多者的机器的任何集合。

实例计算机系统400包含处理装置402、主存储器404(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM)(例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等)、静态存储器406(例如,快闪存储器、静态随机存取存储器(SRAM))等)以及数据存储系统418,其经由总线430彼此通信。

处理装置402表示一或多个通用处理装置,例如微处理器、中央处理单元或类似者。更特定来说,处理装置可为复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或实施其它指令集的一处理器或实施指令集组合的多个处理器。处理装置402也可为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器或类似者。处理装置402经配置以执行用于执行本文中论述的操作及步骤的指令426。计算机系统400可进一步包含网络接口装置408以通过网络420通信。

数据存储系统418可包含其上存储体现本文中描述的方法论或功能中的任一或多者的一或多组指令426或软件的机器可读存储媒体424(也称为计算机可读媒体)。指令426也可在其由计算机系统400执行期间完全或至少部分驻留于主存储器404内及/或处理装置402内,主存储器404及处理装置402也构成机器可读存储媒体。机器可读存储媒体424、数据存储系统418及/或主存储器404可对应于图1A的存储器子系统110。

在一个实施例中,指令426包含实施对应于图1A的码字加扰组件113的功能性的指令。虽然在实例实施例中将机器可读存储媒体424展示为单个媒体,但术语“机器可读存储媒体”应理解为包含存储一或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码一组指令以供机器执行并且致使机器执行本公开的方法中的任一者或多者的任何媒体。术语“机器可读存储媒体”应相应地理解为包含(但不限于)固态存储器、光学媒体及磁性媒体。

已依据对计算机存储器内的数据位的操作的算法及符号表示呈现前述详细描述的一些部分。这些算法描述及表示是由数据处理领域的技术人员用以向所属领域的其它技术人员最有效地表达其工作实质的方式。算法在本文且通常被设想为导致所期望结果的自相一致的操作序列。操作是需要物理操纵物理量的操作。通常,尽管不是必须的,这些量采取能够被存储、组合、比较及以其它方式操纵的电或磁性信号的形式。已被证明是方便的是,有时出于习惯用法的原因,原则上将这些信号指代为位、值、元素、符号、字符、项、数字或类似者。

然而,应记住,全部这些及类似术语应与适当物理量相关联,且仅为应用于这些量的方便标签。本公开可涉及计算机系统或类似电子计算装置的动作及过程,其将表示为计算机系统的寄存器及存储器内的物理(电子)量的数据操纵或变换成类似地表示为计算机系统存储器或寄存器或其它此类信息存储系统内的物理量的其它数据。

本公开还涉及用于执行本文中的操作的设备。此设备可出于预期目的经专门构造,或其可包含由存储于计算机中的计算机程序选择性地激活或重新配置的通用计算机。此计算机程序可存储于计算机可读存储媒体中,例如(但不限于)任何类型的磁盘,包含软盘、光盘、CD-ROM及磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡或适于存储电子指令的任何类型的媒体,其各自耦合到计算机系统总线。

本文呈现的算法及显示并不固有地与任何特定计算机或其它设备相关。各种通用系统可结合根据本文的教示的程序使用,或可证明为方便的是构造更专门设备来执行方法。多种这些系统的结构将如下文描述中陈述那样出现。另外,本公开并非参考任何特定编程语言进行描述。应了解,多种编程语言可用于实施本文中所描述的本公开的教示。

本公开可经提供为计算机程序产品或软件,其可包含其上存储有指令的机器可读媒体,所述指令可用于对计算机系统(或其它电子装置)进行编程以执行根据本公开的过程。机器可读媒体包含用于存储呈可由机器(例如计算机)读取的形式的信息的任何机构。在一些实施例中,机器可读(例如计算机可读)媒体包含机器(例如计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。

在前述说明书中,已参考本公开的特定实例实施例描述了其实施例。将明白,可在不背离所附权利要求书中所陈述的本公开的实施例的更宽精神及范围的情况下对本公开做出各种修改。因此,说明书及图式应以说明性意义而非限制性意义来看待。

相关技术
  • 一种信号加扰、解扰方法及装置
  • 一种MIMO无线通信系统中的帧加扰和解扰方法及其通信装置
  • 一种MIMO无线通信系统中的帧加扰和解扰方法及其通信装置
技术分类

06120116490387