12·第1章计算机概要与技术 应用程序员的基本指令集和操作系统接口合称为应用二进制接口©(ABI)。 计算机体系结构可以让计算机设计者独立地讨论功能,而不必考虑具体的硬件。例如,我们 讨论数字时钟的功能(如计时、显示时间、设置闹钟)时,可以不涉及时钟的硬件(如石英晶 体、IED显示、按钮)。计算机设计者将体系结构与体系结构的实现°分开考虑也是沿着同样的 思路:硬件的实现方式必须依照体系结构的抽象。这些概念产生了另一个重点。 重点 无论硬件还是软件都可以分成多个层次,每个较低的层次把细节对上层隐藏起来。硬件设 计者和软件设计者都用这种抽象原则来应对计算机体系的复杂性。计算机体系结构是抽象层次 中的一个关键接口—一一硬件和底层软件之间的接口。这一抽象接口使得同一软件可以由成本不 同、性能也不同的实现方法来完成。 1.3.4数据安全 目前为止,我们已经理解了如何输入数据,如何使用这些数据进行计算,以及如何显示结 果。然而,-一旦关掉电源,所有数据就丢失了,因为计算机中的内存是易失性的°。与之不同的 是,如果关掉DVD游戏机的电源,所记录的内容将不 会丢失,因为它采用的是非易失性存储器⑧。 为了区分易失性存储器与非易失性存储器,我们 将前者称为主存储器⑧(main memory或primary memo- y),将后者称为二级存储器公(secondary memory)。 DRAM自1975年起在主存储器中占主导地位,而磁 盘©自1965年起在二级存储器中占主导地位。在所有 服务器和工作站中的非易失性存储器都是磁盘。闪存⊙ 也是一种非易失性存储器,主要用于手机,目前在音 乐播放器甚至笔记本电脑中正在逐步取代磁盘。 如图1-10所示,磁盘通常由多个盘片组成,盘片 以每分钟5400~15000转的速度绕轴高速旋转。金属 盘片两面涂有磁性材料,相似的材料用在录音带或录 影带上。为了读写硬盘上的信息,一个装有小线圈的 活动臂紧靠两边盘面,称为“读写头”(read-write head)。整个驱动内部是密封的,使读写头更加靠近 盘面。 图1-10具有10张盘片的磁盘及其读写头 硬盘的直径通常为1~3.5英寸。为了满足新产品的需要,硬盘直径越来越小,工作站、服 务器、台式机、笔记本电脑、掌上电脑以及数码相机等新产品不断采用新型硬盘。一般来说,硬 曰应用二进制接口(application binary interface):用户部分的指令加上应用程序员调用的操作系统接口,定义了二 进制层次可移植的计算机的标准。 e 实现(implementation):遵循体系结构抽象的硬件。 )易失性内存(volatile memory):类似DRAM的内存,仅在加电时保存数据。 国非易失性内存(nonvolatile memory):在掉电时仍可保持数据的内存用于存储运行间的程序,例如磁盘。 )主存储器(main memor町y):也叫主要存储器。这个存储器被用来保持运行中的程序,在现代计算机中一般由 DRAM组成。 因 二级存储器((secondary memory):非易失性存储器,用来保存两次运行之间的程序和数据;在现代计算机中, PDG 一·般由磁盘组成。 田磁盘(magnetic disk):也叫硬盘(hard disk),是使用磁介质材料构成的以旋转盘片为基础的非易失性存储设备。 ①闪存(flash memory):一种非易失性半导体内存,价格和速度均低于DRAM,但比磁盘要快
第1章计算机概要与技术·13 盘的尺寸越大性能越高,而尺寸越小单位价格越低,每GB©的最佳成本不同。大多数的硬盘驱 动器都安装在计算机内部(如图1-7所示),也有一些硬盘驱动器通过外部接口连接(如USB)。 由于磁盘采用了机械部件,因而其访问速度远远低于DRAM,磁盘为5~20毫秒,而DRAM为 50~70纳秒,比磁盘快约100000倍。但是,相同容量的磁盘价格要比DRAM便宜得多,因为磁盘存储 器的制造成本低于集成电路的制造成本。在2008年,每GB的磁盘价格比DRAM便宜30~100倍。 因此,磁盘和主存有三个主要差别:磁盘是非易失性的,因为它使用磁介质;磁盘的访问速 度慢,因为它是机械装置;磁盘每GB价格相对较低,因为它容量很大,价格适当。 曾经有许多人试图发明一种新型存储技术,价格比DRAM便宜,而速度比磁盘快,但是大 多都失败了。那些挑战者从来没能在正确的时机拿出产品。在挑战者的新产品发布时,DRAM和 磁盘取得了更大的进步,而且成本相应地大幅度下降,导致挑战者的产品立即变得过时。目前闪 存是这一技术领域的一个重要的挑战者,它属于半导体存储器,像硬盘一样是非易失性的,并具 有与其相近的带宽,而时延比硬盘快100~1000倍。闪存在音乐播放器、数码相机中的应用已经 很普遍了,因为它体积小、更稳定、功耗低,尽管在2008年的时候它相对硬盘每GB价格贵6~ 10倍。与硬盘和DRAM不同的是,闪存具有写100000~1000000次后老化损坏的弱点。因此, 文件系统必须记录写操作的数目,而且具备避免存储器损坏的策略,例如避免移动经常使用的 数据。第6章将更详细地介绍闪存。 除了硬盘和闪存之外,目前还有几种正在应用的外存技术: ·光盘(包括CD、DVD)是最常见的可移动外存。蓝光(BluRay Disk,BD)是继DVD之 后的下一代光盘格式标准。 ·基于闪存的可移动存储卡,通常采用USB接口,用于文件传输。 ·磁带,只能提供慢速串行传输,一直用于磁盘备份,现在常用冗余磁盘代替。 光盘的工作原理与磁盘不同。CD通过在光盘表面烧制小坑(直径约1微米)的方法来记录 数据。在读取CD时,使用激光照射CD表面,通过检测反射光来判定该处是一个坑还是平面。 DVD采用同样的技术,只不过激光可以聚焦多层,并大大减小每个坑的面积,从而具有更大的 容量。蓝光则使用波长更短的激光进一步压缩每个坑的面积,从而增加存储的容量。 个人计算机上的光盘刻录机使用激光烧坑,速度相对较慢,刻录过程需要几分钟(CD全 片)至几十分钟(DVD全片)。因此大量生产时一般采用压制技术,每片的成本只有几美分。 可擦写的CD或者DVD使用一种特殊的记录表面,这个表面具有结晶层、反射材料;所形 成的坑不像一次性的CD或者DVD那样形成反射。为了擦写CD或者DVD,其表面被加热,然后 慢慢冷却,使用一种退火工艺使得表面的记录层恢复它的晶体结构;对于只读磁盘一被用来 发布软件、音乐、电影一其磁盘成本和记录成本都低很多。 1.3.5与其他计算机通信 我们已经介绍了如何输人、计算、显示和保存数据,但对于今天的计算机来说,还有一项不可 缺少的功能:计算机网络。如图1.4所示,处理器被连接到存储器和V0设备。通过网络,计算机 可以与其他的计算机通信,从而扩大计算能力。当今网络已经十分普遍,逐步成为了计算机系统的 主干。一台新型计算机如果没有网络接口将是十分可笑的。联网的计算机具有如下几个主要优点: ·通信:在计算机之间高速交换信息。 ·资源共享:有些/0设备可以由网络上的计算机共享,不必每台计算机都配备。 ⊙GB(gigabyte):一般是1073741824(20)字节,尽管一些通信和二级存储系统将其重新定义成1000000000 (10°)字节。相似的,根据上下文,megabyte也就是22”或者106字节
14·第1章计算机概要与技术 ·远距离访问:用户可以不必在计算机的旁边,而是在很远的地方使用计算机。 根据传输速度以及信息传输的距离,通信代价随之增长,网络的传输距离和性能是多种多 样的,最为普遍的网络类型是以太网。它的传输距离可达到1000公里,传输速率可达到10Gb- ps。近距离范围之内通信使用局域网S(local area network,LAN),跨州、跨省通信则用广域网e (wide area network,WAN)。广域网可支持万维网(World Wide Web),作为因特网的骨干网,以 光纤为基础并向通信公司租用。 在过去的25年间,因为广泛的使用和性能的大幅度提升,网络已经改变了计算的方式。在20 世纪70年代,个人很难接触到电子邮件,网络和Wb还不存在,物理上的邮件介质磁带成为传输 两地之间大容量数据的主要载体。局域网根本不存在,几个少数存在的广域网限制了容量和访问。 随着网络技术的进步,网络变得越来越便宜,速度越来越快。在二十多年以前,第一个标准 局域网的最大带宽为10Mhps,支持数十台计算机的共享工作。今天,局域网技术已能提供从 lO0Mbps~10Gbps的带宽。光通信技术已经使广域网有了类似的发展,从几百Kbps到Gbps的 带宽,支持几百台到几百万台计算机与全球网络互连。网络规模的飞速扩大,伴随着带宽的急剧 增长,使得网络技术成为最近二十多年来信息革命的中心。 最近十年来,新的联网创新变革了计算机通信的方式。广泛使用的无线技术和笔记本电脑 相结合,加上原本用来生产无线电的廉价的半导体(CMOS)技术被用来生产存储器和微处理器 使得价格大幅度降低。当前无线通信技术,IEEE标准802.11,支持从1Mbps到近100Mbps的传 输速率。无线技术和基于线路的网络相当不同,因为所有的用户在最近的区域里共享电波。 小测验 半导体DRAM和磁盘存储有很大差别。试从易失性、访问时间和价格三方面进行比较。 1.3.6处理器和存储器制造技术 处理器和存储器正在以难以置信的速度在进步,因为计算机设计者一直采用最新的电子技 术进行设计,以期在竞争中取得优势。图1-11描述了不断进步的各种新型技术,包括其出现的 时间和性价比。1.7节探讨了1975年以 年份 计算机中使用的技术 相对性能/单价 来支持计算器工业发展的技术和在可预 1951 真空管⊙ 见的未来技术的发展趋势。因为这些技 1965 品体管 35 术确定了计算机能够做什么,以及以多 1975 集成电路 900 1995 大規模集成电路 快的速度发展变化。我们相信,所有计 2400000 2005 超大规模集成电路 6200000000 算机专业人员应该熟悉集成电路的基础 知识。 图1-11 随着时间发展和技术进步,计算机 技术的性价比不断增长 晶体管⑧仅仅是一种受电流控制的开 资料来源:Computer Museum,Boston,其中2005年的数据是由 关。集成电路(IC)是由成千上万个晶 作者进行的预测。见光盘中的1.10节。 体管组成的芯片。为了描述这些晶体管从几个增长到成千上万的情形,形容词“超大规模”被 添加到术语中,简写为VLSI,即大规模集成电路⊙。 集成度的增长率是相当稳定的。图1-12表示自1977年以来DRAM容量的发展情况。近二十 ⊙局域网(local area network):-种在一定地理区域,例如在同一栋大楼内使用的传输数据的网络。 白广域网(wide area network):一种可以区域能扩展到一片大陆那么大范围的网络。 真空管(vacuum tube):一种电子元件,是晶体管的前身,因工作的电极封装在5~10厘米长的真空玻璃管中而 得名,使用电子束传输数据。 @ 晶体管(transistor):一种由电信号控制的简单开关。 大规模集成电路(very large~scale integrated circuit):由数十万到数百万晶体管组成的电路
第1章计算机概要与技术·15 多年以来,每隔3年DRAM的容量就增长到4倍,累积增长已超过16000倍。这就是集成电路领 域中著名的摩尔定律:芯片中的晶体管容量每隔18~24个月将翻一倍。它由Intel公司创办人之 一Gordon Moore于20世纪60年代提出。 1000000 100000 28M256M 512M 16M 64M 10000 4M 馆 IM 1000 256K 64K 100 16K 10+ 19761978198019821984198619881990199219941996199820002002200420062008 引入的年份 图1-12单片DRAM容量随时间的增长 纵轴单位为K,其中K为1024(20)。在近二十多年中,平均每隔三年DRAM容量扩大至4倍,即每年增 长约60%。在最近几年中,增长速度有所下降,接近每2~3年翻一番的水平。 这一增长速率几乎维持了40年,在制造技术方面需要大量难以置信的创新才能实现。1.7 节将讨论如何制造集成电路。 1.4性能 对计算机的性能评价是富有挑战性的。现代软件系统的规模及其复杂性,加上硬件设计者 采用大量先进的性能改进方法,使性能评价极为困难。 在不同的计算机中挑选合适的产品,性能是极其重要的一个因素。精确地测量和比较不同 计算机之间的性能对于购买者和设计者都很重要。销售计算机的人也需要知道这些。通常销售 人员希望你看到他们的计算机表现最好的一面,无论这一面是否能准确地反映购买者的应用需 求。因此,理解怎样才能更合理地测量性能以及测定所选择的计算机的性能限制相当重要。 本节将首先介绍性能评价的不同方法;然后分别从计算机用户和设计者的角度描述性能测 量的度量标准;最后还要分析这些度量标准之间有什么联系,并提出经典的处理器性能方程式, 我们在全书中都要使用它进行性能分析。 1.4.1性能的定义 当我们说一台计算机比另一台计算机具有更好的性能时,意味着什么?虽然这个问题看起 来很简单,但实际上却内藏玄机。我们可以先用客机问题模拟来看一下。图1-13表示若干典型 客机的型号、载客量、航程、航速等参数。如果我们要指出表中哪个客机的性能最好,那么我们 首先要对性能进行定义。如果考虑不同的性能度量,那么性能最佳的客机是不同的。我们可以看 到,巡航速度最高的是Concorde,航程最远的是DC-8-50,载客量最大的是747。 飞机型号 旅客容量 航程 巡航速度 旅客吞吐率 1英用1 :英甲/小时 (旅客数巡航速疫) 波音777 375 4630 610 228750 波音747 470 4150 610 286700 BAC/Sud Concorde 132 4000 1350 178200 PDG 道格拉斯DC-8-50 146 8720 544 79424 图1-13若干商用飞机的载客量、航程和航速 最后一列展示的是飞机运载乘客的速度、 它是容量乘以航行速度(忽略距离、起飞和降落次数)
16·第1章计算机概要与技术 即使假定用速度来定义性能,这里仍然有两种可能的定义。如果你关心点对点的到达时间, 那么可以将只搭载一名旅客的巡航速度最快的客机认为是性能最好,即Concorde。如果你关心的 是旅客吞吐率,那么747的性能是最好的。与此类似,我们可以用若干不同的方法来定义计算机 性能。 如果你在两台不同的桌面计算机上运行同一个程序,那么你可以说首先完成作业的那台计 算机更快。如果你运行的是一个数据中心,它有好几台服务器供很多用户投放作业,那你应该 说,在一天之内完成作业最多的那台计算机更快。作为个人计算机的用户,对降低响应时间感 兴趣。而数据中心感兴趣的常常是吞吐率。因此,在很多情形下,和关注吞吐率的服务器相 比,我们需要对嵌入式以及台式计算机采用不同的应用程序作为测试基准和不同的性能度量 标准。 举例吞吐率和响应时间 下面两种改进计算机系统的方式,能否增加其吞吐率或减少其响应时间? 1.将计算机中的处理器更换为更高速的型号。 2.增加多个处理器来分别处理独立的任务,如搜索万维网。 答案 一般来说,降低响应时间几乎都可以增加吞吐率。因此,方式1同时改进了响应时间和吞 吐率。 方式2不会使任务完成的更快,只会增加其吞吐率。但是,当需要处理更多的任务时,系统 可能需要令后续请求排队。在这种情况下,随着吞吐率的增加,可同时改进响应时间,因为这缩 小了排队等待时间。所以,在实际的计算机系统中,响应时间和吞吐率往往相互影响。 在讨论计算机性能时,本书前几章将主要考虑响应时间方面。为了使性能最大化,我们希望 任务的响应时间或执行时间最小化。对于某个计算机X,我们可以表达为: 性能x=1/执行时间x 如果有两台计算机X和Y,X比Y性能更好,则 性能x>性能v 1/执行时间x>1/执行时间Y 执行时间y>执行时间x 也就是说Y的执行时间比X长。 在讨论计算机设计时,经常要定量地比较两台不同计算机的性能。我们将使用“X是Y的n 倍快”的表态方式,即: 性能x/性能v=n 举例相对性能 如果计算机A运行一个程序只需要10秒,而计算机B运行同样的程序需要15秒,那么计算 机A比计算机B快多少? 答案 我们知道,A是B的n倍快,则 性能AV性能B=执行时间B/执行时间A=n 故性能比为 15/10=1.5 PDG 曰响应时间(response time):也叫执行时间(execution time),计算机完成某任务所需的总时间,包括硬盘访问、 内存访问、V0活动、操作系统开销和CPU执行时间等。 S吞吐率(throughput):也叫带宽(bandwidth),性能的另一种度量参数,表示单位时间内完成的任务数量