超线程技术

作者&投稿:符堵 (若有异议请与网页底部的电邮联系)
什么是超线程技术?~


超线程技术是英特尔为了弥补奔腾4CPU在处理多任务时的不足而研发的一种技术,形象的来讲就是将一颗核心的奔4通过该技术模拟成两个核心来运行,这样就提高了CPU在处理多任务时的速度和效率,不过需要CPU、主板、系统、和应用软件的支持才能发挥功效。但是运行单任务是没有任何效果的,甚至起反作用。对于现在来讲是过时的技术了,现在的CPU都是真正的双核,速度很快。超不超线程都无所谓了!

Intel的超线程(Hyper Threading)技术开创性地使用了"逻辑处理器"的技术,给应用带来的影响不仅是以往的CPU主频的提高,更具意义的是性能的显著提升--超线程技术已经被验证,在企业级计算领域,它能够将服务器执行兼容应用的性能提升30%,大大改进了系统响应速度,从而使服务器能够支持更多用户。
当前的操作系统和服务器应用已不再将不同应用的工作负载混为一个数据流,而是分为单独的指令"线程"。在多路服务器中,这些线程分别由不同的处理器来执行,从而性能远远超出了单处理器系统。凭借超线程技术,英特尔至强处理器操作系统和应用而言就是如同是两个独立?逻辑"处理器,能够同时处理两个"线程"。这一能力主要得益于英特尔NetBurst 微架构的不断创新,它使处理器资源得以充分利用。超线程技术使一个物理处理器能够同时执行两个独立的代码流(称为线程)。从体系结构上讲,一个含有超线程技术的IA-32处理器相当于两个逻辑处理器。而其中每个逻辑处理器都有自己的IA-32架构中心,在加电初始化后,每个逻辑处理器都可单独被停止、中断或安排执行某一特定线程,而不会影响芯片上另一逻辑处理器的性能。与传统双路(DP)配置不同(使用两个独立的物理IA-32处理器),在含有超线程技术的处理器,逻辑处理器共享处理器内核的执行资源,其中包括执行引擎、高速缓存、系统总线接口和固件等。
英特尔超线程技术可兼容现有的大多数多线程32位应用和操作系统,因而软件将无需进行重新编译。当前,业界正在展开优化工作,以使服务器应用能够最大限度利用超线程技术的优势,如Web、目录应用、安全应用、电子商务、CRM、协作、ERP/SCM和数据库等。
超线程技术带来的杰出业务优势包括:较高的服务器响应速度和数据处理速度带来出色业务响应能力;更高效地利用处理器可用资源意味着支持更多的员工。
应用程序和操作系统的功能日益丰富,这需要更高的处理能力。病毒扫描、文件加密和电子邮件压缩等IT后台服务使计算基础设施更加稳健,但同时也增大了电脑处理器的负载。从而,现在含有多任务和后台处理的商用计算迫切需要一种新的方法来提高性能,以使系统保持出色的响应能力。超线程技术带来的影响不可低估。英特尔超线程技术引入了台式机,来满足这些需求,使商业用户事半功倍。使用超线程技术,商业用户可以最充分地利用Windows XP的优先多任务体系结构,同时运行多个要求最苛刻的应用程序,并保持系统的响应性。IT部门可以部署台式机后台服务,以使其环境更加安全、高效和易于管理,同时最大限度地减少对最终用户工作效率的影响。此外,商业用户现在有能力处理以前曾无法处理的任务,如使用SAS进行数据采掘,同时用Excel宏分析数据,或者一边使用Photoshop设计宣传手册,一边使用Adobe Premiere渲染图像。
超线程的优势还不止这些。提高多任务环境中现有软件及多线程应用的性能只是目前的收益。英特尔还正在与开发下一代解决方案的领先软件公司通力合作,将超线程技术的极大优势融入到这些解决方案之中。

Hyper-Threading 超线程技术

超线程从观念上很容易理解,它让一颗物理处理器在使用的时候看起来更象是两个,处理器的资源被分成两个逻辑的部分。对于用户来说,这也意味着让从前那些多用户、多进程、多线程的软件充分发挥效能的环境不再局限于物理多CPU--逻辑CPU也能够起到接近的作用。
尽管超线程技术在P4 Xeon处理器中已经应用了半年有余的时间,但是面对着未来集成了超线程技术的P4级别CPU,我们认为,还是有必要从更深的层次来挖掘超线程的技术细节以及它与P4核心的有效整合。很幸运,在11月初我们找到了Intel于今年2月份发布Xeon之前的一份内部技术资料--66页的Intel超线程技术白皮书,在这份资料中,Intel详细描述了超线程技术的由来、架构、如何优化以及测试方法和测试数据。在此,我们愿与读者一起来共享这些知识,以便我们能够一起来更多了解超线程的机理。
一. 应运而生,超线程诞生的背景

各个行业巨大的需求一直是推动CPU按照摩尔定律稳步进行性能提升的主要动力,尤其是在互联网和通讯领域,为了满足这些增长迅速的需求,我们无法再沿用传统的仅提升CPU频率的设计思路。微结构技术被用来从细节上提升CPU的性能,比如超流水线、乱序运行、超标运行、多级缓存等技术都有效的提升了CPU的性能,但是随着这些技术的引入,我们正在使用的CPU也越来越复杂,它集成了越来越多的晶体管并且要求更高的电源供应。实际上,晶体管数量和电源供应增加的速度远远大于处理器性能提升的速度。

过去十年INTEL CPU性能提升与花费比较

我们来看上图,它体现了过去10年Intel CPU性能提升与相应的成本提升速度的比较,为了减少微结构技术给最终比较结果造成的影响,我们假设这四代CPU都在使用同样的制造工艺并且以486的速率作为基准。 在此表中我们可以看出,排除微结构技术的影响,Intel CPU整数运算的性能在这十年提升了5倍左右;与此同时,如果采用同样工艺,CPU的封装将要扩大15倍;相应的,在同样的工艺下,电源供应的要求提升了将近18倍。 尽管这个例子显示的是Intel的状况,但我们会发现,任何一家高性能CPU的制造商,都面临着同样的困惑。

当然,我们上面假象的是制造工艺和技术都还停留在486的阶段,随着制造工艺的提高以及相关技术的不断突破,我们并没有看到上述的封包和电源需求的可怕状况,但CPU更新速度在加快,现有的制造工艺很快就会捉襟见肘,如果依然按照现有的性能提升发展下去,很快瓶颈就会出现,所以,必须寻找其他的道路来降低提升性能被工艺束缚的危险,超线程正是在这样一个背景下被Intel推向前台的。

二. 超线程的运行机理

超线程属于线程级并行的一种,其实现在软件发展的趋势尤其是在服务器软件方面正是向着多线程的方向发展,比如在在线事务处理和Web服务中,大量的线程由来自不同IP的不用请求产生,如果这些线程不能够并行处理, 那么整个网络服务器的性能将受到极大的影响;在桌面系统的软件中也存在着这种趋势,面对这样的一个情况,Intel清楚的看到,充分利用现有系统资源,优化并完善线程级的并行处理,使多个线程能够更好的同时处理,比不断的增加晶体管的数量来达到CPU性能的提升更有效。

现有的已经在中高端服务器/工作站领域充分利用的多处理器技术就可以被看作是线程级并行的一种,通过增加CPU的数目,系统的性能有了非常稳固的提升,将多个线程同时在多个处理器上同时运行,而不管它们是否来自一个程序。多处理技术目前已经是非常成熟的技术,但是它存在着成本的问题,无法进一步的在更主流的应用中普及。

近几年,更多的线程级并行解决方案被提出,基于他们的产品也有不少已经发布,在其中有几种典型的技术:

芯片级多进程:这种技术将两个完全一样的处理器封装在一起,它们都拥有独立的结构,共享大部分缓存资源,这种技术与传统的多处理器技术有着很大的区别, 因为你完全可以使用多个采用这种技术来构造的CPU组成一个多处理器系统,但是它的缺点也很明显,更大的封装尺寸以及昂贵的制造成本使其无法成为主流的处理器制造技术。

分时多进程:这种技术是让处理器在安排好的时序周期里交叉运行多个线程,这种技术在牺牲了频率性能的同时,以最小的代价节省了浪费的时序周期,但是对于那种需要大量内存读写操作的线程,它的影响有限。

事件响应多进程:这种技术是在一个线程需要进行长时间的后台处理比如对缓存进行读写操作的时候,将处理器的操作权交给另外一个线程,它应用于需要进行大量读写操作的服务器程序中对性能的提升很高。

并行多线程:无论是分时多进程还是事件响应多进程都有它无法避免的局限性,在它们的技术的基础上,并行多线程提出了新的解决思路,它在一个处理器内部实现了无需切换的多个线程并行处理,它能够更有效的利用处理器的资源,它是多种线程级并行方案中节约最多资源、提升性能最多并且适用范围最广的。

超线程就是并行多线程技术在Intel处理器架构中的体现,它在一个处理器的内部为每个逻辑处理器构建了一套架构状态(Architecture State以下简称AS),每个AS包括一个处理器必须的一些寄存器,包括:通用状态寄存器、控制寄存器、高级程序中断寄存器以及其他一些处理一个线程必须的寄存器, 完整的复制AS需增加的晶体管数量非常有限;同时两个逻辑处理器共享一套物理执行单元、分支预测单元、控制逻辑以及总线,从软件操作的角度来看,这意味着操作系统和应用程序可以象在一台多处理器的系统中运行一样来规划它的进程或者线程运行。而从微架构的角度来看,这意味着来自逻辑处理器的指令将在共享的运算单元并行处理。

不包含多线程技术的处理器的多处理器系统

作为一个例子,上图展示了一个典型的没有多线程技术支持的多处理器系统,下图展示了一个典型的采用多线程技术支持的CPU的多处理器系统,我们可以看到两个物理的处理器内部被分成了4个逻辑的处理器。

使用多线程技术处理器的多处理器系统

在超线程技术产品化的过程中,还有几个细节我们需要特别注意:

1. 尽量的缩小超线程技术对封包尺寸的影响:由于逻辑处理器共享了大部分的微结构资源而仅仅复制了一小部分必须的硬件资源,封包的尺寸仅仅增加了不到5%。

2. 当一个逻辑处理器停止运行的时候,另一个逻辑处理器应能够继续运行:一个逻辑处理器可能因为多种原因而暂时中断,比如等待缓存读写、等待上一条指令的结果等等,Intel通过一个中立的程序来管理指令缓冲队列,在有两个线程在进行的时候,它不允许任何一个逻辑处理器独占指令缓冲队列,这样就有效的避免了一个逻辑处理器独占指令缓冲队列并暂时中断时,另外一个逻辑处理器也陷入无限悲惨之漫长等待。

3. 当只有一个线程运行时资源的调配:当只有一个线程在处理器中运行的时候,拥有超线程技术的处理器的运行效率能否达到同档次没有超线程技术的处理器呢?这意味着当只有一个线程运行时,所有的资源都应该调配给它以便它能够更有效的运行,我们可以看到下面的图,在P4的超级流水线上,任何两个逻辑处理流程之间,都由缓冲队列来进行分割,通过这种方式,它保证了任何正在进行的线程能够根据缓冲队列的拥挤程度来请求资源并逐步完成线程,而当只有一个线程存在时,由于缓冲队列是空的,所以所有的资源都会提供给这个线程以保证它在最短时间完成操作。

要亲身感受Hyper-Threading超线程技术,除了带HT标志的P4外,以下的一些条件也是必不可少的,请看:

1、 采用含有HT技术的芯片组制造的主板。最新的Intel 845PE、845GE芯片组都支持HT技术;

2、 确保上述这类主板的BIOS中有开启HT技术的选项,并将其打开;

3、 为HT超线程技术进行优化的操作系统(Microsoft Windows XP家庭版或专业版,以及Linux 2.4.18或更新的版本)。需要注意的事,您原有的Ghost镜像文件已是无效的,必须在BIOS中打开HT后,重新安装操作系统,再进行Ghost备份的镜像文件才是支持HT超线程技术的;

4、 您的Microsoft Windows XP系统必须打好SP1补丁。


线程编程属于很高级的技术吗?
在并发线程的执行中,还涉及了线程之间的数据共享、数据传递、并发、互斥等种种问题。所以线程编程是很难,而且很高级的技术,但是在很多的高性能应用中很需要。举个例子吧,我是计算机专业的学生,目前就要大四,我们再大三的上学期才第一次接触到线程编程。而一个研究生学长说,他真正用到线程,是在...

三线程技术是什么意思
三线程技术就是指一个恶意代码进程同时开启了三个线程,其中一个为主线程,负责远程控制的工作。另外两个辅助线程是监视线程和守护线程,监视线程负责检查恶意代码程序是否被删除或被停止自启动。守护线程注入其它可执行文件内,与恶意代码进程同步,一旦进程被停止,它就会重新启动该进程,并向主线程提供必要...

什么是多线程技术?
多线程的概念?说起多线程,那么就不得不说什么是线程,而说起线程,又不得不说什么是进程。进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计...

超线程技术名词解释
超线程技术:是利用特殊的硬件指令,把单个物理核心模拟成两个核心(逻 辑核心),让每个核心都能使用线程级并行计算,进而兼容多线程操作系统 和软件,减少 CPU 闲置时间,提高 CPU 运行效率。超线程(HT, Hyper-Threading)是英特尔研发的一种技术,于2002年发布。超线程技术原先只应用于Xeon 处理器中...

电脑CPU有超线程,为什么手机CPU没有超线程设计?
先讲什么是超线程技术。 超线程(Hyper-Threading,简称HT)技术最早是英特尔提出并应用,它的原理是这样的:在单个核心处理单元中集成两个逻辑处理单元,从而可以在单位时间内处理两个分别进行整数核浮点运算的线程, 模拟 双内核运作。 一个拥有超线程技术的CPU,可以模拟成2个CPU。打个比方,如果一个核心处理单元(CPU内核...

超线程技术指什么
简单的说,超线程技术(Hyper Threading)是一种同步多执行绪(SMT,simultaneous Multi-threading)技术,它的原理很简单,就是把一颗CPU当成两颗来用,将一颗具Hyper-Threading功能的“实体”处理器变成两个“逻辑”处理器而逻辑处理器对于操作系统来说跟实体处理器并没什么两样,因此操作系统会把工作线程...

超线程技术怎么开启?
问题一:CPU超线程怎么开启 这要看CPU支不支持了,首先超线程技术只支持因特尔的CPU 不支持超线程的CPU是不能打开超线程的 如果CPU支持超线程,那么一般BIOS里默认是开启(enabled)的状态 如果支持但是没有开启,那么进入BIOS里,找Hyper-Threading,改为enabled (图仅作参考)检查是否开启按Ctrl+Shift...

超线程技术的原理是什么?
关闭这个功能的好处如下:1、根据查询中关村在线官网显示,提升计算效率:关闭该功能后,处理器只需要为一个线程执行指令,而不需要为多个线程执行指令,这样可以提升计算效率。2、减少内存开销:处理器只需要为一个线程分配内存,而不是为多个线程分配内存,这样可以节省内存资源,减少内存开销。3、降低活动...

什么是CPU的超线程技术?
超线程就是一个核心跑两个线程,对程序来说一个核心看起来就像2个核心了。但性能提高有限,不如真的多一个核心。CPU的模样差不多,小四方基板上面有块金属盖子,盖子保护着下面的CPU 的核心。早期的CPU 都是一个核心,就是单核CPU ,后来同过技术手段,让一个核心 一心二用,又虚拟出一个核心,...

什么叫多线程
多线程,是指从软件或者硬件上实现多个线程并发执行的技术。 在一个程序中,这些独立运行的程序片段叫作“线程”,利用它编程的概念就叫作“多线程处理”。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。多线程是为了同步完成多项任务,不是为了提高运行效率...

鹤山区19217509947: 超线程技术 - 搜狗百科
艾褚牛黄: 超线程技术就是利用特殊字符的硬件指令,把两个逻辑内核模拟成物理芯片,让单个处理器能使用线程级并行计算,从而兼容多线程并行计算,从而兼容多线程操作系统和软件,使运行性能提高30%. 虽然单线程芯片每秒钟能处理成千上万条指...

鹤山区19217509947: 超线程技术???什么意思?
艾褚牛黄: 是Intel采用的另一个思路去提高CPU的性能,让CPU可以同时执行多重线程,就能够让CPU发挥更大效率,即所谓“超线程(Hyper-Threading,简称“HT”)”技术.超...

鹤山区19217509947: 超线程技术指什么 -
艾褚牛黄: 简单的说,超线程技术(Hyper Threading)是一种同步多执行绪(SMT,simultaneous Multi-threading)技术,它的原理很简单,就是把一颗CPU当成两颗来用,将一颗具Hyper-Threading功能的“实体”处理器变成两个“逻辑”处理器而逻辑处...

鹤山区19217509947: 超线程技术是什么? -
艾褚牛黄: 超线程技术是在一颗CPU同时执行多个程序而共同分享一颗CPU内的资源,理论上要像两颗CPU一样在同一时间执行两个线程,P4处理器需要多加入一个Logical CPU Pointer(逻辑处理单元).因此新一代的P4 HT的die的面积比以往的P4增大...

鹤山区19217509947: 什么是超线程技术?什么是超线程技术??
艾褚牛黄: 该处理器还支持超线程(HT:HyperThreading)、虚拟化(IntelVirtualizationTechnology)以及Intel缓存安全技术(CacheSafeTechnology),3.0GHz主频以上的Xeon7100系列处理器TDP功耗为150W,3.0GHz以下的TDP为95W

鹤山区19217509947: 超线程技术 -
艾褚牛黄: [编辑本段]超线程(Hyper-Threading,简称“HT”)超线程技术就是利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,让单个处理器都能使用线程级并行计算,进而兼容多线程操作系统和软件,减少了CPU的闲置时间,提高的CPU...

鹤山区19217509947: 超线程技术是什么意思? 有什么用? -
艾褚牛黄: “超线程”技术(Hyper-Threading Technology)是Intel在2002年发布的一项新技术.Intel率先在XERON处理器上得到应用.由于使用了该技术,Intel将是世界上首枚集成了双逻辑处理器单元的物理处理器(其实就是在一个处理器上整合了两个...

鹤山区19217509947: 什么是"超线程技术"? -
艾褚牛黄: 超线程技术是Intel 的创新设计.所谓超线程技术就是利用特殊的硬件指令,把多线程处理器内部的两个逻辑内核模拟成两个物理芯片,从而使单个处理器就能“享用”线程级的并行计算的处理器技术.多线程技术可以在支持多线程的操作系统和...

鹤山区19217509947: 超线程技术是什么意思?(简明扼要) 谢谢! -
艾褚牛黄: 所谓“超线程(Hyper-Threading,简称“HT”)”技术.超线程技术就是利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,让单个处理器都能使用线程级并行计算,进而...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网