4.2 Universalrechner: Schaltung unabhängig vom Problem 185

Save this PDF as:
 WORD  PNG  TXT  JPG

Größe: px
Ab Seite anzeigen:

Download "4.2 Universalrechner: Schaltung unabhängig vom Problem 185"

Transkript

1 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 XXX XXX XXX R = a XXXXXXXXXXX XXX XXX XXX R2 = b XXXXXXXXXXX XXX XXX XXX R = c b) Geben Sie binär die Befehlsworte an, mit denen Sie p b 2 4ac berechnen und das Ergebnis in Register 4 ablegen. K D M4 M M2 M Kommentar XXXXXXXXXXX R4 = b*b XXX XXX R5 =4 XXXXXXXXXXX R5 = 4*a XXXXXXXXXXX R5 = 4*a*c XXXXXXXXXXX R4 = b*b - 4*a*c XXXXXXXXXXX XXX R4 = sqrt(b*b - 4*a*c)

2 86 4 Prozessor-Datenpfad c) Geben Sie binär die Befehlsworte an, mit denen Sie ( b± p b 2 4ac)/2a berechnen und das Ergebnis in den Registern R und R2 ablegen. K D M4 M M2 M Kommentar XXX XXX R5 = XXXXXXXXXXX R5 = -b XXXXXXXXXXX R6 = - b + sqrt(b*b-4ac) XXXXXXXXXXX R7 = - b - sqrt(b*b-4ac) XXX XXX R = 2 XXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXX R = 2a R = (- b + sqrt(b*b-4ac)) / 2a R2 = (- b - sqrt(b*b-4ac)) / 2a Kugelvolumen In dieser Aufgabe soll das Volumen einer Kugel V = 4 r berechnet werden. Der Radius liegt am Eingang des Universalrechners an. T a) Geben Sie binär das Befehlswort an, mit dem Sie den Radius in das Register R einlesen. K D M4 M M2 M Kommentar XXXXXXXXXXX XXX XXX XXX R = r (Eing. )

3 4.2 Universalrechner: Schaltung unabhängig vom Problem 87 T b) Geben Sie binär das Befehlswort an, mit dem Sie 4 r 4 berechnen und das Ergebnis in Register R ablegen. Hinweis: 4 = 2. K D M4 M M2 M Kommentar XXX XXX R = 4 XXX XXX R2 = 4 XXXXXXXXXXX R = 4*4 XXXXXXXXXXX R = 4*4*r XXXXXXXXXXX R = 4*4*r*r XXXXXXXXXXX R = 4*4*r*r*r Hinweis: 4 4 kann nicht zu K = 4 4 =.256, da.256 den Wertebereich einer Bit Vorzeichenbehafteten Zahl überschreitet! T c) Geben Sie binär das Befehlswort an, mit dem Sie das in Register R stehende Datenwort durch dividieren und das Ergebnis wieder in R ablegen. K D M4 M M2 M Kommentar XXX XXX R2 = XXX XXX R = 4*4*r*r*r/

4 88 4 Prozessor-Datenpfad 4. 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 R, // R a INPUT R2, // R2 b INPUT R,2 // R c MUL R4,R2,R2 // R4 b 2 SET R5,4 // R5 4 MUL R5,R5,R // R5 4 a MUL R5,R5,R // 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,R,R // R 2 a DIV R,R6,R // R ( b + p b 2 4 a c)/(2 a) p DIV R2,R7,R // R2 ( b b 2 4 a c)/(2 a)

5 4. Assembler 89 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, und 2 des Multiplexers M) ein uns speichert diese in einem Register ab; der erste Operand ist das Zielregister, der zweite Operand spezifiziert den Eingang (, 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 Bit breite vorzeichenbehaftete Konstante in ein Register; der erste Operand ist das Zielregister, der zweite Operand die Konstante.

6 9 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 2 einliest, das Volumen des Würfels berechnet und das Ergebnis im Register R ablegt. INPUT R, INPUT R, MUL R,R,R INPUT R,2 MUL R,R,R b) Schreiben Sie für den Universalrechner ein Programm in Assembler-Sprache, welches den Mittelwert der an den Eingängen, und 2 anliegenden Werte berechnet und diesen im Register R ablegt. INPUT R, INPUT R, ADD R,R,R INPUT R,2 ADD R,R,R SET R, DIV R,R,R

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

8 92 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,4592 in der angegebenen Genauigkeit. INPUT R, MUL R,R,R R r 2 SET R,4 R 4 SET R2, R2 SET R4, R4 MUL R2,R2,R4 R2 MUL R,R,R2 R 4 SET R,59 R 59 ADD R,R,R R 459 MUL R,R,R4 R 459 SET R,2 R 2 ADD R,R,R R 4592 MUL R,R,R R r DIV R,R,R2 R r 2 4,592 DIV R,R,R2 R r 2,4592

9 4. Assembler 9 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 einliest, die Länge der Hypothenuse berechnet und das Ergebnis im Register R ablegt INPUT R, MUL R,R,R INPUT R, MUL R,R,R ADD R,R,R SQRT R,R 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,4592 in der angegebenen Genauigkeit. INPUT R, SET R,2 MUL R,R,R R 2 r SET R,4 R 4 SET R2, R2 SET R4, R4 MUL R2,R2,R4 R2 MUL R,R,R2 R 4 SET R,59 R 59 ADD R,R,R R 459 MUL R,R,R4 R 459 SET R,2 ADD R,R,R R 4592 MUL R,R,R R 2 r 4592 DIV R,R,R2 R 2 r 4,592 DIV R,R,R2 R 2 r,4592

10 94 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 = für R, D = für R2,...) der zweite Operand im Befehlswort als M abgespeichert (z.b. M =, 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), M (zweiter Operand) und M4 (dritter Operand) abgespeichert, und der Wert von M2 bei ADD auf 2 gesetzt, bei SUB auf 2, bei MUL auf 2, bei DIV auf 2, und M auf 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 2 und M auf 2 gesetzt;

11 4. Assembler 95 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. 2 für oder 2 für M2 auf 2 und M auf 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 R, MUL R,R,R ADD R,R,R SQRT R,R Befehlsformat: K ( Bit) D ( Bit) M4 ( Bit) M ( Bit) M2 ( Bit) M (2 Bit) a) Übersetzen Sie das Programm in Befehlsworte des Universalrechners mit Hilfe obiger Übersetzungsregeln. Geben Sie für alle irrelevanten Bits x an xxxxxxxxxx xxx xxx xxx xxxxxxxxxx xxxxxxxxxx xxx xxx xxx xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx xxx

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

13 4. Assembler 97 Betrachten Sie den Datenpfad des Universalrechners. SUB b a a-b MUL ADD DIV b a a/b D D6 D5 D D2 A7 A D D 2 M M4 M M2 a b c Add clk reset D D2 R7 R6 R5 R4 R R2 R R M M2 M M4 D BZ p X 5 M A2 A M4 M2 M M D4 D7 D8 D D9 D2 D4 D R K MSB n- n

14 98 4 Prozessor-Datenpfad Gegeben ist folgende Codesequenz: SET R,5 INPUT R4,2 ADD R,R,R DIV R7,R,R 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 xxx xxx xxxxxxxxxx xxx xxx xxx xxxxxxxxxx xxxxxxxxxx Gegeben ist folgende Codesequenz: SET R,2 SQRT R2,R INPUT R2, MUL R5,R,R 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 xxx xxx xxxxxxxxxx xxx xxxxxxxxxx xxx xxx xxx xxxxxxxxxx

15 99 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 97er-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 und 6 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 Multiplikation-Befehl, der zwei Register-Werte multipliziert und das Ergebnis wieder in einem Register abspeichert 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, z.b. 2 Byte oder 4 Byte, was die Hardware einfacher und damit auch schneller macht.

16 2 5 Befehlssätze und deren Klassifikation 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,R,R2, addiere Register R 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,R, addiere Register R zum Register R 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 R, addiere Register R zum Akkumulator-Register und speichere das Ergebnis wieder im Akkumulator-Register ab. Null-Adress-Maschine/Stack-Maschine Bei einer Null-Address-Maschine muss bei einer Operation kein Operand angegeben

17 2 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 push 4 add Zunächst wird die Zahl auf dem Stack abgelegt, danach die Zahl 4. Anschließend werden beide Zahlen addiert. Das Ergebnis wird wieder auf dem Stack abgelegt.

18 22 6 MMIX-Prozessor 6 MMIX-Prozessor In diesem Kapitel beschäftigen wir uns mit dem MMIX-Prozessor. Der MMIX-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 TEX, ein Vorfahre von L A TEX, mit dem z.b. dieses Skript erstellt wurde. Für mehr Infos, siehe MMIX steht für die römische Zahl 29, die sich als Mittelwert mehrerer RISC-Rechner- Kennzahlen ergibt: (CrayI + IBM8 + RISCII + ClipperC + AMD29K + Motorola88K + IBM6 + In-teli96 + Alpha264 + POWER2 + MIPSR4 + HitachiSuperH4 + StrongARM + Sparc64) / 4 = 2826 / 4 = 29. MMIX 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 MMIX-Prozessor können von der LDV- Webseite heruntergeladen werden. Der MMIX ist eine Register-Register-Architektur mit 256 Allzweck-Registern und 2 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 2 Bit. Donald Knuth gibt für die Ausführungszeit der meisten Befehle 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.

19 6. Programmiermodell 2 6. Programmiermodell 2 Spezialregister 256 Allzweckregister Speicher 64 Bit 64 Bit 8 Bit PUT LDx 64 Bit GET 8, 6, 2, 64 Bit STx 2 Bit Befehlswort 255 OP X Y Z 64 Bit 64 Bit 8, 6, 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, 6, 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, 6, 2 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.

20 24 6 MMIX-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 verarbeitete werden können. Beim MMIX 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 MMIX 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 MMIX werden lokale Variable in den unteren Allzweckregistern ($, $,... = lokale Register) und globale Variable in den oberen Allzweckregistern ($255, $254,... = globale Register) abgelegt. Die dazwischen liegenden unbenutzten Register werden beim MMIX 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

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

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

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

Mikroprozessor bzw. CPU (Central Processing. - Steuerwerk (Control Unit) - Rechenwerk bzw. ALU (Arithmetic Logic Unit) Der Demo-Computer besitzt einen 4Bit-Mikroprozessor. Er kann entsprechend Wörter mit einer Breite von 4 Bits in einem Schritt verarbeiten. Die einzelnen Schritte der Abarbeitung werden durch Lampen visualisiert.

Mehr

Im Original veränderbare Word-Dateien

Im Original veränderbare Word-Dateien Das Von-Neumann-Prinzip Prinzipien der Datenverarbeitung Fast alle modernen Computer funktionieren nach dem Von- Neumann-Prinzip. Der Erfinder dieses Konzeptes John von Neumann (1903-1957) war ein in den

Mehr

2.2 Rechnerorganisation: Aufbau und Funktionsweise

2.2 Rechnerorganisation: Aufbau und Funktionsweise 2.2 Rechnerorganisation: Aufbau und Funktionsweise é Hardware, Software und Firmware é grober Aufbau eines von-neumann-rechners é Arbeitsspeicher, Speicherzelle, Bit, Byte é Prozessor é grobe Arbeitsweise

Mehr

Technische Informatik 1

Technische Informatik 1 Technische Informatik 1 2 Instruktionssatz Lothar Thiele Computer Engineering and Networks Laboratory Instruktionsverarbeitung 2 2 Übersetzung Das Kapitel 2 der Vorlesung setzt sich mit der Maschinensprache

Mehr

Mikrocomputertechnik. Adressierungsarten

Mikrocomputertechnik. Adressierungsarten Adressierungsarten Ein Mikroprozessor bietet meist eine Reihe von Möglichkeiten, die Operanden für eine Rechenoperation zu bestimmen. Diese Möglichkeiten bezeichnet man als Adressierungsarten. unmittelbare

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

2 Darstellung von Zahlen und Zeichen

2 Darstellung von Zahlen und Zeichen 2.1 Analoge und digitale Darstellung von Werten 79 2 Darstellung von Zahlen und Zeichen Computer- bzw. Prozessorsysteme führen Transformationen durch, die Eingaben X auf Ausgaben Y abbilden, d.h. Y = f

Mehr

Die Mikroprogrammebene eines Rechners

Die Mikroprogrammebene eines Rechners Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten, z.b. Befehl holen Befehl dekodieren Operanden holen etc.

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

Instruktionssatz-Architektur

Instruktionssatz-Architektur Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2005/2006 Übersicht 1 Einleitung 2 Bestandteile der ISA 3 CISC / RISC Übersicht 1 Einleitung 2 Bestandteile

Mehr

L3. Datenmanipulation

L3. Datenmanipulation L Datenmanipulation Aufbau eines Computers Prozessor, Arbeitsspeicher und system Maschinensprachen und Maschinenbefehle Beispiel einer vereinfachten Maschinensprache Ausführung des Programms und Befehlszyklus

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

Aufgabe 1) Die folgenden Umwandlungen/Berechnungen beziehen sich auf das 32-Bit Single-Precision Format nach IEEE-754.

Aufgabe 1) Die folgenden Umwandlungen/Berechnungen beziehen sich auf das 32-Bit Single-Precision Format nach IEEE-754. Aufgabe 1) Die folgenden Umwandlungen/Berechnungen beziehen sich auf das 32-Bit Single-Precision Format nach IEEE-754. a) Stellen Sie die Zahl 7,625 in folgender Tabelle dar! b) Wie werden denormalisierte

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

Kap 4. 4 Die Mikroprogrammebene eines Rechners

Kap 4. 4 Die Mikroprogrammebene eines Rechners 4 Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten (Befehl holen, Befehl dekodieren, Operanden holen etc.).

Mehr

Besprechung des 3. Übungsblattes MIMA-Interpreter MIMA-Aufgabe: Primzahltest Weitere MIMA-Aufgaben online

Besprechung des 3. Übungsblattes MIMA-Interpreter MIMA-Aufgabe: Primzahltest Weitere MIMA-Aufgaben online Themen heute Besprechung des 3. Übungsblattes MIMA-Interpreter MIMA-Aufgabe: Primzahltest Weitere MIMA-Aufgaben online Besprechung des 3. Übungsblattes Aufgabe 3 Speicherplätze für Mikrocode-Anweisungen

Mehr

Das Prinzip an einem alltäglichen Beispiel

Das Prinzip an einem alltäglichen Beispiel 3.2 Pipelining Ziel: Performanzsteigerung é Prinzip der Fließbandverarbeitung é Probleme bei Fließbandverarbeitung BB TI I 3.2/1 Das Prinzip an einem alltäglichen Beispiel é Sie kommen aus dem Urlaub und

Mehr

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

Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München Einführung (1) Was ist ein Rechner? Maschine, die Probleme für

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

1. Übung - Einführung/Rechnerarchitektur

1. Übung - Einführung/Rechnerarchitektur 1. Übung - Einführung/Rechnerarchitektur Informatik I für Verkehrsingenieure Aufgaben inkl. Beispiellösungen 1. Aufgabe: Was ist Hard- bzw. Software? a Computermaus b Betriebssystem c Drucker d Internetbrowser

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

Der Toy Rechner Ein einfacher Mikrorechner

Der Toy Rechner Ein einfacher Mikrorechner Der Toy Rechner Ein einfacher Mikrorechner Dr. Gerald Heim Haid-und-Neu-Str. 10-14 76131 Karlsruhe 16. Mai 1995 Allgemeine Informationen 2 Quelle: Phil Kopmann, Microcoded versus Hard-Wired Logic, Byte

Mehr

Datenpfad einer einfachen MIPS CPU

Datenpfad einer einfachen MIPS CPU Datenpfad einer einfachen MIPS CPU Zugriff auf den Datenspeicher Grundlagen der Rechnerarchitektur Prozessor 19 Betrachten nun Load und Store Word Erinnerung, Instruktionen lw und sw sind vom I Typ Format:

Mehr

Rechner Architektur. Martin Gülck

Rechner Architektur. Martin Gülck Rechner Architektur Martin Gülck Grundlage Jeder Rechner wird aus einzelnen Komponenten zusammengesetzt Sie werden auf dem Mainboard zusammengefügt (dt.: Hauptplatine) Mainboard wird auch als Motherboard

Mehr

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

Übungen für die Einführung in die Assemblerprogrammierung mit dem Prozessor c515c Übungen für die Einführung in die Assemblerprogrammierung mit dem Prozessor c515c 1 Transportbefehle 1.1 Verwendung nur Akku und Register (R0, R1,... R7) 1.1.1 Kopieren Sie den Wert aus Register1 nach

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

3.0 8051 Assembler und Hochsprachen

3.0 8051 Assembler und Hochsprachen 3.0 8051 Assembler und Hochsprachen Eine kurze Übersicht zum Ablauf einer Programmierung eines 8051 Mikrocontrollers. 3.1 Der 8051 Maschinencode Grundsätzlich akzeptiert ein 8051 Mikrocontroller als Befehle

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

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

Kapitel 1: Einführung

Kapitel 1: Einführung 10 Kapitel 1: Einführung 1.1 Was ist eine Programmiersprache? 1.2 Details zu C++ 1.3 Phasen der Programmierung 1.4 Ein erstes Programm: Hello World! 1.5 Addition zweier Zahlen 1.6 Entscheidungen 1.1 Was

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

Technische Informatik 2 Adressierungsarten

Technische Informatik 2 Adressierungsarten Technische Informatik 2 Adressierungsarten Prof. Dr. Miroslaw Malek Sommersemester 2009 www.informatik.hu-berlin.de/rok/ca Thema heute X-Adressmaschine 0-Adressmaschine 1-Adressmaschine 2-Adressmaschine

Mehr

Prozessor HC680 fiktiv

Prozessor HC680 fiktiv Prozessor HC680 fiktiv Dokumentation der Simulation Die Simulation umfasst die Struktur und Funktionalität des Prozessors und wichtiger Baugruppen des Systems. Dabei werden in einem Simulationsfenster

Mehr

Zahlensysteme: Oktal- und Hexadezimalsystem

Zahlensysteme: Oktal- und Hexadezimalsystem 20 Brückenkurs Die gebräuchlichste Bitfolge umfasst 8 Bits, sie deckt also 2 8 =256 Möglichkeiten ab, und wird ein Byte genannt. Zwei Bytes, also 16 Bits, bilden ein Wort, und 4 Bytes, also 32 Bits, formen

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

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

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113

Mehr

x 2 2x + = 3 + Es gibt genau ein x R mit ax + b = 0, denn es gilt

x 2 2x + = 3 + Es gibt genau ein x R mit ax + b = 0, denn es gilt - 17 - Die Frage ist hier also: Für welche x R gilt x = x + 1? Das ist eine quadratische Gleichung für x. Es gilt x = x + 1 x x 3 = 0, und man kann quadratische Ergänzung machen:... ( ) ( ) x x + = 3 +

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

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

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

3 Arithmetische Schaltungen

3 Arithmetische Schaltungen . Schaltungselemente Arithmetische Schaltungen. Schaltungselemente Logikgatter Treiber; gibt am Ausgang denselben Logikpegel aus, der auch am Eingang anliegt Inverter; gibt am Ausgang den Logikpegel des

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

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 Ausgabe: 2005-02-21 Abgabe: 2005-02-21 Technische Informatik - Eine

Mehr

INFORMATIK Oberstufe. Funktionsweise eines Rechners

INFORMATIK Oberstufe. Funktionsweise eines Rechners INFORMATIK Oberstufe Funktionsweise eines Rechners Lehrplan Inf 12.3 (ca. 17 Std.): Grundlegende Kenntnisse über den Aufbau eines Rechners und seiner prinzipiellen Funktionsweise helfen den Schülern, den

Mehr

Prinzipieller Aufbau und Funktionsweise eines Prozessors

Prinzipieller Aufbau und Funktionsweise eines Prozessors Prinzipieller Aufbau und Funktionsweise eines Prozessors [Technische Informatik Eine Einführung] Univ.- Lehrstuhl für Technische Informatik Institut für Informatik Martin-Luther-Universität Halle-Wittenberg

Mehr

Mikroprozessor als universeller digitaler Baustein

Mikroprozessor als universeller digitaler Baustein 2. Mikroprozessor 2.1 Allgemeines Mikroprozessor als universeller digitaler Baustein Die zunehmende Integrationsdichte von elektronischen Schaltkreisen führt zwangsläufige zur Entwicklung eines universellen

Mehr

Rechnergrundlagen SS Vorlesung

Rechnergrundlagen SS Vorlesung Rechnergrundlagen SS 2007 10. Vorlesung Inhalt Rechenwerk (ALU) Steuerwerk Instruktionssatz-Architekturen Assembler-Programmierung Synchroner/asynchroner Systembus RISC vs. CISC Kontrollfluss/Datenfluss

Mehr

Fehlerkorrektur Bild 3.190 Demoprozessor

Fehlerkorrektur Bild 3.190 Demoprozessor 7 Prozessor 3 0 Flags C V N Z A IP 0 SP AB 8 MS W/R DB 4 00h..6Fh Daten Speicher 70h..70h PA 71h..71h PB 72h..73h PC 74h..76h PD 80h..FFh Programm Speicher Fehlerkorrektur Bild 3.190 Demoprozessor Die

Mehr

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Inhalt dieser Einheit Variablen (Sinn und Aufgabe) Bezeichner Datentypen, Deklaration und Operationen Typenumwandlung (implizit/explizit) 2 Variablen

Mehr

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

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

Mehr

5 Verarbeitungsschaltungen

5 Verarbeitungsschaltungen 5 Verarbeitungsschaltungen Folie 1 5 Verarbeitungsschaltungen Häufig genutzte Funktionen gibt es als fertige Bausteine zu kaufen. 5.1 Addierer logische Schaltungen zur Addition zweier Dualzahlen Alle Grundrechenarten

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

Zahlendarstellungen und Rechnerarithmetik*

Zahlendarstellungen und Rechnerarithmetik* Zahlendarstellungen und Rechnerarithmetik* 1. Darstellung positiver ganzer Zahlen 2. Darstellung negativer ganzer Zahlen 3. Brüche und Festkommazahlen 4. binäre Addition 5. binäre Subtraktion *Die Folien

Mehr

1 Einleitung zum RISC Prozessor

1 Einleitung zum RISC Prozessor 1 Einleitung zum RISC Prozessor Wesentliche Entwicklungsschritte der Computer-Architekturen [2, 3]: Familienkonzept von IBM mit System/360 (1964) und DEC mit PDP-8 (1965) eingeführt: Gleiche Hardware-Architekturen

Mehr

Tutorium Rechnerorganisation

Tutorium Rechnerorganisation Woche 3 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Mehr

3 Berechnungen und Variablen

3 Berechnungen und Variablen 3 Berechnungen und Variablen Du hast Python installiert und weißt, wie man die Python-Shell startet. Jetzt kannst Du etwas damit machen. Wir fangen mit ein paar einfachen Berechnungen an und wenden uns

Mehr

Assembler-Programmierung

Assembler-Programmierung Assembler-Programmierung Dr.-Ing. Volkmar Sieh Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011 Assembler-Programmierung 1/48 2012-02-29 Assembler-Programmierung

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

Programmierung in C. Grundlagen. Stefan Kallerhoff

Programmierung in C. Grundlagen. Stefan Kallerhoff Programmierung in C Grundlagen Stefan Kallerhoff Vorstellungsrunde Name Hobby/Beruf Schon mal was programmiert? Erwartungen an den Kurs Lieblingstier Für zu Hause C-Buch online: http://openbook.rheinwerk-verlag.de/c_von_a_bis_z/

Mehr

C. BABBAGE (1792 1871): Programmgesteuerter (mechanischer) Rechner

C. BABBAGE (1792 1871): Programmgesteuerter (mechanischer) Rechner Von-Neumann-Rechner (John von Neumann : 1903-1957) C. BABBAGE (1792 1871): Programmgesteuerter (mechanischer) Rechner Quelle: http://www.cs.uakron.edu/~margush/465/01_intro.html Analytical Engine - Calculate

Mehr

Grundlagen der Rechnerarchitektur

Grundlagen der Rechnerarchitektur Grundlagen der Rechnerarchitektur Prozessor Übersicht Datenpfad Control Pipelining Data Hazards Control Hazards Multiple Issue Grundlagen der Rechnerarchitektur Prozessor 2 Datenpfad einer einfachen MIPS

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 18

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 18 Kapitel 3 Datentypen und Variablen Seite 1 von 18 Datentypen - Einführung - Für jede Variable muss ein Datentyp festgelegt werden. - Hierdurch werden die Wertemenge und die verwendbaren Operatoren festgelegt.

Mehr

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

bereits in A,3 und A.4: Betrachtung von Addierschaltungen als Beispiele für Schaltnetze und Schaltwerke Rechnerarithmetik Rechnerarithmetik 22 Prof. Dr. Rainer Manthey Informatik II Übersicht bereits in A,3 und A.4: Betrachtung von Addierschaltungen als Beispiele für Schaltnetze und Schaltwerke in diesem

Mehr

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung. Lineare Gleichungen mit einer Unbekannten Die Grundform der linearen Gleichung mit einer Unbekannten x lautet A x = a Dabei sind A, a reelle Zahlen. Die Gleichung lösen heißt, alle reellen Zahlen anzugeben,

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

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

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 Rechnen und Schaltnetze

3 Rechnen und Schaltnetze 3 Rechnen und Schaltnetze Arithmetik, Logik, Register Taschenrechner rste Prozessoren (z.b. Intel 4004) waren für reine Rechenaufgaben ausgelegt 4 4-Bit Register 4-Bit Datenbus 4 Kbyte Speicher 60000 Befehle/s

Mehr

Datenpfad einer einfachen MIPS CPU

Datenpfad einer einfachen MIPS CPU Datenpfad einer einfachen MIPS CPU Zugriff auf den Datenspeicher Grundlagen der Rechnerarchitektur Prozessor 19 Betrachten nun Load und Store Word Erinnerung, Instruktionen lw und sw sind vom I Typ Format:

Mehr

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

Dezimalkomma (decimal point) rechts von Stelle mit Wertigkeit 100 nachfolgende Stellen haben Wertigkeit 10-1, 10-2, etc. Fixpunktdarstellung Fixed-point numbers Bsp. Dezimaldarstellung Dezimalkomma (decimal point) rechts von Stelle mit Wertigkeit 100 nachfolgende Stellen haben Wertigkeit 10-1, 10-2, etc. Binärdarstellung

Mehr

Lösungsvorschlag zur 4. Übung

Lösungsvorschlag zur 4. Übung Prof. Frederik Armknecht Sascha Müller Daniel Mäurer Grundlagen der Informatik 3 Wintersemester 09/10 Lösungsvorschlag zur 4. Übung 1 Präsenzübungen 1.1 Schnelltest a) Welche Aussagen zu Bewertungskriterien

Mehr

Binäre Gleitkommazahlen

Binäre Gleitkommazahlen Binäre Gleitkommazahlen Was ist die wissenschaftliche, normalisierte Darstellung der binären Gleitkommazahl zur dezimalen Gleitkommazahl 0,625? Grundlagen der Rechnerarchitektur Logik und Arithmetik 72

Mehr

Lineare Gleichungssysteme

Lineare Gleichungssysteme Brückenkurs Mathematik TU Dresden 2015 Lineare Gleichungssysteme Schwerpunkte: Modellbildung geometrische Interpretation Lösungsmethoden Prof. Dr. F. Schuricht TU Dresden, Fachbereich Mathematik auf der

Mehr

TI II. Sommersemester 2009 Prof. Dr. Mesut Güneş 7. Aufgabenblatt mit Lösungen

TI II. Sommersemester 2009 Prof. Dr. Mesut Güneş 7. Aufgabenblatt mit Lösungen 7. Aufgabenblatt mit Lösungen Problem 1: IEEE-Gleitkommazahlen (2+2+4=8) a) Welchen Bereich der positiven Zahlen kann man mit normalisierten Gleitkommazahlen im IEEE-754-Format mit 64 Bit darstellen? b)

Mehr

10 Lesen und Schreiben von Dateien

10 Lesen und Schreiben von Dateien 10 Lesen und Schreiben von Dateien 10 Lesen und Schreiben von Dateien 135 10.1 Mit load und save Binäre Dateien Mit save können Variableninhalte binär im Matlab-Format abgespeichert werden. Syntax: save

Mehr

Programmierung von ATMEL AVR Mikroprozessoren am Beispiel des ATtiny13. Teil IV: Programmieren an Beispielen

Programmierung von ATMEL AVR Mikroprozessoren am Beispiel des ATtiny13. Teil IV: Programmieren an Beispielen Programmierung von ATMEL AVR Mikroprozessoren am Beispiel des ATtiny13 Eine Einführung in Aufbau, Funktionsweise, Programmierung und Nutzen von Mikroprozessoren Teil IV: Programmieren an Beispielen Die

Mehr

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

Assembler-Programme. Systemprogrammierung (37-023) Elementare Komponenten eines Assembler-Programmes Systemprogrammierung (37-023) Assemblerprogrammierung Betriebssystemgrundlagen Maschinenmodelle Dozent: Prof. Thomas Stricker krankheitshalber vertreten durch: Felix Rauch WebSite: http://www.cs.inf.ethz.ch/37-023/

Mehr

RO-Tutorien 3 / 6 / 12

RO-Tutorien 3 / 6 / 12 RO-Tutorien 3 / 6 / 12 Tutorien zur Vorlesung Rechnerorganisation Christian A. Mandery WOCHE 4 AM 21.05.2013 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft

Mehr

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

Füllstandsregelung. Technische Informatik - Digitaltechnik II

Füllstandsregelung. Technische Informatik - Digitaltechnik II Füllstandsregelung Kursleiter : W. Zimmer 1/18 Zwei Feuchtigkeitsfühler (trocken F=0; feucht F=1) sollen zusammen mit einer geeigneten Elektronik dafür sorgen, dass das Wasser im Vorratsbehälter niemals

Mehr

Kode-Erzeugung für Registersatz-Maschinen

Kode-Erzeugung für Registersatz-Maschinen Kode-Erzeugung für Registersatz-Maschinen Die meisten Maschinen sind heutzutage Registersatzmaschinen, die einen Satz von 16-32 Universalregistern besitzen. Üblich sind Dreiadress-Befehle OP DEST, SRC1,

Mehr

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

Struktur der CPU (1) Die Adress- und Datenpfad der CPU: Befehl holen. Vorlesung Rechnerarchitektur und Rechnertechnik SS Memory Adress Register Struktur der CPU (1) Die Adress- und Datenpfad der CPU: Prog. Counter Memory Adress Register Befehl holen Incrementer Main store Instruction register Op-code Address Memory Buffer Register CU Clock Control

Mehr

Midterm-Klausur Technische Grundlagen der Informatik

Midterm-Klausur Technische Grundlagen der Informatik Midterm-Klausur Technische Grundlagen der Informatik Prof. Dr. Arndt Bode Wintersemester 2002/2003 7. Dezember 2002 Name: Vorname: Matrikelnummer: Hörsaal: Platz: Unterschrift: Ergebnis: Aufgabe Punkte

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

Lösungsvorschlag zu 1. Übung

Lösungsvorschlag zu 1. Übung Prof. Frederik Armknecht Sascha Müller Daniel Mäurer Grundlagen der Informatik 3 Wintersemester 09/10 Lösungsvorschlag zu 1. Übung 1 Präsenzübungen 1.1 Schnelltest a) Welche der Aussagen treffen auf jeden

Mehr

Theoretische Informatik SS 04 Übung 1

Theoretische Informatik SS 04 Übung 1 Theoretische Informatik SS 04 Übung 1 Aufgabe 1 Es gibt verschiedene Möglichkeiten, eine natürliche Zahl n zu codieren. In der unären Codierung hat man nur ein Alphabet mit einem Zeichen - sagen wir die

Mehr

Durch Eliminieren der Wurzel erhalten wir die bekannte Kreisgleichung:

Durch Eliminieren der Wurzel erhalten wir die bekannte Kreisgleichung: Fixieren wir ein Seil der Länge r an einem Punkt M, nehmen das lose Ende in die Hand und bewegen uns so um den Punkt M herum, dass das Seil stets gespannt bleibt, erhalten wir, wie in nebenstehender Abbildung

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

Zwischenklausur Informatik, WS 2016/17. Lösungen zu den Aufgaben

Zwischenklausur Informatik, WS 2016/17. Lösungen zu den Aufgaben Zwischenklausur Informatik, WS 206/7 4.2.206 Lösungen zu den Aufgaben. Gegeben sind folgende Dualzahlen in Zweierkomplementdarstellung. Geben Sie den jeweils zugehörigen Dezimalwert an! a) entspricht der

Mehr

Befehlssatz AVR RISC Controller

Befehlssatz AVR RISC Controller Befehlssatz AVR RISC Controller Design-Philosophie des AVR Befehlssatzes Assembler-Sprache AVR-Befehlssatz Philosophie RISC = Reduced Instruction Set Computing keine komplexen Befehle möglichst symmetrischer

Mehr

Lenstras Algorithmus für Faktorisierung

Lenstras Algorithmus für Faktorisierung Lenstras Algorithmus für Faktorisierung Bertil Nestorius 9 März 2010 1 Motivation Die schnelle Faktorisierung von Zahlen ist heutzutage ein sehr wichtigen Thema, zb gibt es in der Kryptographie viele weit

Mehr

Übersicht. Quelle: Kapitel 3, 4 und 5 aus Anlauff, Böttcher, Ruckert: Das MMIX-Buch. Springer, 2002

Übersicht. Quelle: Kapitel 3, 4 und 5 aus Anlauff, Böttcher, Ruckert: Das MMIX-Buch. Springer, 2002 Übersicht Wiederholung: ein einfaches MMIX-Programm Speicherorganisation, Speicherzugriff Zahlen und Arithmetik Zeichenketten und Ein-/Ausgabe Kontrollstrukturen Unterprogramme Quelle: Kapitel 3, 4 und

Mehr

EigenMath Howto. Beispiele: Was erhält man, wenn man 100 mal die Zahl 2 mit sich multipliziert? Antwort 1267650600228229401496703205376

EigenMath Howto. Beispiele: Was erhält man, wenn man 100 mal die Zahl 2 mit sich multipliziert? Antwort 1267650600228229401496703205376 EigenMath Howto EigenMath ist ein kleines Programm, das als 'Taschenrechner' für die Mathematik der Oberstufe verwendet werden kann. Es ist viel weniger mächtig als die großen Brüder Sage, Maxima, Axiom

Mehr

1. Das dekadische Ziffernsystem (Dezimalsystem) Eine ganze Zahl z kann man als Summe von Potenzen zur Basis 10 darstellen:

1. Das dekadische Ziffernsystem (Dezimalsystem) Eine ganze Zahl z kann man als Summe von Potenzen zur Basis 10 darstellen: Zahlensysteme. Das dekadische Ziffernsystem (Dezimalsystem) Eine ganze Zahl z kann man als Summe von Potenzen zur Basis darstellen: n n n n z a a... a a a Dabei sind die Koeffizienten a, a, a,... aus der

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

Ein Scan basierter Seitenangriff auf DES

Ein Scan basierter Seitenangriff auf DES Ein Scan basierter Seitenangriff auf DES Seminar Codes & Kryptographie SS04 Tobias Witteler 29.06.2004 Struktur des Vortrags 1. Einführung / Motivation 2. Struktur von DES 3. Die Attacke Begriffsklärung:

Mehr

5.BMaschinensprache und Assembler

5.BMaschinensprache und Assembler Die Maschinenprogrammebene eines Rechners Jörg Roth 268 5.BMaschinensprache und Assembler Die vom Prozessor ausführbaren Befehle liegen im Binärformat vor. Nur solche Befehle sind direkt ausführbar. So

Mehr