假设一个主频为1GHz、CPI为5的CPU需要从某个成块传送的I/O设备读取1 000B的数据到主存缓冲区中,该I/O设备一旦启动即按50KB/s的数据传输率向主机传送1000B数据,每个字节的读取、处理并存入内存缓冲区需要1 000个时钟周期,则以下4种

admin2014-04-17  27

问题 假设一个主频为1GHz、CPI为5的CPU需要从某个成块传送的I/O设备读取1 000B的数据到主存缓冲区中,该I/O设备一旦启动即按50KB/s的数据传输率向主机传送1000B数据,每个字节的读取、处理并存入内存缓冲区需要1 000个时钟周期,则以下4种方式下,在1 000B的读取过程中,CPU用在该设备的I/O操作上的时间分别为多少?占整个CPU时间的百分比分别是多少?
如果设备的速度提高到5MB/s,则上述4种方式中,哪些是不可行的?为什么?对于可行的方式,计算出CPU在该设备:I/O操作上所用的时间占整个CPU时间的百分比。

选项

答案若设备数据传输率为5 M_B/s,则外设传输1 000B所用时间为1 000B/(5×106B/s)=200μs。 对于定时查询和独占查询方式,传送1 000B CPU所用时间至少为1000×(60+1000)×1ns=1 060μs;对于中断方式,传送1000B CPU所用时间为1 000×(2+1 200)×1 ns=1 202μs。上述3种方式下,CPU所用的时间都比设备所用时间长得多,即设备的传输比CPU的处理快得多,因而发生数据丢失。因此,这3种方式都不能用于该设备的I/O操作。对于DMA方式,传送1 000B CPU所用时间为2 000×1ns=2μs,占整个CPU时间的百分比为2/200=1%。这说明可以使用DMA方式,不过由于外设传输速度加快,使得CPU频繁进行DMA预处理和后处理,因此CPU的开销从0.01%上升到了1%。 补充说明:在计算CPU占用时间百分比时也可用另一种方法计算得到。例如,对于(3)中断方式的计算,可以先求出1s内该外设请求的中断次数为1/(1B/50KB)=50K,然后得到1 s内CPU用于数据。I/O的时钟周期数为50K×(2+1200)=6.01×107,因此在该设备传输过程中,CPU用于该设备I/O操作的时间占整个CPU时间的百分比为6.01×107/1G=6.01%。

解析
转载请注明原文地址:https://kaotiyun.com/show/Zexi777K
0

最新回复(0)