计算机执行指令的过程详解
cpu执行指令的过程详解一、计算机的基本组成冯·诺依曼计算机的特点(机器以运算器为中心)计算机由控制器(分析和执行机器指令并控制各部件的协同工作)、运算器(根据控制信号对数据进行算术运算和逻辑运算)、存储器(内存存储中间结果,外存存储需要长期保存的信息)、输入设备(接收外界信息)和输出设备(向外界输送信息)五大部件组成指令(程序)和数据以二进制不加区别地存储在存储器中程序自动运行现...
计算机执行指令的过程详解
一、计算机的基本组成
冯·诺依曼计算机的特点(机器以运算器为中心)
- 计算机由控制器(分析和执行机器指令并控制各部件的协同工作)、运算器(根据控制信号对数据进行算术运算和逻辑运算)、存储器(内存存储中间结果,外存存储需要长期保存的信息)、输入设备(接收外界信息)和输出设备(向外界输送信息)五大部件组成
- 指令(程序)和数据以二进制不加区别地存储在存储器中
- 程序自动运行
现代计算机由三大部分组成(已经转化为以存储器为中心)
- CPU(Central Processing Unit) 中央处理器,核心部件为ALU(Arithmetic Logic Unit,算术逻辑单元)和CU(Control Unit,控制单元)
- I/O设备(受CU控制)
- 主存储器(Main Memory,MM),分为RAM(随机存储器)和ROM(只读存储器)
//CPU与MM合成主机,I/O设备可称为外部设备
二、一条指令在CPU的执行过程
相关术语名词:
1. Ad(Address) 形式地址
2. AC(Accumulation register)累加寄存器
3. ALU(Arithmetic logic unit)算术逻辑单元
4. MQ(Multiplier-Quotient Register)乘商寄存器
5. DR(Data Register) 数据寄存器
6. AR(Address Register) 地址寄存器(MAR)
7. IR(Instruction Register) 指令寄存器
8. BR(Buffer Register) 缓冲寄存器(MBR)
9. ID(Instruction Decoder) 指令译码器
10. PC(ProgramCounter) 程序计数器
存储器
运算器
控制器
cpu执行指令的过程详解
计算机每执行一条指令都可分为三个阶段进行。即
取指令-----分析指令-----执行指令
取指令的任务是:根据程序计数器PC中的值从程序存储器读出现行指令,送到指令寄存器。
分析指令阶段的任务是:将指令寄存器中的指令操作码取出后进行译码,分析其指令性质。如指令要求操作数,则寻找操作数地址。
执行程序的过程实际上就是逐条指令地重复上述操作过程,直至遇到停机指令可循环等待指令。
一般计算机进行工作时,首先要通过外部设备把程序和数据通过输入接口电路和数据总线送入到存储器,然后逐条取出执行。但单片机中的程序一般事先我们都已通过写入器固化在片内或片外程序存储器中。因而一开机即可执行指令。
举例说明
开机时,程序计算器PC变为0000H。然后单片机在时序电路作用下自动进入执行程序过程。执行过程实际上就是取出指令(取出存储器中事先存放的指令阶段)和执行指令(分析和执行指令)的循环过程。
例如执行指令:MOV A,#0E0H
,其机器码为“74H E0H
”,该指令的功能是把操作数E0H
送入累加器,
0000H
单元中已存放74H
,0001H
单元中已存放E0H
。当单片机开始运行时,首先是进入取指阶段,其次序是:
-
程序计数器的内容(这时是
0000H
)送到地址寄存器; -
程序计数器的内容自动加1(变为
0001H
); -
地址寄存器的内容(
0000H
)通过内部地址总线送到存储器,以存储器中地址译码电跟,使地址为0000H
的单元被选中; -
CPU使读控制线有效;
-
在读命令控制下被选中存储器单元的内容(此时应为74H)送到内部数据总线上,因为是取指阶段,所以该内容通过数据总线被送到指令寄存器。至此,取指阶段完成,进入译码分析和执行指令阶段。
由于本次进入指令寄存器中的内容是74H(操作码),以译码器译码后单片机就会知道该指令是要将一个数送到A累加器,而该数是在这个代码的下一个存储单元。所以,执行该指令还必须把数据(E0H)从存储器中取出送到CPU,即还要在存储器中取第二个字节。其过程与取指阶段很相似,只是此时PC已为0001H。指令译码器结合时序部件,产生74H操作码的微操作系列,使数字E0H从0001H单元取出。因为指令是要求把取得的数送到A累加器,所以取出的数字经内部数据总线进入A累加器,而不是进入指令寄存器。至此,一条指令的执行完毕。单片机中PC=“0002H”,PC在CPU每次向存储器取指或取数时自动加1,单片机又进入下一取指阶段。这一过程一直重复下去,直至收到暂停指令或循环等待指令暂停。CPU就是这样一条一条地执行指令,完成所有规定。
cpu执行指令步骤详解
1、第一步我们首先看一下cpu的内部结构,主要包括寄存器,控制器,ALU算数逻辑运算单元,控制器里面又含有操作控制器,计数器,寄存器等,如下图所示:
2、第二步我们了解了cpu的内部结构之后,就比较容易理解cpu是如何执行指令的,cpu执行指令主要分为5个阶段,从取指令,导进行指令译码,执行指令,访问主存,最后回写结果,具体cpu执行过程如下图所示:
3、第三步我们首先来看cpu执行指令的一、二阶段,cpu是怎么取指令和进行指令译码,将指令先从主存里面取出,然后放到寄存器,最后进行指令译码,这样就完成cpu执行指令的一、二阶段,具体如下图所示:
4、第四步cpu执行指令的三、四阶段,首先根据指令规定的操作,完成具体功能,最后访问主存,操作数,得到物理地址,就完成了执行指令和访问主存的三、四阶段,如下图所示:
5、第五步在cpu第四阶段访问主存的时候,需要得到物理地址,具体读写过程如下图所示:
6、第六步我们也可以看一下cpu是怎么读指令的,下面是cpu的工作原理,如下图所示:
7、第七步cpu执行指令进去到了第五个阶段,也是最后一个阶段回写结果,把第三阶段执行指令的运行结果数据回写到一种存储形式,cpu这样就成功执行完了一条指令,如下图所示
参考:
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)