什么是超线程技术

  超线程技术就是利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,让单个处理器都能使用线程级并行计算.具体讲,就是通过CPU的寄存器构成了两个逻辑处理器,来共享处理器的物理执行单元,并同步进行加、乘、负载等操作.操作系统或者应用软件的多线程可以同时运行于一个HTT处理器上,两个逻辑处理器共享一组处理器执行单元,并行完成加、乘、负载等操作,这样就可以使得运行性能提高,这是因为在同一时间里,应用程序可以使用芯片的不同部分.虽然单线程芯片每秒钟能够处理成千上万条指令,但是在任一时刻只能够对一条指令进行操作.而超线程技术可以使芯片同时进行多线程处理,使芯片性能得到提升。

 

超线程技术的产生原因

  CPU发展到今天,其整体速度虽然越来越快,内部的执行单元却越来越得不到充分的利用.为什么呢?原来NetBurst架构的奔腾4在设计结构上就每次只能处理一个线程,而与此同时我们的电脑需要同步执行的任务却在不断增加,而且花在各线程之间切换等待的时间太多,处理器的应用效率自然也就降低了。

  长期以来,CPU生产商为了提高CPU的性能,通常做法是提高CPU的时钟频率、增加缓存容量、晶体管数量以及指令集来提升其性能.这些方法的副作用就是会增加处理器的功耗,而且往往会受到制造工艺上的限制以及成本过高的制约.CPU要想取得更好的表现,拥有更快的处理速度,就得需要更大的供电量,更强劲的散热条件.2005年,英特尔取消了生产4.0GHz的“Te-jas”单核处理器.因为他们发现,要想达到这个频率,它的驱动功率必须要达到100W.不仅如此,要保证它正常的运行还要有温度的控制,需要更大的散热器.要是在不过多增加硬件投入的情况下,处理器就能够充分利用现有的强劲物理单元同步执行多线程来增强性能,那该多好?因此,Intel采用另一个思路去提高CPU的性能,让CPU可以同时执行多重线程,就能够让CPU发挥更大效率,即超线程技术。

  也正是由于通过不高的代价,就能带来极大的性能提升,超线程技术倍受Intel的青睐,并被予以大力宣传。

超线程技术的工作原理

  超线程技术的工作原理是在每个时钟周期内完成更多工作,一个支持超线程(HT)技术的处理器使当前的操作系统和应用可以看到两个虚拟处理器,该处理器可以同时处理两组任务,充分利用闲置资源,并可在相同时间内完成更多工作。

  在处理多个线程的过程中,多线程处理器内部的每个逻辑处理器均可以单独对中断做出响应,当第一个逻辑处理器跟踪一个软件线程时,第二个逻辑处理器也开始对另外一个软件线程进行跟踪和处理了.另外,为了避免CPU处理资源冲突,负责处理第二个线程的那个逻辑处理器,其使用的是仅是运行第一个线程时被暂时闲置的处理单元.例如:当一个逻辑处理器在执行浮点运算(使用处理器的浮点运算单元)时,另一个逻辑处理器可以执行加法运算(使用处理器的整数运算单元).这样做,无疑大大提高了处理器内部处理单元的利用率和相应的数据、指令的吞吐能力。

超线程技术的优缺点

  1.优点

  (1)投入少,物美价廉.由于这项技术是将一个处理器模拟成两个使用,从而在增加极少投入的情况下就能够提高性能.对于操作系统来说,它又像真的拥有两个物理处理器一样工作,从而让两个程序或一个程序的两个线程,能够在单处理器上同时执行.由于减少了在线程之间的切换,提高了执行单元的利用率,从而使处理器实际使用效果得到极大的改善。

  (2)超线程在Web服务、SQL数据库等很多服务器领域的应用中表现优异.在2001年的时候,IBM就推出了它的第一款双核Power4处理器.IBM当时是用在了它的RISC服务器中,服务器的性能得到了很大的提高.

  (3)在某些支持多线程的软件应用上能够得到3O左右的性能提升,如3Dsmax、Maya、Of—rice、Photoshop等.在今后的软件开发中,支持多线程应用的软件定会蓬勃发展,大多数主流软件都会利用到超线程.因为无论是硬件厂商或软件厂商都会利用新技术来巩固自己的市场地位

  (4)WindowsXP已经针对其作出优化,在运行多个不支持多线程的程序时,性能也可能会获得提高.即便带来损失,也会显得比较轻微.

  (5)主流的桌面芯片组基本都已可以支持超线程,无需额外的花费.

  (6)目前在高端的PentiumEE和一部分Xe-on上也支持超线程技术.在支持超线程的处理器的机器上,支持多CPU的Windows会认出两个CPU.而在支持双内核处理的机器上,Windows也会认出两个CPU,在支持超线程双内核的处理器上,Windows会认出四个CPU。

  2.缺点

  (1)英特尔P4超线程有两个运行模式,Sin-gleTaskMode(单任务模式)及MuhiTaskMode(多任务模式),当程序不支持Multi-Processing(多处理器作业)时,系统会停止其中一个逻辑CPU的运行,把资源集中于单个逻辑CPU中,让单线程程序不会因其中一个逻辑CPU闲置而减低性能,但由于被停止运行的逻辑CPU还是会等待工作,占用一定的资源,因此Hyper-Thread-ingCPU运行SingleTaskMode程序模式时,有可能达不到不带超线程功能的CPU性能。

  (2)现在只有WindowsXP才能支持超线程技术,所以在操作系统上受到很大的限制.虽然微软公司新推出的WindowsVISTA系统也支持该技术,但是VISTA系统对计算机硬件及软件的要求很高,所以安装的成本较大。

  (3)缺乏大量普通应用软件的支持,性能因此得不到充分体现。

参考https://wiki.mbalib.com/wiki/%E8%B6%85%E7%BA%BF%E7%A8%8B%E6%8A%80%E6%9C%AF

超线程技术(Hyper—Threading Technology,HTT)的更多相关文章

  1. 使用GetLogicalProcessorInformation获取逻辑处理器的详细信息(NUMA节点数、物理CPU数、CPU核心数、逻辑CPU数、各级Cache)

    不过必须XP SP3以上才行.所有API大全: https://msdn.microsoft.com/en-us/library/windows/desktop/aa363804(v=vs.85).a ...

  2. Linux上如何查看物理CPU个数,核数,线程数

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

  3. Intel 英特尔

    英特尔 英特尔 基本资料   公司名称:英特尔(集成电路公司)    外文名称:Intel Corporation(Integrated Electronics Corporation)    总部地 ...

  4. grub paramiter & menu.list

    在Linux中,给kernel传递参数以控制其行为总共有三种方法: 1.build kernel之时的各个configuration选项. 2.当kernel启动之时,可以参数在kernel被GRUB ...

  5. Hyper-V性能-CPU分配

    为新部署的微软Hyper-V环境中的主机和网络挑选合适的硬件并非易事,更不用说在生产环境中衡量和监控性能这项任务了.在这里,我和大家谈谈服务器的核心CPU与Hyper-V的结合是如何相得益彰的. 我接 ...

  6. VMware虛擬化技術實作問答

    http://www.netadmin.com.tw/article_content.aspx?sn=1202130002&ns=1203280001&jump=3 Q4:啟用VMwa ...

  7. 关于Intel芯片架构的发展史

    ---恢复内容开始---  当你真正的深入去行走在底层的道路上,你就会接触大量的一些貌似懂的概念性名词,比如Intel公司的x86架构,x64等等,又或者是当年的386,486等等,唉,有的时候真的是 ...

  8. Intel processor brand names-Xeon,Core,Pentium,Celeron----Pentium

    http://en.wikipedia.org/wiki/Pentium Pentium From Wikipedia, the free encyclopedia     This article ...

  9. linux内核可以接受的参数 | Linux kernel启动参数 | 通过grub给内核传递参数

    在Linux中,给kernel传递参数以控制其行为总共有三种方法: 1.build kernel之时的各个configuration选项. 2.当kernel启动之时,可以参数在kernel被GRUB ...

随机推荐

  1. 查看Windows系统进程(PID)

    语法:tasklist /svc 作用:打印系统进程,并显示其对应PID,可用来跟踪进程并根据PID来进行关闭.

  2. 升级openssh漏洞

    升级openssl和openssh 最近接收到客户的漏洞提醒,openssl和openssh的漏洞,解决办法就只有升级. 升级前环境 ~]# ssh -V OpenSSH_5.3p1, OpenSSL ...

  3. Python入门篇-面向对象概述

    Python入门篇-面向对象概述 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.语言的分类 面向机器 抽象成机器指令,机器容易理解 代表:汇编语言 面向过程 做一件事情,排出个 ...

  4. ArrayList 与LinkedList 的区别及分别的优缺点

    ArrayList,与LinkedList都是属于实现了List接口的类.首先从名字前缀开始看  ,Array表示数组,Link表示链表. 所以ArrayList底层是基于动态数组的.而LinkedL ...

  5. SHA-1算法——(2)

    地址:https://www.alvestrand.no/objectid/1.3.14.3.2.26.html 地址:http://oidref.com/1.3.14.3.2.26 这个值好像是个标 ...

  6. Welcome to GnuPG 2.2

    Welcome to GnuPG 2.2 Installation Instructions Double click the Install package to install GnuPG 2.2 ...

  7. moviepy改进的想码

    这个要比前一个厚实点. 更改视频亮度,增加字幕,去除音轨,淡入特效,转换,截取时间,控制位置,组合图框,合成多段, 嗯,很多都有了. from django.test import TestCase ...

  8. 微信小程序和APP优劣势大对比

    小程序的优势: 1. 无需下载,随走随关 2. 功能丰富,体验更简便 3. 接口众多,可以进行不断的开发 4. 流量入口大,背靠日活9.6亿的微信 5. 有强大的微信生态环境 小程序对比APP的好处: ...

  9. 案例实战之如何写一个webpack plugin

    案例实战之如何写一个webpack plugin 1.写一个生成打包文件目录的file.md文件 // 生成一个目录项目目录的文件夹 class FileListPlugin { constructo ...

  10. c++实用语法

    数组的快捷初始化 int inq[110] memset(inq, 0, sizeof(inq)); string到char数组的转换: string str ("Please split ...