双核心的由来
所谓双核心处理器,简单地说就是在一块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双核处理器
intel双核心处理器的简介
intel目前的桌面平台双核心处理器代号为smithfield,基本上可以简单看作是把两个pentium 4所采用的prescott核心整合在同一个处理器内部,两个核心共享前端总线,每个核心都拥有独立的1mb二级缓存,两个核心加起来一共拥有2mb,但这显然与pentium 4 6xx系列处理器的2mb缓存不同。但由于处理器中的两个内核都拥有独立的缓存,因此必须保证每个物理内核的缓存信息必须保持一致,否则就会出现运算错误。例如在系统的内存数据区记录着a=1;如果第一个处理器内核对此数据区进行读写操作,并且改写为a=0,那么第二个处理器内核的缓存也必须进行更新,把a更新为0,否则的话,在以后的操作中数据就会出错。这样一个过程就是缓存数据的一致性,也就是说双核心处理器需要"仲裁器"来作协调。针对这个问题,intel将这个协调工作交给了北桥芯片(mch或gmch):两个核心需要同步更新处理器内缓存的数据时,需要通过前端总线再通过北桥作更新。虽然缓存的数据并不巨大,但由于需要通过北桥作出处理,无疑会带来一定的延迟,核心之间的通信就会变得缓慢,这将大大影响处理器性能的发挥。
intel目前的桌面平台双核心处理器产品分为pentium d和pentium extreme edition(pentium ee)两大系列,其中,pentium d包括820(2.8ghz)、830(3.0ghz)、840(3.2ghz)三个型号,采用800mhz fsb,面向主流市场;而pentium ee目前只有840(3.2ghz)一个型号,同样采用800mhz fsb,面向高端应用。pentium d与pentium ee都采用0.09微米制程,lga775接口;它们 主要的区别就是pentium ee支持超线程技术,而pentium d则不支持超线程技术,也就是说在打开超线程技术的情况下pentium ee将被操作系统识别为四颗处理器。
pentium d与pentium ee双核处理器
在主板芯片组方面,由于北桥芯片担负着处理和交换不同核心缓存数据的重要作用,所以目前能够支持pentium d和pentium ee的是945/955系列,而915/925是不能支持的,在915/925主板上就算是能够开机,也只能使用双核心其中的一个核心!
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双核心处理器那样需要同时升级主板
真伪双核心之争
有一段时间,amd自称自家的athlon 64 x2是"真双核",而把intel的双核心处理器称为"伪双核"或"双芯"。其实,这样的说法是不确切的,只是amd的一家之言,有误导消费者之嫌。
在前面对intel和amd两家的双核心处理器的简介中可以看出,二者的双核心处理器其实非常相似:都是利用现有的处理器核心,这样在技术上而言 简单;每个核心都具有独立的二级缓存,都需要通过仲裁器来保证缓存数据的一致性;都共享前端总线(或hyper transport)。二者唯一的区别就是intel双核心处理器的仲裁器位于北桥芯片,而amd双核心处理器的仲裁器则位于处理器内部,相对了来说,amd双核心处理器由于缓存延迟要比intel双核心处理器低,其架构要比intel的合理一些。但这只是仲裁方式的不同,实际上都具有两个物理内核,并不存在所谓的真伪双核心。
双核心处理器 理想的架构当然是两个核心共享二级缓存(多核心处理器仍然是这样),不过这显然需要重新设计处理器核心,而且其技术难度要比现在所采用的简单的两个物理核心叠加要复杂得多,不过无论是intel还是amd以后都会向这方面发展。现在无论是amd还是intel的双核心处理器都只是简单地将两个物理内核"叠加"在一起,每个核心各有独立的二级缓存,从这个意义上来说,如果硬要区分什么"真伪双核心"的话,当然也可以毫不客气的认为它们都不是真正的严格意义上的双核心处理器。
双核心技术与超线程技术的区别
超线程技术已经不是什么新鲜事物了,但普通用户可能与双核心技术区分不开。例如开启了超线程技术的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%,甚至在某些应用下性能几乎能提升。
当然,随着双核心处理器的强势推出和逐渐普及,日后支持多线程的普通应用程序也会逐渐增多,对普通用户而言那时双核心处理器才会真正发挥作用。
双核心处理器目前所存在的问题
无论是intel的pentium d和pentium ee,还是amd的athlon 64 x2处理器,都是简单地将两个物理内核"叠加"在一起,这必然带来晶体管数量的大幅度增加,双方都已经达到了两亿三千万个以上的晶体管;带来的直接后果就是由泄漏电流引起的功耗大幅度增加,就算是采用了节能技术其发热量也居高不下,从而导致双核心处理器相对于单核心处理器而言频率提升更加困难。而且由于目前的制造工艺的限制,双核心处理器的良品率要比单核心处理器的低,这必然会带来成本的居高不下,所以目前的双核心处理器的价格都太贵了,距离普及还差得很远。当然,随着处理器核心架构和制造技术的发展,今后必然会解决目前所遇到的问题。
总的来说,虽然双核心处理器的性能较单核心处理器的性能有所提升,但考虑到目前大部分的应用程序,比如办公软件、游戏、多媒体软件等应用都是单线程的,大运算量的多任务应用对普通用户而言也不会多,特别是考虑到目前双核心处理器的价格仍然要比单核心处理器贵得多的情况下,对大多数普通用户来说单核心处理器仍是 佳选择;而对于服务器和工作站领域的专业用户来说,首先考虑的是工作效率,而价格不占主导因素,则完全可以考虑双核心处理器,毕竟它带来的性能提升是那么的明显。