Intel多核微处理器技术 Intel多核微处理器技术 ——严汇平(033226,yhp_blue@hotmail.com) 俞陈霄(033227,littlefish1119@hotmailcom) 毛坤宁(033316,lilliput8551@yahoo.com.cn) 2006-6-22 摘要:英特尔对多核芯片信心十足, 预估,到2006年多核芯片将广泛应用于台式机电脑、服务器、移动装置上,市占率分别为70%、85%、70%, 多核微处理器技术将成为主流 关键字:多核微处理器技术、双核心处理器、晶体管效率 1、 引言 根据摩尔定律, CPU 的速度应该每过18 个月翻一番。在过去的几十年中, CPU 的速度以一个令人意想不到的速度上升, 根据两位计算机界的传奇人物John L Hennessy和David A. Patterson 的说法, 在这当中每年性能的提升可以达到58%之多。可是自从1996 年以后, CPU 速度上升的步伐似乎慢了下来。根据专家们的
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
, 从1996 年到2002 年, CPU 的提升速度只有41%, 而从2002 年至今,更是下降到25%。有业内人士分析说, 这种下降的趋势还 会继续下去。那么究竟是什么因素阻碍着CPU 的快速发展? 首先让我们看看影响CPU 性能的几个关键技术指标。 影响CPU 性能的几个关键技术指标: 主频。即CPU 的工作频率, 也就是CPU 每秒执行的指令数。主频越高, CPU 的速度越快。主频是衡量CPU性能的一个指标。 前端总线速度。前端总线即Front Side Bus, 通常用FSB 表示, 是将CPU 连接到北桥芯片的总线。计算机的前端总线频率是由CPU 和北桥芯片共同决定的。北桥芯片是主板上最靠近CPU 的那块芯片, 它是负责联系内存、显卡等数据吞吐量最大的部件。前端总线是CPU 和外界交换数据的最主要通道, 因此前端总线的数据传输能力对计算机整体性能作用很大, 如果没有足够快的前端总线, CPU 的速度再快, 也只能干着急, 等着前端总线把所需数据传递过来后, 才能进行计算。 流水线和超标量技术及分支预测
机制
综治信访维稳工作机制反恐怖工作机制企业员工晋升机制公司员工晋升机制员工晋升机制图
。每一条指令的执行至多需要5 个周期, 分别为取指周期、译码周期、执行周期、访问存储器周期和写回周期。流水线就是在一个时钟周期启动一条指令, 从而实现一个时钟周期完成一条指令; 超标量就是在一个时钟周期启动多条指令。因而, 一个时钟周期可以完成多条指令。因此, 流水线和超标量技术通过指令间的并行, 来提高CPU 的运算速度。指令间的并行度越大, CPU 的速度越快。比如Intel Xeon 3.2 GHz (EM64T) 支持SSE3 流指令技术, 英特尔开发的第三代SIMD 指令集, 可以增强浮点和多媒体运算的速度。而正确的分支预测可以将需要执行的指令提前预取, 从而提高CPU 的速度。 缓存的级数和各级缓存的大小。最初的计算机CPU 里, 并没有缓存。因为那时内存的速度和CPU 的速度基本相当, 内存能够满足CPU 的数据需要。可是后来CPU的速度按照摩尔定律提升, 而内存的速度却上升相对缓慢。为了解决内存速度缓慢引起的系统瓶颈, 缓存的概念应运而生。缓存保存CPU 经常使用的数据, 所以缓存越大, 保存的信息越多, 命中率越高, 就减少了CPU 访问内存的次数, 从而提高了整体性能。缓存可以做很多级, 目前已经做到三级。 芯片架构。以前的CPU 都是单核心的, 现在双核心的CPU 已经问世。Intel 的Pentium 840 Extreme Edition芯片采用的是Smithfield,它是在一块硅芯片上集成两个处理器核心, 以后还会有多核心的CPU。 从芯片架构这方面分析,衡量处理器效率通常有两个指标:一是芯片的能源利用效率,也就是每瓦性能,在消耗同等能源条件下,最终性能高的产品能源效率就较高;第二个指标便是芯片的晶体管效率,我们可以引入“每晶体管性能”来衡量,在消耗等量晶体管数量条件下,芯片效能高者效率就越高。晶体管规模越大,制造成本越高,对芯片厂商来说,提高每晶体管性能能够在保持成本不变的前提下获得更卓越的性能。一般来说,每瓦性能和每晶体管性能总是被结合起来讨论,不同指令体系的产品在此相差甚远,例如当前顶级的RISC处理器与顶级的X86处理器作对比,我们便会发现X86芯片远远落后。 多核心
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
可谓是提高每晶体管效能的最佳手段。在单核产品中,提高性能主要通过提高频率和增大缓存来实现,前者会导致芯片功耗的提升,后者则会让芯片晶体管规模激增,造成芯片成本大幅度上扬。尽管代价高昂,这两种措施也只能带来小幅度性能提升。而如果引入多核技术,便可以在较低频率、较小缓存的条件下达到大幅提高性能的目的。相比大缓存的单核产品,耗费同样数量晶体管的多核心处理器拥有更出色的效能,同样在每瓦性能方面,多核设计也有明显的优势。正因为如此,当IBM于2001年率先推出双核心产品之后,其他高端RISC处理器厂商也迅速跟进,双核心设计由此成为高端RISC处理器的标准。而X86业界直到去年中期才开始尝试推出双核产品,预计实现全面普及要等到2006-2007年。此时,RISC业界又朝向多核、多线程的方向发展,四核心、八核心设计纷纷登台亮相,并行线程数量多达32条,并且开始从通用多核体系转向简化核以及专用化的DSP,实现性能的跨越性提升这些新设计和新方向也都将被X86业界所借鉴。 2、 多核微处理器技术简介 Intel表示未来采用多核心处理器,这种处理器对连接处理器和芯片组之间的总线带宽提出更高要求,现在的FSB总线带宽已经成为瓶颈,这也就是代号Demspey的双核心Xeon处理器将采用2个处理器总线连接处理器和芯片组(代号Blackford和Greencreek)的原因。 目前并行FSB前端总线的最高承受速度在1.2GHz。未来首批双核心桌面处理器Smithfield的FSB在800MHz,65nm工艺的双核心Allendale和Millville的FSB也在1066MHz,还在目前并行FSB可以承受的速度范围之内。在2007-2008年内,Intel将推行DDR3 800/1066/1333内存,因此内存界面也将分2个阶段迈向串行方式,第1个阶段是为FB-DIMM搭配Advanced Memory Buffer(AMB,高阶内存缓存)芯片,将并行传输转换成串行。第2个阶段是装备真正的Serial DIMM串行内存。 以双核心处理器为例,简单地说就是在一块CPU基板上集成两个处理器核心,并通过并行总线将各处理器核心连接起来。双核心并不是一个新概念,而只是CMP(Chip Multi Processors,单芯片多处理器)中最基本、最简单、最容易实现的一种类型。其实在RISC处理器领域,双核心甚至多核心都早已经实现。CMP最早是由美国斯坦福大学提出的,其思想是在一块芯片内实现SMP(Symmetrical Multi-Processing,对称多处理)架构,且并行执行不同的进程。早在上个世纪末,惠普和IBM就已经提出双核处理器的可行性设计。IBM 在2001年就推出了基于双核心的POWER4处理器,随后是Sun和惠普公司,都先后推出了基于双核架构的UltraSPARC以及PA-RISC芯片,但此时双核心处理器架构还都是在高端的RISC领域,直到前不久Intel和AMD相继推出自己的双核心处理器,双核心才真正走入了主流的X86领域。 Intel不是惟一要推出双核处理器的厂商,目前几乎所有处理器厂商都有多核计划。IBM已经销售双核芯片多年,ARM也在手机市场销售双核芯片。英特尔的竞争对手AMD表示,将设计双核、四核及八核芯片,并将于2005年推出首款双核芯片。惠普、Sun都已经拥有多核心产品。 Intel强调自身的特色在于生产双核乃至多核芯片不只是推出一个处理器的概念,它还包括利用平行处理与平台的整合,如更高的运算能力及支持其他如无线网络安全装置,整体提升使用者的操作经验。 Intel指出,多核处理器的应用领域包括可作为数码家庭的防火墙、资料备份、扫毒等功能,以及作为办公室的资料处理、科学运算。事实上,以上功能在目前的单核架构下就能完成 就如下图所示,多核微处理器技术将成为一个发展趋势。 3、 Intel与AMD多核处理器剖解 1. AMD双核心构架简介 AMD目前的桌面平台双核心处理器代号为Toledo和Manchester,基本上可以简单看作是把两个Athlon 64所采用的Venice核心整合在同一个处理器内部,每个核心都拥有独立的512KB或1MB二级缓存,两个核心共享Hyper Transport,从架构上来说相对于目前的Athlon 64架构并没有任何改变。与Intel的双核心处理器不同的是,由于AMD的Athlon 64处理器内部整和了内存控制器,而且在当初Athlon 64设计时就为双核心做了考虑,但是仍然需要仲裁器来保证其缓存数据的一致性。AMD在此采用了SRQ(System Request Queue,系统请求队列)技术,在工作的时候每一个核心都将其请求放在SRQ中,当获得资源之后请求将会被送往相应的执行核心,所以其缓存数据的一致性不需要通过北桥芯片,直接在处理器内部就可以完成。与Intel的双核心处理器相比,其优点是缓存数据延迟得以大大降低。AMD目前的桌面平台双核心处理器是Athlon 64 X2,其型号按照PR值分为3800+至4800+等几种,同样采用0.09微米制程,Socket 939接口,支持1GHz的Hyper Transport,当然也都支持双通道DDR内存技术 2. Intel双核心构架剖析 AMD的“真伪双核论”虽无法立足,但它点出的英特尔双核处理器可能出现前端总线资源争抢的问
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
是否真是实情呢?对此,英特尔表示:AMD并不了解我们的产品和我们将来产品的技术走向,对自己的竞争对手及其产品妄加猜测和评论的行为是不值得赞赏的。AMD曾经指出奔腾至尊版是两个核心共享一个二级缓存,这就是一个非常明显的错误。事实上,奔腾至尊版和奔腾D都是每个核心配有独享的一级和二级缓存,不同的是英特尔将双核争用前端总线的任务仲裁功能放在了芯片组的北桥芯片中。 图1:基于Smithfield衍生出的奔腾至尊版和奔腾D,主要区别就在于奔腾至尊版支持超线程,而奔腾D屏蔽了超线程功能。 按照“离得越近、走得越快”的集成电路设计原则,把这些功能组件集成在处理器中确实可以提高效率,减少延迟。不过,在台式机还不可能在短期内就支持4个内核和更多内核的现实情况下,只要有高带宽的前端系统总线,就算把这些任务仲裁组件外置,对于双核处理器的台式机来说带来的延迟和性能损失也是微乎其微的。 英特尔945和955系列芯片组目前可提供800MHz(用于目前的奔腾D)和1066MHz(用于奔腾至尊版)前端总线,如果是供一个四核处理器使用,那肯定会造成资源争抢,但对于双核来说,这个带宽已经足够了。英特尔认为目前双核系统中的主要瓶颈还是内存、I/O总线和硬盘系统,提升这些模块的速度才能使整个系统的计算平台更加均衡。 基于这种设计思路,英特尔在945和955系列芯片组中加强了对PCI-Express总线的支持,增加了对更高速DDR2内存的支持,对SATA(串行ATA)的支持速度增加了一倍由1.5Gb/s升级3Gb/s,进一步增加了磁盘阵列RAID 5 和 RAID 10的支持。 图2:单核奔腾4处理器(左)和双核奔腾D处理器(右)微架构示意图 此外,英特尔奔腾至尊版有一个独门“绝活”,那就是双核心加超线程的架构,这种架构可同时处理四个线程,这让它在多任务多线程的应用中具有明显优势。而且CMP与SMT(同时多线程,英特尔超线程就是一种SMT技术)的结合是业界公认的处理器重要发展趋势,最早推出双核处理器的IBM也是这一趋势的推动者。 图3:奔腾至尊版的双核+超线程架构让它具备同时四线程处理能力 英特尔之所以在奔腾至尊版和奔腾D上采用共享前端总线的双核架构,还是出于双核架构自身的紧凑设计和生产进程方面的考虑,这种架构使英特尔能够迅速推出全系列的双核处理器家族,加快双核处理器的产品化,而且它带来的成本优势也大大降低了奔腾至尊版、奔腾D与现有主流单核处理器——奔腾4系列的差价,有利于双核处理器在PC市场上的迅速普及。 4、 双核心处理器的适用范围 目前,Windows XP专业版等操作系统支持双物理核心和四个逻辑核心,但这并不意味着所有软件对此都有优化。 事实上大量的测试已经证明,无论是Intel还是AMD的双核心处理器,相对于其各自的同频率的单核心处理器而言,对于目前的普通应用例如多媒体软件、游戏和办公软件等等都没有任何性能提升,甚至可能还稍有降低,因为这些普通应用目前都还只是单线程程序,在处理器执行指令时实际上只有一个核心在工作,而另外一个核心则处于空闲状态帮不上忙。 所以对普通用户而言,只要日常应用的程序仍然是单线程的话,双核心处理器实际上没有任何意义,反而还增大了购买成本。除非经常执行大运算量的多任务处理,例如在游戏的同时进行音视频处理等等,这时双核心处理器才能真正发挥作用。 目前最适合双核心处理器发挥威力的平台是服务器和工作站,这是因为其经常进行多任务处理,而且日常运行的大量程序都是多线程程序,例如图形工作站所使用的Adobe Photoshop和3D MAX等都是多线程程序。一般来说,在执行多任务处理和多线程程序时,双核心处理器要比同频率的单核心处理器的性能要高大约50%-70%,甚至在某些应用下性能几乎能提升100%。 当然,随着双核心处理器的强势推出和逐渐普及,日后支持多线程的普通应用程序也会逐渐增多,对普通用户而言那时双核心处理器才会真正发挥作用。 5、 多核心处理器目前所存在的问题 无论是Intel的Pentium D和Pentium EE,还是AMD的Athlon 64 X2处理器,都是简单地将两个物理内核"叠加"在一起,这必然带来晶体管数量的大幅度增加,双方都已经达到了两亿三千万个以上的晶体管;带来的直接后果就是由泄漏电流引起的功耗大幅度增加,就算是采用了节能技术其发热量也居高不下,从而导致双核心处理器相对于单核心处理器而言频率提升更加困难。 而且由于目前的制造工艺的限制,双核心处理器的良品率要比单核心处理器的低,这必然会带来成本的居高不下,所以目前的双核心处理器的价格都太贵了,距离普及还差得很远。当然,随着处理器核心架构和制造技术的发展,今后必然会解决目前所遇到的问题。 (1) I/O成瓶颈 由于两个核心只能共用一个I/O通道,当两个核心之间的数据进行交流的时候,就无法再从外部读入数据从而利用两者的时间差实现资源的有效搭配和利用。尽管两个核心之间可以并行运算,但就整个系统而言,无法实现真正的流水线操作。加上分离的缓存结构需要取得一致性,两个内核之间的交流变得经常而且频繁,这实际上也会降低处理器的效率,因此Pentium D在技术上并不被看好。 AMD因为通过引入HyperTransport,部分解决了这个问题,并且因为处理器内部自己有独立的内存控制器,可以独立访问内存,两个核心之间的行为具有相对独立性,数据相关变得很小。因而一些测试表明,其随机处理数据的能力要高于Pentium D。 AMD64的最大特性是引入了HyperTransport,它的良好扩展性使得处理器实现多核、多处理器系统相对容易一些,并且,多处理器扩展的效果也非常好,这是它能够在桌面双核领域暂时领先的重要原因。考虑到这些,Intel可能也会在合适的时候引入类似架构。 Cell的多核实现起来并不完全一样,因为制造太复杂,估计到65nm的时候,这个处理器才能够在成本上具有竞争力。与其他基于对称多处理器不同的是,这个处理器把重心放在了运算基元之上,从而能够把处理器应用到面对不同的应用类型,它其中包含的核心更多是以运算的基础元件形式存在的。因而,即便在内部,也是按照一个系统的思想来实现的,各个运算单元之间有高速的连接通道,除了主控处理器用来分配任务从而形成运算的流水线思想外,其余几个并不是具有很完善的运算能力。这几种系统都面临同样的问题:I/O将是最严重的瓶颈。 虚拟化在一定程度上能够处理一些因为多核带来的问题,可以让应用软件和操作系统在透明的环境下对处理器资源进行分配和管理。 (2) 软件是软肋 即使桌面操作系统支持双处理器,也需要很长一段时间。目前在对称多处理器方面,操作系统对资源的分配和管理并没有本质的改变,多以对称的方式进行平均分配。 也就是说,在操作系统层面,当一个任务到来时,剥离成为两个并行的线程,因为线程之间需要交流以及操作系统监管,它导致的效率损失要比硬件层面的大得多。并且,多数软件并没有充分考虑到双核乃至多核的运行情况,导致线程的平均分配时间以及线程之间的沟通时间都会大大增加,尤其是当线程需要反复访问内存的时候。比如做一个FFT测试时,由软件和硬件构成的系统将呈现出巨大差异,这时Pentium D将被完全击倒。这不是Pentium D的错,多数操作系统还没有完全实现自由的资源分配。IBM也是通过AIX 5.3L在支持更自由的虚拟化Power5上,实现了资源的动态调配和划分。 从长远来看,需要使用虚拟化技术才可能实现操作系统对任务的具体划分,这很可能改变一些通用的编程模式。不仅操作系统层面无法完全解决这个问题,就是软件在编写的时候其编译器都无法充分解决这个问题。 面对多核系统,需要有并行编程的思想才有可能充分利用资源,而人类的思维模型习惯于线性思维,对“面”或者更为复杂的立体编程模式,效率会下降很多。 软件的缺失给多核蒙上了一些阴影。尽管用户在充满希望地期待着,但思维完全的改变,不是一朝一夕的事情。更重要的是,一些表现多核处理能力的输出系统无法承受这样的运算量。现在能充分享受到多核系统的用户依然还是企业级用户,那些专门进行密集计算的用户可以充分利用多核节省下来的空间,大大增加计算密度,从而降低整体管理费用。 对于一些线性模型,如Google的查找算法,对处理器系统的要求是多多益善。一些用于网络游戏的服务器,也能够从多核之中看到可支持用户数量的成倍增长。对于一些需要科学运算的石化、石油勘探等大量数据转换来说,不仅需要多核,还需要大量的显示芯片实现数据的可视化。本来,多核在可视化领域具有远大前途,渲染速度可以加倍,矩阵运算容量可以大增,可惜现在的OpenGL还太可恶,很难拆分数据封装。在仿真领域,大量的多核可以充分模拟仿真的网格特性,因而可以充分利用在气象等高密度计算中。 6、 小 结 总的来说,多核心处理技术是代替单核心的必然趋势,是计算机性能的一次突破机会,虽然这个概念很早就提出,但在具体实现上多核心还算是新兴技术,在走向成熟的过程中很多问题有待解决,同时带动计算机体系结构的发展。 7、 参考文献 1、 bluebird.(双核心风暴).个人电脑 2、 基于VLIW体系结构的多核处理器设计 3、 《微处理器向多核技术发展》《日经电子》记者 进藤智则 竹居智久 4、 《发展多核处理器 困惑重重》【来源:计世网】 【作者:吴挺】