单选题
假定磁盘传输数据以32位的字为单位,传输速率为1MB/s。CPu的时钟频率为50MHz。
(1)程序查询的输入输出方式,一个查询操作需要100个时钟周期,求CPU为I/O查询所花费的时间比率,假定进行足够的查询以避免数据丢失。
(2)用中断方式进行控制,每次传输的开销(包括中断处理)为100个时钟周期。求CPU为传输磁盘数据花费的时间比率。
(3)采用DMA控制进行输入输出操作,假定DMA的启动操作需要1000个时钟周期,DMA完成时处理中断需要500个时钟周期,如果平均传输的数据长度为4KB,问在磁盘工作时处理器将用多少时间比率进行输入输出操作,忽略DMA申请使用总线的影响。
(4)根据以上计算,可得出什么结论?
【正确答案】(1)因为磁盘传输数据以32位的字为单位,传输速率为1MB/s=250Kw/s,即每秒需要传输250K次。
1秒钟内用于查询的开销:100×250 000=25000 000=25M个时钟周期。
CPU的时钟频率为50MHz,即1s内共有50M个时钟周期。所以CPU为I/O查询所花费的时间比率25M/50M=50%。
(2)为达到外设1MB/s的数据传输率,外设每秒申请的中断次数:
1MB/4B=250 000
1秒钟内用于中断的开销:100×250000=25000000=25M个时钟周期。
所以CPU为传输磁盘数据花费的时间比率为:25M/50M=50%。
(3)为达到外设1MB/s的数据传输率,1秒钟内需产生的DMA次数:
1MB/4KB=250
CPU用于DMA处理的总开销:(1000+500)×250=375000=0.375M个时钟周期
所以处理器进行I/O操作的时间比率:0.375M/50M=0.75%
(4)根据以上计算,可以看出在高速的I/O设备(如磁盘)和存储器交换大量数据时,采用DMA传送方式比中断和查询方式的速度快,CPU效率高。
【答案解析】