2024年5月31日发(作者:)

第五章输入/输出习题

1.芯片技术的进展已经使得将整个控制器包括所有总线访问逻辑放在一个便宜的芯片

上成为可能。这对于图1-5的模型具有什么影响?

答:(题目有问题,应该是图1-6)在此图中,一个控制器有两个设备。单个控制器可

以有多个设备就无需每个设备都有一个控制器。如果控制器变得几乎是自由的,那么只需

把控制器做入设备本身就行了。这种设计同样也可以并行多个传输,因而也获得较好的性

能。

2.已知图5-1列出的速度,是否可能以全速从一台扫描仪扫描文档并且通过802.1lg

网络对其进行传输请解释你的答案。

答:太简单了。扫描仪最高速率为400KB/Sec,而总线程和磁盘都为16.7MB/sec,

因此磁盘和总线都无法饱和。

3.图5-3b显示了即使在存在单独的总线用于内存和用于I/O设备的情况下使用内存

映射I/O的一种方法,也就是说,首先尝试内存总线,如果失败则尝试I/O总线。一名聪

明的计算机科学专业的学生想出了一个改进办法:并行地尝试两个总线,以加快访问I/O

设备的过程。你认为这个想法如何?

答:这不是一个好主意。内存总线肯定比I/O总线快。一般的内存请求总是内存总线

先完成,而I/O总线仍然忙碌。如果CPU要一直等待I/O总线完成,那就是将内存的性

能降低为I/O总线的水平。

4.假设一个系统使用DMA将数据从磁盘控制器传送到内存。进一步假设平均花费

t2ns获得总线,并且花费t1ns在总线上传送一个字(t1>>t2)。在CPU对DMA控制

器进行编程之后,如果(a)采用一次一字模式,(b)采用突发模式,从磁

盘控制器到内存传送1000个字需要多少时间?假设向磁盘控制器发送命令需要获取

总线以传输一个字,并且应答传输也需要获取总线以传输一个字。

答:(a)1000×[(t1+t2)+(t1+t2)+(t1+t2)];第一个(t1+t2)是获取总线并将命令

发送到磁盘控制器,第二个(t1+t2)是用于传输字,第三个(t1+t2)是为了确认。总之,共

3000×(t1+t2)纳秒。

(b)(t1+t2)+t1+1000×t2+(t1+t2),第一个(t1+t2)是获取总线并将命令发送到

磁盘控制器,第二个t1是为磁盘控制器获取总线,第三个1000×t2是突发传送,第第四

个(t1+t2)是获取总线并做确认。总3t1+1002×t2。

5.假设一台计算机能够在10ns内读或者写一个内存字,并且假设当中断发生时,所

有32位寄存器连同程序计数器和PSW被压人堆栈。该计算机每秒能够处理的中断的最大

数目是多少?

答:一次中断需要入栈34个字。而从中断返回需要把34个字从栈中取出。总耗时为

680ns。因此,每秒最多处理147万次中断,假设每次中断什么也不做。

体系结构设计师知道操作系统编写者痛恨不精确的中断。取悦于OS人群的一

种方法是当得到一个中断信号通知时,让CPU停止发射指令,但是允许当前正在执行的指

令完成,然后强制中断。这一方案是否有缺点?请解释你的答案。