延长寿命的存储器的制作方法

文档序号:11160893阅读:457来源:国知局
延长寿命的存储器的制造方法与工艺

被处理器用于读取和写入数据的存储器具有有限的寿命。存储器磨损、产生“固定”比特的永久错误、以及来自不适当地翻转状态的比特的瞬时错误可能困扰存储器设备。一般而言,存储器错误落在两类错误中的一类内。第一类的错误是硬错误,其由于物理缺陷或以可重复方式破坏比特的其他异常而发生。第二类的错误是软错误,其指的是诸如由电磁辐射引起的那些非永久错误。

错误检测和错误校正方案可被并入计算系统的各种级别中,以使存储在存储器设备上的软件和数据免于经受在物理存储器处发生的错误。

简要概述

描述了用于延长寿命的存储器的存储器控制器和错误校正技术。

存储器控制器可包括错误校正模块,该错误校正模块跟踪禁用页面内的非故障连续比特的至少一个有大小的块作为备用块,并且将来自禁用页面的备用块重用为错误校正资源。错误校正模块可进一步使用至少一个备用块来将校正编码应用于数据活动块。校正编码可以是XOR(异或)校正。在一些情况下,两个或更多个连续的备用块可被应用于活动块以便生成经校正的块。活动数据块可能是仅数据、数据和元数据的组合、以及仅元数据。

一种用于延长寿命的存储器的方法可包括:对于包含至少一个故障的活动块,读取来自禁用存储器页面的备用单元的第一备用比特集,使用第一备用比特集将错误校正编码应用于该活动块以获得初始校正的比特集,并且如果该初始校正的比特集继续包含至少一个故障,则使用来自第二备用单元的第二备用比特集来将错误校正编码应用于初始校正的比特集。第一备用单元和第二备用单元可位于连续的地址位置,如由存储器控制器管理的表所指示的。

提供本概述以便以简化的形式介绍以下在详细描述中进一步描述的一些概念。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。

附图简述

图1示出了存储器单元的可用粒度。

图2示出了存储器系统的基本框图。

图3示出了提供延长寿命的存储器的存储器系统的非限制性示例详细视图。

图4示出了一种技术,其中备用存储器页面被用于扩展错误校正资源。

图5示出了通过XOR校正的延长寿命的存储器。

图6示出了使用XOR和连续存储器位置来应用错误校正编码的过程流。

图7示出了结合延长寿命的存储器的即付即用(PAYG)架构。

图8示出了用于将错误校正编码应用于校正元数据的过程流。

图9A和9B示出了其中可变宽度错误校正的某些实现可被实现的操作环境。

详细描述

描述了用于延长寿命的存储器的存储器控制器和错误校正技术。

图1示出了存储器单元的可用粒度。一般而言,操作系统以页面110的粒度与存储器进行交互。“页面”110也是通常被用于指代在其中数据被写入或读取的块的大小的术语。页面的大小可取决于实现和底层存储器设备和/或存储器控制器。存储器页面110可由可被单独寻址的多个块120形成。这些块120可甚至包括固定大小的子块,例如半块130、四分之一块140、或甚至八分之一块150可以在内部或外部访问。在高速缓存中或甚至在主存储器中的存储器块120通常被称为行。每行可包括用于元数据的多个比特。

每个页面、块或子块可包括被用于数据的比特和被用于提供错误校正的比特。这些错误校正比特可与数据比特交织,或者作为单独的页面、单独的一个或多个块(或子块)、或甚至从单独的芯片被提供。对于许多存储器模块,当前趋势是具有用于数据的八个存储器设备芯片和用于错误校正的一个存储器设备芯片,或者八个芯片中的每一个处都具有可用于错误校正的额外比特。

图2示出了用于延长寿命的存储器的存储器系统的基本框图。参考图2,存储器系统可包括用于一个或多个存储器设备210的存储器控器200。存储器控制器200可控制存储器设备210的总体输入/输出操作。在一些情况下,存储器设备210可以是存储器芯片(在存储器模块、板或与存储器控制器200一起或分离的其他封装上的单个芯片或多个芯片)。在一些情况下,存储器设备210可以是与存储器控制器200一起被嵌在相同芯片上的存储器。在一些情况下,存储器设备210(和存储器控制器200)可作为相同芯片上的片上系统(SOC)被嵌入一个或多个处理器和/或作为三维(3D)集成电路(IC)的一部分被层叠。

存储器设备可以由任何合适的存储器技术形成。尽管本文描述了针对相变存储器(PCM)的特定实现,但是其他存储器技术以及甚至动态随机存取存储器(DRAM)技术可与所描述的技术相结合。存储器可以是PCM、导电桥接存储器(例如,可编程金属化单元(PMC))和其他非易失性存储器。在一些情况下,DRAM(例如,双倍数据速率同步动态随机存取存储器(DDR SDRAM))可被使用。

图3示出了提供延长寿命的存储器的存储器系统的非限制性示例详细视图。参考图3,存储器系统可包括存储器控制器300和存储器设备305。存储器控制器300可包括被用于控制存储器设备305的控制逻辑和机器310,提供对读取和写入存储在存储器设备305处的数据的请求。控制逻辑和机器310可包括逻辑元件和寄存器(存储器)。仲裁可由控制逻辑和机器310的仲裁器来实现,该仲裁器选择请求访问存储器的顺序。静态存储器控制器通常具有预先设计的调度;而动态存储器控制器可在运行时间调度请求。错误校正模块315可被包括以便促进存储器设备300的延长寿命的存储器。虽然本文所描述的大多数技术在存储器控制器处实现,但在一些情况下,一些错误校正技术可被用于存储器的片上。一些片上错误校正可由存储器控制器控制。一些片上错误校正可以对存储器控制器透明。

例如以存储器芯片形式的存储器设备305可具有多个数据阵列。例如,存储器设备305可包括以行和列安排的存储器单元阵列320。存储在存储器设备305中的数据可从存储器阵列320被读取到行缓冲器(未示出)。至少一部分数据可从行缓冲器被发送到存储器控制器300以便服务于请求。

阵列的特定行可通过来自存储器控制器305的行选择命令(其也被称作激活命令)来选择,并且来自该行的一列或多列数据可通过来自存储器控制器305的列选择命令来选择,从而将数据提供给行缓冲器。行解码器325和列解码器330可被用于基于行选择/激活命令信号和列选择命令信号来选择(一个或多个)特定单元335。读取/写入单元340可提供被用于从存储器阵列320读取和写入存储器阵列320的逻辑和状态机器。一些错误校正技术可被用作读取/写入单元340的一部分,以及可被用作内置于存储器设备内的向存储器控制器300隐藏的其他能力的任何控制层。

随着存储器降级,找到足够数量的用于执行错误校正技术的备用比特变得越来越难。在一些错误校正方案中,每个存储器单元(页面、块、子块、单元或其他指定)具有具体地分配的错误校正资源。这样的错误校正方案的一个示例涉及错误校正指针(ECP),诸如由S.Schecter等人在“将ECP而不是ECC用于电阻存储器中的硬故障(Use ECP,not ECC,for hard failures in resistive memories)”,第37届计算机架构国际研讨会论文集,2010年6月中描述的。

在一些错误校正方案中,共享资源并向相对具有更多故障的存储器单元分配更多的错误校正资源是可能的。这样的错误校正方案的一个示例包括诸如由M.K.Qureshi所描述的即付即用架构,“即付即用:相变存储器的低开销硬错误校正(Pay-As-You-Go:Low-Overhead Hard-Error Correction for Phase Change Memories)”,第44届IEEE/ACM国际微体系结构研讨会论文集,2011年12月。在这两种类型的方案中,仍然存在可被用于错误校正的有限数量的资源。

有时,一旦存储器页面中的单个行、块、单元或其他单元耗尽了它的错误校正资源,则存储器的整个页面可能被禁用(变得对软件使用不可用)。一些错误校正方案可利用这一点,在其他情况下,非活动页面向活动(非禁用)页面提供附加的错误校正资源,并且进一步增加存储器设备的寿命。一种这样的技术被称为僵尸(Zombie)存储器。

不仅存储器设备的寿命受限于可用于错误校正的存储器的量(以及错误校正被如何分配到每行或存储器单元),而且一些错误校正方案不总是理解的是,那些错误校正方案所使用的存储器也可能以可能不利地影响设备寿命的方式磨损。这种影响可以是最显著的,因为需要使用较高数量的连续比特来校正活动页面或存储器行。例如,当存储器系统经历故障时,错误校正方案用于校正错误的存储器很可能包含故障的位置或单元。在一些方案中,当错误率超过5%时,这可能导致系统故障。能够延长存储器的寿命使得即使当错误率达到10%、15%或更多时系统故障依然可被推迟,可以增加特定的存储器将针对某一计算系统被采用的机会。

固有错误校正资源指的是那些被先验指定用于错误校正的资源(例如,比特),无论是本地提供的还是用于全局共享的。例如,一些错误校正方案可与错误校正指针结合。错误校正指针(ECP)涉及替换单元的使用和指向替换单元所替换的故障单元的指针。ECP可通过记录行中比特的位置和它的正确值来校正存储器行中的故障比特。例如,64字节(512比特)行对每个ECP条目使用9-比特指针和1-比特替换比特(总共10比特)。

在许多存储器错误校正方案中,一旦存储器页面包含用尽固有错误校正资源的块,则整个页面被禁用并且变得对软件不可用。本文描述的技术可以使用这些禁用页面来至少生成全功能块(或子块),并在一些情况下甚至生成全功能页面。

源自禁用页面的一个或多个块(或甚至子块)可与活动块一起使用来延长活动块的可用寿命。活动块指的是软件可见页面的活动块以及先验指定的错误校正区域(无论被提供为每个块或子块的一部分、或被提供于物理存储器的单独区域中)。非软件可见的固有错误校正资源(例如,稍后描述的即付即用的错误校正资源)被包括在活动块的定义中。

图4示出了一种技术,其中备用存储器页面被用于扩展错误校正资源。可能用尽错误校正资源的活动块401可通过使用源自禁用页面的至少一个备用子块402来使其寿命延长。备用块可由任何指定的大小形成。在一个实现中,三种大小可被使用,最大的为整块(例如,512比特)。第一备用子块402可能包含错误,并因此第二备用子块403可被用于利用第一备用子块来校正错误。作为另一示例,可能用尽错误校正资源的活动块411可通过源自禁用页面的一个或多个备用块412的使用来使其寿命延长。例如,可使用备用块412来校正活动块411,并且如果错误仍存在于活动块411,则可使用另一备用块413来执行另一校正。

当块被划分为子块时,存储器控制器在备用块本身或在单独的表中记录哪些子块已经被分配而哪些是空闲的。在一些实施例中,每个备用块大小可具有其自己的地址池。存储器控制器可跟踪各池。存储器控制器可针对每个子块大小保持单独的池。池可以是指向使用各块本身中的存储所实现的块链接列表的头条目。存储器控制器的控制路径和错误校正模块(参见例如图3的310、315)可以通过备用数据缓冲器来共享和传递备用块内容。

此外,存储器控制器可分配备用子块以供按需使用。在一些情况下,可基于所应用的特定的错误校正方案和活动块(无论该活动块包含数据还是错误校正元数据)的固定错误的数量来使用不同大小的备用块。作为延长寿命的存储器技术的一部分,备用单元(在页面、块、和/或子块中)可被用于校正活动单元。

活动块中的ECP元数据可包括用于指示是否所有条目被使用的字段。两比特的字段可被包括以便指示该块不具有对应的至少一个备用块或在使用中的子块/块的大小。剩余的ECP比特可被用于冗余地存储备用块地址和附加元数据。

在一个实现中,存储器控制器的控制路径模块可通过跟随存储在活动块中的指针来定位与活动块相关联的备用块。在另一实现中,存储器控制器可使用表来定位与活动块相关联的备用块。当块被读取时,存储器控制器将备用块数据放入备用数据缓冲器中。当块被写入时,存储器控制器将备用数据缓冲器的内容复制到备用块。

图5示出了通过XOR校正的延长寿命的存储器。作为一个示例,XOR校正(或逐位乘法)可由图3的错误校正模块315(例如,利用逐位XOR单元)控制。参考图5,基于XOR的编码可被用于向存储器块进行读取和写入。如果活动块500中的单元被固定,则其在备用块510中的对应物可被用于恢复存储在该单元中的原始值。如果备用块510中的对应物单元也被固定,诸如部分515所示,则第二备用块520可被用于生成原始数据530。活动块500处的元数据比特535可包括指向第一备用块510的指针。

在一个实现中,备用块被连续地访问,使得下一个可用备用块被用于恢复活动块的原始值。在另一实现中,指针(和备用块510中的对应比特540)可被用于指示用来执行XOR编码的下一个备用块。

选择与活动块大小相同的备用块。数据单元可以是在活动块与备用块中具有相同偏移量的单元的XOR(异或)。为了读取块,至少从存储器读取该活动块和第一备用块。通过对从第一备用块和活动块中读取的这些值执行逐位XOR(异或)来获得原始数据。可使用第二备用块(并且在一些情况下,取决于开销考虑和优化,使用第三或第四或更多备用块)来进一步执行逐位XOR。至少两个来自主存储器的块被读取。然而,如果指示要使用第一备用块(不是数据)的信息被存储器控制器高速缓存并且这些块已经被映射到独立存储体,则可并行地进行对活动块和至少第一备用块的读取。

对于写操作,存储器控制器可确定什么值将被写入活动块和备用块。目标是写入值P'(针对活动块)和S'、S”等(针对(一个或多个)备用块),使得P'⊕S'⊕S”编码所期望的数据。为了减少磨损,存储器控制器可主要写入备用块,并且仅向活动块写入当与相应的备用块固定比特进行异或时恢复所需数据比特的比特。这种方式可以备用块的寿命为代价来延长活动块的寿命。如果不能使用指定数量的备用块通过XOR进行组合来校正活动块,则可以禁用该活动块所属的页面,并且它的块将被添加到备用池。

图6示出了使用XOR和连续存储器位置来应用错误校正编码的过程流。参考图6,存储器控制器可接收对存储器地址的请求(601)。该请求可以是读取请求或写入请求。在一些情况下,写请求涉及在写入存储器之前从该存储器读取数据。因此,虽然图6所示的过程流程主要集中在读取请求上,但是也可针对写入请求实现该过程流程的某些方面。

一旦接收对存储器地址的请求,存储器控制器就可向耦合于该存储器控制器的存储器生成用于导致一组比特将被缓冲以供读取的命令信号(602)。可从存储器读取所缓冲的比特,使得存储器控制器从存储器接收第一组比特(603)。第一组比特可对应于第一存储器地址。存储器控制器可确定第一组比特的单元是否包含故障(604)。在一些情况下,可基于从该单元读取的一个或多个比特的标志来作出故障确定。在一些情况下,可基于表查找来作出故障确定。

如果第一组比特不存在故障,则存储器控制器可服务于该请求(605)并执行后续处理以便完成任务。如果第一组比特存在故障,则存储器控制器可向该存储器生成导致来自被指定为备用的存储器页面(或块或子块)的下一组比特被缓冲以供读取的命令信号(606)。可从存储器读取所缓冲的比特,使得存储器控制器从该存储器接收下一组比特,并且将该第一组比特与该下一组比特进行异或以便生成当前一组比特(607)。在执行XOR操作之前,可针对错误来检查来自存储器的下一组比特。

在一些情况下,存储器控制器可在向存储器发送命令信号之前(例如,当对特定存储器地址的请求被接收时)确定该单元是否具有故障。在一种这样的情况下,存储器控制器可向存储器发送命令,使得第一组比特和至少下一组比特两者均被串行或并行地检索。

存储器控制器可确定当前一组比特是否包含故障(608)。如果当前一组比特不存在故障,则存储器控制器可服务于该请求(609)并执行后续处理以便完成任务。如果当前一组比特存在故障,则存储器控制器可向该存储器生成导致来自被指定为备用的下一个可用的(或连续的)存储器页面(或块或子块)的下一组连续比特被缓冲以供读取的命令信号(610)。可从存储器读取所缓冲的比特,使得存储器控制器从该存储器接收下一组比特,并且将该当前一组比特与该下一组比特进行异或以便更新该当前一组比特(611)。在执行XOR操作之前,可针对错误来检查来自存储器的下一组连续比特。存储器控制器可确定当前一组比特是否包含故障(612)。如果当前一组比特不存在故障,则存储器控制器可服务于该请求(613)并执行后续处理以便完成任务。

此时,两个XOR(异或)操作已经使用来自备用块的两组数据来被执行。在一些情况下,不存在与来自提供第一组比特的原始活动块的数据相关联的另外的备用块。因此,如果不存在要被执行的另外的数据块和XOR(异或)操作(614),则存储器控制器可指示与第一存储器地址相关联的数据页面被禁用(615)。存储器控制器可管理表,该表跟踪禁用页面内的非故障连续比特的至少一个具有大小的块(例如,整块和/或一个或多个子块)作为备用块。

对于其中第三个(或更多个)XOR操作被安排为能够被实现(616)的情况,存储器控制器可重复操作610和611以便能够提供经校正的数据(例如,作为操作613中服务于请求的一部分),或者确定该页面应该被禁用(例如,操作615)。可对数据比特和/或元数据比特实现图6所示的操作以便生成完全可操作的数据页面。图6所示的操作还可在从存储器读取的比特的一部分中被实现,如下面更详细地描述的,存储器控制器可单独使用关于错误校正数据的备用页面来执行XOR校正(即,校正该校正数据)。

图7示出了结合延长寿命的存储器的即付即用(PAYG)架构。在PAYG架构中,本地错误校正(LEC)701可被分配存储器700的每一行702。当行(例如,行702)中的错误的数量超过了可由LEC 701校正的错误的数量时,与该行相关联的溢出比特(OFB)703可被设置,并且来自全局错误校正(GEC)池710的条目711可被分配给该行(例如,行702)。在一个实现中,LEC 701可提供ECP-1以便校正每行最多1个错误。GEC池710可为具有比其相应的LEC 701可处理的错误更多的错误的行提供错误校正条目。每个GEC条目711包含有效比特、标签(用于标识所有者行)和一个或多个ECP条目(或其他错误校正方案,诸如替换数据重试,行备用等)。对于ECP实现,每个GEC条目711可提供ECP-1、ECP-2、...、ECP-5中的任何一个作为示例。ECP-1导致在每个GEC条目711中有20比特的大小。GEC池710可以以多种方式被访问。GEC池的一个组织使用具有链接结构的散列表。

具有链接结构的散列表可涉及两个表:集合关联表(SAT)720和全局冲突表(GCT)730。SAT 720提供对GEC池710的单索引低延迟访问,而GCT 730提供放置方面的灵活性。两个表可以是结构上相同的。GEC集合可包括指向GCT 730中的位置的指针(PTR)731。

为了读取(获得)GEC条目,首先在由行地址的一些比特索引的集合中访问SAT 720。如果该集合中不存在标签匹配,则该集合的PTR 731标识将被检查的GCT 730集合。如果在GCT行中存在标签匹配,则GEC条目可被获得。如果不存在匹配,则该集合中的PTR 732标识必须被检查的下一个GCT集合。遍历继续,直到具有匹配标签的GCT条目(或具有OFB=0的集合)被找到。

为了分配GEC条目,最初,GCT集合保持未分配。这些集合仅在溢出时分配给一SAT集合。为了辅助该分配,寄存器可被用来跟踪已经被分配的GCT条目的数量。当SAT集合中的一个溢出时,该集合的PTR被初始化为寄存器处的值,并且与该集合相关联的OFB被设为1。新分配的GCT集合提供与GCT的结合性一样多的GEC条目。该新分配的条目的PTR被标记为无效,并且OFB被设为0(以指示遍历的结束)。寄存器在每次GCT分配后递增。当寄存器的值达到GCT中的集合数量时,它指示不可校正的错误。

PAYG架构使用统计复用来使得相对少量的经延长的存储器能够被用于向大型存储器中发生的错误提供补丁。为了使用PAYG错误校正架构来延长存储器的寿命,可以为PAYG校正值提供错误校正。备用单元可被应用于20比特(或更大的)GCT条目711以延长存储器的寿命。例如,GEC条目741可任选地具有针对该行或集合的通过LEC 742校正的固定比特。然而,一旦用于GEC条目741的错误校正资源(如果有的话)已被耗尽,则来自备用块(或子块)的备用单元可被用于校正错误。在一些情况下(例如,情况744),来自GEC池710的备用块745可被用于校正GEC条目741。在一些情况下(例如,情况746),来自主存储器700的备用块可被用于校正GEC条目741。

使用备用块的特定校正方案可取决于实现而变化。在一个实现中,诸如参考图5所描述的XOR校正可使用至少一个备用块(且在一些情况下可使用两个或更多个备用块)来执行。XOR方式通过计算两个块的异或,并挑选具有至多六个重合错误的块来找到其中真值被编码的存储器块。在一些实现中,可对相邻(或对齐的下一块或下两块)校正位置执行XOR操作。例如,20比特可与来自备用块(并且在一些情况下,来自下一块/子块)的20比特进行异或。将被使用的备用块的位置可被存储于表中,在GEC条目的比特中被编码,或通过一些其他合适的技术而变得可用。

通过将存储器的一部分专用于仅保持校正数据并使用备用块来校正该校正数据,经延长的存储器上的写入负担不会开始,直到主存储器的错误率开始增加,并且地址写入可能仅发生一次。

在另一实现中,纠删编码可被用于扩展PAYG错误补丁(GEC条目)以便包含存储器的一些额外比特,从而允许少量错误比特存在于补丁块中。对多个比特的校正可在由备用块提供的经延长的存储器中被编码。例如,对于使用ECP-1的GEC条目,通过使用20比特,一种纠删编码技术将20比特编码为25比特,从而允许任何两个比特被固定。

纠删编码(ERC)是处理使用一对多编码函数的固定故障的代码的示例。ERC方式使用可基于少量固定比特的位置计算的校正比特来扩展小的存储器单元。

使用相同消息的多个可能的表示以便确保至少一个表示与固定单元的值适当地对齐,并且可实际上被存储于存储器中。此外,固定比特位置可被存储。ERC包括将k-符号消息编码为n-符号码字并且容许d-1固定故障的编码方案。为了将k-比特消息存储在其中多达d-1个单元固定的n-比特存储器块中,二进制k×n矩阵G可被使用。该矩阵G是长度n、维度k和距离d的二进制线性编码的生成矩阵。x的可能表示是使得GyT=x的所有向量y。在一些实现中,如果多于一个的向量y与固定单元的值对齐,则优化存储器寿命(即,磨损备用块而不是活动块)的向量y被选择。

每个块可被划分为大小为k的多个数据消息,并且利用可容许多达d-1个错误的纠删编码[n,k,d]被编码为大小为n的更大的码字。由于从中找到兼容码字的多个码字(即,包含与固定单元值相匹配的符号的码字),因此对固定单元的较高容许是可用的。

该ERC的硬件优化的实现涉及(1)向备用块偏置写入、(2)通过增加子块大小来适应更多的容错编码以便适配于逐渐升高的故障数量、以及(3)使用基于表的实现来计算一对多映射。

在编码之后,每个码字的前k比特被存储在活动子块中,而剩余的在备用块中。码字被有意地划分成活动块和备用块。编码可被偏置,使得比特在备用块中比在活动块中翻转地更频繁。向备用块偏置写入可被实现以便保留活动块,因为在该方案中,可容易地用另一备用块来代替一备用块。随着故障累积,子块可增长,从而伸展以便为更多的容错编码腾出空间。对于单层单元(SLC)PCM,128-比特子块可被用于容许每个码字多达2个错误、256-比特子块可被用于容许每个码字多达3个错误、而512-比特块可被用于容许每个更小的码字多达3个错误。

在一些情况下,可求解线性方程组。代替实现硬件以便动态地求解线性方程组,可将块划分成更小的数据消息,这减少了被用于解码的矩阵及其用于编码的逆的大小。可为每组固定单元预先计算这些较小的矩阵,并且允许消除了动态地求解方程组的需要的基于表的实现,从而导致了硬件优化的设计。对于SLC PCM,20-比特消息可被编码为25-比特码字(128-比特子块,每个码字2个错误)、10-比特消息可被编码为15-比特码字(256-比特子块,每个码字3个错误)、以及并且4-比特消息可被编码为8-比特码字(512-比特块,每个码字3个错误)。

固定位置的先验知识被用于对该块进行编码。生成这种知识的一单纯方式是翻转所有的单元,并回读它们,从而将新值与原始值进行比较。但是,执行此操作可对写敏PCM造成太大的磨损。因此,在一些实现中,由存储关于活动块和备用块中的错误位置的比特向量的条目组成的故障位置高速缓存可被使用。

根据各种实现,备用页面、块、和/或子块可被用于产生可随后被用于任意目的的完全工作的存储器页面。完全工作页面可被应用到其的一些目的示例包括PAYG存储器(例如,GEC池)、主存储器、以及错误校正比特。

在一些情况下,备用页面、块、和/或子块可被用于特定块/子块而不是完全页面的校正。

图8示出了用于将错误校正编码应用于校正元数据的过程流。参考图8,GEC条目可被读取(801),并且可被作出关于GEC条目的比特是否包含故障的确定(802)。如果这些比特不指示故障,则过程可继续以便使用GEC条目获得错误校正的数据行(803)。否则,存储器控制器可向存储器发送用于备用比特集(例如,与GEC条目大小相同)的命令信号(804)。备用比特集可从存储器被接收(805),并且GEC条目可与备用集进行异或(806)。可在错误校正编码被应用之前针对错误来检查备用比特集。

图9A和9B示出了可在其中提供延长寿命的存储器(以及执行相应的技术)的操作环境。图9A示出了芯片配置上的系统,其中利用片上存储器以二维(2D)或三维(3D)结构提供集成电路(IC)900。3D IC排列的一个示例是在IC层920上具有存储器910的多个堆栈。存储器控制器925可被包括在IC层920上。存储器控制器925可以是单独的组件或与处理器930或微处理器进行集成。如图所示,处理器930和任选地其他逻辑940也可在IC层920上可用。

接口950可被包括用于传送和接收处于IC 900外部的信号,例如,以便与外围组件进行通信。在一种情形下,接口可被用于与具有主机处理器962、存储软件966(包括操作系统968)的存储系统964的主机960进行通信。在另一种情况下,操作系统和其他软件可被存储在存储器910的一个或多个堆栈(或块)中。

图9B示出了另一非限制性示例配置,其中可为存储器970提供延长寿命的存储器(以及执行相应的技术),例如以PCM存储器模块或其他电阻存储器设备的形式。图9B所示的系统980可以是可包括一组功能上可互换的服务器或资源的分布式系统的一部分。服务器或资源可包括各种存储设备或系统。可在线和离线地采用这些资源,并且可添加附加资源。用于使系统980形成一部分的资源可一起处于同一空间中,诸如处于单个数据中心处,或者它们可单独地和/或集群地处于不同的地理位置处。系统980可以适用于在高性能系统中使用,包括那些处理复杂计算和/或那些管理诸如处理云服务和财务计算系统的服务器的大型系统。

系统980可被实现为服务器,其可包括一个或多个计算设备。服务器可包括一个或多个刀片服务器设备、独立服务器设备、个人计算机、路由器、集线器、交换机、网桥、防火墙设备、入侵检测设备、大型计算机、网络附连存储设备、以及其他类型的计算设备。服务器硬件可根据任何合适的计算机架构来配置,诸如对称多处理(SMP)架构或非一致性存储器访问(NUMA)架构。

系统980可包括处理系统982,该处理系统982可包括诸如中央处理单元(CPU)或微处理器之类的处理设备以及检索和执行来自存储系统990的包括操作系统(OS)988的软件986的其他电路。处理系统982可被实现在单个处理设备中,但也可以跨在执行程序指令时协作的多个处理设备或子系统分布。

处理系统982的示例包括通用中央处理单元、专用处理器、和逻辑设备、以及任何其他类型的处理设备、其组合或变体。一个或多个处理设备可包括多处理器或多核处理器,并且可根据一个或多个合适的指令集来操作,该一个或多个合适的指令集包括但不限于精简指令集计算(RISC)指令集、复杂指令集计算(CISC)指令集、或其组合。在某些实施例中,一个或多个数字信号处理器(DSP)可被包括作为除了通用CPU以外或者代替通用CPU的系统的计算机硬件的一部分。

可与处理系统982集成或分离的存储器控制器984可控制存储器设备970的总体输入/输出操作。

存储系统990可包括可由处理系统982读取并能够存储软件986的任意计算机可读存储介质。存储系统990可包括易失性和非易失性、可移动和不可移动介质,它们以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据这样的信息的任意方法或技术来实现。

存储介质的示例包括随机存取存储器、只读存储器、磁盘、光盘、CD、DVD、闪存、磁带盒、磁带、磁盘存储或其他磁存储设备,或任何其他类型的存储介质。某些实现可涉及虚拟存储器和非虚拟存储器的一者或两者。存储介质决不包括传播信号。除了存储介质以外,在一些实现中,存储系统990还可包括软件986可通过其进行内部和外部通信的通信介质。

存储系统990可以被实现为单个存储设备,但也可以跨相对于彼此放置在一起或分布式的多个存储设备或子系统来实现。存储系统990可包括附加元件,诸如能够与处理系统982通信的控制器。

软件986可包括附加进程、程序、或组件。软件986还可包括固件或可被处理系统982执行的某些其他形式的机器可读处理指令。

系统980可代表其上可展现软件986并且软件986可以从其分发、传输、下载或以其他方式提供至又一计算系统以供部署和执行或又一附加分发的任何计算系统。

本发明的一些方面提供以下非限制性实施例。

示例1:一种用于延长寿命的存储器的存储器控制器,包括:错误校正模块,所述错误校正模块管理存储器的禁用页面内的非故障连续比特的块作为备用块;且对包含至少一个故障的所述存储器的活动块,使用所述备用块中的至少一个将校正编码应用于所述活动块。

示例2:如示例1所述的存储器控制器,其中所述校正编码是XOR(异或)校正,并且所述错误校正模块应用所述XOR校正,使得所述活动块与所述备用块的第一备用块和第二备用块进行异或。

示例3:如示例2所述的存储器控制器,其中所述第二备用块在由所述存储器控制器管理的备用块池中位于距所述第一备用块的下一个连续备用块地址位置。

示例4:如示例2或3所述的存储器控制器,其中所述活动块进一步与所述备用块的第三备用块进行异或。

示例5:如示例1所述的存储器控制器,其中所述校正编码是纠删编码。

示例6:如示例1-5中任一项所述的存储器控制器,其中所述存储器是相变存储器。

示例7:如示例1-6中任一项所述的存储器控制器,其中所述活动块包含数据和元数据。

示例8:如示例1-6中任一项所述的存储器控制器,其中所述活动块仅包含元数据。

示例9:如示例1-8中任一项所述的存储器控制器,其中所述活动块包括所述存储器的页面。

示例10:一种用于延长寿命的存储器的方法,所述方法包括:对于包含至少一个故障的活动块:从禁用存储器页面的备用块读取第一备用比特集;使用所述第一备用比特集将错误校正编码应用于所述活动块以便获得初始校正的比特集;以及如果所述初始校正的比特集包含至少一个故障,则使用来自第二备用块的第二备用比特集将所述错误校正编码应用于所述初始校正的比特集以便获得更新的校正的比特集。

示例11:如示例10所述的方法,进一步包括:如果所述更新的校正的比特集包含至少一个故障,则禁用所述活动块所属的存储器的页面并跟踪所述页面的各部分作为备用块。

示例12:如示例10或11的方法,其中所述第二备用块位于距所述第一备用块的下一个连续备用块地址位置。

示例13:如示例10-12中任一项所述的方法,其中所述校正编码是XOR校正。

示例14:如示例10-13中任一项所述的方法,其中所述活动块包括存储器页面。

示例15:如示例10-13中任一项所述的方法,其中所述活动块仅包含元数据。

示例16:如示例10-15中任一项所述的方法,进一步包括:在将所述错误校正编码应用于所述活动块之前,确定所述备用块中包含的任何故障;以及在将所述错误校正编码应用于所述初始校正的比特集之前,确定所述第二备用块中包含的任何故障。

示例17:如示例10-16中任一项所述的方法,进一步包括:如果所述更新的校正的比特集包含至少一个故障,则至少使用第三备用比特集将所述错误校正编码应用于所述更新的校正的比特集以便获得校正的比特集。

示例18:一种系统,包括:用于延长寿命的存储器的存储器控制器;以及耦合到所述存储器控制器的一个或多个存储器设备,其中所述存储器控制器包括错误校正模块,所述错误校正模块管理所述一个或多个存储器设备中禁用页面内的非故障连续比特的块作为备用块;并且对于包含至少一个故障的所述一个或多个存储器设备中的任何一个中的活动块,使用所述备用块中的至少一个将校正编码应用于所述活动块。

示例19:如示例18所述的系统,在此所述一个或多个存储器设备包括相变存储器。

示例20:如示例18或19中任一项所述的系统,其中所述活动块包括全局错误校正(GEC)条目,并且所述校正编码是XOR(异或)校正,其中所述存储器控制器被进一步配置为:从GEC池读取所述GEC条目用于校正所述一个或多个存储器设备中的任何一个上的存储器行;从所述备用块中读取至少一组备用比特;以及利用所述GEC条目和所述至少一组备用比特来执行所述XOR校正。

示例21:如示例18或19所述的系统,其中所述校正编码是XOR校正。

示例22:如示例18或19所述的系统,其中所述校正编码是纠删编码。

示例23:如示例18-22中任一项所述的系统,其中所述活动块包括存储器页面。

应当理解,在此描述的各示例和实施例仅仅是解说目的,鉴于此各种变化或改变可向本领域技术人员建议,并且被包括在本申请的精神和范围内。

尽管用结构特征和/或动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。相反,上述特定特征和动作是作为实现权利要求书的示例而公开的,并且本领域的技术人员将认识到其他等价特征和动作旨在处于权利要求书的范围内。

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