混合云架构
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2.2 计算机性能的决定因素

现代计算机本质上是按照冯·诺依曼体系结构处理数据的,在这种结构设计中负责计算的处理器和负责存储数据的存储器是分离的。CPU的发展让计算性能提高得很快,但CPU速度跟内存速度之间存在几个数量级的差别,而且由于物理性质限制,这种速度差别不可能消除。这意味着有如下性能定律:

● 只有计算集中才能提升性能。

● 距离是计算的敌人,无论什么尺寸规模(CPU和内存之间、内存和外设之间、计算机之间,即各个物理尺度),相对计算性能来说,数据移动成本都很高,距离在很大程度上决定了计算性能。

● 计算机性能的矛盾体现在高速CPU和低速内存及外设之间的矛盾上。

需要注意的是,这些定律不仅适用于单台计算机,而且适用于由很多计算机组成的集群。

毫无疑问,CPU决定了计算机性能的上限。下面我们从CPU的各个技术层面看看有哪些技术决定了其性能。

摩尔定律指出:当价格不变时,集成电路可容纳的晶体管数约每隔18个月便会增加1倍,性能也增加1倍。

我们看看是哪些技术在提升计算机性能,具体有如下几个因素。

● 集成电路的规模不断扩大,这是工艺制程水平的提高,在微观上缩短了晶体管器件的通信距离,提升了性能,降低了能耗。

● 频率也决定了CPU的性能,时钟频率从最初只有几MHz提高到目前最高达3GHz以上,提高时钟频率让单位指令执行的时间缩短。

● 总线技术革新大幅提高了数据传输效率,这表现在两个方面:

- 南北总线结构可以分离快速设备和慢速设备,提高总线运行效率。

- 增加总线带宽可以增加一次访问的数据量。

● CPU内的流水线技术有效提升了性能,这种技术可以在一个时钟周期内同时执行多个指令。

● CPU Cache的大量运用提高了数据传输效率。由于程序运行的局部性原理,Cache能提高程序/数据的命中率,从而避免了从慢速的RAM加载数据。

● 多核的出现,通过水平扩充的方式增加了CPU的算力,这意味着通过CPU频率提升性能方式的终结。

● 虚拟化技术在提升性能的同时也带动了云计算的发展。

综上可以看出,计算机性能是从如下三个方面来提升的。

● 工艺水平:具体表现为摩尔定律驱动的晶体管制程水平的提高。

● 垂直扩展(scale-up):通过提高CPU内的各种技术点来提升单个CPU核心的性能。

● 水平扩展(scale-out):通过多核堆叠、虚拟化技术来提升性能。

当CPU发展到一定阶段后,单纯通过工艺水平来提高其性能就会遇到瓶颈,工艺制程水平的提高让晶体管之间连接的物理距离变短,的确能提升整体性能,并且这种性能提升方式在集成电路发展早期非常有效,但在目前阶段工艺水平的改进对CPU性能的提升就不那么明显了。随着集成度的提高,工艺制程水平的提高会越来越难,直至最终达到晶体管尺寸的极限。

此外,通过CPU内的技术改进所带来的性能提升也几乎走到了尽头,所以水平扩展就成了性能最后的救星,这种方式是通过增加CPU内的核心数和通过虚拟化技术虚拟多个CPU来提升性能的。这条路到最后也很难走通,因为超过8核后,多核对程序的加速功能就会逐渐减弱(对大部分非并行化运行的程序而言)。

总结起来就是,如果把多核CPU的计算机看作一个计算节点,则意味着单个计算节点的性能是有上限的,而且从性价比角度来看,这个上限已经到来。但存在的问题是,数智时代对计算性能的需求日益增长,同时基于前面提到的性能定律:距离是计算的敌人,数据离计算单元越近性能会越好。所以,将海量的、有性能容量上限的单个计算节点集中互联在一起对外提供计算服务模式就应运而生了。