专利名称:系统处理器的透明替换的制作方法
系统处理器的透明替换
背景
微处理器是能够为诸如台式计算机、膝上型计算机、服务器计算机、蜂窝 电话、激光打印机等计算设备执行处理和控制功能的电子设备。通常,微处理 器包括小型塑料或陶瓷封装,其包含并保护包括复杂的集成电路的一小片半导 体材料。连接到集成电路的引线被附连到从封装伸出的引脚,从而允许该集成 电路连接到其它电子设备和电路。微处理器通常被插入到或以其它方式附连到 包含其它电子设备的电路板。
虽然微处理器集成电路通常只包括一个计算单元,即一个处理器,但在微 处理器集成电路中可能包括多个处理器。通常被称为"核"的多个处理器被包 括在同一片半导体材料中并连接到微处理器封装引脚。具有多个核增加微处理 器的计算能力。例如,具有四个核的微处理器可以提供几乎与四个单核微处理 器等量的计算能力。利用多核微处理器所提供的增加的计算能力允许用较少的 计算设备来执行先前需要多个计算设备来执行的计算功能。
例如,跨32个传统计算设备实现的服务器,g卩,32路(32-way)服务器, 可由各自具有四个核的八个微处理器来实现。进一步考虑该概念,如果每一单 独的核都比32个计算设备中的一个强大8倍,则32路服务器可由具有四个核 的一个微处理器来实现。减少微处理器的数量降低服务器的成本,减少为服务 器供电所需的能量以及服务器所需的维护量。
使用多核微处理器的优点正引导"服务器合并"的趋势。服务器合并是获 得可能各自提供不同服务的多个服务器并在一个物理设备(例如,四核处理器) 上提供所有这些服务的过程。虽然降低了成本,减少了能量和维护,但合并服 务器具有孤注一掷的后果。这对该一个物理设备造成了较大的可靠性负担。如
果服务器在许多单独的计算设备上实现并且一计算设备发生故障,通常存在能 够接管该发生故障的计算设备的其他计算设备。使得一个计算设备接管发生故 障的计算设备的过程被称为"故障切换"。已针对传统服务器配置开发了以受
控和有序的方式执行故障切换以确保在从发生故障的计算设备转换到替换计算设备期间没有数据丢失并且没有正在运行的进程被中断的技术。
为了创建与单核微处理器服务器一样稳健和可靠的多核微处理器服务器,
需要类似的技术。 概述
提供本概述以便以简化的形式介绍将在以下详细描述中进一步描述的一 些概念。本概述并不旨在标识所要求保护的主题的关键特征,也不旨在用于帮 助确定所要求保护的主题的范围。
公开了用替换处理器来透明地替换中断受控处理器。将中断定向到映射到 处理器的标识符的不可变标识符,而不是将中断直接定向到处理器。在将中断 定向到替换处理器之前,将替换处理器的标识符映射到不可变标识符。将中断 定向到该不可变标识符。不可变标识符到处理器的标识符而不是直接到处理器 的映射允许透明地替换处理器。
通过临时限制被定向到将被替换的处理器的中断来用替换处理器来替换 该处理器;激活该替换处理器;将该替换处理器的标识符映射到不可变标识符; 隔离将被替换的处理器;以及使用该不可变标识符到该替换处理器的标识符的 映射来将后续中断定向到该替换处理器。较佳地,诸如1/0 APIC等中介存储 该不可变标识符。
不可变标识符到替换处理器的标识符的映射可用于逻辑模式传递、物理模 式传递或中断映射。
附图简述
当结合附图参考以下详细描述时,可以更容易领会并更好地理解本发明的 上述方面和许多附加的优点,附图中
图1是能够支持分区单元替换的示例性计算设备的框图2是包含其中一个分区单元是无关联的多个分区单元的示例性分区的
框图3是图2所示的、被重新配置成包括先前无关联的分区单元的示例性分 区的框图;图4A是包含处理器、存储器控制器和存储器块的示例性分区单元的框图; 图4B是包含处理器的示例性分区单元的框图; 图5是连接到示例性I/O APIC的多个设备的框图; 图6是用于替换处理器的示例性过程的功能流程图;以及 图7是与示例性中介、示例性发生故障的处理器和示例性替换处理器交互 的示例性设备的框图。
详细描述
在功能上,服务器是网络上提供服务的实体。例如,网页服务器提供响应 于网页请求来返回网页的服务。其他示例性服务器是返回特定用户的电子邮件 消息的电子邮件服务器、返回来自视频归档的视频剪辑的视频服务器等。在物 理上,服务器是通常通过联网或类似协议来连接到其他服务器的独立的、自包 含的计算设备。传统上,存在功能服务器到物理服务器的一对一映射。例如,
电子邮件服务器在一个传统物理服务器上实现。如果传统物理电子邮件服务器 发生故障,则电子邮件服务可通过用另一物理服务器来替换该发生故障的物理 电子邮件服务器来还原。
示例性物理服务器包含微处理器、存储器控制器以及由存储器控制器控制 的存储器块。存储器控制器以及由该存储器控制器控制的存储器块通常被称为 单元,即存储器单元。物理服务器还可包含其他微处理器、存储器控制器、存 储器块、以及诸如中断处理器等其它电子设备。因此,只包含微处理器和/或存 储器单元的物理服务器应被解释为是示例性的而非限制性的。如同许多类型的
计算设备一样,物理服务器的操作由被称为操作系统的软件程序来控制。物理 服务器执行操作系统的副本(即,操作系统的实例)中所包含的指令。
多核微处理器通过将物理服务器上的可用资源划分成包括"分区单元"的 可单独管理的"分区"来使得实现不止一个功能服务器成为可能。分区单元包 括电可隔离微处理器、存储器单元和/或可能其他电子设备,例如,中断处理器。 分区包括一个或多个分区单元。因此,分区是物理服务器内能够运行操作系统 的独立实例(即,局部操作系统)以实现功能服务器的一组电可隔离分区单元 和电子设备。在下文中,除了注明的地方,否则术语"服务器"指的是物理服务器。
较佳地,分区是动态的。即,分区在活动计算设备(即,通电并执行有用 的功能的计算设备)上执行。同样较佳地,分区是透明的。即,分区单元在对 服务器提供的服务具有极小影响或没有影响的情况下被分配给分区或从这些 分区中移除。为了支持动态、透明的分区,分区单元作为完整的单元来管理并 且不细分。例如,分区单元作为一单元被移到分区中。因此,在替换分区单元 时,替换该分区单元中的所有设备。能够被分区的服务器是可分区服务器。包 括可分区服务器的服务器系统(即,系统)是可分区系统。可分区系统提供了 被分配给分区的分区单元和电子设备的数量和配置方面的灵活性。可分区系统 支持"服务器合并"。
服务器合并是获得可能各自提供不同服务的多个传统服务器并在一个可 分区服务器上提供所有这些服务的过程。虽然降低了成本、能量和维护,但合 并服务对可分区服务器造成了较大的可靠性负担。在许多单独的计算设备上实 现的传统服务器通常具有能够接管发生故障的计算设备的备用计算设备,而可 分区服务器需要在别处寻找"备份"计算能力。使得一个计算设备接管发生故 障的计算设备的过程被称为"故障切换"。已针对传统服务器配置开发了以受
控和有序的方式执行故障切换以确保在从发生故障的计算设备转换到替换计 算设备期间没有数据丢失并且没有正在运行的进程被中断的技术。在传统服务 器配置中,发生故障的"计算设备"本身是服务器。因为服务器通过网络彼此 连接并且因而未紧密地绑定在一起,所以工作需要被分成各小片段并跨服务器 共享,即,被分组化。这使得替换发生故障的服务器变得容易,因为可重新路 由发生故障的服务器的工作分组。采用服务器合并,工作的分组化开销就没有 了,但也无法容易地完全移除服务器。为了在可分区服务器上实现与传统服务 器一样稳健和可靠的服务器,需要类似的技术。
通过在需要故障切换时通知每一个高级软件应用程序来使得可分区服务 器更加可靠是不切实际的。使得高级软件应用程序能够响应这一通知需要修改 每一个应用程序的计算机代码以适应故障切换。即使通知应用程序也可能不足 以在没有在传统服务器配置中通常并非必需的用于替换正在运行的服务器的 一部分的机制的情况下提供故障切换。相反,在故障切换中只涉及最底层软件并且允许较上层软件(例如,应用程序)如同未发生硬件变化那样工作是更加 实际且有利的。
有序、低级、可分区服务器故障切换的实现涉及全局管理实体以及一个或 多个局部操作系统。全局管理实体的示例是服务处理器(SP)和主板管理控制
器(BMC) 。 SP是管理诸如存储器控制器和微处理器等附连到电路板或主板 的电子设备的专用微处理器或微控制器。BMC也是嵌在主板上的专用微控制 器。处理管理电子设备之外,BMC监视来自内置到计算系统中的传感器的输 入以报告诸如温度、冷却风扇速度、供电模式、操作系统状态等参数并对其作 出响应。其他电子设备可履行全局管理实体的角色。因此,SP或BMC作为全 局管理实体的使用应被解释为是示例性的而非限制性的。
局部操作系统是在一个分区上运行的操作系统的实例。包含表示一个或多 个物理设备的逻辑设备的分区单元被分配给特定分区以确保这些逻辑设备无 法与其他分区中的逻辑设备共享,从而确保故障将对于单个分区隔离。这一分 区单元可指示哪些物理地址是由给定存储器控制器来服务的,并由此将这些物
理存储器地址映射到存储器控制器以及包含该存储器控制器的物理分区单元。 引导并操作分区可能需要不止一个分区单元。未使用的或发生故障的分区单元 是电隔离的。电隔离分区单元类似于从一组传统服务器中移除服务器,且优点 在于分区单元可被动态地重新分配给不同分区。管理(例如,添加或替换)可
分区服务器中的分区单元允许以受控且有序的方式来执行故障切换以确保该 可分区服务器与传统服务器一样稳健和可靠。
用于实现能够支持分区和分区单元添加和/或替换的可分区服务器的示例 性计算设备100以框图的形式在图1中示出。图1所示的示例性计算设备100 包括服务处理器(SP) 102,其连接到存储SP固件104和路由表106的存储器。 计算设备100还包括连接到存储器块A 110的处理器A 108、连接到存储器块 B114的处理器B112、连接到存储器块C118的处理器C116、以及连接到存 储器块D122的处理器D120。处理器108、 112、 116和120是中断受控处理 器,即,能够响应被定向到处理器的中断信号的处理器。处理器108、 112、 116 和120中的每一个都包含能够响应中断信号的、被指定为O、 1、 2和3的四个 核。由SP固件104控制的SP 102使用路由表106来管理处理器108、 112、 126、120与存储器块110、 114、 118和122。计算设备100还包括I/O (输入/输出) 电路124、大容量存储电路126、通信电路128、环境电路130和电源132。计 算设备100使用I/O电路124来与I/O设备进行通信。计算设备100使用大容 量存储电路126来与内部或外部地连接的大容量存储设备交互。计算设备100 使用通信电路128来通常通过网络与外部设备进行通信。计算设备100使用环 境电路130来控制诸如冷却风扇、热传感器、湿度传感器等环境设备。电源132 为计算设备100供电。例如,如果SP102被BMC替换,则BMC可以与环境 电路130和电源132进行通信并更精确地对其进行控制。
在示出用于实现可分区服务器的示例性计算设备的图1中,示例性分区单 元由处理器A 108和连接到处理器A 108的存储器块A 110来形成。类似地, 其他三个示例性分区单元由处理器B 112和存储器块B 114;处理器C 116和 存储器块C 122;以及处理器D 120和存储器块D 122来形成。这四个示例性 分区单元形成由SP 102来管理的示例性分区。图2和3以图的形式示出了类 似于图1的分区的、具有类似于从图1所示的处理器和存储器块中形成的分区 单元的分区单元的示例性分区。
分区单元的替换可以通过将图2所示的框图与图3所示的框图进行比较来 理解。图2和图3所示的两个框图包括相同的四个分区单元。每一个分区单元 都包括处理器和存储器处理器A202,其连接到存储器204;处理器B206, 其连接到存储器208;处理器C210,其连接到存储器212;以及处理器D214, 其连接到存储器216。如以下参考图4A和4B更完整地讨论的,分区单元可包 括诸如存储器控制器和大存储器块等其他元件或者可不包括除了与处理器相 关联的小存储器之外的存储器。虽然图2和图3中的框图示出了相同的四个分 区单元,但图2所示的分区200a与图3所示的分区200b相比包括一组不同的 分区单元。
图2所示的分区200a包括处理器A 202和存储器204;处理器B 206 和存储器208;以及处理器C210和存储器212。在图2中,包括处理器D214 和存储器216的分区单元未被包括在分区200a中。与图2所示的分区200a相 比,图3所示的分区200b已被改变成包括一组不同的分区单元,S卩, 一组不 同的处理器和存储器块。图3所示的分区200b包括处理器B206和存储器208;处理器C210和存储器212;以及处理器D214和存储器216。在图3中, 包括处理器A 202和存储器204的分区单元未被包括在分区200b中,而包括 处理器D 214和存储器216的分区单元被包括在图2所示的分区200a中。实 际上,包括处理器D 214和存储器216的分区单元替换包括处理器A 202和存 储器204的分区单元。这一替换在例如处理器A 202和/或存储器204发生故障 的情况下将会是合乎需要的。
分区200a和分区200b实际上是相同的分区,这表现在它们具有相同的分 区标识符(ID),不同之处在于分区200a由不同于分区200b的一组分区单元 组成。在转换之前,处理器A、 B和C的分区ID是分区200a/200b的ID。处 理器D的分区ID是不同的或未被设置,S卩,取决于包括处理器D的分区单元 的先前的状态来最初设置(zero)。如将在以下更详细地解释的,不管处理器 D的分区ID,在转换之后处理器D的分区ID变成分区200a/200b的ID。
替换分区单元涉及标识需要替换的硬件设备和替换硬件设备。对于诸如处 理器A202等处理器而言具有标识该处理器的高级可编程中断控制器ID(APIC ID)是常见的。类似地,在分区的局部操作系统中,存储器单元的物理地址唯 一地标识该存储器单元。在诸如分区200a的局部操作系统等分区的局部操作 系统中,处理器的APIC ID唯一地标识该处理器。诸如图1所示的计算设备 100等计算设备可包括多个分区。多个分区中的每一个分区都运行具有该分区 的局部视图的局部操作系统。诸如SP 102等全局管理实体维护全局命名空间, 其包含唯一地标识全局管理实体与其进行通信的分区中的每一个的标识符。
在诸如上述图2和3所示的分区单元替换等分区单元替换期间,全局管理 实体和分区的局部操作系统传输关于分区单元的信息。例如,图1所示的SP 102 (即,全局管理实体)在替换分区单元期间与分区200a的局部操作系统进行 通信。为了使全局管理实体能够将相同分区的分区单元与不同分区的分区单元 区分开来,全局管理实体存储对应于每一个分区单元的唯一标识符。该唯一分 区单元标识符(即,分区单元ID)使得全局管理实体能够访问多个分区中的 每一个中的每一个分区单元的资源,例如,处理器和存储器单元。相反,分区 的局部操作系统只能够访问该分区中所包括的资源。
分区单元ID是分区ID和诸如处理器的APIC ID或存储器单元的物理地址等硬件设备标识符的组合。例如,为了为处理器c创建唯一的全局标识符, 将处理器C的APIC ID与分区200a的分区ID组合。类似地,为了为存储器 212创建唯一的全局标识符,将存储器212的物理地址与分区200a的分区ID 组合。
在替换分区单元时,替换该分区单元中的每一个硬件设备。例如,如图2 和3所示,第一分区单元包括处理器A 202和连接到处理器A 202的存储器 204;而第二分区单元包括处理器D 214和连接到处理器D 214的存储器216。 在该第二分区单元替换该第一分区单元时,处理器D 214替换处理器A 202并 且存储器216替换存储器204。
虽然诸如处理器A 202和存储器204等单个处理器和单个存储器块可构成 分区单元,但分区单元可具有其他形式。具有不同形式的示例性分区单元400 的详细视图在图4A中示出。在图4A中,如同图1一样,示例性分区单元400 包括连接到存储器控制器404的处理器402,其包含四个核0、 1、 2和3,存 储器控制器404连接到两个存储器块,即,存储器块A406和存储器块B410。 处理器402与控制存储器块A 406和存储器块B 410的存储器控制器404进行 通信。分区单元的另一形式在图4B中示出。图4B所示的分区单元450包含 处理器452,和图4A所示的处理器一样,其包括四个核0、 1、 2和3。图4B 所示的分区单元不包括存储器或存储器存储器控制器或存储器块。其他分区单 元可包含本领域的技术人员所公知的、表示除了处理器、存储器控制器和存储 器块以及其各种组合之外的物理设备的其他逻辑设备。因此,分区单元400和 450应被解释为是示例性的而非限制性的。
典型的分区单元中的逻辑设备能够向局部操作系统通知设备的状态。作为 替换或除此之外,控制分区单元的局部操作系统可使用预测分析来评估逻辑设 备的状态并确定逻辑设备是否可能发生故障并由此可以是供替换的候选。虽然 诸如系统管理员等人可作为日常维护的一部分来检查设备状态,但使得硬件自 己向局部操作系统通知即将发生的故障是优选的。在某些情况下,将处理器从 一个型号升级到另一个型号或向系统添加处理器和/或存储器是合乎需要的。虽 然系统管理员可执行这些功能,但通过使用显式编程的指令或由利用分区、分 区单元和硬件的能力来报告状态的周期性定时指令来自动化这样的替换和添加是优选的。
诸如局部操作系统中的进程等在将被替换的处理器上运行的进程必须被
静止(quiesce) , g卩,被置于非活动状态,因为如果该处理器正在使用中,则 该处理器的状态是不断变化的。如果处理器的状态是变化的,则该处理器无法 被安全且可靠地替换,因为该处理器的状态无法被安全且可靠地转移。因此, 将被替换的处理器(例如,发生故障的处理器)执行暂停操作以防止该处理器 的状态改变。本领域的技术人员和其他人可以理解,暂停处理器以防止该处理 器的状态改变的过程被称为"静止"处理器。诸如图1所示的计算设备100等 系统也可通过暂停或停用该系统中的物理设备(例如,处理器A 108、 B 112 等)并暂停执行线程来静止。暂停或停用系统中的设备并暂停执行线程防止设 备和执行线程试图中断将被替换的处理器。
诸如图4B所示的分区单元450等分区单元需要被替换,因为该分区单元 包含发生故障的处理器,例如,处理器452。为了可能使用诸如上述示例性过 程等过程来替换该发生故障的处理器,首先标识该发生故障的处理器是优选 的。标识发生故障或由于其他原因而无法正常工作的处理器的一种方式是使用 高级可编程中断控制器标识符(APICID)。处理器的APICID以逻辑和/或物 理形式存储在处理器中。处理器的逻辑APIC ID通常可通过重新编程包含该 APIC ID的寄存器来在该处理器中改变。处理器的物理APIC ID被硬布线到处 理器中,即,是固定的且不能被改变。操作系统(例如,局部操作系统)使用 APIC ID来例如在各处理器上调度线程并将中断定向到特定处理器。处理器可 以是物理的,例如,图4B所示的处理器452,或逻辑的,例如,处理器452 中的核"0"。
当操作系统启动时,每一个逻辑处理器都被分配唯一的、初始APICID。 该初始APIC ID由物理处理器的ID和该物理处理器中的逻辑处理器的ID组 成。操作系统可使用初始APICID来将中断定向到特定处理器。设备(例如, 盘驱动器)可使用消息告知中断(MSI)来将中断信号直接发送到处理器。设 备中断可改为被路由到中间软件实体(即,中介)中。该设备生成被发送到中 介的信号并且该中介将该信号转发到处理器。示例性传统中介是输入/输出高级 可编程中断控制器(I/O APIC)。图5中的框图示出了示例性I/OAPIC 500的某些功能部分和两个示例性设备,S卩,设备A 502和设备B 504。可能存在更 多功能部分和更多设备。因此,设备和功能部分的数量应被解释为是示例性的 而非限制性的。图5所示的示例性I/OAPIC 500包含重定向表506。重定向表 506包含重定向表条目(RTE)。重定向表506包括与设备A 502相关联的用 于设备A的RTE 508以及与设备B 504相关联的用于设备B的RTE 516。用 于设备A的RTE508包括目的地APICID510、中断向量512和模式(模式描 述符)514。用于设备B的RTE 516包括目的地APIC ID 518、中断向量520 和模式(模式描述符)522。中断向量是包含或引用处理特定类型的中断的代 码的条目。中断可通过连接到I/OAPIC中的特定条目号的专用、物理"导线" (即,物理连接)来传达。
诸如图4B所示的分区单元450等分区单元的替换涉及将发生故障的处理 器的状态转移到旨在替换该发生故障处理器的备用处理器。处理器的状态可包 括,但不限于存储在处理器的外部寄存器中的信息、处理器的内部寄存器和 电路中的信息以及物理APIC ID和逻辑APIC ID。并非所有处理器都能够转移 或改变其物理APIC ID以接受另一物理APIC ID。物理APIC ID可被硬布线在 处理器内部。在这些处理器中,第一处理器的物理APIC ID无法被转移到第二 处理器。因此,该第二处理器无法采用该第一处理器的物理身份。
存在允许处理器的物理APICID唯一,但仍将处理器(例如,发生故障的 处理器)的状态转移到另一处理器(例如,替换处理器)的方法。对于其他实 体而言,这两个处理器将看上去是相同的。由此,例如,被定向到该发生故障 的处理器的中断将被改为定向到该替换处理器。
如上所述,在许多处理器上,APICID (即,物理和/或逻辑APICID)可 被硬布线在处理器内,从而防止该处理器的身份被转移。可以在服务中隐藏处 理器的APICID (即,物理和/或逻辑APICID),而不是直接依赖APIC ID来 标识处理器,这使得向系统的其它部分呈现用于执行涉及APIC ID而不直接引 用该APICID的操作的服务成为可能。在讨论这一服务时,将系统(例如,计 算设备100)分成两个部分,目卩,服务处理器(SP)部分和非SP部分是有帮 助的。SP部分是SP 102、 SP固件104和路由表106的组合。非SP部分包括 计算设备100中的其余项目。为了透明地替换处理器,将非SP部分与处理器的身份隔离开来,从而允许重新映射处理器标识符。重新映射处理器标识符由
可被存储在SP部分(例如,SP固件104)中或存储在其他存储器中并由SP
固件104来指向的一组指令来实现。用于重新映射处理器标识符的一组指令以
下被称为"处理器重新映射服务"。
在处理器重新映射服务中隐藏处理器的APIC ID,而不是直接依赖处理器
的APIC ID来标识该处理器,这使得向非SP部分呈现用于执行涉及APIC ID
而不直接应用该APIC ID的操作的服务成为可能。处理器重新映射服务分配并
接受"不可变"APICID,艮卩,不改变并供非SP部分使用的APICID。处理器
重新映射服务将不可变APIC ID转换成适当的可变APIC ID。因此,在处理器
替换期间,无论可变APICID是物理的还是逻辑的,该可变APICID都可被改
变为指向替换处理器;由此,使处理器替换变得透明。
示例性处理器重新映射服务提供了用于透明地替换处理器的三个过程逻
辑模式传递、物理模式传递和中断重新映射。通过在处理器替换期间使用这三 个过程中的一个,抽象出正在使用哪个处理器的细节并对非SP部分隐藏该细 节。
在逻辑模式传递过程中,系统(例如,计算设备100)被配置成使得非SP 部分仅使用逻辑APIC ID并且不被准许访问或使用物理APIC ID。在逻辑模式 传递过程中,处理器重新映射服务将逻辑APICID用作重新映射寄存器。处理 器的逻辑APICID通常可由低级软件来编程(E卩,改变)。逻辑APICID是可 变的并且可被容易地转移到另一处理器而不依赖于1/0 APIC和MSI。通过将 发生故障的处理器的逻辑APIC ID插入到替换处理器中,该发生故障的处理器 的逻辑APIC ID被映射到该替换处理器。
如果逻辑模式传递在计算设备和/或系统中不可用,则可使用物理模式传 递来透明地替换处理器。物理模式传递涉及中介。示例性中介是I/O APIC中 的重定向表。(参见图5和上述描述)。在物理模式传递中,I/O APIC的重定 向表(即,中介)存储处理器的不可变APICID。不可变APIC ID被映射到处 理器的物理APICID。处理器的不可变APIC ID供非SP部分使用,从而允许 具有不同的物理APIC ID的另一处理器在不干扰非SP部分中的操作的情况下 替换该处理器。在物理模式传递过程中,I/O APIC提供了一接口, SP通过该接口来与I/0 APIC交互。物理模式传递过程利用已经存在的I/O APIC接口来将新物理ID (即,替换处理器的物理ID)编程到I/O APIC的重定向表中。
在中断重新映射过程中,处理器重新映射服务将中断从被替换的处理器 (例如,处理器A 202)重定向到替换处理器(例如,处理器D214)。传统 上,诸如计算设备100的大容量存储电路126中的盘驱动器控制器等生成中断 的设备存储旨在接收中断的处理器(即,目的地处理器)的APICID。如果盘 驱动器控制器是"硬连线的"(即,通过导线、电路板迹线等来物理地连接到 I/OAPIC),则盘驱动器控制器将导线上的电压设为触发I/OAPIC的重定向表 中的编程指令的水平。通常存在连接到I/O APIC的重定向表中的其他条目中 的其他设备。因此,在I/OAPIC的连接处需要用于管理到达的中断的接口。
在逻辑模式传递、物理模式传递和中断重新映射过程中,静止局部操作系 统并转移状态。外部设备不知道物理APICID是尤其重要的。使用逻辑传递是 实现这点的最容易的方式。如果设备是"硬连线的"(即,通过导线、电路板 迹线等来物理地连接到I/O APIC),则该设备将导线上的电压设为触发I/O APIC中的编程的水平。可能存在挂钩到I/OAPIC中的重定向表中的其他条目 中的其他设备。I/O APIC实际上是共享的状态存储库。因此,在I/OAPIC的 连接处需要用于管理共享的状态存储库(即,I/OAPIC)的接口。
用于替换处理器(例如,发生故障的处理器)的示例性过程在图6中示出。 该过程在框600处开始,其中全局管理实体(例如,图1所示的SP 102)确定 一处理器需要被替换。例如,该全局管理实体检测到该处理器产生了指示该处 理器可能发生故障的特定数量和类型的错误并确定该处理器需要被替换。在框 602,全局管理实体选择替换处理器,例如,图2所示的分区200a中的处理器 D 214。替换处理器可根据诸如速度、专用计算特征等选择准则来从多个备用 处理器中选出。从执行较不重要的进程的多个处理器中选择替换处理器也是可 能的。可停止较不重要的进程或将其移至其他处理器以允许将处理器重新用作 替换处理器。为了允许从多个备用处理器和/或其他处理器源中选择替换处理 器,全局管理实体可维护包含用于由该全局管理实体管理的每一个处理器的选 择准则值的处理器数据库。如果一处理器发生故障,则全局管理实体形成数据库查询,该查询在被提交给数据库时从该数据库中检索替换处理器候选的列 表。示例性数据库查询包括发生故障的处理器的身份以及相关选择准则和选择 准则参数的列表。数据库使用查询来检索发生故障的处理器的选择准则值,将 该发生故障的处理器的选择准则值与处理器数据库中的备用、或以其他方式可 能可用的处理器的选择准则值进行比较。具有满足发生故障的处理器的选择准 则值的选择准则值的处理器的身份以列表的形式返回给全局管理实体。全局管 理实体可能使用其他准则来从该列表中选择替换处理器。对于处理器数据库而 言返回随后供全局管理实体使用的仅一个替换处理器的身份也是可能的。使用 选择准则来选择替换处理器的其他方式是可能的。因此,使用处理器数据库来 选择替换处理器应被解释为是示例性的而非限制性的。
在图6中的框604处继续,全局管理实体临时限制到将被替换的处理器的 中断以减少该处理器的活动,由此使得该处理器为替换做好准备。在框606, 激活可能使用上述选择过程来选择的替换处理器。在框608,全局管理实体将 替换处理器的分区ID设为将被替换的处理器的分区ID以便将该替换处理器 "移"至该将被替换的处理器的分区中。例如,将图2所示的处理器D214的 分区ID设为处理器A 202的分区ID以便将处理器D 214移至分区200a (即, 处理器A202的分区)中。在框610,静止局部OS (即,局部操作系统)。本 领域的技术人员可以理解,静止操作系统(例如,局部操作系统)是用于减少 操作系统的活动的过程。在框612,全局管理实体将要替换的处理器的状态转 移到替换处理器。示例性处理器状态在图7中示出并将在稍后在下面描述。在 框614,全局管理实体将替换处理器映射到将被替换的处理器的身份并更新局 部OS的状态以反映该映射。更具体而言,将替换处理器映射到将被替换的处 理器的完整ID (即,分区ID和APICID的组合)并更新局部OS的状态以反 映该映射。在框616,取消对局部OS的静止,g卩,重新激活局部OS。在框 616后,该过程结束。
图7是示出示例性设备如何与示例性中介交互以便将被路由到示例性替 换处理器的信号发送到示例性发生故障的处理器的框图。在图7中,示例性设 备700包含目的地处理器的APIC ID 702。信号720将目的地处理器的APIC ID 702携带至用于重新映射中断的中介722。用于重新映射中断的中介722包含I/O APIC数据结构724。 I/O APIC 724包含目的地处理器的APIC ID 726。设 备700可经由直接信号704或经由信号720通过用于重新映射中断的中介722 来发送诸如发生故障的处理器706等目的地处理器的APIC ID,中介722将转 发的信号728发送到目的地(发生故障的)处理器706。发生故障的处理器706 具有状态714。发生故障的处理器706的状态714是由外部可访问寄存器708、 发生故障的处理器706的内部状态710和局部APIC ID 712来确定的。局部 APIC ID包含物理地址和逻辑地址。虽然描述处理器的状态一般包括外部可访 问寄存器708的状态、发生故障的处理器706的内部状态710和局部APIC ID 712,但发生故障的处理器706的状态还可包括其他元素或者可不包括先前提 到的元素中的一个或多个。因此,描述处理器的状态的状态内容应被解释为是 示例性的而非限制性的。发生故障的处理器706的状态714被转移到或复制到 替换处理器716的状态718。
尽管示出并描述了本发明的优选实施例,但可以认识到,可在其中作出各 种改变而不背离本发明的精神和范围。
权利要求
1.一种在分区计算设备中用替换处理器来透明地替换处理器的方法,所述分区计算设备包含各自包括能够响应中断的处理器的多个分区单元,所述方法包括(a)响应于确定处理器将被替换,选择替换处理器;(b)临时限制被定向到所述将被替换的处理器的中断;(c)激活所述替换处理器;(d)将所述替换处理器的分区ID设为所述将被替换的处理器的分区ID;(e)将所述将被替换的处理器的状态转移到所述替换处理器;以及(f)将所述替换处理器映射到所述将被替换的处理器的标识符。
2. 如权利要求1所述的方法,其特征在于,所述将被替换的处理器的标识 符是存储在中介中的不可变标识符。
3. 如权利要求2所述的方法,其特征在于,所述中介是I/OAPIC。
4. 如权利要求1所述的方法,其特征在于,所述映射使用逻辑模式传递。
5. 如权利要求4所述的方法,其特征在于,所述逻辑模式传递包括-(a) 将所述计算设备配置成使得所述计算设备仅使用逻辑APIC ID;(b) 将所述逻辑APICID用作重新映射寄存器;以及(c) 将所述处理器的逻辑APIC ID插入到所述替换处理器中。
6. 如权利要求1所述的方法,其特征在于,所述映射使用物理模式传递。
7. 如权利要求6所述的方法,其特征在于,所述物理模式传递包括(a) 将处理器的不可变APIC ID存储在中介中;(b) 将所述不可变APICID映射到所述处理器的物理APICID;以及(c) 将所述中断定向到映射到所述处理器的物理APIC ID的不可变APIC ID。
8. 如权利要求7所述的方法,其特征在于,所述中介是I/OAPIC。
9. 如权利要求1所述的方法,其特征在于,所述映射使用中断映射。
10. 如权利要求9所述的方法,其特征在于,中断映射包括将中断从所 述将被替换的处理器重定向到所述替换处理器。
11. 一种在包含至少一个分区的计算设备中的用替换处理器来透明地 替换处理器的方法,所述分区包括多个分区单元,所述分区由分区标识符来标 识,所述分区单元中的每一个都包括部分地由所述分区标识符来标识的处理 器,所述处理器能够响应中断,所述方法包括(a) 响应于确定处理器将被替换,选择替换处理器;(b) 临时限制被定向到所述将被替换的处理器的中断; (C)激活所述替换处理器;(d) 将所述替换处理器的分区ID设为所述将被替换的处理器的分区ID;(e) 将所述将被替换的处理器的状态转移到所述替换处理器;以及(f) 将所述替换处理器映射到所述将被替换的处理器的标识符。
12. 如权利要求11所述的方法,其特征在于,所述分区的操作系统在 所述将被替换的处理器的状态被转移到所述替换处理器之前被静止并在所述 转移后取消静止。
13. 如权利要求ll所述的方法,其特征在于,所述替换处理器的选择、 对被定向到所述将被替换的处理器的中断的临时限制以及所述将被替换的处 理器的状态到所述替换处理器的转移由全局管理实体来执行。
14. 如权利要求11所述的方法,其特征在于,所述映射使用逻辑模式传递。
15. 如权利要求14所述的方法,其特征在于,所述逻辑模式传递包括:(a) 将所述计算设备配置成使得所述计算设备的非全局管理实体仅使 用逻辑APIC ID;(b) 将所述逻辑APICID用作重新映射寄存器;以及(c) 将所述处理器的逻辑APIC ID插入到所述替换处理器中。
16. 如权利要求11所述的方法,其特征在于,所述映射使用物理模式 传递。
17. 如权利要求16所述的方法,其特征在于,所述物理模式传递包括(a) 将处理器的不可变APIC ID存储在中介中;(b) 将所述不可变APICID映射到所述处理器的物理APICID;以及(c) 将所述中断定向到映射到所述处理器的物理APIC ID的不可变 APIC ID。
18. 如权利要求17所述的方法,其特征在于,所述中介是I/OAPIC。
19. 如权利要求ll所述的方法,其特征在于,所述映射使用中断映射。
20. 如权利要求19所述的方法,其特征在于,中断映射包括将中断从 所述将被替换的处理器重定向到所述替换处理器。
全文摘要
公开了一种用于用替换处理器来透明地替换在分区计算设备中接收中断的处理器的方法和装置。该方法包括将中断定向到映射到处理器的标识符的不可变标识符并用替换处理器来替换该处理器。使用诸如I/O APIC等中介来存储该不可变标识符。映射可使用逻辑模式传递、物理模式传递或中断映射。
文档编号G06F9/06GK101542433SQ200780042960
公开日2009年9月23日 申请日期2007年11月20日 优先权日2006年11月21日
发明者A·J·瑞茨, C·阿纳, E·D·沃克, Y·邓 申请人:微软公司