




文档简介
第一章 计算机设计基本原理1.1 简介半个多世纪以来,计算机技术取得了惊人的发展。1945年时还没有能存储程序的计算机。现在,花不到一千美元买到的个人计算机比1980年花一百万美元买的计算机具有更高的性能、更大的主存和磁盘空间。这一高速发展既得益于计算机制造技术的进步,又离不开计算机设计的创新。尽管制造技术的进步速度相当稳定,但系统结构的发展速度却不那么稳定。在电子计算机发展的最初25年中,这两股力量的贡献都很大,但大约从七十年代开始,计算机设计者开始更多地依赖于集成电路技术。七十年代,当时计算机工业占统治地位的大型机和小型机的性能以每年2530%的速度提高。七十年代末出现了微处理器,它比大型机和小型机集成度更高,因而促进了集成电路技术的发展,这又进一步推动了计算机性能的提高计算机性能以大约每年35%的速度提高。这一发展速度,再加上微处理器批量生产的成本优势,使得计算机产业中以微处理器为基础的部分迅速膨胀。此外,计算机市场的两个重大变化使新的计算机系统结构比以往更容易取得商业运作的成功。其一,人们实际已经不再使用汇编语言编程,这就降低了对目标代码兼容性的要求。其二,标准的、与厂商无关的操作系统(如UNIX)的出现,减小了推出新系统结构的成本和风险。图1.1 八十年代中期之后微处理器的性能增长速度实际上要比以前快。这张图表是根据SPECint测试程序的结果绘制的计算机性能曲线,以VAX 11/780为基准。随着SPEC的发展变化,通过和SPEC的两个不同的版本(如SPEC92和SPEC95)有关的比例因子来对更新的机器性能进行评估。在八十年代中期以前,微处理器的性能提高主要是技术驱动的,平均以每年35的速度提高。此后,微处理器的性能提高主要得益于先进的系统结构设计思想。截止到2001年,这一增长速度已经使总的性能与单纯依靠技术进步能够达到的性能之间有了十五倍的差距。 浮点运算的性能提高得更快。正是这些变化使得在八十年代初RISC的新系统结构的推出成为可能。设计者把基于RISC的机器的注意力放在两个关键性能技术上:指令级并行的开发(从最初的流水线操作到后来的多指令流)和高速缓存的使用从最初简单的形式到后来的复杂的组织方式和优化方式。系统结构和组织的共同增强导致在性能方面以每年50以上的速度持续提高了长达20年。图1.1显示了这种发展速度的差异。这一令人难以置信的飞速发展带来了双重效果。一方面,它极大地增强了计算机提供给用户的功能。现代最高性能的微处理器对很多应用程序的处理效果远远超过不到10年前的那时候的巨型机。另一方面,这一飞速发展使以微处理器为基础的计算机在整个计算机领域占据了统治地位。工作站和PC机已经成为计算机工业的主要产品。由逻辑电路或门阵列制成的小型机已经被用微处理器制造的服务器取代了。大型机也在慢慢地被由流行的微处理器组成的多处理器取代。甚至高端产品巨型机也可以由多个微处理器构成。不必与以往设计相兼容的自由性和微处理器技术的使用促使了计算机设计的复兴,此时的计算机设计既强调系统结构的创新,又强调充分利用技术进步的成果。正是这一复兴带来了如图1.1所示的计算机工业史无前例的飞速发展。截止到2001年,微处理器的最高性能与单纯依赖以提高集成电路设计在内的技术进步能够达到的性能相比,前者几乎是后者的十五倍。在过去短短几年间,集成电路的迅猛发展使得像x86(或是IA-32)这样的旧的少流水线型的系统结构也能够采用基于RISC的许多新的方法。如我们所看到的,现代x86处理器基本上有一个前端部件,这个部件可以读取并解码x86指令并将其映射为简单的ALU、内存访问,或者是能在RISC式流水线处理器中执行的分支操作。从90年代末开始,随时晶体管数量的猛增,解释更多更复杂的x86系统结构的费用相对于它在一个现代微型处理器中的整个晶体管数量来说,已经变的微不足道了。本教材讲述的正是使这一飞速发展成为可能的系统结构设计的基本思想和相关的编译器的发展。处于这一戏剧性革命中心地位的是计算机设计的定量方法的发展和以对程序的直接观察、实验和模拟为工具的分析方法。本书所反映的正是这种设计风格和方法。要保持近年来计算机成本降低、性能提高的速度需要计算机设计的不断创新,笔者认为这种创新将建立在计算机设计的定量方法基础上。因此,写本书的目的不仅限于阐述这种设计方式,而且希望它能够激励读者为计算机的发展做出自己的贡献。1.2 计算的改变方向和计算机设计者的任务六十年代,计算的主要形式是利用大型机,这种机器往往价值几百万美元,并且安放在专用的计算机室里,需要多个操作员来进行操作。典型的应用程序是商务数据处理和大规模的科学计算。七十年代诞生了小型机,这是一种小规模的主要针对科学实验室的机器,但是却像多用户通过自己的终端共享一台机器这个技术一样得到了广泛的使用。八十年代出现了基于微处理器的台式电脑,有个人电脑和工作站两种形式。个人拥有台式电脑取代了分时技术导致了服务器的应用,服务器是一个能够提供如可靠的长时间的文件存储、大内存和高计算能力的大规模服务的计算机。九十年代出现了Internet和WWW,第一个成功的掌上电脑(个人数字助理或PDA)和高性能数字消费品,这包括视频游戏和机顶盒等。这些变化对我们如何看待计算、计算的应用以及在新千年开始的计算机市场的巨大变化起了铺垫作用。在个人电脑诞生20余年后的今天,我们看到在计算机在外表以及使用方法上的巨大变化。在计算机使用上的变化导致了三个不同的计算机市场,它们之间以不同的应用程序、需求和计算技术作为区别。桌面电脑第一个,也是最大的一个市场是桌面电脑市场。桌面电脑的界定可以从低于1000美元的低端系统到超过10000美元、具有良好性能的工作站。在价格和性能的这个范围内,台式电脑市场的总体趋势是优化性价比。性能和价格的结合是这个市场的消费者最关心的,因此也是设计者最关心的。因此,桌面系统往往是最新最高性能的处理器和降价微处理器系统最先露面的场所。尽管网络中心和交互式应用对性能的评估产生了新的挑战,桌面电脑在考虑应用和测试方面上也是最趋于合理的。我们在1.9中将会讨论,桌面电脑市场中PC部分似乎是更把时钟频率作为衡量性能的直接尺度。这种关注将导致消费者和设计者都产生错误的决定。服务器桌面电脑兴起的同时,服务器在提供更大规模及更可靠的文件与计算服务中的作用也日趋明显。World Wide Web的出现使加速了这种趋势,这是因为对Web服务器和基于Web的成熟服务的需求增长迅速。这些服务器取代了传统的大型机成为企业进行大规模处理的中枢。对于服务器来讲,一些不同的特点是很重要的。首先,可用性是关键。我们使用“可用性”这个词表示系统能够提供可靠的和有效的服务。这有别于“可靠性”,它仅表示系统不失败。大规模系统的一些部分不可避免的要失败;服务器的一个挑战是在面对部件失败的前提下保证系统的有效性,这通常是通过冗余来达到的。这个话题将在第7章详细讨论。为什么可用性很关键呢?想想Yahoo!的服务器,为Cisco确保订单的服务器,或者eBay上提供拍卖的服务器。显然,这样的系统一定是1周7天,1天24小时运转的。这样服务器系统的失败比起一台桌面电脑的失败要更具有灾难性。评估停工期(downtime)的损失是很难的,这里我们可以假设停工期均匀分布,而且不发生系统空闲的时候,图1.2给出了这样的一个分析。这里我们可以看出,一个不可用系统的估计成本是很高的,图1.2仅仅给出了损失的收入,其中还不包含给顾客造成的心理上的损失。服务器系统的第二个关键特性是强调可扩展性。由于对服务器所提供服务的需求的增长和对其它功能的需求,服务器通常会超过其寿命。因此,对于服务器来讲,能够升级计算能力、主存储器、存储空间和I/O带宽是很关键的。最后,服务器是为有效的吞吐量设计的。也就是说,服务器的整体性能用每分钟处理的事务数或者每秒钟提供的页面服务来衡量是关键。对单个请求的相应很重要,但用单位时间处理的请求数目来表示的整体的效率和成本效率对绝大多数服务器来讲是关键的。(我们将在1.5节再次谈到不同类型的计算环境下性能的核定)应用每小时损失年平均损失1%(87.6小时/年)0.5%(43.8小时/年)0.1%(8.8小时/年)经纪人业务$6,450$565$283$56.5信用卡认证$2,600$228$114$22.8家庭购物通道$150$1.3$6.6$1.3包装服务$113$9.9$4.9$1.0编目销售中心$90$7.9$3.9$0.8航空预定中心$89$7.9$3.9$0.8手机服务激活$41$3.6$1.8$0.4网络在线费用$25$2.2$1.1$0.2ATM服务费$14$1.2$0.6$0.1图1.2 通过分析停工期得到的不可用系统的损失(在直接收入损失方面),假设有三种不同级别的有效性,同时停工期是均匀分布。数据来源于Kembel2000,由Contingency Planning Research整理和分析。嵌入式计算机嵌入式计算机放置在其他设备中的计算机,计算机的存在往往并不显而易见是计算机市场中增长最快的部分。这些设备范围很广泛,从每天都使用的机器(如大多数微波炉、洗衣机、打印机、网络交换机,和所有包含嵌入式微处理器的汽车)到手持数字设备(如掌上电脑,手机和Smart卡)到视频游戏和数字机顶盒。尽管在一些应用中(如掌上电脑)计算机是可编程的,但是在更多的嵌入式应用中,编写程序仅仅发生于初始的应用代码载入和后期软件的升级。因此,应用通常可以针对处理器和系统量体裁衣。这样的裁减过程包括关键循环用汇编语言实现等,但这些汇编代码的开发是受开发时间和好的软件工程实践所限制的。汇编语言的使用、标准化操作系统的出现和大量兼容性的基础代码是嵌入式市场上最受关注的。像其他计算应用一样,软件花费也是嵌入式系统中很大的一部分开销。嵌入式计算机的处理能力和价格范围很广泛从低端的少于1美元的8比特和16比特处理器,到少于10美元每秒可以执行5千万条指令的全32比特微处理器,到高端的几百美元能够为最新的视频游戏或高端网络交换机提供每秒十亿条指令计算能力的嵌入式处理器。尽管嵌入式计算机市场上处理能力的范围很广泛,但价格仍然是设计计算机时考虑的一个关键因素。性能的需求是存在的,但是主要的目标还是以最低的价格满足性能要求,而不是用高价格达到更高性能。通常,嵌入式应用的性能需求是实时需求。实时性能是指每个程序片断有一个有限的最大执行时间。举个例子,在数字机顶盒中,因为处理器必须在很短时间内接受和处理下一帧,所以每一个视频帧的处理时间是有限的。在一些应用中存在着更为复杂的需求:当时间超过最大时间时,一个特定任务的平均时间和例程的数目是受约束的。为此,一种能够偶尔避免一个事件的时间约束,又不避免过多的约束的方法产生了,这种方法有时被称为软件实时。实时性能往往是和应用高度相关的。通常是在核心态下,用应用程序或者标准的测试程序(参见1.5节的EEMBC测试程序)来衡量的。随着嵌入式微处理器的广泛使用,产生了对测试程序的广泛需求,这些需求包括从运行小且有限的程序片断到能够稳定的运行数万行代码。在很多嵌入式应用中还存在着其他两个关键的特性:最小化存储器的需要和最小化功耗的需要。在很多嵌入式应用中,存储器是作为系统成本的一部分,因此对存储器大小的优化是很重要的。有时应用程序能够装入整个处理器片上的存储器,其他时候应用程序需要装入一个片外的小存储器。无论如何,因为数据大小是受应用程序决定的,所以存储器大小的重要性就转化为代码大小的重要性。下一章我们将会看到,一些体系结构存在专门的指令集能够减少代码长度。大存储容量同样代表了更高的功耗,同时优化功耗在嵌入式应用中也是关键。尽管强调低功耗是因为使用电池的原因,但是使用更便宜封装材料(塑料和陶瓷的对比)的需求和缺少风扇的制冷都限制了功耗的整体消耗。我们将在后续章节里详细介绍这个问题。另外一个在嵌入式系统中很重要的趋势是把处理器核和特定应用电路相结合。通常应用程序的功能和性能是通过将定制的硬件解决方案和在能在标准嵌入式处理器核上运行的软件相结合的方法得到的,这种软件能够与专用硬件交互。实际上,嵌入式问题通常是通过以下三种方法之一解决的:1 设计者使用一个组合的软硬件解决方案,其中包括定制的硬件和整合在所定制硬件中的嵌入式处理器核。2 设计者使用定制的软件运行在非定制的嵌入式处理器上。3 设计者使用一个数字信号处理器和为这个处理器定制的软件。数字信号处理器(DSPs)是专为信号处理应用程序设计的处理器。我们将在下章讨论数字信号处理器和通用嵌入式处理器的区别。不管是非定制的微处理器还是微处理器核,本书讨论的大部分内容都适用于嵌入式处理器(需要同其它专用硬件一起组装)的设计和使用。针对特定应用程序的专用硬件的设计和DSP的细节不在本书讨论范围。图1.3总结了这三类计算环境和它们的重要特性。特征桌面式服务器嵌入式系统价格$1,000$10,000$10,000$10,000,000$10$100,000(包括高端网络路由器)微处理器价格$100$1,000$200$2000(每个)$0.20$200每年微处理器销量(2000年)150,000,0004,000,000300,000,000(只有32位和64位的)关键设计性价比,图形性能吞吐量,可用性,可扩展性价格,功耗,专用程序性能图1.3 三种计算类型和系统特征的总结 注意服务器和嵌入式系统的价格的变化范围是很广的。对于服务器来讲,这种范围来源于应用高端事务处理和网页服务时对大规模多处理器系统的需求。对于嵌入式系统来讲,一个重要的高端应用是网络路由器,它包括多个处理器和大量的存储器以及其他电子设备。如果包括8位和16位微处理器的话,2000年销售的嵌入式处理器的总数估计可超过10亿块。事实上,最大的销售微处理器的市场是Intel的8位微控制器。另外,区分低端的服务器市场和桌面电脑市场也是很困难的,因为低端服务器特别是那些在5000美元以下的服务器同桌面电脑本质上是没有区别的。因此,多达几百万的PC单元也可以有效的做为服务器来使用。计算机设计者的任务计算机设计者面临的任务非常复杂:对一台新计算机而言,首先要判断哪些特征是最重要的,然后在不超出成本的范围内力求性能最高。这里面涵盖的问题是多方面的,包括指令集的设计、功能组织、逻辑设计与实现。其中实现可能涉及集成电路的设计、封装、电源的设计以及冷却措施。优化设计需要熟练掌握很多领域中的技术,从编译器、操作系统到逻辑设计和封装技术。过去,计算机系统结构通常仅指指令集设计,计算机设计的其他方面则被称为实现。这种说法通常暗示着实现不那么有趣或不那么具有挑战性。笔者认为这种说法不仅不正确,甚至应对新指令集设计中出现的错误负责。系统结构的设计者即计算机设计者的工作远不止是指令集设计,在其它方面遇到的技术困难与在指令集设计中遇到的困难同样具有挑战性。尤其是在不同指令集之间的差距不断缩小和存在三个截然不同的应用领域的今天,这一点更是千真万确。在本书中,指令集系统结构指的是程序员可见的实际指令集。这一指令集的系统结构是软件与硬件的界面,这是第二章集中讨论的内容。一台计算机的实现包括两部分内容:结构和硬件。结构涵盖了计算机设计的高层次方面,例如存储系统、总线结构以及内部CPU(中央处理单元实现算术运算、逻辑运算、分支和数据传输的部件)的设计。Pentium III和Pentium 4的指令集系统结构相同,结构却不同。尽管Pentium 4增加了新的指令,但基本上都是浮点运算指令。硬件是指一台计算机实现的具体细节。这可能包括具体的逻辑设计和封装技术。同一系列的计算机通常具有相同的指令集系统结构和几乎完全相同的结构,但它们的具体硬件实现却不同。例如,Pentium II 和Celeron,二者具有几乎完全相同的结构,但时钟频率和存储系统的实现细节的有所不同使得对于低端计算机而言Celeron更加有效。在本书中,系统结构一词包含了上述计算机设计的所有三个方面指令集系统结构、结构和硬件。系统结构设计者必须设计一台既能满足功能要求,又能达到价格和性能目标的计算机。通常,他们还必须弄明白功能要求究竟是什么。这可能是主要的任务。这些要求中可能包括由市场需求激发的特定功能。确定了机器的用途后,应用软件通常能帮助我们筛选出特定的功能要求。如果市场上已有大量为某一指令集系统结构设计的软件,系统结构设计者就可能会在新机器中实现这一指令集。如果对某一类特定应用软件的市场需求非常大,设计者也可能会在新计算机中引入某些支持这些软件的功能特性,以增强新计算机在市场中的竞争力。图1.4总结了设计一台新计算机时要考虑的功能要求。其中许多要求和特性将在以后的章节中深入讨论。一旦确定了一系列功能要求后,系统结构设计者就要尽可能优化设计。当然,究竟哪一种设计是最优的取决于不同的衡量标准。过去几十年里计算机应用领域的变化强烈的影响着衡量标准的变化。桌面电脑一直注重在费用性能方面的优化,而服务器却注重可用性、可扩展性、吞吐量和那些价格驱动的计算机内部的功耗问题等。不同的市场的多样性导致了设计计算机基本原理的不同方面的努力。对于桌面电脑市场而言,他们把更多的努力放在如何设计一个可以将图像和I/O系统集成到系统中的领先的微处理器;在服务器市场,则更多的关注在一个多处理器结构中,如何集成一个高性能的微处理器和设计可扩展和高可用性的I/O系统。最后,领先的嵌入式处理器市场中的挑战在于,在考虑功耗限制和图形视频高性能处理的前提下,如何在一定价格范围内应用高端处理器技术来获得更好的性能。除了性能,价格也是优化性能价格比的一个关键因素。此外,设计者还必须密切关注实现技术和计算机应用方面的重要发展趋势,这不仅关系到产品未来的成本,而且能够决定某种系统结构的寿命。下面的两小节将讨论成本和技术的发展趋势。功能要求应具备或支持的典型特性应用领域通用科学计算商用嵌入式计算计算机的目标对一系列任务均有较好的平衡性能(如图像、视频、音频的交互性能)(第2、3、4、5章)具有较高的浮点运算和图像处理功能(附录G、H)支持数据库和事务处理功能;有较强的可靠性和可用性;支持可扩展性。(第2、6、8章)通常要求对图像、视频(或是其它一些有特殊要求的地)有特殊的支持;功耗限制、控制(第2、3、4、5章)软件兼容级别编程语言级目标代码或二进制级兼容决定机器可以运行哪些软件设计者自由度较大,但需要新的编译器(第2、6章)系统结构已经确定基本无随意性可言但无需对软件或端口程序追加投资操作系统要求地址空间的大小内存管理安全保护为支持选定的操作系统所必需的特性(第5、8章)非常重要的特性(第5章);可能限制应用程序的运行只有现代操作系统才需要考虑这一点,可以是页式或段式管理不同的操作系统和应用都需要考虑,可以是页式或段式保护标准浮点I/O总线操作系统网络编程语言市场已经有某种需要满足的标准格式和算法:IEEE754标准(附录H),针对图像信号处理的特殊算法I/O设备:ATA、SCSI、PCI(第7、8章)UNIX、PalmOS、Windows、WindowsNT、WindowsCE、CISCO IOS对不同网络的支持:Ethernet, Infiniband(第8章)编程语言(ANSI C、C+、Java、FORTRAN)将影响指令集(第2章)图1.4 系统结构设计者要面对的最重要的性能要求一览表。左边一列是需求的种类,右边一列则包括了可能需要的特性和相关章节及附录。1.3 计算机技术和应用的发展趋势 一个成功的指令集必须能够适应硬件、软件及应用特性的各种变化。设计者必须密切关注计算机应用和技术的发展趋势。一个成功的指令集系统结构可能会被持续使用数十年,例如IBM大型机的核心从1964年至今一直被使用着。系统结构设计者对那些可能会延长计算机寿命的技术变化必须心中有数。从计算机的长远发展考虑,设计者必须密切注意计算机实现技术的变化。以下四种飞速发展的实现技术对现代实现技术的影响最为深远:l 集成电路逻辑技术晶体管的密度以每年大约35%的速度增长,四年后增长为原来的四倍。电路核心尺寸的变化速度还没有精确的数值,大约在每年1020%之间。二者总的效果是每片硅片上的晶体管数目以每年大约55%的速度增加。器件的增长速度较慢,我们将在下一节中讨论这一问题。l 半导体DRAM(动态随机存取存储器)其密度以每年4060%的速度增长,三、四年后增长为原来的四倍。访问速度提高得非常慢,平均每十年降低为原来的三分之一。每片的带宽随着延迟时间的缩短而以其两倍的速度增加。此外,DRAM接口的变化也改善了带宽,这是第5章中讨论的内容。l 磁盘存储技术最近,磁盘的密度以每年100%的速度增长,两年后几乎达到原来的四倍。1990年以前,磁盘密度以每年30%的速度增长,三年内几乎达到原来的两倍。在未来的一段时间内,磁盘技术将以更快的速度提高。存取时间在过去十年内缩短为原来的三分之一。这一技术是第7章的核心内容,我们将在那一节中对这一问题做更加详尽的讨论。l 网络技术网络的性能依靠交换和传输系统。时延和带宽二者都可以提高,但近年带宽是人们关注的焦点。以前,网络技术的发展似乎很缓慢,就像以太网那样,花了近十年的时间才从10Mb提高到100Mb。网络发展的重要性将导致它更快的发展100Mb以太网出现5年后1Gb以太网就问世了。在美国,由于光纤设备和硬件交换系统的使用,互联网的主体架构已经在以更快的速度发展(带宽每年大约增长两倍)。依靠这些飞速发展的技术,就可以通过提高微处理器的速度和使用先进技术将微处理器的寿命延长至五年或更长。即使在单个产品的生命周期中(两年设计期、二到三年投产期),关键技术例如DRAM技术变化之大也使设计者必须将其考虑在内。事实上,设计者是在为未来的某种技术进行设计,因为产品批量生产时正是这一技术最经济或性能最优时。通常,成本降低的速度与器件密度提高的速度相当。 这些技术变化不是连续的,而是跳跃式的,这种阶梯式的变化可能使以前无法实现的技术变得可行。例如,八十年代初期,当MOS技术发展到在一个硅片上可以有25,000到50,000个晶体管时,制造单片的32位微处理器就成为可能的了。到八十年代末,第一级高速缓存器在硅片上出现。如果消除处理器和高速缓存的交叉,则可以提高性价比和性能/功耗比。但这种设计在这一技术未达到某一水平之前是不可能的。这一技术的突破是可能的,它对设计会有很大的影响。集成电路中晶体管、连线和功耗的衡量集成电路的加工过程是用特征尺寸来表示的,特征尺寸是晶体管或者连线在x,y方向上的最小尺寸。1971年到2001年,特征尺寸从10微米降到了0.18微米。因为每平方毫米硅上晶体管数目由一个晶体管的表面积决定,所以当特征尺寸线性减少的时候晶体管的密度以平方项增加。但是晶体管性能的增加是更为复杂的。当特征尺寸减少时,设备在水平方向和垂直方向上都是平方倍的减少。在垂直方向上尺寸的减少需要操作电压的减少以保证操作的正确和晶体管的可靠性。这种和尺度因素的结合导致了晶体管性能和加工的特征尺寸之间的复杂关系。近似的说,集体管性能随着特征尺寸的减小线性的增加。晶体管数目平方倍的增加伴随着晶体管性能线性的提升,这个事实为计算机体系结构设计者提出了挑战和机会。在微处理器产生之初,晶体管密度的高速增加使得处理器从4位发展到8位、16位和32位。直到最近,密度的增加才导致64位微处理器的产生及很多关于流水线和高速缓存的改进,这些将在第3、4、5章介绍。尽管晶体管随着特征尺寸的减少而性能增加,集成电路中的连线却不这样。特别地,连线上的信号延迟与它的电阻和电容乘积成正比。当然,当特征尺寸减小,连线变短,但是每单位长度上的电阻和电容却增加。这个关系比较复杂,因为电阻和电容依靠具体的加工方法、连线的几何形状、连线的装载甚至和其他结构的连接。有时加工方法会提高连线延迟,比如用铜作为连接介质,这将会提高一个单位时间的线延迟。通常,线延迟数值范围与晶体管性能相比很大,这为设计者提出了更多的挑战。在过去的几年里,线延迟已经成为了大规模集成电路中主要的设计障碍,而且往往比晶体管转换延迟更为关键。更多的时钟消耗在信号的线延迟上。2001年,Pentium 4将其20多级流水线分成两个阶段,目的仅是在芯片上传输信号。当设备达到一定规模的时候,功耗同样是具有挑战的。对于现代的CMOS微处理器,主要的能量消耗在晶体管状态的转换。每个晶体管需要的能量与晶体管的装载电容、转换频率和电压的乘积成比例。从一个加工过程到下一个,晶体管转换的数量、它们转换的频率和载入电容和电压的减少都导致了整体功耗的增加。第一个微处理器消耗功耗仅几百毫瓦,而2GHz的Pentium 4处理器消耗近100瓦的功耗。2001年最快的微处理器工作站和服务器消耗功耗在100瓦到150瓦之间。分散功耗,消除热量和消除热点已经成为了很困难的挑战。在不久的将来,很可能是功耗而不是晶体管的数量会成为发展的最主要的限制。1.4 成本、价格及其发展趋势尽管在有的计算机设计(特别是超级计算机的设计)中成本因素可以不予考虑,但注重成本的设计却越来越重要。1999年,一半以上的PC机售价在1000美元以下,一台嵌入应用的32位微处理器的平均价格是几十美元。的确,在过去15年中,计算机行业主要是靠改进技术来提高性能和降低成本的。教科书中常常忽略性价比中的成本因素,因为成本变化如此之快使得教科书中的内容很快就会显得过时了,而且成本在工业部门中确实是一个复杂的问题。可是,设计者如果想在考虑成本因素的情况下对是否增加某一功能特性作出明智的选择,就必须对成本及其要素有所了解,否则就会象建筑师对钢筋和水泥的行情一无所知就去设计摩天大厦一样不可想象。这一节将集中讲述成本、价格的问题,尤其是二者之间的关系:价格是你卖一件成品所得到的,而成本是你生产这个产品所花费的全部费用。同时我们还讨论影响成本的因素和成本的变化趋势。习题和例题中的具体数据可能会随时间改变,但作为成本决策的基本原则变化相对要慢一些。这一节将通过对那些在计算机设计中起主要影响的成本因素的讨论向你介绍上述这些问题。时间、产量、商品化和包装的影响即使计算机的底层实现技术没有实质性的改进,计算机元件的生产成本也会逐渐降低,这是由于学习曲线(单位成本会随时间而递减)在起作用。学习曲线本身最便于用产出率来衡量,产出率就是通过质量检验的产品占总产品的百分比。不论生产的产品是芯片、主板还是一个系统,产量加倍,成本就会降低一半。深入理解学习曲线对产出率的影响是在产品生命周期中控制成本的关键。举一个受学习曲线影响的例子:自从DRAM芯片的价格开始与其成本紧密联系在一起以后,每兆字节DRAM的价格长期以来一直就以每年40的速度下降,当然这要除去短缺的一段时期,那时DRAM的价格和成本基本相当。事实上有一段时期甚至出现了价格低于成本,如2001年初。当然,制造商是绝不希望这种情况发生。图1.5显示了每种DRAM芯片在其寿命周期内的成本变化,从中可以更形象地看到这一点。从设计初期到产品出厂的两年间,一个新的DRAM芯片的成本将固定降低510美元。由于并不是所有的组件成本都以同样的速度变化,所以基于计划成本的设计导致了不同的成本性能平衡。图1.5的说明具体讨论了DRAM价格的长期趋势。图1.5 六代DRAM(从16Kb到64Mb)的价格(按1977年价格水平计价)随时间变化的曲线显示学习曲线的作用。 1977年的1美元相当于2001年的2.95美元,通货膨胀主要发生在19771982这五年,在此期间,价格变化了1.59美元。在1977-1995年间,DRAM的价格以令人难以置信的速度狂跌,1MB内存从1977年的5000美元降到2000年的0.35美元,2001年的令人难以置信的0.08美元(以1977年价格水平计价)。每一代DRAM产品的价格都在其生命周期内降低了1030个百分点。从1996年开始,出现了生产厂家的利润随着价格的下跌而疯狂降低的局面,连DRAM的最终价格也包括在内。在供不应求时例如19871988年和19921993年间价格有短期的回升,这体现为价格降低的速度趋缓。在本世纪初又出现了大量供过于求的情况,导致了价格的急遽降低,这是让厂家不能承受的。微处理器的价格同样在下跌,但是由于它没有DRAM芯片那么规范标准,所以它的价格与成本之间的关系就显得更加复杂。在严峻的竞争时期,尽管出售微处理器的卖主几乎陷入亏本的境地,但价格依然随成本紧密变化。图1.6显示了Pentium III的价格变化趋势。除此而外,产量也是决定成本的重要因素。产量会以几种方式影响成本。其一,产量增加会缩短达到学习曲线最优生产效率的时间,这一时间部分地与产品或系统的产量成正比。其二,产量增加可以提高采购和生产的效率,从而降低成本。根据以往的经验,一些设计者曾经估算出产量每增加一倍,成本就会降低10%。其三,随着产量的增加,每件产品均摊的开发费用会减小,因而产品的成本和售价都可能降低。稍后,我们还会讨论影响售价的其它因素。图1.6 当产出率提高和竞争的压力同时导致成本的降低时,Intel Pentium III的价格随着时间的变化以固定的频率下降。这里的数据是由2000年5月出版的微处理器报告提供。最新的介绍显示Pentium III的价格将继续下跌直到与其今天的最低成本部件接近一致(100200美元)。这样的价格下跌呈现了一种价格与成本紧密同时下降的竞争局面。零配件是由多家厂商大量出售的可以完全互换的产品。事实上,零售店货架上出售的所有商品都可以称为零配件。零件包括DRAM、小型磁盘、监视器、主板等。在过去十年中,计算机产业的大多数低端产品是装配IBM兼容PC机的零配件。有许多厂商生产完全可互换的产品,因而该领域内竞争激烈。当然这种激烈竞争减小了售价与成本间的价差,但它同时也降低了成本。这是因为零售市场产量大,而且产品有明确的规范,这使得多家厂商可以参与到生产零配件的竞争中来。零配件供应商之间的激烈竞争和零配件产量增加带来的高生产效率最终导致零配件的总生产成本的下降。尽管只有非常有限的利润可赚(这也是所有零部件行业的特征),但也使计算机行业在低端产品方面可以比别的部门获得更高的性价比和更大的产量。集成电路的成本为什么一本计算机系统结构的教科书会有一节专门来讨论集成电路的成本呢?在竞争日益激烈的计算机市场中,标准件如磁盘、DRAM等在计算机总成本中占的比例越来越大,集成电路的成本成了影响计算机总成本的重要因素。在产量大、对价格敏感的市场中尤其如此。因此,要想弄清楚整机的成本就必须先弄清楚集成电路的成本。尽管集成电路的成本呈指数下降趋势,但是生产硅片的基本程序并没有改变:先对一个晶片进行测试,然后把晶片切分成电路小片,再对每个电路小片进行封装(见图1.7和1.8)。所以一片封装好的集成电路的成本为:本节中,我们集中讨论电路小片的成本,并在本节末尾概略介绍影响测试和封装成本的主要因素,在习题中会有对测试和封装成本更详细的讨论。图1.7含有Intel Pentium 4处理器的8英寸晶片的照片。(照片由Intel提供)图1.8含有NEC MIPS 4122的12英寸晶片的照片。R20K是由带有指令集扩展的MIPS64系统结构实现的,被称作MIPS-3D,用来计算三维图像处理。这种R20K的频率从500MHz到750MHz,在每个时钟周期可以同时执行两个整数操作。通过使用MIPS-3D的指令,R20K可以每秒累计执行30亿次的浮点运算。(照片由MIPS科技公司提供) 要想知道每个晶片上有多少性能良好的电路小片,就要先知道晶片的面积和正常工作的电路小片所占的比例。由此可以推知电路小片的成本为:有趣的是,这一电路小片的成本公式表明电路小片的成本对电路小片的大小非常敏感。下面将阐述这一点:每个晶片上电路小片的个数近似为晶片的面积除以电路小片的面积,更确切的公式如下:第一项是晶片面积与电路小片面积的比,第二项是对晶片边缘附近方形小片数目的修正。晶片的周长除以正方形电路小片的对角线长度近似为晶片边缘处电路小片的数目。例如,直径为30厘米(约12英寸)的晶片上有3.14*225-(3.14*30/1.41)=640个边长为1厘米的电路小片。例题直径为30厘米的晶片上有多少边长为0.7厘米的电路小片?解:电路小片的面积为所以 但这仅给出了每个晶片上可以容纳的电路小片最大数目,还有一个关键问题是每个晶片上性能良好的电路小片的比例即电路小片的成品率是多少。集成电路产出率的一个经验模型假定有缺陷的产品在晶片中随机分布且产出率与制造过程的复杂性成反比,所以有如下的公式:其中晶片成品率除去了完全被损坏因而不必进行测试的晶片。为简便起见,我们假定晶片成品率为100%。单位面积的残次品数目用来衡量随机缺陷和制造缺陷。在2001年,因工艺成熟程度(回忆一下前面提到过的学习曲线),这一指标基本上在0.4到0.8之间。最后,是一个衡量工艺复杂程度的参数,它是影响电路小片成品率的重要参数,它粗略与掩模的层数相对应。对于现在的多层金属CMOS生产流程而言,取4.0较好。例题设残次品密度为0.6/cm2,分别求边长为1厘米和0.7厘米的电路小片的成品率。解:电路小片的面积分别为1平方厘米和0.49平方厘米面积较大的电路小片的成品率为:面积较小的电路小片的成品率为: 这样,用每个晶片的电路小片的数目乘以电路小片的成品率(包括次品)就得到每个晶片上功能良好的电路小片的数目。在上面的例子中,预计在直径为30厘米的晶片上有366个面积为1平方厘米的性能良好的电路小片或1014个面积为0.49平方厘米的性能良好的电路小片。在现代0.25u工艺下,大多数32位、64位微处理器的电路小片尺寸都在这个范围内,在缩放之前的原型制作阶段最大的面积曾达到2平方厘米。低端嵌入式32位处理器有时面积小到0.25平方厘米,用于打印机、汽车的嵌入式微处理器有时只有0.1平方厘米(习题1.8中图1.34展示了当今几种微处理器的电路小片和技术)。假定在零部件产品(如DRAM和SRAM)的巨大价格压力之下,设计者不得不采用多生产一些产品作为提供成品率的一种手段。在几年之内,DRAM通过定期的多生产一些存储单元来消除那些残次品。在微处理器中为高速缓存使用的标准SRAM和更大的SRAM阵列中,设计者们都已经采用了类似的技术。显然,这种多余产品的出现对提供成品率是很有效的。在2001年的领先科技中,以46层金属工艺处理一个直径为30cm的晶片需要花费50006000美元的成本。假设一个处理过的晶片成本是5500美元,那么一个0.49平方厘米的电路小片的成本将大约为5.42美元,而1平方厘米的电路小片的成本将大约为15.03美元,或者相当于面积是它两倍的小片的成本的三倍。计算机设计者对芯片的成本应该注意哪些东西呢?生产流程决定了晶片的成本、晶片的成品率、和单位面积的残次品个数,所以设计者唯一能控制的就是电路小片的面积。对于今天使用的先进生产技术而言,通常取4,所以电路小片的成本与电路小片面积的四次方(或更高)成正比。然而实际上,由于单位面积的残次品的个数是少量的,所以每个晶片上好的电路小片的数量和成本是与电路小片的面积的平方成正比的。计算机设计者电路小片的大小有影响,因此对电路小片的成本有影响。而电路小片的大小和成本都要受到电路小片所包含的功能特性和I/O管脚数的影响。在我们决定把一个部件加入计算机前,必须对它进行测试、封装、封装后的再测试。这些步骤都会增加成本。这些过程带来的附加成本将在习题1.8中详细讨论。以上重点在于分析生产一个功能电路小片的成本变量,这是和高产量的集成电路的发展相适应的。然而对于那些低产量(如不超过一百万的零件数)的集成电路而言,掩模组的成本是一个非常重要的固定成本。在集成电路处理过程的每一步都需要一个单独的掩模。所以,对于现代46层金属层的高密集度工艺制造过程来说,掩模的成本费用通常超过100万美元。显然,这个影响着制造原型和调试运行的巨大的固定成本,成为了低产量生产中生产成本的一个重要部分。由于掩模的成本价格有可能继续上涨,所以设计者们将采用组合逻辑来提高某个部件的复杂性,或者选取一些门阵列(特制掩模标准),从而降低掩模的蕴涵成本。成本在系统中的分布:一个实例为透视硅片的成本,图1.9显示了2001年的一台价值1000美元的PC机中各部件的近似成本。尽管图1.9中的有些部件的成本随着时间的推移必然会下降,但有些部件(如机箱和电源)的成本未来短时间内几乎不会有大的变化。此外,我们预测将来的计算机会有更大的内存和硬盘空间,这意味着价格下降的速度会远低于技术进步的速度。处理器子系统仅占总成本的6%。尽管在中型或大型设计中这一比例会提高,但多数子系统的分类细目的比例仍是差不多。系统子系统占总成本的比例机箱金属、塑料、电源、风扇电缆线、螺钉和螺母包装箱、手册小计2%2%1%1%6%主板处理器DRAM (128M)显卡I/O子系统,网络系统小计22%5%5%5%37%I/O设备键盘和鼠标监视器硬盘(20GB)DVD驱动器小计3%19%9%6%37%软件操作系统基本Office组件20图1.92001年一台价值1000美元的PC机中各部件的估计成本分布。注意占总成本比例最大的单个部件是处理器,然后是监视器。(有趣的是,在1993年的时候,DRAM内存的价格占整个整机成本的近三分之一,是当时最贵的部件!但从那以后,它的价格以每MB大约15个百分点的速度下跌!)Touma1993详细讨论了工作站的成本和价格。成本与价格它们为什么不同及相差多少元件的成本可能会限制设计者实现某些设计意愿,但它与用户购买的最终产品的价格仍然相差甚远。在一本计算机系统结构的书中为什么要包含对价格的讨论呢?成本在变为价格之前,要经历许多变化,计算机设计者应当了解他的设计决定是如何影响价格的。例如,成本提高1000美元,价格可能会提高3000到4000美元。如果设计者不清楚成本与价格的关系,他就不会了解增减或替换零件对价格的影响。价格与产量之间的关系进一步强化了成本变化对价格的影响,特别是在低端产品的市场。通常,价格提高会使销售量下降,随之而来的产量减少会使成本提高,导致价格进一步提高。这样,成本即使发生很小的变化也会对价格产生非常显著的影响。成本与价格之间的关系非常复杂,有专著对此进行讨论。这一小节的目的只是介绍一下影响价格的重要因素及通常情况下它们影响的强弱程度。组成价格的各个范畴既可以看作在成本的基础上的附加值也可以看成是价格的百分比,我们将从这两个方面讨论问题。成本与价格的差异还取决于公司在哪儿销售产品。为显示这些差异,图1.10列举了原料成本与标价之间的差额是由哪些部分构成的。图中,随着开销逐渐增加,价格也从左到右逐渐提高。直接成本是指与制造一件产品直接相关的成本,包括劳动力成本、购买元件的成本、碎料(生产所剩余的废料)和保证金(在保证期内系统在用户端失效时的更换或维修费用)。直接成本通常是元件成本的10%到30%。因为用户通常支付服务或维护费用,所以这部分开支通常不计算在费用内,尽管在直接成本或下面将要提到的总利润中也可以包括一项名为保证金的费用。另一项附加是额外费用,作为公司的额外开销,它是不能直接计入产品成本的一项经营性费用。这一项可以被看作间接成本。它包括公司的研发费用、营销费用、设备维护费用、场地租金、财务成本、税前利润和赋税。元件成本加上直接成本和额外费用后,就成了我们通常所说的平均售价在MBA术语中被称为ASP也就是出售产品后进入公司的全额。额外费用通常占平均售价的10%到45%,具体数值取决于产品的市场比例。低端微机制造商的额外费用通常都不高,这主要有以下几个原因:第一,它们的研发费用不高;第二,它们的销售费用相对较低,因为它们通常不采用推销员上门直接推销的方式,而采用邮购、电话定购或零售商代销的方式;第三,因为它们的产品通常不具有垄断性质,竞争比较激烈,所以总利润通常较小。标价与平均售价是不同的。一个原因是公司通常提供因购买数量而异的折扣,降低了平均售价。另一个原因是如果产品通过零售商代销,例如个人电脑,零售商将提取标价的一定百分比作为自己的销售收入。这样,因分销系统的不同,平均售价也和标价不同。图1.10一台价值1000美元的PC机的价格组成。每一次价格提高都是按前一次价格的百分比计算。新价格中各部分所占的比例在每一列的左侧显示。像我们前面提到过的一样,价格对竞争十分敏感:一个公司可能无法按包括总利润所要求的价格卖出产品。在最坏的情况下,公司必须大幅度削价甚至亏本销售。一个力图争取市场份额的公司可能会降价让利来增加其产品的吸引力。如果产量增加得足够多,成本可能会下降。这其中的关系非常复杂,要想深入阐述它们需要整本书,而不是这一小节能够讲清楚的。举个例子,如果一个公司降低价格,而产量却没有相应幅度地增加,总的效果将是利润下降。许多工程师对大多数公司的研发费用仅占其收入的4%(PC计算机业务)到12%(高端产品业务)感到惊异,而且这笔费用包括除制造和领域工程外的所有工程研发费用。这是企业年度业务报告和全国范围内发行的杂志上公布的,这个百分比大概不会随时间而改变。事实上经验显示,一个研发费用仅占其收入的15%-20的计算机公司是不可能长期盈利的。上面的信息意味着公司可以在成本的基础上附加固定比例的开销作为价格,事实上大多数公司也是这么做的。换一个角度来看,如果把研发费用也看作一项投资,这样收入的4%到12%用于研发就意味着每花1美元的研发费用必须带来8到25美元的销售额。由此可以看出,产品的销售量和投资额度不同,额外费用就不同。大型昂贵的机器通常开发费用较高一台制造成本贵10倍的机器,研发费用通常要贵数十倍,这是因为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 家政保姆中介合同范本
- 广告制作安装合同书范本3篇
- 建筑节能行业新技术应用方向
- 农业科技示范园规划初步设计中的农业市场潜力评估报告
- 农产品品牌建设资金申请报告:2025年行业发展趋势与竞争格局分析
- 河北省衡水市安平县安平中学2025-2026学年高一上学期开学测试思想政治试卷
- 2025年信号与系统试卷及答案
- 小米解锁l题库及答案
- 2025年交通设计试题及答案
- 2025年士兵军校试题及答案
- 核电站主要材料质量保证措施
- 2025年6月仓储管理员(初级)复习题与参考答案
- (2025年标准)挖桩孔协议书
- 消化内科课件模板
- 拍摄与剪辑基础知识培训课件
- 项目实施进程汇报
- 医学检验质量安全管理培训
- 医院副主任护师职称竞聘报告
- 2025年人教版新教材数学三年级上册教学计划(含进度表)
- 2025-2030AI辅助药物研发创新趋势分析与投资机会评估报告
- 2025仓库保管员试题及答案
评论
0/150
提交评论