Kap.2 Befehlsschnittstelle. Prozessoren, externe Sicht

Ähnliche Dokumente
Die Mikroprogrammebene eines Rechners

L3. Datenmanipulation

Kap 4. 4 Die Mikroprogrammebene eines Rechners

Kap.2 Befehlsschnittstelle. Prozessoren, externe Sicht

Technische Informatik 2 Adressierungsarten

Mikroprozessor als universeller digitaler Baustein

DATEN UND BEFEHLSFORMATE, ADDRESSIERUNGSARTEN UND MASCHINEN- PROGRAMMIERUNGSKONZEPTE

Instruktionssatz-Architektur

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

2.2 Rechnerorganisation: Aufbau und Funktionsweise

Technische Informatik 2 Maschinenprogrammierungskonzepte

B1 Stapelspeicher (stack)

Assembler und Hochsprachen

Grundlagen der Rechnerarchitektur

3 Rechnen und Schaltnetze

Aufbau und Funktionsweise eines Computers

C. BABBAGE ( ): Programmgesteuerter (mechanischer) Rechner

1.7 Assembler Programmierung

Grundlagen der Rechnerarchitektur

Grundlagen der Rechnerarchitektur. Einführung

1 Einleitung zum RISC Prozessor

Assembler-Programme. Systemprogrammierung (37-023) Elementare Komponenten eines Assembler-Programmes

Karlsruher Institut für Technologie

HC680 PROGRAMMER'S REFERENCE MANUAL

J.5 Die Java Virtual Machine

Prozessor HC680 fiktiv

2. Rechnerarchitektur 2.1 einfache Computer

Zahlendarstellungen und Rechnerarithmetik*

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

Computerarithmetik ( )

Technische Informatik

Betriebssysteme Teil 6: Hardware-Schicht II

Teil VIII Von Neumann Rechner 1

Name: ES2 Klausur Thema: ARM Name: Punkte: Note:

Fehlerkorrektur Bild Demoprozessor

in vielen technischen und wissenschaftlichen Anwendungen erforderlich: hohe Präzision große Dynamik möglich durch Verwendung von Gleitkommazahlen

Technische Informatik 1

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

Umsetzung in aktuellen Prozessoren

Rechnerarchitektur. Dr. Andreas Müller TU Chemnitz Fakultät für Informatik Fakultätsrechen- und Informationszentrum

Programmierung in C. Grundlagen. Stefan Kallerhoff

Das Rechnermodell von John von Neumann

Grundlagen der Technischen Informatik Wintersemester 12/13 J. Kaiser, IVS-EOS

5.BMaschinensprache und Assembler

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Computer-Architektur Ein Überblick

Daten, Informationen, Kodierung. Binärkodierung

Rechnerarchitektur. M. Jakob. 1. Februar Gymnasium Pegnitz

Rechnerarchitektur Atmega Vortrag Atmega 32. Von Urs Müller und Marion Knoth. Urs Müller Seite 1 von 7

Computational Biology: Bioelektromagnetismus und Biomechanik

Binäre Division. Binäre Division (Forts.)

Lektion 3: Was ist und was kann ein Computer?

Rechnerarchitektur. Prof. Dr. Rolf Drechsler Institut für Informatik Universität Bremen

Repräsentation von Daten Binärcodierung ganzer Zahlen

5 Speicherverwaltung. bs-5.1 1

Atmel AVR für Dummies

Dezimalkomma (decimal point) rechts von Stelle mit Wertigkeit 100 nachfolgende Stellen haben Wertigkeit 10-1, 10-2, etc.

Midterm-Klausur Technische Grundlagen der Informatik

Numerische Datentypen. Simon Weidmann

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

Kapitel 2. Zahlensysteme, Darstellung von Informationen

Einführung in die Systemprogrammierung

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

Rechner Architektur. Martin Gülck

Modul 122 VBA Scribt.docx

Hardwareaufbau der Mikrocontroller der 51er -Familie

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/13

Einführung in die Programmiersprache C und in den C166-Compiler

Arithmetik. Einführung in die Technische Informatik Falko Dressler, Stefan Podlipnig Universität Innsbruck

Inhaltsverzeichnis. Teil I Aufgaben 1

Rechnerarchitektur und Betriebssysteme (CS201): AVR-CPU und -Assembler

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

Proseminar C-Programmierung. Strukturen. Von Marcel Lebek

Der MS-DOS Standardmonitor und Debugger DEBUG

Lösungsvorschlag zur 9. Übung

4.2 Universalrechner: Schaltung unabhängig vom Problem 185

1. Übung - Einführung/Rechnerarchitektur

Daten- Bus. Steuerbus

11.0 Rechnerarchitekturen

Elementare logische Operationen

Nachfolgende Abbildung zeigt das Spezialregister ra, das Arithmetische Status Register. Interrupt Enable (Freischalten)

Binärcodierung elementarer Datentypen: Darstellung negativer Zahlen

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

Zahlensysteme: Oktal- und Hexadezimalsystem

Aufbau und Funktionsweise eines Computers

Einführung in die Programmierung mit C++

0 C (Carry) Überlauf des 8ten Bits. 1 DC (Digit Carry) Überlauf des 4ten Bits. Mnemonic Parameter Beschreibung Status-Flags.

Fachhochschule Kaiserslautern Fachbereich Angewandte Ingenieurwissenschaften WS2010/11. Zeitpunkt der Prüfung: Beginn: 10.

Klausur. Technische Grundlagen der Informatik Prof. Dr. Arndt Bode

Tutorium Rechnerorganisation

Teil 1: Prozessorstrukturen

9.0 Komplexe Schaltwerke

3 Assembler- und Maschinenbefehle, Programmablauf-Steuerung

Binäre Gleitkommazahlen

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Im Original veränderbare Word-Dateien

Kode-Erzeugung, Abstrakte Maschinen, Rechnerarchitekturen

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

Technische Informatik. Der VON NEUMANN Computer

Designprinzipien. moderner Prozessoren. Fachhochschule Darmstadt

Transkript:

Kap.2 Befehlsschnittstelle Prozessoren, externe Sicht

2 Befehlsschnittstelle 2.1 elementare Datentypen, Operationen 2.2 logische Speicherorganisation 2.3 Maschinenbefehlssatz 2.4 Klassifikation von Befehlssätzen 2.5 Unterbrechungen 2.6 Prozesse

Speicherorganisation Speicher repräsentieren den Zustand eines Rechensystems, bzw. eines Programms Konfiguration Wir unterscheiden Hauptspeicher und Registerspeicher.

Hauptspeicher (1) großes adressierbares Array i.d.r. Byte-Adressierung, d.h. jedes Byte besitzt eine eigene, eindeutige Adresse größeren Datentypen (z.b. int) sind mehrere Bytes zugeordnet (little endian, big endian: siehe unten)

Hauptspeicher (2) Aus Performance-Gründen ist Schreiben einzelner Bytes/Bits oft gar nicht möglich Ausrichtung an Wortgrenzen: Alignment Bsp.: 4-Byte-Wort beginnt mit Byte-Nr. (Adresse), die durch 4 teilbar ist.

Hauptspeicher (3) maximale Größe: m Bits für Adresse 2 m adressierbare Speicherzellen 16-bit Adressen bei DEC PDP-11 24-bit Adressen bei IBM Großrechnern 64-bit bei DEC Alpha, SuperSPARC

Nummerierung der Bytes (1) little endian am wenigsten signifikanter Teil erhält die niedrigste Byte-Adresse big endian der signifikanteste Teil erhält die niedrigste Byte-Adresse

Nummerierung der Bytes (2) von Rechner zu Rechner verschieden manche unterstützen beide Formate (umschaltbar) i.d.r. merkt der Benutzer nichts davon, es sei denn man möchte auf einzelne Bytes explizit zugreifen Bei Zahlendarstellungen sind little endians natürlicher. Bei Strings (Voraussetzung: 1. Zeichen ist signifikantester Teil ) sind big endians natürlicher.

Registerspeicher Viel kleiner als Hauptspeicher, aber auch viel schneller kann genutzt werden, um lokale Informationen in Registern zu halten und so die Ausführung von Programmen zu beschleunigen Vorteil, wenn sich Programme in gewissem Umfang lokal verhalten: Schneller Zugriff auf Informationen Kurze Adreßteile in Maschinenbefehlen

Designparameter Größe je nach Architektur unterschiedlich große Registerspeicher kleine Registerbank: wenige Bit zur Ansteuerung/Befehlskodierung, aber für schnelle Ausführung ist dann schnelle Speicherarchitektur (z.b. schneller Cache- Speicher) notwendig große Zahl: Befehlsgröße wächst, Ausführungszeit klein

Funktionalität homogen: alle Register haben gleiche Funktionalität einfach zu nutzen (einfache Codeerzeugung) inhomogen: special purpose register Bsp.: ACCU, Stack pointer, Statusregister, Befehlszähler,... erleichtert schnelle Ausführung von speziellen Operationen, z.b. Stack pointer bei push/pop vom Kellerspeicher (Manipulation des Stack pointers bei push bzw. pop kein eigener Befehl!) Ermöglichen evtl. kompakteren Code, z.b. Wenn Ergebnis immer in speziellem Register anfällt, dann muß dieses im Befehl nicht kodiert werden.

Registerfunktionen Adressregister Datenregister Spezialregister

Spezialregister (1) Akkumulator-Register (ACCU) speichert (einen Operanden und) Ergebnis einer arithmetischen Operation unterstützt evtl. Ausführung von Schieben Programmzähler (Befehlszähler) erzeugt durch Inkrementieren aufeinanderfolgende Programmadressen bei Sprungbefehlen neuen Wert laden

Spezialregister (2) Instruktionsregister nimmt den aus dem Speicher gelesenen Befehl auf Statusregister / Condition-Code- Register Informationen, die aus Operationen resultieren,z.b. Überlauf (overflow flag) Übertrag (carry flag) Vorzeichen (sign flag) Ergebnis = 0 (zero flag)

Spezialregister (3) Stack-Pointer (Kellerzeiger) aktuelle Höhe des Kellers in Stack-Pointer- Register gespeichert Keller z.b. zur Verwaltung von Rücksprungadressen und lokalen Variablen bei Unterprogrammen

Beispiele (1) Motorola MC 68000 (1980-- ) 16-bit Prozessor, interne Struktur 32 bit 16 weitgehend homogene 32-bit Register (8 Daten-, 8 Adress-) 3 Stack Pointer-Register (Auswahl je nach Prozessorzustand: normale Userroutine / Betriebssystemroutine / Interrupt) 5 weitere Spezialregister optional 8 80-bit floating point Register

IPS (z.b. in Silicon Graphics Workstations) 1960 1965 CDC 6600 1963 Historische Einordnung von MIPS und anderen RISC- Architekturen 1970 IBM ASC 1968 1975 CRAY 1 1976 IBM 801 1975 1980 Berkeley RISC-1 1981 Stanford MIPS 1982 1985 SPARC v8 1987 MIPS I 1986 PA-RISC 1986 RT/PC 1986 America 1985 1990 SPARC v9 MIPS II 1989 MIPS III 1992 Alpha 1992 Power-2 Power-1 1990 PowerPC

Beispiele (2) MIPS I/II 32-bit RISC Prozessor 32 weitgehend homogene 32-bit Register (bis auf Register mit Nr. 0 und 1, die Spezialregister darstellen) 2 Register HI und LO für Ergebnisse von Multiplikationen und Divisionen kein Condition-Code-Register 32 32-bit floating-point-register (einzeln für single precision, paarweise für double precision)

Beispiele (3) Intel 80386/486 (1985-90) 32-bit Prozessor 16 Register, 10 32-bit, 6 16-bit jedes Register hat (mehr oder weniger) spezielle Aufgaben 8 floating-point-register (80-bit)