Chapter 1 计算机系统的概论
现代计算机
1.1 计算机的发展
- 第一台电子计算机
- 计算机的五代变化
- 中国计算机的发展
- 计算机的分类
- 计算机的发展趋势
现代计算机问世之前
计算机的发展也经历了机械式计算机、机电式计算机和萌芽期的电子计算机3个阶段。了解几个阶段的著名科学家的贡献。
- 1642年,法国数学家帕斯卡采用与钟表类似的齿轮传动装置,制造了最早的十进制加法器。
- 1678年,德国数学家莱布尼茨制造的计算机可以进行十进制乘、除运算。
- 英国数学家巴贝奇:
- 1822年制作差分机时提出一种设想,每次只完成一次算术运算,将发展为自动完成某个特定的完整运算过程。
- 1834年设计了一种通用解析机,它可以进行各种算术和逻辑运算,能解多元方程组。
- 巴贝奇的设想包含了现代计算机的一些主要思想,已经有了程序控制方式的雏形,但限于当时的技术条件而未能实现。
- 1941年德国克兰德·楚泽(Konrad Zuse,1910—1995年)制成了全自动的继电器计算机Z-3,它已经具备了二进制运算、数字存储地址的指令形式等现代计算机的特征
- 1940—1947年,在美国也相继推出了MARK-1、MARK-2、Model-1、Model-5等继电器计算机。
- 继电器的开关速度太慢,大约为百分之一秒,使当时的计算机速度受到很大限制。
事物的发展是一个曲折的、复杂的漫长过程。
第一台电子计算机
1946年 美国 ENIAC
- 采用十进制,逻辑线路复杂。
- 无存储器,只有20个10位的累加器,存储20个十进制数。
- 不完全具有“内部存储程序”功能,采用布线接板进行控制,必须通过开关和插线来安装计算程序,甚至要搭接几天,计算速度被这一工作抵消了。
冯•诺依曼思想
1945年数学家冯•诺依曼对计算机的组成结构提出了重大的改进理论:
- 计算机中采用二进制,数据和指令均采用二进制存储在存储器中,二进制的采用将大大简化机器的逻辑线路。
- 编好的程序和原始数据事先存入存储器,然后再启动计算机工作,从而大大加快运算进程。
- 进一步明确指出整个计算机的结构应由5个部分组成:运算器、控制器、存储器、输入装置和输出装置。
冯·诺依曼 计算机结构体系
计算机的五代
现代计算机的发展大体分为五个年代,主要依据三个方面进行划分:
硬件技术对计算机更新换代的影响
第一代(1946-1957年)电子管计算机
- 逻辑元件 —— 电子管
- 数据表示 —— 定点数
- 主 存 —— 磁鼓或磁芯
- 辅 存 —— 磁带
- 软 件 —— 机器语言、汇编语言
- 应 用 —— 科学计算
IBM650 小型机于1954年12月推出,是第一代计算机中销量最广的计算机
第二代(1958-1964年)晶体管计算机
- 逻辑元件 —— 晶体管
- 辅 存 —— 磁盘、磁带
- 主 存 —— 铁淦氧磁芯
- 运算方式 —— 浮点运算
- 软 件 —— 操作系统、高级语言(FORTRAN、ALGOL等)
- 应 用 —— 科学计算、数据处理、过程控制
CDC6600 大型机于1963年8月由控制数据公司(CDC)推出,当时很受各原子能机构、航空宇航、气象研究等机构的认可。安装了35万个晶体管,运算速度为1Mflops。至1969年,CDC6600以及改进型CDC7600巨型机共售出150余台。
第三代(1965-1971年)中小规模集成电路计算机
- 中小规模集成电路成为主要部件,过渡到半导体存储器。
- 体积更小,功耗更低,速度更快,一般为几十万次至几百万次每秒。减少了焊点和接插件,可靠性更高。
- 出现了分时操作系统,使得计算机在中心程序的控制协调下可以同时运行许多不同的程序。出现了标准化的程序设计语言和人机会话式语言,如BASIC,采用了结构化程序设计方法。
- 应用:科学计算、数据处理、过程控制
- 出现了小型计算机。 1965年美国的DEC(数字设备公司)推出第一台商业化集成电路为主的小型计算机PDP-8。
1964年由IBM推出的IBM 360 是最早采用集成电路的通用计算机,也是影响最大的第三代计算机。平均运算速度从每秒几千次到一百万次,它的主要特点是通用化、系列化和标准化。
第四代(1972年至今) LSI和VLSI计算机
- 以Intel公司的第一代微处理器Intel 4004为标志。
- 1972年,第一部真正的个人计算机(PC)诞生。随着“半导体”及“晶体管”的发展,世界各国也不断翻开计算机史上新的一页。
- 1981年,IBM推出个人计算机(Personal Computer,PC),主要用于家庭、办公室和学校。
- 微电子技术的发展促使计算机的体积越来越小,从桌上到膝上,再到掌上;成本越来越低,性能和可靠性越来越高
- 操作系统也不断完善,应用软件也变得丰富多彩,计算机的应用遍及社会各个领域,成为人们不可缺少的工具。
第五代计算机
- 20世纪80年代初,日本首先提出第五代计算机发展计划,引起各发达国家竞相开始研究。
- 第五代计算机的主要思想:模拟人类视神经控制系统,本身具有学习机理,能模仿人的视神经网络进行工作。它不仅能进行数值计算或处理一般的信息,主要能面向知识处理,具有形式化推理、联想、学习和解释的能力,能够帮助人们进行判断、决策、开拓未知领域和获得新的知识。需要人工智能的理论和技术,涉及通信技术、仿生学等多种科学技术。
- 目前人工智能技术在模式识别、知识处理方面已经取得很大的进步,并产生了明显的经济效益。应用大量专家知识和推理方法解决复杂问题的专家系统,已经广泛用于管理调度、辅助决策、故障诊断、教育咨询等各个方面。
- 计算机在文字、语音、图形图像的识别与理解,及机器翻译等领域的应用也取得重大进展,相关产品也已经问世。
存储器的发展
存储器技术的发展是促进计算机的一个重要因素
- 20世纪50~60年代:磁芯存储器——所有计算机存储器都是由微小的铁磁体环
- 1970年:半导体存储器——美国仙童半导体公司生产出了第一个较大容量半导体存储器
- 从1970年起,半导体存储器经历了11代:单个芯片为1KB、4KB、16KB、64KB、256KB、1MB、4MB、16MB、64MB、256MB、1GB直至更高
摩尔定律
摩尔定律:“集成电路芯片上所集成的电路的数目,每隔18个月就翻一番”。当初预测这个假定只能维持10年左右,然而芯片制造技术的进步让摩尔定律保持了40年。
集成电路:依据一片集成电路芯片上包含的逻辑门个数或元件个数分小规模集成电路SSI(逻辑门数小于10门或含元件数小于100个);中规模集成电路MSI(所含逻辑门数为10~99门或含元件数100~999个);大规模集成电路LSI(逻辑门数为100~9999门或含元件数1000~99999个);超大规模集成电路VLSI(106~107个元件或10000个以上逻辑门);巨大规模集成电路ULSI(107~109个元件;GSI集成109以上个元件)。
中央处理器的发展
- 1971年,Intel 4004 CPU
- 1978年,Intel 8086 CPU
中国计算机的发展
- 1958年,中科院计算所研制成功的小型电子管通用计算机----103机,标志着我国第一台电子计算机的诞生。
- 1965年,中科院计算所研制成功第一台大型晶体管计算机109乙,之后推出109丙机,该机在两弹试验中发挥了重要作用。
- 1974年,清华大学等单位联合设计、研制成功采用集成电路的DJS-130小型计算机,运算速度达每秒100万次。
- 1983年,国防科技大学研制成功运算速度上亿次每秒的银河-Ⅰ巨型机,这是我国高速计算机研制的一个重要里程碑
- 1985年,电子工业部计算机管理局研制成功与IBM PC兼容的长城0520 CH微型计算机。
- 1992年,国防科大研究出银河-Ⅱ通用并行巨型机,浮点运算峰值速度达4亿次每秒,为共享主存储器的四处理机向量机,其向量中央处理机的中小规模集成电路是我国自行设计的,总体上达到20世纪80年代中后期的国际先进水平。
- 1993年,国家智能计算机研究开发中心研制成功曙光一号,是国内首次以基于超大规模集成电路的通用微处理器芯片和标准UNIX操作系统开发的并行计算机。
- 1995年,曙光推出曙光1000(含36个处理机),是国内第一台具有大规模并行处理机(MPP)结构的超级计算机,浮点运算的峰值速度为25亿次每秒。曙光1000与美国Intel公司1990年推出的大规模并行机体系结构与实现技术相近,与国外的差距缩小到5年左右。
- 1997年,国防科大研制成功银河-Ⅲ百亿次并行巨型计算机系统,采用可扩展分布共享存储并行处理体系结构,由130多个处理结点组成,浮点运算峰值性能为130亿次每秒,系统综合技术达到20世纪90年代中期国际先进水平。
- 2001年,中科院计算所研制出我国第一款通用CPU(龙芯)芯片。 2002年,在具有我国自主知识产权的龙腾服务器上采用了“龙芯-1”CPU。该服务器是国内第一台完全实现自有产权的产品,在国防、安全等部门发挥了重大作用。
- 我国在超级计算机的技术上发展迅猛,国防科技大学计算机研究所研制的“银河”系列机,中科院计算技术研究所研制的“曙光”系列机,以及国家并行计算机工程技术中心研制的“神威”系列机,都先后登上全球超级计算排行榜的前列。2016年6月20日,“神威·太湖之光” 超级计算机系统在法兰克福世界超算大会上,登顶国际TOP500榜首,至2017年11月13日仍据榜首。
计算机的发展 —趋势
- 未来计算机性能向着微型化、网络化、智能化和巨型化的方向发展。
- 计算机结构和元件:电子电路的局限性将会使电子计算机的发展受到限制,人们已经开始研制不使用集成电路的计算机,例如生物计算机、光子计算机、量子计算机等,并取得了一定的进展。
计算机的分类
计算机的分类方法较多,根据处理的对象、用途和规模不同可有不同的分类方法。
1.按处理的对象划分
(1)模拟计算机
用一种连续变化的模拟量作为运算对象的计算机。
特点:运算过程是连续的,计算精度较低,电路结构复杂,抗干扰能力极差,应用范围较窄。
(2)数字计算机
参与运算的数值用非连续的数字量表示,运算过程按数字位进行,具有逻辑判断等功能。相比模拟计算机,计算精度高,运算速度快,抗干扰能力强。
2.根据计算机的用途划分
(1)通用计算机
用于解决一般问题,其适应性强,应用面广,可用于科学计算、数据处理和过程控制等领域,但其运行效率、速度和经济性依据不同的应用对象会受到不同程度的影响。
(2)专用计算机
用于解决某一特定方面的问题,配有专门开发的软件和硬件,应用于军事、自动化控制或仪器仪表等领域。专用计算机针对某类问题能显示出最有效、最快速和最经济的特性,但它的适应性较差。
3.根据计算机的规模划分
衡量计算机的规模的主要技术指标:字长、运算速度、存储容量、外部设备、输入和输出能力、配置软件丰富与否、价格高低等。
根据计算机的规模可分为巨型计算机、小巨型计算机、大型主机、小型计算机、微型计算机、图形工作站等。
(1)巨型计算机:又称超级计算机,一般用于国防尖端技术和科学计算等领域。速度最快,容量最大,体积最大,造价也最高。
(2)大型主机:包括通常所说的大、中型计算机。具有较高的运算速度和较大的存储容量,一般用于科学计算、数据处理或用作网络服务器。随着微机与网络的迅速发展,很多应用中正在被高档微型计算机所取代。
(3)小型计算机:指采用8-32颗处理器,性能和价格介于PC服务器和大型主机之间的一种高性能 64 位计算机。例如DEC公司的PDP-11系列、VAX-11系列等。一般用于工业自动控制、医疗设备中的数据采集等方面。
(4)微型计算机:是目前发展最快、应用最广泛的一种计算机。PC(Personal Computer个人计算机)是现在比较流行的微型计算机。其中央处理器采用微处理芯片,体积小轻便。
(5)图形工作站:是以个人计算环境和分布式网络环境为前提的高性能计算机,其规模介于微型机和小型机之间。通常配有高分辨率的大屏幕显示器及容量很大的内存和外部存储器,具有较强的信息处理功能和高性能的图形、图像处理功能以及联网功能。主要应用在专业的图形处理和影视创作等领域,
1.2计算机系统的硬件
概述
- 计算机的硬件是指组成计算机的所有电子器件和机电装置的总称,是构成计算机的物质基础。
- 现代计算机的硬件:运算器、控制器、存储器、输入设备和输出设备五大功能部件组成。
- 本节主要介绍计算机硬件组成结构,及其各功能部件协调工作的简单工作原理。
冯•诺依曼结构
冯•诺依曼计算机的主要特点
(1)计算机硬件系统由5个基本部分组成:运算器、控制器、存储器、输入设备和输出设备。
(2)数据和指令都采用0或1组成的二进制编码。
(3)采用存储程序的方式,事先将程序(包括指令和数据)存入存储器中,计算机在运行程序时自动地、连续地从存储器中依次取出指令并加以执行,直到程序执行完毕,不需要人工干预。
其核心思想:程序存储并按地址顺序执行。
早期的冯•诺依曼计算机---- 以运算器为中心
输入输出设备与存储器之间的数据传输都需通过运算器。结构复杂、控制复杂。
现代计算机---- 以存储器为核心,总线结构
典型的单CPU、单总线结构图:
运算器和控制器合称为中央处理单元(CPU,Central Processing Unit)。
系统连线减少,结构变得清晰,大大简化了硬件的设计。
知识拓展
组成部件
计算机硬件系统由5个基本部件组成:运算器、控制器、存储器、输入设备和输出设备。构成计算机的五大部件有相对独立的功能,在控制器的控制下协调统一地完成各自不同的工作。
存储器----组成结构
- 功能:用来存放计算机要执行的程序或者程序所处理的数据。
- 组成结构
存储体
地址译码电路
读写控制电路
输入输出线路
存储器----几个基本概念
-
存储单元:对应一个地址编号、存放一定位数二进制代码的电路集合。
-
存储字长:一个存储单元存放的二进制信息也称为一个存储字,其位数称为存储字长。
-
单元地址:存储单元的地址编号。
-
单元内容:存储单元中存放的二进制信息。
-
存储容量:存储器能够存放的二进制信息的总量称为其存储容量。
两种表示形式:
-
存储器芯片:用字数×字长表示,如1K×4位,它表示一个芯片有1K个单元,每个单元可以存放4位二进制代码;
-
系统的存储器:通常用字节数表示,如4GB、1TB。
存储容量的数量单位
- 位/比特(bit):存储器容量的最小表示单位,二进制编码序列中的一个0或1就是一个比特位。
- 字节(B、Byte):也是计算机中最常用、最基本单位。一个字节等于8个比特,即1 Byte=8bit。
- 其他数量单位
KB(Kilo Byte)、MB(Mega Byte)、GB(Giga Byte)、TB(Tera Byte)、PB(Peta Byte)、EB(Exa Byte)、ZB(Zetta Byte)和YB(Yatta Byte)等。
数量关系:1KB= 1024B,1 MB=1024KB,1GB= 1024MB,…,它们之间存在1024倍的数量级关系。
事实上,1K=2(10)» 10(3),1M=2(20)» 10(6),1G=2(30)» 10(9)等等 。
存储器----内存与外存
- 内存:CPU能够直接访问的存储器。内存的存取速度较高,一般由半导体器件构成。其位成本较高,容量有限。
- 外存:属于外部设备,它不能被CPU直接访问,其内容需要导入到内存才能被CPU访问。
- 通常外存用来存放永久保存的、大量的程序或数据;内存存放一些临时的或少量的数据和程序。
注意:
目前内存是由半导体存储器构成,但不能说半导体存储器就是内存。
- 为了解决速度、容量、成本之间的矛盾,计算机系统中通常采用主存、辅存和高速缓存的三级结构。三者之间协调工作的原理,详见第4章介绍。
运算器
- 基本功能:计算机系统中进行数据加工和处理的部件,完成各种算术和逻辑运算。
- 基本组成:核心部件是算术逻辑运算单元ALU(Arithmetic Logic Unit),另外还包含累加器和若干个寄存器。基本组成结构如下图所示。
控制器
控制器是整个计算机的指挥中心,它发布各种操作命令控制计算机的各功能部件有条不紊地进行工作。
(1)控制器的功能
(2)程序和指令
程序是为计算机解决某一问题或完成某一任务,由一组特定编程语句构成的有序集合。
编程语言分高级语言、汇编语言和机器语言三种。
指令是计算机硬件能够直接执行,完成一些基本操作的编程语句,它属于机器语言。
指令编码中包含两部分信息:操作码表明指令进行何种操作,地址码部分表明指令操作的数据位置。指令的一般格式如下:
例如:假设某计算机只有8条指令,其操作码可用3位二进制编码来定义,如表1-1所示。
101 1000表示从1000单元取数送入累加器;
001 1000表示从1000单元取数和累加器相加,结果存入累加器。
不同的计算机的指令的格式及编码规则会有区别,详细内容参考第5章指令系统。
各部件协调工作过程
输入输出设备及适配器
- 输入设备:把人们熟悉的某种形式的信息转换为计算机内部能够识别的二进制信息形式。理想的计算机输入设备应该“会看”、“会听”,即能够把人们用文字或语言所表达的问题,直接送入计算机内部处理。目前常用的输入设备有键盘、鼠标、扫描仪、光笔、摄像头、语音输入装置等。
- 输出设备:将计算机处理的结果转变为人或其他设备能接收或识别的信息形式。理想的输出设备应该“会写”、“能讲”。目前常用的显示器、打印机、绘图仪。 输入输出设备统称外围设备,简称外设。
- 适配器:保证外围设备与主机之间可靠地进行信息的交流。不同类型的外设有不同的适配器,如显卡是显示器的适配器。
总线
- 总线是连接计算机系统各部件并进行数据传送的公共通道,是构成计算机系统的骨架。
- 传统总线,按其传送的信号的作用不同分为地址总线 (AB,Address Bus)、数据总线 (DB,Data Bus)、控制总线 (CB,Control Bus) 三种。
计算机系统中有多种总线,关于总线相关概念和技术的内容在第8章详细介绍。
几个常用术语
数据流和指令流
- 计算机中存储或流动的信息既有指令又有数据,从形式上看,它们都是二进制数码,控制器是如何区分哪些表示的是指令哪些是数据呢?
- 在取指令阶段,从内存中读出的信息流是指令流,它流向控制器;
- 在执行指令阶段,从内存中读出或写入内存的信息流是数据流,它由内存流向运算器,或者由运算器流向内存。
1.3 计算机系统的软件
概述
软件泛指在计算机硬件上运行的各类程序、数据文件及相关的文档资料。
程序是计算机可以执行的,而文档不能执行。程序是计算机软件的主体,所以一般说到软件主要是指程序。
软件系统指一台计算机中全部程序的统称。
软件的作用是扩大计算机系统的功能,提高计算机系统的效率,为计算机运行服务提供技术支持。
按照软件的功能不同,人们把计算机的软件划分为系统软件、应用软件两大类。
系统软件是为整个计算机系统配置的、不依赖于特定应用领域的一些通用软件,用来管理计算机的硬件系统或软件资源。只有在系统软件的管理下,计算机的各硬件部分才能协调一致地工作。系统软件还为应用软件提供运行环境,离开系统软件,应用软件同样也不能运行。
系统软件也有很多种,主要包括操作系统、语言处理程序和数据库管理系统三大类。
应用软件是为解决某个特定应用领域的实际问题而编制的程序。
应用软件从其服务对象的角度,又可分为专用应用软件和通用应用软件两类。
系统软件
1.操作系统
操作系统(Operating System,OS)是直接运行在“裸机”上的最基本的必备的系统软件。
计算机系统各种资源(包括硬件资源和软件资源)的管理者、控制者、调度者和监督者,合理地组织计算机的工作流程,协调计算机各部件之间、系统和用户之间的关系。其目标是提高各类资源的利用率,方便用户使用计算机系统,为其他软件的开发提供必要的基础和软件接口。
2.语言处理程序
计算机程序设计的语言可分为三大类:机器语言、汇编语言和高级语言。
机器语言是计算机的硬件可以直接识别并执行的二进制编码语言,但难以记忆和使用。
将汇编语言源程序翻译成机器语言目标程序的称作汇编程序。
编译程序则是将高级语言程序翻译成机器语言目标程序的软件。
无论是汇编程序还是编译程序,它们都是用于处理软件语言的程序,统称为语言处理程序。
3.数据库管理系统
数据库应用系统主要由数据库、数据库管理系统以及相应的应用程序组成。
数据管理系统,简称DBMS(Database Managment System),是为数据库的建立、使用和维护而配置的软件。它建立在操作系统的基础之上,对数据库进行统一的管理和控制。利用它可以方便地建立、删除、维护数据库,对库中数据进行各种操作。它是数据库应用系统开发人员与数据库之间联系的桥梁。它是一个平台,是一种系统软件。
常用的数据库管理软件有Oracle、Sybase、MySQL、Informix
应用软件
应用软件是为解决某个特定应用领域的实际问题而编制的程序。
如:解决科学与工程计算问题的科学计算软件,实现生产过程自动化的控制软件,用于企业财务、人事管理的管理软件,具有人工智能的专家系统等等。
应用软件从其服务对象的角度,又可分为专用应用软件和通用应用软件两类。
1.专用的应用软件
专用的应用软件是按照用户的特定需求,用于解决特定问题而开发的软件。其应用面较窄,往往只限于特定的部门及其下属单位使用。这种软件的运行效率较高,开发成本较高。如前面提到的某企业的人事管理软件,或某特定的生产过程的控制软件等。
2.通用的应用软件
通用的应用软件是指计算机的应用过程中,迅速推广使用并不断更新的一些通用工具软件。如现在计算机中普遍都安装的文字处理软件Word、电子表格处理软件Excel等许多办公工具软件。
1.4 计算机系统的多层次结构
计算机系统以硬件为基础,通过配置软件扩充功能,形成了一个十分复杂的有机系统。
采用层次结构的观点和方法去描述计算机系统的组成与功能,有利于正确理解计算机系统的工作过程,明确软件、硬件在计算机系统中的地位和作用,控制计算机系统的复杂性。
计算机系统分层的方法有很多种,常用的层次结构模型:从系统内部的有机组成和程序设计语言功能的角度划分的。
从计算机系统组成角度划分层次结构
自上而下看反映了应用计算机求解问题的过程
从下向上看,直观展示了构成一个计算机系统时的的逐级生成过程。
从语言功能角度划分层次结构
如果将计算机功能抽象为“能执行某种程序设计语言编写的程序”的机器,可以按语言功能划分计算机层次结构。
实际机器:只能执行机器语言的物理实体,是计算机系统的硬件。
虚拟机(Virtual Machine):一种特殊的软件,它在计算机平台和终端用户之间创建一种环境,终端用户可以基于这个软件所创建的环境来操作自己的软件。使用某种语言编程的程序员,看到的就是可以执行这种语言的机器,即具有这种语言功能的虚拟机。
多层次结构小结:
计算机系统虽然复杂,但具有明显的层次性。
采用分层的观点来分析或设计计算机时,可以根据需要,忽略一些无关的细节,针对相应层次去观察、分析计算机的组成、性能和工作机理,或进行系统各层面的设计,使得复杂的问题变得更容易解决。
比如,有人专门致力于微处理器的研制工作,有人致力于操作系统的开发,也有人专门进行编译程序的开发等等。
本书重点讨论的是第1、第2层中计算机硬件组成的基本原理和实现方法。
硬件和软件的逻辑等价性:
计算机系统以硬件为基础,通过配置软件扩充其功能。在计算机系统设计时,硬件只完成最基本的功能,复杂的功能通过软件实现。
早期的计算机,硬件和软件之间的界限十分清楚。随着计算机技术的发展,软件、硬件之间的界限变得越来越模糊。许多功能既可以由硬件实现,也可以在硬件支持下靠软件实现。例如,乘法运算,可由硬件乘法器实现,也可以由乘法子程序实现。
- 随着微电子技术的发展,集成芯片上制作复杂逻辑电路的成本越来越低,原来依靠软件实现的功能转化为大规模、超大规模的集成电路直接实现,出现了软件硬化,这样系统将具有更高的处理速度和更强的功能。软件硬化成为一种趋势。
- 从系统设计者的角度来说,需要确定哪些功能由硬件实现,哪些功能由软件实现。对用户来说,更关心的是系统具有哪些功能。这些功能是硬件还是软件实现,对用户来说,在逻辑上是等价的。
- 存储程序工作方式
- 程序执行过程
- 高级语言程序与机器语言程序的转换
- 预处理、编译、汇编、链接
- 程序和指令的执行过程
- 取指令、分析指令、执行指令
1.5 计算机的主要性能指标
人们在选择或设计一台计算机时,要知道从哪些方面衡量一台计算机的性能。衡量计算机性能的指标有很多种,而且不同用途的计算机其侧重点也有所不同。
这里主要从速度、容量两方面简单介绍几种常用的性能指标,包括主频、机器字长、存储容量、存储器带宽、运算速度等。
1.主频
- CPU的工作节拍是由主时钟信号控制的,这个时钟信号的频率就是CPU的主频。
- 主频或时钟周期(主频的倒数)在很大程度上影响着计算机的工作速度。在一定程度上,主频越高,CPU的工作速度越高。
2.机器字长
- 指CPU的运算器一次最多能直接处理的二进制信息的位数
- 位数越多,运算精度越高。它由CPU内部的寄存器、加法器以及总线的位数决定,因此也直接影响着硬件的代价。
3.存储器带宽
单位时间内从存储器读出的二进制位数的多少,称为存储器带宽。它也是影响计算机工作速度的一个重要指标。
4.运算速度
计算机的运算速度与很多因素有关,如机器的主频、执行何种操作、主存的存取速度等都有关系。衡量计算机运算速度不能单从某一方面来定,必须综合考虑每条指令的执行时间以及它们在全部操作中所占的比例。目前,一般用以下三个参数描述:CPI、MIPS、FLOPS
4.运算速度
(1)CPI(Cycle Per Instruction)指的是执行一条指令的平均时钟周期数。计算公式为:
(2)MIPS(Million Instruction Per Second) 指平均每秒执行定点指令的百万条数。对于一个给定的程序,算式为:
(3)FLOPS(Floating-point Operation Per Second):表示每秒执行浮点操作的次数,算式为:
4.运算速度
MPIS在一定程度上可以反应机器的运算速度。但它过于依赖指令集,用来比较指令集不同的机器性能不准确。
FLOPS取决于机器和程序两方面,只能用来衡量机器浮点操作的性能,不能体现机器的整体性能。不过,FLOPS是基于操作而不是基于指令,用来比较两种不同的机器相对来说好些。当然,浮点操作的类型不同,运算时间相差会很大,如浮点加远远快于浮点除
与计算机运算速度相关的参数还有3个:
- 吞吐量:一台计算机在某一时间间隔内能够处理的信息量。
- 响应时间:从输入有效到系统产生响应之间间隔的时间。
- CPU执行时间:CPU执行一段程序所占用的时间。 CPU执行时间=程序时钟周期数*时钟周期
5.存储容量
计算机的存储系统包含主存和外存以及高速缓存。相对于主存,高速缓存的容量很小。外存不能被CPU直接访问,需要执行的程序与处理的数据要调入主存才能被CPU访问。计算机处理能力的大小在很大程度上与主存有关。因此一般来说,计算机存储容量指的是主存容量的大小。
存储容量:表示存储器中可以存放的所有二进制位的总数
关于存储器的容量前面已经介绍,这里不再赘述。
计算机的体系结构、组成与实现 【知识拓展】
计算机体系结构(Computer Architecture)
- 主要研究硬件和软件功能的划分,确定硬件和软件的界面,即哪些功能应划分给硬件子系统完成,哪些功能应划分到软件子系统中完成。更多说的是计算机的外特性,是硬件子系统的结构概念及其功能特性。
- 对于不同的计算机系统,从机器语言或汇编语言程序员的角度看,具有不同的属性。但高级语言程序员看,它们几乎没什么区别,具有相同的属性。因此,计算机系统是机器语言或者汇编语言的程序设计人员所见到的计算机系统的属性。
计算机组成(Computer Organization)
- 计算机组成是依据体系结构所确定的硬件子系统的概念结构和功能特性,研究硬件子系统各组成部件的内部结构和相互联系,实现机器指令级的各种功能和特性,是计算机体系结构的逻辑实现。
- 例如:AMD Opteron 64与Intel Pentium 4的指令系统相同,即两者的系统结构相同,但内部组成不同,流水线和Cache结构完全不同。
计算机实现(Computer Implementation)
- 计算机实现是指计算机组成的物理实现。它包括处理器、主存储器等部件的物理结构,器件的集成度和速度,器件、模块、插件、底板的划分与连接,专用器件的设计,电源、冷却、装配等技术及有关的制造技术和工艺等。
三者之间的关系
系统结构的不同使得采用的组成技术产生差异,计算机组成也会影响系统结构。计算机实现是计算机系统结构和组成的基础,其技术的发展,特别是器件技术的发展,促进了组成和结构的发展。计算机系统结构、组成和实现之间的关系如图1-10所示。
随着计算机技术的迅猛发展,三者之间的关系将变得越来越模糊。
本章小结
- 计算机系统以硬件为基础,通过配置软件扩充其功能。软硬件在逻辑上是等价的。计算机设计时,软件和硬件功能的分配要综合考虑成本、速度、可靠性等多种因素。
- 采用分层的观点来分析或设计计算机,可以根据需要,忽略一些无关的细节,针对相应层次去观察、分析计算机的组成、性能和工作机理,或进行系统各层面的设计,使得复杂的问题变得更容易解决。
- 以计算机系统组成的角度划分层次,有利于认识计算机系统的构成过程;以语言的角度划分层次,有助于理解各种语言的实质和实现途径。
发布评论请先 登录
相关推荐
评论