12. Datenverarbeitungssysteme in: http://marvin.sn.schule.de/~dvt/lpe/index.html 12.1 Weiterentwicklungen der Rechner-Architektur nach von Neumann Merkmale (zur Erinnerung) 1946 von John von Neumann vorgeschlagenes Konzept zur Gestaltung eines universellen Rechners besteht aus fünf Funktionseinheiten: vereinfacht: Steuerwerk und Rechenwerk zu einer Einheit zu Grenzen Hauptschwachstelle des von-Neumann-Rechners ist der sog. von-NeumannFlaschenhals. Das bedeutet, daß es nur ein Rechenwerk, einen System- und Steuerbus, einen gemeinsamen Speicher ein IO-Werk die Befehlsabarbeitungszyklen dürfen sich nicht überlappen. Dies alles verhindert die Herstellung von Prozessoren mit immer höherer Leistung. Deswegen können moderne Prozessoren ihrem Aufbau nach keine reinen von-Neumann-Prozessoren sein, sondern sie sind Weiterentwicklungen. Weiterentwicklungen 1. 2. 3. 4. Bussysteme Pipeline Cache DMA 1. Bussysteme (PC) Bus ... Mehrzahl von Signalleitungen, über die getrennt Steuer-, Daten- und Adreßsignale übertragen werden Unterscheidung: Bus im Prozessor (Daten/Steuer/Adreßbus) Datenbus auf der Hauptplatine (Verbindung der Funktionseinheiten) (Systembus) Busslot mit Adapterkarte ... Bustypen(Bussysteme): (siehe Lehrbuch!) Bussysteme unterscheiden sich durch zwei Merkmale: 1. Anzahl der Leitungen (8 – 32) 2. Taktfrequenz Merkmale verschiedener wichtiger Bustypen: Selbsstudium, Ergänzung 2. Pipeline von-Neumann-Rechner: während die Operation von der ALU ausgeführt wird, sind das Speicherwerk und das Leitwerk nicht ausgelastet Die Idee des Pipelining: die einzelnen Ausführungsphasen des Prozessors werden überlappt, um jede Einheit möglichst gleichmäßig und ohne Unterbrechungen arbeiten zu lassen. Dazu notwendig: Die Aufteilung des Maschinenbefehls in mehrere Teilaufgaben (Operationszyklen Mikroprogramme) Operationszyklen (zur Erinnerung): Holen Lesen Befehl vom Arbeitsspeicher holen, interpretieren Daten aus dem Arbeitsspeicher lesen Ausführen Befehl in ALU ausführen Schreiben Daten in Arbeitsspeicher den Arbeitsspeicher zurückschreiben Befehl holen Befehl holen Daten holen Befehl holen BIU (Fetch-Phase) B1 B2 B3 Befehlswarteschlange Befehl einlesen Befehl analysieren Befehl ausführen Befehl einlesen EU Execute -Phase Konflikte im Befehlsstrom 3. Cache-Speicher Cachespeicher: Cache ... Speicherzugriffsbeschleuniger, der die mittlere Zugriffszeit zum Hauptspeicher senkt CPU kann auf die Daten im Cache-RAM schneller zugreifen, als auf die Daten im normalen RAM (Hauptspeicher .. HS) Daten werden zuerst im Cache gesucht, dann im langsameren HS Speicherhierarchie (memory hierarchie): Lokalitätsprinzip: wird auf einen bestimmten Speicherbereich zugegriffen, so erfolgt der nächste Zugriff mit hoher Wahrscheinlichkeit auf den gleichen Speicherbereich d.h. zuletzt genutzte Daten sollten im schnellsten Speicher gehalten werden zwei Arten von Cache: Level-1 Cache: auch: L1, 1st level, internal, primary interner Prozessor-Cache Größe: ? meist: Datencache und Befehlscache getrennt Level-2 Cache: auch: L2, 2nd level, external, secondary externer Cache auf dem Motherboard oder einer Extraplatine Größe: ? SRAM (static RAM) kein Refresh der Speicherzellen notwendig! 4. DMA (Direkter Speicherzugriff ohne CPU) Selbsstudium, Ergänzung Begriffe des Speichermanagment Speicher: Funktionseinheit zum Aufbewahren von Daten meist mittels Flip-Flops realisiert Unterscheidungskriterien: Zugriffszeit: Zeit, die zum Lesen bzw. Schreiben einer Speicherzelle benötigt wird Zugriffszeit = Zeit zur Lokalisierung und Ansteuerung der betreffenden Speicherzelle + Schaltzeit der Speicherelemente Zugriffsart: wahlfreier Zugriff / direkter Zugriff (random access) jede Speicherzelle ist unabhängig von ihrer Position auf die gleiche Weise mit dem gleichen zeitlichen Aufwand erreichbar) z.B. Hauptspeicher (RAM), Magnetkernspeicher zyklischer / halbdirekter Zugriff Speicherzellen sind nur zeitperiodisch erreichbar z.B. Magnetplattenspeicher sequentieller Zugriff auf eine Speicherzelle kann erst dann zugegriffen werden, wenn auf eine bestimmte Anzahl anderer (meist davorliegender) Speicherzellen zugegriffen wurde z.B. Magnetbandspeicher, Streamer Zykluszeit: Zeitspanne vom Beginn eines Speichervorgangs bis zum Zeitpunkt, an dem die nächste Speicherung beginnen kann Zykluszeit = Zugriffszeit + Regenerationszeit Speicherkapazität: Anzahl der Speicherzellen (Kbyte, Mbyte, Gbyte, ...) statischer Speicher: nicht flüchtig, d.h. sie behalten ihren Inhalt solange eine Spannung anliegt dynamischer Speicher: flüchtig, d.h. sie verlieren ihre Informationen nach einem bestimmten Zeitintervall Zellen müssen vor Ablauf dieses Intervalls neu beschrieben werden (refresh) 12.2 Weitere Architekturen Selbsstudium, Ergänzung 12.2.1. Klassifizierung nach Flynn 1966 von Flynn entwickelt veraltete aber verbreitete und sehr universelle Klassifizierungsmethode (immer noch verwendet !) es erfolgt eine Unterscheidung im Hinblick auf die Quantität der Befehlsund Datenströme. Der Befehlsstrom leitet die Maschienenbefehle vom Hauptspeicher in das Leitwerk und von dort als entschlüsselte Steuerinformationen an das Rechenwerk weiter. Der Datenstrom überträgt die Daten, die vom Rechenwerk bearbeitet wurden zwischen dem Speicher und den Prozessorregistern. Die Einteilung unterscheidet folgende Möglichkeiten (Streams): single instruction - single data (SISD) single instruction - multiple data (SIMD) multiple instruction - single data (MISD) multiple instruction - multiple data (MIMD) SISD: SIMD: MISD: MIMD: ? ? ? ? 12.2.2 reale Systeme Personal Computer Workstation Mainframe Supercomputer Selbsstudium, Ergänzung der Merkmale 12.3 Prozessorarchitekturen CISC und RISC CISC: Complex Instruction Set Computer Computer mit umfangreichem Befehlssatz Vielzahl an Maschinenbefehlen (mehrere 100) sehr viele Adressierungsarten (ca. 200) Entwicklungsgedanke: ein Prozessor ist um so schneller, desto mehr Befehle er kennt aber: viele Programme greifen nur auf ca. 30% dieser Befehle häufig zurück restliche 70% der Befehle werden also kaum genutzt und hemmen somit die Performance des Prozessors anstelle der hardwaremäßigen Implementierung dieser Befehle in der CPU (Mikroprogramme) wäre auch eine Emulierung mittels Software möglich komplexes Steuerwerk (ca. 50% der Chipfläche) Mikroprogrammierung Beispiele für CISC-Prozessoren: i80x86 Motorola 680x0 RISC: Reduced Instruction Set Computer Computer mit reduziertem Befehlssatz weniger Befehle (30-100) weniger Befehlsformate und weniger Adressierungsarten (ca. 1-8) einfaches Steuerwerk (ca. 10% der Chipfläche) schneller als CISC keine Mikroprogrammierung, fest verdrahtet Speicherzugriff nur über die Befehle LOAD und STORE ausgeprägtes Pipelining Befehlsausführung in einem Taktzyklus Beispiele für RISC-Prozessoren: i860 SPARC MIPS R4000 12.4 Verarbeitungsgeschwindigkeit und –Breite Selbsstudium Verarbeitungsgeschwindigkeit Das Prozessor-Speicher-System bestimmt im wesentlichen die Leistungsfähikgeit eines Rechners (der Prozessor kann höchsten soviel verarbeiten, wie ihm der Speicher liefert) die theoretische Leistung des Systems ist abhänig von der durchschnittlichen Taktzyklen pro Befehl (CPI-Wert) Leistungsermittlung durch Analyse von Art und der Häufigkeit der benutzten Maschinenbefehle: ti ist die Operationszeit des i-ten Befehls Pi relative Häufigkeit des Befehls im Befehlssatz Vorsicht ist bei Pipelinerechnern! (die reine Ausführungszeit ist kleiner als die Operationszeit eines Befehls) Die Verarbeitungsgeschwindigkeit des Systems läßt sich mit der folgenden Formel angeben: L wird in MIPS gemessen. (Millions Instructions Per Second) Im numerischen Bereich ist das Äquvalent (M)FLOPS. Beispiel: Der Rechner RS/6000 von IBM kann im Idealfall eine Operation pro Taktzyklus schlucken. Er ist in vier parallele Funktionseinheiten eingeteilt: Branch Unit Sprungbefehlverarbeitung Condition Code Vergleichsbefehle Integer Unit Taschenrechnereinheit Floating-Point Unit Schnelle Taschenrechnereinheit mit zwei Befehlen pro Zyklus Dieses System liefert nun fünf Ergebnisse pro Taktzyklus, also CPI = 0,2 und bei 30 MHz ergeben sich: Verarbeitungsbreite Verarbeitungsbreite := Speicherbedarf pro Durchschnittsbefehl * Verarbeitungsgeschwindigkeit Nachbrenner für das Prozessor/Speichersystem ist das Adresspipelinig und der BURST-Modus (Beim Adresspipelining wird die neue Adresse an den Bus gelegt, während die letztadressierten Daten noch gelesen werden). Dadurch ein halber Takt mehr Decodierungszeit für das RAM Im Burst Modus wird einmal die Startadresse an das intelligente RAM, oder Controller übergeben, und bei den nachfolgenden Zyklen werden nur noch Daten gelesen (Die Adressen werden dann automatisch vom Prozessor und RAM Controller erhöht.) Beispiel: Der 486DX50 braucht im BURST Modus 5 Takte pro 4 mal 32 Bit [16 Bytes]. Das macht eine Verarbeitungsbreite von Verarbeitungsbreitei486 = 16[Bytes]/5*20*10-9[s] = 160[MB/s] Ohne den BURST Mode werden 8 Takte für 4 mal 32 Bit gebraucht, die Bandbreite senkt sich auf 100 MB/s. Weitere Hilfsmittel sind getrennte Busse für Daten und Befehle, Caches und Interleaving, d.h., Speicheraufteilung in mehrere Bänke, so daß man parallel aus allen Speicherbanken lesen und schreiben kann. 12.5 Peripherie Selbsstudium Vorträge/ Ausarbeitungen (Word oder PP) 1. Monitore (Masken/TFT), Funktionsweise, Zusammenhang Auflösung, Frequenzen, Anzahl Farben 2. Drucker Tinte 3. Drucker Laser 4. Festplatten/Diskette, Funktion, Organisation ,Berechnung Speicherkapazität 5. DFÜ-Geräte ( Modem, ISDN usw.) 6. Massenspeicher wie CD-ROM, DVD 7. Scanner 12.6 Berechnungen Selbsstudium