正文内容 评论(0)
一如Intel所承诺的那样,Intel P4 3.06G CPU如约而至,北京时间11月14日下午2点整将是它正式发布的时刻。
作为Intel公司送测的国内网络媒体之一,驱动之家评测室全力以赴进行测试,尝试揭开Intel P4 3.06G CPU所有的秘密,你将会在后面的文章中看到我们为此而进行的大胆且有趣的实验,在3.06G P4抵达驱动之家评测室后的几天里,新CPU不停的连续运转,几乎没有空闲的时候。
但谁会在乎这些呢,因为从这块CPU开始,Intel又将一项全新的技术Hyper-Threading超线程技术带入我们的PC系统,不管你是否愿意接受它,从今后的每一块P4都会有它的身影(就好像当年的MMX技术),HT CPU会有什么样的表现,这才是我们最关心的。
OK!首先还是让我们一起来探讨一下理论知识,试着了解这块CPU背后的核心技术。如果你是一位极端的实用主义者,可以跳过它,点击此处直接进入我们的测试及测试结果单元。
Part I:共同探讨理论知识
驱动之家视点栏目曾发表了一篇名为“Intel:双手互搏不好使?” http://news.mydrivers.com/page/dir17/2002,11,03,8081.htm target=_blank>http://news.mydrivers.com/page/dir17/2002,11,03,8081.htm的新闻。这条新闻被20000余读者阅读并发表了上百条评论,其中不乏很有见地的论述。而今日发布的Intel的3.06G P4 CPU作为第一片集成了超线程技术的P4级别处理器,将会将针对超线程的讨论从服务器级别带入到更多的主流应用中。
超线程从观念上很容易理解,它让一颗物理处理器在使用的时候看起来更象是两个,处理器的资源被分成两个逻辑的部分。对于用户来说,这也意味着让从前那些多用户、多进程、多线程的软件充分发挥效能的环境不再局限于物理多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的超级流水线上,任何两个逻辑处理流程之间,都由缓冲队列来进行分割,通过这种方式,它保证了任何正在进行的线程能够根据缓冲队列的拥挤程度来请求资源并逐步完成线程,而当只有一个线程存在时,由于缓冲队列是空的,所以所有的资源都会提供给这个线程以保证它在最短时间完成操作。
本文收录在
#快讯
- 热门文章
- 换一波
- 好物推荐
- 换一波
- 关注我们
-
微博:快科技官方
快科技官方微博 -
今日头条:快科技
带来硬件软件、手机数码最快资讯! -
抖音:kkjcn
科技快讯、手机开箱、产品体验、应用推荐...