2. Rechnerarchitektur



Ähnliche Dokumente
2. Rechnerarchitektur 2.1 einfache Computer

1. Übung - Einführung/Rechnerarchitektur

Teil VIII Von Neumann Rechner 1

3. Rechnerarchitektur

Die Mikroprogrammebene eines Rechners

Technische Informatik 2 Adressierungsarten

Johann Wolfgang Goethe-Universität

1 Aufgaben zu Wie funktioniert ein Computer?

Kap 4. 4 Die Mikroprogrammebene eines Rechners

Mikrocomputertechnik. Adressierungsarten

Im Original veränderbare Word-Dateien

Rechner Architektur. Martin Gülck

Mikroprozessor als universeller digitaler Baustein

L3. Datenmanipulation

Einführung in die technische Informatik

Von-Neumann-Architektur

B1 Stapelspeicher (stack)

5 Speicherverwaltung. bs-5.1 1

C. BABBAGE ( ): Programmgesteuerter (mechanischer) Rechner

Übersicht. Nebenläufige Programmierung. Praxis und Semantik. Einleitung. Sequentielle und nebenläufige Programmierung. Warum ist. interessant?

INFORMATIK Oberstufe. Funktionsweise eines Rechners

Der von Neumann Computer

Mikrocontroller Grundlagen. Markus Koch April 2011

Betriebssysteme. Dipl.-Ing.(FH) Volker Schepper

Wie arbeiten Computer?

2.2 Rechnerorganisation: Aufbau und Funktionsweise

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Konzepte von Betriebssystemkomponenten Disk-Caches und Dateizugriff

Computer-Architektur Ein Überblick

Das Rechnermodell von John von Neumann

Technische Informatik. Der VON NEUMANN Computer

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

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

3.14 Die Programmieroberfläche Programmierung

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/13

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

LPT1 Anschluss mit PCMCIA Karte

Daten verarbeiten. Binärzahlen

Facharbeit Informatik. Thema:

Anleitung zur Nutzung des SharePort Utility

S7-Hantierungsbausteine für R355, R6000 und R2700

Verwendung des Terminalservers der MUG

Grundlagen der Technischen Informatik. Sequenzielle Netzwerke. Institut für Kommunikationsnetze und Rechnersysteme. Paul J. Kühn, Matthias Meyer

Theoretische Informatik SS 04 Übung 1

Subpostfächer und Vertretungen für Unternehmen

2. Rechnerarchitektur 2.2 fortgeschrittene Computer

Software-Beschreibung Elektronische Identifikations-Systeme BIS Softwarekopplung PROFIBUS DP mit BIS C-60_2-...an S7


Das Prinzip an einem alltäglichen Beispiel

Man liest sich: POP3/IMAP

- Zweimal Wöchentlich - Windows Update ausführen - Live Update im Norton Antivirusprogramm ausführen

Kapitel 6 Anfragebearbeitung

einfache PIC-Übungsprogramme

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Einführung in die Systemprogrammierung

Zunächst empfehlen wir Ihnen die bestehenden Daten Ihres Gerätes auf USB oder im internen Speicher des Gerätes zu sichern.

4D Server v12 64-bit Version BETA VERSION

Einführung in das Arbeiten mit MS Excel. 1. Bearbeitungs

OPERATIONEN AUF EINER DATENBANK

CARD STAR /medic2 und CARD STAR /memo3 Installation des USB-Treibers (Administrator-Tätigkeit) Stand

Anleitung zur Nutzung des SharePort Plus

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter

Microcontroller Kurs Microcontroller Kurs/Johannes Fuchs 1

Installationsanleitung

Anleitung zur Inbetriebnahme einer FHZ2000 mit der homeputer CL-Software

Installationshinweise BEFU 2014

Persönliches Adressbuch

Beschreibung EtherNet/IP Prozessschnittstelle

Assembler und Hochsprachen

Zahlensysteme: Oktal- und Hexadezimalsystem

RO-Serie CAN-Übertragungsprotokoll

Name: ES2 Klausur Thema: ARM Name: Punkte: Note:

Adressen der BA Leipzig

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

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Rechnerstrukturen. 6. System. Systemebene. Rechnerstrukturen Wintersemester 2002/03. (c) Peter Sturm, Universität Trier 1. Prozessor.

Eigene Dokumente, Fotos, Bilder etc. sichern

Schritt-Schritt-Anleitung zum mobilen PC mit Paragon Drive Copy 10 und VMware Player

Datenträgerverwaltung

DOKUMENTATION VOGELZUCHT 2015 PLUS

Übungen zur Softwaretechnik

A1 Desktop Security Installationshilfe. Symantec Endpoint Protection 12.1 für Windows/Mac

Basisanforderungen: EVA-Prinzips. Erweiterte Anforderungen: wirtschaftlichen und privaten Alltag.

Befehlssatz zum High Speed Interface-88-USB (HSI-88-USB) (ab Firmware 0.71) (Version 1.2)

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44

SharePoint Demonstration

Wer in der Grundschule ein wenig aufgepasst hat, sollte in der Lage sein schriftlich eine Zahl durch eine zweite zu teilen.

In 15 einfachen Schritten zum mobilen PC mit Paragon Drive Copy 10 und Microsoft Windows Virtual PC

3 Windows als Storage-Zentrale

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Anschluss des ISP-Programmieradapters. Erste Programmierung mit Bascom

Technische Informatik 1 Übung 2 Assembler (Rechenübung) Georgia Giannopoulou (ggeorgia@tik.ee.ethz.ch) 22./23. Oktober 2015

Computerarithmetik ( )

Anwenderdokumentation AccountPlus GWUPSTAT.EXE

1 Anschließen der Wiegeanzeige an den PC

Transkript:

Fakultät Informatik Institut Systemarchitektur Professur Datenschutz und Datensicherheit WS 2014/2015 2. Rechnerarchitektur Dr.-Ing. Elke Franz Elke.Franz@tu-dresden.de 2 Rechnerarchitektur Anfänge der Computertechnik Zuse Z3 (Deutschland) 1941 Colossus Mark II (UK) 1943 Basieren auf Relais für Rechen- und Speicherwerk Werden durch manuelles Ändern der Steckverbindungen programmiert Ein- und Ausgabe über Lampen ENIAC (USA) 1946 1940 1950 1960 1970 1980 1990 2000 2010 2020 2 2 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 3 1

2 Rechnerarchitektur Entw. zur heutigen Rechentechnik IBM PC - 1981 Blütezeit der Heimoder Personal- Computer Viele konkurrierende Modelle PDP 1-1960 Intel Pentium CPU - 1993 Beginn des Internet-Booms Rasante Weiterentwicklung der Rechentechnik Apple ipad - 2010 Weitere Miniaturisierung Verlagerung auf Mobile Computing und starke Vernetzung von Geräten 1940 1950 1960 1970 1980 1990 2000 2010 2020 4 2 Rechnerarchitektur von-neumann-rechner zentrale Verarbeitungseinheit CPU Steuerwerk Rechenwerk Bus-System Ein- und Ausgabeeinheit Hauptspeicher 5 2 Rechnerarchitektur von-neumann-rechner Prinzipien Universeller Rechner Arbeit erfolgt taktgesteuert Intern verwendete Signalmenge ist binär kodiert Programm wird (wie die 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) Bearbeitung der Programmbefehle in der Reihenfolge der Speicherung, Änderung der Reihenfolge durch Sprungbefehle möglich Bus-System für den Austausch von Daten und Befehlen zwischen den Komponenten 6 2

2 Rechnerarchitektur von-neumann-rechner Von-Neumann-Flaschenhals Nur ein Bus für Daten und Befehle wird zum Engpass zwischen Prozessor und Speicher Sequentielle Abarbeitung erzwungen Memory-Wall (Zugriffsgeschwindigkeit auf Speicher begrenzt Geschwindigkeit der Programmausführung) 7 2 Rechnerarchitektur von-neumann-rechner CPU (Central Processing Unit) zentrale Verarbeitungseinheit CPU Steuerwerk Rechenwerk Befehlsregister Befehlszähler Adressregister Ablaufsteuerung Befehlsdekodierung Datenregister... Datenregister Zusatzregister Arithmetical Logical Unit ALU 8 2 Rechnerarchitektur Maschinenbefehle Register Spezielle Speicherplätze in der CPU Speicherung von Befehlen (Befehlsregister) und der Adresse des nächsten Befehls (Befehlszähler) Speicherung von Daten und Adressen von Daten, die von der ALU verarbeitet werden sollen 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) 9 3

2 Rechnerarchitektur Prinzip der Befehlsabarbeitung Start des Steuerwerks, danach Steuerschleife (von-neumann-zyklus) (zyklische Arbeit des Steuerwerks, Beendigung durch HALT-Befehl) 1. Holen des aktuellen 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 10 2 Rechnerarchitektur Maschinenbefehle Eingabe für das Steuerwerk Befehlssatz Gesamtheit der Maschinenbefehle 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) 11 2 Rechnerarchitektur Maschinenbefehle Klassifikation Arithmetische und logische Befehle Addition, 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 bedingte Sprünge für Verzweigungen und Zyklen Unterprogramm-Aufruf und Rücksprung Transportbefehle Operandentransfer Speicher Speicher, Speicher Steuerwerk, Steuerbefehle HALT-Befehl am Programmende, Schrittbetrieb, 12 4

2 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 ein Adressregister, in welchem die Speicheradresse des Operanden steht Indizierte Adressierung Befehlswort enthält ein Adressregister, Speicheradresse des Operanden ergibt sich durch Addition bzw. Subtraktion der Adressdistanz 13 2 Rechnerarchitektur Befehlsabarbeitungsbeispiel Aufgabe: Addition aller Zahlen von 1 bis 100, Ergebnis soll in Register A stehen Variante A: Sequentielle Abarbeitung Adr. Befehl Erläuterung 8001 MOV RA, 1 Register A auf 1 setzen 8002 MOV RB, 2 Register B auf 2 setzen 8003 ADD RA, RB Addieren von Reg. A und B 8004 MOV RB, 3 Register B auf 3 setzen 8005 ADD RA, RB Addieren von Reg. A und B 8200 MOV RB, 100 Register B auf 100 setzen 8201 ADD RA, RB Addieren von Reg. A und B 8202 HALT Programm stoppen Fazit Speicheraufwändig (200 Befehle) unflexibel Variante B: Nicht sequentielle Abarbeitung Adr. Befehl Erläuterung 8001 MOV RA, 1 Register A auf 1 setzen 8002 MOV RB, 2 Register B auf 2 setzen 8003 ADD RA, RB Addieren von Reg. A und B 8004 ADD RB, 1 Addiere 1 zu Register B 8005 CMP RB, 100 Vergleich Reg. B mit 100 8006 JNZ 8003 Wenn R2 <= 100 springe zurück zu Adresse 8003 8007 HALT Programm stoppen Fazit Speichereffizient (7 Befehle) flexibel 99x 14 2 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 15 5

2 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 Rücksprungadresse nicht eindeutig muss beim Aufruf dem Unterprogramm übergeben werden Organisation: oftmals mittels Stack 16 2 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 17 2 Rechnerarchitektur Stack Teil des Hauptspeichers Stack PUSH POP Zugriffsbefehle PUSH Register Anfangsadresse Endeadresse Zeigeradresse 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!!! 18 6

2 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 19 2 Rechnerarchitektur IBM Personalcomputer PC XT Nach 1980 erster PC im Masseneinsatz Prozessor Intel 8088, auch I8086 mit Verarbeitungsbreite 16 Bit Hauptspeicher max. 1 MByte Größe, byteweise adressiert Speicherzugriff mit Wortbreite 16 Bit (2 Byte) Architektur Prozessor I8086 Hauptspeicher max. 1 MByte E/A-Einheiten seriell, parallel, Uhr, Steuerbus Adressbus Datenbus 20 2 Rechnerarchitektur IBM Personalcomputer PC XT Adressierung des Hauptspeichers Hauptspeicher: 1 MByte 16 Bit Adressbreite: erlaubt nur die Adressierung von 64 KByte Hauptspeicher Lösung: Segmentierung Einteilung des Hauptspeichers in Segmente Adressierung über 2 Adressangaben Anfangsadresse in einem Segmentregister Offsetadresse (Relativadresse bezogen auf Segmentanfang) Speicherzugriff (Adressberechnung) S 16 S 15 S 14 S 13 S 12 S 11 S 10 S 9 S 8 S 7 S 6 S 5 S 4 S 3 S 2 S 1 0 0 0 0 + O 16 O 15 O 14 O 13 O 12 O 11 O 10 O 9 O 8 O 7 O 6 O 5 O 4 O 3 O 2 O 1 = A 20 A 19 A 18 A 17 A 16 A 15 A 14 A 13 A 12 A 11 A 10 A 9 A 8 A 7 A 6 A 5 A 4 A 3 A 2 A 1 21 7

2 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) Vorteil Beim Laufen eines fehlerhaften Programms ist das Überschreiben der Speicherbereiche anderer Prozesse unmöglich Verringerte Absturzgefahr, erleichterte Fehleranalyse 22 2 Rechnerarchitektur Höhere Systemeffizienz Optimierungen Notwendig z.b. für Multitasking, Echtzeitverarbeitung Beispiele: Verringerung von Wartezeiten durch asynchrone Arbeit von CPU und Peripherie Reaktion auf äußere Ereignisse durch ein Unterbrechungsbehandlungssystem bessere Ressourcenauslastung durch parallele Abarbeitung mehrerer Programme 23 2 Rechnerarchitektur CPU Peripherie Synchrone Arbeit Prozessor IN 1 ms Verarbeiten/OUT 50 ms Zyklus Eingabe 100 ms Ausgabe 100 ms 24 8

2 Rechnerarchitektur CPU Peripherie Asynchrone Arbeit Prozessor IN 1 ms Verarbeiten/OUT 50 ms WAIT? Zyklus Eingabe 100 ms Ausgabe 100 ms 25 2 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) 26 2 Rechnerarchitektur Interrupts Nein Nächsten Befehl ausführen Neue Befehlsadresse ermitteln Solange letzter Befehl ungleich HALT Unterbrechungsereignis? Ja Retten der Befehlsadresse 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) 27 9

2 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 28 2 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 Hilfsmittel zur Kommunikation von Programmen und Betriebssystemfunktionen 29 2 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 (Sammel-)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 1 Geräteansteuerung 30 10

2 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 Adreßbus Steuerbus E/A-Daten Portadresse IN oder OUT Prozessor Gerät 1... 31 2 Rechnerarchitektur Cache Cache Ziel: Datenzugriffszeit auf langsamere Medien verkürzen Vergleich von Speichermedien: Medium Mittlere Zugriffszeit Erreichbare Datentransferrate in MB/s Register 0,1 ns 70000 Cache 2 ns 20000 Arbeitsspeicher 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.] 32 2 Rechnerarchitektur Cache Nutzung eines schnellen Pufferspeichers Verringerung der Zugriffzeit auf langsamere Medien und/oder Verringerung der Anzahl der Zugriffe Bereits beschaffte Daten verbleiben im Cache, so dass sie schneller wieder zur Verfügung stehen Es können auch Daten vorab beschafft werden, so dass sie sofort zur Verfügung stehen, wenn sie benötigt werden Konsistenzprobleme bei mehreren Kopien der Daten Anwendungsbeispiele Prozessorcache Festplattencache WWW-Seitencache 33 11

2 Rechnerarchitektur Cache Prozessorcache Schneller interner Speicher im Prozessor zur Aufzeichnung der letzten Hauptspeicherzugriffe Lese-Cache HS-Inhalte möglichst vom schnellen Cache lesen nicht vom (langsameren) Hauptspeicher Zeitersparnis, außerdem Busentlastung Schreib-Cache Prozessor schreibt Daten in Cache, Zwischenspeichern von Berechnungen oder späterer asynchroner Transport in den Hauptspeicher Problem Datenkonsistenz in Mehrprozessorsystemen Cache-Inhalt u.u. nicht aktuell, wenn andere Prozessoren den HS-Inhalt ändern 34 2 Rechnerarchitektur Cache Prozessorcache Nutzungsbeispiele Stack im Cache Stack-Daten werden eigentlich nur im Prozessor benötigt Busentlastung wesentliche Erhöhung der Abarbeitungsgeschwindigkeit Zyklus mit 100 Durchläufen mit je 100 Befehlen Lesen von 100 Befehlen aus HS beim ersten Durchlauf (danach Kopien aller Befehle im Cache) 99 weitere Zyklen: kein HS-Zugriff mehr erforderlich zum Lesen der Befehle 35 2 Rechnerarchitektur Zugriff auf E/A-Geräte: Treiber Steuerung der E/A-Geräte mit Hilfe von geräteabhängigen Steuerinformationen; Gerätesteuerung völlig abhängig vom Gerätetyp Treiber (Driver): Programm, das die Steuerung aller Geräte dieser Klasse übernimmt und auf eine einheitliche, für alle Geräte gleiche logische E/A-Schnittstelle abbildet Auch Nutzung virtueller Geräte ist über Treiber möglich Treiber sind stark abhängig von Hardware und Betriebssystem Standardisierte Treiber ermögliche Kommunikation mit Geräten unabhängig vom Hersteller Spezialisierte Treiber ermöglichen Nutzung einzigartiger Funktionen eines bestimmten Gerätes 36 12

2 Rechnerarchitektur Beispiel: Festplatte Magnetisches Massenspeichermedium Stapel von rotierenden, magnetisierbaren Platten, die auf Vorder- und Rückseite je einen Schreib-/Lesekopf haben synchrone Bewegung aller Köpfe Schreib-/Leseoperationen benötigen im Verhältnis zum Hauptspeicher sehr viel Zeit Aufbau: Kreisförmige Spuren (A), von außen nach innen nummeriert Alle Spuren mit gleicher Nummer = Zylinder Einteilung der Spuren in logische Einheiten von 512 Byte: Blöcke (C) Sektor (B): Gesamtheit aller Blöcke mit gleichen Winkelkoordinaten Zusammenfassung mehrere Blöcke zu Clustern (D), welche als einzelne logische Einheit adressiert werden 37 2 Rechnerarchitektur Beispiel: Festplatte Festplattentreiber Direktzugriff (Lesen/Schreiben) organisieren adressierte Datenblöcke (Zylinder-, Spur- und Sektornummer) Zugriffssteuerung durch Zusammenarbeit Treiber/Hardware Zugriffskamm an richtige Zylinderposition, auswählen Magnetkopf entsprechend Spurnummer, warten bis sich durch Rotation der angegebene Sektor nähert, Lesen/Überschreiben Datenblockinhalt Initialisierung bzw. Formatierung Magnetplatte beschreiben mit adressierbaren, aber leeren Blöcken Cache für Festplattenzugriff organisieren Schneller Zwischenspeicher zur Pufferung von Lese- und Schreibzugriffen Verringern des Einflusses der Verzögerungszeiten und der Datenübertragungsrate auf das System Lesecache / Schreibcache 38 2 Rechnerarchitektur Klassifikation nach Flynn SISD (Single Instruction Single Data) Ein Prozessor greift auf einen Speicher zu, evtl. prozessorinterne Pipeline SIMD (Single Instruction Multiple Data) Vektorrechner mit Array-Prozessoren gleichzeitige Ausführung der Berechnungen mit verschiedenen Daten MISD (Multiple Instruction Single Data) mehrere Prozessoren bearbeiten gleichzeitig dieselben Daten, praktisch ohne Bedeutung MIMD (Multiple Instruction Multiple Data) mehrere Prozessoren greifen auf unabhängige Speicher zu zeitparallele Bearbeitung mehrerer Programme möglich 39 13

2 Rechnerarchitektur Prozessor-Pipeline Die Abarbeitung eines Maschinenbefehls erfordert mehrere Takte, Zeitverlust, z.b. während CPU-interner Arbeit ist Bus untätig Pipeline: mehrere Befehle gleichzeitig im Prozessor in verschiedenen Bearbeitungsstufen Stau-Probleme: ungleiche Taktzahl bei Befehlen abhängige Befehlsfolgen A Befehlscode laden (IF, Instruction Fetch) B Instruktion dekodieren und Laden der Daten (ID, Instruction Decoding) C Befehl ausführen (EX, Execution) D Ergebnisse zurückgeben (WB, Write Back) 11.11.2014 Informatik-I (für Verkehrsingenieure) 40 2 Rechnerarchitektur Prozessoren mit mehreren Kernen Prozessor kann aus mehreren Subprozessoren (Kernen) bestehen gleichzeitige Abarbeitung mehrerer Programme oder vieler Befehle eines Programmes Parallele Arbeit in den Pipelines der Kerne Mehrfaches Vorhandensein einiger Caches Kerne teilen sich oft Elemente wie z.b. Gleitkommarecheneinheit Probleme: Stau / Konsistenz / Synchronisation Normaler Programmcode ungeeignet Program muss auf mehrere Kerne optimiert werden oder Compiler müssen optimierten Code erzeugen 41 2 Rechnerarchitektur Mehrprozessorsysteme Systeme können mehrere Prozessoren besitzen gleichzeitige Abarbeitung mehrerer Programme oder vieler Befehle eines Programmes Oft im Serverbereich anzutreffen Jeder Prozessor bildet im Gegensatz zu Mehrkernprozessoren eine abgeschlossene Einheit Problem: Alle Prozessoren nutzen selben Systembus, wodurch dieser zum Engpass werden kann 42 14

2 Rechnerarchitektur Verteilte Systeme Zusammenschluss mehrerer unabhängiger Rechner zu einem System gleichzeitige Abarbeitung mehrerer Programme Verfügen über keinen gemeinsamen Hauptspeicher Kommunikation über Nachrichten (Netzwerk) Problem: Aufteilung der Lösung eines Problems auf viele parallele Systeme Steuerung Synchronisation durch zentralen Punkt (Client-Server) durch Programmierung Subsystem Subsystem Subsystem P P HS P P HS P P HS 43 15