CN104335187A - 独立于存储器控制器的存储备份 - Google Patents
独立于存储器控制器的存储备份 Download PDFInfo
- Publication number
- CN104335187A CN104335187A CN201380026467.7A CN201380026467A CN104335187A CN 104335187 A CN104335187 A CN 104335187A CN 201380026467 A CN201380026467 A CN 201380026467A CN 104335187 A CN104335187 A CN 104335187A
- Authority
- CN
- China
- Prior art keywords
- memory
- memory controller
- storage buffer
- region
- firmware
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1666—Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1658—Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Dram (AREA)
Abstract
一种信息处理***(IHS)包括存储器控制器,存储器设备,以及固件。故障存储器区域和备用存储器区域被包括在该存储器设备中。在所述存储器设备中的存储器缓冲器被耦合至所述故障存储器区域和所述备用存储器区域。所述存储器缓冲器可操作以执行复制操作而不适用来自所述存储器控制器的指令从而响应于由所述固件执行的固件操作从所述故障存储器区域向所述备用存储器区域复制数据。固件操作可以包括命令所述存储器控制器产生额外的刷新或校正操作时间周期,或提供指令以执行向所述备用存储器区域的数据传送。存储器缓冲器也可执行以在所述复制操作的过程中将来自所述存储器控制器的请求路由至所述故障存储器和所述备用存储器中的一个。
Description
背景技术
本公开一般涉及信息处理***(IHS),并且尤其涉及在独立于存储器控制器的IHS中提供存储备用(memory sparing)。
随着信息的价值和使用的增长,个人和企业寻求处理和存储信息的额外途径。IHS是一种选择。IHS通常为了企业、私人或其他目的处理、编译、存储和/或传送信息或数据。由于技术和信息处理的需要和要求在不同应用之间会变化,IHS也会针对什么信息被处理,信息如何被处理,多少信息被处理、存储或传送以及信息会被多快速和有效地处理、存储或传送而变化。IHS中的变化允许了IHS是通用的,或针对特定用户或诸如金融交易处理、航空预定、企业数据存储或全球通信的特定使用被配置。此外,IHS可以包括多个可以被配置为处理、存储和通信信息的硬件和软件组件,并且可以包括一个或多个计算机***、数据存储***和网络***。
目前,对于处理重要的数据的IHS来说,通常将存储器的区域维持保留(即,“备用”区域,例如备用内存排)从而替代存储器的活跃区域中不可恢复或超出可恢复的错误。这通常被称为存储备用。然而,目前的***对于存储备用具有降低其期望性的缺点。例如,存储备用并不是存在于所有类型的处理器上(例如,较低成本处理器)。此外,存储备用会需要在IHS上的DIMM的均匀分布,这限制了基于存储器区域创建不同级别的保护的能力。此外,传统上存储备用由IHS内的存储器控制器控制。常规的存储器控制器控制的存储备用***仅根据对存储器控制器可见的存储器区域创建存储备用关联。然而,在某些IHS中,物理存储区域的分区(例如,在缓冲的DIMM上的物理内存排以及诸如低负载双内嵌存储器模块(Load-Reduced DualIn-line Memory Modules,LRDIMM)和3D通-硅过孔(Through-Silicon Via,TSV)DIMM扩展卡(risers))会从存储器控制器隐藏,并且因此那些存储区域从存储备用***中被排除。更进一步地,存储备用通常不被诸如监控或锁步(lockstep)的其他可靠性/可用性/服务性(Reliability/Availability/Serviceability RAS)特征支持。最终,在由存储器控制器控制的常规存储备用***中,当活跃内存排故障时,***操作会被打断直至存储器控制器将数据从活跃内存排复制到备用内存排。
因此,需求存在于改善的存储备用***中。
发明内容
根据一个实施方式,用于独立于存储器控制器的存储备用***中的信息处理***包括存储器控制器,存储器设备,该存储器设备被耦合至所述存储器控制器并且包括第一存储器区域和第二存储器区域,以及存储器缓冲器,该存储器缓冲器被耦合至所述第一存储器区域和所述第二存储器区域,其中所述存储器缓冲器可操作以执行复制操作而不使用来自所述存储器控制器的指令从而从所述第一存储器区域向所述第二存储器区域复制数据,并且其中所述存储器缓冲器可操作以在所述复制操作的过程中将来自所述存储器控制器的请求路由至所述第一存储器区域和所述第二存储器区域中的一个,以及固件,该固件被耦合至所述存储器设备,其中所述固件可操作以执行固件操作以引起所述存储器缓冲器执行所述复制操作而不使用来自所述存储器控制器的指令。
附图说明
图1是示出了信息处理***(IHS)的实施方式的示意图;
图2是示出了独立于存储器控制器的存储备用***的实施方式的示意图;
图3是示出了图2中的独立于存储器控制器的存储备用***的实施方式的功能性模块图;
图4a是示出了用于提供独立于存储器控制器的存储备用的方法中的存储备用的初始化的方法的实施方式的流程图;
图4b是示出了用于提供独立于存储器控制器的存储备用的方法中的激活存储备份区域的方法的实施方式的流程图;
图5是示出了用于提供独立于存储器控制器的存储备用的方法的实施方式的流程图;
图6是示出了用于提供图4a、4b和5的独立于存储器控制器的存储备用的方法中的硬件复制的方法的实施方式的流程图;以及
图7是示出了用于提供图4a、4b和5的独立于存储器控制器的存储备用的方法中的固件复制的方法的实施方式的流程图。
具体实施方式
为了本公开的目的,信息处理***(IHS)可以包括任何能够操作计算、分类、处理、传送、接收、检索、发起、切换、存储、显示、表明、检测、记录、复制、处理的计算机构或机构的集合,或者为了商业、科学、控制、娱乐或其他目的利用任何形式的信息、情报或数据。例如,IHS可以是个人计算机、PDA、客户电子设备、显示设备或监控器、网络服务器或存储设备、开关路由器或其他网络通信设备、移动通信设备或任何其他适合的设备。IHS可以在大小、形状、性能、功能性和价格上变化。IHS可以包括存储器、一个或多个诸如中央处理单元(CPU)或者硬件或软件控制逻辑的处理资源。IHS的附加部件可以包括一个或多个存储设备、一个或多个用于与外部设备通信的通信口以及各种输入和输出(I/O)设备,例如键盘、鼠标和视频显示器。IHS还可以包括一个或多个可以操作以在各种硬件部件之间传送通信的总线。
在一个实施方式中,图1中示出的IHS 100包括被连接至总线104的处理器102。总线104充当在处理器102和IHS 100的其他部件之间的连接。输入设备106被耦合至处理器102以提供像处理器102的输入。输入设备的示例可以包括键盘、触摸屏、诸如鼠标、跟踪球和跟踪板的定点设备,和/或现有技术中的各种其他输入设备。程序和数据被存储在耦合至处理器102的大容量存储设备108上。大容量存储设备的示例可以包括硬盘、磁-光盘、固态存储设备和/或各种其他本领域已知的大容量存储设备。IHS 100还包括通过视频控制器112被耦合至处理器102的显示器110。***存储器113被耦合至处理器102以向处理器提供快速存储以促进由处理器102执行计算机程序。***存储器的示例可以包括诸如动态RAM(DRAM)、同步DRAM(SDRAM)的随机存取存储器(RAM)、固态存储器设备,和/或各种本领域已知的其他存储器设备。在实施方式中,机架116覆盖了IHS 100的部分或所有部件。应该理解的是,其他总线和中间电路可以在上述的部件和处理器102之间布置以促进在部件和处理器102之间的内部连接。
应该理解的是,下面的公开提供了多种不同的实施方式或实施例,以实现本公开的不同特征。部件和布局的特定实施例在下文中被描述以简化本公开。当然,这些仅仅是实施例并且并不试图被限制。为了简明和清楚的目的,各种部件可以以不同比例被任意地描绘。
通常,本公开针对用于在独立于并且“可见于”IHS中的存储器控制器的IHS中提供存储备用的***和方法。如上所述,传统存储备用***利用存储器控制器来将存储器的区域维持保留并且使用被保留的存储器区域代替存在不可恢复或过度可恢复的错误的活跃存储器区域。在一些实施方式中,本公开详细描述了存储器控制器独立存储备用***和方法,该***和方法基于存储器缓冲器并且相对于传统的基于存储器控制器的***和方法表现出多个优势,例如提供增强的适应性、与容量成比例的能力以及将会由本领域技术人员认识到的多种其他优势。
在一些实施方式中,独立于存储器控制器的存储备用***和方法提供存储器缓冲器,该存储器缓冲器能够在沿着调整存储器缓冲器活动的固件(例如基本输入/输出***(BIOS))的存储器的指定区域(例如,信道、双内嵌存储器模块(DIMM)、内存排、多重内存排、内存组等等)之间切换。存储器缓冲器可以被实施为在DIMM、母板、扩展卡和/或本领域中已知的其他模块上的独立组件,和/或可以被合并至多核封装和包括那些容纳诸如DRAM的存储器设备的装配,和/或可以集成在存储器设备的内核。当存储器缓冲器闲置时,存储器缓冲器能够在周期中在存储器区域之间执行复制。在后文详细描述的特定实施方式中,存储器缓冲器可以利用备用状态、复制参数信息、复制数据缓冲以及复制地址计数器以执行伴随着在存储器缓冲器和固件之间的带外(例如,通过***管理总线(SMBus)或带内(例如,如果控制字操作被支持)管理的通信的复制。
在操作中,如果超出存储器区域的错误阈值,固件命令存储器缓冲器开始失效并切换(failover)至备用存储器区域。接下来存储器缓冲器根据复制参数信息更新备用状态,开始从故障存储器区域向备用存储器区域复制信息。在一些实施方式中,当存储器缓冲器不需要对应于来自处理器的访问命令时,存储器缓冲器可以通过采取该有利的时间周期来执行复制操作,而在其他实施方式中,固件可以生成用于复制操作的时间周期。此外,当命令将不会被发出时,存储器***刷新和/或校正时间周期可以被利用以创建时间周期从而复制操作可以被执行。
例如,正如本领域中已知的,存储器***需要周期校正(calibration)命令来调整驱动强度(drive strength)和终止。该周期相对于标准存储器循环时间周期要长,并且可以以长度和周期来被调节。独立于存储器控制器的存储备用***可以***作以增加校正时间周期的频率和周期以允许存储器缓冲器使用校正周期(即,“交替”校正周期)中的至少一些用于复制操作。
独立于存储器控制器的存储备用***也可以使用用于类似目的的刷新机制。本领域已知的是,刷新机制可以基于刷新目标(例如,内存排、内存组或内存组组合)变化,并且通过使用隐藏内存排,多重内存排可以被间接地针对于刷新。刷新机制命令周期可以被延长以比单标准刷新循环时间周期更长,并且有机制促使更高的刷新率(即,用于创建存储器中会将温度升高的更高性能的模式)。这些更高的刷新率可以被独立于存储器控制器的存储备用使用,以提供增加数量(例如双倍)的将发生的刷新,并且接下来存储器缓冲器可以使用刷新时间周期中的至少一些(即,“交替”刷新时间周期)以执行复制操作。其他刷新机制可以被用于提供刷新时间周期,在该时间周期中,复制操作可以例如被执行为,缩短在刷新之间的间隔从而创建更多的用于复制操作的刷新时间周期。
当使用用于复制操作的校正和/或刷新时间周期时,可以使用标准动态随机接入存储器(DRAM)命令来执行复制操作。然而,由于标准DRAM命令通常根据被定义好的固定定时器来执行,存储器缓冲器必须保证在复制操作中其DRAM(或DIMM)总线将不会被请求存储器控制器发起的传输。例如,如果存储器缓冲器正使用校正时间周期来执行复制操作,当前标准需要控制器关闭所有存储器页并且控制器发起的访问不被执行。在其他实施例中,如果存储器缓冲器正使用刷新时间周期来执行复制操作,所有存储器页需要在复制操作能够开始前在存储器缓冲器后被关闭。在一些实施方式中,在这些情况中的存储器控制器将在关闭页政策下***作。在其他实施方式中,存储器缓冲器可以跟踪存储器命令以确定何时没有活跃行,从而保证在刷新周期内执行的复制操作中将不会有读或写总线冲突。在其他实施方式中,存储器缓冲器可以跟踪存储器命令并随需要关闭/开启页以执行复制操作,同时保证所有页的被关闭/被开启的状态在存储器控制器发出新存储器命令之前被恢复。在这种实施方式中,任何在复制操作中的开启/关闭动作可以被执行为可见于存储器控制器的页状态。
如上所述,独立于存储器控制器的存储备用***的实施方式包括标准控制器特征的使用以生成复制操作时间周期。在可替换实施方式中,固件可以执行读和写命令以备用存储器区域,并且这些读和写命令将被独立于存储器控制器的存储备用***区分为复制操作(即,由于普通读和写命令将不会在备用存储区域上被执行)。向在复制地址的复制源区域的中间写入可以被路由至复制目标区域,因此处理涉及潜在过期数据的问题。在这种实施方式中,可以通过使巡查擦除操作失效来保持固件和存储器缓冲器同步。
由独立于存储器控制器的存储备用***处理的另一个问题是:在复制至被复制的区域的操作过程中,来自存储器控制器的命令必须被指向有效区域。存储器缓冲器通过将从存储器控制器接收到的命令中的地址、内存排和/或其他复制位置标识与存储器缓冲器中的复制地址计数器相比较来为其分配地址,从而将命令指向有效区域:如果在命令中的地址已经被复制至复制目标区域,访问被指向复制目标区域,而如果命令中的地址没有被复制至复制目标区域,访问被指向复制源区域。
独立于存储器控制器的存储备份***的特定实施方式将被描述,关于涉及特定存储器***部件(例如,内存排)的存储备用。本领域技术人员将意识到的是,在一些实施方式中,内存排(ranks)指的是动态随机访问存储器集成电路(Dynamic Random Access Memory Integrated Circuits,DRAMIC)(例如,4DRAMIC、8DRAMIC、16DRAMIC等)的聚集,可以与通用命令和地址以及独立数据总线并联接入以形成高宽带***总线。这种实施方式被提供为本公开的概念的一种实施的实施例,并且本领域技术人员将领会的是,独立于存储器控制器的存储备用***的广泛的各种改变和等效存储器***部件替代将在本公开的范围内。
图2是根据本公开的方面的包含处理器102和***存储器114的图1的IHS 100的部分的功能模块图。通常,IHS 100被配置为以独立于与***存储器相关联的存储器控制器150的方式来选择地备用***存储器114的部分。例如,可以通过内存排、DRAM芯片、地址范围或通过其他分组来备用***存储器114的部分,并且可以通过IHS中的固件(例如BIOS)和***存储器中的一个或多个缓冲来管理备用,而不会受到来自存储器控制器的影响。
在示出的实施方式中,处理器102包括管理数据流出/入***存储器114的集成存储器控制器150。然而在可替换实施方式中,存储器控制器150可以独立于处理器102。通常***存储器114通过信道152通信地耦合至处理器102(以及存储器控制器150)。信道152在存储器控制器150和***存储器114之间传送数据和命令信号。在实施方式中,信道152可以根据使用的***存储器114类型,每信道支持一个、两个、单个或更多个DIMM套接口。此外,虽然仅示出了单信道,额外的信道可以被通信地耦合至存储器控制器150。
通常,接受存储器模块的一个或多个套接口可以通过信道152与存储器控制器150通信。双内嵌存储器模块(DIMM)套接口154通过信道152通信地耦合之存储器控制器150。在示出的实施方式中,DIMM套接口154符合由电子装置工程联合委员会(Joint Electron Devices Engineering Council,JEDEC)颁布的DIMM标准。可替换地,套接口154可以包括单内嵌存储器模块(single in-line memory module,SIMM)套接口、其他类型的存储器模块套接口,或者可以符合诸如提出的双倍数据率4(DDR4)、DDR3SDRAM标准、由JEDEC颁布的未来DDR标准或其他存储器标准或专有设计的不同标准。
IHS 100还包括通过I/O信道158被通信地耦合至处理器102和***存储器114的管理模块156。在示出的实施方式中,管理模块是基本输入/输出***(BIOS)模块。然而在其他实施方式中,可以使基板管理控制器(baseboard management controller,BMC)或其他板内(in-band)或板外(out-of-band,OOB)控制器。在一些实施方式中,I/O信道158可以是诸如***管理总线(SMBus)或其他***总线的通信总线的一部分。在示出的实施方式中,BIOS模块156被实施在非易失制度存储器(ROM)芯片上,并且包括可以***作来检测和识别在IHS 100内的资源、为这些资源提供适合的驱动、初始化这些资源以及访问这些资源的固件。在示出的实施方式中,BIOS模块156包括存储器初始化固件来初始化***存储器114。作为一个方面,BIOS存储器初始化固件模块首先配置***存储器114中的存储备用(例如,BIOS存储器初始化固件模块可以与例如存储器控制器初始化功能的BIOS功能通信)。然而在可替换实施方式中,BMC、OOB或其他类型的管理模块可以配置在IHS 100中的存储备用。下文中将详细描述存储备用配置。
如图2所示,DIMM 160被配置为与DIMM套接口154紧密配合。在一些实施方式中,DIMM套接口和DIMM可以符合诸如提出的DDR4DIM标准、DDR3DIMM标准、DDR2DIMM标准或进一步的由JEDEC或其他标准设置组织发布的标准。此外,在示出的实施方式中,DIMM 160是例如低负载DIMM(LRDIMM)的被缓冲的DIMM。DIMM 160包括逻辑上被分为级别0、1、2、3、4、5、6和7的存储器存储位置。虽然DIMM 160被示出为主机8级别,在可替换实施方式中,可以根据DIMM的规格具有更多或更少数量的级别。例如,DDR4DIMM可以支持多至16级别。DIMM 160包括被配置为缓冲在DIMM 160上的DRAM芯片和存储器控制器150之间传送的数据的板上存储器缓冲器162(例如在缓冲-板上配置中)。在示出的实施方式中,存储器缓冲器162是集成至DIMM的数字硬件电路,但是在可替换实施方式中,可以被放置在诸如扩展卡上的其他硬件部件上。存储器缓冲器162被配置为在BIOS 156的指导下为DIMM 160管理存储备用。因此,存储备用独立于并且可见于存储器控制器150。因此,如下文中详细描述的,响应于由数据错误导致的任何内存排的故障而执行的存储备用被存储器缓冲器162处理,并且独立于存储器控制器150。
为了管理在DIMM 160上的存储备用,存储器缓冲器162包括状态表164。状态表164跟踪DIMM 160上的物理范围的备用状态。在一些实施方式中,每个备用区域可以由跨过多重DRAM芯片的存储器位置组成,而在其他实施方式中,单DRAM芯片可以包括多重备用区域。在下文中描述的实施例中,备用区域是内存排,但是本领域技术人员将领会的是各种不同备用区域将在本公开的精神的范围内。在示出的实施方式中,在BIOS 156中的存储器初始化固件在存储器初始化过程中填充状态表。由BIOS 156指定为备用存储器的物理范围可以通过BIOS 156从传递至***软件(例如操作***)的可用***存储器中被排除,并且因此不会在正常操作中被访问。根据IHS DIMM配置和备用区域指定,被存储器指定为备用存储器的部分可以对***软件表现为“洞”。状态表164的一个实施例在下面的表1中被示出。
表1
由于在表1中示出的实施方式中的存储器缓冲器162后的***存储器通过物理范围被备用,表1中的每行对应着由存储器缓冲器162控制的物理范围。对于每个物理范围,数据关于指示该物理范围的当前状态的物理范围被保留。如下文中详细描述的,表1中的实施例示意了物理范围0、1、2、3和4是常规物理范围,物理范围5、6和7是备用物理范围的情况,物理范围1在先前故障并且被物理范围5备用,物理范围2当前故障并且正由物理范围6备用,以及物理范围7当前可用于备用另外的物理范围。
对于每个物理范围,表格包括用于该物理范围的相关联的活跃范围。在表1给出的实施例中,物理范围0、1、2、3和4是“常规物理范围”,其中物理范围0、2、3和4其自身被指定为其各自的活跃范围,而物理范围1由于故障不可用。此外,物理范围5、6和7是“备用物理范围”,其中物理范围6具有物理1作为其活跃范围,这是由于其已经被用于备用故障的物理范围1,物理范围6具有物理范围2作为其活跃范围,这是由于其正在被用于备用物理范围2,以及物理范围7具有其自身作为活跃物理范围不可用,这是由于其当前不被用于备用常规物理范围。
对于每个物理范围,表格包括用于该物理范围的相关联的备用状况,指示了该物理范围的是否可以用作备用物理范围。在表1的实施例中,物理范围0、1、2、3和4由于不可用做备用物理范围而包括“0”作为其备用状况,物理范围1由于故障不可以用,物理范围5和6由于正在分别被用于备用物理范围1和2而包括“0”作为其备用状况,以及物理范围7由于可用于备用其他物理范围而具有“1”作为其备用状况。
对于每个物理范围,表格包括用于该物理范围的相关联的备用状况,指示了该物理范围是否当前活跃。在表1的实施例中,物理范围0、3、4、5、6和7由于当前正在被用于存储数据而包括“1”作为其活跃状况,物理范围1由于故障不可用,以及物理范围7由于当前没有被用于存储数据而包括“0”作为其活跃状况。
对于每个物理范围,表格包括用于该物理范围的相关联的故障状况,知识了该物理范围是否已经故障或正在故障。在表1的实施例中,物理范围0、3、4、5、6和1由于没有发生故障并且没有正在故障而包括“0”作为其故障状况,而物理范围1和2由于物理范围1已经故障并且物理范围2正在故障而具有“1”作为其故障状况。
对于每个物理范围,表包括用于该物理范围的相关联的复制目标和复制源状况,指示该物理范围是否正在被复制出或复制入。在表1示出的实施例中,由于物理范围2正在故障并且物理范围6正在被用于备用物理范围2,只有物理范围2正在被复制出(即,物理范围2包括复制出状况的“1”)并且只有物理范围6正在被复制入(即,物理范围6包括复制入状况的“1”)。
应该理解的是,上文的表格1是简化实施例,并且状态表164可以包含额外和/或不同的信息并且被不同地被配置在可替换实施方式中。例如,表1包括用于存储器的八个物理范围的备用状态表,但是存储器的更多或更少物理范围被认为是在本公开的范围之内。在实施方式中,BIOS 156可以为每个用于存储备用***的存储器缓冲器保持类似于表1的备用状态表。
参照图3,存储器控制器150、存储器缓冲器162以及***存储器114的一个实施方式被示出,详细描述了可以被追踪或者被存储器缓冲器162使用的信息,并且将在下文中参照方法400被描述。存储器控制器150、存储器缓冲器162以及***存储器114通过总线(或“信道”)168通信。复制缓冲166被包含在存储器缓冲器162中并且被耦合至总线168。***存储器114包括具缺陷的内存排170和备用内存排172。除了状态表164和复制缓冲166,存储器缓冲器162存储校正复制比特174、刷新复制比特176、固件复制比特178以及复制周期180作为复制参数的部分,该复制参数连同与复制操作模式的关系一起指定复制操作周期,如在下文中描述的,该复制操作模式可以包括固件复制操作模式、校正复制操作模式以及刷新付汇操作模式。存储器缓冲器162也存储当前复制地址182、复制缓冲标记184以及活跃内存组比特186。
现在参照图4a和4b,用于提供独立于存储器控制器的存储备用的方法400被示出,描述了本公开的存储备用***的一半实施方式包括图4a中示出的存储备用初始化方法和图4b中示出的激活存储备用区域方法。由本公开的独立于存储器控制器的存储备用***执行的特定操作的实施方式将参照图5、6和7在接下来被更详细地描述。
方法400起始于存储备用初始化开始的模块402。方法400接下来进行至决定模块404,该模块确定固件复制方法是否生效。如果固件复制方法不生效,方法400进行至决定模块406,在模块406中BIOS 156确定刷新复制方法是否生效。如果刷新复制方法生效,方法进行至模块408,在模块408中BIOS向存储器控制器150发送刷新政策和页政策并且计算复制周期。在实施方式中,在模块408,BIOS 156可以通过命令存储器控制150设置刷新政策以增加刷新周期的数量(例如,通过允许更高的热可靠模式)和/或缩短刷新周期之间的间隔。此外,BIOS 156可以通过命令存储器控制150来设置页政策以在关闭页政策下操作,或者否则操作使所有页在存储器缓冲器162后被关闭从而复制可以开始。此外,IBOS可以根据刷新周期或周期计算复制周期180并且将复制周期180发送至存储器缓冲器162。在实施方式中,BIOS通过确定在被指定(可替换)刷新周期过程中的可能复制数量来计算复制周期180。
如果刷新复制方法不生效,方法400进行至决定模块410,在模块410中BIOS 156确定校正复制方法是否生效。如果校正复制方法生效,方法400进行至模块412,在模块412中BIOS 156向存储器控制器150发送校正政策并计算复制周期。在实施方式中,BIOS 156可以通过命令存储器控制器150发送校正政策以执行用于被提供的时间和/或频率的校正。此外,BIOS 156可以根据校正周期或周期计算复制周期180并且将复制周期180发送至存储器缓冲器162。在实施方式中,BIOS通过确定在被指定(可替换)校正周期中的可能复制的数量计算复制周期180。
如果BIOS 156在决定模块404确定固件复制方法生效,或者如果BIOS156在决定模块410决定校正复制方法不生效,或者接着模块408或412,方法400进行至模块414,在模块414中BIOS 156初始化缓冲备用状态和缓冲备用参数并且向操作***通信地址空间孔。
例如,在方法400的模块414,BIOS 156可以建立在存储器缓冲器162中的备用关联和备用状态表164。在实施方式中,类似于上文中参照表1示出并描述的备用状态表164被建立。备用状态表164的本地复制也可以被存储在BIOS 156中。缓冲备用状态表根据所需的备用级别通过带外方法(例如通过***管理总线(SMBus)或带内方法(例如如果控制字操作被支持)被初始化。此外,BIOS 156也可以通信串联存在检测信息,例如潜在因素,从而基本DRAM循环可以伴随着兼容被选择的复制操作模式(例如,进一步在下文中详细描述的固件复制操作模式、校正复制操作模式或刷新复制操作模式)的复制计数被执行。诸如ACPI E820存储器报告接口的高级配置和功率接口(ACPI)方法可以被用于向操作***通信存储器孔的位置。在实施方式中,BIOS在模块414设置适合的复制模式比特(校正复制模式比特174、刷新复制模式比特176或固件复制模式比特178,根据方法400的模块404、406和410中确定的哪种模式生效)。
参照图4b,接着模块414,方法400接下来进行至激活存储器备用区域,伴随着存储器控制器150在IHS操作过程中访问活跃内存排开始于模块416。如本领域中已知的,存储器控制器150可以访问在***存储器114中的活跃内存排并且对这些活跃内存排执行读和写。方法400接下来进行至模块418,在模块418中BIOS 156接收活跃内存排故障的指示。在实施方式中,BIOS156可以确定于活跃内存排相关联的错误数量已经超高预定的阈值,并且作为响应确定该活跃内存排正在故障。然而,各种其他存储器故障检测技术将在本公开的范围内。响应于确定活跃内存排正在故障,方法400根据***中生效的复制操作模式继续,其中每个模式在下文中被详细描述。
在实施方式中,当在方法400的模块418确定活跃内存排正在故障时,方法400进行至模块420,在模块420中BIOS 156确定刷新复制方法是否生效。在实施方式中,如果在存储器缓冲器162中的刷新复制模式比特176已经被设置,BIOS 156确定刷新复制模式操作已经生效。如果刷新复制方法已经生效,方法400进行至模块422,在模块422中BIOS更新备用数据和备用参数并且开始复制操作,下文中将进一步详细描述。方法400接下来进行至决定模块424,在模块424中BIOS 156确定复制操作是否完成。如果复制操作没有完成,方法400继续监控复制操作是否完成。当复制操作完成时,方法400进行至模块426,在模块426中存储器缓冲器162更新备用状态表并且清除复制模式比特174、176或178。方法400接下来进行至模块427,在模块427中存储器控制器150在IHS操作过程中访问备用内存排。
如果在决定模块420确定刷新复制操作不生效,方法400进行至决定模块428,在模块428,BIOS 156确定校正复制方法是否已经生效。在实施方式中,如果存储器缓冲器162中的校正复制模式比特174已经被设置,BIOS156确定校正复制模式操作已经生效。如果校正复制方法已经生效,方法400进行至模块430,在模块430中BIOS更新备用状态和备用参数并且开始复制操作,将在下文中更详细地被描述。方法400接下来进行至决定模块424,在模块424中BIOS 156确定复制操作是否完成。如果复制操作没有完成,方法400继续监控复制操作是否完成。当复制操作完成时,方法400进行至模块426,在模块426中存储器缓冲器162更新备用状态表并且清除复制模式比特174、176或178。方法400接下来进行至模块427,在模块427中存储器控制器150在IHS操作过程中访问备用内存排。
如果在决定模块428确定校正复制操作方法不生效,方法400进行至模块431,在模块431中BIOS更新备用状态和备用参数并且根据下下文中进一步详细描述的固件复制操作方法开始复制操作。总而言之,方法400进行至模块432,在模块432当前复制地址(n)被设置为起始地址,在模块434中当前复制地址的数据从故障存储器区域中被读取,并且在模块436中在模块434中从当前复制地址被读取的数据被写入备用存储器区域。注意到的是,在固件复制操作过程中,从固件接收到的数据不被使用-存储器缓冲器执行物理复制操作。方法400接下来进行至决定模块438,在模块438BIOS确定在故障存储器中的所有地址是否已经被复制。如果不是所有地址已经被复制,方法400进行至模块440,在模块440当前复制地址增值并且方法400返回至模块434和436以继续从故障存储器区域读取并向备用存储器区域写入。如果在决定模块438确定所有地址已经被复制,方法400进行至模块426,在模块426存储器缓冲器162更新备用状态表并清除复制模式比特174、176或178。方法400接下来进行至模块427,在模块427中存储器控制器150在IHS操作过程中访问备用内存排。
因此,本公开的***和方法总体提供了操作以独立于存储器控制器150实施从存储器的故障内存排向存储器的备用内存排复制数据的存储器备用***的存储器缓冲器162和BIOS 156,该实施的操作根据刷新复制方法,其中复制在由存储器控制器150提供的额外刷新周期过程中通过来自BIOS156的指令被执行,根据校正复制方法,其中复制在由存储器控制器150提供的额外校正周期过程中通过来自BIOS 156的指令被执行,或者根据固件复制方法。在刷新、校正和固件复制方法过程中的缓冲器的操作细节将在下文讨论的实施方式中被详细描述。
现在参照图5,用于提供独立于存储器控制器的存储备用方法500被示出并且提供了示意活跃存储器内存排或区域是如何被复制至备用存储器内存排或区域的实施方式。方法500起始于存储器缓冲器162从存储器控制器150接收命令的模块502。
方法500接下来进行至模块504、506、508和510,在模块504、506、508和510中存储器缓冲器162根据从存储器控制器150接收到的命令创建表从而防止复制操作受到来自控制器初始化操作的干扰。在实施方式中,DRAM读和写操作需要多个适合的有序命令,并且为了防止在控制器初始化的操作和复制操作之间的潜在干扰,存储器缓冲162将保证没有会发生干扰命令的风险。在DRAM中,会有多重干扰操作(例如一个干扰操作会针对每个内存组)。数据传输(例如读或写)命令可以跟在对内存组的活跃命令之后。对内存组的预负载命令将使得内存组返回至干扰控制器发起的命令不被执行的状态。因此,存储器缓冲器162可以跟踪针对每个内存组的活跃/预负载命令并且保证不会出现来自存储器控制器150的干扰命令。该概念的其他实施被认为是在本公开的范围内,包括在指定的(替换的)刷新周期(如果周期足够长)中预负载并重新激活控制器活跃的内存组。注意到的是这种机制可以不针对校正方法被执行,由于存储器控制器150在校正操作之前预负载所有的内存组。对于固件方法,固件通过存储器控制器150发出命令从而干扰不发生。
在决定模块504,存储器缓冲器162确定来自存储器控制器150的命令是否包括激活命令。响应于确定来自存储器控制器150的命令包括激活命令,方法500进行至模块506,在模块506存储器控制器162设置在表中的激活内存组比特。如果在决定模块504确定来自存储器控制器150的命令不包括激活命令,方法500进行至决定模块508,在模块508存储器缓冲器162确定来自存储器控制器150的命令是否包括预负载命令。响应于确定来自存储器控制器150的命令包括预负载命令,方法500进行至模块510,在模块510存储器缓冲器162清除在表中的激活内存组比特。因此,模块504、506、508和510提供指示了活跃内存组存在的表并且因此存在在刷新模式复制操作和存储器控制器150命令之间的潜在干扰。
紧接着在模块506中激活在表中的内存组比特的设置,在模块510清除在表中的激活内存组比特,或者在模块504或模块508存储器缓冲器162确定来自存储器控制器150的命令不包括激活命令或预负载命令的情况中,方法500进行至决定模块512、514和516,在模块512、514和516存储器缓冲器162确定根据由校正复制比特174、刷新复制比特176或附件复制比特178的指示***使用什么复制操作模式,如图3所示。在决定模块512,存储器缓冲器162确定***是否处于校正复制操作模式。如果存储器缓冲器162确定***不处于校正复制操作模式,方法500进行至决定模块514,在模块514存储器缓冲器162确定***是否处于刷新复制操作模式。如果存储器缓冲器162确定***不处于刷新复制操作模式,方法500进行至决定模块516,在模块516存储器缓冲器162确定***是否处于固件复制操作模式。
如果在决定模块512存储器缓冲器162确定***处于校正复制操作模式,方法500接着进行至决定模块514,在决定模块514存储器缓冲器162确定来自存储器控制器150的命令是否包括指定的(例如替换)校正命令。如上所述,存储器控制器150可以被指示以执行额外或非必须校正操作,该操作可以在接下来被存储器缓冲器162用于执行存储备份的复制操作。如果存储器缓冲器162在决定模块514确定来自存储器控制器150的命令包括制定校正命令,方法500进行至模块516,在模块516中参照图6的方法600详细描述的硬件复制开始。如果存储器缓冲器162在决定模块514确定来自存储器控制器150的命令不包括制定的校正命令,方法500进行至决定模块518,下文中将进一步详细描述。
如果在决定模块514存储器缓冲器162确定***处于刷新复制操作模式,方法500接着进行至决定模块520,在决定模块514存储器缓冲器162确定来自存储器控制器150的命令是否包括指定的(例如替换)刷新命令。如上所述,存储器控制器150可以被指示以执行额外或非必须刷新操作,该操作可以在接下来被存储器缓冲器162用于执行存储备份的复制操作。如果存储器缓冲器162在决定模块520确定来自存储器控制器150的命令包括制定的刷新命令,方法500进行至模块522,在模块522中存储器缓冲器162确定表中是否有任何的激活比特以检查潜在的于存储器控制器150的命令干扰。如果存储器缓冲器162在决定模块522确定表中没有激活比特,方法500进行至模块516,在模块516,在参考图6的方法600中详细描述的硬件复制开始。如果存储器缓冲器162在决定模块520确定来自存储器控制器150的命令不包括指定的刷新命令,或者在决定模块522确定表中有激活比特,方法500进行至决定模块518,在下文中进一步详细描述。
如果在决定模块516存储器缓冲器162确定***处于固件复制操作模式,方法500接着进行至决定模块524,在模块524,参照图7的方法700详细描述的固件复制开始。如果在决定模块516存储器缓冲器162确定***处于固件复制操作模式,方法500接着进行至决定模块518。
在决定模块518,存储器缓冲器162确定来自存储器控制器150的命令是否试图访问受损内存排。如果存储器控制器162在决定模块518确定来自存储器控制器150的命令不试图访问受损内存排,方法500进行至模块524,在模块524存储器缓冲器162执行来自存储器控制器150的命令。如果存储器控制器162在决定模块518确定来自存储器控制器150的命令试图访问受损内存排,方法500进行至模块526,在模块526存储器缓冲器162确定对受损内存排的访问是否在当前复制地址182之后。在实施方式中,备用操作开始执行在区域中的第一地址的复制操作并且增加该地址(即当前复制地址)直到数据传送至备用区域完成。因此,从控制器向小于当前地址或在当前地址之后的访问必须被指向新的(备用)区域。如果访问大于当前复制地址(或者在当前地址之前),数据尚未被移动至备用(新)区域并且访问被指向“故障”区域。如果受损内存排的访问不在当前复制地址182之后,方法500进行至模块524,在模块524存储器缓冲器162执行来自存储器控制器150的命令。如果受损内存排的访问在当前复制地址182之后,方法500进行至模块526,在模块526存储器缓冲器162使用备用内存排的地址执行命令。在存储器缓冲器162在模块524执行来自存储器控制器150的命令或者存储器缓冲器162在模块526使用备用内存排的地址执行命令之后,方法500返回至模块502,在模块502存储器缓冲器162接收来自存储器控制器150的新命令。
现在参照图6,用于执行硬件复制的方法600被示出。在实施方式中,方法600在上述的参照图5描述的方法500的模块516被执行,该方法500结合处于校正复制操作模式或刷新复制操作模式的***。方法600开始于模块602,在模块602存储器缓冲器162开始硬件复制并且进行至复制周期被设置的模块604。在实施方式中,存储器缓冲器162根据与被指定的校正或刷新命令相关联的复制周期180中的值设置复制计数N。方法600接下来进行至模块606,在模块606位于当前复制地址的受损内存排中的数据被复制至复制缓冲器。在实施方式中,存储器缓冲器162从受损内存排复制数据至复制缓冲器166,该受损内存排位于存储在当前复制地址182中的复制地址。方法600接下来进行至模块608,在模块608在复制缓冲器166中的数据被复制至备用内存排中的当前复制地址。在实施方式中,存储器缓冲器162从复制缓冲器166向位于复制地址的备用内存排复制数据,该复制地址被存储在当前复制地址182中。方法600接下来进行至模块610,在模块610中存储器缓冲器162增加复制地址并且减少复制计数N。方法600接下来进行至决定模块612,在模块612中存储器缓冲器162确定存储器缓冲器162是否已经完成从受损内存排向备用内存排的复制。如果存储器缓冲器162在决定模块612已经完成受损内存排的复制,方法600进行至模块614,在模块614存储器缓冲器162清除复制比特并且更新备用状态表。如果在决定模块612确定存储器缓冲器162没有完成从受损内存排向备用内存排的复制,方法600进行至决定模块616,在模块616存储器缓冲器162确定复制周期是否结束(即,N=0)。如果复制周期没有结束,方法600返回至模块606并且存储器缓冲器162继续从受损内存排向备用内存排的复制。如果复制周期已经结束,或者在方法600的模块614之后,方法600进行至模块618,在模块618存储器缓冲器162等待来自存储器控制器150的下一个命令。
现在参照图7,用于执行固件复制的方法700被示出。在该实施方式中,固件方法使用常规访问方法来为缓冲器执行复制创造机会,而不是为缓冲器保留间隔以执行复制。由于常规***访问不会被指向备用区域,缓冲器可以将对备用区域的访问解译为复制访问。对于读取,数据可以从故障区域被复制至缓冲器,而对于写入,数据可以从缓冲器被写入备用区域。由于固件通过控制器使用常规访问方法,因此不存在干扰。在实施方式中,方法700在方法500的模块524被执行,该模块524结合了处于固件复制操作模式的***。方法700从固件复制开始的模块702开始。方法700接下来进行至决定模块704,在模块704存储器缓冲器162确定从存储器控制器150接收到的命令是否是对备用内存排的读取命令。如果存储器缓冲器162在决定模块704确定来自存储器控制器150的命令时对备用内存排的读取命令,方法700进行至模块706,在模块706位于作为当前复制地址182的受损内存排中的复制地址处的数据被复制至复制缓冲器166,并且复制缓冲器标识184被设置。方法700接下来进行至模块708,在模块708存储器缓冲器162进行至来自存储器控制器150的下一个命令。
如果存储器缓冲器162在决定模块704确定来自存储器控制器150的命令不是对备用内存排的读取命令,方法700进行至决定模块710,在模块710存储器缓冲器162确定复制缓冲器标识184是否被设置。如果复制缓冲器标识184被设置,方法700进行至决定模块712,在模块712存储器缓冲器162确定来自存储器控制器150的命令是否是对位于复制地址的备用内存排的写入命令。如果来自存储器控制器150的命令是对位于复制地址的备用内存排的写入命令,方法700进行至模块714,在模块714存储器缓冲器162将复制缓冲器166中的数据复制至对应于当前复制地址182的备用内存排中的地址。方法700进行至模块716,在模块716存储器缓冲器162清除缓冲器标识184并且增加当前复制地址182。方法700进行至决定模块718,在模块718存储器缓冲器162确定存储器缓冲器162是否完成了从受损内存排向备用内存排的数据复制。如果存储器缓冲器162没有完成从受损内存排向备用内存排的数据复制,方法700进行至模块708,在模块708存储器缓冲器162处理来自存储器控制器150的下一个命令。如果存储器缓冲器162完成了从受损内存排向备用内存排的数据复制,方法700进行至模块720,在模块720中BIOS 156清除复制比特并且更新状态表。方法700进行至模块708,在模块708存储器缓冲器162处理来自存储器控制器150的下一个命令。
如果存储器缓冲器162在决定模块712确定来自存储器控制器150的命令不是对位于复制地址的备用内存排的写入命令,方法700进行至决定模块722,在模块722存储器缓冲器162确定来自存储器控制器150的命令是否是对位于地址的受损内存排的写入命令。在实施方式中,存储器缓冲器162在模块722确定来自存储器控制器150的命令是否是对位于地址182的受损内存排的写入命令。如果来自存储器控制器150的命令是对位于地址的受损内存排的写入命令,方法700进行至模块724,在模块724存储器缓冲器162将写入命令中的数据复制至对应于当前复制地址182的备用内存排中的地址,并且复制缓冲器166被清除。方法700接下来进行至模块716,在模块716存储器缓冲器清空复制缓冲器标识184并且增加当前复制地址182。方法700接下来进行至决定模块718,在模块718存储器缓冲器162确定存储器缓冲器162是否完成从受损内存排向备用内存排的数据复制。如果存储器缓冲器162没有完成从受损内存排向备用内存排的数据复制,方法700进行至模块708,在模块708存储器缓冲器162处理来自存储器控制器150的下一个命令。如果存储器缓冲器162完成了从受损内存排向备用内存排的数据复制,方法700进行至模块720,在模块720中BIOS 156清除复制比特并且更新状态表。方法700进行至模块708,在模块708存储器缓冲器162处理来自存储器控制器150的下一个命令。
如果存储器缓冲器162在决定模块710确定复制缓冲器标识184没有被设置,或者储器缓冲器162在决定模块722确定来自存储器控制器150的命令不是对位于复制地址的受损内存排的写入命令,方法700进行至决定模块726,在决定模块726,存储器缓冲器162确定来自存储器控制器150的命令是否试图访问受损内存排。如果存储器控制器162在决定模块726确定来自存储器控制器150的命令不试图访问受损内存排,方法700进行至模块728,在模块728存储器缓冲器执行命令。方法700接下来进行至模块708,在模块708存储器缓冲器162处理来自存储器控制器150的下一个命令。如果存储器控制器162在决定模块726确定来自存储器控制器150的命令试图访问受损内存排,方法700进行至决定模块730,在模块730存储器缓冲器162确定对受损内存排的访问是否在当前复制地址182之后。如果试图的访问不在当前复制地址182之后,方法700进行至模块728并接下来至708,在模块728和708中存储器缓冲器执行命令并接下来处理来自存储器控制器150的下一个命令。如果试图的访问在当前复制地址182之后,方法700进行至模块732,在模块732存储器缓冲器使用备用内存排中的地址执行命令,并且接下来至模块708,在模块708中存储器缓冲器处理来自存储器控制器150的下一个命令。
因此,用于提供独立于存储器控制器的存储备份的***和方法被描述,该***和方法使用BIOS和存储器缓冲器以在BIOS发起的额外校正或刷新周期中或响应于来自BIOS的命令执行复制操作。这种***和方法提供了相对于传统存储器控制器***和方法的多个优势。例如,这种***和方法可以被提供在所有处理器类型上(例如,没有本地备用能力的低端/低成本处理器,不需要在IHS上的DIMM的平均分布,可以利用对存储器控制器不可见的区域,可以被诸如监控或锁步的(RAS)特征支持(例如,本公开教导了存储器备用***,当与RAS特征结合时该***提供值-在镜像故障之后,本公开的存储备用***中的备用内存排可以被切换进),并且不需要***的操作的中断以执行复制操作。
虽然示例性实施方式被示出和描述,广泛范围的调整、改变和替换被认为是在上文的公开之内,并且在一些情况中,实施方式的一些特征可以被采用而不使用其他特征的对应使用。因此,以广泛的并且符合在此公开的实施方式的精神的方式解读附加的权利要求是合理的。
Claims (20)
1.一种存储器设备,包括:
连接,该连接可操作以向存储器控制器和固件传送信号和从所属存储器控制器和所属固件传送信号;
第一存储器区域和第二存储器区域;以及
存储器缓冲器,该存储器缓冲器将所述第一存储器区域和所述第二存储器区域耦合至所述连接,其中所述存储器缓冲器响应于由所述固件执行的操作,可操作以执行复制操作而不使用来自所述存储器控制器的指令从而从所述第一存储器区域向所述第二存储器区域复制数据,并且其中所述存储器缓冲器还可操作以将来自所述存储器控制器的请求路由至所述第一存储器区域和所述第二存储器区域中的一个。
2.根据权利要求1所述的存储器设备,其中所述第一存储器区域是故障存储器区域并且所述第二存储器区域是备用存储器区域。
3.根据权利要求1所述的存储器设备,其中由所述固件执行的操作包括由所述固件提供的对所述存储器控制器的指令以由所述固件向所述存储器缓冲器产生至少一个额外的刷新操作时间周期和所述至少一个额外的刷新操作时间周期的规定,并且其中所述存储器缓冲器在所述至少一个额外刷新操作时间周期中执行所述复制操作而不使用来自所述存储器控制器的指令。
4.根据权利要求3所述的IHS,其中所述存储器缓冲器还可操作以:
使用来自所述存储器控制器的命令创建表,并且使用所述表来防止在所述至少一个额外的刷新操作时间周期的过程中的所述复制操作受到由所述存储器控制器发起的控制器操作的干扰。
5.根据权利要求1所述的IHS,其中由所述固件执行的操作包括由所述固件提供的对所述存储器控制器的指令以由所述固件向所述存储器缓冲器产生至少一个额外的校正操作时间周期和所述至少一个额外的校正操作时间周期的规定,并且其中所述存储器缓冲器在所述至少一个额外校正操作时间周期中执行所述复制操作而不使用来自所述存储器控制器的指令。
6.根据权利要求1所述的IHS,其中由所述固件执行的操作包括由所述固件提供的指令以执行向所述第二存储器区域的数据传送操作,其中所述存储器缓冲器响应于检测到执行向所述第二存储器区域数据传送操作的指令,执行所述复制操作而不使用来自所述存储器控制器的指令。
7.根据权利要求6所述的IHS,其中所述存储器缓冲器还可操作以:
确定由所述存储器控制器发起的控制器操作正试图访问所述第一存储器区域;
确定在所述第一存储器区域中的试图的访问地址以及与所述复制操作相关联的当前复制地址;以及
响应于试图的访问地址在当前复制地址之前,使用所述第一存储器区域执行所述控制器操作;
响应于试图的访问地址在当前复制地址之后,使用所述第二存储器区域执行所述控制器操作。
8.一种信息处理***(IHS),包括:
存储器控制器;
存储器设备,该存储器设备被耦合至所述存储器控制器并且包括:
第一存储器区域和第二存储器区域;以及存储器缓冲器,该存储器缓冲器被耦合至所述第一存储器区域和所述第二存储器区域,其中所述存储器缓冲器可操作以执行复制操作而不使用来自所述存储器控制器的指令从而从所述第一存储器区域向所述第二存储器区域复制数据,并且其中所述存储器缓冲器可操作以在所述复制操作的过程中将来自所述存储器控制器的请求路由至所述第一存储器区域和所述第二存储器区域中的一个;以及
固件,该固件被耦合至所述存储器设备,其中所述固件可操作以执行固件操作以引起所述存储器缓冲器执行所述复制操作而不使用来自所述存储器控制器的指令。
9.根据权利要求8所述的IHS,其中所述第一存储器区域是故障存储器区域并且所述第二存储器区域是备用存储器区域。
10.根据权利要求8所述的IHS,其中所述固件操作包括向所述存储器控制器提供指令以提供至少一个额外的刷新操作时间周期和向所述存储器缓冲器提供所述至少一个额外的刷新操作时间周期,并且其中所述存储器缓冲器在所述至少一个额外刷新操作时间周期中执行所述复制操作而不使用来自所述存储器控制器的指令。
11.根据权利要求10所述的IHS,其中所述存储器缓冲器还可操作以:
使用来自所述存储器控制器的命令创建表,并且使用所述表来防止在所述至少一个额外的刷新操作时间周期的过程中的所述复制操作受到由所述存储器控制器发起的控制器操作的干扰。
12.根据权利要求8所述的IHS,其中所述固件操作包括向所述存储器控制器提供指令以提供至少一个额外的校正操作时间周期和向所述存储器缓冲器提供所述至少一个额外的校正操作时间周期,并且其中所述存储器缓冲器在所述至少一个额外校正操作时间周期中执行所述复制操作而不使用来自所述存储器控制器的指令。
13.根据权利要求8所述的IHS,其中由所述固件执行的操作包括提供指令以执行向所述第二存储器区域的数据传送操作,其中所述存储器缓冲器响应于检测到执行向所述第二存储器区域数据传送操作的指令,执行所述复制操作而不使用来自所述存储器控制器的指令。
14.根据权利要求13所述的IHS,其中所述存储器缓冲器还可操作以:
确定由所述存储器控制器发起的控制器操作正试图访问所述第一存储器区域;
确定在所述第一存储器区域中的试图的访问地址以及与所述复制操作相关联的当前复制地址;以及
响应于试图的访问地址在当前复制地址之前,使用所述第一存储器区域执行所述控制器操作;
响应于试图的访问地址在当前复制地址之后,使用所述第二存储器区域执行所述控制器操作。
15.一种用于备用存储器的方法,包括:
提供耦合至固件和存储器控制器的存储器设备;
检测耦合至所述存储器设备的故障存储器区域;
执行复制操作而不使用来自所述存储器控制器的指令从而从耦合至所述存储器设备的所述故障存储器区域向所述备用存储器区域复制数据,其中所述复制操作响应于由所述固件执行的固件操作被执行;以及
在所述复制操作的过程中将来自所述存储器控制器的请求路由至所述故障存储器区域和所述备用存储器区域中的一个。
16.根据权利要求15所述的方法,其中所述固件操作包括:
向所述存储器控制器提供指令以提供至少一个额外的刷新操作时间周期,其中所述存储器缓冲器在所述至少一个额外刷新操作时间周期中执行所述复制操作而不使用来自所述存储器控制器的指令。
17.根据权利要求16所述的方法,还包括:
使用从所述存储器控制器接收到的命令创建表,并且使用所述表来防止在所述至少一个额外的刷新操作时间周期的过程中的所述复制操作受到由所述存储器控制器发起的控制器操作的干扰。
18.根据权利要求15所述的方法,其中所述固件操作包括:
向所述存储器控制器提供指令以执行至少一个额外的校正操作时间周期,其中在所述至少一个额外校正操作时间周期中执行所述复制操作而不使用来自所述存储器控制器的指令。
19.根据权利要求15所述的方法,其中所述固件操作包括:
提供指令以执行向所述备用存储器区域的数据传送操作,其中所述存储器缓冲器响应于检测到执行向所述备用存储器区域数据传送操作的指令,执行所述复制操作而不使用来自所述存储器控制器的指令。
20.根据权利要求19所述的方法,还包括:
确定由所述存储器控制器发起的控制器操作正试图访问所述故障存储器区域;
确定在所述故障存储器区域中的试图的访问地址以及与所述复制操作相关联的当前复制地址;以及
响应于试图的访问地址在当前复制地址之前,使用所述故障存储器区域执行所述控制器操作;
响应于试图的访问地址在当前复制地址之后,使用所述备用存储器区域执行所述控制器操作。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/426,296 | 2012-03-21 | ||
US13/426,296 US8719493B2 (en) | 2012-03-21 | 2012-03-21 | Memory controller-independent memory sparing |
PCT/US2013/032999 WO2013142512A1 (en) | 2012-03-21 | 2013-03-19 | Memory controller-independent memory sparing |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104335187A true CN104335187A (zh) | 2015-02-04 |
CN104335187B CN104335187B (zh) | 2017-10-03 |
Family
ID=49213450
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380026467.7A Active CN104335187B (zh) | 2012-03-21 | 2013-03-19 | 独立于存储器控制器的存储备份 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8719493B2 (zh) |
EP (1) | EP2828756B1 (zh) |
CN (1) | CN104335187B (zh) |
IN (1) | IN2014DN08056A (zh) |
WO (1) | WO2013142512A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106816180A (zh) * | 2015-11-27 | 2017-06-09 | 爱思开海力士有限公司 | 存储器件及其操作方法 |
CN106941011A (zh) * | 2016-01-05 | 2017-07-11 | 爱思开海力士有限公司 | 半导体*** |
CN107483890A (zh) * | 2017-08-31 | 2017-12-15 | 中国地质大学(武汉) | 一种智慧城市视频数据的数据更新存储方法及*** |
CN111290878A (zh) * | 2018-12-10 | 2020-06-16 | 美光科技公司 | 对固件的基于年龄的刷新 |
CN116580748A (zh) * | 2023-04-21 | 2023-08-11 | 深圳市晶存科技有限公司 | 内存芯片测试治具的配置方法、装置、设备及存储介质 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9712373B1 (en) * | 2012-07-30 | 2017-07-18 | Rambus Inc. | System and method for memory access in server communications |
US9280497B2 (en) * | 2012-12-21 | 2016-03-08 | Dell Products Lp | Systems and methods for support of non-volatile memory on a DDR memory channel |
JP6090057B2 (ja) * | 2013-08-15 | 2017-03-08 | 富士ゼロックス株式会社 | 状態情報記録装置及びプログラム |
CN104423890A (zh) * | 2013-08-27 | 2015-03-18 | 鸿富锦精密电子(天津)有限公司 | 固态硬盘 |
GB201315397D0 (en) * | 2013-08-29 | 2013-10-16 | Quixant Plc | Memory controller and memory access method |
US10468118B2 (en) | 2014-03-03 | 2019-11-05 | Hewlett Packard Enterprise Development Lp | DRAM row sparing |
US9804920B2 (en) * | 2014-11-20 | 2017-10-31 | Samsung Electronics Co., Ltd. | Rank and page remapping logic in a volatile memory |
US9984741B2 (en) | 2015-11-05 | 2018-05-29 | Dell Products, Lp | System and method of transferring data over available pins |
US9910728B2 (en) | 2015-12-23 | 2018-03-06 | Intel Corporation | Method and apparatus for partial cache line sparing |
US10346321B2 (en) * | 2017-05-04 | 2019-07-09 | Dell Products L.P. | Method to trigger NVDIMM save from remote management interface |
US20190066760A1 (en) * | 2017-08-23 | 2019-02-28 | Nanya Technology Corporation | Dram and method for operating the same |
US10546628B2 (en) | 2018-01-03 | 2020-01-28 | International Business Machines Corporation | Using dual channel memory as single channel memory with spares |
US10606713B2 (en) | 2018-01-03 | 2020-03-31 | International Business Machines Corporation | Using dual channel memory as single channel memory with command address recovery |
US11537468B1 (en) | 2021-12-06 | 2022-12-27 | Hewlett Packard Enterprise Development Lp | Recording memory errors for use after restarts |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5805920A (en) | 1995-11-13 | 1998-09-08 | Tandem Computers Incorporated | Direct bulk data transfers |
US5832005A (en) | 1997-12-11 | 1998-11-03 | International Business Machines Corporation | Fault-tolerant method and means for managing access to an initial program load stored in read-only memory or the like |
JP2002259062A (ja) | 2001-02-28 | 2002-09-13 | Hitachi Ltd | 記憶装置システム及び記憶装置システムにおけるデータの複写方法 |
US7400670B2 (en) | 2004-01-28 | 2008-07-15 | Rambus, Inc. | Periodic calibration for communication channels by drift tracking |
US8060774B2 (en) | 2005-06-24 | 2011-11-15 | Google Inc. | Memory systems and memory modules |
US7379361B2 (en) | 2006-07-24 | 2008-05-27 | Kingston Technology Corp. | Fully-buffered memory-module with redundant memory buffer in serializing advanced-memory buffer (AMB) for repairing DRAM |
US7996710B2 (en) * | 2007-04-25 | 2011-08-09 | Hewlett-Packard Development Company, L.P. | Defect management for a semiconductor memory system |
US7694093B2 (en) | 2007-04-27 | 2010-04-06 | Hewlett-Packard Development Company, L.P. | Memory module and method for mirroring data by rank |
US20090132876A1 (en) * | 2007-11-19 | 2009-05-21 | Ronald Ernest Freking | Maintaining Error Statistics Concurrently Across Multiple Memory Ranks |
US7900084B2 (en) * | 2007-12-21 | 2011-03-01 | Intel Corporation | Reliable memory for memory controller with multiple channels |
US20100162037A1 (en) * | 2008-12-22 | 2010-06-24 | International Business Machines Corporation | Memory System having Spare Memory Devices Attached to a Local Interface Bus |
US8407516B2 (en) | 2009-12-23 | 2013-03-26 | Intel Corporation | Controlling memory redundancy in a system |
US8443263B2 (en) | 2009-12-30 | 2013-05-14 | Sandisk Technologies Inc. | Method and controller for performing a copy-back operation |
JP4877396B2 (ja) * | 2010-01-20 | 2012-02-15 | 日本電気株式会社 | メモリ障害処理システム、および、メモリ障害処理方法 |
US20120239887A1 (en) * | 2011-03-16 | 2012-09-20 | Advanced Micro Devices, Inc. | Method and apparatus for memory control |
-
2012
- 2012-03-21 US US13/426,296 patent/US8719493B2/en active Active
-
2013
- 2013-03-19 EP EP13763513.2A patent/EP2828756B1/en active Active
- 2013-03-19 WO PCT/US2013/032999 patent/WO2013142512A1/en active Application Filing
- 2013-03-19 IN IN8056DEN2014 patent/IN2014DN08056A/en unknown
- 2013-03-19 CN CN201380026467.7A patent/CN104335187B/zh active Active
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106816180A (zh) * | 2015-11-27 | 2017-06-09 | 爱思开海力士有限公司 | 存储器件及其操作方法 |
CN106816180B (zh) * | 2015-11-27 | 2020-11-10 | 爱思开海力士有限公司 | 存储器件及其操作方法 |
CN106941011A (zh) * | 2016-01-05 | 2017-07-11 | 爱思开海力士有限公司 | 半导体*** |
CN106941011B (zh) * | 2016-01-05 | 2020-10-16 | 爱思开海力士有限公司 | 半导体*** |
CN107483890A (zh) * | 2017-08-31 | 2017-12-15 | 中国地质大学(武汉) | 一种智慧城市视频数据的数据更新存储方法及*** |
CN107483890B (zh) * | 2017-08-31 | 2020-04-10 | 中国地质大学(武汉) | 一种智慧城市视频数据的数据更新存储方法及*** |
CN111290878A (zh) * | 2018-12-10 | 2020-06-16 | 美光科技公司 | 对固件的基于年龄的刷新 |
CN116580748A (zh) * | 2023-04-21 | 2023-08-11 | 深圳市晶存科技有限公司 | 内存芯片测试治具的配置方法、装置、设备及存储介质 |
CN116580748B (zh) * | 2023-04-21 | 2024-02-23 | 深圳市晶存科技有限公司 | 内存芯片测试治具的配置方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP2828756B1 (en) | 2017-01-18 |
EP2828756A1 (en) | 2015-01-28 |
IN2014DN08056A (zh) | 2015-05-01 |
US8719493B2 (en) | 2014-05-06 |
EP2828756A4 (en) | 2015-04-22 |
WO2013142512A1 (en) | 2013-09-26 |
CN104335187B (zh) | 2017-10-03 |
US20130254506A1 (en) | 2013-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104335187A (zh) | 独立于存储器控制器的存储备份 | |
US20230010660A1 (en) | Non-volatile memory storage for multi-channel memory system | |
US8892942B2 (en) | Rank sparing system and method | |
CN110162269B (zh) | 存储***和固态驱动器 | |
CN101369240B (zh) | 用于在信息处理***中管理存储错误的***和方法 | |
US8898408B2 (en) | Memory controller-independent memory mirroring | |
US10740010B2 (en) | Memory module and memory system including memory module | |
WO2016209458A1 (en) | Processor and platform assisted nvdimm solution using standard dram and consolidated storage | |
US10963351B2 (en) | Data storage backup system | |
US8516298B2 (en) | Data protection method for damaged memory cells | |
WO2013081616A1 (en) | Hardware based memory migration and resilvering | |
KR20160122483A (ko) | 메모리 시스템, 메모리 모듈 및 메모리 모듈의 동작 방법 | |
US10565108B2 (en) | Write-back cache for storage controller using persistent system memory | |
KR20190099796A (ko) | 메모리 장치 | |
CN112000276B (zh) | 一种内存条 | |
US10416895B2 (en) | Storage devices managing duplicated data based on the number of operations | |
US20240013851A1 (en) | Data line (dq) sparing with adaptive error correction coding (ecc) mode switching | |
US20150135008A1 (en) | Simulated Power Failure and Data Hardening | |
US7299331B2 (en) | Method and apparatus for adding main memory in computer systems operating with mirrored main memory | |
US20220350715A1 (en) | Runtime sparing for uncorrectable errors based on fault-aware analysis | |
CN110780729A (zh) | 数据处理方法及设备 | |
US11966339B1 (en) | Selecting between basic and global persistent flush modes | |
US20220011939A1 (en) | Technologies for memory mirroring across an interconnect | |
CN117581211A (zh) | 基于置信因子、基于故障感知分析的不可校正错误的***内减轻 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |