首页 > 试题广场 >

回答问题

[问答题]

10 分)某计算机 CPU 主频为 1GHz ,所连接的某外设的最大数据传输率为 40kBps ,该外设接口中有一个 32 位的数据缓存器,相应的中断服务程序的执行时间为 500 个时钟周期。请回答下列问题:

1 )是否可用中断方式进行该外设的输入输出?若能的话,在该设备持续工作期间, CPU 用于该设备进行输入 / 输出的时间占整个 CPU 时间的百分比大约为多少?

2 )若该外设的最大数据传输率提高到 4MBps ,则可否用中断方式进行输入输出?若此时采用周期挪用 DMA 方式进行输入 / 输出,每挪用一个周期传送一个 32 位数据,一次 DMA 传送完成 1000 字节的数据传送, DMA 初始化和后处理的时间为 2000 个时钟周期,不考虑访存冲突,则 CPU 用于该设备进行输入 / 输出的时间占整个 CPU 时间的百分比大约为多少?

1 )因为该外设接口中有一个 32 位数据缓存器,所以,若用中断方式进行输入 / 输出的话,可以每 32 位数据进行一次中断请求,因此,中断请求的时间间隔为 106 × 4B/40kB=100µs

对应的中断服务程序的执行时间为 (1/1GHz) × 500 × 106=0.5µs ,因为中断响应过程就是执行一条隐指令的过程,所用时间相对于中断处理时间(即执行中断服务程序的时间)而言,几乎可以忽略不计,因而整个中断响应并处理的时间大约 1µs 多一点,远远小于中断请求的间隔时间。因此,可以用中断方式进行该外设的输入输出。

若用中断方式进行该设备的输入 / 输出,则 该设备持续工作期间, CPU 用于该设备进行输入 / 输出的时间占整个 CPU 时间的百分比大约为 0.5/100=0.5% (也可以通过考察 1 秒钟内 500M 个时钟周期中有多少时钟周期用于中断来计算百分比,其计算公式为 ( 106 /100×500)/500M=1% )。

2 )若外设的最大传输率为 4MBps ,则中断请求的时间间隔为 106 × 4B/4MB=1µs 。而整个中断响应并处理的时间大约 0.5µs 多一点,中断请求的间隔时间和中断响应处理时间太接近,虽然可以用中断方式进行该外设的输入输出 , 但不太合适

若用周期挪用 DMA 方式,则 秒钟内产生的 DMA 次数为 4 MB/1000B=4000 ;每次 DMA 传送前都需要 2000 个时钟周期进行 DMA 初始化和 DMA 结束处理,所以, CPU 用于 DMA 处理的总开销为 4000 ´ 2000= 8000 000= 8M 个时钟周期;而 CPU 的时钟频率为 1GHz ,即 CPU 每秒钟内产生 1000M 个时钟周期,故 CPU 用于该外设 I/O 的时间占整个 CPU 时间的百分比 8M / 1000M = 0.8% (也可通过考察相邻 两次 DMA 请求间隔时间内 CPU 用于该外设 I/O 的时间来计算,即 (2000 ×1/1GHz)/(1000B/ 4MB)=0.8% )。

发表于 2017-05-10 01:43:11 回复(0)