CPU 是如何执行程序的?

1. 图灵记的工作方式

1.1 图灵机的基本组成

  • 纸带:纸带相当于内存,由一个个连续的格子组成,格子中的字符就好比内存中的数据或程序。
  • 读写头:读写格子中的字符
  • 读写头上的部件:1.存储单元:存放数据 2.控制单元:识别字符是数据还是指令,以及控制程序的流程 3.运算单元:执行运算指令

1.2 1+2运算过程

  • 读写头将纸带上写上字符1、2、+
  • 控制单元判断1、2是数据,于是依次将1、2读入到存储设备(图灵机的状态)中
  • 控制单元判断 + 号是指令,于是不存到图灵机状态中,而是通知运算单元执行指令。
  • 运算单元将1、2读取进来,进行运算得到3,然后将3存放到状态中。
  • 运算单元将状态中的3返回给控制单元,控制单元再返回给读写头,读写头将3写入到纸带的格子中。

1.3 图灵机功能总结

读取纸带格子中的内容,然后交给控制单元识别字符是数字还是运算符指令,如果是数字则存入到图灵机状态中,如果是运算符,则通知运算符单元读取状态中的数值进行计算,计算结果最终返回给读写头,读写头把结果写入到纸带的格子中。

2. 冯诺依曼模型

2.1 冯诺依曼模型的组成

运算器、控制器、存储器、输入设备、输出设备
对应到现在的计算机:运算器和控制器以及其他组件构成cpu,存储器是内存,输入输出设备是键盘、显示器等外设。

2.2 中央处理器

中央处理器又称为CPU,CPU有一个重要的属性即CPU位宽,我们说的32位CPU和64位CPU的含义如下:

  • 32位CPU:一次性计算4个字节
  • 64位CPU:一次性计算8个字节
  • 2^32B = 4GB 2^10B = 1KB 2^20B = 1MB 2^30B = 1GB 2^40B = 1TB

3. 线路位宽和CPU位宽

  • 线路位宽:地址总线有多少根即通常所说的操作系统多少位
  • CPU位宽:一次可以计算数据的bit数-
  • 32 位 CPU 最大只能操作 4GB 内存,就算你装了 8GB 内存条,也没用,换句话说,你的最大计算能力是4GB,但是你的寻址能力是 8GB ,也就是说你顶多能利用 4GB 的寻址。

4. 程序执行的基本过程

CPU执行程序的过程:

  • 程序计数器:存放指令的地址 指令寄存器:存放指令
  • 第一步:CPU读取程序计数器的值,然后控制单元操作地址总线制定需要访问的内存地址,接着通知内存设备准备数据,设备准备好之后通过数据总线将指令数据传给CPU,CPU将收到的指令数据存放到指令寄存器中。
  • 第二步:CPU分析指令寄存器中的指令,确定指令的类型和参数,如果是计算型的指令,就把指令交给逻辑运算单元运算,如果是存储类型的指令,就交给控制单元执行。
  • 第三步:CPU执行完指令后,程序计数器的值自增,表示指向下一条指令。这个自增的大小,由 CPU 的位宽决定,比如 32 位的 CPU,指令是 4 个字节,需要 4 个内存地址存放,因此程序计数器的值会自增 4;
    CPU的指令周期:
  • CPU从程序计数器读取指令、到执行再到下一条指令这个不断循环的过程。

5. a=1+2的具体执行过程

6. 指令

  1. 指令的编码:将程序编译为汇编代码、用汇编器将汇编码翻译为机器码
  2. 指令的解码:CPU执行程序时解析指令
  3. CPU执行指令的4级流水线:
    详细看小林coding
posted @ 2022-05-07 12:58  盐小果  阅读(1367)  评论(0编辑  收藏  举报