Rechnerarchitektur lernen: Gleitkomma, Assembler, Caches und Pipelining in festen Rechenschritten — plus Vier-Wochen-Routine bis zur Klausur.

"Durchgefallen wird selten am Verständnis — verloren gehen die Punkte bei den immer gleichen Rechenaufgaben."
Rechnerarchitektur fühlt sich an wie drei Module in einem: erst Zahlendarstellung, dann Assembler, am Ende Caches und Pipelining. Durchgefallen wird selten am Verständnis — verloren gehen die Punkte bei den immer gleichen Rechenaufgaben, die unter Zeitdruck schiefgehen: eine Gleitkommazahl codieren, eine Zugriffsfolge im Cache abarbeiten, eine Pipeline-Beschleunigung ausrechnen. Für jede dieser Aufgaben gibt es genau ein Verfahren. Dieser Guide zerlegt das Modul in seine drei Ebenen und gibt dir für jede einen Ablauf, den du ohne Nachdenken starten kannst.
Rechnerarchitektur liegt in Informatik- und Elektrotechnik-Bachelors im Grundstudium und schließt die Lücke zwischen Logik und Software. Im Studienverlaufsplan der Uni Kassel etwa liegt das Modul mit 6 Credits im zweiten Semester — direkt nach „Digitale Logik" und ein Semester vor „Betriebssysteme und Systemprogrammierung". Diese Position erklärt den Stoff: Du setzt auf Gattern und Schaltwerken auf und baust bis zu der Schicht, auf der ein Betriebssystem arbeiten kann.
Der entscheidende Schritt vor der ersten Lerneinheit: Trenne den Stoff in drei Ebenen. Sie verlangen völlig unterschiedliche Lernarten, und wer sie vermischt, lernt die falsche Hälfte.
| Ebene | Typische Klausuraufgabe | Was du dafür üben musst |
|---|---|---|
| Darstellung (Zahlen, Zweierkomplement, Gleitkomma) | „Codieren Sie −12,375 als IEEE-754-Zahl einfacher Genauigkeit" | Rechenschritte bis zur Automatisierung wiederholen |
| Befehlssatz (Assembler, Adressierungsarten) | „Übersetzen Sie die folgende Schleife in RISC-V-Assembler" | Code lesen und übersetzen, Befehlsformate sicher kennen |
| Mikroarchitektur (Caches, Pipelining) | „Bestimmen Sie Hit-Rate und mittlere Zugriffszeit" | Modelle aufstellen und Zahlen einsetzen |
Wenn der Stoff der ersten Ebene noch wackelt, lohnt ein Rückgriff: Zahlensysteme, Zweierkomplement und Gatterlogik kommen aus der Digitaltechnik und ihrer Klausurlogik. Alles, was oberhalb der Hardware passiert — Prozesse, Scheduling, virtueller Speicher —, gehört in die Betriebssysteme-Vorlesung. Diese Abgrenzung spart dir Lernzeit: Du musst nicht alles wissen, was mit Rechnern zu tun hat.
Ganze Zahlen im Zweierkomplement sind Routine: negatives Vorzeichen heißt invertieren und eins addieren, der Überlauf wird daran erkannt, dass sich das Vorzeichen bei gleichartigen Operanden plötzlich ändert. Teuer wird die Gleitkomma-Aufgabe, weil dort fünf Schritte in der richtigen Reihenfolge nötig sind.
Die Formate stehen in IEEE 754, dem Standard für Gleitkomma-Arithmetik: einfache Genauigkeit hat 1 Vorzeichenbit, 8 Exponentenbits und 23 Mantissenbits mit Bias 127, doppelte Genauigkeit 1, 11 und 52 Bits mit Bias 1023. Mehr musst du für die Klausur nicht auswendig wissen.
Zwei Fallen tauchen in Klausuren fast immer auf. Erstens die Sonderwerte: Exponent komplett null bedeutet Null oder eine denormalisierte Zahl, Exponent komplett eins bedeutet Unendlich oder NaN. Zweitens die Rundung — 0,1 lässt sich im Binärsystem nicht exakt darstellen, was in Multiple-Choice-Teilen regelmäßig als „Warum ist 0,1 + 0,2 ≠ 0,3?" abgefragt wird. Rechne beide Fälle einmal selbst durch, dann sitzt die Begründung.
Die meisten Vorlesungen unterrichten inzwischen RISC-V, dessen Spezifikationen von RISC-V International frei veröffentlicht werden. Für die Klausur zählt die Basis RV32I: 32 Register, wobei x0 fest auf null liegt, und eine kleine Zahl von Befehlsformaten (R, I, S, B, U, J), die sich nur darin unterscheiden, wie die Bits auf Register und Direktwerte verteilt sind.
Lernziel ist nicht, Assembler zu schreiben, sondern ihn zu lesen. Vier Adressierungsarten decken fast alles ab:
add x5, x6, x7).addi x5, x6, 12).lw x5, 8(x6)).Die wirksamste Übung ist die Rückübersetzung: Nimm zehn Zeilen Assembler aus einem Übungsblatt und schreibe daneben, was in C oder Java passieren würde. Eine Schleife erkennst du am Vergleich plus Rückwärtssprung, ein Array-Zugriff an der Multiplikation des Index mit der Elementgröße vor dem lw. Wer das zwanzig Mal gemacht hat, braucht in der Klausur keine Befehlsliste mehr. Für die Befehls- und Bitfeldübersichten, die du trotzdem griffbereit haben willst, hilft das Vorgehen aus unserem Guide zum Erstellen einer eigenen Formelsammlung.
Üben lässt sich das ohne Hardware: Der Open-Source-Simulator Ripes zeigt Assemblercode, Pipelinestufen und Cache-Verhalten gleichzeitig an und läuft auch im Browser. Ein einziger Nachmittag damit ersetzt viele Seiten Skript, weil du siehst, was ein Befehl in welcher Stufe tatsächlich auslöst.
Caches existieren, weil Prozessoren schneller rechnen als der Hauptspeicher liefern kann, und sie funktionieren, weil Programme zwei Arten von Lokalität zeigen: zeitliche (was gerade gebraucht wurde, wird bald wieder gebraucht) und räumliche (Nachbaradressen folgen gleich danach). Das ist die Begründung, die in Verständnisfragen abgefragt wird.
Die Rechenaufgabe dazu läuft immer gleich ab. Zerlege die Adresse, dann arbeite die Zugriffsfolge tabellarisch ab:
Die Organisationsformen unterscheiden sich nur in der Assoziativität: direkt abgebildet (ein Platz pro Block), n-fach satzassoziativ (n Plätze pro Satz) und vollassoziativ (jeder Block überall). Mehr Assoziativität senkt Konflikt-Fehlzugriffe, kostet aber Vergleichslogik — genau diese Abwägung ist die typische Diskussionsfrage.
Für die Leistungsrechnung brauchst du eine Formel: mittlere Zugriffszeit = Trefferzeit + Fehlzugriffsrate × Fehlzugriffsstrafe. Bei 1 Takt Trefferzeit, 5 % Fehlzugriffen und 100 Takten Strafe ergibt das 1 + 0,05 × 100 = 6 Takte. Daran siehst du sofort, warum eine Fehlzugriffsrate von wenigen Prozent die Leistung dominiert — und warum Aufgaben so gern nach dem Effekt einer halbierten Fehlzugriffsrate fragen.
Die klassische fünfstufige Pipeline teilt jeden Befehl in Holen, Decodieren, Ausführen, Speicherzugriff und Zurückschreiben. Pro Takt wird ein neuer Befehl gestartet, fertig wird nach der Einschwingphase ebenfalls einer pro Takt. Für n Befehle und k Stufen brauchst du im Idealfall k + (n − 1) Takte: 1.000 Befehle in einer Fünfstufen-Pipeline also 1.004 statt 5.000 Takte, knapp ein Faktor 5.
Diesen Idealfall zerstören drei Arten von Hazards, und Klausuren verlangen, sie in einem gegebenen Codestück zu finden:
| Hazard | Woran du es erkennst | Gegenmaßnahme |
|---|---|---|
| Struktur | Zwei Befehle brauchen dieselbe Einheit im selben Takt | Einheit doppelt auslegen oder einen Takt anhalten |
| Daten (RAW) | Ein Befehl liest ein Register, das der vorige noch nicht zurückgeschrieben hat | Forwarding; beim Laden-Benutzen-Fall bleibt ein Wartetakt |
| Steuerung | Verzweigung, deren Ziel noch nicht bekannt ist | Sprungvorhersage, Verwerfen falsch geholter Befehle |
Die zweite Hälfte der Aufgabe ist Arithmetik: Wartetakte zur Taktzahl addieren und die Beschleunigung gegenüber der Ausführung ohne Pipeline bestimmen. Hier lohnt der Blick auf die Grenze, die Gene Amdahl 1967 formuliert hat: Beschleunigt wird immer nur ein Anteil des Programms, und der unbeschleunigte Rest begrenzt den Gesamtgewinn. Wenn 20 % des Codes nicht profitieren, bleibt der Gesamtfaktor unter 5 — egal, wie tief die Pipeline wird. Diese Begründung in zwei Sätzen sauber hinschreiben zu können, bringt in Verständnisteilen zuverlässig Punkte.
Rechnerarchitektur belohnt Wiederholung mehr als Lesen. Eine Routine, die sich bewährt hat:
Für die Begriffsschicht — Hazard-Typen, Fehlzugriffsklassen, Adressierungsarten, Befehlsformate — sind Karteikarten das richtige Werkzeug, weil es um abrufbares Vokabular geht. Wer sein Skript und die Übungsblätter als Datei vorliegen hat, kann sich die Karten in Learnboost automatisch daraus erzeugen lassen und den Stoff zusätzlich als Probeklausur abfragen; die Rechenwege übt man trotzdem von Hand, weil in der Klausur der Weg bewertet wird.
Plane die vier Wochen schriftlich, sonst verschiebt sich das Rechnen immer nach hinten. Wenn du nicht bei null anfangen willst: Der Lernplan-Generator von Learnboost verteilt deine Modulinhalte auf die verbleibenden Wochen bis zum Prüfungstermin — und du siehst sofort, ob für alle drei Ebenen noch genug Zeit übrig ist.
Der Stoff ist nicht komplizierter als in anderen Grundlagenmodulen, aber er ist breit: Zahlendarstellung, Assembler und Mikroarchitektur verlangen drei verschiedene Lernarten. Schwierig wird es, wenn du alles lesend lernst — die Klausur fragt überwiegend Rechenwege ab. Wer die drei Ebenen getrennt übt, bekommt das Modul gut in den Griff.
Sehr wenig, aber das sicher: die IEEE-754-Formate mit ihren Bitbreiten und Bias-Werten, die fünf Pipelinestufen, die drei Hazard-Typen und die Formel für die mittlere Zugriffszeit. Alles andere leitest du daraus ab. Prüfe vorher, ob in deiner Klausur eine Befehlsübersicht beiliegt — das verschiebt die Lernlast deutlich.
Das hängt von deiner Vorlesung ab; viele Hochschulen sind auf RISC-V umgestiegen, weil die Spezifikation frei verfügbar ist. Die Konzepte sind übertragbar: Register, Direktwerte, Basis-plus-Offset und PC-relative Sprünge gibt es in jeder dieser Architekturen. Lerne am Befehlssatz deiner Vorlesung und übertrage die Muster, statt zwei Dialekte parallel zu üben.
Immer in derselben Reihenfolge: Offset-Bits aus der Blockgröße, Index-Bits aus der Anzahl der Sätze, Rest als Tag. Danach die Zugriffsfolge tabellarisch abarbeiten und jeden Zugriff als Treffer oder Fehlzugriff markieren. Die häufigsten Punktverluste entstehen nicht beim Rechnen, sondern beim falschen Aufteilen der Adresse.
Vier Wochen mit täglich 45 bis 60 Minuten reichen bei mitlaufender Vorlesung aus, wenn du pro Woche ein Thema abschließt und in der letzten Woche Altklausuren schreibst. Entscheidend ist die Verteilung: Rechenaufgaben brauchen viele kurze Wiederholungen statt eines langen Blocks am Wochenende.