当前位置: 首页 > 专利查询>英特尔公司专利>正文

用于在预存储器执行环境中链接固件模块的方法和系统技术方案

技术编号:2862331 阅读:224 留言:0更新日期:2012-04-11 18:40
BIOS包括核心和多个模块。所述模块包括平台专用和非平台专用的模块两种。每个模块都具有允许核心(或其他模块)调用所述模块的标准接口。平台厂商通过选择来自一个或多个厂商的模块来构造BIOS,该BIOS当被执行时可以选择适于BIOS所驻留平台的模块。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术一般地涉及计算机系统,更具体而言,涉及计算机系统的基本输入输出系统(BIOS)。
技术介绍
BIOS包括用于初始化计算机系统的其他组件的可执行程序和数据的集合。一旦打开(或者复位)计算机系统,计算机系统就执行来自诸如(单个或多个)只读存储器(ROM)芯片之类的非易失存储器或等价物的BIOS。在许多计算机系统中,BIOS加载全部或部分操作系统,所述操作系统通常存储在计算机系统的硬盘上。或者,可以从光盘(CD)ROM或软盘加载操作系统。被加载的操作系统随后可以调用BIOS例程或组件。预存储器执行环境中的BIOS(这里也被称为固件)通常是为专用配置或系统设计(这里也称为平台)生成的紧致界(Tightly Bound)目标代码。换言之,不同的平台通常具有不同的BIOS。更具体而言,BIOS通常包括用于提供特定功能或服务的代码(这里也称为固件模块),这些功能或服务同样可以依赖于平台。例如,带PentiumIII处理器的平台与带PentiumIV处理器的平台相比,特定服务的固件模块就可能不同。因此,BIOS厂商通常将开发若干BIOS来支持各种平台,这不合需要地增加了多种BIOS的测试、维护和文档费用。另外,传统的开发过程要求软件开发者将他们的固件模块与主固件可执行代码一起编译并链接。此外,该过程常常要求软件开发者为每个厂商的主固件可执行代码定制固件模块。这个不期望的过程要求开发者为每种固件环境中的正确操作来测试固件模块,这将增加开发的时间和费用。附图说明参考附图来描述本专利技术的非限制和非穷尽的实施例,附图的所有不同视图中除非明确说明,类似的标号都指示类似的组件。图1是图示根据本专利技术一个实施例的具有模块化BIOS的计算机系统的框图。图2是图示根据本专利技术一个实施例的模块化BIOS的图。图3是图示根据本专利技术一个实施例,在模块化BIOS的模块之间的通信链接的图。图4A和4B是图示根据本专利技术一个实施例的模块化BIOS的基本初始化操作的流程图。图5是图示根据本专利技术一个实施例的用于跟踪固件模块的分配的数据结构的图。图6是图示根据本专利技术一个实施例的固件模块的组件的框图。图7A和7B是分别图示根据本专利技术一个实施例的导入表和导出表的图。图8是图示根据本专利技术一个实施例的用于链接BIOS中的固件模块的过程的流程图。图9是图示根据本专利技术一个实施例的模块调用操作的流程图。图10是图示根据本专利技术一个实施例的菊花链操作的流程图。图11是图示根据本专利技术一个实施例的过滤器模块的图。具体实施例方式图1根据本专利技术的一个实施例图示了计算机系统100。计算机系统100包括处理器103、非易失存储器105、主存储器107、设备109-1至109-N以及总线111。此外,计算机系统100包括存储在非易失存储器105中的模块化BIOS120。处理器103可以是常规微处理器,例如但不限于Intel x86或Pentium系列微处理器、Motorola系列微处理器等等。可以以若干方式来实现非易失存储器105。例如,非易失存储器105可以使用包括但不限于以下设备的设备来实现可擦除可编程只读存储器(EPROM)设备、电可擦除可编程只读存储器(EEPROM)设备、闪存设备等等。主存储器107可以使用包括但不限于以下设备的设备来实现动态随机访问存储器(DRAM)、静态随机访问存储器(SRAM)等等。设备109-1至109-N是通常在计算机系统中使用的设备,例如但不限于显示器、监视器、键盘、硬盘驱动器、CD ROM驱动器、网络接口卡(NIC)、声卡、打印机、扫描仪、点选设备(例如鼠标、轨迹球、触摸垫)等等。主存储器107、非易失存储器105、处理器103和设备109-1至109-N都耦合到总线111。应认识到计算机系统100是具有不同体系结构的许多可能的计算机系统中的一个示例。例如,结合Intel微处理器利用Microsoft Windows操作系统的计算机系统常常具有多个总线,其中一个可以被认为是外设总线。网络计算机也可以认为是可与本专利技术一起使用的计算机系统。此外,有时被称为个人数字助理(PDA)的手持式或掌上计算机也可以认为是可与本专利技术一起使用的计算机系统。典型的计算机系统一般将至少包括处理器103、主存储器107、非易失存储器105和总线111。还将认识到在一个实施例中,计算机系统100由操作系统软件控制,所述操作系统软件包括作为其一部分的文件管理系统,例如盘操作系统。例如,本专利技术的一个实施例利用Microsoft Windows作为计算机系统100的操作系统。在另一个实施例中,其他操作系统包括但不限于AppleMacintosh操作系统、Microsoft Windows操作系统、Unix操作系统、Palm操作系统以及可根据本专利技术的教导使用的类似操作系统。一般而言,在计算机系统100中使用的特定操作系统将至少部分基于在计算机系统100中使用的具体体系结构、芯片或芯片组。图2图示了根据本专利技术的一个实施例驻留于非易失存储器105(图1)中的BIOS120(图1)。在此实施例中,非易失存储器105被分成块201-204,每一个具有64K字节的大小。在此实施例中,块201是引导块。引导块201包括复位向量208、核心210和固件模块212-1至212-M。块202、203和204被用来在执行BIOS120的过程中提供某些非易失存储并存储BIOS120的其他组件。复位向量208是加电或复位之后处理器103(图1)所读取的第一个存储器单元。在一个实施例中,复位向量208使处理器103执行一般被称为POST(加电自测)的指令。在一个实施例中,操作流开始执行核心210。核心210用作固件模块212-1至212-M的调度器或分配器。核心210还包含用于服务的核心集合的指令。这些核心服务包括但不限于平台变量的定位、引导模式的管理、诸如拷贝和清零存储器之类的通用任务。每个固件模块212-1至212-M包含与用于一个或多个组件的服务相关联的指令,这些组件可以包括在计算机系统100中。根据本专利技术,每个固件模块都具有公共接口组件来与核心210接口。此外,固件模块可以包括公共接口来与另一个固件模块接口。如以下将进一步描述的,这些特征使得包括核心210和固件模块212-1至212-M的BIOS(即模块化BIOS)可以以这样一种方式与多个平台一起工作,所述方式在某种意义上类似于操作系统和驱动器使得计算机系统可以与多个外设一起工作的方式。图3还图示了核心210和固件模块212-1至212-M之间以及固件模块自身之间的功能互连。在一个实施例中,每个固件模块212-1至212-M包括公共核心/模块接口(未示出)以与核心210接口;并且包括公共模块/模块接口(未示出)以与其他固件模块接口。例如,核心210可以使用公共核心/模块接口来如双向箭头301所示地与固件模块212-1接口,以及与固件模块212-2至212-M接口。此外,固件模块212-1可以使用公共模块/模块接口来如双向箭头303所示地与固件模块212-2接口。虽然未在图3中示出,但是其他固件模块212-3至212-M也可配置有公共模块/模块接口来与另一个固件模块接口。后面结合图6将进一步描述这些组件。图4A图示了根本文档来自技高网...

【技术保护点】
一种方法,包括:开始执行基本输入输出系统,所述基本输入输出系统具有多个模块;确定所述多个模块需要的资源;调度所述多个模块中的模块的执行;以及分配所述被调度模块用于执行。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:拉马穆尔蒂克里西瓦斯柯克布伦诺克罗伯特黑尔安德鲁菲什威廉史蒂文斯
申请(专利权)人:英特尔公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1