原位内存退火的制作方法

文档序号:6770671阅读:383来源:国知局
专利名称:原位内存退火的制作方法
技术领域
本文的公开涉及数据存储技术。
背景技术
编程和擦除操作在闪存和其它浮动栅内存的氧化物绝缘体和电荷捕获层中产生累积的缺陷,限制了这类产品的使用寿命且使它们显现为极不适于需要频繁、不受限制的写操作的应用。已经证实通过将浮动栅内存单元加热至高于常规操作范围但是低于容许的最大值的温度,可从氧化物和电子捕获层移出以其它方式永久捕获的载子,实际上,使缺陷退火并且改进了寿命。附图简述在附图的图示中,本文的公开是以实例的方式且不是限制性的方式来图解说明, 且其中相同参考符号指类似元件,且其中

图1图解说明包括主机处理器或控制器和可退火内存系统的原位可退火系统的实施例;图2A更详细地图解说明图1的后台退火序列;图2B图解说明图2A的通用退火序列的特定情形;图3图解说明示例性后台退火循环,其中对具有五个可独立退火内存装置的内存子系统内的每个内存装置依序进行选择、被动撤出、主动撤出和退火阶段;图4图解说明退火控制器内对应于扩大的撤出紧急事件的撤出状态的示例性进程;图5图解说明在内存访问间隔期间且根据图4的撤出状态的图1的退火控制器的示例性操作;图6A图解说明支持退火的内存控制器的通用实施例和其可支持的各种可退火内存拓扑;图6B图解说明可在其中部署图6A的可退火内存系统的通用数据处理系统;图7A图解说明运行时间可退火内存系统的实例,该运行时间可退火内存系统由经由各自点对点数据链路而耦合至一组闪存内存装置的闪存形成;图7B图解说明在图7A的闪存控制器和闪存内存子系统的内容背景下退火目标和替代存储器形成虚拟装置的配对;图7C和图7D图解说明相对于图7A和图7B的闪存控制器和闪存内存子系统内的新数据写、数据更新和数据读取的细节;图8图解说明执行新写操作和更新操作时图7A和图7B的内存子系统内的状态中的示例性变化;图9A和图9B图解说明可在图7A的内存系统内执行以将数据从退火目标主动撤至替代存储器的示例性数据传送操作;图IOA图解说明根据循环式进程、固定切片指派的实施例的退火进程和切片指派;图IOB图解说明根据振荡式进程、固定切片指派的实施例的退火进程和切片指派;图IOC图解说明根据循环式进程、可变切片指派的实施例的退火进程和切片指派;图IlA图解说明能够管理运行时间变化的操作组且对应参考图10A-10C所述的切片指派的闪存控制器的更详细实施例;图IlB图解说明图IlA的共享命令/地址架构的重要性;图IlC图解说明替代的基于队列的内存架构,其中通过专用命令/地址路径将闪存控制器耦合至内存队列的每个闪存内存装置;图IlD图解说明页面表的实施例,该页面表可用来支持图IlC的闪存控制器中所展示的装置特定命令/地址产生和分层式命令/地址架构;图12是图解说明可响应主机请求或自发产生的内存访问命令而由图7A-7B (和图 11)的闪存控制器进行的操作的示例性序列的流程图;图13图解说明可退火多点式内存系统的实施例;图14图解说明图13的可退火多点式内存系统的示例性操作,其中复合存储器是用来存储从要退火的装置撤出的数据;图15图解说明可退火多通道内存系统的实施例和其中的装置的示例性配对;图16图解说明可退火多通道内存系统内的配对装置的替代做法;图17图解说明图15的可退火多通道内存系统的示例性操作,其中复合存储器是用来存储从要退火的装置撤出的数据;图18图解说明多通道内存控制器的实施例,其具有切换式内存I/O电路以促进通道至通道数据传送和因此的速度数据再定位操作;图19图解说明图18的多通道内存控制器内的替代通道至通道数据再定位操作, 其中从一个内存通道上的退火目标读取的数据被暂时存储在控制器核心内且接着稍后被写至另一内存通道上的替代存储器;图20A-20E图解说明内存架构内的退火操作,该内存架构允许在将数据撤至一个备用装置的同时退火另一备用装置;图21A-21E图解说明内存架构内的退火操作,该内存架构允许在将数据撤至一个第三备用装置的同时退火两个备用装置,或者允许在一个第三备用装置内的退火操作的同时撤出两个备用装置;图22图解说明可在前台退火130中进行的操作的通用序列;图23A-23C图解说明可退火内存子系统或主机设备内的突发退火序列;图M图解说明示例性压缩退火操作,其可进行以在另外不具有备用装置的内存子系统内提供备用内存装置,或者出于平衡多个备用退火方法的目的而提供额外的备用内存装置;图25A图解说明示例性用户接口,其可结合前台和/或后台退火操作而呈现给运行时间可退火系统的人类操作员;图25B图解说明一个软件实用程序的通用流程图,其可执行用于显现图25A的用
9户接口且结合数据撤出和/或维护操作而提示操作员选择或指定选项;图沈图解说明具有系统中和封装中退火电路的组合的闪存内存系统的实施例; 且图27图解说明具有封装中加热结构的多晶片闪存内存封装的实施例。
具体实施例方式在多个实施例中公开了一种执行原位退火操作以延长使用性退化的组件的效用的系统。特定而言,尽管可更一般地应用所公开的电路和技术来增加寿命,或者改进其操作可通过退火操作或其它维护操作而得以改进的任何组件的操作,然而在由闪存内存组件形成的可退火内存子系统的内容背景中呈现若干实施例(“闪存内存”意指以电荷捕获原理操作的任何非易失性内存,包括浮动栅单元以及更为现代的结构,诸如SONOS(硅-氧化物-氮-氧化物-硅)和类似结构)。如将变清楚,在可或可不应用于替代类型的可退火装置,或甚至应用于未来发展的可退火内存装置中的可退火内存子系统内存在若干挑战。举例而言,在下文所述实施例中,一般假定经历退火操作(即经历“退火”)的内存装置将丢失一些或全部存储的数据,并且长期时间段内将无法用于读取和写访问。相应地,管理数据从要退火的内存装置至替代存储器的迁移(或撤出)是下文所述若干实施例的一个特征。如果不在如应用以改进失效电路(即,没有存储数据)的性能,或应用于能够通过退火而可靠地保留数据的内存组件的退火操作中应用这些假定,那么可忽略数据迁移,因此改变执行用来进行退火的操作的序列。相反,本文所述的数据迁移管理技术不限于退火应用且可更一般地应用于从内存系统内的一个或多个内存装置撤出数据,因此使内存装置能够“热”移动,隔离缺陷(或可疑)的内存装置,可能在内存装置内导致数据丢失的操作(维护或其它)的执行,可能使内存装置显现为暂时无法用于读取和/或写访问的操作的执行,等等。运行时间可退火系统的概述图1图解说明运行时间可退火系统100的实施例,其包括主机处理器或控制器101 和运行时间可退火内存系统103。运行时间可退火内存系统103本身包括一个或多个内存控制器105和支持退火的内存子系统107。首先关注支持退火的内存子系统107,退火能力可由退火电路实施,该退火电路整合在集成电路内存晶片内(晶片上退火电路),连同一个或多个集成电路内存晶片一起整合在集成电路封装内部(封装中退火电路),和/或形成为独立于集成电路内存晶片或封装但是设置成与其邻接(系统中退火电路)。一般而言, 退火电路包括任何或全部可以是晶片上、封装中或系统中的三个基本组件一个加热元件 (或多个元件),可对其供电以将集成电路加热至希望的退火温度或温度序列;电力控制电路,其以产生希望的退火温度的方式将电力输送至加热元件且用于使加热元件选择性通电或断电;和接收命令的接口电路,这些命令可应用于电力控制电路以执行退火操作(使加热元件通电且输送到达希望退火温度或退火温度序列所需的电力),和终止或中断退火操作(如果希望)。退火操作的持续时间在长度上可以是固定的(例如,响应执行退火操作的命令应用退火温度达预定时间),由明确的开始退火和停止退火命令控制,或编程至退火电路内的控制寄存器中。关于寄存器编程,易受外部控制或选择(例如,触发事件的退火温度、持续时间、频率、或规格等等)影响的退火操作的任何方面可由明确的命令或由形成接口或电力控制电路的部分的寄存器内的编程设置控制。在晶片上实施方案的情况中,可提供专用的晶片上退火电路且/或可重新应用额外现有电路组件以支持退火操作。作为一个实例,如PCT公布W02008、067494 (PCT申请PCT/ US2007/085979的公布)所述,可将字线或位线加倍成加热元件。在封装中实施方案的情况下,可将一个或多个单独控制的加热元件设置成邻近每个集成电路内存晶片(其中可存在一个或多个)以使在封装内能够有序(即,逐个晶片) 退火。或者,可由单个加热元件或共同供电群组的加热元件同时退火整组或整堆的封装中内存晶片。在任一情况中,电力控制和/或接口电路可和加热元件整合在一起或者单独提供(例如,设置在封装的外部或由该封装内的另一集成电路和/或离散组件提供)。举例而言,部分地或完全独立于内存装置(内存装置意指含有一个或多个内存晶片的集成电路内存晶片或封装)实施的退火电路可设置在下伏于形成内存子系统的一个或多个内存装置的印刷电路板(例如,母版、子板、线卡、内存模块等等)上,或者设置于个别内存装置或内存装置群组上或包封个别内存装置或内存装置群组的结构中。正如封装中退火电路,电力控制和/或接口电路可与退火电路整合在一起或单独提供。举例而言,可由内存控制器本身提供电力控制电路。更一般而言,不管是否是晶片上、封装中或系统中实施,皆可由用于将集成电路内存晶片加热至希望退火温度的任何可行的运行时间可控制电路实施内存子系统的退火能力。在运行时间可退火内存系统103内,内存控制器105经由命令路径110将内存访问命令、地址和控制信号发布给内存子系统107,并且经由数据路径108在内存控制器和内存子系统107之间传送对应的读取或写数据。可由内存控制器控制输出诸如装置识别符 (ID)信号或芯片选择信号的控制信号,以选择内存子系统107内的全部或一个子组的内存装置,而且控制器可额外地将各种维护命令(例如,刷新、擦除等等)和配置命令输出给内存子系统以管理其中的装置。尽管可由展现退火可消除磨损的任何内存技术实施支持退火的内存子系统107, 然而一般假定本文所述实施例含有闪存内存装置(NOR或NAND),其中分别通过编程、读取和擦除操作而写、读取和擦除数据。和其它类型的内存相比,在这种装置中数据没有被适当更新,而是在将最初编程(且现在失效)的数据标记为无效并且准备擦除的同时被重新写至替代位置。相应地,可在内存控制器105(其可以是闪存控制器、主机控制器或其它类型的内存控制器)内提供页面表111以追踪有效、空的和无效“页面”数据的物理位置,且因此隐藏来自主机处理器101或其它访问请求器的数据访问操作的潜在复杂性。尽管在下文所呈现的若干实施例中参考闪存内存,本文所述的各种数据撤出技术可更一般应用于以虚拟方式由任何类型的内存技术构成的任何内存系统,其中在系统操作期间从一个或多个内存装置撤出数据是令人希望或有益的,该任何内存系统包括(不具限制性)任何类型的易失性或非易失性随机访问内存(RAM),诸如动态RAM(DRAM)、 静态RAM(SRAM)、零电容器RAM(Z-RAM)、双晶体管RAM(TTRAM)、闪存内存(包括如在 SONOS (硅-氧化物-氮-氧化物-硅)、SHINOS (硅-Hi_k-氮氧化硅)等等中使用多晶硅或其它材料实施电荷存储层的非易失性内存技术)、铁电RAMO^RAM或FRAM)、磁阻式 RAM(MRAM)、可编程金属化单元(PMC-也称为导电桥接式RAM或CBRAM)、相变内存(PCM-也称为PrAM、PCRAM、C-RAM等等)、电阻式RAM(RRAM)、赛道式内存、纳米RAM(NRAM)等等。类似地,本文所述退火操作可应用于随时间展现退化的性能(例如,响应在其中执行的编程/ 擦除操作或其它操作事件),且其中可通过执行退火操作而改进性能的任何类型的内存技术。此外,在指令逻辑(即,处理器或执行机器可读媒体(即,软件、固件等等)中提供的指令的其它执行引擎)或专用硬件电路(例如,逻辑电路)方面不定期描述本文所呈现的多个实施例的实施方案。在全部情况中,可专门由指令逻辑、专门由专用硬件,或者由指令逻辑和专用硬件的任何组合实施这些实施例。如所展示,内存控制器105包括退火控制器109,该退火控制器和页面表111交互作用且选择性接合内存子系统107的退火功能。在所展示的特定实施例中,退火控制器109 经由用来传递内存命令(例如,闪存内存系统中的编程命令、擦除命令和读取命令)的相同命令路径110发布退火命令或控制信号112(例如,可用来控制退火操作(例如,温度规格、 寄存器编程等等)的开始退火、终止退火和任何其它命令)。在替代实施例中,可提供由一个或多个额外信号线形成的独立退火命令路径来传递退火有关的命令。此外,在替代实施例中,可完全或部分单独地实施退火控制器。主机处理器或控制器101负责运行时间可退火系统100的核心(或主要)功能,并且可由一个或多个专用或通用处理器和/或特定用途集成电路(ASIC)实施。作为一个实例,运行时间可退火系统100可形成通用计算机系统(例如,桌面工作站,或移动计算机), 或者专用电子装置,诸如蜂窝电话、全球定位系统装置(或类似手持装置)、音乐或视频播放器、机顶盒、视频显示器、网络设备或涉及数据处理的任何其它装置的处理基础。此外, 运行时间可退火系统100本身可以是较大型系统(例如,固态磁盘(SSD)、图形引擎(如图形卡中)、背平面互联网络切换或定路径装置内的刀片(例如,线卡,交换结构或处理器)) 内要采用的组件。在全部这些实施例中,主机处理器或控制器101可视为较大型系统的部分且因此和运行时间可退火系统本身有所不同。此外,较大型系统可包括任何数目的额外 (且未展示)组件,用于和操作器(例如,显示器、音频有关组件、键盘、小键盘、指针控制等等)交互作用、能够访问对大容量存储器和/或可换存储器、能够网络访问等等。前台退火和后台退火仍然参考图1,由退火控制器109引导的退火操作的序列可取决于是否在进行退火操作时继续或暂停核心系统操作而被宽泛地分类为后台退火或前台退火。在图1的内存系统内的通用后台退火序列(120)中,所选择(121)、撤出(123)和退火(125)的个别内存 IC( S卩,集成电路内存装置)或内存IC群组全部没有在实质上中断核心系统操作(S卩,在后台退火序列各处,系统的用户命令的操作继续执行或可用于执行)。相比之下,在通用的前台退火(130)中,当检测到(131)触发事件(即,触发退火操作)时暂停核心系统操作,且在撤出(133)、退火(13 和再装入(多个)内存IC时维持暂停。一般而言,后台退火操作是循序地进行,其中一个接着另一个地选择、撤出和退火内存IC(或者一个群组的内存 IC),而前台退火操作可并行地进行,成一个单元地撤出和退火整个内存子系统。然而,这些一般实施方案中也有例外。举例而言,当核心系统操作可在没有可退火内存子系统下继续时(即,来自内存子系统的全部数据可从诸如高速缓存内存或备份内存的替代或冗余源中得到,或否则是不需要的),可撤出并且立即退火整个内存子系统(在后台中)_本文称为并行退火的操作。相反,在前台退火中,尤其在用于可退火内存子系统的可用备份存储不足以备份内存子系统的整个内容时,可依序退火内存子系统内的内存IC或内存IC群组。此外,如果退火目标(要退火的内存装置)的内容原本就被备份为系统操作的部分(例如,如在RAID (廉价冗余磁盘阵列)系统中,退火目标的内容被复制至高速缓存内存或可从其它存储器装置恢复/产生),那么可在后台或前台退火中忽略内存撤出、将数据从该退火目标传送至替代存储器。后台退火图2A更详细地图解说明图1的后台退火序列120。在所展示的实施例中,以在方块121中选择退火目标(要退火的内存IC)、在方块123中任选地撤出所选内存IC,和最后方块125中的退火操作本身开始循序退火个别内存装置或内存装置群组。目标选择本文将选择要退火的个别内存装置或内存装置群组称为选择退火目标。退火目标选择可以固定顺序继续,例如以预定序列逐个通过内存子系统中的每个内存装置,或者可被编程或甚至动态确定。举例而言,当将内存子系统逻辑划分成具有不同类别使用(例如,非频繁写型长期数据存储对频繁写型短期存储)的多个存储区时,可编程选择序列可能是有所裨益的。 在这种情况中,可较不频繁地退火分配给涉及相对非频繁写(例如,长期非易失性数据存储)的使用类别的内存装置或在退火序列中将其一律忽略,因此使较高利用类别的剩余装置能有较高的退火频率。类似地,和较高使用类别的装置相比,可选择分配给中间使用类别的装置用于较小频率的退火。在一个实施方案中,举例而言,在退火控制器(即图1的元件 109)和/或个别内存装置内提供可编程寄存器以允许为每个存储区界定逻辑分区和相对或绝对退火频率的规格。举例而言,可通过指示退火优先权(例如,最大、中间、低、停用(没有退火)),或者在引导至受测存储区的每次退火之间内存子系统内要完成的退火循环的总数目(较低数目指示更频繁的退火选择)而指定相对退火频率。举例而言,可通过编程引导至存储区的退火操作之间要经过的时间间隔和/或编程/擦除操作的数目而指定绝对退火。可编程选择或退火频率可有所裨益的另一种情况是内存子系统由具有不同磨损分布(即,一些装置比相同使用等级的其它装置磨坏得更快)构成。在这些情况中,可直接 (例如,每N个编程/擦除循环退火一次)或间接地(可在基本输入-输出-服务(BIOS) 或确定适当退火频率的其它控制程序中查找的装置类型)由关联每个内存装置且用来编程内存控制器内的退火序列或频率的信息指定退火频率。举例而言,指示退火频率作为经过时间、编程/擦除循环和/或错误极限检测(例如,检测坏区块的极限数目、极限位错误率、编程/擦除故障等等的极限数目和/或其它错误极限)的函数的信息可被记录在每个内存装置内或记录在关联存储器(例如,如在内存模块中的串行存在检测内存中)内,且因此可在系统启动期间由内存控制器读取,并且由内存控制器或主机处理器使用以编程每个内存装置的退火安排(或退火序列)。动态确定的退火序列在内存使用方式在装置间大幅变化的应用中是有所裨益的, 但是难以预测或者控制。在这些情况中,可动态选择内存置,举例而言,以由使用等级(例如,引导至该装置的编程/擦除操作的数目)规定的顺序和/或时间来选择要退火的每个装置。如在上文讨论的可编程实施例中,使用度量可以是磨损引起的操作的数目的绝对计数或者可以考虑内存装置的磨损特征。举例而言,一千次编程/擦除循环(为其指定(或确定)每两千次编程/擦除循环的退火)可优先于承受每百千次编程/擦除限制的退火的内存装置的五十千次编程/擦除循环。正如装置选择顺序可以是固定、可编程或动态确定的,用来在每个所选IC内触发或起始退火操作(即,以撤出和退火(如果需要)继续)的事件可类似地为预定、编程或动态确定的。举例而言,预定触发包括以有规则安排的时间间隔起始每个所选装置的退火序列,在装置间连续起始退火序列(例如,从结束一个内存装置的退火操作后无延迟地继续开始下个内存装置的退火操作),或者响应检测到已经超过一个或多个编程极限(经过时间,使用(例如,编程擦除循环)、错误率或数量(例如,位错误率、编程错误率、坏区块数量等等))而在给定装置内起始退火序列。也可进行定期或不定期(或者用户/软件触发) 校准/测量以查知维护需要(例如,测量数据保持性、编程需要的编程循环的数目或时间, 或可用作退火或其它维护需要的实验性证据的装置的任何其它(多种)物理属性)。测量值或测试结果可和例如绝对、动态或编程的基准相比较以确定是否需要退火或其它维护操作。此外,可由测试(例如,装置自身自主或者响应来自控制装置的测量/校准/测试命令的测试)中的内存装置内的电路,由内存装置外部的电路,或者由内存装置内和外部的电路和/或指令逻辑的组合进行这类测量操作。作为可能出现的校准/测量的实例,控制器(例如,由专用电路、软件控制的处理器或专用电路和指令控制逻辑的任何组合实施)可定期地或在特定用户授意下测试内存装置的基准性能或性能变化;例如,可将成功写(编程)操作或擦除操作需要的内存装置的编程检验(“PV”)循环的数目(例如,平均值、最大值、最小值或其它测量值),和如指示剩余寿命或过度磨损的一个或多个极限相比较。也可使用和校准/测量数据有关的任何统计推导-作为非限制性实例,可单独或和其它测量值一起使用成功写或擦除(例如,用于页面或区块,或用于内存装置中随机取样的单元)使用平均PV循环需求的变化(例如,成功写或擦除操作需要的PV循环的标准差上的变化)。可使用和PV循环不同的单位(例如,使用经过的时间)测量成功写或擦除操作需要的时间。也可使用许多其它基准。可编程触发选择可包括基于寄存器且要触发退火操作的事件类型(经过的时间、 编程/擦除计数、错误检测、校准/测量等等)和/或对应极限等级的选择(例如,通过执行BIOS或其它程序代码的主机处理器)。举例而言,可响应所检索数据中的错误的极限数目或频率、无法成功执行程序和/或擦除操作、坏存储区块、所测量/测试的值无法符合基准等等而动态触发退火操作。撤出退火目标在触发退火操作后,将要保留供主机系统稍后使用且不是已经存在于替代源中或从其中重现的退火目标的内容复制(即,备份)至替代存储器-本文称为撤出退火目标的操作。参考图2A的方块123,在实际数据撤出之前,在12 选择或识别替代存储装置以建立用于撤出的数据的目的地(存储库)。替代存储器可以是可退火内存子系统内的一个或多个其它内存装置或者可以是独立的存储器,诸如内存控制器内的暂存内存(即,提供用于暂时数据存储的内存缓冲器),或者主机系统内或该主机系统外接的完全独立的存储器。 此外,可预定或动态选择替代存储器。作为一个实例,在上文所述的若干实施例中,替代存储器是支持退火(可退火)内存子系统内最新近退火的内存装置(且因此是空白(空的) 或者假定是空白的)。因此,在触发退火操作后,经由至最新近退火的内存装置(先前退火目标)的数据传送而撤出退火目标,且接着,在退火后,其自身变成下个退火目标的替代存储器。在动态选择替代存储器中,可相对于支持撤出选择用来形成替代存储器的被退火装置,和一个或多个内存装置或其它存储装置所需的容量,而评估可退火内存子系统内的其它内存装置或主机系统其它处的存储装置。在下文中更详细地讨论这些实施例的实例。被动和主动数据撤出数据撤出操作其本身可取决于是否将数据作为固有流通量方式的部分而分为被动式或主动式(被动撤出),且因此不需要内存访问操作仅仅再定位数据,或者通过专用检索和再定位操作(主动撤出)。在上文所讨论的若干实施例中,随着退火的需要变得愈发急迫,数据从退火目标撤出变得渐渐愈具侵略性,从没有数据撤出的时段继续至被动撤出,至主动撤出。在主动撤出阶段本身期间,初始可服从主机请求的访问进行数据撤出操作(例如,当没有主机请求要决定时,伺机执行撤出操作),之后接着扩大成更侵略性和用于访问内存子系统的主机请求竞争。此外,关于主动撤出的数据,操作可从较不新近访问的页面进行至最新近访问的页面,因此认为主动撤出页面在统计学上较不可能首先撤出为固有流通量方式的部分。下文更详细地讨论撤出操作的每个不同类型和它们之间的多种进程。被动撤出操作如124b所展示,被动撤出操作是能够通过逻辑至物理地址重新映射而将数据迁移至替代存储器的内存访问操作(一般由主机装置请求)。被动撤出一般通过操纵页面表条目而实现,并且涉及在退火目标内阻止写操作且代以重新引导这些操作至替代存储器, 以及当它们变失效时在该退火目标内检索页面。举例而言,在写操作寻求更新先前所写数据的情况(即,更新操作)中,更新的页面(即,将取代退火目标内的有效现有页面的写数据的页面)被写至替代存储器而非退火目标或者在其内编程,而且更新页面表使退火目标内的失效数据页面无效并且反映该替代存储器内新写的页面。除了相对于退火目标没有发生页面无效之外,以大致相同的方式将新写从退火目标重新弓丨导至替代存储器(将新数据写至替代存储器)。因此,虽然阻止退火目标内的新写一般涉及数据重新引导或分接,但是阻止操作防止在退火目标内加载数据且因此可视为被动撤出的部分。如12 处所展示,主动撤出操作涉及主机独立(即,由内存控制器自引导)数据检索和重写操作;将数据从退火目标移动(再定位)至替代存储器。主动撤出操作可根据这些操作是否服从主机请求访问可退火内存子系统或和其竞争而进一步表现为服从性或竞争性。一般而言,如果退火的需要不急迫(即,执行退火的限期不紧急),那么可在空闲 (备用)内存访问循环期间进行主动撤出,或者在资源允许时和主机请求的访问并行。相比之下,如果退火的需要更为急迫(例如,编程/擦除循环的数目逼近临界极限,错误率上升至临界等级等等),那么退火控制器可承受竞争性撤出,和出于可用内存访问循环而由主机起始的内访问器访问请求判优。因此,在一些情况中,退火控制器可在主机请求内存访问之前插入退火有关数据读取和写操作,以确保在数据丢失或其它装置故障之前撤出退火目标。一般而言,甚至在竞争性撤出案例中,尽管由于简短的间隔而处于可能较低的性能下, 退火控制器仍将至少在需要确保可继续核心系统操作的程度上服从主机请求的访问。退火事件仍然参考图2A,在确定已经使退火目标内的全部条目无效后(即,由于替代存储器中的更新而被动呈现为失效或者主动再定位至替代存储器),如125所展示,退火控制器可以退火目标起始实际退火操作(恢复性加热)操作。可在确认撤出后立即触发该退火操作,或者退火控制器可在开始退火操作之前等待一段安排的时间或发生预定事件。图2B图解说明图2A的通用退火序列的特定情形。在140开始,使内存子系统内的一个内存装置“脱机”(即,从响应主机读取/写请求而访问的内存装置组中移除),并且以空闲(脱机形成)装置取代该内存装置。在141,更新内存控制器内的页面表和I/O逻辑以将输入的写重新映射至新装置组(即,包括先前的脱机装置且排除当前脱机装置)。写新数据时撤回脱机装置(退火目标)内的页面(142)。如果在决定方块143确定脱机装置是空的,那么如在145所展示执行退火(即,加热)操作以完成退火事件的序列。之后,在 146,选择另一闪存装置作为退火目标(下个“脱机”装置)且以140开始重复退火事件序列。回至决定方块143,如果脱机装置不是空的,且如在147确定已经到达时间限制或其它极限(例如,经过的时间、日历时间、错误率、错误计数、编程-擦除循环的数目等等到达预定值),那么在148进行“垃圾收集”以将剩余数据从脱机装置移动至“暂存”装置(例如,暂存内存或替代存储器)。在148的垃圾收集/数据移动后或作为其部分,如149所展示更新页面表以反映新数据位置。在完全撤出脱机装置下,在145开始退火,之后接着在 146选择新退火目标且重复140处开始的退火序列。后台退火循环图3图解说明示例性后台退火循环,其中对具有五个可独立退火内存装置的内存子系统内的每个内存装置依序进行选择、被动撤出、主动撤出和退火阶段。除了在其中以一个序列对子系统中的内存装置进行选择、被动撤出、主动撤出和退火阶段的实施例之外,也可使用本文所呈现的原理来响应明确检测到的需要,例如察觉到的任何特定装置的剩余寿命而触发这些操作。在所展示的实施例中,五个内存装置M1-M5形成内存装置的一个“队列”(下文讨论其它内存拓扑,诸如多点拓扑和多通道拓扑内的退火操作)。更明确而言,并行访问动态选择的四个内存装置的子组(本文称为操作内存组(或操作组或装置组))作为一个单元, 其每个促成每个返回的读取数据值的四分之一额数且每个存储每个写数据值的四分之一额数。称为待命内存(或备用内存)的剩余装置并没有参与内存读取和写操作中,直至从操作内存中选择退火目标且开始数据撤出。在结束后台退火循环i_l后,举例而言,内存装置Ml组成待命内存(153)且内存装置M2-M5组成操作内存组151。在所展示的特定实例中,假定每个内存装置具有多个存储库155,该多个存储库加阴影以展示有效内容和不加阴影以指明空白或空的状态。以选择阶段Ieii开始后台退火循环“i”。此处,选择M2作为新退火目标且选择待命内存Ml作为替代存储器。如所展示,出于即将来临的撤出阶段期间的数据存储和检索的目的而使替代存储器和退火目标配对以形成虚拟装置(或虚拟装置对)。更明确而言,在被动撤出阶段16 期间,在将写操作(新写和更新)重新引导至替代存储器的同时,继续从退火目标读取输入且映射至该退火目标内的有效数据(由阴影存储器阵列标记)的读取请求。随着构成替代存储器(即,以如替代存储器(Ml)的阴影部分所展示重新引导成远离退火目标的条目,该阴影部分对应于退火目标(M》的无效(且因此未加阴影)的对应部分), 根据有效条目的位置在替代存储器和退火目标之间分开读取请求。因此,从内存控制器的观点来看,替代存储器和退火目标^1和似)组成单个虚拟装置,该单个虚拟装置负责将以其它方式由单个装置提供的数据值的四分之一额数(其它四分之三由M3-M5提供)。相应地,甚至在撤出退火目标时仍能无干扰(无缝)地进行主机请求内存访问。仍然参考图3,被动撤出(163^随着主机系统请求写操作和更新操作的常规序列的部分而继续在退火目标内使条目无效(“失效”)。某刻,随着退火的需要变得愈发关键(例如,到达指示更急迫的退火需要的极限),退火控制器过渡(扩大)至主动撤出阶段 (165,)且开始主动地撤出退火目标。在主动撤出阶段,退火控制器(内存控制器内的平衡命令和I/O电路)独立于主机控制器/处理器请求的命令发布命令,以从退火目标检索剩余数据并且将该数据写至替代存储器。这些“再定位”操作是由M2和Ml的存储器阵列内的分散区指示。如下文所讨论,数据传送(或再定位)可发生于统一的读取/写操作(即, 从目标读取/写至替代物)中,或者组成操作中,首先将数据从退火目标复制至内存控制器内的暂存内存(或者另一暂时存储源),且接着稍后写至替代存储器。此外,如所提及,主动再定位操作可从较不新近使用(较冷)的页面进行至较新近使用(较热)的页面。下文更详细讨论这个进程。考虑数据撤出阶段IeiBjniesi,可以看到,为了在虚拟装置的内存装置Ml和M2之间分开读取操作,内存控制器在操作内存组中包括Ml或M2。此外,在一个实施例中,在主动撤出阶段中的再定位变换(M2至Ml)中,内存控制器可排除除了虚拟装置(111和似)之外的全部内存装置。此外,在一般实施例中,由于系统会相继将每个内存装置M1-M5选择为退火目标,任何内存装置可能需要包括在引导至虚拟装置的专用变换中,或者被排除在分开读取之外。相应地,在全部这种情况中,内存控制器根据所执行的操作的特性、要访问的数据的位置和适当位置中的操作内存组而动态确定给定变换中要访问哪个子组的内存装置。 在一个实施例中,这种在相同队列(即,以其它方式访问作为单元的内存装置群组)内动态选择不同内存装置或内存装置子组的能力,是通过提供从内存控制器至该队列的每个内存装置的独立晶片选择线来达成,因此实现内存控制器仅仅包括任何分开读取、重新引导写或再定位变换的内存装置的所需子组(其可为单个装置)。如下文将更详细讨论,内存控制器可额外包括动态切换耦合至操作内存组的数据路线的电路,以便保存写至操作内存组或从其处读取的总数据字的个别部分的重要性的顺序。仍然参考图3,当退火控制器确定退火目标中没有剩余有效数据时(即,退火目标被完全撤出或是空的),替代存储器(Ml)和其它仍构成的内存装置(M3-M5)形成新的操作内存组,且在退火阶段可在退火目标(IC)内进行退火操作。在退火退火目标后,完成后台退火循环且新的空的且经过退火的内存装置(M》组成新的待命内存且可被采用作为以选择阶段161i+1开始的下个后台退火循环中的替代存储器。如上所讨论(且图3所展示),可立即在完成前述后台退火循环后,以预定或编程的安排或响应预先选择的事件(例如,极限使用、极限错误率或错误的数目等等)立即触发下个后台退火循环(其中选择M3 作为退火目标且M2作为替代存储器)。扩大撤出努力后台退火程序的一个一般目标是最小化对核心系统操作的影响且因此使退火序列清楚地呈现给系统用户。相应地,如上所提及,在若干实施例中,数据撤出努力尽可能长时间地被维持为被动操作,接着在更临近执行退火拉拔的限期时从被动撤出扩大成渐增的主动撤出。此外,在主动撤出期间,退火控制器可根据访问频率和/或新近度而在数据页面之间加以区分。即,如上所提及,退火控制器可由于更为频繁使用的“热”页面在更新操作中可能仍为失效的较高统计可能性而再定位较不频繁或新近访问的“冷”页面。图4图解说明退火控制器(例如,图1的元件109)内对应于扩大撤出急迫性的撤出状态的示例性进程。在被动撤出阶段180的开始处,撤出状态(由状态变量“EvacMode” 表示)的撤出状态在181被设置成“I^ssive”且维持该状态,直至在决定方块185确定方块183处更新的事件计数器(例如,经过时间计数器、错误计数器、编程/擦除计数器等等) 超过被动撤出极限。如182所展示,虽然在被动撤出状态中时,退火控制器使页面能够被撤出作为固有(例如,主机请求)流通量的部分,重新引导更新至替代存储器且使退火目标中的失效条目无效。在决定方块185确定事件计数器超过被动撤出极限后,退火控制器进入主动撤出阶段186,其中服从主机请求的内存访问主动地再定位数据。更明确而言,在187,将撤出模式设置成主动服从状态(Active. Defer)以能够主动而非服从性的数据再定位。因此,在没有或可忽略将造成操作流通量(即,主机请求内存访问)的干扰时的空闲循环或其它时间期间,退火控制器将数据从退火目标再定位至替代存储器。正如从被动过渡至主动服从状态,当在方块191中确定事件计数器(在方块189中更新)到达更为急迫的极限(Thresh-A) 时,退火控制器过渡至主动撤出状态192,其中再定位操作与主机请求内存访问抗衡(即, 与其竞争)。更明确而言,在方块193,撤出模式从Active. Defer过渡至Active. Compete 以指定主动竞争状态。而在主动竞争状态中,退火控制器在推迟主机请求的至少一些情况中与访问可退火内存子系统的主机请求竞争,努力确保在灾难性数据丢失(或者被视为界定撤出限期的一些事件,在该撤出限期下无法可靠地避免灾难性数据丢失)之前完成数据撤出。在确定完全撤出退火目标(决定方块1%)后,退火控制器在197复原至非撤出状态 (NoEvac)且在此处维持,直至在要退火的下个内存装置内起始数据撤出。在服从性或竞争性状态的主动数据撤出期间,由于操作流通量产生从退火目标引导至替代存储器的更新操作,被动撤出可继续。此外,如上简要讨论,当主动地撤出数据时, 退火控制器可在热页面和冷页面(举例而言,在页面表中标记为热或冷(或者具有甚至更细微的使用级别)的页面)之间加以区分并且首先撤出冷页面。在一个实施例中,举例而言,退火控制器通过每个active, defer和active, compete状态内的两个或多个子状态 (根据数据使用分级的数目)而过渡。在194为具有两个数据使用分级-“冷”页面和“热” 页面的实施例展示这个操作,其中冷页面是比“热”页面较不新近(或较不频繁)访问的页面。因此,在主动服从状态186期间,退火控制器从出冷页面的active, defer, cold状态进行至撤出热页面的active, defer, hot状态。在主动竞争状态期间,退火控制器可类似地从 active, compete, cold ^^iligM active, compete, hot #1。 $#,7令 / ^ ^^ηΤββ 应用于主动服从性或主动竞争性状态内。图5图解说明内存访问间隔期间且根据图4的撤出状态的图1的退火控制器(和涵盖的内存控制器)的示例性操作。如果内存访问间隔开始时没有内存访问请求要决定 (在决定方块201确定),那么认为对于该间隔而言内存子系统是空闲的,且如果退火控制器为主动撤出状态(Active. Defer或Active. Competitve,其二者在决定方块203中产生肯定确定),那么在方块205进行从退火目标至替代存储器的数据传送,其中对应地更新至页面表以使退火目标中的数据页面无效且在替代存储器中记录新条目。如下所讨论,这个操作可由各自数据路径至受影响的内存装置的切换耦合执行,因此允许所检索的数据有从退火目标至替代存储器的有效通路。如下文更详细讨论,这种“分路传送”操作可比在源和目的地内存内分离读取和写变换更快速地进行。或者,可执行个别读取和写变换,将数据检索至本地缓冲器或内存控制器内的暂存内存且接着之后立即(或在后个循环中)将所检索的数据写至替代存储器。仍然参考图5,如果在方块201检测到要决定的内存区访问请求且没有数据撤出正在进行(即,如决定方块207确定的EvacMode = NoEvac),那么内存控制器使用具有内存访问请求的逻辑地址对页面表编索引以确定要读取或写的物理地址009),且接着从指定存储位置读取数据或将数据写至该指定存储位置011)。在闪存内存子系统内的更新操作的情况中,内存控制器将使对应于逻辑地址的页面表条目无效,并且创建新条目来反映新写数据的物理地址(在闪存内存中执行重写的再呼叫一般涉及在新页面中编程更新数据, 以及为最后擦除的预先存在和新的失效页面定旗标)。由于没有数据撤出正在进行,可在页面表中指定为预先存在页面组成操作内存的相同内存装置用于更新的页面。仍然参考图5,如果确定要进行一次撤出(即,方块207的否定确定),那么取决于是否请求读取或写访问(在决定方块213中确定)而使用访问请求中提供的逻辑地址对页面表编索引,以确定所请求数据的物理地址(21 或者要写的存储位置的物理地址023)。 在内存读取的情况中,如果请求的数据位于暂存内存(如下文讨论的内存控制器内的暂时存储器)中且主动撤出正在进行中(在决定方块217中确定),那么在221,数据可从暂存内存检索且在从退火目标至分路读取/写替代存储器的同时返回至主机(且对应页面表更新以反映再定位的页面)。虽然图5中没有明确展示,但是内存控制器可不定期暂停执行主机请求的内存读取以便利再定位操作。举例而言,如果撤出状态为主动竞争性且内存控制器确定已经紧接着执行预定(或编程)数目个主机请求的读取操作,那么该内存控制器可在要决定的主机请求读取之前插入一个或多个数据再定位访问(从退火目标读取,写至替代存储器)。返回至决定方块217,如果请求的数据没有在暂存内存(或者其它替代源)中或者撤出模式是被动的,那么在方块219,数据从由页面表指示的内存位置(可退火内存子系统或暂存内存内)检索且返回至请求器。在内存写操作中,如果写目的地在退火目标或暂存内存内(决定方块225),那么在方块233更新页面表以将该写目的地重新映射至替代存储器。之后,将主机供应的写数据写至由页面表指示的替代存储器内的位置(方块23 。如果写目的地不在退火目标或暂存内存内(决定方块225处的否定确定)且撤出模式为主动竞争性,那么如2 所指示,可与退火目标和替代存储器内的再定位操作并行地将写数据写至暂存内存(例如,从退火目标分路读取/写至替代存储器),包含页面表更新。如果撤出模式为被动或主动服从(决定方块227的否定确定),那么如方块231所展示般将数据写至由页面表指示的内存位置。应当注意,图5所展示的内存控制器和退火控制器的特定操作相对于可支持的许多不同可退火内存拓扑和访问优先顺序策略而言是通用的。内存控制器的特定操作可与展示用来符合由眼前应用寄予内存子系统的特定需求的操作有所不同。图6A图解说明可退火内存子系统270的实施例,其包括通用的支持退火的内存控
19制器271和其可支持的各种可退火内存拓扑。内存控制器包括主机接口 275(即,主机输入 /输出(I/O))、内存接口 277 (内存I/O)、控制逻辑273 (包括退火控制器274)、页面表279、 暂存内存、读取/写数据路径观7以及主机侧和内存侧控制路径283和观5。经由主机接口 275(通过路径四幻而在内存控制器271内接收内存访问请求,且经由主机侧控制路径283而将其输送至控制逻辑273。该控制逻辑273将输入的主机访问请求转换成对应的内存访问命令、地址和控制信号,安排用来经由内存侧控制路径285和内存接口 277(且最后经由内存通道四0)而输出至内存子系统的命令。在主机请求写操作的情况中,经由主机接口 275接收写数据,且经由内部数据路径观7(本文也称为控制器的内部数据路线)将其转送至内存接口 277用于关联一个或多个对应内存写(或内存编程)命令的传送。如需在命令与数据传输之间经由内存通道290建立希望的时序关系时,写数据可在内存控制器 271内的暂存内存281或其它数据缓冲器内缓冲或排队。类似地,在主机请求的读取操作中,数据是经由内存接口 277而从内存子系统接收读取,且可在经由主机接口 275返回至请求主机之前,在内存控制器271内的暂存内存281或其它数据缓冲器中视需要缓冲。在一般实施例中,经由主机接口接收的读取和写请求包括(或与其关联)虚拟地址值,所述虚拟地址值经由控制逻辑和页面表操作而被转译成对应于内存子系统或其它存储资源(例如,暂存内存观1)内的特定存储区的物理地址。这种虚拟至物理地址转译在需要配合底层内存子系统的特定性时,使控制逻辑能够将给定虚拟地址映射至物理存储位置。因此,内存控制器虚拟化底层存储布置,对主机请求器隐藏关于管理内存子系统的复杂性。在内存子系统由不同内存拓扑的组合形成的情况中,举例而言,主机请求器可简单发布虚拟地址而不考虑管理要访问的各种不同类型的内存所需的底层细节。更一般而言,甚至在由统一类型的内存构成的内存子系统中,可对访问请求器隐藏内存访问复杂性和约束。 在闪存内存系统的情况中,举例而言,因为一般无法适当更新数据,所以可将引导至相同虚拟地址的主机请求写操作的序列映射至不同物理内存地址的序列,其中通过分配新物理地址以在将对应于先前所写数据的物理地址标记为无效,且最后通过擦除操作加以回收的同时保持新写的数据而实现每个连续写操作。参考图5和图6,在被动数据撤出的内容背景中,可通过代以将以其它方式被弓I导至退火目标的虚拟地址映射(重新映射)至替代存储器而实现数据从退火目标至替代存储器的重新引导。类似地,在虚拟装置对的情况中,可根据页面表条目在退火目标和替代存储器之间分开内存读取请求。最后,在主动数据撤出的情况中,可通过将数据从退火目标复制至替代存储器(在分路读取/写中或通过离散读取和写操作),且通过更新页面表以使退火目标内的条目无效并且指明替代存储器为数据的存储库而实现数据再定位。一般而言,全部这些数据撤出操作,以及退火目标和替代存储器的选择和退火事件本身的起始/终止是由控制逻辑273,且更特定而言是由控制逻辑内的退火控制器274管理。如上所提及,退火目标和替代存储器的选择以及数据在目标和替代物之间的移动可根据内存系统的拓扑而明显不同。根据拓扑,且参考图6A中不同内存子系统拓扑的通用图,内存系统可根据耦合在内存控制器与各自内存子系统之间的可独立控制的内存通道的数目而分类为单通道系统301或多通道系统330。因此,在单通道系统中,将单个内存子系统302耦合至内存控制器,且在多通道系统中,将多个内存子系统(331A、331B...)耦合至内存控制器。进一步界定拓扑分类后,可经由多点内存通道(320)或点对点内存通道(303)将组成给定内存子系统的内存装置耦合至内存控制器,并且内存通道本身可为分层或统一的。更明确而言,在统一通道拓扑中,内存子系统内的全部内存装置共同耦合至形成内存通道的发信号线,而在分层通道配置中,内存子系统内的内存装置或内存装置组耦合至组成内存通道的发信号线的各自子组。在一个实施例中,在305结合分层式点对点拓扑展示,内存通道的命令和地址(CA)线(即,用来传递命令和地址信号的发信号线)可共同耦合至多
个内存装置(309^30 .....309n/m),同时一组η个数据线分成m个数据线(306^30 .....
306^)的子组,其中每个子组分别耦合至n/m个内存装置309之一。类似地,在322所展示
的分层式多点系统内,一组η个数据线可分成m个线(325^32 .....325^)的子组,其中
每个子组以多点方式耦合至各自组的内存装置。相比之下,在315所展示的点对点统一式拓扑中,整组η个数据线耦合至单个内存装置317 (即,单个内存IC),且因此耦合至内存装置的η位宽数据接口(I/O 318)以能够访问其中的内存核心319。返回至分层式点对点内存子系统拓扑305,可通过将相同内存读取和写命令输送至每个装置(例如,经由未明确展示的共享命令路径)而将耦合至数据路径的各自m位切片的内存装置操作为一个并行单元。操作为这个单元的一组内存装置(即,操作为如上所讨论的内存装置的一个“队列”)对内存控制器呈现为统一装置,其中每个内存装置在写操作期间接收η位写数据值的各自m位额数,并且在读取操作期间输出η位读取数据值的各自m位额数。如322的分层式多点拓扑所展示,举例而言,可通过仅仅使所选队列
3242.....324^)的装置能够响应内存读取或写命令的寻址布置而界定多个队列的内存装
置(323i.....32 )。在一个实施例中,举例而言,将各自芯片选择线或芯片选择线群组耦
合至每队列内存装置323,以使所选队列能够响应经由耦合至内存子系统内的全部内存装置的命令/地址路径而提供的内存访问命令。图6B图解说明可在其中部署图6A的可退火内存系统270的通用数据处理系统 335。如所展示,数据处理系统335包括一个或多个处理器336(或处理器核心),该一个或多个处理器336每个可具有各种类别的内部存储器(例如,寄存储器堆(Reg))、等级1高速缓存(Li)、等级2高速缓存(L2)、非易失性存储器(NV)等等);由地址转译电路342(例如,由诸如图6A的内存控制器271的内存控制器实施或在其内实施)和一个或多个内存模块341形成的主要内存337 ;以及一个或多个次要存储装置338,诸如固态磁盘(SSD)、硬盘驱动器、可换媒体(例如,光学媒体、磁性媒体等等)。尽管未明确展示,然而可额外在数据处理系统内提供各种额外组件(例如,总线桥、协同处理器、图形控制器、用户接口组件、连接性组件等等)。这些额外组件每个可共享主要内存337和/或次要内存338,其中处理器 336和每个额外组件也可或是替代地包括其本身可由可退火内存系统实施的专用内存。无论特定拓扑如何,数据处理系统335内的各个种类或类别的内存可视为相对于给定数据请求器形成存储阶层。举例而言,从处理器336内的处理核心的观点来看,寄存器堆、Ll高速缓存、L2高速缓存、内部NV内存、主要内存和次要存储器表示一个阶层的存储装置,其中该阶层的每个层位一般比在其上的层位展现较大的存储容量但是较慢的访问速度。举例而言,寄存器堆比Ll高速缓存更小且更快,Ll高速缓存比L2高速缓存更小且更快,L2高速缓存比主要内存更小且更慢,等等。内存的多个层位可由除了容量和访问速度之外的若干特征加以区别。举例而言,内存的每层位一般被设置成比下个较大/较慢层位更紧密地物理邻接处理核心。此外,通过虚拟寻址方案寻址(即,通过诸如342的地址转译电路转译地址以产生应用于内存装置本身的物理地址)的内存的每个层位可采用共享地址转译表,该共享地址转译表不同于内存的另一层位使用的地址转译表。因此,主要内存337 内提供的地址转译电路342可用来产生应用于内存模块341 (或在内存装置被直接设置至母版或以其它方式设置在不提供可换内存模块的系统内的事件中的其它内存组件)的全部物理地址,使得从处理器336的观点来看,可认为组成的内存装置是内存的一个“扁平” 层位。次要存储装置338可视为内存的单个层位或视为内存的独立层位,其中每个这种装置潜在包括其本身的地址转译电路。在系统操作期间,内存访问请求和对应地址是经由请求/地址路径339而从处理器336(或其它请求器)输出至主要内存337。地址转译电路342将输入的“虚拟”地址转译成物理地址,所述物理地址继而经由命令/地址(C/A)路径343而被输出至内存模块341。 地址转译电路342可关联更一般的内存控制器电路,所述内存控制器电路也转译用于在C/ A路径343上后续发布以及各种控制信号,诸如芯片选择信号、时序信号等的输入请求且/ 或使所述请求排队。数据可经由如所展示的数据路径340在处理器336与主要内存储器 337之间传送,或者时间多工至请求/地址路径上,因此使后个路径呈现为通用信息发信号路径。尽管将数据路径340单独描绘成扩展至次要存储装置338,然而一个专用或共享命令/地址路径可耦合至每个这种装置,或者数据路径340可用来传递更通用的命令/数据 fn息ο仍然参考图6B,可退火内存系统270可用来实施图6B所展示的内存的任何或全部层位,以及未展示的任何额外层位或类别的内存(例如,图形内存或分级插入于主要内存层位与次要存储器层位之间或任何其它内存层位之间的额外层位的内存)。尤其在主要内存的情况中,安装至内存模块341的全部或任何子组的个别集成电路内存装置(Ml-Mn),可由时常使用后台和/或前台退火方法退火且支持本文所述电路的闪存内存装置或其它类型的内存装置实施。此外,当在内存模块中实施时,个别可退火内存装置可形成如参考图6A 所讨论的队列的多个切片,其中每个队列的内存装置以多点方式耦合至分层的数据路径, 或者点对点地耦合至各自分层的数据路径。此外,虽然将数据路径340描绘成在内存模块与处理器之间直接扩展,但是数据可通过内存控制器或其它中间装置/或在其内重组。在其它层位的内存阶层中,可如参考图6A所讨论的任何拓扑虚拟地采用闪存内存装置(包含 NAND型闪存装置、NOR型闪存装置,以及任何其它可退火内存装置)。不管在其处将可退火内存系统设置于数据处理系统335内的层位(或多个层位), 可将组成可退火内存子系统的个别(多个)内存装置撤至相同内存层位的一个或多个其它装置,或者撤至内存装置的一个或多个其它层位。此外,将数据撤至其处的替代存储器的选择或规格可由设计固定、根据系统状况动态确定,或者编程控制(例如,当在执行与退火有关的实用程序或其它软件程序期间提示时由初始配置或由操作员指定)。此外,这种数据撤出不限于准备退火的撤出且代替地一般可进行用于维护操作或使装置呈现为可用于“热” 移除(即,在电力下移除)或出于任何其它原因。根据给定内存层位内的内存系统270的应用对通用内存系统270进行适当修改可是适当的。举例而言,由处理器核心直接、物理寻址(例如,寄存器堆的实施例中)的任何内存层位可忽略地址转译电路。此外,虽然内存的各个层位可实施为离散组的一个或多个集成电路晶片(即,“芯片”)和由数据发信号路径和控制发信号路径互相耦合的芯片系统,但是可将内存的一个或多个层位整合至芯片上系统(SOC)中或由一个或多个芯片形成的集成电路封装内。图7A图解说明通过闪存控制器350(图6A所展示的更通用内存控制器271的特定实例)经由各自点对点数据链路耦合至一组五个闪存内存装置(FD0、FD1、FD2、FD3和FD4) 而形成的运行时间可退火内存系统的实例。闪存控制器一般包括上文所述的内存控制器组件,且因此含有例如控制逻辑351(包含退火控制器35 、页面表353、暂存内存355、命令路径359和内存接口 361。关于内存子系统,组成的闪存内存装置耦合至共同命令/地址路径(图7A未展示)且被管理成内存队列(即,接收和输出各自切片的数据,但是出于主机请求读取和写访问的目的而对闪存内存控制器呈现为单个单元的一组内存装置),其中内存队列包括单个待命装置和四个闪存内存装置的操作内存组。由于内存装置的总数可归纳为比所展示的五个更多或更少,本文将该布置称为N+1内存队列(每操作内存组N个装置,加上一个备用) 或N+1架构。仍然参考图7A,页面表353由地址转译条目邪4构成,所述地址转译条目邪4不仅仅指示逻辑至物理地址的转译,但是也指示由给定逻辑地址指定的数据常驻或将写至其中的操作内存组(即,要访问的四个内存装置子组;本文也称为“操作组”)。相应地,关联主机请求内存读取或写而接收的逻辑地址可由控制逻辑351应用以对页面表353编索引,且因此检索操作内存组和要在其中访问的物理地址两者。在一个实施例中,op-set值(即, 指示操作组的代码)返回至控制逻辑351且在其中用来断言能够访问指定子组(N)的N+1 个附接内存装置所需的芯片选择信号。从页面表353检索的物理地址被输出至命令/地址路径(图7A未明确展示,但是耦合至全部N个装置)上,其由于芯片选择线的op-set受控断言而被接收于由页面表353指定的操作组内,因此能够在适当子组内的附接闪存内存装置的适当位置进行指定内存读取或内存写操作。图7B在和图7A相同的闪存控制器350和闪存内存子系统的内容背景内,图解说明出于数据撤出的目的而形成虚拟装置的退火目标(闪存装置FDl)和替代存储器(闪存装置FD0)的配对。如上文参考图3所述且在图7C更详细展示,阻止在退火目标(此实例中的FDl)中发生新写(即,尚未在页面表中引导逻辑地址的写操作)和更新(即,引导至已经记录在页面表中的逻辑地址的写操作和因此在该逻辑地址重写存在的数据的请求), 且代以将所述新写和更新重新引导至替代存储器(FDO)。在新写的情况中,对应于主机供应的逻辑地址的新条目被记录在页面表中且由物理地址构成,在该物理地址处存储数据且将闪存装置FD0、FD2、FD3和FD4列示为操作组。对于更新操作,修正现有页面表条目(即,对应于主机供应的逻辑地址)以反映在其处写了更新的数据且将闪存装置FDO、FD2、FD3和 FD4列示为操作组的物理地址。现有页面表条目的这种修正有效地使退火目标内预先存在的数据条目无效(即,实现退火目标内的表指定物理地址的数据“失效”)。应当注意,在内存子系统由闪存内存装置(或者在其中数据更新无法被适当执行,而是通过写至新物理位置而实现的其它内存类型)构成的情况中,因为引导至闪存装置FD2、FD3和FD4的更新必需使写占用这些装置内未被占据的物理地址,所以更新操作之前记录在页面表内的物理地址(预更新地址)将不同于更新操作后记录的物理地址(后更新地址)。在内存读取操作的情况中,参考对应于主机供应的逻辑地址的页面表条目以确定要访问的操作组(且因此要断言的芯片选择线的组合)和从其处要检索的数据的物理地址。相应地,如图7D所展示,可从包括闪存内存装置FD0、FD2、FD3和FD4的操作组(即,如果已经将数据查找再定位至替代存储器),或者从包括内存装置FD1、FD2、FD3和FD4的操作组(即,如果替代存储器内尚未再定位数据查找)读取数据。此外,如果从包括退火目标的操作组检索数据,那么可将数据复制至暂存内存以促进稍后传送至替代存储器。在该情况中,如图7D所展示,可在页面表条目内设置旗标(“S”)以指示该数据在页面表指定物理地址的复件也在该暂存内存中(该暂存内存内的地址也可记录在页面表内),因此使数据能够在主动撤出操作期间从暂存内存被传送至替代存储器。图8图解说明执行新写操作和更新操作时图7A和图7B的内存子系统内的状态的示例性变化。出于实例的目的,在状态370假定下列条件·闪存装置FD2新近已被退火且为空白(不含数据); 闪存装置FD3为当前退火目标;·闪存装置FD2为替代存储器且因此闪存装置FD2和FD3出于数据撤出的目的而形成虚拟对;·闪存装置FD0、FD1、FD3和FD4在闪存装置FD2的退火期间组成操作内存组且被数据字A、B、D和C条带化(即,在相同物理位置含有数据字A、B、D和C),使得数据字A的数据切片A0、A1、A2和A3被分别存储在装置FD0、FD1、FD3和FD4内;数据字B的数据切片 B0、Bi、B2和B3被分别存储在装置FDO、FD1、FD3和FD4内,以此类推;且·擦除操作正在跨越包括装置FD2的全部内存装置条带化的物理地址内进行。在状态370中时,起始编程操作(S卩,闪存内存子组中的写)以在内存子系统内存储新数据字“E”(即,新写)。因为闪存装置FD3为退火目标,所以选择装置FD0、FD1、FD2和 FD4作为操作组且进行编程操作以在这些闪存装置的各自未经使用的存储区中存储数据切片E0、D1、E2和E3。更明确而言,闪存控制器为组成操作组的装置(FDO、FD1、FD2、FD4)断言芯片选择信号使得仅在这些闪存装置内接收编程命令。此外,闪存控制器将形成数据字 “E”的四个数据切片(即,E0、E1、E2、E3)切换至耦合至形成操作组的装置的数据路径上, 因此确保将数据切片输送至适当装置。在已经在操作组内存储数据字‘ ”后,如在状态371中展示内存子系统的内容。随着在闪存装置FD2和FD3之间分开多个数据字A、B、C、D、E的切片2,由这个状态表明由退火目标和替代存储器形成的虚拟装置的特性,其中将切片A2、B2、C2和D2存储于闪存装置 FD3内(且等待从其处撤出),且切片E2被存储于闪存装置FD2内。内存子系统响应进行以更新现有数据字“B”的更新操作而从状态371过渡至状态 372。在这个情况中,在将预先存在的数据字标记为无效的同时,将已更新的数据字的切片 B0-B3存储在包括替代存储器(FD》的操作组中未经使用的位置内。通过这个操作,数据字 “B”均被更新(应当注意,在数据被写至新物理位置而非被适当重写时,数据字“B”被存储在装置FD0、FD1和FD4内的新位置中),且通过使失效数据字无效而将切片D2从退火目标有效传送至替代存储器。内存子系统响应数据字“D”的更新而从状态372过渡至状态373。如在先前更新中,在将预先存在且现在失效的数据字标记为无效的同时,将已更新的数据字的切片D0-D3 存储在包括替代存储器(FD2)的操作组中未经使用的位置内。如同数据字“B”的更新,数据字“D”的更新均用来在内存子系统内写已更新的数据且用来将切片D2从退火目标有效传送至替代存储器。在到达状态373后,仅剩余数据切片A2和C2要从退火目标撤出。如果到达主动撤出极限时未通过更新操作而失效,那么可经由主动撤出操作而将数据切片A2和C2从退火目标传送至替代存储器,因此使退火目标呈现为完全撤出且准备退火操作。图9A和图9B图解说明示例性数据传送操作,其可在图7A的内存系统内执行以将数据从退火目标主动撤至替代存储器。图9A图解说明两阶段传送,其中数据初始从退火目标(FDl)被传送至闪存控制器350内的暂存内存355(阶段1),且接着稍后从该暂存内存 355被传送至替代存储器FDO (阶段幻。第一阶段传送可进行为控制器起始传送的部分(且因此为主动撤出)或者可在主机请求内存读取操作期间实现,且因此被动实现为常规操作流通量的部分。在主动撤出情况中,闪存控制器350可出于读取操作(即,仅在退火目标内接收的读取命令)的目的断言芯片选择线仅用于退火目标,因此避免其它闪存内存装置内不需要的内存读取操作且因此节省电力。或者,闪存控制器可访问操作组内的全部内存装置 (即,闪存装置FD1-FD4)且忽视从除了退火目标之外的装置检索的数据(即,不从闪存装置 FD2-FD4接收、保存且/或转送数据)或者保存和/或转送整个检索的数据字(即,实现内部或上行高速缓存操作)。在任一做法中,可在暂存内存355中存储从退火目标检索的数据切片,且页面表353经过更新以指示来自退火目标内的指定地址的数据已经被复制至暂存内存355且可用于传送至替代存储器(例如,如图7D所展示在页面表条目内设置暂存内存旗标“S”)。在被动撤出情况中,从退火目标中将要定位的数据切片检索作为来自操作内存组的主机请求读取。相应地,经由内存I/O 361和数据读取/写路径357将从操作内存组读取且包括来自退火目标的切片的整个数据字转送至主机请求器,且将来自退火目标的切片额外地写至暂存内存355。如同主动撤出,页面表353经过更新以指示暂存内存内存在来自退火目标的数据。仍然参考图9A,在两阶段撤出操作的第二阶段中,数据从暂存内存355被传送至替代存储器(这个实例中的FD0)作为主动撤出的部分。在一个实施例中,进行单切片写操作以将数据仅写至替代存储器。在替代实施例中,在包括替代存储器的操作组(“替代组”) 内重写从包括退火目标的操作组(即,“退火组”)检索的整个数据字。这种“多切片”操作类似于参考图8所述的更新操作,但是由闪存控制器而非主机装置起始。图9B图解说明在退火目标和替代存储器之间执行为主动撤出的部分的示例性单阶段数据传送。由于闪存控制器350发布单切片读取指令给退火目标FDl (即,仅为退火目标且非N+1队列的其它装置置高芯片选择),之后接着至替代存储器FDO的单切片写,这个操作在本文中也称作分路读取/写。在一个实施例中,从退火目标接收的数据切片(即,被再定位的数据)在内存I/O电路361内从用于退火目标数据路径(即,耦合至退火目标的数据线)的接收器循环(分路)至用于替代存储数据路径的输出驱动器,因此实现从退火目标至替代存储器的低附加数据再定位。即,如在图9A的两阶段传送中,数据在退火目标和替代存储器之间传送,而没有从内存I/O接口 361至内部读取/写数据路径357和暂存内存355的传送中所致的延迟或功率消耗(即,没有至内存控制器核心的传送)。
排序退火目标简要参考图6A,在分层式内存架构305内形成η位数据字的m位数据切片相对于彼此一般具有目的性的顺序。在常用内存系统中,数据切片至内存装置的指派(本文称为 “切片指派”)是静态的且通过内存控制器的每个内部数据路线(即,读取/写路径内的切片传递电路)与其对应外部数据路径和内存装置之间的专用硬件连接建立。然而,在每队列具有备用装置的可退火内存子系统的内容背景中,数据切片和内存装置之间的对应是动态,根据选择用于给定内存访问的操作内存组而变化的。这种动态切片指派在选择每个新退火目标时在再定位切片指派方面,且更一般而言,在退火目标进程本身方面(即,选择为退火目标的内存装置的序列)存在若干实施挑战和选项。举例而言,在一个实施例中,实施循环退火目标进程(即,从内存装置1依序前进至2至3至...N,且接着连同用于每个不同退火目标的固定切片指派一起再次开始以内存装置0开始序列)。如下文所讨论,这种做法提供相对低附加退火进程和切片指派逻辑的优点,但是以结束通过N+内存队列的每个进程时的大量数据再定位努力为代价(注意,本文使用标号“N+”以参考具有除了形成匹配读取和写数据字的宽度的操作内存组所需的N个装置之外的一个或多个备用装置的内存队列)。在替代实施例中,振荡式进程相对于循环/固定式切片指派做法减小了数据再定位努力,但是每进程循环产生不一致数目的退火操作。在又另一实施例中,采用循环式退火目标进程,但是其中每退火目标具有多个可行的切片指派(且因此增加的用于确定和追踪适当切片指派的复杂度)以减小数据再定位量。图IOA图解说明根据上文提及的循环/固定式切片指派实施例的退火进程和切片指派。所展示的实例假定N+1架构每操作内存组具有四个装置(且因此四个切片)和单个备用装置),所述装置由闪存内存装置FDO、FD1、FD2、FD3和FD5形成。从左至右展示退火目标选择的逐状态进程,以选择状态‘a’中的退火目标=FDl开始,且接着继续至选择状态 ‘b’中的退火目标=FD2、选择状态‘C’中的退火目标=FD3、选择状态‘d’中的退火目标 =FD4,和选择状态‘e’中的退火目标=FDO0之后,在新退火循环中以选择状态‘a’ (即, 退火目标=FDl)开始重复序列。在内存队列下面将用于每个目标选择状态的操作内存组展示为“op set”(即,队列的闪存内存装置减去退火目标),且用于每个选择状态的虚拟装置对涵盖于虚线轮廓中(其中如图例365所展示由粗虚线装置周边标记退火目标和替代存储器)。此外,用于每个选择状态的数据切片指派由箭头展示成从四个数据切片(ds0、dsl、 ds2,ds3)的每个至形成该选择状态中的操作组的内存装置。因此,在选择状态a中,替代存储器FDO和退火目标FDl形成虚拟装置对,闪存装置FDO、FD2、FD3和FD4形成用于新写和更新操作(读取操作根据由页面表指示的数据撤出状态而被替代地引导至替代存储器FDO 或退火目标FDl)的操作组,且切片指派为dsO/FDO、dsl/FD2、ds2/FD3和ds3/FD4。仍然参考图10A,在内存队列下面以标号“slice asn”重复切片指派,以说明从一个选择状态过渡至下个中所需的数据再定位努力(应当注意,在所展示的记号中隐藏数据切片,使得切片指派“0、2、3、4”意指将数据切片0指派至FD0、将数据切片1指派至FD2、将数据切片2指派至FD3且将数据切片3指派至FD4)。举例而言,在从选择状态‘a’至选择状态‘b’的进程中,由箭头2- > 1表明装置FDl在操作组中取代FD2(即,FD2变成新退火目标时),且重新指派数据切片dsl从FD2至FD1。相应地,在“op set”标号下由下划线 (FDl的‘Γ )标记在进行至选择状态‘b’中新加入至操作组的装置(即,FDl),且数据切片dsl至装置FDl的重新指派同样由“slice asn”标号下的下划线(FDl的‘1,)标记。由于一般做法是将用于每个新选择的退火目标的数据切片重新指派至替代存储器,可以看到在从选择状态‘a ‘至‘b’至‘C’至‘d’至‘e’的每个状态进程中仅仅出现一次数据切片重新指派,但是这个做法的结果会在从选择状态‘a’至选择状态‘e’的净进程中逐个移位全部四个数据切片指派。即,重新指派dsl从FD2至FD1、重新指派ds2从FD3至FD2、重新指派 ds3从FD4至FD3、重新指派dsO从FDO至FD4。相应地,为了在从选择状态“e”进行至选择状态‘a’后将切片指派复位至其初始状态(即,准备新退火目标),如366处所展示般重新指派全部四个数据切片。由于每个数据切片指派一般涉及将数据从先前指派切片的装置再定位至新指派的装置,在从状态‘e’至状态‘a’的单个进程中,重新指派全部四个数据切片涉及比四个先前选择状态进程多四倍的数据再定位。因此,虽然可提供相对低附加(即,小占用面积)的控制电路来实施循环目标选择和固定切片指派,但是这种低附加控制电路以每循环选择状态进程一次相对繁重的数据再定位努力(即,每退火循环一次)为代价。图IOB图解说明上文提及的振荡式进程、固定切片指派做法的实施例。正如循环/ 固定切片做法,内存子系统进行通过由选择状态‘a’至‘h’标记的退火目标的预定序列,且每个选择状态具有固定的切片指派。然而,和循环做法相比,替代在退火队列中的全部N+1 个内存装置后重复进程序列,进程序列的方向被反转使得由初始方向进程引起的切片指派的任何增加位移被返回方向进程反转。在图IOB的特定进程序列中,举例而言,在选择状态 d中,在初始从装置FDi向下进行至FDi+Ι且到达最后装置FD4后,反转进程方向以从装置 FDi向上进行至装置FDi-Ι。如由图IOB中标记的切片指派所展示,由向下进程引起的切片指派的位移被向上进程序列反转使得每选择状态进程仅改变一次切片指派。即,在完成最后选择状态‘h’中(即,在所展示的总进程序列的最后装置FDO中)退火操作且反转进程方向以返回至初始选择状态(a)后,仅需要重新指派数据切片dsO (从FDO至FDl)。因此,通过在退火队列末端装置FDO和FD4后反转选择进程的方向(且因此实现振荡式进程序列), 避免了循环/固定切片指派做法的多切片重新指派和对应数据再定位负担。应当注意,可根据物理部署来确定队列末端装置(例如,队列末端装置为物理设置在如图IOB所展示的一行内存装置的末端的装置),或者不考虑物理位置而逻辑指派。只要每N个退火装置反转一次进程方向,通过退火目标的序列的反转方向(反方向)进程将恢复初始进程方向中出现的切片指派位移。在物理指定的内容背景中,振荡式进程序列可视为确保每个新退火目标总是和物理邻近的装置配对以形成虚拟装置对。因此,在到达队列的任一末端的装置后,退火进程被反转以确保下个选择用于退火的装置被设置成邻近队列末端装置。仍然参考图10B,可以看到每个完整退火循环(即,从选择状态a至选择状态h的每个完整振荡)中每装置的退火操作的数目并不是统一的。更明确而言,每退火循环(即, 通过选择状态‘a’至‘h’的完整进程)仅退火一次队列末端装置,同时夹在队列末端装置之间的装置(“内部”内存装置)每退火循环被退火两次。这种现象的一个结果是在确定总退火循环速率时应当考虑队列末端装置的半速率退火;假定通过全部装置选择状态的每完整进程仅退火一次每个装置而根据给定装置的所需退火频率来设计(或编程)分派用于每个装置选择状态的时间。因为在大多数情况中退火操作的不利作用可忽略,所以内部内存装置的所得倍频退火一般没有结果。只要符合队列末端内存装置的目标退火频率,那么系统一般可不定地和后台退火一起操作。图IOC图解说明上文简要提及的循环进程、切片指派查找做法的实施例。在这个实施例中,如在图IOA的循环/固定切片指派做法中使用相同的循环式目标选择序列(因此,五个装置选择状态‘a’至‘C’用于所展示的4+1架构),但是应用可变切片指派以避免每循环一次的多切片数据再定位努力。更明确而言,根据写操作是否涉及新数据写,或者对先前已写数据的位置和/或数据内容的修正而动态确定(例如,通过查找或以算法产生) 用于任何数据写的切片指派。根据选择状态对新数据写(即,未引导至具有预先存在的页面表条目的逻辑地址)指派固定的切片指派,因此在新写切片指派中提供确定性。在所展示的实施例中,举例而言,以装置升序指派数据切片,使得在要退火的下个装置中存储写数据的最不重要的切片,并且每个后续数据被存储在循序更高编号的装置中,视需要从装置N 翻转至装置0。因此,在装置FDl为退火目标的选择状态‘a’中,为任何新数据写应用切片指派2、3、4、0( S卩,FD2中的dsO、FD3中的dsl、FD4中的ds2、FDO中的ds3)。在选择状态 ‘b’(退火目标=FD2)中,为任何新数据写应用切片指派3、4、0、1 ;在选择状态‘C’中,应用切片指派4、0、1、2,依此类推。在分析上表述而言,在闪存装置FDx至FDx+η-Ι中分别存储数据切片0至n-1,其中指数χ =退火目标的指数+1,且其中全部指数计算为模N (即,等于整数除以N后的计算结果的余数,其中在图IOC的示例性实施例中N = 4)。和新写操作相比,通过从页面表中检索先前记录的切片指派,且接着为当前选择状态(即,“当前退火目标”)将指派给退火目标的任何数据切片重新指派给替代存储器,以产生修正的切片指派而实现主机请求更新操作或控制器引导的数据再定位(即,统称为修正的更新或再定位)。之后,通过将整个更新的数据字写至由修正切片指派指示的操作内存组而完成更新,同时可通过根据修正的切片指派仅仅写重新指派的数据切片(即,从退火目标(或暂存内存)中检索重新指派的数据切片,且将其写至替代存储器而不是重写受测数据字的其它切片)而实现再定位。考虑图IOC的做法,可观察到,在完全撤出给定选择状态的退火目标时,操作内存组内的每个数据字可取决于在选择状态期间是否重写(即,更新或再定位)或新写数据字而具有多个可行的数据指派之一。更明确而言,在以装置升序指派切片时,可以可行的N个修正切片指派的任一个存储给定选择状态内重写的任何数据字。为明白此,考虑选择状态 ‘a’中的空内存子系统的操作(如368所展示)。在这个情况中,全部数据存储操作将为新写且因此以装置升序记录切片指派;将数据切片dsO指派给闪存装置2 (要退火的下个装置)且将数据切片dsl、ds2和ds3分别指派给闪存装置3、4和0。因此,所展示的新写切片指派为2、3、4、0。之后,在进行至选择状态‘b’后,将以切片指派3、4、0、1写新数据写(即,dsO至 FD3、dsl至FD4、ds2至FDO且ds3至FDl-以闪存装置3开始的装置升序),且将通过检索选择状态‘a’中记录的新写切片指派(S卩,仅在该状态中出现新数据写时的“2、3、4、0”), 且将指派给退火目标FD2的切片重新指派给替代存储器FDl (即,如从选择状态‘a’过渡至 ‘b’所展示的“2- > 1”)而进行修正(更新和再定位)。因此,记录在选择状态‘a’中的总切片指派从“&3,4,0”变成“丄,3,4,0,下划线指示重新指派的数据切片。应当注意,在已经从退火目标FD2撤出全部数据后,没有剩余具有记录在选择状态‘a’中的切片指派的数据。 即,已经通过主机请求的更新操作或控制器引导的再定位操作而使退火目标FD2内的全部
28条目失效。相应地,页面表中的全部条目将反映展示用于选择状态‘b’的两个切片指派之
ο在从选择状态‘b’进行至选择状态‘C’后,以切片指派4、0、1、2(以闪存装置4开始的装置升序)存储新写,且可以记录在选择状态‘b’中的两个切片指派的任一个开始出现数据重写(更新/再定位)。因此,将指派给FD3(新退火目标)的切片重新指派给替代存储器FD2为选择状态‘b’中新写的数据产生切片指派2、4、0、1而非14、0、1,且为最初在选择状态‘a’中所写且接着在选择状态‘b’中重写的数据产生切片指派1、么4、0而非1、1 4、0。如在选择状态‘b’中,在选择状态‘C’中完成数据撤出后,已经通过主机请求更新或控制器引导的再定位而使退火目标FD3内的全部条目失效。相应地,页面表中的全部条目将反映展示用于选择状态‘C’的三个切片指派之一。在进行至选择状态‘d’后,以切片指派0、1、2、3存储新写,且可以记录在选择状态 ‘C’中的三个切片指派的任一个开始出现修正。因此,将指派给FD4(新退火目标)的切片重新指派给替代存储器FD3为选择状态‘C’中新写的数据产生切片指派丄0、1、2而非1、 0、1、2,且为最初在选择状态‘b’中所写且接着在选择状态‘C’中重写的数据产生切片指派 2、丄0、1而非2、4、0、1 ;且为最初在选择状态‘a’中所写接着在选择状态‘b’中重写并且在选择状态‘C’中再次重写的数据(即,重写两次的数据)产生切片指派1、2、10而非1、2、 4、0。正如在其它选择状态中,在选择状态‘d’中完成数据撤出后,页面表中的全部条目将反映展示用于选择状态‘d’的四个切片指派之一(即,已经通过主机请求更新或控制器引导的再定位而使退火目标FD4内的全部条目失效)。最后,在进行至选择状态‘e’后,以切片指派1、2、3、4存储新写,且可以记录在选择状态‘C’中的四个切片指派的任一个开始出现修正。因此,将指派给FDO (新退火目标) 的切片重新指派给替代存储器FD4为选择状态d中新写的数据产生切片指派4、1、2、3而非辽、1、2、3,且为最初在选择状态‘C’中所写且接着在选择状态‘d’中再次重写的数据(重写一次的数据)产生切片指派3、i、l、2而非3、U、1、2;为最初在选择状态‘b’中所写接着在选择状态‘C’中重写且在选择状态‘d’中再次重写的数据(重写两次的数据)产生切片指派2、3、i、l而非2、3、仏1 ;且最后,为最初在选择状态‘a’中所写接着在选择状态‘b’中重写,再次在选择状态‘C’且再次在选择状态‘d’中重写的数据(重写三次的数据)产生切片指派l、2、3、i而非1、2、3、0。在完成数据撤出后,页面表中的全部条目将反映展示用于选择状态‘e’的五个切片指派之一(即,已经通过主机请求的更新或通过控制器引导的再定位而使退火目标FDO内的全部条目失效)。观察迄今所述的切片指派方式,在任何给定选择状态中确切存在N个可能的装置升序切片指派方式。此外,在图IOC的实施例中,给定选择状态内的每个不同切片指派对应于新写切片指派的转动(即,模N移位),其中自最初数据写起用于每个数据切片的指派转动达选择状态进程的数目(且因此状态间重写的数目)。因此,查找用于选择状态‘e’的切片重新指派后,如果已经出现一个选择状态进程(即,选择状态‘d’中新写的数据),那么转动一次选择状态‘e’的新写切片指派以产生修正的切片指派(即,将1、2、3、4转动至4、1、 2、3)。如果出现三个进程(即,选择状态‘b’中新写的数据),那么转动三次用于选择状态 ‘e’的新写指派以产生修正的切片指派(S卩,将1、2、3、4转动为2、3、4、1)。此外,因为存在 4个可能的切片指派(即,在这个实例中N = 4),所以任何四个选择状态进程将产生和用于该选择状态的新数据写相同的切片指派方式(即,1、2、3、4转动四次产生1、2、3、4)且因此不需要出现转动。换句话说,转动本身为模N,使得存在N个唯一切片指派方式用于N+1个选择状态的每个,因此表示N*N+1个切片指派方式(在图IOC的实例中为4*5 = 20个切片指派方式)。在确定退火控制器内(或者内存控制器中的其它处)的切片指派方面,用于给定选择状态的新写和修正的切片指派可在表中查找或以算法产生(例如,由退火控制器内的逻辑电路产生)。在任一情况中,在退火目标选择状态的任何单个进程中可应用循环选择状态序列(因此确保每个完整退火循环中每个装置有统一数目的退火操作),而不需要繁重、多装置的数据定位。取而代之,每个选择状态中的数据再定位仅仅需要从退火目标至替代存储器的数据传送。图IlA图解说明闪存控制器380的更详细实施例,其能够管理运行时间变化操作组和参考图10A-10C所述的对应切片指派。如所展示,控制逻辑351包括命令逻辑电路385, 其从主机接收内存存取命令388(即,主机供应的访问命令,“Host Cmd”),且从退火控制器 352接收自发产生的再定位命令386(“Reloc Cmd”)。不管主机供应还是自发产生,每个内存访问命令包括或伴有逻辑地址394,所述逻辑地址394被输入至页面表353以能够检索对应页面表条目395 (如果存在)。页面表本身包括页面表控制器389 (例如,由状态机(FSM) 或其它控制逻辑形成)以及查找表391 (LUT)。页面表控制器389通过对查找表391编索引而响应输入逻辑地址394以确定是否已经记录对应条目。如果命令逻辑385指示要执行内存写,且查找表389不含有对应于关联写命令的逻辑地址的条目,那么页面表控制器389 认为该写命令为新数据写且相应地发布物理地址、芯片选择信号和切片指派信号。在一个实施例中,举例而言,页面表控制器389从控制逻辑351接收选择状态值(即,指示当前退火目标选择状态)且应用该信息以确定操作内存组和其中的一个自由物理地址。之后,该页面表控制器389经由控制路径359输出物理地址397(例如,在相对于由控制逻辑351 输出对应内存命令396的希望时间处),并且启动关联操作内存组的芯片选择信号398 (经由可被认为是控制路径359的部分的芯片选择线传递)的子组,以使适当子组的内存装置 FD0-FD5能够接收物理地址和对应内存命令。在一个实施例中,在内存接口 361内提供输出驱动器327以将内存命令396、物理地址397和芯片选择信号398输出至形成外部控制路径 392的各自组的信号线上。参考细节图407,控制路径392的命令和地址信号线共同耦合至 N+1内存队列的每个内存装置(FD0-FD4)的命令(“cmd,,)和地址(“addr”)输入,同时芯片选择线耦合至各自闪存内存装置的芯片选择输入(“c-sel”)以使其能独立选择。在替代实施例中,命令和地址信号线也可耦合至各自内存装置(即,和使多个闪存内存装置共同耦合至相同命令/地址总线相反,每闪存内存装置有专用的命令/地址总线),且可撤除命令、地址,和/或芯片选择线且将在其上以其它方式传递的信号时间多工至信号线组的另一个组上。仍然参考图11A,页面表控制器389还为特定选择状态确定对应于新数据写的切片指派值399,并且将该切片指派值输出至在内存接口 361内提供的切片导引电路402(例如,在图IlA的实施例中由交叉开关“xbar”实施)。如所展示,切片导引电路402耦合在内部数据路线401 (内部读取/写数据路径357)和数据I/O电路403内的数据接收器/输出驱动器电路404之间。通过这种布置,将每个对应于各自数据切片(ds0-ds3)的N个内部数据路线401输出至分别耦合至内存队列406的N+1个内存装置的N+1个数据路径切片(即,外部数据路径405的切片)的适当子组上。在图IlA的特定实施例中,举例而言, 正向进位先前图示中所述的示例性五个装置式架构;因此以N+1拓扑管理五个闪存内存装置(FD0-FD4),其中四个闪存内存装置组成用于给定内存访问的操作内存组且剩余闪存内存装置组成退火目标(在写操作的情况中)或替代存储器(在映射至退火目标的读取的情况中)。这个拓扑中的每个内存装置被称为以点对点布置连接,即,使得每个内存装置的数据路线仅专用于该内存装置且不和其它装置连接。此外,提供四个内部数据路线401以根据从页面表353提供的切片指派值399经由切片导引电路402而将数据切片ds0-ds3传递且可切换地耦合至五个数据I/O电路404的各自子组。通过这种布置,将选择(通过插入对应芯片选择信号398)组成操作内存组的四个闪存内存装置来接收内存写命令和对应的物理地址,且将以由切片指派值399控制的顺序将四个输出的数据切片定路径至所选操作组。参考图10A-10C,举例而言,如果退火控制器指定选择状态‘a’,那么页面表控制器将应用该信息以确定(通过查找或算法产生)由装置0、2、3、4形成的操作组和在图IOA和图IOB 的退火进程的情况中的切片指派0、2、3、4( S卩,指派给FDO的dsO、指派给FD2的dsl、指派给FD3的ds2、指派给FD4的ds3),或在图IOC退火进程的情况中的切片指派2、3、4、0。为了达成新数据写,页面表控制器389将对应于输入逻辑地址394的新条目插入至查找表391 以指定新写数据的物理地址、操作组合切片指派。应当注意,可在数据写操作本身之前、同时或之后创建页面表条目且将其插入至查找表391中。 以图IlA继续,如果页面表控制器389确定输入的逻辑地址394确实匹配现有页面表条目且指示一个主机引导的内存写命令,那么相对于指定的逻辑地址进行更新操作。 在该情况中,页面表控制器389的操作可根据每选择状态的切片指派是否为固定或可变而有所不同。在固定切片指派做法的情况(即,如参考图IOA和图IOB所讨论)中,页面控制器389确定(例如,通过表查找和/或算法产生)用于当前选择状态的操作组和对应的切片指派,以及该操作组内可用的物理地址。之后,页面表控制器389经由控制路径359输出物理地址397且置高关联该操作内存组的芯片选择信号398,并且将切片指派值399提供给切片导引电路402。在动态(可变)切片指派实施例的情况中,页面表控制器389通过根据最后记录的操作组和切片指派产生新切片指派而实现数据更新操作。因此,如果最后记录的操作组匹配当前选择状态的操作组(即,由于特定逻辑地址的最后数据写操作而未进行选择状态),那么应用相同切片指派-但是在不同物理地址处(由于至少在图IlA的示例性闪存内存子系统的情况中,数据未适当更新)。如果最后记录的操作组不匹配当前选择状态的操作组(即,进行选择状态),那么应用记录用于最后选择状态的切片指派以查找或产生在更新操作中要引用的新切片指派。遵循图IOC展示的做法,举例而言,最后记录的切片指派的第一数位和当前选择状态可用来对查找表编索引且因此检索当前切片指派。举例而言,如果当前选择状态=‘b’,那么来自先前选择状态‘a’的四个可能索引将产生如下的新切片指派2- > 1、3、4、0 ;0- > 0、1、3、4 ;4- > 4、0、1、3 ;3- > 3、4、0、1。或者,可通过转动新写切片指派达进程计数次(即,自最初写数据起的退火进程的数目)而产生新切片指派;继而通过例如当前选择状态的新写切片指派的最后数位和先前记录的切片指派的最后数位之间的偏移确定值。因此,如果是在选择状态‘C’中且先前记录的切片指派的最后数位为0、1、3、4(最后数位=4),那么新写切片指派=4、0、1、2转动达2和4之间的偏移次 (使用模算法使得2-1 = 1 ;2-0 = 2 ;2-4 = 3 ;和2_3 = 4),因此产生希望的切片指派值0、1、2、4。可使用切片指派产生的各种替代做法,包括产生和图IOC所展示的切片指派进程不同的切片指派进程的替代做法。仍然参考图11A,如果结合再定位命令386提供逻辑地址394,那么相对于特定逻辑地址进行控制器引导的再定位操作。在该情况中,正如更新操作,页面表控制器389的操作可根据每选择状态的切片是否为固定或可变而有所不同。在固定切片指派做法的情况 (即,如参考图IOA和图IOB所讨论)中,页面表控制器389确定(通过查找和/或算法产生)当前选择状态的操作组和对应切片指派,以及该操作组内的可用物理地址。之后,闪存控制器380输出该物理地址以及内存读取命令和对应于再定位操作中要访问的(多个)内存装置的(多个)芯片选择信号。因此从一个或多个所选内存装置读取要再定位的数据且使其返回至闪存控制器380,用于分路写至替代存储器或将其存储用于稍后回写至替代存储器。在分路读取/写情况中,在接收从退火目标(和如果正再定位多个切片的数据时的其它装置)再定位的数据后,闪存控制器380断言关联正再定位数据的(多个)内存装置的(多个)芯片选择信号,且断言要写以使所选装置中能有数据写的写命令和物理地址。因此,在图IOB和图IOC的实施例,和图IOA的实施例中的单切片再定位操作中(即,对于图 IOA中所展示除了从‘e ‘至‘a’之外的全部选择状态进程),在退火目标进行内存读取以检索被再定位的切片,且接着在替代存储器进行内存写以完成再定位操作。在分路读取/写的情况中,可紧接地进行读取和写操作(即,在数据路径405上没有干扰),且因此,可在通过将页面表条目修正成在切片指派中包括取代退火目标的替代存储器而完成操作后更新页面表,但是无需使物理地址变化。在两阶段再定位操作(即,在暂存内存中暂时存储已检索的数据且接着稍后将其回写至替代存储器)的情况中,可在数据检索阶段后更新页面表 353以在暂存内存中反映存储器(在该暂存内存内指示存储地址,然而FIFO或堆栈架构可用来避免明确的暂存内存寻址需求),且接着在数据写阶段后再次更新该页面表353以反映已经完成的再定位操作。应当注意,在图IOA的状态‘e’至‘a’进程中所展示的多切片再定位操作中,可能需要新物理地址以实现数据再定位(例如,如图IlA的闪存内存子系统或不允许适当重写数据的其它内存技术的情况中)。仍然参考图11A,细节图369图解说明退火控制器的一般实施例,该退火控制器具有有限状态机381 (或处理器定序器或其它控制电路),一个或多个操作计数器382和一个或多个退火控制寄存器383。状态机381在状态之间过渡以管理给定退火操作内的事件序列,以及通过退火循环中的不同退火目标选择状态的不同进程。操作计数器是用来追踪内存子系统内的各个操作和事件(例如,内存访问、编程/擦除操作、坏区块或其它错误/故障检测等等),且因此可在进行通过退火操作的撤出阶段中由状态机381评估,执行装置选择、触发退火等等。举例而言,通过计数每个目标选择状态期间的编程/擦除循环,独立编程/擦除计数可被追踪用于每个内存装置且用来触发该装置中的退火,且/或管理从被动撤出模式至主动撤出模式的进程。操作计数器也可包括用来追踪各自内存装置中的操作的多个计数器。举例而言,在一个实施例中,操作计数器382包括用于每个内存装置的编程/ 擦除计数器和错误计数器,以及用来追踪内存子系统内的内存写操作(和/或内存读取和写操作的组合)的净数目的全域访问计数器。接着可增加装置特定的编程/擦除计数用于在对应内存装置中执行的编程/擦除操作,且错误计数器用来计数对应内存装置中的错误检测(例如,编程/擦除故障、如由错误校正代码或其它错误信息指示的位错误、坏区块检测等等)。全域访问计数器可用来例如使退火控制器实现在内存子系统内的热页面和冷页面之间加以区别(例如,甚至读取操作承受页面是否为热或冷)。在一个实施例中,举例而言,只要更新内存页面便在页面表内存储全域访问计数值,因此实现数据存储的新近度的确定(例如,通过比较所存储的访问计数值和当前访问计数值)且因此确定页面是否为热或冷(例如,通过和新近度极限相比较)。退火控制寄存器383可用来存储主机编程(或操作员编程)的值以及用于控制退火控制器的操作的变量或其它状态信息。在所展示的实施例中,举例而言,退火控制寄存器 (其可为单个寄存器或具有多个字层位的寄存器群组)是用来存储退火目标和替代存储器的指示符(ID),以及一个值,该值指示装置选择模式(固定或可编程选择序列和用于装置选择的任何极限)、退火触发模式(例如,经过或日历时间、错误率、错误计数、编程/擦除计数等等)、退火进程模式(例如,具有固定切片指派的循环式进程、振荡进程、具有可变切片指派的循环式进程等等)、子系统拓扑(例如,分层式、多点式、多通道式等等)、替代存储器的特性(复合的或是统一的)、前台或后台中是否要进行退火操作、是否使能有突发性退火和/或压缩性退火(下文讨论的两种)、热/冷(或其它数据使用级别)、极限和/或政策 (例如,是否使用访问的新近度、访问的频率和/或其它标准以在使用级别之间加以区别), 或者运行时间可退火系统的任何其它编程或动态界定的行为。应当注意,虽然在退火控制器352内(且在闪存控制器380内)展示退火控制寄存器383,但是这些寄存器或其任何子组可替代或额外地被设置在可退火子系统内的一个或多个(或全部)内存装置内,或者在单个集成电路装置中被设置成远离退火控制器(和闪存控制器)和内存装置。图IlB图解说明图IlA的共享命令/地址架构的重要性。即,在由展现缺陷或不可靠存储器的局部化区的一个或多个队列的装置构成的内存子系统中,一个内存装置中的缺陷区由于其共同物理地址而限制了对相同队列的其它装置中的另外功能区的访问。举例而言,如果希望通过在物理对应位置跨越全部装置有效地条带化数据而跨越多个闪存装置条带化数据,那么闪存内存装置内的坏区块(参看图11B)可使其它闪存内存装置内对应好的区块呈现为不可用。也就是说,在这种实施方案中,由于将跨越内存队列的全部闪存装置有效条带化坏区域,对其它功能区块的访问被限制,使不可用存储器的数量倍增达该队列的内存装置的数目。图IlC图解说明替代的基于队列的内存架构,其中通过专用命令/地址路径 4170-4174而将闪存控制器415耦合至内存队列406的每个闪存内存装置FD0-FD4。此外, 闪存控制器415内的页面表400具有(连同状态机408—起)多个地址查找表(LUT) 409以使每个输入的逻辑地址394能够独立(且因此个别且有所不同地)映射至对应闪存内存装置内的物理地址。在这个实施方案中,作为条带化的替代,可单独管理每个内存装置的坏区块信息。举例而言,输入或自发产生(即,通过退火控制器)虚拟地址394可用来同时对每个地址查找表409编索引,因此提供经由各自地址路径416而输出至对应闪存装置的多个物理地址。更明确而言,如细节图419所展示,可结合各自物理地址(例如,PhysAddrFDO,
PhysAddr FDl.....PhysAddr FD4))和芯片选择信号(根据切片指派399确定的Chipkl
FDO-ChipSel FD4)将单个(共享)内存命令396输出至每个闪存内存装置。如所展示,由各自个命令/地址输出驱动器418。-41民将每个内存装置的命令/地址信息驱动至对应个专用命令/地址路径411-4111。通过这种布置,每个闪存内存装置的坏区块地址可被仅用于该内存装置的虚拟至物理地址映射忽略,因此避免需要跨越整个内存队列条带化坏区块地址。在给定内存访问操作期间将不同物理地址应用至各自内存装置的自由度也允许在不同内存装置内应用不同磨损分级的进程(例如,考虑不同内存装置内由于动态切片指派或其它作用的访问差)。图IlC所展示的其它电路方块和信号(例如,控制逻辑351、交叉开关402、数据I/O电路403、读取/写路径357等等),对应于参考图IlA所述的相同编号的电路方块和信号且一般可以与其相同的方式予以实施。应当注意,也可使用图IlA的共享命令/地址、专用芯片选择拓扑来达成对内存队列的闪存内存装置的独立控制。举例而言,可将内存访问命令和/或内存地址多工至共用命令/地址路径上(即,一个接着一个地发送),其中专用芯片选择线是用来控制启动哪个内存装置来接收给定命令/地址。尽管在这种拓扑下在将命令和地址发布至个别装置中可能导致额外的延迟,然而可使对个别内存装置的访问管线作业使得处理量(即,内存带宽) 将维持不受影响。图IlD图解说明并行查找页面表425的实施例,该并行查找页面表可用来实施图 lie的页面表400且因此对内存队列内的各自内存装置启动专用命令/地址路径。如所展示,将输入逻辑地址和用于页面表条目的逻辑地址表4 相比较,产生命中/错失信号 437(指示是否已经检测到匹配逻辑地址)和匹配逻辑地址的索引436(如果存在)。假定逻辑地址表4 内有一次命中(其可例如由内容可寻址内存或其它并行比较电路实施),那么应用索引436来寻址对应于各个闪存内存装置FD0-FD4的一组查找表的每个。通过这个操作,使用索引436来同时读出对应于各自内存装置的多个物理地址(和任何其它装置指定的数据)。如所展示,对统一的查找表提供索引以获得操作内存组、切片指派、热/冷页面信息和任何其它装置独立数据(即,界定总内存访问且因此不需要在多个情形中存储在装置特定的查找表中的数据)。在内存读取操作中,经由多工器434将从表中检索的切片指派 ("Read SA")选择为用于内存访问的切片指派399。相比之下,在内存写(或更新)操作中,写切片指派(“Write SA”)可经由控制端口 432而由控制逻辑(例如,根据目标选择状态和进程政策)供应且被多工器434选择作为内存访问的切片指派399(响应同样由控制端口 432供应的读取/写指示器,“Rd/Wr”)。在一个实施例中,通过在表430的对应条目内存储访问计数值而为每个虚拟地址记录热/冷信息。更明确而言,将访问计数值(即,由参考图IlA所述的退火控制器内的计数器维持)存储在查找表430内作为读取或写至(或者替代地仅用于内存写访问)对应虚拟地址的每个内存的部分。通过这个操作,控制逻辑(或者其中的退火控制器)可将计数访问计数供应给页面表和虚拟地址,且因此在新近度逻辑433内能够检索所存储的访问计数值以及确定该存储访问计数值和当前访问计数值之间的差。在一个实施例中,新近度逻辑433接收热/冷极限(例如,从参考图IlA所述的退火控制寄存器),且将所存储的访问计数值和当前访问计数值之间的差与该极限相比较。通过这个操作,新近度逻辑433可产生热/冷信号439,该热/冷信号439指示所存储的访问计数和当前访问计数之间的差是否超过极限,且相应地,页面是否为热(差小于极限)或冷(差大于极限)。在替代实施例中,可由页面表内或闪存控制器内其它处的逻辑确定各种替代热/冷确定性(例如,根据访问频率而非访问新近度或者除了访问新近度之外)和替代存储使用梯度并且由其发信号。图12是图解说明可响应主机请求或自发产生的内存访问命令而由图7A-7B (和图11A、图11C)的闪存控制器进行的操作的示例性序列。如果内存访问命令为内存读取(在决策方块451中确定),那么闪存控制器执行461处所展示的操作序列。更明确而言,在462, 闪存控制器使用在内存访问命令中供应的逻辑地址对页面表编索引且因此获得用于所请求数据的物理地址、操作内存组和切片指派。之后,在464,闪存控制器在操作内存组内执行内存读取,根据切片指派将所检索的数据切片导引于内部控制器数据线上。如果所命令的访问不是内存读取,那么闪存控制器在决定方块453确定所供应的逻辑地址(即,供应作为内存访问命令的部分或与该内存访问命令关联)是否在页面表中。 另外,闪存控制器例如根据指示所供应的地址是逻辑地址(更新操作)还是物理地址(再定位操作)的旗标,和/或指示命令和/或逻辑地址是否是自发产生或主机请求的旗标而认为内存访问是更新操作或是再定位操作。在新写的情况中,闪存控制器执行471所展示的操作序列。在472,闪存控制器根据当前选择状态确定操作组,且接着根据该操作组确定数据写操作的物理地址和切片指派。在所展示的实施例中,由各自查找操作确定操作组、物理地址和切片指派;举例而言,使用当前选择状态对操作组查找表(OS-LookUp)编索引,使用操作组对下个自由地址查找表 (Addr-LookUp)编索引,使用操作组对切片指派表(SA-LookUp)编索引。在替代实施例中, 闪存控制器可在算法上确定操作内存组、物理地址和/或切片指派。作为算法指派的特定实例,切片指派可匹配(或以其它方式导出)操作内存组本身。在任何情况中,闪存控制器执行如474所展示的内存写操作,写至操作内存组内的物理地址,且以由切片指派指定的顺序将写数据切片从闪存控制器的内部数据路线导引至操作组的各自内存装置。在写操作期间或结束时更新页面表以反映地址转译(逻辑至物理)、操作内存组和切片指派。应当注意,如果根据操作内存组来固定或可以其它方式确定,那么不需要在页面表中记录切片指派。闪存控制器通过执行481所展示的操作序列而响应更新命令(即,查找逻辑地址以匹配页面表内预先存在的条目的内存写命令)。以482开始,闪存控制器使用逻辑地址对页面表编索引以获得物理地址、操作内存组,且确定新切片指派、预先存在的数据的切片指派(如果需要)。因为将在潜在的新操作组内的新物理地址写更新的数据值(即,关联逻辑地址而要写且供应的数据),所以闪存控制器在484标记物理地址用于操作组的每个装置的擦除。之后,在486,闪存控制器确定当前选择状态的操作组,接着确定用于该操作组的下个自由物理地址和切片指派。应当注意,在固定切片指派实施例中(例如,如在图IOB或图IOC中),可不考虑过去的切片指派而确定用于写操作的切片指派,同时在可变切片指派实施例中(例如,如在图IOA中),参考过去的切片指派以确定下个切片指派。在确定操作内存组、物理地址和切片指派后,闪存控制器在488执行内存写,在该操作内存组内的物理地址写更新的数据,且以由切片指派所指示的顺序将更新数据的切片从内部数据路线导引至该操作组的各自内存装置。在更新操作后或期间,更新页面表以指示更新数据的新物理地址以及操作组和切片指派(其任一个可从另一个导出且因此由页面表条目予以明确指示)°在再定位命令的情况中,闪存控制器执行491所展示的通用操作序列,所述序列以在492通过为再定位操作确定源和目的地内存组(Srdet、DesUet)并且指派对应源和目的地地址(SrcPhysAddr、DestPhysAddr)为开始。源内存组是一组将使用源地址而从其29/41 页
处检索要再定位的数据(“转移数据”)的一个或多个内存装置,且目的地内存组是要在目的地地址再定位(即,写)转移数据的对应组的一个或多个装置。在单切片再定位操作(即, 将数据切片从退火目标再定位至替代存储器同时在适当处留下其它切片的相同数据字) 的情况中,源和目的地内存组分别变为退火目标和替代存储器,且源地址和目的地地址可为相同物理地址(即,以再定位命令供应的物理地址)。相比之下,在多切片再定位(即, 相同数据字的多个切片被再定位)中,目的地内存组包括用于当前选择状态的操作内存组的全部(或至少多个子组)装置,且源内存组包括用于先前选择状态的操作内存组的全部 (或至少多个子组)装置。此外,在任何多切片再定位中,其中在源内存组和目的地内存组二者中包括相同的内存装置,且其中没有或无法在适当处重写数据,命令供应的物理地址组成源地址,但是确定且应用新的目的地地址(由于均被读取和写的内存装置内的物理存储地址在重新使用之前需要擦除)。作为实例,在图IOA的做法中从选择状态‘a’至选择状态‘e’的进程中,进行多切片再定位,其中数据切片从闪存装置FD1-FD4(即,源组=选择状态‘e’的操作内存组)检索且被写至闪存装置FD0、FD2-FD4( S卩,目的地组=选择状态‘a’ 的操作内存组)。因为内存装置FD2-FD4在源组和目的地组二者中出现(S卩,从这些装置中读取数据切片且在这些装置内再定位不同的数据切片),在源内存组内从其处检索数据的物理地址不同于在目的地内存组内在其处写数据的物理地址。因此,在图12的通用再定位序列内,在494,闪存控制器在源内存组(Srdet)内的源地址(SrcWiysAddr)执行内存读取以检索转移的数据(即,被再定位的数据)。在源内存组(Srdet)变成退火目标(例如,图10B、图IOC的实施例和图IOA的实施例内除了状态‘e’至‘a’之外的全部选择状态进程)时,仅仅访问退火目标(即,为退火目标,而不是队列的其它内存装置插入芯片选择线)以实现单切片检索。在源内存组包括多个装置时,访问这些装置的每个以检索多切片转移数据值,应用切片指派值用于源内存组(例如,图IOA的做法中用于选择状态‘e’的切片指派),以按升序使个别数据切片定路径至闪存控制器的内部数据路线上(即,dsO至内部路线0上、dsl至内部路线1上等等)。以再定位序列491继续,在两阶段再定位操作的情况中,在495将从源内存组检索的转移数据写至暂存内存且更新页面表以反映新存储位置。之后,在497,闪存控制器从由页面表指示的暂存内存地址检索转移数据,且继续进行以在496执行内存写。在单阶段再定位操作中,跳过495和497的暂存内存写和读取操作(因此其在图12内以虚线轮廓呈现),且闪存控制器直接从494的数据检索进行至496的数据写。在496的数据写中,视需要应用任何切片指派将转移数据写至目的地内存组 (DestSet)内的目的地地址(DestPhysAddr)。对于单切片再定位,至目的地地址的写是至替代存储器的单切片写。相比之下,在多切片再定位中,多个切片被写至目的地内存组,其中根据用于目的地内存组的切片指派将切片从闪存控制器的内部数据路线定路径至各自内存装置(例如,应用图IOA的做法中用于选择状态‘a’的切片指派值)。最后,在完成数据写操作后(或与其同时),在498标记源内存组(即,单切片再定位的情况中的退火目标, 或者多切片再定位的情况中的多内存装置)内的源地址用于直接或最终擦除。多点式拓扑内的退火操作可在多点式拓扑内以和在分层式拓扑内大致相同的序列进行退火操作,其中对于一个退火选择状态序列的每个而言,内存控制器进行至新退火目标和替代存储器。图13图
36解说明这个操作,其展示具有相同的上述一般结构(即,包括具有内部退火控制器503的控制逻辑501、页面表505、暂存内存507、内部数据路径509、控制路径511、主机1/0(未展示)和内存I/O 513)的闪存内存控制器,但是所述闪存内存控制器经由多点数据路径516 而非分层式数据路径的各自切片而耦合至一组闪存内存装置517 (FD0-FD4)。在每个闪存内存装置517是各自队列的内存装置的部分(即,数据路径516仅是如例如图6A的322所展示的分层式数据路径的一个切片),且每个内存队列包括一个或多个备用内存装置的实施例中,可应用上述基于队列的退火管理以退火每队列中的每个内存装置。更明确而言,给定队列内的备用装置可用作替代存储器,且因此和所选队列的退火目标配对以出于内存读取、写和再定位目的而形成虚拟装置。在这种实施例中,可通过在继续至下个队列之前进行通过每队列的内存装置,或者通过在继续至下个切片之前进行通过耦合至数据路径的给定切片的内存装置(即,进行通过内存装置的“切片”)而使退火目标排序。如果耦合至多点数据路径516的给定闪存内存装置不是N+内存队列(即,具有一个或多个备用内存装置的内存队列)的部分,那么可由装置的相同切片内的一个或多个其它闪存内存装置形成该装置的替代存储器。参考图13的图520,举例而言,闪存装置FDl和 FDO分别组成虚拟装置533的退火目标530和替代存储器531。如所展示,且正如上述N+1 队列架构中的退火操作,可通过重新引导从退火目标530至替代存储器531的新写和更新, 且根据为所关注的地址而在页面表505中指定的装置将内存读取引导至替代存储器531或退火目标530而进行这种N+切片架构内的退火操作(即,N个装置的每切片有一个或多个备用内存装置)。此外,如果从退火目标检索数据作为内存读取的部分,那么可将该数据复制至暂存内存507,在对应页面表条目中设置旗标(且在该页面表条目或关联位置中记录暂存内存位置)以实现从暂存内存507至替代存储器531的后续传送。如510所展示,除了物理地址不仅包括所存储数据的内部内存地址,而且还包括装置识别符或号码(即,装置地址)以识别装置的切片内的物理存储装置之外,页面表505内的条目可遵循和N+1队列架构的页面表条目大致相同的格式。正如N+1队列架构内的更新和写操作,可在每个写或更新操作之后更新页面表以展示替代存储器531作为更新或新写数据的存储库,且如果更新,使退火目标内530内的条目无效(或标记用于擦除)。如果在从退火目标530读取后在暂存内存507中采集数据,那么可视需要使退火目标内的源地址无效或标记用于擦除 (即,经由页面表更新),因此留下暂存内存作为所检索的数据的唯一有效源。或者,可不使退火目标530内的源地址失效或标记用于擦除,直至将数据写至替代存储器531以完成再定位操作。和一个队列的内存装置相比,给定切片的内存装置一般同时被访问且因此不需要被切片定序考虑所约束。相应地,切片的任何内存装置可用作给定退火目标530的替代存储器531,且替代存储选择可从一个退火循环变至下个。更一般而言,如图14所展示,替代存储器不需要是单个内存装置,且代以可以是在该切片的两个或多个其它装置中包括可用存储区的复合存储器M0。在该情况中,复合替代存储器仅仅需要具有足够的容量来保持退火目标的有效容量,且因此可组成比退火目标的总容量大体上更小的存储区域。相应地,从退火目标再定位至复合存储器的数据可与最初在促成复合存储器的内存装置内所写的其它数据共存。此外,如由标示复合存储器的组成区的阴影区所展示,可由一个内存装置促成两个或多个非连续区,且可通过每个参与的装置而将不同数量的存储器促成为复合替代存储器。多通道内存拓扑内的退火操作图15-19图解说明在多通道运行时间可退火内存系统内进行的退火操作。和耦合至数据路径的各自切片的内存装置相比,一般独立控制经由各自通道而耦合至内存控制器的内存装置。在一个实施例中,举例而言,将独立命令/地址路径提供给每个通道的装置 (即,每组相同通道装置共享独立于耦合至另一组相同通道装置的命令/地址路径的命令/ 地址路径),使得可在不同通道内同时(即,在时间上至少部分重叠)进行完全不同的内存变换。因此,参考图15,可与至通道B的闪存装置0 (经由内存通道516B耦合至闪存控制器 550的FD B0)的内存写同时进行通道A的闪存装置3( S卩,经由内存通道516A耦合至闪存控制器550的装置FD A3)内的地址X的内存读取。因此,在从相同通道的装置中选取虚拟装置对(应当注意,通道本身可为分层式、多点式或二者)的实施例中,可在该通道中与另一通道中的实况内存访问(和/或被动和主动数据撤出)同时地进行被动和主动数据撤出操作。或者(或是另外),可由来自各自通道的装置形成虚拟装置对。在一个实施例中,例如图15所展示,选择来自相同切片定位(0、1、2或3)但是来自各自通道(516A、516B)的装置以形成一个序列的虚拟装置对,在反转退火目标/替代存储器选择之前相机退火给定内存通道的每个装置以进行通过另一通道的装置。在图15的实施例中,举例而言,进程可为 FDA0/FDB0、FDAl/FDB1、. . ·、FDAn-l/FDBn-l、FDB0/FDA0、FDB1/FDA1、. . ·、FDBn-1/FDAn-1, 其中格式FDi/FDj中的第一个装置是退火目标且第二个是替代存储器,且“η”为每个通道内的装置的数目。或者,进程可在两个内存通道之间交替为FDA0/FDB0、FDB0/FDA0、FDAl/ FDBU...。替代使来自每个虚拟装置对的两个通道中的类似定位装置配对,可在每个进程 (或全部虚拟装置对)中形成一个或多个虚拟装置对而不考虑装置定位。举例而言,在图 16的实施例中,使装置FDAl和FDB3配对。举例而言,在一个通道展现备用容量时这个实施例可以是有用的。举例而言,在FDB3以其它方式而为空的程度上,该装置不仅可用作通道A的装置(例如,从通道A的给定装置撤至FDB3中,且接着在其已经被退火后再装入撤出的装置,使得FDB3自由接收该进程中的下个装置的数据)的替代存储器,而且还可用作通道B的其它装置的替代存储器。图16所展示的定位独立的装置配对在一个通道比另一通道包括更多装置时也可是有用的,使得更多构成通道的一个或多个装置必需和相同或不同通道中的不同定位的装置配对。如在多点拓扑中,多通道拓扑内的替代存储器不需要为单个内存装置,且代以可为在相同和/或不同通道的两个或多个其它装置中包括可用存储区的复合存储器。参考图 17,举例而言,替代存储器是由两个相同通道闪存装置(FD AO和FD Α2),和两个不同导通闪存装置(FDB2、FDB3)内的存储区形成。如在上述多点情况中,复合存储器仅仅需要具有足够的容量来保持退火目标的有效内容,且因此可组成大体上比退火目标的总容量更小的存储区域。此外,不同数量的存储器可通过每个参与的装置而“促成”复合替代存储器。图18图解说明多通道内存控制器570(这个实例中的闪存控制器)的实施例,该多通道内存控制器具有切换式内存I/O电路573,以促进通道至通道数据传送且因此的速度数据再定位操作。在所展示的实例中,数据是经由通道-A I/O电路572A而从退火目标 (FD Al)读取,接着经由交叉开关574(尽管可使用其它切换技术)而被定路径至用于通道B的I/O电路572B,以在该通道上提供用于写至替代存储器(FD B3)中的写数据。因此,在不需要要将数据传送至控制器核心571下,实现从通道A中的退火目标至通道B中的替代存储器的再定位。如果存在额外的内存通道,举例而言,可在耦合至内存通道A和B的退火目标和替代存储器之间再定位数据的同时,相对于额外内存通道进行不受限制的内存访问变换。 图19图解说明多通道内存控制器570内的替代的通道至通道数据再定位操作,其中数据是从通道A上的退火目标(FD Al)读取、存储在控制器核心571内的暂存内存585中 (且视需要经由数据读取/写路径587返回至主机请求器),且接着稍后被写至通道B上的替代存储器(FDB3)。由583展示数据检索流(粗虚线路径)且由585展示数据写流。在这个实例中,可同时进行两个通道内的数据操作,使得在从通道A中的退火目标读取转移数据(即,被再定位的数据)时,在通道B中进行(至少部分地)另一内存写或内存读取,且接着在将转移数据写至通道B中的替代存储器时,在通道A中进行(至少部分地)另一内存写或内存读取。即,可配置主机以一次仅在所述内存通道之一上访问数据(读取或写),因此释放另一通道用于退火有关数据撤出操作而不会干扰主机起始的流通量。暂存内存585 可用作从一个通道上的装置迁移至另一通道上的一个或多个装置上的数据(转移数据)的暂时保持位置。该暂存内存585可类似地用于暂时存储要回写至和退火目标相同的内存通道上的替代存储器的转移数据。在两种情况中,可更新页面表583以反映转移数据的暂时位置,使得在替代存储器中的再定位之前对读取转移数据的任何请求可实现从暂存内存 585的数据检索,而不需要访问退火目标。不管是否在暂存内存580中暂时缓冲转移数据, 在完成数据再定位操作后更新页面表以展示通道B替代存储器作为数据的新存储库。
多备用拓扑中的退火操作图20A-20E图解说明N+2内存架构内的退火操作。即,每个队列或切片的装置包括两个备用装置,因此允许在和至一个备用装置的数据撤出同时退火(即,加热)另一个备
用装置。图20A图解说明每操作组具有四个内存装置但有两个备用装置的分层式N+2内存架构的实施例(N = 4),使得每个N+2内存队列615包括六个内存装置。内存控制器600(本实例中为闪存控制器,如内存队列由闪存内存装置FD0-FD5构成)包括控制逻辑601 (具有内部退火控制器60 、页面表603、暂存内存605、命令路径611、数据读取/写路径607、内存I/O电路609和控制器I/O电路(未展示),其全部一般如上所述般操作。除了可个别控制的芯片选择线是以专用方式耦合至每个内存装置以使其能够如参考图11所讨论般独立选择之外,外部数据路径614的各自切片耦合在内存I/O电路609和每个闪存内存装置 FD0-FD5之间,且命令/地址路径(未展示)共同耦合该队列的全部装置。如上所讨论,在替代实施例中,每个内存装置可耦合至各自(即,独立、专用)地址路径和/或各自命令路径,而非耦合至共同命令/地址路径。这种布置将容许每个内存装置在给定内存访问内接收不同物理地址,且因此能够在内存装置内的不同物理地址容忍坏区块且提供对装置特定磨损分级的支持。仍然参考图20A,提供两个备用装置使内存控制器600能够在一个备用内存装置内执行退火操作(即,加热),本文称为“退火装置”,同时将下个要退火的装置撤至另一备用内存装置。因此,可如图20B所展示般使撤出操作和退火操作管线作业,其中,选择状态(在每个退火循环中从状态‘a’进行通过状态‘f’ )中撤出装置(ev)、退火装置(XX)和替代存储器(as)的分步进程如图20C所展示。可在如图20D所展示的分层式架构中进行在另一个备用装置中正在进行退火的同时,将要退火的下个装置撤至最新近退火的备用(空白或空的)装置的相同一般做法。在所展示的示例性状态中,在退货闪存装置1时,闪存装置0 (闪存DevO)和闪存装置2分别组成虚拟装置的替代存储器和撤出装置。图20E图解说明具有两个备用装置的系统的另一有利特征。即,在给定内存装置内完成退火操作后,该装置和新退火目标可被给定内存访问循环期间(例如,内存写期间) 所访问的装置组忽略,且因此可用于同时数据撤出操作。在图20E中,举例而言,在一个或多个内存装置FD2-FD5内的主机请求内存访问的同时,相对于刚退火的装置FDO和新退火目标FDl进行数据再定位操作。在所展示的特定实施例中,通过内存I/O电路实现从FDl至 FDO的分路传送,因此使在主机请求流通量的同时能够在两个装置之间有无冲突的通信。通过这个操作,在主机请求内存访问下有效隐藏主动数据撤出,可比在主机和数据再定位操作之间需要序列化的实施例更快速地完成数据撤出。图21A-21D图解说明N+3分层式或多点式架构中可采用的退火进程,和替代退火管线作业。在图21A的进程中,可以看到在退火进程中,应用至内存队列640内的给定装置的退火操作在两个连续选择状态上扩展且同时在每个选择状态中退火所述两个装置。更明确而言,在给定选择状态内,第一装置(前导装置)的退火从先前选择状态继续且在当前选择状态中结束,同时第二装置(从动装置)是在当前状态中起始且因此会在后续选择状态中结束(其中当前状态从动装置变为下个状态前导装置且当前状态前导装置变为下个状态退火目标)。图21B图解说明对应于图21A的选择状态进程的退火管线作业,其表明相同队列或切片内的多个内存装置的交错但同时的退火。图21A和图21B的退火进程和管线作业尤其可应用于预期退火操作比装置撤出操作花费更长时间(至少必要时)时和希望更高的退火频率时。即,每执行每个完整退火循环(即,通过全部选择状态的进程)退火平均(Ν+;3>2个装置。相比之下,在预期撤出操作比退火操作花费更长时间(至少不定期)的实施例中,可希望在退火另一个时同时撤出两个内存装置。用于这个实施例的退火管线作业展示图2IC中,其展示对于每个选择状态,一个装置被退火(退火装置),同时达成另一装置的撤出(前导撤出者装置)且起始第三装置的撤出(从动撤出者)。图21D在包括控制器630和由七个内存装置FD0-FD6构成且支持退火内存子系统的Ν+3内存系统的内容背景中图解说明这个做法。如所展示,在正退火 FD0(即,加热至退火温度)的间隔上,撤出FDl且接着撤出FD2,同时装置FD3-FD6形成操作内存组。图21E图解说明可应用于N+3内存系统的又另一撤出方法。在这个情况中,在退火第三内存装置时同时撤出队列640内的两个内存装置。更明确而言,在所展示的实施例中,在将另一内存装置被动撤至第二替代存储器(as)中的间隔期间将接着要退火的内存装置主动撤至(如由“ae”所指示)第一替代存储器(as)中。在撤出者装置的被动和主动撤出期间加热的装置被标记为“XX”。因此,在从选择状态‘a’至‘b’的进程中,对于新选用于被动撤出(Pe)的装置,选择状态‘a’中主动撤出的内存装置变为退火装置(XX),选择状态‘a’中被动撤出的内存装置替代存储器(as)。如在上文讨论的实施例中,撤出装置及其各自替代存储装置组成形成操作内存组的部分的虚拟装置对。因此,在图21E的实施例中,操作内存组由两个个别内存装置(“op”)和两个虚拟装置对(ae/as和pe/as)组成。在替代实施例中,可在内存队列中包括不同数目的内存装置且同时撤出装置的数目(且因此操作内存组中包括的虚拟装置对的数目)可扩展至任何可行数目。更一般而言,可采用除了图21A-图21E所展示的进程布置、操作管线作业和架构之外的进程布置、操作管线作业和架构,且N+3分层或多点式架构中表明的概念可扩展至具有N+4、N+5等等的装置计数的架构。前台退火图22图解说明可在前台退火130中进行的操作-运行时间退火操作的通用序列, 其中在退火可退火内存子系统(或多个子系统)时该系统的核心操作被暂停且接着在完成退火后重新开始。如131所展示,响应发生触发事件而开始前台退火序列。触发事件可为自动确定/检测的状况或状况组651或者由操作员起始655。在自动检测的情况中,触发事件可为确定性的(例如,检测到自最后退火操作起经过了预定或编程的时间量,或者已经到达(即,安排)特定时间点),或者为非确定性的(例如,自最后退火、错误的极限数目/率起,系统在预定/编程时间段、极限数目的编程/擦除操作内空闲)或其任何组合。在操作员起始的前台退火的情况中,举例而言,通过使用操作系统实用程序或其它用户接口选择, 系统实用程序的人类或人工操作员可明确指示退火操作,因此肯定地选择使该系统处于暂停状态决定完成或终止退火操作中。作为一个特定实例,如果可退火内存子系统组成计算机系统或消费类电子设备的主要内存(或另外频繁访问的内存)的部分或全部,那么人类操作员可确定(通过指示器或其它)可通过退火内存子系统而改进系统性能,且选择在其中加载退火操作的控制面板实用程序或其它维护控制接口。用户接口可用来追踪退火进程,其展示当前退火中的装置或多个装置、当前退火操作的剩余时间、剩余要退火的装置或多个装置(和全部或每个的估计时间),以及已经退火的装置或多个装置。任何有问题的内存(例如,坏的或不可靠扇区、丛集装置、队列等等)同样可被注意到且提示操作员作出关于内存避免(例如,将问题内存标记为不可靠且不予使用)和或更换的决定。然而被触发后,在以下每个情况中前台退火操作通常以相同方式继续从要退火的内存撤出数据至备份存储器或(多个)备用可退火装置133,执行退火(即,装置加热) 操作135,且接着以任何撤出的数据再装入被退火的内存137。在图22内以虚线轮廓展示数据撤出和再装入操作以强调其任选特性。S卩,在数据已经被备份或可以其它方式从其它存储器中恢复的应用中(经由如廉价冗余磁盘阵列 (RAID)系统中的冗余存储器高速缓存的内存内容),不需要执行数据撤出且可相应触发事件立即开始装置加热。类似地,在一些情况中,在恢复核心系统操作之前不需要将数据再装入被退火的内存子系统中,且代以可将退火的内存重新构成系统操作的常规过程的部分 (例如,回写或写通过至高速缓存,存储作为对RAID内容的写或更新的部分,等等)。如果在135的退火之前执行数据撤出,那么如661所展示数据可被撤至不同于可退火内存子系统的后备存储器(即,撤至含有可退火内存子系统的主机系统内或独立于该主机系统的另一存储器中),或者如663所展示可被撤至可退火内存子系统本身的备用存储器中。可类似采用出于后台退火的目的采用来撤出退火目标的各种做法以将退火目标撤出作为前台退火序列的部分。关于退火操作本身,可如671所展示立刻全部地,或由如673所展示的装置或装置群组循序地退火可退火内存子系统的组成内存装置(本文称为“并行”退火)。在循序退火的情况中,可相对于如上文在后台退火的内容背景中所述的退火目标和一个或多个替代存储装置进行任何数据撤出。此外,并行退火和循序退火之间的选择可根据应用而为固定的, 或者以编程建立。在任个情况中,看考虑若干因素且/或将所述因素编程指定为影响并行退火和循序退火之间的选择。举例而言,在携带式装置的情况中,可仅在对接装置或以其它方式由线电源对该装置供电(即,非电池供电)时能够并行退火。相反,如果线电源可用, 那么可在并行退火和循序退火之间的选择中权衡提供受限的装置功能(或者同时执行其它维护操作)和退火操作的急迫性。如上所讨论,137的内存再装入操作是任选的,且如果需要或必需,可通过常规操作流通时发生的数据迁移而被明确执行(例如,将撤出的数据传送回至可退火内存子系统中)和/或实现。在任个情况中,在已经完成任何所需内存再装入后,可恢复主机系统的核心操作。图23A-23C图解说明本文称为“突发退火”的一种类型的前台退火。在图23A的示例性流程图中展示突发退火的一般序列。即,在701使内存子系统或含有内存子系统的设备脱机。接着,在703,根据上述后台退火方法执行退火,除了下列之外(i)退火控制器直接继续至主动撤出,和一个内存装置的退火(加热)同时撤出另一内存装置;(ii)通过分路传送(例如,通过内存控制器的输入/输出电路内的交叉开关或其它交换网络)执行迁移且因此暂存内存中无暂时存储,和/或(iii)在退火序列的各自线程中并行执行多个退火和/或数据撤出。在703中已经于全部目标内存装置内完成退火操作后,在705使内存子系统或设备返回联机,能够恢复内存访问操作。图23B图解说明具有闪存控制器720和闪存装置(“闪存”)组的闪存内存系统内的突发退火。闪存控制器本身包括交叉开关I/O电路726、暂存内存721、页面表723和读取/写数据路径(“读取/写路径”),其每个一般如上所述般发挥功用。如所展示,在使闪存内存系统脱机后,在第三闪存装置内的退火(加热)操作的同时将数据从一个闪存装置主动撤至最新近退火的闪存装置。如727所展示,在完全撤出接着要退火装置且在退火目标(现在为最新近退火的闪存装置)内完成退火操作后,和将另一闪存装置主动撤至最新近退火的装置同时退火(加热)完全撤出的闪存。图23C图解说明和图2 相同的闪存内存系统内的替代突发退火序列,但是其中多个退火(加热)操作和多个数据撤出同时进行。 由于可在如在参考图2 所述的单线程突发退火操作的情形中进行每个操作,本文将这种多个同时退火/撤出操作称为退火线程。单线程和多线程退火操作平衡个别退火线程的组成操作中的并行性(且多线程操作还平衡两个或多个这种个别退火线程之间的并行性), 以加速总内存队列的退火,使整个内存队列能够被更快速地退火且重新服务。图M图解说明示例性压缩退火操作,可进行该示例性压缩退火操作以在另外不具有备用装置的内存子系统内提供备用内存装置,或者出于平衡上述多备用技术(例如, N+2、N+3等等,以及参考图23A-23C所述的脱机突发退火技术)提供额外备用内存装置。以 751开始,使运行可退火内存系统或包括相同物的设备脱机。之后,在753,减小数据存储需求以释放一个或多个备用(或额外备用)的内存装置。如所展示,可个别或组合地进行若干不同技术以减小内存系统内所存储的数据的净数据存储需求(即,数据量),包括例如使用扇区量化、数据去复制或其它无损或有损技术编码全部或部分的数据量;将数据的部分移出内存系统;和/或使确认或已知是冗余地存储在其它存储系统,诸如硬盘、主要内存、高速缓存等等中的数据无效(例如,并入两个或多个基于半导体的RAID-5内存子系统, 使得用来维持所述子系统之一的奇偶校验数据的一个内存装置(或多个装置)至少暂时无需用于该目的且因此可用作备用内存装置)。在一个实施例中,在从内存子系统中移出或传送数据的情况中,可根据预定或编程选择的政策(例如,存储在如图UA所讨论的退火控制寄存器内)来识别选择用于传送的数据,所述政策偏向传送内存子系统(或主机闪存设备)内较少可能有价值(需要)的数据,诸如冷页面而非热页面。在任何情况中,在减小最初数据量的净存储需求后,在755将现在更小的数据量压缩至减小数目的内存装置中,产生如上述N+架构(即,Ν+1、Ν+2、Ν+3等等)中的一个或多个备用或额外备用的内存装置。 相应地,在757,即使最初的存储布置不包括备用装置,仍可根据上述后台退火方法和突发退火方法执行退火操作。在已经退火内存子系统的全部内存装置(或者所述装置的目标子组)后,数据可视需要被编码或传送回至内存子系统中(如759所展示),以在761使内存子系统或主机闪存设备回到联机时能够恢复操作。图25A图解说明示例性用户接口 680,其可呈现给搭配前台和/或后台退火操作的运行时间可退火系统的人类操作员。更明确而言,在加载“退火管理器”程序(即,指示(多个)系统处理器执行指令序列,该指令序列在操作员可观看的显示器上显示用户接口 680, 且根据操作员输入进行退火操作)后,系统可收集关于退火的状态信息(例如,自最后次退火起经过的时间、自最后次退火起编程/擦除操作的数目、编程和/或位错误率、需要实现装置编程的程序循环的数目的历史简档等等),并且将该信息呈现给用户,以使用户能够作出关于是否需要退火、是否退火全部装置或装置子组(且哪个装置明确要退火)、撤出需要的估计时间、退火和再装入目标内存装置等等的知情的决定。参考所展示的特定实例,退火管理器用户接口 680包括标有“文件”、“动作”和“帮助,,的示例性下拉菜单。文件菜单提供包括如683所展示的“首选项”、“印刷报告,,和“退出”的用户可选择菜单项,同时动作菜单提供如685所展示的菜单项“选择目标”、“开始退火”、“中止退火”和“退出”。用于帮助菜单的菜单项未展示,但是可包括各种帮助和状态项以使用户能够经由下拉菜单和一般用户接口而收集关于退火操作和各种可用选项的信息。关于文件菜单项,可选择“首选项”来获得首选项窗口为操作员录入关于退火的各种选项和首选项(参数)。举例而言,可提示操作员选择/启动是否启动后台退火、是否执行并行退火或循序退火;系统可发布以指示退火需要的各种可见/可听警告;触发事件标准/政策、装置选择标准/政策(即,系统将如何选择退火目标和/或替代存储器,包括可编程选择序列)、页面表管理选项、拓扑特定选择/选项、退火进程方法、暂存内存使用政策,等等。更一般而言,可经由首选项窗口(或搭配退火管理器程序而可用的其它用户接口显示器)而将本文所述的任何任选和可变退火有关的参数(和/或选择、操作等等)呈现给用户。可选择“印刷报告”菜单项以印刷关于过去的或正在进行的退火操作的各种报告, 且可选择“退出”菜单项以终止退火管理器程序(实用程序)的执行。关于动作菜单,菜单项“选择内存”可用来指定要退火的给定内存子系统内的特定内存子系统和/或特定内存装置。可选择开始退火和中止退火菜单项来分别起始和中止所选内存装置(或者由首选项设置采集的目标)的退火。可根据应用需要而在退火管理器程序内提供另外/不同的菜单项和/或下拉菜单。仍然参考示例性用户接口 680,提供卷标窗口 691以列示系统中存在的每个可退火内存子系统,并且展示退火状态(例如,需要的退火、进行中退火、最新情况)、存储容量、 未使用的存储器、剩余寿命(例如展示非易失性内存装置中剩余寿命的进度条)、最后退火操作的日期/时间和完成每个卷标的退火操作的估计时间(例如,退火在进行中时的时间, 或者退火未在进行中时所需的总时间)。关于完成退火的寿命剩余进度条估计的时间,这些值可根据所存储的参数来推算,根据定期的测量来确定。这些确定和测量也可用来起始维护事件(即,涉及数据迁移的软件起始维护时间)。此外,可提示用户当给定装置或卷标内剩余预定(例如编程)数量的寿命时视需要起始退火,且/或可在剩余寿命到达临界极限 (例如,5%或3%-再次,预定或编程的极限)时自动触发退火。在图25A所展示的特定实例中,呈现三个可退火内存子系统,其中子系统A中需要退火、子系统C中不需要退火且子系统X中退火操作正进行中。因此,由于该装置正经历退火,子系统X的剩余寿命进度条展示为“ n/a”。也可呈现退火进程窗口 693以展示进行中的任何退火的状态。在所展示的实例中,子系统X内的进行中退火操作完成67%,且到此时,回收(S卩,从先前不可使用状态中恢复)如697所展示的IM千兆位(( )存储容量。呈现用户可选择的控制按钮(即,可通过用户操作鼠标或其它指针装置而启用或“点击”的显示图像),以使用户能够开始前台退火操作(控制按钮701、中止正在进行的退火操作(控制按钮70 或显示退火状态窗口(控制按钮70 。根据系统的状态,控制按钮701、703、705在形式上可对操作员可用或不可用。 在所展示的示例性状态中,举例而言,由于退火已经正在进行,故而“开始退火”按钮701不可用(如阴影轮廓所展示)(应当注意,如果系统资源允许,可在后台和/或前台中同时退火多个子系统)。在710展示示例性退火状态窗口 711,且该示例性退火状态窗口包括经历退火的内存子系统(本案中为子系统X)的图像715,该图像展示完成退火的组成装置,退火正在进行的组成装置和尚未退火的组成装置。在所展示的实例中重复和状态显示器有关的存储卷标和估计的剩余时间。可呈现若干其它状态值和细节,包括退火后的测试结果、仍可疑或已知为完全或部分无法操作的内存装置,等等。此外,退火状态窗口 711对应于同时退火若干内存装置(但不是全部)的前台退火操作。退火状态窗口还可呈现关于任何正在进行的后台退火操作的状态。可通过执行操作系统实用程序(例如,Microsoft Windows ( “Microsoft”和 “Windows”可受Microsoft公司的一个或多个商标保护))控制面板应用或类似软件实施的实用程序而呈现图25A的用户接口。如一般由图25B的流程图所展示,当执行时,这种软件实施实用程序可监测内存维护事件的需要,其中该内存是多个元件存储系统的一个元件 (或组件)且和关于选择数据撤出选项的用户互动。举例而言,在765检测维护事件(或者装置更换或数据撤出的任何其它原因/动机)的需要后,软件实用程序可在767以一组一个或多个选项初始提示用户从内存中再定路径数据,且响应用户选择/指定在主机系统的运行时间期间被动地撤出内存。之后,软件实用程序可在769再次以一组一个或多个另外选项提示用户(例如,在已经满足关于撤出的预定条件后),该一个或多个另外选项包括例如(但不具限制性)(i)执行维护事件的系统监视性能且/或执行内存的主动撤出,其中该内存的内容被移动且重新映射至该存储系统的另一个元件。如下文所讨论,可由执行软件程序(即,可存储在机器可读媒体上的可执行指令)的计算机/处理器实施上述用户接口和有关功能。举例而言,退火管理器可以是搭配操作系统提供的配置/管理工具的部分。 在至少一个实施例中,退火管理器可允许用户定期断言估计的剩余装置寿命且/或实施用户引导的退火而不用等待自动检测维护事件的需要。退火电路如参考图1所讨论,可在晶片上、封装中或系统中实施用来将所选集成电路装置加热至退火温度的退火电路。举例而言,图沈图解说明具有系统中和封装中退火电路的组合的闪存内存系统的实施例。更明确而言,闪存控制器780具有至加热器/控制器装置781 的退火控制接口 782 (例如,集成电路本身),该加热器/控制器装置781经由控制路径784 而对一组封装中加热器787提供加热控制和/或电力,其中每个封装中加热器是用来循序或同时加热封装内的一个或多个闪存装置(“闪存”)。该加热器/控制器和/或封装中加热器可由比用来对逻辑电平集成电路供电的电压高的电压(Va)供电(或至少由专用或隔离电源且/或由能够对加热器负载供电的电源),且因此经过专门配备以输送退火操作所需的电力。如所展示,动态随机访问内存(DRAM) 785或任何其它类型的内存可经由接口 786耦合至闪存控制器以提供暂存内存(可替代地在闪存控制器内包括该暂存内存), 且可提供一个或多个高速接口(例如且不具限制性,第二代扩展外围组件互连总线(PCI Gen2))106以使一个或多个主机装置能够访问闪存控制器且因此闪存内存系统。可根据适于系统应用的任何拓扑在闪存内存装置和闪存控制器780之间耦合命令、地址和数据路径 108ao图27图解说明多晶片闪存内存封装800的实施例,该多晶片闪存内存封装800具有封装中加热结构且可在图26的闪存内存系统内使用。如所展示,闪存内存封装包括一组四个闪存内存晶片803^80 (可提供更多或更少的晶片),该组四个闪存内存晶片堆叠在多层(层压)基板801上且经由各自晶片附接加热方块805而附接。该多层基板包括导电分布结构以在该基板的暴露表面处将晶片互连垫耦合至该基板的下侧上的焊接球815或其它电路板互连结构,其中引线807或其它晶片互连结构将晶片互连垫耦合至内存晶片本身上的相对垫上。堆叠的晶片803和晶片互连结构807可由模具809或其它外壳予以密封。在一个实施例中,可如细节图810所展示般实施每个晶片附接加热方块805。艮口, 顶层812可由导热晶片附接带或膜形成,该导热晶片附接带或膜为约12. 5至25微米厚且具有约每米乘开尔文度2瓦特(W/mK)的热导常数(“k”)。如所展示,加热方块或原件本身形成中间层814且可由约25至50微米厚的硅间隔件(例如,形成热产生的电阻性元件); 聚酰亚胺/FEP Thermofoil 加热器(约75微米厚)或约1至5微米厚的绝缘体上硅(SOI) 层的任一个(或组合)来实施。应当注意“聚酰亚胺/FEP Thermofoil ”和“硅酮橡胶热片(Silicone Rubber Thermofoil) ”可受 Minnesota,minneapolis 市 Minco 公司的一个或多个商标保护,绝缘体上硅层的实例包括California,San Jose市Silicon Genesis公司制造的绝缘体上硅层。底层816可由热绝缘晶片附接膜或带形成,该热绝缘晶片附接膜或带具有12. 5至25微米范围的厚度和约0. 2ff/mK的热导常数。应当注意,每个晶片附接加热方块的层的厚度、热导常数、数量和实施材料/结构仅提供作为实例,且可在不脱离本文的公开的期望范围下在替代实施例中变化。更一般而言,图27所展示的堆叠式晶片封装仅仅是可在图26的系统(或本文公开的任何其它内存系统)内使用的封装中的加热布置的一个实例。可在替代实施例中采用包括上文所讨论的系统中和晶片上加热布置的其它加热布置。电子表示-计算机可读媒体应当注意,可在一个或多个计算机可读媒体上记录用来呈现用户接口、接收用户输入且执行底层退火管理操作的图23的用户接口 680和底层程序代码(即,指令序列和相关数据),供专用或通用计算机系统或消费电子装置或设备的一个或多个处理器稍后检索和执行用。可在其中体现指令和数据的计算机可读媒体包括(但不限于)各种形式的机器可读存储媒体。这种机器可读媒体的实例包括例如(且不具限制性)光学、磁性或半导体存储媒体,诸如光碟、CD、DVD、计算机内的主动RAM,或在机器的完全或部分控制下可从其处提取指令的任何其它类型的物理装置。本文公开的各种电路可使用计算机辅助设计工具来描述且在其行为、寄存器传送、逻辑组件、晶体管、布局几何形状和/或其它特征方面表述(或表示)为各种计算机可读媒体中体现的数据和/或指令。在其中可实施这种电路表述的文件和其它对象的格式包括(但不限于)支持诸如C、Veril0g和VHDL的行为语言的格式、支持比如RTL的寄存器级描述语言的格式,和支持诸如⑶SII、⑶SIII、⑶SIV、CIF、MEBES的几何形状描述语言的格式和任何其它适当格式和语言。在其中可体现这种格式化数据和/或指令的计算机可读媒体包括(但不限于)如上所讨论的各种格式的机器可读存储媒体(例如,光学、磁性或半导体存储媒体)。当经由一个或多个计算机可读媒体而在计算机系统内接收时,可搭配执行包括 (但不具限制性)网络表产生程序、放置和定路径程序和类似程序的一个或多个其它计算机程序,而由计算机系统内的处理实体(例如一个或多个处理器)处理上述电路的基于这种数据和/或指令的表述,以产生这类电路物理表现的表示或图像。之后,可通过例如实现在装置制程中产生用来形成电路的各个组件的一个或多个掩膜而在装置制造中使用这种表示或图像。在前述描述中且在附图中,已经提出特定方法和图示符号以提供对本发明的透彻理解。在一些情形中,方法和符号可暗指不需要实践本发明的特定细节。举例而言,任何特定数目的位、信号路径宽度、发信号或操作频率、组成电路或装置及类似物可不同于上文在替代实施例中所述者。此外,展示或描述为多导体信号链路的电路元件或电路方块之间的互连可替代地为单导体信号链路,且单导体信号链路可替代地为多导体信号链路。展示或描述为单端的信号和发信号路径也可以是差分的,且反之亦然。类似地,描述或描绘为具有有效高或有效低逻辑电平的信号在替代实施例中可具有相对的逻辑电平。可使用在其中可实施逻辑和模拟电路的金属氧化物半导体(M0Q技术、双极型技术或任何其它技术实施集成电路装置内的组成电路。相对于术语,在将信号驱动至低或高逻辑状态(或充电至高逻辑状态或放电至低逻辑状态)以指示特定状况时该信号被称为“被断言”。相反,将信号称为“消除断言”以指示信号被驱动(或充电或放电)至除了断言状态之外的状态(包括高或低逻辑状态,或当信号驱动电路转变至高阻抗状况,诸如开路漏极和开路集极时可能出现的浮动状态)。当信号驱动电路在耦合于信号驱动电路和信号接收电路之间的信号线上断言(或由内容确切声明或指示时消除断言)信号时,该信号驱动电路被称为将信号“输出” 至信号接收电路。当在信号线上断言信号时,该信号线被称为“启用”,且在消除断言该信号时称为“停用”。相应地,附接至信号名的前缀符号“/”指示信号为有效低信号(即,断言状态为逻辑低状态)。信号名上的线(例如,< 信号名 >)也用来指示有效低信号。本文使用术语“耦合”以表述直接连接以及经由一个或多个中间电路或结构的连接。集成电路装置 “编程”可包括例如(且不具限制性)响应主机指令将控制值加载至该装置内的寄存器或其它存储电路中,且因此控制该装置的一个操作方面,通过一次编程操作(例如,在装置制造期间在配置电路内熔断保险丝)建立装置配置或控制该装置的一个操作方面,和/或将该装置的一个或多个选择接脚或其它接触结构连接至参考电压线(也称为条带化)以建立特定装置配置或该装置的操作方面。术语“示例性”用来表述实例而非首选项或需求。应当容易明白,所属领域技术人员也将想到前述原理的各种实施方案。举例而言,如所提及,上文所呈现的主动撤出技术可用来准备装置(例如,非易失性内存)供稍后更换或其它维护。如所提及,可应用于这种撤出的技术可包括逐渐扩大的撤出,其包括被动撤出,之后接着响应转折点或用户引导的实施而触发的主动撤出(在希望时)。这些技术可由硬件(诸如退火控制器)管理,其中一些、大多数或全部这些功能被卸载至软件。来自上述方法的其它特征可进一步适当组合这些技术。还可使用基于可退火装置和退火控制器的其它架构。举例而言,如图沈所例示, 系统可包括内存控制器、多个可退火装置(例如,具有加热元件的集成电路)和具有用于每个可退火装置的加热元件电路的控制路径的退火控制器。退火控制器尤其可调节用来驱动每个退火程序且提供加热器控制电路的功能的相对高电压供应源。该高电压供应源可与退火控制器整合在一起或者经由独立芯片(IC)实施,且该退火控制器可组合内存控制器或可在独立IC中实施。另外,上述任何技术可在监测内存维护事件的需要的装置中实施,其中该内存为多个元件存储系统的一个元件,该多个元件存储系统允许用户在检测维护事件的需要后指定动作,且允许用户在预定或可编程的转折点采取动作(例如,需要退火或其它维护变得更急性时)。这种系统可包括运行适当软件的通用计算机系统。用户可具有用于从内存对数据重新定路径的一组一个或多个选项,以因此在系统的运行时间期间被动或主动地撤出内存;举例而言,用户可选择用于撤出的方法,包括撤至相同层位的其它装置(例如,主要内存中的闪存装置)、次要存储器或控制器“暂存”内存中的暂时存储器,或高速缓存。在一个实例中,可提供这些功能作为计算机操作系统的部分或作为分布用于安装在现有计算机系统上的软件。上文例示的又另一种形式是管理多层位内存的实施例,其中退火循环在这些层位的一个中执行,且退火后的撤出和/或数据重建依赖于其它层位内存的一个。举例而言,如上文所介绍,可退火装置可包括组成部分或全部主要内存的多个闪存装置,同时其它层位的内存可包括处理器高速缓存和任选的次要硬盘存储器。这种实施方案使用退火或内存更换来延长携带式装置有效寿命而促进根源于非易失性主要内存(例如,手持或膝上型计算机)的携带式装置的发展。在另一实施方案中,这些技术也可搭配软件实用程序使用,该软件实用程序根据最大允许的写循环、时间段、测量标准或使用如上所讨论的其它参数,向用户显示剩余装置寿命的指示或进度条(例如,统计图表)。接着还可搭配选择性执行数据撤出或以其它方式准备内存用于更换或维护的逻辑而采用这种进度条。也可在具有或不具有退火能力下将这种软件实用程序分布成操作系统的部分或分布成独立分布的软件。一般来讲,本文所呈现的原理提供一种用于内存装置的系统中退火或是以其它方式执行维护的方法,其中撤出内存内容,其中执行退火或维护,且其中该内存被适当重装。 对于一些实施例,可在退火之前执行撤出步骤;在其它实施例中(例如,其中诸如在RAID系统中已经存在数据备份),可以后期退火(或后期维护步骤)取代撤出步骤,即,在没有先前撤出的情况下,在通过撤出的原位重装步骤而重新建立冗余的情况下。可搭配闪存内存或搭配其它形式的内存应用这些技术。虽然已经参考本发明的特定实施例描述本发明,但是将显而易见的是,可在不脱离本发明的较宽泛精神和范围下对本发明进行各种修改和改变。举例而言,可组合任何其它实施例或代替实施例的对应特征或方面,在至少可行之处应用任何实施例的特征或方面。相应地,本说明书和图示应当视为说明性而非限制性精神。
权利要求
1.一种操作具有非易失性内存装置和至少一个其它内存装置的系统的方法,所述方法包括在所述系统操作期间检测事件;将数据从所述非易失性内存装置撤至所述至少一个其它内存装置;和将所述非易失性内存加热至极限温度以消除所述非易失性内存装置的使用所致的退化。
2.根据权利要求1所述的方法,其中在所述系统操作期间检测所述事件包括确定自检测先前事件起经过了预定量的时间,其中先前响应所述先前事件将所述非易失性内存装置加热至所述极限温度。
3.根据权利要求2所述的方法,其中确定经过预定量时间包括自先前响应所述先前事件将所述装置加热至所述极限温度起,确定在所述非易失性内存装置内已经执行的操作的极限数目。
4.根据权利要求1所述的方法,其中所述非易失性内存装置包括闪存内存装置。
5.根据权利要求1所述的方法,其中在所述系统操作期间检测所述事件包括结合所述非易失性内存装置的操作确定已经到达的错误极限。
6.根据权利要求5所述的方法,其中确定已经到达错误极限包括确定已经检测到的坏存储区块的预定数目。
7.根据权利要求1所述的方法,其中在所述系统操作期间检测所述事件包括检测由所述系统内的可编程寄存器指定的事件的发生。
8.根据权利要求1所述的方法,其中所述至少一个其它内存装置大体上由非易失性内存组成,且其中所述非易失性内存装置和所述至少一个其它内存装置示例于主内存的扁平层位中。
9.根据权利要求8所述的方法,其中所述非易失性内存装置为所述系统内的多个内存装置的第一内存装置,且其中所述方法包括在将所述非易失性内存装置加热至所述极限温度的同时,在所述多个内存装置的至少一个内存装置而非所述非易失性内存装置内执行内存访问。
10.根据权利要求1所述的方法,其中在将所述非易失性内存装置加热至所述极限温度之前执行撤出。
11.根据权利要求1所述的方法,其中所述至少一个其它内存装置包括第二内存装置和第三内存装置,且其中撤出数据包括将第一子组数据从所述非易失性内存装置撤至所述第二内存装置,并且将不同于所述第一子组数据的第二子组数据撤至所述第三内存装置。
12.—种数据存储系统,其包括非易失性内存装置;至少一个其它内存装置;和控制电路,其在所述数据存储系统操作期间检测指示抵消所述非易失性内存装置的使用有关退化的需要的事件,且其响应检测到所述事件加热所述非易失性内存装置以抵消所述使用有关退化;和数据迁移电路,其执行下列项之一 (1)在加热所述非易失性内存装置之前将数据从所述非易失性内存装置撤至所述至少一个其它内存装置,或者( 在加热所述非易失性内存装置之后在所述非易失性内存装置中自所述至少一个其它内存装置重建数据。
13.根据权利要求12所述的数据存储系统,其中所述内存装置包括非易失性存储单元,所述非易失性存储单元在执行编程操作以在所述非易失性存储单元内存储数据时将渐渐减少的数据保持时间展现为使用有关退化的一个方面。
14.根据权利要求12所述的数据存储系统,其中检测指示抵消使用有关退化的需要的事件的所述电路包括检测所述内存装置内已经执行的性能退化操作的极限数目的电路。
15.根据权利要求14所述的数据存储系统,其中检测已经执行的性能退化操作的极限数目的所述电路包括可编程寄存器,和在从外接至所述数据存储系统的源接收指示性能退化操作的所述极限数目的值后在所述可编程寄存器内存储所述值的电路。
16.根据权利要求12所述的数据存储系统,其中所述数据迁移撤出电路在加热所述非易失性内存装置之前执行将数据从所述非易失性内存装置撤至所述至少一个其它内存装置。
17.根据权利要求12所述的数据存储系统,其中检测指示抵消使用有关退化的需要的事件的所述电路包括确定在所述非易失性内存装置操作期间已经检测到的错误的极限数量的电路。
18.根据权利要求17所述的数据存储系统,其中确定在所述非易失性内存装置操作期间已经检测到的错误的极限数量的所述电路包括确定在一个时间间隔内已经检测到的错误的极限数量且因此确定已经到达极限错误率的电路。
19.根据权利要求17所述的数据存储系统,其中确定已经检测到的错误的极限数量的所述电路包括检测在所述非易失性内存装置内已经识别的不可靠存储区的极限数量的电路。
20.根据权利要求19所述的数据存储系统,其中确定已经检测到的错误的极限数量的所述电路包括检测所述非易失性内存装置内已经不成功的数据编程操作的极限数目的电路。
21.根据权利要求19所述的数据存储系统,其中确定已经检测到的错误的极限数量的所述电路包括检测在从所述非易失性内存装置检索的数据内存在位错误的极限数量的电路。
22.根据权利要求12所述的数据存储系统,其中加热所述非易失性内存装置以抵消所述使用有关退化的电路包括被设置成邻接所述非易失性内存装置的加热电路。
23.根据权利要求22所述的数据存储系统,还包括封装结构,且其中所述非易失性内存装置包括设置在所述封装结构内的集成电路晶片,且其中所述加热结构在所述封装结构内被设置成邻近所述集成电路晶片。
24.根据权利要求22所述的数据存储系统,还包括印刷电路板,且其中所述加热电路和所述非易失性内存装置被安装成在所述印刷电路板上彼此邻近。
25.根据权利要求12所述的数据存储系统,其中所述数据迁移电路包括以撤出阶段的序列将数据从所述非易失性内存装置撤至所述至少一个其它内存装置的电路,所述撤出阶段包括被动撤出阶段,其中通过将要在所述非易失性内存装置内以其它方式存储的数据作为先前存储数据的替代,重新引导数据至所述至少一个其它内存装置而使所述非易失性内存装置内的所述先前存储数据无效。
26.根据权利要求25所述的数据存储系统,其中由所述电路实施用来以阶段序列撤出数据的所述撤出阶段还包括主动撤出阶段,其中所述数据撤出电路将先前存储在所述非易失性内存装置内的数据复制至所述至少一个其它内存装置。
27.根据权利要求沈所述的数据存储系统,其中所述数据存储系统还包括页面表,所述页面表指示数据在所述多个内存装置内的页面的存储位置,和在所述主动撤出阶段期间更新所述页面表的电路,以指定所述至少一个其它内存装置作为先前存储在非易失性内存装置内的所述数据的存储库。
28.根据权利要求12所述的数据存储系统,还包括在一个间隔期间在所述至少一个其它内存装置内执行数据访问操作的电路,在所述间隔上,所述非易失性内存装置正被所述控制电路加热以抵消所述非易失性内存装置的所述使用有关退化。
29.根据权利要求12所述的数据存储系统,其中所述至少一个其它内存装置大体上由非易失性内存器组成,且其中所述非易失性内存装置和所述至少一个其它内存装置示例于主内存的扁平层位中。
30.一种数据存储系统内的操作方法,所述操作方法包括在第一时间间隔上加热所述数据存储系统的第一内存装置以抵消所述第一内存装置的使用有关退化;和在所述第一时间间隔期间在所述数据存储系统的第二内存装置内执行数据访问操作。
31.根据权利要求30所述的方法,其中所述第一和第二内存装置包括非易失性存储单元,所述非易失性存储单元在执行编程操作以在所述非易失性存储单元内存储数据时将渐渐减小的数据保持时间展现为使用有关退化的一个方面,且其中加热所述数据存储系统的第一内存装置包括将所述第一内存装置加热至一个温度,相对于开始所述第一时间间隔时至少一个所述非易失性存储单元的数据保持时间,所述温度改进所述至少一个所述非易失性存储单元的所述数据保持时间。
32.根据权利要求30所述的方法,还包括在结束所述第一时间隔时停止加热所述第一内存装置,并且在之后且不重叠所述第一时间间隔的第二时间间隔期间,在所述第一和第二内存装置内同时执行数据访问操作。
33.根据权利要求32所述的方法,还包括在所述第二时间间隔期间加热所述数据存储系统的第三内存装置。
34.根据权利要求30所述的方法,其中加热所述第一内存装置以抵消使用有关退化包括将所述第一内存装置加热至退火温度,在所述退火温度下预期所述第一内存装置内所存储的数据会丢失。
35.根据权利要求34所述的方法,还包括在将所述第一内存装置加热至所述退火温度之前,将数据从所述第一内存装置撤至所述数据存储系统的一个或多个其它内存装置,以在没有丢失所述数据存储系统内的数据下使所述第一内存装置能够被加热至所述退火温度。
36.根据权利要求35所述的方法,其中将数据从所述第一内存装置撤至所述数据存储系统的一个或多个其它内存装置包括接收在一个地址存储第一写数据值的请求,所述地址对应于所述第一内存装置内由第二写数据值占据的存储位置;在所述一个或多个其它内存装置中而非在所述第一内存装置中存储所述第一写数据值;和使指示所述第一内存装置内由所述第二写数据值占据的所述存储位置的记录无效。
37.根据权利要求36所述的方法,其中接收在对应于所述第一内存装置内的存储位置的地址存储第一写数据值的请求包括关联内存写请求接收对应于所述第一内存装置内的所述存储位置的物理地址的虚拟地址。
38.根据权利要求37所述的方法,其中接收对应于所述第一内存装置内的所述存储位置的物理地址的虚拟地址包括接收先前已经记录在所述数据存储系统的页面表的条目内的虚拟地址,所述页面表的所述条目指定所述虚拟地址对应于所述第一内存装置内的所述存储位置的所述物理地址。
39.根据权利要求36所述的方法,其中在所述一个或多个其它内存装置而非所述第一内存装置中存储所述第一写数据值包括将新条目插入至所述页面表中,所述新条目指示所述一个或多个其它内存装置内的存储位置的物理地址,且其中使指示所述第一内存装置内的所述存储位置被所述第二写数据值占据的记录无效包括使对应于所述第一内存装置的页面表条目无效。
40.根据权利要求35所述的方法,还包括将耦合至所述第一内存装置的数据输入路径可切换地连接至耦合至所述一个或多个其它内存装置的数据输出路径,以使从所述第一内存装置读取的数据值能够被定路径至一个或多个其它内存装置。
41.根据权利要求35所述的方法,其中将数据从所述第一内存装置撤至所述数据存储系统的一个或多个其它内存装置包括以一个顺序从所述第一内存装置检索多个数据值,所述顺序至少部分地根据响应所述数据存储系统内接收的内存访问请求而已经访问的每个所述多个数据值有多新近,且包括将所述多个数据值写至所述一个或多个其它内存装置。
42.根据权利要求41所述的方法,其中以至少部分根据已经访问的所述多个数据值有多新近的顺序而从所述第一内存装置检索所述多个数据值包括在较新近访问的数据值之前检索较不新近访问的数据值。
43.根据权利要求41所述的方法,其中从所述第一内存装置检索多个数据值包括以一个顺序从所述第一内存装置检索所述多个数据值,所述顺序至少部分根据响应所述数据存储系统内接收的内存访问请求而已经访问的每个所述多个数据值有多频繁。
44.根据权利要求30所述的方法,还包括检测触发事件;和响应检测触发事件选择要加热至所述退火温度的所述第一内存装置。
45.一种数据存储系统,其包括第一和第二内存装置;第一加热元件,其在第一时间间隔上加热所述第一内存装置以抵消所述第一内存装置的使用有关退化;和内存控制器,其耦合至所述第一和第二内存装置且包括在所述第一时间间隔期间访问所述第二内存装置内的数据的电路。
46.根据权利要求45所述的数据存储系统,还包括第二加热元件,所述第二加热元件在第二时间间隔上加热所述第二内存装置以抵消所述第二内存装置的使用有关退化,且其中所述内存控制器包括在所述第二时间间隔期间访问所述第一内存装置内的数据的电路。
47.根据权利要求45所述的数据存储系统,其中所述第一内存装置和所述第一加热元件彼此整合在集成电路晶片上。
48.根据权利要求45所述的数据存储系统,还包括印刷电路板,且其中所述第一内存装置和所述第一加热元件被设置成彼此邻近且固定至所述印刷电路板。
49.根据权利要求48所述的数据存储系统,其中所述印刷电路板是内存模块,所述内存模块具有边缘连接器以能够可移动连接至设置于另一电路板上的模块连接器。
50.根据权利要求48所述的数据存储系统,其中所述第一和第二内存装置是闪存内存装置,且其中所述内存控制器包括闪存控制器。
51.一种数据存储系统,其包括第一内存子系统,其在所述第一内存子系统内执行数据存储和擦除操作时展现渐渐减少的数据保持时间;和控制电路,其将数据从所述第一内存子系统传送至第二内存子系统,且在传送所述数据后,将所述第一内存子系统的一个或多个组成内存装置加热至增加所述一个或多个组成非易失性内存装置的所述数据保持时间的温度。
52.根据权利要求51所述的数据存储系统,其中所述第一内存子系统的所述一个或多个组成内存装置包括一个或多个闪存内存装置。
53.根据权利要求51所述的数据存储系统,其中启动所述控制电路以将数据从所述第一内存子系统传送至所述第二内存子系统且响应用户输入而加热所述一个或多个组成内存装置。
54.根据权利要求51所述的数据存储系统,其中所述第二内存子系统被设置成外接至所述数据存储系统。
55.根据权利要求51所述的数据存储系统,其中所述数据存储系统内包括所述第二内存子系统。
56.一种内存系统内的操作方法,所述方法包括在准备使所述第一内存装置内能执行维护操作时,将数据从所述内存系统内的第一内存装置撤至所述内存系统内的一个或多个其它内存装置;和在从所述第一内存装置撤出数据后在所述第一内存装置内执行所述维护操作。
57.根据权利要求56所述的方法,其中撤出数据包括通过将引导至所述第一内存装置的数据写操作重新引导至所述一个或多个其它内存装置而从所述第一内存装置被动地撤出数据。
58.根据权利要求56所述的方法,其中撤出数据包括通过从所述第一内存装置检索数据且将所检索的所述数据写至所述一个或多个其它内存装置而从所述第一内存装置主动地撤出数据。
59.根据权利要求58所述的方法,其中从所述第一内存装置检索数据包括在一个空闲间隔期间从所述第一内存装置检索数据,在所述空闲间隔中没有来自外接至所述内存系统的源的内存访问请求要决定。
60.根据权利要求56所述的方法,其中在所述第一内存装置内执行所述维护操作包括将所述内存装置加热至消除至少部分由所述内存装置的重复性数据存储操作而造成的氧化损害的温度。
61.一种内存系统,其包括第一和第二内存装置;内存控制器,其耦合至所述第一和第二内存装置,且具有响应确定所述第一内存装置内需要维护操作而将数据从所述第一内存装置撤至所述第二内存装置的逻辑。
62.根据权利要求61所述的内存系统,其中所述逻辑包括至少一个电路或指令逻辑, 且其中所述内存控制器还包括至少一个电路或指令逻辑,以响应确定所述第二内存装置内需要维护操作而将数据从所述第二内存装置撤至所述第一内存装置。
63.根据权利要求61所述的内存系统,其中预期所述第一内存装置内的所述维护操作会导致所述第一内存装置内存储的至少一些数据的无意丢失。
64.根据权利要求61所述的内存系统,还包括执行所述第一内存装置内的所述维护操作的逻辑,且其中所述内存控制器包括在所述第一内存装置内执行所述维护操作的同时从所述第二内存装置读取数据的逻辑。
65.根据权利要求61所述的内存系统,其中执行所述维护操作的所述逻辑包括将所述第一内存装置加热至退火温度的加热电路。
全文摘要
在具有内存装置的系统中,在系统操作期间检测事件。响应检测所述事件加热所述内存装置以消除所述内存装置的使用所致的退化。在另一系统中,加热所述内存装置以在所述系统的另一内存装置内执行数据访问操作的同时消除使用所致的退化。在具有耦合至第一和第二内存装置的内存控制器的另一系统中,响应确定在所述第一内存装置内需要维护操作而将数据从所述第一内存装置撤至所述第二内存装置。
文档编号G11C16/16GK102576569SQ201080042995
公开日2012年7月11日 申请日期2010年6月29日 优先权日2009年8月21日
发明者I·夏菲尔 申请人:拉姆伯斯公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1