【题目】
43.(8分)某计算机的CPU主频为500 MHz,CPI为5(即执行每条指令平均需5个时钟周期)。假定某外设的数据传输率为0.5 MB/s,采用中断方式与主机进行数据传送,以32位为传输单位,对应的中断服务程序包含18条指令,中断服务的其他开销相当于2条指令的执行时间。请回答下列问题,要求给出计算过程。
(1) 在中断方式下,CPU用于该外设I/O的时间占整个CPU时间的百分比是多少?
(2) 当该外设的数据传输率达到5 MB/s时,改用DMA方式传送数据。假定每次DMA传送块大小为5 000 B,且DMA预处理和后处理的总开销为500个时钟周期,则CPU用于该外设I/O 的时间占整个CPU时间的百分比是多少?(假设DMA与CPU之间没有访存冲突)
【答案要点】
(1) 中断方式下,CPU每次用于数据传送的时钟周期数:5×18+5×2=100。
为达到外设0.5 MB/s的数据传输率,外设每秒申请的中断次数:0.5 MB/4 B=125 000。1秒钟内用于中断的开销:100×l25 000=12 500 000=12.5M个时钟周期。
CPU用于外设I/O的时间占整个CPU时间的百分比:12.5 M/500 M=2.5%。
(2) 外设数据传输率提高到5 MB/s时,1秒钟内需产生的DMA次数:5 MB/5 000 B=1 000。CPU用于DMA处理的总开销:1 000×500=500 000=0.5 M个时钟周期。
CPU用于外设I/O的时间占整个CPU时间的百分比:0.5 M/500 M=0.1%。