用于存储器系统上的功率损耗操作的保持自测试的制作方法

文档序号:26537783发布日期:2021-09-07 20:22阅读:79来源:国知局
用于存储器系统上的功率损耗操作的保持自测试的制作方法

1.本公开的实施例通常涉及存储器子系统,且更具体地,涉及存储器子系统的存储器组件中的保持自测试,其具有用于存储器子系统上的功率损耗操作的保持自测试。


背景技术:

2.存储器子系统可以是存储系统,例如固态驱动器(ssd)或硬盘驱动器(hdd)。存储器子系统可以是存储器模块,例如双列直插存储器模块(dimm)、小型dimm(so

dimm)或非易失性双列直插存储器模块(nvdimm)。存储器子系统可以包含存储数据的一或多个存储器组件。存储器组件可以是例如非易失性存储器组件和易失性存储器组件。一般来说,主机系统可利用存储器子系统在存储器组件处存储数据并从存储器组件检索数据。
附图说明
3.从以下给出的详细描述和从本公开的各种实施例的附图将更全面地理解本公开。
4.图1示出根据本公开的一些实施例的包含存储器子系统的实例计算环境。
5.图2是根据本公开的一些实施例的用于执行保持自测试以确定存储器子系统是否能够提供足够的能量来满足掉电操作的保持要求的实例方法的流程图。
6.图3是根据本公开的一些实施例的检查存储器系统的次级电源中的缺陷的实例方法的流程图。
7.图4是根据本公开的一些实施例的响应于功率损耗事件来验证ssd的保持电路满足如预期的保持标准的实例方法的流程图。
8.图5是根据本公开的一些实施例的具有保持能量源、一或多个媒体组件、存储芯片和具有保持自测试模式的控制器的ssd的框图。
9.图6是本公开的实施例可在其中操作的实例计算机系统的框图。
具体实施方式
10.本公开的各方面涉及用于功率损耗操作的存储器子系统中的保持自测试。存储器子系统在下文中也被称为“存储器装置”或“存储装置”。存储器子系统的实例是经由外围互连(例如,输入/输出总线、存储区域网络)耦合到中央处理单元(cpu)的存储装置。存储装置的实例包含固态驱动器(ssd)、闪存驱动器、通用串行总线(usb)闪存驱动器和硬盘驱动器(hdd)。存储器子系统的另一实例是经由存储器总线耦合到cpu的存储器模块。存储器模块的实例包含双列直插存储器模块(dimm)、小型dimm(so

dimm)、非易失性双列直插存储器模块(nvdimm)等。存储器子系统可以是例如混合存储器/存储子系统。一般来说,主机系统可利用包含一或多个存储器组件的存储器子系统。主机系统可提供将被存储在存储器子系统处的数据,并且可请求将从存储器子系统被检索的数据。
11.存储器子系统可包含可存储来自主机系统的数据的多个存储器组件。每个存储器组件可以包含不同类型的媒体。媒体的实例包含但不限于非易失性存储器和基于闪存的交
叉点阵列,诸如单级单元(slc)存储器、三级单元(tlc)存储器和四级单元(qlc)存储器。
12.常规存储器系统中的一个特定问题是常规存储器系统不能验证存储器系统在保持期间具有足够的功率以完成预期操作。保持能量是在来自主外部电源的功率损耗的情况下由存储器系统使用的能量。当存在功率损耗时,存储器系统可使用二次电源,例如电容器阵列、电池、来自旋转磁盘的能量等,以允许存储器系统执行功率损耗操作集合。所述功率损耗操作集合可以是各种操作,但是可以包含写入应当通过功率损耗来保存的数据,例如从主机装置和存储器组件转变的数据、存储在存储器系统的易失性存储器中的数据等。为了具有足够的能量来确保可以执行所述功率损耗操作集合,常规存储器系统被设计成过度补偿保持能量。另一个问题是无法估计这些常规存储器系统中的多余能量的量。这从设计的观点来看是有问题的,因为可能不必要地使用额外的电容器。而且,在常规存储器系统的部署期间,不能检测到二次电源中的缺陷,例如电容器阵列中的一个开路电容器。类似地,这些存储器系统的常规测试不能检测其它保持电路缺陷,例如开路电容器、不当电阻器设置、不当存储芯片功能等。
13.本公开的各方面通过估计可以用特定保持设计完成的操作的数目以显示其是否满足预期设计参数(例如保持要求)来解决以上和其它缺陷。本公开的各方面可用于需要维持数据完整性(即,期望将数据写入并保存到磁盘)的系统中,尤其是在功率损耗的情况下。本公开的各方面还可用于在功率被损耗之后需要特殊扩展过程的任何情形。特殊扩展过程允许系统在切断系统电源之后进行一些活动。本公开的各方面可用作客户诊断以评估当在现场部署时驱动器上的保持设计是否仍在规范内。对于潜在的安全关键的应用,例如汽车,可以使用自测试来监测和诊断满足客户可靠性要求、故障检测要求等所需的特定缺陷。保持自测试的本公开不需要特定的硬件支持、外部测量连接或探测点,这降低了成本和板复杂性。在一些安全关键应用的情况下,可以进行硬件修改,使得装置可以完全自测试保持要求。在其它情况下,存在与主机装置的协调以切断系统电源来启动本文所述的保持自测试。本公开的保持自测试可检测保持电路中的边际退化,表明导致保持电路不满足缺陷标准的缺陷。可通过显示完成保持操作(本文中也称为功率损耗操作)的能力降低来检测边缘降级。自测试可以用作驱动能量建模的相关点,例如蒙特卡罗驱动能量建模,允许更好地理解可用的驱动功率和消耗的功率。这可导致更好地理解设计标准和产生更好的设计,例如通过允许设计选项以通过移除不需要的能量存储(例如,电容器)或允许在掉电时执行可用于性能改进的附加功率损耗操作来降低成本。保持自测试可以通过测量可用能量和所需功率来估计驱动器完成保持操作的实际能力。实际的控制器和存储器组件参与功率估计,因此放置的材料所需的能量被结合到测量中。
14.在一个实施方案中,存储器系统包含功率管理器电路、多个存储器组件和控制器。功率管理器从外部电源或二次电源供应功率,并且在功率损耗的情况下可以在功率模式之间转变。响应于执行用于检测二次电源中的缺陷的自测试的请求,控制器可以识别存储器组件中的可用块集合。可用块集合可以是存储器组件中的一或多个的可用块。可替代地,控制器可识别存储器位置中的可用存储器位置集合。存储器位置可以是可记录测试进度的可用非易失性媒体的一部分。控制器检测来自外部电源的功率被损耗的功率损耗状况。响应于检测到所述功率损耗状况,控制器以指定模式将测试数据连续地写入所述可用块集合中,直到在所述功率损耗状况期间通过向所述控制器和所述多个存储器组件供应功率来消
耗来自所述二次电源的功率量为止。响应于来自所述外部电源的所述功率的恢复,控制器从所述可用块集合读取写入的数据结果,并且至少使用所述写入的数据结果来确定所述二次电源是否有缺陷。当成功完成的写入操作的数目满足缺陷标准时,控制器可确定二次电源有缺陷。缺陷标准可以对应于执行功率损耗操作集合以符合保持要求所需的最小能量容量。响应于检测到所述缺陷,控制器例如通过存储记录、发送消息、发送信号等来报告二次电源的缺陷。例如,控制器可以通过主机装置、日志或其它机制来报告测试结果。可替代地,控制器可发信号通知存储器系统可能使用外部通信受到损害。
15.在一些情况下,控制器识别nand或nor特定技术中的可用块。在另一实施例中,响应于执行用于检测二次电源中的缺陷的自测试的请求,控制器可以识别一或多个存储器位置的集合,而与所使用的存储器技术无关。存储器位置或块可以在设置期间而不是在功率损耗之后被识别为任务。存储器位置或块可以是可用的非易失性媒体的任何部分以记录测试进展。应注意,保持测试可包含不直接导致媒体写入的活动。
16.图1说明根据本公开的一些实施例的包含存储器子系统110的实例性计算环境100。存储器子系统110可以包含媒体,例如存储器组件112a至112n。存储器组件112a至112n可以是易失性存储器组件、非易失性存储器组件或其组合。在一些实施例中,存储器子系统是存储系统。存储系统的实例是ssd。在一些实施例中,存储器子系统110是混合存储器/存储子系统。一般来说,计算环境100可以包含使用存储器子系统110的主机系统120。例如,主机系统120可以将数据写入到存储器子系统110并从存储器子系统110读取数据。
17.主机系统120(本文中也称为主机装置)可以是计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置或包含存储器和处理装置的此类计算装置。主机系统120可包含或耦合到存储器子系统110,使得主机系统120可从存储器子系统110读取数据或将数据写入到所述存储器子系统。主机系统120可经由物理主机接口耦合到存储器子系统110。如本文中所使用,“耦合到”一般指组件之间的连接,其可以是间接通信连接或直接通信连接(例如,没有中间组件),无论是有线的还是无线的,包含例如电、光、磁等连接。物理主机接口的实例包含但不限于串行高级技术附件(sata)接口、外围组件互连快速(pcie)接口、通用串行总线(usb)接口、光纤通道、串行附接scsi(sas)等。物理主机接口可用于在主机系统120与存储器子系统110之间传输数据。主机系统120可进一步利用nvm快速(nvme)接口,以在存储器子系统110通过pcie接口与主机系统120耦合时存取存储器组件112a至112n。物理主机接口可提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据和其它信号的接口。
18.存储器组件112a至112n可包含不同类型的非易失性存储器组件和/或易失性存储器组件的任何组合。非易失性存储器组件的实例包含负及(nand)型快闪存储器。存储器组件112a至112n中的每一者可包含存储单元的一或多个阵列,诸如单级单元(slc)或多级单元(mlc)(例如,三级单元(tlc)或四级单元(qlc))。在一些实施例中,特定存储器组件可以包含存储器单元的slc部分和mlc部分两者。每一存储器单元可存储主机系统120所使用的一或多个数据位(例如,数据块)。尽管描述了诸如nand型闪速存储器的非易失性存储器组件,但是存储器组件112a至112n可基于诸如易失性存储器的任何其它类型的存储器。在一些实施例中,存储器组件112a至112n可以是但不限于随机存取存储器(ram)、只读存储器(rom)、动态随机存取存储器(dram)、同步动态随机存取存储器(sdram)、相变存储器(pcm)、
磁随机存取存储器(mram)、负或(nor)快闪存储器、电可擦除可编程只读存储器(eeprom)和非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列,基于体电阻的变化执行位存储。此外,与许多基于闪存的存储器相比,交叉点非易失性存储器可以执行原位写入操作,其中可以在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。此外,存储器组件112a至112n的存储单元可被分组为存储器页或数据块,其可指代用于存储数据的存储器组件的单元。
19.存储器系统控制器115(下文称为“控制器”)可与存储器组件112a至112n通信以执行例如在存储器组件112a至112n处读取数据、写入数据或擦除数据等的操作和其它此类操作。控制器115可以包含硬件(例如一或多个集成电路和/或离散组件)、缓冲存储器或其组合。控制器115可为微控制器、专用逻辑电路(例如,现场可编程门阵列(fpga)、专用集成电路(asic)等)或其它合适的处理器。控制器115可以包含被配置成执行存储在本地存储器119中的指令的处理器(处理装置)117。在所示出的实例中,控制器115的本地存储器119包含嵌入式存储器,其被配置成存储用于执行各种过程、操作、逻辑流程及例程的指令,所述指令控制存储器子系统110的操作,包含处理存储器子系统110与主机系统120之间的通信。在一些实施例中,本地存储器119可包含存储存储器指针、被取出的数据等的存储器寄存器。本地存储器119还可包含用于存储微代码的只读存储器(rom)。虽然图1中的实例存储器子系统110已被示出为包含控制器115,但在本公开的另一实施例中,存储器子系统110不包含控制器115,且可替代地依赖于外部控制(例如,由外部主机或由与存储器子系统分离的处理器或控制器提供)。
20.通常,控制器115可从主机系统120接收命令或操作,并且可将所述命令或操作转换成指令或适当命令以实现对存储器组件112a至112n的期望存取。控制器115可负责其它操作,例如损耗均衡操作、垃圾收集操作、检错和纠错码(ecc)操作、加密操作、高速缓存操作,以及与存储器组件112a至112n相关联的逻辑块地址与物理块地址之间的地址转换。控制器115可进一步包含通过物理主机接口与主机系统120通信的主机接口电路。主机接口电路可将从主机系统接收的命令转换成命令指令以存取存储器组件112a至112n,以及将与存储器组件112a至112n关联的响应转换成用于主机系统120的信息。
21.存储器子系统110还可以包含未示出的附加电路或组件。在一些实施例中,存储器子系统110可包含高速缓存或缓冲器(例如,dram)和地址电路(例如,行解码器和列解码器),其可从控制器115接收地址并解码所述地址以存取存储器组件112a至112n。
22.存储器子系统110包含可用于在存储器子系统110的自测试模式期间执行保持自测试的保持自测试组件113。保持自测试组件113可以确定保持电路(诸如存储器子系统110的二次电源)是否有缺陷。所述缺陷可以是可以由保持电路供应以在保持期间执行功率损耗操作集合的降低的保持能量容量,即功率损耗状况,其中来自主电源的功率被损耗或以其它方式与存储器子系统110断开。所述缺陷可以是保持电路的电容器阵列中的开路电容器、所述保持电路的电池的故障单元、所述保持电路中的不当电阻器设置,或所述保持电路、存储芯片或保持能源的不当功能。保持自测试组件113可响应于来自主机系统120的请求、响应于检测到存储器子系统110被置于自测试模式等而触发保持自测试操作。在一些实施例中,控制器115包含保持自测试组件113的至少一部分。例如,控制器115可以包含处理器117(处理装置),其被配置成执行存储在本地存储器119中的指令,用于执行这里描述的
操作。在一些实施例中,保持自测试组件113是主机系统120、应用程序或操作系统的一部分。
23.保持自测试组件113可以接收执行保持自测试以检测在功率损耗的情况下对处理器117和存储器组件112a至112n供电的保持电路中的缺陷的请求。保持自测试组件113识别可用的存储器块,并且响应于检测到功率损耗,使用保持能量对所述块执行连续的写入操作序列,直到指定量的保持能量被消耗。在一些情况下,指定量可以是所有保持能量。在其它情况下,所述指定量可以是最小量的保持能量,其中存储器系统不具有足够功率来执行当前操作或下一操作。可替代地,指定量可以被设置为任意值,用于保持自测试以查看在给定指定量下可以执行多少次代表性操作。在一些情况下,保持自测试组件113允许主机装置、测试装置等对指定量进行编程。在重启之后,保持自测试组件113确定在指定量的保持能量(例如,所有保持能量)被消耗之前在块中成功完成的写入操作的数目。保持自测试组件113确定所述数目是否满足缺陷标准。响应于所述数目满足缺陷标准,保持自测试组件113报告与保持电路相关联的缺陷。可替代地,保持自测试组件113可对存储器位置执行连续的代表性操作序列。在启动时,保持自测试组件113确定完成的代表性操作的数目。这可以假设代表性操作的一部分包含将某种类型的指示符保存到非易失性存储器,其允许保持自测试组件113跟随并计数完成的代表性操作的数目。下面参考图2至5描述保持自测试组件113的附加细节。
24.图2是根据本公开的一些实施例的用于执行保持自测试以确定存储器子系统是否能够提供足够的能量来满足掉电操作的保持要求的实例方法的流程图。方法200可以由处理逻辑来执行,所述处理逻辑可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微代码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法200由图1的存储器保持自测试组件113执行。在另一实施例中,方法300由图1的处理器117执行。尽管以特定顺序或次序示出,但是除非另有说明,否则可以修改过程的次序。因此,所示出的实施例应仅被理解为实例,且所示出的过程可以不同次序执行,且一些过程可并行执行。此外,在各种实施例中可以省略一或多个过程。因此,不是在每个实施例中都需要所有过程。其它过程流程也是可能的。
25.对于方法200,存储器系统包含为功率损耗操作向处理装置和存储器系统的存储器组件提供保持能量的保持电路。在操作210处,处理逻辑接收在存储器系统的自测试模式中执行保持自测试的第一请求。第一请求可用于启动保持自测试,包含在检测到功率损耗之前的一或多个操作、在保持电路向存储器系统提供保持能量的同时执行的一或多个操作,以及在恢复功率之后的一或多个操作。可以在制造期间或部署期间从主机装置、在制造期间从测试装置等接收第一请求。响应于所述第一请求,所述处理逻辑可将所述存储器系统置于自测试模式中。自测试模式可用于确定保持电路是否能够为存储器系统提供足够的保持能量以响应于功率损耗事件而执行功率损耗操作集合。自测试模式可以检查保持电路是否有缺陷,所述缺陷指示保持电路不能符合规定的保持要求。
26.在自测试模式中的自测试期间,在操作220处,处理逻辑识别存储器组件中可用于在自测试模式期间写入自测试数据的一或多个块。如本文所述,其它类型的可用存储器位置或存储器位置的指定可被识别为可用于在自测试模式期间或在保持自测试的设置期间写入自测试数据。在操作230处,处理逻辑在处于自测试模式时检测存储器系统的功率损
耗。在一些情况下,当处于自测试模式时,处理逻辑等待下一个功率损耗事件。在另一种情况下,处理逻辑启动使功率损耗事件发生的一或多个操作。举例来说,处理逻辑可通知主机装置存储器系统处于自测试模式。作为响应,主机装置可从存储器系统移除功率。该电源可以是存储器系统外部的主电源。在另一种情况下,存储器系统可以包含诸如功率管理电路或其它电路的机构,其能够将存储器系统从外部电源解耦合,导致保持电路向存储器系统提供保持能量。
27.在操作240处,响应于检测到功率损耗,处理逻辑执行连续的写入操作序列,以使用来自保持电路的保持能量将自测试数据写入到块,直到保持能量的量被消耗。如本文所述,保持能量的所述量可以是所有保持能量,以及如本文所述的其它量。可替代地,处理逻辑对存储器位置执行连续的代表性操作序列,其导致对过程可完成的次数的可测量计数。应注意,在写入操作未能成功地将自测试数据写入块时,会消耗保持能量的所述量。此时,存储器系统被关闭,因为保持电路和外部电源都不向存储器系统供应功率。当存储器系统恢复供电时,在操作250处,存储器系统重启。在一些实施方案中,存储器系统用特殊代码重新初始化以确定成功操作的数目。在一些情况下,存储器系统可自检测到功率已完全耗尽且自测试的第二阶段应开始。
28.在存储器系统重启之后,在操作260处,处理逻辑通过在操作240处的连续的写入操作序列来确定在块中成功完成的写入操作的数目。当写入操作成功地将数据写入到块时,可以认为写入操作成功,如块的后续读取所验证。在一些情况下,如果保存到非易失性存储器的值成功完成,则可以认为所述操作是成功的。举例来说,将数据写入到nand组件且从nand组件重新读取此数据。在其它情况下,处理逻辑可执行操作并在nor组件中留下所述操作已完成的单个位指示符。处理逻辑可执行后续操作并在nor组件中留下后续操作已完成的下一位指示符,等等。当所有的保持能量被消耗时,写入操作将不会成功地完成,因为没有数据被写入到可以被随后的读取操作读取和验证的块。在操作240处,可以将通过读取操作从块读取的自测试数据与控制数据进行比较,以确定通过连续的写入操作序列在块中成功完成的写入操作的数目。
29.在操作270处,处理逻辑确定成功完成的写入操作的数目是否满足缺陷标准。在操作280处,处理逻辑报告自测试数据的结果。响应于在操作280处成功完成的写入操作的数目满足缺陷标准,处理逻辑报告与保持电路相关联的缺陷。在一些情况下,缺陷被报告为自我报告并设置失败指示符。在其它情况下,可通过将失败指示符转发到主机装置来报告缺陷。可替代地,响应于检测到缺陷,可将存储器系统置于安全状态,其中所述存储器系统在所述缺陷被解决之前将不接受新数据。响应于在操作280处成功完成的写入操作的数目不满足缺陷标准,处理逻辑报告保持电路没有缺陷。缺陷标准是可编程的且可基于存储器系统的保持要求来定义。可以在制造过程中指定和测试保持要求。还可以在部署期间指定和测试保持要求,尤其是在符合保持要求更为重要的应用中。
30.图3是根据本公开的一些实施例的检查存储器系统的次级电源中的缺陷的实例方法300的流程图。方法300可以由包括处理逻辑的控制器来执行,所述处理逻辑可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微代码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法300由图1的存储器保持自测试组件113执行。在一些实施例中,方法300由图1的处理器117执行。尽管以特定顺
序或次序示出,但是除非另有说明,否则可以修改过程的次序。因此,所示出的实施例应仅被理解为实例,且所示出的过程可以不同次序执行,且一些过程可并行执行。此外,在各种实施例中可以省略一或多个过程。因此,不是在每个实施例中都需要所有过程。其它过程流程也是可能的。
31.在操作310处,控制器接收转变到保持自测试模式以检查包括控制器和多个存储器组件的存储器系统的二次电源中的缺陷的请求。在一些情况下,转变到保持自测试模式的请求可以是上电序列或启动序列的一部分。例如,这种类型的保持自测试可以在通电时自动启动,其中报告结果和存储器系统故障指示并且包含拒绝对磁盘的所有写入,直到故障被消除或修复。在操作320处,响应于所述请求,控制器识别多个存储器组件中的可用块集合。可用块集合可以包含多个存储器组件的每一个中的至少一个可用块。可用块集合可以包含存储器平面中的至少一个块或存储器组件的管芯的至少一个块。在操作330处,控制器检测存储器系统的功率损耗状况,其中由主电源向存储器系统供应的功率被移除。在操作340处,响应于检测到功率损耗状况,控制器经由二次电源向存储器系统供应功率,并将指定模式的测试数据写入可用块集合中,直到来自二次电源的所有功率被消耗。在操作350处,响应于主电源对存储器系统的功率的恢复,控制器使用在来自二次电源的所有功率被消耗之前写入可用块集合中的指定模式的测试数据的结果来确定二次电源是否有缺陷。
32.在一个实施例中,控制器通过以下操作确定二次电源是否有缺陷:从可用块集合中读取写入的数据结果,将写入的数据结果与控制数据进行比较,并基于该比较确定在来自二次电源的功率量(例如,所有功率)被消耗之前成功完成的写入操作的数目。控制器可以确定成功完成的写入操作的数目是否满足缺陷标准。响应于成功完成的写入操作的数目满足缺陷标准,控制器报告二次电源具有所述缺陷。响应于所述数目不满足缺陷标准,控制器报告二次电源没有缺陷。
33.在另一实施例中,控制器从耦合到存储器系统的主机装置接收请求。这可以在制造期间或制造之后发生。例如,在计算机系统中部署了存储器系统之后,控制器从主机装置接收请求。所述请求可以由主机装置响应于用户请求而发送。可替代地,控制器可响应于调度事件(例如,在指定时间段之后)或响应于在任何时间(例如,在存储器系统的制造期间或部署期间)启动的存储器系统的诊断测试而接收请求。在主机装置通过存储器系统发送启动自测试的请求的某些情况下,存储器系统可(例如)经由登录机制、响应消息、中断等将自测试的结果报告给主机装置。在其它情况下,存储器系统包含称为存储芯片的专用集成电路。存储芯片管理供应给存储器系统的功率。例如,存储芯片可以检测来自外部源的功率损耗,并且可以向处理装置发送中断以指示功率损耗事件。在一些情况下,可以使用优化例程。例如,可能存在能量存储是时间相关的情况(x焦耳/秒)。优化例程可以确定需要多少能量并且微调启动过程以节省初始时间。由处理装置接收的中断可指示主电源对存储器系统的功率损耗。存储芯片还可以从二次电源向处理装置和存储器组件提供保持能量,以便在保持期间执行功率损耗操作集合。自测试可用于执行连续的写入操作序列,以将自测试数据写入一或多个可用块。连续的写入操作序列可为写入模式的至少一部分,所述写入模式模拟在存储器系统不处于自测试模式时在功率损耗事件期间对存储器系统执行的实际功率损耗操作。自测试可用于确定保持能量是否足以在功率损耗事件期间执行实际功率损耗操作。
34.图4是根据本公开的一些实施例的响应于功率损耗事件来验证ssd的保持电路满足如预期的保持标准的实例方法400的流程图。可执行方法400以验证ssd具有足够的功率来完成保持期间的预期操作并估计多余保持能量的量。方法400还可用于验证用于设计存储器系统的模型。以此方式,可将存储器系统设计为具有足够的保持资源,同时优化设计成本。举例来说,当确定所述设计具有来自电容器阵列(与不使用方法400的设计相比,电容器数目减少)的足够功率以在保持期间完成预期功率损耗操作时,通过验证所述模型,存储器系统可经设计以在电容器阵列中具有较少数目的电容器。方法400可以由ssd的处理逻辑来执行,所述处理逻辑包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微代码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法400由图1的存储器保持自测试组件113执行。在一些实施例中,方法400由图1的处理器117执行。尽管以特定顺序或次序示出,但是除非另有说明,否则可以修改过程的次序。因此,所示出的实施例应仅被理解为实例,且所示出的过程可以不同次序执行,且一些过程可并行执行。此外,在各种实施例中可以省略一或多个过程。因此,不是在每个实施例中都需要所有过程。其它过程流程也是可能的。
35.在操作410处,处理逻辑可以接收响应于功率损耗事件来验证保持电路满足预期保持要求的请求。所述请求可以通过接口作为命令发布,例如厂商唯一(vu)命令。vu命令可以是在一些外部协议上定义的自定义命令,其可用于启动或接收从保持自测试返回的信息。可替代地,所述请求可以作为串行端口命令经由串行端口被接收。在操作420处,处理逻辑启动等待主机功率损耗的测试。在操作430处,处理逻辑继续检查是否检测到功率损耗。功率损耗事件可以是测试的实际功率损耗或模拟功率损耗。当在操作430处检测到功率损耗时,处理逻辑(例如定序器)可开始在功率损耗时开始的写入序列。例如,在功率损耗事件期间,处理逻辑可以保存来自正在进行的qlc写入操作的数据和飞行中的数据。相反,对于测试,处理逻辑在所有管芯上执行特定代表性数目的多平面写入操作,例如slc写入操作,如在体系结构估计中所述。与正常模式期间发生的实际功率损耗操作相比,这些多平面写入操作可以被认为是在自测试模式中发生的模拟功率损耗操作。在操作440处,处理逻辑可切换通用输入

输出(gpio)端子(例如,引脚)以指示模拟功率损耗操作已完成。gpio端子的切换可用于表征,因为在表征期间可直接测量保持电压电平。可替代地,gpio、主机接口、边带通信路径等可用于在存储器系统外部发信号以指示模拟功率损耗操作已完成。在操作450处,处理逻辑继续将数据(例如slc单平面页面程序)写入到一或多个管芯,直到控制器和存储器组件的功率被损耗为止。这可以给出在功率被损耗之前可以写入多少附加页面的指示。在操作460处,在系统存储器通电时,处理逻辑可验证写入的数据对于所有写入的页面是正确的。例如,如果成功地完成了所有多平面写入操作,则ssd可以完成保持。在操作470处,处理逻辑可以报告完成的单平面操作的数目。这样做可以证明设计余量,改进设计并降低设计成本。在操作480处,报告可响应于功率损耗事件指示ssd的保持电路是否满足预期保持标准。
36.在其它实施例中,处理逻辑可通过如上所述启动连续slc写入操作并通过启动功率损耗事件本身来测试功率损耗算法(pla)。pla保存数据所需的活动量将取决于项目,例如媒体参数、客户预期和产品设计的其它方面。在一些情况下,这可能需要与主机装置进行协调以启动功率损耗事件。可替代地,处理逻辑可等待直到发生由主机装置启动的功率损
耗事件为止。
37.应注意,处理逻辑可执行测试以评估与驱动器在保持期间执行功率损耗操作集合所需的能量的量相比的保持能量的量。处理逻辑可用于设定和表征相对于在驱动器上传递的保持能量需求,但也可以在制造流程中或制造后的操作流程期间使用。处理逻辑可用于为不合格项目提供测试覆盖,所述不合格项目在本文中称为缺陷,例如nand功率汲取、tprog时间、开路电容器和其它缺陷。处理逻辑可执行测试以检查保持能量以验证对于预期分布存在足够的电容。对于制造,它可以作为用于数据收集的过程控制测试来启动,以确定写入保持的正态分布,然后一旦有足够的数据就可以应用屏幕限制或失败限制。由于没有电路内测试(ict),这可以改善整体覆盖。这是一种监测用于保持的体电容的方法。在一种实施方案中,可以将特定的测试点或结构放置在适当的位置,使得可以通过外部测量装置来测试保持阵列(或其它保持能量源)。这种方法可能不考虑能量需求的公差。存在一些复杂性,使得难以测量能量供应。可替代地,过程控制测试可用于监测产品吞吐量并指示过程何时发生了改变。如果材料偏离那些预期,过程控制测试可用于理解过程变化,设置限制和标记,以便进一步调查。
38.在另一实施例中,处理逻辑可加载有效负载以启动用于自测试模式的驱动器(例如,准备状态)。存储器系统可以包含自动测试设备(ate)以协调电源关闭。在启动驱动器之后,驱动器可以向ate返回“就绪”状态以协调ate的电源关闭。ate将功率转向驱动器,并且可用于读取和比较,如下所述。一旦驱动器检测到电源故障,工作负载就可以开始。工作负载可以包含一定数目的qlc写入操作(例如,qlc写入操作的16个平面),然后跟随一定数目的slc写入操作,直到全部或大部分功率被损耗。用qlc写入操作后跟slc操作来使用工作负载可以准确地表示这里所述的“代表性操作”所需的能量。应注意的是,测试器关闭的时间应远远超出保持的预期时间。下一次启动重新初始化驱动器,并将进行页面读取和比较,以验证驱动器在断电之前能够进行写入到“什么程度”。为了使读取和比较更容易,处理逻辑可能需要有组织的数据,使得当数据变得无效时变得清晰。例如,工作负载可以是伪随机数据工作负载。处理逻辑可以生成报告。相反,处理逻辑使用测试报告作为从功率损耗事件到记录失败的写入提交操作的时间段(time)的估计。所述报告还可以提供故障页面地址。而且,页面可以以正常顺序写入,并且页面可以跨越多个物理位置(称为分散)。在某种测试系统中,存在到主机装置的来回通信,例如发信号以关闭电源、切断电源、重新接通电源并且完成自测试。在其它测试系统中,存储器系统可插入到电源中,其中存储器系统自启动保持自测试。
39.在一些情况下,在保持体系结构完成之后,将详细描述写入的数据的精确模式。意图是证明驱动器可以完成预期的保持情况,然后进行附加的写入操作以指示余量。保持测试可以基于主机装置想要测试的内容而改变。也就是说,主机装置可以指定某些参数来模拟功率损耗事件期间预期的能量需求。在一些情况下,所建议的度量可以是在预期的保持操作完成之后驱动器能够完成的多个页面写入操作。
40.在其它情况下,通过将驱动控制器置于自测试将在功率损耗时启动的状态来启动自测试。每个nand平面上的开放块被识别并配置用于测试。主机装置从驱动器移除功率,或者如果需要驱动器自测试,驱动器可并入硬件以从驱动器移除主机功率。在功率损耗时,驱动器使用所设计的方法来触发保持操作。当控制器识别出主机电源已经损耗时,驱动器启
动连续的写入序列。写入模式通常试图模拟在实际功率损耗情况期间所需的操作。写入模式继续,直到从驱动器消耗了所有能量并且已经完成了最大数目的操作。在启动时,驱动器通过读取指定块并评估写入的数据是否与控制数据匹配来确定在掉电之前成功地完成了多少次写入操作。驱动器可擦除测试块并通过主机装置、日志或其它报告机制报告测试结果。驱动检测的常规方法限于确定驱动对电容器的存储阵列充电的时间(例如,从检测到上电直到存储芯片指示存储阵列上的功率良好的时间)。该常规方法将指示阵列或存储芯片是否曾经达到预期值。电压触发器还可用于指示阵列已达到某一电荷值。这两种现有方法都没有对保持能量是否合适(例如,相对于保持要求是高还是低)进行任何评价。本公开方法具有感测存储阵列中的一或多个电容器上的电容器退化、开路或短路的能力。
41.如本文中所描述,存储器系统可为ssd,例如下文参看图5所示出和描述的ssd。
42.图5是根据本公开的一些实施例的具有控制器502、一或多个存储器组件504、存储芯片506和保持能量源508的ssd 500的框图。控制器502可以包含保持自测试处理逻辑510以实现如本文所述的自测试。控制器502可以是耦合到媒体组件504和存储芯片506的任何类型的处理装置。控制器502耦合到主机装置514。保持能量源508可以是在来自外部电源512的功率损耗的情况下能够存储或以其它方式提供保持能量的任何类型的源。保持能量源508可以是保持电路的一部分,所述保持电路向控制器502和一或多个存储器组件504提供一定量的保持能量,以允许在功率损耗的情况下执行功率损耗操作集合。存储芯片506可操作地耦合到外部电源512、保持能源508、控制器502和一或多个存储器组件504。存储芯片506可以检测来自外部电源512的功率损耗,向控制器502发送中断,并且响应于来自外部电源512的功率损耗而选择性地将保持能量源508耦合到控制器502和存储器组件504。在其它实施例中,可以使用除了存储芯片506之外的其它机制(例如功率管理器电路)将保持能量源508选择性地耦合到控制器502和存储器组件504。
43.在保持自测试510期间,控制器502可以接收在ssd 500的自测试模式中执行保持自测试510的第一请求。控制器502响应于第一请求而识别存储器组件504的可用于在自测试模式期间写入自测试数据的块。在处于自测试模式时,控制器502检测到ssd的功率损耗。响应于检测到功率损耗,控制器502执行连续的写入操作序列,以使用来自保持能量源508(例如,保持电路)的保持能量将自测试数据写入到块,直到保持能量的量被消耗。如本文所述,保持能量的所述量可以是所有保持能量,以及如本文所述的其它量。在ssd 500重启之后,控制器502通过在保持能量的量被消耗之前的连续的写入操作序列来确定在块中成功完成的写入操作的数目。控制器502确定成功完成的写入操作的数目是否满足缺陷标准。响应于成功完成的写入操作的数目满足缺陷标准,控制器502报告与保持能量源508相关联的缺陷。
44.在一个实施例中,保持能量源508包含存储ssd 500的保持能量的量的电容器阵列和响应于功率损耗将存储在电容器阵列中的保持能量的量传递到控制器502和存储器组件504的能量传递电路。电容器阵列具有预期的能量容量,并且成功完成的写入操作的数目表示电容器阵列的实际容量。缺陷标准可以定义执行功率损耗操作集合所需的写入操作的最小数目。写入操作的最小数目表示没有缺陷的电容器阵列的预期最小容量。响应于成功完成的写入操作的数目小于对应于预期最小容量的写入操作的最小数目,通过保持自测试510来检测缺陷。
45.在另一实施例中,保持电路包含耦合在外部电源512和控制器502以及存储器组件504和保持能量源508之间的功率管理器电路。保持能量源508选择性地耦合到控制器502和存储器组件504。功率管理器电路被配置成将外部电源512从控制器502和存储器组件504解耦合,以在处于自测试模式时导致ssd 500的功率损耗。当ssd 500处于自测试模式时,功率管理器电路可以暂时将ssd 500从外部电源512断开,以启动对ssd500的功率损耗。
46.在一个实施例中,控制器502通过接收指示功率损耗的中断来检测功率损耗。可以从存储芯片506接收中断。可替代地,可以从功率管理器电路接收中断。在其它实施例中,主机装置514可以与控制器502协调以从外部电源512移除功率,用于保持自测试510的目的。在另一实施例中,从测试装置(图5中未示出)接收启动保持自测试510的第一请求。测试装置可以在ssd 500的制造期间使用。在另一实施例中,例如响应于客户诊断请求,从主机装置514接收启动保持自测试510的第一请求。客户诊断请求可用于评估ssd 500上的保持能量源508在部署于现场时是否仍在规范内。对于潜在的安全关键的应用,例如汽车,可以使用保持自测试510来监测和诊断满足客户可靠性要求、故障检测要求等所需的特定缺陷。可以在具有主机装置514的计算机系统中部署ssd500期间或在制造ssd 500之后接收此请求。可替代地,可在ssd 500的制造或测试期间从主机装置514接收此第一请求。
47.启动保持自测试510的第一请求可操作以转变到以下状态,在所述状态中,写入操作的连续序列在检测到下一功率损耗事件时开始,并且在所述状态中,在ssd 500重启之后,从块读取自测试数据并将其与控制数据进行比较,以确定在保持能量源508中的保持能量的量被消耗之前成功完成的写入操作的数目。如本文所述,保持能量的所述量可以是所有保持能量,以及如本文所述的其它量。测试数据可用于确定保持能量源508是否有缺陷。例如,可以为保持能量源508的保持要求定义缺陷标准。在另一实施例中,控制器502通过将所述数目与在保持电路的保持要求中规定的指定操作数目进行比较来确定所述数目是否满足缺陷标准,并响应于所述数目小于在保持要求中规定的指定操作数目而检测缺陷。
48.尽管上述实施例针对写入存储器组件的可用块,但控制器502可识别多个存储器组件中的多个块。例如,控制器502可以识别第一存储器组件的第一块和第二存储器组件的第二块,所述第一和第二块可用于响应于第一请求写入自测试数据。在一些情况下,可以将相同的自测试数据写入可用块中的每一个。在其它实施例中,自测试数据的第一部分被写入到第一块,而自测试数据的第二部分被写入到第二块。控制器502响应于功率损耗而执行连续的写入操作序列,以使用来自保持电路(保持能量源508)的保持能量将自测试数据写入到第一块和第二块,直到保持能量的量被消耗。在ssd 500重启之后,控制器502确定在第一块和第二块中成功完成的写入操作的数目。将自测试数据写入到第一块和第二块的连续的写入操作序列可以是模拟在ssd 500功率损耗期间而不在自测试模式中执行的实际功率损耗操作的写入模式的一部分。
49.在另一实施例中,控制器502可以擦除写入到可用块中任一个的自测试数据,并报告保持自测试510的结果。响应于成功完成的写入操作的数目满足缺陷标准,结果可以包含与保持电路相关联的缺陷。
50.在另一实施例中,当ssd 500处于自测试模式时,控制器502向主机装置514发送第二请求以将ssd 500从外部电源512断开。在第二请求之后,控制器502例如通过如本文所述从存储芯片506接收中断来检测处于自测试模式时ssd 500的功率损耗。以此方式,控制器
502主动地启动功率损耗事件以开始用于保持自测试510的写入序列。
51.在另一实施例中,代替ssd,驱动器具有磁盘,并且从磁盘旋转产生保持能量源。保持电路可以包含能量传递电路,以响应于功率损耗将在功率损耗之前从磁盘旋转产生的保持能量的量传递到控制器和存储器组件。
52.在另一实施例中,存储系统包含耦合在一起的功率管理器电路、多个存储器组件和控制器。功率管理器电路从外部电源或二次电源向控制器和存储器组件供应功率。响应于请求,控制器识别存储器组件中的可用块集合。控制器检测来自外部电源的功率被损耗的功率损耗状况。响应于检测到功率损耗状况,控制器以指定模式将测试数据连续地写入可用块集合中,直到在所述功率损耗状况期间通过向控制器和存储器组件供应功率来消耗来自二次电源的功率量为止。响应于来自所述外部电源的所述功率的恢复,控制器从所述可用块集合读取写入的数据结果,并且至少使用所述写入的数据结果来确定所述二次电源是否有缺陷。响应于检测到缺陷,控制器报告二次电源的缺陷。
53.在另一实施例中,控制器可通过识别其中连续写入测试数据的可用块集合并将从可用块集合读取的写入数据结果与控制数据进行比较以确定在来自二次电源的功率量被消耗之前成功完成的写入操作的数目来确定是否存在缺陷。控制器确定成功完成的写入操作的数目是否满足缺陷标准。缺陷标准对应于执行功率损耗操作集合以符合保持要求所需的最小能量容量。响应于成功完成的写入操作的数目满足缺陷标准,控制器报告二次电源具有所述缺陷。在一些情况下,缺陷可以是保持能量源中的边缘退化,例如电容器阵列中的一个开路电容器。
54.图6示出计算机系统600的实例机器,在所述计算机系统内可执行一组指令,用于使机器在执行在本文讨论的方法中的任何一或多个。在一些实施例中,计算机系统600可对应于主机系统(例如,图1的主机系统120),其包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110),或可用于执行控制器的操作(例如,以执行操作系统从而执行对应于图1的保持自测试组件113的操作)。在替代实施例中,机器可连接(例如,经由网络连接)到lan、内联网、外联网和/或因特网中的其它机器。所述机器可以在客户机

服务器网络环境中作为服务器或客户机、作为对等(或分布式)网络环境中的对等机器、或作为云计算基础设施或环境中的服务器或客户机来操作。
55.所述机器可以是个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂窝电话、web设备、服务器、网络路由器、交换机或网桥或者能够执行指定所述机器要采取的动作的一组指令(顺序或以其它方式)的任何机器。进一步地,尽管说明了单个机器,但术语“机器”还应当被理解为包含单独地或联合地执行指令的集合(或多个集合)以执行本文所讨论的方法中的任何一或多个的机器的任何集合。
56.实例计算机系统600包含处理装置602、主存储器604(例如,只读存储器(rom)、闪速存储器、动态随机存取存储器(dram)(诸如同步dram(sdram)或rambus dram(rdram)等))、静态存储器606(例如,闪速存储器、静态随机存取存储器(sram)等),以及经由总线630彼此通信的数据存储系统618。
57.处理装置602表示一或多个通用处理装置,诸如微处理器、中央处理单元等。更具体地,处理装置可为复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器或者实施其它指令集的处理器或者实施指令集组合的处理器。处
理装置602还可为一或多个专用处理装置,诸如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器等。处理装置602被配置成执行用于执行这里讨论的操作和步骤的指令626。计算机系统600可进一步包含网络接口装置608以通过网络620进行通信。
58.数据存储系统618可以包含机器可读存储媒体624(也被称为计算机可读存储媒体),在其上存储了体现这里描述的任何一或多个方法或功能的一或多组指令626或软件。在由同样组成机器可读存储介质的计算机系统600、主存储器604和处理装置602执行期间,指令626也可完全或至少部分地驻留在主存储器604内和/或在处理装置602内。机器可读存储媒体624、数据存储系统618和/或主存储器604可对应于图1的存储器子系统110。
59.在一个实施例中,指令626包含实施对应于保持自测试组件(例如,图1的保持自测试组件113)的功能的指令。虽然在实例实施例中机器可读存储媒体624被示出为单个媒体,但是术语“机器可读存储媒体”或“计算机可读存储媒体”应当被认为包含存储一或多个指令集合的单个媒体或多个媒体。术语“机器可读存储媒体”还应被视为包含能够存储或编码指令集的任何媒体,所述指令集用于由机器执行并使得机器执行本公开的方法中的任一或多个。因此,术语“机器可读存储媒体”应被视为包含但不限于固态存储器、光学媒体和磁性媒体。
60.前面详细描述的有些部分已经表示为在电脑存储器内的数据比特的操作的算法和符号描述。这些算法描述和表示为数据处理领域的技术人员通常使用的,从而最有效地将它们的工作实质传递到其它领域的技术人员。本文的算法通常是指得到期望结果的操作的自相容序列。这些操作是需要对物理量进行物理操纵的操作。通常,尽管不是必须的,这些量采用能够被存储、组合、比较以及以其它方式被操纵的电或磁信号的形式。有时主要是为了公共使用的原因,将这些信号称为位、值、元素、符号、字符、项、数字、或者类似名称,经证实这是方便的。
61.然而,应当记住,所有这些和类似术语将与适当物理量关联,并且仅仅是应用于这些量的方便标签。本公开可以指的是计算机系统或类似的电子计算装置的动作和过程,其对表示为计算机系统的寄存器和存储器内的物理(电子)量的数据进行操作并将其转换成类似地表示为计算机系统存储器或寄存器或其它此类信息存储系统内的物理量的其它数据。
62.本公开还涉及一种用于执行本文中的操作的设备。此设备可为预期目的而专门构造,或者其可包含由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。这种计算机程序可存储在计算机可读存储介质中,例如但不限于,包含软盘、光盘、cd

rom和磁光盘的任何类型的磁盘、只读存储器(rom)、随机存取存储器(ram)、eprom、eeprom、磁或光卡或适合于存储电子指令的任何类型的介质,其中每一个都耦合到计算机系统总线。
63.本文提出的算法和显示并不固有地与任何特定的计算机或其它设备相关。各种通用系统可与根据本文中的教示的程序一起使用,或者能够证明构造更专用的设备来执行所述方法是方便的。各种这些系统的结构将出现在下面的描述中。另外,没有参考任何特定编程语言来描述本公开。将了解,可使用多种编程语言来实施本文所描述的本公开的教示。
64.本公开可被提供作为计算机程序产品或软件,所述软件可以包含其上存储有指令
的机器可读媒体,所述指令可用于对计算机系统(或其它电子装置)编程以执行根据本公开的过程。机器可读媒体包含用于以机器(例如,计算机)可读形式存储信息的任何机制。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储媒体、光存储媒体、闪速存储器组件等。
65.在前述说明书中,已参考本公开的特定实例实施例描述了本公开的实施例。显然,在不脱离所附权利要求中阐述的本公开的实施例的较宽精神和范围的情况下,可以对其进行各种修改。因此,说明书和附图被认为是说明性的而不是限制性的。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1