1. Grundkonzepte des Rechneraufbaus

Ähnliche Dokumente
1. Grundkonzepte des Rechneraufbaus

Teil VIII Von Neumann Rechner 1

Aufbau und Funktionsweise eines Computers

2.2 Rechnerorganisation: Aufbau und Funktionsweise

Computer-Architektur Ein Überblick

Im Original veränderbare Word-Dateien

Das Rechnermodell von John von Neumann

Das Prinzip an einem alltäglichen Beispiel

Johann Wolfgang Goethe-Universität

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

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

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

Proseminar Rechnerarchitekturen. Parallelcomputer: Multiprozessorsysteme

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

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

1. Übung - Einführung/Rechnerarchitektur

Microcontroller Kurs Microcontroller Kurs/Johannes Fuchs 1

Rechner Architektur. Martin Gülck

3 Rechnen und Schaltnetze

Grundlagen der Rechnerarchitektur

Technische Informatik. Der VON NEUMANN Computer

Die Mikroprogrammebene eines Rechners

Aufbau von modernen Computersystemen

Daten, Informationen, Kodierung. Binärkodierung

Prinzip 8 der von-neumann Architektur: (8) Alle Daten werden binär kodiert

Ein kleines Computer-Lexikon

Informatik I WS 07/08 Tutorium 24

Parallelrechner (1) Anwendungen: Simulation von komplexen physikalischen oder biochemischen Vorgängen Entwurfsunterstützung virtuelle Realität

Mikroprozessor als universeller digitaler Baustein

Grundbegriffe der Informatik

Instruktionssatz-Architektur

Darstellung von Informationen

C. BABBAGE ( ): Programmgesteuerter (mechanischer) Rechner

Prozessor HC680 fiktiv

Programmierung Paralleler Prozesse

L3. Datenmanipulation

Technische Informatik I

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

Mutterplatine, Hauptplatine, Systemplatine, Systemboard

Kapitel 2. Zahlensysteme, Darstellung von Informationen

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

Mehrprozessorarchitekturen (SMP, Cluster, UMA/NUMA)

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

1. Geschichte des Computers

Brückenkurs / Computer

Lehrangebot Grundlagen der Bauinformatik

Zahlensysteme: Oktal- und Hexadezimalsystem

Enterprise Computing

Inhalte der heutigen Vorlesung

DIGITALTECHNIK 02 ZAHLENSYSTEME

Informationsdarstellung im Rechner

1. Stellenwerte im Dualsystem

IT- und Medientechnik

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

Daten. Wichtige Informatik-Prinzipien. Informatik-Prinzipien Analoge & digitale Daten Zahlensysteme Zeichen-Codes Datensicherheit

Zentraleinheit (CPU) Arbeitsspeicher. Ausgabegeräte

Einführung in die Informatik I

Aufbau und Funktionsweise eines Computers

Modul 114. Zahlensysteme

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

TOTAL DIGITAL - Wie Computer Daten darstellen

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

Binärcodierung elementarer Datentypen: Darstellung negativer Zahlen

Programmieren. Kapitel 3: Wie funktioniert ein moderner Computer? Wintersemester 2008/2009. Prof. Dr. Christian Werner

Kap 4. 4 Die Mikroprogrammebene eines Rechners

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

5 Speicherverwaltung. bs-5.1 1

Kapitel 2 Grundlegende Konzepte. Xiaoyi Jiang Informatik I Grundlagen der Programmierung

Repräsentation von Daten: Binär-, Oktal- u. Hexadezimalcodierung von ganzen und rationalen Zahlen

Lektion 1: Von Nullen und Einsen _ Die binäre Welt der Informatik

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

Technische Informatik 1

Grundlagen der Informatik

Klausur in 12.1 Themen: Zahlsysteme, Grundlagen von Delphi (Bearbeitungszeit: 90 Minuten)

Grundlagen der Informatik 2 Grundlagen der Digitaltechnik. 1. Zahlensysteme

Kapitel VI. Speicherverwaltung. Speicherverwaltung

Intel 80x86 symmetrische Multiprozessorsysteme. Eine Präsentation im Rahmen des Seminars Parallele Rechnerarchitekturen von Bernhard Witte

Herzlich Willkommen zur Informatik I. Prozessor (CPU) Ziel: Computerwerbung verstehen und kritisch beurteilen können

11.0 Rechnerarchitekturen

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

Einführung in die technische Informatik

HW/SW Codesign 5 - Performance

DV- und Informationssysteme (ID11)

Grundlagen der Rechnerarchitektur. Einführung

bereits in A,3 und A.4: Betrachtung von Addierschaltungen als Beispiele für Schaltnetze und Schaltwerke

Technische Informatik

3.Vorlesung Systemsoftware (SYS) Hochschule Mannheim

Bestandteile eines Computers

Inhaltsverzeichnis. 1.1 Der Begriff des Betriebssystems 1.2 Zur Geschichte der Betriebssysteme 1.3 Aufbau eines Rechners

Übung -- d001_7-segmentanzeige

Informatik Computer-Hardware

Daten, Dateien, Datenspeicher

Java-Prozessoren. Die Java Virtual Machine spezifiziert... Java Instruktions-Satz. Datentypen. Operanden-Stack. Konstanten-Pool.

Angewandte Informatik

Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44

Compiler: Vom Code zum Maschinen-Code. C Programmierung - Vorlesung 2 Hochschule Regensburg Universitätsstraße 31, Regensburg

1. Grundlagen der Informatik Zahlensysteme und interne Informationsdarstellung

4. Digitale Datendarstellung

Transkript:

1. Grundkonzepte des Rechneraufbaus Computer Processor Memory Devices Control Input Datapath Output von Neumannsches Rechnerkonzept Binärkodierungen Modifikationen und Erweiterungen 24

Das von Neumannsche Rechnerkonzept Rechner bestehen aus 4 Werken: Kontrolleinheit, Leitwerk interpretiert Programme Computer Processor Memory Devices Rechenwerk Control führt Operationen aus Input Haupt- bzw. Arbeitsspeicher enthält Programme und Daten Ein/Ausgabewerk Datapath Output 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. 25 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 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 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. 27 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 28

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 29 Organisationsplan eines von Neumann-Rechners Prozessor (CPU) Leitwerk Rechenwerk BZ IR MAR Daten-/Adressbus Hauptspeicher Programme Daten 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) E/A-Geräte Netzkopplung Peripheriespeicher 30

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

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: Es gibt b n Folgen der Länge n über Σ(b). (feste Wortlänge durch führende Nullen ) besonders wichtig: b = 2 33 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 11 10 9 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 34

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. 35 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 36

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 37 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 0101 01010111 0111 0011 0011 1011 1011 1000 1000 1101 1101 1011 1011 0000 0000 C B E 6 3 0 F A 5 7 3 B 8 D B 0 38

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 39 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. 40

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 41 Modifikationen und Erweiterungen des von Neumann-Konzeptes Fließbandverarbeitung Parallelisierung auf verschiedenen Ebenen (Rechen-/Kontrollwerke, Speicher) Verfeinerungen der Speicherstruktur ==> Virtualisierung, Hierarchisierung 42

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 43 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 44

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

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 47 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 48

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 49 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. 50

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 51 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 52

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

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. 55 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 fällt der Preis (pro Bit) Ausschnittshierarchie: Alle Daten einer Ebene sind auch in der darunterliegenden Ebene gespeichert. langsam groß billig Memory Memory 56

Speicherhierarchie aktuelle Daten aktuelle Programme mit Daten aktuelle oder oft benutzte Daten alle ruhenden Daten des Systems (Progr. & Daten) Register Plattenspeicher Cachespeicher Magnetband (Archiv) Compiler Hardware Benutzerprogr, Betriebssystem Benutzerprogr., Operateur 57 Lokalität Lokalitätsprinzip: 90/10-Regel 90% der Daten eines Programms werden aus 10% des vom Programm insgesamt benötigten Speicher geladen. aktueller Ausschnitt aus dem Hauptspeicher Hauptspeicher 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 58