1.1.1 中央处理单元

2025-04-30 08:44:58 更新

中央处理单元(CPU):是计算机系统的核心部件,负责获取程序指令、对指令进行译码并加以执行。

(一)CPU的功能


CPU功能

说明

1

程序控制

CPU保证程序指令严格按规定顺序执行,通过执行程序控制计算机的行为。

2

操作控制

CPU产生每条指令的操作信号,并将其送往不同部件,控制相应部件按指令的功能要求进行操作。

3

时间控制

CPU对每条指令的整个执行时间要进行严格控制。

对指令执行过程中操作信号的出现时间、持续时间及出现的时间顺序严格控制。

4

数据处理

CPU通过对数据进行算术运算及逻辑运算等方式进行加工处理。

对数据的加工处理是CPU最根本的任务。

5

其他

CPU还需对系统内部和外部中断(异常)做出响应,进行相应处理

(二)CPU的组成

CPU主要由运算器、控制器、寄存器组和内部总线等部件组成。

(1)运算器

作用:数据加工处理部件,接受控制器的命令(执行部件),完成各种算术运算(加、减、乘、除等)和逻辑运算(与、或、非、零值测试或值比较)。


构成

说明

1

算术逻辑单元(Arithmetic and Logic Unit, ALU)

是运算器重要部件,负责处理数据,实现数据的算术运算和逻辑运算。

2

累加寄存器(Accumulator register,AC)

通常简称为累加器,是一个通用寄存器。至少有1个。

功能:当运算器的算术逻辑单元执行算术或逻辑运算时,为ALU提供一个工作区。为ALU暂时保存一个操作数或运算结果。

举例:在执行减法运算前,先将被减数暂存在AC中,再从内存中取出减数,然后与AC内容相减,所得结果送回AC暂存。

3

数据寄存器(Data Register,DR)

在对内存进行读写操作时,用于存放操作数(指令或数据字),其位数应满足多种数据类型的数值范围,将不同时间段内读写的数据隔离开来。

作用:

作为CPU和内存、外部设备之间数据传送的中转站及在操作速度上的缓冲;

在单累加器结构的运算器中,数据缓冲寄存器还可兼作操作数寄存器。

4

状态条件寄存器(PSW)

保存根据算术和逻辑指令运行或测试结果的各种状态信息,还用来保存中断和系统工作状态等信息,以便CPU和系统及时了解机器运行状态和程序运行状态。

分为状态标志和控制标志。

举例:如运算结果进位标志(C)、运算结果溢出标志(V)、运算结果为0标志(Z)、运算结果为负标志(N)、中断标志(I)、方向标志(D)和单步标志等。通常分别由1位触发器保存(当前指令执行完成后的状态)。

通常,一个算术操作产生一个运算结果,一个逻辑操作则产生一个判决。

(2)控制器

作用:控制整个CPU工作(程序正确执行+处理异常事件),决定了计算机运行过程的自动化。

逻辑:

  1. 指令控制逻辑:完成取指令、分析指令和执行指令操作
  2. 时序控制逻辑:为每条指令按时间顺序提供应有的控制信号
  3. 总线控制逻辑:为多个功能部件服务的信息通路的控制电路
  4. 中断控制逻辑:控制各种中断请求,并根据优先级的高低对中断请求进行排队,逐个交给CPU处理


构成

说明

1

指令寄存器(Instruction Register,IR)

当CPU执行一条指令时,先把它从内存中取到缓冲寄存器中,再送入IR暂存,指令译码器根据IR的内容产生各种微操作指令,控制其他部件协调工作,完成指令功能。

2

程序计数器(Program Counter,PC)

又称为指令计数器,具有寄存信息和计数两种功能。

①程序顺序执行

在程序执行前,将程序起始地址(加载到内存时确定)送入PC,PC保存程序第1条指令的地址。

执行指令时,CPU自动修改PC内容(要执行的下一条指令)。通常只是简单加1。

②程序转移执行

当遇到转移指令时,后继指令的地址根据当前指令的地址加上一个向前或向后转移的位移量产生,或者根据转移指令给出的直接转移的地址产生,再送入PC。

3

地址寄存器(AR)

AR保存当前CPU所访问的内存单元地址。由于内存和CPU存在操作速度上的差异,所以需要使用AR保持地址信息,直到内存读/写操作完成为止。

4

指令译码器(ID)

指令包含操作码(执行指令)和地址码两部分。

指令译码器是对指令中的操作码字段进行分析解释,识别该指令规定的操作,向操作控制器发出具体控制信号,控制各部件工作,完成所需功能。

(3)寄存器组


寄存器

说明

1

专用寄存器

运算器和控制器中的寄存器是专用寄存器,作用是固定的。

2

通用寄存器

通用寄存器用途广泛并可由程序员规定其用途,数目因处理器不同有所差异。

(4)常见寄存器

寄存器 16位 32位 64位

累加寄存器 AX EAX RAX

基址寄存器 BX EBX RBX

计数寄存器 CX ECX RCX

数据寄存器 DX EDX RDX

堆栈基指针 BP EBP RBP

变址寄存器 SI ESI RSI

堆栈顶指针 SP ESP RSP

指令寄存器 IP EIP RIP

(5)内部总线

用于在CPU与其他计算机部件(如内存、输入输出设备)之间传输数据和控制信号的通信路径。总线包括数据总线、地址总线和控制总线。

(三)CPU性能指标


指标

说明

1

时钟频率

单位赫兹(Hz),表示CPU每秒钟可以执行的指令周期数。

通常以GHz表示,频率越高,处理速度越快。

2

核心数

CPU中的处理核心数量。

更多的核心可以同时处理更多的任务,从而提高多任务处理能力。

3

线程数

每核心可以同时处理的线程数量。

超线程技术(Hyper-Threading)允许每个核心处理多个线程,从而提高多任务处理效率。

4

缓存大小

CPU内的高速缓存容量,包括L1、L2和L3缓存。

更大的缓存可以减少内存访问延迟,提高数据访问速度。

5

指令集

CPU支持的指令集,如SSE、AVX等。

这些指令集可以加速特定类型的计算任务,如浮点运算、多媒体处理等。

6

功耗

设计功耗,表示CPU在标准工作负荷下的热输出功率。

功耗影响CPU的散热和能源效率。

7

制造工艺

CPU的制造工艺节点,以纳米(nm)为单位,表示晶体管的尺寸。

工艺节点越小,通常意味着更高的性能和更低的功耗。

8

带宽

数据在CPU与内存、输入输出设备之间传输的速度。

包括前端总线带宽、内存带宽等。

9

超频能力

CPU超频能力,通过提升时钟频率来提高性能。

(四)CPU工作流程

阶段:取指令(Fetch)、译指令(Decode)、执行指令(Execute)、内存访问(Memory Access)和写回(Write-back);

单核CPU每次只能处理一条指令。

假设指令(内存地址0x1000)是 ADD R1, R2, R3,(其中,R1结果寄存器,R2和R3操作数寄存器)。


流程

说明

1

取指令

CPU从内存地址0x1000中取出执行加法操作的指令。

指令地址由程序计数器PC提供,PC指向存储该指令的内存地址。

2

译指令

CPU控制单元CU将取出的指令ADD R1, R2, R3进行解码

控制单元识别出这是一条加法指令,操作数是寄存器R2和R3,结果需要存储到寄存器 R1 中。

3

执行指令

CPU的算术逻辑单元ALU接收到指令,开始执行加法操作。

ALU从寄存器R2和R3中获取操作数,将它们相加,并计算出结果。

4

内存访问

加法指令暂不涉及。因为操作数和结果都在寄存器中。

如果指令涉及读取或写入内存数据,这一步将执行相关的内存操作。

5

写回

将ALU计算出的结果写回寄存器R1中。

结果存储到寄存器R1后,R1中就包含了R2和R3相加的结果。

(五)CPU分类

CPU主要分为两大阵营,

以intel(X86架构)、AMD(X86架构)为首的复杂指令集CPU,

以IBM(PowerPC架构)、ARM(ARM架构)为首的精简指令集CPU。

ARM:是Advanced RISC Machine的缩写,即高级精简指令集计算机。

(六)多核CPU

(1)CPU核心(内核)

CPU核心材料是单晶硅。

CPU所有的计算、接收/存储命令、处理数据都由核心执行。

CPU核心具有固定的逻辑结构,一级缓存、二级缓存、执行单元、指令级单元和总线接口等。

多核在一个单芯片上面集成两个甚至更多个处理器内核,其中每个内核都有自己的逻辑单元、控制单元、中断处理器、运算单元,一级Cache(独享128KB2MB)、二级Cache(独享或共享256KB32MB)共享或独有,其部件的完整性和单核处理器内核相比完全一致。三级Cache(共享1MB128MB)

(2)Intel和AMD

Intel和AMD的双核技术在物理结构上有很大不同。

双核:AMD将两个内核做在一个Die(晶元)上,采用直连架构,核心之间以芯片速度通信,降低了处理器之间的延迟。双核CPU管脚、功耗等指标与单核CPU保持一致,AMD升级只需要刷新BIOS。

双芯:Intel将两个独立的内核封装在一起,采用多个核心共享前端总线的方式。会遇到多个内核争用总线资源的瓶颈。

(3)逻辑CPU

实际上CPU的大部分时间资源都是被闲置的。为进一步压榨CPU性能,通过复制一些CPU内部组件,如寄存器或一级缓存,来运行第二个线程,相当于有了两颗CPU。

逻辑CPU=物理CPU个数*每颗核数*2

(4)超线程

Intel独有的技术。把一个物理线程模拟出两个线程来使用,使得单核心用起来像两个核一样。

(5)多核VS单核

多核:优点是可满足用户的多任务处理。理论上在任何时间内每个核都分别执行各自任务,不存在交替问题。多核速度更快。

单核:单核多线程是交替(时间极短)转换执行多任务。Intel超线程技术的单核可以视为双核。