2002年11月
前言
本文介绍了英特尔全新的超线程(Hyper-Threading)技术。超线程技术是32位英特尔架构(IA-32)的一个新特性,它将能够大幅提高未来基于英特尔NetBurst微架构的IA-32处理器的性能。本文对超线程技术进行了简要介绍,并详尽阐述了它如何能够提高用以在IA-32处理器上运行的 *** 作系统和应用软件的性能。
超线程技术介绍
在IA-32的演进过程中,英特尔不断增添创新特性来提高处理器性能,以满足计算密集型应用的各种需求。超线程技术就是其中之一,英特尔旨在使用该技术提高IA-32处理器的性能,使其能够更好地运行支持多处理器(MP)的 *** 作系统和多线程应用。
10 超线程技术概述
超线程技术使一个物理处理器能够同时执行两个独立的代码流(称为线程)。从体系结构上讲,一个含有超线程技术的IA-32处理器相当于两个逻辑处理器(请 参阅图1),而其中每个逻辑处理器都有自己的IA-32架构中心 。在加电初始化 后,每个逻辑处理器都可单独被停止、中断或安排执行某一特定线程,而不会影响芯片上另一逻辑处理器的性能。与传统双路(DP)配置不同(使用两个独立的物理IA-32处理器,如两个英特尔至强处理器),在含有超线程技术的处理器中, 逻辑处理器共享处理器内核的执行资源,其中包括执行引擎、高速缓存、系统总线接口和固件等。
图1-1 含超线程技术的IA-32处理器与传统双路系统的比较
超线程技术经过精心设计,旨在通过发挥当前 *** 作系统、服务器应用和工作站应用的多线程特性,提高英特尔NetBurst微架构可用芯片执行资源的利用率,从而来改进IA-32处理器的性能。
几乎所有的现代 *** 作系统(包括Microsoft Windows和Linux)都将其工作负载 分成多个进程和线程,从而可以单独调度和分配到处理器上运行。在许多高性能应用中也可以发现同样的工作负载分割,如数据库引擎、科学计算程序、设计工作站工具以及多媒体程序。为了获得更高的处理能力,大多数现代 *** 作系统和应用都设计为可以在双路(DP)或多路(MP)环境中执行,使用对称多处理(SMP)将进程和线程发送到处理器池上运行。
超线程技术在一个芯片上实施了“两个”逻辑处理器,充分发挥了现代 *** 作系统和高性能应用中的进程和线程级并行计算能力。这种配置可使每个逻辑处理器都执行一个线程2。来自两个线程的指令被同时发送到处理器内核来执行。处理器内核并发执行这两个线程,使用乱序指令调度以求在每个时钟周期内使尽可能多的执行单元投入运行。
超线程技术的更高指令处理吞吐量源于以下两个因素:
• 英特尔NetBurst微架构设计
• 多线程代码中经常含有的IA-32指令混合。
英特尔NetBurst微架构设计用于在执行单指令流(执行一个线程)时提供最佳性能;但是在每个时钟周期内通常(即便使用高度优化代码)都不会使用所有可用的执行单元。一般说来,当执行含有典型IA-32指令混合的代码时,英特尔NetBurst微 架构仅会用到35%3的执行资源。为了更有效地使用这些执行资源,超线程技术利用了多线程代码固有的并行性,为处理器内核提供第二个执行线程。这两个线程为指令调度程序提供了一组彼此没有多少关联性的指令,从而有更多机会使用处理器内核的可用执行资源。结果,物理处理器在执行多线程代码时达到了更高的指令处理吞吐量。
20 含超线程技术的IA-32处理器
含超线程技术的IA-32处理器对软件来说是两个独立的IA-32处理器,类似于传 统DP平台的两个物理处理器。这一配置使为传统DP或MP系统设计的 *** 作系统和应用软件无需任何修改,即可在采用了一个或多个含有超线程技术的IA-32处理器的平 台上运行。原来需要发送到两个或多个物理处理器的多个线程现在可发送到一个或多个含有超线程技术的IA-32处理器的逻辑处理器上。
在固件(BIOS)级,配备多个含有超线程技术的处理器的MP平台与传统MP平台4的基本启动程序非常相似。设计在传统DP或MP平台上运行的 *** 作系统可使用CPUID指令来检测含有超线程技术的IA-32处理器的当前情况。多处理器规范14版中描 述的用以唤醒物理处理器的机制同样适用于含有超线程技术的IA-32处理器中的逻辑处理器。
尽管现有的 *** 作系统和应用代码可在含有超线程技术的处理器上正确运行,但建议采用一些相对较简单的代码修改,以从超线程技术中获得最大优势。
30 超线程技术的性能优势
含有超线程技术的处理器在执行多线程 *** 作系统和应用代码时,其性能比不含超线程技术的同档IA-32处理器提高30%。在MP系统中,计算能力通常可随着系统中 物理处理器数量的增加呈线性增长;即使在MP系统中,性能的可扩充性在很大程度上取决于应用的特性。
40 总结
超线程技术是提高服务器处理器和高性能工作站处理器的指令吞吐量的新方法。它还为未来的微处理器设计指明了方向。届时,处理器在执行特定类型应用时的性能、或服务器中物理处理器的空间和电源要求都将像其原始处理速度一样重要。
2 在本文中,术语“流程”和“线程”将统称为“线程”。
3 该图源自英特尔实验室。
4 需要对MP初始化算法进行一些相对简单的改进。
本文所提供之信息均与英特尔产品相关。本文件不代表英特尔公司或其它机构向任何人明确或隐含地授予任何知识产权。除相关产品的英特尔销售条款与条件中列明之担保条件以外,英特尔公司不对销售和/或使用英特尔产品做出任何其它明确或隐含的担保,包括对适用于特定用途、适销性,或不侵犯任何专利、版权或其它知识产权的担保。英特尔产品并非为用于医疗、救生或延长生命等应用领域专门设计。
英特尔可以随时在不发布声明的情况下修改规格和产品说明。
设计者不得恶意利用带有“保留”或“未定义”的任何特性或说明。英特尔保留今后对其定义的权利,对于因今后对其进行修改所产生的冲突或不兼容性概不负责。
英特尔IA-32英特尔架构处理器(例如奔腾®4处理器和奔腾®III处理器)可能包含设计缺陷或错误, 已在勘误表中注明。英特尔提供当前的勘误表备索。
英特尔®、英特尔386、英特尔486、奔腾®、英特尔NetBurst、英特尔至强、MMX和安腾均为英特尔公司的注册商标。
第三方品牌和名称均为其各自所有者的财产。
订购产品前,请联系您当地的英特尔销售办事处或分销商,了解最新技术规范。
或请访问英特尔公司网站>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)