双核处理器就是在一个处理器基板上集成两个功能相同的处理器核心,即将两个物理处理器核心整合入一个内核中。处理器实际性能是处理器在每个时钟周期内所能处理指令数的总量,因此增加一个内核,处理器每个时钟周期内可执行的单元数将增加一倍。
双核技术
AMD
AMD的双核技术它并不只是简单地将两个Opteron处理器核心集成在一个硅晶片(Die)上,与单核Opteron相比,它增添了“系统请求接口”(System Request Interface,SRI)和“交叉开关”(Crossbar Switch)。它们的作用据AMD方面介绍应是对两个核心的任务进行仲裁、及实现核与核之间的通信。它们与集成的
内存控制器和
HyperTransport总线配合,可让每个核心都有独享的I/O带宽、避免资源争抢,实现更小的内存延迟,并提供了更大的扩展空间,让双核能轻易扩展成为多核。
Intel
从集成的角度来看,通常把
多处理器计算机系统分为“紧耦合”和“松耦合”两种形态。例如通过将多台计算机组成集群(Cluster)的方式来增加计算机系统处理器数量以提高计算性能的做法就是一种相对比较松的耦合,与它相比,在一台计算机上通过SMP(
对称多处理器)架构来增加处理器数量的方式就是一种紧耦合,与SMP相比,在一个处理器上集成多个处理器核心则是更紧密的耦合,把这种在单个芯片或基板上集成多个处理器核心的架构称之为CMP(
单芯片多处理器)架构。
奔腾至尊版和奔腾D都是每个核心配有独享的一级和二级缓存,不同的是Intel将双核争用前端总线的任务仲裁功能放在了芯片组的
北桥芯片中。
双核双芯
AMD和Intel的双核技术在
物理结构上也有很大不同之处。AMD将两个
内核做在一个Die(内核)上,通过
直连架构连接起来,集成度更高。Intel则是采用两个独立的内核封装在一起,因此有人将Intel的方案称为“双芯”,认为AMD的方案才是真正的“双核”。
从用户端的角度来看,AMD的方案能够使双核CPU的管脚、功耗等指标跟单核CPU保持一致,从单核升级到双核,不需要更换电源、
芯片组、散热系统和
主板,只需要刷新BIOS软件即可,这对于主板厂商、计算机厂商和最终用户的投资保护是非常有利的。
客户可以利用其现有的90纳米基础设施,通过BIOS更改移植到基于双核心的系统。计算机厂商可以轻松地提供同一硬件的单核心与双核心版本,使那些既想提高性能又想保持IT环境稳定性的客户能够在不中断业务的情况下升级到双核心。在一个机架密度较高的环境中,通过在保持电源与基础设施投资不变的情况下移植到双核心,客户的系统性能将得到巨大的提升。在同样的系统占地空间上,通过使用双核心处理器,客户将获得更高水平的计算能力和性能。
技术介绍
从一些物理和电子的基础知识得出,由于目前半导体工艺制造的原因,晶体管的缺陷会造成无法克服的功耗和发热量。因此,如果要提高产品的性能,就要从其他技术手段来入手,如64位技术、
对称多处理技术(SMP)以及提出的双核技术。
无法克服的功耗和发热量
现在的芯片都是在单晶硅大圆片上制成的,大面积的圆片本身也难免存在一些缺陷,生产中的流程有时候也会给硅晶体带来缺陷。另外虽然工厂的清洁程度非常之高,但在生产过程中还是免不了带入一些杂质,互连层在制造中也会引入自己的缺陷形式。这样大规模的芯片很难保证全无任何缺陷。现在半导体进入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的对称多处理技术的工作原理也是这样的。
对称多处理技术的难处
要通过2个甚至4个硬盘实现高性能的阵列存储并不难,安装
RAID控制器驱动即可,因为RAID控制器会自动控制各块硬盘的工作方式,程序员或者说CPU只要告诉RAID控制器要读出或写入什么数据,具体怎么分拆数据,几块硬盘如何分配读写等问题根本不需要计算机用户、编程人员考虑,因此原有操作系统和软件都不需要进行改动;但是CPU的对称多处理工作就不同了,因为计算机的所有指令都是经CPU去执行的,要是编程人员只下令CPU去执行什么指令而不告诉计算机哪颗CPU去执行这条指令,那么就会天下大乱,而且如果是两颗CPU,指令的调度分配还比较好设计,如果是4-8颗,那么情况就非常复杂,就像两台电梯的联合控制程序容易写,但是4台电梯的联合控制程序非常难写一样,因为他们之间是2的2次方跟4的2次方这种关系。
如何用好对称多处理
对称多处理工作模式需要程序员设计的软件本身就能支持多个CPU的指令调度,这样所有CPU才是以最合理最高效的调度安排去协同工作。由于应用软件大多都是采用大量的
API函数开发的,所以担任指令-机器交互角色的操作系统就是对称多处理开发的根本和关键所在,一套操作系统能不能很好的协调多个CPU之间的工作关系,是多路模式能否成功发挥其性能的关键。
双核的优势
首先,双核技术的引入是提高处理器性能的行之有效的方法。由于生产技术的限制,传统通过提升工作频率来提升处理器性能的作法目前面临严重的阻碍,高频CPU的耗电量和发热量越来越大,已经给整机散热带来十分严峻的考验。双核技术可以很好的避免这一点。增加一个内核,处理器每个时钟周期内可执行的单元数将增加一倍。
其次,引入双核架构也将可以全面增加处理器的功能,这是一个十分重要的影响因素。双处理器架构的引入和微软下一代Longhorn(Vista)操作系统将在很大程度上促进虚拟技术的发展。
虚拟化技术在2006-2007年将成为
计算机平台的新亮点。无论是Intel的VT(Virtualization Technology)技术还是AMD Pacifica技术,都可以让一台物理计算机虚拟出若干个虚拟的系统,这些虚拟系统能使用同样的PC资源独立工作。换句话说,这些技术允许用户在他们的PC上同时运行超过一个操作系统,以便每个操作系统解决特定的运算任务。比如,一个虚拟系统能够扫描病毒,另外的虚拟系统则可以执行应用程序、文字处理或者玩游戏。
技术区别
超线程技术已经不是什么新鲜事物了,但普通用户可能与双核心技术区分不开。例如开启了超线程技术的
Pentium 4 630与Pentium D 820在操作系统中都同样被识别为两颗处理器,它们究竟是不是一样的呢?这个问题确实具有迷惑性。
从原理上来说,
超线程技术属于Intel版本的
多线程技术。这种技术可以让单CPU拥有处理多线程的能力,而物理上只使用一个处理器。
超线程技术为每个物理处理器设置了两个入口-AS(Architecture State,架构状态)接口,从而使操作系统等软件将其识别为两个逻辑处理器。
这两个逻辑处理器像传统处理器一样,都有独立的IA-32架构,它们可以分别进入暂停、中断状态,或直接执行特殊线程,并且每个逻辑处理器都拥有APIC(Advanced Programmable Interrupt Controller,高级
可编程中断控制器)。虽然支持
超线程的Pentium 4能同时执行两个线程,但不同于传统的双处理器平台或双内核处理器,超线程中的两个逻辑处理器并没有独立的执行单元、整数单元、
寄存器甚至
缓存等等资源。它们在运行过程中仍需要共用执行单元、
缓存和
系统总线接口。在执行多线程时两个逻辑处理器均是交替工作,如果两个线程都同时需要某一个资源时,其中一个要暂停并要让出资源,要待那些资源闲置时才能继续。因此,
超线程技术所带来的性能提升远不能等同于两个相同
时钟频率处理器带来的性能提升。可以说Intel的
超线程技术仅可以看做是对单个处理器运算资源的优化利用。
指令集、执行单元,与
超线程中所采用的模拟共享机制完全不一样。在操作系统看来,它是实实在在的双处理器,可以同时执行多项任务,能让处理器资源真正实现
并行处理模式,其效率和性能提升要比
超线程技术要高得多,不可同日而语。