CN111338565A - 基于存储器单元的噪声特性生成随机值 - Google Patents
基于存储器单元的噪声特性生成随机值 Download PDFInfo
- Publication number
- CN111338565A CN111338565A CN201911311414.5A CN201911311414A CN111338565A CN 111338565 A CN111338565 A CN 111338565A CN 201911311414 A CN201911311414 A CN 201911311414A CN 111338565 A CN111338565 A CN 111338565A
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- memory cell
- noise
- random
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0623—Securing storage systems in relation to content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0626—Reducing size or complexity of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/068—Hybrid storage device
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
Abstract
本申请案涉及基于存储器单元的噪声特性生成随机值。可以接收生成一或多个随机值的请求。响应于接收到生成所述一或多个随机值的所述请求,可以对所述存储器组件的存储器单元执行第一读取操作以检索第一数据,且可以对所述存储器组件的所述同一存储器单元执行第二读取操作以检索第二数据。可以将所述第一数据与所述第二数据进行比较以识别所述第一数据与所述第二数据之间的差。所述差可以与所述存储器单元的噪声特性相关联。可以基于与所述存储器单元的所述噪声特性相关联的所述第一数据与所述第二数据之间的所述差,生成所述一或多个随机值。
Description
技术领域
本发明大体上涉及一种存储器子系统,且更具体地,涉及基于存储器子系统中的存储器单元的噪声特性生成随机值。
背景技术
存储器子系统可以为存储系统,例如固态驱动器(SSD)。存储器子系统可为存储器模块,例如双列直插式存储器模块(DIMM)、小引出线DIMM(SO-DIMM)或非易失性双列直插式存储器模块(NVDIMM)。存储器子系统可包含存储数据的一或多个存储器组件。存储器组件可为例如非易失性存储器组件和易失性存储器组件。通常,主机系统可利用存储器子系统来将数据存储在存储器组件处并从存储器组件检索数据。
发明内容
本申请案的一个方面是针对一种系统,其包括:存储器组件;及处理装置,与所述存储器组件可操作地耦合,以:接收生成一或多个随机值的请求;响应于接收到生成所述一或多个随机值的所述请求,对所述存储器组件的存储器单元执行第一读取操作以检索第一数据,且对所述存储器组件的所述同一存储器单元执行第二读取操作以检索第二数据;将所述第一数据与所述第二数据进行比较,以识别所述第一数据与所述第二数据之间的差,所述差与所述存储器单元的噪声特性相关联;及基于与所述存储器单元的所述噪声特性相关联的所述第一数据和所述第二数据之间的所述差,生成所述一或多个随机值。
本申请案的另一方面是针对一种方法,其包括:确定第一存储器单元的第一噪声特性与第二存储器单元的第二噪声特性之间的差;及通过处理装置,基于所述第一存储器单元的所述第一噪声特性与所述第二存储器单元的所述第二噪声特性之间的所述差生成随机值。
本发明的又一方面是针对一种包括指令的非暂时性计算机可读存储媒体,所述指令在由处理装置执行时致使所述处理装置执行包括以下的操作:接收生成一或多个随机值的请求;响应于接收到生成所述一或多个随机值的所述请求,对所述存储器组件的存储器单元执行第一读取操作以检索第一数据,且对所述存储器组件的所述同一存储器单元执行第二读取操作以检索第二数据;将所述第一数据与所述第二数据进行比较,以识别所述第一数据与所述第二数据之间的差,所述差与所述存储器单元的噪声特性相关联;及基于与所述存储器单元的所述噪声特性相关联的所述第一数据和所述第二数据之间的所述差,生成所述一或多个随机值。
附图说明
从下文给出的详细描述和从本发明的各种实施方案的附图将更全面理解本发明。
图1根据本发明的一些实施例说明包含存储器子系统的实例计算环境。
图2为根据一些实施例的基于存储器单元的噪声特性生成随机值的实例方法的流程图。
图3为根据本发明的一些实施例的用以基于从存储器单元的读取操作检索的值之间的差生成随机值的实例方法的流程图。
图4根据本发明的一些实施例说明基于从存储器单元的读取操作检索的值之间的差来确定随机位值。
图5为根据一些实施例的基于存储器单元的噪声特性之间的差生成随机值的实例方法的流程图。
图6说明根据本发明的一些实施例的基于存储器单元的噪声特性之间的差生成随机值的实例硬件架构。
图7为根据一些实施例的基于存储器子系统的一或多个噪声特性生成随机值的实例方法的流程图。
图8为其中可操作本发明的实施方案的实例计算机系统的框图。
具体实施方式
本发明的各方面是针对基于存储器子系统中的存储器单元的噪声特性生成随机值。存储器子系统在下文中也被称作为“存储器装置”。存储器子系统的实例为经由外围互连(例如,输入/输出总线、存储区域网络)耦合到中央处理单元(CPU)的存储装置。存储装置的实例包含固态驱动器(SSD)、快闪存储器驱动器和通用串行总线(USB)快闪存储器。存储器子系统的另一实例为经由存储器总线耦合到CPU的存储器模块。存储器模块的实例包含双列直插式存储器模块(DIMM)、小引出线DIMM(SO-DIMM)、非易失性双列直插式存储器模块(NVDIMM)等。存储器子模块系统可为混合存储器/存储器子系统。一般来说,主机系统可利用包含一或多个存储器组件的存储器子系统。主机系统可提供待存储在存储器子系统处的数据,且可请求从存储器子系统检索数据。
主机系统对数据的存储或请求可以基于随机值(即,随机数)。例如,在常规的存储器子系统中,可以通过在加密操作期间利用随机值来对存储在存储器组件处的数据进行加密。主机系统可以利用伪随机数生成器(PRNG)生成随机值。例如,主机系统可以向伪随机数生成器提供种子或初始值,且PRNG可以基于初始值继续输出值序列。PRNG可以在主机系统处实现为软件算法或硬件组件。然而,由于PRNG的输出基于提供至PRNG的初始值,因此PRNG可以被认为是确定性的。因此,PRNG中的值是伪随机的,而不是真正的随机值。例如,来自PRNG的值不是真正的随机值,因为如果知道PRNG的初始条件(例如PRNG本身的实施方案、种子或初始值等),那么可以预测PRNG的输出。相反,真正的随机值可以为值,所述值经生成使得生成值的条件为未知的或不可追踪。
本发明的各方面通过基于存储器子系统中的存储器单元的噪声特性生成随机值来解决上述和其它缺陷。例如,存储器子系统的存储器单元可以展现出可用于生成随机值的噪声特性。噪声特性可以为包含在存储器子系统中的存储器单元的随机电报噪声(RTN)。随机电报噪声可以为从存储器单元的半导体材料产生的电子噪声。RTN可被观测为不可预测的电压跃迁,使得在被观测之前,电压跃迁的时间或发生以及电压跃迁的量值为随机的或未知的。在一些实施例中,噪声特性可以为RTN与存储器单元的其它电噪声或热噪声的组合。
可以通过执行存储器单元的多次读取操作来观测噪声特性。例如,可以对存储器单元执行第一读取操作以检索第一值,所述第一值指示先前存储在所述存储器单元处的数据。第一值可以为在对数据执行任何纠错操作之前或在未对数据执行任何纠错操作的情况下的所检索数据的版本。通常,纠错操作检测并校正由于在执行读取操作期间发生的噪声而改变的数据的任何位值(例如,从0变为1,或反之亦然)。还可以对同一存储器单元执行第二读取操作,以检索第二值,所述第二值指示存储在所述存储器单元处的相同数据。第二读取操作也可以在任何纠错操作之前或在无任何纠错操作的情况下执行。然后,可以将来自第一读取操作的第一值与来自第二读取操作的第二值进行比较,以确定第一值和第二值之间的任何差。然后可以将这些差用于生成一或多个随机值。由于第一值和第二值表示相同的存储数据,且在未执行任何纠错操作的情况下进行比较,因此,来自第一读取操作的第一值与来自第二读取操作的第二值之间的差异可能为存储器单元的噪声特性的结果。
在一些实施例中,可以基于存储器子系统的多个存储器单元的噪声特性生成随机值。例如,可以观测到第一存储器单元的第一噪声特性和第二存储器单元的第二噪声特性。可以将第一噪声特性与第二噪声特性进行比较以确定两个存储器单元的两个噪声特性之间的差。然后可以基于噪声特性之间的差生成随机值。如下文进一步详细所描述,噪声特性可以为用于生成同步随机值的异步信号。
本发明的优点包含但不限于针对利用随机值的操作的经改进安全性。例如,由于随机值是基于在被观测到之前为不可预测且未知的存储器单元的噪声特性生成,因此与伪随机数相反,随机值可以为真正随机的。因此,如果加密操作(例如,加密操作)利用随机数将数据存储在存储器子系统中,那么存储数据可以被认为更安全,因为数据是通过基于真正随机数的更安全加密操作进行加密的。随机值的其它此类应用或使用因此也可以被认为更安全或具有经改进性能。例如,由于所利用的随机值为真正随机的,因此还可以改进随机值在模拟(例如,蒙特卡洛方法)、游戏环境(例如,赌博或其它此类游戏)等中的利用。
此外,由于与以软件实施或实施为主机系统处的硬件组件的伪随机数生成器相反,随机值的生成可以基于存储器单元的噪声特性,因此伪随机数生成器的功能性可以从主机系统移除,因为存储器子系统可以通过利用存储器单元的噪声特性来提供所述功能性。因此,可以降低主机系统的复杂性,且存储器子系统除了提供任何存储数据外,还可以向主机系统提供随机值。
图1根据本发明的一些实施例说明包含存储器子系统110的实例计算环境100。存储器子系统110可包含媒体,例如存储器组件112A到112N。存储器组件112A到112N可为易失性存储器组件、非易失性存储器组件或此类组合。在一些实施例中,存储器子系统为存储系统。存储系统的实例为SSD。在一些实施例中,存储器子系统110为混合存储器/存储子系统。通常,计算环境100可以包含使用存储器子系统110的主机系统120。例如,主机系统120可以将数据写入到存储器子系统110,且从存储器子系统110读取数据。
主机系统120可为计算装置,例如桌上型计算机、膝上型计算机、网络服务器、移动装置,或包含存储器和处理装置的此类计算装置或微控制器。主机系统120可以包含或耦合到存储器子系统110,以使得主机系统120可以从存储器子系统110读取数据或向存储器子系统110写入数据。主机系统120可以经由物理主机接口耦合到存储器子系统110。如本文中所使用,“耦合到”通常是指组件之间的连接,其可为间接通信连接或直接通信连接(例如,无需中间组件),无论是有线的还是无线的,包含例如电、光、磁等连接。物理主机接口的实例包含但不限于串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行附接SCSI(SAS)、推荐性标准(RS)-232、工业标准体系结构(ISA)、并行控制器局域网(CAN)、通用异步接收器-发射器(UART)等。物理主机接口可用于在主机系统120与存储器子系统110之间发射数据。当存储器子系统110通过PCIe接口与主机系统120耦合时主机系统120可进一步利用NVM高速(NVMe)接口来存取存储器组件112A到112N。物理主机接口可提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据和其它信号的接口。
存储器组件112A到112N可包含不同类型的非易失性存储器组件和/或易失性存储器组件的任何组合。非易失性存储器组件的实例包含与非(NAND)型快闪存储器。存储器组件112A到112N中的每一者可以包含一或多个存储器单元阵列,例如单级单元(SLC)或多级单元(MLC)(例如,三级单元(TLC)或四级单元(QLC))。在一些实施例中,特定存储器组件可包含存储器单元的SLC部分和MLC部分两者。存储器单元中的每一个可以存储由主机系统120使用的一或多个位的数据(例如,数据块)。尽管描述例如NAND型快闪存储器的非易失性存储器组件,但存储器组件112A到112N可以基于例如易失性存储器的任何其它类型的存储器。在一些实施例中,存储器组件112A到112N可为但不限于随机存取存储器(RAM)、只读存储器(ROM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、相变存储器(PCM)、磁随机存取存储器(MRAM)、或非(NOR)快闪存储器、电可擦除可编程只读存储器(EEPROM)和非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠的交叉网格化数据存取阵列基于体电阻的改变执行位存储。此外,与许多基于快闪存储器的存储器相比,交叉点非易失性存储器可执行写入就地操作,其中可编程非易失性存储器单元而不会先前擦除非易失性存储器单元。此外,存储器组件112A到112N的存储器单元可经分组为存储器页或数据块,其可指代用于存储数据的存储器组件的单元。
存储器系统控制器115(下文中被称作为“控制器”)可与存储器组件112A到112N通信以执行例如在存储器组件112A到112N处读取数据、写入数据或擦除数据的操作以及其它此类操作。控制器115可以包含例如一或多个集成电路和/或离散组件的硬件、缓冲存储器或其组合。控制器115可以为微控制器、专用逻辑电路(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等),或其它合适处理器。控制器115可以包含经配置以执行存储在本地存储器119中的指令的处理器(处理装置)117。在所说明实例中,控制器115的本地存储器119包含嵌入式存储器,所述嵌入式存储器经配置以存储用于执行控制存储器子系统110的操作(包含处置存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流以及例程的指令。在一些实施例中,本地存储器119可以包含存储存储器指针、所提取数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(ROM)。虽然图1中的实例存储器子系统110已经说明为包含控制器115,但在本发明的另一实施例中,存储器子系统110可不包含控制器115,且替代地可依赖于外部控制(例如,由外部主机,或由与存储器子系统分开的处理器或控制器提供)。
通常,控制器115可从主机系统120接收命令或操作,且可将命令或操作转换为指令或适当的命令,以实现对存储器组件112A到112N的期望存取。控制器115可负责与存储器组件112A到112N相关联的其它操作,例如磨损均衡操作、无用单元收集操作、错误检测和纠错码(ECC)操作、加密操作、高速缓存操作以及逻辑块地址与物理块地址之间的地址转换。控制器115可进一步包含主机接口电路,以经由物理主机接口与主机系统120通信。主机接口电路可将从主机系统接收的命令转换为命令指令以存取存储器组件112A到112N,以及将与存储器组件112A至112N相关联的响应转换为用于主机系统120的信息。
存储器子系统110还可包含未说明的额外电路或组件。在一些实施例中,存储器子系统110可包含高速缓冲存储器或缓冲器(例如,DRAM)和地址电路(例如,行解码器和列解码器),其可从控制器115接收地址并解码所述地址以存取存储器组件112A到112N。
存储器子系统110包含可用于生成一或多个随机值的随机数生成器组件113。在一些实施例中,控制器115包含随机数生成器组件113的至少一部分。例如,控制器115可以包含处理器117(处理装置),所述处理器经配置以执行存储在本地存储器119中的指令以执行本文中所描述的操作。在一些实施例中,随机数生成器组件113为主机系统120、应用程序或操作系统的一部分。
随机数生成器组件113可以接收基于包含在存储器子系统110的存储组件112A至112N中的一个的存储器单元的噪声特性的值。随机数生成器组件113可以基于存储器单元的噪声特性生成随机值。此外,随机数生成器组件113可以在生成随机值时调整存储器子系统110的操作。下文描述关于随机数生成器组件113的操作的进一步细节。
图2为根据本发明的一些实施例的用以基于存储器单元的噪声特性生成随机值的实例方法200的流程图。方法200可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑,微代码,装置的硬件,集成电路等),软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法200为图1的随机数生成器组件113执行。尽管以特定的顺序或次序显示,但除非另有说明,否则可以修改过程的次序。因此,所说明的实施例应仅理解为实例,且所说明的过程可以不同次序执行,且某些过程可并行执行。另外,在各种实施例中可省略一或多个过程。因此,并非每一实施例中都需要所有过程。其它过程流程也是可能的。
如图2中所展示,在操作210处,处理逻辑接收生成随机值的请求。可以从主机系统接收所述请求。例如,所述请求可以识别主机系统的操作将利用随机值。在一些实施例中,可以响应于主机系统提供待以加密格式存储在存储器子系统处的数据而接收生成随机值的请求。可以响应于待利用提供到存储器子系统的数据执行的任何加密操作来接收所述请求。
在操作220处,响应于生成随机值的请求,处理逻辑确定表示存储器单元的噪声特性的值。例如,所述值可以为已对存储器单元执行的两次读取操作的数据之间的差。结合图3和4进一步描述关于基于两个读取操作的数据之间的差确定值的更多细节。在一些实施例中,所述值可以为存储器单元的噪声特性与另一存储器单元的另一噪声特性之间的差。结合图5和6描述基于存储器单元的噪声特性之间的差确定值的更多细节。
在一些实施例中,可以使用预定义存储器单元组来确定表示存储器单元的噪声特性的值。例如,可以在基于噪声特性生成随机数之前,生成数据并将其存储在所述预定义存储器单元组中的存储器单元处。例如,存储器子系统的控制器可以生成数据并将数据存储在存储器单元处。当待确定表示噪声特性的值时,可以选择所述预定义存储器单元组中的一或多个特定存储器单元供用于确定所述值。在一些实施例中,可以为待生成的每一后续随机值选择来自所述预定义存储器单元组的不同存储器单元。因此,可以响应于生成重复的随机值的重复请求而循环来自预定义组的不同存储器单元。此外,在一些实施例中,预定义存储器单元组可以为不存储来自主机系统的数据的存储器单元。
在操作230处,处理逻辑基于表示存储器单元的噪声特性的值生成随机值。随后,所述随机值可用于加密来自主机系统的数据。例如,基于存储器子系统的存储器单元的噪声特性的随机值可以用于加密来自主机系统的数据,所述数据待存储在存储器子系统的其它存储器单元处。在一些实施例中,随机值可以返回到主机系统以在将在主机系统处执行的另一操作(例如,游戏操作或模拟操作)中使用。在相同或替代实施例中,随机值可以与从主机系统接收的数据一起存储,且可以在主机系统请求数据时将其与所述数据一起返回。
在一些实施例中,当确定表示噪声特性的值时,可以修改存储器子系统的操作。例如,可以将读取阈值电压修改为相对于最佳读取阈值电压未对准,或可以改变存储器子系统的工作温度。修改存储器子系统的操作可能会向存储器单元引入额外噪声,从而导致发生与存储器单元的噪声特性相关联的随机事件的可能性增加,或操作的修改可能增加对与存储器单元的噪声特性相关联的噪声的敏感性且可以导致随机事件的概率增加。结合图7,描述了当待确定表示噪声特性的值时修改存储器子系统的更多细节。
图3为根据本发明的一些实施例的用以基于从存储器单元的读取操作检索的值之间的差生成随机值的实例方法300的流程图。方法300可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑,微代码,装置的硬件,集成电路等),软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法300为图1的随机数生成器组件113执行。尽管以特定的顺序或次序显示,但除非另有说明,否则可以修改过程的次序。因此,所说明的实施例应仅理解为实例,且所说明的过程可以不同次序执行,且某些过程可并行执行。另外,在各种实施例中可省略一或多个过程。因此,并非每一实施例中都需要所有过程。其它过程流程也是可能的。
如图3中所展示,在操作310处,处理逻辑接收生成随机值的请求。在操作320处,处理逻辑响应于所述指示而对存储器单元执行第一读取操作,以检索指示存储在所述存储器单元处的数据的第一值。所述第一值可以为在对所述第一值执行任何纠错操作之前对所述存储器单元执行的第一读取操作的结果。因此,第一值用在执行第一读取操作以读取数据时存在于存储器单元处的任何噪声特性表示已存储在存储器单元处的数据。在操作330处,处理逻辑响应于所述指示而对同一存储器单元执行第二读取操作,以检索指示存储在所述存储器单元处的数据的第二值。例如,可以在已执行第一读取操作之后执行第二读取操作以读取同一存储器单元处的数据。此外,第二值可以为在对第二值执行任何纠错操作之前或在未对第二值执行任何纠错操作的情况下第二读取操作的结果。因此,第二值表示与通过第一读取操作读取的数据相同的数据,但是第二值可以包含当执行第二读取操作以读取数据时在存储器单元处存在或观测到的不同噪声特性。可以用未对准读取阈值电压来执行第一读取操作和第二读取操作,如结合图7进一步所描述。
如图3中所展示,在操作340处,处理逻辑确定与存储器单元的噪声特性相关联的第一值和第二值之间的差。所述差可能为由于在第一读取操作和第二读取操作期间在存储器单元处存在或观测到的不同噪声特性的结果。例如,可以基于由第一读取操作产生的第一值和由第二读取操作产生的第二值的不同位值来确定所述差。由于第一读取操作和第二读取操作是对存储在相同存储器单元处的相同数据执行,因此读取值的差可能为存储器单元的不同噪声特性的结果。然后可以基于第一值的特定位不同于第二值的对应位来确定随机值的位。
在操作350处,处理逻辑基于与存储器单元的噪声特性相关联的差生成随机值。例如,如下文关于图4进一步描述,可以基于第一值的特定位不同于第二值的对应位生成随机值。
图4根据本发明的一些实施例说明基于从存储器单元的读取操作检索的值之间的差来确定随机位值。读取操作410和420可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑,微代码,装置的硬件,集成电路等),软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,读取操作410和420图1的随机数生成器组件113执行。
如所展示,第一读取操作410和第二读取操作420可以基于存储在存储器单元处的数据返回值。返回值可以表示在读取数据时对读取操作的结果执行任何纠错操作之前或在未对读取操作的结果执行任何纠错操作的情况下,第一读取操作410和第二读取操作420中的每一个的结果。例如,存储在存储器单元处的数据可以为“11010100”,且当执行第一读取操作410以读取数据时,返回的值可以为“11010000”。因此,由于读取数据时存储器单元的噪声特性,由第一读取操作返回的值的第六位可以被切换或翻转(例如,从1到0,或反之亦然)。此外,当执行第二次读取操作420以读取该数据时,可以将所存储的相同数据或与“11010100”相同的数据返回为“10010100”。因此,当第二次读取相同数据时,由于存储器单元的噪声特性,可以切换或翻转由第二读取操作返回的值的第二位。
对于相同数据的不同读取操作,返回的值之间的位值的差可用于确定随机值的位。例如,当第一读取操作410的第一值的位与第二读取操作420的第二值的位不同时,可以确定随机值的第一位值。例如,如所展示,位值针对第二位430和第六位431不同。当第一值的位大于第二值的位时,可以将随机值的位确定为第一值(例如,0)。如此,对于第二位430,用于随机值的位值可为0。替代地,当第一值的位小于第二值的位时,可以将随机值的位确定为不同的第二值(例如,1)。例如,由于第一值的第六位432小于第二值的第六位,因此随机值的另一位可以确定为1。此外,在第一值和第二值相同的位处,可能不为随机值生成任何位。例如,不能基于第四位431生成随机值的任何位。
如此,读取操作的结果的位值之间的差可用于确定随机值的不同位。尽管关于图4显示总计八个位,但可以使用任何数目个位和读取操作来确定用于确定随机值的不同位。可以执行随后的读取操作对,直到可以为特定大小的随机值生成多个位为止。例如,随机值可以为八个位的大小。可以执行成对的读取操作,直到可以为随机值生成八个位为止。在一些实施例中,可以为不同存储器单元执行成对读取操作。例如,如所展示,第一读取操作410和第二读取操作420可以为已经对第一存储器单元执行的第一对读取操作,且可以用于生成用于随机值的八个随机位中的两个随机位。可以对不同的存储器单元执行随后的一对读取操作,以生成额外随机位。可以对不同存储器单元执行随后的读取操作对,直到生成随机值的八个位为止。在一些实施例中,可以对相同的存储器单元执行成对的读取操作。
图5为根据一些实施例的基于存储器单元的噪声特性之间的差生成随机值的实例方法500的流程图。方法500可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑,微代码,装置的硬件,集成电路等),软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法500为图1的随机数生成器组件113执行。尽管以特定的顺序或次序显示,但除非另有说明,否则可以修改过程的次序。因此,所说明的实施例应仅理解为实例,且所说明的过程可以不同次序执行,且某些过程可并行执行。另外,在各种实施例中可省略一或多个过程。因此,并非每一实施例中都需要所有过程。其它过程流程也是可能的。
如图5中所展示,在操作510处,处理逻辑接收第一存储器单元的第一噪声特性,且在操作520处,接收第二存储器单元的第二噪声特性。可以响应于生成随机值的请求而接收第一噪声特性和第二噪声特性。第一噪声特性和第二噪声特性可以为来自存储器单元的原始模拟电压信号,且第二噪声特性可以为来自另一存储器单元的另一原始模拟电压信号。原始模拟电压信号可以根据来自相应存储器单元的电荷的电压来测量。当数据存储在存储器单元处时,可以观测到原始模拟电压信号。此外,除了存在于存储器单元处的任何其它电或热噪声特性之外,原始模拟电压信号还可以基于存储器单元的随机电报噪声。在操作530处,处理逻辑确定第一噪声特性和第二噪声特性之间的差。例如,可以确定第一噪声特性和第二噪声特性之间的模拟差。因此,可以确定不同存储器单元的两个模拟源之间的模拟差(例如,第一噪声特性和第二噪声特性)。随后,在操作540处,处理逻辑基于第一噪声特性与第二噪声特性之间的差生成随机值。例如,第一噪声特性和第二噪声特性可各自随时间变化。例如,第一噪声特性和第二噪声特性中的每一个的模拟信号可以随时间变化,且所得到的差的模拟信号也可以随时间变化。模拟信号的变化可经观测为电压电平之间的双态切换。变化或双态切换可用于表示随机值的位。例如,在特定时间,如果第一噪声特性超过第二噪声特性,那么随机值的特定位可以为1,且如果第一噪声特性在随后时间小于第二噪声特性,那么随机值的另一位可以为0。因此,表示噪声特性的原始模拟电压的双态切换或改变可用于生成随机值的不同位。
在一些实施例中,可以通过高通滤波器或可将噪声特性与某些频率下的原始模拟电压隔离的其它此类装置将噪声特性与原始模拟电压隔离。此外,可以通过确定模拟噪声特性之间的差的比较器电路或组件来确定单独噪声特性之间的差。比较器电路或组件的输出可以由非反相滤波器接收,所述非反相滤波器可以增加比较器电路的输出增益,以使得噪声特性之间的差的总增益可以达到特定电压电平(例如,Vcc或0伏)。因此,非反相滤波器的输出可以为表示噪声特性差的特定电压电平。噪声特性的输出或差随后可用于生成同步随机值,如下文进一步详细描述。
在一些实施例中,可以在第一时间生成第一噪声特性,且可以在第一存储器元件处存储表示第一噪声字符的值。可以在第二时间生成第二噪声特性,且可以将表示第二噪声特性的另一值存储在第二存储器元件处。当待生成随机值时,可以将第一值与第二值彼此进行比较。
图6说明根据本发明的一些实施例的基于存储器单元的噪声特性之间的差生成随机值的实例硬件架构600。架构600可表示处理逻辑,所述处理逻辑可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑,微代码,装置的硬件,集成电路等),软件(例如,在处理装置上运行或执行的指令)或其组合。架构600可由图1的随机数生成器组件113使用。
如图6中所展示,架构600可以包含多个噪声源610、611、612和613。噪声源610、611、612和613中的每一个都可以代表两个存储器单元的噪声特性之间的差,如先前所描述。例如,每一噪声源可以提供表示两个存储器单元的两个噪声特性之间的差的输出,且所述输出可以随时间改变。逻辑组件620可以接收噪声源610、611、612和613中的每一个的输出。例如,逻辑组件620可以接收两个存储器单元的两个噪声特性之间的差的多个表示。例如,噪声源610的输出可以为第一对存储器单元的噪声特性之间的差,且噪声源611的输出可以为第二不同对存储器单元的噪声特性之间的差。逻辑组件620可以为异或(XOR)组件或异或非(XNOR)组件。由于逻辑组件620的输出可以基于来自噪声源610、611、612和613中的任一个随时间发生的差而被双态切换或切换(例如,改变值),因此与单个噪声源在同一时间段可提供相比,输出621可以表示随机值的更多位。例如,与单个噪声源610、611、612和613相比,逻辑组件620的输出621可以更频繁地双态切换或切换以表示随机值的不同位。因此,较低带宽噪声源可以被聚合以生成较高带宽输出621。此外,存储元件630(例如,触发器)可以用于生成可以表示随机值的同步输出信号631。例如,可以向存储元件630提供时钟信号622以生成同步输出信号631。
因此,多个较低带宽的噪声源可以提供表示噪声特性之间差的多个异步信号。如先前所描述,此较低带宽的噪声源可以包含在存储器子系统中。异步信号可用于生成更高带宽的信号,所述更高带宽信号用于生成同步随机值。因此,存储器子系统中当前可用的较低带宽的噪声源可以用于用存储器子系统的现有硬件来生成较高带宽随机数生成器(例如,量子随机数生成器)。
图7为根据一些实施例的基于存储器子系统的一或多个噪声特性生成随机值的实例方法700的流程图。方法700可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑,微代码,装置的硬件,集成电路等),软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法700为图1的随机数生成器组件113执行。尽管以特定的顺序或次序显示,但除非另有说明,否则可以修改过程的次序。因此,所说明的实施例应仅理解为实例,且所说明的过程可以不同次序执行,且某些过程可并行执行。另外,在各种实施例中可省略一或多个过程。因此,并非每一实施例中都需要所有过程。其它过程流程也是可能的。
如图7中所展示,在操作710处,处理逻辑接收生成随机值的请求。在操作720处,处理逻辑基于指示确定经修改读取阈值电压。在一些实施例中,可以将特定读取阈值电压施加到存储器单元以在所述存储器单元处读取数据。当特定读取阈值电压被施加到存储器单元以读取存储在存储器单元处的数据(即,位值)时,特定读取阈值电压可以处于打算产生最小数目个误差的电压电平。经修改读取阈值电压可能会与打算产生最小数目个误差的特定读取阈值电压未对准或改变。例如,经修改读取阈值电压可以为从先前读取阈值电压改变或修改的读取电压阈值,所述先前读取阈值电压用于在存储器单元处读取数据用于先前读取操作而不生成随机数。由于对存储器单元处可能存在的噪声特性的敏感性增加,读取阈值电压的未对准或改变会在由读取操作所检索的值中引入额外误差。例如,由于对噪声特性的敏感性增加,可以期望相同数据的不同读取操作的更多位为不同的。
在操作730处,处理逻辑基于指示修改存储器子系统的工作温度。例如,当待生成随机数时,可以激活温度控制元件(例如,加热元件或冷却元件)以改变存储器子系统的工作温度。温度控制元件可以包含在存储器子系统中,或可以连接到存储器子系统,且可以升高或降低存储器子系统的操作温度。操作温度的改变(例如,温度的升高或降低)会导致对存储器单元产生额外噪声,所述额外噪声可能促进存储器单元的噪声特性更多随机性。因此,当存储器子系统的工操作温度改变时,随着与噪声特性相关联的随机事件的概率增加,可以增加随机值的带宽或输出。
如在图7中所展示,在操作740处,处理逻辑确定与指示相关联的主机系统的工作负荷。工作负荷可以识别所需要的随机值的数目或数量。例如,工作负荷可以指示将以加密格式存储在存储器子系统处的用户数据的量。在一些实施例中,工作负荷可以识别由主机系统利用的应用程序的类型(例如,蒙特卡洛方法、游戏环境等),其中应用程序的类型可以指示待请求大量还是少量随机值。因此,工作负荷可以用于指示主机系统待请求或待为主机系统生成的的随机值的数目。
在操作750处,处理逻辑基于经修改读取阈值电压、经修改操作温度及主机系统的工作负荷中的一或多个,生成一或多个随机值。例如,当经修改操作温度已经施加到存储器子模块时,经修改读取阈值电压可以用于执行如关于图3及4所描述的读取操作。在一些实施例中,可在已应用经修改操作温度时可确定噪声特性(例如,关于图5及6)。
在一些实施例中,如果主机系统的工作负荷被标识为需要超过阈值数目的随机值的数目(例如,待加密大量数据)或主机系统使用的应用程序类型将要求或通常要求大量随机值,然后生成随机值可以基于工作负荷以增加随机值的生成。例如,如果基于两个读取操作的值的比较来生成随机值,那么可以同时执行多个读取操作以生成多个随机值。在一些实施例中,当待生成更多随机值时,更大数目个存储器单元可经受读取操作。在一些实施例中,当待生成较高数目个随机值时,更多的噪声源可以用于生成更高频率随机值。例如,可以利用不同的噪声源来基于工作量生成随机值。因此,用于生成随机值的存储器单元的数目可以基于主机系统的工作负荷。
图8说明计算机系统800的实例性机器,在所述计算机系统内可执行用于致使机器执行本文中所论述的方法中的任何一或多个的指令集。在一些实施例中,计算机系统800可对应于主机系统(例如,图1的主机系统120),其包含,耦合到,或利用存储器子系统(例如,图1的存储器子系统110)或可用于执行控制器的操作(例如,执行操作系统以执行对应于图1的随机数生成器组件113的操作)。在替代实施例中,机器可连接(例如,联网)到LAN、内联网、外联网和/或因特网中的其它机器。机器可在客户端-服务器网络环境中以服务器或客户端机器的身份运行,作为对等(或分布式)网络环境中的对等机器运行,或作为云计算基础设施或环境中的服务器或客户端机器运行。
所述机器可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、移动电话、网络器具、服务器、网络路由器、交换机或网桥,数字或非数字电路或能够执行规定由所述机器进行的动作的指令集(按顺序或其它方式)的任何机器。此外,虽然说明单个机器,但术语“机器”还应被视为包含单独或联合执行一(或多个)指令集以执行本文所论述的方法中的任何一或多种的任何机器集合。
实例计算机系统800包含经由总线830彼此通信的处理装置802、主存储器804(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM),例如同步DRAM(SDRAM)或Rambus公司DRAM(RDRAM)等),静态存储器806(例如,快闪存储器、静态随机存取存储器(SRAM)等)以及数据存储系统818。
处理装置802表示一或多个通用处理装置,例如微处理器、中央处理单元,等等。更具体地,处理装置可为复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器,或实施其它指令集的处理器,或实施指令集组合的处理器。处理装置802还可为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器,等等。处理装置802经配置以执行用于执行本文中所论述的操作和步骤的指令826。计算机系统800可进一步包含网络接口装置808以经由网络820进行通信。
数据存储系统818可包含机器可读存储媒体824(也被称作为计算机可读媒体),其上存储体现本文中所描述的方法或功能中的任何一或多者的一或多个指令826或软件。指令826还可在计算机系统800执行所述指令期间完全或至少部分地驻留在主存储器804内和/或处理装置802内,主存储器804和处理装置802也构成机器可读存储媒体。机器可读存储媒体824、数据存储系统818和/或主存储器804可对应于图1的存储器子系统110。
在一个实施例中,指令826包含指令,用以实施对应于随机数生成器组件(例如,图1的随机数生成器组件113)的功能性。虽然机器可读存储媒体824在实例实施例中被展示为单个媒体,但术语“机器可读存储媒体”应被视为包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还应被视为包含能够存储或编码指令集以供机器执行且使机器执行本发明的方法的任何一或多者的任何媒体。因此,术语“机器可读存储媒体”应被视为包含但不限于固态存储器、光学媒体和磁媒体。
前面的详细描述的一些部分已在计算机存储器内的算法和数据位的操作的符号表示的形式来呈现。这些算法描述和表示为由所属数据处理领域的技术人员用于以向所属领域的其它技术人员传达其工作的本质的方式。算法此处且通常被认为导致所要结果的自洽操作序列。操作为需要物理操纵物理量的操作。通常,但非必需地,这些数量可采取能够存储,组合,比较或以其它方式操纵的电或磁信号的形式。将这些信号称作位、值、元素、符号、字符、项、数字等等有时已证明是便利的(主要出于共用的原因)。
然而,应牢记,所有这些和相似术语应与适当物理量相关联且仅为应用于这些量的便利标签。本发明可是指计算机系统或类似电子计算装置的动作和过程,其将表示为计算机系统的寄存器和存储器内的物理(电子)量的数据操纵和变换为类似地表示为计算机系统存储器或寄存器或其它此类信息存储系统内的物理量的其它数据。
本发明还涉及用于执行本文中操作的设备。此设备可为特定目的而专门构造,或其可包含由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的磁盘,包含软盘、光盘、CD-ROM和磁光盘,只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁或光卡,或适用于存储电子指令的任何类型的媒体,每一者都耦合到计算机系统总线。
本文中所呈现的算法和显示并不固有地涉及任何特定的计算机或其它设备。根据本文中的教示,各种通用系统可与程序一起使用,或可证明构造更专用的装置以执行所述方法为方便的。各种这些系统的结构将如下面描述中所示。另外,不参考任何特定编程语言描述本发明。应理解,可使用各种编程语言来实施如本文所描述的本发明的教示。
本发明可经提供作为计算机程序产品或软件,其可包含机器可读媒体,具有存储于其上的指令,所述指令可用于对计算机系统(或其它电子装置)进行编程以根据本发明执行处理。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,诸如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁性磁盘存储媒体、光存储媒体、快闪存储器组件等。
在上述说明书中,本发明的实施例已经参考其特定实例性实施例描述。显而易见的是,在不脱离所附权利要求书中所阐明的本发明的实施例的更广泛的精神和范围的情况下,可对其进行各种修改。因此,说明书和图式应视为说明性而非限制性。
Claims (20)
1.一种系统,其包括:
存储器组件;及
处理装置,与所述存储器组件可操作地耦合,以:
接收生成一或多个随机值的请求;
响应于接收到生成所述一或多个随机值的所述请求,对所述存储器组件的存储器单元执行第一读取操作以检索第一数据,且对所述存储器组件的所述同一存储器单元执行第二读取操作以检索第二数据;
将所述第一数据与所述第二数据进行比较,以识别所述第一数据与所述第二数据之间的差,所述差与所述存储器单元的噪声特性相关联;及
基于与所述存储器单元的所述噪声特性相关联的所述第一数据和所述第二数据之间的所述差,生成所述一或多个随机值。
2.根据权利要求1所述的系统,其中所述噪声特性为所述存储器单元的随机电报噪声。
3.根据权利要求2所述的系统,其中所述噪声特性为所述随机电报噪声和与所述存储器单元相关联的电或热噪声的组合。
4.根据权利要求1所述的系统,其中为了将所述第一数据与所述第二数据进行比较以识别所述差,所述处理装置进一步:
确定所述第一数据的特定位的位值;
确定所述第二数据的对应位的另一位值;及
基于所述特定位的所述位值与所述对应位的所述另一位值之间的比较,生成用以表示所述一或多个随机值的特定随机值的值。
5.根据权利要求1所述的系统,其中所述处理装置进一步:
响应于接收到生成所述一或多个随机值的所述请求,确定未对准读取阈值电压,其中所述执行所述第一读取操作和所述第二读取操作是基于所述未对准读取阈值电压。
6.根据权利要求5所述的系统,其中所述未对准读取阈值电压从用于执行先前读取操作的先前读取阈值电压改变。
7.根据权利要求1所述的系统,其中所述处理装置进一步:
响应于接收到生成所述一或多个随机值的所述请求,激活温度控制元件以升高或降低所述存储器组件的操作温度,其中所述第一读取操作和所述第二读取操作的所述执行是响应于所述操作温度的所述升高或降低。
8.根据权利要求1所述的系统,其中所述处理装置进一步:
确定主机系统的工作负荷,所述工作负荷基于来自所述主机系统的用户数据;及
对一或多个额外存储器单元执行额外读取操作,其中所述一或多个额外存储器单元的数目基于所述主机系统的所述所确定工作负荷,且其中所述所生成一或多个随机值进一步基于与对所述一或多个额外存储器单元的所述额外读取操作相关联的差。
9.根据权利要求1所述的系统,其中所述处理装置进一步:
从主机系统接收数据,以将其存储在与所述存储器组件相关联的存储器子系统处;
基于所述所生成一或多个随机值加密所述所接收到的数据;及
将所述经加密数据存储在所述存储器子系统处。
10.一种方法,其包括:
确定第一存储器单元的第一噪声特性与第二存储器单元的第二噪声特性之间的差;及
通过处理装置,基于所述第一存储器单元的所述第一噪声特性与所述第二存储器单元的所述第二噪声特性之间的所述差生成随机值。
11.根据权利要求10所述的方法,其中所述第一噪声特性为所述第一存储器单元的随机电报噪声,且所述第二噪声特性为所述第二存储器单元的另一随机电报噪声。
12.根据权利要求10所述的方法,其进一步包括:
通过将所述第一噪声特性与所述第一存储器单元的模拟信号隔离来生成第一噪声信号;及
通过将所述第二噪声特性与所述第二存储器单元的模拟信号隔离来生成第二噪声信号,其中所述确定所述第一噪声特性与所述第二噪声特性之间的所述差进一步基于所述第一噪声信号与所述第二噪声信号的比较。
13.根据权利要求12所述的方法,其进一步包括:
在所述第一噪声信号与所述第二噪声信号之间执行比较操作以生成所述随机值;及
基于时钟信号与由所述比较操作生成的所述随机值输出同步随机值。
14.根据权利要求12所述的方法,其中所述第一存储器单元的所述第一噪声特性是在第一时间生成且存储在第一存储器元件处,且其中所述第二存储器单元的所述第二噪声特性是在第二时间生成且存储在第二个存储元件处。
15.根据权利要求10所述的方法,其进一步包括:
确定主机系统的工作负荷,所述工作负荷基于所述主机系统的用户数据;及
接收一或多个额外存储器单元的一或多个额外噪声特性,其中所述一或多个额外存储器单元的数目基于所述主机系统的所述所确定工作负荷,且其中基于所述一或多个额外噪声特性进一步生成所述随机值。
16.根据权利要求10所述的方法,其进一步包括:
从主机系统接收数据,以将其存储在存储器子系统处;
基于所述所生成随机值加密所述所接收到的数据;及
将所述经加密数据存储在所述存储器子系统处。
17.一种包括指令的非暂时性计算机可读存储媒体,所述指令在由处理装置执行时致使所述处理装置执行包括以下的操作:
接收生成一或多个随机值的请求;
响应于接收到生成所述一或多个随机值的所述请求,对所述存储器组件的存储器单元执行第一读取操作以检索第一数据,且对所述存储器组件的所述同一存储器单元执行第二读取操作以检索第二数据;
将所述第一数据与所述第二数据进行比较,以识别所述第一数据与所述第二数据之间的差,所述差与所述存储器单元的噪声特性相关联;及
基于与所述存储器单元的所述噪声特性相关联的所述第一数据和所述第二数据之间的所述差,生成所述一或多个随机值。
18.根据权利要求17所述的非暂时性计算机可读存储媒体,其中所述噪声特性为所述存储器单元的随机电报噪声。
19.根据权利要求17所述的非暂时性计算机可读存储媒体,其中为了将所述第一数据与所述第二数据进行比较以识别所述差,所述操作进一步包括:
确定所述第一数据的特定位的位值;
确定所述第二数据的对应位的另一位值;及
基于所述特定位的所述位值与所述对应位的所述另一位值之间的比较,生成用以表示所述一或多个随机值的特定随机值的值。
20.根据权利要求17所述的非暂时性计算机可读存储媒体,其中所述操作进一步包括:
响应于接收到生成所述一或多个随机数值的所述请求,确定未对准读取阈值电压,其中所述执行所述第一读取操作或所述第二读取操作中的至少一个是基于所述未对准读取阈值电压,且其中从用于执行先前读取操作的另一读取阈值电压改变所述未对准读取阈值电压。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/226,558 US11757632B2 (en) | 2018-12-19 | 2018-12-19 | Generating a random value based on a noise characteristic of a memory cell |
US16/226,558 | 2018-12-19 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111338565A true CN111338565A (zh) | 2020-06-26 |
Family
ID=71099369
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911311414.5A Withdrawn CN111338565A (zh) | 2018-12-19 | 2019-12-18 | 基于存储器单元的噪声特性生成随机值 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11757632B2 (zh) |
CN (1) | CN111338565A (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11728000B1 (en) | 2017-12-13 | 2023-08-15 | Board Of Trustees Of The University Of Alabama, For And On Behalf Of The University Of Alabama In Huntsville | Systems and methods for detecting counterfeit or defective memory |
US11620108B1 (en) * | 2018-05-17 | 2023-04-04 | Board Of Trustees Of The University Of Alabama For And On Behalf Of The University Of Alabama In Huntsville | Random number generation systems and methods |
US11139043B2 (en) | 2019-05-20 | 2021-10-05 | Board Of Trustees Of The University Of Alabama, For And On Behalf Of The University Of Alabama In Huntsville | Systems and methods for identifying counterfeit memory |
US11650795B2 (en) * | 2019-08-23 | 2023-05-16 | SK Hynix Inc. | Raw read based physically unclonable function for flash memory |
US11205495B1 (en) * | 2020-08-07 | 2021-12-21 | Micron Technology, Inc. | Read disturb mitigation based on signal and noise characteristics of memory cells collected for read calibration |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030145243A1 (en) * | 2002-01-25 | 2003-07-31 | Hiroko Aikawa | Data processor |
CN103403670A (zh) * | 2011-06-03 | 2013-11-20 | 株式会社东芝 | 用于伪随机数生成的半导体存储器件 |
CN103578550A (zh) * | 2012-07-31 | 2014-02-12 | 三星电子株式会社 | 产生随机数的存储系统与产生随机数的方法 |
US20150193204A1 (en) * | 2014-01-07 | 2015-07-09 | Phison Electronics Corp. | Method for generating random number, memory storage device and control circuit |
US20160028544A1 (en) * | 2012-11-15 | 2016-01-28 | Elwha Llc | Random number generator functions in memory |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2980576B2 (ja) * | 1997-09-12 | 1999-11-22 | 株式会社東芝 | 物理乱数発生装置及び方法並びに物理乱数記録媒体 |
TW557636B (en) * | 2002-03-26 | 2003-10-11 | Ind Tech Res Inst | Random number generator |
JP2004157168A (ja) * | 2002-11-01 | 2004-06-03 | Sanyo Electric Co Ltd | 乱数生成装置 |
US7885990B2 (en) | 2007-05-31 | 2011-02-08 | Intel Corporation | Random telegraph signal noise as a source for random numbers |
US8130955B2 (en) * | 2007-12-21 | 2012-03-06 | Spansion Llc | Random number generation through use of memory cell activity |
US8738676B2 (en) * | 2009-05-29 | 2014-05-27 | International Business Machines Corporation | Entropy generation on a parallel computer system |
JP2011113136A (ja) * | 2009-11-24 | 2011-06-09 | Sony Corp | 乱数発生装置、乱数発生方法及びセキュリティチップ |
US9223503B2 (en) * | 2013-09-27 | 2015-12-29 | Intel Corporation | Generating random numbers utilizing entropic nature of NAND flash memory medium |
US10372528B1 (en) * | 2014-12-15 | 2019-08-06 | Seagate Technology Llc | Random values from data errors |
US10095476B2 (en) | 2015-12-02 | 2018-10-09 | International Business Machines Corporation | Random telegraph noise native device for true random number generator and noise injection |
US10020268B2 (en) * | 2016-04-13 | 2018-07-10 | Ememory Technology Inc. | Random number generator device and control method thereof |
US20180287793A1 (en) * | 2017-03-31 | 2018-10-04 | Intel Corporation | Random number generation with unstable bit states of non-volatile memory |
US11522724B2 (en) * | 2017-12-11 | 2022-12-06 | International Business Machines Corporation | SRAM as random number generator |
KR102644274B1 (ko) * | 2018-11-22 | 2024-03-06 | 삼성전자주식회사 | 메모리 컨트롤러, 이를 포함하는 메모리 시스템, 및 메모리 컨트롤러의 동작 방법 |
-
2018
- 2018-12-19 US US16/226,558 patent/US11757632B2/en active Active
-
2019
- 2019-12-18 CN CN201911311414.5A patent/CN111338565A/zh not_active Withdrawn
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030145243A1 (en) * | 2002-01-25 | 2003-07-31 | Hiroko Aikawa | Data processor |
CN103403670A (zh) * | 2011-06-03 | 2013-11-20 | 株式会社东芝 | 用于伪随机数生成的半导体存储器件 |
CN103578550A (zh) * | 2012-07-31 | 2014-02-12 | 三星电子株式会社 | 产生随机数的存储系统与产生随机数的方法 |
US20160028544A1 (en) * | 2012-11-15 | 2016-01-28 | Elwha Llc | Random number generator functions in memory |
US20150193204A1 (en) * | 2014-01-07 | 2015-07-09 | Phison Electronics Corp. | Method for generating random number, memory storage device and control circuit |
Also Published As
Publication number | Publication date |
---|---|
US20200204367A1 (en) | 2020-06-25 |
US11757632B2 (en) | 2023-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11757632B2 (en) | Generating a random value based on a noise characteristic of a memory cell | |
US11483167B2 (en) | Method and apparatus to provide memory based physically unclonable functions | |
US11748273B2 (en) | Secure data communication with memory sub-system | |
US11249679B2 (en) | Selecting a write operation mode from multiple write operation modes | |
US9524235B1 (en) | Local hash value generation in non-volatile data storage systems | |
US11869618B2 (en) | Memory sub-system including an in-package sequencer to perform error correction and memory testing operations | |
US11416393B2 (en) | Efficient scrambling and encoding for copyback procedures using precomputed values | |
US11237755B2 (en) | Data erasure in memory sub-systems | |
US20240020025A1 (en) | Managing a hybrid error recovery process in a memory sub-system | |
US20220406381A1 (en) | Generating embedded data in memory cells in a memory sub-system | |
US11886718B2 (en) | Descrambling of scrambled linear codewords using non-linear scramblers | |
US11152077B2 (en) | Transmitting data and power to a memory sub-system for memory device testing | |
CN113643745A (zh) | 存储器子系统中的存储器裸片的峰值电流的管理 | |
US20230393765A1 (en) | Power efficient codeword scrambling in a non-volatile memory device | |
US20230266944A1 (en) | Multimode physical unclonable function as an entropy source for generating true random bit | |
US11709622B2 (en) | Performing scrambling operations based on a physical block address of a memory sub-system | |
US20230396269A1 (en) | Scaled bit flip thresholds across columns for irregular low density parity check decoding | |
US20230395153A1 (en) | Write-once memory encoded data | |
US20230060744A1 (en) | Memory sub-system signature generation | |
US20240086344A1 (en) | Input/output sequencer instruction set processing | |
US20220350521A1 (en) | Memory sub-system refresh | |
CN117170576A (zh) | 使用内部振荡器跟踪电压和温度对存储器装置的影响 | |
CN115328441A (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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20200626 |