《计算机组成原理》课程习题答案_秦磊华2011-9-8

更新时间:2023-03-08 09:31:35 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《计算机组成原理》习题答案 (秦磊华)

第一章 系统给概论 习 题 一 1.l 解释下列名词

摩尔定律:对集成电路上可容纳的晶体管数目、性能和价格等发展趋势的预测,其主要内容是:成集电路上可容纳的晶体管数量每18个月翻一番,性能将提高一倍,而其价格将降低一半。

主存: 计算机中存放正在运行的程序和数据的存储器,为计算机的主要工作存储器,可随机存取。

控制器:计算机的指挥中心,它使计算机各部件自动协调地工作。

时钟周期:时钟周期是时钟频率的倒数,也称为节拍周期或T周期,是处理操作最基本的时间单位。

多核处理器:多核处理器是指在一枚处理器中集成两个或多个完整的计算引擎(内核)。 字长:运算器一次运算处理的二进制位数。 存储容量: 存储器中可存二进制信息的总量。

CPI:指执行每条指令所需要的平均时钟周期数。 MIPS:用每秒钟执行完成的指令数量作为衡量计算机性能的一个指标,该指标以每秒钟完成的百万指令数作为单位。

CPU时间:计算某个任务时CPU实际消耗的时间,也即CPU真正花费在某程序上的时间。 计算机系统的层次结构:计算机系统的层次结构由多级构成,一般分成5级,由低到高分别是:微程序设计级,机器语言级,操作系统级,汇编语言级,高级语言级。 基准测试程序:把应用程序中使用频度最高的那那些核心程序作为评价计算机性能的标准程序。

软/硬件功能的等价性:从逻辑功能的角度来看,硬件和软件在完成某项功能上是相同的,

称为软/硬件功能是等价的,如浮点运算既可以由软件实现,也可以由专门的硬件实现。 固件:是一种软件的固化,其目的是为了加快软件的执行速度。

可靠性:可靠性是指系统或产品在规定的条件和规定的时间内,完成规定功能的能力。产

品可靠性定义的要素是三个“规定”:“规定条件”、“规定时间”和“规定功能”。 MTTF:平均无故障时间,指系统自使用以来到第一次出故障的时间间隔的期望值。 MTTR:系统的平均修复时间。

MTBF:平均故障间隔时间,指相邻两次故障之间的平均工作时间。

可用性:指系统在任意时刻可使用的概率,可根据MTTF、MTTR和MTBF等指标计算处系统的

可用性。

1.2 什么是计算机系统的硬件和软件?为什么说计算机系统的硬件和软件在逻辑功能上是

等价的? 答:计算机硬件系统是指构成计算机系统的电子线路和电子元件等物理设备的总称。硬件是构成计算机的物质基础,是计算机系统的核心。计算机的硬件系统包含运算器、控制器、存储器、输入设备和输出设备等五大部件。

计算机软件是计算机中全部程序的集合。软件按其功能分成应用软件和系统软件两大类。

计算机硬件实现的往往是最基本的算术运算和逻辑运算功能,而其它功能大多是通过软件的扩充得以实现的。有许多功能可以由硬件实现,也可以由软件实现,即从用户的角度来看它们在功能上是等价的,这一等价性被称为软/硬件逻辑功能的等价性。

1.3 冯·诺依曼型计算机的基本思想是什么?按此思想设计的计算机硬件系统应由哪些部

第 1 页 共 70 页

《计算机组成原理》习题答案 (秦磊华)

件组成?各起什么作用?

答:冯诺依曼型计算机的基本思想是存储程序和程序控制,其中的“存储程序”是指将解题的步骤编写成程序,然后把存储存放到计算机的内存中,而“程序控制”是指控制器读出存放在存储器中的程序并根据该程序控制全机协调工作以完成程序的功能。

根据冯诺依曼型计算机的基本思想,计算机的硬件应该由运算器、控制器、存储器、输入/输出设备和总线组成。

各部件的作用:

运算器:对数据进行运算的部件。 存储器:存放程序和数据。 控制器:根据指令的功能控制构成计算机的各大功能部件协调工作,共同完成指令的功能。

输入设备:将外部信息输送到主机内部的设备。

输出设备:能将计算机内部的信息以不同并且相应的形式反馈给人们的设备。

总线:连接两个或多个设备(部件)的公共信息通路。

1.4 什么是计算机字长?它取决于什么?计算机字长统一了哪些部件的长度?

答:计算机的字长一般指一次参与运算数据的基本长度,用二进制数位的长度来衡量。

它取决于运算器一次运算处理的二进制位数。它是计算机的重要性能指标。常用的计算机字长有8位、16位、32位及64位。

一般与计算机内部寄存器、加法器、数据总线的位数以及存储器字长等长,因此,字长直接影响硬件的代价。

1.5 计算机系统从功能上可划分为哪些层次?各层次在计算机系统中起什么作用?

答:计算机系统分成五级层次结构,第1级为微程序设计级、第2级为机器语言级、第3级为操作系统级、第4级为汇编语言级、第5级为高级语言级。

各层次的作用:

微程序级:为机器指令级提供机器指令的解释指行功能。 机器指令级:是软件系统和硬件系统的界面,一条机器指令的功能由微程序机器级的一段微型程序的功能实现。

操作系统级:调度计算机中的软件和硬件资源。 汇编语言级:它将用户编写的接近人类语言的程序,翻译成能在机器上运行的目标程序。

高级语言级:完全面向用户,是用户关心的目标,可执行各种用途的程序。

1.6 计算机内部有哪两股信息在流动?它们彼此有什么关系?

答:计算机中有两股信息在流动:一股是控制信息,即操作命令,它分散流向各个部件;一股是数据信息,它受控制信息的控制,从一个部件流向另一个部件,在流动的过程被相应的部件加工处理。

1.7 为什么说计算机系统的软件与硬件可以互相转化? 答:计算机硬件实现的往往是最基本的算术运算和逻辑运算功能,而其它功能大多是通过软件的扩充得以实现的。有许多功能可以由硬件实现,也可以由软件实现,即从用户的角度来看它们在功能上是等价的,这一等价性被称为软/硬件逻辑功能的等价性。

由于这样的等价性,所以可以说计算机系统的软件与硬件是可以互相转化的。 1.8 什么叫软件系统?它包含哪些内容?

第 2 页 共 70 页

《计算机组成原理》习题答案 (秦磊华)

答:一台计算机中全部程序的集合,统称为这台计算机的软件系统。软件按其功能分成应用软件和系统软件两大类。

应用软件是用户为解决某种应用问题而编制的一些程序。

系统软件用于对计算机系统的管理、调度、监视和服务等功能,常将系统软件分为以下六类:操作系统,言处理程序,标准程序库,服务性程序,数据库管理系统和算机网络软件。

1.9 说明高级语言、汇编语言和机器语言三者之间的差别和联系。

答:机器语言是直接用二进制代码指令表达的计算机语言,是一种面向机器的编程语言,属于低级语言。

汇编语言是用助记符号来表示计算机指令的语言,也是低级的语言。 高级语言是一类接近于人类自然语言和数学语言的程序设计语言的统称,分为面向过程的语言和面向对象的语言。

它们都是计算机的编程语言,并且是计算机编程语言发展的三个阶段。三者各自的特点: 使用机器语言编写的程序,占用内存少、执行效率高。缺点:编程工作量大,容易出错;依赖具体的计算机体系,因而程序的通用性、移植性都很差。

使用汇编语言编写计算机程序,能够根据特定的应用对代码做最佳的优化,提高运行速度;能够最大限度地发挥硬件的功能。但是编写的代码非常难懂,不好维护;开发效率很低,时间长且单调。

高级语言的优点是:编程相对简单、直观、易理解、不容易出错;编写的计算机程序通用性好,具有较好的移植性。

1.10 什么是系统的可靠性?衡量系统可靠性的指标有哪些?如何提高系统的可靠性? 答:系统的可靠性是指系统在规定的条件和规定的时间内,完成规定功能的能力。

衡量系统可靠性的指标有三个:平均无故障时间、平均故障间隔时间和可用性。 提高系统可靠性的常用方法包括避错和容错。前者即避免错误的出现,从而提高系统的平均无故障时间;后者容许错误的出现,但采取有效的方法来防止其造成的不利影响。

1.11 假定某计算机1和计算机2以不同的方式实现了相同的指令集,该指令集中共有A、B、C、D四类指令,它们在程序中所占比例分别为40%、20%、20%、20%,机器1和机器2的时钟周期为600MHZ和800MHZ,各类指令在两机器上的CPI如表1.5所示,求两机器的MIPS各为多少?

表1.5 两台计算机不同指令的CPI

A B C D CPI1 2 3 4 5 CPI2 2 2 3 4

666

解:CPI1= 2*0.4+ 0.2*(3+4+5)= 3.2 MIPS1= f/(CPI1?10) = 600?10/(3.2?10)=187.5

666

CPI2= 2*0.4+ 0.2*(2+3+4)= 2.6 MIPS2= f/(CPI1?10) = 800?10/(2.6?10)=307.7

1.12 若某程序编译后生成的目标代码由A、B、C、D四类指令组成,它们在程序中所占比例分别为40%、20%、15%、25%。已知A、B、C、D四类指令的CPI分别为1、2、2、2。现需要对程序进行编译优化,优化后的程序中A类指令条数减少了一半,而其它指令数量未发生变化。假设运行该程序的计算机CPU主频为500MHZ。完成下列各题:

第 3 页 共 70 页

《计算机组成原理》习题答案 (秦磊华)

1)优化前后程序的CPI各为多少? 2)优化前后程序的MIPS各为多少?

3)通过上面的计算结果你能得出什么结论? 解:1)优化前:CPI=

?(CPIi?i?1nICi) = 1? 0.4 + 2? 0.2 + 2? 0.15 + 2? 0.25 IC= 1.6

优化后:A、B、C、D四类指令在程序中所占比例分别为1/4、1/4、3/16、5/16,

CPI=

?(CPIi?i?1nICi) = 1? 1/4 + 2? 1/4 + 2? 3/16 + 2? 5/16 IC= 1.75

时钟频率2)根据 公式MIPS =CPI ? 106得

优化前:MIPS = (500?10)/(1.6?10) = 312.5

66

优化后:MIPS = (500?10)/(1.75?10) = 285.7

3)优化后,A类指令条数减少,造成计算机的CPI增加,MIPS减少。这样的优化虽然减少了A类指令条数,却降低了程序的执行速度。

1.1 各代计算机是以什么作为基本元件设计制造的? 1.2 计算机的应用可体现在哪几个方面?

1.3 计算机硬件系统由哪几大部件组成?各部件的主要功能是什么? 1.4 系统软件和应用软件的异同点是什么?

1.5 计算机系统可分为哪几个层次?层次之间有何关系?(试举例说明)

1.6 什么是计算机硬件和软件?为什么说往往硬件和软件在逻辑功能上是等价的? 1.7 主存储器中存放着大量信息,怎样从中取出指定的信息? 1.8 运算器能实现哪些基本运算?

1.9 控制器产生控制信号由哪些因素决定? 1.10 解释下列术语:

位 字节 字 双字 字长 存储单元 地址 ALU CPU 主机 外设 固件

66

第 4 页 共 70 页

《计算机组成原理》习题答案 (秦磊华)

第二章 数据表示方法 习 题 二

2.1解释下列名词

真值:正号和负号分别用“+”和“-”表示,数据位保持二进制值不变的数据表示方法。 数值数据:计算机所支持的一种数据类型,用于科学计算,常见的数值数据类型包括小数、整数、浮点数数等。 非数值数据:计算机所支持的一种数据类型,一般用来表示符号或文字等没有数值值的数据。 机器数:数据在机器中的表示形式,是正负符号数码化后的二进制数据。

变形补码:用两个二进制位来表示数字的符号位,其余与补码相同。即“00”表示正,“11”表示负。

规格化:将非规格化的数处理成规格化数的过程。规格化数规定尾数用纯小数表示,且真值表示时小数点后第一位不为0(以机器数表示时对小数点后第一位的规定与具体的机器数的形式有关)。

机器零:计算机保存数字的位有限,所能表示最小的数也有范围,其中有一个范围之中的数据无法精确表示,当实际的数据处在这个无法精确表示的数据范围时计算机就将该数作为机器零来处理,因此,计算机中的机器零其实对应的不是一个固定的数,而是一个数据表示范围。

BCD码:用4位二进制数来表示1位十进制数中的0~9这10个数码,即二进制表示的十进制数。

汉字内码:计算机内部存储、处理加工和传输汉字时所用的由0和1符号组成的代码。 码距:一组编码中对应位上数字位不同的最小个数。

奇偶校验:通过检测校验码中1的个数的奇/偶性是否改变来判断数据是否出错的一种数据校验方法。 海明校验:是一种基于多重奇校验且具有检测与纠正错误的校验方法。其基本原理是将有效信息按某种规律分成若干组,每组安排一个校验位进行奇偶测试,就能提供多位检错信息,以指出最大可能是哪位出错,从而将其纠正。 循环冗余校验:是数据通信领域中最常用的一种具有检测与纠正错误能力差错校验码,基利用生成多项式并基于模2运算建立编码规则。 检错:检测被传送的信息中是否发生差错。

纠错:纠正信息在传送或存储过程中所发生的错误。

2.2回答下列问题

1)为什么计算机中采用二进制?

答:因为二进制具有运算简单和表示简单的优点,除此之外还有可靠和容易实现等特点。

具体来说,是因为:

(1)技术实现简单,计算机是由逻辑电路组成,逻辑电话通常只有两个状态,开关

的接通与断开,这两种状态正好可以用“1”和“0”表示。

(2)简化运算规则:两个二进制数和、积运算组合各有三种,运算规则简单,有利

于简化计算机内部结构,提高运算速度。

(3)适合逻辑运算:逻辑代数是逻辑运算的理论依据,二进制只有两个数码,正好

与逻辑代数中的“真”和“假”相吻合。

(4)易于进行转换,二进制与十进制数易于互相转换。

2)为什么计算机中采用补码表示带符号的整数?

第 5 页 共 70 页

《计算机组成原理》习题答案 (秦磊华)

答:采用补码运算具有如下两个特征:

(1)因为使用补码可以将符号位和其他位统一处理,同时,减法也可以按加法来处理,即如果是补码表示的数,不管是加减法都直接用加法运算即可实现。

(2)两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。 这样的运算有两个好处:

(a)使符号位能与有效值部分一起参加运算,从而简化运算规则。从而可以简化运算器的结构,提高运算速度;(减法运算可以用加法运算表示出来。)

(b)加法运算比减法运算更易于实现。使减法运算转换为加法运算,进一步简化计算机中运算器的线路设计。

3)浮点数的表示范围和精确度分别由什么决定?字长一定时浮点数的表示范围与精确度之间有和关系?

答:浮点数的表示范围由阶码的位数决定,精确度由尾数的位数决定。

当机器字长一定时,分给阶码的位数越多,尾数占用的位数就越少,则数的表示范围越大。而尾数占用的位数减少,必然会减少数的有效数位,即影响数的精度。

4)汉字输入码、机内码和字型码在汉字处理过程中各有何作用?

答:汉字输入码、机内码和字型码,分别用于汉字的输入、汉字在计算机内的处理以及汉字的显示和打印。

具体来说,计算机要对汉字信息进行处理,首先要将汉字转换成计算机可以识别的二进制形式并输入到计算机,这是由汉字输入码完成的;汉字输入到计算机后,还需要转换成内码才能被计算机处理,显然,汉字内码也应该是二进制形式。如果需要显示和打印汉字,还要将汉字的内码转换成字形码。

5)在机内码中如何区分两个ASCII码字符和一个汉字? 答:将一个汉字看成是两个扩展ASCII码,使表示GB2312汉字的两个字节的最高位都为1,而每个ASCII码字符中每个字节的最高位为0。这样就能区别一个机内码到底对应一个汉字还是两个西文字符。

6)“8421码就是二进制数”。这种说法对吗?为什么?

答:这种说法是不对的。8421码是一种最简单的有权码,它选取4位二进制数的前10个代码0000~1001分别对应表示十进制数的10个数码。若按权求和,和数就等于该代码所对应的十进制数。

8421码是一种编码方式,用于十进位制与二进制数之间的转换。

而二进制数是用0和1两个数码来表示的数。二者是不同的概念,不能等同。

7)如何识别浮点数的正负?浮点数能表示的数值范围和数值的精确度取决于什么?

答:当采用一般浮点数格式表示浮点数时,阶码和尾数都各包含一位符号位。浮点数的正负由尾数的的符号位决定。当采用IEEE754格式时,通过数符就能判断出浮点数的正负。

浮点数能表示的数值范围和数值的精确度,分别取决于阶码的位数和尾数的位数。

8)简述CRC的纠错原理。

答:发送部件将某信息的CRC码传送至接收部件,接收部件收到CRC码后,仍用约定的生成多项式G(x)去除,若余数为0,表示传送正确;若余数不为0,表示出错,再由余数的值来

第 6 页 共 70 页

《计算机组成原理》习题答案 (秦磊华)

确定哪一位出错,从而加以纠正。具体的纠错原理如下:

(1)不论错误出现在哪一位,均要通过将出错位循环左移到最左边的一位上时被纠正; (2)不为零余数的具有循环特性。即在余数后面补一个零除以生成多项目式,将得到下一个余数,继续在新余数基础上补零除以生成多项式,继续该操作,余数最后能循环到最开始的余数。

(3)CRC就是利用不为零余数的循环特性,在循环计算余数的同时,将收到的CRC编码同步移动,当余数循环到等于最左边位出错对应的余数时,表明已将出错的位移到CRC码的最左边,对出错位进行纠错。

(4)继续进行余数的循环计算,并同步移动CRC编码,当余数又回到最开始的值时,纠错后的CRC码又回到了最开始的位置。至此,完成CRC的纠错任务。

2.3 写出下列各数的原码、反码和补码。 0, 一0, 0.10101, 一0.10101, 0.11111, 一0.11111, -0.10000, 0.10000 解:

x=0,则[+0]原 = 0.00?0 , [+0 ]反= 0.00?0,[+0]补 =0.00?0; x=-0,则[-0]原 = 1.00?0,[-0]反 = 1.11?l,[-0]补 = 0.00?0; x=0.10101,则[x]原 =0.10101,[x]反 =0.10101,[x]补 =0.10101; x=一0.10101,则[x]原 =1.10101,[x]反 =1.01010,[x]补 =1.01011; x=0.11111,则[x]原 =0.11111,[x]反 =0.00000,[x]补 =0.00001; x=一0.11111,则[x]原 =1.11111,[x]反 =1.00000,[x]补 =1.00001; x=-0.10000,则[x]原 =1.10000,[x]反 =1.01111,[x]补 =1.10000; x=0.10000,则[x]原 =0.10000,[x]反 =0.10000,[x]补 =0.10000。

2.4 已知数的补码表示形式,求数的真值。

[x]补=0.10010, [x]补=1.10010, [x]补=1.11111, [x]补=1.00000, [x]补=0.10001, [x]补=1.00001,

解:

[x]补=0.10010,则[x]原=0.10010,x=0.10010; [x]补=1.10010,则[x]原=1.01101,x=-0.01101; [x]补=1.11111,则[x]原=1.00000,x=-0; [x]补=1.00000,则[x]原=1.11111,x=-0.11111; [x]补=0.10001,则[x]原=0.10001,x=0.10001; [x]补=1.00001,则[x]原=1.11110,x=-0.11110。

2.5 已知x=0.10110,y=—0.01010,求:

[x/2]补, [x/4]补, [y/2]补, [2y]补

解: [x]原=0.10110=[x]反=[x]补,

所以[x/2]补=0.010110,[x/4]补=0.0010110; [y]原=1.01010,[y]反=1.10101,[y]补=1.10110, 所以[y/2]补=1.110110,[2y]补=1.0110。

2.6 C语言中允许无符号数和有符号整数之间的转换, 下面是一段C语言代码: Int x =-1;

Unsigned u=2147483648;

第 7 页 共 70 页

《计算机组成原理》习题答案 (秦磊华)

Printf (“x=%u=%d\\n”,x,x); Printf (“u=%u=%d\\n”,u,u);

给出在32位计算机中上述程序段的输出结果并分析原因. 解:x=4294967295=-1;u=2147483648=-2147483648

原因:x是int型,在计算机中以补码形式存在。%u以无符号输出,%d输出真值,所以x=4294967295=-1。

u=231是一个无符号数,无溢出,由于首位为1

%u符号输出第一位为非符号位,所以是2147483648

%d 第一位为符号位,所以是负数,取反加1还是231所以是-2147483648。

2.7 分析下列几种情况下所能表示的数据范围分别是多少 1)16位无符号数;

2)16位原码定点小数; 3)16位补码定点小数; 4) 16位补码定点整数; 解:

1)16位无符号数:0 ~ 1111 1111 1111 1111,即0 ~ 216-1=65535

2)16位原码定点小数:1.111 1111 1111 1111 ~ 0.111 1111 1111 1111,即 -(1-2-15)~ 1-2-15 3)16位补码定点小数:1.000 0000 0000 0000 ~ 0.111 1111 1111 1111,即 -1 ~ 1-2-15 4) 16位补码定点整数:1000 0000 0000 0000 ~ 0111 1111 1111 1111,即 -215 ~ 215-1

2.8 用补码表示8位二进制整数,最高位用一位表示符号(即形如x0x1x2x3x4x5x6x7)时,模应为多少?

解:因为8位二进制数补码的表示范围为:-128~127一共有256个数,所以模为256。

2.9 用IEEE754 32位浮点数标准表示十进制数

a)?65 b)3.1415927 c)64000

8解:

a) 首先分别将整数和分数部分转换成二进制数:

5?6=-110.101 8移动小数点,使其变成1.M的形式: -110.101=-1.10101*22 于是得到:

S=0, e = 2,E= 10+01111111 = 10000001,M = 10101 最后得到32位浮点数的二进制存储格式为:

1100 0000 1101 0100 0000 0000 0000 0000=(C0D40000)16

b) 首先分别将整数和分数部分转换成二进制数: 3.1415927=11.00100100001111110110101 移动小数点,使其变成1.M的形式

11.00100100001111110110101=1.100100100001111110110101×2

第 8 页 共 70 页

《计算机组成原理》习题答案 (秦磊华)

于是得到:

S=0, e = 1,E= 1+01111111 =10000000,M = 10010010000111111011010 最后得到32位浮点数的二进制存储格式为:

0100 0000 0100 1001 0000 1111 1101 1010=(40490FDA)16

c) 首先将6400转换成二进制数: 64000=1100100000000

移动小数点,使其变成1.M的形式 1100100000000=1.100100000000×212 于是得到:

S=0, e = 12,E= 1100+01111111 =10001011,M = 1001 最后得到32位浮点数的二进制存储格式为:

0100 0101 1100 1000 0000 0000 0000 0000=(45C80000) 16

2.10 求与IEEE754 32位浮点数43940000H对应的十进制数。 解:

43940000H=(0100 0011 1001 0100 0000 0000 0000 0000)2 S=0,E=(10000111)2-127=8,M=1.00101

所以表示数为100101000,对应的十进制数为296。

2.11 求32位 IEEE754 浮点数能表示的最大数和最小数。

解:用IEEE754格式(E的取值范围:1~254,留出全0和全1分别表示0和无穷大)

31 30 23 22 0

S E M (1) 最大数的二进制表示:

0 11111110 11111111111111111111111 即 2(2-2) (2) 最小数的二进制表示:

1 11111110 11111111111111111111111 即 - 2(2-2)

2.12 设有两个正浮点数:N1=2m×M1,N2=2n×M2。

(1)若m>n,是否有N1>N2?

(2)若M1和M2是规格化的数,上述结论是否正确? 解:(1)不一定。 例如,N1=23×0.001,N2=22×0.01,此时m>n,却有N1=N2。

再如,N1=23×0.001,N2=22×0.1,此时m>n,却有N1<N2。 (2)正确。

因为浮点数规格化,要求尾数的最高位为非0数码,即当尾数的值不为零时,其绝对值应大于或等于(1/2)10。

那么M1和M2都必须是0.1× × ? ×的形式。这时,若m>n,则一定有N1>N2。

2.13 设二进制浮点数的阶码为3位,尾数是7位。用模2补码写出它们所能表示的最大正

第 9 页 共 70 页

127

-23

127

-23

《计算机组成原理》习题答案 (秦磊华)

数、最小正数、最大负数和最小负数,并将它们转换成十进制数。 解: 补码 真值

3-6

最大正数: 011;0.111111, 2×(1-2)

3-6

最小正数: 101;0.000001, 2×2

3-6

最大负数: 101;1.111111, -2×2

3-6

最小负数: 011;1.000000, -2×(1-2)

2.14 将下列十进制数表示成浮点规格化数,阶码4位,尾数10位,各含1位符号,阶码和

尾数均用补码表示。

(1)57/128 (2) —69/128 解:(1)57/128=(0.0111001)2,记x=0.0111001,则[x]原=[x]反=[x]补=0.0111001, 规格化:[x]补=0.111001*2-1

阶码的原码为:1001,因此补码为:1111 尾数为:0111001000

表示成浮点规格化数:1111 0111001000

(2)-69/128=(-0.1000101)2,记x=-0.1000101,则[x]原=1.1000101,[x]反=1.0111010,[x]补=1.0111011,

无需规格化,阶码为0000,尾数为1011101100 表示成浮点规格化数:0000 1011101100

2.15 设有效信息为01011011,分别写出奇校验码和偶校验码。如果接收方收到的有效信息为01011010,说明如何发现错误。 解:奇偶校验位分别为:0和1, 奇校验码:010110110 偶校验码:010110111

如果采用奇校验,则发送方发出的奇校验码x=010110110(前8位是有效信息位,最后一位是校验位),

如果接收方收到的x=010110100 (只有1位出错,最后一个0是校验位), 接收方按奇校验方式根据01011010计算得到的验位C’=1 ,与从信息中读到得校验码的取值不同,表明传送的信息发生了错误。

如果采用偶校验,利用相似的方法可以发现错误。

2.16由 6 个字符的 7 位 ASCII 编码排列,再加上水平和垂直偶校验位构成如表2.23的行列结构(最后一列为水平奇偶校验位,最后一行为垂直奇偶校验位)

表2.23 ASCII码交叉校验

字符

7 位 ASCII 码

1 X3 1 1 X8

HP 0 1 0 1 0

3 0 X1 X2 0 0 1 Y1 1 0 0 1 0 0 + X4 1 0 1 0 1 Y2 0 1 X5 X6 1 1 D 1 0 0 X7 1 0

第 10 页 共 70 页

《计算机组成原理》习题答案 (秦磊华)

(2)[y]补=0.11011,[-y]补=1.00101 源码不恢复余数法:

被除数/余数 商寄存器 上商位 说明 00.10101 +[-y]补 11.00101 (x-y)比较 11.11010 0 r0<0,商上0

← 11.10100 0 左移一位

+ 00.11011 余数为负,加y比较 00.01111 1 r1>0,商上1 ← 00.11110 0.1 左移一位

+[-y]补 11.00101 余数为正,减y比较

1 00.00011 1 r2>0,商上1 ← 00.00110 0.11 左移一位

+[-y]补 11.00101 余数为正,减y比较

0 11.01011 0 r3<0,商上0 ← 11.10110 0.110 左移一位

+ 00.11011 余数为负,加y比较 1 00.00001 0.1101 1 r4>0,商上1,左移一位

← 00.00010 +[-y]补 11.00101 11.00111 0.11010

余数为正,减y比较 r5<0,商上0,只移商

-101

[x]原÷[y]原=[Q]原=-0.11010,余数[r]原=1.00111。

第 21 页 共 70 页

《计算机组成原理》习题答案 (秦磊华)

补码不恢复余数法:

[y]补=1.01011,[y]补=0.11011,[-y]补=1.00101

被除数/余数 商 上商位 说明 11.01011 +[y]补 00.11011 被除数与除数异号,加除数比较 00.00110 1 余数r0与除数同号,商上1

← 00.01100 1 左移一位,商从上商位移入商寄存器 +[-y]补 11.00101 减除数比较

11.10001 0 余数r1与除数异号,商上0 ← 11.00010 1.0 左移一位 +[y]补 00.11011 加除数

11.11101 0 余数r2与除数异号,商上0 ← 11.11010 1.00 左移一位 +[y]补 00.11011 加除数比较

00.10101 1 余r3与除数异号,商上1 ← 00.01010 1.001 左移一位 +[-y]补 11.00101 减除数比较

11.01111 0 余r4与除数同号,商上0

← 11.10110 1.0010 +[y]补 00.11011 1 00.10001 1.00101

故[x÷y]衬= 1.00101,余数[r]补=0.0000010001

因未除尽,商为负,因此商需要校正。[x÷y]衬=1.00101+0.00001=1.00110 商为负,余数与被除数同号,余数不需要处理。

3.9设数的阶码为3位,尾数为6位(不包括符号位)按机器补码浮点运算步骤,完成[x+y]补

左移一位 加除数比较

余r3与除数同号,商上1

(1) x=2×0.100100,y=2×(-0.011010) (2) x=2

-101

011010

×(-0.100010),y=2

-100

×(-0.010110)

解:1、(a)对阶 [x]补=00011 00100100 [y]补=00010 11100110

阶差 △E=Ex-Ey=00001,阶差为1

将[y]补尾数右移一位得到00011 11110011

(b)相加 [x]补+[y]补=00011 00010111,尾数相加为00010111

第 22 页 共 70 页

《计算机组成原理》习题答案 (秦磊华)

(c)结果规格化 由于尾数符号位跟最高有效位相同,需要左规:

规格化结果为:[x]补+[y]补=00010 00101110 则:[x]补+[y]补=00010 00101110 (d)不需舍入,无溢出

2、(a)对阶 [x]补=11011 11011101 [y]补=11100 11101010

阶差 △E=Ey-Ex=00001,阶差为1

将[x]补尾数右移一位得到11100 11101111

(b)相加 [x]补+[y]补=11100 11011001,尾数相加为11011001 (c)结果规格化 由于尾数符号位跟最高有效位不相同,不需要左规:

(d)不需舍入,无溢出

3.10采用IEEE754单精度浮点数格式计算 (1)0.625+(-12.25)

(2) 0.625 – (- 12.25)

解:(1)0.625=(0.101)2=(0 01111110 01000000000000000000000)2

-12.25=(1 10000010 10001000000000000000000)2 对阶 01111110-10000010=-00000100 尾数计算

将0.625的尾数右移4位,计算得到: 0.000101+(-1.100010)=-1.011101

=(C13A0000)16

则0.625+(-12.25)=(1 10000010 01110100000000000000000)2

(2)0.625=(0.101)2=(0 01111110 01000000000000000000000)2 -12.25=(1 10000010 10001000000000000000000)2 对阶 01111110-10000010=-00000100 尾数计算

将0.625的尾数右移4位,计算得到: 0.000101-(-1.100010)=1.100111

=(414E0000)16

则0.625+(-12.25)=(0 10000010 10011100000000000000000)2

3.11 用“与或非”门设计一个4位并行进位的加法器。 解:C1=Y1+X1C0= Y1?X1C0 C2=Y2+X2C1 = Y2 + X2Y1 + X2X1C0 = Y2 ? X2Y1 ? X2X1C0 C3=Y3+X3C2 = Y3+ X3Y2 + X3X2Y1+ X3X2X1C0= Y3? X3Y2 ? X3X2Y1? X3X2X1C0 C4=Y4+X4C3 = Y4+ X4Y3+ X4X3Y2 + X4X3X2Y1+ X4X3X2X1C0 =Y4? X4Y3? X4X3Y2 ? X4X3X2Y1? X4X3X2X1C0 电路图略

第 23 页 共 70 页

《计算机组成原理》习题答案 (秦磊华)

3.12 利用上题结果,设计一个4位运算器。运算器中包括加法器、两个寄存器、输入选择和输出控制电路。要求输入选择电路能接收选择总线或寄存器中的数据,能对两个寄存器中的数以原码和补码两种形式送入加法器,并能对加法器的输出进行直接传送、左移一位和右移一位传送,然 后以将结果送寄存器或总线。

本题略

2.15 已知X和Y,试用变形补码计算[X]补+[Y]补,并说明运算结果是否溢出。 (1) X=-0.11011,Y=-0.10111 (2) X=-0.10110,Y= 0.11101

2.16 已知X、Y,试用变形补码计算[X]补-[Y]补,并说明运算结果溢出与否。 (1) X= 0.11010,Y=-0.11011 (2) X=-0.10101,Y=-0.11010

2.17 用补码一位乘法计算[X]补 ? [Y]补。

(1) X =-0.10111,Y = 0.10101

(2) X=-0.11010,Y =-0.1011

2.18 用补码不恢复余数法计算[X]补?[Y]补。

(1) X = 0.10101,Y = 0.11011

(2) X =-0.10101,Y = 0.10111

2.19 设阶码为4位,尾数为8位(各含一位符号位),试按浮点补码运算步骤计算[X]补+[Y]补及[X]补-[Y]补。

(1) X=2–10 ? (-0.1010110),Y=2–100 ?(-0.1101100)

(2) X=211 ? 0.1010110,Y=2100 ? 0.1100110 2.20 定点数与浮点数的溢出判断方法有什么不同? 2.21 浮点运算中对运算结果左规和右规的具体法则有什么? 2.22 为什么采用先行进位能提高加法器的运算速度?

2.23 试述表达式C14 =G14 + P14G15 + P14G15C16中各项的实际含义。 2.24 运算器由哪几个主要功能部件组成?各功能部件的作用是什么?

2.25 利用SN74181和SN74182芯片设计一个3级先行进位的64位ALU(框图形式)。

第 24 页 共 70 页

《计算机组成原理》习题答案 (秦磊华)

第四章 存储系统 习 题 四

4.l 解释下列名词:

存储单元:保存数据的基本内存单元。根据保存内容的大小,一般可分位存储单元,字存储

单元等。存储单元一般应具有存储数据和读写数据的功能,每个单元有一个地址,并按地址访问。 存取时间:又称为存储器的访问时间,是指启动一次存储器的操作(读或写分别对应存与取) 到该操作完成所经历的时间。

存取周期:连续启动两次访问操作之间的最短时间间隔。

存储器带宽:单位时间内存储器所能传输的信息量,常用的单位包括位/秒或字节/秒。 静态存储器:存储体以静态MOS存储元为基本单元组成的存储器称为静态存储器。 动态存储器:存储体以动态存储元为基本单元组成的存储器称为动态存储器。

刷新:动态存储单元中,为使所存信息能长期保存,在电容电荷泄露完之前定时地补充电荷 的过程。

猝发式读:只需给出块的起始地址,然后对固定块长度的数据一个接一个地读出的快速存储器读

方式。即一块数据的读出只需要给出一个地址的数据读取方式。

多模块交叉存储器:由多个存储容量相同,读写速度相同或相近的多个存储模块构成容量更

大的存储器,其中每个存储模块具有各自独立的地址寄存器、地址译码器、驱动电路和读写控制电路,根据存储模块的组织方式不同,又可分为低位交叉和高位交叉两种组织方式。。

高速缓冲存储器:为缓解快速的CPU与慢速主存之间的速度差异,在CPU和主存之间插入的

一至多级速度较快、容量较小的SRAM,起到缓冲作用;使CPU既可以以较快速度存取SRAM中的数据,又不使系统成本上升过高。

双端口存储器:指同一个存储器具有两组相互独立端口的存储器,每个端口有各自独立的数 据端口、地址端口以及读/写控制端口、片选端口等,每个端口可独立进行 读写操作。

相联存储器:是一种按内容访问的存储器(Content Addressable Memory:CAM),用于提

高查找信息的速度。在计算机系统中,相联存储器主要用于虚拟存储器中存放段表、页表和快表以及高速缓冲存储器中的查找。

时间局部性:指当程序访问一个存储位置时,有很大的可能性程序会在不久的将来再次访问 同一位置,程序的循环结构和过程调用就很好地体现了时间局部性。 地址映射:指把主存地址空间映射到Cache的地址空间,即把存放在主存中的程序或数据按 照某种规则装入到Cache,并建立两者之间地址的对应关系。

组相联映射:地址映射时,主存数据块只能映射到索引字段所指向的Cache特定组(其中的 行可任选);地址变换时,需查找的范围也只是索引字段所指向的特定Cache

组的所有行。

直接映射:地址映射时,主存数据块只能映射到索引字段所指向的Cache行中保存;地址变 换时,需查找的范围也只涉及索引字段所指向的特定Cache行。

全相联映射:主存地址不划分索引字段,因此地址映射时,主存数据块可以映射到Cache 的任意行中;地址变换时,需查找所有的Cache行。

命中率:指CPU访问存储系统时,命中Cache的次数占总访问次数的比铝。设NC为某程序

运行期间命中Cache的次数,Nm为从主存中访问信息的次数,则 命中率(hit ratio)H定义为:

第 25 页 共 70 页

《计算机组成原理》习题答案 (秦磊华)

地址复用:可以从不同的角度来理解该概念。第一种方式是指CPU的地址线在一次存储访问过程中多次使用,每次作为访问地址的不同部分使用;另一种是指地址线在一次存储访问的不同阶段分别作为地址线和数据线使用,即地址总线在存储访问的不同时间段表现出不同的功能。

字扩展:用多位满足一定要求的存储芯片构成容量更大的存储器。 位扩展:用多片存储芯片构成位数更多的存储器。

虚拟存储器:是一种解决主存容量不足的存储管理机制,处于存储系统层次结构中“主存-辅存”存储层次。在这种机制下,通过增加部分软件(如操作系统)和必要的硬件(如地址映射与转换机构、缺页中断结构等),使辅存和主存构成一个有机的整体,就像一个单一的、可供CPU直接访问的大容量主存,程序员使用比主存空间大的逻辑地址空间编程序,作业运行时,主需要将作业当前执行的部分调入内存,而其余部分仍然存放在磁盘中,从而减少对主存的消耗。

页表(慢表):是一张保存虚拟页号和物理页号(也称实页号)之间对应关系的表格。

页表项:页表的表项,每一个表项由有效位和物理页号两部分构成,用于实现虚拟地址与物

理地址之间的转换。

TLB(快表):又称为转换旁路缓冲器(Translation Look- aside Buffer),为了降低虚拟存

储器地址转换的开销,根据局部性原理,将页表的一部分装入MMU或Cache中,从而减少虚拟地址与物理地址之间转换时访问内存的次数。

LRU:LRU(Least Recently Used)算法是将近期内长久未被访问过的行换出。

LFU:LFU(Least Frequently Used)算法将一段时间内被访次数最少的那行数据换出。 存储保护:为了保证计算机系统能正确运行,当多个用户共享主存时,应防止由于一个用户 程序出错而破坏其他用户的程序和系统软件,以及一个用户程序不合法地访问不

是分配给它的主存区域。

Cache一致性:指保存在cache中的数据与保存在主存相关单元的数据相同。

写回法:当CPU对Cache写命中时,只修改Cache的内容不立即写入主存,只当Cache行被替换时才将Cache中的数据写回主存。

写直达法:也称写贯通法或全写法,其基本思想是当Cache写命中时,同时对Cache和主存中

同一数据块进行修改;当cache写未命中时,直接向主存写入新的信息,但此时是否将修改过的主存块调入Cache,写直达法却有两种选择。一种是将数据调入Cache,称为写分配法WA(Write-Allocate)。另一种是不取主存块到Cache,而是直接写主存,称为非写分配法NWA(No-Write-Allocate)。

边界对齐的数据存放:指半字、字、双字都按它们各自地址所指定的空间进行存储,而不是 随意存放。 大端:存储器的低字节地址单元中存放的是数据的最高字节,高字节地址单元中存放的是数 据的最低字节。

RAID:廉价冗余磁盘阵列RAID(Redundant Array of Inexpensive Disk)或独立冗余磁盘

阵列RAID(Redundant Array of Independent Disk),简称磁盘阵列,它将多块独立的普通磁盘按照一定的方式组织与管理,构成一个大容量、高速度、高容错的存储系统。

寻道时间:将磁头定位到指定磁道上所需的时间。

旋转时间:磁头定位到指定磁道后至指定的记录移到磁头下的时间。

第 26 页 共 70 页

《计算机组成原理》习题答案 (秦磊华)

4.2 回答下列问题:

1)计算机系统中采用层次化存储体系结构的目的是什么? 层次化存储体系结构如何构成? 答:采用层次化存储体系的目的包括两方面:其一是解决快速的CPU和慢速的主存之间的速度差异;其二是解决主存容量不够大的问题.

存储系统的分级结构由Cache、主存和辅助存储器三级结构构成。

其理论基础是时间局部性原理和空间局部性原理,Cache—主存存储层次解决了主存速度不快的问题;而主存-辅存存储层次解决了主存容量不足的问题。 2)为什么在存储器芯片中设置片选输入端? 答:由于存储芯片的容量及字长与目标存储器的容量及字长之间可能存在差异,应用存储芯片组织一定容量与字长的存储器时,一般可采用位扩展、字扩展、字位同时扩展等方法来组织。这样就会使用多个存储芯片,从而要设置片选输入端来选择正确的存储芯片来进行操作。 3)动态MOS存储器为什么要刷新?如何刷新?

答:动态存储单元中,信息以电荷形式存储在T1或T2管的栅极电容中。由于电容容量小,所存电荷会在一段时间后逐渐泄漏(一般为ms级),为使所存信息能长期保存,需要在电容电荷泄露完之前定时地补充电荷,这一过程称为刷新。 刷新的方法:

①刷新方式:集中刷新、分散刷新和异步刷新。前者存在CPU死时间;分散刷新由于刷新次数过多,降低了存储器的速度;异步刷新是前两者的折中。

②刷新按行进行,因此设计刷新电路时需要知道动态存储器的内部行、列结构。 ③刷新地址由刷新地址计数提供。

4)试述多体交叉存储器的设计思想和实现方法。

答:多体交叉存储器由多个存储模块构成,这些模块的容量和存取速度相同,具有各自独立的地址寄存器、地址译码器、驱动电路和读写控制电路。根据对多各模块编址方式的不同,又可分为高位多体交叉和低位多体交叉两种方式。

(1)高位交叉:按存储器地址的高位地址划分模块,同一存储体内的地址是连续的。当多个目标同时访问存储器时(如CPU和DMA设备同时访问存储器),如果访问的地方范围处于不同的存储芯片,则提供并行访问。

(2)低位交叉:按存储器地址的低位地址划分模块,同一存储体内的地址不相邻,相邻地址处在不同存储体中。CPU可同时启动多个存储体,并进行并行访问。 5)为什么说Cache对程序员是透明的? 答:因为在程序员看来,数据是在内存和辅存之间进行交换的,程序员感觉不到中间层cache 的存在。

6)直接映射方式下为什么不需要使用替换算法?

答:因为在直接映射方式中,一个内存块只能固定的映射到cache中的特定行,当有新的主存块调入时, cache特定行中的内容必须调出,因此不需要替换算法去选择替换掉哪一块。 7)为什么要考虑Cache的一致性? 答:正常情况下,cache中的数据是主存数据的副本,当两者不一致时可能导致程序结果不正确,因此,必须考虑并设法保证Cache的一致性。 8)替换算法有哪几种?各有何优缺点? 答:① 先进先出算法(FIFO)

基本思想:按照数据块进入Cache的先后决定替换的顺序,即在需要进行替换时,选择最先 被调入Cache中的块作为替换块。这种方法要求为每块记录它们进入Cache的先 后次序。

第 27 页 共 70 页

《计算机组成原理》习题答案 (秦磊华)

优点:FIFO算法系统开销较小。

缺点:是不考虑程序访问的局部性,可能会把一些需要经常使用的块(如循环程序块)也作 为最早进入Cache的块而替换掉,因此,可能导致Cache的命中率不高。 ② 近期最少使用(LRU)算法

基本思想:将近期内长久未被访问过的行换出。为此,每行设置一个计数器,cache每命中

一次,命中行计数器清零,其它各行计数器增1,因此它是未访问次数计数器。当需要替换时,比较各特定行的计数值,将计数值最大的行换出。

优点:这种算法显然保护了刚调入Cache的新数据,符合cache工作原理,因而使cache有较高 的命中率。LRU算法硬件实现简单 ③ 最不经常使用(LFU)算法

基本思想:将一段时间内被访次数最少的那行数据换出。为此,每行设置一个计数器,新新 调入行的数据从0开始计数,每访问一次被访行的计数器增1。当需要替换时,对 这些特定行的计数值进行比较,将计数值最小的行换出。

缺点:一段期间访问情况不能严格反映近期访问情况。例如特定行中的A、B两行,A行在

期间的前期多次被访问而后期未被访问,但累积计数值很大,B行是前期不常用而后期却正被频繁访问,但可能由于累积计数小于A行而被LFU算法换出了。 ④ 随机替换算法

基本思想:需要进行替换时,从特定的行位置中随机地选取一行进行替换。 优点:硬件实现最容易,而且速度也比前几种策略快。

缺点:随意换出的数据很可能马上又要用,从而降低命中率和cache工作效率。但这个负面

效应随着cache容量增大会减少,模拟研究表明随机替换策略的功效只是稍逊于LFU和LRU。

9)不同RAID级各有哪些技术特点? 答:RAID0具有如下技术特点:

① 无数据冗余、无数据校验功能,因此它不具备数据的容错能力,数据的可靠性不高; ② 从RAID0的数据分布看,其本质上是多磁盘体交叉存储(类似于主存的多体交叉存储),多个磁盘可并行工作,存储系统的访问速度高。 ③ 条带的大小影响RAI0的性能与应用

a)条带大小对数据传输率的影响:小条带可将数据分配到更多的磁盘上,通过更多磁盘的并

行工作可提高存储系统的数据传输率。

b)条带对I/O请求响应速度的影响:在面向事物处理的应用中,可能同时存在上百个I/O

请求。此时,用户对I/O请求的响应时间比较关注。通过选者小而适中的条带,使得一次事务请求所传送的数据刚好集中在一个条带中,就能大大减少每个I/O请求的响应时间。

④ 磁盘利用率高,由于RAID 0中没有冗于数据,所有的磁盘存储空间都可保存工作数据。RAID0主要应用于对访问速度要求高,但对数据的可靠性要求不高的场合。

RAID 1具有如下技术特点:

① 每个磁盘都有一个镜象磁盘,图4.60中备份磁盘i就是磁盘i的备份盘;

② 读请求时,可由包含该数据的两个磁盘中的任一个提供;写请求时,需同时更新两个磁盘中相应的数据块;

③ 当一个磁盘被损坏时,数据仍可从另一磁盘获取。因此具有很高的安全性; ④ 存储系统中磁盘的利用率只有50%; ⑤ 无数据校验功能;

⑥ 对大批读请求来说,RAID 1可以从对应的盘中并行读出。但对于写,其效率并不高。

第 28 页 共 70 页

《计算机组成原理》习题答案 (秦磊华)

由于RAID1的读性能优于写性能,因此,RAID1主要应用于对数据的可用性要求高,且读操作所占比重较高的场合。 RAID2具有如下技术特点:

① 条带容量小,按位交叉存储,因此每个I/O请求都会访问到多个磁盘,导致I/O响应速度慢;

② 每个I/O请求都会访问到多个磁盘;对于单个读,所有磁盘同时读取,数据和相应的纠错码被送至控制器,若出现一位错,则由控制器立即识别并纠正。对于单个写,所有数据盘和校验盘都要进行写操作;

③ 采用海明校验,具有纠错和检错功能,数据的可靠性高;但控制复杂; ④ 冗余存放校验位,其数量与使用的数据盘的数量成正比;

⑤ 由于按位存取,在I/O过程中所有磁盘上的磁头在任何时刻都处于同一位置,具有空间并行处理能力,数据传输率高。

受成本的影响,目前RAID2很少被使用。 RAID 3的技术特点与RAID2类似,不同点主要有两方面,其一是采用奇偶校验而不是海明校验,其二是校验盘只有一个,磁盘的利用率高。 RAID4的技术特点如下:

① 采用大条带区,I/O请求响应速度快,但数据传输率不高; ② 采用奇偶校验技术; ③ 各盘采用独立存取技术; ④ 磁盘利用率高;

⑤ 校验盘成为写访问的瓶颈。 RAID5具有如下技术特点:

① 采用大条带区,I/O请求响应速度快; ② 采用奇偶校验技术; ③ 各盘采用独立存取技术;

④ 校验信息在不同磁盘中循环存放,克服了RAID4中校验盘成为写瓶颈的不足; ⑤ 磁盘利用率高。

可以认为RAID5是对RAID4的改进,对大、小数据的读/写都具有较好的性能,具有比较广泛的应用。

RAID 6采用了按块交叉存放和双磁盘容错技术,相对RAID 5而言,其缺点是在组成中增加了一个磁盘,而且每次写都要进行P和Q两种校验以形成两个奇偶校验块。 10)说明磁表面存储器记录二进制信息的基本原理。

答:磁表面存储器利用磁性材料剩磁的两种磁化方向(S-N或者N-S)来记录信息。 写入信息时,在读/写线圈中通上脉冲电流(电流的方向不同,则写入的信息不同),磁头气隙处的磁场把它下面一小区域的磁层向某一方向磁化(S—N或 N—S),形成某种剩磁状态,因而记下一位二进制信息。磁层上这个被磁化的小区域,称为磁化单元。随着磁层的运动,读/写线圈中的一串电流脉冲,就会在磁层上形成一串磁化单元。

读出时,某一磁化单元移动到磁头处,在磁层与磁头交链的磁路中磁通发生变化,于是在读/写线圈中感应出不同方向的电流,经读出放大器放大和整形之后,还原出写入的信息。 11)主存与磁盘存储器在工作速度方面为何采用不同的参数指标?后者采用哪几个指标表明其工作速度?为什么?

答:因为两种存储器的存储数据的原理不同,所以不能采用同一种技术指标。磁盘存储器采用平均定位时间(寻道时间+等待时间)和数据传输速率两个指标表明工作速度。

第 29 页 共 70 页

《计算机组成原理》习题答案 (秦磊华)

4.3 对于32K字容量的存储器,若按字编址,字长16位。其地址寄存器应是多少位?数据寄存器是多少位?

解:该存储器的寻址空间为:32K*8位/16位=16K字 地址寄存器的位数为:14位

数据寄存器的位数和字长相等为16位

4.4 用4片32K×8位SRAM存储芯片可设计哪几种不同容量和字长的存储器?画出相应设计图并完成与CPU连接。

解:可设计字长为8位,容量为128K的存储器:

。 译 A16 。 码 A15 。 器 。 CPU 10 00 01 11 CS CS CS A14 32K×8 32K×8 32K×8 WE WE WE A0

WE

D0~D7

数据总线

可设计字长为16位,容量为64K的存储器:

。 A16 码

。 器 CPU0

CS A15 CS

32K×8 32K×8

WE A1 WE

WE

D0~D15

数据总线

....... ....... ....... ....... ....... ....... ....... 第 30 页 共 70 页

CS 32K×8 WE ....... 1 CS CS 32K×8 32K×8 WE WE

《计算机组成原理》习题答案 (秦磊华)

可设计字长为32位,容量为32K的存储器: 0

CPUCS CS CS 32K×8 CS A16 32K×8 32K×8 32K×8 WE WE WE WE A2

WE

D0~D31

数据总线

4.5 用32K×8位RAM芯片和64K×4位ROM芯片,设计256K×8位存储器。其中,从30000H到3FFFFH地址空间为只读存储区,其它为可读、可写存储区。完成存储器与CPU连接。

解:只读区域的地址空间为:30000H-3FFFFH,为64K,需要64K×4位ROM芯片2 片,需要32K×8位RAM芯片的片数为:256K-64K/32K=6片

设计如下:存储器的0000H-2FFFFH存储空间为RAM芯片,也就是32K×8位RAM芯片6 片,采用字扩展连接。存储空间30000H-3FFFFH使用64K×4位ROM芯片2片,采用位扩展方式连接。

数据线条数为8条:D0-D7。

地址线的条数为18条:A1-A18,其中A18-A16为片选信号的输入端。 设计图如下:

A18 译

A17 ? 码

A16 器

CPU 000 001 010 110或111 011 101 100

CS A15 CS CS CS CS CS CS CS

64K×4 32K×8 32K×8 32K×8 32K×8 32K×8 64K×4 32K×8

ROM RAM RAM RAM RAM RAM ROM RAM

WE A1 WE WE WE WE WE WE

WE

D0~D7

数据总线

4.6某计算机字长16位,主存容量128KW,请用16K×8位的静态RAM芯片和32K×16位的ROM芯片,为该机设计一个主存储器。要求18000H~1FFFFH为ROM区,其余为RAM区。画出存储器结构及其与CPU连接的框图。

....... ....... ....... ....... ....... 第 31 页 共 70 页

....... ....... ....... ....... ....... 《计算机组成原理》习题答案 (秦磊华)

解:设计如下:通过简单的计算可知:

地址空间00000H-18000H都是RAM区域(共96KW) 地址空间18000H-1FFFFH为ROM区域(共32KW) 故共使用16K×8位的静态RAM芯片12片 使用32K×16位的ROM芯片1片 数据线条数为16条:D0-D15。

地址线的条数为17条:A1-A17,其中A17-A15为片选信号的输入端。 设计图如下:

A17 译

A16 码

A15 器

CPU101 011 100 001 010 000

CS CS CS CS CS A14 CS CS CS CS CS CS CS 16K×8 16K×8 32K×8 16K×8 16K×8 16K×8 16K×8 16K×8 16K×8 16K×8 16K×8 16K×8 RAM RAM RAM RAM RAM RAM RAM RAM RAM RAM RAM RAM WE WE WE WE WE A1 WE WE WE WE WE WE WE WE

D0~D15

数据总线

4.7 假设 CPU 有16根地址线,8根数据线,并用 MREQ作为访存控制信号(低电平有效),用W/R做读/写控制信号(高电平为读,低电平为写),主存地址空间分配如下:

6000H - 67FFH 为系统程序区 6800H - 6BFFH 为用户程序区

现有下列存储芯片:1K*4位RAM,4K*8位RAM,8K*8位RAM,2K*8位ROM,4K*8位ROM,8K*8位ROM及译码器和各种门电路,设计该机的主存系统,并画出CPU与存储器的连接图。 本题略

4.8 用64K×1位的DRAM芯片构成1M×8位的存储器,若采用异步刷新,若每行刷新间隔不超过2ms,则产生刷新信号的间隔是多少时间?若采用集中刷新方式,则存储器刷新一遍最少用多少个读写周期?CPU的死时间为多少?(假定存储器的读写时间为0.5?s)

解:64K×1位的DRAM芯片的排列方式为256行*256列,该存储器中有64K×1位的DRAM芯片128片刷新信号的产生间隔为2ms. 将2ms分成256个小段(因为DRAM按行刷新),每个时间段为:7.8125?s,将其中最后0.5?s用于刷新DRAM的一行,即产生刷新信号的时间间隔为7.8125?s.

若采用集中刷新,存储器刷新一遍至少需要256个读写周期,CPU的死时间是256?0.5?s=128?s

则刷新信号的间隔是0.03?s

4.9某动态RAM芯片,容量为64K?1位,除电源线、接地线和刷新线外,该芯片的最小引脚

....... ....... ....... ....... ....... ....... ....... 第 32 页 共 70 页

? 110或111 CS 32K×16 ROM ....... 《计算机组成原理》习题答案 (秦磊华)

数量是多少?

解:该芯片1位数据线,行选通和列选通各一位,64K的存储器对应16根地址线,在DRAM中,行和列复用,即地址线为8根,故在不考虑电源线的情况下,该DRAM芯片的最小引脚数为1+1+1+8 = 11个。

4.10 有一个具有8个存储体的低位交叉存储器中,如果处理器的访问地址为以下八进制地址值,求该存储器比单体存储器的平均访问速度提高多少?(忽略最初的启动时延)

(1)10018,10028,10038 ,…,11008 (2)10028,10048,10068 ,…,12008 (3)10038,10068,10118 ,…,13008

解:假设改存储体的地址空间从00008开始,并且存储周期为T,故有:

三个访问序列访存空间的大小都为64个存储单元,故在不使用低位交叉存储体的情况下访存耗时都为64T。

(1)该访问序列访存如图所示:

M0 M1 M2 M3 M4 M5 M6 M7 ... 10008 10108 10208 ... 11008 ... 10018 10118 10218 ... ... 10028 10128 10228 ... ... 10038 10138 ... ... ... 10048 10148 ... ... ... 10058 10158 .. ... ... 10068 10168 ... ... ... 10078 10178 ... ... 则访问该段序列所用时间为T+63*T/8 = 71T/8 故速度提升倍数为:(64T*8)/71T=7.2倍 (2)该访问序列访存如图所示:

M0 M1 M2 M3 M4 M5 M6 M7

... ... 10108 10208 ... 12008 ... ... ... ... ... ... 10028 ... ... ... ... ... ... ... ... ... 10048 ... ... ... ... ... ... .. ... ... 10068 ... ... ... ... ... ... ... ... 则访问该段序列所用时间为3T + 63*2T/8 = 75T/4 故速度提升倍数为:(64T*4)/75T=3.41 (3)该访问序列访存如图所示:

M0 M1 M2 M3 M4 M5 M6 M7

... ... ... ... 10308 ... ... 13008

第 33 页 共 70 页

... ... 10118 ... ... 10418 ... ... ... ... 10228 ... ... ... ... 10038 ... ... 10338 ... ... ... ... 10148 ... ... 10448 ... ... ... ... 10258 ... ... ... ... 10068 ... ... 10368 ... ... ... ... 10178 ... ... 10478 ... 《计算机组成原理》习题答案 (秦磊华)

则访问该段序列所用时间为4T+ 63*3T/8= 221T/8 故速度提升倍数为:(64T*8)/221T=2.3

4.11 用16K?1位的DRAM芯片构成64K?8位的存储器,设存储器的读写周期为0.5?s,要使CPU在1?s内至少访问存储器一次,问采用哪种刷新方式比较合适?若每行刷新间隔不超过2ms,该方式下刷新信号的间隔是多少?

解:由于要使CPU在1?s内至少访问存储器一次,而存储器的读写周期为0.5?s,故不可采用集中式刷新方式,因为集中是刷新的死时间会超过1?s,从而不可保证CPU在1?s内至少访问存储器一次,故采用异步刷新方式比较合适。

设16K?1位的DRAM芯片采用地址复用后,采用128*128的排列方式,则将2ms分成128个时间段,每段的时间为:2000?s/128=15.625?s,即刷新信号的产生周期为15.625?s

14

4.12设Cache的容量为2块,每块是一个32位字,主存容量是Cache容量的256倍,其中有如表4.11所示数据(地址和数据均采用16进制表示).

表4.11 主存数据分布情况

地址 000000 000008 010004 01FFFC FFFFF8 数据 87568536 87792301 9ABEFCD0 4FFFFC68 01BF2460 将主存中这些数据装入到Cache后, Cache各块中的数据内容及相应的标志是什么? (1)全相联映射 (2)直接相联映射 (3)组相联映射 解:(1)全相联映射

全相联映射方式下,主存的一个数据块可映射到Cache的任意行,表中共有5个地址,数据从主存映射到Cache后占用其中的5行,假设就是Cache的前5行,具体分布如下表所示。

Cache行 0 1 2 3 4 标志 00,0000,0000,0000,0000,0000 (000000H) 00,0000,0000,0000,0000,0010(000002H) 00,0000,0100,0000,0000,0001(004001H) 00,0000,0111,1111,1111,1111(007FFFH) 11,1111,1111,1111,1111,1110(03FFFFEH) 数据 87568536 87792301 9ABEFCD0 4FFFFC68 01BF2460

(2)直接相联映射

该方式下,主存的一个数据块只能射到Cache的特定行,表中共有5个地址,数据从主存映射到Cache后占用其中的特定的5行。由于一个数据块为32位,即4B,所以,只需要用主存地址的最后2位表示块内偏移地,由于Cache有16K行,所有,去掉最后2位地址后的连续14位就表示主存数据块映射到的Cache行,剩余的8位即为对应的标志.具体分布如下表所示。

第 34 页 共 70 页

《计算机组成原理》习题答案 (秦磊华)

Cache行 00 0000 0000 0000(0000行) 00 0000 0000 0010(0002行) 00 0000 0000 0001(0001行) 11 1111 1111 1111(03FFF行) 11 1111 1111 1110(03FFE行) 标志 0000 0000 0000 0000 0000 0001 0000 0001 1111 1111 数据 87568536 87792301 9ABEFCD0 4FFFFC68 01BF2460

(3)组相联映射:(假设采用的是四路组相联1)

该方式下,主存的一个数据块只能射到Cache的特定组中的任意行,假定Cache采用四路组相联,则Cache共分为4K组。由于一个数据块为32位,即4B,所以,只需要用主存地址的最后2位表示块内偏移地,由于Cache有4K组,因此,去掉最后2位地址后的连续12位就表示主存数据块映射到的Cache组,剩余的10位即为对应的标志.具体分布如下表所示。

Cache组 0000 0000 0000(000组任意行) 0000 0000 0010(002组任意行) 0000 0000 0001(001组任意行) 1111 1111 1111(0FFF组任意行) 1111 1111 1110(0FFE组任意行) 标志 00 0000 0000 00 0000 0000 00 0000 0100 00 0000 0111 11 1111 1111 数据 87568536 87792301 9ABEFCD0 4FFFFC68 01BF2460

4.13 某计算机Cache由64个存储块构成,采用四路组相联映射方式.主存包含4096个存储块,每块由128个字组成.访问地址为字地址. (1)求主存地址和Cache地址各有多少位?

(2)按照题目条件中的映射方式,列出主存地址的划分情况,并标出各部分的位数. 解:(1)主存容量为:4096*128=512KW 故主存地址位数为:19位 Cache容量为:64*128=8KW 故Cache地址位数为:13位

(2)每个组中包含的存储块的个数为:4块 故索引字段(Index)位数为:2位

由于每块由128个字组成.访问地址为字地址,故块内地址的位数为:7位 故标记部分(Tag)的位数为:10位 则主存地址划分情况如下:

12Tag (标记) Index(索引) 块内字地址

10 2 7

4.14 某计算机中主存容量为4MB,Cache容量为16KB,每块包含8个字,每字32位,映射方式采用4路组相联.设Cache的初始状态为空,CPU依次从主存第0,1,2,…,99号单元读出100个字(每次读一个字),并重复此操作10次.替换算法采用LRU. (1)求Cache的命中率

(2)若Cache比主存块10倍,分析采用Cache后存储访问速度提高了多少?

解:(1)0,1,2,…,99号单元共100个字,每块8个字,故100个字被分配在13块内。

Cache中能存放的主存块数为:16KB/8=2K块

第 35 页 共 70 页

《计算机组成原理》习题答案 (秦磊华)

因为是四路组相联,故每组中包含的块数为:2K/4=512块

由于Cache的初始状态为空,根据前面的分析,13块数据调入Cache后不会被调出,所有10次访问中,每块第一次访问不命中外,其余访问均可命中,因此10次循环访问共访问内存100*10 =1000次,其中不命中的次数只有13次。 则Cache的命中率为:(1000-13)/1000=98.7%

(2)设访问Cache的访问时间为T(访问一个数据单元所用的时间),则访问主存的访问时间为10T,故有:

使用Cache后访存所用时间为:T2=13*10T+(1000-13)*T=1117T 不使用Cache访问耗时为:T1=10000T

故使用了Cache后速度提高了:10000T/1117T=8.95倍

4.15 假定某数组元素按行优先顺序存放在主存中,则以下两段伪代码A和B中: (1)分析两段代码中对数组访问的时间局部性和空间局部性. (2)分析变量SUM的时间局部性和空间局部性.

(3)分析for循环体对指令访问的时间局部性和空间局部性.

Int sum_array_A(int a[M][N]) { Int i,j,sum=0; For (i=0;i

解:(1)由于数组在内存中按照行优先存放,数据按块从主存映射到Cache中。

而程序A中对数组访问是按行优先方式进行的,故有很好的空间局部性,但由于每个数组元素只使用一次,故不存在时间局部性;

而程序B中对数组访问是按列优先方式进行的,故没有空间局部性,由于每个数组元素只使用一次,故不存在时间局部性;

(2)变量SUM是单个变量,因此两段程序对该变量的访问不存在空间局部性,由于变量在循环中被多次使用,故具有两好的时间局部性。

(3)在for循环中对指令访问都很好的体现了时间局部性和空间局部性。

4.16 主存容量为8MB,虚存容量为2GB,分页管理时若页面大小为4KB,求出对应的VPN、VPO、PPN、PPO的位数。

解:虚存所包含的页面数为:2GB/4KB=512K页

故VPN的位数为:19位

由于页面的大小为4KB,故VPO和PPO的位数均为:12位 主存所包含的页面个数为:8MB/4KB=2K 故PPN的位数为:11位

4.17 某页式虚拟存储器共8页,每页1KB,主存容量为4KB,页表如表4.12所示.

第 36 页 共 70 页

《计算机组成原理》习题答案 (秦磊华)

表4.12 某页式虚拟存储器的页表

虚页号 实页号 装入位 0 1 2 3 4 5 6 7 3 2 1 2 3 1 0 0 1 1 0 0 1 0 1 0 (1)失效的页有哪几页?

(2)虚地址(用十进制数表示)0,3028,1023,2048,4096,8000的实地址分别是多少? 解:(1)失效的页为:2、3、5、7

(2)虚存空间大小为8*1KB= 8KB,故虚地址为13位,其中虚页号为3位 0: 虚页号为:0

所对应的实页号为:3 页内偏移为:0

故其实地址为(二进制表示):0110000000000 ,对应的十进制实地址为: 3*1K+0=3072 3028:(3028)10= (010 1111000100)2

虚页号为:2

所对应的实页号为:1 故其实地址为:(001 1111000100)2= 1988 1023:(000 1111111111)

虚页号为:0

所对应的实页号为:3 故其实地址为:(011 1111111111)2= 3*1K+1023=4095 2048: (010 0000000000)2

虚页号为:2

所对应的实页号为:1 但由于装入位为零,故该页不在虚存中。 页内偏移地址为:0

故其实地址为:1*1K+0=1024

本题后面部分略 ,请参照完成!

4.18某计算机系统中有一个TLB和L1级数据Cache,存储系统按字节编址,虚拟存储容量为2GB, 主存容量为4MB,页大小为128KB,TLB采用四路组相联方式,共有16个页表项.Cache容量为16KB,每块包含8个字,每字32位,采用四路组相联,块大小为4B,共32行.参照图4.51所描述的页式虚拟存储系统中TLB和Cache命中时详细的存储访问过程,回答下列问题:

(1)虚拟地址中哪几位表示虚页号?哪几位表示页内偏移地址?虚页号中哪几位表示TLB标记?哪几位表示TLB索引?

(2)物理地址中哪几位表示物理页号?哪几位表示偏移地址?

(3)为实现主存与数据Cache之间的组相联映射,对该地址又进行怎样的划分? 解:(1)虚拟存储的页面数为:2GB/128KB=16K,故虚页号的位数为:14位 由于页大小为128KB,故页内偏移地址的位数为17位

所以虚拟地址的高14位表示的是虚页号,低17位表示的是页内偏移地址

TLB采用四路组相联方式,共有16个页表项,所以索引需要2位,故虚拟页号的高12位为TLB标记,低2位为TLB索引

(2)物理内存中包含的页数为:4MB/128KB=32,故物理页号占5位,页内偏移地址的位数为17位

第 37 页 共 70 页

《计算机组成原理》习题答案 (秦磊华)

所以物理地址中高5位表示物理页号,低17位表示页内偏移地址

(3)主存容量为4MB,访问该主存需要22根地址线,块大小为32B,故块内字节偏移地址为5位, Cache采用四路组相联,Cache共分成16KB/32B = 512个组,故索引字段需要9位,剩下的22-5-9 = 8位为标记。 则主存地址划分如下:

17 主存组号(标记) 组内块号(索引) 块内地址 8 9 5

4.19某磁盘存储器共有6个记录面,盘面内圈直径为1英寸,外圈直径为5英寸,道密度为50TPI,位密度为 2000BPI,转速为 3000r/min,平均找道时间为 10ms。试问: (l)该存储器的存储容量是多少? (2)平均存取时间是多少? (3)共有多少个圆柱面? (4)数据传输率是多少?

(5)如果某文件的长度超过了一个磁道的容量,其超过部分应记录在同一记录面上,还是记录在同一回柱面上?

解:(l)该磁盘存储器6个记录面,最外两个记录面不记录内容,则该磁盘驱动器的总磁道数为:[(5-1)/2]*50TPI*4=400

由于位密度一般指磁盘内圈上的信息记录密度,故每个磁道的存储位数为: 3.14*2000BPI=6280位

则该磁盘存储器的存储容量为:400*6280/8=306KB (2)磁盘转半圈用时:60s*0.5/3000r/min=10ms 平均存取时间是:10ms+10ms=20ms

(3)圆柱面的个数为:[(5-1)/2]*50TPI=100

(4)该磁盘的最大数据传输率:3000*6280/(60*8) =38KB/s (5)记录在同一柱面上,这样可以省掉一次寻道时间.

第 38 页 共 70 页

《计算机组成原理》习题答案 (秦磊华)

4.20 写入代码为011001,画出RZ,NRZ,PE和FM制记录方式的写电流波形。 解:

0 1 1 0 0 1 RZ NRZ PEFM

3.1 存储系统中多级存储器各有哪些特点?

3.2 说明六管静态存储位的记忆原理和读/写操作原理。

3.3 动态MOS存储器与静态MOS存储器各有哪些特点?主要不同点是什么? 3.4 叙述静态随机存储器的组成特征和工作原理。

3.5 用4片32K×8位存储芯片可设计哪几种不同容量和字长的存储器?画出相应设计图并完成与CPU连接。

3.6 用32K×8位RAM芯片和64×4位ROM芯片,设计256K×8位存储器。其中,从30000H到3FFFFH地址空间为只读存储区,其它为可读、可写存储区。完成存储器与CPU连接。 3.7 对128K×8位的DRAM芯片采用异步刷新方式,并且刷新按行进行,行刷新的间隔时间20μs,芯片的存储体为1024×1024矩阵,刷新周期是多少?若采用集中式刷新方式死时间率是多少?

3.8 用16K×8位RAM芯片组织成128K×16位存储器,试问: (1) 数据寄存器为多少位? (2) 地址寄存器为多少位? (3) 共需多少存储芯片?

(4) 片内地址为多少位,片选地址为多少位? (5) 画出存储器组成框图。

3.9 试述CPU对含Cache的内存储器进行操作的读/写操作原理。

3.10 若主存容量为4MB,若按字编址,当字长为32位时,CPU按字访问主存时地址应为多少位?数据应为多少位?

3.11 试述多体交叉存储器的设计思想和实现方法。 3.12 试述多模块交叉存储器提高工作速度的一般原理。 3.13 主存容量为8MB,虚存容量为2GB,分页管理时若页面大小为4KB,则页表长度是多少? 3.14 试述磁表面存储器的记忆原理和读/写操作过程。 3.15 激光存储器有哪几种类型? 3.16 解释下列术语:

存储周期 存储位 存储介质 命中 相联存储器 直接映射方式

第 39 页 共 70 页

《计算机组成原理》习题答案 (秦磊华)

第五章 指令系统 习 题 五

5.1解释下列名词

指令 指令系统 操作码 地址码 寻址方式 程序计数器PC 有效地址 地址码扩展 CISC RISC 存储器堆栈 寄存器堆栈 基址寄存器 变址寄存器

解:(1)指令:控制计算机执行某种操作(如加、减、传送、转移等操作)的命令称为指令。 (2)指令系统:一台计算机中所有指令的集合称为该计算机的指令系统。

(3)操作码:指令中用于控制指令操作性质的字段称为操作码。不同功能的指令其操作码编码不同,如可用0001表示加法操作,0010表示减法操作。

(4)地址码:指令中用于定参与指令操作的操作数的地址或偏移量地址的字段。 (5)寻址方式:寻找指令或操作数有效地址的方法。

(6)程序计数器PC:程序计数器是用于存放下一条指令所在单元的地址的寄存器。 (7)有效地址:表示操作数所在主存单元的物理地址。

(8)地址码扩展:将指令的操作码字段向不用的地址码字段扩展,从而在指令长度不变的情况下支持更多的指令。

(9)CISC:CISC是复杂指令系统计算机(ComplexInstructionSetComputer)的简称,这类计算机指令系统复杂,寻址方式种类较多,指令执行效率低。

(10)RISC:RISC是精简指令集计算机(reduced instruction set computer,)的简称,这类计算机指令系统简单,寻址方式种类少,指令执行效率高。

(11)存储器堆栈:以先进后出的方式存储数据,在内存空间开辟堆栈区,该类堆栈容量大,速度慢,栈顶移动而堆栈中的数据不动。 (12)寄存器堆栈:以先进后出的方式存储数据,利用寄存器开辟的堆栈区,该类堆栈容量小,速度块,栈顶不动,出栈和入栈操作设计栈内所有数据的移动。 (13)基址寄存器:基址寻址方式下用于存放基地址的寄存器。

(14)变址寄存器:变址寻址方式下,用于存放变化的地址的寄存器。

5.2 简要回答下列问题

(1)什么叫指令?什么叫指令系统?

(2)计算机中为什么要设置多种操作数寻址方式? (3)操作数寻址方式在指令中如何表示?

(4)基址寻址和变址寻址的作用是什么?分析它们的异同点. (5)RISC处理器有何特点?

(6)比较定长指令与变长指令的优缺点。

(7)指令的地址码与指令中的地址码含义有何不同?

解:(1) 指令是指控制计算机执行某种操作(如加、减、传送、转移等操作)的命令,而一台计算机中所有指令的集合称为该计算机的指令系统。

(2) 这是为了在效率和方便性以及寻址空间大小保持平衡。 用于快速访问的寻址方式:立即数寻址、寄存器寻址等

扩大寻址范围的寻址方式:间接寻址、寄存器间接寻址、基址寻址等 便于程序设计灵活性的寻址方式:变址寻址、相对寻址、直接寻址等

既扩大寻址范围,又由利于指令执行速度提高的寻址方式:寄存器间接寻址 另外,多种复合寻址寻址方式使得寻址更加灵活。

(3)由于不同指令可能采用不同的寻址方式获得操作数,因此,一般情况下,指令的格式会进一步细分出寻址方式字段。下图所示的为包含寻址方式字段的单地址指令结构。

第 40 页 共 70 页

本文来源:https://www.bwwdw.com/article/p0l3.html

Top