只要总线未被CPU占用,即可立即响应DMA请求;若总线正被CPU占用,则必须等待该存取周期结束时,CPU才交出总线的使用权。
30. 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
31. 假设某设备向CPU传送信息的最高频率是40 000次/秒,而相应的中断处理程序其执行时间为40?s,试问该外设是否可用程序中断方式与主机交换信息,为什么?
解:该设备向CPU传送信息的时间间隔 =1/40000=0.025×10-3=25 ? s < 40?s
则:该外设不能用程序中断方式与主机交换信息,因为其中断处理程序的执
行速度比该外设的交换速度慢。
32. 设磁盘存储器转速为3000转/分,分8个扇区,每扇区存储1K字节,主存与磁盘存储器数据传送的宽度为16位(即每次传送16位)。假设一条指令最长执行时间是25?s,是否可采用一条指令执行结束时响应DMA请求的方案,为什么?若不行,应采取什么方案?
解:先算出磁盘传送速度,然后和指令执行速度进行比较得出结论。
道容量= 1K ×8 ×8 位= 8KB = 4K字
数传率=4K字×3000转/分=4K字×50转/秒 =200K字/秒
一个字的传送时间=1/200K秒? 5?s (注:在此1K=1024,来自数据块单位缩写。)
因为5 ?s<<25?s,所以不能采用一条指令执行结束响应DMA请求的方案,应采取每个CPU机器周期末查询及响应DMA请求的方案(通常安排CPU机器周期=MM存取周期)。
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)