Teil 2: Rechnerorganisation

Ähnliche Dokumente
Kontrollpfad der hypothetischen CPU

Teil 2: Rechnerorganisation

Kontrollpfad der hypothetischen CPU

F Ein einfacher Modellprozessor

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

H Hypothetischer Prozessor

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

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

Prinzipieller Aufbau und Funktionsweise eines Prozessors


9. Assembler: Der Prozessor Motorola 68000

9. Assembler: Der Prozessor Motorola 68000

Die Mikroprogrammebene eines Rechners

Grundlagen der Rechnerarchitektur

Von-Neumann-Architektur

Datenpfad einer einfachen MIPS CPU

Datenpfad einer einfachen MIPS CPU

Tutorium Rechnerorganisation

Mikroprozessor als universeller digitaler Baustein

1 Rechnerstrukturen 1: Der Sehr Einfache Computer

Datenpfad einer einfachen MIPS CPU

2. Computer (Hardware) K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16

Rechnernetze und Organisation

Mikrocomputertechnik. Einadressmaschine

Vorlesung Rechnerarchitektur. Einführung

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

Die HAM. Die Hypothetische Akku-Maschine

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

Datenpfad einer einfachen MIPS CPU

5.1 Beschreibung des Prozessors M Programmierung in Maschinensprache. 5.1 Beschreibung des Prozessors M 68000

5. Programmierung in Maschinensprache

Kap 4. 4 Die Mikroprogrammebene eines Rechners

Informatikgrundlagen I Grundlagen der Informatik I

Carry Lookahead Adder

Der von Neumann Computer

Speichern von Zuständen

Kap.3 Mikroarchitektur. Prozessoren, interne Sicht

INFORMATIK Oberstufe. Funktionsweise eines Rechners

Informatik 12 Kapitel 3 - Funktionsweise eines Rechners

Assembler Kontrollstrukturen

4. Mikroprogrammierung (Firmware)

Teil 1: Prozessorstrukturen

Sprungbefehle und Kontroll-Strukturen

Teil VIII Von Neumann Rechner 1

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

Rechnerstrukturen 1: Der Sehr Einfache Computer

Geräteentwurf mit Mikroprozessoren 1

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

L3. Datenmanipulation

Kap.2 Befehlsschnittstelle. Prozessoren, externe Sicht

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

TI2 Übung 2. Hauptspeicher, 6809-Prozessor. 23. November 2004 (WS 2004) Andreas I. Schmied Universität Ulm Fakultät für Informatik

Rechnerorganisation. H.-D. Wuttke `

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

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

Arithmetische und Logische Einheit (ALU)

Einführung in die Informatik

Übungsblatt 7 Implementierung von Programmsteuerbefehlen in einer Befehlspipeline Abgabefrist: Mittwoch , 14:00 Uhr

4 Der Von-Neumann-Rechner als Grundkonzept für Rechnerstrukturen

32 Bit Konstanten und Adressierung. Grundlagen der Rechnerarchitektur Assembler 78

Rechnerorganisation. (10,11) Informationskodierung (12,13,14) TECHNISCHE UNIVERSITÄT ILMENAU. IHS, H.- D. Wuttke `09

RO-Tutorien 3 / 6 / 12

RISC-Prozessoren (1)

Teil 1: Prozessorstrukturen

Aufbau eines Taschenrechners

Computer-Architektur Ein Überblick

2.3 Register-Transfer-Strukturen

Praktikum Rechnerstrukturen Bogen 2

Arithmetik, Register und Speicherzugriff. Grundlagen der Rechnerarchitektur Assembler 9

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

Übung Praktische Informatik II

3. Grundlagen der Rechnerarchitektur

Daniel Betz Wintersemester 2011/12

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

Darstellung von Instruktionen. Grundlagen der Rechnerarchitektur Assembler 21

Lehrveranstaltung: PR Rechnerorganisation Blatt 8. Thomas Aichholzer

Mikrocomputertechnik 2.Mikroprozessor

Der Toy Rechner Ein einfacher Mikrorechner

Hochschule Düsseldorf University of Applied Sciences HSD RISC &CISC

Teil 1: Prozessorstrukturen

Was ist die Performance Ratio?

Arbeitsfolien - Teil 4 CISC und RISC

Rechnerarchitektur Zusammengetragen vom Marc Landolt

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

Integrierte Schaltungen

Programmieren 1 C Überblick

Technische Informatik I - HS 18

Transkript:

Teil 2: Rechnerorganisation Inhalt: Zahlendarstellungen Rechnerarithmetik schrittweiser Entwurf eines hypothetischen Prozessors mit Daten-, Adreß- und Kontrollpfad Speicherorganisation Mikroprogrammierung Entwurf einer hypothetischen CPU Prozessor = CPU ( Central Processing Unit ) Mikroprozessor = CPU auf einem Chip CPU = Steuerwerk + Rechenwerk Von Neumann Prinzip: Programme und Daten sind im gleichen Speicher E/A-Werk hier nicht weiter behandelt 2

Entwurf einer hypothetischen CPU (Forts.) Wieso zunächst Betrachtung einer hypothetischen CPU? hypothetische CPU: einfacher, übersichtlicher Aufbau aus bereits bekannten Komponenten einheitlicher Speicherzugriff kompakter Befehlssatz (ca. 25 Instruktionen) reale CPU: detaillierter Aufbau des Prozessors nicht dokumentiert verwirrende Vielzahl unterschiedlicher Speicherzugriffsmöglichkeiten sehr großer Befehlssatz (ca. 25 Instruktionen) viele neue, hier nicht betrachtete Architekturkonzepte (z.b. Instruktionspipelining, Parallelität, Out-of-Order Befehlsausführung) 3 Aufbau der hypothetischen CPU CPU besteht aus Datenpfad: Datenregister, ALU und MBR Adreßpfad: Programmzähler ( Program Counter, PC), Inkrementer und Adreßregister (MAR) Kontrollpfad: Instruktionsregister (IR), Kontrolleinheit ( Control Unit ) und Statusregister ( Condition Code Register, CCR) Speicher nicht Teil der CPU! 4 2

Speicherorganisation SRAM ( Static Random Access Memory ) mit 2 b Speicherzeilen allgemeiner Aufbau: 2 b n D-Flip-Flops je Zeile ein n-bit Wort Steuersignale E (Enable) und R/W (Read/Write) 5 RTL ( Register Transfer Language ) Arbeitsweise eines Prozessors läßt sich einfach durch Transfers von Registerinhalten beschreiben Notationen: [Di] [M(x)] [Y] [X] Beispiele: [D] [D] [D] [M(3)] [M(5)] [D] [D] [D]+ Inhalt von Datenregister D i Inhalt des Speichers M an Adresse x Transfer des Inhalts von Register X nach Register Y Registerinhalt von D nach D kopieren Speicherinhalt von Adresse 3 nach D kopieren Registerinhalt von D nach Speicheradresse 5 kopieren Registerinhalt von D inkrementieren [D] [M(AR)] Speicherinhalt von Adresse, die in einem Register AR enthalten ist, nach D kopieren RTL ist keine Programmiersprache! 6 3

Adreßpfad der hypothetischen CPU Adresse a ist eine b-bit Zahl, die die a-te Zeile eines Speichers aus 2 b Speicherzeilen auswählt jede n-bit Speicherzeile enthält eine Instruktion oder eine Zahl PC enthält die Speicheradresse der nächsten auszuführenden Instruktion Holen der nächsten Instruktion ( Fetch Phase) in RTL: FETCH: [MAR] [PC] [PC] [PC]+ [MBR] [M(MAR)] [IR] [MBR] CU [IR(Opcode)] 7 Adreßpfad der hypothetischen CPU (Forts.) Execute Phase: Ausführung der Instruktion in IR n-bit Instruktion besteht aus 8-Bit Befehlscode ( Operation Code oder Opcode ) und b-bit Adresse Ausführung jeder Instruktion unterschiedlich Beispiel: Execute Phase für die Instruktion MOVE 7,D in RTL: MOVE: [MAR] [IR(Addr)] [MBR] [M(MAR)] [D] [MBR] 8 4

Datenpfad der hypothetischen CPU n-bit ALU kann A) einstellige Operation auf Inhalt von Datenregister D ausführen (Beispiel: NOT D) B) zwei Operanden aus D und aus Speicheradresse a verknüpfen (Beispiel: ADD a,d) Auswahl der ALU-Funktion mittels Opcode und Steuerwerk Ergebnis einer arithmetischen oder logischen Operation in D Beispiel: Execute Phase für die Instruktion ADD 7,D in RTL: ADD: [MAR] [IR(Addr)] [MBR] [M(MAR)] ALU [D]; ALU [MBR] [D] ALU 9 Eine einfache n-bit ALU Arithmetische und Logische Einheit zur Addition, Multiplikation und bitweisen logischen Verknüpfung zweier n-bit Zahlen Aufbau: Auswahl von Addierer, Multiplexer oder Logikeinheit über zwei Multiplexer-Steuersignale ALU, ALU 2 5

Eine einfache n-bit ALU (Forts.) entweder die n höherwertigen oder die n niedrigwertigen Bits des 2n Bit breiten Produktes y = a b können ausgegeben werden bei Wahl von NOT= und CIN= kann Addierer auch y = a b berechnen Funktionen der Logikeinheit: F 2 F F Bedeutung y i = a i b i y i = a i + b i y i = a i b i y i = a i y i = a i y i = a i+ für i < n, y n = CIN, C = a y i = a i+ für i < n, y n = a n, C = a y i = a i für i >, y = CIN, C = a n Eine einfache n-bit ALU (Forts.) ALU generiert vier Statussignale: N=, wenn Ergebnis y negativ ist, d.h. wenn y n = Z=, wenn y = ist ( Zero ), d.h. wenn y n +... + y + y = V=, wenn im Addierer bei c n+ c n = ein Überlauf generiert wird ( overflow ) C=, wenn bei Addition oder Subtraktion zweier n-bit Zahlen das Carry-Bit c n+ gesetzt ist, oder: C=, wenn bei Linksschieben einer n-bit Zahl a das Bit a n = ist, bzw. wenn bei Rechtsschieben von a das Bit a = ist 2 6

Befehlssatz der hypothetischen CPU arithmetische und logische Befehle: AND a,d bitweise UND-Verknüpfung von [M(a)] und [D] OR a,d bitweise ODER-Verknüpfung von [M(a)] und [D] XOR a,d bitweise XOR-Verknüpfung von [M(a)] und [D] NOT D Negation (er-komplement) von [D] LSR D Logisches Rechtsschieben von [D], Bit nach C ASR D Arithmetisches Rechtsschieben von [D], Bit nach C ROR D Rechtsrotieren von [D], C nach Bit n, Bit nach C LSL D Logisches Linksschieben von [D], Bit n nach C ROL D Linksrotieren von [D], C nach Bit, Bit n nach C ADD a,d Addition von [M(a)] und [D] ADDC a,d Addition von [M(a)] und [D] und C SUB a,d Subtraktion [D]-[M(a)] MUL a,d Bits n,..., der Multiplikation von [M(a)] und [D] MULH a,d Bits 2n,...,n der Multiplikation von [M(a)] und [D] 3 Befehlssatz der hypothetischen CPU (Forts.) Lade- und Speicherbefehle: MOVE a,d MOVE D,a MOVE #x,d Laden von [D] mit Inhalt von Speicheradresse a Speichern von [D] in Speicheradresse a Laden einer Konstanten x in D beim Befehl MOVE #x,d befindet sich die Konstante x im Adreßfeld der Instruktion: zur Kodierung von x stehen nur b < n Bits zur Verfügung beim Transfer [D] [IR(Addr)] wird durch Ergänzung führender Bits mit Wert x b ein n-bit Operand generiert 4 7

Kontrollpfad der hypothetischen CPU fast alle Algorithmen benötigen FOR- oder WHILE-Schleifen und IF.. ELSE Verzweigungen Kontrollfluß ist datenabhängig CCR speichert Statussignale N,Z, V,C der letzten ALU-Operation Conditional Branch Befehle testen Statusbit x und verzweigen zur einer Zieladresse a, wenn das Bit x gesetzt ( Set ) oder nicht gesetzt ( Clear ) ist Beispiel: RTL-Notation für die Instruktion BCC a (BCC= Branch on Carry Clear ) IF [C]= THEN [PC] [IR(ADDR)] 5 Befehlssatz der hypothetischen CPU (Forts.) Befehle zur Steuerung des Kontrollflußes: BCC a BCS a BNE a BEQ a BPL a BMI a BVC a BVS a BGT a BLT a BRA a STOP Sprung bei C= ( Branch on Carry Clear ) Sprung bei C= ( Branch on Carry Set ) Sprung bei Z= ( Branch on Not Equal ) Sprung bei Z= ( Branch on Equal ) Sprung bei N= ( Branch on Plus ) Sprung bei N= ( Branch on Minus ) Sprung bei V= ( Branch on overflow Clear ) Sprung bei V= ( Branch on overflow Set ) Sprung bei NV+NV= ( Branch on Greater Than, signed) Sprung bei Z NV+ZNV= ( Branch on Lower Than, signed) Unbedingter Sprung Anhalten der CPU 6 8

Beispiel : Einfaches Maschinenprogramm Programmfragment in Hochsprache: int a,b,c; c = (a+b) / 2; c = abs(c); if (c > ) c = ; gleiches Programmfragment in Maschinensprache: RUN: MOVE a,d load a ADD b,d add b ASR D divide by 2 BPL POS >? NEG D s compl. ADD #,D 2 s compl. POS: MOVE D,c store c MOVE #,D load SUB c,d BPL END c >? MOVE #,D MOVE D,c store c= END: STOP 7 Beispiel 2: Berechnung von n! Programmfragment in Hochsprache: int i,n,f; f=; for (i=;i<=n;i++) f=f*i; gleiches Programmfragment in Maschinensprache: FAK: MOVE #,D load MOVE D,f store f= MOVE D,i store i= LOOP: MOVE n,d load n SUB i,d compute n i BMI END n i <? MOVE f,d load f MUL i,d compute f*i MOVE D,f store f MOVE i,d load i ADD #,D i=i+ MOVE D,i store i BRA LOOP END: STOP 8 9

Ein einfaches Steuerwerk zur Steuerung des Datenflußes zwischen den Registern der hypothetischen CPU sind viele Steuersignale nötig: ein Taktsignal Clock R für jedes Register R (z.b. aufgebaut aus pegelgesteuerten D Flip-Flops) ein Steuersignal G i für jeden Tristate-Puffer i Steuersignale E und R/W für Speicher Steuersignale ALU, ALU 2, CIN, NOT, F, F 2, F 3 für ALU (im Bild nicht dargestellt) 9 Ein einfaches Steuerwerk (Forts.) Schritt : Dekodierung der Instruktion sinnvolle Wahl von Befehlscodes für alle Instruktionen vereinfacht die Dekodierung, z.b.: xxxxx : ALU Instruktionen mit einem Operand xxxxx : ALU Instruktionen mit zwei Operanden xxxxx : MOVE Instruktionen xxxxx : Branch Instruktionen xxxxxxx : STOP 2

Ein einfaches Steuerwerk (Forts.) Schritt 2: Entwurf eines einfachen Sequencers jede Instruktion besteht aus max. 8 RTL-Schritten, z.b. ADD a,d [MAR] [PC] [PC] [PC]+ [MBR] [M(MAR)] [IR] [MBR]; CU [IR(Opcode)] [MAR] [IR(Addr)] [MBR] [M(MAR)] ALU [D]; ALU [MBR] [D] ALU für die Ausführung werden 8 Takte benötigt Sequencer generiert für jeden Takt i =,...,8 ein Signal T i 2 Ein einfaches Steuerwerk (Forts.) Schritt 3: Ermittlung der Steuersignale für Takte bis 8 Transfers und resultierende Steuersignale für die Fetch Phase: T : [MAR] [PC] G = ; Clock MAR = T 2 : [PC] [PC]+ G 2 = ; Clock PC = T 3 : [MBR] [M(MAR)] R/W = ; G 6 = ; G = ; Clock MBR = T 4 : [IR] [MBR]; CU [IR(Opcode)] G 7 = ; Clock IR = Transfers und resultierende Steuersignale für die Execute Phase aller Instruktionen mit ALU2OP= : T 5 : [MAR] [IR(Addr)] G 3 = ; Clock MAR = T 6 : [MBR] [M(MAR)] R/W = ; G 6 = ; G = ; Clock MBR = T 7 : ALU [D]; ALU [MBR] G 7 = ; G = T 8 : [D] ALU G 2 = ; Clock D = ( in T 7 zusätzliche Steuersignale für ALU nötig, abhängig von Instruktion ) 22

Ein einfaches Steuerwerk (Forts.) Transfers und resultierende Steuersignale für die Execute Phase aller Instruktionen mit ALUOP= : T 5 : ALU [D] G = T 6 : [D] ALU G 2 = ; Clock D = ( in T 5 zusätzliche Steuersignale für ALU nötig, abhängig von Instruktion ) Transfers und resultierende Steuersignale für die Execute Phase aller Instruktionen mit BRANCH= : T 5 : IF (X) THEN [PC] [IR(ADDR)] G 4 = X; Clock PC = X ( X wird in Abhängigkeit von Instruktion aus CCR bestimmt; X= bei BRA ) Transfers und Steuersignale für die Execute Phase bei STORE= : T 5 : [MBR] [D] G 9 = ; G = ; Clock MBR = T 6 : [MAR] [IR(Addr)] G 3 = ; Clock MAR = T 7 : [M(MAR)] [MBR] G 7 = ; G = ; E = 23 Ein einfaches Steuerwerk (Forts.) Schritt 4: Kombination der Steuersignale vollständige Steuersignale (Auswahl): Clock PC = T 2 + BRANCH T 5 Clock MAR = T + ALU2OP T 5 + STORE T 6 + LOAD T 5 Clock D = ALUOP T 6 + ALU2OP T 8 + LOAD T 6 + LOADC T 5 G = T ; G 2 = T 2 ; G 4 = BRANCH T 5 G 2 = ALUOP T 6 + ALU2OP T 8 R/W = T 3 + ALU2OP T 6 + LOAD T 6 CIN = (SUB +ADDC C) T 7 + (ROL + ROR) C T 5 Verkürzung der Execute Phase: CLR = ALUOP T 7 + BRANCH T 6 + LOADC T 6 24 2

Nachteile der hypothetischen CPU einzelnes Datenregister erfordert sehr häufige Speicherung von Zwischenergebnissen im RAM kein Aufruf von Unterprogrammen möglich kein Zugriff auf Komponente a[i] eines Feldes im Befehlssatz keine Hardwareunterstützung von Gleitkommazahlen und Division in ALU keine Unterstützung eines Adreßraums mit mehr als 2 b Adressen keine Unterbrechungen ( Interrupts ) möglich langsam durch getrennte Fetch und Execute Phasen aufwendig zu realisierendes Steuerwerk in Random Logic (Alternative: mikroprogrammiertes Steuerwerk) 25 3