4.3 Assembler. Assembler als leicht verständliche hardwarenahe Sprache Prozessor-Datenpfad

Größe: px
Ab Seite anzeigen:

Download "4.3 Assembler. Assembler als leicht verständliche hardwarenahe Sprache Prozessor-Datenpfad"

Transkript

1 24 4 Prozessor-Datenpfad 4.3 Assembler Die Programmierung des Universalrechners durch Niederschreiben der einzelnen Befehlswort-Bits aller Befehle ist sehr aufwendig. Aus diesem Grund wird dieser Schritt in der Regel durch ein Computerprogramm, dem sog. Assembler (engl. to assemble = zusammenbauen), übernommen. Assembler als leicht verständliche hardwarenahe Sprache Der Programmierer kann Programme in einer hardwarenahen, jedoch für den Menschen leicht verständlichen Sprache schreiben. Die Sprache wird ebenso wie das Übersetzer- Programm umgangssprachlich oft Assembler genannt. Unser Universalrechner verarbeitet zwei Quelloperanden zu einem Zieloperand. Befehle in einer hardwarenahen Sprache für den Universalrechner müssen also bis zu drei Operanden spezifizieren (aus welchen Quell-Registern kommen die Operanden, wo soll das Ergebnis abgespeichert werden?), aber auch die auszuführende Operation (Addieren, Subtrahieren,...). Ein Assembler-Programm zur Berechnung der quadratischen Gleichung auf unserem Universalrechner könnte dann beispielsweise wie folgt geschrieben werden: INPUT R1, // R1 a INPUT R2,1 // R2 b INPUT R3,2 // R3 c MUL R4,R2,R2 // R4 b 2 SET R5,4 // R5 4 MUL R5,R5,R1 // R5 4 a MUL R5,R5,R3 // R5 4 a c SUB R4,R4,R5 // R4 b 2 4 a c p SQRT R4,R4 // R4 b 2 4 a c SET R5, // R5 SUB R5,R5,R2 // R5 b ADD R6,R5,R4 // R6 b + p b 2 4 a c p SUB R7,R5,R4 // R7 b b 2 4 a c SET R,2 // R 2 MUL R,R1,R // R 2 a DIV R1,R6,R // R1 ( b + p b 2 4 a c)/(2 a) p DIV R2,R7,R // R2 ( b b 2 4 a c)/(2 a)

2 4.3 Assembler 25 Diese Schreibweise meint genau dasselbe wie die in den Aufgaben zuvor bitweise spezifizierten Befehlsworte, ist für den Menschen aber viel einfach lesbar. Um solche Assembler-Programme auf dem Universalrechner auszuführen, müssen diese jedoch zunächst mit dem Assembler in Befehlsworte übersetzt werden. Definition einer Assembler-Sprache für den Universalrechner Leere Programmzeilen, d.h. Zeilen, die nur Leerzeichen, Tabulatorzeichen und Zeilenumbruch-Zeichen enthalten, können zur Strukturierung eingefügt werden, werden aber vom Universalrechner nicht ausgeführt bzw. vom Assembler ignoriert. Wenn eine Zeile nicht leer ist, dann spezifiziert das erste in der Zeile vorkommende Wort (also alle Zeichen bis zum ersten Leerzeichen oder Tabulator) den Befehl (Multiplizieren, Subtrahieren,...), und das zweite in der Zeile vorkommende Wort die Operanden: die Operanden werden durch Komma getrennt; der erste Operand ist immer der Ziel-Operand, die folgenden Operanden sind Quelloperanden. Alle folgenden Worte sind Kommentare und werden vom Assembler ignoriert und somit vom Universalrechner nicht ausgeführt. Befehle und Operanden: INPUT: Liest Daten von den Eingängen des Rechners (Eingänge, 1 und 2 des Multiplexers M1) ein und speichert diese in einem Register ab; der erste Operand ist das Zielregister, der zweite Operand spezifiziert den Eingang (, 1 oder 2). ADD, SUB, MUL, DIV: Führen entsprechende arithmetische Operation durch; der erste Operand ist das Zielregister, die anderen beiden Operanden die Quellregister. SQRT: Zieht die Wurzel; der erste Operand ist das Zielregister, der zweite Operand das Quellregister. SET: Schreibt eine 1 Bit breite vorzeichenbehaftete Konstante in ein Register; der erste Operand ist das Zielregister, der zweite Operand die Konstante.

3 26 4 Prozessor-Datenpfad Qnades a) Schreiben Sie für den Universalrechner ein Programm in Assembler-Sprache, welches die drei Seiten eines Würfels - von den Eingängen, 1 und 2 einliest, das Volumen des Würfels berechnet und das Ergebnis im Register R ablegt. 12, NPWT 121,1 QNFDNTPSUT MML RO, 12,121 INPUT 121,2 MUL 12,12,121 b) Schreiben Sie für den Universalrechner ein Programm in Assembler-Sprache, welches den Mittelwert der an den Eingängen, 1 und 2 anliegenden Werte berechnet und diesen im Register R ablegt. INPUT 12, Wput 121,1 ADD RO, 12,121 INPUT 121,2 ADD 12,12,121 SET RM 3 DIV 12, RO, 121

4 4.3 Assembler 27 c) Schreiben Sie für den Universalrechner ein Programm in Assembler-Sprache, welches die an den Eingängen, 1 und 2 anliegenden Koordinaten eines Vektors im dreidimensionlen Raum einliest, den Betrag des Vektors berechnet und das Ergebnis in Register R ablegt. SET RO, INPUT 121, MUL 121,121,121 APD RO, RO, Rtl INPUT 121,1 MUL 121,121,121 ADD RO, RO, Rtl IN put 121,2 MUL 121,121, Rtl ADD RO, RO, 121 SQRT RO, RO

5 28 4 Prozessor-Datenpfad d) Schreiben Sie für den Universalrechner ein Programm in Assembler-Sprache, welches den Radius eines Kreises vom Eingang einliest, die Fläche des Kreises berechnet und das Ergebnis in Register R ablegt. Verwenden Sie für den Wert I 3, in der angegebenen Genauigkeit. INPUT 12, MUL Ro, RO.RO Roth SET 121,314 SET 122,1 MUL 121,121, <-314 R 3,159 ADD 121,121,123,21 SET # 124,2 MUL 12,12, ,1 MUL 121,121,124 SETINTPUT SET 121T ADD 121,121, DIV 12,12,122 DIV 12,12,122

6 4.3 Assembler 29 T e) Schreiben Sie für den Universalrechner ein Programm in Assembler-Sprache, welches die Längen der beiden Katheten eines rechtwinkligen Dreiecks über die Eingänge und 1 einliest, die Länge der Hypothenuse berechnet und das Ergebnis im Register R ablegt T f) Schreiben Sie für den Universalrechner ein Programm in Assembler-Sprache, welches den Radius eines Kreises vom Eingang einliest, den Umfang des Kreises berechnet und das Ergebnis in Register R ablegt. Verwenden Sie für den Wert 3, in der angegebenen Genauigkeit.

7 21 4 Prozessor-Datenpfad Assembler als Übersetzer Um ein Assembler-Programm für den Universalrechner zu übersetzen, iteriert der Assembler der Reihe nach über alle Programmzeilen und führt für jede Zeile folgendes aus: Wenn die Programmzeile leer ist (nur Leerzeichen, Tabulatorzeichen und Zeilenumbruch-Zeichen enthält), wird die Zeile ignoriert. Wenn die Programmzeile nicht leer ist, wird das erste Wort (alle Zeichen bis zum ersten Leerzeichen oder Tabulator) als Befehls-Zeichenkette interpretiert und das zweite Wort als Operanden-Zeichenkette; die Operanden-Zeichenkette wird bei den Kommas in zwei bzw. drei Operanden aufgetrennt; entspricht die Befehls-Zeichenkette der Zeichenkette INPUT, wird vom erste Operanden das R entfernt, das übrigbleibende Zeichen in eine Zahl gewandelt und diese im Befehlswort als D abgespeichert (z.b. D = 1 für R1, D = 1 für R2,...) der zweite Operand im Befehlswort als M1 abgespeichert (z.b. M1 =, falls zweiter Operand den Wert hat) entspricht die Befehls-Zeichenkette den Zeichenketten ADD oder SUB oder MUL oder DIV, wird von den drei Operanden das R entfernt und die übrig bleibenden Zahlen im Befehlswort als D (erster Operand), M3 (zweiter Operand) und M4 (dritter Operand) abgespeichert, und der Wert von M2 bei ADD auf 1 2 gesetzt, bei SUB auf 1 2, bei MUL auf 11 2, bei DIV auf 1 2, und M1 auf 11 2 gesetzt; entspricht die Befehls-Zeichenkette der Zeichenkette SQRT, wird von beiden Operanden das R entfernt und die übrig bleibenden Zahlen im Befehlswort als D (erster Operand) bzw. M4 (zweiter Operand) abgespeichert M2 auf 11 2 und M1 auf 11 2 gesetzt;

8 4.3 Assembler 211 entspricht die Befehls-Zeichenkette der Zeichenkette SET, wird vom ersten Operanden das R entfernt und die übrig bleibende Zahl im Befehlswort als D abgespeichert der zweite Operand in K abgespeichert (z.b. 1 2 für 1 oder für 1 M2 auf 2 und M1 auf 11 2 gesetzt. Neben dieser Grundfunktionalität würde ein richtiger Assembler auch noch diverse Fehlerüberprüfungen durchführen, beispielsweise ob nur gültige Befehle und Operanden verwendet wurden, ob alle Operanden angegeben sind, ob das Format der Operanden stimmt, ob die Konstanten nicht zu groß sind etc. Das Grundprinzip jedoch ist immer das selbe: Assembler-Programme werden durch eine eindeutige Abbildungsregel in Befehlsworte übersetzt. Betrachten Sie die folgende Codesequenz: INPUT R, MUL R,R,R INPUT R1,1 MUL R1,R1,R1 ADD R,R,R1 SQRT R,R Befehlsformat: K (1 Bit) D (3 Bit) M4 (3 Bit) M3 (3 Bit) M2 (3 Bit) M1 (2 Bit) a) Übersetzen Sie das Programm in Befehlsworte des Universalrechners mit Hilfe obiger Übersetzungsregeln. Geben Sie für alle irrelevanten Bits x an

9 212 4 Prozessor-Datenpfad Betrachten Sie die folgende Codesequenz: MUL R,R,R1 SET R1,255 DIV R1,R,R2 ADD R1,R1,R3 b) Übersetzen Sie das Programm in Befehlsworte des Universalrechners mit Hilfe obiger Übersetzungsregeln. Geben Sie für alle irrelevanten Bits x an Betrachten Sie die folgende Codesequenz: SET R, INPUT R1, ADD R,R,R1 INPUT R1,1 ADD R,R,R1 INPUT R1,2 ADD R,R,R1 SET R1,3 DIV R,R,R3 T c) Übersetzen Sie das Programm in Befehlsworte des Universalrechners mit Hilfe obiger Übersetzungsregeln. Geben Sie für alle irrelevanten Bits x an

10 4.3 Assembler 213 Betrachten Sie den Datenpfad des Universalrechners. SUB b a a-b MUL ADD DIV b a a/b D11 3 D6 D5 3 D3 D2 3 A7 A D1 D 2 M1 M4 M3 M2 a b c Add 1 1 clk reset D13 D12 R7 R6 R5 R4 R3 R2 R1 R 3 M1 M2 M3 M4 D 1 BZ p 5 M3 A2 A1 M4 M2 M1 M D4 D7 D8 D1 D9 D23 D14 D R K MSB 1 1 n-1 n F ISRDIV

11 214 4 Prozessor-Datenpfad Gegeben ist folgende Codesequenz: SET R,5 INPUT R4,2 ADD R,R,R1 DIV R7,R,R1 d) Übersetzen Sie das Programm in Befehlsworte des Universalrechners lediglich mit Hilfe des Datenpfads (ohne Übersetzungsregeln). Geben Sie für alle irrelevanten Bits x an Gegeben ist folgende Codesequenz: SET R1,2 SQRT R2,R1 INPUT R2,1 MUL R5,R,R1 T e) Übersetzen Sie das Programm in Befehlsworte des Universalrechners lediglich mit Hilfe des Datenpfads (ohne Übersetzungsregeln). Geben Sie für alle irrelevanten Bits x an

12 215 5 Befehlssätze und deren Klassifikation Befehlssatz Unser Universalrechner kennt 7 verschiedene Befehle: ADD, SUB, MUL, DIV, FSQRT, INPUT und SET. Die Menge (im mathematischen Sinne) der Befehle, die ein Prozessor versteht, nennt man auch den Befehlssatz (Satz im Sinne von Menge; engl.: instruction set) des Prozessors. Befehlssätze lassen sich in mehrfacher Hinsicht klassifizieren. Klassifikation nach Komplexität CISC = Complex Instruction Set Architecture CISC-Befehlssätze enthalten sehr mächtige, komplexe Befehle, um mit möglichst wenig Assembler-Code viel zu erreichen. Beispiel: Laden von zwei Operanden aus dem Speicher, Multiplikation der Operanden, Abspeichern des Ergebnisses im Speicher als ein Befehl. Dieses Prinzip war in den 197er-Jahren gängig, da die verfügbaren Speicher sehr klein waren und so weniger Platz benötigt wurde. Zudem gab es noch keine (vernünftigen) Compiler, d.h. Programme wurde in Assembler-Sprache geschrieben. Durch die mächtigen Befehle ging das Programmieren schneller, da sich die Befehle fast wie eine Hochsprache verhielten. Durch die Unterschiedlichkeit der Befehle ist das Befehlswort bzgl. der Länge variabel, d.h. die Befehlswortbreite schwankt je nach Befehl z.b. zwischen 1 und 16 Byte. RISC = Reduced Instruction Set Architecture Bei RISC-Befehlssätzen ist die Mächtigkeit der Befehle stark reduziert. Komplexe Operationen werden durch mehrere einfachen Befehlen gelöst, statt durch einen sehr mächtigen Befehl. Beispiel Multiplikation zweier im Speicher liegender Zahlen: 2 Lade-Befehle, um Operanden vom Speicher in Register zu laden 1 Multiplikation-Befehl, der zwei Register-Werte multipliziert und das Ergebnis wieder in einem Register abspeichert 1 Speicher-Befehl, um das Ergebnis vom Register in den Speicher zu schreiben Durch Compiler und Programmierung in Hochsprache ist die Mächtigkeit einzelner Befehle nicht mehr ausschlaggebend für die Programmiereffizienz. Durch die Verfügbarkeit größerer Speicher besteht keine Notwendigkeit mehr, Speicher durch mächtige Befehle zu sparen. Die Befehle eines RISC-Prozessors haben in der Regel alle die selbe Befehlswortlänge bzw. nur wenige verschiedene Wortbreiten. Beispiel: 4 Byte für Speicherbefehle und

13 216 5 Befehlssätze und deren Klassifikation 2 Byte für alle anderen Befehle. Das macht die Hardware einfacher und damit auch schneller. Klassifikation nach Verortung der Operanden Register-Speicher-Architektur Bei einer Register-Speicher-Architektur können die Operanden der Befehle sowohl in Registern, als auch im Speicher stehen. Register-Register-Architektur/Load-Store-Architektur Bei Register-Register-Architekturen müssen Quell- und Zieloperand in Registern stehen. Quelloperanden, die im Speicher stehen, müssen zunächst mit einem Lade-Befehl (engl. load instruction) vom Speicher in ein Register geladen werden, bevor sie verarbeitet werden können. Soll das Ergebnis eines Befehls im Speicher abgelegt werden, so muss das Ergebnis zunächst in einem Register abgelegt werden, bevor es mit einem Speicher-Befehl (engl. store instruction) vom Register in den Speicher geschrieben werden kann. Da Speicherzugriffe nur über Lade- und Speicher-Befehle erfolgen, nenn man Register- Register-Architekturen auch Load-Store-Architekturen. Klassifikation nach der Anzahl der Operanden Drei-Adress-Maschine Bei einer Drei-Adress-Maschine können bis zu zwei Quell- und ein Zieloperand explizit angegeben werden. Da das bei unserem Universalrechner ebenfalls möglich war, ist unser Universalrechner eine Drei-Adress-Maschine. Beispiel: ADD R,R1,R2, addiere Register R1 zum Register R2 und speichere das Ergebnis in Register R ab. Zwei-Adress-Maschine Bei einer Zwei-Adress-Maschine ist ein Quell-Operand gleichzeitig auch Zieloperand. Beispiel: ADD R,R1, addiere Register R zum Register R1 und speichere das Ergebnis in Register R ab. Ein-Adress-Maschine/Akkumulator-Maschine Bei einer Ein-Adress-Maschine wird nur ein einziger Quell-Operand angegeben. Zweiter Quell-Operand und Ziel-Operand ist implizit immer das sog. Akkumulator-Register. Beispiel: ADD R1, addiere Register R1 zum Akkumulator-Register und speichere das Ergebnis wieder im Akkumulator-Register ab.

14 217 Null-Adress-Maschine/Stack-Maschine Bei einer Null-Address-Maschine muss bei einer Operation kein Operand angegeben werden, da als Operand immer implizit die auf einem Stack oben liegenden Werte verwendet werden. Das Ergebnis wird wieder auf dem Stack abgelegt. Beispiel: push 3 push 4 add Zunächst wird die Zahl 3 auf dem Stack abgelegt, danach die Zahl 4. Anschließend werden beide Zahlen addiert. Das Ergebnis wird wieder auf dem Stack abgelegt.

15 218 6 MMI-Prozessor 6 MMI-Prozessor In diesem Kapitel beschäftigen wir uns mit dem MMI-Prozessor. Der MMI-Prozessor wurde von Donald Ervin Knuth zu Lehr- und Forschungszwecken an der Stanford University entwickelt. Donald Knuth ist Mathematiker und ein berühmter Computer-Pionier. Von ihm stammen unter anderem die berühmten Bücher The Art of Computer Programming sowie das Text-Satzsystem TE, ein Vorfahre von L A TE, mit dem z.b. dieses Skript erstellt wurde. Für mehr Infos, siehe MMI steht für die römische Zahl 29, die sich als Mittelwert mehrerer RISC-Rechner- Kennzahlen ergibt: (CrayI + IBM81 + RISCII + ClipperC3 + AMD29K + Motorola88K + IBM61 + In-teli96 + Alpha POWER2 + MIPSR4 + HitachiSuperH4 + StrongARM11 + Sparc64) / 14 = / 14 = 29. MMI ist ein Prozessor-Modell, d.h. kein real existierender Prozessor. Damit gibt es keine Legacy-Effekte aufgrund gewünschter Rückwärtskompatibilitäten, was nicht nur die Programmierung, sondern auch die Implementierung des Prozessors sehr einfach und verständlich macht. Simulations-Tools zum MMI-Prozessor können von der LDV- Webseite heruntergeladen werden. Der MMI ist eine Register-Register-Architektur mit 256 Allzweck-Registern und 32 Spezial-Registern. Die Wortbreite beträgt 64 Bit (Register, Rechenwerk, Daten- und Adress-Busse), der Adressbereich umfasst 2 64 Byte. Der Befehlssatz umfasst 256 Befehle. Für alle Befehle beträgt die Befehlswortlänge 32 Bit. Donald Knuth gibt für die Ausführungszeit der meisten Befehle 1 Takt an, was typisch für RISC-Prozessoren ist. Diese Ausführungszeit bezieht sich jedoch auf den von Donald Knuth erstellten Simulator und nicht auf die von uns entwickelte Datenpfad-Realisierung.

16 6.1 Programmiermodell Programmiermodell 32 Spezialregister 256 Allzweckregister Speicher 64 Bit 64 Bit 8 Bit PUT LDx Bit GET 8, 16, 32, 64 Bit STx 32 Bit Befehlswort 255 OP Y Z 64 Bit 64 Bit 8, 16, 24 Bit ALU STCO Die Operanden, die vom Rechenwerk (ALU = Arithmetic Logic Unit) verarbeitet werden, entstammen entweder den Allzweckregistern (64 Bit Wortbreite) oder direkt dem Befehlswort (Direktoperand; 8, 16, 24 Bit). Ein vom Rechenwerk berechnetes Ergebnis (Zieloperand) wird immer in einem Allzweckregister abgelegt. Daten aus dem Speicher müssen erst mit Ladebefehlen (LDx) in ein Allzweckregister geladen werden, bevor Sie vom Rechenwerk verarbeitet werden können. Daten können mit Speicherbefehlen (STx) von einem Allzweckregister in den Speicher geschrieben werden. Die Wortbreite für Speicherzugriffe beträgt 8, 16, 32 oder 64 Byte. Für jede Wortbreite gibt es einen eigenen Lade- bzw. Speicherbefehl, was mit dem x bei LDx bzw. STx gekennzeichnet ist. Der Zugriff auf die Spezialregister erfolgt mit PUT (vom Allzweckregister ins Spezialregister schreiben) bzw. mit GET (Daten vom Spezialregister in ein Allzweckregister einlesen). Mit dem STCO-Befehl können 8 Bit breite Operanden vom Befehlswort in den Speicher geschrieben werden.

17 22 6 MMI-Prozessor 6.2 Register Die Register sind kleine, jedoch sehr schnelle Speicherelemente, die im Prozessor-Kern untergebracht sind. Die Wortbreite der Register entspricht typischerweise der Breite der Datenworte, die vom Prozessor verarbeitet werden können. Beim MMI sind die Register 64 Bit groß. Allzweckregister Allzweckregister (engl. general purpose register) sind Register, die keinen bestimmten Zweck haben, sondern universell verwendet werden können. Gemeint ist, dass diese Register als Operanden für alle Befehle verwendet werden können. Es gibt bei Allzweckregistern also keine festgelegte Bindung zwischen einem bestimmten Register und einer bestimmten auszuführenden Operation (z.b. Festkomma-Addition, Basis-Adresse für Speicherzugriff,...). Die 256 Allzweckregister des MMI haben keine besonderen Namen, sondern werden von bis 255 durchnummeriert und über diese Nummer angesprochen. Um Register von Zahlen unterscheiden zu können wird der Registernummer ein Dollarzeichen vorangestellt. $ meint also den Inhalt von Register, während die Zahl meint. Computerprogramme verwenden sowohl globale als auch lokale Variable: Globale Variable können von allen Programmteilen verwendet werden, lokale nur von einem Teilausschnitt, z.b. einer Funktion. Beim MMI werden lokale Variable in den unteren Allzweckregistern ($, $1,... = lokale Register) und globale Variable in den oberen Allzweckregistern ($255, $254,... = globale Register) abgelegt. Die dazwischen liegenden unbenutzten Register werden beim MMI marginale Register genannt. Die Nummer des ersten freien lokalen Registers ist in Spezialregister rl abgelegt, die Nummer des ersten globalen Registers in Spezialregister rg. $255 $(rg) Globale Register Marginale Register $(rl) $ Lokale Register

18 6.2 Register 221 Spezialregister Spezialregister (engl. special purpose registers) haben im Gegensatz zu Allzweckregistern einen bestimmten Zweck, d.h. jedes Spezialregister hat seine ganz eigene Aufgabe. Spezialregister können als eine Art Schnittstelle zwischen Hardware und Software angesehen werden, die es der Software ermöglicht, bestimmte Hardware-Einstellungen vorzunehmen (z.b. Setzen von Taktfrequenz-Multiplikatoren, Konfiguration von Interrupts,...) oder aufgetretene Ereignisse (z.b. Division durch, Zeitablauf bei Timer-Interrupt,...) durch die Software erfassbar/auswertbar zu machen. Der MMI-Prozessor hat 32 Spezialregister, die ra, rb, rc,... rz, rbb, rtt, rww r, ryy und rzz genannt werden. Zugriff auf die Spezialregister ist bei MMI nur über die Befehle PUT (Wert von Allzweckregister in Spezialregister kopieren) und GET (Wert von Spezialregister in Allzweckregister kopieren) möglich. :tp x x z Nachfolgende Abbildung zeigt das Spezialregister ra, das Arithmetische Status Register. Interrupt Enable (Freischalten) : :# t.u.nl Interrupt Event (Auftreten) R1 R D V W I O U Z D V W I O U Z nicht verwendet. # - Gleitkommazahl ungenau (z.b. 1. / 3.) Gleitkomma-Division durch Gleitkomma-Unterlauf Gleitkomma-Überlauf Unerlaubte Gleitkommaoperation, z.b. sqrt(-1.) Überlauf bei Wandlung Gleitkomma- in Festkommazahl Festkomma-Überlauf Festkomma-Division durch Gleitkomma-Rundungsmodus : Nächster Wert (standard) 1: Abrunden (Richtung ) 1: Aufrunden (Richtung + ) 11: Abrunden (Richtung - ) Beispiele für weitere Spezialregister: Im Falle einer Multiplikation 64 Bit 64 Bit = 128 Bit werden in rh die oberen 64 Bit des Ergebnisses abgelegt. Im Falle einer Division 128 Bit : 64 Bit = 64 Bit werden in rd die oberen 64 Bit des 128 Bit breiten Dividenden abgelegt. Bei einer Festkomma-Division wird in rr der Rest der Division abgelegt (Modulo- Operation).

19 222 6 MMI-Prozessor Verständnisfragen/Aufgaben Allgemein T a) Was ist ein Register? T b) Wo findet man Register in einem Computer-System? T c) Daten welcher Größenordnung kann ein Register aufnehmen: Byte, kilobytes, megabytes, gigabytes or terabytes? Allzweckregister a) Was sind Allzweckregister? Für beliebige Operationen, d.h. kein bestimmter Zweck b) Geben Sie ein Beispiel für eine typische Verwendung eines Allzweckregisters an. Quell - und Ziel operand für aithm.gs. c) Über wieviele Allzweckregister verfügt der MMI-Prozessor? Welche Namen haben sie? 256 $, $1,... $255

20 6.2 Register 223 T d) Was ist der Unterschied zwischen einem globalen und einem lokalen Register? Spezialregister a) Was ist ein Spezialregister? Hat b) Geben Sie eine typische Anwendung eines Spezialregisters an. T c) Über wieviele Spezialregister verfügt der MMI-Prozessor? Wie werden sie genannt (Prinzip)? spezielle Funktion, die in der Regel die Hardware steuert oder hfos über die Hardware bereitstellt Interrupt. ein oder Rest von Division ausschalten i ; Rundung modus festlegen T d) Kann jeder MMI-Befehl Spezialregister verwenden? T e) Welches Spezialregister stellt Informationen über Arithmetische Operationen zur Verfügung? T f) In welchem Spezialregister kann man die oberen 64 Bit eines 128 Bit breiten Festkomma-Dividenden ablegen?

21 224 6 MMI-Prozessor T g) In welchem Register werden die oberen 64 Bit des Ergebnisses einer Festkomma- Multiplikation abgelegt? T h) In welchem Spezialregister legt das Rechenwerk den Rest einer Festkomma- Division ab? i) Müssen normale Programme häufig auf Spezialregister zugreifen? in der Regel nicht so häufig j) Was müssen Sie tun, wenn Sie einzelne Bits eines Spezialregisters verändern wollen? Spezialregister - - Wert übertragen L mit GET ) - Wert ändern in Allzweck zeyiskr Wert mit - put in Spezialryisk. schreiben Die letzte Aufgabe hat gezeigt, dass zur Bearbeitung von Spezialregistern zwei zusätzliche Befehle ausgeführt werden müssen. Diese Ausführung kostet Zeit. k) Können Sie sich einen Grund vorstellen, warum nicht alle MMI-Befehle in Spezialregister schreiben bzw. Spezialregister lesen können? - Hardware wird einfacher schneller - Beschleunigung des häufig den Falls vorkommen -

22 6.3 Speicher Speicher Der Speicher des MMI ist Byte-adressiert, d.h. das kleinste adressierbare Datenelement ist ein Byte (8 Bit). Wortbreiten. Das Speichern (Allzweckregister! Speicher; engl. store) bzw. Laden (Speicher! Allzweckregister; engl. load) wird in folgenden Wortbreiten unterstützt: 1 Byte (8 Bit) 2 Byte (16 Bit), beim MMI Wyde genannt, 4 Byte (32 Bit), beim MMI Tetra genannt, 8 Byte (64 Bit), beim MMI Octa genannt. AdresseAusrichtung der Daten im Speicher - Alignment Bei Speichermodulen sind die einzelnen Byte in der Regel auf mehrere Speicherchips -64 verteilt, bei einer Wortbreite von 64 Bit kann ein Speichermodul (ohne Speicherung von Paritätsbits) beispielsweise aus 16 Chips zu je 4 Bit oder 8 Chips zu je 8 Bit aufgebaut sein. Betrachten Sie das nachfolgende (einseitige) Speichermodul, in dem 64 Bit breite Datenworte aus 8 Speichermodulen zu je 8 Bit aufgebaut werden (es werden keine # 61 Paritätsbits betrachtet). Adresse g g g g g g q g int & ( AED ) & ( am ) ALTEOII "Y Bei Zugriffen auf ein einzelnes Byte wird nur auf einen einzigen Speicherchip zugegriffen. Dabei können die letzten drei Adressbits dazu verwendet werden, den Speicherchip auszuwählen und die übrigen Adressbits wählen dann eine " Adresse innerhalb des ausgewählten Chips aus. Bei Zugriffen auf 16 Bit breite Datenworte wählen die Adressbits 1 und 2 (das Adressbit wird nicht ausgewertet) eine der vier Speicherchip-Gruppen (,1), (2,3), (4,5) oder (6,7) aus. Die übrigen Adressbits (ab 3 aufwärts) wählen dann eine Adresse innerhalb der ausgewählten Chips aus. Das 16 Bit Datenwort setzt sich dann aus den 2 8 Bit der ausgewählten Speicherchip-Gruppe zusammen. z t.si t.si ' * : t.tt ü # # :b

23 226 6 MMI-Prozessor Bei Zugriffen auf 32 Bit breite Datenworte wählt das Adressbit 2 (Adressbits und 1 werden ignoriert) eine der zwei Speicherchip-Gruppen (,1,2,3) oder (4,5,6,7) aus. Die Adressbits 3, 4, 5,... wählen eine Adresse innerhalb der ausgewählten Chips aus. Das 32 Bit Datenwort setzt sich dann aus den 4 8 Bit der ausgewählten Speicherchip-Gruppe zusammen. Bei Zugriffen auf 64 Bit breite Datenworte werden die Adressbits, 1 und 2 ignoriert. Die übrigen Adressbits wählen eine Adresse innerhalb der ausgewählten Chips aus. Das 64 Bit breite Datenwort setzt sich dann aus den 8 8 Bit der ausgewählten Speicherchip-Gruppe zusammen. Aus mehreren Byte zusammengesetzte Daten werden also idealerweise so im Speicher ausgerichtet (engl. aligned), dass auf sie gemäß obigem Schema mit nur einem einzigen Speicherzugriff zugegriffen werden kann. Datenworte können prinzipiell natürlich auch anders abgelegt werden, bspw. kann ein 32 Bit breites Datenwort auch auf die Chips 1, 2, 3 und 4 verteilt werden. Der Nachteil hierbei ist jedoch, dass die Daten dann durch die Verdrahtung auf dem Speichermodul nicht automatisch richtig zusammengesetzt werden, sondern entweder durch zusätzliche Hardware oder durch Software-Befehle richtig zusammengefügt werden müssen. Aus diesem Grund werden aus mehreren Byte zusammengesetzte Datenworte in der Regel immer in der beschriebenen Weise ausgerichtet, sind also immer aligned. Der MMI unterstützt das beschriebene Alignment, indem er durch Löschen der niederwertigsten Adressbits die Menge gültiger Wortadressen wie folgt einschränkt: Byte Wyde Tetra Octa x x1 x2 x3 x4 x5 x6 x7 x8 x9 xa

24 6.3 Speicher 227 Das bedeutet: Bytes können an jeder Adresse abgelegt werden, Wydes können nur an Adressen abgelegt werden, die ein Vielfaches von 2 sind, Tetras können nur an Adressen abgelegt werden, die ein Vielfaches von 4 sind, Octas können nur an Adressen abgelegt werden, die ein Vielfaches von 8 sind. Big- und Little Endian Die Ausrichtung der Daten im Speicher (Alignment) beschreibt die Byte-Adressen, an denen aus mehreren Byte zusammengesetzte Datenworte abgelegt werden können. Ein 32 Bit breites Datenwort beginnt beispielsweise an einer durch 4 teilbarer Adresse und nimmt noch die nächsten vier Byte ein. Damit ist jedoch noch keine Aussage über die Adressen innerhalb der Menge der erlaubten Byte-Adressen getroffen, an der die verschiedenen Byte eines Datenworts abgelegt werden. Sollen die Byte eines aus mehreren Byte zusammengesetzten Datenworts der Reihe nach im Speicher abgelegt werden, gibt es zwei Möglichkeiten: Durch die (gültig ausgerichtete) Wort-Adresse wird das höherwertigste Byte adressiert. Das nennt man Big Endian. Durch die (gültig ausgerichtete) Wort-Adresse wird das niederwertigste Byte adressiert. Das nennt man Little Endian. Beispiele für Big-Endian Prozessoren sind MMI, MIPS, SPARC, Atmel AVR32 etc., Beispiele für Little-Endian-Prozessoren sind Intel x86, Renesas SH,... Beispiel: 32 Bit Zahl x an Adresse x : x x1 x2 x3 Big Endian x1 x23 x45 x67 Little Endian x67 x45 x23 x1

25 228 6 MMI-Prozessor Speicherorganisation Die Adressbreite des MMI beträgt 64 Bit, d.h. der MMI kann 2 64 Byte adressieren, von x bis xffff FFFF FFFF FFFF. Dieser Speicherbereich wird wie folgt aufgeteilt: x = Text_Segment x FF x 1 x1fff FFFF FFFF FFFF x2 = Data_Segment x3fff FFFF FFFF FFFF x4 = Pool_Segment x5fff FFFF FFFF FFFF x6 = Stack_Segment x7fff FFFF FFFF FFFF x8 Interrupt-Vektoren Text-Segment MMI-Befehle Globale Variable (Heap) Daten-Segment Lokale Variable, Stack Pool-Segment Stack-Segment Betriebssystem-Segment xffff FFFF FFFF FFFF Text-Segment: Programme und Interrupt-Vektoren Im Text-Segment wird ausführbarer Befehlscode als aufeinander folgende Befehlsworte abgelegt. Da alle Befehlsworte 4 Byte breit sind, beginnen die Befehlsworte immer an einer durch 4 teilbaren Adresse. MMI-Programme können ab Adresse x1 im Speicher abgelegt werden. An welcher Adresse ein Programm genau beginnt, ist in der Symboltabelle der Objektdatei festgelegt. Die Objektdatei enthält Befehlsworte für den jeweiligen Prozessor (hier: MMI), die vom Loader (Teil des Betriebssystems das auszuführende Programme in den Speicher lädt) beim Starten des Programms in das Textsegment geladen

26 6.3 Speicher 229 werden. Neben den Befehlen enthält die Objektdatei auch Informationen über Vorbelegungen des Speichers sowie die Symboltabelle. Die Symboltabelle spezifiziert eine Menge von (Name! Adresse)-Paaren, über die Einsprungspunkte in Module, Funktionen, Blöcke etc. gefunden werden können. MMI-Programme beginnen an der Adresse, die durch den Symboltabellen-Eintrag Main festgelegt ist. Von Adresse x bis xff ist die Interrupt-Vektor-Tabelle abgelegt. Die Interrupt-Vektor- Tabelle ist der Speicherbereich, in dem die Interrupt-Vektoren (s.u.) eines Prozessors abgelegt sind. Nachfolgende Abbildung zeigt den Aufbau der Interrupt-Vektor-Tabelle beim MMI. x x4 x8 xc x1 x14 x18 x1c x2 x24 x28 x2c x3 x34 x38 x3c x4 x44 x48 x4c x5 x54 x58 x5c x6 x64 x68 x6c x7 x74 x78 x7c x8 x84 x88 x8c Allgemeine Trips Division durch Null Integer-Überlauf Überlauf Gleitkomma- Festkomma-Wandlung Ungültige Gleitkoma- Operation Gleitkomma-Überlauf Gleitkomma-Unterlauf Gleitkomma-Division durch NULL Gleitkommazahl ungenau

27 23 6 MMI-Prozessor Interrupts sind (asynchrone) Programm-Unterbrechungen. Sie können auftreten, wenn ein Fehler aufgetreten ist (z.b. Division durch, Speicherzugriffsfehler), Zeitgeber (sog. Timer) abgelaufen sind, angeschlossene Geräte Daten empfangen haben etc. Interrupt-Service-Routinen (ISRs) sind Funktionen, die zur Behandlung der Interrupts aufgerufen werden. Beim Auftreten eines Timer-Interrupts können beispielsweise von einem angeschlossenen Gerät empfangene Daten verarbeitet werden, Meßwerte von einem externen Sensor eingelesen werden oder im Falle des Betriebssystem-Schedulers ein Prozess unterbrochen und ein anderer Prozess gestartet werden (time slicing). Interrupt-Service-Routinen sind wie normale Funktionen, werden jedoch nicht durch das laufende Software- Programm explizit (synchron) aufgerufen (wie z.b. printf() zur Ausgabe von Zeichen auf dem Bildschirm). Sie werden durch asynchron auftretende externe oder interne Ereignisse ausgelöst und durch die darauf folgende hardwarebasierte Änderung des Befehlszählers aufgerufen. Interrupt-Vektoren beschreiben für Interrupt-fähige Ereignisse die Adressen der zugehörigen ISRs, d.h. die Stellen im Speicher, an die der Prozessor im Fehlerfall automatisch verzweigen soll. Um im Ereignis-Fall automatisch in die entsprechende ISR zu verzweigen, muss in der Regel die Behandlung von Interrupts allgemein freigeschaltet sein (z.b. Bit globally enable interrupts in einem Spezialregister), aber auch das betreffende Ereignis (z.b. Division durch Null explizit zur Fehlerbehandlung durch Interrupts freigeschaltet sein; beim MMI beispielsweise über das betreffende Interrupt-Enable -Bit in ra. Für viele Fehler gibt es eigene Interrupt-Vektoren, wie z.b. bei Division durch Null. Andere Fehler werden oft zu einem allgemeinen Interrupt zusammengefasst. Es gibt verschiedene Möglichkeiten, die Sprungziele der ISRs durch die Interrupt-Vektoren zu beschreiben. Die gängigsten sind: Interrupt-Vektoren enthalten direkt die Adresse der ISR, Interrupt-Vektoren enthalten die Adresse der ISR indirekt, d.h. sie enthalten die Speicher-Adresse des Datenworts, in dem die ISR- Adresse steht, Interrupt-Vektoren enthalten vom Prozessor ausführbare Befehle; die Befehle enthalten entweder die ISR selbst, oder einen Sprungbefehl zur

28 6.3 Speicher 231 ISR. Dieses Verfahren wird auch beim MMI verwendet. Dazu werden in die Interrupt-Vektoren Befehle eingetragen, die in die jeweiligen ISRs verzweigen. Daten-Segment Das Datensegment dient zur Aufnahme von Daten, die während der Befehlsausführung anfallen bzw. verarbeitet werden. Globale und statische Daten sowie zur Laufzeit allozierte Daten werden auf dem Heap abgelegt. Dieser beginnt ab Adresse x2 und wächst in Richtung höherer Adressen. Lokale Daten werden auf dem Stack abgelegt, der bei Adresse x3fffffffffffffff bzw. x3ffffffffffffff8 (für Octas) beginnt und in Richtung niedrigerer Adressen wächst. Pool-Segment Das Pool-Segment ist ein Speicherbereich, der für den Datenaustausch zwischen Programm und Betriebssystem gedacht ist. Im Pool-Segment werden beispielsweise argv TOI 3 a. GVTD ignt main Lint argo, char # # argv ) char * argv LI Programmen ihre Aufruf-Parameter übergeben. Dazu wird bei Programmstart in Register die Anzahl der Parameter (argc = argument count) übergeben und in Register 1 die Adresse auf eine Null-terminierte Liste aus Zeigern, von denen jeder auf einen Parameter zeigt. Adresse x4 enthält die Adresse des ersten freien Pool-Segment-Datenworts. Nachfolgende Abbildung zeigt das Poolsegment beim Aufruf eines Programms skalprodarg mit den Parametern 4, 1, 2, 3, 4, 1, 2, 3 und 4. Adresse Wert (hex) Wert (ascii) x4 \ \ \ µ \ \ \ x48 \ \ \ \ \ \ ` x41 \ \ \ \ \ \ p x418 \ \ \ \ \ \ x x42 \ \ \ \ \ \ Ç x428 \ \ \ \ \ \ ê x43 \ \ \ \ \ \ É x438 \ \ \ \ \ \ ÿ x44 \ \ \ \ \ \ á x448 \ \ \ \ \ \ x45 \ \ \ \ \ \ x458 x \ \ \ \ \ \ \ \ x46 x736b616c7726f64 s k a l p r o d x468 x a r g \ \ \ \ \ x47 x34 4 \ \ \ \ \ \ \ x478 x31 1 \ \ \ \ \ \ \ x48 x32 2 \ \ \ \ \ \ \ x488 x33 3 \ \ \ \ \ \ \ x49 x34 4 \ \ \ \ \ \ \ x498 x313 1 \ \ \ \ \ \ x4a x323 2 \ \ \ \ \ \ x4a8 x333 3 \ \ \ \ \ \ x4b x343 4 \ \ \ \ \ \ x4b8 x \ \ \ \ \ \ \ \ L

29 232 6 MMI-Prozessor Stack-Segment Das Stack-Segment dient beim sog. Register-Stack des MMI zur Auslagerung von Registern. Dieses Segment wird von uns nicht verwendet. Betriebssystem-Segment Dieser Speicherbereich ist für das Betriebssystem vorgesehen. Durch die gewählte Aufteilung kann am höherwertigsten Adress-Bit direkt abgelesen werden, ob der ausgeführte Befehl zum Betriebssystem (kernel space) oder zu einem Benutzerprogramm (user space) gehört. Damit lässt sich ein zwei Stufen umfassendes Privilegierungs-System aufbauen, bei dem beispielsweise bestimmte Befehle nur vom Betriebssystem verwendet werden dürfen oder Zugriffe auf bestimmte Resourcen (Register, angeschlossene Geräte,...) nur dem Betriebssystem erlaubt sind.

30 6.3 Speicher 233 Virtueller Speicher Die gezeigte Einteilung des Speichers in verschiedene Segmente bezieht sich auf den sog. virtuellen Speicher. Virtueller Speicher meint, dass die Speicheradressen, auf die ein Programm zugreift, nicht den realen, physikalischen Speicheradressen entsprechen. Die Umwandlung erfolgt durch die Hardware und wird vom Betriebssystem durch Einstellungen in Spezialregistern gesteuert. Auf diese Weise gaukelt das System einem Programm z.b. einen 64 Bit großen Adressraum vor, obwohl beispielsweise nur 8 GB Arbeitsspeicher im System installiert sind. Durch die vom Betriebssystem überwachte Abbildung von virtuellen auf reale Adressen kann ein Programm auf jede beliebige Speicheradresse zugreifen ohne mit dem Speicher anderer Programme zu kollidieren. Virtueller Speicher dreier Programme realer Speicher Interrupt-Vektoren MMI-Befehle Text-Segment Interrupt-Vektoren Globale Variable (Heap) Text-Segment Daten-Segment MMI-Befehle Lokale Variable, Stack Interrupt-Vektoren Pool-Segment Globale Variable (Heap) Text-Segment Daten-Segment MMI-Befehle Lokale Variable, Stack Stack-Segment Pool-Segment Globale Variable (Heap) Daten-Segment Lokale Variable, Stack Stack-Segment Betriebssystem-Segment Pool-Segment Stack-Segment Betriebssystem-Segment Betriebssystem-Segment

RO.RO, ADD RO, 120,121 MUL 120,120,121 INPUT RO, MUL INPUT 120,0 ADD RO, INPUT 121,1 INPUT R 1,2 INPUT 121,2 RO, IN put 121,1 N RO, ROIRA SET 121,3

RO.RO, ADD RO, 120,121 MUL 120,120,121 INPUT RO, MUL INPUT 120,0 ADD RO, INPUT 121,1 INPUT R 1,2 INPUT 121,2 RO, IN put 121,1 N RO, ROIRA SET 121,3 6 4 Prozessor-Datenpfad a) Schreiben Sie für den Universalrechner ein Programm in Assembler-Sprache, welches die drei Seiten eines Würfels von den Eingängen, und einliest, das Volumen des Würfels berechnet

Mehr

4.3 Assembler 207 SET R0,0 INPUT R1,0 MUL R1,R1,R1 ADD R0,R0,R1 INPUT R1,1 MUL R1,R1,R1 ADD R0,R0,R1 INPUT R1,2 MUL R1,R1,R1 ADD R0,R0,R1 SQRT R0,R0

4.3 Assembler 207 SET R0,0 INPUT R1,0 MUL R1,R1,R1 ADD R0,R0,R1 INPUT R1,1 MUL R1,R1,R1 ADD R0,R0,R1 INPUT R1,2 MUL R1,R1,R1 ADD R0,R0,R1 SQRT R0,R0 4. Assembler 27 c) Schreiben Sie für den Universalrechner ein Programm in Assembler-Sprache, welches die an den Eingängen, 1 und 2 anliegenden Koordinaten eines Vektors im dreidimensionlen Raum einliest,

Mehr

4.2 Universalrechner: Schaltung unabhängig vom Problem 185

4.2 Universalrechner: Schaltung unabhängig vom Problem 185 4.2 Universalrechner: Schaltung unabhängig vom Problem 85 a) Geben Sie binär die Befehlsworte an, mit denen Sie die Eingänge a, b und c in die Register R, R2 und R übernehmen. K D M4 M M2 M Kommentar XXXXXXXXXXX

Mehr

6 MMIX-Prozessor MMIX-Prozessor

6 MMIX-Prozessor MMIX-Prozessor 218 6 MMI-Prozessor 6 MMI-Prozessor In diesem Kapitel beschäftigen wir uns mit dem MMI-Prozessor. Der MMI-Prozessor wurde von Donald Ervin Knuth zu Lehr- und Forschungszwecken an der Stanford University

Mehr

5 Befehlssätze und deren Klassifikation

5 Befehlssätze und deren Klassifikation 215 5 Befehlssätze und deren Klassifikation Befehlssatz Unser Universalrechner kennt 7 verschiedene Befehle: ADD SUB MUL DIV FSQRT INPUT und SET Die Menge (im mathematischen Sinne) der Befehle die ein

Mehr

6 MMIX-Prozessor MMIX-Prozessor

6 MMIX-Prozessor MMIX-Prozessor 218 6 MMI-Prozessor 6 MMI-Prozessor In diesem Kapitel beschäftigen wir uns mit dem MMI-Prozessor. Der MMI-Prozessor wurde von Donald Ervin Knuth zu Lehr- und Forschungszwecken an der Stanford University

Mehr

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

Nachfolgende Abbildung zeigt das Spezialregister ra, das Arithmetische Status Register. Interrupt Enable (Freischalten) 62 Register 205 Spezialregister Spezialregister (engl special purpose registers) haben im Gegensatz zu Allzweckregistern einen bestimmten Zweck, dh jedes Spezialregister hat seine ganz eigene Aufgabe Spezialregister

Mehr

Assembler als Übersetzer

Assembler als Übersetzer 4 ProzessorDatenpfad Assembler als Übersetzer Um ein AssemblerProgramm für den Universalrechner zu übersetzen iteriert der Assembler der Reihe nach über alle Programmzeilen und führt für jede Zeile folgendes

Mehr

6 MMIX-Prozessor MMIX-Prozessor

6 MMIX-Prozessor MMIX-Prozessor 218 6 MMIProzessor 6 MMIProzessor In diesem Kapitel beschäftigen wir uns mit dem MMIProzessor Der MMIProzessor wurde von Donald Ervin Knuth zu Lehr und Forschungszwecken an der Stanford University entwickelt

Mehr

T c) Daten welcher Größenordnung kann ein Register aufnehmen: Byte, kilobytes, megabytes, gigabytes or terabytes?

T c) Daten welcher Größenordnung kann ein Register aufnehmen: Byte, kilobytes, megabytes, gigabytes or terabytes? 222 6 MMIXProzessor Verständnisfragen/Aufgaben Allgemein T a) Was ist ein Register? Kleiner aber Schneller Speicher T b) Wo findet man Register in einem ComputerSystem? Prozessor T c) Daten welcher Größenordnung

Mehr

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

Nachfolgende Abbildung zeigt das Spezialregister ra, das Arithmetische Status Register. Interrupt Enable (Freischalten) 6.2 Register 205 Spezialregister Spezialregister (engl. special purpose registers) haben im Gegensatz zu Allzweckregistern einen bestimmten Zweck, d.h. jedes Spezialregister hat seine ganz eigene Aufgabe.

Mehr

3.8 Sequentieller Multiplizierer 167

3.8 Sequentieller Multiplizierer 167 .8 Sequentieller Multiplizierer 67 a) Welche Organisation hat das ROM? 6=64 Datenwerte zu je 9 Bit Im ROM wird durch die Adress-Bits, und der Zustand festgelegt, durch die Adress-Bits und 4 der Rundenzähler,

Mehr

Speicher. T c) Daten welcher Größenordnung kann ein Register aufnehmen: Byte, kilobytes, megabytes, gigabytes or terabytes? einige Byte.

Speicher. T c) Daten welcher Größenordnung kann ein Register aufnehmen: Byte, kilobytes, megabytes, gigabytes or terabytes? einige Byte. R lzieloperanden rich 222 6 MMIXProzessor Verständnisfragen/Aufgaben Allgemein T a) Was ist ein Register? ein Schneller ate kleiner Speicher T b) Wo findet man Register in einem ComputerSystem? im Haupt

Mehr

4. TÜ-Zusammenfassung zum Modul Computersysteme

4. TÜ-Zusammenfassung zum Modul Computersysteme 4. TÜ-Zusammenfassung zum Modul Computersysteme Kurzzusammenfassung 6. Kapitel MMIX 256 Allzweckregister um Operanden abzuspeichern 32 Spezialregister bilden Schnittstelle zwischen Soft- und Hardware ALU(Arithmetic

Mehr

6 MMIX-Prozessor. 6.1 Programmiermodell. S.219 alles wichtig. 6.2 Register. Allzweckregister

6 MMIX-Prozessor. 6.1 Programmiermodell. S.219 alles wichtig. 6.2 Register. Allzweckregister 6 MMIXProzessor Modell eines Prozessors (keine LegacyEffekte) RegisterRegister Architektur mit 256 Allzweck Register und 32 Spezialregister Wortbreite der Register, des Rechenwerks, der Daten und AdressBusse:

Mehr

Assembler als Übersetzer

Assembler als Übersetzer 4 ProzessorDatenpfad Assembler als Übersetzer Um ein AssemblerProgramm für den Universalrechner zu übersetzen iteriert der Assembler der Reihe nach über alle Programmzeilen und führt für jede Zeile folgendes

Mehr

Dividend / Divisor = Quotient + Rest 9876 : 0054= : 0054= = -10 (negativ bleibt bei 1 mal) 4476 : 0054=018

Dividend / Divisor = Quotient + Rest 9876 : 0054= : 0054= = -10 (negativ bleibt bei 1 mal) 4476 : 0054=018 78 Arithmetische Schaltungen Division Allgemein Bei der Division gilt allgemein: Dividend / Divisor = Quotient + Rest Division zur Basis, wie in der Schule gelernt: 9876 : 54= Runde Teildividend = 9 Passt

Mehr

T e) Welche Eigenschaft müssen Byte-, Wyde-, Tetra- und Octa-Adressen beim MMIX haben?

T e) Welche Eigenschaft müssen Byte-, Wyde-, Tetra- und Octa-Adressen beim MMIX haben? 236 6 MMIX-Prozessor T e) Welche Eigenschaft müssen Byte-, Wyde-, Tetra- und Octa-Adressen beim MMIX haben? Byte : Reine besondere Eigenschaft wyde : durch 2 tutbar eetztesrstto Tetra : dutch 4 teicbar

Mehr

Kap.2 Befehlsschnittstelle. Prozessoren, externe Sicht

Kap.2 Befehlsschnittstelle. Prozessoren, externe Sicht 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

Mehr

4 Prozessor-Datenpfad 4.1 Vom zu lösenden Problem abhängige Schaltung

4 Prozessor-Datenpfad 4.1 Vom zu lösenden Problem abhängige Schaltung 4 ProzessorDatenpfad 4.1 Vom zu lösenden Problem abhängige Schaltung Die Idee ist es nun nicht unflexible Schaltungen, die aus einer großen Anzahl von Komponenten bestehen und nur eine Aufgabe erledigen

Mehr

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

Nachfolgende Abbildung zeigt das Spezialregister ra, das Arithmetische Status Register. Interrupt Enable (Freischalten) 62 Register 221 Spezialregister Spezialregister (engl special purpose registers) haben im Gegensatz zu Allzweckregistern einen bestimmten Zweck dh jedes Spezialregister hat seine ganz eigene Aufgabe Spezialregister

Mehr

TECHNISCHE HOCHSCHULE NÜRNBERG GEORG SIMON OHM Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten, z.b. Befehl

Mehr

Grundlagen der Rechnerarchitektur. Einführung

Grundlagen der Rechnerarchitektur. Einführung Grundlagen der Rechnerarchitektur Einführung Unsere erste Amtshandlung: Wir schrauben einen Rechner auf Grundlagen der Rechnerarchitektur Einführung 2 Vorlesungsinhalte Binäre Arithmetik MIPS Assembler

Mehr

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

Übungsblatt 10 (Block C 2) (16 Punkte) georg.von-der-brueggen [ ] tu-dortmund.de ulrich.gabor [ ] tu-dortmund.de pascal.libuschewski [ ] tu-dortmund.de Übung zur Vorlesung Rechnerstrukturen Wintersemester 2016 Übungsblatt 10 (Block C 2) (16

Mehr

Beim Programmieren mit MMIX habt ihr vielleicht schon öfter eine der folgenden Fehlermeldungen von MMIXAL bekommen:

Beim Programmieren mit MMIX habt ihr vielleicht schon öfter eine der folgenden Fehlermeldungen von MMIXAL bekommen: 1 ADRESSIERUNG IN MMIX Beim Programmieren mit MMIX habt ihr vielleicht schon öfter eine der folgenden Fehlermeldungen von MMIXAL bekommen: no base address is close enough to the address A! relative address

Mehr

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

Assembler Programmierung Motivation. Informatik II SS 2004 Teil 4: Assembler Programmierung. Assembler vs. Maschinensprache Assembler Programmierung Motivation Informatik II SS 2004 Teil 4: Assembler Programmierung Was ist ein Programm? Eine Reihe von Befehlen, die der Ausführung einer Aufgabe dient Dazu wird das Programm sequentiell

Mehr

Vorlesung Rechnerarchitektur. Einführung

Vorlesung Rechnerarchitektur. Einführung Vorlesung Rechnerarchitektur Einführung Themen der Vorlesung Die Vorlesung entwickelt an Hand von zwei Beispielen wichtige Prinzipien der Prozessorarchitektur und der Speicherarchitektur: MU0 Arm Speicher

Mehr

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

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen Mikroprozessoren Grundlagen Aufbau, Blockschaltbild Grundlegende Datentypen AVR-Controller Anatomie Befehlssatz Assembler Speicherzugriff Adressierungsarten Kontrollstrukturen Stack Input / Output (I/O)

Mehr

T e) Wie wird im Speicher an der Adresse 0x die 32 Bit-Zahl

T e) Wie wird im Speicher an der Adresse 0x die 32 Bit-Zahl 63 Speicher 237 T e) Wie wird im Speicher an der Adresse 0x2000000000000008 die 32 BitZahl 0x12345678 abgelegt im Falle einer BigEndian und einer LittleEndianMaschine? Adresse Big Endian Little Endian

Mehr

Welche Register werden zur Parameterübergabe verwendet? In welcher Reihenfolge werden die Parameter auf dem Stack bzw. in den Registern abgelegt?

Welche Register werden zur Parameterübergabe verwendet? In welcher Reihenfolge werden die Parameter auf dem Stack bzw. in den Registern abgelegt? 6.5 MMIX Befehle 291 Aufrufkonventionen Eine Aufrufkonvention (engl. calling convention) legt fest, wie einer Funktion Parameter übergeben werden und wie der Rückgabewert zurückgegeben wird. Damit spezifiziert

Mehr

Teil 2: Rechnerorganisation

Teil 2: Rechnerorganisation Teil 2: Rechnerorganisation Inhalt: Zahlendarstellungen Rechnerarithmetik schrittweiser Entwurf eines hypothetischen Prozessors mit Daten-, Adreß- und Kontrollpfad Speicherorganisation Mikroprogrammierung

Mehr

Zur Multiplikation von Gleitkommazahlen müssen die Mantissen inkl. führender 1, als Festkommazahlen multipliziert werden.

Zur Multiplikation von Gleitkommazahlen müssen die Mantissen inkl. führender 1, als Festkommazahlen multipliziert werden. 70 Arithmetische Schaltungen Multiplikation vorzeichenbehafteter Zahlen Zur Multiplikation vorzeichenbehafteter Zahlen (er-komplement) kann auf die Schaltung für vorzeichenlose Multiplikation zurückgegriffen

Mehr

Arithmetik, Register und Speicherzugriff. Grundlagen der Rechnerarchitektur Assembler 9

Arithmetik, Register und Speicherzugriff. Grundlagen der Rechnerarchitektur Assembler 9 Arithmetik, Register und Speicherzugriff Grundlagen der Rechnerarchitektur Assembler 9 Arithmetik und Zuweisungen Einfache Arithmetik mit Zuweisung C Programm: a = b + c; d = a e; MIPS Instruktionen: Komplexere

Mehr

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

N Bit Binärzahlen. Stelle: Binär-Digit: N Bit Binärzahlen N Bit Binärzahlen, Beispiel 16 Bit: Stelle: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Binär-Digit: 0 0 1 0 1 0 0 1 1 1 0 0 1 0 0 0 Least Significant Bit (LSB) und Most Significant Bit (MSB)

Mehr

SUB $2,$5,10 Zeile 1 LDO $5,$0,2*8 Zeile 2 OR $1,$2,$3 Zeile 3 SRU $1,$5,$1 Zeile 4.

SUB $2,$5,10 Zeile 1 LDO $5,$0,2*8 Zeile 2 OR $1,$2,$3 Zeile 3 SRU $1,$5,$1 Zeile 4. 33 7 Pipelining Gegeben ist der folgende Ausschnitt aus einer MMIX Codesequenz: SUB $2,$5, Zeile LDO $5,$,2* Zeile 2 OR $,$2,$3 Zeile 3 SRU $,$5,$ Zeile 4 Zeile und 3 wg b) Geben Sie alle auftretenden

Mehr

E Mikrocontroller-Programmierung

E Mikrocontroller-Programmierung E Mikrocontroller-Programmierung E Mikrocontroller-Programmierung E.1 Überblick Mikrocontroller-Umgebung Prozessor am Beispiel AVR-Mikrocontroller Speicher Peripherie Programmausführung Programm laden

Mehr

Grundlagen der Rechnerarchitektur. MIPS Assembler

Grundlagen der Rechnerarchitektur. MIPS Assembler Grundlagen der Rechnerarchitektur MIPS Assembler Übersicht Arithmetik, Register und Speicherzugriff Darstellung von Instruktionen Logische Operationen Weitere Arithmetik Branches und Jumps Prozeduren 32

Mehr

2.1 Rechnersichten 2.2 Rechnerorganisation: Aufbau und Funktionsweise

2.1 Rechnersichten 2.2 Rechnerorganisation: Aufbau und Funktionsweise Teil 1 Kapitel 2 Rechner im Überblick 2.1 Rechnersichten 2.2 Rechnerorganisation: Aufbau und Funktionsweise Frank Schmiedle Technische Informatik I 2.1 Rechnersichten Modellierung eines Rechners Zusammenspiel

Mehr

Teil 1: Prozessorstrukturen

Teil 1: Prozessorstrukturen Teil 1: Prozessorstrukturen Inhalt: Mikroprogrammierung Assemblerprogrammierung Motorola 6809: ein einfacher 8-Bit Mikroprozessor Mikrocontroller Koprozessoren CISC- und RISC-Prozessoren Intel Pentium

Mehr

Rechnergrundlagen SS Vorlesung

Rechnergrundlagen SS Vorlesung Rechnergrundlagen SS 2007 8. Vorlesung Inhalt Gleitkomma-Darstellung Normalisierte Darstellung Denormalisierte Darstellung Rechnerarchitekturen Von Neumann-Architektur Harvard-Architektur Rechenwerk (ALU)

Mehr

Von Assembler zu Java

Von Assembler zu Java Von Assembler zu Java Prof. Dr.-Ing. Thomas Schwotzer 1 Einführung Die erste imperativen Programme wurden in den Urzeiten der IT tatsächlich direkt auf der Hardware der Maschinen geschrieben. Die verfügbaren

Mehr

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

68000 Assembler. WAS ist ein Assembler? Ein System, das den Programmierer hilft, eine maschinennahe Programmierung zu realisieren. WAS ist ein Assembler? Ein System, das den Programmierer hilft, eine maschinennahe Programmierung zu realisieren. Ein Programm liegt der CPU in binärer Form vor und wird durch den Assembler in einer primitiven

Mehr

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

Zusammenhang Interrupt, Befehlszyklus, indirekte Adressierung und Mikroprogramm [Stallings, Kap. 15, S ] 2.1.2 Behandlung von Unterbrechungen (Interrupts) Zusammenhang Interrupt, Befehlszyklus, indirekte Adressierung und Mikroprogramm [Stallings, Kap. 15, S. 582-585] t 1 : MAR (PC) t 2 : MBR Memory[MAR] PC

Mehr

Technische Informatik - Eine Einführung

Technische Informatik - Eine Einführung Martin-Luther-Universität Halle-Wittenberg Fachbereich Mathematik und Informatik Lehrstuhl für Technische Informatik Prof. P. Molitor Technische Informatik - Eine Einführung Rechnerarchitektur Aufgabe

Mehr

1 Rechnerstrukturen 1: Der Sehr Einfache Computer

1 Rechnerstrukturen 1: Der Sehr Einfache Computer David Neugebauer, Informationsverarbeitung - Universität zu Köln, Seminar BIT I Inhaltsverzeichnis 1 Rechnerstrukturen 1: Der Sehr Einfache Computer 1 1.1 Komponenten................................. 1

Mehr

1. TÜ-Zusammenfassung zum Modul Computersysteme

1. TÜ-Zusammenfassung zum Modul Computersysteme 1. TÜ-Zusammenfassung zum Modul Computersysteme Kurzzusammenfassung 1. Kapitel Netzteil: Aufbau: Bereitgestellte Spannungen: 12V, -12V, 5V, -5V und 3.3V Leistung: Da bei Transformatoren die übertragbare

Mehr

ARM-Cortex-M4 / Thumb-2-Befehlssatz Adressierungsarten und arithmetische Operationen

ARM-Cortex-M4 / Thumb-2-Befehlssatz Adressierungsarten und arithmetische Operationen ARM-Cortex-M4 / Thumb-2-Befehlssatz Adressierungsarten und arithmetische Operationen Aufgabenstellung: - das beigefügte Assembler-Programm schrittweise ausführen - sich mit der Handhabung der Entwicklungswerkzeuge

Mehr

Rechnerstrukturen 1: Der Sehr Einfache Computer

Rechnerstrukturen 1: Der Sehr Einfache Computer Inhaltsverzeichnis 1: Der Sehr Einfache Computer 1 Komponenten.................................... 1 Arbeitsweise..................................... 1 Instruktionen....................................

Mehr

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

Musterlösungen Technische Informatik 2 (T2) Prof. Dr.-Ing. D. P. F. Möller SS 2004 VAK 18.004 Musterlösungen Technische Informatik 2 (T2) Prof. Dr.-Ing. D. P. F. Möller Aufgabenblatt 2.5 Lösung 2.5.1 Befehlszähler (Program Counter, PC) enthält Adresse des nächsten auszuführenden

Mehr

3. Grundlagen der Rechnerarchitektur

3. Grundlagen der Rechnerarchitektur 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

Mehr

Assembler am Beispiel der MIPS Architektur

Assembler am Beispiel der MIPS Architektur Assembler am Beispiel der MIPS Architektur Frühere Einsatzgebiete MIPS Silicon Graphics Unix Workstations (z. B. SGI Indigo2) Silicon Graphics Unix Server (z. B. SGI Origin2000) DEC Workstations (z.b.

Mehr

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

Name: ES2 Klausur Thema: ARM Name: Punkte: Note: Name: Punkte: Note: Hinweise für das Lösen der Aufgaben: Zeit: 75 min. Name nicht vergessen! Geben Sie alle Blätter ab. Die Reihenfolge der Aufgaben ist unabhängig vom Schwierigkeitsgrad. Erlaubte Hilfsmittel

Mehr

Heute nur MIPS-Praxis (4 Aufgaben)

Heute nur MIPS-Praxis (4 Aufgaben) Themen heute Heute nur MIPS-Praxis (4 Aufgaben) Hinweis: Diese Aufgaben findet ihr auf den Übungsblättern zu den Tutorien (bei Aufgabe 4 wurde eine Teilaufgabe und im Tutorium #6 bereits geklärte Wissensfragen

Mehr

Teil 1: Prozessorstrukturen

Teil 1: Prozessorstrukturen Teil 1: Prozessorstrukturen Inhalt: Mikroprogrammierung Assemblerprogrammierung Motorola 6809: ein einfacher 8-Bit Mikroprozessor Mikrocontroller Koprozessoren CISC- und RISC-Prozessoren Intel Pentium

Mehr

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

3.1 Architektur des von-neumann-rechners. 3. Grundlagen der Rechnerarchitektur 3. Grundlagen der Rechnerarchitektur 3.1 Architektur des von-neumann-rechners 3.1 Architektur des von - Neumann - Rechners 3.2 Maschinentypen: Einadressmaschine, Zweiadressmaschine 3.3 Befehlsformate und

Mehr

Schriftliche Prüfung

Schriftliche Prüfung OTTO-VON-GUERICKE-UNIVERSITÄT MAGDEBURG FAKULTÄT FÜR INFORMATIK Schriftliche Prüfung im Fach: Rechnersysteme Studiengang: Bachelor (PF CSE / IF; WPF CV / WIF) am: 30. Juli 2008 Bearbeitungszeit: 120 Minuten

Mehr

Übung Rechnerstrukturen. Aufgabenblatt 10 Ausgabe: , Abgabe: :00. Aufgabe 10.1 (Punkte 25) Gruppe Matrikelnummer(n)

Übung Rechnerstrukturen. Aufgabenblatt 10 Ausgabe: , Abgabe: :00. Aufgabe 10.1 (Punkte 25) Gruppe Matrikelnummer(n) 64-041 Übung Rechnerstrukturen Aufgabenblatt 10 Ausgabe: 17.12.14, Abgabe: 7.1.15 24:00 Gruppe Name(n) Matrikelnummer(n) Aufgabe 10.1 (Punkte 25) Entwurf eines Schaltwerks Wir betrachten ein Schaltwerk

Mehr

Computeranwendung in der Chemie Informatik für Chemiker(innen) 3. Software

Computeranwendung in der Chemie Informatik für Chemiker(innen) 3. Software Computeranwendung in der Chemie Informatik für Chemiker(innen) 3. Software Jens Döbler 2003 "Computer in der Chemie", WS 2003-04, Humboldt-Universität VL3 Folie 1 Grundlagen Software steuert Computersysteme

Mehr

1 Aufgaben Wie funktioniert ein Computer. a) Welche Spannungen werden von PC-Netzteilen bereitgestellt? 5W, 12W,

1 Aufgaben Wie funktioniert ein Computer. a) Welche Spannungen werden von PC-Netzteilen bereitgestellt? 5W, 12W, 81 1 Aufgaben Wie funktioniert ein Computer Netzteil a) Welche Spannungen werden von PCNetzteilen bereitgestellt? 3 BV 5W 12W 5 V 12W b) Warum können PCNetzteile hohe Leistungen liefern obwohl die eingebauten

Mehr

"Organisation und Technologie von Rechensystemen 4"

Organisation und Technologie von Rechensystemen 4 Klausur OTRS-4, 29.09.2004 Seite 1 (12) INSTITUT FÜR INFORMATIK Lehrstuhl für Rechnerarchitektur (Informatik 3) Universität Erlangen-Nürnberg Martensstr. 3, 91058 Erlangen 29.09.2004 Klausur zu "Organisation

Mehr

10. Die Adressierungsarten des MSP 430

10. Die Adressierungsarten des MSP 430 10. Die Adressierungsarten 10.1 Übersicht über die Adressierungsarten 10.2 -Operanden 10.3 Indexregister mit Distanz 10.4 Symbolische (relativ zum ) 10.5 Absolute 10.6 Indirekte 10.7 Indirekte Adressierung

Mehr

Kap.3 Mikroarchitektur. Prozessoren, interne Sicht

Kap.3 Mikroarchitektur. Prozessoren, interne Sicht Kap.3 Mikroarchitektur Prozessoren, interne Sicht Kapitel 3 Mikroarchitektur 3.1 elementare Datentypen, Operationen und ihre Realisierung (siehe 2.1) 3.2 Mikroprogrammierung (zur Realisierung der Befehlsabarbeitung

Mehr

4. Mikroprogrammierung (Firmware)

4. Mikroprogrammierung (Firmware) 4. Mikroprogrammierung (Firmware) 4. Ein Mikroprogramm-gesteuerter Computer 4.2 Mikroprogramm-Beispiel: Multiplikation 4.3 Interpretation von Maschinenbefehlen durch ein Mikroprogramm 4. Mikroprogrammierung

Mehr

9. Die Adressierungsarten des MSP 430

9. Die Adressierungsarten des MSP 430 9. Die Adressierungsarten 9.1 Übersicht über die Adressierungsarten 9.2 -Operanden 9.3 Indexregister mit Distanz 9.4 Symbolische (relativ zum ) 9.5 Absolute 9.6 Indirekte 9.7 Indirekte Adressierung mit

Mehr

Lehrveranstaltung: PR Rechnerorganisation Blatt 8. Thomas Aichholzer

Lehrveranstaltung: PR Rechnerorganisation Blatt 8. Thomas Aichholzer Aufgabe 8.1 Ausnahmen (Exceptions) a. Erklären Sie den Begriff Exception. b. Welche Arten von Exceptions kennen Sie? Wie werden sie ausgelöst und welche Auswirkungen auf den ablaufenden Code ergeben sich

Mehr

Wie groß ist die Page Table?

Wie groß ist die Page Table? Wie groß ist die Page Table? Im vorigen (typischen) Beispiel verwenden wir 20 Bits zum indizieren der Page Table. Typischerweise spendiert man 32 Bits pro Tabellen Zeile (im Vorigen Beispiel brauchten

Mehr

Rechnernetze und Organisation

Rechnernetze und Organisation Arithmetic Logic Unit ALU Professor Dr. Johannes Horst Wolkerstorfer Cerjak, 9.2.25 RNO VO4_alu Übersicht Motivation ALU Addition Subtraktion De Morgan Shift Multiplikation Gleitkommazahlen Professor Dr.

Mehr

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

Übungen zu Grundlagen der Rechnerarchitektur und -organisation: Bonusaufgaben Übung 8 und Präsenzaufgaben Übung 9 Übungen zu Grundlagen der Rechnerarchitektur und -organisation: Bonusaufgaben Übung 8 und Präsenzaufgaben Übung 9 Dominik Schoenwetter Erlangen, 30. Juni 2014 Lehrstuhl für Informatik 3 (Rechnerarchitektur)

Mehr

3.8 Sequentieller Multiplizierer 159

3.8 Sequentieller Multiplizierer 159 .8 Sequentieller Multiplizierer 59 Nachfolgende Abbildung zeigt den (unvollständigen) Aufbau einer Schaltung zur Implementierung des gezeigten Multiplikationsverfahrens. b) Vervollständigen Sie die Schaltung

Mehr

Teil 1: Prozessorstrukturen

Teil 1: Prozessorstrukturen Teil 1: Prozessorstrukturen Inhalt: Mikroprogrammierung Assemblerprogrammierung Motorola 6809: ein einfacher 8-Bit Mikroprozessor Mikrocontroller Koprozessoren CISC- und RISC-Prozessoren Intel Pentium

Mehr

PIC16 Programmierung in HITECH-C

PIC16 Programmierung in HITECH-C PIC16 Programmierung in HITECH-C Operatoren: Arithmetische Operatoren - binäre Operatoren + Addition - Subtraktion * Multiplikation / Division % Modulo + - * / sind auf ganzzahlige und reelle Operanden

Mehr

Praktikum Mikrorechner 4 (Bitmanipulation und Spezialregister)

Praktikum Mikrorechner 4 (Bitmanipulation und Spezialregister) Prof. Kemnitz Institut für Informatik, Technische Universität Clausthal November 5, 2014 1/18 Praktikum Mikrorechner 4 (Bitmanipulation und Spezialregister) Prof. Kemnitz Institut für Informatik, Technische

Mehr

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

Prozessorarchitektur. Kapitel 1 - Wiederholung. M. Schölzel Prozessorarchitektur Kapitel - Wiederholung M. Schölzel Wiederholung Kombinatorische Logik: Ausgaben hängen funktional von den Eingaben ab. x x 2 x 3 z z = f (x,,x n ) z 2 z m = f m (x,,x n ) Sequentielle

Mehr

Offenbar hängt das Ergebnis nur von der Summe der beiden Argumente ab...

Offenbar hängt das Ergebnis nur von der Summe der beiden Argumente ab... 0 1 2 0 2 1 1 2 0 2 1 0 Offenbar hängt das Ergebnis nur von der Summe der beiden Argumente ab... 0 1 2 0 1 2 1 1 3 2 2 3 212 Um solche Tabellen leicht implementieren zu können, stellt Java das switch-statement

Mehr

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

Mikrocomputertechnik. Thema: Der Aufbau des XC888-Mikrocontrollers -Teil 1 - Mikrocomputertechnik Thema: Der Aufbau des XC888-Mikrocontrollers -Teil 1 - Mikroprozessor-Achritekturen Folie 2 Mikroprozessor-Achritekturen Klassifizierung anhand Wortbreite CPU-Architektur und Busleitungen

Mehr

Übung Praktische Informatik II

Übung Praktische Informatik II Übung Praktische Informatik II FSS 2009 Benjamin Guthier Lehrstuhl für Praktische Informatik IV Universität Mannheim guthier@pi4.informatik.uni-mannheim.de 20.03.09 4-1 Heutige große Übung Ankündigung

Mehr

Inhaltsangabe 3.1 Zahlensysteme und Darstellung natürlicher Zahlen Darstellung ganzer Zahlen

Inhaltsangabe 3.1 Zahlensysteme und Darstellung natürlicher Zahlen Darstellung ganzer Zahlen 3 Zahlendarstellung - Zahlensysteme - b-adische Darstellung natürlicher Zahlen - Komplementbildung - Darstellung ganzer und reeller Zahlen Inhaltsangabe 3.1 Zahlensysteme und Darstellung natürlicher Zahlen......

Mehr

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

Hochschule Düsseldorf University of Applied Sciences HSD RISC &CISC HSD RISC &CISC CISC - Complex Instruction Set Computer - Annahme: größerer Befehlssatz und komplexere Befehlen höhere Leistungsfähigkeit - Möglichst wenige Zeilen verwendet, um Aufgaben auszuführen - Großer

Mehr

Technische Informatik II Rechnerarchitektur

Technische Informatik II Rechnerarchitektur Technische Informatik II Rechnerarchitektur 3.Unterprogramme in MMIX Matthias Dräger E-Mail: www: mdraeger@mi.fu-berlin.de www.matthias-draeger.info/lehre/sose2010ti2/ tinyurl.com/sose2010ti2 Zuletzt bearbeitet:

Mehr

, 2014W Übungsgruppen: Mo., Mi.,

, 2014W Übungsgruppen: Mo., Mi., VU Technische Grundlagen der Informatik Übung 5: ikroprozessor (icro16) 183.579, 2014W Übungsgruppen: o., 01.12. i., 03.12.2014 Aufgabe 1: Schaltwerksentwicklung Hexapod / Teil 2 a) Befüllen Sie die untenstehende

Mehr

Informatik 12 Kapitel 3 - Funktionsweise eines Rechners

Informatik 12 Kapitel 3 - Funktionsweise eines Rechners Fachschaft Informatik Informatik 12 Kapitel 3 - Funktionsweise eines Rechners Michael Steinhuber König-Karlmann-Gymnasium Altötting 9. Februar 2017 Folie 1/36 Inhaltsverzeichnis I 1 Komponenten eines PCs

Mehr

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

Name: Vorname: Matr.-Nr.: 4. a) RISC-Architekturen müssen zur Decodierung von Maschinenbefehlen stets ein mikroprogrammierbares Steuerwerk verwenden. Name: Vorname: Matr.-Nr.: 4 Aufgabe 1 (8 Punkte) Entscheiden Sie, welche der folgenden Aussagen zum Thema CISC/RISC-Prinzipien korrekt sind. a) RISC-Architekturen müssen zur Decodierung von Maschinenbefehlen

Mehr

Programmiersprachen Einführung in C

Programmiersprachen Einführung in C Programmiersprachen Einführung in C Teil 1: Von der Maschinensprache zu C Prof. Dr. Maschinensprache: MIPS R2000 Was bewirkt folgendes Programm: 00100111101111011111111111100000 10101111101111110000000000010100

Mehr

8. Beschreibung des Prozessors MSP 430

8. Beschreibung des Prozessors MSP 430 8. Beschreibung des Prozessors MSP 430 8.1 Die Eigenschaften des MSP 430 8.2 Die Register des MSP 430 8.3 Der Aufbau des Speichers 8.4 Interrupts 8.5 Der Watchdog Programmierkurs II Wolfgang Effelsberg

Mehr

Vorstellung (Wdh. für die Neuen )

Vorstellung (Wdh. für die Neuen ) Vorstellung (Wdh. für die Neuen ) Mein Name: Christian Mandery Studiengang: Diplom-Informatik im 4. Semester (ich höre also im Moment selbst noch Technische Informatik 2) E-Mail (bei Fragen und zum Senden

Mehr

Grundlagen der Rechnerarchitektur

Grundlagen der Rechnerarchitektur Grundlagen der Rechnerarchitektur Einführung Unsere erste Amtshandlung: Wir schrauben einen Rechner auf Grundlagen der Rechnerarchitektur Einführung 2 Vorlesungsinhalte Binäre Arithmetik MIPS Assembler

Mehr

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

2. Computer (Hardware) K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 2. Computer (Hardware) K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 14. Okt. 2015 Computeraufbau: nur ein Überblick Genauer: Modul Digitale Systeme (2. Semester) Jetzt: Grundverständnis

Mehr

Technische Informatik II Rechnerarchitektur

Technische Informatik II Rechnerarchitektur Technische Informatik II Rechnerarchitektur MMIX-Crashkurs Matthias Dräger, Markus Rudolph E-Mail: mdraeger@mi.fu-berlin.de rudolph@mi.fu-berlin.de www: tinyurl.com/mmix2010 www.matthias-draeger.info/lehre/sose2010ti2/mmix.php

Mehr

Projekt 3 Variablen und Operatoren

Projekt 3 Variablen und Operatoren Projekt 3 Variablen und Operatoren Praktisch jedes Programm verarbeitet Daten. Um mit Daten programmieren zu können, muss es Möglichkeiten geben, die Daten in einem Programm zu verwalten und zu manipulieren.

Mehr

Der von Neumann Computer

Der von Neumann Computer Der von Neumann Computer Grundlagen moderner Computer Technologie 1 Der moderne Computer ein weites Spektrum Typ Preis Anwendungsbeispiel embeded Computer 10-20 $ in Autos, Uhren,... Spielcomputer 100-200$

Mehr

PicAxe M2 - Das Speicherkompendium. Ausgabe Matthias Heuschele / SSE

PicAxe M2 - Das Speicherkompendium. Ausgabe Matthias Heuschele / SSE PicAxe M2 - Das Speicherkompendium Alles über RAM, Eeprom & Lookup-Table der PicAxe M2 Typen Ausgabe 03-2017 Matthias Heuschele / SSE Das Speicherkompendium zur PicAxe M2 Inhaltsverzeichnis Der PicAxe

Mehr

Datenpfad einer einfachen MIPS CPU

Datenpfad einer einfachen MIPS CPU Datenpfad einer einfachen MIPS CPU Die Branch Instruktion beq Grundlagen der Rechnerarchitektur Prozessor 13 Betrachten nun Branch Instruktion beq Erinnerung, Branch Instruktionen beq ist vom I Typ Format:

Mehr

A ProgrAmmer s Guide to KIM Programming

A ProgrAmmer s Guide to KIM Programming A ProgrAmmer s Guide to KIM Programming by Erik Bartmann - Vers. 0.1 2 - Erste Befehle Erste Befehle Nun wird es aber Zeit, dass wir unser erstes Programm schreiben und wir werden hier einiges über die

Mehr

Mikrocomputertechnik

Mikrocomputertechnik Mikrocomputertechnik Bernd-Dieter Schaaf Mit Mikrocontrollern der Familie 8051 ISBN 3-446-40017-6 Leseprobe Weitere Informationen oder Bestellungen unter http://www.hanser.de/3-446-40017-6 sowie im Buchhandel

Mehr

3. Grundlagen der Rechnerarchitektur. Praktische Informatik 2. Wolfgang Effelsberg

3. Grundlagen der Rechnerarchitektur. Praktische Informatik 2. Wolfgang Effelsberg 3.1 Architektur des von-neumann-rechners 3.2 Maschinentypen: Einadressmaschine, Zweiadressmaschine 3.3 Befehlsformate und Adressierungstechniken 3.4 Beispiele: Die Prozessoren Texas Instruments MSP 430

Mehr

ERA-Zentralübung Maschinenprogrammierung

ERA-Zentralübung Maschinenprogrammierung ERA-Zentralübung Maschinenprogrammierung M. Meyer LRR TU München 27.10.2017 Arithmetik mit 80386 Inhalt Rechenmodell Register Befehle Beispiele 80386-Rechenmodell Typisches Zwei-Address-Format Ziel :=

Mehr

Lösungsvorschläge zur Übungsklausur. zum Kurs 1708 Technische Informatik II. im WS 01/02

Lösungsvorschläge zur Übungsklausur. zum Kurs 1708 Technische Informatik II. im WS 01/02 Lösungsvorschläge zur Übungsklausur zum Kurs 1708 Technische Informatik II im WS 01/02 Aufgabe 1: (10 Punkte) Welche der folgenden Aussagen sind richtig? a) Unter dem Begriff Mikroprogramm versteht man

Mehr