为什么双核比单核快
我们知道,有效的任务调度机制对提高团队的工作效率有着至关重要的影响。双核处理器不就是这样吗?双核处理器的协同调度机制,首先要解决的问题是数据同步操作。举个例子,如果系统的内存数据区记录了“A=1”,如果第一个CPU核读写这个数据区,重写为“A=0”,那么第二个CPU核的缓存也必须更新,A会更新为0,否则在以后的操作中数据是错误的。这样的过程就是缓存数据的一致性,也叫数据同步操作。
在数据同步这个关键问题上,不同的CPU有不同的解决方案:奔腾D把任务交给北桥芯片,速龙64 X2内置协调单元,Core Duo由* * *享受二级缓存实现。其实这才是“真假”双核之争的源头。奔腾D实际上集成了两个核心,但由于其双核协作机制与AMD不同,AMD找到了“进攻”的机会。
双核处理器的协作机制
1.奔腾D ——通信靠北桥芯片。
奔腾D的两个内核的二级缓存是相互隔离的,只是在前端总线中合并在一起。如果一个核的缓存数据发生变化,另一个核想要获取这个数据,该怎么办?很明显,一个核必须通过前端总线将数据发送到北桥芯片,然后北桥芯片将数据发送到内存,另一个核通过北桥读取数据。可以看出,在数据同步的过程中,奔腾D无法直接在CPU内部完成,会消耗一些额外的内存访问操作。如果我们运行两个不同的任务,操作系统会将它们分配给不同的内核。因为两个内核处理的任务不同,所以此时不需要同步缓存的数据。这个设计影响不大。但是当我们运行针对双核优化的多线程软件时,缓存数据需要频繁的同步操作,不仅会消耗大量的CPU周期,还可能会阻塞CPU的前端总线,很难表现出优秀的协作效率。
目前奔腾D已经发展到第二代。与奔腾D 8xx相比,奔腾D 9xx在双核架构上并没有任何实质性的改进,而是改成了更先进的65nm制造工艺,增加了每个核心的二级缓存容量,改变了两个芯片的封装方式。两者的双核效率没有区别。AMD认为奔腾D是一个CPU上的两个芯片。真的是这样吗?揭开奔腾D 9xx的散热金属盖,我们会发现它有两个独立的雪松磨核心。CPU中的两个核心已经展现在我们的眼前,但是这两个核心的耦合度比较松散。
2.athlon 64x 2-内置仲裁协调单元
“艺术家胆大包天”,AMD敢于挑战英特尔,所以有一些过人的本事也是理所当然的。和奔腾D一样,速龙64 X2也采用了独立缓存的设计方案,两个内核有各自独立的缓存资源,但和奔腾D不同的是,速龙64 X2中的两个内核配合紧密。Athlon 64 X2的两个核心旁边的单元是“系统请求接口”(以下简称SRI),它有一条高速总线连接到两个二级缓存。如果两个内核的缓存数据需要同步,只能通过SRI单元来完成。这样不仅CPU资源开销很小,而且不需要占用内存总线资源,协作效率明显优于奔腾d。
得益于双核协作架构的优势,Athlon 64 X2在执行针对双核优化的应用时,性能提升幅度将超过奔腾D。一些评估也证实了这一结论。以MAYA6为例,双核奔腾D 820比同频单核奔腾4 520J性能提升38%左右,而速龙64 X2 3800+比同频单核速龙64 3200+(Socket939)性能提升49%左右。
3.酷睿双核处理器-使用智能高速缓存***享受高速缓存技术。
作为CPU领域的霸主,英特尔在设计代号为Yonah的酷睿双核处理器时,就做了精心的准备,产品在双核效率上的优异表现,真正显示了巨头的实力。
为了增强两个内核之间的协作效率,目前使用的方案有两种:一种是继续使用类似Athlon 64 X2的独立缓存设计,但引入一个单元来协调两个内核,这种方案被称为基于独立缓存的紧耦合方案。两种设计方案中,前者相对简单,只是为两个内核增加一个调度单元;在后一种设计方案中,由于两个核心* * *共享二级缓存资源,因此不可避免地要“争夺”二级缓存。如果调度不当,两个内核就会发生冲突。
然而,凡事都有两面性。后一种方案虽然有一定的风险,但如果解决了缓存资源的争夺问题,它将具有独立缓存设计无法比拟的优势:首先,二级缓存的所有资源都可以被任意一个核访问,当二级缓存的数据更新时,两个核不需要同步,数据同步的工作量相对减少;第二,任何一个核都可以根据任务量来决定占用多少二级缓存资源,所以资源的利用效率要高很多。在笔记本电池模式下,如果关闭一个核心,另一个核心可以占用所有二级缓存资源,只有一半的独立缓存设计资源可用。相比之下,* * *享受型缓存设计更有优势。权衡利弊后,英特尔决定为酷睿双核处理器推出* * *专属高速缓存设计。
在Core Duo的内部架构中,两个内核通过“SBR”(* * *共享资源调度器)共享二级缓存资源。英特尔将这种* * *共享高速缓存技术称为“智能高速缓存”。当一个内核在操作后将结果存储在二级缓存中时,另一个内核可以通过SBR读取它放在二级缓存中的数据。与之前奔腾D绕过北桥芯片的方案相比,这种方法不仅大大降低了读取延迟,还减少了对前端总线的占用。除了不必频繁同步缓存资源,共享总线路由器还有一个“带宽适配”机制,可以统一管理双核* * *共享的前端总线,避免它们之间的冲突,提高了双核* * *共享前端总线的效率,减少了不必要的延迟。它在功能上类似于Athlon 64 X2的交叉开关单元,但K8架构集成了内存控制器,该控制器还负责来自内存总线的传输协调。
智能缓存技术的强大还体现在实际测试中。在使用SiSoftware Sandra 2005对Core Duo T2600(2.16GHz)进行的算术基准测试中,其性能比奔腾M770 (2.13GHz)高出约60%,高出22%。美中不足的是Core Duo不支持英特尔的64位处理技术——EM64T。