A volte i data hazard si possono evitare semplicemente riordinando le istruzioni.
Esempio con il forwarding non riordinato.
1- lw t1, 0(t0) | IF ID EX MM WB
2- lw t2, 4(t0) | IF ID EX [MM] WB
3- add t3, t1, t2 | -> IF ID [EX] MM WB
4- sw t3, 12(t0) | IF ID EX MM WB
5- lw t4, 8(t0) | IF ID EX [MM] WB
6- add t5, t1, t4 | -> IF ID [EX] MM WB
7- sw t5, 16(t0) | IF ID EX MM WB
Esempio riordinato:
1- lw t1, 0(t0) | IF ID EX MM WB
2- lw t2, 4(t0) | IF ID EX [MM] WB
5- lw t4, 8(t0) | IF ID EX [MM] WB
3- add t3, t1, t2 | IF ID EX MM WB
4- sw t3, 12(t0) | IF ID EX MM WB
6- add t5, t1, t4 | IF ID EX MM WB
7- sw t5, 16(t0) | IF ID EX MM WB
Ovviamente ciò si può fare solo se, riordinando, si lavora sempre sui dati corretti al momento giusto.