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

admin2017-11-20  23

问题 假设一个主频为1GHz、CPI为5的CPU需要从某个成块传送的I/O设备读取1000B的数据到主存缓冲区中,该I/O设备一旦启动即按50KB/s的数据传输率向主机传送1000B数据,每个字节的读取、处理并存入内存缓冲区需要1000个时钟周期,则以下4种方式下,在1000B的读取过程中,CPU用在该设备的I/O操作上的时间分别为多少?占整个CPU时间的百分比分别是多少?
采用定时查询方式,每次处理一个字节,一次状态查询至少需要60个时钟周期。

选项

答案主频为1GHz,所以时钟周期为1/1GHz=1ns。因为每个字节的读取、处理并存入内存缓冲区需要1000个时钟周期,所以,对于像程序查询和中断等用软件实现输入/输出的方式,CPU为每个字节传送所用的时间至少为1000×1ns=1000ns=1μs。在50kB/s的数据传输率下,设备每隔1B/50kB/s=20μs=20000ns准备好一个字节,因而读取1000B的时间为1000×20μs=20ms。 定时查询方式下的I/O过程如图7-12所示。用户可以设置每隔20000ns查询一次,这样使得查询程序的开销达到最小,即第一次读取状态时就可能会发现就绪,然后用1000个时钟周期进行相应处理,因此,对于每个字节的传送,CPU所用时钟周期数为60+1000=1060。因此,在1000B的读取过程中,CPU用在该设备的I/O操作上的时间至少为1000×1060×1ns=1.060ms,占整个CPU时间的百分比至少为1.060/20=5.3%。 [*]

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

最新回复(0)