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