之前我们介绍了CPU的几种功能,而说白了,CPU的基本工作就是执行计算机的一系列程序,而这些程序其实就是存储的指令序列。今天,我们来谈谈CPU是如何执行指令的。 几乎所有的冯·诺依曼型计算机的CPU,在执行存储的指令序列时,都可以分成五步走:取指令、指令译码、执行指令、访存取数和结果写回。而这五步,在计算机中又可以看成是一条流水线作业。总结下来,其实最主要的就是三步:取指令——分析指令——执行指令。 取指令阶段:根据程序计数器PC中的值从程序存储器读出现行指令,送到指令寄存器。因为对CPU而言,它识别的语言是机器语言,而我们通常见到的语言,如C、C++、Java等只是通过编写约定俗成的代码,然后转换成机器码,而这些机器码就引申出来我们所认识的汇编语言了。 分析指令阶段:将指令寄存器中的指令操作码取出后进行译码,指令译码器按照预定的指令格式,对取回的指令进行拆分和解释,分析其指令性质。如指令要求操作数,则寻找操作数地址。 执行指令阶段:完成指令所规定的各种操作,具体实现指令的功能。为此,CPU的不同部分被连接起来,以执行所需的操作。例如,如果要求完成一个加法运算,算术逻辑单元(ALU)将被连接到一组输入和一组输出,输入端提供需要相加的数值,而输出端将含有最后的运算结果。 CPU指令执行流程图,图片来源于网络 |
|