Hardware/Software-Codesign

Größe: px
Ab Seite anzeigen:

Download "Hardware/Software-Codesign"

Transkript

1 Hardware/Software-Codesign Kapitel 3: Hardwarearchitekturen M. Schölzel

2 Klassifizierung nach Konfigurierbarkeit Rechenbaustein Nicht Konfigurierbar Konfigurierbar Fest Verdrahtet (ASIC) Fest Verdrahtet (durch SW konfigurierbare Funktion, z.b. Mikroprozessor) Konfigurierbar verdrahtet (durch HW-Konfiguration konfigurierbare Funktion, z.b. FPGA)

3 MIKROPROZESSORARCHITEKTUREN Befehlsverarbeitung

4 Princeton-Architektur CPU Steuerwerk Register Datenpfad Rechenwerk Verbindungsnetzwerk Speicher für Programme und Daten Steuerwerk: Steuerung des Datenpfads über Signale Zwei Prinzipien für Aufbau: Fest verdrahtet Mikroprogrammgesteuert Ein- und Ausgabekomponenten Rechenwerk: Verarbeitung der Daten (Ausführen arithmetisch/logischer Operationen) Rückmeldung an Steuerwerk über Signale Aufbau hängt stark von der Prozessorarchitektur ab.

5 Beispiel Befehlsverarbeitung PC enthält Speicheradresse des aktuellen Befehls Befehl von dieser Adresse aus dem Speicher in das Instruktionsregister (IR) holen PC auf Adresse des nächsten Befehls setzen Aktuellen Befehl im IR im Datenpfad ausführen Nächsten Befehl holen Es ergibt sich folgende Verarbeitungsschleife: Aktuellen Befehl in das IR holen und PC aktualisieren (FE) Befehl im IR verarbeiten: Operandenwerte laden (DE) Operandenwerte verarbeiten (EX) Ergebnis zurückschreiben (WB) Rechenwerk R0 Steuerlogik R1 ALU 6 Steuersignale R2 5 IR 0x01 0x02 PC Datum Adresse 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B Speicher inc R0 inc R2 dec R1 Und jetzt die Details Steuerwerk

6 Blockschaltbild mit Details Rechenwerk Allgemeine Register 0x00 0x01 Speicher ALU MBR 0x02 0x03 0x04 Steuersignale Statusflags PC 0x05 0x06 Steuerlogik IR 0x07 0x08 0x09 Timer PC MAR 0x0A 0x0B Steuerwerk

7 Takt 0: Befehl holen (MAR <= PC) Rechenwerk Speicher Allgemeine Register 0x00 0x01 ALU MBR 0x02 0x03 0x12 0x21 =0x?? 0x04 Steuersignale Statusflags Steuerlogik PC =0x?? IR =nop 0x05 0x06 0x07 0x08 0x09 Timer reset=0 PC =0x02 MAR =0x?? 0x0A 0x0B =0x00 Steuerwerk

8 Takt 1: Befehl holen (IR <= MEM[MAR]) Rechenwerk Speicher Allgemeine Register 0x00 0x01 ALU MBR 0x02 0x03 0x12 0x21 =0x?? 0x04 Steuersignale Statusflags Steuerlogik PC =0x?? IR =0x12 =read 0x05 0x06 0x07 0x08 0x09 Timer =0x01 reset=0 Steuerwerk PC MAR =0x02 =0x02 0x0A 0x0B

9 Takt 2: Befehl holen (PC <= PC + 1) Rechenwerk Speicher Allgemeine Register 0x00 0x01 ALU MBR 0x02 0x03 0x12 0x21 =0x?? 0x04 Steuersignale Statusflags Steuerlogik PC =0x12 IR =nop 0x05 0x06 0x07 0x08 0x09 Timer =0x02 reset=0 Steuerwerk PC MAR =0x02 =0x02 0x0A 0x0B

10 Situation zu Beginn von Takt 3 Rechenwerk Speicher Allgemeine Register 0x00 0x01 ALU MBR 0x02 0x03 0x12 0x21 =0x?? 0x04 Steuersignale Statusflags Steuerlogik PC =0x12 IR =nop 0x05 0x06 0x07 0x08 0x09 Timer =0x03 reset Steuerwerk PC MAR =0x03 =0x02 0x0A 0x0B

11 Zusammenfassung Befehlsholphase Ausgeführte Registertransferoperationen: Timer=0: MAR <= PC Timer=1: IR <= MEM[MAR] Timer=2: PC <= PC + 1 Danach befindet sich Befehlscode im IR Ab Takt 3 kann das Steuerwerk abhängig vom Timer und dem Befehlscode den Datenpfad steuern Takt 0 Takt 1 Takt 2 Takt 3 Steuersignale werden zur Ausführung der Registertransferoperation gesetzt MAR <= PC IR<=MEM[MAR] PC <= PC+1

12 Prinzipieller Aufbau Steuerwerk Fest verdrahtet Mikroprogrammgesteuert Für jede Steuerleitung x i implementiert das Steuerwerk eine boolesche Funktion x i = f i (Timer, IR, Flags) +1 0 Opc Mux MPC Timer IR MPC IR Reset Steuerwerk Flags Adr x 0 x 1 x n Mux MPC x 0 x 1 x n Steuerleitungen zum Datenpfad x 0 x 1 x n Steuerleitungen zum Datenpfad Typisch für RISC Typisch für CISC

13 Details Rechenwerk Folgendes einfaches Rechenwerk wird verwendet: ld0,,ld2 Rechenwerk 3 2 mux alu R0 2 R1 R2 D1 D2 D3 D4 MUX M ALU A zero Steuersignale Statusflag Zum Auslesen/ Schreiben des PC 1 PC MAR MBR Steuersignale legen Verhalten der Komponenten fest MUX: ALU: Steuersignal mux Signal alu 0 (test) 1 (+1) 2 (-1) 3 (transfer) Ri, mit 0 i 2: Ri(t+1) = Ri(t), falls ldi = 0 Ri(t+1) = A, falls ldi = 1 Ausgang M 0 D1 1 D2 2 D3 3 D4 A Ausgang zero M 1, falls M=0 0, sonst M+1 0 M-1 0 M 0

14 Kodierung für Inkrement/Dekrement Befehlscode im IR Bedeutung Assemblersyntax 0x10 R0 <= R0+1 inc R0 0x11 R1 <= R1+1 inc R1 0x12 R2 <= R2+1 inc R2 0x20 R0 <= R0-1 dec R0 0x21 R1 <= R1-1 dec R1 0x22 R2 <= R2-1 dec R2

15 Moore-Automat für fest verdrahtetes Steuerwerk T = 2 IR = 0x10 3 R0 <= R0 + 1 T <= 0 T = 2 IR = 0x11 4 R1 <= R1 + 1 T <= 0 T = 2 IR = 0x T = 0 IR = 0xXX 1 T = 1 IR = 0xXX 2 R2 <= R2 + 1 T <= 0 T = 3 IR = 0xXX MAR <= PC IR <= MEM PC <= PC + 1 T = 2 IR = 0x20 6 R0 <= R0-1 T <= 0 T = 2 IR = 0x21 7 R1 <= R1-1 T <= 0 T = 2 IR = 0x22 8 R2 <= R2-1 T <= 0

16 Mikroprogrammsteuerung IR 0x10 3 0x11 4 0x12 5 0x20 6 0x21 7 0x22 8 Mux MPC Sprungtabelle MPC IR MPC x 0 x 1 x n Mux MPC 0 MAR <= PC 0 1 IR <= MEM 0 2 PC <= PC R0 <= R R1 <= R R2 <= R R0 <= R R1 <= R R2 <= R2-1 1 Mikroprogrammspeicher x 0 x 1 x n

17 MIKROPROZESSORARCHITEKTUREN Klassifizierung

18 Klassifizierung von Prozessoren Nach Befehlssatzarchitektur CISC vs. RISC Speicherort und Adressierungsmöglichkeit der Operanden Nach Registerarchitektur Universalregisterarchitektur, Spezialregisterarchitektur, Akkumulatorarchitektur, Nach Organisation des Programm- und Datenspeichers: Princeton- vs. Harvard-Architektur Nach Verwendung Universalprozessoren, Anwendungsspezifische Prozessoren, Domainspezifische Prozessoren Nach Scheduling-Policy statisch vs. dynamisch In-Order vs. Out-of-Order

19 Complex Instruction Set Computer (CISC) Gründe für CISC: In den 70ern und Anfang 80er waren Speicher noch sehr teuer: Kompakte Kodierung von Befehlen wurde angestrebt Abwärtskompatibilität möglich Beispiele: Intel 80x86 Pentium 4 Seit Anfang der 80er Jahre vermehrte Nutzung von Compilern mit folgender Beobachtung auf einer IBM 370 (ca. 200 Befehle): 80% des compilergenerierten Programmcodes nutzen nur 10 verschiedene Befehle 95% des compilergenerierten Programmcodes nutzen nur 21 verschiedene Befehle 99% des compilergenerierten Programmcodes nutzen nur 30 verschiedene Befehle Konsequenz war die RISC-Philosophie

20 Reduced Instruction Set Computer (RISC) Gewünschte Eigenschaften für den Befehlssatz: Ausführung eines Maschinenbefehls pro Takt Verzicht auf Mikroprogrammierung, weil diese zu viel Fläche benötigt Lade-Speicher-Architektur: Speicherzugriff nur über load-/store- Befehle, keine Speicheroperanden zulässig Einheitliches Befehlsformat, wodurch sich die Dekodierung stark vereinfacht (Kompromiss: wenige verschiedene Befehlsformate mit einheitlicher Kodierung aller Befehle eines Formats) Beispiele: ARM-Prozessoren PowerPC

21 Beispiel für zwei Befehlsformate Befehlsformat 1 4 Bit 4 Bit opc reg Assembler opc (binär) Beschreibung Anmerkung Takte inc reg 0001 Rreg <= Rreg + 1; PC <= PC reg 2 4 dec reg 0010 Rreg <= Rreg 1; PC <= PC reg 2 4 Befehlsformat 2 4 Bit 4 Bit 8 Bit opc reg addr Assembler opc (binär) Beschreibung Anmerkung Takte jmp addr 0011 PC <= addr - 6 jnz reg,addr 0100 if Rreg=0 then PC <= PC+2 else PC <= addr 0 reg 2 6

22 Befehlssatzarchitektur Befehlssatzarchitektur spezifiziert Schnittstelle der Software zur Hardware Sichtbaren Teil des Prozessors für den Assemblerprogrammierer Befehlssatzarchitektur legt fest: Unterstützte Operationen Bitcodierung der Operationen Speicherorte für Operanden einer Operation Adressierungsarten der Operanden Unterstützte Datenformate des Prozessors (Byte, Wort, ) Anordnung der Daten im Speicher (Little/Big Endian)

23 Überblick Adressierungsarten Operanden können sich befinden in einem Prozessorregister: Adresse ist die Registerbezeichnung im Speicher: Adresse ist die Speicheradresse Adressierung dieser Operanden Implizite Adressierung Unmittelbare Adressierung Registeradressierung Absolute Speicheradressierung Registerindirekte Speicheradressierung Speicherindirekte Adressierung Registerindirekte Adressierung mit Displacement

24 Implizite Adressierung Adressierungsarten Operand ist implizit im Befehlscode kodiert Beispiel: LDA #imm A := imm Opc imm Accu 0x4711 Zieloperand ist der Accu, der implizit adressiert wird

25 Adressierungsarten Unmittelbare (immediate) Adressierung Operand ist als Konstante im Befehl kodiert Beispiel: LDA #imm A := imm Verwendung: Kodierung von Konstanten Opc imm Operand ist die Konstante imm

26 Adressierungsarten Registeradressierung Befehl kodiert die Registernummer Beispiel: ADD R0,R2,R5 R0 := R2 + R5 Verwendung: Schnelle Verknüpfung von Operanden Opc R0 0x0815 Operand ist der Wert im Register

27 Adressierungsarten Absolute Speicheradressierung Befehl kodiert eine Speicheradresse als Konstante Beispiel: ADD R0, R2, (1000) R0 := R2 + MEM[1000] Verwendung: Zugriff auf globale Variablen (haben konstante Adresse) Opc Speicher 0x5A20 0x5A10 0x4510 Adresse 0x0FFF 0x1000 0x1001 Operand ist im Speicher

28 Adressierungsarten Registerindirekte Speicheradressierung Befehl kodiert ein Register Register enthält eine Speicheradresse Beispiel: ADD R0, R2, (R5) R0 := R2 + MEM[1000] Verwendung: Zeiger (Register enthält den Wert des Zeigers) Opc R5 0x1000 Speicher Adresse 0x5A20 0x0FFF 0x5A10 0x1000 0x4510 0x1001 Operand ist im Speicher

29 Adressierungsarten Registerindirekte Speicheradressierung mit Displacement Befehl kodiert ein Register und ein Displacement (Offset) Speicheradresse ergibt sich aus Registerwert + Displacement Beispiel: ADD R0, R2, 1(R5) R0 := R2 + MEM[R5 + 1] Verwendung: Zugriff auf lokale Variablen Opc R5 0x1000 Speicher Adresse 0x5A20 0x0FFF 0x5A10 0x x4510 0x1001 Operand ist im Speicher

30 Adressierungsarten Indexierte Speicheradressierung Befehl kodiert ein Register und ein Displacement (Offset) Speicheradresse ergibt sich aus Registerwert + Displacement Beispiel: ADD R0, R2, (R4 + R5) R0 := R2 + MEM[R4 + R5] Verwendung: z.b. bei Feldzugriffen Opc x1000 0x0001 R5 R4 Speicher Adresse 0x5A20 0x0FFF 0x5A10 0x x4510 0x1001 Operand ist im Speicher

31 Adressierungsarten Speicherindirekte Adressierung Befehl kodiert ein Register Registerinhalt ist eine Speicheradresse x Inhalt der Speicheradresse x ist eine Adresse y Inhalt der Adresse y ist der Operand Beispiel: ADD R0, R0 := R2 + MEM[MEM[R5]] Verwendung: Speicherplatz x ist ein Zeigerwert Opc x1000 R5 Speicher 0x5A20 0x1001 0x4510 Operand ist im Speicher Adresse 0x0FFF 0x1000 = x 0x1001 = y

32 Adressierungsarten Autoincrement/Autodecrement Befehl kodiert ein Register Registerinhalt ist eine Speicheradresse, an der sich der Operand befindet Beispiel: ADD R0, R2, (R4+d) R0 := R2 + MEM[R4]; R4 := R4 + d Verwendung: Stapelzugriff, Schleifen über Felder Opc d 0x1000 R4 Speicher 0x5A20 0x1001 0x4510 Operand ist im Speicher Adresse 0x0FFF 0x1000 0x1001

33 Adressierungsarten Registerindirekt skaliert Befehl kodiert ein Register Registerinhalt ist eine Speicheradresse, an der sich der Operand befindet Beispiel: ADD R0, R2, base(r5*d) R0 := R2 + MEM[base+R5*d] d ist in der Regel eine kleine Zweierpotenz Verwendung: Zugriff auf Feldelemente Opc d base R5 0x1000 Speicher Adresse 0x5A20 0x0FFF * + 0x5A10 0x4510 Operand ist im Speicher 0x1000 0x1001

34 Universalregisterarchitektur Eine Registerbank mit n Registern Alle Register sind gleich Variante 1: 3-Adress-Code In einer Operation sind kodiert: Zwei Quelloperanden Ein Zieloperand Beispiel: ADD R1, R2, R3 (R1 <= R2 + R3) Vorteil: Werte der Quelloperanden können erhalten bleiben Nachteil: Platzbedarf für Kodierung Variante 2: 2-Adress-Code In einer Operation sind kodiert: Zwei Quelloperanden Ein Quelloperand ist auch Zieloperand Beispiel: ADD R1, R2 (R1 <= R1 + R2) Vorteil: Nachteil: Geringer Platzbedarf bei Kodierung Registerbank Ein Quelloperand muss immer überschrieben werden Kann zusätzliche Kopieroperationen zum Retten eines Wertes erfordern R0 R1 MUX MUX ALU Rn

35 Scratch-Pad-Memory-Architektur Registerbank ist als schneller Speicher organisiert Vorteile: Große Anzahl an Registern ist realisierbar ohne große Multiplexer für Lesezugriff Vereinfachung des Aufbaus des Rechenwerks Nachteile: Lesen zweier Operanden erfordert zwei Takte (oder Verwendung eines Dual-Ported-Memories) Große Anzahl an Registern erfordert viel Speicherplatz für die Kodierung der Adresse Vermeidbar durch Verwendung der Fenster-Technik: Unterteilung der Register in Gruppen zu k Registern Adresse eines Registers wird aus b k+r gebildet, wobei b ist in einem Kontrollregister kodiert r ist in der Operation kodiert Speicher A B ALU R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 k = 4 b = 1 Fenster

36 Akkumulatorarchitektur Akkumulator (Accu) ist für die meisten Operationen Zieloperand und Quelloperand Vorteil: Es muss nur ein Operand in der Operation kodiert werden Geringer Hardwarebedarf, da Multiplexer eingespart werden Nachteil: Häufigeres Auslagern des Accu-Inhalts verlängert Programmcode ALU Accu

37 Spezialregisterarchitektur Datenpfad enthält verschiedene funktionale Einheiten Einzelne Register sind nur von bestimmten funktionalen Einheiten als Quell- /Zieloperand nutzbar Vorteil: Platzsparende Kodierung der Operanden möglich Einsparung bei den Multiplexern Bitbreite der Register kann an die Erfordernisse der zugehörigen Operation angepasst werden Nachteil: Zusätzliche Transferoperationen zwischen den Registern können erforderlich sein A1 A2 MUL A B1 B2 ALU B

38 Stackarchitektur Speicher ist als Stack organisiert Jede k-näre Operation holt sich die obersten k Wert als Operanden vom Stack Ergebnis wird auf den Stack gelegt Vorteil: Es muss keine Operandenadresse im Befehl kodiert werden Nachteil: Kein wahlfreier Zugriff auf die Werte möglich Mehrere Takte für das Holen der Operanden erforderlich A ALU B Stack

39 Moore s Law Dual Core Itanium 2 ( ) Itanium 2 ( ) Number of transistors ( ) ( ) Pentium 4 ( ) Pentium II ( ) Pentium ( ) ( ) AMD K7 ( ) Gate size in nano meter (29.000) 8080 (4500) (2300) Year

40 Parallelität Parallelitätsebenen Ebene Realisierung Beispiel Programmebene (Multitasking) Prozessebene (Multithreading) Software Software Betriebssystem Compiler/ Programmierer Funktionseinheiten Hardware mehrere Integer-ALUs Befehlstrom Daten Hardware (MIMD, MISD) Hardware (SIMD, MIMD) Mehrkernprozessor Vektorrechner Bit Hardware Bitparallelität (8-, 16-, 32-, 64-Bit) Evtl. nur Nebenläufigkeit; dann keine Erhöhung der Leistungsfähigkeit Parallelität durch Redundanz

41 Klassifikation nach Flynn Verarbeitung eines Befehlsstroms und eines Datenstroms (z.b ) Verarbeitung eines Befehlsstroms und mehrerer Datenströme (z.b. Vektorrechner) SISD MISD SIMD MIMD Verarbeitung mehrerer Befehlsströme und eines Datenstroms Verarbeitung mehrerer Befehlsströme und mehrerer Datenströme (z.b. Multiprozessoren)

42 Befehlsverarbeitung in Prozessoren Verarbeitung von Befehl 1 FE DE EX WB Takt 1 Takt 2 Takt 3 Takt 4 Verarbeitung von Befehl 2 FE DE EX WB Takt 5 Takt 6 Takt 7 Takt 8 FE DE EX WB Im Steuerwerk ausgeführte Schleife zur Befehlsverarbeitung (4 Takte je Iteration).

43 Parallelität in SI-Prozessoren Redundante Ressourcen (Superskalarität) Es werden mehrere Befehle gleichzeitig in derselben Phase verarbeitet Parallelisierung der Befehle entweder: statisch durch den Compiler dynamisch durch die Hardware Time-Sharing (Pipelining) Iterationen der Befehlsausführungsschleife werden überlappend ausgeführt Es ergibt sich ein Schleifenkörper, der in einem Takt Befehle aus vier verschiedenen Iterationen parallel ausführt (Jeder Befehl in einer anderen Phase) FE DE EX WB FE DE EX WB FE DE EX WB Neue Befehlsausführungsschleife (1 Takt je Iteration) Befehl 1 FE DE EX WB Befehl 2 FE DE EX WB Befehl 3 FE DE EX WB Befehl 4 FE DE EX WB

44 Parallelität Non-Pipelined Pipelined Super-Scalar Scalar

45 Dynamische vs. statische Parallelisierung Dynamisch geplant Statisch geplant Anwendung Anwendung Compiler Einfacherer Compiler Komplexerer Compiler Compiler sequentieller Befehlsstrom parallelisierter Befehlsstrom Dispatcher Komplexer Kontrollpfad Einfacherer Kontrollpfad Scheduler FU FU FU Prozessor Verschiebung der Komplexität in den Compiler FU FU FU Prozessor

46 Abhängigkeiten Steuerflussabhängigkeiten ergeben sich durch die bedingte Ausführung von Anweisungen im Programm. Eine Anweisung b ist steuerflussabhängig von Anweisung a genau dann, wenn die Ausführung von b von dem Ergebnis der Auswertung von a abhängt. a b c

47 Abhängigkeiten Datenabhängigkeiten ergeben sich durch die Reihenfolge, in der auf Daten lesend und schreibend zugegriffen wird. Eine Anweisungen b ist von Anweisung a datenabhängig genau dann, wenn: a und b auf dasselbe Datum zugreifen und mindestens eine dieser Anweisungen schreibend auf das Datum zugreift und nach Ausführung von Anweisung a Anweisung b ausgeführt werden kann. Arten von Datenabhängigkeiten: Flussabhängigkeiten Gegenabhängigkeiten Ausgabeabhängigkeiten

48 Flussabhängigkeit Flussabhängigkeit (True Dependency, Flow Dependency, RAW): Eine Anweisung b ist genau dann flussabhängig von Anweisung a, wenn a ein Datum schreibt, das von b gelesen wird: add r1, r2, r3 sub r4, r2, r1

49 Gegenabhängigkeit Gegenabhängigkeit (Antidependency, WAR): Eine Anweisung b ist genau dann gegenabhängig von Anweisung a, wenn a ein Datum liest, das von b geschrieben wird: add r1, r2, r3 sub r2, r4, r0

50 Ausgabeabhängigkeit Ausgabeabhängigkeit (Output Dependency, WAW): Eine Anweisung b ist genau dann ausgabeabhängig von Anweisung a, wenn a ein Datum schreibt, das auch von b geschrieben wird: add r1, r2, r3 sub r1, r4, r0

51 Umordnung von Operationen Veränderung der ursprünglichen Reihenfolge von Operationen in einem Programm ist nur dann zulässig, wenn dadurch die bestehenden Abhängigkeiten nicht verändert werden add r1, r2, r3 add r1, r2, r3 add r1, r2, r3 sub r4, r2, r1 sub r4, r2, r1 add r1, r2, r3 sub r2, r4, r0 sub r2, r4, r0 add r1, r2, r3 sub r1, r4, r0 sub r1, r4, r0 add r1, r2, r3 sub r4, r2, r1 add r1, r2, r3 sub r2, r4, r0 add r1, r2, r3 sub r1, r4, r0 add r1, r2, r3

52 Scoreboarding Befehlsstrom --- Befehl 2 Befehl 1 Warteschlange Scoreboard Registerbank FU FU Dynamische Zuordnung von Befehlen zu FUs In jedem Takt wird geprüft, ob der erste Befehl in Warteschlange einer FU zugeordnet werden kann Sinnvoll für lang laufende Befehle (mehrere Takte zur Ausführung in FU) Vermeidung von Pipeline Stalls durch dynamische Zuordnung der Befehle Befehlsverarbeitung jetzt in 4 Schritten: Übergabe Operanden lesen Ausführung Ergebnis schreiben

53 Scoreboarding: Übergabe sub r1, r4, r0 Befehlsstrom --- Befehl 2 Befehl 1 Warteschlange Scoreboard Registerbank FU FU add r1, r2, r3 Nächsten Befehl aus Warteschlange holen und FU zuteilen, falls passende FU frei und keiner FU ein Befehl mit demselben Zielregister übergeben wurde, sonst warten Dadurch beachten von Ausgabeabhängigkeiten In-Order-Übergabe Beispiel: add r1, r2, r3 sub r1, r4, r0

54 Scoreboarding Operanden lesen add r1, r2, r3 Befehlsstrom --- Befehl 2 Befehl 1 Warteschlange Scoreboard Registerbank FU FU Operanden lesen: FUs mitteilen, dass Operanden in Registerbank bereit stehen, falls keine andere Vorgängeroperation diesen Operanden (Register) schreibt Bei Übergabe wurde festgestellt, auf welche FU gewartet werden muss RAW beachten; Beispiel: Out-of-Order Execution möglich; Beispiel: add r1, r2, r3 sub r4, r2, r1 lw r1, (r2) sub r4, r2, r1 add r5, r6, r7 sub r4, r2, r1

55 Scoreboarding - Ausführung Befehlsstrom --- Befehl 2 Befehl 1 Scoreboard Registerbank FU Warteschlange FU Ausführung: FU beginnt Verarbeitung der Operation, sobald die Operanden gelesen wurden Ende der Verarbeitung wird dem Scorboard mitgeteilt

56 Scoreboarding - Ergebnis schreiben add r1, r2, r3 Befehlsstrom --- Befehl 2 Befehl 1 Scoreboard Registerbank FU Warteschlange FU sub r2, r4, r0 Ergebnis schreiben: Scoreboard erlaubt FU Ergebnis in Zielregister zu schreiben, falls keine andere Operation in einer FU auf diesen Operanden wartet (WAR beachten). Beispiel lw r3,(r5) add r1, r2, r3 sub r2, r4, r0

57 Scoreboarding Befehlsstrom --- Befehl 2 Befehl 1 Warteschlange Scoreboard Registerbank FU FU Zur einfachen Implementierung in HW existieren Tabellen im Scoreboard über: Befehlsstatus: Phase in der sich jeder Befehl befindet Status jeder FU: Busy, ausgeführte Operation, Quell- /Zielregisternummer, FUs die Quellregister berechnen, Status beim Lesen der Operanden Registerstatus: Für jedes Register r: FU, die r als Zielregister hat

58 Beispiel für statische Befehlsplanung (VLIW Prozessor) Program Memory Op A Op B Op C Op D FE FE-Reg 1 FE-Reg 2 FE-Reg 3 FE-Reg 4 Op A Op B Op C Op D DE EX Register File DE-Reg 1 DE-Reg 2 DE-Reg 3 DE-Reg 4 opl opr opl opr opl opr opl opr EU Result 1 EU Result 2 EU Result 3 EU Result 4 WB-Reg 1 WB-Reg 2 WB-Reg 3 WB-Reg 4 WB Slot 1 Slot 2 Slot 3 Slot 4

59 Prinzip der statischen Ablaufplanung Compiler parallelisiert die Operationen Operationen ohne gegenseitige Datenabhängigkeiten werden zu einer Instruktion zusammengefasst. Problem: Nicht alle Abhängigkeiten, die zur Ausführungszeit leicht erkannt werden können, können zur Übersetzungszeit erkannt werden Beispiel: Können Speicheroperationen parallelisiert werden?... // in r1 und r2 wurden Adresswerte berechnet store r0 -> [r1] load [r2] -> r3 Ausführung in HW Parallelisierung durch Compiler store r0 -> [r1] Wert von r1 bekannt store r0 -> [r1] Wert von r1unbekannt load [r2] -> r3 Wert von r2 bekannt load [r2] -> r3 Wert von r2 unbekannt r1 ¹ r2, dann Parallelisierung möglich, sonst nicht Für Parallelisierung muss Compiler beweisen, dass r1 ¹ r2; Falls das nicht möglich, dann keine Parallelisierung

60 Pipeline Befehlspipeline Pipeline in Ausführungseinheiten WB EX DE FE Gleitkommazahl 1 Gleitkommazahl 2 FE Programmspeicher Fetch-Register S1 Exponent Angleichen Zahl 1 Exponent Angleichen Zahl 2 DE EX Decode-Register ALU Registerbank S2 Add Ergebnis Decode-Register S3 Normalisieren WB

61 FE DE EX WB Befehlspipeline WB EX DE FE Programmspeicher Ressourcenkonflikte in Fetch-Register Decode-Register ALU Decode-Register Befehlspipeline Registerbank Konflikte in Befehlspipeline Ressourcenkonflikte Datenkonflikte Steuerkonflikte Behandlung der Konflikte: hardwarebasiert: Entstandene Konflikte werden durch HW aufgelöst. Oft mit Leistungseinbußen verbunden. Konflikte bleiben aber vor dem Programmierer verborgen. softwarebasiert: Konflikte sind sichtbar für Programmierer/Compiler. Behandlung obliegt Programmierer/Compiler Dadurch komplexeres Programmiermodell

62 Beispiele zur Behandlung von Ressourcenkonflikten Princeton-Architektur (von- Neumann-Architektur) CPU Programm- und Datenspeicher Lösung: Harvard-Architektur Problem FE DE EX WB Befehl holen erfordert Zugriff auf Programmspeicher Lade-/Speicher-Befehl führt Zugriff auf Datenspeicher aus. CPU Programmspeicher Datenspeicher Weiterer Vorteil: Programm- und Datenspeicher können unterschiedliche Wortbreiten haben. Kann vorteilhaft zur effizienten Kodierung des Programms sein.

63 Behandlung von Datenkonflikten Hardwarebasiert: Bypass oder Dynamische Planung der Operationen Softwarebasiert für statisch geplante Programme: Ablaufplanung anpassen Instruktion 1 Instruktion 2 Instruktion 3 FE DE EX WB Register File Read Port Read Port Read Port Read Port Fetch-Register Opc Src1 Src2 Dst Ld-Sig Bypass Bypass Bypass Bypass Decode-Register Opc Val1 Dst Val2 Ld-Sig EU 1 Program Memory... Operation for slot 1 Operation for slot 4 Operation for slot 1... Operation for slot 4 Operation for slot 1... Operation for slot 4... Fetch-Register Opc Src1 Src2 Dst Ld-Sig Decode-Register Opc Val1 Dst Val2 Ld-Sig EU 4 Write-Back-Register Write-Back-Register Result Dst Ld-Sig Result Dst Ld-Sig Slot 1 Slot 4 Control Logic (Ctrl) MAR PC MBR Abstand zwischen Schreiboperation auf ein Register und Lesen muss in der Architektur links ohne Bypass mindestens zwei Takte betragen. Statt add r2,r3->r1 sub r2,r4->r3 mov r1->r9 Dieser Code add r2,r3->r1 sub r2,r4->r3 nop Data Memory mov r1->r9

64 Aufbau eines Bypasses Quellregister linker Operand Slot 1 Instruktion 1 Instruktion 2 Instruktion 3 FE DE EX Register File Read Port Read Port Read Port Read Port Fetch-Register Opc Src1 Src2 Dst Ld-Sig Bypass Bypass Bypass Bypass Decode-Register Opc Val1 Dst Val2 Ld-Sig EU 1 Program Memory... Operation for slot 1 Operation for slot 4 Operation for slot 1... Operation for slot 4 Operation for slot 1... Operation for slot 4... Fetch-Register Opc Src1 Src2 Dst Ld-Sig Decode-Register Opc Val1 Dst Val2 Ld-Sig EU 4 Control Logic (Ctrl) ValEx1 ValEx2 Funktion des linken Bypasses von Slot 1: Falls src1 = DstEXi und DstExi ist gültig, dann val1:= ValEXi, sonst: Falls src1 = DstWBi, dann val1 := ValEx3 ValWBi, sonst val1 := Wert vom Leseport ValEx4 ValWb1 Val1 ValWb2 ValWb3 ValWb4 ValReadPort Encode src1=dstex1 src1=dstex2 src1=dstex3 src1=dstex4 src1=dstwb1 src1=dstwb2 src1=dstwb3 WB Write-Back-Register Write-Back-Register Result Dst Ld-Sig Result Dst Ld-Sig Slot 1 Slot 4 Data Memory PC MAR MBR Zielregister: DstEx1,, DstEx4, DstWb1, DstWB4 Werte aus der Pipeline: ValEx1,, ValEx4, ValWb1, ValWB4 src1=dstwb4

65 Behandlung von Steuerflusskonflikten 0x100 FE DE EX WB SUB ADD JMP 0x100 MUL MUL JMP 0x100 ADD SUB XOR Hier wird Sprung erkannt FE DE EX WB in Pipeline XOR NOP NOP JMP 0x100 Ausführung von ADD und SUB verhindern Problem: Berechnung eines Sprungziels erst in EX-Phase Dann sind bereits zwei Operationen nach dem Sprungbefehl in der Pipeline Hardwarebasierte Lösung: Pipeline leeren Evtl. kombiniert mit Sprungvorhersagen zur Verbesserung der Performance

66 Behandlung von Steuerflusskonflikten 0x100 FE DE EX WB OP B OP A JMP 0x100 MUL MUL JMP 0x100 OP A OP B XOR Hier wird Sprung erkannt FE DE EX WB in Pipeline; werden auch noch mit ausgeführt XOR OP B OP A JMP 0x100 OP A und OP B werden noch mit ausgeführt Problem: Berechnung eines Sprungziels erst in EX-Phase Dann sind bereits zwei Operationen nach dem Sprungbefehl in der Pipeline Softwarebasierte Lösung: Pipeline transparent Compiler muss Operationen nach dem Sprung noch nutzen.

67 Klassifizierung nach Verwendung Standardprozessoren (Universalprozessoren, GPP): Einsatz in Desktop-Rechnern Hochleistungsprozessoren Einsatz in Supercomputer (z.b. Vektorprozessoren) Aber auch hier ex. der Trend hin zu Standardprozessoren (z.b. Grafikkartenprozessoren) Digitale Signalprozessoren (DSPs): Optimiert zur Signalverarbeitung (Sprache, Bild) Mikrocontroller: Prozessor mit Speicher und Peripherie (ADC/DAC) auf einem Chip integriert Einsatz in eingebetteten Systemen mit geringer bis mittlerer Rechenleistung

68 MIKROPROZESSORARCHITEKTUREN Mikrocontroller und ADC/DAC

69 Beispiel Mikrocontroller (schematisch) Prozessor, Speicher, I/O auf einem Rechenbaustein CPU ROM/ EPROM ADC RAM DAC I/O I/O Chip

70 Beispiel i8051 Quelle: Wikipedia

71 Analog-Digitales System Analoge Spannung Analoge Spannung Quelle (z. B. Sensor) Sample / Hold A / D Digitales Verarbeitungs- System D / A Stellglied (Aktor) Prozess

72 Invertierender Operationsverstärker (OPV) OPV versucht seine Eingänge auf dem gleiche Potential zu halten (vgl. gestrichelte Linie U diff = 0) R1 befindet sich zwischen Ue und virtueller Masse; es fließt damit ein Strom von I = Ue/R1 Weil der OPV einen extrem hohen Eingangswiderstand hat, muss I auch durch R2 fließen; also Ua = -I*R2 Es ergibt sich: Ua = -Ue/R1*R2 Ist R1 variabel, dann kann Ua über R1 gesteuert werden.

73 D / A- Umsetzer in CMOS-Logik (Summation gewichteter Ströme) U ref 2R 4R 8R 16R Z Z 3 2 Z Z 1 0 R Invertierender Operationsverstärker - + Ua Bit i der zu wandelnden Zahl steuert Schalter Z i. Durch Parallelschaltung bei geschlossenen Schaltern verringert sich der Gesamtwiderstand, dadurch steigt der Stromfluss Die Teilströme werden ohne gegenseitige Beeinflussung aufsummiert, da der Eingang des Operationsverstärkers auf der virtuellen Masse liegt. Probleme: parasitäre Kapazitäten der Schalter Genauigkeit der Widerstände!

74 Diskretisierung der Signalwerte x (n) T diskrete Zeit kontinuierliche Amplitude 0 n x (n) T 0 diskrete Zeit diskrete Amplituden n

75 Abtastprozess x (t) 0 t periodisch betätigter Schalter Eingang Ausgang f s = Abtastfrequenz T = 1 / f s = Abtast-Periode Nyquist Theorem: Um ein bandbegrenztes Analogsignal vollständig wiederherzustellen, muss f s > 2 f max sein, wobei f max maximale Frequenz im Eingangssignal.

76 Abtast-und Halteglieder (Prinzip) Eingangsspannung U e + - Schalter + - Ausgangsspannung U a Nicht-invertierender Operationsverstärker In Schalter p n Out Schalter Schaltsignal Schalteraufbau (Transmission Gate)

77 Typen von A / D- Umsetzern Auflösung in Bit k 10k 100k 1M 10M 100M f / Hz Wägeverfahren Kaskaden Parallelverfahren

78 A / D- Umsetzung Grundsätzlich ist diese Umsetzung wesentlich aufwändiger als die D/A- Umsetzung. Es gibt 3 grundsätzliche Verfahren: - Parallelverfahren (word at a time) - Wägeverfahren (digit at a time) - Zählverfahren (level at a time) Die Verfahren sind grundsätzlich fehlerbehaftet, da für beliebig viele analoge Werte stets nur eine endliche Anzahl diskreter Werte verfügbar ist. Daraus resultiert ein Quantisierungsfehler. Wichtig für Quantisierungsfehler: U LSB ist der Spannungsunterschied, der dem Unterschied zwischen arithmetischen null Wert auf der digitalen Seite und der 1 des niederwertigsten Bits entspricht. Für Eingangsspannung U e ist Z = U e / U LSB und zugehörige Ausgangsspannung U a = Z * U LSB Z ist also der digitalisierte Zahlenwert A / D und D / A- Wandler müssen bezüglich des Wertes von U LSB im Folgenden übereinstimmen

79 Operationsverstärker als Komparator U a U 1 + U a max U 2 - U a U 2 U1 Operationsverstärker als Komparator U a min Übertragungskennlinie

80 Paralleler A / D- Umsetzer (3 Bit) 7 U U LSB ref R /2 Z = Ue / U LSB = 7 Ue/U ref = Z max Ue / U ref U e = 3 U LSB 13/2 U Ue LSB R 11/2 U LSB R 9/2 U LSB R 7/2 U LSB R 5/2 U LSB R 3/2 U LSB R ½ U LSB ½ R D C1 1D C1 1D C1 1D C1 1D C1 1D C1 1D C1 clock Q Q Q Q Q Q Q x7 x6 x5 x4 x3 x2 x1 Prioritätsdekoder Z2 Z1 Z0

81 Funktion des Parallelen A / D- Wandlers Entsprechend der Anzahl k der Bits-Stufen (2**3 = 8 bei 3 Bits) werden (k-1) Referenzwerte für die jeweilige Spannung erzeugt, die einer Bitkombination entsprechen soll. Die tatsächliche Eingangsspannung wird parallel mit allen diesen Referenzwerten verglichen. Die Operationsverstärker als Komparatoren liefern überall dort eine 1, wo der Eingangswert höher als der Referenzwert ist. Die Ausgaben der Komparatoren werden jeweils digital gespeichert. Ein spezieller (Priority-) Encoder erzeugt den digitalen Wert, der dem höchsten 1 -Wert am Eingang entspricht. Vorteil: schnell Nachteil: teuer. Bei n Ausgangsbits werden k-1 = (2 **n) 1 Komparatoren benötigt. Bei 16 Bit wären das z. B Komparatoren bzw. Flip-Flops!

82 Kaskaden-Wandler U ref Abtast- Halteglied 5-Bit-AD- Wandler 1 (parallel) 5-Bit-DA- Wandler + x32 5-Bit-AD- Wandler 2 (parallel) z 9 z 5 z 4 z 0 Zuerst obere 5 Bit wandeln (U LSB ist hier 32 x U LSB von Wandler 2) Zugehörige Analogspannung mit DA-Wandler erzeugen und von Eingangsspannung abziehen. Dann die verbleibende Spannung in die unteren 5 Bit umwandeln.

83 A/ D- Wandler nach dem Wägeverfahren Ue Abtast- und Halteglied + - D Sukzessives Approximationsregister Z U(z) DA- Umsetzer Z Taktgenerator U ref Bits im Approximationsregister Z werden schrittweise wie folgt bestimmt: Z := 0 Höchstwertiges Bit wird probehalber auf 1 gesetzt. Ist U(z) dann größer U e, dann wird es wieder gelöscht, sonst bleibt es gesetzt Dieser Vorgang wird dann mit dem nächst niedrigeren Bit wiederholt.

84 A / D-Wandler nach dem Zählverfahren Ue Abtast- und Halteglied + - U /D Vorwärts- / Rückwärts- Zähler U(z) DA- Umsetzer Z Taktgenerator U ref Komparator vergleicht Wert des Zählers mit Wert des Haltegliedes. Zähler wird dann entweder hoch oder runter gezählt. Konsequenz: Digitaler Wert pendelt um den analogen Wert.

85 MIKROPROZESSORARCHITEKTUREN Digitale Signalprozessoren

86 Beispiele für typische Abtastraten 25 Bit 20 Bit 15 Bit Hifi Audio Annahmen: Abtastrate von 0.5 MHz produziert Werte pro Sekunde. Prozessor hat 40 MHz Takt und CPI-Wert von 4 Verarbeitung der Wert erfolgt in einer Schleife (1 Wert pro Iteration) Konsequenz: Prozessor verarbeitet ca. 10 Mio Befehle pro Sekunde Je Schleifendurchlauf können nur 20 Befehle verarbeitet werden (einschl. Speicherzugriff, arithmtisch/logische Befehle und Steuerflussoperationen). 10 Bit 5 Bit Steuerung High Speed Modem Radar 10 KHz 100 KHz 1 MHz 10 MHz 100 MHz

87 Typische Signalverarbeitungsaufgaben FIR-Filter (y i Ausgaben, x i Eingaben, a k Koeffizienten): N 1 yn ( ) a x k 0 IIR-Filter: k n k y = 0; x[n % N] = neuerwert; for(k=0; k < N; k++) y = y + a[k] * x[(n-k)%n] n++; N 1 N 1 yn ( ) a x b y k n k k n k k 0 k 1 Multiplizieren und Akkumulieren Zwei Speicherzugriffe Ringpuffer DCT-II: N 1 1 yn ( ) x cos k n, n 0,, N 1 k k 0 N 2

88 Merkmale eines DSPs Multiplikation und Akkumulation in einem Takt (MAC-Einheit) Schneller Speicherzugriff in einem Takt (Harvard-Architektur, oft zwei separate Datenspeicher) Spezielle Adressierungsarten: Adressgenerierung parallel zur Datenverarbeitung Registerindirekte Adressierung mit Post-Inkrement/Dekrement Zirkulare Adressierung (Modulo) Befehle zur Schleifenkontrolle (Testen eines Zähler, Dekrementieren des Zählers und Springen in einem Befehl) Gutes Verhältnis zwischen Rechenleistung und Energieverbrauch (MIPS/Watt)

89 Separate Adressgenerierung für Speicher Separater Programmbus Drei separate Datenbusse MAC-Einheit Quelle: TMS320C54x DSP Reference Set, Volume 1

90 Beispiel Beispiel für FIR-Filter Implementierung auf einem TMS320C54: Repeat Block of Instructions ab der übernächsten Instruktion Block Repeat Counter STM #m,brc ; Hardwareschleifenzähler mit m initialisieren RPTBD (label1 1) ; Schleifenkopf legt auch Ende der Schleife fest STM #(N+1),BK ; Ringpuffergröße in Circular Buffer Size -Register laden label0: LD *AR6+,A ; Eingabe nach A holen, dabei Adressregister AR6 erhöhen STL A,*AR4+% ; niederwertiges Wort von A an letzte Position im Ringpuffer ; schreiben, dabei AR4 inkrementieren und zirkulare ; Adressierung verwenden RPTZ B,#N ; Schleifenzähler für Einzelbefehl laden, N Iterationen MAC *AR4+0%, *AR5+0%, A STH A,*AR7+ ; Ergebnis in höherwertigem Wort von A speichern label1: ; Label markiert Ende der Hardwareschleife Letzten N Eingaben Koeffizienten

91 Weitere DSPs Konventionelle DSPs im unteren Leistungsbereich (ADSP21xx, TMS320C2xxx, DSP560xx) Taktfrequenzen zwischen 20 und 50 MHz Anwendung z.b. Anrufbeantworter Mitteler Leistungsbereich (DSP563xx, TMS320C54x) Takt: MHz Tiefere Befehlspipeline, Barrel-Shifter, Befehls-Cache High-Performance durch: Zusätzliche parallele Einheiten (Multiplizierer, Addierer), bis hin zu VLIW-Architekturen (TMS320C6xxx, TriCore von Infineon, CARMEL DSP) Multi-Core-Architekturen (Multimedia-Video-Prozessor TMS 320C8x)

92 Beispiel: Motorola DSP56000 Unterer Leistungsbereich

93 Beispiel: TMS320C203 Unterer Leistungsbereich

94 Beispiel: TMS320C241 Unterer Leistungsbereich

95 Beispiel: TMS320C32 CPU als Blockdiagramm Unterer bis mittlerer Leistungsbereich

96 Beispiel: TMS320C6201 CPU Oberer Leistungsbereich

97 Beispiel: TMS320C80 32-Bit DSPs (PP) RISC Master Processor (MP) Oberer Leistungsbereich

98 MIKROPROZESSORARCHITEKTUREN MIMD-Architekturenoren

99 MI-Architekturen mit gemeinsamem Speicher (Multiprozessor) CPU CPU CPU CPU Verbindungsnetzwerk (Bus, Crossbar) Cache Cache Gemeinsamer Speicher Verbindungsnetzwerk (Bus, Crossbar) Gemeinsamer Speicher Uniform Memory Access (UMA): global eindeutig adressierbarer Speicher global erreichbar nicht durch Prozessoren partitioniert Cache-Coherent Uniform Memory Access (CC-UMA): global eindeutig adressierbarer Speicher global erreichbar nicht durch Prozessoren partitioniert Cache verringert Zugriffe auf gemeinsamen Speicher Problem: Caches müssen konsistent gehalten werden.

100 MI-Architekturen mit gemeinsamem verteilten Speicher CPU CPU CPU CPU Cache Cache Speicher Speicher Verbindungsnetzwerk (Bus, Crossbar) Speicher Speicher Verbindungsnetzwerk (Bus, Crossbar) Non-Uniform Memory Access (NUMA): global eindeutig adressierbarer Speicher Lokaler Speicher schneller erreichbar als entfernter Speicher Cache-Coherent Uniform Memory Access (CC-NUMA): global eindeutig adressierbarer Speicher global erreichbar durch Prozessoren partitioniert

101 MI-Architekturen mit verteiltem Speicher (Multicomputer) Nachrichten- Transportsystem CPU CPU Speicher Speicher Kein globaler Adressraum Jede CPU hat nur Zugriff auf den ihr zugeordneten Speicher Kommunikation zwischen CPUs über Nachrichten-Transportsystem Zugriff auf Speicher anderer CPUs nur durch Senden/Empfangen von Nachrichten möglich Network of Workstations (NOW) und Cluster of Workstations (COW) können auch zu den Multicomputer gezählt werden; allerding mit noch weitreichenderer Autonomie der lokalen Knoten)

102 HARDWAREBASIERT REKONFIGURIERBARE RECHENBAUSSTEINE

103 Klassifikation Feldprogrammierbare Schaltkreise Programmierbare Speicher Programmierbare Logikschaltkreise Programmable Logic Devices (PLD) Field Programmable Gate Arrays (FPGA) Simple PLD (SPLD) Complex (CPLD) (nächste Folien) PLA a a b b & & & & x UND + ODER-Matrix konfigurierbar y PAL a a b b & & & & UND-Matrix konfigurierbar x y Mehrere PLAs und PALs auf einem Chip, die über ein Schaltnetzwerk verbunden sind. Evtl. kombiniert mit Flip-Flops. Einsatz z.b. für Schaltwerke, Decoder, kleine steuerflussdominierte Anwendungen. Einsatz z.b. für Schaltwerke, Decoder

104 Prinzipieller Aufbau eines FPGAs Verbindung zu Sonderleitungen (Steuerleitungen zur Konfiguration, Clock) CLB CLB CLB CLB Zur Verbindung der CLBs CLB CLB CLB CLB Schaltmatrix CLB CLB CLB CLB I/O-Block CLB CLB CLB CLB

105 Schaltmatrix (schematisch) CLB Pass-Transistor, programmiert über S- RAM Zelle S Schalterelement (Crossbar)

106 CLB im Virtex-6 FPGA Verbindungsnetzwerk Carry out Carry out CLB Slice 1 Slice 0 Carry in Carry in Beispiel für Virtex-6 FPGA Jedes L-Slice enthält: 4 Lookup-Tabellen 8 Speicherelemente Multiplexer Carry-Logik Dadurch Bereitstellung von: Logischen Funktionen Arithmetischen Funktionen ROM-Funktionalität M-Slice enthält außerdem: RAM Schieben von 32-Bit Registerwerten Jedes CLB enthält höchstens ein M-Slice

107 Verschaltung der CLBs im Virtex 6 Y X

108 L-Slice Multiplexer mit fester Konfiguration Speicherelement (konfigurierbar als D-Flip-Flop) zu Laufzeit schaltbarer Multiplexer Speicherelement (konfigurierbar als D- Flip-Flop oder D-Latch) Ergebnis O5 der Lookup-Tabelle Ergebnis O6 der Lookup-Tabelle Lookup-Tabelle

109 Lookup-Tabelle A0 A5 LUT O5 O6 S S S S S S S S S A0..A4 1 0 A5 O6 O5 Schnittstelle S S S A0..A4 Aufbau (Prinzip) Variante 1: Implementiert eine beliebige 6-stellige boolesche Funktion, Ergebnis liegt an O6 Variante 2: Implementiert zwei 5-stellige boolesche Funktionen, Ergebnis an O5 bzw. O6; Beide Funktionen haben die gleichen Eingaben A0 A4, A5 ist immer 1.

110 M-Slice Konfiguration als Lookup- Tabelle oder synchroner RAM Multiported RAM durch Nutzung mehrerer Lookup- Tabellen möglich

111 Umsetzung eines 16:1 Multiplexers in einem Slice Konfiguration als 16:1-Multiplexer Allgemeiner Aufbau Slice (vereinfacht)

112 Konfiguration eins FPGAs VHDL-Code Synthese-Compiler 1. Schritt: Flip-Flops/Latches im Design identifiziert Funktionalität auf Boolesche Funktionen abgebildet 2. Schritt: Speicherelemente und Boolesche Funktionen auf FPGA-Konfiguration abbilden FPGA- Konfiguration Konfiguration auf das Board laden. Starten

113 Aktuelle Xilinx FPGA-Boards Selected Xilinx High-End FPGAs Selected Xilinx Low-Cost FPGAs Family (type) Technology Core Voltage Family (line) Technology Core Voltage Virtex 4 XC4VFX60 90 nm CMOS copper process 1.2V Spartan 3A XC3S700A 90 nm CMOS copper process 1.2V Virtex 5 XC5VLX50T 65 nm CMOS copper process 1.0V Spartan 6 XC6SLX45 45 nm CMOS LP copper process 1.0V (1.2V for HP) Virtex 6 XC6VLX240T Virtex 7 XC7VX485T 40 nm CMOS copper process 28 nm CMOS HPL copper process 1.0V 1.0V Artix 7 XC7A100T 28 nm CMOS copper process 1.0V (0.9V for LP)

114 FPGA mit integrierten Hard-Cores CLB CLB CPU- Kern 1 CLB CLB CLB CLB CLB CLB Memory CLB CLB CLB CLB CLB CLB CPU- Kern 2 CLB CLB CLB CLB Memory CLB CLB

115 FPGAs mit Arithmetischen Makro- Bausteinen CLB CLB CPU- Kern 1 CLB CLB CLB CLB CLB CLB Memory Multiplizierer Floating-Point-ALU CLB CLB CPU- Kern 2 CLB CLB CLB CLB Memory CLB CLB

116 Softcore VHDL-Code Prozessor Synthese Prozessorbeschreibung wird für FPGA synthetisiert Einfache Programmierung mit evtl. vorhandenen Werkzeugen möglich Geringe Kosten bei kleinen Stückzahlen Langsamer und verbraucht mehr Strom als ASIC-Lösung

117 Ergebnisse VLIW Softcore FPGA Family Slowest Grade Maximal Frequency Fastest Grade Virtex 4 93 MHz 57% 119 MHz 62% Virtex 5 96 MHz 59% 154 MHz 80% Virtex MHz 100% 193 MHz 100% Virtex MHz 94% 197 MHz 102% Spartan 3A 70 MHz 61% 79 MHz 50% Spartan 6 82 MHz 100% 91 MHz 100% Artix MHz 139% 157 MHz 173% Als ASIC-Lösung mit 45 nm Technologie bis zu 500 MHz

118 Syntheseergebnisse bei Skalierung des VLIW Prozessors (Virtex 6)

119 Softcore mit anwendungsspezifischer HW VHDL-Code Prozessor Anwendungsspezifische Hardwarebeschreibung (z.b. VHDL) Synthese Anwendungsspezifische HW (ASP-HW) zur schnellen (hochparallelen) Berechnung Soft-Core zur Kommunikation über FPGA-Schnittstellen (Ethernet, seriell, etc.) Bereitstellung von Daten für ASP-HW Steuerung des Kontrollflusses

120 Dynamische Rekonfiguration Soft-Core Soft-Core Soft-Core ASP- HW 1 ASP- HW 2 ASP- HW 1 ASP- HW 3 ASP- HW 4 ASP- HW 3 FPGA FPGA FPGA Instanziierung der gerade benötigten HW-Erweiterungen Zeit Konfigurationsdaten müssen im Speicher des FPGA vorgehalten werden

121 Application Specific Instruction Set Processor (ASIP) Statisch: Befehlssatz des Prozessors wird zur Entwurfszeit an die Anforderungen der Anwendung angepasst Ausprägungen: Registeranzahl skalierbar Datenpfadbreite skalierbar Bereitstellung von Parallelität auf Instruktionsebene (z.b. VLIW Prozessor) Bereitstellung von Spezialbefehlen (z.b. MAC-Operation oder Gleitkommaoperationen) Dynamisch: Prozessor enthält FPGA-Strukturen Mögliche Befehlssatzerweiterungen werden zur Entwurfszeit bestimmt Benötigte Erweiterungen werden zur Laufzeit instanziiert

122 Statisch Parallelität anpassen Registerbank Slot 1 Slot 2 Registerbank Slot 1 Slot 2 Slot 3 Slot 4 2 Befehle Parallel 4 Befehle Parallel

123 Befehlssatzerweiterung im Core Programmspeicher Programmspeicher FE Fetch-Register FE Fetch-Register DE EX Decode-Register ALU WB-Register Registerbank DE EX Erweiterung Decode-Register ALU WB-Register Registerbank WB WB Integration in ALU Einfache Ablaufkontrolle Kodierung in Befehlssatz muss möglich sein Zugriff auf Operanden über vorhandene Busse möglich Zeitlicher Ablauf eingeschränkt Integration in den Core Mehr Freiheiten beim zeitlichen Ablauf Mehr Freiheiten bei der Kodierung Zugriff auf Operanden schwieriger Ablaufkontrolle schwieriger

124 Funktionserweiterung im Chip Speicher Bus Mikroprozessor I/O des Mikroprozessors Speicher Bus Memory Management Unit Mikroprozessor Co-Prozessor Co-Prozessor Chip Kommunikation über dedizierte Schnittstelle Interrupts I/O Ports des Prozessors Chip Memory-Mapped I/O MMU leitet spezielle Speicherzugriffe auf Co-Prozessor um

125 System on a Chip (SoC oder MPSoC)

126 Dynamisch rekonfigurierbare Befehlssatzerweiterung Quelle: Language-driven Exploration and Implementation of Partially Re-configurable ASIPs

127 Zusammenfassung Flexibilität und Leistungsverbrauch General Purpose Processor Digital Signal Processor ASIP Field Programmable Devices ASIC (Semi- Custom) ASIC (Full- Custom) Leistungsfähigkeit

Prozessorarchitektur. Kapitel 1 - Wiederholung. M. Schölzel

Prozessorarchitektur. Kapitel 1 - Wiederholung. M. Schölzel Prozessorarchitektur Kapitel - Wiederholung M. Schölzel Wiederholung Kombinatorische Logik: Ausgaben hängen funktional von den Eingaben ab. x x 2 x 3 z z = f (x,,x n ) z 2 z m = f m (x,,x n ) Sequentielle

Mehr

Hardware/Software-Codesign

Hardware/Software-Codesign Hardware/Software-Codesign Kapitel 3: Hardwarearchitekturen M. Schölzel Klassifizierung nach Konfigurierbarkeit Konfigurierbarkeit eines Rechenbausteins (Chips) wichtig für Anpassbarkeit an die auszuführende

Mehr

Struktur der CPU (1) Die Adress- und Datenpfad der CPU: Befehl holen. Vorlesung Rechnerarchitektur und Rechnertechnik SS Memory Adress Register

Struktur der CPU (1) Die Adress- und Datenpfad der CPU: Befehl holen. Vorlesung Rechnerarchitektur und Rechnertechnik SS Memory Adress Register Struktur der CPU (1) Die Adress- und Datenpfad der CPU: Prog. Counter Memory Adress Register Befehl holen Incrementer Main store Instruction register Op-code Address Memory Buffer Register CU Clock Control

Mehr

TECHNISCHE HOCHSCHULE NÜRNBERG GEORG SIMON OHM Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten, z.b. Befehl

Mehr

Datenpfad einer einfachen MIPS CPU

Datenpfad einer einfachen MIPS CPU Datenpfad einer einfachen MIPS CPU Zugriff auf den Datenspeicher Grundlagen der Rechnerarchitektur Prozessor 19 Betrachten nun Load und Store Word Erinnerung, Instruktionen lw und sw sind vom I Typ Format:

Mehr

Grundlagen der Informationsverarbeitung:

Grundlagen der Informationsverarbeitung: Grundlagen der Informationsverarbeitung: Befehlsverarbeitung in einem Prozessor Prof. Dr.-Ing. habil. Ulrike Lucke Durchgeführt von Prof. Dr. rer. nat. habil. Mario Schölzel Instruktionsformate in 07 Maximaler

Mehr

Grundlagen der Informationsverarbeitung:

Grundlagen der Informationsverarbeitung: Grundlagen der Informationsverarbeitung: Parallelität auf Instruktionsebene Prof. Dr.-Ing. habil. Ulrike Lucke Durchgeführt von Prof. Dr. rer. nat. habil. Mario Schölzel Maximaler Raum für Titelbild (wenn

Mehr

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen Mikroprozessoren Grundlagen Aufbau, Blockschaltbild Grundlegende Datentypen AVR-Controller Anatomie Befehlssatz Assembler Speicherzugriff Adressierungsarten Kontrollstrukturen Stack Input / Output (I/O)

Mehr

Die Mikroprogrammebene eines Rechners

Die Mikroprogrammebene eines Rechners Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten, z.b. Befehl holen Befehl dekodieren Operanden holen etc.

Mehr

Datenpfad einer einfachen MIPS CPU

Datenpfad einer einfachen MIPS CPU Datenpfad einer einfachen MIPS CPU Zugriff auf den Datenspeicher Grundlagen der Rechnerarchitektur Prozessor 19 Betrachten nun Load und Store Word Erinnerung, Instruktionen lw und sw sind vom I Typ Format:

Mehr

Mikroprozessortechnik Grundlagen 1

Mikroprozessortechnik Grundlagen 1 Grundlagen - Grundbegriffe, Aufbau, Rechnerarchitekturen, Bus, Speicher - Maschinencode, Zahlendarstellung, Datentypen - ATMELmega28 Progammierung in C - Vergleich C und C++ - Anatomie eines µc-programmes

Mehr

Grundlagen der Rechnerarchitektur

Grundlagen der Rechnerarchitektur Grundlagen der Rechnerarchitektur Prozessor Übersicht Datenpfad Control Pipelining Data Hazards Control Hazards Multiple Issue Grundlagen der Rechnerarchitektur Prozessor 2 Datenpfad einer einfachen MIPS

Mehr

Datenpfad einer einfachen MIPS CPU

Datenpfad einer einfachen MIPS CPU Datenpfad einer einfachen MIPS CPU Die Branch Instruktion beq Grundlagen der Rechnerarchitektur Prozessor 13 Betrachten nun Branch Instruktion beq Erinnerung, Branch Instruktionen beq ist vom I Typ Format:

Mehr

Name: Vorname: Matr.-Nr.: 4. a) RISC-Architekturen müssen zur Decodierung von Maschinenbefehlen stets ein mikroprogrammierbares Steuerwerk verwenden.

Name: Vorname: Matr.-Nr.: 4. a) RISC-Architekturen müssen zur Decodierung von Maschinenbefehlen stets ein mikroprogrammierbares Steuerwerk verwenden. Name: Vorname: Matr.-Nr.: 4 Aufgabe 1 (8 Punkte) Entscheiden Sie, welche der folgenden Aussagen zum Thema CISC/RISC-Prinzipien korrekt sind. a) RISC-Architekturen müssen zur Decodierung von Maschinenbefehlen

Mehr

Johann Wolfgang Goethe-Universität

Johann Wolfgang Goethe-Universität Flynn sche Klassifikation SISD (single instruction, single data stream): IS IS CU PU DS MM Mono (Mikro-)prozessoren CU: Control Unit SM: Shared Memory PU: Processor Unit IS: Instruction Stream MM: Memory

Mehr

Vorlesung Rechnerarchitektur. Einführung

Vorlesung Rechnerarchitektur. Einführung Vorlesung Rechnerarchitektur Einführung Themen der Vorlesung Die Vorlesung entwickelt an Hand von zwei Beispielen wichtige Prinzipien der Prozessorarchitektur und der Speicherarchitektur: MU0 Arm Speicher

Mehr

2.2 Rechnerorganisation: Aufbau und Funktionsweise

2.2 Rechnerorganisation: Aufbau und Funktionsweise 2.2 Rechnerorganisation: Aufbau und Funktionsweise é Hardware, Software und Firmware é grober Aufbau eines von-neumann-rechners é Arbeitsspeicher, Speicherzelle, Bit, Byte é Prozessor é grobe Arbeitsweise

Mehr

Technische Informatik 1 Übung 8 Instruktionsparallelität (Rechenübung) Andreas Tretter 8./9. Dezember Bitte immer eine Reihe freilassen

Technische Informatik 1 Übung 8 Instruktionsparallelität (Rechenübung) Andreas Tretter 8./9. Dezember Bitte immer eine Reihe freilassen Technische Informatik 1 Übung 8 Instruktionsparallelität (Rechenübung) Andreas Tretter 8./9. Dezember 2016 Bitte immer eine Reihe freilassen Ziele der Übung Verschiedene Arten von Instruktionsparallelität

Mehr

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen Mikroprozessoren Grundlagen Aufbau, Blockschaltbild Grundlegende Datentypen AVR-Controller Anatomie Befehlssatz Assembler Speicherzugriff Adressierungsarten Kontrollstrukturen Stack Input / Output (I/O)

Mehr

Prinzipieller Aufbau und Funktionsweise eines Prozessors

Prinzipieller Aufbau und Funktionsweise eines Prozessors Prinzipieller Aufbau und Funktionsweise eines Prozessors [Technische Informatik Eine Einführung] Univ.- Lehrstuhl für Technische Informatik Institut für Informatik Martin-Luther-Universität Halle-Wittenberg

Mehr

High Performance Embedded Processors

High Performance Embedded Processors High Performance Embedded Processors Matthias Schwarz Hardware-Software-Co-Design Universität Erlangen-Nürnberg martin.rustler@e-technik.stud.uni-erlangen.de matthias.schwarz@e-technik.stud.uni-erlangen.de

Mehr

Von-Neumann-Architektur

Von-Neumann-Architektur Von-Neumann-Architektur Bisher wichtig: Konstruktionsprinzip des Rechenwerkes und Leitwerkes. Neu: Größerer Arbeitsspeicher Ein- und Ausgabewerk (Peripherie) Rechenwerk (ALU) Steuerwerk (CU) Speicher...ppppp...dddddd..

Mehr

Arithmetische und Logische Einheit (ALU)

Arithmetische und Logische Einheit (ALU) Arithmetische und Logische Einheit (ALU) Enthält Blöcke für logische und arithmetische Operationen. n Bit Worte werden mit n hintereinander geschalteten 1 Bit ALUs bearbeitet. Steuerleitungen bestimmen

Mehr

Neue Prozessor-Architekturen für Desktop-PC

Neue Prozessor-Architekturen für Desktop-PC Neue Prozessor-Architekturen für Desktop-PC Bernd Däne Technische Universität Ilmenau Fakultät I/A - Institut TTI Postfach 100565, D-98684 Ilmenau Tel. 0-3677-69-1433 bdaene@theoinf.tu-ilmenau.de http://www.theoinf.tu-ilmenau.de/ra1/

Mehr

Mikroprozessor als universeller digitaler Baustein

Mikroprozessor als universeller digitaler Baustein 2. Mikroprozessor 2.1 Allgemeines Mikroprozessor als universeller digitaler Baustein Die zunehmende Integrationsdichte von elektronischen Schaltkreisen führt zwangsläufige zur Entwicklung eines universellen

Mehr

Teil 1: Digitale Logik

Teil 1: Digitale Logik Teil 1: Digitale Logik Inhalt: Boolesche Algebra kombinatorische Logik sequentielle Logik kurzer Exkurs technologische Grundlagen programmierbare logische Bausteine 1 Tri-State Ausgangslogik Ausgang eines

Mehr

CPU. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011

CPU. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011 CPU Dr.-Ing. Volkmar Sieh Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011 CPU 1/62 2012-02-29 CPU Übersicht: Pipeline-Aufbau Pipeline- Hazards CPU

Mehr

Das Prinzip an einem alltäglichen Beispiel

Das Prinzip an einem alltäglichen Beispiel 3.2 Pipelining Ziel: Performanzsteigerung é Prinzip der Fließbandverarbeitung é Probleme bei Fließbandverarbeitung BB TI I 3.2/1 Das Prinzip an einem alltäglichen Beispiel é Sie kommen aus dem Urlaub und

Mehr

Was ist die Performance Ratio?

Was ist die Performance Ratio? Was ist die Performance Ratio? Wie eben gezeigt wäre für k Pipeline Stufen und eine große Zahl an ausgeführten Instruktionen die Performance Ratio gleich k, wenn jede Pipeline Stufe dieselbe Zeit beanspruchen

Mehr

Beispiele von Branch Delay Slot Schedules

Beispiele von Branch Delay Slot Schedules Beispiele von Branch Delay Slot Schedules Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 97 Weniger

Mehr

Teil 1: Prozessorstrukturen

Teil 1: Prozessorstrukturen Teil 1: Prozessorstrukturen Inhalt: Mikroprogrammierung Assemblerprogrammierung Motorola 6809: ein einfacher 8-Bit Mikroprozessor Mikrocontroller Koprozessoren CISC- und RISC-Prozessoren Intel Pentium

Mehr

Kap 4. 4 Die Mikroprogrammebene eines Rechners

Kap 4. 4 Die Mikroprogrammebene eines Rechners 4 Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten (Befehl holen, Befehl dekodieren, Operanden holen etc.).

Mehr

2 Rechnerarchitekturen

2 Rechnerarchitekturen 2 Rechnerarchitekturen Rechnerarchitekturen Flynns Klassifikation Flynnsche Klassifikation (Flynn sche Taxonomie) 1966 entwickelt, einfaches Modell, bis heute genutzt Beschränkung der Beschreibung auf

Mehr

CPU Speicher I/O. Abbildung 11.1: Kommunikation über Busse

CPU Speicher I/O. Abbildung 11.1: Kommunikation über Busse Kapitel 11 Rechnerarchitektur 11.1 Der von-neumann-rechner Wir haben uns bisher mehr auf die logischen Bausteine konzentriert. Wir geben jetzt ein Rechnermodell an, das der physikalischen Wirklichkeit

Mehr

L3. Datenmanipulation

L3. Datenmanipulation L Datenmanipulation Aufbau eines Computers Prozessor, Arbeitsspeicher und system Maschinensprachen und Maschinenbefehle Beispiel einer vereinfachten Maschinensprache Ausführung des Programms und Befehlszyklus

Mehr

Mikroprozessoren. Aufbau und Funktionsweise. Christian Richter. Ausgewählte Themen der Multimediakommunikation SS 2005

Mikroprozessoren. Aufbau und Funktionsweise. Christian Richter. Ausgewählte Themen der Multimediakommunikation SS 2005 Mikroprozessoren Aufbau und Funktionsweise Christian Richter Ausgewählte Themen der Multimediakommunikation SS 2005 Christian Richter (TU-Berlin) Mikroprozessoren AT MMK 2005 1 / 22 Gliederung Was ist

Mehr

F Programmierbare Logikbausteine

F Programmierbare Logikbausteine 1 Einordnung Ebene 6 Problemorientierte Sprache Ebene 5 Assemblersprache F Programmierbare Logikbausteine Ebene 4 Ebene 3 Ebene 2 Ebene 1 Betriebssystem ISA (Instruction Set Architecture) Mikroarchitektur

Mehr

Kap.2 Befehlsschnittstelle. Prozessoren, externe Sicht

Kap.2 Befehlsschnittstelle. Prozessoren, externe Sicht Kap.2 Befehlsschnittstelle Prozessoren, externe Sicht 2 Befehlsschnittstelle 2.1 elementare Datentypen, Operationen 2.2 logische Speicherorganisation 2.3 Maschinenbefehlssatz 2.4 Klassifikation von Befehlssätzen

Mehr

Übungen zu Grundlagen der Rechnerarchitektur und -organisation: Bonusaufgaben Übung 8 und Präsenzaufgaben Übung 9

Übungen zu Grundlagen der Rechnerarchitektur und -organisation: Bonusaufgaben Übung 8 und Präsenzaufgaben Übung 9 Übungen zu Grundlagen der Rechnerarchitektur und -organisation: Bonusaufgaben Übung 8 und Präsenzaufgaben Übung 9 Dominik Schoenwetter Erlangen, 30. Juni 2014 Lehrstuhl für Informatik 3 (Rechnerarchitektur)

Mehr

Musterlösungen Technische Informatik 2 (T2) Prof. Dr.-Ing. D. P. F. Möller

Musterlösungen Technische Informatik 2 (T2) Prof. Dr.-Ing. D. P. F. Möller SS 2004 VAK 18.004 Musterlösungen Technische Informatik 2 (T2) Prof. Dr.-Ing. D. P. F. Möller Aufgabenblatt 2.5 Lösung 2.5.1 Befehlszähler (Program Counter, PC) enthält Adresse des nächsten auszuführenden

Mehr

DIGITALE SCHALTUNGEN II

DIGITALE SCHALTUNGEN II DIGITALE SCHALTUNGEN II 3. Sequentielle Schaltkreise 3.1 Vergleich kombinatorische sequentielle Schaltkreise 3.2 Binäre Speicherelemente 3.2.1 RS Flipflop 3.2.2 Getaktetes RS Flipflop 3.2.3 D Flipflop

Mehr

Pipelining. Die Pipelining Idee. Grundlagen der Rechnerarchitektur Prozessor 45

Pipelining. Die Pipelining Idee. Grundlagen der Rechnerarchitektur Prozessor 45 Pipelining Die Pipelining Idee Grundlagen der Rechnerarchitektur Prozessor 45 Single Cycle Performance Annahme die einzelnen Abschnitte des MIPS Instruktionszyklus benötigen folgende Ausführungszeiten:

Mehr

Fachbereich Medienproduktion

Fachbereich Medienproduktion Fachbereich Medienproduktion Herzlich willkommen zur Vorlesung im Studienfach: Grundlagen der Informatik Themenübersicht Rechnertechnik und IT Sicherheit Grundlagen der Rechnertechnik Prozessorarchitekturen

Mehr

F Programmierbare Logikbausteine

F Programmierbare Logikbausteine 1 Einordnung Ebene 6 Problemorientierte Sprache Ebene 5 Assemblersprache F Programmierbare Logikbausteine Ebene 4 Ebene 3 Ebene 2 Ebene 1 Betriebssystem ISA (Instruction Set Architecture) Mikroarchitektur

Mehr

Steuerwerk einer CPU. Einführung in die Technische Informatik Falko Dressler, Stefan Podlipnig Universität Innsbruck

Steuerwerk einer CPU. Einführung in die Technische Informatik Falko Dressler, Stefan Podlipnig Universität Innsbruck Steuerwerk einer CPU Einführung in die Technische Informatik Falko Dressler, Stefan Podlipnig Universität Innsbruck Übersicht Implementierung des Datenpfads Direkte Implementierung Mikroprogrammierung

Mehr

Computer-Architektur Ein Überblick

Computer-Architektur Ein Überblick Computer-Architektur Ein Überblick Johann Blieberger Institut für Rechnergestützte Automation Computer-Architektur Ein Überblick p.1/27 Computer-Aufbau: Motherboard Computer-Architektur Ein Überblick p.2/27

Mehr

Mikroprozessor bzw. CPU (Central Processing. - Steuerwerk (Control Unit) - Rechenwerk bzw. ALU (Arithmetic Logic Unit)

Mikroprozessor bzw. CPU (Central Processing. - Steuerwerk (Control Unit) - Rechenwerk bzw. ALU (Arithmetic Logic Unit) Der Demo-Computer besitzt einen 4Bit-Mikroprozessor. Er kann entsprechend Wörter mit einer Breite von 4 Bits in einem Schritt verarbeiten. Die einzelnen Schritte der Abarbeitung werden durch Lampen visualisiert.

Mehr

Auch hier wieder. Control. RegDst Branch MemRead MemtoReg ALUOp MemWrite ALUSrc RegWrite. Instruction[31 26] (also: das Opcode Field der Instruktion)

Auch hier wieder. Control. RegDst Branch MemRead MemtoReg ALUOp MemWrite ALUSrc RegWrite. Instruction[31 26] (also: das Opcode Field der Instruktion) Auch hier wieder Aus voriger Wahrheitstabelle lässt sich mechanisch eine kombinatorische Schaltung generieren, die wir im Folgenden mit dem Control Symbol abstrakt darstellen. Instruction[31 26] (also:

Mehr

1. Übersicht zu den Prozessorfamilien 2 2. Grundlagen der Rechnerorganisation 3

1. Übersicht zu den Prozessorfamilien 2 2. Grundlagen der Rechnerorganisation 3 1. Übersicht zu den Prozessorfamilien 2 2. Grundlagen der Rechnerorganisation 3 2.1. Aufbau eines Rechners in Ebenen 3 2.2. Die Ebene der elektronischen Bauelemente 5 2.3. Die Gatterebene 5 2.3.1 Einfache

Mehr

Der Toy Rechner Ein einfacher Mikrorechner

Der Toy Rechner Ein einfacher Mikrorechner Der Toy Rechner Ein einfacher Mikrorechner Dr. Gerald Heim Haid-und-Neu-Str. 10-14 76131 Karlsruhe 16. Mai 1995 Allgemeine Informationen 2 Quelle: Phil Kopmann, Microcoded versus Hard-Wired Logic, Byte

Mehr

Rechnernetze und Organisation

Rechnernetze und Organisation Arithmetic Logic Unit ALU Professor Dr. Johannes Horst Wolkerstorfer Cerjak, 9.2.25 RNO VO4_alu Übersicht Motivation ALU Addition Subtraktion De Morgan Shift Multiplikation Gleitkommazahlen Professor Dr.

Mehr

Rechnergrundlagen SS 2007. 11. Vorlesung

Rechnergrundlagen SS 2007. 11. Vorlesung Rechnergrundlagen SS 2007 11. Vorlesung Inhalt Evaluation der Lehre (Auswertung) Synchroner/asynchroner Systembus Kontrollfluss/Datenfluss RISC vs. CISC Speicherhierarchie Cache Lesen Schreiben Überschreiben

Mehr

Zusammenhang Interrupt, Befehlszyklus, indirekte Adressierung und Mikroprogramm [Stallings, Kap. 15, S ]

Zusammenhang Interrupt, Befehlszyklus, indirekte Adressierung und Mikroprogramm [Stallings, Kap. 15, S ] 2.1.2 Behandlung von Unterbrechungen (Interrupts) Zusammenhang Interrupt, Befehlszyklus, indirekte Adressierung und Mikroprogramm [Stallings, Kap. 15, S. 582-585] t 1 : MAR (PC) t 2 : MBR Memory[MAR] PC

Mehr

MikroController und Mikroprozessoren

MikroController und Mikroprozessoren Uwe Brinkschulte Theo Ungerer MikroController und Mikroprozessoren Mit 205 Abbildungen und 39 Tabellen Springer Inhaltsverzeichnis 1 Grundlagen 1 1.1 Mikroprozessoren, MikroController, Signalprozessoren

Mehr

EHP Einführung Projekt A

EHP Einführung Projekt A Volker Dörsing EHP Einführung Projekt A email: doersing@uni-jena.de praktische Übung www: http://users.minet.uni-jena.de/~ehp-head Vorbereitung, Durchführung, Kolloquium Infos zur Veranstaltung, Versuchsanleitung

Mehr

Teil 1: Prozessorstrukturen

Teil 1: Prozessorstrukturen Teil 1: Prozessorstrukturen Inhalt: Mikroprogrammierung Assemblerprogrammierung Motorola 6809: ein einfacher 8-Bit Mikroprozessor Mikrocontroller Koprozessoren CISC- und RISC-Prozessoren Intel Pentium

Mehr

Technische Informatik 1 - HS 2016

Technische Informatik 1 - HS 2016 Institut für Technische Informatik und Kommunikationsnetze Prof. L. Thiele Technische Informatik 1 - HS 2016 Lösungsvorschläge für Übung 8 Datum: 8. 9. 12. 2016 1 Instruktionsparallelität VLIW Gegeben

Mehr

Arbeitsfolien - Teil 4 CISC und RISC

Arbeitsfolien - Teil 4 CISC und RISC Vorlesung Informationstechnische Systeme zur Signal- und Wissensverarbeitung PD Dr.-Ing. Gerhard Staude Arbeitsfolien - Teil 4 CISC und RISC Institut für Informationstechnik Fakultät für Elektrotechnik

Mehr

Verlustleistungsreduzierung in Datenpfaden

Verlustleistungsreduzierung in Datenpfaden Verlustleistungsreduzierung in Datenpfaden F. Grassert, F. Sill, D. Timmermann Inhalt Motivation Analyse der Ausgangssituation Verlustleistung in der Schaltungstechnik Selbstgetaktete dynamische Logiken

Mehr

Mikrocomputertechnik. Thema: Der Aufbau des XC888-Mikrocontrollers -Teil 1 -

Mikrocomputertechnik. Thema: Der Aufbau des XC888-Mikrocontrollers -Teil 1 - Mikrocomputertechnik Thema: Der Aufbau des XC888-Mikrocontrollers -Teil 1 - Mikroprozessor-Achritekturen Folie 2 Mikroprozessor-Achritekturen Klassifizierung anhand Wortbreite CPU-Architektur und Busleitungen

Mehr

CPU, GPU und FPGA. CPU, GPU und FPGA Maximilian Bandle, Bianca Forkel 21. November 2017

CPU, GPU und FPGA. CPU, GPU und FPGA Maximilian Bandle, Bianca Forkel 21. November 2017 CPU, GPU und FPGA, Bianca Forkel 21. November 2017 CPU, GPU und FPGA Inhalt CPU: Central Processing Unit GPU: Graphical Processing Unit FPGA: Field Programmable Gate Array 2 CPU Central Processing Unit

Mehr

Rechner Architektur. Martin Gülck

Rechner Architektur. Martin Gülck Rechner Architektur Martin Gülck Grundlage Jeder Rechner wird aus einzelnen Komponenten zusammengesetzt Sie werden auf dem Mainboard zusammengefügt (dt.: Hauptplatine) Mainboard wird auch als Motherboard

Mehr

Teil 2: Rechnerorganisation

Teil 2: Rechnerorganisation Teil 2: Rechnerorganisation Inhalt: Zahlendarstellungen Rechnerarithmetik schrittweiser Entwurf eines hypothetischen Prozessors mit Daten-, Adreß- und Kontrollpfad Speicherorganisation Mikroprogrammierung

Mehr

Instruktionssatz-Architektur

Instruktionssatz-Architektur Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2005/2006 Übersicht 1 Einleitung 2 Bestandteile der ISA 3 CISC / RISC Übersicht 1 Einleitung 2 Bestandteile

Mehr

Teil VIII Von Neumann Rechner 1

Teil VIII Von Neumann Rechner 1 Teil VIII Von Neumann Rechner 1 Grundlegende Architektur Zentraleinheit: Central Processing Unit (CPU) Ausführen von Befehlen und Ablaufsteuerung Speicher: Memory Ablage von Daten und Programmen Read Only

Mehr

Software ubiquitärer Systeme

Software ubiquitärer Systeme Software ubiquitärer Systeme Übung 2: Speicherarchitekturen in Mikrocontrollern und AOStuBS Christoph Borchert Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund http://ess.cs.uni-dortmund.de/~chb/

Mehr

Architektur von Parallelrechnern 50

Architektur von Parallelrechnern 50 Architektur von Parallelrechnern 50 Rechenintensive parallele Anwendungen können nicht sinnvoll ohne Kenntnis der zugrundeliegenden Architektur erstellt werden. Deswegen ist die Wahl einer geeigneten Architektur

Mehr

Aufbau eines Taschenrechners

Aufbau eines Taschenrechners siehe Skizze Aufbau einer Waage siehe Skizze Speichermöglichkeit Aufbau eines Taschenrechners Speichermöglichkeit Adressbus 65536 (2 16 ) (2 wegen der Zustände =aus und 1=an) => 65536 Möglichkeiten =>

Mehr

9. Assembler: Der Prozessor Motorola 68000

9. Assembler: Der Prozessor Motorola 68000 9.1 Architektur des Prozessors M 68000 9.2 Adressierungsarten des M 68000 9-1 9.1 Beschreibung des Prozessors M 68000 Charakteristische Daten des 56 Maschinenbefehle 14 Adressierungsarten Zweiadressmaschine

Mehr

nutzt heute Diese Prinzipien werden wir im Kapitel 3 behandelt Lehrstuhl für Informatik 3 - D. Fey Vorlesung GRa - SS

nutzt heute Diese Prinzipien werden wir im Kapitel 3 behandelt Lehrstuhl für Informatik 3 - D. Fey Vorlesung GRa - SS 3.1 Einführung (1) Nahezu jeder Prozessor in einem Desktop-Rechner (der auf oder unter dem Tisch steht) und in einem Server- Rechner (auf dem man sich von der Ferne einloggt und dort rechnet) nutzt heute

Mehr

Technische Informatik - Eine Einführung

Technische Informatik - Eine Einführung Martin-Luther-Universität Halle-Wittenberg Fachbereich Mathematik und Informatik Lehrstuhl für Technische Informatik Prof. P. Molitor Technische Informatik - Eine Einführung Rechnerarchitektur Aufgabe

Mehr

H E F B G D. C. DLX Rechnerkern

H E F B G D. C. DLX Rechnerkern C. DLX Rechnerkern C.1. Einordnung DLX Architektur und Konzepte: Einfache "Gesamtzyklus"-DLX Maschine (non-pipelined), Verarbeitungsschritte einer Instruktion, Taktverhalten im Rechner, RISC & CISC...

Mehr

Grundlagen - Grundbegriffe, Aufbau, Rechnerarchitekturen, Bus, Speicher - Maschinencode, Zahlendarstellung, Datentypen - ATMELmega128

Grundlagen - Grundbegriffe, Aufbau, Rechnerarchitekturen, Bus, Speicher - Maschinencode, Zahlendarstellung, Datentypen - ATMELmega128 Grundlagen - Grundbegriffe, Aufbau, Rechnerarchitekturen, Bus, Speicher - Maschinencode, Zahlendarstellung, Datentypen - ATMELmega128 Progammierung in C - Vergleich C und C++ - Anatomie eines µc-programmes

Mehr

Rechnergrundlagen SS Vorlesung

Rechnergrundlagen SS Vorlesung Rechnergrundlagen SS 2007 8. Vorlesung Inhalt Gleitkomma-Darstellung Normalisierte Darstellung Denormalisierte Darstellung Rechnerarchitekturen Von Neumann-Architektur Harvard-Architektur Rechenwerk (ALU)

Mehr

Programmierbare Logik CPLDs. Studienprojekt B Tammo van Lessen

Programmierbare Logik CPLDs. Studienprojekt B Tammo van Lessen Programmierbare Logik CPLDs Studienprojekt B Tammo van Lessen Gliederung Programmierbare Logik Verschiedene Typen Speichertechnologie Komplexe Programmierbare Logik System On a Chip Motivation Warum Programmierbare

Mehr

Helmut Bähring. Mikrorechner Technik. Übungen und Lösungen. Mit 78 Abbildungen und CD-ROM. Springer

Helmut Bähring. Mikrorechner Technik. Übungen und Lösungen. Mit 78 Abbildungen und CD-ROM. Springer Helmut Bähring Mikrorechner Technik Übungen und Lösungen Mit 78 Abbildungen und CD-ROM Springer Inhaltsverzeichnis Vorwort : VII I. Übungen zu Band 1 1 1.1 Grundlagen 1 Aufgabe 1: Zu den Maßeinheiten Kilo,

Mehr

Proseminar Rechnerarchitekturen. Parallelcomputer: Multiprozessorsysteme

Proseminar Rechnerarchitekturen. Parallelcomputer: Multiprozessorsysteme wwwnet-texde Proseminar Rechnerarchitekturen Parallelcomputer: Multiprozessorsysteme Stefan Schumacher, , PGP Key http://wwwnet-texde/uni Id: mps-folientex,v

Mehr

Einführung (1) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München

Einführung (1) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München Einführung (1) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München Einführung (2) Architektur des Haswell- Prozessors (aus c t) Einführung

Mehr

Teil 1: Prozessorstrukturen

Teil 1: Prozessorstrukturen Teil 1: Prozessorstrukturen Inhalt: Mikroprogrammierung Assemblerprogrammierung Motorola 6809: ein einfacher 8-Bit Mikroprozessor Mikrocontroller Koprozessoren CISC- und RISC-Prozessoren Intel Pentium

Mehr

Ein Vortrag von Kamal Laghmari im Fach: Technische Informatik

Ein Vortrag von Kamal Laghmari im Fach: Technische Informatik Vortrag über FPAA`s Ein Vortrag von im Fach: Technische Informatik Inhalt o Einführung in FPAA`s o Funktionsweise o Architektur o Switched Capacity (SC) o Entwicklungsmethoden o Anwendungsgebiete oausblick

Mehr

Systeme 1: Architektur

Systeme 1: Architektur slide 1 Vorlesung Systeme 1: Architektur Prof. Dr. Ulrich Ultes-Nitsche Forschungsgruppe Departement für Informatik Universität Freiburg slide 2 Prüfung 18. Februar 2004 8h00-11h40 13h00-18h20 20 Minuten

Mehr

Prinzipien und Komponenten eingebetteter Systeme

Prinzipien und Komponenten eingebetteter Systeme 1 Prinzipen und Komponenten Eingebetteter Systeme (PKES) (2) Mikrocontroller I Sebastian Zug Arbeitsgruppe: Embedded Smart Systems 2 Veranstaltungslandkarte Fehlertoleranz, Softwareentwicklung Mikrocontroller

Mehr

Grundlagen der Rechnerarchitektur

Grundlagen der Rechnerarchitektur Grundlagen der Rechnerarchitektur Einführung Unsere erste Amtshandlung: Wir schrauben einen Rechner auf Grundlagen der Rechnerarchitektur Einführung 2 Vorlesungsinhalte Binäre Arithmetik MIPS Assembler

Mehr

Vorwort Teil 1: Grundlagen 1. 1 Einleitung Grundbegriffe Einheiten Geschichte Arten von Computern 8

Vorwort Teil 1: Grundlagen 1. 1 Einleitung Grundbegriffe Einheiten Geschichte Arten von Computern 8 Inhaltsverzeichnis Vorwort Teil 1: Grundlagen 1 1 Einleitung 3 1.1 Grundbegriffe 3 1.2 Einheiten 5 1.3 Geschichte 6 1.4 Arten von Computern 8 2 Allgemeiner Aufbau eines Computersystems 15 2.1 Blockdiagramm

Mehr

Teil 1: Digitale Logik

Teil 1: Digitale Logik Teil 1: Digitale Logik Inhalt: Boolesche Algebra kombinatorische Logik sequentielle Logik kurzer Exkurs technologische Grundlagen programmierbare logische Bausteine 1 Tri-State Ausgangslogik Ausgang eines

Mehr

Hardware Programmierbare Logik

Hardware Programmierbare Logik Hardware Programmierbare Logik Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2010/2011 Hardware Programmierbare Logik 1/23

Mehr

Tutorium Rechnerorganisation

Tutorium Rechnerorganisation Woche 3 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Mehr

Mikrocontroller und Mikroprozessoren

Mikrocontroller und Mikroprozessoren Uwe Brinkschulte Theo Ungerer Mikrocontroller und Mikroprozessoren 3. Auflage 4y Springer Inhaltsverzeichnis Vorwort Vorwort zur 2. Auflage Vorwort zur 3. Auflage Inhaltsverzeichnis VII IX XI XIII 1 Grundlagen

Mehr

System-Architektur und -Software

System-Architektur und -Software System-Architektur und -Software Sommersemester 2001 Lutz Richter Institut für Informatik Universität Zürich Obligatorische Veranstaltung des Kerngebietes System-Architektur und -Software Voraussetzungen

Mehr

Inhalt. Prozessoren. Curriculum Manfred Wilfling. 28. November HTBLA Kaindorf. M. Wilfling (HTBLA Kaindorf) CPUs 28. November / 9

Inhalt. Prozessoren. Curriculum Manfred Wilfling. 28. November HTBLA Kaindorf. M. Wilfling (HTBLA Kaindorf) CPUs 28. November / 9 Inhalt Curriculum 1.4.2 Manfred Wilfling HTBLA Kaindorf 28. November 2011 M. Wilfling (HTBLA Kaindorf) CPUs 28. November 2011 1 / 9 Begriffe CPU Zentraleinheit (Central Processing Unit) bestehend aus Rechenwerk,

Mehr

Lösungsvorschlag 9. Übung Technische Grundlagen der Informatik II Sommersemester 2009

Lösungsvorschlag 9. Übung Technische Grundlagen der Informatik II Sommersemester 2009 Fachgebiet Rechnerarchitektur Fachbereich Informatik Lösungsvorschlag 9. Übung Technische Grundlagen der Informatik II Sommersemester 2009 Aufgabe 9.1: Dinatos-Algorithmus-Analyse Die folgenden Verilog-Zeilen

Mehr

Integrierte Schaltungen

Integrierte Schaltungen Integrierte Schaltungen Klassen von Chips: SSI (Small Scale Integrated) circuit: 1 bis 10 Gatter MSI (Medium Scale Integrated) circuit: 10 bis 100 Gatter LSI (Large Scale Integrated) circuit: 100 bis 100

Mehr

Grundlagen der Rechnerarchitektur. Einführung

Grundlagen der Rechnerarchitektur. Einführung Grundlagen der Rechnerarchitektur Einführung Unsere erste Amtshandlung: Wir schrauben einen Rechner auf Grundlagen der Rechnerarchitektur Einführung 2 Vorlesungsinhalte Binäre Arithmetik MIPS Assembler

Mehr

Übungen zur Vorlesung Technische Informatik I, SS 2002 Hauck / Guenkova-Luy / Prager / Chen Übungsblatt 5 Rechenwerke / Scheduling

Übungen zur Vorlesung Technische Informatik I, SS 2002 Hauck / Guenkova-Luy / Prager / Chen Übungsblatt 5 Rechenwerke / Scheduling Übungen zur Vorlesung Technische Informatik I, SS 2002 Hauck / Guenkova-Luy / Prager / Chen Übungsblatt 5 Rechenwerke / Scheduling Aufgabe 1: Sie haben in der Vorlesung einen hypothetischen Prozessor kennen

Mehr

E Mikrocontroller-Programmierung

E Mikrocontroller-Programmierung E Mikrocontroller-Programmierung E Mikrocontroller-Programmierung E.1 Überblick Mikrocontroller-Umgebung Prozessor am Beispiel AVR-Mikrocontroller Speicher Peripherie Programmausführung Programm laden

Mehr

MikroController der 8051-Familie

MikroController der 8051-Familie i Dipl.-Ing. Roland Dilsch MikroController der 8051-Familie Aufbau, Funktion, Einsatz Vogel Buchverlag Inhaltsverzeichnis Vorwort 5 1 Was ist ein MikrocontroUer? 13 1.1 Aufbau eines Computers 13 1.2 Entstehung

Mehr

Digitale Signalprozessor - Architekturen im Überblick

Digitale Signalprozessor - Architekturen im Überblick Fakultät Informatik Institut für technische Informatik, Professur für VLSI-Entwurfssysteme, Diagnostik und Architektur Digitale Signalprozessor - Architekturen im Überblick Dresden, 3. Februar 2010 Dirk

Mehr

1. Übersicht zu den Prozessorfamilien 2 2. Grundlagen der Rechnerorganisation 3

1. Übersicht zu den Prozessorfamilien 2 2. Grundlagen der Rechnerorganisation 3 1. Übersicht zu den Prozessorfamilien 2 2. Grundlagen der Rechnerorganisation 3 2.1. Aufbau eines Rechners in Ebenen 3 2.2. Die Ebene der elektronischen Bauelemente 5 2.3. Die Gatterebene 5 2.3.1 Einfache

Mehr

Mikrocomputertechnik

Mikrocomputertechnik Mikrocomputertechnik Bernd-Dieter Schaaf Mit Mikrocontrollern der Familie 8051 ISBN 3-446-40017-6 Leseprobe Weitere Informationen oder Bestellungen unter http://www.hanser.de/3-446-40017-6 sowie im Buchhandel

Mehr

Rechnernetze und Organisation

Rechnernetze und Organisation RISC 1 Übersicht Motivation RISC-Merkmale RISC-Instruktionsformat Pipelining Sparc, MIPS, Arm, PowerPC 2 Motivation Warum RISC Compiler nutzen komplexe CISC-Instruktionen kaum Nur 80% der Instruktionen

Mehr