1.7 CPU 中央处理器(The Central Processing Unit)

2022-10-02
3分钟阅读时长

1.7.1 组成概述

CPU 简图

CPU

CPU (Central Processing Unit,中央处理单元)是负责通过「指令」指示程序如何操作的器件,其通常由寄存器、控制单元、ALU、时钟等组成。

比如,若要执行加/减的数学指令,则交由 ALU 完成;若是内存指令,则与 RAM 通信配合进行读写操作(APU 与 RAM 用“地址线”、“数据线”和“允许读/写线”进行通信)。

微体系框架

使用高层次的视角观察计算机的方式称为「微体系架构」(microarchitecture),其更注重于逻辑上的「功能」。比如当我们用一条线连接 2 个组件时,这条线只是所有必须线路的抽象,并不代表两者连接仅仅通过一条线。

指令

指令由「操作码」(operation code, opcode)和「地址码」组成,前者用于说明操作指令的 ID,后者则表示数据来自哪里(寄存器或内存地址)。指令用于指示计算机要做什么,多条指令共同组成程序。

8-bit指令

寄存器

CPU 的控制单元中至少有 两个寄存器,一个「指令地址寄存器」(the instruction address register)用于存放当前指令的内存地址,另一个是「指令寄存器」(the instruction register)用于存储当前指令。

另外还有一些寄存器用于临时存储数据和操作数据(如图中的 ABCD,其与 RAM 相连),寄存器也用于存储程序。

时钟

时钟(Clock)负责管理 CPU 运行的节奏,以精确地间隔触发电信号,控制单元用这个信号来推动 CPU 的内部操作。

时钟速度(Clock Speed)是指 CPU 执行“取指令 -> 解码 -> 执行”中每一步的速度,单位为赫兹 Hz (频率单位,1Hz 表示 1 秒 1 个周期)。1MHz 为 1 秒 100w 个时钟周期,如今的电脑或是手机的时钟速度在千兆级别(1 秒 10 亿次时钟周期)。

超频(overclocking)/ 降频(underclocking)是指修改时钟速度,加快或降低 CPU 的速度。超频过多会让 CPU 过热或产生乱码,降频可以省电,对笔记本和手机很重要,通常会动态调整。

1971 年发布的 4 位 CPU Intel 4004 是第一个单芯片 CPU,其微体系架构(microarchitecture)类似与上述所言,其时钟频率达到 740k Hz(每秒 74 万次)。

Intel 4004 体系架构

1.7.2 CPU 基本工作原理

CPU 的运作分为三个阶段:取指令(fetch phase)、解码(decode phase)、执行(execute phase)。

取指令

取指令

(1)指令地址寄存器发地址给 RAM

(2)RAM 发该地址内的数据给指令寄存器

(3)指令寄存器接受数据

解码

解码

指令寄存器根据数据发送指令给控制单元 -> 控制单元解码(使用逻辑门来确认操作码是否为某个指令,示例为 0010-LOAD A、地址 1110-14)

执行

📌e.g. LOAD A(取数):

LOAD A

(1)使用确认指令(LOAD A)的电路打开寄存器 A 的允许写入线,将从 RAM 读取到的数据存入 A。

(2)指令地址寄存器 +1,继续执行下一指令。

📌e.g. ADD(加法)

操作码 1000 0100 在解码阶段会被解出,1000 指 ADD 相加,则相应的后 4 位会被解释为名为 01 和 00 的两个寄存器地址,分别为寄存器 B 和寄存器 A -> 把寄存器 B 的值加入寄存器 A 中。

ADD

(1)调用 ALU,控制单元将寄存器 B 作为 ALU 的第一个输入,将寄存器 A 作为 ALU 的第二个输入,同时传入 ADD 操作码进入 ALU。

(2)ALU 计算完成后将结果暂存于控制单元中的寄存器中,若 ALU 直接将结果存于寄存器 A 中,则会出现不断自加的情况。

(3)控制单元关闭 ALU 后, 将暂存在内部寄存器中的计算结果放入寄存器 A 中。

(4)指令地址寄存器 +1。

📌e.g. STORE(存数)

操作码 0100 1101 在解码阶段会被解出,0100 为 STORE A,1101 是 RAM 地址 13。

STORE

(1)打开寄存器 A 的允许读取线,将读取到的数据存入 RAM 。

(2)程序结束,HALT 停止。