平码五不中公式规律
  • / 19
  • 下载?#24310;茫?/span>30 金币  

延长寿命的存储器.pdf

关 键 ?#21097;?/dt>
延长 寿命 存储器
  专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
摘要
申请专利号:

CN201580034653.4

申请日:

2015.06.24

公开号:

CN106663044A

公开日:

2017.05.10

当前法律状态:

实审

有效性:

审中

法?#19978;?#24773;: 实质审查的生效IPC(主分类):G06F 11/10申请日:20150624|||公开
IPC分类号: G06F11/10; G11C29/00 主分类号: G06F11/10
申请人: 微软技术许可有限责任公司
发明人: M·S·马纳塞; S·叶哈宁; P·S·格帕兰; K·斯特劳斯; J·D·戴维斯
地址: 美国华盛顿州
优?#28909;ǎ?/td> 2014.06.26 US 14/315,553
专利代理机构: 上海专利商标事务所有限公司 31100 代理人: 陈斌
PDF完整版下载: PDF下载
法律状态
申请(专利)号:

CN201580034653.4

授权公告号:

|||

法律状态公告日:

2017.06.06|||2017.05.10

法律状态类型:

实质审查的生效|||公开

摘要

存储器控制器可包括用于延长寿命的存储器的错误校正模块,该错误校正模块跟踪禁用页面内的非故障连续比特的至少一个有大小的块作为备用块,并且将来自禁用页面的备用块重用为用于活动块的错误校正资源。活动块可存储数据、数据以及元数据,或仅元数据(例如,错误校正元数据)。一种用于延长寿命的存储器的方法可包括:对于包含至少一个故障的元数据的活动块,使用至少一个备用块来校正该活动块的数据。对于包含至少一个故障的活动数据块,该数据可初始地经由与第一备用块的XOR校正来被校正,并然后最终经由与第二备用块的XOR校正来被校正。

权利要求书

1.一种用于延长寿命的存储器的存储器控制器,包括:
错误校正模块,所述错误校正模块管理存储器的禁用页面内的非故障连续比特的块作
为备用块;且对包含至少一个故障的所述存储器的活动块,使用所述备用块中的至少一个
将校正编码应用于所述活动块。
2.如权利要求1所述的存储器控制器,其特征在于,所述校正编码是XOR(异或)校正,并
且所述错误校正模块应用所述XOR校正,使得所述活动块与所述备用块的第一备用块和第
二备用块进行异或。
3.如权利要求1所述的存储器控制器,其特征在于,所述校正编码是纠删编码。
4.一种用于延长寿命的存储器的方法,所述方法包括:
对于包含至少一个故障的活动块:
从禁用存储器页面的备用块读取第一备用比特集;
使用所述第一备用比特集将错误校正编码应用于所述活动块以便获得初始校正的比
特集;以及
如果所述初始校正的比特集包含至少一个故障,则使用来自第二备用块的第二备用比
特集将所述错误校正编码应用于所述初始校正的比特集以便获得更新的校正的比特集。
5.如权利要求4所述的方法,其特征在于,所述第二备用块位于距所述第一备用块的下
一个连续备用块地址位置。
6.如权利要求4所述的方法,其特征在于,进一步包括:
如果所述更新的校正的比特集包含至少一个故障,则至少使用第三备用比特集将所述
错误校正编码应用于所述更新的校正的比特集以便获得校正的比特集。
7.如权利要求4-6中任一项所述的方法,其特征在于,所述校正编码是XOR校正。
8.一种系统,包括:
一种用于延长寿命的存储器的存储器控制器;以及
耦合到所述存储器控制器的一个或多个存储器设备,
其中所述存储器控制器包括错误校正模块,所述错误校正模块管理所述一个或多个存
储器设备中禁用页面内的块作为备用块;并且对于包含至少一个故障的所述一个或多个存
储器设备中的任何一个中的活动块,使用所述备用块中的至少一个将校正编码应用于所述
活动块。
9.如权利要求8所述的系统,其特征在于,所述活动块包括全局错误校正(GEC)条目,并
且所述校正码是XOR(异或)校正,其中所述存储器控制器被进一步配置为:
从GEC池读取所述GEC条目用于校正所述一个或多个存储器设备中的任何一个上的存
储器?#26657;?br />
从所述备用块中读取至少一组备用比特;以及
利用所述GEC条目和所述至少一组备用比特来执行所述XOR校正。
10.如权利要求8所述的系统,其特征在于,所述活动块包括存储器页面。

说明书

延长寿命的存储器

背景

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

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

简要概述

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

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

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

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

附图简述

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

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

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

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

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

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

图7示出?#31169;?#21512;延长寿命的存储器的即付即用(PAYG)架构。

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

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

详?#35813;?#36848;

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

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

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

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

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

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

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

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

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

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

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

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

固有错误校正资源指的是那些被先验指定用于错误校正的资源(例如,比特),无
论是?#38236;?#25552;供的?#25925;?#29992;于全局共享的。例如,一些错误校正方案可与错误校正指针结合。错
误校正指针(ECP)涉及替?#22351;?#20803;的使用和指向替?#22351;?#20803;所替换的故障单元的指针。ECP可通
过记录行中比特的位置和它的正?#20998;?#26469;校正存储器行中的故障比特。例如,64?#32440;?512比
特)行对每个ECP条目使用9-比特指针和1-比特替换比特(总共10比特)。

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

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

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

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

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

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

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

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

在一个实?#31181;校?#22791;用块被连续地访?#21097;?#20351;得下一个可用备用块被用于恢复活动块
的原始值。在另一实?#31181;校?#25351;针(和备用块510中的对应比特540)可被用于指示用来执行XOR
编码的下一个备用块。

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

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

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

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

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

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

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

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

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

图7示出?#31169;?#21512;延长寿命的存储器的即付即用(PAYG)架构。在PAYG架构?#26657;镜?#38169;
误校正(LEC)701可被分配存储器700的每一行702。当行(例如,行702)中的错误的数量超过
了可由LEC 701校正的错误的数量时,与该行相关联的溢出比特(OFB)703可被设置,并且来
自全局错误校正(GEC)池710的条目711可被分配给该行(例如,行702)。在一个实?#31181;校琇EC
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的单索引低延迟访?#21097;?#32780;GCT 730提供放置方面的灵活性。两
个表可以是结构上相同的。GEC集合可包括指向GCT 730中的位置的指针(PTR)731。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

图9A和9B示出了可在其中提供延长寿命的存储器(以及执行相应的技术)的操作
环境。图9A示出了芯片配置上的系统,其中利用片上存储器以二维(2D)或三维(3D)结?#22266;?br />供集成电路(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的一个或多个堆栈(或块)?#23567;?br />

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

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

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

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

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

存储系统990可包括可由处理系统982读取并能够存储软件986的?#25105;?#35745;算机可读
存储介质。存储系统990可包括?#36164;?#24615;和非?#36164;?#24615;、可移动和不可移动介?#21097;?#23427;?#19988;?#29992;于存
储诸如计算机可读指令、数据结构、程序模块或其他数据这样的信息的?#25105;?#26041;法或技术来
实现。

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

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

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

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

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

示例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条目用于校正所述一个或多个存储器设备中的任何一个上的存储器
?#26657;?#20174;所述备用块中读取至少一组备用比特;以及利用所述GEC条目和所述至少一组备用比
特来执行所述XOR校正。

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

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

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

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

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

关于本文
本文标题:延长寿命的存储器.pdf
链接地址:http://www.pqiex.tw/p-6091883.html
关于我们 - 网站声明 - 网?#38236;?#22270; - 资源地图 - 友情链接 - 网站客服 - 联系我们

[email protected] 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备17046363号-1 
 


收起
展开
平码五不中公式规律 股票交易费用 腾讯炒股大赛 国际股票指数国际股票指数 股票涨跌家数 谷歌股票行情实时查询 新手如何炒股 股票融资的条件 2007年10月上证指数 股票融资融券条件 今日上证指数走势