计算机系统的预启动存储器的制作方法

文档序号:6568832阅读:206来源:国知局
专利名称:计算机系统的预启动存储器的制作方法
技术领域
本发明的实施例涉及计算机系统领域,特别是但不专门涉及计算机系统的预启动(preboot)存储器。
技术背景在典型的计算机体系结构中,通过固件、如系统基本输7v/输出系 统(BIOS)的计算机系统的初始化和配置通常称作预启动阶段。预启动 阶段一般定义为处理器重置与操作系统(OS)的加载之间的时间。在预 启动开始时,是由固件中的代码将平台初始化到从i某体、如硬盘加载 的操作系统可接管的点。发起OS加载会开始通常称作OS运行时间的周期。在OS运行时 间,固件可充当软件与计算机系统的硬件组件之间的接口,以及处理 系统相关的任务。随着计算机系统变得更为复杂,OS级与硬件级之间 的操作环境一般称作固件或固件环境。当今的系统正朝64位计算环境发展。64位计算实现高于4千兆 字节(GB)的虚拟存储捧的存储器寻址。存储器分页(paging)用于将虚拟 存储器映射到系统的物理存储器。在64位系统中,预启动还可包括 64位进程。例如,在预启动期间,控制和状态寄存器可在4 GB线之 上映射。但是,当前的设计无法有效地支持预启动阶段中的64位存储 器寻址。


参照以下附图来描述本发明的非限制且非穷举的实施例,其中, 相似的参考标号在各个^L图中表示相似的部件,除非另有说明。图l是框图,说明根据本发明的一个实施例的计算机系统。图2是框图,说明根据本发明的一个实施例的可扩展固件4矣口 (EFI)实现的阶段。图3A是流程图,说明根据本发明的一个实施例的预EFI初始化 (PEI)阶段的逻辑和操作。图3B是框图,说明根据本发明的一个实施例的固件巻(volume)。图4是流程图,说明使用根据本发明的一个实施例的预启动存储 器的逻辑和操作。图5是框图,说明根据本发明的一个实施例的多处理器系统中的 预启动存储器。图6是流程图,说明使用根据本发明的一个实施例的预启动存储 器的逻辑和操作。图7是框图,说明根据本发明的一个实施例的预启动存储器。
具体实施方式
在以下描述中,提出大量具体细节,以便提供对本发明的实施例 的充分理解。但是,本领域的技术人员会知道,可在没有这些具体细 节的一个或多个的情况下或者采jj]其它方法、组件、材料等来实施本 发明的实施例。在其它情况下,没有详细说明或描述公知的结构、材料或才喿作,以免影响对描述的理解。;.本说明中提到"一个实施例"或"一实施例"表示结合该实施例 描述的具体特征、緯构或特性包含在本发明的至少一个实施例中。因 此,在本说明的各个位置中出现的词组"在一个实施例中,,或"在一 实施例中"不一定都表示同一个实施例。此外,具体特征、结构或特 性可通过任何适当方式结合在一个或多个实施例中。在以下描述和权利要求中,可采用术语"耦合"及其派生词。"耦 合"可表示两个或两个以上元件处于(物理、电气、磁、光等)直接4秦 触。"耦合"还可表示两个或两+以上元件不是相互直4妄4^触,而是 仍然相互配合或交互。参照图1,示出根据本发明的实施例的计算机系统100的体系结 构。大家会理解,本发明的实施例不限于图1所示的体系结构。与计算机系统IOO有关的其它细节在术说明书的结尾处讨论。在一个实施例中,计算机系统100是包括处理器101、 102、 103 和104的微处理器系统。每个处理器可包括高速緩存,例如处理器101 的高速緩存101A。高速緩存101A可包括L1高速緩存、L2高速緩存 或者L3高速緩存。虽然图l示出四个处理器,但是大家会理解,计算机系统100的 实施例可包括四个以下或以上的处理器。在其它实施例中,处理器可 支持Intel 超线程技术。在采用多核处理器的一备选实施例中,图l 的每个处理器101-104可表示一个核心。在一个实施例中,处理器101-104通过链路耦合。例如,处理器 101通过链路105耦合到处理器104。链路提供又称作节点的两个端点 之间的点对点互连。在一个实施例中,链路包括串行发送信息的两个 单向物理连接。在另一个实施例中,命令和/或数据采取分組的形式通 过链路传输。链路的实施例包括但不限于Inte倾公司发布的通用系统 接口(CSI)等。在一个实施例中,每个处理器101-104分别耦合到对应的存^f诸器 105-108。在一个实施例中,每个存储器105-108通过链路分别耦合到 处理器101-104。在一个实施例中,每个处理器101-104包括存储控制 哭如o在一个实施例中,每个处理器101-104有权访问其它所有处理器 的存储器105-108。在这个具体实施例中,存储器作为单个虚拟块提供。 但是,这个单虚拟块可映射到各个物理存储器105-108。在一个实施例 中,存储器105-108构成计算机系统100的系统存储器。处理器101和102耦合到输入/输出集线器(IOH)110,以及处理器 103和104各耦合到IOH 112。在图1的实施例中,IOH 110用作主IOH。处理器的实施例包括具有64位存储器寻址模式的32位处理器。展存储器)64技术(EM64T)的Intel⑧体系结构(IA)-32处理器等。64位存 储器寻址模式使IA-32体系结构的存储器寻址能力扩展到超过4 GB, 同时使IA-32系统能够继续运行基于32位x86的应用程序。Intel Pentium 4和Xeon处理器可包括EM64T。各种装置可耦合到IOH 110和112。在计算机系统100中,非易 失性存储装置(NVS)114、如闪速存储器可耦合到IOH 110。 NVS 114 可能已存储了系统固件116。可基本上按照可扩展固件接口 (EFI)(Extensible Firmware Interface Specification(可扩展固件接口规范),Version 1.10(1.10版),2002年12 月1日)来实现本文揭述的系统固件116的实施例。EFI使采取固件丼莫 块、如驱动器的形式的固件能够从包括闪速存4诸设备,option ROM(只 读存储器),诸如硬盘、CD-ROM(光盘只读存储器)之类的其它存储装 置在内的各种不同资源加载,.或者通过计算机网络从一个或多个计算 机系统加载。在EFI体系结构规范的Intel⑧平台创新框架(以下称作"框 架")(Draft for Review, Version 0,9, 2003年9月16日)中描述了 EFI 规范的实现的一个实施例。大家会理解,本发明的实施例不限于符合 EFI规范的框架或实现。存储设备118,如硬盘驱动器可耦合到IOHllO,并存储了操作系 统120的指令。OS 120的实施例包括Microsoft Windows,Unix、Linux、 Apple Mac OS等。IOH 112耦合到输入/输出(I/0)端口 124以及一个或多个网^4矣口 126。 1/0端口 124可用来连接I/0装置,例如4t盘、鼠标、监视器、 打印机等。网络接口(I/F)126可導过网络128发送和接收通信。本发明的实施例提供在系统存储器初始化之前的暂时存储器中的 存储器分页。本发明的实施例还提供计算机系统100的预启动阶段中 的64位寻址。在系统存储器105-108初始化之前执行的系统固件116 可使用能够进行$4位寻址的暂时存储器。这种暂时存储器的实施例包 括高速緩存101A和非易失性存储装置114。在存储器105-108初始化 之后,暂时存储器的内容迁移(migrate)到系统存储器。图2是框图,说明根据本发明^一个实施例的框架的阶段。阶段包括安全(SEC)阶段202、预EFI初始化(PEI)阶段204、驱动运行环境 (DXE)阶段206、启动设备选择(BDS)阶段208、瞬时系统加载(TSL)阶 段210、操作系统运行时间(RT)阶段212以及最后(After-Life)(AL)阶段 214。这些阶段相互依赖,以便为OS和平台提供适当的运行时环境。 图2的下部示出预启动216、 OS运行时间218和关机219。SEC阶段202支持要在计算机系统上执行的初始操作码的安全校 验。SEC阶段202包括计算机系统的加电序列,并在允许PEI基础执 4亍之前认证PEI基础(下面讨i仑)。PEI阶段204提供加载和调用处理器222、芯片组224和主板226 的特定初始(INIT)配置例程的标准化方法。PEI阶段负责充分初始化系 统,以便为后续阶段提供稳定基础。包括处理器、芯片组和主板在内 的平台核心组件的初始化在PEI阶段中执行。PEI阶段发现存储器, 并准备移交给DXE阶段的资源分布图。通过称作移交块(HOB)的数据 结构的列表将PEI阶段结束时的系统状态传递给DXE阶段。下面更详 细地讨论PEI阶段204。DXE阶段216是执行大部分系统初始化的阶段。DXE阶段116 通过若干组件来推动,其中包括DXE核心、DXE分配器228和一组 DXE驱动器221。 DXE核心产生一组启动/运行时服务230以及DXE 服务。DXE分配器228负责发现并以正确顺序执行DXE驱动器221 。 DXE驱动器221负责初始化处理器、芯片組和平台组件,以及为控制 台和启动装置提供软件抽象。这些组件共同工作以便初始化平台,并 提供启动操作系统所需的服务。BDS阶段208进一步准备计算机系统,以便加载操作系统。TSL阶段210允许服务在OS被允许控制计算机系统之前可由OS 装载程序234使用。 一旦成功加载OS, OS可进行ExitBootService(退 出启动服务)调用,它结束启动服务,并释放启动服务资源供OS使用。在RT阶段212,固件将某个硬件的控制权移交给操作系统236。 EFI运行时服务231继续进行到RT阶段212。在AL阶I殳114,固件可在0S终止之后继续起作用。 结合图3A和图3B来讨论根据本发明的一个实施例的PEI阶段 204的细节。在图3A中,示出说明框架的PEI阶段的逻辑和操作的一 个实施例的流程图300。在框302开始,PEI阶段发起。支持PEI阶段的代码存储在固件 巻(FV)350中,如图3B所示。FV 350包括启动固件巻(BFV)352和主 固件巻(MFV)354。 BFV352包括没有先前的固件干预而出现在系统的 存储器地址空间中的代码。主固件巻354包括各种固件模块、驱动器 和数据。在其它实施例中,计算机系统可包括一个或多个固件巻。在 一个实施例中,FV 350作为系统周件116的一部分存储在非易失性存 储设备114中。在PEI开始时,系统存储器仍未初始化。将BFV352加载到暂时 存储器中用于执行。 一旦系统存储器在PEI中初始化,则将固件进程 加载到系统存储器中用于执行。PEI逻辑还可确定计算机系统的启动才莫式。启动沖莫式的实施例包 括常规预启动,从符合高级配置和电源接口(ACPI)规范(参见 Advanced Configuration and Power Interface Specification, revision 2.0b, 2002年10月11日)的睡眠状态、如S3状态唤醒;以及恢复才莫式,用 于重构被破坏的固件。大家会理解,本发明的实施例可在S3恢复启动模式中使用。在从 S3状态恢复时,通常启动DXE初如程序装载程序(IPL)的PEIM改用 硬件保存表来使硬件恢复到启动配i。在恢复该硬件之后,PEIM将控 制权传递给OS提供的恢复向量。本发明的实施例允许系统在从S3状 态恢复时保持为64位模式,而不是必需在从S3恢复时执行32位到 64位转换。在一个实施例中,大部分PEI代码通过高级语言、如C语言来编 写。PEI代码的其余部分可通过汇编语言来编写。本文的实施例考虑 到通过C代码进行64位寻址。在一实施例中,PEI代码的单个二进制 位用于系统的各处理器(下面结合图5进行讨论)。继续看流程图300,对PEI基础和PEI基础分配器进行初始化, 如框304所示。参照图3B, PEI基础356采用分配器357来提供PEIM(预 EFI初始化模块)358的分配。分配器357还可提供一组PEIM服务供 PEIM 358使用。PEIM又可称作罔件才莫块。继续进行到框306,分配器357分配PEM358。在一个实施例中, 分配器357检查各PEM的相关性表达,以便确定是否可运行PEIM。 如果PEIM的相关性表达不能满足,则PEIM的执行将向后延迟。PEIM还可提供PEM到PEIM接口 (PPI),它允许其它PEIM与该 PEIM或该PEIM抽象的硬件进行通信。当PEIM执行时,PEIM的PPI 向管理PPI的数据库的PEI基础356登记。当PEIM希望使用特定PPI 时,PEIM向PEI基础356请求PPI的位置。大家会理解,PEM可能 不一定生成PPI。回来看图3A,在PEI基础35^确认分配器357已经启动所有PEIM 之后,逻辑则进入框308,以便分醉DXE阶段初始程度装载程序,从 而开始预启动的DXE阶段。来看图4,示出使用根据本发明的一个实施例的预启动存储器的 流程图400。在一个实施例中,系统固件116执行流程图400的逻辑。 在框402开始,启钩或重置系统。处理器引用指向非易失性存储装置 中的启动代码的重置向量。在一个实施例中,SEC代码是在加电之后 执行的第一代码。SEC代码可能预先知道BFV的位置,因此SEC代 码可认证PEI基础。在多处理器系统中, 一个处,里器^皮预指定为初始启动处理器。在 发现其它处理器之后,每个处理器:执行它自己的PEI序列(下面结合图 5进一步进行讨论)。在启动期间,IA-32处理器以实时模式开始。实时模式提供高达l MB的虚拟存储器的存储器寻址。在框403,处理器进入保护才莫式。保 护模式使IA-32处理器能够对高达4千兆字节的存储器进行寻址。继续进行到框404,配置暂时存储器。可在初始化系统存储器之 前使用暂时存储器。在一个实施例中,处理器高速緩存、如高速緩存101A配置成用作暂时存储器。这又可称作"作为随机存取存储器(RAM) 的高速緩存"或"假RAM"。在关于Intel⑧处m器的一个实施例中,处理器高速緩存可设置在 无出差才莫式(NEM),以便提供"作为RAM的高速緩存"。IA-32处理 器高速緩存可具有4路组关联。高速緩存的四分之一可保留用作"作 为RAM的高速緩存"。例如,如果处理器具有512千字节(KB)高速 緩存,则128KB可用于"作为RAM的高速緩存"。处理器高速緩存 的一个实施例包括L2高速緩存。在另一个实施例中,非易失性存储装置可配置为暂时存储器。SEC 代码可预先设计成在非易失性存储装置、如闪速存储器中生成页面目 录和页面表。在采用非易失性存储装置的一个实施例中,可使处理器 进入一种模式,其中处理器不引用页面表的访问位字段。页面表可包 括表明页面是否已经被访问的各页面的访问位。但是,如果页面表保 存在非易失性存储装置中,则在页面已经^皮访问之后设置访问位可能 不实际。在这种情况下,如果处理器尝试在非易失性存储装置中设置 访问位,则处理器可能被挂起。为了消除这个问题,在一个实施例中, 在将非易失性存储装置用于暂时存储器时,不可引用访问位。继续进行到框406,为暂时存储器生成页面表。在一个实施例中, 页面表从存储器类型范围寄存器(MTRR)中生成(下面结合图6和图7 进行讨论)。在另一个实施例中,页面表采用预定义的数据结构从固件代码中 生成。例如,SEC代码可设计成建立暂时存储器,以便在3千兆字节 存储器地址上开始映射。在框406之后,逻辑进入雄407,以便启用处理器的64位存储器 寻址;漠式。在一个实施例中,g理器进入EM64T模式。为了启用 EM64T,将启用存储器分页。这样?在暂时存储器中建立页面表,以 便满足这种EM64T要求。在IA-32,.的实施例中,控制寄存器3(CR3) 设置成指向暂时存储器中的页面目录。在一个实施例中,EM64T需要 启用物理地址扩展(PAE)。继续进行到框408,将预启动执行移交给PEI阶段。在一个实施 例中,SEC代码将BFV的地址和暂时存储器的大小传递到PEI阶段。当PEI阶段开始运行时,PEI代码可采用暂时存储器运行,因为 系统存储器仍未初始化。在PEI期间,至少一个PEIM初始化系统存 储器,如框410所示。在框410之后,逻辑进入框412,以便将暂时存储器的内容迁移 到系统存储器。这种迁移可包括至少部分根据暂时存储器的页面表来 生成系统存储器的页面表。PEI代码然后可继续采用系统存储器执行。继续进行到框414, PEI阶段将预启动运行移交给DXE阶段。PEI 阶段使用HOB将状态信息传递到。XE阶段。HOB可在存储器中设置 在HOB列表中。HOB列表可包括阶段移交信息表,它描述由PEI阶 段所使用的物理存储器以及在PEI阶段中发现的启动模式。大家会理解,本发明的实施例从系统启动的最早阶段就为64位存 储器寻址创造了条件。另外,在系统存储器初始化之前的存储器分页 还提供了堆和堆栈来执行用于早期启动固件的高级语言、如C语言, 而不是限制为"无栈"低级语言、如汇编语言。来看图5,示出多处理器系统中的PEI阶段500的一实施例。大 家会理解,图5的实施例可在其中各处理器101-104代表不同核心的 多核系统中实现。PEI阶段500在初始化系统存储器之前开始。各个处理器101-104 分别具有其关联的暂时存储器506-509。为了清楚起见,在图5中,每 个暂时存储器使用虚拟存储器地址0-9。在系统存储器初始化之前,每 个处理器执行它自己的PEI代码,并使用它自己的暂时存储器。大家 会理解,每个处理器可使用重叠存储器映射,因为这种重叠在将内容 移动到系统存储器中时会得到调和。一旦系统存储器510经过初始化,PEIM可"堆叠"暂时存储器 506-509的内容。如图5所示,暂时存储器的存储器寻址经过重组,以 便在系统存储器510中存储。来自暂时存储器506-509的页面表用于 构造系统存储器510的页面表。在一个实施例中,暂时存储器页面表可包括处理器标识字段,以便表明在堆叠存储器的内容时,哪个页面 与哪个处理器相关联。
一旦暂时存储器506-509在系统存储器510中得到调和,PEI阶段 的执行就作为单个进程继续进行。,旦完成了 PEI,执行就移交到DXE 阶段,如520所示。
来看图6,流程图600说明根据本发明的一个实施例来配置暂时 存储器中的页面表的逻辑和操作。参照图7,在高速緩存704中形成 暂时存储器。暂时存储器中的页面目录708和页面表710至少部分根 据存储器类型范围寄存器(MTRR)714来构造。在一个实施例中,流程 图600的逻辑和操作通过系统固件116的32位代码来构造。在另一个 实施例中,源代码用高级语言、如C语言来编写。
在框602开始,从处理器70 中检索可变和固定MTRR 714。在 一个实施例中,处理器702包括具有MTRR的Intel P6系列处理器。 MTRR 714将系统存储器的存储器类型描述为与高速緩存的方法相 关,例如强无高速緩存、无高速緩存、写組合、写直达、回写以及写 保护。
MTRR用来确定物理存储区的高速緩存性。在一个实施例中, MTRR可定义物理存储器的总共96个存储器地址区。 一部分MTRR 描迷"固定"存储器范围和存储器类型,而其它MTRR则可认为是"可 变的",因为软件可设置对应的可变存储器范围的存储器类型。
继续进行到框604,检索与指定物理存储器地址对应的MTRR的 存储器类型。
进入判定框606,逻辑判定从在扭604中检索的指定地址开始的2 兆字节(MB)地址范围是否可映射到2 MB页面。逻辑判定2 MB地址 范围是否具有所有与MTRR中描述的相同的存储器类型。在一个实施 例中,策略是使用2MB页面来映射处理器地址空间中的所有内容。 如果需要更大粒度,则.可将2 MB页面转换成多个4 KB页面。
MTRR用于在暂时存储器中建立页面表,使得一个以上存储器类 型不映射到单个页面。这使到系统存储器的页面表的迁移更容易。如果对判定框6()6的回答为"是",则地址范围可映射到2 MB 页面。2 MB页面的存储器类型可从MTRR中收集。然后,逻辑继续 进行到框610(下面进行描述)。如果对判定框606的回答为"否",则 逻辑进入框608,在其中,将地址范围分为多个4KB页面表条目。在 一个实施例中,将单个2MB地址范围(即页面)转换为512个4KB页 面表条目。4 KB页面的存储器类型从MTRR寄存器中读取。然后, 逻辑继续进行到框610。
在框610,逻辑分配及填充页面目录和页面表条目,以便建立从O 到4 GB或更高的存储器的虚拟到物理映射。在一个实施例中,映射为 1:1虚拟到物理映射。.
将高速緩存704中存储的信息;改入由页面目录(DIR)708和页面表 710引用的页面712。这种早期分页允许在系统存储器的初始化之前使 用堆栈。然后,逻辑继续进行到框612,以便将CR3 706设置成指向 暂时存储器中的页面目录。
参照图7, 一旦初始化系统存储器732,高速緩存704中的暂时存 储器的内容可迁移到系统存储器732。至少部分根据来自高速緩存704 的页面目录708、页面表710和页面712来生成页面目录734、页面表 736和页面738。 CR3 706也可设置为指向页面目录734。
本发明的实施例为在系统存储器初始化之前的64位存储器寻址 创造了条件。创建已经分页的暂时存储器,以便支持64位存储器寻址。 因此,在系统存储器初始化之前执行的固件可具有完全的64位机器访 问。这实现早期预启动执行的更大编程自由度。另外还可使堆栈和堆 可用于从系统启动的最早阶段开始执行高级代码、如C。
本发明的实施例采用具有实现64位存储器寻址的模式的32位处 理器。因此,固件、如EFI固件可能是允许64位存储器寻址的32位 代码。此外,在具有64位存储器寻址的IA-32位处理器上执行的32 位固件代码使系统能够运行32位和/或64位操作系统。
现在讨-沦图1中的计算机系统100的其它实施例。处理器101-104 可包括但不限于Intel Corporation Pentium 或Xeon 系列处理器等。存储器105-108可包括但不限于动态随机存取存储器(DRAM)、静态随 机存取存储器(SRAM)、同步动态随机存取存储器(SDRAM)、存储器 总线式动态随机存储器(RDRAM)等。在一个实施例中,存储器105-108 可包括无需刷新的 一个或多个存储单元。
计算机系统100可包括例如存储控制器集线器(MCH)等的存储控 制器、例如输入/输出控制器集线器(ICH)等的输入/输出控制器。在一 个实施例中,存储器105-108的一个或多个存储控制器可与处理器 101-104驻留在相同芯片中。计算机系统100还可包括系统时钟支持、 电源管理支持、音频支持、图形支持等。计算机系统100可包括I/0 设备,例如键盘、鼠标、显示器、打印机、扫描仪等。
计算机系统100的组件可通过各种互连进行连^^。在一个实施例 中,互连可能是两个组件之间的点对点,而在其它实施例中,互连可 连接两个以上组件。这类互连可包括例如PCI Express等的外设部件互 连(PCI)、系统管理总线(SMBUS)、低引脚数(LPC)总线、串行外围接 口(SPI)总线、加速图形端口(AGP)接口等。
计算机系统100可通过网络接口 126与外部系统相接口 。网络接 口 126可包括^f旦不限于调制解调器、网络接口卡(NIC)或者用于将一计 算机系统耦合到其它计算机系统的其它接口 。载波信号可由网络接口 126接》11/发送。在一个实施例中,载波信号可用于将计算机系统100 与网络128相接口。网络128可包括局域网(LAN)广域网(WAN)、因 特网或者它们的任意结合。在一个实施例中,网络128还耦合到另一 个计算机系统(未示出、),使得计算机系统100可通过网络128与该另一 个计算机系统进行通信。
计算机系统100还包括在其上可存储固件和/或数据的非易失性存 储装置114。非易失性存储设备包括但不限于只读存储器(ROM)、闪 速存储器、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读 存储器(EEPROM)、非易失性随机存取存储器(NVRAM)等。
存储装置118包括但不限于磁盘驱动器、磁带驱动器、光盘驱动 器等。大家会理解,可由处理器101-104执行的指令可驻留在存储装置118、存储器105-108、非易失性存储装置114中,或者可经由网络 接口 126发送或接收。
OS 120的实施例包括Microsoft Windows⑧系列的操作系统。也可 与计算机系统100配合使用的其它操作系统包括^f旦不限于Apple Macintosh操作系统、Linux操作系统、Unix操作系统等。
为了便于说明,机器可读介质包括以机器(例如计算机、网络设备、 个人数字助理、制造工具、具有一个或多个处理器集合的任何设备等) 可读或可访问的形式提供(即存储和/或发送)信息的任何机构。例如, 机器可访问介质包括但不限于可记录/不可记录媒体(例如只读存储器 (ROM)、随机存取存储器(RAM)、磁盘存储媒体、光存储々某体、闪速 存储设备等)。另外,机器可访问介质可包括诸如电、光、声等传播信 号或者其它形式的传播信号(例如载波、红外线信号、数字信号等)。
本文描述了本发明的实施例的务种操作。这些操作可通过采用处 理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等的机器来实 现。在一个实施例中,所描述的一个或多个操作可构成机器可访问介 质上存储的指令,这些指令在由机器执行时使机器执行所描述的操作。 描述部分或全部操作的顺序不应当解释为暗示这些操作必须是顺序相 关的。获益于本描述的本领埠的技术人员会知道备选的排序。此外, 大家会理解,并非所有操作都必须出现在本发明的每个实施例中。
对本发明的所述实施例的以上描述,包括"摘要"中所描述的, 不是穷举性的或者将实施例限于所公开的精确形式。虽然本文为了说

明的目的而描述了本发明的具体实^例和实例,但相关领域的技术人 员会知道,各种等效修改是可行的。可根据以上详细的描述来对本发 明的实施例进行这些修改。以下权利要求中使用的术语不应当解释为 将本发明限于说明书:中公开的具体实施例。而是,以下权利要求将按 照权利要求解释的已建立的规则来解释。
权利要求
1.一种方法,包括在启动模式中配置计算机系统的暂时存储器;在初始化所述计算机系统的系统存储器之前在所述暂时存储器中建立存储器分页;初始化所述计算机系统的系统存储器;以及将所述暂时存储器的内容迁移到所述系统存储器。
2. 如权利要求l所述的方法,其特征在于,将所述暂时存储器的 内容迁移到所述系统存储器的步骤包括至少部分根据所述暂时存储器的页面表来生成所述系统存储器的 页面表。
3. 如权利要求l所述的方法,其特征在于,配置所述暂时存储器 的步骤包括配置与所述计算机系统的第一处理器相关联的第一暂时存储器;以及配置与所述i十算机系统的第二处理器相关联的第二暂时存储器。
4. 如权利要求3所述的方法,其特征在于,迁移所述暂时存储器 的内容的步骤包括母来自所述第一暂时存储器的内容以及来自所述 第二暂时存储器的内容堆叠到所述系统存储器中。
5. 如权利要求l所述的方法,其特征在于,所述暂时存储器包括 所述计算机系统的处理器的高速緩存或者所述计算机系统的非易失性 存储器这两者其中之一。
6. 如权利要求1所述的方法,、其特征在于,还包括在所述暂时存 储器中维持堆栈。
7. 如权利要求6所述的方法,其特征在于,所述堆栈可利用所述 计算机系统的全部存储器寻址空间。
8. 如权利要求l所述的方法,其特征在于,建立存储器分页的步 骤包括通过参照所述计算机系统的处理器的寄存器中保存的信息,来生成所述暂时存储器的页面表。
9. 如权利要求l所述的方法,其特征在于,建立存储器分页的步骤包括通过参照定义所述暂时存储器的页面表的数据结构,来生成 所述暂时存储器的页面表。
10. 如权利要求1所述的方法,其特征在于,所述启动才莫式包括 所述计算机系统的预启动阶段。
11. 如权利要求1所述的方法,其特征在于,所述启动才莫式包括 从睡眠状态进行恢复,所述睡眠状态基本上符合高级配置和电源接口 规范。
12. —种制品,包括机器可访问介质,包括在运行时执行包括以下步骤的操作的多条 指令在计算机系统的预启动阶段配置处理器的"作为随机存取存储器 (RAM)的高速緩存";在初始化所述计算机系统的系统存储器之前生成"作为RAM的 高速緩存"的页面表,其中,所述页面表存储在所述"作为RAM的 高速緩存"中;初始化所述计算机系统的系统存储器;以及将所述"作为RAM的高速乡爰存"的内容迁移到所述系统存储器。
13. 如权利要求12所述的制品,其特征在于,生成所述"作为 RAM的高速緩存"的页面表的步骤包括从所迷处理器的存储器类型 范围寄存器中检索存储器类型信息,存储器类型范围寄存器描述系统 存储器的地址范围的存储器类型。
14. 如权利要求13所述的制品,其特征在于,生成所述"作为 RAM的高速緩存,,的页面表的步骤包括将所述地址范围映射到所述'"作为RAM的高速緩存"中的页面 表条目。
15. 如权利要求13所述的制品,其特征在于,生成所述"作为 RAM的高速緩存"的页面表的步骤包括将所述地址范围转换为多个地址范围,并将所述多个地址范围映射到所述"作为RAM的高速緩存"中对应的多个页面表条目。
16. 如权利要求12所述的制品,其特征在于,生成所述"作为 RAM的高速緩存"的页面表的步骤包括将所述处理器的控制寄存器 设置成指向所述暂时存储器中的页面目录。
17. 如权利要求12所述的制品,其特征在于,所述"作为RAM 的高速緩存"是可寻址的64位存储器。
18. —种计算机系统,包括 处理器;耦合到所述处理器的同步动喬随机存取存储器(SDRAM)单元;以及耦合到所述处理器的存储器,*中,所述存储器包括在由所述处 理器运行时执行包括以下步骤的操作的多条指令在所述计算机系统的预启动阶段配置所述处理器的"作为随机存 取存储器(RAM)的高漆緩存";在初始化所述SDRAM单元之前生成所述"作为RAM的高速緩 存"的页面表,其中,所述页面表存储在所述"作为RAM的高速緩 存"中;初始化所述SDRAM单元;以及将所述"作为RAM的高速緩存"的内容迁移到所述SDRAM单元。
19. 如权利要求18所述的计算机系统,其特征在于,生成所述"作 为RAM的高速緩存"的页面表的步骤包括从所述处理器的存储器类型范围寄存器中检索存储器类型信息,:、其中,存储器类型范围寄存器描述所述SDRAM单元的地址范围的存 储器类型;如果所述地址范围具有相同的存储器类型,则将所述地址范围映 射到所述"作为RAM的高速緩夸"的页面表条目;如果所述地址范围包括一个以上存储器类型,则将所述地址范围转换为多个地址范围,并将所述多个地址范围映射到所述"作为RAM 的高速緩存"中对应的多个页面表条目;以及将所述处理器的控制寄存器设置成指向所述"作为RAM的高速 緩存"的页面目录。
20.如权利要求18所述的计算机系统,其特征在于,所述处理器 包括具有64位存储器寻址模式的32位处理器。
全文摘要
在启动模式中配置计算机系统的暂时存储器。生成所述暂时存储器的页面表。初始化计算机系统的系统存储器。将暂时存储器的内容迁移到系统存储器。
文档编号G06F9/445GK101258467SQ200680032817
公开日2008年9月3日 申请日期2006年8月3日 优先权日2005年9月7日
发明者A·费什, M·纳图, M·罗思曼, V·齐默 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1