CN101364189B - 在操作***协助下实现运行时间处理器迁移的方法和装置 - Google Patents

在操作***协助下实现运行时间处理器迁移的方法和装置 Download PDF

Info

Publication number
CN101364189B
CN101364189B CN2008102103488A CN200810210348A CN101364189B CN 101364189 B CN101364189 B CN 101364189B CN 2008102103488 A CN2008102103488 A CN 2008102103488A CN 200810210348 A CN200810210348 A CN 200810210348A CN 101364189 B CN101364189 B CN 101364189B
Authority
CN
China
Prior art keywords
processor
activity
disposal system
operating system
backup
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
CN2008102103488A
Other languages
English (en)
Other versions
CN101364189A (zh
Inventor
K·亚马达
D·E·科韦利
J·A·瓦加斯
M·J·库马
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 CN101364189A publication Critical patent/CN101364189A/zh
Application granted granted Critical
Publication of CN101364189B publication Critical patent/CN101364189B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/202Error 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 processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • 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/202Error 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 processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/203Failover techniques using migration
    • 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/202Error 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 processing functionality is redundant
    • G06F11/2051Error 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 processing functionality is redundant in regular structures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明的名称是“在操作***协助下实现运行时间处理器迁移的方法和装置”。在用于在运行时间中切换到备用处理器的方法中,处理***确定活动处理器的执行应被迁移。操作***(OS)调度器和至少一个设备然后被暂停,并且使活动处理器进入空闲状态。将状态数据从活动处理器中的可写和基本上不可写的存储器加载到备用处理器中。处理***的中断路由表逻辑被动态再编程,以将外部中断指引到备用处理器。然后使活动处理器离线,设备和操作***调度器可以被解除暂停或被恢复。然后可将线程分派给备用处理器来执行。描述其它实施例并要求其权益。

Description

在操作***协助下实现运行时间处理器迁移的方法和装置
技术领域
本发明一般涉及数据处理领域,尤其是涉及用于支持处理器和/或存储器模块(memory module)的运行时间迁移(runtime migration)的方法和相关装置。
背景技术
处理器的运行时间替换(runtime replacement)和存储器模块的运行时间替换是用于支持可靠性、可用性和服务性(RAS)的高端(high-end)服务器***中预想的两个关键创新特征。当处理***支持处理器和存储器模块的运行时间替换时,有故障的处理器或存储器模块能够被替换而无需关闭***。然而,在具有用于支持这种功能性的专用控制逻辑(logic)的处理***中,不提供一些不同的软件组件是不可能实现处理器和存储器模块的运行时间替换的。例如,专用控制逻辑可能在应用程序中、在操作***中以及在设备驱动器中需要。
当用于计算机***的所有硬件和软件是由相同的公司构建时,该公司可以说是提供了一种垂直解决方案(vertical solution)。特别地,为本公开的目的,术语“垂直解决方案”表示具有由单个公司自上而下控制的专有(proprietary)操作***和垂直设备驱动器及应用开发环境的高端服务器。目前少数公司可以构建包括必要的硬件和软件特征以启用处理器和存储器模块的运行时间替换的垂直解决方案。这些公司可包括国际商业机器公司(IBM)、惠普公司(HP)、太阳微***公司(Sun)及NEC公司(NEC)。然而,这样的垂直解决方案生来是专有的并且不能转化为横向(horizontal)市场。
这个问题的横向解决方案需要运行在使用操作***的标准的高容量服务器上,该操作***采用用于各种平台的标准化接口来设计。为本公开的目的,以用于各种平台的标准化接口为特色的操作***可以称作紧缩包装的(shrink wrapped)操作***。例如,微软公司销售的在Windows商标下的各种操作***被认为是紧缩包装的操作***。Red Hat公司销售的在Linux商标下的操作***也可以被认为是紧缩包装的操作***。对于紧缩包装的操作***,两者与不同的平台协作。因此,紧缩包装的操作***需要标准化接口,所以驱动器可以由编写操作***的公司以外的其它方来编写。
然而,当数据处理***或平台使用紧缩包装的操作***时,该平台可能不能支持处理器或存储器模块的运行时间替换。与在使用紧缩包装的操作***时创建支持处理器和存储器模块的运行时间替换的平台相关的一些技术挑战与传统设备驱动器和应用程序的向后兼容问题有关。
发明内容
根据本发明的第一方面,提供了一种用于在运行时间中切换到备用处理器的方法,所述方法包括:
确定处理***中活动处理器的执行应被迁移;
在确定所述活动处理器的执行应被迁移之后,暂停处理***中的操作***(OS)调度器,暂停处理***中的至少一个设备,并使所述活动处理器进入空闲状态;
将状态数据从所述活动处理器中的可写和基本上不可写的存储器保存到所述活动处理器外的存储器;
起动所述处理***中的备用处理器;
将所保存的状态数据从所述活动处理器的可写存储器加载到所述备用处理器;
将所保存的状态数据从所述活动处理器的基本上不可写的存储器加载到所述备用处理器;
对所述处理***的中断路由表逻辑进行再编程,以将外部中断指引到所述备用处理器;
使所述活动处理器离线;
恢复所述设备;以及
恢复所述操作***调度器。
根据本发明的第二方面,提供了一种能够在运行时间中切换到备用处理器的处理***,所述处理***包括:
第一处理器,用作可操作来执行操作***(OS)的活动处理器;
第二处理器,用作备用处理器;
至少一个设备;
数据存储装置;
一条或多条通信路径,与第一处理器、第二处理器、所述设备和所述数据存储装置通信;
至少部分存储在所述数据存储装置中的控制逻辑,所述控制逻辑可操作来执行的操作包括:
确定所述活动处理器的执行应被迁移;
在确定所述活动处理器的执行应被迁移之后,暂停所述操作***中的调度器,暂停所述设备,并使所述活动处理器进入空闲状态;
将状态数据从所述活动处理器中的可写和基本上不可写的存储器保存到所述活动处理器外的存储器;
起动所述备用处理器;
将所保存的状态数据从所述活动处理器的可写存储器加载到所述备用处理器;
将所保存的状态数据从所述活动处理器的基本上不可写的存储器加载到所述备用处理器;
对所述处理***的中断路由表逻辑进行再编程,以将外部中断指引到所述备用处理器;
使所述活动处理器离线;
解除暂停所述设备;以及
解除暂停所述操作***调度器。
根据本发明的第三方面,提供了一种装置,包括:
机器可访问介质;以及
所述机器可访问介质中的指令,其中,所述指令当被具有活动处理器和备用处理器的处理***执行时,使所述处理***执行的操作包括:
确定所述活动处理器的执行应被迁移;
在确定所述活动处理器的执行应被迁移之后,暂停所述处理***中的操作***(OS)调度器,暂停所述处理***中的至少一个设备,并使所述活动处理器进入空闲状态;
将状态数据从所述活动处理器中的可写和基本上不可写的存储器保存到所述活动处理器外的存储器;
起动所述备用处理器;
将所保存的状态数据从所述活动处理器的可写存储器加载到所述备用处理器;
将所保存的状态数据从所述活动处理器的基本上不可写的存储器加载到所述备用处理器;
对所述处理***的中断路由表逻辑进行再编程,以将外部中断指引到所述备用处理器;
使所述活动处理器离线;
恢复所述设备;
恢复所述操作***调度器;以及
将线程分派给所述备用处理器来执行。
附图说明
根据所附的权利要求、以下一个或多个示例实施例的详细描述和对应的附图,本发明的特征和优势将变得显而易见,其中:
图1是描述示例数据处理环境的框图;以及
图2和图3是描述用于支持图1的处理***中处理器和/或存储器模块的运行时间迁移的示例处理的各个方面的流程图。
具体实施方式
本公开描述使用处理器、芯片组及存储控制器扩展,以操作***协助的方式来启用处理器和存储器模块的运行时间迁移的一种或多种方法和装置。
如本文中所使用的,术语“引出处理器(outgoing processor)”指待替换的处理器,术语“备用处理器(spare processor)”指将替换引出处理器的处理器。类似地,术语“引出存储器模块”指待替换的存储器模块,术语“备用存储器模块”指替换引出存储器模块的存储器模块。
目前,处理器资源通过具有处理器亲和性(processor affinity)的操作***应用程序接口(API)暴露给设备驱动器和应用程序。传统应用程序和驱动器直接控制线程调度和中断绑定(binding)以使用这些处理器资源。而且,当与紧缩包装的操作***一起工作时,设备驱动器和应用程序能控制物理页的位置(residency),以便与设备相互作用以及使用操作***应用程序接口在缓冲存储器上执行直接存储存取(DMA)操作。结果,对于紧缩包装的操作***来说,没有设备驱动器和应用程序的支持而解除(remove)任何处理器或存储器资源是不可能的。
然而,使所有应用程序和驱动器识别处理器及存储器解除事件可能需要开发新的操作***应用程序接口以及重写设备驱动器和应用程序。完成这个成果会花费很多年。另外,内在的限制会妨碍紧缩包装的操作***迁移一些特定的处理器和存储器资源,尽管存在识别迁移的驱动器和应用程序。一些例子是引导(bootstrap)处理器和16位DMA目标存储器(0-1M)。
另一个可能的备选方法是创建基于硬件和/或固件的解决方案,该解决方案启用处理器和存储器迁移而无需操作***支持,使这样的CPU和存储器解除事件对于操作***、设备驱动器及应用程序完全透明。然而,这样的解决方案设计起来非常复杂,并且事实上可能是不能实现的。一部分复杂性涉及以对于操作***、设备驱动器及应用程序完全透明的方式,将所有体系结构上可见的CPU状态从一个处理器传送到另一个处理器。另外的复杂性涉及无丢失地处理设备中断以及在运行时间中将未完成的中断转换(transition)从引出处理器重定向到备用处理器。此外,由于迁移过程可能的长等待时间,使处理器迁移对于操作***、设备驱动器及应用程序完全透明甚至是不可能的。例如,由于各种超时问题,长时间地阻止(block)外部中断可能会导致操作***、设备驱动器及应用程序故障。为了透明的存储器迁移,完全硬件复制引擎构建起来可能会很昂贵,同时对于整个存储器迁移过程,复制存储器内容的固件例程可能会导致很长的等待时间。在存储器迁移过程中,这种等待时间可能会对操作***和应用程序产生可见的性能影响。
本公开介绍了一种实现处理器和存储器模块的运行时间替换的新方法,用在使用紧缩包装的操作***的平台中。对于紧缩包装的操作***市场分割,设备驱动器和应用程序的大量重写似乎是不可接受的建议。本文中所述的特征启用处理器和存储器模块的运行时间替换而不需要设备驱动器和应用程序的大量重写。
在一示例实施例中,平台包括少量处理器和/或平台硬件特征扩展,而迁移是在操作***的协助下执行的。例如,本公开描述用于交换(swap)不可写的体系结构状态的处理器硬件扩展,以及用于重新动态地编程中断路由表的芯片组和非核级(uncore-level)扩展。术语“非核”指多核芯片的除了核以外的组件(例如,核之间的互连、总线接口等)。本发明还描述了一种实现存储器模块的运行时间替换的新方法,用于使用紧缩包装的操作***的平台。存储器迁移在操作***的协助下执行。例如,迁移可以包括支持镜像(mirror)复制方式特征的存储控制器扩展的使用,所述特征例如最初设计为支持存储器镜像的特征。存储控制器可用于启用从一个存储器模块到另一个存储器模块的选择性的数据复制。
图1是描述示例数据处理环境12的框图。数据处理环境12包括本地数据处理***20,所述本地数据处理***20包括各种硬件组件80和软件组件82。
硬件组件可包括,例如,通过一条或多条***总线24或其它通信路径或介质在通信上耦合到各个其它组件的两个或两个以上处理器或CPU 22、23。如本文中使用的,术语“总线”包括可由多于两个的设备共享的通信路径及点对点路径。每个CPU可以包括两个或两个以上处理单元或核(core),例如核42、核44、核46及核48。作为备选的方案,处理***可包括一个或多个具有单个处理核的CPU。处理单元可以被实现为处理核、超线程(HT)技术、或用于同时地或基本同时地执行多个线程的任何其它适合的技术。
处理***20可以至少部分地由来自于常规输入设备的输入来控制,所述输入设备例如键盘、诸如鼠标的指示设备等。处理***20还可以响应从其它处理***或其它输入资源或信号接收到的指示。处理***20可以利用对一个或多个远程数据处理***70的一个或多个连接,例如通过网络接口控制器(NIC)32、调制解调器或者其它通信端口或耦合。处理***可以通过物理的和/或逻辑的网络72相互连接,所述网络例如局域网(LAN)、广域网(WAN)、企业内部互联网、因特网等。涉及网络72的通信可以利用各种有线的和/或无线的短程或远程载波和协议,包括射频(RF)、卫星、微波、电气和电子工程师协会(IEEE)802.11、802.16、802.20、蓝牙、光学、红外线、电缆、激光等。802.11协议也可以称作无线保真度(WiFi)协议。802.16协议也可以称作WiMAX或无线城域网协议。关于WiMAX协议的信息目前可以在grouper.ieee.org/groups/802/16/published.html上得到。
在处理***20中,处理器22和23可以在通信上耦合到一个或多个易失性数据存储设备,例如随机存取存储器(RAM)26,以及耦合到一个或多个非易失性数据存储设备。在该实施例中,非易失性数据存储设备包括闪存27和硬盘驱动器28。在图1的实施例中,RAM26包括多个存储器模块,例如存储器模块26A和26B。
在备选实施例中,不同数目的存储器模块可以用作RAM,并且多个非易失性存储器设备和/或多个磁盘驱动器可以用作非易失性存储装置(storage)。适当的非易失性存储设备和/或媒体可包括但不限制于,集成驱动电路(IDE)和小型计算机***接口(SCSI)硬盘驱动器、光学存储器、磁带、软盘、只读存储器(ROM)、记忆棒、数字视盘(DVD)、生物学存储器、相变存储器(PCM)等。如本文中使用的,术语“非易失性存储”指磁盘驱动器、闪存和当处理***断电时可以保持数据的任何其它存储组件。更具体地说,术语“非易失性存储器”指当处理***断电时不使用旋转媒体(rotating media)但仍能够保持数据的存储设备(例如,闪存)。本文中使用的术语“闪存”和“ROM”泛指非易失性存储器设备,例如可擦可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪速ROM等。
处理器22和23还可以在通信上耦合到附加组件,例如NIC 32、视频控制器、IDE控制器、SCSI控制器、通用串行总线(USB)控制器、输入/输出(I/O)端口、输入设备、输出设备等。处理***还可以包括芯片组34,该芯片组具有一个或多个桥接器或集线器,例如存储控制器集线器(memorycontroller hub)33、I/O控制器集线器、PCI根桥接器(root bridge)等,用于在通信上耦合***组件。存储控制器集线器(MCH)33也可以称作存储控制器(MC)33。
例如,一些组件,如NIC32,可以实现为具有用于与总线通信的接口(例如,PCI连接器)的适配卡(adapter card)。作为备选的方案,NIC 32和/或其它设备可以使用例如可编程或不可编程的逻辑设备或阵列、专用集成电路(ASIC)、嵌入式计算机、智能卡等组件来实现为嵌入式控制器。在备选实施例中,处理***可以以核、存储控制器、存储器模块等的不同数目和/或组合为特征。
如本文中使用的,术语“处理***”和“数据处理***”旨在广泛地包括单个机器、或者在通信上耦合的一起操作的机器或设备的***。示例处理***包括但不限制于,分布式计算***、超级计算机、高性能计算***、计算集群(computing cluster)、大型计算机、小型计算机、客户-服务器***、个人计算机(PC)、工作站、服务器、便携计算机、膝上型计算机、平板计算机(tablet computer)、个人数字助理(PDA)、电话、手持设备、例如音频和/或视频设备的娱乐设备以及用于处理和/或传送信息的其它设备。
本文中所述的本发明的一实施例关于或与例如指令、函数、过程、数据结构、应用程序、配置设置等数据关联。当数据被机器访问时,机器可以通过执行任务、定义抽象数据类型或低级硬件上下文和/或执行其它操作来作出响应,如下面更详细的描述。数据可以被存储在易失性和/或非易失性数据存储装置中。如本文中使用的,术语“程序”覆盖软件组件和构成(construct)的广阔范围,包括应用程序、模块、驱动、例程、子程序、方法、进程、线程和软件组件的其它类型。此外,术语“程序”可以用于指完整的编译单元(即,可以被独立编译的指令集)、编译单元的集合、或编译单元的一部分。因此,术语“程序”可以用于指当由处理***执行时完成期望的一个操作或多个操作的任何指令集合。
处理***20中的程序可以视为软件环境82的组件。例如,数据存储设备28和/或闪存27可以包括当被执行时完成各种操作的各种指令集。这样的指令集可以统称作软件。
如图1所示,在该示例实施例中,程序或软件组件82可以包括***固件58、操作***50和一个或多个应用程序60。***固件58可以包括用于管理启动(boot)过程的启动固件,以及在操作***启动代码被调用之后能够执行的运行时间模块或指令。***固件58也可以称作基本输入/输出***(BIOS)58。
另外,固件58包括CPU迁移管理软件62和存储器迁移管理软件64。CPU迁移管理软件62也可以称作CPU迁移管理器62。存储器迁移管理软件64也可以称作存储器迁移管理器64。在图1的实施例中,CPU迁移管理软件62和存储器迁移管理软件64实现为固件58的运行时间模块。
如以下更详细的描述,在该示例实施例中,CPU迁移管理器62包括控制逻辑来管理CPU迁移操作的整个流程。在该示例实施例中,CPU迁移管理器62运行于最高特许级(privilege level)(例如,在环0中)。在备选实施例中,CPU迁移管理器可以部分地或完全地在***固件外实现。例如,控制逻辑可以利用设备驱动器组件来完全在操作***中实现;控制逻辑可以通过划分角色和职责来在固件和操作***之间进行分离(split);等等。
如以下更详细的描述,存储器迁移管理器64包括控制逻辑来管理存储器迁移操作的整个流程。在该示例实施例中,存储器迁移管理器64运行于***固件58内的平台管理堆栈的最高特许级(例如,在环0中,在***管理中断(SMI)上下文中等)。在备选实施例中,存储器迁移管理器可以部分地或完全地在***固件外实现。例如,控制逻辑可以利用设备驱动器组件来完全在操作***中实现。作为备选的方案,控制逻辑也可以部分驻留在一个或多个应用程序代理中。作为备选的方案,控制逻辑可以通过划分角色和职责来在固件和操作***之间进行分离。
在该示例实施例中,处理***20配置成使用CPU 22作为活动(active)处理器以及CPU 23作为备用(spare)或备份(backup)处理器。如上所述,当活动处理器需要被换出(swap out)时,该活动处理器可以称作引出处理器。
如上所述,CPU22包括处理核42和处理核44,而CPU23包括处理核46和处理核48。除处理核之外,CPU 22包括非核(uncore)43和交换控制器45。类似地,CPU 23包括非核47和交换控制器49。交换控制器45和49被实现为处理器硬件中的控制逻辑,其允许CPU迁移管理器62将本来常规处理器中基本上(substantially)不可写的的状态数据存储在CPU中。例如,CPU迁移管理器62能使用交换控制器45来在引出和备用处理器之间充分交换对于设备驱动器和应用程序是可见的不可写的体系结构状态。
基本上不可写的体系结构状态的一实例是支持x86体系结构的处理器中的初始高级可编程接口控制器(APIC)标识符(ID)状态。在这样的处理器中,初始APIC ID值通过使用CPUID指令是可获取的,其中将EAX寄存器设置为1(EAX=1)。具体地说,如标题为“以Linux*来利用英特尔超线程技术的方法(Methods to Utilize Intel’s Hyper-Threading Technology with Linux*)”的文章的第3页所解释的:(可在www.intel.com/cd/ids/developer/asmona/eng/20354.htm?page=3上得到):
每个逻辑处理器具有唯一的高级可编程接口控制器(APIC)ID。APIC ID在***重置时由硬件进行初始赋值并能够稍后由BIOS或操作***再编程(reprogram)。在支持HT技术的处理器上,CPUID指令还在由BIOS或操作***进行任何改变之前为逻辑处理器提供初始APIC ID。
因此,处理器可以实际上存储两个APIC ID。一个是“初始APIC ID”,它始终能够用CPUID指令获得(retrieve)。因此,初始APIC ID被认为是基本上不可写的。操作***、应用程序及设备驱动器依靠初始APIC ID值来检测包括核到封装(core-to-package)和线程到核(thread-to-core)的关系的CPU拓扑信息,它们通常使用该信息来优化软件性能并实现多核许可策略(licensingpolicy)。
其它APIC ID,本文中称作“当前APIC ID”,能够“稍后由BIOS或操作***再编程”,如上所述。然而,即使BIOS或操作***能够再编程当前APIC ID,实际上它不能被写入任意值。当前APIC ID是否能够被写入可以是模型专有的(specific)。当前APIC ID值还由平台用于执行正确的中断路由,并且改变所述值需要对芯片组或非核上的中断路由表进行再编程。因此,当前APIC ID应只能由中断再编程器(reprogrammer)和非核来修改,如下面图2中针对块136的更详细描述。例如,英特尔64和IA-32体系结构软件开发者手册(SDM)的卷3A的8.4.6节(本地APIC)陈述如下:
在MP***中,本地APIC ID也被BIOS和操作***用作处理器ID。一些处理器允许软件来修改APIC ID。然而,软件修改APIC ID的能力是处理器模型专有的。为此,操作***软件应避免写入到本地APIC ID寄存器。
其它实施例可以包括英特尔Itanium处理器,所述处理器使用服务于相同目的以及具有相同限制的本地ID(LID)寄存器。
在该示例实施例中,交换控制器45和49使为处理器22和23分别更新初始APIC ID成为可能。例如,交换控制器45可以提供对处理器22中的机器专有寄存器(machine specific register,MSR)的接口以保持初始APIC ID值,该值将响应以EAX=1执行的CPUID指令而被报告。在一个实施例中,由交换控制器45和49提供的接口是可由CPU迁移管理器62读和写的。因此,这样的接口可以称作不可读状态迁移接口。
CPU迁移管理器可以通过例如由交换控制器45和49提供的接口更新的另外的基本上不可读状态值可以包括但不限制于,当前APIC ID、LID、中断状态、模型专有寄存器(MSR)等。
在图1的实施例中,芯片组34包括中断再编程器31。中断再编程器31提供平台处理器函数来动态地再编程中断路由表。非核43和45还可以包括用于动态再编程中断路由表的控制逻辑。
典型的多处理器或多核平台通常包括中断路由表逻辑来把外部中断路由到处理器目的地。中断路由表逻辑的动态再编程能力实现CPU迁移的从引出处理器到备用处理器的外部中断的再路由(re-routing)。这种中断路由再编程功能可以在芯片组或处理器的非核级实现,并且可通过芯片组寄存器和处理器的非核寄存器暴露给迁移管理软件。用于这种通信的接口可以称作中断迁移接口。在一个实施例中,中断迁移接口可以用固件API实现。
操作***50包括控制逻辑来在迁移操作期间停止(stop)或暂停(pause)包括中断事务的处理器和设备活动。具体地说,操作***50通过冻结操作***线程调度器以及使处理器进入空闲状态来停止或暂停处理器活动,操作***50通过停止包括DMA和中断事务的设备功能来停止或暂停设备活动。在一个实施例中,操作***使用或多或少常规的睡眠(sleep)功能性(如,***休眠(hibernation))来暂停处理器和设备活动。
CPU迁移管理器62用于指示操作***50在CPU迁移之前暂停处理器和设备活动的接口可以称作***暂停接口。在一个实施例中,***暂停接口可以用或多或少常规的高级配置和电源接口(ACPI)通知机制来实现,该机制可以直接从平台固件58调用。关于ACPI的另外的细节可以从日期为2006年10月10日的3.0b版本的高级配置和电源接口规范获得,所述规范可在www.acpi.info/spec.htm上得到。备选的实现方式可以定义新的操作***API,以允许应用程序或设备驱动器来初始化该操作***需求。
如上所述,CPU迁移管理器62管理CPU迁移操作的流程。这个软件组件的一个例子还可以与带外(out-of-band)平台管理软件堆栈相互作用。如下面更详细的描述,当CPU迁移管理器62正驱动CPU迁移流程时,该CPU迁移管理器62调用不可写状态迁移接口(NWSMI)、中断迁移接口以及***暂停接口,并且可以与交换控制器45和49、与中断再编程器31以及与操作***50相互作用。
图2描述了用于在图1的处理***中支持处理器的运行时间迁移的一示例过程。在处理***20被启动并且被配置为使用CPU 22作为活动或主处理器而使用CPU23作为备用处理器之后,图示的过程开始。
框110描述了CPU迁移管理器62例如响应检测到CPU 22中的故障CPU组件来确定需要CPU迁移。一旦作出CPU迁移的决定,CPU迁移管理器62就指示操作***50通过***暂停接口来暂停或停止所有处理器和设备活动。如框120所示,响应来自CPU迁移管理器62的请求,操作***50冻结操作***调度器并使***上的所有处理器进入空闲状态。操作***50还使所有设备进入不活动状态,从而禁用设备中断事务。该步骤保证CPU迁移管理器62能够在引出和备用处理器之间安全地交换CPU的状态。该步骤还阻止任何处理器产生处理器间(inter-processor)中断(IPI),并且该步骤阻止设备在迁移期间产生外部中断。
如框124所示,在操作***50冻结处理器和设备活动之后,CPU迁移管理器62将引出处理器的体系结构和可能的机器专有CPU状态(包括需要被传送的可写和不可写处理器状态)的内容保存到未分页的存储位置(memory location)。然而,在可选实施例中,可选存储范围(例如,高速缓冲存储器、非易失性(NV)RAM等)可以用于状态数据的临时存储。
如框126所述,CPU迁移管理器62然后在线并唤起(bring up)备用处理器23,以准备将CPU状态从引出处理器22交换到备用处理器23。与框126关联的操作可包括将备用处理器23初始化到已知状态,包括在平台固件58的协助下初始化机器专有寄存器的状态。在一备选实施例中,CPU迁移管理器可以在保存引出处理器的CPU状态之前唤起备用处理器。
备用处理器23在线之后,CPU迁移管理器62然后通过恢复之前保存的引出处理器22的可写CPU状态,将CPU状态的体系结构上可写的内容交换到备用处理器23中,如框128所示。另外,如框130所示,CPU迁移管理器62为处理器23调用NWSMI,以指示交换控制器49将所保存的状态加载到备用处理器23中。响应那个请求,交换控制器49将之前从引出处理器22保存的不可写体系结构的CPU状态加载到备用处理器23中,如框132所示。由于这些是不可写的,因此交换控制器49可能需要提供特殊接口来修改不可写的CPU状态。在一个实施例中,这个接口的实现可以使用处理器23中的MSR来访问并修改不可写的处理器CPU状态。
然后,如框134所示,CPU迁移管理器62使用中断迁移接口来指示中断再编程器31和非核47,以修改芯片组34和处理器23中的中断路由表逻辑。响应那个请求,中断再编程器31和非核47动态再编程必要的路由表,以将外部中断正确指引到备用处理器23,如框136所描述的。如框138所示,存储器迁移管理器62然后在平台固件58的协助下使引出处理器22离线(off-line)。
如框140所示,CPU迁移管理器62然后通过***暂停接口通知操作***50关于CPU迁移流程的完成。在一个实施例中,这个接口的实现可以使用ACPI通知机制。在另一个实施例中,CPU迁移管理器可以仅使用操作***API来与操作***相接口。响应不暂停或恢复请求,操作***50激活(activate)包括外部中断事务的设备并解冻操作***调度器,以开始利用备用处理器23,如框142所示。
图3描述了用于在图1的处理***中支持存储器模块的运行时间迁移的一示例过程。在处理***20被启动并被配置为使用存储器模块26A作为活动或主存储器模块及使用存储器模块26B作为备用存储器模块之后,图示的过程开始。框210描述存储器迁移管理器64例如响应检测到存储器模块26A出故障来确定需要存储器迁移。
如图1所示,存储控制器33包括镜像模块35。在各种实施例中,镜像模块可以被配置为只对写进行镜像,或对读和写进行镜像。在一些实施例中,存储控制器可以使用常规镜像模块来支持在使用操作***协助的存储器迁移解决方案中的存储器镜像。在一些实施例中,存储控制器和/或其它组件可以集成到CPU中。
镜像模块35的镜像复制方式可以通过对***软件(例如,操作***50)的接口来被启用或禁用。该接口可被称作镜像方式选择接口。在一个实施例中,镜像方式选择接口使用存储器或I/O映射(mapped)存储设备寄存器来实现。在另一个实施例中,镜像方式选择接口可以通过不同的方式来实现,例如通过抽象到较高级接口,例如ACPI方法或固件API。
当启用镜像复制方式时,备用存储器模块被激活并且对于每个读操作,将存储器内容从引出存储器模块转发到备用存储器模块。同样,当启用镜像复制方式时,每个写转到引出和备用存储器模块这两者。一旦备用存储器模块已接收到必要数据,则镜像复制方式禁用,引出存储器模块被停用(deactive),并且存储器解码器被再编程,以使存储器写和读直接转到备用存储器模块。
在备选实施例中,可以使用其它镜像技术。例如,一个实施例可以包括基于写复制的复制硬件,另一个实施例可以使用硬件来完全自动化复制功能而无需使用任何软件。
在该示例实施例中,操作***50也参与存储器迁移过程。例如,操作***50可以解除分页存储器范围的存储器使用并且可为需要迁移的存储器范围提供存储器读操作。一实施方式可以选择利用设备驱动器模块例如存储器驱动器54的协助来实现这种操作***功能,如图1所示。
如图3的框212所指出的,一旦作出存储器迁移决定,存储器迁移管理器64就通知操作***50关于存储器迁移的需要,并指定需要被迁移的存储器范围(例如,驻留在引出存储器模块26A上的存储器范围)。在一个实施例中,存储器迁移管理器利用APIC机制来通知操作***关于存储器迁移的需要并且传达需要被迁移的存储器范围。为了此目的,另一个实施方式可以定义在存储器迁移管理器和操作***之间的API。
操作***50然后确定所指定的存储器范围的哪些实际上需要被迁移,哪些存储器范围能由操作***、设备驱动器以及应用程序来完全解除使用,如框214所示。例如,操作***50可以解除空闲存储池(free memory pool)页范围和不脏的(non-dirty)可分页(page-able)存储器范围的使用以减少需要被迁移的数据量。在一个实施例中,操作***50通过将这样的逻辑实现到它的存储器管理器的虚拟存储器管理算法中来解除这种使用。例如,在该示例实施例中,操作***50具有用于维护数据库的存储器管理器,以了解什么存储器范围是空闲待分配的(空闲存储池页范围)以及什么存储器范围已经复制了磁盘上的内容(不脏的可分页存储器范围)。通过检查该数据库,操作***50能够确定哪些存储器范围没有存储内容要保护(preserve)且不需要被迁移。
如框216所描述的,操作***50然后可以调用镜像方式选择接口来激活存储控制器33中镜像模块35的镜像复制方式功能。存储控制器33然后激活备用存储器模块26B并且启用镜像模块35的代码模块,以便将存储内容从引出存储器模块26A转发到备用存储器模块26B。如框220所示,操作***50然后选择性地读取具有需要从引出存储器模块26A复制到备用存储器模块26B的数据的存储器范围。然而,对于具有内部高速缓存的处理器,从镜像模块的读取操作可能不必须检测已经被高速缓存的数据。因此,高速缓存刷新操作可以在上述的读操作之前被使用,以使必要的存储数据对于镜像模块是可见的。
作为备选的方案,如果镜像配置不同时镜像存储器读和写,而只镜像写,则操作***可能需要执行由存储器写操作跟随的存储器读。更具体地说,操作***可能需要利用原子的(atomic)读和写指令,以避免可以同时访问相同存储器地址的代理(例如,CPU或DMA)的竞态条件(race condition)。或者,停止或暂停用于处理器迁移的处理器和设备活动的控制逻辑能够用来消除这种竞态条件。为本公开的目的,“访问”存储器意为从存储器读出或写入存储器。
再参照图3的实施例,如框222所描述的,在操作***已读取必要存储位置以引起镜像模块35迁移在那些存储器范围中的数据之后,操作***50调用镜像方式选择接口,以通知存储控制器33关于存储器迁移操作已经完成。如框224所示,存储控制器33然后停用存储器镜像复制方式。存储控制器33然后再编程存储器解码器以使存储器写和读直接转到备用存储器模块,如框226所示。存储控制器33还禁用引出存储器模块26A,如框228所示。
引出存储器模块26A然后能够被离线、取出,并可能被替换。存储器使用然后可以由存储器迁移管理器64迁移回新的存储器模块。
因此,CPU和存储器模块在具有紧缩包装的操作***的处理***中可以被替换而无需执行***关闭。而且,运行时间CPU和存储器模块替换能够波支持而不需要开发具有新操作***API的新设备驱动器和应用程序。因此,平台不需要失去对现有设备驱动器和应用程序的向后兼容性。
另外,平台能够在不使用完全存储器镜像条件下提供运行时间存储器模块替换。完全存储器镜像是需要全部存储器模块始终与镜像存储器模块配对的一个高成本的方法。完全镜像还可能不利地影响存储器性能。
根据本文中描述和说明的原理和示例实施例,会认识到所述的实施例可在不背离这样的原理的前提下在安排和细节方面进行修改。同样,虽然前述的讨论集中于特定实施例,但是其它配置也是可预期的。虽然本文中使用例如“在一个实施例中”、“在另一个实施例中”或类似的表达,但是这些短语意在一般地引用实施例的可能性,而不是意在将发明限于特定实施例配置。如本文中使用的,这些术语可以引用可与其它实施例结合的相同或不同的实施例。
类似地,虽然已针对按特定顺序执行的特定操作描述了示例过程,但是大量的修改可以应用到那些过程以得到本发明的大量备选实施例。例如,备选实施例可以包括使用少于所有公开的操作的过程、使用附加操作的过程、按不同顺序使用相同操作的过程以及在其中本文中所公开的各个操作被结合、再分或以其它方式更改的过程。
本发明的备选实施例还包括用于执行本发明的操作的机器可访问介质编码指令。这样的实施例也可以称作程序产品。这样的机器可访问介质可包括但不限制于,存储介质,例如软盘、硬盘、CD-ROM、ROM和RAM;以及由机器或设备生产或形成的物品的其它可检测的安排。指令还可以用于分布式环境,并可以本地和/或远程地存储,以便由单个或多个处理器机器访问。
还应理解,本文中所述的硬件和软件组件代表相当独立的功能元件,以便每一个元件能够充分独立于其它元件来设计、构造或更新。在备选实施例中,许多组件可以实现为硬件、软件或硬件和软件的结合,以便提供本文中所描述和说明的功能性。用于执行本发明的操作的硬件、软件或硬件和软件的结合也可以称作逻辑或控制逻辑。
由于可以容易地从本文中所述实施例得到的多种有用变换(permutation),因此该详细的描述仅旨在示例说明,而不应被认为是对本发明范围的限制。因此,本发明所要求的是落入以下权利要求的范围和精神内的所有实现方式以及所有这样的实现方式的等同方式。

Claims (19)

1.一种用于在运行时间中切换到备用处理器的方法,所述方法包括:
确定处理***中活动处理器的执行应被迁移;
在确定所述活动处理器的执行应被迁移之后,暂停处理***中的操作***(OS)调度器,暂停处理***中的至少一个设备,并使所述活动处理器进入空闲状态;
将状态数据从所述活动处理器中的可写和基本上不可写的存储器保存到所述活动处理器外的存储器;
起动所述处理***中的备用处理器;
将所保存的状态数据从所述活动处理器的可写存储器加载到所述备用处理器;
将所保存的状态数据从所述活动处理器的基本上不可写的存储器加载到所述备用处理器;
对所述处理***的中断路由表逻辑进行再编程,以将外部中断指引到所述备用处理器;
使所述活动处理器离线;
恢复所述设备;以及
恢复所述操作***调度器。
2.根据权利要求1的方法,其中,确定所述活动处理器的执行应被迁移的操作由所述处理***中的***固件来执行。
3.根据权利要求2的方法,还包括:
响应确定所述活动处理器的执行应被迁移,从所述***固件向所述操作***发送暂停请求。
4.根据权利要求3的方法,还包括:
在所述操作***处,从所述***固件接收恢复请求;以及
响应从所述***固件接收所述恢复请求,恢复所述设备。
5.根据权利要求3的方法,还包括:
在将所述状态数据从所述活动处理器的基本上不可写的存储器加载到所述备用处理器之前,使所述处理***中的所有活动处理器进入空闲状态,并暂停所述处理***中的所有设备。
6.根据权利要求1的方法,其中,从所述活动处理器中的可写和基本上不可写的存储器保存状态数据的操作在所述活动处理器进入所述空闲状态之后执行。
7.根据权利要求1的方法,其中,对所述处理***的中断路由表逻辑进行再编程的操作包括:
对在所述处理***的芯片组中的中断路由表逻辑进行再编程;以及
对所述备用处理器的非核中的中断路由表逻辑进行再编程。
8.根据权利要求1的方法,还包括:
在恢复所述操作***调度器之后,将线程分派给所述备用处理器来执行。
9.一种能够在运行时间中切换到备用处理器的处理***,所述处理***包括:
第一处理器,用作可操作来执行操作***(OS)的活动处理器;
第二处理器,用作备用处理器;
至少一个设备;
数据存储装置;
一条或多条通信路径,与第一处理器、第二处理器、所述设备和所述数据存储装置通信;
至少部分存储在所述数据存储装置中的控制逻辑,所述控制逻辑可操作来执行的操作包括:
确定所述活动处理器的执行应被迁移;
在确定所述活动处理器的执行应被迁移之后,暂停所述操作***中的调度器,暂停所述设备,并使所述活动处理器进入空闲状态;
将状态数据从所述活动处理器中的可写和基本上不可写的存储器保存到所述活动处理器外的存储器;
起动所述备用处理器;
将所保存的状态数据从所述活动处理器的可写存储器加载到所述备用处理器;
将所保存的状态数据从所述活动处理器的基本上不可写的存储器加载到所述备用处理器;
对所述处理***的中断路由表逻辑进行再编程,以将外部中断指引到所述备用处理器;
使所述活动处理器离线;
解除暂停所述设备;以及
解除暂停所述操作***调度器。
10.根据权利要求9的处理***,还包括:
在恢复所述操作***调度器之后,所述操作***调度器可操作来把线程分派给所述备用处理器来执行。
11.根据权利要求9的处理***,其中,所述控制逻辑的至少一部分包括***固件。
12.根据权利要求9的处理***,还包括控制逻辑,所述控制逻辑可操作来执行的操作包括:
响应确定所述活动处理器的执行应被迁移,向所述操作***发送暂停请求。
13.根据权利要求9的处理***,还包括控制逻辑,所述控制逻辑可操作来执行的操作包括:
在所述活动处理器进入空闲状态之后保存所述状态数据。
14.根据权利要求9的处理***,还包括控制逻辑,所述控制逻辑可操作来执行的操作包括:
在将所述状态数据从所述活动处理器的基本上不可写的存储器加载到所述备用处理器之前,使所述处理***中的所有活动处理器进入空闲状态,并暂停所述处理***中的所有设备。
15.根据权利要求9的处理***,还包括:
芯片组,与至少一条所述通信路径通信,所述芯片组包含中断路由表逻辑;以及
所述备用处理器中的非核,所述非核包含中断路由表逻辑;
控制逻辑,通过对所述芯片组中的中断路由表逻辑和所述备用处理器的非核中的中断路由表逻辑进行再编程,来对所述处理***的中断路由表逻辑进行再编程以将外部中断指引到所述备用处理器。
16.一种用于在运行时间中切换到备用处理器的装置,包括:
确定所述活动处理器的执行应被迁移的部件;
在确定所述活动处理器的执行应被迁移之后,暂停处理***中的操作***(OS)调度器,暂停所述处理***中的至少一个设备,并使所述活动处理器进入空闲状态的部件;
将状态数据从所述活动处理器中的可写和基本上不可写的存储器保存到所述活动处理器外的存储器的部件;
起动所述备用处理器的部件;
将所保存的状态数据从所述活动处理器的可写存储器加载到所述备用处理器的部件;
将所保存的状态数据从所述活动处理器的基本上不可写的存储器加载到所述备用处理器的部件;
对所述处理***的中断路由表逻辑进行再编程,以将外部中断指引到所述备用处理器的部件;
使所述活动处理器离线的部件;
恢复所述设备的部件;
恢复所述操作***调度器的部件;以及
将线程分派给所述备用处理器来执行的部件。
17.根据权利要求16的装置,还包括,响应确定所述活动处理器的执行应被迁移而向所述操作***发送暂停请求的部件。
18.根据权利要求16的装置,还包括,在所述活动处理器进入空闲状态之后使所述处理***保存所述状态数据的部件。
19.根据权利要求16的装置,还包括,使所述处理***对所述处理***的中断路由表逻辑进行再编程以将外部中断指引到所述备用处理器的部件,该部件包括:(a)对所述处理***的芯片组中的中断路由表逻辑进行再编程的部件,以及(b)对所述备用处理器的非核中的中断路由表逻辑进行再编程的部件。
CN2008102103488A 2007-06-30 2008-06-30 在操作***协助下实现运行时间处理器迁移的方法和装置 Expired - Fee Related CN101364189B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/772,155 US8296768B2 (en) 2007-06-30 2007-06-30 Method and apparatus to enable runtime processor migration with operating system assistance
US11/772155 2007-06-30

Publications (2)

Publication Number Publication Date
CN101364189A CN101364189A (zh) 2009-02-11
CN101364189B true CN101364189B (zh) 2012-06-27

Family

ID=39734965

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008102103488A Expired - Fee Related CN101364189B (zh) 2007-06-30 2008-06-30 在操作***协助下实现运行时间处理器迁移的方法和装置

Country Status (5)

Country Link
US (1) US8296768B2 (zh)
EP (1) EP2009551B1 (zh)
CN (1) CN101364189B (zh)
AT (1) ATE459047T1 (zh)
DE (1) DE602008000690D1 (zh)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008176360A (ja) * 2007-01-16 2008-07-31 Renesas Technology Corp マルチプロセッサシステム
KR100901286B1 (ko) 2008-12-23 2009-06-09 어울림정보기술주식회사 다중 코어 프로세서에서의 부하 변화에 따른 실시간 프로세스 동적 할당 시스템 및 그 방법
CN101504618B (zh) * 2009-02-26 2011-04-27 浙江大学 面向多核处理器的实时线程迁移方法
US8332854B2 (en) * 2009-05-19 2012-12-11 Microsoft Corporation Virtualized thread scheduling for hardware thread optimization based on hardware resource parameter summaries of instruction blocks in execution groups
CN102043670A (zh) * 2009-10-22 2011-05-04 系微股份有限公司 计算机切换不同操作***的方法
TW201222254A (en) * 2010-11-26 2012-06-01 Inventec Corp Method for protecting data in damaged memory cells by dynamically switching memory mode
US20130007768A1 (en) * 2011-07-02 2013-01-03 Ramakrishna Saripalli Atomic operations on multi-socket platforms
US10331801B2 (en) * 2011-09-23 2019-06-25 Open Invention Network, Llc System for live-migration and automated recovery of applications in a distributed system
GB2495079A (en) 2011-09-23 2013-04-03 Hybrid Logic Ltd Live migration of applications and file systems in a distributed system
US10311027B2 (en) 2011-09-23 2019-06-04 Open Invention Network, Llc System for live-migration and automated recovery of applications in a distributed system
US8799710B2 (en) * 2012-06-28 2014-08-05 International Business Machines Corporation 3-D stacked multiprocessor structures and methods to enable reliable operation of processors at speeds above specified limits
JP6029737B2 (ja) * 2013-02-15 2016-11-24 三菱電機株式会社 制御装置
KR102052964B1 (ko) 2013-03-12 2019-12-06 삼성전자 주식회사 컴퓨팅 스케줄링 방법 및 시스템
US9449714B2 (en) * 2013-08-14 2016-09-20 Advantest Corporation Flexible interrupt generation mechanism
CN105009086B (zh) * 2014-03-10 2019-01-18 华为技术有限公司 一种实现处理器切换的方法、计算机和切换装置
CN103984908B (zh) * 2014-05-05 2017-03-08 上海新储集成电路有限公司 一种南桥芯片及其应用方法
FR3028066A1 (fr) * 2014-11-04 2016-05-06 Commissariat Energie Atomique Procede et dispositif de tolerance aux fautes sur des composants electroniques
CN104506440B (zh) * 2014-12-26 2017-12-26 成都致云科技有限公司 路由器的数据包发送方法和路由表修改方法
PL3079066T3 (pl) * 2015-04-10 2018-01-31 Politechnika Lodzka System modułów elektronicznych o redundantnej konfiguracji
US9910700B2 (en) * 2015-08-26 2018-03-06 Netapp, Inc. Migration between CPU cores
US10459759B2 (en) 2015-08-26 2019-10-29 Netapp, Inc. Migration between CPU cores
US10042720B2 (en) 2016-02-22 2018-08-07 International Business Machines Corporation Live partition mobility with I/O migration
US10042723B2 (en) 2016-02-23 2018-08-07 International Business Machines Corporation Failover of a virtual function exposed by an SR-IOV adapter
US10002018B2 (en) 2016-02-23 2018-06-19 International Business Machines Corporation Migrating single root I/O virtualization adapter configurations in a computing system
US10025584B2 (en) 2016-02-29 2018-07-17 International Business Machines Corporation Firmware management of SR-IOV adapters
US20170300101A1 (en) * 2016-04-14 2017-10-19 Advanced Micro Devices, Inc. Redirecting messages from idle compute units of a processor
US9715469B1 (en) * 2016-10-21 2017-07-25 International Business Machines Corporation Migrating interrupts from a source I/O adapter of a source computing system to a destination I/O adapter of a destination computing system
US9720863B1 (en) 2016-10-21 2017-08-01 International Business Machines Corporation Migrating MMIO from a source I/O adapter of a source computing system to a destination I/O adapter of a destination computing system
US9720862B1 (en) 2016-10-21 2017-08-01 International Business Machines Corporation Migrating interrupts from a source I/O adapter of a computing system to a destination I/O adapter of the computing system
US10346345B2 (en) * 2017-05-26 2019-07-09 Microsoft Technology Licensing, Llc Core mapping
US10587575B2 (en) 2017-05-26 2020-03-10 Microsoft Technology Licensing, Llc Subsystem firewalls
US10353815B2 (en) 2017-05-26 2019-07-16 Microsoft Technology Licensing, Llc Data security for multiple banks of memory
CN115328065A (zh) * 2022-09-16 2022-11-11 中国核动力研究设计院 一种应用于工业控制***的控制单元功能自动迁移的方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6061711A (en) * 1996-08-19 2000-05-09 Samsung Electronics, Inc. Efficient context saving and restoring in a multi-tasking computing system environment
CN1490722A (zh) * 2003-09-19 2004-04-21 清华大学 基于PowerPC处理器结构的分级任务切换方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0441087B1 (en) * 1990-02-08 1995-08-16 International Business Machines Corporation Checkpointing mechanism for fault-tolerant systems
DE4309532C2 (de) * 1992-03-25 1996-10-31 Intel Corp Verfahren zum Sichern einer Systemabbildung eines Computersystems auf einer permanenten Speichereinrichtung sowie ein Computersystem
US6424988B2 (en) 1997-02-19 2002-07-23 Unisys Corporation Multicomputer system
US6622259B1 (en) * 2000-07-14 2003-09-16 International Business Machines Corporation Non-disruptive migration of coordinator services in a distributed computer system
US7392302B2 (en) * 2002-02-21 2008-06-24 Bea Systems, Inc. Systems and methods for automated service migration
US7251746B2 (en) * 2004-01-21 2007-07-31 International Business Machines Corporation Autonomous fail-over to hot-spare processor using SMI
US7480643B2 (en) * 2005-12-22 2009-01-20 International Business Machines Corporation System and method for migrating databases
US7721049B2 (en) * 2006-03-27 2010-05-18 Kabuhsiki Kaisha Toshiba Disk drive write method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6061711A (en) * 1996-08-19 2000-05-09 Samsung Electronics, Inc. Efficient context saving and restoring in a multi-tasking computing system environment
CN1490722A (zh) * 2003-09-19 2004-04-21 清华大学 基于PowerPC处理器结构的分级任务切换方法

Also Published As

Publication number Publication date
DE602008000690D1 (de) 2010-04-08
EP2009551B1 (en) 2010-02-24
CN101364189A (zh) 2009-02-11
ATE459047T1 (de) 2010-03-15
US20090007121A1 (en) 2009-01-01
US8296768B2 (en) 2012-10-23
EP2009551A1 (en) 2008-12-31

Similar Documents

Publication Publication Date Title
CN101364189B (zh) 在操作***协助下实现运行时间处理器迁移的方法和装置
CN101320314B (zh) 用于快速改变数据处理***的功率状态的方法和设备
US9684545B2 (en) Distributed and continuous computing in a fabric environment
US7827551B2 (en) Real-time threading service for partitioned multiprocessor systems
US20090006793A1 (en) Method And Apparatus To Enable Runtime Memory Migration With Operating System Assistance
KR101574403B1 (ko) 결합된 가상 그래픽 장치
CN101449240B (zh) 在运行中的操作***下启动***管理程序
RU2532708C2 (ru) Способ и устройство для осуществления операции ввода/вывода в среде виртуализации
US20150261952A1 (en) Service partition virtualization system and method having a secure platform
US8255594B2 (en) Handling legacy BIOS services for mass storage devices using systems management interrupts with or without waiting for data transferred to mass storage devices
US20110113426A1 (en) Apparatuses for switching the running of a virtual machine between multiple computer devices belonging to the same computer platform and the associated switching methods
CN102804143A (zh) 中断虚拟化
US10289564B2 (en) Computer and memory region management method
CN102799483B (zh) 一种用于转换操作***运行环境的方法和装置
CN102141928A (zh) 虚拟环境下的数据处理方法、***以及***的部署方法
EP3701373B1 (en) Virtualization operations for directly assigned devices
KR20140117594A (ko) 멀티-환경 컴퓨팅 시스템 내의 자원 사용의 최적화
CN113656076A (zh) 一种基于硬件复用通道的bios启动方法及装置
US7386647B2 (en) System and method for processing an interrupt in a processor supporting multithread execution
CN116107931A (zh) 虚拟化***和方法
Im et al. On-demand virtualization for live migration in bare metal cloud
US20240036881A1 (en) Heterogeneous compute domains with an embedded operating system in an information handling system
CN101091168B (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
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120627

Termination date: 20140630

EXPY Termination of patent right or utility model