超线程技术(Hyper—Threading Technology,HTT)
什么是超线程技术
超线程技术就是利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,让单个处理器都能使用线程级并行计算.具体讲,就是通过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)的更多相关文章
- 使用GetLogicalProcessorInformation获取逻辑处理器的详细信息(NUMA节点数、物理CPU数、CPU核心数、逻辑CPU数、各级Cache)
不过必须XP SP3以上才行.所有API大全: https://msdn.microsoft.com/en-us/library/windows/desktop/aa363804(v=vs.85).a ...
- Linux上如何查看物理CPU个数,核数,线程数
首先,看看什么是超线程概念 超线程技术就是利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,让单个处理器都能使用线程级并行计算,进而兼容多线程操作系统和软件,减少了CPU的闲置时间,提高的CPU的 ...
- Intel 英特尔
英特尔 英特尔 基本资料 公司名称:英特尔(集成电路公司) 外文名称:Intel Corporation(Integrated Electronics Corporation) 总部地 ...
- grub paramiter & menu.list
在Linux中,给kernel传递参数以控制其行为总共有三种方法: 1.build kernel之时的各个configuration选项. 2.当kernel启动之时,可以参数在kernel被GRUB ...
- Hyper-V性能-CPU分配
为新部署的微软Hyper-V环境中的主机和网络挑选合适的硬件并非易事,更不用说在生产环境中衡量和监控性能这项任务了.在这里,我和大家谈谈服务器的核心CPU与Hyper-V的结合是如何相得益彰的. 我接 ...
- VMware虛擬化技術實作問答
http://www.netadmin.com.tw/article_content.aspx?sn=1202130002&ns=1203280001&jump=3 Q4:啟用VMwa ...
- 关于Intel芯片架构的发展史
---恢复内容开始--- 当你真正的深入去行走在底层的道路上,你就会接触大量的一些貌似懂的概念性名词,比如Intel公司的x86架构,x64等等,又或者是当年的386,486等等,唉,有的时候真的是 ...
- Intel processor brand names-Xeon,Core,Pentium,Celeron----Pentium
http://en.wikipedia.org/wiki/Pentium Pentium From Wikipedia, the free encyclopedia This article ...
- linux内核可以接受的参数 | Linux kernel启动参数 | 通过grub给内核传递参数
在Linux中,给kernel传递参数以控制其行为总共有三种方法: 1.build kernel之时的各个configuration选项. 2.当kernel启动之时,可以参数在kernel被GRUB ...
随机推荐
- Node: Process模块 (Features of Process)
Process模块 (Features of Process) process is a global variable which indicates the current Node.js pro ...
- CentOS7安装MySQL5.7及Tomcat8.5
在CentOS7服务器上部署FR项目应用 一.安装CentOS-7_x86_64 1.CentOS7:带GUI的服务器(FTP服务器.JAVA平台.兼容性程序库.开发工具.安全性工具.系统管理工具): ...
- golang读写文件
1. 标准输入输出 os提供了标准输入输出文件: Stdin = NewFile(uintptr(syscall.Stdin), "/dev/stdin") Stdout = Ne ...
- Linux命令——blkid
简介 blkid用于查看块设备UUID.Label.挂载.文件系统类型等信息 选项参数 无参数——显示所有已挂载分区信息 查看特定分区 -s:指定输出信息(UUID.TYPE.LABEL.PTTYPE ...
- 网络空间安全基础篇(2)----wireshark
wireshrak是一款通过本地端口,来抓取通过以太网获取的文件包,包括SMB HTTP FTP TELNET 等包 在网络安全比赛中最常用的就是HTTP协议,TELNET协议,FTP协议,SMB协议 ...
- AD中怎么将字体stroke全部改为truetype?
shift+F 智能查找功能,然后鼠标会变成十字状,你点一下你的这个字体会弹出如下: 一开始如果你没有改动过字体那应该都是同一总字体 在1的地方选择same,你点apply再点OK就可以把全部stro ...
- docker动态修改端口映射(考虑生产环境)
今天需要修改一个容器A的外部映射的端口,在宿主机上跑着许多容器,所以在解决这个问题的时候需要考虑两个硬性条件: 1.宿主机上docker的service服务本身不能重启,影响其他线上容器. 2.该容器 ...
- HTML常用全部代码--第一部分--HTML/CSS( 小伙伴要牢记😁😁😁😁 )
<一>html代码大全:结构性定义 (1) 文件类型<HTML></HTML> (放在档案的开头与结尾) (2) 文件主题<TITLE></TIT ...
- AXURE RP EXTENSION For Chrome----解决办法
出现这个问题是因为chrome://extensions/中没有安装扩展程序 解决办法: 步骤一:情景再现,打开某个html会出现如下页面,不停地提示你安装插件 步骤二:如果点击安装扩展程序,能够成功 ...
- Improving Sequential Recommendation with Knowledge-Enhanced Memory Networks(知识图谱)
本文作者:杨昆霖,2015级本科生,目前研究方向为知识图谱,推荐系统,来自中国人民大学大数据管理与分析方法研究北京市重点实验室. 引言 经常上购物网站时,注意力会被首页上的推荐吸引过去,往往本来只想买 ...