基于统计的裸芯性能被延迟直到封装之后的非易失性存储器测试的制作方法

文档序号:12071382阅读:393来源:国知局
基于统计的裸芯性能被延迟直到封装之后的非易失性存储器测试的制作方法与工艺

公开的实施例一般地涉及存储器系统,并且具体地涉及用于非易失性储存的低测试存储器堆叠。



背景技术:

半导体存储器装置,包括闪速存储器,通常利用存储器单元来将数据贮存为电的值,诸如电荷或电压。闪速存储器单元,例如,包括具有浮置栅极的单个晶体管,该浮置栅极被用于储存数据值的电荷表示。闪速存储器是可以电擦除并且重新编程的非易失性数据存储器装置。更一般地,非易失性存储器(例如,闪速存储器,以及使用任何多种技术实现的其它类型的非易失性存储器)在即使未通电时保留储存的信息,与需要电源来维持储存的信息的易失性存储器相反。

传统制造工作流程利用广泛的测试以产生高质量的存储器装置和/或存储器组件(例如,存储器装置的组件)。该测试通常表示生产成本的很大部分。此外,广泛测试还可能甚至在存储器装置到达消费者之前在存储器装置上放置大量的损耗。例如,闪速存储器装置通常具有被表达为编程/擦除(P/E)周期的数量的可行的寿命,该编程/擦除(P/E)周期能够在闪速存储器变得不可靠之前进行。在传统制造工作流程中进行的某些测试需要在闪速存储器上进行大量的P/E周期,从而减少了消费者可用的剩余的寿命。



技术实现要素:

在所附权利要求的范围中的系统、方法和装置的各种实现方式的每一个具有几个方面,没有其单独的一个为这里所述的属性负全部的责任。在不限制所附权利要求的范围的情况下,在考虑本公开之后,并且特别是在考虑名称为“具体实施方式”的章节之后,人们将理解各种实施方式的方面将如何被用于在非易失性存储器模块中基于非易失性存储器模块中的存储器的单元的特征重新映射物理地址。在各种实现方式中,非易失性存储器模块是储存系统中的组件和/或在储存控制器外部并且与其耦接的组件。

在一个方面中,多个非易失性存储器裸芯在进行某些裸芯级和子裸芯级测试之前,被选择并且封装到存储器装置中。在封装之后,在存储器装置中的多个非易失性存储器裸芯上进行一组测试以识别在所述存储器装置中的非易失性存储器裸芯中的满足预定的有效性基准的存储器的各个单元。这样做时,减少了非易失性存储器装置的测试和封装的成本,如在下面更加详细地描述的。

附图说明

使得本公开可以被更加详细地理解,可以通过参考各种实现方式的特征而获得具体的说明,其中的一些在附图中示出。但是,附图仅示出本公开的更加显著的特征并且因此不应被认为是限制性的,因为该说明可能具有其他有效特征。

图1A是示出根据一些实施例的数据储存环境的实现方式的框图。

图1B是示出根据一些实施例的数据储存系统的实现方式的框图。

图2A是示出根据一些实施例的示例储存控制器的框图。

图2B是示出根据一些实施例的示例非易失性存储器模块的框图。

图3A-3B示出了根据一些实施例的分别不具有或者具有对存储器的坏的单元的重新映射的存储器模块的操作。

图4A-4B示出了根据一些实施例的分别不具有或者具有对存储器的坏的单元的物理-到-物理重新映射的RAID条带。

图5示出了根据一些实施例的使用统计的裸芯信息的对用于封装到存储器模块中的存储器裸芯的选择。

图6A-6C示出了根据一些实施例的用于物理-到-物理地址重新映射的方法的流程图表示。

图7A-7B示出了根据一些实施例的用于在进行至少一些测试之前封装非易失性存储器的方法的流程图表示。

根据惯例,附图中示出的各种特征可能未按比例绘制。相应地,为了清晰,各种特性的大小可以任意地扩大或减小。此外,一些附图可能没有绘制给定系统、方法或装置的所有组件。最后,贯穿说明书和附图,相似的参考标号可以被用于表示相似的特性。

具体实施方式

不管何种类型的存储器元件(例如,存储器裸芯中的单独的存储器单元)用在储存系统中,或者这样的存储器元件被如何配置(例如,2D配置、3D配置),存储器元件有时由于多种原因而故障。用于这样的存储器元件的制造工艺具有某个良率,意味着一些制成后存储器元件可能从一开始就是“坏的”。其它存储器元件制成后是被严重损坏的。在传统的处理中,在将存储器裸芯结合到更大的存储器装置中之前(例如,存储器模块102,图1A),进行大量的测试以将存储器裸芯(例如,NVM裸芯140,图1A)分为不同的等级(例如,基于这样的存储器裸芯中的存储器元件的工作的部分或者功能)。例如,被严重地损坏的制成后的存储器元件通常不能通过所谓的“烧入”测试,导致部分的存储器裸芯(例如,页、块、裸芯平面)不可用。一旦存储器裸芯被结合到储存系统中,存储器裸芯的这些部分通常被忽略。当存储器裸芯包括大量不可用的部分时,结果是用于存储器裸芯的较低的等级。低等级的存储器裸芯有时被封装在一起以产生较便宜的所谓的“残余(remnant)”存储器装置。

但是该广泛的测试对于生产高等级的存储器装置(例如,使用高等级的存储器裸芯制作的存储器装置)增加显著的成本。该成本通常不能通过出售残余等级的存储器装置(例如,高等级的存储器模块)而补偿。例如,在一些情况中,测试的成本比生产高等级的存储器装置的成本上浮32%。相反,残余等级的存储器装置的销售通常返回生产高等级的存储器装置的成本的很小的一部分(例如,在4%的量级上)。因此,在一些情况中,高等级的存储器装置的生产基本上资助残余等级的存储器装置的生产,这对于消费者增加了高等级的存储器装置的成本。

此外,存储器元件在这样的广泛的测试期间经历了大量的编程/擦除(P/E)周期,对于具有有限的P/E周期(例如,闪速存储器)的寿命的每种存储器,其寿命的主要部分可能仅在产品测试期间被耗尽。

这里所述的各种实现方式包括减少在被封装到存储器模块之前存储器元件经历的测试量,从而降低成本并且保留存储器元件的寿命的系统、方法和/或装置。为此,这里所述的一些实现方式提供某些裸芯级和子裸芯级测试的延迟直到非易失性存储器裸芯被封装到存储器装置中之后。

更具体地,一些实施例包括封装非易失性存储器的方法。在一些实施例中,方法包括根据对应于一组非易失性存储器裸芯的预定的基准和预定统计裸芯性能信息,从该组非易失性存储器裸芯选择多个非易失性存储器裸芯,在所述多个非易失性存储器裸芯上已经将预定的裸芯级和子裸芯级测试延迟直到封装之后。方法还包括将所选择的多个非易失性存储器裸芯封装到存储器装置中。方法还包括,在所述封装之后,在所述存储器装置中的多个非易失性存储器裸芯上进行一组测试以识别在所述存储器装置中的非易失性存储器裸芯中的满足预定的有效性基准的存储器的各个单元,所进行的该组测试包括被延迟的预定的裸芯级和子裸芯级测试。

在一些实施例中,选择包括根据所述多个非易失性存储器裸芯的晶片位置来选择多个非易失性存储器裸芯。在一些实施例中,选择包括根据所述多个非易失性存储器裸芯的晶片位置和对应于所述晶片位置的统计裸芯性能信息来选择多个非易失性存储器裸芯。

在一些实施例中,方法还包括至少延迟直到选择的多个非易失性存储器裸芯被封装到存储器装置中、或者完全放弃以下测试的至少一个的进行:晶片分类测试、存储器组件测试、已知合格裸芯测试、以及烧入测试。

在一些实施例中,所述选择包括,根据所述预定统计裸芯性能信息,选择多个裸芯以便于过量提供存储器装置以确保在预定统计容限内的存储器装置中的最少量的可编程的/可擦除的存储器。

在一些实施例中,方法还包括,在将所述多个非易失性存储器裸芯封装到所述存储器装置中之后,确定所述存储器装置中的可编程的/可擦除的存储器的量。

在一些实施例中,方法还包括,在将所述多个非易失性存储器裸芯封装到所述存储器装置中之后,在所述存储器装置的初始化期间,进行初始化程序,包括,确定多个非易失性存储器裸芯的存储器的一个或多个单元的有效性状态。有效性状态是有效状态或无效状态的一个。方法还包括使用物理-到-物理地址重新映射以将寻址到具有无效状态的存储器的各个单元的读取/写入请求重新引导到具有有效状态的存储器的单元。

在一些实施例中,确定存储器的一个或多个单元的有效性状态包括确定存储器的一个或多个单元的有效性度量,并且将有效性度量与预定的阈值比较以确定存储器的所述一个或多个单元的有效性状态。在一些实施例中,有效性度量是存储器的一个或多个单元在初始化期间的误码率(BER)。

在一些实施例中,方法还包括根据在初始化期间确定的负责所述有效性度量的损耗均衡算法而写入到所述多个非易失性存储器裸芯。

在一些实施例中,该组非易失性存储器裸芯包括闪速存储器。

在一些实施例中,在封装之前在多个非易失性存储器裸芯的存储器的单元上进行的中等数量的编程/擦除(P/E)周期少于50个P/E周期。

在另一方面中,一些实现方式提供非易失性存储器模块。非易失性存储器模块包括根据这里提供的任何方法选择、封装和测试的多个非易失性存储器裸芯。

在另一方面中,一些实现方式提供储存系统。储存系统包括用于将储存系统与主机系统可操作性地耦接的接口以及根据这里提供的任何方法选择、封装和测试的多个非易失性存储器裸芯。

在这里描述许多细节以便于提供对在附图中示出的示例实施例的透彻理解。但是,可以不需要许多特定细节而实施一些实施例,并且权利要求的范围仅由在权利要求中特别记述的那些特性和方面限制。此外,没有以详尽的细节描述已知的方法、组件和电路,以便不必要地混淆这里所述的实施例的更加相关的方面。

如这里所使用的,术语“存储器装置”应被理解为表示包括存储器的任何电子装置。例如,具有存储器元件和至少一个电极的处理的晶片(称为“裸芯”)的部分是存储器装置。具有储存控制器和多个插入式(例如,DIMM)存储器模块的企业-级储存系统也是存储器装置。每个存储器模块也是存储器装置。更具体地,“储存系统”或“数据储存系统”是包括存储器和储存控制器的存储器装置。“存储器模块”是包括存储器和封装以及可选地支持电路(例如,形成数据总线的电极)的存储器装置。在一些实施例中,存储器模块从储存控制器分开并且被配置为耦接到储存控制器(如下所述),并且从而间接地耦接到(例如,以储存控制器的方式)主机计算机。除了可选地不包括储存控制器以外,在一些实施例中,存储器模块包括进行传统上由储存控制器(例如,部分逻辑-到-物理地址映射,如以下所述)进行的任务的电路(例如,专用集成电路)。存储器模块可以包括作为组件或子系统的其它存储器模块。例如,DIMM存储器模块可以包括多个存储器芯片(例如,8个存储器芯片)。存储器芯片(例如,集成电路芯片,有时被称为“微芯片”)还应被认为是存储器模块,只要它们包括存储器和封装。术语“组件”被用于表示组成部分。例如,存储器组件是存储器装置的组成部分。

图1A是示出根据一些实施例的数据储存环境158的实现方式的框图。图1A不意欲限制,而是意欲示出根据一些实施例的这里所用的术语的层级分类。参考图1A所述的许多组件在本文的其它地方更加详细地描述,例如,参考图1B或者参考以上对半导体存储器的描述。为此,数据储存环境158包括发布主机命令(例如,读取/写入/擦除命令)的计算机系统110(有时被称为“主机”)和数据储存系统100。数据储存系统100包括储存控制器120和一个或多个非易失性存储器(NVM)裸芯140。

在一些实施例中,储存控制器120与一个或多个NVM裸芯140封装,在该情况中,该组合有时被称为储存系统。可替换地,在一些实施例中,一个或多个NVM裸芯140被封装到一个或多个NVM模块102中并且从储存控制器120分开。

在一些实施例中,每个NVM裸芯140包括其每一个具有它们自己的电路(例如,感测放大器等)的一个或多个裸芯平面152,该电路(例如,感测放大器等)支持存储器操作(例如,作为来自计算机系统110的主机命令的结果的读取/写入/擦除处理,或者是将数据从一个存储器位置迁移到另一个的内部处理的结果)。裸芯平面152从而包括执行主机命令(图1A中未示出)的电路以及存储器元件154(例如,存储器元件154-1到154-3)。在一些实施例中,存储器元件被组织到页中(例如,2212个八位字节的页,其中每个位是储存在单独的存储器元件154中的值)。在一些实施例中,页对应于裸芯平面上的字线(或者字线的一部分)。在一些实施例中,页被组织到块中(例如,块是64页),并且每个裸芯平面具有固定数量的块(例如,8224块)。在一些实施例中,存储器元件154是被配置为根据预定的或特定的储存密度——诸如X3(即,每个存储器单元3位)、X2(即,每存储器单元2位)或X1(即,每存储器单元1位)来储存数据的闪速存储器元件。

图1B是示出根据一些实施例的数据储存系统100的实现方式的框图。尽管示出了一些示例特征,但是为了简洁并且不至于混淆这里所公开的示例实现方式的更加显著的方面而没有示出各种其它特征。为此,作为非限制性示例,数据储存系统100与计算机系统110结合使用。数据储存系统100包括储存控制器120,其包括主机接口122、转换控制器124、一个或多个非易失性存储器(NVM)控制器130(例如,NVM控制器130-1到NVM控制器130-k)以及非易失性存储器(NVM)模块102(例如,NVM模块102-1到NVM模块102-m)。在一些实施例中,储存控制器120包括进行多种任务的额外的模块,未示出。例如,在一些实施例中,储存控制器120包括用于耐受性管理、RAID(独立驱动冗余阵列)管理、压缩、错误校正编码/译码、加密和/或损耗均衡的(一个或多个)模块,以及额外的模块。

(一个或多个)非易失性存储器模块102经由一个或多个存储器通道106(例如,存储器通道106-1到106-k)与储存控制器120耦接。例如,如图1B中所示,各个通道106的每一个支持一个或多个NVM模块102并且与各个NVM控制器130耦接,有时被称为存储器通道控制器。在一些实施例中,各个存储器通道106的每一个包括一个或多个数据总线(例如,八个数据总线)。

(一个或多个)非易失性存储器模块102包括一个或多个NVM裸芯140/142。(一个或多个)非易失性存储器模块102还包括具有重新映射表108的NVM模块控制器104。重新映射表108储存用于NVM裸芯140/142内的存储器的单元(例如,存储器的部分或分段——诸如页、块、裸芯平面、条或裸芯)的物理-到-物理地址映射,如在下面详细描述的。

计算机系统110通过数据连接101与储存控制器120耦接。但是,在一些实施例中,计算机系统110包括作为组件和/或子系统的储存控制器120。相同地,在一些实施例中,计算机系统110包括作为组件或子系统的NVM模块102。计算机系统110可以是任何合适的计算装置——诸如个人计算机、工作站、计算机服务器或任何其它计算装置。计算机系统110有时被称为主机或主机系统。在一些实施例中,计算机系统110包括一个或多个处理器、一个或多个类型的存储器,可选地包括显示器和/或其它用户接口组件——诸如键盘、触摸屏、鼠标、触控板、数码相机和/或任何数量的补充装置以添加功能。此外,在一些实施例中,计算机系统110在控制线111上将一个或多个主机命令(例如,读取命令和/或写入命令)发送到储存控制器120。在一些实施例中,计算机系统110是服务器系统,诸如数据中心中的服务器系统,并且不具有显示器以及其它用户接口组件。

在一些实施例中,储存控制器120与单个NVM模块102(例如,经由单个通道106)耦接,而在其它实施例中,储存控制器120与多个NVM模块102(例如,经由一个或多个存储器通道106)耦接。在一些实施例中,在图1B中未示出,储存控制器120包括作为组件或子系统NVM模块102,在该情况中,储存控制器120被更一般地称为储存系统。

在各种实施例中,NVM裸芯140/142包括NAND型闪速存储器或NOR型闪速存储器。更一般地,NVM裸芯140/142包括在本文中描述的任何类型的、以这里所述的任何布置来布置的非易失性半导体存储器装置。此外,在一些实施例中,NVM控制器130是固态驱动(SSD)控制器。但是,根据多种实现方式的方面可以包括一个或多个其它类型的储存介质。在一些实施例中,NVM模块102是或者包括双列直插式存储器模块(DIMM)装置。在一些实施例中,NVM模块102与DIMM存储器插槽兼容。例如,在一些实施例中,NVM模块102与240-引脚DIMM存储器插槽兼容。在其它实施例中,NVM模块102是或者包括通过焊接凸块与通道106电耦接的倒装-芯片模块。在一些实施例中,NVM模块102与根据DDR3接口规格的信令兼容。在一些实施例中,NVM模块102与根据SATA(串行高级技术附接)接口规格的信令兼容,而在又一实施例中,NVM模块102与根据SAS(串行附接的SCSI)接口规格的信令兼容。

在一些实施例中,NVM控制器130的每一个NVM控制器包括一个或多个处理单元(有时被称为CPU或处理器或微处理器或微控制器),被配置为执行一个或多个程序(例如,NVM控制模块202中,图2A)中的指令。耦接NVM控制器130和NVM模块102的通道106是通常除了传送数据以外还传送命令,并且除了传送将被储存在NVM裸芯140、142中的数据值和从NVM裸芯140、142读取的数据值以外,可选地传送元数据、错误校正信息和/或其它信息的连接。为此,在一些实施例中,通道106是或者包括一个或多个数据总线(例如,八个数据总线)。

在一些实施例中,储存装置120被配置为适用于诸如云计算的应用的企业贮存,或用于缓存储存在(或将被储存在)诸如硬盘驱动的二级储存中的数据。在一些其它实施例中,储存装置120被配置以用于相对较小尺寸的应用——诸如个人闪速驱动或者个人、膝上型和平板计算机的硬盘替换。尽管闪速存储器装置和闪速控制器在这里被用作示例,在一些实施例中储存装置120包括(一个或多个)其它非易失性存储器装置和(一个或多个)相应的非易失性储存控制器。

在一些实施例中,转换控制器124从计算机系统110(例如,以主机接口124的方式经由控制线111)接收主机命令(例如,读取/写入/擦除命令)。主机命令包括指明主机命令所施加到的(例如,在逻辑地址空间中)存储器的一个或多个逻辑块地址(LBA)。在一些实施例中,转换控制器124通过将LBA映射到物理地址空间(例如,通过在转换表212中进行物理地址查找或分配,图2)中的物理地址而管理主机命令。在一些实施例中,转换控制器124将物理地址通信到适当的(一个或多个)NVM控制器130,其促进主机命令的执行(例如,执行数据读取、数据写入和/或块擦除命令)。

可替换地,在一些实施例中,转换控制器124通过将LBA映射到部分物理地址来管理主机命令。在一些实现方式中,部分物理地址包括对应于各个NVM模块102或其子集的物理地址部分,诸如各个NVM模块102上的裸芯平面(例如,部分物理地址是或者包括各个NVM模块102或其子集的物理地址)。转换控制器124将部分物理地址和LBA传送到合适的(一个或多个)NVM控制器130(图1B),其将部分物理地址和LBA经由通道106(例如,连同数据和其它信息,如需要的话)路由到合适的NVM模块102。NVM模块102的NVM模块控制器104接收存储器操作命令,包括(一个或多个)部分物理地址和(一个或多个)LBA,确定相应的裸芯(或多个裸芯),并且将存储器操作命令转到那些裸芯(或多个裸芯)。在一些情况中,例如,这包括将部分物理地址的每一个映射到指明可用于主机命令的NVM裸芯140/142内的存储器的物理位置的物理地址(例如,完整的物理地址)。

在任一种情况中,在一些实施例中,当NVM模块控制器104确定物理地址时,NVM模块控制器104还确定重新映射表108是否包括对应于该物理地址的条目。这样的条目指示物理-到-物理地址重新映射被分配给该物理地址,意味着NVM模块控制器104将被引导到该物理地址(例如,通过NVM控制器130)的主机指定的存储器操作重新引导到NVM裸芯140/142内的第二物理地址。

为实现这些目的,在一些实施例中,NVM模块控制器104的NVM模块控制器的每一个包括一个或多个处理单元(有时被称为CPU或处理器或微处理器或微控制器),被配置为执行储存在存储器(例如,在NVM模块控制程序242中,有时也被称为NVM模块控制模块242,图2B)中的一个或多个程序中的指令。在一些实施例中,NVM模块控制器104的处理单元和存储器集成为与一个或多个NVM裸芯140/142封装在一起的专用集成电路(ASIC)的部分。在一些实施例中,NVM模块控制模块242至少部分实现在一个或多个状态机中,该一个或多个状态机的功能由固件模块(例如,数据读取模块254、数据写入模块256和数据擦除模块258)控制。

数据储存系统100可以包括为了简洁并且不至于混淆这里所公开的示例实现方式的更加显著的特征而没有示出的各种额外的特征,并且特征的不同的布置是可能的。

图2A是示出根据一些实施例的示例储存控制器120的框图。储存控制器120通常包括存储器206;一个或多个处理单元(CPU)222,用于执行储存在存储器206中的模块、程序和/或指令并且从而进行处理操作;以及一个或多个通信总线208,用于互连这些组件。通信总线208可选地包括互连并且控制系统组件之间的通信的电路(有时被称为芯片集)。储存控制器120通过通信总线208耦接到计算机系统110和NVM模块102。存储器206包括高速随机存取存储器,诸如DRAM、SRAM、DDR RAM或其它随机存取固态存储器装置,并且可以包括非易失性存储器,诸如磁盘储存系统、光盘储存系统、闪速存储器装置或其它非易失性固态储存系统的一个或多个。存储器206可选地包括位于远离(一个或多个)CPU 222的一个或多个储存系统。存储器206,或可替换地在存储器206内的(一个或多个)非易失性存储器装置,包括非瞬时性计算机可读储存介质。在一些实施例中,存储器206或者存储器206的计算机可读储存介质储存以下程序、模块和数据结构或其子集:

·输入/输出(I/O)接收模块210,从计算机系统110接收主机命令(例如,读取/写入/擦除命令)和/或数据;

·转换模块212,通过将逻辑块地址映射到物理地址空间中的物理地址或部分物理地址(例如,NVM模块级、芯片级、条级或裸芯级物理地址)而管理主机命令(这样的逻辑-到-物理映射被可选地储存在转换表220中);

·非易失性存储器(NVM)控制模块202,被用于促进主机命令(例如,读取/写入/擦除命令),可选地包括:

·数据读取模块214,用于与一个或多个NVM模块102交互并且从一个或多个NVM模块102读取数据;

·数据写入模块216,用于与一个或多个NVM模块102交互并且将数据写入到一个或多个NVM模块102中;

·数据擦除模块218,用于与一个或多个NVM模块102交互并且从一个或多个NVM模块102中的一个或多个块擦除数据;以及

·(一个或多个)可选的额外的模块224,进行耐受性管理、RAID管理、压缩、错误校正编码/译码、加密、损耗均衡、垃圾收集和其它任务。

上述识别的元件的每一个可以贮存在之前提到的存储器装置的一个或多个中,并且对应于用于进行上述功能的指令集。上述识别的模块或程序(即,指令集)不需要实现为单独的软件程序、规程或模块,并且从而这些模块的各种子集可以组合或者在各种实施例中另外地重新布置。在一些实施例中,存储器206可以储存以上识别的模块和数据结构的子集。此外,存储器206可以贮存以上未描述的额外的模块和数据结构。在一些实施例中,在一些实施例中,储存在存储器206或者存储器206的计算机可读储存介质中的程序、模块和数据结构,提供用于实现参考图6A-6C和/或7A-7B在下面描述的任何方法的指令。

尽管图2A根据一些实施例示出了储存控制器120,但是图2A相比于这里所述的实施例的结构性示意更倾向于作为可能出现在储存控制器120中的各种特征的功能性描述。实践中,并且如由本领域普通技术人员认识到的,单独地示出的项目可以被组合并且一些项目可以被分开。

图2B是示出根据一些实施例的示例非易失性存储器(NVM)模块102的框图。非易失性存储器模块102通常包括存储器246、一个或多个处理单元(CPU)262和一个或多个通信总线248,该一个或多个处理单元(CPU)262用于执行储存在存储器246中的模块、程序和/或指令并且从而进行处理操作,并且该一个或多个通信总线248用户互连这些组件。通信总线248可选地包括互连并且控制系统组件之间的通信的电路(有时被称为芯片集)。非易失性存储器(NVM)模块102通过通信总线248(例如,其可选地包括通道106及它们的数据总线)耦接到NVM控制器130和NVM裸芯140。存储器246包括高速随机存取存储器——诸如DRAM、SRAM、DDR RAM或其它随机存取固态存储器装置,并且可以包括非易失性存储器——诸如一个或多个磁盘储存系统、光盘储存系统、闪速存储器装置或其它非易失性固态储存系统。存储器246可选地包括与NVM控制器130共享的一个或多个储存装置和/或储存控制器120和/或其它NVM模块102。可替换地,存储器246和/或储存在其上的指令、程序、模块和/或数据结构包括固件。在一些实施例中,NVM模块102是或者包括专用集成电路(ASIC),该专用集成电路(ASIC)包括(一个或多个)CPU 262和/或存储器246。存储器246,或者可替换地存储器246内的(一个或多个)非易失性存储器装置,包括非瞬时性计算机可读储存介质。

注意到的是,在一些实施例中,由NVM模块102接收的存储器操作命令指明物理地址,因为相应的主机命令指明物理地址,或者因为储存控制器120已经将在接收的主机命令中的逻辑地址映射到物理地址。在一些实施例中,由在NVM模块102处接收的存储器操作命令指明的物理地址是部分物理地址,其不完全指明将存储器操作引导到的物理位置,在该情况中接收的存储器操作命令还包括逻辑地址。在后一个示例中,由NVM模块102接收的存储器操作命令中的两个地址(部分物理地址和逻辑地址)由NVM模块102处理以产生物理地址。

在一些实施例中,存储器246或存储器246的计算机可读储存介质储存以下程序、模块和数据结构或其子集:

·输入/输出(I/O)接收模块250,从NVM控制器130或储存控制器120接收各个存储器操作命令(例如,读取/写入/擦除命令,有时被称为主机命令)和/或数据的至少一部分。在一些实施例中,存储器操作命令包括部分物理地址(例如,用于NVM模块102的NVM模块级物理地址、裸芯平面级物理地址或块级物理地址)和逻辑块地址(例如,从计算机系统110传送的);

·可选的转换模块252,通过(1)将接收的物理地址(从储存控制器120,并且可选地从转换控制器124接收的)映射到物理地址;或者通过(2)将逻辑块地址和部分物理地址(从储存控制器120接收两者)映射到物理地址空间中的物理地址(例如,块级或页级物理地址)来管理主机命令。这样的物理-到-物理映射可选地储存在转换表260中。在将存储器操作命令的(一个或多个)物理或部分物理地址映射到(一个或多个)物理地址之后,转换模块252确定(一个或多个)物理地址是否在重新映射表108中储存有重新映射分配,并且如果是的话,根据重新映射分配(不同的物理地址的分配)处理主机命令;以及

·非易失性存储器(NVM)模块控制程序242(有时也被称为NVM模块控制模块242),被用于促进各个主机命令(例如,读取/写入/擦除命令)的至少一部分,可选地包括:

·数据读取模块254,用于与一个或多个NVM裸芯140交互并且从一个或多个NVM裸芯140读取数据;

·数据写入模块256,用于与一个或多个NVM裸芯140交互并且将数据写入到一个或多个NVM裸芯140;以及

·数据擦除模块258,用于与一个或多个NVM裸芯140交互并且将数据从一个或多个NVM裸芯140中的一个或多个块擦除。

上述识别的元件的每一个可以贮存在之前提到的存储器装置的一个或多个中,并且对应于用于进行上述功能的指令集。上述识别的模块或程序(即,指令集)不需要实现为单独的软件程序、规程或模块,并且从而这些模块的各种子集可以组合或者在各种实施例中另外地重新布置。在一些实施例中,存储器246可以储存以上识别的模块和数据结构的子集。此外,存储器246可以储存以上没有描述的额外的模块和数据结构。在一些实施例中,储存在存储器246或存储器246的计算机可读储存介质中的程序、模块和数据结构提供用于实现参考图6A-6C和/或图7A-7B在下面描述的任何方法的指令。

图3A-3B示出了根据一些实施例的分别不具有或者具有对存储器的坏的单元的重新映射的存储器模块102的操作。

图3A示出了根据一些实施例的不具有对存储器的坏的单元的重新映射的存储器模块102的操作。在该示例中,存储器模块102被示出为具有5个裸芯302(例如,裸芯302-0到裸芯302-4),但是,本领域技术人员将理解,取决于环境,存储器模块102可以用更多或更少的裸芯构造。在一些实施例中,每个裸芯302包括两个裸芯平面304(例如,裸芯平面304-0和304-1;为了视觉的清楚性,图3A中的裸芯平面的剩余部分未作标记)。如这里所使用的,术语裸芯平面指在裸芯上的具有其自己的(例如,专用的)电路的存储器的一部分,通过该电路执行存储器操作(例如,每个裸芯平面具有其自己的(一个或多个)感测放大器等)。以此方式,存储器模块102可以并行地在不同的裸芯平面上执行存储器操作。再次,本领域技术人员将理解,在一些实施例中,每个裸芯302可以具有比两个裸芯平面304更多或者更少。在一些情况中,裸芯平面304包括不能够可靠地写入到其和/或从其读取的坏的区域306(例如,坏的区域306-1、306-2和306-3)。在图3A-3B中,坏的区域被示出为裸芯平面内的黑色的条带。取决于环境,坏的区域可以包括单个字线或一组(例如,多个)字线。在各种情况中,坏的区域可以是完全地制成后不可用的、可能已经制造为具有缺陷使得它们不能通过烧入测试的、可能具有不可接受的高误码率(BER)的和/或具有这些问题的组合。此外,在一些实施例中,坏的区域是裸芯平面的子单元(例如,坏的区域是存储器的块或存储器的字线或者甚至存储器的页)。

因为裸芯平面304-0大部分包括坏的区域,在图3A中示出的示例中,裸芯平面304-0被指定为存储器的坏的裸芯平面或坏的单元。参考方法600在下面描述关于什么构成存储器的坏的单元的更加具体的基准。

在该示例中,每当接收到要求将数据写入到NVM模块102上的存储器、从NVM模块102上的存储器读取数据或者从NVM模块102上的存储器擦除数据的主机命令时,NVM控制器130将第一地址信号308(例如,物理地址信号)发送到NVM模块102。第一地址信号足以完全指明适当的裸芯平面并且激活相应的第二地址信号310(例如,物理地址信号)。例如,第一地址信号308-0的激活经由第二物理地址信号310-0指令存储器模块来激活裸芯平面304-0。

在图3A中示出的示例中,第一地址信号308被“硬接线”(例如,永久地或者不变地)到第二地址信号310。例如,当第一地址信号308-0被激活时,第二地址信号310-0被激活;当第一地址信号308-1被激活时,第二地址信号310-1被激活;等等。处理第一地址信号308-0通向坏的裸芯平面304-0的事实的一个方法是忽略该裸芯平面,例如,通过将裸芯平面304-0的物理地址从可用的物理地址的池中移除,其中从该可用的物理地址的池来分配逻辑地址。但是,如果裸芯平面304-0是RAID条带的部分,忽略裸芯平面304-0使得RAID条带更小,这是不利的。例如,如果储存控制器被配置为一次并行地写入到整个RAID条带,忽略所述RAID条带内的裸芯平面减少了在写入RAID条带所花费的时间中发生的写入操作的量(由于减少了当写入RAID条带时进行的写入操作的量)。图3A中的跨过第一地址信号308-0和第二地址信号310-0的加粗线,指示存储器操作的路由。

相对比,图3B示出了类似于图3A的NVM模块102的NVM模块102’,除了NVM模块102’的NVM控制器104’不将第一地址信号308“硬接线”到第二地址信号310。相反,当NVM模块102’接收对应于裸芯平面304-0的第一地址信号308-0时,NVM模块102’(并且更具体地,NVM模块控制器104’),确定重新映射表108是否包括被分配到裸芯平面304-0的第二地址。因为裸芯平面304-0在该示例中是坏的裸芯平面,重新映射表108包括对应于保留的裸芯平面312的第二地址分配。具体地,在该示例中,重新映射表108储存指示第二物理地址的物理-到-物理重新映射,该第二物理地址包括完整地址的至少多个最高有效位(MSB)以指明裸芯平面304-0被重新映射到保留的裸芯平面312-0。因此,由第一地址信号308-0引导到裸芯平面304-0的存储器操作被重新引导到保留的裸芯平面312-0。图3A中跨过第一地址信号308-0和第二地址信号310-4的加粗线,指示存储器操作的路由。跨过第二地址信号310-0的虚线,指示如果没有进行物理-到-物理地址重新映射时存储器操作将如何被路由。

此外,在图3B中,根据一些实施例,裸芯302被过量提供,并且存在比第二地址信号310更少的第一地址信号308。还应注意的是,在一些实施例中,第一地址信号308共享共同的总线,在该总线之上物理地址(例如,具有裸芯选择和裸芯平面选择部分)被作为数据传送,而第二地址信号310的每一个使用相应的一组物理电路传送以用于激活特定的裸芯平面(例如,通过激活裸芯选择导线和对应于裸芯平面304-0的裸芯平面选择导线而传送第二地址信号310-0)。

图4A-4B示出了根据一些实施例的不具有以及具有对存储器的坏的单元的物理-到-物理重新映射的RAID条带。为了视觉的清楚性,在该示例中,物理-到-物理重新映射在裸芯级上进行,尽管应理解的是,物理-到-物理重新映射可以可替换地在存储器的不同尺寸的单元上进行(例如,在裸芯平面级上,如参考图3A-3B所解释的)。

在图4A中,多个NVM模块102被示出为,包括NVM模块102-1、102-2到102-j。储存控制器(未示出),被配置为使用来自每个NVM模块102的单个裸芯以构建RAID条带。例如,RAID条带在图4A以灰色示出,包含:来自NVM模块102-1的裸芯302-0;来自NVM模块102-2的裸芯402-0;以及来自NVM模块102-j的裸芯404-0。如果j大于3,将包含在来自NVM模块102-2到102-j-1的额外的裸芯。储存控制器被配置为并行写入RAID条带,意味着写入操作在裸芯302-0、402-0和404-0上同时进行。但是,在该示例中,裸芯302-0是坏的裸芯平面,并且由于此而被忽略(也没有被写入)。这有效地减少了RAID条带的尺寸,并且减少了写入RAID条带所花费的时间中发生的写入操作的量(因为缺少了裸芯302-0作为RAID条带的可实行的部分而进行更少的操作)。

应理解的是,RAID条带在这里仅作为示例使用。参考图4A-4B描述的功能可以等同地应用到其中将数据并行地写入到存储器的多个单元的任何情况。

图4B类似于图4A,除了坏的裸芯302-0已经被重新映射到裸芯302-4以外,其中两者裸芯在相同的NVM模块中,从而维持RAID条带的尺寸并且最优化在RAID条带(例如,读取/写入处理)上进行的并行的存储器操作的效率。

图4A-4B还示出了其中多个裸芯被封装在3D配置中的示例实施例。在一个示例中,NVM模块102是DIMM模块或倒装-芯片模块,每一个在薄衬底上具有多个裸芯,该薄衬底垂直地堆叠在NVM模块控制器104上,其中该NVM模块控制器104可以是制造在其自己的衬底上的专用集成电路(ASIC)。

图5示出了根据一些实施例的使用统计的裸芯信息的对用于封装到存储器模块(例如,NVM模块102,图1B)中的裸芯的选择。具体地,在一些情况中,从已经在晶片(wafer)500上制造的一组非易失性存储器裸芯中选择多个裸芯302(例如,裸芯302-0到裸芯302-4)以用于封装到存储器模块(例如,NVM模块102-1,图4B)中。在一些情况中,根据对应于该组非易失性存储器裸芯的预定的基准和预定统计裸芯性能信息,在该组非易失性存储器裸芯上已经将预定的裸芯级和子裸芯级测试延迟直到封装之后。例如,尽管预定的测试已经在制造在晶片500上的特定的裸芯上延迟,但是可以知道来自经受相同处理的之前的晶片的可靠性数据(例如,测试晶片,参考图7A-7B描述的方法700的说明)。考虑,作为一个示例(以晶片500的方式示出),导致裸芯可靠性中的统计的差异的制造处理取决于裸芯在晶片上的位置(例如,相对于晶片的中心的径向的晶片位置)。在示出的示例中,朝向晶片500的中心制造的裸芯具有较差的可靠性(例如,具有近似70%的可用的存储器),制造在晶片500的中间径向环内的裸芯具有中等的可靠性(例如,具有近似90%的可用的存储器),而制造在晶片500的外部径向环内的裸芯具有出色的可靠性(例如,具有近似95%的可用的存储器)。该统计的信息可以连同在存储器模块内过量提供裸芯一起使用以选择裸芯302,以便于确保在预定统计容限内(例如,2-sigma(大约95.45%)、3-sigma(大约99.7%)或者3.5-sigma(大约99.95%))的存储器模块内的可用的存储器的量。

图6A-6C示出了根据一些实施例的用于物理-到-物理地址重新映射的方法600的流程图表示。至少在一些实施例中,方法600由非易失性存储器(NVM)模块(例如,NVM模块102,图1B)进行。可替换地,方法600由储存控制器(例如,储存控制器120,图1B)进行。在一些实施例中,方法600由储存在非瞬时性计算机可读储存介质中的并且由存储器模块的一个或多个处理器(例如,存储器模块102的一个或多个处理器262,图2B)和/或储存控制器的一个或多个处理器(例如,储存控制器120的一个或多个处理器222,图2A)执行的指令进行管理。在各种实现方式中,可以组合方法中的一些操作和/或一些操作的次序可以从图中示出的次序改变。此外,在一些实现方式中,单独的图(例如,图7A-7B)中示出的操作和/或与单独的方法(例如,方法700)相关联地讨论的操作可以被组合以形成其它方法,并且相同的图中示出的操作和/或与相同的方法相关联地讨论的操作可以被分为不同的方法。

无论如何,方法600在存储器装置(例如,数据储存系统100,图1B)处进行,该存储器装置包括非易失性存储器的多个物理裸芯(例如,封装到存储器模块中——诸如存储器模块102,图1B)。在一些实施例中,多个物理裸芯被分为存储器的单元(例如,存储器的部分或分段——诸如裸芯平面、块、页和字线),其每一个可以由各个第一地址寻址。

在一些实施例中,非易失性存储器的多个物理裸芯是多个闪速存储器裸芯。在一些实施例中,多个闪速存储器裸芯包括NAND型闪速存储器或NOR型闪速存储器。在其它实施例中,非易失性存储器的多个物理裸芯包括一个或多个其它类型的非易失性存储器(例如,电阻式RAM(ReRAM))。在一些实施例中,储存系统包括一个或多个存储器模块(例如,NVM模块102,图1A-1B)并且存储器模块包括非易失性存储器的一个或多个物理裸芯。例如,在一些实现方式中,储存系统包括几十个或者上百个的存储器模块,组织为并行的存储器通道(例如,通道106,图1B)——诸如每个存储器通道4、8、16、32或64个存储器模块以及8、16、32或64个并行的存储器通道。在一些实施例中,储存系统是单个闪速“拇指驱动”或固态驱动(SSD)。

为了解释的简便,方法600被描述为由存储器模块进行,尽管不一定是这样的情况。

对于非易失性存储器的多个物理裸芯中的存储器的两个或多个单元的序列的存储器的各个单元的每一个,存储器模块确定(602)存储器的各个单元的有效性状态。有效性状态是有效状态和无效状态的一个。在一些实施例中,存储器的每个单元是存储器的预定的连续的单元(例如,存储器的每个单元是具有预定的尺寸的物理存储器的连续的部分或分段)。

在一些实施例中,对于存储器的各个单元,有效性状态基于(604)存储器的各个单元的制成后特征。例如,在制造处理期间引入的各种缺陷可能导致单独的存储器元件、字线或存储器更大的区域制成后不可用。在制造期间引入的其它缺陷可能导致单独的存储器元件(或者存储器的更大的区域)制成后被严重地损坏,意味着单独的存储器元件有可能在少量P/E周期(例如,10个编程/擦除周期)之后变为不可用。这两种情况—特征在于制成后不可用的存储器以及特征在于制成后被严重损坏的存储器—落入“制成后特征”的含义中。

存储器的单元的无效状态指示存储器的单元是“坏的”,其在各种情况中意味着存储器的单元是不可用的、不能被写入、不能从其读取或者用于存储器的单元的误码率(BER)高于某个阈值。可替换地,在一些实施例中,存储器的各个单元的每一个包括(606)存储器的多个子单元。确定存储器的各个单元的有效性状态包括确定存储器的多个子单元中的预定的数量(或百分比,或分数)是否可以写入。例如,在一些实施例中,存储器的单元是裸芯平面(或块)并且子单元是页,并且对于每个裸芯平面(或块),存储器模块确定是否多于或者少于90%(例如,预定的百分比)的页是可写入的。如果裸芯平面(或块)中多于90%的页是可写入的,则存储器模块确定该裸芯平面(或块)的有效性状态是有效状态,并且如果不是,则确定有效性状态是无效状态。作为另一示例,在一些实施例中,每个裸芯平面包括8224块,每一块由64页构成。在该示例中,存储器模块对于每一块确定是否至少58页是可写入的,并且如果是的话,则确定块的有效性状态是有效状态,并且如果不是,则确定有效性状态是无效状态。在一些实施例中,存储器模块通过将测试数据写入到子单元以及缓冲器(例如,易失性存储器中)、从子单元读取数据并且将读取数据与在缓冲器中的数据进行比较,而实现该确定。当存储器的单元具有为无效状态的有效性状态时,存储器的单元被称为是存储器的“坏的”单元或者存储器的“无效的”单元。相反,当存储器的单元具有为有效状态的有效性状态时,存储器的单元被称为是存储器的“好的”单元或者存储器的“有效的”单元。

在一些实施例中,例如,在对包括存储器模块的驱动的驱动初始化或正常操作期间,确定有效性状态包括从存储器模块的外部的储存控制器(例如,储存控制器120,图1B)接收信息。作为一个示例,储存控制器进行各种编码/译码任务,通过该任务确定误码率(BER)。在一些实施例中,储存控制器在驱动初始化期间或者在正常操作期间将BER传送到存储器模块,使得存储器模块可以确定存储器模块上的存储器的单元的各个有效性状态。

根据存储器的各个单元的有效性状态是无效状态的确定:存储器模块在表(有时被称为“重新映射”表)中储存(608)被分配到存储器的各个单元的第二地址。第二地址的至少一部分是对应于不同于存储器的各个单元的存储器的第二单元的物理位置的物理地址部分。在一些实施例中,分配每个第二地址包括分配物理地址空间中的完整的物理地址的预定的数量的最高有效位(MSB)。在一个示例中,存储器模块被配置为以32-位物理地址操作。32-位物理地址的四个最高有效位在该示例中可以对应于裸芯地址。剩余的28-位(例如,剩余的最低有效位)可用于指示块和页地址。存储器模块,已经确定特定的裸芯是“坏的”裸芯,通过在表中储存坏的裸芯的四个最高有效位和好的裸芯中的四个最高有效位而将坏的裸芯重新映射到好的裸芯。此外,当存储器模块随物理地址接收存储器操作命令时,在该示例中,存储器模块将存储器操作命令的四个最高有效位与表中的条目比较。如果找到条目,存储器模块使用重新映射的“好的”裸芯的四个最高有效位而不是存储器操作命令中的四个最高有效位来执行接收到的存储器操作命令。

在一些实施例中,该表被储存在非易失性存储器中(例如,多个非易失性存储器裸芯上)。在一些实施例中,该表被储存在易失性存储器中(例如,动态随机存取存储器,也被称为“DRAM”)。

在一些实施例中,存储器模块指定(610)或保留多个物理裸芯的存储器的一个或多个单元作为存储器的保留单元(例如,保留的裸芯平面312-0和312-1,图3B)。存储器模块从被指定为存储器的保留单元的所述存储器的一个或多个单元之中分配(612)每个第二地址。在一些实施例中,方法600在存储器模块的产品寿命的开始处的初始化程序期间进行。在这样的实施例中,当组装存储器模块时,存储器的保留单元被指定为如此。在一些实施例中,方法600在贯穿存储器模块的产品寿命中重复地进行,如在下面详细描述的。在这样的实施例中,当组装装置时,存储器的固定数量的单元可以被指定为“保留的”存储器,或者可替换地,存储器的之前“未保留的”单元如果需要可以通过将储存在其中的数据转移到其它地方并且将对应于存储器的新保留的单元的第二地址的列表作为可用于重新映射的地址加以维持而被改变为存储器的保留单元。

在一些实施例中,储存存储器的一个或多个无效的单元的各个第二地址(例如,“坏的”存储器的单元)的分配通过将存储器的无效的单元重新映射到存储器的有效的单元(例如,而不是通过不从其读取实际数据或者不将实际数据写入到其而简单地忽略存储器的坏的单元)而保留了在存储器的有效的单元上进行的同时并行的读取/写入操作的数量。这增加了存储器操作的效率,其在一些情况中,可以被测量为读取/写入操作的数量除以进行所述读取/写入操作所需要的时间的比率。由于并行地进行所述存储器操作所需要的时间不少于如果忽略存储器的坏的单元(例如,不写入或者从其读取)的情况,因此忽略存储器的坏的单元减少了效率的分子,然而将存储器的坏的单元重新映射到存储器的好的单元维持分子不变。

更具体地,在一些实施例中,存储器模块被配置(614)为同时进行N个并行的读取/写入操作,其中N是大于2的整数。对于被确定为在无效状态中的存储器的各个单元的每一个,各个第二地址是保留了非易失性存储器模块的进行N个并行的读取/写入操作的能力的地址。在一些实施例中,这通过在存储器模块对于其支持并行操作的存储器的相同的单元上进行重新映射而实现。例如,当存储器模块被配置为在独立的裸芯平面上并行执行主机命令(或其部分)时,在一些实施例中,该重新映射也在裸芯平面级上进行。这就是说,在一些实施例中,在表(例如,重新映射表108,图2B)中被分配的第二地址是包括足以指明存储器的裸芯平面的多个最高有效位(MSB)的裸芯平面地址。这是有利的,因为这些实施例中,重新映射不干预并行的处理,例如,通过将两个块重新映射到相同的裸芯平面,其中这两个块否则可能由于在不同的裸芯平面上而已经被并行地写入。

作为示例,在一些实施例中,采用独立驱动冗余阵列(RAID)方案,其中多个物理裸芯被分区为RAID条带(例如,存储器的每个单元被分配到至少一个RAID条带)并且储存控制器被配置为在给定的RAID条带内的存储器的每个单元上同时进行并行的写入操作(即,RAID条带在单个并行操作中写入)。在一些实施例中,方法600在RAID条带中的存储器的每个单元上进行,使得RAID条带内的存储器的坏的单元以保留存储器模块的并行写入整个RAID条带的能力的方式被重新映射到存储器的有效的单元。因此,RAID条带保持“完整的”。在一些实施例中,RAID条带包括来自存储器模块中的每个裸芯的单个页、块或裸芯平面。可替换地,方法600在与多个存储器模块通信的储存控制器处进行,并且RAID条带包括来自多个模块之中的每个存储器模块的单个页、块、裸芯平面或裸芯。

可替换地,在一些实施例中,重新映射以比裸芯平面更高程度的粒度(例如,在存储器的更小的单元上)进行。例如,在一些实施例中,存储器模块被配置为在不同的裸芯平面上并行地执行存储器操作并且重新映射在块级上进行(例如,表中分配的第二地址(例如,重新映射表108,图2B)是包括足以指明存储器的块的多个最高有效位(MSB)的块地址)。这是有利的,因为更高程度的粒度意味着潜在地浪费较少的存储器(例如,通过在否则是存储器的坏的单元中不浪费存储器的残余的好的子单元)。

在一些实施例中,该表是(616)储存仅用于具有无效状态的存储器的单元的各个第二地址的稀疏表。作为一个示例,当存储器模块确定存储器的单元是无效的时,存储器模块在表中创建新的条目。当存储器模块接收指明特定的地址的存储器操作命令时,存储器模块访问表并且确定表中是否存在在对应于该地址的条目。如果未找到条目,存储器模块使用用于存储器操作命令的地址,并且如果找到条目,存储器模块使用条目中的分配的第二地址以用于存储器操作命令。

参考操作标号618–622在下面描述的是,在当存储器的单元被确定为无效时可选地进行的各种操作。

在一些实施例中,对于存储器的各个单元,根据存储器的各个单元的有效性状态是无效状态的确定(618):存储器模块进行(620)数据恢复操作以恢复写入到存储器的各个单元的数据。例如,在一些实施例中,存储器模块包括多个裸芯(例如,八个裸芯),该裸芯各自具有两个裸芯平面(例如,第一裸芯平面和第二裸芯平面)。作为一个示例,存储器模块将被配置为使用RAID条带以用于数据恢复,该RAID条带包括来自存储器模块中的裸芯的每一个的一个裸芯平面。当裸芯平面被确定为无效的时,存储器模块将进行RAID恢复以恢复储存在无效的裸芯上的数据。存储器模块然后将恢复的数据写入(622)到存储器的第二单元。这样的实施例在当在贯穿存储器模块的寿命中周期性地进行方法600(见操作640–644)并且存储器的无效的单元在其上有可能具有有用的数据(例如,用户的数据)时特别有用。

参照参考标号622–624在下面描述的是当存储器的单元被确定为有效的时可选地进行的各种操作。

根据存储器的各个单元的有效性状态是有效状态的确定:存储器模块放弃(624)对应于存储器的单元的第二地址的分配。该表储存用于在多个物理裸芯中的存储器的每个单元的条目。在一些实施例中,对于存储器的各个单元,放弃对应于存储器的各个单元的第二地址的分配包括,在该表中作为默认地址分配而维持(626)用于存储器的各个单元的各个第一地址。例如,在进行方法600之前(例如,当生产存储器模块时的初始化程序期间),创建该表并且用对于存储器模块中的存储器的每一个单元的第二地址分配加以填充,所有的第二地址初始地与作为默认的各个第一地址的每一个相同。当存储器的单元被确认为无效的时,存储器的该单元的地址被重新映射到保留的存储器中的可用的地址。但是当存储器的单元被确认为有效的时,该步骤被跳过,保留相应的第一地址为默认的第二地址。

在一些实施例中,存储器模块接收(628)被寻址到对应于存储器的各个单元的各个第一地址的读取/写入命令(例如,主机命令)。在一些实施例中(例如,当该表为稀疏表时,如参考操作616所述的),存储器模块访问(630)该表并且确定(632)该表是否包括分配到存储器的各个单元的各个第二地址。例如,访问该表包括,在一些实施例中,从非易失性存储器读取该表。可替换地,例如,当由储存控制器而不是存储器模块进行方法600时,在一些实施例中,访问该表包括从易失性存储器(例如,DRAM)读取该表。在一些实施例中,确定该表是否包括分配到存储器的各个单元的各个第二地址包括,搜索该表以寻找对应于存储器的各个单元的表条目,例如,通过使用存储器的该单元的第一地址的散列(hashed)值。

在一些实施例中,根据该表包括分配到存储器的各个单元的各个第二地址的确定,存储器模块将读取/写入命令引导到(634)各个第二地址。相反,根据该表不包括分配到存储器的各个单元的各个第二地址的确定,存储器模块将读取/写入命令引导到(636)各个第一地址。因此,存储器的坏的(即,无效的)单元被重新映射到存储器的好的(即,有效的)单元。

根据各种实施例,方法600可以在多个时间处进行。例如,方法600可以在预定的时间处进行,诸如仅在驱动初始化期间、或者每天、或者每个月或者每年。可替换地,方法600可以仅在当满足特定条件时进行。仍可替换地,方法600的某些方面(例如,操作)可以连续地进行。作为一个示例,在一些实施例中,存储器模块连续地监控存储器模块内的存储器的单元的误码率(BER)并且当它们的BER高于预定的阈值(例如,预定的BER阈值)时重新映射存储器的单元。

更一般地,在一些实施例中,存储器模块确定(638)是否满足一个或多个重新映射基准。根据满足所述一个或多个重新映射基准的确定,存储器模块触发(640)确定用于存储器的两个或多个单元的序列的存储器的一个或多个的各个单元的有效性状态的操作的进行。在一些实施例中,触发确定用于存储器的一个或多个的各个单元的有效性状态的操作的进行包括触发方法600中的任何操作的进行。如上所提到的,在一些实施例中,确定是否满足一个或多个重新映射基准包括(642)确定自从之前确定用于存储器的两个或多个单元的序列的存储器的一个或多个的各个单元的有效性状态起是否已经流逝预定的时间段。可替换地或者此外,确定(644)是否满足一个或多个重新映射基准包括确定误码率是否已经超过预定的误码率阈值。

图7A-7B示出了根据一些实施例的用于将非易失性存储器封装到存储器装置中的方法700的流程图表示。简单来说,在一些情况中,方法700被用于封装低测试存储器裸芯(例如,在其上已经延迟某些传统测试的存储器裸芯)。因此,方法700有时被用于减缓与高等级的存储器装置的生产相关联的测试的成本。如这里所使用的,术语“存储器装置”被用于表示包括存储器的任何电子装置(例如,封装的装置)。例如,存储器模块102(图1A-1B)被认为是存储器装置。数据储存系统100(图1A-1B)也是存储器装置的示例,如作为具有储存控制器(例如,储存控制器120,图1A-1B)和存储器(例如,NVM裸芯140/142,图1A-1B)的储存系统。

此外,在一些实现方式中,在单独的图(例如,图6A-6C)中示出的操作和/或与单独的方法(例如,方法600)相关联地讨论的操作可以被组合以形成其它方法,并且在相同的图中示出的操作和/或与相同的方法相关联地讨论的操作可以被分为不同的方法。

为此,方法700包括根据对应于一组非易失性存储器裸芯的预定的基准和预定统计裸芯性能信息,从该组非易失性存储器裸芯选择(702),在其上已经将预定的裸芯级和子裸芯级测试延迟直到封装之后的多个非易失性存储器(NVM)裸芯(例如,NVM裸芯140/142,图1B)。在一些实施例中,方法700包括延迟或者完全放弃一个或多个晶片-级测试。例如,在一些实施例中,方法700包括至少延迟(704)直到所选择的多个非易失性存储器裸芯被封装到存储器装置中、或者完全放弃以下测试的至少一个的进行:晶片分类(WS)测试(晶片-级测试的示例)、存储器组件(MC)测试(其经常是子裸芯级测试的示例)、已知合格裸芯(KGD)测试(裸芯级测试的示例)以及烧入测试(其可以以多种配置进行)。在一些情况中,裸芯级测试包括裸芯分类(有时被称为电子裸芯分类)测试。在一些情况中,子裸芯级测试包括电路探针(CP)测试,其使用被称为晶片探测器或可替换地探针台的装置进行。在一些实施例中,方法700包括延迟由特定的测试设备(例如,晶片探测器)进行的每个测试。

如这里所使用的,术语“烧入测试”被用于表示其中存储器(例如,存储器裸芯或存储器装置中)在投入运行之前(例如,在被封装之前和/或由消费者使用之前)被练习的处理。频繁地进行烧入测试是由于一些存储器装置的高初始故障率(例如,由于所谓的“浴盆曲线”,其中有缺陷的或者严重地损坏的存储器组件在它们的产品寿命中早期故障)。烧入测试的进行意欲识别和/或移除开始就故障的存储器。在此意义上,存储器裸芯可以通过放弃将其封装到存储器装置中而从生产中“移除”,或者其可以通过将其(一个或多个)物理地址从可分配到逻辑地址的物理地址的列表移除而从存储器装置内的运行中移除。

不幸的是,某些类型的存储器具有有限的寿命的特征,该有限的寿命可以表示为例如,在其之后存储器变为不可靠的(例如,不能准确地写入和/或从其读取)可变的编程/擦除(P/E)周期的数量。例如,在一些实施例中,该组非易失性存储器裸芯包括(706)闪速存储器。如上所提到的,闪速存储器单元(即,闪速存储器元件)包括具有被用于储存数据值的电荷表示的浮置栅极的晶体管。随着时间,重复地编程和擦除闪速存储器单元将减少由浮置栅极储存的电荷的量,从而使得其难以分辨由闪速存储器单元维持的数据值。取决于闪速存储器的特定的特质,闪速存储器单元可以在变得不可靠之前经历,例如,50、100、200或300个编程/擦除(P/E)周期。烧入测试的无差别的特质可能在存储器组件被投入运行之前耗尽存储器组件寿命的大部分。例如,一些烧入测试在测试期间在每个存储器单元上执行多达50个编程/擦除(P/E)周期。

在一些实施例中,闪速存储器裸芯包括NAND型闪速存储器或NOR型闪速存储器。在其它实施例中,该组非易失性存储器裸芯包括一个或多个其它类型的非易失性存储器(例如,电阻式RAM(ReRAM))。

在一些情况中,知道来自经受相同处理的之前的晶片的可靠性数据。例如,如图5中示出的,取决于裸芯在晶片上的位置(例如,裸芯相对于晶片的中心的径向位置),制造处理可能导致裸芯可靠性中的统计的差异。因此,在一些实施例中,该选择包括(708)根据多个非易失性存储器裸芯的晶片位置(例如,径向晶片位置)选择多个非易失性存储器裸芯。更具体地,在一些实施例中,该选择包括(710)根据多个非易失性存储器裸芯的晶片位置以及对应于晶片位置的统计裸芯性能信息选择多个非易失性存储器裸芯。

为此,在一些实施例中,方法700包括在多个测试晶片(例如,多个晶片——诸如10、100或1000个晶片)上进行某些测试以确定(例如,测量)对应于晶片位置的统计裸芯性能信息和在选择操作702期间使用的建立的预定的基准(例如,测试在选择操作702的执行之前在测试晶片上进行)。在一些实施例中,在测试晶片上进行的测试包括被延迟直到封装之后的测试(见操作702)。在一些实施例中,方法700还包括试运行处理,该试运行处理包括多个测试晶片上的测试的进行。

因为半导体工业的许多方面以预定的开发周期(例如,两年周期使得每两年期待“下一代产品”)、资本设备操作,资本设备包括测试设备,通常很快变得过时。测试设备变得过时的一个原因是不足够的生产量:也就是说,尽管之前一代的测试设备可能能够以足够水平的精确性和准确度进行测试,但测试设备将不能够以该精确性和准确度操作同时提供工业级的生产量。通过在测试晶片上而不是在装置生产期间进行这样的测试,可以给予这些测试充分的时间。因此,缓解了关于生产量的问题。换句话说,通常应在生产期间获得的晶片、裸芯和/或子裸芯信息的采集被转移到预生产阶段(例如,在生产处理的试运行阶段期间),这允许测试在不需要被经常替换的较低生产量的测试设备上进行。

在一些实施例中,该选择包括(712),根据预定统计裸芯性能信息,选择多个裸芯以便过量提供存储器装置,以确保在预定统计容限内的存储器装置中的最少量的可编程的/可擦除的存储器。例如,当预定统计容限为99.5%并且装置中的最少量的可编程的可擦除的存储器为10千兆字节时,在一些实施例中,选择多个裸芯使得封装的存储器装置的至少99.5%(见操作714)包括至少10千兆字节的可编程的/可擦除的存储器。在一些实施例中,预定统计容限可表达为生产的存储器装置中的包括最少量的可编程的/可擦除的存储器的百分比。例如,在各种实施例中,预定统计容限为1-sigma(即,百分比大约为68%)、2-sigma(即,百分比大约为95%)或3-sigma(即,百分比大约为99.7%)。

在一些实施例中,根据预定统计容限对封装的存储器装置定价。因此,简单来说,方法700的一些实施例提供一种放弃存储器装置的广泛的测试来替代在测试晶片上进行的统计的测试的方式。为此,在一些实施例中,高等级的存储器装置是被过量提供以使得最少量的可编程的/可擦除的存储器被确保为在比残余等级的装置更高的统计的容限之内的那些装置。换句话说,存储器装置基于它们的过量提供的水平而分类而不是经由广泛的测试而分类。

例如,可以过量提供高等级的10千兆字节的存储器装置以便于提供99.5%的具有10个可编程的/可擦除的千兆字节的保证,而可以仅过量提供残余等级的10千兆字节存储器装置以便于提供68%的具有10个可编程的/可擦除的千兆字节的保证。这可以通过相比于残余等级的存储器装置更大的程度地过量提供高等级的存储器装置(例如,通过增加一个或多个额外的裸芯到高等级的存储器装置),或可替换地,通过选择(对于高等级的存储器装置)具有指示更加可靠的性能的预定统计裸芯性能信息的存储器裸芯(或这些方式的组合)而实现。尽管10千兆字节的存储器装置的示例已经被用于解释的目的,但应理解的是,方法700等同地适用于具有比10千兆字节更多或更少的存储器装置。在一些情况中,方法700被用于企业储存存储器装置的生产,在该情况中,可编程的/可擦除的存储器的最小的级可以远大于10千兆字节。

方法700还包括将所选择的多个非易失性存储器裸芯封装(714)到存储器装置中。在一些实施例中,所选择的多个非易失性存储器裸芯是多个闪速存储器裸芯。在一些实施例中,多个闪速存储器裸芯包括NAND型闪速存储器和/或NOR型闪速存储器。在其它实施例中,所选择的多个非易失性存储器裸芯包括一个或多个其它类型的非易失性存储器(例如,电阻式RAM(ReRAM))。在一些实施例中,所选择的多个非易失性存储器裸芯被封装到存储器模块(例如,NVM模块102,图1A-1B)中。在一些实施例中,所选择的多个非易失性存储器裸芯被封装到包括储存控制器的存储器装置(例如,储存控制器与非易失性存储器的多个物理裸芯布置在一起以形成存储器装置)中。如上所提到的,术语“存储器装置”被用于表示包括存储器的任何电子装置(例如,封装的装置)。

在一些实施例中,在封装之前的在多个非易失性存储器裸芯的存储器的单元上进行的中等数量的编程/擦除(P/E)周期少于预定的数量。例如,在各种实施例中,存储器的单元(例如,关于其定义了中等数量的编程/擦除(P/E)周期的)是部分页、字线、页、块、裸芯平面或裸芯。在一些实施例中,存储器的单元是存储器的最小的可编程的单元(例如,通常为页)。在一些实施例中,存储器的单元是最小的可擦除的存储器的单元(例如,通常为块)。在一些实施例中,存储器的单元可由部分物理地址的物理部分寻址(例如,关于部分物理地址的进一步细节见方法600的说明)。

在一些实施例中,在封装之前在多个非易失性存储器裸芯的存储器的单元上进行的中等数量的编程/擦除(P/E)周期少于(716)50个P/E周期。但是,在一些实施例中,中等数量的编程/擦除(P/E)周期为0个、5个或者10个P/E周期。可替换地,在一些实施例中,中等数量的编程/擦除(P/E)周期是100或者任何其它整数。无论如何,对于上述原因,在一些情况中,方法700的一个目标是限制在存储器装置被投入运行之前在存储器的单元上进行的编程/擦除(P/E)周期的数量。

方法700还包括,在所述封装之后,在存储器装置中的多个非易失性存储器裸芯上进行(718)一组测试以识别存储器装置中的非易失性存储器裸芯内的满足预定的有效性基准的存储器的各个单元。所进行的该组测试包括被延迟的预定的裸芯级和子裸芯级测试。为了构造的目的,被延迟的预定的裸芯级和子裸芯级测试应被理解为根据操作718在多个非易失性存储器裸芯上进行的该组测试中包括那些测试。例如,如果传统的处理包括测试A、B和C,并且根据方法700,A、B和C没有一个在封装之前进行,并且根据操作718,封装之后仅进行A和B,则延迟的测试应被视为A和B。

在一些实施例中,方法700包括,在将多个非易失性存储器裸芯封装到存储器装置中之后,确定(720)存储器装置中的可编程的/可擦除的存储器的量(有时被称为存储器装置的储存容量)。在一些实施例中,确定存储器装置中的可编程的/可擦除的存储器的量包括将测试数据写入到存储器的每个单元(或存储器的多个单元)并且将所述测试数据写入到缓冲器(例如,在DRAM中),然后从存储器的每个单元读取测试数据并且将其与缓冲器中的测试数据比较。在一些实施例中,作出关于比较是否满足用于存储器的每个单元(或多个存储器的单元)的预定的再生性基准的确定。例如,在一些情况中,预定的再生性基准包括从存储器的单元读取测试数据是100%可恢复的,包括通过使用(一个或多个)错误校正码和/或其它数据恢复方法。可编程的/可擦除的存储器数据的量包括存储器的每个单元中的满足预定的再生性基准的可编程的/可擦除的存储器的量的总和。在一些实施例中,确定存储器装置中的可编程的/可擦除的存储器的量包括确定用于存储器的每个单元(或存储器的多个单元)的误码率(例如,基于对来自存储器的单元的码字译码时所校正的位的数量),并且将误码率(BER)与预定的BER阈值比较。在一些实施例中,根据用于存储器的各个单元的误码率高于预定的BER阈值的确定,方法700包括从可编程的/可擦除的存储器的量中扣除存储器的单元。并且在一些实施例中,根据用于存储器的各个单元的误码率低于预定的BER阈值的确定,方法700包括可编程的/可擦除的存储器的量中的存储器的单元。

在一些实施例中,方法700包括,在将多个非易失性存储器裸芯封装到存储器装置中之后,在存储器装置的初始化期间,进行(724)初始化程序,其包括:确定多个非易失性存储器裸芯的存储器的一个或多个单元的有效性状态,有效性状态为有效状态或无效状态的一个;并且使用(732)物理-到-物理地址重新映射以将被寻址到具有无效状态的存储器的各个单元的读取/写入请求重新引导到具有有效状态的存储器的单元。在一些实施例中,确定多个非易失性存储器裸芯的存储器的一个或多个单元的有效性状态包括确定(726)存储器的一个或多个单元的有效性度量并且将有效性度量与预定的阈值(例如,上述预定的BER阈值)比较(730)以确定存储器的一个或多个单元的有效性状态。在一些实施例中,有效性度量是(728)存储器的一个或多个单元在初始化期间的误码率(BER)。操作724–732的每个操作可以具有参考方法600所述的任何特性、或者包括参考方法600所述的任何程序和/或方法,其在一些实施例中是物理-到-物理地址重新映射的更加详细的方法。

在一些实施例中,方法700包括根据在初始化期间对确定的有效性度量予以解释的损耗均衡算法写入(734)到多个非易失性存储器裸芯。例如,方法700可选地包括以与存储器的各个单元的误码率成反比的频率写入到存储器的各个单元。

半导体存储器装置包括易失性存储器装置,诸如动态随机存取存储器(“DRAM”)或静态随机存取存储器(“SRAM”)装置,非易失性存储器装置,诸如电阻式随机存取存储器(“ReRAM”)、电可擦除可编程只读存储器(“EEPROM”)、闪速存储器(也可以被认为是EEPROM的子集)、铁电的随机存取存储器(“FRAM”)以及磁阻的随机存取存储器(“MRAM”),以及其他能够贮存信息的半导体元件。每种类型的存储器装置可以具有不同的配置。例如,闪速存储器装置可以配置在NAND或NOR配置中。

存储器装置可以由无源和/或有源元件、以任意组合形成。以非限制性示例的方式,无源半导体存储器元件包括ReRAM装置元件,其在一些实施例中包括电阻率切换贮存元件——诸如反熔丝、变相材料等,以及可选地控制元件——诸如二极管等。进一步以非限制性示例的方式,有源半导体存储器元件包括EEPROM和闪速存储器装置元件,其在一些实施例中包括包含电荷贮存区域的元件——诸如浮置栅极、传导的纳米粒子或电荷贮存电介质材料。

多个存储器元件可以被配置为使得它们串联连接或者使得每个元件可被独立地访问。以非限制性示例的方式,在NAND配置(NAND存储器)中的闪速存储器装置通常包含串联连接的存储器元件。NAND存储器阵列可以被配置为使得阵列由多个存储器串构成,其中串由共享单个位线并作为一组存取的多个存储器元件构成。可替换地,存储器元件可以被配置为使得每个元件可被独立地访问,(例如NOR存储器阵列)。NAND和NOR存储器配置是示例性的,并且可以以其它方式配置存储器元件。

位于衬底中和/或在衬底之上的半导体存储器元件可以以二维或三维布置——诸如二维存储器结构或三维存储器结构。

在二维存储器结构中,半导体存储器元件被布置在单个平面或者单个存储器装置级中。典型地,在二维存储器结构中,存储器元件布置在基本上平行于支撑存储器元件的衬底的主表面地延伸的平面中(例如,在x-z方向平面中)。衬底可以是在其上或其中形成存储器元件的层的晶片,或者它可以是在存储器元件形成之后附接到存储器元件的载体衬底。作为非限制性示例,衬底可以包括诸如硅的半导体。

存储器元件可以布置在有序的阵列中的单个存储器装置级中——诸如在多个行和/或列中。但是,存储器元件以不规则或者非正交的配置排列。存储器元件的每一个具有两个或多个电极或接触线,诸如位线和字线。

三维存储器阵列被布置为使得存储器元件占据多个平面或多个存储器装置级,从而在三维中形成结构(即,在x、y和z方向中,其中y方向基本上垂直于衬底的主表面,并且x和z方向基本上平行于衬底的主表面)。

作为非限制性示例,三维存储器结构可以垂直地布置为多个二维存储器装置级的堆叠。作为另一非限制性示例,三维存储器阵列可以布置为多个垂直的列(例如,基本上垂直地延伸到衬底的主表面的列,即,在y方向中),其中每个列在每个列中具有多个存储器元件。列可以布置在二维配置中(例如,在x-z平面中),产生具有在多个垂直地堆叠的存储器平面上的元件的存储器元件的三维布置。存储器元件在三维中的其它配置也可以组成三维存储器阵列。

以非限制性示例的方式,在三维NAND存储器阵列中,存储器元件可以耦接在一起以在单个水平(例如,x-z)存储器装置级中形成NAND串。可替换地,存储器元件可以耦接在一起以形成穿过多个水平存储器装置级的垂直的NAND串。可以设想其它三维配置,其中一些NAND串在单个存储器级中包含存储器元件,而其它串包含跨过多个存储器级的存储器元件。三维存储器阵列也可以设计在NOR配置中和在ReRAM配置中。

通常,在单片三维存储器阵列中,一个或多个存储器装置级形成在单个衬底之上。可选地,单片三维存储器阵列还可以具有至少部分在单个衬底中的一个或多个存储器层。作为非限制性示例,衬底可以包括半导体——诸如硅。在单片三维阵列中,构成阵列的每个存储器装置级的层通常形成在阵列的下面的存储器装置级的层上。但是,单片三维存储器阵列的邻近的存储器装置级的层可能被共享或者具有在存储器装置级之间的中间的层。

再次,二维阵列可以单独地形成并且然后封装在一起以形成具有存储器的多个层的非单片存储器装置。例如,非单片堆叠的存储器可以通过在单独的衬底上形成存储器级并且然后在彼此之上堆叠存储器级而被构造。衬底可以在堆叠之前被减薄或者从存储器装置级移除,但是由于存储器装置级初始地形成在单独的衬底之上,所产生的存储器阵列不是单片三维存储器阵列。此外,多个二维存储器阵列或三维存储器阵列(单片或非单片)可以形成在单独的芯片上并且然后被封装在一起以形成堆叠的芯片存储器装置。

通常需要相关联的电路以用于存储器元件的操作以及用于与存储器元件的通信。作为非限制性示例,存储器装置可以具有用于控制并且驱动存储器元件以实现诸如编程和读取的功能的电路。该相关联的电路可以与存储器元件在相同的衬底上和/或在单独的衬底上。例如,用于存储器读取-写入操作的控制器可以位于单独的控制器芯片上和/或位于与存储器元件相同的衬底上。

术语“三维存储器装置”(或3D存储器装置)在这里被定义为意味着具有存储器元件的多个存储器层或多个级(例如,有时被称为多个存储器装置级)的存储器装置,包括以下的任一个:具有单片或非单片3D存储器阵列的存储器装置,其一些非限制性示例如上所述;或两个或多个2D和/或3D存储器装置,被封装在一起以形成堆叠的芯片存储器装置,其一些非限制性示例如上所述。

本领域技术人员应认识到本发明不限于所述的二维和三维示例性结构,而是覆盖如这里所述的本发明的精神和范围内以及由本领域技术人员理解的所有相关的存储器结构。

应理解的是,尽管可能在这里使用术语“第一”、“第二”等描述各种元件,这些元件不应被这些术语限制。这些术语仅被用于将一个元件与另一区分。例如,第一NVM控制器可以被叫做第二NVM控制器,并且类似地,第二NVM控制器可以被叫做第一NVM控制器,而只要“第一NVM控制器”的所有出现被一致地重新命名并且“第二NVM控制器”所有出现被一致地重新命名,其改变说明的含义。第一NVM控制器和第二NVM控制器都是NVM控制器,但是它们不是相同的NVM控制器。

这里所使用的术语仅是为了描述特定实施例的目的并且不意欲限制权利要求。如在实施例的描述以及所附权利要求中所使用的,单数形式的“一”、“一个”和“所述”也意欲包括复数形式,除非上下文明确地另有说明。还应理解的是,如这里所使用的术语“和/或”指代并且包含相关联的列出的项目的一个或多个的任何以及所有可能的组合。将进一步理解的是,术语“包含”和/或“包括”——当用在本说明书中时——指明出现所述的特征、整数、步骤、操作、元件和/或组件,但是不排除其它特征、整数、步骤、操作、元件、组件和/或其组合的一个或多个的出现或增加。

如这里所使用的,取决于上下文,术语“如果”可以解释为意思是“当所述的先决条件为真时”或“在所述的先决条件为真时”或“响应于确定所述的先决条件为真”或“根据所述的先决条件为真的确定”或“响应于检测到所述的先决条件为真”。类似地,取决于上下文,短语“如果确定[所述的先决条件为真]”或“如果[所述的先决条件为真]”或“当[所述的先决条件为真]时”可以解释为意思是“当确定所述的先决条件为真时”或“响应于确定所述的先决条件为真”或“根据所述的先决条件为真的确定”或“在检测到所述的先决条件为真时”或“响应于检测到所述的先决条件为真”。

为了解释的目的,已经参考特定实施例描述了前述说明。但是,上述说明性讨论不意欲是穷举性的或者将权利要求限制到所公开的精确形式。鉴于上述教导,许多修改和变化是可能的。实施例被选中并且描述以便于最好地解释操作的原理和实际应用,以从而使本领域技术人员能够实施。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1