某计算机系统输入/输出采用双缓冲工作方式,其工作过程如下图所示,假设磁盘块与缓冲区大小相同,每个盘块读入缓冲区的时间T为10μs,由缓冲区送至用户区的时间M为6μs,系统对每个磁盘块数据的处理时间C为2μs。若用户需要将大小为10个磁盘块的Doc1文件逐块从磁盘读入缓冲区,并送至用户区进行处理,那么采用双缓冲需要花费的时间为( )μs,比使用单缓冲节约了( )μs时间。

upload successful

upload successful

单缓冲区和双缓冲区都使用的是流水线技术,所以用流水线计算公式算就可以。计算流水线执行时间的理论公式是:第一条指令顺序执行时间+(指令条数-1)周期,而周期是取各节点的最大处理时长。在本题中,单缓冲区的传送数据和输入数据是绑定在一起的,所以需要把它们结合起来视为流水线周期,构造成流水线后,整个过程划分为2个阶段,分别是16μs,2μs,根据流水线执行公式,流水线执行时间为:16μs+2μs+(10-1)16μs=162μs。 而对于双缓冲区来说,它们有多余的缓冲区可以进行单独的传送和输入数据。读入缓冲区和由缓冲区送至用户区可以并行处理,对于这里构造成流水线后,整个过程划分为3个阶段,1、从磁盘读入到缓冲区(10μs);2、从缓冲区读入到(内存)用户区(6μs);3、处理(内存)用户区数据(2μs)。根据流水线执行公式,流水线执行时间为:10μs+6μs+2μs+(10−1)⋅10μs=108μs。