h
超线程(HT, Hyper-Threading)[1]是英特尔研发的一个技术,于2002年发布。超线程技术原先只应用于Xeon处理器中,当时称为“Super-Threading”。之后陆续应用在Pentium 4中,将技术主流化。早期代号为Jackson。
通过此技术,英特尔实现在一个实体CPU中,提供两个逻辑线程。之后的Pentium D纵使不支持超线程技术,但就集成了两个实体核心,所以仍会见到两个线程。超线程的未来发展,是提升处理器的逻辑线程,英特尔有计划将8核心的处理器,加以配合超线程技术,使之成为16个逻辑线程的产品。
英特尔表示,超线程技术让(P4)处理器增加5%的裸晶面积,就可以换来15%~30%的性能提升。但实际上,在某些程序或未对多线程编译的程序而言,超线程反而会降低性能。除此之外,超线程技术亦要操作系统的配合,普通支持多处理器技术的系统亦未必能充分发挥该技术。例如Windows 2000,英特尔并不鼓励用户在此系统中利用超线程。原先不支持多核心的Windows XP Home Edition却支持超线程技术。
Intel自Pentium开始引入超标量、乱序运行、大量的暂存器及寄存器重命名、多指令解码器、预测运行等特性;这些特性的原理是让CPU拥有大量资源,并可以预先运行及平行运行指令,以增加指令运行效率,可是在现实中这些资源经常闲置;为了有效利用这些资源,就干脆再增加一些资源来运行第二个线程,让这些闲置资源可运行另一个线程,而且CPU只要增加少数资源就可以模拟成两个线程运作。
而在2008年推出的Intel Core i7及Intel Atom处理器又支持类似HT的技术,在 Nehalem 中,Hyper-Threading 大举卷土重来。在 Intel NetBurst 架构的 Northwood 版本中开始导入的 Hyper-Threading-在 Intel 世界之外称为 Simultaneous Multi-Threading (SMT)-是善用线程平行性的方法,让单一核心在应用软件层能运行两个逻辑线程。
要令到电脑支持超线程技术,必须要软件和硬件的配合。处理器本身要支持超线程,芯片组亦要支持相关处理器。为此,当时的Intel推出了新的芯片 组,i865PE和i875P。要充分发挥超线程的性能,用户要使用Windows 2000之后的操作系统,而Windows XP家用版亦同样支持超线程技术。除了微软的Windows外,Linux kernel 2.4.x亦开始支持该技术。软件方面,不是所有程序都可以发挥超线程,通常优化了多处理器的程序都可以支持到。此类软件通常是图形或视频处理软件。早期,游戏软件的支持是比较少。但随着多核心技术的普及,愈来愈多游戏软件支持多线程的处理器。[3]
ttp://gengwg.blogspot.com/
超线程(HT, Hyper-Threading)[1]是英特尔研发的一个技术,于2002年发布。超线程技术原先只应用于Xeon处理器中,当时称为“Super-Threading”。之后陆续应用在Pentium 4中,将技术主流化。早期代号为Jackson。
通过此技术,英特尔实现在一个实体CPU中,提供两个逻辑线程。之后的Pentium D纵使不支持超线程技术,但就集成了两个实体核心,所以仍会见到两个线程。超线程的未来发展,是提升处理器的逻辑线程,英特尔有计划将8核心的处理器,加以配合超线程技术,使之成为16个逻辑线程的产品。
英特尔表示,超线程技术让(P4)处理器增加5%的裸晶面积,就可以换来15%~30%的性能提升。但实际上,在某些程序或未对多线程编译的程序而言,超线程反而会降低性能。除此之外,超线程技术亦要操作系统的配合,普通支持多处理器技术的系统亦未必能充分发挥该技术。例如Windows 2000,英特尔并不鼓励用户在此系统中利用超线程。原先不支持多核心的Windows XP Home Edition却支持超线程技术。
运作方式
每个单位时间内,一个CPU只能处理一个线程(操作系统:thread),以这样的单位进行,如果想要在一单位时间内处理超过一个线程是不可能的,除非是有两个CPU的实体单元。双核心技术是将两个一样的CPU放置于一个封装内(或直接将两个CPU做成一个芯片),而英特尔的HT技术是在CPU内部仅复制必要的资源、让CPU模拟成两个线程;也就是一个实体核心,两个逻辑线程,在一单位时间内处理两个线程的工作,模拟实体双核心、双线程运作。Intel自Pentium开始引入超标量、乱序运行、大量的暂存器及寄存器重命名、多指令解码器、预测运行等特性;这些特性的原理是让CPU拥有大量资源,并可以预先运行及平行运行指令,以增加指令运行效率,可是在现实中这些资源经常闲置;为了有效利用这些资源,就干脆再增加一些资源来运行第二个线程,让这些闲置资源可运行另一个线程,而且CPU只要增加少数资源就可以模拟成两个线程运作。
使用HT技术的CPU
Pentium 4 CPU中,Northwood及其之后推出的版本内置超线程技术;但在早期的Northwood核心中,一些型号的HT技术被关闭,纵使有软件侦测到超线程技术的存在,用户并不可以激活;而双核心的Pentium D中也只有EE版提供HT技术。英特尔的Core 2 Duo处理器则没有HT技术。但处理器已集成了两个实体CPU核心,所以仍然支持两个线程。[2]而在2008年推出的Intel Core i7及Intel Atom处理器又支持类似HT的技术,在 Nehalem 中,Hyper-Threading 大举卷土重来。在 Intel NetBurst 架构的 Northwood 版本中开始导入的 Hyper-Threading-在 Intel 世界之外称为 Simultaneous Multi-Threading (SMT)-是善用线程平行性的方法,让单一核心在应用软件层能运行两个逻辑线程。
顾虑
由于处理器实际上只有一个核心,能够提升的性能约为5~15%左右,且万一发生资源互抢的情形时,整体性能反而会下降。这亦是AMD不提供虚拟双核心处理器的理由。要令到电脑支持超线程技术,必须要软件和硬件的配合。处理器本身要支持超线程,芯片组亦要支持相关处理器。为此,当时的Intel推出了新的芯片 组,i865PE和i875P。要充分发挥超线程的性能,用户要使用Windows 2000之后的操作系统,而Windows XP家用版亦同样支持超线程技术。除了微软的Windows外,Linux kernel 2.4.x亦开始支持该技术。软件方面,不是所有程序都可以发挥超线程,通常优化了多处理器的程序都可以支持到。此类软件通常是图形或视频处理软件。早期,游戏软件的支持是比较少。但随着多核心技术的普及,愈来愈多游戏软件支持多线程的处理器。[3]
ttp://gengwg.blogspot.com/
Comments
Post a Comment
https://gengwg.blogspot.com/