怎么才能开启超线程技术

怎么才能开启超线程技术,第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

随机推荐

  • 化妆品有水,乳液,精华液,纯露,拉皮精华,晚霜,隔离霜。这些的使用顺序是什么啊?

    化妆品的使用顺序是非常重要的,正确的使用顺序才能让化妆品发挥最好的效果。我们需要了解每种化妆品的功效和用途,这样才能更好地进行搭配和使用。一般来说,正确的化妆品使用顺序为:水、乳液、精华液、纯露、拉皮精华、晚霜、隔离霜。下面我们逐一介绍每个

    2024-04-15
    1007600
  • 保湿精华推荐

    精华,是护肤品中之极品,成分精致、功效强大、效果显著,所提取的都是高营养物质并将其浓缩。精华液是护肤品中的重中之重,从称呼就可以判断初精华液是所有护肤品的精华,正常来说,用再多的护肤品,如果不用精华液都是无济于事,尤其是对熟龄肌肤或者是问题

    2024-04-15
    1026600
  • 面膜男士排行榜前十名

    男士面膜十大品牌排行为:妮维雅男士、高夫、膜法世家、欧莱雅男士、杰威尔、曼秀雷敦男士、石泽研究所、自然堂、一叶子、御泥坊男士。1、妮维雅男士创立于1922年,现为德国拜尔斯道夫公司旗下的男士护肤品牌,主营洗面奶,爽肤水等产品。2、高夫高夫品

    2024-04-15
    44300
  • cpb和海蓝之谜哪个好?cpb和lamer海蓝之谜哪个贵?

    cpb和海蓝之谜是很多人眼中的贵妇级的护肤品品牌,不管是cpb还是海蓝之谜的护肤品价格都是比较贵的,可能一件单品就够你买其他的一套护肤品,经常会有人纠结是cpb好还是海蓝之谜好,那cpb和海蓝之谜哪个好?cpb和lamer海蓝之谜哪个贵?1

    2024-04-15
    36400
  • 斯巴达克斯老板娘露迪雅那几集有激情戏

    斯巴达克斯老板娘露迪雅是拉丁美洲魔幻电视剧《斯巴达克斯》中的角色,在第一季第四集中出现了激情戏。在这一集中,露迪雅和主角塔梅尔在一个秘密的地方相遇,并在一起度过了一个浪漫的夜晚。然而,这一场景并不是官方制作的,而是网友自制的,因此并不是所有

    2024-04-15
    32900
  • 润肤水润肤乳和精华液分别怎么用

    顺序是:爽肤水-精华液-润肤乳。1、润肤水先用,这是因为润肤水具有二次清洁以及收缩毛孔的效果,而乳液具有保湿、补水、美白或者抗皱功效,只有在皮肤彻底清洁以后,才能有效使乳液进入到皮肤内。2、在使用完爽肤水后应该使用精华,因为精华的分子极细,

    2024-04-15
    33100
  • 伊思特衣柜可以吗?怎么感觉有些贵啊

    我在福州定做的,将近三个月了还没有拿到货,卖家的客服是采用一再欺骗的说法忽悠客户,说某个时间会到事实又没到。设计师存在总价多算,发现了多余的钱也是迟迟未退到账,一个多月还没到账。想定的业主请三思,公司体制不透明,让人捏了一把汗。最重要的事没

    2024-04-15
    27500

发表评论

登录后才能评论
保存