计算机基本原理 学习笔记(五)

本篇目录

接上)

七、中央处理器CPU

1.CPU的结构

2. 提高CPU的速度

(1)硬件

(2)指令集

(3)缓存

(4)指令流水线

(5)超标量处理器

(6)多核处理器

3.超级计算机

4.小结:基本概念的组成关系

总结


接上一篇 学习笔记(四)

七、中央处理器CPU

1.CPU的结构

综上,一个CPU的大致结构如图。内存RAM是独立于CPU之外的,CPU通过数据线、地址线、控制线与内存通信。CPU内部有寄存器、算数逻辑单元ALU、控制单元CU、时钟。其中控制单元是指挥,算数逻辑单元负责具体计算(包括算术运算和逻辑运算),寄存器负责暂存少量数据,时钟负责发出规律的电信号来使CPU有序运行。

2. 提高CPU的速度

早期计算机的提速方式是尽可能减少晶体管的切换时间,但这最终会遇到瓶颈。CPU提速还有其它技巧。

(1)硬件

将常用的操作在硬件层面设计为单独的电路来运行,这样的ALU更复杂但CPU速度提升。现代处理器用专门的电路来处理图形、视频、加密等操作,如果使用标准电路来执行就需要更多的时钟周期。

(2)指令集

Intel4004是第一个集成CPU,有46条指令。之后的CPU指令越来越多,向下兼容,提供更加丰富的功能。

(3)缓存

CPU通过总线从内存中读取数据有一定的延迟,RAM的速度成为瓶颈,使得CPU空等数据。解决的方法是在CPU内部设计一小块存储器,即缓存,通常是kB级或MB级。内存可以一次传送一批数据到CPU中的缓存中,因为数据通常是按顺序处理的。当CPU需要数据时,如果数据在缓存中已经有了,这就时“缓存命中”,反之则是“缓存未命中”。因为缓存在CPU内部,一个时钟周期就能给数据,CPU无需空等。

缓存也可以用来存储运算结果的中间值,这样速度更快。但这可能产生缓存与RAM不一致的问题。所以缓存中每块空间有一个特殊标记,“脏位”(dirty bit),当缓存满了而CPU又要缓存时就检查“脏位”,若dirty bit 为true,就将缓存存储到内存中(清空缓存),然后再次使用缓存。

(4)指令流水线

一条指令的执行需要取指、解码、执行三个步骤,如果每条指令都按顺序执行的话,那一条指令需要三个时钟周期才能执行完。但其实这三个步骤使用的是CPU中的不同部件,因而可以形成流水线,进行并行处理。这样,就可以平均在一个时钟周期执行完一条指令。

但是有一个问题:一些指令之间存在依赖性,因此为了保证正确运行,就要停下流水线。于是,高级CPU会动态排序有依赖关系的指令,尽可能减少因为指令依赖关系而停下流水线的时间。这就是乱序执行,电路非常复杂,但效率高。

另一个问题是:条件跳转指令需要等待一些数据来做出判断,这会造成空等。跳转指令就像一个岔路口,需要数据来判断前进方向。现代处理器会提前预测可能的判断结果,将指令放进流水线,即“推测执行”。如果等数据出来,发现CPU猜对了,那么流水线上已经装满正确的指令,可以立即开始执行,这就提高了速度。但如果CPU猜错了,那么就要花时间清空流水线,然后再重新加载指令。这就像在岔路口选错了路,就掉头回去。通过一些复杂的电路设计,现代CPU进行“分支预测”的正确率超过90%,这就能大大提高效率。理想情况下,流水线一个时钟周期能完成一个指令。

(5)超标量处理器

超标量处理器就是一个时钟周期能完成超过一个的指令。有些指令在执行时,CPU中还是会有一些部件是空闲的,因此更优的设计是一次性处理多条指令(取指、解码)。也有的CPU中设计多个ALU,这样就可以同时进行多个数学运算。

(6)多核处理器

还可以使用多核处理器(一个CPU中有多个独立处理单元,每个处理单元可以共用一些资源)来同时运行多个指令流水线。也可以使用多个CPU。

3.超级计算机

中国无锡国家超算中心,神威·太湖之光超级计算机,有40960个CPU,每个CPU有256个核心,每个核心的频率是1.45GHz。

4.小结:基本概念的组成关系


总结

本篇内容:

1.CPU的结构

2.提高CPU运行效率的方法

猜你喜欢

转载自blog.csdn.net/Dr_Cheeze/article/details/127934907