在操作系统协助下实现运行时间处理器迁移的方法和装置的制作方法

文档序号:6469761阅读:128来源:国知局

专利名称::在操作系统协助下实现运行时间处理器迁移的方法和装置的制作方法
技术领域
:本发明一般涉及数据处理领域,尤其是涉朋于支持处理器和/或存储器模块(memoiymodule)的运行时间迁移(runtimemigration)的方法辆目关装置。处理器的运行时间替换(runtimereplacement)和存储器模块的运行时间替换是用于支持可靠性、可用性和服务性(RAS)的高端(high《nd)服务器系统中预想的两个关键创新特征。当处理系统支持处理器和,器才势夹的运行时间替换时,有古tF聿的处理器或賴器4狭能够被替换而无需关闭系统。然而,在具有用于支持这种功能性的专用控制逻4和ogic)的处理系统中,不提#~~些不同的软件组件是不可能实规处理I^NHt器模块的运行时间替换的。例如,专用控制逻辑可能在应用禾踏中、在才辨系统中以絲设备驱动器中需要。当用于计算机系统的所有硬件和软件是由相同的公司构建时,该公司可以说是提供了一种垂直醉决方案(verticalsolution).特别地,为本乂>开的目的,术语"垂直解决方案"表示具有由单个公司自上而下控制的专有(proprietaiy)系统和垂直设备驱动器及应用开发环嫂的高端月良务器。目前少数公司可以构建包括必要的硬件和软件特征以启用处理器和,器模块的运行时间替换的垂厕决方案。这些公司可包括国际商业机器器公司(IBM)、惠普公司(HP)、太阳微系统公司(Sun)及NEC公司(NEC)。然而,这样的垂,决方案生来是专有的并且不能转化为对横向(horizontal)市场。这个问题的横向解决方案需要运行在使用操作系统的标准的高容量服务器上,该操作系统采用用于树平台的标准化接口来设计。为本公开的目的,以用于各种平台的标准化接口为特色的才喿作系统可以称作紧缩包装的(skbkwrapped操作系统。例如,微软公司销售的在Windows商标下的各种操作系统被认为是紧缩錄的辦系统。RedHat公司销售的在Linux商标下的操作系统系统也可以被认为是紧缩包装的操作系统。对于紧缩包装的操作系统,两者与不同的平台协作。因此,紧缩包装的操作系统需要标准化接口,所以驱动器可以由编写操作系统的公司以外的其它方来编写。然而,当数据处理系统或平台使用紧缩包装的才辨系统时,该平台可能不能支持处理器或,器才势A的运行时间替换。与在使用紧缩包装的操作系挑战与传统设备驱动器和应用程序的向后兼容问题有关。
发明内容才財居本发明的第一方面,提供了一补用于运行时间中切换到备用处理器的方法,所述方法包括确定处理系统中活动处理器的扭行应被迁移;在确定所迷活动处理器的扭行应被迁移之后,暂停处理系统中的4喿作系统(OS)调度器,暂停处理系统中的至少一个设备,并使所述活动处理器叙空闲状态;到所述活动处理器外的务賭器;起动所述处理系统中的备用处理器;将所保存的状态数据从所述活动处理器的可写,器加载到所述备用处理器;到所述备用处理器;对所舰理系统的中断路由表逻辑进行再编程,以将外部中断指引到所述备用处理器;使所述活动处理器离线;'随所述设备;以及'ltt所述IHt系统调度器。才財居本发明的第二方面,提供了一种能够^it行时间中切换到备用处理器的处理系统,所述处理系统包括第一处理器,用作可^ft来^/fi^ft系统(OS)的活动处理器;第二处理器,用作备用处理器;至少一^H殳备;数据賴装置;一条或多^it信路径,与第一处理器、第二处理器、所述设备和所述数据賴装置通信;至少部分4^在所述数据,装置中的控制逻辑,所述控制逻辑可才^t来拟亍的辦包括确定所述活动处理器的扭/f于应^皮迁移;在确定所迷活动处理器的扭行应被迁移之后,暂停所述操作系统中的调度器,暂停所述设备,^HW斤i^舌动处理器叙空闲状态;将状态数据从所述活动处理器中的可写和M上不可写的,器4转到所^i舌动处理器外的^t器;^^动所述备用处理器;将所^^的状态数据^^斤述活动处理器的可写,器加载到所述备用处理器;将所保存的状态数据从所述活动处理器的M上不可写的,器加载到所述备用处理器;对所^l理系统的中断路由表逻辑进行再编程,以将外部中断指引到所i^^用处理器;使所述活动处理器离线;解,停所迷设备;以及解除暂停所迷旨系统调度器。才財居本发明的第三方面,提供了一种装置,包括机器可访问性质;以及所述机器可访问介质中的指令,其中,所述指令当被具有活动处理器和存储器用处理器的处理系统执行时,偵所述:理系统执行的,包拾确定所述活动处理器的拍軒应被迁移;在确定所述活动处理器的进行应被迁移之后,暂停所述处理系统中的操作系M(OS)调度器,暂停所舰理系统中的至少一种殳备,使所述活动处理器进入空闲状态;将状态数据从所述活动处理器中的可写和M上不可写的,器到所必舌动处理器外的,器;驱动所使用处理器;将所保存的状态数据所述活动处理器的可写,器加载到所述备用处理器;将所保存的状态数据从所述活动处理器的的基本上不可写的,器加载到所述备用处理器;对所iM理系统的中断磚由表逻辑进行再编程,以将外部中断指引到所述备用处理器;使所述活动处理器离线;恢复所述设备;使所述才辨系统调度器;以及将辦呈分緣所述备用处理器来才踏。根据所附的权利要求、以下一个或多个示例实施例的详细描述对应的附图,本发明的特征和优势将变得显而易见,其中图l是描述示例数据处理环境的框图;以及图2和图3是描述用于支持图1的处理系统中处理器和/或存储器模块的运行时间迁移的示例处理的各个方面的流程图。具体实施方式本公开描述使用处理器、芯片组及储存控制器扩展,以,系统协助的方式来启用处理器和储存器模块的运行时间迁移的一种或多种方法和装置。如本文中所使用的,术语"引出处理H(outgoingprocessor)"指代替换的处理器,术语"备用处理戮spareprocessor)"指将替换引出处理器的处理器。类似地,术语"引出賴器才势夹"指##换的絲器才狭,术语"备用賴器才狭"指替换引出储存器模块的存储器模块。目前,处理器资源通过具有处理器亲和性(processoraffinity)的,系统应用程序接口(API)暴i^i殳备驱动器和应用程序。传统应用程序和驱动器直4勤空制线程调度和中断绑定(binding)以^^]这些处理器资源。而且,当与紧缩包装的辦系统"^工作时,设备驱动器和应用程序育M空制物理页的位置(residency),以1更与设"^相互作用以及"f,l辨系统应用程序接口^!爰冲存储器上^f亍直接^^存JKDMA)l喿作。结果,对于紧缩包装的操作系统来说,没有设备驱动器和应用程序的支持而解斷removeyf封可处理器或务賭器资源;1不可能的。然而,使所有的应用程序和驱动器识别处理器及賴器解除事件可能需要开发新的操作系统应用程序接口以及重写设备驱动器和应用程序。完威这个成果会花费很多年。另外,内在的限制妙碍紧缩包装的才辦系统迁移一些特定的处理器和务賭器资源,尽管存在识别迁移的驱动器和应用程序。一些例子是引"Kbootstrap)处理器和16位DMA目标^ft樹0-lM)。另一个可能的备选方法是创建基于硬件和/或固件的解决方案,该解决方案启用处理器和务賭器迁移而无需操作系统支持,使这样的CPU和存储器解除事件对于辦系统、设备驱动器^用禾踏完絲明。然而,这样的解决方案设计起来非常复杂,并且事实上可能是不能实现的。一部分复杂性涉及以对于辦系统、设备驱动器及应用程序完絲明的方式,将所有体系结构上可见的CPU状态从一个处理雜传送到另一个处理器。另外的复杂性(tansition)从引出处理器重定向到备用处理器。此外,由于迁移过程可能的长等待时间,使处理器迁移对于IH卡系统、设备驱动器絲用禾誘完絲明甚至是不可能的。例如,由于^ft超时问题,长时间地阻止(block)夕卜部中断可能会导致操作系统、设备驱动器及应用程序故障。为了透明的务賭器迁移,完全硬件复制引擎构^MT能会很昂贵,同时对于整个賴器迁移过程,复制,器内容的固件例程可能会导致很长的等待时间。^fil器迁移过程中,这种等待时间可能会^1辨系统和应用禾辨产生可见的性能影响。4^Hf介绍了一种实现处理器和,器模夹的运行时间替换的新方法,用在使用紧缩包装的#^系统的平台中。对于紧缩包装的操作系统市场分割,设备驱动器和应用程序的大量重写似乎是不可接受的建议。本文中所述的特征启用处理器和,器模块的运行时间替换而不需要设备驱动器和应用禾I^的大量重写。在一示例实施例中,平台包括少量处理器和/或平台硬4衬争^r展,而迁移是在^^系统的协助下^M亍的。例如,4^Hf描述用于交换(swap)不可写的体系结构状态的处理器硬件扩展,以賴于重新动态^程中断路由表的芯片组和非核级(uncore-level)扩展。术语"非核"指多核芯片的除了核以外的组^K例如,核之间的互连、总线接口等)。本发明还描述了一种实J贿储器才狭的运行时间替换的新方法,用于4M紧缩包装的^ft系统的平台。4#器迁移在操作系统的协助下执行。例如,迁移可以包括支持4fe^(miiror)复制方式特征的4#控制器扩展的使用,所述特4正例^^^^殳计为支#",H4免像的特征。4#控制器可用于启用从一个摘器^^到另一个賴器模块的选捧性的數椐复制。闺1是描迷示例数据处理环境12的框图。数据处理环境12包括^i緣据处理系统20,所:据处理系统20包括^ft硬件组件80和软件组件82。硬件组件可包括,例如,通过一条或多条系统总线24或其它通信途径或介质在通信上耦合到各个其它组件的两个或两个以上处理器或CPU22、23。如本文中使用的,术语"总线"包括可由多于两个的设备共享的通信路及对点路径。每个CPU可以包括两个或两个以上处理单元或核(core),例如核42、核44、核46及核48。作为备选的方案,处理系统可包括一个或多个具有单个处理核的CPU。处理单元可以被实现为处理核、超线程(HT)技米、或用于同时地或基本同时地执行多个线程的任何其它适合的技术。处理系统20可以至少部分地由来自于常规输入设备的输入控制,所述输入设备例如键盘、诸如鼠标的指示设备等。处理系统20还可以响应从其它处理系统或其它输入资源或信号接收到的指示。处理系统20可以利用对一个或多个远程数据处理系统70的一个或多个连接,例通过网络接口控制器(NIC)32、调制解调器或者其它通信端口或耦合。处理系统可以通过物理的和/或逻辑的网络72相互连接,所述网络例如局域网(LAN)、广域网(WAN)、企业内部互联网、因特网等。涉及网络72的通信以利用各种有线的和/或无线的短禾1^远程载波协议,包括射频(RF)、卫星、微波、电气和电子工程师协会(IEEE)802.11、802.16、802.20、蓝牙、光学、红外线、电缆、激光等。802.11协议也可以称作无线保真度(WiFi)协议。802.16协议也可以称作WiMAX或无线城域网协议。关于WiMAX协议的信息目前可以在groper.ieee.org/groups/802/16/publishedhtml得到。在处理系统20中,处理器22和23可以在通信上耦合到一个或多个易失性数据存储设备,例如随机存取存储器(RAM)26,以及井給到一个或多个非易失性数据存储设备。在该实施例中,非易失性数据存储设备包括闪存27和硬盘驱动器28。在图l的实施例中,RAM26包括多个存储器模块,例如,存储器模块26A和26B。在备选实施例中,不同数目的,器才势丸可以用作RAM,并且多个非易失性存储器设备和/或多个磁盘驱动器可以用作非易失性存储装置(storage)。适当的非易失性存储器设备和/或媒体可包括但不限制于,集成驱动电路(lDE)和小型计算机系统(SCSI)硬盘驱动器、光学,器、磁带、软盘、只读,II(ROM)、记忆棒、数字视盘pVD)、生物学务賭器、相变存储器(PCM)等。如本文中使用的,术语"非易失性存储器"指磁盘驱动器、闪存和当处理系统断电时可以保持数据的任何其它存储组件。更具体地说,术语"非易失性存储器"指当处理系统断电时不旋媒体(rotatingmedia)但仍能够^^数据的存^i殳^(例如,闪存)。本文中使用的术语"闪存"和"ROM,,泛指非易失'^^l器设备,例如可擦可编程只读賴H(EPROM)、电可^^可编程只读,^(EEPROM)、闪速ROM等。处理器22和23还可以在通信Ji^給到附加组件,例如NIC32、视频控制器、IDE控制器、SCSI控制器、通用串行总线(USB)J空制器、输A/输出(1/0)端口、输入设备、输出设M。处理系多A^可以包括芯片组34,该芯片组具有一个或多个桥"t妻器或集线器,例如存储控制器集线器(memorycontrollerhub)33、1/0控制器集线器、PCI^^接ll(rootbridge)等,用于^if信上耦合系统组件。,控制器集线器(MCH)33也可以称作存储控制器(MC)33。例如,一些组件,如MC32,可以实现为具有用于与总线通信的接口(例如,PCl连接器)的适配卡(adaptercard)。作为备选的方案,MC32和/或其它设备可以使用例如可编禾呈或不可编程的逻辑设备或阵列、专用集成电^各(ASIC)、甘1/^计#^、智能卡等组件来实现为紅iy空制器。在絲实施例中,处理系统可以以核、##控制器、賴器才狭等的不同数目和/或组合为特征。如本文中使用的,术语"处理系统"和"数据处理系统"旨在广泛地包括单个机器、或者^it信Ji^給的"^^辦的机器或设备的系统。示例处理系统包括^^限制于,分布式计算系统、超级计#^几、高性能计算系统、计算集辦computingcluster)、大型计算机、小型计算机、客户-服务器系统、个人计^^l(PC)、工作站、服务器、便携计算机、膝上型计算机、平板计^4几(tabletcomputer),个人数字助理(PDA)、电话、手#^备、例如音频和/或视频设备的娱乐设备以及用于处理和/或传送信息的其它设备。本文中所述的本发明的一实施例关于或与例如指令、函数、过程、数据结构、应用禾J^、配置i^等数据关联。当数据^皮机器访问时,机器可以通过M/f亍任务、定义抽fJt据类型或teM^更件上下文和/或^^亍其它梯作来作出响应,如下面更详细的描述。数据可以被##在易失性和/或非易失性数据存储装置中。如本文中^^1的,术语"程序,,似软件组件和构成(construct)的广阔范围,包括应用禾踏、才狭、驱动、例程、"^fl^、方法、i^呈、线禾沐^:件组件的其它类型。jtb^卜,术语"程序"可以用于指完整的编译单元(即,可以被独立编译的指令集)、编译单元的集合、或编译单元的"-^分。因此,术语"程序"可以用于指当由处理系统执行时完成期望的一个操怍或多个旨的^^r指令集合。处理系统20中的程序可以*^软件环境82的组件。例如,数据^ti殳备28和/或闪存27可以包括当被4;U亍时完成树^ft的各种指令集。这样的指令集可以统称作软件。如图l所示,在该示例实施例中,程序或软件组件82可以包括系统固件58、操怍系统50和一个或多个应用程序60。系统固件58可以包括用于管理启动(boot)过程的启动固件,以4操作系统启动代码被调用之后能够"l^亍的运軒时间才势太或指令。系统固件58也可以称作J^4俞A/输出系统(BIOS)58。另外,固件58包括CPU迁移管理软件62和存储器迁移管理软件64。CPU迁移管理软件62也可以称作CPU迁移管理器62。,器迁移管理软件64也可以称作##器迁移管理器64。在图1的实施例中,CPU迁移管理软件62和a器迁移管理软件64实现为固件58的运行时间模块。如以下更详細的描迷,在该示例实施例中,CPU迁移管理器62包^fel空制逻辑来管理CPU迕移操作的整个流程。在该示例实施例中,CPU迁移管理器62运行于最高4"牛M(privilegelevel)(例如,在环O中)。在备选实施例中,CPU迁移管理器可以部分地或完全地在系统固件外实现。例如,控制逻辑可以利用设备驱动器组件来完全在辦系统中实现;控制逻辑可以通it^'J分角色和职责来在固件和操作系统之间进行分离(split);等等。如以下更详细的描述,絲器迁移管理器64包括控制逻辑来管理賴器迁移操作的整+流程。在该示例实施例中,,器迁移管理器64运行于系统固件58内的平台管理:1械的最高4朽午^(例如,在环O中,在系统管理中断(SMI)上下文中等)。在备选实施例中,,器迁移管理器可以部分M完全地在系统固件外实现。例如,控制逻辑可以利用设备驱动器组件来完全在操作系统中实现。作为M的方案,控制逻净4^可以部分驻留在一个或多个应用程序代理中。作为备选的方案,控制逻辑可以通过划分角色和职责来在固^j^才^t系M^间i^f亍分离。在该示例实施例中,处理系统20配置成/fMCPU22作为活动(active)处理器以及CPU23作为备用(spare)或^^(backup)处理器。如上所述,当活动处理器需要被换出(swapout)时,该活动处理器可以称作引出处理器。如上所述,CPU22包括处理核42和处理核44,而CPU23包括处理核46和处理核48。除处理核"卜,CPU22包括非核(uncore)43和交换控制器45。剡以地,CPU23包括非核47和交换控制器49。交换控制器45和49被实现为处理器硬件中的控制逻辑,其允许CPU迁移管理器62将本来常规处埋器中J^上(substantiaUy)不可写的的状态数据^ft在CPU中。例如,CPU迁移管理器62能4M交换控制器45#引出和^>用处理器之间充分交4MiS殳备驱动器和应用程序是可见的不可写的体系结构状态。J^^上不可写的体系结构状态的一实例是JL持x86体系结构的处理器中的初始高级可编程接口控制^(APIC)标识符(ID)状态。^il样的处理器中,初始APICEH直通过^^1CPUID指令是可获取的,其中将EAX寄存器设置为1(EAX=1)。具体地说,如标题为"以Linux'来利用英特尔超^f呈技术的方;^(MethodstoUtilizeIntel'sHyper-ThreadingTechnologywithLinux*)"的文章的第3页所解释的(可在www.intel.com/cd/ids/developer/asmona/eng/20354.htmpage=3上得到)每个逻辑处理器具有唯一的高级可编程接口控制H(APIC)ID。APICID在系统重置时由硬件进行初始赋值并能够稍后由BIOS或操作系统再编程(reprogtam)。在支持HT技术的处理器上,CPUID指*在由BIOS或才辨系统进行任何改变之前为逻辑处理器提供初始APICEX园此,处理器可以实际上务賭两个APICID。一个是"初始APICID",它始终能够用CPUID指令获^(retrieve)。因此,初始APICID被认为;U^上不可写的。操作系统、应用程序及设备驱动^^靠初始APICID值来^;则包"^f亥到封對col^to"package)和^^JJ!]核(thread-to"Core)的关系的CPU拓朴信息,它们通常佳JD该信息来优化软件性能并实现多核许可策s^licensingpolicy》其它APICID,本文中称作"当前APICID",能够"稍后由BIOS或,系统再编程',,如上所述。然而,即使BIOS或才^ft系统能够再编程当前APICID,实际上它不f^皮写入任意值。当前APICID是否能够被写入可以是模型专有的(spec迅c)。当前APICID值还由平台用于执行正确的中断路由,并且改变所述值需要对芯片组或非核上的中断路由表进行再编程。因此,当前APICID应只能由中断再编程樹reprogrammer)和非核来修改,如下面图2中针对块136的更详细描述。例如,英特尔64和IA-32体系结构软件开发者手澌SDM)的巻3A的8.4.6节(^i也APIC)陈述如下在MP系统中,扭APICID"t^皮BIOS和操作系统用作处理器ID。一些处理器允许软件来修改APICID。然而,软^H务改APICID的能力^h理器模型专有的。为此,操怍系统软件应避免写A^^LAPICID寄存器。其它实施例可以包括英特尔Itanium处理器,所i^t理^ft^服务于相同目的以及具有相同限制的;^l也ID(LID)寄存器。在该示例实施例中,交换控制器45和49使为处理器22和23分别更新初始APICID成为可能。例如,交换控制器45可以提供对处理器22中的机器专有寄存H(machinespec迅cregister,MSR)的接口以保持初始APICID值,该值将响应以EAX4^J^亍的CPU1D指令而被报告。在一个实施例中,由交换控制器45和49提供的接口是可由CPU迁移管理器62读和写的。因此,这样的接口可以称作不可读状态迁移接口。CPU迁移管理器可以通过例如由交换控制器45和49提供的接口更新的另外的^^上不可读状态值可以包括^^R艮制于,当前APICID、LID、中断状态、模型专有寄存器(MSR)等。在图1的实施例中,芯片组34包括中断再编程器31。中断再编程器31提M台处理器函tt动态地再编程中断路由表。非核43和45还可以包括用于动态再编程中断路由表的控制逻辑。由到处理器目的地。中断路由表逻辑的动态再编程能力实现CPU迁移的从引出处理器到备用处理器的外部中断的再路由(re-routing)。这种中断路由再编程功能可以在芯片组或处理器的非核级实现,并且可通过芯片组寄存器和处理器的非核寄存器暴^^迁移管理软件。用于这种通信的接口可以称作中断迁移接口。在一个实施例中,中断迁移接口可以用固件API实现。操作系统50包括控制逻辑^迁移操怍期间停止(stop)或暂4f(pause)包括中断事务的处理器^N殳备活动。具妹地说,操作系统50通过冻结操作系统线程调度器以及使处理器进入空闲状态来停iiil暂停处理器活动,操怍系统50通过停止包括DMA和中断事务的设备功能来停止或暂4fi义备活动。在一个实施例中,旨系统"fM或多或少常规的睡^sleep)功能hi(如,系统休目^hibemation))来暂停处理器^ri殳备活动。CPU迁移管理器62用于指示操怍系统50在CPU迁移之前暂停处理器^i殳备活动的接口可以称作系统暂停接口。在一个实施例中,系统暂停接口可以用或多或少常规的高細己置和电源接口(ACPI)通知机制来实现,该机制可以直接从平台固件58调用。关于ACPI的另外的细节可以从日期为2006年10月10日的3.0b;^的高細己置和电源接口规范获得,所itM/范可在www.acpi.info/spec.htm上得到。备选的实现方式可以定义新的操作系统API,以允许应用程序或设备驱动器来初始化该操作系统需求。如上所述,CPU迁移管理器62管理CPU迁移才^t的;^f呈。这个软件组件的一个例子还可以与带外(out-of-band)平台管理软件:t械相互作用。如下面更详细的描述,当CPU迁移管理器62正驱动CPU迁移^^呈时,该CPU迁移管理器62调用不可写状态迁移接口(NWSMI)、中断迁移接口以及系统暂停接口,并且可以与交换控制器45和49、与中断再编程器31以及与M系统50相互作用。图2描述了用于在图1的处理系统中支持处理器的运行时间迁移的一示例过程。在处理系统20被启动并且净颠己置为佳月CPU22作为活动或主处理器而使用CPU23作为备用处理器之后,图示的过程开始。框110描述了CPU迁移管理器62例如响应检测到CPU22中的故障CPU组件来确定需要CPU迁移。一旦作出CPU迁移的决定,CPU迁移管理器62;fW旨示,系统50通过系统暂停接口来暂停或停止所有处理器^i殳备活动。如框120所示,响应来自CPU迁移管理器62的请求,操怍系统50冻结旨系统调度器^f吏系统上的所有处理器^空闲状态。##系统50还使所有设备ii/v不活动状态,从而禁用设备中断事务。该步骤保证CPU迁移管理器62能够在引出和备用处理H^间^^地交换CPU的状态。该步一Wii阻止^f封可处理器产生处理器间(inter-processor)中断(IPI),并且该步骤阻止设备在迁移期间产生外部中断。如框124所示,在操作系统50冻结处理器和设备活动之后,CPU迁移管理器62将引出处理器的体系结构和可能的机器专有CPU状态(包^^要被传送的可写和不可写处理器状态)的内容保存到未分页的存储位置(memorylocation)。然而,在可选实施例中,可选务賭范围(例如,高速緩沖,器、非易失性(NV)RAM等)可以用于状态数梧的临时务賭。如框126所述,CPU迁移管理器62然后在线并p^(bringup)^用处理器23,以准刷寻CPU状态从引出处理器22交换到备用处理器23。与框126关联的操作可包括将备用处理器23初始化到已知状态,包括在平台固件58的协助下初始^^几器专有寄存器的状态。在一辆实施例中,CPU迁移管理器可以在##引出处理器的CPU状态之前p^^用处理器。"^用处理器23在线之后,CPU迁移管理器62然后通过'1^1之前^^的引出处理器22的可写CPU状态,将CPU状态的体系结构上可写的内容交换到备用处理器23中,如框128所示。另外,如框130所示,CPU迁移管理器62为处理器23调用NWSMI,以指示交换控制器49将所保存的状态力口栽到备用处理器23中。响应那个清求,交换控制器49将之前从引出处理器22保存的不可写体系结构的CPU状态加载到备用处理器23中,如框132所示。由于这些^1不可写的,因此交换控制器49可能需要提##殊接口来修改不可写的CPU状态。在一个实施例中,这个接口的实现可以^Jf]处理器23中的MSH来访问并修改不可写的处理器CPU状态。然后,如框134所示,CPU迁移管理器62使用中断迁移接口来指示中断再编程器31和非核47,以修改芯片组34和处理器23中的中断路由表逻辑。响应那个请求,中断再编程器31和非核47动态再编程必要的路由表,以将夕h^中断正确指引到备用处理器23,如框136所描述的。如框138所示,4#器迁移管理器62然后在平台固件58的协助下使引出处理器22离线(off-line》,如框140所示,CPU迁移管理器62然后通过系统暂停接口通知操作系统50关于CPU迁移流程的完成。在一个实施例中,这个接口的实现可以使用ACPI通知机制。在另一个实施例中,CPU迁移管理器可以仅使用操怍系统API来与操作系统相接口。响应不暂停或恢复请求,操怍系统50激活(activate)包括外部中断事务的设备解冻操作系统调度器,以开始利用备用处理器23,如框l42所示。图3描述了用于在图1的处理系统中支持,器才莫块的运行时间迁移的一示例过程。在处理系统20被启动并配置为使用存储器模块26A作为活动或存储器模块及使用存储器模块26B作为备用存储器模块之后,图示的过程开始。框210描述存储器迁移管理器64例如响应检测到存储器模块26A出故障来确定需要存储器迁移。如图1所示,存储控制器33包括镜像模块35。在各种实施例中,镜像模块可以被配置为只对写进行镜像,或对读和写进行镜像。在一些实施例中,存储控制器可以使用常规镜模块来支持在时用操作系统协助的存储器迁移解决方案中的存储器镜像。在一些实施例中,存储控制器和/或其它组件可以集成到CPU中。镜像模块35的镜像复制方式可以通系统软件(例如,操作系统50)的接口来被启用成禁用。该接口可被称作镜像方式选择接口。在一个实施例中,镜像方式接口使用存储器或I/0映射(mapped)存储设备寄存器来实现。在另一个实施例中,镜像方式选择接口可以通过不同的方式来实现,例如通过抽象较高级接口,例如ACPI方法或固件API。当启用镜像复制方式时,备用存储器被激活并且对于每个读操作,将存储器内容引出存储器模块转发到备用存储器模块。同样,当启用镜像复制方式时,每个写转到引出和备用賴器才势A这两者。一旦备用賴器模块已接收到必要数据,则镜像复制方式禁用,引出存储器模块被停用(deactive),并且存储器解码器被再编程,以使賴器写械直接转到备用存储器才狭。在备用实施例中,可以使用其它镇像技术。例如,一个实施例可以包括基于写复制的复制硬件,另一个实施例可以使用硬件来完全自动化复制功能而无需任何软件。在该示例实施例中,梯作系统50也参与存储器迁移过程。例如,操作系统50可以解除分页存储器范围的存储器并且可为需要迁移的存储器范围提供存储器读操作。一实施方式可以选择利用设备驱动器才狭例如賴器驱动器54的协助来实现这种才辨系统功能,如图1所示。如图3的框212所指出的,一旦作出存储器迁移决定,存储器迁移管理器64就通知操作系统50关于,存储器迁移的需要,并指定需要被迁移的存储器范围(例如,驻留在引出存储器模块26A上的存储器范围)。在一个实施例中,存储器迁移警理器利用APIC机制通知操怍系统关于务賭器迁移的需要且传达需要被迁移的存储器范围。为了此目的,另一个实施方式可以定存储器迁移管理器和操怍系统之间的API。操作系统50然后确定所指定的存储器范围的哪些实际上需要被迁移,哪些存賭器范围能由操怍系统、设备驱动器以及应用程序来完全解RH吏用,如框214所示。例如,操作系统50可以解除空闲存储池freememorypool)页范围和不脏的(non-dirty)可分页(page-able)存储器范围的使用以减少需要被迁移的数据量。在一个实施例中,操怍系统50通过将这样的逻辑实现到它的存储器管理器的虚拟存储器管理算法中来解除这种使用。例如,在该示例实施例中,操作系统50具有用于维护数据库的,器管理器,以了解什么,器范围是空闲待分配的(空闲存储池页范围)以及什么务賭器范围已经复制了磁盘上的内對不脏的可分页存储器范围)。通过检查该数据库,操作系统50能够确定哪些务賭器范围没有务賭内容保护(preserve)且不需要被迁移。如框216所描迷的,#^系统50然后可以调用#;像方式选#^妄口活^#控制器33中镜Y斜狭35的镜像复制方式功能。^#控制器33然后激活备用賴器才狭26B并且启用镜4斜狭35的^/射狭,以便将絲内狄引出賴器4缺26A转发到备用絲器才狭26B。如框220所示,才辨系统50然后选棒W也读取具有需要从引出賴器才势夹26A复制到备用賴器才势夹26B的数据的^f诸器范围。然而,对于具有内部高速緩存的处理器,从镜^^^的读取^^可能不必须检测已经被高速缓存的数据。因此,高速緩存刷新操怍可以在上述的读辦之前被使用,以使必要的存储数据对于镜斜^:可见的。作为M的方案,如果镜像配置不同时4^l^f诸器读和写,而只镜像写,则才^t系统可能需^a亍由機器写^ft跟随的絲器读。更^M^地说,操作系统可能需要利用原子的(atomic)读和写指令,以避免可以同时访问相同^H^器地址的代理(例如,CPU或DMA)的竟态糸^Kracecondition).或者,停止或暂停用于处理器迁移的处理器^i殳备活动的控制逻辑能够用来消除这种竟态^^牛。为4^>开的目的,"访问"賴器意为M^t器读出或写入絲器。再参照图3的实施例,如框222所描述的,在操怍系统已读取必要,位置以引起镜4斜势丸35迁移在那些,器范围中的数据^,才辦系统50调用镜^象方式选#^口,以通知^f诸控制器33关于务賭器迁移操怍已经完成。如框224所示,^t控制器33然后停用糊器镜像复制方式。^t控制器33然后再编禾1^器解码器以使,器写M直接转到备用,器模块,如框226所示。^!4空制器33还禁用引出辆器冲狭26A,如框228所示。引出賴器才狭26A然后能够被离线、取出,并可淑皮替换。員器然后可以由务賭器迁移管理器64迁移回新的,器才势夹。因此,CPU和賴器才势A在具有紧縮錄的辦系统的处理系统中可以被替换而无需l^f亍系统关闭。而且,ii行时间CPU和4#器才狭替换能够^iL持而不需要开发具有新操怍系统API的新设备驱动器和应用程序。因此,平台不需要失去对iE贿设备驱动器和应用禾踏的向后兼容性。另外,平台能够在不4,完全^H渚H^像^f牛下提供运行时间賴器模块替换。完全賴纖像是需^^賴器微始终与銜^w器微酉w于的一个高成本的方法。完4^40奴可能不利地影响絲器性能。才財居本文中描述和说明的原理和示例实施例,^i人识到所述的实施例可在不背离这样的原理的前提下在安排和细节方面进^f多改。同样,虽然前述的讨论集中于特定实施例,但是其它配置也是可预期的。虽然本文中使用例如"在一个实施例中"、"在另一个实施例中"或剡以的表达,但是这些短语意在""^:地引用实施例的可能性,而不是意在将发明限于特定实施例配置。如本文中^^]的,这些术语可以引用可与其它实施例结合的相同或不同的实^/f列。刻以地,虽然已针对^#定顺序执行的特定#^描述了示例过程,但是大量的修改可以应用到那些过程以得到本发明的大量备逸实施例。例如,备选实施例可以包括使用少于所有^Hf"的^喿作的it程、佳月附加l喿作的过程、合、再分或以其它方式更夂的过程。编名射旨令。这样的实施例也可以称作*产品。这样的机器可访问介质可包括Y^限制于,^t介质,例如软盘、石嫂、CD-ROM、ROM和RAM;以及由机器或设备生产或形成的物品的其它可检测的安排。指a可以用于分希式环境,并可以^k^V或远禾U44^,以便由单个或多个处理器机器访问。还应理解,本文中所述的硬件和软件组件^Ji目当独立的功育^t件,以便^__个元件能够充分独立于其它元件来设计、构i^更新。在备选实施例中,许多纽件可以实现为硬件、软件或硬件和软件的结合,以便提供本文中所描i^i兌明的功能l"生。用于"^f亍本发明的才辨的硬件、软件iU更件和软件的结合也可以称作逻辑或控制逻辑。由于可以容易地从本文中所述实施例得到的多种有用变换(permutation),因此该详细的描述仅旨在示例说明,而不应^皮认为是对本发明范围的限制。因此,本发明所要求的A^入以下权利要求的范围^f申内的所有实现方式以^S^斤有这样的实现方式的等同方式。权利要求1.—种用于在运行时间中切换到备用处理器的方法,所述方法包括确定处理系统中活动处理器的拙行应被迁移;在确定所述活动处理器的执行应被迁移之后,暂停处理系统中的操作系统(OS)调度器,暂停处理系统中的至少一个设备,并使所述活动处理器进入空闲状态;将状态数据从所述活动处理器中的可写和基本上不可写的存储器保存到所述活动处理器外的存储器;起动所述处理系统中的备用处理器;将所保存的状态数据从所述活动处理器的可写存储器加载到所述备用处理器;将所保存的状态数据从所述活动处理器的基本上不可写的存储器加载到所述备用处理器;对所述处理系统的中断路由表逻辑进行再编程,以将外部中断指引到所述备用处理器;使所述活动处理器离线;恢复所述没备;以及恢复所述操作系统调度器。2.根椐权利要求1的方法,其中,确定所述活动处理器的执行应被迁移的操怍由所迷处理系统中的系统固件来批fr。3.才財居权利要求2的方法,还包括响应确定所述活动处理器的执行应被迁移,从所述系统固件向所述,系^^送暂4fi青求。4.才財居权利要求3的方法,还包括在所述,系统处,从所述系统固件接收恢复请求;以及响应>^斤迷系统固件接》^斤述'1^1请求,恢复所述设备。5.氺財居权利要求3的方法,还包括所述备用处理器之前,使所述处理系统中的所有活动处理器ii^空闲状态,并暂停所i^h理系统中的所有设备。6.才財居权利要求1的方法,其中,从所述活动处理器中的可写和M态^执行。7.才財居权利要求1的方法,其中,对所#理系统的中断路由表逻辑进行再编程的才辨包括对在所^h理系统的芯片组中的中断路由表逻辑进行再编程;以及对所述备用处理器的非核中的中断路由表逻辑进行再编程。8.才財居权利要求1的方法,还包括在恢复所述操作系统调度器之后,将线程分^i^所述备用处理器来执行。9.一种能够在运行时间中切换到备用处理器的处理系统,所述处理系统包括第一处理器,用作可^^来^^^喿怍系统(OS)的活动处理器;笫二处理器,用作备用处理器;至少"HS殳备;数据賴装置;一条或多条通信路径,与第一处理器、第二处理器、所述设备和所述数据賴装置通像至少部分^fil在所述数椐M装置中的控制逻辑,所述控制逻辑可,来拟亍的才辨包括确定所述活动处理器的扭/f亍应^皮迁移;在确定所迷活动处理器的扭行应被迁移之后,暂4亭所述,系统中的调度器,暂停所迷设备,^H吏所必舌动处理器i^v空闲状态;将状态数据从所述活动处理器中的可写和M上不可写的,器JM到所述活动处理器外的,器;起动所述备用处理器;将所^^的状态数据从所述活动处理器的可写,器加载到所述备用处理器;将所保存的状态数据从所述活动处理器的M上不可写的,器加栽到所述备用处理器;对所#理系统的中断路由表逻辑进行再编程,以将外部中断指引到所ii备用处理器;使所iii舌动处理器离线;解除暂停所述设备;以及解除暂停所述才^ft系统调度器。10.根据权利要求9的处理系统,还包括在'ltt所述!Mt系统调度器^,所述#^系统调度器可##来把^#呈分;;M^所述备用处理器来^/f亍。11.根据权利要求9的处理系统,其中,所述控制逻辑的至少-^p分包括系统固件。12.才財居权利要求9的处理系统,还包4^空制逻辑,所述控制逻辑可操作来胁的辦包括响应确定所述活动处理器的才丸^f亍应^皮迁移,向所述操作系统发送暂4W求。13.根据权利要求9的处理系统,还包才封空制逻辑,所述控制逻辑可才喿作来M/f亍的才甜包括在所述活动处理器ii^空闲状态^r保存所述状态数据。14.4財居权利要求9的处理系统,还包括控制逻辑,所述控制逻辑可操作来l^亍的才辨包括在将所述状态数据从所述活动处理器的基本上不可写的M器加栽到所述^"用处理器之前,使所述处理系统中的所有活动处理器iiX空闲状态,并暂停所i^h理系统中的所有设备。15.才財居权利要求9的处理系统,还包括芯片组,与至少一条所iiit信^4圣通信,所述芯片组包含中断路由表逻辑;以及所述备用处理器中的非核,所述非核包含中断路由表逻辑;控制逻辑,通iW所述芯片组中的中断路由表逻辑和所述备用处理器的非核中的中断路由M辑进行再编程,加寸所述处理系统的中断路由表逻辑进杆再编程以将外部中断指引到所述备用处理器。16.—种装置,包括机器可访问介质;以及所i^几器可访问介质中的指令,其中,所述指令当被具有活动处理器和备用处理器的处理系统^f亍时,使所i^:理系^iMf的辦包括确定所述活动处理器的扭行应被迁移;在确定所i^舌动处理器的"l^亍应被迁移^,暂停所*理系统中的操作系M(OS)调度器,智停所舰理系统中的至少"HS殳备,^H吏所述活动处理器i^v空闲状悉;将状态数椐从所述活动处理器中的可写和M上不可写的,器j转到所述活动处理器外的存储器;^4动所it^用处理器;将所保存的状态数据/A;斤述活动处理器的可写,器加载到所述备用处理器;到所述备用处理器;对所述处理系统的中断路由表逻辑进行再编程,以将外部中断指引到所i4^用处理器;^f吏所述活动处理器离线;'随所述设备;'随所述才辨系统调度器;以及将^f呈分^i^所述"^用处理器来#1^亍。17.4艮据权利要求16的装置,其中,所述指令的至少""^p分包括系统固件。18.才財居权利要求16的装置,其中,所述指4^J应确定所述活动处理器的扭/f亍应^f皮迁移而向所i^操作系鍵发送暂4f^求。19.##权利要求16的装置,其中,所述指令在所述活动处理器i^v空闲状态^4吏所*理系统/f^所述状态数据。20.丰財居权利要求16的装置,其中,所述指^H吏所述处理系统通过以下步骤来对所述处理系统的中断路由表逻辑进行再编程以将外部中断指引到所述备用处理器(a)对所狄理系统的芯片组中的中断路由^£辑进行再编程,以#)对所述备用处理器的非核中的中断路由表逻辑进行再编程。全文摘要本发明的名称是“在操作系统协助下实现运行时间处理器迁移的方法和装置”。在用于在运行时间中切换到备用处理器的方法中,处理系统确定活动处理器的执行应被迁移。操作系统(OS)调度器和至少一个设备然后被暂停,并且使活动处理器进入空闲状态。将状态数据从活动处理器中的可写和基本上不可写的存储器加载到备用处理器中。处理系统的中断路由表逻辑被动态再编程,以将外部中断指引到备用处理器。然后使活动处理器离线,设备和操作系统调度器可以被解除暂停或被恢复。然后可将线程分派给备用处理器来执行。描述其它实施例并要求其权益。文档编号G06F9/48GK101364189SQ200810210348公开日2009年2月11日申请日期2008年6月30日优先权日2007年6月30日发明者D·E·科韦利,J·A·瓦加斯,K·亚马达,M·J·库马申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1