# Von-Neumann-Architektur
Die 1945 von John von Neumann beschriebene Architektur bildet heute noch die Grundlage für die Arbeitsweise der meisten Computer. Die VNA (Von-Neumann-Architektur) sieht fünf Komponenten vor (Rechenwerk, Steuerwerk, Ein-/Ausgabewerk und Speicherwerk) die über ein gemeinsames Bus-System miteinander kommunizieren. Revolutionär an dieser Architektur war seinerzeit der Speicher, der von Programm und Daten gemeinsam benutzt wird. Zuvor waren die Rechner an ein festes Programm gebunden, das entweder hardwaremässig verschaltet war, oder über Lochkarten eingelesen werden musste.
# 4-Bit-Democomputer
Beim 4-Bit-Democomputer wird das Programm fest ins ROM eingebrannt. Befehle sind durch eine 4-Bit-Zahl (= 1 Wort) codiert und werden im ROM von oben nach unten abgearbeitet. Einige Befehle bestehen aus zwei Wörtern: Das erste Wort bestimmt den Befehl. Das zweite Wort steht in der darauffolgenden 4-Bit-Speicher-Zelle des ROMs und stellt sozusagen das Argument der Funktion dar (z.B. einen Zahlenwert oder eine Speicheradresse).
Aufgabe
Schreibe die folgenden Programme auf dem 4-Bit-Democomputer (Link auf Wiki)
- Wert vom Input-Feld einlesen und im RAM speichern.
- Wert verdoppeln und wieder im RAM speichern.
- Wert aus dem RAM auslesen und ins Output-Feld schreiben.
# Bootloader
Wie startet ein Computer? Die Von-Neumann-Architektur brachte durch den gemeinsamen Speicher viele neue Möglichkeiten mit sich. Aber wie kann ein Computer starten? Wer lädt Daten und vor allem Programme in den Speicher? So kommen bis heute Computer nicht ohne ein fest eingebautes Programm aus – den sogenannten Bootloader. Dieser sitzt im ROM des Computers und wird also auch bei Stromausfall nicht gelöscht. Beim Starten des Computers wird der Bootloader ausgeführt. Er lädt nun ein Programm, resp. heute ein Betriebssystem von einem sekundären Speicher (z.B. der Festplatte) in den Arbeitsspeicher. Wenn das Programm im RAM geladen ist, wird der Bootloader beendet. Der Computer nimmt nun seine Befehle aus dem RAM und kann so das Betriebssystem starten, welches dann weitere Progamme und Daten ausführt, resp. lädt.