1. add $r19, $r15, $r9 2. add $r29, $r15, $r9 3. add $r22, $r29, $r27 4. add $r15, $r22, $r9 5. add $r12, $r10, $r24 6. add $r27, $r15, $r21 7. add $r3, $r9, $r15 8. add $r31, $r22, $r8 9. add $r4, $r17, $r20 10. add $r11, $r7, $r31 11. add $r16, $r29, $r16 12. add $r27, $r18, $r0 13. add $r8, $r8, $r20 14. add $r8, $r8, $r20 15. add $r5, $r12, $r16 16. add $r21, $r9, $r8 17. add $r20, $r18, $r16 18. add $r4, $r8, $r20 19. add $r16, $r12, $r31 20. add $r4, $r21, $r19 21. add $r12, $r29, $r4 22. add $r13, $r8, $r7 23. add $r8, $r8, $r7 24. add $r14, $r5, $r21 25. add $r21, $r20, $r30 26. add $r21, $r8, $r25 27. add $r11, $r1, $r7 28. add $r7, $r12, $r18 Echte Datenabh"angigkeit und Schreibe nach Lesekonflikt: {($r19, 1, 20), ($r29,2,3),($r29,2,11),($r29,2,21), ($r22,3,4),($r22,3,8), ($r15,4,2),($r15,4,1),($r15,4,2),($r15,4,6),($r15,4,7), ($r12,5,15),($r12,5,19),($r12,5,26s), ($r27,6,3),($r27,12,3), ($r31,8,10),($r31,8,19), ($r16,11,11??? - keine muss der befehl selber machen),($r16,11,15),($r16,11,17), ($r27,12,3), ($r8,13,13--),($r8,13,14),($r8,13,16),($r8,13,22),($r8,13,23),($r8,13,16),($r8,13,26), ($r8,14,13),($r8,14,14--),($r8,14,16),($r8,14,22),($r8,14,23),($r8,14,16),($r8,13,26), ($r5,15,24), ($r21,16,6),($r21,16,20),($r21,16,24), ($r20,17,13),($r20,17,14),($r20,17,18),($r20,17,25), ($r4,18,21), ($r4,20,21), ($r16,19,11), ($r12,21,15),($r12,21,19),($r12,21,28), ($r18,23,8),($r18,23,13),($r18,23,14),($r18,23,22),($r18,23,26), ($r21,25,6),($r21,25,24), ($r21,26,6),($r21,26,24), ($r7,28,10),($r7,28,23),($r7,28,22),($r7,28,27)} Echte Datenabh"angig: wenn der zweite Befehl eine h"ohere ausf"uhrungsnummer hat, dann echte datenabh"angigkeit wenn der erste Befehl h"oher ist: Dann gegenabh"angigkeit Echte Datenabh"angigkeit: {($r19, 1, 20), ($r29,2,3),($r29,2,11),($r29,2,21), ($r22,3,4),($r22,3,8), ($r15,4,6),($r15,4,7), ($r12,5,15),($r12,5,19),($r12,5,26), ($r31,8,10),($r31,8,19), ($r8,13,14),($r8,13,16),($r8,13,22),($r8,13,23),($r8,13,16),($r8,13,26), ($r8,14,16),($r8,14,22),($r8,14,23),($r8,14,16),($r8,13,26), ($r5,15,24), ($r21,16,20),($r21,16,24), ($r20,17,18),($r20,17,25), ($r4,18,21), ($r4,20,21), ($r12,21,28), ($r18,23,26)} Gegenabh"angigkeit: ($r15,4,2),($r15,4,1),($r15,4,2), ($r27,6,3),($r27,12,3), ($r27,12,3), ($r8,14,13), ($r21,16,6), ($r20,17,13),($r20,17,14), ($r4,20,21), ($r16,19,11), ($r12,21,15),($r12,21,19),($r12,21,28), ($r18,23,8),($r18,23,13),($r18,23,14),($r18,23,22), ($r21,25,6),($r21,25,24), ($r21,26,6),($r21,26,24), ($r7,28,10),($r7,28,23),($r7,28,22),($r7,28,27)} Jetzt bei einer 5 stufigen MIPS32 Pipleline spielen nur die Befehle eine, die 3 takte auseinander liegen, im aller groebsten: ($r29,2,3) ($r22,3,4), ($r15,4,6),($r15,4,7), ($r31,8,10), ($r8,13,14),($r8,13,16),($r8,13,16), ($r8,14,16),($r8,14,16), ($r20,17,18), ($r4,18,21), ($r4,20,21), ($r18,23,26)} Gegenabh"angigkeit: ($r15,4,2),($r15,4,1),($r15,4,2), ($r27,6,3), ($r8,14,13), ($r20,17,14), ($r4,20,21), ($r12,21,19), ($r18,23,22), ($r21,25,24), ($r21,26,24), ($r7,28,27)} Das ganze ebenso mit Ausgabeabh"angigkeit, nur - eben mit Zielregister |