Aus welchen vier Teilwerken besteht ein von-Neumann-Rechner?
1) Leitwerk (Steuerwerk, control unit),
2) Rechenwerk (ALU),
3) Haupt-/Arbeitsspeicher,
4) Ein-/Ausgabewerk.
Sie kommunizieren über Busse; Grundprinzip seit 1946 gültig.
Nenne die 7 Strukturprinzipien des von-Neumann-Konzepts.
4 Teilwerke;
Aufbau unabhängig vom Problem (Universalrechner);
Programme UND Daten im selben Speicher (modifizierbar);
Speicher in gleich große, fortlaufend adressierte Zellen;
Befehle laufen sequentiell;
Sprünge ändern den Ablauf;
alles binär codiert. — Bitfolgen sind nicht selbstidentifizierend (Daten vs. Befehl).
Was macht das Leitwerk (Steuerwerk)?
Es steuert den Programmablauf durch schrittweises Holen, Decodieren und Interpretieren der Befehle und erzeugt die Steuersignale für die anderen Teilwerke.
Komponenten: Befehlszähler (PC), Befehlsregister (IR), Befehlsdecodierer, Statusregister.
Was macht das Rechenwerk (ALU)?
Es führt die binären arithmetischen und logischen Operationen aus.
Komponenten: Eingangsregister (Operanden), ALU, Ergebnisregister (Akkumulator), Statusregister; kann Schiebe-/Maskiereinheiten enthalten.
Wofür stehen die Register PC, IR, CR/SR, MAR, MDR?
PC (Program Counter/Befehlszähler) = Adresse des nächsten Befehls;
IR (Instruction Register) = aktueller Befehl als Maschinencode;
CR/SR (Condition/Statusregister) = Flags;
MAR (Memory Address Register) = RAM-Adresse für Zugriff;
MDR (Memory Data Register) = Datenwort zum/vom Speicher.
Was ist ein Flag, und welche typischen Flags gibt es im Statusregister?
Ein Flag ist ein einzelnes Bit mit Boole'scher Aussage über das letzte Ergebnis.
Typisch: CF (Carry/Übertrag), ZF (Zero/Null), SF (Sign/negativ), OF (Overflow/Überlauf), EF (Even/gerade Anzahl 1-Bits).
Flags steuern bedingte Sprünge.
Welche sechs Phasen hat der klassische Maschinenbefehlszyklus?
1) IF Befehlsholphase,
2) ID Decodierphase,
3) OF Operandenholphase,
4) EX Ausführungsphase,
5) WB Rückschreibphase,
6) PC Weiterschaltung (Befehlszähler erhöhen).
Reihenfolge IF→ID→OF→EX→WB→PC; OF kann parallel zu ID laufen.
Was passiert in der IF- und der ID-Phase?
IF (Instruction Fetch): PC über MAR an den Speicher, Opcode des Befehls ins IR holen.
ID (Instruction Decode): Opcode entschlüsseln und passende Steuersignale erzeugen.
Danach OF (Operanden in ALU-Register), EX (ALU rechnet), WB (Ergebnis zurück).
Welche drei Busse verbinden die Teilwerke und wofür?
Steuerbus (Signalisierung zwischen Teilwerken),
Adressbus (welche Speicherzelle/Gerät angesprochen wird),
Datenbus (transportiert Daten/Befehle).
Über Adress- und Datenbus läuft jeder Speicherzugriff.
Was ist der von-Neumann-Flaschenhals?
Da Daten und Programm im selben Speicher liegen, wird die einzige Verbindung Prozessor↔Speicher (Bus) zum Engpass.
Kritisch für die Gesamtleistung; die Harvard-Architektur umgeht das mit getrennten Speichern.
Was beschreibt die „Memory Wall“ und das Lokalitätsprinzip?
Memory Wall: Prozessoren werden viel schneller als der Speicherzugriff → wachsende Lücke.
Lokalitätsprinzip: Programme greifen in einem Zeitintervall nur auf einen kleinen Speicherbereich zu (90/10-Regel).
Zeitliche Lokalität (kürzlich Benutztes nah halten) und örtliche Lokalität (benachbarte Zellen mitladen) ermöglichen die Speicherhierarchie.
Wie ist die Speicherhierarchie aufgebaut?
Vom Prozessor nach außen:
Register → Cache (SRAM) → Hauptspeicher (DRAM) → Massenspeicher (HDD/SSD).
Mit wachsender Entfernung: größer und billiger, aber langsamer.
Register ns-Bruchteile, Platte Sekundenbruchteile.
Was ist Pipelining (Fließbandverarbeitung)?
Mehrere Befehle werden gleichzeitig bearbeitet, indem aufeinanderfolgende Phasen (IF, ID, OF, EX, WB, …) in separaten Stufen laufen, jeweils um einen Takt versetzt.
Verbessert Pipelining die Ausführungszeit eines EINZELNEN Befehls?
Nein.
Die Latenz (Bearbeitungszeit eines Befehls) bleibt gleich bzw. wird durch Registerübergänge minimal länger.
Erhöht wird der DURCHSATZ (Befehle pro Zeit), nicht die Einzelbefehlszeit.
Welche Probleme (Hazards) gibt es beim Pipelining?
Ressourcenkonflikte (gleichzeitiger Zugriff auf eine Einheit),
Datenkonflikte (Befehl braucht noch nicht verfügbares Ergebnis;
RAW/WAR/WAW) und Steuerkonflikte (bedingte Sprünge).
Bedingte Sprünge leeren/füllen die Pipeline neu → Sprungvorhersage (bis ~95% Trefferquote) ist entscheidend.
Was besagt das Amdahlsche Gesetz?
Der Speedup durch Parallelisierung ist durch den nicht-parallelisierbaren (seriellen) Anteil begrenzt
Wie unterscheiden sich Ein- und Mehrtaktzyklus-CPUs?
Eintaktzyklus: jeder Befehl in genau einem (gleich langen) Takt → einfacher Entwurf, aber kurze Befehle vergeuden Zeit.
Mehrtaktzyklus: Befehl in mehreren kurzen Takten → effizienter, aber aufwändiger (Multiplexer, Latches, Zwischenregister).
Unterschied von-Neumann- vs. Harvard-Architektur?
von Neumann: gemeinsamer Speicher für Daten und Programm (ein Bus → Flaschenhals).
Harvard: getrennte Speicher und Busse für Befehle und Daten → kein Flaschenhals, aber selbstmodifizierender Code ggf. nicht lauffähig.
Was macht den von-Neumann-Rechner „universell“?
Die bedingten Sprungbefehle:
Abhängig von berechneten/gespeicherten Werten kann der Programmfluss geändert werden – dadurch kann jede berechenbare Aufgabe (mit passendem Programm) gelöst werden.
Struktur ist problemunabhängig (Universalrechner).
Welche Aufgaben kann ein von-Neumann-Rechner mit LEEREM Hauptspeicher lösen?
Keine – ohne Programm im Speicher gibt es keine Befehle auszuführen.
Der Rechner ist universell NUR mit geladenem Programm; die Hardware allein „kann nichts“.
Welche Weiterentwicklungen des von-Neumann-Konzepts gibt es?
Verfeinerte Speicherstruktur (Hierarchisierung,
Virtualisierung),
Fließbandverarbeitung (Pipelining) und Parallelisierung (Multicore, Threading).
Ziel: Flaschenhals entschärfen, Durchsatz steigern.
Zuletzt geändertvor 9 Tagen