原文出处:http://www.kuqin.com/multi-core/20070831/756.html
自从英特尔在2005年推出了第一代双核处理器之后,我们经常会被用户问到这个问题,为什么微处理要从单核转向多核?计算机上不断涌现的新兴使用模式让最终用户对处理器的处理能力——即性能——提出了更高的要求,并且对性能每年提高的幅度还在不断加速,而多核技术是目前行之有效的方法。
为什么不能用单核的设计达到用户对处理器性能不断提高的要求呢?答案是功耗问题限制了单核处理器不断提高性能的发展途径。
作为计算机核心的处理器就是将输入的数字化的数据和信息,进行加工和处理,然后将结果输出。假定计算机的其他子系统不存在瓶颈的话,那么影响计算机性能高低的核心部件就是处理器。反映在指令上就是处理器执行指令的效率。
处理器性能 = 主频 x IPC
从上面的公式可以看出,衡量处理器性能的主要指标是每个时钟周期内可以执行的指令数(IPC: Instruction Per Clock)和处理器的主频。其实频率就是每秒钟做周期性变化的次数,1秒钟只有1次时钟周期的改变叫1Hz(赫兹)。主频为1GHz 就是1秒钟有10亿个时钟周期。
因此,提高处理器性能就是两个途径:提高主频和提高每个时钟周期内执行的指令数(IPC)。处理器微架构的变化可以改变IPC,效率更高的微架构可以提高IPC从而提高处理器的性能。但是,对于同一代的架构,改良架构来提高IPC的幅度是非常有限的,所以在单核处理器时代通过提高处理器的主频来提高性能就成了唯一的手段。
不幸的是,给处理器提高主频不是没有止境的,从下面的推导中可以看出,处理器的功耗和处理器内部的电流、电压的平方和主频成正比,而主频和电压成正比。因为: “处理器功耗 正比于 电流x 电压 x 电压 x 主频”,“主频 正比于 电压”, 所以:“处理器功耗 正比于主频的三次方”
如果通过提高主频来提高处理器的性能,就会使处理器的功耗以指数(三次方)而非线性(一次方)的速度急剧上升,很快就会触及所谓的“频率的墙”(frequency wall)。过快的能耗上升,使得业界的多数厂商寻找另外一个提高处理器性能的因子,提高IPC。提高IPC可以通过提高指令执行的并行度来实现,而提高并行度有两种途径:一是提高处理器微架构的并行度;二是采用多核架构。在采用同样的微架构的情况下,为了达到处理器IPC的目的,我们可以采用多核的方法,同时有效地控制功耗的急剧上升。为什么?看看下面的推导。
因为:“处理器功耗 正比于 电流x 电压 x 电压 x 主频”,“IPC 正比于电流”,所以:“处理器功耗 正比于 IPC”
由单核处理器增加到双核处理器,如果主频不变的话,IPC理论上可以提高一倍,功耗理论上也就最多提高一倍,因为功耗的增加是线性的。而实际情况是,双核处理器性能达到单核处理器同等性能的时候,前者的主频可以更低,因此功耗的下降也是指数方(三次方)下降的。反映到产品中就是双核处理器的起跳主频可以比单核处理器更低,性能更好。
由此可见,将来处理器发展的趋势是:为了达到更高的性能,在采用相同微架构的情况下,可以增加处理器的内核数量同时维持较低的主频。这样设计的效果是,更多的并行提高IPC,较低的主频有效地控制了功耗的上升。
除了多核技术的运用,采用更先进的高能效微架构可以进一步提高IPC和降低功耗——即提高能效。基于英特尔®酷睿™ 架构的英特尔® 酷睿™ 2 双核处理器和至强处理器就是现实中的例子。相比英特尔前一代的NetBurst 微架构(Intel® Pentium® 4 和Pentium® D),酷睿微架构采用的英特尔® 宽区动态执行引擎和英特尔® 高级数字媒体增强技术,就是提高IPC的创新技术;英特尔® 智能功率特性则是降低微架构功耗的技术。
一些评论的内容:
多核心处理器与单核心处理器就像同样的水,用一个大功率的水泵抽水不如用多个功率稍小的水泵抽水。只不过问题在于软件行业现在支持双核心的OS还很少,双核心的优势只能表现在多任务的情况下,而多任务的表现又受限于其他硬件,表现的也不尽完美,所以未来必须要有更多的OS与应用软件相结合,才会更快的进入多核心的时代。
其实,支持双核的服务器操作系统已经很普及了。对于客户端操作系统,像Windows XP, Vista 都是支持双核的操作系统——支持多任务多线程的操作系统。目前,越来越多的软件和应用程序都支持多线程和多任务。这种趋势不是出现双核处理器才开始的,早在英特尔在Pentium 4 上支持超线程就开始了。只要使用支持多线程的编译器编译高级程序设计语言编写的程序,就可以让生成的可执行程序支持多线程,当然就可以充分利用双核处理器的能力。
既然芯片频率的提升导致功耗三次方的加大,那么内存是否也有类似的情况呢?是否应该设计多核内存来降低能耗并提升性能呢?回答:通过提高内存芯片每个读写周期内发送比特的数量,从而可以使每个内存芯片的物理工作频率降低。例如,内存技术从SDRAM, 发展到 DDR SDRAM, 然后是DDR2 SDRAM, 到最近的DDR3 SDRAM,就是按照这样的思路开发和设计的。DDR-400 和 DDR2-400的数据传输率理论上是一样的,但是DDR-400 内存的物理工作频率是200MHz, 而DDR2-400 内存的物理工作频率只有100MHz, DDR2-800 内存的物理工作频率是200MHz, 可 DDR2-800 的数据传输率是DDR-400的两倍。
双路CPU和双核CPU在结构和性能上又是什么关系呢?回答:双路CPU是指系统里面可以插上2颗CPU, 双核CPU是一颗CPU内部有2个内核。例如,双路服务器,里面可以有2颗CPU,这两颗CPU可以是单核的,也可以是双核,四核的,等等。