Rechnernetze und Organisation

Ähnliche Dokumente
Rechnernetze und Organisation

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

Mikroprozessor als universeller digitaler Baustein

Hardware PCI-Bus. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

Hardware PCI-Bus. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

Rechner Architektur. Martin Gülck

Teil VIII Von Neumann Rechner 1

Datenpfad einer einfachen MIPS CPU

Johann Wolfgang Goethe-Universität

Grundlagen der Rechnerarchitektur

Datenpfad einer einfachen MIPS CPU

L3. Datenmanipulation

Arbeitsfolien - Teil 4 CISC und RISC

Mikroprozessortechnik Grundlagen 1

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

Adressierung von Speichern und Eingabe- Ausgabegeräten


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

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

Die Mikroprogrammebene eines Rechners

Pipelining. Die Pipelining Idee. Grundlagen der Rechnerarchitektur Prozessor 45

Informatik 12 Kapitel 3 - Funktionsweise eines Rechners

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

Datenpfad einer einfachen MIPS CPU

Was ist die Performance Ratio?

Computer-Architektur Ein Überblick

Rechnerarchitektur Zusammengetragen vom Marc Landolt

2.2 Rechnerorganisation: Aufbau und Funktionsweise

Technische Informatik - Eine Einführung

Arithmetische und Logische Einheit (ALU)

Prinzipieller Aufbau und Funktionsweise eines Prozessors

Das Prinzip an einem alltäglichen Beispiel

Von-Neumann-Architektur

Fachbereich Medienproduktion

Inhalt Teil 8 (PCI-Bus) aus 5. Busse und Systemstrukturen

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

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

Geräteentwurf mit Mikroprozessoren 1

Kap 4. 4 Die Mikroprogrammebene eines Rechners

Tutorium Rechnerorganisation

Lösung 5. Mikroprozessor & Eingebettete Systeme 1

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

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

Rechnerstrukturen Winter SPEICHER UND CACHE. (c) Peter Sturm, University of Trier 1

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

Software ubiquitärer Systeme

DIGITALE SCHALTUNGEN II

Mikrocomputertechnik. Einadressmaschine

Informatik I Aufbau und Funktionsweise eines Computers, abstrakte Maschinenmodelle

Informatik I Aufbau und Funktionsweise eines Computers, abstrakte Maschinenmodelle

Prinzipien und Komponenten eingebetteter Systeme

System-Architektur und -Software

Teil 1: Prozessorstrukturen

Kapitel 18. Externe Komponenten

Neue Prozessor-Architekturen für Desktop-PC

Instruktionssatz-Architektur

3. Rechnerarchitektur

Übungsklausur Mikroprozessortechnik und Eingebettete Systeme I

Grundlagen der Rechnerarchitektur

Informatikgrundlagen I Grundlagen der Informatik I

Quiz. Gegeben sei ein 16KB Cache mit 32 Byte Blockgröße. Wie verteilen sich die Bits einer 32 Bit Adresse auf: Tag Index Byte Offset.

RISC-Prozessoren (1)

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

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

Informatik I Aufbau und Funktionsweise eines Computers, abstrakte Maschinenmodelle

HD44780-LC-Display am Atmel-AVR Mikrocontroller

Tutorium Rechnerorganisation

Vorlesung: Technische Informatik 3

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

Philipp Grasl PROZESSOREN

Digitaltechnik und Rechnerstrukturen. 2. Entwurf eines einfachen Prozessors

Aufbau eines Taschenrechners

ZENTRALEINHEITEN GRUPPE

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

a. Flipflop (taktflankengesteuert) Wdh. Signalverläufe beim D-FF

Teil 2: Rechnerorganisation

IT für Führungskräfte. Zentraleinheiten Gruppe 2 - CPU 1

Ein kleines Computer-Lexikon

DIE EVOLUTION DES DRAM

Rechnernetze und Organisation

Computergrundlagen Geschichte des Computers

5 Direct Memory Access (2) 5 Direct Memory Access. 5 Direct Memory Access (3) 5 Direct Memory Access (4)

Rechnergrundlagen SS Vorlesung

Systeme 1: Architektur

Computergrundlagen Geschichte des Computers

E Mikrocontroller-Programmierung

Aufgabe 1 Entwicklung einer Virtuellen Maschine

High Performance Embedded Processors

Mikrocomputertechnik. Systembus. Ein Mikroprozessor kommuniziert über den Systembus mit Speicher und I/O

Verlustleistungsreduzierung in Datenpfaden

Cache Blöcke und Offsets

Integrierte Schaltungen

Transkript:

Fetch-Execute 1

Übersicht Motivation Modulare Computer Bussyteme Fetch and Execute Einfaches Input/Output 2

Motivation Prinzipielle Funktionsweise einer CPU Minimalistischer Prozessor 3

Komponenten eines Computers Alle Computer gleich aufgebaut Prozessor Speicher Input/Output (IO) Foto Opteronix Computer sind modular aufgebaut Komponenten Speicher Grafikarten...... hängen am Systembus Processor (CPU) Memory Systembus Input Output 4

Computer-Aufbau: PC Pentium CPU Systembus ist aufgeteilt Northbridge Schnell Für Speicher Für Grafikkarte Southbridge Langsam Für PCI-Bus Für USB-Bus Für Festplatte IDE/ATA-Bus Computer sind hierarchisch aufgebaut. Selbst Busse haben eine Hierarchie. Foto Hardwaregrundlagen.de 5

Bussyteme Grundkonzept Datenverbindung von Modulen Zwei Module können zu einem Zeitpunkt miteinander kommunizieren Zeitliche Aufteilung der Kommunikation Processor (CPU) Memory Systembus Input Output Bus Adresse Kontrolle Daten Bündel an Leitungen Unidirektional: Adressen Bidirektional: Daten d 0 d 1 d 2 d 3 d 4 d 5... d 30 d 31 GND 6

Busse Vorteile Modularer Aufbau Skalierbarkeit Wiederverwendung von Ressourcen Busleitungen Reusability ( Wiederverwendbarkeit ) z.b. Netzwerk-Chip Einheitliche Kommunikation CPU Memory Systembus Grafik Netzwerk... Nachteile Throughput Bottleneck ( Flaschenhals ) Module teilen sich Bus-Bandbreite Niedrige Taktfrequenz Alternative N-zu-N Verbindung Zu viele Leitungen Z.b. N=10 Module mit 32-Bit Bus: 10*(10-1)/2*32 = 1440 Datenleitungen Memory CPU Netzwerk Grafik 7

Bus-Timing Was wird in Timing-Diagramm dargestellt? Adressen Kontrollsignale Daten Zeitverhalten Synchrone Datenübertragung Bustakt Langsamer als Prozessortakt Bandbreite von Bussen Taktfrequenz * Busbreite 33 MHz * 32-Bit = 132 MB/s Processor (CPU) Memory Systembus Input Output Clk Addr R/W Data 1 2 3 Addr1 Addr2 Addr3 Read Read Write Instr Data Result 7.5 ns 8

Busbeispiel: PCI 32 AD 32-Bit Bus Adress- und Daten-Multiplexing 33 MHz Bustakt 132 MB/s Durchsatz Maximalwert 4 PAR C/BE Parität Buskommando Adresse, Daten PCI-Karte Idsel Devsel Stop Irdy Trdy Frame Serr Perr Kontrollsignale Gnt Req Rst Clk Reset Clock (Takt) Clk Frame AD C/BE Beispiel: Schreibzugriff Minimale Transaktion Mindestens zwei Takte» Adressierung» Datenübertragung 1 2 3 4 Adresse Daten1 Command BE1 BE2 Adressphase Datenphase Daten2 Datenphase 9

Bus-Signale Input Analoge Darstellung digitaler Information Als Spannung Ausbreitungsgeschwindigkeit 2/3 Lichtgeschwindigkeit 133 MHz: 150 cm (in 7,5 ns) 1 GHz: 20 cm (in 1 ns) Ideal t Leitung Real t RC-Effekt Output R: Resistance ( Widerstand ) C: Capacitance ( Kapazität ) R, C durch Nichtidealität der Bauteile (Transistoren, Leiterbahnen) Verzögert Signale Delay Langsamer Flankenanstieg Wärme R C 10

Digitale Signale CMOS-Technologie CMOS: Complementary Metal-Oxide Semiconductor Komplementärer Metall-Oxyd Halbleiter Logik-Pegel Hängen von Spannungsversorgung ab CMOS-Schaltungen restaurieren Signal Gängige Logikpegel (Angaben in Volt) Eingang Ausgang Foto Wikipedia/Grabert Technik CMOS 5V CMOS 2,5V CMOS 1,8V Low (VIL) High (VIH) Low (VOL) High (VOH) 1,5 3,5 0,5 4,44 0,7 1,7 0,2 2,3 0,7 1,17 0,45 1,2 11

Simple CPU Microchip PIC16F54 8-Bit Controller 768 Byte ROM Flash-Speicher 25 Byte RAM 10 MHz Clock Preis: 0.44 US$ 33 Instruktionen Foto Microchip 12

Fetch-Execute Von Neumann Architektur Einheitlicher Speicher Für Daten und Programme Fetch-and-Execute Algorithmus Sequentielle Instruktionsabarbeitung Fetch Instruktion lesen Instruktion dekodieren Operanden lesen Execute Operation ausführen Ergebnis speichern CPU Control Unit Enorme Anzahl an Instruktionen pro Sekunde (GHz) ALU Macht aus einfachen Instruktionen komplexe Software Computer Memory Fetch Execute 13

Fetch-Execute: Komponenten Was benötigt eine CPU für Fetch-Execute? Control Unit Steuert CPU Abläufe Datenübernahme von Registern Wählt Operation von ALU Instruction pointer Speicheradresse mit aktueller Instruktion Instruction register Aktuelle Instruktion Memory Address und Memory Buffer Register Speicher-Interface ALU Exekutiert Instruktionen Register / Akkumulator Mini-Speicher für Operanden und Ergebnis Control Unit Control IP Instr. pointer IR Instr. Register MAR Mem. addr. Reg. Address CPU MBR Mem. Buf. Reg. Data Memory EAX EAX EAX EAX Accumulator ALU Arithm. Logic Unit Systembus 14

Nach dem Reset Nach Reset... Stabile Versorgungsspannung Stabiler Takt... beginnt CPU Instruktionen abzuarbeiten Die erste Instruktion Liegt an fixer Adresse Meist 0x00000000 Control Unit Control IP Instr. 00000000 pointer IR Instr. Register MAR Mem. addr. Reg. Address CPU MBR Mem. Buf. Reg. Data Memory EAX EAX EAX EAX Accumulator ALU Arithm. Logic Unit Systembus Instr. 1 00000005 Instr. 0 00000000 15

Instruction Fetch Fetch = Holen aktueller Instruktion aus Speicher Instruction pointer zeigt auf aktuelle Speicheradresse 1. Speicher adressieren Memory Address Register Übernimmt Adresse von IP Lesezugriff auf Systembus 2. Wert auslesen Memory Buffer Register Übernimmt Wert ( Datum ) aus Memory Instruction Register Speichert Instruktion» Kopie von Memory Control Unit Control read IP 00000000 Instr. pointer IR Instr. Register 0 MAR Mem. 00000000 addr. Reg. Address 1. 00000000 CPU MBR Mem. Instr. Buf. Reg. 0 Data Memory Instr. 0 EAX EAX EAX EAX Accumulator ALU Arithm. Logic Unit 2. Systembus Instr. 1 00000005 00000000 16

Instruction Decode Decode Control Unit Erkennt Instruktion am Opcode Z.B. 0x05 = ADD EAX, immediate» Addiere konstanten 32- Bit Wert zu EAX Register u.u. Fetch von Operanden nötig Weiterer Speicher- Zugriff nötig Instruction Pointer Wird erhöht sobald Instruction-Fetch abgeschlossen Control Unit ADD EAX,... Control IP Instr. IP++ pointer IR Instr. 05 Register MAR Mem. addr. Reg. Address CPU MBR Mem. Buf. Reg. Data Memory EAX EAX EAX EAX Accumulator ALU Arithm. Logic Unit Systembus 17

Operand Fetch Operand Fetch Speicherzugriff ähnlich wie bei Instruction Fetch Immediate Operand Speicherzugriff Folgt immer direkt auf Instruktions- Opcode Instruction-Pointer zeigt darauf! Immer Sequentiell! Memory hat nur...... einen Adressbus... einen Datenbus Control Unit Control IP 00000001 Instr. pointer IR Instr. Register MAR Mem. 00000001 addr. Reg. Address 00000001 CPU MBR Mem. 0000008 Buf. Reg. Data Memory EAX EAX EAX EAX Accumulator ALU Arithm. Logic Unit Systembus Instr. 1 00000005 0000008 00000001 05 00000000 18

Execute Execute Control Unit ALU Wählt ALU-Operation aus Wählt Operanden aus Berechnet Operation Hier: Addition Weitere Operationen von ALUs» Add, Subtract» Increment, Decr.» AND, OR, XOR» Shift left / right» Rotate left / right Control Unit Control IP CPU Memory EAX EAX EAX EAX Instr. IP += pointer 4 Accumulator 0000010 IR Instr. Register MAR Mem. addr. Reg. Address MBR Mem. 0000008 Buf. Reg. Data ALU Arithm. Logic Unit ADD 0000018 Systembus Instr. 1 00000005 0000008 00000001 05 00000000 19

Store Result Store Ergebnis speichern Ziel: Entweder Prozessor-Register Oder Speicheradresse Load / Store Architektur Operanden müssen in Register stehen Bei Pentium nicht der Fall Ergebnis nur in Register speichern möglich Auch bei Pentium Separate Instruktionen für Memory-Zugriff (load, store) Verwenden viele Prozessoren (RISC) Beispiel: memc = mema + memb 2 Load-, 1 Store-, 1 Add- Instruktion nötig Control Unit Control IP Instr. pointer IR Instr. Register MAR Mem. addr. Reg. Address CPU MBR Mem. Buf. Reg. Data Memory EAX EAX EAX EAX Accumulator 0000010 ALU Arithm. Logic Unit 0000018 Systembus 20

Instruktionszyklus Phasen der Instruktions- Abarbeitung 1. Fetch instruction 2. Decode instruction 3. Fetch operand 4. Execute operation 5. Store result Clk Phase Instruktion dauert 1 2 3 4 Fetch Decode Operand Exec Mehrere Prozessortakte Meist 5 oder 6 Takte Memoryzugriffe bilden Flaschenhals Instruction Cycle 5 Store 21

Pre-Fetching Beschleunigt Fetch-Execute Algorihtmus Nutzt leere Buszyklen... Zyklen ohne Speicherzugriff... Zum Fetchen der nächsten Instruktion Benötigt Zusätzlichen Speicher in CPU IR Instr. Register Pre-fetch queue Fetch1 Fetch2 Exec1 Fetch3 Exec2 Pre-Fetching Parallelisiert Abarbeitung von Instruktionen Probleme Programmverzweigungen Pre-Fetch-Instruktionen müssen u.u. verworfen werden Hardware macht prinzipiell alles parallel! Fetch4 Exec3 Fetch4' Fetch5 Exec4 Exec5 22

Pipelining of Fetch/Execute Pipelining Verfünffachung des Durchsatzes Nur bei 100% Fetch1 Fetch2 Fetch3 Fetch4 Fetch5... Füllung der Pipeline Instruktionstakt = Prozessortakt Decod1 Decod2 Decod3 Decod4 Decod5 Jede Instruktion dauert fünf Takte Fünf Instruktionen in Pipe Probleme Datenabhängigkeiten Von Instruktionen Verzweigungen im Programm Memory-Flaschenhals muss durch Caches eliminiert werden Verwendung von Caches für Instruktionen und Daten Schneller Zwischenspeicher Wesentlich weniger Speicherkapazität als DRAM RISC-Prozessoren sind besser für Pipelining geeignet 1 2 3 4 5 6 7 8... Oprnd1 Oprnd2 Oprnd3 Oprnd4 Oprnd5... Exec1 Exec2 Exec3 Exec4 Exec5 Store1 Store2 Store3 Store4 23

Simple IO Memory-mapped IO Input/Output in Speicher eingeblendet Aus Softwaresicht kein Unterschied Address-Decoder Address Generiert Chip-select Signale Adressraum wird aufgeteilt CS Data Mem Systembus Address Address Decoder 7FFF 0000 CS Chip Select IO Address Data Input Output 80ff 8000 CPU benötigt Keine zusätzlichen IO- Instruktionen IO-Module benötigen Datenregister Kontrollregister Statusregister Not Used IO 32K RAM FFFF 8100 80ff 8000 7FFF 0000 24

Simple IO: Beispiel mit PIC 16F54 Memory-mapped IO D[0] D Q Pin RB0 D[1] D Q Pin RB1 D[2] D Q Pin RB2... Pin RB7 D[7] D Q Write_PortB PIC 16F54 Timing Diagram Write_PortB D[7:0] RB[7:0] RB[7] A5 IO-Programmierung A5 BCF PORTB, 7 Bit Clear on PORTB in Bit 7 Bit-7 in Register PortB wird 0 Output-Pin RB7 wird LOW MOVLW H`A5` MOVWF Foto Microchip PORTB Move literal A5 to W-register Move W-register to PortB RB0 = 1, RB1 = 0, RB2 = 1, RB3 = 0, RB4 = 0, RB5 =1, RB6 = 0, RB7 = 1 25

Zusammenfassung Bussysteme Ermöglichen modularen Aufbau Von Computern Prozessoren arbeiten einfach Fetch-Execute Algorithmus Input / Output Mit memory-mapped IO möglich Literatur: Rob Williams, Computer Systems Architecture, Addision-Wesley, 2001: Kapitel 3. 26