1. Grundkonzepte des Rechneraufbaus



Ähnliche Dokumente
1. Grundkonzepte des Rechneraufbaus

Teil VIII Von Neumann Rechner 1

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

Microcontroller Kurs Microcontroller Kurs/Johannes Fuchs 1

Kapitel 3. Codierung von Text (ASCII-Code, Unicode)

Daten, Informationen, Kodierung. Binärkodierung

Zahlensysteme: Oktal- und Hexadezimalsystem

1. Übung - Einführung/Rechnerarchitektur

Grundlagen der Informatik

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

5 Speicherverwaltung. bs-5.1 1

Johann Wolfgang Goethe-Universität

1Computergrundlagen = 1*16 + 0*8 + 1*4 + 1*2 + 0*1

Informationsdarstellung im Rechner

Computer-Architektur Ein Überblick

Im Original veränderbare Word-Dateien

Ein polyadisches Zahlensystem mit der Basis B ist ein Zahlensystem, in dem eine Zahl x nach Potenzen von B zerlegt wird.

Die Mikroprogrammebene eines Rechners

Aufbau und Funktionsweise eines Computers

Zahlensysteme Das 10er-System

Das Prinzip an einem alltäglichen Beispiel

Proseminar Rechnerarchitekturen. Parallelcomputer: Multiprozessorsysteme

1. Stellenwerte im Dualsystem

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Zahlensysteme und Datendarstellung

2.2 Rechnerorganisation: Aufbau und Funktionsweise

Mikrocontroller Grundlagen. Markus Koch April 2011

Einführung in die Informatik I

Einführung in die Programmierung

Prozessor HC680 fiktiv

3 Rechnen und Schaltnetze

Zahlensysteme. von Christian Bartl

BITte ein BIT. Vom Bit zum Binärsystem. A Bit Of Magic. 1. Welche Werte kann ein Bit annehmen? 2. Wie viele Zustände können Sie mit 2 Bit darstellen?

Einführung in die technische Informatik

Grundlagen der Informatik 2 Grundlagen der Digitaltechnik. 1. Zahlensysteme

1 Aufgaben zu Wie funktioniert ein Computer?

Aufbau und Funktionsweise eines Computers

ZENTRALEINHEITEN GRUPPE

Grundlagen der Rechnerarchitektur

Zahlensysteme. Zahl Stellenwert Zahl Zahl =

Grundbegriffe der Informatik

Kap 4. 4 Die Mikroprogrammebene eines Rechners

Informationssysteme Gleitkommazahlen nach dem IEEE-Standard 754. Berechnung von Gleitkommazahlen aus Dezimalzahlen. HSLU T&A Informatik HS10

Daten verarbeiten. Binärzahlen

Facharbeit Informatik. Thema:

Modul 114. Zahlensysteme

Rechner Architektur. Martin Gülck

Rechnerorganisation 2 TOY. Karl C. Posch. co1.ro_2003. Karl.Posch@iaik.tugraz.at

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben. Präsenzaufgaben

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

Der von Neumann Computer

Computergruppe Heimerdingen Basiskurs. Karlheinz Wanja & Richard Zeitler

Universität Bielefeld Technische Fakultät AG Rechnernetze und verteilte Systeme. Vorlesung 4: Memory. Wintersemester 2001/2002. Peter B.

Ein kleines Computer-Lexikon

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

Kapitel 4A: Einschub - Binärcodierung elementarer Datentypen. Einschub: Teile aus Kapitel 2 in Küchlin/Weber: Einführung in die Informatik

Von Bits, Bytes und Raid

2 Darstellung von Zahlen und Zeichen

Daten, Dateien, Datenspeicher

Hauptspeicherinhalt. Ton. Vektorgrafik Bitmapgrafik Digit. Video. 1. Darstellung von Daten im Rechner. Abb. 1.1: Einteilung der Daten

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

QR Code. Christina Nemecek, Jessica Machrowiak

Das Rechnermodell von John von Neumann

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Zahlensysteme. Digitale Rechner speichern Daten im Dualsystem 435 dez = binär

Im Original veränderbare Word-Dateien

D A T E N... 1 Daten Micheuz Peter

Zahlendarstellungen und Rechnerarithmetik*

Beschaffung vom Informationssystemen Datenorganisation Kommunikation

Computerarithmetik ( )

DIE SCHRITTE ZUR KORREKTEN LIZENZIERUNG

Grundlagen der Informatik Übungen 1.Termin

Praktikum Mikrocomputertechnik

Kapitel 6 Anfragebearbeitung

0 Im folgenden sei die Wortlänge gleich 8 (d. h.: es wird mit Bytes gearbeitet).

Binär Codierte Dezimalzahlen (BCD-Code)

Technische Informatik 2 Adressierungsarten

Grundlagen der Rechnerarchitektur. Einführung

Grundlagen der Rechnerarchitektur

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 18

Architektur Verteilter Systeme Teil 2: Prozesse und Threads

Grundlagen der Informatik I Informationsdarstellung

Repräsentation von Daten Binärcodierung von rationalen Zahlen und Zeichen

Fehlerhafte Codes und Zauberei

Die Subnetzmaske/Netzwerkmaske

Installationsanleitung

Lösung 1. Übungsblatt

Klausur "Informationstechnische Grundlagen" WS 2012/2013

Windows Server 2008 (R2): Anwendungsplattform

2004, Thomas Barmetler Automatisierungstechnik - Einstieg. Das EVA-Prinzip

Leseprobe. Taschenbuch Mikroprozessortechnik. Herausgegeben von Thomas Beierlein, Olaf Hagenbruch ISBN:

Anleitung zur Nutzung des SharePort Utility

Konzepte von Betriebssystemkomponenten Disk-Caches und Dateizugriff

Kapitel 2. Zahlensysteme, Darstellung von Informationen

Übung zur Wirtschaftsinformatik I. Zahlensysteme / Codierung

(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl (gbs-ws11@mailschlichter.informatik.tu-muenchen.de)

Tutorium Rechnerorganisation

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

Kapitel 1. Zahlendarstellung. Prof. Dr. Dirk W. Hoffmann. Hochschule Karlsruhe w University of Applied Sciences w Fakultät für Informatik

SSDs und Flash Memory. Matthias Müller 16.Juni 2010 Institut für Verteilte Systeme

Transkript:

1. Grundkonzepte des Rechneraufbaus Computer Processor Memory Devices Control Input Datapath Output

von Neumannsches Rechnerkonzept Binärkodierungen Modifikationen und Erweiterungen 22

Das von Neumannsche Rechnerkonzept Rechner bestehen aus 4 Werken: Kontrolleinheit, Leitwerk interpretiert Programme Rechenwerk führt Operationen aus Haupt- bzw. Arbeitsspeicher enthält Programme und Daten Computer Processor Control Datapath Memory Ein/Ausgabewerk kommuniziert mit Umwelt, incl. Sekundärspeicher Die Struktur des Rechners ist unabhängig vom bearbeiteten Problem (-> Programmsteuerung) Programme und Daten stehen im selben Speicher und können durch die Maschine modifiziert werden. Der Hauptspeicher ist in Zellen gleicher Größe geteilt, die durch fortlaufende Nummern (Adressen) bezeichnet werden. Devices Input Output 23

Organisationsplan eines von Neumann-Rechners Prozessor (CPU) Leitwerk Rechenwerk BZ IR MAR Hauptspeicher Programme Daten Daten Kontrolle AC MBR E/A Werk E/A-Geräte Netzkopplung Peripheriespeicher Prozessor, Zentraleinheit (CPU = Central Processing Unit) mit Rechenwerk (ALU = Arithmetic Logical Unit) Ausführung von Berechnungen Register: AC - Akkumulator MBR - Speicherpuffer Leitwerk, Kontrolleinheit Dekodierung von Befehlen Steuerung der Befehlsausführung Register: BZ - Befehlszähler IR - Instruktionsregister MAR - Speicheradressregister 24

Organisationsplan eines von Neumann-Rechners Prozessor (CPU) Leitwerk Rechenwerk BZ IR MAR Hauptspeicher Programme Daten Daten Kontrolle AC MBR E/A Werk E/A-Geräte Netzkopplung Peripheriespeicher Speicher ROM (Read Only Memory) Festwertspeicher, Daten fest eingebrannt, nicht mehr veränderbar => Mikroprogrammierung RAM (Random Access Memory) Speicher mit wahlfreiem Zugriff, Befehle und Daten DRAM (Dynamic RAM): eigentlicher Arbeitsspeicher SRAM (Static RAM): schneller Pufferspeicher (Cache) DRAM s haben eine größere Kapazität, aber höhere Zugriffszeiten als SRAM s. 25

Speicherkenngrößen Grundeinheit: 1 Bit (binary digit) Speicher = Folge von N Zellen gleicher Größe m (in Bits), meist m=8 -> 1 Byte (binary term) Oft sind auch Vielfache von Speicherzellen direkt adressierbar: 2 Bytes = Halbwort 4 Bytes = Wort 8 Bytes = Doppelwort 2 10 =1024 ~ 10³ => 1K Kilo 2 20 ~ 10 6 => 1M Mega 2 30 ~ 10 9 => 1G Giga 2 40 ~ 10 12 => 1T Tera 2 50 ~ 10 15 => 1P Peta 2 60 ~ 10 18 => 1E Exa Anzahl N der Speicherzellen ist meist große Zweierpotenz: N = 2 n -> n-bit-adressen von 0 bis 2 n -1 z.b.: 16 Bit Adressen => 64 KB Speicher, 32 Bit Adressen => 4 GB Speicher 26

Organisationsplan eines von Neumann-Rechners Prozessor (CPU) Leitwerk Rechenwerk BZ IR MAR Hauptspeicher Programme Daten Daten Kontrolle AC MBR E/A Werk E/A-Geräte Netzkopplung Peripheriespeicher Ein-/Ausgabewerk mit parallel arbeitendem Spezialprozessor (PIO - Parallel I/O) mit direktem Speicherzugriff (DMA - Direct Memory Access) Ein/Ausgabe von Programmen und Daten Netzkopplung: Local Area Network (LAN), z.b. Ethernet Kommunikation zwischen Computern gemeinsame Nutzung von Speicher oder Ein/Ausgabegeräten nicht-lokaler Rechnerzugang Peripheriespeicher, Hintergrundspeicher: permanente Datenspeicherung mit magnetisierbaren oder optischen Medien (CDs, DVDs) hohe Kapazität, langsamer Zugriff 27

Organisationsplan eines von Neumann-Rechners Prozessor (CPU) Leitwerk Rechenwerk BZ IR MAR Daten-/Adressbus Hauptspeicher AC MBR E/A Werk Busse Medien zum Transfer von Daten und Steuerinformationen zwischen mehreren funktionellen Einheiten des Rechners Protokolle zur Regelung der Busbenutzung erforderlich uni- oder bidirektionale Busse bitseriell (1 Leitung) oder parallel (Leitungsbündel) Programme Daten E/A-Geräte Netzkopplung Peripheriespeicher 28

Arbeitsweise eines von Neumann-Rechners Das Programm besteht aus einer Folge von Befehlen (Instruktionen), die nacheinander (sequentiell) ausgeführt werden. Von der Folge kann durch bedingte und unbedingte Sprungbefehle abgewichen werden, die die Programmfortsetzung aus einer anderen Zelle bewirken. Bedingte Sprünge sind von gespeicherten Werten abhängig. Die Maschine benutzt Binärcodes, Zahlen werden dual dargestellt. Befehle und andere Daten müssen geeignet kodiert werden. Phasen einer Befehlsausführung 1. 1. Befehlsholphase (Instruction Fetch, Fetch, IF): IF): Laden Laden eines einesbefehls aus ausdem Speicher 2. 2. Dekodierphase (Instruction Decode, ID): ID): Befehl Befehlinterpretieren 3. 3. Operandenholphase (Operand Fetch, Fetch, OF): OF): Notwendige Operanden aus ausdem Speicher holen holen 4. 4. Ausführungsphase (Execution, EX): EX): eigentliche Ausführung des des Befehls Bitfolgen im Speicher sind nicht selbstidentifizierend. Der Rechner entscheidet aufgrund des zeitlichen Kontextes, ob eine Bitfolge als Befehl, Adresse oder Datum zu interpretieren ist. 29

Zahlendarstellungen Sei b>1 eine beliebige natürliche Zahl. Dann heißt Σ(b) := {0,...,b-1} das Alphabet des b-adischen Zahlsystems. Beispiele: b = 10 Dezimalsystem Σ(10) = {0,...,9} b = 2 Dualsystem Σ(2) = {0,1} b = 8 Oktalsystem Σ(8) = {0,...,7} b = 16 Hexadezimalsystem Σ(16) = {0,..,9,A,B,C,D,E,F} b = 256 -> ASCII (American Standard Code for Information Interchange) b = 60 -> Zeitrechnung 30

b-adische Darstellung natürlicher Zahlen Sei b eine natürliche Zahl mit b >1. Sei n eine natürliche Zahl. Jede natürliche Zahl z mit 0 <= z <= b n -1 ist eindeutig als Wort der Länge n über Σ(b) darstellbar: n-1 z = Σ z i b i mit 0 <= z i < b i=0 Ziffernschreibweise: z = (z n-1 z n-2... z 1 z 0 ) b Hintergrund: besonders wichtig: b = 2 Es gibt b n Folgen der Länge n über Σ(b). (feste Wortlänge durch führende Nullen ) 31

Dualsystem Mit n binären Ziffern (Z n-1... Z 1 Z 0 ) 2 können die Zahlen Z n-1 2 n-1 +... + Z 1 2 1 + Z 0 dargestellt werden. Beispiel: Die Bitfolge 10110001110011 entspricht der Zahl 11379: (10110001110011) 2 = 1 2 13 + 0 2 12 +1 2 11 + 1 2 10 + 0 2 9 + 0 2 8 + 0 2 7 + 1 2 6 13 12 9 11 10 8 7 + 1 2 5 + 1 2 4 + 0 2 3 + 0 2 2 + 1 2 1 + 1 2 0 6 5 4 3 2 1 = 8192 + 2048 + 1024 + 64 + 32 + 16 + 2 + 1 = (11379) 10 32

Umwandlung zwischen Zahlsystemen Ist eine natürliche Zahl k in einem Zahlensystem zur Basis b dargestellt, so ist die letzte Ziffer gerade k mod b und die übrigen Ziffern stellen k div b dar. ( 1 0 1 1 0 0 0 1 1 1 0 0 1 1 ) 2 = (11379 ) 10 (11379 ) 10 div 2 = (5699) 10 (11379 ) 10 mod 2 Die Darstellung einer Zahl im Binärsystem gewinnt man daher durch fortgesetztes Dividieren durch 2 und die Berechnung des Restes. 33

Beispiel (Divisionsrestverfahren) Die Zahl (4711) 10 entspricht der Binärzahl (1001001100111) 2. 4711 div 2 = 2355 Rest 1 2355 div 2 = 1177 Rest 1 1177 div 2 = 588 Rest 1 588 div 2 = 294 Rest 0 294 div 2 = 147 Rest 0 147 div 2 = 73 Rest 1 73 div 2 = 36 Rest 1 36 div 2 = 18 Rest 0 18 div 2 = 9 Rest 0 9 div 2 = 4 Rest 1 4 div 2 = 2 Rest 0 2 div 2 = 1 Rest 0 1 div 2 = 0 Rest 1 34

Oktal- und Hexadezimalsystem einfache lokale Umwandlung zwischen Dual- // Oktal- und und Hexadezimalsystem kompakte Darstellung von Binärzahlen Dezimal- Binärsystem Oktalsystem Hexadezimalsystem system 123 0111 1011 173 7B 1984 0111 1100 0000 3700 7C0 1994 0111 1100 1010 3712 7CA 2000 0111 1101 0000 3720 7D0 2004 0111 1101 0100 3724 7D4 43690 1010 1010 1010 1010 125252 AAAA 35

Das Hexadezimalsystem Je 4 Bits entsprechen genau einer Hexadezimalziffer: 0000 = 0 0001 = 1 0010 = 2 0011 = 3 0100 = 4 0101 = 5 0110 = 6 0111 = 7 1000 = 8 1001 = 9 1010 = A 1011 = B 1100 = C 1101 = D 1110 = E 1111 = F Wie das folgende Beispiel zeigt, ist der Grund für die Verwendung des Hexadezimalsystems die übersichtlichere Darstellung einer Bitfolge durch Hexadezimalziffern: 1100 1100 1011 10111110 11100110 0110 0011 0011 0000 0000 1111 11111010 1010 C B E 6 3 0 F A 0101 01010111 0111 0011 0011 1011 1011 1000 1000 1101 1101 1011 1011 0000 0000 5 7 3 B 8 D B 0 36

Codes DIN 44300: Ein Code ist eine Vorschrift für die eindeutige Zuordnung (Kodierung) der Zeichen eines Zeichenvorrats zu denjenigen eines anderen Zeichenvorrats. Codes numerische Codes alphanumerische Codes Wortcodes Zifferncodes Textcodes Grafikcodes z.b. Graycode BCD-Code ASCII Unicode Lauflängen-Code 37

Numerische Codes Wortcodes: Kodierung von Zahlen als Ganzes Beispiel: Graycode: Von einer Zahl zur nächsten ändert sich genau ein Bit im Code 0 000 1 001 2 011 3 010 4 110 5 111 6 101 7 100 Bildungsvorschrift? Zifferncodes: einzelne Kodierung von Ziffern Beispiel: BCD (Binary Coded Digits): 4 Bits pro Dezimalziffer 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001 Die Bitmuster 1010 1111 werden nicht verwendet. 38

Alphanumerische Codes Textcodes Kodierung von Buchstaben, Satzzeichen, Sonderzeichen, Steuerzeichen etc. ASCII American Standard Code for Information Interchange 7 Bits pro Zeichen -> 128 Zeichen Unicode (Internationaler Standard) 16 Bits -> 65536 Codepunkte 0... 127 entspricht ASCII Grafikcodes Kodierung von Bildpunkten, etwa 4 Bits für 16 Graustufen oder 8 Bits for 256 Graustufen bei Schwarz- Weiß-Bildern Beispiel: Lauflängenkodierung Speichere in zwei Bytes 1. Anzahl aufeinanderfolgender Bildpunkte mit gleicher Graustufe 2. Graustufe => Kompression bei vielen benachbarten gleichen Bildpunkten 39

Modifikationen und Erweiterungen des von Neumann-Konzeptes Fließbandverarbeitung Parallelisierung auf verschiedenen Ebenen (Rechen-/Kontrollwerke, Speicher) Verfeinerungen der Speicherstruktur ==> Virtualisierung, Hierarchisierung 40

Fließbandverarbeitung zentrales Merkmal von RISC-Prozessoren überlappende Ausführung mehrerer Instruktionen aufeinanderfolgende Phasen der Instruktionsabarbeitung werden in separaten Verarbeitungseinheiten durchgeführt. Zwischenspeicher Zwischenspeicher Zwischenspeicher Stufe 1 Stufe 2... Stufe k Zwischenspeicher 41

Pipelining is Natural! Laundry Example Ann, Brian, Cathy, Dave each have one load of clothes to wash, dry, and fold Washer takes 30 minutes David Pattersons Erklärung der Fließbandverarbeitung (aus Course CS 152, Berkeley Univ. 1997) A B C D Dryer takes 30 minutes Folder takes 30 minutes Stasher takes 30 minutes to put clothes into drawers 42

Sequential Laundry 6 PM 7 8 9 10 11 12 1 2 AM T a s k O r d e r 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 Time A B C D Sequential laundry takes 8 hours for 4 loads If they learned pipelining, how long would laundry take? 43

Pipelined Laundry: Start work ASAP 12 2 AM 6 PM 7 8 9 10 11 1 T a s k O r d e r A B C D 30 30 30 30 30 30 30 Time Pipelined laundry takes 3.5 hours for 4 loads! 44

Pipelining Lessons T a s k O r d e r 6 PM 7 8 9 Time 30 30 30 30 30 30 30 A B C D Pipelining doesn t help latency of single task, it helps throughput of entire workload Multiple tasks operating simultaneously using different resources Potential speedup = Number pipe stages Pipeline rate limited by slowest pipeline stage Unbalanced lengths of pipe stages reduces speedup Time to fill pipeline and time to drain it reduces speedup Stall for Dependences 45

Phasen der Befehlsausführung IF - Instruction Fetch Befehlsbereitstellung Laden der Instruktion aus dem Speicher (Cache) ID - Instruction Decode Befehlsdekodierung Analyse der Instruktion, Vorbereitung der Ausführung OF - Operand Fetch Holen der Operanden Laden der Operandenregister EX - Execution Ausführung Ausführung der Instruktion im Rechenwerk WB - Write Back Zurückschreiben Rückschreiben des Ergebnisses in Zielregister IF ID OF EX WB 46

Befehlsbearbeitung in einer 5-stufigen Pipeline Instruktion 1 2 3 4 5 6 Pipeline-Takt 1 2 3 4 5 6 7 8 9 10 IF ID OF EX WB IF ID OF EX WB IF ID OF EX WB IF ID OF EX WB IF ID OF EX WB IF ID OF EX WB Pipeline-Inhalt im 6.Takt 47

Superskalare Architekturen EX1 IF ID OF EX2 WB MEM FP Pipeline mit mehreren Funktionseinheiten Funktionseinheiten wie MEM (Speicherzugriff) oder FP (Gleitkommaoperation) benötigen mehr Takte als die übrigen Stufen. 48

Parallelrechner Speicher Adressraum gemeinsam verteilt global SMP (symmetrischer Multiprozessor) P P... P Netzwerk (Bus) M UMA - uniform memory access physikalisch verteilt DSM (distributed shared memory) P P P M M M Verbindungsnetzwerk NUMA - non-uniform memory access Multicomputer, DM(distributed memory) Verbindungsnetzwerk P P send P receive M M M (N)UCA - (non-)uniform communication architecture 49

Virtualisierung des Speichers Code logische Sicht Grund: Programme wurden so groß, dass sie nicht mehr in den Hauptspeicher passten => Modularisierung Methode: Hin- und Herladen von Programmteilen zwischen Hintergrundspeicher und Hauptspeicher durch das Betriebssystem Programmadressen sind virtuelle Adressen, die vom Betriebssystem in physikalische Adressen umgesetzt werden. Vorteile: - virtueller Adressraum größer als physikalischer - Programm ist unabhängig von Datenplatzierung im Hauptspeicher - Vereinfachung von Mehrbenutzerbetrieb P: Speicher Stack Speicherverwaltung/ Betriebssystem physikalische Sicht: Hauptspeicher / FFFFh Festplatte A d r e s s e n RAM 0000h Speicherverwaltung/ Betriebssystem HD 50

Von Neumannscher Flaschenhals Die Schnittstelle zwischen Prozessor und Speicher wird von Neumannscher Flaschenhals (engl. bottleneck) genannt. Die Leistungsdiskrepanz zwischen Prozessor und Speicher wird immer größer. Kapazität Geschw. Logik: 2x in 3 Jr 2x in 3 Jr DRAM: 4x in 3 Jr 2x in 10 Jr Disk: 4x in 3 Jr 2x in 10 Jr Problem Daten werden vom Prozessor schneller verarbeitet als sie aus dem Speicher gelesen oder in den Speicher geschrieben werden können. DRAM Jahr Größe Taktzeit 1000:1! 2:1! 1980 64 Kb 250 ns 1983 256 Kb 220 ns 1986 1 Mb 190 ns 1989 4 Mb 165 ns 1992 16 Mb 145 ns 1995 64 Mb 120 ns 51

1000 100 10 1 Moore s Law CPU µproc 60%/Jahr (2X/1.5Jahr) Prozessor-Speicher Leistungsschere (wächst 50% / Jahr) DRAM DRAM 9%/Jahr (2X/10 Jahren) 52 Leistung 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 Zeit

von Neumannscher Flaschenhals Beispiel: Ausführung der Anweisung A: = B + C => Problem: Verwendung von Adressen für Operanden und Ergebnisse P R O Z E S S O R LW Befehlsadresse HS LW Befehl HS LW Adresse von B HS RW B HS LW Adresse von C HS RW C HS LW Adresse von A HS RW A = B + C HS H A U P T S P E I C H E R IF ID OF EX Prozessor /Speicherschnittstelle kritisch für Leistung des Gesamtsystems Dies war früher wegen hoher Gatterschaltzeiten unproblematisch, aber durch die Fortschritte der Halbleitertechnik wird die Diskrepanz zwischen der Prozessorgeschwindigkeit und den Speicherzugriffszeiten immer größer. 53

Beschleunigung der Prozessor/Speicherkommunikation Processor Control Ziel: Arbeitsspeicher so schnell wie schnellste verfügbare Speicherchips und so groß wie die größten Lösung: hierarchische Speicherorganisation schnell klein teuer Datapath Memory Memory Prozessor kommuniziert mit top-down organisierter Folge von Speichern mit wachsender Entfernung vom Prozessor Memory steigen Größe und Zugriffszeit Memory fällt der Preis (pro Bit) Ausschnittshierarchie: Alle Daten einer Ebene sind auch in der darunterliegenden Ebene gespeichert. langsam groß billig Memory 54

Speicherhierarchie aktuelle Daten Register aktuelle Programme mit Daten aktuelle oder oft benutzte Daten alle ruhenden Daten des Systems (Progr. & Daten) Plattenspeicher Cachespeicher aktueller Ausschnitt aus dem Hauptspeicher Hauptspeicher Magnetband (Archiv) Compiler Hardware Benutzerprogr, Betriebssystem Benutzerprogr., Operateur 55

Lokalität Lokalitätsprinzip: 90/10-Regel 90% der Daten eines Programms werden aus 10% des vom Programm insgesamt benötigten Speicher geladen. Zugriffswahrscheinlichkeit 0 Adressbereich 2^n - 1 Temporale Lokalität: Halte zuletzt benutzte Daten beim Prozessor Zum Prozessor Vom Prozessor Räumliche Lokalität: Bewege Blöcke benachbarter Speicherzellen Richtung Prozessor Obere Speicherebene Block X Untere Speicherebene Block Y 56