|
[转贴]什么是双核/单核/超线程?
双核心:INETL的双核心技术其实基本等同于双CPU也就是说相当于两个CPU,这是以前服务器上才用的,现在大家可以享用了,也算一件幸事。那么双核心有什么好处呢,很多人只能是迷茫的感觉。这就要说到计算机软件系和硬件系统了。在DOS时代,那时是单任务的,双核心等于单核心。可是DOS进代已经过去了。自从window问世以来。OS(操作系统)就支持多任务了。也就是用户可以同时运行多个程序,并且它们都能各自工作。有人可能要问一个CPU也能同时运行多个程序吗? 当然,但是它是怎么运行的呢,原来它是把CPU分成了很多时间片段,这些片段都很小,小到毫秒级,人是感觉不到的。每个程序分一个时间片,当用完自己的时间片后,如果程序还没有完成,那么也得休息,让别的程序去运行,等下次再来。由于时间片段很短,所以我们就觉得是多个程序在同时运行。这里要说一下,其实分得时片的并不是程序,而是线程,一个程序还可以有多个线程,这样就可以多运行几下,其就还有优先级等之类的东西,有兴趣的朋友可以找相关资料看一下。了解了多任务之后,聪明的朋友就会想到,既然是很多程序在分一个CPU,那么如果有两个CPU那就能多分点了啊,或者说那些没运行完被迫去休息的程序就可以早些得到下次运行的机会啊。对的,答案就是这样的。但是有人也有部题了,为什么在很多测试中820D(2.8G)还没有3.0G的P4快呢。呵呵,其实这个问题很简单,因为很多测试软件由数据相关性(专业术语)无法用多个线程同时处理,比如SUPPER PI 当然还有其它,在这些软件测试中双核心相当于单核心。当多个程序或多个线程处于忙碌状态时,双核心的威力就体现出来了。
单核心:单核心就是我们以面用的CPU基本上都是单核心的,这种CPU只有一个处理核心。当然也就是很多程序来分一个CPU了。下面说一下单核心相关的东西,单核心的CPU不同型号运行速度也不一样,目主要有INTEL和AMD两种。下面都简单的说一下。
INTEL:
主要有P4 和 CL 两种,P4和CL就竟有什么差别呢,很多资料都是这样说的,同样架构的P4和CL唯一的差别就是二级缓存不同。其实本人认为不是这样的。既然说到这里,我就说一下二级缓存的作用。二级缓存位于CPU内部。目前的P4一般是1M CL一般是256K。二缓存有什么用呢,二级缓存不同于内存二级缓存位于CPU内部,有很高的运行频率和位宽,其频率一般和CPU的主频同步,二级缓存中存的是内存中一部分数据的镜像,CPU大多数时候都在这里取数据,只有当这里找不到所要的数据时才到内存去拿。这样二级缓存越大去内存找的机会就小,当然这种关系不是线性的。所以二级缓存一般是越大越好,当然太大也没有多大用处(相当于浪费)。我曾在资料上看到过CL和P4还有一点差别就是核心数据处理的单元个数不同,CL的好像比P4的要少一组。所以我认为P4和CL不单是二级缓存的差别。目前INTEL的CPU采用的是31级流水线(这个主要和AMD的比较)。
AMD:
AMD目前主要是阿色龙和闪龙就如和P4和CL。这里就不在从述了。下面说一下AMD和INTEL的CPU的差别。性能上的差别也就是CPU处理数据流水线上的差别。
上面我说了,INTEL采用的是31级流水线处理数据,而AMD好像是16级。这有什么作用呢,流水线越长单步操作时间就很短,CPU的主频就可以做得很高。我们可以看到INTEL的CPU的主频都是很高的。当然这也带来了一个缺点。也就是一但有不可预测的转移指令进入流水线,那么整个流水线就得重建,这个代价是很大的,还很可能去内存取数据和指令。这时CPU就只能不务正业了。当然如果二级缓存大的话这种情况发事时就比较有用的。有人可能认为这种事发生的机会小,其实不然,这种事会发生很多,多得让你想不到。特别是在大型的3D游戏中变换场景时。这时P4,CL,AMDCPU之间会有很明显的卡别。我曾试过在魔兽争霸中变换场景时2.8G的CL居然没有1800+(1.53G)快。这就是因为1800+整数运算流水线12级,浮点运算流水线16级,重建的代超线程:采用超线程及时可在同一时间里,应用程序可以使用芯片的不同部分。虽然单线程芯片每秒钟能够处理成千上万条指令,但是在任一时刻只能够对一条指令进行操作。而超线程技术可以使芯片同时进行多线程处理,使芯片性能得到提升。
超线程技术是在一颗CPU同时执行多个程序而共同分享一颗CPU内的资源,理论上要像两颗CPU一样在同一时间执行两个线程,P4处理器需要多加入一个Logical CPU Pointer(逻辑处理单元)。因此新一代的P4 HT的die的面积比以往的P4增大了5%。而其余部分如ALU(整数运算单元)、FPU(浮点运算单元)、L2 Cache(二级缓存)则保持不变,这些部分是被分享的。
虽然采用超线程技术能同时执行两个线程,但它并不象两个真正的CPU那样,每各CPU都具有独立的资源。当两个线程都同时需要某一个资源时,其中一个要暂时停止,并让出资源,直到这些资源闲置后才能继续。因此超线程的性能并不等于两颗CPU的性能。
英特尔P4 超线程有两个运行模式,Single Task Mode(单任务模式)及Multi Task Mode(多任务模式),当程序不支持Multi-Processing(多处理器作业)时,系统会停止其中一个逻辑CPU的运行,把资源集中于单个逻辑CPU中,让单线程程序不会因其中一个逻辑CPU闲置而减低性能,但由于被停止运行的逻辑CPU还是会等待工作,占用一定的资源,因此Hyper-Threading CPU运行Single Task Mode程序模式时,有可能达不到不带超线程功能的CPU性能,但性能差距不会太大。也就是说,当运行单线程运用软件时,超线程技术甚至会降低系统性能,尤其在多线程操作系统运行单线程软件时容易出现此问题。价要小得多。
举例 说明问题 比如 P4 630 和PD 820 一个是HT的 一个是双核
P4 630主频3.0Ghz PD820主频2.8Ghz,所以再执行单任务的时候630是要比820快的。
630是单核2M的2级cache,而820虽然也是2M2级cache,但却是每个核1M的2级cache。所以实际上在单独一个线程的任务中820的性能要差很多。
所以,只有820在执行两个以上线程的任务时所有任务的综合性能才比630要快,但是由于820的两个内核的前端总线还是800Mhz和任务分配器所占用的一部分资源,所以820两个内核的效能远远不能用1+1=2来形容。 |
|
关于我们