一、双核心的由来
所谓双核心处理器,简单地说就是在一块CPU基板上集成两个处理器核心,并通过并行总线将各处理器核心连接起来。双核心并不是一个新概念,而只是CMP(Chip Multi Processors,单芯片多处理器)中最基本、最简单、最容易实现的一种类型。其实在RISC处理器领域,双核心甚至多核心都早已经实现。CMP最早是由美国斯坦福大学提出的,其思想是在一块芯片内实现SMP(Symmetrical Multi-Processing,对称多处理)架构,且并行执行不同的进程。早在上个世纪末,惠普和IBM就已经提出双核处理器的可行性设计。IBM 在2001年就推出了基于双核心的POWER4处理器,随后是Sun和惠普公司,都先后推出了基于双核架构的UltraSPARC以及PA-RISC芯片,但此时双核心处理器架构还都是在高端的RISC领域,直到前不久Intel和AMD相继推出自己的双核心处理器,双核心才真正走入了主流的X86领域。
MCM模块内封装了4个Power4芯片,共有8个CPU核心
Intel和AMD之所以推出双核心处理器,最重要的原因是原有的普通单核心处理器的频率难于提升,性能没有质的飞跃。由于频率难于提升,Intel在发布3.8GHz的产品以后只得宣布停止4GHz的产品计划;而AMD在实际频率超过2GHz以后也无法大幅度提升,3GHz成为了AMD无法逾越的一道坎。正是在这种情况下,为了寻找新的卖点,Intel和AMD都不约而同地祭起了双核心这面大旗。
Sun UltraSPARC IV双核处理器
二、AMD双核心处理器的简介
AMD目前的桌面平台双核心处理器代号为Toledo和Manchester,基本上可以简单看作是把两个Athlon 64所采用的
Venice核心整合在同一个处理器内部,每个核心都拥有独立的512KB或1MB二级缓存,两个核心共享Hyper Transport,从架构上来说相对于目前的Athlon 64架构并没有任何改变。
与Intel的双核心处理器不同的是,由于AMD的Athlon 64处理器内部整和了内存控制器,而且在当初Athlon 64设计时就为双核心做了考虑,但是仍然需要仲裁器来保证其缓存数据的一致性。AMD在此采用了SRQ(System Request Queue,系统请求队列)技术,在工作的时候每一个核心都将其请求放在SRQ中,当获得资源之后请求将会被送往相应的执行核心,所以其缓存数据的一致性不需要通过北桥芯片,直接在处理器内部就可以完成。与Intel的双核心处理器相比,其优点是缓存数据延迟得以大大降低。
AMD目前的桌面平台双核心处理器是Athlon 64 X2,其型号按照PR值分为3800+至4800+等几种,同样采用0.09微米制程,Socket 939接口,支持1GHz的Hyper Transport,当然也都支持双通道DDR内存技术。
Athlon 64 X2
由于AMD双核心处理器的仲裁器是在CPU内部而不是在北桥芯片上,所以在主板芯片组的选择上要比Intel双核心处理器要宽松得多,甚至可以说与主板芯片组无关。理论上来说,任何Socket 939的主板通过更新BIOS都可以支持Athlon 64 X2。对普通消费者而言,这样可以保护已有的投资,而不必象Intel双核心处理器那样需要同时升级主板。
三、Intel双核心构架剖析
AMD的“真伪双核论”虽无法立足,但它点出的英特尔双核处理器可能出现前端总线资源争抢的问题是否真是实情呢?对此,英特尔表示:AMD并不了解我们的产品和我们将来产品的技术走向,对自己的竞争对手及其产品妄加猜测和评论的行为是不值得赞赏的。AMD曾经指出奔腾至尊版是两个核心共享一个二级缓存,这就是一个非常明显的错误。事实上,奔腾至尊版和奔腾D都是每个核心配有独享的一级和二级缓存,不同的是英特尔将双核争用前端总线的任务仲裁功能放在了芯片组的北桥芯片中。
图1:基于Smithfield衍生出的奔腾至尊版和奔腾D,主要区别就在于奔腾至尊版支持超线程,而奔腾D屏蔽了超线程功能。
按照“离得越近、走得越快”的集成电路设计原则,把这些功能组件集成在处理器中确实可以提高效率,减少延迟。不过,在台式机还不可能在短期内就支持4个内核和更多内核的现实情况下,只要有高带宽的前端系统总线,就算把这些任务仲裁组件外置,对于双核处理器的台式机来说带来的延迟和性能损失也是微乎其微的。
英特尔945和955系列芯片组目前可提供800MHz(用于目前的奔腾D)和1066MHz(用于奔腾至尊版)前端总线,如果是供一个四核处理器使用,那肯定会造成资源争抢,但对于双核来说,这个带宽已经足够了。英特尔认为目前双核系统中的主要瓶颈还是内存、I/O总线和硬盘系统,提升这些模块的速度才能使整个系统的计算平台更加均衡。
基于这种设计思路,英特尔在945和955系列芯片组中加强了对PCI-Express总线的支持,增加了对更高速DDR2内存的支持,对SATA(串行ATA)的支持速度增加了一倍由1.5Gb/s升级3Gb/s,进一步增加了磁盘阵列RAID 5 和 RAID 10的支持。
图2:单核奔腾4处理器(左)和双核奔腾D处理器(右)微架构示意图
此外,英特尔奔腾至尊版有一个独门“绝活”,那就是双核心加超线程的架构,这种架构可同时处理四个线程,这让它在多任务多线程的应用中具有明显优势。而且CMP与SMT(同时多线程,英特尔超线程就是一种SMT技术)的结合是业界公认的处理器重要发展趋势,最早推出双核处理器的IBM也是这一趋势的推动者。
图3:奔腾至尊版的双核+超线程架构让它具备同时四线程处理能力
英特尔之所以在奔腾至尊版和奔腾D上采用共享前端总线的双核架构,还是出于双核架构自身的紧凑设计和生产进程方面的考虑,这种架构使英特尔能够迅速推出全系列的双核处理器家族,加快双核处理器的产品化,而且它带来的成本优势也大大降低了奔腾至尊版、奔腾D与现有主流单核处理器——奔腾4系列的差价,有利于双核处理器在PC市场上的迅速普及。
四、AMD双核心架构剖析
从架构上来看,Athlon 64 X2除了多个“芯”外与目前的Athlon 64并没有任何区别。Athlon 64 X2的大多数技术特征、功能与目前市售的、基于AMD64架构的处理器是一样的,而且这些双核心处理器仍将使用1GHz HyperTransport总线与芯片组连接及支持双通道DDR内存技术。
实际上Toledo核心就相当于是两个San Diego核心的Athlon 64处理器的集成,至于Manchester自然就相当于两个 Venice核心了—这也就是说,双核心的Athlon 64 X2处理器均将支持SSE3指令集。[page]
另外我们不难发现的是,AMD的台式双核心处理器的频率与其单核心产品基本上处于同一水平上—这一点与Intel非常不一样(Intel目前频率最高的桌面单核心处理器达到了3.8GHz,而其最高频率的双核心处理器只不过3.2GHz)。当然这并不难理解,因为Athlon 64处理器,特别是采用了90nm SOI工艺的Athlon 64处理器的发热量要比Intel的高频率的Prescott核心处理器要低不少,所以自然可以采用比较高的工作频率了(当然从频率的角度来看,Athlon 64 X2也还是低于Pentium D的)。
由于Intel受发热量限制目前的双核心处理器最高只有3.2GHz,因此在性能上肯定要比AMD的 Athlon 64 X2要低一些——不过Pentium D不如Athlon64 X2的地方并不仅仅只有这方面而已。在处理器的架构上AMD也有其独到之处,下图所示就是AMD的双核心处理器的架构示意图。
AMD的双核心方案面临一个重要的问题,就是随着第二核心的出现,对内存与I/O带宽的资源将会出现争夺,如何解决好这个问题是AMD双核心处理器的性能的关键问题之一。与Pentium D不同的是,Athlon 64 X2的两个内核并不需要通过外部FSB通信这一途径。Athlon 64 X2内部整合了一个System Request Queue(SRQ)仲裁装备,每一个核心将其请求放在SRQ中,当获得资源之后请求将会被送往相应的执行核心,所有的过程都在CPU核心范围之内完成。
AMD双核心强调是真正将两个核心崁入整合在一个硅晶内核上,可以真正发挥双核心效率,不像对手的产品事实上为两个Packet的设计,会有两个核心之间传输瓶颈的问题。因此Athlon 64 X2的架构要优于Pentium D架构,尤其是在高负载的多线程/多任务的环境下,AMD的处理器将会表现出比Intel的处理器更好的性能。
此外,随着第二核心的出现,对内存与I/O带宽的资源将会出现争夺,如何解决好这个问题是AMD双核心处理器的性能的关键问题之一。AMD信引入了Crossbar控制器,这个全新的控制器结合优化的系统请求队列,可以有效的降低这个问题的危害性。
AMD处理器集成的内存控制器在进化到双核心时代表现出来的优势更加明显,低延时的内存控制器使得对CPU的缓存的依赖也大幅减少,在这样的情况下,在日后过渡到多核心的时候,需要考虑的问题更多的是基于各个核心之间的连接。我们可以看到,两个核心所采用的L2缓存也是分别独享的,也就是两个L2缓存中保存的数据是一致的。
实际的可利用容量和一个核心的L2缓存容量是 相同的—这一点和Intel一样。与Intel有所不同的是,AMD方案的两个核心之间的通信是通过处理器内部的Crossbar实现的。相比之下Intel的Pentium D处理器的核心之间的通信则是需要通过芯片组的MCH来进行—这显然比AMD的方案要带来更多的延迟时间。不过AMD的架构也并非十全十美,双核心处理器仍然只支持双通道DDR400内存无疑是一个有些令人遗憾的地方—两个处理器核心自然需要更大的内存带宽。要解决这个矛盾,只能使用全新的针脚设计,DDR2或许是一个不错的选择。
Athlon 64 X2这样的设计还有一个好处,那就是如果打算支持新的双内核处理器的话,对旧平台而言唯一的要求就是升级到最新BIOS就OK了,这将大大降低平台的应用、升级成本。当然AMD沿用以前的内存控制器也是有很大的好处的,那就是双核心的Athlon 64 X2处理器可以在目前几乎所有的Socket 939主板上使用。这方面AMD有着Intel无可比拟的优势—因为以前的915/925主板并不能支持Intel的双核心处理器。
此外,与Pentium D是通过降低频率来降低功耗不同,同样采用0.09微米生产技术的Athlon 64 X2似乎并不需要面临这样的问题。这都得益于AMD在Athlon 64 X2处理器上所采用的“Dual Stress Liner”应变硅技术。Dual Stress Liner技术是由AMD和IBM联合开发的,据称可以将半导体晶体管的响应速度提高24%。
事实上,DSL很类似于英特尔在90nm生产技术中引入的应变硅技术。我们都知道,晶体管越微细化,运行速度就越高,但同时也会引发泄漏电流增加、开关效率降低,从而导致耗电和发热量的增加。而DSL通过向晶体管的硅层施加应力,同时实现了速度的提高与耗电量的降低。
与Intel使用的应变硅不同,来自AMD和IBM的DSL能够被用于两种类型的晶体管:NMOS和PMOS(具有n和p通道)而无需使用极难获得的硅锗层,硅锗层会增加成本,并且有可能影响芯片的产量。 DSL这种双重性,让它比英特尔的应变硅更有效—DSL可以将晶体管的响应速度提升24%,而应变硅能提供的最大改进在15-20%。
并且更重要的是,AMD和IBM 这项新技术对产量及生产成本并没有任何负面影响。由于在生产时无需使用新的生产方法,所以使用标准生产设备和材料便可迅速展开量产。另外,配合使用硅绝缘膜构造(SOI,绝缘体上硅)与应变硅,还可生产性能更高、耗电更低的晶体管。AMD工程师们表示,DSL和SOI一起结合可以让Athlon 64处理器的频率潜力有大约16%的增长。而Athlon 64 X2的初始频率与目前Athlon 64持平上也可以看到DSL技术的确很有效。
当然,AMD也将在未来转移更先进的65nm生产线上,改进他们的内存控制器来对DDR2,DDR3和FB-DIMM等高性能内存提供支持,也将开始使用更快的HyperTransport 2.0总线,及更有效的节能降耗技术。
五、双核心技术与超线程技术的区别
超线程技术已经不是什么新鲜事物了,但普通用户可能与双核心技术区分不开。例如开启了超线程技术的Pentium 4 530与Pentium D 530在操作系统中都同样被识别为两颗处理器,它们究竟是不是一样的呢?这个问题确实具有迷惑性。
其实,可以简单地把双核心技术理解为两个"物理"处理器,是一种"硬"的方式;而超线程技术只是两个"逻辑"处理器,是一种"软"的方式。
从原理上来说,超线程技术属于Intel版本的多线程技术。这种技术可以让单CPU拥有处理多线程的能力,而物理上只使用一个处理器。超线程技术为每个物理处理器设置了两个入口-AS(Architecture State,架构状态)接口,从而使操作系统等软件将其识别为两个逻辑处理器。这两个逻辑处理器像传统处理器一样,都有独立的IA-32架构,它们可以分别进入暂停、中断状态,或直接执行特殊线程,并且每个逻辑处理器都拥有APIC(Advanced Programmable Interrupt Controller,高级可编程中断控制器)。
虽然支持超线程的Pentium 4能同时执行两个线程,但不同于传统的双处理器平台或双内核处理器,超线程中的两个逻辑处理器并没有独立的执行单元、整数单元、寄存器甚至缓存等等资源。它们在运行过程中仍需要共用执行单元、缓存和系统总线接口。在执行多线程时两个逻辑处理器均是交替工作,如果两个线程都同时需要某一个资源时,其中一个要暂停并要让出资源,要待那些资源闲置时才能继续。因此,超线程技术所带来的性能提升远不能等同于两个相同时钟频率处理器带来的性能提升。可以说Intel的超线程技术仅可以看做是对单个处理器运算资源的优化利用。
而双核心技术则是通过"硬"的物理核心实现多线程工作:每个核心拥有独立的指令集、执行单元,与超线程中所采用的模拟共享机制完全不一样。在操作系统看来,它是实实在在的双处理器,可以同时执行多项任务,能让处理器资源真正实现并行处理模式,其效率和性能提升要比超线程技术要高得多,不可同日而语。
六、双核心处理器的适用范围
目前,Windows XP专业版等操作系统支持双物理核心和四个逻辑核心,但这并不意味着所有软件对此都有优化。
事实上大量的测试已经证明,无论是Intel还是AMD的双核心处理器,相对于其各自的同频率的单核心处理器而言,对于目前的普通应用例如多媒体软件、游戏和办公软件等等都没有任何性能提升,甚至可能还稍有降低,因为这些普通应用目前都还只是单线程程序,在处理器执行指令时实际上只有一个核心在工作,而另外一个核心则处于空闲状态帮不上忙。
所以对普通用户而言,只要日常应用的程序仍然是单线程的话,双核心处理器实际上没有任何意义,反而还增大了购买成本。除非经常执行大运算量的多任务处理,例如在游戏的同时进行音视频处理等等,这时双核心处理器才能真正发挥作用。
目前最适合双核心处理器发挥威力的平台是服务器和工作站,这是因为其经常进行多任务处理,而且日常运行的大量程序都是多线程程序,例如图形工作站所使用的Adobe Photoshop和3D MAX等都是多线程程序。一般来说,在执行多任务处理和多线程程序时,双核心处理器要比同频率的单核心处理器的性能要高大约50%-70%,甚至在某些应用下性能几乎能提升100%。
当然,随着双核心处理器的强势推出和逐渐普及,日后支持多线程的普通应用程序也会逐渐增多,对普通用户而言那时双核心处理器才会真正发挥作用。
七、双核心处理器目前所存在的问题
无论是Intel的Pentium D和Pentium EE,还是AMD的Athlon 64 X2处理器,都是简单地将两个物理内核"叠加"在一起,这必然带来晶体管数量的大幅度增加,双方都已经达到了两亿三千万个以上的晶体管;带来的直接后果就是由泄漏电流引起的功耗大幅度增加,就算是采用了节能技术其发热量也居高不下,从而导致双核心处理器相对于单核心处理器而言频率提升更加困难。
而且由于目前的制造工艺的限制,双核心处理器的良品率要比单核心处理器的低,这必然会带来成本的居高不下,所以目前的双核心处理器的价格都太贵了,距离普及还差得很远。当然,随着处理器核心架构和制造技术的发展,今后必然会解决目前所遇到的问题。
上一篇:基于控制器设计的纹锁
下一篇:基于线性CCD的寻线智能车设计
推荐阅读最新更新时间:2024-03-16 13:40