单缓冲区
因为只有一个
缓冲区,输入和传送是 串行。如果 并行,当传送时,又开始输入,会导致缓冲区的数据被 覆盖传送和处理是 并行
双缓冲区
因为有2个
缓冲区,输入和传送是 并行。即:当传送时,又开始输入,由于有2个缓冲区,不会 导致缓冲区的数据被 覆盖传送和处理是 并行
题
此时输入时间 T 为 10us,传送时间 M 为 6us,处理时间 C 为 2us 。若要将 10 个磁盘块送入缓冲区处理,请问 单缓冲区 和 双缓冲区 花费时间各为多少us?
分析
使用 流水线时间计算公式:
取指时间 + 分析时间 + 执行时间 + ( n - 1 ) * 流水线周期
详见:
https://www.malaoshi.top/show_1GWs2WrSUnR.html
单缓冲区
由上面可知:
因为只有一个
缓冲区,输入和传送是 串行,所以计算时,将输入和传送按一个整体算,即:10us + 6us传送和处理是 并行
所以 流水线周期 是 10us + 6us = 10us
套入上面公式:
(10us + 6us) + 2us + (10 - 1) * (10us + 6us) = 162us
双缓冲区
由上面可知:输入 和 传送、处理 是 并行
所以 流水线周期 是 10us
套入上面公式:
10us + 6us + 2us + (10 - 1) * 10us = 108us

