首页> 中国专利> 用于替换核心系统硬件的驱动程序模型

用于替换核心系统硬件的驱动程序模型

摘要

公开了用于替换分区单元的各装置和方法。公开了基于指定多个回调的驱动程序模型的通用和平台专用驱动程序。这些驱动程序使得能够替换分区单元而不必针对每一平台重新编译计算设备的固件和/或软件。该多个回调提供对在操作系统服务不可用时安全使用的多个功能的访问。该多个回调包括,但不限于,初始化、转储和转移处理器状态回调。这些方法使用这些驱动程序来替换分区单元。较佳地,分区单元使用利用平台专用能力的平台专用分区单元替换(PUR)驱动程序来替换。

著录项

  • 公开/公告号CN101553791A

    专利类型发明专利

  • 公开/公告日2009-10-07

    原文格式PDF

  • 申请/专利权人 微软公司;

    申请/专利号CN200780042958.5

  • 申请日2007-11-20

  • 分类号G06F12/06(20060101);

  • 代理机构31100 上海专利商标事务所有限公司;

  • 代理人顾嘉运;钱静芳

  • 地址 美国华盛顿州

  • 入库时间 2023-12-17 22:44:28

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-05-27

    专利权的转移 IPC(主分类):G06F12/06 变更前: 变更后: 登记生效日:20150508 申请日:20071120

    专利申请权、专利权的转移

  • 2013-03-13

    授权

    授权

  • 2009-12-02

    实质审查的生效

    实质审查的生效

  • 2009-10-07

    公开

    公开

说明书

背景

微处理器是能够为诸如台式计算机、膝上型计算机、服务器计算机、蜂窝 电话、激光打印机等计算设备执行处理和控制功能的电子设备。通常,微处理 器包括小型塑料或陶瓷封装,其包含并保护包括复杂的集成电路的一小片半导 体材料。连接到集成电路的引线被附连到从封装伸出的引脚,从而允许该集成 电路连接到其它电子设备和电路。微处理器通常被插入到或以其它方式附连到 包含其它电子设备的电路板。

虽然微处理器集成电路通常只包括一个计算单元,即一个处理器,但在微 处理器集成电路中可能包括多个处理器。通常被称为“核”的多个处理器被包 括在同一片半导体材料中并连接到微处理器封装引脚。具有多个核增加微处理 器的计算能力。例如,具有四个核的微处理器可提供几乎与四个单核微处理器 等量的计算能力。

在传统计算设备中已越来越多地使用多个微处理器和多核微处理器。传统 计算设备只能够运行操作系统的一个实例。即使是包含多核微处理器、多个微 处理器或多个多核微处理器的传统计算设备也只能够运行操作系统的一个实 例。然而,利用多核微处理器所提供的增加的计算能力允许用较少的计算设备 来执行先前由多个计算设备来执行的计算功能。

例如,服务器是连接到网络的、向连接到该网络的其它实体提供服务或一 组服务的计算设备。包括32个传统计算设备的服务器,即,32路(32way) 服务器,可由各自具有四个核的八个微处理器组成。进一步考虑该概念,如果 每一单独的核都比32个计算设备中的一个强大8倍,则该32路服务器的能 力可由该四核微处理器来提供。这一四核服务器的一明显的优点是计算资源冗 余与传统服务器所提供的相比更承担得起。此外,减少微处理器的数量降低 服务器的成本,减少为服务器供电所需的能量以及服务器所需的维护量。

使用“分区”来更好地利用多核微处理器的计算能力是可能的。分区是计 算设备中能够运行操作系统的独立实例(即,局部操作系统)的一组电可隔离 电子设备,例如,处理器、存储器等。可分区计算设备是可被分成各分区并由 此能够运行多个局部操作系统的计算设备。可分区服务器是作为可分区计算设 备并由此能够运行多个局部操作系统的服务器。可分区服务器的分区也可被称 为“逻辑服务器”。即,对于网络上的其它实体而言,逻辑服务器表现为独立 的服务器,即使它不是。还可能将多个服务器(逻辑或其他类型)组装成“服 务器群集”。服务器群集是如提供服务或一组服务的单元那样工作的多个服务 器。

使用多核微处理器的优点正引导“服务器合并”的趋势。服务器合并是用 较少的服务器(例如,一个服务器)来替换多个服务器(例如,服务群集中的) 的过程。替换多个服务器的服务器通常包含等于或超过该多个服务器的能力的 计算能力。虽然降低了成本,减少了能量和维护,但服务器合并具有孤注一掷 的后果。服务器合并可能增加服务器故障的影响。例如,如果惯于在多个服务 器上运行的多个应用程序全都在同一服务器上运行,并且该服务器发生故障, 则影响可能影响到所有应用程序。在最差的情况下,这意味着应用程序停机时 间。为针对这一影响进行保护,许多高端服务器(即,具有大量计算能力的服 务器)将其能力的一部分应用于可靠性特征。

一种这样的可靠性特征是“故障切换”能力。故障切换是第一实体较佳地 在该第一实体完全发生故障之前将该第一实体所包含的信息传递到类似的第 二实体上的能力。已经开发了供传统服务器(即,基于传统计算设备的服务器) 以受控和有序的方式来执行故障切换以确保在从发生故障的服务器转换到替 换服务器期间没有数据丢失并且没有正在运行的进程被中断的技术。

为创建与传统服务器一样稳健和可靠的多核微处理器服务器,在处理器级 操作的类似技术是有用的。较佳地,这些技术能够在多个“平台”上运行。平 台是提供较高级软件在其上操作并且其他硬件、固件和软件可被添加到其中的 框架的硬件、固件和软件的组合。

概述

提供本概述以便以简化的形式介绍将在以下详细描述中进一步描述的一 些概念。本概述并不旨在标识所要求保护的主题的关键特征,也不旨在用于帮 助确定所要求保护的主题的范围。

公开了用于替换计算设备和驱动程序中的分区单元的驱动程序模型以及 使用基于该驱动程序模型的驱动程序的方法。该驱动程序模型采用多个回调来 访问在操作系统服务不可用时安全使用的多个功能。该多个回调包括,但不限 于,初始化、转储(memory transfer)和转移处理器状态回调。

使用驱动程序允许计算设备替换分区单元而不必针对特定平台重新编译 该计算设备的服务处理器(SP)固件和/或局部操作系统软件。较佳地,分区 单元使用基于驱动程序模型的平台专用分区单元替换(PUR)驱动程序来替换。

在一个说明性实现中,在初始化期间,分区的局部操作系统:注册可以是 通用或平台专用的PUR驱动程序;加载该PUR驱动程序;执行初始化回调; 以及从该PUR驱动程序接收上下文信息(即,上下文)。在被动迁移阶段期 间,局部操作系统定址(map)发生故障的存储器块并对每一个存储器块执行 转储回调。PUR驱动程序使用计算设备的平台专用硬件(例如,服务处理器) 来较佳地以对该计算设备的平台优化的方式来转移存储内容。在主动迁移阶段 期间,计算设备被静止并且局部操作系统定址发生故障的块并对每一个存储器 块和上下文执行转储回调。SP使用驱动程序来转移存储内容。回调使用SP来 原子地重定址(remap)存储器块并且取消对计算设备的静止。在清理阶段期 间,SP使用移除回调来移除发生故障的分区单元并且局部操作系统移除PUR 驱动程序。

附图说明

当结合附图参考以下详细描述时,可以更容易领会并更好地理解本发明的 上述方面和许多附加的优点,附图中:

图1是能够支持分区单元替换的示例性计算设备的框图;

图2是包含多个分区单元以及无关联的一个分区单元的示例性分区的框 图;

图3是图2所示的、被重新配置成包括先前无关联的分区单元的示例性分 区的框图;

图4是示例性分区单元的框图;

图5是示例性发生故障的存储器块和示例性替换存储器块的框图;

图6A-E包括用于使用基于驱动程序模型的驱动程序来替换分区单元的示 例性过程的功能流程图。

详细描述

服务器是连接到网络的、向例如计算设备等连接到该网络的其它实体提供 服务或一组服务的计算设备。例如,网页服务器提供响应于网页请求来返回网 页的服务。其它示例性服务器是为特定用户返回电子邮件消息的电子邮件服务 器、返回来自视频归档的视频剪辑的视频服务器等。示例性服务器包含微处理 器、存储器控制器以及由该存储器控制器控制的存储器块。存储器控制器以及 由该存储器控制器控制的存储器块通常被称为单元,即存储单元。

本领域的技术人员可以理解,存储器块是可以例如由起始地址和大小来指 定的连续的存储器段。存储器块可从一个或多个存储器页中形成。存储器页是 从主存储器复制到大容量存储中(例如,复制到盘上)并且按需从大容量存储 重新加载回到主存储器中的固定大小的存储器段。将存储器块中的页复制到大 容量存储被称为“页调出”存储器。将存储器块中的页从大容量存储重新加载 回到主存储器中被称为“页调入”存储器。一般而言,在主存储器和大容量存 储之间转移存储器页被称为“分页”。存储器控制器以及由该存储器控制器控 制的存储器块通常被称为单元,即存储单元。

服务器还可以包含其他微处理器、存储器控制器、存储器块以及诸如中断 处理器等其它电子设备。因此,只包含微处理器和存储单元的服务器应被解释 为是示例性的而非限制性的。

如同许多类型的计算设备一样,服务器的操作由被称为操作系统的软件程 序来控制。传统计算设备只能够运行操作系统的一个实例。因此,传统服务器 (即,基于一个或多个传统计算设备的服务器)执行操作系统的副本(即,该 操作系统的实例)中所包含的指令。例如,包括32个传统计算设备的服务器 (即,32路服务器)可由八个微处理器组成,每一个微处理器都具有四个核并 且仍运行一个操作系统。减少微处理器的数量降低服务器的成本,减少为服务 器供电所需的能量以及服务器所需的维护量。

分区使得更好地利用多核微处理器的计算能力成为可能。分区是计算设 备中能够运行操作系统的独立实例(即,局部操作系统)的一组电可隔离 电子设备,例如,处理器、存储器等。可分区计算设备是可被分成各分区并 且由此能够运行多个局部操作系统的计算设备。可分区服务器是作为可分区计 算设备并由此能够运行多个局部操作系统的服务器。可分区服务器的分区也可 被称为“逻辑服务器”。因此,一个可分区服务器可包含多个逻辑服务器。多 个服务器(逻辑或其它类型)可被组装成如提供服务或一组服务的单元那样工 作的“服务器群集”。

较佳地,分区是动态的。即,分区单元在对服务器提供的服务具有极小影 响或没有影响的情况下被分配给分区或从这些分区中移除。能够被分区的服务 器是可分区服务器。包括可分区服务器的服务器系统(即,系统)是可分区系 统。可分区系统提供了被分配给分区的分区单元和电子设备的数量和配置 方面的灵活性,并使得支持“服务器合并”更容易并且更经济。

服务器合并是用较少的服务器或可能甚至只用一个服务器来替换多个服 务器的过程。作为服务器合并的结果的示例性服务器通常包含等于或超过该服 务器所替换的多个服务器的能力的计算能力。服务器合并可能增加服务器故障 的影响。例如,想象惯于在多个服务器上运行的多个应用程序全都在该一个服 务器上运行。如果该服务器发生故障,则影响可能影响到所有应用程序并甚至 使应用程序停机。

传统服务器通过将服务器的计算能力的一部分应用于诸如“故障切换”能 力等可靠性特征来这对这一影响进行保护。已经开发了供传统服务器以受控 和有序的方式来执行故障切换以确保在从发生故障的服务器转换到替换服 务器期间没有数据丢失并且没有正在运行的进程被中断的技术。因为传统服 务器通过网络彼此连接并因此不是紧密地绑定在一起,所以工作被分为小片断 并跨服务器共享,即,被分组化。这使得替换发生故障的服务器变得容易,因 为发生故障的服务器的工作分组可以在故障切换期间重新路由。注意,为了实 现故障切换,必须存在不止一个可用的传统服务器。即,发生故障的传统服务 器需要能够接受来自该发生故障的传统服务器的数据的另一类似的传统服务 器。

因为可分区服务器可包含能够比通过网络绑定在一起的传统服务器更容 易地通信的多个逻辑服务器,所以可分区服务器具有比一组传统服务器更容易 且更经济地提供可靠性的潜力。用于使用可分区服务器中的分区来操作的受控 且有序的故障切换的过程帮助实现可分区服务器可提供的可靠性。

通过在需要故障切换时通知每一个高级软件应用程序来使得可分区服务 器更加可靠是不切实际的。使高级软件应用程序能够响应这一通知将需要修改 每一个应用程序的计算机代码以适应故障切换。即使通知应用程序也可能不 足以在没有用于替换正在运行的服务器的一部分的机制的情况下提供故障 切换。相反,在故障切换中只涉及最底层软件并且允许较上层软件(例如,应 用程序)如同未发生硬件变化那样工作是更加实际且有利的。

有序、低级、可分区服务器故障切换的实现涉及全局管理实体以及一个或 多个局部操作系统。全局管理实体的示例是服务处理器(SP)和主板管理控制 器(BMC)。SP是管理诸如存储器控制器和微处理器等附连到电路板或主板 的电子设备的专用微处理器或微控制器。BMC也是嵌在主板上的专用微控制 器。除管理电子设备之外,BMC监视来自内置到计算系统中的传感器的输入, 以报告诸如温度、冷却风扇速度、供电模式、操作系统状态等参数并对其作出 响应。其它电子设备可履行全局管理实体的角色。因此,SP或BMC作为全局 管理实体的使用应被解释为是示例性的而非限制性的。

局部操作系统是在一个分区上运行的操作系统的实例。分区单元被分配给 特定分区以确保该分区单元中的设备无法与其它分区中的设备共享,从而确保 故障将对于单个分区隔离。这一分区单元可指示哪些物理地址是由给定存储 器控制器来服务的,并由此将这些物理存储器地址映射到存储器控制器以及包 含该存储器控制器的物理分区单元。引导并操作分区可能需要不止一个分区单 元。未使用的或发生故障的分区单元可被电隔离。电隔离分区单元类似于从一 组传统服务器中移除服务器且优点在于分区单元可被动态地重新分配给不同 分区。

在以上讨论中,除非另外注明,否则分区单元包括单个核和单个存储单元。 然而,分区单元可包括不止一个核、存储单元、中断处理器和/或提供计算服务 和/或支持的其它设备。因此,对包括核和存储器控制器的分区单元的使用应被 解释为是示例性的而非限制性的。管理(例如,添加或替换)可分区服务器中 的分区单元允许以受控且有序的方式来执行故障切换以确保该可分区服务器 与传统服务器一样稳健和可靠。

用于实现能够支持分区以及分区单元添加和/或替换的可分区服务器的示 例性计算设备由图1所示的框图来示出。图1所示的示例性计算设备100包括 服务处理器(SP)102,其连接到存储SP固件104和路由表106的存储器。较 佳地,SP固件104是独立于操作系统的。因此,SP固件104不是操作系统而 是独立于操作系统的系统管理应用程序的库。通常,系统管理应用程序提供命 令和命令集、命令行界面、可以是基于web的图形界面和/或网络管理协议界 面等。计算设备100还包括连接到存储器块A 110的处理器A 108、连接到存 储器块B 114的处理器B 112、连接到存储器块C 118的处理器C 116、以及连 接到存储器块D 122的处理器D 120。处理器108、112、116和120中的每一 个都包含被指定为0、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供电。例如,如 果SP 102被BMC替换,则BMC可以与环境电路130和电源132进行通信并 更精确地对其进行控制。

如图1所示并在以上描述的的示例性计算设备100等计算设备支持分区单 元的替换。分区单元的替换可以通过将图2所示的框图与图3所示的框图进行 比较来理解。图2和图3所示的两个框图包括相同的四个分区单元。每一个分 区单元都包括处理器和存储器块:处理器A 202,其连接到存储器块204;处 理器B 206,其连接到存储器块208;处理器C 210,其连接到存储器块212; 以及处理器D 214,其连接到存储器块216。虽然图2和图3中的框图示出了 相同的四个分区单元,但图2所示的分区200a与图3所示的分区200b相比包 括一组不同的分区单元。

图2所示的分区200a包括:处理器A 202和存储器块204;处理器B 206 和存储器块208;以及处理器C 210和存储器块212。在图2中,包括处理器D 214和存储器块216的分区单元未包括在分区200a中。与图2所示的分区200a 相比,图3所示的分区200b已被改变成包括一组不同的分区单元,即,一组 不同的处理器和存储器块。图3所示的分区200b包括:处理器B 206和存储 器块208;处理器C 210和存储器块212;以及处理器D 214和存储器块216。 在图3中,包括处理器A 202和存储器块204的分区单元未被包括在分区200b 中,然而包括处理器D 214和存储器块216的分区单元被包括在图2所示的分 区200a中。实际上,包括处理器D 214和存储器块216的分区单元替换包括 处理器A 202和存储器块204的分区单元。这一替换在例如处理器A 202和/ 或存储器块204发生故障的情况下是合乎需要的。

虽然诸如处理器A 202和存储器块204等单个处理器和单个存储器块可构 成分区单元,但分区单元可具有其它形式。具有不同形式的示例性分区单元的 详细视图在图4中示出。在图4A中,如同图1一样,示例性分区单元400包 括连接到存储器控制器404的处理器402,其包含四个核:0、1、2和3,存储 器控制器404连接到两个存储器块,即,存储器块A 406和存储器块B 410。 处理器402与控制存储器块A 406和存储器块B 410的存储器控制器404进行 通信。其他分区单元可包含表示除了处理器、存储器控制器和存储器块之 外的物理设备的其他逻辑设备,或者可只包含单个处理器或单个存储器控 制器。因此,分区单元400应被解释为是示例性的而非限制性的。

典型分区单元中的逻辑设备能够向局部操作系统通知设备的状态。作为替 换或除此之外,控制分区单元的局部操作系统可使用预测分析来评估逻辑设备 的状态并确定逻辑设备是否可能发生故障并由此可以是供替换的候选。虽然诸 如系统管理员等人可作为日常维护的一部分来检查设备状态,但使得硬件自己 向局部操作系统通知即将发生的故障是优选的。在某些情况下,将处理器从一 个模型升级到另一个模型或向系统添加处理器和/或存储器是合乎需要的。虽然 系统管理员可执行这些功能,但通过使用显式编程的指令或由利用分区、分区 单元和硬件的能力来报告状态的周期性定时指令来自动化这样的替换和添加 是优选的。

诸如图4所示的分区单元400等分区单元可出于各种原因而发生故障。例 如,分区单元可能由于诸如图4所示的处理器402等处理器发生故障而发生故 障。分区单元也可能由于诸如图4所示的存储器块406等存储器块发生故障而 发生故障。当处理器、存储器块或分区单元中的其他项目发生故障时,期望替 换发生故障的项目。虽然上述讨论集中于检测并替换发生故障的存储器块,但 此处所描述的技术可应用于检测并替换分区单元中的其他发生故障的项目。因 此,发生故障的存储器块的检测和替换应被解释为是示例性的而非限制性的。

如果一存储器块发生故障,则用等效存储器块来替换该存储器块是优选 的。示例性发生故障的存储器块和等效示例性替换存储器块在图5中示出。在 图5中,发生故障的存储器块500包括一组存储器单元504,其包含数据,例 如,数字1、2、3和4。该组存储器单元504中的存储器单元可以使用局部物 理地址502来引用并且也可使用全局物理地址506来引用。局部物理地址502 使用地址1000和1001,而全局物理地址506使用地址5和6。发生故障的存 储器块500可由替换存储器块510来替换。替换存储器块510包括一组存储器 单元514,其能够包含来自发生故障的存储器块500的数据,即,数字1、2、 3和4。如同发生故障的存储器块一样,替换存储器块514中的存储器单元组 514中的存储器单元可使用局部物理地址512来引用,并且也可使用全局物理 地址516来引用。局部物理地址512使用地址2000和2001,而全局物理地址 516使用地址7和8。在典型的替换序列中,发生故障的存储器块500的存储 器单元组504中的数据被复制到替换存储器块510的存储单元器组514中。发 生故障的存储器块500的局部物理地址502(即,1000和1001)被重新映射到 替换存储器块510的局部物理地址512。在替换分区单元时,执行存储器块的 “原子”更新(即,替换)是优选的。在存储器块的原子更新期间,如果访问 正在更新的存储器块,则独占地使用发生故障的存储器块的地址或者独占地使 用替换存储器块的地址。即,对存储器单元504的数据访问是从局部物理地址 502或者局部物理地址512独占地做出的。

较佳地,全局管理实体使得局部操作系统能够原子地替换分区单元的存储 单元中的存储器块。可使用“OS”驱动程序(即,局部操作系统中可用的驱动 程序)来为分区单元替换提供某一级别的支持。对于特定存储器替换功能而言, 全局管理实体能够使用固件和OS驱动程序。如将在以下详细描述的,在存储 器替换过程期间固件和OS驱动程序有时无法运行。因此,在此期间,全局管 理实体无法依赖OS驱动程序来执行替换存储器块所需的特定功能。为了执行 固件和OS驱动程序无法执行的存储器替换功能,需要被设计成在此期间运行 的驱动程序。另外,OS驱动程序可能无法执行在存储器替换过程期间所需的 每一个功能。例如,目标存储器与备用存储器的最终对换(此时备用分区单元 采用目标分区单元的物理地址)是平台专用操作。该最终对换是在局部操作系 统的域之外执行的硬件配置,并由此无法由OS驱动程序来执行。

因为全局管理实体和局部操作系统各自具有其自己的存储器空间,所以需 要全局管理实体与局部操作系统之间的传达数据的道路,即,数据管道。特殊 设计的驱动程序可提供局部操作系统和全局管理实体之间的数据管道,从而使 得该驱动程序能够在整个存储器替换过程中操作并由此支持分区单元替换 (PUR)。这一驱动程序的示例是PUR驱动程序。较佳地,PUR驱动程序基 于PUR驱动程序模型以抽象出存储器替换功能的细节。本领域的技术人员可 以理解,使用基于驱动程序模型的驱动程序使得替换软件和/或固件(即,用于 执行替换的软件和/或固件)能够在来自多个厂商的设备上正确地运行而不修改 用于执行替换的软件和/或固件。因此,为了支持发生故障的分区单元(例如, 存储器)的替换,使用驱动程序模型来抽象出用备用分区单元来替换发生故障 的分区单元的细节是优选的。

通用PUR驱动程序(即,跨多个平台操作的PUR驱动程序)可提供足够 的性能。通过使用平台专用PUR驱动程序(即,针对特定硬件平台特别编写 的PUR驱动程序),PUR驱动程序模型使得替换软件和/或固件能够在每一个 特定硬件平台上更高效且有效地运行。例如,使用通用PUR驱动程序的转储 可能通过使用逐字节复制技术来复制存储器块来执行。使用平台专用PUR驱 动程序的转储可通过使用直接存储器存取(DMA)技术,或通常比逐字节复 制技术快得多且高效得多的其他平台专用技术来执行。

示例性PUR驱动程序模型包括一组回调例程的规约。实现PUR驱动程序 模型的PUR驱动程序以与针对其编写该PUR驱动程序的平台兼容的方式实现 这些回调例程中的每一个。这一实现允许将PUR驱动程序插入到实现分区单 元替换过程的固件和/或软件中。该固件和/或软件然后使用这些回调例程来最 优地执行由回调来调用的功能。固件和/或软件通过回调来将“上下文”传递给 局部操作系统。上下文是包含关于特定替换实例的信息(即,上下文信息)的 数据结构。局部操作系统本身并不使用上下文。相反,局部操作系统可在其他 回调中将上下文传回到固件和/或驱动程序。以此方式,固件和/或软件和驱动 程序能够确定哪个特定替换实例正被执行。如果只有一个替换操作正在执行, 则这一上下文更加方便,但如果存在同时执行的不止一个替换操作,则这一上 下文变得更有必要。

使用基于驱动程序模型的驱动程序提供了避免为每一个操作系统定制固 件的方式。如本领域的技术人员可以理解的,驱动程序模型定义名称、输入和 输出以及或许回调的其他数据。针对每一平台的驱动程序较佳地以利用每一平 台的能力的方式来实现回调。例如,示例性平台可具有加速将存储内容从一个 块复制到另一个块的过程的特殊转储能力。在针对该平台编写的驱动程序中, 可实现涉及将存储内容从一个存储器块复制到不同的存储器块的回调以便利 用该平台的加速的转储能力。

图6A是提供用于使用基于驱动程序模型的驱动程序来替换分区单元的示 例性过程的顶层视图的功能流程图。该过程包括四个子例程。该过程在第一个 子例程600,即,初始化处开始。回调机制能够在大多数局部操作系统服务不 可用时操作,因为在初始化期间,驱动程序接收在大多数局部操作系统服务不 可用时“安全”使用的一系列功能。安全功能在不通过例如触发中断来干扰替 换过程的情况下执行。局部操作系统可例如使用涉及访问盘驱动器和触发中断 的分页来分配存储器。因此,必须提供以非分页的方式(即,不分页到盘驱动 器)来分配存储器的安全功能。

该过程中的后两个子例程涉及替换存储器的被动和主动迁移。被动和主动 迁移两者的目的是在不关闭或显著地干扰正在运行的高级应用程序的情况下 将尽可能多的信息从发生故障的分区单元转移到替换分区单元。例如,通常多 个存储器块被分配给应用程序。在应用程序修改一存储器块时,设置一标志以 指示该存储器块已被修改。如果存储器块未被修改,则该存储器块的标志保持 未设置。通常,并非所有分配的存储器块都由应用程序来修改。只要存储器块 未被修改,该存储器块的内容就可在不中断应用程序的情况下被动升级到替换 存储器块。

继续参考图6A,在初始化完成之后,控制行进至子例程620,即,被动 迁移。在被动迁移完成之后,控制行进至子例程640,即,主动迁移。在主动 迁移完成之后,控制行进至子例程660,即,清理。在清理完成之后,该过程 结束。

图6B是适于用作图6A所示的初始化子例程600的示例性子例程的功能 流程图。该子例程在框602处开始,在那里局部操作系统(即,OS)注册平台 专用分区单元替换驱动程序(PUR驱动程序)。在框604,OS加载PUR驱动 程序。在框606,OS做出初始化回调。在框608,OS从PUR驱动程序接收上 下文信息。在框608后,该子例程结束。

图6C是适于用作图6A所示的被动迁移子例程620的示例性子例程的功 能流程图。该子例程在框622处开始,在那里局部操作系统(即,OS)定址发 生故障的存储器块。本领域的技术人员和其他人将会认识到,定址发生故障的 存储器块是通过在该OS的存储器块的地图中标记该发生故障的存储块的位置 来标识发生故障的存储器块的过程。如上所述,存储器块可从一个或多个存储 器页中形成。定址发生故障的存储器块也可通过定址形成发生故障的存储器块 的存储器页来实现。因此,定址发生故障的存储器块应被解释为是示例性的而 非限制性的。在框624,OS对每一个块和上下文做出转储回调。在被动迁移期 间,只转移尚未被修改的存储器块,即,其修改标志尚未被设置的存储器块。 转储可通过对形成存储器块的存储器页分页来实现。在框626,PUR驱动程序 使用SP来转移存储内容。在框626后,该子例程结束。对于PUR驱动程序而 言使用其他全局系统硬件(例如,DMA引擎)来转移存储内容也是可能的。 因此,PUR驱动程序对SP的使用应被解释为是示例性的而非限制性的。

图6D是适于用作图6A所示的主动迁移子例程640的示例性子例程的功 能流程图。该子例程在框642处开始,在那里静止系统,例如,局部操作系统。 术语“静止”指的是将系统置于相对非活动状态。当系统被静止时,停止中断 以阻止I/O设备和其他处理器触发中断并防止存储器修改。较佳地,局部操作 系统选择控制处理器,即,将控制静止活动的处理器。控制处理器执行实现系 统静止和主动迁移的一组指令。存在用于选择控制处理器的各种算法。例如, 没有正被替换的、具有最小数字的最不忙碌的处理器可被选为控制处理器。静 止系统提供了用于原子替换的安全环境。

继续参考图6D,在框644,OS定址发生故障的块。在框646,OS对每一 个块和上下文做出转储回调。在框648,SP使用PUR驱动程序来转移存储内 容。回想,如上所述,在被动迁移期间只转移尚未被修改的存储器块,即,其 修改标志尚未被设置的存储器块。在主动迁移期间,转移的存储器块是其余存 储器块,即,其修改标志已被设置的存储器块。较佳地,在被动和主动迁移两 者期间执行的转储使用加速复制存储内容的过程的平台专用转储能力。在框 650,回调使用SP来原子地重定址存储器。在框650处执行的存储器的重定址 使得备用分区单元中的存储器一旦得到响应就响应与原始分区单元中的存储 器相同的局部操作系统物理地址。实际上,执行其中从局部操作系统的观点来 看备用分区单元取代了原始分区单元的“对换”。也可对处理器执行这一对换。

继续参考图6D,在框652,取消对系统的静止。取消对系统的静止基本 上是静止系统的逆操作。即,系统以受控的方式并大致按静止过程的相反次序 恢复到正常活动状态。在框652后,该子例程结束。

图6E是适于用作图6A所示的清理子例程660的示例性子例程的功能流 程图。该子例程在框662处开始,在那里SP使用回调来移除发生故障的分区 单元,即,包含发生故障的存储单元的分区单元。在框664,OS卸载PUR驱 动程序。在框664后,该子例程结束,从而结束了图6A所示的示例性过程。

虽然上述驱动程序模型以及图6A-E所示的并且也在上文中描述的用于使 用该驱动程序模型的过程涉及替换存储器块(即,块),但在驱动程序模型中 具有允许处理器状态转移或用于其他类型的设备(例如,中断控制器)的状态 转移的回调也是可能的。例如,在需要操纵发生故障的处理器的物理APIC ID 的情况下可能需要用于处理器的回调。同样,虽然上述示例性驱动程序模型只 涉及存储器替换,但驱动程序模型还可帮助将存储器添加到分区。

尽管示出和描述了各说明性实施例,但是可以认识到,可在其中作出各种 改变而不背离本发明的精神和范围。例如,虽然以上所示和所述各说明性实施 例涉及检测并替换发生故障的存储器块,但类似的技术也可应用于检测并替换 发生故障的分区单元中的其他类型的发生故障的项目。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号