当您打开计算机电源时,CPU立即会做什么?

实际上,无论是传统计算机还是任何其他设备中的所有CPU,都将通过在某个固定地址执行代码来从复位状态启动。 该地址根据CPU的类型而变化,通常称为复位向量。 在x86 CPU上,它的地址比最大可寻址内存少16个字节。 复位退出后,许多CPU在地址0000处开始执行代码。 在功能正常的系统中,该地址需要某种有意义的代码,通常在2017年,它将是某种非易失性存储器,例如闪存或ROM / PROM / EPROM。 在过去的日子里,操作员会使用一系列开关将一些代码切换到复位向量地址处的内存中,然后切换复位以启动计算机。 大多数系统都具有某种逻辑或模拟电路,可将CPU保持在复位状态,直到电源稳定到足以为系统中的所有部件正确供电为止。

x86在物理地址空间结束之前开始执行代码16个字节。 在此位置,BIOS由芯片组映射。 最后一条指令跳回到已知位置,以使BIOS执行起始地址的BIOS大小独立。

大多数其他体系结构从物理地址0开始执行。

它在cpu中有一个固件,可用于初始化自身,直到可以与芯片组通信为止。

在可以与芯片组对话之后,芯片组会给它提供初始化主板的BIOS,通常是在其中访问ddr ram的位置。 到现在为止,它都在CPU的内部ram上运行(通常在设置为缓存之前是其缓存)。

在可以访问ram之后,它将初始化所有其他硬件并发布。

之后,BIOS查找引导设备并引导计算机。

它要做的第一件事是由主板重置以使其处于已知状态。

接下来的事情是执行引导代码以加载初始加载程序。

它需要花费几个时钟周期来进行自我复位,然后直接跳转到ROM中的引导加载程序例程,然后开始执行引导加载程序,该引导加载程序旋转引导驱动器,将其读头放回原处,并开始从中加载操作系统驱动器…

B-)

A2A:从BIOS ROM(或UEFI)执行代码,它(从硬盘驱动器)将一个称为引导加载程序的小程序读入内存。