Kapitel 11 RISC-Rechner

Ähnliche Dokumente

Die Mikroprogrammebene eines Rechners

9.1. Aufbau einer Befehlspipeline

Neue Prozessor-Architekturen für Desktop-PC

L3. Datenmanipulation

3. Grundlagen der Rechnerarchitektur

Instruktionssatz-Architektur

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

Vorlesung Rechnerarchitektur. Einführung

Arbeitsfolien - Teil 4 CISC und RISC

DIGITALE SCHALTUNGEN II

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

Kap 4. 4 Die Mikroprogrammebene eines Rechners

Das Prinzip an einem alltäglichen Beispiel

Rechner Architektur. Martin Gülck

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

11.0 Rechnerarchitekturen

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

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

2.2 Rechnerorganisation: Aufbau und Funktionsweise

Ein- Ausgabeeinheiten

Computer-Architektur Ein Überblick

Von-Neumann-Architektur

Tutorium Rechnerorganisation

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

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

Datenpfad einer einfachen MIPS CPU

Echtzeitbetriebssysteme

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

Teil VIII Von Neumann Rechner 1

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

Rechnergrundlagen SS Vorlesung

Echtzeit-Multitasking

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

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

Teil 1: Prozessorstrukturen

Der Toy Rechner Ein einfacher Mikrorechner

Grundlagen der Rechnerarchitektur

Steuerungen. 4 Typen verbindungsprogrammierte Steuerung (VPS), speicherprogrammierte Steuerung (SPS), Mikrokontroller (MC) und Industrie-PCs (IPC)

Grundbegriffe der Informatik

Grundlagen der Rechnerarchitektur

Systeme 1: Architektur

Johann Wolfgang Goethe-Universität

Grundlagen der Rechnerarchitektur

5 Speicherverwaltung. bs-5.1 1

Rechneraufbau und Rechnerstrukturen

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

Wie groß ist die Page Table?

J.5 Die Java Virtual Machine

Philipp Grasl PROZESSOREN

Betriebssysteme Teil 6: Hardware-Schicht II

Datenstrukturen, Alignment Stack Prozeduraufruf, Parameterübergabe und -rückgabe (Calling Conventions) Leaf procedures

Digitaltechnik und Rechnerstrukturen. 2. Entwurf eines einfachen Prozessors

Datenpfad einer einfachen MIPS CPU

DATEN UND BEFEHLSFORMATE, ADDRESSIERUNGSARTEN UND MASCHINEN- PROGRAMMIERUNGSKONZEPTE

x86-assemblerprogrammierung

früher: CISC ( Complex Instruction Set Computer )

Rechneraufbau und Rechnerstrukturen

Mikroprozessor als universeller digitaler Baustein

1 Einleitung zum RISC Prozessor

ISA-Ebene mit Beispielen aus IA-32 und SPARC V9

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

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

1. Von-Neumann-Architektur (7/66 Punkte)

4D Server v12 64-bit Version BETA VERSION

Teil 1: Prozessorstrukturen

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

Unterprogramme. Unterprogramme

Teil Rechnerarchitekturen. Repetitorium. Corinna Schmitt

Aufgabenblatt 7. Es sind keine Abgaben mit mehreren Namen oder Kopien von Abgaben anderer erlaubt

Betriebssysteme Vorstellung

Tutorium Rechnerorganisation

Heute nur MIPS-Praxis (4 Aufgaben)

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

Java-Prozessoren. Die Java Virtual Machine spezifiziert... Java Instruktions-Satz. Datentypen. Operanden-Stack. Konstanten-Pool.

Neues vom STRIP Forth-Prozessor

Mikrocontroller-Programmierung


Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44

INFORMATIK Oberstufe. Funktionsweise eines Rechners

Tutorium Rechnerorganisation

Implementierung: Direkt abgebildeter Cache

Was ist Rechnerleistung

Quantitative Prinzipien im Hardwareentwurf. 1. Small is fast

1. Übersicht zu den Prozessorfamilien 2 2. Grundlagen der Rechnerorganisation 3

Speicherorganisation

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

Compilerbau + Virtuelle Maschinen

1. Übung - Einführung/Rechnerarchitektur

Kap.2 Befehlsschnittstelle. Prozessoren, externe Sicht

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

Grundlagen der Informatik III Wintersemester 2010/2011

Wichtige Rechnerarchitekturen

Arithmetische und Logische Einheit (ALU)

Was ist die Performance Ratio?

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

Sicheres C Programmieren in Embedded Systemen ARM II (ARM7TMDI [1] ) Wintersemester

Shangrila. One Instruction Set Computer

Thema 4. Prozessoren

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

Transkript:

Kapitel 11 - RISC-Rechner Seite 219 Kapitel 11 RISC-Rechner (reduced instruction set computer, RISC) 11.1. Einleitung In den Achtzigerjahren änderten sich die Randbedingungen für Rechner: Hardware wurde als VLSI-Chip realisiert mit bald 10 6 Transistorfunktionen auf einem Chip. Das erlaubte die Realisierung komplexer Schaltnetze auf dem Chip als Bestandteile des Rechenwerks und ließ 32-Bit-Register zu. Speicherchips von 512 k Bit, d. h. 64 k Byte kamen auf den Markt, so daß sehr viel größere Hauptspeicher möglich wurden. Durch die Entspannung in der Verfügbarkeit von Speicher wurde Assemblerprogrammierung völlig zurückgedrückt im Vergleich zur Programmierung in höheren Programmiersprachen, die über Compiler Code erzeugen. Dabei machte man die Entdeckung, daß die Compilerbauer und mehr noch der von Compilergeneratoren seinerseits erzeugte Code von den reichhaltigen Befehlssätzen der CISC-Maschinen nur wenig Gebrauch machten, sondern sich auf wenige Befehle konzentrierten. Teilt man die Maschinenbefehle eines CISC-Rechners in 8 Klassen ein I Datentransportbefehle II Sprungbefehle und Unterprogrammsprünge III Arithmetische Befehle IV Vergleichsbefehle V Logische Befehle VI Schiebebefehle VII Bit-Manipulationsbefehle VIII Sonstige Befehle dann entspricht diese Einteilung der beobachteten Häufigkeit in der Verwendung in Compiler-erzeugtem Code.

Kapitel 11 - RISC-Rechner Seite 220 60% 50% 40% 30% 20% 10% Häufigkeit 49 Verwendung der Befehle in einer CISC-Maschine 25 10 6 4 3 2 1 Befehlsklassen I II III IV V VI VII VIII Weitaus am häufigsten sind Datentransportbefehle. Ferner treten Inkrement/Dekrementbefehle sehr häufig auf. 11.2. Beschleunigung der Maschinen Die Beschleunigung der Maschinen sollte dann erreichbar sein durch: a) Beschleunigung des Datentransports möglichst durch Transport auf dem Chip zwischen Registern und nicht im Speicher. => - Load-Store Architektur Rs <- M (ADR) oder M (ADR) <- Rs. - 3-Adress-Befehle Rs <- (Rx op Ry) oder Rs <- (Rx op const.) - Registerfile 32 und mehr Register von 32 Bit Länge in einem File, um die laufenden Daten des Programms in Registern zu halten. b) Um den Datentransport weiter zu beschleunigen, sollte nicht byteweise auf den Speicher zugegriffen werden: - Zugriff wortweise mit 32 Bit auf Daten - Befehle von Wortlänge: pro Speicherzugriff ein Befehl c) Die Abarbeitung arithmetischer Befehle sollte unterstützt werden durch Schaltnetze im Rechenwerk (32-Bit-Addierer und -Multiplizierer, 32-Bit Barrelshifter). d) Die Unterstützung der Prozeduraufrufe höherer Sprachen kann durch ein Registerband geschehen: Statt des im Programm zugreifbaren Satzes von 32 Registern gibt es ein Registerband von z. B. 128 Registern. Innerhalb einer Prozedur ist nur ein Fenster von 32 Registern sichtbar, gekennzeichnet durch einen "current window pointer",.

Kapitel 11 - RISC-Rechner Seite 221 0 01FF Registerband 128-512 Byte, Wortlänge 4 Byte Registersatz abgebildet in Registerband Übergabeparameter lokale Parameter Aufrufparameter globale Parameter 0 0000 Adressen des physikalischen Speichers Der im Programm ansprechbare Registersatz besteht aus 4 Teilen: einem Satz globaler Register abgebildet auf die gleiche Stelle im Registerband für alle Prozeduren, den Übergabeparameter für einen Prozeduraufruf, den lokalen Variablen der Prozedur und den Aufrufparametern der nächsten Prozedur. Sichtbar in der aufrufenden C- Prozedur sichtbar in Pascal Zugriff ber Speich adressen mit load/s Sichtbar in der aufgerufenen C- Prozedur Bei einem Prozeduraufruf wird dann der nur weitergeschaltet, so daß sich der Bereich der Übergabe- und Aufrufparameter der beiden Prozeduren überlappen. Das erspart einen Stack für den Prozeduraufruf (bis auf das PSW, das nach wie vor dort gerettet werden muß) und beschleunigt die Parameterübergabe.

Kapitel 11 - RISC-Rechner Seite 222 Dieses Verfahren ist geeignet für Sprachen wie "C". In Sprachen vom Typ "Pascal" sind in der aufgerufenen Prozedur noch die Variablen der aufrufenden Prozedur sichtbar, die hier in Registern des Registerbandes stehen, die nicht mehr unmittelbar an sprechbar sind. Man hilft sich durch Einblenden des Registerbandes in den untersten Bereich des Adressraumes: Jedes Register kann dann auch durch Load-Store-Befehle erreicht werden. Hardware muß den Überlauf des überwachen: Wenn das Registerband bei einem Prozeduraufruf droht verlassen zu werden, muß ein interner Trap ausgelöst und durch eine Folge von Load-Store-Befehlen das Registerband in einen Stack im Speicher gerettet werden. Ein Registerband ist ungünstig bei Sprachen, die tiefe Rekursionen favorisieren wie Lisp oder Smalltalk. e) Reduzierung der Zahl der Befehle im Vergleich zu CISC-Rechnern, dafür Abarbeitung der Befehle in der gleichen Anzahl von Takten. Das favorisiert Befehlspipelining, da das Rechenwerk für alle Befehle die gleiche Zeit braucht. Da Compiler eh nur einen reduzierten Befehlssatz verwenden, stört die Beschränkung nicht. 11.3. Kennzeichen der RISC-Architektur Der Name RISC leitet sich her von dem reduzierten Befehlssatz: reduced instruction set computer, RISC. Kennzeichen der Architektur sind - Befehle gleicher Länge (meist 32 Bit) - Abarbeiten mit gleicher Taktzahl: erlaubt Befehlspipelines - Eingeschränkter Befehlssatz (32-128 Befehle) - Explizite Lade/Speicher-Befehle - Registerband mit Registerfenstern - 3-Adress-Befehle. Die in vorherigen Kapiteln vorgestellte DLX-Maschine realisiert eine RISC-Architektur.

Kapitel 11 - RISC-Rechner Seite 223 11.4. Beispiel SUN-SPARC-Processor Der SPARC-Rechner von Fa. Sun Microsystems war 1988 ein erster RISC-Rechner, der das Konzept auf dem Markt einführte und durchsetzte. Er verwendet eine 4-stufige Befehlspipe H: Befehl holen D: Befehl dekodieren A: Befehl ausführen S: Resultat abspeichern. Bei Sprüngen ist die Sprungadresse bekannt am Ende der D-Phase, der Wahrheitswert der Sprungbedingung am Ende der A-Phase. => Nach einem Sprungbefehl wird in die Pipeline ein "delay slot" vor dem Holen des nächsten Befehls eingefügt. Die Befehlsformate des SPARC-Rechners zeigt das nächste Bild: SPARC Befehlsformate 31 29 0 op displacement CALL 31 29 24 21 0 op destination op2 immediate op a condition op2 displacement 31 29 24 18 13 4 0 op destination op3 source1 0 asi s2 op destination op3 source1 1 immediate op destination op3 source1 cp-op s2 SET Hi BRANCH alle anderen op op2 op3 s2 asi cp-op a ist der Operationscode von 2 Bits, der den Befehlstyp festlegt. ein erweiterter Operationscode bei SET- und BRANCH-Befehlen ein erweiterter Operationscode bei allen anderen Befehlen kennzeichnet das zweite Quellregister bei 3-Adress-Befehlen kennzeichnet den Adressraum ist der Operationscode für einen arithmetischen Coprozessor (G-K-Befehle) legt bei Sprungbefehlen fest, ob auf die erfüllte / nicht erfüllte Bedingung hin gesprungen werden soll In den Befehlen wird ein Registersatz von 32 Registern angesprochen. Sie sind Teil eines Registerbandes.

Kapitel 11 - RISC-Rechner Seite 224 32 Register 8 Aufrufparameter 8 lokale Variable 8 Übergabeparameter 8 globale Variable Inzwischen verwenden alle modernen Processoren im Kern eine RISC-Architektur, d.h. einen einfachen Befehlssatz mit Befehlen gleicher Länge und abgearbeitet mit der gleichen Zahl von Takten; auch Maschinen, die x86-befehlscodekompatibel sind wie der Pentium-Processor. Trap- Handler In Prozeduren können 8 Aufrufparameter, 8 lokale und 8 globale Variable verwendet werden. Dann sind durch die überlappende Weiterschaltung bei einem Prozeduraufruf 8 Register für Übergabeparameter vorgesehen. Die untersten 32 Register des Bandes sind reserviert für globale Parameter und den Registersatz des Trap-Handlers. Die Sun Microsystems SPARC 10 wurde ein großer Erfolg: durch die einfachere interne Struktur konnte die Maschine erheblich schneller arbeiten als entsprechende CISC-Rechner. Allerdings wurde der vom Compiler zu erzeugende Code länger, da mehr einfache Befehle zu verarbeiten waren.

Kapitel 11 - RISC-Rechner Seite 225 11.5. RISC-CISC- Architektur Der Zwang zur Kompatibilität mit alten Systemen erzwingt, daß Rechner in der Lage sein müssen, Maschinenbefehle der alten Rechner zu verarbeiten. Wenn die alte Maschine Befehle verschiedener Länge kennt, die neue Maschine intern eine RISC-Architektur hat, dann muß intern eine Codewandlung geschehen. Das ist der Fall bei neuen Maschinen mit x86-befehlssatz: Dort gibt es Befehle verschiedener Länge, Speicher-Speicher-Befehle und komplexe Adressierungen. Aus einem Befehl in x-86-code müssen dann mehrere Befehle in einem RISC-86-Code erzeugt werden: Speicher < -- Speicher + R1 wird zu R2 <-- Speicher; R2 <-- R1 + R2; Speicher <-- R2; Zusätzlich ist die Adresse im Befehl umzusetzen : die effektive Adresse muß durch einen oder mehrere Befehle im RISC-Code errechnet werden, die sich auf diejenigen Register des RISC-Rechners beziehen, die als die Register der x86-architektur interpretiert werden. Die dann erzeugte Adresse ist die Speicheradresse einer RISC-Maschine, die aber aus Sicht des x86-programms transparent ist. Nach außen hin hat der Benutzer eine verbesserte Version des 80x86 in der Hand. Intern wird in der Risc-Maschine bei einem x86-befehl in den meisten Fällen ein Microprogramm im RISC-Code angeworfen. Als Beispiel soll der Rechner IDT-C6 von Centaur Technology dienen, der für einfache Anwendungen konzipiert ist ohne den Anspruch auf Höchstleistung. Er ist vergleichbar dem Pentium MMX, aber intern lange nicht so komplex. Er hat zwar 5.4 Millionen Transistorfunktionen auf dem Chip, doch gehen davon ab zwei Caches von je 32 kb für Daten und Programme und zwei Assoziativspeicher ( translation lookaside table,tlb) für Daten und Instruktionen. Gefertigt in 0.35µm-Technik mit 4-Lagenmetallisierung in CMOS-Technik auf 88mm 2 Fläche verbraucht er ca. 10 W Leistung ( Pentium 35 W ). Der Kern ist ein RISC-Processor in einem Standardentwurf; die Komplexität der x-86-maschine inklusive der neuen MMX-Befehle wird durch Microcode erbracht.

Kapitel 11 - RISC-Rechner Seite 226 Stufe return stack x86 fetch TLB 32 kb Befehlscache x86 instruction buffer x86-to- microcode translator queue I X RISC-fetch RF Trap address ROM x86 instruction parameters x86 immediate parameters RISC-86-Befehle Bus Bus unit Dekodieren R PDC program and data counter Datencache- Adresse & Befehlsausführung RISC- Kern Adressgenerator FP MMX A D Writeback W TLB 32 kb Datencache BFRS bus fetch, read and store IDT-C6 Centaur Technology