王川: 摩尔定律还能走多远? (三) – CPU 的内存瓶颈

本文最初于 2016年6月29日发布于笔者的公众号。


本文是    王川: 摩尔定律还能走多远? (二)   的续篇.

(1)

在 2002年之前,随着芯片密度的增加, CPU的时钟频率也一直不断增加. 对于普通消费者而言,CPU 的频率就代表计算机的快慢. 1981年最早出厂的 IBM PC, CPU 的频率是 4.77 兆赫, 相当于一秒钟四百七十七万个时钟周期. 假设 CPU 一个时钟周期可以运行一条指令, 频率越高, 就算得越快.

1995年的奔腾芯片,时钟频率达到了 100 兆赫, 是 1980年的二十倍还多.

而到了 2002年, 英特尔新型奔腾芯片时钟频率第一次突破 3000 兆赫 (3 GHz).

限制时钟频率的第一个主要物理约束条件是: 信号在晶体管之间传输的迟滞. 这也是为什么晶体管密度越大,时钟频率可以越高.

2002年之后, CPU 时钟频率增加遇到了第二个技术瓶颈: 能量消耗.

简单说, CPU的能量消耗和时钟频率的三次方近似成正比, 在 3 Ghz 之后, 频率的继续提高会使芯片过热而面临被烧毁的风险.

实际上, 2002 年之后, 英特尔CPU 的时钟频率大多一直在 2 GHz – 4 GHz 之间, 十四年来没有本质提高.

但时钟频率不再增长, 并不意味着 CPU 性能的停滞不前. 就像人类的大脑, 过去二十万年没有本质变化, 但并不意味着人类文明不会发生开天辟地的进步.

这时候,最有用的思路,是寻找新的维度,去进攻解决问题.

(2)

如果说, CPU的时钟速度好比人脑的计算速度, 那么 CPU 的内存读取速度就好比人获取信息的速度. 这是提升 CPU 性能的第一个不同的维度.

有过基本工作或者研究经验的人,都会有这样的体会:

大多数时候,限制工作效率的瓶颈是: 查资料,找东西.

找不到就只能干着急.

二十年前的科研者,查资料要去图书馆,小图书馆没有资料就要去更大的图书馆,没有计算机检索之前需要一张张翻卡片查. 查找资料的时间,动辄就是几个小时甚至更多,超过了真正研究分析的时间. 这在今天,十秒钟内就可以在互联网上,精准搜索和下载世界上大部分论文资料,完全不可同日而语.

电脑的内存架构,实际上要细分为 Register (寄存器), Cache (高速缓存), Memory(内存), Disk (硬盘). 而缓存又可以细分为一级缓存 (Level 1 Cache), 二级缓存, 三级缓存, 甚至四级缓存.

打个比方, 寄存器上的数据,好比你手中那张纸上写的信息, 信息量很少,但立等可取.

一级缓存, 好比桌面上的书, 信息量多一些, 伸一下手可以拿到;

二级缓存, 好比抽屉里的书,打开抽屉后仍然很快可以拿到;

内存, 好比书架上的书, 要站起来去查找;

硬盘, 就是图书馆的资料,需要花几个小时到外面跑一趟才可以查到了.

研究者,如果无法迅速获取需要的资料,天天要往图书馆跑,即使牛顿/爱因斯坦再世, 聪明的脑瓜也只能像高速的 CPU 一样, 无效地空转, 痛苦地在来去图书馆的道路上等待.

以 Intel 的 i7-4770 CPU 为例, 其时钟频率 3.4 GHz. 一级和二级缓存,读取数据的延迟一般在 5 – 12个时钟周期,相当于约 2-4 纳秒.如果要到内存读取数据, 迟滞则约 70 纳秒, 等价于200多个时钟周期. 如果内存找不到, 不幸地要去硬盘搜索,延迟超过 4 毫秒 (等价于四百万纳秒),再快的 CPU 时钟频率, 此时也然并卵矣.

(3)

摩尔定律的发展,对于 CPU 的时钟速度,和普通内存 (DRAM) 的读取延迟上,进步速度是不一样的.其差距每年以 50%的速度增长.

为了缓解这个矛盾,高速缓存 (Cache) 最早是以外置的形式出现在1985年的英特尔的 386的处理器上.

真正的芯片上的内置的缓存,最早是在1989年的 486处理器上出现,当时容量只有 8 KB, 到九十年代容量提高到 16 KB.

缓存容量过大,会影响搜寻速度,所以又出现了二级, 三级缓存. 这里有很多微妙的设计细节,此处不表.

缓存, 本质上就是以 SRAM (静态随机存储器)为基础的内存. 而SRAM, 本质上就是六个晶体管结构组成的逻辑单元, 如下图.

随着晶体管的小型化,芯片设计者就不断在 CPU 芯片上增加更多的内置的高速缓存.

以 2015年九月英特尔出品的 14 纳米 i7-6560U 处理器为例, 它有两个内核 (core), 每个内核有 64 KB 的一级缓存, 256 KB 的二级缓存, 并共享一个 4 MB的三级缓存.

用于缓存的晶体管占整个CPU 芯片上的晶体管的比例,也从 486时代的 40%左右,到今天许多CPU上接近 90%. (数据出处来自威斯康辛大学 Doug Burger 的论文, “Syetem-level Implication of Processor Memory Integration” )

换句话说,计算的管理,将近90%的内涵, 实际上是对内存记忆的管理.

不管在什么行业,如果做到了高效地搜寻和存储海量的数据, 你可能就已经成功了90%.

(未完待续)