计算机组织与系统结构第九章习题答案

更新时间:2023-10-11 20:39:01 阅读量: 综合文库 文档下载

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

3. 假定一个政府机构同时监控100路移动电话的通话消息,通话消息被分时复用到一个带宽为4MBps的网络上,复用使得每传送1KB的通话消息需额外开销150μs,若通话消息的采样频率为4KHz,每个样本的量化值占16位,要求计算每个通话消息的传输时间,并判断该网络带宽能否支持同时监控100路通话消息?

参考答案:

每路移动电话1秒钟所要传输的数据量:4000HZ x(16/8)B=8000B=7.8125KB 该网络传输1KB数据所需要的时间为:150μs+(1KB / 4MB)=394μs

所以实际传输100路移动电话所需时间为:394μs/KB x7.8125KB x 100=0.31s

因为0.31s小于1秒钟,故该网络带宽支持同时监控100路通话消息。

4.假定一个程序重复完成将磁盘上一个4KB的数据块读出,进行相应处理后,写回到磁盘的另外一个数据区。各数据块内信息在磁盘上连续存放,并随机地位于磁盘的一个磁道上。磁盘转速为7200RPM,平均寻道时间为10ms,磁盘最大数据传输率为40MBps,磁盘控制器的开销为2ms,没有其他程序使用磁盘和处理器,并且磁盘读写操作和磁盘数据的处理时间不重叠。若程序对磁盘数据的处理需要20000个时钟周期,处理器时钟频率为500MHz,则该程序完成一次数据块“读出-处理-写回”操作所需的时间为多少?每秒钟可以完成多少次这样的数据块操作?

参考答案:

平均旋转等待时间:(1s / (7200/60)) / 2 ≈ 8.33/2 ≈ 4.17ms

因为块内信息连续存放,所以数据传输时间:4KB / 40MBps ≈ 0.1ms 平均存取时间T :寻道时间 + 旋转等待时间 + 数据传输时间

= 10ms + 4.17ms + 0.1ms = 14.27ms

读出时间(写回时间):14.27ms+2ms = 16.27ms 数据块的处理时间:20000 / 500MHz ≈ 0.04ms

因为数据块随机存放在某个磁道上,所以,每个数据块的 “读出-处理-写回”操作时间都是相同的,所以完成一次操作时间:16.27ms x 2+0.04ms = 32.58ms

每秒中可以完成这样的数据块操作次数:1s / 32.58ms ≈ 30次

5. 假定主存和磁盘存储器之间连接的同步总线具有以下特性:支持4字块和16字块两种长度(字长32位)的突发传送,总线时钟频率为200MHz,总线宽度为64位,每个64位数据的传送需1个时钟周期,向主存发送一个地址需要1个时钟周期,每个总线事务之间有2个空闲时钟周期。若访问主存时最初四个字的存取时间为200ns,随后每存取一个四字的时间是20ns,磁盘的数据传输率为5MBps,则在4字块和16字块两种传输方式下,该总线上分别最多可有多少个磁盘同时进行传输? 参考答案:

总线时钟频率为200MHz,因而总线时钟周期为1/200M=5ns。

对于4字传送方式,每个总线事务由一个地址传送后跟一个4字的数据块传送组成。

CPU 1 clock 数据块首址 40 clocks 主存读出开始4个字

2 clocks 传送 4个字 2 clocks 总线空闲 主存

一次总线事务总共需要1+40+2+2=45个时钟周期,256个字需256/4=64个事务,因而整个传送需45×64=2880个时钟周期,得到总延时为2880×5ns=14400ns。每秒钟进行的总线事务数为64/14400ns = 4.44M。总线的数据传输率为(256×4B)/14400ns =71.11MB/s。

对于16字传送方式,每个总线事务由一个地址传送后跟一个16字的数据块传送组成。

1 clock CPU 数据块首址 40 clocks 主存读出开始4个字 2 clocks 2 clocks 2 clocks 2 clocks 2 clocks 2 clocks 2 clocks 2 clocks 主存 主存读随后的4个字 总线前两个时钟传输前4个字,后两个时钟空闲 总线前两个时钟传输前4个字,后两个时钟空闲

一次总线事务(传输16字)的时钟周期数为1+40+4×(2+2)=57,256个字需256/16=16个事务,因此整个传送需57×16=912个时钟周期。因而总延时为912×5ns=4560ns。每秒钟的总线事务数为16/4560ns= 3.51M。总线的数据传输率为(256×4B)/4560ns=224.56MB/s。

由以上第8章ppt中的例题可知,在4字传输方式下,总线的数据传输率为71.11MB/s,因为71.11/5=14.2,所以,该总线上最多可以有14个磁盘同时进行传输。在16字传输方式下,总线的数据传输率为224.56MB/s,因为224.56/5=44.9,因此,此时该总线上最多可以有44个磁盘同时进行传输。

6. 假定有两个用来存储10TB数据的RAID系统。系统A使用RAID1技术,系统B使用RAID5技术。

(1)系统A需要比系统B多用多少存储量?

(2) 假定一个应用需要向磁盘写入一块数据,若磁盘读或写一块数据的时间为30ms,

则最坏情况下,在系统A和系统B上写入一块数据分别需要多长时间? (3)那个系统更可靠?为什么?

参考答案:

(1)系统A使用RAID1技术,所以存储10TB数据的情形下要使用20TB的磁盘。 系统B使用RAID5技术,假设是使用5个磁盘阵列,那么10TB的数据需要2.5TB的磁盘来存放冗余的奇偶校验数据,所以系统A要比系统B多用7.5TB存储量。 (2)系统A的写入速度取决于原磁盘和备份磁盘中速度慢的一块,但两个磁盘并行写。因为写一块数据的时间都是30ms,故系统A写入一块数据的时间是30ms。系统B在写入一块数据后可能要更改相关的校验数据,冗余数据分布在不同磁盘上,所以最坏的情况下,写一块数据的时间为2次读和2次写,即所用时间为4×30=120ms。。

假定考虑一个有5个磁盘的阵列,且假设要写入的数据在磁盘X0上的块0,则与之

相关的数据为X1到X3上的块1-3,以及X4中的奇偶校验数据P(0-3),

可知: p(i)= X3(i) ⊕ X2(i) ⊕ X1(i) ⊕ X0(i)

写操作后,可能改变的情况如下:

P’ (i) = X3(i) ⊕ X2(i) ⊕ X1(i) ⊕ X’0(i)

= X3(i) ⊕ X2(i) ⊕ X1(i) ⊕ X’0(i) ⊕ X0(i) ⊕ X0(i) 化简后得到: p’(i) = p(i) ⊕ X0(i) ⊕ X’0(i)

因此,要更新一个X0(i),必须先读p(i)和X0(i),然后写X’0(i)和p’ (i)

(3)相对来说系统A 更可靠一些,因为系统对整个磁盘进行了完整备份,所以只有互为镜像的两个盘上的对应数据都损坏时才不能恢复;而系统B是分散记录了原数据的部分冗余信息,如果其中两个磁盘的相同位都损坏了就恢复不出来了。

7. 假定在一个使用RAID5的系统中,采用先更新数据块、再更新校验块的信息更新方式。如果在更新数据块和更新校验块的操作之间发生了掉电现象,那么会出现什么问题?采用什么样的信息更新方式可避免这个问题?

参考答案:

答:对于RAID 5来说,如果在写完数据块但未写入校验块时发生断电,则写入的数据和对应的校验信息不匹配,无法正确恢复数据。这种情况可以避免,因为RAID 5是大数据块交叉方式,每个盘独立进行操作,所以,只要同时写数据块所在盘和校验块所在盘即可。

8. 某终端通过RS-232串行通信接口与主机相连,采用起止式异步通信方式,若传输速率为1200波特,采用两相调制技术。通信协议为8位数据、无校验位、停止位为1位。则传送一个字节所需时间约为多少?若传输速度为2400波特,停止位为2位,其他不变,则传输一个字节的时间为多少?

参考答案:

采用两相调制技术,所以,波特率=比特率,且每个字符都有一个起始位, (a) 1200波特时,一个字符共占:1+8+1=10位

所以一个字符所需时间约为:10x(1÷1200)=8.3毫秒 (b) 2400波特时,一个字符共占:1+8+2=11位

所以一个字符所需时间约为:11x(1/2400)=4.6毫秒

9. 假定采用独立编址方式对I/O端口进行编号,那么,必须为处理器设计哪些指令来专门用于进行I/O端口的访问?连接处理器的总线必须提供哪些控制信号来表明访问的是I/O空间?

参考答案:

IO读指令和IO写指令

IO读控制信号,IO写控制信号。

10. 假设有一个磁盘,每面有200个磁道,盘面总存储容量为1.6兆字节,磁盘旋转时间为25ms/圈, 每道有4个区,每两个区之间有一个间隙,磁头通过每个间隙需1.25ms。(1)问:从该磁盘上读取数据时的最大数据传输率是多少(单位为字节/秒)?(2)假如有人为该磁盘设计了一个与计算机之间的接口,如下图所示,磁盘每读出一位,串行送入一个移位寄存器,每当移满16位后向处理器发出一个请求交换数据的信号。在处理器响应该请求信号并读取移位寄存器内容的同时,磁盘继续读出一位一位数据并串行送入移位寄存器,如此继续工作。已知处理器在接到请求交换的信号以后,最长响应时间是3微秒,这样设计的接口能否正确工作?若不能则应如何改进?

区4 区1 区3 磁盘读入 区2 16位移位寄存器

参考答案: 每个磁道的存储容量:1.6x106 / 200=8000B

? 每个区容量为:8000 / 4 = 2000B

而当仅读取一个区内数据的时候,转过一个区只需要: (25-1.25x4) / 4 = 5ms 所以最大数据传输率:2000B / 5ms = 4x105字节/秒 -------------------------------------

因此,传送1位的最短时间为:1 / (8x4x105) =0.31μs <<3μs

因此,当处理器经过3μs来读取移位寄存器中的数据时,磁盘已经读出了新的数据位,并将原先请求被读的移位寄存器中的数据冲刷掉了。所以这样的设计接口不能正确工作。

改进方法:传送16位数据需0.31 x 16 = 5μs > 3μs

所以可以增加一个16位数据缓冲器。当16位移位寄存器装满后,先送入数据缓冲寄存器,在读出下一个16位数据期间(5μs),上次读出的16位数据从数缓器中被取走(3μs)。

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

Top