一个 DMA 接口可采用周期窃取方式把字符传送到存储器, 它支持的最大批量为 400 个字节。 若存取周期为 0. 2μs, 每处理一次中断需 59s。 现有字符设备的传输率为 9600bit/s。 假设字符之间的传输是无间隙的, 试问 DMA 方式每秒因数据传输占用处理器多少时间? 如果完全采用中断方式, 又需占处理器多少时间? (忽略预处理所需的时间)
根据字符设备的传输率为 9600bit/s, 得每秒能传输 9600/8=1200Byte, 即 1200 个字符。 若采用 DMA方式, 传送 1200 个字符共需 1200 个存取周期, 考虑到每传 400 个字符需中断处理一次, 因此 DMA 方式每秒因数据传输占用 CPU 处理器的时间是:
0.2μs×1200+5μs×(1200/400)=255μs;
若采用中断发生, 每秒因数据传输占用处理器的时间是:
5μs×1200=6000μs。