Vorlesung Rechnerarchitektur

Ähnliche Dokumente
Grundlagen der Rechnerarchitektur. Einführung

N Bit Binärzahlen. Stelle: Binär-Digit:

Assembler Programmierung Motivation. Informatik II SS 2004 Teil 4: Assembler Programmierung. Assembler vs. Maschinensprache

Grundlagen der Rechnerarchitektur

Grundlagen der Rechnerarchitektur. MIPS Assembler

Grundlagen der Rechnerarchitektur. Einführung

Der von Neumann Computer


Grundlagen - Grundbegriffe, Aufbau, Rechnerarchitekturen, Bus, Speicher - Maschinencode, Zahlendarstellung, Datentypen - ATMELmega128

Assembler am Beispiel der MIPS Architektur

Technische Grundlagen der Informatik 2 SS Einleitung. R. Hoffmann FG Rechnerarchitektur Technische Universität Darmstadt E-1

Technische Informatik - Eine Einführung

Teil 1: Prozessorstrukturen

Arithmetik, Register und Speicherzugriff. Grundlagen der Rechnerarchitektur Assembler 9

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen

Übungsblatt 10 (Block C 2) (16 Punkte)

Aufbau und Funktionsweise eines Computers

Philipp Grasl PROZESSOREN

Vorlesung Rechnerarchitektur. Einführung

Rechnerorganisation. H.-D. Wuttke `

Fragenkatalog Computersysteme Test 25. April 2008

Die Mikroprogrammebene eines Rechners

Teil 1: Prozessorstrukturen

DIGITALE SCHALTUNGEN II

Computer - Aufbau u. Funktionsweise

L3. Datenmanipulation

Generation 5: Invisible Computers (ab 1993)

2 Rechnerarchitekturen

Hochschule Düsseldorf University of Applied Sciences HSD RISC &CISC

1 Grundlagen. 1.1 Rechnerarchitektur. Mikroprozessortechnik MFB. Einleitung, Systemaufbau

Einführung in C++ Oliver Rheinbach. Büro T03 R03 D53 Tel

Kap 4. 4 Die Mikroprogrammebene eines Rechners

Wichtige Rechnerarchitekturen

Rechnerorganisation. (10,11) Informationskodierung (12,13,14) TECHNISCHE UNIVERSITÄT ILMENAU. IHS, H.- D. Wuttke `09

Neue Prozessor-Architekturen für Desktop-PC

Architektur und Organisation von Rechnersystemen

Rechner Architektur. Martin Gülck

Mikroprozessoren. Aufbau und Funktionsweise. Christian Richter. Ausgewählte Themen der Multimediakommunikation SS 2005

Kap.2 Befehlsschnittstelle. Prozessoren, externe Sicht

"Organisation und Technologie von Rechensystemen 4"

Institut für Informatik Prof. Dr. D. Hogrefe Dipl.-Inf. R. Soltwisch, Dipl.-Inform. M. Ebner, Prof. Dr. D. Hogrefe Informatik II - SS 04.

Johann Wolfgang Goethe-Universität

Teil Rechnerarchitekturen. Repetitorium. Corinna Schmitt

Einführung. Saalübung Informatik II SS Einführung. Einführung

Technische Informatik 1

Teil 1: Prozessorstrukturen

Von Assembler zu Java

Organisatorisches (1)

Rechner- organisa-on 2 TOY. Karl C. Posch.

Mikrocomputertechnik

Microcomputertechnik

Kapitel 11 RISC-Rechner

RISC - Architekturen. Design Digitaler Systeme. Prof. Dr.-Ing. Rainer Bermbach

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

Inhalt. Prozessoren. Curriculum Manfred Wilfling. 28. November HTBLA Kaindorf. M. Wilfling (HTBLA Kaindorf) CPUs 28. November / 9

Vorlesung Rechnerarchitektur

Datenpfad einer einfachen MIPS CPU

Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7)

Im Bereich der Entwicklung und Herstellung von Prozessoren spielen

Auch hier wieder. Control. RegDst Branch MemRead MemtoReg ALUOp MemWrite ALUSrc RegWrite. Instruction[31 26] (also: das Opcode Field der Instruktion)

Aufbau und Funktionsweise eines Computers

Technische Informatik 1 Übung 8 Instruktionsparallelität (Rechenübung) Andreas Tretter 8./9. Dezember Bitte immer eine Reihe freilassen

Inhaltsangabe. 2.1 DieCPU Der Speicher Die Busse Klassifikation der von-neumann-rechner... 37

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

Grundlagen zur Assemblerprogrammierung unter SPIM im Sommersemester Lorenz Schauer Mobile & Verteilte Systeme

Selbststudium Informationssysteme - H1102 Christian Bontekoe & Felix Rohrer

Motivation und Überblick

Grundlagen der Informatik III Wintersemester 2010/ Vorlesung Dr.-Ing. Wolfgang Heenes

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

3. Grundlagen der Rechnerarchitektur

RO-Tutorien 15 und 16

Fragenkatalog zur Klausur Computersysteme

Assembler - Einleitung

System-Architektur und -Software

3.1 Architektur des von-neumann-rechners. 3. Grundlagen der Rechnerarchitektur

Beschaffung vom Informationssystemen Datenorganisation Kommunikation

Mikroprozessor als universeller digitaler Baustein

Arbeitsfolien - Teil 4 CISC und RISC

3 Technikarchitekturen

Vorlesung 1 Medizininformatik. Sommersemester 2017

Vorlesung Rechnerarchitektur

Technische Informatik 1 - HS 2016

Aufbau eines Taschenrechners

Übung 1 - Betriebssysteme I

Rechnergrundlagen. Vom Rechenwerk zum Universalrechner

Datenpfad einer einfachen MIPS CPU

Von-Neumann-Architektur

Informatik 12 Kapitel 3 - Funktionsweise eines Rechners

Tutorium Rechnerorganisation

nutzt heute Diese Prinzipien werden wir im Kapitel 3 behandelt Lehrstuhl für Informatik 3 - D. Fey Vorlesung GRa - SS

Organisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download

Kap.3 Mikroarchitektur. Prozessoren, interne Sicht

Zusammenhang Interrupt, Befehlszyklus, indirekte Adressierung und Mikroprogramm [Stallings, Kap. 15, S ]

Rechnergrundlagen. Vom Rechenwerk zum Universalrechner. von Prof. Dr. Rainer Kelch. Fachbuchverlag Leipzig im Carl Hanser Verlag

Name: Vorname: Matr.-Nr.: 4. a) RISC-Architekturen müssen zur Decodierung von Maschinenbefehlen stets ein mikroprogrammierbares Steuerwerk verwenden.

Rechnergrundlagen SS Vorlesung

Transkript:

Vorlesung Rechnerarchitektur Sommersemester 2016 Carsten Hahn 14. April 2016

Agenda Informationsdarstellung und Adressierung Komponenten eines PCs Prozessorgrundstruktur und Befehlszyklus Compiler, Interpreter, Assembler 14.05.2016 Vorlesung Rechnerarchitektur - Carsten Hahn 2

Darstellung von Informationen im Rechner Informationen sind sogenannte Wahrheitswerte Menge der Wahrheitswerte besteht genau aus zwei Elementen {wahr, falsch} bzw. {1, 0} Solche Informationen können vom Rechner verarbeitet/gespeichert werden z.b. durch Anliegen eines hohen oder niedrigen Spannungspegels Ein Wahrheitswert wird als Bit (Binary Digit) bezeichnet 8 Bit werden zu einem Byte zusammengefasst ermöglicht die Bildung von 2 8 = 256 verschiedenen Bitmustern von 0000 0000 bis 1111 1111 zur kürzeren, übersichtlicheren Darstellung existiert hexadezimale Schreibweise 0000 0 0100 4 1000 8 1100 C 0001 1 0101 5 1001 9 1101 D 0010 2 0110 6 1010 A 1110 E 0011 3 0111 7 1011 B 1111 F 14.05.2016 Vorlesung Rechnerarchitektur - Carsten Hahn 3

Speicheradressierung Ein Byte im Normalfall die kleinste adressierbare Speichereinheit Bei n-adressbits können 2 n Byte adressiert werden mit Adressen von 0 bis 2 n 1 Größe eines Speichers wird üblicherweise wie folgt angegeben Kilobyte 1 KB 1024 Byte 2 10 Byte Megabyte 1 MB 1024 KB 2 20 Byte Gigabyte 1 GB 1024 MB 2 30 Byte Terabyte 1 TB 1024 GB 2 40 Byte Petabyte 1 PB 1024 TB 2 50 Byte 14.05.2016 Vorlesung Rechnerarchitektur - Carsten Hahn 4

Einschub: Byte-Reihenfolge (Byte Order) Mehr als ein Byte für die Speicherung einer Zahl: Bytes können in aufsteigender absteigender Reihenfolge aneinander gehängt werden. Big-Endian (wörtlich Großes Ende ): Byte mit den höchstwertigen Bits (signifikantesten Stellen) an der kleinsten Speicheradresse. Little-Endian (wörtlich Kleines Ende ): Byte mit den niederwertigsten Bits (wenigsten signifikanten Stellen) an der kleinsten Speicheradresse Achtung: Der SPIM-Simulator benutzt die Byte-order des Rechners, auf dem er läuft. 14.05.2016 Vorlesung Rechnerarchitektur - Carsten Hahn 5

Beispiel Speicherung der Dezimalzahl 1296650323 als 32-Bit-Werte: Binär: 01001101 01001001 01010000 01010011 Hexadezimal: 0x4D 0x49 0x50 0x53 Interpretation des 32-Bit-Wertes als Zeichenkette: ASCII (1 Byte/Zeichen): M I P S Adresse... 0xA8 0xA9 0xAA 0xAB... Big Endian Binär... 01001101 01001001 01010000 01010011... Hex... 0x4D 0x49 0x50 0x53... ASCII... M I P S... Little Endian Hex... 0x53 0x50 0x49 0x4D... Binär... 01010011 01010000 01001001 01001101... ASCII... S P I M... 14.05.2016 Vorlesung Rechnerarchitektur - Carsten Hahn 6

Beispiel: Unterschiede bei Konversionen Konversion einer Zwei-Byte- in eine Vier-Byte-Zahl Little-Endian-Maschine: Anfügen von zwei Null Bytes am Ende Speicheradresse bleibt gleich Big-Endian-Maschine: Wert muss im Speicher um zwei Byte verschoben werden. Umgekehrte Umwandlung: Einfacher auf Little-Endian-Maschine höherwertige Bytes werden verworfen Speicheradresse bleibt gleich 14.05.2016 Vorlesung Rechnerarchitektur - Carsten Hahn 7

Klassifikation von Computern Eigenschaft Preis in Dollar Beispielanwendung Wegwerfcomputer 0,5 Glückwunschkarten Mikrocontroller 5 Uhren, Autos, Geräte Spielkonsolen 50 Heimvideospiele Personalcomputer 500 Desktop- oder Notebook-Computer Server 5.000 Netzwerkserver Verbund von Workstations 50.000 bis 500.000 Abteilungsrechner (Minisupercomputer) Großrechner (Mainframe) 5 Millionen Batch-Verarbeitung in einer Bank Tanenbaum, Andrew S. "Computerarchitektur - Strukturen - Konzepte - Grundlagen" Pearson Studium, (5. Aufl.) (2006) 14.05.2016 Vorlesung Rechnerarchitektur - Carsten Hahn 8

Mainboard-Layout bzw. Komponenten eines PC Böttcher, Axel. Rechneraufbau und Rechnerarchitektur. Springer-Verlag, 2007. Prozessor: über schnellen Bus mit Komponenten auf der Hauptplatine verbunden Chipsatz: verbindet Komponenten, ist in zwei Teile geteilt North Bridge: Koppelt Hauptspeicher, Grafikkarte und physische Schicht (Netzwerk) South Bridge: bedient langsame Busse wie Eingabe/Ausgabe oder Festplatten 14.05.2016 Vorlesung Rechnerarchitektur - Carsten Hahn 9

Aktuelles Intel Mainboard-Layout Aktuelle Intel-Architektur integriert North Bridge in den Prozessor Grafikprozessor optional in der CPU enthalten Hauptspeicher und Grafikkarte direkt an den Prozessor angebunden siehe: http://www.intel.de/content/www/de/de/chipsets/performance-chipsets/z170-chipset.html 14.05.2016 Vorlesung Rechnerarchitektur - Carsten Hahn 10

Prozessorgrundstruktur ALE: Arithmetischlogische Einheit AST: Ablaufsteuerung BA: Befehlsadresse BD: Befehlsdecoder BR: Befehlsregister OA: Operandenadresse OP: Operation OR1, OR2: Operandenregister OA: Operandenadresse PSR: Prozessorstatusregister DB: Datenbus AB: Adressbus SB: Steuerbus Beispiel x86 Assembler: ADD EAX, EBX SP: Speicher 14.05.2016 Vorlesung Rechnerarchitektur - Carsten Hahn 11

Klassifikation nach Operandenadressierung 14.05.2016 Vorlesung Rechnerarchitektur - Carsten Hahn 12

Befehlsabarbeitung Arithmetik-Logik-Befehl (Bsp. ADD EAX, EBX) Befehl Lesen (IF) durch Speicher Lesen (MRD) des Maschinencodes (Bsp. ADD, 00...00110011b, fiktiv)) Befehl Dekodieren (ID) durch Aktivierung Befehlsdecoder IDEC 1. Operand: von Register OR1 (RRD) (z.b. EAX) 2. Operand: von Register OR2 (RRD) (z.b. EBX) ALU-Operation (EX) (Bsp. Addition) Ergebnis nach Register OR1 (WB, RWT) (z.b. EAX) Erzeugen der nächsten Befehlsadresse (NIA) (z.b. IP:=IP+4) 14.05.2016 Vorlesung Rechnerarchitektur - Carsten Hahn 13

Pipelining 14.05.2016 Vorlesung Rechnerarchitektur - Carsten Hahn 14

Leistungszuwachs von Prozessoren Hennessy, John L., and David A. Patterson. Computer architecture: a quantitative approach. Elsevier, 2011. Prozessor Leistungszuwachs seit den 1980er Jahren gemessen mit dem SPECint Benchmark im Vergleich zu einem VAX 11/780 14.05.2016 Vorlesung Rechnerarchitektur - Carsten Hahn 15

Leistungssteigerung durch multiple Prozessorkerne Memory Controller Core Core Core Q u e u Core Core Core Shared L3 Cache e Shared L3 Cache 14.05.2016 Vorlesung Rechnerarchitektur - Carsten Hahn 16

Mooresches Gesetz Gordon Moore (* 3. Januar 1929 in San Francisco) Intel-Mitbegründer Mooresches Gesetz (1965) besagt, dass sich die Anzahl der Transistoren eines integrierten Schaltkreises etwa alle zwei Jahre verdoppelt https://commons.wikimedia.org/wiki/file:transistor_count_and_moore's_law_-_2011.svg 14.05.2016 Vorlesung Rechnerarchitektur - Carsten Hahn 17

Amdahls Law: S n : n: A: Speedup in parallelen Systemen Speedup bei n gleichartigen Prozessoren Anzahl an Prozessoren relativer Anteil an der Ausfühungszeit o(n): Overhead durch die Kommunikation und Synchronisation bei n Prozessoren S n = 1 A seriell + o n + A parallel n 14.05.2016 Vorlesung Rechnerarchitektur - Carsten Hahn 18

Vom Quellcode zum Maschinencode Grundproblem: Maschinensprache für den Menschen höchst umständlich Maschinen können aber nur Maschinensprache (primitive Befehle) verstehen Lösung: Menschen nutzen einen anderen Befehlssatz als Sprache L1 (Bsp.: C++) Maschinen verarbeiten eine Übersetzung (Compiler) bzw. Interpretation (Interpreter) von L1, hier als L0 bezeichnet. Compiler: Vollständige Übersetzung des Programms in L1 zu L0 Quellprogramm in L1 wird verworfen Zielprogramm in L0 wird in Speicher geladen und ausgeführt Interpreter: Jede L1 Anweisung wird analysiert, dekodiert und unmittelbar in L0 ausgeführt 14.05.2016 Vorlesung Rechnerarchitektur - Carsten Hahn 19

Beispiel: Java Auch hybride Ansätze möglich: Beispiel Java Java Compiler Interpreter (JVM) Java Source Code Java Bytecode Operating System Quellcode wird von Java Compiler in Bytecode übersetzt JVM interpretiert den Bytestream als nativen Maschinencode, der vom OS ausgeführt werden kann 14.05.2016 Vorlesung Rechnerarchitektur - Carsten Hahn 20

Vom Programm zum Maschinenprogramm Vereinfachter, abstrakter Ablauf: Hochsprache (Bsp.: C++) wird mittels Compiler in eine Assemblersprache übersetzt Compiler analysiert das Programm und erzeugt Assemblercode Für Menschen verständlicher Maschinencode Assembler übersetz Assemblercode in Maschinencode Maschinensprache bestehend aus 0 und 1 Für Menschen schwer verständlich Quellcode (Hochsprache) Compiler Assemblerprogramm Assembler Maschinencode 14.05.2016 Vorlesung Rechnerarchitektur - Carsten Hahn 21

Vereinfachter Ablauf: Vom Programm zum Maschinenprogramm Hochsprache (C++, Java, ) wird mittels Compiler in eine Assemblersprache übersetzt Compiler analysiert das Programm und erzeugt Assemblercode Für Menschen verständlicher Maschinencode Assembler übersetz Assemblercode in Maschinencode Maschinensprache bestehen aus 0 und 1 Quellcode (Hochsprache) Compiler Assemblerprogramm Assembler Maschinencode Fokus nun auf Maschinenebene & Assemblerprogrammierung! 14.05.2016 Vorlesung Rechnerarchitektur - Carsten Hahn 22

Assemblerprogrammierung Assemblersprache: Hardwarenahe Programmiersprache Wird von Assembler direkt in ausführbaren Maschinencode umgewandelt Alle Verarbeitungsmöglichkeiten des Mikrokontrollers werden genutzt Hardwarekomponenten können direkt angesteuert werden Erlauben Namen für Instruktionen, Speicherplätze, Sprungmarken, etc. I.d.R. effizient, geringer Speicherplatzbedarf Anwendung: Gerätetreiber Eingebettete Systeme Echtzeitsysteme Neue Hardware (Keine Bibliotheken vorhanden) Programmierung von Mikroprozessoren (Bsp.: MIPS) lw $t0,($a0) add $t0, $t1,$t2 sw $t0,($a0) jr $ra Beispiel: Assemblercode 14.05.2016 Vorlesung Rechnerarchitektur - Carsten Hahn 23

MIPS-Architektur MIPS-Architektur (Microprocessor without Interlocked Pipeline Stages) Mikroprozessor ohne Pipeline-Sperren RISC-Prozessorarchitektur 1981: von John Hennessy entwickelt (Standford-Universität) 1984: Weiterentwicklung durch MIPS Computer Systems Inc., heute MIPS Technologies. 1991: Mit R4000 auf 64 Bit erweitert (ursprünglich 32-Bit) Früher: vor allem in klassischen Workstations und Servern Heute: Haupteinsatzbereich im Bereich Eingebettete Systeme MIPS R3000 14.05.2016 Vorlesung Rechnerarchitektur - Carsten Hahn 24

RISC / CISC Unterscheidung zwischen: RISC = Reduced Instruction Set Computer CISC = Complex Instruction Set Computer Historie: Beginn: Mikroprozessoren waren alle RISC Prozessoren. Dann: Integration immer weiterer Funktionen => Immer komplexere Prozessor Designs Analyse zeigte: ca. 95% aller Maschinenbefehle in Programmen sind einfache Befehle Also: RISC: Entfernen komplexer Befehle (durch Software realisiert) schnellere Ausführung von Befehlen (keine Interpretation nötig) CISC: Prozessoren haben oft einen RISC Kern Komplexe CISC-Instruktionen werden in Folge von RISC-Instruktionen übersetzt. 14.05.2016 Vorlesung Rechnerarchitektur - Carsten Hahn 25

CISC vs. RISC CISC CPUs: Motorola 68000, Zilog Z80, Intel x86 Familie ab Pentium 486 allerdings mit RISC Kern und vorgeschaltetem Übersetzer in RISC Befehle. Systeme mit RISC CPU: Leistungsstarke eingebetteten Systemen (Druckern, Router) Workstations Supercomputern der Spitzenklasse Beispiele: Cisco: Router und Switches bis zur Enterprise-Klasse IBM: Supercomputer, Mittelklasse-Server, Workstations Nintendo: Gamecube, Wii Spielkonsolen Microsoft: Xbox 360 Spielkonsole Motorola: Bordcomputer für PKW und andere Fahrzeuge 14.05.2016 Vorlesung Rechnerarchitektur - Carsten Hahn 26

Systeme mit RISC CPU: ARM ARM (Advanced RISC Machines) hohe Leistung, geringen Stromverbrauch, niedrige Kosten Typisch 400 MHz 2 GHz (2011) Milliarden ARM-CPUs im Einsatz in Apple: ipods (ARM7TDMI SoC), iphone (Samsung ARM1176JZF), IPod touch (ARM11) Canon: IXY Digital 700 Kamera (ARM-basiert) Hewlett-Packard: HP-49/50 Taschenrechner (ARM9TDMI) Linksys: NSLU2 Netzwerkspeicher/NAS [Intel XScale IXP420] Nintendo: Game Boy Advance (ARM7), Nintendo DS (ARM7, ARM9) Sony: verschiedene Mobiltelefone, Network Walkman (Eigenentwicklung, ARMbasiert) 14.05.2016 Vorlesung Rechnerarchitektur - Carsten Hahn 27

Reduced Instruction Set Computer entspricht vereinfachter Prozessorgrundstruktur der vorangegangen Folien 14.05.2016 Vorlesung Rechnerarchitektur - Carsten Hahn 28

Complex Instruction Set Computer Steuerwerk muss komplexer ausfallen, um komplexe Instruktionen in ihre Bestandteile aufzuspalten und auszuführen 14.05.2016 Vorlesung Rechnerarchitektur - Carsten Hahn 29

Struktur des MIPS Prozessors Nicht alle Funktionen sind im Prozessor selbst realisiert, sondern in Coprozessoren ausgelagert. 14.05.2016 Vorlesung Rechnerarchitektur - Carsten Hahn 30

MIPS-Register (32 Bit breit) Name Nummer Verwendung $zero 0 Enthält den Wert 0, kann nicht verändert werden. $at 1 temporäres Assemblerregister. (Nutzung durch Assembler) $v0 2 Funktionsergebnisse 1 und 2 auch für Zwischenergebnisse $v1 3 $a0 4 Argumente 1 bis 4 für den Prozeduraufruf $a1 5 $a2 6 $a3 7 $t0,,$t7 8-15 temporäre Variablen 1-8. Können von aufgerufenen Prozeduren verändert werden. 14.05.2016 Vorlesung Rechnerarchitektur - Carsten Hahn 31

MIPS-Register 16-31 Name Nummer Verwendung $s0,, $s7 16 23 langlebige Variablen 1-8. Dürfen von aufgerufenen Prozeduren nicht verändert werden. $t8,$t9 24,25 temporäre Variablen 9 und 10. Können von aufgerufenen Prozeduren verändert werden. $k0,k1 26,27 Kernel-Register 1 und 2. Reserviert für Betriebssystem, wird bei Unterbrechungen verwendet. $gp 28 Zeiger auf Datensegment $sp 29 Stackpointer Zeigt auf das erste freie Element des Stacks. $fp 30 Framepointer, Zeiger auf den Prozedurrahmen $ra 31 Return Adresse 14.05.2016 Vorlesung Rechnerarchitektur - Carsten Hahn 32

Adressierung Adressierung: byteweise! Wort mit Adresse n => Nächstes Wort: Adresse n+4 Adresse... 0xA8 0xA9 0xAA 0xAB 0xAC 0xAD 0xAE 0xAF Bytegrenze... byte 168 byte 169 byte 170 Wortgrenze... word 42 word 43... byte 171 byte 172 byte 173 byte 174 byte 175 14.05.2016 Vorlesung Rechnerarchitektur - Carsten Hahn 33