前言:“如果说我比其他人看得更远一些,那是因为我站在巨人肩膀上的缘故。”这是300多年前的伊萨克•牛顿留给后人的一句名言。今天当我为这篇文章整理素材时,一个棘手的问题同样摆在面前:有限的篇幅和时间无法历数这些业界的巨人们和他们的创举,但是读者又希望了解CPU漫长的发展道路上如何演变融合。
事实上当今CPU发展所经历的正是一条不断融合的道路,这篇文章中的几个重要时间点,正是CPU在发展过程中不断融合的标志性事件,这些技术带给用户的远不止是性能提升,而是一次次技术和应用革命。所以我们最终确定了这篇文章的主题——探寻CPU发展与融合之路。
● 80486处理器诞生之前
1978年Intel 8086中央处理器发布,标志着X86架构CPU走上历史舞台。因为在此之前的所有Intel CPU产品都是以“86”作为结尾的,所以X86或80X86是Intel首先开发制造的一种CPU体系结构的泛称。
在此后的30多年中,我们在CPU性能逐步增强之外,看到了这样一条清晰的发展轨迹——CPU从集成协处理器,到集成缓存,再到集成内存控制器,一直走到今天集成GPU核心,未来还将集成更多功能。这是一条逐步包容、由简到繁、功能由单一到多元的发展路线,也是一段非常值得回忆的历史。
8086处理器
CPU的位数是指CPU能一次同时寄存和处理二进制数码的位数,这和CPU中寄存器的位数对应。如果说的更通俗易懂,CPU的位数代指一种CPU的运算能力。一个CPU是多少位,主要取决于CPU内部寄存器,ALU的位数,需要注意的是这个位数与CPU接口的地址总线,数据总线位数没有直接关系。
1985年,Intel推出了80386处理器。386集成了27万5千只晶体管,超过了第一款通用处理器4004芯片一百倍。386是Intel第一款32位处理器,32位应用环境直到今天还是业界主流,不得不说这是一个奇迹。
不过80386处理器在当时遇到一个严重的问题或者说是障碍,那就是这颗处理器的浮点运算能力很低下。很不巧的是在386时代,PC对于社会的重要性日愈凸显,CAD、CAM、科学计算、3D方面的应用越来越普及,很多软件必须在有协处理器配合的情况下才能正常使用。因此Intel专门为386处理器设计了一颗辅助芯片名为387的协处理器,用户可以选择是否购买这颗芯片以增强计算机的浮点处理性能。
第一款协处理器8087
实际上第一款协处理器是配合给Intel 8086使用的8087,因为七十年代的技术限制,一般只能将数学协处理器做成另外一个芯片,供用户选择。这样的好处是减少了制造的成本,提高了良品率,更降低速度不敏感的用户的支出:他们可以暂时不买数学协处理器,直到需要的时候买一个回来插到IC插座里即可。为了配合X86架构的鼻祖8086处理器,8087协处理器在这种情况下诞生了。
386处理器与387协处理器
387协处理器与386微处理器并行连接,可以构成一个高效的386处理器系统,而缺少了协处理器的单独386芯片浮点运算能力非常有限。实际上387芯片相对于386的改变就是增加了8个80位的浮点寄存器,以及16位的控制寄存器、状态寄存器和标志寄存器。这样387协处理器就为386处理器扩充了七十多条指令和多种数据类型,使得386处理器的浮点也能够遵循IEEE754浮点标准。
#p#
● 协处理器被CPU吞并
1989年,Intel发布了486处理器。486处理器是Intel非常成功的商业项目。很多厂商也看清了英特尔处理器的发展规律,因此很快就随着Intel的营销战而转型成功。
486处理器在性能上有很大进步,它首次在CISC体系X86架构中使用了类RICS内核,提高了指令执行速度,当然还有更高的主频和更好的制造工艺。不过这些都不是我们今天回忆的重点。因为486最大的意义在于它整合了协处理器,协处理器的概念从此消失而变为CPU内部的FPU(浮点处理器)。
协处理器最终消失变为CPU的FPU浮点单元
自从486以后,CPU一般都内置了协处理器,协处理器的功能也不再局限于增强浮点运算,含有内置协处理器的CPU,可以加快特定类型的数值计算,某些需要进行复杂计算的软件系统,如高版本的AUTO CAD就需要协处理器支持。
当然每次改革都不可能一蹴而就,486最初分为有数学协处理器的486DX和无数学协处理器的486SX两种,486SX的价格要便宜一些,后来486DX已经完全替代了SX系列成为主流选择,历史的车轮让协处理器概念逐步淡出我们的视野。
486时代的两个代表产品486DX和486SX
实际上现在我们回头去看协处理器的发展能够感受到,协处理器的出现是微电子技术和计算机技术发展到一定阶段的产物。随着微电子技术的进一步发展,原来用单独的芯片实现的协处理器功能,已经可以被CPU吞并在同一个芯片中实现。
这是CPU在发展道路上的第一次融合,这次融合显著提升了CPU的浮点处理能力,使得CPU更为全能和强大,也让消费者不必面临购买一颗处理器无法满足需求的尴尬境地。
#p#
● CPU缓存的诞生与发展
早期的80486相当于把80386和完成浮点运算的数学协处理器80387以及8kB的高速缓存集成到一起,这种片内高速缓存称为一级(L1)缓存,80486还支持主板上的二级(L2)缓存。
内含8KB的高速缓存,同样是80486处理器的创举。缓存可以用于对频繁访问的指令和数据实现快速的混合存放,使整个芯片的性能得到大幅度提升。缓存概念由此诞生,并一直延续到今天成为影响CPU性能的重要因素。
在Cache中的数据是内存中的一小部分(我们可以理解为CPU的缓存是内存的高速镜像),但这一小部分是短时间内CPU即将访问的,当CPU调用大量数据时,就可避开内存直接从Cache中调用,从而加快读取速度。由此可见,在CPU中加入Cache是一种高效的解决方案,这样整个内存储器(Cache+内存)就变成了既有Cache的高速度,又有内存的大容量的存储系统了。
计算机存储系统金字塔
在CPU里面内置了高速缓存可以提高CPU的运行效率,这也正是当时的486DLC比386DX-40快的原因。内置的L1高速缓存的容量和结构对CPU的性能影响较大,容量越大,性能也相对会提高不少,所以这也正是一些公司力争加大L1级高速缓冲存储器容量的原因。
80486处理器带来的性能的飞跃,也让计算机产业走上更快的发展道路,不过这时更多的半导体芯片设计公司已经开始向Intel发起挑战,因为大家都看到了这块硕大的蛋糕正在被Intel一个人侵吞。
面对越来越激烈的竞争,Intel于1993年推出了新一代高性能处理器Pentium(奔腾),之所以称其为Pentium而不是80586,是因为Intel想通过注册商标来防止别的厂商使用相同的名字,根本原因是Intel沿用多年的数字商标如80X86是不受法律保护的,竞争对手通常用这些商标偷换概念宣传以自己的产品。
延续了近20年的奔腾家族
Pentium将一级缓存增加到了16kB,这种改进大大提升了CPU的性能,使得Pentium的速度比80486快数倍。总体来说缓存的规模扩大在Pentium时代,已经成为业界对于CPU性能提升的重要共识,而缓存的大小也逐渐成为判断CPU性能的重要标准。
当然我们需要知道,直到Pentium时代,也只有一级缓存是在CPU核心内部的,因为构成缓存的电路使用6T SRAM晶体管,SRAM的每一个比特位需要占用6个晶体管,存储密度较低,1MB容量的二级缓存就需要占用5000万个晶体管,这是一个相当惊人的数字。当时的Pentium集成度只达到了310万个晶体管。
构成缓存的6T SRAM晶体管结构图
实际上Pentium的一级缓存是由8KB数据cache和8KB指令cache构成的,这种缓存结构叫做双cache哈弗结构。CPU没有内部cache,被称作纯粹的冯•诺依曼结构,又称作普林斯顿体系结构(Princeton architecture),这是传统的电子计算机结构。
哈佛结构是指程序和数据空间独立的体系结构,目的是为了减轻程序运行时的访存瓶颈。哈佛结构的微处理器通常具有较高的执行效率。其程序指令和数据指令分开组织和存储的,执行时可以预先读取下一条指令。
#p#
● 二级缓存被彻底集成
1995年秋天,Intel推出Pentium之后,又瞄准高端市场,于1996年推出了Pentium Pro(高能奔腾)。该芯片具有两大特色,一是片内封装了与CPU同频运行的256kB或512kB二级缓存;二是支持动态预测执行,可以打乱程序原有指令顺序,这两项改进使得Pentium Pro的性能又有了质的飞跃。
在Pentium Pro的整体封装中除Pentium Pro芯片外还包括有一个256KB的二级缓存芯片,两个芯片之间用高频宽的内部通讯总线互连,处理器与高速缓存的连接线路也被安置在该封装中,这样就使高速缓存能更容易地运行在更高的频率上。
Pentium Pro时代二级缓存与CPU封装在一起
Pentium Pro代表了当时春风得意的Intel向高端市场进发的能力,但是也遇到了一些失误,主要问题就出在了缓存方面。过于激进的设计思路让Intel将全部缓存集成在CPU基板上。不过由于当时缓存技术还没有成熟,加上当时缓存芯片还非常昂贵,因此尽管 Pentium Pro性能不错,但远没有达到抛离对手的程度,加上价格十分昂贵,Pentium Pro实际上出售的数目非常至少,市场生命也非常短。但是从技术角度讲,这是Intel一款非常出色的CPU产品。
为了更好的控制市场,Intel决定以退为进,在下一代产品Pentium II上放弃二级缓存的集成,这样二级缓存又一次被仍在片外,运行速度也发生了不可避免的下降。但是新工艺的使用使得产品温度有效降低、频率大幅度提升。
Pentium II时代二级缓存被迫放在片外
同时Pentium II使用一种插槽式设计,处理器芯片与其他相关芯片都放在一块类似子卡的电路板上,Intel这次把L2放在电路板上,只以处理器频率的一半速度运行。最后虽然性能出现了少许损失,但是此举增加处理器的良品率,从而减低生产成本。更为低廉的价格让Pentium II再度火热销售,成为市场关注的焦点。
Pentium II后期的高端处理器为Pentium II Xeon。它针对服务器设计,而且有一个全速的L2,L2分别有512KB、1MB、2MB的版本。同时笔记本电脑使用的移动版也有集成在芯片内部的256KB L2,这是民用级别最高性能的Pentium II处理器。
此时竞争对手AMD也对其产品开始了不断的改进和发展,1997年4月AMD推出的K6-2处理器,虽然带有64KB的一级缓存,但是K6-2的二级缓存位于主板上,容量为512KB—2MB之间,只能与总线频率同步。不过随后的K6-3带给我们诸多亮点,它带有一级缓存64KB,内置全速二级缓存256KB,创造性地外置512KB—2MB之间的三级缓存与系统总线同步。虽然K6家族的浮点性能与Pentium有不小差距,二级缓存也没有完全集成在CPU内部,但另人满意的性能和低廉的价格让Intel感到巨大的压力。
Pentium II使用迂回战术,在技术成熟的后期产品中将二级缓存彻底集成在CPU片内,这种技术直接导致了全部缓存系统与CPU同频,系统整体性能得到大幅度提升。在Pentium II之后这种情况再也没有出现反复,二级缓存已经成为CPU不可分割的重要组成部分。
#p#
● 内存控制器最终整合
内存控制器是计算机系统内部控制内存并且通过内存控制器使内存与CPU之间交换数据的重要组成部分。它在以前一直被作为一块独立的逻辑电路放置在北桥芯片中。这可以认为是CPU与内存进行数据交换的唯一通道,是制约或者释放整体性能的重要组成部分。
内存控制器决定了计算机系统所能使用的最大内存容量、内存BANK数、内存类型和速度、内存颗粒数据深度和数据宽度等等重要参数,也就是说决定了计算机系统的内存性能,从而也对计算机系统的整体性能产生较大影响。
传统的计算机系统其内存控制器位于主板芯片组的北桥芯片内部,内存控制器的性能由芯片组控制,这样说明了另外一个问题,那就是CPU所能支持的内存规格不能由CPU决定,而是由北桥进行匹配。由于内存控制器在CPU片外,因此数据经由多级传输,数据延迟显然比较大从而影响计算机系统的整体性能。
为了彻底铲除CPU与内存间的瓶颈,尽可能减小内存到CPU的延迟时间,AMD在2003年9月23日发布的Athlon 64芯片中,把以往北桥芯片中的主要部分——内存控制器内建在CPU中。和通常的做法不同,将内存控制器集成在处理器芯片中从而代替了传统的北桥芯片。
Athlon 64芯片架构体系(包含内存控制器)
这样做最大的优点就是该控制器运行频率可以达到处理器核心频率的水平,因此其潜伏期将变得更短。而且随着处理器频率的提高,潜伏期将越来越短。
我们知道内存中的数据被调往CPU要经历多个环节,其中内存到芯片组的速度和芯片组到CPU的速度是产生延迟(潜伏期)的罪魁祸首,已有过许多芯片组因为设计失误导致延迟过长而降低性能。许多测试也表明Athlon 64的延迟时间和当时的Pentiun4相比表现很出色。
当然集成内存控制器也是把双刃剑,它在提高性能的同时要求CPU制造厂商必须及时更新内存支持标准,及时发布新品以支持新的内存标准,同时老的CPU即使更换平台也不能对新的内存进行支持。
Intel在最新的酷睿i5、i7 系列CPU中,也引入了整合内存控制器的方案。如果说有什么能够证明AMD当年的成功,我想最有力的证据莫过于对手的模仿,而且这项模仿直到Athlon 64发布5年后,Intel才得以实现。这足以证明AMD在内存总线技术方面的领先程度。
#p#
● CPU融合GPU亮点不断
第一款整合GPU功能的并不是CPU,而是主板芯片组,整合芯片组的首次出现是在SiS(矽统)5598芯片组上,虽然性能方面不敢恭维,但是不断融合的思路为用户节省了一定预算,也增强了芯片组的功能,可以说SiS是融合GPU的开山鼻祖。
在前些年来,我们看到CPU整合GPU成为业界讨论的热点话题,越来越多的研究成果被放出,越来越多的技术文档被公布在网络上。在这个领域表现最为积极的当属AMD,因为收购ATI后的AMD拥有全世界最为全面的CPU和图形芯片技术,这是Intel无法比拟的,更是没有X86 CPU的NVIDIA望尘莫及的。
AMD设想的APU发展模式
2005年10月25日,在AMD收购ATI后,随即发表代号为Fusion(融合)的研发计划,Fusion预计将AMD的CPU与ATI的GPU整合在一起,同时也将北桥芯片也一并纳入。初期的Fusion将简单整合CPU与GPU到一个芯片中,最终产品CPU和GPU将彻底融合,互相使用其物理资源构成强大而特殊的逻辑芯片成为APU(Accelerated Processing Unit)。
从图中我们可以看到,第一阶段是我们正在经历的,CPU与GPU分置,两者保持通讯,又有自己的子系统。
第二个阶段AMD要做的是将两颗裸片封装在一个基板上,两颗芯片可以由不同的工厂用不同的技术制造,这是公认的捷径。这样做既可以降低开发难度,又可以节约宝贵的时间,缺陷是简单的拼装并不能解决硬件资源共享问题,封装的良品率限制同时也会提高成本。
第三阶段是共享一部分逻辑,比如GPU可以使用CPU庞大的缓存,CPU可以调用GPU的浮点单元。这一阶段真正的融合开始了,芯片必须重新设计,一体制造,逻辑设计将成为很大的困难。
第四阶段是彻底的融合,制造出来的产品可以享用APU这个全新的概念,它既可以适应复杂的运算环境,拥有广泛的软件支持,又可以凭借大规模并行设计执行图形运算等复杂课题。
从当时放出的资料来看,AMD几乎已经下定决心要将GPU整合在CPU内部,而且已经制订了详细的计划和说明。业界普遍认为AMD制订的APU计划前几步难度完全可控,而且AMD的图形核心要远比Intel的GMA系列产品受欢迎。但是历史又一次向我们展示了它不可预测的一面,首先将GPU整合在CPU中的厂商,竟然是这个领域长期沉默的Intel。
Intel的32nm工艺Core i3、i5 CPU整合显卡
从AMD提出Fusion(融合)的研发计划到现在,时间的车轮飞速转过5年历史,这5年中Intel已经发生了翻天覆地的变化,从06年发布Core微架构取得大幅度领先之后,Intel贯穿“Tick”-“Tock”钟摆模式一刻不停地往前赶,08年末发布Core i7,以最强的性能赢得了全世界掌声。终于在2010年初,Intel带来了两款整合GPU的CPU系列产品——Core i3 500系列和Core i5 600系列。
GMA架构的EU处理单元
和CPU相比,Intel的GPU架构拥有更加灵活的SIMD操作模式。按照Nehalem平台的发展路线,X4500将会连同北桥芯片一起,成为首款整合进CPU的图形核心。如上图,X4500的统一渲染单元被称之为“EU”,拥有更好更灵活的SMID执行表现。G45图形核心能够支持DirectX 10以及Shader Model 4.0,其3D性能和频率的相关性很强,我们看到集成在酷睿i5内核中的GPU频率达到900MHz,性能则已经超越了NVIDIA入门级别独立显卡和AMD板上集成显存的785G芯片组。
#p#
● 未来CPU融合之路将更加精彩
未来的CPU融合技术将更为复杂,但对于用户来讲,这种融合带来的易用性将全面释放。我们预计未来的每颗CPU上将至少集成一颗GPU芯片,或者融合GPU逻辑,如果这种势头能够继续下去,我们将会看到PCI-E总线、IDE控制器和USB控制器等全部被CPU融合。
早在2003年业界就已经开始讨论CPU与GPU谁主导系统控制权等问题,而现在我们看到GPU性能疯狂增长,所能完成的工作也越来越广,CPU在通用方面依然势不可当,同时并行度增加让CPU也开始拥有更高的浮点和线程优势。
AMD提出的Fusion融合方案由于层次过浅一度遭到质疑
在CPU融合GPU的相关问题上,我认为至少有三个级别的融合深度:
首先是将GPU核心封装在CPU基板上,目前这种技术已经成熟,产品也已经量产上市。我们已经看到研发代号为Clarkdale的Core i3、Core i5 600与以往的CPU有很大区别,因为它们不再是由一个CPU核心封装而成,而是由一个CPU与一个GPU(显卡)封装而成。CPU部分是一款双核CPU,采用32nm制作工艺,基于最新的Westmere架构;而GPU部分则是采用45nm制作工艺,架构改进自Intel G45整合显卡的GMA架构,支持DX10。
第二级融合深度已经不仅限于封装制造方面的融合,它需要有一定的逻辑功能互换。举例来说,我们可以把GPU中的Shader Unit(着色器单元)单独提出来放到CPU当中作为Coprocessor(协处理器,或者理解为FPU浮点处理器)来用,从而替代SSE和MMX的位置。GMA4500架构在线程上面的套路已经和Intel的另一款产品Larrabee有一些关联,GMA架构的每个着色器单元具备8 Lane SIMD Thread执行能力。
CPU和GPU的融合等级将不断提升
更深层次的融合则彻底将GPU吞并,这时GPU的Shader Unit(着色器单元)可能完全成为CPU中的FPU浮点单元,届时TMU和ROP等后端纹理像素等功能的实现,很有可能完全依赖Shader Unit模拟,或者走向完全的光线追踪渲染模式。同时CPU架构也会发生变化,CPU中所有ALU的周边资源将减少,每个内核的面积不断缩小,但是内核数量增加。这种变化基于两个前提,第一是单线程性能已经足够强大,第二是软件对多线程优化达到一定水平。
分析目前芯片业界三大巨头,Intel拥有最好的CPU技术,同时实现了CPU对GPU的第一步融合,但是它缺少一个强大的GPU做支撑;AMD拥有业界最为平衡的CPU和GPU技术,它最早提出APU融合概念,但是没有拿出任何相关产品;NVIDIA拥有业界最好的GPU产品,特别是它的GPU架构适合通用计算,未来在没有CPU的情况下,NVIDIA的融合之路会不会成为一条“变化之路”,也就是说其GPU产品在发展过程中更加趋向计算方向……这些疑问让我们在未来的几年发展中共同期待。
#p#
● Larrabee架构对融合的启示
CPU的表现相对于GPU的高速发展早已不能让人信服,CPU由于其架构特性,无论如何设计(添加晶体管以增加浮点单元)都不能抵挡GPU的狂轰滥炸,并行度极高的未来运算环境难道就这样失手?芯片巨人Intel显然不会这样认输。不久前提出的Tera-Scale项目带来了Larrabee图形芯片,我们从中能得到一些答案。
Intel使用CPU经典原理和最新技术改良了传统GPU,使其集成了数目可观的X86核心,并采用顺序执行,同时辅以先进的CSI总线和高速存储系统,形成了Larrabee芯片概念。Larrabee芯片隶属于Tera-Scale项目,是一块融入的诸多先进技术的GPU。对于图形工业而言,Larrabee是一款具有革命意义的产品,它与常规的意义上的GPU存在理念上的差异,即Larrabee将通用计算性能放在优先位置。
IA内核X86架构的Larrabee处理器
Larrabee核心强调是具有Teraflops运算能力,高度平行与可程序化的IA核心。我们可以看出Larrabee是一种可编程的多核心架构,不同的版本会有不同数量的核心,并使用经过调整的x86指令集,性能上将会达到万亿次浮点运算级别。英特尔认为Larrabee的并行处理器模式是未来图形发展的一个趋势,其将简化每个单元的开发,而且可以根据需要来添加和删除模块,使得高中低档产品之间的性能差异更加明显,Larrabee基于x86的体系架构,因此编程等都会非常方便,这对于程序员来说是一件天大的好事,加上英特尔效率超高的x86编译器,这种图形芯片一点在优化的程序下运行,将体现出极高的效率。
Larrabee计划可能不仅仅是独立显卡,Intel更深层次的视觉运算项目和光线追踪技术更值得我们关注。早在2006年,人们就惊奇的发现在英特尔的网站上,一个名为“视觉运算部”(Visual Computing Group,简称VCG)的部门公布了一条招聘广告,这则招聘广告是这样说的:“我们专注于开发基于多核架构的独立图形产品,针对的是高端客户平台”。这则消息在当时引起了极大的轰动,因为这意味着Intel将重返硝烟四起的独立显卡战场,彻底打破AMD/NV双雄争霸的局面,一个三国鼎足的显卡时代呼之欲出。
Intel提出的更高水平的虚拟视觉运算概念
在IDF08报告会中,帕特•基辛格通过讲演《从千万亿次运算到毫瓦:性能与功耗解析》向大家展示了Intel处理器正迈向万亿次运算的新历程。从Intel中国研究中心的展示成果来看,Intel已经为万亿次运算准备好了良好的软件开发环境,而我们更为关心的是Intel在将“视觉计算”同样纳入了广义的万亿次计算的范畴。Intel演示了一段基于Crytec Engine在Farcry2游戏非洲草原斑马的不足10秒的视频,在场所有人都为Crytec引擎的逼真的3D效果而震惊。Intel告诉用户,视觉运算就是让计算机更多倾向于可视化模拟,应用范围包括游戏、图形、媒体,金融,油气勘探,医学成像等等。视觉运算是非常消耗硬件资源的项目,实现视觉运算需要高性能CPU、高带宽I/O、IA编程工具,当然最需要的是一块可扩充多核IA架构GPU——Larrabee。
虽然2009年末传出Larrabee处理器推出将会正式取消的消息,这也意味着Intel将不会推出Larrabee显卡或者Larrabee HPC/GPGPU产品。不过Larrabee项目研发工作仍将会保留,同时Intel公司依然会努力开发属于自己的新一代独立显卡,上文我们已经分析过这款特殊的显卡正是面向通用计算市场所设计的光线追踪引擎显卡。据介绍首款Larrabee芯片将会被R&D用于相关的开发工作。这说明Larrabee项目正在使用CPU的概念去完成GPU的设计目标。
#p#
● 扩展指令集发展不容忽视
指令集是CPU中用来计算和控制计算机系统的一套指令的集合。CPU依靠指令来计算和控制系统,每款CPU在设计时就规定了一系列与其硬件电路相配合的指令系统。所以指令的强弱也是CPU的重要指标,优化指令集则是提高微处理器效率的最有效手段之一。
对于CPU来说,在基本功能方面差别并不太大,因为基于同样的CISC体系,所以基本的指令集也都差不多,但是许多厂家为了提升某一方面性能,又开发了扩展指令集,扩展指令集定义了新的数据和指令,能够大大提高某方面数据处理能力,当然扩展指令集必需要有软件支持才能发挥出相应的效果。
● MMX多媒体扩展指令集
我们熟知的第一条扩展指令集MMX(Multi Media eXtension,多媒体扩展指令集)发布于1997年,一共57条指令。MMX是SIMD(单指令多数据)技术的一个最简单的部分,它只能对整数(BYTE、WORD、DWORD、QWORD)进行操作,而且提供的指令也有限。
让老用户印象深刻的Pentium MMX处理器
实际上MMX是Intel公司在1997年为增强Pentium在音像、图形和通信应用方面而采取的一项新技术,Intel用基于这个指令集的Pentium MMX(多能奔腾)来占领主流市场,取得了不错的反响。通过这些指令可以一次处理多个数据,在处理结果超过实际处理能力的时候也能进行正常处理,这样在软件的配合下,就可以得到更高的性能。MMX的益处在于,当时存在的操作系统不必为此而做出任何修改便可以轻松地执行MMX程序。
● 3DNow!多媒体快速指令集
AMD公司于1998年推出了包含21条指令的3DNow!(“3D No Waiting!”缩写)指令集,并在其K6-2处理器中实现。K6-2是第一个能执行浮点SIMD指令的x86处理器,也是第一个支持平坦浮点寄存器模型的x86处理器。借助3DNow!,K6-2实现了x86处理器上最快的浮点单元,在每个时钟周期内最多可得到4个单精度浮点数结果,是传统x87协处理器的4倍。
AMD的K6-2使用了3DNow!指令集
1999年,随着AMD Athlon处理器的推出,AMD为3DNow!增加了5条新的指令,用于增强其在DSP方面的性能,它们被称为“扩展3DNow!”(Extended 3DNow!)。Extended 3DNow!包含了一些SSE码,因而在针对SSE做最佳化的软件中能获得更好的效能。至此3DNow!已经扩展至52条指令并获得业界的一致认同。
● SSE单指令多数据流扩展指令集
SSE(Streaming SIMD Extensions,单指令多数据流扩展)指令集是Intel在Pentium III处理器中率先推出的。SSE(Streaming SIMD Extensions)是Intel在AMD的3D Now!发布一年之后,在其Pentium III处理器中引入的指令集,从指令设计目的和最终效果方面分析,它属于MMX的超集。
SSE指令集包括了70条指令,其中包含提高3D图形运算效率的50条SIMD(单指令多数据技术)浮点运算指令、12条MMX 整数运算增强指令、8条优化内存中连续数据块传输指令。SSE指令集的迅速推出不但提升了Pentium III处理器的多媒体性能,还击碎了AMD在扩展指令集方面的所有优势,同时它开创的SSE指令集体系一直延续到今天。
至今顶级处理器i7 975继续使用SSE指令集体系
此后的各版本SSE指令集实际上都是第一版SSE的超集,SSE一直是以超集的形式扩展,目的就是加速浮点运算。可以说扩展指令集在CPU的性能提升方面做出了不可磨灭的贡献。
#p#
● 片上系统SoC正在走上前台
片上系统(SoC:System-on-a-chip)指的是在单个芯片上集成一个完整的系统,对所有或部分必要的电子电路进行包分组的技术。所谓完整的系统一般包括中央处理器(CPU)、存储器、以及外围电路等。 SoC是与其它技术并行发展的,如绝缘硅(SOI),它可以提供增强的时钟频率,从而降低微芯片的功耗。
CPU已经踏上不断融合的SoC道路
片上系统技术通常应用于小型的,日益复杂的客户电子设备。例如,声音检测设备的片上系统是在单个芯片上为所有用户提供包括音频接收端、模数转换器(ADC)、微处理器、必要的存储器以及输入输出逻辑控制等设备。此外系统芯片还应用于单芯片无线产品,诸如蓝牙设备,支持单芯片WLAN和蜂窝电话解决方案。20世纪90年代中期,因使用ASIC实现芯片组受到启发,萌生应该将完整计算机所有不同的功能块一次直接集成于一颗硅片上的想法,SoC概念逐渐明晰并开始为更多人所知。
在这个领域,Intel还没有太多实际产品面市,但它已经拟定了自己的计划。媒体与分析人士认为,作为半导体界巨人的Intel从未涉足过SoC领域,SoC可能是英特尔公司长期技术策略最为新奇的组成部分,在某种程度上标志着英特尔公司的新航程。这是第一款把若干关键系统元器件集成到单一的、基于英特尔架构的处理器之中的企业级SoC产品家族。
SoC芯片示意图
Intel最初计划的SoC处理器基于改良版的Pentium M核心,所以只是32-bit设计,不过作为嵌入式产品,64-bit支持也并不是必需的。Intel曾今展示的Tolapai计划频率600MHz、1GHz、1.2GHz,采用65nm工艺制造,集成1.48亿个晶体管,封装面积37.5×37.5mm,热设计功耗13-20W。Tolapai给业界最大的震撼莫过于集成了北桥和南桥,其中北桥拥有单通道64-bit DDR2内存控制器、四通道DMA控制器、18条PCI-E通道(一个x2、两个x4、两个x1),南桥则支持两个USB、两个SATA、两个UART(通用异步串行收发接器)、37个GPIO(通用输入/输出)、Timer(定时器)、RTC(实时时钟)、WDT(看门狗定时器)等。我们可以想象,如果Tolapai处理器诞生在桌面应用领域,对芯片组厂商的打击会是致命的。
从上边的规格里我们看不到以太网等,这是因为南桥内还有一块特殊区域“加速与输入输出联合”,支持三个千兆以太网、一个本地扩展总线、一个同步串口(SSP)、三个时分多路复用(TDM)、两个控制器局域网(CAN)。该区域兼容Intel的QuickAssist加速层,同时配备256KB SRAM缓存、随机数生成器、数字加密和签名算法硬件加速等安全特性。
Xscale内核示意图
当然我们要看到,Intel在很久以前就已经研发出了Xscale架构的 SoC并作为自己的嵌入式方案大力推行。目前,在SoC这个新方向上,Intel在做不懈的改进。如上图,在整个芯片中Xscale内核只是一部分。
由于SoC的特殊架构,芯片的互连总线再度成为Intel与AMD交手的重点。虽然在这方面AMD曾今走在前面,高效灵活的HyperTransport架构,让CPU扩展变得非常容易。但是Intel的CSI系统总线同样具备整合内存控制器等新特性,同时通过类似于HyperTransport的CSI总线,Nehalem也可在多路处理器并联运行的性能上较现FSB总线的处理器更为出色。
CSI系统总线在某些方面,与AMD的HyperTransport几乎相同,但我们从两种总线诞生的目的上讲,这是很正常的。业界普遍认为,一旦英特尔赶上AMD的芯片通讯技术水平,它就可以更好的与AMD进行竞争,而现在Intel已经在内核和总线两个方面大幅度领先于AMD。
并不是说Intel与AMD的参与使得SoC走上前台,而是SoC可预见的优秀前景使得Intel与AMD在调整自己的战略重心,并有意让SoC走得更远。由于空前绝后的高效集成性能,片上系统是替代集成电路的主要解决方案。SoC已经成为当前微电子芯片发展的必然趋势。
【编辑推荐】