CN115836277A - 检查存储器子系统中的多个存储器裸片的状态 - Google Patents
检查存储器子系统中的多个存储器裸片的状态 Download PDFInfo
- Publication number
- CN115836277A CN115836277A CN202180048745.3A CN202180048745A CN115836277A CN 115836277 A CN115836277 A CN 115836277A CN 202180048745 A CN202180048745 A CN 202180048745A CN 115836277 A CN115836277 A CN 115836277A
- Authority
- CN
- China
- Prior art keywords
- memory
- state
- bit
- bit value
- cell
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or 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/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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7207—Details relating to flash memory management management of metadata or control data
-
- 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/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
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)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
存储器子系统中的处理装置确定是否检查存储器装置的一或多个存储器裸片的状态且将多单元状态命令发送到所述存储器装置,所述多单元状态命令指定与所述存储器装置的所述一或多个存储器裸片相关联的多个存储器单元。所述处理装置另外接收对所述多单元状态命令的响应,所述响应包括多位值,所述多位值包括多个位,其中所述多个位中的每个位表示用于所述多个存储器单元中的对应一者的多个参数中的一或多个参数的状态。
Description
技术领域
本公开的实施例大体上涉及存储器子系统,且更具体地说,涉及检查存储器子系统中的多个存储器裸片的状态。
背景技术
存储器子系统可包含存储数据的一或多个存储器装置。所述存储器装置可例如为非易失性存储器装置和易失性存储器装置。一般来说,主机系统可利用存储器子系统以在存储器装置处存储数据以及从存储器装置检索数据。
附图说明
根据下文给出的详细描述和本公开的各种实施例的附图,将更充分地理解本公开。
图1说明根据本公开的一些实施例的包含存储器子系统的实例计算系统。
图2是说明根据本公开的一些实施例的检查存储器子系统中的多个存储器裸片的状态的框图。
图3是说明根据本公开的一些实施例的经配置以接收多单元状态命令的多平面存储器装置的框图。
图4是根据本公开的一些实施例的检查存储器子系统中的多个存储器裸片的状态的实例方法的流程图。
图5是根据本公开的一些实施例的执行存储器存取操作的实例方法的流程图,所述存储器存取操作包含检查存储器子系统中的多个存储器裸片的状态。
图6是说明根据本公开的一些实施例的使用唯一地址检查存储器子系统中的多个存储器裸片的状态的实例方法的流程图。
图7是本公开的实施例可在其中操作的实例计算机系统的框图。
具体实施方式
本公开的各方面涉及检查存储器子系统中的多个存储器裸片的状态。存储器子系统可以是存储装置、存储器模块,或存储装置和存储器模块的混合。下文结合图1来描述存储装置和存储器模块的实例。通常,主机系统可利用存储器子系统,所述存储器子系统包含一或多个组件,例如存储数据的存储器装置。主机系统可提供数据以存储在存储器子系统处,且可请求从存储器子系统检索数据。
存储器子系统可包含高密度非易失性存储器装置,其中当没有电力供应到存储器装置时期望保持数据。非易失性存储器装置的一个实例是“与非”(NAND)存储器装置。下文结合图1描述非易失性存储器装置的其它实例。非易失性存储器装置是一或多个存储器裸片的封装。每个裸片可由一或多个平面组成。对于一些类型的非易失性存储器装置(例如,NAND装置),每一平面由一组物理块组成。每个块由一组页组成。每个页由一组存储器单元(“单元”)组成。单元是存储信息的电子电路。取决于单元类型,单元可存储一或多个位的二进制信息,且具有与存储的位数目相关的各种逻辑状态。逻辑状态可表示为二进制值,例如“0”和“1”,或此类值的组合。
存储器装置可由布置成二维网格或三维网格的位构成。存储器单元以列(下文也称为位线)和行(下文也称为字线)阵列的形式蚀刻到硅晶片上。字线可指存储器装置中与一或多个位线一起使用以生成每个存储器单元的地址的一或多行存储器单元。位线和字线的相交处构成存储器单元的地址。下文中,块是指存储器装置中用于存储数据的单元,且可包含存储器单元群组、字线群组、字线或个别存储器单元。可将一或多个块分组在一起以形成存储器装置的平面,以便允许在每个平面上进行并行操作。存储器装置可包含执行两个或更多个存储器平面的并行存储器页存取的电路系统。举例来说,存储器装置可包含用于存储器装置的每个平面的相应存取线驱动器电路和电源电路以促进对包含不同页类型的两个或更多个存储器平面的页进行并行存取。
存储器子系统另外包含存储器子系统控制器,其可与存储器装置通信以执行如在存储器装置处读取数据、写入数据或擦除数据等操作以及其它此类操作。下文结合图1更详细地描述存储器子系统控制器。可响应于由主机系统发送到存储器子系统的存取请求(例如,写入命令、读取命令)而执行所述操作,以便将数据存储在存储器子系统的存储器装置上以及从存储器子系统的存储器装置读取数据。如通过主机请求所指定,待读取或写入的数据在下文中被称作“主机数据”。主机请求可包含用于主机数据的逻辑地址信息(例如,逻辑块地址(LBA)、名字空间),其为主机系统使之与主机数据相关联的位置。逻辑地址信息(例如,LBA、名字空间)可以是用于主机数据的元数据的部分。元数据与主机数据一起在下文中被称为“有效负载”。所述操作可另外由存储器子系统发起作为媒体管理操作,所述媒体管理操作可包含对存储于存储器装置上的主机数据执行例如写入操作或读取操作。举例来说,存储器子系统可将先前写入的主机数据从存储器装置上的位置重写到与写入刷新操作的部分相同的位置或新位置。在另一实例中,媒体管理操作可包含重读存储在存储器装置上的主机数据以作为读取刷新操作的部分。
如上文所描述,非易失性存储器装置可包含数个个别裸片。存储器子系统控制器可包含存储器子系统控制器可借以与个别裸片通信的数个输入/输出(I/O)端口和信道。举例来说,存储器子系统控制器与非易失性存储器装置之间可存在八个通信信道,其中每个信道可利用单独的芯片启用(CE)信号来启用。每个通信信道可支持某一数目的存储器裸片。举例来说,可存在可经由每个信道存取的16个存储器裸片。每个个别存储器裸片都可被配置为由唯一逻辑单元号(LUN)标识的个别逻辑单元。因此,具有八个通信信道且每信道16个LUN的系统可包含128个单独的LUN。
在执行某些操作的过程中,存储器子系统控制器通常检查存储器子系统中的各种LUN的状态。举例来说,在将读取命令提交到存储器装置之后,存储器子系统控制器可周期性地轮询存储器装置以检查所请求的I/O数据是否准备好读出。在一些系统中,存储器控制器将状态轮询命令发送到一个个别LUN。作为响应,LUN返回指示LUN和/或存储器裸片的一或多个参数的状态的八位值。举例来说,八个位中的一者指示I/O数据是否准备好读出,且其余七个位与其它状态相关联。此类状态轮询操作可例如针对给定LUN每1微秒执行一次。在具有大量LUN(例如,128个LUN)且处于繁重工作负载下的存储器子系统中,对个别LUN执行的这些状态轮询操作的数目和频率会引入显著系统开销且在存储器子系统中的存储器子系统控制器与存储器装置之间的通信信道中占用相当大的带宽。此问题在其中存储器裸片实施具有允许并行存取存储器裸片的多个平面的单独电路系统的独立字线的系统中加剧。在此类情形中,以与上文所描述相同的频率轮询每一个别平面的状态。因此,如果存储器裸片具有四个单独平面,则通信信道上的总线业务也增加四倍。
本公开的各方面通过检查存储器子系统中的多个存储器裸片的状态来解决以上和其它不足。在一个实施例中,作为执行存储器存取操作的部分,存储器子系统确定是否检查存储器子系统中的存储器装置的一或多个裸片的状态。举例来说,作为执行一些存取操作的部分,存储器子系统控制器可检查存储器裸片的某些参数的状态,所述参数与耦合到存储器装置的通信信道相关联。在一个实施例中,存储器子系统控制器将多单元状态命令发送到存储器装置。多单元状态命令可指定与存储器装置的一或多个存储器裸片相关联的多个存储器单元。在一个实施例中,每一存储器单元包含与存储器裸片中的一者相关联的LUN。在另一实施例中,每一存储器单元包含多平面存储器裸片的单独平面或平面群组。存储器子系统控制器另外接收对多单元状态命令的响应,所述响应包含表示用于所述多个存储器单元的一或多个参数的状态的多位值。在一个实施例中,多位值的每个位表示用于存储器单元中的对应一者的第一参数的状态。举例来说,第一参数的状态可指示LUN或平面的输入/输出(I/O)状态是处于就绪状态还是忙碌状态。响应于确定给定存储器单元处于就绪状态,存储器子系统控制器可将I/O命令发送到所述存储器单元。
在单个操作中使用多单元状态命令来检查多个存储器裸片的状态可使存储器子系统得以显著改进。由于多单元状态命令使存储器装置返回多个LUN或平面的状态的指示,因此存储器子系统控制器不必将单独的状态命令发送到存储器子系统中的每一个别LUN或平面。这种减小的命令数目减少轮询存储器子系统中的存储器裸片的状态所需的时间且减少总体开销。另外,存储器子系统控制器与存储器装置之间的通信信道上的总线业务减少,这允许存储器子系统中执行操作的速率(例如,每秒输入/输出操作(IOP))的增加和用于状态轮询操作的功率利用的减少。
图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算系统100。存储器子系统110可包含媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130),或此类装置的组合。
存储器子系统110可以是存储装置、存储器模块,或存储装置和存储器模块的混合。存储装置的实例包含固态硬盘(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器、安全数字(SD)以及硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM)以及各种类型的非易失性双列直插式存储器模块(NVDIMM)。
计算系统100可以是计算装置,例如台式计算机、笔记本电脑、网络服务器、移动装置、载具(例如,飞机、无人机、火车、汽车或其它运输工具)、具有物联网(IoT)功能的装置、嵌入式计算机(例如,包含在载具、工业设备或联网商用装置中的嵌入式计算机),或包含存储器和处理装置的此类计算装置。
计算系统100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1说明耦合到一个存储器子系统110的主机系统120的一个实例。如本文中所使用,“耦合到”或“与...耦合”通常是指组件之间的连接,所述连接可以是间接通信连接或直接通信连接(例如不具有居间组件),无论有线或无线,包含例如电连接、光学连接、磁连接等连接。
主机系统120可包含处理器芯片组和由所述处理器芯片组执行的软件栈。处理器芯片组可包含一或多个核心、一或多个高速缓存、存储器控制器(例如,NVDIMM控制器)以及存储协议控制器(例如,PCIe控制器、SATA控制器)。主机系统120使用存储器子系统110,以例如将数据写入到存储器子系统110和从存储器子系统110读取数据。
主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含但不限于串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤信道、串行附接SCSI(SAS)、双数据速率(DDR)存储器总线、小型计算机系统接口(SCSI)、双列直插式存储器模块(DIMM)接口(例如,支持双数据速率(DDR)的DIMM套接接口)等。所述物理主机接口可用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过物理主机接口(例如,PCIe总线)与主机系统120耦合时,主机系统120还可利用NVM高速(NVMe)接口来存取组件(例如,存储器装置130)。物理主机接口可提供用于在存储器子系统110与主机系统120之间传送控制、地址、数据以及其它信号的接口。图1说明存储器子系统110以作为实例。总的来说,主机系统120可经由同一通信连接、多个单独通信连接和/或通信连接的组合存取多个存储器子系统。
存储器装置130、140可包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以是但不限于随机存取存储器(RAM),例如动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)。
非易失性存储器装置(例如,存储器装置130)的一些实例包含“与非”(NAND)型快闪存储器和就地写入存储器,例如三维交叉点(“3D交叉点”)存储器装置,其为非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列基于体电阻的改变来执行位存储。另外,与许多基于快闪的存储器相比,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。NAND型快闪存储器包含例如二维NAND(2DNAND)和三维NAND(3DNAND)。
存储器装置130中的每一者可包含一或多个存储器单元阵列。一个类型的存储器单元,例如单层级单元(SLC),可每单元存储一个位。其它类型的存储器单元,例如,多层级单元(MLC)、三层级单元(TLC)、四层级单元(QLC)和五层级单元(PLC),可每单元存储多个位。在一些实施例中,存储器装置130中的每一者可包含一或多个存储器单元阵列,例如SLC、MLC、TLC、QLC或这些的任何组合。在一些实施例中,特定存储器装置可包含存储器单元的SLC部分以及MLC部分、TLC部分、QLC部分或PLC部分。存储器装置130中的存储器单元可分组为页,所述页可指用于存储数据的存储器装置的逻辑单元。对于一些类型的存储器(例如,NAND),页可经分组以形成块。
虽然描述了例如非易失性存储器单元的3D交叉点阵列以及NAND型快闪存储器(例如,2D NAND、3D NAND)的非易失性存储器组件,但存储器装置130可基于任何其它类型的非易失性存储器,例如,只读存储器(ROM)、相变存储器(PCM)、自选存储器、其它基于硫族化物的存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电随机存取存储器(FeRAM)、磁随机存取存储器(MRAM)、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻性随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)、或非(NOR)快闪存储器,或电可擦除可编程只读存储器(EEPROM)。
存储器子系统控制器115(或简单起见,控制器115)可与存储器装置130通信以执行操作,例如,在存储器装置130处读取数据、写入数据或擦除数据,以及其它此类操作。存储器子系统控制器115可包含硬件,例如一或多个集成电路和/或离散组件、缓冲器存储器或其组合。硬件可包含具有用以执行本文中所描述的操作的专用(即,硬译码)逻辑的数字电路系统。存储器子系统控制器115可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或其它合适的处理器。
存储器子系统控制器115可以是处理装置,其包含经配置以执行存储在本地存储器119中的指令的一或多个处理器(例如,处理器117)。在所说明实例中,存储器子系统控制器115的本地存储器119包含嵌入式存储器,其经配置以存储用于执行控制存储器子系统110的操作(包含处置存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流和例程的指令。
在一些实施例中,本地存储器119可包含存储存储器指针、所提取数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(ROM)。尽管将图1中的实例存储器子系统110说明为包含存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110不包含存储器子系统控制器115,且可能改为依靠(例如由外部主机或由与存储器子系统分开的处理器或控制器提供的)外部控制。
总的来说,存储器子系统控制器115可从主机系统120接收命令或操作,且可将所述命令或操作转换成指令或合适的命令,以实现对存储器装置130的所要存取。存储器子系统控制器115可负责其它操作,例如耗损均衡操作、无用单元收集操作、错误检测和错误校正码(ECC)操作、加密操作、缓存操作,以及与存储器装置130相关联的逻辑地址(例如,逻辑块地址(LBA)、名字空间)和物理地址(例如,物理块地址)之间的地址转译。存储器子系统控制器115还可包含主机接口电路系统以经由物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统接收的命令转换为命令指令以存取存储器装置130,以及将与存储器装置130相关联的响应转换成用于主机系统120的信息。
存储器子系统110还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓存或缓冲器(例如,DRAM)和地址电路系统(例如,行解码器和列解码器),所述地址电路系统可从存储器子系统控制器115接收地址且解码所述地址以对存储器装置130进行存取。
在一些实施例中,存储器装置130包含结合存储器子系统控制器115操作以在存储器装置130的一或多个存储器单元上执行操作的本地媒体控制器135。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130进行媒体管理操作)。在一些实施例中,存储器子系统110是受管理存储器装置,其包含具有裸片上的控制逻辑(例如,本地媒体控制器132)的原始存储器装置130和用于同一存储器装置封装内的媒体管理的控制器(例如,存储器子系统控制器115)。受管理存储器装置的实例是受管理NAND(MNAND)装置。
在一个实施例中,存储器子系统110包含检查存储器子系统110中的多个存储器裸片的状态的多单元状态组件113。在一个实施例中,存储器子系统控制器确定是否检查存储器装置(例如,存储器装置130)的一或多个裸片的状态。举例来说,作为执行某些存取操作的部分,存储器子系统控制器115可检查存储器裸片的某些参数的状态,所述参数与耦合在存储器子系统控制器115与存储器装置130之间的通信信道(例如,NVMe接口的部分)相关联。在一个实施例中,多单元状态组件113将多单元状态命令发送到存储器装置130。多单元状态命令可指定与存储器装置130的一或多个存储器裸片相关联的多个存储器单元。在一个实施例中,每一存储器单元包含与存储器裸片中的一者相关联的LUN。在另一实施例中,每一存储器单元包含多平面存储器裸片的单独平面或平面群组。多单元状态组件113接收对多单元状态命令的响应,所述响应包含表示用于多个存储器单元的一或多个参数的状态的多位值。在一个实施例中,多位值的每个位表示用于存储器单元中的对应一者的第一参数的状态。举例来说,第一参数的状态可指示LUN或平面的输入/输出(I/O)状态是处于就绪状态还是忙碌状态。以此方式,多单元状态组件113可使用单个状态命令确定用于多个存储器单元的某些参数的状态。下文描述关于多单元状态组件113的操作的其它细节。
在一些实施例中,存储器子系统控制器115包含多单元状态组件113的至少一部分。举例来说,存储器子系统控制器115可包含处理器117(例如,处理装置),所述处理器经配置以执行存储在本地存储器119中以用于执行本文中所描述的操作的指令。在一些实施例中,多单元状态组件113是主机系统110、应用程序或操作系统的部分。在另一实施例中,本地媒体控制器135包含多单元状态组件113的至少一部分,且经配置以执行本文中所描述的功能。
举例来说,在一个实施例中,控制逻辑(例如,本地媒体控制器135的部分)可经配置以辨识从存储器子系统控制器115接收的多单元状态命令。作为响应,控制逻辑可检查由多单元状态命令指示的一或多个存储器裸片的状态且生成对所述多单元状态命令的对应响应。如本文中所描述,所述响应可包含多位值,其中每个多位值表示用于存储器裸片中的对应一者的第一参数的状态。
图2是说明根据本公开的一些实施例的检查存储器子系统中的多个存储器裸片的状态的框图。在一个实施例中,存储器子系统控制器115包含数个主机输入/输出端口,每个主机输入/输出端口具有对应通信信道。举例来说,图2中所说明的信道230、232、234和236可以是连接到存储器子系统控制器115的多个信道中的任一者。取决于实施例,存储器子系统控制器115可具有两个信道、四个信道、八个信道,或某一其它数目的信道。随着输入/输出端口和通信信道的数目增加,因此存储器子系统控制器115的复杂性、成本和大小也增加。因此,可能需要限制存储器子系统控制器115中的输入/输出端口和通信信道的数目。
因此,通信信道中的每一者可支持多个存储器装置(例如,NAND存储器裸片)。在一个实施例中,存储器裸片240(a)-(h)连接到信道230,存储器裸片242连接到信道232,存储器裸片244连接到信道234,且存储器裸片246连接到信道236。在一个实施例中,每个通信信道连接到相同数目的存储器裸片。取决于实施例,每个通信信道可连接到两个存储器裸片、四个存储器裸片、八个存储器裸片、16个存储器裸片或某一其它数目的存储器裸片。然而,在其它实施例中,每个通信信道可连接到不同数目的存储器裸片。举例来说,一个信道可连接到八个存储器裸片,而另一扩展信道可连接到四个存储器裸片。
在一个实施例中,多单元状态组件113将一或多个多单元状态命令从存储器子系统控制器115发送到存储器装置130。多单元状态命令可以是意图确定一或多个存储器单元的状态的轮询操作的部分。举例来说,作为轮询操作的部分,多单元状态组件113可周期性地发送多单元状态命令以确定存储器子系统中的所有存储器单元或存储器单元子集的状态。任何一个多单元状态命令可指定其所引导到的多个存储器单元且可经由对应通信信道发送。在一个实施例中,每一存储器单元包含与存储器裸片中的一者相关联的LUN。举例来说,存储器裸片240(a)-(h)中的每一者可具有由对应LUN标识的相关联逻辑单元。因此,经由通信信道230发送的多单元状态命令可指定与存储器裸片240(a)-(h)相关联的LUN。在一个实施例中,使用唯一地标识每个LUN的多裸片选择(MDS)寻址方案指定存储器单元。在MDS寻址方案中,使用与所述个别存储器单元相关联的唯一地址来寻址每一个别存储器单元。可基于存储器装置中的芯片启用和/或每封装的存储器单元的数目(即,芯片启用和/或每封装的LUN的数目)而生成唯一地址。在另一实施例中,使用出于执行多单元状态检查操作的目的而指定的唯一地址来指定存储器单元。可为每个单元(例如,LUN或平面)指派多单元状态命令可被引导到的唯一地址。响应于接收到多单元状态命令,每个存储器裸片240(a)-(h)可返回一或多个参数的状态的指示,例如LUN的输入/输出(I/O)状态是处于就绪状态还是忙碌状态、阵列状态、合格/不合格状态、编程暂停或擦除暂停状态或其它参数。举例来说,对于给定LUN,可将单个位设置成第一值(例如,0)以指示第一状态(例如,就绪状态)或第二值(例如,1)以指示第二状态(例如,忙碌状态),或反之亦然。存储器装置130上(例如,在本地媒体控制器135中)的逻辑可将来自每个LUN的值组合在一起以形成表示用于多个存储器单元的一或多个参数的状态的多位值。在一个实施例中,对多位状态命令的响应利用用于将数据输入到存储器装置和从存储器装置输入数据的数据总线(例如,DQ总线)。举例来说,如果数据总线包含某一数目的引脚(例如,8个引脚),每个引脚用于传输单个位的值,则胜于使用数据总线的所有引脚来传输一个存储器裸片的状态,每个引脚可用于传输一个存储器裸片的状态。因此,在8个引脚的情况下,响应可包含8个存储器裸片的状态。
多单元状态组件113可经由通信信道230接收对包含多位值的多单元状态命令的响应。在一个实施例中,多位值的每个位表示用于存储器单元中的对应一者的第一参数的状态。在一个实施例中,多位值包含八个位,且因此可表示用于与存储器裸片240(a)-(h)相关联的八个LUN的第一参数的状态。在另一实施例中,多位值的多个位可表示用于对应存储器单元的多个参数的状态。举例来说,每存储器单元可存在两个位,其中每个位表示用于相同存储器单元的不同参数的状态。在此类情境下,多位值表示用于四个LUN的两个参数的状态。在其它实施例中,多位值可包含某一其它数目的位和/或可表示用于某一其它数目的存储器单元的某一其它数目的参数的状态。多位值的每个位可根据MDS寻址方案与某一存储器单元相关联,由此允许多单元状态组件113正确地解码对多单元状态命令的响应。在另一实施例中,使用出于执行多单元状态检查操作的目的而指定的唯一地址来指定存储器单元。
在另一实施例中,存储器裸片240(a)-(h)中的一或多者是多平面存储器装置。在此类情况下,每个存储器单元可包含存储器裸片的个别平面。因此,多单元状态命令可指示多个平面,且多位值可指示用于一或多个存储器裸片的多个平面的一或多个参数的状态。下文关于图3描述额外细节。
图3是说明根据本公开的一些实施例的经配置以接收多单元状态命令的多平面存储器装置的框图。存储器装置130包含划分成各自包含相应数目的存储器单元的存储器平面372(0)-372(3)的存储器裸片240,例如存储器裸片240(a)-(h)中的一者。多平面存储器装置130可另外包含本地媒体控制器135,包含用于针对不同存储器平面372(0)-372(3)并行执行存储器存取操作的电力控制电路和存取控制电路。存储器单元可以是非易失性存储器单元,例如NAND快闪单元,或可通常为任何类型的存储器单元。
存储器平面372(0)-372(3)可各自划分成数据块,其中在存储器存取操作期间可并行存取来自存储器平面372(0)-372(3)中的每一者的不同相对数据块。举例来说,在存储器存取操作期间,可各自并行存取存储器平面372(0)的数据块382、存储器平面372(1)的数据块383、存储器平面372(2)的数据块384和存储器平面372(3)的数据块385。
存储器平面372(0)-372(3)中的每一者可耦合到相应页缓冲器376(0)-376(3)。每个页缓冲器376(0)-376(3)可经配置以将数据提供到相应存储器平面372(0)-372(3)或从所述相应存储器平面接收数据。页缓冲器376(0)-376(3)可由本地媒体控制器135控制。从相应存储器平面372(0)-372(3)接收到的数据可分别锁存在页缓冲器376(0)-376(3)处,且由本地媒体控制器135检索,且经由NVMe接口提供到存储器子系统控制器115。
存储器平面372(0)-372(3)中的每一者可另外耦合到相应存取驱动器电路374(0)-374(3),例如存取线驱动器电路。驱动器电路374(0)-374(3)可经配置以调节相关联存储器平面372(0)-372(3)的相应块的页以进行存储器存取操作,例如编程数据(即,写入数据)、读取数据或擦除数据。驱动器电路374(0)-374(3)中的每一者可耦合到与相应存储器平面372(0)-372(3)相关联的相应全局存取线。全局存取线中的每一者可在与块内的页相关联的存储器存取操作期间选择性地耦合到平面的块内的相应局部存取线。可基于来自本地媒体控制器135的信号来控制驱动器电路374(0)-374(3)。驱动器电路374(0)-374(3)中的每一者可包含或耦合到相应电源电路,且可基于由相应电源电路提供的电压而将电压提供到相应存取线。由电源电路提供的电压可基于从本地媒体控制器135接收的信号。
本地媒体控制器135可控制驱动器电路374(0)-374(3)和页缓冲器376(0)-376(3)以并行执行与(例如,从存储器子系统控制器115接收到的)存储器命令和地址对的群组中的每一者相关联的存储器存取操作。举例来说,本地媒体控制器135可控制驱动器电路374(0)-374(3)和页缓冲器376(0)-376(3)以执行并行存储器存取操作。本地媒体控制器135可包含:电力控制电路,其针对并行存储器存取操作而串行配置驱动器电路374(0)-374(3)中的两者或更多者;以及存取控制电路,其经配置以控制页缓冲器376(0)-376(3)中的两者或更多者以感测且锁存来自相应存储器平面372(0)-372(3)的数据,或将数据编程到相应存储器平面372(0)-372(3)以执行并行存储器存取操作。
在操作中,本地媒体控制器135可经由NVMe总线接收存储器命令和地址对的群组,其中每一对并行或串行地到达。在一些实例中,存储器命令和地址对的群组可各自与存储器裸片240的不同相应存储器平面372(0)-372(3)相关联。本地媒体控制器135可经配置以响应于存储器命令和地址对的群组而针对存储器裸片240的不同存储器平面372(0)-372(3)执行并行存储器存取操作(例如,读取操作或编程操作)。举例来说,对于基于相应页类型(例如,UP、MP、LP、XP、SLC/MLC/TLC/QLC页)的并行存储器存取操作,本地媒体控制器135的电力控制电路可针对与存储器命令和地址对的群组相关联的两个或更多个存储器平面372(0)-372(3)来串行配置驱动器电路374(0)-374(3)。在已配置存取线驱动器电路374(0)-374(3)之后,本地媒体控制器135的存取控制电路可并行地控制页缓冲器376(0)-376(3),以在并行存储器存取操作期间存取与存储器命令和地址对的群组相关联的两个或更多个存储器平面372(0)-372(3)中的每一者的相应页,例如检索数据或写入数据。举例来说,存取控制电路可并发地(例如,并行地和/或同时)控制页缓冲器376(0)-376(3)以对位线进行充电/放电、感测来自两个或更多个存储器平面372(0)-372(3)的数据和/或锁存所述数据。
基于从本地媒体控制器135接收到的信号,耦合到与存储器命令和地址命令对的群组相关联的存储器平面372(0)-372(3)的驱动器电路374(0)-374(3)可从相关联存储器平面372(0)-372(3)选择存储器块或存储器单元,以进行存储器操作,例如读取、编程和/或擦除操作。驱动器电路374(0)-374(3)可驱动与相应存储器平面372(0)-372(3)相关联的不同相应全局存取线。举例来说,驱动器电路374(0)可驱动与存储器平面372(0)相关联的第一全局存取线上的第一电压,驱动器电路374(1)可驱动与存储器平面372(1)相关联的第三全局存取线上的第二电压,驱动器电路374(2)可驱动与存储器平面372(2)相关联的第七全局存取线上的第三电压等,且可驱动其余全局存取线中的每一者上的其它电压。在一些实例中,除了与待存取的存储器平面372(0)-372(3)的页相关联的存取线之外,可在所有存取线上提供通过电压。本地媒体控制器135、驱动器电路374(0)-374(3)可允许并行存取存储器单元的不同相应块内的不同相应页和页缓冲器376(0)-376(3)。举例来说,可并行存取第一存储器平面的第一块的第一页和第二存储器平面的第二块的第二页,而不管页类型如何。
页缓冲器376(0)-376(3)可响应于来自本地媒体控制器135和相应存储器平面372(0)-372(3)的信号而在存储器存取操作期间将数据提供到本地媒体控制器135或从所述本地媒体控制器接收数据。本地媒体控制器135可将接收到的数据提供到存储器子系统控制器115。
应了解,存储器装置130可包含多于或少于四个存储器平面、驱动器电路和页缓冲器。还应了解,相应全局存取线可包含8、16、32、64、128个等全局存取线。当不同相应页是不同页类型时,本地媒体控制器135和驱动器电路374(0)-374(3)可并行存取不同存储器平面的不同相应块内的不同相应页。
在一个实施例中,存储器平面372(0)-372(3)中的每一者可表示存储器单元,且可通过存储器子系统控制器115的多单元状态组件113发送的多单元状态命令单独地寻址。本地媒体控制器135可针对每个存储器平面372(0)-372(3)单独地跟踪一或多个参数的状态,且因此可生成对多单元状态命令的响应。如上文所描述,对多单元状态命令的响应包含表示用于多个存储器单元的一或多个参数的状态的多位值。在一个实施例中,多位值的每个位表示用于存储器平面372(0)-372(3)中的对应一者的第一参数(例如,就绪/忙碌)的状态。由于多位值通常包含八个位,因此在存储器裸片上存在四个存储器平面的实施例中,多位值的两个位可与四个存储器平面中的每一者相关联。因此,对于四个存储器平面中的每一者,可包含两个不同参数的状态。在另一实施例中,多位值的一个位可与每个存储器平面相关联,且所述响应中可包含用于两个存储器裸片的状态信息(即,八个位表示各自具有四个平面的两个存储器裸片的状态)。在又一实施例中,多位值的一或多个位各自表示多个值的逻辑组合(例如,使用布尔型“或”运算),所述多个值各自表示用于存储器平面中的单独一者的给定参数的状态。举例来说,给定存储器裸片中的存储器平面中的每一者的状态可逻辑上组合成单个一位值。可针对数个其它多平面存储器裸片完成相同操作。每个存储器裸片的所得一位值可组合在一起以形成作为对多单元状态命令的响应而发送的多位值。因此,用于任何一个存储器裸片的一位值可指示所述存储器裸片的平面中的任一者是否具有特定状态。在标识给定存储器裸片具有处于特定状态的至少一个平面后,多单元状态组件113可发送被引导到所述给定存储器裸片的第二状态命令以确定哪一平面具有特定状态。
图4是根据本公开的一些实施例的检查存储器子系统中的多个存储器裸片的状态的实例方法的流程图。方法400可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法400由图1的多单元状态组件113执行。尽管以特定顺序或次序来展示,但除非另有指定,否则可修改过程的次序。因此,所说明实施例应仅理解为实例,且所说明过程可以不同次序执行,且一些过程可并行地执行。另外,在各种实施例中可省去一或多个过程。因此,并非每个实施例中都需要所有过程。其它过程流也是可能的。
在操作405处,确定检查存储器装置的存储器裸片的状态。举例来说,处理逻辑(例如,由存储器子系统控制器115的处理器117执行的多单元状态组件113)确定是否检查存储器装置130的一或多个裸片240(a)-(h)的状态。举例来说,作为执行某些存取操作的部分,存储器子系统控制器115可检查存储器裸片的某些参数的状态,所述参数与耦合在存储器子系统控制器115与存储器装置130之间的通信信道(例如,NVMe接口的部分)相关联。在一个实施例中,处理逻辑确定应根据确定将执行存储器存取操作来检查所述状态。
在操作410处,发送多单元状态命令。举例来说,响应于确定将检查状态以作为存储器存取操作的部分,处理逻辑将多单元状态命令发送到存储器装置130,所述多单元状态命令指定与存储器装置130的一或多个存储器裸片240(a)-(h)相关联的多个存储器单元。在一个实施例中,每一存储器单元包含与存储器裸片240(a)-(h)中的一者相关联的LUN。在另一实施例中,每一存储器单元包含单独平面或平面群组(例如,多平面存储器裸片的一或多个存储器平面372(0)-372(3),如图3所展示)。
在操作415处,接收对多单元状态命令的响应。举例来说,处理逻辑接收对多单元状态命令的响应,所述响应包含表示用于多个存储器单元的一或多个参数的状态的多位值。在一个实施例中,多位值的每个位表示用于存储器单元中的对应一者的第一参数的状态。举例来说,第一参数的状态可指示LUN或平面的输入/输出(I/O)状态是处于就绪状态还是忙碌状态。在一个实施例中,基于MDS寻址方案,多位值的每个位与多个存储器单元中的对应一者相关联。在另一实施例中,使用出于执行多单元状态检查操作的目的而指定的唯一地址来指定存储器单元。举例来说,如果存储器单元包含与存储器裸片相关联的LUN,则多位值的每个位可指示所述LUN的参数的状态。然而,如果存储器单元包含存储器裸片的平面,则不论所使用的寻址方案如何,多位值的每个位表示用于所述平面的参数的状态。另外,如上文所描述,多位值的一或多个位可表示各自表示多个平面中的每一者的参数的状态的多个值的逻辑组合(例如,由于布尔型“或”运算)。响应于确定LUN或平面的状态处于就绪状态,多单元状态组件113可将I/O命令发送到对应存储器单元,如下文关于图5更详细地描述。
图5是根据本公开的一些实施例的执行存储器存取操作的实例方法的流程图,所述存储器存取操作包含检查存储器子系统中的多个存储器裸片的状态。方法500可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法500由图1的多单元状态组件113执行。尽管以特定顺序或次序来展示,但除非另有指定,否则可修改过程的次序。因此,所说明实施例应仅理解为实例,且所说明过程可以不同次序执行,且一些过程可并行地执行。另外,在各种实施例中可省去一或多个过程。因此,并非每个实施例中都需要所有过程。其它过程流也是可能的。
在操作505处,发送存储器存取命令。举例来说,处理逻辑(例如,由存储器子系统控制器115的处理器117执行的多单元状态组件113)将读取命令、写入命令或擦除命令中的至少一者发送到存储器装置130,所述命令指示存储于耦合到通信信道230的存储器装置130的多个存储器裸片240(a)-(h)的第一存储器裸片240(a)上的数据。在一个实施例中,可从主机系统120接收所述请求,且所述请求可涉及由主机系统120存储在存储器子系统110中的数据。在一个实施例中,所述请求可例如由存储器子系统控制器115在存储器子系统110内部生成,且可涉及数据管理操作。其它存储器存取操作可包含例如编程操作、读取操作或擦除操作。主机系统120或存储器子系统控制器115可将请求和/或命令发送到存储器装置130,以便将数据存储在存储器装置130上或从存储器装置130读取数据。在一个实施例中,所述请求涉及存储器装置130的例如不同存储器裸片240(a)-(h)或存储器裸片的不同存储器平面372(0)-372(3)等不同存储器单元中的数据。
在操作510处,发送多单元状态命令。举例来说,处理逻辑将多单元状态命令发送到存储器装置130,所述多单元状态命令指定与存储器装置130的多个存储器裸片240(a)-(h)相关联的多个存储器单元。在一个实施例中,每一存储器单元包含与存储器裸片240(a)-(h)中的一者相关联的LUN。在另一实施例中,每一存储器单元包含单独平面或平面群组(例如,多平面存储器裸片的一或多个存储器平面372(0)-372(3),如图3所展示)。
在操作515处,接收响应。举例来说,处理逻辑接收对多单元状态命令的响应,所述响应包含表示多个存储器单元中的每一者的输入/输出(I/O)就绪/忙碌状态的多位值。在一个实施例中,多位值的每个位表示用于存储器单元中的对应一者的第一参数的状态。举例来说,第一参数的状态可指示LUN或平面的输入/输出(I/O)状态是处于就绪状态还是忙碌状态。在一个实施例中,基于MDS寻址方案,多位值的每个位与多个存储器单元中的对应一者相关联。在另一实施例中,使用出于执行多单元状态检查操作的目的而指定的唯一地址来指定存储器单元。举例来说,如果存储器单元包含与存储器裸片相关联的LUN,则多位值的每个位可指示所述LUN的参数的状态。然而,如果存储器单元包含存储器裸片的平面,则不论所使用的寻址方案如何,多位值的每个位表示用于所述平面的参数的状态。另外,如上文所描述,多位值的一或多个位可表示各自表示多个平面中的每一者的参数的状态的多个值的逻辑组合(例如,由于布尔型“或”运算)。
在操作520处,确定存储器单元的状态。举例来说,处理逻辑确定多位值是否指示对应于第一存储器裸片的第一存储器单元具有就绪状态。在一个实施例中,多单元状态组件113检查对应于第一存储器单元的多位值的位。举例来说,如果第一存储器单元是与第一存储器裸片240(a)相关联的LUN,则多单元状态组件113可使用MDS寻址方案标识对应位。在一个实施例中,对于给定LUN,可将此位设置成第一值(例如,0)以指示第一状态(例如,就绪状态)或第二值(例如,1)以指示第二状态(例如,忙碌状态),或反之亦然。因此,如果位被设置成指示就绪状态的值,则多单元状态组件113可确定与第一存储器裸片240(a)相关联的LUN处于就绪状态。就绪状态可指示已从第一存储器裸片240(a)的存储器单元检索在操作505处相对于读取命令所请求的数据。如果多单元状态组件113确定存储器单元不处于就绪状态(即,仍处于尚未检索所请求的数据的忙碌状态),则处理返回到操作510,其中在周期性间隔之后发送另一多单元状态命令。周期性间隔可基于特定实施方案而配置,但可包含例如一微秒。
响应于确定所述多位值指示对应于所述第一存储器裸片的第一存储器单元具有就绪状态,在操作525处,发送关于来自所述存储器单元的数据的第二命令。举例来说,处理逻辑可将请求来自第一存储器裸片240(a)的数据的读出命令发送到存储器装置130。读出命令使存储器装置130经由通信信道230将来自第一存储器裸片240(a)的数据返回到存储器子系统控制器115。在其它实施例中,可执行某一其它存储器存取或I/O操作。
图6是说明根据本公开的一些实施例的使用唯一地址检查存储器子系统中的多个存储器裸片的状态的实例方法的流程图。方法600可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法600由图1的多单元状态组件113执行。尽管以特定顺序或次序来展示,但除非另有指定,否则可修改过程的次序。因此,所说明实施例应仅理解为实例,且所说明过程可以不同次序执行,且一些过程可并行地执行。另外,在各种实施例中可省去一或多个过程。因此,并非每个实施例中都需要所有过程。其它过程流也是可能的。
在操作605处,将唯一地址指派给每个存储器单元。举例来说,处理逻辑(例如,由存储器子系统控制器115的处理器117执行的多单元状态组件113)将借以标识存储器单元中的每一者的唯一地址指派给与存储器装置130的一或多个存储器裸片240(a)-(h)相关联的多个存储器单元中的每一者。在一个实施例中,每一存储器单元包含与存储器裸片240(a)-(h)中的一者相关联的LUN。在另一实施例中,每一存储器单元包含单独平面或平面群组(例如,多平面存储器裸片的一或多个存储器平面372(0)-372(3),如图3所展示)。在一个实施例中,多单元状态组件113限定出于执行多单元状态检查操作的目的而指定的新地址系统。因此,指派给每一存储器单元的唯一地址可不同于在MDS寻址方案下指定的LUN标识符。取决于实施例,指派给每一存储器单元的唯一地址可仅用于执行多单元状态检查操作的目的,或可另外用于某一其它目的。此类寻址系统可用于轮询芯片启用(CE)域中的状态,因为在MDS寻址的情况下,两个不同CE可具有重复地址。寻址系统在整个CE域中包含唯一地址。取决于实施例,可选择新的寻址系统或MDS寻址以用于实施。
在操作610处,发送多单元状态命令。举例来说,处理逻辑将多单元状态命令发送到存储器装置130,所述多单元状态命令使用在操作405处指派的对应唯一地址来指定多个存储器单元。举例来说,多单元状态命令可包含多个存储器单元(例如,LUN和/或平面)的个别地址或一系列唯一地址。在一个实施例中,命令指定存储器子系统中的所有存储器单元的子集,其中所述子集可包含多达所有存储器单元的两个或更多个存储器单元。在一个实施例中,多个存储器单元与单个存储器裸片相关联。在另一实施例中,多个存储器单元与多个存储器裸片相关联。唯一寻址系统不限于任何数目的存储器单元。举例来说,多单元状态命令可指定大于八个存储器单元的一系列唯一地址。存储器装置130上的本地媒体控制器135可接收多单元状态命令且标识对应于多单元状态命令中包含的唯一地址的存储器单元。
在操作615处,接收响应。举例来说,处理逻辑接收对多单元状态命令的响应,所述响应包含表示用于多个存储器单元的一或多个参数的状态的多位值。在一个实施例中,多位值的每个位表示用于存储器单元中的对应一者的第一参数的状态。举例来说,第一参数的状态可指示LUN或平面的输入/输出(I/O)状态是处于就绪状态还是忙碌状态。在一个实施例中,基于多单元状态命令中指定的唯一地址,多位值的每个位与多个存储器单元中的对应一者相关联。举例来说,如果存储器单元包含与存储器裸片相关联的LUN,则多位值的每个位可指示所述LUN的参数的状态。然而,如果存储器单元包含存储器裸片的平面,则多位值的每个位表示用于所述平面的参数的状态。另外,如上文所描述,多位值的一或多个位可表示各自表示多个平面中的每一者的参数的状态的多个值的逻辑组合(例如,由于布尔型“或”运算)。在其中单个多单元状态命令指定大于八个存储器单元的一系列唯一地址的实施例中,多单元状态组件113可接收多个多位值。举例来说,每个多位值可包含八个位,且可接收任何数目的多位值以便表示命令中指定的存储器单元中的每一者的状态。
图7说明计算机系统700的实例机器,在所述计算机系统内可执行指令集,以用于使所述机器执行本文中所论述的任何一或多个方法。在一些实施例中,计算机系统700可对应于主机系统(例如,图1的主机系统120),其包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)或可用于执行控制器的操作(例如,执行操作系统以执行对应于图1的多单元状态组件113的操作)。在替代实施例中,机器可连接(例如联网)到LAN、内联网、外联网和/或互联网中的其它机器。机器可作为对等(或分布式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而以客户端-服务器网络环境中的服务器或客户端机器的能力进行操作。
所述机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络设备、服务器、网络路由器、交换机或网桥,或能够(顺序或以其它方式)执行指定待由所述机器采取的动作的一组指令的任何机器。此外,尽管说明了单个机器,但还应认为术语“机器”包含个别地或共同地执行一组(或多组)指令以执行本文所论述的任何一或多个方法的任何机器集合。
实例计算机系统700包含处理装置702、主存储器704(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM),例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等)、静态存储器706(例如,快闪存储器、静态随机存取存储器(SRAM)等)以及数据存储系统718,它们经由总线730彼此通信。
处理装置702表示一或多个通用处理装置,例如微处理器、中央处理单元等。更具体地,处理装置可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器,或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置702还可以是一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置702经配置以执行用于执行本文所论述的操作和步骤的指令726。计算机系统700还可包含网络接口装置708以通过网络720通信。
数据存储系统718可包含机器可读存储媒体724(也称为计算机可读媒体,例如非暂时性计算机可读媒体),其上存储有一或多个指令集726或体现本文中所描述的任何一或多个方法或功能的软件。在一个实施例中,此媒体724还可由多单元状态组件113、存储器子系统控制器115或其它组件写入。指令726还可在其由计算机系统700执行的期间完全或至少部分地驻存在主存储器704内和/或处理装置702内,主存储器704和处理装置702也构成机器可读存储媒体。机器可读存储媒体724、数据存储系统718和/或主存储器704可对应于图1的存储器子系统110。
在一个实施例中,指令726包含实施对应于图1的多单元状态组件113的功能的指令。尽管在实例实施例中将机器可读存储媒体724展示为单个媒体,但术语“机器可读存储媒体”应被认为包含存储一组或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行且使机器执行本公开的任何一或多个方法的一组指令的任何媒体。因此,应认为术语“机器可读存储媒体”包含但不限于固态存储器、光学媒体以及磁性媒体。
已在针对计算机存储器内的数据位的操作的算法和符号表示方面呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域中的技术人员用以将其工作的主旨最有效地传达给所属领域的其他技术人员的方式。算法在此处以及通常被认为是产生所要结果的操作的自洽序列。所述操作是要求对物理量进行物理操控的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操控的电或磁信号的形式。有时,已证明主要出于通用的原因将这些信号称为位、值、元素、符号、字符、项、数字等是方便的。
然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅仅是应用于这些量的方便标签。本公开可指计算机系统或类似电子计算装置的动作和过程,其操控且将计算机系统的寄存器和存储器内表示为物理(电子)量的数据变换成类似地表示为计算机系统存储器或寄存器或其它此类信息存储系统内的物理量的其它数据。
本公开还涉及用于执行本文中的操作的设备。此设备可出于既定目的而专门构造,或其可包含由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的盘(包含软盘、光盘、CD-ROM和磁性光盘)、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡或适合存储电子指令的任何类型的媒体,各个媒体耦合到计算机系统总线。
本文中呈现的算法和显示在本质上不与任何特定计算机或其它设备相关。各种通用系统可与根据本文中的教示的程序一起使用,或可证明构建更专用设备以执行所述方法是方便的。将如下文描述中所阐述的那样来呈现多种这些系统的结构。另外,未参考任何特定编程语言来描述本公开。应了解,可使用各种编程语言来实施本文中所描述的本公开的教示。
本公开可提供为可包含上面存储有指令的机器可读媒体的计算机程序产品或软件,所述指令可用以编程计算机系统(或其它电子装置)以执行根据本公开的过程。机器可读媒体包含用于以机器(例如,计算机)可读形式存储信息的任何机构。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
在前述说明书中,已参考其特定实例实施例描述了本公开的实施例。应显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书和附图。
Claims (20)
1.一种系统,其包括:
存储器装置;以及
处理装置,其以操作方式与所述存储器装置耦合以执行包括以下各项的操作:
确定是否检查所述存储器装置的一或多个存储器裸片的状态;
将多单元状态命令发送到所述存储器装置,所述多单元状态命令指定与所述存储器装置的所述一或多个存储器裸片相关联的多个存储器单元;以及
接收对所述多单元状态命令的响应,所述响应包括多位值,所述多位值包括多个位,其中所述多个位中的每个位表示用于所述多个存储器单元中的对应一者的多个参数中的一或多个参数的状态。
2.根据权利要求1所述的系统,其中所述一或多个存储器裸片与耦合到所述存储器装置的通信信道相关联,且其中所述多个存储器单元包括多个逻辑单元号(LUN)。
3.根据权利要求1所述的系统,其中所述多位值的每个位表示用于所述多个存储器单元中的对应一者的第一参数的所述状态,且其中每个位基于多裸片选择(MDS)寻址方案而与所述多个存储器单元中的所述对应一者相关联。
4.根据权利要求3所述的系统,其中所述第一参数的所述状态包括输入/输出(I/O)状态处于就绪状态还是忙碌状态的指示。
5.根据权利要求4所述的系统,其中所述处理装置执行包括以下各项的其它操作:
确定对应于第一存储器单元的所述第一参数的所述状态指示所述I/O状态处于所述就绪状态;以及
将I/O命令发送到所述第一存储器单元。
6.根据权利要求1所述的系统,其中所述一或多个存储器裸片中的第一存储器裸片包括多个平面,且其中所述多个存储器单元中的每一者包括所述多个平面中的一者。
7.根据权利要求6所述的系统,其中所述多位值表示用于所述多个平面中的每一者的第一参数的所述状态。
8.根据权利要求6所述的系统,其中所述多位值的第一位表示各自表示用于多个平面中的每一者的第一参数的所述状态的多个值的逻辑组合。
9.一种方法,其包括:
确定检查存储器装置的一或多个存储器裸片的状态;
将多单元状态命令发送到所述存储器装置,所述多单元状态命令指定与所述存储器装置的所述一或多个存储器裸片相关联的多个存储器单元;以及
接收对所述多单元状态命令的响应,所述响应包括多位值,所述多位值包括多个位,其中所述多个位中的每个位表示用于所述多个存储器单元中的对应一者的多个参数中的一或多个参数的状态。
10.根据权利要求9所述的方法,其中所述一或多个存储器裸片与耦合到所述存储器装置的通信信道相关联,且其中所述多个存储器单元包括多个逻辑单元号(LUN)。
11.根据权利要求9所述的方法,其中所述多位值的每个位表示用于所述多个存储器单元中的对应一者的第一参数的所述状态,且其中每个位基于多裸片选择(MDS)寻址方案而与所述多个存储器单元中的所述对应一者相关联。
12.根据权利要求11所述的方法,其中所述第一参数的所述状态包括输入/输出(I/O)状态是处于就绪状态还是忙碌状态的指示。
13.根据权利要求12所述的方法,其另外包括:
确定对应于第一存储器单元的所述第一参数的所述状态指示所述I/O状态处于所述就绪状态;以及
将I/O命令发送到所述第一存储器单元。
14.根据权利要求9所述的方法,其中所述一或多个存储器裸片中的第一存储器裸片包括多个平面,且其中所述多个存储器单元中的每一者包括所述多个平面中的一者。
15.根据权利要求14所述的方法,其中所述多位值表示用于所述多个平面中的每一者的第一参数的所述状态。
16.根据权利要求14所述的方法,其中所述多位值的第一位表示各自表示用于多个平面中的每一者的第一参数的所述状态的多个值的逻辑组合。
17.一种包括指令的非暂时性计算机可读存储媒体,所述指令在由处理装置执行时使所述处理装置执行包括以下各项的操作:
将存储器存取命令发送到存储器装置,所述存储器存取命令指示存储在耦合到通信信道的所述存储器装置的多个存储器裸片中的第一存储器裸片上的数据;
将多单元状态命令发送到所述存储器装置,所述多单元状态命令指定与所述存储器装置的所述多个存储器裸片相关联的多个存储器单元;
接收对所述多单元状态命令的响应,所述响应包括表示所述多个存储器单元中的每一者的输入/输出(I/O)就绪/忙碌状态的多位值;以及
响应于确定所述多位值指示对应于所述第一存储器裸片的第一存储器单元具有就绪状态,将第二命令发送到所述存储器装置,所述第二命令关于来自所述第一存储器裸片的所述数据。
18.根据权利要求17所述的非暂时性计算机可读存储媒体,其中所述多个存储器单元包括多个逻辑单元号(LUN)。
19.根据权利要求17所述的非暂时性计算机可读存储媒体,其中所述多位值的每个位表示用于所述多个存储器单元中的对应一者的参数的所述状态。
20.根据权利要求17所述的非暂时性计算机可读存储媒体,其中所述多位值的每个位基于多裸片选择(MDS)寻址方案而与所述多个存储器单元中的所述对应一者相关联。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/946,869 US11662939B2 (en) | 2020-07-09 | 2020-07-09 | Checking status of multiple memory dies in a memory sub-system |
US16/946,869 | 2020-07-09 | ||
PCT/US2021/041173 WO2022011312A1 (en) | 2020-07-09 | 2021-07-09 | Checking status of multiple memory dies in a memory sub-system |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115836277A true CN115836277A (zh) | 2023-03-21 |
Family
ID=77274825
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180048745.3A Pending CN115836277A (zh) | 2020-07-09 | 2021-07-09 | 检查存储器子系统中的多个存储器裸片的状态 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11662939B2 (zh) |
CN (1) | CN115836277A (zh) |
WO (1) | WO2022011312A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11599485B2 (en) * | 2020-11-25 | 2023-03-07 | Micron Technology, Inc. | Status check using signaling |
US11586393B2 (en) * | 2020-12-30 | 2023-02-21 | Macronix International Co., Ltd. | Control method for requesting status of flash memory, flash memory die and flash memory with the same |
US11404095B1 (en) * | 2021-01-21 | 2022-08-02 | Micron Technology, Inc. | Reduced pin status register |
KR20230036682A (ko) * | 2021-09-08 | 2023-03-15 | 에스케이하이닉스 주식회사 | 인터리빙 동작을 지원하는 메모리 장치, 메모리 시스템 및 그의 동작 방법 |
US20240028244A1 (en) * | 2022-07-25 | 2024-01-25 | Micron Technology, Inc. | Methods of operating memory systems with input/output expanders for multi-channel status reads, and associated systems and devices |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7558130B2 (en) * | 2007-06-04 | 2009-07-07 | Micron Technology, Inc. | Adjustable drive strength apparatus, systems, and methods |
US9378132B2 (en) | 2012-03-22 | 2016-06-28 | Hgst Technologies Santa Ana, Inc. | System and method for scanning flash memories |
EP2856467A1 (en) * | 2012-05-29 | 2015-04-08 | MOSAID Technologies Incorporated | Ring topology status indication |
US20130339638A1 (en) | 2012-06-19 | 2013-12-19 | Tal Lazmi | Status polling of memory devices using an independent status bus |
US9335952B2 (en) | 2013-03-01 | 2016-05-10 | Ocz Storage Solutions, Inc. | System and method for polling the status of memory devices |
US9117504B2 (en) | 2013-07-03 | 2015-08-25 | Micron Technology, Inc. | Volume select for affecting a state of a non-selected memory volume |
US9502118B2 (en) * | 2014-09-26 | 2016-11-22 | Intel Corporation | NAND memory addressing |
US20160110119A1 (en) * | 2014-10-15 | 2016-04-21 | Prabhjot Singh | Direct memory access for command-based memory device |
US9959078B2 (en) | 2015-01-30 | 2018-05-01 | Sandisk Technologies Llc | Multi-die rolling status mode for non-volatile storage |
KR20170086345A (ko) | 2016-01-18 | 2017-07-26 | 에스케이하이닉스 주식회사 | 메모리 칩 및 메모리 컨트롤러를 포함하는 메모리 시스템 |
KR20170089069A (ko) * | 2016-01-25 | 2017-08-03 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작방법 |
JP2018160306A (ja) | 2017-03-23 | 2018-10-11 | 東芝メモリ株式会社 | 半導体記憶装置 |
US10877696B2 (en) * | 2019-03-28 | 2020-12-29 | Intel Corporation | Independent NAND memory operations by plane |
KR20210019874A (ko) | 2019-08-13 | 2021-02-23 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 그 동작 방법 |
-
2020
- 2020-07-09 US US16/946,869 patent/US11662939B2/en active Active
-
2021
- 2021-07-09 WO PCT/US2021/041173 patent/WO2022011312A1/en active Application Filing
- 2021-07-09 CN CN202180048745.3A patent/CN115836277A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2022011312A1 (en) | 2022-01-13 |
US20220011959A1 (en) | 2022-01-13 |
US11662939B2 (en) | 2023-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11662939B2 (en) | Checking status of multiple memory dies in a memory sub-system | |
US11726690B2 (en) | Independent parallel plane access in a multi-plane memory device | |
US11709605B2 (en) | Storing zones in a zone namespace on separate planes of a multi-plane memory device | |
US20240103770A1 (en) | Improved memory performance using memory access command queues in memory devices | |
US11699491B2 (en) | Double interleaved programming of a memory device in a memory sub-system | |
CN116547656A (zh) | 具有用于命令处理的专用部分的存储器装置接口 | |
CN114746942A (zh) | 用于存储器子系统的容量扩展 | |
US20230176972A1 (en) | Memory performance during program suspend protocol | |
US11681467B2 (en) | Checking status of multiple memory dies in a memory sub-system | |
US11687285B2 (en) | Converting a multi-plane write operation into multiple single plane write operations performed in parallel on a multi-plane memory device | |
US11720490B2 (en) | Managing host input/output in a memory system executing a table flush | |
US20220391321A1 (en) | Concurrent page cache resource access in a multi-plane memory device | |
US11669456B2 (en) | Cache release command for cache reads in a memory sub-system | |
US11693597B2 (en) | Managing package switching based on switching parameters | |
CN115273925B (zh) | 存储器子系统刷新 | |
US20230058232A1 (en) | Partition command queues for a memory device | |
US20230359398A1 (en) | Enabling multiple data capacity modes at a memory sub-system | |
US11941290B2 (en) | Managing distribution of page addresses and partition numbers in a memory sub-system | |
US20240069738A1 (en) | Accessing memory devices via switchable channels | |
CN115705853A (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 |