p4 631 问题
p4 631的默认电压是1.3伏 是单核处理其中的旗舰产品 但是在我的系统中 打开任务管理器 选择 每个cpu一个图表 竟然真的显示了2各不同cpu使用纪录 而且打开windowns优化大师 显示的cpu电压是2.6伏是1.3伏的2倍 核心数是1 数量是 2!! 我的机子是用的七彩虹p945pl 内存 金士顿 1GB 667 硬盘是日立160GB 串口 8M 显卡七彩虹GF 7300GT 白金版 V12 256MB 别的一切正常 到底是哪里出了错 还是没有错误 希望高手能帮帮我
参考答案:你的CPU支持HT(hyper threading)技术。这个技术是虚拟的双核心
超线程技术,超线程技术,无论看电视还是上网,对我这些电脑爱好者(偏偏还是菜鸟)来说,即充满神秘感有具备吸引力,可到底什么是超线程技术呢?
......
2003年,Intel的Hyper-Threading(超线程)技术吸引了不少用户的目光,也是商家宣传产品是常用的名词。其实早在Intel IDF Fall 2001上,Intel就公布了此项技术会在Xeon处理器上得到应用,据称能够提高40%的处理器性能。而时隔两年后,桌面处理器也开始改朝换代,Intel终于把本来只用在服务器CPU上的HT技术引入到桌面处理器。在大部分人眼里,HT技术或许被认为是把一颗CPU作为两颗来用,事实上并不是以一当二那样简单。
一、Intel的强力武器——HT技术
CPU生产商为了提高CPU的性能,通常做法是提高CPU的时钟频率和增加缓存容量。不过目前CPU的频率越来越快,如果再通过提升CPU频率和增加缓存的方法来提高性能,往往会受到制造工艺上的限制以及成本过高的制约。有没有其他方法可以提高CPU性能呢?事实上从Intel的实践中得到一个很明确的答案。尽管提高CPU的时钟频率和增加缓存容量后的确可以改善性能,但这仍然不能完全发掘出CPU的潜能,基于很多原因,CPU的执行单元都没有被充分使用。通常来讲,如果CPU不能正常读取数据(总线/内存的瓶颈),其执行单元利用率会明显下降。另外一个理由就是目前大多数执行线程缺乏ILP(instruction-level parallelism,多种指令同时执行)支持。因此,Intel则考虑变一个思路去挖掘处理器的性能,如果有种方法可以同时执行多重线程,就能够让CPU发挥更大效率,那就是超线程(Hyper-Threading)技术,超线程技术减少了系统资源的浪费,可以把一颗CPU模拟成两颗CPU使用,在同时间内更有效地利用资源来提高性能。但在目前处理器技术条件下,HT技术是否能充分地发挥呢?因此,我们很有必要来分析一下HT技术的过去、现在以及未来的发展。
二、一朝换一朝——HT技术的演变历程
1.单线程时代
我们知道,应用程序通常是由一组一组连串的代码所组成,CPU需要完成某些任务,就必须要全部执行完所有的程序代码才能让我们得到需要的数据。所以,在以前的DOS时代,处理器在同一时间内只会运行一个任务直到完毕,然后再接着运行第二个任务,我们通常把它称之为“Single Threaded”(即“单线程”)。
2.多任务处理的出现
毋庸置疑,单线程处理方式是十分不方便的,每一个程序都会完全占用CPU全部的资源,在开始执行下一个工作任务时,要等上一个工作任务执行完了才行,中间不能暂停。到了Windows 3.1时代,程序终于能够在执行中暂时停止某个作业去开始另一个任务,但其原理并非真正的多任务处理,只是不断暂停和不断地切换工作,这个执行方式称为Multi-Tasking(多任务处理),这样的执行方式虽然不怎么理想。直至1995年,Microsoft 的Windows 95系统出现,改写了桌面操作平台的历史,也改变了程序执行的处理方式,Windows95系统中才出现了真正的Multi-Tasking(多任务处理),我们知道程序的运行中,总会出现时间的闲置。而多任务处理刚好利用了这个特点,系统能在同一时间内运行多个程序,原理是切换前一个程序运行中出现的闲置来同时执行别的程序,当前一个程序的闲置时间完毕又继续运行,以此类推。
3.多处理器作业的过渡
Multi-Tasking(多任务处理)虽然能同一时间执行多个程序,但其实在同一时间内,CPU只是执行一组程序而非多个任务,只是利用了CPU闲置时间切换到其他程序的执行,而并非真正的同步执行。因此,一些服务器由于要应付在同一时间内,可能被要求执行多个程序任务,那么就必须利用Multi-Processing(多处理器作业)。Multi-Processing就是我们平时所看到在一个主板里,安装多个CPU来达到更有效处理程序的目的。当执行多个程序时,可交给不同的CPU同时执行,而不是等待CPU闲置来切换,这样的执行方式是非常有效的。不仅如此,如果应用程序是优化成多处理器作业的话,程序能把工作分给系统内不同的CPU同时处理,大大减少了运算时间,但程序没有被优化为多处理的话,程序只能使用单颗处理器,而另外一个处理器则会闲置不工作,实现真正意义上的多任务处理,需要硬件和软件(包括系统以及应用软件)的同时支持。但目前为此,多处理器工作方式结合支持多处理器的操作系统(如Windows2003、Windows2000服务器版,WinXP)被广泛应用。
4.超线程时代的来临
对于Hyper-Threading而言,是否等于两个处理器同时运行的性能呢?Hyper-Threading又和Multi-Processing有区别吗?Hyper-Threading是在一颗CPU同时执行多个程序而共同分享一颗CPU内的资源,这是一个非常不错的设计,理论上要像两颗CPU一样在同一时间执行两个线程,P4处理器需要多加入一个Logical CPU Pointer(逻辑处理单元)。因此新一代的P4 HT的die的面积比以往的P4增大了5%,但除了这些外,其余部分例如ALU(整数运算单元)、FPU(浮点运算单元)、L2 Cache则保持不变,这些部分是被分享的,由此可见,Hyper-Threading的性能并不等于两颗CPU的性能。
三、Hyper-Threading的问题还很多
上面提到,Pentium 4 HT多加入一个Logical CPU Pointer,因此能同时处理器两个线程,而且同时分享处理器内的资源,例如FPU、ALU等,减少了资源的浪费。由于不是每一线程都完全占用CPU内的资源,空出来的便可以给另外一个线程使用,从图1我们可以得知,在没有Hyper-Threading的情况下,程序不能同时执行,同一时间下,运行中CPU的资源是不能被分享给其他程序,资源大大被浪费了;而在Hyper-Threading技术下,减少了每个处理周期对CPU资源的浪费,在这个技术下,程序在同一时间被同时执行,CPU资源能同时被分享,减少了资源浪费,提高了处理效率。
虽然Hyper-Threading能同时执行两个线程,但它并不是两个真正的CPU那样,各CPU都具有独立的资源。如果两个线程都同时需要某一个资源时,其中一个要暂时停止并让出资源,要等这些资源闲置后才能继续。举一个很简单的例子,图2中的程序在单线程6个Cycles(周期)完成,但Multi Processing则只需要3个Cycle就可以处理完毕,由于Hyper-Threading在某个Cycles中CPU的资源出现重叠,因此某个线程会出现延迟,这样性能就会比Single Thread要好,但比Multi Processing要差。当然这里只是一个理论,实际中可能会有偏差。
从以上来看,这个方式是比较理想的,不过Intel的竞争对手AMD也提供过一份对Hyper-Threading不利的资料文件。该文件指出了Hyper-Threading技术存在的一些问题:如某些情况下,当两个线程同时要求同一个资源时,就会出现冲突,解决这个冲突时会出现延迟或需要重新开始执行某个程序,当冲突大量出现时,性能就会减低,甚至会比没有Hyper-Threading时更差。的确,Hyper-Threading对支持Multi-Processor的程序性能有一定帮助,但是目前又有多少程序支持Multi-Processor呢?那么,当只支持单线程的程序运行时,P4 HT是否会让其中一个Logical CPU出现闲置呢?
其实,Intel P4 HT有两个Hyper-Threading运行模式,Single Task Mode及Multi Task Mode,当程序不支持Multi-Processing时,系统会停止其中一个Logical CPU的运行,把资源集中于单一Logical CPU中,让单线程程序不会导致其中一个Logical CPU闲置而减低性能,但由于被停止运行的Logical CPU还是会等待工作,占用一定的资源,因此Hyper-Threading CPU运行Single Task Mode程序模式时,有可能达不到没有Hyper-Threading功能的CPU的性能,但性能差距不会太大。也就是说,当运行单线程运用软件时,超线程技术甚至会降低系统性能,尤其在多线程操作系统运行单线程软件时容易出现此问题。
四、将Hyper-Threading进行到底
基于Hyper-Threading技术的优势,Intel会在后续产品中继续采用该技术。但摆在眼前的事情,就是如何解决Hyper-Threading技术出现的问题,如何才能真正让Hyper-Threading技术发挥出性能的极限呢?
Intel明白在目前单核心处理器中,Hyper-Threading技术并不能体现完美,因为在单一核心的处理器中使用Hyper-Threading技术,ALU及Cache等都是共同使用的,这样让它们有机会发生冲突而使性能不增反减。
在Intel的蓝图计划中,未来处理器将进入多核心时代,即在同一个处理器中拥有多个处理核心,其核心内的资源都是独立的,核心与核心之间沟通的Latency会比多处理器更加有效,这样就能使得在Hyper-Threading技术下不共同享用ALU及Cache等等,自然解决了以上种种问题。预计Intel 2005年会推出双核心的处理器,在未来将进入多核心时代,到那时,Hyper-Threading技术的性能才会得到全部发挥。
最后,要完全普及Hyper-Threading,还需要支持多处理器的操作系统来支持,这样,操作系统才会把不同的线程安排给两个“处理器”去执行,否则,即使是处理器拥有Hyper-Threading技术,也不能完全发挥出它应有的效能。不过,就软件的支持来说,目前IA-32代码的软件,无须任何修改就能够在拥有Hyper-Threading技术的处理器上运行。某些专业的应用软件也已经在现有版本中整合了对多线程系统的支持,例如3ds max、Maya等软件。处理器的革命同时也使软件产业革命出现,少了任何一个,都无法得到一举成功!