Informatik II. Rechnerarchitektur. Rechnerarchitektur. Rechnerarchitektur. Einführung. Rainer Schrader. 24. November 2005



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

Teil VIII Von Neumann Rechner 1

Die Mikroprogrammebene eines Rechners

Rechner Architektur. Martin Gülck

Johann Wolfgang Goethe-Universität

1 Aufgaben zu Wie funktioniert ein Computer?

Kap 4. 4 Die Mikroprogrammebene eines Rechners

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Tutorium Rechnerorganisation

Grundlagen der Theoretischen Informatik, SoSe 2008

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

Professionelle Seminare im Bereich MS-Office

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Grundlagen verteilter Systeme

teamsync Kurzanleitung

Nutzung von GiS BasePac 8 im Netzwerk

Informatik II. von-neumann-rechner. von-neumann-rechner. von-neumann-rechner. Rainer Schrader. 17. November 2008

Modellbildungssysteme: Pädagogische und didaktische Ziele

Mikroprozessor als universeller digitaler Baustein

Computerarithmetik ( )

Computergruppe Heimerdingen Basiskurs. Karlheinz Wanja & Richard Zeitler

Primzahlen und RSA-Verschlüsselung

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

LU-Zerlegung. Zusätze zum Gelben Rechenbuch. Peter Furlan. Verlag Martina Furlan. Inhaltsverzeichnis. 1 Definitionen.

Anleitung über den Umgang mit Schildern

Informationsblatt Induktionsbeweis

Lineare Gleichungssysteme

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

Lieferschein Dorfstrasse 143 CH Kilchberg Telefon 01 / Telefax 01 / info@hp-engineering.com

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Lehrer: Einschreibemethoden

Installationsanleitung zum Access Point Wizard

GEZIELT MEHR SICHERHEIT MIT 4I ACCESS SERVER & 4I CONNECT CLIENT

Zwischenablage (Bilder, Texte,...)

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

Kapitel 4 Schaltungen mit Delays (Schaltwerke) Literatur: Oberschelp/Vossen, Kapitel 4. Kapitel 4: Schaltungen mit Delays Seite 1

BOKUbox. Zentraler Informatikdienst (ZID/BOKU-IT) Inhaltsverzeichnis

Erstellen von x-y-diagrammen in OpenOffice.calc

Einführung in die technische Informatik

Zeichen bei Zahlen entschlüsseln

Lineare Gleichungssysteme

Informatik Kurs Simulation. Hilfe für den Consideo Modeler

Musterlösungen zur Linearen Algebra II Blatt 5

Hilfe Bearbeitung von Rahmenleistungsverzeichnissen

Terminabgleich mit Mobiltelefonen

Synchronisierung. Kommunikationstechnik, SS 08, Prof. Dr. Stefan Brunthaler 73

WinWerk. Prozess 6a Rabatt gemäss Vorjahresverbrauch. KMU Ratgeber AG. Inhaltsverzeichnis. Im Ifang Effretikon

Die Captimizer BTZ-Datei 2015

Benutzerhandbuch - Elterliche Kontrolle

1. Übung aus Digitaltechnik Aufgabe. Die folgende CMOS-Anordnung weist einen Fehler auf:

AutoCAD Dienstprogramm zur Lizenzübertragung

Gruppenrichtlinien und Softwareverteilung

Mikrocontroller Grundlagen. Markus Koch April 2011

Fitswork Kometenbilder aufaddieren Oliver Schneider,

Integrated Services Realtime Remote Network

Tutorial about how to use USBView.exe and Connection Optimization for VNWA.

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

OECD Programme for International Student Assessment PISA Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

Synchronisations- Assistent

Speicher in der Cloud

Proseminar Rechnerarchitekturen. Parallelcomputer: Multiprozessorsysteme

2.2 Rechnerorganisation: Aufbau und Funktionsweise

Software- und Druckerzuweisung Selbstlernmaterialien

EasyProfil unter Windows 7 64-Bit Home Premium (Die Installation der VirtualBox und EasyProfil)

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

Mobile Intranet in Unternehmen

Eigene Dokumente, Fotos, Bilder etc. sichern

Externe Abfrage von für Benutzer der HSA über Mozilla-Thunderbird

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: )

HorstBox (DVA-G3342SD)

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Bereich METIS (Texte im Internet) Zählmarkenrecherche

Monitore. Klicken bearbeiten

Windows Vista Security

Der neue persönliche Bereich/die CommSy-Leiste

Multimedia und Datenkommunikation

Moodle-Kurzübersicht Kurse Sichern und Zurücksetzen

Netzwerkversion PVG.view

Wie Sie mit Mastern arbeiten

Print2CAD 2017, 8th Generation. Netzwerkversionen

Leichte-Sprache-Bilder

2015 conject all rights reserved

Wenn wir also versuchen auf einen anderen PC zuzugreifen, dann können wir sowohl per Name als auch mit der Adresse suchen.

Beispiel(unten ist der Spielfeldrand):

Das Omnikey 8751 e-health BCS...1 Auslesen über die LAN-Schnittstelle...1 Auslesen über die serielle Schnittstelle...4

Internationales Altkatholisches Laienforum

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten

Anbindung des eibport an das Internet

II. Daten sichern und wiederherstellen 1. Daten sichern

Statuten in leichter Sprache

1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden.

Leitfaden zur Moduleinschreibung

1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten.

Simulation LIF5000. Abbildung 1

1 C H R I S T O P H D R Ö S S E R D E R M A T H E M A T I K V E R F Ü H R E R

Nicht kopieren. Der neue Report von: Stefan Ploberger. 1. Ausgabe 2003

Dokumentation IBIS Monitor

Mandant in den einzelnen Anwendungen löschen

2. Im Admin Bereich drücken Sie bitte auf den Button Mediathek unter der Rubrik Erweiterungen.

Transkript:

Informatik II Einführung Rainer Schrader Zentrum für Angewandte Informatik Köln 24. November 2005 1 / 59 2 / 59 Gliederung von-neumann-rechner Vektor- und Feldrechner arallelrechner alternative Rechnerkonzepte bisher haben wir uns mehr auf die logischen Bausteine konzentriert wir geben jetzt ein Modell an, das der physikalischen Wirklichkeit näher kommt. ein von-neumann-rechner besteht aus folgenden Grundeinheiten Zentraleinheit (CU) Ein-/Ausgabe-Einheit Verbindungsleitungen (Busse) CU Datenproz. ALU Befehlsproz. CU I/O Adressbus Datenbus Befehlsbus Steuerbus Systembus 3 / 59 4 / 59

von-neumann-rechner er besteht aus folgenden Grundeinheiten Zentraleinheit (CU) Ein-/Ausgabe-Einheit Verbindungsleitungen (Busse): auf denen fest formatierte Datenfolgen zwischen den Elementen transportiert werden die intern verwendeten Signale sind binär kodiert Befehle, Adressen und Daten werden einheitlich im abgelegt es werden Worte fester Länge verarbeitet die Verarbeitung erfolgt taktgesteuert und sequentiell CU (central processing unit) sie übernimmt die Ausführung der Befehle sowie die Ablaufsteuerung und besteht aus: Datenprozessor: zur Verarbeitung von Daten Rechenwerk, ALU mit mehreren Registern für Operanden uffer-register: memory buffer register (=MBR) zur Kommunikation mit dem 5 / 59 6 / 59 CU (central processing unit) Befehlsprozessor: zur Entschlüsselung und Steuerung von Befehlen Befehlsdekodierer Steuerwerk Befehlsregister (instruction register IR, enthält aktuellen Befehl) adressregister (memory address register MAR, enthält Adresse des nächsten anzusprechenden platz) Befehlszähler (program counter C, Adresse des nächsten Befehls) Die Arbeitsweise der CU SISD: SIMD: MISD: MIMD: single instruction, single data Grundmodell (klassisch): zu jedem Zeitpunkt wird genau eine Operation mit einem Satz von Operanden ausgeführt. single instruction, multiple data (z.b. Vektorrechner) multiple instruction, single data multiple instruction, multiple data (z. B. arallelrechner) Alle inhalte sind als Daten, Befehle oder Adressen brauchbar, die Verwendung richtet sich nach dem Kontext. 7 / 59 8 / 59

Ablauf der Befehlsverarbeitung Interpretations- und Fetch-hase: bringe Inhalt von C in das memory address register (MAR) bringe Inhalt einer Adresse aus dem über das memory buffer register (MBR) in das instruction register (IR) der Befehlsdekodierer interpretiert den Befehl erkennt, um welchen Befehlstyp es sich handelt benötigte Operanden werden über das MAR und MBR zur Verfügung gestellt. Execution hase: führe den Befehl aus CISC- vs. RISC-Architekturen CISC (complex instruction set computer) RISC (reduced instruction set computer) Anfang der 80er Jahre Umschwung zu RISC-Architekturen Reaktion auf Wandel in Hardwaregegebenheiten bis dahin war der Arbeitsspeicher ein entscheidender Engpass langsam klein teuer durch Caches und schnelleren, größeren, billigerem aradigmenwechsel aktualisiere C: C C + 1 oder C Sprungadresse initiiere nächste Fetch-hase 9 / 59 10 / 59 CISC (complex instruction set computer) Ziele: rogramme sollten kurz gehalten werden könnnen ( knapp) die Anzahl der zugriffe zum Laden von Instruktionen sollte klein sein ( langsam) Kompatibiltät des Binärcodes, Unabhängigkeit von Hardware komplexe und viele Maschinenbefehle Maschinenbefehle stoßen umfangreiche Mikroprogramme an Befehlsformate variieren stark (z.b. zwischen 1-32 Byte) benutzen wenige Register ist adressierbar, d.h. Operationen greifen direkt auf zu Beispiele: /360, /370 (IBM), VAX (DEC), 80x86 (Intel) RISC (reduced instruction set computer) enge Kopplung zwischen Compilern und Hardware (d.h. Verzicht auf Kompatibiltät) wenige, einfache Maschinenbefehle Maschinenbefehle entsprechen möglichst einem Mikrobefehl Maschinenbefehle möglichst in einem Takt ausführbar wenige Befehlsformate, möglichst gleicher Länge benutzen viele Mehrzweckregister zugriffe nur über LOAD- und STORE-Befehle Beschleunigung durch ipelining Beispiele: owerc (IBM und Motorola), Sparc (Sun) 11 / 59 12 / 59

Varianten und Erweiterungen MMX-Befehle (Spezialfall von SIMD) bei Audio-, Video- oder Graphikdaten können oft verschiedene Daten mit einem Befehl bearbeitet werden Beispiel: entium (Intel) VLIW (very long instruction word) (Spezialfall von MIMD) mehrere Operationen werden zu Einheiten zusammengefasst und parallel bearbeitet Beispiele: Itanium (Intel) eine Befehlsfolge ist eine Folge von Binärzahlen in festem Format, die als Maschinencode aufgebaut ist. zur besseren Lesbarkeit werden Mnemocodes entwickelt ( Assembler ). bei arithmetischen und logischen Operationen wird grundsätzlich angenommen, dass einer der Operanden im Akkumulator steht. das bewirkt: einstellige Operation brauchen keine Operatorangabe (Boolesche Negation, Vorzeichentest) Zweistellige Operationen benötigen nur eine Adresse somit würden Ein-Adress-Befehle ausreichen. es existieren aber auch Mehr-Adress-Befehle. 13 / 59 14 / 59 verwendete Einheiten: Zur ung werden 2 verschiedene Konzepten verwendet: 1 Byte = 8 bit 1 Wort = 4 Bytes 1 kb = 2 10 10 3 Bytes 1 MB = 2 20 10 6 Bytes 1 GB = 2 30 10 9 Bytes 1 TB = 2 40 10 12 Bytes ROM : Festwertspeicher nur lesen RAM : Random access memory mit wahlfreiem Zugriff auf jede zelle zum Lesen und Schreiben 15 / 59 16 / 59

ROM ROM s werden häufig eingesetzt, um System-Funktionen aufzunehmen. Sie werden weiterentwickelt als ROMS (programmable ROM): können durch Anlegen von externen Spannungen programmiert ( gebrannt ) werden. EROMS (erasable ROMS): durch UV-Belichtung ist die rogrammierung wieder löschbar (aber nur in Gänze). EEROM (electrically erasable ROMS): gezieltes Löschen einzelner Teile, teuer, zeitaufwendig, geringere dichte flash-rom: gezieltes Löschen einzelner Teile, reis und Funktionalität zwischen EROM und EEROM RAM RAM wird in verschiedenen Techniken hergestellt: DRAM (dynamic RAM): jede stelle besteht nur aus 1 Transistor und 1 Kondensator. DRAM verliert seine Ladung, insbesondere beim Auslesen, und muss daher regelmäßig aufgefrischt werden. SRAM (static RAM): jede stelle besteht aus 1 Flip-Flop, hält seine Ladung, schneller und teurer als DRAM, Verwendung in Caches. SDRAM (synchronous DRAM): wie DRAM, mit partitionierung, die es ermöglicht aus einem Block zu lesen und einen anderen gleichzeitig aufzufrischen. DDR-SDRAM (double data rate SDRAM): Weiterentwicklung mit höherer Datenrate 17 / 59 18 / 59 RAM-Bausteine werden üblicherweise als Hierarchie implementiert nach zunehmender Zugriffszeit und abnehmenden Kosten: Register (SRAM) Cache: enthält eine Umgebung der gerade benötigten Daten im 100 kbbis MB-Bereich (SRAM) evtl. getrennt nach Befehlen und Daten eventuell mehrere Cache-Ebenen: L1-Cache: prozessorintegriert, auf rozessorchip L2-Cache: auf rozessorchip oder -platine mit direkter Verbindung und Ansteuerung L3-Cache: auf Motherboard Hauptspeicher: im MB- bis GB-Bereich (DRAM) Hintergrundspeicher: im MB- bis TB-Bereich liegen (latte, Bänder, Kassettenautomat, Disketten, CD) Busse Busse stellen die Datenverbindungen zwischen einzelnen Teilen des Rechners her: prozessorinterne Busse: Verbindungen zwischen Registern, Steuerund Rechenwerk, L1-Cache und zu externen Bussen rozessorbus: Kopplung zwischen rozessor und L2-Cache bzw. Coprozessoren rozessor-bus: zur Datenübertragung zwischen rozessor und Systembus: zum Anschluss von eripherie mit hohen Datenraten E/A-Bus: zum Anschluss von E/A-Geräten evlt. jeweils getrennt nach Aufgaben: Datenbus, Adressbus, Steuerbus, Kontrollbus zur Synchronisation evtl. Einrichtungen zur Steuerung des Zugiffs auf einen Bus 19 / 59 20 / 59

Ein-/Ausgabeeinheiten In unserem Konzept kontrolliert die CU den zugriff. Daraus ergibt sich u. U.: die CU ist beschäftigt, während ein E/A-Gerät Daten übertragen möchte langsame I/O-Geräte blockieren die schnelle CU Ausweg: Endgeräte werden mit zusätzlicher Intelligenz ausgestattet ein Controller bedient eines oder mehrere Endgeräte er verfügt über einen Zwischenspeicher und über Datenleitungen zu den Endgeräten, der CU und dem. Ablauf zum Datenaustausch ein rozess setzt einen I/O-Befehl ab die CU unterbricht den rozess und markiert ihn als hold die CU sendet Kontrollblöcke an den Controller und startet einen anderen rozess die Kontrollblöcke enthalten Angaben über adressen und Datenvolumen der Controller puffert die Kontrollblöcke, wenn nötig er arbeitet die Aufträge nach geeigneten Strategien ab ist ein Auftrag erledigt, sendet er ein Interrupt -Signal an die CU die CU setzt den zugehörigen auf wait E/A Gerät E/A Controller Steuersignale Daten Die Controller übernehmen häufig als I/O-rozessoren Konvertierungen (intern/extern) und aritychecks. 21 / 59 22 / 59 Gliederung von-neumann-rechner Vektor- und Feldrechner arallelrechner alternative Rechnerkonzepte Bei heutigen Rechnern bestimmt die Kommunikation zwischen CU und wesentlich die Geschwindigkeit ( von-neumannscher Flaschenhals). Auswege: Differenzierung zwischen Befehlen und Daten, getrennte Busse, getrennte, getrennte Caches verstärkte Nutzung von parallelen Abläufen (u.a. Controller) Mehrprozessorsysteme, arallelrechner, verteilte Systeme 23 / 59 24 / 59

Ebenen der arallelität Bitebenenparallelität: Verarbeitung ganzer Wörter Befehlsebenenparallelität: parallele Abarbeitung von Befehlen in einem rozessor Quasiparallelität: parallele Abarbeitung von Threads oder rozessen auf einem rozessor rozessorparallelität: Verwendung mehrerer rozessoren oder Systeme nochmal klassische Abarbeitung von Instruktionen: Control Unit (CU): bearbeitet die nächste anstehende Instruktion: holt Befehl dekodiert Befehl übergibt die Steuerung an die Memory Unit Memory Units (MU): lädt Operanden berechnet Adressen lädt Daten in Register übergibt die Steuerung an die ALU Arithmetic Logical Unit (ALU): führt Operationen aus übergibt die Steuerung an die MU Memory Units (MU): lädt Operanden berechnet Zieladressen speichert Ergebnis in übergibt die Steuerung an die CU Alternative: Neuorganisation der sequentiellen Abarbeitung von Befehlsfolgen 25 / 59 26 / 59 ipelining die Idee ist die gleiche wie bei der Fließbandproduktion: zerlege den rozess in Teilprozesse, die etwa gleich lang sind und die von speziellen rozessoren taktsynchron bearbeitet werden. Beispiel: sei M 1 ein Rechner, der aus einer ALU, einem Register, einem Befehlsdekodierer besteht. wir wollen auf M 1 eine Folge von n Operationen der Form R = R x ausführen, wobei eine arithmetische/logische Operation ist, die den Inhalt von R mit dem Inhalt der stelle x verknüpft und wieder in R ablegt. die sequentielle Abfolge sieht dann wie grob folgt aus: repeat Harware Takte (1) lade den Befehl Register 1 (2) dekodiere Befehl Befehlsdekodierer 1 (3) lade Operand register 1 (4) führe Befehl aus ALU 1 until letzte Instruktion Daraus ergeben sich 4n Takte für n Operationen. die Maschine M 2 enthalte zwei Register. R 1 enthalte Instruktionen, R 2 enthält Daten. Alu Register Befehlsdekodierer Register I I I I 1 2 3 4 27 / 59 Nach drei Takten liegt mit jedem folgenden Takt ein Ergebnis an. Somit benötigt M 2 nur n + 3 Takte. 28 / 59

Beispiel: Addition von Gleitkommazahlen (1) Vergleich der Exponenten (2) Exponentenausgleich (3) Addieren (4) Normalisieren Allgemein : Der rozeß wird in k Teilprozesse 1,..., k zerlegt, die auf k verschiedenen Funktionseinheiten F 1,..., F k bearbeitet werden. Jeder rozess wird sequentiell von F 1,..., F k bearbeitet, wobei unter Umständen das Ergebnis von F i an F i+1 übergeben wird. Verschiedene Teilprozesse zweier rozesse können gleichzeitig arbeiten. Alle Teilprozesse benötigen möglichst gleiche Zeitdauer. benötigte Zeit: vorher: k 1 + n k n ff Beschleunigungsfaktor: kn k 1+n k 29 / 59 30 / 59 Vektorrechner (SIMD) Beispiel: Addition von 2 Vektoren A = B + C bis zu k (z.b. k = 64, k = 128) Komponenten eines Vektors werden gleichzeitig bearbeitet. Idee: funktionale Teile beziehungsweise ipelines der ALU werden k -fach installiert. Vektorregister: k -fache Länge längere Vektoren werden in Blöcke der Länge k zerlegt. seien A, B, C Vektoren der Länge n, die Elemente B 1 + C 1,..., B k + C k werden gleichzeitig addiert auf A 1,..., A k abgespeichert, danach die Elemente B k +1 + C k +1,..., B 2k + C 2k usw. Bei einigen Dialekten von rogrammiersprachen können Vektoren wie Variablen angesprochen werden, etwa A = B + C, wobei A, B, C als Vektoren definiert sind 31 / 59 32 / 59

Genauer: Die k Elemente werden nicht zeitsynchron bearbeitet, sondern leicht zeitversetzt (um etwa 1 Takt verschoben) zusätzlich entstehen setup-zeiten, die länger sind als bei Skalar-Befehlen. damit ergibt sich das folgende Bild: S E1 S E 2 S E 3 S E1 E2 E 3 Verkettung (Chaining) Seien A, B, C Vektoren der Länge n. Die Befehlsfolge (1) for i = 1 to n (2) A(i) = (A(i) + B(i))C(i) (3) end for und den folgenden typischen zeitlichen Verlauf: t kann in zwei Vektorbefehle umgewandelt werden: A = A + B und A = AC (komponentenweise). n Verlängerung bei kleinen n. 33 / 59 34 / 59 wir zerlegen den rozess in folgende Teilprozesse: Zeit t 1 transferiere Daten zu Addierpipeline 1 add berechne Summe in Addierpipeline 6 t 2 transferiere Ergebnis nach A 1 t 3 transferiere Daten zu Multiplikationspipeline 1 mult berechne rodukt in Multiplikationspipeline 7 t 4 transferiere Ergebnis nach A 1 Verkettung (chaining) ermöglicht es, den Output der ersten ipeline direkt zum Input der zweiten ipeline zu machen. Die zwei Befehle werden also als ein einziger aufgefasst: t Add t t Mult t 1 2 3 4 Im zeitlichen Verlauf ergibt sich folgendes Verhalten: t Add t t Mult t 1 2 3 4 Chaining benötigt nur noch 16 + k Takte. Der Vorgang benötigt somit 7 + k + 8 + k = 15 + 2k Takte. 35 / 59 36 / 59

Superskalare Architektur paralleler Betrieb von ipelines Differenzierung in ganzzahlige und Gleitpunktperationen, Adressberechnungen und zugriffe gegenwärtig bis zu 10 ipelines in einem rozessor Feldrechner und systolische Felder funktionale Teile der ALU (Addition, Multiplikation, Vergleiche), ggf. mit elementen, werden vervielfacht und vernetzt VLSI-Technologie ermöglicht es, sehr viele solcher Funktionen auf einem Chip unterzubringen die Teile führen die gleiche Operation auf verschiedenen Daten aus (SIMD) bei Feldrechnern ( array processor ) werden diese Teile durch einen Steuerprozessor aktiviert und kontrolliert bei systolischen Feldern werden sie durch eine gemeinsame Clock getaktet ( Blutmodell ) 37 / 59 38 / 59 Beispiel 2 k Zahlen sind in einem abgelegt. zu einer weiteren Zahl soll entschieden werden, ob sie bereits abgespeichert ist. wir konstruieren einen binären Baum der Tiefe k in den Knoten sind folgende Funktionen realisiert: Beispiel in den Knoten sind folgende Funktionen realisiert: die Blätter enthalten und Vergleichsfunktionen, die inneren Knoten geben ein Signal vom Vater an die Söhne weiter, Signale von den Söhnen werden mit oder verknüpft und das Ergebnis an den Vater weitergereicht, die Zahlen sind in den Blättern abgelegt, in den ersten k + 1 Schritten propagiert die zu vergleichende Zahl zu den Blättern, im k + 2. Schritt wird in den Blättern diese Zahl mit der gespeicherten verglichen. Bei Übereinstimmung ist das Ergebnis 1, sonst 0, in weiteren k Schritten propagiert das Ergebnis zur Wurzel. Das Verfahren benötigt also 2k + 2 Schritte 39 / 59 40 / 59

Übliche Verbindungsnetze 1) ipelines 2) Zweidimensionale Felder Beispiel: rodukt einer Bandmatrix mit einem Vektor eine (m,n)-matrix A = (a i,j ) heißt (p,q)-bandmatrix (mit der Bandbreite p+q-1), falls a ij = 0 für j i + p, j i q eine Bandmatrix besteht aus der Hauptdiagonalen, den p 1 oberen und den q 1 unteren Nebendiagonalen anschaulich: 3) Sechseck-arkettierung 0 ( 0 )() 41 / 59 42 / 59 zur Berechnung des Matrix-Vektor-rodukts benutzen wir ein systolisches Feld mit folgenden Bausteinen: y y + a x x a a liegen weniger als 3 Inputs an, so werden die Inputs durchgeschoben y x Beispiel: wir bauen ein systolisches Feld, das n n (2, 2)-Bandmatrizen A mit einem Vektor x zu y = Ax multipliziert. 0 B @ y 1 y 2 y 3 y 4 y 5 1 0 C A = B @ a 11 a 12 0 0 0 a 21 a 22 a 23 0 0 0 a 32 a 33 a 34 0 0 0 a 43 a 44 a 45 0 0 0 a 54 a 55 1 0 C A B @ wir benutzen dazu drei Bausteine, einen für jede Diagonale x 1 x 2 x 3 x 4 x 5 1 C A ansonsten werden a, x durchgereicht und y + ax nach links weitergeschoben. 43 / 59 44 / 59

die Einspeisung der Daten erfolgt nach dem folgenden Muster: erster Takt: Takte 10 - a 55-9 a 45 - a 54 8 - a 44-7 a 34 - a 43 6 - a 33-5 a 23 - a 32 4 - a 22-3 a 12 - a 21 2 - a 11-1 - - - zweiter Takt: dritter Takt: x 1 a x 11 1 a 11 x 1 0 zusätzlich speisen wir jeweils im Takt 2i 1 von rechts y i = 0 und von links x i ein. a x + a x 11 1 12 2 a 12 x 2 a x 21 1 a 21 x 1 die Ergebnisse y i liegen dann jeweils im Takt 2i + 1 an. 45 / 59 46 / 59 Gliederung Entsprechend kann man für die Multiplikation C = A B von zwei Matrizen den folgenden Baustein benutzen: a c+ab b von-neumann-rechner Vektor- und Feldrechner arallelrechner alternative Rechnerkonzepte b a c 47 / 59 48 / 59

arallelrechner arallelrechner Mehrere (evtl. auch unabhängig voneinander zu betreibende) rozessoren Zwei Extreme (shared memory / distributed memory): eventuell ein Masterprozessor eng gekoppelt sowohl eindeutig zugeordnete als auch gemeinsame (distributed oder shared memory) Kommunikation über gemeinsame, unkt-zu-unkt-verbindungen oder Busse N e t z w e r k I/O I/O I/O I/O N e t z w e r k und I/O 49 / 59 50 / 59 Ziel: ein Job soll schneller als auf einer Maschine bearbeitet werden, indem er auf verschiedene rozessoren aufgeteilt wird. Speedup: parallele Zeit sequentielle Zeit Der Geschwindigkeitszuwachs durch den Einsatz von k rozessoren kann höchstens k betragen. (Ausnahmen: verteiltes Suchen, Cache-Effekte durch Verteilung der Daten) im allgemeinen entstehen folgende robleme: Zeitverlust durch Overhead (Synchronisation, Kontrolle, etc.) Zeitverlust durch Kommunikation Effizienzverlust durch unbalancierte Auslastung im Extremfall kann eine Erhöhung der rozessorzahl zu einer Verlängerung der Bearbeitungszeit führen. Overhead, Scheduling und Kommunikation ist einfacher bei wenigen rozessoren. es gibt aber auch einige wenige Maschinen mit massiver arallelität und mehreren 1000 rozessoren z.b. Earth Simulator (5120 rozessoren), BlueGene (16250 rozessoren) Vernetzung bei der Vernetzung spielt neben der Komplexität des Netzwerks die maximale Entfernung zwischen zwei rozessoren eine Rolle. einige Beispiele von häufig verwendeten Netztopologien: 1) Bus: Entfernung: O(n) 2) Ring: Entfernung: O( n 2 ) 51 / 59 52 / 59

3) unkt-zu-unkt: Entfernung: O(1) verteilte Systeme unabhängige, über ein Netz kommunizierende Systeme ohne zentrale Steuerung lose gekoppelt 4) Array: Entfernung: O( n) wirkt für Nutzer möglichst wie ein Rechner (Transparenz) erweiterbar um weitere Systeme möglichst mit Lastausgleichsmechanismen Transparenz: 5) Hypercube: Entfernung: O(log n) der Name einer Ressource ist für alle Rechner gleich der Zugriff auf lokale und entfernte Ressourcen ist gleich der Nutzer sieht i.a. nicht, auf welchem Rechner er arbeitet grid computing 53 / 59 54 / 59 Gliederung von-neumann-rechner Vektor- und Feldrechner arallelrechner alternative Rechnerkonzepte Klassifizierung von parallelen Architekturen es existieren verschiedene Ansätze für parallele Architekturen bis auf die erste Architektur befinden sich alle noch im Experimentierbzw. Konzeptstadium. von-neumann-architekturen klassische, kontrollgesteuerte Rechner, die auf verschiedene Weisen gekoppelt sind. Datenflussarchitektur rogramminstruktionen werden direkt ausgeführt, sobald die Operanden zur Verfügung stehen (unabhängig von der Instruktionsreihenfolge) 55 / 59 56 / 59

Beispiel Als Teil eines rogramms sei z auszurechnen, wobei z gegeben ist durch z = (x + y )(x y ) dann kann z berechnet werden, sobald die Werte von x und y bekannt sind. zur Umsetzung dieser Architektur muss der Datenfluss kontrolliert werden. Reduktionsmaschinen im Unterschied zu den datengetriebenen Datenflussarchitekturen gehen die Reduktionsmaschinen anforderungsgetrieben vor. rogramme werden als geschachtelte Anwendungen von Funktionen auf Argumente augefasst. Eine Reduktionsmaschine führt eine solche Funktionsauswertung erst dann durch, wenn ihr Ergebnis von der nächst höheren Ebene der Schachtelung angefordert wird. Dabei können unabhängige Teile parallel ausgeführt werden dies wird mittels Datenflussgraphen versucht. befinden sich heute noch im Experimentierstadium 57 / 59 58 / 59 Quantencomputer Versuch, Berechnungen mittels Spinsystemen durchzuführen eher noch Theorie, wenige Experimente Details am Schluss der Vorlesung DNA-Computing der Versuch, Berechnungen mittels biochemischer Reaktionen durchzuführen als Rechner eher Theorie, als potentielle Anwendung Details am Schluss der Vorlesung 59 / 59