首页> 中国专利> 用于在引导一个分区时维持另一个分区的方法和装置

用于在引导一个分区时维持另一个分区的方法和装置

摘要

在具有主分区和隔离分区的处理系统中,主分区在调用主分区的操作系统(OS)引导加载程序之前向隔离分区发出中断。隔离分区然后可进入中断处理程序。隔离分区进入中断处理程序后,该处理系统的一地址线可以被禁用,并且非隔离分区的OS引导加载程序可以被调用。然后该隔离分区可以确定该地址线是否已被重新启用。隔离分区可以继续留在中断处理程序中,直到该地址线被重新启用。还描述和声明了其他实施例。

著录项

  • 公开/公告号CN101283333A

    专利类型发明专利

  • 公开/公告日2008-10-08

    原文格式PDF

  • 申请/专利权人 英特尔公司;

    申请/专利号CN200680037858.9

  • 发明设计人 S·莱维特斯;

    申请日2006-11-09

  • 分类号G06F9/46;

  • 代理机构永新专利商标代理有限公司;

  • 代理人王英

  • 地址 美国加利福尼亚

  • 入库时间 2023-12-17 20:49:36

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2012-07-11

    授权

    授权

  • 2008-12-03

    实质审查的生效

    实质审查的生效

  • 2008-10-08

    公开

    公开

说明书

技术领域

本发明通常涉及数据处理领域,更特别地,涉及在处理系统中支持多 个分区的方法及相关装置。

背景技术

在典型的遗留(legacy)数据处理系统中,固件提供了当系统正加电或已 被重置时、而操作系统被引导(boot)之前对系统进行控制的机器指令。即, 固件控制OS前或引导前的操作。固件也可以控制OS被加载之后的某些 操作,例如用来处理某些硬件事件和/或系统中断的操作。固件可以通过一 组统称作基本输入/输出系统(BIOS)的例程来处理引导前和引导后的操作。 因此BIOS提供了在系统硬件组件与例如OS这样的软件组件之间的接口。

对于本公开来说,术语“固件”被用来表示可以在处理系统引导至OS 之前在该处理系统中执行的软件,可以提供允许OS或其他组件与处理系 统硬件进行交互的运行时服务的软件,以及其他类似类型的软件组件。传 统上,固件通常被存储在非易失性存储器中。不过,最近处理系统已经发 展到了将固件存储在其他类型的存储设备中,或者从其他类型的存储设备 中获得固件。

此外,不久以前,发布了平台固件和例如操作系统这样的上层软件之 间的接口的一种新的模型。该模型称为可扩展固件接口(EFI)。可以从 www.intel.com/technology/efi/main_specification.htm处获得2002年12月1 日的1.10版本的EFI规范。EFI规范定义了一组由底层平台固件提供的标 准接口和结构。这些接口和结构可以用于以下任务,例如加载额外的固件、 运行引导前应用、引导OS,以及在OS被引导后提供运行时服务。

在EFI规范颁布之前或者不考虑EFI规范而创建的BIOS可以称为遗 留BIOS。类似地,设计为与遗留BIOS一起工作的OS可以称作遗留OS 或者不符合EFI的OS(non-EFI-compliant OS)。例如,Windows XPOS 可以被认为是遗留OS。相反地,能够与符合EFI的BIOS一起工作的OS 可以称为符合EFI的OS。

对于本公开来说,取决于所考虑的特定实现,术语“处理单元”可以 表示处理系统中的各个中央处理单元(CPU)、CPU中的处理核心、例如超 线程(HT)这样的逻辑处理单元、或者任何类似的处理资源或作为一个单元 协同操作的资源集合。在存在着多个处理单元的系统中,操作系统(OS)通 常拥有所有的处理单元。

不过,在一些处理系统中,有可能通过修改BIOS生成的高级配置与 电源接口(ACPI)表来对OS隐藏一个或多个处理单元。在一些系统中,还 有可能对OS隐藏一部分或者多个部分的随机存取存储器(RAM)。另外, 在一些系统中,若干外围和集成设备还可以通过向系统的输入/输出(I/O) 控制中心(ICH)中的寄存器写入位屏蔽(bit masks)来实现隐藏。这些技术可 以用来在单个处理系统内创建两个(或更多)执行环境。OS可以在其中一个 环境中运行,该环境称为“主分区”。其他环境,称为“隔离分区(sequestered partition)”,可以是对OS不可见的。隔离分区可以用于各种各样的应用, 例如I/O卸载、平台可管理性、以及故障预测等。

在典型的处理系统中,BIOS通过调用称为OS引导加载程序(loader) 的程序来开始引导OS。由于历史的原因,针对不符合EFI的OS的OS引 导加载程序通常期望或者要求BIOS在调用该加载程序前将处理器切换至 实模式(real mode)并且将21号地址线禁用。由于例如键盘控制器这样的设 备上的引脚可能从0开始编号,21号地址线实际上可能耦合到标为“A20” 的引脚。

在具有多个分区的处理系统中,如果主分区运行在CPU 1上而隔离分 区运行在CPU 2上,则将CPU 1切换至实模式可能不会影响隔离分区,因 为各CPU能够独立切换模式。不过,键盘控制器的A20屏蔽输出引脚可 能与所有CPU相连。从而,激活该引脚可排除所有CPU访问存储器奇数 兆字节(MB)。相反地,如果A20引脚有效,所有对存储器奇数MB中地址 的访问都可能实际上会被映射到存储器偶数MB中对应的地址。因此,如 果当A20引脚为有效或者21号地址线被禁用时隔离分区要执行存储器奇 数MB中的代码或者访问其中的数据,处理系统可能会将存储器引用映射 到不正确的存储单元(location),而这可能会最终导致系统错误或系统崩溃。

附图说明

从所附的权利要求、以下对一个或多个示例性实施例的详细描述以及 对应的附图中,本发明的特性及优势将变得显而易见,在附图中:

图1是描述本发明示例性实施例的某些方面可在其中被实现的适当的 数据处理环境的方框图;

图2是描述根据本发明示例性实施例的某些操作或事件的示例性时间 表的方框图;

图3和图4是描述根据本发明示例性实施例当引导主分区时维持隔离 分区的过程的各个方面的流程图。

具体实施方式

本公开内容描述了关于当主分区引导不符合EFI的OS时防止隔离分 区出现故障的系统和方法的一个或多个示例性实施例。一个或多个公开的 实施例实现该功能利用了以下事实,即用来处理例如系统管理中断(SMI) 这样的信号的程序位于存储器首兆字节(MB)。特别地,通过强制隔离分区 留在其SMI处理程序(handler)中,直到主分区重新启用21号地址线为止, 一个或多个公开的实施例减少或者消除了发生故障的可能。

图1是描述了适当的数据处理环境12的方框图,本发明示例性实施例 的某些方面可以在其中实现。数据处理环境12包括处理系统20,该系统 包括多种硬件组件80和软件组件82。硬件组件可以包括,例如,一个或 多个CPU 22-23,其直接或间接地以通信方式通过系统总线24或其他通信 路径或介质耦合到各种其他组件。一个或多个CPU 22-23可以包括一个或 多个处理核心,而一个或多个处理核心可以支持同时执行两个或更多的线 程,例如HT。

此处所使用的术语“处理系统”以及“数据处理系统”旨在广泛地包 括单个机器、或者由以通信方式耦合的机器或共同运行的设备所组成的系 统。处理系统的例子包括但不限于:分布式计算系统、超级计算机、高性 能计算系统、计算集群、大型计算机、袖珍型计算机、客户机-服务器系统、 个人计算机(PC)、工作站、服务器、便携式计算机、膝上型计算机、平板 计算机、个人数字助理(PDA)、电话机、手持设备、例如音频和/或视频设 备这样的娱乐设备、以及其他处理或传输信息的设备。

可以通过来自传统输入设备(例如键盘、如鼠标这样的定点设备等)的 输入来至少部分地控制处理系统20。处理系统20还可以对从其他处理系 统或者其他输入源或信号接收到的指示或者其他类型信息作出响应。处理 系统20可以利用到一个或多个远程数据处理系统70的一个或多个连接, 例如通过网络接口控制器(NIC)34、调制解调器、或者其他通信端口或耦 合。处理系统可以通过物理的和/或逻辑的网络72进行互连,所述网络例 如局域网(LAN)、广域网(WAN)、内联网、互联网等。涉及网络72的通信 可以利用各种有线的和/或无线的短程或长程的载波和协议,包括射频 (RF)、卫星、微波,电气与电子工程师协会(IEEE)802.11、802.16、802.20、 蓝牙、光学、红外、电缆、激光等。

在处理系统20内,处理器22-23可以以通信方式耦合到一个或多个易 失性或非易失性的数据存储设备,例如RAM 26,只读存储器(ROM)28, 诸如电子集成驱动(IDE)或小型计算机系统接口(SCSI)硬盘驱动器这样的 大容量存储设备30,以及/或其他设备或媒体,例如软盘、光存储、磁带、 闪速存储器、记忆棒、紧凑型闪存(CF)卡、数字视频光盘(DVD)等等。对 于本公开来说,术语“ROM”可一般地用于指非易失性存储设备,例如可 擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、flash ROM、闪速存储器等。处理器22-23还可以以通信方式耦合到其他组件, 例如视频控制器、SCSI控制器、网络控制器、通用串行总线(USB)控制器、 I/O端口32、输入设备(例如键盘、鼠标、照相机)等等。处理系统20还可 以包括一个或多个桥接器或控制中心36,例如存储器控制中心、I/O控制 中心、外围组件互连(PCI)根桥接器等等,来以通信方式耦合系统组件。这 里使用的术语“总线”包括可以被多于两个设备共享的路径,以及点对点 路径。

某些组件,例如NIC 34,可以作为具有用于同总线通信的接口(例如, PCI连接器)的适配卡来实现。或者,NIC 34和其他设备可以采用下列组件 作为嵌入式控制器来实现,所述组件例如可编程或不可编程逻辑器件或阵 列、专用集成电路(ASIC)、嵌入式计算机、智能卡等等。

在这里本发明可以关于或结合某些数据来描述,所述数据例如指令、 函数、过程、数据结构、应用程序、配置设置等。当数据被机器访问时, 机器可以通过执行任务、定义抽象数据类型或其他底层硬件上下文、和/ 或执行其他操作来作出响应,如下面更详细所描述的。数据可以存储在易 失性的和/或非易失性的数据存储装置中。对于本公开来说,术语“程序” 可一般地用于涵盖广阔范围的软件构造,包括应用、例程、方法、模块、 驱动程序、子程序、进程、以及其他类型的软件组件。

例如,数据存储设备30和/或RAM 26可以包括多种指令集,其被执 行时完成各种操作。这样的指令集一般地可以称作软件。

在该示例性实施例中,处理系统20使用例如上面所描述的技术来创建 两个不同的分区:主分区50和隔离分区52。在替代性的实施例中,处理 系统可以具有多于一个的主分区和/或多于一个的隔离分区。如图1中所 示,在该示例性实施例中,程序或者软件组件82可以针对每个分区包含固 件40的不同实例。每个分区还可以接收自己的OS和自己的应用。例如, 在该示例性实施例中,每个分区均从ROM 30接收固件代码40的一部分 或全部。特别地,处理系统20将固件40的一个实例(即固件42)加载到主 分区50,将其另一个实例(即固件44)加载到隔离分区52。主分区50的OS 60可以与隔离分区52的OS 62相同或者不同。在该示例性实施例中,固 件40包括SMI处理程序46,其在隔离分区52的固件44中被实例化为SMI 处理程序48。

图2是方框图,其描述了根据本发明的示例性实施例的某些操作或事 件的示例性时间表。特别地,时间表90描述了主分区50的事件的非穷举 序列,而时间表92描述了相应的隔离分区52的事件的非穷举序列。所描 述的事件和操作与安全地引导主分区50上的不符合EFI的OS(例如OS 60) 的示例性步骤序列有关。

图1的方框图说明了OS 60在主分区50中执行,而OS 62在隔离分 区52中执行。不过,图2中的时间表,开始于主分区50已引导至OS 60 之前,且开始于隔离分区52已引导至OS 62之后或者之前。如时刻t1所 示,在准备调用主分区50的OS引导加载程序时,固件42向隔离分区52 发送SMI。例如,固件42可以向运行隔离分区的处理器的高级编程接口 控制器(APIC)标识符(ID)发送例如处理器间中断(IPI)这样的定向SMI。然 后主分区50可以等待隔离分区52已实际上进入SMI处理程序48的指示。 例如,如时刻t3所示,SMI处理程序48可以设置一个可被主分区50读取 的标志,来表示隔离分区52已进入其SMI处理程序。这样的标志可以处 于RAM 26、芯片组寄存器、闪存中,或者处于平台中任何其他可以由隔 离分区52写入并被主分区50读取的数据存储组件中。

不过,如时刻t2所示,在隔离分区52表示其已进入SMI处理程序48 之前,SMI处理程序48可以向存储器中预定的存储单元写入预定值。特 别地,在一个实施例中,隔离分区52将预定值写入某存储单元,其中已知 该存储单元在主分区50引导至其OS时将被主分区50的OS修改。例如, 隔离分区52可以将预定值0写入存储单元0x100000(1MB)。对于本公开 来说,术语“存储单元X”用来方便地标标识隔离分区52将要写入并监视 的存储单元,通过该监视来确定主分区50是否已启用21号地址线。

如时刻t4所示,一旦主分区50检测到隔离分区52已经进入其SMI 处理程序,主分区50可以停止等待,然后可以将其支持的处理器或处理单 元切换至实模式并将21号地址线禁用。同时,如时刻t3和t9之间所示, 隔离分区52可以监视其在时刻t2写入的存储单元(即存储单元X),来确定 OS 60是否已修改了该存储单元的数据。

切换至实模式并将21号地址线禁用之后,如时刻t6所示,固件42可 以调用主分区50的OS引导加载程序。如时刻t7所示,OS引导加载程序 然后可以将主分区50的处理单元切换至保护模式,重新启用21号地址线, 并将OS 60加载到主分区50中。如时刻t8所示,一旦主分区50开始加载 OS 60,OS 60就可以修改存储单元X处的数据。如时刻t9所示,一旦SMI 处理程序48检测到存储单元X处的数据已被修改,隔离分区52就可以退 出SMI处理程序48。这样,如期间d1所示,隔离分区52从其从主分区 50接收到SMI时开始直到其确定主分区已启用21号地址线后为止,将一 直处于SMI处理程序48中。在此上下文中,术语“确定”表示SMI处理 程序通过调查、推理、计算或者发现而作出判定。例如,SMI处理程序可 以基于对处理系统相关方面的发现,例如发现存储单元X处的数据是否改 变,或者发现主分区中OS是否正在保护模式下执行,来确定21号地址线 是否已启用。

处理系统20可以使用例如前面所描述的操作来防止隔离分区52访问 由于地址线被禁用而可能会被不正确映射的存储单元或者地址。一旦主分 区50修改了存储单元X并且隔离分区52已退出其SMI处理程序,处理系 统20就可以恢复正常执行。

图3和图4是描述根据本发明的示例性实施例在引导主分区时维持隔 离分区的过程的各个方面的流程图。图3描述了主分区50在上述过程中的 角度,而图4描述了隔离分区52在上述过程中的角度。因此,图3和图4 中所描述的操作一般与图2中关于时间表90和92所描述的操作分别对应。

图3从处理系统准备将OS引导至主分区50中开始。在方框202中, 处理系统20中的固件确定主分区50是否要引导至需要禁用21号地址线的 OS。这样的OS可以被称为遗留OS或者不符合EFI的OS。此外,对于本 公开来说,术语“遗留OS”指任何在该OS的引导加载程序被调用之前要 求禁用一条或多条地址线的OS。如果主分区50要引导至符合EFI的OS, 则如方框204所示,处理系统可以开始该OS的引导过程而无需特殊操作。 然而,如果主分区50要引导至遗留OS,则如方框206所示,主分区50 可以向隔离分区52发送SMI。

然后,如方框210所示,主分区50可以等待,直到其检测到隔离分区 52已经进入其SMI处理程序的指示。在检测到隔离分区52已进入其SMI 处理程序之后,如方框212、214以及前面描述所示,主分区50可以切换 至实模式,禁用21号地址线,并启动OS引导加载程序。如方框216和 218所示,OS引导加载程序然后可以切换至保护模式,启用21号地址线, 并加载OS 60。如方框220所示,OS 60然后可以修改存储单元X。然后 图3的过程便可结束。

图4的过程以固件44及可能还有OS 62被加载到隔离分区52开始。 如方框240和250所示,当隔离分区52接收到SMI时,SMI处理程序48 确定该SMI是否来自主分区50并指示A20门将被关闭。如果该SMI并不 指示主分区50将要禁用21号地址线,则如方框252所示,该中断可以以 某种程度常规的方式来处理。

另一方面,如果SMI的确指示主分区50将要禁用21号地址线,则如 方框254、256以及前面描述所示,SMI处理程序48可以响应于该SMI 而将预定值写入存储单元X,然后可以设置标志来向主分区50指示隔离分 区52已进入SMI处理程序48。如方框260所示,隔离分区52然后可以 留在SMI处理程序48中,直到SMI处理程序48检测到存储单元X内容 的变化。当检测到这样的变化后,如方框262所示,隔离分区52可以退出 SMI处理程序48。然后图4的过程便可结束。

上述说明涉及隔离分区,其通过监视存储单元X的变化来确定离开 SMI处理程序是否安全。上述说明还涉及主分区,其通过查询隔离分区设 置的标志来确定隔离分区是否已进入其SMI处理程序。不过,任何其他适 当的技术都可以在其他实施例中用来进行这样的判定。

例如,各个实施例可以使用一个或者多个下面的技术,让隔离分区来 确定离开SMI处理程序是否安全:

·监视存储器、处理器、芯片组寄存器、设备等中的某个存储单元的 状态,当OS将处理器切换至保护模式后该存储单元的内容将被修 改。一旦OS将其处理单元切换至保护模式后,就可以安全地假定 21号地址线已被重新启用。

·主分区的OS中的定制驱动程序可以向隔离分区发送信号。例如, 隔离处理器中的SMI处理程序可以重新启用中断,可以创建中断重 定向表(IDT),可以实现IPI处理程序,并且定制驱动程序可以向隔 离处理器发送IPI。

类似地,各个实施例中主分区可以使用任何适当的技术来确定隔离分区是 否已进入其SMI处理程序。

如所描述的,处理系统在主分区引导遗留OS的同时可以维持隔离分 区。并且,如前面所指出的,处理系统可以包含多于一个主分区、多于一 个隔离分区、或者多个主分区和隔离分区。这样的处理系统在一个或多个 主分区引导遗留OS的同时可以维持一个或多个隔离分区。对于本公开来 说,任何引导至遗留OS的分区均可以称作主分区、遗留分区、或者非隔 离分区。

根据这里所述和所示的原理和示例性实施例,可以理解的是,可以对 所述的实施例在安排和细节上作出修改,而不背离这种原理。例如,尽管 前面描述了SMI处理程序,但可替代的实施例可以利用其它类型的中断或 事件处理程序来防止隔离分区试图使用可能受被禁用的地址线影响的存储 单元。

此外,尽管前面的讨论集中在特定的实施例,但是其他的配置同样是 在设想之中的。尽管这里可能使用了例如“在一个实施例中”、“在另一个 实施例中”或类似的表达,这些短语通常是用来表示提及可能的实施例, 而不是要将本发明限制在特定的实施例配置中。如这里所使用的,这些术 语可涉及相同或者不同的实施例,这些实施例又可以组合为其他实施例。

类似地,尽管针对以特定序列执行的特定操作描述了示例性过程,但 是可以对这些过程进行许多的修改,而得到本发明许多替代性的实施例。 例如,替代性的实施例可以包括使用比所有公开的操作更少操作的过程、 使用了额外操作的过程、以不同序列使用了相同操作的过程、以及其中对 这里公开的单独操作进行组合、细分、或者更改的过程。

本发明的替代性的实施例还包括编码有用于执行本发明的操作的指令 的机器可访问媒体。这样的实施例可以称作程序产品。这种机器可访问媒 体可包括但不限于:例如软盘、硬盘、CD-ROM、ROM和RAM这样的存 储媒体;以及例如天线、电线、光纤、微波、无线电波和其他电磁或光学 载波的通信媒体。从而,指令和其他数据可以以分组、串行数据、并行数 据、传播信号等形式通过传输环境或网络进行递送,并可以在分布式环境 中使用,以及在本地和/或远程进行存储以便由单个或多处理器机器访问。

也应理解,这里所描述的硬件和软件组件表示功能性要素,所述功能 性要素是适度完备的,因此每个要素都可以实质上独立于其他要素而被设 计、构造或更新。在替代性的实施例中,许多组件可以以硬件、软件、或 软件和硬件的组合来实现,来提供这里所述和所示的功能。执行本发明的 操作的硬件、软件、或软件和硬件的组合也可称为逻辑或者控制逻辑。

考虑到可以容易地从这里描述的示例性实施例中获得多种有用的改 变,本详细说明仅是说明性的,而不应当被用作限制本发明的范围。因此, 本发明所要求保护的,是落入下面的权利要求书范围和实质之内的所有实 现、以及所有这些实现的等同物。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号