Die Digitaltechnik ist die Grundlage der Elektronischen Datenverarbeitung (EDV). Die Applikationen der EDV sind vielfältig:
Die Informationsverarbeitung erfordert eine Mensch-Maschine Schnittstelle, d.h. die Kodierung von Informationen zu Daten, die eigentliche Datenverarbeitung, und die anschließende Rückgewinnung der Informationen aus Daten, wie in Abb. 1 gezeigt ist.
Die Repräsentation und Kodierung von Informationen erfolgt durch Bitfolgen im Binärzahlensystem. Ein Bit enthält die Informationsmenge bestehend aus zwei Elementen:
{wahr,falsch}, {hell,dunkel}, {x0,x1} usw.
{1,0} → {H,L} → {3.3V,0V}
Generisches Datenverarbeitungssystem ⇔ Programmsteuerung
Generische EDV und Programmsteuerung bedeuten Einschränkung bei Optimierungsmöglichkeiten → Die Maschine ist universell!
Dazu soll das Schichtenmodell einer konventionellen Datenverarbeitungsanlage näher betrachtet werden.
Abstraktion
ISA: Instruction Set Architecture
Die Instruktionsebene eines Mikroprozessors kann mit zwei unterschiedlichen Architekturen implementiert werden:
Direkt mit digitaler Logik realisiert;
Mikroarchitektur: Transformation von komplexen Maschinenbefehlen in eine Untermenge einfacher Maschinenbefehle (sequenzielle Komposition) → Microcode
Man unterscheidet:
Reduced Instruction Set Computer Architektur
Kleine Instruktionsmenge besteht aus einfachen Operationen meist mit konstanter Instruktionslänge. Können auf ISA Mikroarchitektur verzichten (z.B. SUN Sparc, Motorola/IBM PowerPC, ARM)
Complex Instruction Set Computer Architektur
Große Instruktionsmenge mit komplexen Operationen und meist variabler Instruktionslänge → ISA Mikroarchitektur bei vielen CISC-Prozessoren (z.B. Intel X86/X64 Pentium usw.);
Die Betriebssystemebene ermöglicht die Abstraktion der Rechnerarchitektur, die ISA-Ebene ermöglicht die Abstraktion von der Digitallogikebene.
Ein klassisches Mikroprozessorsystem arbeitet ein Maschinenprogramm ( → Ablaufvorschrift) sequenziell ab → Limitierung!
Die einzelnen Instruktionen eines Maschinenprogramms werden in unterschiedlichen Werken im Mikroprozessor verarbeitet.
Zum näheren Verständnis der Programmsteuerung muss der Aufbau und die Architektur einer generischen von-Neumann-Anlage näher betrachtet werden.
Die Rechnerarchitektur ist unterteilt in
Das Leitwerk enthält folgende spezielle Register:
Zeigt auf Speicheradresse des nächsten auszuführenden Maschinenbefehls.
Enthält Kodierung des aktuell ausgeführten Befehls.
Enthält Informationen über aktuelle oder bereits ausgeführte Operationen, wie Zero-oder Carry-Bits, und beeinflusst die Programmausführung (z.B. bedingte Verzweigung).
Das Rechenwerk, das Leitwerk und der Registersatz sind über einen Daten- und Adressbus mit einem (einzigen) Hauptspeicher verbunden, dessen Speicherzellen über die Adresse ausgewählt werden.
Der Hauptspeicher enthält:
Ein Bussystem ist eine Gruppe von elektrischen Signalleitungen zur Datenübertragung, und verbindet mehrere Kommunikationsteilnehmer. Bei einem Datenaustausch auf einem Bus ist immer ein Teilnehmer schreibend und ein anderer lesend aktiv. → Limitierung
main() { printf("hello, world\n"); }
CALL SPRINT
DEFM HELLO WORLD.
DEFB FF
RET
SPRINT POP HL
LD A,(HL)
INC HL
PUSH HL
CP FF
RET Z
CALL PRINT
JR SPRINT
|
Speicherhierarchie eines SoC Designs [ECSOC,Rowen,2004] |