存储器系统以及其错误校正方法与流程

文档序号:11954862阅读:261来源:国知局
存储器系统以及其错误校正方法与流程

本发明是有关于一种非易失性存储器,特别是有关于一种用于检测与校正非易失性存储器中错误的方法与系统。



背景技术:

一般而言,即使在不供电的情况下,非易失性半导体存储器保持住已储存的数据。晶体管式非易失性存储器,例如电子抹除式可编程只读存储器(electrically erasable programmable read-only memory,EEPROM),提供了快速的读出处理时间以及较佳的耐冲电阻,这使得晶体管式非易失性存储器可适用于各种应用。非易失性存储器的一些应用包括在计算机装置、移动式电话、可携式音频拨放器、以及其他消费者电子产品中的数据储存器。

图1表示一示范晶体管式非易失性存储器阵列100的电路架构图。晶体管式非易失性存储器阵列100包括多个晶体管式非易失性记忆胞(memory cell)110。每一个晶体管式非易失性记忆胞110对应连接一字元线(例如WL0~WLn)以及一位线(例如BL0~BLm)。晶体管式非易失性存储器阵列100可由使用一个或多个晶体管作为存储元件来储存数据的多个非易失性存储器来形成。晶体管式非易失性存储器包括可编程只读存储器(programmable read-only memory,PROM)、电子可编程只读存储器(electrically programmable read-only memory,EPROM)、电子抹除式可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、快闪存储器、或eFuse存储器。

如图1所示,当晶体管式非易失性存储器阵列100使用EPROM、EEPROM、或快闪存储器来实现时,每一晶体管式非易失性记忆胞110包括浮栅金属氧化物半导体场效应晶体管(metal-oxide semiconductor field-effect transistor,MOSFET)。浮栅MOSFET(FGMOS)可将电荷储存在电性隔离的浮栅中。此电性隔离使浮栅能在不需电源的情况下于一延伸期间内保持电荷。完全充电的浮栅能表示一逻辑“0”状态, 而未被充电的浮栅则能表示逻辑“1”状态,或反之亦然。

新兴非易失性存储器技术目前正在发产以解决晶体管式非易失性存储器相关的各种限制。举例来说,大部分市场上供应的快闪存储器都遭遇到相对低的耐写度(write endurance)。一般的快闪存储器能承受高达1×105的写入周期(也称为编程/抹除周期),而一些新兴非易失性存储器,例如磁性随机存取存储器(magnetic random access memory,MRAM)能承受高达1×1012的写入周期。在另一例子下,快闪存储器阵列可能遭遇到读取干扰(导致邻近记忆胞随时间改变的连续读取周期)以及耐写度降低等在容量扩充上的议题。

然而,新兴非易失性存储器具有一些问题。举例来说,高操作温度可能导致数据错误,例如在一些新兴非易失性存储器中(例如电阻式非易失性存储器)的翻转位(flipped bits)。这些数据错误可能导致系统故障、数据恶化、以及/或安全漏洞。此外,让新兴非易失性存储器遭遇高制造与储存温度可能导致数据保留的问题,例如,系统数据飘移、数据遗失、关键数据恶化、有效数据恶化(corruption)、以及数据保持时间减少。



技术实现要素:

本发明提供一种存储器系统,其包括电阻式非易失性存储器阵列以及存储器控制器。电阻式非易失性存储器阵列包括多个记忆胞,以储存数据以及多个预测位。存储器控制器配置来检测在储存的数据的多个存储单元的多个数据位错误以及在储存的多个预测位中的多个预测位错误,并检测预测位错误的数量,且比较该些预测位错误的数量与预测位错误的临界数量。当该些预测位错误的数量等于或大于预测位错误的临界数量时,存储器控制器对储存在电阻式非易失性存储器阵列中的数据以及该些预测位执行强刷新。当该些预测位错误的数量小于位预测元错误的临界数量时,存储器控制器通过只刷新具有数据位错误的数据的存储单元以及具有预测位错误的预测位,来执行数据与该些预测位的弱刷新。

本发明提供一种错误校正方法,用以校正在一存储器系统中的错误。存储器系统包括一电阻式非易失性存储器阵列。此错误校正方法包括以下步骤:检测储存在电阻式非易失性存储器阵列中的数据的多个存储单元中的复数数据位错误,以及在多个预测位中的多个预测位错误;检测预测位错误的数量:比较预测位错误的数量与预测位 错误的临界数量;当该些预测位错误的数量等于或大于预测位错误的临界数量时,对储存在电阻式非易失性存储器阵列中的数据以及该些预测位执行强刷新;以及当该等预测位错误的数量小于预测位错误的临界数量时,通过只刷新具有数据位错误的数据的存储单元以及具有预测位错误的预测位,来执行数据与该些预测位的弱刷新。

本发明实施例的有益效果在于,本发明的实施例能在高温存储器操作下以及对于电阻式非易失性存储器的数据保存上提供改善方式,藉此在包括上述存储器的系统以及/或集成电路中实现效能改善。

附图说明

图1表示晶体管式非易失性存储器阵列的电路示范例;

图2表示根据本发明一实施例的电阻式非易失性存储器阵列的电路示意图;

图3表示根据本发明另一实施例的电阻式非易失性存储器阵列的电路示意图;

图4表示根据本发明一实施例的存储器系统的电路示意图;

图5表示根据本发明一实施例,用来校正存储器系统中错误的方法流程图;

图6表示根据本发明另一实施例,用来校正存储器系统中错误的方法流程图;

图7表示根据本发明一实施例,执行强刷新操作的方法流程图;

图8表示根据本发明一实施例,执行弱刷新操作的方法流程图;

图9表示正常读取操作与根据本发明一实施例的边界读取操作之间的比较示意图。

附图标记

100~晶体管式非易失性存储器阵列;

110~晶体管式非易失性记忆胞;

200~电阻式非易失性存储器阵列;

212~选择元件;

214~电阻式储存元件;

310~数据记忆胞;

320~ECC记忆胞:

330~预测记忆胞;

400~存储器系统;

410~存储器控制器;

411~输入/输出接口;

412~行解码器;

413~列解码器;

414~感测放大器与写入驱动器;

415~ECC控制器;

416~预测控制器;

500、600、700、800~方法;

510…550~方法步骤;

610…670~方法步骤;

710…750~方法步骤;

810…850~方法步骤;

910~正常临界电流;

920a、920b~弱临界电流;

930a、930b~强临界电流;

940a、940b~曲线;

BL0…BLm~位线;

WL0…WLn~字元线。

具体实施方式

为使本发明的上述目的、特征和优点能更明显易懂,下文特举一较佳实施例,并配合所附图式,作详细说明如下。

本说明书的实施例提供了改善的方法与系统,其用来检测并校正在新兴非易失性存储器中的错误。许多新兴非易失性存储器与晶体管式非易失性存储器比较起来,在写入速度与耐写度、功率消耗、数据维持、数据安全性、以及位组级的随机存取方面具有较佳的优势。然而,一些新兴非易失性存储器,例如电阻式非易失性存储器,在数据维持与恶化方面容易受到高温以及/或电磁干扰(electromagnetic interference,EMI)的影响。电阻式非易失性存储器可能包括,例如,使用不同电阻状态来储存数据的任何非易失性存储器。电阻式非易失性存储器的例子包括有相位变化随机存取存 储器(phase-change random access memory,PCRAM)、磁性随机存取存储器(magnetic random access memory,MRAM)、可编程金属化单元(programmable metallization cell,PMC)存储器(例如,电感式桥接随机存取存储器(conductive-bridging random access memory,CBRAM))、以及电阻式随机存取存储器(resistive random access memory,RRAM)。

PCRAM是通过使用在硫属化物材料的非结晶相与结晶相之间的电阻差异来储存数据。非结晶相对应高电阻状态,而结晶相则对应低电阻状态。MRAM通过使用在两铁磁层之间的隧道隔离层以在不同的电阻状态之间切换来储存数据。当此两铁磁层的磁化方向彼此平行时,实现低电阻状态。当此两铁磁层的磁化方向反平行时,则实现高电阻状态。CBRAM记忆胞包括介于两固体金属电极之间的电解质薄膜。一个CBRAM记忆胞通过在电解质膜的金属电极之间形成纳米线,以在不同的电阻状态下储存数据。纳米线的缺少是对应高电阻状态,而纳米线的存在则对应低电阻状态。RRAM是根据在过渡金属氧化物的电阻转变来将数据储存为两个或多个电阻状态。类似于CBRAM记忆胞,一RRAM记忆胞包括金属-绝缘体-金属架构。不同的逻辑状态是通过在绝缘层中产生一串导电缺陷(称为导电丝(filament))来表示。导电丝的缺少是对应高电阻状态,而导电丝的存在则表示低电阻状态。各种电阻式存储器的高与低阻抗状态分别用于储存表示第一逻辑值与第二逻辑值(例如“0”以及“1”)的数据。

非易失性存储器可能额定在各种温度范围中操作。举例来说,一非易失性存储器可额定操作在0℃~85℃(商业上的额定)、-40℃~125℃(工业上/汽车用的额定)、或-55℃~125℃(军用上的额定)的环境温度内。额定储存温度的范围一般可高达150℃。非易失性存储器也可能在IC插件装配期间遭遇高温度。举例来说,一般波峰焊接程序(wave solder process)可能达到上至250℃的高温。电阻式非易失性存储器在接近这些范围的上部分时可能会遭遇效能下降。举例来说,在高环境操作温度下,电阻式非易失性记忆胞可能会发生例如为位翻转的数据错误。此外,于暴露在高温(例如由波峰焊接程序所导致的高温)之前写入至电阻式非易失性存储器的数据,可能会遭遇到有效数据错误,例如系统数据飘移以及数据保持时间减少。

本发明的实施例能在高温存储器操作下以及对于电阻式非易失性存储器的数据保存上提供改善方式,藉此在包括上述存储器的系统以及/或集成电路中实现效能改 善。本发明的实施例提供了一种电阻式非易失性存储器,其使用错误校正编码(error correction code,ECC)来更新其储存的数据。数据更新可在存储器系统操作的不同阶段点来执行,例如,在一开机初始化或闲置模式期间执行,或者反应于一系统命令来执行。数据更新可通过对储存的数据进行读取、校正、以及写回来执行。一些实施例是提供了能在不足的ECC位或系统数据飘移的情况下执行以更强的写回而改善的数据更新。改善的数据更新可刷新储存在电阻式非易失性存储器中的全部数据,使得在插件装配以及/或高温储存之后恢复存储器容限。其他实施例则可提供数据更新技术的结合。

以下将根据说明书来详细说明本发明的实施例,并通过图示来阐述。在图示中尽可能地以相同的参考编号来表示相同或类似的部分。

图2是表示根据本发明一实施例的电阻式非易失性存储器阵列200的电路图。电阻式非易失性存储器阵列200可通过使用前述的任何电阻式非易失性存储器来形成,例如PCRAM、RRAM、MRAM、或CBRAM。此外,电阻式非易失性存储器阵列200可能包括一个二维存储器阵列或是一个三维存储器阵列。

如图2所示,电阻式非易失性存储器阵列200包括多条字元线(WL0~WLn)、多条位线(BL0~BLm)、以及多个电阻式记忆胞210。每一电阻式记忆胞210对应连接一字元线以及一位线。电阻式记忆胞210包括一选择元件212以及一电阻式储存元件214。电阻式记忆胞210可以前述的任何电阻式非易失性存储器来实现,例如PCRAM记忆胞、RRAM记忆胞、MRAM记忆胞、或CBRAM记忆胞。选择元件212如同一选择开关般的操作,以控制对电阻式记忆胞210的存取。举例来说,选择元件212可通过二极管、MOSFET、或双极性介面晶体管(bipolar junction transistor,BJT)来实现。在一些实施例中,在电阻式记忆胞210是以一RRAM胞来实现的例子中,选择元件212可以是可选择的。

图3是表示根据本发明一实施例的电阻式非易失性存储器阵列200的方块图。如图3所示,电阻式非易失性存储器阵列200包括多个记忆胞类型。举例来说,数据记忆胞310配置来储存数据位。每一数据记忆胞310储存一或多个数据位。数据位可以各种存储单元来被写入以及存取,存储单元例如有分页(page)、存储块(block)、存储区段(sector)、字元(word)、或任何已知的储存配置。每一存储单元可包括任何数量的数据位。

在一些实施例中,电阻式非易失性存储器阵列200也包括ECC记忆胞320。每一ECC记忆胞320是配置来储存ECC位(或多个ECC位),以检测与校正储存在数据记忆胞310与预测记忆胞330中数据位的错误或缺陷数据位。此错误可能是例如由EMI、高温操作、高温储存、插件装配波峰焊接温度等等所引起的软错误(soft error)。软错误一般是短暂的而不会一直重现。此错误可能是由记忆胞的硬件缺陷所引起的硬件错误(hard error)。硬件错误一般会重现,且一贯地产生错误的结果。储存的ECC位可包括汉明码、Bose-Chaudhuri-Hocquenghem编码(BCH code)、同位、李德索罗门编码(Reed-Solomon code)、涡轮码(Turbo code)、低密度奇偶校验码(low-density parity-check code,LDPC)、卷积码(convolutional code)、或任何已知的其他错误校正编码。

储存在ECC记忆胞320的ECC位数量是取决于ECC编码架构。此ECC编码架构可分配所储存数据中的每一存储单元(例如每一分页、每一存储块、每一存储区段、每一字元、每一位组、每一位等等)中的ECC位数量。举例来说,在16个数据字元储存在数据记忆胞310且ECC编码架构分配4个ECC位给每一数据字元的情况下,储存在ECC记忆胞320中的全部ECC位数量等于64,且每一ECC记忆胞320有一个或多个ECC位。分配给每一存储单元的ECC位数量是弹性的,且可取决于设计需求、系统能力、时序与通量需求等等。可被储存的ECC位校正的数据位错误的数量是由(i-1)来决定,其中,i是分配给每一存储单元的ECC位数量。举例来说,在ECC记忆胞320于每一数据字元储存3个ECC位的情况下,此3个ECC位可校正每一数据字元的2个数据位错误。

在一些实施例中,电阻式非易失性存储器阵列200包括预测记忆胞330。预测记忆胞330是配置来储存预测位,检测储存在数据记忆胞310中的实质数据恶化或系统数据飘移。每一预测记忆胞330储存一个或多个预测位。储存在预测记忆胞330中的预测位是作为例如由EMI、波峰焊接程序、或电阻式非易失性存储器阵列200的高温度储存所导致的数据恶化或系统偏移的指示符。换句话说,在储存的预测位中出现有效性错误,很可能指示出储存在数据记忆胞310中的数据也包含有效性错误。

储存在预测记忆胞330中的预测位的数量是取决一些因素,例如,电阻式非易失性存储器阵列200中的记忆胞总数量、储存在数据记忆胞310中的数据位总数量、存储器系统可靠度的重要性、可分配给系统飘移检测的存储器系统通量大小等等。储存 在预测记忆胞330的预测位总数包括16位或32位。与储存在数据记忆胞310的数据位数量比较起来,储存在预测记忆胞330的预测位总数可较少。如此一来,使用少量的预测位来作为关于大量数据位的品质代理者,这改善了存储器系统效率,并减少错误检测所需要的存储器系统资源量。

在一些实施例中,数据记忆胞310、ECC记忆胞320、以及/或预测记忆胞330的配置,是每一记忆胞储存多个位。举例来说,在电阻式非易失性存储器阵列200是使用多层记忆胞。多层记忆胞使用三个或更多个不同电阻状态来储存两个或更多个数据位。例如,具有四个不同电阻状态的一个多层记忆胞可储存两个位,每一位使用两个电阻状态来表示逻辑“0”以及“1”。然而,增加每一记忆胞所储存的位数量可能会导致较大的位错误率,因此,每一存储单元需要大量的ECC位来校正这些错误。

数据记忆胞310、ECC记忆胞320、以及预测记忆胞330可能包含在相同的电阻式非易失性存储器阵列200中、包含在形成于相同芯片上的相异电阻式非易失性存储器阵列200、包含在形成于相同集成电路包装中的相异芯片上的不同电阻式非易失性存储器阵列200、包含在形成于相异集成电路包装中的相异芯片上的不同电阻式非易失性存储器阵列200等等。

图4是表示根据本发明一实施例的存储器系统400的方块图。如图4所示,存储器系统400包括电阻式非易失性存储器阵列200以及存储器控制器410。可以理解本说明书中的元件数量与配置仅为一示范例,以用于说明。在不脱离本发明实施力的教示下,可采用其他的配置以及其他的元件数量。在一例子中,存储器控制器410以及电阻式非易失性存储器阵列200可形成在相同的半导体芯片上、在包含于相同IC封装中的不同半导体芯片上、在包含于不同IC封装中的不同半导体芯片上、或任何已知的配置上。在另一例子中,存储器控制器410可控制多个电阻式非易失性存储器阵列200以及/或多个晶体管式非易失性存储器阵列与电阻式非易失性存储器阵列200的组合。

在一些实施例中,存储器控制器410包括输入/输出接口(I/O)411、行解码器(也称为字元线解码器)412、列解码器413、感测放大器与写入驱动器414、ECC控制器415、以及预测控制器416。包含在存储器控制器410内的元件411~416可以硬件以及软件的结合来实现。举例来说,元件411~416可以微处理器、特定应用集成电路(application specific integrated circuit,ASIC)、可编程栅阵列(programmable gate array,PGA)或现场可编程栅阵列(field-programmable gate array,FPGA)、电路、复杂可编程逻辑装置(complex programmable logic device,CPLD)或客制化逻辑电路、或前述的任何结合来实现。此外,元件411~416的一些或所有功能可由相同的硬件/软件的结合来执行。举例来说,ECC控制器415与预测控制器416的功能可由相同的微处理器、ASIC、PGA、FPGA、CPLD或客制化逻辑电路来执行,且所有的控制器可或不可共享相同的写入规则。

输入/输出接口411接收来自外部来源的输入信号,且对输入数据进行转换,使得输入数据能被存储器控制器410内的元件所了解且接受。举例来说,输入/输出接口411可接收读取命令、写入命令、或者数据更新指令等等。

在一正常的读取操作中,输入/输出接口411将行与列坐标分别传送至行解码器412以及列解码器413。行解码器412对行坐标进行解码,且提供感测电压至一对应字元线。感测电压使能了连接至此字元线的每一电阻式记忆胞210的选择元件212。列解码器413对列坐标进行解码,且将一对应的位线连接至感测放大器与写入驱动器414。感测放大器与写入驱动器414包括一读取电路以及一写入电路。读取电路量测通过位在相应字元线/位线交叉处的电阻式记忆胞210的电流,且判断出对应于所量测到的电流的逻辑值。在一读取期间,记忆胞电流(一般称为感测电流)分布在一临界电流值的任一侧。大于临界电流值的电流值对应逻辑“0”,而小于临界电流值的电流值对应逻辑“1”,或者相反。如此一来,感测放大器与写入驱动器414量测通过电阻式记忆胞210的电流,将此量测到的电流与一个或多个临界电流值比较,并根据量测到的电流是否大于或小于临界电流值来确认逻辑值。感测放大器与写入驱动器414将确认出的逻辑值提供给输入/输出接口411,以作为读取操作的输出。输入/输出接口411将此输出传送至一外部目标,或者是维持此输出直到一外部来源要求为止。在一些实施例中,连接至相同的被使能字元线的多个电阻式记忆胞210可在一单一读取操作中被读取。当行解码器412提供感测电压至对应的字元线时,在此字元线上的每一电阻式记忆胞210被使能。因此,读取电路在与这些已使能电阻式记忆胞210连接的多个位线上量测通过每一已使能电阻式记忆胞210的电流。

在一些实施例中,当期望较佳的存储器可靠度以及较佳的读取精确度,存储器控制器410则对记忆胞210执行边界读取操作(margin read operation)。举例来说,当自预测记忆胞330读取时,存储器控制器410执行边界读取操作。由于预测位是作为 关于大量数据位的品质代理者,因此,边界读取可用来改善预测位品质降低的检测(且因此数据恶化即将发生)。在另一例子中,在强或弱刷新操作(在后文将参考图7-图8来说明)后,存储器控制器410对数据记忆胞310执行边界读取操作,以证明数据记忆胞310已成功地刷新。

取代使用单一临界电流值,感测放大器与写入驱动器414通过在一边界读取操作中比较量测到的电流与多个临界电流值,来判断对应此量测到的电流的逻辑值。临界电流值包括一较高的临界电流值以及一较低的临界电流值。较高的与较低的临界电流值各自分配在标准临界电流值的任一侧。举例来说,正常写入周期的临界电流值被选为25μA,而较高的与较低的临界电流值则可分别选为40μA与10μA。大于较高的电流临界值的量测电流值对应逻辑“0”,而小于较低的电流临界值的量测电流值对应逻辑“1”,或者相反。

在正常的写入操作下,输入/输出接口411接收来自一外部来源的数据,以及接收数据将被储存所在的电阻式记忆胞210地址。输入/输出接口411将此地址转换为行与列坐标,且分别将这些坐标传送至行解码器412与列解码器413。行解码器412对行坐标进行解码,且提供一写入电压至一对应的字元线。列解码器413对列坐标进行解码,且将一对应位源线连接至感测放大器与写入驱动器414。输入/输出接口411传送指令至感测放大器与写入驱动器414,以将“0”或“1”写入至位于使能的字元线与位线交叉处的电阻式记忆胞210。感测放大器与写入驱动器414的写入电路根据是“1”还是“0”将被储存来改变电阻元件212的电阻值至高电阻状态或低电阻状态。

在一些实施例中,存储器控制器410包括ECC控制器415。ECC控制器415检测在储存于数据记忆胞310的多个数据之中的数据位错误以及检测在储存于预测记忆胞330的多个位之中的预测位错误。在上述的写入操作中,ECC控制器415产生对应于即将被写入至电阻式记忆胞210的数据的多个ECC位。ECC控制器415亦产生对应于即将被写入至电阻式记忆胞210的多个预测位的多个ECC位。关于数据或预测位的每一存储单元的ECC位数量,是根据前述的多个ECC编码架构中的一者来决定。所产生的ECC位由ECC控制器415传送至感测放大器与写入驱动器414。感测放大器与写入驱动器414的写入电路将数据写入至数据记忆胞310,将预测位写入至预测记忆胞330、以及将产生的ECC位写入至ECC记忆胞320。

在上述的读取操作中,ECC控制器415读取储存在数据记忆胞310的数据以及 储存在ECC记忆胞320的对应ECC位。ECC控制器415使用ECC位来对读取获得的数据执行错误检测,以检测数据位错误。在一实施例中,ECC控制器415判断数据的每一存储单元的数据位错误数量。假使每一存储单元的数据位错误的数量小于对应于该存储单元的ECC位的数量,ECC控制器415则使用ECC位去校正数据位错误。ECC控制器415传送校正过的数据至感测放大器与写入驱动器414,且写入电路将数据写回至各自的数据记忆胞310与ECC记忆胞320。在一些实施例中,写入电路将数据的整个存储单元(包括校正过的数据位)写入至数据记忆胞310。在其他实施例中,写入电路仅将校正过的位写入至数据记忆胞310。

在一些实施例中,存储器控制器410包括预测控制器416。预测控制器416指示出储存在数据记忆胞310中的数据的有效数据恶化以及或系统数据飘移。举例来说,预测控制器416读取储存在预测记忆胞330中的预测位以及储存在ECC记忆胞320中的对应ECC位,且使用ECC位来判断储存在预测记忆胞330的预测位错误的数量。假使预测位错误的数量等于或超过位错误的一临界数量时,预测控制器416则初始化储存在数据记忆胞310中的数据的强刷新。举例来说,预测位错误的临界数量可能是储存在预测记忆胞330中的预测位的50%。因此,在此例子中,在具有32个预测位储存在预测记忆胞330的情况下,当预测控制器416判断出预测位错误的数等于或大于16个位时,预测控制器416则初始化一强刷新。

强刷新包括将储存在电阻式非易失性存储器阵列200中的所有数据与预测位全部读出、校正任何位错误、取代具有不可校正错误的任何位、以及将所有的数据与预测位(包括已校正且取代的位)写回电阻式非易失性存储器阵列200。具体来说,不具有错误的数据与预测位在强刷新操作中仍被刷新。当储存的预测位包括有效错误时,其从而指示出储存在数据记忆胞310的数据也很可能包括有效错误,因此,不具有错误的数据与预测位可能仍具有失去的有效记忆胞边界,且因此可能接近失效。如此一来,为了恢复在储存数据与预测位的记忆胞内的边界,强刷新操作刷新了储存在电阻式非易失性存储器阵列200中的全部数据与预测位。强刷新操作将通过图7来详细说明。

假使预测位错误的数量小于位错误的临界数量时,预测控制器416初始化储存在数据记忆胞310中的数据的一弱刷新。此弱刷新包括读出储存在电阻式非易失性存储器阵列200中的所有数据与预测位、校正任何可校正的位错误、取代具有不可校正错 误的任何位、以及仅将被校正/取代的数据与预测位写回至电阻式非易失性存储器阵列200中。如此一来,当储存的预测位不包括有效错误时,通过仅写入被校正/取代的数据与预测位来代替写入电阻式非易失性存储器阵列200的所有数据与预测位,而可最小化用来执行刷新操作的存储器系统资源。此弱刷新操作将通过图8来详细说明。

图5是表示根据本发明一实施例的一方法500的流程图。方法500可实施来检测与校正在电阻式非易失性存储器中的错误。在一些实施例中,方法500可由一存储器系统来实施,例如图4所示的存储器系统400。

在一些实施例中,方法500包括对储存在一电阻式非易失性存储器阵列的预测位执行一边界读取操作(步骤510)。包含在存储器系统的存储器控制器(例如,图4中的存储器控制器410)使用上述关于图4的边界读取操作,来读取储存在电阻式存储器阵列(例如,图2-图4中的电阻式非易失性存储器阵列200)的记忆胞(例如,图3的预测记忆胞330)中的预测位。存储器控制器读以各种存储单元来读取预测位,存储单元例如有分页、存储块、存储区段、字元、或任何已知的储存配置。每一存储单元可包括任何数量的预测位。

在一些实施例中,方法500包括判断在储存于在电阻式非易失性存储器阵列的预测位中的错误的数量(步骤520)。存储器控制器读取储存在电阻式非易失性存储器阵列的记忆胞(例如,图3的ECC记忆胞320)中的ECC位,且使用此储存的ECC位来检测在预测位中的错误。存储器控制器通过判断哪些预测位具有翻转逻辑状态(例如,由逻辑“1”至逻辑“0”,或者相反)来检测由于高温度或是EMI而所导致的错误。储存的ECC位可包括汉明码、BCH编码、同位、李德索罗门编码、涡轮码、LDPC、卷积码、或任何已知的其他错误校正编码。

在一些实施例中,存储器控制器通过比较储存的预测位与一型样来检测在储存的预测位之中的错误。存储器控制器以多个型样中的一者,例如交替的逻辑状态(例如01010101),来将预测位写入至电阻式非易失性存储器阵列。存储器控制器更可被编程,以读取被型样化的预测位,且对其与一期望型样进行比较。当读出的型样不符合期望型样时,则在预测位中发生错误。

存储器控制器在存储器系统操作的各种阶段期间判断预测位错误的数量。举例来说,存储器控制器可在读取周期期间、反应于存储器系统的开机、在存储器系统的闲 置模式期间、或者是反应于一接收到的命令来判断预测位错误的数量。在闲置模式的例子中,存储器控制器可在单一闲置模式期间或者可在预设数量的闲置模式期间来判断预测位错误的数量。如此一来,存储器控制器在对于系统效能的冲击较小的时候执行错误检测。在开机的例子中,存储器控制器可反应单一开机或预设数量的开机来判断预测位错误的数量。预设数量的开机可藉使用各种准则来决定。举例来说,预设数量的开机可根据存储器系统在生产测试期间将经历到的期望数量的电力周期来决定。如此一来,在生产期间预先载入至存储器系统的数据中的任何系统缺陷,可在离开生产工厂之前自动地被校正。在接收指令的例子中,存储器系统可接收来自与存储器系统相互耦合连接的处理系统、来自使用者(例如,系统操作者或测试技师/工程师)、以及/或来自测试系统(例如,开发或生产测试系统)的指令。此指令可以是执行错误检测与校正的命令、一读取命令、一系统测试命令、一开机重设命令、或一唤醒命令。

在一些实施例中,存储器控制器包括一预测控制器(例如,图4的预测控制器416),其判断在储存于电阻式非易失性存储器阵列的预测位当中的错误的数量。举例来说,预测控制器自电阻式非易失性存储器阵列读出预测位,且判断在这些预测位当中的错误的数量。

在一些实施例中,方法500包括比较预测位错误的数量与预测位错误的一临界数量(步骤530)。此临界数量可根据一些因素来决定,这些因素例如包括存储器系统的可靠度需求、安全性需求、客户端需求、存储器系统资源的可用性、电阻式非易失性存储器阵列的尺寸等等。在一例子中,预测位错误的临界数量等于储存在电阻式非易失性存储器阵列的预测记忆胞中预测位的50%。当存储器控制器判断出预测位错误的数量小于预测位错误的临界数量(步骤530-是),存储器控制器执行仅具有数据位错误的存储单元的弱刷新(步骤540)。当存储器控制器判断出预测位错误的数量等于或大于预测位错误的临界数量(步骤530-否),存储器控制器则执行储存在电阻式非易失性存储器阵列的所有预测位与数据的强刷新(步骤550)。

图6是表示根据本发明一实施例的一方法600的流程图。方法600可实施来检测与校正在电阻式非易失性存储器中的错误。在一些实施例中,方法600可由一存储器系统来实施,例如图4所示的存储器系统400。

相似于方法500,方法600包括对储存于一电阻式非易失性存储器阵列的预测位 执行一边界读取操作(步骤610),且判断储存在电阻式非易失性存储器阵列的预测位中的错误的数量(步骤620)。在一些实施例中,方法600包括比较预测位错误的数量与预测位错误的一第一临界数量(步骤630)。当控制器判断出预测位错误的数量小于预测位错误的第一临界数量时(步骤630-是),存储器控制器不会执行刷新操作(步骤640)。当控制器判断出预测位错误的数量等于或大于预测位错误的第一临界数量时(步骤630-否),存储器控制器则比较预测位错误的数量与预测位错误的一第二临界数量(步骤650)。预测位错误的第二临界数量大于第一临界数量。当预测位错误的数量小于预测位错误的第二临界数量时(步骤650-是),存储器控制器对储存在电阻式非易失性存储器阵列中的数据执行弱刷新(步骤660)。当预测位错误的数量等于或大于预测位错误的第二临界数量时(步骤650-否),存储器控制器对储存在电阻式非易失性存储器阵列中的所有预测位与数据执行强刷新(步骤670)。

当使用较高的预测位错误的临界数量与较低的预测位错误的临界数量时,由于存储器系统是配置来适应低于第一临界数量的一些预测位错误,使得存储器控制器使用较少的资源。如此一来,刷新操作仅在预测记忆胞包含数量大于第一临界数量的错误的情况下执行。存储器系统的操作者可根据一些因素来自订第一临界数量,这些因素例如包括存储器系统的可靠度需求、安全性需求、客户端需求、存储器系统资源的可用性、电阻式非易失性存储器阵列的尺寸等等。

图7是表示根据本发明一实施例的一方法700的流程图。方法700可实施来执行储存在电阻式非易失性存储器中的所有预测位与数据的强刷新。在一些实施例中,方法700可由一存储器系统来实施,例如图4所示的存储器系统400。

在一些实施例中,方法700包括伴随着ECC校正来读出数据,且检测储存在电阻式非易失性存储器阵列的数据中的数据位错误(步骤710)。包含于存储器系统的存储器控制器(例如,图4的存储器控制器410)通过使用前述的正常读取操作来读取储存在电阻式非易失性存储器阵列(例如,图2-图4中的电阻式非易失性存储器阵列200)的记忆胞(例如,图3的数据记忆胞310)的数据。存储器控制器以各种存储单元来读取数据,存储单元例如有分页、存储块、存储区段、字元、或任何已知的储存配置。每一存储单元可包括任何数量的数据位。存储器控制器更读取储存在电阻式非易失性存储器阵列的记忆胞(例如,图3的ECC记忆胞320)的ECC位,且使用储存的ECC位来检测在数据的多个存储单元中的数据位错误。存储器控制器通过 判断哪些数据位具有翻转逻辑状态(例如,由逻辑“1”至逻辑“0”,或者相反)来检测由于高温度或是EMI而所导致的数据位错误。储存的ECC位可包括汉明码、BCH编码、同位、李德索罗门编码、涡轮码、LDPC、卷积码、或任何已知的其他错误校正编码。

存储器控制器在存储器系统操作的各种阶段期间判断数据位错误的数量。举例来说,存储器控制器可在读取周期期间、反应于存储器系统的开机、在存储器系统的闲置模式期间、或者是反应于一接收到的命令来判断数据位错误的数量。在闲置模式的例子中,存储器控制器可在单一闲置模式期间或者可在预设数量的闲置模式期间来判断数据位错误的数量。如此一来,存储器控制器在对于系统效能的冲击较小的时候执行错误检测。在开机的例子中,存储器控制器可反应单一开机或预设数量的开机来判断数据位错误的数量。预设数量的开机可藉使用各种准则来决定。举例来说,预设数量的开机可根据存储器系统在生产测试期间将经历到的期望数量的电力周期来决定。如此一来,在制造期间预先载入至存储器系统的数据中的任何缺陷,可在离开生产工厂之前自动地被校正。在接收指令的例子中,存储器系统可接收来自与存储器系统相互耦合连接的处理系统、来自使用者(例如,系统操作者或测试技师/工程师)、以及/或来自测试系统(例如,开发或生产测试系统)的指令。此指令以是执行错误检测与校正的命令、一读取命令、一系统重设命令、一开机重设命令、或一唤醒命令。

在一些实施例中,存储器控制器包括ECC控制器(例如,图4的ECC控制器415),其判断储存在电阻式非易失性存储器阵列的数据当中的数据位错误数量。举例来说,ECC控制器自电阻式非易失性存储器阵列读取数据与ECC位,且根据ECC编码架构来判断数据位错误的数量。

在一些实施例中,方法700包括执行电阻式非易失性存储器阵列的数据与预测位的强写入,且以一验证读取操作来对写入取代数据的存储单元或预测位的数据进行验证(步骤720)。存储器控制器通过将数据与预测位写回至记忆胞来执行强写入操作,使得记忆胞的电流分布大于正常写入周期。为了增加一记忆胞的电流分布,存储器控制器编程此记忆胞的逻辑值,使得读取自此记忆胞的当前数值与正常写入周期比较起来更进一步地远离临界值。增加在记忆胞内的电流分布需要额外的写入时间以及存储器控制器所造成的能量消耗,但是这却通过增加记忆胞边界来帮助保护数据与预测位以避免变为恶化。如此一来,增加记忆胞内的电流分布可通过使记忆胞更难以进入翻 转逻辑状态而改善错误的容忍度。

为了执行强写入操作,存储器控制器判断校正读取自电阻式非易失性存储器阵列的数据位错误以及/或预测位错误而所需要的ECC位的数量。储存在电阻式非易失性存储器阵列的ECC位的数量是取决于ECC编码架构。举例来说,ECC编码架构可分配一些ECC位给每一存储单元(例如每一分页、每一存储块、每一存储区段、每一字元等等)。分配给每一存储单元的ECC位的数量是弹性的,且取决于设计需求、存储器容量、时序与通量需求等等。存储器控制器或ECC控制器判断校正在存储单元中数据位错误所需而分配给各存储单元的ECC位数量。举例来说,5个ECC位分配给储存在电阻式非易失性存储器阵列的数据的每一地址。因此,在此例子中,存储器控制器或ECC控制器判断在5个ECC位中需要多少个位来校正在此数据的对应地址中的数据位错误。存储器控制器或ECC控制器更判断校正预测位错误所需而分配给每一预测位(或每一存储单元或多个预测位)的ECC位的数量。

存储器控制器或ECC控制器判断校正每一存储单元的数据位错误以及/或预测位错误所需的ECC位的数量是否小于ECC位的一临界数量。ECC位的临界数量通常是根据存储器控制器或ECC控制器所实施的ECC编码架构的错误校正容量来决定。然而,当决定此ECC位的临界值时,也可考虑其他的因素。

当判断出不需要ECC位以校正一存储单元中的数据错误或是校正一预测位错误时时(即是,当在存储单元中没有数据位错误,或没有预测位错误时),存储器控制器读取上述数据的存储单元或预测位,且通过一强写入操作来将此存储单元或预测位写回至电阻式非易失性存储器阵列(步骤720)。通过读取不包括错误的数据与预测位与通过强写入操作以将不包括错误的数据与预测位写回至电阻式非易失性存储器阵列,可增加储存数据与预测位的记忆胞内的边界。

当存储器控制器判断出需要ECC位来校正在一存储单元的数据错误或是校正一预测数据错误,且此ECC位的数量小于ECC位的临界数量时,存储器控制器或ECC控制器校正这些错误,且使用强写入操作来将校正过的位写入至电阻式非易失性存储器阵列。存储器控制器或ECC控制器通过反转数据位或预测位的数值来校正这些错误。因此,举例来说,假使一数据记忆胞或一预测记忆胞包括一个逻辑值“0”时且存储器控制器或ECC控制器使用ECC位来判断出此逻辑值不正确时,存储器控制器或ECC控制器则将此逻辑值反转为“1”。

存储器控制器通过将校正过的位传送至一感测放大器与写入驱动器(例如,图4的感测放大器与写入驱动器414)的一写入电路,以将校正过的位写入至电阻式非易失性存储器阵列。存储器控制器可在存储器系统操作的不同阶段期间写入校正过的位。举例来说,在一实施例中,存储器控制器反应于存储器系统的一随后开机(例如,下一次开机)来执行写入,或者在存储器系统的一随后闲置模式期间(例如,下一次闲置模式)来执行写入。当存储器控制器反应于一随后开机来写入校正过的位时,是在开机初始化期间或在初始化之后立刻执行写入。延缓处理写入校正过的位直到系统使用为最小为止,例如,反应于开机或在闲置期间,减少了对存储器系统效能的影响。

当存储器控制器判断出需要ECC位来校正在一存储单元的数据错误或校正一预测位错误,且需要的ECC位的数量等于或大于ECC位的临界数量时,存储器控制器或ECC控制器将替换此存储单元或此预测位。替换数据的上述存储单元或一预测位的步骤包括,以储存在一晶体管式非易失性存储器阵列的一对应数据的存储单元或一对应的预测位来取代上述数据的存储单元或上述预测位。晶体管式非易失性存储器阵列,举例来说,包括可编程只读存储器(programmable read-only memory,PROM)、快闪存储器、电子可编程只读存储器(electrically programmable read-only memory,EPROM)、或eFuse存储器。

储存在晶体管式非易失性存储器阵列中的数据的存储单元或预测位可以是在电阻式非易失性存储器阵列中将被取代的数据的存储单元或预测位的副本(例如,一备份存储单元或备份预测单元)。存储器控制器将储存在电阻式非易失性存储器阵列的数据与预测位写入至晶体管式非易失性存储器阵列,以建立数据与预测位的备份存储单元。这种写入可发生在存储器系统操作的不同阶段期间。举例来说,存储器控制器可在高温热循环(例如,一波峰板焊接程序)之前、在数据与预测位写入至电阻式非易失性存储器阵列之后、在存储器系统的一闲置状态期间、反应于一接收到的命令、或反应于存储器系统的一开机来将数据与预测位写入至晶体管式非易失性存储器阵列。

存储器控制器读取储存在晶体管式非易失性存储器阵列中的备份存储单元或备份预测位,以作为替换程序的一部分。在一些实施例中,存储器控制器控制电阻式非易失性存储器阵列以及晶体管式非易失性存储器阵列。在这样实施例中,存储器控制器直接读取储存在晶体管式非易失性存储器阵列的数据。在其他实施例中,晶体管式 非易失性存储器阵列是由一不同的存储器控制器来控制。在这样的实施例中,与电阻式非易失性存储器阵列耦合联系的存储器控制器传送一请求至与晶体管式非易失性存储器阵列耦合联系的存储器控制器。与晶体管式非易失性存储器阵列耦合联系的存储器控制器接收此请求,执行一读取操作以撷取晶体管式非易失性存储器阵列所储存的数据的备份存储单元或备份预测位,且将撷取到的备份存储单元或备份预测位传送至与电阻式非易失性存储器阵列耦合联系的存储器控制器。

存储器控制器使用强写入操作来将备份存储单元或备份预测位写入至电阻式非易失性存储器阵列。存储器控制器在存储系统操作的不同阶段替换数据的存储单元或预测位。举例来说,存储器控制器在判断出校正错误所需的ECC位数量等于或大于ECC位的临界数量之后,立刻替换数据的存储单元或预测位。在另一实施例中,存储器控制器反应于存储器系统的一随后开机(例如,下一次开机)来执行写入,或者在存储器系统的一随后闲置模式期间(例如,下一次闲置模式)来数据的存储单元或预测位。

一旦已经执行关于数据位或预测位的强写入操作,存储器控制器则通过执行关于图4所述的一边界读取操作来验证强写入操作是否已执行成功。边界读取操作对写入的数据或预测位的电流分布与一较高的或较低的临界电流值进行比较,以验证写入的数据或预测位的电流分布已经增加。一旦存储器控制器验证得到强写入操作已执行成功,存储器控制器则判断是否所有的数据记忆胞以及或预测记忆胞已被刷新(步骤730)。假使存储器控制器判断出所有的数据记忆胞或预测记忆胞已被刷新(步骤730-是),此强刷新操作则执行完成(步骤740)。假使存储器控制器判断出仍有一些数据记忆胞或预测记忆胞需要被刷新(步骤730-否),存储器控制器则移动至下一数据/预测记忆胞,且继续强刷新操作(步骤750)。

图8是表示根据本发明一实施例的一方法800的流程图。方法800可实施来执行储存在电阻式非易失性存储器中的数据的弱刷新。弱刷新包括仅刷新具有数据位错误的数据的存储单元。在一些实施例中,方法800可由一存储器系统来实施,例如图4所示的存储器系统400。

在一些实施例中,方法800包括伴随着ECC校正来读出数据,且检测储存在电阻式非易失性存储器阵列的数据中的数据位错误(步骤810)。包含于存储器系统的存储器控制器(例如,图4的存储器控制器410)读取储存在电阻式非易失性存储器 阵列(例如,图2-图4中的电阻式非易失性存储器阵列200)的记忆胞(例如,图3的数据记忆胞310)的数据。存储器控制器以各种存储单元来读取数据,存储单元例如有分页、存储块、存储区段、字元、或任何已知的储存配置。每一存储单元可包括任何数量的数据位。存储器控制器更读取储存在电阻式非易失性存储器阵列的记忆胞(例如,图3的ECC记忆胞320)的ECC位,且使用此储存的ECC位来检测在储存的数据中的数据位错误。存储器控制器通过判断哪些数据位具有翻转逻辑状态(例如,由逻辑“1”至逻辑“0”,或者相反)来检测由于高温度或是EMI所导致在数据的多个存储单元中的数据位错误。储存的ECC位可包括汉明码、BCH编码、同位、李德索罗门编码、涡轮码、LDPC、卷积码、或任何已知的其他错误校正编码。

存储器控制器在存储器系统操作的各种阶段期间检测数据位错误。举例来说,存储器控制器可在读取周期期间、反应于存储器系统的开机、在存储器系统的闲置模式期间、或者是反应于一接收到的命令来检测数据位错误。在闲置模式的例子中,存储器控制器可在单一闲置模式期间或者可在预设数量的闲置模式期间来检测数据位错误。如此一来,存储器控制器在对于系统效能的冲击较小的时候执行错误检测。在开机的例子中,存储器控制器可反应单一开机或预设数量的开机来检测数据位错误。预设数量的开机可藉使用各种准则来决定。举例来说,预设数量的开机可根据存储器系统在生产测试期间将经历到的期望数量的电力周期来决定。如此一来,在制造期间预先载入至存储器系统的数据中的任何系统缺陷,可在离开生产工厂之前自动地被校正。在接收指令的例子中,存储器系统可接收来自与存储器系统相互耦合连接的处理系统、来自使用者(例如,系统操作者或测试技师/工程师)、以及/或来自测试系统(例如,开发或生产测试系统)的指令。此指令以是执行错误检测与校正的命令、一读取命令、一系统重设命令、一开机重设命令、或一唤醒命令。

在一些实施例中,存储器控制器包括ECC控制器(例如,图4的ECC控制器415),其检测储存在电阻式非易失性存储器阵列的数据中的数据位错误。举例来说,ECC控制器自电阻式非易失性存储器阵列读取数据与ECC位,且根据ECC编码架构来检测数据位错误。

在一些实施例中,方法800包括判断校正数据位错误所需要的ECC位的数量(步骤820)。储存在电阻式非易失性存储器阵列的ECC位的数量是取决于ECC编码架构。举例来说,ECC编码架构可分配一些ECC位给每一存储单元(例如每一分页、 每一存储块、每一存储区段、每一字元等等)。分配给每一存储单元的ECC位的数量是弹性的,且取决于设计需求、存储器容量、时序与通量需求等等。存储器控制器或ECC控制器判断校正在存储单元中数据位错误所需而分配给各存储单元的ECC位数量。举例来说,5个ECC位分配给储存在电阻式非易失性存储器阵列的数据的每一地址。因此,在此例子中,存储器控制器或ECC控制器判断在5个ECC位中需要多少个位来校正在此数据的对应地址中的数据位错误。

存储器控制器或ECC控制器判断校正每一存储单元的数据位错误所需的ECC位的数量是否小于ECC位的一临界数量(步骤830)。对于弱刷新操作而言,ECC位的临界数量是选择为小于由存储器控制器或ECC控制器所实施的ECC编码架构的最大ECC位错误校正容量。由于已判断出储存的预测位没有包含有效错误(步骤530-是),因此,通过只写入具有有效错误或恶化的数据而不是写入电阻式非易失性存储器的全部数据,使得用来执行弱刷新操作的存储器系统资源可最小化。

当存储器控制器或ECC控制器判断出校正一存储单元的数据位错误所需的ECC位的数量小于ECC位的临界数量时(步骤830-是),存储器控制器以及/或ECC控制器不对上述存储单元执行数据的弱刷新,且回到步骤810,以继续对下一数据记忆胞执行是否进行弱刷新操作的判断(步骤840)。

当存储器控制器判断出校正一存储单元的数据位错误所需的ECC位的数量大于或等于ECC位的临界数量(步骤830-否),且所需的ECC位的数量小于错误校正可利用的最大ECC位数量时,存储器控制器或ECC控制器通过校正错误并将校正过的位写入至电阻式非易失性存储器阵列来执行弱刷新写入(步骤850)。存储器控制器或ECC控制器通过反转数据位错误的数值来校正错误。举例来说,假使数据记忆胞包括逻辑值“0”且存储器控制器或ECC控制器使用ECC位判断出此逻辑值不正确时,存储器控制器或ECC控制器则反转逻辑值为“1”。

存储器控制器使用前述关于图4的正常写入操作来将校正过的数据位写入电阻式非易失性存储器阵列。存储器控制器通过将校正过的位传送至一感测放大器与写入驱动器(例如,图4的感测放大器与写入驱动器414)的一写入电路,以将校正过的位写入至电阻式非易失性存储器阵列。存储器控制器可在存储器系统操作的不同阶段期间写入校正过的位。举例来说,在一实施例中,存储器控制器反应于存储器系统的一随后开机(例如,下一次开机)来执行写入,或者在存储器系统的一随后闲置模式 期间(例如,下一次闲置模式)来执行写入。当存储器控制器反应于一随后开机来写入校正过的位时,是在开机初始化期间或在初始化之后立刻执行写入。延缓处理写入校正过的位直到系统使用为最小为止,例如,反应于开机或在闲置期间,可最小化对存储器系统效能的影响。在另一实施例中,存储器控制器在校正数据位错误后立刻执行写入。电阻式非易失性存储器胞的写入时间一般远短于晶体管式非易失性记忆胞(例如,快闪记忆胞)的写入时间。由于只有具有数据位错误的存储单元在弱刷新时被写入,因此,弱刷新可在一般存储器统操作时执行,而不会影响存储器系统。

当存储器控制器判断出校正一存储单元的数据位错误所需的ECC位的数量大于或等于ECC位的临界数量(步骤830-否),且所需的ECC位的数量等于或大于错误校正可利用的最大ECC位数量时,存储器控制器或ECC控制器通过替换此存储单元来执行弱刷新写入(步骤850)。替换数据的上述存储单元的步骤包括以储存在一晶体管式非易失性存储器阵列的一对应数据的存储单元来取代上述数据的存储单元。举例来说,晶体管式非易失性存储器阵列包括可编程只读存储器(PROM)、快闪存储器、电子抹除式可编程只读存储器(EEPROM)、或eFuse存储器。

储存在晶体管式非易失性存储器阵列中的数据的存储单元可以是在被取代的电阻式非易失性存储器阵列中的数据的存储单元副本(例如,一备份存储单元)。存储器控制器将储存在电阻式非易失性存储器阵列的数据写入至晶体管式非易失性存储器阵列,以建立数据的备份存储单元。这种写入可发生在存储器系统操作的不同阶段期间。举例来说,存储器控制器可在高温热循环(例如,一波峰板焊接程序)之前、在数据写入至电阻式非易失性存储器阵列之后、在存储器系统的一闲置状态期间、反应于一接收到的命令、或反应于存储器系统的一开机来将数据写入至晶体管式非易失性存储器阵列。

存储器控制器读取储存在晶体管式非易失性存储器阵列中的备份存储单元,以作为替换程序的一部分。在一些实施例中,存储器控制器控制电阻式非易失性存储器阵列以及晶体管式非易失性存储器阵列。在这样实施例中,存储器控制器直接读取储存在晶体管式非易失性存储器阵列的数据。在其他实施例中,晶体管式非易失性存储器阵列是由一不同的存储器控制器来控制。在这样的实施例中,与电阻式非易失性存储器阵列耦合联系的存储器控制器传送一请求至与晶体管式非易失性存储器阵列耦合联系的存储器控制器。与晶体管式非易失性存储器阵列耦合联系的存储器控制器接收 此请求,执行一读取操作以撷取晶体管式非易失性存储器阵列储存的数据的备份存储单元,且将撷取到的备份存储单元传送至与电阻式非易失性存储器阵列耦合联系的存储器控制器。

存储器控制器使用图4所述的正常写入操作来将备份存储单元写入至电阻式非易失性存储器阵列。存储器控制器在存储系统操作的不同阶段替换数据的存储单元。举例来说,存储器控制器在判断出校正错误所需的ECC位数量等于或大于ECC位的临界数量,且所需的ECC位的数量等于或大于错误校正可利用的最大ECC位数量之后,立刻替换数据的存储单元。在另一实施例中,存储器控制器反应于存储器系统的一随后开机(例如,下一次开机)来执行写入,或者在存储器系统的一随后闲置模式期间(例如,下一次闲置模式)来替换数据的存储单元。

一旦已经执行关于数据位或预测位的弱刷新操作,存储器控制器则通过执行关于图4所述的一边界读取操作来验证弱刷新操作是否已执行成功。弱刷新操作的边界读取操作使用与强写入操作的边界读取比较起来较接近于正常临界电流的较高的与较低的临界电流值。一旦对于数据记忆胞的弱刷新操作完成(步骤850),存储器控制器以及/或ECC控制器对下一数据/预测记忆胞继续弱刷新操作。

图9是表示正常读取操作与根据本发明一实施例的一边界读取操作之间的比较示意图。如图9所示,正常临界电流910将一记忆胞的电流分布划分为两个区域:一较高区域以及一较低区域。较高区域与较低区域对应不同的逻辑值(例如,逻辑“0”与逻辑“1”)。在一正常写入操作下,存储器控制器(例如,图4中的存储器控制器410)编程记忆胞,使得记忆胞的电流分布落在正常临界电流910的任一侧。在一正常读取操作下,存储器控制器量测经过记忆胞的电流,且将其与正常临界电流910进行比较以判断记忆胞的逻辑值。

在弱刷新操作下,记忆控制器使用一较低的弱临界电流920a以及一较高的弱临界电流920b,以分别做为较高区域与较低区域的边界。如图9所示,较低的弱临界电流920a以及较高的弱临界电流920b分布在正常临界电流910的两侧,使得在各弱临界电流920a、920b与正常临界电流910之间具有容限(margin)。在弱刷新写入中,存储器控制器编程记忆胞,使得记忆胞的电流分布小于较低的弱临界电流920a或大于较高的弱临界电流920b。

在一弱验证读取操作(例如,边界读取)中,存储器控制器量测经过记忆胞的电 流,且将其与较低的弱临界电流920a以及与较高的弱临界电流920b做比较,以判断记忆胞的逻辑值。

在一强刷新操作中,存储器控制器使用一较低的强临界电流930a以及一较高的强临界电流930b,以分别做为较高区域与较低区域的边界。如图9所示,较低的强临界电流930a以及较高的强临界电流930b分布在正常临界电流910的两侧,使得在各强临界电流930a、930b与正常临界电流910之间具有容限。此外,分别与较低的弱临界电流920a以及较高的弱临界电流920b比较起来,较低的强临界电流930a以及较高的强临界电流930b更远离正常临界电流910。在强刷新写入中,存储器控制器编程记忆胞,使得记忆胞的电流分布小于较低的强临界电流930a或大于较高的强临界电流930b。如此一来,强刷新写入操作比弱刷新写入操作能提供更多的记忆胞容限。

在一强验证读取操作(例如,边界读取)中,存储器控制器量测经过记忆胞的电流,且将其与较低的强临界电流930a以及与较高的强临界电流930b做比较,以判断记忆胞的逻辑值。

强临界电流930a与930b可用来检测在记忆胞电流分布上的偏移。举例来说,使用较低的强临界电流930a与较高的强临界电流930b的一边界读取操作可检测出,一记忆胞电流分布已偏移接近正常临界电流910且因此储存在记忆胞的数据的品质降低。举例来说,当使用预测位错误来做为大量数据的指示符时,由于预测位在品质上的降低指示出对应的数据品质也降低且需要刷新,因此,数据品质降低的早期检测是有用的。

图9更表示出分布曲线940a与940b,表示出储存在记忆胞的位数量与记忆胞电流分布之间的对照关系。分布曲线940a与940b仅为一示范例,且本案所属领域中技术人员可得知其他可能的分布曲线。

本发明虽以较佳实施例揭露如上,然其并非用以限定本发明的范围,任何所属技术领域中技术人员,在不脱离本发明的精神和范围内,当可做些许的更动与润饰,因此本发明的保护范围当视权利要求书所界定的为准。

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