一种加速bios运行的方法

文档序号:6559490阅读:440来源:国知局
专利名称:一种加速bios运行的方法
技术领域
本发明涉及计算机领域,更具体地,涉及一种利用作为RAM的高 速缓存(Cache as RAM,缩写为"CAR")加速BIOS运行的方法。
背景技术
现有的计算机系统在上电后,CPU通过低速总线(如ISA、 LPC、 FWH等)从BIOS Flash ROM中读取第一条指令,并开始运行BIOS; BIOS 对CPU、芯片组和外围设备进行一些简单的上电初始化后,开始初始 化内存;等到内存初始化完毕后,CPU才把BIOS主程序从Flash ROM 复制到系统内存中,然后从内存中读取指令,从而提高BIOS的运行速 度。
中国专利申请CN03156907. 2、中国专利CN1641580等通过以CPU 高速缓存映射BIOS程序运行所使用的内存区域,提高访问内存的速 度,从而加速BIOS程序的运行。
中国专利申请CN03156907. 2和中国专利CN1641580公开了一种 加速运行BIOS的方法,该方法利用CPU高速缓存映射BIOS程序所使 用的内存区域,CPU在运行BIOS程序时,如果"读命中"(Cache Hit) 时,则直接从高速缓存中读取BIOS指令,而不需要从系统内存中读取, 因而可以加速BIOS程序的运行。
美国专利申请US2003/023812公开了一种加速运行外插卡选项 R0M的方法,该方法中BIOS要运行某个外插卡的选项ROM时,把该选 项ROM复制到系统内存中,然后用CPU高速缓存映射该内存区域,从 而加快了选项ROM的运行。
上述方法存在以下两个缺点 (一)只有系统内存可用后,才可以应用上述方案。但在BIOS
运行初期,系统内存是不可用的,因此上述方案无法应用。
(二) 即使应用了上述方案,CPU在读取BIOS程序时,也无法 保证完全的"Cache Hit",此时CPU仍然需要从系统内存中读取BIOS 程序。
为了解决上述问题,加速BIOS运行,本发明提出了一种方法 把CPU的高速缓存设置成RAM (随机存取存储器)使用,这样在系统 内存不可用时,也可以在这段RAM空间中运行BIOS,从而大大加快了 BIOS的运行。

发明内容
新型的CPU (如Intel的Prescott、 Nocona等)增加了一个新的 高速缓存属性NEM (No-Eviction Mode,非逐出模式),该属性允许程 序把CPU的高速缓存设置成一段RAM空间使用,即所谓的CAR (Cache —as-RAM,作为RAM的高速缓存)。利用NEM属性,计算机在上电后, BIOS通过初始化CPU的相关寄存器,打开高速缓存的CAR功能;然后 把BIOS程序从Flash ROM复制到CPU高速缓存中,并直接从高速缓存 中读取BIOS指令;直到大部分BIOS程序运行完毕后,再初始化系统 内存;系统内存初始化完毕后,通过设置CPU的相关寄存器,关闭CAR 功能,CPU从系统内存读取BIOS指令,完成全部的BIOS程序。
因此,根据本发明,提出了一种利用作为RAM的高速缓存加速BIOS 运行的方法,包括以下步骤CPU从BIOS Flash ROM中读取第一条指 令,开始运行BIOS程序;CPU打开高速缓存的非逐出模式NEM,初始 化作为RAM的高速缓存CAR; CPU将BIOS程序从BIOS Flash ROM中复 制到CAR空间中,完全在CAR空间中运行BIOS程序,在CAR空间BIOS 程序运行的最后,CPU初始化系统内存;系统内存初始化完成后,CPU 重新从Flash ROM中读取BIOS程序;在使用系统内存之前,BIOS关 闭高速缓存的NEM模式,关闭CAR功能,并把高速缓存恢复到缺省状 态;CPU把尚未运行的BIOS程序模块从BIOS Flash ROM中复制到系 统内存中;以及CPU从系统内存中运行BIOS程序,完成计算机平台的 初始化。
相对于现有的技术本发明具有以下优势
(一) 本发明在BIOS运行初期就把CPU高速缓存设置成RAM使 用,然后把BIOS程序复制到这段RAM空间中,因此即使在系统内存不 可用时,CPU也不必通过低速总线逐个获得BIOS指令。
(二) 本发明把BIOS程序复制到高速缓存后,CPU完全从高速 缓存中运行BIOS程序,因为不存在"读命中"失败的问题,因此与通 过高速缓存映射系统内存的方法相比,速度得到了较大的提高。


下面将参照附图,对本发明的优选实施例进行详细的描述,其中 图1是本发明利用NEM加速BIOS运行的方法的流程图。
具体实施例方式
下面结合

本发明的具体实施方式
。应该指出,所描述的 实施例仅是为了说明的目的,而不是对本发明范围的限制。所描述的 各种数值并非用于限定本发明,这些数值可以根据本领域普通技术人 员的需要进行任何适当的修改。
图1是本发明利用NEM加速BIOS运行的方法的流程图。 当计算机上电时,CPU处于实模式状态,缺省的CS (代码段寄存 器)IP (指令指针)指向了 BIOS Flash R0M。也就是说,系统上电 后CPU从BIOS Flash ROM中读取第一条指令,开始运行BIOS程序 (SIO)。
CPU初始化16位Big-Real模式(即16位代码/32位地址模式), 此时DS (数据段寄存器)、ES (附加段寄存器)、FS (标志段寄存器)、 GS (全局段寄存器)、SS (堆栈段寄存器)段寄存器值为O, CPU有能 力寻址0 4GB大小的内存空间;但CPU的取指仍然是16位的CS: IP 模式(Sll)。
CPU打开高速缓存的NEM (No-Eviction Mode,非逐出模式)模 式,初始化Cache-As-RAM (作为RAM的高速缓存,CAR),并为CAR空
间指定一个基地址。此后对CAR空间的操作都基于该基地址(S12)。 CPU将BIOS程序从BIOS Flash ROM中复制到CAR空间中,并且
设置BIOS程序从Flash ROM跳转进入CAR的入口点(Entry)和BIOS
程序从CAR返回Flash ROM的返回入口点(Return Entry) (S13)。 CPU切换到32位的保护模式,此时CPU无论是取指还是寻址都完
全处于32位的模式(即所谓的USE32模式),以便CPU可以从CAR空
间运行BIOS程序(S14)。
CPU通过运行一个"Far Jump"指令,从Flash ROM跳转到CAR
空间中的程序入口点(Entry),此后CPU完全在CAR空间中运行BIOS
程序(S15)。
CPU运行在32位的保护模式下,从CAR空间读取并运行BIOS程 序,同时保存程序运行的中间结果(S16)。
在CAR空间BIOS程序运行的最后,CPU初始化系统内存(S17)。
系统内存初始化完成后,CPU切换回16位的Big-Real模式(USE16 代码/USE32数据),以便退出CAR空间(S18)。
CPU再次通过"Far Jump"指令,从CAR空间跳转到Flash ROM 中的返回入口点(Return Entry),CPU又重新从Flash ROM中读取BIOS 程序(S19)。
在使用系统内存之前,BIOS关闭高速缓存的NEM模式,关闭 Cache-As-RAM功能,并把高速缓存恢复到缺省状态(S20)。
CPU把尚未运行的BIOS模块从BIOS Flash ROM中复制到系统内 存中(S21)。
再次通过跳转指令,使CPU从系统内存中运行BIOS程序,而不 再从BIOS Flash ROM中读取BIOS指令。CPU从系统内存运行所有的 BI0S程序,完成计算机平台的初始化,并最终进入OS或进入Shell 环境(S22)。
最后所应说明的是以上实施例仅仅用以说明而非限制本发明的 技术方案,尽管参照上述实施例对本发明进行了详细说明,本领域的 普通技术人员应当理解依然可以对本发明进行修改或者等同替换,
而不脱离本发明的精神和范围的任何修改或局部替换,其均应涵盖在 本发明的权利要求范围当中。
权利要求
1.一种加速BIOS运行的方法,包括以下步骤1)CPU从BIOS Flash ROM中读取第一条指令,开始运行BIOS程序;2)CPU打开高速缓存的非逐出模式NEM,初始化作为RAM的高速缓存CAR;3)CPU将BIOS程序从BIOS Flash ROM中复制到CAR空间中,完全在CAR空间中运行BIOS程序;4)在CAR空间BIOS程序运行的最后,CPU初始化系统内存;5)系统内存初始化完成后,CPU重新从Flash ROM中读取BIOS程序;6)CPU把尚未运行的BIOS程序模块从BIOS Flash ROM中复制到系统内存中;以及7)CPU从系统内存中运行BIOS程序,完成计算机的初始化。
2. 根据权利要求1所述的方法,其特征在于初始化CAR的步骤 包括为CAR空间指定一个基地址,并且此后对CAR空间的操作都基 于所述基地址。
3. 根据权利要求l所述的方法,其特征在于将BIOS程序复制到CAR 空间中的步骤包括设置BIOS程序从Flash ROM跳转进入CAR的入口点 和BIOS程序从CAR返回Flash ROM的返回入口点。
4. 根据权利要求3所述的方法,其特征在于CPU完全在CAR空间中 运行BIOS程序的步骤包括通过运行"Far Jump"指令,从Flash ROM 跳转到CAR空间中的入口点。
5. 根据权利要求3所述的方法,其特征在于CPU重新从Flash ROM 中读取BIOS程序的步骤包括通过"Far Jump"指令,从CAR空间跳转 到Flash ROM中的返回入口点。
6. 根据权利要求l所述的方法,其特征在于CPU在16位的Big-Real 模式下,从BIOS Flash ROM中读取BIOS程序;以及CPU在32位的保护模 式下,从CAR空间中读取和运行BIOS程序。
7.根据权利要求1所述的方法,其特征在于,在步骤6)之前,BIOS 关闭高速缓存的NEM模式,关闭CAR功能,并把高速缓存恢复到缺省状 态。
全文摘要
本发明提出了一种利用作为RAM的高速缓存加速BIOS运行的方法,包括在计算机上电后,CPU从BIOS Flash ROM中读取第一条指令,开始运行BIOS程序;CPU打开高速缓存的非逐出模式NEM,初始化作为RAM的高速缓存CAR;CPU将BIOS程序从BIOS Flash ROM中复制到CAR空间中,完全在CAR空间中运行BIOS程序,在CAR空间BIOS程序运行的最后,CPU初始化系统内存;系统内存初始化完成后,CPU重新从Flash ROM中读取BIOS程序,把尚未运行的BIOS程序模块从BIOS Flash ROM中复制到系统内存中,从系统内存中运行BIOS程序,完成计算机平台的初始化。
文档编号G06F9/445GK101097522SQ20061009079
公开日2008年1月2日 申请日期2006年6月30日 优先权日2006年6月30日
发明者柯海滨 申请人:联想(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1