现在的位置: 首页 > 综合 > 正文

IA-32架构下启动过程(1)

2013年02月13日 ⁄ 综合 ⁄ 共 1693字 ⁄ 字号 评论关闭
IA-32架构的启动过程详解:
     (1)电源通电,因为此时供电的电压不太稳定,所以主板的控制芯片组向CPU发出一个RESET(重置)信号。此时CPU不会马上执行指令。当芯片组确认供电稳定后,会撤去RESET信号。CPU开始从地址F:FFF0H处开始执行指令。(注明:这个地址是在BIOS程序所控制的地址,常见的BIOS程序厂商都是在这个地址开始写一个跳转指令。)
     (2)CPU执行了上一步中的跳转指令。跳转到主板BIOS启动代码所在位置(BIOS启动程序一般是固化在CMOS的存储体中)。BIOS启动代码首先是进行POST(加电自检)。POST是检查系统中的设备是否存在和是否能工作。此过程的时间比较短,而且不会向显卡或是显示器输出任何提示信息。因为此时显卡只是加电,还没有进行初始化。POST过程中出现的各种故障或是错误是由喇叭(也有用蜂鸣器)通过发出不同规律的报警声向用户提示的。
    (3)根据主板BIOS程序的不同设置,在上一阶段的POST中产生故障或是错误提示时,有的机器会停止执行任何操作和程序,也有的会自动重启并重新开始启动过程。
        在POST顺利通过后,主板BIOS在内存中高地址的部分(地址起止位置:A0000H-FFFFFH,大小384K)搜索除主板以外的所有设备的BIOS程序。(至于这部分内存的数据是从哪里来,本人还没有找到相关信息,本人猜测是在POST过程中被检测的设备在通电自检通过后,由设备自己的BIOS程序向内存写入。并且从IBM-PC/XT那时开始至今这部分内存的分配就是约定好的。因此,各种设备写入内存的信息的偏移地址是互不冲突的。)这个搜索过程具体是:首先找到显卡的BIOS程序,然后调用执行这段程序(一般的显卡厂商会在此时向屏幕显示一些初始化信息。所以开机时大家最先看到是显卡的信息)。在显卡这段BIOS程序执行完,主板BIOS会用相同的方式执行其它设备的BIOS程序,并通过这些BIOS程序初始化相关设备。(补充:在执行其它设备BIOS时,此时显示器应该是黑屏的,因为此时系统没有向外输出任何信息,但有的主板厂商则会让显示器一直显示主板厂商的LOGO图,这样用户是看不到包括显示器在内的所有设备BIOS的执行过程。当然LOGO图的显示时间由不同的主板厂商而有所不同,有的会一直保持到操作系统启动,有的则在这个过程结束时消失。)
        在查找并显示完所有其它设备的BIOS之后,主板BIOS就显示自己的BIOS信息(这时如果没有主板LOGO图,用户会在屏幕上方看到主板所使用的BIOS厂商,如:AMI BIOS的版本和它的LOGO)。
        (4)然后主板BIOS检测和显示CPU的型号和工作频率。接着是测试整个内存,然后显示内存测试的结果,包括内存的大小和频率。
        接下来主板BIOS开始检测一些标准硬件设备。包括硬盘、光驱、软驱等设备。在新版本的BIOS中会此过程中设置内存和硬盘的参数等。
        (5)在标准硬件设备检测结束后,如果主板BIOS支持即插即用设备,BIOS会逐个检测这些设备,并显示这些设备名称和型号信息,同时分配给这些设备所需要的硬件资源,如设备中断和I/O端口等。
        (6)在完成上述步骤后,检测完所有的硬件设备,并设置完所有设备的相关参数或分配设备所需的相关资源。此时大多数主板BIOS会清空屏幕显示一个表,表中大略显示了系统中安装的硬件设备和相关参数。
        (7)最后主板BIOS更新ESCD(扩展系统配置数据)。这些数据被保存在CMOS中。在硬件发生改变或BIOS的设置调整时才会被更新。
        ESCD更新后,主板BIOS的启动代码会按顺序检查所有的存储器,并从第一个可以引导的设备开始操作系统的启动。
      
       以上为启动过程的主要部分,相关名词和细节参数会在下面的文章进行详细描述。

       以上内容来源众多,包括书籍和网络等。如涉及版权和相关责任问题,本人会撤掉相关的内容。部分细节不详尽或不全等,希望大家积极提供保贵意见。

抱歉!评论已关闭.