Rechnerarchitektur. Dr. Andreas Müller TU Chemnitz Fakultät für Informatik Fakultätsrechen- und Informationszentrum anmu@informatik.tu-chemnitz.



Ähnliche Dokumente
Die Mikroprogrammebene eines Rechners

Im Original veränderbare Word-Dateien

Kap 4. 4 Die Mikroprogrammebene eines Rechners

Johann Wolfgang Goethe-Universität

1. Übung - Einführung/Rechnerarchitektur

1 Aufgaben zu Wie funktioniert ein Computer?

Technische Informatik 2 Adressierungsarten

Einführung in PHP. (mit Aufgaben)

Programmierung 2. Übersetzer: Code-Erzeugung. Sebastian Hack. Klaas Boesche. Sommersemester

Grundlagen der Rechnerarchitektur

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

Teil VIII Von Neumann Rechner 1

Lehrstuhl Informatik VI Grundzüge der Informatik * WS 2008/2009 Prof. Dr. Joachim Biskup

INFORMATIK Oberstufe. Funktionsweise eines Rechners

Einführung in Eclipse und Java

Daten verarbeiten. Binärzahlen

N Bit binäre Zahlen (signed)

Das Rechnermodell von John von Neumann

Zahlensysteme: Oktal- und Hexadezimalsystem

C++11 C++14 Kapitel Doppelseite Übungen Musterlösungen Anhang

Daten, Informationen, Kodierung. Binärkodierung

Computer-Architektur Ein Überblick

Präsentation Von Laura Baake und Janina Schwemer

4D Server v12 64-bit Version BETA VERSION

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

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

Programmieren. 10. Tutorium 4./ 5. Übungsblatt Referenzen

2.2 Rechnerorganisation: Aufbau und Funktionsweise

Der von Neumann Computer

Grundbegriffe der Informatik

Instruktionssatz-Architektur

Installationshinweise BEFU 2014

Grundbegriffe der Informatik

Mikrocontroller Grundlagen. Markus Koch April 2011

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

Assembler und Hochsprachen

Grammatiken. Einführung

Modul Klausur zu den Teilgebieten Software-Management und Software-Qualitätsmanagement

Version 0.3. Installation von MinGW und Eclipse CDT

L3. Datenmanipulation

Binär Codierte Dezimalzahlen (BCD-Code)

Benutzerkonto unter Windows 2000

Der Toy Rechner Ein einfacher Mikrorechner

Zahlendarstellungen und Rechnerarithmetik*

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

In 12 Schritten zum mobilen PC mit Paragon Drive Copy 11 und Microsoft Windows Virtual PC

Grundlagen der Rechnerarchitektur. Einführung

NAS 308 Einführung in iscsi

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

Zum Einsatz von Operatoren im Informatikunterricht

Computerarithmetik ( )

Dokumentenarchivierung

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Wissenswertes über binäre Felder

Kapitel 1: Einführung. Was ist Informatik? Begriff und Grundprobleme der Informatik. Abschnitt 1.1 in Küchlin/Weber: Einführung in die Informatik

Übung - Datenmigration in Windows 7

Übungen zur Softwaretechnik

Hinweise für das Schreiben einer Bachelor-Arbeit im Fachbereich Wirtschaftspsychologie

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

Installationsanleitung

Mikroprozessor als universeller digitaler Baustein

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

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

Anleitung zur Nutzung des SharePort Utility

Internet online Update (Internet Explorer)

Step by Step Remotedesktopfreigabe unter Windows Server von Christian Bartl

Zahlensysteme Seite -1- Zahlensysteme

Dienstleistungen Zentrum Medienbildung. Anleitung für das Überspielen von Videomaterial einer SD- und HDD-Kamera via USB

Zeichen bei Zahlen entschlüsseln

Idimager ein Bildverwaltungsprogramm-DAM Software

Persönliches Adressbuch

Robot Karol für Delphi

SharePoint Demonstration

Binäre Gleitkommazahlen

Herzlich Willkommen bei der nfon GmbH

Übungen zu C++ Kapitel 1

Berühmt berüchtigte Softwarefehler. Der Pentium Division-Bug. vorgetragen von: Sebastian Knieschewski

Grundbegriffe der Wirtschaftsinformatik Informationssystem I

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Zahlensysteme. von Christian Bartl

Installationsanleitung WibuKey Treiber

Man liest sich: POP3/IMAP

2. Grundlagen der technischen Software - Beispiel: MathCAD 2.1 Einführung 2.2 Grundlagen an Beispielen

2. Negative Dualzahlen darstellen

Mikrocomputertechnik. Adressierungsarten

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

AMS Alarm Management System

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

Übung 9 - Lösungsvorschlag

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können.

5 Speicherverwaltung. bs-5.1 1

Übungen für die Einführung in die Assemblerprogrammierung mit dem Prozessor c515c

SOL-IT wawicube. Berechnen. Lenken. Überblicken.

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

Matrix42. Use Case - Inventory. Version Februar

Zahlensysteme. Zahl Stellenwert Zahl Zahl =

Programmieren Formulierung eines Algorithmus in einer Programmiersprache

Anleitung E Mail Thurcom E Mail Anleitung Version

Prolog basiert auf Prädikatenlogik

C. BABBAGE ( ): Programmgesteuerter (mechanischer) Rechner

Transkript:

Rechnerarchitektur Dr. Andreas Müller TU Chemnitz Fakultät für Informatik Fakultätsrechen- und Informationszentrum anmu@informatik.tu-chemnitz.de

Rechnerarchitektur Dr. Andreas Müller TU Chemnitz Fakultät für Informatik Fakultätsrechen- und Informationszentrum anmu@informatik.tu-chemnitz.de http://www.tu-chemnitz.de/informatik/friz/grundl-inf/rechnerarchitektur/

Rechnerarchitektur (2) Einführung Geschichte v.-neumann-architekturen Befehle Operationen und Operanden der Rechnerhardware Logische Operationen Entscheidungsbefehle Compiler (Beispiel: C-Programm)

Rechnerarchitektur (3) Rechnerarithmetik Addition, Subtraktion, Multiplikation, Division Gleitkommaarithmetik Der Prozessor: Datenpfad und Steuerwerk Entwurf von Logikschaltungen Implementierungsmethoden Steuerwerksentwurf Speicherorganisation Speicherhierarchie Cache Speicherhierarchien bei P4/Opteron

Literatur Patterson, Hennesy: Rechnerorganistion und -entwurf, Spektrum, 2005 Materialien zu dieser LV, insbesondere LC-1 http://www.tu-chemnitz.de/informatik/friz/grundl-inf/rechnerarchitektur/ Quellen zur Vorbereitung der LV: Script von Prof. Hardt, TU Chemnitz Script von Dr. Naumann, TU Chemnitz

Was ist Rechnerarchitektur? Amdahl, Brooks und Blaauw definieren 1967: Rechnerarchitektur definiert sich aus den Attributen und dem Verhalten eines Computers, wie dieser von einem Maschinensprachenprogrammierer gesehen wird. Diese Definition umfasst den Befehlssatz, die Befehlsformate, die OP-Codes, die Adressierungsarten und alle Register und Speicher, die direkt durch einen Maschinensprachenprogrammierer verändert werden können. Die Implementation ist durch den aktuellen Hardwareaufbau, das logische Design und die Organisation der Datenpfade einer bestimmten Ausführung der Architektur definiert.

Was ist Rechnerarchitektur? (2) Stahlknecht und Hasenkamp verwenden folgende Definition: Unter dem Begriff Rechnerarchitektur versteht man: die interne Struktur des Rechners, d. h. seinen Aufbau aus verschiedenen Komponenten, und die Organisation der Arbeitsabläufe im Rechner.

Was ist Rechnerarchitektur? (3) Taxonomie nach Giloi Rechnerarchitektur Operationsprinzip Hardwarestruktur Steuerstruktur Kooperationsregeln Informationsstruktur Hardwarebetriebsmittel Verbindungsstruktur

Was ist Rechnerarchitektur? (4) Ebenen eines Rechnersystems Anwendungsebene (Anwendungssoftware) Assemblerebene (Beschreibung von Algorithmen, Link und Bind) Betriebssystem (Speichermanagement, Prozesskommunikation) Instruction Set Architecture Microarchitektur (RISC, CISC) Logische Ebene (Register, Schieberegister, Latches) Transistorebene (Transistoren, MOS)

Was ist Rechnerarchitektur? (3) Klassifikation Nach Rechenprinzip Von Neumann (Steuerfluss) Harvard-Architektur Datenfluss (Zündregel, Petrinetze) Reduktion (Funktionsaufruf) Objektorientiert (Methodenaufruf) Nach Architekturgrundkonzept Vektorrechner (Pipeline) Array-Computer (Data-Array) Assoziativ-Rechner (Assoziativspeicher)

Was ist Rechnerarchitektur?(5) Rechnerarithmetik Addition, Subtraktion, Multiplikation, Division Gleitkommaarithmetik Der Prozessor: Datenpfad und Steuerwerk Entwurf von Logikschaltungen Implementierungsmethoden Steuerwerksentwurf Speicherorganisation Speicherhierarchie Cache Speicherhierarchien bei P4/Opteron

Was ist Rechnerarchitektur?(5) Rechnerarithmetik Addition, Subtraktion, Multiplikation, Division Gleitkommaarithmetik Der Prozessor: Datenpfad und Steuerwerk Entwurf von Logikschaltungen Implementierungsmethoden Steuerwerksentwurf Speicherorganisation Speicherhierarchie Cache Speicherhierarchien bei P4/Opteron LV Digitaltechnik (Prof. Stopje) 2. Teil

Einführung Grundbegriffe eines Rechnersystems Rechenwerke Steuerwerke Interruptverarbeitung Befehlsstruktur und Befehlssatz Einführung in aktuelle Rechnerarchitekturen Peripherie-Bausteine Interne Busstrukturen eines Mikrorechnersystems Hilfsmittel zum Arbeiten mit Mikrorechnern

v.-neumann-prinzipien 1.der Rechner besteht aus 5 Einheiten: Steuerwerk, Rechenwerk, Speicher, Ein- und Ausgabewerk 2.Struktur des Rechners ist unabhänig vom zu lösenden Problem 3.Programm und Daten werden im gleichen Speicher abgelegt 4.Speicher sind in gleichgroße Zellen unterteilt, die fortlaufend nummeriert sind

v.-neumann-prinzipien (2) 5.aufeinander folgende Befehle eines Programms werden in aufeinander folgenden Speicherzellen abgelegt 6.durch Sprungbefehle kann von der sequentiellen Bearbeitung abgewichen werden

v.-neumann-prinzipien (3) 7. Es existiert ein Befehlssatz arithmetische Befehle logische Befehle Transportbefehle Verzweigungsbefehle sonstige Befehle 8.alle Daten werden binär kodiert

v.-neumann-architektur Eingabewerk Speicher Ausgabewerk Rechenwerk Steuerwerk Steuerbefehle Daten (Daten, Befehle, Adressen,...)

Arbeitsweise des Steuerwerkes Programm besteht aus Befehlen Abarbeitung des Programmes erfolgt durch sequentielle Abarbeitung der Befehle Ein Befehl wird in zwei Phasen ausgeführt: Fetchphase Executephase

Arbeitsweise des Steuerwerkes (2) +1 PC AR Memory OPC ADR BR DR

Arbeitsweise des Steuerwerkes (3) Beispiel: LC1 case OPC of Auswertung des Operationscodes Befehlsdekodierung (PASCAL-ähnliche Notation) Ausführung des erkannten Befehls '0000': A:= Memory(ADR); {load Register A} S:= A(9); '0001': B:=Memory(ADR); {load Register B} '0010':Memory(ADR):=A; {move Register A}... '1000': PC:=ADR... end; {JMP}

Harvard-Architektur Befehlsspeicher ist physisch vom Datenspeicher getrennt Vorteil gleichzeitiges Laden und Speichern von Befehlen und Daten bei Softwarefehlern kann kein Programmkode überschrieben werden Datenwortbreite kann sich von Befehlswortbreite unterscheiden Nachteil komplexer als v.-neumann-architektur Datenspeicher kann nicht als Programmspeicher verwendet werden und umgekehrt.

Harvard-Architektur (2) Schematische Darstellung Daten Steuerwerk Rechenwerke Befehle

Harvard-Architektur Beispiele: Produkte der Firma Microchip Technology PICmicro (Umsatz 2007: 1,04 Mrd. US$) Microcontroller der AVR-Reihe (Umsatz 1,676 Mrd. US$ 2005) Analog Devices (DSP, Umsatz 2,6 Mrd. US$) SHARC-Technologie moderne Mikroprozessoren verwenden Mischform aus v.-neumann und Harvard- Architektur (getrennte Daten- und Befehlsbereiche, getrennte Caches und MMU's, getrennte Busse, extern gemeinsamer Speicher)

n-adress-maschinen Ein Befehl mit dem Aufbau OPC ADR heißt 1 Adress-Maschine Es kann aber auch sinnvoll sein, 5-Adress, 4-Adress-, 3-Adress- 2-Adress-Maschinen zu bauen

Wieviele Adressen sind sinnvoll? v.-neumann Prinzip 7: jeder Rechner besitzt Befehlssatz Adresszahl ----> Mächtigkeit eines Befehls 1. Herangehensweise: Befehlssatz höhere Programmiersprache entspricht Maschinenbefehl (Beispiel: Symbolics Inc., Hersteller von LISP- Maschinen) Die semantische Lücke ist gleich 0

Wieviele Adressen sind sinnvoll? (2) 2. Herangehensweise: Analyse der Algorithmen Suchen der atomaren Komponenten daraus Ableiten eines Befehlssatzes mit geringer Mächtigkeit Sematische Lücke ist sehr groß: Compiler dieser Weg soll als der gegenwärtige Königsweg weiterverfolgt werden

Wieviele Adressen sind sinnvoll (3) Atomare Operationen (C-Darstellung) c = a OPC b; if (bed) goto f1; else goto f2; daraus folgt: Rechner muss atomare Operationen zweistellige Verknüpfungen Verzweigungen umfassen

Wieviele Adressen sind sinnvoll (4) 5-Adress-Maschine OPC ADR1 ADR2 ADR3 ADR4 ADR5 Funktion <ADR3> := <ADR1> op(opc) <ADR2>; if cond(opc) = true then goto ADR4 else goto ADR5; m op-teile aus OPC und n cond-teile aus OPC ---> m * n verschiedene Befehle v-neumann-prinzip 5 braucht nicht eingehalten werden kein PC erforderlich

Wieviele Adressen sind sinnvoll (5) 4-Adress-Maschine OPC ADR1 ADR2 ADR3 ADR4 Funktion PC := PC+1; <ADR3> := <ADR1> op(opc) <ADR2>; if cond(opc) = true then goto ADR4 v-neumann-prinzip 5 muss eingehalten werden PC erforderlich

Wieviele Adressen sind sinnvoll (6) 3-Adress-Maschine OPC1 ADR1 ADR2 ADR3 OPC2 ADR4 Funktion PC := PC+1; <ADR3> := <ADR1> op(opc) <ADR2>; Flags := gewisse Eigenschaften des Ergebnisses PC := PC + 1; if cond(opc, Flags) = true then goto ADR4 m op-teile aus OPC und n cond-teile aus OPC ---> m + n verschiedene Befehle 2 Klassen von Befehlen notwendig (verknüpfende und verzweigende) PC erforderlich

Wieviele Adressen sind sinnvoll (7) 2-Adress-Maschine OPC1 ADR1 ADR2 OPC2 ADR3 Funktion PC := PC+1; <ADR1> := <ADR1> op(opc) <ADR2>; Flags := gewisse Eigenschaften des Ergebnisses PC := PC + 1; if cond(opc, Flags) = true then goto ADR3 der Operand ADR1 wird durch das Resultat überschrieben

Wieviele Adressen sind sinnvoll (7) 1-Adress-Maschine OPC1 ADR1 OPC2 ADR2 Funktion PC := PC+1; <ACC> := <ACC> op(opc1) <ADR1>; Flags := gewisse Eigenschaften des Ergebnisses PC := PC + 1; if cond(opc2, Flags) = true then goto ADR1 Akkumulator erforderlich, dieser enthält zunächst einen Operanden und wird dann mit dem Ergebnis überschrieben

Wieviele Adressen sind sinnvoll (8) 0-Adress-Maschine PUSH a {Übertragung Adresse 1 in Arithmetikkeller} PUSH b {Übertragung Adresse 2 in Arithmetikkeller} ADD POP c {Übertragung Ergebnis an Adresse c} sogenannte polnische oder reverse polnische Notation Taschenrechner von HP, Großrechner von Borroughs Intel Gleitkommaprozessor abstrakte Java-Maschine (Java-Bytekodeinterpreter) Taschenrechner Elektronika BE 34

Compiler Übersetzungshierarchie für C C-Programm Compiler Progr. in Assemblersprache Assembler Objekt: Modul in Maschinensprache Objekt: Bibliotheksroutine Binder Ausführbares Programm Lader Hauptspeicher

Compiler Übersetzungshierarchie für C C-Programm von Hand Compiler Progr. in Assemblersprache Assembler lc1edit Objekt: Modul in Maschinensprache Objekt: Bibliotheksroutine Binder lc1 Ausführbares Programm Lader Hauptspeicher

LC 1 1- Adress-Maschine von-neumann-architektur studentische Belegarbeit (1990 Dipl.Inf. Rico Müller und Dipl.Inf. Sören Schulze) Download über www.tu-chemnitz.de/informatik/friz/grundl-inf/rechnerarchitektur/ Beispielarchitektur der LV

LC 1 Hinweis: Abarbeitung unter Windows 7 / Vista DOSBOX (www.dosbox.com) XP-Modus (http://www.microsoft.com/windows/virtual-pc/)