What is delayed branching?
A method called delayed branching can minimize the penalty incurred as a result of conditional branch instructions. The idea is easy. The instructions in the delay slots are always fetched. Thus, we would like to arrange for them to be fully implemented whether or not the branch is taken. The objective is to be able to place useful instructions in these slots. If no useful instructions can be placed in the delay slots, these slots must be full with NOP instructions.