存储器系统及其管理方法与流程

文档序号:11954847阅读:367来源:国知局
存储器系统及其管理方法与流程

本发明有关于一种非挥发存储器,特别是有关于一种用于非挥发存储器数据管理的方法与系统。



背景技术:

一般而言,即使在不供电的情况下,非挥发半导体存储器保留已储存的数据。晶体管式非挥发存储器是使用一或多个晶体管作为储存元件来储存数据的非挥发存储器的,例如快闪存储器、电子抹除式可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)。晶体管式非挥发存储器提供了快速的读出存取时间以及耐震特性,使得晶体管式非挥发存储器可适用于各种应用。非挥发存储器的一些应用包括在电脑装置、移动式电话、可携式音频播放器以及其他消费者电子产品中的数据储存器。

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

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



技术实现要素:

本发明提供一种存储器系统,其包括第一非挥发存储器阵列、第二非挥发存储器 阵列以及存储器控制器。存储器控制器将一指示符位写入至第二非挥发存储器阵列。指示符位指示储存在第二非挥发存储器阵列中的备份数据位是否有效。存储器控制器被配置为反应于在一个高温事件之后的存储器系统的开机、反应于在一个高温事件之后的接收命令、反应于预设数量的开机或反应于在预设数量的多个高温事件的每一者之后的开机或接收命令,来判断指示符位是否有效。当指示符位有效时,存储器控制器将储存在第二非挥发存储器阵列的备份数据位写入至第一非挥发存储器阵列。

本发明提供一种存储器系统管理方法,用以管理存储器系统的数据。此管理方法包括:将一指示符位写入至第二非挥发存储器阵列,其中,指示符位指示储存在第二非挥发存储器阵列中的数据位是否有效;反应于在一个高温事件之后的存储器系统的开机、反应于在一个高温事件之后的接收命令、反应于预设数量的开机或反应于在预设数量的多个高温事件的每一者之后的开机或接收命令,来判断指示符位是否有效;以及当指示符位有效时,将储存在第二非挥发存储器阵列的数据位写入至第一非挥发存储器阵列。

附图说明

图1表示一示范晶体管式非挥发存储器阵列。

图2表示根据本发明一实施例的晶体管式非挥发存储器阵列。

图3表示根据本发明一实施例的电阻式非挥发存储器阵列。

图4表示根据本发明另一实施例的电阻式非挥发存储器阵列。

图5表示根据本发明一实施例的存储器系统的方块图。

图6表示根据本发明一实施例的存储器系统数据管理方法的流程图。

图7表示根据本发明另一实施例的存储器系统数据管理方法的流程图。

【符号说明】

100~晶体管式非挥发存储器阵列;

110~晶体管式非挥发存储单元;

210~备份数据存储单元;

220~指示符存储单元;

300~电阻式非挥发存储器阵列;

310~电阻式非挥发存储单元;

312~选择元件;

314~电阻储存元件;

410~数据存储单元;

420~预测存储单元;

500~存储器系统;

510~存储器控制器;

511~输入/输出介面;

512~列解码器;

513~行解码器;

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

515~刷新控制器;

516~预测控制器;

520~模拟电路;

530~逻辑电路;

600~方法;

610…650~方法步骤;

700~方法;

710…750~方法步骤;

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℃的高温。电阻式非挥发存储器在接近这些范围的上部分时可能会发生效能下降。举例来说,在高环境操作温度下,电阻式非挥发存储单元可能会发生例如为位翻转的数据错误。此外,于暴露在高温(例如由波焊程序所导致的高温)之前写入至电阻式非挥发存储器的数据,可能会经历有效数据错误,例如系统数据飘移以及数据保留时间减少。

本发明的实施例提供的改善方式,能缓和高温对于电阻式非挥发存储器的影响,藉此在包括上述存储器的系统以及/或集成电路中实现效能改善。本发明的实施例提供了一种存储器系统,其配置以在一高温事件之前以及/或之后,在一电阻式非挥发 存储器与一晶体管式非挥发存储器之间转移数据。储存在电阻式非挥发存储器的数据在高温事件之前被写入至晶体管式非挥发存储器,且在高温事件之后写回至电阻式非挥发存储器。如此一来,晶体管式非挥发存储器可作为备份储存,且任何在电阻式非挥发存储器中因高温事件而遗失或恶化的数据可自晶体管式非挥发存储器来恢复。

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

图1表示一示范晶体管式非挥发存储器阵列100的电路架构图。晶体管式非挥发存储器阵列100包括多个晶体管式非挥发存储单元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)、快闪存储器或电可编程熔丝(Electrically Programmable Fuse,eFuse)存储器。此外,晶体管式非挥发存储器阵列100可能包括一个二维存储器阵列或是一个三维存储器阵列。

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

图2表示根据本发明一实施例的晶体管式非挥发存储器阵列100的方块图。如图2所示,晶体管式非挥发存储器阵列100包括多种存储单元类型。举例来说,备份数据存储单元210是配置来储存备份数据位。每一备份数据存储单元210储存一备份数据位。这些备份数据位可在各种储存单位中被写入以及存取,储存单位例如有分页(page)、存储块(block)、存储区段(sector)、字(word)或任何已知的储存配置。每一储存单位可包括任何数量的备份数据位。每个备份数据位具有备份数据。

在一些实施例中,晶体管式非挥发存储器阵列100也包括多个指示符存储单元 220。指示符存储单元220是配置来储存指示符位,以指示备份数据是否成功地写入至备份数据存储单元210。每一指示符存储单元220储存一个指示符位。指示符位的各种配置可用来指示备份数据是否成功地写入至备份数据存储单元210。举例来说,一个指示符位可用来指示所有的备份数据是否成功地写入至备份数据存储单元210。在另一例子中,一个指示符位可用来指示备份数据的每一储存单位是否成功地写入至备份数据存储单元210。根据此例子,假使三个分页的备份数据被写入至备份数据存储单元210,这些指示符存储单元220则以每一指示符存储单元220对应一指示符位的方式来储存三个指示符位。

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

如图3所示,电阻式非挥发存储器阵列300包括多个字线(WL0~WLn)、多个位线(BL0~BLm)以及多个电阻式非挥发存储单元310。每一电阻式非挥发存储单元310连接一字线以及一位线。各电阻式非挥发存储单元310包括一选择元件312以及一电阻储存元件314。电阻式非挥发存储单元310可以用前述的任何电阻式非挥发存储器来实现,例如PCRAM存储单元、RRAM存储单元、MRAM存储单元或电感式桥接RAM存储单元。选择元件312如同一选择开关般的操作,以控制对电阻式非挥发存储单元310的存取。举例来说,选择元件310可透过二极管、MOSFET或双极性介面晶体管(bipolar junction transistor,BJT)来实现。在一些实施例中,选择元件312可以是可选择的,例如,电阻式非挥发存储单元310以一RRAM单元来实现。

图4表示根据本发明一实施例的电阻式非挥发存储器阵列300的方块图。如图4所示,电阻式非挥发存储器阵列300包括多种存储单元类型。举例来说,数据存储单元410是配置来储存数据位。每一数据存储单元410储存一个数据位。数据位可在各种储存单位中被写入以及存取,储存单位例如有分页、存储块、存储区段、字或任何已知的储存配置。每一储存单位可包括任何数量的数据位。

在一些实施例中,电阻式非挥发存储器阵列300也包括多个预测存储单元420。预测存储单元420是配置来储存预测数据,以检测储存在数据存储单元410中的数据位的实质数据恶化或系统数据飘移。每一预测存储单元420是配置来储存一预测位。储存 在预测存储单元420的预测位作为数据恶化或系统数据飘移的指示符。其中,导致数据恶化或系统数据飘移的原因例如为电阻式非挥发存储器阵列300经历EMI或高温事件(例如,应力筛选热循环(environmental stress screening thermal cycle)、波焊程序、回焊焊接程序、高加速寿命试验(highly accelerated life test))或高温度储存。电阻式非挥发存储器阵列300中所包含的预测存储单元420的数量是取决于一些因素,例如电阻式非挥发存储器阵列300中所包含的存储单元总数量、存储器系统可靠度的重要性、可分配给系统飘移检测的存储器系统通量大小等等。举例来说,储存在预测存储单元420的位总数包括16位或32位。与储存在数据存储单元410的数据位数量比较起来,储存在预测存储单元420的预测位总数可较小。如此一来,使用少量的预测位来作为大量数据位的品质代理,这改善了存储器系统效率,并减少错误检测所需要的存储器系统资源量。

在一些实施例中,每一数据存储单元410以及/或每一预测存储单元420被配置以储存多个位。举例来说,电阻式非挥发存储器阵列300可使用多个多层存储单元。多层存储单元使用三个或更多不同电阻状态来储存两个或更多数据位。例如,具有四个不同电阻状态的一个多层存储单元可储存两个位,每一位使用两个电阻状态来表示逻辑“0”以及“1”。然而,增加每一存储单元所储存的位数量可能会导致较大的位错误率,因此,需要使用错误校正编码来检测并校正这些错误。

图5表示根据本发明一实施例的存储器系统500的方块图。如图5所示,存储器系统500包括晶体管式非挥发存储器阵列100、电阻式非挥发存储器阵列300、存储器控制器510、模拟电路520以及逻辑电路530。本说明书中的元件数量与配置用以便于说明的示范例。本领域人员可理解在不脱离本发明实施例的教示下,可采用其他的配置以及其他的元件数量。在一例子中,晶体管式非挥发存储器阵列100、电阻式非挥发存储器阵列300、存储器控制器510、模拟电路520以及逻辑电路530可形成在同一半导体芯片上、在包含于相同IC封装中的不同半导体芯片上、在包含于不同IC封装中的不同半导体芯片上或任何已知的配置上。在另一例子中,存储器控制器510可控制多个电阻式非挥发存储器阵列300以及/或多个晶体管式非挥发存储器阵列100。在又一例子中,不同的存储器控制器510可控制晶体管式非挥发存储器阵列100以及电阻式非挥发存储器阵列300。

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

输入/输出介面511接收来自外部来源的输入信号,且对输入数据进行转换,使得输入数据能被存储器控制器510内的元件所了解且接受。举例来说,输入/输出介面511可接收存储单元位址、数据、命令(例如读取命令以及写入命令)等等。

在一读取操作中,输入/输出介面511将列坐标与行坐标分别传送至列解码器512以及行解码器513。列解码器512对列坐标进行解码,且提供感测电压至晶体管式非挥发存储器阵列100或电阻式非挥发存储器阵列300中的一对应字线。当自晶体管式非挥发存储器阵列100中读取时,感测电压使能了连接至此字线的每一晶体管式非挥发存储单元110的FGMOS控制栅极。当自电阻式非挥发存储器阵列300中读取时,感测电压使能了连接至此字线的每一电阻式非挥发存储单元310的选择元件312。

行解码器513对行坐标进行解码,且将一对应的位线连接至感测放大器与写入驱动器514。感测放大器与写入驱动器514包括一读取电路以及一写入电路。当自晶体管式非挥发存储器阵列100中读取时,读取电路透过位在相应字线/位线交叉处的晶体管式非挥发存储单元110的FGMOS漏-源极路径来量测电流。当自电阻式非挥发存储器阵列300中读取时,读取电路透过位在相应字线/位线交叉处的电阻式非挥发存储单元310的电阻储存元件314来量测电流。

感测放大器与写入驱动器514放大量测到的电流,并提供输出至输入/输出介面511。输入/输出介面511将此输出传送至一外部目标,或者是保留此输出直到一外部来源要求为止才传送出。

在一些实施例中,连接至相同被使能字线的多个晶体管式非挥发存储单元110或 电阻式非挥发存储单元310可在一单一读取操作中被读取。当列解码器512提供感测电压至对应的字线时,在此字线上的每一晶体管式非挥发存储单元110或电阻式非挥发存储单元310被使能。接着,读取电路透过与这些存储单元连接的多个位线上的每一被使能的晶体管式非挥发存储单元110或电阻式非挥发存储单元310来量测电流。

在写入操作的一实施例中,输入/输出介面511接收来自一外部来源的数据,以及接收数据将被储存所在的晶体管式非挥发存储单元110位址或电阻式非挥发存储单元310位址。输入/输出介面511将此位址转换为列与行坐标,且分别将这些坐标传送至列解码器512与行解码器513。列解码器512对列坐标进行解码,且提供一写入电压至一对应的字线。列解码器512对列坐标进行解码,且将一对应位线连接至感测放大器与写入驱动器514。输入/输出介面511传送指令至感测放大器与写入驱动器514,以将“0”或“1”写入至位于使能的字线与位线交叉处的晶体管式非挥发存储单元110或电阻式非挥发存储单元310。当写入至晶体管式非挥发存储单元110中一者时,感测放大器与写入驱动器514的写入电路根据是“1”还是“0”将被储存,来汲取在FGMOS浮栅上的电荷或将电荷累积在FGMOS浮栅。当写入至电阻式非挥发存储单元310中一者时,感测放大器与写入驱动器514的写入电路根据是“1”还是“0”将被储存,来改变电阻元件312的电阻值为高电阻状态或低电阻状态。在写入操作的另一实施例中,输入/输出介面511接收来自外部来源的数据,以及接收数据将被储存所在的晶体管式非挥发存储单元110与电阻式非挥发存储单元310位址。如此一来,感测放大器与写入驱动器514可将接收到的数据同时地写入至晶体管式非挥发存储器阵列100与电阻式非挥发存储器阵列300。

在写入操作的又一实施例中,感测放大器与写入驱动器514将储存在晶体管式非挥发存储器阵列100的数据写入至电阻式非挥发存储器阵列300,以及/或反之亦然。在此实施例中,存储器控制器510包括刷新控制器515。刷新控制器515藉由读取储存在电阻式非挥发存储器阵列300的数据且将其写入至晶体管式非挥发存储器阵列100,来备份储存在电阻式非挥发存储器阵列300的数据。为了备份储存在电阻式非挥发存储器阵列300的数据,刷新控制器515分别传送列坐标与行坐标至列解码器512与行解码器513。列解码器512与行解码器513分别对列坐标与行坐标进行解码,且感测放大器与写入驱动器514的读取电路读取储存在电阻式非挥发存储器阵列300的一对应数据存储单元410中的数据。刷新控制器515传送备份数据存储单元210位址至感测放大 器与写入驱动器514。感测放大器与写入驱动器514的写入电路将读取自电阻式非挥发存储器阵列300的数据,写入至晶体管式非挥发存储器阵列100的对应备份数据存储单元210。

刷新控制器515更传送指示符存储单元220位址以及指示符位至感测放大器与写入驱动器514。感测放大器与写入驱动器514的写入电路将指示符位写入至晶体管式非挥发存储器阵列100的对应指示符存储单元220。这些指示符位用于指示备份数据是否成功地被写入至晶体管式非挥发存储器阵列100。例如,具有逻辑值“0”的指示符可指示备份数据成功地被写入至晶体管式非挥发存储器阵列100,而具有逻辑值“1”的指示符则可指示备份数据没有成功地被写入至晶体管式非挥发存储器阵列100,或者相反。指示符位的各种配置可用来指示备份数据是否成功地被写入至晶体管式非挥发存储器阵列100。举例来说,一个指示符位可用来指示所有的备份数据是否成功地被写入至晶体管式非挥发存储器阵列100。在另一例子中,一个指示符位可用于每一储存单位,以指示备份数据的储存单位是否成功地被写入至晶体管式非挥发存储器阵列100。

当由于一个或多个备份数据存储单元210无法被改变而导致备份数据无法被写入至晶体管式非挥发存储器阵列100时,可能发生非成功的写入操作。无法被改变的备份数据存储单元210的例子包括被写入保护或被磨损的备份数据存储单元210。存储单元磨损是因为重复写入周期操作使得晶体管式非挥发存储单元110中隔离FGMOS浮栅的氧化层失效所导致的。随着氧化层退化,浮栅于一延伸期间维持电荷的能力减少,直到FGMOS无法再使用不同的电荷位准来表示逻辑状态。当由于一个或多个由刷新控制器515所提供的备份数据存储单元210位址为非有效位址而导致备份数据无法写入至晶体管式非挥发存储器阵列100时,也可能导致非成功的写入操作。

在一些实施例中,备份数据是否已成功地写入至晶体管式非挥发存储器阵列100可经由感测放大器与写入驱动器514通知刷新控制器515。假使备份数据已成功地写入至晶体管式非挥发存储器阵列100时,刷新控制器515提供一或多个指示符位给感测放大器与写入驱动器514,指示符位指示备份数据已成功地被写入且因此可被使用来刷新储存在电阻式非挥发存储器阵列300中的数据。假使备份数据没有成功地被写入至晶体管式非挥发存储器阵列100,则刷新控制器515提供一或多个指示符位给感测放大器与写入控制器514,指示符位指示备份数据没有成功地被写入且因此无法使用来刷 新储存在电阻式非挥发存储器阵列300中的数据。

二者则一地,或者是另外,刷新控制器515将未成功写入的备份数据重新写入至晶体管式非挥发存储器阵列100。在一实施例中,假使一个指示符位用来指示所有的备份数据是否被成功地写入至晶体管式非挥发存储器阵列100,当此指示符指示出备份数据没有被成功地写入至晶体管式非挥发存储器阵列100时,刷新控制器515将储存在电阻式非挥发存储器阵列300中的全部数据重新写入至晶体管式非挥发存储器阵列100。在一实施例中,假使一个指示符位用来指示备份数据的每一储存单位是否成功地被写入至晶体管式非挥发存储器阵列100,刷新控制器515仅重新写入具有指示出数据的储存单位未成功写入的一指示符位的储存单位中的数据。

刷新控制器515通过读取储存在晶体管式非挥发存储器阵列100的备份数据并将其写入至电阻式非挥发存储器阵列300的方式,来刷新储存在电阻式非挥发存储器阵列300中的数据。为了刷新储存在电阻式非挥发存储器阵列300中的数据,刷新控制器515分别传送列坐标与行坐标给列解码器512与行解码器513。列解码器512与行解码器513对坐标进行解码,且感测放大器与写入驱动器514的读取电路对储存在晶体管式非挥发存储器阵列100的对应备份数据存储单元210内的数据进行读取。刷新控制器515将数据存储单元410位址传送给感测放大器与写入驱动器514。感测放大器与写入驱动器514的写入电路将读取自晶体管式非挥发存储器阵列100的数据写入至电阻式非挥发存储单元310的对应数据存储单元410。

在一些实施例中,刷新电路515在刷新储存在电阻式非挥发存储器阵列300中的数据之前,读取储存在晶体管式非挥发存储器阵列100的指示符存储单元220中的指示符位。刷新控制器515读取指示符位,且判断此指示符位是否仍然有效。当指示符翻转了逻辑状态(例如,由逻辑“0”至逻辑“1”,或相反)或恶化时,指示符则变为无效。举例来说,由于指示符存储单元220暴露在高温或EMI下,导致发生了翻转的逻辑状态或恶化。刷新控制器515藉由使用错误校正技术来判断指示符位是否翻转逻辑状态或是否变恶化,错误校正技术例如有循环冗余检测(cyclic redundancy check,CRC)、重复码(repetition code)、同位、核对和(checksum)或错误校正编码。

储存在指示符存储单元220的指示符位的有效性作为储存在晶体管式非挥发存储器阵列100中的备份数据的品质代理。有效的指示符位指示出储存在晶体管式非挥发存储器阵列100的备份数据的品质很可能没有降低。相反地,无效的指示符位指示出 储存在晶体管式非挥发存储器阵列100的备份数据的品质很可能已经降低,且应该无法使用来刷新储存在电阻式非挥发存储器阵列300中的数据。如此一来,假使刷新控制器515读取指示符位并判断出一个或多个指示符位已变为无效(即翻转状态或变为恶化),刷新控制器515则不使用储存在晶体管式非挥发存储器阵列100的备份数据来刷新储存在电阻式非挥发存储器阵列300的数据。储存在指示符存储单元220的指示符位的总数量可小于储存在备份数据存储单元210中备份数据位的数量。如此一来,使用少量的指示符位来作为关于大量备份数据位的品质代理,这改善了存储器系统效率,并减少错误检测所需要的存储器系统资源量。

在一些实施例中,存储器控制器510包括预测控制器516。预测控制器516检测出储存在数据存储单元410中的数据的有效数据恶化以及/或系统数据飘移。举例来说,预测控制器516读取储存在预测存储单元420中的预测位且判断储存在预测存储单元420中的缺陷预测位的数量。预测控制器516使用错误校正编码来判断预测位为有缺陷的,错误校正编码例如包括汉明码、波士-削大立-胡昆罕电码(Bose-Chaudhuri-Hocquenghem code,BCH code)、同位、李德索罗门编码(Reed-Solomon code)、涡轮码(Turbo code)、低密度同位核对码(low-density parity-check code,LDPC)、卷积码(convolutional code)或任何已知的其他错误校正编码。假使缺陷的预测位的数量等于或超过缺陷的预测位的一临界数量时,预测控制器516则初始化储存在数据存储单元410中的数据的刷新。

缺陷的预测位的临界数量的示范例可以是储存在预测存储单元420中预测位数量的50%。因此,在此例子中,假使有32个预测位储存在预测存储单元420中,当预测控制器516判断出缺陷的预测位的数量等于或超过16个位时,预测控制器516则初始化刷新。

预测控制器516藉由传送一刷新命令给刷新控制器515来初始化数据刷新。刷新控制器515根据前述的各种刷新操作来执行储存在数据存储单元410的数据刷新。

模拟电路520连接存储器控制器510的元件,例如,列解码器512、行解码器513以及感测放大器与写入控制器514。模拟电路520可包括各种不同类型的模拟电路元件,例如除法器、比较器、电流镜、滤波器、放大器、电流/电压源或参考产生器、限流器、电压调节器、电荷泵或其他已知的模拟电路。模拟电路520执行各种功能,例如产生用来编程或抹除存储单元110与310的高压脉波、产生存储单元读取电流、执 行存储器系统500的内建自我测试、产生参考电流、比较参考电流与存储单元读取电流以判断存储单元110与310的逻辑状态等等。

逻辑电路530连接存储器控制器510的元件,例如输入/输出介面510、行解码器513以及感测放大器与写入驱动器514。逻辑电路530可包括各种数字电路元件,例如加法器、减法器、多工器、解多工器、编码器、解码器以及其他已知的数字逻辑电路。逻辑电路530执行各种功能,例如控制存储器读取与写入逻辑、执行存储器系统500的内建自我测试、对接收来自技术员/工程师或与存储器系统500连接的其他系统的命令和指令进行解码、多工与解多工存储单元110与310位址等等。

图6表示根据本发明一实施例的方法600的流程图。举例来说,此方法600可实施来管理存储器系统的数据。在一些实施例中,方法600可以藉由一存储器系统来实施,例如图5所示的存储器系统500。

在一些实施例中,方法600包括读取储存在第一非挥发存储器阵列的数据(步骤610)。此第一非挥发存储器阵列可以是由任何前述的电阻式非挥发存储器所形成的电阻式非挥发存储器阵列(例如,图3~图5中的电阻式存储器阵列300)。包括在存储器系统中的存储器控制器(例如,图5中的存储器控制器510)读取储存在第一非挥发存储器阵列的数据存储单元(例如,图4中的数据存储单元410)中的数据。存储器控制器以各种储存单位来读取数据,储存单位例如有分页、存储块、存储区段、字或任何已知的储存配置。每一储存单位可包括任何数量的数据位。

在一些实施例中,存储器控制器包括一刷新控制器(例如,图5的刷新控制器515),刷新控制器读取储存在第一非挥发存储器阵列中的数据。举例来说,刷新控制器反应于一接收命令、反应于存储器系统的开机、反应于既定数量的开机或反应于既定数量的接收指令,来读取储存在第一非挥发存储器阵列中的数据。此外,刷新控制器可在一高温事件之前读取储存在第一非挥发存储器阵列中的数据。

在一些实施例中,方法600包括将读取自第一非挥发存储器阵列的数据(步骤610)以及一指示符位写入至第二非挥发存储器阵列(步骤620)。第二非挥发存储器阵列可以是由前述的任何晶体管式非挥发存储器所形成的晶体管式非挥发存储器阵列(例如,图1、图2与图5的晶体管式非挥发存储器阵列100)。存储器控制器或刷新控制器藉由将备份数据存储单元(例如,图2的备份数据存储单元210)的位址传送至包含在存储器控制器内的感测放大器与写入驱动器(例如,图5的感测放大器与写入驱动器 514),来将数据写入至第二非挥发存储器阵列。感测放大器与写入驱动器的写入电路将读取自第一非挥发存储器阵列的数据存储单元的数据写入至第二非挥发存储器阵列中的对应备份数据存储单元。如此一来,写入至第二非挥发存储器阵列的数据变成储存在第一非挥发存储器阵列的数据的备份数据。

存储器控制器或刷新控制器可将指示符位写入至包含在第二非挥发存储器阵列中的一指示符存储单元(例如,图2的指示符存储单元220)。此指示符位指示出备份数据是否成功地写入至第二非挥发存储器阵列的备份数据存储单元。在一些实施例中,存储器控制器或刷新控制器将多个指示符位写入至包含在第二非挥发存储器阵列中的多个指示符存储单元。每一指示符位指示出备份数据的每一储存单位是否成功地写入至第二非挥发存储器阵列。

存储器控制器或刷新控制器判断写入至第二非挥发存储器阵列的指示符位是否为有效的(步骤630),且在存储器系统操作的不同阶段中执行此步骤。举例来说,存储器控制或刷新控制器可在下列的不同阶段判断指示符位是否有效,以响应在一高温事件之后的存储器系统的开机、在一高温事件之后或在既定数量的开机之后的一接收命令、响应在一既定数量的温度事件之后的一接收命令或响应在一既定数量的温度事件之后的开机。在一些实施例中,存储器控制器或刷新控制器判断指示符位是否有效,以响应在各既定数量的温度事件之后的开机或接收命令。因此,存储器控制器或刷新控制器反应于在三个高温事件的每一者之后的存储器系统的每一次开机,来判断指示符位是否有效,且举例来说,接着反应于随后的开机而停止判断指示符位是否有效。如此一来,当例如在生产或制造测试设定中知道了存储器系统将会遭遇到的高温事件的数量时,存储器控制器或刷新控制器可藉由限制在已知的高温事件数量之后对于开机的判断,来判断指示符位是否有效,直到存储器系统离开生产或制造工厂为止。高温事件包括环境压力筛选热循环、波焊程序、回焊焊接程序、高加速寿命试验或存储器系统的高温储存或其他已知的高温事件中的至少一者。在一些实施例中,当存储器控制器或刷新控制器将多个指示符位写入至指示符存储单元时,存储器控制器或刷新控制器判断与数据的每一储存单位相关的指示符位是否有效。

当其判断出指示符位有效时(即步骤630的结果为是),方法600包括刷新储存在第一非挥发存储器阵列的数据(步骤640)。刷新储存在第一非挥发存储器阵列的数据的步骤包括以写入至第二非挥发存储器阵列的备份数据(取自步骤620)来取代储 存在第一非挥发存储器阵列的数据。如同使用前述示例的各种写入操作中的一者的部分刷新程序,存储器控制器读取存在第二非挥发存储器阵列的备份数据。存储器控制器藉由使用示例的各种写入操作中的一者,来将备份数据写入至第一非挥发存储器阵列。存储器控制器或刷新控制器在存储器系统操作的不同阶段来刷新数据。举例来说,存储器控制器或刷新控制器可在判断出指示符位为有效(步骤630-是)之后立刻刷新数据。在另一例子中,存储器控制器或刷新控制器可反应于存储器系统的随后开机(例如,下一次开机)或在存储器系统的随后闲置模式(例如,下一闲置模式)期间来刷新数据。

在一些实施例中,存储器控制器或刷新控制器系写入用于写入至第二非挥发存储器阵列的所有备份数据的一个指示符位,在此情况下,存储器控制器或刷新控制器藉由将所有的备份数据写入至第一非挥发存储器阵列来刷新储存在第一非挥发存储器阵列的数据。在其他实施例中,存储器控制器或刷新控制器系将多个指示符位写入至包含于第二非挥发存储器阵列的多个指示符存储单元中,在此情况下,存储器控制器或刷新控制器藉由仅写入具有有效指示符位的备份数据的储存单位,来刷新储存在第一非挥发存储器阵列的数据。

当判断指示符位为无效时(即步骤630的结果为否),存储器控制器或刷新控制器则不会刷新储存在第一非挥发存储器阵列中的数据。当指示符位翻转逻辑状态或变恶化时,指示符位为无效,而导致无效的因素例如为高温事件。一无效的指示符位可指示出储存在第二非挥发存储器阵列的备份数据的品质降低且不应被用来刷新储存在第一非挥发存储器阵列中的数据。如此一来,当存储器控制器或刷新控制器写入用于写入至第二非挥发存储器阵列的所有备份数据的一指示符位且判断出此指示符位已变为无效时(步骤630-否),存储器控制器或刷新控制器不会将写入至第二非挥发存储器阵列的任何备份数据写入至第一非挥发存储器阵列的数据存储单元。当存储器控制器或刷新控制器将多个指示符位写入至包含于第二非挥发存储器阵列的多个指示符存储单元时,存储器控制器或刷新控制器则不会写入具有无效指示符位的备份数据的储存单位。

图7表示根据本发明一实施例的方法700的流程图。举例来说,此方法700可实施来管理存储器系统的数据。在一些实施例中,方法700可以一存储器系统来实施,例如图5所示的存储器系统500。此外,在依些实施例中,部分的方法600与700可分别地 执行或一起执行、或部分结合来执行。

在一些实施例中,方法700包括判断储存在第一非挥发存储器阵列的预测位中的缺陷位的数量(步骤700)。存储器系统所包含的存储器控制器(例如,图5的存储器控制器510)读取储存在第一非挥发存储器阵列(例如,图3~图5的电阻式非挥发存储器阵列300)的多个预测存储单元(例如,图4的预测存储单元420)的多个预测位。存储器控制器以各种储存单位来读取预测位,储存单位例如有分页、存储块、存储区段、字或任何已知的储存配置。每一储存单位可包括任何数量的预测位。存储器控制器更读取储存在第一非挥发存储器阵列中的错误校正编码(error correction code,ECC)位,且使用ECC位来检测在预测位中的错误。存储器控制器藉由判断哪些预测位具有因为高温度或EMI所导致的翻转逻辑状态(例如,由逻辑“1”变为逻辑“0”,或者相反),来检测错误。储存的ECC位可包括汉明码、BCH编码、同位、李德索罗门编码、涡轮码、LDPC、卷积码或任何已知的其他错误校正编码。在一些实施例中,存储器控制器判断每一储存单位中的缺陷数据位的数量。

存储器控制器在存储器系统的不同操作阶段判断缺陷预测位的数量。举例来说,存储器控制器可在以下操作阶段判断缺陷预测位的数量:于读取周期期间反应于高温事件之后存储器系统的开机、高温事件之后的存储器系统的闲置模式期间,或反应于高温事件之后的接收命令。在闲置模式的例子中,存储器控制器在一单一闲置模式期间或预设数量的闲置模式期间中判断缺陷预测单元的数量。如此一来,存储器控制器可在对于系统效能影响最小的时候执行错误检测。在开机的例子中,存储器控制器可反应于一单一开机或预设数量的开机来判断缺陷预测位的数量。预设数量的开机可使用各种准则来决定。举例来说,开机数量可根据在生产及/或制造期间,存储器系统将遭遇到的高温事件之后的开关循环(power cycle)的预计数量来决定。如此一来,在生产/制造期间预先载入至存储器系统的数据中的任何系统缺陷,可在离开生产工厂之前被自动地校正。在接收命令的例子中,存储器系统可接收来自于与存储器系统联系耦合的一处理系统、来自于例如为系统操作者或测试技术员/工程师的一使用者以及/或来自于例如为开发或生产测试系统的一测试系统的命令。此命令可以是执行错误检测与校正的命令、一读取命令、一系统重置命令、一开机重设命令或一唤醒命令。

在一些实施例中,存储器控制器包括预测控制器(例如,图5的预测控制器516), 其判断在储存于第一非挥发存储器阵列的预测位当中的缺陷位的数量。举例来说,预测控制器自第一非挥发存储器阵列读出预测位,且判断哪些预测位是有缺陷的。

在一些实施例中,方法700包括比较缺陷预测位的数量与缺陷预测位的一临界数量(步骤720)。此临界数量可根据一些因素来决定,这些因素例如包括存储器系统的可靠度需求、安全性需求、客户端需求、存储器系统资源的可用性、第一非挥发存储器阵列的尺寸等等。在一例子中,缺陷预测位的临界数量等于储存在第一非挥发存储器阵列的预测存储单元中预测位的50%。

存储器控制器或预测控制器判断缺陷预测位的数量是否等于或大于缺陷预测位的临界数量(步骤730)。当判断出缺陷预测位的数量等于或大于缺陷预测位的临界数量(步骤730-是),方法700包括刷新储存在第一非挥发存储器阵列的数据(步骤740)。因此,举例来说,在具有32个预测位储存在第一非挥发存储器阵列的预测存储单元且临界数量等于储存的预测位的50%的情况下,当存储器控制器或预测控制器判断出缺陷预测位的数量等于或大于16个位时,存储器控制器或预测控制器则初始化刷新操作。

存储器控制器或预测控制器可根据方法600的步骤640中所讨论的数据刷新方式来刷新数据。存储器控制器或预测控制器可在存储器系统操作的不同阶段刷新数据。举例来说,存储器控制器或预测控制器可在判断出缺陷预测位的数量等于或大于临界数量时(步骤730-是),立刻刷新数据。在另一例子中,存储器控制器或预测控制器可反应于存储器系统的随后开机(例如,下一次开机)或在存储器系统的随后闲置模式(例如,下一闲置模式)期间来刷新数据。

当判断出缺陷预测位的数量少于缺陷预测位的临界数量时(步骤730-否),存储器控制器或预测控制器则不会执行数据刷新,且不会将储存在第二非挥发存储器阵列的数据写入至第一非挥发存储器阵列(步骤750)。

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

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