超线程
英特尔研发的一种硬件技术
超线程(Hyper-Threading,HT)是英特尔研发的一种硬件技术,允许在每个内核上运行多个线程。更多的线程意味着一个内核可以并行完成更多的工作。
超线程技术可以将一个物理内核的两个逻辑内核模拟两个物理芯片,同时处理多线程操作,减少了CPU闲置时间,提高了效率。
2002年2月,英特尔公司正式发布超线程技术,并率先将该技术用在Xeon至强处理器上。同年11月14日,英特尔公司又将超线程技术应用在3.06GHz Pentium4处理器上。
定义
超线程技术是指利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,让单个处理器都能使用线程级并行计算,进而兼容多线程操作系统和软件,减少了CPU的闲置时间,提高CPU的运行效率。
采用超线程技术在同一时间里,应用程序可以使用芯片的不同部分。虽然单线程芯片每秒钟能够处理成千上万条指令,但是在任一时刻只能够对一条指令进行操作。而超线程技术可以使芯片同时进行多线程处理,使芯片性能得到提升。
背景
由于硬件技术的发展,特别是CPU制造技术的发展,倍频已达到二十几倍。芯片厂商原先通过改进微处理器的核心微架构,提高微处理器的主频,来提高微芯片的处理速度。然而,这样往往需要增加晶体管的数量,大大增加发热量(Pentium4 3.06GHz功耗已达到82W)和提高生产成本。另一方面,普通的应用软件(专业和测试软件除外)很难完全发挥微处理器的全部性能。因为微处理器是由很多执行单元组成的。很多时候这些单元无法同时工作,大半的执行单元处于空闲状态。例如,执行整数运算单元时,浮点运算单元是空闲的。
超线程技术就是为了弥补传统微处理器在执行单元效能上的利用率不足而开发的一项全新技术。
发展历史
超线程技术最早由美国DEC(Digital Equipment Corporation)公司研发。1997年,陷入经营困境的迪吉多将半导体部门出售给了英特尔
1997年,英特尔公司申请了该项技术成果的专利。
2002年2月,英特尔公司正式发布了超线程技术,并率先将该技术用在了Xeon至强处理器上。
2002年11月14日,英特尔公司又推出采用超线程技术的Pentium4 3.06GHz台式机处理器。
2016年,英特尔公司发布了Core i7-6950X处理器。该处理器有10个物理核心,支持超线程技术。
技术细节
技术原理
超线程技术原理可理解为利用特殊的硬件指令,把一个物理内核中的两个逻辑内核模拟成两个物理芯片,让单个微处理器能使用线程级并行计算,从而兼容多线程操作系统和软件,提高微处理器的性能,这与x86平台下的同步多线程(SimultaneousMulti-Threaading,SMT)技术有异曲同工之处。
在高端计算机系统中采用了指令级平行运算(InstructionLevelParallelism,ILP)技术,可以同时执行多条指令,提高单CPU的效率。而x86架构只能让多个CPU来执行不同的线程,不过硬件成本增加了很多。超线程技术微处理器兼容两者的优势,微处理器的两个逻辑内核ALU模拟成两个物理芯片,让每个微处理器都能使用线程并行计算,而且兼容多线程操作系统和软件,提高微处理器的性能。对于操作系统而言,它可视为两个分离的逻辑微处理器,每个逻辑微处理器可以各自对请求做出响应。当其中的一个逻辑微处理器跟踪某个线程的时候,另一个逻辑微处理器就可以跟踪其他线程,两个逻辑微处理器共享一组微处理器执行单元,并行完成算术和逻辑等操作。这样一来,操作系统把工作线程安排好以后,就分派给这两个逻辑上的微处理器执行。
运行条件
硬件支持
首先,CPU处理器必须支持超线程技术。
其次,超线程技术需要主板对CPU的电源支持,需要主板能提供给微处理器高达70A的电流,否则系统可能不能长期稳定工作。
再者,BIOS需要加入特定的支持超线程微处理器的代码。当BIOS检测到是超线程微处理器时,在BIOS设置菜单中出现"CPUHyper-Threading(Enabledor Disabled)"的选项。
软件支持
超线程技术还需要操作系统和应用软件的支持。
应用
适合场景
有了 CPU 超线程技术,PC 可以在更短的时间内处理更多的信息,并运行更多的后台任务,而不会中断。在适当的情况下,该技术允许 CPU 内核在同一时间有效地执行两项操作。对于运行重线程程序的多任务工作者、网络主播和专业人士来说,升级到采用英特尔超线程技术的游戏笔记本电脑或游戏台式机CPU(比如最新的英特尔® 酷睿™ i9 处理器),就能大幅提升计算体验。
不适合场景
虽然采用超线程技术能同时执行两个线程,但它并不象两个真正的 CPU 那样,每个 CPU 都具有独立的资源。当两个线程都同时需要某一个资源时,其中一个要暂时停止,并让出资源,直到这些资源闲置后才能继续。因此超线程的性能,并不等于两颗 CPU 的性能。
相关概念
目录
概述
定义
背景
发展历史
技术细节
技术原理
运行条件
硬件支持
软件支持
应用
适合场景
不适合场景
相关概念
参考资料