CPU功能集成之路探秘.docx
- 文档编号:8672841
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:22
- 大小:2.99MB
CPU功能集成之路探秘.docx
《CPU功能集成之路探秘.docx》由会员分享,可在线阅读,更多相关《CPU功能集成之路探秘.docx(22页珍藏版)》请在冰豆网上搜索。
CPU功能集成之路探秘
前言:
“如果说我比其他人看得更远一些,那是因为我站在巨人肩膀上的缘故。
”这是300多年前的伊萨克•牛顿留给后人的一句名言。
今天当我为这篇文章整理素材时,一个棘手的问题同样摆在面前:
有限的篇幅和时间无法历数这些业界的巨人们和他们的创举,但是读者又希望了解CPU漫长的发展道路上如何演变融合。
事实上当今CPU发展所经历的正是一条不断融合的道路,这篇文章中的几个重要时间点,正是CPU在发展过程中不断融合的标志性事件,这些技术带给用户的远不止是性能提升,而是一次次技术和应用革命。
所以我们最终确定了这篇文章的主题——探寻CPU发展与融合之路。
●80486处理器诞生之前
1978年Intel8086中央处理器发布,标志着X86架构CPU走上历史舞台。
因为在此之前的所有IntelCPU产品都是以“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
实际上第一款协处理器是配合给Intel8086使用的8087,因为七十年代的技术限制,一般只能将数学协处理器做成另外一个芯片,供用户选择。
这样的好处是减少了制造的成本,提高了良品率,更降低速度不敏感的用户的支出:
他们可以暂时不买数学协处理器,直到需要的时候买一个回来插到IC插座里即可。
为了配合X86架构的鼻祖8086处理器,8087协处理器在这种情况下诞生了。
386处理器与387协处理器
387协处理器与386微处理器并行连接,可以构成一个高效的386处理器系统,而缺少了协处理器的单独386芯片浮点运算能力非常有限。
实际上387芯片相对于386的改变就是增加了8个80位的浮点寄存器,以及16位的控制寄存器、状态寄存器和标志寄存器。
这样387协处理器就为386处理器扩充了七十多条指令和多种数据类型,使得386处理器的浮点也能够遵循IEEE754浮点标准。
●协处理器被CPU吞并
1989年,Intel发布了486处理器。
486处理器是Intel非常成功的商业项目。
很多厂商也看清了英特尔处理器的发展规律,因此很快就随着Intel的营销战而转型成功。
486处理器在性能上有很大进步,它首次在CISC体系X86架构中使用了类RICS内核,提高了指令执行速度,当然还有更高的主频和更好的制造工艺。
不过这些都不是我们今天回忆的重点。
因为486最大的意义在于它整合了协处理器,协处理器的概念从此消失而变为CPU内部的FPU(浮点处理器)。
协处理器最终消失变为CPU的FPU浮点单元
自从486以后,CPU一般都内置了协处理器,协处理器的功能也不再局限于增强浮点运算,含有内置协处理器的CPU,可以加快特定类型的数值计算,某些需要进行复杂计算的软件系统,如高版本的AUTOCAD就需要协处理器支持。
当然每次改革都不可能一蹴而就,486最初分为有数学协处理器的486DX和无数学协处理器的486SX两种,486SX的价格要便宜一些,后来486DX已经完全替代了SX系列成为主流选择,历史的车轮让协处理器概念逐步淡出我们的视野。
486时代的两个代表产品486DX和486SX
实际上现在我们回头去看协处理器的发展能够感受到,协处理器的出现是微电子技术和计算机技术发展到一定阶段的产物。
随着微电子技术的进一步发展,原来用单独的芯片实现的协处理器功能,已经可以被CPU吞并在同一个芯片中实现。
这是CPU在发展道路上的第一次融合,这次融合显著提升了CPU的浮点处理能力,使得CPU更为全能和强大,也让消费者不必面临购买一颗处理器无法满足需求的尴尬境地。
●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核心内部的,因为构成缓存的电路使用6TSRAM晶体管,SRAM的每一个比特位需要占用6个晶体管,存储密度较低,1MB容量的二级缓存就需要占用5000万个晶体管,这是一个相当惊人的数字。
当时的Pentium集成度只达到了310万个晶体管。
构成缓存的6TSRAM晶体管结构图
实际上Pentium的一级缓存是由8KB数据cache和8KB指令cache构成的,这种缓存结构叫做双cache哈弗结构。
CPU没有内部cache,被称作纯粹的冯•诺依曼结构,又称作普林斯顿体系结构(Princetonarchitecture),这是传统的电子计算机结构。
哈佛结构是指程序和数据空间独立的体系结构,目的是为了减轻程序运行时的访存瓶颈。
哈佛结构的微处理器通常具有较高的执行效率。
其程序指令和数据指令分开组织和存储的,执行时可以预先读取下一条指令。
●二级缓存被彻底集成
1995年秋天,Intel推出Pentium之后,又瞄准高端市场,于1996年推出了PentiumPro(高能奔腾)。
该芯片具有两大特色,一是片内封装了与CPU同频运行的256kB或512kB二级缓存;二是支持动态预测执行,可以打乱程序原有指令顺序,这两项改进使得PentiumPro的性能又有了质的飞跃。
在PentiumPro的整体封装中除PentiumPro芯片外还包括有一个256KB的二级缓存芯片,两个芯片之间用高频宽的内部通讯总线互连,处理器与高速缓存的连接线路也被安置在该封装中,这样就使高速缓存能更容易地运行在更高的频率上。
PentiumPro时代二级缓存与CPU封装在一起
PentiumPro代表了当时春风得意的Intel向高端市场进发的能力,但是也遇到了一些失误,主要问题就出在了缓存方面。
过于激进的设计思路让Intel将全部缓存集成在CPU基板上。
不过由于当时缓存技术还没有成熟,加上当时缓存芯片还非常昂贵,因此尽管PentiumPro性能不错,但远没有达到抛离对手的程度,加上价格十分昂贵,PentiumPro实际上出售的数目非常至少,市场生命也非常短。
但是从技术角度讲,这是Intel一款非常出色的CPU产品。
为了更好的控制市场,Intel决定以退为进,在下一代产品PentiumII上放弃二级缓存的集成,这样二级缓存又一次被仍在片外,运行速度也发生了不可避免的下降。
但是新工艺的使用使得产品温度有效降低、频率大幅度提升。
PentiumII时代二级缓存被迫放在片外
同时PentiumII使用一种插槽式设计,处理器芯片与其他相关芯片都放在一块类似子卡的电路板上,Intel这次把L2放在电路板上,只以处理器频率的一半速度运行。
最后虽然性能出现了少许损失,但是此举增加处理器的良品率,从而减低生产成本。
更为低廉的价格让PentiumII再度火热销售,成为市场关注的焦点。
PentiumII后期的高端处理器为PentiumIIXeon。
它针对服务器设计,而且有一个全速的L2,L2分别有512KB、1MB、2MB的版本。
同时笔记本电脑使用的移动版也有集成在芯片内部的256KBL2,这是民用级别最高性能的PentiumII处理器。
此时竞争对手AMD也对其产品开始了不断的改进和发展,1997年4月AMD推出的K6-2处理器,虽然带有64KB的一级缓存,但是K6-2的二级缓存位于主板上,容量为512KB—2MB之间,只能与总线频率同步。
不过随后的K6-3带给我们诸多亮点,它带有一级缓存64KB,内置全速二级缓存256KB,创造性地外置512KB—2MB之间的三级缓存与系统总线同步。
虽然K6家族的浮点性能与Pentium有不小差距,二级缓存也没有完全集成在CPU内部,但另人满意的性能和低廉的价格让Intel感到巨大的压力。
PentiumII使用迂回战术,在技术成熟的后期产品中将二级缓存彻底集成在CPU片内,这种技术直接导致了全部缓存系统与CPU同频,系统整体性能得到大幅度提升。
在PentiumII之后这种情况再也没有出现反复,二级缓存已经成为CPU不可分割的重要组成部分。
●内存控制器最终整合
内存控制器是计算机系统内部控制内存并且通过内存控制器使内存与CPU之间交换数据的重要组成部分。
它在以前一直被作为一块独立的逻辑电路放置在北桥芯片中。
这可以认为是CPU与内存进行数据交换的唯一通道,是制约或者释放整体性能的重要组成部分。
内存控制器决定了计算机系统所能使用的最大内存容量、内存BANK数、内存类型和速度、内存颗粒数据深度和数据宽度等等重要参数,也就是说决定了计算机系统的内存性能,从而也对计算机系统的整体性能产生较大影响。
传统的计算机系统其内存控制器位于主板芯片组的北桥芯片内部,内存控制器的性能由芯片组控制,这样说明了另外一个问题,那就是CPU所能支持的内存规格不能由CPU决定,而是由北桥进行匹配。
由于内存控制器在CPU片外,因此数据经由多级传输,数据延迟显然比较大从而影响计算机系统的整体性能。
为了彻底铲除CPU与内存间的瓶颈,尽可能减小内存到CPU的延迟时间,AMD在2003年9月23日发布的Athlon64芯片中,把以往北桥芯片中的主要部分——内存控制器内建在CPU中。
和通常的做法不同,将内存控制器集成在处理器芯片中从而代替了传统的北桥芯片。
Athlon64芯片架构体系(包含内存控制器)
这样做最大的优点就是该控制器运行频率可以达到处理器核心频率的水平,因此其潜伏期将变得更短。
而且随着处理器频率的提高,潜伏期将越来越短。
我们知道内存中的数据被调往CPU要经历多个环节,其中内存到芯片组的速度和芯片组到CPU的速度是产生延迟(潜伏期)的罪魁祸首,已有过许多芯片组因为设计失误导致延迟过长而降低性能。
许多测试也表明Athlon64的延迟时间和当时的Pentiun4相比表现很出色。
当然集成内存控制器也是把双刃剑,它在提高性能的同时要求CPU制造厂商必须及时更新内存支持标准,及时发布新品以支持新的内存标准,同时老的CPU即使更换平台也不能对新的内存进行支持。
Intel在最新的酷睿i5、i7系列CPU中,也引入了整合内存控制器的方案。
如果说有什么能够证明AMD当年的成功,我想最有力的证据莫过于对手的模仿,而且这项模仿直到Athlon64发布5年后,Intel才得以实现。
这足以证明AMD在内存总线技术方面的领先程度。
●CPU融合GPU亮点不断
第一款整合GPU功能的并不是CPU,而是主板芯片组,整合芯片组的首次出现是在SiS(矽统)5598芯片组上,虽然性能方面不敢恭维,但是不断融合的思路为用户节省了一定预算,也增强了芯片组的功能,可以说SiS是融合GPU的开山鼻祖。
在前些年来,我们看到CPU整合GPU成为业界讨论的热点话题,越来越多的研究成果被放出,越来越多的技术文档被公布在网络上。
在这个领域表现最为积极的当属AMD,因为收购ATI后的AMD拥有全世界最为全面的CPU和图形芯片技术,这是Intel无法比拟的,更是没有X86CPU的NVIDIA望尘莫及的。
AMD设想的APU发展模式
2005年10月25日,在AMD收购ATI后,随即发表代号为Fusion(融合)的研发计划,Fusion预计将AMD的CPU与ATI的GPU整合在一起,同时也将北桥芯片也一并纳入。
初期的Fusion将简单整合CPU与GPU到一个芯片中,最终产品CPU和GPU将彻底融合,互相使用其物理资源构成强大而特殊的逻辑芯片成为APU(AcceleratedProcessingUnit)。
从图中我们可以看到,第一阶段是我们正在经历的,CPU与GPU分置,两者保持通讯,又有自己的子系统。
第二个阶段AMD要做的是将两颗裸片封装在一个基板上,两颗芯片可以由不同的工厂用不同的技术制造,这是公认的捷径。
这样做既可以降低开发难度,又可以节约宝贵的时间,缺陷是简单的拼装并不能解决硬件资源共享问题,封装的良品率限制同时也会提高成本。
第三阶段是共享一部分逻辑,比如GPU可以使用CPU庞大的缓存,CPU可以调用GPU的浮点单元。
这一阶段真正的融合开始了,芯片必须重新设计,一体制造,逻辑设计将成为很大的困难。
第四阶段是彻底的融合,制造出来的产品可以享用APU这个全新的概念,它既可以适应复杂的运算环境,拥有广泛的软件支持,又可以凭借大规模并行设计执行图形运算等复杂课题。
从当时放出的资料来看,AMD几乎已经下定决心要将GPU整合在CPU内部,而且已经制订了详细的计划和说明。
业界普遍认为AMD制订的APU计划前几步难度完全可控,而且AMD的图形核心要远比Intel的GMA系列产品受欢迎。
但是历史又一次向我们展示了它不可预测的一面,首先将GPU整合在CPU中的厂商,竟然是这个领域长期沉默的Intel。
Intel的32nm工艺Corei3、i5CPU整合显卡
从AMD提出Fusion(融合)的研发计划到现在,时间的车轮飞速转过5年历史,这5年中Intel已经发生了翻天覆地的变化,从06年发布Core微架构取得大幅度领先之后,Intel贯穿“Tick”-“Tock”钟摆模式一刻不停地往前赶,08年末发布Corei7,以最强的性能赢得了全世界掌声。
终于在2010年初,Intel带来了两款整合GPU的CPU系列产品——Corei3500系列和Corei5600系列。
GMA架构的EU处理单元
和CPU相比,Intel的GPU架构拥有更加灵活的SIMD操作模式。
按照Nehalem平台的发展路线,X4500将会连同北桥芯片一起,成为首款整合进CPU的图形核心。
如上图,X4500的统一渲染单元被称之为“EU”,拥有更好更灵活的SMID执行表现。
G45图形核心能够支持DirectX10以及ShaderModel4.0,其3D性能和频率的相关性很强,我们看到集成在酷睿i5内核中的GPU频率达到900MHz,性能则已经超越了NVIDIA入门级别独立显卡和AMD板上集成显存的785G芯片组。
●未来CPU融合之路将更加精彩
未来的CPU融合技术将更为复杂,但对于用户来讲,这种融合带来的易用性将全面释放。
我们预计未来的每颗CPU上将至少集成一颗GPU芯片,或者融合GPU逻辑,如果这种势头能够继续下去,我们将会看到PCI-E总线、IDE控制器和USB控制器等全部被CPU融合。
早在2003年业界就已经开始讨论CPU与GPU谁主导系统控制权等问题,而现在我们看到GPU性能疯狂增长,所能完成的工作也越来越广,CPU在通用方面依然势不可当,同时并行度增加让CPU也开始拥有更高的浮点和线程优势。
AMD提出的Fusion融合方案由于层次过浅一度遭到质疑
在CPU融合GPU的相关问题上,我认为至少有三个级别的融合深度:
首先是将GPU核心封装在CPU基板上,目前这种技术已经成熟,产品也已经量产上市。
我们已经看到研发代号为Clarkdale的Corei3、Corei5600与以往的CPU有很大区别,因为它们不再是由一个CPU核心封装而成,而是由一个CPU与一个GPU(显卡)封装而成。
CPU部分是一款双核CPU,采用32nm制作工艺,基于最新的Westmere架构;而GPU部分则是采用45nm制作工艺,架构改进自IntelG45整合显卡的GMA架构,支持DX10。
第二级融合深度已经不仅限于封装制造方面的融合,它需要有一定的逻辑功能互换。
举例来说,我们可以把GPU中的ShaderUnit(着色器单元)单独提出来放到CPU当中作为Coprocessor(协处理器,或者理解为FPU浮点处理器)来用,从而替代SSE和MMX的位置。
GMA4500架构在线程上面的套路已经和Intel的另一款产品Larrabee有一些关联,GMA架构的每个着色器单元具备8LaneSIMDThread执行能力。
CPU和GPU的融合等级将不断提升
更深层次的融合则彻底将GPU吞并,这时GPU的ShaderUnit(着色器单元)可能完全成为CPU中的FPU浮点单元,届时TMU和ROP等后端纹理像素等功能的实现,很有可能完全依赖ShaderUnit模拟,或者走向完全的光线追踪渲染模式。
同时CPU架构也会发生变化,CPU中所有ALU的周边资源将减少,每个内核的面积不断缩小,但是内核数量增加。
这种变化基于两个前提,第一是单线程性能已经足够强大,第二是软件对多线程优化达到一定水平。
分析目前芯片业界三大巨头,Intel拥有最好的CPU技术,同时实现了CPU对GPU的第一步融合,但是它缺少一个强大的GPU做支撑;AMD拥有业界最为平衡的CPU和GPU技术,它最早提出APU融合概念,但是没有拿出任何相关产品;NVIDIA拥有业界最好的GPU产品,特别是它的GPU架构适合通用计算,未来在没有CPU的情况下,NVIDIA的融合之路会不会成为一条“变化之路”,也就是说其GPU产品在发展过程中更加趋向计算方向……这些疑问让我们在未来的几年发展中共同期待。
●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年,人们就惊奇的发现在英特尔的网站上,一个名为“视觉运算部”(VisualComputingGroup,简称VCG)的部门公布了一条招聘广告,这则招聘广告是这样说的:
“我们专注于开发基于多核架构的独立图形产品,针对的是高端客户平台”。
这则消息在当时引起了极大的轰动,因为这意味着Intel将重返硝烟四起的独立显卡战场,彻底打破AMD/NV双雄争霸的局面,一个三国鼎足的显卡时代呼之欲出。
Intel提出的更高水平的虚拟视觉运算概念
在IDF08报告会中,帕特•基辛格通过讲演《从千万亿次运算到毫瓦:
性能与功耗解析》向大家展示了Intel处理器正迈向万亿次运算的新历程。
从Intel中国研究中心的展示成果来看,Intel已经为万亿次运算准备好了良好的软件开发环境,而我们更为关心的是Intel在将“视觉计算”同样纳入了广义的万亿次计算的范畴。
Intel演示了一段基于CrytecEn
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CPU 功能 集成 探秘