CN101025691A - 用于可选只读存储器表征的方法和装置 - Google Patents

用于可选只读存储器表征的方法和装置 Download PDF

Info

Publication number
CN101025691A
CN101025691A CNA2007100044565A CN200710004456A CN101025691A CN 101025691 A CN101025691 A CN 101025691A CN A2007100044565 A CNA2007100044565 A CN A2007100044565A CN 200710004456 A CN200710004456 A CN 200710004456A CN 101025691 A CN101025691 A CN 101025691A
Authority
CN
China
Prior art keywords
optional rom
rom
adapter
optional
extension adapter
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2007100044565A
Other languages
English (en)
Other versions
CN100504784C (zh
Inventor
威廉·L.·伯彻
施瓦·R.·达萨里
谭永昌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lenovo International Ltd
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101025691A publication Critical patent/CN101025691A/zh
Application granted granted Critical
Publication of CN100504784C publication Critical patent/CN100504784C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了通过如下步骤实现可选ROM表征的方法、装置、和计算机程序产品:为计算机的扩展适配器建立隔离执行环境,适配器含有包含适配器的初始化代码的可选ROM;在隔离执行环境中执行扩展适配器的初始化代码;识别可选ROM的工作特性,包括在隔离执行环境中执行初始化代码之前得不到的可选ROM的特性;和根据所识别的可选ROM的工作特性,向扩展适配器的可选ROM分配计算机的正常执行环境中的虚拟存储器地址空间。

Description

用于可选只读存储器表征的方法和装置
技术领域
本发明涉及数据处理,或者更具体地说,涉及用于可选只读存储器表征(option ROM characterization)的方法、装置和产品。
背景技术
1948年EDVAC计算机系统的开发常常被称为计算机时代的开始。自那时以来,计算机系统已经演变成极其复杂的设备。今天的计算机要比像EDVAC那样的早期系统复杂得多。计算机系统通常包括硬件和软件组件、应用程序、操作系统、处理器、总线、存储器、输入/输出设备等的组合。半导体处理和计算机体系结构的进步使计算机的性能越来越好。
计算机体系结构的这种进步使得计算机系统具有通过包含可选ROM的扩展适配器来利用其它计算机资源的能力。包含可选ROM的扩展适配器是扩展计算机系统的功能的重要工具。可选ROM使扩展卡销售商可以在适配器中封装初始化代码。封装扩展适配器的初始化代码极大地简化了扩展适配器的配置,因为扩展适配器能够自我配置,而不依赖于系统固件。
像Intel公司开发的32-位x86体系结构那样的一些计算机体系结构在很大程度上限制了使用可选ROM支持早期计算机体系结构的向后兼容性。在那些早期计算机体系结构中,总的系统计算机存储器以千字节为单位度量,而处理器地址空间的大小是一兆字节。在今天的计算机体系结构中,计算机存储器以吉字节为单位度量,而微处理器地址空间的大小很快就要以太字节为单位度量。虽然总的系统存储器和处理器地址空间已经增大了几个数量级,但处理器的存储器地址空间中专用于可选ROM的存储范围根本没有增加。与80年代早期一样,处理器的存储器地址空间中可选ROM区的大小仍然局限于128千字节。
当计算机体系结构最初实现可选ROM时,128千字节很容易地包含系统中所有适配器的可选ROM初始化代码。后来,适配器功能变得越来越复杂,因此,包含可选ROM所需的地址空间也增大了。像小型计算机系统接口(“SCSI”)适配器那样的单扩展总线适配器的可选ROM可能采用多达48千字节来完成适配器的初始化。也就是说,扩展总线适配器可能占用地址空间的可选ROM区的37.5%。另外,计算机系统中扩展槽数量的日益增加使地址空间的可选ROM区中的空间耗尽问题复杂化。例如,当前计算机系统可以具有多达18个扩展槽,每个插槽都能够接纳包含需要初始化的可选ROM的扩展适配器。随着可选ROM区中的存储器分配进一步复杂化,许多可选ROM请求地址空间的可选ROM区中的某些特定的地址范围。这些存储器分配请求可能无法有效地利用可选ROM区,因为可能在可选ROM区中产生未分配的空隙或小洞。
对可选ROM的128千字节限制的解决方案归为两类:脱机和联机。脱机解决方案通常要求一些用户介入并包括构建主机系统的模型,该主机系统包括将在该特定系统中使用的所有潜在适配器。由于构建包括所有潜在适配器的主机系统的模型的复杂性,扩展适配器制造商和扩展适配器用户经常通过以各种组合放置一组扩展适配器来进行实验,直到在可选ROM区中找到成功分配为止。联机解决方案是由系统BIOS作为引导(boot)过程的一部分执行的那些解决方案。联机技术优于脱机解决方案,因为联机技术提供自动解决方案,并且当将新扩展适配器加入系统中时不需要修改。
三种最常用的联机技术是运行时空间缩小(Runtime SpaceReduction,‘RSR’)、后存储器管理器(Post Memory Manager,‘PMM’)、和ROM共享。RSR是用可选ROM初始化代码实现的简单技术,其释放只在初始化期间需要而在运行时期间不需要的地址空间。PMM是允许将一些可选ROM代码和数据存储在通常的128千字节可选ROM区之外的地址空间中的新近开发的技术。但是,PMM技术需要可选ROM和系统BIOS的支持。ROM共享是用可选ROM代码实现的,并允许扩展适配器的多个实例共享单个可选ROM镜像。
除了这些专门技术之外,最高级的系统软件还实现一种或多种如下的传统排序技术:最先匹配、最后匹配、下一个匹配、最佳匹配、最差匹配、准最差匹配、和准最佳匹配。但是,这些传统排序技术依赖于被排序的可选ROM的准确表征以便进行地址空间中的可选ROM区的有效分配。遗憾的是,由于在分配可选ROM之前,可选ROM的许多工作特性是未知的,所以可选ROM的最准确表征发生在分配完成之后。例如,运行时大小和对ROM共享的支持只有在已经分配和执行了可选ROM之后才可获得。
发明内容
本发明公开了通过如下步骤实现可选ROM表征的方法、装置、和计算机程序产品:为计算机的扩展适配器建立隔离执行环境,适配器具有包含适配器的初始化代码的可选ROM;在隔离执行环境中执行扩展适配器的初始化代码;识别可选ROM的工作特性,包括在隔离执行环境中执行初始化代码之前得不到的可选ROM的特性;和根据可选ROM的识别出的工作特性,将计算机的正常执行环境中的虚拟存储器地址空间分配给扩展适配器的可选ROM。可选ROM表征可以包括在建立隔离执行环境之前存储计算机的系统状态和在识别了可选ROM的工作特性之后恢复系统状态。可选ROM表征还可以包括除了向扩展适配器的可选ROM分配虚拟存储器地址空间之外,向扩展适配器分配计算机的处理器用于输入/输出功能所需的虚拟地址空间。
通过结合附图对本发明的示例性实施例进行如下更详细描述,本发明的上述和/或其它目的、特征和优点将显而易见,在附图中,相似的附图标记一般表示本发明的示例性实施例的相似部件。
附图说明
图1示出了包括可用在根据本发明实施例的可选ROM表征中的示例性计算机的自动计算机器的方决图;
图2示出了可用在根据本发明实施例的可选ROM表征中的示例性虚拟存储器地址空间、示例性扩展适配器、和示例性页表的线图;和
图3示出了根据本发明实施例的可选ROM表征的示例性方法。
具体实施方式
现在从图1开始,参照附图描述根据本发明实施例的可选ROM表征的示例性方法、装置和产品。按照本发明的可选ROM表征一般用计算机,即,用自动计算机器实现。因此,图1示出了包括可用在根据本发明实施例的可选ROM表征中的示例性计算机(152)的自动计算机器的方块图。图1的系统一般通过如下步骤实现根据本发明实施例的可选ROM表征:为计算机的扩展适配器建立隔离执行环境,该适配器具有包含适配器的初始化代码的可选ROM;在隔离执行环境中执行扩展适配器的初始化代码;识别可选ROM的工作特性,包括在隔离执行环境中执行初始化代码之前得不到的可选ROM的特性;和根据可选ROM的识别出的工作特性,对扩展适配器的可选ROM分配计算机的正常执行环境中的虚拟存储器地址空间。图1的系统一般还通过如下步骤实现根据本发明实施例的可选ROM表征:在建立隔离执行环境之前存储计算机的系统状态和在识别了可选ROM的工作特性之后恢复系统状态。图1的系统一般还通过如下步骤实现根据本发明实施例的可选ROM表征:除了向扩展适配器的可选ROM分配虚拟存储器地址空间之外,向扩展适配器分配计算机的处理器用于输入/输出功能所需的虚拟地址空间。
扩展适配器是通过提供支持其它设备的电路来扩展计算机的能力的计算机硬件。例如,视频适配器使计算机能够支持图形监视器,而网络适配器使计算机能够连接到网络上。扩展适配器可以直接构建在计算机的主电路即‘母板’中,但扩展适配器也可以构建在插入母板上的插槽中的分立电路板中。这样的分立电路板被称为‘扩展板’或‘子卡’。
图1的系统包括几个起扩展适配器作用的计算机硬件组件。图1的示例性计算机(152)包括通过系统总线(160)与计算机(152)的其它组件连接的通信适配器(167)。通信适配器(167)实现与其它计算机(182)的数据通信(184)。这样的数据通信可以通过RS-232连接、通过像通用串行总线(‘USB’)那样的外部总线、通过像因特网协议‘IP’网络那样的数据通信网络、以及以本领域技术人员能想到的其它方式串行地进行。通信适配器实现硬件级数据通信,其中一台计算机直接地或通过网络将数据发送到另一台计算机。可用于根据本发明的实施例确定目的地的有效性的通信适配器的例子包括:用于有线拨号通信的调制解调器、用于有线网络通信的以太网(IEEE 802.3)适配器、和用于无线网络通信的802.11b适配器。
图1的示例性计算机(152)还包括通过系统总线(160)与计算机(152)的其它组件连接的小型计算机系统接口(‘SCSI’)适配器(176)。SCSI是信息技术标准国际委员会(‘INCITS’)发布的在内部和外部计算机总线上的各种设备之间传送数据的标准总线协议。存在各种各样的SCSI标准,例如,SCSI-1、SCSI-2、SCSI-3、Ultra SCSI、Wide SCSI等。SCSI适配器(176)为计算机(152)的其它组件使用SCSI硬盘驱动器(170)提供了接口。
图1的示例性计算机(152)还包括通过系统总线(160)与计算机(152)的其它组件连接的USB适配器(177)。USB是Hewlett-Packard、Intel、Lucent、Microsoft、NEC、和Philips公司开发的连接内部和外部计算机总线上的设备的串行总线标准。USB适配器(177)为计算机(152)的其它组件使用硬盘驱动器(170)和电可擦除可编程只读存储空间(所谓的‘EEPROM’或‘闪速’存储器)(174)提供了接口。
图1的示例性计算机(152)还包括通过系统总线(160)与计算机(152)的其它组件连接的一个或多个输入/输出接口适配器(178)。计算机中的输入/输出接口适配器通过,例如,用于控制到像计算机显示屏那样的显示设备(180)的输出,以及来自像键盘和鼠标那样的用户输入设备(181)的用户输入的驱动软件和计算机硬件来实现面向用户的输入/输出。
图1的系统中的每个扩展适配器(167,176,177,178)都包括可选ROM。可选ROM是提供用来实现像例如加电自检(‘POST’)、初始化、中断服务例程、和基本输入/输出(‘BIOS’)例程那样的扩展适配器特有的操作的接口的固件。可选ROM可以包含像例如初始化代码和运行时代码那样的几种类型的固件。初始化代码是初始化扩展适配器和使扩展适配器对运行时操作作好准备的计算机程序指令。初始化代码可以通过执行扩展适配器的POST和将中断服务例程映射到中断向量表来运行。运行时代码是在扩展适配器和计算机的其它组件被初始化之后提供中断服务例程和BIOS例程的计算机程序指令。尽管并非所有扩展适配器都包含可选ROM,但当在装载操作系统之前系统BIOS使用扩展适配器时,或当扩展适配器以对于系统BIOS来说太复杂的方式工作以致无法直接控制时,扩展适配器通常需要可选ROM。在图1的示例性系统中,通信适配器(167)包括可选ROM(110),SCSI适配器(176)包括可选ROM(114),USB适配器(177)包括可选ROM(116),而输入/输出适配器(178)包括可选ROM(112)。
尽管用在术语‘可选ROM’中的缩写词‘ROM’代表‘只读存储器’,但可选ROM通常利用闪速存储器实现。使用缩写词‘ROM’有历史原因,因为在1990年以前,计算机设计者通常利用不能变更的ROM芯片实现固件。随着可选ROM的复杂性和更新可选ROM的需要不断增加,计算机设计者开始利用闪速存储器件来实现可选ROM,以便使固件易于升级。尽管用于实现‘可选ROM’的硬件设备发生了变化,但术语‘可选ROM’本身没有改变。
图1的示例性计算机(152)还包括系统BIOS(100)。系统BIOS(100)是初始化和测试计算机的硬件组件,以及装载操作系统、执行操作系统、和将对计算机硬件组件的控制移交给操作系统的固件。另外,在装载了操作系统之后,系统BIOS仍然在使用中,以提供对某些计算机硬件设备的操作系统低级访问。在图1的例子中,系统BIOS(100)包括可选ROM表征模块(102)。可选ROM表征模块(102)是为根据本发明实施例的可选ROM表征而改进的一组计算机程序指令。
图1的计算机(152)包括至少一个计算机处理器(156),或‘CPU’,以及随机存取存储器(168)(‘RAM’)。计算机处理器(156)和RAM(168)这两者都通过系统总线(160)与计算机的其它组件连接。存储在RAM(168)中的是投影(shadowed)系统BIOS(122)和投影可选ROM(120)。术语‘投影’表示在RAM中存在被‘投影’的对象的副本。因此,投影系统BIOS(122)是系统BIOS(100)在RAM中的副本,而投影可选ROM(120)是可选ROM(110-116)在RAM中的副本。除非上下文另有表示,在本说明书中可交换使用术语‘可选ROM’和‘投影可选ROM’。系统BIOS(100)通常指示处理器(156)将系统BIOS(100)和可选ROM(110-116)复制到RAM,因为RAM的反应一般比实现系统BIOS(100)和可选ROM(110-116)的EEPROM的反应快得多。此外,存储在RAM(168)中的还有操作系统(154)。可用在根据本发明实施例的计算机中的操作系统包括UNIXTM、LinuxTM、MicrosoftXPTM、AIXTM、IBM的i5/OSTM、和本领域技术人员可以想到的其它操作系统。
图1的计算机还包括存储在RAM(168)中的工作特性表(324)。可选ROM表征模块(102)将扩展适配器的可选ROM的工作特性(包括在隔离执行环境中执行初始化代码之前得不到的可选ROM的特性)存储在工作特性表(324)中。工作特性是描述可选ROM的度量。工作特性可以包括,例如,运行时大小、或可选ROM对ROM共享的支持。
图1的示例性计算机(152)还包括存储在RAM(168)中的页表(104)。页表(104)代表虚拟存储器地址空间和物理地址空间之间的映射。虚拟存储器地址空间是计算机处理器可寻址的地址范围。例如,16-位处理器具有从0千字节(‘KB’)到64KB的虚拟地址空间,而32-位计算机处理器可以具有从0吉字节(‘GB’)到4GB的虚拟地址空间。在图1的例子中,物理地址空间是计算机硬件组件的物理地址。虚拟存储器地址空间分解成称为‘页’的固定大小块,而物理地址空间分解成称为‘帧’的相同大小的相应块。存储器地址中的预定数目的最高有效位代表存储器地址的页号。最低有效位代表存储器地址的页偏移。当处理器参考虚拟存储器地址空间中的存储器地址时,存储器管理单元(‘MMU’)(158)在页表(104)中查找与包含所参考的存储器地址的存储器地址页相对应的物理地址帧的帧号。然后,MMU(158)将页偏移加入帧号中,生成与虚拟存储器地址空间中的存储器地址相对应的物理地址空间中的物理地址。由于页表(104)使处理器可以参考虚拟存储器地址空间中的存储器地址而不管存储器地址被映射在物理地址空间中的什么地方,MMU可以将虚拟存储器地址空间中的存储器地址映射到计算机中的设备的任何物理地址。例如,MMU可以将RAM、ROM、可选ROM、或扩展适配器的寄存器映射到虚拟存储器地址空间而不管这些设备的物理地址如何。
图1的示例性计算机还包括MMU(158)。MMU(158)是负责管理处理器(156)的存储器访问请求的一组计算机硬件组件。MMU(158)利用页表(104)提供虚拟存储器地址空间与物理地址空间之间的转换。MMU(158)使用的页表可以作为软件存在于RAM之中或在像EEPROM或硬件寄存器那样的其它形式的计算机存储器中实现。除了提供虚拟存储器地址空间与物理地址空间之间的转换之外,MMU(158)还可以提供存储器保护、高速缓冲存储器控制、计算机总线仲裁、和存储体切换。
在图1的例子中,示出投影系统BIOS(122)、投影可选ROM(120)、工作特性表(324)、页表(104)、和操作系统(154)位于RAM(168)中,但许多这种软件组件通常也存储在非易失性存储器(166)中。因此,图1的计算机(152)包括通过扩展适配器(176,177)或系统总线(160)与处理器156)和与计算机(152)的其它组件耦合的非易失性计算机存储器(166)。非易失性计算机存储器(166)可以实现成硬盘驱动器(170)、光盘驱动器(172)、闪速存储器(174)、RAM驱动器(未示出)、或本领域技术人员可以想到的任何其它类型的计算机存储器。
如上所述,计算机处理器通过虚拟地址空间访问计算机设备,而存储器管理单元利用页表提供虚拟地址空间与物理地址空间之间的处理器地址转换。因此,为了进一步说明,图2示出了可用在根据本发明实施例的可选ROM表征中的示例性虚拟存储器地址空间(210)、示例性扩展适配器(200)、和示例性页表(104)的线图。在图2的例子中,虚拟存储器地址空间(210)是计算机处理器可寻址的地址范围。在图2的例子中,虚拟存储器地址空间从‘00000000h’延伸到‘FFFFFFFFh’,表示32-位处理器具有寻址最大达4 GB的地址空间的能力。计算机体系结构通常在虚拟存储器地址空间内为特定用途预留某些地址范围。
在图2的例子中,虚拟存储器地址空间(210)的从‘00000000h’到‘000003FFh’的地址范围是为中断向量表(212)预留的。中断向量表(212)是包含指向中断子例程的地址指针的表的、映射到RAM中的存储器地址范围。中断向量表(212)由256个4-字节指针组成并驻留在虚拟存储器地址空间(210)的第一个1KB中。每个中断号是为特定用途预留的。例如,16个中断向量是为存在于像Intel公司开发的‘x86’计算机体系结构那样的一些计算机体系结构之中的16个IRQ行预留的。
在图2的例子中,虚拟存储器地址空间(210)的从‘00000400h’到‘000004FFh’的地址范围是为BIOS数据区(214)预留的。BIOS数据区(214)是BIOS用来管理系统设备和资源的、映射到RAM中的存储器地址的256字节范围。可以存储在BIOS数据区(214)中的信息可以包括,例如,安装的串行和并行端口的数目、是否打开键盘的大写字母锁定键、硬盘控制器状态、可选ROM存储器地址等。
在图2的例子中,虚拟存储器地址空间(210)的从‘00000500h’到‘0009FFFFh’的地址范围是为程序地址空间(216)预留的。程序区(216)是操作系统用来执行操作系统本身的例程或运行计算机软件应用程序的、映射到RAM的地址范围。
在图2的例子中,虚拟存储器地址空间(210)的从‘000A0000h’到‘000BFFFFh’的地址范围是为视频地址空间(218)预留的。视频区(218)是映射到加速图形端口(‘AGP’)的地址的128KB块。AGP是将视频适配器连接到计算机母板上的高速计算机总线。AGP主要用于帮助加速3D计算机图形。
在图2的例子中,虚拟存储器地址空间(210)的从‘000C0000h’到‘000DFFFFh’的地址范围是为可选ROM投影区(220)预留的。可选ROM投影区(220)是通常用于访问扩展适配器的可选ROM的、映射到RAM或ROM的虚拟存储器地址空间的128KB块。视系统BIOS是否将可选ROM投影到RAM而定,存储器管理单元将可选ROM投影区中的地址映射到RAM或ROM。最常见的是,系统BIOS将可选ROM复制到RAM中,并指示MMU将可选ROM投影区(220)映射到RAM,因为访问RAM一般比访问ROM快。当可选ROM被投影到RAM中时,系统BIOS将四种读写状态之一指定给可选ROM投影区(220)中的地址:只读、只写、读/写、或禁用。存储器管理单元负责维持这些读/写状态,以防止投影在RAM中的可选ROM在扩展适配器被初始化之后发生改变。
在图2的例子中,虚拟存储器地址空间(210)的从‘000E0000h’到‘000EFFFFh’的地址范围是为扩展系统BIOS数据区(222)预留的。扩展系统BIOS数据区(222)是虚拟存储器地址空间中的64KB块,其被划分成四个16KB段。系统BIOS可以将独立的读/写属性指定给每个段,使得存储器管理单元可以将每个段映射到RAM或BIOSROM芯片。在只支持64KB BIOS ROM芯片的系统上,扩展的系统BIOS数据区(222)总是被映射到RAM。
在图2的例子中,虚拟存储器地址空间(210)的从‘000F0000h’到‘000FFFFFh’的地址范围是为系统BIOS区(224)预留的。系统BIOS区(224)是包含系统BIOS的地址的64KB块。默认地,系统BIOS区(224)映射到实现系统BIOS的EEPROM芯片。这种默认映射使处理器能够在处理器最初被打开时找到包含要执行的第一条指令的位置的地址‘000FFFF0h’。在系统BIOS将自身复制到RAM中之后,系统BIOS将系统BIOS区(224)重新映射到包含投影系统BIOS的RAM中。
在图2的例子中,虚拟存储器地址空间(210)的从‘FFC00000h’到‘FFFFFBFFh’的地址范围是为存储器映射输入/输出(‘I/O’)地址空间(226)预留的。存储器映射I/O地址空间(226)是映射到外围设备的寄存器的、虚拟存储器地址空间中的地址范围。例如,在存储器映射显示器中,每个像素或文本字符从虚拟存储器地址空间中的特定存储器地址得出它的数据。将数据写入存储器映射显示器的这些存储器地址中改变了显示在显示器上的信息。类似地,在存储器映射网络适配器中,用于发送和接收数据的寄存器被映射到虚拟存储器地址空间中的存储器地址。通过将数据存储在映射到用于发送数据的寄存器的存储器地址,则通过数据通信连接将存储的数据发送到另一台计算机。通过读取映射到用于接收数据的寄存器的存储器地址中的数据,则从另一台计算机获取通过数据通信连接发送的数据。
在图2的例子中,虚拟存储器地址空间(210)的从‘FFFFFC00h’到‘FFFFFFFFh’的地址范围是为扩展BIOS数据区(228)预留的。扩展BIOS数据区(228)是用于补充可在BIOS数据区(214)中获得的存储区的、映射到RAM的虚拟存储器地址空间中的存储器地址范围。扩展BIOS数据区(228)由系统RAM的最上面的1KB组成。计算机程序借助于利用中断15h的BIOS函数调用来定位扩展BIOS数据区(228)的开始。
图2的例子还包括扩展适配器(200)。扩展适配器(200)是通过提供支持其它计算机设备的电路来扩展计算机的能力的计算机硬件。示例性的扩展适配器包括显示器适配器、网络适配器、存储器适配器等。扩展适配器(200)包括可选ROM(202),可选ROM(202)是用于实现扩展适配器(200)特有的操作的固件。在图2的例子中,可选ROM(202)包括初始化代码(204)和运行时代码(206)。初始化代码(204)代表初始化扩展适配器并使扩展适配器为运行时操作做好准备的计算机程序指令。初始化代码(204)可以起执行扩展适配器的POST和将中断服务例程映射到RAM中的中断向量表的作用。运行时代码(206)是在扩展适配器和计算机的其它组件被初始化之后提供中断服务例程和BIOS例程的计算机程序指令。在图2的例子中,扩展适配器(200)还包括寄存器(203)。寄存器(203)是为扩展适配器(200)存储输入数据和输出数据的硬件寄存器。
图2的例子包括在虚拟存储器地址空间(210)与物理地址空间之间映射地址的页表(104)。图2的例子中的页表(104)将帧号(208)与页号(209)相关联。帧号(208)标识物理地址空间中的地址空间的4KB块。页号(209)标识虚拟存储器地址空间中的地址空间的4KB块。
在图2的例子中,页表(104)将可选ROM(202)的初始化代码(204)和运行时代码(206)映射到128KB可选ROM投影区(220)。尽管图2的例子描绘了安装在扩展适配器(200)上的可选ROM(202)的初始化代码(204)和运行时代码(206),但这样的描绘只是为了说明,而不是限制性的。也可以将可选ROM(202)的初始化代码(204)和运行时代码(206)投影在RAM(未示出)中。当将初始化代码(204)和运行时代码(206)投影在RAM中时,页表(104)将图2的可选ROM投影区(220)中的地址映射到包含投影初始化代码和投影运行时代码的RAM中的物理地址。
在图2的例子中,页表(104)还将寄存器(203)映射到存储器映射I/O地址空间(226)。因此,处理器可以通过读写映射到寄存器(203)的虚拟存储器地址空间中的存储器地址来访问扩展适配器(200)的寄存器(203)。尽管图2的例子描绘了映射到存储器映射I/O地址空间(226)的寄存器(203),但这样的描绘只是为了说明,而不是限制性的。也可以将寄存器(203)映射到处理器的I/O地址空间(未示出)。利用处理器的输入/输出地址空间被称为‘端口映射I/O’。端口映射I/O使用专用于进行I/O的一类特殊的处理器指令。处理器通常通过处理器的物理接口上的额外I/O管脚或专用于I/O地址的整条总线来实现I/O地址空间。
为了进一步说明,图3示出了根据本发明实施例的可选ROM表征的示例性方法。图3的方法包括向扩展适配器分配(300)计算机的处理器用于输入/输出功能所需的虚拟地址空间而不向扩展适配器的可选ROM分配虚拟存储器地址空间。可选ROM表征模块可以通过利用页表(104)将扩展适配器的所需地址空间映射到虚拟地址空间,向扩展适配器分配(300)计算机的处理器用于输入/输出功能所需的虚拟地址空间。在图3的示例性方法中,页表(104)将帧号(208)与页号(209)相关联。帧号(208)标识物理地址空间中的地址块。页号(209)标识与帧号(208)相对应的虚拟存储器地址空间中的地址块。因此,页表(104)提供虚拟存储器地址空间中的地址与物理地址空间中的地址之间的映射。
为了获得扩展适配器与处理器进行I/O操作所需的地址空间的大小,可选ROM表征模块可以识别扩展适配器在扩展适配器总线上的位置并读取包含地址空间大小要求的扩展适配器的寄存器。可选ROM分配模块可以利用在例如由Compaq计算机公司、Phoenix技术有限公司、和Intel公司开发的BIOS引导规范、PCI专题组公布的外围部件互连(‘PCI’)BIOS规范、和Phoenix技术有限公司和Intel公司开发的POST存储器管理器规范那样的BIOS规范中描述的标准BIOS功能来识别扩展适配器的位置和读取扩展适配器的寄存器。可用在根据本发明实施例的可选ROM表征中的BIOS功能可以包括,例如,FIND PCI CLASS CODE、WRITE CONFIG BYTE、和READ CONFIG BYTE。
FIND PCI CLASS CODE是描述在PCI BIOS规范中的用于标识扩展总线号、设备号、和PCI总线上的扩展适配器的功能号的功能。扩展总线号是唯一标识PCI扩展适配器与其物理连接的PCI总线的、范围从‘0’到‘255’的号码。设备号是唯一选择PCI总线上的PCI扩展适配器的、范围从‘0’到‘31’的号码。功能号是唯一选择多功能PCI扩展适配器内的功能的、范围从‘0’到‘7’的号码。利用扩展总线号、设备号、和PCI扩展适配器的功能号,可选ROM分配模块可以识别PCI扩展适配器的位置。术语‘PCI扩展适配器’指的是遵从PCI专题组公布的PCI总线规范的扩展适配器。
WRITE CONFIG BYTE和 READ CONFIG BYTE是也描述在PCI BIOS规范中、用于分别读写PCI扩展适配器的PCI配置标题中的寄存器的功能。PCI配置标题是使系统BIOS可以识别和控制PCI扩展适配器的一组寄存器。具体地说,PCI配置标题包括可用于确定和分配PCI扩展适配器需要的地址空间的类型、数量、和位置的几个基址寄存器。利用WRITE_CONFIG_BYTE和READ_CONFIG_BYTE,可选ROM表征模块可以通过将‘1’写入基址寄存器的每个位中,然后从同一基址寄存器中读回结果,来向PCI扩展适配器查询所需地址空间。PCI扩展适配器将返回基址寄存器的几个最低有效位中的‘0’。基址寄存器的其余最高有效位规定所需地址空间的大小。例如,在将‘11111111111111111111111111111111’写入PCI配置标题中的基址寄存器中之后,从同一寄存器中读出‘11111111111111110000000000000000’表示PCI扩展适配器需要64KB的存储器地址空间。尽管可用在可选ROM表征中的上述BIOS功能是参照PCI总线标准描述的,但这样的描述只是为了说明,而不是限制性的。像例如工业标准体系结构(‘ISA’)、微通道体系结构(‘MCA’)、或加速图形端口(‘AGP’)那样的其它扩展总线标准的BIOS功能也可用在根据本发明实施例的可选ROM表征中。
为了保证不将扩展适配器的可选ROM分配到虚拟存储器地址空间中,向扩展适配器分配(300)计算机的处理器用于输入/输出功能所需的虚拟地址空间而不向扩展适配器的可选ROM分配虚拟存储器地址空间的操作可以包括禁用扩展适配器的可选ROM。禁用扩展适配器的可选ROM是针对特定的扩展适配器总线标准的。例如,在PCI专题组公布的PCI总线规范中,可选ROM表征模块可以通过将‘0’写入相对于PCI配置标题的开头偏移了30h字节的基址寄存器的最低有效位中,来禁用扩展适配器的可选ROM。
图3的方法还包括在建立隔离执行环境(350)之前存储(306)计算机的系统状态。存储的系统状态(310)代表可用于使计算机系统返回到在存储(306)时存在的原始状态的数据。计算机系统的状态通过像例如RAM、ROM、寄存器等那样的计算机存储装置的内容来表示。因此,在图3的例子中,存储(306)计算机的系统状态包括存储(308)中断向量表、BIOS数据区、可选ROM存储器地址空间、和扩展适配器寄存器的内容(340,342,344,346)。在图3的例子中,中断向量表(‘IVT’)(340)代表中断向量表的内容。BIOS数据区(‘BDA’)(342)代表BIOS数据区的内容。可选ROM存储器地址空间(‘OP ROM空间’)(344)代表可选ROM存储器地址空间的内容。扩展适配器寄存器(346)代表分配的扩展适配器的寄存器的内容。可选ROM表征模块通过将中断向量表、BIOS数据区、可选ROM存储器地址空间、和扩展适配器寄存器的内容(340,342,344,346)复制到RAM中的其它未用存储位置,来存储(308)这些位置的内容(340,342,344,346)。可选ROM表征模块可以利用描述在Phoenix技术有限公司和Intel公司开发的POST存储器管理器规范中的‘pmmAllocate’功能来获取这些其它未用存储位置。
图3的方法还包括为计算机的扩展适配器建立(312)隔离执行环境(350)。扩展适配器具有包含适配器的初始化代码的可选ROM。隔离执行环境(350)是限制来自系统中的其它扩展适配器的干扰的、用于初始化扩展适配器的环境。来自其它扩展适配器的非故意干扰可能由像例如ROM共享或一个适配器初始化另一个适配器那样的适配器之间的交互作用引起。为了限制来自其它扩展适配器的干扰,可选ROM分配模块可以在隔离执行环境中只初始化一个扩展适配器。通过建立隔离执行环境,可选ROM表征模块可以获得可选ROM的最准确的运行时工作特性。
在图3的例子中,为计算机的扩展适配器建立(312)隔离执行环境(350)包括将计算机中除了视频适配器之外的所有其它扩展适配器与初始化隔离(314)。可选ROM表征模块未将视频适配器与初始化隔离,是因为在隔离执行环境中初始化的适配器可能包含显示到计算机屏幕上的数据。另外,视频适配器通常不产生非故意干扰,因为视频适配器响应于与指定给可选ROM的地址范围不同的传统视频适配器地址范围。视频适配器地址范围通常在虚拟存储器地址空间中从‘A0000h’延伸到‘BFFFFh’,而可选ROM地址范围在虚拟存储器地址空间中从‘C0000h’延伸到‘DFFFFh’。
在图3的例子中,可选ROM表征模块可以通过禁用其它扩展适配器来将其它扩展适配器与初始化隔离(314)。禁用信号(316)代表为了禁用计算机系统中的其它适配器而由可选ROM表征模块向其它适配器施加的数据。禁用信号(316)的值对于特定扩展适配器总线标准来说是特定的。例如,在PCI专题组公布的PCI总线规范中,禁用信号(316)代表施加使PCI配置标题的寄存器返回到它们的初始加电状态的‘RST#’信号,从而有效地从虚拟地址空间中除去PCI扩展适配器。一旦从虚拟地址空间中除去,则PCI扩展适配器对于计算机系统是不可见的,也不会发生对初始化扩展适配器的非故意干扰。
在可选ROM表征模块建立了限定扩展适配器之间的干扰的隔离执行环境之后,可选ROM表征模块初始化单个扩展适配器,以识别扩展适配器的可选ROM的工作特性。因此,图3的方法包括在隔离执行环境(350)中执行(318)扩展适配器的初始化代码(204)。初始化代码(204)代表初始化扩展适配器和使扩展适配器为运行时操作做好准备的计算机程序指令。可选ROM表征模块可以通过启用可选ROM和将可选ROM映射到虚拟存储器地址空间的未占用区来执行(318)初始化代码(204)。可以进行对可选ROM的这种启用和映射是因为可选ROM表征模块在最初将虚拟存储器地址空间分配(300)给扩展适配器期间未将虚拟存储器地址空间分配给可选ROM。在将可选ROM映射到虚拟存储器地址空间之后,可选ROM表征模块可以将可选ROM投影到RAM中。通常,将投影的可选ROM映射到也称为可选ROM投影区的、虚拟存储器地址空间中的地址范围‘C0000h’-‘DFFFFh’。
在将可选ROM投影到RAM中之后,可选ROM表征模块通过跳到可选ROM的要执行的第一条指令的位置并将可选ROM表征模块的下一条指令的返回位置放置在处理器执行堆栈上,使处理器控制转移到可选ROM的初始化代码(204)。可选ROM的初始化代码(204)的要执行的第一条指令的位置对于特定扩展适配器总线标准来说是特定的。例如,在PCI专题组公布的PCI总线规范中,初始化代码(204)的要执行的第一条指令的位置可以位于相对于PCI扩展ROM标题的开头偏移了3h字节的位置上。PCI扩展ROM标题是使系统BIOS可以识别和执行PCI可选ROM的数据块。对于每个2KB边界上的‘55AAh’值,可选ROM表征模块可以通过扫描‘C0000h’-‘DFFFFh’地址范围来定位PCI扩展ROM标题。
图3的方法包括识别(320)可选ROM的工作特性,包括在隔离执行环境(350)中执行初始化代码(204)之前得不到的可选ROM的特性。工作特性是用于描述可选ROM的度量,例如运行时大小或对ROM共享的支持。可选ROM表征模块将工作特性存储在工作特性表(324)中。工作特性表(324)将适配器标识符(326)与运行时大小(328)和ROM共享指示符(330)相关联。适配器标识符(326)代表由工作特性度量描述的特定扩展适配器。运行时大小(328)代表包含可选ROM的运行时代码所需的存储器地址空间的大小。ROM共享指示符(330)代表特定的可选ROM是否支持在扩展适配器的两个或更多个实例之间共享运行时代码的单个实例。当可选ROM不支持ROM共享时,安装在同一计算机系统中的相同扩展适配器将需要映射到虚拟存储器空间中的运行时代码的单独的实例。但是,当可选ROM支持ROM共享时,映射到虚拟存储器空间中的同一运行时代码可以操作两个扩展适配器。
在图3的方法中,识别(320)包括在隔离执行环境(350)中执行初始化代码(204)之前得不到的可选ROM的特性的可选ROM的工作特性包括识别可选ROM的运行时大小(328)和可选ROM对ROM共享的支持。一旦可选ROM代码被执行,就在可选ROM代码本身中实现ROM共享。因此,可选ROM表征模块可以通过检查可选ROM代码和像中断向量表、BIOS数据区、和扩展BIOS数据区那样的由可选ROM修改的数据区来识别对ROM共享的支持。可选ROM表征模块可以通过读取包含在可选ROM中的大小字段来识别可选ROM的运行时大小(328)。大小字段在可选ROM中的位置对于特定扩展适配器总线标准是特定的。例如,在PCI专题组公布的PCI总线规范中,大小字段可以位于相对于PCI扩展ROM标题的开头偏移了2h字节的初始化大小字段中。在处理器执行PCI可选ROM的初始化代码之前,初始化大小字段包含代表可选ROM的初始化代码和运行时代码以512字节为单位的总大小。在执行初始化代码期间,初始化代码调整初始化大小字段的值,以便只指示运行时代码的大小。通过读取初始化大小字段,可选ROM表征模块可以获得可选ROM的运行时大小(328)。
图3的方法还包括在识别了可选ROM的工作特性之后恢复(332)系统状态(310)。恢复(332)系统状态(310)使计算机系统返回到在存储(306)时存在的原始状态。在图3的例子中,可选ROM表征模块可以通过将存储的系统状态(310)复制回到原来从中复制了所存储的系统状态(310)的各存储位置中来恢复(332)系统状态。也就是说,可选ROM表征模块可以将存储的系统状态(310)复制到中断向量表、BIOS数据区、可选ROM存储器地址空间、和扩展适配器寄存器中。
在图3的方法中,可选ROM表征模块还可以通过启用先前利用禁用信号(316)隔离(314)的任何其它扩展适配器来恢复(332)系统状态(310)。启用先前隔离的扩展适配器以对于特定扩展适配器总线标准来说特定的方式进行。例如,在PCI专题组公布的PCI总线规范中,启用先前隔离的扩展适配器可以通过解除‘RST#’信号来完成。
读者应该注意到,在在图3的方法中恢复(332)了系统状态(310)之后,可选ROM表征模块只识别了一个扩展适配器的可选ROM的工作特性。可选ROM表征模块可以通过再次为包含ROM的下一个扩展适配器建立(312)隔离执行环境、在隔离执行环境中执行(318)下一个扩展适配器的初始化代码、识别(320)可选ROM的工作特性、和在识别了可选ROM的工作特性之后恢复(332)系统状态的循环来表征其它扩展适配器的可选ROM。表征其它扩展适配器的可选ROM只是为了举例,而不是限制性的。根据本发明实施例工作的可选ROM表征模块可以表征安装在任何数量的扩展适配器上的任何数量的可选ROM。
图3的方法还包括根据所识别的可选ROM的工作特性,向扩展适配器的可选ROM分配(334)计算机的正常执行环境中的虚拟存储器地址空间。正常执行环境是没有扩展适配器与初始化隔离的环境。因此,在正常执行环境下,对处理器执行其初始化代码的扩展适配器的数量没有限制。在正常执行环境下,系统BIOS逐个地初始化扩展适配器,直到系统BIOS装载了操作系统。可选ROM表征模块可以通过利用页表(104)将虚拟存储器地址空间中的可选ROM投影区映射到包含可选ROM的RAM的物理地址空间,向可选ROM分配(334)正常执行环境中的虚拟存储器地址空间。可选ROM表征模块可以通过将适配器ID(326)所代表的扩展适配器的可选ROM的运行时大小(328)的值除以虚拟存储器地址空间中的页的页大小,来计算虚拟存储器地址空间中的页数和物理地址空间中的帧数,以便利用页表(104)进行映射。例如,假设可选ROM具有8KB的运行时大小,并且虚拟存储器中的页具有4KB的页大小。可以按如下计算将这种可选ROM的运行时代码映射到虚拟存储器地址空间所需的虚拟存储器中的页数:
N=R÷S=8KB÷4KB=2页,
其中,N是将运行时代码映射到虚拟存储器地址空间所需的页数和帧数,R是可选ROM的运行时大小(328)的值,而S是虚拟存储器地址空间中的页的页大小。可选ROM表征模块还可以通过将扩展适配器的支持可选ROM共享的所有可选ROM的总大小除以共享按虚拟存储器地址空间中的页的页大小划分的共享可选ROM实例的扩展适配器的数量,来计算虚拟存储器地址空间中的页数和物理地址空间中的帧数,以便利用页表(104)进行映射。例如,假设带有支持可选ROM共享的可选ROM的四个相同的扩展适配器具有48KB的总可选ROM大小,并且虚拟存储器中的页具有4KB的页大小。可以按如下计算将四个扩展适配器的可选ROM的运行时代码映射到虚拟存储器地址空间所需的虚拟存储器中的页数:
N=T÷A÷S=48KB÷4个适配器÷4KB=3页,
其中,N是将扩展适配器的可选ROM的运行时代码映射到虚拟存储器地址空间所需的页数或帧数,T是扩展适配器的支持可选ROM共享的所有可选ROM的总大小,A是共享可选ROM实例的扩展适配器的数量,并且S是虚拟存储器地址空间中的页的页大小。
由于一些扩展适配器的可选ROM可能在初始化期间请求分配(334)虚拟存储器地址空间中的某些地址范围,可选ROM表征模块可能无法像,例如,将从‘C0000h’到‘C1FFFh’的地址分配给第一可选ROM,将从‘C2000h’到‘C3FFFh’的地址分配给第二可选ROM,将从‘C4000h’到‘CSFFFh’的地址分配给第三可选ROM,和将从‘C6000h’到‘C7FFFh’的地址分配给第四可选ROM等那样以相邻块将存储器分配(334)给所有可选ROM。请求分配到特定地址范围的可选ROM可能在虚拟存储器地址空间的映射空间中产生小洞。例如,假设第一可选ROM请求映射到地址范围‘D0000h’到‘D2FFFh’,而第二可选ROM模块请求映射到地址范围‘DE000h’到‘DFFFFh’。第一可选ROM和第二可选ROM的这种映射请求在可选ROM投影区中在地址范围‘C0000h’到‘CFFFFh’和‘D3000h’到‘DDFFFh’上形成小洞。当可选ROM映射请求在虚拟存储器地址空间的可选ROM投影区中形成小洞时,可选ROM表征模块可以实施一种或多种传统排序技术以有效地将其余可选ROM映射到可选ROM投影区。这样的传统技术可以包括,例如,最先匹配、最后匹配、下一个匹配、最佳匹配、最差匹配、准最差匹配、和排序最佳匹配。
最先匹配排序技术将可选ROM映射到可选ROM投影区中为可选ROM留有空间的最低未映射地址范围。最后匹配排序技术将可选ROM映射到可选ROM投影区中为可选ROM留有空间的最高未映射地址范围。下一个匹配排序技术将可选ROM映射到可选ROM投影区中为可选ROM留有空间并且比映射到正好在当前可选ROM之前的可选ROM的地址范围高的下一个未映射地址范围。最佳匹配排序技术将可选ROM映射到可选ROM投影区中为可选ROM留有空间的最小未映射地址范围。最差匹配排序技术将可选ROM映射到可选ROM投影区中为可选ROM留有空间的最大未映射地址范围。准最差匹配排序技术将可选ROM映射到可选ROM投影区中为可选ROM留有空间的第二小的未映射地址范围。排序最佳匹配排序技术在根据例如运行时大小或对ROM共享的支持的特定工作特性排序了要被映射的可选ROM之后,将可选ROM映射到可选ROM投影区中为可选ROM留有空间的最小未映射地址范围。
在图3的例子中,读者应该注意到,根据本发明实施例的可选ROM表征的各种例子和描述是参照PCI总线和相关规范加以描述的。这样的例子和描述只是为了说明,而不是局限性的。根据本发明实施例的可选ROM表征也可以参照本领域技术人员所能想到的任何扩展适配器总线和相关规范来进行。这样的扩展适配器总线可以包括,例如工业标准体系结构(‘ISA’)、扩展工业标准体系结构(‘EISA’)、视频电子标准协会局部总线(‘VLB’)、微通道体系结构(‘MCA’)、和加速图形端口(‘AGP’)等。
对于可选ROM表征,本发明的示例性实施例主要是在完备功能计算机系统的上下文中描述的。但是,本领域的读者应该理解,本发明也可以以计算机程序产品的形式实施,计算机程序产品位于供任何适当的数据处理系统使用的信号承载媒体上。这样的信号承载媒体可以是计算机可读信息的传输媒体或可记录媒体,包括磁媒体、光媒体、或其它适合的媒体。可记录媒体的例子包括硬盘驱动器中的磁盘或软盘、用于光驱的光盘、磁带、和本领域技术人员能想到的其它媒体。传输媒体的例子包括用于语音通信的电话网络、和例如EthernetsTM和与因特网协议和万维网通信的网络的数字数据通信网络。本领域技术人员能够立刻认识到,具有适当的编程工具的任何计算机系统将能够执行以程序产品形式实施的本发明方法的步骤。本领域的技术人员能够立刻认识到,尽管本说明书所述的一些示例性实施例面向安装在计算机硬件上并在其上执行的软件,但作为固件或作为硬件实现的替代实施例也在本发明的范围之内。
从前面的描述中可以知道,可以对本发明的各种实施例加以修改和改变而不偏离其精神实质。本说明书中的描述只是为了说明的目的,而不应该解释为限制性的。本发明的范围只由所附权利要求书的语言限定。

Claims (12)

1.一种用于可选ROM表征的方法,该方法包括以下步骤:
为计算机的扩展适配器建立隔离执行环境,该适配器具有包含适配器的初始化代码的可选ROM;
在隔离执行环境中执行扩展适配器的初始化代码;
识别可选ROM的工作特性,包括在隔离执行环境中执行初始化代码之前得不到的可选ROM的特性;和
根据所识别的可选ROM的工作特性,向扩展适配器的可选ROM分配计算机的正常执行环境中的虚拟存储器地址空间。
2.根据权利要求1所述的方法,进一步包括以下步骤:
在建立隔离执行环境之前存储计算机的系统状态;和
在识别了可选ROM的工作特性之后恢复系统状态。
3.根据权利要求2所述的方法,其中,存储计算机的系统状态的步骤进一步包括存储中断向量表、BIOS数据区、可选ROM存储器地址空间、和扩展适配器寄存器的内容。
4.根据权利要求1所述的方法,进一步包括除了向扩展适配器的可选ROM分配虚拟存储器地址空间之外,向扩展适配器分配计算机的处理器用于输入/输出功能所需的虚拟地址空间。
5.根据权利要求1所述的方法,其中,为扩展适配器建立隔离执行环境的步骤进一步包括将计算机中除了视频适配器之外的所有其它扩展适配器与初始化隔离。
6.根据权利要求1所述的方法,其中,识别包括在隔离执行环境中执行初始化代码之前得不到的可选ROM的特性的可选ROM的工作特性的步骤进一步包括识别可选ROM的运行时大小和可选ROM对ROM共享的支持。
7.一种用于可选ROM表征的装置,该装置包括计算机处理器、和可操作地与计算机处理器耦合的计算机存储器,该计算机存储器内具有能够执行如下操作的计算机程序指令:
为计算机的扩展适配器建立隔离执行环境,该适配器具有包含适配器的初始化代码的可选ROM;
在隔离执行环境中执行扩展适配器的初始化代码;
识别可选ROM的工作特性,包括在隔离执行环境中执行初始化代码之前得不到的可选ROM的特性;和
根据所识别的可选ROM的工作特性,向扩展适配器的可选ROM分配计算机的正常执行环境中的虚拟存储器地址空间。
8.根据权利要求7所述的装置,进一步包括能够执行如下操作的计算机程序指令:
在建立隔离执行环境之前存储计算机的系统状态;和
在识别了可选ROM的工作特性之后恢复系统状态。
9.根据权利要求8所述的装置,其中,存储计算机的系统状态的操作进一步包括存储中断向量表、BIOS数据区、可选ROM存储器地址空间、和扩展适配器寄存器的内容。
10.根据权利要求7所述的装置,进一步包括能够执行如下操作的计算机程序指令:除了向扩展适配器的可选ROM分配虚拟存储器地址空间之外,向扩展适配器分配计算机的处理器用于输入/输出功能所需的虚拟地址空间。
11.根据权利要求7所述的装置,其中,为扩展适配器建立隔离执行环境的操作进一步包括将计算机中除了视频适配器之外的所有其它扩展适配器与初始化隔离。
12.根据权利要求7所述的装置,其中,识别包括在隔离执行环境中执行初始化代码之前得不到的可选ROM的特性的可选ROM的工作特性的操作进一步包括:识别可选ROM的运行时大小和可选ROM对ROM共享的支持。
CNB2007100044565A 2006-02-17 2007-01-23 用于可选只读存储器表征的方法和装置 Active CN100504784C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/356,793 2006-02-17
US11/356,793 US7526578B2 (en) 2006-02-17 2006-02-17 Option ROM characterization

Publications (2)

Publication Number Publication Date
CN101025691A true CN101025691A (zh) 2007-08-29
CN100504784C CN100504784C (zh) 2009-06-24

Family

ID=38472689

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2007100044565A Active CN100504784C (zh) 2006-02-17 2007-01-23 用于可选只读存储器表征的方法和装置

Country Status (2)

Country Link
US (1) US7526578B2 (zh)
CN (1) CN100504784C (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101782876B (zh) * 2009-01-21 2012-04-04 英业达股份有限公司 选择只读存储器映像文件执行方法
CN101996136B (zh) * 2009-08-25 2012-06-20 英业达股份有限公司 选项只读存储器程序代码的地址搜寻方法
CN102906693A (zh) * 2010-06-23 2013-01-30 国际商业机器公司 用于与适配器进行通信的存储/存储块指令
CN103970542A (zh) * 2014-05-21 2014-08-06 华为技术有限公司 一种配置板载固件的方法和装置
CN107885684A (zh) * 2017-11-24 2018-04-06 联想(北京)有限公司 信息处理方法及电子设备

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7873754B2 (en) * 2006-02-17 2011-01-18 International Business Machines Corporation Structure for option ROM characterization
US7987438B2 (en) * 2006-08-10 2011-07-26 International Business Machines Corporation Structure for initializing expansion adapters installed in a computer system having similar expansion adapters
US8811619B2 (en) * 2008-10-31 2014-08-19 Dell Products, Lp Encryption key management system and methods thereof
US8635415B2 (en) * 2009-09-30 2014-01-21 Intel Corporation Managing and implementing metadata in central processing unit using register extensions
US20120036308A1 (en) * 2010-08-06 2012-02-09 Swanson Robert C Supporting a secure readable memory region for pre-boot and secure mode operations
US11520741B2 (en) 2011-11-14 2022-12-06 Scorevision, LLC Independent content tagging of media files
US11998828B2 (en) 2011-11-14 2024-06-04 Scorevision, LLC Method and system for presenting game-related information
US9003172B2 (en) * 2012-05-21 2015-04-07 International Business Machines Corporation Intelligently controlling loading of legacy option ROMs in a computing system
US10817612B2 (en) * 2014-05-16 2020-10-27 Sony Semiconductor Solutions Corporation Information processing device, information processing method, and electronic apparatus
CA2980501C (en) * 2015-03-20 2024-01-09 Scorevision, LLC Method and system for presenting game-related information
US10509757B2 (en) * 2016-09-22 2019-12-17 Altera Corporation Integrated circuits having expandable processor memory
US11238160B2 (en) * 2018-09-28 2022-02-01 Apple Inc. Boot firmware sandboxing

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0433869A (ja) * 1990-05-31 1992-02-05 Toshiba Corp データ処理装置
JP3230262B2 (ja) * 1992-01-24 2001-11-19 ソニー株式会社 電子装置及びその固定情報修正方法
US5608876A (en) * 1995-05-22 1997-03-04 International Business Machines Corporation Add-in board with enable-disable expansion ROM for PCI bus computers
US5754853A (en) * 1995-12-15 1998-05-19 Dell Usa, Lp System for executing utility programs while preserving the state of a native operating system
KR100218186B1 (ko) * 1996-08-21 1999-09-01 윤종용 그래픽 장치의 데이터 저장 및 복구 방법
US6173341B1 (en) * 1998-08-26 2001-01-09 Compaq Computer Corporation System and method for configuring adapters in a computer system
US6009540A (en) * 1997-04-08 1999-12-28 Aitm Associates Incorporated Logic module for implementing system changes on PC architecture computers
US5999989A (en) * 1997-06-17 1999-12-07 Compaq Computer Corporation Plug-and-play
US6175932B1 (en) * 1998-04-20 2001-01-16 National Instruments Corporation System and method for providing state capture and restoration to an I/O system
US6073206A (en) * 1998-04-30 2000-06-06 Compaq Computer Corporation Method for flashing ESCD and variables into a ROM
GB2340970A (en) * 1998-08-22 2000-03-01 Ibm Remote reboot of hung systems in a data processing system
US6425079B1 (en) * 1999-03-31 2002-07-23 Adaptec, Inc. Universal option ROM BIOS including multiple option BIOS images for multichip support and boot sequence for use therewith
US6282647B1 (en) * 1999-06-02 2001-08-28 Adaptec, Inc. Method for flashing a read only memory (ROM) chip of a host adapter with updated option ROM bios code
US6567911B1 (en) * 1999-12-06 2003-05-20 Adaptec, Inc. Method of conserving memory resources during execution of system BIOS
US6513114B1 (en) * 1999-12-08 2003-01-28 Dell Products L.P. System and methods for providing selectable initialization sequences
US6529989B1 (en) * 2000-05-03 2003-03-04 Adaptec, Inc. Intelligent expansion ROM sharing bus subsystem
ATE468562T1 (de) * 2000-12-15 2010-06-15 Ibm Virtualisierung von e/a-adapterressourcen
US6725178B2 (en) * 2002-01-15 2004-04-20 International Business Machines Corporation Use of hidden partitions in a storage device for storing BIOS extension files
US7032108B2 (en) * 2003-05-02 2006-04-18 Egenera, Inc. System and method for virtualizing basic input/output system (BIOS) including BIOS run time services
US7234050B2 (en) * 2003-08-14 2007-06-19 Hewlett-Packard Development Company, L.P. Techniques for initializing a device on an expansion card

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101782876B (zh) * 2009-01-21 2012-04-04 英业达股份有限公司 选择只读存储器映像文件执行方法
CN101996136B (zh) * 2009-08-25 2012-06-20 英业达股份有限公司 选项只读存储器程序代码的地址搜寻方法
CN102906693A (zh) * 2010-06-23 2013-01-30 国际商业机器公司 用于与适配器进行通信的存储/存储块指令
CN102906693B (zh) * 2010-06-23 2014-08-20 国际商业机器公司 用于执行用于将数据存储在适配器中的存储指令的方法及系统
CN103970542A (zh) * 2014-05-21 2014-08-06 华为技术有限公司 一种配置板载固件的方法和装置
CN103970542B (zh) * 2014-05-21 2017-07-21 华为技术有限公司 一种配置板载固件的方法和装置
CN107885684A (zh) * 2017-11-24 2018-04-06 联想(北京)有限公司 信息处理方法及电子设备

Also Published As

Publication number Publication date
CN100504784C (zh) 2009-06-24
US7526578B2 (en) 2009-04-28
US20070208883A1 (en) 2007-09-06

Similar Documents

Publication Publication Date Title
CN100504784C (zh) 用于可选只读存储器表征的方法和装置
US7987438B2 (en) Structure for initializing expansion adapters installed in a computer system having similar expansion adapters
US7873754B2 (en) Structure for option ROM characterization
US6003112A (en) Memory controller and method for clearing or copying memory utilizing register files to store address information
JP3268310B2 (ja) メモリ管理方法
AU602388B2 (en) A data processing system having features for automatic configuration of device cards
US6397268B1 (en) Tracking PCI bus numbers that change during re-configuration
US6282647B1 (en) Method for flashing a read only memory (ROM) chip of a host adapter with updated option ROM bios code
US5724529A (en) Computer system with multiple PC card controllers and a method of controlling I/O transfers in the system
US5835760A (en) Method and arrangement for providing BIOS to a host computer
US5187792A (en) Method and apparatus for selectively reclaiming a portion of RAM in a personal computer system
US8392697B1 (en) BIOS configuration and management
EP1835396A2 (en) Address space emulation
US20150356049A1 (en) Assigning processors to memory mapped configuration
CN100589089C (zh) 处理直接存储器访问请求的设备和方法
US6304951B1 (en) Data processing system and method for generating virtual memory descriptors including pretranslated physical addresses
US6473655B1 (en) Data processing system and method for creating a virtual partition within an existing partition in a hard disk drive
US6446139B1 (en) Multiple chip single image BIOS
EP4451128A1 (en) Data register access method and apparatus, readable storage medium, and electronic device
US7568061B2 (en) Initializing expansion adapters installed in a computer system having similar expansion adapters
US5349661A (en) Installation of an expanded memory manager
US5928338A (en) Method for providing temporary registers in a local bus device by reusing configuration bits otherwise unused after system reset
US20060047858A1 (en) ROM scan memory expander
US6546483B1 (en) Method and apparatus for configuring a device assigned to a fixed address space
US7228263B2 (en) Method for representing root busses using object oriented abstractions

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20170714

Address after: Hongkong, China

Patentee after: Lenovo International Ltd

Address before: American New York

Patentee before: International Business Machines Corp.