Zum Inhalt springen

Datenabhängigkeit

aus Wikipedia, der freien Enzyklopädie

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:

  • Gegenabhängigkeit (anti-dependence, write-after-read) besteht, wenn eine Anweisung einen Wert (über-)schreibt, auf den in der vorangehenden Anweisung lesend zugegriffen wird.<ref name="architecture"/> 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.<ref name="architecture"/> 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

<references />