计算机系统架构梳理(四)CPU

Posted by A Chang on March 8, 2020

计算机系统架构梳理(四)CPU

CPU性能指标

对于CPU而言,影响其性能的指标主要有主频、 CPU的位数以及CPU的缓存指令集。

  • CPU的主频,指的就是时钟频率,它直接的决定了CPU的性能,因此要想CPU的性能得到很好地提高,提高CPU的主频是一个很好地途径。
  • CPU的位数指的就是处理器能够一次性计算的浮点数的位数,通常情况下,CPU的位数越高,CPU 进行运算时候的速度就会变得越快。现在CPU的位数一般为32位或者64位。以前人们使用的计算机都是32位系统, 近年来人们使用的计算机的处理器中64位所占用的比例则显得更多,这是因为64位的计算机的运行速度变得更快,提高了人们的工作效率。
  • CPU的缓存指令集是存储在CPU内部的,主要指的是能够对CPU的运算进行指导以及优化的硬程序。一般来讲,CPU的缓存可以分为一级缓存、二级缓存和三级缓存,而那些处理能力比较强的处理器则一般具有较大的三级缓存。

CPU结构

通常来讲,CPU的结构可以大致分为运算逻辑部件、寄存器部件和控制部件等。

  • 运算逻辑部件,主要能够进行相关的逻辑运算,如:可以执行移位操作以及逻辑操作,除此之外还可以执行定点或浮点算术运算操作以及地址运算和转换等命令,是一种多功能的运算单元。
  • 寄存器部件是用来暂存指令、数据和地址的。
  • 控制部件是主要用来对指令进行分析并且能够发出相应的控制信号。

CPU三级缓存

缓存是购买CPU非常重要的一个参数,它的大小直接关系CPU的读取速度,缓存是介于内存与CPU之间的存储器,容量比内存小,但速度比内存快,他可以大大减少CPU访问内存的时间的部件,它是由若干缓存段组成,每个缓存段具有连续内存地址的若干个存储单元。

缓存的工作原理

CPU需要读取一个数据的时候,首先会从高速缓存中查找,如果找到就会立即读取并发送给CPU处理,如果没找到就以较慢的速度去内存中读取并发送给CPU,同时在把这个数据所需要的数据块调入高速缓存内,后面再读取数据的时候直接从缓存读取,不必再调用内存。

  1. 一级缓存,是CPU的第一层高速缓存,主要分为数据缓存和指令缓存,这是对CPU性能影响最大的一层。

  2. 二级缓存,是CPU的第二层高速缓存,分内部和外部两种芯片,内部芯片速度基本上与CPU主频相同,而外部芯片只有主频的一半。

  3. 三级缓存,离CPU较远,读取速度没一级二级快,但一般三级缓存容量比前面两级大很多。

缓存的出现主要是为了解决CPU运算速率与内存读写速率不匹配的矛盾,因为CPU运算速率要比内存读写速率快很多,这样会使CPU花费很长时间等待数据到来或把数据写入内存。

缓存算法

为了保证CPU访问时有较高的命中率,缓存中的内容应该按一定的算法替换。
一种较常用的算法是“最近最少使用算法”(LRU算法),它是将最近一段时间内最少被访问过的行淘汰出局。因此需要为每行设置一个计数器,LRU算法是把命中行的计数器清零,其他各行计数器加1。当需要替换时淘汰行计数器计数值最大的数据行出局。这是一种高效、科学的算法,其计数器清零过程可以把一些频繁调用后再不需要的数据淘汰出缓存,提高缓存的利用率。