当前位置: 华文星空 > 知识

CPU 的性能是不是快到天花板了?为什么?

2020-04-03知识

一. 先说单核性能:是的。

过去这些年中,单核性能的增长可以主要归功于以下2个方面:(1)处理器微结构(MicroArch)的发展。流水线、乱序执行、分支预测这些技术使得时间上和空间上,对电路的利用更加充分。(2)CMOS工艺的发展。更小的尺寸为计算部件带来了更低的延时、更低的功耗,为存储部件带来了更大的容量。

然而,(1)和(2)两个方面的发展速度都已放缓。对于 (1) ,微结构(MicroArch)的爆发增长期是在1985年——2002年,许多革命性的技术在这一时期被应用,2002年以后技术趋于成熟,发展速度放缓。对于 (2) ,抛开能不能制造出尺寸更小的CMOS元件这个问题不谈,即使可以制造出,功耗这一因素已经无法忽略。在 @逸之 的答案中已经详细说了物理方面的因素,我这里再就量子的影响展开说,CPU的功耗可以粗略计算为: P_{total}=CV^{2}f+P_{static}+P_{transient} ,在数百nm到数十nm的时代,占功耗大头的是 CV^{2}f ,但是随着工艺的不断缩小,静态功耗 P_{static} 占比越来越大。造成这种影响一个因素是,栅极上方的氧化层(栅氧)越来越薄,这一区域理想的功能是一个绝缘层,但现在厚度栅氧已经接近原子尺度,电子有一定概率会穿过,从而产生漏电流。

以上因素共同作用的结果就是性能增长的放缓。1980年——2004年,单核性能的进步速度约为每年52%,2005年——2012年约为每年20%,2015年——2019年约为每年3%。

主流处理器单核性能与VAX-11机型的对比。使用SPEC INT基准。

二. 再说多核性能

我们可以将并行分为3类:(1)指令级并行instruction level parallel 简称ILP (2)数据级 data instruction level 简称DLP (3)线程级并行 thread level parallel 简称TLP。单核中主要利用的是ILP,ILP是所有3类中最好用的,所有程序都可以使用,并且对程序员透明,只需把工作丢给硬件。但剩下两类却没那么好用, 不是所有程序所有算法都可以发掘出并行的空间 。也就是说,一个速度为2的处理器,和两个速度为1的处理器是不一样的。

正文至此

以下内容给非cs、ee专业的同学补充一下背景知识,cs、ee专业的同学请跳过。

  1. 指令集架构(ISA)和微结构有什么区别? x86架构、ARM架构、MIPS架构说的是指令集架构(ISA),它是软件和硬件的接口,规定了软件和硬件的交流方式,但是处理器具体的实现与ISA无关。微结构决定了处理器具体的实现,包括划几级流水、几发射、每级流水做什么之类的信息。
  2. 现代微处理器的物理实现方式是什么? CMOS是现代芯片的驮马。今天几乎所有的数字计算电路都是由CMOS实现,但情况并非从来如此,比如早期的Intel 8080(1974年)仅采用NMOS逻辑实现。