传统x86系统开机过程中BIOS何时被加载?
传统x86系统BIOS加载与启动阶段说明
一、BIOS的执行逻辑
传统x86系统中,BIOS并非被"加载"到内存——它本身就存储在主板的非易失性ROM芯片(如SPI Flash)中。系统启动流程中的BIOS触发逻辑如下:
- 设备断电时处于G3(完全断电)状态,接通电源后先进入S5(软关机/待机供电)状态,此时仅主板关键组件(CMOS、电源管理芯片)维持供电;
- 触发开机信号(如按电源键)后,系统切换至S0(运行)状态:电源管理芯片为主板全组件供电,CPU完成复位后,会自动跳转到固定物理内存地址
0xFFFF0(该地址映射到BIOS ROM的起始执行区域),直接执行ROM中的BIOS代码。
二、BIOS执行的标准阶段(S5到S0的完整流程)
从S5唤醒进入S0后,BIOS的执行遵循标准化阶段:
- POST(加电自检)阶段:逐一检测CPU、内存、芯片组、存储设备、显卡等硬件状态,故障时通过蜂鸣码或屏幕提示报错;
- 硬件初始化阶段:配置内存控制器、PCIe总线、SATA接口等组件,建立基础硬件运行环境;
- 启动设备选择阶段:读取CMOS中设置的启动优先级,依次检测可启动设备,找到包含MBR(主引导记录)的设备后,将MBR内的引导加载程序读取到内存
0x7C00地址,再把CPU执行权移交该程序; - BIOS退出阶段:完成自身使命后,切换CPU运行模式(如从实模式转保护模式),等待操作系统接管控制权。
三、S5到S0过程中的BIOS触发规则
S5状态下BIOS仅以静态数据形式存于ROM,并未运行。只有当系统从S5唤醒进入S0时,CPU复位后才会启动BIOS代码执行,这是x86架构的标准设计,所有传统BIOS系统均遵循此流程。
内容的提问来源于stack exchange,提问作者omar_hussein
相关产品推荐
相关产品推荐

