CPU 也就是中央处理器,内部主要包含运算单元 控制单元 存储单元这三大基础核心单元,现代多核 CPU 还在此基础上增加缓存单元 寄存器单元 总线接口单元 分支预测单元 浮点运算单元等扩展模块,整套单元协同工作,完成取指令 译码 执行 写回这一套完整运算流程,运算单元负责做算术和逻辑计算,控制单元负责调度指挥所有模块按顺序工作,存储单元用来临时存放正在处理的数据和指令,三大基础单元是所有 CPU 架构的根基,后面新增单元都是为了提升运算效率,弥补基础单元性能短板。
CPU 设计成多单元分工协作,是因为如果只用单一电路完成全部工作,运算速度会非常慢,把不同任务拆分给专属单元处理,各单元并行配合,才能让高频运算稳定运行,每一条程序指令都要经过多个单元接力处理,任何一个单元出现故障,整条指令执行流程就会出错。
核心单元功能对照表
| 单元名称 | 核心作用 |
|---|---|
| 控制单元 CU | 从内存读取指令,翻译指令含义,发送控制信号,调度运算单元和寄存器完成操作,相当于 CPU 总指挥 |
| 算术逻辑单元 ALU | 也就是运算单元,执行加减乘除基础算术运算,同时完成与或非比较移位这类逻辑运算 |
| 浮点运算单元 FPU | 专门处理小数浮点计算,图形渲染科学计算这类任务高度依赖这个单元,早期 CPU 是独立协处理器,现在已经集成在 CPU 内部 |
| 寄存器 | 属于 CPU 内部高速临时存储单元,速度远高于内存,存放马上要参与运算的数据 指令地址 运算中间结果 |
| 高速缓存 Cache | 分级缓存,一般分为 L1 L2 L3,用来存放频繁使用的数据和指令,减少 CPU 等待内存读取数据的时间 |
| 总线接口单元 BIU | 负责 CPU 和外部内存 主板芯片组之间的数据通信,控制数据进出 CPU |
| 分支预测单元 | 预判程序跳转分支,提前预取指令,避免流水线停顿,提升流水线执行效率 |
| 流水线相关单元 | 包含指令预取 译码 执行 访存 写回等流水段模块,实现多条指令分段并行处理 |
指令执行完整流程
第一步 控制单元发出信号,指令预取单元从内存或者缓存取出下一条指令,送入寄存器暂存。
第二步 译码单元解析这条指令,识别需要调用哪个运算单元,确定操作数地址。
第三步 算术逻辑单元或者浮点运算单元执行计算,得到运算结果。
第四步 结果写回寄存器,后续通过总线接口单元,把最终数据写回内存。
第五步 控制单元切换到下一条指令,循环重复整套流程。
补充深度说明
传统教材经典定义只讲三大单元,也就是控制单元 算术逻辑单元 寄存器存储单元,但是现代 CPU 因为超标量 流水线 多核设计,内部单元数量大幅增加,多核 CPU 每个核心都自带一套独立的 ALU FPU 寄存器 L1 缓存,L3 缓存一般是所有核心共享,多个核心之间还带有互联单元,用来在核心之间交换数据。总线接口单元统一对外通信,缓存控制器负责管理缓存命中和失效,这些新增单元不会改变三大基础单元的核心地位,只是现代架构的扩展组件。
【常见问题】
问题 1 CPU 里面的运算单元就是 ALU 吗
回答 1 CPU 里面基础运算单元核心就是 ALU 算术逻辑单元,但是 CPU 还额外集成 FPU 浮点运算单元,专门处理浮点运算,不能把 CPU 全部运算能力只等同于 ALU。
问题 2 CPU 包含哪些单元里面寄存器和缓存是同一个东西吗
回答 2 CPU 包含哪些单元里面寄存器和缓存都属于高速存储单元,但是二者不一样,寄存器速度更快容量极小,缓存容量更大速度略低于寄存器,分工和作用存在明显区别。
问题 3 控制单元在 CPU 里面是不是最核心单元
回答 3 CPU 包含哪些单元里控制单元是调度指挥核心,但是不能单独说它最重要,运算单元负责实际计算,存储单元负责临时存数据,所有单元必须协同,缺少任意单元 CPU 都无法正常工作。
问题 4 多核 CPU 每个核心都有独立运算单元吗
回答 4 多核 CPU 每个核心都自带独立 ALU FPU 和寄存器,也就是每个核心拥有独立运算单元,共享部分缓存和总线接口单元,这也是多核 CPU 可以并行处理多任务的基础。
【免责申明】
本文仅为 CPU 内部组成单元科普讲解,不同厂商不同架构 CPU 内部模块划分会有差异,属于架构设计区别,不代表所有 CPU 内部单元完全一致,本文不涉及芯片设计专业工程方案。


