Datenabhängigkeit

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 20. Januar 2014 um 10:01 Uhr durch Horst Gräbner (Diskussion | Beiträge) (Die letzte Textänderung von 14.56.166.130 wurde verworfen und die Version 116734269 von Addbot wiederhergestellt. keine Verbesserung). Sie kann sich erheblich von der aktuellen Version unterscheiden.
Zur Navigation springen Zur Suche springen

Datenabhängigkeit (data dependency) beschreibt in der Informatik die Situation, dass Daten, die von einer Anweisung benutzt werden, auch von einer vorhergehenden Anweisung benutzt werden.

Es wird zwischen folgenden Arten von Datenabhängigkeiten unterschieden:

  • Echte Datenabhängigkeit (true dependence, read-after-write) besteht, wenn eine Anweisung lesend auf das Ergebnis einer vorangehenden Anweisung zugreift.[1] Beispiel:
    1. a = b + c
    2. d = a + 1
  • Gegenabhängigkeit (anti-dependence, write-after-read) besteht, wenn eine Anweisung einen Wert (über-)schreibt, auf den in der vorangehenden Anweisung lesend zugegriffen wird.[1] Beispiel:
    1. a = b + c
    2. b = d + 1
  • Ausgabeabhängigkeit (output dependence, write-after-write) besteht, wenn beide Anweisungen in die gleiche Variable schreiben.[1] Beispiel:
    1. a = b + c
    2. a = d + e

Wenn – wie bei konventionellen Programmen – eine Anweisung nach der anderen ausgeführt wird, stellen Datenabhängigkeiten kein Problem dar. Bei Prozessoren mit Pipeline-Verarbeitung, die mehrere Anweisungen parallel durchführen, können sie jedoch zu Datenkonflikten führen.

Einzelnachweise

  1. a b c John L. Hennessy; David A. Patterson: Computer Architecture: a quantitative approach (3rd ed.). Morgan Kaufmann, 2003, ISBN 1-55860-724-2.