什么叫双核处理器
类型:转载 责任编辑:egoo 日期:2007/03/01
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内存技术。
由于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 的超线程技术仅可以看做是对单个处理器运算资源的优化利用。
而双核心技术则是通过"硬"的物理核心实现多线程工作:每个核心拥有独立的指令集、执行单元,与超线程中所采用的模拟共享机制完全不一样。在操作系统看来,它是实实在在的双处理器,可以同时执行多项任务,能让处理器资源真正实现并行处理模式,其效率和性能提升要比超线程技术要高得多,不可同日而语。