教父和旗手
1993年,在讨论奔腾4的设计方法时,Hinton提出了超线程概念的基本雏形。那时,人们刚刚接触到多任务应用。
46岁的Glenn Hinton是Intel研究院的院士,正是他首先提出了超线程技术的概念。
正是因为Hinton持续十多年的研究和坚持,超线程技术才从一个概念变成了今天的现实,Hinton也成了超线程技术当之无愧的“教父”。
1992年,Hinton在参加一个制造更小芯片的项目时受到启发:“如果处理器同时执行两个线程,每个线程只使用一半芯片资源,那么,我们就可把芯片性能提升1.5倍。”
20世纪80年代末,Hinton就开始构想各种方法,以图实现这样一个目标:通过分散资源来使芯片能同时处理多项任务。换句话讲,就是要在处理器内部也实现多线程处理能力。
早在Unix出现之初,操作系统就已经实现了多线程处理能力,但处理器一直不具备这样的能力。
传统的单一处理器,在某一时刻只能执行一个任务。采用传统处理器的计算机,在运行多任务时,必须在不同任务之间不断地快速切换。由于在任何时候芯片都只能执行一个程序,这就使芯片上总有一部分晶体管处于闲置状态。Intel的实验数字显示,这些闲置晶体管的数量平均约占总数的2/3。这种情形造成了一些系统资源浪费,随着处理器晶体管数量的增加,这种情形更加明显。今天的英特尔奔腾4处理器拥有超过5500万个晶体管,如果没有相应对策,闲置晶体管浪费的资源将是可怕的。
超线程技术就是为此而来。它实际上解决了处理器的多线程处理问题,但Intel为了以示区别(还有部分商业原因),没有再用多线程这个词,而称之为超线程。
1993年,在讨论奔腾4的设计方法时,Hinton提出了超线程概念的基本雏形。那时,人们刚刚接触到多任务应用。
1996年,Hinton的好运来了,Intel开始大力支持其研究。这时候,马材珍(Marr)女士也被调到了这个部门与他一起工作。
马材珍是美籍华裔,有多年的超线程技术经验,她当时被认为是把Hinton的概念变为现实的最佳人选。与健谈而开朗的Hinton相比,马材珍更具实践精神。
马材珍很快就成了超线程技术的“旗手”,从与操作系统、BIOS、应用软件等研发部门的协同工作,到验证超线程技术的设计,马材珍几乎成了工作狂。这对于一个即将拥有两个孩子的母亲而言,简直不可思议。
超线程的研发终于有了结果。
实验者们看到:操作系统中明白无误地显示系统拥有“两颗处理器”,但实际上他们只装了一颗处理器。他们终于把一颗物理处理器变成了“两颗逻辑处理器”。当马材珍看到人们脸上惊奇的神情时,“感觉特别开心”。
一个厨师两口锅
“超线程技术就像是给一位厨师提供了两口炒菜的锅,而不是一口。虽然速度不如两位各持一口锅的厨师,但它的费用也更低,因为您只需支付一位厨师的工资。”
从实验室到工厂,超线程几乎一路顺风,直到决定其发布的日子。
1996年,当Pentium Pro准备发布前,Intel就想把超线程应用于这款处理器。这个想法基于Intel当时的“一体化策略”,即在服务器、台式机、笔记本电脑等不同处理器产品线上采用同类新技术,超线程技术就是其一。
但这一策略最后没有被实施,一个重要原因是Intel声称“时机不成熟”,另一个则来自微软,似乎后者更主要。
微软当时没有同意Intel的建议——在将要发布的Windows 2000中免费提供支持超线程处理器的版本。微软认为,用户应该按照支持两个处理器的操作系统来付费,从理论上讲,操作系统对两个物理处理器或两个逻辑处理器的支持都是一样的,微软的要求似乎有点道理。
但Intel认为,用户不会为此多付一份费用,因为用户“只看到一颗处理器”,尽管它可以“像”两颗处理器一样工作。为此,Intel延缓了超线程技术的发布,直到2002年Windows XP即将发布之前。
在Windows XP中,微软改变了以往在Windows 2000中的策略,免费支持使用超线程处理器。尽管如此,Intel还是提前在其服务器产品上发布了超线程技术,而其台式机产品依然落后一步。Intel说,从2003年开始,这一延迟时间将越来越短。台式机的应用发展,也鼓励了Intel把这一技术大众化。
以前,台式机的消费者很少同时处理几件事情。现在,这种情况则变得越来越普遍。大部分消费者已经习惯了这样的工作方式:一边玩游戏或打字,一边同时下载文件或对整理系统,甚至几项工作齐头并进。Windows XP操作系统已经很好地解决了因此而来的问题,如果同时使用了超线程处理器,“用户在不用对应用程序做任何修改时,也能提升部分效率”。
“超线程技术就像是给一位厨师提供了两口炒菜的锅,而不是一口。虽然速度不如两位各持一口锅的厨师,但它的费用也更低,因为您只需支付一位厨师的工资。”这是英特尔台式机芯片部市场经理Brian Fravel对超线程技术最经典的比喻。
马材珍描述了超线程技术的一个应用:在运行一个解密软件的同时,使用软Modem下载软件。如果在没有使用超线程技术的情况下实施这些工作,系统效率会明显下降,因为软Modem的串行工作方式,会在某一时刻独占处理器资源,而同时,解密软件则需要大量计算资源。如果使用超线程技术,情况会得到明显改善,系统效率可被提升约25%左右。
超线程技术可使芯片一次运行两个应用,从而更能充分利用芯片上的晶体管。这种处理方式的速度不如双处理器的处理能力,但其价格同时也比两个处理器低。
尽管,采用超线程技术的处理器核体积比不采用该技术的要大5%左右,但对Intel 而言,因体积坤大而增加的生产成本似乎不是主要问题。据Intel提供的测试数字,超线程技术可把应用效率平均提升约10%~20%,最高可达30%以上。这些结果足以平衡增加的生产成本。
可能会成为“标配”
像几乎所有成功的新技术一样,超线程也很有可能被Intel作为未来所有处理器的“标配”:标准指标。甚至有发烧友认为,以后要买没有超线程技术的处理器可能都很难。
据Intel一位工程师分析:如果使用超线程技术,整机成本会大约贵100美元,其中,处理器会贵15到25美元,主板贵50美元左右,配置相应的AGP8×会贵15美元左右,串行ATA硬盘会贵20美元左右,双通道DDR-400内存会贵5美元左右。尽管如此,仍然比使用多处理器系统便宜不少。对于那些使用不起多处理器系统的用户而言,超线程不失为一种替代品。
有专家认为,目前普通消费者使用超线程技术的可能性还不大,这一技术最可能的市场是低端服务器和工作站。
当然,用户的接受度也还是个问题,人们总是对变化有畏难心理,而超线程确实是一个巨大的变化。
正如许多新技术刚刚出现时一样,超线程技术目前还存在不少问题。其中一个就是:如果用户应用程序中的Idle Loop(停滞循环)或Idle Time(停滞时间)特别多的话,会影响超线程处理器的效率。因为,有时候某一线程可能会独占两个逻辑处理器的所有共享资源,这时,另一个线程无法使用共享资源,就会停顿下来等待,从而导致采用超线程技术的计算机反而比未采用的速度更慢。
据说,Intel正在与微软、Adobe等公司合作,来解决上述问题。目前,Intel在其面向开发者的网站上,能给用户提供的帮助就是:建议开发者尽量减少Idle Time或Idle Loop,以优化资源使用。
对于普通消费者而言,超线程同时也意味着超出平常的耗电量和发热量。在Intel为PC设计者提供的技术指南中,使用超线程处理器的散热设计值要比没有使用的高出10个百分点。
像几乎所有成功的新技术一样,超线程也很有可能被Intel作为未来所有处理器的“标配”:标准指标。甚至有发烧友认为,以后要买没有超线程技术的处理器可能都很难。
不过,超线程技术能否得到大规模推广,并不是Intel一家说了算。操作系统提供商在其中扮演了非常重要的角色,特别是微软。如上所述,微软的收费策略曾经延缓了超线程技术的应用。在未来,虽然微软不太可能再重复上述策略,但对那些应用软件开发商来说,如何在程序中有效使用超线程技术,也有个再培训的过程。作为操作系统的“附庸”,应用软件的“进化”速度可能更缓慢。
小知识:超线程技术
超线程技术使一个物理处理器能够同时执行两 个独立的代码流(称为线程)。从体系结构上讲,一个含有超线程技术的IA-32处理器相当于两个逻辑处理器(图1),而其中每个逻辑处理器都有自己的IA-32架构中心。在初始化后,每个逻辑处理器都可单独被停止,中断或安排执行某一特定线程,而不会影响芯片上另一逻辑处理器的性能。
与传统双路(DP)系统的配置不同(使用两个独立的物理IA-32处理,如两个Inter至强处理器),在含有超线程技术的处理器中,逻辑处理器共享处理器内核的执行引擎、高速缓存、系统总线接口、固体等。(Inter公司提供)