问答题 一个CPU一个I/O设备、一个存储器M通过共享总线互连,总线宽度为1个字。CPU执行的最大速度为10 6 条指令/秒,平均一条指令需5个机器周期,且3次使用存储器总线。存储器读/写操作需1个机器周期。假设CPU连续执行后台程序,它需用指令执行速度95%的速度,但不要求有任何I/O指令。又假定机器周期等于总线周期。现在要求I/O设备用来传送一个数据块到存储器M,或由M到I/O设备。 (1)如果采用I/0查询方式,I/O设备传输每一个字需CPU执行两条指令,估算经过I/O设备的最大可能的数据传输率。 (2)如果采用DMA方式,估算数据传输率。
【正确答案】正确答案:(1)按题意,画出系统组成框图如图10.8所示: 设机器周期为T,按题意,存取周期=总线周期=机器周期=TCPU最大速度为10 6 条指令/秒,平均每条指令执行时间为5T后台程序速度为10 6 条指令/秒×95%=0.95×10 6 条指令/秒后台每条指令执行时间t 1 为 t 1 = ×10 -6 s=5T 所以 T= ×10 -6 s CPU用于I/O操作的程序速度为10 6 条指令/秒×0.05=0.05×10 6 条指令/秒I/O操作每条指令执行时间 t 2 = s=20×10 -6 s I/O操作传送一个字需2条指令,传送一个数据块(m个字)所需总时间设为t t=2×t 2 ×m=2×20×10 -6 ×m=40m×10 -6 s I/O数据传输率r=1/t= 字/s (2)I/O设备采用DMA方式 不考虑DMA预置所花时间,只考虑存储器到I/O的数据块(m字)传送。假设采用实发式DMA(CPU停止工作),一旦有DMA请求,传送一个数据块(m字)所需总时间t为: t=(存取周期+总线周期)×m=2Tm=2× ×10 -6 ×ms I/O数据传输率r=1/t=
【答案解析】