3. Grundlagen der Rechnerarchitektur

Ähnliche Dokumente
Kap.2 Befehlsschnittstelle. Prozessoren, externe Sicht


9. Assembler: Der Prozessor Motorola 68000

Die Mikroprogrammebene eines Rechners

Teil 1: Prozessorstrukturen

Technische Informatik - Eine Einführung

1. Übung - Einführung/Rechnerarchitektur

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

Teil 1: Prozessorstrukturen

L3. Datenmanipulation

2.2 Rechnerorganisation: Aufbau und Funktionsweise

Prinzipieller Aufbau und Funktionsweise eines Prozessors

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

Kap 4. 4 Die Mikroprogrammebene eines Rechners

Von-Neumann-Architektur

INFORMATIK Oberstufe. Funktionsweise eines Rechners

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

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

Kapitel 11 RISC-Rechner

Grundlagen der Rechnerarchitektur. Einführung

2.1 Rechnersichten 2.2 Rechnerorganisation: Aufbau und Funktionsweise

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

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

Philipp Grasl PROZESSOREN

Technische Informatik 2 Adressierungsarten

C. BABBAGE ( ): Programmgesteuerter (mechanischer) Rechner

Rechner Architektur. Martin Gülck

Arbeitsfolien - Teil 4 CISC und RISC

Vorlesung Rechnerarchitektur. Einführung

Geräteentwurf mit Mikroprozessoren 1

Computer-Architektur Ein Überblick

3. Rechnerarchitektur

Teil 1: Prozessorstrukturen

Der Toy Rechner Ein einfacher Mikrorechner

Tutorium Rechnerorganisation

1 Einleitung zum RISC Prozessor

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

Teil 2: Rechnerorganisation

2. Rechnerarchitektur 2.1 einfache Computer

Aufbau und Funktionsweise eines Computers

Rechnergrundlagen. Vom Rechenwerk zum Universalrechner

Im Original veränderbare Word-Dateien

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

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

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

Rechnergrundlagen SS Vorlesung

Kap.2 Befehlsschnittstelle. Prozessoren, externe Sicht

DIGITALE SCHALTUNGEN II

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

Begriffsbestimmungen. 1. Mikrocomputer: 2. Mikroprozessor: 3. Mikrocontroller:

RISC: Reduced Instruction Set Computer. Technische Informatik I Wintersemester 12/13 1. J. Kaiser, IVS-EOS

Neues vom STRIP Forth-Prozessor

10. Die Adressierungsarten des MSP 430

Teil VIII Von Neumann Rechner 1

Kap.2 Befehlsschnittstelle. Prozessoren, externe Sicht

FAKULTÄT FÜR INFORMATIK

Instruktionssatz-Architektur

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

Mikrocomputertechnik

Informatikgrundlagen I Grundlagen der Informatik I

Motorola 680x0: function codes

Motorola 680x0: function codes

Das Rechnermodell von John von Neumann

Neue Prozessor-Architekturen für Desktop-PC

Wichtige Rechnerarchitekturen

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

Random Access Machine (RAM) Berechenbarkeit und Komplexität Random Access Machines

Lösungsvorschlag 9. Übung Technische Grundlagen der Informatik II Sommersemester 2009

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

Assembler Integer-Arithmetik

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

Einführung in die Informatik

Grundlagen der Rechnerarchitektur

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

8. Beschreibung des Prozessors MSP 430

H E F B G D. C. DLX Rechnerkern

MOP: Befehlsliste für den Mikrocontroller 8051

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

Computer-Systeme. Teil 5: Central Processing Unit (CPU)

Computer-Systeme Teil 5: Central Processing Unit (CPU)

ZENTRALEINHEITEN GRUPPE

Systeme 1: Architektur

3AA. Prof. Dr. Wolfgang P. Kowalk. Universität Oldenburg WS 2005/2006

Microcomputertechnik

1. Rechnersysteme (Einführung) VL1 2. Komponenten. 3. Daten und Informationen VL2 4. Von Neumann Maschine. 5. Computer und Software VL3

Technische Informatik 2 Maschinenprogrammierungskonzepte

Technische Informatik 1

Rechneraufbau und Rechnerstrukturen

F Ein einfacher Modellprozessor

Rechnerarchitektur. M. Jakob. 1. Februar Gymnasium Pegnitz

Allgemeine Struktur eines Digitalrechners

Assembler - Adressierungsarten

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

Rechnergrundlagen SS Vorlesung

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

In heutigen Computern findet man schnellen/teuren als auch langsamen/billigen Speicher

Aufbau eines Taschenrechners

Prof. Dr. Sven-Hendrik Voß Sommersemester 2017 Technische Informatik (Bachelor), Semester 2 Termin 2, Maschinenorientierte Programmierung

RO-Tutorien 3 / 6 / 12

Transkript:

3. Grundlagen der Rechnerarchitektur 3.1 Architektur des von-neumann-rechners 3.2 Maschinentypen: Einadressmaschine, Zweiadressmaschine 3.3 Befehlsformate und Adressierungstechniken 3.4 Beispiel: der Prozessor Motorola 68 000 3.5 CISC vs. RISC 3. Rechnerarchitektur 3-1

3.1 Architektur des von- Neumann-Rechners In einem klassischen Digitalrechner werden Programme und Daten in demselben Speicher abgelegt. Die Grundkomponenten des Rechners sind: Prozessor (mit Leitwerk und Rechenwerk) Leitwerk (Steuerwerk) zur Ablaufsteuerung. Enthält z.b. den Taktgeber. Rechenwerk für Arithmetik, Vergleiche usw. Hauptspeicher (Arbeitsspeicher) E/A-Steuerung für die Ein- und Ausgabe. Ein solcher Rechner wird als von-neumann-rechner bezeichnet. 3. Rechnerarchitektur 3-2

Komponenten des Rechners 3. Rechnerarchitektur 3-3

Bus Die direkten Verbindungen zwischen Prozessor bzw. E/A-Steuerung einerseits und Hauptspeicher andererseits werden meist durch eine Sammelschiene (Bus) ersetzt. Ein Bus hat Adressleitungen und Datenleitungen. Die Bussteuerung sorgt dafür, dass keine Konflikte durch gleichzeitige Benutzung auftreten und die Daten korrekt von der bzw. an die Zieladresse übertragen werden. 3. Rechnerarchitektur 3-4

Hauptspeicher Grundsätzlich können digitale Speicher auf zwei Arten adressiert werden: über den Inhalt der Speicherelemente (Assoziativspeicher) über Speicheradressen. Dazu wird einem adressierbaren Element eine Speicheradresse fest zugeordnet. Ein adressierbares Element ist meist ein Byte (8 Bits), seltener ein Wort (16, 32 oder 64 Bits). Der von-neumann-rechner verwendet die zweite Adressierungstechnik. Der Hauptspeicher ist als RAM (Random Access Memory) realisiert. Dazu gibt es ein Adressregister, das das zu lesende bzw. zu schreibende Speicherelement bestimmt. Einen kompletten Lese- bzw. Schreibvorgang für ein Speicherelement bezeichnet man als einen Speicherzyklus. 3. Rechnerarchitektur 3-5

Maschinensprache, Maschinenbefehl Die wichtigste Schnittstelle zwischen Hardware und Software ist die Maschinensprache. Sie ist definiert durch eine Menge von Maschinenbefehlen. Ein Maschinenbefehl (auch: Maschineninstruktion) entspricht einer elementaren Operation des Rechners. Er ist in Hardware realisiert. Alle Anweisungen aus höheren Programmiersprachen müssen auf Maschinenbefehle abgebildet werden. Ein Maschinenbefehl besteht aus einem Bitmuster, das unmittelbar vom Prozessor interpretiert werden kann. Ein Teil des Bitmusters beschreibt die gewünschte Operation (Operationscode), ein anderer Teil die Operandenadresse(n), also die Adresse(n) der Speicherelemente, die durch die Operation verknüpft werden sollen. 3. Rechnerarchitektur 3-6

3.2 Maschinentypen: Einadressmaschine, Zweiadressmaschine Typischer Maschinenbefehl: Verknüpfung von zwei Operanden, Ergebniswert als dritter Operand. Beispiele: Addition, bedingter Sprungbefehl Deshalb müsste ein Maschinenbefehl neben dem Operationscode drei Operandenadressen enthalten. Beispiel: (202): = (200) + (201) Zu lesen als: Inhalt der Speicherzelle mit Adresse 202 ergibt sich aus der Addition der Inhalte der Speicherzellen 200 und 201. Nachteile Die Befehle werden sehr lang. Der Speicherzugriff für alle drei Operanden wird zu langsam. Besser Operand(en) nach Möglichkeit prozessornah in einem oder mehreren Registern halten. 3. Rechnerarchitektur 3-7

Einadressmaschine Vereinbarung eines speziellen Registers, das stets den zweiten Operanden enthält und in das das Ergebnis geschrieben wird. Dieses Register heißt Akkumulator. Befehlsformat der Einadressmaschine Beispiel Lade (200) (* in den Akkumulator *) Addiere (201) (* zum Akkumulator *) Speichere (202) (* aus dem Akkumulator *) 3. Rechnerarchitektur 3-8

Zweiadressmaschine Die erste Adresse bezeichnet zugleich den ersten Operanden und das Ergebnis. Der erste Operand wird im Speicher überschrieben. Befehlsformat der Zweiadressmaschine Beispiel Addiere (200), (201) (* Ergebnis in Speicherzelle 200 *) 3. Rechnerarchitektur 3-9

Registermaschine (1) Mittelding zwischen Akkumulatormaschine und Zweiadressmaschine. Der erste Operand und der Ergebnisort ist stets ein Register. Es gibt nicht nur ein Register (= Akkumulator), sondern mehrere, z.b. 16. Vorteile - kurze Adresse (z. B. 4 Bits) für den ersten Operanden - schnellere Zugriffszeit - mehrere Zwischenergebnisse zugleich sehr schnell zugreifbar. 3. Rechnerarchitektur 3-10

Registermaschine (2) Befehlsformat der Registermaschine Beispiel Lade R1, (200) Addiere R1, (201) Speichere R1, (202) Wichtiger Fall in der Praxis! (z.b. IBM/390, Motorola 68000) 3. Rechnerarchitektur 3-11

3.3 Befehlsformate und Adressierungstechniken Befehlsformate Der Operationscode eines Befehls hat feste Länge, meist 8 Bits. Der Operandenteil hängt vom Maschinentyp ab: Operandenteil mit fester Länge Alle Operandenteile haben feste Länge. Dadurch haben auch alle Befehle feste Länge. Leichte Handhabung, effiziente Implementierung in Hardware, aber geringe Flexibilität. Operandenteile mit verschiedenen Längen Verschiedene Operandenformate sind möglich. Dadurch unterschiedliche Befehlslängen, z. B. 2 Bytes bis 6 Bytes (IBM/390). 3. Rechnerarchitektur 3-12

Beispiel: Befehlsformate der IBM/390-Familie 3. Rechnerarchitektur 3-13

Klassifikation von Befehlen (1) Transportbefehle. Sie dienen dazu, Daten von einem Ort an einen anderen zu übertragen. Speicherbefehle schreiben Registerinhalte in den Arbeitsspeicher, Ladebefehle transportieren aus dem Speicher zu lesende Daten in Register. Register-Register-Transporte werden ebenfalls als Laden bezeichnet, Speicher-Speicher-Transporte als Speichern. Transport mit Sofortoperanden dient zum Initialisieren von Register- oder Speicherinhalten. Arithmetische Befehle. Sie dienen dazu, Operanden in den vom Prozessor unterstützten Zahlen- Darstellungen zu manipulieren (ganze Zahlen, Gleitkommazahlen in verschiedenen Längen; Addition, Subtraktion, Multiplikation, Division, Invertierung usw.). Vergleichsbefehle. Hier werden zwei Operanden gemäß einer Ordnungsrelation und/oder der Bitmustergleichheit miteinander verglichen. Das Ergebnis wird als Anzeige im Statuswort des Prozessors abgelegt; dort gibt es Anzeigen für '<,>,='. 3. Rechnerarchitektur 3-14

Klassifikation von Befehlen (2) Sprungbefehle. Der unbedingte Sprung überschreibt den Befehlszähler immer mit einem angegebenen Operanden, der bedingte Sprung nur, wenn die Anzeigen im Statuswort des Prozessors einer als Sofortoperand angegebenen Maske entsprechen. Wichtig ist weiter der Unterprogrammsprung, der an die angegebene Programmadresse verzweigt, den alten Befehlszählerstand und die Rücksprungadresse aber vorher rettet (in ein angegebenes Register, in den Hauptspeicher oder in einen speziellen Kellerspeicher (stack)). Manche Prozessoren verfügen auch über spezielle Schleifenbefehle, z.b. "dekrementiere und springe, wenn größer 0". Bitmuster-Befehle. Sie dienen dazu, Operanden gemäß einer Bitmusteroperation zu manipulieren (bitweises UND/ODER/XOR/NOT, Schieben nach links oder rechts usw.) 3. Rechnerarchitektur 3-15

Klassifikation von Befehlen (3) Bit-Befehle. Transportbefehle zwischen einem Anzeigebit des Statusworts und Bitstellen in Registern oder im Hauptspeicher (Bit testen, Bit schreiben) bzw. von Sofortoperand zu Bitstelle (Bit setzen, Bit löschen). E/A-Befehle. Transportbefehle zwischen E/A- Steuerung und Registern oder dem Hauptspeicher. Spezialbefehle. Sie beeinflussen die Betriebsart des Prozessors durch Laden spezieller Register (z. B. Basisadressregister), dienen der Unterbrechungsbehandlung und stehen in der Regel nur privilegierten Programmen (z.b. dem Betriebssystem) zur Verfügung. 3. Rechnerarchitektur 3-16

Adressierungstechniken (1) Sofortoperand; im Befehl steht nicht die Speicheradresse des Orts des Operanden, sondern der Operand selbst. Mit Sofortoperanden können gut Konstanten in eine Berechnung eingebracht werden. Kurzer Sofortoperand; der im Befehl stehende Sofortoperand besitzt besonders kurze Bitlänge (z.b. 4 Bit), hiermit können gut die häufigen Konstanten 0, 1 eingebracht werden. Register direkt; der Operand steht in dem angegebenen Register. Speicher direkt; der Operand steht in der per Adresse angegebenen Speicherzelle. Register indirekt; im angegebenen Register findet sich die Speicheradresse des Operanden Speicher indirekt; in der per Adresse angegebenen Speicherzelle steht die Speicheradresse des Operanden 3. Rechnerarchitektur 3-17

Adressierungstechniken (2).. mit Distanz; zur Operandenadresse wird eine im Befehl stehende Konstante hinzuaddiert... indiziert; zur Operandenadresse wird der Inhalt eines zusätzlich angegebenen Indexregisters hinzuaddiert... Basisregister relativ; zur Operandenadresse wird der Inhalt eines besonderen Registers (des Basisregisters), das nicht ausdrücklich im Befehl genannt wird, dazuaddiert... Befehlszähler relativ; zur Operandenadresse wird der momentane Inhalt des Befehlszählers dazuaddiert. Register indirekt mit Prädekrement; vor dem Operandenzugriff wird das im Befehl angegebene Register im Inhalt um 1 vermindert, dann wird der Inhalt als Adresse des Operanden ausgewertet (Hiermit kann gut die Kelleroperation "Push" realisiert werden). 3. Rechnerarchitektur 3-18

Adressierungstechniken (3) Register indirekt mit Postinkrement; nach dem Operandenzugriff wird das im Befehl angegebene Register im Inhalt um 1 erhöht (Kelleroperation "Pop"). 3. Rechnerarchitektur 3-19

Ablauf der Befehlsausführung 3. Rechnerarchitektur 3-20

3.4 Beispiel: Motorola 68 000 3. Rechnerarchitektur 3-21

Registersatz des Motorola 68 000 (1) Speicheraddressierung Adressierbares Speicherelement ist ein Byte. Befehle müssen auf geraden Adressen beginnen. 3. Rechnerarchitektur 3-22

Registersatz des Motorola 68 000 (2) Wortoperanden (16 oder 32 Bits) müssen auf geraden Adressen beginnen. Arithmetische Operationen sind für 8 - Bit - Zahlen, 16 - Bit - Zahlen und 32 - Bit - Zahlen vorhanden. Negative Zahlen im Zweierkomplement. Gleitkommazahlen werden nicht direkt unterstützt. Allerdings sind Operationscodes reserviert und durch Aufnahme eines separaten Gleitkommaprozessors auf die Prozessorplatine können auch Rechner mit hardwaremäßig unterstützter Gleitkommarithmetik verwirklicht werden. 3. Rechnerarchitektur 3-23

Prozessorstatuswort SR Dient zur Statusanzeige. Wird von den meisten Befehlen gesetzt und/oder gelesen. Beispiele: Vergleichsbefehle setzen die Bits N und Z bedingte Sprungbefehle springen in Abhängigkeit von N und Z (BEQ: "Branch on Equal" springt, wenn Bit Z gesetzt ist) 3. Rechnerarchitektur 3-24

Adressierungstechniken des Motorola 68 000 Datenregister direkt Adressregister direkt Adressregister indirekt Adressregister indirekt mit Postinkrement Adressregister indirekt mit Prägdekrement Adressregister indirekt mit Distanz Adressregister indirekt mit Distanz und Index Direkt PC relativ mit Distanz PC relativ mit Distanz und Index Sofortoperand Dn An (An) (An)+ -(An) gw(an) gb(an,dm)bzw.gb(an,am) bw bzw. bl gw(pc) gb(pc,am) bzw. gb(pc,dm) #Zahl 3. Rechnerarchitektur 3-25

3.5 CISC vs.risc CISC: Complex Instruction Set Computer Großer Befehlsvorrat (ca. 256) Mächtige Befehle (z.b. Gleitkomma - Multiplikation). Vereinfacht den Compilerbau. Relativ wenige Maschinenbefehle zur Lösung eines Problems kurzer Objektcode (war wichtig bei teurem Kernspeicher!) Relativ langsame Ausführung eines Maschinenbefehls (komplexes Mikroprogramm zur Interpretation eines Befehls) Beispiele: Intel 8086 - Familie, Motorola 68 000 - Familie, IBM/370 - Familie, DEC VAX - Familie Interessante Beobachtung in der Praxis: 80% aller ausgeführten Maschinenbefehle stammen aus 20% des Befehlssatzes! 3. Rechnerarchitektur 3-26

RISC : Reduced Instruction Set Computer Kleiner Befehlsvorrat (z.b. 100) Nur sehr elementare Befehle Relativ viele Maschinenbefehle zur Lösung eines Problems «langer Objektcode Sehr schnelle Ausführung eines Maschinenbefehls durch hochgradig optimierte Prozessorlogik (auch für 32 - Bit - Operanden!). Die meisten Maschinenbefehle laufen in einem Prozessorzyklus ab. Es gibt kein Mikroprogramm. Beispiele: R 2000, R 3000 (z.b. DEC Station 2100, DEC System 5500); Sun SPARC (z.b. Sun 4); IBM POWER ("Performance Optimization with Enhanced RISC" im IBM RS/6000) 3. Rechnerarchitektur 3-27

Vergleich CISC - RISC Angaben der Prozessorleistung in MIPS (Millionen Instruktionen pro Sekunde) nicht sinnvoll, da eine RISC - Instruktion weniger leistet als eine CISC - Instruktion. (Deswegen wird MIPS auch oft zu "Misleading Indicator for Processing Speed" erweitert) Der kürzeren Ausführungszeit einer RISC - Instruktion steht die größere Pfadlänge zur Lösung desselben Problems gegenüber RISC - Vorteile in der Praxis hängen sehr von der Qualität des Compilers ab (optimierender Compiler) komplexe, mächtige Befehlssätze (CISC) waren sinnvoll, als der Mensch noch in Assembler programmierte. Der Umweg vom hochsprachlichen Programm (z.b. in Pascal) über komplexe Befehle und das Mikroprogramm aus einfachsten, direkt in Hardware implementierten Befehlen wird bei RISC - Architekturen vermieden. 3. Rechnerarchitektur 3-28