自从第一台通用电子计算机问世以来,计算机技术在大约 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 000 倍(见图1),这样就允许今天的程序员以性能换取生产效率。今天,绝大多数的编程是使用诸如 Java 和 C# 之类的托管编程语言来完成的,代替了以提高性能为目的的C语言和 C++ 语言。此外,Python 和 Ruby 之类的脚本语言(它们的生产效率可能更高),连同 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%。事实上,Intel 在 2004 年取消了自己的高性能单核处理器项目,转而和其他公司一起宣布:为了获得更高性能的处理器,应当提高一个芯片上集成的核心数目,而不是加快单核处理器的速度。
这是一个标志着历史性转折的里程碑信号,处理器性能的提高从单纯依赖指令级并行(ILP)转向数据级并行(DLP)和线程级并行(TLP),ILP 是本书前三个版本的重点,第 4 版开始重点介绍 DLP 和 TLP,第 5 版进一步加以扩展。这一版还增加了仓库级计算机和请求级并行(RLP)的内容。编译器和硬件都是隐式开发 ILP 的,不会引起程序员的注意,而 DLP、TLP 和 RLP 则是显式并行的,需要调整应用程序的结构才能开发显式并行。在某些情况下,这一调整比较容易,但在大多数情况下,它会成为程序员的主要新增负担。
评论加载中...
|
Copyright@ 2011-2017 版权所有:大连仟亿科技有限公司 辽ICP备11013762-1号 google网站地图 百度网站地图 网站地图
公司地址:大连市沙河口区中山路692号辰熙星海国际2215 客服电话:0411-39943997 QQ:2088827823 42286563
法律声明:未经许可,任何模仿本站模板、转载本站内容等行为者,本站保留追究其法律责任的权利! 隐私权政策声明