配色: 字号:
计算机组成概述
2022-09-10 | 阅:  转:  |  分享 
  
第1章计算机概述本章主要介绍计算机的产生与发展、计算机的类型与特点、计算机的应用与发展趋势、计算机硬软件系统的组成、各组成部件的作用、
指令与程序的概念、计算机系统的层次结构、计算机系统的组成与实现、计算机系统结构的分类以及计算机系统性能分析。重点是计算机的类型与
特点、计算机中各组成部件的作用、计算机系统的层次结构、计算机系统的组成与实现、计算机系统结构的分类以及计算机系统性能分析。1.1
计算机的产生与发展1.2计算机的类型、特点、性能指标与应用1.3计算机系统概述1.4计算机系统结构概述 1.1
计算机的产生与发展计算机的产生与发展伴随着人类社会发展的全过程,是人类劳动的成果、智慧的结晶。1.1.1计算机的产生在历史
长河中,人类发明和创造了许多算法与计算工具,例如我国商朝时期的算珠、春秋战国时期的算表、唐宋时期的算盘,欧洲16世纪出现的计算圆图
、对数计算尺等。到了1642年,法国物理学家帕斯卡(BlaisePascal)发明了齿轮式加法器;以后,德国数学家莱布尼兹(G
.W.VonLeibniz)设计制造出能进行四则运算的机械式计算器。1822年英国剑桥大学教授查尔斯.巴贝奇(Charles
Babbage)提出了“自动计算机”的概念,并于1834年设计成一台分析机,由输入装置、处理装置、存储装置、控制装置和输出装置组成
。1847年英国数学家乔治·布尔(GeorgeBoole)创立了逻辑代数。20世纪初,IBM公司涉足现代计算机的研究,1944
年由美国哈佛大学霍华德.艾肯(HonwardAiken)设计,IBM公司制造的MarkI计算机投入运行。这台计算机用继电器作为
开关元件,按巴贝奇的设计思想使用十进制齿轮组作为存储器,用穿孔纸带进行程序的输入与控制,有了现代电子数字计算机的雏形。直到194
6年1月,美国宾夕法尼亚大学的约翰.莫克利(JohnMauchly)和普雷斯普尔.埃克特(J.PresperEckert)主持
研制成世界上第一台电子数字计算机“埃尼阿克(ENIAC,Electronicnumericalintegratorandc
alculator)”。这台计算机使用了18800多个电子管、1500多个继电器,占地170m2,重30t,耗电150
kW,内存储器容量17KB,字长12位,每秒可进行5000次加法运算。由于存储容量太小,没有完全实现“存储程序”的思想。195
1年在冯·诺依曼(JohnvonNeumann)的主持下,研制成EDVAC(ElectronicDiscreteVaria
bleAutomaticComputer)计算机,完全实现了“存储程序”的思想,故称为冯·诺依曼计算机。1.1.2计算机
的发展自从第一台电子计算机诞生以来,计算机得到迅速的发展,它伴随着电子技术的发展经历了四个时期,也称为四代。现在,又在向第五代智
能化计算机的方向发展。1.第一代计算机第一代主要指1946~1958年,基本电子器件是电子管,主存储器使用的是延迟线,外存储
器有穿孔纸带、穿孔卡片和磁鼓,运算速度为每秒几千到几万次,编程语言是最基本的机器语言和汇编语言,主要用于科学计算。其存储容量小,
体积大,功耗大,成本高。到了后期,开始使用磁芯存储器,而且出现了高级语言。2.第二代计算机主要指1959~1964年,基本器
件是晶体管,主存使用的是磁芯存储器,外存储器有穿孔纸带、磁鼓、磁盘和磁带等。编程语言有汇编语言和高级语言,比如FORTRAN、CO
BOL、ALGOL等。而且出现了操作系统,存储容量大幅度增加,运算速度达到每秒100万次以上。体积和功耗减小,可靠性提高,主要用于
科学计算和自动控制。3.第三代计算机主要指1964~1971年,基本器件是集成电路。主存仍以磁芯存储器为主,容量增大,外存储
器使用磁盘和磁带。操作系统进一步发展,高级语言种类增加,功能增强。体积进一步减小,功耗降低,可靠性进一步提高,运算速度达到每秒10
00万次以上。产品向标准化、模块化和系列化的方向发展,与通信技术结合,出现了计算机网络。除用于科学计算、工业自动控制之外,开始用于
数据信息处理和事务管理。4.第四代计算机第四代主要指1971年到现在,基本电子器件是大规模或超大规模集成电路,主存储器使用半
导体存储器,容量大幅度增加,外存储器有磁盘、磁带和光盘。产品进一步向标准化、模块化、系列化和多元化发展,运算速度达到每秒几亿至千万
亿次以上。在结构上产生了由大量微处理器构成的多处理机系统。尤其是上世纪80年代以来,一方面各种大规模超大规模计算机层出不穷;另一方
面微型计算机迅速发展,且与多媒体技术结合,产生了大量高性能的多媒体计算机。在计算机网络方面,进一步与通信技术相结合,产生了全球In
ternet。5.第五代计算机在第四代计算机产生数年后,人们就期待第五代计算机的诞生。但是,这一时期人们认为不能再单纯用电子
器件来衡量计算机的发展,而在性能上应有大的突破,即模拟人的大脑,具有逻辑思维、逻辑推理、自学习和知识重构等功能,也就是智能化计算机
。1965年,L.A.Zadeh模糊理论的创立,为智能化计算机的研究奠定了理论基础,随后出现了专家系统和人工智能的研究。到了上一
世纪80年代,相继研制成模糊控制器、模糊存储器和模糊计算机,可模拟人脑进行逻辑思维和推理,初步具有自学习和知识重构的能力。自上世纪
90年代以后,各国学者开始了真实(现实)世界计算(Realwordcomputing)的研究。这些,都在催生第五代计算机的诞生
。又如机器人的研究,已经在很多方面体现了计算机在智能化方面的发展。6.非冯·诺依曼计算机的发展随着计算机技术和应用领域的拓展,
冯·诺依曼型计算机已经不能满足需要,所以人们又提出了非冯·诺依曼计算机的设想。从上世纪60年代开始沿着两个方向发展。一是研究新的程
序设计语言,即“非冯·诺依曼”语言。比如,采用数据流驱动的数据流计算机、以需求驱动的归约机等。二是采用新型元器件,取代以电子传送信
息的方式。比如,光子计算机、量子计算机和生物计算机等。1.2计算机的类型、特点、性能指标与应用1.2.1计算机的类型与特
点1.计算机的类型目前,人们所说的计算机主要是指电子数字计算机。有多种分类方式,比如按用途,可分为专用机和通用机;按系统结构
、规模和数据处理能力,可分为巨型机、大型机、中型机、小型机、微型机、单片机和嵌入式芯片等。巨型机主要指计算机的规模大,综合处理能
力强。具体表现为字长长,存储器容量大,指令功能全,数据处理能力强,运算速度快。大型机次之,中、小型机再次之。微型计算机体积小、携
带方便,主要有台式计算机、笔记本电脑等。单片机是将构成计算机的主要部件制作在一块集成电路芯片中,亦属微型计算机。随着微电子技术
的发展,巨型机、大、中、小型计算机之间的界线越来越模糊,今天的大型机明天可能变成中、小型机,今天的微型机明天可能由一块单片机代替。
除上述各种类型之外,近期的便携机发展很快,比如各种嵌入式芯片、掌上电脑和手机电脑等。除了通用计算机之外,还有各种专用机。常见的有
各种工业控制机、语言翻译机、收款机、游戏机以及数字信号处理机DSP等。2.主要特点电子数字计算机不仅可以高速地进行数值计算与信
息处理,而且有超强的记忆功能和逻辑判断能力。主要特点概括如下:(1)由电子器件构成,采用二进制计数方式。按物理结构,仅能进行一
般的算术逻辑运算;配以相应的程序,可进行复杂的数值计算、工程设计、图形图像及声音等多种媒体信息的处理;配以适当的执行机构,可实现复
杂过程的自动控制。因此,现代计算机是一种既包括硬件,又包括软件的联合体,即计算机系统。(2)按照“存储程序”的方式进行工作。它
要将程序和待处理的数据事先存入存储器,然后执行程序,或对数据进行处理,全部工作是一个执行程序的过程。(3)具有高速运算与信息处
理能力。目前,现代大型计算机的运算速度可在千万亿次/秒以上。(4)具有超强的信息存储能力。现代计算机一般都配有大容量的存储器,
甚至海量存储器。例如我国研制的天河二号计算机,峰值性能为1.003TFLOPS,它运算1小时,相当于13亿人同时用计算器计算一
千年。它的内存总容量为1.408PB,相当于存储每册10万字的图书600亿册。1.2.2计算机的主要性能指标计算机的主要性能指
标有字长、运算速度、主时钟频率以及存储器容量等。1.字长字长是计算机一次直接处理二进制数据的位数,一般与运算器的位数一致。就
一般而言,字长越长,精度越高。一般字长有8位、16位、32位、64位和128位等。2.运算速度运算速度是指计算机每秒执行基本
指令的条数。表示单位有次/秒、百万次/秒、亿次/秒、万亿次/秒、千万亿次/秒等。对于浮点数运算,表示每秒执行浮点运算指令的条数。一
般一次浮点运算相当于3条定点运算指令的执行过程。3.主频主频是指计算机的主时钟频率,它在很大程度上反映了计算机的运算速度,因
此人们也常以主频来衡量计算机的速度。主频的单位是赫兹(Hz),实际使用时常以MHz、GHz表示,比如至强XeonL5420/2.
5和PentiumIV/3.2分别表示主时钟频率为2.5GHz和3.2GHz。4.存储器容量存储器包括内存储器和外存储器,
其容量表示存储二进制数据的能力,以字节为单位。常用千字节(Kilobyte,KB)、兆字节(Megabyte,MB)、千兆字节(K
MB)或吉字节(Gigabyte,GB)、太字节(Terabyte,TG)和拍字节(Petabyte,PG)来表示。1KB(Ki
lobyte)=1024B1MB(Megabyte)=1024KB1GB(Gigabyte)=1024MB1TB(Tera
byte)=1024GB1PB(Petabyte)=1024TB除此之外,在购置计算机时常考虑的性能指标还有功耗、无故障率、电源电
压以及软件兼容性等。1.2.3计算机的应用与发展趋势1.计算机的应用现代社会中,计算机的应用非常广泛,可以说无处不有,无
处不用。概括起来有以下几个方面。(1)科学计算科学计算是当初计算机设计制造者的初衷,如今仍是计算机应用的一个重要方面。比如空间
技术、机械制造、遗传工程、大型建筑物的设计、天气预报、石油地质勘探以及大系统工程的论证等,都需要大量精确的计算。这些计算,仍需要计
算机来完成。(2)信息处理与办公自动化在人们的社会生活中有大量数据信息需要处理。比如财务管理、人事档案管理、银行业务、证券市
场、民航铁路运输、国民经济中的统计、规划及预算等,都要使用计算机进行计算,通过计算机网络进行信息传送。在当前,表现为大数据处理。计
算机及其网络是必备的技术与工具。(3)自动控制由于计算机具有很强的数值与逻辑运算能力,很适合于自动控制中的信号采集、分析与处
理。因此在现代自动控制中,计算机是其控制中枢。比如自动化生产线、电力传输、无人工厂、航天飞行器、火箭、导弹等,都是依靠计算机进行控
制和管理的。(4)Internet与邮电通信计算机与通信技术相结合,既促进了计算机网络化的实现,又推动了邮电通信事业的发展
。如今,Internet遍及全球,可进行全球化的信息查询、电子邮件与信函传送、票据兑付、银行存贷款、文化娱乐以及各种电子商务等活动
。如今,对Internet的操作已经成为一般政府、企业、甚至每一个人日常生活的重要组成部分。(5)计算机辅助设计、辅助制造与辅
助测试计算机辅助设计(CAD)、辅助制造(CAM)和计算机辅助测试(CAT)是利用计算机进行工程设计、模拟制造和测试。在计算机辅
助设计中,设计人员只要输入必要的参数,计算机通过计算,确定设计方案,绘制全部图纸,包括零件图、结构图、装配图以及工艺流程图等。还可
通过辅助制造验证设计的正确性。在对超大、超小和超远的物体测量中,要由计算机进行信号的采集、分析与处理。例如太空探测、地下资源的勘
探以及人类基因图谱绘制等,都是依靠计算机进行。(6)计算机辅助教学与远程教育计算机辅助教学(CAI)是利用计算机把各种用文字
难以表达的知识通过视图演示出来,做到图、文、声并茂,因此生动形象,易于理解。比如医学中的人体解剖、血液循环系统,可通过计算机进行模
拟;驾驶员、飞行员可通过计算机进行模拟训练。使用计算机辅助教学还可以使教学规范化、科学化,把教学与管理结合起来。通过计算机网络传送
教学内容,实施管理,可实现跨地区的远程教育。比如当前许多著名大学推出了MOOC课程,以实现教育资源全球共享。(7)人工智能与机
器人人工智能是利用计算机模拟人类大脑神经系统的逻辑思维、逻辑推理,使计算机通过学习进行知识积累、知识重构和自我完善。如今的专家系
统、人工智能、神经网络技术、真实(现实)世界计算的研究,就是这一方面的代表。目前,模式识别与逻辑推理已经成为现代计算机的重要功能,
已广泛用于指纹相貌识别、案情侦查和病情诊断等方面。机器人是人工智能研究的另一个方面,它运用多种学科领域的综合技术,模拟人的思维方式
与动作,近年来发展很快,可用于工业自动化生产、海洋作业、星球探测、安全防护、医院和家庭护理等方面。(9)数字信号处理与智能仪器
仪表在研究数字信号处理的过程中产生的DSP(Digitalsignalprocessor)处理器,已成为多媒体信息处理与通信
中的主流“嵌入式”技术,与测量技术、模式识别技术相结合,可构成智能化的仪器仪表。再配以通信接口,可与控制网络连接。目前,大量家用电
器、影像设备、电子游戏机都引入了DSP微处理器或单片机,实现了人们常说的“电脑控制”。(10)云计算与大数据处理云计算和大数据
处理是近年来随着计算机网络和信息处理技术的发展而形成的计算方式和数据处理技术。它通过互联网共享网络上的软硬件资源进行计算,对互联网
上出现的量和类别特别庞杂的数据集进行分析和处理。除了以上几个主要方面之外,计算机还广泛用于交通运输、医疗卫生、农业生产、国防、公
安、保卫以及气象等方面。2.计算机的发展趋势计算机发展很快,但是从它的体系结构与主要性能来看,其发展趋势仍可概括为巨型化、微
型化、网络化和智能化。1)巨型化为了满足尖端科学计算、大型网络的控制与管理、大量数据信息处理以及大型数据库的管理,巨型机仍然
是计算机发展的一个重要的方面。主要技术是发展阵列机、流水线与并行处理技术、多处理机系统;同时,研究新算法,建立新的系统结构。比如我
国新近研究成功的天河一号和天河二号超级计算机。前者配置6144个通用主处理器、5120个加速协处理器,内存总容量98TB,峰值性
能1206万亿次/秒;后者配置32000个通用主处理器、48000个加速协处理器,内存总容量1.408PB,峰值性能为1.003
TFLOPS。2)微型化随着微电子技术的发展,微型计算机的体积进一步缩小,结构进一步紧凑,功能进一步增强。比如大量涌现的个人
台式计算机、专用工业控制机、笔记本电脑、单片机装置、掌上电脑以及各式各样的嵌入式技术与芯片等。3)网络化网络化无可争议已经成
为计算机发展的一个重要趋势。各种局域网、广域网以及全球的Internet,已经融入到我们的日常生活中,在科学研究、通信、电子政务、
电子商务、远程教育以及安全保卫中发挥着重要的作用。4)智能化是用计算机模拟人脑的逻辑思维、逻辑推理,主要包括三个方面,即知识
工程、模式识别和机器人学,其核心是知识工程。目前发展很快,也是第五代计算机研究的目标。5)云计算与大数据处理云计算和大数据
处理是计算机应用的一个重要方面,同时也是当前计算机及其计算机网络发展的一个重要趋势。1.3计算机系统概述随着科学技术的发展与
计算机知识的普及,计算机的概念对于几乎所有的人来说,已经不再陌生。而对于它的组成和工作原理,可能多数人还不了解。因此,有必要作以概
述。一个完整的计算机系统,其结构如图1.1所示,可分为硬件和软件两大系统。硬件系统建立了计算机的物质基础,软件系统使硬件具有生命
力。因此硬件和软件是一个有机的整体。而就一般而言,在相同硬件系统下软件配置越齐全,计算机系统的功能就越强。1.3.1硬件系统目
前,人们使用的电子数字计算机都是按照冯.诺依曼“存储程序”的思想设计和制造的。它的全部工作就是存储程序和执行程序。它的硬件(Har
dware)系统,是指构成计算机的物理实体部件,主要包括五大组成部分,即运算器、控制器、存储器、输入设备和输出设备,结构框图如图1
.2所示。将这些部件按照一定的方式连接起来,就构成计算机的硬件系统。其优劣,直接决定计算机的性能。1.运算器运算器是用来对数据
进行运算和处理的部件,主要由加法器构成。此外,还有存放数据的寄存器、存放运算结果特征的状态标志寄存器以及硬件电路。数据寄存器一般有
多个,其中一个用来存放运算结果或中间结果,称为累加器。状态标志寄存器用来存放每次运算后结果的特征标志,比如最高位有进位、结果为0、
结果为负以及溢出等。运算器的功能主要是进行算术和逻辑运算,因此也称为算术逻辑部件(Aarithmeticlogicunit,A
LU)。其中算术运算有加、减、乘、除、加1、减1等;逻辑运算有“与”、“或”、“非”和“异或”等。2.控制器控制器是依据指令的
功能控制计算机各部件有条不紊地工作的部件,控制程序执行的全过程。所谓指令,就是指示计算机进行某一工作的命令;所谓程序,是为完成某一
任务或进行某项工作的若干条指令的有序集合。控制器就是把各条指令逐一取出并执行,主要由程序计数器PC、指令寄存器、译码器和时序控制电
路组成。运算器、控制器合称为中央处理器(Centralprocessorcnit,CPU)。3.存储器存储器(Memor
y)是在计算机工作时用来存储程序和数据的部件,由于设置在计算机内部,因此也称为内存储器,简称内存或者主存,主要由存储体、地址寄存器
、地址译码器、数据输入输出缓冲器以及读写控制电路组成。基本功能是按地址存取数据,其中存入数据称为“写入”,取出数据称为“读出”。存
储体是由一个个按序排列的存储单元组成,每个单元各有序号,称为地址,CPU按地址读/写。在结构上,各存储单元常以阵列的方式排列,因此
也称为存储阵列。每个存储单元可存放多位二进制数,每一位称为一个基本单元(bit)。目前,常以8位二进制数为一个单元,称为字节(B
yte)。所有字节单元的总量称为存储器的容量。当某数据的位数大于8时,将占据多个字节单元。从使用的角度来看,内存储器又分为随机存
取存储器和只读存储器。所谓随机存取存储器是在计算机运行时,其中的数据可以随机读出或者写入。只读存储器是其中的数据在计算机运行之前已
经写入,计算机运行时只能读出,而不能写入。在计算机中,存储器、中央处理器(CPU)合称为主机。除了内存储器之外,一般计算机还配有
一个或者多个容量更大的存储器,由于设置在CPU的外部,因此称为外存储器,比如常用的磁盘和光盘。4.输入输出设备与适配器输入设备
是用来把程序和数据输入给计算机的设备。常用的有键盘、鼠标器、数字扫描仪等,它把人们常用的数据信息转换为计算机所能接收和识别的二进制
数的形式,输入给计算机。输出设备是用来输出计算机运算或进行数据处理的结果的设备。它把处理结果转换成人或其它机器能够接收和识别的形式
,输出。目前常用的有打印机、绘图仪、显示器等。这些设备,通常称为外部设备。由于外围设备种类繁多、速度各异,故需专门的电路与主机连
接。这种电路常称为适配器或接口电路。由于常制作成“卡”的形式,可插入计算机的主机板上,因此也称为接口卡。其作用相当于一个转换器,把
外部设备输出的电信号转换成计算机所能接受的形式输入给计算机,或者把计算机内部的二进制数据转换成人们所熟悉形式输出显示出来。由于外
围设备种类繁多、速度各异,故需专门的电路与主机连接。这种电路常称为适配器或接口电路。由于常制作成“卡”的形式,可插入计算机的主机
板上,因此也称为接口卡。其作用相当于一个转换器,把外部设备输出的电信号转换成计算机所能接受的形式输入给计算机,或者把计算机内部的
二进制数据转换成人们所熟悉形式输出显示出来。5.系统总线所谓总线,是连接计算机各组成部件的公共数据通路。所谓系统总线,是构成
计算机系统时连接各设备之间的总线。借助于系统总线,各设备之间可进行数据信息的传送与交换。按其传送数据信息的功能与作用,总线又分为:
数据总线地址总线控制总线。1.3.2软件系统计算机的全部工作,就是执行程序。其中所有程序和参与运算或被处理的数据统称为软
件。仅有硬件的计算机称为“裸机”,是不能工作的。只有配上相应的软件,才能工作。在计算机刚刚问世时并没有建立起软件的概念,随着计算机
的发展和应用范围的扩大,逐渐形成了软件系统。性能优良的硬件系统能否发挥应有的功效,在很大程度上取决于配置的软件系统。软件系统越齐全
,其功能也就越强。软件系统又分为系统软件和应用软件。1.系统软件系统软件是用来对计算机系统进行管理、调度、监控和维护程序,包括
操作系统、语言处理程序和一些支持软件。1)操作系统操作系统是系统软件的核心,也是计算机必须配置的软件,用来管理计算机的各种资源
,为用户使用计算机提供操作接口,方便用户使用。操作系统按功能可分为:单用户操作系统、多用户分时操作系统、批处理操作系统、实时操作系
统、分布式操作系统和网络操作系统等。2)语言处理程序语言处理程序是为了把汇编语言程序和各种高级语言程序转换成机器语言程序而配置
的程序。由于计算机只能识别0和1组成的机器码,为了提高编程效率,程序设计人员常用高级语言或汇编语言编写程序,计算机在执行时必须将其
转换成机器语言。语言处理程序就是承担这样的工作的程序。目前,主要有把汇编语言程序转换成机器语言程序的“汇编程序”和把高级语言程序转
换成机器语言程序的“编译”和“解释程序”。3)支持软件支持软件是运行在操作系统之上,为用户使用计算机提供各种支持的程序,比如调
试程序、诊断程序、文本编辑程序以及网络通信程序等。由于操作系统是附着计算机内核之上,这些支持软件也称为服务程序,往往以操作系统中可
调用的文件存在。用户根据需要可选取调用,也可将它们视为操作系统的扩充部分或者外壳。2.应用软件应用软件一般分为两个部分。一是
指用户根据自己的需要设计的程序,比如科学计算、数据处理、自动控制、企业管理、情报检索类程序。二是一些软件开发商为方便用户使用而提供
的服务性程序,比如字表处理系统、数据库管理系统、图形图像处理程序、工程设计程序以及各种高级语言程序等。1.3.3指令与程序在
计算机中,每项工作都是通过指令和程序来实现的,它指示计算机进行某项工作或者完成某一任务。按照冯.诺依曼“存储程序”的思想,计算机的
全部工作就是依次执行事先存入存储器中的程序。1.指令所谓指令,是指示计算机进行某一工作的命令。在计算机中,指令和数值一样都是
用二进制数表示的,常称为代码。其中一条指令中二进制数的位数,称为指令字长。是某计算机中的两条指令。前者指示计算机把数值20H送
到寄存器CL中,后者指示寄存器CL中的数与AL中的数相加,结果存入AL中。例如代码:1011000100100000000000
1011000001任何一台计算机都有自己的指令,其全部指令称为指令系统。这种用二进制数表示指令系统的语言称为机器语言,用其编
写的程序称为机器语言程序。机器语言程序,计算机可以直接识别和执行。但是难易识别,出了错误也难易检查修改。因此,以后人们用英文字母表
示指令,这种英文字母称为助记符。用助记符表示时,上述2条指令可写成:MOVCL,20HADDAL,CLMOVCL,
20HADDAL,CL在这两条指令中,均有两个操作数(或寄存器)。其中一个存放结果,称为目的操作数或目的地址,另一个仅提供
操作数,称为源操作数或源地址。这种用助记符表示指令系统的语言称为汇编语言,用汇编语言编写的程序称为汇编语言程序。2.程序程
序是为完成某一任务或进行某项工作的若干条指令的有序集合。在执行某一任务或者要进行某项工作时,可选其指令系统中的若干条,按序排列。例
如,在某计算机上求解y=a×b+c×d时,编写程序如下:MOVAL,a;数据a送入寄存器AL中MULAL,b;a×b,结果
在寄存器AX中MOVCX,AX;寄存器AX中的数据送入寄存器CX中MOVAL,c;数据c送入寄存器AL中MULAL,d
;c×d,结果在寄存器AX中ADDAX,CX;c×d+a×b,结果在AX中MOV[y],AX;AX中的结果送入目的地址单
元y中其中AL、CL表示8位寄存器,AX、CX表示16位寄存器。两个8位数相乘,结果为16位,因此上述第二条指令执行的结果在A
X中。汇编语言程序计算机不能直接识别和执行,必须转换成二进制代码,也就是机器语言程序。把汇编语言程序转换成机器语言程序的过程称为
“汇编”,可由专门的程序来进行,这种程序称为“汇编程序”。除了汇编语言之外,用于程序设计的还有其它许多语言,比如FORTRAN、
C、C++等,这些语言统称为高级语言。用高级语言编写的程序称为高级语言程序,也需要转换成机器语言程序后,计算机才能识别和执行。把高
级语言程序转换成机器语言程序的过程称为“编译”或者“解释”,由专门的“编译”或者“解释”程序来进行。1.3.4计算机系统的层次
结构早期的计算机是使用机器语言或汇编语言进行程序设计的。后来,随着软件技术的发展,人们使用各种高级语言编程,从而在不同的层面使用
计算机。于是,产生了计算机系统的多层次结构,如图1.3所示。图中,每一层对应一种“机器”,为不同层次上的操作者使用。操作者通过该层
的语言与“机器”对话,编程或者交流,而不必关心内层的结构和工作过程,体现了一种被称之为“透明性”的特性。L0和L1是计算机的低层
硬件,主要指中央控制器。其中L1是微程序控制器,也称为固件。在这一级,程序员面对的是微指令集,通过用微指令设计的微程序来表示和实现
机器语言指令的功能。每条机器语言指令对应一段微程序。L0由电子线路组成,用来执行微指令所确定的操作。在早期的计算机中没有微程序控制
器,在现在的精简指令集计算机(RISC)机中也不再设置微程序控制器,每一条机器语言指令直接由电子线路译码执行。L2机器语言级的机
器,也称为物理机。在这一级,程序员面对的是机器语言,使用机器语言指令编程,来实现外部的功能要求。向下进入L1,通过执行微程序,实现
指令的功能。对于RISC计算机,机器语言指令直接由电子线路译码执行。L3是操作系统虚拟机。在这一级,除了机器语言指令外,操作系
统也提供自己的命令集,比如打开/关闭文件、读/写文件等。程序员主要使用操作系统的命令对机器进行操作,其功能由操作系统进行解释,因此
被称为操作系统虚拟机。L4是汇编语言虚拟机。在这一级,程序员使用汇编语言指令编程。用汇编语言编写的程序需要转换成L3和L2级的
语言,然后再由相应的机器执行。L5是高级语言虚拟机。在这一级,程序员可使用高级语言编程,再由编译或解释程序将其转换成L4或L3
上的语言,然后再向下,由下一级机器执行。L6是应用语言虚拟机。这一级是为某些专门的应用而设计的,使用的是面向问题或者面向对象的语
言,从而构成用于不同领域的虚拟机。在这一级编写的程序一般要由相应的程序包转换到L5上,然后再一级一级向下,编译或者解释执行。1.
4计算机系统结构概述1.4.1计算机系统结构的内涵计算机系统结构(Computerarchitecture)这一概念
,是1962年Buchholz在描述IBM7030的扩展性(Stretch)时首先提出来的,是指计算机的外特性。1964年,IB
M370的主设计师Amdahl给出了计算机系统结构的定义:计算机系统结构是指程序员所看到的计算机的基本属性,即概念性结构与功能特
性。对于不同层次上的程序员来说,由于使用的程序设计语言不同,可能看到的概念性结构与功能特性也会不一样。例如,使用机器语言或汇编语
言分别在PDP-11和80x86计算机上进行程序设计,就会发现两种机器的基本属性截然不同;如果使用高级语言,例如C/C++进行程序
设计,经编译后再在这两种机器上执行,就会发现它们之间不再有太大的区别。那么,原因何在呢?主要是编译程序的作用。为了能够运行高级语
言程序,各档次的计算机都配有针对某种语言的编译程序,由编译程序对高级语言程序进行编译,然后再执行。这样,站在高级语言的角度来看,两
种机器似乎没有什么区别。其实,是编译程序填补了两种机器之间的差异。像这种本来存在差异或者区别的事物或特性,站在某一角度来看,似乎不
再有什么差异或者区别了,这种现象或概念被称为透明性(Transparency)。由此可见,在各级或者说各层次上都有相应的系统结构
。一般而言,底层机器的属性对于高层机器的程序员来说往往是透明的。但是,对于从事计算机系统结构的人们来说,则要透过这种透明性,去发现
或研究不同层次机器之间的差别。在这里,Amdahl提出的系统结构是指传统机器语言级的系统结构,也就是机器语言程序员所看到的计算机的
外特性,也就是在传统的硬件层面上看到的特性,主要包括:(1)指令系统,包括操作类型、指令格式、指令间的排序和控制机构等;(2)
数据表示,是指硬件系统能够直接识别和处理的数据类型;(3)寻址规则,它反映机器中最小的寻址单元、寻址方式及其表示;(4)寄存器
结构,包括寄存器的定义、类型、数量及使用方式;(5)中断系统,包括中断类型,硬件响应机构、条件与方式;(6)工作状态的定义与切
换,例如系统态和管态等,以及它们之间的切换方式;(7)存储系统,包括主存容量、程序员编程的最大存储空间;(8)信息保护,包括信
息保护方式和硬件对信息保护的支持等;(9)I/O结构,包括数据输入/输出方式、CPU/存储器与I/O设备的连接方式、数据传送时的
格式及控制方式等。这些特性在计算机系统中是由硬件或固件完成的功能,程序员只有在了解了这些特性之后,才能编写出能在传统机器上运行的
程序。由图1.3可见,计算机系统的概念性结构和功能特性实质上是由计算机系统中软件与硬件之间的界面所确定的,界面之上体现的主要是软件
功能,界面之下主要是硬件。因此,研究计算机系统结构的一个重要目的就是划分硬件与软件之间的界面。因为有些功能,既可以由硬件来实现,也
可以由软件来实现。在以上讨论中,仅仅是针对经典的计算机系统结构的概念而言的。随着计算机技术的发展,计算机系统结构的概念和它所包含
的内容也在不断地发展和变化,这称为广义计算机系统结构,包括新的计算机组成与实现技术。希望广大读者在掌握了经典计算机系统结构之后,大
胆地向广义系统结构进军。1.4.2计算机系统的组成与实现在了解了计算机系统结构的含义之后,就可以深入讨论计算机的组成与实现
。这里,实际上涉及到两种关系。一是计算机系统结构与计算机组成之间的关系,二是计算机组成与其实现方式之间的关系。1.计算机系统结
构的逻辑实现根据Amdahl提出的系统结构的定义,计算机系统结构实际上是指计算机的硬件功能及其概念性结构,包括指令系统、数据表示
、寄存器构成方式、寻址方式、存储器体系功能以及输入输出系统等。如何实现,涉及到计算机的组成,称之为计算机系统结构的逻辑实现。它包括
机器内部数据流与控制流的组成及其逻辑设计的方式。由于数据流和控制流在不同结构的计算机中有不同的实现方式,这就意味着同一种系统结构可
有不同的计算机组成方式。可见,计算机系统结构与计算机组成之间是一对多的关系。2.计算机的组成与实现计算机组成是在明确了计算机系
统结构分配给硬件的功能与概念性结构之后,研究如何组成其硬件体系,以实现机器语言指令的功能与特性。其中包括各功能部件的配置、组成方式
,相互之间的连接与作用等。因此,计算机组成可涉及计算机的许多组成方式。例如,运算器的组成、功能、运算速度,存储器的层次结构、容量、
存取周期、虚拟存储技术、通道技术或I/O处理机,以及是否采用先行控制、流水线技术、多功能部件、阵列机及并行多处理机等技术。由此可
见,计算机组成是计算机系统结构的逻辑实现。而在研究计算机组成的实现时,则涉及各种功能部件的组成、时序电路以及时钟信号等。例如,在
设计运算器时,既涉及到构成加法器的组合电路、时序电路,又涉及算法;在设计存储器时,既涉及到采用什么样的器件,又涉及它的容量、外围电
路和速度;在设计输入/输出通道时,同样也涉及到采用什么样的器件及外围电路。另外,在构成计算机系统时还涉及信号的传输方式、模块的划分
、插件与底板的连接以及电源、冷却方式和组装工艺等。这些,统称为计算机组成的物理实现。显然,同一计算机组成可有不同的实现方式。也就
是说,计算机组成与计算机的物理实现也是一对多的关系。由以上分析可知,计算机系统结构、计算机组成和计算机实现是三个不同的概念。其中
计算机系统结构是指计算机系统的软件与硬件之间的界面,计算机组成是指计算机系统结构的逻辑实现,计算机实现是指计算机的物理组成。它们各
自包含不同的内容,相互之间又有着密切的联系。但是,也应当指出,这三种概念所包含的内容根据机器的不同可能有所变化。1.4.3计算
机系统结构的类型计算机发展到今天,已经不再是单一CPU结构,而是多处理器或多处理机结构,采用的技术和系统结构五花八门。分类的方式
也就比较多,但是目前常用的主要有三种,一种是按“流”分类,另一种是按“并行级”和“流水线”分类,第三种是按照计算机系统结构的最大并
行度分类。这里主要介绍按“流”分类。按“流”分类法是Flynn教授1966年提出的一种分类方法,他是按照计算机中指令流(Inst
ructionstream)和数据流(Datastream)的多倍性进行分类。所谓指令流,是指机器执行的指令序列;所谓数据流
,是指指令流调用的数据序列。多倍性是指在机器中最受限制(瓶颈最严重)的部件上,在同一时间单位内,最多可并行执行的指令条数或者处理的
数据个数。这样,计算机系统结构可分成表1.1所示的4种类型:即单指令流单数据流(SISD)、单指令流多数据流(SIMD)、多指令
流单数据流(MISD)和多指令流多数据流(MIMD)。4种类型的逻辑结构如图1.4所示,其中CU表示控制部件,PU表示处理部件,
MM是主存模块,CS表示控制流,DS表示数据流,IS表示指令流,SM表示共享主存。图1.4Flynn分类法中4种类型的逻辑结构
1.SISD(SingleInstructionStreamSingleDataStream)计算机单指令流单数据流
计算机的逻辑结构如图1.4(a)所示。其中CU只有一个,PU也只有一个。在同一时间单元只能对一条指令进行译码和执行。由于MM也只有
一个,一次所能处理的数据也只有一个。在计算机发展的初期,其系统结构一般属于这种类型,现在一些简单的微程序控制器也采取这种结构,例如
IBM370/1680P,VAX11/780等。2.SIMD(SingleInstructionStreamMulti
pleDataStream)计算机单指令流多数据流计算机的逻辑结构如图1.4(b)所示。其中CU只有一个,在同一时间单元只能对
一条指令进行译码和执行;但是有多个PU,可同时执行控制单元分配给各自的任务,对多个数据进行处理,即多数据流。当前并行处理机是这种结
构的典型代表,例如ILLIAC-Ⅳ,ICL-DAP,CRAY-1,YH-1,以及CM-2等都属于这种结构。3.MISD(Mult
ipleInstructionStreamSingleDataStream)计算机多指令流单数据流计算机的逻辑结构如图
1.4(c)所示。其中CU有多个,PU也有多个,在同一时间单元可对多条指令进行译码和执行,即多指令流。但是主存模块(MM)只有一个
,由多个处理模块对一个数据流进行处理。就目前来看,有人认为这种结构的计算机尚不存在。但是也有人认为,超级标量机、超长指令字计算机可
归类为MISD计算机。4.MIMD(MultipleInstructionStreamMultipleDataStre
am)计算机多指令流多数据流计算机的逻辑结构如图1.4(d)所示。其中有多个CU和多个PU,可以对多个数据流进行处理。目前的大多
数多处理机系统属于这种类型。例如,IBM370/168MP,CRAYX-MP,YH-2等都属于这种结构。1.4.4计算机
系统性能分析1.大概率事件优先原理大概率事件优先原理是在计算机系统结构的设计中常用的一种原理。是指对大概率事件(常见的事件)赋
予优先处理权和资源使用权,以获得全局最优结果。因为,一旦大概率事件或设备的性能得到改进,计算机系统的性能就会有明显的提高。例如在C
PU加法运算中,溢出是小概率事件,无溢出是大概率事件。相比之下,对无溢出加法进行优化设计,对提高运算器的速度有很大的好处;而溢出会
降低运算器的运算速度,但是概率很小。因此,从总体上来看,仅优化无溢出的加法运算,机器的整体性能还是提高了。2.Amdahl定律
Amdahl定律是由IBM360系列机主设计师Amdahl于1967年提出来的。他指出,对某一部件采取某种更快的执行方式,所获得
的系统性能的改进程度取决于这种执行方式被使用的概率或所占用总执行时间的比例。简言之,加快某种部件执行的速度所获得的系统性能加速比,
受限于该部件在系统中使用的概率。若用To表示某部件在改进或加速之前执行某一任务所用的时间,Te表示该部件在改进或加速后执行同一任
务所用的时间,re表示某部件经改进后功能加快的倍数,fe表示该部件执行时间占系统总执行时间的百分比,则系统性能加速比Sp可表示如下
:(1.1)显然,当fe为0时,Sp为1,表示被改进或增强功能的设备没有被使用;当re→∞时,fe/re→0,则Sp→1/(1
?fe)。由此可见,某部件性能改进后,系统性能(或时间)加速比Sp的值受到fe的约束。由图可见,在增强某功能部件的功能时,需要考
虑它的处理时间占整个系统运行时间的百分比fe。如果fe很小,那么增强该部件的功能也就没有多大的意义了。【例1.1】若将计算机系统中
某一部件的速度提高8倍,该部件工作时间占整个系统运行时间的60%。试问该部件的速度提高后,整个系统的性能提高了多少?解:根据题意,
re=8,fe=60%,则以Sp为纵坐标,fe为横坐标,根据不同的re,可以画出函数Sp=f(fe)的曲线,如图1.5所示。图
1.5Sp-fe曲线3.指令平均时钟周期数绝大多数计算机在运行的过程中采用固定时钟周期(Clockcycles),常用
TC表示,单位为ns;有时也用频率表示,单位为MHz。每一条指令的执行,通常需要多个时钟周期。对于一个有IN条指令的程序来说,执行
时间用TCPU来表示,则TCPU=IN×CPI×TC(1.2)式中,CPI表示执行一条指令所需要的平均时钟周期数。这样,C
PI可用以下公式求得:(1.3)式中,IN表示程序中指令总数,Ii表示第i类指令在程序中执行的次数,CPIi表示执行第i类指令
所需要的平均时钟周期数,n为程序中所有指令的种类数。上述CPI还可表示为:上述CPI还可表示为:式中,Ii/IN表示第i类指令
在程序中所占的比例。【例1.2】假设某标量计算机使用的时钟频率为40MHz,在执行一个典型的测试程序时,所测到的指令类型、指令条
数及所用时钟周期数如表1.2所示。试求执行该程序的平均时钟周期数CPI和总的CPU执行时间。解:根据题意TC=1/(40×
106)=25nsCPI=(CPIi×Ii)/IN=(45000×1+32000×2+15000×4+8000×2
)/100000=1.85TCPU=CPI×IN×TC=1.85×100000×25ns=462500
0ns=4.625ms4.MIPS与MFLOPS指标除了上述性能加速比Sp和平均时钟周期数CPI之外,在衡量计算机的运算
速度时常用的指标还有MIPS和MFLOPS。1)MIPS(MillionInstructionsPerSecond)MI
PS为每秒百万条指令,用来衡量标量处理机定点运算的速度。对于一个给定的程序,MIPS可表示为:(1.5)(MIPS)式中,TE
表示程序的执行时间,RC表示时钟频率,是时钟周期TC的倒数。根据这一定义,上述例1.2中处理机的MIPS值为:需要说明的是,M
IPS仅适用于标量机。因为在标量机中,一条指令执行后一般得到一个运算结果;而在向量机中,一条指令执行后往往得到多个运算结果。另外,
MIPS依赖于指令系统,对于不同指令系统的计算机来说,结果可能不一样。在同一台计算机上,使用不同的测试程序,MIPS值的差别可能也很大。2)MFLOPS(MillionFloatingPointOperationsPerSecond)MFLOPS表示每秒百万条浮点运算指令,用来衡量浮点处理机的运算速度。对于一个给定的程序,MFLOPS可以表示为:式中,IFN表示程序中浮点运算的次数(即指令的条数),TE表示程序执行时间。在MFLOPS和MIPS的量值之间没有直接的联系和统一的标准。但是一般认为,在标量机上进行一次浮点运算需要2~5条指令,取平均值3,故1MFLOPS≈3MIPS。2.基准测试程序在对计算机系统评价时,评价的结果除了与被评价的机器的系统结构、功能有关外,与输入/输出等外特性也有一定的关系。因此,同一台计算机可能对某一种测试程序表现出较高的性能,而对另一种测试程序表现出较差的性能。为了客观反映计算机系统的性能,常用不同层次的基准测试程序(Bebchmark)来测试系统的性能。测试程序主要有以下5种。1)实际应用程序根据不同的被测系统,选用不同的实际应用程序,例如C语言编译程序、Text文本处理程序、CAD工具软件Spice等。2)核心程序从实际运行的程序中抽出少量关键性的循环程序段,以此测试和评估计算机系统的性能,例如,livermore24Loops、Linpack等。3)合成测试程序这种程序类似于核心程序,是考虑到各种操作和程序的比例而专门编写的,比较流行的有Whetstone和Dhrystone。其中,Whetstone是由整型运算和浮点运算混合组成的,包括超越函数、条件转移和函数调用等;Dhrystone主要是整型运算,包括字符串及数组处理等。4)小测试程序通常,这类测试程序代码在100行以下,运行结果可以预知,例如,SieveofErastosthenes、Puzzle、Quicksort等程序。5)SPEC测试程序为了对计算机系统的性能有一个比较公正的评价,从1988年起,美国HP、DEC、MIPS、SUN等公司发起成立了一个系统性能评价合作团体(SPEC组织),并一致同意用一组实用程序和相应输入输出来评价计算机系统的性能。典型测试程序主要有以下10个:GCC、Espresso、Spice2g6、DODUC、NASA7、Li、Eqntott、Matrix300、FPPPP和TOMCATV。其中,GCC、Espresso、Li和Eqntott是用C语言编写的,进行整型运算;其余的是用FORTRAN语言编写的,进行浮点运算。测试结果用SPECmark分值表示,其值越大越好。1SPECmark约相当于0.2~0.3MFLOPS。以后,测试程序又出现了1989,1992和1995版本,并进一步分为整型SPECint和浮点SPECfp。与SPEC组织类似的还有Perfect俱乐部,它由一些大学和公司的并行计算爱好者组成,有一组称为PerfectClub的典型测试程序。
献花(0)
+1
(本文系太好学原创)