也说服务器双核技术

来源:岁月联盟 编辑:zhu 时间:2007-12-16
也说服务器双核技术内容简介:作者:Faycs 最近这段时间,随着Intel正式发布其双核心XEON处理器和国内外多家厂商的积极跟进,人们对双内核这个已经一度冷淡下来的技术似乎又提起了很大的爱好。 什么是双核技术,相信大部分人都可以理解,但是为什么要使用双核

作者:Faycs

最近这段时间,随着Intel正式发布其双核心XEON处理器和国内外多家厂商的积极跟进,人们对双内核这个已经一度冷淡下来的技术似乎又提起了很大的爱好。

什么是双核技术,相信大部分人都可以理解,但是为什么要使用双核?它能够给我们带来哪些好处?怎么用才能发挥双核的真正威力?这些问题还是缺少比较明确的答复。其实国内几个专业媒体也发表了一些技术文章探讨过这方面的话题,不过都有点以DIY的角度去分析双核这种味道。我们觉得,双核处理器在个人电脑上的应用价值和普及速度应该是远赶不上这种技术用于服务器领域,因此,今天笔者就完全站在服务器应用的立场,结合自己的一些观点,给大家谈谈双核技术:

什么是双核技术?

采用一种比较轻易被大家接受的说法,双核处理器就是基于单个半导体的一个处理器上拥有两个一样功能的处理器核心,但是,这种说法很难在本质上解释双核心诞生的的原因,假如要追究双核的起源,还得从一些物理和电子的基础知识谈起:

无法克服的功耗和发热量

现在的芯片都是在单晶硅大圆片上制成的,大面积的圆片本身也难免存在一些缺陷,生产中的流程有时候也会给硅晶体带来缺陷。另外虽然工厂的清洁程度非常之高,但在生产过程中还是免不了带入一些杂质,互连层在制造中也会引入自己的缺陷形式。这样大规模的芯片很难保证全无任何缺陷。现在半导体进入90纳米以下的工艺,缺陷和杂质带来的影响就更为普遍,晶体管的尺寸已经和某些缺陷或杂质的尺寸在一个量级,甚至晶体管尺寸更小。一般来说,非致命的缺陷会造成电路性能下降,为弥补缺陷带来的损失,就需要给电路更高的电压和更大的电流,许多缺陷在降低晶体管性能的同时还会增加晶体管的功耗,以前CMOS数字电路的主要功耗是工作时的动态功耗,但到了90nm工艺以后,情况发生了很大变化,许多原来基本可以忽略不计的功耗因素现在都占据了较大的比重,例如电路互连损耗,泄漏损耗。其中,泄漏损耗的影响急剧增加。这就是为什么采用0.09微米工艺之后,各种处理器的发热量和功耗还是一路呈攀升趋势的原因,高频的Prescott处理器功耗将近100W,要知道,一个可以把焊锡快速融化的电烙铁也不过50W左右,因此,高功耗和吓人的发热量成为CPU继续向高频挺进的一大障碍,当时就有很多人预言,4GHz的处理器诞生之后,大家将可以通过CPU散热片来煮鸡蛋。

高频之外的解决方案

既然无法通过继续提升频率来实现更高的频率,那么用户对产品性能提升的需要应该如何得到满足?

第一种做法当然是使用64位技术,为什么64位运算会比32位运算性能强大,这个比较好理解,例如你使用32位的CPU,要向外输出一个64位的数据,需要消耗两个时脉,但是假如你使用64位的CPU,只要一个时脉就完成了。

另外一种做法就是使用多路对称技术,其基本理论当然就是用两个处理器去完成一个处理器做的事,看上去就跟磁盘阵列技术一样,RAID 0就是使用两块硬盘来同时存取一个文件,各存取一半,因此花费的时间减半,假如使用4块硬盘,就是每块各存取1/4,所需时间自然更短;CPU的多路对称工作原理也是这样的,因此,中高端的服务器很多都使用4路、8路配备,就是为了提高产品性能。

多路对称的难处

要通过2个甚至4个硬盘实现高性能的阵列存储并不难,安装RAID控制器驱动即可,因为RAID控制器会自动控制各块硬盘的工作方式,程序员或者说CPU只要告诉RAID控制器要读出或写入什么数据,具体怎么分拆数据,几块硬盘如何分配读写等问题根本不需要计算机用户、编程人员考虑,因此原有操作系统和软件都不需要进行改动;但是CPU的多路对称工作就不同了,因为计算机的所有指令都是经CPU去执行的,要是编程人员只下令CPU去执行什么指令而不告诉计算机哪颗CPU去执行这条指令,那么就会天下大乱,而且假如是两颗CPU,指令的调度分配还比较好设计,假如是4-8颗,那么情况就非常复杂,就像两台电梯的联合控制程序轻易写,但是4台电梯的联合控制程序非常难写一样,因为他们之间是2的2次方跟4的2次方这种关系。

另外,由于多内核芯片将两个或更多的独立CPU核心集成在一块硅片上,一些人怀疑它们致命的弱点会是这些CPU核心之间的数据移动,当多内核系统运行争夺同一条I/O路径的不同应用程序时,存在一些性能瓶颈。不过到目前为止,这些瓶颈的影响很小。