题10

题目

Q:指令流水线中出现数据相关时流水线将受阻, ( ) 可解决数据相关问题。
A. 增加硬件资源
B. 采用旁路技术
C. 采用分支预测技术
D. 以上都可以

分析

A:旁路技术就是指在流水线执行过程中,将前面指令的计算结果直接传递给后面需要使用该结果的指令,避免等待数据写入寄存器组

  • 数据相关 (Data Hazards): 当一条指令需要使用前面指令的运算结果,但前面指令还没有完成时,就会产生数据相关。例如:
    • 指令 1:ADD R1, R2, R3 (将 R2 和 R3 的值相加,结果存入 R1)
    • 指令 2:ADD R4, R1, R5 (将 R1 和 R5 的值相加,结果存入 R4)
    • 指令 2 需要使用指令 1 的结果 R1,但指令 1 尚未完成。

B
处理数据相关问题有两种方法: 一种是暂停相关指令的执行, 即暂停流水线, 直到能够正确读出寄存器操作数为止;
另一种是采用专门的数据通路, 直接把结果送到 ALU 的输入端, 这种方法称为旁路技术。