计算机组成原理课后答案(1)

更新时间:2024-03-04 16:30:01 阅读量: 综合文库 文档下载

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

免费学习资料及资源网 木木家园(www.mumu-home.cn) 大学生综合资料网 第 一 章

1. 什么是计算机系统、计算机硬件和计算机软件?硬件和软件哪个更重要? 解:P3

计算机系统——计算机硬件、软件和数据通信设备的物理或逻辑的综合体。 计算机硬件——计算机的物理实体。

计算机软件——计算机运行所需的程序及相关资料。

硬件和软件在计算机系统中相互依存,缺一不可,因此同样重要。 5. 冯?诺依曼计算机的特点是什么? 解:冯氏计算机的特点是:P9

? 由运算器、控制器、存储器、输入设备、输出设备五大部件组成; ? 指令和数据以同一形式(二进制形式)存于存储器中; ? 指令由操作码、地址码两大部分组成;

? 指令在存储器中顺序存放,通常自动顺序取出执行; ? 以运算器为中心(原始冯氏机)。 7. 解释下列概念:

主机、CPU、主存、存储单元、存储元件、存储基元、存储元、存储字、存储字长、存储容量、机器字长、指令字长。 解:P10

主机——是计算机硬件的主体部分,由CPU+MM(主存或内存)组成; CPU——中央处理器(机),是计算机硬件的核心部件,由运算器+控制器组成;(早期的运、控不在同一芯片上)

主存——计算机中存放正在运行的程序和数据的存储器,为计算机的主要工作存储器,可随机存取;由存储体、各种逻辑部件及控制电路组成。 存储单元——可存放一个机器字并具有特定存储地址的存储单位;

存储元件——存储一位二进制信息的物理元件,是存储器中最小的存储单位,又叫存储基元或存储元,不能单独存取;

存储字——一个存储单元所存二进制代码的逻辑单位; 存储字长——一个存储单元所存二进制代码的位数; 存储容量——存储器中可存二进制代码的总量;(通常主、辅存容量分开描述)

机器字长——CPU能同时处理的数据位数; 指令字长——一条指令的二进制代码位数; 讲评:一种不确切的答法: CPU与MM合称主机; 运算器与控制器合称CPU。

这两个概念应从结构角度解释较确切。 8. 解释下列英文缩写的中文含义:

CPU、PC、IR、CU、ALU、ACC、MQ、X、MAR、MDR、I/O、MIPS、CPI、FLOPS

解:全面的回答应分英文全称、中文名、中文解释三部分。 CPU——Central Processing Unit,中央处理机(器),见7题;

PC——Program Counter,程序计数器,存放当前欲执行指令的地址,并可自动计数形成下一条指令地址的计数器; IR——Instruction Register,

1

免费学习资料及资源网 木木家园(www.mumu-home.cn) 大学生综合资料网 指令寄存器,存放当前正在执行的指令的寄存器; CU——Control Unit,控制单元(部件),控制器中产生微操作命令序列的部件,为控制器的核心部件;

ALU——Arithmetic Logic Unit,算术逻辑运算单元,运算器中完成算术逻辑运算的逻辑部件;

ACC——Accumulator,累加器,运算器中运算前存放操作数、运算后存放运算结果的寄存器;

MQ——Multiplier-Quotient Register,乘商寄存器,乘法运算时存放乘数、除法时存放商的寄存器。

X——此字母没有专指的缩写含义,可以用作任一部件名,在此表示操作数寄存器,即运算器中工作寄存器之一,用来存放操作数;

MAR——Memory Address Register,存储器地址寄存器,内存中用来存放欲访问存储单元地址的寄存器;

MDR——Memory Data Register,存储器数据缓冲寄存器,主存中用来存放从某单元读出、或写入某存储单元数据的寄存器;

I/O——Input/Output equipment,输入/输出设备,为输入设备和输出设备的总称,用于计算机内部和外界信息的转换与传送;

MIPS——Million Instruction Per Second,每秒执行百万条指令数,为计算机运算速度指标的一种计量单位;

10. 指令和数据都存于存储器中,计算机如何区分它们? 解:计算机硬件主要通过不同的时间段来区分指令和数据,即:取指周期(或取指微程序)取出的既为指令,执行周期(或相应微程序)取出的既为数据。 另外也可通过地址来源区分,从PC指出的存储单元取出的是指令,由指令地址码部分提供操作数地址。 问题讨论:

× 由控制器分析是指令还是数据; 数据进控制器?

× 指令由指令寄存器存取; 指令寄存器有控制功能?

× 指令和数据的格式不一样;指令由操作码和地址码组成) 两者的二进制代码形式不一样?

× 指令顺序存放,而数据不是; 数据为什么不能顺序存放?

× MAR放地址,MDR放数据; 取指时MDR中也是数据?

× 存取数据和存取指令的操作在机器中完全一样; 无法区分?

× 指令和数据的地址不一样; 某一存储单元只能放数据(或指令)?

× 指令放在ROM中,数据放在RAM中; 用户程序放在哪?

第 三 章

1. 什么是总线?总线传输有何特点?为了减轻总线负载,总线上的部件应具备什么特点?

2

免费学习资料及资源网 木木家园(www.mumu-home.cn) 大学生综合资料网 解:总线是多个部件共享的传输部件。

总线传输的特点是:某一时刻只能有一路信息在总线上传输,即分时使用。 为了减轻总线负载,总线上的部件应通过三态驱动缓冲电路与总线连通。 讲评:

围绕―为减轻总线负载‖的几种说法:

× 应对设备按速率进行分类,各类设备挂在与自身速率相匹配的总线上; × 应采用多总线结构;

× 总线上只连接计算机的五大部件; × 总线上的部件应为低功耗部件。

上述措施都无法从根上(工程上)解决问题,且增加了许多不必要(或不可能)的限制。

× 总线上的部件应具备机械特性、电器特性、功能特性、时间特性; 这是不言而喻的。

4. 为什么要设置总线判优控制?常见的集中式总线控制有几种?各有何特点?哪种方式响应时间最快?哪种方式对电路故障最敏感?

解:总线判优控制解决多个部件同时申请总线时的使用权分配问题; 常见的集中式总线控制有三种: 链式查询、计数器查询、独立请求;

特点:链式查询方式连线简单,易于扩充,对电路故障最敏感;计数器查询方式优先级设置较灵活,对故障不敏感,连线及控制过程较复杂;独立请求方式判优速度最快,但硬件器件用量大,连线多,成本较高。 5. 解释下列概念:总线的主设备(或主模块)、总线的从设备(或从模块)、总线的传输周期和总线的通信控制。 解:

总线的主设备(主模块)——指一次总线传输期间,拥有总线控制权的设备(模块);

总线的从设备(从模块)——指一次总线传输期间,配合主设备完成传输的设备(模块),它只能被动接受主设备发来的命令;

总线的传输周期——总线完成一次完整而可靠的传输所需时间; 总线的通信控制——指总线传送过程中双方的时间配合方式。 6. 试比较同步通信和异步通信。 解:

同步通信——由统一时钟控制的通信,控制方式简单,灵活性差,当系统中各部件工作速度差异较大时,总线工作效率明显下降。适合于速度差别不大的场合;

异步通信——不由统一时钟控制的通信,部件间采用应答方式进行联系,控制方式较同步复杂,灵活性高,当系统中各部件工作速度差异较大时,有利于提高总线工作效率。

8. 为什么说半同步通信同时保留了同步通信和异步通信的特点? 解:

半同步通信既能像同步通信那样由统一时钟控制,又能像异步通信那样允许传输时间不一致,因此工作效率介于两者之间。

10. 为什么要设置总线标准?你知道目前流行的总线标准有哪些?什么叫plug and play?哪些总线有这一特点?

3

免费学习资料及资源网 木木家园(www.mumu-home.cn) 大学生综合资料网 解:

总线标准的设置主要解决不同厂家各类模块化产品的兼容问题; 目前流行的总线标准有:ISA、EISA、PCI等;

plug and play——即插即用,EISA、PCI等具有此功能。 11. 画一个具有双向传输功能的总线逻辑图。

解:此题实际上是要求设计一个双向总线收发器,设计要素为三态、双向、使能等控制功能的实现,可参考74LS245等总线收发器芯片内部电路。 逻辑图如下:(n位) 几种错误的设计: 几种错误的设计:

12. 设数据总线上接有A、B、C、D四个寄存器,要求选用合适的74系列芯片,完成下列逻辑设计:

(1) 设计一个电路,在同一时间实现D→A、D→B和D→C寄存器间的传送; (2) 设计一个电路,实现下列操作: T0时刻完成D→总线; T1时刻完成总线→A; T2时刻完成A→总线; T3时刻完成总线→B。 解:

(1)采用三态输出的D型寄存器74LS374做A、B、C、D四个寄存器,其输出可直接挂总线。A、B、C三个寄存器的输入采用同一脉冲打入。注意-OE为电平控制,与打入脉冲间的时间配合关系为: 现以8位总线为例,设计此电路,如下图示: (2)寄存器设置同(1),由于本题中发送、接收不在同一节拍,因此总线需设锁存器缓冲,锁存器采用74LS373(电平使能输入)。节拍、脉冲配合关系如下:

节拍、脉冲分配逻辑如下: 节拍、脉冲时序图如下:

以8位总线为例,电路设计如下:

(图中,A、B、C、D四个寄存器与数据总线的连接方法同上。) 几种错误的设计: (1)几种错误的设计: (1)几种错误的设计: (2)几种错误的设计: (2)几种错误的设计:

第 四 章

3. 存储器的层次结构主要体现在什么地方?为什么要分这些层次?计算机如何管理这些层次? 答:存储器的层次结构主要体现在Cache—主存和主存—辅存这两个存储层次上。

Cache—主存层次在存储系统中主要对CPU访存起加速作用,即从整体运行的效果分析,CPU访存速度加快,接近于Cache的速度,而寻址空间和位价却接近于主存。

主存—辅存层次在存储系统中主要起扩容作用,即从程序员的角度看,他所

4

免费学习资料及资源网 木木家园(www.mumu-home.cn) 大学生综合资料网 使用的存储器其容量和位价接近于辅存,而速度接近于主存。

综合上述两个存储层次的作用,从整个存储系统来看,就达到了速度快、容量大、位价低的优化效果。

主存与CACHE之间的信息调度功能全部由硬件自动完成。而主存—辅存层次的调度目前广泛采用虚拟存储技术实现,即将主存与辅存的一部份通过软硬结合的技术组成虚拟存储器,程序员可使用这个比主存实际空间(物理地址空间)大得多的虚拟地址空间(逻辑地址空间)编程,当程序运行时,再由软、硬件自动配合完成虚拟地址空间与主存实际物理空间的转换。因此,这两个层次上的调度或转换操作对于程序员来说都是透明的。 4. 说明存取周期和存取时间的区别。 解:存取周期和存取时间的主要区别是:存取时间仅为完成一次操作的时间,而存取周期不仅包含操作时间,还包含操作后线路的恢复时间。即: 存取周期 = 存取时间 + 恢复时间

5. 什么是存储器的带宽?若存储器的数据总线宽度为32位,存取周期为200ns,则存储器的带宽是多少?

解:存储器的带宽指单位时间内从存储器进出信息的最大数量。 存储器带宽 = 1/200ns ×32位 = 160M位/秒 = 20MB/S = 5M字/秒 注意字长(32位)不是16位。 (注:本题的兆单位来自时间=106)

6. 某机字长为32位,其存储容量是64KB,按字编址它的寻址范围是多少?若主存以字节编址,试画出主存字地址和字节地址的分配情况。

解:存储容量是64KB时,按字节编址的寻址范围就是64KB,则: 按字寻址范围 = 64K×8 / 32=16K字 按字节编址时的主存地址分配图如下: 讨论:

1、一个存储器不可能有两套地址,注意字长32位,不是16位 ,不能按2字节编址;

2、本题与IBM370、PDP-11机无关; 3、按字寻址时,地址仍为16位;

? ( :地址14位,单元16K个,按字编址4K空间。) 4、字寻址的单位为字,不是B。

5、按字编址的地址范围为0~16K-1,空间为16K字;按字节编址的地址范围为0~64K-1,空间为64KB。不能混淆; 6、画存储空间分配图时要画出上限。 7. 一个容量为16K×32位的存储器,其地址线和数据线的总和是多少?当选用下列不同规格的存储芯片时,各需要多少片?

1K×4位,2K×8位,4K×4位,16K×1位,4K×8位,8K×8位 解:

地址线和数据线的总和 = 14 + 32 = 46根; 各需要的片数为:

1K×4:16K×32 / 1K×4 = 16×8 = 128片 2K×8:16K×32 / 2K×8 = 8×4 = 32片 4K×4:16K×32 / 4K×4 = 4×8 = 32片

5

免费学习资料及资源网 木木家园(www.mumu-home.cn) 大学生综合资料网 16K×1:16K×32 / 16K×1 = 32片

4K×8:16K×32 / 4K×8 = 4×4 = 16片 8K×8:16K×32 / 8K×8 = 2×4 = 8片 讨论:

地址线根数与容量为2的幂的关系,在此为214,14根;

:32=25,5根)?数据线根数与字长位数相等,在此为32根。(不是2的幂的关系。

9. 什么叫刷新?为什么要刷新?说明刷新有几种方法。 解:刷新——对DRAM定期进行的全部重写过程;

刷新原因——因电容泄漏而引起的DRAM所存信息的衰减需要及时补充,因此安排了定期刷新操作;

常用的刷新方法有三种——集中式、分散式、异步式。

集中式:在最大刷新间隔时间内,集中安排一段时间进行刷新;

分散式:在每个读/写周期之后插入一个刷新周期,无CPU访存死时间; 异步式:是集中式和分散式的折衷。 讨论:

1、刷新与再生的比较: 共同点:

?动作机制一样。都是利用DRAM存储元破坏性读操作时的重写过程实现; ?操作性质一样。都是属于重写操作。 区别:

?解决的问题不一样。再生主要解决DRAM存储元破坏性读出时的信息重写问题;刷新主要解决长时间不访存时的信息衰减问题。

?操作的时间不一样。再生紧跟在读操作之后,时间上是随机进行的;刷新以最大间隔时间为周期定时重复进行。

?动作单位不一样。再生以存储单元为单位,每次仅重写刚被读出的一个字的所有位;刷新以行为单位,每次重写整个存储器所有芯片内部存储矩阵的同一行。

?芯片内部I/O操作不一样。读出再生时芯片数据引脚上有读出数据输出;刷新时由于CAS信号无效,芯片数据引脚上无读出数据输出(唯RAS有效刷新,内部读)。鉴于上述区别,为避免两种操作混淆,分别叫做再生和刷新。 2、CPU访存周期与存取周期的区别:

CPU访存周期是从CPU一边看到的存储器工作周期,他不一定是真正的存储器工作周期;存取周期是存储器速度指标之一,它反映了存储器真正的工作周期时间。

3、分散刷新是在读写周期之后插入一个刷新周期,而不是在读写周期内插入一个刷新周期,但此时读写周期和刷新周期合起来构成CPU访存周期。 4、刷新定时方式有3种而不是2种,一定不要忘了最重要、性能最好的异步刷新方式。

10. 半导体存储器芯片的译码驱动方式有几种?

解:半导体存储器芯片的译码驱动方式有两种:线选法和重合法。

线选法:地址译码信号只选中同一个字的所有位,结构简单,费器材; 重合法:地址分行、列两部分译码,行、列译码线的交叉点即为所选单元。这种方法通过行、列译码信号的重合来选址,也称矩阵译码。可大大节省器材用

6

免费学习资料及资源网 木木家园(www.mumu-home.cn) 大学生综合资料网 量,是最常用的译码驱动方式。

11. 画出用1024×4位的存储芯片组成一个容量为64K×8位的存储器逻辑框图。要求将64K分成4个页面,每个页面分16组,指出共需多少片存储芯片。 解:设采用SRAM芯片,

总片数 = 64K×8位 / 1024×4位 = 64×2 = 128片

题意分析:本题设计的存储器结构上分为总体、页面、组三级,因此画图时也应分三级画。首先应确定各级的容量: 页面容量 = 总容量 / 页面数 = 64K×8位 / 4 = 16K×8位; 组容量 = 页面容量 / 组数

= 16K×8位 / 16 = 1K×8位; 组内片数 = 组容量 / 片容量

= 1K×8位 / 1K×4位 = 2片; 地址分配:

页面逻辑框图:(字扩展) 存储器逻辑框图:(字扩展) 讨论:

页选地址取A11、A10,页内片选取A15~A12;? (页内组地址不连贯? ) 不分级画;问题:? 1、不合题意; 2、芯片太多难画;

3、无页译码,6:64译码选组。 ? 页选直接联到芯片;问题: 1、SRAM一般只一个片选端; 2、译码输出负载能力需考虑。

附加门电路组合2级译码信号;?

(应利用译码器使能端输入高一级的译码选通信号) 不设组选,页选同时选8组(16组),并行存取?? 组译码无页选输入;? ? 2片芯片合为一体画; 文字叙述代替画图;?

地址线、数据线不标信号名及信号序号。? 12. 设有一个64K×8位的RAM芯片,试问该芯片共有多少个基本单元电路(简称存储基元)?欲设计一种具有上述同样多存储基元的芯片,要求对芯片字长的选择应满足地址线和数据线的总和为最小,试确定这种芯片的地址线和数据线,并说明有几种解答。 解:

存储基元总数 = 64K×8位

= 512K位 = 19位;

思路:如要满足地址线和数据线总和最小,应尽量把存储元安排在字向,因为地址位数和字数成2的幂的关系,可较好地压缩线数。

7

免费学习资料及资源网 木木家园(www.mumu-home.cn) 大学生综合资料网 设地址线根数为a,数据线根数为b,则片容量为:2a×b = 219;b = 219-a; 若a = 19,b = 1,总和 = 19+1 = 20; a = 18,b = 2,总和 = 18+2 = 20; a = 17,b = 4,总和 = 17+4 = 21; a = 16,b = 8,总和 = 16+8 = 24; …… ……

由上可看出:片字数越少,片字长越长,引脚数越多。片字数、片位数均按2的幂变化。

结论:如果满足地址线和数据线的总和为最小,这种芯片的引脚分配方案有两种:地址线 = 19根,数据线 = 1根;或地址线 = 18根,数据线 = 2根。 采用字、位扩展技术设计;? 13. 某8位微型机地址码为18位,若使用4K×4位的RAM芯片组成模块板结构的存储器,试问:

(1)该机所允许的最大主存空间是多少?

(2)若每个模块板为32K×8位,共需几个模块板? (3)每个模块板内共有几片RAM芯片? (4)共有多少片RAM?

(5)CPU如何选择各模块板? 解: (1)18 = 256K,则该机所允许的最大主存空间是256K×8位(或256KB); (2)模块板总数 = 256K×8 / 32K×8 = 8块;

(3)板内片数 = 32K×8位 / 4K×4位 = 8×2 = 16片; (4)总片数 = 16片×8 = 128片;

(5)CPU通过最高3位地址译码选板,次高3位地址译码选片。地址格式分配如下: 讨论:

不对板译码、片译码分配具体地址位;? ? 板内片选设4位地址;

不设板选,8个板同时工作,总线分时传送;? 8位芯片;? 8板通过3:8译码器组成256K?

14. 设CPU共有16根地址线,8根数据线,并用-MREQ(低电平有效)作访存控制信号,R/-W作读写命令信号(高电平为读,低电平为写)。现有下列存储芯片:

ROM(2K×8位,4K×4位,8K×8位),RAM(1K×4位,2K×8位,4K×8位),及74138译码器和其他门电路(门电路自定)。试从上述规格中选用合适芯片,画出CPU和存储芯片的连接图。要求:

(1)最小4K地址为系统程序区,4096~16383地址范围为用户程序区; (2)指出选用的存储芯片类型及数量; (3)详细画出片选逻辑。 解:

(1)地址空间分配图:

(2)选片:ROM:4K×4位:2片;

8

免费学习资料及资源网 木木家园(www.mumu-home.cn) 大学生综合资料网 RAM:4K×8位:3片;

(3)CPU和存储器连接逻辑图及片选逻辑: 讨论:

1)选片:当采用字扩展和位扩展所用芯片一样多时,选位扩展。 理由:字扩展需设计片选译码,较麻烦,而位扩展只需将数据线按位引出即可。 本题如选用2K×8 ROM,片选要采用二级译码,实现较麻烦。

当需要RAM、ROM等多种芯片混用时,应尽量选容量等外特性较为一致的芯片,以便于简化连线。

2)应尽可能的避免使用二级译码,以使设计简练。但要注意在需要二级译码时如果不使用,会使选片产生二义性。

3)片选译码器的各输出所选的存储区域是一样大的,因此所选芯片的字容量应一致,如不一致时就要考虑二级译码。另外如把片选译码输出―或‖起来使用也是不合理的。

4)其它常见错误: 138的C输入端接地;(相当于把138当2-4译码器用,不合理)? ? EPROM的PD端接地;

(PD为功率下降控制端,当输入为高时,进入功率下降状态。因此PD端的合理接法是与片选端-CS并联。) ? ROM连读/写控制线-WE; (ROM无读/写控制端)

15. CPU假设同上题,现有8片8K×8位的RAM芯片与CPU相连,试回答: (1)用74138译码器画出CPU与存储芯片的连接图; (2)写出每片RAM的地址范围;

(3)如果运行时发现不论往哪片RAM写入数据后,以A000H为起始地址的存储芯片都有与其相同的数据,分析故障原因。

(4)根据(1)的连接图,若出现地址线A13与CPU断线,并搭接到高电平上,将出现什么后果? 解:

(1)CPU与存储器芯片连接逻辑图: (2)地址空间分配图:

(3)如果运行时发现不论往哪片RAM写入数据后,以A000H为起始地址的存储芯片(第5片)都有与其相同的数据,则根本的故障原因为:该存储芯片的片选输入端很可能总是处于低电平。可能的情况有: 1)该片的-CS端与-WE端错连或短路;

2)该片的-CS端与CPU的-MREQ端错连或短路; 3)该片的-CS端与地线错连或短路;

在此,假设芯片与译码器本身都是好的。

(4)如果地址线A13与CPU断线,并搭接到高电平上,将会出现A13恒为―1‖的情况。此时存储器只能寻址A13=1的地址空间(奇数片),A13=0的另一半地址空间(偶数片)将永远访问不到。若对A13=0的地址空间(偶数片)进行访问,只能错误地访问到A13=1的对应空间(奇数片)中去。

17. 某机字长16位,常规的存储空间为64K字,若想不改用其他高速的存储芯片,而使访存速度提高到8倍,可采取什么措施?画图说明。

解:若想不改用高速存储芯片,而使访存速度提高到8倍,可采取多体交叉

9

免费学习资料及资源网 木木家园(www.mumu-home.cn) 大学生综合资料网 存取技术,图示如下: 8体交叉访问时序:

18. 什么是―程序访问的局部性‖?存储系统中哪一级采用了程序访问的局部性原理?

解:程序运行的局部性原理指:在一小段时间内,最近被访问过的程序和数据很可能再次被访问;在空间上,这些被访问的程序和数据往往集中在一小片存储区;在访问顺序上,指令顺序执行比转移执行的可能性大 (大约 5:1 )。存储系统中Cache—主存层次采用了程序访问的局部性原理。

20. Cache做在CPU芯片内有什么好处?将指令Cache和数据Cache分开又有什么好处?

答:Cache做在CPU芯片内主要有下面几个好处:

1)可提高外部总线的利用率。因为Cache在CPU芯片内,CPU访问Cache时不必占用外部总线; 2)Cache不占用外部总线就意味着外部总线可更多地支持I/O设备与主存的信息传输,增强了系统的整体效率;

3)可提高存取速度。因为Cache与CPU之间的数据通路大大缩短,故存取速度得以提高;

将指令Cache和数据Cache分开有如下好处:

1)可支持超前控制和流水线控制,有利于这类控制方式下指令预取操作的完成;

2)指令Cache可用ROM实现,以提高指令存取的可靠性;

3)数据Cache对不同数据类型的支持更为灵活,既可支持整数(例32位),也可支持浮点数据(如64位)。 补充讨论:

Cache结构改进的第三个措施是分级实现,如二级缓存结构,即在片内Cache(L1)和主存之间再设一个片外Cache(L2),片外缓存既可以弥补片内缓存容量不够大的缺点,又可在主存与片内缓存间起到平滑速度差的作用,加速片内缓存的调入调出速度(主存—L2—L1)。

21. 设某机主存容量为4MB,Cache容量为16KB,每字块有8个字,每字32位,设计一个四路组相联映象(即Cache每组内共有4个字块)的Cache组织,要求:

(1)画出主存地址字段中各段的位数;

(2)设Cache的初态为空,CPU依次从主存第0、1、2……99号单元读出100个字(主存一次读出一个字),并重复按此次序读8次,问命中率是多少? (3)若Cache的速度是主存的6倍,试问有Cache和无Cache相比,速度提高多少倍? 答:

(1)由于容量是按字节表示的,则主存地址字段格式划分如下: 8 7 2 3 2

(2)由于题意中给出的字地址是连续的,故(1)中地址格式的最低2位不参加字的读出操作。当主存读0号字单元时,将主存0号字块(0~7)调入Cache(0组x号块),主存读8号字单元时,将1号块(8~15)调入Cache(1组x号块)…… 主存读96号单元时,将12号块(96~103)调入Cache(12组x号块)。

10

免费学习资料及资源网 木木家园(www.mumu-home.cn) 大学生综合资料网 我有打印机,感觉上打印机工作是连贯的;? 问题:人的感觉速度=计算机工作速度?

22. CPU对DMA请求和中断请求的响应时间是否一样?为什么?

解: CPU对DMA请求和中断请求的响应时间不一样,因为两种方式的交换速度相差很大,因此CPU必须以更短的时间间隔查询并响应DMA请求(一个存取周期末)。 讨论:

CPU对DMA的响应是即时的;? 随时都能响应?

CPU响应DMA的时间更短;? ? DMA比中断速度高;

短、高或不一样的具体程度?

? 不一样。因为DMA与CPU共享主存,会出现两者争用主存的冲突,CPU必须将总线让给DMA接口使用,常用停止CPU访存、周期窃取及DMA与CPU交替访存三种方式有效的分时使用主存;

这种情况仅仅存在于DMA与中断程序之间吗?答非所问。

24. DMA的工作方式中,CPU暂停方式和周期挪用方式的数据传送流程有何不同?画图说明。

解:两种DMA方式的工作流程见下页,其主要区别在于传送阶段,现行程序是否完全停止访存。

停止CPU访存方式的DMA工作流程如下:

现行程序 CPU DMAC I/O CPU DMAC I/O

B C D 周期窃取方式的DMA工作流程如下:

现行程序 CPU DMAC I/O CPU DMAC I/O

B C D

25. s,试问该外设是否可用程序中断方式与主机交换信息,为什么??假设某设备向CPU传送信息的最高频率是40K次/秒,而相应的中断处理程序其执行时间为40

s? 解:该设备向CPU传送信息的时间间隔 =1/40K=0.025×103=25 < s?40

则:该外设不能用程序中断方式与主机交换信息,因为其中断处理程序的执行速度比该外设的交换速度慢。 讨论: s)比较接近,传送过程会频繁的打断CPU执行主程序,而执行中断服务程序,因此不能用程序中断方式……。?s)与中断处理时间(40?×I/O传送(25 错:此时CPU还有可能执行主程序吗? 举例说明: (输入)

假设初始CPU空闲,则当I/O将第一个数据放在接口的数据缓冲寄存器中后,向CPU发第一个中断请求,CPU立即响应;

I/O设备匀速运行, s时响应;?s后,第二个中断请求到来,CPU正在执行中断程序接收第一个数据, 40?25

s时响应;?s后,第三个中断请求到来,CPU正在执行中断程序接收第二个

16

免费学习资料及资源网 木木家园(www.mumu-home.cn) 大学生综合资料网 数据,要到80?50

s后,第四个中断请求到来,但此时第三个中断请求还没有响应,则放在数据缓冲寄存器中的第三个数据来不及接收,被第四个数据冲掉;?75 讨论:

s,CPU大部分时间处于―踏步等待‖状态;? 交换一次用时25+40=65? s? 错1:25 I/O传送间隔主要指设备准备数据的时间(输入),这段时间设备与CPU并行工作。

错2:程序中断不存在踏步等待。

? 10-6=1?40?40K.6秒,时间过长,用程序中断不划算; 中断处理程序执行时间=?? 错1:设备传送频率 错2:越慢速的设备越适合用中断。

若外设与CPU之间有足够大的缓冲区,则可以用程序中断方式;? 如果安排足够大的缓冲区,为何不用DMA方式? 讨论(续):

两者速度相差较小没有必要用中断。?

26. s,是否可采用一条指令执行结束时响应DMA请求的方案,为什么?若不行,应采取什么方案??设磁盘存储器转速为3000转/分,分8个扇区,每扇区存储1K字节,主存与磁盘存储器数据传送的宽度为16位(即每次传送16位)。假设一条指令最长执行时间是25

解:先算出磁盘传送速度,然后和指令执行速度进行比较得出结论。 16?16 =1K ×8 ×8 ?道容量=1KB×8 =1K ×4=4K字 数传率=4K字×3000转/分

=4K字×50转/秒 =200K字/秒 s?5?一个字的传送时间=1/200K字/秒

注:在此1K=1024,来自数据块单位缩写。

5 s?<<25 s,所以不能采用一条指令执行结束响应DMA请求的方案,应采取每个CPU机器周期末查询及响应DMA请求的方案(通常安排CPU机器周期=MM存取周期)。? 讨论:

扇面、扇段和扇区:扇面指磁盘分区后形成的扇形区域;扇段指扇面上一个磁道所对应的弧形区域;扇区通常用来泛指扇面或扇段。由于磁盘是沿柱面存取而不是沿扇面存取,因此习惯上扇区即指扇段,不用特别说明也不会引起误会。 问题:是否磁盘转一圈读完所有扇区上的磁道?

答:应为:磁盘转一圈读完一个磁道上的所有扇区,然后转到下一盘面的同一位置磁道接着读(如果文件未读完的话)。

? s,CPU工作周期大于主存周期,应采用DMA与CPU交替访存;?s,CPU执行指令20?s内主存占用5?不行,在25 s;?错1:题意为CPU执行指令25

指令周期;? 错2:CPU工作周期=内存周期(同步控制)而

? 不行,传送间隔=20ms,远大于指令执行周期,应在DMA接口设一小容量存储器,可减少DMA传送占用总线时间; 对于想采用DMA的慢速设备(像打印机等),可采用此法,对于磁盘不需要。另外,占用总线时间较长的DMA传送为停止CPU访存DMA,如采用周期窃取

17

免费学习资料及资源网 木木家园(www.mumu-home.cn) 大学生综合资料网 方式的DMA,每次传送只占一个主存周期时间。

27. 试从下面七个方面比较程序查询、程序中断和DMA三种方式的综合性能。 (1)数据传送依赖软件还是硬件; (2)传送数据的基本单位; (3)并行性; (4)主动性; (5)传输速度; (6)经济性; (7)应用对象。 解:比较如下:

(1)程序查询、程序中断方式的数据传送主要依赖软件,DMA主要依赖硬件。 (注意:这里指主要的趋势)

(2)程序查询、程序中断传送数据的基本单位为字或字节,DMA为数据块。 (3)程序查询方式传送时,CPU与I/O设备串行工作;

程序中断方式时,CPU与I/O设备并行工作,现行程序与I/O传送串行进行;

DMA方式时,CPU与I/O设备并行工作,现行程序与I/O传送并行进行。 (4)程序查询方式时,CPU主动查询I/O设备状态;

程序中断及DMA方式时,CPU被动接受I/O中断请求或DMA请求。 (5)程序中断方式由于软件额外开销时间比较大,因此传输速度最慢; 程序查询方式软件额外开销时间基本没有,因此传输速度比中断快; DMA方式基本由硬件实现传送,因此速度最快;

注意:程序中断方式虽然CPU运行效率比程序查询高,但传输速度却比程序查询慢。

(6)程序查询接口硬件结构最简单,因此最经济; 程序中断接口硬件结构稍微复杂一些,因此较经济; DMA控制器硬件结构最复杂,因此成本最高;

(7)程序中断方式适用于中、低速设备的I/O交换; 程序查询方式适用于中、低速实时处理过程; DMA方式适用于高速设备的I/O交换; 讨论:

问题1:这里的传送速度指I/O设备与主存间,还是I/O与CPU之间? 答:视具体传送方式而定,程序查询、程序中断为I/O与CPU之间交换,DMA为I/O与主存间交换。

问题2:主动性应以CPU的操作方式看,而不是以I/O的操作方式看。 程序查询方式:以缓冲器容量(块、二进制数字)为单位传送;? ? 程序中断方式:以向量地址中的数据(二进制编码)为单位传送; DMA:传送单位根据数据线的根数而定;?

30. 什么是多重中断?实现多重中断的必要条件是什么?

解:多重中断是指:当CPU执行某个中断服务程序的过程中,发生了更高级、更紧迫的事件,CPU暂停现行中断服务程序的执行,转去处理该事件的中断,处理完返回现行中断服务程序继续执行的过程。

实现多重中断的必要条件是:在现行中断服务期间,中断允许触发器为1,即开中断。

18

免费学习资料及资源网 木木家园(www.mumu-home.cn) 大学生综合资料网 补充题:

一、某CRT显示器可显示64种ASCII字符,每帧可显示72字×24排;每个字符字形采用7×8点阵,即横向7点,字间间隔1点,纵向8点,排间间隔6点;帧频50Hz,采取逐行扫描方式。假设不考虑屏幕四边的失真问题,且行回扫和帧回扫均占扫描时间的20%,问: 1)显存容量至少有多大?

2)字符发生器(ROM)容量至少有多大? 3)显存中存放的是那种信息?

4)显存地址与屏幕显示位置如何对应?

5)设置哪些计数器以控制显存访问与屏幕扫描之间的同步?它们的模各是多少?

6)点时钟频率为多少?

解:1)显存最小容量=72×24×8 =1728B 2)ROM最小容量=64×8行×8列 = 512B(含字间隔1点) 3)显存中存放的是ASCII码信息。

4)显存每个地址对应一个字符显示位置,显示位置自左至右,从上到下,分别对应缓存地址由低到高。

5)设置点计数器、字计数器、行计数器、排计数器控制显存访问与屏幕扫描之间的同步。

它们的模计算如下: 点计数器模 = 7+1 = 8 行计数器模 = 8 + 6 = 14

字、排计数器的模不仅与扫描正程时间有关,而且与扫描逆程时间有关,因此计算较为复杂。

列方程: (72+x)× 0.8 = 72 (24+y)× 0.8 = 24 解方程得:x = 18,y = 6,则: 字计数器模 = 72 + 18 = 90 排计数器模 = 24 + 6 = 30

6)点频 = 50Hz × 30排 × 14行 × 90字 × 8点 = 15 120 000Hz = 15.12MHz 讨论:

1、VRAM、ROM容量应以字或字节为单位,不能以位为单位; 2、字模点阵在ROM中按行存放,一行占一个存储单元; 3、显存中存放的是ASCII码而不是像素点; 4、计算计数器的模及点频时应考虑回扫时间。

二、有一编码键盘,其键阵列为8行×16列,分别对应128种ASCII码字符,采用硬件扫描方式确认按键信号,问: 1)扫描计数器应为多少位? 2)ROM容量为多大?

3)若行、列号均从0开始编排,则当第5行第7列的键表示字母―F‖时,CPU从键盘读入的二进制编码应为多少(设采用奇校验) ? 4)参考教材图5.15,画出该键盘的原理性逻辑框图;

19

免费学习资料及资源网 木木家园(www.mumu-home.cn) 大学生综合资料网 5)如果不考虑校验技术,此时ROM是否可省? 解:1)扫描计数器 = 7位

(与键的个数有关) 2)ROM容量 = 128 × 8 = 128B (与字符集大小有关)

3)CPU从键盘读入的应为字符―F‖的ASCII码 = 01000110 (46H) ,其中最高位为奇校验位(注:不是位置码) 。

4)该键盘的原理性逻辑框图见下页,与教材图5.15类似,主要需标明参数。 5)如果不考虑校验技术,并按ASCII码位序设计键阵列(注意) ,则ROM编码表可省,此时7位计数器输出值(扫描码或键位置码)即为ASCII码。 该键盘的原理性逻辑框图如下:

三、一针式打印机采用7列×9行点阵打印字符,每行可打印132个字符,共有96种可打印字符,用带偶校验位的ASCII码表示。问: 1)打印缓存容量至少有多大? 2)字符发生器容量至少有多大? 3)列计数器应有多少位?

4)缓存地址计数器应有多少位? 解:

1)打印缓存最小容量 = 132×8 = 132B (考虑偶校验位) 2)ROM最小容量 = 96×7列×9行 = 672×9位 3)列计数器 = 3位

(7列向上取2的幂) 4)缓存地址计数器 = 8位

(132向上取2的幂) 讨论:

1、由于针打是按列打印,所以ROM一个存储单元中存一列的9个点,则容量为672×9位;

2、列计数器是对列号进行计数,所以模=7,3位(模不等于位数); 3、同样缓存地址计数器模=132,8位。

第 六 章

2. 已知X=0.a1a2a3a4a5a6(ai为0或1),讨论下列几种情况时ai各取何值。 (1)X > 1/8; ?1/2; (2)X X?

(3)1/4 > 1/16

解: (1)若要X > 1/2,只要a1=1,a2~a6不全为0即可(a2 or a3 or a4 1/8,只要a1~a3不全为0即可(a1 or a2 or a3 =1),?or a5 or a6 = 1); (2)若要X a4~a6可任取0或1;

X?(3)若要1/4 > 1/16,只要a1=0,a2可任取0或1; 当a2=0时,若a3=0,则必须a4=1,且a5、a6不全为0(a5 or a6=1;若a3=1,则a4~a6可任取0或1; 当a2=1时, a3~a6可任取0或1。 3. 设x为整数,[x]补=1,x1x2x3x4x5,若要求 x < -16,试问 x1~x5 应

20

免费学习资料及资源网 木木家园(www.mumu-home.cn) 大学生综合资料网 1 1 1 0 1? +[x]补 0 0 . 0 1 1 0 1 1 1 0 0 . 0 0 0 1 1 0 1 1 1 0 1 . 0 ? . 0 1 0 0 —— +0 1 0 + 1 1 . 0 0 1 0 0 1 +[-x]补 1 1 1 1 . 1 0 0 1 1 1 1 1 1 1 0 1 . 0 1?1 . 0 0 1 1 1 1 + 0 0 . 1 1 0 1 1 1 +[x]补 0 0 . 0 1 1 1 0 0 . 0 0 1 1 1 1 0 1 1 1 1 0 1 . 0 + 1 1?1 1 0 . 0 0 1 0 0 1 +[-x]补 1 1 . 0 1 1 0 0 0 0 1 1 1 1 0 0 —— 清0

补码两位乘: 部分积 乘数 yn+1 0 0 0 . 0 0 0 0 0 0 1 1 . 0 1 0 0 1 0 0 + 1 1 0 . 0 1 0 0 1 0 +[-2x]补 1 1 0 . 0 2 1 1 1 . 1 0 0 1 0 0 1 0?1 0 0 1 0 1 1 .0 1 0 0 1 + 0 0 0 . 1 1 0 1 1 1 2 0 0 0 . 0?+[x]补 0 0 0 . 0 1 1 0 1 1 0 0 1 1 0 1 1 1 0 1 1 .0 1 0 + 0 0 0 . 1 1 0 1 1 1 +[x]补 0 0 0 . 1 1 1 1 0 1 2 0 0 0 . 0 0 1 1 1 1 0 1 1 1 1 0 1 1 . 0 + 1 1 1 .? 0 0 1 0 0 1 +[-x]补 1 1 1 . 0 1 1 0 0 0 0 1 1 1 1 0 0 0 . 结果同补码一位乘, x·y= -0. 100 111 100 010 00 (2) x= -0.010111, y= -0.010101 [x]原=1.010111, [y]原=1.010101 x*=0. 010111 , y*=0. 010101 [-x*]补=1.101001,2x*=0.101110 1=0 [x]补=1.101001,? y0=1 ?[-2x*]补=1.010010 x0=1,y0=1,z0=x0 [y]补=1.101011 [-x]补=0.010111,[2x]补=1.010010 [-2x]补=0.101110 x*×y*=0.000 111 100 011 [x×y]原=0.000 111 100 011 [x×y]补=0.000 111 100 011 0 x·y= 0. 000 111 100 011 运算过程如下:

原码一位乘: 部分积 乘数y* 0 . 0 0 0 0 0 0 . 0 1 0 1 0 1 —— +x* 1 0 . 0 0 1 0 1 1 1 .?+ 0 . 0 1 0 1 1 1 0 . 0 1 0 1 1 1 1 0 . 0 0 0 1 0 1 1 1 . 0 1 0 1?0 1 0 1 0 —— +0 1 0 . 0 0 1 1 1 0 ?—— +x* + 0 . 0 1 0 1 1 1 0 . 0 1 1 1 0 0 1 0 . 0 0 0 1 1 1 0 0 1 1 .? 0 1 1 . 0 1 0 —— +0 1 0 . 0 0 1 1?0 1 —— +x* + 0 . 0 1 0 1 1 1 0 . 0 1 1 1 1 0 1 0 . 0 0 0 1 1 1 1 0 0 ?1 1 0 0 0 1 1 . 0 —— +0 0 1 1

原码两位乘: 部分积 乘数y* Cj 0 0 0 . 0 0 0 0 0 0 0 0 . 0 1 0 1 0 1 0 + 0 0 0 . 0 1 0 1 1 1 +x* 0 0 0 . 0 1 0 1 1 1 2 0 0 0 . 0 0 0 1 0 1 1 1 0 0 .0 1 0 1 + 0 0 0 .? 0 0 1 0 1 1 1 +x* 0 0 0 . 0 1 1 1 0 0 2 0 0

26

免费学习资料及资源网 木木家园(www.mumu-home.cn) 大学生综合资料网 0 . 0 0 0 1 1 1 0 0 1 1 0 0 .0 1 ? 0 + 0 0 0 . 0 1 0 1 1 1 +x* 0 0 0 . 0 1 1 1 1 0 2 0 0 0 . 0 0 0 1 1 1 ? 0 1 0 0 0 1 1 0 0 . +0 结果同一位乘, x·y= 0. 000 111 100 011

补码一位乘:部分积 乘数[y]补 yn+1 0 0 . 0 0 0 0 0 0 1 . 1 0 1 0 1 1 0 + 0 0 . 0 1 0 1 1 1 1 0 0 . 0 0 1 0 1 1 ? +[-x]补 0 0 . 0 1 0 1 1 1 1 0 0 . 0 0 0 1 0 1 1 1 ? 1 1 . 1 0 1 0 1 1 —— +0 1 . 1 0 1 0 1 + 1 1 . 1 0 1 0 0 1 1 1 1 . 1 1 0 1 1 1 0 1 1 1 . 1?+[x]补 1 1 . 1 0 1 1 1 0 0 1 0 + 0 0 . 0 1 0 1 1 1 +[-x]补 1 0 0 . 0 0 0 1 1 1 0 0 1 1 1 . 1 0? 0 0 . 0 0 1 1 1 0 1 + 1 1 . 1 0 1 0 0 1 +[x]补 1 1 . 1 1 1 1 . 1 1 1 0 0 0 0 0 0 1 1 1 . 1 0 + ?1 0 0 0 0 0 0 . 0 1 0 1 1 1 +[-x]补 0 0 . 0 0 1 1 1 1 0 0 . 0 0 0 1 1 1 1 0 0 0 1 1 1 . 1 ——?1 +0

补码两位乘: 部分积 乘数 yn+1 0 0 0 . 0 0 0 0 0 0 1 1 . 1 0 1 0 1 1 0 + 0 0 0 . 0 1 0 1 1 1 2 0 0 0 . 0 0 0? +[-x]补 0 0 0 . 0 1 0 1 1 1 1 0 1 1 1 1 1 .1 0 1 0 1 + 0 0 0 . 0 1 0 1 1 1 +[-x]补 0 0 0 . 0 1 1 1 0 0 2 0 0 0 . 0 0 0 1 1 1 0 0 1 1 1 1 . 1 0 1 + 0 0 0 .? 0 1 0 1 1 1 +[-x]补 0 0 0 . 0 1 1 1 1 0 2 0 0 0 . 0 0 0 1 1 1 1 0 0 0 1 1 ? 1 1 . 1 清0 +0 结果同补码一位乘, x·y= 0. 000 111 100 011 00

(3) x= 19, y= 35 x=(10 011)2,y=(100 011)2 x*= [x]原= [x]补= 0,010 011 y*= [y]原= [y]补= 0,100 011 [-x*]补= [-x]补= 1,101 101 2x*= [2x]补= 0,100 110 0=0 x*×y*=? y0=0 ?[-2x*]补= [-2x]补= 1,011 010 x0=0,y0=0,z0=x0 [x×y]原= [x×y]补 = 0,001 010 011 001 x·y =665 运算过程如下:

原码一位乘: 部分积 乘数y* 0,0 0 0 0 0 0 1 0 0 0 1 1 —— +x* + 0,0 1 0 0 1 1 0,0 1 0 0 1 1 1 0,0 0 1 0 0 1 1 1 0 0 0 1 —— +x* + 0,0 1 0 0 1 1? 1 0,0 0 1 1 1 0 0 1 1 0 0 0 —— +0? 0,0 1 1 1 0 0 1 0,0 0 0 0 1 1 ?1 0,0 0 0 1 1

27

免费学习资料及资源网 木木家园(www.mumu-home.cn) 大学生综合资料网 1 0 0 1 1 0 0 —— +0 ? 1 0,0 0 0 0 0 1 1 1 0 0 1? 1 0 0 1 1 0 —— +0 1 0,0 0 1 0 1 0 ? 1 —— +x* + 0,0 1 0 0 1 1 0,0 1 0 1 0 0 0 1 1 0 0 1

原码两位乘: 部分积 乘数y* Cj 0 0 0,0 0 0 0 0 0 0 0,1 0 0 0 1 1 0 + 1 1 1,1 0 1 1 0 1 +[-x*]补 1 1 1,1 0 1 1 0 1 2 1 1 1,1 1 1 0 1 1 0 1 0 0,1 0 0 0 ? 1 + 0 0 0,0 1 0 0 1 1 +x* 0 0 0,0 0 1 1 1 0 2 0 0 0,0 0 0 0 1 1 1 0 0 1 0 ? 0 0,1 0 + 0 0 0,1 0 0 1 1 0 +2x* 0 0 0,1 0 2 0 0 0,0 0 1 0 1 0 0 1 1?1 0 0 1 0 0 0 1 0 0, +0 结果同一位乘, x·y= 0,001 010 011 001

补码一位乘:部分积 乘数[y]补 yn+1 0 0,0 0 0 0 0 0 0,1 0 0 0 1 1 0 + 1 1,1 0 1 1 0 1 1 1 1,1 1 0 1 1? +[-x]补 1 1,1 0 1 1 0 1 1 1 1,1 1 1 0 1 1 0 1 ?0 1 0,1 0 0 0 1 1 —— +0 0,1 0 0 0 1 + 0 0,0 1 0 0 1 1 +[x]补 1 0 0,0 0 0 1 1 1 0 0 1 0, 1 0 0 ? 0 0,0 0 1 1 1 0 1 0?1 0 0,0 0 0 0 1 1 1 0 0 1 0,1 0 0 —— +0 ?0 —— +0 0,0 0 0 0 0 1 1 1 0 0 1 0,1 0 + 1 1,1 0 1 1 0 1 1 1 1,1 1 0 1 1? +[-x]补 1 1,1 0 1 1 1 0 1 0 1 1 0 0 1 0, 1 + 0 0,0 1 0 0 1 1 +[x]补 0 0,0 0 1 0 1 0 0 1 1 0 0 1 0

补码两位乘: 部分积 乘数 yn+1 0 0 0,0 0 0 0 0 0 0 0,1 0 0 0 1 1 0 + 1 1 1,1 0 1 1 0 1 2 1 1 1,1 1 1 0 1 1 0 1 0 0,1 0? +[-x]补 1 1 1,1 0 1 1 0 1 0 0 1 + 0 0 0,0 1 0 0 1 1 +[x]补 0 0 2 0 0 0,0 0 0 0 1 1 1 0?0,0 0 1 1 1 0 0 1 0 0,1 0 0 + 1 1 1,0 1 1 0 1 0 2 1 1 1,1?+[-2x]补 1 1 1,0 1 1 1 0 1 1 0 1 1 1 0 1 1 0 0 1 0 0,1 + 0 0 0,0 1 0 0 1 1 +0 0 0 0,0 0 1 0 1 0 0 1 1 0 0 1 0 0 结果同补码一位乘, x·y= 0, 001 010 011 001 00 (4) x= 0. 110 11, y= -0.111 01 x*= [x]原= [x]补= 0. 110 11 [y]原=1.111 01,y*=0. 111 01 [y]补=1.000 11 [-x*]补= [-x]补= 1.001 01 2x*= [2x]补= 01.101

28

免费学习资料及资源网 木木家园(www.mumu-home.cn) 大学生综合资料网 10 [-2x*]补= 1=1 x*×y*=0.110 000 111 1? y0=0 ?[-2x]补= 10.010 10 x0=0,y0=1,z0=x0 [x×y]原=1.110 000 111 1 [x×y]补=1.001 111 000 10 x·y= -0. 110 000 111 1 运算过程如下: 原码一位乘:部分积 乘数y* 0 . 0 0 0 0 0 1 ?. 1 1 1 0 1 —— +x* + 0 . 1 1 0 1 1 0 . 1 1 0 1 1 1 0 . 0 0 1 1 0 1 1?0 . 0 1 1 0 1 1 . 1 1 1 0 —— +0 1 0 . 1 0 0?. 1 1 1 —— +x* + 0 . 1 1 0 1 1 1 . 0 0 0 0 1 0 0 1 1 1 . 1 1 —— +x* + 0 . 1 1 0 1 1 1 . 0 1 0 1 1 0 . 1 0 1 0 1 1 1 1 1 . 1 —— +x* + 0 . 1 1 0 1 1 ?1 1 0 . 1 1 0 0 0 0 1 1 1 1 ? 1 . 1 0 0 0 0

原码两位乘: 部分积 乘数y* Cj 0 0 0 . 0 0 0 0 0 0 . 1 1 1 0 1 0 + 0 0 0 . 1 1 0 1 1 +x* 2 0 0 0 . 0 0 1 1? 0 0 0 . 1 1 0 1 1 0 0 1 1 0 . 1 1 1 + 1 1 1 . 0 0 1 0 1 +[-x*]补 2 1 1 1 . 1 1 0 1? 1 1 1 . 0 1 0 1 1 1 0 1 1 1 1 . 0 1 + 0 0 1 . 1 0 1 1 0 +2x* 1 0 0 0 . 1 1 0 0 0? 0 0 1 . 1 0 0 0 0 0 0 1 1 1 1 0 . +0 结果同一位乘, x·y= -0. 110 000 111 1

补码一位乘: 部分积 乘数[y]补 yn+1 0 0 . 0 0 0 0 0 1 . 0 0 0 1 1 0 + 1 1 . 1 1 1 . 1 0?0 0 1 0 1 +[-x]补 1 1 . 0 0 1 0 1 1 1 1 . 1 1 0 0 1 0 ?0 1 0 1 1 . 0 0 0 1 1 —— +0 1 1 . 0 0 0 1 + 0 0 . 1 1 0 1 1 +[x]补 1 0 0 . 0 1 0 1 0 0 0 1 1 . 0 0 0? 0 0 . 1 0 1 0 0 1 0 0 .?1 0 0 . 0 0 1 0 1 0 0 0 1 1 . 0 0 —— +0 ?—— +0 0 0 0 1 0 1 0 0 0 1 1 . 0 + 1 1 . 0 0 1 0 1 +[-x]补 1 1 . 0 0 1 1 1 1 0 0 0 1 0 —— 清0

补码两位乘: 部分积 乘数 yn+1 0 0 0 . 0 0 0 0 0 1 . 0 0 0 1 1 0 + 1 1 1 . 0 0 1 0 1 2 1 1 1 . 1 1 0 0 1 0 ? +[-x]补 1 1 1 . 0 0 1 0 1 1 1 . 0 0 0 1 + 0 0 0 . 1 1 0 1 1 +[x]补 2 0 0 0 . 0 0 1 0? 0 0 0 . 1 0 1 0 0 1 0 0 0 1 1 . 0 0 + 1 1 0 . 0 1 0 1 0 1 1? +[-2x]补 1 1 0 . 0 1 1 1 1 1 1 . 0 0 1 1 1 1 0 0 0 1 0 . —— 清0 结果同补码一位乘, x·y= -0. 110 000 111 10

21. 用原码加减交替法和补码加减交替法计算x÷y。 (1)

29

免费学习资料及资源网 木木家园(www.mumu-home.cn) 大学生综合资料网 x=0.100111,y=0.101011; (2)x=-0.10101, y=0.11011; (3)x=0.10100, y= -0.10001; (4)x=13/32, y= -27/32。 解: (1)x*=[x]原=[x]补=x= 0.100 111 y*=[y]原=[y]补=y= 0=0 ?y0=0 ?0.101 011 [-y*]补=[-y]补=1.010 101 q0=x0 y]原=0.111 010 r*=0.000 010×2-6=0.000 000 000 010 ?y*=[x?y=x*?x 计算过程如下:

原码加减交替除法: 被除数(余数) 商 0 . 1 0 0 1 1 1 0 . 0 0 0 0 0 0 + 1 . 0 1 0 1 0 1 试减,+[-y*]补 1 . 1 1 1 1 0 1 . 1 1 1 0 0 0 0 . + 0 . 1 0 1 0 1 1 ?0 1 r< 1 . 0 0 0 1 1 0 ?0,+y* 0 . 1 0 0 0 1 1 1 0.1 + 1 . 0 1 0 1 0 1 r>?0, +[-y*]补 0 . 0 1 1 0 1 1 1 0 . 1 1 0 1 1 0 0.1 1 + 1 . 0 1 0 1 0 1 r>0, +[-y*]补 0 . 0 0 1 0 1 1

0 .?续: 被除数(余数) 商 1 0 1 0 1 1 0 0 . 1 1 1 + 1 . 0 1 0 1 0 1 r>0, 1 . 0 1 0 1 1 0 0.1 1 1 0 ?+[-y*]补 1 . 1 0 1 0 1 1 1 + 0 . 1 0 1 0 1 1 r< 0 . 0 0?0,+y* 0 . 0 0 0 0 0 1 1 0 0 1 0 0.1 1 1 0 1 + 1 . 0 1 0 1 0 1 r>0, 0.1 1 1 0 1 0 + 0 . 1 0 1 0 1 1 ?+[-y*]补 1 . 0 1 0 1 1 1 1 r<0,+y*(恢复余数) 0 . 0 0 0 0 1 0

补码加减交替除法: 被除数(余数) 商 0 0 . 1 0 0 1 1 1 0 . 0 0 0 0 0 0 + 1 1 . 0 1 0 1 0 1 1 . 1 1 1 0 0 0 ?1 试减,x、y同号,+[-y]补 1 1 . 1 1 1 1 0 0 1 0 . + 0 0 . 1 0 1 0 1 1 r、y异号,+[y]补 0 0 0 1 . 0 0 0 1 1 0 0.1 + 1 1 . 0 1?. 1 0 0 0 1 1 1 0 0 . 1 1 0?0 1 0 1 r、y同号, +[-y]补 0 0 . 0 1 1 0 1 1 1 1 1 0 0.1 1 + 1 1 . 0 1 0 1 0 1 r、y同号, +[-y]补 0 0 . 0 0 1 0 1 1 0 0 . 0 1 0 ?续: 被除数(余数) 商 1 1 1 0 0 . 1 1 1 + 1 1 . 0 1 0 1 0 1 r、y同号, +[-y]补 1 1 . 0 1 0 1 1 0 0.1 1 1 0 + ? 1 1 . 1 0 1 0 1 1 1 0 0 . 0?0 0 . 1 0 1 0 1 1 r、y异号,+[y]补 0 0 . 0 0 0 0 0 1 1 0 0 0 1 0 0.1 1 1 0 1 + 1 1 . 0 1 0 1 0 1 r、y同号, 0.1 1 1 0 1 1 —— 恒置1 + 0 0 . 1 0 1 ?+[-y]补 1 1 . 0 1 0 1 1 1 1 0 1 1 r、x异号,(恢复余数) 0 0 . 0 0 0 0 1 0 且r、y异号, +[y]补 y]补= 0.111 011 [r6]补=0.000 010,r=r*=0.000 000 000 010?y=[x?注:恒置1引入误差。 x (2)x= -0.101 01,y=0.110 11 [x]原=1.101 01 x*= 0.101 01 y* = [y]原 = [y]补= y = 0.110 11 [-y*]补= [-y]补= 1.001 01 [x]补= 1.010 11 y?y]原=1.110 00 x?y*= 0.110 00 [x? 0 = 1 x*? y0 = 1 ? q0 = x0 = -0.110

30

免费学习资料及资源网 木木家园(www.mumu-home.cn) 大学生综合资料网 无 x×y=2001×0.110 100 方案二:采用阶补尾原格式计算: [x]阶补尾原=1,101;1.100 111 [y]阶补尾原=0,101;1.101 011 1)阶码相加: [Ex]补+[Ey]补=11,101+ 00,101 =00,010(无溢出)

原码一位乘: 部分积 乘数y* 0 . 0 0 0 0 0 0 . 1 0 1 0 1 1 1 0 . 0 1 0 0 1 1 ?—— +x* + 0 . 1 0 0 1 1 1 0 . 1 0 0 1 1 1 1 . 1 0 1 0 1 —— +x* + 0 . 1 0 0 1 1 1 0 . 1 1 1 0 1 1 0 . 0 0 1 1?1 0 . 0 1 1 1 0 1 0 1 . 1 0 1 0 —— +0 ?0 1 0 1 0 1 . 1 0 1 —— +x* + 0 . 1 0 0 1 1 1 0 . 1 1 0 1 0 . 0 0?1 0 . 0 1 1 0 1 0 1 1 0 1 . 1 0 —— +0 ? 1 0 1 1 1 0 1 0 1 1 0 1 . 1 —— +x* + 0 . 1 0 0 1 1 1 0 . 1 0 . 0 1 1 0 1 0 0 0 1 1 0 1?1 1 0 1 0 0 [Mx × My]原=0.011 010(001 101) 3)结果规格化: [x×y]阶补尾原= = 0,010;0.011 010(001 101) = 0,001;0.110 100(011 01) 4)舍入:设采用0舍1入法,应舍: [x×y]阶补尾原=0,001;0. 110 100 5)溢出:无 x×y=2001×0.110 100

28. 机器数格式同上题,要求阶码用移码运算,尾数用补码运算,计算x÷y。 (1)x=2101× 0.100111, y=2011×(-0.101011); (2)x=2110×(-0.101101), y=2011×(-0.111100)。

解:先将x、y转换成机器数形式: (1)[x]阶移尾补=1,101;0.100 111 [y]阶移尾补=1,011;1.010 101 1)阶码相减: [Ex]移+[-Ey]补=01,101+11,101 =01,010(无溢出) 2)尾数相除: (补码加减交替除法) 被除数(余数) 商 0 0 . 1 0 0 1 1 1 0 . 0 0 0 0 0 0 试减, + 1 1 . 0 1 0 1 0 1 Mx、My异号,+[My]补 1 1 . 1 1 1 1 . 1 1 1 0 0 0 1 . + 0 0 . 1 0 1 0?1 1 0 0 1 0 1 . 0 0 0 1 1?1 1 r、My同号,+[-My]补 0 0 . 1 0 0 0 1 1 1 0 1.0 + 1 1 . 0 1 0 1 0 1 r、My异号, +[My]补 0 0 . 1 1 0 1 1 0 1.0 0 + 1 1 . 0?0 0 . 0 1 1 0 1 1 1 1 0 1 0 1 r、My异号, +[My]补 0 0 . 0 0 1 0 1 1

续: 被除数(余数) 0 0 . 0 1 0 1 1 0 1 . 0 0 0 + 1 1 . 0 1 0? 商 1 1 1 . 0 1 0 1 1? 1 0 1 r、My异号, +[My]补 1 1 . 1 0 1 0 1 1 1 0 1.0 0 0 1 + 0 0 . 1 0 1 0 1 1 r、My同号,+[-My]补 0 0 . 0 0 0 0 1 0 1.0 0 0 1 0 + 1 1 .?0 0 . 0 0 0 0 0 1 1 1.0 0 0 1?0 1 0 1 0 1 r、My异号, +[My]补 1 1 . 0 1 0 1 1 1 1 0 1 —— 恒置1 + 0 0 . 1 0 1 0 1 1 r、Mx异号,(恢复余数) 0 0 . 0 0 0 0 1 My]补= 1.000 101, [r]补=0.000 010 r= 0 .000?0 且r、My同号, +[-My]补 [Mx 2-6 =0.000 000 000 010?010

36

免费学习资料及资源网 木木家园(www.mumu-home.cn) 大学生综合资料网 3)结果规格化:已是规格化数。 4)舍入:已恒置1舍入。 5)溢出:无 y=2010×(-0.111 011) 方案二:采用阶补尾原形式: ?y]阶移尾补=1,010;1.000 101 x ?[x [x]阶补尾原=0,101;0.100 111 [y]阶补尾原=0,011;1.101 011 1)阶码相减: [Ex]补+[-Ey]补=00,101+11,101 =00,010(无溢出) 2)尾数相除: (原码加减交替除法) 被除数(余数) 商 0 0 . 1 0 0 1 1 1 0 . 0 0 0 0 0 0 试减, + 1 1 . 0 1 0 1 0 1 +[-My*]补 1 1 . 1 1 1 0 0 0 0 . + 0 0 .?1 1 . 1 1 1 1 0 0 1 0?0,+My* 0 0 . 1 0 0 0 1 1 1?1 0 1 0 1 1 r 1 . 0 0 0 1 1 0 0.1 + 1 1 . 0 1 0 1 0 1 0 0 . 1 1 0 1 1 0 ?0, +[-My*]补 0 0 . 0 1 1 0 1 1 1? r 0, +[-My*]补 0 0 . 0 0? 0.1 1 + 1 1 . 0 1 0 1 0 1 r 1 0 1 1

0 0 . 0 1 0 1 1 0 ?续: 被除数(余数) 商 1 0, +[-My*]补 1 1 . 1?0 . 1 1 1 + 1 1 . 0 1 0 1 0 1 r 1 1 . 0 1 0 1 1 0 0.1 1 1 0 + 0 0 . 1 0 1 ?0 1 0 1 1 1 0 0 . 0 0 0 0?0,+My* 0 0 . 0 0 0 0 0 1 1?0 1 1 r 0,?1 0 0.1 1 1 0 1 + 1 1 . 0 1 0 1 0 1 r 0.1 1 1 0 1 0 + 0 0 . 1 0 1 0 1?+[-My*]补 1 1 . 0 1 0 1 1 1 1 0 ,恢复余数,+My* 0 0 . 0 0 0 0 1 0 ?1 r 2-6 =0.000 000 000 010?My]原= 1.111 010 r*= 0 .000 010 ?[Mx ?y]阶补尾原=0,010;1.111 010 x ?3)结果规格化:已是规格化数。 4)舍入:无 5)溢出:无 [x y=2010×(-0.111 010) (2)x=2110×(-0.101 101) y=2011×(-0.111 100) [x]阶移尾补=1,110;1.010 011 [y]阶移尾补=1,011;1.000 100 1)阶码相减: [Ex]移+[-Ey]补=01,110+11,101 =01,011(无溢出) 2)尾数相除: (补码加减交替除法) 被除数(余数) 商 1 1 . 0 1 0 0 1 1 0 . 0 0 0 0 0 0 试减, + 0 0 . 1 1 1 1 0 0 Mx、My同号,+[-My]补 0 0 . 0 0 0 . 0 1 1 1 1 0 0 . + 1 1 . 0 0 0 ?0 1 1 1 1 1 1 1 . 0 0 0 1 0?1 0 0 r、My异号,+[My]补 1 1 . 1 0 0 0 1 0 1 0 0.1 + 0 0 . 1 1 1 1 0 0 r、My同号, +[-My]补 0 0 . 0 0 0 0 0 0 0.1 0 + 1 1 .? 0 0 . 0 0 0 0 0 0 1 0 0 0 1 0 0 r、My异号, +[My]补 1 1 . 0 0 0 1 0 0 续: 被除数(余数) 1 0 . 0 0 1 0 0 0 0 . 1 0 1 + 0 0 . 1 1? 商 1 1 0 . 0 0 1 0?1 1 0 0 r、My同号, +[-My]补 1 1 . 0 0 0 1 0 0 1 0 0 0.1 0 1 1 + 0 0 . 1 1 1 1 0 0 r、My同号,+[-My]补 1 0 . 0 0 1 0 0 0 0.1 0 1 1 1 + 0 0? 1 1 . 0 0 0 1 0 0 1 0.1 0 1 ?. 1 1 1 1 0 0 r、My同号, +[-My]补 1 1 . 0 0 0 1 0 0 1 My]补= 0.101 111,?1 1 1 —— 恒置

37

免费学习资料及资源网 木木家园(www.mumu-home.cn) 大学生综合资料网 1 r、Mx同号,结束。 [Mx 2-6 = -0.000 000 111 100?[r]补=1.000 100=[My]补 r= -0.111 100

注:由于补码加减交替除法算法中缺少对部分余数判―0‖的步骤,因此算法运行中的某一步已除尽时,算法不会自动停止,而是继续按既定步数运行完。此时商由算法本身的这一缺陷引入了一个误差,而余数的误差正好等于除数。 商的误差引入的原因:当r、My同号时,此题中表示够减(r、Mx同号);当r、My异号时,此题中表示不够减(r、Mx异号);因此,当r=0时,被判为不够减(实际上应为够减),商0(实际上应商1),由此引入了误差。 3)结果规格化:已是规格化数。 y=2011× 0.101 111?y]阶移尾补=1,011;0.101 111 x ?4)舍入:已恒置1舍入。 5)溢出:无 [x 方案二:采用阶补尾原形式: [x]阶补尾原=0,110;1.101 101 [y]阶补尾原=0,011;1.111 100 1)阶码相减: [Ex]补+[-Ey]补=00,110+11,101 =00,011(无溢出) 2)尾数相除: (原码加减交替除法) 被除数(余数) 商 0 0 . 1 0 1 1 0 1 0 . 0 0 0 0 0 0 试减, + 1 1 . 0 0 0 1 0 0 1 1 . 1 0 0 0 1 0 ? +[-My*]补 1 1 . 1 1 0 0 0 1 1 0,+My* 0 0? 0 . + 0 0 . 1 1 1 1 0 0 r 0 0 . 1 1 1 1 0 0 0.1 + 1 1 . 0 0 0?. 0 1 1 1 1 0 1 0 0 . 0 0?0, +[-My*]补 0 0 . 0 0 0 0 0 0 1? 1 0 0 r 0,?0 0 0 0 0.1 1 + 1 1 . 0 0 0 1 0 0 r +[-My*]补 1 1 . 0 0 0 1 0 0

1 0 .?续: 被除数(余数) 商 1 0 0 1 0 0 0 0 . 1 1 0 + 0 0 . 1 1 1 1 0 0 1 0 . 0 0 1 0 0 0 0.1?0,+My* 1 1 . 0 0 0 1 0 0 1? r 0,+My* 1 1 . 0 0? 1 0 0 + 0 0 . 1 1 1 1 0 0 r 1 0 . 0 0 1 0 0 0 0.1 1 0 0 0 + 0 0 . 1 1 1 1?0 1 0 0 1 0.1 1 0 0 0 0?0,+My* 1 1 . 0 0 0 1 0 0 1?0 0 r 0,恢复余数,+My* 0 0 . 0 0 0 0 0 0? + 0 0 . 1 1 1 1 0 0 r 2-6 = -0.000 000 000 000?My]原= 0.110 000, r= -0.000 000?[Mx

3)结果规格化:已是规格化数。 y=2011× 0.110 000 29.?y]阶补尾原=0,011;0.110 000 x ?4)舍入:无 5)溢出:无 [x 设机器字长为32位,用与非门和与或非门设计一个并行加法器(假设与非门的延迟时间为30ns,与或非门的延迟时间为45ns),要求完成32位加法时间不得超过0.6μs。画出进位链及加法器逻辑框图。

解:首先根据题意要求选择进位方案: 1)若采用串行进位链(行波进位),则在di、ti函数的基础上,实现32位进位需要的时间为: 30=1920ns 不满足0.6μs的加法时间限制,不能用。(设1ty=30ns) ?32=64ty=64?T=2ty 30=600ns ?8组=20ty=20?2)若采用单重分组跳跃进位(级连方式),则在di、ti的基础上,4位一组分组,32位进位需: T=2.5ty 刚好满足0.6 μs加法时间的限制,

考虑到一次加法除进位时间外,还需di、ti函数的产生时间、和的产生时间(最高位和)等因素,故此进位方案仍不适用。 30=450ns ?6组=15ty=15?结论:若采用单重分组跳跃进位,小组规模需在6位以上较为合适。

38

免费学习资料及资源网 木木家园(www.mumu-home.cn) 大学生综合资料网 即: T=2.5ty 除进位外还有150ns(约5ty)左右的时间供加法开销,较充裕。 3)若采用双重分组跳跃进位(二级先行—级联进位),4位一小组,4小组为一大组分组,则32位进位需: 30=300ns 完全满足0.6μs的加法时间限制,可以使用。?4级=10ty=10?T=2.5ty

32位双重分组跳跃进位的进位链框图见教材287页图6.23。 6位一组单重分组跳跃进位的进位链框图如下:

加法器逻辑框图如下。图中,进位链电路可选上述两种方案之一。

30. 设机器字长为16位,分别按4、4、4、4和5、5、3、3分组, (1)画出按两种分组方案的单重分组并行进位链框图,并比较哪种方案运算速度快。 (2)画出按两种分组方案的双重分组并行进位链框图,并对这两种方案进行比较。 (3)用74181和74182画出单重和双重分组的并行进位链框图。 解: (1)4—4—4—4分组的16位单重分组并行进位链框图见教材286页图6.22。

5—5—3—3分组的16位单重分组并行进位链框图如下:

(2)4—4—4—4分组的16位双重分组并行进位链框图见教材289页图6.26。 5—5—3—3分组的16位双重分组并行进位链框图如下:

3=7.5ty; ?3=7.5ty; 5—5—3—3分组的进位时间=2.5ty? 4—4—4—4分组的进位时间=2.5ty 两种分组方案最长加法时间相同。 结论:双重分组并行进位的最长进位时间只与组数和级数有关,与组内位数无关。

(3)单重分组16位并行加法器逻辑图如下(正逻辑): 注意: 1)181芯片正、负逻辑的引脚表示方法; 2)为强调可比性,5-5-3-3分组时不考虑扇入影响; 3)181芯片只有最高、最低两个进位输入/输出端,组内进位无引脚; 4)181为4位片,无法5-5-3-3分组,只能4-4-4-4分组; 5)单重分组跳跃进位只用到181,使用182的一定是双重以上分组跳跃进位; 6)单重分组跳跃进位是并行进位和串行进位技术的结合;双重分组跳跃进位是二级并行进位技术;特别注意在位数较少时,双重分组跳跃进位可以采用全先行进位技术实现;位数较多时,可采用双重分组跳跃进位和串行进位技术结合实现。

第 七 章

8. 画出先变址再间址及先间址再变址的寻址过程示意图。

解:1)先变址再间址寻址过程简单示意如下: EA=[(IX)+A], IX?(IX)+1 IX?2)先间址再变址寻址过程简单示意如下: EA=(IX)+(A), (IX)+1 注意: 3)寻址后把操作数送回指令操作码,再访存。?1)英文缩写EA表示有效地址,不能乱用。 2)示意图中应标明EA(有效地址)的位置。 12. 16位,且存储字长等于指令字长,若该机指令系统可完成108种操作,操作码位数固定,且具有直接、间接、变址、基址、相对、立即等六种寻址方式,试回答:?某机主存容量为4M (1)画出一地址指令格式并指出各字段的作用; (2)该指令直接寻址的最大范围; (3)一次间址和多次间址的寻址范围; (4)立即数的范围(十进制表示); (5)相对寻址的位移量(十进制表示); (6)上述六种寻址方式的指令哪一种执行时间最短?哪一种最长?为什么?哪一种便于程序浮动?哪一种最适合处理数组问题? (7)如何修改指令格式,使指令的寻址范围可扩大

39

免费学习资料及资源网 木木家园(www.mumu-home.cn) 大学生综合资料网 到4M? (8)为使一条转移指令能转移到主存的任一位置,可采取什么措施?简要说明之。 解: (1)单字长一地址指令格式: 7 3 6 (2)A为6位,该指令直接寻址的最大范围为26=64字; (3)一次间址的寻址范围为216=64K字; 多次间址的寻址范围为215=32K字; (4)立即数的范围:若采用补码表示为1FH~20H;十进制表示为31~ -32;无符号数为0~63; (5)相对寻址的位移量范围在采用补码表示时同立即数范围,为31~ -32;

(6)六种寻址方式中,立即寻址指令执行时间最短,因为此时不需寻址; 间接寻址指令执行时间最长,因为寻址操作需访存一次到多次; 相对寻址便于程序浮动,因为此时操作数位置可随程序存储区的变动而改变,总是相对于程序一段距离; 变址寻址最适合处理数组问题,因为此时变址值可自动修改而不需要修改程序。

(7)为使指令寻址范围可扩大到4M,需要有效地址22位,此时可将单字长一地址指令的格式改为双字长,如下图示: 7 3 6

(8)如使一条转移指令能转移到主存的任一位置,可采用上述双字长一地址指令,通过选用合适的寻址方式完成。(如选用直接寻址就可转移到主存任一位置,但选用相对寻址则只能在±2M范围内转移。) 除此之外,(7)、(8)两题也可通过段寻址方式达到扩大寻址空间的目的。总之,不论采取何种方式,最终得到的实际地址应是22位。

方案二: (7)如果仍采用单字长指令(16位)格式,为使指令寻址范围扩大到4M,可通过段寻址方案实现。安排如下: 硬件设段寄存器DS(16位),用来存放段地址。在完成指令寻址方式所规定的寻址操作后,得有效地址EA(16位),再由硬件自动完成段寻址,最后得22位物理地址。 26 + EA ? 物理地址=(DS) 注:段寻址方式由硬件隐含实现。在编程指定的寻址过程完成、EA产生之后由硬件自动完成,对用户是透明的。

方案三: (7)在采用单字长指令(16位)格式时,还可通过页面寻址方案使指令寻址范围扩大到4M。安排如下: 硬件设页面寄存器PR(16位),用来存放页面地址。指令寻址方式中增设页面寻址。当需要使指令寻址范围扩大到4M时,编程选择页面寻址方式,则: EA =(PR)‖A (有效地址=页面地址―拼接‖6位形式地址) 这样得到22位有效地址。

(5)相对寻址的位移量范围为: ?讨论: (6)基址寻址便于程序浮动;?(PC)-32; (PC内容此时做基地址使用,形式地址给出位移量) ?(PC)+31 (7)采用基址寻址: ?(基址寻址的程序浮动能力没有相对寻址强,在两种寻址方式都给出的情况下,描述程序浮动能力时应选相对寻址) 采用32位指令:(应为双字长指令)?物理地址=段地址+段内位移量A

通过基址寻址与段寻址获得实际地址的区别: 存储器地址位数),位移量比较短(=形式地址位数),相加后得到的有效地址长度=基地址长度。此时主存不分段。 ?1)基址寻址的基地址一般比较长( 实际地址=有效地址=基地址+位移量 段寻址是基址寻址的一种变种,当基地址短于存储地址时,基址寻址就变成了段寻址,基地址就叫做段地址,此时主存分段。 偏移量+段内位移量(有效地址)?实际地址=段地址

存储字长的机器中,可直接通过寻址计算获得实际地址。 ? 2)基址寻址

40

免费学习资料及资源网 木木家园(www.mumu-home.cn) 大学生综合资料网 一般在机器字长 存储字长的机器中,由于CPU内部数据通路的限制,编程指定的任何一种寻址计算得到的有效地址长度都等于机器字长,为获得更长的地址字,硬件自动通过段寻址计算出存储器实际地址。?在机器字长 (7)采用变址间接寻址,变址寄存器6位,先变址,再间址, EA=(6位基地址)*(16位间接地址) =26*216=222 ? (通过乘法运算进行寻址操作太慢且复杂,无机器用过) (8)如使一条转移指令能转移到主存的任一位置,可采用RS型指令; (? 两个错:1)RS型只是二地址以上指令的类型,即指令中二个地址场一个给出寄存器号,一个给出面向存储器的地址信息。2)题意的实现与寻址方式和形式地址长度有关,与指令的地址场结构无直接关系。) 16位容量=226位,采用变址间接寻址,变址寄存器10位,210*216构成26位地址;? 4M? (两个错:1)存储器地址结构错;2)寻址计算方法错,见前面的讨论)

? (8)A需22位,采用(7)的双字长指令格式,令PC=0,当PC取不同值时指明当前位置不同; (把转移指令(指令的跳跃寻址)与数据的相对寻址混淆。转移指令可重置PC值,相对寻址时只是用PC的值,而不能对其修改) 相关问题: * 一般:机器字长=存储字长; * CPU中所有寄存器(包括基址寄存器)的位数=机器字长;

* 通常:指令字长不一定等于机器字长。早期的小型机由于字长较短,指令常以机器字长为单位变化(几字长指令,如PDP-11机),目前以字节长为单位变化(几字节指令)的较多。习题中指令字长=机器字长的假设只是为简单起见; * 当设指令字长=存储字长(=机器字长)时,如用立即寻址,由于立即数由形式地址直接给出,而形式地址的位数肯定不足一个字长,因此立即寻址非常适用于编程给出短常数的场合。如果非要把立即数存入存储器,那就只好高位补0了。干吗这样用呢? 提示:寻址方式的正确选择与编程技巧有关。 15. 某CPU内有32个32位的通用寄存器,设计一种能容纳64种操作的指令系统。假设指令字长等于机器字长,试回答: (1)如果主存可直接或间接寻址,采用―寄存器—存储器‖型指令,能直接寻址的最大存储空间是多少?画出指令格式并说明各字段的含义。 (2)如果采用通用寄存器作基址寄存器,则上述―寄存器—存储器‖型指令的指令格式有何特点?画出指令格式并指出这类指令可访问多大的存储空间?

解: (1)如采用RS型指令,则此指令一定是二地址以上的地址格式,指令格式如下: 6 5 1 20

(2)如采用基址寻址,则指令格式中应给出基址寄存器号,以指定哪一个通用寄存器用作基址寄存器。指令格式变为: 6 5 1 1 5 14 (2)指令格式:?讨论:

16. 某机字长16位,存储器直接寻址空间为128字,变址时的位移量为-64~+63,16个通用寄存器均可作为变址寄存器。采用扩展操作码技术,设计一套指令系统格式,满足下列寻址类型的要求: (1)直接寻址的二地址指令3条; (2)变址寻址的一地址指令6条; (3)寄存器寻址的二地址指令8条; (4)直接寻址的一地址指令12条; (5)零地址指令32条。 试问还有多少种代码未用?若安排寄存器寻址的一地址指令,最多还能容纳多少条?

解:题意分析: 设指令字长=机器字长,128字的直接寻址空间要求形

41

免费学习资料及资源网 木木家园(www.mumu-home.cn) 大学生综合资料网 式地址A为7位,-64~+63的位移量也需7位(6位加1位符号位),16个通用寄存器作变址寄存器需4位变址寄存器号,则指令格式为: (1)直接寻址的二地址指令: 2 7 7

(3)寄存器寻址的二地址指令: 8 4 4 (6)若安排寄存器寻址的一地址指令,指令格式应为: 12 4

操作码编码分配: 0 0 0 1 A1,A2; 3条直接寻址的二地址指令。 1 0 1 1 0 0 0 …… …… IX,A;6条变址寻址的一地址指令。 1 1 1 0 1 1 1 1 1 0 0 0 0 …… …… …… Ri,Rj; 1 1 1 1 0 1 1 1 8条寄存器寻址的二地址指令。 1 1 1 1 1 0 0 0 0 …… …… …… A; 1 1 1 1 1 1 0 1 1 12条直接寻址的一地址指令。

续: 1 1 1 1 1 1 1 0 0 0 0 0 …… …… …… …… Ri; 1 1 1 1 1 1 1 1 0 1 1 1 30条寄存器寻址的 1 1 1 1 1 1 1 1 1 0 0 0 一地址指令。 …… …… …… …… (利用30个冗余编码) 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 …… …… …… …… …… 32条0地址 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 指令

不画所设计的指令格式图,只分配指令操作码编码。 ?讨论: 指令格式中安排寻址方式字段,例: 2 3 4 7 ?

评注:这是一道指令格式设计题,本题已给出了各种指令所需的条数,因此,在根据题意画出各种指令的格式后,剩下的工作就是要为每一条指令分配编码。在采用扩展操作码技术分配指令编码时,扩展的基本方法是在所设计的指令系统中,选定一种操作码位数最少的指令格式作为基本格式,然后在这种基本格式的基础上进行操作码编码的扩展。为便于硬件译码结构的实现,编码分配应尽量做到有序、有规律。特别是扩展标志码的选择,应尽量采用特征较强的编码,象全?1‘编码等。另外,应在某类指令的编码全部安排完后,再考虑安排扩展标志码,以避免漏排或重码等不必要的混乱。

17. 某机指令字长16位,每个操作数的地址码为6位,设操作码长度固定,指令分为零地址、一地址和二地址三种格式。若零地址指令有M种,一地址指令有N种,则二地址指令最多有几种?若操作码位数可变,则二地址指令最多允许有几种? 解:1)若采用定长操作码时,二地址指令格式如下: 4 6 6

设二地址指令有K种,则: K=24-M-N 当M=1(最小值),N=1(最小值)时,二地址指令最多有: Kmax=16-1-1=14种 2)若采用变长操作码时,二地址指令格式仍如1)所示,但操作码长度可随地址码的个数而变。此时, K= 24 -(N/26 + M/212 ); 1时,K最大, 则二地址指令最多有: ? (N/26 + M/212 向上取整) 当(N/26 + M/212 ) Kmax=16-1=15种(只留一种编码作扩展标志用。)

讨论:此时,一地址指令条数为: N=(24 - K)×26 - M/26; ( M/26向上取整)。 零地址指令条数为: M = 216 - 212K - 26N; 当K最大时(K=15),一地址指令最多有: Nmax=64 - 1=63种; 零地址指令最多有: Mmax=64种 注意:应首先根据题意画出指令基本格式。

42

免费学习资料及资源网 木木家园(www.mumu-home.cn) 大学生综合资料网

第 八 章

2. 什么是指令周期?指令周期是否有一个固定值?为什么? 解: 指令周期是指一条指令从开始取直到执行完这段时间。 由于计算机中各种指令执行所需的时间差异很大,因此为了提高CPU运行效率,即使在同步控制的机器中,不同指令的指令周期长度都是不一致的,也就是说指令周期对于不同的指令来说不是一个固定值。 讨论:指令周期长度不一致的根本原因在于设计者,为了提高CPU运行效率而这样安排的,与指令功能不同及指令实际执行时间不同没有什么必然关系。 4. 设CPU内有下列部件:PC、IR、SP、AC、MAR、MDR和CU,要求: (1)画出完成间接寻址的取数指令LDA@X(将主存某地址单元X的内容取至AC中)的数据流(从取指令开始)。 (2)画出中断周期的数据流。 解:CPU中的数据流向与所采用的数据通路结构直接相关,不同的数据通路中的数据流是不一样的。常用的数据通路结构方式有直接连线、单总线、双总线、三总线等形式,目前大多采用总线结构,直接连线方式仅适用于结构特别简单的机器中。 为简单起见,本题采用单总线将题意所给部件连接起来,框图如下: ? ?LDA@X指令周期流程图: 说 明 ? LDA

?(2)中断周期流程图如下: 说 明 A 说 明?

讨论:解这道题有两个要素,首先要根据所给部件设计好数据通路,即确定信息流动的载体。其次选择好描述数据流的方法,无论采用什么样的表达方式,其关键都要能清楚地反映数据在通路上流动的顺序,即强调一个―流‖字。较好的表达方式是流程图的形式。

13. 在中断系统中INTR、INT、EINT三个触发器各有何作用? 解:INTR——中断请求触发器,用来登记中断源发出的随机性中断请求信号,以便为CPU查询中断及中断排队判优线路提供稳定的中断请求信号; EINT——中断允许触发器,CPU中的中断总开关。当EINT=1时,表示允许中断(开中断),当EINT=0时,表示禁止中断(关中断)。其状态可由开、关中断等指令设置; INT——中断标记触发器,控制器时序系统中周期状态分配电路的一部分,表示中断周期标记。当INT=1时,进入中断周期,执行中断隐指令的操作。 讨论: ? 当进入中断周期时,INT=1; (INT=1时,进入中断周期) ? 回答时首先应给出该触发器的中文名称,然后说明其主要作用。 INT与EINT配合使用以实现关中断功能,即INT=1,反相后使EINT=0; (关中断并不是INT的主要功能,进入中断周期后要执行中断隐指令的全部三个功能) INT表示自愿中断,完成系统调用;? (尽管INT触发器的英文缩写与INT指令助记符完全相同,但它们一个是硬件设置,一个是软中断指令,其作用完全不同) ? ? INT表示处于中断状态中;(INT并不是在整个中断过程中都存在) ?INT标记目前是否正在运行中断程序; (INT标记在运行中断程序时已不存在) INT判断中断过程中是否接受其它中断请求,INT=0时,开中断,允许中断嵌套; EINT判断CPU是否响应中断请求;?(INT标记与中断嵌套技术没有任何关系。它不能表示出中断过程中是否接受其它中断请求,INT=0也不表示开中断) (CPU根据EINT状态决定是否响应中断请求)

43

免费学习资料及资源网 木木家园(www.mumu-home.cn) 大学生综合资料网 ? 当CPU响应中断时,EINT置1; (当EINT=1时,允许CPU响应中断) ? EINT确保CPU响应中断后,不受新的中断干扰; ?(CPU响应中断在先,进入中断周期后才使EINT=0,仅在单重中断时,整个中断过程EINT=0,不接受新的中断请求) INTR=1,判断哪个中断源有请求;?EINT表示中断隐指令,INT起关中断作用; (把EINT和INT的作用搞反了) (INTR对中断源的请求进行登记,当INTR=1时,表示有请求)

20. 现有A、B、C、D四个中断源,其优先级由高向低按A、B、C、D顺序排列。若中断服务程序的执行时间为20μs,请根据下图所示时间轴给出的中断源请求中断的时刻,画出CPU执行程序的轨迹。 解: CPU执行程序的轨迹图如下: L1?

21. 某机有五个中断源L0、L1、L2、 L3、L4,按中断响应的优先次序由高向低排序为L0 L2,根据下示格式,1)写出各中断源的屏蔽字。?L0 ?L4 ?L3 ?L4,现要求中断处理次序改为L1?L3 ?L2 ? 2)按照修改过的处理次序,当五个中断请求信号同时到来时,请画出CPU中断处理过程。 解:1)各中断源屏蔽状态见下表:

表中:设屏蔽位=1,表示屏蔽;屏蔽位=0,表示中断开放。 为了使所有中断都能得到及时响应,现行程序的中断屏蔽字一般设为全开放(全0)状态。 现行程序(00000)

讨论: 图中括号内为各程序的屏蔽码。 注意:中断屏蔽码的判优作用体现在对低级中断请求的屏蔽上,对于多个同时到来的高级中断请求信号之间则只有开放作用,没有判优作用。此时还需依赖硬件排队线路完成进一步的判优。 C,为改变中断处理次序,将它们的中断屏蔽字分别设为: 设备 ?B? 22. 设某机配有A、B、C三台设备,其优先顺序是A 屏蔽字 A 1 1 1 B 0 1 0 C 0 1 1 s。?请按下图所示时间轴给出的设备请求中断的时刻,画出CPU执行程序的轨迹。设A、B、C中断服务程序的执行时间均为20

解: CPU执行程序的轨迹图如下:

讨论:当从B中断转到C中断时,不返回现行程序,下述程序运行轨迹是错误的:

第 九 章

3. 什么是指令周期、机器周期和时钟周期?三者有何关系? 解:CPU每取出并执行一条指令所需的全部时间叫指令周期;机器周期是在同步控制的机器中,执行指令周期中一步相对完整的操作(指令步)所需时间,通常安排机器周期长度=主存周期;时钟周期是指计算机主时钟的周期时间,它是计算机运行时最基本的时序单位,对应完成一个微操作所需时间,通常时钟周期=计算机主频的倒数。

4. 能不能说机器的主频越快,机器的速度就越快,为什么? 解:不能说机器的主频越快,机器的速度就越快。因为机器的速度不仅与主频有关,还与数据通路结构、时序分配方案、ALU运算能力、指令功能强弱等多种因素有关,要看综合效果。

5. 设机器A的主频为8MHz,机器周期含4个时钟周期,且该机的平均指令执行速度是0.4MIPS,试求该机的平均指令周期和机器周期,每个指令周期中含

44

免费学习资料及资源网 木木家园(www.mumu-home.cn) 大学生综合资料网 几个机器周期?如果机器B的主频为12MHz,且机器周期也含4个时钟周期,试问B机的平均指令执行速度为多少MIPS? 解:先通过A机的平均指令执行速度求出其平均指令周期,再通过主频求出时钟周期,然后进一步求出机器周期。B机参数的算法与A机类似。 计算如下: A机平均指令周期=1/0.4MIPS=2.5μs A机时钟周期=1/8MHz=125ns A机机器周期=125ns×4=500ns=0.5μs 83ns B机机器周期 =83ns×4 =332ns?A机每个指令周期中含机器周期个数 =2.5μs÷0.5μs=5个 B机时钟周期 =1/12MHz 设B机每个指令周期也含5个机器周期,则: B机平均指令周期=332ns×5=1.66μs B机平均指令执行速度=1/1.66μs =0.6MIPS 结论:主频的提高有利于机器执行速度的提高。

6. 设某机主频为8MHz,每个机器周期平均含2个时钟周期,每条指令平均有2.5个机器周期,试问该机的平均指令执行速度为多少MIPS?若机器主频不变,但每个机器周期平均含4个时钟周期,每条指令平均有5个机器周期,则该机的平均指令执行速度又是多少MIPS?由此可得出什么结论? 解:先通过主频求出时钟周期,再求出机器周期和平均指令周期,最后通过平均指令周期的倒数求出平均指令执行速度。计算如下:

时钟周期=1/8MHz=0.125×10-6 =125ns 机器周期=125ns×2=250ns 平均指令周期=250ns×2.5=625ns 平均指令执行速度=1/625ns=1.6MIPS 当参数改变后: 机器周期= 125ns×4=500ns=0.5μs 平均指令周期=0.5μs×5=2.5μs 平均指令执行速度=1/2.5μs=0.4MIPS 结论:两个主频相同的机器,执行速度不一定一样。

7. 某CPU的主频为8MHz,若已知每个机器周期平均包含4个时钟周期,该机的平均指令执行速度为0.8MIPS,试求该机的平均指令周期及每个指令周期含几个机器周期?若改用时钟周期为0.4μs的CPU芯片,则计算机的平均指令执行速度为多少MIPS?若要得到平均每秒40万次的指令执行速度,则应采用主频为多少的CPU芯片?

解:先通过主频求出时钟周期时间,再进一步求出机器周期和平均指令周期。 时钟周期=1/8MHz=0.125×10-6 =125ns 机器周期=125ns×4=500ns=0.5μs 平均指令周期=1/0.8MIPS =1.25 ×10-6=1.25μs 每个指令周期所含机器周期个数 = 1.25μs/0.5μs=2.5个

当芯片改变后,相应参数变为: 机器周期=0.4μs×4=1.6μs 平均指令周期=1.6μs×2.5=4μs 平均指令执行速度=1/4μs =0.25MIPS 若要得到平均每秒40万次的指令执行速度,则应采用的主频为: 平均指令周期=1/0.4MIPS =2.5 ×10-6=2.5μs 机器周期=2.5μs÷2.5=1μs 时钟周期= 1μs÷4=0.25μs 主频=1/0.25μs=4MHz

8. 某计算机的主频为4MHz,各类指令的平均执行时间和使用频度如下表所示,试计算该机的速度(单位用MIPS表示),若上述CPU芯片升挡为6MHz,则该机的速度又为多少? s ?s 0.8?指令类别 存取 加、

45

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

Top