CN114174994A - 用于存储器子系统操作的基于硬件的加速器 - Google Patents
用于存储器子系统操作的基于硬件的加速器 Download PDFInfo
- Publication number
- CN114174994A CN114174994A CN202080054495.XA CN202080054495A CN114174994A CN 114174994 A CN114174994 A CN 114174994A CN 202080054495 A CN202080054495 A CN 202080054495A CN 114174994 A CN114174994 A CN 114174994A
- Authority
- CN
- China
- Prior art keywords
- memory subsystem
- memory
- commands
- command
- management units
- 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
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/0604—Improving or facilitating administration, e.g. storage management
-
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- 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/061—Improving I/O performance
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
-
- 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
- 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
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)
- Software Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明描述用于存储器子系统操作的一或多个加速引擎的方法、系统及装置。加速引擎可接收用于对一组管理单元执行操作的第一命令。所述加速引擎可基于接收到所述第一命令而产生一组一或多个第二命令以对所述一组管理单元中的每一管理单元执行所述操作。所述加速引擎可基于产生所述一组第二命令对所述一组管理单元中的每一管理单元执行所述操作。
Description
交叉参考
本专利申请案主张由朱(ZHU)等人在2020年6月30日申请的标题为“用于存储器子系统操作的基于硬件的加速器(HARDWARE BASED ACCELERATOR FOR MEMORY SUB-SYSTEMOPERATIONS)”的第16/916,922号美国专利公开案及由朱等人在2019年7月15日申请的标题为“用于存储器子系统操作的基于硬件的加速器”的第62/874,427号美国临时专利申请案的权益,所述美国专利案中的每一者被转让给其受让人,且其中每一者以其全文引用方式明确并入本文中。
技术领域
下文大体上涉及存储器子系统,且更明确来说,涉及用于存储器子系统操作的基于硬件的加速器。
背景技术
存储器子系统可为存储装置、存储器模块及存储装置与存储器模块的混合。存储器子系统可包含存储数据的一或多个存储器组件。存储器组件可为例如非易失性存储器组件及易失性存储器组件。一般来说,主机系统可利用存储器子系统将数据存储于存储器组件处及从存储器组件检索数据。
附图说明
图1说明根据本公开的一些实施例的计算环境的实例。
图2说明根据本公开的一些实施例的支持用于存储器子系统操作的加速引擎的存储器子系统的实例。
图3说明根据本公开的一些实施例的支持用于存储器子系统操作的加速引擎的数据结构的实例。
图4说明根据本公开的一些实施例的支持用于存储器子系统操作的加速引擎的存储器子系统的实例。
图5及6展示说明根据本公开的一些实施例的用于执行操作的一方法或若干方法的流程图。
图7说明根据本公开的一些实施例的支持用于存储器子系统操作的加速引擎的计算机系统700的实例机器。
具体实施方式
本公开的方面是针对用于存储器子系统的基于硬件的加速器。存储器子系统可为存储装置、存储器模块或存储装置与存储器模块的混合。参考图1描述存储装置及存储器模块的实例。一般来说,主机系统可利用包含一或多个存储器组件的存储器子系统。主机系统可提供将存储在存储器子系统处的数据且可请求将从存储器子系统检索的数据。
主机系统可将存取请求发送给存储器子系统,例如将数据存储在存储器子系统处及从存储器子系统读取数据。将读取及写入的数据在下文称为“用户数据”。主机请求可包含用户数据的逻辑地址(例如,逻辑块地址(LBA)),其是与用户数据相关联的主机系统的位置。逻辑地址(例如,LBA)可为用户数据的元数据的部分。
存储器组件可包含非易失性及易失性存储器装置。非易失性存储器装置是一或多个裸片封装。封装中的裸片可经指派给一或多个通道以与存储器子系统控制器通信。非易失性存储器装置包含分组成页面以存储数据位的胞元(即,存储信息的电子电路)。
非易失性存储器装置可包含例如三维交叉点(“3D交叉点”)存储器装置,其是可连同堆叠式交叉网格数据存取阵列基于体电阻变化执行位存储的非易失性存储器的交叉点阵列。
此类非易失性存储器装置可跨裸片及通道对页面分组以形成管理单元(MU)。MU可包含用户数据及对应元数据。存储器子系统控制器可作为管理单元将用户数据及对应元数据发送给存储器装置及从存储器装置接收用户数据及对应元数据。超级管理单元(SMU)是被一起管理的一或多个MU的群组。举例来说,存储器子系统控制器可对SMU执行媒体管理操作(例如,损耗均衡操作、刷新操作等)。
存储器子系统可对非易失性存储器装置执行操作,例如初始化操作(例如,格式化)及媒体管理操作(例如,缺陷扫描、损耗均衡、刷新)。举例来说,存储器子系统可执行缺陷扫描以确定存储器装置的存储器胞元的故障率。另外或替代地,存储器子系统可执行格式化程序(即,格式化操作),其将固定数据模式写入到非易失性媒体以复位、擦除或预配置存储器装置上的数据。在一些实例中,存储器子系统可执行损耗均衡程序(即,损耗均衡操作)以跨存储器装置分布写入操作以缓解由于存储器子系统的存储器装置磨损的性能降低。
在常规情况中,存储器子系统包含管理初始化操作及媒体管理操作以及监测存储器装置的状态的固件。此常规固件管理可能需要相对较长时间(例如,几个小时、几天)来执行。
本公开的方面通过具有包含用于执行存储器子系统操作的一或多个加速引擎的硬件设计的存储器子系统来解决上文及其它缺点。存储器子系统的基于硬件的加速引擎及所描述技术可实现例如(且不限于)初始化操作(例如,格式化操作)、媒体管理操作(例如,缺陷扫描、损耗均衡程序)及将相对快速执行的类似物的操作,以及例如存储器装置的更高可靠性、降低的处理开销等的其它优点。
硬件可包含具有用于执行本文中描述的操作的专用(即,硬编码)逻辑的数字电路系统。在一些实施例中,硬件是存储器子系统的控制器的部分。存储器子系统可包含基于硬件的加速器,例如命令队列加速引擎。命令队列加速引擎可使存储器子系统控制器的硬件能够在SMU级下执行命令。可执行一个SMU级命令,或可并发执行多个SMU级命令。命令队列加速引擎可将SMU级命令变换成MU级命令。举例来说,命令队列加速引擎可接收用于SMU的写入命令(即,SMU级写入命令)且为SMU的每一MU产生一或多个写入命令(即,MU级写入命令)。命令队列加速引擎可并发执行多个MU级命令。
将MU级命令的处理从固件卸载到硬件(即,命令队列加速引擎硬件)可导致更快操作。举例来说,由硬件处理每一MU命令而非将每一MU级命令传输给固件及从固件传输每一MU级命令可导致带宽减小、命令执行及存储器子系统操作更快、存储器子系统的中央处理单元(CPU)(例如,处理装置)处的处理开销更小以及其它优点。
在参考图1所描述的计算环境的上下文中初始地描述本公开的特征。在参考图2到4所描述的存储器子系统及存储器格式的上下文中描述本公开的特征。本公开的这些及其它特征通过与参考图5到7所描述的用于存储器子系统的加速引擎相关的计算机图及流程图进一步说明及参考所述计算机图及流程图进一步描述。
图1说明根据本公开的一些实施例的计算环境100的实例。计算环境可包含主机系统105及存储器子系统110。存储器子系统110可包含媒体,例如一或多个非易失性存储器装置(例如,存储器装置130)、一或多个易失性存储器装置(例如,存储器装置140)或其组合。
存储器子系统110可为存储装置、存储器模块或存储装置与存储器模块的混合。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器及硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小外形DIMM(SO-DIMM)及非易失性双列直插式存储器模块(NVDIMM)。
计算环境100可包含与存储器系统耦合的主机系统105。存储器系统可为一或多个存储器子系统110。在一些实例中,主机系统105与不同类型的存储器子系统110耦合。图1说明与一个存储器子系统110耦合的主机系统105的一个实例。主机系统105使用存储器子系统110例如以将数据写入到存储器子系统110及从存储器子系统110读取数据。如本文中使用,“耦合到”或“与…耦合”一般是指组件之间的连接,其可为间接通信连接或直接通信连接(例如,没有中介组件),无论是有线还是无线,都包含例如电连接、光学连接、磁性连接等的连接。
主机系统105可为计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、运载工具(例如,飞机、无人机、火车、汽车或其它运输工具)或嵌入式系统、物联网(IoT)装置或包含存储器及处理装置的此计算装置。主机系统105可使用物理主机接口耦合到存储器子系统110。物理主机接口的实例包含(但不限于)串行高级技术附接(SATA)接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行附接SCSI(SAS)等。物理主机接口可用于在主机系统105与存储器子系统110之间传输数据。当存储器子系统110通过PCIe接口与主机系统105耦合时,主机系统105可进一步利用非易失性存储器高速(NVMe)接口来存取存储器组件(例如,存储器装置130)。物理主机接口可提供用于在存储器子系统110与主机系统105之间传递控制、地址、数据及其它信号的接口。
存储器装置可包含不同类型的非易失性存储器装置及/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可为(但不限于)随机存取存储器(RAM),例如动态随机存取存储器(DRAM)及同步动态随机存取存储器(SDRAM)。
非易失性存储器装置的实例(例如,存储器装置130)包含3D交叉点类型快闪存储器,其是非易失性存储器胞元的交叉点阵列。非易失性存储器的交叉点阵列可连同堆叠式交叉网格数据存取阵列基于体电阻变化执行位存储。另外,与许多基于快闪的存储器相比,交叉点非易失性存储器可执行原位写入操作,其中非易失性存储器胞元可被编程,而无需先前擦除非易失性存储器胞元。
尽管描述了例如3D交叉点类型存储器的非易失性存储器组件,但存储器装置130可基于任何其它类型的非易失性存储器,例如与非(NAND)、只读存储器(ROM)、相变存储器(PCM)、自选择存储器、其它硫属化物基存储器、铁电随机存取存储器(FeRAM)、磁随机存取存储器(MRAM)、或非(NOR)快闪存储器及电可擦除可编程只读存储器(EEPROM)。
在一些实施例中,存储器装置130中的每一者可包含一或多个存储器胞元阵列,例如单级胞元(SLC)、多级胞元(MLC)、三级胞元(TLC)、四级胞元(QLC)或此类的组合。在一些实例中,特定存储器组件可包含存储器胞元的SLC部分及MLC部分、TLC部分或QLC部分。存储器胞元中的每一者可存储由主机系统105使用的一或多个数据位。
此外,存储器装置130的存储器胞元可经分组为存储器页面或存储器块,其可指代用于存储数据的存储器组件的单位。存储器页面可跨裸片及通道分组以形成MU。MU可包含用户数据及对应元数据。存储器子系统控制器可作为管理单元将用户数据及对应元数据发送给存储器装置及从存储器装置接收用户数据及对应元数据。超级管理单元(SMU)是被一起管理的一或多个MU的群组。举例来说,存储器子系统控制器可对SMU执行媒体管理操作(例如,损耗均衡操作、刷新操作等)。存储器子系统控制器还可对MU执行媒体管理操作(例如,损耗均衡操作、刷新操作等)。
存储器子系统控制器115可与存储器装置130通信以执行操作,例如在存储器装置130处读取数据、写入数据或擦除数据及其它此类操作。存储器子系统控制器115可包含硬件,例如一或多个集成电路及/或离散组件、缓冲存储器或其组合。存储器子系统控制器115可为微控制器、专用逻辑电路系统(例如,场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或其它合适的处理器。
存储器子系统控制器115可包含经配置以执行存储于本地存储器125中的指令的处理器120(例如,处理装置)。在所说明实例中,存储器子系统控制器115的本地存储器125包含经配置以存储用于执行控制存储器子系统110的操作的各种过程、操作、逻辑流程及例行程序的指令的嵌入式存储器,包含处置存储器子系统110与主机系统105之间的通信。
在一些实例中,本地存储器125可包含存储存储器指针、经提取数据等的存储器寄存器。本地存储器125还可包含用于存储微代码的只读存储器(ROM)。虽然已将图1中的实例存储器子系统110说明为包含存储器子系统控制器115,但在本公开的另一实例中,存储器子系统110不包含存储器子系统控制器115,且可代替地依赖于外部控制(例如,由外部主机提供、或由与存储器子系统分离的处理器或控制器提供)。
一般来说,存储器子系统控制器115可从主机系统105接收命令或操作且可将所述命令或操作转换成指令或适当命令以实现对存储器装置130的所期望存取。存储器子系统控制器115可负责其它操作,例如损耗均衡操作、废弃项目操作、错误检测及错误校正码(ECC)操作、加密操作、高速缓存操作及与存储器装置130相关联的逻辑地址(例如,LBA)与物理地址之间的地址转译。存储器子系统控制器115可进一步包含经由物理主机接口与主机系统105通信的主机接口电路系统。所述主机接口电路系统可将从主机系统接收的命令转换成命令指令以存取存储器装置130,且还将与存储器装置130相关联的响应转换成用于主机系统105的信息。
存储器子系统110还可包含未说明的额外电路系统或组件。在一些实例中,存储器子系统110可包含高速缓存或缓冲器(例如,DRAM)及地址电路系统(例如,行解码器及列解码器),其可从存储器子系统控制器115接收地址且解码所述地址以存取存储器装置130。
在一些实施例中,存储器装置130包含本地媒体控制器135,其连同存储器子系统控制器115操作以对存储器装置130的一或多个存储器胞元执行操作。外部控制器(例如,存储器子系统控制器115)可在外部管理媒体装置130(例如,对媒体装置130执行媒体管理操作)。在一些实施例中,存储器装置130可为本地管理的存储器装置,其是与相同存储器装置封装内的对存储器装置130执行存储器管理操作的本地媒体控制器135组合的原始存储器装置。
存储器子系统110包含加速引擎150,其将用于SMU的命令转换成用于MU的命令以执行与存储器子系统操作相关的操作,如本文中描述。“转换”包含为对应SMU级命令创建一或多个MU级命令。加速引擎150可使操作能够相对较快地执行(例如,格式化操作、例如缺陷扫描的扫描、损耗均衡操作及类似物)以及例如存储器装置的更高可靠性、降低的(例如,处理器120或主机系统105的)处理开销及降低的处理电力使用的其它优点。在一些实施例中,存储器子系统控制器115可包含多个加速引擎150。在一些实例中,存储器子系统控制器115包含加速引擎150的至少一部分。在一些实施例中,加速引擎150是作为主机系统105的部分的硬件。
加速引擎150可为存储器子系统控制器115、本地媒体控制器135或其组合的硬件。硬件可包含具有用于执行本文中描述的操作的专用(即,硬编码)逻辑的数字电路系统。加速引擎150可经配置以接收SMU级命令。SMU级命令可从例如存储器子系统110的固件、存储器子系统控制器115的另一组件或主机系统105接收。加速引擎150(例如,命令队列加速引擎)可基于SMU级命令产生一或多个MU级命令。另外或替代地,加速引擎150可产生或以其它方式确定存储器装置130的一或多个MU、SMU、裸片、页面、通道或其组合的统计。下文描述关于加速引擎150的操作的另外细节。
图2说明根据本公开的一些实施例的支持用于存储器子系统操作的加速引擎的存储器子系统200的实例。在一些实例中,存储器子系统200可实施计算环境100的方面。存储器子系统200可包含一或多个存储器装置205。一些非易失性存储器装置可跨裸片及通道对页面分组以形成管理单元(MU)。MU可包含用户数据及对应元数据。存储器子系统控制器可作为管理单元将用户数据及对应元数据发送给存储器装置205及从存储器装置205接收用户数据及对应元数据。在一些实施例中,MU 215可为裸片、通道、页面、码字、奇偶校验位、存储器胞元或其组合的群组。MU 215可使存储器子系统控制器能够对媒体的经分配群组或区段中的存储器装置205的部分进行管理(例如,执行操作、程序及类似物)。
超级管理单元(SMU)是一或多个MU的群组。举例来说,SMU 210-a可包含MU 215-a及MU 215-b。SMU中的MU被一起管理。举例来说,存储器子系统控制器可对SMU执行初始化及媒体管理操作(例如,损耗均衡操作、刷新操作等)。
在一些实例中,可对存储器装置205执行各种存储器子系统操作。在一些实例中,存储器子系统操作可包含用于识别存储器装置205的有缺陷部分的缺陷扫描、用于存储器装置205以复位或写入数据模式(例如,全0、全1、0及1的经配置模式以及其它模式)的格式化程序、在SMU 210、MU 215或两者之间移动数据(例如,以基于存储器装置205的各个部分的性能分布数据来缓解例如“坏”裸片、MU、SMU、层面、页面、通道或其组合的某些部分中的不良性能的效果)的损耗均衡程序以及其它此类操作。
举例来说,例如加速引擎150的基于硬件的加速器可对存储器装置205执行缺陷扫描。加速引擎150可作为验证操作的部分对存储器装置205进行写入及/或读取以确定每一MU 215的功能性或性能(例如,收集验证信息或统计,例如MU 215-a及MU 215-b的码字的故障位计数(FBC))。另外或替代地,加速引擎可处理统计或数据以标记或以其它方式确定每一MU 215的性能。举例来说,如果统计(例如,平均FBC或最大FBC)满足阈值,那么加速引擎可将MU 215-a的码字标记为“坏”码字。在一些情况中,如果标记为“坏”的MU 215-a的码字数量满足阈值,那么可将MU 215-a标记为“坏”MU。另外或替代地,裸片、通道、SMU等可基于经确定统计满足阈值标记为“坏”。
加速引擎(例如,命令队列加速引擎)可例如从用于SMU 210的存储器子系统200(未展示)的固件接收命令。举例来说,存储器子系统控制器可接收与用于SMU 210-a的格式化操作相关联的写入命令。加速引擎可基于用于SMU的命令产生用于一或多个MU 215的命令。例如,加速引擎可基于接收到的用于SMU 210-a的写入命令产生用于MU 215-a及MU215-b的写入命令。另外,加速引擎可产生或以其它方式确定存储器装置205的一或多个MU215、SMU 210、裸片、页面、通道或其组合的统计(例如,作为缺陷扫描操作的部分)。
图3说明根据本公开的一些实施例的支持用于存储器子系统操作的加速引擎的管理单元数据结构300的实例。在一些实例中,数据结构300可实施计算环境100或存储器子系统200的方面。图3说明用于验证操作的MU的实例数据结构,例如参考图2所描述的MU 215。
一些非易失性存储器装置可跨裸片及通道对页面分组以形成管理单元(MU)。MU可包含用户数据及对应元数据。数据结构300可说明MU跨多个裸片305及通道310的实例布局。举例来说,MU可包含跨裸片305-a及通道310-a、310-b、310-c及310-d的存储器装置的页面。页面可包含与还可称为ECC过程、ECC操作、ECC技术或在一些情况中简称为ECC的例如错误检测程序的验证操作相关的信息。在一些实例中,ECC(例如,块码、卷积码、汉明码、低密度奇偶校验码、turbo码、极性码)可用于错误检测程序中。举例来说,ECC码字有效载荷315-a及ECC奇偶校验位320-a可定位于裸片305-a及通道310-a处,且可用于确定MU的性能(例如,平均FBC、最大FBC等)。
在一些实例中,此类码字及ECC可在错误检测或校正程序中用于确定及/或输出存储器装置的错误检测信息。举例来说,读取操作可利用ECC码字有效载荷315-a及ECC奇偶校验320-a来确定与ECC码字有效载荷315-a相关联的码字的一或多个位或存储器胞元是否正如期望那样执行(例如,存储器胞元的状态是否含有预期状态)。在一些情况中,码字的错误检测信息可汇总或以其它方式合并成用于存储器装置的裸片、通道、页面、MU、SMU或层面的信息(例如,一或多个验证操作的结果),如本文中论述。
在一些情况中,存储器子系统控制器或存储器装置可对例如具有图3中说明的格式的MU的MU执行各种存储器子系统操作(例如,ECC操作)。在一些情况中,存储器子系统控制器的硬件可产生或对一或多个MU执行写入命令、移动命令、读取命令及类似物(例如,作为缺陷扫描、格式化操作、损耗均衡操作或其组合的部分)。
存储器子系统控制器(例如,存储器子系统控制器,例如存储器子系统控制器115、本地媒体控制器135或其组合)或存储器装置(例如,存储器装置205)可包含经配置以执行此类操作或命令的一或多个加速引擎(例如,存储器装置的硬件或存储器子系统控制器)。举例来说,存储器子系统控制器可包含经配置以从存储器装置的固件接收用于SMU的命令的加速引擎(例如,命令队列加速引擎)。存储器子系统控制器可接收与SMU的ECC操作相关联的读取命令。加速引擎可基于用于SMU的命令产生用于一或多个MU的命令。例如,加速引擎可产生用于图3中说明的MU的每一码字的对应读取命令。另外或替代地,存储器子系统控制器或存储器装置可包含经配置以产生或以其它方式确定存储器装置的一或多个MU、SMU、裸片305、页面、通道310或其组合的统计的加速引擎。举例来说,加速引擎可基于由用于SMU的每一MU的ECC操作确定的数据产生或接收统计,且将所述统计汇总到用于SMU的群组统计中。
图4说明根据本公开的一些实施例的支持用于存储器子系统操作的加速引擎的存储器子系统400的实例。在一些实例中,存储器子系统400可实施计算环境100、存储器子系统200、数据结构300或其组合的方面。图4说明具有加速引擎410的实例存储器子系统,所述加速引擎可使存储器子系统能够通过将各个过程卸载到存储器装置或子系统的的硬件(例如加速引擎410)来相对更快更有效且以更小处理开销执行存储器子系统操作。
存储器子系统400可为如参考图1所描述的存储器子系统110的实例。存储器子系统400可包含存储器控制器405。存储器控制器405可为如参考图1所描述的存储器子系统控制器115、本地媒体控制器135的实例。存储器控制器405可包含一或多个加速引擎410(例如,如参考图1所描述的加速引擎150),例如命令队列加速引擎410-a、状态收集器加速引擎410-b或两者。存储器控制器405还可包含缓冲器415,其可为存储器控制器405可本地存取的存储器存储装置的实例。在一些情况中,缓冲器415可为如参考图1所描述的本地存储器125的实例。存储器控制器405还可包含ECC引擎425,其可为经配置以收集MU的码字的ECC信息(例如,验证数据及/或故障数据)的硬件引擎(例如,解码器)的实例。
存储器子系统400可包含媒体420。媒体420可包含如参考图1所描述的存储器装置130或存储器装置140及/或如参考图2所描述的存储器装置205的方面。举例来说,媒体420可包含SMU(例如,SMU 210)及MU(例如,MU 215)。媒体420可与存储器控制器405以及存储器子系统400的其它各个组件通信。
在一些实例中,可在存储器子系统400中执行存储器子系统操作。举例来说,可对媒体420的部分(例如,媒体420的SMU)执行存储器子系统操作。在一些实例中,存储器子系统操作可包含用于识别媒体420的有缺陷部分的缺陷扫描。另外或替代地,存储器子系统操作可包含用于复位或写入媒体420的部分的数据模式(例如,全0、全1、0及1的经配置模式以及其它模式)的格式化操作。另外或替代地,存储器子系统操作可包含损耗均衡操作,其在媒体420的部分之间移动数据例如以基于媒体420的SMU或MU的性能分布数据以便缓解具有相对不良FBC统计的例如“坏”裸片、MU、SMU、层面、页面、通道或其组合的SMU或MU的效应。
存储器子系统400可包含加速引擎410。加速引擎410可为存储器子系统的硬件(例如,存储器装置或存储器控制器405的硬件)。在一些实例中,加速引擎410可为如参考图1所描述的加速引擎150的实例。加速引擎410可经配置以执行存储器子系统操作的方面,此可实现相对更快执行、更小处理开销(例如,通过执行过程而非在处理单元430处处理的固件)以及其它优点。在一些实例中,可在存储器子系统400中个别地实施加速引擎。在一些实例中,加速引擎可一起实施在存储器子系统400中。在一些其它实例中,加速引擎410的功能可由单个加速引擎410实施。在任何情况中,如本文中所描述的每一加速引擎410的各个功能可按不同顺序或由存储器子系统400的不同组件实施。
加速引擎410-a可为命令队列加速引擎的实例。加速引擎410-a可例如从存储器子系统的固件(例如,处理单元430的固件)接收与存储器子系统操作相关联的读取、写入或移动SMU命令。举例来说,加速引擎410-a可接收用于媒体420的SMU的命令。加速引擎410-a可产生用于SMU的一或多个MU的一或多个对应命令。举例来说,加速引擎410-a可基于用于SMU的命令而产生及/或发出用于MU的一或多个码字或存储器胞元的命令。在一些情况中,加速引擎410-a可产生用于SMU的一些或全部MU的此类命令。
存储器子系统的固件可发送用于媒体420的SMU的写入命令作为格式化操作的部分。命令可包含用于将SMU的数据格式化成固定模式的指令。举例来说,数据可经格式化成全0、全1或0及1的经配置模式。加速引擎410-a可基于用于SMU的写入命令产生用于MU的一或多个写入命令。举例来说,加速引擎410-a可将写入命令发出到SMU的每一MU以将每一MU的数据格式化成固定模式。在一些实例中,写入信息可指定所述模式或将写入的数据状态。举例来说,加速引擎410-a可检索指示将写入到一或多个状态(例如,全0)的MU的那些数据的写入信息。在一些情况中,写入信息可从固件发送给加速引擎410-a。在一些其它情况中,加速引擎410-a可从存储器组件435接收或检索写入信息(例如,写入信息可存储于存储器组件435上)。在一些情况中,存储器组件435可为芯片上静态RAM或DRAM(OnChipSRAM或DRAM)组件的实例。另外或替代地,写入信息可存储于缓冲器415上。将写入信息存储于缓冲器415上可减少格式化SMU所需的时间(例如,当将写入到SMU的每一MU的数据或数据模式相同时)。举例来说,因为缓冲器415可为本地可存取存储器(即,定位于存储器控制器405中),存储及检索来自缓冲器415的写入信息可相对快于从存储器组件435检索用于每一MU的写入信息。
在一些实例中,固件可发送用于媒体420的SMU的读取命令。在此类实例中,加速引擎410-a可基于用于SMU的读取命令产生用于MU的一或多个读取命令。举例来说,加速引擎410-a可将读取命令发出到SMU的每一MU以获得SMU的每一MU的读取数据。读取数据可发送给缓冲器415及/或存储器组件435。另外或替代地,存储器子系统的硬件(例如,加速引擎410-b)可基于读取数据产生统计(例如,FBC统计)且将所述统计传输给固件,例如,作为验证操作的部分。
加速引擎410-a可并发处理多个SMU级或MU级命令。举例来说,加速引擎410-a可接收用于多个SMU的读取、写入或移动命令。加速引擎410-a可针对每一SMU级命令并发产生及/或发出一组对应命令。一组可包含一或多个命令。另外或替代地,加速引擎410-a可并发处理用于SMU的一组命令中的多个命令。即,加速引擎410-a可并发产生及/或发出用于SMU的每一MU的多个命令。在一些实例中,并发MU级命令的数量可为可编程的,例如以调整存储器子系统操作的速度、动态地响应于硬件的带宽要求以及其它优点。
在一些实例中,加速引擎410-b可为状态收集器加速引擎的实例。举例来说,加速引擎410-b可为经配置以从一或多个ECC引擎425接收状态信息的硬件。状态信息可为基于读取命令(例如,存取命令)、读取统计、验证信息或统计(例如,来自如本文中描述的一或多个ECC程序的错误检测信息或统计)及类似物的读取数据。加速引擎410-b可基于来自ECC引擎425的状态信息确定MU、SMU、裸片、层面或其组合的统计。由例如存储器子系统控制器的硬件(例如,而非固件)执行此类功能可实现更快操作时间。
举例来说,加速引擎410-b可从ECC引擎425接收验证信息。即,ECC引擎425可输出MU的码字的码字信息。例如,ECC引擎425-a可执行一或多个验证操作(例如,ECC操作)以获得码字信息(例如,MU的码字的统计)。在一些实例中,码字信息可包含码字的一或多个FBC(例如,0到1FBC、1到0FBC或两者)、码字的1的数目、码字的0的数目或其它此类度量。在一些情况中,加速引擎410-b可接收码字信息,例如,作为缺陷扫描操作的部分。
加速引擎410-b可处理来自ECC引擎425的信息。举例来说,加速引擎410-b可将码字信息(例如,包含SMU的MU的码字统计)合并到群组统计中。群组统计可为对应于存储器装置的MU、SMU、裸片、层面或其组合的统计。举例来说,群组统计可包含从码字信息(例如,与SMU中的每一MU的码字相关联的读取数据或统计)确定的一或多个MU的平均FBC、一或多个MU的最大FBC或其它此类统计。在一些实例中,群组统计可包含基于经合并码字信息(例如,0到1FBC、1到0FBC、1或0的数目或裸片或层面的所有码字的此类度量的组合)的裸片或层面级直方图。加速引擎410-b可丢弃用于汇总群组统计的信息或数据(例如,MU的码字信息及其它读取数据)例如以减小将大量MU级数据发送给固件的通信带宽。加速引擎410-b可将群组统计发送给固件。在一些情况中,固件可基于群组统计确定及标记MU、SMU、裸片或层面的性能。在一些其它情况中,加速引擎410-b可确定及标记所述性能且将所述性能的指示发送给固件。
加速引擎410-b可将此类信息或统计(例如,群组统计、来自ECC引擎425的码字信息或与一或多个MU相关联的其它读取数据)用作一或多个存储器子系统操作的参数。举例来说,媒体管理算法可将统计用作输入以调整存储器子系统、存储器装置、算法或操作的一或多个参数。举例来说,用于作为损耗均衡操作的部分确定数据分配的算法可使用统计来确定媒体420的哪些部分是相对“磨损的”(例如,标记为“坏”)。算法可相应地确定将数据从一个SMU或MU移动到另一SMU或MU。例如,固件可发出SMU移动命令以将数据从“坏”SMU传送到相对“好”SMU。在一些实例中,加速引擎410-a可将SMU移动命令拆成一或多个MU移动命令。
在一些情况中,存储器子系统400可包含加速引擎410-a及410-b两者。举例来说,媒体420的缺陷扫描可包含写入命令及读取命令两者。固件可将用于SMU的写入命令发出给加速引擎410-a。加速引擎410-a可将用于SMU的写入命令划分成用于SMU的一或多个MU的一或多个写入命令。作为实例,写入命令可为0到1写入命令、1到0写入命令或两者。固件还可发出读取命令,例如以验证写入到SMU的数据或数据模式被正确写入及/或读取。加速引擎410-a可将用于SMU的读取命令划分成用于SMU的一或多个MU的一或多个读取命令。存储器控制器的硬件(例如,ECC引擎425)可基于MU级写入命令及MU级读取命令执行验证操作以将数据输出给加速引擎410-b。加速引擎410-b可将数据合并到群组统计中且将所述群组统计传输给固件。
图5展示说明根据本公开的一些实施例的用于对一组管理单元执行操作的一方法或若干方法500的流程图。方法500可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微代码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法500由图1的基于硬件的加速引擎150执行。硬件可包含例如具有用于执行本文中描述的操作的专用(即,硬编码)逻辑的数字电路系统的处理逻辑。
尽管依特定顺序或次序展示,但除非另外指定,否则操作的次序是可修改的。因此,所说明实施例仅应被理解为实例,且所说明操作可依不同次序执行,且一些操作可并行执行。另外,在各个实施例中,可省略一或多个操作。因此,并非在每个实施例中都需要所有操作。其它操作流程是可能的。
在505,所述处理逻辑接收用于对存储器子系统的一组管理单元执行操作的第一命令。命令可从存储器子系统的固件或存储器子系统控制器的另一组件接收。在一些实例中,存储器子系统可为3DXP子系统。在一些实例中,第一命令包含用于一组管理单元的读取命令。在一些实例中,第一命令包含用于一组管理单元的写入命令。在一些实例中,第一命令包含用于一组管理单元的移动命令。
在510,所述处理逻辑基于接收到第一命令而产生一组一或多个第二命令以对一组管理单元中的每一管理单元执行操作。在一些实例中,所述一组一或多个第二命令包含用于所述一组管理单元中的每一管理单元的一或多个读取命令。在一些实例中,所述处理逻辑可接收执行操作的第一命令的写入信息,所述写入信息指示将写入到所述存储器子系统的一或多个存储器胞元的至少一个状态。在一些实例中,所述一组一或多个第二命令包含用于一组管理单元中的每一管理单元的一或多个写入命令。在一些实例中,所述一组一或多个第二命令中的第二命令包含用于所述一组管理单元中的每一管理单元的一或多个移动命令。
在515,所述处理逻辑基于产生所述一组一或多个第二命令对所述一组管理单元中的每一管理单元执行操作。在一些实例中,所述处理逻辑可基于所述一组一或多个第二命令对所述一组管理单元中的每一管理单元执行读取操作(例如,一或多个第二命令可包含读取命令)。所述处理逻辑可基于执行读取操作收集读取统计,其中执行操作包含收集读取统计。另外或替代地,所述处理逻辑可将读取统计发送给存储器子系统的缓冲器且将读取统计合并到与所述一组管理单元、存储器子系统的裸片或存储器子系统的层面相关联的群组读取统计中。在一些实例中,所述处理逻辑可将所述群组读取统计传输给存储器子系统的固件。在一些实例中,所述处理逻辑可至少部分基于所述群组读取统计调整媒体管理算法的一或多个参数,如本文中描述。
在一些实例中,所述处理逻辑可基于接收到写入信息将写入信息(例如,在505接收到)写入于所述一组管理单元中的管理单元上,其中执行操作包括写入写入信息。在一些实例中,所述处理逻辑可基于所述一组一或多个第二命令而将数据从所述一组管理单元移动到第二组管理单元,其中操作包含损耗均衡操作。在一些实例中,对每一管理单元执行操作可包含对所述一组管理单元中的多个管理单元并发执行操作。在一些实例中,并发处理的多个管理单元的数量是可配置的。
在一些实例中,所述处理逻辑可对存储器子系统的第二组管理单元执行第二操作且产生一组第四命令以对所述第二组管理单元中的每一管理单元执行第二操作,其中存储器子系统与产生所述一组一或多个第二命令并发地产生一组第四命令。在一些实例中,每一管理单元包含与存储器子系统的一或多个裸片及通道相关联的页面。在一些实例中,一或多个裸片存储一组码字、奇偶校验位或其组合。
图6展示说明根据本公开的一些实施例的用于对一组管理单元执行操作的一方法或若干方法600的流程图。方法600可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微代码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法600由图1的基于硬件的加速引擎150执行。硬件可包含例如具有用于执行本文中描述的操作的专用(即,硬编码)逻辑的数字电路系统的处理逻辑。
尽管依特定顺序或次序展示,但除非另外指定,否则操作的次序是可修改的。因此,所说明实施例仅应被理解为实例,且所说明操作可依不同次序执行,且一些操作可并行执行。另外,在各个实施例中,可省略一或多个操作。因此,并非在每个实施例中都需要所有操作。其它操作流是可能的。
在605,所述处理逻辑接收第一命令以对存储器子系统的一组管理单元执行格式化操作。命令可从存储器子系统的固件或存储器子系统控制器的另一组件接收。
在610,所述处理逻辑基于接收到第一命令而将第一命令划分成一组第二命令以对一组管理单元中的每一管理单元执行格式化操作。
在615,所述处理逻辑接收执行格式化操作的第一命令的写入信息,写入信息指示将写入到存储器子系统的一或多个存储器胞元的至少一个状态。命令可从存储器子系统的固件或存储器子系统控制器的另一组件接收。
在620,所述处理逻辑基于所述一组第二命令及接收到写入信息而对所述一组管理单元中的每一管理单元执行格式化操作。
在一些实例中,处理逻辑可:基于执行格式化操作对所述一组管理单元中的每一管理单元执行一或多个验证操作;基于执行所述一或多个验证操作收集与每一管理单元相关联的验证数据,所述验证数据指示写入有至少一种状态的存储器胞元的数量;及将验证数据传输给存储器子系统的固件。
应注意,上文描述的方法描述可能实施方案,且操作及步骤可经重新布置或以其它方式修改且其它实施方案是可能的。此外,可组合来自方法中的两者或更多者的部分。
图7说明根据本公开的一些实施例的支持用于存储器子系统操作的加速引擎的计算机系统700的实例机器。计算机系统700可包含用于导致机器执行本文中描述的技术中的任一者或多者的一组指令。在一些实例中,计算机系统700可对应于主机系统(例如,参考图1描述的主机系统105),所述主机系统包含存储器子系统(例如,参考图1描述的存储器子系统110)、与所述存储器子系统耦合或利用所述存储器子系统或可用于执行控制器的操作(例如,执行操作系统以执行对应于参考图1描述的加速引擎150的操作)。在一些实例中,机器可与LAN、内部网络、外部网络及/或因特网中的其它机器连接(例如,联网)。机器可在客户端-服务器网络环境中以服务器或客户端机器的身份操作,在对等(或分布式)网络环境中作为对等机器,或在云计算基础设施或环境中作为服务器或客户端机器。
所述机器可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络设施、服务器、网络路由器、交换机或网桥,或能够执行指定将由那个机器采取的动作的一组指令(循序指令或其它指令)的任何机器。此外,虽然说明了单个机器,但术语“机器”还可包含个别或联合执行一组(或多组)指令以执行本文中论述的方法论中的任一或多者的机器的任何集合。
实例计算机系统700可包含处理装置705、主存储器710(例如,只读存储器(ROM)、快闪存储器、例如同步DRAM(SDRAM)或RDRAM等的DRAM)、静态存储器715(例如,快闪存储器、静态随机存取存储器(SRAM))等)及数据存储系统725,其经由总线745彼此通信。
处理装置705表示一或多个通用处理装置,例如微处理器、中央处理单元或类似物。更特定来说,处理装置可为复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或实施其它指令集的处理器或实施指令集组合的处理器。处理装置705也可为一或多个专用处理装置,例如专用集成电路(ASIC)、场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器或类似物。处理装置705经配置以执行用于执行本文中论述的操作及步骤的指令735。计算机系统700可进一步包含网络接口装置720以经由网络740通信。
数据存储系统725可包含在其上存储体现本文中描述的任何一或多种方法或功能的一或多组指令735或软件的机器可读存储媒体730(也被称为计算机可读媒体)。指令735还可在由计算机系统700执行其期间完全或至少部分驻存于主存储器710内及/或处理装置705内,主存储器710及处理装置705也构成机器可读存储媒体。机器可读存储媒体730、数据存储系统725及/或主存储器710可对应于存储器子系统。
在一个实例中,指令735包含用于实施对应于加速引擎750(例如,参考图1描述的加速引擎150)的功能性的指令。虽然将机器可读存储媒体730展示为单个媒体,但术语“机器可读存储媒体”可包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还可包含能够存储或编码由机器执行的一组指令且致使机器执行本公开的方法论中的任一或多者的任何媒体。术语“机器可读存储媒体”可包含(但不限于)固态存储器、光学媒体及磁性媒体。
本文中描述的信息及信号可使用各种不同工艺及技术中的任何者表示。举例来说,在整个以上描述中可引用的数据、指令、命令、信息、信号、位、符号及芯片可由电压、电流、电磁波、磁场或磁性粒子、光场或光学粒子或其任何组合表示。一些图可将信号说明为单个信号;然而,所属领域的一般技术人员应理解,信号可表示信号总线,其中总线可具有多种位宽度。
如本文中使用,术语“虚拟接地”指代保持在约零伏特(0V)的电压下但不与接地直接耦合的电路的节点。因此,虚拟接地的电压可暂时波动且在稳态下返回到约0V。虚拟接地可使用各种电子电路元件(例如由运算放大器及电阻器组成的分压器)实施。其它实施方案也是可能的。“虚拟接地”或“虚拟地接地”意味着连接到约0V。
术语“电子通信”、“导电触点”、“连接”及“耦合”可指代组件之间支持组件之间的信号流动的关系。如果在组件之间存在可在任何时间支持组件之间的信号流动的任何导电路径,那么认为组件彼此电子通信(或彼此导电接触或彼此连接或彼此耦合)。在任何给定时间,彼此电子通信(或彼此导电接触或彼此连接或彼此耦合)的组件之间的导电路径基于包含经连接组件的装置的操作可为开路或闭路。经连接组件之间的导电路径可为组件之间的直接导电路径,或经连接组件之间的导电路径可为可包含中间组件(例如开关、晶体管或其它组件)的间接导电路径。在一些情况中,经连接组件之间的信号流动可例如使用一或多个中间组件(例如开关或晶体管)中断一段时间。
术语“耦合”指代从组件之间的开路关系(其中信号目前不能通过导电路径在组件之间传递)移动到组件之间的闭路关系(其中信号能够通过导电路径在组件之间传递)的状况。当例如控制器的组件将其它组件耦合在一起时,组件起始允许信号通过先前不允许信号流动的导电路径在其它组件之间流动的改变。
术语“隔离”指代组件之间的一种关系,其中信号目前不能在组件之间流动。如果在其之间存在开路,那么组件彼此隔离。举例来说,当开关断开时,那么通过定位在组件之间的开关分离的两个组件彼此隔离。当控制器隔离两个组件时,那么控制器影响防止信号使用先前准许信号流动的导电路径在组件之间流动的变化。
本文论述的装置,包含存储器阵列,可经形成在半导体衬底上,例如硅、锗、硅锗合金、砷化镓、氮化镓等。在一些情况中,衬底是半导体晶片。在其它情况中,衬底可为绝缘体上硅(SOI)衬底,例如玻璃上硅(SOG)或蓝宝石上硅(SOP)或另一衬底上的半导体材料的外延层。衬底或衬底的子区域的导电性可通过使用各种化学物种(包含(但不限于)磷、硼或砷)进行掺杂而控制。掺杂可在衬底的初始形成或生长期间通过离子植入或通过任何其它掺杂方法而执行。
本文中论述的开关组件或晶体管可表示场效晶体管(FET),且包括包含源极、漏极及栅极的三端子装置。端子可通过导电材料(例如金属)连接到其它电子元件。源极及漏极可为导电的且可包括重掺杂(例如简并)半导体区域。源极及漏极可通过轻掺杂半导体区域或沟道分离。如果沟道是n型(即,多数载子是信号),那么FET可称为n型FET。如果沟道是p型(即,多数载子是空穴),那么FET可称为p型FET。沟道可由绝缘栅极氧化物覆盖。沟道导电性可通过将电压施加到栅极来控制。举例来说,分别将正电压或负电压施加到n型FET或p型FET可导致沟道变成导电的。当大于或等于晶体管的阈值电压的电压被施加到晶体管栅极时,晶体管可“接通”或“激活”。当小于晶体管的阈值电压的电压被施加到晶体管栅极时,晶体管可“断开”或“取消激活”。
本文中陈述的描述连同附图描述实例配置且并不代表可实施或在权利要求书的范围内的所有实例。本文中使用的术语“示范性”意味着“用作实例、例子或说明”,而非“优选的”或“优于其它实例”。具体实施方式包含用于提供对所描述技术的理解的特定细节。然而,可在没有这些具体细节的情况下实践这些技术。在一些例子中,以框图形式展示众所周知的结构及装置,以避免模糊所描述实例的概念。
在附图中,类似组件或特征可具有相同的参考标记。此外,可通过在参考标记之后加上虚线及在类似组件当中进行区分的第二标记而区分相同类型的各种组件。如果在说明书中仅使用第一参考标记,那么所述描述适用于具有相同第一参考标记的类似组件中的任一者,而与第二参考标记无关。
结合本文中的公开内容描述的各种说明性块及模块可用通用处理器、DSP、ASIC、FPGA或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或经设计以执行本文中描述的功能的其任何组合来实施或执行。通用处理器可为微处理器,但在替代例中,处理器可为任何处理器、控制器、微控制器或状态机。处理器还可被实施为计算装置的组合(例如,DSP与微处理器的组合、多个微处理器、结合DSP核心的一或多个微处理器,或任何其它此配置)。
本文中描述的功能可经实施于由处理器、固件或其任何组合执行的硬件、软件中。如果实施于由处理器执行的软件中,那么功能可作为一或多个指令或代码被存储在计算机可读媒体上或作为一或多个指令或代码经由计算机可读媒体传输。其它实例及实施方案在本公开及所附权利要求书的范围内。举例来说,由于软件的性质,上文描述的功能可使用由处理器、硬件、固件、硬接线或这些任何者的组合执行的软件实施。实施功能的特征也可物理地定位在各个位置处,包含经分布使得功能的部分在不同物理位置处实施。而且,如本文中使用,包含在权利要求书中,如项目列表(例如,由例如“…中的至少一者”或“…中的一或多者”的短语开头的项目列表)中所使用的“或”指示包含列表,使得(例如)A、B或C中的至少一者的列表意味着A或B或C或AB或AC或BC或ABC(即,A及B及C)。而且,如本文中使用,短语“基于”不应被解释为对条件闭集的引用。举例来说,被描述为“基于条件A”的示范性步骤可为基于条件A及条件B两者而不脱离本公开的范围。换句话说,如本文中使用,短语“基于”应以与短语“至少部分基于”相同的方式来解释。
计算机可读媒体包括非暂时性计算机存储媒体及通信媒体两者,通信媒体包含促进将计算机程序从一个地方传送到另一个地方的任何媒体。非暂时性存储媒体可为可由通用或专用计算机存取的任何可用媒体。通过实例而非限制,非暂时性计算机可读媒体可包括RAM、ROM、电可擦除可编程只读存储器(EEPROM)、光盘(CD)ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置或可用于载送或存储呈指令或数据结构形式的所期望程序代码构件且可由通用或专用计算机或通用或专用处理器存取的任何其它非暂时性媒体。而且,任何连接都适当地称为计算机可读媒体。举例来说,如果使用同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或无线技术(例如红外、无线电及微波)从网站、服务器或其它远程源传输软件,那么媒体定义中包含同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或无线技术(例如红外、无线电及微波)。如本文中使用,磁盘及光碟包含CD、激光盘、光盘、数字多功能盘(DVD)、软盘及蓝光盘,其中磁盘通常磁性地再现数据,而光碟用激光光学地再现数据。上述内容的组合也包含在计算机可读媒体的范围内。
提供本文中的描述以使所属领域的技术人员能够制作或使用本公开。所属领域的技术人员将明白对本公开的各种修改,且在不脱离本公开的范围的情况下,本文中定义的一般原理可应用到其它变动。因此,本公开不限于本文中描述的实例及设计,而是应符合与本文中公开的原理及新型特征一致的最广范围。
Claims (20)
1.一种方法,其包括:
接收用于对存储器子系统的一组管理单元执行操作的第一命令;
至少部分基于接收到所述第一命令而产生一组一或多个第二命令以对所述一组管理单元中的每一管理单元执行所述操作;及
至少部分基于产生所述一组一或多个第二命令对所述一组管理单元中的每一管理单元执行所述操作。
2.根据权利要求1所述的方法,其进一步包括:
至少部分基于所述一组一或多个第二命令对所述一组管理单元中的每一管理单元执行读取操作;及
至少部分基于执行所述读取操作收集读取统计,其中执行所述操作包括收集所述读取统计。
3.根据权利要求2所述的方法,其进一步包括:
将所述读取统计发送给所述存储器子系统的缓冲器;及
将所述读取统计合并到与所述一组管理单元、所述存储器子系统的裸片或所述存储器子系统的层面相关联的群组读取统计中。
4.根据权利要求3所述的方法,其进一步包括:
将所述群组读取统计传输给所述存储器子系统的固件。
5.根据权利要求3所述的方法,其进一步包括:
至少部分基于所述群组读取统计调整媒体管理算法的一或多个参数。
6.根据权利要求2所述的方法,其中所述第一命令包括用于所述一组管理单元的读取命令,且所述一组一或多个第二命令包括用于所述一组管理单元中的每一管理单元的一或多个读取命令。
7.根据权利要求1所述的方法,其进一步包括:
接收执行所述操作的所述第一命令的写入信息,所述写入信息指示将写入到所述存储器子系统的一或多个存储器胞元的至少一个状态;及
至少部分基于接收到所述写入信息将所述写入信息写入于所述一组管理单元中的管理单元上,其中执行所述操作包括写入所述写入信息。
8.根据权利要求7所述的方法,其中所述第一命令包括用于所述一组管理单元的写入命令,且所述一组一或多个第二命令包括用于所述一组管理单元中的每一管理单元的一或多个写入命令。
9.根据权利要求1所述的方法,其进一步包括:
至少部分基于所述一组一或多个第二命令将数据从所述一组管理单元移动到第二组管理单元,其中所述操作包括损耗均衡操作。
10.根据权利要求9所述的方法,其中所述第一命令包括用于所述一组管理单元的移动命令,且所述一组一或多个第二命令中的第二命令包括用于所述一组管理单元中的每一管理单元的一或多个移动命令。
11.根据权利要求1所述的方法,其中对每一管理单元执行所述操作进一步包括:
对所述一组管理单元中的多个管理单元并发执行所述操作。
12.根据权利要求11所述的方法,其中并发处理的所述多个管理单元的数量是可配置的。
13.根据权利要求1所述的方法,其进一步包括:
接收用于对所述存储器子系统的第二组管理单元执行第二操作的第三命令;及
产生一组第四命令以对所述第二组管理单元中的每一管理单元执行所述第二操作,其中所述存储器子系统与产生所述一组一或多个第二命令并发地产生所述一组第四命令。
14.根据权利要求1所述的方法,其中每一管理单元包括与所述存储器子系统的一或多个裸片及通道相关联的页面。
15.根据权利要求14所述的方法,其中所述一或多个裸片存储多个码字、奇偶校验位或其组合。
16.根据权利要求1所述的方法,其中所述存储器子系统是三维交叉点(3DXP)子系统。
17.一种方法,其包括:
接收第一命令以对存储器子系统的一组管理单元执行格式化操作;
至少部分基于接收到所述第一命令而将所述第一命令划分成多个第二命令以对所述一组管理单元中的每一管理单元执行所述格式化操作;
接收执行所述格式化操作的所述第一命令的写入信息,所述写入信息指示将写入到所述存储器子系统的一或多个存储器胞元的至少一个状态;及
至少部分基于所述多个第二命令及接收到所述写入信息对所述一组管理单元中的每一管理单元执行所述格式化操作。
18.根据权利要求17所述的方法,其进一步包括:
至少部分基于所述执行所述格式化操作对所述一组管理单元中的每一管理单元执行一或多个验证操作;
至少部分基于执行所述一或多个验证操作收集与每一管理单元相关联的验证数据,所述验证数据指示写入有所述至少一个状态的存储器胞元的数量;及
将所述验证数据传输给所述存储器子系统的固件。
19.一种存储代码的非暂时性计算机可读媒体,所述代码包括可由处理器执行以进行以下动作的指令:
接收用于对存储器子系统的一组管理单元执行操作的第一命令;
至少部分基于接收到所述第一命令而产生一组一或多个第二命令以对所述一组管理单元中的每一管理单元执行所述操作;及
至少部分基于产生所述一组一或多个第二命令对所述一组管理单元中的每一管理单元执行所述操作。
20.根据权利要求19所述的计算机可读媒体,其中所述代码进一步可操作以致使所述处理器:
至少部分基于所述一组一或多个第二命令对所述一组管理单元中的每一管理单元执行读取操作;及
至少部分基于执行所述读取操作收集读取统计,其中执行所述操作包括收集所述读取统计。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962874427P | 2019-07-15 | 2019-07-15 | |
US62/874,427 | 2019-07-15 | ||
US16/916,922 US20210019051A1 (en) | 2019-07-15 | 2020-06-30 | Hardware based accelerator for memory sub-system operations |
US16/916,922 | 2020-06-30 | ||
PCT/US2020/041052 WO2021011237A1 (en) | 2019-07-15 | 2020-07-07 | Hardware based accelerator for memory sub-system operations |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114174994A true CN114174994A (zh) | 2022-03-11 |
Family
ID=74209932
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080054495.XA Pending CN114174994A (zh) | 2019-07-15 | 2020-07-07 | 用于存储器子系统操作的基于硬件的加速器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20210019051A1 (zh) |
CN (1) | CN114174994A (zh) |
WO (1) | WO2021011237A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115033188B (zh) * | 2022-08-10 | 2022-11-15 | 武汉麓谷科技有限公司 | 一种基于zns固态硬盘的存储硬件加速模块系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4910064B2 (ja) * | 2010-08-31 | 2012-04-04 | 株式会社東芝 | 記憶制御装置、記憶装置、及びデータ移動制御方法 |
US9806547B2 (en) * | 2011-09-29 | 2017-10-31 | Texas Instruments Incorporated | Circuits, devices, methods and systems to secure power-up for battery operating devices even with low current chargers and to execute other performances |
US9632926B1 (en) * | 2013-05-16 | 2017-04-25 | Western Digital Technologies, Inc. | Memory unit assignment and selection for internal memory operations in data storage systems |
KR20170059049A (ko) * | 2015-11-19 | 2017-05-30 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
KR102293069B1 (ko) * | 2017-09-08 | 2021-08-27 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 제어기를 포함하는 스토리지 장치, 제어기, 그리고 스토리지 장치의 동작 방법 |
US10620870B2 (en) * | 2017-12-08 | 2020-04-14 | Intel Corporation | Data storage device with bytewise copy |
-
2020
- 2020-06-30 US US16/916,922 patent/US20210019051A1/en not_active Abandoned
- 2020-07-07 CN CN202080054495.XA patent/CN114174994A/zh active Pending
- 2020-07-07 WO PCT/US2020/041052 patent/WO2021011237A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2021011237A1 (en) | 2021-01-21 |
US20210019051A1 (en) | 2021-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11650933B2 (en) | Classifying access frequency of a memory sub-system component | |
US20230185728A1 (en) | Data alignment for logical to physical table compression | |
US11861167B2 (en) | Maintenance operations for memory devices | |
US11782606B2 (en) | Scanning techniques for a media-management operation of a memory sub-system | |
US11755490B2 (en) | Unmap operation techniques | |
CN114550789A (zh) | 使用信令进行状态检查 | |
CN114174994A (zh) | 用于存储器子系统操作的基于硬件的加速器 | |
US12013789B2 (en) | Flexible information compression at a memory system | |
US11720253B2 (en) | Access of a memory system based on fragmentation | |
US20230068324A1 (en) | Direct logical-to-physical address mapping | |
US11955203B2 (en) | Techniques to mitigate memory die misalignment | |
US11392292B2 (en) | Maintenance operations for memory devices | |
US11288013B2 (en) | Hardware based status collector acceleration engine for memory sub-system operations | |
US12001727B2 (en) | Techniques for managed NAND translation with embedded memory systems | |
US11797385B2 (en) | Managing information protection schemes in memory systems | |
US20240193095A1 (en) | Sorted change log for physical page table compression | |
US20240053925A1 (en) | Caching for multiple-level memory device | |
US20220300374A1 (en) | Redundant array management techniques | |
US20240184488A1 (en) | App launch detection from read chunk analysis | |
US20230376225A1 (en) | Techniques for memory system rebuild | |
WO2022193271A1 (en) | Techniques for afragment cursor |
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 |