[网友提问]目前服务器市场可以说是新产品新技术层出不穷,光是服务器的核心CPU除了主频等参数外,最让人不明白的就是所谓的双核,电视报纸广告上也是频繁刊登双核服务器的广告。那么本人想咨询一下,双核CPU与双CPU还有以前的超线程都有什么区别呢?希望IT168的高手能够用简单形象的方式进行讲解,到底哪个性能好,哪个性价比高。我们选择服务器应该采取双核心CPU还是双CPU呢?非常感谢。
[网友解答]在目前这个服务器变革的时代,特别是CPU类型可以说是多种多样,确实容易给用户产生迷惑,我们选择CPU时也不能仅仅只看他的主频了,很多其他参数起到的作用也是巨大的,例如缓存,前端总线等。当然这些并不是本文讨论的关键,我们将根据上面那位网友提出的问题进行解答。
在一两年前CPU领域就出现了一个叫做超线程的技术,具备了超线程技术的CPU可以更高效的运行程序,特别是支持对程序的并发执行。而如今在个人计算机和服务器市场又出现了一个叫做双核心CPU的概念,他和超线程有哪些区别?性能提升情况如何呢?他又能否和传统的双CPU画等号呢?我们先要对这三者的概念进行了解。
一、三者的工作原理和概念:
(1)超线程(HT):(如图1)
图1 |
超线程(Hyperthreading Technology)技术就是通过采用特殊的硬件指令,可以把两个逻辑内核模拟成两个物理芯片,在单处理器中实现线程级的并行计算,同时在相应的软硬件的支持下大幅度的提高运行效能,从而实现在单处理器上模拟双处理器的效能。其实,从实质上说,超线程是一种可以将CPU内部暂时闲置处理资源充分“调动”起来的技术。
“超线程”的实现条件需要CPU的支持,主板芯片组和主板BIOS的支持,另外操作系统和应用软件方面也需得到应有的支持。说白了超线程就是通过软件的手段模拟出双个逻辑内核进行工作,运行效果尽量接近两个物理核心的性能。
不过超线程也存在着致命的不足,首先他在windows 2000下无法使用,因为WIN2000不支持超线程,只有WIN XP以上的系统才可以使用HT。另外由于HT是软件模拟出两个核心,所以模拟出来后的两个核心是分享物理缓存的,从而使物理缓存大小减半,另外因为超线程技术是对多任务处理有优势,因此当运行单线程运用软件时,超线程技术将会降低系统性能,尤其在多线程操作系统运行单线程软件时将容易出现此问题。
(2)双核心:(如图2)
图2
所谓双核心处理器,简单地说就是在一块CPU基板上集成两个处理器核心,并通过并行总线将各处理器核心连接起来。双核心并不是一个新概念,而只是CMP(Chip Multi Processors ,单芯片多处理器) 中最基本、最简单、最容易实现的一种类型。
换言之双核心处理器就是基于单个半导体的一个处理器上拥有两个一样功能的处理器核心。这样就将两个物理处理器核心整合入一个核中,在任务繁重时,两个核心能相互配合,让CPU发挥最大效力。两个能互补的核心运行起来性能是非常不错的,例如使用Intel奔腾D双核处理器就相当于你有了两台采用奔腾4的主机。
如果说超线程是用软件来模拟出双核的效果,那么现在所说的双核心就是真正意义上的两个核心。他弥补了超线程适用系统比较少的缺点,可以广泛用于windows操作系统的多个版本;他还有效的解决了双核运算中出现的缓存分离与数据冲突错误问题。
(3)双CPU:(如图3)
图3
前面所说的双核心是在一个处理器里拥有两个处理器核心,核心是两个,但是其他硬件还都是两个核心在共同拥有,而双CPU则是真正意义上的双核心,不光是处理器核心是两个,其他例如缓存等硬件配置也都是双份的。