CN116635853A - 包含存取存储器且使用经验证流密码来产生存取代码的实例的存储器系统和装置 - Google Patents
包含存取存储器且使用经验证流密码来产生存取代码的实例的存储器系统和装置 Download PDFInfo
- Publication number
- CN116635853A CN116635853A CN202180080259.XA CN202180080259A CN116635853A CN 116635853 A CN116635853 A CN 116635853A CN 202180080259 A CN202180080259 A CN 202180080259A CN 116635853 A CN116635853 A CN 116635853A
- Authority
- CN
- China
- Prior art keywords
- memory
- access code
- address
- data
- ciphertext
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 440
- 238000012937 correction Methods 0.000 claims abstract description 126
- 238000000034 method Methods 0.000 claims abstract description 88
- 238000013519 translation Methods 0.000 claims abstract description 68
- 238000012545 processing Methods 0.000 claims abstract description 32
- 239000013598 vector Substances 0.000 claims abstract description 29
- 238000012795 verification Methods 0.000 claims description 39
- 238000010200 validation analysis Methods 0.000 claims description 28
- 230000004044 response Effects 0.000 claims description 23
- 230000008878 coupling Effects 0.000 claims description 2
- 238000010168 coupling process Methods 0.000 claims description 2
- 238000005859 coupling reaction Methods 0.000 claims description 2
- 230000014616 translation Effects 0.000 description 63
- 230000006870 function Effects 0.000 description 8
- 230000001934 delay Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000003321 amplification Effects 0.000 description 3
- 238000003199 nucleic acid amplification method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000010387 memory retrieval Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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/0622—Securing storage systems in relation to access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
-
- 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/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- 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/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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C2029/4402—Internal storage of test result, quality data, chip identification, repair information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/34—Encoding or coding, e.g. Huffman coding or error correction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Storage Device Security (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本文中所描述的系统和方法的实例实现对存储器装置的存取,且同时在存储器控制器处使用经验证流密码来产生存取代码。举例来说,存储器控制器可使用存储器存取请求,以同时对与所述存储器存取请求相关联的数据执行转译逻辑和/或错误校正;同时还利用存储器地址作为用于经验证流密码的初始化向量以产生存取代码。所述错误校正可在用于写入操作的地址转译之后(或在用于读取操作的地址转译之前)执行,以提高存储器控制器处的存储器存取请求的处理速度;同时所述存储器控制器还产生经加密存取代码。
Description
相关申请的交叉引用
本申请要求2020年12月1日提交的美国非临时申请第17/108,904号的申请权益。此申请以全文引用的方式且出于所有目的并入本文中。
技术领域
本公开的实施例大体上涉及存储器,并且更确切地说,在所示出的实施例中的一或多个中,涉及存取存储器且使用经验证流密码产生存取代码。
背景技术
新兴存储器架构设计成处理存储器存取请求的范围,且可包含具有不同特性的存储器。举例来说,存储器可包含动态随机存取存储器(DRAM)和相变存储器(PCM)。非易失性存储器可为极度不均匀的。举例来说,某些NAND快闪存储器(例如,基于页类型)可比其它NAND快闪存储器更快地读取或写入,其中时延随着它们的耗损而改变,或在不同NAND快闪存储器当中具有不同层级的单元(例如,多层级单元(MLC))。新兴存储器架构还可利用非易失性双列直插式存储器模块(NVDIMM),例如NVDIMM-P或NVDIMM-F。NVDIMM通常包含非易失性和易失性存储器装置两者。非易失性存储器(例如NAND存储器)通常甚至在暂时或永久地去除电力时仍保留其内容。当电力永久地或在一些状况下暂时地从装置去除时,易失性存储器通常将丢失其内容。
发明内容
本文中描述示例性方法和设备。在本公开的一方面中,一种示例性方法包含:从主机计算装置接收用于一或多个存储器装置的命令和地址;响应于所述命令:对与地址相关联的数据执行错误校正以产生错误经校正数据;利用所述地址作为用于经验证流密码的初始化向量以产生存取代码;使用存取代码执行与命令相关联的存储器存取操作。
另外或替代地,接收用于一或多个存储器装置的命令和地址包括在存储器控制器处经由存储器控制器的高速缓冲存储器处的主机总线接收命令和地址,所述主机总线将主机计算装置耦合到存储器控制器。
另外或替代地,响应于接收到所述命令和所述地址,进一步包含,在利用地址作为初始化向量的同时,使用所述命令和地址执行地址转译,以将地址的逻辑存储器地址转译为一或多个存储器装置中的至少一个存储器装置的物理存储器地址。
另外或替代地,经验证流密码包括高级加密标准(AES)密码。
另外或替代地,所述命令包括写入操作。利用所述地址作为用于AES密码的初始化向量以产生存取代码包括在验证逻辑的伽罗瓦/计数器模式(GCM)处基于AES密码来产生存取代码。
另外或替代地,利用所述地址作为用于AES密码的初始化向量以产生存取代码进一步包括使用存取代码以对错误经校正数据进行加密。
另外或替代地,使用存取代码以对错误经校正数据进行加密包括运用错误经校正数据和存取代码执行XOR操作以产生密文。
另外或替代地,进一步包含作为GCM的一部分,部分地基于错误经校正数据和存取代码的XOR操作的结果,产生待与密文相关联的验证标签,以用于将密文写入到地址。
另外或替代地,使用存取代码来执行与命令相关联的存储器存取操作包括在一或多个存储器装置中的一个的地址处写入密文。
另外或替代地,错误校正对应于低密度奇偶校验校正。
另外或替代地,所述命令包括读取操作,利用所述地址作为用于经验证流密码的初始化向量以产生存取代码包括:在验证逻辑的伽罗瓦/计数器模式(GCM)处基于经验证流密码而产生存取代码;及使用存取代码以将密文解密为明文。
另外或替代地,使用经验证流密码执行与命令相关联的存储器存取操作包括从一或多个存储器装置中的一个的地址读取待解密为明文的密文。
另外或替代地,使用存取代码以将密文解密为明文包括运用错误经校正数据和存取代码来执行XOR操作。
另外或替代地,进一步包含,作为GCM的一部分,产生与密文相关联的验证标签,以用于将错误经校正数据解密为明文。
在本公开的另一方面中,一种示例性方法包括:从主机计算装置获得与多个存储器装置相关联的存储器读取请求,所述存储器读取请求包括存储器地址;响应于所述存储器读取请求:在存储器地址处将与存储器读取请求相关联的数据读取为密文;同时,利用存储器地址作为用于经验证流密码的初始化向量以产生存取代码;使用存取代码来执行与存储器读取请求相关联的读取操作。
另外或替代地,利用存储器地址作为用于经验证流密码的初始化向量以产生存取代码包括:在验证逻辑的伽罗瓦/计数器模式(GCM)处基于经验证流密码来产生存取代码;作为GCM的一部分,产生与密文相关联的验证标签以用于将数据解密为明文;及使用存取代码以将密文解密为明文。
另外或替代地,使用存取代码以将密文解密为明文包括运用密文和存取代码来执行XOR操作以产生明文。
另外或替代地,对明文执行错误校正以产生错误经校正数据作为用于读取操作的读取数据。
在本公开的另一方面中,一种设备包含:验证逻辑,其经配置以接收命令和地址;高速缓冲存储器,其经配置以存储与命令相关联的数据;及多个存储器装置。所述验证逻辑进一步经配置以利用地址作为用于流密码的初始化向量以产生存取代码。多个存储器装置中的至少一个存储器装置经配置以使用存取代码来执行与命令相关联的存储器存取操作。
另外或替代地,多个存储器装置包括NAND存储器装置。
另外或替代地,存储器控制器经配置以经由PCIe总线从主机计算装置接收命令和地址。
另外或替代地,进一步包含存储器接口,其经配置以将多个存储器存取请求提供到多个存储器装置。验证逻辑进一步经配置以基于地址产生至少一个存取代码,以存取用于多个存储器装置的数据。
另外或替代地,进一步包含错误校正单元,其经配置以对获自或经提供到多个存储器装置的数据进行错误校正。
另外或替代地,所述错误校正单元包括低密度奇偶校验校正单元。
另外或替代地,进一步包含主机接口,其经配置以从主机计算装置接收命令和地址且进一步经配置以获得读取数据或将与命令相关联的写入数据提供到高速缓冲存储器以供错误校正单元进行处理。
另外或替代地,验证逻辑经配置以执行伽罗瓦/计数器模式(GCM)以运用流密码产生存取代码作为经验证流密码。
另外或替代地,经验证流密码包括高级加密标准(AES)-GCM流水线。
另外或替代地,命令包含写入操作。验证逻辑进一步经配置以使用存取代码以将与命令相关联的数据加密为密文。
另外或替代地,所述命令包含读取操作。验证逻辑进一步经配置以使用存取代码以将与命令相关联的数据解密为明文。
另外或替代地,进一步包含转译逻辑,其经配置以对获自或经提供到多个存储器装置的数据进行转译。
附图说明
图1A为根据本文中所描述的实例布置的系统的示意性图示。
图1B为根据本文中所描述的实例进行交互的存储器系统的示意性图示。
图1C为根据本文中所描述的实例进行交互的存储器系统的示意性图示。
图2为根据本文中所描述的实例的方法的示意性图示。
图3为根据本文中所描述的实例的方法的示意性图示。
图4为根据本文中所描述的实例的方法的示意性图示。
具体实施方式
存储器装置可利用错误校正编码(ECC)。通常,错误校正编码技术可用额外经编码位对原始数据进行编码以保护旨在被存储、检索和/或发射的原始位。
密码方法可使用分组密码来为数据提供安全性,例如,使用密码密钥来验证数据。举例来说,密码密钥可在加密时将数据从明文转换为密文;且在解密时将数据从密文转换为明文。分组密码提供信息位的块转换以对数据进行加密(或相反地,解密)。举例来说,高级加密标准(AES)为分组密码的类型。另外,分组密码可在密码装置/方法内在不同模式下操作,例如,作为使用计数器的“流密码”。举例来说,计数器可用作更改由分组密码使用的基础密码密钥以使得密码密钥随时间而变化;继而更改加密数据流中的数据的基础。举例来说,伽罗瓦/计数器模式(GCM)为流密码的类型。
其可为复杂且繁琐的以确保NVDIMM装置的安全。
本文中所描述的系统及方法的实例提供在存储器控制器中至少部分地对用于验证存储器装置的经加密存取代码进行并行处理,且处理对存储器装置自身的存储器存取。定期存取存储器装置的计算装置可通过存储器控制器执行这一操作。举例来说,主机计算装置可产生存储器存取请求,所述存储器存取请求通过控制对各种经耦合存储器装置的存取的存储器控制器路由。使用本文中所描述的系统及方法,存储器控制器可使用存储器存取请求以对与存储器存取请求相关联的数据至少部分地同时执行转译逻辑和/或错误校正;同时还利用存储器地址作为用于经验证流密码的初始化向量以产生存取代码。举例来说,存储器控制器的验证逻辑可利用密钥(例如,磁盘加密密钥(DEK))和存储器地址作为用于流密码的初始化向量(IV);使得验证逻辑使用流密码针对在存储器装置处存取的数据产生存取代码。
经加密存取代码可用于提供存储器控制器与同存储器存取请求相关联的数据之间的验证存取。因此,由主机计算装置读取或写入到各种存储器装置的数据可例如使用经产生存取代码以经验证方式存取,所述经产生存取代码基于与所述数据相关联的存储器地址通过流密码加密。举例来说,经产生存取代码可根据AES密码加密。有利地,经产生存取代码可为由计算装置读取或写入到存储器装置中的一个的所述特定存储器地址的数据提供安全性。举例来说,经读取或写入数据还可根据存取代码(类似于用于经读取或写入数据的密码密钥)经加密或解密(例如,作为明文或密文)。
通常,存储器控制器为来自另一计算装置(例如,主机计算装置)的存储器存取请求中的存储器地址提供地址转译。如本文中所描述,有利地,存储器控制器可至少部分地同时(例如,至少部分地并行)处理地址转译,同时还产生经加密存取代码,由此改进存储器控制器处的存储器存取请求的处理速度,所述存储器控制器还利用经加密存取代码。由存储器控制器进行地址转译还可包含由存储器控制器进行的存储器控制的其它方面,例如存储器耗损均衡、垃圾收集和写入放大。在使用NAND存储器装置实施存储器装置的一些实施方案中,用于地址转译的写入时延可包含擦除操作,例如,在写入到那些存储器单元之前擦除NAND存储器单元。有利地,对用于安全数据的存取代码进行加密可与用于NAND存储器装置的地址转译(例如,读取或写入操作)并行发生。因此,与可依序进行地址转译和对存取代码进行加密的存储器控制器相比,本文中所描述的系统和方法的实例可改进存储器控制器处的存储器存取请求的处理速度,因为地址转译和存取代码的产生可至少部分地并行发生。
此外,本文中所描述的系统和方法可提供错误校正,所述错误校正可用于耦合到非易失性存储器装置(例如,NAND存储器装置)的存储器控制器中。有利地,错误校正还可在用于写入操作的地址转译之后(或在用于读取操作的地址转译之前)执行以提高存储器控制器处的存储器存取请求的处理速度;同时存储器控制器还产生经加密存取代码,由此提高存储器控制器处的存储器存取请求的处理速度。举例来说,因为对存取代码进行加密可产生具体时延,所以取决于所利用的经验证流密码,存储器存取请求中的数据的错误校正还可与存取代码的所述加密至少部分地并行执行。因此,与可依序对存储器存取请求的数据进行错误校正且对存取代码进行加密的存储器控制器相比,本文中所描述的系统和方法的实例可提高利用流密码的存储器控制器处的存储器存取请求的处理速度,因为错误校正和存取代码的产生可至少部分地并行发生。
图1A为根据本文中所描述的实例布置的系统100的示意性图示。系统100包含耦合到存储器控制器102的主机计算装置104,所述存储器控制器可控制一或多个存储器装置112。在一些实例中,存储器控制器102体现在主机计算装置104中或为所述主机计算装置的元件。在此类状况下,主机计算装置104可为SOC、CPU、GPU、FPGA等,并且存储器控制器102可为此类SOC、CPU、GPU或FPGA的逻辑、电路系统或组件。在一些实例中,主机计算装置104为一个物理装置,并且存储器控制器102为单独物理装置(例如,每一物理装置可为小芯片的系统中的小芯片)。在一些状况下,存储器控制器102和存储器装置112为模块(例如,DIMM、卡或驱动器)的元件,并且主机计算装置104为单独处理器。
存储器控制器102可包含主机接口114,所述主机接口可耦合到主机总线122以用于连接到主机计算装置104。主机接口114耦合到处理器106或处理资源和/或可使用所述处理器或处理资源实施,所述处理器或处理资源可为SOC、ASIC、FPGA等,并且可与主机计算装置104的元件分离(如上文所描述)。处理器106可包含验证逻辑108和转译逻辑110。举例来说,主机接口114和处理器106还可经由内部存储器控制器总线耦合到高速缓冲存储器116。处理器106经由存储器接口118和相应存储器总线124耦合到存储器装置112。存储器接口118也耦合到高速缓冲存储器116,例如,也经由内部存储器控制器总线。高速缓冲存储器116耦合到错误校正逻辑120,所述错误校正逻辑可对传达到高速缓冲存储器116/从所述高速缓冲存储器传达的数据执行错误校正。
存储器装置112可存储由主机计算装置104检索和/或由所述主机计算装置存取的数据。作为实例,在操作中,主机计算装置104可处理数据集(例如,图像或内容数据集)以供主机计算装置104上代管的一或多个神经网络使用。数据集可存储在存储器装置112上。举例来说,处理器106可通过主机总线122从一或多个存储器装置112获得数据集。存储器装置112可包含在一或多个计算装置中和/或可存储用于一或多个计算装置的数据,所述计算装置为例如但不限于数据中心或个人计算装置中的计算装置。处理器106可将数据集(例如,图像)存储在存储器装置112中的一或多个中(例如,数据集可分布在存储器装置112当中)。处理器106可将数据集的离散单元(例如,图像或视频帧)存储在存储器装置112中。
存储器装置112可响应于从存储器控制器102接收的存储器存取请求,例如,由处理器106从主机计算装置104路由或处理的存储器存取请求,而存储并提供信息(例如,数据和指令)。在操作中,存储器装置112可处理存储器存取请求以基于存储器存取请求而存储和/或检索信息。举例来说,主机计算装置102可包含主机处理器,其可执行请求存储器装置112处的所存储数据和/或所存储指令(和/或存储数据/指令)的用户应用程序。当经执行时,用户应用程序可产生存储器存取请求以存取存储器装置112中的数据或指令。通常,存储器存取请求可为或包含命令和地址,例如存储器命令和存储器地址。在各种实施方案中,存储器存取请求可为或包含用于在存储器装置112处的读取操作、写入操作、激活操作或刷新操作的命令和地址。通常,经接收命令和地址可促进存储器装置112处的存储器存取操作的执行,例如用于存储器装置112的读取操作、写入操作、激活操作和/或刷新操作。因此,存储器存取请求可为或包含存储器装置112中的一或多个的存储器地址。在写入操作的实例中,存储器存取请求还可包含例如除命令和地址以外的数据。经由主机总线122将来自主机计算装置104的存储器存取请求提供到处理器106。
在处理器106处接收到用于存储器装置112的一或多个存储器存取请求后,存储器控制器102就可利用存储器地址作为用于经验证流密码的初始化向量来产生存取代码,例如,使用验证逻辑108。至少部分地同时(例如,并行或在存储器控制器102处的处理时间上重叠),存储器控制器102可对与存储器存取请求相关联的数据执行错误校正以产生错误经校正数据,例如,使用错误校正逻辑120。另外或替代地,同样至少部分地同时利用存储器地址作为用于经验证流密码的初始化向量,存储器控制器102可使用存储器存取请求(例如,命令和地址)执行地址转译以将逻辑存储器地址转译成物理存储器地址。举例来说,存储器地址请求中的存储器地址可为逻辑地址,例如,如在主机计算装置104处执行的用户应用程序已知。存储器控制器102可经配置以使用转译逻辑110将所述存储器地址转译成存储器装置112中的一个的物理地址。
为了在存储器控制器102的处理器106处处理存储器存取请求,存储器控制器102可基于包含命令和地址的存储器存取请求执行地址转译,例如,响应于接收到命令和/或地址。因此,转译逻辑110可使用查找表(例如,块表)将存储器地址作为逻辑存储器地址转译成存储器装置112中的一个的物理存储器地址。转译逻辑110还可执行与存储器控制器102的地址转译相关联的操作,例如存储器耗损均衡、垃圾收集和/或写入放大。举例来说,为了执行与垃圾收集相关联的操作,转译逻辑110可使用存储在高速缓冲存储器116处的不良块查找表识别存储器装置112的不良块,使得读取和写入操作可不在与存储器装置112的不良块相关联的物理存储器地址处执行。因此,转译逻辑110可在存储器控制器102中执行与将逻辑存储器地址转译成物理存储器地址相关联的地址转译操作。
另外或替代地,在存储器控制器102的处理器106处处理存储器存取请求时,存储器控制器102可使用错误校正逻辑120执行对与存储器存取请求相关联的数据的错误校正,例如,响应于接收到命令和/或地址。举例来说,在写入操作的上下文中,在使用转译逻辑110执行地址转译之后,处理器106可使用错误校正逻辑120控制与存储器存取请求相关联的数据的错误校正。任选地,如将更详细地描述,在已根据所产生存取代码对数据进行加密之后,还可使用错误校正逻辑120进行对与写入操作相关联的数据的错误校正。在读取操作的上下文中,在已根据所产生存取代码对数据进行解密之后,处理器106可控制在错误校正逻辑120处针对存储器存取请求从存储器装置112读取的错误校正数据。任选地,如将更详细地描述,在读取数据的物理存储器地址已经转译成用于存储器地址请求的逻辑存储器地址之后且在读取数据自身的解密之前,还可使用错误校正逻辑120进行对与读取操作相关联的数据的错误校正。
无论是读取操作还是写入操作,错误校正逻辑120可对与所述操作相关联的数据进行错误校正。错误校正逻辑120可对从存储器装置112获得的数据或信息进行错误校正。举例来说,错误校正逻辑120可根据存储器装置112的操作的所要位错误率(BER)对数据进行错误校正。举例来说,错误校正逻辑120可包含低密度奇偶校验校正逻辑,其可根据低密度奇偶校验(LDPC)码对数据进行错误校正。因此,错误校正逻辑120可包含LDPC编码器。另外或替代地,错误校正逻辑120可包含单个奇偶校验(SPC)编码器,和/或代数错误校正电路,例如包含以下各者的群组中的一个:博斯-乔赫里-霍克文黑姆(Bose-Chaudhuri-Hocquenghem)(BCH)编码器和/或里德所罗门(Reed Solomon)ECC编码器,以及其它类型的错误校正电路。在利用错误校正逻辑120时,存储器控制器102可校正在存储器装置112处的存储器检索或存储期间数据可能发生的错误。所要BER可由主机计算装置104或在主机计算装置104处执行用户应用程序的用户指定。
错误校正逻辑120可使用例如专用集成电路(ASIC)或其它电路系统等离散组件来实施,或组件可反映由存储器控制器102内的电路系统提供的功能性,其未必具有与存储器控制器102的其它部分分离的离散物理形式。尽管示出为图1A中存储器控制器120内的组件,但错误校正逻辑120可在存储器控制器102外部或具有位于存储器控制器102内的数个组件和位于存储器控制器102外部的数个组件。
在操作中,对于待使用错误校正逻辑120进行错误校正的数据,高速缓冲存储器116可将数据(例如,从存储器装置112获得的数据)提供到错误校正逻辑120以对所述数据进行错误校正,并且随后从错误校正逻辑120接收错误校正经数据。在一些实施方案中,高速缓冲存储器116可直接耦合到作为主机计算装置104的部分的存储装置,如SRAM或DRAM存储装置,并且直接从所述存储装置获得数据。举例来说,提供到主机接口114的存储器存取请求可包含存储器存取命令,所述存储器存取命令提供到高速缓冲存储器以存取主机计算装置104上的存储装置,以获得与存储器存取请求相关联的数据。在各种实施方案中,高速缓冲存储器116可为动态存储器装置,如DRAM,并且可与处理器106交互。举例来说,高速缓冲存储器116可为数据高速缓冲存储器,其包含或对应于L1、L2、L3、L4的一或多个高速缓存层级(例如,作为多层级高速缓冲存储器)或任何其它高速缓存层级。在读取操作的上下文中,从存储器装置112检索的数据可存储在高速缓冲存储器116处(例如,在缓冲器或队列中),使得错误校正逻辑120对数据进行错误校正以作为存储器存取请求中的读取操作的部分。
与存储器地址的任何地址转译和/或与存储器存取请求相关联的数据的错误校正同时,存储器控制器102可例如响应于接收到命令和/或地址而利用存储器地址作为用于经验证流密码的初始化向量来产生存取代码。在处理器106获得存储器存取请求后,验证逻辑108可使用存储器地址作为用于经验证流密码的初始化向量(IV)。举例来说,验证逻辑108可包含AES-伽罗瓦-计数器模式(AES-GCM)流水线,使得验证逻辑108使用存储器地址作为IV基于经验证流密码产生存取代码。GCM使用基础密钥(例如,DEK)和作为IV的存储器地址产生用于经加密存取代码的验证标签。虽然在一些实例中描述AES-GCM,但应理解,还可使用其它经验证流密码。
在存储器存取请求内的写入操作的上下文中,所产生存取代码与数据组合以产生待写入到存储器装置112的密文。举例来说,将所产生存取代码与存储器存取请求的明文数据组合可包含使用验证逻辑108将明文数据和所产生存取代码组合为XOR操作的一部分。举例来说,验证逻辑108可实施XOR逻辑以组合明文数据和所产生存取代码。在组合存取代码与明文数据时,验证逻辑108可将明文数据加密为密文数据以用于运用所述密文执行写入操作。此外,验证逻辑108可利用GCM来产生待与密文相关联的验证标签,例如,用于在后续作为明文检索后验证数据。为了产生验证标签,验证逻辑108可将密文与自身组合,例如,作为另一XOR操作的一部分。验证标签和/或存取代码可由处理器106存储在高速缓冲存储器116中。因此,经加密存取代码可用于提供存储器控制器102与同存储器存取请求相关联的数据之间的验证存取。因此,由主机计算装置104写入到各种存储器装置112的数据可通过验证存取,例如,使用基于与所述数据相关联的存储器地址由流密码加密的所产生存取代码。有利地,所产生存取代码可为由计算装置写入到存储器装置中的一个的所述具体存储器地址的数据提供安全性。在执行写入操作的各种实施方案中,验证逻辑108可使用如存储在高速缓冲存储器116中或由错误校正逻辑120提供的错误经校正数据。因此,待与所产生存取代码组合的明文数据可为错误经校正数据。有利地,通过错误校正逻辑120进行的错误校正可提高存储器控制器102处的存储器存取请求的处理速度,所述错误校正可在使用转译逻辑110对写入操作进行地址转译之后执行;同时存储器控制器102还产生经加密存取代码,由此提高存储器控制器102处的存储器存取请求的处理速度。举例来说,因为对存取代码进行加密可产生具体时延,所以取决于所利用的经验证流密码(例如,AES-GCM流水线),待在存储器存取请求中写入的数据的错误校正还可与存取代码的所述加密并行或至少部分地并行执行。
任选地且替代地,对于写入操作,在验证逻辑108产生待写入到存储器装置112中的至少一个的密文之后,数据可由错误校正逻辑120进行错误校正。
在存储器存取请求内的读取操作的上下文中,响应于存储器存取请求,所产生存取代码与从存储器装置112中的一个读取的密文数据组合以产生明文数据。举例来说,将所产生存取代码与从存储器装置112中的一个读取的密文数据组合可包含使用验证逻辑108将密文数据与所产生存取代码组合为XOR操作的一部分。举例来说,验证逻辑108可实施XOR以组合密文数据与所产生存取代码。在组合存取代码与密文数据时,验证逻辑108可将密文数据解密为所请求的明文数据以用于执行读取操作。此外,验证逻辑108的GCM还可检索与密文相关联的验证标签,例如,以将数据验证为所请求的明文数据。验证逻辑108可将密文与自身组合,例如,作为另一XOR操作的一部分,以将所述XOR操作的结果与所存储验证标签进行比较。在实例中,用于所请求数据的所存储验证标签可能已由处理器106存储在高速缓冲存储器116中。因此,经加密存取代码可用于提供存储器控制器102与同存储器存取请求相关联的数据之间的验证存取。因此,由主机计算装置104从各种存储器装置112读取的数据可通过验证存取,例如,使用基于与所述数据相关联的存储器地址由流密码加密的所产生存取代码。有利地,所产生存取代码可为由计算装置从具体存储器地址读取的数据提供安全性。在执行读取操作的各种实施方案中,验证逻辑108可将明文数据提供到高速缓冲存储器116,使得明文数据可由错误校正逻辑120进行错误校正或直接到达错误校正逻辑120以供错误校正。有利地,由错误校正逻辑120进行的错误校正可提高存储器控制器102处的存储器存取请求的处理速度,所述错误校正可在使用转译逻辑110对读取操作进行地址转译之前执行。存储器控制器102还产生经加密存取代码,这可提高存储器控制器102处的存储器存取请求的处理速度。举例来说,可至少部分地在通过存取代码的加密产生的时延期间执行错误校正。
任选地且替代地,对于读取操作,在验证逻辑108对密文进行解密且验证明文数据之前,数据可由错误校正逻辑120进行错误校正。在实例中,待与所产生存取代码组合的密文数据可为错误经校正密文数据。
在一些实施方案中,当在处理器106处接收到对存储器装置112的一或多个存储器存取请求时,处理器106可在高速缓冲存储器116处的队列或缓冲器(例如,请求、处理或数据缓冲器)中路由或存储一或多个存储器存取请求的至少一部分。待在错误校正逻辑120处经错误校正的数据可存储在高速缓冲存储器116处的数据缓冲器中。另外或替代地,存储器存取请求可存储在队列或缓冲器中以用于由处理器106处理,和/或处理存储器存取请求的部分可存储在处理缓冲器中。举例来说,处理器106可基于存储器存取请求识别存储器存取请求的存储器地址待存储在NAND装置中。为了将数据存储在NAND装置中,处理器106可首先控制存储器装置112的NAND存储器装置以擦除物理地址(例如,如由转译逻辑110转译的存储器地址)处的数据。因此,在擦除操作的处理之后,处理器106可将待执行的写入操作存储在处理缓冲器中。
在操作中,响应于包含读取操作的一或多个存储器存取请求,存储器装置112提供对所请求数据的存取,使得作为明文数据的读取数据经由主机总线122从存储器控制器102提供到主机计算装置104。存储器接口118可通过存储器总线124和存储器接口118与高速缓冲存储器116之间的内部存储器控制器总线提供数据,例如,存储在高速缓冲存储器116中以用于由验证逻辑108存取(例如,以对读取密文数据进行解密);和/或用于由错误校正逻辑120存取(例如,以在密文解密之前对读取数据进行错误校正或在解密为明文数据之后进行错误校正)。因此,高速缓冲存储器116可从存储器装置112和其相应存储器总线124获得所请求数据。因此,存储器控制器102促进使用经加密存取代码执行读取操作以从高速缓冲存储器116读取作为明文的数据,例如,在对密文数据进行解密和/或对密文数据进行错误校正之后。
在操作中,响应于写入操作,存储器装置112可提供对所请求数据的存取。可将所请求数据作为密文数据从存储器接口118提供到存储器装置112。存储器接口118可通过存储器总线124提供密文,例如从高速缓冲存储器116提供密文,所述密文从验证逻辑108存储在所述高速缓冲存储器中(例如,待写入为密文数据的经加密明文数据);和/或从错误校正逻辑120提供密文(例如,在加密为密文之前的经错误校正明文数据或在加密为密文数据之后的经错误校正)。因此,高速缓冲存储器116可提供所请求数据以经由其相应存储器总线124写入到存储器装置112。因此,存储器控制器102可促进使用经加密存取代码执行写入操作以写入来自高速缓冲存储器116的作为密文的数据,例如,在对明文数据进行加密和/或对明文数据进行错误校正之后。
有利地,与可依序对存储器存取请求的数据进行错误校正且对存取代码进行加密的存储器控制器相比,本文中所描述的系统和方法提高存储器控制器102处的存储器存取请求的处理速度,因为错误校正和存取代码的产生可至少部分地并行发生(例如,重叠)。
在本文中所描述的实例中,存储器装置112可为非易失性存储器装置,例如NAND存储器装置,或可为易失性存储器装置。通常,与非易失性存储器相比,易失性存储器可具有一些改进特性(例如,易失性存储器可更快)。存储器装置112还可包含一或多种类型的存储器,包含但不限于:DRAM、SRAM、三层级单元(TLC)NAND、单层级单元(SLC)NAND、SSD或3DXPoint存储器装置。存储在存储器装置112中的数据或待从所述存储器装置存取的数据可经由存储器总线124与存储器控制器102通信。举例来说,存储器总线124可为根据NVMe协议操作的PCIe总线。
在示例性实施方案中,处理器106可包含任何类型的微处理器、中央处理单元(CPU)、ASIC、实施为现场可编程门阵列(FPGA)的部分的数字信号处理器(DSP)、芯片上系统(SoC)或其它硬件。举例来说,处理器106可使用例如专用集成电路(ASIC)或其它电路系统等离散组件来实施,或组件可反映由存储器控制器102内的电路系统提供的功能性,其未必具有与存储器控制器102的其它部分分离的离散物理形式。处理器106的部分可由离散组件的组合实施。举例来说,转译逻辑110可实施为ASIC,而验证逻辑108可实施为具有呈指定配置的各个阶段的FPGA。尽管示出为图1A中存储器控制器120内的组件,但处理器106可在存储器控制器102外部,或具有位于存储器控制器102内的数个组件和位于存储器控制器102外部的数个组件。
在各种实施方案中,存储器控制器102可为NVMe存储器控制器,其可经由主机总线122耦合到主机计算装置104。主机总线122可实施为根据NVMe协议操作的PCIe总线。在根据NVMe协议操作的实例中,存储器总线124可为NVMe总线。举例来说,在此类实施方案中,存储器装置112可使用NAND存储器装置实施,所述NAND存储器装置经由根据NVMe协议操作的相应PCIe总线耦合到NVMe存储器控制器102。因此,存储器总线124可被称为NVMe存储器总线。有利地,与可经由耦合到主机计算装置104的单个主机总线存取NAND存储器装置的存储器系统相比,系统100可通过连接到相应存储器装置124的数个NVMe存储器总线124增加处理速率和处理量。因此,在处理器106为FPGA的实施例中,系统100可被称为“加速”存储器存取和存储装置,因为系统100增加通过存储器总线124的数据传送的可用性。
另外或替代地,存储器控制器102可为NVDIMM存储器控制器,其经由主机总线122耦合到主机计算装置104。主机总线122可根据NVDIMM协议,例如NVDIMM-F、NVDIMM-N、NVDIMM-P或NVDIMM-X操作。举例来说,在此类实施方案中,存储器装置112可为NAND存储器装置或3D XPoint存储器装置。因此,在此类实施方案中,存储器装置112可作为用于高速缓冲存储器116的永久性存储装置操作,所述高速缓冲存储器可为易失性存储器装置,和/或作为用于存储器控制器102或主机计算装置104上的任何易失性存储器的永久性存储装置操作。
图1B为根据本文中所描述的实例进行交互的存储器系统的示意性图示。图1B为根据本文中所描述的实例进行交互的存储器系统的示意性图示。在图1B中,类似命名的元件可具有如关于图1A所描述的类似操作或功能。举例来说,转译逻辑128可类似于转译逻辑110操作。如关于图1A所描述,存储器控制器102中的处理器106的离散组件可经由不同类型的电路系统实施。因此,在图1B的上下文中,转译逻辑128可实施为ASIC,而验证逻辑134可实施为具有呈指定配置的各个阶段的FPGA,所述阶段为例如阶段1 136、阶段2 138和阶段n140,其中n可为能够包含在FPGA架构中的任何数目个阶段。
主机计算装置104可将存储器写入请求126提供到存储器控制器102以将数据写入到存储器装置148(例如,存储器装置112中的一个)。举例来说,存储器写入请求可为或包含写入命令和与写入命令相关联的地址。在存储器控制器102的示例性实施方案中,存储器写入请求126可经由主机总线122路由到处理器106。因此,至少部分同时,可在存储器控制器102的转译逻辑128处获得包括待写入的存储器地址和数据的存储器写入请求126,而可在验证逻辑134处获得存储器地址。因此,可至少部分同时在存储器控制器102中处理存储器写入请求126的不同方面。在存储器写入请求126的上下文中,待写入的数据可被称为明文132,因为其将根据所产生存取代码进行加密。
继续存储器写入请求126的处理,一旦在转译逻辑128处获得,转译逻辑128将逻辑存储器地址转译成存储器装置148的物理存储器地址。在转译存储器写入请求126的存储器地址之后,可任选地在错误校正逻辑130处对存储器写入请求126的待写入的数据自身进行错误校正。在一些实施方案中,代替在转译逻辑128之后待写入的明文数据的错误校正,错误校正可在错误校正逻辑146处相对于密文144发生。因此,因为错误校正可在加密之前或之后发生,所以错误校正逻辑130和错误校正逻辑146在图1B中所展示的存储器控制器102的实施方案中的某一点是任选的(如虚线所描绘)。另外或替代地,在一些实施方案中,可包含错误校正逻辑160和错误校正逻辑176两者:错误校正逻辑130可对待写入的明文132进行错误校正,而错误校正逻辑146可对所产生验证标签152进行错误校正。
继续图1B中所描绘的存储器控制器102的实施方案,至少部分地同时,可在验证逻辑134的各个阶段处处理在验证逻辑134处获得的存储器地址。举例来说,阶段1 136、阶段2138和阶段n 140可表示AES-GCM流水线的阶段,其中存储器地址经加密且经产生为待写入到存储器装置148的明文132的存取代码。举例来说,验证逻辑134可使用存储器地址作为经验证流密码的IV,使得验证逻辑134使用存储器地址作为IV基于经验证流密码产生存取代码。一旦产生,XOR逻辑单元142可组合明文132数据和所产生存取代码。举例来说,组合可为明文132和所产生存取代码的输入之间的XOR操作。在组合存取代码与明文数据时,XOR逻辑单元142可将明文132加密为密文144。虽然参考图1B描述XOR操作,但可在其它实例中使用其它组合操作。
一旦加密为密文144,另一XOR逻辑单元150可将密文144与自身组合以产生验证标签152。验证标签152可与密文144相关联(例如,在高速缓冲存储器116处的查找表中),使得验证标签152可在从存储器装置148读取时验证密文144数据。虽然参考图1B描述XOR操作,但可在其它实例中使用其它组合操作。
在所描绘的实施方案中,密文144写入到存储器装置148且可通过验证存取,例如,使用基于与所述数据相关联的存储器地址由流密码加密的所产生存取代码。因此,存储器写入请求126可实施在存储器控制器102中,使得至少部分地同时执行存取存储器和产生经加密存取代码的方面。在一些实施方案中,有利地,处理存储器写入请求126的不同方面的时延可经拆分,使得将明文132加密为密文144的XOR逻辑单元142操作引发较少时延(例如,单个时钟时延)。作为实例,在转译逻辑128和错误校正逻辑130处处理存储器写入请求126可引发十四(14)个时钟时延;并且可存在实施在验证逻辑134中的AES-GCM流水线的n=14个阶段(例如,阶段n 140为阶段14)。在此状况下,明文132和所产生存取代码可在XOR逻辑单元142处组合,而不具有进一步时延。有利地,如果在转译逻辑128和错误校正逻辑130处处理存储器写入请求126引发多于十四(14)个时钟时延,那么额外时延可引入到XOR逻辑单元142的组合,使得当明文132准备好在XOR逻辑单元142处进行组合时,所产生存取代码可经处理。举例来说,可能引发XOR逻辑单元142处的单个时钟时延(例如,所产生存取代码传递通过延迟单元),使得同时接收到XOR逻辑单元142的输入。
图1C为根据本文中所描述的实例进行交互的存储器系统的示意性图示。图1C为根据本文中所描述的实例进行交互的存储器系统的示意性图示。在图1C中,类似命名的元件可具有如关于图1A所描述的类似操作或功能。举例来说,转译逻辑156可类似于转译逻辑110操作。如关于图1A所描述,存储器控制器102中的处理器106的离散组件可经由不同类型的电路系统实施。因此,在图1C的上下文中,转译逻辑156可实施为ASIC,而验证逻辑164可实施为具有呈指定配置的各个阶段的FPGA,所述阶段为例如阶段1 166、阶段2 168和阶段n170,其中n可为能够包含在FPGA架构中的任何数目个阶段。
主机计算装置104可将存储器读取请求154提供到存储器控制器102以从存储器装置158(例如,存储器装置112中的一个)读取数据。举例来说,存储器读取请求可为或包含读取命令和与读取命令相关联的地址。在存储器控制器102的示例性实施方案中,存储器读取请求154可经由主机总线122路由到处理器106。因此,至少部分地同时,可在存储器控制器102的转译逻辑156处获得包括存储器地址的存储器读取请求154,而可在验证逻辑164处获得存储器地址。因此,可至少部分同时在存储器控制器102中处理存储器读取请求154的不同方面。在存储器读取请求154的上下文中,从存储器装置158读取的数据可被称为密文162,因为其将根据所产生存取代码解密。
继续存储器读取请求154的处理,一旦在转译逻辑156处获得,转译逻辑156就将逻辑存储器地址转译成存储器装置158的物理存储器地址。在转译存储器读取请求154的存储器地址之后,可任选地在错误校正逻辑160处对存储器读取请求154的待写入的数据自身进行错误校正。在一些实施方案中,代替在转译逻辑156之后待读取的明文数据的错误校正,错误校正可在错误校正逻辑176处相对于明文174发生。因此,因为错误校正可在解密之前或之后发生,所以错误校正逻辑160和错误校正逻辑176在图1B中所展示的存储器控制器102的实施方案中的某一点是任选的(如虚线所描绘)。另外或替代地,在一些实施方案中,可包含错误校正逻辑160和错误校正逻辑176两者:错误校正逻辑160可对读取的密文162进行错误校正,而错误校正逻辑176可对写入或从存储器控制器102上的高速缓冲存储器检索的验证标签180进行错误校正。
在一些实施方案中,一旦从存储器装置158读取,密文162就可与存储在高速缓冲存储器(例如,存储器控制器102的高速缓冲存储器116)中的验证标签180相关联且与读取的存储器地址相关联。举例来说,高速缓冲存储器116可将验证标签与存储器读取请求154的逻辑存储器地址一起存储在高速缓冲存储器的查找表中。因此,密文162可与所存储验证标签相关联,使得两者被处理为到XOR逻辑单元172的输入。
继续图1C中所描绘的存储器控制器102的实施方案,至少部分地同时,可在验证逻辑164的各个阶段处处理在验证逻辑164处获得的存储器地址。举例来说,阶段1 166、阶段2168和阶段n 170可表示AES-GCM流水线的阶段,其中存储器地址经加密且经产生为从存储器装置158读取的密文162的存取代码。举例来说,验证逻辑164可使用存储器地址作为经验证流密码的IV,使得验证逻辑164使用存储器地址作为IV基于经验证流密码产生存取代码。一旦产生,XOR逻辑单元172可组合密文162数据和所产生存取代码。举例来说,组合可为密文162和所产生存取代码的输入之间的XOR操作。在组合存取代码与明文数据时,XOR逻辑单元172可将密文162解密为明文174。虽然参考图1C描述XOR操作,但可在其它实例中使用其它组合操作。
一旦解密为明文174,另一XOR逻辑单元178可将密文162与自身组合以产生验证标签180。虽然参考图1C描述XOR操作,但可在其它实例中使用其它组合操作。将所述验证标签180与前述所存储验证标签进行比较以确定它们是否彼此匹配。如果所存储验证标签与验证标签180匹配,那么存储器控制器102可验证待从存储器装置158读取的明文174,使得所述明文可提供到外部计算装置(例如,主机计算装置104)。
在所描绘的实施方案中,明文174从存储器装置158读取且可通过验证存取,例如,使用基于与所述数据相关联的存储器地址由流密码加密的所产生存取代码。因此,存储器读取请求154可实施在存储器控制器102中,使得至少部分地同时执行存取存储器和产生经加密存取代码的方面。在一些实施方案中,有利地,处理存储器读取请求154的不同方面的时延可经拆分,使得将密文162解密为明文174的XOR逻辑单元172操作引发较少时延(例如,单个时钟时延)。作为实例,在转译逻辑156和验证逻辑164处处理存储器读取请求154可引发十四(14)个时钟时延;并且可存在实施在验证逻辑164中的AES-GCM流水线的n=14个阶段(例如,阶段n 140为阶段14)。在此状况下,密文162和所产生存取代码可在XOR逻辑单元172处组合,而不具有进一步时延。有利地,如果在转译逻辑156和错误校正逻辑176处处理存储器读取请求154引发多于十四(14)个时钟时延,那么额外时延可引入到XOR逻辑单元172的组合,使得当密文162准备好在XOR逻辑单元172处进行组合时,所产生存取代码可经处理。举例来说,可能引发XOR逻辑单元172处的单个时钟时延(例如,所产生存取代码传递通过延迟单元),使得同时接收到XOR逻辑单元172的输入。
图2为根据本文中所描述的实例的方法200的示意性图示。可使用例如处理器106执行示例性方法200,所述处理器执行可执行指令以经由相应存储器总线124与存储器装置112交互。方法200的全部或部分可使用验证逻辑和/或转译逻辑110实施。举例来说,块202到210中所描述的操作可作为计算机可执行指令存储在可由处理器106存取的计算机可读媒体中。在实施方案中,可由处理器106存取的计算机可读媒体可为存储器装置112中的一个。举例来说,可执行指令可存储在存储器装置112中的一个上,并且由存储器控制器102检索,以便处理器106执行可执行指令以用于执行方法200。另外或替代地,可执行指令可存储在耦合到主机计算装置104的存储器上,并且由处理器106检索以执行用于执行方法200的可执行指令。
方法200可在块202中开始。在块202中,方法可包含从主机计算装置获得与多个存储器装置相关联的存储器存取请求。存储器存取请求可为或包含命令和存储器地址。因此,块202可包含从主机计算装置接收一或多个存储器装置的命令和地址。在存储器控制器102的示例性实施方案中,经由主机总线122例如从主机计算装置104接收存储器存取请求。举例来说,主机总线122可为将处理器106耦合到主机计算装置104的PCIe总线,使得主机计算装置104可将数据从在主机处理器上执行的用户应用程序提供到处理器106,所述主机处理器产生存储器存取请求。因此,在包含存储器装置112的读取或写入操作的存储器存取请求的各种实施方案中,在块202处,处理器106获得与存储器装置112相关联的存储器存取请求。
块202可后接块204。在块204中,所述方法可包含响应于存储器存取请求,执行地址转译以将存储器存取请求中的逻辑存储器地址转译成物理存储器地址。在存储器控制器102的示例性实施方案中,转译逻辑110可使用查找表(例如,块表)来将存储器地址作为逻辑存储器地址转译成存储器装置112中的一个的物理存储器地址。在执行地址转译时,转译逻辑110还可执行与存储器控制器102的地址转译相关联的操作,例如存储器耗损均衡、垃圾收集和/或写入放大。
块204可后接块206。在块206中,所述方法可包含例如响应于命令和/或地址而对与存储器存取请求相关联的数据执行错误校正以产生错误经校正数据。在存储器控制器102的示例性实施方案中,高速缓冲存储器116可提供数据(例如,在写入操作中)或从存储器装置112获得数据(例如,在读取操作中)以将所述数据提供到错误校正逻辑120以供错误校正。错误校正逻辑120可对所述所提供数据进行错误校正,并且随后,将所述错误经校正数据从错误校正逻辑120提供到高速缓冲存储器116。在一些写入操作的状况下,在明文数据的错误校正之后,或在一些读取操作的状况下,在密文数据的错误校正之后,存储器控制器102可使用错误经校正数据来用所产生存取代码分别对待写入或读取的数据进行加密或解密。
块204和/或206可与块208至少部分地同时发生。在块208中,所述方法包含例如响应于命令和/或地址而利用存储器地址作为用于经验证流密码的初始化向量来产生存取代码。举例来说,块208的操作可与块204和206中的任一个或两个至少部分地同时发生,使得存储器地址的地址转译或数据的错误校正可与存取代码的加密并行执行。在存储器控制器102的示例性实施方案中,处理器106利用验证逻辑108来使用存储器地址作为用于经验证流密码的初始化向量(IV)。举例来说,验证逻辑108可具有伽罗瓦-计数器模式以使用AES加密运用流密码产生存取代码,使得所产生的存取代码也经加密。
块206和208可后接块210。在块210中,所述方法包含使用存取代码执行与存储器存取请求相关联的存储器存取操作。在读取操作作为存储器存取操作的上下文中,存储器装置112提供对所请求数据的存取,使得作为明文数据的读取数据经由主机总线122从存储器控制器102提供到主机计算装置104。在写入操作作为存储器存取操作的上下文中,存储器装置112提供对所请求数据的存取,使得作为密文数据的待写入的数据从存储器接口118提供到存储器装置112。因此,块210包含使用存取代码执行与命令相关联的存储器存取操作,无论是读取、写入、激活还是刷新。在处理器106的示例性实施方案中,一旦存取代码由验证逻辑108产生,处理器106就执行可执行指令以将存储器存取请求提供到存储器装置124/从所述存储器装置提供存储器存取请求。在提供存储器存取请求时,处理器106可将供存储器控制器(例如,存储器控制器102)识别至少一个存储器存取请求待提供到的存储器装置112的信息包含在至少一个存储器存取请求中。举例来说,处理器106可将物理存储器地址和/或与所请求数据相关联的存储器装置识别(例如,作为标头信息)包含在每一至少一个存储器存取请求中。举例来说,标头信息可包含在命令中。方法200可在块210完成之后结束。
所描述示例性方法200中所包含的块是出于说明的目的。在一些实施例中,这些块可以不同次序执行。在一些其它实施例中,可消除各种块。在又其它实施例中,各种块可划分成额外块,用其它块补充,或一起组合成较少的块。举例来说,相对于块206,对于写入操作,可直到块210之后才执行对与存储器存取请求相关联的数据执行错误校正,例如,可在验证逻辑108产生待写入到存储器装置112中的至少一个的密文之后通过错误校正逻辑120对数据进行错误校正。预期这些特定块的其它变化,包含块的次序的变化、被分割或组合成其它块的块的内容的变化等。
图3为根据本文中所描述的实例的方法300的示意性图示。可使用例如处理器106执行示例性方法300,所述处理器执行可执行指令以经由相应存储器总线124与存储器装置112交互。在一些实例中,方法300的全部或部分可通过验证逻辑108和/或转译逻辑110实施。举例来说,块302到308中所描述的操作可作为计算机可执行指令存储在可由处理器106存取的计算机可读媒体中。在实施方案中,可由处理器106存取的计算机可读媒体可为存储器装置112中的一个。举例来说,可执行指令可存储在存储器装置112中的一个上,并且由存储器控制器102检索,以便处理器106执行可执行指令以用于执行方法300。另外或替代地,可执行指令可存储在耦合到主机计算装置104的存储器上,并且由处理器106检索以执行用于执行方法300的可执行指令。
示例性方法300可以块302开始,所述块开始方法的执行且包含从主机计算装置获得与多个存储器装置相关联的存储器读取请求,存储器读取请求可为或包含读取命令和存储器地址。因此,块302可包含从主机计算装置接收一或多个存储器装置的读取命令和地址。在示例性实施方案中,可类似于方法200的块202执行块302。举例来说,在存储器控制器102的实施方案中,经由主机总线122例如从主机计算装置104获得存储器读取请求。
块302可后接块304。在块304中,所述方法包含响应于存储器读取请求,例如,响应于读取命令和/或地址,在存储器地址处将与存储器读取请求相关联的数据读取为密文。在示例性实施方案中,可类似于方法200的块204和/或块206执行块302。因此,在存储器控制器102的示例性实施方案中,块302可包含使用存储器读取请求执行地址转译以将存储器地址的逻辑存储器地址转译成物理存储器地址,以及对与存储器存取请求相关联的数据执行错误校正以产生错误经校正数据。举例来说,存储器控制器102可利用地址转译逻辑110,并且高速缓冲存储器116可基于经转译物理地址从存储器装置112获得数据;以将所述数据提供到错误校正逻辑120以供错误校正。
块304可与块306至少部分地同时发生。在块306中,所述方法进一步包含例如响应于读取命令和/或地址而利用存储器地址作为用于经验证流密码的初始化向量以产生存取代码。在示例性实施方案中,可类似于方法200的块208执行块304。举例来说,块306的操作可与块304至少部分地同时发生,使得存储器地址的地址转译或数据的错误校正可与存取代码的加密并行执行。处理器106可利用验证逻辑108来使用存储器读取请求的存储器地址作为用于经验证流密码的初始化向量(IV),使得存取代码经产生以与从存储器装置112读取的数据组合。
块304和306可后接块308。在块308中,所述方法进一步包含使用存取代码执行与存储器读取请求相关联的读取操作以将数据读取为明文。在示例性实施方案中,可类似于方法200的块210执行块308。举例来说,响应于存储器读取请求,所产生存取代码与从存储器装置112中的一个读取的密文数据组合以产生明文数据。将所产生存取代码与从存储器装置112中的一个读取的密文数据组合可包含在验证逻辑108中将密文数据与所产生存取代码组合作为XOR操作的一部分。由此,存储器装置112提供对所请求数据的存取,使得作为明文数据的读取数据经由主机总线122从存储器控制器102提供到主机计算装置104。因此,块308包含使用存取代码执行与读取命令相关联的读取操作。方法300可在块308完成之后结束。
包含在所描述示例性方法300中的块是出于说明的目的。在一些实施例中,这些块可以不同次序执行。在一些其它实施例中,可消除各种块。在又其它实施例中,各种块可划分成额外块,用其它块补充,或一起组合成较少的块。举例来说,相对于块304,可直到块308之后才执行对与存储器读取请求相关联的数据执行错误校正以产生错误经校正数据,例如,可直到解密为明文数据之后才将所读取的数据提供到错误校正逻辑120以进行错误校正。预期这些特定块的其它变化,包含块的次序的变化、被分割或组合成其它块的块的内容的变化等。
图4为根据本文中所描述的实例的方法400的示意性图示。可使用例如处理器106执行示例性方法400,所述处理器执行可执行指令以经由相应存储器总线124与存储器装置112交互。在一些实例中,方法400可完全或部分地通过验证逻辑108和/或转译逻辑110实施。举例来说,块402到408中所描述的操作可作为计算机可执行指令存储在可由处理器106存取的计算机可读媒体中。在实施方案中,可由处理器106存取的计算机可读媒体可为存储器装置112中的一个。举例来说,可执行指令可存储在存储器装置112中的一个上,并且由存储器控制器102检索,以便处理器106执行可执行指令以用于执行方法400。另外或替代地,可执行指令可存储在耦合到主机计算装置104的存储器上,并且由处理器106检索以执行可执行指令以用于执行方法400。
示例性方法400可以块402开始,所述块开始方法的执行且包含从主机计算装置获得与多个存储器装置相关联的存储器写入请求,所述存储器写入请求可以是或包含写入命令和存储器地址。因此,块402可包含从主机计算装置接收一或多个存储器装置的写入命令和地址。在示例性实施方案中,可类似于方法200的块202执行块402。举例来说,在存储器控制器102的实施方案中,经由主机总线122例如从主机计算装置104获得存储器写入请求。
块402可后接块404。在块402中,所述方法进一步包含响应于存储器写入请求,例如,响应于写入命令和/或地址,利用存储器地址作为用于经验证流密码的初始化向量来产生存取代码。在示例性实施方案中,可类似于方法200的块208执行块402。举例来说,以下块406的并发操作可与块404同时发生,使得存储器地址的地址转译或数据的错误校正可与存取代码的加密并行执行。处理器106可执行验证逻辑108以使用存储器写入请求的存储器地址作为用于经验证流密码的初始化向量(IV),使得存取代码经产生以与待写入到存储器装置112的数据组合。
块404可与块406至少部分地同时发生。在块406中,所述方法进一步包含例如响应于写入命令和/或地址而准备在存储器地址处将与存储器写入请求相关联的数据写入为明文。在示例性实施方案中,可类似于方法200的块204和/或块206执行块404。因此,在存储器控制器102的示例性实施方案中,块406可包含使用存储器写入请求执行地址转译以将存储器地址的逻辑存储器地址转译成物理存储器地址,以及对与存储器存取请求相关联的数据执行错误校正以产生待写入的错误经校正数据。举例来说,存储器控制器102可利用地址转译逻辑110,并且高速缓冲存储器116可基于经转译物理地址将来自存储器装置112的数据提供到错误校正逻辑120以供错误校正。
块404和406可后接块408。在块408中,所述方法进一步包含使用存取代码执行与存储器写入请求相关联的写入操作以将数据写入为密文。在示例性实施方案中,可类似于方法200的块210执行块408。举例来说,所产生存取代码与数据组合以产生待写入到存储器装置112的密文。将所产生存取代码与存储器存取请求的明文数据组合可包含在验证逻辑108中将明文数据与所产生存取代码组合为XOR操作的一部分。由此,存储器装置112提供对所请求数据的存取,待写入为密文数据的此类数据从存储器接口118提供到存储器装置112。因此,块308包含使用存取代码执行与写入命令相关联的写入操作。方法400可在块408完成之后结束。
所描述的示例性方法400中所包含的块是出于说明的目的。在一些实施例中,这些块可以不同次序执行。在一些其它实施例中,可消除各种块。在又其它实施例中,各种块可划分成额外块,用其它块补充,或一起组合成较少的块。预期这些特定块的其它变化,包含块的次序的变化、被分割或组合成其它块的块的内容的变化等。
上文阐述某些细节以提供对所描述实例的充分理解。然而,所属领域的技术人员将明白,可在没有这些特定细节的情况下实践所述实例。本文中结合随附图式的描述描述了示例性配置,且并不表示可实施的或在权利要求书的范围内的所有实例。本文中可使用的术语“示例性”和“实例”意谓“充当实例、例子或说明”,并且不“优选于”或“优于其它实例”。详细描述包含出于提供对所描述技术的理解的目的的具体细节。然而,可在没有这些具体细节的情况下实践这些技术。在一些例子中,以块图的形式展示众所周知的结构和装置以便避免混淆所描述的实例的概念。
可使用多种不同技术和技艺中的任一个来表示本文中所描述的信息和信号。举例来说,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个上文描述中可能参考的数据、指令、命令、信息、信号、位、符号和码片。
可运用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其经设计以执行本文中所描述的功能的任何组合来实施或执行本文中结合本公开所描述的各种说明性块和模块。通用处理器可为微处理器;但在替代方案中,处理器可为任何常规处理器、控制器、微控制器或状态机。处理器也可实施为计算装置的组合(例如,DSP与微处理器的组合、多个微处理器、一或多个微处理器结合DSP核心,或任何其它此类配置)。
本文中所描述的功能可在硬件、由处理器执行的软件、固件或其任何组合中实施。如果以由处理器执行的软件来实施,那么可将功能作为一或多个指令或代码存储于计算机可读媒体上或通过计算机可读媒体予以发射。计算机可读媒体包含非暂时性计算机存储媒体和通信媒体两者,通信媒体包含促进将计算机程序从一处传送到另一处的任何媒体。非暂时性存储媒体可为可由通用或专用计算机存取的任何可用媒体。作为实例而非限制,非暂时性计算机可读媒体可包括RAM、ROM、电可擦除可编程只读存储器(EEPROM)、或光盘存储器、磁盘存储器或其它磁性存储装置,或可用于携载或存储呈指令或数据结构形式的所要程序代码构件且可由通用或专用计算机或通用或专用处理器存取的任何其它非暂时性媒体。
并且,适当地将任何连接称作计算机可读媒体。举例来说,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或例如红外线、无线电及微波等无线技术从网站、服务器或其它远程源发射软件,那么所述同轴电缆、光纤电缆、双绞线、DSL或例如红外线、无线电及微波等无线技术包含于媒体的定义中。以上各者的组合也包含在计算机可读媒体的范围内。
其它实例和实施方案在本公开和所附权利要求书的范围内。举例来说,归因于软件的性质,上文所描述的功能可使用由处理器执行的软件、硬件、固件、硬连线或这些中的任一个的组合来实施。实施功能的特征还可物理上位于各种位置处,包含经分布以使得功能的部分在不同物理位置处实施。
并且,如本文中所使用,包含在权利要求书中,项目的列表(例如,以例如“中的至少一个”或“中的一或多个”的短语开始的项目的列表)中所使用的“或”指示包含性列表,使得(例如)A、B或C中的至少一个的列表意指A或B或C或AB或AC或BC或ABC(即,A和B和C)。另外,如本文中所使用,短语“基于”不应理解为提及封闭条件集。举例来说,在不脱离本公开的范围的情况下,描述为“基于条件A”的示范性步骤可基于条件A和条件B两者。换句话说,如本文中所使用,短语“基于”应同样地解释为短语“至少部分地基于”。
从前述应了解,虽然本文中已出于说明的目的描述具体实例,但可进行各种修改,同时仍保持所要求技术的范围。提供本文中的描述以使所属领域的技术人员能够制造或使用本公开。所属领域的技术人员将易于了解对本公开的各种修改,且可在不脱离本公开的范围的情况下将本文所定义的一般原理应用于其它变化。因此,本公开不限于本文所描述的实例和设计,而是被赋予与本文所公开的原理和新颖特征一致的最宽范围。
Claims (30)
1.一种方法,其包括:
从主机计算装置接收用于一或多个存储器装置的命令和地址;
响应于所述命令:
对与所述地址相关联的数据执行错误校正以产生错误经校正数据;
利用所述地址作为用于经验证流密码的初始化向量以产生存取代码;
使用所述存取代码执行与所述命令相关联的存储器存取操作。
2.根据权利要求1所述的方法,其中接收用于所述一或多个存储器装置的所述命令和地址包括在存储器控制器处经由所述存储器控制器的高速缓冲存储器处的主机总线接收所述命令和地址,所述主机总线将所述主机计算装置耦合到所述存储器控制器。
3.根据权利要求1所述的方法,其中响应于所述接收所述命令和所述地址,所述方法进一步包括:
在利用所述地址作为所述初始化向量的同时,使用所述命令和所述地址执行地址转译,以将所述地址的逻辑存储器地址转译为所述一或多个存储器装置中的至少一个存储器装置的物理存储器地址。
4.根据权利要求1所述的方法,其中所述经验证流密码包括高级加密标准(AES)密码。
5.根据权利要求4所述的方法,其中所述命令包括写入操作,且其中利用所述地址作为用于所述AES密码的所述初始化向量以产生所述存取代码包括基于所述AES密码在验证逻辑的伽罗瓦/计数器模式(GCM)处产生所述存取代码。
6.根据权利要求5所述的方法,其中利用所述地址作为用于所述AES密码的所述初始化向量以产生所述存取代码进一步包括使用所述存取代码以对所述错误经校正数据进行加密。
7.根据权利要求6所述的方法,其中使用所述存取代码以对所述错误经校正数据进行加密包括运用所述错误经校正数据和所述存取代码执行XOR操作,以产生密文。
8.根据权利要求7所述的方法,其进一步包括:
作为所述GCM的一部分,部分地基于所述错误经校正数据和所述存取代码的所述XOR操作的结果而产生待与所述密文相关联的验证标签,以用于将所述密文写入到所述地址。
9.根据权利要求8所述的方法,其中使用所述存取代码执行与所述命令相关联的所述存储器存取操作包括在所述一或多个存储器装置中的一个的所述地址处写入所述密文。
10.根据权利要求1所述的方法,其中所述错误校正对应于低密度奇偶校验校正。
11.根据权利要求1所述的方法,其中所述命令包括读取操作,且其中利用所述地址作为用于所述经验证流密码的所述初始化向量以产生所述存取代码包括:
基于所述经验证流密码在验证逻辑的伽罗瓦/计数器模式(GCM)处产生所述存取代码;及
使用所述存取代码以将密文解密为明文。
12.根据权利要求11所述的方法,其中使用所述经验证流密码执行与所述命令相关联的所述存储器存取操作包括从所述一或多个存储器装置中的一个的所述地址读取待解密为所述明文的所述密文。
13.根据权利要求11所述的方法,其中使用所述存取代码以将密文解密为明文包括运用所述错误经校正数据和所述存取代码来执行XOR操作。
14.根据权利要求13所述的方法,其进一步包括:
作为所述GCM的一部分,产生与所述密文相关联的验证标签,以用于将所述错误经校正数据解密为所述明文。
15.一种方法,其包括:
从主机计算装置获得与多个存储器装置相关联的存储器读取请求,所述存储器读取请求包括存储器地址;
响应于所述存储器读取请求:
在所述存储器地址处将与所述存储器读取请求相关联的数据读取为密文;
同时,利用所述存储器地址作为用于经验证流密码的初始化向量以产生存取代码;
使用所述存取代码执行与所述存储器读取请求相关联的读取操作。
16.根据权利要求15所述的方法,其中利用所述存储器地址作为用于所述经验证流密码的所述初始化向量以产生所述存取代码包括:
基于所述经验证流密码在验证逻辑的伽罗瓦/计数器模式(GCM)处产生所述存取代码;
作为所述GCM的一部分,产生与密文相关联的验证标签,以用于将所述数据解密为明文;及
使用所述存取代码以将所述密文解密为明文。
17.根据权利要求16所述的方法,其中使用所述存取代码以将所述密文解密为所述明文包括运用所述密文和所述存取代码执行XOR操作以产生所述明文。
18.根据权利要求17所述的方法,对所述明文执行错误校正以产生错误经校正数据,作为用于所述读取操作的读取数据。
19.一种设备,其包括:
验证逻辑,其经配置以接收命令和地址,其中所述验证逻辑进一步经配置以利用所述地址作为用于流密码的初始化向量以产生存取代码;及
高速缓冲存储器,其经配置以存储与所述命令相关联的数据;及
多个存储器装置,其中所述多个存储器装置中的至少一个存储器装置经配置以使用所述存取代码来执行与所述命令相关联的存储器存取操作。
20.根据权利要求19所述的设备,其中所述多个存储器装置包括NAND存储器装置。
21.根据权利要求19所述的设备,其中存储器控制器经配置以经由PCIe总线从主机计算装置接收所述命令和所述地址。
22.根据权利要求19所述的设备,其进一步包括:
存储器接口,其经配置以将多个存储器存取请求提供到所述多个存储器装置,其中所述验证逻辑进一步经配置以基于所述地址而产生至少一个存取代码,以存取用于所述多个存储器装置的数据。
23.根据权利要求19所述的设备,其进一步包括:
错误校正单元,其经配置以对获自或经提供到所述多个存储器装置的数据进行错误校正。
24.根据权利要求23所述的设备,其中所述错误校正单元包括低密度奇偶校验校正单元。
25.根据权利要求24所述的设备,其进一步包括:
主机接口,其经配置以从主机计算装置接收所述命令和所述地址且进一步经配置以获得读取数据或将与所述命令相关联的写入数据提供到所述高速缓冲存储器,以供所述错误校正单元进行处理。
26.根据权利要求19所述的设备,其中所述验证逻辑经配置以执行伽罗瓦/计数器模式(GCM),以运用所述流密码产生所述存取代码作为经验证流密码。
27.根据权利要求26所述的设备,其中所述经验证流密码包括高级加密标准(AES)-GCM流水线。
28.根据权利要求26所述的设备,其中所述命令包括写入操作,且其中验证逻辑进一步经配置以使用所述存取代码以将与命令相关联的所述数据加密为密文。
29.根据权利要求26所述的设备,其中所述命令包括读取操作,且其中验证逻辑进一步经配置以使用所述存取代码,以将与所述命令相关联的所述数据解密为明文。
30.根据权利要求19所述的设备,其进一步包括:
转译逻辑,其经配置以对获自或经提供到所述多个存储器装置的数据进行转译。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/108,904 US11537298B2 (en) | 2020-12-01 | 2020-12-01 | Memory systems and devices including examples of accessing memory and generating access codes using an authenticated stream cipher |
US17/108,904 | 2020-12-01 | ||
PCT/US2021/061170 WO2022119822A1 (en) | 2020-12-01 | 2021-11-30 | Memory systems and devices including examples of accessing memory and generating access codes using an authenticated stream cipher |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116635853A true CN116635853A (zh) | 2023-08-22 |
Family
ID=81752579
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180080259.XA Pending CN116635853A (zh) | 2020-12-01 | 2021-11-30 | 包含存取存储器且使用经验证流密码来产生存取代码的实例的存储器系统和装置 |
Country Status (3)
Country | Link |
---|---|
US (3) | US11537298B2 (zh) |
CN (1) | CN116635853A (zh) |
WO (1) | WO2022119822A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11899829B2 (en) | 2020-12-01 | 2024-02-13 | Micron Technology, Inc. | Memory systems and devices including examples of generating access codes for memory regions using authentication logic |
US11537298B2 (en) | 2020-12-01 | 2022-12-27 | Micron Technology, Inc. | Memory systems and devices including examples of accessing memory and generating access codes using an authenticated stream cipher |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7370166B1 (en) | 2004-04-30 | 2008-05-06 | Lexar Media, Inc. | Secure portable storage device |
US7814316B1 (en) | 2006-04-14 | 2010-10-12 | Oracle America, Inc. | System, method and data storage device for encrypting data |
JP2009245020A (ja) | 2008-03-28 | 2009-10-22 | Ikutoku Gakuen Kanagawa Koka Daigaku | Usb接続による暗号化装置 |
US8621212B2 (en) | 2009-12-22 | 2013-12-31 | Infineon Technologies Ag | Systems and methods for cryptographically enhanced automatic blacklist management and enforcement |
US9231926B2 (en) | 2011-09-08 | 2016-01-05 | Lexmark International, Inc. | System and method for secured host-slave communication |
US9946474B2 (en) | 2013-03-27 | 2018-04-17 | Irdeto B.V. | Storing and accessing data |
US9076003B2 (en) | 2013-08-20 | 2015-07-07 | Janus Technologies, Inc. | Method and apparatus for transparently encrypting and decrypting computer interface data |
US9304941B2 (en) | 2014-02-27 | 2016-04-05 | Mangstor, Inc. | Self-encrypting flash drive |
KR102196971B1 (ko) | 2014-03-28 | 2020-12-31 | 삼성전자주식회사 | 스토리지 시스템, 그것의 쓰기 방지 수행 방법, 그리고 그것의 쓰기 방지 인증 방법 |
US9483664B2 (en) * | 2014-09-15 | 2016-11-01 | Arm Limited | Address dependent data encryption |
US10146444B2 (en) * | 2016-10-03 | 2018-12-04 | Samsung Electronics Co., Ltd. | Method for read latency bound in SSD storage systems |
US10372625B2 (en) | 2016-12-27 | 2019-08-06 | Intel Corporation | Secure memory |
TWI648741B (zh) * | 2017-06-05 | 2019-01-21 | 慧榮科技股份有限公司 | 資料儲存裝置之控制器以及進階資料抹除的方法 |
US10296421B2 (en) | 2017-06-26 | 2019-05-21 | Micron Technology, Inc. | Memory devices and systems with security capabilities |
US11070375B2 (en) | 2018-02-08 | 2021-07-20 | Micron Technology, Inc. | Key encryption handling |
US11269786B2 (en) | 2018-07-25 | 2022-03-08 | Intel Corporation | Memory data protection based on authenticated encryption |
US20200226270A1 (en) | 2019-01-14 | 2020-07-16 | Hewlett Packard Enterprise Development Lp | System and method for multilayer data protection for memory devices |
US10761928B2 (en) | 2019-03-28 | 2020-09-01 | Intel Corporation | Combined secure mac and device correction using encrypted parity with multi-key domains |
US10809944B1 (en) | 2020-01-22 | 2020-10-20 | Cypress Semiconductor Corporation | Memory device resilient to cyber-attacks and malfunction |
FR3106910B1 (fr) * | 2020-01-31 | 2022-02-18 | St Microelectronics Grenoble 2 | Circuit intégré configuré pour réaliser des opérations de chiffrement symétrique sans transmission de clé secrète |
US11641276B2 (en) | 2020-06-02 | 2023-05-02 | Western Digital Technologies, Inc. | Effective key management for data encryption and decryption |
KR20220021186A (ko) * | 2020-08-13 | 2022-02-22 | 에스케이하이닉스 주식회사 | 데이터 처리 시스템 내 데이터를 공유하는 장치 및 방법 |
US11537298B2 (en) | 2020-12-01 | 2022-12-27 | Micron Technology, Inc. | Memory systems and devices including examples of accessing memory and generating access codes using an authenticated stream cipher |
US11899829B2 (en) | 2020-12-01 | 2024-02-13 | Micron Technology, Inc. | Memory systems and devices including examples of generating access codes for memory regions using authentication logic |
US20220222384A1 (en) | 2021-01-11 | 2022-07-14 | Micron Technology, Inc. | Encrypted key management |
-
2020
- 2020-12-01 US US17/108,904 patent/US11537298B2/en active Active
-
2021
- 2021-11-30 WO PCT/US2021/061170 patent/WO2022119822A1/en active Application Filing
- 2021-11-30 CN CN202180080259.XA patent/CN116635853A/zh active Pending
-
2022
- 2022-12-23 US US18/146,120 patent/US11899942B2/en active Active
-
2024
- 2024-01-31 US US18/428,157 patent/US20240201871A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US11899942B2 (en) | 2024-02-13 |
US20240201871A1 (en) | 2024-06-20 |
US20230126741A1 (en) | 2023-04-27 |
WO2022119822A1 (en) | 2022-06-09 |
US11537298B2 (en) | 2022-12-27 |
US20220171545A1 (en) | 2022-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11899942B2 (en) | Memory systems and devices including examples of accessing memory and generating access codes using an authenticated stream cipher | |
US11784827B2 (en) | In-memory signing of messages with a personal identifier | |
US11736276B2 (en) | Delegation of cryptographic key to a memory sub-system | |
US20240176916A1 (en) | Memory systems and devices including examples of generating access codes for memory regions using authentication logic | |
US11249924B2 (en) | Secure data communication with memory sub-system | |
US11423154B2 (en) | Endpoint authentication based on boot-time binding of multiple components | |
US20230336337A1 (en) | Single-use password generation | |
CN113647050B (zh) | 基于块链的存储器命令验证 | |
US12086457B2 (en) | Managing secure writes in semiconductor devices | |
CN115051822A (zh) | 存储器装置在按用户加密中的利用 | |
JP2010039779A (ja) | リーダライタ、情報読み出し方法、通信システムおよび通信方法 |
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 |