超线程技术(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 ...
随机推荐
- MavenWrapper替代Maven
1. 说明 jdk8已经安装成功 Maven已经安装成功 参见Maven Wrapper 2. Maven初始化项目 注:初次执行,Maven会下载很多jar,需等待几分钟 mvn archetype ...
- IDEA如何配置tomcat及建一个web项目
需求:项目工程可能别人已经建好了,我需要把项目导入到自己的IDEA并配置tomcat运行; 准备工作:1.本地的tomat服务器 2.IDEA工具 3.JDK 步骤: 1.点击Run -> Ed ...
- Linux命令——chgrp、chown、chmod
简介 这三个命令都用于更改文件permission(权限).即下图红框位置 除此之外还有个“连结”,那个指的是硬链接,不是软连接.FS使用inode区分不同文件,而目录树使用文件名区分不同文件,因此可 ...
- Hbase的表结构中rowkey的设计---避免热点问题
热点问题 hbase 中的行是以 rowkey 的字典序排序的,这种设计优化了scan 操作,可以将相关的 行 以及会被一起读取的行 存取在临近位置,便于 scan . 然而,糟糕的 rowkey 设 ...
- O(n) 取得数组中每个元素右边第一个比它大的元素
题目: 给定一个整型数组,数组元素随机无序的,要求打印出所有元素右边第一个大于该元素的值. 如数组A=[6,8,9,2,3,5,6] 输出[8,9,-1,3,5,6,-1] 思路: 我们用栈来保存未找 ...
- Android 网络服务介绍
1. 介绍 Android网络服务主要包括如下四个部分 - ConnectivityService: 提供数据连接管理服务,包括移动数据.WIFI.以太网等 - NetworkPolicyManage ...
- 项目Alpha冲刺 8
作业描述 课程: 软件工程1916|W(福州大学) 作业要求: 项目Alpha冲刺(团队) 团队名称: 火鸡堂 作业目标: 介绍第8天冲刺的项目进展.问题困难和心得体会 1.团队信息 队名:火鸡堂 队 ...
- Echo团队Alpha冲刺随笔 - 第十天
项目冲刺情况 进展 对Web端和小程序端进行各项功能的测试 问题 bug无穷无尽 心得 debug使人秃头,希望明天能挑好 今日会议内容 黄少勇 今日进展 测试小程序,对发现的bug进行处理 存在问题 ...
- 大数据开发之keras代码框架应用
总体来讲keras这个深度学习框架真的很“简易”,它体现在可参考的文档写的比较详细,不像caffe,装完以后都得靠技术博客,keras有它自己的官方文档(不过是英文的),这给初学者提供了很大的学习空间 ...
- C++指针的一些问题
用变量a给出下面的定义: a)一个整形数(An integer) b)一个指向整形数的指针 c)一个指向指针的指针,它指向的指针指向一个整形数 d)一个有十个整形数的数组 e)一个有十个指针的数组,该 ...