处理器主频的提升不再有效
伴随着指令流水线的不断细化,以及集成电路工艺水平的不断提高,微处理器的主频也在迅速提升。近年来,主频更是成为提升微处理器的性能的主要推动力:微处理器的主频迅速的完成了由90年33MHz到现在2GHz以上主频的飞跃。
但是,时至今日,主频的增长速度正日益趋缓,主频增长带来的副作用却日益显著。首先,主频的增长是以硬件设计和工艺的复杂度的提升为前提的。随着芯片集成度的增加和线宽变窄,处理器的设计、验证和测试变得越来越困难,为提高性能而增加的硬件资源利用率不高,性能的增长空间有限。相对而言,主频增长所带来的功耗的增长比性能的增长则要快得多。例如,从Intel 80486、Pentium、Pentium III到Pentium IV这4代处理器,整数性能提高了5倍左右,而晶体管数增加了15倍,相对功耗则增加了8倍。微处理器芯片呈现出更快、更大、更热的发展趋势。其次,主频增长依赖的超长流水线技术也使得分支预测失败后流水线指令清空和重新加载所需要的周期大为延长,所带来的性能损失大大削弱了主频提升所带来的性能增益。
不可否认,ILP技术以及主频的提升在一定程度上、一定时间内提高了计算机对于单一线程执行速度。然而,相对于CPU主频、复杂程度的提升,计算机的整体性能并没有取得相匹配的增长。这其中的主要原因就在于:从计算机体系结构的角度来看,传统的技术并不能有效、充分的利用计算机的整体硬件能力。
计算机应用的演变
时至今日,以商用事务处理和Web服务为代表的应用日益成为服务器应用的主流。回顾计算机的近30年发展历史,我们不难发现,计算机应用已经从传统的以SPEC CPU2000为代表的计算密集型的科学技术应用,发展到了现今的以SPEC JBB2000为代表的数据密集型应用,表现出完全不同的执行和数据访问的特征。
传统的计算密集型应用,对于数据的运算操作远远多于数据的装入操作,因而具备很高的代码和数据访问的局部性,能够有效的利用预取操作数、Cache等技术来弥补内存带宽的不足以及内存访问未命中所造成的时间延迟。
当前面向商用事务处理的主流服务器应用,则是数据密集型的应用。也就是说,这些应用所需数据的时间和空间局部性很差,数据重用的可能性很低。这时,传统的高性能计算机的构造方法就不能适应新的应用的需求了,具体表现在如下几个方面:
传统的以计算为中心的体系结构(冯-诺依曼体系结构),不适应新应用类型中不规则的计算和内存访问特性,不适应这些应用中代码和数据局部性的变化。
应用的并行算法模型与实际的并行体系结构不匹配,需要寻求与当前的新应用类型相匹配的有效并行算法和体系结构。
计算,存储,I/O 的速度越来越不匹配,平衡体系结构的设计越来越困难。当前主流的商用微处理器主频均在GHz以上,存储总线主频还在MHz水平;处理器速度每年增长60%,存储器存取延迟每年仅改善7%。由通信带宽和延迟构成的“存储墙(Memory wall)”成为提高系统性