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
|