Mikrorechentechnik 1. Befehlssatzarchitektur. Professur für Prozessleittechnik Wintersemester 2011/2012

Ähnliche Dokumente
Assembler - Adressierungsarten

Teil 1: Prozessorstrukturen

6. Intel IA-32 Prozessoren Aufbau und Adressierungsarten

x86-assemblerprogrammierung


Die Mikroprogrammebene eines Rechners

Technische Informatik 2 Adressierungsarten

Vorlesung "Struktur von Mikrorechnern" (SMR)

Von-Neumann-Architektur

Teil 1: Prozessorstrukturen

Hinweise 80x86-Architektur

Rechnerorganisation. IKS 2017 H.-D. Wuttke, K. Henke

Einführung. Übungen zur Vorlesung Virtuelle Maschinen. Stefan Potyra. SoSe 2009

Vorlesung Rechnerarchitektur. Einführung

Assembler - Variablen

FAKULTÄT FÜR INFORMATIK

Grundbegriffe der Informatik

Mikrocomputertechnik. Thema: Der Aufbau des XC888-Mikrocontrollers -Teil 1 -

10. Die Adressierungsarten des MSP 430

Instruktionssatz-Architektur

Kap 4. 4 Die Mikroprogrammebene eines Rechners

Assembler - Einführung 1. Teil. Vorstellung der wichtigsten Grundbegriffe und Grundkenntnisse sowie der wichtigsten Hardwarekomponenten

9. Assembler: Der Prozessor Motorola 68000

Kap.2 Befehlsschnittstelle. Prozessoren, externe Sicht

Datenpfad einer einfachen MIPS CPU

4 Der Von-Neumann-Rechner als Grundkonzept für Rechnerstrukturen

Geräteentwurf mit Mikroprozessoren 1

FAKULTÄT FÜR INFORMATIK

Teil 1: Prozessorstrukturen

Betriebssysteme (BS) IA-32. Überblick. das Programmiermodell der Intel Architektur. Historie der Intel x86 Prozessoren. 8086: Programmiermodell

Rechnerorganisation. IKS 2016 H.-D. Wuttke, K. Henke

Technische Informatik - Eine Einführung

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

7 Ein einfacher CISC-Prozessor

DATEN UND BEFEHLSFORMATE, ADDRESSIERUNGSARTEN UND MASCHINEN- PROGRAMMIERUNGSKONZEPTE

Grundlagen der Rechnerarchitektur

3. Grundlagen der Rechnerarchitektur

Arbeitsfolien - Teil 4 CISC und RISC

Datenpfad einer einfachen MIPS CPU

Grundlagen der Rechnerarchitektur

Einführung in Computersysteme

Rechnerarchitektur Zusammengetragen vom Marc Landolt

Übungen zu Grundlagen der Rechnerarchitektur und -organisation: Bonusaufgaben Übung 8 und Präsenzaufgaben Übung 9

Struktur der CPU (1) Die Adress- und Datenpfad der CPU: Befehl holen. Vorlesung Rechnerarchitektur und Rechnertechnik SS Memory Adress Register

x86 Assembler Praktische Einführung Sebastian Lackner Michael Müller 3. Juni 2013

Datenpfad einer einfachen MIPS CPU

Assembler Integer-Arithmetik

2. Rechnerarchitektur 2.1 einfache Computer

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

INFORMATIK Oberstufe. Funktionsweise eines Rechners

Pentium. Die Intel-Pentium CPU. AK Pentium. Packaging. Pentium Busse. RISC oder CISC?

Mikroprozessor als universeller digitaler Baustein

1.7 Assembler Programmierung

DOSEMU. Vortrag im Hauptseminar Konzepte und Techniken virtueller Maschinen und Emulatoren. Matthias Felix FAU. 13.

Teil VIII Von Neumann Rechner 1

U23 Assembler Workshop

Multi-Port-Speichermanager für die Java-Plattform SHAP

ERA-Zentralübung Maschinenprogrammierung

Bekannte Druckfehler im Buch Embedded Controller Eine Einführung in Hard- und Software

L3. Datenmanipulation

TIn 1: Feedback Laboratories. Lecture 4 Data transfer. Question: What is the IP? Institut für Embedded Systems. Institut für Embedded Systems

Musterlösungen Technische Informatik 2 (T2) Prof. Dr.-Ing. D. P. F. Möller

Betriebssysteme (BS)

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

Informatikgrundlagen I Grundlagen der Informatik I

Computer-Architektur Ein Überblick

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

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

Prozessorarchitektur. Kapitel 1 - Wiederholung. M. Schölzel

1. Grundlagen der Informatik Organisation und Architektur von Rechnern

Prinzipieller Aufbau und Funktionsweise eines Prozessors

PC/XT/AT ASSEMBLER-BUCH

U23 Assembler Workshop

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

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2012 / Vorlesung 9, Dienstag 18.

Technische Informatik 2 Maschinenprogrammierungskonzepte

Rechnergrundlagen. Vom Rechenwerk zum Universalrechner

B Einführung. 1 Historische Entwicklung. 1 Historische Entwicklung (3) 1 Historische Entwicklung (2)

Mikrocomputertechnik. Adressierungsarten

68000 Assembler. WAS ist ein Assembler? Ein System, das den Programmierer hilft, eine maschinennahe Programmierung zu realisieren.

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

7a. Rechnerarchitektur und Grundzüge der Assemblerprogrammierung

Was ist die Performance Ratio?

MikroController und Mikroprozessoren

2. Aufgabenblatt Musterlösung

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

CPU. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011

Wichtige Rechnerarchitekturen

Neue Prozessor-Architekturen für Desktop-PC

Einführung in die Informatik

Neues vom STRIP Forth-Prozessor

Daniel Betz Wintersemester 2011/12

Assembler - Einleitung

05. Assembler-Programmierung. Datenstrukturen des ATMega32. Literatur

3. Rechnerarchitektur

RO-Tutorien 17 und 18

Betriebssysteme BS-V SS Hans-Georg Eßer. Foliensatz V: Ulix: Interrupts und Faults Ulix: System Calls. Dipl.-Math., Dipl.-Inform.

Transkript:

Fakultät Elektrotechnik und Informationstechnik, Professur für Prozessleittechnik Mikrorechentechnik 1 Befehlssatzarchitektur Professur für Prozessleittechnik Wintersemester 2011/2012

Qualifikationsziele Sie können sich die notwendigen Kenntnisse zur Programmierung eines neuen Mikroprozessors selbstständig erarbeiten, d.h. Sie verstehen das grundlegende Architekturkonzept, Sie können sich die Register und ggf. deren Besonderheiten erarbeiten, Sie kennen die Adressierungsarten, (sie wissen wo sie nachsehen müssen) Sie kennen die Grundstruktur der 80x86-Familie... und das 16-Bit-Erbe, das diese Prozessoren mit sich rumschleppen. MRT1 (c) Urbas 2007-2011 Folie 2

Definition Befehlssatzarchitektur... the attributes of a system as seen by the programmer, i.e. the conceptual structure and functional behavior, as distinct from the organization of the data flows and controls the logic design, and the physical implementation (Amdahl, Blaaw, und Brooks, 1964) MRT1 (c) Urbas 2007-2011 Folie 3

Objektorientierte Sichtweise (Java, C++) Denken in Systemen aus Objekten Objekt = Instanz einer Klasse mit Attributen & Methoden Unabhängig von technischem Substrat In ersten Entwurfsschritten auch unabhängig von Berechnung MRT1 (c) Urbas 2007-2011 Folie 4

Prozedurale Sichtweise (C, Fortran) Denken in Variablen und Prozeduren Algorithmus = Rezept zur Manipulation von Variablen (= Datenstrukturen) mit Hilfe von geeigneten Instruktionen und Prozeduren Weitgehend unabhängig vom technischen Substrat Berechnungsorientiert MRT1 (c) Urbas 2007-2011 Folie 5

Befehlssatzorientiert (Assembler) Zusammenspiel der Komponenten der CPU Verschieben von Speicherstellen oder IOs in Register Manipulation von Registerinhalten Verschieben von Registerinhalten in Speicher oder IOs Hochspezifisch für die jeweilige Rechnerarchitektur MRT1 (c) Urbas 2007-2011 Folie 6

Klassifizierungskriterium Art und Menge der an ALU und Speicher angebundenen Register Stack-Architektur Akkumulator-Architektur Allzweckregister-Architekturen Register-Register-Maschinen (Load-Store-Architektur) Register-Speicher-Maschinen Speicher-Speicher-Maschinen Reale Prozessoren sind häufig Mischlinge MRT1 (c) Urbas 2007-2011 Folie 7

Stack-Architektur Ergebnisspeicher sind als Stack (LIFO) realisiert Häufig nur Zugriff auf oberste Speicherstelle des Stacks realisiert (PUSH, POP) Beispiel: C A + B PUSH A ; Stack A PUSH B ; Stack B ADD ; Stack pop + pop POP C ; C Stack. MRT1 (c) Urbas 2007-2011 Folie 8

Diskussion Stack-Architektur Einfache Realisierung Wenige Befehle mit fester Länge Null-Adress-Maschine Für Operationen werden keine Adressen angeben. Operatoren und Ergebnis liegen an vordefinierten Stellen im Stack MRT1 (c) Urbas 2007-2011 Folie 9

Akkumulator-Architektur (Praktikum Compi16) Ein ausgezeichnetes Register: Akkumulator (Akku) Akku wirkt implizit an allen Operationen mit LOAD (LDA) und STORE (STA) wirken nur auf Akku. Beispiel: C A + B LDA A ADD B STA C ; AR A ; AR AR + B ; C AR MRT1 (c) Urbas 2007-2011 Folie 10

Diskussion Akkumulator-Architektur Sehr kompaktes Befehlsformat möglich Ein-Adress-Maschine Es muss nur ein Operand angegeben werden, Ein ggf. zweiter und das Ergebnis liegen in einem vordefiniertem Speicher, dem Akku MRT1 (c) Urbas 2007-2011 Folie 11

Register-Register-Architektur (DLX Informatik 2) Operationen arbeiten mit Registern Zugriff auf Speicher/Register mit LOAD und STORE Üblicherweise viele Register (32-512) Beispiel: C A+B LOAD R1, A LOAD R2, B ADD R3, R1, R2 STORE C, R3 ; R1 A ; R2 A ; R3 R1 + R2 ; C R3 MRT1 (c) Urbas 2007-2011 Folie 12

Diskussion Register-Register-Architektur wenige Befehle fester Länge Abgesehen von LOAD/STORE brauchen alle Instruktionen in etwa gleich viele Takte MRT1 (c) Urbas 2007-2011 Folie 13

Register-Speicher Architektur Operationen greifen auf Register und/oder Speicher zu üblicherweise wenige Register Beispiel: C A + B MOV AX, A ; AX A ADD AX, B ; AX AX + B MOV C, AX ; C AX MRT1 (c) Urbas 2007-2011 Folie 14

Diskussion Speicher-Register Architektur Viele unterschiedliche Wege Viele, zum Teil sehr komplexe Befehle variabler Länge und Ausführungszeit (CISC) Komplexes Steuerwerk notwendig MRT1 (c) Urbas 2007-2011 Folie 15

Fakultät Elektrotechnik und Informationstechnik, Professur für Prozessleittechnik Modellprozessor 80x86

Warum 80x86? Geringe zusätzliche Kosten: Hohe Verfügbarkeit von x86-prozessoren (bzw. Emulatoren für mac, ppc) bei den Studierenden Gute Dokumentation: Vielfältige Literatur und Software. Angemessenheit: Grundprinzipien der Befehlsarchitektur, der Besonderheiten/Ungereimtheiten und der Programmierung sind auf andere Architekturen gut übertragbar. MRT1 (c) Urbas 2007-2011 Folie 17

c t 13/2003 zur x86-prozessor-architektur Vieles hat sich in den letzten Jahren in der Computerszene verändert. Das Diskettenlaufwerk ist längst passé, der DVD- Brenner gehört mittlerweile zum Standard. MS-DOS ist in einer winzigen Nische von Windows XP verschwunden, und statt PacMan spielt man heute Egoshooter in 3D. Nur die x86er-prozessor-architektur steckt noch in jedem PC. Dabei war der 8086-Prozessor damals gar nicht revolutionär, sondern nur eine logische Fortentwicklung bestehender 8-Bit- Systeme. Durchgesetzt hat er sich einige Jahre später vor allem, weil IBM den ersten Personal Computer mit einem 8088-Prozessor ausstattete [ ] MRT1 (c) Urbas 2007-2011 Folie 18

Befehlssatzarchitektur 8086 Struktureller Aufbau der CPU (soweit relevant für das Verständnis von Besonderheiten) Anbindung der Register an Speicher, ALU (und andere Rechenwerke) Funktion der Register MRT1 (c) Urbas 2007-2011 Folie 19

Blockschaltbild 8086 CPU Execution Unit (EU) Befehlskodierung Ausführung Bus Interface Unit (BIU) Datenhandling Befehlsspeicher Adressberechnung MRT1 (c) Urbas 2007-2011 Folie 20

8086 Execution Unit Arithmetische logische Einheit (ALU) Steuereinheit (Befehlsdekodierung) Statusregister (Flags) 4 Mehrzweckregister 16 Bit AX, BX, CX, DX Teilbar für 8-Bit Zugriffe 4 Zeiger/Indexregister 16 Bit SP, BP, DI, SI MRT1 (c) Urbas 2007-2011 Folie 21

8086 Bus Interface Unit Addressaddierwerk mit 20 Bit Addressbreite Bussteuerung Befehlswarteschlange 4 Register für die Adressberechnung 16 Bit CS, DS, SS, ES Befehlszeigerregister 16 Bit IP MRT1 (c) Urbas 2007-2011 Folie 22

Exkurs 80286 Aufwärtskompatible Weiterentwicklung 16 Bit Datenbus 24 Bit Addressbus Vier nebenläufig arbeitende Einheiten: AU, EU, BU, IU (aus Vierhaus & Galke 2000) MRT1 (c) Urbas 2007-2011 Folie 23

Exkurs 80386 Pentium 34 32-bit Register Superskalare Architektur Pipeline MRT1 (c) Urbas 2007-2011 Folie 24

Aufwärtskompatibilität? Drastische Änderungen in der Architektur: 16bit -> 32bit -> 64bit EU/BIU -> Superskalare Architektur CISC -> RISC + Microcode Wieso läuft ein maschinennahes Programm für 8086 auch auf allen späteren Prozessoren? Verschiedene Betriebsarten mit leicht unterschiedlicher aber syntaxkompatibler Befehlssatzarchitektur: 16-bit Real Mode (8086, z.b. MSDOS) 16-bit Protected Mode (ab 286 Win3.1) 32-bit Protected Mode (ab 386 NT/2K/XP, Linux) MRT1 (c) Urbas 2007-2011 Folie 25

Fakultät Elektrotechnik und Informationstechnik, Professur für Prozessleittechnik Befehlssatzarchitektur des 80x86-Prozessors (im 16-Bit Real Modus)

8086 Befehlssatzarchitektur CPU Zwitter Akkumulator- / Register- Speicher-Architektur 14 16 Bit Register 4 x Universelle Register 4 x Zeiger/Indexregister 4 x Segmentregister + Flagregister, + Befehlszeiger Speicher (Memory) 20 Bit Adressraum (1 Mbyte) Ein-/Ausgabe (I/O) Spezielle Ein/Ausgabebefehle MRT1 (c) Urbas 2007-2011 Folie 27

Universelle Register (mit Spezialfunktionen) AX Akkumulator Multiplikation, Division BX Basisregister indirekte Adressierung. CX - Zählerregister Schleifenoperationen. DX Datenregister Mult, Division von 16-Bit-Worten Kanalnummer bei I/O-Befehlen MRT1 (c) Urbas 2007-2011 Folie 28

Register zur Speicherverwaltung CS - Code-Segment Segment für Befehle DS Daten-Segment Segment für Daten SS - Stack-Segment Segment für den Stapelspeicher ES - Extrasegment für Zeichenkettenoperationen MRT1 (c) Urbas 2007-2011 Folie 29

8086 Adressaddierwerk 16 bit Register, aber 1 MB Adressraum Zerlegung in Segmente (16 bit = 65 kbyte) Adresse = Segmentadresse * 16 + Offsetadresse Berechnung automatisch in BIU Segmente überlappen! Registerkombinationen nicht frei wählbar MRT1 (c) Urbas 2007-2011 Folie 30

Registerpaarung für die Adressberechnung Stapelspeicher Stacksegment + Stapelzeiger Stacksegment + Basiszeiger Befehle Codesegment + Befehlszeiger Daten Datensegment + diverse Zeiger und Indexregister Extrasegment + Zielindex MRT1 (c) Urbas 2007-2011 Folie 31

Fakultät Elektrotechnik und Informationstechnik, Professur für Prozessleittechnik Angabe von Operanden Konstanten, Register, Speicher

Angabe von Operanden Ohne Zugriff auf Speicher Immediate (Konstante) Register Immediate (Inhalt eines Registers) Mit Zugriff auf Speicher Direct Mode (feste Speicherstelle) Register Indirect Mode (Speicherstelle ist in Register angegeben) Mit indiziertem Zugriff auf Speicher Base Mode Base-Indexed Mode Base-Indexed Mode with Displacement MRT1 (c) Urbas 2007-2011 Folie 33

Immediate (Direktwert) Belege ein Register oder eine Speicherstelle mit einer Konstanten Adressierungsarten (Ziel/Quelle) und Direktwert (8/16 Bit) werden im Maschinenbefehl kodiert Beispiel: Belege das Register AH mit dem Wert 76 (= 4Ch) Assembler: MOV AH, 4Ch Maschinencode: B4 4C MRT1 (c) Urbas 2007-2011 Folie 34

Kurzer Exkurs: Maschinencode Zur Erinnerung: Programme sind auch nur Daten, die vom Steuerwerk interpretiert werden Belege Register AH (reg=0) direkt mit Bytewert 4Ch (w=0, data=4c) to --> 10110000 01001100 TU Dresden, 11.10.2009 MRT1 (c) Urbas 2007-2011 Folie 35

Register Immediate (Direktbelegung Register) Zugriff auf den Inhalt eines Registers Art der Adressierung (register-register) und Auswahl der Register wird im Befehl kodiert Beispiel: Belege das Register BX mit dem in Register AX gespeicherten Wert Assembler: MOV BX, AX Maschinencode: 8E D8 MRT1 (c) Urbas 2007-2011 Folie 36

Direct Mode (Feste Speicheradresse) Zugriff auf den Inhalt einer festen Speicherstelle Wenn nicht anders angegeben, wird das Datensegmentregister (DS) zur Adressberechnung verwendet Beispiel: Belege Register AX mit dem Wert an Speicherstelle 2601h Assembler: MOV AX, [2601h] Maschinencode: 8B 1E 26 01 MRT1 (c) Urbas 2007-2011 Folie 37

Base Mode (Indirekte Registeradressierung) Zugriff auf den Inhalt einer Speicherstelle, deren Adresse in einem Register liegt Default für Segmentregister abhängig von Register Beispiel: Belege AX mit BX dem Wert der an der Speicherstelle liegt, die in BX angegeben ist + Assembler: MOV AX, [BX] DS MRT1 (c) Urbas 2007-2011 Folie 38

Base-Indexed-Mode with Displacement Zugriff auf die Adresse, deren Offset sich aus dem Inhalt des Basisregisters plus einer Konstanten ergibt. Beispiel mov ax, [bx+4] 4 + bx + DS MRT1 (c) Urbas 2007-2011 Folie 39

16-bit protected mode (ab 286) Virtuelle Speicherverwaltung Segment = Selektor (Index in eine Deskriptortabelle) Keine festgelegte Position im Speicher mehr Effiziente Auslagerung von Speicher auf die Festplatte Vergabe von Zugriffsrechten (read-only) Problem Register nach wie vor 16 bit, d.h. Segmentgröße immer noch auf 64 kbyte beschränkt MRT1 (c) Urbas 2007-2011 Folie 40

32-bit protected Mode (ab 386) Viele Register sind nun 32 Bit breit EAX, EBX, ECX, EDX, ESI, EDI, ESP, EBP Segmentregister nach wie vor 16 Bit, neu FS, GS 32 bit Adressregister Segmentgröße 4 Gbyte Flaches Programmiermodell, Segment und Segmentgröße muss normalerweise nicht beachtet werden Aber: Unterteilung von Segmenten in Seiten (Page, 4 Kbyte) möglich Nur Teile eines Segments müssen im Speicher sein. Notwendige Voraussetzung für Mehraufgabensysteme wie Windows NT/2000/XP, OS/2, MacOS und Linux MRT1 (c) Urbas 2007-2011 Folie 41

32-Bit Register 386 ff. E = Extendend = 32 Bit EAX, EBX, ECX, EDX Allgemeine 32 bit Register, aber: EAX: Berechnungen EBX: Zeiger (Pointer) ECX: Schleifen EDX: Mult/Div, 64 bit mit EAX 16 and 8 bit Teile (286, 8088) ESI, EDI: String Operationen EBP, ESP: Base/Stack Pointer CS-GS: Segmentierter Speicher EIP: Instruction Counter (=PC) EFLAGS: Prozessorstatuswort Nur in Real/Seg. Mode sichtbar --> MRT1-2 Praktikum MRT1 (c) Urbas 2007-2011 Folie 42