Vom HW-Automaten zum Prozessor Technische Grundlagen der Informatik Prof. Dr. Michael Löwe (Grundlage: Tanenbaum/Goodman. Computerarchitektur. 1999.)
Vom HW-Automaten zum Prozessor Inhalt Hardware-Automaten Speicherorganisation Prozessoren und Speicher Datenweg Micro Controller Instruction Set Architecture Instruction Set Architecture Implementation FHDW Vom HW-Automaten zum Prozessor
Hardware-Automaten Clk Register (n Bit) Register (k Bit) Logische Funktion (m+n Bit k+n Bit) Input (m Bit) Register (n Bit) Clk Register (k Bit) Output (k Bit) Last State Next State (n Bit) FHDW Vom HW-Automaten zum Prozessor
Hardware-Automaten: Beispiele ? Hardware-Automaten: Beispiele Ampel Bedieneinheit Videorecorder Geldautomat ..... FHDW Vom HW-Automaten zum Prozessor
Hardware-Automaten Logische Funktion (m+n Bit k+n Bit) Input (m Bit) Register (n Bit) Clk Register (k Bit) Output (k Bit) Last State Next State (n Bit) Logische Funktion (m+n Bit k+n Bit) ----------------------------------- Speicherbaustein mit m+n Bit breitem Adressbus k+n Bit breitem Datenbus Adressbus Datenbus FHDW Vom HW-Automaten zum Prozessor
Vom HW-Automaten zum Prozessor Register Q D Clk D1 D2 D3 D4 Q1 Q2 Q3 Q4 Q D Clk FHDW Vom HW-Automaten zum Prozessor
Speicherorganisation Q D Clk Dekodierer/ Multiplexer IN Out A0 A1 WR CS OE ( Tri-State: IN = Out ) FHDW Vom HW-Automaten zum Prozessor
Vom HW-Automaten zum Prozessor Speicherbausteine 41 Bit A0 A1 WR CS OE D 161 Bit A0 A1 WR CS OE D A2 A3 164 Bit A0 A1 WR CS OE D0 A2 A3 D1 D2 D3 FHDW Vom HW-Automaten zum Prozessor
Speicher aus Bausteinen ? Speicher aus Bausteinen Verfügbar: 16 × 4 Bit Nachgefragt: 32 × 4 Bit 16 × 8 Bit 164 Bit A0 A1 WR CS OE D0 A2 A3 D1 D2 D3 FHDW Vom HW-Automaten zum Prozessor
Speicher aus Bausteinen DatenBus D0 D1 D2 D3 WR OE 164 Bit A0 A1 WR CS OE D0 A2 A3 D1 D2 D3 164 Bit A0 A1 WR CS OE D0 A2 A3 D1 D2 D3 Schaltung für 32 4 Bit AdressBus A1 A2 A3 A4 A0 FHDW Vom HW-Automaten zum Prozessor
Speicher aus Bausteinen D0 D1 DatenBus D2 D3 D4 D5 D6 D7 164 Bit A0 A1 WR CS OE D0 A2 A3 D1 D2 D3 164 Bit A0 A1 WR CS OE D0 A2 A3 D1 D2 D3 Schaltung für 16 8 Bit WR CS OE A0 A1 A2 AdressBus A3 FHDW Vom HW-Automaten zum Prozessor
Vom HW-Automaten zum Prozessor Speicherbausteine Random Access Memory (RAM) Statische RAMs (SRAM) Dynamische RAMs (DRAM) Read-Only-Memory (ROM) Vorfabrizierte ROMs Programmable ROM (PROM) Erasable PROM (EPROM) Hybride Speicherbausteine Electrically EPROMs (EEPROM) Flash Memory FHDW Vom HW-Automaten zum Prozessor
Prozessor und Speicher Datenbus Adressbus Programm Konstanten Variablen-Stack Operanden-Stack Speicher Prozessor FHDW Vom HW-Automaten zum Prozessor
Vom HW-Automaten zum Prozessor Der Datenweg MAR MDR MBR PC LV CPP SP H ALU B A C Z Zum und vom Speicher TOS Typische ALU-Funktionen: C = A + B C = A B C = A C = B C = B + 1 C = ShiftLeft(A, 8 Bit) C = -A ... FHDW Vom HW-Automaten zum Prozessor
Micro Controller: Übersicht MAR MDR MBR PC LV CPP SP TOS ALU C 512 32 Bit Steuerspeicher Addr J M B 9 2 7 8 3 3 Decode MPC H A 2* read, write, fetch Z 1 MIR FHDW Vom HW-Automaten zum Prozessor
Micro Instruction 9 2 7 8 3 3 ALU Z MAR MDR MBR PC LV CPP SP TOS ALU C 512 32 Bit Steuerspeicher Addr J M B 9 2 7 8 3 3 Decode MPC H A 2* read, write, fetch Z 1 MIR Auswahl (mehrerer) Register für C-Bus zur Übernahme des ALU-Resultats Auswahl der ALU-Operation Addr J ALU C M B 9 2 7 8 3 3 Adresse der nächsten auszu- führenden Micro Instruction Auswahl Register für B-Bus (dekodiert) als zweites Argument für die ALU Micro-GOTO bedingt und unbedingt Speichersteuerung (read | write); fetch FHDW Vom HW-Automaten zum Prozessor
Micro Controller: Ablaufsteuerung MAR MDR MBR PC LV CPP SP TOS ALU C 512 32 Bit Steuerspeicher Addr J M B 9 2 7 8 3 3 Decode MPC H A 2* read, write, fetch Z 1 MIR 1. Laden der nächsten Micro-Instruktion Adresse in MPC 2. Ausbreiten der Signale bis zum B-Bus 3. Ausbreiten der Signale bis zum C-Bus 4. Speichern der Ergebnisse 5. MPC für neuen Zyklus laden FHDW Vom HW-Automaten zum Prozessor
Vom HW-Automaten zum Prozessor Micro Programme MAR MDR MBR PC LV CPP SP TOS ALU C 512 32 Bit Steuerspeicher Addr J M B 9 2 7 8 3 3 Decode MPC H A 2* read, write, fetch Z 1 MIR Label: R1 =..... = R <op R‘> <;(rd|wr)> <;fetch> <;goto label <;label‘>> Beispiele: H = MDR H = H + SP H = MBR << 8 SP = H or MDR; fetch TOS = MDR; goto Main FHDW Vom HW-Automaten zum Prozessor
Prozessor und Speicher Datenbus Adressbus PC (random) CPP (bottom) LV (bottom of top) SP (top) Adr 0 Adr 65.123..... Maschinen Programm Konstanten Variablen-Stack Operanden-Stack Speicher Prozessor FHDW Vom HW-Automaten zum Prozessor
Programme und Maschinenprogramme Pascal VB6 C++ Compiler Pascal Compiler VB6 Compiler Mikro- programm Prozessor Speicherzustand HW SW steuert interpretiert FHDW Vom HW-Automaten zum Prozessor
Typische Instruktionen Dyadische Operatoren: add, sub, or, ... Speicherbefehle: store, load (from/on stack) Sprünge: goto, goto on zero, ... Prozeduraufruf: call, return Byte1: Opcode Byte1: Opcode Byte2 + Byte3:Variable Index Byte1: Opcode Byte2 + Byte3: Offset vom PC FHDW Vom HW-Automaten zum Prozessor
Micro-Implementierung B1: add Main: PC = PC + 1; fetch; goto (MBR) B1: load B2: Index B1: goto B2 + B3: Offset vom PC MAR MDR MBR PC LV CPP SP TOS ALU C 512 32 Bit Steuerspeicher Addr J M B Decode MPC H A 2* read, write, fetch Z 1 MIR FHDW Vom HW-Automaten zum Prozessor
Micro-Implementierung MAR = SP = SP - 1; rd H = TOS MDR = TOS = MDR + H; wr; goto Main B1: add H = LV MAR = MBR + H; rd MAR = SP = SP + 1 PC = PC + 1; fetch; wr TOS = MDR; goto Main B1: load B2: Index MDR = PC - 1 PC = PC + 1; fetch H = MBR << 8 H = MBR or H PC = MDR + H; fetch wait; goto Main B1: goto B2 + B3: Offset vom PC Main: PC = PC + 1; fetch; goto (MBR) FHDW Vom HW-Automaten zum Prozessor