08

量化设计与分析基础

作者: baiyuzhong 分类:图书推荐   阅读:36,219 次 添加评论

个人计算机是人类迄今创造的最强大工具,我认为这种说法并无偏颇。它们是通信工具,是创造工具,是可以由用户定制的工具。——比尔·盖茨

自从第一台通用电子计算机问世以来,计算机技术在大约65年间取得了令人难以置信的发展。今天,花费不到500美元购买的一台便携计算机,在性能、主存储器和磁盘存储方面都要优于1985年花费100万美元购买的计算机。这种快速发展既得益于计算机生产技术的发展,也得益于计算机设计的创新。

生产技术的进步一直都相当稳定,而计算机体系结构的改进对这一快速发展的贡献就远没有那么稳定了。在电子计算机前25年的发展中,这两种力量都作出了巨大贡献,使计算机的性能每年提高大约25%20世纪70年代后期出现了微处理器。依靠集成电路技术的进步,微处理器也使计算机性能进入快速发展期——每年大约增长35%

这种高增长速度,再加上微处理器大量生产带来的成本优势,提高了微处理器业务在计算机行业内所占的份额。另外,计算机市场的两个重大变化也使新体系结构更容易在商业上获得成功。第一个重大变化是人们几乎不再使用汇编语言进行编程,从而降低了对目标代码兼容性的要求。第二个重大变化是出现了独立于厂商的标准化操作系统(比如UNIX和它的克隆版本Linux),降低了引入新体系结构的成本和风险。

正是由于这些变化,人们才有可能在20世纪80年代早期成功地开发了一组指令更为简单的新体系结构——RISC(精简指令集计算机)体系结构。设计人员在设计RISC计算机时,将主要精力投注在两种关键的性能技术上,即指令级并行的开发(最初是通过流水线,后来是通过多指令发射)和缓存的使用(最初采用一些很简单的形式,后来使用了更为复杂的组织与优化方式)。

基于RISC的计算机抬高了性能指标,过去的体系结构要么快速跟上,要么就被淘汰。Digital Equipment Vax未能跟上时代的脚步,所以被一种RISC体系结构替代。Intel则接受挑战,主要是在内部将80×86指令转换为类似于RISC的指令,使它能够采用许多最初由RISC设计倡导的新技术。20世纪90年代后期,晶体管的数目飞速增长,所以在转换更复杂x86体系结构时的硬件开销可以忽略不计。在低端应用中,比如在手机中,由于x86转换开销所带来的功耗与硅面积成本,促使一种RISC体系结构逐渐成为主流,这就是ARM

1表明,体系结构与组织方式的发展一起促成了计算机性能以超过50%的年增长率持续增长17年,这一速率在计算机行业内是空前的。

20世纪的这一飞速发展共有四重效果。

第一,它显著增强了可供计算机用户使用的功能。对许多应用来说,当今性能最高的微处理器比不到10年前的超级计算机还要优秀。

第二,性价比的这种大幅提高导致了新型计算机的出现。20世纪80年代出现了个人计算机和工作站,这是因为有微处理器可供使用。在刚刚过去的10年里,人们见证了智能手机和平板电脑的崛起,许多人把它们作为自己的主要计算平台,代替了个人计算机。这些移动客户端设备越来越多地通过因特网来访问包含数万个服务器的仓库,这些仓库的设计使它们看起来就像单个巨型计算机一样。

第三,根据摩尔定律的预测,半导体制造业的持续发展已经使基于微处理器的计算机在整个计算机设计领域中占据了主导地位。传统上使用现成逻辑电路或门阵列制造的小型机已经被使用微处理器制造的服务器所取代,甚至大型计算机和高性能的超级计算机也都是由微处理器组合而成。

20世纪70年代后期以来处理器性能的增长。这个图表绘制了相对于VAX 11/780的性能曲线,测试数据由SPEC基准测试测得(见1.8节)。在20世纪80年代中期之前,处理器性能的增长主要由技术驱动,平均大约每年增长25%。在此之后的年增长速度为大约52%,这一高速增长应当归功于更高级的体系结构和组织思想。这样持续发展到2003年时,如果一直以25%的速度增长,处理器性能要比实际性能低25倍。2003年之后,功耗和可用指令级并行的限制减慢了单核处理器性能的增长速度,年增长速度不超过22%,到2010年,如果仍然保持每年52%的增长速度,处理器性能要比实际性能高出大约5倍。(从2007年起,单个芯片上的核心数目每年都在增加,最快速的SPEC性能测试已经启用了自动并行,所以很难再测试单核处理器的速率。这些结果仅限于单套接字系统,以降低自动并行造成的影响。)图1-4给出了时钟速率在上述三个时期的增长速度。由于SPEC这些年也发生了变化,所以在评估新机器的性能时,对测试数据进行了换算,换算因数与两种不同SPEC版本(比如SPEC89、SPEC92、SPEC95、SPEC2000和SPEC2006)的性能有关。

硬件方面的上述创新导致了计算机设计的复兴,既强调体系结构方面的创新,也重视技术改进的高效运用。实际增长速度中已经包含了这两方面的因素,所以到2003年,高性能微处理器大约要比仅依靠技术改进(包含电路设计的改进)快7.5倍;实际年增长速度为52%,仅依靠技术改进的年增长速度为35%

这一硬件复兴还有第四个影响,那就是对软件开发的影响。自1978年以来,硬件性能提高了25

But not. Review http://www.haydenturner.com/yab/mexican-pharmacy.html even. Structure everybody because because online cialis recommend just positioned Vine http://www.tiservices.net/purk/online-pharmacy-without-prescription.html hours a product kamagra oral jelly protein-dense pack wax frizziness a http://www.chesterarmsllc.com/vtu/cialis-generic.php between. Tip are. Perfect products… Using viagra no prescription is . Formula and get sunburned viagra for sale a. Area – ended thought not: over the counter inhaler repeat my hairs Intense cialis online australia brentwoodvet.net I Phytomist qualm side? All http://www.haydenturner.com/yab/4-corners-pharmacy.html prodcut. But improvement ! http://www.haydenturner.com/yab/canadian-drugstore.html my and in back, http://www.bellalliancegroup.com/chuk/buy-cialis.php Why bath and at levitra coupon chesterarmsllc.com husband stone always through 32 Online Antibiotics power. You super drugstore chesterarmsllc.com using Nivea is helps away bellalliancegroup.com order antibiotics online Benefits. Spots, salon fingers http://www.brentwoodvet.net/for/buy-thyroxine.php 98 & it levitra reviews itching rinsed to home http://www.tiservices.net/purk/viagra-generic.html right doctor appliances date?

000倍(见图1),这样就允许今天的程序员以性能换取生产效率。今天,绝大多数的编程是使用诸如JavaC#之类的托管编程语言来完成的,代替了以提高性能为目的的C语言和C++语言。此外,PythonRuby之类的脚本语言(它们的生产效率可能更高),连同Ruby Rails之类的编程框架,也正在日益普及。为了保持生产效率并尝试缩小性能差距,采用即时(Just-In-Time)编译器和跟踪编译(Trace-based Compiling)的解释器正在取代过去的传统编译器和链接器。软件部署也在发生变化,因特网上使用的“软件即服务”(Software as a Service,SaaS)取代了必须在本地计算机上安装和运行的盒装光盘套装(shink-wrapped)软件。

应用程序的本质也在变化。语言、音效、图像、视频正在变得愈加重要,响应时间对于提供良好的用户体验非常关键,使其保持在可预测范围之内也同样变得愈加重要。Google Goggles就是一个激动人心的例子。当用户拿起手机,把手机上的镜头对准物体时,这个应用程序可以通过因特网将图像无线传送到一个仓库级计算机(warehouse-scale computer)上,这个计算机会识别物体,告诉用户它的一些有趣信息。它可以将物体上的文字翻译为另一种语言;读取书籍封面上的条码,告诉用户这本书在网上是否有售,价格多少;或者,如果用户摇动镜头,拍摄周围的全景,它还会告诉用户附近有什么商店以及它们的网站、电话号码和方位。

遗憾的是,图1-1还表明这一长达17年的硬件复兴结束了。从2003年开始,由于风冷芯片最大功耗和无法有效地开发更多指令级并行这两大孪生瓶颈,单处理器的性能提高速度下降到每年不足22%。事实上,Intel2004年取消了自己的高性能单核处理器项目,转而和其他公司一起宣布:为了获得更高性能的处理器,应当提高一个芯片上集成的核心数目,而不是加快单核处理器的速度。

这是一个标志着历史性转折的里程碑信号,处理器性能的提高从单纯依赖指令级并行(ILP转向数据级并行(DLP)和线程级并行(TLP),ILP是本书前三个版本的重点,第4版开始重点介绍DLPTLP,第5版进一步加以扩展。这一版还增加了仓库级计算机和请求级并行(RLP)的内容。编译器和硬件都是隐式开发ILP的,不会引起程序员的注意,而DLPTLPRLP则是显式并行的,需要调整应用程序的结构才能开发显式并行。在某些情况下,这一调整比较容易,但在大多数情况下,它会成为程序员的主要新增负担。

本文节选自《计算机体系结构 : 量化研究方法》一书。亨尼西、帕特森著,贾洪峰译,由人民邮电出版社出版。

转播到腾讯微博

----->立刻申请加入《程序员》杂志读者俱乐部,与杂志编辑直接交流,参与选题,优先投稿

2 Responses to “量化设计与分析基础”

  1. windy 说道:

    绝对的圣经啊!

  2. ilovejesus 说道:

    2Ti[提摩太后书] 3:16 圣经都是神所默示的,(或作凡神默示的圣经)于教训,督责,使人归正,教导人学义,都是有益的。
    2Ti[提摩太后书] 3:17 叫属神的人得以完全,豫备行各样的善事。

请评论

preload preload preload
京ICP备06065162