问答题 某计算机的CPU主频为500MHz,CPI为5(即执行每条指令平均需5个时钟周期)。假定某外设的数据传输率为0.5MB/s,采用中断方式与主机进行数据传送,以32位为传输单位,对应的中断服务程序包含18条指令,中断服务的其他开销相当于2条指令的执行时间。请回答下列问题,要求给出计算过程。(1)在中断方式下,CPU用于该外设I/O的时间占整个CPU时间的百分比是多少?(2)当该外设的数据传输率达到5MB/s时,改用DMA方式传送数据。假定每次DMA传送块大小为5000B,且DMA预处理和后处理的总开销为500个时钟周期,则CPU用于该外设I/O的时间占整个CPU时间的百分比是多少?(假设DMA与CPU之间没有访存冲突)
【正确答案】正确答案:(1)CPU中断一次时传输32位(4B)数据所用时间t 1 为 t 1 =4B/r 1 =8μs r 1 =0.5MB/s 已知I N =(18+2)=20,CPI=5,f=500MHz,则求得t CPU 为 t CPU =I N ×CPI/f=20×5/500=0.2μs CPU用于外设的时间占整个CPU时间的百分比P 1 为 P 1 =t CPU /t 1 =1/40=2.5% (2)假设采用CPU停止访内方式,DMA传送一个数据块所用时间t 2 为 t 2 =5000B/r 2 =1000μs,r 2 =5MB/s t' CPU =N c /f=1μs,N c =500 CPU用于外设的时间占整个CPU时间的百分比P 2 为 P 2 =t' CPU /t 2 =1/1000=0.1%
【答案解析】