Abo
  • IT-Karriere:

Delay Slot: Das Verb steht immer an zweiter Stelle

Trotz aller Flexibilität steht in der deutschen Alltagssprache das Verb üblicherweise an der zweiten Stelle, direkt nach dem ersten Satzteil:

Stellenmarkt
  1. Ryte GmbH, München
  2. Concardis GmbH, Eschborn

1. Der Hund geht morgen zum Tierarzt.

2. Morgen geht der Hund zum Tierarzt.

In der wörtlichen Übersetzung klingt der zweite Satz für nichtdeutsche Muttersprachler irritierend:

3. Tomorrow goes the dog to the vet.

Obwohl es für den dritten Satz durchaus noch Überreste im modernen Englisch gibt, klingt diese englische Übersetzung für den zweiten Satz eher korrekt:

4. Tomorrow, the dog goes to the vet.

Das Verb stets an die zweite Stelle zu setzen - mit diesem Aspekt der deutschen Sprache zurechtzukommen, verlangt einiges an Gewöhnung. Mir hat es geholfen, an Delay Slots zu denken, wie es sie in älteren Prozessor-Architekturen gibt, zum Beispiel bei Suns SPARC. Diese arbeiten mit einer Pipeline. Dabei läuft die Verarbeitung von aufeinanderfolgenden Befehlen leicht versetzt nacheinander ab. Während der erste Befehl ausgeführt wird, wird der zweite Befehl im gleichen Zyklus dekodiert und parallel der dritte Befehl in die Pipeline geladen, und so weiter. Das erhöht die Verarbeitungsgeschwindigkeit des Prozessors enorm.

Allerdings wirken sich Pipelines negativ auf die Geschwindigkeit aus, wenn der Prozessor nicht weiß, welche Befehle als nächstes zu laden sind. Und das passiert, wenn er eine Verzweigung aufgrund einer Prüfbedingung verarbeiten muss:


x = 5 + 6
y = z + 4
if y > 5:
    print('hello!')
else:
    print('goodbye!')

Solange der Prozessor z + 4 in Zeile 2 nicht berechnet hat, weiß er nicht, ob er Zeile 4 oder 6 in die Pipeline laden soll. Diese Wartezeit blockiert den Zyklus der gesamten Pipeline. Erst wenn z + 4 berechnet (ausgeführt) wurde, wird der Befehl y = 5 + 6 in der ersten Zeile auch tatsächlich beendet und verlässt die Pipeline.

In späteren Prozessor-Generationen wird dieses Problem mithilfe der Out-of-Order-Execution gelöst. Doch davor mussten sich Entwickler mit einer anderen Lösung behelfen: Delay Slots. Einer oder mehrere "leere" Befehle werden nach der bedingten Verzweigung eingefügt und sorgen dafür, dass im Pipeline-Mechanismus keine Lücke auftritt und die Befehle in der Pipeline weiter vorrücken können:


x = 5 + 6
y = z + 4
if y > 5:
    NOP()
    print('hello!')
else:
    NOP()
    print('goodbye!')

Zum einen kann jetzt der Befehl x = 5 + 6 vollständig die Pipeline durchlaufen, auch wenn das Ergebnis von z + 4 noch nicht bekannt ist, denn die Pipeline wird durch einen Delay Slot aufgefüllt. Zum anderen ist im darauffolgenden Zyklus das Vergleichsergebnis bekannt und der Prozessor weiß, welche Zeile er in die Pipeline laden muss.

Erinnern wir uns an den obigen Satz: "Ich stimme dem Maler, der die Meinung, dass Rot keine Farbe ist, vertritt, zu". Selbst ein Muttersprachler versteht den Satz erst, wenn er die Verben am Ende liest. Bis dahin wird auch sein Gehirn blockieren und den Sinn des Satzes nicht erfassen. Ziehen wir die Verben hingegen nach vorn, ist er flüssig verständlich: "Ich stimme dem Maler zu, der die Meinung vertritt, dass Rot keine Farbe ist." Das zeitige Auftreten des Verbs hilft dem Gehirn, sich auf die nachfolgenden Satzteile einzustellen, ganz gleich wie lang sie sind. Sie übernehmen eine ähnliche Funktion wie die Delay Slots.

Der Text ist eine Übersetzung eines Beitrags auf Stipicevics Blog.

 Eine eigene semantische Welt: Präpositionen
  1.  
  2. 1
  3. 2
  4. 3
  5. 4


Anzeige
Top-Angebote
  1. (u. a. GRAND THEFT AUTO V: PREMIUM ONLINE EDITION 13,99€, Shadows: Awakening 12,50€)
  2. (aktuell u. a. Monitore, Mäuse, CPUs)
  3. mit Gutschein: NBBCORSAIRPSP19
  4. (heute u. a. Saugroboter)

Peter Brülls 15. Mai 2019 / Themenstart

Nein, herunterladen ist der Standard, hochladen die Ausnahme. Schlechtes Beispiel, da...

gfa-g 12. Mai 2019 / Themenstart

Nicht in den meisten, nur in romanischen Sprachen!

Toleg 10. Mai 2019 / Themenstart

Es gibt shon Regel, von denen es wiederrum Ausnahmen gibt :) Beispiel: https://pp.userapi...

minnime 09. Mai 2019 / Themenstart

Oh ja, mein Lieblingsbuch, kann jedem, naja, nicht jedem, nur wärmstens ans Herz legen.

schily 09. Mai 2019 / Themenstart

und daher zu Mißverständnissen führen kann. Das ist, in Anbetracht der lustigen...

Kommentieren


Folgen Sie uns
       


Timex Data Link ausprobiert

Die Data Link wurde von Timex und Microsoft entwickelt und ist eine der ersten Smartwatches. Anlässlich des 25-jährigen Jubiläums haben wir uns die Uhr genauer angeschaut - und über einen alten PC mit Röhrenmonitor programmiert.

Timex Data Link ausprobiert Video aufrufen
Minecraft Dungeons angespielt: Fehlt nur noch ein Klötzchen-Diablo in der Tiefe
Minecraft Dungeons angespielt
Fehlt nur noch ein Klötzchen-Diablo in der Tiefe

E3 2019 Von der Steuerung bis zu den Schatzkisten: Minecraft Dungeons hat uns beim Anspielen bis auf die Klötzchengrafik verblüffend stark an Diablo erinnert - und könnte gerade deshalb teuflisch spaßig werden!

  1. Augmented Reality Minecraft Earth erlaubt Klötzchenbauen in aller Welt
  2. Microsoft Augmented-Reality-Minecraft kommt zum zehnten Jubiläum
  3. Jubiläum ohne Notch Microsoft feiert Minecraft ohne Markus Persson

Ocean Discovery X Prize: Autonome Fraunhofer-Roboter erforschen die Tiefsee
Ocean Discovery X Prize
Autonome Fraunhofer-Roboter erforschen die Tiefsee

Öffentliche Vergaberichtlinien und agile Arbeitsweise: Die Teilnahme am Ocean Discovery X Prize war nicht einfach für die Forscher des Fraunhofer Instituts IOSB. Deren autonome Tauchroboter zur Tiefseekartierung schafften es unter die besten fünf weltweit.
Ein Bericht von Werner Pluta

  1. JAB Code Bunter Barcode gegen Fälschungen

Ada und Spark: Mehr Sicherheit durch bessere Programmiersprachen
Ada und Spark
Mehr Sicherheit durch bessere Programmiersprachen

Viele Sicherheitslücken in Software sind auf Programmierfehler zurückzuführen. Diese Fehler lassen sich aber vermeiden - und zwar unter anderem durch die Wahl einer guten Programmiersprache. Ada und Spark gehören dazu, leider sind sie immer noch wenig bekannt.
Von Johannes Kanig

  1. Das andere How-to Deutsch lernen für Programmierer
  2. Programmiersprachen, Pakete, IDEs So steigen Entwickler in Machine Learning ein
  3. Software-Entwickler Welche Programmiersprache soll ich lernen?

    •  /