怎么才能开启超线程技术

怎么才能开启超线程技术,第1张

线程(Hyper-Threading,简称“HT”

超线程技术就是利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,让单个处理器都能使用线程级并行计算,进而兼容多线程操作系统和软件,减少了CPU的闲置时间,提高的CPU的运行效率。

超线程技术是在一颗CPU同时执行多个程序而共同分享一颗CPU内的资源,理论上要像两颗CPU一样在同一时间执行两个线程,P4处理器需要多加入一个Logical CPU Pointer(逻辑处理单元)。因此新一代的P4 HT的die的面积比以往的P4增大了5%。而其余部分如ALU(整数运算单元)、FPU(浮点运算单元)、L2 Cache(二级缓存)则保持不变,这些部分是被分享的。

虽然采用超线程技术能同时执行两个线程,但它并不象两个真正的CPU那样,每各CPU都具有独立的资源。当两个线程都同时需要某一个资源时,其中一个要暂时停止,并让出资源,直到这些资源闲置后才能继续。因此超线程的性能并不等于两颗CPU的性能。

工作原理

在处理多个线程的过程中,多线程处理器内部的每个逻辑处理器均可以单独对中断做出响应,当第一个逻辑处理器跟踪一个软件线程时,第二个逻辑处理器也开始对另外一个软件线程进行跟踪和处理了。

另外,为了避免CPU处理资源冲突,负责处理第二个线程的那个逻辑处理器,其使用的是仅是运行第一个线程时被暂时闲置的处理单元。

例如:当一个逻辑处理器在执行浮点运算(使用处理器的浮点运算单元)时,另一个逻辑处理器可以执行加法运算(使用处理器的整数运算单元)。这样做,无疑大大提高了处理器内部处理单元的利用率和相应的数据、指令处吞吐能力。对于Prescott处理器,发热量大也主要是因为它。

实现超线程的前提条件

(1)需要CPU支持

目前正式支持超线程技术的CPU有Pentium4 306GHz 、240C、260C、280C 、30GHz、32GHz以及Prescott处理器,还有部分型号的Xeon。

(2)需要主板芯片组支持

正式支持超线程技术的主板芯片组的主要型号包括Intel的875P,E7205,850E,865PE/G/P,845PE/GE/GV,845G(B-stepping),845E。875P,E7205,865PE/G/P,845PE/GE/GV芯片组均可正常支持超线程技术的使用,而早前的845E以及850E芯片组只要升级BIOS就可以解决支持的问题;

SIS方面有SiS645DX(B版)、SiS648(B版)、SIS655、SIS658、SIS648FX;

威盛方面有P4X400A、P4X600、P4X800。

(3)需要主板BIOS支持

主板厂商必须在BIOS中支持超线程才行。

(4)需要操作系统支持

目前微软的操作系统中只有Windows XP专业版及后续版本支持此功能,而在Windows 2000上实现对超线程支持的计划已经取消了。

(5)需要应用软件支持

一般来说,只要能够支持多处理器的软件均可支持超线程技术,但是实际上这样的软件并不多,而且偏向于图形、视频处理等专业软件方面,游戏软件极少有支持的。应用软件有Office 2000、Office XP等。另外Linux kernel 24x以后的版本也支持超线程技术。

CPU生产商为了提高CPU的性能,通常做法是提高CPU的时钟频率和增加缓存容量。不过目前CPU的频率越来越快,如果再通过提升CPU频率和增加缓存的方法来提高性能,往往会受到制造工艺上的限制以及成本过高的制约。

  尽管提高CPU的时钟频率和增加缓存容量后的确可以改善性能,但这样的CPU性能提高在技术上存在较大的难度。实际上在应用中基于很多原因,CPU的执行单元都没有被充分使用。如果CPU不能正常读取数据(总线/内存的瓶颈),其执行单元利用率会明显下降。另外就是目前大多数执行线程缺乏ILP(Instruction-Level Parallelism,多种指令同时执行)支持。这些都造成了目前CPU的性能没有得到全部的发挥。因此,Intel则采用另一个思路去提高CPU的性能,让CPU可以同时执行多重线程,就能够让CPU发挥更大效率,即所谓“超线程(Hyper-Threading,简称“HT”)”技术。超线程技术就是利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,让单个处理器都能使用线程级并行计算,进而兼容多线程操作系统和软件,减少了CPU的闲置时间,提高的CPU的运行效率。

  采用超线程及时可在同一时间里,应用程序可以使用芯片的不同部分。虽然单线程芯片每秒钟能够处理成千上万条指令,但是在任一时刻只能够对一条指令进行操作。而超线程技术可以使芯片同时进行多线程处理,使芯片性能得到提升。

  超线程技术是在一颗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性能,但性能差距不会太大。也就是说,当运行单线程运用软件时,超线程技术甚至会降低系统性能,尤其在多线程操作系统运行单线程软件时容易出现此问题。

  需要注意的是,含有超线程技术的CPU需要芯片组、软件支持,才能比较理想的发挥该项技术的优势。目前支持超线程技术的芯片组包括如:英特尔i845GE、PE及矽统iSR658 RDRAM、SiS645DX、SiS651可直接支持超线程;英特尔i845E、i850E通过升级BIOS后可支持;威盛P4X400、P4X400A可支持,但未获得正式授权。操作系统如:Microsoft Windows XP、Microsoft Windows 2003,Linux kernel 24x以后的版本也支持超线程技术。

PHP默认并不支持多线程,要使用多线程需要安装pthread扩展,而要安装pthread扩展,必须使用--enable-maintainer-zts参数重新编译PHP,这个参数是指定编译PHP时使用线程安全方式。

多线程是让程序变得不安分的一个因素,在使用多线程之前,首先要考虑线程安全问题:

线程安全:线程安全是编程中的术语,指某个函数、函数库在多线程环境中被调用时,能够正确地处理多个线程之间的共享变量,使程序功能正确完成。(推荐学习:PHP视频教程)

在传统多线程中,由于多个线程共享变量,所以可能会导致出现如下问题:

存在一个全局数组$arr = array('a');;

A 线程获取数组长度为1;

B 线程获取数组长度为1;

A 线程 pop 出数组元素 $a = array_pop($arr); $a = 'a';;

B 线程也 pop 数组元素 $b = array_pop($arr); $a = null;;

此时 B 线程内就出现了灵异事件,明明数组长度大于0,或没有 pop 出东西;

PHP 实现

PHP 实现的线程安全主要是使用 TSRM 机制对 全局变量和静态变量进行了隔离,将全局变量和静态变量 给每个线程都复制了一份,各线程使用的都是主线程的一个备份,从而避免了变量冲突,也就不会出现线程安全问题。

PHP 对多线程的封装保证了线程安全,程序员不用考虑对全局变量加各种锁来避免读写冲突了,同时也减少了出错的机会,写出的代码更加安全。

但由此导致的是,子线程一旦开始运行,主线程便无法再对子线程运行细节进行调整了,线程一定程度上失去了线程之间通过全局变量进行消息传递的能力。

同时 PHP 开启线程安全选项后,使用 TSRM 机制分配和使用变量时也会有额外的损耗,所以在不需要多线程的 PHP 环境中,使用 PHP 的 ZTS (非线程安全) 版本就好。

众所周知,为了防范蠕虫病毒的传播和攻击,Windows XP SP2将并发线程最多限制为10个。SP2利用Messages动态链接库,来实时监控每个进程的并发线程数目,一旦它发现某进程的线程数超过10个,就会屏蔽掉部分线程。SP2这样做,虽然可以防范震荡波类型的蠕虫病毒,加强系统安全,但是也带了一些负面影响,例如当你使用BT、P2P或FlashGet软件下载时,部分线程将被屏蔽掉,因此下载速度会变得很慢。为此,你可以采取以下对策,来突破TCP并发连接数,从而提高SP2的多线程访问速度。

一、注册表修改法的误区

为了突破SP2对TCP并发连接数的限制,网上曾经流传过一种修改注册表的方法,操作步骤如下:

单击“开始”/运行,输入Regedit打开注册表,定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters下,修改的“TcpNumConnections”的键值,将之由10改为150,即设置TCP最大并发连接数为150。

经过实际测试,我们发现该方法看起来有效,但实质上并不能突破并发连接数限制,提高SP2的多线程访问速度。因为SP2对线程数目的控制,是通过“Tcpipsys”这个系统文件来实现的,并不是通过注册表实现的,因此,该方法不能增加SP2的TCP并发连接数。

二、使用工具来替换Tcpip.sys

为了突破SP2的TCP并发连接数限制,正确地方法是修改Windows XP SP2的系统文件Tcpipsys。Tcpipsys是Windows XP SP2重要的系统文件,位于“C:\Windows\system32\drivers目录下。该文件由于平时受到系统保护,所以正常情况下你是无法替换它的,必须在安全模式或纯DOS模式下才能替换,建议你使用以下专门工具、来替换“Tcpipsys”文件,操作步骤如下:

从网上http://wwwlvllordde/downloadphpurl=en/EvID4226Patch211a-enzip下载替换工具(仅为30KB),用它来修改系统文件Tcpipsys最大安全并发连接限制;然后备份一下C:\Windows\system32\drivers\Tcpipsys文件。

接下来,双击打开下载文件ZIP压缩包,运行其中的替换工具EvID4226Patchexe,随之将弹出一个命令行提示符窗口,首先显示Windows当前的Tcpipsys文件版本,以及并发连接的限制数值(默认为10);接着询问你是否将连接数限制在50(如下图1),你可以选择“Yes/No/Change”,如果你输入“Y”,则会将并发连接数改为“50”,如果想改为其他数(例如150),可以在提示符后输入“c”,然后输入最大的并发连接数(例如150)回车,最后在提示符下输入“Y”并回车,这样就替换了Tcpipsys文件;Tcpipsys文件被替换后,随之会弹出系统文件保护对话框,你可以点击“取消”按钮,然后点击“是”按钮,重新启动后,Tcpipsys文件的替换就大功告成了!

现在你的最大并发连接数已超过10个,达到了150个,因此Windows XP SP2的多线程访问速度得到了提升,当你用FlashGet、BT等多线程下载时,就不会感到网络带宽的限制了。

三、DOS下修改Tcpip.sys文件

以上替换程序EvID4226Patchexe也可以在DOS下使用,方法是:首先把EvID4226Patchexe拷贝到C盘根目录下;然后再进入DOS模式,进入C盘根目录,输入命令EvID4226Patch/L=$n$/w=C:\WINDOWS\system32\drivers/L=tcpipsys即可修改Tcpipsys文件。

注意:以上$n$为你要设置的最大安全连接数,假如要把最大并发连接数设置为150个线程,那么输入命令EvID4226Patch/L=150/w=C:\WINDOWS\system32\drivers/L=tcpipsys即可。

四、使用比特精灵附带的工具

比特精灵附带的工具“TCP/IP连接数破解补丁”也可以替换Tcpipsys,突破SP2的TCP并发连接数限制。

从网上http://downloadpchomenet/php/dlphpsid=15504下载比特精灵(BitSpirit)V272225简体中文正式版,然后双击下载文件进行安装。你可以选择安装哪些组件(下图2),应该安装“用于Windows XP SP2的TCP/IP连接数破解补丁”,安装结束后,XP开始菜单中就会有BitSpirit程序组,单击其中的“XP SP2连接数破解补丁”,即可修改Tcpipsys文件。

单击“XP SP2连接数破解补丁”,弹出该软件的界面,界面中列出了当前Tcpipsys的版本、及最大并发连接数(右图3),你可以在“TCP/IP Linitation”输入一个数,来设置最大并发连接数,例如输入150,然后按“Apply”按钮,重启系统后,你的SP2最大并发连接数就改为了150。

以上几种方法虽然提高了Windows XP SP2的多线程访问速度,但却降低了SP2的安全性能,如果你的电脑感染了病毒和木马,过多地启用新线程,会加速病毒和木马地蔓延,因此你在追求网络下载速度的同时,也要注意网络安全。建议你及时安装升级杀毒软件和防火墙,如果是普通用户,可以利用上面的方法,将TCP最大并发连接数设置为10~30,BT用户可以设置为100~150。

参考资料:

http://wwwitcfancom/Article/xtsj/200504/4996html

欢迎分享,转载请注明来源:品搜搜测评网

原文地址:https://pinsoso.cn/shuma/980032.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-08-21
下一篇2023-08-21

随机推荐

  • 德叔派克视频bgm是什么歌曲

    经过网友总结,在开发者日志的视频中,一共有三处和新英雄有关的彩蛋:设计师的声音突然变成暗裔的声效、派克官方BGM的出现、以及设计师有一句话和凯隐的台词一模一样。由此得出新版本的新英雄必定有血港鬼影-派克,大概率有影流之镰-凯隐和暗裔剑魔-亚

    2024-04-15
    41100
  • 妮维雅和欧莱雅哪个好?妮维雅是哪国的品牌?

    妮维雅这个品牌大家都比较熟悉,很多人都会想到它们家的洗面奶,还经常被拿来和其他的护肤品牌做比较,比如说欧莱雅这个品牌,因为欧莱雅的护肤产和妮维雅一样也是有男士和女士的,那妮维雅和欧莱雅哪个好?妮维雅是哪国的品牌?1、妮维雅和欧莱雅哪个好妮维

    2024-04-15
    45500
  • 天气丹新版和旧版气味一样吗,天气丹新版和旧版有什么区别

    天气丹的水乳套盒一直是非常受欢迎的,随着人们皮肤特点的不断变化,天气丹的水乳套盒也在不断的改良升级,目的是让消费者花最少的钱享受到最优质的护肤产品,目前,市面上又出现了新版的天气丹套盒,那么天气丹新版和旧版气味一样吗?天气丹新版和旧版有什么

    2024-04-15
    48900
  • SK-II嫩肤清莹露和护肤精华露有什么区别

    1、性质不同嫩肤清莹露是爽肤水,而护肤精华露就是美容精华液也是我们常说的神仙水。2、使用步骤不同嫩肤清莹露是洁面以后用,而护肤精华露虽然叫神仙水,但是它属于美容精华液,所以要用在爽肤水之后。3、成分不同SK-II 护肤精华露(神仙水®)超过

    2024-04-15
    49700
  • 至本洗面奶好用吗

    至本洗面奶好用。至本洗面奶是上海澄穆生物科技有限公司旗下的品牌,坚持以科学配方及高度有效性为产品研制的出发点,传递健康的护肤理念及生活方式,努力构建人与人和人与环境互相信任的友好关系,以理性之姿,追求理想之美。至本洗面奶是一款备受推荐的洗面

    2024-04-15
    47700
  • 妮维雅泡沫洗面奶好用吗??

    妮维雅泡沫洗面奶有一些用户认为比较好用,但也有一些用户反映使用后出现了过敏的情况。这款洗面奶的成分中包括了肉豆蔻酸、黄瓜萃取精华、仙桃仙人掌果实提取物等,具有清洁、补水、保湿、滋养等功效。针对不同的肤质,妮维雅也推出了不同类型的产品,例如针

    2024-04-15
    42400
  • 孕妇用的沐浴露哪个牌子好?怎样的沐浴露比较适合我?

    我认为比较好的沐浴露首先成分得安全,最好不含香精、防腐剂和刺激成分皂基和一些其他有害成分。要找适合自己的就要了解自己的皮肤状态和当前的需求哦,这几款你可以试试,都是我找到的还不错的。1 Aola'KD傲来国沐浴露这款沐浴露糅合了香

    2024-04-15
    43100

发表评论

登录后才能评论
保存