3. Rechnerarchitektur

Ähnliche Dokumente
2. Rechnerarchitektur 2.1 einfache Computer

2. Rechnerarchitektur

1. Übung - Einführung/Rechnerarchitektur

Von-Neumann-Architektur

Kap.2 Befehlsschnittstelle. Prozessoren, externe Sicht

L3. Datenmanipulation


Rechner Architektur. Martin Gülck

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

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

Die Mikroprogrammebene eines Rechners

Prinzipieller Aufbau und Funktionsweise eines Prozessors

2.2 Rechnerorganisation: Aufbau und Funktionsweise

4. Übung - Rechnerarchitektur/Betriebssysteme

Geräteentwurf mit Mikroprozessoren 1

Philipp Grasl PROZESSOREN

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

C. BABBAGE ( ): Programmgesteuerter (mechanischer) Rechner

Informatikgrundlagen I Grundlagen der Informatik I

Einführung in die Informatik

3. Grundlagen der Rechnerarchitektur

3. Rechnerarchitektur

Aufbau eines Taschenrechners

9. Assembler: Der Prozessor Motorola 68000

INFORMATIK Oberstufe. Funktionsweise eines Rechners

Vorlesung Rechnerarchitektur. Einführung

Teil VIII Von Neumann Rechner 1

Teil 1: Prozessorstrukturen

Tutorium Rechnerorganisation

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

Arbeitsfolien - Teil 4 CISC und RISC

Kap 4. 4 Die Mikroprogrammebene eines Rechners

ARM: Befehlssatz (Forts.)

Im Original veränderbare Word-Dateien

Fachbereich Medienproduktion

Arithmetische und Logische Einheit (ALU)

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

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

Mikrocomputertechnik

Computer-Architektur Ein Überblick

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

Microcomputertechnik

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

DIGITALE SCHALTUNGEN II

ZENTRALEINHEITEN GRUPPE

Das Prinzip an einem alltäglichen Beispiel

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

Johann Wolfgang Goethe-Universität

Mikroprozessor als universeller digitaler Baustein

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

Technische Informatik - Eine Einführung

Neue Prozessor-Architekturen für Desktop-PC

FAKULTÄT FÜR INFORMATIK

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

Kap.2 Befehlsschnittstelle. Prozessoren, externe Sicht

Rechnergrundlagen SS Vorlesung

é Er ist software-transparent, d.h. der Benutzer braucht nichts von seiner Existenz zu wissen. Adreßbus Cache- Control Datenbus

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

Teil 1: Prozessorstrukturen

Rechnergrundlagen SS Vorlesung

E Mikrocontroller-Programmierung

1. Rechnersysteme (Einführung) VL1 2. Komponenten. 3. Daten und Informationen VL2 4. Von Neumann Maschine. 5. Computer und Software VL3

Neues vom STRIP Forth-Prozessor

In heutigen Computern findet man schnellen/teuren als auch langsamen/billigen Speicher

Teil 1: Prozessorstrukturen

Was ist die Performance Ratio?

Assembler - Adressierungsarten

Inhaltsangabe. 2.1 DieCPU Der Speicher Die Busse Klassifikation der von-neumann-rechner... 37

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

Grundlagen der Rechnerarchitektur. Einführung

Vorlesung Programmieren

Das Rechnermodell von John von Neumann

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

Brückenkurs / Computer

1 Grundlagen. 1.1 Rechnerarchitektur. Mikroprozessortechnik MFB. Einleitung, Systemaufbau

Institut für Informatik Prof. Dr. D. Hogrefe Dipl.-Inf. R. Soltwisch, Dipl.-Inform. M. Ebner, Prof. Dr. D. Hogrefe Informatik II - SS 04.

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

Konzepte von Betriebssystem- Komponenten Ausnahme- / Unterbrechungsbehandlung

Besprechung des 5. Übungsblattes Parallelität innerhalb der CPU Pipelining

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

RO-Tutorien 3 / 6 / 12

Datenpfad einer einfachen MIPS CPU

B1 Stapelspeicher (stack)

MikroController der 8051-Familie

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

Datenpfad einer einfachen MIPS CPU

Inhaltsverzeichnis. Inhaltsverzeichnis 3

Stack, Stackpointer, Unterprogramm HP: 0 * 1 * 2 * 3 CAL UP1 4 * 5 * 6 CAL UP2 7 *... UP1: 30 * 33 RET UP2: 40 * 41 CAL UP1 42 * 43 RET

1 Aufgaben zu Wie funktioniert ein Computer?

Rechnergrundlagen. Vom Rechenwerk zum Universalrechner

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

Technische Informatik 2 Adressierungsarten

B Einführung. 1 Historische Entwicklung. 1 Historische Entwicklung (3) 1 Historische Entwicklung (2)

Assembler Programmierung Motivation. Informatik II SS 2004 Teil 4: Assembler Programmierung. Assembler vs. Maschinensprache

5. Weitere Konzepte. Ganz grob sieht das Innenleben des INTEL 8086 so aus:

Wie groß ist die Page Table?

Computertechnik 03: Hardware. Hochschule für Technik und Wirtschaft WS 14/15 Dozent: R. Witte

Instruktionssatz-Architektur

Teil 2: Rechnerorganisation

Transkript:

Fakultät Informatik Institut Systemarchitektur Professur Datenschutz und Datensicherheit WS 2016/2017 3. Rechnerarchitektur Dr.-Ing. Elke Franz Elke.Franz@tu-dresden.de

3 Rechnerarchitektur Anfänge der Computertechnik Zuse Z3 (Deutschland) 1941 Colossus Mark II (UK) 1943 ENIAC (USA) 1946 Basieren auf Relais für Rechen- und Speicherwerk Werden durch manuelles Ändern der Steckverbindungen programmiert Ein- und Ausgabe über Lampen 1940 1950 1960 1970 1980 1990 2000 2010 2020 Informatik I (für Verkehrsingenieure) WS 2016/2017 2

3 Rechnerarchitektur Entwicklung zum Heimcomputer Apple II - 1977 TRADIC - 1955 Erste Transistorrechner Programmierung über Lochkarten Ausgabe über Drucker PDP 1-1960 Miniaturisierung der Rechentechnik Programmierung über Tastatur Ausgaben nun auch über Röhrenbildschirme Aufkommen der ersten Heimcomputer Möglich durch Entwicklung von Mikroprozessoren und integrierten Schaltkreisen 1940 1950 1960 1970 1980 1990 2000 2010 2020 Informatik I (für Verkehrsingenieure) WS 2016/2017 3

3 Rechnerarchitektur Entw. zur heutigen Rechentechnik IBM PC - 1981 Apple ipad - 2010 Blütezeit der Heimoder Personal- Computer Viele konkurrierende Modelle Intel Pentium CPU - 1993 Beginn des Internet-Booms Rasante Weiterentwicklung der Rechentechnik Weitere Miniaturisierung Verlagerung auf Mobile Computing und starke Vernetzung von Geräten 1940 1950 1960 1970 1980 1990 2000 2010 2020 Informatik I (für Verkehrsingenieure) WS 2016/2017 4

3 Rechnerarchitektur Arten von Computern Arten von Computern (Auswahl) PC (Personal Computer) Individuell für einen Benutzer vorgesehen Server und Clients Server stellt Daten für Vielzahl von Clients zur Verfügung Mainframes Großrechner für Tausende von Benutzers Supercomputer Computer mit extrem hoher Rechenleistung für komplexe Berechnungen Embedded Systems (Mikrocomputersysteme) In technischen Kontext eingebettet (z.b. Waschmaschine, Auto) Informatik I (für Verkehrsingenieure) WS 2016/2017 5

3 Rechnerarchitektur Performance Rechenleistung (Performance) Wichtiges Kriterium für die Beurteilung von Computern Vergleich verschiedener Rechner bzgl. Performance schwierig: Verschiedene Operationen sind möglich, Bedeutung hängt vom Einsatzgebiet des Rechners ab Benchmark-Programme: Beispielprogramme, die stellvertretend für verschiedene Aufgaben stehen Grobe allgemeine Schätzung der Performance: MIPS (Million Instructions Per Second) MFLOPS (Million FLoating Point Operations Per Second) Informatik I (für Verkehrsingenieure) WS 2016/2017 6

3 Rechnerarchitektur von-neumann-rechner Ausführung der Programme, Verarbeitung der Daten Prozessor (Central Processing Unit, CPU) Verbindungen: Busse Kontrollinformationen Befehle und Daten Schnittstellen zu den Peripheriegeräten Ein-/Ausgabe- Einheit Hauptspeicher Befehle und Daten Informatik I (für Verkehrsingenieure) WS 2016/2017 7

3 Rechnerarchitektur von-neumann-rechner Prozessor (Central Processing Unit, CPU) Steuerwerk Steuersignale Statussignale Rechenwerk Tastatur Drucker Ein-/Ausgabe- Einheit Kontrollbus Adressbus Datenbus Hauptspeicher Informatik I (für Verkehrsingenieure) WS 2016/2017 8

3 Rechnerarchitektur von-neumann-rechner Prinzipien Universeller Rechner Abarbeitung beliebiger Programme Prozessor arbeitet taktgesteuert; Takt: Dauer eines Verarbeitungsschrittes Intern verwendete Signalmenge (Befehle und Daten) binär kodiert Programm und Daten im Speicher abgelegt, Programm und Daten können gelesen und geändert werden Einteilung des Hauptspeichers in gleichgroße Zellen, die fortlaufend nummeriert sind (Nummer = Adresse) Ein- und Ausgabegeräte: E/A-Baugruppen für verschiedene Schnittstellen; pro Baugruppe E/A-Register und Steuerregister; E/A-Register nummeriert (Adresse bzw. Port) Bearbeitung der Programmbefehle in der Reihenfolge der Speicherung, Änderung der Reihenfolge durch Sprungbefehle möglich Informatik I (für Verkehrsingenieure) WS 2016/2017 9

3 Rechnerarchitektur Verbreitete Architekturen CISC (Complex Instruction Set Computer) RISC (Reduced Instruction Set Computer) Hochsprache Hochsprache semantische Lücke Mikrobefehlsebene Compiler semantische Lücke Compiler Maschinensprache Hardware Maschinensprache Hardware Umfangreicher Maschinenbefehlssatz (Befehlssatz: Gesamtheit der Maschinenbefehle) Semantische Lücke geringer Compiler einfacher und effizienter Programme kürzer Zusätzlich Mikrobefehlsebene Reduzierter Maschinenbefehlssatz Semantische Lücke größer Hardware optimiert, üblicherweise nur ein Takt pro Maschinenbefehl Cache vergrößert, mehr Register Compiler wesentlich komplexer Programme länger Informatik I (für Verkehrsingenieure) WS 2016/2017 10

3 Rechnerarchitektur Verbreitete Architekturen Von-Neumann Architektur Nur ein einziger Speicher für Daten und Programme Klassische vn-architektur: ein Steuerwerk, ein Rechenwerk, ein E/A-System, ein Bussystem Nachteil: Von-Neumann-Flaschenhals, bedingt durch das Bussystem Nachteile bei der klassischen vna: Code und Daten nicht getrennt Sequentielle Abarbeitung Harvard-Architektur Getrennte Speicher für Daten und Programme Getrennte Bussysteme Überwindet die Nachteile der von- Neumann Architektur Nachteil: Aufteilung des Speichers muss vorab bekannt sein Dominierende Architektur im PC- Bereich Vor allem dort verwendet, wo Anwendungen vorab bekannt sind (z.b. bei Embedded Systems) Informatik I (für Verkehrsingenieure) WS 2016/2017 11

3 Rechnerarchitektur Prozessor CPU (Central Processing Unit) CPU Steuerwerk Rechenwerk Befehlsregister Befehlszähler Adressregister Ablaufsteuerung Befehlsdekodierung Datenregister... Datenregister Zusatzregister Arithmetical Logical Unit ALU Informatik I (für Verkehrsingenieure) WS 2016/2017 12

3 Rechnerarchitektur Prozessor Register Spezielle Speicherplätze in der CPU, auf die besonders schnell zugegriffen werden kann, mit Namen bezeichnet (z.b. AX, BX) Speicherung von Daten und Adressen von Daten, die von der ALU verarbeitet werden sollen Speicherung von Befehlen (Befehlsregister) und der Adresse des nächsten Befehls (Befehlszähler / instruction pointer) Breite der Register Bezeichnung des Prozessors Wichtigstes Zusatzregister: Flagregister Inhalt abhängig vom Ergebnis der ausgeführten Operation Beispiele: Carry-Flag (Übertrag), Zero-Flag (Ergebnis = 0) Informatik I (für Verkehrsingenieure) WS 2016/2017 13

3 Rechnerarchitektur Prinzip der Befehlsabarbeitung Start des Steuerwerks, danach Steuerschleife (von-neumann-zyklus) (zyklische Arbeit des Steuerwerks, Beendigung durch HALT-Befehl) 1. Holen des Befehls in das Befehlsregister 2. Dekodieren des Befehls 3. Holen der Operanden aus Speicher 4. Befehlsausführung 5. Rückschreiben der Ergebnisse 6. Bestimmen der Adresse des Nachfolgebefehls Informatik I (für Verkehrsingenieure) WS 2016/2017 14

3 Rechnerarchitektur Maschinenbefehle Eingabe für das Steuerwerk Inhalt allgemein: Operationskode Operandenteil / Adressteil Intel Syntax für die meisten Maschinenbefehle: Operationskode Ziel Quelle Beispiele: ADD AX, BX ; AX = AX + BX MOV BX, CX ; BX = CX DEC CX ; CX = CX 1 INC DX ; DX = DX + 1 (AX, BX, CX, DX: Register) Anmerkung: Notation in Assemblercode für eine verständliche Darstellung intern sind Befehle, Adressen und Daten binär dargestellt. Informatik I (für Verkehrsingenieure) WS 2016/2017 15

3 Rechnerarchitektur Maschinenbefehle Klassifikation Arithmetische und logische Befehle Addition, Inkrement, Dekrement, bitweise logische ODER-Verknüpfung, Bitmanipulationsbefehle Löschen, Setzen, Ändern einzelner Operandenbits Testbefehle (evtl. implizit in anderen Befehlsarten) Testen auf Gerätebereitschaft, Operandenvorzeichen, Sprungbefehle unbedingte Sprünge zu einer Zieladresse (z.b. für Unterprogramm-Aufruf und Rücksprung) bedingte Sprünge für Verzweigungen und Zyklen Transportbefehle Operandentransfer Speicher Speicher, Speicher Steuerwerk, Steuerbefehle HALT-Befehl am Programmende, Schrittbetrieb, Informatik I (für Verkehrsingenieure) WS 2016/2017 16

3 Rechnerarchitektur Adressierungsarten Unmittelbare Adressierung Operanden sind Bestandteil des Befehls Direkte oder absolute Adressierung Operandenadresse steht im Befehlswort Registeradressierung Befehl bezieht sich auf den aktuellen Inhalt eines Registers Indirekte Adressierung Befehlswort enthält z.b. ein Register (Register Indirect Adressing), in welchem sich die Speicheradresse des Operanden befindet Indizierte Adressierung Adresse des Operanden wird zunächst errechnet, z.b. kann ein Register angegeben werden und ein konstanter Wert, der zum Registerinhalt zu addieren bzw. zu subtrahieren ist Informatik I (für Verkehrsingenieure) WS 2016/2017 17

3 Rechnerarchitektur Befehlsabarbeitungsbeispiel Aufgabe: Addition aller Zahlen von 1 bis 100, Ergebnis soll in Register AX stehen Variante A: Sequentielle Abarbeitung Adr. Befehl Erläuterung 8001 MOV AX, 1 Register AX auf 1 setzen 8002 MOV BX, 2 Register BX auf 2 setzen 8003 ADD AX, BX Addiere Reg. AX und BX 8004 MOV BX, 3 Register BX auf 3 setzen 8005 ADD AX, BX Addiere Reg. AX und BX 8200 MOV BX, 100 Register BX auf 100 setzen 8201 ADD AX, BX Addiere Reg. AX und BX 8202 HALT Programm stoppen Fazit Speicheraufwändig (200 Befehle) unflexibel Variante B: Nicht sequentielle Abarbeitung Adr. Befehl Erläuterung 8001 MOV AX, 1 Register AX auf 1 setzen 8002 MOV BX, 2 Register BX auf 2 setzen 8003 ADD AX, BX Addiere Reg. AX und BX 8004 ADD BX, 1 Addiere 1 zu Register B 8005 CMP BX, 101 Vergleich Reg. BX mit 101 8006 JNZ 8003 Wenn BX 101, springe zurück zu Adresse 8003 8007 HALT Programm stoppen Fazit Speichereffizient (7 Befehle) flexibel 99x Informatik I (für Verkehrsingenieure) WS 2016/2017 18

3 Rechnerarchitektur Unterprogramme Häufig benötigt man in einem Programm mehrmals die gleichen Befehlsfolgen aber in unterschiedlichen Zusammenhängen z.b. für Berechnungen wie sin(x), log(x), Programm Problem1 Befehle für sin(45 ) Problem 2 Befehle für sin(77 ) Nahezu identidscher Programmkode an mehreren Stellen des Programms Verschwendung von Hauptspeicher Fehleranfälligkeit Informatik I (für Verkehrsingenieure) WS 2016/2017 19

3 Rechnerarchitektur Unterprogramme Hauptprogramm ruft an mehreren Stellen das Unterprogramm auf. Hauptprogramm Problem 1 Aufruf von sin(45 ) Problem 2 Aufruf von sin(77 ) Unterprogramm Einsprung sin(x) Bearbeitung Rücksprung Vorteile Unterprogramm nur einmal im Hauptspeicher weniger Redundanz Flexibler Code Wiederverwendbar Verbesserte Wartbarkeit Problem Einsprungadresse eindeutig, aber Rücksprungadresse nicht eindeutig muss beim Aufruf dem Unterprogramm übergeben werden Organisation: oftmals mittels Stack Informatik I (für Verkehrsingenieure) WS 2016/2017 20

3 Rechnerarchitektur Stack Stack: Stapelspeicher, Kellerspeicher (Begriff abgeleitet von Kohlelagerung im Keller) jüngstes Brickett LIFO (Last In / First Out) ältestes Brickett Nur 2 Zugriffsfunktionen (keine Speicheradressierung): Legen auf Stapel sequentielles Stapeln Holen vom Stapel des zuletzt gestapelten Objektes Höhe des Stapels abhängig von der Menge der gestapelten Objekte Informatik I (für Verkehrsingenieure) WS 2016/2017 21

3 Rechnerarchitektur Stack Stack PUSH POP Zugriffsbefehle PUSH Register Endeadresse Zeigeradresse Anfangsadresse 1. Zeigeradresse wird verringert um Speicherwortlänge 2. Schreibvorgang: Registerinhalt Stack an Position der Zeigeradresse POP Register 1. Lesevorgang: Stackinhalt an Position der Zeigeradresse Register 2. Zeigeradresse wird erhöht um Speicherwortlänge Wenn Stack zu klein dimensioniert, evtl. Stacküberlauf!!! Informatik I (für Verkehrsingenieure) WS 2016/2017 22

3 Rechnerarchitektur Unterprogrammorganisation Vorbereitung des Aufrufs: Schreiben der Eingabeparameter für das Unterprogramm (UP) in Prozessorregister CALL UP-Adresse (Aufruf des Unterprogramms) 1. Schreibvorgang: Rücksprungadresse Stack ( = Inhalt IP-Register * + Länge des Befehls CALL ) 2. Schreibvorgang: UP-Einsprungadresse IP-Register * ( * IP = Instruction Pointer = Befehlszähler) RETURN (Rücksprungbefehl) 1. Lesevorgang: Rückkehradresse vom Stack holen 2. Schreibvorgang: Rückkehradresse IP-Register Informatik I (für Verkehrsingenieure) WS 2016/2017 23

3 Rechnerarchitektur Privilegien Privilegierter Status für die Betriebssystemroutinen Voller Zugriff auf den gesamten Hauptspeicher (u.a. Ressourcen) Unprivilegierter Status für die Anwendungsprogramme Einschränkung des Hauptspeicherzugriffs auf eigenen Bereich (hardwaremäßig überwacht), nicht alle Maschinenbefehle nutzbar Status: Flag im Maschinenstatuswort (Register) Vorteile der Privilegierung Beim Laufen eines fehlerhaften Programms kann das Überschreiben der Speicherbereiche anderer Prozesse verhindert werden Verringerte Absturzgefahr, erleichterte Fehleranalyse 0 Beispiel: Domains (Ringe) 0: Kernel Mode 1-3: User Mode (Anwendungen) 1 2 3 Informatik I (für Verkehrsingenieure) WS 2016/2017 24

3 Rechnerarchitektur CPU Peripherie Synchrone Arbeit Prozessor IN 1 ms Verarbeiten/OUT 50 ms Eingabe 100 ms Ausgabe 100 ms Informatik I (für Verkehrsingenieure) WS 2016/2017 25

3 Rechnerarchitektur CPU Peripherie Asynchrone Arbeit Prozessor IN 1 ms Verarbeiten/OUT 50 ms WAIT? Eingabe 100 ms Ausgabe 100 ms Informatik I (für Verkehrsingenieure) WS 2016/2017 26

3 Rechnerarchitektur Interrupts Unterbrechungen (Interrupts) Polling periodisches Abfragen aller E/A-Gerätes nicht sehr zweckmäßig, weil hohe Systembelastung wünschenswert: asynchrone Arbeit von Prozessor/Gerät Interruptkonzept erlaubt dem Prozessor Reaktion auf (asynchrone) äußere Ereignisse Programmlauf Äußeres Ereignis: Unterbrechungsanforderung (Interrupt Request, IRQ) Unterbrechungs- Behandlungs- Routine (UBR) Informatik I (für Verkehrsingenieure) WS 2016/2017 27

3 Rechnerarchitektur Interrupts Solange letzter Befehl ungleich HALT Unterbrechungsereignis? Nein Ja Nächsten Befehl ausführen Retten der Befehlsadresse Neue Befehlsadresse ermitteln Einstellen der UBR- Adresse Nach Befehlsausführung Überprüfung auf Unterbrechung Bei Unterbrechung Speichern der aktuellen Befehlsadresse und Aufruf der Unterbrechungsroutine (UBR) Ansonsten Ausführen des nächsten Befehls (Normalbetrieb) Informatik I (für Verkehrsingenieure) WS 2016/2017 28

3 Rechnerarchitektur Interrupts Intel-Architektur Unterbrechungssystem Intel-Architektur prinzipiell 256 verschiedene Unterbrechungen durch eine 8 Bit lange Interruptnummer bezeichnet Adressen der UBR am Anfang des Hauptspeichers (jeweils 4 Byte) Die ersten fünf Interrupts sind hardwaremäßig festgelegt (interne UB) INT 0 bei Division durch Null INT 1 nach jedem Befehl bei Einzelschrittbetrieb (für Testzwecke) INT 2 bei NMI-Signal (Nichtmaskierbarer Interrupt) am Prozessor für externe Unterbrechungen höchster Priorität INT 3 bei Erreichen eines Haltepunktes im Testbetrieb INT 4 bei Datenüberlauf nach Rechenoperationen Informatik I (für Verkehrsingenieure) WS 2016/2017 29

3 Rechnerarchitektur Interrupts Intel-Architektur Hardwareinterrupts Interne Unterbrechungen bei Ausnahmeereignissen Division durch Null Spannungsausfall Externe Unterbrechungen bei asynchroner Arbeit mit Geräten Initialisierung einer Unterbrechungsbehandlungsroutine Starten E/A-Operation Warten auf Unterbrechung (E/A-Ende-Meldung vom Gerät) Ende E/A anzeigen Softwareinterrupts (Traps) Hilfsmittel zur Kommunikation von Programmen und Betriebssystemfunktionen Informatik I (für Verkehrsingenieure) WS 2016/2017 30

3 Rechnerarchitektur Interrupts Intel-Architektur Externe Unterbrechungen in Intel-Architektur 1. Gerät meldet UB (IRQ 0 bis IRQ 15) an beim Interrupt-Controller PIC (Programmable Interrupt Controller) 2. PIC gibt Signal über Steuerbus zum Prozessor Unterbrechung der Befehlsabarbeitung im Prozessor 3. Prozessor quittiert 4. liest anschließend die zum Ereignis gehörende UB-Nummer vom PIC 5. Aufruf Unterbrechungsbehandlungroutine UBR 6. Innerhalb von UBR Datenaustausch mit Gerät 7. Nach UBR-Ende Fortsetzung des unterbrochenen Programms Datenbus Adreßbus Steuerbus 5 UBR Prozessor 6 4 3 2 PIC Innerhalb UBR Retten/Wiederherstellen aller Parameter des unterbrochenen Programmes 7 IRQ 0 15 Informatik I (für Verkehrsingenieure) WS 2016/2017 31 1 Geräteansteuerung

32 Rechnerarchitektur Zugriff auf E/A-Geräte Zugriff auf E/A-Geräte ähnlich wie Zugriff auf Hauptspeicher Initiative geht immer vom Prozessor aus, Geräte beobachten Bus und reagieren, wenn sie angesprochen werden. Prozessor gibt Signale auf Steuerbus, Entscheidung Hauptspeicherzugriff oder E/A-Operation, Lesen / Schreiben am Adressbus liegt Hauptspeicher- bzw. Geräteadresse (Portadresse) an über Datenbus werden die Daten vom/zum Ziel übertragen Datenbus E/A-Daten Adressbus Portadresse Steuerbus IN oder OUT Prozessor Gerät 1... Informatik I (für Verkehrsingenieure) WS 2016/2017 32

3 Rechnerarchitektur Performancesteigerung: Caching Caching Ziel: Zugriffszeit auf langsamere Medien verkürzen Cache: kleiner, schneller Zwischenspeicher Vergleich von Speichermedien: Medium Mittlere Zugriffszeit Erreichbare Datentransferrate in MB/s Register 0,1 ns 70000 Cache 2 ns 20000 Hauptspeicher 10 ns 6000 Festplatten 3,5 ms 150 Optische Platten (CD, DVD, ) 25 ms 10 [Gumm, Sommer: Einführung in die Informatik. Oldenbourg Verlag, 2012.] Informatik I (für Verkehrsingenieure) WS 2016/2017 33

3 Rechnerarchitektur Performancesteigerung: Caching Caching beim Lesen von Daten (1) (1) Lies Inhalt von Speicheradresse 3278h Prozessor Cache Controller Hauptspeicher 27 (2) Inhalt von Adresse 3278h 27 27 Cache Cache Miss: angeforderte Daten befinden sich noch nicht im Cache Üblicherweise wird nicht nur eine Speicheradresse eingelesen, sondern mehrere (Cache Line) erstmalige Zugriffe auf benachbarte Adressen werden ebenfalls beschleunigt. Informatik I (für Verkehrsingenieure) WS 2016/2017 34

3 Rechnerarchitektur Performancesteigerung: Caching Caching beim Lesen von Daten (2) (1) Lies Inhalt von Speicheradresse 3278h Prozessor Cache Controller Hauptspeicher 27 (2) Inhalt 27 27 Cache Cache Hit: angeforderte Daten befinden sich bereits im Cache Der Cache ist für den Prozessor transparent, d.h., der Prozessor merkt nicht, ob die Daten aus dem Cache oder dem Hauptspeicher kommen. Informatik I (für Verkehrsingenieure) WS 2016/2017 35

3 Rechnerarchitektur Performancesteigerung: Caching Caching beim Schreiben von Daten: Write Through (1) Schreibe Daten in Adresse 3278h Prozessor Cache Controller Hauptspeicher 95 (2) Daten 27 95 27 95 Cache Write Through: Daten werden im Cache und im Hauptspeicher aktualisiert Die Daten in Hauptspeicher und Cache stimmen überein, d.h., sie sind konsistent. Nachteil: Durch den Zugriff auf den Hauptspeicher langsam. Informatik I (für Verkehrsingenieure) WS 2016/2017 36

3 Rechnerarchitektur Performancesteigerung: Caching Caching beim Schreiben von Daten: Write Back (1) Schreibe Daten in Adresse 3278h Prozessor Cache Controller Hauptspeicher 95 (2) Daten 27 27 95 Cache Write Back: Daten werden zunächst nur im Cache aktualisiert Der Schreibvorgang ist schneller, da nur im Cache geschrieben wird. Nachteil: Hauptspeicher und Cache sind nicht mehr konsistent. Mögliche Strategie: Cash Flush (Rückschreiben in bestimmten Zeitabständen). Informatik I (für Verkehrsingenieure) WS 2016/2017 37

3 Rechnerarchitektur Performancesteigerung: Caching Controller speichert Zuordnung der Cache Lines zu den Teilen des Hauptspeichers sowie die Information, welche Cache Lines geändert wurden Cacheable Area: Teil des Hauptspeichers, der mit Cache Lines abgedeckt werden kann Cache-Hierarchien Speicher: in der Regel je schneller, desto teurer 1 st Level Cache (L1) 2 nd Level Cache (L2) 3 rd Level Cache (L3) Größe Geschwindigkeit Verwendung für Caches z.b. auch für Zugriffe auf Festplatten oder für Webzugriffe (Browser-Cache) Informatik I (für Verkehrsingenieure) WS 2016/2017 38

3 Rechnerarchitektur Performancesteigerung: Pipelining Motivation Befehlsabarbeitung erfordert mehrere Takte CPU: Hardwarekomponenten für die einzelnen Schritte nur eine Baugruppe aktiv Zeitverlust Beispiel: 4 Schritte, Annahme: 1 Takt pro Schritt IF Befehl 1 IF IF IF IF Befehl 2 Befehl holen (Instruction Fetch, IF) ID EX WB ID Befehl 1 EX WB ID EX Befehl 1 WB ID EX WB Befehl 1 ID EX WB Befehl dekodieren (Instruction Decode, ID) Befehl ausführen (Execute, EX) Ergebnis rückschreiben (Write Back, WB) 1 2 3 4 5 Takte Informatik I (für Verkehrsingenieure) WS 2016/2017 39

3 Rechnerarchitektur Performancesteigerung: Pipelining Pipelining Mehrere Befehle gleichzeitig im Prozessor in verschiedenen Bearbeitungsstufen Parallelisierung der Arbeit im Prozessor Voraussetzung: Hardwarekomponenten können unabhängig voneinander arbeiten Hardwarekomponenten Pipeline-Stufen (Beispiel: 4 Stufen) IF Befehl 1 IF Befehl 2 IF Befehl 3 IF Befehl 4 IF Befehl 5 IF IF ID ID Befehl 1 ID Befehl 2 ID Befehl 3 ID Befehl 4 ID Befehl 5 ID EX EX EX Befehl 1 EX Befehl 2 EX Befehl 3 EX Befehl 4 EX Befehl 5 WB WB WB WB Befehl 1 WB Befehl 2 WB Befehl 3 WB Befehl 4 1 2 3 4 5 6 7 Takte Informatik I (für Verkehrsingenieure) WS 2016/2017 40

3 Rechnerarchitektur Performancesteigerung: Pipelining Zu Beginn Vorrüstzeit, bis Pipeline gefüllt Pipeline sollte nicht leer laufen Ausführung eines Schrittes kann mehrere Takte dauern langsamste Stufe entscheidend für Geschwindigkeit der Pipeline Einsatz oft an mehreren Stellen im Prozessor Probleme mit Programmverzweigungen Pipeline funktioniert gut bei sequentieller Abarbeitung von Befehlen Änderung der Reihenfolge jedoch möglich Adr. Befehl Erläuterung 8001 MOV AX, 1 Register AX auf 1 setzen 8002 MOV BX, 2 Register BX auf 2 setzen 8003 ADD AX, BX Addiere Reg. AX und BX 8004 ADD BX, 1 Addiere 1 zu Register B 8005 CMP BX, 101 Vergleich Reg. BX mit 101 8006 JNZ 8003 Wenn BX 101, springe zurück zu Adresse 8003 8007 Problem: Erst nach Ausführung des Befehls ist klar, ob es mit dem Befehl aus Adresse 8007 oder dem Befehl aus Adresse 8003 weitergeht. Informatik I (für Verkehrsingenieure) WS 2016/2017 41

3 Rechnerarchitektur Performancesteigerung: Pipelining Strategien bei Programmverzeigungen (Beispiele) Abwarten ineffizient Pipeline läuft leer Befehle auf Verdacht in die Pipeline holen und ggf. verwerfen Statische Ansätze (Static Prediction) Predict not Taken: Annahme, dass keine Verzweigung erfolgt Predict Taken: Annahme, dass Verzweigung erfolgt Dynamische Ansätze (Dynamic Prediction) Branch Prediction: Versuch, vorherzusagen, ob eine Verzweigung erfolgt oder nicht, z.b. mit einer Branch History Table (BHT), in welcher gespeichert ist, ob beim letzten Mal verzweigt wurde Speculative Execution: es werden beide Möglichkeiten weiterverfolgt, bis klar ist, ob verzweigt wird oder nicht (zwei Pipelines) Informatik I (für Verkehrsingenieure) WS 2016/2017 42

3 Rechnerarchitektur Parallelisierung Parallelisierung zur Performancesteigerung eine der wichtigsten Ansätze zur Performancesteigerung Pipelining: Parallelisierung unterhalb der Maschinenbefehlsebene Maschinenbefehlsebene: mehrere Ausführungseinheiten Prozessorebene: Multiprozessorsysteme Multiprozessorboards Multicore-CPUs gemeinsamer Arbeitsspeicher Kommunikation: über Bussystem; Network-on-Chip (NoC) Rechnerebene: Multirechnersysteme kein gemeinsamer Arbeitsspeicher Kommunikation i. Allg. über Netzwerk Informatik I (für Verkehrsingenieure) WS 2016/2017 43

3 Rechnerarchitektur Parallelisierung Aufwand für Parallelisierung Hardware Spezielle Anforderungen insbesondere bei Multiprozessorsystemen, z.b. an Boards und Prozessoren; Kommunikation zwischen den Prozessoren muss unterstützt werden; Kühlungsprobleme Software Parallelisierung muss unterstützt werden, sonst keine optimale Nutzung möglich Verwaltungsaufgaben (Multiprozessor- und Multirechnersysteme): Aufteilung der Rechenarbeit auf die Knoten (Kerne/Prozessoren/Rechner) Load Balancing (gleichmäßige Verteilung der Rechenlast während der Bearbeitung) Sammeln der Teilergebnisse und Ermitteln des Gesamtergebnisses Zugriffe auf gemeinsame Ressourcen synchronisieren Informatik I (für Verkehrsingenieure) WS 2016/2017 44