计算机组成原理-第二版-唐朔飞著-课后习题详解

更新时间:2024-01-28 17:53:01 阅读量: 教育文库 文档下载

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

第1章 计算机系统概论

2. 如何理解计算机的层次结构?

答:计算机硬件、系统软件和应用软件构成了计算机系统的三个层次结构。

(1)硬件系统是最内层的,它是整个计算机系统的基础和核心。 (2)系统软件在硬件之外,为用户提供一个基本操作界面。

(3)应用软件在最外层,为用户提供解决具体问题的应用系统界面。 通常将硬件系统之外的其余层称为虚拟机。各层次之间关系密切,上层是下层的扩展,下层是上层的基础,各层次的划分不是绝对的。

4. 如何理解计算机组成和计算机体系结构?

答:计算机体系结构是指那些能够被程序员所见到的计算机系统的属性,如指令系统、数据类型、寻址技术组成及I/O机理等。计算机组成是指如何实现计算机体系结构所体现的属性,包含对程序员透明的硬件细节,如组成计算机系统的各个功能部件的结构和功能,及相互连接方法等。

5. 冯?诺依曼计算机的特点是什么? 解:冯?诺依曼计算机的特点是:P8

? 计算机由运算器、控制器、存储器、输入设备、输出设备五大部件组成; ? 指令和数据以同同等地位存放于存储器内,并可以按地址访问; ? 指令和数据均用二进制表示;

? 指令由操作码、地址码两大部分组成,操作码用来表示操作的性质,地

址码用来表示操作数在存储器中的位置;

? 指令在存储器中顺序存放,通常自动顺序取出执行; ? 机器以运算器为中心(原始冯?诺依曼机)。

6. 画出计算机硬件组成框图,说明各部件的作用及计算机系统的主要技术指标。 答:计算机硬件组成框图如下:

控制器运算器CPU存储器接口接口输入设备主机外设输出设备 各部件的作用如下:

控制器:整机的指挥中心,它使计算机的各个部件自动协调工作。 运算器:对数据信息进行处理的部件,用来进行算术运算和逻辑运算。 存储器:存放程序和数据,是计算机实现“存储程序控制”的基础。 输入设备:将人们熟悉的信息形式转换成计算机可以接受并识别的信息形式的设备。

输出设备:将计算机处理的结果(二进制信息)转换成人类或其它设备可以接收和识别的信息形式的设备。 计算机系统的主要技术指标有:

机器字长:指CPU一次能处理的数据的位数。通常与CPU的寄存器的位数有关,字长越长,数的表示范围越大,精度也越高。机器字长也会影响计算机的运算速度。

数据通路宽度:数据总线一次能并行传送的数据位数。

存储容量:指能存储信息的最大容量,通常以字节来衡量。一般包含主存容量和辅存容量。

运算速度:通常用MIPS(每秒百万条指令)、MFLOPS(每秒百万次浮点运算)或CPI(执行一条指令所需的时钟周期数)来衡量。CPU执行时间是指CPU对特定程序的执行时间。

主频:机器内部主时钟的运行频率,是衡量机器速度的重要参数。 吞吐量:指流入、处理和流出系统的信息速率。它主要取决于主存的存取周期。

响应时间:计算机系统对特定事件的响应时间,如实时响应外部中断的时间等。

7. 解释下列概念:

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

主机:是计算机硬件的主体部分,由CPU和主存储器MM合成为主机。 CPU:中央处理器,是计算机硬件的核心部件,由运算器和控制器组成;(早期的运算器和控制器不在同一芯片上,现在的CPU内除含有运算器和控制器外还集成了CACHE)。

主存:计算机中存放正在运行的程序和数据的存储器,为计算机的主要工作存储器,可随机存取;由存储体、各种逻辑部件及控制电路组成。

存储单元:可存放一个机器字并具有特定存储地址的存储单位。

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

存储字:一个存储单元所存二进制代码的逻辑单位。 存储字长:一个存储单元所存储的二进制代码的总位数。

存储容量:存储器中可存二进制代码的总量;(通常主、辅存容量分开描述)。 机器字长:指CPU一次能处理的二进制数据的位数,通常与CPU的寄存器位数有关。

指令字长:机器指令中二进制代码的总位数。

第2章 计算机的发展及应用

1. 通常计算机的更新换代以什么为依据? 答:P22

计算机的发展经历了大型机阶段和微型机及网络阶段.对于传统的大型机,通常根据计算机所采用的电子元件不同而划分为:电子管,晶体管,集成电路和大规模超大规模集成电路等相四代。以微处理器为核心的微型计算机属于第四代计算机,通常人们以微处理器为标志来划分微型计算机,如286机、386机、486机、pemtium机。

主要以组成计算机基本电路的元器件为依据,如电子管、晶体管、集成电路等。

5.举例说明人工智能方面的应用

1.智能机器人 智能机器人是一种具有感知能力、思维能力和行为能力的新一代机器人。这种机器人能够主动适应外界环境变化,并能够通过学习丰富自己的知识,提高自己的工作能力。目前,已研制出了肢体和行为功能灵活,能根据思维机构的命令完成许多复杂操作,能回答各种复杂问题的机器人。

2.智能网络 智能网络方面的两个重要研究内容分别是智能搜索引擎和智能网格。智能搜索引擎是一种能够为用户提供相关度排序、角色登记、兴趣识别、内容的语义理解、智能化

信息过滤和推送等人性化服务的搜索引擎。智能网格是一种与物理结构和物理分布无关的网络环境,它能够实现各种资源的充分共享,能够为不同用户提供个性化的网络服务。可以形象地把智能网格比喻为一个超级大脑,其中的各种计算资源、存储资源、通信资源、软件资源、信息资源、知识资源等都像大脑的神经元细胞一样能够相互作用、传导和传递,实现资源的共享、融合和新生。

3.智能检索 智能检索是指利用人工智能的方法从大量信息中尽快找到所需要的信息或知识。随着科学技术的迅速发展和信息手段的快速提升,在各种数据库,尤其是因特网上存放着大量的、甚至是海量的信息或知识。面对这种信息海洋,如果还用传统的人工方式进行检索,已经很不现实。因此,迫切需要相应的智能检索技术和智能检索系统来帮助人们快速、准确、有效地完成检索工作。

4.智能游戏 游戏是一种娱乐活动。游戏技术与计算机技术结合产生了“计算机游戏”或“视频游戏”,与网络技术结合产生了“网络游戏”,与人工智能技术结合产生了智能游戏

第3章 系统总线

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

答:P41.总线是一种能由多个部件分时共享的公共信息传送线路。

总线传输的特点是:某一时刻只允许有一个部件向总线发送信息,但多个部件可以同时从总线上接收相同的信息。

为了减轻总线负载,总线上的部件应通过三态驱动缓冲电路与总线连通。

2. 总线如何分类?什么是系统总线?系统总线又分为几类,它们各有何作用,是单向的,还是双向的,它们与机器字长、存储字长、存储单元有何关系? 答:按照连接部件的不同,总线可以分为片内总线、系统总线和通信总线。

系统总线是连接CPU、主存、I/O各部件之间的信息传输线。

系统总线按照传输信息不同又分为地址线、数据线和控制线。地址线是单向的,其根数越多,寻址空间越大,即CPU能访问的存储单元的个数越多;数据

线是双向的,其根数与存储字长相同,是机器字长的整数倍。

3. 常用的总线结构有几种?不同的总线结构对计算机的性能有什么影响?举例说明。 答:

(1)总线结构通常可以分为单总线结构和多总线结构两种。

(2)单总线结构简单也便于扩充,但所有的传送都通过这组共享总线,因此极易形成计算 机系统的瓶颈,它允许两个以上的部件在同一时刻向总线传输信息,这就必然会影响系统工 作效率的提高,这类总线多数被小型计算机或微型计算机采用;多总线结构解决了单总线中 所有部件同时共享总线的现状,有效的提高了系统的工作效率,如传统微型计算机。

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

答:总线判优控制解决多个部件同时申请总线时的使用权分配问题;

常见的集中式总线控制有三种:链式查询、计数器定时查询、独立请求; 特点:链式查询方式连线简单,易于扩充,对电路故障最敏感;计数器定时查询方式优先级设置较灵活,对故障不敏感,连线及控制过程较复杂;独立请求方式速度最快,但硬件器件用量大,连线多,成本较高。

5. 解释下列概念:总线宽度、总线带宽、总线复用、总线的主设备(或主模块)、总线的从设备(或从模块)、总线的传输周期和总线的通信控制。 答:P46。

总线宽度:通常指数据总线的根数;

总线带宽:总线的数据传输率,指单位时间内总线上传输数据的位数; 总线复用:指同一条信号线可以分时传输不同的信号。

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

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

总线的传输周期:指总线完成一次完整而可靠的传输所需时间; 总线的通信控制:指总线传送过程中双方的时间配合方式。

6. 试比较同步通信和异步通信。

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

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

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

答:总线标准的设置主要解决不同厂家各类模块化产品的兼容问题;

目前流行的总线标准有:ISA、EISA、PCI等; plug and play:即插即用,EISA、PCI等具有此功能。

14. 设总线的时钟频率为8MHZ,一个总线周期等于一个时钟周期。如果一个

总线周期中并行传送16位数据,试问总线的带宽是多少?

解:由于:f=8MHz,T=1/f=1/8M秒,一个总线周期等于一个时钟周期

所以:总线带宽=16/(1/8M) = 128Mbps

4章存储器

1. 解释概念:主存、辅存、Cache、RAM、SRAM、DRAM、ROM、PROM、EPROM、EEPROM、CDROM、Flash Memory。

答:主存:主存储器,用于存放正在执行的程序和数据。CPU可以直接进行随机读写,访问速度较高。

辅存:辅助存储器,用于存放当前暂不执行的程序和数据,以及一些需要永久保存的信息。

Cache:高速缓冲存储器,介于CPU和主存之间,用于解决CPU和主存之间速度不匹配问题。

RAM:半导体随机存取存储器,主要用作计算机中的主存。 SRAM:静态半导体随机存取存储器。 DRAM:动态半导体随机存取存储器。

ROM:掩膜式半导体只读存储器。由芯片制造商在制造时写入内容,以后只能读出而不能写入。

PROM:可编程只读存储器,由用户根据需要确定写入内容,只能写入一次。 EPROM:紫外线擦写可编程只读存储器。需要修改内容时,现将其全部内容擦除,然后再编程。擦除依靠紫外线使浮动栅极上的电荷泄露而实现。

EEPROM:电擦写可编程只读存储器。

CDROM:只读型光盘。

Flash Memory:闪速存储器。或称快擦型存储器。

3. 存储器的层次结构主要体现在什么地方?为什么要分这些层次?计算机如何管理这些层次?

答:存储器的层次结构主要体现在Cache-主存和主存-辅存这两个存储层次上。

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

主存-辅存层次在存储系统中主要起扩容作用,即从程序员的角度看,他所使用的存储器其容量和位价接近于辅存,而速度接近于主存。

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

主存与CACHE之间的信息调度功能全部由硬件自动完成。而主存与辅存层次的调度目前广泛采用虚拟存储技术实现,即将主存与辅存的一部分通过软硬结合的技术组成虚拟存储器,程序员可使用这个比主存实际空间(物理地址空间)大得多的虚拟地址空间(逻辑地址空间)编程,当程序运行时,再由软、硬件自动配合完成虚拟地址空间与主存实际物理空间的转换。因此,这两个层次上的调度或转换操作对于程序员来说都是透明的。

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

200ns,则存储器的带宽是多少?

解:存储器的带宽指单位时间内从存储器进出信息的最大数量。

存储器带宽 = 1/200ns ×32位 = 160M位/秒 = 20MB/秒 = 5M字/秒 注意:字长32位,不是16位。(注:1ns=10-9s)

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

如按字编址,其寻址范围为:64K / (32/8)= 16K

字节地址字地址0000H0001H0002H0003H0004H0005H0006H0007H0008H0009H0000H 0001H0002H主存字地址和字节地址的分配情况:如图

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片 16K×1:(16K×32)/ (16K×1) = 1×32 = 32片 4K×8:(16K×32)/ (4K×8) = 4×4 = 16片 8K×8:(16K×32) / (8K×8) = 2×4 = 8片

8. 试比较静态RAM和动态RAM。 答:略。(参看课件)

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

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

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

集中式:在最大刷新间隔时间内,集中安排一段时间进行刷新,存在CPU访存死时间。

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

11. 一个8K×8位的动态RAM芯片,其内部结构排列成256×256形式,存取周期为0.1μs。试问采用集中刷新、分散刷新和异步刷新三种方式的刷新间隔各为多少?

解:采用分散刷新方式刷新间隔为:2ms,其中刷新死时间为:256×0.1μs=25.6μs

采用分散刷新方式刷新间隔为:256×(0.1μs+×0.1μs)=51.2μs 采用异步刷新方式刷新间隔为:2ms

14. 某8位微型机地址码为18位,若使用4K×4位的RAM芯片组成模块板结构的存储器,试问:

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

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

解:(1)该机所允许的最大主存空间是:218 × 8位 = 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位地址译码输出选择芯片。地址格式分配如下:

模板号(3位) 芯片号 (3位) 片内地址(12位)

15. 设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)地址空间分配图:

系统程序区(ROM共4KB):0000H-0FFFH 用户程序区(RAM共12KB):1000H-3FFFH (2)选片:ROM:选择4K×4位芯片2片,位并联

RAM:选择4K×8位芯片3片,字串联(RAM1地址范围为:1000H-1FFFH,RAM2地址范围为2000H-2FFFH, RAM3地址范围为:3000H-3FFFH)

(3)各芯片二进制地址分配如下: A1A1A1A1A1A15 ROM1,2 RAM1 RAM2 RAM0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 3 0 0 0 0 1 1 1 2 0 0 1 1 0 0 1 1 0 0 0 1 0 1 0 0 0 1 0 1 0 1 0 AAAAAAAAAA9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 3 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 CPU和存储器连接逻辑图及片选逻辑如下图(3)所示:

MREQG1G2AA15A14A13A12A11A0G2BABCY774138Y3Y2Y1Y0......PD/PROG...ROM2......RAM1...CS...RAM2...CS...RAM3...CPUROM1...OEOER/WR/WR/WCSD0D3D4......D7R/W图(3)

28. 设主存容量为256K字,Cache容量为2K字,块长为4。

(1)设计Cache地址格式,Cache中可装入多少块数据? (2)在直接映射方式下,设计主存地址格式。 (3)在四路组相联映射方式下,设计主存地址格式。 (4)在全相联映射方式下,设计主存地址格式。

(5)若存储字长为32位,存储器按字节寻址,写出上述三种映射方式下主存的地址格式。

解:(1)Cache容量为2K字,块长为4,Cache共有2K/4=211/22=29=512块,

Cache字地址9位,字块内地址为2位

因此,Cache地址格式设计如下:

Cache字块地址(9位) 字块内地址(2位) (2)主存容量为256K字=218字,主存地址共18位,共分256K/4=216块,

主存字块标记为18-9-2=7位。

直接映射方式下主存地址格式如下:

字块内地址(2位) 主存字块标记(7位) Cache字块地址(9位) (3)根据四路组相联的条件,一组内共有4块,得Cache共分为512/4=128=27组,

主存字块标记为18-7-2=9位,主存地址格式设计如下: 主存字块标记(9位) 组地址(7位) 字块内地址(2位) (4)在全相联映射方式下,主存字块标记为18-2=16位,其地址格式如下:

主存字块标记(16位) 字块内地址(2位) (5)若存储字长为32位,存储器按字节寻址,则主存容量为256K*32/4=221B,

Cache容量为2K*32/4=214B,块长为4*32/4=32B=25B,字块内地

址为5位,

在直接映射方式下,主存字块标记为21-9-5=7位,主存地址格式为: 主存字块标记(7位) Cache字块地址(9位) 字块内地址(5

位) 在四路组相联映射方式下,主存字块标记为21-7-5=9位,主存地址格

式为:

主存字块标记(9位) 组地址(7位) 字块内地址(5位) 在全相联映射方式下,主存字块标记为21-5=16位,主存地址格式为:

主存字块标记(16位) 字块内地址(5位)

29. 假设CPU执行某段程序时共访问Cache命中4800次,访问主存200次,已知Cache的存取周期为30ns,主存的存取周期为150ns,求Cache的命中率以及Cache-主存系统的平均访问时间和效率,试问该系统的性能提高了多少倍?

解:Cache被访问命中率为:4800/(4800+200)=24/25=96%

Cache-主

访

ta=0.96*30ns+(1-0.96)*150ns=34.8ns

Cache-主存系统的访问效率为:e=tc/ta*100%=30/34.8*100%=86.2% 性能为原来的150ns/34.8ns=4.31倍,即提高了3.31倍。

30. 一个组相连映射的CACHE由64块组成,每组内包含4块。主存包含4096块,每块由128字组成,访存地址为字地址。试问主存和高速存储器的地址各为几位?画出主存地址格式。

解:cache组数:64/4=16 ,Cache容量为:64*128=213字,cache地址13位

主存共分4096/16=256区,每区16块

主存容量为:4096*128=219字,主存地址19位,地址格式如下:

主存字块标记(8位)

31. 设主存容量为1MB,采用直接映射方式的Cache容量为16KB,块长为4,每字32位。试问主存地址为ABCDEH的存储单元在Cache中的什么位置? 解:主存和Cache按字节编址,

Cache容量16KB=214B,地址共格式为14位,分为16KB/(4*32/8B)=210块,每块4*32/8=16B=24B,Cache地址格式为:

Cache字块地址(10位) 字块内地址(4位) 组地址(4位) 字块内地址(7位) 主存容量1MB=220B,地址共格式为20位,分为1MB/(4*32/8B)=216块,每块24B,采用直接映射方式,主存字块标记为20-14=6位,主存地址格式为:

字块内地址(4位) 主存字块标记(6位) Cache字块地址(10位) 主存地址为ABCDEH=1010 1011 1100 1101 1110B,主存字块标记为101010,Cache字块地址为11 1100 1101,字块内地址为1110,故该主存单元应映射到Cache的101010块的第1110字节,即第42块第14字节位置。或者在Cache的第11 1100 1101 1110=3CDEH字节位置。

33.简要说明提高访存速度可采取的措施。 答:提高访存速度可采取三种措施:

(1)采用高速器件。即采用存储周期短的芯片,可提高访存速度。 (2)采用Cache。CPU最近要使用的信息先调入Cache,而Cache的速度比主存快得多,这样CPU每次只需从Cache中读写信息,从而缩短访存时间,提高访存速度。

(3)调整主存结构。如采用单体多字或采用多体结构存储器。

1 0 1 1 0 0 1 : 1:

PE: FM: NRZRZ: NRZ

t

tttt

35.画出RZ、NRZ、NRZ1、PE、FM写入数字串1011001的写电流波形图。 38. 磁盘组有6片磁盘,最外两侧盘面可以记录,存储区域内径22cm,外径33cm,道密度为40道/cm,内层密度为400位/cm,转速3600转/分,问:

(1)共有多少存储面可用? (2)共有多少柱面? (3)盘组总存储容量是多少?

(4)数据传输率是多少?

解:(1)共有:6×2=12个存储面可用。 (2)有效存储区域=(33-22)/ 2 = 5.5cm 柱面数 = 40道/cm × 5.5= 220道 (3)内层道周长=?×22=69.08cm 道容量=400位/cm×69.08cm= 3454B 面容量=3454B×220道=759,880B

盘组总容量=759,880B ×12面= 9,118,560B (4)转速 = 3600转 / 60秒 = 60转/秒

数据传输率 = 3454B × 60转/秒 = 207,240 B/S

39. 某磁盘存储器转速为3000转/分,共有4个记录盘面,每毫米5道,每道记录信息12 288字节,最小磁道直径为230mm,共有275道,求: (1)磁盘存储器的存储容量。

(2)最高位密度(最小磁道的位密度)和最低位密度。 (3)磁盘数据传输率。 (4)平均等待时间。

解:(1)存储容量 = 275道×12 288B/道×4面 = 13 516 800B

(2)最高位密度 = 12 288B/(?×230)= 17B/mm = 136位/mm(向下取整)

最大磁道直径=230mm+2×275道/(5道/mm) = 230mm + 110mm = 340mm

最低位密度 = 12 288B /(?×340)= 11B/mm = 92位 / mm (向下

取整)

(3)磁盘数据传输率= 12 288B × 3000转/分=12 288B × 50转/秒=614 400B/s

(4)平均等待时间 = 1s/50 / 2 = 10ms

第5章 输入输出系统

1. I/O有哪些编址方式?各有何特点?

解:常用的I/O编址方式有两种: I/O与内存统一编址和I/O独立编址。 特点:I/O与内存统一编址方式的I/O地址采用与主存单元地址完全一样的格式,I/O设备和主存占用同一个地址空间,CPU可像访问主存一样访问I/O设备,不需要安排专门的I/O指令。

I/O独立编址方式时机器为I/O设备专门安排一套完全不同于主存地址格式的地址编码,此时I/O地址与主存地址是两个独立的空间,CPU需要通过专门的I/O指令来访问I/O地址空间。

3.I/O设备与主机交换信息时,共有哪几种控制方式?简述它们的特点 程序直接控制方式:也称查询方式,采用该方式,数据在CPU和外设间 的传送完全靠计算机程序控制,CPU的操作和外围设备操作同步,硬件结构简单,但由于外部设备动作慢,浪费CPU时间多,系统效率低。

程序中断方式:外设备准备就绪后中断方式猪肚通知CPU,在CPU相应 I/O

设备的中断请求后,在暂停现行程序的执行,转为I/O设备服务可明显提高CPU的利用率,在一定程度上实现了主机和I/O设备的并行工作,但硬件结构负载,服务开销时间大

DMA方式与中断方式一样,实现了主机和I/O设备的并行工作,由于DMA 方式直接依靠硬件实现贮存与I/O设备之间的数据传送,传送期间不需要CPU程序干预,CPU可继续执行原来的程序,因此CPU利用率和系统效率比中断方式更高,但DMA方式的硬件结构更为复杂。

4.试比较程序查询方式、程序中断方式和DMA方式对CPU工作效率的影响

程序查询方式:是CPU的操作和外围设备的操作能够同步,但是外围设备动作很慢,程序进入查询循环时将白白浪费掉CPU很多时间。所以CPU工作效率很低。

程序中断方式:外围设备用来“主动”通知CPU,当一个中断发生时,CPU暂停它的现行程序,而转向中断处理程序,从而可以输入或输出一个数据。当中断处理完毕后,CPU又返回到它原来的任务,并从它停止的地方开始执行程序。与程序查询方式相比,对CPU工作效率的影响有所减少。

DMA方式:DMA控制器从CPU完全接管对总线的控制,数据交换不经过CPU,而直接在内存和外围设备之间进行,以高速传送数据。所以DMA方式对CPU工作效率的影响大大减少。

8. 某计算机的I/O设备采用异步串行传送方式传送字符信息。字符信息的格式为1位起始位、7位数据位、1位校验位和1位停止位。若要求每秒钟传送480个字符,那么该设备的数据传送速率为多少? 解:480×10=4800位/秒=4800波特 波特——是数据传送速率波特率的单位。

10. 什么是I/O接口,与端口有何区别?为什么要设置I/O接口?I/O接口如何分类?

解:I/O接口一般指CPU和I/O设备间的连接部件,而端口是指I/O接口内CPU能够访问的寄存器,端口加上相应的控制逻辑即构成I/O接口。

I/O接口分类方法很多,主要有:

(1)按数据传送方式分有并行接口和串行接口两种;

(2)按数据传送的控制方式分有程序控制接口、程序中断接口、DMA接口三种。

11.简述I/O接口的功能和基本组成

功能: 向CPU提供I/O 设备的状态信息和进行命令译码 对传送数据提供缓冲以消除计算机与外设在“定时”或数据处理速度上的差异。 还可以中断方式实现CPU与外设之间信息的交换

基本组成: 包括硬件电路和软件编程两部分。硬件电路包括基本逻辑电路、端口译码电路和供选电路等。 软件编程包括初始化程序段、传送方式处理程序段,主控程序段程序终止与退出程序段及辅 助程序段等.

13. 说明中断向量地址和入口地址的区别和联系。 解:中断向量地址和入口地址的区别:

向量地址是硬件电路(向量编码器)产生的中断源的内存地址编号,中断入口地址是中断服务程序首址。

中断向量地址和入口地址的联系:

中断向量地址可理解为中断服务程序入口地址指示器(入口地址的地址),通过它访存可获得中断服务程序入口地址。 (两种方法:在向量地址所指单元内放一条JMP指令;主存中设向量地址表。参考8.4.3)

14. 在什么条件下,I/O设备可以向CPU提出中断请求?

解:I/O设备向CPU提出中断请求的条件是:I/O接口中的设备工作完成状态为1(D=1),中断屏蔽码为0 (MASK=0),且CPU查询中断时,中断请求触发器状态为1(INTR=1)。

15. 什么是中断允许触发器?它有何作用?

解:中断允许触发器是CPU中断系统中的一个部件,他起着开关中断的作用(即中断总开关,则中断屏蔽触发器可视为中断的分开关)。

16. 在什么条件和什么时间,CPU可以响应I/O的中断请求?

解:CPU响应I/O中断请求的条件和时间是:当中断允许状态为1(EINT=1),且至少有一个中断请求被查到,则在一条指令执行完时,响应中断。

23.调用中断服务程序和调用子程序有何区别

1.子程序调用是预先安排好的,程序中断是随机发生的;

2.调用子程序,是为主程序服务的,而中断程序与主程序的程序毫无关系;

3.子程序是由调用指令给出目标地址,中断是通过隐指令获得中断服务程序的入口地址

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

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

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

周期窃取方式的DMA工作流程如下: 现行程序

33. 试从下面七个方面比较程序查询、程序中断和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交换;

35.试从5个方面比较程序中断方式和DMA方式的区别

(1) 从数据传送看, 程序中断方式靠程序传送,DMA方式靠硬件传送。

(2) 从CPU响应时间看,程序中断方式是在一条指令执行结束时响应, 而DMA方式可在指令周期内的任一存取周期结束时响应。 (3) 程序中断方式有处理异常事件的能力,DMA方式没有这种能力,主要用于大批数据的传送, 如硬盘存取、 图像处理、 高速数据采集传送,可提高数据吞吐量。 (4) 程序中断方式需要中断现行程序,故需保护现场; (5) DMA的优先级比程序中断的优先级高 。

第6章 计算机的运算方法

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

2(2)X?1

8

(3)1?X?4116

2解: (1)若要X?1,只要a1=1,a2~a6不全为0即可。

(2)若要X?1,只要a1~a3不全为0即可。

8

(3)若要1?X?4116,只要a1=0,a2可任取0或1;

当a2=0时,若a3=0,则必须a4=1,且a5、a6不全为0;

若a3=1,则a4~a6可任取0或1;

当a2=1时, a3~a6均取0。

4. 设机器数字长为8位(含1位符号位在内),写出对应下列各真值的原码、补码和反码。 -13/64,29/128,100,-87 解:真值与不同机器码对应关系如下:

真值 二进制 原码 补码 反码

9. 当十六进制数9B和FF分别表示为原码、补码、反码、移码和无符号数时,所对应的十进制数各为多少(设机器数采用一位符号位)? 解:真值和机器数的对应关系如下:

9BH 原码 补码 反码 移码 无符号数 对应十进制数 FFH -27 原码 -101 补码 -100 反码 +27 移码 155 无符号数 对应十进制数 -128 -1

19. 设机器数字长为8位(含1位符号位),用补码运算规则计算下列各题。 (1)A=9/64, B=-13/32,求A+B。 (2)A=19/32,B=-17/128,求A-B。

-0 +128 256 -13/64 -0.001101 1.001 1010 1.1100110 1.1100101 29/128 0.0011101 0.001 1101 0.001 1101 0.001 1101 100 1100100 0110 0100 0110 0100 0110 0100 -87 -1010111 1101 0111 10101001 10101000 (3)A=-3/16,B=9/32,求A+B。 (4)A=-87,B=53,求A-B。 (5)A=115,B=-24,求A+B。

解:(1)A=9/64= 0.001 0010B, B= -13/32= -0.011 0100B [A]补=0.001 0010, [B]补=1.100 1100

[A+B]补= 0.0010010 + 1.1001100 = 1.1011110 ——无溢出 A+B= -0.010 0010B = -17/64

(2)A=19/32= 0.100 1100B, B= -17/128= -0.001 0001B [A]补=0.100 1100, [B]补=1.110 1111 , [-B]补=0.001 0001

[A-B]补= 0.1001100 + 0.0010001= 0.1011101 ——无溢出 A-B= 0.101 1101B = 93/128B

(3)A= -3/16= -0.001 1000B, B=9/32= 0.010 0100B [A]补=1.110 1000, [B]补= 0.010 0100

[A+B]补= 1.1101000 + 0.0100100 = 0.0001100 —— 无溢出 A+B= 0.000 1100B = 3/32

(4) A= -87= -101 0111B, B=53=110 101B

[A]补=1 010 1001, [B]补=0 011 0101, [-B]补=1 100 1011

[A-B]补= 1 0101001 + 1 1001011 = 0 1110100 —— 溢出 (5)A=115= 111 0011B, B= -24= -11 000B [A]补=0 1110011, [B]补=1,110 1000

[A+B]补= 0 1110011 + 1 1101000 = 0 1011011——无溢出 A+B= 101 1011B = 91

20. 用原码一位乘、两位乘和补码一位乘(Booth算法)、两位乘计算x·y。 (1)x= 0.110 111,y= -0.101 110; (2)x= -0.010 111,y= -0.010 101; (3)x= 19,y= 35;

(4)x= 0.110 11,y= -0.111 01。

解:先将数据转换成所需的机器数,然后计算,最后结果转换成真值。 (1)[x]原=0.110111,[y]原=1.101110,x*=0.110111, y*=0.101110 原码一位乘:

部分积 0.000 000 +0.000 000 0.000 000 0.000 000 +0.110 111 0.110 111 0.011 011 +0.110 111 1.010 010 0.101 001 +0.110 111 1.100 000 010 101 101 011 010 111 右移一位 乘数为1,加上x* 右移一位 乘数为1,加上x* 右移一位 乘数为1,加上x* 右移一位 乘数y* 101 110 说明 部分积初值为0,乘数为0加0

0.110 000 +0.000 000 0.110 000 0.011 000 +0.110 111 1.001 111 0.100 111 001 010 乘数为0,加上0 000 101 右移一位 乘数为1,加上x* 100 010 右移一位 即x*×y*=0.100 111 100 010,z0=x0? y0=0 ?1=1, [x×y]原=1.100 111 100 010,x·y= -0. 100 111 100 010 原码两位乘:[-x*]补=1.001 001,2x*=1.101 110

部分积 000 . 000 000 +001 . 101 110 乘数y* 00 101 110 Cj 说明 0 部分积初值为0,Cj=0 根据yn-1ynCj=100,加2x*,保持Cj=0 001 . 101 110 000 . 011 011 +111 . 001 001 10 001 011 10 001 011 0 0 右移2位 根据yn-1ynCj=110,加[-x*]补,置Cj=1 111 . 100 100 111 . 111 001 +111 . 001 001 00 100 010 右移2位 1 根据yn-1ynCj=101,加[-x*]补,置Cj=1 111 . 000 010 111 . 110 000 +000 . 110 111 10 001 000 1 右移2位 根据yn-1ynCj=001,加x*,保持Cj=0 000 . 100 111 10 001 0 即x*×y*=0.100 111 100 010,z0=x0? y0=0 ?1=1, [x×y]原=1.100 111 100 010,x·y= -0. 100 111 100 010 补码一位乘:[x]补=0.110111,[-x]补=1.001001,[y]补=1.010010

部分积 00 . 000 000 00 . 000 000 +11 . 001 001 乘数 1 010 010 0 101 001 11 . 001 001 11 . 100 100 +00 . 110 111 00 . 011 011 00 . 001 101 00 . 000 110 +11 . 001 001 1 010 100 1 101 010 1 110 101 0 0 1 右移1位 Ynyn+1=01,部分积加[x]补 右移1位 Ynyn+1=00,部分积右移1位 Ynyn+1=10,部分积加[-x]补 Yn+1 0 0 说明 Ynyn+1=00,部分积右移1位 Ynyn+1=10,部分积加[-x]补 11 . 001 111 11 . 100 111 +00 . 110 111 00 . 011 110 00 . 001 111 +11 . 001 001 11 . 011 000 1 111 010 0 111 101 0 10 111 1 右移1位 Ynyn+1=01,部分积加[x]补 0 右移1位 Ynyn+1=10,部分积加[-x]补 即 [x×y]补=1.011 000 011 110,x·y= -0.100 111 100 010 补码两位乘:

2[x]补=001.101110,2[-x]补=1.001001

部分积

结果同补码一位乘, x·y= -0. 100 111 100 010 00

乘数 Yn+1 说明 21. 用原码加减交替法和补码加减交替法计算x÷y。 (1)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.101 011 [-y*]补=[-y]补=1.010 101 q0=x0?y0=0 ?0=0 x?y=x*?y*=[x?y]原=0.111 010 r*=0.000 010×2-6=0.000 000 000 010 计算过程如下: 原码加减交替除法:

被除数(余数) 商

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 0

1? 1 . 1 1 1 0 0 0 0 . + 0 . 1 0 1 0 1 1 r<0,+y* 0 . 1 0 0 0 1 1

1? 1 . 0 0 0 1 1 0 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

被除数(余数) 商

1? 0 . 0 1 0 1 1 0 0 . 1 1 1 + 1 . 0 1 0 1 0 1 r>0, +[-y*]补 1 . 1 0 1 0 1 1

1? 1 . 0 1 0 1 1 0 0.1 1 1 0 + 0 . 1 0 1 0 1 1 r<0,+y* 0 . 0 0 0 0 0 1

1? 0 . 0 0 0 0 1 0 0.1 1 1 0 1 + 1 . 0 1 0 1 0 1 r>0, +[-y*]补 1 . 0 1 0 1 1 1 1? 0.1 1 1 0 1 0

+ 0 . 1 0 1 0 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 试减,x、y同号,+[-y]补 1 1 . 1 1 1 1 0 0

1? 1 1 . 1 1 1 0 0 0 0 . + 0 0 . 1 0 1 0 1 1 r、y异号,+[y]补 0 0 . 1 0 0 0 1 1

1? 0 1 . 0 0 0 1 1 0 0.1

+ 1 1 . 0 1 0 1 0 1 r、y同号, +[-y]补 0 0 . 0 1 1 0 1 1

1? 0 0 . 1 1 0 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 被除数(余数) 商

1? 0 0 . 0 1 0 1 1 0 0 . 1 1 1 + 1 1 . 0 1 0 1 0 1 r、y同号, +[-y]补 1 1 . 1 0 1 0 1 1

1? 1 1 . 0 1 0 1 1 0 0.1 1 1 0 + 0 0 . 1 0 1 0 1 1 r、y异号,+[y]补 0 0 . 0 0 0 0 0 1

1? 0 0 . 0 0 0 0 1 0 0.1 1 1 0 1

+ 1 1 . 0 1 0 1 0 1 r、y同号, +[-y]补 1 1 . 0 1 0 1 1 1 1? 0.1 1 1 0 1 1 —— 恒置1 + 0 0 . 1 0 1 0 1 1 r、x异号,(恢复余数) 0 0 . 0 0 0 0 1 0 且r、y异号, +[y]补 注:恒置1引入误差。 x?y=[x?y]补= 0.111 011 [r]补=0.000 010,r=r*=0.000 000 000 010 (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

q0 = x0 ? y0 = 1 ? 0 = 1 x*?y*= 0.110 00 [x?y]原=1.110 00 x?y = -0.110 00 r*=0.110 00×2-5

=0.000 001 100 0

计算过程如下: 原码加减交替除法:

被除数(余数) 商

0 . 1 0 1 0 1 0 . 0 0 0 0 0 + 1 . 0 0 1 0 1 试减,+[-y*]补 1 . 1 1 0 1 0

1? 1 . 1 0 1 0 0 0 . + 0 . 1 1 0 1 1 r<0,+y* 0 . 0 1 1 1 1

1? 0 . 1 1 1 1 0 0.1 + 1 . 0 0 1 0 1 r>0 0 . 0 0 0 1 1

1? 0 . 0 0 1 1 0 0.1 1 + 1 . 0 0 1 0 1 r>0 1 . 0 1 0 1 1

被除数(余数) 1? 0 . 1 0 1 1 0 0 . 1 1 0 + 0 . 1 1 0 1 1 r<0 1 . 1 0 0 0 1

1? 1 . 0 0 0 1 0 0.1 1 0 0 + 0 . 1 1 0 1 1 r<0 1 . 1 1 1 0 1 1 + 0 . 1 1 0 1 1 r<0 0 . 1 1 0 0 0 补码加减交替除法:

被除数(余数) 1 1 . 0 1 0 1 1 0 . 0 0 0 0 0 + 0 0 . 1 1 0 1 1 0 0 . 0 0 1 1 0

1? 0 0 . 0 1 1 0 0 1 . + 1 1 . 0 0 1 0 1 r 1 1 . 1 0 0 0 1

1? 1 1 . 0 0 0 1 0 1.0

+ 0 0 . 1 1 0 1 1 r 1 1 . 1 1 1 0 1

1? 1 1 . 1 1 0 1 0 1.0 0

+ 0 0 . 1 1 0 1 1 r 0 0 . 1 0 1 0 1

被除数(余数) 1? 0 1 . 0 1 0 1 0 1 . 0 0 1 + 1 1 . 0 0 1 0 1 r 0 0 . 0 1 1 1 1

1? 0 0 . 1 1 1 1 0 1.0 0 1 1 + 1 1 . 0 0 1 0 1 r, +[-y*]补 , +[-y*]补 商

, +y* ,+y* ? 0.1 1 0 0 0

, +y*(恢复余数) 商

试减,x、y异号,+[y]补 、y同号,+[-y]补、y异号, +[y]补、y异号, +[y]补商

、y同号, +[-y]补 、y同号,+[-y]补

0 0 . 0 0 0 1 1 1? 1.0 0 1 1 1 —— 恒置1 + 1 1 . 0 0 1 0 1 r、x异号,(恢复余数) 1 1 . 0 1 0 0 0 且r、y同号,+[-y]补 注:恒置1引入误差。

[r]补=1.010 00, r= -0.000 001 100 0 [x?y]补=1.001 11,x?y= -0.110 01 (3)x= 0.101 00,y= -0.100 01 x*= [x]原= [x]补= x=0.101 00 [y]原 = 1.100 01 y* = 0.100 01 [-y*]补=1.011 11 [y]补= 1.011 11 [-y]补= 0.100 01 q0 = x0 ? y0 = 0 ? 1 = 1 x*?y*= 1.001 01 —— 溢出 [x?y]原:无定义 x?y = -1.001 01 r*=0.010 11×2-5

=0.000 000 101 1 计算过程如下: 原码加减交替除法:

被除数(余数) 商

0 . 1 0 1 0 0 0 . 0 0 0 0 0 + 1 . 0 1 1 1 1 试减,+[-y*]补

0 . 0 0 0 1 1 1? 0 . 0 0 1 1 0 1 . + 1 . 0 1 1 1 1 r>0, +[-y*]补

1 . 1 0 1 0 1 1? 1 . 0 1 0 1 0 1.0 + 0 . 1 0 0 0 1 r<0, +y* 1 . 1 1 0 1 1

1? 1 . 1 0 1 1 0 1.0 0 + 0 . 1 0 0 0 1 r<0, +y* 0 . 0 0 1 1 1

被除数(余数) 商

1? 0 . 0 1 1 1 0 1 . 0 0 1 + 1 . 0 1 1 1 1 r>0, +[-y*]补 1 . 1 1 1 0 1

1? 1 . 1 1 0 1 0 1.0 0 1 0 + 0 . 1 0 0 0 1 r<0,+y* 0 . 0 1 0 1 1 1? 1.0 0 1 0 1 r>0, 结束

注:当x*>y*时产生溢出,这种情况在第一步运算后判断r的正负时就可发现。此时数值位占领小数点左边的1位,原码无定义,但算法本身仍可正常运行。

补码加减交替除法:

被除数(余数) 商

0 0 . 1 0 1 0 0 0 . 0 0 0 0 0 + 1 1 . 0 1 1 1 1 试减,x、y异号,+[y]补 0 0 . 0 0 0 1 1

1? 0 0 . 0 0 1 1 0 0 . + 1 1 . 0 1 1 1 1 r、y异号,+[y]补 1 1 . 1 0 1 0 1

1? 1 1 . 0 1 0 1 0 0.1

+ 0 0 . 1 0 0 0 1 r、y同号, +[-y]补 1 1 . 1 1 0 1 1

1? 1 1 . 1 0 1 1 0 0.1 1

+ 0 0 . 1 0 0 0 1 r、y同号, +[-y]补 0 0 . 0 0 1 1 1

被除数(余数) 商

1? 0 0 . 0 1 1 1 0 0 . 1 1 0 + 1 1 . 0 1 1 1 1 r、y异号, +[y]补 1 1 . 1 1 1 0 1

1? 1 1 . 1 1 0 1 0 0.1 1 0 1 + 0 0 . 1 0 0 0 1 r、y同号,+[-y]补 0 0 . 0 1 0 1 1 1? 0.1 1 0 1 1 —— 恒置1 r、x同号,结束 [r]补=0.010 11,r=r*=0.000 000 101 1 真符位的产生:qf = x0 ? y0 = 0 ? 1 = 1 [x?y]补=10.110 11,x?y= -1.001 01 判溢出:qf ? q0 = 1 ? 0 = 1,溢出

注:由于本题中x*>y*,有溢出。除法运算时一般在运算前判断是否x* >y*,如果该条件成立则停止运算,转溢出处理。但此算法本身在溢出情况下仍可正常运行,此时数值位占领小数点左边的1位,商需设双符号位(变形补码),以判溢出。采用这种方法时运算前可不判溢出,直接进行运算,运算完后再判溢出。 (4)x=13/32=(0.011 01)2

y= -27/32=(-0.110 11)2 x*= [x]原= [x]补= x=0. 011 01 [y]原 = 1.110 11 y* = 0.110 11 [-y*]补=1.001 01 [y]补= 1.001 01 [-y]补= 0.110 11 q0 = x0 ? y0 = 0 ? 1 = 1 x*?y*= 0.011 11 [x?y]原=1.011 11

x?y =(-0.011 11)2 = -15/32 r*=0.010 11×2-5

=0.000 000 101 1

原码加减交替除法:

被除数(余数) 商

0 . 0 1 1 0 1 0 . 0 0 0 0 0 + 1 . 0 0 1 0 1 试减,+[-y*]补

1 . 1 0 0 1 0 1? 1 . 0 0 1 0 0 0 . + 0 . 1 1 0 1 1 r<0, +y*

1 . 1 1 1 1 1 1? 1 . 1 1 1 1 0 0.0 + 0 . 1 1 0 1 1 r<0 0 . 1 1 0 0 1

1? 1 . 1 0 0 1 0 0.0 1 + 1 . 0 0 1 0 1 r>0 0 . 1 0 1 1 1 被除数(余数) 1? 1 . 0 1 1 1 0 0 . 0 1 1 + 1 . 0 0 1 0 1 r>0 0 . 1 0 0 1 1

1? 1 . 0 0 1 1 0 0.0 1 1 1 + 1 . 0 0 1 0 1 r>0 0 . 0 1 0 1 1 1 r>0补码加减交替除法:

被除数(余数) 0 0 . 0 1 1 0 1 0 . 0 0 0 0 0 + 1 1 . 0 0 1 0 1 1 1 . 1 0 0 1 0

1? 1 1 . 0 0 1 0 0 1 . + 0 0 . 1 1 0 1 1 r 1 1 . 1 1 1 1 1

1? 1 1 . 1 1 1 1 0 1.1

+ 0 0 . 1 1 0 1 1 r 0 0 . 1 1 0 0 1

1? 0 1 . 1 0 0 1 0 1.1 0

+ 1 1 . 0 0 1 0 1 r 0 0 . 1 0 1 1 1

被除数(余数) 1? 0 1 . 0 1 1 1 0 1 . 1 0 0 + 1 1 . 0 0 1 0 1 r 0 0 . 1 0 0 1 1

1? 0 1 . 0 0 1 1 0 1.1 0 0 0 + 1 1 . 0 0 1 0 1 r 0 0 . 0 1 0 1 1 1, +y* , +[-y*]补 商

, +[-y*]补 , +[-y*]补 ? 0.0 1 1 1 1 , 结束 商

试减,x、y异号,+[y]补 、y同号,+[-y]补 、y同号,+[-y]补 、y异号, +[y]补 商

、y异号, +[y]补 、y异号,+[y]补 ? 1.1 0 0 0 1 —— 恒置1

r、x同号,结束 [r]补=0.010 11,r=r*=0.000 000 101 1 [x?y]补=1.100 01,x?y=(-0.011 11)2 = -15/32

26.按机器补码浮点运算步骤,计算[x±y]补.

(1)x=2-011× 0.101 100,y=2-010×(-0.011 100); (2)x=2-011×(-0.100 010),y=2-010×(-0.011 111); (3)x=2101×(-0.100 101),y=2100×(-0.001 111)。 解:先将x、y转换成机器数形式:

(1)x=2-011× 0.101 100,y=2-010×(-0.011 100)

[x]补=1,101;0.101 100, [y]补=1,110;1.100 100

[Ex]补=1,101, [y]补=1,110, [Mx]补=0.101 100, [My]补=1.100 100 1)对阶:

[?E]补=[Ex]补+[-Ey]补 = 11,101+ 00,010=11,111 < 0, 应Ex向Ey对齐,则:[Ex]补+1=11,101+00,001=11,110 = [Ey]

[x]补=1,110;0.010 110 2)尾数运算:

[Mx]补+[My]补= 0.010 110 + 11.100 100=11.111010

[Mx]补+[-My]补=0.010 110 + 00.011100= 00.110 010 3)结果规格化:

[x+y]补=11,110;11.111 010 = 11,011;11.010 000 (尾数左规3次,阶码减3)

[x-y]补=11,110;00.110 010, 已是规格化数。 4)舍入:无 5)溢出:无

则:x+y=2-101×(-0.110 000) x-y =2-010×0.110 010

(2)x=2-011×(-0.100010),y=2-010×(-0.011111) [x]补=1,101;1.011 110, [y]补=1,110;1.100 001 1) 对阶:过程同(1)的1),则 [x]补=1,110;1.101 111 2)尾数运算:

[Mx]补+[My]补= 11.101111 + 11. 100001 = 11.010000 [Mx]补+[-My]补= 11.101111 + 00.011111 = 00.001110

3)结果规格化:

[x+y]补=11,110;11.010 000,已是规格化数

[x-y]补=11,110;00.001 110 =11,100;00.111000 (尾数左规

2次,阶码减2)

4)舍入:无 5)溢出:无

则:x+y=2-010×(-0.110 000) x-y =2-100×0.111 000

(3)x=2101×(-0.100 101),y=2100×(-0.001 111) [x]补=0,101;1.011 011, [y]补=0,100;1.110 001 1)对阶:

[?E]补=00,101+11,100=00,001 >0,应Ey向Ex对齐,则: [Ey]补+1=00,100+00,001=00,101=[Ex]补 [y]补=0,101;1.111 000(1) 2)尾数运算:

[Mx]补+[My]补= 11.011011+ 11.111000(1)= 11.010011(1) [Mx]补+[-My]补= 11.011011+ 00.000111(1)= 11.100010(1) 3)结果规格化:

[x+y]补=00,101;11.010 011(1),已是规格化数

[x-y]补=00,101;11.100 010(1)=00,100;11.000 101 (尾数左规1次,阶码减1)

4)舍入:

[x+y]补=00,101;11.010 011(舍) [x-y]补 不变 5)溢出:无

则:x+y=2101×(-0.101 101)

x-y =2100×(-0.111 011)

第7章 指令系统

1. 什么叫机器指令?什么叫指令系统?为什么说指令系统与机器的主要功能以及与硬件结构之间存在着密切的关系?

机器指令:是CPU能直接识别并执行的指令,它的表现形式是二进制编码。机器指令通常由操作码和操作数两部分组成。 指令系统:计算机所能执行的全部指令的集合,它描述了计算机内全部的控制信息和“逻辑判断”能力。

指令系统是计算机硬件和软件的接口部分,是全部机器指令的集合。

2. 什么叫寻址方式?为什么要学习寻址方式?

寻址方式:指确定本条指令的数据地址以及下一条将要执行的指令地址的方法,它与硬件结构紧密相关,而且直接影响指令格式和指令功能。

学习寻址方式,是为了找到指令中参与操作的数据,然后根据指令,得出结果。

3. 什么是指令字长、机器字长和存储字长?

指令字长:是指机器指令中二进制代码的总位数。指令字长取决于从操作码的长度、操作数地址的长度和操作数地址的个数。不同的指令的字长是不同的。 机器字长:是指计算机进行一次整数运算所能处理的二进制数据的位数(整数运算即定点整数运算)。机器字长也就是运算器进行定点数运算的字长,通常也是CPU内部数据通路的宽度。即字长越长,数的表示范围也越大,精度也越高。机器的字长也会影响机器的运算速度。

存储字长:一个存储单元存储一串二进制代码(存储字),这串二进制代码的位数称为存储字长,存储字长可以是8位、16位、32位等。

6.某指令系统字长为16位,地址码取4位,提出一种方案,使该指令系统有8

条三地址指令、16条二地址指令、100条一地址指令。 解:三地址指令格式如下:

4 4 4 4 OP A1 A2 A3 指令操作码分配方案如下:

4位OP 0000,

??, A1,A2,A3:8条三地址指令 0111,

1000,0000,

??,??, A2,A3:16条二地址指令 1000,1111, 1001,0000,0000,

??,??,??, A3:100条一地址指令 1001,0110,0011, 1001,0110,0100,

??,??,??, 冗余编码

1001,1111,1111, 可用来扩充一、零地址指令条数 1010,

??, 冗余编码

1111, 可用来扩充三、二、一、零地址指令条数

16. 某机主存容量为4M×16 位,且存储字长等于指令字长,若该机指令系统能完成108 种操作,操作码位数固定,且具有直接、间接、变址、基址、相对、立即等六种寻址方式。试回答:

(1)画出一地址指令格式并指出各字段的作用; (2)该指令直接寻址的最大范围; (3)一次间址和多次间址的寻址范围; (4)立即数的范围(十进制表示);

(5)相对寻址的位移量(十进制表示);

(6)上述六种寻址方式的指令哪一种执行时间最短?哪一种最长?为什么?哪一种便于程

序浮动?哪一种最适合处理数组问题?

(7)如何修改指令格式,使指令的寻址范围可扩大到4M?

(8)为使一条转移指令能转移到主存的任一位置,可采取什么措施?简要说明之。

解:

(1)单字长一地址指令格式:

OP——操作码字段,提供至少108种指令操作码; M——寻址方式码字段,指出6种寻址方式; A——形式地址字段,给出寻址所需的形式地址。

(2)A为6位,该指令直接寻址的最大范围为26=64字; (3)一次间址的寻址范围为216=64K字; 多次间址的寻址范围为215=32K字; (4)立即数的范围:若采用补码表示为1FH~20H;十进制表示为+31~ -32;无符号数为0~63; (5)相对寻址的位移量范围在采用补码表示时同立即数范围,为 +31~ -32; (6)立即寻址指令执行时间最短,因为此时不需寻址;

间接寻址指令执行时间最长,因为寻址操作需访存一次到 多次;

相对寻址便于程序浮动,因为此时操作数位置可随程序存储 区的变动而改变,总是相对于程序一段距离;

变址寻址最适合处理数组问题,因为此时变址值可自动修改 而不需要修改程序。

(7)为使指令寻址范围可扩大到4M,需要有效地址22位,此时可将单字长一地址指令的格式改为双字长,形式地址A扩展到第2个字。这样,直接寻址时,EA=A=16+6=22位正好可访问4M地址空间。由于A的扩展,变址、基址、相对、立即数等寻址方式也扩展到22位。

(8)如使一条转移指令能转移到主存的任一位置,可采用上述双字长一地址指令,通过选用合适的寻址方式完成。(如选用直接寻址就可转移到主存任一位置,但选用相对寻址则只能在±2M范围内转移。)

除此之外,后两题也可通过段寻址方式达到扩大寻址空间的目的(此时不需修改指令格式)。总之,不论采取何种方式,最终得到的实际地址应是22位。

18.某机器共能完成78种操作,若指令字长为16位,试问一地址格式的指令地址码可取几位?若想指令寻址范围扩大到216,可采取什么方法?举出三种不同的例子加以说明。

解:

64<78<128,所以操作码最少要取7位,则地址码最多取9位。

若想寻址范围扩大到216,则可以采取双字长指令、间接选址、寄存器间接寻址等方法

19. 某CPU内有32个32位的通用寄存器,设计一种能容纳64种操作的指令系统。假设指令字长等于机器字长,试回答以下问题:

(1)如果主存可直接或间接寻址,采用寄存器—存储器型指令,能直接寻址的最大存储空间是多少?画出指令格式并说明各字段的含义。

(2)在满足(1)的前提下,如果采用通用寄存器作基址寄存器,则上述寄存器—存储器型指令的指令格式有何特点?画出指令格式并指出这类指令可访问多大的存储空间?

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

OP(6位) R(5位) I(1位) A(20位) 操作码字段OP占6位,因为26>=64; 寄存器编号R占5位,因为25>=32;

间址位I占1位,当I=0,存储器寻址的操作数为直接寻址,当I=1时为间接寻址;

形式地址A占20位,可以直接寻址220字。

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

OP(6位) 源R(5位) I(1位) X(1位) 目标R(5位) A(14位) 增加寻址特征位X,当X=1时,以目标寄存器R作为基址寄存器进行基址寻址。

基址寻址可访问存储空间为:232字。

20 什么是RISC?简述它的主要特点。

解:RISC(reduced instruction set computer,精简指令集计算机)是一种执行较少类型计算机指令的微处理器,起源于80 年代的MIPS主机(即RISC 机),RISC机中采用的微处理器统称RISC处理器。 主要特点:

(1)选取使用频度较高的一些简单指令以及一些很有用但又不复杂的指令,让复杂指令的功能由频度高的简单指令的组合来实现。

(2)指令长度固定,指令格式种类少,寻址方式种类少。

(3)只有取数/存数指令访问存储器,其余指令的操作都在寄存器内完成。 (4)CPU中有多个通用寄存器。

(5)采用流水线技术,大部分指令在一个时钟周期内完成。采用超标量和超流水线技术,可使每条指令的平均执行时间小于一个时钟周期。 (6)控制器采用组合逻辑控制,不用微程序控制。 (7)采用优化的编译程序。

21 比较RISC和CISC。

解:(1)指令系统:RISC 设计者把主要精力放在那些经常使用的指令上,尽量使它们具有简单高效的特色。对不常用的功能,常通过组合指令来完成。因此,在RISC 机器上实现特殊功能时,效率可能较低。但可以利用流水技术和超标量技术加以改进和弥补。而CISC 计算机的指令系统比较丰富,有专用指令来完成特定的功能。因此,处理特殊任务效率较高。

(2)存储器操作:RISC 对存储器操作有限制,使控制简单化;而CISC 机器的存储器操作指令多,操作直接。

(3)程序:RISC 汇编语言程序一般需要较大的内存空间,实现特殊功能时程序复杂,不易设计;而CISC 汇编语言程序编程相对简单,科学计算及复杂操作的程序设计相对容易,效率较高。

(4)中断:RISC 机器在一条指令执行的适当地方可以响应中断;而CISC 机器是在一条指令执行结束后响应中断。 (5)CPU:RISC CPU 包含有较少的单元电路,因而面积小、功耗低;而CISC CPU 包含有丰富的电路单元,因而功能强、面积大、功耗大。

(6)设计周期:RISC 微处理器结构简单,布局紧凑,设计周期短,且易于采用最新技术;CISC 微处理器结构复杂,设计周期长。

(7)用户使用:RISC 微处理器结构简单,指令规整,性能容易把握,易学易用;CISC微处理器结构复杂,功能强大,实现特殊功能容易。

(8)应用范围:由于RISC 指令系统的确定与特定的应用领域有关,故RISC 机器更适合于专用机;而CISC 机器则更适合于通用机。

第8章 CPU的结构和功能

1. CPU有哪些功能?画出其结构框图并简要说明各个部件的作用。

答:解:CPU的主要功能是执行存放在主存储器中的程序即机器指令.CPU是由控制器和运算器. ALU状态标志内部CPU数据总线寄存器移位取反算术和布尔逻辑CU控制信号中断系统 ALU:实现算逻运算 寄存器:存放操作数 CU:发出各种操作命令序列的控制部件 中断系统:处理异常情况和特殊请求 2. 什么是指令周期?指令周期是否有一个固定值?为什么? 解:指令周期是指取出并执行完一条指令所需的时间。

由于计算机中各种指令执行所需的时间差异很大,因此为了提高CPU运行效率,即使在同步控制的机器中,不同指令的指令周期长度都是不一致的,也就是说指令周期对于不同的指令来说不是一个固定值。

3. 画出指令周期的流程图,分析说明图中每个子周期的作用。取指周期有间址吗?是否间址周期否执行周期有中断吗?是否中断周期

指令周期流程图 取指周期:取指令 间址周期:取有效地址

执行周期:取操作数(当指令为访存指令时) 中断周期:保存程序断点

答:

4. 设CPU内有下列部件:PC、IR、SP、AC、MAR、MDR和CU。

(1)画出完成间接寻址的取数指令LDA@X(将主存某地址单元X的内容取至AC中)的数据流(从取指令开始)。

(2)画出中断周期的数据流。

解:CPU中的数据流向与所采用的数据通路结构直接相关,不同的数据通路中的数据流是不一样的。常用的数据通路结构方式有直接连线、单总线、双总线、三总线等形式,目前大多采用总线结构,直接连线方式仅适用于结构特别简单的机器中。

为简单起见,本题采用单总线将题中所给部件连接起来,框图如下:

busPCMARSPMDRCUIRAC地址线数据线控制线

(1)LDA@X指令周期数据流程图:

PC→MARM(MAR)→MDR(MDR)→IRPC+1→PCAd(IR)→MARM(MAR)→MDRMDR→Ad(IR)Ad(IR)→MARM(MAR)→MDRMDR→AC

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

Top