掌桥专利:专业的专利平台
掌桥专利
首页

容错存储器系统

文献发布时间:2023-06-19 10:08:35


容错存储器系统

技术领域

本公开涉及具有改善的可靠性、可用性和可服务性(reliability,availabilityand serviceability)的数据处理装置的存储器系统。

背景技术

数据处理装置可包括利用下述存储器系统的各种类型的多个计算设备:包括经由一个或多个存储器管理单元或存储器节点控制器访问的一个或多个存储器的存储器系统。出错可发生在系统中的若干个位置处。例如,随机比特差错可发生在所存储的数据值中,或者故障可发生在存储设备、存储器节点控制器(memory node controller,MNC)、或者存储器管理单元(memory management unit,MMU)中。

克服数据中的比特差错的方案包括纠错码(error correcting code,ECC)的使用和冗余的使用(就像独立盘冗余阵列(Redundant Array of Independent Disks,RAID)中那样),纠错码存储有额外信息来实现对某些比特差错的纠正,而冗余的使用则使物理存储器设备和/或物理存储盘被复制副本。

ECC可提供例如单差错纠正双差错检测(Single Error Correction DoubleError Detection,SECDEC),其中可以纠正单个比特差错并且可以检测一个或两个比特差错,或者双差错纠正三差错检测(Double Error Correction Triple Error Detection,DECTED),其中可以纠正多达两个比特差错并且可以检测多达三个比特差错。然而,ECC在可以纠正的比特的数目方面是受限的。

当存储数据的多个拷贝时,可以使用诸如奇偶校验或者校验和之类的差错检测来进行检测,以使得在一个拷贝有差错时可以使用备用拷贝。替代地,当有三个或更多个拷贝可用时,可以使用“投票”系统来确定选择要使用的值。

使用冗余存储装置的现有方案的局限性在于整个存储器系统被复制了副本。这是昂贵的。另一个局限性是这些方案不容忍存储器节点控制器、存储器管理单元或者其他存储器设备的故障,或者存储器中的多比特差错。当前方案的另外一个局限性是系统配置是静态的,并不考虑系统的存储器和存储组件的变化中的性能。还有一个局限性是用于数据放置和分配的现有方法未能考虑到设备健康状况。

因此存在对高效的容错存储器系统的需求。

附图说明

图1是符合本公开的某些实施例的数据处理系统的框图。

图2示出了符合本公开的某些实施例的具有单个存储器节点控制器(MNC)和物理存储设备的存储器系统。

图3示出了符合本公开的某些实施例的具有耦合到单个MNC的三个存储设备的存储器系统。

图4示出了符合本公开的某些实施例的具有单个MNC、多个物理存储设备和专用高弹性存储(HRS)设备的存储器系统。

图5示出了符合本公开的某些实施例的具有主MNC和次MNC的存储器系统。

图6示出了符合本公开的某些实施例的利用两个MNC的存储器系统。

图7示出了符合本公开的某些实施例的具有多个MNC和从属MNC的存储器系统。

图8图示了符合本公开的某些实施例的数据处理系统中的存储器的逻辑布置。

图9图示了符合本公开的某些实施例的范围表的条目。

图10图示了符合本公开的某些实施例的存储器的另一逻辑布置。

图11是符合本公开的某些实施例的在存储器系统中分配存储器的方法的流程图。

图12是符合本公开的某些实施例的用于在存储器系统中读取数据的方法的流程图。

图13是符合本公开的某些实施例的用于在存储器系统中写入数据的方法的流程图。

图14是符合本公开的某些实施例的可靠性可用性和服务(RAS)管理单元(RMU)的框图。

具体实施方式

虽然本公开容许许多不同形式的实施例,但在附图中示出并且在本文中将会详细描述特定实施例,要理解本公开应被认为是本公开的原理的示例,而并不意在将本公开限制到示出和描述的特定实施例。在下面的描述中,相似的标号可用于描述在附图的几幅图中相同、相似或相应的部件。

在本文档中,诸如第一和第二、顶和底等等之类的关系术语可被单独使用来对一个实体或动作与另一实体或动作进行区分,而不一定要求或暗示这种实体或动作之间的任何实际的这种关系或顺序。术语“包括”、“包含”、“具有”或者其任何其他变体意在涵盖非排他性的包含,以使得包括元素的列表的过程、方法、物品或装置不仅包括这些元素,而且可以包括没有明确列出的或者这种过程、方法、物品、或装置固有的其他元素。前面是“包括…”的元素不排除(在没有更多约束的情况下)在包括该元素的过程、方法、物品、或装置中的额外相同元素的存在。

本文档中各处提及“一个实施例”、“某些实施例”、“一实施例”、“(一个或多个)实现方式”、“(一个或多个)方面”或类似的术语的意思是结合该实施例描述的特定特征、结构、或特性被包括在本公开的至少一个实施例中。因此,这种短语在贯穿本说明书各处的出现不一定全都指的同一实施例。此外,特定的特征、结构、或特性可在没有限制的情况下在一个或多个实施例中以任何适当的方式进行组合。

本文使用的术语“或”应当解读为包含性的或者意指任何一个或任何组合。因此,“A、B或C”的意思是“以下各项中的任何项:A;B;C;A和B;A和C;B和C;A、B和C”。此定义的一个例外只会发生在以下情况下:元素、功能、步骤或动作的组合在某种程度上本身是互斥的。另外,语法连词意在表达联接的从句、句子、单词等等的任何和所有析取性和联合性组合,除非上下文另有声明或显现。因此,术语“或”一般应当被理解为意指“和/或”等等。

本文提及的所有文档在此通过引用被全部并入本文。以单数形式提及项目应当被理解为包括复数形式的项目,反之亦然,除非文本明确地另有声明或清楚可见。

本文记载的值的范围并不意在是限制性的,而是单独提及落在该范围内的任何及所有值,除非另有指示,并且这种范围内的每个单独的值被包含在本说明书中,就好像它在本文中被单独记载了一样。单词“大约”、“大致”、“基本上”等等当伴随着数值时应被解释为指示出为了对于期望的目的令人满意地操作,本领域普通技术人员将会明白的偏差。值和/或数值的范围在本文中只是作为示例提供的,而并不构成对描述的实施例的范围的限制。对于本文提供的任何和所有示例或者示范性语言(“例如”、“比如”之类的)的使用只是意在更好地阐明实施例,而并不对实施例的范围施加限制。说明书中的语言都不应当被解释为指示出任何未在权利要求中记载的元素对于实现实施例是必要的。

为了图示的简单和清晰,标号在附图之间可重复以指示出相应或类似的元素。阐述了许多细节以提供对本文描述的实施例的理解。没有这些细节也可实现实施例。在其他情况中,没有详细描述公知的方法、过程、和组件,以避免模糊描述的实施例。描述不应被认为限于本文描述的实施例的范围。

在接下来的描述中,要理解诸如“第一”、“第二”、“顶”、“底”、“上”、“下”、“上面”、“下面”等等之类的术语是方便用语,而不应被解释为限制性术语。另外,术语装置和设备在本文中可互换使用。

本公开涉及一种用于改善数据处理装置的存储器系统中的可靠性、可用性和可服务性(reliability,availability and serviceability,RAS)的机制。存储器系统包括一个或多个存储器控制器,例如存储器管理单元或存储器节点控制器,这些存储器控制器为数据处理装置的处理单元提供对若干个数据存储设备的访问。

本文的“存储器”和“存储装置”被理解为既包括易失性存储器,例如随机访问存储器(Random Access Memory,RAM),也包括非易失性存储器,例如闪存,和盘存储装置。存储器系统可包括各种类型的易失性和非易失性存储器。

提供了一种RAS管理单元(RAS Management Unit,RMU),其被配置为检测存储在存储设备上的数据中的差错,存储设备自身中的差错或者存储器控制器中的差错。对关键数据的各种保护级别被提供以对抗差错。在一些实施例中,保护是由存储器系统中的冗余提供的。一旦RMU检测到差错,就会在可能时纠正该差错。可提供若干冗余级别。

首先,数据可联合纠错码(ECC)一起被存储。ECC提供了取决于写入到存储设备的数据的额外信息,并且可用于检测和纠正存储的数据中的一个或多个比特差错。例如,在数据中的1比特差错的情况下,该数据的ECC可用于该1比特差错的恢复。

第二,可存储数据的一个或多个拷贝。这些拷贝可被存储在与原始数据相同的存储设备中或者可被存储在不同的存储设备中。当在原始数据中检测到差错时,其被这些拷贝中的一者所替换。可按若干种不同的方式来检测差错,例如使用奇偶校验比特、校验和、ECC,等等。例如,在2比特差错的情况下,SECDED(单差错纠正双差错检测)机制将检测单比特或2比特差错,但只有单个比特差错会被恢复。在多比特差错的情况下,SECDED和ECC码可能不可用于纠正。将必须从副本数据恢复正确的数据。在此情况下,特定的错误数据可被副本数据所替换以实现差错的恢复。

替代地,当有三个或更多个拷贝被保存时,“投票”系统可用于标识数据的正确拷贝。

也可通过使用高弹性存储装置(high resilience storage,HRS)来为关键数据提供差错保护。

根据本公开的一方面,只有数据的子集被保护以对抗差错。这个子集在本文中被称为“关键”数据,因为该子集可包括对于数据处理装置的正确操作而言关键的数据,例如配置和上下文数据。然而,用户可将任何数据指定为“关键”的,无论该数据是否是正确操作所必需的,因此该子集也可被称为“受出错保护”数据。

在一个实施例中,存储器地址空间的子集被指定为用于存储关键数据。例如,当存储器地址空间被布置为若干个地址“范围”时,一些地址范围可被分配用于关键数据。在操作中,处理单元使用的虚拟地址被利用某种映射表(通过一个或多个步骤)转换为或映射到物理地址。这些映射表被用信息(例如关键性比特)扩充以指示出在写入访问期间何时要保护数据或者在读取访问期间何时要对数据进行纠错。基于要求的保护类型和/或级别,以及故障的概率,关键性比特可使得数据被复制副本,被保存在高弹性存储设备中(如果高弹性存储设备可用的话),和/或被保存在受ECC保护的存储设备中。

由次存储设备提供第三冗余级别。当在主存储设备中检测到差错时,RMU进行操作来利用次存储设备替换主存储设备。

由次存储器节点控制器(MNC)提供第四冗余级别。次MNC被配置为实现对该次MNC要替换的主MNC所访问的相同存储设备的访问。当在主MNC中检测到差错时,RMU进行操作来利用次MNC替换主MNC。

本公开的另一方面是一种用于基于存储器系统中的存储器设备的可靠性来提供对保护类型和性质(或者RAID级别)的动态配置和数据的动态调度和移动的机制。

图1是符合本公开的某些实施例的数据处理装置100的框图。处理节点102被配置为访问存储设备104(MEM 1),例如存储器设备。处理节点102包括经由存储器节点控制器108(MNC 1)和数据递送缓存(DDC1)110耦合到存储设备104的一个或多个处理核心(在此示例中是106a、106b、106c和106d)。可靠性、可用性和可服务性(RAS)管理单元(RMU 1)112管理存储器系统的操作以提供改善的RAS。

根据本公开的实施例,向存储器系统添加诸如关键比特之类的标识符以标识“关键数据”。系统架构被配置为提供下述机制:该机制实现了存储在存储器层次体系中的“关键数据”中的瞬态差错和出错的自动的、硬件驱动的副本复制和恢复。

此方案适用于包含分组和管理数据(作为页或范围或片段)的机制的任何存储器系统。在下面的描述中,假定了一种基于范围的存储器系统,其中数据被分组为可变(在数据分配时可变)大小的范围。这种系统在共同待审的专利申请15/819,328中描述,特此将该专利申请全部并入本文。然而,本公开不限于此存储器布置。

(例如在分配存储器时)被用户标记为关键数据的所有数据将具有置位的关键范围比特并且该数据的一个或多个副本拷贝将被作为备份来保存。将对数据处理装置的任何一致性机制隐藏此副本,从而不要求该机制中的变化。知晓副本拷贝的RAS管理单元112和MNC控制器108一起实现了如一致性机制所看到的数据的单个正确视图。

提供对数据处理装置的配置或状态的描述的数据可被标记为关键的。

例如,支持虚拟和物理地址之间的映射的表格信息可被标记为关键的。这确保了在存储装置故障的情况下诸如范围表或页表信息之类的映射信息不会丢失。

此外,与由处理核心进行的线程执行有关的上下文信息也可被标记为关键的。例如,虚拟上下文架构(virtual context architecture,VCA)数据处理装置中的上下文数据可被标记为关键的。VCA在共同待审的专利申请15/361,819中描述,特此通过引用将该专利申请完全并入本文。作为另一示例,Linux操作系统中的内核任务数据可被作为关键的来分配。

图1示出的实施例包括具有单个存储器节点控制器(MNC 1)108和单个物理存储设备104的数据处理装置100。在此实施例中,在存储设备104中为关键数据分配第一存储区域并且在同一设备中为副本数据分配一个或多个第二区域。可以为非关键数据分配存储设备104的第三区域。与所有数据都被复制副本的系统相比,此方案需要更少的存储器。当存储单个副本时,多达一半的可用物理存储装置(在MEM 1中)将被用于数据副本的用途。在操作中,MNC 108将被标记为关键两次的页写入到RAS管理单元(RMU)112的方向上的相同物理介质。在此实施例中,针对关键数据中的瞬态差错实现了保护,其中差错是通过奇偶校验比特、校验和、ECC、拷贝的比较等等被检测的。在一个实施例中,可保存数据的三个或更多个拷贝,在此情况下可通过比较拷贝来执行差错检测。

图2示出了一实施例,其中数据处理装置200的存储器系统具有单个MCN 108和充当到更弹性的存储设备204的缓存的物理存储设备104。存储设备104可例如作为包含式缓存来操作。在此实施例中,如果顶级存储设备104发生故障,则MNC 108可绕过它并且访问更弹性的存储(MEM2)204。这样,针对存储设备104中的瞬态差错提供了保护,因为可从存储设备204(MEM 2)恢复关键数据。也针对存储设备104的故障提供了保护,因为关键数据也被存储在设备204(MEM 2)中。经由连接206,设备204可由MNC 108绕过设备104直接访问。

图3-图7中示出的另外实施例也帮助提供针对瞬态差错和存储设备故障的保护。

图3示出了数据处理装置300的存储器系统的一实施例,其中三个存储设备304a、304b和304c耦合到单个MNC 108。在此方案中,MNC 108将在不同的物理存储设备(MEM 1、MEM 2、MEM 3,等等)上复制数据副本,因此存储在一个存储设备中的主数据可被复制在一个或多个其他存储设备中。在此实施例中,由于需要复制副本,仍损失了整体存储容量。然而,可用于存储的有效存储器取决于被标记为关键的数据的量。

如上所论述,此实施例提供了针对存储器中的瞬态差错和存储设备故障的保护。

图4示出的实施例是具有单个MNC 108、多个物理存储设备404a、404b、404c和专用高弹性存储(HRS)设备406的数据处理装置400的存储器系统。在此实施例中,MNC仅向HRS(高弹性存储)设备406备份关键数据并且设备404a、404b、404c的全存储容量对数据处理装置可用。再一次针对存储器中的瞬态差错和存储设备故障提供了保护。

图5示出的实施例是将主MNC 108与次MNC 508一起使用的数据处理装置500的存储器系统。在此实施例中,次MNC 508没有映射到它的任何独立的真实地址空间。取而代之,次MNC 508充当主MNC 108的备份。主MNC 108处理全地址空间。两个MNC都能够访问诸如504a、504b和504c之类的多个存储设备。数据在各MNC上被复制副本并且可被周期性地同步。次MNC可为了关键数据的处理而与相同或不同(出于复制副本目的)存储设备相接口。除了减轻瞬态存储器差错和存储设备故障以外,此实施例还在MNC故障的情况下有所帮助。在主MNC 108中的故障的情况下,有关于主MNC 108的全部知识的次MNC 508可取得对所有相关联的存储设备的控制。这使得系统能够通过一个活跃工作的MNC设备继续执行。在下文更详细论述MNC故障。

在一个实施例中,RMU 112监视连接到MNC 108和DDC 110的存储设备。具体地,RMU可监视设备故障率并且也可知晓存储器设备的性质和健康状况。

在关键范围分配(或其他存储器映射)时,RMU根据监视到的故障率来确定要为关键范围分配的冗余拷贝的数目和类型。例如,在具有多个存储设备的配置中,设备MEM 1可具有低故障率(FIT率),而设备MEM 2具有高故障率。当要向MEM 1分配关键范围时,RMU将分配范围数据的两个拷贝(称为双模冗余)。然而,如果要向MEM 2(具有更高故障率)分配关键范围,则RMU将分配三个拷贝(称为三模冗余)。这维持了不那么可靠的存储设备中的可靠恢复。

此外,RMU可基于底层存储器硬件来决定不同的冗余方法。例如,副本数据可被保存为压缩数据,或者副本数据可位于分立的存储器或节点中。

在一个实施例中,用关于在关键区域内的缓存线的额外元数据来扩充缓存一致性协议。在从缓存无效共享状态时或者在逐出时,RAS管理单元发起从存储器的读取以比较存储器中的状态以便确保从一致网络逐出共享的缓存线不会消除数据的唯一正确拷贝。例如,对于64字节缓存线,此过程导致从存储器到RAS管理单元的一次64字节数据读取并且通过某种手段(直接比较或散列函数)对这64字节的比较。此过程只被用于关键区域。

为了确保MNC故障的恢复可行,所有范围表(或者其他存储器映射表)和到范围表的指针可被设置为关键范围,如上所讨论。当主MNC变得无响应时,所有存储设备被路由到备份的次MNC并且对管理的存储区域的所有请求都被通过次MNC来路由。

当来自DDC的请求被发送到MNC时,DDC将保存该数据,直到MNC确认操作完成为止。如果确认消息没有到达并且主MNC无响应,则一旦MNC故障数据恢复模式完成,请求就会被重路由向次MNC。

图6示出的实施例是利用两个MNC的数据处理装置600的存储器系统。MNC 1(108)、RMU 1(112)和DDC 1(110)为核心106a、106b、106c和106d提供访问,而MNC 2(608)、RMU 2(612)和DDC2(610)为核心606a、606b、606c和606d提供访问。在此实施例中,MNC数据在MNC1(108)和MNC 2(608)上被复制副本。在任何故障之前,存储设备504a、504b和504c如实线箭头所指示在MNC 1(108)下,并且存储设备604a、604b和604c同样如实线箭头所指示在MNC 2(608)下。考虑到地址空间在MNC之间被分区,范围所属的MNC将持有主拷贝,并且用于备份的所有其他MNC将持有备份拷贝。例如,如果MNC 1发生故障,则DDC 1(110)将把所有存储器请求路由到MNC 2(608),如虚线614所指示,并且MNC 2(608)将接管(利用MNC 1映射的备份拷贝)存储设备504a、504b和504c(MEM 1、MEM 2和MEM 3)的数据管理,如从MNC 2的虚线所指示。这些设备原本是在MNC 1下的。类似地,如果MNC 2发生故障,则DDC 2(610)将把所有存储器请求路由到MNC 1(108),如虚线616所指示,并且MNC 1(608)将接管(利用MNC 2映射的备份拷贝)存储设备604a、604b和604c(MEM 4、MEM 5和MEM 6)的数据管理,如从MNC 1的虚线所指示。这些设备原本是在MNC 2下的。因此,为了在存在MNC故障时继续系统的执行,双MNC节点将变成单个MNC节点,但将像通常那样继续处理存储器请求。在适当时总系统将被通知MNC故障,并且逐渐恢复和逐步淘汰过程可被发起。

图7示出的实施例是具有多个MNC和从属MNC的数据处理装置700。在此实施例中,节点102中的两个MNC 108和608的MNC数据被复制副本到从属MNC 708——按与图6类似的方式,其中备份被拷贝到伙伴MNC中。正如先前实施例中一样,在MNC 1或MNC 2中发生MNC故障时,通过绕过DDC和相关联的存储器之间的连接,从属MNC将被派以替换故障MNC的任务。在恢复模式期间,故障MNC的范围表和地址映射被拷贝到从属MNC 708中以继续执行。

图8图示了符合本公开的实施例的数据处理系统中的存储器800的逻辑布置。该存储器布置包括虚拟存储器地址空间802。虽然在图8中示出了单个虚拟存储器地址空间802,但每个程序或者设备会看到其自己的、包含供该程序或设备使用的指令和数据的虚拟存储器地址空间。编程线程可共享相同的虚拟存储器地址空间。虚拟存储器寻址的使用允许了通过防止一个程序访问或破坏另一程序使用的信息来控制存储器访问。存储器布置800还包括系统地址空间804。系统地址空间允许了对数据处理系统中的可寻址单元的访问,例如存储器、存储装置、硬件加速器和网络接口控制器。系统地址空间可既包含物理(存储器支持的)地址也包含虚拟存储器地址。存储器布置800还包括物理地址空间806,该物理地址空间806例如包含诸如存储器设备或存储设备之类的数据资源中的物理地址。在图8中示出了存储设备808和810,但数据处理系统可具有任何数目的存储设备。

一个或多个虚拟存储器地址空间被划分成各地址范围,例如图8中的地址范围812。每个范围可由两个参数来定义,例如开始和结束地址,开始地址和跨度(长度),或者从参考地址的偏移量。虚拟存储器地址空间中的每个范围被映射到系统地址空间中的相应范围。例如,虚拟存储器地址范围812被映射到系统地址范围814。每个系统地址范围被进一步划分成若干个分区。在图8所示的示例中,系统地址范围814具有四个分区,表示为D1、D2、D3和D4。在一个实施例中,每个分区对应于存储器或存储装置的一页,但在不脱离本公开的情况下,可使用其他大小的分区。此映射被称为第一层映射并且可例如利用范围表缓冲器来记录和实现。每个系统地址范围由存储器模式控制器来处理。

系统地址范围的每个分区被映射到数据资源中的一页。例如,分区D1被映射到存储设备808中的页P1,分区D4被映射到存储设备808中的页P4,等等。此映射被称为第二层映射并且可例如在系统到物理转换缓存中被记录和实现。

在示出的示例中,虚拟地址范围812或系统地址范围814被指定为要被用于关键数据的关键范围。在此情况下,副本或冗余系统地址范围816被保存并被映射到存储设备2(810)中的页P5、P6、P7和P8。关键地址范围中的数据被存储在存储设备808中并且该数据的拷贝作为备份被存储在存储设备810中。当在存储设备808中存储的数据中发现不可纠正的差错时,使用该备份拷贝。此外,如果存储设备808发生故障,则存储器节点控制器将使用存储设备810。范围814与816的关联性被记录在RMU中,使得来自关键范围812的数据写入被复制副本。范围814和816可由相同MNC或者不同的MNC来处理。

图9图示了符合本公开的实施例的描述虚拟地址的范围和系统地址的范围之间的映射的范围表条目900。在示出的实施例中,条目900包括虚拟存储器地址基础值904(VA_BASE)和虚拟地址跨度906(VA_EXTENT)。这些指示出从VA_BASE到VA_BASE+VA_EXTENT的地址范围。字段902包含偏移量,该偏移量在被添加到虚拟存储器地址时,指示出对应于该虚拟存储器地址的系统地址。因此,偏移量值被用于将虚拟存储器地址转换为系统地址。范围表条目900还包括用于各种管理和状态数据的管理字段908,并且可包含存储器访问许可的许可字段910。范围表条目还包含指示出该范围是否包含关键数据的关键性比特912。

范围表提供第一层地址映射。可以使用另一表格来指示第二层地址映射——从系统地址空间到物理地址空间。这个另一表格也可使用关键性比特来指示为关键数据的存储分配了存储器区域。

图10图示了符合本公开的实施例的数据处理系统中的存储器1000的另一逻辑布置。该存储器布置包括虚拟存储器空间802、系统存储器空间804和物理存储器空间806。物理存储器空间在此示例中被映射在存储设备808和810之间。关键范围812被映射到指派给第一存储器节点控制器(MNC)的系统地址空间814。关键范围812也由包含系统地址范围的拷贝1002的第二MNC来处理。第二MNC在第一MNC发生故障的情况下提供备份。在示出的示例中,系统地址范围1002被映射到与第一系统地址范围814相同的物理位置。例如,系统分区D1和D1'都映射到物理页P1。在另一实施例中,系统地址范围被映射到不同的物理位置以针对数据差错或存储设备故障提供备份。

图11是符合本公开的在存储器系统中分配存储器的方法1100的流程图。在开始块1102之后,在块1104发出分配请求,例如用于存储器范围的分配的“malloc”指令。如果该范围被标记为“关键”,如从判决块1106的肯定分支所描绘,则在块1108在范围表缓冲器中置位关键比特,以指示出该范围包含关键数据,并且在块1110在RMU中更新相应的记录以标识出主范围与次范围或备份范围之间的关联性。在块1112,RMU标识用于存储器分配的目标设备并且保护数据免遭差错。这可通过复制数据副本(在出于保护而复制数据副本的情况下)、将数据存储在HRS中、或者计算并存储纠错码(ECC)、校验和或者奇偶比特来完成。在块1114,在存储设备中分配存储器范围。该分配随后完成并且数据处理系统的进一步操作在块1116处继续。

图12是符合本公开的用于在存储器系统中读取数据的方法1200的流程图。在开始块1202之后,在块1204接收从特定存储器范围读取数据的请求。在块1206,MNC利用范围表缓冲器(或者某种其他存储器映射机制)确定所请求数据在存储设备中的位置。在块1208,从存储设备读取所请求的数据并且纠正(例如利用ECC)任何可纠正的差错。如果没有不可纠正的差错,如判决块1210的否定分支所描绘,则读取成功,如块1212所指示,读取操作完成并且进一步操作在块1214处继续。然而,当检测到不可纠正的差错时,如判决块1210的肯定分支所描绘,在块1216测试在MNC的范围表中与该范围相关联的关键比特。当关键比特被置位时,如判决块1216的肯定分支所描绘,知道了该数据的拷贝已被保存。在块1218确定(例如根据RMU中的记录)数据的拷贝的位置,并且在块1220,该拷贝数据差错的恢复。尽管在原始数据中有不可纠正的差错,该读取也成功了,如块1212所指示。然而,如果范围表中的关键比特未被置位,如从判决块1216的否定分支所描绘,则无法恢复数据并且在块1222提出差错异常。以这种方式,保护了关键数据,而没有过度使用冗余存储器。

图13是符合本公开的用于在存储器系统中写入数据的方法1300的流程图。在开始块1302之后,在块1304接收向特定存储器范围中写入数据的请求。在块1306,MNC利用范围表为该数据定位主目标范围。如果定位的范围的关键比特未被置位,如判决块1308的否定分支所描绘,则在块1310,数据被写入到目标设备。写入成功,如块1312所指示,并且进一步操作在块1314继续。如果定位的范围的关键比特被位置,如从判决块1308的肯定分支所描绘,则在块1316确定次位置——用于数据的冗余或备份拷贝。在块1318在RMU中缓冲要写入的数据的拷贝。在块1310,数据被写入到主目标设备,并且并行地,在块1320,缓冲的数据被写入到次目标。进一步操作在块1314处继续。

图14是符合本公开的某些实施例的RAS管理单元(RMU)112的框图。RMU 112包括关键范围表1402,该关键范围表1402存储对用于关键范围的备份范围的记录。在示出的示例中,该表格由范围标识符(RANGE ID)来索引并且存储备份范围的描述(例如基础地址和跨度)。当为关键范围分配存储器时,更新关键范围表1402。当发起写入操作时,该写入的目标范围ID 1404被传递到关键范围表1402并且该表格被用于标识备份范围。写入的数据1406被传递到数据副本单元1408以提供要被写入到备份存储装置的一个或多个拷贝1410。副本数据1410和标识的备份范围1412被提供到生成对MNC的写入请求1416的RMU写入缓冲器1414。

当读取操作导致不可恢复的差错时,该读取的目标范围ID 1418被用于标识关键范围表1402中的相应备份范围。读取请求1420被针对MNC生成,用于取回备份数据。来自MNC的备份数据1422被返回到差错恢复单元1424,差错恢复单元1424进而将恢复的正确数据1426返回给原始请求者。

RMU 112也可包括监视存储器系统的性能的监视单元1428。这可例如通过信号告知MCN和/或通过监视目标范围ID 1418来完成。检测到的故障可用于用次或从属存储设备或MNC来替代故障设备。此外,在分配单元1430中可使用MNC和存储设备的差错率来在为关键范围分配存储器时确定或者调整关键数据的备份拷贝的数目和位置。

一般而言,上文描述的存储器系统的功能元素可在一个或多个芯片上实现。

在操作中,RMU 112实现了具有改善的RAS的存储器管理的方法。响应于为关键数据分配存储器分配的请求,在主存储设备中分配用于存储关键数据的第一存储器,并且存储器映射表中映射到主存储设备中分配的存储器的条目指示出第一存储器包含关键数据。用于存储关键数据的一个或多个拷贝的第二存储器被RMU分配并且第一存储器与第二存储器之间的关联性被记录在关键范围表中。可以在主存储设备中或者在一个或多个次存储设备中分配用于存储关键数据的一个或多个拷贝的第二(备份)存储器。RMU可监视主存储设备,并且当在主存储设备中检测到故障时,使得主存储设备被一个或多个次存储设备中的存储设备所替换。

可以监视主存储设备的故障率来确定(根据监视到的故障率)关键数据的拷贝的数目。

当检测到从主存储设备读取的第一关键数据中的不可恢复的差错时,第一关键数据被存储的关键数据的拷贝所替换。

可经由主存储器节点控制器(MNC)和次MNC来访问主存储设备,并且其中存储器映射表包括由主MNC访问的第一存储器映射表。在此布置中,第一存储器映射表可在次MNC中被复制副本,作为第二存储器映射表。主MNC被RMU监视。当在主MNC中没有检测到故障时,经由主MNC来访问主存储设备。然而,当在主MNC中检测到故障时,经由次MNC来访问主存储设备。

响应于对于第一数据的写入指令,存储器映射表(例如范围表)被用于确定第一数据何时是针对第一存储器的关键数据。当第一数据是关键数据时,第一数据被写入到第一存储器,并且例如利用关键范围表1402中记录的第一存储器和第二存储器之间的关联性来标识第二存储器。然后第一数据的副本被写入到第二存储器。

本文给出的本公开的各种实施例和示例被理解为例示本公开而不是限制本公开,并且对于本公开的范围并不是限制性的。

本公开的更多特定的优选方面在所附的独立和从属权利要求中记载。从属权利要求的特征可适当地按不同于权利要求中明确记载的组合方式与独立权利要求的特征相组合。

虽然本文已参考附图详细描述了本公开的说明性实施例,但要理解本公开不限于这些确切的实施例,并且在不脱离如所附权利要求限定的本公开的范围的情况下,本领域技术人员可在其中实现各种改变和修改。

将会明白,上文描述的设备、系统、和方法是作为示例而不是作为限制提出的。在没有明确的相反指示的情况下,公开的步骤可被修改、补充、省略、和/或重排序,而不脱离本公开的范围。许多变化、添加、省略、和其他修改将是本领域普通技术人员显而易见的。此外上文的描述和附图中的方法步骤的顺序或呈现并不意在要求按此顺序执行记载的步骤,除非特定的顺序是明确要求的或者是在其他情况下根据上下文清楚可见的。

本文描述的实现方式的方法步骤意在包括符合所附权利要求的可专利性的使得这种方法被执行的任何适当方法,除非明确提供了不同的含义或者在其他情况下根据上下文清楚可见不同含义。

还应当明白,上文方法是作为示例提供的。在没有明确的相反指示的情况下,公开的步骤可被修改、补充、省略、和/或重排序,而不脱离本公开的范围。

将会明白,上文描述的方法和系统是作为示例而不是作为限制提出的。许多变化、添加、省略、和其他修改将是本领域普通技术人员显而易见的。此外,上面的描述和附图中的方法步骤的顺序或呈现并不意在要求按此顺序执行记载的步骤,除非特定的顺序是明确要求的或者是在其他情况下根据上下文清楚可见的。因此,虽然已示出和描述了特定实施例,但本领域技术人员将会清楚,可在不脱离本公开的范围的情况下在其中做出形式和细节上的各种变化和修改,并且这种变化和修改意在形成如所附权利要求限定的本公开的一部分,所附权利要求应按法律允许的最宽意义来解读。

本文已详细描述的各种代表性实施例是作为示例而不是作为限制给出的。本领域技术人员将会理解,可对描述的实施例做出形式和细节上的各种变化,产生仍保持在所附权利要求的范围内的等同实施例。

因此,公开的实施例的一些特征在以下编号项目中陈述:

1.一种用于数据处理装置的存储器系统,该存储器系统包括:出错管理单元;第一存储器控制器;以及可经由所述第一存储器控制器访问的并且被配置用于存储数据的第一子集中的第一数据的第一存储设备;其中所述出错管理单元被配置用于:检测所述第一数据、所述第一存储设备或者所述存储器节点控制器中的出错;并且纠正所述出错;其中所述数据的第一子集被指定为受出错保护的;其中所述存储器系统保存所述第一数据的一个或多个拷贝,并且其中所述第一存储器控制器包括存储器管理单元或者存储器节点控制器。

2.如项目1所述的存储器系统,其中纠正所述第一数据中的出错包括利用所述第一数据的纠错码来纠正差错。

3.如项目1或项目2所述的存储器系统,其中所述第一数据的一个或多个拷贝包括主拷贝和次拷贝,其中纠正所述第一数据中的出错包括当在所述第一数据的主拷贝中检测到出错时访问所述第一数据的次拷贝。

4.如项目3所述的存储器系统,其中所述第一数据的主拷贝和次拷贝被存储在所述第一存储设备中。

5.如项目3或项目4所述的存储器系统,还包括第二存储设备,其中所述第一数据的主拷贝被存储在所述第一存储设备中并且次拷贝被存储在所述第二存储设备中。

6.如任一在前项目所述的存储器系统,其中数据的第二子集中的第二数据被指定为不受出错保护,并且其中所述存储器系统不为所述第二数据提供出错保护。

7.如任一在前项目所述的存储器系统,其中所述第一数据包括映射数据,该映射数据指示出所述数据处理装置中的虚拟地址和物理地址之间的映射。

8.如项目7所述的存储器系统,其中所述映射数据包括范围表。

9.如任一在前项目所述的存储器系统,其中所述第一数据包括上下文数据,该上下文数据指示出在数据处理装置中执行的处理线程上下文。

10.如任一在前项目所述的存储器系统,其中纠正出错包括当在所述第一存储设备中检测到所述出错时选择替代存储设备,其中所述替代存储设备能经由所述第一存储器控制器来访问。

11.如任一在前项目所述的存储器系统,其中纠正出错包括当在所述第一存储器控制器中检测到差错时选择替代存储器控制器,其中所述第一存储设备能经由所述第二存储器控制器来访问。

12.一种非暂态计算机可读介质,包含硬件描述语言的指令,所述指令描述如任一在前项目所述的存储器系统。

13.一种非暂态计算机可读介质,包含如项目1至12的任何一项所述的存储器系统的网表描述。

14.一种存储器管理的方法,包括:响应于为受出错保护数据分配存储器的请求:在主存储设备中分配用于存储所述受出错保护数据的第一存储器;标记存储器映射表中的条目以指示出所述第一存储器包含受出错保护数据;分配用于存储所述受出错保护数据的一个或多个拷贝的第二存储器;并且记录所述第一存储器与所述第二存储器之间的关联性。

15.如项目14所述的方法,其中分配用于存储所述受出错保护数据的一个或多个拷贝的第二存储器包括在所述主存储设备中分配存储器。

16.如项目14或项目15所述的方法,其中分配用于存储所述受出错保护数据的一个或多个拷贝的第二存储器包括在一个或多个次存储设备中分配存储器。

17.如项目16所述的方法,还包括:监视所述主存储设备;并且当在所述主存储设备中检测到故障时,利用所述一个或多个次存储设备中的存储设备来替换所述主存储设备。

18.如项目14至17的任何一项所述的方法,还包括:监视所述主存储设备的故障率;并且根据监视到的故障率来确定所述受出错保护数据的拷贝的数目。

19.如项目14至18的任何一项所述的方法,还包括:检测从所述主存储设备读取的第一受出错保护数据中的差错;并且当检测到的差错不可纠正时,利用存储在所述第二存储器中的相应数据来替换所述第一受出错保护数据。

20.如项目14至19的任何一项所述的方法,其中所述主存储设备经由主存储器节点控制器(MNC)和次MNC来访问,并且其中所述存储器映射表包括由所述主MNC访问的第一存储器映射表,所述方法还包括:在所述次MNC中复制所述第一存储器映射表来作为第二存储器映射表;

监视所述主MNC;当在所述主MNC中没有检测到故障时,经由所述主MNC来访问所述主存储设备;并且当在所述主MNC中检测到故障时,经由所述次MNC来访问所述主存储设备。

21.如项目14至20的任何一项所述的方法,还包括:响应于对于第一数据的写入指令:根据所述存储器映射表确定所述第一数据何时是要被写入到所述第一存储器的受出错保护数据;并且当所述第一数据是受出错保护数据时:将所述第一数据写入到所述第一存储器;利用记录的所述第一存储器与所述第二存储器之间的关联性来标识所述第二存储器;并且将所述第一数据写入到所述第二存储器。

22.一种用于在存储器系统中分配存储装置的方法,该方法包括,响应于为数据分配存储装置的请求:确定所述数据何时是受出错保护数据;当所述数据是受出错保护数据时,根据所述存储器系统的故障特性来为所述受出错保护数据确定故障保护级别;并且取决于所述故障保护级别来分配存储;其中所述故障保护级别包括以下所列项中的一个或多个:所述受出错保护数据的拷贝的数目;所述受出错保护数据的纠错码;以及所述受出错保护数据的存储位置。

23.如项目22所述的方法,其中所述存储器系统包括多个设备,所述方法还包括:监视所述存储器系统的设备的可纠正差错率和不可纠正差错率以提供设备健康状况的度量;并且根据测量到的设备的健康状况来更新所述故障特性。

24.如项目22或项目23所述的方法,其中设备健康状况的度量包括设备的故障概率。

25.如项目22至24的任何一项所述的方法,其中所述设备的可纠正差错率和不可纠正差错率是在一段时间中或者在若干次存储器访问中测量的。

相关技术
  • 具有容错机制的小容量OTPROM存储器及其容错控制方法
  • 一种容错存储器及其纠错容错方法
技术分类

06120112430993