多处理器或超线程使能平台上的基于增强efi的bios驱动器的并行执行的制作方法

文档序号:6487322阅读:136来源:国知局
专利名称:多处理器或超线程使能平台上的基于增强efi的bios驱动器的并行执行的制作方法
技术领域
本发明的实施例涉及计算领域,尤其涉及多处理器或超线程使能平台上的BIOS驱动器的并行执行。
背景基本输入/输出系统(BIOS)是计算装置(例如,计算机、个人数字助理等)的系统软件的一部分,它控制引导序列的操作并提供与外围装置的最低级接口。引导序列是计算装置在通电时执行的操作,包括初始化外围装置(例如,监视器显示器、键盘等)、执行诊断测试和加载操作系统或其等效物。
通常,称作引导处理器的单处理器被指定为执行引导序列的所有操作,而不管计算装置中的处理器(逻辑或物理)的数量。在多处理器系统中,其它处理器(即,引导处理器之外的其它处理器)通常在整个引导序列期间保持空闲。
此外,完成引导序列的时间量可基于计算装置而变化。例如,检测集成驱动器电子设备(IDE)硬盘驱动器的典型BIOS操作有时会是非常耗时的。该操作会单独花费约30秒来完成,这是给计算装置加电时的基本时间量。此外,按连续的顺序初始化每个外围装置且一个缺陷的外围装置驱动器会造成整个引导序列的失败。
此外,现有技术的引导环境对工业内的创新提出了重大挑战。每个新平台性能或硬件创新都需要固件开发者制作更加复杂的解决方案,且常需要操作系统开发者在顾客能受益于该创新前改变它们的引导码。这会是需要大量资源投入的费时的过程。


通过参考用于说明本发明实施例的以下描述和附图能最佳地理解本发明。附图中
图1示出了根据本发明一个实施例的示例性计算机系统。
图2示出了具有超线程软件的双处理器的一个实施例。
图3示出了用于在具有基于EFI的BIOS的超线程使能的双处理器计算机系统上执行引导序列的处理流程的一个实施例;以及图4示出了一图表,其中示出了在处理流程执行引导序列期间双处理器系统的状态。
具体实施例方式
在以下描述中,阐述了大量特定细节。但可以理解,本发明的实施例可在没有这些特定细节的情况下实施。在其它实例中,未详细示出公知的电路、结构和技术以便不模糊本描述的理解。
描述了引导序列期间多处理器或超线程使能平台上的外围驱动器的并行执行。根据一个实施例,BIOS将计算装置的外围驱动器分组并分配给多个处理器,以便在引导序列期间执行。多个处理器可以是逻辑或物理处理器的组合,如以下将描述的。在一个实施例中,基于增强的可扩展固件接口(EFI)的BIOS被用于将外围驱动器分组和分配给多个处理器。利用个人计算机作为计算装置的示例进行以下描述。但本领域的普通技术人员将理解,本发明的实施例可在具有处理器的备选装置上实施。
图1是示出根据本发明一个实施例的计算机系统100的一个实施例的框图。计算机系统100包括各自耦合到总线115的处理器105、处理器110和存储器120。存储器120被配置成存储指令,在由处理器105和/或处理器110执行时这些指令执行这里所描述的方法。此外,许多外围装置140也耦合到总线115。外围装置140可包括监视器显示器、键盘、鼠标、硬盘驱动器、CD驱动器、软驱、网卡、传真-调制解调器和/或电视广播接收器,连同本领域普通技术人员公知的其它组件。
处理器105和110表示任何类型架构的中央处理单元,诸如CISC、RISC、VLIW或混合架构。总线115表示一个或多个总线(例如,系统总线、AGP、PCI、ISA、X-Bus、VESA等)以及桥路。
在一个实施例中,处理器105和110使计算机系统100能执行多重处理。多重处理通过允许每个处理器上应用程序和/或指令的并发执行改善了计算机系统中的性能。这包括多计算机系统同时(并行)从事同一程序。多重处理架构的示例包括对称多重处理(SMP)架构和非均匀存储器存取(NUMA)架构。多重处理是本领域普通技术人员公知的,因此省去进一步的描述以不模糊本描述的理解。
计算机系统100还可包括软件,诸如应用程序、操作系统(未示出)和BIOS。
图2示出了具有超线程软件的处理器105和处理器110的一个实施例。超线程软件使处理器105能包括逻辑处理器0和逻辑处理器1,并使处理器110能包括逻辑处理器2和逻辑处理器3。这样,计算机系统100中的处理器105和处理器110使用超线程软件以允许每个处理器对软件表现为两个(或更多)独立的处理器。
在一个实施例中,超线程通过复制每个处理器的某些部分(例如,存储架构状态的那些)运作,但不复制主要的执行资源。采用超线程,一“物理”处理器可并行执行调度软件(例如,操作系统)发送的两个软件(例如,两个线程或进程)。使执行单元的两个或多个流运作允许处理器105和处理器110两者在一个时钟周期内执行更多的工作。在由于处理器上运行的软件停止而使非超线程能力的处理器中的执行资源空闲时,具备超线程的处理器可使用那些执行资源来执行其它调度的软件。处理器(105和110)停止的原因包括等待资源可用、蓄意停止、在可执行当前指令前等待先前指令的结果以及其它示例。
因为多数现今的操作系统都能在多个处理器之间划分它们的工作负荷(例如SMP),所以操作系统简单地运作好像超线程处理器是一个具有两个或多个处理器的池。
具备超线程的处理器是本领域普通技术人员的公知技术,因此已省去该技术的详细描述以便不模糊本发明的理解。
当前的BIOS处理仅在通常称作引导处理器的一个处理器上执行,而不管现有技术的计算机系统中存在的处理器数量(例如,逻辑或物理处理器)。图3示出了用于在具有基于EFI的BIOS的超线程使能双处理器计算机系统(100)上执行引导序列的处理流程(300)的一个实施例。
基于EFI的BIOS包括操作系统和平台固件之间的接口。该接口是以数据表的形式,它包含与平台有关的信息以及操作系统可用的引导和运行时间服务调用。同时,这些提供了用于引导操作系统的标准环境。
EFI规范被设计为纯接口规范。这样,该规范限定了外围装置(例如,平台固件)必须实现的接口和结构集合。类似地,该规范限定了操作系统可在引导中使用的接口和结构集合。固件开发者如何选择实现所需元件或操作系统开发者如何选择使用这些接口和结构是留给开发者的实现决定。
此外,该规范限定了开放的可扩展接口,它将其自身共享给外围装置的创建,用于在引导过程中提供对新装置类型的支持或者实现增强的平台性能,如容错或安全。扩展平台性能的能力从一开始就被设计入规范中。这旨在帮助开发者避免在尝试将新代码挤入现有技术的BIOS环境中所固有的许多阻碍。作为包含接口以添加新协议的结果,原始设备制造商(OEM)或固件开发者具有按模块方式将性能添加到平台上的基础结构。利用高级编码语言实现驱动器,这进而帮助降低创新的困难和成本。
基于增强EFI的BIOS提供将外围装置组织成组的工具软件,如以下将描述的。外围驱动器包括软件指令以初始化并控制外围装置140之一。通常,外围驱动器负责访问外围装置的硬件寄存器。将外围装置组织成组允许按特定顺序执行特定的外围驱动器,如以下将描述的。
参考处理流程300,在框305处,给计算机装置通电。
框310处,基于EFI的BIOS被自动初始化。在一个实施例中,基于EFI的BIOS被增强为具有两个阶段的平台初始化。预EFI初始化(PEI)阶段接着是驱动器执行环境(DXE)阶段。PEI负责初始化最小的系统资源(例如存储器)以使能DXE。DXE包括DXE核心和多个外围驱动器。DXE核心管理各种外围驱动器的集体执行以初始化计算机系统100到最终预引导状态(例如,在操作系统的加载之前),如以下将描述的。
框315处,选择引导处理器来执行PEI和DXE核心的操作。
图4示出了一图表400,它显示了处理流程300期间处理器105和处理器110的状态。假定处理器(105,110)配备了超线程,则物理处理器105被示出包含逻辑处理器0和逻辑处理器1,而处理器110被示出包含逻辑处理器2和逻辑处理器3。
参考回框315,逻辑处理器0被指定为负责处理PEI和DXE核心的引导处理器,同时这里被指定为应用处理器(AP)的其它逻辑处理器1、2和3空闲。
框320处,DXE核心将外围驱动器分入驱动器组。在一个实施例中,基于计算机系统100中逻辑处理器的数量、每个外围驱动器的依赖性和每个外围驱动器的执行时间将外围驱动器分组。这种分组的目的在于使驱动器组独立以及平衡每个驱动器组的负荷。应理解,本领域普通技术人员公知的其它标准也可用于确定如何排序和分组外围驱动器且本发明不限于这里所揭示的那些。
在一个实施例中,DXE核心通过列举驱动器的存储媒介(例如闪存)构建一外围驱动器列表用于调度。DXE核心基于外围驱动器的依赖性分组外围驱动器,从而对于每组外围驱动器都不存在依赖性。
例如,假定要调度七个驱动器,诸如驱动器A、驱动器B、驱动器C、驱动器D、驱动器E、驱动器F和驱动器G,则它们之间的依赖性可被标注为(A,B)、(C,D)、(E,F)、(G),其中(X,Y)表示驱动器Y具有对驱动器X的依赖性。依赖性表示一个驱动器必须在另一个驱动器被执行后执行。基于这些依赖性和处理器的数量,DXE核心将列表分成四个组。一种可能的分离可以是[A,B]、[C,D]、[E,F]和[G],其中[X,Y,Z等]表示驱动器X、Y和Z处于同一组中。应理解,在一个实施例中组之间不存在依赖性。
框325处,DXE核心初始化每个逻辑处理器。图4示出了正被初始化的逻辑处理器1、逻辑处理器2和逻辑处理器3。随后,DXE核心使所有的逻辑处理器为DXE可用。
框330处,DXE核心分派和调度每个组到逻辑处理器(例如,逻辑处理器0、逻辑处理器1、逻辑处理器2和逻辑处理器3)。DXE核心并发地调度这些外围驱动器组,其中组[A,B]被调度到逻辑处理器0,组[C,D]被调度到逻辑处理器1,组[E,F]被调度到逻辑处理器2,且组[G]被调度到逻辑处理器3,如图4所示,如图所示,由于它们之间不存在依赖性,所以这4个组被并发地执行。
框335处,确定驱动器组的处理是否完成。在一个实施例中,DXE核心监控每个逻辑处理器的处理。该处理可包括向每个逻辑处理器询问每个组的调度结果,直到所有都完成。如果逻辑处理器已完成了处理组,则控制转到框350。如果逻辑处理器未完成处理组,则控制转到框340。
框340处,确定是否终止执行组。例如如果一组是有缺陷的,则该组需要被终止。因此,在预定时间量后或者在预定机器周期数后终止一组是有利的。预定时间量或预定机器周期数基于平台策略。它可在平台之间变化。如果确定终止该组,则控制转到框345。如果确定不终止该组,则控制转到框335。
框345处,终止该组。如果一组被终止,则可以终止该组中的特定驱动器或者可将该组作为整体终止。
框350处,加载操作系统。图4示出了执行OS加载的指定引导处理器(例如,逻辑处理器0)。
虽然联系双处理器计算机系统描述该实施例,但计算系统的可选实施例不限于两个处理器而是可以用超过两个处理器实现。多处理器计算机系统也可在超过一个计算机系统上执行。或者,本发明的实施例也可在利用配备超线程处理器的单处理器计算机系统上实现。
此外,代替分派和调度一组和/或驱动器给特定逻辑处理器,该组和/或驱动器可被分配给没有使能超线程的双或多处理器计算系统中的特定物理处理器。
此外,本发明不限于执行一组里面的外围驱动器,可选地,在引导序列期间外围驱动器可同时在多个处理器上被执行而不被置于一组内。
应理解,可以将更多或更少的进程结合入图3所示的方法中而不背离本发明的范围,且这里所示和所述的框排列不暗示任何特殊的顺序。还将理解,联系图3所述的方法实施例可包含于机器可执行的指令(例如,软件)中。这些指令可用于使得用这些指令编程的通用或专用处理器执行所述操作。或者,操作可由包含用于执行操作的硬连线逻辑的硬件组件或者由编程的计算机组件和定制硬件组件的任何组合来执行。该方法可提供作为计算机程序产品,它可包括其上存储指令的机器可存取媒介,它可用于编程计算机(或其它电子装置)以执行这些方法。对本说明书来说,术语“机器可存取媒介”应包括能存储或编码用于由机器执行并使得机器执行本发明的任何一种方法的指令序列的任何媒介。因此,术语“机器可存取媒介”应包括但不限于固态存储器、光学或磁性盘以及载波信号。此外,本领域普通论及的软件是采取行动或引起结果的一种形式或另一种(例如,程序、过程、进程、应用、模块、逻辑等)。这种表达仅仅是说明计算机执行软件引起计算机的处理器执行一动作或产生一结果的简写方式。
因此,已描述了多处理器和/或超线程使能处理器上外围驱动器的并行执行。在现今的BIOS中,在引导序列期间仅使用引导处理器,同时将其它处理器设定为空闲。应理解,利用多处理器(例如,逻辑和物理的组合)引入外围驱动器的并行指令使得引导序列更快速地完成。还应理解,采用外围驱动器的并行执行,其它外围驱动器可平衡负荷并可增强计算机系统的稳定性,因为它具有终止有缺陷的驱动器以使一个有缺陷的装置驱动器不会引起引导序列故障的能力。
此外,虽然利用基于增强EFI的BIOS进行描述,但本领域的普通技术人员应理解可以增强基于另一模块的BIOS以包括在各种平台和处理器架构上实现PEI和DXE的功能。
虽然在几个实施例方面描述了本发明,但本领域的技术人员将理解,本发明不限于这里所述的实施例。本发明的方法和装置可在所附权利要求书的精神和范围内用修改和变型来实施。因此,描述被认为是说明性而非对本发明的限制。
权利要求
1.一种系统,包括第一处理器,用于执行第一外围驱动器;以及第二处理器,用于执行第二外围驱动器,所述第一外围驱动器和所述第二外围驱动器在系统上的引导序列期间在第一处理器和第二处理器上被并发地执行。
2.如权利要求1所述的系统,其特征在于,第一处理器是逻辑处理器。
3.如权利要求1所述的系统,其特征在于,第一处理器是物理处理器。
4.如权利要求1所述的系统,其特征在于,第一处理器和第二处理器是逻辑处理器。
5.如权利要求1所述的系统,其特征在于,第一处理器和第二处理器是物理处理器。
6.如权利要求1所述的系统,其特征在于,外围驱动器是基于可扩展固件接口(EFI)的BIOS驱动器。
7.如权利要求1所述的系统,其特征在于,第一处理器和第二处理器能终止外围驱动器中的至少一个。
8.如权利要求1所述的系统,其特征在于,第一外围驱动器是由第一处理器初始化的驱动器组的一个成员。
9.如权利要求1所述的系统,其特征在于,第二外围驱动器是由第二处理器初始化的驱动器组的一个成员。
10.一种执行引导序列的方法,包括在引导序列期间并发地执行第一外围驱动器和第二外围驱动器,其中第一外围驱动器在第一处理器上执行而第二外围驱动器在第二处理器上执行。
11.如权利要求10所述的方法,其特征在于,第一处理器是逻辑处理器。
12.如权利要求10所述的方法,其特征在于,第一处理器是物理处理器。
13.如权利要求10所述的方法,其特征在于,第一处理器和第二处理器是逻辑处理器。
14.如权利要求10所述的方法,其特征在于,第一处理器和第二处理器是物理处理器。
15.如权利要求10所述的方法,其特征在于,外围驱动器是基于可扩展固件接口的BIOS驱动器。
16.如权利要求10所述的方法,其特征在于,还包括将第一外围驱动器分组入驱动器组中,其中所述执行包括执行该驱动器组。
17.如权利要求10所述的方法,其特征在于,还包括终止第一外围驱动器的执行。
18.一种提供指令的机器可存取媒介,所述指令在由机器执行时使得机器执行操作,包括在引导序列期间同时执行第一外围驱动器和第二外围驱动器,其中第一外围驱动器在第一处理器上执行且第二外围驱动器在第二处理器上执行。
19.如权利要求18所述的机器可存取媒介,其特征在于,第一处理器是逻辑处理器。
20.如权利要求18所述的机器可存取媒介,其特征在于,第一处理器是物理处理器。
21.如权利要求18所述的机器可存取媒介,其特征在于,第一处理器和第二处理器是逻辑处理器。
22.如权利要求18所述的机器可存取媒介,其特征在于,第一处理器和第二处理器是物理处理器。
23.如权利要求18所述的机器可存取媒介,其特征在于,外围驱动器是基于可扩展固件接口的BIOS驱动器。
24.如权利要求18所述的机器可存取媒介,其特征在于,还包括将第一外围驱动器分组入驱动器组,其中所述执行包括执行该驱动器组。
25.如权利要求18所述的机器可存取媒介,其特征在于,还包括终止第一外围驱动器的执行。
26.一种系统,包括存储器;以及处理器,用于在系统上的引导序列期间并发地执行第一线程和第二线程,该处理器经由总线与所述存储器耦合。
27.如权利要求26所述的系统,其特征在于,第一线程和第二线程包括外围驱动器指令。
28.如权利要求27所述的系统,其特征在于,外围驱动器指令是基于可扩展固件接口的BIOS驱动器指令。
29.如权利要求26所述的系统,其特征在于,处理器能终止线程中的至少一个。
30.如权利要求26所述的系统,其特征在于,第一线程包括外围驱动器指令组。
全文摘要
描述了多处理器和/或超线程使能处理器上外围驱动器的并行执行。根据本发明的一个实施例,在引导序列期间并发执行两个外围驱动器。这些外围驱动器在第一和第二处理器上执行。这些处理器可以是逻辑或物理处理器。
文档编号G06F9/445GK1894663SQ200480018225
公开日2007年1月10日 申请日期2004年6月16日 优先权日2003年6月30日
发明者L·陈, S·李, X·马 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1