计算机开机运行是如何实现第一条取指指令的?请从电路层级解释

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机开机运行是如何实现第一条取指指令的?请从电路层级解释相关的知识,希望对你有一定的参考价值。

打开电源,存储在cmos里的Bios程序开始检验硬件,这就是开机自检。先是北桥芯片包括CPU、内存、显卡、硬盘等。然后是南桥芯片。自检同时CPU开始复位,硬件设定IP指针指向0xFFFF0,此时内存条中还未有任何内容。自检成功后,屏幕上显示BIOS相关信息和显卡显存的相关信息。同时BIOS电路将自身拷贝到内存的前1MB当中,将控制权交给CPU。由于CPU的IP已经指向了一个地方,所以这个地方将是CPU的第一道指令。这道指令以一个绝对跳转跳转到内存前1MB的某一个地方,该地方是读取硬盘主引导扇区的指令。主引导扇区被加载到内存后,CPU将控制权交给主引导记录,主引导记录因操作系统的不同而不同。microsoft的操作系统要求只能有1个主分区。如果不满足这个条件则在屏幕上显示错误信息并重新启动计算机。如果主分区存在则加载主分区代码,进一步将指令流控制权交给主分区引导代码。主分区引导代码将与操作系统初始化的模块从硬盘读入内存,其中比较重要的模块就是c:\下的ntldr。该程序分为两部分,一部分工作在实模式下,一部分工作在保护模式下。当ntldr被加载后,控制权又被交给ntldr。随着ntldr的运行,内核基本模块ntoskrnl.exe被加载入内存。ntldr又将控制权交给内核基本模块,由它完成操作系统的初始化。最后我们的操作系统就在我们眼前了。。。以上内容纯属手打,深夜劳作多有不全之处望楼主理解 参考技术A 搜一下:计算机开机运行是如何实现第一条取指指令的?请从电路层级解释

1-5 计算机执行指令的过程

 

一、计算机执行一条指令的主要步骤

  第一步:取指(Fetch)

  第二步:译码(Decode)

  第三步:执行(Execute)

  第四步:回写(Write-Back)

 

二、执行指令的示例

  例如指令: ADD R0, [6];

  指令功能:将寄存器R0和地址为6的存储单元的数据进行加法运算并将结果更新到R0中

 

  第一步:取指

    1.控制器将指令的地址(PC的内容)送往存储器

    2.存储器按给定的地址读出指令内容,送回控制器(一般存放在IR寄存器中)

    3.更新PC

  第二部:译码

    1.控制器分析指令的操作性质

    2.控制器向有关部件发出指令所需的控制信号

  第三步:执行

    1.控制器从通用寄存器或存储器取出操作数

    2.控制器命令运算器对操作数进行指令规定的运算

  第四步:回写

    将运算结果写入通用寄存器或存储器

    之后会自动执行下一条指令(取PC的值继续执行)

 

以上是关于计算机开机运行是如何实现第一条取指指令的?请从电路层级解释的主要内容,如果未能解决你的问题,请参考以下文章

开机CPU执行的哪些指令?

计算机加电后执行的第一条指令的地址是怎样形成的

计算机复位后CPU的第一指令执行地址

1-5 计算机执行指令的过程

2.5 计算机执行指令的过程

了解一个静态的结构一个有效的方式是观察其动态的过程