计算机设计基本原理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
这一令人难以置信的飞速发展带来了双重效果。一方面,它极大地增强了计算机提供给用户的功能。现代最高性能的微处理器对很多应用程序的处理效果远远超过不到10年前的那时候的巨型机。
另一方面,这一飞速发展使以微处理器为基础的计算机在整个计算机领域占据了统治地位。工作站和PC机已经成为计算机工业的主要产品。由逻辑电路或门阵列制成的小型机已经被用微处理器制造的服务器取代了。大型机也在慢慢地被由流行的微处理器组成的多处理器取代。甚至高端产品——巨型机也可以由多个微处理器构成。
本教材讲述的正是使这一飞速发展成为可能的系统结构设计的基本思想和相关的编译器的发展。处于这一戏剧性革命中心地位的是计算机设计的定量方法的发展和以对程序的直接观察、实验和模拟为工具的分析方法。本书所反映的正是这种设计风格和方法。
要保持近年来计算机成本降低、性能提高的速度需要计算机设计的不断创新,笔者认为这种创新将建立在计算机设计的定量方法基础上。因此,写本书的目的不仅限于阐述这种设计方式,而且希望它能够激励读者为计算机的发展做出自己的贡献。
应用
每小时损失
年平均损失
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
通常,嵌入式应用的性能需求是实时需求。实时性能是指每个程序片断有一个有限的最大执行时间。举个例子,在数字机顶盒中,因为处理器必须在很短时间内接受和处理下一帧,所以每一个视频帧的处理时间是有限的。在一些应用中存在着更为复杂的需求:当时间超过最大时间时,一个特定任务的平均时间和例程的数目是受约束的。为此,一种能够偶尔避免一个事件的时间约束,又不避免过多的约束的方法产生了,这种方法有时被称为软件实时。实时性能往往是和应用高度相关的。通常是在核心态下,用应用程序或者标准的测试程序(参见1.5节的EEMBC测试程序)来衡量的。随着嵌入式微处理器的广泛使用,产生了对测试程序的广泛需求,这些需求包括从运行小且有限的程序片断到能够稳定的运行数万行代码。
第一章
1.1
半个多世纪以来,计算机技术取得了惊人的发展。1945年时还没有能存储程序的计算机。现在,花不到一千美元买到的个人计算机比1980年花一百万美元买的计算机具有更高的性能、更大的主存和磁盘空间。这一高速发展既得益于计算机制造技术的进步,又离不开计算机设计的创新。
尽管制造技术的进步速度相当稳定,但系统结构的发展速度却不那么稳定。在电子计算机发展的最初25年中,这两股力量的贡献都很大,但大约从七十年代开始,计算机设计者开始更多地依赖于集成电路技术。七十年代,当时计算机工业占统治地位的大型机和小型机的性能以每年25—30%的速度提高。
七十年代末出现了微处理器,它比大型机和小型机集成度更高,因而促进了集成电路技术的发展,这又进一步推动了计算机性能的提高——计算机性能以大约每年35%的速度Biblioteka Baidu高。
这一发展速度,再加上微处理器批量生产的成本优势,使得计算机产业中以微处理器为基础的部分迅速膨胀。此外,计算机市场的两个重大变化使新的计算机系统结构比以往更容易取得商业运作的成功。其一,人们实际已经不再使用汇编语言编程,这就降低了对目标代码兼容性的要求。其二,标准的、与厂商无关的操作系统(如UNIX)的出现,减小了推出新系统结构的成本和风险。
对于服务器来讲,一些不同的特点是很重要的。首先,可用性是关键。我们使用“可用性”这个词表示系统能够提供可靠的和有效的服务。这有别于“可靠性”,它仅表示系统不失败。大规模系统的一些部分不可避免的要失败;服务器的一个挑战是在面对部件失败的前提下保证系统的有效性,这通常是通过冗余来达到的。这个话题将在第7章详细讨论。
嵌入式计算机的处理能力和价格范围很广泛——从低端的少于1美元的8比特和16比特处理器,到少于10美元每秒可以执行5千万条指令的全32比特微处理器,到高端的几百美元能够为最新的视频游戏或高端网络交换机提供每秒十亿条指令计算能力的嵌入式处理器。尽管嵌入式计算机市场上处理能力的范围很广泛,但价格仍然是设计计算机时考虑的一个关键因素。性能的需求是存在的,但是主要的目标还是以最低的价格满足性能要求,而不是用高价格达到更高性能。
在很多嵌入式应用中还存在着其他两个关键的特性:最小化存储器的需要和最小化功耗的需要。在很多嵌入式应用中,存储器是作为系统成本的一部分,因此对存储器大小的优化是很重要的。有时应用程序能够装入整个处理器片上的存储器,其他时候应用程序需要装入一个片外的小存储器。无论如何,因为数据大小是受应用程序决定的,所以存储器大小的重要性就转化为代码大小的重要性。下一章我们将会看到,一些体系结构存在专门的指令集能够减少代码长度。大存储容量同样代表了更高的功耗,同时优化功耗在嵌入式应用中也是关键。尽管强调低功耗是因为使用电池的原因,但是使用更便宜封装材料(塑料和陶瓷的对比)的需求和缺少风扇的制冷都限制了功耗的整体消耗。我们将在后续章节里详细介绍这个问题。
图1.1八十年代中期之后微处理器的性能增长速度实际上要比以前快。这张图表是根据SPECint测试程序的结果绘制的计算机性能曲线,以VAX 11/780为基准。随着SPEC的发展变化,通过和SPEC的两个不同的版本(如SPEC92和SPEC95)有关的比例因子来对更新的机器性能进行评估。在八十年代中期以前,微处理器的性能提高主要是技术驱动的,平均以每年35%的速度提高。此后,微处理器的性能提高主要得益于先进的系统结构设计思想。截止到2001年,这一增长速度已经使总的性能与单纯依靠技术进步能够达到的性能之间有了十五倍的差距。浮点运算的性能提高得更快。
服务器系统的第二个关键特性是强调可扩展性。由于对服务器所提供服务的需求的增长和对其它功能的需求,服务器通常会超过其寿命。因此,对于服务器来讲,能够升级计算能力、主存储器、存储空间和I/O带宽是很关键的。
最后,服务器是为有效的吞吐量设计的。也就是说,服务器的整体性能——用每分钟处理的事务数或者每秒钟提供的页面服务来衡量——是关键。对单个请求的相应很重要,但用单位时间处理的请求数目来表示的整体的效率和成本效率对绝大多数服务器来讲是关键的。(我们将在1.5节再次谈到不同类型的计算环境下性能的核定)
尽管网络中心和交互式应用对性能的评估产生了新的挑战,桌面电脑在考虑应用和测试方面上也是最趋于合理的。我们在1.9中将会讨论,桌面电脑市场中PC部分似乎是更把时钟频率作为衡量性能的直接尺度。这种关注将导致消费者和设计者都产生错误的决定。
服务器
桌面电脑兴起的同时,服务器在提供更大规模及更可靠的文件与计算服务中的作用也日趋明显。World Wide Web的出现使加速了这种趋势,这是因为对Web服务器和基于Web的成熟服务的需求增长迅速。这些服务器取代了传统的大型机成为企业进行大规模处理的中枢。
1.2
六十年代,计算的主要形式是利用大型机,这种机器往往价值几百万美元,并且安放在专用的计算机室里,需要多个操作员来进行操作。典型的应用程序是商务数据处理和大规模的科学计算。七十年代诞生了小型机,这是一种小规模的主要针对科学实验室的机器,但是却像多用户通过自己的终端共享一台机器这个技术一样得到了广泛的使用。八十年代出现了基于微处理器的台式电脑,有个人电脑和工作站两种形式。个人拥有台式电脑取代了分时技术导致了服务器的应用,服务器是一个能够提供如可靠的长时间的文件存储、大内存和高计算能力的大规模服务的计算机。九十年代出现了Internet和WWW,第一个成功的掌上电脑(个人数字助理或PDA)和高性能数字消费品,这包括视频游戏和机顶盒等。
另外一个在嵌入式系统中很重要的趋势是把处理器核和特定应用电路相结合。通常应用程序的功能和性能是通过将定制的硬件解决方案和在能在标准嵌入式处理器核上运行的软件相结合的方法得到的,这种软件能够与专用硬件交互。实际上,嵌入式问题通常是通过以下三种方法之一解决的:
在过去短短几年间,集成电路的迅猛发展使得像x86(或是IA-32)这样的旧的少流水线型的系统结构也能够采用基于RISC的许多新的方法。如我们所看到的,现代x86处理器基本上有一个前端部件,这个部件可以读取并解码x86指令并将其映射为简单的ALU、内存访问,或者是能在RISC式流水线处理器中执行的分支操作。从90年代末开始,随时晶体管数量的猛增,解释更多更复杂的x86系统结构的费用相对于它在一个现代微型处理器中的整个晶体管数量来说,已经变的微不足道了。
正是这些变化使得在八十年代初RISC的新系统结构的推出成为可能。设计者把基于RISC的机器的注意力放在两个关键性能技术上:指令级并行的开发(从最初的流水线操作到后来的多指令流)和高速缓存的使用从最初简单的形式到后来的复杂的组织方式和优化方式。系统结构和组织的共同增强导致在性能方面以每年50%以上的速度持续提高了长达20年。图1.1显示了这种发展速度的差异。
$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.2
ATM服务费
$14
$1.2
$0.6
$0.1
图1.2通过分析停工期得到的不可用系统的损失(在直接收入损失方面),假设有三种不同级别的有效性,同时停工期是均匀分布。数据来源于Kembel[2000],由Contingency Planning Research整理和分析。
为什么可用性很关键呢?想想Yahoo!的服务器,为Cisco确保订单的服务器,或者eBay上提供拍卖的服务器。显然,这样的系统一定是1周7天,1天24小时运转的。这样服务器系统的失败比起一台桌面电脑的失败要更具有灾难性。评估停工期(downtime)的损失是很难的,这里我们可以假设停工期均匀分布,而且不发生系统空闲的时候,图1.2给出了这样的一个分析。这里我们可以看出,一个不可用系统的估计成本是很高的,图1.2仅仅给出了损失的收入,其中还不包含给顾客造成的心理上的损失。
嵌入式计算机
嵌入式计算机——放置在其他设备中的计算机,计算机的存在往往并不显而易见——是计算机市场中增长最快的部分。这些设备范围很广泛,从每天都使用的机器(如大多数微波炉、洗衣机、打印机、网络交换机,和所有包含嵌入式微处理器的汽车)到手持数字设备(如掌上电脑,手机和Smart卡)到视频游戏和数字机顶盒。尽管在一些应用中(如掌上电脑)计算机是可编程的,但是在更多的嵌入式应用中,编写程序仅仅发生于初始的应用代码载入和后期软件的升级。因此,应用通常可以针对处理器和系统量体裁衣。这样的裁减过程包括关键循环用汇编语言实现等,但这些汇编代码的开发是受开发时间和好的软件工程实践所限制的。汇编语言的使用、标准化操作系统的出现和大量兼容性的基础代码是嵌入式市场上最受关注的。像其他计算应用一样,软件花费也是嵌入式系统中很大的一部分开销。
这些变化对我们如何看待计算、计算的应用以及在新千年开始的计算机市场的巨大变化起了铺垫作用。在个人电脑诞生20余年后的今天,我们看到在计算机在外表以及使用方法上的巨大变化。在计算机使用上的变化导致了三个不同的计算机市场,它们之间以不同的应用程序、需求和计算技术作为区别。
桌面电脑
第一个,也是最大的一个市场是桌面电脑市场。桌面电脑的界定可以从低于1000美元的低端系统到超过10000美元、具有良好性能的工作站。在价格和性能的这个范围内,台式电脑市场的总体趋势是优化性价比。性能和价格的结合是这个市场的消费者最关心的,因此也是设计者最关心的。因此,桌面系统往往是最新最高性能的处理器和降价微处理器系统最先露面的场所。
不必与以往设计相兼容的自由性和微处理器技术的使用促使了计算机设计的复兴,此时的计算机设计既强调系统结构的创新,又强调充分利用技术进步的成果。正是这一复兴带来了如图1.1所示的计算机工业史无前例的飞速发展。截止到2001年,微处理器的最高性能与单纯依赖以提高集成电路设计在内的技术进步能够达到的性能相比,前者几乎是后者的十五倍。
相关文档
最新文档