mips32datadependend20241130a.txt


   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