CN113539335A - 针对存储器装置的块族跟踪 - Google Patents
针对存储器装置的块族跟踪 Download PDFInfo
- Publication number
- CN113539335A CN113539335A CN202110428522.1A CN202110428522A CN113539335A CN 113539335 A CN113539335 A CN 113539335A CN 202110428522 A CN202110428522 A CN 202110428522A CN 113539335 A CN113539335 A CN 113539335A
- Authority
- CN
- China
- Prior art keywords
- block
- family
- threshold voltage
- memory device
- partition
- 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.)
- Granted
Links
- 238000012545 processing Methods 0.000 claims abstract description 57
- 238000005192 partition Methods 0.000 claims description 102
- 238000000034 method Methods 0.000 claims description 51
- 230000004044 response Effects 0.000 claims description 11
- 230000015654 memory Effects 0.000 abstract description 186
- 238000009826 distribution Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 7
- 238000003491 array Methods 0.000 description 5
- 238000009529 body temperature measurement Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000013519 translation Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 150000004770 chalcogenides Chemical class 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000002618 waking effect Effects 0.000 description 1
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/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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- 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/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
- 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
- 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/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5642—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/04—Arrangements for writing information into, or reading information out from, a digital store with means for avoiding disturbances due to temperature effects
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
Abstract
本申请案涉及针对存储器装置的块族跟踪。一种实例存储器子系统包含:存储器装置;以及以操作方式耦合到所述存储器装置的处理装置。所述处理装置经配置以接收指定逻辑块的识别符和页码的读取命令;将所述逻辑块的所述识别符转译为存储在所述存储器装置上的物理块的物理地址,其中所述物理地址包括存储器装置裸片的识别符;基于与所述存储器装置相关联的块族元数据,识别与所述物理块和所述页码相关联的块族;确定与所述块族和所述存储器装置裸片相关联的阈值电压偏移量;通过将所述阈值电压偏移量施加到与所述存储器装置裸片相关联的基础读取电平电压来计算经修改的阈值电压;以及使用所述经修改的阈值电压,从所述物理块内由所述页码所识别的物理页读取数据。
Description
技术领域
本公开的实施例大体上涉及存储器子系统,且更具体来说,涉及针对存储器装置的基于块族的误差避免。
背景技术
一种存储器子系统可包含存储数据的一或多个存储器装置。存储器装置可为例如非易失性存储器装置和易失性存储器装置。一般来说,主机系统可利用存储器子系统以在存储器装置处存储数据且从存储器装置检索数据。
发明内容
本公开的一个实施例提供一种系统,其包括:存储器装置;以及处理装置,其以操作方式耦合到所述存储器装置,所述处理装置用以:接收指定逻辑块的识别符以及页码的读取命令;将所述逻辑块的所述识别符转译为存储在所述存储器装置上的物理块的物理地址,其中所述物理地址包括存储器装置裸片的识别符;基于与所述存储器装置相关联的块族元数据,识别与所述物理块和所述页码相关联的块族;确定与所述块族和所述存储器装置裸片相关联的阈值电压偏移量;通过将所述阈值电压偏移量施加到与所述存储器装置裸片相关联的基础读取电平电压来计算经修改的阈值电压;以及使用所述经修改的阈值电压,从所述物理块内由所述页码识别的物理页读取数据。
本公开的另一实施例提供一种方法,其包括:通过处理装置,接收指定逻辑块的识别符以及页码的读取命令;将所述逻辑块的所述识别符转译为存储存储器装置上的物理块的物理地址,其中所述物理地址包括存储器装置裸片的识别符;基于与所述存储器装置相关联的块族元数据,识别与所述物理块和所述页码相关联的块族;确定与所述块族和所述存储器装置裸片相关联的阈值电压偏移量;通过将所述阈值电压偏移量施加到与所述存储器装置裸片相关联的基础读取电平电压来计算经修改的阈值电压;以及使用所述经修改的阈值电压,从所述物理块内由所述页码识别的物理页读取数据。
本公开的又一实施例提供一种方法,其包括:通过处理装置,执行写入操作,以将数据页写入到物理存储器装置的物理块;确定所述数据页与新的块族相关联;响应于确定没有新的分区在与当前光标相关联的当前分区群组内可用,创建与所述当前光标相关联的新分区群组;将所述新分区群组的第一分区设置为当前分区;将所述当前分区的块族索引设置为参考所述新的块族;以及将所述当前分区的结束页偏移量设置为参考所述数据页。
附图说明
从下文给出的详细描述和本公开的一些实施例的附图更充分理解本公开。
图1示出根据本公开的一些实施例的包含存储器子系统的实例计算系统。
图2示意性地示出根据本公开的一些实施例的因三层存储器单元所展现的缓慢电荷损失而导致的时间电压移位。
图3描绘示出根据本公开的一些实施例的阈值电压偏移量对编程之后的时间(即,从块已编程开始经过的时间周期)的相依性的实例曲线图。
图4示意性地示出根据本公开的实施例的一组预定义阈值电压偏移量区间。
图5示意性地示出由根据本公开的实施例操作的存储器子系统控制器的块族管理器组件实施的块族管理操作。
图6示意性地示出根据本公开的实施例的为校准选择块族。
图7示意性地示出根据本公开的实施例的由存储器子系统控制器维持来将块分区与块族关联的实例元数据。
图8示意性地示出根据本公开的实施例的由存储器子系统控制器维持来将块族与电压偏移量区间和对应的阈值电压偏移量关联的实例元数据。
图9是通过根据本公开的一些实施例操作的存储器子系统控制器执行读取操作的实例方法的流程图。
图10是由根据本公开的一些实施例操作的存储器子系统控制器实施的识别与指定页相关联的块族的实例方法的流程图。
图11是由根据本公开的一些实施例操作的存储器子系统控制器实施的执行写入操作的实例方法的流程图。
图12是其中本公开的实例可操作的实例计算机系统的框图。
具体实施方式
本公开的实施例是针对存储器装置的基于块族的误差避免。存储器子系统可以是存储装置、存储器模块,或存储装置和存储器模块的混合。下文结合图1描述存储装置和存储器模块的实例。一般来说,主机系统可利用存储器子系统,所述存储器子系统包含一或多个组件,例如存储数据的存储器装置。主机系统可提供数据以存储在存储器子系统处,且可请求从存储器子系统检索数据。
存储器子系统可利用一或多个存储器装置(包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合)来存储主机系统提供的数据。在一些实施例中,非易失性存储器装置可由“与非”(NAND)类型快闪存储器装置提供。下文结合图1描述非易失性存储器装置的其它实例。非易失性存储器装置是一或多个裸片的封装。每一裸片可由一或多个平面组成。平面可分组成逻辑单元(LUN)。对于一些类型的非易失性存储器装置(例如,NAND装置),每一平面由一组物理块组成。每一块由一组页组成。每一页由一组存储器单元(“单元”)组成。单元是存储信息的电子电路。
数据操作可由存储器子系统执行。数据操作可以是主机发起的操作。举例来说,主机系统可在存储器子系统上起始数据操作(例如写入、读取、擦除等)。主机系统可将存取请求(例如,写入命令、读取命令)发送到存储器子系统,例如以便将数据存储在存储器子系统处的存储器装置上,且从存储器子系统上的存储器装置读取数据。如由主机请求指定,待读取或写入的数据在下文中被称作“主机数据”。主机请求可包含用于主机数据的逻辑地址信息(例如,逻辑块地址(LBA)、名字空间),其是主机系统与主机数据相关联的位置。逻辑地址信息(例如,LBA、名字空间)可为主机数据的元数据的部分。元数据还可包含错误处理数据(例如,ECC码字、奇偶检验码)、数据版本(例如,用于区分所写入数据的期限)、有效位图(其LBA或逻辑传送单元含有有效数据)等。
存储器装置包含多个存储器单元,其中的每一者可取决于存储器单元类型存储一或多个信息位。可通过将某一电压施加到存储器单元来编程存储器单元(向其写入),这导致电荷由存储器单元保持,从而允许调制存储器单元所产生的电压分布。此外,精确地控制存储器单元所存储的电荷的量允许建立对应于不同逻辑电平的多个阈值电压电平,从而有效地允许单个存储器单元存储多个信息位:以2n个不同阈值电压电平操作的存储器单元能够存储n个信息位。“阈值电压”本文将指代定义对应于两个逻辑电平的两个相邻电压分布之间的边界的电压电平。因此,可通过将存储器单元所展现的测得电压与一或多个参考电压电平进行比较以便区分用于单层级单元的两个逻辑电平以及用于多电层级单元的多个逻辑电平来执行读取操作。
归因于被称为缓慢电荷损失的现象,存储器单元的阈值电压随着单元的电荷降级而及时改变,其被称作“时间电压移位”(因为使电荷降级导致电压分布沿电压轴朝较低电压电平移位)。阈值电压首先快速改变(紧接在存储器单元被编程之后),且接着相对于从单元编程事件开始经过的时间以大致对数线性方式减慢。因此,未能减轻缓慢电荷损失所导致的时间电压移位可导致读取操作中增加的位误差率。
然而,各种常见实施方案无法充分解决时间电压移位,或使用导致高位误差率和/或展现其它缺点的低效策略。本公开的实施例通过实施使用基于的块族误差避免策略的存储器子系统来解决上述和其它不足,从而显著改进存储器子系统所展现的位误差率。
根据本公开的实施例,针对按块族分组的经编程块选择性地跟踪时间电压移位,且将基于具有某一块族的块隶属的适当的电压偏移量施加到基础读取电平,以便执行读取操作。“块族”在本文中将指代一组块(其可包含一或多个完整和/或局部块,后者在本文被称作“分区”),其已编程在指定时间窗和指定温度窗内。由于编程之后经过的时间和温度是影响时间电压移位的主要因素,所以推测单个块族内的所有块和/或分区在存储器单元中展现类似的阈值电压分布,且因此将要求将相同的电压偏移量施加到基础读取电平以用于读取操作。“基础读取电平”在本文中将指代存储器单元在紧接在编程之后所展现的初始阈值电压电平。在一些实施方案中,基础读取电平可存储在存储器装置的元数据中。
可相对于块编程事件异步创建块族。在说明性实例中,每当从最后一个块族的创建开始已经过指定时间周期(例如预定数目的分钟)或存储器单元的参考温度已改变了超过指定阈值,就可创建新的块族。存储器子系统控制器可维持作用中块族的识别符,其在一或多个块正在编程时与所述块相关联。
存储器子系统控制器可周期性地执行校准过程,以便使每个块族的每一裸片与预定义阈值电压偏移量区间中的一者相关联,所述预定义阈值电压偏移量区间又与将为读取操作施加的电压偏移量相关联。块与块族以及块族和裸片与阈值电压偏移量区间的关联可存储在存储器子系统控制器所维持的相应元数据表中。
在一些实施方案中,完整或局部块(分区)与块族的关联可按照块族表与分区群组的链表的组合存储。按照块数目索引的块族表为每一块存储与所述块的第一分区相关联的块族、所述块的所述第一分区的结束页偏移量,以及到所述分区的第一群组的链接(即,所述分区的第一群组在群组表中的索引)。每一群组包含至多预定数目(例如七个)分区,使得群组表为每一分区指定其块族关联、其结束页偏移量,以及用于在每一群组内实施对分搜索的跳过页偏移量,如本文在下文参考图7到9更详细地描述。
因此,在接收到读取命令后,存储器子系统控制器可识别与读取命令所指定的逻辑地址所识别的存储器页相关联的块族,识别与块族和块存在于其上的裸片相关联的阈值电压偏移量区间,通过将与阈值电压偏移量区间相关联的阈值电压偏移量叠加地施加到基础读取电平来计算新的阈值电压,且使用新的阈值电压来执行读取操作,如本文在下文更详细描述。
因此,根据本公开的一些实施例实施的系统和方法的优点包含(但不限于)通过维持跟踪推测展现类似电压分布的块(块族)的群组的元数据,且基于其块族关联为块的受限子集选择性地执行校准操作,来改进读取操作中的位误差率,如本文在下文更详细描述。
图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套接接口)、开放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型快闪存储器包含(例如)二维NAND(2D NAND)和三维NAND(3D NAND)。
存储器装置130中的每一者可包含一或多个存储器单元阵列。一种类型的存储器单元,例如,单层级单元(SLC)可每单元存储一个位。其它类型的存储器单元,例如多层级单元(MLC)、三层级单元(TLC)和四层级单元(QLC)可每单元存储多个位。在一些实施例中,存储器装置130中的每一者可包含一或多个存储器单元阵列,例如SLC、MLC、TLC、QLC或此类存储器单元阵列的任何组合。在一些实施例中,特定存储器装置可包含存储器单元的SLC部分,以及MLC部分、TLC部分或QLC部分。存储器装置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可使用剥离方案,根据此方案,每个数据有效负载(例如用户数据)利用存储器装置130(例如NAND型快闪存储器装置的多个裸片),使得有效负载分布在整个裸片子集,而剩余的一或多个裸片用以存储误差校正信息(例如奇偶校验位)。因此,本文将跨使用剥离方案的存储器装置的一组裸片分布的一组块称为“超级块”。
存储器子系统110还可包含未示出的额外电路或组件。在一些实施例中,存储器子系统110可包含高速缓存或缓冲器(例如,DRAM)和地址电路(例如,行解码器和列解码器),其可从控制器115接收地址且对地址进行解码以存取存储器装置130。
在一些实施例中,存储器装置130包含本地媒体控制器135,其与存储器子系统控制器115结合操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器装置130是受管理存储器装置,其为与本地控制器(例如,本地控制器135)组合以在同一存储器装置封装内进行媒体管理的原始存储器装置。受管理存储器装置的实例是受管理NAND(MNAND)装置。
存储器子系统110包含块族管理器组件113,其可用以根据本公开的实施例实施基于块族的误差避免策略。在一些实施例中,控制器115包含块族管理器组件113的至少一部分。举例来说,控制器115可包含处理器117(处理装置),其经配置以执行存储在本地存储器119中的用于执行本文中所描述的操作的指令。在一些实施例中,块族管理器组件113是主机系统120、应用程序或操作系统的部分。块族管理器组件113可管理与存储器装置130相关联的块族,如本文在下文更详细描述。
图2示意性地示出三层级存储器单元所展现的缓慢电荷损失所导致的时间电压移位。虽然图2的说明性实例利用三层级单元,但可得到相同观察结果,且因此相同的补救措施适用于单层级单元和多层级单元,以便补偿缓慢电荷损失。
如本文在上文所述,可通过将某一电压施加到存储器单元来编程存储器单元(向其写入),这导致电荷由存储器单元保持,从而允许调制存储器单元所产生的电压分布。精确地控制存储器单元所存储的电荷的量允许建立对应于不同逻辑电平的多个阈值电压电平,从而有效地允许单个存储器单元存储多个信息位:以2n个不同阈值电压电平操作的存储器单元能够存储n个信息位。
在图2中,每一曲线图220A到220N示出由相应写入电平(其可假定在分布的中点)编程以编码对应逻辑电平(在TLC的情况下,“000”到“111”)的存储器单元所产生的电压分布。为了区分相邻分布(对应于两个不同逻辑电平),定义阈值电压电平(由竖直虚线所示),使得低于阈值电平的任何测得电压与所述对相邻分布中的一个分布相关联,而大于或等于阈值电平的任何测得电压与所述对相邻分布中的另一分布相关联。
如从比较实例图表210和230所见,其分别反映紧接在编程之后以及编程之后440个小时的时间周期,电压分布在时间上归因于缓慢电荷损失而改变,这导致阈值电压电平的值漂移,其由竖直虚线所示。根据本公开的各种实施例,针对按块族分组的经编程块选择性地跟踪时间电压移位,且将基于具有某一块族的块隶属的适当的电压偏移量施加到基础读取电平,以便执行读取操作。
图3描绘示出阈值电压偏移量310对编程320之后的时间(即,从块已被编程开始经过的时间周期)的相依性的实例曲线图300。如由图3示意性地示出,将存储器装置的块分组成块族330A到330N,使得每一块族包含已在指定时间窗和指定温度窗内编程的一或多个完整或局部块。如在本文在上文所述,由于编程之后经过的时间和温度是影响时间电压移位的主要因素,所以推测单个块族310内的所有块和/或分区在存储器单元中展现类似的阈值电压分布,且因此将需要相同的电压偏移量来进行读取操作。
可相对于块编程事件异步创建块族。在说明性实例中,每当从最后一个块族的创建开始已经过指定时间周期(例如预定数目的分钟),或每当从当前块族的创建开始,存储器单元的参考温度(其以指定时间间隔更新)已改变了超过指定阈值,那么图1的存储器子系统控制器115可创建新的块族。
新创建的块族可与区间0相关联。接着,存储器子系统控制器可周期性地执行校准过程,以便使每个块族的每一裸片与预定义阈值电压偏移量区间(在图3的说明性实例中,区间0到7)中的一者关联,所述区间由与将对读取操作施加的电压偏移量相关联。块与块族以及块族和裸片与阈值电压偏移量区间的关联可存储在存储器子系统控制器所维持的相应元数据表中。
图4示意性地示出根据本公开的实施例的一组预定义阈值电压偏移量区间(区间0到区间9)。如图4示意性地示出,可将阈值电压偏移量曲线图细分为多个阈值电压偏移量区间,使得每一区间对应于阈值电压偏移量的预定范围。虽然图4的说明性实例定义了十个区间,但在其它实施方案中,可使用各种其它数目的区间(例如64个区间)。基于周期性地执行的校准过程,存储器子系统控制器使每个块族的每一裸片与一阈值电压偏移量区间关联,所述阈值电压偏移量区间定义将施加到基础电压读取电平以便执行读取操作的一组阈值电压偏移量,如本文在下文更详细描述。
图5示意性地示出由根据本公开的实施例操作的存储器子系统控制器的块族管理器组件实施的块族管理操作。如图5示意性地示出,块族管理器510可将作用中块族的识别符520维持在存储器变量中,所述识别符在光标530A到530K的一或多个块编程时与之相关联。“光标”在本文中将大体上指代正对其写入数据的存储器装置上的位置。
存储器子系统控制器可利用通电分钟(POM)时钟来跟踪块族的创建时间。在一些实施方案中,除POM时钟之外,可利用当控制器处于各种低电力状态时继续运行的较不准确的时钟,使得在控制器从低电力状态唤醒后,即刻基于较不准确的时钟来更新POM时钟。
因此,在每一块族的初始化后,当前时间540作为块族开始时间550存储在存储器变量中。当编程所述块时,将当前时间540与块族开始时间550进行比较。响应于检测到当前时间540与块族开始时间550的差异大于或等于指定时间周期(例如预定数目的分钟),更新存储作用中块族识别符520的存储器变量,以存储下一块族数目(例如下一循序整数数目),且更新存储块族开始时间550的存储器变量以存储当前时间540。
块族管理器510还可维持用于存储每一存储器装置的选定裸片的高和低参考温度的两个存储器变量。在每一块族的初始化后,高温560和低温570变量存储存储器装置的选定裸片的当前温度的值。在操作中,虽然作用中块族识别符520保持相同,但周期性地获得温度测量值,并将其与相应地更新的所存储的高温560和低温570值,进行比较:发现温度测量值应大于或等于高温变量560所存储的值,后者经更新以存储温度测量值;相反,发现温度测量值降到低温变量570所存储的值以下,后者经更新以存储温度测量值。
块族管理器510可进一步周期性地计算高温560与低温570之间的差。响应于确定高温560与低温570之间的差大于或等于指定温度阈值,块族管理器510可创建新的作用中块族:存储作用中块族识别符520的存储器变量经更新以存储下一块族数目(例如下一循序整数数目),存储块族开始时间550的存储器变量经更新以存储当前时间540,且高温560和低温570变量经更新以存储存储器装置的选定裸片的当前温度的值。
在编程完整或局部块时,存储器子系统控制器使所述块(或其分区)与当前作用中的块族关联。在说明性实例中,由于编程是在页层级上进行的,所以可在与一个块族相关联的时间周期内编程一个块的页(分区)的一个子集,而可在与另一块族相关联的下一时间周期内编程所述块的下一分区,等等。因此,每一完整或局部块与对应块族的关联由块族元数据580反映,其可由块族表和群组链表的组合表示,如本文在下文参考图7到9更详细描述。
如本文在上文中所述,基于周期性地执行的校准过程,存储器子系统控制器使每个块族的每一裸片与一阈值电压偏移量区间关联,所述阈值电压偏移量区间定义将施加到基础电压读取电平以便执行读取操作的一组阈值电压偏移量。校准过程涉及相对于正校准的块族内指定数目的随机选定块,利用不同阈值电压偏移量执行读取操作,以及挑选使读取操作的错误率最小化的阈值电压偏移量。
图6示意性地示出根据本公开的实施例的为校准选择块族。如图6示意性地示出,存储器子系统控制器可将校准操作限制于每一区间中的最旧块族(例如区间0中的块族610和区间1中的块族620),由于其为最旧块族,归因于缓慢电荷损失,其在当前区间的任何其它块族之前偏移到下一区间。
如本文在上文中所述,每一完整或局部块与对应块族的关联由块族元数据反映,块族元数据可由块族表和分区群组链表的组合表示,其可用于为给定页或一组页识别相关联的块族以及对应的阈值电压偏移量区间用于执行读取操作。
图7示意性地示出根据本公开的实施例的由存储器子系统控制器维持来将块分区与块族关联的实例元数据。如图7示意性地示出,存储器子系统控制器可维持块族表710,其按块数目720索引。块族表710的每一记录为所述记录的索引所参考的块指定与所述块的页的连续集合相关联的块族的识别符730,其中页码并不超过所述记录所指定的结束页码740。换句话说,块族表710的第i个记录将第i个块的页的至少一个子集映射到所述第i个记录所指定的块族730,使得页的所述子集包含具有从0到第i个记录所指定的结束页码740的其相应页码的页。
群组字段750的空值指示不再有分区当前与所述块相关联。除非结束页码740指定所述块的最后一页(即,结束页码等于所述块中的页数减一),否则快闪转译层可在编程所述块的页的下一子集后,即刻使那些页与那时的当前块族关联,且通过创建新的分区来反映所述关联(其将涉及创建第一分区群组760A)。
如本文在上文所述,由于编程是在页层级上进行的,所以可在与一个块族相关联的时间周期内编程一个块的页(分区)的第一子集,而可在与另一块族相关联的下一时间周期内编程所述块的下一分区,等等。因此,可将第i个块的剩余页(即,具有超过结束页码740所指定的值的页码的页)分裂成一或多个连续的页(分区)集合,使得包含一或多个页的每一分区与相应的块族相关联。
将给定块的分区(除了以页码0开始的包含结束页码-1个页的第一分区)分组成分区群组760A到760N,其组织在链表中,使得给定块的第一分区群组760A由块族表710的群组字段750的参考,且每一分区群组(例如群组760A)参考与给定块相关联的下一分区群组(例如群组760N)。
每一群组760包含至多预定数目(例如七)个分区770A到770K。对于每一分区770,群组表760指定其块族关联772,其结束页偏移量774以及跳过页偏移量776,以用于在群组内实施对分搜索。
群组表760的每一分区记录770的记录为所述记录的索引所参考的分区指定与所述分区相关联的块族的识别符772,以及所述分区的结束页码774。换句话说,群组表760的每一记录将对应分区映射到所述记录所指定的块族772,使得所述分区包含具有从先前分区的结束页到当前分区的结束页减一的编号的页。
下一群组字段770的空值指示不再有分区当前与所述块相关联。除非当前分区群组760A的最后一个分区的结束页码776指定所述块的最后一页(即,结束页码等于所述块中的页数减一),否则快闪转译层可在编程所述块的页的下一子集后,使那些页与那时当前的块族相关,且通过创建新的分区来反映所述关联(这将涉及创建新的分区群组760N,并通过将当前分区群组760A的下一群组字段770设置成指向下一分区群组760N,来将其链接到当前分区群组760A)。
跳过页偏移量字段776指定将添加到结束页码774的偏移量,以便确定对应于所述群组的剩余分区的中点的页码,从而允许在所述群组内实施对分搜索。因此,在群组内搜索给定页码的计算复杂性将不超过ceil(log2(M)),其中M指定单个群组760内的分区数,且ceil(x)是返回等于或超过其自变量x的最小整数的函数。在图7的说明性实例中,群组内的分区数为7,且因此在群组内搜索给定页码的计算复杂性将不超过ceil(log27)=3。
可通过从第一群组开始,遍历群组链表来识别正确的群组。如果指定页码小于或等于群组的结束页码,那么搜索当前群组以识别包含指定页码的分区。否则,如果指定页码超过结束页码,那么搜索下一群组(由群组表760的字段780识别)。当识别到群组需要链表遍历时,识别对应于给定页码的块族的总计算复杂性是群组数目的线性函数。
如本文在上文所述,在识别到与给定页或一组页相关联的块族后,存储器子系统控制器可即刻识别与所述块族相关联的阈值电压偏移量区间以及所述块存在于其上的裸片,通过将与阈值电压偏移量区间相关联的阈值电压偏移量叠加地施加到基础读取电平来计算新的阈值电压,且使用所述新的阈值电压来执行读取操作。
图8示意性地示出根据本公开的实施例的由存储器子系统控制器维持来将块族与电压偏移量区间和对应的阈值电压偏移量关联的实例元数据。如图8示意性地示出,存储器子系统控制器可维持区间表810以及偏移量表820。
区间表810由块族数目索引,使得区间表810的每一记录为所述记录的索引所参考的块族指定与块族的相应裸片相关联的一组阈值电压偏移量区间。换句话说,区间表810的每一记录包含一向量,其每一元素指定与所述向量元素的索引所参考的裸片相关联的阈值电压偏移量区间。将与块族裸片相关联的阈值电压偏移量区间可由校准过程确定,如本文在上文更详细描述。
最后,偏移量表820由区间编号索引。偏移量表820的每一记录指定与阈值电压偏移量区间相关联的一组阈值电压偏移量(例如针对TLC、MLC和/或SLC)。
元数据表710、769、810和820可存储在图1的一或多个存储器装置130上。在一些实施方案中,元数据表的至少一部分可高速缓存在图1的存储器子系统控制器115的本地存储器119中。
在操作中,在接收到读取命令后,存储器子系统控制器确定对应于读取命令所指定的逻辑块地址(LBA)的物理地址。物理地址的组成部分,例如物理块编号、页码和裸片识别符用于执行元数据表格遍历:首先,使用块族表710和群组表760A到760N来识别对应于所述物理块编号和所述页码的块族识别符。接着,将块族识别符用作到区间表810的索引,以便确定与所述块族和所述裸片相关联的阈值电压偏移量区间;最后,将所识别的阈值电压偏移量区间用作到偏移量表820的索引,以便确定对应于所述区间的阈值电压偏移量。存储器子系统控制器可接着将所识别的阈值电压偏移量叠加地施加到基础电压读取电平,以便执行所请求的读取操作。
在图8的说明性实例中,利用块族4作为到族表820的索引,以便确定裸片0映射到区间3。将后者值用作到偏移量表的索引,以便确定区间3的阈值电压偏移量值。
图9是通过根据本公开的一些实施例操作的存储器子系统控制器执行读取操作的实例方法的流程图。方法900可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法900是由图1的块族管理器组件113执行。虽然以特定序列或次序来示出,但是除非另外规定,否则可修改操作的次序。因此,应理解,所示出的实施例仅为实例,且所示出的操作可以不同次序执行,且一些操作可并行地执行。另外,在一些实施例中,可省略一或多个操作。因此,在每个实施例中并不要求所示出的全部操作,且其它处理流程是可能的。
在操作910处,存储器子系统控制器的处理装置接收指定将读取的页的逻辑地址的读取命令。逻辑地址可包含含有所述页的逻辑块的逻辑块地址(LBA),以及所述块内的页码。
在操作920处,处理装置将逻辑地址转译成存储在存储器装置上的块的物理地址(PA)。在说明性实例中,转译涉及在与存储器装置相关联的逻辑到物理(L2P)表中查找LBA。L2P表包含多个映射记录,使得每一映射记录将LBA映射到对应的物理块地址。对于快闪存储器装置,物理地址可包含信道识别符、裸片识别符、页识别符、平面识别符和/或帧识别符。
在操作930处,处理装置基于与存储器装置相关联的块族元数据来识别与在操作920处计算的物理地址相关联的块族,以及读取命令所指定的页码。在说明性实例中,处理装置利用图7的块族表710和相关联的群组表760A到760N,以便识别与物理地址相关联的块族,如本文在下文参考图10更详细描述。
在操作940处,处理装置确定与块族和存储器装置裸片相关联的阈值电压偏移量。在说明性实例中,处理装置利用图8的块区间表810,以便确定对应于块族识别符与裸片识别符的组合的区间识别符。处理装置接着利用图8的偏移量表820来为所识别的阈值电压偏移量区间确定阈值电压偏移量。
在操作950处,处理装置通过将所识别的阈值电压偏移量施加到与存储器装置相关联的基础读取电平电压来计算经修改的阈值电压。如本文在上文所述,基础读取电平电压可存储在存储器装置的元数据区域中。
在操作960处,处理装置利用所计算的经修改阈值电压来执行所请求的读取操作。响应于完成操作960,方法终止。
图10是由根据本公开的一些实施例操作的存储器子系统控制器实施的识别与指定页相关联的块族的实例方法的流程图。方法1000可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法1000由图1的块族管理器组件113执行。虽然以特定序列或次序来示出,但是除非另外规定,否则可修改操作的次序。因此,应理解,所示出的实施例仅为实例,且所示出的操作可以不同次序执行,且一些操作可并行地执行。另外,在一些实施例中,可省略一或多个操作。因此,在每个实施例中并不需要所示出的全部操作,且其它处理流程是可能的。
在操作1010处,存储器子系统控制器的处理装置接收物理块编号以及所述块内的页码。在说明性实例中,快闪转译层可基于通过存储器子系统控制器所接收到的读取命令指定的LBA而产生物理块编号,如本文在上文更详细描述。
在操作1015处,处理装置利用物理块编号作为到与存储器装置相关联的块族表中的索引,从而识别与物理块编号相关联的块族记录。
响应于在操作1020处确定输入页码小于或等于所识别的族块记录所指定的结束页码,方法分支到操作1040。否则,处理在操作1025处继续。
在操作1025处,处理装置初始化当前群组指针,以指向族块记录的群组字段所参考的第一分区群组。
在操作1030处,处理装置在当前群组内执行对分搜索。如果当前分区未能含有输入页码,那么每一分区记录的跳过页偏移量字段指定将添加到结束页码的偏移量,以便确定对应于所述群组的剩余分区的中点的页码。
响应于在操作1035处确定输入页码小于或等于当前分区的结束页码,处理在操作1040处继续;否则,方法分支到操作1045,以将当前群组指针设定为指向下一群组,且回环到操作1030。
在操作1040处,所述方法返回与当前分区相关联的块族索引,其接着用于识别阈值电压区间和相关联的阈值电压偏移量,如本文在上文更详细描述。
图11是由根据本公开的一些实施例操作的存储器子系统控制器实施的执行写入操作的实例方法的流程图。方法1100可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法1100由图1的块族管理器组件113执行。虽然以特定序列或次序来示出,但是除非另外规定,否则可修改操作的次序。因此,应理解,所示出的实施例仅为实例,且所示出的操作可以不同次序执行,且一些操作可并行地执行。另外,在一些实施例中,可省略一或多个操作。因此,在每个实施例中并不需要所示出的全部操作,且其它处理流程是可能的。
在操作1110处,存储器子系统控制器的处理装置执行写入操作,以将数据页写入到物理存储器装置。
响应于确定,在操作1115处,数据页应与新块族相关联,处理在操作1120处继续;否则,方法分支到操作1145。可基于从编程当前光标的先前页开始经过的时间和/或移位到与当前光标的当前块族相关联的温度窗之外的温度,来执行新块族的确定。
响应于在操作1120处确定新分区在与当前光标相关联的当前分区群组内可用,处理在操作1135处通过处理装置使当前分区数目递增继续,且所述处理在操作1140处继续。
否则,响应于在操作1120处确定没有新的分区在与当前光标相关联的当前分区群组内可用,处理装置在操作1125处创建与当前光标相关联的新分区群组,且在操作1130处,初始化当前分区指针以参考新创建的分区群组的第一分区。创建新的分区群组涉及更新当前群组的下一群组指针以参考新创建的群组;将当前群组的下一群组指针更新为空值,以指示这是与所述物理块相关联的链表的最后一个分区群组。处理在操作1140处继续。
在操作1140处,处理装置设置当前分区的块族索引来参考新的块族。
在操作1145处,处理装置设置当前分区的结束页偏移量,以参考刚刚已编程的页,且所述方法终止。
图12示出计算机系统1200的实例机器,在所述实例机器内,可执行用于致使机器执行本文中所论述的方法中的任何一或多种的指令集。在一些实施例中,计算机系统1200对应于主机系统(例如图1的主机系统120),其包含、耦合到或利用存储器子系统(例如图1的存储器子系统112)或可用以执行控制器的操作(例如以执行操作系统来进行对应于图1的块族管理器组件113的操作)。在替代性实施例中,机器可连接(例如连网)到LAN、内联网、外联网和/或因特网中的其它机器。机器可作为对等(或分布式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而以客户端-服务器网络环境中的服务器或客户端机器的容量进行操作。
机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂巢式电话、网络器具、服务器、网络路由器、交换机或桥接器,或能够(依序或以其它方式)执行指定将由所述机器采取的动作的一组指令的任何机器。另外,尽管说明单个机器,但还应认为术语“机器”包含机器的任何集合,所述集合单独地或共同地执行一(或多)个指令集以进行本文中所论述的方法中的任何一或多种。
实例计算机系统1200包含处理装置1202、主存储器1204(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM),例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等)、静态存储器1212(例如,快闪存储器、静态随机存取存储器(SRAM)等)以及数据存储系统1218,它们经由总线1230彼此通信。
处理装置1202表示一或多个通用处理装置,例如微处理器、中央处理单元等等。更特定来说,处理装置可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置1202也可以是一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等等。处理装置1202经配置以执行用于执行本文中所论述的操作和步骤的指令1228。计算机系统1200可进一步包含网络接口装置1212以经由网络1220通信。
数据存储系统1218可包含机器可读存储媒体1224(也称为计算机可读媒体),其上存储有一或多组指令1228或体现本文中所描述的方法或功能中的任何一或多种的软件。指令1228还可在其由计算机系统1200执行期间完全或至少部分地驻存在主存储器1204内和/或处理装置1202内,主存储器1204和处理装置1202也构成机器可读存储媒体。机器可读存储媒体1224、数据存储系统1218和/或主存储器1204可对应于图1的存储器子系统112。
在一个实施例中,指令1228包含实施对应于图1的块族管理器组件113的功能性的指令。尽管在实例实施例中,将机器可读存储媒体1224示出为单个媒体,但应认为术语“机器可读存储媒体”包含存储一或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的一组指令且致使机器执行本公开的方法中的任何一种或多种的任何媒体。因此将采用术语“计算机可读媒体”来包含但不限于固态存储器、光学媒体和磁性媒体。
已在针对计算机存储器内的数据位的操作的算法和符号表示方面呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给所属领域的其他技术人员的方式。在本文中,且一般将算法构想为产生所要结果的操作的自洽序列。操作是要求对物理量进行物理操纵的操作。通常(但未必),这些量采用能够存储、组合、比较以及以其它方式操纵的电或磁信号的形式。已经证实,主要出于常用的原因,将这些信号称为位、值、元素、符号、字符、项、编号等等有时是便利的。
然而,应牢记,所有这些和类似术语将与适当物理量相关联,且仅仅为应用于这些量的便利标记。本公开可以指控制和变换计算机系统的寄存器及存储器内的表示为物理(电子)数量的数据为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作及过程。
本公开还涉及用于执行本文中的操作的设备。这一设备可以出于所需目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。这种计算机程序可存储在计算机可读存储介质中,例如但不限于任何类型的盘,包含软盘、光盘、CD-ROM以及磁性光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡,或适合于存储电子指令的任何类型的介质,其各自连接到计算机系统总线。
本文中呈现的算法和显示器在本质上并不与任何特定计算机或其它设备相关。各种通用系统可以与根据本文中的教示的程序一起使用,或可以证明构造用以执行所述方法更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现各种这些系统的结构。另外,未参考任何特定编程语言来描述本公开。应了解,可使用各种编程语言来实施如本文中所描述的本公开的教示内容。
本公开可提供为计算机程序产品或软件,其可包含在其上存储有可用于编程计算机系统(或其它电子装置)以进行根据本公开的过程的指令的机器可读介质。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器装置等。
在前述说明书中,本公开的实施例已经参照其特定实例实施例进行描述。将显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本发明进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书和图式。
Claims (20)
1.一种系统,其包括:
存储器装置;以及
处理装置,其以操作方式耦合到所述存储器装置,所述处理装置用以:
接收指定逻辑块的识别符以及页码的读取命令;
将所述逻辑块的所述识别符转译为存储在所述存储器装置上的物理块的物理地址,其中所述物理地址包括存储器装置裸片的识别符;
基于与所述存储器装置相关联的块族元数据,识别与所述物理块和所述页码相关联的块族;
确定与所述块族和所述存储器装置裸片相关联的阈值电压偏移量;
通过将所述阈值电压偏移量施加到与所述存储器装置裸片相关联的基础读取电平电压来计算经修改的阈值电压;以及
使用所述经修改的阈值电压,从所述物理块内由所述页码识别的物理页读取数据。
2.根据权利要求1所述的系统,其中所述块族包括已经在以下各项中的至少一者内编程的多个块:指定时间窗或指定温度窗。
3.根据权利要求1所述的系统,其中所述块族元数据包括包含多个记录的第一表,其中所述多个记录中的一记录使所述物理块的页的至少一子集与所述块族关联。
4.根据权利要求3所述的系统,其中所述记录进一步参考与所述物理块相关联的分区群组的链表,且其中每一分区群组包含至少一预定数目的分区记录。
5.根据权利要求4所述的系统,其中每一分区记录指定所述物理块的分区的结束页以及与所述分区相关联的块族。
6.根据权利要求1所述的系统,其中所述块族元数据包括包含多个记录的第二表,其中所述多个记录中的一记录使所述块族的多个裸片与相应的阈值电压偏移量区间关联。
7.根据权利要求1所述的系统,其中所述块族元数据包括包含多个记录的第三表,其中所述多个记录中的一记录使阈值电压偏移量区间与将施加到相应的基础电压读取电平以用于执行读取操作的一或多个阈值电压关联。
8.一种方法,其包括:
通过处理装置,接收指定逻辑块的识别符以及页码的读取命令;
将所述逻辑块的所述识别符转译为存储存储器装置上的物理块的物理地址,其中所述物理地址包括存储器装置裸片的识别符;
基于与所述存储器装置相关联的块族元数据,识别与所述物理块和所述页码相关联的块族;
确定与所述块族和所述存储器装置裸片相关联的阈值电压偏移量;
通过将所述阈值电压偏移量施加到与所述存储器装置裸片相关联的基础读取电平电压来计算经修改的阈值电压;以及
使用所述经修改的阈值电压,从所述物理块内由所述页码识别的物理页读取数据。
9.根据权利要求8所述的方法,其中所述块族包括已经在以下各项中的至少一者内编程的多个块:指定时间窗或指定温度窗。
10.根据权利要求8所述的方法,其中所述块族元数据包括包含多个记录的第一表,其中所述多个记录中的一记录使所述物理块的页的至少一子集与所述块族关联。
11.根据权利要求10所述的方法,其中所述记录进一步参考与所述物理块相关联的分区群组的链表,且其中每一分区群组包含至少一预定数目的分区记录。
12.根据权利要求11所述的方法,其中每一分区记录指定所述物理块的分区的结束页以及与所述分区相关联的块族。
13.根据权利要求8所述的方法,其中所述块族元数据包括包含多个记录的第二表,其中所述多个记录中的一记录使所述块族的多个裸片与相应的阈值电压偏移量区间关联。
14.根据权利要求8所述的方法,其中所述块族元数据包括包含多个记录的第三表,其中所述多个记录中的一记录使阈值电压偏移量区间与将施加到相应的基础电压读取电平以用于执行读取操作的一或多个阈值电压关联。
15.一种方法,其包括:
通过处理装置,执行写入操作,以将数据页写入到物理存储器装置的物理块;
确定所述数据页与新的块族相关联;
响应于确定没有新的分区在与当前光标相关联的当前分区群组内可用,创建与所述当前光标相关联的新分区群组;
将所述新分区群组的第一分区设置为当前分区;
将所述当前分区的块族索引设置为参考所述新的块族;以及
将所述当前分区的结束页偏移量设置为参考所述数据页。
16.根据权利要求15所述的方法,其中所述新的块族包括已经在以下各项中的至少一者内编程的多个块:指定时间窗或指定温度窗。
17.根据权利要求15所述的方法,其进一步包括:
基于与所述存储器装置相关联的块族元数据,识别与所述物理块和所述数据页相关联的块族;
确定与所述块族相关联的阈值电压偏移量;
通过将所述阈值电压偏移量施加到与所述存储器装置相关联的基础读取电平电压来计算经修改的阈值电压;以及
使用所述经修改的阈值电压来读取所述数据页。
18.根据权利要求17所述的方法,其中所述块族元数据包括包含多个记录的表,其中所述多个记录中的一记录使所述块族的多个裸片与相应的阈值电压偏移量区间关联。
19.根据权利要求15所述的方法,其中确定所述数据页与所述新的块族相关联是基于以下各项中的至少一者执行的:从编程所述当前光标的先前页开始已经过的时间周期,以及所述存储器装置移位到与所述当前光标的当前块族相关联的温度窗之外的温度。
20.根据权利要求15所述的方法,其中创建所述新分区群组进一步包括:更新当前分区群组的下一群组指针以参考所述新分区群组。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/854,282 | 2020-04-21 | ||
US16/854,282 US11347434B2 (en) | 2020-04-21 | 2020-04-21 | Block family tracking for memory devices |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113539335A true CN113539335A (zh) | 2021-10-22 |
CN113539335B CN113539335B (zh) | 2024-07-23 |
Family
ID=78081891
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110428522.1A Active CN113539335B (zh) | 2020-04-21 | 2021-04-21 | 针对存储器装置的块族跟踪 |
Country Status (2)
Country | Link |
---|---|
US (2) | US11347434B2 (zh) |
CN (1) | CN113539335B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11354043B1 (en) * | 2020-11-24 | 2022-06-07 | Micron Technology, Inc. | Temperature-based block family combinations in a memory device |
US12079065B2 (en) * | 2022-08-31 | 2024-09-03 | Micron Technology, Inc. | Caching lookup tables for block family error avoidance |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120173841A1 (en) * | 2010-12-31 | 2012-07-05 | Stephan Meier | Explicitly Regioned Memory Organization in a Network Element |
US20150117107A1 (en) * | 2013-10-27 | 2015-04-30 | Fusion-Io, Inc. | Read operation for a non-volatile memory |
US20160118129A1 (en) * | 2014-10-24 | 2016-04-28 | Micron Technology, Inc. | Read voltage adjustment |
US20160124641A1 (en) * | 2014-10-29 | 2016-05-05 | Kyung-Ryun Kim | Memory device, memory system, method of operating a memory device, and method of operating a memory system |
US20160328183A1 (en) * | 2015-05-07 | 2016-11-10 | Silicon Motion, Inc. | Methods for accessing data in a circular block mode and apparatuses using the same |
US20190004734A1 (en) * | 2017-06-30 | 2019-01-03 | Western Digital Technologies, Inc. | Operating parameter offsets in solid state memory devices |
CN110010184A (zh) * | 2017-12-27 | 2019-07-12 | 三星电子株式会社 | 读取数据的方法、控制存储控制器的方法以及存贮设备 |
CN110998735A (zh) * | 2017-08-04 | 2020-04-10 | 美光科技公司 | 具有读取电平校准的存储器装置 |
US20200117590A1 (en) * | 2018-10-11 | 2020-04-16 | Micron Technology, Inc. | Unretiring memory device blocks |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9437320B1 (en) * | 2014-04-15 | 2016-09-06 | Marvell International Ltd. | Joint detecting and decoding system for nonvolatile semiconductor memory with reduced inter-cell interference |
US11231863B2 (en) * | 2019-12-19 | 2022-01-25 | Micron Technology, Inc. | Block family-based error avoidance for memory devices |
-
2020
- 2020-04-21 US US16/854,282 patent/US11347434B2/en active Active
-
2021
- 2021-04-21 CN CN202110428522.1A patent/CN113539335B/zh active Active
-
2022
- 2022-04-18 US US17/722,856 patent/US11720289B2/en active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120173841A1 (en) * | 2010-12-31 | 2012-07-05 | Stephan Meier | Explicitly Regioned Memory Organization in a Network Element |
US20150117107A1 (en) * | 2013-10-27 | 2015-04-30 | Fusion-Io, Inc. | Read operation for a non-volatile memory |
US20160118129A1 (en) * | 2014-10-24 | 2016-04-28 | Micron Technology, Inc. | Read voltage adjustment |
US20160124641A1 (en) * | 2014-10-29 | 2016-05-05 | Kyung-Ryun Kim | Memory device, memory system, method of operating a memory device, and method of operating a memory system |
US20160328183A1 (en) * | 2015-05-07 | 2016-11-10 | Silicon Motion, Inc. | Methods for accessing data in a circular block mode and apparatuses using the same |
US20190004734A1 (en) * | 2017-06-30 | 2019-01-03 | Western Digital Technologies, Inc. | Operating parameter offsets in solid state memory devices |
CN110998735A (zh) * | 2017-08-04 | 2020-04-10 | 美光科技公司 | 具有读取电平校准的存储器装置 |
CN110010184A (zh) * | 2017-12-27 | 2019-07-12 | 三星电子株式会社 | 读取数据的方法、控制存储控制器的方法以及存贮设备 |
US20200117590A1 (en) * | 2018-10-11 | 2020-04-16 | Micron Technology, Inc. | Unretiring memory device blocks |
Also Published As
Publication number | Publication date |
---|---|
US20220236920A1 (en) | 2022-07-28 |
US20210326069A1 (en) | 2021-10-21 |
US11720289B2 (en) | 2023-08-08 |
CN113539335B (zh) | 2024-07-23 |
US11347434B2 (en) | 2022-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11886726B2 (en) | Block family-based error avoidance for memory devices | |
US11842772B2 (en) | Voltage bin boundary calibration at memory device power up | |
US11886336B2 (en) | Managing workload of programming sets of pages to memory device | |
US11847317B2 (en) | Managing bin placement for block families of a memory device based on trigger metric valves | |
US11676664B2 (en) | Voltage bin selection for blocks of a memory device after power up of the memory device | |
US11720289B2 (en) | Block family tracking for memory devices | |
US20220068396A1 (en) | Voltage offset bin selection by die group for memory devices | |
US11675511B2 (en) | Associating multiple cursors with block family of memory device | |
EP4002129A1 (en) | Time-based combining for block families of a memory device | |
US11675509B2 (en) | Multiple open block families supporting multiple cursors of a memory device | |
US20220129154A1 (en) | Managing bin placement for block families of a memory device using trigger metric scores | |
US11823722B2 (en) | Determining voltage offsets for memory read operations | |
US20240061600A1 (en) | Empty page scan operations adjustment |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |