CN103959253B - 基于硬件的存储器迁移和重新同步方法及系统 - Google Patents

基于硬件的存储器迁移和重新同步方法及系统 Download PDF

Info

Publication number
CN103959253B
CN103959253B CN201180075280.7A CN201180075280A CN103959253B CN 103959253 B CN103959253 B CN 103959253B CN 201180075280 A CN201180075280 A CN 201180075280A CN 103959253 B CN103959253 B CN 103959253B
Authority
CN
China
Prior art keywords
memory
data
cache line
migration
memory controller
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.)
Expired - Fee Related
Application number
CN201180075280.7A
Other languages
English (en)
Other versions
CN103959253A (zh
Inventor
S.古普塔
S.穆蒂亚卢
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN103959253A publication Critical patent/CN103959253A/zh
Application granted granted Critical
Publication of CN103959253B publication Critical patent/CN103959253B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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
    • G06F11/2017Error 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 where memory access, memory control or I/O control functionality is redundant
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • G06F11/0724Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

用于执行基于硬件的存储器迁移和复制操作的方法、装置和系统。基于此方法,经由第一存储器控制器访问的计算机系统中的第一存储器部分被使用独立于在计算机系统上的软件并且对该软件透明地实现的基于硬件的方案而迁移或复制到经由第二存储器控制器访问的第二存储器部分。存储器迁移和/或复制操作可用来初始化存储器镜像配置,其中,镜像第一和第二存储器部分的数据,并执行存储器迁移操作,其中在硬件的控制下以存储器迁移可以在运行期间执行而没有显著减少性能的方式将第一存储器部分的数据迁移到第二存储器部分。此外,指示失效的高速缓存行的中毒数据可以迁移或复制,以便不使用对应于所迁移或复制的中毒高速缓存行的数据。

Description

基于硬件的存储器迁移和重新同步方法及系统
技术领域
发明的领域通常涉及计算机系统,以及更具体地但不排除地涉及在高可靠性计算机系统(例如,RAS服务器)中的存储器迁移和镜像。
背景技术
存储器的完整性和可靠性是计算机服务器可靠性的核心方面,特别是对于RAS(可靠性、可用性和可服务性)服务器而言。为了保证存储器完整性得以维持,计算机系统具有不同的机制来在硬件级进行错误检查相关和以其它方式监测存储器资源的健康,例如,使用ECC(纠错码)。其它措施典型地在固件级实现,以便操作系统只需要响应在硬件和/或固件级检测到的错误,而不必主动检测这样的错误。确保存储器可靠性和可用性的另一技术是提供存储器的镜像的级别,以便在正常操作期间每个存储器资源都有备份副本,以便在一个或一部分存储器资源失效时,可以通过访问还没有失效或变成损坏的存储器资源而在不中断的情况下继续执行。
在某个时间点上,必然造成失效。响应于此类失效的检测,实现失效转移(fail-over)过程以便存储器访问被重定向到保存数据的“好”的副本的存储器资源并且新的备份副本写入到当前不在使用的另一存储器资源。此过程在采用具有多个高速缓存级和多个存储器控制器的多核处理器的现代架构下(例如,发现于当今的高可靠性服务器架构)变得更加复杂得多。
目前服务器存储器控制器仅支持基于软件的镜像/存储器迁移。当镜像失效转移发生时,SMI(系统管理中断)产生。BIOS SMI处理程序使主节点进入存储器迁移模式,并产生目标是所有由失效主节点映射的地址的读取和写入。这种方法有许多实际问题。SMI处理程序中的时间花费必须受限制以保持操作系统响应性(例如,SMI处理程序必须在150微秒内执行完毕)。因此,只有一小块存储器副本可以在每个SMI周期内处理,并且整个存储器迁移过程必须分布在多个重复SMI周期上。当处理错误情况,例如“中毒”模式(即,具有尚未消耗的错误的高速缓存行)和其它错误情况时这是非常低效的并且有严重的缺点。在当前这一代服务器CPU,在“中毒”的数据到达消费者之前都没有“中毒”模式的指示。因此,采用基于软件的迁移,任何中毒数据可以由SMI处理程序在迁移过程期间潜在消耗掉,并且可最终导致整个系统的失效。当前这一代CPU通过使用非常低效的费解的和复杂的方法解决这一问题,并且保持在采用迁移模式的主/从节点比实际需要要长。
附图说明
本发明的前述方面和许多附带优点将变得更容易理解,因为当通过与附图结合参考下面的详细描述时,它们变得更好地被理解,除非另有规定,否则遍及各示图在附图中相似的参考标号指相似的部分:
图1a是图示在镜像存储器的状态的系统架构的示意图;
图1b示出根据一个实施例的在已执行存储器的失效转移后的状态中的图1a的系统架构;
图1c示出对应于从存储器重新同步产生的恢复的镜像配置的图1a的系统架构的配置;
图2a和2b是图示在包括一对系统芯片的系统架构中的示范性存储器迁移的示意图;
图2c描绘了使用图2a和2b的系统架构实现的镜像存储器初始化操作;
图3是图示图1a的系统架构的各方面的进一步细节的示意图;
图4是图示在存储器镜像初始化设置操作期间执行的操作的流程图;
图5是图示根据一个实施例的基于硬件的存储器迁移或存储器操作期间执行的操作的流程图;以及
图6是图示由主和从MBOX和BBOX在存储器迁移或存储器复制操作期间执行的操作的时间线流程图。
具体实施方式
在本文描述基于硬件的存储器迁移、存储器镜像和存储器失效转移的方法和装置的实施例。在下面的描述中,阐述了许多具体细节以提供本发明的实施例的透彻理解。然而,相关领域的技术人员将认识到本发明可以在没有一个或多个具体细节的情况下实践或用其它方法、组件、材料等实践。在其它实例中,没有详细示出或描述熟知结构、材料或操作以避免混淆本发明的各方面。
遍及本说明书提及的“一个实施例”或“实施例”意思是结合实施例描述的特定的特征、结构或特征包括在本发明的至少一个实施例中。因此,遍及此说明书的各地方的短语“在一个实施例中”或“在实施例中”的出现不一定都指的是相同的实施例。此外,特定的特征、结构或特性可以以任何合适的方式在一个或多个实施例中相结合。
典型的RAS服务器架构采用一个或多个处理器,每个处理器具有映射到物理存储器的相应部分的一个或多个存储器控制器。例如,给定存储器控制器可以映射到存储器的一个或多个可寻址单元,该一个或多个可寻址单元又在物理上存储在具有配置为支持RAS特性的存储器的存储器芯片上,这样的存储器例如可以是ECC存储器,其具有一个或多个额外信息和/或ECC位来用于每个高速缓存行或存储器段(与在传统个人计算机等中典型地采用的存储器相比较)。通常将存储器的最小可寻址部分称为高速缓存行或存储器行,并且这些术语在本文可互换使用。通常,对应于多个高速缓存行的地址范围在一个或多个组中映射到存储器的到一个或多个级别,其中每个级别与存储在对应存储器模块上的全部或部分存储器关联,其例如可以是双列直插存储器模块(DIMM)。每个DIMM包括可以取决于模块的特定的供应商实现和整体容量以各种方式来配置的多个存储器芯片。相同的DIMM“槽”(其包括通过适当的存储器接口(例如,总线、互连、DDR3接口等)在物理上连接到存储器控制器的存储器模块接口)可以用于各种大小的DIMM(例如1GB、2GB,4GB)。系统又可具有多个DIMM插槽用于安装相应的DIMM,以便用于给定系统的存储器的总容量是DIMM的数量和大小的函数。此外,此同样的存储器架构可以在给定服务器中对于多个存储器控制器中的每个控制器重复。
存储器控制器用于提供与存储器访问和存储相关的各种功能。这些通常包括诸如错误检查和存储器刷新等情况以及读取和写入高速缓存行以访问和存储数据。存储器控制器和/或相关联的代理和高速缓存相关组件还提供与存储器映射相关的附加功能,以便它们呈现存储器映射到操作系统的逻辑视图,其从数据实际被存储的实际物理映射抽象。此外,存储器控制器和在操作系统级别下的其它系统组件(例如,嵌入式逻辑和/或固件)的结合使数据能以对操作系统透明的方式在不同物理存储器地址之间移动。此外,采用各种组件和逻辑(例如,存储器一致性代理)来确保存储器的完整性得以维持,再次以对操作系统透明的方式。
RAS级服务器的另一方面是支持存储器镜像和失效转移的能力。在存储器镜像下,对存储器的所有或选定的部分进行镜像,以便存在被镜像存储器的每个部分的备份实例(副本)。在本申请的上下文中,数据的主要副本由“主”节点管理,以及数据的备份副本由“从”节点管理。一般而言,主节点和从节点将对应于相应的主存储器控制器和从存储器控制器,尽管有可能单个存储器控制器支持存储器镜像。
在主从存储器镜像架构下,来自存储器的所有读取通过主存储器控制器实现,而每个写入跨主存储器控制器和从存储器控制器来镜像,其中,主存储器控制器控制(即命令)由从存储器控制器执行的写入操作。以这种方式,保持所有数据(将要镜像的数据的选定部分)的镜像副本。
在前述的架构和技术下,只要没有失效,存储器完整性就很好。然而,由于失效一定会在某个时间点发生在大多数系统,所以必须采取措施来处理错误事件以便在数据完整性的结果中损失最小或(最好是)没有损失。最典型的失效是在存储器芯片本身中。存储器芯片有一些最高晶体管密度的任何固态电路;这通常会导致对应于存储器的相对小的部分的失效,例如,单个位、高速缓存行等。可以通过纠错码或其它手段来检测这些类型的错误,这经由存储器控制器和/或控制器或在DIMM上的其它电路典型地实现。由于存储器的最小可寻址部分是高速缓存行的地址,所以当在高速缓存行中发生位错误时,整个高速缓存行被“标记”为坏或“中毒”,并且实现对应的逻辑以不再使用那个高速缓存行。
典型地,将实现系统逻辑以监测系统中的存储器错误的等级。在一种方法中,将设置错误阈值以便一旦存储器错误的数量超过该阈值,将检测到存储器失效情况。响应于存储器失效,失效转移过程将在存储器访问控制将在主从节点之间传输以便数据的备份副本成为新的主要副本并且以前的从节点成为新的主节点的情况下发起。实际上,对应于失效的存储器中的存储器数据未传输,而是失效转移过程涉及存储器配置信息和地址解码信息的更新。
图1a示出在第一示范性镜像存储器状态中描绘的系统架构100。系统架构100包括系统芯片(SoC)101,其包括一对存储器控制器102和104(分别标记为MC0和MC1)。每个存储器控制器102和104包括相应的热备(sparing)引擎106和108和巡查擦除引擎107和109。
每个存储器控制器102和104可操作地通过各种组件和代理的使用耦合到SoC 100上的一个或多个处理器核110。为了说明的目的,8个处理器核在图1a中示出,但是,将理解的是,不同数量的处理器核可在SoC上实现,本文所公开的存储器迁移和复制技术的原则和教导可以部署在该SoC上。一般来说,具有一致性的多层高速缓存系统将在多核SoC中实现以促进高速存储器访问操作,同时保持跨多个高速缓存层的一致性。高速缓存层通常包括第一和第二层高速缓存(通常被称为L1/L2高速缓存),其对每个处理器核110是“私有”的。这被描述为L1/L2高速缓存112,并且,虽然只示出单个块,将理解的是,每个处理器核110包括类似的L1/L2高速缓存。其它高速缓存/一致性组件和代理包括末级高速缓存(LLC)114,其在本实例中是级别3或L3高速缓存,但一般对应于系统所采用的高速缓存的最后一级。虽然L1/L2高速缓存112对相应的处理器核110是私有的,但在一些实施例中,LLC高速缓存114包括对所有的处理器核都是可访问的共享的高速缓存。在一个实施例中,LLC高速缓存114用对应于名义上分配给对应的处理器核的每个片(slice)的存储器范围部分划分成多个LLC“片”。
高速缓存一致性是通过交互组件的结合来维持的,交互组件包括LLC一致性引擎116、高速缓存代理118和120(分别描绘为高速缓存代理0和1)以及一致性代理122和124(其也被称为本地代理)。LLC一致性引擎116包括源地址解码器(SAD)126和目录128。每个一致性代理122和124包括相应的目标地址解码器134和136。可选地,目录128可以通过高速缓存代理118和120来管理,如由目录128-0和128-1所描绘的那样。
每个存储器控制器102和104也可操作地耦合到一个或多个存储器级别138,分别描绘为存储器级别组140和142。实现各种接口和互连电路以有助于存储器控制器和它们相应的存储资源之间的通信,如下面所讨论的那样;然而,为了清楚和简单起见,这样的电路在本文选择的附图中没有示出。
通常,每个存储器级别138根据预定义的存储器划分方案将映射到物理地址范围。例如,在一个实施例中,每个存储器级别具有2GB的大小。因此,在架构100中,每个存储器级别组140和142采用8GB的存储器。然而,这仅仅是一个示例性配置,因为存储器级别的大小可以不同于2GB(例如,1GB、4GB等),并且每个组中的存储器级别的数量可以从1变化到多个(例如,8个、12个、16个等)。
由给定存储器控制器管理的存储器资源可以为主要/备份存储主动地分配,用作备用,或是非活动的(或以其它方式分配,但当前不用于存储系统数据,但如果需要额外的存储器存储则可用)。在图1a所示的配置中,存储器级别0-0和0-1分配到主要存储,而存储器级别0-2和0-3未分配。同时,存储器级别1-0和1-1用于活动存储(初始化为备份存储),以及存储器级别1-2和1-3是非活动的。如在图1a中进一步示出的,存储器级别0-0和0-1分别镜像到存储器级别1-0和1-1。
巡查擦除引擎107和109进行存储器擦除操作,其包括检测不可纠正的存储器错误。当巡查擦除操作为给定存储器位置检测到不可纠正的错误时,对应的高速缓存行通过高速缓存行中毒状态位的使用而标记为中毒。在一个实施例中,为每64个字节的高速缓存行保留64个信息位,包括47位的CRC数据、一致性位以及包括高速缓存行中毒状态位的其它各种数据。在一个实施例中,存储器信息位存储于与对应高速缓存行数据一致的系统存储器中,以便每组高速缓存行数据和对应的高速缓存行信息位包括72个字节。
中毒数据位图130和132的组朝着图1a顶部描绘。每个中毒数据位图对应于一组与相应存储器级别对应的存储器高速缓存行中毒位,其中给定高速缓存行的错误状态简单起见由1(错误)或0(正确)来描绘;在实际实现中,对于每个高速缓存行的错误状态将与存储在存储器本身而不是在独立的数据结构中的其它位(例如ECC位、一致性位等(未示出))结合,如上面所讨论的。为简单起见,中毒数据位图130和132是用于本文图示目的的仅仅高速缓存行的错误状态信息的逻辑描述,并且并不包括在实际实现中的数据的单独组。除了标识每一行的错误状态以外,还提供逻辑用于确定错误阈值,其可以是给定的级别的错误数量(例如,n个错误,其中n是从1到m的整数)、错误密度阈值(例如,对应于紧密靠近的地址的错误的数量)或者基于其它测量。
当检测到高速缓存行错误时,高速缓存行被标记为“中毒”,并且实现对应操作以便高速缓存行没有继续使用。例如,高速缓存行的最近的数据更新实际上可能是在高速缓存级别中的一个,而不是系统存储器。在这种情况下,错误的高速缓存行可以在内部重新映射到对应于没有已经包含数据的另一高速缓存行的地址,并当更新的高速缓存行的数据写回至系统存储器时,使用重新映射的存储器地址。此外或可选地,对应于从节点中的失效的高速缓存行的镜像数据可用作数据的“良好”的副本。
如所描绘的,每个中毒的数据位图130和132示出指示这些行中毒的具有值“1”的几位。此外,中毒的数据的位图数据对每个相应的存储器部分将是唯一的(对于所示的存储器级别由位图图案示例)。进一步指出的是,标记为中毒的任何高速缓存行的描绘在一般情况下是为了图示的目的,如一些实施例中的单个错误将对应于存储器失效情况,并因此在此情况之前没有一个高速缓存行会被标记为中毒。
响应于错误阈值事件(或以其它方式的存储器失效的标识),发起失效转移过程。正如上面所讨论的,在与镜像存储器配置结合的失效转移期间,用于控制存储器访问的节点从(失效的)主节点切换到从节点,以便从节点成为主节点。由于镜像每个写入,所以与主节点和从节点相关联的数据将是相同的(无任何中毒高速缓存行)。因此,没有必要在失效转移期间从主节点复制存储器数据到从节点。
在存储器失效转移已经完成后,系统架构100的配置在图1b中示出。值得注意的是,存储器控制器104的以前的从角色已经切换到主角色(在这一点上,没有从节点),存储器级别1-0和1-1现在用来作为主存储器,而存储器级别0-0和0-1现在标记为失效。此外,写入和读取两者分别写入到主存储器级别1-0和1-1写入和从其读取。失效转移导致“逻辑”存储器迁移,因为存储器级别1-0和1-1的实际数据(该镜像存储器级别0-0和0-1在失效转移前已初始化)仍然和以前一样,其中在源地址解码器126中的存储器级别映射数据被更新以反映改变后的配置。
在图1b所示的时间处,最初的主存储器已失效,并且还没有被替换。在一个实施例中,一旦替换失效的存储器级别(例如,替换存储器级别0-0和0-1),执行称为存储器“重新同步”操作的一种类型的复制操作以将系统恢复到镜像的备份配置。可以执行类似的存储器复制操作以初始地配置以前(例如在系统启动时)不存在的镜像备份配置。在这些情况下,因为镜像备份当前不存在,所以需要创建一个。因此,在失效的存储器已经被替换后(或一旦标识了要镜像的目标级别,例如在系统启动时),存储器数据从由第一存储器控制器(例如,在图1b中的存储器控制器104)控制的源存储器复制到由第二存储器控制器(例如,存储器控制器102)控制的目标存储器(例如,被替换的存储器或标识的存储器)。这种类型的存储器复制操作的示例在图1c中描绘。在下面描述存储器数据以对系统软件透明的方式复制的存储器复制操作的一个实施例的细节。
如上面所讨论的,对于每个存储器级别维持中毒数据位图,以便LLC一致性引擎116和/或其它存储器/一致性代理意识到该高速缓存行可能操作不正常和/或包含错误的数据(例如,中毒的高速缓存行)。此外,在任何中毒的高速缓存行中的数据不应该在存储器复制或存储器迁移过程后使用。因此,作为在存储器重新同步或在其中存储器从一个级别复制到另一级别的初始镜像配置操作期间执行的存储器复制操作的一部分,高速缓存行的错误信息(例如,中毒位)固有地同时复制。这在图1c中描绘为复制到中毒的数据位图130的中毒数据位图132数据,再次理解中毒数据位图仅代表各种高速缓存行的信息位中的中毒状态位,而在实践中单独的中毒数据位图不保存在单独的数据结构中或单独地复制。此外,适用的地址映射信息在源地址解码器126和目标地址解码器134和136更新,并且存储器控制器配置用于对应的主节点和从节点操作,以支持正在进行的存储器镜像。
在完成存储器重新同步操作(或初始的存储器镜像配置操作,如适用)时,源存储器控制器(例如,存储器控制器104)保留其主节点角色,并且目标存储器控制器(例如,存储器控制器102)成为从节点,其中存储器级别1-0和1-1经由用作主存储器的主节点访问,而存储器级别0-0和0-1经由用作备份存储器的从节点访问。此外,读取经由主节点从主存储器级别1-0和1-1读取。和以前一样,写操作在由两个存储器控制器控制的存储器上执行,需要提醒的是现在的存储器控制器104是控制从存储器控制器102的主存储器控制器,并且写入到备份存储器是经由从主节点存储器控制器发出存储器写入命令到从节点存储器控制器来生效的。
除了在SoC中的存储器控制器之间的存储器迁移和/或镜像之外,存储器迁移和镜像可在不同的处理器或不同的SoC的存储器控制器之间执行。例如,图2a和图2b图示系统架构100中的示例性存储器迁移,该系统架构100包括一对SoC的101a和101b(分别标记为SoC0和SoC 1)。图2a-c中的与图1a-c的元件共享共同的根参考编号的元件执行类似的功能,其中与SoC 101关联的对应元件添加了后缀“a”,并且与SoC 101b关联的关联元件添加了后缀“b”。例如,在架构101a的Soc 101中的处理器核110a和SoC 101b中的处理器核110b以类似于架构100的处理器核110的方式操作。另外,与架构100的描绘同样,每个SoC 0和SoC 1的处理器核的数量可以从1变化到多个(例如,4、8、12、16等)。
架构100a中的存储器级别和中毒数据位图以下列方式标记。第一个数字标识SoC,第二数字标识SoC中的存储器控制器以及第三个数字标识存储器级别数。例如,存储器00-0在存储器级别组140a中对应于由SoC 0(101a)的存储器控制器00(102a)控制的第一存储器级别。同样,对应于与存储器级别10-1相关联的中毒数据位图130b的高速缓存行的状态数据标记为存储器10-1高速缓存行中毒位。
在不同的SoC的存储器控制器之间执行存储器迁移的过程基本上类似于在单个SoC的一对存储器控制器之间执行存储器迁移或存储器复制操作(例如,如在图1a-c中图示的)。例如,在图2a和2b中示出在存储器迁移完成之前和之后的架构100a的配置。在图2a示出的配置中,经由Soc 0中的存储器控制器102a(MC00)访问的存储器级别00-0和00-1中的存储器将迁移到存储器级别10-0和10-1,其经由Soc 1中的存储器控制器102b(MC10)访问。错误映射130a和130b分别为相应的存储器级别在迁移之前示出中毒位状态。在所描绘的状态下,存储器级别10-0和10-1中不包含数据,也没有高速缓存行错误,如由中毒数据位图130b中全“0”描绘的。
存储器迁移在图2b中描绘。在存储器迁移(即,没有镜像)期间,存储器数据从一个或多个源存储器级别复制到一个或多个目的地存储器级别。在存储器数据已经复制后,执行地址重新映射并且迁移的源存储器的部分被禁用或以其它方式不可用,或可选地分配不同的激活状态。例如,这朝着图2b的底部描绘,其中,图示的状态对应于存储器已从存储器级别00-0和00-1迁移到存储器级别10-0和10-1的情况。因此,源存储器级别在此示例中标记为未使用。由于存储器数据在迁移期间被复制,所以中毒的数据同样固有地从源存储器级别复制到目的地存储器级别,如朝着图2b的顶部描绘的。类似于之前的方式,标识中毒数据位图130a中的高速缓存行错误的中毒位已复制到中毒数据位图130b,并且存储器控制器102b之前未用过的角色已经被切换到主角色(在这时没有从节点),而存储器级别10-0和10-1现在用作主存储器,并且存储器级别00-0和00-1现在被标记为未使用。此外,写入和读取两者现在尊敬地写入到主存储器级别10-0和10-1写入和从其读取。此外,存储器地址映射信息将在SAD 126a和126b中更新以便(但从操作系统的视角)以前映射到分配给存储器级别00-0和00-1的地址范围的存储器访问被重新映射到对应的分配给存储器级别10-0和10-1的地址范围。
至于个别的SoC,存储器级别可以使用在单独的SoC中的控制器进行镜像。根据一个实施例,该情况的一个示例在图2c中描绘。操作类似于参照图1c在上面所讨论的存储器镜像配置恢复操作,但是在这个示例中没有以前的镜像配置,因此初始化镜像配置而不是恢复。在镜像配置设置操作中,存储器数据从经由存储器控制器102b访问的源存储器级别10-0和10-1以类似于迁移的方式复制到经由存储器控制器102a访问的目标存储器级别00-0和00-1,除了源存储器在复制操作完成后仍用作主存储器。同样,复制中毒数据位图数据(例如,这图示为复制到中毒数据位图130a的中毒数据位图130b)。在完成存储器镜像配置初始化操作时,存储器控制器102b保留其主角色并且存储器控制器102a现在变成了从节点,其中存储器级别10-0和10-1现在用作主存储器,而存储器级别00-0和00-1现在用作备份存储器。此外,读取是从主存储器级别10-0和10-1读取。和以前一样,写操作在由两个存储器控制器102a和102b控制的存储器上执行,需要提醒的是现在存储器控制器102b是控制从存储器控制器102a的主存储器控制器。
根据一个实施例,在图3中示出系统架构100的各方面的进一步的细节,其中,与在图1a-c示出的组件和元件共享参考标号的组件和元件执行类似的功能。除了前面讨论过的元件和组件,在架构100中的选择性的组件以它们的“BOX”名称示出。在一般情况下,“BOX”名称参考对应于与该组件关联的用于实现对应功能块(即,实现与功能相关的组件的嵌入式逻辑和电路)的SoC上的块或区域。例如,LLC一致性引擎116被称为“CBOX”,每个高速缓存代理118和120被称为“SBOX”等。
系统架构100还包括各种设施,用于对接和互连在SoC 101中的组件以及可以耦合到SoC 101的组件。这些统一描绘为RBOX(路由器块)144、构造接口146以及存储器接口148和150。构造接口146在SoC 101和一个或多个互连构造152之间提供接口。另外,在图3中描绘的各种双头箭头图示SoC 101中的和用于对接/互连到外部组件的各种接口和互连。
每个存储器控制器102和104采用相应的存储器接口148和150,用于与它们相应的存储器级别组140和142内的存储器级别通信。如由DIMM 154所描绘的,分配给多个存储器级别的存储器可以由单个DIMM来提供;然而,在一个或多个DIMM上的逻辑存储器级别地址和物理存储器地址之间的特定映射通过存储器控制器、存储器接口以及DIMM自身上的逻辑中的一个或多个的组合来实现,如对于本领域技术人员将是明显的。因此,如图所示,用于两个存储器级别的单个DIMM的使用仅仅是示例性的。另外,如上面所讨论的,存储器接口将在通信上经由适当的接口或互连电路(如合适的)耦合到一个或多个DIMM存储器模块接口(即,DIMM插槽)。
在实际的计算机系统实现(如RAS服务器)中,各种组件(包括一个或多个处理器或SoC的和DIMM存储器模块)将耦合到对应的在“主”板和/或其它板卡或系统中使用的模块上实现的接口组件和电路。例如,典型的RAS服务器可以配置为被配置成安装在采用多个刀片的刀片服务器机箱中的刀片式服务器,或者可以配置为机架服务器(例如,1U、2U或4U机架服务器)。刀片服务器或机架服务器中的每个通常采用主印刷电路板(即主板),其具有在其中安装对应部件的各种插口和连接器接口,例如处理器或SoC插口和存储器模块接口(例如,DIMM插槽)。例如,对应于系统架构100a的系统实现将包括主板,该主板具有在其中将分别安装SoC 0和SoC 1(101a和102b)的第一和第二插口,以及在其中将安装对应DIMM的多个DIMM插槽、以及嵌入在主板和/或耦合至主板的其它组件或模块中的各种接口电路。此处两个SoC的使用仅仅是示范性的,因为可实现其它数量的SoC(例如,4、6、8等)。还要注意,可存在这样的系统配置,其中存储器组件(例如,存储器芯片)直接安装到主板或永久耦合到主板上的模块,因此是不可替换的。因此,如本文中所使用的,存储器模块接口可以包括DIMM(或其它存储器模块)插槽和对应接口电路以及直接存储器组件接口。
根据一个实施例,对应于采用架构100的计算机服务器等的初始化的流程图在图4中示出。响应于冷或热启动事件400,在块402检测和初始化在服务器中的所有的DIMM(或在刀片式服务器架构中的给定刀片)。在块404中,如果启用镜像,则用于镜像的对应存储器节点指定为用作从节点。此节点不暴露在系统存储器映射中,以便与从节点相关联的存储器不可被除主节点以外的任何存储器组件访问。
接下来,在块406中,在主节点中编制从存储器节点ID。同样地,在块408中,在从节点中编制主节点ID。初始化在块410中完成,其中在主节点和从节点启用镜像位。
图5是图示根据一个实施例的结合存储器迁移或存储器镜像初始化执行的存储器复制操作的流程图。在正在进行的计算机系统操作期间,SMI由BIOS或固件响应于对应的情况产生,并且适当的SMI处理操作由一个或多个SMI处理程序执行(如通常由块514所描绘的,其表示处理由于主节点失效或对应迁移/复制操作导致SMI以外的所有SMI)。因此,响应于调用SMI而开始流程图操作,如在开始块500所描绘的。如果SMI是由于主节点中的失效(如由判定框502所描绘的)逻辑前进到块504,其中在热备引擎中启用存储器迁移模式。在块506,编制MAP区域寄存器0...3。注意,可能会有更多的MAP区域寄存器用于更大的量的存储器。在此之后,在热备引擎中编制第一TAD区域地址/限制,并且启用TadVld(TAD有效)位以初始化用于第一TAD区域的存储器复制操作。这使得响应于主节点失效而调用的SMI的处理完成,所由退出SMI的结束块510描绘的。
在这时,将在内部产生一系列SMI,每个SMI用于待处理的多个TAD区域中的每个。这由标有“对于每一个TAD区域”的虚线反馈环描绘。此时,由于SMI不是由于主节点失效而发生的,所以对判定块502的答复为否,并且逻辑前进到判定块512,其中作出SMI是否是由于TAD区域的迁移而发生的确定。在这种情况下,结果是“是”,并且然后逻辑前进到判定块514,在其中作出是否所有的TAD区域已被编制的确定。如果不是,则逻辑前进至块516,在其中,编制下一个TAD区域,并且设置用于该区域的TadVld位。这使得当前SMI的处理完成,其中逻辑前进到退出SMI结束块510,并且生成另一SMI。根据判定块514和上面所讨论的其它逻辑和操作,重复这组操作直到所有TAD区域已被编制。当该情况发生时,对判定块514的答复为“是”,并且逻辑前进到块518,在其中主BBOX(即,对应于主节点的一致性或归属代理)设置为用于镜像迁移模式。存储器迁移模式然后在热备引擎中被禁用。
图6示出根据一个实施例的存储器迁移/复制操作的进一步的细节。在图6中的垂直线对应于用于包括主MBOX(例如,存储器控制器102)、主BBOX(例如,一致性代理122)、从BBOX(例如,一致性代理124)和从MBOX(例如,存储器控制器104)的相应组件的时间线。在系统初始化期间,BIOS在主MBOX中设置迁移模式,如在块600中所描绘的。在关联操作602中,主BBOX在队列中保留1个条目用于存储器复制事务。接着,BIOS设置热备引擎地址、范围、映射,并启动热备,如在块604中所描绘的。
重复剩余的所描绘的操作来执行迁移或复制。首先,如操作606所示,主MBOX热备引擎产生对于每个MBOX地址的读取请求。如操作608所描绘的,主MBOX然后在主BBOX队列中用数据填充保留条目,并在数据包中设置迁移位或维护边带信号。热备引擎然后等待,直到它从主BBOX得到读取下一地址的ACK。
如操作610所示,主BBOX检测数据包中的“迁移”位,或检测对边带信号的维护,并作为响应使用MIRROR_CONFIG寄存器中的编制的从ID来大量生产从写入请求。在操作612中,从BBOX转发写入请求到从MBOX作为典型的写入请求。从MBOX然后完成写入和发送响应到从BBOX,如操作614所描绘的。从BBOX发送完成响应到主BBOX,如正常从写入情况下那样,如由操作616所示。在操作618中,主BBOX然后在MBOX中发信号给热备引擎。这使得当前事务周期完成,并且开始于具有热备引擎读取下一地址的操作606的该过程重复进行合适数量的事务周期,直到所有的地址都被处理。
尽管在图5和图6的操作的各方面对应于执行数据迁移,但是应当理解的是,可以采用类似的操作来执行单向存储器迁移以及初始化或恢复存储器镜像配置。在图6的上下文中,引用“主”和“从”并不意味着镜像配置存在,而是“主”对应于存储器从其复制或迁移的节点,“从”指的是存储器要被迁移或复制到的节点(如适用)。
如上面所讨论的,在本文的附图的SoC中图示的各种组件和块通常可包括根据它们的“BOX”名称执行操作的功能块。更详细而言,由每个BOX或功能块执行的操作可以经由嵌入式逻辑和关联电路(例如,用于存储目录数据、SAD数据、TAD数据等的电路)利用本领域已知的半导体设计和制造技术来实现。
本文描述的技术提供了相对现有解决方案的显著优点。由于存储器复制/迁移操作采用硬件实现,所以通过现有的方法所遇到的开销实质性减少。不是产生SMI“风暴”(和对应SMI支持器使用),本文的实施例中的SMI的数量被大大减少。这导致高的迁移吞吐量,同时也在迁移期间提供高响应系统操作。此外,该技术支持一致性和透明中毒数据处理,从而减少由于中毒数据消耗的系统失效。
本发明的所示实施例(包括在摘要中所描述情况)并不旨在穷举或将本发明限制为所公开的精确形式。尽管出于说明性目的在本文中描述本发明的特定实施例和示例,但是如相关领域的那些技术人员将意识到的,本发明的范围之内的各种等效修改是可能的。
可以在考虑上述详细描述的情况下对本发明作出这些修改。在下面的权利要求书中使用的术语不应当被解释为将本发明限制为在本说明书和附图中公开的具体实施例。而是,本发明的范围将完全由所附权利要求确定,该权利要求要根据权利要求解读的既定原则来解释。

Claims (20)

1.一种基于硬件的存储器迁移或复制方法,包括:
在计算机系统中用第一和第二存储器控制器执行存储器访问操作,每个存储器控制器实现为分别访问第一和第二存储器部分,所述第一和第二存储器部分中的每个部分包括一个或多个地址范围的相应的组;以及
执行基于硬件的存储器迁移或复制操作,其中,存储器数据以对在所述计算机系统上运行的软件透明的方式从所述第一存储器部分迁移或复制到所述第二存储器部分,
其中,所述第一和第二存储器控制器之一操作为维持数据的主要副本的主节点,并且另一个操作为维持数据的备份副本的从节点,响应于所述主节点中的存储器失效而发起失效转移过程,其中,存储器访问控制将在所述主节点和所述从节点之间转移,从而,数据的备份副本变为新的主要副本,并且以前的从节点成为新的主节点。
2.根据权利要求1所述的方法,其中所述基于硬件的存储器迁移或复制操作用所述第一存储器控制器中的热备引擎来实现。
3.根据权利要求1所述的方法,还包括:
检测所述第一存储器部分中的第一高速缓存行的高速缓存行失效;
将所述高速缓存行标记为中毒;
在所述基于硬件的存储器迁移或复制操作期间,将对应于所述第一高速缓存行的数据迁移或复制到所述第二存储器部分中的对应第二高速缓存行;以及
迁移或复制信息标识所述第二高速缓存行中毒。
4.根据权利要求1所述的方法,还包括:
使用所述第一存储器控制器在所述第一存储器部分执行高速缓存行的存储器读取,以及使用起源于所述第一存储器控制器的对所述第二存储器控制器的存储器写入请求将对应于对对应高速缓存行的每个存储器读取的数据复制到所述第二存储器部分。
5.根据权利要求4所述的方法,还包括:
为所述第一和第二存储器部分中的每个高速缓存行执行存储器读取和存储器写入,以便镜像所述第一和第二存储器部分以初始化镜像存储器配置;以及
通过采用所述第一存储器控制器作为主节点并且采用所述第二存储器控制器作为从节点来维持镜像存储器配置,其中响应于存储器读取请求,经由所述第一存储器控制器从所述第一存储器部分的对应高速缓存行读取数据,以及响应于存储器写入请求,存储器写入到所述第一和第二存储器部分中的对应高速缓存行以发生数据的镜像写入。
6.根据权利要求4所述的方法,其中所述方法执行通过执行以下进一步操作而发生的存储器迁移,该操作包括:以对所述计算机系统的操作系统透明的方式将来自所述第一存储器部分的地址的存储器地址信息重新映射到所述第二存储器部分中的对应地址。
7.根据权利要求1所述的方法,其中所述第一和第二存储器控制器集成在单个集成电路上。
8.根据权利要求1所述的方法,其中所述第一和第二存储器控制器实现于单独的集成电路上。
9.根据权利要求1所述的方法,其中数据的所述第一和第二部分中的每个部分包括相应的存储器级别。
10.一种片上系统SoC,配置为在计算机系统中实现,所述计算机系统包括在其中安装有包括第一存储器部分的第一存储器模块的第一存储器模块接口,以及在其中安装有包括第二存储器部分的第二存储器模块的第二存储器模块接口;所述SoC包括:
多个处理器核;
多个高速缓存,配置为多级高速缓存;
第一存储器控制器,可操作地耦合到所述多级高速缓存并且在通信上耦合到配置为有助于所述第一存储器控制器和所述第一存储器模块接口之间的通信的第一存储器接口;
第二存储器控制器,可操作地耦合到所述多级高速缓存并且在通信上耦合到配置为有助于所述第二存储器控制器和所述第二存储器模块接口之间的通信的第二存储器接口;以及
嵌入逻辑,配置为当所述SoC安装在所述计算机系统并操作时,启用基于硬件的存储器迁移或复制操作,其中在所述基于硬件的存储器迁移或复制操作中,存储器数据以对在所述计算机系统上运行的软件透明的方式从所述第一存储器部分迁移或复制到所述第二存储器部分,
其中,所述第一和第二存储器控制器之一操作为维持数据的主要副本的主节点,并且另一个操作为维持数据的备份副本的从节点,响应于所述主节点中的存储器失效而发起失效转移过程,其中,存储器访问控制将在所述主节点和所述从节点之间转移,从而,数据的备份副本变为新的主要副本,并且以前的从节点成为新的主节点。
11.根据权利要求10所述的SoC,其中所述第一存储器控制器包括在其中实现所述嵌入逻辑的一部分的热备引擎,其中所述热备引擎有助于存储器数据复制操作以有助于所述基于硬件的存储器迁移或复制操作。
12.根据权利要求10所述的SoC,还包括这样配置的嵌入逻辑:
保持标识所述第一存储器部分中的每个高速缓存行的状态的高速缓存行状态信息;
检测所述第一存储器部分中的第一高速缓存行的高速缓存行失效;
在所述高速缓存行状态信息中将所述高速缓存行标记为中毒;
在所述基于硬件的存储器迁移或复制操作期间,迁移或复制所述高速缓存行状态信息,其中,将包含从所述第一高速缓存行迁移或复制的数据的数据的第二部分的第二高速缓存行标记为中毒。
13.根据权利要求12所述的SoC,其中,所述多级高速缓存包括最后一层高速缓存一致性引擎,经由其来保持所述第一和第二存储器部分中的每个部分的目录信息。
14.根据权利要求10所述的SoC,其中,所述第一存储器控制器包括编制逻辑,配置为通过执行以下操作而有助于与所述存储器迁移或复制操作关联的存储器数据复制操作,该操作包括:
从所述第一存储器部分的高速缓存行读取数据并生成对应存储器写入请求到所述第二存储器控制器,使得在所述第一存储器部分读取的每个高速缓存行的数据的副本写入到所述第二存储器部分中的对应高速缓存行。
15.根据权利要求14所述的SoC,其中,所述嵌入逻辑还配置为:
对于所述第一和第二存储器部分中的每个高速缓存行执行存储器读取和存储器写入以便镜像所述第一和第二存储器部分来初始化镜像存储器配置;以及
通过采用所述第一存储器控制器作为主节点并且采用所述第二存储器控制器作为从节点来维持镜像存储器配置,其中响应于存储器读取请求,经由所述第一存储器控制器从所述第一存储器部分中的对应高速缓存行读取数据,以及响应于存储器写入请求,将存储器写入到所述第一和第二存储器部分的对应高速缓存行以发生数据的镜像写入。
16.一种计算机系统,包括:
主板,包括第一和第二插口、以及在其中安装有第一和第二存储器部分的第一和第二存储器模块接口;
安装在所述第一插口中的第一处理器包括:
多个处理器核;
第一多个高速缓存,配置为多级高速缓存;
第一存储器控制器,可操作地耦合到所述多级高速缓存并且在通信上耦合到配置为有助于所述第一存储器控制器和安装在所述第一存储器模块接口中的所述第一存储器部分之间的通信的第一存储器接口;
安装在所述第二插口中的第二处理器包括:
多个处理器核;
第二多个高速缓存,配置为多级高速缓存;
第二存储器控制器,可操作地耦合到所述多级高速缓存并且在通信上耦合到配置为有助于所述第一存储器控制器和安装在所述第二存储器模块接口中的所述第二存储器部分之间的通信的第一存储器接口;
其中所述第一和第二处理器还包括配置为在所述计算机系统的操作期间启用基于硬件的存储器迁移或复制操作的嵌入逻辑,其中在所述基于硬件的存储器迁移或复制操作中,存储器数据将以对在所述计算机系统上运行的软件透明的方式从所述第一存储器部分迁移或复制到所述第二存储器部分,
其中,所述第一和第二存储器控制器之一操作为维持数据的主要副本的主节点,并且另一个操作为维持数据的备份副本的从节点,响应于所述主节点中的存储器失效而发起失效转移过程,其中,存储器访问控制将在所述主节点和所述从节点之间转移,从而,数据的备份副本变为新的主要副本,并且以前的从节点成为新的主节点。
17.根据权利要求16所述的计算机系统,其中,所述第一存储器控制器包括在其中实现所述嵌入逻辑的一部分的热备引擎,其中,所述热备引擎有助于存储器数据复制操作,以有助于所述基于硬件的存储器迁移或复制操作。
18.根据权利要求16所述的计算机系统,其中所述第一和第二处理器还包括嵌入逻辑,该嵌入逻辑配置为:
检测所述第一存储器部分中的第一高速缓存行的高速缓存行失效;
在高速缓存行状态信息中将所述高速缓存行标记为中毒;以及
在所述基于硬件的存储器迁移或复制操作期间,迁移或复制所述高速缓存行状态信息,其中,将含有从所述第一高速缓存行迁移或复制的数据的数据的第二部分中的第二高速缓存行标记为中毒。
19.根据权利要求18所述的计算机系统,其中所述第一和第二处理器包括嵌入逻辑,该嵌入逻辑配置为初始化存储器镜像配置,其中所述第一和第二存储器部分通过采用基于硬件的存储器数据复制方案来镜像,其中,将存储器数据从所述第一存储器部分中的高速缓存行复制到数据的第二部分中的对应高速缓存行中。
20.根据权利要求19所述的计算机系统,其中通过使用所述第一存储器控制器并且经由所述第一存储器控制器生成对应的存储器写入请求到所述第二存储器控制器而从所述第一存储器部分中的高速缓存行读取数据、使得在所述第一存储器部分读取的每个高速缓存行的数据的副本写入到所述第二存储器部分的对应高速缓存行来有助于存储器复制操作。
CN201180075280.7A 2011-12-01 2011-12-01 基于硬件的存储器迁移和重新同步方法及系统 Expired - Fee Related CN103959253B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/062788 WO2013081616A1 (en) 2011-12-01 2011-12-01 Hardware based memory migration and resilvering

Publications (2)

Publication Number Publication Date
CN103959253A CN103959253A (zh) 2014-07-30
CN103959253B true CN103959253B (zh) 2018-07-17

Family

ID=48535909

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180075280.7A Expired - Fee Related CN103959253B (zh) 2011-12-01 2011-12-01 基于硬件的存储器迁移和重新同步方法及系统

Country Status (3)

Country Link
US (1) US10061534B2 (zh)
CN (1) CN103959253B (zh)
WO (1) WO2013081616A1 (zh)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103959253B (zh) 2011-12-01 2018-07-17 英特尔公司 基于硬件的存储器迁移和重新同步方法及系统
US10223204B2 (en) * 2011-12-22 2019-03-05 Intel Corporation Apparatus and method for detecting and recovering from data fetch errors
US9037903B2 (en) * 2012-12-28 2015-05-19 Intel Corporation Apparatus and method for partial memory mirroring
KR102039537B1 (ko) 2013-03-15 2019-11-01 삼성전자주식회사 불휘발성 저장 장치 및 그것의 운영체제 이미지 프로그램 방법
WO2015016880A1 (en) * 2013-07-31 2015-02-05 Hewlett-Packard Development Company, L.P. Global error correction
GB201315397D0 (en) 2013-08-29 2013-10-16 Quixant Plc Memory controller and memory access method
CN103455372B (zh) * 2013-08-31 2017-05-10 华为技术有限公司 一种服务器中内存模块的数据迁移方法及服务器
EP3206127B1 (en) * 2013-11-22 2019-03-06 Huawei Technologies Co., Ltd. Method, computer, and apparatus for migrating memory data
US10030808B2 (en) 2014-01-27 2018-07-24 UCP International Co. Ltd. Invertible structure with a track
CN105940386B (zh) * 2014-01-30 2019-12-17 慧与发展有限责任合伙企业 用于在存储器之间移动数据的方法、系统和介质
US9606944B2 (en) * 2014-03-20 2017-03-28 International Business Machines Corporation System and method for computer memory with linked paths
US9389973B2 (en) * 2014-05-30 2016-07-12 Oracle International Corporation Memory error propagation for faster error recovery
US11579774B2 (en) 2015-01-20 2023-02-14 Ultrata, Llc Object memory data flow triggers
WO2016118607A1 (en) 2015-01-20 2016-07-28 Ultrata Llc Distributed index for fault tolerant object memory fabric
US10002072B2 (en) * 2015-05-18 2018-06-19 Mediatek Inc. Method and apparatus for controlling data migration in multi-channel memory device
US9971542B2 (en) 2015-06-09 2018-05-15 Ultrata, Llc Infinite memory fabric streams and APIs
US9886210B2 (en) 2015-06-09 2018-02-06 Ultrata, Llc Infinite memory fabric hardware implementation with router
US10698628B2 (en) 2015-06-09 2020-06-30 Ultrata, Llc Infinite memory fabric hardware implementation with memory
CN106445840B (zh) * 2015-08-07 2019-03-01 华为技术有限公司 数据存储方法以及存储系统
WO2017100281A1 (en) 2015-12-08 2017-06-15 Ultrata, Llc Memory fabric software implementation
EP3387548B1 (en) 2015-12-08 2023-08-02 Ultrata LLC Memory fabric operations and coherency using fault tolerant objects
US10241676B2 (en) 2015-12-08 2019-03-26 Ultrata, Llc Memory fabric software implementation
US10248337B2 (en) 2015-12-08 2019-04-02 Ultrata, Llc Object memory interfaces across shared links
US20190004816A1 (en) * 2017-06-29 2019-01-03 Dell Products L.P. Systems and methods for heterogeneous system on a chip servers
US10613951B2 (en) 2017-09-13 2020-04-07 International Business Machines Corporation Memory mirror invocation upon detecting a correctable error
CN109697120B (zh) * 2017-10-20 2023-06-27 伊姆西Ip控股有限责任公司 用于应用迁移的方法、电子设备
CN107992434A (zh) * 2017-11-24 2018-05-04 郑州云海信息技术有限公司 用于分布式分层存储系统的下刷方法、装置及存储介质
CN108763099B (zh) * 2018-04-18 2020-05-08 华为技术有限公司 系统的启动方法、装置、电子设备和存储介质
CN109521967A (zh) * 2018-11-15 2019-03-26 郑州云海信息技术有限公司 一种数据的迁移方法和装置
CN109669878B (zh) * 2018-11-30 2021-04-02 环球雅途集团有限公司 一种最简化缓存数据操作方法
KR20210046348A (ko) * 2019-10-18 2021-04-28 삼성전자주식회사 복수의 프로세서들에 유연하게 메모리를 할당하기 위한 메모리 시스템 및 그것의 동작 방법
US11216377B2 (en) 2019-12-18 2022-01-04 Nxp Usa, Inc. Hardware accelerator automatic detection of software process migration
US20220011939A1 (en) * 2021-09-24 2022-01-13 Intel Corporation Technologies for memory mirroring across an interconnect

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1489059A (zh) * 2002-10-10 2004-04-14 �Ҵ���˾ 管理多处理器系统中虚拟化的物理存储器的方法和系统
CN1520564A (zh) * 2001-06-26 2004-08-11 Emc 镜像网络数据以建立虚拟存储区域网络
CN102110036A (zh) * 2009-12-23 2011-06-29 英特尔公司 控制系统中的存储器冗余度

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978912A (en) * 1997-03-20 1999-11-02 Phoenix Technologies Limited Network enhanced BIOS enabling remote management of a computer without a functioning operating system
US7631150B2 (en) 2006-09-29 2009-12-08 Broadcom Corporation Memory management in a shared memory system
US20090254705A1 (en) 2008-04-07 2009-10-08 International Business Machines Corporation Bus attached compressed random access memory
CN102272734B (zh) 2009-01-05 2014-09-10 马维尔国际贸易有限公司 使用非易失性存储器设备用于休眠或挂起的方法和系统
US8793448B2 (en) * 2010-07-29 2014-07-29 International Business Machines Corporation Transparent data migration within a computing environment
CN103959253B (zh) 2011-12-01 2018-07-17 英特尔公司 基于硬件的存储器迁移和重新同步方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1520564A (zh) * 2001-06-26 2004-08-11 Emc 镜像网络数据以建立虚拟存储区域网络
CN1489059A (zh) * 2002-10-10 2004-04-14 �Ҵ���˾ 管理多处理器系统中虚拟化的物理存储器的方法和系统
CN102110036A (zh) * 2009-12-23 2011-06-29 英特尔公司 控制系统中的存储器冗余度

Also Published As

Publication number Publication date
WO2013081616A1 (en) 2013-06-06
US20130268739A1 (en) 2013-10-10
CN103959253A (zh) 2014-07-30
US10061534B2 (en) 2018-08-28

Similar Documents

Publication Publication Date Title
CN103959253B (zh) 基于硬件的存储器迁移和重新同步方法及系统
US11586514B2 (en) High reliability fault tolerant computer architecture
JP5265654B2 (ja) システムにおけるメモリ冗長性の制御
US7877358B2 (en) Replacing system hardware
US7107411B2 (en) Apparatus method and system for fault tolerant virtual memory management
US7600152B2 (en) Configuring cache memory from a storage controller
US8560772B1 (en) System and method for data migration between high-performance computing architectures and data storage devices
US20120079316A1 (en) Performing Redundant Memory Hopping
US8775861B1 (en) Non-disruptive storage device migration in failover cluster environment
US6591335B1 (en) Fault tolerant dual cache system
TW201702874A (zh) 防止容錯記憶體組織結構中資料損壞及單點故障之技術
US10782898B2 (en) Data storage system, load rebalancing method thereof and access control method thereof
WO2009085326A1 (en) Performing mirroring of a logical storage unit
US9063854B1 (en) Systems and methods for cluster raid data consistency
US20040255187A1 (en) Data synchronization for system controllers
CN111949217A (zh) 超融合一体机及其软件定义存储sds处理方法和系统
US20180046549A1 (en) High availability state machine and recovery
US20160292050A1 (en) Elastic virtual multipath resource access using sequestered partitions
US11392423B2 (en) Method for running a quorum-based system by dynamically managing the quorum
US20240176739A1 (en) Fault tolerant systems and methods using shared memory configurations
JP4789263B2 (ja) メモリ制御システム、メモリ制御装置、メモリ制御方法
TWI322942B (en) Topology independent storage arrays and methods
US20240069742A1 (en) Chassis servicing and migration in a scale-up numa system
Sicola The architecture and design of HS-series StorageWorks Array Controllers

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20180717

Termination date: 20211201

CF01 Termination of patent right due to non-payment of annual fee