CPU的组成部分

从功能方面看,CPU的内部由以下四部分组成:

  • 寄存器:寄存器用来暂存指令,数据等处理对象,可以看作是内存的一种。
  • 控制器:负责把内存上的指令,数据等读入寄存器,并根据指令的执行结果来控制整个计算机。
  • 运算器:负责运算从内存读入寄存器的数据。
  • 时钟:负责发出CPU开始计时的时钟信号。不过,也有些计算机的时钟位于CPU的外部。时钟信号以Hz(赫兹为单位),代表每秒的频率,时钟信号的频率越高,CPU的运行速度越快。

CPU的四个构成部分中,程序员只需要重点了解寄存器即可。

不同类型的CPU,其内部寄存器的数量,种类以及寄存器存储的数值范围都是不同的。不过根据功能的不同,我们可以将寄存器大制划分为八类。其中,程序计数器累加寄存器标志寄存器指令寄存器栈寄存器都只有一个,其他的寄存器一般有多个。

种类 功能
累加寄存器(accmulator register) 存储执行运算的数据和运算后的数据
标志寄存器(flag register) 存储运算处理后的CPU的状态
程序计数器(program counter) 存储下一条指令所在内存的地址
基址寄存器(base register) 存储数据内存的起始地址
变址寄存器(index register) 存储基址寄存器的相对地址
通过寄存器(general purpose register) 存储任意数据
指令寄存器(instruction register) 存储指令。CPU内部使用,程序员无法通过程序对该寄存器进行读写操作
栈寄存器(stack register) 存储栈区域的起始地址

几个寄存器使用的实例

  1. 标志寄存器:比较有意思的是,程序的比较操作就是在cpu内部利用标志寄存器做减法运算,例如X > Y,就是把X - Y的结果存在标志寄存器中,如果结果为负,表示X小于Y,反之则大于。
  2. 程序计数器:函数的调用,就是把程序计数器的值设定为函数的存储地址来实现。
上一篇:Hi3861_WiFi IoT工程:WiFi自动连接


下一篇:Pytorch register_forward_hook()简单用法