掌桥专利:专业的专利平台
掌桥专利
首页

用于存储器子系统的异步功率损耗处置方法

文献发布时间:2023-06-19 11:39:06


用于存储器子系统的异步功率损耗处置方法

技术领域

本公开的实施例大体上涉及存储器子系统,且更具体来说,涉及用于存储器子系统的异步功率损耗(asynchronous power loss,APL)处置方法。

背景技术

一种存储器子系统可包含存储数据的一或多个存储器装置。存储器装置可为例如非易失性存储器装置和易失性存储器装置。一般来说,主机系统可利用存储器子系统以在存储器装置处存储数据且从存储器装置检索数据。

发明内容

在一个方面中,本公开涉及一种系统,其包括:存储器装置;以及处理装置,其以操作方式与所述存储器装置耦合以执行包括以下各项的操作:确定异步功率损耗(APL)事件发生;确定所述存储器装置的块中的第一擦除页(FEP);从所述FEP确定所述块中的最后写入页(LWP);从所述LWP和对应于所述LWP的对等页读取数据;将来自所述LWP和所述对等页的所述数据复制到所述存储器装置中的临时区域;将所述FEP的写入指针递增所述块中的页的确定性数目;将来自所述临时区域的所述数据复制到所述块中的页位置,所述页位置由所述写入指针识别;将所述写入指针递增所述页的确定性数目;以及通知主机系统所述存储器装置准备好在所述APL事件之后的后续编程操作。

在另一方面中,本公开涉及一种方法,其包括:由处理装置确定包括所述处理装置和存储器装置的系统中发生的异步功率损耗(APL)事件;确定所述存储器装置的块中的第一擦除页(FEP);从所述FEP确定所述块中的最后写入页(LWP);从所述LWP读取数据且从对应于所述LWP的对等页读取额外数据;将来自所述LWP的所述数据和来自所述对等页的所述额外数据复制到所述存储器装置中的临时区域;将所述FEP的写入指针递增所述块中的页的确定性数目;将所述数据和所述额外数据从所述临时区域复制到由所述写入指针识别的所述块中的页位置;将所述写入指针递增所述页的确定性数目;以及通知主机系统所述存储器装置准备好在所述APL事件之后的后续编程操作。

在另一方面中,本公开涉及一种包括指令的非暂时性计算机可读存储媒体,所述指令在由处理装置执行时使所述处理装置进行以下操作:确定异步功率损耗(APL)事件发生;定位存储器装置中的块的最后写入页;确定来自所述最后写入页的数据是可读或可恢复的;将来自所述最后写入页的所述数据复制到所述存储器装置中的临时区域;将写入指针递增到所述块中的空页;将所述数据从所述临时区域复制到所述空页;将所述写入指针递增到所述块中的下一空页;以及通知主机系统所述存储器装置准备好编程操作。

附图说明

根据下文给出的详细描述和本公开的各种实施例的附图,将更充分地理解本公开。

图1图解说明根据本公开的一些实施例的包含存储器子系统的实例计算系统。

图2图解说明根据本公开的一些实施例的检测APL事件且处置潜在受APL事件影响的页而无裕量读取操作的实例方法的流程图。

图3是根据本公开的一些实施例的检测APL事件且处置潜在受APL事件影响的页而无裕量读取操作的另一实例方法的流程图。

图4图解说明根据本公开的一些实施例的由APL处置逻辑使用而无裕量读取操作的实例块映射。

图5图解说明根据本公开的一些实施例的无裕量读取操作的APL处置的实例方法的流程图。

图6是可在其中操作本公开的实施例的实例计算机系统的框图。将在CN申请的34300.780(L0343CN)专利申请案

具体实施方式

本公开的方面是针对用于存储器子系统的APL处置逻辑,包含无保持电容型系统。存储器子系统可为存储装置、存储器模块,或存储装置和存储器模块的混合。下文结合图1描述存储装置和存储器模块的示例。一般来说,主机系统可利用包含一或多个存储器组件(例如,存储数据的存储器装置)的存储器子系统。主机系统可以提供数据以存储在存储器子系统处并且可以请求从存储器子系统检索数据。

存储器装置可为非易失性存储器装置。非易失性存储器装置的一个示例是与非(NAND)存储器装置。下文结合图1描述非易失性存储器装置的其它示例。非易失性存储器装置是一或多个裸片的封装。每个裸片可由一或多个平面组成。平面可分组成逻辑单元(LUN)。对于一些类型的非易失性存储器装置(例如,NAND装置),每一平面包含一组物理块。每一块包含一组页。每一页包含一组存储器单元(“单元”)。单元是存储信息的电子电路。下文中,数据块是指用以存储数据的存储器装置的单元,且可以包含一组存储器单元、字线群组、字线或个别存储器单元。

存储器装置中的每一个可包含一或多个存储器单元阵列。取决于单元类型,单元可以存储二进制信息的一或多个位,且具有与所存储的位数相关的各种逻辑状态。逻辑状态可由二进制值(例如“0”和“1”)或这些值的组合表示。存在各种类型的单元,例如单电平单元(SLC)、多电平单元(MLC)、三电平单元(TLC)以及四电平单元(QLC)。举例来说,SLC可存储一个信息位且具有两个逻辑状态。

大体上,常规存储器子系统可从主机系统接收执行编程操作以将数据存储于存储器装置处的请求。然而,在存储器装置的操作期间,存储器子系统可经历功率损耗,在本文中也被称为异步功率损耗(APL)或APL事件。APL是事前并没有来自主机系统的关断通知的突然且意外的功率损耗。功率损耗会影响一个或多个页。即,当在一个或多个页的数据受功率损耗影响时后续数据读取会失败。相比之下,受控关断是事先存在来自主机系统的通知的功率关断。存储器子系统完成任何未完成的写入操作且保存任何更新的数据寻址信息。在保存所有数据之后,存储器子系统向主机系统发送移除功率是安全的确认消息。

常规存储器子系统响应于APL可搜索存储器装置的块的最后写入页(lastwritten page,LWP),且对最后写入页执行裕量读取操作以确定APL是否造成存储器装置中的数据丢失。可通过定位块的第一擦除页(first erased page,FEP)确定块的LWP。FEP可为可用于在页的顺序映射中编程的下一页,所述顺序映射受存储器子系统的控制器管理。LWP是顺序映射中在FEP之前的页。FEP可为与已经编程的其它页共享同一字线的打开页。类似地,打开块是其中作为同一块的部分的其它页尚未经编程的打开块。裕量读取操作是一组一或多个经擦除页检查、一组一或多个经编程页检查,或其任何组合。裕量读取操作可在读取裕量类型算法中实施。裕量读取算法可包含一组一或多个读取操作,其使用不同裕量读取参考设定来评估页是经擦除还是经编程。举例来说,为了确定LWP是否经编程,裕量读取使用比由正常读取操作用于读取页的默认读取参考电平大的裕量读取参考设定。可通过使读取电压电平偏移某一量的毫伏来移动读取参考电平。如果裕量读取成功,那么LWP是正常写入页(例如,作为不受APL影响的页)且存储器装置中的所有数据经恢复。如果裕量读取未成功,那么做出关于是否由于数据保持损耗或APL而使读取未成功的确定。为了做出此确定,可尝试读取块中的在LWP之前写入的额外页。替代地,可尝试读取LWP附近的其它写入页。在一些实例中,某一数目的块同时经编程,因此与所述块同时经编程的其它块的最后写入页也通过裕量读取操作而被扫描和检查。为了确定在编程期间是否发生APL,可使用常规技术扫描超级块的每个块,这会带来完成的处理延迟。超级块也被称作虚拟块,是在具有相同逻辑块数目的所有LUN中的所有块的逻辑分组。并且,在偏移未恰当地经配置的情况下执行裕量读取操作可导致异步功率损耗的不准确确定,这通过触发叠合会对存储器子系统的性能存在影响。叠合是独立于任何直接主机交互的从一个NAND位置到另一NAND位置的内部数据迁移。执行叠合以将有效数据紧缩在一起(垃圾收集),从而释放更多空间用于新写入操作,用于错误避免,用于耗损均衡,且在错误的情况下恢复独立NAND冗余阵列(RAIN)奇偶校验保护。

将数据存储在具有不同媒体类型的某些存储器装置上依赖于电荷到存储器装置的存储器单元中的精确布置。置于存储器单元上的电荷量可用以表示由所述存储器单元存储的值。取决于安置的电荷量,电流通过存储器单元可能需要施加值特定的阈值电压。存储器单元的可读性关键取决于表示不同存储值的阈值电压的独特性。由于各种存储器单元即使实施于同一衬底上也存在大小、位置和环境的不可避免的变化,因此用于各种存储器单元的对应于给定值的阈值电压是不相同的且处于某个电压宽度的分布内。又只要对应于不同值的分布无关紧要地重叠,就可通过错误校正码来检测并校正偶然错误存储的值。这些分布可能随时间变为移位、加宽或另外失真。这些分布可被表征,且可相应地存储和修改对应读取参考寄存器设定以适应所表征的分布和失真。类似地,用于经擦除页检查和经编程页检查两者的裕量读取操作的读取参考电平需要恰当的表征,以使用经擦除页检查和经编程页检查确定页是否受APL影响。大体来说,在裕量读取算法的经擦除页检查期间,将默认读取参考电平设定成与确定页是否经擦除的情况不同的裕量读取设定。将裕量读取设定设定成小于默认设定,导致其中页通过经擦除页检查但实际上不是经擦除页的错误结果的可能性。即,所述页是伪空页,因为它实际上不是空的,而是包含在被中断的编程编次期间来自编程的电荷或来自前一编程编次的电荷。大体来说,在裕量读取算法的经编程页检查期间,将默认读取参考电平设定成与确定页是否经编程的情况不同的裕量读取设定。在此情况下,将裕量读取设定设定成大于默认设定,导致例如在TLC的第二编程遍次(例如,XX1)期间由迟的APL造成的错误的可能性。在此情况下,用于经编程状态的单元的大多数分布仍小于裕量读取参考设定,但一些可能失败,因为最后分布可能开始通过裕量读取参考设定。

因此,常规APL处置方法可为复杂的,要求不同裕量读取操作的固件实施方案的复杂性、存储器装置的恰当表征以确定用于经擦除页检查和经编程页检查两者的裕量读取操作的读取参考设定。常规APL处置方法经受存储器装置的单元处理和行为变化。由于常规APL处置方法的复杂性,就绪时间(TTR)性能存在问题,特别是有限的硬件控制器能力。

本公开的方面通过提供APL处置逻辑来当已检测到先前功率损耗已发生时处置可能受先前功率损耗影响的数据来解决上述和其它缺陷,同时避免常规技术的许多扫描和裕量读取操作。因此,使存储器子系统达到就绪状态的速度改善,进而带来存储器子系统的较快启动时间和使用较少资源。另外,检测先前功率损耗和选择执行相关联处置程序的过程可增强,因为假定可能受APL影响的所有最后写入页,意味着所有“可读最后写入页”或“可恢复的最后写入页”,被移动到块的临时区域中且重写回作为良好数据,而所有不可恢复的数据被丢弃。“可读页”是无错误读取的页。在一些情况下,从最后写入页读取的数据具有错误,但数据使用读取恢复算法仍可恢复。这些页被视为“可恢复的最后写入页”。本公开的方面不需要任何裕量类型读取操作,例如如本文中所描述的经擦除页检查和经编程页检查。无任何裕量读取类型操作的情况下,消除了用于这些裕量读取操作的资源和时间,且不正确地检测页的风险大大减少。在一些实施方案中,经界定为从最后写入页恢复数据的错误缓解步骤可以最少成本和能量(即,步数和时延)来设计,以进一步减少用于某些设计要求的就绪时间(TTR)度量。

本公开的优点包含但不限于:在响应于APL事件而确定存储器页的状态时的裕量读取操作使用的减少,校准用于裕量读取操作的默认设定的所有可能情况的实验和评估的减少,不正确地检测页的风险的减少,以及用于存储器装置在APL事件之后准备好后续编程操作的TTR度量的减少。

图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)接口、光纤通道、串行附接小型计算机系统接口(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和五电平单元(PLC)可每单元存储多个位。在一些实施例中,存储器装置130中的每一个可包含一或多个存储器单元阵列,例如SLC、MLC、TLC、QLC或这些的任何组合。在一些实施例中,特定存储器装置可包含存储器单元的SLC部分,和MLC部分、TLC部分或QLC部分。存储器装置130的存储器单元可被分组为页,所述页可指用于存储数据的存储器装置的逻辑单元。对于一些类型的存储器(例如,NAND),页可被分组以形成块。

虽然描述例如3D交叉点非易失性存储器单元阵列和NAND型快闪存储器(例如,2DNAND、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及/或存储器装置140的所要存取。存储器子系统控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ECC)操作、加密操作、高速缓存操作和与存储器装置130相关联的逻辑地址(例如,逻辑块地址(LBA)、名字空间)和物理地址(例如,物理块地址)之间的地址转译。存储器子系统控制器115可进一步包含主机接口电路系统以经由物理主机接口与主机系统120通信。主机接口电路可将从主机系统接收的命令转换为命令指令以存取存储器装置130和/或存储器装置140,以及将与存储器装置130和/或存储器装置140相关联的响应转换为用于主机系统120的信息。

存储器子系统110还可以包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含可从存储器子系统控制器115接收地址且对地址进行解码以存取存储器装置130的高速缓冲存储器或缓冲器(例如,DRAM)和地址电路(例如,行解码器和列解码器)。

在一些实施例中,存储器装置130包含本地媒体控制器135,其结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器装置130可以是受管理存储器装置,其为与本地控制器(例如,本地控制器135)组合以在同一存储器装置封装内进行媒体管理的原始存储器装置。受管理存储器装置的实例是受管理NAND(MNAND)装置。

存储器子系统110包含能够针对一或多个存储器装置130和/或140中的每一个检测APL事件且执行APL处置过程的APL组件113。在一些实例中,APL组件113可确定存储器装置的块中的第一擦除页(FEP)且从所述FEP确定所述块中的最后写入页(LWP)。FEP可为可用于在页的顺序映射中编程的下一页,所述顺序映射受控制器115管理。FEP可由写入指针识别。LWP是顺序映射中在FEP之前的页。LWP也可由单独写入指针识别或从写入指针导出。APL组件113从LWP读取数据(或恢复数据)且从对应于LWP的任何对等页读取额外数据。对等页是与LWP有关的页且被视为与LWP在同一页堆叠的部分。举例来说,LWP可为下部页且对等页是同一存储器单元的上部页。对于另一实例,LPW可为上部页且对等页是下部页。由于数据是在逐页基础上经编程和从存储器单元读取,因此可读取与存储器单元相关联的每一页。对于一实例,读取操作可从MLC的下部页读取下部页数据且从MLC的上部页读取上部页数据。APL组件113将来自LWP的数据和来自对等页的额外数据复制到存储器装置中的临时区域,且将FEP的写入点递增指定量,所述指定量对应于块中的页的确定性数目。页的确定性数目通过存储器类型来设定。单电平单元具有等于一的页类型的确定性数目。多电平(或双电平)单元具有等于二的页类型的确定性数目。APL组件113将所述数据和额外数据从临时区域复制到块中的页位置,所述页位置由在递增之后的写入指针识别。在来自临时区域的数据和额外数据复制到所述位置之后,APL组件113将写入指针递增所述指定量(即,页的确定性数目)。APL组件113可针对所述一或多个存储器装置130和/或140的每一块执行这些操作。APL组件113可通知主机系统120存储器子系统110处于就绪状态(例如,准备好主机系统120的后续编程操作)。

在一些实施例中,在LWP处的数据或来自对等页的额外数据是不可读或不可恢复的。如上文所描述,“可读页”是无错误读取的页,且“可恢复的页”是具有错误地读取但其中数据经恢复的页。在这些情况下,丢弃所有不可恢复的数据。在一些实施例中,APL组件113可响应于从控制器115的ECC(未示出)接收到一或多个指示而发起此数据的丢弃,所述指示是ECC未能校正从存储器装置130(或140或未示出的任何其它存储器装置)的LWP读取的数据(和来自任何对等页的额外数据)中的错误。ECC可基于汉明码、里德所罗门码、BCB、低密度奇偶校验(LDPC)算法,或任何其它错误校正算法。

在一些实施例中,存储器子系统控制器115包含APL组件113的至少一部分。举例来说,存储器子系统控制器115可包含处理器117(处理装置),其经配置以执行存储在本地存储器119中以用于执行本文中所描述的操作的指令。在一些实施例中,APL组件113是主机系统120、应用程序或操作系统的部分。在一些实施例中,APL组件113可具有存储于存储器装置130(和/或存储器装置140)中的配置数据、库和其它信息。

下文关于图2-5描述关于APL组件113的操作的另外细节。

图2是根据本公开的一些实施例的检测APL事件且处置潜在受APL事件影响的页而无裕量读取操作的实例方法200的流程图。方法200可由可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合的处理逻辑执行。在一些实施例中,方法200由图1的APL组件113执行。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改所述处理程序的次序。因此,所说明实施例应仅作为实例理解,且所说明过程可以不同次序进行,且一些过程可并行进行。另外,在各种实施例中可以省略一或多个过程。因此,在每一实施例中并非需要全部过程。其它过程流程是可能的。

在操作202处,处理逻辑确定包含处理装置和存储器装置的系统中发生的异步功率损耗(APL)事件。APL是事前并没有来自主机系统的关断通知的突然且意外的功率损耗。因此,当在功率损耗事件之后恢复功率且不存在关断通知时,处理逻辑可确定APL事件发生。在操作204处,处理逻辑确定存储器装置的块中的第一擦除页(FEP)。可从存储FEP的指示的写入指针确定FEP。在另一实施例中,可通过处理逻辑逻辑地搜索块中的FEP而确定FEP。写入点可对应于在递增页的确定性数目之前的FEP的逻辑地址。在另一实施例中,处理逻辑通过从FEP的逻辑地址减去页的确定性数目以获得LWP的逻辑地址而确定FEP。在操作206处,处理逻辑从FEP确定块中的最后写入页(LWP)。如本文所描述,LWP可为在块的顺序映射中在FEP之前的页。在一些情况下,所述页以顺序数字编索引,因此FEP可为所述顺序编号且LWP是FEP的顺序编号减一(例如,FEP-1)。在操作208处,处理逻辑从LWP和对应于LWP的任何对等页读取数据。由于数据是在逐页基础上经编程和从存储器单元读取,因此读取与存储器单元相关联的每一页。对于一实例,读取操作可从MLC的下部页读取下部页数据且从MLC的上部页读取上部页数据。在一种情况下,LWP可为下部页且对等页是上部页。在另一情况下,LWP是上部页且对等页是下部页。在操作210处,处理逻辑将从LWP读取的数据和从对等页读取的任何额外数据复制到存储器装置中的临时区域。举例来说,如果LWP是额外页(XP),经编索引为页30,那么处理逻辑复制存储于XP中的数据以及存储于对等页(例如,下部页(LP)和上部页(UP))中的数据,分别经编索引为页28和29。[在操作212处,处理逻辑将FEP的写入指针递增块中的页的确定性数目。可在来自LWP的数据和来自对等页的额外数据复制到临时区域之后执行操作212。在操作214处,处理逻辑将所述数据和额外数据从临时区域复制到由写入指针识别的块中的页位置。可在操作212处递增写入指针之后执行操作214。在操作216处,处理逻辑将写入指针递增页的确定性数目。可在来自临时区域的数据和额外数据复制到页位置之后执行操作216。在操作218处,处理逻辑通知主机系统存储器装置准备好在APL事件之后的后续编程操作。在一些实施例中,将就绪信号发送到主机系统。在其它实施例中,就绪状态经设定并且可由主机系统读取。在一些情况下,处理逻辑例如通过向主机系统发送指示存储器子系统准备好后续编程操作的就绪信号而向主机系统释放存储器子系统。

在一个实施例中,在操作218处释放存储器子系统之前,处理逻辑从LWP和对应于LWP的对等页丢弃原始数据。这可通过在LWP和对等页中写入虚设数据和/或将LWP和对等页标记为无效而完成。类似地,在操作218处释放存储器子系统之前,处理逻辑可从FEP和对应对等页丢弃原始数据。

在一个实施例中,方法200是对单电平单元执行且页类型的确定性数目是一。在另一实施例中,方法200是对双电平单元(也被称作多电平单元)执行且页类型的确定性数目是二。在另一实施例中,方法200是对三电平单元执行且页类型的确定性数目是三。在另一实施例中,方法200是对四电平单元(也被称作QLC)执行且页类型的确定性数目是四。替代地,方法200是对具有N电平的单元执行且页的确定性数目是N,其中N是正整数。

图3是根据本公开的一些实施例的检测APL事件且处置潜在受APL事件影响的页而无裕量读取操作的实例方法300的流程图。方法300可由可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合的处理逻辑执行。在一些实施例中,方法300由图1的APL组件113执行。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改所述处理程序的次序。因此,所说明实施例应仅作为实例理解,且所说明过程可以不同次序进行,且一些过程可并行进行。另外,在各种实施例中可以省略一或多个过程。因此,在每一实施例中并非需要全部过程。其它过程流程是可能的。

在操作302处,处理逻辑确定包含处理装置和存储器装置的系统中发生的APL事件。在操作304处,处理逻辑确定存储器装置的块中的FEP。可从存储FEP的指示的写入指针确定FEP。在操作306处,处理逻辑使用FEP确定LWP。在操作308处,处理逻辑确定来自LWP的数据和来自对等页的额外数据是否为可读或可恢复的。当数据可读取而无错误时页是可读的。当读取数据具有错误但数据经恢复时页是可恢复的。如果在操作308处页是不可读或不可恢复的,那么将页确定为不可恢复的。处理逻辑响应于在操作308处来自LWP的数据和来自对等页的额外数据是可读或可恢复的确定而在操作310处将读取或恢复的数据和额外数据复制到临时区域,且在操作312处递增写入指针。可在来自LWP的数据和来自对等页的额外数据复制到临时区域之后执行操作312。在操作3214处,处理逻辑将所述数据和额外数据从临时区域复制到由写入指针识别的块中的页位置。可在操作312处递增写入指针之后执行操作314。在操作316处,处理逻辑将写入指针递增页的确定性数目。可在来自临时区域的数据和额外数据复制到页位置之后执行操作316。在操作318处,处理逻辑通知主机系统存储器装置准备好在APL事件之后的后续编程操作。在一些实施例中,将就绪信号发送到主机系统。在其它实施例中,就绪状态经设定并且可由主机系统读取。在一些情况下,处理逻辑例如通过向主机系统发送指示存储器子系统准备好后续编程操作的就绪信号而向主机系统释放存储器子系统。

响应于在操作308处来自LWP的数据或来自对等页的额外数据不可恢复的确定,处理逻辑在操作320处在LWP和对等页上写入虚设数据,且在操作322处在FEP和对应于FEP的对等页上写入虚设数据。在操作324处,处理逻辑例如在第一虚设数据和第二虚设数据写入之后将写入指针递增页的确定性数目。在操作326处,处理逻辑通知主机系统存储器装置准备好在APL事件之后的后续编程操作。

图4图解说明根据本公开的一些实施例的由APL处置逻辑使用而无裕量读取操作的实例块映射400。APL处置逻辑可实施一或多个操作以检测APL事件且处置潜在受APL事件影响的页而无需裕量读取操作。本文中相对于图2的方法200、图3的方法300或其它操作组合描述APL处置逻辑的额外细节。APL处置逻辑搜索对应于块映射400的块中的第一擦除页402(FEP)。APL处置逻辑例如通过从FEP的逻辑地址减去确定性数目而从FEP 402确定最后写入页(LWP)404。举例来说,FEP 402的逻辑地址是31,其为LP,因此LWP具有30的逻辑地址。然而,如果FEP在逻辑地址32处是UP,那么LWP在逻辑地址29处可为UP页。并非对FEP 402执行经擦除页检查和对LWP 404执行经编程页检查以用于裕量读取操作,APL处置逻辑发出读取操作以读取LWP 404和对应对等页作为APL影响页406。由于LWP 404在逻辑地址30处是XP页,因此对等页在逻辑地址28处是LP页,且在逻辑地址29处是UP。如果读取操作成功且数据(和额外数据)是从LWP 404和对等页读取,或如果数据(和额外数据)由错误处置过程恢复,那么APL处置逻辑将LWP 404的数据和来自对应对等页的额外数据复制到存储器装置中的临时区域408。之后,APL处置逻辑可在LWP 404和对应对等页上以及在FEP 402和对应对等页上写入虚设数据,且将写入指针递增到下一空页410。下一空页410是空的且经编索引为在FEP 406之后的下一空页的页,其由写入指针识别。即,写入指针可初始指向FEP 402的地址,并且可被递增页的确定性数目以将写入指针更新到下一空页410。在此实例中的页的确定性数目是到下一空页410的三(例如,FEP+3)。所述三可以指用于块映射400的编号顺序的单位。在其它实施例中,可以其它顺序递增逻辑地址。在将写入指针递增到下一空页410之后,APL处置逻辑将数据和额外数据从临时区域408复制到由递增写入指针识别的下一空页410。APL处置逻辑再次将写入指针更新到第二下一空页412的地址。即,可将下一空页410的写入指针再递增3(例如,FEP+6)以将写入指针更新到第二下一空页412。APL处置逻辑可从LWP 404和对应对等页以及FEP 402和对应对等页丢弃原始数据。APL处置逻辑避免了常规技术用来处置APL事件的许多扫描和裕量读取操作。因此,使存储器子系统达到就绪状态的速度改善,进而带来存储器子系统的较快启动时间和使用较少资源。另外,用于检测先前功率损耗且执行如上文所描述的APL处置过程的APL处置逻辑可增强,因为假定所有最后写入页可能受APL影响,所有可读或可恢复的最后写入页移动到块的临时区域中且经重写回作为良好数据,而所有不可恢复的数据被丢弃。APL处置逻辑不需要任何裕量类型读取,例如如本文中所描述的经擦除页检查和经编程页检查。无任何裕量读取类型操作的情况下,消除了用于这些裕量读取操作的资源和时间,且不正确地检测页的风险大大减少。另外,经界定以恢复来自最后写入页的数据(和/或来自对等页的额外数据)的错误缓解步骤可以最少成本和能量(即,步数和时延)来设计以进一步减少用于某些设计要求的TTR度量。

在另一实施例中,系统包含存储器装置和以操作方式耦合到存储器装置的处理装置。处理装置可包含APL处置逻辑以:确定APL事件发生;确定存储器装置的块中的FEP且从FEP确定块中的LWP;从LWP和对应于LWP的对等页读取数据;将来自LWP的数据和来自对等页的额外数据复制到存储器装置中的临时区域;将FEP的写入指针递增块中的页的确定性数目;将所述数据从临时区域复制到块中的页位置,所述页位置由写入指针识别;再次将写入指针递增页的确定性数目;以及通知主机系统存储器装置准备好在APL事件之后的后续编程操作。在其它实施例中,所述系统可包含多个存储器装置,且APL处置逻辑可处置APL影响页,其中在多个装置中的每一个中识别最后写入页。

在又一实施例中,APL处置逻辑进一步确定来自LWP的数据和来自对等页的额外数据是否为可读的、可恢复的或不可恢复的。响应于来自LWP的数据和来自对等页的额外数据是可读且可恢复的确定,APL处置逻辑读取所述数据和额外数据,将所述数据和额外数据复制到临时区域,且递增写入指针,如上文所描述。然而,响应于来自LWP的数据或来自对等页的额外数据是不可恢复的确定,APL处置逻辑在LWP和对等页上写入第一虚设数据,且在FEP和对应于FEP的对等页上写入第二虚设数据。APL处置逻辑在第一虚设数据和第二虚设数据写入之后将写入指针递增页的确定性数目。

在另一实施例中,APL处置逻辑逻辑地搜索块中的FEP以确定FEP。写入点对应于在递增页的确定性数目之前的FEP的逻辑地址。在另一实施例中,APL处置逻辑从FEP的逻辑地址减去页的确定性数目以获得LWP的逻辑地址来确定LWP。

在又一实施例中,在APL处置逻辑向主机系统释放存储器装置之前,处理逻辑可丢弃来自LWP和对应于LWP的对等页的原始数据,然后通知主机系统存储器装置准备好在APL事件之后的后续编程操作(例如,向主机系统释放存储器装置)。APL处置逻辑也可丢弃来自FEP和对应于FEP的对等页的原始数据,然后通知主机系统存储器装置准备好在APL事件之后的后续编程操作。

在一个实施例中,存储器装置包含一或多个单电平单元,且块中的页的确定性数目是一。在另一实施例中,存储器装置包含一或多个多电平单元,且块中的页的确定性数目是二。在另一实施例中,存储器装置包含一或多个三电平单元,且块中的页的确定性数目是三。在另一实施例中,存储器装置包含一或多个四电平单元,且块中的页的确定性数目是四。替代地,存储器装置可包含具有N个电平的存储器单元,且页的确定性数目等于N。

图5图解说明根据本公开的一些实施例的无裕量读取操作的APL处置的实例方法的流程图。方法500可由可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合的处理逻辑执行。在一些实施例中,方法500由图1的APL组件113执行。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改所述处理程序的次序。因此,所说明实施例应仅作为实例理解,且所说明过程可以不同次序进行,且一些过程可并行进行。另外,在各种实施例中可以省略一或多个过程。因此,在每一实施例中并非需要全部过程。其它过程流程是可能的。

在操作502处,处理逻辑确定APL事件发生。在操作504处,处理逻辑定位存储器装置中的块的最后写入页。在又一实施例中,处理逻辑可定位其它存储器装置中的其它块的最后写入页。举例来说,处理逻辑定位第二存储器装置中的第二块的最后写入页。在操作506处,处理逻辑确定来自最后写入页的数据是可读或可恢复的。类似地,处理逻辑可确定来自第二块的最后写入页的第二数据是可读或可恢复的。在操作508处,处理逻辑将来自最后写入页的数据复制到存储器装置中的临时区域。在多个块具有最后写入页的情况下,处理逻辑还将来自第二块的最后写入页的第二数据复制到存储器装置中的第二临时区域。在操作510处,处理逻辑将写入指针递增到块中的空页。当涉及多个块时,处理逻辑将写入指针递增到块中的每一个中的空页。在操作512处,处理逻辑将来自临时区域的数据复制到空页。类似地,处理逻辑可将来自第二临时区域的数据复制到第二块中的相应空页。在操作514处,处理逻辑将写入指针递增到块中的下一空页。处理逻辑也可相似递增其它块的相应写入指针。举例来说,处理逻辑将第二写入指针递增到第二块中的第三空页。在操作516处,处理逻辑通知主机系统存储器装置准备好编程操作。当涉及多个块时,处理逻辑可在已相应地更新所有块之后通知主机系统。

在又一实施例中在操作504处,处理逻辑通过定位第一空页来定位最后写入页。处理逻辑确定块的第一空页的地址,且从第一空页的地址减去对应于存储器装置的页的确定性数目的数目以获得LWP的逻辑地址。

在又一实施例中,处理逻辑从最后写入页读取数据且从与最后写入页相关联的对等页读取额外数据。如本文所描述,对等页是对应于与最后写入页相同的存储器单元的页。在此实施例中,处理逻辑将来自对等页的额外数据复制到临时区域。并且,处理逻辑在最后写入页和对等页上写入虚设数据。处理逻辑可将来自临时区域的额外数据复制到与空页相关联的空对等页,然后将写入指针递增到块中的下一空页。处理逻辑可丢弃来自最后写入页和对等页的原始数据,然后通知主机系统。

图6图解说明计算机系统600的实例机器,在所述实例机器内可执行用于使机器执行本文中所论述的方法中的任何一或多种的指令集。在一些实施例中,计算机系统600可对应于包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)的主机系统(例如,图1的主机系统120)或可用以执行控制器的操作(例如,执行操作系统以执行对应于图1的APL组件113的操作)。在替代性实施例中,机器可连接(例如联网)到LAN、内联网、外联网和/或互联网中的其它机器。机器可作为对等(或分散式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而在客户端-服务器网络环境中的服务器或客户端机器的容量中操作。

机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝式电话、网络器具、服务器、网络路由器、交换机或桥接器、或能够(依序或以其它方式)执行指定由机器采取的动作的一组指令的任何机器。另外,尽管说明单个机器,但还应认为术语“机器”包含机器的任何集合,所述集合单独地或共同地执行一(或多个)指令集以进行本文中所论述的方法中的任何一或多种。

实例计算机系统600包含处理装置602、主存储器604(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM),例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等)、静态存储器606(例如,快闪存储器、静态随机存取存储器(SRAM)等),及数据存储系统618,它们经由总线630彼此通信。

处理装置602表示一或多个通用处理装置,例如微处理器、中央处理单元或类似物。更特定来说,处理装置可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置602也可为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置602配置成执行用于执行本文中所论述的操作和步骤的指令626。计算机系统600可以进一步包含网络接口装置608以在网络620上通信。

数据存储系统618可包含机器可读存储媒体624(也称为计算机可读媒体或非暂时性计算机可读存储媒体),其上存储有一或多个指令集626或体现本文中所描述的方法或功能中的任一或多种的软件。指令626还可在由计算机系统600执行期间完全或至少部分地驻存在主存储器604内和/或处理装置602内,主存储器604和处理装置602也构成机器可读存储媒体。机器可读存储媒体624、数据存储系统618和/或主存储器604可以对应于图1的存储器子系统110。

在一个实施例中,指令626包含实施对应于APL组件的功能性的指令,所述APL组件检测APL事件且处置可受APL事件影响的最后写入页(例如,图1的APL组件113)。尽管在实例实施例中将机器可读存储媒体624展示为单个媒体,但术语“机器可读存储媒体”应被认为包含存储一组或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的指令集合且致使机器执行本公开的方法中的任何一种或多种的任何媒体。因此,应认为术语“机器可读存储媒体”包含但不限于固态存储器、光学媒体以及磁性媒体。

已关于计算机存储器内的数据位的操作的术语和操作的符号表示而呈现之前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给本领域的其它技术人员的方式。算法或操作此处且大体上构想为产生所需结果的操作的自一致序列。操作是要求对物理量进行物理控制的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操控的电或磁信号的形式。有时,主要出于通用的原因,已经证明将这些信号称为位、值、元件、符号、字符、术语、数目或类似物是方便的。

然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅仅是应用于这些量的方便标签。本公开可以指操控和变换计算机系统的寄存器和存储器内的表示为物理(电子)数量的数据为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。

本公开还涉及一种用于执行本文中的操作的设备。此设备可出于预期目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储在计算机可读存储媒体中,如但不限于任何类型的盘(包含软盘、光盘、CD-ROM和磁性光盘)、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡或适合于存储电子指令的任何类型的媒体,它们各自耦合到计算机系统总线。

本文中呈现的算法、操作和显示在本质上并不与任何特定计算机或其它设备相关。各种通用系统可与根据本文中的教示的程序一起使用,或其可证明构造用以执行所述方法更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现多种这些系统的结构。此外,并不参考任何特定编程语言来描述本公开。应了解,可使用各种编程语言来实施本文中所描述的本公开的教示。

本公开可提供为计算机程序产品或软件,其可包含在其上存储有可用于编程计算机系统(或其它电子装置)以进行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机构。在一些实施例中,机器可读(例如计算机可读)媒体包含机器(例如计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、闪存存储器组件等。

词语“实例”和/或“示范性”在本文中用以意味着“充当实例、例子或说明”。本文中描述为“实例”或“示范性”的任何方面或设计未必应解释为比其它方面或设计优选或有利。而是,词语“实例”或“示范性”的使用希望以具体方式呈现概念。如本申请案中所使用,术语“或”意在意味着包含性的“或”而非排他性的“或”。也就是说,除非另外规定,或从上下文清楚可见,否则“X包含A或B”既定意味着任何自然的包含性排列。也就是说,如果X包括A;X包括B;或X包括A和B两者,那么“X包括A或B”在上述任何情况下都满足。另外,如在本申请案及所附权利要求书中使用的冠词“一”总地来说可以解释为意味着“一或多个”,除非另外规定或从上下文清楚可见表示单数形式。此外,此外,在整篇中使用术语“实施例”或“一个实施例”或“实施例”或“一个实施例”等不旨在表示相同实施例或实施例,除非如此描述。本文中所描述的一个或多个实施例或实施例可在特定实施例或实施例中组合。如本文所使用的术语“第一”、“第二”、“第三”、“第四”等意图作为标记来区分开不同元件,且可能未必具有根据其数字名称的序数含义。

在前述说明书中,已参考其特定实例实施例描述了本公开的实施例。应显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书和图式。

相关技术
  • 用于存储器子系统的异步功率损耗处置方法
  • 从异步功率损耗中恢复存储器
技术分类

06120113008571