Central Processing Unit
CPU
- Central Processing Unit
- 它是能让计算机被称为
计算机
的核心组件
CPU主要组成
ALU
(算术逻辑单元)CU
(控制单元)SU
(存储单元)
CPU具体组成结构
运算器
操作控制器
预取器
寄存器
- 程序计数器 ---- 仅1个
Program Counter:存放下一条指令所在的地址
- 程序执行时,
程序计数器(PC)
的初值是程序的第一条指令的地址,控制器
根据PC中的地址找到第一条指令,然后分析和执行该指令,此时根据指令使PC中的值加1(顺序执行)或者变成指向下一条指令的地址(条件,循环),程序计数器控制着程序的流程 - 函数调用及返回机制
- call指令
程序执行到一个可执行函数的指令时,将下一条指令的地址作为目的地地址存放到栈内存中,等待函数执行结束后return指令调用
- return指令
将栈内存中的目的地地址设定在程序计数器中,使得程序继续运行
- call指令
- 程序执行时,
- 累加寄存器 ---- 仅1个
存储需要运算的数据和运算后的数据
- 标志寄存器 ---- 仅1个
存储处理器的状态和运算结果的特征,控制指令的执行
标志寄存器
的第一(低位0),第二(低位1),第三(低位2)比特位为1分别代表正,零,负
的状态,低三位一般有xxxxxxx001
:正;xxxxxxx010
:零;xxxxxxx100
:负,这三种状态。在CPU做比较运算的操作时,会做减法操作,无论减法的结果是正还是负还是0都会保存在标志寄存器中,正表示X大于Y,零表示相等。所以程序比较的指令实际上是做减法运算
- 指令寄存器 ---- 仅1个
存放正在被运行的指令,CPU内部使用,用户无法读取该寄存器
- 栈寄存器 ---- 仅1个
存储栈区域的起始位置
- 基址寄存器 ---- 可多个
存储数据内存的起始位置
- 通过地址和索引实现数组,和变址寄存器地址相加得出连续的实际地址
- 变址寄存器 ---- 可多个
存储基址寄存器的相对地址
- 通过地址和索引实现数组,和基址寄存器地址相加得出连续的实际地址
- 通用寄存器 ---- 可多个
存储任意数据
时钟
指令译码器
数据高速缓存
总线
CPU执行流程
- 取指令
- 译指令
- 执行指令
- 取数据
- 结果写回