1、计算机组成原理 期末复习指导计算机组成原理 课程期末复习指导第1章 计算机系统概述一、复习要点本章是计算机系统的概述,强调建立计算机系统的初步的和较完整的概念。本章期末考试不做具体要求,但本章基本概念的理解程度将直接影响到对后续各部分内容的理解。其中以计算机系统的结构层次、硬件系统的基本组成为重点理解的内容。二、重点问题解析1什么是计算机系统的层次结构?答:通常,把一个计算机硬、软件系统的完整内容划分为6个层次。分层能够更精准地理解、说明每一个层次的功能和运行机制,表明各层次之间相互依存、彼此支持的关系。下一层是实现上一层的基础,上一层是对下一层的功能扩展。 数字电路与逻辑设计是实现计算机硬件
2、的基础,处于最底层; 由5个部件组成的计算机硬件系统构成微体系结构层,接在数字逻辑层上面; 硬件系统实现了全部指令系统的运行功能,提供了设计软件的能力,处在硬件系统的顶层和软件系统的底层; 最底层的软件是操作系统,提供了管理和运行计算机系统的能力; 在此基础上设计的汇编语言,提供了设计程序的功能较弱的基本工具; 再往上实现了功能更强的高级语言,设计各种程序更容易,使用计算机更方便。2什么是计算机系统中的硬件系统和软件系统?答:计算机硬件系统是一种高度复杂的、由多种电子线路、精密机械装置等构成的、能自动并且高速地完成数据处理、计算的装置或者工具。硬件系统由运算器部件、控制器部件、存储器部件、输入
3、设备和输出设备5个大的功能部件组成,见图1.2。其中运算器和控制器共同构成了大家熟知的CPU,各部件间通过总线连接。显然,这些部件中运算器用于完成对数据暂存、运算处理功能;控制器向各个部件、设备提供协调运行所需要的控制信号;存储器用于完成对数据存储功能;输入设备和输出设备分别用于完成对原始数据输入功能和对运算结果输出功能。图1.2 计算机硬件系统的组成示意图计算机软件系统是由完成计算机资源管理、方便用户使用的系统软件(厂家提供),和完成用户对数据的预期处理功能(用户设计,自己使用)的程序这样两大部分构成的。基本系统软件主要由3个部分组成:(1)分担计算机系统中的资源管理与分配,也向使用者和程序
4、设计人员提供简单、方便、高效服务的操作系统;(2)支持用户按照计算机最基本功能(指令)设计程序的汇编语言;(3)支持用户按照解题算法设计程序的高级语言。在一个完整的计算机系统中,软件系统是建立在硬件系统层次之上的部分,它的存在以已有硬件系统为前提,并且必须在已有硬件上才能运行。硬件系统也必须在软件系统的调度指挥下才能发挥出应有的运行效率,体现出它的使用价值。指令系统是设置在硬件系统和软件系统之间的结合点和纽带,硬件系统实现每一条指令的功能,全部软件系统都是由指令序列组成的程序。第2章 数据表示和运算方法一、复习要点数据处理是计算机最擅长的工作。本章介绍数值、逻辑值、文本、图像、声音和视频等多种
5、信息在计算机内表示方式,以及运算器加工数据的基本运算规则。只有在数学上掌握了计算机内数据的表示形式和运算器的基本运算规则,才能在物理上理解计算机处理数据的原理。为此,学习本章必须很好地掌握以下几点:(1)各种类型的数据(小数、整数、浮点数)在计算机内的表示;(2)完成算术运算(补码加减法、原码一位乘除法)所用的算法;首先应学好二进制编码,数制转换,定点数和浮点数表示,数据校验码等基本知识,然后是数值数据算术运算的有关算法。其中二进制编码,数制转换,定点小数和整数的原、反、补码表示是核心的重点内容。数据校验码部分应较好理解常见校验码的实现原理。定点小数、整数、浮点数在计算机内的表示应该很好地掌握
6、,尤其是补码加减法的运算规则从数学角度应该不难掌握,但每次考试这部分都是必考的,所以应该通过做习题真正掌握好。原码一位乘除法的实现算法了解即可。二、重点问题解析1数制转换(二进制需要小数点后保留8位):(1)将十进制数(0.71)10分别转换成二进制数、十六进制数和BCD码;(2)将十六进制数(1AB)16转换为二进制数和十进制数。答:计算机内多数情况下是由二进制数表示的,数制转换是计算机初学者必须要熟悉的,否则很难对处理二进制数据的电路产生应有的感觉。十二进制转换分为整数与小数两种情况,整数的转换采用除2取余,高位在下,商为0时为止;小数的转换采用乘2取整,高位在上,位数达到要求或小数部分为
7、0结束。得到二进制后,再转换成对应的十六进制数就很简单了。(0.71)10(0.01110001)BCD(0.10110101)2(0.B5)16(1AB)16(000110101011)2(427)102在16位定点原码整数中,什么是能表示的最大正数和最小负数的机器数形式?对应的十进制数的数值范围是什么?答:无论是定点小数和整数的编码,机器数的最高一位都是代表符号。正数的符号位为0,负数的符号位为1。对于原码表示,其余各位给出数值绝对值;对于补码表示,正数同原码,负数的数值位为原码求反加1(末尾加1);对于反码表示,正数同原码,负数的数值位为原码求反。本题是16位的机器数,最高一位代表符号,
8、数值位是15位,所以有:最大正数:0111 1111 1111 1111最小负数:1111 1111 1111 1111用十进制数表示,数值范围: 3已知X0.1101,Y0.0111,求X原、Y原、X补、Y补、X+Y补。答:本题中X和Y是真数,依据真数与原码和补码的关系,便可得到各自的数值表示。加减法运算是计算机中最基本的运算,通常选用补码实现。而两个数的真值之和的补码,等于两个数的真值的补码之和。所以有:X原=01101,Y原=10111X补=01101,Y补=11001X+Y补=001104定点小数中,原码表示有哪些优缺点?答:优点:在数的真值和它的原码表示之间的对应关系简单,相互转换容
9、易,用原码实现乘除运算的规则简单。缺点:用原码实现加减运算很不方便,既要比较参与加减运算两个数的确良符号,比较两个数的绝对值的大小,还要确定运算结果的正确的符号等。5若将浮点数的阶码用移码、尾数用原码来表示,它有哪些优点?答:尾数的符号位在浮点数表示的最高位,比较两个数的大小时,符号非常重要,正数一定大于负数。阶码的位置在机器表示中,处在符号位和尾数之间,阶码大的,其移码形式的机器数也大,便于比较浮点数的大小。移码的最小值是各位均为0,它被用来表示机器0,即当阶码的值小于或等于移码所能表示的最小值时,认为浮点数的值为0。此时的机器0的阶码和尾数均为0的形式,给硬件的判0带来很大的方便。6海明码
10、是如何实现检错的?答:海明码是对多个数据位使用多个校验位的一种检错纠错编码方案。对每个校验位采用偶校验技术计算校验位的值,通过把每个数据位分配到几个不同的校验位的计算中去,若任何一个数据位出错,必将引起相关的几个校验位的值发生变化。通过检查这些检验位取值的不同情况,不仅可以判断是否出错,还能发现是哪一位出错并能恢复该出错位的正确值。第3章 运算器部件一、复习要点作为计算机五大部件之一,运算器是实现数据运算的执行部件,分定点运算器和浮点运算器2种。两种运算器以定点运算器为学习重点。主要应搞清楚组成定点运算器的两个主要部分(算数和逻辑运算的电路ALU和暂存运算数据和中间结果的寄存器组REGs)的基
11、本运行原理。学习时不必太多关注电路本身,只需理解运算器如何完成指定的数据运算功能、如何接收输入、怎样送出结果,这些才是学习的重点。这部分的内容也是学习控制器系统和理解计算机整机系统运行机制必要的准备知识。浮点运算器的组成和浮点数的运算一般了解即可。学习时一定要处理好计算机组成原理的通用知识和产品特定实例的关系,应该通过对产品特定实例的学习和认识,能够上升到对一般理论的理解。运算器产品可以典型的RISC结构的MIPS系统为例,弄清楚定点运算器的功能、组成与运行控制方案。二、重点问题解析1什么是MIPS计算机系统的运算器?答:MIPS计算机是上个世纪八十年代中期推出的典型RISC结构、非常成功的系
12、统,国内外许多教材都把MIPS的指令系统和实现技术选为教学内容。下图是MIPS计算机的运算器部件的内部组成。由图可见,它主要包括两个重要部分,一个是由128个寄存器组成的寄存器堆,另一个是执行数据运算的ALU。这个运算器被用于多周期CPU系统(对不同类型的指令选用不同的周期数)时,ALU既用于计算数据,又用于计算数据和指令在存储器中的地址,故还需要向ALU提供计算指令地址的相关信息。图3.1 MIPS计算机的运算器部件内部组成寄存器堆REGs 由 4组各32个寄存器组成,有3个控制端口(5位)提供寄存器编号,其中的 2个(rs、rt) 用于读,读出的数据将保存到寄存器 A和B 。1个(rd)
13、用于写,写入的数据由DI引脚提供,可以是寄存器C 或从内存读出的内容,寄存器B的内容可以写到内存。算逻运算单元ALU 能完成加、减、与、或、异或等运算,用ALU-func 信号选择,一路运算数据包括寄存器A和程序计数器PC 2个来源,用A-sel选择,另一路包括寄存器B、常数4、两个立即数Immed-1和Immed-2(两个立即数来自指令寄存器IR并经过扩展得到)4个来源,用B-sel选择,产生运算结果R (送到PC) 或保存到结果寄存器C,还产生结果为0 的标志位信息 Z。ALU完成数据运算,数据、指令在内存中的地址计算这三种操作。2MIPS的运算器中ALU的三种操作功能是如何实现的?答:数
14、据运算、数据和指令在内存中的地址计算是ALU的三种基本操作功能。(1)数据运算(rs+rtrd):3个寄存器的编号(rs、rt、rd)由指令寄存器提供。需要3步完成:第1步用rs 和 rt 选择并读出两个寄存器的内容,分别保存到寄存器A和B;第2步选择A和B作为运算数据,控制ALU执行加法运算,结果存寄存器C;第3步把结果C中内容送到DI端,用rd选择寄存器,写结果到寄存器堆。(2)数据在内存中的地址计算(pc+Immed_2 pc):1步完成:选择pc和Immed_2 作为运算数据,控制ALU执行加法运算,把计算结果R送pc输入端并控制pc完成写入操作。(3)指令在内存中的地址计算(rs +
15、 Immed_1c):2步完成计算内存地址:第1步用rs 选择并读出寄存器的内容并保存到寄存器A;第2步ALU实现A+Immed_1 送寄存器C 。3简述计算机运算器部件的主要功能。答:运算器部件是计算机五大功能部件中的数据加工部件。运算器的首要功能是完成对数据的算术和逻辑运算,由其内部的ALU承担。运算器的第二项功能是暂存将参加运算的数据和中间结果,由其内部的一组寄存器承担。另外,运算器通常还作为处理机内部传送数据的重要通路。4简述浮点数的阶码用移码、尾数用原码表示的优点。答:尾数的符号位在浮点数表示的最高位,比较两个数的大小时,符号非常重要,正数一定大于负数。阶码的位置在机器表示中,处在符
16、号位和尾数之间,阶码大的,其移码形式的机器数也大,便于比较浮点数的大小。移码的最小值是各位均为0,它被用来表示机器0,即当阶码的值小于或等于移码所能表示的最小值时,认为浮点数的值为0。此时的机器0的阶码和尾数均为0的形式,给硬件的判0带来很大的方便。5运算器中使用多累加器有什么好处? 答:运算器中使用多累加器有利于减少运算器执行运算过程中访问内存储器的次数,即可以把一些中间结果暂存在累加器中,有利于提高计算机的运行效率。第4章 指令系统和汇编语言程序设计一、复习要点指令是计算机中最小的功能单位,是设计计算机硬件组成的基本依据,每条指令的功能都要由硬件来实现。指令是计算机的一种语言。指令系统是计
17、算机硬、软件系统联系的纽带。首先应要求了解影响指令字长的有关因素。本章的核心内容是指令格式的介绍和寻址方式的选用。操作码字段和操作数地址字段的位数分配、内容设置和使用方案对计算机硬件的复杂程度、运行性能和程序设计的方便程度、资源占用都有较大影响。浏览典型指令系统的概貌是必要的,需要了解 RISC 和 CISC 两类指令各自追求的目标和实现思路。还要能够进行简单的汇编语言程序设计。二、重点问题解析1按指令所完成的功能进行分类,一般可以分为哪几类?答:(1)算术与逻辑运算指令 这是每台计算机都必须具有的指令,它通常用于在计算机的运算器部件中完成对一或两个数据的算术运算或逻辑运算功能。(2)移位操作
18、类指令 包括算术移位、逻辑移位、循环移位三种,用于把指定的一个操作数左移或右移一(多)位。(3)数据传送类指令 用于实现通用寄存器之间、通用寄存器与内存储器存储单元之间、内存储器不同存储单元之间、寄通用存器与外围设备(接口)之间(有些场合也可以单独划分为输入/输出指令)的数据传送功能。(4)转移类指令、子程序调用与返回指令 用于解决变动程序中指令执行次序的需求。(5)特权指令 指仅用于操作系统或其它系统软件的指令,为确保系统与数据安全起见,这一类指令不提供给用户使用。(6)其它指令 如动态停机指令、空操作指令、置条件码指令、开中断指令、关中断指令、堆栈操作指令等,用于完成某些特定的处理功能。2
19、计算机指令中要用到的操作数一般可以来自哪些部件?答:一般来自三个方面:第一个来源(或去处),可以是CPU内部的通用寄存器,此时应在指令字中给出用到的寄存器编号(寄存器名)。通用寄存器的数量一般为几个、十几个,故在指令字中须为其分配2、3、4、5或更多一点的位数来表示一个寄存器。第二的来源(或去处),可以是外围设备(接口)中的一个寄存器,通常用设备编号、或设备入出端口地址、或设备映像地址(与内存储器地址统一编址的一个设备地址编号)来表示。第三个来源(或去处),可以是内存储器的一个存储单元,此时应在指令字中给出该存储单元的地址。3什么是指令字长和指令格式?答:指令字长:通常与计算机字长一致,但可以
20、更短或更长。指令格式:指令字中包括操作码字段和操作数地址字段两部分。操作码用于指明指令的运算和操作功能,不同指令的操作码要有唯一性,其位数取决于指令条数和设计要求,有定长和变长2种实现方案。操作数地址字段用于给出被操作信息(指令或数据)的地址信息,包括参加运算的一个或多个操作数所在的地址,运算结果的保存地址,程序的转移地址,被调用的子程序的入口地址等。设计这一部分需要了解指令中用到的操作数的个数,可能的来源与去向,存放数据的介质的读写原理与过程等,要合理考虑,要适当折中与平衡。 4计算机的微程序控制器和组合逻辑控制器(硬连线)在组成和运行原理上有何相同和不同之处?它们各有哪些优缺点?答:微程序
21、的控制器和组合逻辑的控制器是计算机中两种不同类型的控制器。共同点:基本功能都是提供计算机各个部件协同运行所需要的控制信号;组成部分都有程序计数器PC,指令寄存器IR;都分成几个执行步骤完成每一条指令的具体功能。不同点:主要表现在处理指令执行步骤的办法,提供控制信号的方案不一样。微程序的控制器是通过微指令地址的衔接区分指令执行步骤,应提供的控制信号从控制存储器中读出,并经过一个微指令寄存器送到被控制部件。组合逻辑控制器是用节拍发生器指明指令执行步骤,用组合逻辑电路直接给出应提供的控制信号。微程序的控制器的优点是设计与实现简单些,易用于实现系列计算机产品的控制器,理论上可实现动态微程序设计,缺点是
22、运行速度要慢一些。组合逻辑控制器的优点是运行速度明显地快,缺点是设计与实现复杂些,但随着EDA工具的成熟,该缺点已得到很大缓解。5指令系统分哪两大类?它们各有什么特点?答:指令系统有简化指令系统(RISC)和复杂指令系统(CISC)两大类。RISC是对CISC发展过程中的某些问题进行反思的结果,是通过简化硬件实现、提高软件技巧追求更高的计算机性能的有效途径。其中非常成功的典型RISC结构的是MIPS计算机。大量的统计结果表明,在CISC机器的上百条、几百条指令中,只有功能简单、所用硬件更节省的约20%的指令,将占用程序80%的运行时间,反过来说,另外的约80%的功能更复杂、硬件实现代价很高的指
23、令并不被经常使用。到了RISC机器中,宁可选用软件子程序方式来实现这些指令,使硬件实现变得更为精简,运行速度更高。RISC计算机追求的目标之一,就是使指令每一步操作所用的时间要尽可能的短,并且力争在每个执行步骤都能完成一条指令的执行过程。同时尽力在编译程序中增强性能优化能力,从硬件软件两个方面来提高RISC机器的性能。RISC计算机的指令格式规范且种类少,使用的寻址方式简单,指令条数少,指令完成的操作功能简单。6学好汇编语言程序设计有哪些意义?答:汇编语言程序设计的内容对计算机组成原理课程是重要的,对理解指令功能、运算器与控制器的组成和实现、准确理解计算机整机系统的运行原理都有十分重要的作用。
24、汇编语句与指令之间有严格的对应关系,汇编语言还对指令系统进行了重要的功能扩展,使其基本达到可以用于程序设计的初步要求。从程序设计的角度,都需要有支持顺序执行、转移执行、分支执行、循环执行、子程序调用与返回执行等语句(指令)。汇编程序设计可以在实际的硬件系统上进行,也可以在模拟软件的系统上开展,缺乏汇编程序设计基础知识将难以学好本课程。第5章 控制器部件一、复习要点本章的教学内容是前两章内容的延续,尤其是上一章指令系统的同一个问题的两个方面,本章的控制器只是指令系统的硬件环境和实现的具体方案而已。所以,学习本章首先要搞清楚控制器的分类,要知道控制器有哪些功能,还要了解控制器的基本组成及各部分的作
25、用。在教材中,本章以MIPS计算机的控制器为例,重点介绍了硬连线控制器部件,建议认真阅读教材内容,只有这样才能真正理解它的原理。此外,还应该注意学习一些微程序控制器的运行原理和目前越来越重要的指令流水线的一些主要概念,使自己在未来的几年内能够对一些主流控制器部件的基本知识有一个相对完整的了解和认识。二、重点问题解析1控制器主要分为哪些类型?它们的主要优缺点有什么?答:控制器按实现原理主要分为硬连线控制器(又称组合逻辑控制器)和微程序控制器两大类。硬连线控制器的优点是它使用大量的组合逻辑门线路,直接提供控制计算机各功能部件协同运行所需要的控制信号,使得形成这些控制信号所必需的信号传输延迟时间短,
26、对提高系统运行速度有利。由此也带来了它的缺点,由于形成控制信号的电路设计比较复杂,用与、或、非等组合逻辑门电路把设计结果实现出来也相对麻烦,尤其是要变动一些设计时不大方便。随着大(超大)规模集成电路的发展,特别是各种不同类型的现场可编程器件的出现,性能杰出的辅助设计软件的应用,这一矛盾已在很大程度上得到缓解。微程序控制器则是用多条微指令“解释执行”每一条指令的功能,这大大简化了硬件电路,但在程序执行过程中,需要按照指令及其执行步骤,依次从控制存储器中读出一条微指令,用微指令中的微命令字段控制各执行部件的运行功能,并用下地址字段形成下一条微指令的地址,使得微程序可以连续运行。所以这类控制器适合在
27、性能要求不太高的计算机系统中应用,其缺点是运行速度较慢,难以使用在性能要求特别高的计算机系统中。2简述计算机的控制器的功能和执行一条指令所需的步骤。答:控制器部件是计算机的五大功能部件之一,其作用是向整机每个部件(包括控制器部件本身)提供协同运行所需要的控制信号。计算机的最本质的功能是连续执行指令,而每一条指令往往又要分成几个执行步骤才得以完成。由此又可以说,计算机控制器的基本功能,是依据当前正在执行的指令和它当前所处的执行步骤,形成(或称得到)并提供出在这一时刻整机各部件要用到的控制信号并且决定下一步将进入哪个执行步。执行一条指令,要经过读取指令、分析指令、执行指令所规定的处理功能三个阶段完
28、成,控制器还要保证能按程序中设定的指令运行次序,自动地连续执行指令序列。3简述控制器的基本组成及各部分的作用。答:控制器主要由下面4个部分组成:(1)程序计数器(PC),是用于提供指令在内存中的地址的部件,服务于读取指令,能执行内容增量和接收新的指令地址,用于给出下一条将要执行的指令的地址。(2)指令寄存器(IR),是用于接收并保存从内存储器读出来的指令内容的部件,在执行本条指令的整个过程中,为系统运行提供指令本身的主要信息。(3)指令执行的步骤标记线路,用于标记出每条指令的各个执行步骤的相对次序关系,保证每一条指令按设定的步骤序列依次执行。(4)全部控制信号的产生部件,它依据指令操作码、指令
29、的执行步骤(时刻),也许还有些另外的条件信号,来形成或提供出当前执行步骤计算机各个部件要用到的控制信号。计算机整机各硬件系统,正是在这些信号控制下协同运行,执行指令,产生预期的执行结果。由于上述后两个部分的具体组成与运行原理不同,控制器被分为硬连线控制器和微程序控制器两大类。4在微程序的控制器中,通常有哪些得到下一条微指令地址的方式,各自用在什么情况?答:在微程序的控制器中,通常有多种得到下一条微指令地址的方式,例如:使用紧跟在本条微指令之后的微指令作为下一条要执行的微指令,即本条微指令的地址加1作为下一条微指令的地址,用于微指令顺序执行的情况;使用从指令的操作码映射出微指令地址的方式得到下一
30、条微指令的地址,用于读出指令之后,找到对应该指令的一段微程序的入口地址,以便开始该指令具体功能的执行过程;从微指令的下地址字段直接取得一个微子程序的入口地址,用于微子程序调用处理;从微指令的下地址字段直接取得一个微指令的转移地址,用于微程序中的微指令转移处理;从微堆栈中取出从微子程序返回到微主程序断点的返回地址,用于微子程序返回处理。5什么是指令流水线? 答:指令流水线是提高计算机硬件性能的重要技术和有效措施,在成本增加不多的情况下很明显地提高了计算机的性能。追求的目标是力争在每一个指令执行步骤中完成一条指令的执行过程 实现思路是把一条指令的几项功能划分到不同的执行部件去完成,在时间上又允许这
31、几个部件可以同时运行6指令流水线在实现中需要解决哪些相关问题?答:需要处理好下列3个方面的问题:(1)结构相关由于多条指令在同一时刻争用同一资源而形成的冲突。(2)数据相关后续指令要使用前面指令的操作结果,而这一结果尚未产生或者未送到指定的位置,从而造成后续指令无法运行的局面。(3)控制相关在遇到条件转移指令时,存在是顺序执行还是转移执行的2种可能,若这一条件只能在后几步才能得到,在当前时刻则无法确定应该去执行哪一段程序。第6章 存储器系统一、复习要点存储器系统是用来存放程序和各种数据信息的计算机系统中不可缺少的记忆部件。学习本章内容应以三级存储器系统的构成为主线,重点学习主存储器和高速缓存的构建技术、运行原理和管理办法。还应了解虚拟存储器的实现方案和基本术语,了解磁盘、光盘的原理性组成和运行原理,并且正确理解磁盘阵列技术的特点、性能和使用。二、重点问题解析1在计算机中,为什么要采用多级结构的存储器系统?答:多级存储器系统,是围绕读写速度尚可、存储容量适中的主存储器来组织和运行的, 并由高速缓冲存储器缓解主存读写速度慢、不能满足CPU运行速度需要的矛盾;用虚拟存储器更大的存储空间,解决主存容量小、存不下规模更大的程序与更多数据的难题,从而达到使整个存储器系统有更高的读写速度、尽可能大的存储容量、相对较低的制造与运行成本。高速缓冲存储器的问题
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1