11. When a branch is taken, several of the instructions that follow a branch have already been...
Question:
11. When a branch is taken, several of the instructions that follow a branch have already been loaded into the pipeline. A process called flushing is used to prevent the execution of these instructions. Several of the pipeline registers are cleared so that these instructions do not store any values to registers or memory or cause a forwarding operation. Add branch flushing to the pipelined MIPS VHDL model as shown in Figures 6.38 of the Computer Organization and Design The Hardware/Software Interface by Patterson and Hennessy. Note that two new forwarding multiplexers at the register file outputs (not shown in the Figure, currently at ALU inputs) are needed to eliminate the new Branch data hazards that appear when the branch comparator is moved into to the decode stage.
Section 6.6 of Computer Organization and Design The Hardware/Software Interface contains additional background information on branch hazards.
Step by Step Answer:
Rapid Prototyping Of Digital Systems
ISBN: 9780387726700
2nd Edition
Authors: James O Hamblen, Tyson S Hall, Michael D Furman