Skip to content

Computerarchitektur

Vorwort

Wie wird aus dem CPU ein vollständiges Computersystem? Im vorherigen Kapitel haben wir vom Transistor ausgehend Addierer, Register, Rechenwerke konstruiert und schließlich den CPU-Kern zusammengesetzt. Doch der CPU allein reicht nicht — er muss mit Speicher und I/O-Geräten zusammenarbeiten, Bussysteme verbinden die Komponenten und ein Befehlssystem steuert alles an. In diesem Kapitel wechseln wir von der CPU-internen Perspektive zur Systemsicht und vertiefen unser Verständnis der Von-Neumann-Architektur, des Befehlssystems, der Speicherhierarchie sowie von Bus und I/O.

Was werden Sie in diesem Artikel lernen?

Nach Abschluss dieses Kapitels werden Sie Folgendes gewonnen haben:

  • Systemperspektive: Verstehen, wie CPU, Speicher und I/O zusammenarbeiten — kein isolierter Hardware-Enthusiast mehr
  • Hardware-Fachbegriffe: Befehlszyklus, Pipeline, CPI, Cache-Trefferquote und weitere harte Konzepte beherrschen
  • Performance-Denken: Engpässe und Optimierungsmaßnahmen in der Computerarchitektur verstehen
  • Grundlage für Weiteres: Professionelle Basis für Betriebssysteme, Rechnerarchitektur und Embedded-Entwicklung
KapitelInhaltKernkonzepte
Kapitel 1Von-Neumann-ArchitekturSpeicherprogrammkonzept, fünf Hauptkomponenten, Datenpfad
Kapitel 2BefehlssystemBefehlsformat, Adressierungsarten, CISC vs. RISC
Kapitel 3CPU-SteuereinheitSteuerwerk, Mikrooperationen, Befehlszyklus
Kapitel 4SpeicherhierarchieCache, Hauptspeicher, Virtueller Speicher, Paging
Kapitel 5Bus und I/OBus-Arbitrierung, DMA, Interrupt-Mechanismus

0. Übersicht: Das Computer-Hardwaresystem

Im vorherigen Kapitel „Vom Transistor zum CPU" haben wir verstanden, wie der CPU intern arbeitet — vom Holen, Dekodieren, Ausführen bis zum Zurückschreiben. Aber der CPU selbst ist nur eine Ausführungseinheit. Damit der Computer wirklich „nutzbar" wird, braucht es die Zusammenarbeit mehrerer Peripheriekomponenten.

Detailed CPU Instruction Cycle Demo
CPU
Control Unit CU
PC256Program Counter
IRInstruction Register
MARMemory Address Register
MDRMemory Data Register
Arithmetic Logic Unit ALU
ACC0Accumulator
General Register File
R00
R10
R20
R30
Address Bus
Data Bus
Control Bus
Main Memory
0x100LOAD R0, [0x200]
 0x101LOAD R1, #7
 0x102ADD R0, R1
 0x103STORE [0x201], R0
Data Area
 0x51242
 0x5130
FetchFetch
DecodeDecode
ExecuteExecute
Write BackWrite Back
Step 0 / 32
Click "Clock Pulse" to step through execution, or "Auto Run" to play continuously.

Schichtweiser Aufbau: Das Computer-Hardwaresystem

  • Schicht 1: CPU-Kern Verantwortlich für die Befehlsausführung, bestehend aus der Steuereinheit (Steuerungssignale) und dem Rechenwerk (arithmetisch-logische Operationen)

  • Schicht 2: Registersatz Hochgeschwindigkeitsspeicher innerhalb des CPU, einschließlich Universalregister und Sonderregister (PC, IR, MAR, MDR usw.)

  • Schicht 3: Hauptspeicher Speicher für Programme und Daten, den der CPU über Adressbus und Datenbus anspricht

  • Schicht 4: I/O-Geräte Ein-/Ausgabegeräte, die über I/O-Controller mit dem Systembus verbunden sind

  • Schicht 5: Systembus Datenpfad, der CPU, Speicher und I/O verbindet, einschließlich Adressbus, Datenbus und Steuerbus


1. Von-Neumann-Architektur: Die „Verfassung" des modernen Computers

1.1 Das Speicherprogrammkonzept

1945 schlug der Mathematiker John von Neumann die bahnbrechende Speicherprogramm-(Stored-program)-Architektur vor. Dieses Konzept legte den Grundstein für alle modernen Computer.

Kernkonzept

Speicherprogramm: Das Programm selbst wird als besondere Art von Daten genauso wie normale Daten im Speicher abgelegt. Der CPU kann die im Speicher befindlichen Programmbefehle genauso lesen und ausführen, wie er Daten liest und schreibt.

Das bedeutet:

  • Frühe Computer: Programme waren durch feste Verdrahtung realisiert; Programmänderungen erforderten neues Löten der Schaltungen
  • Von-Neumann-Architektur: Programme sind im Speicher abgelegt; zur Programmänderung genügt die Änderung des Speicherinhalts

1.2 Die fünf Hauptkomponenten

Die Von-Neumann-Architektur gliedert den Computer in fünf Kernkomponenten:

CPU Register FileHigh-speed storage inside the CPU
Special Registers
PC
0x00401000
Program counter
IR
0x8B450008
Instruction register
MAR
0x00401000
Memory address register
MDR
0x00000000
Memory data register
ACC
0x0000001A
Accumulator
General Purpose Registers
RAX
0x00000000
Return value
RBX
0x00000000
Base register
RCX
0x00000000
Counter register
RDX
0x00000000
Data register
RSI
0x00000000
Source index
RDI
0x00000000
Destination index
RBP
0x00000000
Base pointer
RSP
0x7FFDE000
Stack pointer
Program Status Word (PSW / FLAGS)
CF0Carry flag
PF0Parity flag
AF0Auxiliary carry
ZF0Zero flag
SF0Sign flag
OF0Overflow flag
Registers vs Memory
FeatureRegisterMemory (RAM)
LocationInside the CPUOutside the CPU
Access speedFastest (< 1ns)Slower (50-100ns)
CapacityTiny (bytes)Large (GB)
RoleHold instructions, operands, and resultsStore programs and data
KomponenteEnglischFunktionHauptbestandteile
RechenwerkALU (Arithmetic Logic Unit)Ausführung arithmetischer und logischer OperationenAddierer, Schieberegister, Vergleicher
SteuerwerkCU (Control Unit)Koordiniert alle KomponentenBefehlsregister, Dekoder, Taktgenerator
SpeicherwerkMemorySpeichert Programme und DatenSpeicheradressregister (MAR), Speicherdatenregister (MDR)
EingabewerkInputInformationseingabeTastatur, Maus, Scanner
AusgabewerkOutputInformationsausgabeBildschirm, Drucker

1.3 Datenpfad

Der Datenpfad (Data Path) ist die Route, auf der Daten zwischen den einzelnen Funktionseinheiten fließen. Innerhalb des CPU verbindet der Datenpfad:

  • Registersatz
  • Arithmetisch-logische Einheit (ALU)
  • Speicherdatenregister (MDR)

Die Breite des Datenpfads (wie viele Bits auf einmal übertragen werden können) beeinflusst direkt die Leistung des Computers.

1.4 Der Von-Neumann-Flaschenhals

Die Von-Neumann-Architektur hat einen berühmten Leistungsengpass:

Die Datenübertragungsrate zwischen CPU und Speicher ist deutlich langsamer als die Verarbeitungsgeschwindigkeit des CPU.

Dadurch befindet sich der CPU oft im Leerlauf und „wartet auf Daten". Viele Optimierungstechniken moderner Computer drehen sich um dieses Problem:

OptimierungstechnikPrinzip
CacheKleiner, schneller Speicher in CPU-Nähe
Befehls-PipelineMehrere Befehle befinden sich gleichzeitig in verschiedenen Stufen
SuperskalarMehrere Befehle pro Taktzyklus ausgeben
MehrCore-ParallelitätMehrere CPU-Kerne teilen sich die Rechenaufgaben

2. Befehlssystem: Die Schnittstelle zwischen CPU und Software

Im vorherigen Abschnitt haben wir das Kernkonzept der Von-Neumann-Architektur kennengelernt: Programme und Daten werden gleichermaßen im Speicher abgelegt. Das wirft eine Schlüsselfrage auf — wie sieht das im Speicher abgelegte „Programm" eigentlich aus? Wie kann der CPU es verstehen?

Die Antwort ist das Befehlssystem (Instruction Set Architecture, ISA). Vergleicht man den CPU mit einem Dienst, dann ist das Befehlssystem seine API-Dokumentation — es definiert alle Befehle, die der CPU versteht, das Format jedes Befehls und den Datenbereich, den die Befehle ansprechen können. Jede Codezeile, die Sie schreiben, wird vom Compiler in eine Aufrufsequenz dieser „API" übersetzt.

2.1 Vom Code zum Befehl: Die Übersetzungsreise einer Codezeile

Lassen Sie uns zunächst ein Gesamtbild gewinnen: Der Code, den Sie in Ihrem Editor schreiben, und das, was der CPU tatsächlich ausführt, sind durch mehrere Übersetzungsschichten getrennt.

🔗 From Code to Instructions: One Line Through the Translation Pipeline

Click each stage to see how source code becomes CPU-executable instructions

1Source code
int a = 10 + 5;
This is high-level code written in an editor. It is easy for humans to read, but the CPU does not understand int or the + operator directly.
2Compiler emits assembly
MOV  R1, #10    ; put 10 into register R1
MOV  R2, #5     ; put 5 into register R2
ADD  R3, R1, R2 ; R3 = R1 + R2
STORE R3, [a]   ; store the result at variable a
3Assembler emits machine code
0001 0001 0000 1010  → MOV R1, #10
0001 0010 0000 0101  → MOV R2, #5
0010 0011 0001 0010  → ADD R3, R1, R2
0100 0011 1000 0000  → STORE R3, [a]
4CPU executes instructions
Clock 1: fetch → decode → execute MOV R1, #10
Clock 2: fetch → decode → execute MOV R2, #5
Clock 3: fetch → decode → execute ADD R3, R1, R2
Clock 4: fetch → decode → execute STORE R3, [a]
💡 Key idea
An instruction set is the CPU API: it defines every command the CPU understands. A compiler translates your high-level language into calls to that API. Different CPUs, such as x86 and ARM, have different instruction sets, just as different services expose different APIs.

Diese Übersetzungskette ist der Schlüssel zum Verständnis des Befehlssystems:

SchichtInhaltWer es versteht
Hochspracheint a = 10 + 5;Menschen
AssemblerspracheMOV R1, #10 / ADD R3, R1, R2Menschen (mit Training)
Maschinencode0001 0001 0000 1010CPU

Warum diese Kette verstehen?

  • Bei Compilerfehlern wissen Sie, dass der Fehler im Schritt „Hochsprache → Assembler" auftrat
  • Bei Laufzeitabstürzen wissen Sie, dass das Problem in der Befehlsausführung durch den CPU liegt
  • Bei Performance-Optimierung verstehen Sie, welche Optimierungen der Compiler bei der „Übersetzung" vornimmt
  • Bei der Wahl der CPU-Architektur (x86 vs. ARM) wissen Sie, dass der Unterschied im „Befehlssatz-API" liegt

2.2 Wie sieht ein Befehl aus?

Nun wissen wir, dass Code in Befehle übersetzt wird. Die nächste Frage: Wie ist ein Befehl intern strukturiert?

Jeder Maschinenbefehl ist im Kern eine Binärzahl, hat aber ein strenges internes Format. Die zwei wichtigsten Teile:

  • Operationscode (Opcode): Teilt dem CPU mit, „was zu tun ist" — Addieren? Springen? Speicher lesen?
  • Operanden: Teilen dem CPU mit, „mit wem" — welches Register? Welche Speicheradresse? Welche Konstante?

Wie ein Satz eine „Verb + Objekt"-Struktur hat, hat ein Befehl eine „Operation + Ziel"-Struktur:

Befehl:  ADD  R3, R1, R2
         ───  ──────────
         Opcode  Operanden
         (Addition) (R3 = R1 + R2)

Je nach Anzahl der Operanden werden Befehlsformate in vier Arten unterteilt:

Machine Instruction FormatOpcode + operands = machine instruction
Opcode8 bits
Destination8 bits
Source 18 bits
Source 28 bits
Example instruction
01101100 00000001 00000010 00000011
Result goes to a new destination without changing sources
Three-address format
Three addresses identify the destination and two source operands separately. The result goes into the destination without modifying the sources.
Common examples
ADD R1, R2, R3R1 = R2 + R3
SUB R1, R2, R3R1 = R2 - R3
MUL R1, R2, R3R1 = R2 × R3
Common opcodes
00000000NOPNo operation
00000001MOVMove data
00000010ADDAddition
00000011SUBSubtraction
00000100MULMultiplication
00000101DIVDivision
00000110ANDLogical AND
00000111ORLogical OR
00001000NOTLogical NOT
00001001XORExclusive OR
00001010SHLShift left
00001011SHRShift right
00001100JMPUnconditional jump
00001101JEJump if equal
00001110JNEJump if not equal
00001111CALLCall subroutine
00010000RETReturn
00010001PUSHPush stack
00010010POPPop stack
00010011LOADLoad from memory
00010100STOREStore to memory
FormatStrukturBeispielVerwendung
Null-AdresseNur OpcodeRET (Rücksprung)Stapelrechner, Operanden implizit auf dem Stack
Ein-AdresseOpcode + 1 AdresseINC R1 (R1 um 1 erhöhen)Ein-Operanden-Operationen
Zwei-AdressenOpcode + 2 AdressenMOV R1, R2Am häufigsten, Datentransfer und Operationen
Drei-AdressenOpcode + 3 AdressenADD R3, R1, R2Quelloperanden bleiben erhalten

Warum gibt es so viele Formate?

Es handelt sich um einen Kompromiss zwischen Platz und Flexibilität. Null-Adressen-Befehle sind am kürzesten (Speicherersparnis), erfordern aber zusätzliche Stack-Operationen; Drei-Adressen-Befehle sind am flexibelsten (Quelldaten bleiben erhalten), belegen aber mehr Bits. Verschiedene CPU-Architekturen wählen unterschiedliche Kombinationen von Befehlsformaten.

2.3 Wie findet der CPU Daten? — Adressierungsarten

Der Befehl teilt dem CPU mit, „addiere", aber wo sind die beiden Summanden? Sie können direkt im Befehl stehen, in einem Register oder an einer Speicheradresse. Adressierungsarten sind die Regeln, die dem CPU sagen, „wo die Operanden zu finden sind".

Alltagsanalogie „Jemanden finden":

AdressierungsartAnalogieBefehlsbeispielErklärung
Sofortige AdressierungDie Person steht direkt vor IhnenMOV R1, #100Daten stehen direkt im Befehl, am schnellsten
Register-AdressierungKollegen über interne Durchwahl anrufenMOV R1, R2Daten im CPU-internen Register, sehr schnell
Direkte AdressierungHausnummer kennen und direkt hingehenMOV R1, [0x1000]Speicheradresse im Befehl angegeben
Indirekte AdressierungAn der Rezeption fragen „In welchem Zimmer ist Max?"MOV R1, [R2]Register enthält Adresse, zusätzliche Abfrage nötig
Indizierte Adressierung„Gebäude 3 + 5. Stock" ergibt das ZimmerMOV R1, [R2+10]Basisadresse + Offset, für Array-Zugriff
Addressing ModesHow an instruction finds operand locations
Immediate addressingImmediate Addressing
Definition
The operand is embedded directly in the instruction and is immediately available.
Instruction format
MOV R1, #100
Example
MOV R1, #100 ; R1 = 100
Immediate value 100 is stored directly in the instruction, so no register or memory lookup is needed.
Execution process
1CPU reads immediate value 100 directly from the instruction
2Write the immediate value into target register R1
3Execution completes without extra memory access
Characteristics
SpeedFast
FlexibilityLow
Addressing mode comparison
Addressing modeFormatSpeedUse case
Immediate addressingMOV R1, #100FastestConstant assignment and initialization
Register addressingMOV R1, R2FastestRegister-to-register data transfer
Direct addressingMOV R1, [100]Relatively fastAccessing global variables
Indirect addressingMOV R1, [R2]Relatively fastPointers and array traversal
Indexed addressingMOV R1, [R2 + R3]Relatively fastArray access and loops
Based addressingMOV R1, [R2 + 100]Relatively fastStruct fields and function parameters
Relative addressingJMP LABELFastestLoops and conditional branches

Warum so viele Adressierungsarten?

Verschiedene Szenarien erfordern verschiedene „Daten-Finden"-Strategien:

  • Konstantenzuweisung (x = 100) → sofortige Adressierung, Daten sind im Befehl
  • Variablenoperation (a + b) → Register-Adressierung, Daten bereits ins Register geladen
  • Array-Zugriff (arr[i]) → indizierte Adressierung, Basisadresse + Index-Offset
  • Zeigeroperation (*ptr) → indirekte Adressierung, Register enthält Adresse

Wenn Sie arr[i] schreiben, denken Sie nicht an Adressierungsarten, aber der Compiler wählt automatisch die passendste Methode.

2.4 Die Fähigkeitenliste des CPU — Befehlsklassifikation

Nachdem wir Befehlsformate und Adressierungsarten kennen, die letzte Frage: Was genau kann der CPU tun?

Alle Befehle lassen sich in sechs Hauptkategorien einteilen, die alles abdecken, was ein Computer tun kann:

TypWas er tutRepräsentative BefehleEntspricht Ihrem Code
DatentransferDaten bewegenMOV, LOAD, STORElet x = y, Funktionsparameter
Arithmetische OperationenGrundrechenartenADD, SUB, MUL, DIVa + b, count++
Logische OperationenBit-ManipulationAND, OR, NOT, XORflags & 0xFF, Berechtigungsprüfung
SchiebeoperationenLinks/rechts schiebenSHL, SHRx << 2 (entspricht Multiplikation mit 4)
SteuerungsübertragungSprung und AufrufJMP, CALL, RETif, for, Funktionsaufruf
Ein-/AusgabeKommunikation mit PeripherieIN, OUTTastatur lesen, Bildschirm schreiben

Eine wesentliche Erkenntnis

Jeglicher Code, den Sie schreiben — egal wie komplexe Geschäftslogik, wie spektakuläre UI-Animationen — wird letztlich in Kombinationen dieser sechs Grundoperationen zerlegt. Die „Intelligenz" des CPU liegt nicht darin, Komplexes zu tun, sondern diese einfachen Operationen mit Milliarden von Ausführungen pro Sekunde zu wiederholen.

2.5 Zwei Designphilosophien: CISC vs. RISC

Beim Entwurf von Befehlssystemen gibt es eine grundlegende Richtungsentscheidung: Jeden Befehl so mächtig wie möglich machen oder so einfach wie möglich?

Diese Entscheidung hat zwei Lager hervorgebracht, die jedes Gerät beeinflussen, das Sie heute verwenden:

⚔️ Two Design Philosophies: CISC vs RISC

Click a comparison dimension to see the core differences between instruction set styles

Thousands of complex instructions
Instruction count
Tens to hundreds of streamlined instructions
One instruction can do many things
Single instruction
One instruction does one thing
Variable length (1-15 bytes)
Instruction length
Fixed length, often 4 bytes
Complex instructions take multiple cycles
Execution speed
Most instructions complete in one cycle
Higher
Power use
Lower
Harder to optimize because lengths vary
Pipeline
Easier to optimize because instructions are regular
Lighter because hardware does more
Compiler burden
Heavier because software optimizes more
🌍 Real-world choices
💻 Your computerx86 (CISC)Compatible with decades of software
📱 Your phoneARM (RISC)Low power consumption and longer battery life
🍎 Apple SiliconARM (RISC)High performance per watt reshaped laptops
🔬 RISC-V boardRISC-V (RISC)Open and royalty-free for IoT and education

Eine Analogie zum Verständnis:

  • CISC wie ein Schweizer Taschenmesser: Ein Messer mit Schere, Flaschenöffner, Schraubenzieher... viele Funktionen, aber nicht jede ist optimal
  • RISC wie ein professionelles Werkzeugset: Jedes Werkzeug macht nur eine Sache, aber dafür schnell und gut

Warum verwendet Ihr Smartphone ARM und Ihr PC x86?

  • x86 (CISC) dominiert den PC- und Servermarkt seit 40 Jahren mit einem riesigen Software-Ökosystem. Architekturwechsel bedeutet Neukompilierung aller Software
  • ARM (RISC) dominiert mit seinem niedrigen Stromverbrauch die Mobilgeräte. Handy-Akkus sind klein, jedes Milliwatt zählt
  • Apple Silicon hat bewiesen, dass RISC auch Höchstleistung kann — die M-Serie übertrifft x86-Konkurrenten gleichzeitig bei Leistung und Stromverbrauch
  • RISC-V ist eine Open-Source-RISC-Architektur, die in IoT, Bildung und AI-Chips rasant wächst

Zusammenfassung: Das Befehlssystem ist die Brücke zwischen Software und Hardware. Ihr Code wird vom Compiler in Befehle übersetzt, Befehle teilen dem CPU über Opcode und Operanden mit, was zu tun ist und mit wem, und die Adressierungsart bestimmt, woher die Daten kommen. Unterschiedliche Befehlssatz-Designs (CISC/RISC) bestimmen die Leistungsmerkmale und Anwendungsszenarien des CPU.

Nun kennen wir die „statische Struktur" der Befehle — wie sie aussehen und welche Typen es gibt. Die nächste Frage: Wie führt der CPU diese Befehle Schritt für Schritt intern aus? Das ist die Aufgabe der Steuereinheit.


3. Steuereinheit: Das „Kommandozentrum" des CPU

3.1 Aufbau der Steuereinheit

Die Steuereinheit ist das „Gehirn" des CPU und koordiniert alle Komponenten gemäß den Befehlsanforderungen:

How the Controller WorksHow control signals coordinate CPU components
Control Unit CU
Instruction Register IR
Instruction Decoder
Timing Generator
Output control signals:
PC→MAR
MEM→MDR
MDR→IR
IR→ID
ALU→ACC
ACC→MDR
PC
Program Counter
MAR
Address Register
Memory
Main Memory
MDR
Data Register
IR
Instruction Register
ID
Decoder
ALU
Arithmetic Logic Unit
ACC
Accumulator
Current microinstruction
Core controller concepts
Control signals:Electrical signals emitted by the controller to control each component on the data path.
Timing:CPU operations advance by clock ticks; each tick performs specific micro-operations.
Hardwired vs microprogrammed:Hardwired controllers are fast but complex; microprogrammed controllers are flexible but slightly slower.
KomponenteFunktion
Programmzähler (PC)Speichert die Adresse des nächsten Befehls
Befehlsregister (IR)Speichert den aktuell ausgeführten Befehl
BefehlsdecoderAnalysiert Opcode und Operanden des Befehls
TaktgeneratorErzeugt Taktsignale zur Steuerung des Timings aller Komponenten
Mikrooperations-SequenzgeneratorErzeugt die zur Befehlsausführung erforderliche Reihe von Steuersignalen
Program Status Word (PSW)The CPU status indicators
CF
0
Carry flag
PF
0
Parity flag
AF
0
Auxiliary carry
ZF
0
Zero flag
SF
0
Sign flag
TF
0
Trap flag
IF
1
Interrupt flag
DF
0
Direction flag
OF
0
Overflow flag
How operation results affect flags
Result:
0
CF:0PF:0AF:0ZF:0SF:0TF:0IF:1DF:0OF:0
Typical flag uses
🔀
Conditional jumps
JE, JNE, JG, JL and similar instructions decide jumps based on ZF, SF, and OF.
Arithmetic
Multi-word arithmetic uses CF for carry and OF for signed overflow.
🔄
Loop control
Loop instructions often use ZF to detect the loop ending condition.

3.2 Befehlszyklus

Der CPU durchläuft zur Ausführung eines Befehls einen vollständigen Befehlszyklus, der in der Regel umfasst:

  1. Holzyklus (Fetch): Befehl aus dem Speicher in das IR laden
  2. Dekodierzyklus (Decode): Bedeutung des Befehls analysieren
  3. Ausführungszyklus (Execute): Operation durchführen
  4. Speicherzugriffszyklus (Memory Access): Bei Speicherbedarf auf Speicher zugreifen
  5. Rückschreibzyklus (Write Back): Ergebnis in Register oder Speicher zurückschreiben

3.3 Mikrooperationen

Mikrooperationen sind die grundlegendsten, durch Steuersignale angetriebenen Operationen. Beispielsweise kann die „Hol"-Phase in folgende Mikrooperationen zerlegt werden:

TaktMikrooperationSteuersignale
T1PC → MARPCout, MARin
T2MEM → MDRMEMout, MDRin
T3MDR → IRMDRout, IRin
T4PC + 1 → PCPC+1, PCin

3.4 Hardwired vs. Mikroprogrammierte Steuereinheit

EigenschaftHardwired-SteuerungMikroprogrammierte Steuerung
ImplementierungKombinatorische LogikschaltungMikrobefehlssequenz (Firmware)
GeschwindigkeitSchnellEtwas langsamer
EntwurfsaufwandKomplexEinfacher
FlexibilitätGering (Änderung erfordert Neuentwurf)Hoch (nur Mikroprogramm ändern)
Typische AnwendungRISC-ProzessorenFrühe CISC-Prozessoren

4. Speicherhierarchie: Warum braucht man Cache?

4.1 Speicherhierarchie-Struktur

Die Speichergeräte des Computers bilden eine Pyramidenstruktur:

Storage HierarchyFrom fastest to slowest, smallest to largest
Registers
Fastest
Smallest (KB)
Cache
Very fast
Small (MB)
Memory
Fast
Medium (GB)
Disk
Slow
Large (TB)
Network/Cloud
Slowest
Unlimited
Detailed comparison
Storage levelAccess timeTypical capacityCost
Registers< 1 nsA few KBHighest
L1 cache~1 ns64 KBVery high
L2 cache~3 ns256 KBHigh
L3 cache~10 ns8 MBMedium
Memory~100 ns8-32 GBMedium-low
SSD~100 μs256 GB-2 TBLow
HDD~10 ms1-10 TBLowest
Locality principle
Programs tend to access recently accessed locations (temporal locality) and nearby locations (spatial locality)
By exploiting locality, caches can significantly improve performance.
SchichtSpeichertypZugriffszeitTypische KapazitätPosition
RegisterSRAM<1 nsWenige KBCPU-intern
L1-CacheSRAM~1 ns32-64 KBNahe dem CPU-Kern
L2-CacheSRAM~3-10 ns256 KB-1 MBIm CPU-Chip
L3-CacheSRAM~10-20 ns2-16 MBIm CPU-Chip / geteilt
Hauptspeicher (RAM)DRAM~50-100 ns8-64 GBAuf dem Mainboard
SSDFlash~10-100 μs256 GB-2 TBAuf dem Mainboard
HDDMagnetplatte~5-10 ms1-10 TBIm Gehäuse

Analogie der Geschwindigkeitsunterschiede

Wenn der Zugriff des CPU auf den L1-Cache ein Papier vom Schreibtisch nehmen entspricht:

  • Hauptspeicher-Zugriff → mit dem Aufzug in den Keller fahren und im Laden Papier kaufen
  • SSD-Zugriff → mit dem Auto in eine andere Stadt fahren und Papier kaufen
  • HDD-Zugriff → mit dem Flugzeug in ein anderes Land fliegen und Papier kaufen

Die Geschwindigkeitsunterschiede können ** Millionenfach** sein!

4.2 Cache-Prinzip

Der Cache ist ein schneller Zwischenspeicher zwischen CPU und Hauptspeicher. Sein Kernprinzip beruht auf zwei Lokalitätsprinzipien:

Lokalitätsprinzipien

  • Zeitliche Lokalität: Wenn auf ein Datenwort gerade zugegriffen wurde, wird es wahrscheinlich bald wieder benötigt
  • Räumliche Lokalität: Wenn auf ein Datenwort zugegriffen wurde, werden wahrscheinlich auch benachbarte Daten bald benötigt

Funktionsweise des Cache

  1. Treffer (Hit): Die vom CPU angeforderten Daten sind im Cache — direkt lesen
  2. Fehlzugriff (Miss): Daten nicht im Cache — aus dem Hauptspeicher laden
Trefferquote = Trefferanzahl / Gesamtzugriffe
Durchschnittliche Zugriffszeit = Trefferquote × Cache-Zeit + (1-Trefferquote) × Speicher-Zeit
Cache PrinciplesThe bridge between CPU and memory
CPU core
L1 cache
64 KB~1ns
L2 cache
256 KB~5ns
L3 cache
8 MB~15ns
Main memory
16 GB~100ns
Cache operation demo
Operation log
Why does cache work? Locality principle
⏱️
Temporal locality
Recently accessed data is likely to be accessed again.
Variables inside loops
📦
Spatial locality
After one item is accessed, nearby data is likely to be accessed.
Array traversal and sequential execution
Cache mapping methods
Each memory block maps to exactly one cache line.
SpeedFastest
Hit rateLower
Implementation complexityLowest
Hit-rate calculation
Average access time = H × Tc + (1-H) × Tm
2 ns
100 ns
90%
Average access time = 12 ns

4.3 Cache-Abbildungsverfahren

VerfahrenPrinzipVorteilNachteil
Direkte AbbildungJeder Speicherblock kann nur an eine feste PositionEinfach und schnellHohe Konfliktquote
MengenassoziativJeder Speicherblock kann an N Positionen (N-way)Balance zwischen Geschwindigkeit und TrefferquoteKomplexere Implementierung
VollassoziativBeliebige PositionNiedrigste KonfliktquoteSchwer zu implementieren (alle Tags vergleichen)

4.4 Virtueller Speicher

Virtueller Speicher ist eine wichtige Abstraktion des Betriebssystems:

  • Jeder Prozess glaubt, über einen vollständigen virtuellen Adressraum zu verfügen
  • Das Betriebssystem übersetzt virtuelle in physische Adressen
  • Selten genutzte Seiten können auf die Festplatte ausgelagert werden (Auslagerungsspace)

Analogie für virtuellen Speicher

Stellen Sie sich den virtuellen Speicher als Hotel-Zimmerverwaltung vor:

  • Sie (der Prozess) glauben, das ganze Gebäude gehört Ihnen
  • In Wirklichkeit weist das Hotel (das OS) Ihnen nur die aktuell benötigten Zimmer zu
  • Unbewohnte Zimmer werden ins Lager (Festplatte) „ausgelagert"
  • Benötigte Zimmer können jederzeit „eingelagert" werden

5. Bus und I/O: Die „Blutgefäße" des Computers

5.1 Systembus

Der Bus ist der Datenkanal, der die Computerkomponenten verbindet:

Computer Bus SystemAddress bus, data bus, and control bus
CPU
Control unit
ALU
Address bus32 bits
Data bus64 bits
Control busControl signal
Main memory
0x0
0x1
0x2
0x3
0x4
0x5
0x6
0x7
Operation flow
Bus concepts
Address bus
CPU sends memory addresses over a one-way path.
Data bus
Transfers actual data in both directions.
Control bus
Transfers read/write and other control signals.
Bus-TypFunktionRichtungTypische Breite
AdressbusSpeicheradresse übertragenUnidirektional (CPU→Speicher)32 Bit / 64 Bit
DatenbusDaten übertragenBidirektional32 Bit / 64 Bit
SteuerbusSteuersignale übertragenBidirektionalMehrere Signalleitungen

5.2 Bus-Arbitrierung

Wenn mehrere Geräte gleichzeitig den Bus anfordern, entscheidet ein Arbitrierungsmechanismus, wer zuerst drankommt:

ArbitrierungsverfahrenBeschreibung
Zentrale ArbitrierungEin zentraler Arbiter entscheidet einheitlich
Dezentrale ArbitrierungDie Geräte einigen sich selbst

5.3 I/O-Geräte-Zugriffsmethoden

MethodePrinzipVorteilNachteil
Programmgesteuertes PollingCPU fragt I/O-Status zyklisch abEinfachGeringe CPU-Auslastung
Interrupt-VerfahrenI/O benachrichtigt CPU nach AbschlussCPU kann parallel arbeitenInterrupt-Behandlung kostet Overhead
DMAI/O-Gerät greift direkt auf Speicher zuCPU völlig unbeteiligtDMA-Controller erforderlich
I/O Method ComparisonProgrammed I/O · Interrupt-driven I/O · DMA
Programmed I/OProgrammed I/O
Workflow
1CPU polls the I/O device status
2Device busy? Keep waiting
3Device ready, send read/write command
4CPU reads or writes data byte by byte
5Check whether transfer is complete
6If incomplete, keep polling
CPU involvementHigh
SpeedSlow
ComplexityLow
Three I/O methods compared
FeatureProgrammed I/OInterrupt-driven I/ODMA
CPU involvementInvolved throughoutOnly handles interruptsAlmost uninvolved
Data transferCPU moves each byteCPU moves each wordDevice transfers directly to memory
ProsSimple and flexible controlHigh CPU efficiencyCPU is fully freed
ConsLow CPU utilizationInterrupt overheadComplex hardware
Best forSimple or low-speed devicesLow/medium-speed devicesHigh-speed bulk transfer

5.4 DMA-Prinzip

DMA (Direct Memory Access) ermöglicht I/O-Geräten den direkten Datenaustausch mit dem Speicher:

How Networks ConnectThe complete path from sending to receiving
💻
Sender
192.168.1.100
📧
Mail app
📧
Application layer
Mail software creates the message content
🔐
Transport layer
TCP adds port numbers and sequence numbers
🌐
Network layer
IP adds source and destination addresses
🔌
Data link layer
Ethernet adds MAC addresses
Physical layer
Convert to electrical signals and send
🖥️
Receiver
192.168.1.200
📧
Mail app
Data encapsulation process
7Application layer
Message content: "Hello!"
6Presentation layer
Encoding: UTF-8
5Session layer
Session ID: sess_123
4Transport layer
TCP header: port 25
3Network layer
IP header: 192.168.1.100 → 192.168.1.200
2Data link layer
Ethernet frame: MAC address
1Physical layer
Bitstream: 01010101...
Network protocol stack (OSI model)
Sender
Application layer (HTTP, SMTP)
Transport layer (TCP, UDP)
Network layer (IP)
Data link layer (Ethernet)
Physical layer (electrical signals)
Receiver
Application layer (HTTP, SMTP)
Transport layer (TCP, UDP)
Network layer (IP)
Data link layer (Ethernet)
Physical layer (electrical signals)
  • Ohne DMA: CPU ist am gesamten Datentransfer beteiligt und kann nichts anderes tun
  • Mit DMA: CPU teilt dem DMA-Controller mit „von wo nach wo, wie viel übertragen", führt dann andere Aufgaben aus; der DMA benachrichtigt den CPU nach Abschluss

DMA-Analogie

Das ist wie Essen bestellen:

  • Ohne DMA: Sie gehen selbst zum Supermarkt, kaufen ein, bringen alles nach Hause, waschen und kochen (voller Einsatz)
  • Mit DMA: Sie bestellen per Telefon und der Lieferant bringt alles direkt in die Küche (jemand anderes erledigt es, Sie müssen nur „empfangen")

5.5 Interrupt-Mechanismus

Interrupts sind ein sehr wichtiger Mechanismus im Computersystem:

  1. Das I/O-Gerät sendet nach Abschluss eine Interrupt-Anfrage an den CPU
  2. Der CPU beendet den aktuellen Befehl und antwortet dann auf den Interrupt
  3. Der CPU sichert seinen Zustand und springt zur Interrupt-Behandlungsroutine
  4. Nach Abschluss wird der Zustand wiederhergestellt und die Ausführung fortgesetzt

6. CPU-Leistungsoptimierung: Pipeline-Technik

6.1 Befehls-Pipeline

Die Befehls-Pipeline ist eine Paralleltechnik zur Maximierung der CPU-Effizienz:

CPU Instruction PipelineFive stages: Fetch → Decode → Execute → Memory → Write Back
Fetch(IF)
Decode(ID)
Execute(EX)
Memory(MEM)
Write Back(WB)
ADD R1,R2,R3
SUB R4,R1,R5
LOAD R6,[R4]
STORE R6,[R7]
AND R8,R1,R6
Total cycles0
Completed instructions0
CPI0
Pipeline principle

Sequential execution: each instruction finishes before the next starts, so N instructions require N × 5 cycles.

Pipeline execution: multiple instructions occupy different stages at once; ideally CPI ≈ 1.

Funktionsweise der Pipeline

Sequentielle Ausführung (5 Befehle, 15 Zyklen):
Befehl1: IF→ID→EX→MEM→WB
Befehl2:            IF→ID→EX→MEM→WB
Befehl3:                         IF→ID→EX→MEM→WB
...

Pipeline-Ausführung (5 Befehle, 9 Zyklen):
Befehl1: IF→ID→EX→MEM→WB
Befehl2:    IF→ID→EX→MEM→WB
Befehl3:       IF→ID→EX→MEM→WB
...

Im Idealfall gilt für N Befehle: CPI (Zyklen pro Befehl) ≈ 1

6.2 Pipeline-Gefahren

Pipelines können die Leistung steigern, bringen aber auch Gefahren (Hazards) mit sich:

TypUrsacheLösung
Struktur-GefahrHardware-RessourcenkonfliktZusätzliche Hardware / zeitversetzte Ausführung
Daten-GefahrSpäterer Befehl braucht Ergebnis eines früherenDaten-Forwarding / Bubbles / Scheduling
Kontroll-GefahrSprungbefehl ändert den AusführungsflussVerzögerungsslots / Sprungvorhersage

7. Zusammenfassung: Wie „läuft" ein Computer?

Lassen Sie uns den gesamten Ablauf mit Fachbegriffen verknüpfen:

Nach Programmstart lädt das Betriebssystem die ausführbare Datei vom Datenträger in den Hauptspeicher. Die Hol-Einheit des CPU (IF) liest über den Adressbus den Befehl aus dem Speicher in das Befehlsregister (IR). Die Steuereinheit dekodiert den Befehl (ID), identifiziert die Operationsart und erzeugt entsprechende Steuersignale. Das Rechenwerk (EX) führt die arithmetisch-logische Operation aus; bei Speicherbedarf wird über den Datenbus auf den Speicher zugegriffen (MEM); das Ergebnis wird schließlich in ein Register oder den Speicher zurückgeschrieben (WB). Der gesamte Prozess wird vom Takt gesteuert, und die von der Steuereinheit erzeugte Mikrooperations-Sequenz koordiniert alle Komponenten in geordneter Zusammenarbeit.


Weiterführende Literatur

ThemaEmpfohlene weiterführende Inhalte
Rechnerarchitektur„Computer Organization and Design: The Hardware/Software Interface" - Patterson & Hennessy
CPU-Mikroarchitektur„Computer Systems: A Programmer's Perspective" - Bryant & O'Hallaron
Befehlssatz-ArchitekturARMv8 Architecture Reference Manual, Intel x64 Manual
Cache-PrinzipienCache-Kohärenzprotokoll (MESI), Cache-Schreibstrategien
BetriebssystemeNachfolgendes Kapitel „Betriebssysteme"

Nächste Schritte

Nun haben Sie die professionellen Grundlagen der Computerarchitektur gemeistert. Als Nächstes können Sie lernen: