计算机考研组成原理知识点讲解含例题解析.docx
《计算机考研组成原理知识点讲解含例题解析.docx》由会员分享,可在线阅读,更多相关《计算机考研组成原理知识点讲解含例题解析.docx(101页珍藏版)》请在冰豆网上搜索。
计算机考研组成原理知识点讲解含例题解析
指令是指示计算机执行某项运算或处理功能的命令,是用户使用计算机与计算机本身运行的最小功能单位;
按指令和数据流分为:
(1)单指令流、单数据流系统SISD(传统冯·诺依曼体系结构),
(2)单指令流、多数据流系统SIMD(阵列处理机和向量处理机系统),
(3)多指令流、单数据流系统MISI(?
),
(4)多指令流、多数据流系统MIMD(多处理机和多计算机系统)。
第1层是微体系结构(microarchitecture)层,也可以称其为计算机裸机。
计算机的核心功能是执行程序,程序是按一定规则和顺序组织起来的指令序列。
这一层体现的是,为了执行指令,需要在计算机中设置哪些功能部件(例如:
存储、运算、输入和输出、接口和总线等部件,当然还有更复杂一点的是控制器部件),每个部件又如何具体组成和怎样运行,这些部件如何实现相互连接并协同工作等方面的知识和技术。
通常,计算机硬件系统由运算器部件(数据通路)、控制器部件、存储器部件、输入设备、输出设备这5部分组成。
第2层是指令系统(instructionset)层,它介于硬件和软件之间。
这涉及到需要确定使用哪些指令,指令能够处理的数据类型和对其运算所用的算法,每一条指令的格式和完成的功能,如何指出想要对其执行读操作或者写操作的存储器的一个存储单元,如何指出想要执行输入或者输出操作的一个外围设备,对哪一个或二个数据进行运算,执行哪一种运算、如何保存计算结果等。
指令系统是计算机硬件系统设计、实现的最基本和最重要的依据,与计算机硬件实现的复杂程度、设计程序的难易程度、程序占用硬件资源的多少、程序运行的效率等都直接相关。
计算机是由人指挥控制的,供人来使用的。
第3层是操作系统(operatingsystem)层。
它主要分担计算机系统中的资源管理与分配,也向使用者和程序设计人员提供简单、方便、高效的服务。
一套计算机系统,包含了大量的、高价的、管理和使用相当复杂的硬件资源和软件资源,不仅一般水平的使用人员,就是水平很高的专业人员都难以直接控制和操作,还是把资源管理和调度功能留给计算机系统本身来完成更可靠,这些功能是由操作系统承担的。
操作系统的存在,又为使用计算机的用户提供了许多支持,与程序设计语言相结合,使得程序设计更简化,建立用户的应用程序和操作计算机更方便。
第4层是汇编语言(assemblylanguage)层。
汇编语言大体上是对计算机机器语言的符号化处理的结果,再增加一些为方便程序设计而实现的扩展功能。
与机器语言相比,汇编语言至少有2大优点。
首先实现用英文单词或其缩写形式替代二进制的指令代码,更容易为人们记忆和理解;其次是可以选用含义明确的英文单词来表示程序中用到的数据(常量和变量),并且避免程序设计人员亲自花费精力为这些数据分配存储单元。
如果在此基础上,还可以在支持程序的不同结构特性(如循环和重复执行等结构),子程序所用形式参数替换为真实参数等方面提供必要的支持。
汇编语言的程序必须经过一个叫做汇编程序的系统软件的翻译,将其转换为计算机的机器语言后,才能在计算机的硬件系统上予以执行。
第5层是高级语言层,高级语言又称算法语言(algorithmlanguage),它的实现思路,不再是过分地“靠拢”计算机硬件的指令系统,而是着重面向解决实际问题所用的算法,更多的是为方便程序设计人员写出自己解决问题的处理方案和解题过程的程序。
目前常用的高级语言有BASIC、C、C++、,PASCAL、JAVA、PROLOG等多种。
用这些语言设计出来的程序,通常需要经过一个叫做编译程序的软件编译成机器语言程序,或者首先编译成汇编程序后,再经过汇编操作后得到机器语言程序,才能在计算机的硬件系统上予以执行;也可以由一个叫做解释执行程序的软件,逐条取来相应高级语言程序的每个语句并直接控制其完成执行过程,而不是把整个程序编译为机器语言程序之后再交给硬件系统加以执行,解释执行程序的最大缺点是运行效率比很低。
高级语言不属于计算机组成课程的内容。
在高级语言层之上,还可以有应用层,由解决实际问题的处理程序组成,例如文字处理软件,数据库软件,网络软件,多媒体信息处理软件,办公自动化软件等。
计算机是用于解决各种应用问题的系统,为有应用而存在,为处理各种应用问题而体现出它的性能和价值。
上述可知,计算机系统的6层结构在不同层次之间的关系表现为:
(1)上面的一层是建立在下一层的基础上实现出来的,实现的功能更强大。
也就是说,上一层较下一层更接近人们解决问题的思维方式和处理问题的具体过程,更便于使用,而且使用这一层提供的功能时,不必关心下一层的实现细节。
(2)下面一层是实现上一层的基础,更接近计算机硬件实现的细节,实现的功能相对简单,人们使用这些功能更感到困难。
在实现这一层的功能时,可能尚无法了解其上一层的最终目标和将要解决的问题,也不必理解其更下一层实现中的有关细节问题,只要使用下一层所提供出来的功能来完成本层次的功能处理即可。
(3)采用这种分层次的方法来分析和解决某些问题,有利于简化处理问题的难度,在某一段时间,在处理某一层中的问题时,只需集中精力解决当前最需要关心的核心问题即可,而不必牵扯各上下层中的其他问题。
例如,在用高级语言设计程序时,无需深入了解汇编及其各低层内容。
在大部分的教材中,人们通常把没有配备软件的纯硬件系统成为“裸机”,这是计算机系统的根基或称“内核”,它的设计目标更多地集中到有利于提供性能又方便硬件实现和降低成本,因此提供的功能相对较弱,只能执行由机器语言构成的程序,非常难以使用。
为此,人们期望能开发出功能更强、更接近人的思维方式和使用习惯的语言,这是通过在裸机上配备适当的软件来完成的。
每加一层软件就构成一个新的“虚拟计算机”,功能更强大,使用也更加方便。
例如,可以把计算机系统的一到五层分别称为L0裸机、L1虚拟机(支持机器语言)、L2虚拟机(增加了操作系统)、L3虚拟机(增加了汇编语言)、L4虚拟机(增加了高级语言)。
1.6计算机的工作过程
使用计算机处理一个实际问题的过程
(1)建立数学模型,找出反映待处理问题规律的数学模型
(2)找出计算方法,选择实现模型计算的具体算法
(3)编写计算机程序,选用合适的计算机语言编写实现算法的程序
(4)调试运行程序,调试写好的程序,调试正确后则运行这个程序
(5)输出运算结果,把程序的运行结果输出出来
计算机硬件的工作过程
如果仅从得到计算机机器语言的程序之后看
(1)把程序和数据装入到主存储器中
(2)从程序的起始地址运行程序;
(3)用程序首地址从存储器中取出第1条指令,经过译码、执行步骤等控制计算机各功能部件协同运行,完成这条指令功能,并计算出下一条指令的地址;
(4)用新得到的指令地址继续读出第2条指令并执行之,直到程序结束为止;每一条指令都是在取指、译码和执行的循环过程中完成的。
1.7计算机系统性能指标
这里只是从整机的角度,给出计算机系统的某些技术与性能指标,突出几个重要概念和基本术语,各个部件的更具体的指标安排到后续的章节去介绍。
(1)计算机字长
从物理上容易实现和数据运算规则简单考虑,现代的计算机普遍使用二进制,即每一位(一个bit)上的数值只有0和1两个值,相邻数位之间采用“逢二进一”的规则处理,用从右到左依次排列起来的一串二进制的数表示不同的数值和信息。
在计算机系统内部,通常选用多少个二进制位来表示一个数据或一条指令是一个关键技术指标,例如16、32或者64位,这个位数被称为计算机字长。
通常是2、4、8个Byte(Byte,由8个二进制位组成)。
(2)CPU速度
衡量CPU速度,通常有两种方式。
第一种方式使用CPU主频,即CPU系统使用的时钟脉冲的频率(每一秒钟提供的时钟脉冲的个数称为赫兹Hz,106Hz:
MHz,109Hz:
GHz)来表示,例如500MHz。
对同一个型号的计算机,其主频越高,完成指令的一个执行步骤所用的时间越短,执行指令的速度越快,但对不同厂家、不同系列的计算机系统,只用CPU主频来说明其运行速度就未必准确。
第二种方式使用CPU每一秒钟能执行的指令条数,单位是MIPS(millioninstructionspersecond),其计算公式可以通过如下方式推导出来:
T=CPI×T_IC×I
这里的T是执行一个程序占用的全部时间,CPI是执行一条指令平均使用的CPU时钟个数,T_IC是一个CPU时钟的时间长度,是CPU主频f的倒数1/f,I是这个程序的指令条数,3个数值的乘积就等于这个程序总的运行时间T。
由此得到:
I=T/(CPI×1/f)=(T×f)/CPI,
这个公式表明,单位时间内执行的指令条数正比于CPU的时钟频率f,这个频率的高低取决于计算机的实现技术、生产工艺和计算机组成;反比于每条指令的执行步骤数目,它反映计算机的实现技术、计算机指令系统的结构和计算机组成;一个程序的指令条数还与计算机指令系统的结构和编译技术有关系。
当取T=1秒,并假定f为300Mhz,CPI为4,则计算出该CPU系统的性能为300/4,等于75个MIPS,即每秒执行75个百万条指令。
若有办法使这台计算机的CPI靠近1,则其运行性能就可以提高近4倍,这正是精简指令系统计算机(RISC)所追求的目标。
若进一步细化,可以写出计算CPI的公式,CPI=∑CPIj×Ij/I(j的值由1到n),这里的I是程序的总指令条数,n是指令的种类,CPIi是每类指令的执行步骤数,Ij/I表示在程序中这类指令数目与总指令数目的比例。
这种通过引入不同指令在程序中出现的频率来计算加权CPI的方法,更能反应计算机系统运行的真实性能。
由于在计算机中用于计算整数的指令和计算机浮点数(实数)的指令执行速度差异较大,不同程序中这两类指令所占的比例也有很大不同,为此人们还分别用MIPS、MFLOPS描述整数指令和浮点数指令的执行速度,以便对比不同计算机系统的CPU性能水平。
(3)存储容量
计算机中的存储器通常包括内存储器和外存储器两大类,内存储器又被称为主存储器,通常用半导体器件实现,读写速度快,价格较高,通常容量要小一些,可供CPU通过指令直接访问。
外存储器又称辅助存储器、海量存储器等,主要包括磁盘设备、光盘设备、磁带设备等,通常是在机械旋转或移动的盘片、磁带上设置一层记录信息的物质,用磁化、改变反射光强度的方式写入或读出二进制的信息,读写速度要慢得多,容量很大。
存储器的容量大,就可以保存更多的信息,计算机运行的速度就可以更快,相应的硬件成本也就更高。
(4)内存的存取周期和外存的数据传送速率
内存储器的读写周期是指启动连续的两次读写操作所必需的时间间隔,通常都比较短,当前的内存储器存取周期为几个纳秒到十几个纳秒(ns),读写速度快的存储器价格要贵一些,要合理选用。
外存储器会涉及到机械运动,找到要读写数据在硬磁盘中的位置通常需要几个到十几个毫秒(ms),一次读出几百个字节的信息通常需要若干毫秒,而连续读出一批数据平均到每个信息上的读出时间可以更短。
通常把单位时间内可以对磁盘设备读写的数据数量称为设备的传输速率。
(5)输入输出设备的入出速度
计算机的输入输出设备是计算机系统中比较复杂的部分,其组成和运行原理各不相同,与计算机主机的连接与控制方式也多有差异,在电子线路之外还涉及到精密机械、光学、激光、电磁转换等许多知识。
不同的输入输出设备的运行速度各不相同,例如针式打印机每秒只能打印几个字符,而激光打印机则可以打印多行甚至几页打印纸的信息,键盘输入则主要取决于人员打字的速度。
显示器的屏幕大小、分辨率高低、显示字符还是图形不同内容、屏幕刷新频率等都对系统性能有重要影响。
1.8几个专业术语和概念
系列机:
具有基本相同的体系结构,使用相同的基本指令系统的多个不同型号的计算机组成一个产品系列,系列机的出现是计算机发展过程中的一个重要事件,对计算机的推广应用起到重要的作用。
兼容:
指计算机软件或硬件的通用性,使用或运行在这个型号的计算机系统中的硬件、软件也能应用于另外一个型号的计算机系统时,则称这两台计算机在硬件或软件上存在兼容性,通常在同一个系列的不同型号的计算机之间是存在这种兼容性的,老的软件和早期的硬件产品可以在新的机型中使用,这极大地保护了用户的投资,也算是计算机可以更好地推广应用的必要条件。
兼容计算机和兼容部件,某个厂家的成功计算机系统或某些部件被其他厂家在保持相同的功能特性的前提下,通过合法渠道重新设计、组织生产并投入市场营销,这些产品被称为兼容计算机或部件产品。
软件可移植性:
指把使用在某个系列计算机中的软件直接或很少修改就能运行在另外一个系列计算机的可能性,通常希望在同一个系列的计算机中要有这种兼容性,至少期望后来出现的性能更高的计算机要能运行早期计算机系统中已有的软件。
但这里更多指的是在不同系列的计算机中的程序是否可以直接移植或者实现移植的难易程度,通常只有高级语言的源程序才有移植的可能性,汇编语言或机器语言基本上没有移植的可能性。
固件:
同一项功能,既可以用硬件实现,处理速度和实现成本可能要高一些,也可以用软件实现,会降低硬件成本,但运行速度可能要慢一些。
例如,早期的计算机中有的没有设置完成浮点数运算的硬件,就用软件子程序来完成浮点数的运算功能。
而现在的计算机系统中,通常都配置了硬件的浮点数运算部件,有更高的处理能力。
哪些功能选用硬件实现,哪些功能选用软件实现是要权衡的一件事情。
通常人们把原来用软件实现的一项功能改为用硬件来实现,则称这一硬件为固件。
★★常见题型及其解法
题型一选择填空题
[例2.1]诺依曼机工作方式的基本特点是
(A)多指令流单数据流
(B)按地址访问并顺序执行指令
(C)堆栈操作
(D)存储器按内部选择地址
解:
(B)
[例2.2]计算机系统中的存储器系统是指,没有外部存储器的计算机监控程序可以存放在中。
(A)RAM,CPU
(B)ROM,RAM
(C)主存储器,RAM和ROM
(D)主存储器和外存储器,ROM
解:
(D)
[例2.3]计算机系统由硬件系统和软件系统构成,硬件系统由、、、输入设备和输出设备等五部分组成。
软件系统通常分为和两大类。
解:
运算器;控制器;存储器;系统软件;应用软件;
[例2.4]对计算机发展史的划分,历史上常以器件为标准划分:
第一代是计算机,第二代是计算机,第三代是计算机,第四代是大规模集成电路计算机;以计算机语言可划分为:
第一级是,第二级是,第三级是,第四级是模块化语言。
解:
电子管;晶体管;集成电路;机器语言;汇编语言;高级语言;
[例2.5]主频是计算机的一个重要指标,它的单位是;运算速度的单位是MIPS,也就是。
解:
MHz;每秒百万指令数;
题型二综合应用题
[例2.1]简述计算机系统的层次结构,各层次之间的基本关系。
答:
粗略地可以划分为应用软件、系统软件和硬件3个层次,通常更习惯划分为电路逻辑层、微体系结构层、指令系统层、操作系统层、汇编语言层、高级语言层这6层结构,最低一层是数字电路与逻辑设计知识,使计算机组成的预备性内容,剩余的5层才是计算机系统本省的内容。
微体系结构层指的是计算机硬件本身,通称“裸机”,操作系统和更高层的汇编语言、高级语言属于软件系统,而指令系统则介于硬件和软件之间,硬件要忠实准确地实现每一条指令的功能,指令是用来设计程序(软件)的,因此称计算机的指令是机器语言,计算机硬件一般只能直接识别和运行有计算机指令构成的程序。
层次之间是存在依存关系的,上一层实现对下一层的功能扩展,下一层是实现上一层的基础。
★★★知识点测试
一、选择(单选)
1.计算机经历了从器件角度划分的四代发展历程,但从系统结构来看,至今为止绝大多数计算机仍是式计算机。
(A)实时处理;
(B)智能化;
(C)并行;
(D)冯·诺依曼;
2.Von.Neumann型计算机的最根本特征是。
(可多选)
(A)以运算器为中心;
(B)指令并行执行;
(C)存储器按地址访问;
(D)数据以二进制编码,并采用二进制运算;
3.计算机的外围设备是指
(A)输入/输出设备;
(B)外存储器;
(C)远程通信设备;
(D)除了CPU和内存以外的其它设备;
4.完整的计算机系统应包括
(A)运算器、存储器、控制器;
(B)外部设备和主机;
(C)主机和实用程序;
(D)配套的硬件设备和软件系统;
5.至今为止,计算机中的所有信息仍以二进制方式表示的理由是
(A)节约元件;
(B)运算速度快;
(C)物理器件的性能决定;
(D)信息处理方便;
6.对计算机的产生有重要影响的是
(A)牛顿、维纳、图灵;
(B)莱布尼兹、布尔、图灵;
(C)巴贝奇、维纳、麦克斯韦;
(D)莱布尼兹、布尔、克枈;
7.运算器的主要功能是进行
(A)逻辑运算;
(B)算术运算;
(C)逻辑运算与算术运算;
(D)初等函数的运算
二、分析应用和设计题
1.什么是兼容?
其优点是什么?
2.说明以下几个词或缩写的含义:
CPU主频、CPI、MIPS、MFLOPS。
第二章数据的表示和运算
★常考知识点精讲
2.1数制与编码
1.进位计数法
用少量的数字符号,按先后次序把它们排成数位,由低到高进行计数,计满进位,这样的方法称为进位计数制.
N=Dm-1Dm-2…D1D0D-1D-2…D-k
Di(-k≤i≤m-1)为基本符号,小数点位置隐含在D0与D-1位之间。
m-1
N=∑Di*ri
i=-k
符号:
r基数,进位制基本特征数,数字符号个数
i取值-k到m-1
ri(位权)
此时该数制称r进制。
常用进位数制:
有二进制、八进制、十六进制、十进制。
2.进位计数制之间的转换
(1)R进制转换成十进制
按权展开法:
先写成多项式,然后计算十进制结果。
(2)r进制转换成二进制方法
①十进制数转二进制
整数部分的转换:
除2取余法(基数除法)
除基取余法:
把给定的数除以基数,取余数作为最低位的系数,然后继续将商部分除以基数,余数作为次低位系数,重复操作直至商为0。
小数部分的转换:
乘2取整法(基数乘法)
乘基取整法(小数部分的转换):
把给定的r进制小数乘以2,取其整数作为二进制小数的第一位,然后取小数部分继续乘以2,将所的整数部分作为第二位小数,重复操作直至得到所需要的二进制小数。
②二进制(B)转换成八进制(Q)或十六进制(H):
将二进制数自小数点开始左右两边分为3位或4位一段,再将每段转成相应的1位八或十六进制数即可。
③八进制(Q)或十六进制(H)转换二进制(B):
将八或十六进制数自小数点开始左右两边每位转成分为3位或4位二进制数,再将它们合起来即可。
2.2真值和机器数
真值:
正、负号加某进制数绝对值的形式,也即机器数所代表的实际值。
机器数:
表示一个数值数据的机内编码,也即符号以及数值都数码化的数。
2.3BCD码
所谓编码,就是用少量简单的基本符号,对大量复杂多样的信息进行一定规律的组合用于表示多种信息。
在计算机系统中,凡是要进行处理(包括计算、查找、排序、分类、统计、合并等)、存储和传输的信息,都是用二进制进行编码的。
用四位二进制代码的不同组合来表示一个十进制数码的编码方法,称为二—十进制编码,也称BCD码(BinaryCodedDecimal)。
通常采用压缩十进制串。
依据每个位有否确定的位权,可把BDC码分为有权码和无权码。
常用的BCD码有8421码、余3码和格雷码等。
2.4字符与字符串
1.字符编码
①ASCII码:
“美国标准信息交换代码”。
用7位二进制编码,可表示27=128个字符。
ASCII码中,编码值0~31为控制字符,用于通信控制或设备的功能控制。
编码值32是空格SP。
编码值127是DEL码。
其余的94个字符称为可印刷字符。
②EBCDIC码(扩展的BCD码),8位二进制编码,可以表示256个编码,但只选用其中一部分。
主要用在IBM公司生产的各种机器中。
2.汉字的表示与编码
1981年《GB2312-80》国家标准。
每个编码用两个字节表示。
共收录一级3755、二级3008个汉字,各种符号682个,共计7445个。
目前最新的汉字编码是2000年公布的国家标准GB18030,收录了27484个汉字。
编码标准采用单字节、2B、4B。
汉字的编码:
汉字的输入编码、汉字内码、字模码是计算机中用于输入、内部处理、输出三种不同用途的编码。
①输入编码:
数字编码,如区位码;字音编码,如拼音码;字形编码,如五笔字型;汉字混合编码等,用于汉字的输入。
②内部处理:
机内码——用于汉字的存储、交换、查询等,通常机内码:
最高位为1。
③输出编码:
字型码——用点阵组成的汉字的代码——构成字库,用于汉字的显示或打印等输出。
还就注意区位码、国标码与机内码的关系:
(十六进制)
国标码=区位码+2020H
机内码=国标码+8080H
3.字符串的表示
①字符串已成为最常用的数据类型之一,许多计算机中提供字符串操作功能。
②字符串是指连续的一串字符。
③两种存放方式:
它们占主存连续多个字节,当主存字由2个或4个字节组成时,在同一个主存字中,既有按从低位向高位字节顺序存放字串内容的,也有按从高位向低位字节顺序存放字串内容的。
2.5校验码
校验码是指能够发现或又能够自动纠正错误的数据编码,也称“检错纠错编码”。
通常某种编码都由许多码字构成,两个合法代码对应位上编码不同的位数称为码距,任意两个码字之间最少变化的二进制位数,称为最小码距。
如果在编码中引入一定的冗余,增加代码的最小码距,使得编码中出现一个错误时就成为非法代码。
校验码有如下类型:
①校验位与信息位的形成关系:
线性码、非线性码
②信息位与校验位的约束条件:
分组码、卷积码
③码字本身的结构特点:
循环码、非循环码
④信息位与校验位排列位置关系:
系统码、非系统码
1.奇偶校验码
(1)原理:
在原编码加上一个校验位,它的码距等于2,能检测出一位错(或奇数位错),但不能确定出错位置,也不能测出偶数位错,有奇、偶两种校验。
由若干位有效信息(如一个字节),再加上一个二进制位(校验位)组成校验码字。
(2)交叉奇偶校验:
对一个数据块另可以采用的方法,即对每行的数据有一个校验位,同样对每列的数据有一个校验位,这样比较仅采用一位校验要保险多了。
2.海明校验码
海明码(n,k),信息位数k=n-r,校验位数r=n–k,其码长n≥2r–1,最小码距d=3。
是一种很有效的校验方法,只要增加少数几个校验位,就能检测出二位同时出错、亦能检测出一位出错并能自动恢复出错位的正确值,后者被称为自动纠错。
(1)原理:
在k位数据加上r个位校验,形成k+r位新码字,并使码距比较均匀拉大。
使每一数据位与不同校验位组合建立对应关系,则某一位出错后,就会引起相关的几个校验位的值发生变化,这不但可以发现出错,还能指出是哪一位出错,为进一步自动纠错提供了依据。
设k个数据位、r个校验位,为检出双位出错与自动校正一位错,因此位数r和位数k应满足如下关系:
2r-1≥k+r
3.循环码(CRC)
CRC码的任合一个合法码字循环移位得到的仍是一个合法码字,用于发现并纠正信息串行读写、存储或传送中出现的一位、多位错误,因此串行通信的场合得到普遍应用。
2.6定点数的表示
1.无符号数的表示
指整个机器字长的全部二进制位均表示数值位,相当于数的绝对值。
若机器字长为n+1位,则数值表示:
X=X0X1X2…XnXi={