CN117631986A - 区域存储器系统中的延迟区域调整 - Google Patents
区域存储器系统中的延迟区域调整 Download PDFInfo
- Publication number
- CN117631986A CN117631986A CN202311111677.8A CN202311111677A CN117631986A CN 117631986 A CN117631986 A CN 117631986A CN 202311111677 A CN202311111677 A CN 202311111677A CN 117631986 A CN117631986 A CN 117631986A
- Authority
- CN
- China
- Prior art keywords
- region
- blocks
- area
- error
- offline
- 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 228
- 238000012545 processing Methods 0.000 claims description 61
- 238000000034 method Methods 0.000 claims description 51
- 230000004044 response Effects 0.000 claims description 49
- 230000004913 activation Effects 0.000 claims description 18
- 230000002829 reductive effect Effects 0.000 claims description 7
- 238000001514 detection method Methods 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 14
- 238000007726 management method Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000009467 reduction Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 5
- 238000003491 array Methods 0.000 description 4
- 230000003111 delayed effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 239000000872 buffer Substances 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000012005 ligant binding assay Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 150000004770 chalcogenides Chemical class 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000004242 micellar liquid chromatography Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000017702 response to host Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000004809 thin layer chromatography Methods 0.000 description 1
- 238000013519 translation Methods 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
-
- 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
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
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)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本公开涉及区域存储器系统中的延迟区域调整。各种实施例提供对支持区域的存储器系统或子系统中的区域的延迟调整。确切地说,一些实施例提供基于对未分配块集合的块中的错误的检测来对区域进行延迟调整,这可使用计数器来跟踪。
Description
技术领域
本公开的实施例大体上涉及存储器装置,且更具体地说,涉及对支持区域的存储器系统或子系统中的区域的延迟调整。
背景技术
存储器子系统可以包含存储数据的一或多个存储器装置。存储器装置可以是例如非易失性存储器装置和易失性存储器装置。一般来说,主机系统可利用存储器子系统以在存储器装置处存储数据且从存储器装置检索数据。
发明内容
在一个方面中,本公开提供一种系统,其包括:存储器装置,其包括一或多个块集合,每一块集合包括一或多个块,每一块集合能够分配到所述系统的区域;和处理装置,其以操作方式耦合到存储器装置且配置成执行包括以下各项的操作:从主机系统接收对于指定区域的请求,所述请求包括区域激活请求或区域复位请求中的一个;且响应于接收所述请求:基于待决区域离线计数器,确定是否至少一个区域待进行区域离线操作;且响应于待决区域离线计数器指示至少一个区域待进行区域离线操作:对指定区域执行区域离线操作;且调整待决区域离线计数器以指示少一个区域待进行区域离线操作。
在另一方面中,本公开提供至少一种非暂时性机器可读存储媒体,其包括指令,所述指令在由处理装置执行时使所述处理装置执行包括以下各项的操作:从主机系统接收对于存储器子系统的多个区域中的指定区域的请求,所述请求包括区域激活请求或区域复位请求中的一个,所述多个区域中的每一区域能够分配到存储器子系统的块集合,所述块集合包括一或多个块;且响应于接收所述请求:基于错误块计数器,确定是否至少一个区域待调整;且响应于错误块计数器指示至少一个区域待调整:基于错误块计数器调整指定区域;且基于调整所述指定区域调整错误块计数器。
在另一方面中,本公开提供一种方法,其包括:在存储器子系统处且从主机系统接收对于存储器子系统的多个区域中的指定区域的请求,所述请求包括区域激活请求或区域复位请求中的一个,所述多个区域中的每一区域能够分配到存储器子系统的块集合,所述块集合包括一或多个块;且响应于接收所述请求:基于待决区域离线计数器,确定是否至少一个区域待进行区域离线操作;且响应于待决区域离线计数器指示至少一个区域待进行区域离线操作:对指定区域执行区域离线操作;且调整待决区域离线计数器以指示少一个区域待进行区域离线操作。
附图说明
根据下文给出的详细描述和本公开的各种实施例的附图,将更充分地理解本公开。然而,图式不应视为将本公开限制于具体实施例,而是仅用于解释和理解。
图1为绘示根据本公开的一些实施例的包含存储器子系统的实例计算系统的框图。
图2至5为根据本公开的一些实施例的对支持区域的存储器子系统中的区域的延迟调整的实例方法的流程图。
图6提供绘示在一些实施例的上下文中计算环境的组件之间的交互的交互图,其中执行如本文中所描述的对支持区域的存储器子系统中的区域的延迟调整的方法。
图7为本公开的实施例可在其中操作的实例计算机系统的框图。
具体实施方式
本公开的各方面涉及对支持区域的存储器系统或子系统(在下文中,区域存储器子系统)中的区域的延迟调整。确切地说,一些实施例提供基于对未分配块集合中的块中的错误的检测来对区域进行延迟调整(例如,离线),这可使用计数器来跟踪。如本文中所使用,一组块(或块集合)可包括存储器装置的一或多个块,且未分配(或未定界的)块集合可为当前未分配到存储器系统或子系统的区域的块。
存储器子系统可以是存储装置、存储器模块,或存储装置和存储器模块的混合。下文结合图1描述存储装置和存储器模块的实例。一般来说,主机系统可利用存储器子系统,所述存储器子系统包含一或多个组件,例如存储数据的存储器装置。主机系统可将存取请求发送到存储器子系统,以便在存储器子系统处存储数据且从存储器子系统读取数据。
主机系统可将存取请求(例如,写入命令、读取命令)发送到存储器子系统,以便将数据存储在存储器子系统处的存储器装置上,从存储器子系统上的存储器装置读取数据,或相对于存储器子系统上的存储器装置写入/读取构造(例如,提交和完成队列)。如由主机请求指定的待读取或写入的数据在下文中被称为“主机数据”或“用户数据”。
数据可根据区域(例如分区名称空间(ZNS))存储在存储器子系统中。这类存储器子系统可被称为基于区域的存储器子系统或区域存储器子系统。可在存储器子系统中界定各个区域,每一区域可唯一地与用户数据或应用程序的特定集合相关联。举例来说,第一区域可与第一应用程序(或标识为从第一应用程序接收到的用户数据)相关联,且第二区域可与第二应用程序相关联。从第一应用程序接收到的主机数据或用户数据可由存储器子系统存储在第一区域中。所述区域可具有相等或不相等大小,且可跨越裸片上单个块、裸片上多个块、整个裸片或存储器子系统的裸片集合的大小。举例来说,每一区域可跨越对应裸片或裸片集合中的相应组块(或块集合),而非依序跨一排块,且特定应用程序可与跨越单个裸片的给定区域相关联。与所述应用程序相关联的用户或主机数据可存储在单个裸片上的给定区域中。可根据NVM高速(NVMe)规范来界定存储器子系统中的区域。举例来说,可由发布到存储器子系统的一或多个NVMe命令来界定存储器子系统中的区域。如本文中所使用,可将区域激活、复位或离线。区域一旦激活(例如,通过区域激活操作)便可分配(例如,绑定或分派)到一或多个块(例如,分配到块集合),其可在激活时指定。区域一旦激活便可存取以用于存储数据(例如,从区域读取数据或将数据写入到区域)。区域一旦复位(例如,通过区域复位操作)便可取消分配(例如,解除绑定、取消分派、释放)当前分配到区域的一或多个块(例如,块集合),且可标记所述一或多个块以供擦除。可从主机系统角度删除复位的区域。区域一旦离线便无法再使用(例如,从主机系统的角度删除,且不可用于后续激活)。
主机请求可包含用于主机数据的逻辑地址信息(例如,逻辑块地址(LBA)、名称空间),其为主机系统使其与主机数据和其中存储或存取主机数据的特定区域相关联的位置。逻辑地址信息(例如,LBA、名称空间)可为主机数据的元数据的部分。元数据还可包含错误处置数据(例如,错误校正码(ECC)码字、奇偶检验码)、数据版本(例如,用于区分所写入数据的新旧)、有效位图(其LBA或逻辑传送单元含有有效数据)等。
存储器子系统可以对存储在存储器装置上的主机数据发起媒体管理操作,例如写入操作。举例来说,作为垃圾收集管理操作的部分,存储器子系统的固件可将先前写入的主机数据从存储器装置的位置重写到新位置。重写的数据(例如,由固件发起)在下文中被称为“垃圾收集数据”。
下文中的“用户数据”通常指主机数据和垃圾收集数据。下文中的“系统数据”是指由存储器子系统产生和/或维护以用于响应于主机请求而执行操作及用于媒体管理的数据。系统数据的实例包含且不限于系统表(例如,逻辑到物理存储器地址映射表(在本文中也称为L2P表)、来自日志的数据、便笺簿数据(scratch pad data)等)。
存储器装置可以是非易失性存储器装置。非易失性存储器装置为一或多个裸片的封装。每一裸片可包括一或多个平面。对于一些类型的非易失性存储器装置(例如,AND型装置),每一平面包括物理块集合。对于一些存储器装置,块是可擦除的最小区。每一块包括页集合。每一页包括存储数据位的存储器单元集合。存储器装置可为原始存储器装置(例如,NAND),其例如由外部控制器进行外部管理。存储器装置可以是受管理存储器装置(例如,受管理NAND),其为与本地嵌入式控制器组合以用于同一存储器装置封装内的存储器管理的原始存储器装置。存储器装置可划分成一或多个区域,其中每一区域与主机数据或用户数据或应用程序的不同集合相关联。
某些存储器装置,例如NAND型存储器装置,包括一或多个块(例如,多个块),其中那些块中的每一个均包括多个存储器单元。举例来说,存储器装置可包括多个页(也称为字线),其中每一页包括存储器装置的存储器单元子集。(块的)存储器单元的阈值电压(VT)可为实施存储器单元的浮动栅极(例如,NAND晶体管)接通且传导(例如,传导到与存储器单元耦合的位线)的电压。一般来说,将数据写入到这类存储器装置涉及在块的页层级处编程存储器装置(借助于编程操作),且从这类存储器装置擦除数据涉及在块层级处擦除存储器装置(例如,数据的页层级擦除是不可能的)。
存储器装置可包括一或多个块。块可包括:单层级单元(SLC)块,其包括多个SLC;多层级单元(MLC)块,其包括多个MLC;三层级单元(TLC)块,其包括多个TLC;或四层级单元(QLC)块,其包括QLC。
一般来说,存储器子系统执行可在对块执行操作(例如写入、读取或擦除操作)时检测块是否具有错误。针对块检测到的错误可包含块擦除失败、块程序失败或块读取验证失败。错误块通常被标记和/或以其它方式在后续使用中停用。在常规区域存储器子系统中,在检测到块集合(例如,SLC、MLC、TLC、QLC块集合)中的一或多个块具有错误时,区域存储器子系统中的一或多个区域离线以反映基于错误块的区域存储器子系统的存储容量减小。如果检测到相对于未分配(例如,未定界的)块集合中的一或多个块的错误,那么存储器子系统选择要离线的任意区域。通常,所选择的任意区域处于空状态(例如,不存储有效数据),使得用户数据不会丢失或以其它方式受损。另外,存储器子系统的区域的状态存储在例如区域管理表(ZMT)的表中(例如,具有120万个区域的存储器装置上的120万个条目)。常规区域存储器系统可在区域表中搜索空区域以离线,作为错误处置机制(例如,检测错误块并请求停用错误块的机制)的一部分。不利的是,在存储器子系统的区域接近或完全充满数据(例如,用户数据)的情况下,将很少或没有区域处于空状态。此外,由于表的大小和用于存储表的存储器类型(例如,通常存储在大容量存储器装置上,例如动态随机存取存储器(DRAM),其通常比其它类型的存储器运行得慢),可针对用于离线的空区域搜索表的速度可能受到限制。
本文中所描述的各种实施例提供对区域存储器子系统中的区域的延迟调整,其中调整可包含使区域离线。根据一些实施例,计数器用于实施延迟区域调整。举例来说,响应于检测到一或多个块错误,计数器可调整(例如,递增)以指示一或多个区域在未来指定时间待调整(例如,离线或容量减小),所述未来指定时间为例如在主机系统发送请求以激活或复位区域(例如,发送到区域存储器子系统)时。通过这种方式,适当时间可表示延迟时间,且计数器可用于确定(例如,跟踪)对一或多个区域的调整已延迟适当时间的时间。对于一些实施例,存储器子系统检测相对于未分配(例如,未定界的)到区域的块集合(例如,QLC块集合)中的一或多个块,且例如经由计数器(例如,待决区域离线计数器)设置待决离线指示。举例来说,存储器子系统的错误处置器可检测错误且可发送请求以停用一或多个块。随后,响应于从主机系统接收区域激活请求或区域复位请求,一些实施例的存储器子系统检查待决离线指示(例如,待决区域离线计数器),且如果检查确定存在待决离线指示,那么存储器子系统请求失败且将由请求指定的区域转换为经调整或离线,而非处理所述请求(例如,区域激活请求或区域复位请求)。
使用本文中所描述的各种实施例可减少或避免对搜索区域表(例如,ZMT)以确定(例如,识别)在其上执行离线操作的空区域(例如响应于检测块集合中的错误块)的需要。使用本文中所描述的一些实施例可减少或避免对在存储装置几乎充满时对存储器子系统的特殊处置的需要。另外,使用本文中所描述的一些实施例可避免常规区域存储器子系统所面对的潜在相干问题。
如本文中所使用,存储器裸片的物理存储器位置可包括块、页或存储器单元。举例来说,在物理存储器位置包括页或存储器单元的情况下,物理存储器位置集合可表示单个块或多个块。物理存储器位置集合可为连续物理存储器位置集合。如本文中所使用,将数据存储在存储器裸片的一或多个物理存储器位置上可包括将数据写入到一或多个物理存储器位置,其中写入可包括用数据编程块的一或多个页。
本文中公开对支持区域的存储器系统或子系统中的区域的延迟调整的一些实例,如本文中所描述。
图1绘示根据本公开的一些实施例的包含存储器子系统110的实例计算系统100。存储器子系统110可包含媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130),或其组合。
存储器子系统110可以是存储装置、存储器模块,或存储装置和存储器模块的混合。存储装置的实例包含固态硬盘(SSD)、闪存驱动器、通用串行总线(USB)闪存驱动器、安全数字(SD)卡、嵌入式多媒体控制器(eMMC)驱动器、通用闪存存储器(UFS)驱动器和硬盘驱动器(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)接口、UFS接口、光纤通道、串行连接的SCSI(SAS)、小型计算机系统接口(SCSI)、双倍数据速率(DDR)存储器总线、DIMM接口(例如,支持DDR的DIMM套接接口)、开放NAND闪存接口(ONFI),DDR、低功率双倍数据速率(LPDDR),或任何其它接口。物理主机接口可用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过PCIe接口与主机系统120耦合时,主机系统120可进一步利用NVM高速(NVMe)接口来存取组件(例如,存储器装置130)。物理主机接口可提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据和其它信号的接口。图1绘示存储器子系统110作为实例。一般来说,主机系统120可经由同一通信连接、多个单独通信连接和/或通信连接的组合存取多个存储器子系统。
存储器装置130、140可包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以是但不限于随机存取存储器(RAM),例如动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)。
非易失性存储器装置(例如,存储器装置130)的一些实例包含NAND型闪存存储器和就地写入存储器,例如三维(3D)交叉点存储器装置,其为非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列而基于体电阻的改变来执行位存储。另外,与许多基于闪存的存储器相比,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。NAND型闪存存储器包含例如二维(2D)NAND和3D NAND。
存储器装置130中的每一个可包含一或多个存储器单元阵列。一种类型的存储器单元,例如SLC每单元可存储一个位。其它类型的存储器单元,例如MLC、TLC、QLC和五层级单元(PLC)可每单元存储多个位。在一些实施例中,存储器装置130中的每一个可包含一或多个存储器单元阵列,例如SLC、MLC、TLC、QLC或其任何组合。在一些实施例中,特定存储器装置可包含存储器单元的SLC部分,和MLC部分、TLC部分或QLC部分。存储器装置130的存储器单元可分组为页,所述页可指用于存储数据的存储器装置的逻辑单元。对于一些类型的存储器(例如,NAND),页可进行分组以形成块。如本文中所使用,包括SLC的块可被称为SLC块,包括MLC的块可被称为MLC块,包括TLC的块可被称为TLC块,且包括QLC的块可被称为QLC块。
尽管描述了非易失性存储器组件,例如NAND型闪存存储器(例如,2D NAND、3DNAND)和3D交叉点非易失性存储器单元阵列,但存储器装置130可基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、自选存储器、其它基于硫族化物的存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电随机存取存储器(FeRAM)、磁随机存取存储器(MRAM)、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻性随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)、或非(NOR)闪存存储器和电可擦除可编程只读存储器(EEPROM)。
存储器子系统控制器115(或为简单起见,控制器115)可与存储器装置130通信以执行操作,例如在存储器装置130处读取数据、写入数据或擦除数据和其它此类操作。存储器子系统控制器115可包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器或其组合。硬件可包含具有专用(即,硬译码)逻辑的数字电路系统以执行本文中所描述的操作。存储器子系统控制器115可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或其它合适的处理器。
存储器子系统控制器115可包含处理器(处理装置)117,其配置成执行存储在本地存储器119中的指令。在所绘示实例中,存储器子系统控制器115的本地存储器119包含嵌入式存储器,其配置成存储用于执行控制存储器子系统110的操作的各种过程、操作、逻辑流和例程的指令,包含处置存储器子系统110与主机系统120之间的通信。
在一些实施例中,本地存储器119可包含存储存储器指针、所提取的数据等的存储器寄存器。本地存储器119还可包含用于存储微码的ROM。虽然图1中的实例存储器子系统110已绘示为包含存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110不包含存储器子系统控制器115,而是可依赖于外部控制(例如,由外部主机或由与存储器子系统分离的处理器或控制器提供)。
一般来说,存储器子系统控制器115可从主机系统120接收命令或操作,且可将命令或操作转换为指令或适当命令以实现对存储器装置130和/或存储器装置140的所需存取。存储器子系统控制器115可以负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和ECC操作、加密操作、高速缓存操作和与存储器装置130相关联的逻辑地址(例如,LBA、名称空间)与物理存储器地址(例如,物理块地址)之间的地址转译。存储器子系统控制器115可进一步包含主机接口电路系统以经由物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统120接收到的命令转换为命令指令以存取存储器装置130和/或存储器装置140,以及将与存储器装置130和/或存储器装置140相关联的响应转换为用于主机系统120的信息。
存储器子系统110还可包含未绘示的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓存或缓冲器(例如,DRAM)和地址电路系统(例如,行解码器和列解码器),其可从存储器子系统控制器115接收地址且对地址进行解码以存取存储器装置130。
在一些实施例中,存储器装置130包含本地媒体控制器135,其结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器装置130为受管理存储器装置,其为与本地控制器(例如,本地媒体控制器135)组合以在同一存储器装置封装内进行媒体管理的原始存储器装置。受管理存储器装置的实例是受管理NAND(MNAND)装置。
根据本文中所描述的各种实施例,存储器子系统控制器115包含用于区域存储器子系统113的延迟区域调整器(在下文中,延迟区域调整器113),其允许或有助于存储器子系统控制器115实施对存储器子系统110的区域的延迟调整。替代地,延迟区域调整器113中的一些或全部由本地媒体控制器135包含,由此使得本地媒体控制器135能够允许或有助于对存储器子系统110的区域的延迟调整。根据一些实施例,界定在存储器子系统110上的每一区域可分配到存储器装置130、140的一或多个块(例如,块集合)。
根据一些实施例,延迟区域调整器113使存储器子系统控制器115检测相对于未分配(例如,未定界的)块集合中的一或多个块的错误。取决于实施例,错误可以是相对于一或多个块检测到的写错误、读错误和擦除错误中的一个。响应于检测相对于未分配块集合中的一或多个块的错误,延迟区域调整器113可使存储器子系统控制器115调整待决区域离线计数器以指示多一个(例如,额外)区域待进行区域离线操作。
举例来说,调整待决区域离线计数器以指示多一个区域待进行区域离线操作包括使待决区域离线计数器递增(例如,值递增一)。通过调整待决区域离线计数器,区域离线操作可延迟到未来指定时间,且可避免基于状态的对区域表的搜索(例如,以找到空区域)。最终,存储器子系统控制器115可从主机系统120接收对于指定区域的请求,其中请求包括区域激活请求或区域复位请求中的一个。响应于接收请求,延迟区域调整器113可使存储器子系统控制器115基于待决区域离线计数器确定是否至少一个区域待进行区域离线操作。
举例来说,对于一些实施例,在待决区域离线计数器具有非零值(例如,待决区域离线计数器大于零值)时,待决区域离线计数器指示至少一个区域待进行区域离线操作。响应于接收请求并确定待决区域离线计数器并不指示至少一个区域待进行区域离线操作,延迟区域调整器113可使存储器子系统控制器115对指定区域执行来自主机系统120的请求。然而,响应于待决区域离线计数器指示至少一个区域待进行区域离线操作,延迟区域调整器113可使存储器子系统控制器115对指定区域执行区域离线操作。在这样做时,可对待离线的至少一个区域执行延迟离线操作。
另外,响应于待决区域离线计数器指示至少一个区域待进行区域离线操作,延迟区域调整器113可使存储器子系统控制器115调整待决区域离线计数器以指示少一个区域待进行区域离线操作。举例来说,调整待决区域离线计数器以指示少一个区域待进行区域离线操作包括使待决区域离线计数器递减(例如,值递减一)。此外,响应于待决区域离线计数器指示至少一个区域待进行区域离线操作,延迟区域调整器113可使存储器子系统控制器115将(例如,从主机系统120接收到的)请求未能执行的通知发送到主机系统120。
根据一些替代实施例,延迟区域调整器113使存储器子系统控制器115检测相对于未分配(例如,未定界的)块集合中的一或多个块的错误。响应于检测相对于未分配块集合中的一或多个块的错误,延迟区域调整器113可使存储器子系统控制器115调整错误块计数器以反映在未分配块集合中检测到的错误块的数目。
举例来说,调整错误块计数器以指示在未分配块集合中检测到的错误块的数目包括使错误块计数器递增在未分配块集合中检测到的错误块的数目。通过调整错误块计数器,区域调整操作可延迟到未来指定时间,且可避免基于状态的对区域表的搜索(例如,以找到空区域)。最终,存储器子系统控制器115可从主机系统120接收对于指定区域的请求,其中请求包括区域激活请求或区域复位请求中的一个。响应于接收请求,延迟区域调整器113可使存储器子系统控制器115基于错误块计数器确定是否至少一个区域待调整(或离线)。
举例来说,对于一些实施例,在错误块计数器具有非零值(例如,错误块计数器大于零值)时,错误块计数器指示至少一个区域待调整。响应于接收请求并确定错误块计数器并不指示至少一个区域待调整,延迟区域调整器113可使存储器子系统控制器115对指定区域执行来自主机系统120的请求。然而,响应于错误块计数器指示至少一个区域待调整,延迟区域调整器113可使存储器子系统控制器115基于错误块计数器调整指定区域。举例来说,基于错误块计数器调整指定区域可包括响应于错误块计数器具有大于或等于(例如,分配到)指定区域的块数目的值而对指定区域执行区域离线操作。因此,如果错误块计数器指示五个块且具体区域分配到包括四个块的块集合,那么可对指定区域执行区域离线操作以使指定区域离线。
在另一实例中,基于错误块计数器调整指定区域可包括响应于错误块计数器小于指定区域的块数目而基于错误块计数器减小指定区域的容量(例如,大小)。因此,如果错误块计数器指示三个块且具体区域分配到包括四个块的块集合,那么指定区域的容量可减小到一个块(例如,而非指定区域离线)以反映可用于分配到区域的块减少。另外,响应于错误块计数器指示至少一个区域待调整,延迟区域调整器113可使存储器子系统控制器115基于调整指定区域调整错误块计数器。举例来说,基于调整指定区域调整错误块计数器包括基于指定区域的块数目调整错误块计数器,由此反映已调整一个区域。
在指定区域的块数目大于错误块计数器的情况下,错误块计数器将复位(例如,复位到零值),前提是指定区域的容量减小涵盖了仍待考虑的所有错误块。此外,响应于错误块计数器指示至少一个区域待调整,延迟区域调整器113可使存储器子系统控制器115将(例如,从主机系统120接收到的)请求未能执行的通知发送到主机系统120。
图2至5为根据本公开的一些实施例的对支持区域的存储器子系统中的区域的延迟调整的实例方法的流程图。确切地说,图2和3的方法200、300涉及在块集合中检测到的错误块导致区域离线的各种实施例,而图4和5的方法400、500涉及在块集合中检测到的错误块导致容量减小或区域离线的各种实施例。方法200、300、400、500中的任一个可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法200、300、400、500中的一或多个由图1的存储器子系统控制器115基于延迟区域调整器113执行。另外或替代地,对于一些实施例,方法200、300、400、500中的一或多个至少部分地由图1的存储器装置130的本地媒体控制器135执行。虽然以特定顺序或次序展示,但除非另外指定,否则可修改过程的次序。因此,应理解,所绘示实施例仅为实例,且所绘示过程可以不同次序执行,且一些过程可并行地执行。另外,在各个实施例中可以省略一或多个过程。因此,在每一实施例中并不使用所有过程。其它过程流程也是可能的。
现参考图2的方法200,方法200绘示用于基于计数器(例如,待决区域离线计数器)使区域离线的实例方法。对于一些实施例,在存储器子系统110上操作的区域管理器可执行方法200的操作中的一或多个。
在操作202处,处理装置(例如,存储器子系统控制器115的处理器117)从主机系统(例如,120)接收对于指定区域的请求,其中请求包括区域激活请求或区域复位请求中的一个。对于一些实施例,请求包括根据NVME ZNS命令集规范的区域命令。另外,对于一些实施例,此请求可由在存储器子系统110上操作的区域管理器(例如区域和块集合管理器)接收到。响应于由操作202接收到的请求,在操作204处,处理装置(例如,117)基于待决区域离线计数器确定是否至少一个区域待进行区域离线操作。
响应于处理装置(例如,117)在操作204处确定待决区域离线计数器并不指示至少一个区域待进行区域离线操作,在操作212处,处理装置对指定区域执行请求(例如,区域激活或区域复位请求)。然而,响应于处理装置(例如,117)在操作204处确定待决区域离线计数器的确指示至少一个区域待进行区域离线操作,在操作206处,处理装置对指定区域执行区域离线操作,其将指定区域的状态(例如,从作用中)设置为离线。另外,在操作208处,处理装置(例如,117)调整待决区域离线计数器以指示少一个区域待进行区域离线操作。举例来说,在操作208处,处理装置(例如,117)可使待决区域离线计数器的值递减一,从而调整待决区域离线计数器以指示少一个区域待进行区域离线操作。在替代实施例中(例如,其中待决区域离线计数器的负值指示至少一个区域待离线),处理装置(例如,117)可在操作208处使待决区域离线计数器的值递增一,从而调整待决区域离线计数器以指示少一个区域待进行区域离线操作。
在操作210处,处理装置(例如,117)将请求失败的通知发送到主机系统。举例来说,通知可包括指示(请求的)指定区域离线的通知。一些实施例使用NVME ZNS命令集规范,其准许主机命令完成以指示所请求区域离线。另外,区域离线可能是由主机请求的处理导致。
现参考图3的方法300,方法300绘示用于基于检测块集合中的一或多个错误块更新计数器(例如,待决区域离线计数器)的实例方法。对于一些实施例,在存储器子系统110上操作的区域管理器可执行方法300的一或多个操作。
在操作302处,处理装置(例如,117)检测相对于未分配块集合中的一或多个块的错误。检测到的错误的实例可包含但不限于写错误、读错误和擦除错误。对于一些实施例,操作302包括处理装置(例如,117)检测已从(例如,存储器子系统110的)错误处置器接收到请求以停用一或多个块或块集合,以及处理装置确定当前未分配(例如,未定界)由请求指定的一或多个块或块集合。此请求可由在存储器子系统110上操作的区域管理器(例如区域和块集合管理器)接收到。
响应于检测相对于未分配块集合中的一或多个块的错误,在操作304处,处理装置(例如,117)调整待决区域离线计数器以指示多一个区域待进行区域离线操作。举例来说,在操作304处,处理装置(例如,117)可使待决区域离线计数器的值递增一,从而调整待决区域离线计数器以指示多一个区域待进行区域离线操作。在替代实施例中(例如,其中待决区域离线计数器的负值指示至少一个区域待离线),在操作304处,处理装置(例如,117)可使待决区域离线计数器的值递增一,从而调整待决区域离线计数器以指示多一个区域待进行区域离线操作。在操作306期间,处理装置(例如,117)停用检测到一或多个错误块的块集合。
现参考图4的方法400,方法400绘示用于基于计数器(例如,错误块计数器)减小区域的容量或使区域离线的实例方法。对于一些实施例,在存储器子系统110上操作的区域管理器可执行方法400的操作中的一或多个。
在操作402处,处理装置(例如,存储器子系统控制器115的处理器117)从主机系统(例如,120)接收对于指定区域的请求,其中请求包括区域激活请求或区域复位请求中的一个。对于一些实施例,请求包括根据NVME ZNS命令集规范的区域命令。另外,对于一些实施例,此请求可由在存储器子系统110上操作的区域管理器(例如区域和块集合管理器)接收到。响应于由操作402接收到的请求,在操作404处,处理装置(例如,117)基于错误块计数器确定是否至少一个区域待调整。对于一些实施例,对区域的调整可包括区域的容量(例如,大小)的减小或区域的离线。
响应于处理装置(例如,117)在操作404处确定错误块计数器并不指示至少一个区域待调整,在操作412处,处理装置对指定区域执行请求(例如,区域激活或区域复位请求)。然而,响应于处理装置(例如,117)在操作404处确定错误块计数器的确指示至少一个区域待调整,在操作406处,处理装置基于错误块计数器调整指定区域。另外,在操作408处,处理装置(例如,117)基于调整指定区域调整错误块计数器。
对于一些实施例,基于错误块计数器调整指定区域包括响应于错误块计数器具有大于或等于指定区域的块数目的值而对指定区域执行区域离线操作。在这种情况下,错误块计数器具有大于或等于指定区域的块数目的值指示检测到足够数目的错误块(例如,通过图5的方法500)以将指定区域的容量减小到零,因此指定块应离线。另外,在错误块计数器具有大于或等于指定区域的块数目的值(且因此指定区域离线)时,在操作408处,处理装置(例如,117)可通过将错误块计数器减小指定区域的块数目来基于调整指定区域调整错误块计数器,这是因为指定区域的离线并不解决仍需要考虑的所有剩余错误块。
对于一些实施例,基于调整指定区域调整错误块计数器包括响应于错误块计数器具有小于指定区域的块数目的值而基于错误块计数器减小指定区域的容量(例如,大小)。在这种情况下,错误块计数器具有小于指定区域的块数目的值指示检测到不足数目的错误块(例如,通过图5的方法500)以使指定区域的容量离线为零,因此指定块的容量应实际上减小。另外,在错误块计数器具有小于指定区域的块数目的值(且因此指定区域的容量已减小)时,在操作408处,处理装置(例如,117)可通过复位错误块计数器(例如,复位到零值)来基于调整指定区域调整错误块计数器,这是因为指定区域的容量的减小解决仍需要考虑的所有剩余错误块。
在操作410处,处理装置(例如,117)将请求失败的通知发送到主机系统。举例来说,通知可包括指示(请求的)指定区域具有减小的容量或离线的通知。一些实施例使用NVME ZNS命令集规范,其准许主机命令完成以指示所请求区域离线。另外,区域离线可能是由主机请求的处理导致。
现参考图5的方法500,方法500绘示用于基于检测块集合中的一或多个错误块更新计数器(例如,错误块计数器)的实例方法。对于一些实施例,在存储器子系统110上操作的区域管理器可执行方法500的操作中的一或多个。
在操作502处,处理装置(例如,117)检测相对于未分配块集合中的一或多个块的错误。检测到的错误的实例可包含但不限于写错误、读错误和擦除错误。对于一些实施例,操作502包括处理装置(例如,117)检测已从(例如,存储器子系统110的)错误处置器接收到请求以停用一或多个块或块集合,以及处理装置确定当前未分配(例如,未定界)由请求指定的块集合中的一或多个块。此请求可由在存储器子系统110上操作的区域管理器(例如区域和块集合管理器)接收到。
响应于检测相对于未分配块集合中的一或多个块的错误,在操作504处,处理装置(例如,117)调整错误块计数器以反映由操作502检测到的错误块的数目。举例来说,在操作504处,处理装置(例如,117)可使错误块计数器递增通过检测检测到的错误块的数目。在操作506期间,处理装置(例如,117)停用检测到的未分配块集合中的一或多个错误块。
图6提供绘示在一些实施例的上下文中计算环境的组件之间的交互的交互图,其中执行如本文中所描述的对支持区域的存储器子系统中的区域的延迟调整的方法。方法的操作可由处理逻辑进行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法由主机系统(例如,120)、存储器子系统控制器(例如,115)、存储器装置(例如,130或140)或其某一组合执行。虽然操作以特定顺序或次序来展示,但除非另外指定,否则所述过程的次序可修改。因此,应理解,所绘示实施例仅为实例,且所绘示过程可以不同次序执行,且一些过程可并行地执行。另外,在各个实施例中可以省略一或多个过程。因此,在每一实施例中并不使用所有过程。在图6所绘示的实例的上下文中,主机系统可包含主机系统120,存储器子系统控制器可包含存储器子系统控制器115,且存储器装置可包含存储器装置130。
如图6中所示,在操作602处,主机系统120发送对于指定区域的请求,其中请求包括区域激活请求或区域复位请求中的一个。并且,在操作610处,存储器子系统控制器115从主机系统120接收请求。随后,在操作612处,存储器子系统控制器115基于待决区域离线计数器确定是否至少一个区域待进行区域离线操作。响应于存储器子系统控制器115在操作612处确定待决区域离线计数器的确指示至少一个区域待进行区域离线操作,在操作614处,存储器子系统控制器115对指定区域执行区域离线操作,其将指定区域的状态(例如,从作用中)设置为离线。作为区域离线操作的部分,在操作630期间,存储器装置130提供对分配到指定区域的(例如,块集合的)一或多个块的存取以促进离线。在操作616处,存储器子系统控制器115调整待决区域离线计数器以指示少一个区域待进行区域离线操作。另外,在操作618处,存储器子系统控制器115将请求失败的通知发送到主机系统120。在操作604处,主机系统120从存储器子系统110接收请求失败的通知。
图7绘示呈计算机系统700的形式的实例机器,在其内可执行指令集以使机器执行本文中所论述的方法中的任何一或多个。在一些实施例中,计算机系统700可与主机系统(例如,图1的主机系统120)对应,所述主机系统包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)或可用于执行本文中所描述的操作。在替代实施例中,机器可以连接(例如,联网)到局域网(LAN)、内联网、外联网和/或因特网中的其它机器。机器可作为对等(或分散式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器在客户端-服务器网络环境中的服务器或客户端机器的容量中操作。
机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝式电话、网络器具、服务器、网络路由器、交换机或桥接器,或能够(循序或以其它方式)执行指定将由所述机器采取的动作的指令集的任何机器。另外,尽管说明单个机器,但还应认为术语“机器”包含机器的任何集合,所述集合单独地或共同地执行一(或多)个指令集以执行本文中所论述的方法中的任何一或多个。
实例计算机系统700包含处理装置702、主存储器704(例如,ROM、闪存存储器、DRAM,例如SDRAM或Rambus DRAM(RDRAM)等)、静态存储器706(例如,闪存存储器、静态随机存取存储器(SRAM)等),以及数据存储装置718,其经由总线730彼此通信。
处理装置702表示一或多个通用处理装置,例如微处理器、中央处理单元等。更确切地说,处理装置702可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、实施其它指令集的处理器或实施指令集的组合的处理器。处理装置702也可以是一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置702配置成执行指令726,以用于执行本文中所论述的操作和步骤。计算机系统700可进一步包含网络接口装置708以经由网络720通信。
数据存储装置718可包含机器可读存储媒体724(也称为计算机可读媒体),所述机器可读存储媒体上存储有一或多个指令集726或体现本文中所描述的方法或功能中的任何一或多个的软件。指令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所述的系统,其中所述调整所述待决区域离线计数器以指示少一个区域待进行所述区域离线操作包括:
使所述待决区域离线计数器的值递减一。
3.根据权利要求1所述的系统,其中所述操作包括:
检测相对于未分配块集合中的一或多个块的错误;且
响应于检测相对于所述未分配块集合中的所述一或多个块的所述错误,调整所述待决区域离线计数器以指示多一个区域待进行所述区域离线操作。
4.根据权利要求3所述的系统,其中所述调整所述待决区域离线计数器以指示多一个区域待进行所述区域离线操作包括:
使所述待决区域离线计数器的值递增一。
5.根据权利要求3所述的系统,其中所述错误为写错误、读错误和擦除错误中的一个。
6.根据权利要求1所述的系统,其中所述操作包括:
响应于所述待决区域离线计数器未指示至少一个区域待进行所述区域离线操作,对所述指定区域执行所述请求。
7.根据权利要求1所述的系统,其中所述操作包括:
响应于所述待决区域离线计数器指示至少一个区域待进行所述区域离线操作,将所述请求失败的通知发送到所述主机系统。
8.至少一种非暂时性机器可读存储媒体,其包括指令,所述指令在由处理装置执行时使所述处理装置执行包括以下各项的操作:
从主机系统接收对于存储器子系统的多个区域中的指定区域的请求,所述请求包括区域激活请求或区域复位请求中的一个,所述多个区域中的每一区域能够分配到所述存储器子系统的块集合,所述块集合包括一或多个块;且
响应于所述接收所述请求:
基于错误块计数器,确定是否至少一个区域待调整;且
响应于所述错误块计数器指示至少一个区域待调整:
基于所述错误块计数器调整所述指定区域;且
基于所述调整所述指定区域调整所述错误块计数器。
9.根据权利要求8所述的至少一种非暂时性机器可读存储媒体,其中所述基于所述错误块计数器调整所述指定区域包括:
响应于所述错误块计数器具有大于或等于所述指定区域的块数目的值而对所述指定区域执行区域离线操作。
10.根据权利要求9所述的至少一种非暂时性机器可读存储媒体,其中所述基于所述调整所述指定区域调整所述错误块计数器包括:
基于所述指定区域的所述块数目调整所述错误块计数器。
11.根据权利要求10所述的至少一种非暂时性机器可读存储媒体,其中所述基于所述指定区域的所述块数目调整所述错误块计数器包括:
使所述错误块计数器减少所述指定区域的所述块数目。
12.根据权利要求8所述的至少一种非暂时性机器可读存储媒体,其中所述基于所述错误块计数器调整所述指定区域包括:
响应于所述错误块计数器具有小于所述指定区域的块数目的值而基于所述错误块计数器减小所述指定区域的容量。
13.根据权利要求12所述的至少一种非暂时性机器可读存储媒体,其中所述基于所述调整所述指定区域调整所述错误块计数器包括:
复位所述错误块计数器。
14.根据权利要求8所述的至少一种非暂时性机器可读存储媒体,其中所述操作包括:检测相对于未分配块集合中的一或多个块的错误;且
响应于检测相对于所述未分配块集合中的所述一或多个块的所述错误,调整所述错误块计数器以反映通过所述检测检测到的错误块的数目。
15.根据权利要求14所述的至少一种非暂时性机器可读存储媒体,其中所述调整所述错误块计数器以指示在所述未分配块集合中检测到的错误块的所述数目包括:
使所述错误块计数器递增通过所述检测检测到的错误块的所述数目。
16.根据权利要求14所述的至少一种非暂时性机器可读存储媒体,其中所述错误为写错误、读错误和擦除错误中的一个。
17.根据权利要求8所述的至少一种非暂时性机器可读存储媒体,其中所述操作包括:
响应于所述错误块计数器未指示至少一个区域待调整,对所述指定区域执行所述请求。
18.根据权利要求8所述的至少一种非暂时性机器可读存储媒体,其中所述操作包括:
响应于所述错误块计数器指示至少一个区域待调整,将所述请求失败的通知发送到所述主机系统。
19.一种方法,其包括:
在存储器子系统处且从主机系统接收对于存储器子系统的多个区域中的指定区域的请求,所述请求包括区域激活请求或区域复位请求中的一个,所述多个区域中的每一区域能够分配到所述存储器子系统的块集合,所述块集合包括一或多个块;且
响应于所述接收所述请求:
基于待决区域离线计数器,确定是否至少一个区域待进行区域离线操作;且
响应于所述待决区域离线计数器指示至少一个区域待进行所述区域离线操作:
对所述指定区域执行所述区域离线操作;且
调整所述待决区域离线计数器以指示少一个区域待进行所述区域离线操作。
20.根据权利要求19所述的方法,其进一步包括:
检测相对于未分配块集合中的一或多个块的错误;且
响应于检测相对于所述未分配块集合中的所述一或多个块的所述错误,调整所述待决区域离线计数器以指示多一个区域待进行所述区域离线操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/899,801 US12019888B2 (en) | 2022-08-31 | 2022-08-31 | Deferred zone adjustment in zone memory system |
US17/899,801 | 2022-08-31 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117631986A true CN117631986A (zh) | 2024-03-01 |
Family
ID=89999496
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311111677.8A Pending CN117631986A (zh) | 2022-08-31 | 2023-08-31 | 区域存储器系统中的延迟区域调整 |
Country Status (2)
Country | Link |
---|---|
US (1) | US12019888B2 (zh) |
CN (1) | CN117631986A (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11474866B2 (en) * | 2019-09-11 | 2022-10-18 | International Business Machines Corporation | Tree style memory zone traversal |
KR20220023598A (ko) * | 2020-08-21 | 2022-03-02 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
KR20220059259A (ko) * | 2020-11-02 | 2022-05-10 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그 동작 방법 |
-
2022
- 2022-08-31 US US17/899,801 patent/US12019888B2/en active Active
-
2023
- 2023-08-31 CN CN202311111677.8A patent/CN117631986A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US12019888B2 (en) | 2024-06-25 |
US20240069774A1 (en) | 2024-02-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113126907B (zh) | 用于存储器装置的异步电力损失恢复 | |
CN114730300B (zh) | 对区命名空间存储器的增强型文件系统支持 | |
CN113035262B (zh) | 存储器子系统中奇偶校验数据的管理 | |
US20220050772A1 (en) | Data block switching at a memory sub-system | |
US20220171713A1 (en) | Temperature-aware data management in memory sub-systems | |
US20240134554A1 (en) | Smart swapping and effective encoding of a double word in a memory sub-system | |
US20230195350A1 (en) | Resequencing data programmed to multiple level memory cells at a memory sub-system | |
US20220308993A1 (en) | Host system notification based on entry miss | |
CN113377285B (zh) | 用于读取干扰的预测性媒体管理 | |
CN117916719A (zh) | 存储器中的存取跟踪 | |
US11403228B2 (en) | Memory device page program sequence | |
US20230129363A1 (en) | Memory overlay using a host memory buffer | |
CN113555058A (zh) | 存储器装置中使用嵌入式伺服单元的读取电平校准 | |
CN113126906A (zh) | 用于存储器装置的元数据指示 | |
US12019888B2 (en) | Deferred zone adjustment in zone memory system | |
CN115048039B (zh) | 用于基于有效转换单元计数的存储器管理的方法、设备和系统 | |
US11934686B2 (en) | Data reordering at a memory subsystem | |
US20240231695A1 (en) | Managing retention latency for memory devices of vehicle systems | |
US11914471B1 (en) | Block failure protection for zone memory system | |
US11670376B2 (en) | Erasing partially-programmed memory unit | |
CN114817095B (zh) | 用于自动字线状态旁路管理的系统、方法及存储媒体 | |
US11934676B2 (en) | Memory command aggregation to improve sequential memory command performance | |
CN114077404B (zh) | 使存储器单元与主机系统解除关联 | |
CN113495695B (zh) | 用于存取命令的高速缓存标识符 | |
US20240118971A1 (en) | Temporary parity buffer allocation for zones in a parity group |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |