包含可修复的易失性存储器的存储器件及其操作方法与流程

文档序号:14716595发布日期:2018-06-16 01:28阅读:413来源:国知局
包含可修复的易失性存储器的存储器件及其操作方法与流程

技术领域

发明构思涉及存储器件,更具体地,涉及使用易失性存储器作为主存储器的存储器件及其操作方法。



背景技术:

作为半导体存储器件的非易失性存储器件可以包括以非易失性方式存储数据的存储单元。例如,闪存可用于各种类型的存储器件,例如存储卡和固态驱动器(SSD)。存储器件可以用于各种电子系统,例如移动电话、数码相机、个人数字助理(PDA)、移动计算系统和固定计算系统。

存储器件可以在主机的请求下写入和读取数据。存储器件可以包括多个闪存设备,并且可以通过多个通道在闪存设备上执行诸如数据写入和数据读取的存储器操作。存储器件可以包括易失性存储器。例如,存储器件可以包括临时存储数据的动态随机存取存储器(DRAM)缓冲器。写入数据和/或读取数据可能临时存储在易失性存储器中。



技术实现要素:

发明构思提供了一种存储器件及其操作方法,所述存储器件用于检测用作主存储器的易失性存储器中具有异常特性的缺陷单元,同时降低性能劣化或劣化的可能性,并且防止或降低数据错误发生的可能性的存储器件,及其操作方法。

在发明构思的示例性实施例中,提供了一种包括存储用户数据的非易失性存储器的存储器件;缓冲用户数据并在存储器件的空闲时间执行检测易失性单元阵列上的有缺陷单元的测试的易失性存储器;以及控制易失性存储器在空闲时间执行测试并将基于所执行的测试生成的测试信息存储在非易失性存储器中的控制器。

在发明构思的示例性实施例中,提供了一种操作存储器件的方法。方法包括进入其中没有向外部设备发送或从外部设备接收数据的空闲状态,执行用于检测易失性存储器上的缺陷单元的测试,在非易失性存储器中存储所执行的测试过程的测试信息,并根据测试信息修复检测到的缺陷单元。

附图说明

从以下结合附图的详细描述中将更清楚地理解本发明构思的实施例,其中:

图1是根据本发明构思的实施例的存储系统的框图;

图2是根据本发明构思的实施例的操作存储器件的方法的流程图;

图3是根据本发明的实施例的操作存储器件的方法的流程图;

图4是根据发明构思的实施例的在操作存储器件的方法中修复缺陷单元的操作的流程图;

图5是根据发明构思的实施例的存储器件的框图;

图6是根据发明构思的实施例的易失性存储器的电路图;

图7是示出根据发明构思的实施例的在存储器件中用软件修复缺陷单元的图;

图8A和图8B是根据发明构思的实施例的存储器件的操作的示意图;

图9是根据发明构思的实施例的易失性存储器的存储单元阵列的框图;

图10A和图10B是根据发明构思的实施例的不同测试过程的图;

图11A是示出根据发明构思的实施例的对存储器件的易失性存储器进行测试的操作的图;

图11B是在图11A所示的中断发生时所存储的测试历史的图;

图12是根据发明构思的实施例的操作存储器件的方法的流程图;

图13A和图13B是根据本发明构思的实施例的在存储器件的易失性存储器中的有效区域执行测试时执行的数据迁移方法的图;

图14是根据发明构思的实施例的存储器件的元件的操作的流程图;

图15是根据发明构思的实施例的存储器件的框图;

图16是根据发明构思的实施例的存储器件的框图;

图17是根据发明构思的实施例的固态驱动器(SSD)系统的框图;以及

图18是根据发明构思的实施例的电子系统的框图。

具体实施方式

图1是根据发明构思的实施例的存储系统的框图。

参照图1,存储系统1000可以包括主机200和存储器件100。存储器件100可以是或可以包括固态驱动器(SSD)。然而,发明构思不限于此,并且存储器件100可以是或可以包括包括易失性存储器的器件。例如,存储器件100可以被实现为或可以包括诸如嵌入式多媒体卡(eMMC)、通用闪存存储(UFS)、紧凑闪存(CF)、安全数字卡(SD)、微型SD、迷你SD、极限数字卡(xD)和/或记忆棒。

存储器件100可以使用各种接口与主机200进行通信。主机200可以请求诸如数据读取操作和/或数据写入操作的存储器件100的数据处理操作。主机200可以对应于中央处理单元(CPU)、处理器、微处理器或应用处理器(AP)。主机200可以被实现为或可以包括片上系统(SoC)。

可以使用诸如高级技术装置(ATA)、串行ATA(SATA)、外部SATA(e-SATA)、小型计算机小接口(SCSI)、串行连接SCSI(SAS)、外围组件互连PCI)、PCI Express(PCI-E)、IEEE 1384、通用串行总线(USB)接口、SD卡接口、MMC接口、eMMC接口和CF卡接口的各种类型的接口用于存储器件100和主机200之间的通信。

存储器件100可以包括控制器110、非易失性存储器(NVM)120和易失性存储器(VM)130。VM 130可以被用作存储器件100的主存储器。

NVM 120可以包括多个NVM单元。例如,NVM 120可以包括多个闪存单元。闪存单元可以是NAND闪存单元。在下文中,将使用其中多个存储器单元包括NAND快闪存储器单元的情况作为示例来描述本发明构思的实施例。然而,发明构思不限于该示例,并且多个存储器单元可以是或可以包括各种类型的NVM单元。例如,存储器单元可以是或可以包括诸如电阻随机存取存储器(ReRAM)单元、相变RAM(PRAM)单元和磁性RAM(MRAM)单元的电阻存储器单元。

NVM 120可以是或可以包括二维(2D)或三维(3D)存储器阵列。三维存储器阵列可以在存储单元阵列的至少一个物理级别上整体地(monolithically)形成,存储单元阵列具有设置在硅衬底上的有源区和涉及存储器单元的操作并形成在衬底上或衬底中的电路。术语“整体”意味着阵列的每个级别的层直接沉积在阵列的底层(underlying level)的层上。在发明构思的一些实施例中,3D存储器阵列包括沿垂直方向布置的垂直NAND串,以使得至少一个存储单元被放置在另一个存储单元上。所述至少一个存储单元可以包括电荷陷阱层。

在美国专利公开号7,679,133、美国专利公开号8,553,466、美国专利公开号8,654,587、美国专利公开号8,559,235和美国专利申请号2011/0233648中公开了其中3D存储器阵列包括多个级别和由级别共享的字线和/或位线的3D存储器阵列的结构,其公开内容通过引用并入本文。

控制器110控制存储器件100的所有操作,并控制NVM 120的诸如数据写入操作和数据读取操作的存储器操作。

VM 130可以在存储器件100的数据写入和读取操作期间临时地存储数据。例如,VM 130可以缓冲要被写入到NVM 120或从NVM 120读取的数据。数据可以包括用户数据。VM 130还可以存储与存储器件100的激活(actuation)有关的信息。例如,VM 130可以存储NVM 120的元数据。VM130可以被实现为或可以包括动态RAM(DRAM)或静态RAM(SRAM),然而,发明构思不限于此。VM 130可以包括临时存储写入数据的写入数据存储器和临时存储读取数据的读取数据存储器。或者,控制器110可以包括VM 130。

VM 130可以在空闲时间期间执行检测缺陷单元的测试,并且可以在存储器件100处于空闲状态时修复、重新布线(reroute)和/或替换缺陷单元。存储器件100的空闲状态可以包括其中主机200和存储器件100之间不交换数据和信号的低功率状态和休眠状态等。

例如,VM 130可以为刷新特性、频率特性、交流(AC)参数特性和直流(DC)参数特性中的至少一个特性测试单元。然而,本发明的概念不限于该示例,并且VM 130可以测试各种特性。

VM 130可以基于各种期望条件或预先设置的条件通过将测试模式写入存储单元阵列并从存储单元阵列读取数据来测试特性。在本发明构思的实施例中,缺陷单元是指具有当前低于标准的特性并因此可能导致数据错误的存储单元。缺陷单元还可以指存储单元,例如具有以后易于劣化的特性并且因此可能导致数据错误的弱单元。

控制器110可以感测到存储器件100已经进入空闲状态,并且可以向VM 130发送指示VM 130执行测试的测试控制信号TCS。控制器110可以从主机200接收对VM 130的测试请求,并且可以在控制器110接收到测试请求之后的空闲时间将测试控制信号TCS发送到VM 130。

控制器110可以基于预定义的和/或特定的测试算法生成测试控制信号TCS。测试算法可以由固件或软件来实现或可以包括固件或软件,该固件或软件包括测试代码或者可以由硬件来实现或者可以包括硬件。

测试控制信号TCS可以包括测试命令、将要执行测试的区域的地址、测试步骤(或测试类型)和测试条件。测试条件可以是用于增加缺陷单元的发生的加速条件(或边缘、拐角或病态(pathological)条件)。例如,如果在存储器件100的正常(nomal)或标称(nominal)操作中使用的刷新间隔是30毫秒(ms),则加速条件可以被设置为比30ms更长的周期,例如80ms。

控制器110可以在NVM 120中存储包括测试结果或测试历史的测试信息TIF。

在一些示例性实施例中,当在存储器件100中发生中断时,控制器110可以控制VM 130停止测试,并且可以在NVM 120中存储关于一直执行直到中断发生的测试过程的测试信息TIF。中断可能在主机200的数据写入或读取请求下发生,或者可能由于存储器件100的内部状态而发生。

在其他实施例中,当存储器件100中发生突然断电时,控制器110可以控制VM 130停止测试,并且可以将关于直到该点一直执行的测试过程的测试信息TIF存储在NVM 120中。

包含在测试信息TIF中的测试历史可以包括关于在VM 130的多个区域中执行了测试的区域的地址的信息。测试历史还可以包括关于在顺序执行以检测缺陷单元的多个测试步骤中的一直执行直到发生中断的至少一个测试的信息。当VM 130在各种测试条件下进行多次测试时,测试历史可以包括关于在可变测试条件中一直施加直到发生中断的测试条件的信息。例如,测试历史可以包括关于在发生中断时执行测试的区域的信息、测试步骤和/或测试条件。

在一些示例实施例中,在执行与中断相对应的操作之后的空闲时间期间,控制器110可以基于存储在NVM 120中的测试信息TIF来检查在先前空闲时间执行的测试过程,并且可以基于检查结果确定在当前空闲时间将对VM130执行的测试过程。

在其他示例性实施例中,当控制器110在测试期间感测到存储器件100的突然断电时,控制器110可以控制VM 130停止测试,并且可以将关于一直执行直到突然断电的测试过程的测试信息TIF存储在NVM 120中。

修复已检测到的缺陷单元可以包括硬件修复或软件修复。例如,VM 130可以通过以内部易失性单元阵列中的冗余单元替换缺陷单元来修复硬件中的缺陷单元。当从VM 130读取的数据包括与缺陷单元相对应的位时,控制器110可以利用软件通过向数据施加恢复码来修复缺陷单元。

控制器110可以控制将要周期性执行的VM 130的测试。例如,控制器110可以以几个月的间隔来控制测试。此时,也可以在存储器件100处于空闲状态时执行该测试。

如上所述,VM 130可以存储用于激活(actuation)存储器件100的数据。因此,如果或者当在VM 130中发生故障时,则在存储器件100中可能发生数据丢失。根据本发明的实施例,存储器件100可以在加速条件下对VM 130进行测试,预先检测缺陷单元,修复缺陷单元,从而防止或降低发生故障的可能性。此外,可以在空闲时间执行测试,并且当发生中断时,可以在测试停止之前将测试信息存储在NVM 120中,以使得更可能维护VM 130的完整性,并且可以最小化或降低存储器件100的性能劣化或退化。

图2是根据本发明构思的示例性实施例的操作存储器件的方法的流程图。图1的存储器件100可以执行图2所示的方法。因此,在该方法的描述中也参照图1。

参照图2,存储器件100可以在操作S110中进入空闲状态。例如,当在预定义和/或特定时间段期间没有从主机200接收到读取或写入请求时,控制器110可以感测到存储器件100已经进入空闲状态。可替代地或另外地,主机200可以请求存储器件100进入空闲状态。

当存储器件100进入空闲状态时,存储器件100可以在操作S120中执行VM 130的检测以检测缺陷单元。如上所述,可以基于预定义的和/或特定的测试算法来测试VM 130的刷新特性、频率特性、AC参数特性和DC参数特性。存储器件100可以基于预定义的和/或特定的加速条件通过向VM130写入测试模式并从VM 130读取数据来测试这些特性。

存储器件100可以在操作S130中将关于在VM 130上执行的测试的测试信息TIF存储在NVM 120中。测试信息TIF可以包括测试结果和/或测试历史。当在存储器件100中发生中断时,可以将关于一直执行直到发生中断的测试过程的测试信息存储在NVM 120中。测试过程可以由VM 130的多个区域、多个测试步骤和/或多个测试条件来识别。因此,测试历史可以包括测试步骤、测试条件以及在发生中断时进行测试的区域。测试结果可能包括一直执行直到发生中断的测试过程的通过/失败结果。当测试过程确定出现缺陷单元时或如果测试过程确定出现缺陷单元,测试结果可能包括缺陷单元的地址信息。地址信息可以包括但不限于行地址和/或列地址。行地址可以包括字线地址,并且列地址可以包括位线地址。

存储器件100可以通过在操作S140中的测试修复在VM 130中检测到的缺陷单元。存储器件100可以通过用冗余单元替换缺陷单元来以硬件修复缺陷单元。例如,VM 130的存储单元阵列可以包括冗余块,并且缺陷单元可以由冗余单元替换。可替代地或另外地,存储器件100可以通过将恢复代码施加于与缺陷单元相对应的位来以软件修复缺陷单元。

以软件修复缺陷单元可以是指恢复错误位。例如,当从VM 130读取的数据包含与缺陷单元相对应的位时,存储器件100可以向数据施加恢复码,从而防止或降低在数据中发生错误的可能性或恢复数据。

图3是根据本发明构思的示例性实施例的操作存储器件的方法的流程图。图3示出了在VM 130的测试期间在存储器件100中发生中断时存储器件100的操作,并且详细展示了图2所示的操作S120、S130和S140。

参照图3,存储器件100可以在操作S21中检查先前测试的测试历史。存储期间100可以检查在其上执行先前测试的区域、先前测试的测试步骤和测试条件。当或如果先前测试还没有被中断停止时,则可以省略操作S21。

存储器件100可以在操作S22中确定测试过程并根据测试过程执行测试。例如,存储期间100可以确定在VM 130的多个区域中将执行测试的区域、测试步骤和测试条件。存储器件100可以根据所确定的测试过程执行测试。VM 130可以在控制器110的控制下根据过程来执行测试。

在操作S31中,存储器件100可以检测在测试期间中断的发生。例如,存储器件100可以在对VM 130的一个区域执行测试之后检查是否已经发生中断。

当或如果中断已经发生时,存储器件100可以在操作S32中将关于一直执行直到发生中断的测试的测试信息,例如测试结果或测试历史,存储在NVM 120中。在将测试信息存储在NVM 120中之后,存储器件100可以停止对VM 130的测试,并且可以执行与该中断相对应的操作。例如,存储器件100可以进入正常状态并执行正常的或标称的操作,例如数据读取操作和/或数据写入操作。

当没有发生中断时,存储器件100可以继续VM 130的测试,并且在完成VM 130的每个区域的测试之后,可以在操作S41中确定是否出现了缺陷单元。或者,控制器110可以在每当在VM 130的区域中的每一个上完成测试时确定是否出现了缺陷单元。

当测试过程指示出现缺陷单元时,存储器件100可以在操作S42修复缺陷单元。如上参照图2所述的,存储器件100可以用硬件或软件修复缺陷单元。

此后,存储器件100可以结束测试,或者连续地对VM 130执行测试。存储器件100可以通过改变测试条件或测试步骤来改变测试过程,并且可以根据改变的测试过程进行测试。

图4是根据发明构思的实施例的在操作存储器件的方法中修复缺陷单元的操作的流程图。

如上所述,可以在修复缺陷单元(例如,图3中的操作S42)的操作中执行硬件或软件修复。

参照图4,存储器件100可以在操作S141中对缺陷单元进行计数,并且可以在操作S42中确定缺陷单元的数量是否超过预定义的值和/或特定值C1。

当缺陷单元的数量小于或等于预定义的和/或特定值C1时,存储器件100可以通过用冗余单元替换缺陷单元、重新布线内部电路来以硬件修复缺陷单元。例如,VM 110可以包括至少一个熔丝和/或至少一个反熔丝。使用冗余单元替换缺陷单元可以包括通过在熔丝和/或反熔丝的第一节点和第二节点之间产生足够高的电压来将处于常闭状态的至少一个熔丝转换为开状态和/或将常开状态下的至少一个反熔丝转换为闭状态。将熔丝转换为开状态或将反熔丝转换为闭状态可将行地址X-ADDR或列地址Y-ADDR从存储块MBLK重新布线到冗余块RBLK。

当缺陷单元的数量超过预定义的和/或特定的值C1时,存储器件100可以在操作S144中将恢复码施加于与每个有缺陷单元相对应的位。例如,当读取数据包括与缺陷单元相对应的位时,存储器件100可以通过对读取的数据施加恢复码来以软件修复缺陷单元。

如上参照图4所述,存储器件100可以基于预定义的和/或特定的条件选择性地使用修复方法。然而,当使用修复方法时,可以使用各种修复算法。例如,可以根据检测到缺陷单元时的测试条件或缺陷单元的故障类型(例如,发生了什么类型的故障),以硬件或软件来修复缺陷单元。

图5是根据本发明构思的实施例的存储器件的框图。

参照图5,存储器件100a可以包括控制器110a、NVM 120和VM 130。控制器110a可以包括可以经由总线117彼此通信的处理器111、RAM 112、数据恢复电路113、主机接口(I/F)114、VM I/F 115和NVM I/F 116。控制器110a还可以包括诸如直接存储器访问(DMA)管理器等的其他元件。在其他实施例中,VM I/F 115和NVM I/F 116可以被集成到一个存储器接口中。

主机I/F 114可以提供主机200和控制器110a之间的接口。主机200和控制器110可以使用从诸如USB、eMMC、MMC、PCI-E、ATA、SATA、e-SATA、并行ATA(PATA)、SCSI、SAS、增强型小型磁盘接口(ESDI)、集成驱动电子(IDE)、IEEE 1394和卡接口的各种标准接口中所选择的至少一个接口彼此连接。

处理器111可以执行机器可读指令来控制控制器110a的所有操作。处理器111可以包括CPU、微处理器和/或类似物。处理器111可以执行用于驱动控制器110a的固件或软件。固件可以被加载到RAM 112,并且处理器111可以执行存储在固件上的指令。固件可以包括程序代码,例如包括在VM130的测试中涉及的算法的测试代码。固件还可以包括闪存转换层(FTL)。

RAM 112可以根据处理器111的控制来操作,并且可以被用作工作存储器、缓冲存储器、高速缓冲存储器等。用于控制控制器110a的软件或固件可以被加载到RAM 112。RAM 112可以被实现为或可以包括诸如DRAM或SRAM之类的易失性存储器或诸如ReRAM、PRAM或MRAM的电阻存储器。

VM I/F 115提供控制器110a和VM 130之间的接口。要写入NVM 120的数据或从NVM 120读取的数据可以经由VM I/F 115临时存储或缓冲在VM 130中。

NVM I/F 116可以提供控制器110a和NVM 120之间的接口。例如,控制器110a可以经由NVM I/F 116向NVM 120发送数据并从NVM 120接收数据。

当从VM 130或NVM 120读取的数据有错误时,数据恢复电路113可以恢复数据。数据恢复电路113可以如上参照图2所述将恢复码施加到包括与VM 130中的缺陷单元相对应的位的数据,从而恢复数据。在示例实施例中,数据恢复电路113可以包括错误检查和校正(ECC)引擎,并且可以对从NVM 120读取的数据执行ECC。

NVM 120可以存储来自主机200的写入数据。NVM 120还可以存储上述测试代码。NVM 120还可以存储VM 130的测试信息TIF。

VM 130可以包括或可以被实现为DRAM;然而,发明构思不限于此。VM 130可以包括存储器块11。存储器块11是根据VM 130的正常操作存储写入数据的区域,并且可以由控制器110a识别地址。存储器块11可以包括元数据区域131和用户数据区域132。可以将NVM 120的元数据存储在元数据区域131中,并且可以将要写入NVM 120或从NVM 120读取的数据(例如用户数据)缓冲在用户数据区域132中。可以不是物理地定义元数据区域131和用户数据区域132。例如,可以逻辑地定义元数据区域131和用户数据区域132,并且可以由分配给每个区域的地址来定义。然而,发明构思不限于上述描述。在可以由控制器110a识别的区域中,已经存储了元数据的区域可以被定义为元数据区域131,而另一区域可以被定义为用户数据区域132。

VM 130还可以包括冗余块12。冗余块12是可以在特定条件下替换存储块11的一部分的区域。当对VM 130中缺陷单元执行硬件修复时,可以用冗余块12中的冗余单元替换缺陷单元。

图6是根据本发明构思的实施例的VM的电路图。

参照图6,VM 130a可以包括存储单元阵列10、控制逻辑20、行解码器30、读出放大器(SA)电路40、输入/输出(I/O)电路50、修复电路60和地址寄存器70。VM 130a还可以包括用于数据写入和/或读取操作的其它元件。

存储单元阵列10可以包括连接到多个位线(BL)和多个字线(WL)的多个存储单元MC。存储单元阵列10可以包括存储器块MBLK和冗余块RBLK。当通过存储单元阵列10的测试确定存储器块MBLK中的一些存储单元MC为缺陷单元时,可以用冗余单元RC替换缺陷单元。当数据被请求写入缺陷单元时,可以将数据写入已经替换了缺陷单元的冗余单元RC;并且当请求从缺陷单元读取数据时,可以从已经替换了缺陷单元的冗余单元RC读取数据。

控制逻辑20可以控制VM 130a的所有操作或至少某些操作。控制逻辑20可以接收和解码命令CMD并在内部生成解码的命令信号。例如,控制逻辑20可以接收写入命令WCMD、读取命令RCMD和测试命令TCMD。控制逻辑20可以响应于测试命令TCMD来控制VM 130a,以使得对存储器单元阵列10进行测试。

地址寄存器70可以临时存储从外部输入的地址信号ADDR。此后,地址寄存器70可以将行地址X-ADDR发送到行解码器30并将列地址Y-ADDR发送到SA电路40。地址寄存器70还可以将行地址X-ADDR发送到修复电路60。

行解码器30可以响应于行地址X-ADDR来选择WL。

SA电路40可以向存储单元阵列10写入数据或从存储单元阵列10读取数据。SA电路40可以包括写入电路和读取电路。SA电路40可以根据列地址Y-ADDR被连接到从BL中选择的BL。

I/O电路50可以将从存储器单元阵列10读取的数据发送到VM 130a的外部,例如控制器110(图1),或者可以将从外部接收的数据发送到SA电路40。

修复电路60可以基于存储单元阵列10的测试结果用冗余单元替换缺陷单元。修复电路60可以存储修复信息,例如,与缺陷单元相对应的冗余单元的地址映射信息,并且当存在对缺陷单元的访问请求时,可以控制将要访问的冗余单元。对于该操作,修复电路60可以包括修复信息存储电路61。修复信息存储电路61可以被实现为或可以包括一次可编程(OTP)存储器。OTP存储器可以包括至少一个熔丝或至少一个反熔丝。替换可以包括对VM110的内部电路的重新布线。重新布线可以包括熔断(blowing)包括在VM110中的熔丝和/或反熔丝。

当由地址寄存器70提供的行地址X-ADDR对应于存储在修复信息存储电路61中的映射信息时,地址寄存器70可以提供冗余单元的地址,例如,与行解码器30的行地址X-ADDR相对应的替换地址RADDR。行解码器30可以选择与替换地址RADDR相对应的WL。因此,可以用硬件修复缺陷单元。例如,可以将行地址X-ADDR与存储在修复信息存储电路61中的映射信息进行比较,并且行解码器30可以选择与替换地址RADDR相对应的字线WL。发明构思不限于修复或替换单元。例如,如果测试确定沿着一行的多个单元是有缺陷的,那么可以修复、替换和/或重新布线对应于该多个单元的行的整个行。例如,如果测试确定沿着列的多个单元是有缺陷的,那么可以修复、替换和/或重新布线对应于多个单元的列的整个列。

尽管在图6所示的实施例中通过以另一WL替换包括缺陷单元的WL来以冗余单元12中的行区域替换包含缺陷单元的行区域,但发明构思不限于此。可以通过用另一个BL替换包括有缺陷单元的BL来以冗余单元RC替换缺陷单元,以使得包括缺陷单元的列区域被冗余块12中的列区域替换,或者通过替换包括缺陷单元的WL和BL两者。

图7是示出根据本发明的实施例在存储器件中使用软件修复缺陷单元的图。

参照图7,当从VM 130读取的数据包括与缺陷单元相对应的位时,数据恢复电路113可以接收读取的数据,并且可以确定读取数据中是否发生错误。当确定在读取数据中发生错误时,数据恢复电路113可以基于故障位信息FBIF向读取的数据施加恢复码。故障位信息FBIF可以是测试结果之一。故障位信息FBIF可以包括地址ADDR_FB和缺陷单元的故障类型,例如测试失败单元。例如,当缺陷单元具有数据反转故障时,数据恢复电路113可以在读取数据中的多个位中反转与缺陷单元相对应的位的值。因此,数据恢复电路113可以从错误中恢复数据。

虽然在图7所示的实施例中,故障位信息FBIF在数据恢复电路113中存储和使用,但发明构思不限于此。故障位信息FBIF可以存储在RAM 112(图5)中。多个故障位的故障位信息FBIF可以存储在RAM 112中,并且数据恢复电路113可以访问RAM 112,以在数据恢复处理期间从RAM 112读取想要的故障位的故障位信息FBIF。故障位信息FBIF可以作为测试结果存储在NVM 120(图5)中。

图8A和图8B是示出根据本发明构思的示例性实施例的存储器件的示例操作的示意图。图8A显示了对VM 130执行测试的程序(procedure),图8B示出了结束VM 130的测试的程序。

参照图8A,VM 130的测试算法可以由固件或软件实现,或者可以包括固件或软件,并且包括测试算法的测试代码可以存储在NVM 120中。

当存储器件100a进入空闲状态时,控制器110a可以从NVM 120读取测试代码。测试代码可以被加载到RAM 112,并且处理器111可以运行测试代码。当处理器111运行加载到RAM 112的测试代码时,可以在存储器件100a中进行涉及在执行和结束VM 130的测试的控制器110a的操作。处理器111可以生成用于指示执行测试的测试控制信号TCS并将测试控制信号TCS发送到VM 130。测试控制信号TCS可以包括将要在其上执行测试的区域的地址、测试步骤(或测试类型)和测试条件。VM 130可以基于由控制器110a提供的测试控制信号TCS来执行测试。

参照图8B,当在存储器件100a中发生中断时,处理器111可以生成测试结束信号TES并将测试结束信号TES发送到VM 130。VM 130可以结束测试。VM 130可以将从测试过程获得的测试结果TRS提供给控制器110a。控制器110a可以将测试信息TIF存储在NVM 120中。测试信息TIF可以包括一直执行直到发生中断的测试过程的测试历史TH。测试信息TIF还可以包括测试结果TRS。

测试代码可以从RAM 112卸载。当在测试期间改变测试代码时,可以通过将改变的测试代码存储在NVM 120中来更新测试代码。

可替代地或另外地,测试代码可以由用户更新。可以通过从主机200(图1)接收改变的测试代码作为写入数据并将其存储在NVM 120中来更新测试代码。

如上所述,存储器件100a可以将由固件或软件实现的测试代码存储在NVM 120中,并且可以在空闲时间执行VM 130的测试。因此,在存储器件100a安装在电子系统中之后使用存储器件100a的阶段中以及在存储器件100a的封装(packaging)阶段中,VM 130可以连续地执行测试和检测缺陷单元。由于测试代码存储在NVM 120中,所以可以更新测试代码。因此,可以将另一种或新的测试算法施加于存储器件100a,并且即使在VM 130中发生意外错误也可以使用另一种或新的测试算法来修复缺陷单元,这使得能够主动响应VM 130中的数据错误。

图9是根据本发明构思的实施例的VM的存储单元阵列的框图。

参照图9,VM 130的存储单元阵列10可以基于执行测试的测试单元而被划分为多个区域R00至R99。尽管为了描述的清楚,在图9中所示的实施例中存储单元阵列10被划分为100个区域,但发明构思不限于此。可以基于存储单元阵列10的容量(capacity)和测试单元来确定区域的数量。例如,当存储单元阵列10的总容量(例如,存储在其中的数据的大小)为2GB(GB),并以1兆字节(MB)为单位执行测试时,存储单元阵列10可分为2000个区域。当发生中断时,在完成当前单元的测试之后,存储器件100(图1)可以执行与中断相对应的操作。因此,可以将测试单元设置为与存储单元阵列10的总容量相比较小,以使得测试单元不影响存储器件100的性能。

可以在区域R00至R99上顺序地执行测试。当在存储器件100的空闲时间期间在区域R00至R99之一执行测试时发生中断,可以在一个区域的测试完成之后结束测试。当或者如果存储器件100之后再次进入空闲状态时,可以从在先前空闲时间执行了测试的一个区域旁边或相邻的区域执行测试。

例如,当在空闲时间从区域R00顺序执行测试并且在对区域R09执行测试时发生中断,可以在区域R09的测试完成之后结束测试。此后,可以在下一个空闲时间从区域R10到区域R99执行测试。

图10A和图10B是根据发明构思的实施例的不同测试过程的图。

参照图10A和图10B,在VM 130(图1)的测试期间,可以针对例如测试步骤STEP1至STEP4的多个测试步骤,例如测试条件TCD1至TCD3的多个测试条件,以及例如区域R00至R99的多个区域执行测试。

参照图10A,可以执行测试步骤STEP1至STEP4,并且对测试步骤STEP1至STEP4中的每一个顺序地施加测试条件TCD1至TCD3。可以在测试条件TCD1至TCD3中的一个下,在VM 130的区域R00至R99上执行该测试。例如,如图10A中所显示的,当执行第一测试步骤STEP1,例如刷新测试时;可以基于第一条件TCD1,例如,刷新时间为32ms,在区域R00至R99上执行刷新测试,然后可以基于第二条件,例如刷新时间为80ms,以及第三条件TCD3,例如100ms的刷新时间TCD2,分别对区域R00至R99多次执行刷新测试。在第一测试步骤STEP1完成之后,可以基于与第二测试步骤STEP2对应的多个测试条件,在区域R00至R99上多次执行第二测试步骤STEP2。

参照图10B,可以基于多个测试条件,例如测试条件TCD1至TCD3多次执行测试,并且可以在每个测试条件下顺序测试多个区域,例如区域R00至R99。当对多个区域,例如区域R00至R99中的每一个执行测试时,可以执行多个测试步骤,例如测试条件STEP1至STEP4。

已经参照图10A和图10B描述了VM 130的测试过程。然而,发明构思不限于这些测试过程,并且可以改变测试过程以改进测试所需的时间、测试效率、测试覆盖率和/或测试过程的其他方面。

根据发明构思的测试步骤和测试条件不限于图10A和图10B所示的那些,本领域技术人员之一可以修改测试步骤和/或测试条件。当执行测试时,可以使用各种测试步骤和条件。

图11A是示出根据本发明的实施例的测试存储器件的VM的操作的图。图11B是在图11A所示的中断发生时存储的测试历史的图。为了方便起见,在说明书中,还参照图1。

可以根据图11A所示的测试过程在VM 130(图1)上执行测试。图11A所示的测试过程与参照图10A所描述的相同。为了清楚起见,将省略对相同或相似元件的描述。

当或如果存储器件100在时间点t1进入第一空闲状态Idle1时,控制器110可以检查先前的测试历史并确定测试过程。例如,先前的测试历史可以存储在NVM 120中。控制器110可以从NVM 120读取先前的测试历史,并检查在先前的空闲状态下执行的测试过程。例如,控制器110可以检查之前(例如,在先前的空闲状态期间)在第一测试条件TCD1下在所有区域R00至R99上执行了第一测试步骤STEP1。

控制器110可以基于先前的测试历史确定要执行的测试过程。控制器110可以确定在第二测试条件TCD2下从区域R00开始执行第一测试步骤STEP1。因此,可以从区域R00顺序地执行测试。

当在区域R02的测试期间在时间点t2发生中断时,控制器110可以在区域测试R02完成之后,存储关于一直执行直到NVM 120中的中断发生的测试过程的测试信息TIF。由于在中断发生时的时间点t2,在第二条件TCD2下在区域R02上执行了第一测试步骤STEP1,所以可以将测试过程的测试历史存储在NVM 120中作为测试信息TIF。在时间点t2之前执行的测试过程的测试结果也可以作为测试信息TIF存储在NVM 120中。

参照图11B,测试信息TIF可以包括测试历史TH和测试结果TRS。在发生中断时例如在时间点t2执行的测试过程的测试历史,例如测试步骤STEP、测试条件TCD以及测试区域TR可被存储作为测试历史TH。尽管图11B中仅示出关于在时间点t2执行的测试过程的信息的测试历史TH,但发明构思不限于图11B所示的实施例。关于之前执行的整个测试过程的信息可能被包括在测试历史TH中。

如在图11B中所显示的,测试结果TRS可以包括故障位的地址ADFB。根据一直执行直到时间点t2的测试过程检测到的多个故障位的地址可以作为测试结果TRS被发送到NVM 120。

以上已经参照图10A至图11B描述了测试过程和测试信息,但是发明构思不限于这些示例。测试过程和测试信息可能会做出各种改变。

图12是根据本发明构思的实施例的操作存储器件的方法的流程图。详细地说,图12示出了在对VM 130(图1)的多个区域中的某些区域执行测试之后发生中断时操作存储器件的方法。

参照图12,当在操作S210中存储器件100(图1)进入空闲状态时,存储器件100或控制器110可以在操作S220中检查VM 130的先前测试历史。控制器110可以在操作S230中基于先前的测试历史来确定将在其上执行测试的测试区域。在操作S230中,控制器110可以在VM 130的多个区域中,将之前已经执行了测试的区域以外的区域确定为测试区域。

在操作S240中,从确定的测试区域开始,可以在以前未执行测试的区域上顺序地执行测试。当在操作S250中测试期间发生中断时,在操作S251中可以将在其上一直执行测试直到发生中断的每个区域的地址存储在NVM120中。此后,测试结束,并且存储器件100可以执行正常或标称操作。

当不发生中断时,可以连续执行测试,并且可以在操作S260相对于执行了测试的区域中的每一个来确定是否检测到缺陷单元。当已经检测到缺陷单元时,可以在操作S262中存储缺陷单元的地址。缺陷单元的地址可以存储在NVM120中。然而,发明构思不限于此,缺陷单元的地址可能被临时存储在VM 130中。

此后,存储器件100可以在操作S270中确定所有多个区域上的测试是否已经完成。当测试完成时,存储器件100可以在操作S280中确定在测试期间是否检测到任何缺陷单元,也即,存储了其地址的缺陷单元是否存在。例如,可以基于在操作S262中存储的记录来确定缺陷单元的存在或不存在。当存在存储了地址的任何缺陷单元时,存储器件100可以在操作S290中修复缺陷单元。如上所述,缺陷单元可以用硬件和/或软件来修复。

当在操作S270中确定在所有多个区域上尚未完成测试时,可以在未被测试的区域上继续测试。因此,可以重复操作S240至S270,直到在所有多个区域上完成测试。结果,可以对所有多个区域执行测试。

同时,如上参照图5所述,VM 130可以包括元数据区域131和用户数据区域132。由于元数据区域131中的数据在存储器件100a处于空闲状态时有效,所以存储在将进行测试的区域中的元数据需要在元数据区域131执行测试之前迁移到自由区域。

将参照图13A和图13B描述当在元数据区域131上执行测试时操作存储器件的方法。

图13A和图13B是根据本发明构思的实施例在对存储器件的VM中的有效区域执行测试时执行的数据迁移方法的图。详细地,图13A显示了其中作为测试结果未检测到缺陷单元的情况,图13B示出其中作为测试结果检测到缺陷单元的情况。

VM 130可以包括元数据区域131和用户数据区域132。可以将NVM 120的元数据或用于存储器件100的操作的数据存储在元数据区域131中。元数据区域131和用户数据区域132可以基于测试单元划分为多个区域(例如,区域R00至R79和区域R80至R99)。当存储器件100处于空闲状态时,存储在用户数据区域132中的数据可能是无效的,并且例如区域R80至R99的用户数据区域132中的多个区域可以是自由区域。然而,即使当存储器件100处于空闲状态时,存储在元数据区域131中的元数据可以是有效的,并且例如区域R00到R79的元数据区域131中的多个区域中的一些可以是有效区域。当对有效区域执行测试时,存储在有效区域中的数据可能会迁移到自由区域。

如图13A所显示的,当在区域R00上进行测试时,(①)存储在区域R00中的元数据可以迁移到自由区域之一,例如区域R80,并临时存储在区域R80中。此后,(②)在区域R00上进行测试。当在区域R80中没有检测到缺陷单元时,(③)可以在区域R00中恢复临时存储在区域R80中的元数据。

参照图13B,当在区域R00中检测到缺陷单元时,(③)可以对包括与缺陷单元相对应的位的数据进行数据恢复,例如临时存储在区域R80中的元数据,并且(④)所恢复的元数据在区域R00重新存储。例如,控制器110可以读取临时存储在区域R80中的元数据,并将恢复代码应用于元数据,从而恢复元数据。此后,控制器110可以将恢复的元数据存储在区域R00中。

在其他示例实施例中,当用硬件修复缺陷单元时,恢复的元数据中的某些位,例如包括与缺陷单元相对应的位的某些位可以存储在冗余单元中。

图14是根据发明构思的实施例的存储器件的元件的操作的流程图。

参照图14,控制器110可以在操作S1101中确定存储器件100(图1)已经进入空闲状态。NVM 120可以在操作S1201中读取测试代码,并且可以将测试代码发送到控制器110。NVM 120可以根据控制器110的请求读取和发送测试代码。

控制器110可以在操作S1102中接收测试代码,并且可以在操作S1103中执行测试代码。如上参照图5所述,测试代码可以被加载到RAM 112(图5),并且处理器111(图5)可以运行测试代码。

NVM 120可以在操作S1202中读取先前的测试历史并将所读取的先前测试历史发送到控制器110。控制器110可以在操作S1104中接收先前的测试历史,并且可以在操作S1105中基于先前的测试历史来确定将要执行的测试过程。例如,控制器110可以确定测试步骤、测试条件和测试区域。在操作S1106中,控制器110可以向VM 130发送指示测试过程的测试控制信号。在操作S1301,VM 130可以基于测试控制信号执行测试。

在测试期间可能在存储器件100中发生中断。控制器110可以在操作S1107中感测中断的发生,并且可以在操作S1108中向VM 130发送测试结束信号。当在当前正在测试的区域上完成测试时,VM 130可以在操作S1302中结束测试。

在操作S1303中,VM 130可以向控制器110发送测试结果。控制器110可以在操作S1109中向NVM 120发送包括测试结果和/或测试历史的测试信息。NVM 120可以存储测试结果,并且可以在操作S1203中基于测试信息更新测试历史。

当或如果存储器件100进入另一空闲状态时,上述操作可以被重复,并且可以完成VM 130的多个区域的测试。因此,当检测到缺陷单元时,可以修复和/或替换缺陷单元。如图14所示,VM 130可以在操作S1304中用硬件修复缺陷单元。例如,VM 130可以用冗余单元替换缺陷单元。在其他示例实施例中,可以由控制器110用软件修复缺陷单元,如上面参照图7所描述的。

图15是根据发明构思的实施例的存储器件的框图。

参照图15,存储器件100b可以包括控制器110b、NVM 120和VM 130。控制器110b可以包括处理器111、RAM 112、数据恢复电路113、主机I/F 114、VM I/F 115、NVM I/F 116和测试模块118。这些元件可以经由总线117彼此通信。存储器件100b还可以包括其他元件。

图15所示的控制器110b的结构和操作与图5所示的控制器100a的结构和操作类似。然而,控制器110b还可以包括测试模块118。因此将描述测试模块118。

测试模块118可以由硬件或硬件和软件的组合来实现。测试模块118可以控制VM 130或NVM 120的测试的执行。当控制器110b进入空闲状态时,测试模块118可以被激活。激活的测试模块118可以生成测试控制信号TCS,并将测试控制信号TCS发送到VM 130。VM 130可以基于从测试模块118接收的测试控制信号TCS执行测试。由于上面已经详细描述了VM 130的测试程序,因此将省略其描述。

如上所述,存储器件100b可以包括例如测试模块118的专用于测试控制器110b中的VM 130或NVM 120的功能块。测试模块118可以控制VM130或NVM 120执行测试,而不会导致存储器件100b的性能显着降低。

图16是根据发明构思的实施例的存储器件的框图。

参照图16,存储器件100c可以包括控制器110c和NVM 120。控制器110c可以包括处理器111、RAM 112、数据恢复电路113、主机I/F 114、VM119和NVM I/F 116。这些元件可以经由总线117彼此通信。控制器110c还可以包括其他元件。

包括在控制器110c中的VM 119可以用作存储器件100c的缓冲器。VM119可以缓冲NVM 120的写入数据和读取数据。VM 119还可以存储NVM120的元数据。当或如果存储器件100c进入空闲状态时,则可以对VM 119执行检测缺陷单元的测试。测试方法和缺陷单元修复方法类似于上面参照各种实施例描述的方法。因此将省略其冗余描述。

图17是根据本发明的实施例的SSD系统的框图。

参照图17,SSD系统2000可以包括主机2100和SSD 2200。SSD 2200经由信号连接器向主机2100发送信号并从主机2100接收信号,并经由电源连接器接收电力。SSD 2200可以包括SSD控制器2210、辅助电源2220、以及多个存储器件2230、2240和2250,以及缓冲器2260。

SSD控制器2210可以控制SSD 2200的所有操作。存储器设备2230、2240和2250可以是NVM设备。多个存储器件2230、2240和2250中的至少一个存储器件可以包括3D闪存单元阵列。

缓冲器2260可以缓冲存储在存储器件2230、2240和2250中的数据。缓冲器2260还可以存储存储器件2230、2240和2250的元数据。缓冲器2260可以是VM器件。例如,缓冲器2260可以被实现为DRAM。

根据发明构思的实施例的存储器件100(图1)、100a(图5)、100b(图17)或100c(图18)可以施加于SSD 2200。因此,当SSD 2200处于空闲状态时,SSD 2200可以检测和修复缺陷单元。

SSD控制器2210可以基于主机2100和SSD 2200之间的通信状态来确定SSD 2200的操作状态。例如,当在主机2100和SSD 2200之间没有执行通信时,例如,在预定的或特定的时间段内从主机2100处没有接收到请求,可以确定SSD 2200已经进入空闲状态。当SSD 2200进入空闲状态时,SSD控制器2210可以控制缓冲器2260在空闲时间期间执行用于检测缺陷单元的测试。测试算法可以由固件或软件实现,并且可以存储在存储器设备2230、2240和2250中的一个。SSD控制器2210可以生成测试控制信号,以通过驱动固件或包括测试代码的软件来控制缓冲器2260的测试并且可以将测试控制信号发送到缓冲器2260。在其他实施例中,执行测试的功能模块可以由SSD控制器2210中的硬件来实现。

缓冲器2260可以基于测试控制信号对内部存储器单元阵列进行特性测试。此时,缓冲器2260可以基于加速条件来执行测试,以预先检测可能有缺陷的单元并且可以对检测到的单元执行修复处理。因此,可以在其中缓冲器2260安装在SSD 2200的状态下以及制造阶段,在缓冲器2260上执行用于检测缺陷单元的测试。因此,即使在缓冲器2260的存储器单元(例如,VM单元)中发生故障时,可能在数据错误发生之前可能会阻止或减少故障,并且缓冲器2260的完整性更有可能维持。

同时,当在缓冲器2260的测试期间在SSD 2200中发生中断或突然断电时,在缓冲器2260中一直执行直到该点的测试过程的测试历史或测试结果可以被存储在存储器件2230、2240和2250中,并且缓冲器2260可以结束测试。此后,当SSD 2200再次进入空闲状态时,SSD控制器2210可以基于存储在存储器件2230、2240和2250之一中的测试历史或测试结果来确定测试过程的状态,并且可以执行测试以从确定的状态继续。如上所述,当在SSD 2200中发生中断时,缓冲器2260可以停止测试,并在之后连续地重启测试,从而执行缓冲器2260的测试而不会导致SSD 2200的性能下降。

图18是根据发明构思的实施例的电子系统的框图。

参照图18,电子系统3000可以包括CPU 3100、存储器件3200、存储器件3300、调制解调器3400、I/O设备3500和电源3600。上面参照各种实施例中的一个描述的存储器器件可以用作存储器件3300。因此,存储器件3300可以测试包括在其中的处于空闲状态的VM,并且可以修复从测试中检测到的缺陷单元。此外,存储器件3300可以将测试历史和/或测试结果存储在NVM中,然后在之后的测试阶段中使用测试历史和/或测试结果。

虽然已经参照其实施例特别地示出和描述了发明构思,但是应当理解,在不脱离所附权利要求的精神和范围的情况下,可以在形式和细节上进行各种改变。

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