Aufgabenkatalog. Computersysteme 1 Dr. Michael Zwick. Technische Universität München

Größe: px
Ab Seite anzeigen:

Download "Aufgabenkatalog. Computersysteme 1 Dr. Michael Zwick. Technische Universität München"

Transkript

1 Aufgabenkatalog Computersysteme Dr. Michael Zwick Technische Universität München

2 Inhalt Komponenten eines Computer-Systems 5 Netzteil Grafikkarten Optische Laufwerke Festplatte Prozessor Bussystem Rechner-Architekturen Assemblerprogrammierung 3 2. Zahldarstellung Festkommazahlen Gleitkommazahlen nach IEEE Format von Gleitkommazahlen Rechnen mit Gleitkommazahlen MMIX Architektur Überblick MMIX Register Allgemein Allzweckregister Spezialregister Arbeitsspeicher Allgemein Speicher-Organisation Alignment Byte-Reihenfolge beim Abspeichern von Datenworten: Big- und Little-Endian Format von MMIX-Programmen Assembler- und Loader-Befehle MMIX Befehlsformat MMIX Befehle Definitionen Zusammenfassen von in Registern gespeicherten Werten

3 3 Programm beenden Lade- und Speicherbefehle Daten vom Speicher in ein Register laden Adressen in ein Register laden Daten vom Register in den Speicher schreiben (speichern) Direktoperand in Register schreiben Umwandlung Gleitkommazahl Festkommazahl Arithmetische Befehle Arithmetische Befehle auf Festkommazahlen Arithmetische Befehle auf Gleitkommazahlen Schiebe-Befehle Logische Operationen auf Bit-Ebene Zugriff auf Spezialregister Verzweigungsbefehle Unbedingte Verzweigung Bedingte Verzweigungen Befehle für Funktionsaufrufe Namensräume Stack MMIX Programme MMIX Programm zur Berechnung der Determinante einer 2 2 Matrix 93 Quadratische Gleichung Mikroarchitektur 3 3. Datenpfad Phase : Befehl holen Phase 2: Befehl dekodieren und Operanden bereitstellen Phase 3: Befehlsausführung Phase 4: Speicherzugriff Kontrolle aller Phasen: Das Steuerwerk Aufbau des Rechenwerks (ALU) Überblick UND- und ODER-Einheit Schiebe-Einheit Addierer und Subtrahierer Addition zweier einzelner Bits: Bit Halbaddierer Addition von drei einzelnen Bits: Bit Volladdierer

4 4 Addition von Binärzahlen: Zusammenschalten von Volladdierern.. 5 Subtraktion von Binärzahlen: Addition des negativen zweiten Operanden Multiplikation Multiplikation 3 = 43 im Binärsystem, Wortbreite = Multiplikation 3 5 = 65 im Binärsystem, Wortbreite = Multiplikations-Hardware Zustandsdiagramm der Steuerung Multiplexer-basierte Implementierung der Steuerung ROM-basierte Implementierung der Steuerung Pipelining Rückblick: Bisheriger Datenpad = Multicycle-Datenpfad Pipeline-Datenpfad Cache Motivation Direkt abgebildeter Cache Voll-Assoziativer Cache Set-Assoziativer/Mengen-Assoziativer Cache

5 5 Komponenten eines Computer-Systems Netzteil a) Welche Spannungen werden von PC-Netzteilen bereitgestellt? 3.3 V, 5 V, 2 V, -5 V, -2 V. b) Warum können PC-Netzteile hohe Leistungen liefern, obwohl die eingebauten Transformatoren nur relativ klein sind? PC-Netzteile werden in der Regel als Schaltnetzteile gebaut, die mit einigen khz betrieben werden. Da bei Transformatoren die übertragbare Leistung nicht nur von der Anzahl der Windungen abhängt, sondern auch von der Frequenz, kann bei einre Erhöhung der Frequenz auch eine höhere Leistung übertragen werden. c) Wie sind Schaltnetzteile aufgebaut? Skizzieren Sie ein Blockschaltbild! 23 V ~ Gleichrichter ~ = Schalt- Glied HF Trafo Gleichrichter ~ Tiefpass = 5 V = Galvanische Trennung Regelkreis =

6 6 Komponenten eines Computer-Systems Grafikkarten a) Was sind die Hauptaufgaben einer Grafikkarte? Schnittstelle PC Display Hardware-Bescheunigung von Grafik-Berechnungen: 3D-Berechnungen, schnelles Zeichnen von Grafik-Primitiven, rendern b) Was ist ein Back-Buffer, was ist ein Front-Buffer? Der Front-Buffer wird gerade am Bildschirm dargestellt, während der Back- Buffer im Rahmen des Renderings verändert wird. Optische Laufwerke a) Was sind Pits und Land? Land ist die Oberfläche des optischen Mediums. Pits sind kleine Vertiefungen auf dem Land. b) Was reflektiert Licht: Pits, Land oder beides? Beides c) Welche Tiefe müssen die Pits haben, damit man die mit Pits und Land gespeicherte Information sinnvoll auslesen kann? Warum? Die Pits müssen eine Tiefe von λ/4 haben, wobei λ die Wellenlänge des Lasers ist, der zum Auslesen verwendet wird. Das Licht, das von einem Pit reflektiert wird ist dann gegenüber dem vom Land reflektierten Licht um λ/2 phasenverschoben (λ/4 (Land Pit) + λ/4 (Pit Land) = λ/2).

7 7 Festplatte a) Was ist eine Festplatten-Spur? Kreis den die Schreib-/Leseköpfe auf der Platte abfahren, wenn sich bei rotierender Platte die Position des Schreib-/Lesekopfs nicht ändert. b) Was ist ein Festplatten-Zylinder? Ein Festplatten-Zylinder ist die Menge der Spuren, die gleichzeitig gelesen/geschrieben werden. (Bei einer Festplatte werden in der Regel immer mehrere Platten auf einer Achse verbaut. Diese Platten werden gleichzeitig beschrieben/ausgelesen.) c) Was ist ein Festplatten-Sektor? Ein Sektor ist kleinste adressierbare Einheit bei einer Festplatte. Die auf einer Festplatte abzuspeichernden Daten werden in Sektoren abgespeichert. d) Was sind typische Sektor-Größen? 52 Byte, 4 kbyte e) Was für Informationen werden in Sektoren neben den Nutzdaten noch zusätzlich abgespeichert? Verwaltungs-Information, z.b. Zylinder-ID, Sektor Start- und Ende-Markierungen,...

8 8 Komponenten eines Computer-Systems f) Skizzieren Sie grob einen Regelkreis der zur Positionierung des Festplatten-Arms verwendet werden kann. Soll-Position Fehler + Regelung Spulenstrom Aktuelle Position Sensor

9 9 Prozessor a) Aus welchen logischen Grundeinheiten besteht ein Prozessor? Rechenwerk/ALU Registerblock Steuerwerk/Leitwerk Befehlsregister Befehlszähler Flags Bus-Treiber-Logik Cache Einheit zur Adress-Übersetzung/Virtueller Speicher b) Welche Schritte führt ein Prozessor aus, wenn er den nächsten Befehl aus dem Speicher lädt? Den Wert des Befehlszählers als Adresse auf den Adress-Bus legen Vom Datenbus das adressierte Datum einlesen Den eingelesenen Wert im Befehls-Register ablegen. c) Wo können die Operanden eines Befehls generell abgelegt sein? Direkt im Befehlswort (Direktoperand/immediate operand) In den Registern Im Speicher

10 Komponenten eines Computer-Systems Bussystem a) In welche drei Busse lässt sich ein Bussystem oft aufgliedern? Adressbus Datenbus Steuerungsbus b) Was ist die Funktion dieser drei Busse? Adressbus: Dient zur adressierung einer Speicheradresse oder eines Geräts Datenbus: Auf dem Datenbus werden die Daten übertragen; sowohl im Fall Lesen als auch im Fall Schreiben Steuerungsbus: Teilt mit, ob gelesen oder geschrieben werden soll bzw. wann gültige Daten auf dem Bus liegen c) Welche dieser Busse sind unidirektional, welche bidirektional? Unidirektional: Adress- und Steuerbus; wird vom Prozessor gesteuert (ausser DMA) Bidirektional: Datenbus (lesen und schreiben)

11 Rechner-Architekturen a) Was ist der Haupt-Unterschied zwischen einer Harvard- und einer von Neumann- Architektur? Von Neumann: Daten und Befehle liegen im selben Speicher Harvard-Architektur: Daten und Befehle liegen in unterschiedlichen Speichern. b) Wie kann man die Aussage verstehen, dass heutige Rechnersysteme oft sowohl eine Harvard- als auch eine von Neumann-Architektur haben? Bei heutigen Rechner-Systemen werden häufig für Befehle und Daten verschiedene L-Caches verwendet. Ab dem L2-Cache wird dann oft nicht mehr zwischen Befehlen und Daten unterschieden, d.h. es gibt dann nur noch einen L2-Cache in dem dann sowohl Befehle als auch Daten abgespeichert sind.

12 2 Komponenten eines Computer-Systems

13 2. Zahldarstellung 3 2 Assemblerprogrammierung 2. Zahldarstellung Festkommazahlen a) Wandeln Sie folgende Dezimalzahlen in 8 Bit breite vorzeichenlose Binärzahlen um. Dezimal Binär vorzeichenlos

14 4 2 Assemblerprogrammierung b) Wandeln Sie soweit möglich die folgenden Dezimalzahlen in die Systeme Vorzeichen und Betrag, Einer Komplement und Zweier Komplement um. Dezimal Vorzeichen und Betrag Einer Komplement Zweier Komplement

15 2. Zahldarstellung 5 c) Vervollständigen Sie folgenden Zahlenring für 4 bit Binärzahlen wie folgt: Der mittlere Ring soll die 4 Bit breiten Binärzahlen enthalten, der äussere Ring soll die dem mittleren Ring entsprechenden Dezimalzahlen enthalten für den Fall, dass der mittlere Ring vorzeichenlose Zahlen codiert und der innere Ring soll die dem mittleren Ring entsprechenden Dezimalzahlen enthalten für den Fall, dass der mittlere Ring Zahlen im Zweier Komplement codiert. Markieren Sie, wo ein Überlauf von vorzeichenlosen Zahlen auftritt. Markieren Sie, wo ein Überlauf von vorzeichenbehafteten Zahlen auftritt neg. pos. Vorzeichenbehaftet: pos + pos = neg neg + neg = pos Vorzeichenlos

16 6 2 Assemblerprogrammierung d) Wie kann man einen Überlauf von vorzeichenlosen Zahlen feststellen? Das Carry-Out-Bit, d.h. das Bit an der Stelle MSB + ist gesetzt. e) Wie lässt sich ein Überlauf von vorzeichenbehafteten Zahlen feststellen? Bei vorzeichenbehafteten Zahlen tritt ein Überlauf auf, wenn man zwei positive Zahlen addiert und eine negative Zahl als Ergebnis erhält, oder wenn man zwei negative Zahlen addiert und eine positive Zahl als Ergebnis bekommt. f) Berechnen Sie im vorzeichenlosen Binärformat. 37 = = g) Berechnen Sie im Zweier Komplement. 37 = = ones comp. = 53 twos comp. = + Wert: Einer Komplement: Zweier Komplement: 6

17 2. Zahldarstellung 7 Gleitkommazahlen nach IEEE 754 Format von Gleitkommazahlen a) Geben Sie das Format von 32 Bit und Bit Gleitkommazahlen an. 32 Bit: Bit Vorzeichen, 8 Bit Exponent, 23 Bit Bruchteil/Fraction Bit: Bit Vorzeichen, Bit Exponent, 52 Bit Bruchteil/Fraction b) Wie berechnet sich der Wert einer 32 bzw. Bit breiten normalisierten Gleitkommazahl aus ihrem Bitmuster? Geben Sie den Wert der Konstanten K an! v = ( ) s 2 e K.f 32 Bit: s = sign = Vorzeichen; e = Exponent (8 bit); K = 27; f = fraction = Bruchteil (23 bit) Bit: s = sign = Vorzeichen; e = Exponent ( bit); K = 23; f = fraction = Bruchteil (52 bit) c) In welchem Bereich liegt e bei normalisierter Zahldarstellung? 32 Bit: < e < 255 Bit: < e < 247 d) Wie wird die Zahl. dargestellt in Bezug auf s, e and f? s = ; e = ; f =

18 8 2 Assemblerprogrammierung e) Was ist eine denormalisierte Gleitkommazahl, wie wird sie kodiert und wie berechnet sich ihr Wert? Bei normalisierten Gleitkommazahlen wird eine, direkt vor den Bruchteil f hinzugefügt. Bei denormalisierten Gleitkommazahlen ist es eine,. Mit denormalisierten Gleitkommazahlen können um den Wert herum betragsmäßig viel kleinere Zahlen dargestellt werden als bei normalisierten Gleitkommazahlen. Kodierung: e = ; f > ; Wert: v = ( ) s 2 K.f f) Wie kodiert man die Gleitkommazahl unendlich? 32 Bit: e = 255; f = Bit: e = 247; f = Das Bit s gibt jeweils das Vorzeichen an (+ oder ). g) Mit welchen Werten von e und f wird ausgesagt, dass es sich um keine Zahl (NaN = not a number) handelt? 32 Bit: e = 255; f > Bit: e = 255; f > h) Geben Sie ein Beispiel an, wie es zu einem Ergebnis kommen kann, das keine Zahl ist. Wurzel einer negativen Zahl. (Auch möglich: Division /)

19 2. Zahldarstellung 9 Rechnen mit Gleitkommazahlen a) Geben Sie die Festkomma-Binärdarstellung von 3,625 und 3,5 an b) Kodieren Sie 3,625 und 3,5 als 32 Bit breite Gleitkommazahlen und tragen Sie das Bitmuster in die angegebene Tabelle ein :. =. 2 s = e K = e = K + = 27 + = 28 f = :. =. 2 3 s = e K = 3 e = K + 3 = = 3 f = : :...

20 2 2 Assemblerprogrammierung c) Berechnen Sie 3, ,5 im Binärsystem bei Verwendung einer 32 Bit Gleitkommakodierung. Exponent 3.625: Exponent 3.5: Exponent von dem von 3.5 anpassen (Exponenten müssen gleich sein, bevor die Mantissen addiert werden können). 3.5: Exponent Bruchteil/Mantisse : Exponent Bruchteil/Mantisse (führende,)... Mantissen addieren: Normalisieren: Mantisse normalisieren: Exponent normalisieren: Bitmuster des Ergebnisses:...

21 2. Zahldarstellung 2 d) Bestimmen Sie aus dem Ergebnis-Bitmuster das Ergebnis der Addition 3, ,5 ( ), =, 2 = 7,25

22 22 2 Assemblerprogrammierung 2.2 MMIX Architektur Überblick a) Auf welche Mikroarchitektur-Komponenten kann ein MMIX-Programmierer in seinen Programmen zugreifen ( Programmier-Architektur )? Rechenwerk/ALU Allzweckregister Spezialregister Hauptspeicher Befehlsregister b) Zeichnen Sie die MMIX Programmier-Architektur. Zeichen Sie mit gerichteten Pfeilen den Informationsfluss ein und geben Sie dabei die Wortbreiten an. Spezial- Register Allzweck- Register Speicher Bit 8, 6, 32, Bit OP X Y Z 32 Bit Befehlswort 8, 6, 24 Bit Bit Bit Rechen- werk (ALU)

23 2.2 MMIX Architektur 23 MMIX Register Allgemein a) Was ist ein Register? Ein Register ist ein sehr kleiner aber schneller Speicher. b) Wo findet man Register in einem Computer-System? Hauptprozessor, Steuerungen von externen Geräten,... c) Daten welcher Größenordnung kann ein Register aufnehmen: Byte, kilobytes, megabytes, gigabytes or terabytes? Ein Register speichert in der Regel nicht mehr als einige Byte. d) Skizzieren Sie das Schaltbild eines Registers das Bit Daten abspeichern kann. Clk Daten- Eingang Daten- Ausgang Allzweckregister a) Was sind Allzweckregister? Allzweckregister sind Register, die keinem bestimmten Zweck (z.b. Steuerung der Hardware, Bereitstellen von Statusinformationen der Hardware,...) zugeordnet sind und somit für die Programme frei zur Verfügung stehen. b) Geben Sie ein Beispiel für eine typische Verwendung eines Allzweckregisters an. Quell- oder Zieloperanden für arithmetische Befehle.

24 24 2 Assemblerprogrammierung c) Über wieviele Allzweckregister verfügt der MMIX-Prozessor? Welche Namen haben sie? Der MMIX hat 256 Allzweckregister, die $, $,..., $255 genannt werden. d) Was ist der Unterschied zwischen einem globalen und einem lokalen Register? Global: Gedacht für die Verwendung von allen Programmteilen Lokal: Gedacht für die Verwendung durch einzelne Funktionen e) Skizzieren Sie die MMIX-Allzweckregister und tragen Sie in Ihre Skizze ein, wo die globalen und wo die lokalen Register liegen. $255 rg Globale Register Marginale Register rl $ Lokale Register

25 2.2 MMIX Architektur 25 Spezialregister a) Was ist ein Spezialregister? Spezialregister sind auf dem Prozessor untergebracht und werden dazu verwendet, von Programmen aus die Hardware zu steuern bzw. um Programmen Statusinformationen aus der Hardware zugänglich zu machen. b) Geben Sie eine typische Anwendung eines Spezialregisters an. Rundungsmodus für Gleitkommaoperationen festlegen. c) Über wieviele Spezialregister verfügt der MMIX-Prozessor? Wie werden sie genannt (Prinzip)? Der MMIX verfügt über 32 Spezialregister. Der Name beginnt mit r, dann kommen oder 2 Buchstaben. (Konkret: ra, rb,..., rz, rbb, rtt, rww rxx, ryy und rzz) d) Kann jeder MMIX-Befehl Spezialregister verwenden? Nein. Auf Spezialregister kann nur mit GET (lesen) und PUT (schreiben) zugegriffen werden. e) Welches Spezialregister stellt Informationen über Arithmetische Operationen zur Verfügung? Spezialregister ra. f) In welchem Spezialregister kann man die oberen Bit eines 28 Bit breiten Festkomma-Dividenden ablegen? Register rd. g) In welchem Register werden die oberen Bit des Ergebnisses einer Festkomma- Multiplikation abgelegt? Spezialregister rh.

26 26 2 Assemblerprogrammierung h) In welchem Spezialregister legt das Rechenwerk den Rest einer Festkomma- Division ab? Spezialregister rr. i) Müssen normale Programme häufig auf Spezialregister zugreifen? In der Regel nicht. Beispielsweise sind Bit Festkomma-Genauigkeit in der Regel völlig ausreichend. j) Was müssen Sie tun, wenn Sie einzelne Bits eines Spezialregisters verändern wollen? Spezialregister mit GET in Allzweckregister einlesen Allzweckregister bearbeiten Allzweckregister mit PUT wieder in Spezialregister schreiben

27 2.2 MMIX Architektur 27 Arbeitsspeicher Allgemein a) Wozu verwendet ein Computer Arbeitsspeicher? Speichern von Daten, mit denen gerade gearbeitet wird. b) Wo findet man den Arbeitsspeicher in einem Computersystem? Auf dem Prozessor-Kern? Auf dem Mainboard? Als externes Gerät? Man findet Computer-Speicher auf dem Mainboard. c) Sind Zugriffe auf den Arbeitsspeicher in der Regel schneller oder langsamer als Zugriffe auf Register? Zugriffe auf den Arbeitsspeicher sind nie schneller als Zugriffe auf die Register im Hauptprozessor, sondern wesentlich langsamer. Im Vergleich zu Festplatten- Zugriffen sind sie jedoch viel schneller. d) Begründen Sie Ihre Antwort auf die letzte Frage. Register sind direkt in Prozessoren integriert und können deshalb mit vollem Prozessor-Takt angesprochen werden. Der Hauptspeicher befindet sich ausserhalb des Prozessors und muss deshalb über den langsamen Bus angesprochen werden. Durch die langen Verbindungsleitungen (Bus) erhöhen sich nicht nur die reinen Signallaufzeiten, sondern es ergeben sich auch höhere Kapazitäten, die überwunden werden müssen. Desweiteren müssen die Signale durch zusätzliche elektronische Komponenten laufen, die das Bus-Protokoll implementieren. Desweiteren werden die Register auf dem Hauptprozessor mit schnellem SRAM implementiert, und nicht mit dem langsameren DRAM.

28 28 2 Assemblerprogrammierung Speicher-Organisation a) Zeichnen Sie die Segmente des virtuellen MMIX-Speichers mit den zugehörigen Start- und End-Adressen. x = Text_Segment xff x xfffffffffffffff x2 = Data_Segment Interruptvektoren MMIX-Programme Variable Datensegment Text- segment x3fffffffffffffff x4 = Pool_Segment x5fffffffffffffff x6 = Stack_Segment x7fffffffffffffff x8 Stack Poolsegment Stacksegment Für Betriebssystem reservierter Bereich xffffffffffffffff

29 2.2 MMIX Architektur 29 b) Was wird im Textsegment gespeichert? Programm-Code Direktoperanden Interruptvektoren c) Was ist ein Interrupt? Bei einem Interrupt wird die Programmausführung unterbrochen und es wird in die Interrupt Service Routine (ISR) verzweigt. Nach Abarbeitung der ISR wird das Programm an der unterbrochenen Stelle fortgesetzt. d) Nennen Sie ein Ereignis, bei dem ein Interrupt auftreten kann. Division durch. e) Was sind Interruptvektoren? Bereich im Arbeitsspeicher, in dem Adressen oder Verzweigungen zu Interrupt Service Routinen gespeichert werden. f) Was wird im Datensegment gespeichert? Variable: Von niedrigeren zu höheren Adressen Stack: Von höheren zu niedrigeren Adressen

30 3 2 Assemblerprogrammierung g) Was wird im Poolsegment gespeichert? Das Poolsegment wird gemeinsam vom Programm und dem Betriebssystem verwendet und wird zum Datenaustausch benutzt. Zum Programmstart enthält es die Parameter, mit denen das Programm aufgerufen wird. h) Geben Sie den Inhalt des Poolsegments für das Programm ls an, das mit dem Parameter -la aufgerufen wird (Aufruf: ls -la). x4 x48 x4 x48 x42 x428 x43 x438 x43 x42 x428 x x6c73 x2d6c6 x x i) Wenn alle Programme an Adresse x beginnen bzw. alle Programme ihre Daten ab Adresse x2 im Speicher ablegen: Überschreiben sich die verschiedenen Programme dann nicht gegenseitig ihre Daten? Ja/nein und warum? Nein, die Programme überschreiben sich Ihre Daten nicht gegenseitig, da es sich um virtuellen Speicher handelt. Die einzelnen Programme verwenden zwar die selben Adressen, das Betriebssystem leitet die Zugriffe jedoch auf verschiedene reale Speicheradressen weiter.

31 2.2 MMIX Architektur 3 Alignment a) Geben Sie für nachfolgend angegebene Speicheradressen an, ob es sich um Byte-, Wyde-, Tetra- oder Octa-Adressen handelt. Octa Tetra Wyde Byte x2 X X X X x x2 X x x22 X X x x23 X x x24 X X X x x25 X x x26 X X x x27 X x x28 X X X X x

32 32 2 Assemblerprogrammierung Byte-Reihenfolge beim Abspeichern von Datenworten: Big- und Little-Endian a) Welche Art von Daten betrifft die Abspeicherung als Big- oder Little-Endian? Die Abspeicherung von Daten als Big- oder Little-Endian betrifft nur die Abspeicherung von Worten, die ein vielfaches (>, d.h. 2, 3, 4,...) eines Bytes sind. b) Verwendet der MMIX-Prozessor Big- oder Little-Endian? Der MMIX verwendet Big-Endian. c) Was bedeutet Big- und Litle-Endian? Was ist der Unterschied? Big- oder Little-Endian beschreibt zwei Möglichkeiten, Datenworte abzuspeichern, die sich aus mehreren Bytes zusammensetzen. Bei Big-Endian wird das höherwertigere Byte adressiert, bei Little-Endian wird das niedrigere Byte Adressiert. d) Wie wird die 6 Bit-Zahl x234 im Speicher an der Adresse x2 abgelegt im Falle a) einer Big-Endian-Maschine und b) einer Little-Endian- Maschine? Big Endian: x2 liegt an Adresse x2 und x34 an Adresse x2 Little Endian: x34 liegt an Adresse x2 und x2 an Adresse x2.

33 2.2 MMIX Architektur 33 Format von MMIX-Programmen a) Aus wievielen/welchen Spalten bestehen MMIX-Programme? Vier: Marke, Befehl, Operanden, Kommentar. b) Wie werden die Spalten im Programmcode getrennt? Die Spalten werden durch Whitespaces getrennt, d.h. Leerzeichen und Tabulatoren. c) Wie muss man MMIX-Codezeilen schreiben, die keine Marke verwenden? Man muss die Zeile mit einem Whitespace beginnen, d.h. entweder mit Leerzeichen oder mit Tabulatoren. d) Wie kann man beim MMIX-Assembler eine komplette Zeile auskommentieren? Wenn das erste Zeichen einer Zeile ein Sonderzeichen (z.b. ein Slash /, ein Prozentzeichen % etc.) ist, interpretiert der MMIX-Assembler die ganze Zeile als Kommentar. e) Werden alle vier Spalten eines MMIX-Programms für den Übersetzungsvorgang herangezogen? Gehen Sie auf die einzelnen Spalten ein. Nein. Die vierte Spalte (Kommentare) wird komplett ignoriert. Die erste Spalte (Marken) tragen nur insoweit zum Übersetzungsvorgang bei, dass sie zur Berechnung von Adressen verwendet werden. Die einzigen Spalten, die tatsächlich in MMIX-Befehle übersetzt werden, sind Spalten 2 und 3. Wenn Spalten 2 und 3 Loader-Befehle enthalten, werden diese nur implizit verwendet, d.h. es wird anderer MMIX-Code generiert, der die Loader-Anweisungen umsetzt.

34 34 2 Assemblerprogrammierung Assembler- und Loader-Befehle a) Geben Sie Befehle an, mit denen Sie Register, 2 und 3 durch a, b und c ansprechbar machen. a IS $ b IS $2 c IS $3 b) Geben einen Befehl an, der ein globales Register mit dem Namen GR reserviert und mit initialisiert. GR GREG c) Was ist der Loader? Der Loader ist der Teil eines Betriebssystems, der Programme von einem Massenspeicher (HDD/SSD) in den Arbeitsspeicher lädt, bevor mit der Programmausführung begonnen wird. d) Geben Sie Befehle an, mit denen Sie an Speicheradresse #2 vier Bytes reservieren, die über die Marken A, B, C und D angesprochen werden können. A soll mit und B mit 2 initialisiert werden. Fügen Sie auch einen geeigneten Befehl zur Reservierung und Initialisierung eines globalen Registers ein, damit die vier Bytes über ein Basisregister und einen Offset angesprochen werden können. LOC #2 A BYTE B BYTE 2 C BYTE D BYTE

35 2.2 MMIX Architektur 35 e) Mit welchen Befehlen können Sie Worte der Länge 6, 32 und bit im Speicher reservieren? 6 bit: WYDE 32 bit: TETRA bit: OCTA f) Erklären Sie den Ausdruck Alignment. Der Begriff Alignment bedeutet Ausrichtung. Gemeint ist die Ausrichtung von Datenworten an bestimmten Adressen. Beim MMIX gilt folgendes: Ein Byte (8 Bit) kann an jeder Speicheradresse liegen. Ein Wyde (6 Bit) kann nur an einer durch 2 teilbaren Speicheradresse liegen. Das letzte Adress-Bit muss hier also den Wert haben. Ein Tetra (32 Bit) kann nur an einer durch 4 teilbaren Speicheradresse liegen. Hier müssen die letzten beiden Adress-Bits den Wert haben. Ein Octa ( Bit) kann nur an einer durch 8 teilbaren Speicheradresse liegen. Hier müssen die letzten drei Adress-Bits den Wert haben.

36 36 2 Assemblerprogrammierung g) Was passiert, wenn man not aligned auf den Speicher zugreift, d.h. wenn man z.b. auf einen Befehl zum Laden/Speichern eines Octas zusammen mit einer Adresse verwendet, bei der die letzten drei Bits nicht den Wert haben? Das Alignment wird vom Prozessor automatisch durchgeführt, d.h. bei Wyde-Zugriffsbefehlen wird beim Speicherzugriff automatisch das letzte Adress-Bit gelöscht, Tetra-Zugriffsbefehlen werden beim Speicherzugriff automatisch die letzten beiden Adress-Bits gelöscht und bei Octa-Zugriffsbefelhen werden beim Speicherzugriff automatisch die letzten drei Adress-Bits gelöscht. Betrachten Sie die folgenden Befehle: X Y Z LOC #2 BYTE WYDE OCTA h) Geben Sie die Adressen an, an denen X und Y im Speicher abgelegt werden. X: x2 Y: x22 (höherwertigeres Byte) und x23 (niederwertigeres Byte) i) An welchen Adressen wird Z abgelegt? Z wird an den Adressen x28 bis x2f abgelegt.

37 2.2 MMIX Architektur 37 j) Welche Eigenschaften muss eine Adresse haben, damit man an ihr ein Byte, Wyde, Tetra bzw. Octa abspeichern kann? Byte: Alle Adressen geeignet Wyde: Adresse muss durch 2 teilbar sein (das letzte Adressbit muss sein) Tetra: Adresse muss durch 4 teilbar sein (die letzten beiden Adressbits müssen sein) Octa: Adresse muss durch 8 teilbar sein (die letzten drei Adressbits müssen sein) k) Geben Sie Befehle an, die ein neues globales Register anlegen und dieses mit Speicheradresse x2 initialisieren, an dieser Speicheradresse ein Bit breites Datenwort anlegen, das mit 4 initialisiert wird und über die Marke N angesprochen werden kann, an den darauffolgenden Speicheradressen zwei 4-dimensionale Vektoren wie folgt anlegen: Der erste Vektor soll über ADR_A ansprechbar sein und mit den Bit-Zahlen [, 2, 3, 4] initialisert werden; der zweite Vektor soll über ADR_A2 ansprechbar sein und mit den Bit-Zahlen [, 2, 3, 4] initialisiert werden. LOC GREG N OCTA 4 ADR_A OCTA OCTA 2 OCTA 3 OCTA 4 ADR_A2 OCTA OCTA 2 OCTA 3 OCTA 4

38 38 2 Assemblerprogrammierung MMIX Befehlsformat a) Wie breit (in Bit) ist das MMIX Befehlswort? 32 Bit b) Skizzieren Sie das MMIX Befehlswort und geben Sie den Inhalt jedes Bytes an Opcode. Operand = X 2. Operand = Y 3. Operand = Z c) In welchen Byte des Befehlsworts wird im Allgemeinen Information über die Quelloperanden bzw. über die Zieloperanden abgespeichert? Ziel = X; Quelle = Y, Z. d) Bei welchen Befehlen wird die Information über die Befehle anders abgespeichert? Wie? Befehle zum Speicher von Daten (Register Arbeitsspeicher) benützen X als Quellregister und Y und Z zur Adressierung des Ziels. e) Warum verwenden diese Befehle X, Y und Z anders als die übrigen MMIX-Befehle? Auf diese Weise wird die Hardware einfacher: Zur Adressierung eines Offsets (Z/$Z) zum Basisregister (Y) kann so dasselbe Rechenwerk verwendet werden wie zur Addition. Ebenso können die gleichen Verbindungsleitungen, die den Registerblock mit dem Rechenwerk verbinden, verwendet werden. f) Was ist ein Direktoperand? Ein Direktoperand ist ein Operand der direkt im Befehlswort steht. Nachfolgende Abbildung zeigt die Codierung der MMIX-Opcodes sowie die zur Befehlsausführung benötigte Zeit.:

39 2.2 MMIX Architektur 39! x.. x.. x2.. x3.. x4.. x5.. x6.. x7.. x8.. x9.. xa.. xb.. xc.. xd.. xe.. xf..! x.. x.. x..2 x..3 x..4 x..5 x..6 x..7 TRAP 5ν FCMP ν FUN ν FEQL ν FADD 4ν FIX 4ν FSUB 4ν FIXU 4ν FLOT[I] 4ν FLOTU[I] 4ν SFLOT[I] 4ν SFLOTU[I] 4ν FMUL 4ν FCMPE 4ν FUNE ν FEQLE 4ν FDIV 4ν FSQRT 4ν FREM 4ν FINT 4ν MUL[I] ν MULU[I] ν DIV[I] 6ν DIVU[I] 6ν ADD[I] ν 2ADDU[I] ν CMP[I] ν SL[I] ν BN[B] ν+π BNN[B] ν+π PBN[B] 3ν-π PBNN[B] 3ν-π CSN[I] ν ADDU[I] ν 4ADDU[I] ν CMPU[I] ν SLU[I] ν BZ[B] ν+π BNZ[B] ν+π PBZ[B] 3ν-π PBNZ[B] 3ν-π CSZ[I] ν SUB[I] ν 8ADDU[I] ν NEG[I] ν SR[I] ν BP[B] ν+π BNP[B] ν+π PBP[B] 3ν-π PBNP[B] 3ν-π CSP[I] ν SUBU[I] ν 6ADDU[I] ν NEGU[I] ν SRU[I]ν BOD[B] ν+π BEV[B] ν+π PBOD[B] 3ν-π PBEV[B] 3ν-π CSOD[I] ν CSNN[I] ν ZSN[I] ν CSNZ[I] ν ZSZ[I] ν CSNP[I] ν ZSP[I] ν CSEV[I] ν ZSOD[I] ν ZSNN[I] ν ZSNZ[I] ν ZSNP[I] ν ZSEV[I] ν LDB[I] µ+ν LDBU[I] µ+ν LDW[I] µ+ν LDWU[I] µ+ν LDT[I] µ+ν LDTU[I] µ+ν LDO[I] µ+ν LDOU[I] µ+ν LDSF[I] µ+ν LDHT[I] µ+ν CSWAP[I] 2µ+2ν LDUNC[I] µ+ν LDVTS[I] ν PRELD[I] ν PREGO[I] ν GO[I] 3ν STB[I] µ+ν STBU[I] µ+ν STW[I] µ+ν STWU[I] µ+ν STT[I] µ+ν STTU[I] µ+ν STO[I] µ+ν STOU[I] µ+ν STSF[I] µ+ν STHT[I] µ+ν STCO[I] µ+ν STUNC[I] µ+ν SYNCD[I] ν PREST[I] ν SYNCID[I] ν PUSHGO[I] 3ν OR[I] ν ORN[I] ν NOR[I] ν XOR[I] ν AND[I] ν ANDN[I] ν NAND[I] ν NXOR[I] ν BDIF[I] ν WDIF[I] ν TDIF[I] ν ODIF[I] ν MUX[I] ν SADD[I] ν MOR[I] ν MXOR[I] ν SETH ν SETMH ν SETML ν SETL ν INCH ν INCHM ν INCML ν INCL ν ORH ν ORMH ν ORML ν ORL ν ANDNH ν ANDNMH ν ANDNML ν ANDNL ν JMP[B] ν PUSHJ[B] ν GETA[B] ν PUT[I] ν POP 3ν RESUME 5ν [UN]SAVE 2µ+ν SYNC ν SWYM ν GET ν TRIP 5ν x..8 x..9 x..a x..b x..c x..d x..e x..f x.. x.. x2.. x3.. x4.. x5.. x6.. x7.. x8.. x9.. xa.. xb.. xc.. xd.. xe.. xf..! g) Was bedeutet ν? ν bedeutet Takt. Steht bei einem Befehl ν, so braucht dieser Befehl Takt zur Ausführung. Steht bei einem Befehl 4ν, so braucht dieser Befehl 4 Takte zur Ausführung. h) Was bedeutet π? π bedeutet 2 ν = 2 Takte, falls gesprungen wird, und ν = Takte, falls nicht gesprungen wird.

40 4 2 Assemblerprogrammierung i) Wieviele Takte benötigt der BZ-Befehl, wenn gesprungen wird? ν + π = ν + 2ν = 3ν 3 Takte j) Wieviele Takte benötigt der BZ-Befehl, wenn nicht gesprungen wird? ν + π = ν + ν = ν Takt k) Wieviele Takte benötigt der PBZ-Befehl, wenn gesprungen wird? 3ν π = 3ν 2ν = ν Takt l) Wieviele Takte benötigt der PBZ-Befehl, wenn nicht gesprungen wird? 3ν π = 3ν ν = 3ν 3 Takte m) Was bedeutet µ? µ entspricht der Anzahl der Takte, die für einen Speicherzugriff benötigt werden.

41 2.2 MMIX Architektur 4 n) Wie kann man mit dieser Tabelle einen MMIX-Opcode ermitteln? Befehl suchen Doppelzeile ermitteln, in der der Befehl steht An der Seite der Tabelle das obere Nibble (= die oberen 4 Bits) des Opcodes ablesen, z.b. ADD x2 Prüfen, ob der Befehl im oberen oder im unteren Teil der Doppelzeile steht Steht der Befehl im oberen Teil der Doppelzeile, kann man das untere Nibble (= die unteren 4 Bits) des Opcodes an der ersten Tabellenzeile ablesen, z.b. ADD x.. oder x.. Steht der Befehl im unteren Teil der Doppelzeile, kann man das untere NIbble (=die unteren 4 Bits) des Opcodes an der untersten Tabellenzeile ablesen, z.b. 2ADDU x..8 oder x..9 Anschließend muss nur noch unterschieden werden, ob es sich um die linke oder die rechte Variante des Befehls handelt, beispielsweise ob man in der oberen Zeile x.. oder x.. auswählen muss oder ob man in der unteren Zeile x..8 oder x..9 auswählen muss. Dazu wird der in der Tabelle nach dem Befehlsnamen in Klammern stehende Buchstabe verwendet; I bedeutet immediate, d.h. Direktoperand; Beispiel: Bei ADD $,$2,$3 wird ADD mit x2 codiert, bei ADD $,$2,3 mit x2 B bedeutet backward, d.h. Rückwärtssprung; erhöht sich bei einem Sprung die Adresse, wird der linke Zahlenwert verwendet (Vorwärtssprung); verringert sich bei einem Sprung die Adresse, wird der rechte Zahlenwert verwendet (Rückwertssprung)

42 42 2 Assemblerprogrammierung o) Geben Sie das 32 Bit breite Befehlswort des Befehls SL $,$2,3 an. x3923 p) Welcher Befehl benötigt die längste Zeit zur Ausführung, wenn man von Speicherbefehlen absieht? Der Befehl DIV (Division von Festkommazahlen). q) Wieviele Taktzyklen benötigen die meisten Befehlen zur Ausführung? Die meisten Befehle können innerhalb von ν, d.h. innerhalb eines Taktes ausgeführt werden. r) Was ist der Opcode des JMP-Befehls beim Vorwärts- bzw. beim Rückwärtssprung? Vorwärts: xf; Rückwärts: xf. Betrachten Sie die folgenden Befehle: LOC Data_Segment A OCTA a IS $ b IS $2 LOC # Main LDB a,a Start SUB a,a, OR a,a, BZ a,end JMP Start TRAP,, s) Bestimmen Sie das 32 Bit breite Befehlswort des Befehls JMP Start. xffffffd. (3 Befehle zurückspringen; FFFD ist -3 im 2er-Komplement)

43 2.3 MMIX Befehle MMIX Befehle Definitionen Wort w b ist ein Wort der Länge b Byte. wx b repräsentiert Bit Nr. x im Datenwort w b, wobei das niederwertigste Bit in w b an Bitposition x = liegt. wx...y b meint Bits x...y des Datenworts w b. Befehlswort Sei ι ein 32 Bit breites MMIX Befehlswort. X = ι Y = ι Z = ι 7... YZ = ι 5... XY = ι XYZ = ι Allzweckregister Der MMIX-Prozessor verfügt über 256 Allzweckregister, die mit,, durchnummeriert werden. Zur Adressierung eines Allzweckregisters im Befehlswort wird die als vorzeichenlose 8 Bit breite Zahl codierte Registernummer verwendet. Beispiel: Register 5 wird als x5 bzw. als Bitkombination codiert. $x, x 255 entspricht der Bitkombination, die in Register x gespeichert ist. $X ist die Bitkombination, die in dem durch Bits des Befehlsworts adressierten Register gespeichert ist. Beispiel: Befehlswort ist x ; Bits extrahieren x34 (= Bitkombination ) = Dezimal 52 Im Falle des Befehlsworts x meint $X den Wert, der in Register 52 gespeichert ist. $Y ist die Bitkombination, die in dem durch Bits des Befehlsworts adressierten Register gespeichert ist. $Z ist die Bitkombination, die in dem durch Bits 7... des Befehlsworts adressierten Register gespeichert ist.

44 44 2 Assemblerprogrammierung Spezialregister Spezialregister werden im Befehlswort wie folgt codiert: rb: x rc: x8 rq: x rw: x8 rd: x rn: x9 ru: x rx: x9 re: x2 ro: xa rv: x2 ry: xa rh: x3 rs: xb rg: x3 rz: xb rj: x4 ri: xc rl: x4 rww: xc rm: x5 rt: xd ra: x5 rxx: xd rr: x6 rtt: xe rf: x6 ryy: xe rbb: x7 rk: xf rp: x7 rzz: xf Arbeitsspeicher M ist der Arbeitsspeicher des MMIX Prozessors (M = memory). M [x] ist das an Adresse x gespeicherte Byte. M 2 [x] ist das an Adresse x & ( 2) gespeicherte Wyde. M 3 [x] ist das an Adresse x & ( 4) gespeicherte Tetra. M 4 [x] ist das an Adresse x & ( 8) gespeicherte Octa. Die Symbole ι, X, Y, Z, $X, $Y, $Z, $, $,..., M [...], M 2 [...],... repräsentieren Bitmuster. Ein Zahlenwert entsteht erst durch entsprechende Interpretation des Bitmusters (z.b. vorzeichenlose Festkommazahl,...).

45 2.3 MMIX Befehle 45 Operationen x y: Weise x den Wert y zu x y: Ausdruck x ist äquivalent zum Ausdruck y x y: Wenn x, dann y x y: Logische operation x ODER y x = y: Vergleich ob x den gleichen Wert hat wie y; liefert wahr (d.h. ), wenn x den selben Wert hat wie y, sonst falsch (d.h. ) x y: Schiebe x um y Stellen nach links; fülle frei werdende Bitstellen mit auf x u y: Schiebe x um y Bitstellen nach rechts; fülle frei werdende Bitstellen mit auf x s y: Schiebe x um y Bitstellen nach rechts; fülle frei werdende Bitstellen mit dem Wert des Vorzeichenbits (MSB) auf. x % y: Rest der Festkomma-Division x/y. x: Invertiere alle Bits von x, d.h. berechne das er-komplement x & y: Bitweise UND-Verknüpfung von x und y x y: Bitweise ODER-Verknüpfung von x und y x y: Bitweise XOR-Verknüpfung von x und y Umwandlung Festkommazahl Gleitkommazahl f 32 (w 4 ): Nimmt an, dass das vier Byte breite Datenwort w 4 im 32 Bit IEEE 754 Gleitkommaformat codiert ist und gibt den entsprechenden Zahlenwert zurück (z.b.,75). f 32 (x): Codiert die Zahl x als 32 Bit breite Gleitkommazahl und gibt das entsprechende 32 Bit breite Bitmuster zurück. f (w 8 ): Nimmt an, dass das acht Byte breite Datenwort w 8 im Bit IEEE 754 Gleitkommaformat codiert ist und gibt den entsprechenden Zahlenwert zurück (z.b.,75). f (x): Codiert die Zahl x als Bit breite Gleitkommazahl und gibt das entsprechende Bit breite Bitmuster zurück. r(x): Rundet eine reelle Zahl gemäß dem in Register ra ausgewählten Rundungsmodus auf eine ganze Zahl.

46 46 2 Assemblerprogrammierung (De-) Codierung von Festkommazahlen s(w b ): Nimmt an, dass das b Byte breite Wort w b im 2er-Komplement codiert ist und gibt den entsprechenden Wert zurück (z.b.,, -3) u(w b ): Nimmt an, dass das b Byte breite Wort w b als vorzeichenlose Festkommazahl codiert ist und gibt den entsprechenden Wert zurück (z.b., ) s b (x): Gibt das b Bit breite im 2er-Komplement codiert Bitmuster zurück das dem Wert x entspricht. u b (x): Gibt das b Bit breite Bitmuster (vorzeichenlose Codierung) zurück das dem Wert x, x, entspricht. Zusammenfassen von in Registern gespeicherten Werten Wenn $X das Bit breite in Register X gespeicherte Bitmuster ist und $Y das Bit breite in Register Y gespeicherte Bitmuster ist, dann ist $X$Y das 28 Bit breite Bitmuster das aus der Aneinanderreihung der beiden Bitmuster $X und $Y entsteht. ($X$Y) = $X und ($X$Y) = $Y. Programm beenden TRAP,Halt, beendet ein MMIX-Programm und gibt die Kontrolle zurück an das Betriebssystem.

47 2.3 MMIX Befehle 47 Lade- und Speicherbefehle Daten vom Speicher in ein Register laden Befehl Operanden Name/Aktion Definition LDB LDBU LDW LDWU LDT LDTU LDO LDOU $X,$Y,$Z Load byte $X s (s(m [u($y) + u($z)])) $X,$Y,Z Load byte immediate $X s (s(m [u($y) + u(z)])) $X,$Y,$Z Load byte unsigned $X u (u(m [u($y) + u($z)])) $X,$Y,Z Load byte uns. immed. $X u (u(m [u($y) + u(z)])) $X,$Y,$Z Load wyde $X s (s(m 2[u($Y) + u($z)])) $X,$Y,Z Load wyde immediate $X s (s(m 2[u($Y) + u(z)])) $X,$Y,$Z Load wyde unsigned $X u (u(m 2[u($Y) + u($z)])) $X,$Y,Z Load wyde uns. immed. $X u (u(m 2[u($Y) + u(z)])) $X,$Y,$Z Load tetra $X s (s(m 4[u($Y) + u($z)])) $X,$Y,Z Load tetra immediate $X s (s(m 4[u($Y) + u(z)])) $X,$Y,$Z Load tetra unsigned $X u (u(m 4[u($Y) + u($z)])) $X,$Y,Z Load tetra uns. immed. $X u (u(m 4[u($Y) + u(z)])) $X,$Y,$Z Load octa $X M 8 [u($y) + u($z)] $X,$Y,Z Load octa immediate $X M 8 [u($y) + u(z)] $X,$Y,$Z Load octa unsigned $X M 8 [u($y) + u($z)] $X,$Y,Z Load octa uns. immed. $X M 8 [u($y) + u(z)]

48 48 2 Assemblerprogrammierung a) Welche Wortgrößen kann der MMIX vom Speicher in Register laden? Die MMIX-Ladebefehle unterstützen Wortbreiten von 8, 6, 32 und Bit. b) Was ist der Unterschied zwischen vorzeichenbehaftetem (signed) und vorzeichenlosen (unsigned) Laden? Vorzeichenbehaftet: Wenn die Breite des zu ladenden Datenwort kleiner ist als die Registerwortbreite (d.h. 8, 6 oder 32 Bit breites Datenwort in Bit breites Register laden), werden die oberen Bits des Registers mit dem MSB (Most Significant Bit) des zu ladenden Wortes aufgefüllt. Vorzeichenlos: Wenn die Breite des zu ladenden Datenworts kleiner ist als die Registerwortbreite, werden die oberen Bits des Registers mit aufgefüllt. c) Warum muss man zwischen vorzeichenlosem und vorzeichenbehaftetem Laden unterscheiden? Vor vorzeichenlosen Zahlen hat man implizit unendlich viele -er stehen, vor vorzeichenbehafteten Zahlen entweder unendlich viele -er (positive Zahl) oder unendlich viele -er (negative Zahl). Wenn man vor eine vorzeichenbehaftete, negative Zahl -er schreibt (was bei den vorzeichenlosen Ladebefehlen der Fall wäre) würde aus der negativen Zahl plötzlich eine andere (falsche) positive Zahl werden ( Fehler). d) Wie unterscheiden sich die Namen der vorzeichenlosen und vorzeichenbehafteten Ladebefehle? Bei vorzeichenlosen Ladebefehlen wird ein zusätzliches U an den Namen angefügt.

49 2.3 MMIX Befehle 49 e) Wie unterscheiden sich die Opcodes von vorzeichenlosen und vorzeichenbehafteten Ladebefehlen? Opcode vorzeichenlos = Opcode vorzeichenbehaftet + 2 f) Nehmen Sie an, dass die vorzeichenbehaftete 8 Bit breite Zahl - mit dem LDB-Befehl in ein Allzweckregister geladen wurde und geben Sie alle Bits des Allzweckregisters in hexadezimaler Notation aus. als positive Festkommazahl: er-komplement: 2er-Komplement: Hexadezimal: xc Auf Bit aufgefüllt: xffffffffffffffc g) Welcher Wert würde im Allzweckregister stehen, wenn die Zahl - versehentlich mit einem LDBU-Befehl statt mit einem LDB-Befehl in das Allzweckregister geladen worden wäre? Geben Sie den Wert in der Basis an. xc = 28 + = 92 h) Wie können die Ladebefehle Bit breite Speicheradressen adressieren, obwohl im Befehlswort nur 6 Bit zur Darstellung der Adresse verfügbar sind? Von den 6 Bit (Y und Z) werden 8 Bit (Y) verwendet um ein Allzweckregister zu adressieren, das eine Bit breite Basisadresse enthält. Mit den anderen 8 Bit (Z) wird der Offset bestimmt, der zur Basisadresse hinzuaddiert wird. Abhängig vom Opcode des Ladebefehls ist dieser Offset entweder der Wert eines Allzweckregisters, das mit Z adressiert wird, oder der Direktoperand u(z).

50 5 2 Assemblerprogrammierung i) Zeichnen Sie in die nachfolgende Darstellung ein, wie die Bit breite Adresse generiert wird. Spezial- Register Allzweck- Register Speicher Laden Bit Quell-/Ziel-Register OP X Y Z 32 Bit Befehlswort 8, 6, 24 Bit Basis-Adress-Register Offset Rechen- werk (ALU) Bit 8, 6, 32, Bit Speichern Bit Adresse j) Vervollständigen Sie den nachfolgenden MMIX-Code um die Bereitstellung und Initialisierung eines Basisregisters zur Adressierung von A, B und C. LOC #2 A BYTE B OCTA #FFFF C OCTA LOC # Main LDO $,B... k) In welches Befehlswort übersetzt der MMIX-Assembler den Befehl LDO $,B? x8dfe8.

51 2.3 MMIX Befehle 5 l) Tragen Sie in nachfolgende Tabelle den Speicherinhalt ein, der sich nach Ausführung der angegebenen MMIX-Befehle im Falle von Big- und Little-Endian- Adressierung ergibt. LOC Data_Segment BYTE TETRA # TETRA #ABCDEF BYTE #77 WYDE #23 Adresse Niederwert. vier Adress-Bits Big Endian Little Endian x2 x x x2?? x22?? x23?? x24 x23 x89 x25 x45 x67 x26 x67 x45 x27 x89 x23 x28 xab x x29 xcd xef x2a xef xcd x2b x xab x2c x77 x77 x2d?? x2e x x23 x2f x23 x

52 52 2 Assemblerprogrammierung m) Nehmen Sie die gezeigte Speicherbelegung an und geben Sie hexadezimal alle Bit des Registers nach Ausführung der folgenden Befehle an: LDB $,$254,: x LDB $,$254,4: x 23 LDB $,$254,9: LDBU $,$254,9: xffff FFFF FFFF FFCD x CD n) Nehmen Sie die gezeigte Speicherbelegung an und geben Sie hexadezimal alle Bit des Registers nach Ausführung der folgenden Befehle an: LDT $,$254,4: x LDT $,$254,5: x LDT $,$254,9: LDTU $,$254,9: xffff FFFF ABCD EF x ABCD EF o) Nehmen Sie die gezeigte Speicherbelegung an und geben Sie hexadezimal alle Bit des Registers nach Ausführung der folgenden Befehle an: LDO $,$254,: x?????? LDO $,$254,: x?????? LDO $,$254,2: xabcd EF 77?? 23

53 2.3 MMIX Befehle 53 Adressen in ein Register laden Befehl Operanden Name/Aktion Definition LDA $X,$Y,$Z Get address (absolute) $X u (u($y) + u($z)) $X,$Y,Z Get address immed. (absolute) $X u (u($y) + u(z)) GETA $X,YZ Get address (relativ) $X u (u(@) + 4 s(yz)) a) Was ist der Unterschied zwischen dem Befehl LDA und den Ladebefehlen LDB,...? Die Ladebefehle LDB,... laden Datenworte vom Speicher in ein Register. Der Befehl LDA lädt eine Adresse in ein Register. Nehmen Sie die folgenden Befehle an: LOC Data_Segment A BYTE #2 LOC # Main LDA $,A TRAP,Halt, b) In welches hexadezimale Befehlswort wird der Befehl LDA $,A übersetzt? Warum? x23fe. Der Assembler löst die Marke A in $254 + auf und ersetzt den Befehl LDA $,A durch ADDUI $,$254,. Der Befehl ADDUI addiert den Wert im Basisregister 254 und den Offset und speichert das Ergebnis in Register. Damit enthält Register dann die Adresse der Marke A. c) In welches hexadezimale Befehlswort sollte der Befehl LDA $,Main übersetzt werden? x23ff

54 54 2 Assemblerprogrammierung! x.. x.. x2.. x3.. x4.. x5.. x6.. x7.. x8.. x9.. xa.. xb.. xc.. xd.. xe.. xf..! x.. x.. x..2 x..3 x..4 x..5 x..6 x..7 TRAP 5ν FCMP ν FUN ν FEQL ν FADD 4ν FIX 4ν FSUB 4ν FIXU 4ν FLOT[I] 4ν FLOTU[I] 4ν SFLOT[I] 4ν SFLOTU[I] 4ν FMUL 4ν FCMPE 4ν FUNE ν FEQLE 4ν FDIV 4ν FSQRT 4ν FREM 4ν FINT 4ν MUL[I] ν MULU[I] ν DIV[I] 6ν DIVU[I] 6ν ADD[I] ν 2ADDU[I] ν CMP[I] ν SL[I] ν BN[B] ν+π BNN[B] ν+π PBN[B] 3ν-π PBNN[B] 3ν-π CSN[I] ν ADDU[I] ν 4ADDU[I] ν CMPU[I] ν SLU[I] ν BZ[B] ν+π BNZ[B] ν+π PBZ[B] 3ν-π PBNZ[B] 3ν-π CSZ[I] ν SUB[I] ν 8ADDU[I] ν NEG[I] ν SR[I] ν BP[B] ν+π BNP[B] ν+π PBP[B] 3ν-π PBNP[B] 3ν-π CSP[I] ν SUBU[I] ν 6ADDU[I] ν NEGU[I] ν SRU[I]ν BOD[B] ν+π BEV[B] ν+π PBOD[B] 3ν-π PBEV[B] 3ν-π CSOD[I] ν CSNN[I] ν ZSN[I] ν CSNZ[I] ν ZSZ[I] ν CSNP[I] ν ZSP[I] ν CSEV[I] ν ZSOD[I] ν ZSNN[I] ν ZSNZ[I] ν ZSNP[I] ν ZSEV[I] ν LDB[I] µ+ν LDBU[I] µ+ν LDW[I] µ+ν LDWU[I] µ+ν LDT[I] µ+ν LDTU[I] µ+ν LDO[I] µ+ν LDOU[I] µ+ν LDSF[I] µ+ν LDHT[I] µ+ν CSWAP[I] 2µ+2ν LDUNC[I] µ+ν LDVTS[I] ν PRELD[I] ν PREGO[I] ν GO[I] 3ν STB[I] µ+ν STBU[I] µ+ν STW[I] µ+ν STWU[I] µ+ν STT[I] µ+ν STTU[I] µ+ν STO[I] µ+ν STOU[I] µ+ν STSF[I] µ+ν STHT[I] µ+ν STCO[I] µ+ν STUNC[I] µ+ν SYNCD[I] ν PREST[I] ν SYNCID[I] ν PUSHGO[I] 3ν OR[I] ν ORN[I] ν NOR[I] ν XOR[I] ν AND[I] ν ANDN[I] ν NAND[I] ν NXOR[I] ν BDIF[I] ν WDIF[I] ν TDIF[I] ν ODIF[I] ν MUX[I] ν SADD[I] ν MOR[I] ν MXOR[I] ν SETH ν SETMH ν SETML ν SETL ν INCH ν INCHM ν INCML ν INCL ν ORH ν ORMH ν ORML ν ORL ν ANDNH ν ANDNMH ν ANDNML ν ANDNL ν JMP[B] ν PUSHJ[B] ν GETA[B] ν PUT[I] ν POP 3ν RESUME 5ν [UN]SAVE 2µ+ν SYNC ν SWYM ν GET ν TRIP 5ν x..8 x..9 x..a x..b x..c x..d x..e x..f x.. x.. x2.. x3.. x4.. x5.. x6.. x7.. x8.. x9.. xa.. xb.. xc.. xd.. xe.. xf..! Gegeben sind die folgenden Befehle: LOC Data_Segment A BYTE #2 LOC # Main LDA $,A GETA $,Main TRAP,Halt, d) In welches 32 Bit breite Befehlswort wird der Befehl GETA $,Main übersetzt? xf5ffff

55 2.3 MMIX Befehle 55 Daten vom Register in den Speicher schreiben (speichern) Befehl Operanden Name/Aktion Definition STB $X,$Y,$Z $X,$Y,Z Store byte; with overflow Store byte immed.; ovf. M [u($y) + u($z)] ($X) 7... s($x) 2 7 ra ra u (26 ) s($x) < 2 7 ra ra u (26 ) M [u($y) + u(z)] ($X) 7... s($x) 2 7 ra ra u (26 ) s($x) < 2 7 ra ra u (26 ) STBU $X,$Y,$Z Store byte unsigned M [u($y) + u(z)] ($X) 7... $X,$Y,Z Store byte uns. imm. M [u($y) + u(z)] ($X) 7... STW $X,$Y,$Z $X,$Y,Z Store wyde; with overflow Store wyde immed.; ovf. M 2 [u($y) + u(z)] ($X) 5... s($x) 2 5 ra ra u (26 ) s($x) < 2 5 ra ra u (26 ) M 2 [u($y) + u(z)] ($X) 5... s($x) 2 5 ra ra u (26 ) s($x) < 2 5 ra ra u (26 ) STWU $X,$Y,$Z Store wyde unsigned M 2 [u($y) + u(z)] ($X) 5... $X,$Y,Z Store wyde uns. imm. M 2 [u($y) + u(z)] ($X) 5... STT $X,$Y,$Z $X,$Y,Z Store tetra; with overflow Store tetra immed.; ovf. M 4 [u($y) + u(z)] ($X) 3... s($x) 2 3 ra ra u (26 ) s($x) < 2 3 ra ra u (26 ) M 4 [u($y) + u(z)] ($X) 3... s($x) 2 3 ra ra u (26 ) s($x) < 2 3 ra ra u (26 ) STTU STO STOU $X,$Y,$Z Store byte unsigned M 4 [u($y) + u(z)] ($X) 3... $X,$Y,Z Store byte uns. imm. M 4 [u($y) + u(z)] ($X) 3... $X,$Y,$Z Store octa M 8 [u($y) + u(z)] $X $X,$Y,Z Store octa immediate M 8 [u($y) + u(z)] $X $X,$Y,$Z Store octa unsigned M 8 [u($y) + u(z)] $X $X,$Y,Z Store octa uns. imm. M 8 [u($y) + u(z)] $X

56 56 2 Assemblerprogrammierung a) Wie unterscheidet sich die Verwendung von X, Y und Z bei Speicher-Befehle von derjenigen aller anderen MMIX-Befehle? Die Speicher-Befehle des MMIX verwenden Y und Z als Ziel und X als Quelle. Alle anderen MMIX-Befehle verwenden Y und Z als Quelle und X als Ziel. b) Was ist beim MMIX der Unterschied zwischen vorzeichenbehaftetem und vorzeichenlosem Speichern? Die vorzeichenbehafteten Speicherbefehle zeigen einen Festkomma- Überlauf an, wenn die abgespeicherten Werte bei STB kleiner als -28 oder größer als 27, bei STW kleiner als oder größer als , bei STT kleiner als 2,47,483,8 oder größer als 2,47,483,7 sind. Die vorzeichenlosen Speicherbefehle erzeugen keinen Überlauf. STO und STOU sind äquivalent. In folgendem Programmcode wird XXX XXXXXXXX als Platzhalter für einen einzelnen Befehl verwendet: LOC Data_Segment A OCTA #FFFF FFFF FFFF FFFF B TETRA # LOC # Main LDTU $,B XXX XXXXXXXX TRAP,Halt,

57 2.3 MMIX Befehle 57 c) Geben Sie für das oben gezeigte Programm den Inhalt des Bit breiten Wortes an, welches durch die Marke A adressiert wird, wenn XXX XXXXXXXX durch folgende Befehle ersetzt wird: STB $,A: STW $,A: STWU $,A: STT $,A: STTU $,A: x2ff FFFF FFFF FFFF x432 FFFF FFFF FFFF x432 FFFF FFFF FFFF x FFFF FFFF x FFFF FFFF STO $,A: x STB $,$254,5: STW $,$254,: xffff FFFF FF2 FFFF x432 FFFF FFFF FFFF STT $,$254,6: xffff FFFF ST $,$254,5: x d) Geben Sie hexadezimal das 32 Bit breite Befehlswort des Befehls STBU $,A an, wenn dieser in obigem Programmcode den Platzhalter XXX XXXXXXXX ersetzt. xa3fe.

58 58 2 Assemblerprogrammierung e) Geben Sie die Befehle an, mit denen Sie an Adresse x2 ein Bit breites Datum anlegen, dieses Datum über die Marke Data ansprechbar machen und das Datenwort mit x initialisieren; an Adresse x ein Programm beginnen und das an Adresse Data gespeicherte Datenwort in Register einlesen, Bits 7... des Registers an Adresse Data schreiben, Bits 7... des Registers an Adresse x2 2 schreiben, Bits 3... des Registers an Adresse x2 A schreiben. LOC Data_Segement Data OCTA # LOC # Main LDO $,Data STB $,Data LDA $2,Data STB $,$2,2 STT $,$2,#A

59 2.3 MMIX Befehle 59 Gegeben ist der folgende Programmcode: LOC Data_Segement Label OCTA # LOC # Main LDO $,Label STB $,Label LDA $2,Label STB $,$2,2 STT $,$2, f) Zeichnen Sie byteweise den Inhalt des Speichers von Adresse x2... bis x2... F, der sich nach Ausführung des o.g. Programms ergibt. x2 x78 x2 x x2 2 x78 x2 3 x x2 4 x2 x2 5 x34 x2 6 x56 x2 7 x78 x2 8 x2 x2 9 x34 x2 A x56 x2 B x78 x2 C? x2 D? x2 E? x2 F? $: $2: 2

T e) Wie unterscheiden sich die Opcodes von vorzeichenlosen und vorzeichenbehafteten Ladebefehlen?

T e) Wie unterscheiden sich die Opcodes von vorzeichenlosen und vorzeichenbehafteten Ladebefehlen? - 282 6 MMIX-Prozessor T e) Wie unterscheiden sich die Opcodes von vorzeichenlosen und vorzeichenbehafteten Ladebefehlen? f) Nehmen Sie an, dass die vorzeichenbehaftete 8 Bit breite Zahl -64 mit dem LDB-Befehl

Mehr

0x01? 0x01. 0x12 0x34. 0x34 0x12 0xBC 0x00 0x00 0x9A 0x00 0x78. 0x00 0x56. 0x56 0x00 0x78 0x00 0x9A 0x00 0xBC 0x00. 6.

0x01? 0x01. 0x12 0x34. 0x34 0x12 0xBC 0x00 0x00 0x9A 0x00 0x78. 0x00 0x56. 0x56 0x00 0x78 0x00 0x9A 0x00 0xBC 0x00. 6. 6.5 MMIX Befehle 287 T q) Tragen Sie in nachfolgende Tabelle den Speicherinhalt ein, der sich nach Ausführung der angegebenen MMIX-Befehle im Falle von Big- und Little-Endian- Adressierung ergeben würde.

Mehr

6.5 MMIX Befehle 287. LOC $254 BYTE 1 WYDE #1234 OCTA #56789ABC 0x x x

6.5 MMIX Befehle 287. LOC  $254 BYTE 1 WYDE #1234 OCTA #56789ABC 0x x x 6.5 MMIX Befehle 287 T q) Tragen Sie in nachfolgende Tabelle den Speicherinhalt ein, der sich nach Ausführung der angegebenen MMIX-Befehle im Falle von Big- und Little-Endian- Adressierung ergeben würde.

Mehr

Übungsblätter zur Vorlesung IT-Systeme 1. 1 Zahldarstellung und Codierung

Übungsblätter zur Vorlesung IT-Systeme 1. 1 Zahldarstellung und Codierung Hochschule für angewandte Wissenschaften (FH) München Wintersemester 2009/2010 Fakultät für Informatik und Mathematik 11. Januar 2010 Prof. Dr. A. Böttcher Übungsblätter zur Vorlesung IT-Systeme 1 1 Zahldarstellung

Mehr

T a) Welche Wortgrößen kann der MMIX vom Speicher in Register laden? Die MMIX-Ladebefehle unterstützen Wortbreiten von 8, 16, 32 und 64 Bit.

T a) Welche Wortgrößen kann der MMIX vom Speicher in Register laden? Die MMIX-Ladebefehle unterstützen Wortbreiten von 8, 16, 32 und 64 Bit. 6.5 MMIX Befehle 265 T a) Welche Wortgrößen kann der MMIX vom Speicher in Register laden Die MMIX-Ladebefehle unterstützen Wortbreiten von 8, 16, 32 und 64 Bit. T b) Was ist der Unterschied zwischen vorzeichenbehaftetem

Mehr

276 6 MMIX-Prozessor. Befehl Operanden Name/Aktion Definition. $X,$Y,$Z Bitwise AND $X $Y & $Z $X,$Y,Z Bitwise AND immediate $X $Y & u64 0 ( u(z)) AND

276 6 MMIX-Prozessor. Befehl Operanden Name/Aktion Definition. $X,$Y,$Z Bitwise AND $X $Y & $Z $X,$Y,Z Bitwise AND immediate $X $Y & u64 0 ( u(z)) AND 276 6 MMIX-Prozessor Logische Operationen auf Bit-Ebene Befehl Operanden Name/Aktion Definition AND ANDN $X,$Y,$Z Bitwise AND $X $Y & $Z $X,$Y,Z Bitwise AND immediate $X $Y & u64 0 ( u(z)) $X,$Y,$Z Bitwise

Mehr

6.3 Speicher 233. Virtueller Speicher dreier Programme. realer Speicher Interrupt-Vektoren. Text-Segment.

6.3 Speicher 233. Virtueller Speicher dreier Programme. realer Speicher Interrupt-Vektoren. Text-Segment. 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,

Mehr

den Loader; der Loader ist derjenige Teil des Betriebssystems, der auszuführende Programme vom der Festplatte/SSD in den Speicher lädt

den Loader; der Loader ist derjenige Teil des Betriebssystems, der auszuführende Programme vom der Festplatte/SSD in den Speicher lädt 242 6 MMIX-Prozessor 64 MMIX-Programme MMIX-Programme bzw Assembler-Programme für den MMIX-Prozessor sind Quelltext- Dateien mit Befehlen für den MMIX-Prozessor; die vom MMIX unterstützen Befehle nennt

Mehr

q) Geben Sie Befehle an, die ein neues globales Register anlegen und dieses mit Speicheradresse 0x initialisieren,

q) Geben Sie Befehle an, die ein neues globales Register anlegen und dieses mit Speicheradresse 0x initialisieren, 6.4 MMIX-Programme 251 q) Geben Sie Befehle an, die ein neues globales Register anlegen und dieses mit Speicheradresse 0x2000000000000000 initialisieren, an dieser Speicheradresse ein Bit breites Datenwort

Mehr

Nachfolgende Tabelle übersetzt MMIX-Opcodes in diejenigen Zahlen, die im Befehlswort in den Bits abgelegt werden müssen.

Nachfolgende Tabelle übersetzt MMIX-Opcodes in diejenigen Zahlen, die im Befehlswort in den Bits abgelegt werden müssen. 256 6 MMIX-Prozessor Nachfolgende Tabelle übersetzt MMIX-Opcodes in diejenigen Zahlen, die im Befehlswort in den Bits 3124 abgelegt werden müssen! 0x0 0x1 0x2 0x3 0x4 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 TRAP

Mehr

T b) Wo findet man den Arbeitsspeicher in einem Computersystem? Auf dem Prozessor-Kern? Auf dem Mainboard? Als externes Gerät?

T b) Wo findet man den Arbeitsspeicher in einem Computersystem? Auf dem Prozessor-Kern? Auf dem Mainboard? Als externes Gerät? 234 6 MMIX-Prozessor Aufgaben Verständnis Speicher T a) Wozu verwendet ein Computer Arbeitsspeicher? T b) Wo findet man den Arbeitsspeicher in einem Computersystem? Auf dem Prozessor-Kern? Auf dem Mainboard?

Mehr

1 Aufgaben zu Wie funktioniert ein Computer?

1 Aufgaben zu Wie funktioniert ein Computer? 71 1 Aufgaben zu Wie funktioniert ein Computer? Netzteil a) Welche Spannungen werden von PC-Netzteilen bereitgestellt? 3.3 V, 5 V, 12 V, -5 V, -12 V. b) Warum können PC-Netzteile hohe Leistungen liefern,

Mehr

Aufgabenkatalog. Computersysteme 1 Dr. Michael Zwick. Technische Universität München

Aufgabenkatalog. Computersysteme 1 Dr. Michael Zwick. Technische Universität München Aufgabenkatalog Computersysteme 1 Dr. Michael Zwick Technische Universität München Inhalt 1 Komponenten eines Computer-Systems 5 Netzteil.................................... 5 Grafikkarten.................................

Mehr

6.3 Speicher 233. Virtueller Speicher dreier Programme. realer Speicher Interrupt-Vektoren. Text-Segment.

6.3 Speicher 233. Virtueller Speicher dreier Programme. realer Speicher Interrupt-Vektoren. Text-Segment. 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,

Mehr

q) Geben Sie Befehle an, die ein neues globales Register anlegen und dieses mit Speicheradresse 0x initialisieren,

q) Geben Sie Befehle an, die ein neues globales Register anlegen und dieses mit Speicheradresse 0x initialisieren, 6.4 MMIX-Programme 235 q) Geben Sie Befehle an, die ein neues globales Register anlegen und dieses mit Speicheradresse 0x2000000000000000 initialisieren, an dieser Speicheradresse ein Bit breites Datenwort

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

k) Wie kann man beim MMIX auf die Parameter zugreifen? $1 + 8 $

k) Wie kann man beim MMIX auf die Parameter zugreifen? $1 + 8 $ 63 Speicher 241 k) Wie kann man beim MMIX auf die Parameter zugreifen? $0 : arge $1 : argv $1 +0 Virtueller Speicher $1 + 8 $1 16 +,, ARGUED Argus argv IZJ - a) Wenn alle Programme an Adresse 0x100 beginnen

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

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

MMIX Assembler Programmierung. Computersysteme 1 Dr. Michael Zwick

MMIX Assembler Programmierung. Computersysteme 1 Dr. Michael Zwick MMIX Assembler Programmierung Computersysteme 1 Dr. Michael Zwick Zahldarstellung Festkommazahlen Vorzeichenlose Zahlen n Bit => 2 n verschiedene Werte darstellbar Wertebereich: 0... 2 n - 1 Kodierung:

Mehr

MMIX Assembler Programmierung Dr. Michael Zwick. Zahldarstellung

MMIX Assembler Programmierung Dr. Michael Zwick. Zahldarstellung MMIX Assembler Programmierung Dr. Michael Zwick Zahldarstellung Festkommazahlen Vorzeichenlose Zahlen n Bit => 2 n verschiedene Werte darstellbar Wertebereich: 0... 2 n - 1 Kodierung: 0... 000, 0... 001,

Mehr

Bachelorprüfung Modul Computertechnik

Bachelorprüfung Modul Computertechnik Prüfungsfähigkeit: Bachelorprüfung Modul Computertechnik Computersysteme 24.7.24 Hiermit bestätige ich, dass ich vor Prüfungsbeginn darüber in Kenntnis gesetzt wurde, dass ich im Falle einer plötzlich

Mehr

Aufgabenkatalog. Computersysteme 1 Dr. Michael Zwick. Technische Universität München

Aufgabenkatalog. Computersysteme 1 Dr. Michael Zwick. Technische Universität München Aufgabenkatalog Computersysteme 1 Dr. Michael Zwick Technische Universität München Inhalt 1 Komponenten eines Computer-Systems 5 Netzteil.................................... 5 Grafikkarten.................................

Mehr

q) Geben Sie Befehle an, die ein neues globales Register anlegen und dieses mit Speicheradresse 0x2000000000000000 initialisieren,

q) Geben Sie Befehle an, die ein neues globales Register anlegen und dieses mit Speicheradresse 0x2000000000000000 initialisieren, At AZOCTA 6.4 MMIX-Programme 235 q) Geben Sie Befehle an, die ein neues globales Register anlegen und dieses mit Speicheradresse 0x2000000000000000 initialisieren, an dieser Speicheradresse ein Bit breites

Mehr

GOP Computertechnik. Computersysteme

GOP Computertechnik. Computersysteme Prüfungsfähigkeit: Weitere Hinweise: - - - - - - - - GOP Computertechnik Computersysteme 3.7.2 Hiermit bestätige ich, dass ich vor Prüfungsbeginn darüber in Kenntnis gesetzt wurde, dass ich im Falle einer

Mehr

GOP Computertechnik. Computersysteme

GOP Computertechnik. Computersysteme Prüfungsfähigkeit: Weitere Hinweise: - - - - - - - - GOP Computertechnik Computersysteme 7.8.27 Hiermit bestätige ich, dass ich vor Prüfungsbeginn darüber in Kenntnis gesetzt wurde, dass ich im Falle einer

Mehr

GOP Computertechnik. Computersysteme Probeklausur 2

GOP Computertechnik. Computersysteme Probeklausur 2 Prüfungsfähigkeit: Weitere Hinweise: - - - - - - - - Die Prüfungsdauer beträgt 75 Minuten. Es sind keine Hilfsmittel erlaubt, auch keine Taschenrechner! Heftung nicht öffnen - keine Blätter abtrennen!

Mehr

GOP Computertechnik. Computersysteme

GOP Computertechnik. Computersysteme Prüfungsfähigkeit: Weitere Hinweise: - - - - - - - - GOP Computertechnik Computersysteme 22.7.26 Hiermit bestätige ich, dass ich vor Prüfungsbeginn darüber in Kenntnis gesetzt wurde, dass ich im Falle

Mehr

GOP Computertechnik. Computersysteme Probeklausur 2

GOP Computertechnik. Computersysteme Probeklausur 2 Prüfungsfähigkeit: Weitere Hinweise: - - - - - - - - Die Prüfungsdauer beträgt 75 Minuten. Es sind keine Hilfsmittel erlaubt, auch keine Taschenrechner! Heftung nicht öffnen - keine Blätter abtrennen!

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

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

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

GOP Computertechnik. Computersysteme Probeklausur 1

GOP Computertechnik. Computersysteme Probeklausur 1 Prüfungsfähigkeit: Weitere Hinweise: - - - - - - - - Die Prüfungsdauer beträgt 75 Minuten. Es sind keine Hilfsmittel erlaubt, auch keine Taschenrechner! Heftung nicht öffnen - keine Blätter abtrennen!

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

Bachelorprüfung Modul Computertechnik

Bachelorprüfung Modul Computertechnik Prüfungsfähigkeit: Bachelorprüfung Modul Computertechnik Computersysteme Probeklausur 2 Hiermit bestätige ich, dass ich vor Prüfungsbeginn darüber in Kenntnis gesetzt wurde, dass ich im Falle einer plötzlich

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

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

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

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

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

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

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

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 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

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

Vorzeichenbehaftete Festkommazahlen

Vorzeichenbehaftete Festkommazahlen 106 2 Darstellung von Zahlen und Zeichen Vorzeichenbehaftete Festkommazahlen Es gibt verschiedene Möglichkeiten, binäre vorzeichenbehaftete Festkommazahlen darzustellen: Vorzeichen und Betrag EinerKomplement

Mehr

2.4 Codierung von Festkommazahlen c) Wie lässt sich im Zweier-Komplement ein Überlauf feststellen? neg. pos.

2.4 Codierung von Festkommazahlen c) Wie lässt sich im Zweier-Komplement ein Überlauf feststellen? neg. pos. 24 Codierung von Festkommazahlen 115 Aufgaben a) Codieren Sie für n 8 und r 0 die folgenden Zahlen binär im Zweier Komplement EC +10 : 00001010 11110101 Dezimal Binär 10 1111 0110 + 0 ch 1111011 0 20 00000000

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

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

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

2 Darstellung von Zahlen und Zeichen

2 Darstellung von Zahlen und Zeichen 21 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, dh Y = f (X

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

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

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

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

Informationsmenge. Maßeinheit: 1 Bit. 1 Byte. Umrechnungen: Informationsmenge zur Beantwortung einer Binärfrage kleinstmögliche Informationseinheit

Informationsmenge. Maßeinheit: 1 Bit. 1 Byte. Umrechnungen: Informationsmenge zur Beantwortung einer Binärfrage kleinstmögliche Informationseinheit Informationsmenge Maßeinheit: 1 Bit Informationsmenge zur Beantwortung einer Binärfrage kleinstmögliche Informationseinheit 1 Byte Zusammenfassung von 8 Bit, kleinste Speichereinheit im Computer, liefert

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

MMIX - Crashkurs. TI-II Rechnerarchitektur

MMIX - Crashkurs. TI-II Rechnerarchitektur MMIX - Crashkurs TI-II Rechnerarchitektur MMIX Einführung Aussprache: em-micks MMIX ist ein virtueller Prozessor, mit eigener Assemblersprache Um MMIX-Programme assemblieren und ausführen zu können, benötigt

Mehr

2 Initialisierung clk_mkand= clk_produkt= multiplexer= init/>>1= 6 Schieben clk_mkand= clk_produkt= multiplexer= init/>>1=

2 Initialisierung clk_mkand= clk_produkt= multiplexer= init/>>1= 6 Schieben clk_mkand= clk_produkt= multiplexer= init/>>1= Arithmetische Schaltungen c) Vervollständigen Sie nachfolgend abgebildeten Zustands-Automaten so, dass er den Multiplizierer wie gewünscht steuert. Nehmen Sie an, dass Sie zur Detektion des Schleifen-Abbruchs

Mehr

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

4.3 Assembler. Assembler als leicht verständliche hardwarenahe Sprache Prozessor-Datenpfad 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

Mehr

a) Aus welchen logischen Grundeinheiten besteht ein Prozessor? Einheit zur Adress-Übersetzung/Virtueller Speicher

a) Aus welchen logischen Grundeinheiten besteht ein Prozessor? Einheit zur Adress-Übersetzung/Virtueller Speicher 85 Prozessor a) Aus welchen logischen Grundeinheiten besteht ein Prozessor? Rechenwerk/ALU Registerblock Steuerwerk/Leitwerk Befehlsregister Befehlszähler Flags Bus-Treiber-Logik Cache Einheit zur Adress-Übersetzung/Virtueller

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

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

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

2.1 Fundamentale Typen

2.1 Fundamentale Typen 2. Elementare Typen 2.1 Fundamentale Typen C++ stellt die wichtigsten Datentypen mit passender Form der Abspeicherung und zugehörigen Rechenoperationen zur Verfügung : Boolscher Datentyp (bool) für logische

Mehr

LOC Data_Segment

LOC Data_Segment 65 MMIX Befehle 291 In folgendem Programmcode wird XXX XXXXXXXX als Platzhalter für einen einzelnen Befehl verwendet: : LOC Data_Segment a iii GREG @ :;fff ±t A OCTA #FFFFFFFFFFFFFFFF B TETRA #87654321

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

Rechnergrundlagen SS Vorlesung

Rechnergrundlagen SS Vorlesung Rechnergrundlagen SS 2007 3. Vorlesung Inhalt Zahlensysteme Binäre Darstellung von Integer-Zahlen Vorzeichen-Betrag Binary Offset 1er-Komplement 2er-Komplement Addition und Subtraktion binär dargestellter

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

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

Zahlen im Computer (Klasse 7 Aufbaukurs Informatik)

Zahlen im Computer (Klasse 7 Aufbaukurs Informatik) Zahlen im Computer (Klasse 7 Aufbaukurs Informatik) Die Bildauswahl erfolgte in Anlehnung an das Alter der Kinder Prof. J. Walter Bitte römische Zahlen im Geschichtsunterricht! Messsystem mit Mikrocontroller

Mehr

Lösung 5. Übungsblatt

Lösung 5. Übungsblatt Fakultät Informatik, Technische Informatik, Lehrstuhl für Eingebettete Systeme Lösung 5. Übungsblatt Entwicklung eines Mikroprogrammsteuerwerks und Maschinen-programmierung für einen einfachen Rechner.

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

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

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

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

Abschlussklausur Informatik, SS 2012

Abschlussklausur Informatik, SS 2012 Abschlussklausur Informatik, SS 202 09.07.202 Name, Vorname: Matr.-Nr.: Unterschrift: Zugelassene Hilfsmittel: außer Stift und Papier keine Hinweis: Geben Sie bei allen Berechnungen den vollständigen Rechenweg

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

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

MMIX: Einführung. Einführung. Ressourcen. Aussprache: em-micks Autor: Donald Knuth

MMIX: Einführung. Einführung. Ressourcen. Aussprache: em-micks Autor: Donald Knuth MMIX: Einführung Einführung Aussprache: em-micks Autor: Donald Knuth MMIX ist ein virtueller Prozessor, mit eigener Programmiersprache MMIX-Programme sind maschinennah, d.h. eng an die Prozessorhardware

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

N Bit Darstellung von Gleitkommazahlen

N Bit Darstellung von Gleitkommazahlen N Bit Darstellung von Gleitkommazahlen Normalisierte, wissenschaftliche Darstellung zur Basis 2. Beispiel: Allgemein: Sign and Magnitude Darstellung für beispielsweise 32 Bits: (s=0 für + und s=1 für )

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

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

Der Zahlenformatstandard IEEE 754

Der Zahlenformatstandard IEEE 754 Der Zahlenformatstandard IEEE 754 Single Precision Double Precision Insgesamt 32 Bits s exponent fraction 1 Bit 8 Bits 23 Bits Insgesamt 64 Bits s exponent fraction 1 Bit 11 Bits 52 Bits Bit Aufteilungen

Mehr

Rechnergrundlagen SS Vorlesung

Rechnergrundlagen SS Vorlesung Rechnergrundlagen SS 27 4. Vorlesung Inhalt Binäre Darstellung von Integer-Zahlen Vorzeichen-Betrag 2er-Komplement BCD Addition und Subtraktion binär dargestellter Zahlen Carry und Overflow Little Endian

Mehr

Von-Neumann-Architektur

Von-Neumann-Architektur Von-Neumann-Architektur Bisher wichtig: Konstruktionsprinzip des Rechenwerkes und Leitwerkes. Neu: Größerer Arbeitsspeicher Ein- und Ausgabewerk (Peripherie) Rechenwerk (ALU) Steuerwerk (CU) Speicher...ppppp...dddddd..

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

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

Rechnergrundlagen SS Vorlesung

Rechnergrundlagen SS Vorlesung Rechnergrundlagen SS 27 5. Vorlesung Inhalt Interpretation hexadezimal dargestellter Integer-Zahlen Little Endian / Big Endian Umrechnung in eine binäre Darstellung Ausführung von Additionen Optimierte

Mehr

Wertebereiche, Overflow und Underflow

Wertebereiche, Overflow und Underflow Wertebereiche, Overflow und Underflow s exponent fraction 1 Bit 8 Bits 23 Bits Kleinste darstellbare nicht negative Zahl annähernd 2,0 * 10 38 Größte darstellbare Zahl annähernd 2,0 * 10 38 Was, wenn die

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

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

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

Fragenkatalog Computersysteme Test 25. April 2008

Fragenkatalog Computersysteme Test 25. April 2008 Fragenkatalog Computersysteme Test 25. April 2008 Wolfgang Schreiner Wolfgang.Schreiner@risc.uni-linz.ac.at 6. April 2008 Der Test besteht aus 4 Fragen aus dem folgenden Katalog (mit eventuell leichten

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

Das Verfahren in Hardware

Das Verfahren in Hardware Das Verfahren in Hardware Links Shift 8 Bit Multiplikand Demonstration mit 1001 * 0110 = 110110 2.Links Shift 8 Bit ALU Rechts Shift 4 Bit Multiplikator 3.Rechts Shift 8 Bit Produkt 1. Produkt = Produkt

Mehr

Mikroprozessor (CPU)

Mikroprozessor (CPU) Mikroprozessor (CPU) Der Mikroprozessor (µp) ist heutzutage das Herzstück eines jeden modernen Gerätes. Er wird in Handys, Taschenrechnern, HiFi-Geräten und in Computern, für die er eigentlich erfunden

Mehr

Wandeln Sie die folgenden Zahlen in Binärzahlen und Hexadezimalzahlen. Teilen durch die Basis des Zahlensystems. Der jeweilige Rest ergibt die Ziffer.

Wandeln Sie die folgenden Zahlen in Binärzahlen und Hexadezimalzahlen. Teilen durch die Basis des Zahlensystems. Der jeweilige Rest ergibt die Ziffer. Digitaltechnik Aufgaben + Lösungen 2: Zahlen und Arithmetik Aufgabe 1 Wandeln Sie die folgenden Zahlen in Binärzahlen und Hexadezimalzahlen a) 4 D b) 13 D c) 118 D d) 67 D Teilen durch die Basis des Zahlensystems.

Mehr

Computersysteme. Fragestunde

Computersysteme. Fragestunde Computersysteme Fragestunde 1 Dr.-Ing. Christoph Starke Institut für Informatik Christian Albrechts Universität zu Kiel Tel.: 8805337 E-Mail: chst@informatik.uni-kiel.de 2 Kurze Besprechung von Serie 12,

Mehr