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

admin2014-04-17  43

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

选项

答案独占查询方式下的I/O过程如图7-10所示。启动设备后,CPU就开始查询,因为333×60+20=20 000,所以第一个字节传送在第334次读取状态查询时检测到就绪,随后用1 000个时钟周期进行相应的处理,然后继续第二个字节的状态查询,因为40+1 000+316×60=20 000,所以,第二个字节的传送在第316次读取状态查询时检测到就绪,第一个和第二个字节的传送过程如图7-10a所示。每次检测到就绪后,就进行相应的处理,然后周而复始地进行查询,因为(20 000一1000)/60=316.7,所以,第317次状态查询时发现就绪。因为1 000+60×317—20 000=20,所以,每3B可多60个时钟周期,正好进行一次状态查询,因此,在剩下的998B的读取过程中,前996B的传送正好用了996×20 000个时钟周期,如图7-10b所示。最后两个字节的传送过程如图7-10c所示,因为2×(1 000+60×317-20 000)=40,此外,最后一个字节的处理还有1 000个时钟周期,所以最后两个字节总的时间为2×20 000+40+1000=4l 040个时钟周期。 [*] 综上所述,CPU用在该设备的。I/O操作上的总时间为1000×20 000ns+1040×1ns=20.001 04ms=20ms,即在1 000B的整个传输过程中,CPU一直为该设备服务,所用时间占整个CPU时间的100%。

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

最新回复(0)