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

Größe: px
Ab Seite anzeigen:

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

Transkript

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

2 234 6 MMIX-Prozessor Aufgaben Verständnis Speicher T a) Wozu verwendet ein Computer Arbeitsspeicher? Speichern von Daten, mit denen gerade gearbeitet wird. T 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. T 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. T 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.

3 6.3 Speicher 235 Alignment T a) Welche Wortbreiten werden bei Speicherzugriffen vom MMIX unterstützt? Wie werden diese genannt? 8 Bit (Byte), 16 Bit (Wyde), 32 Bit (Tetra), Bit (Octa) T b) Wofür steht der Begriff Alignment? Alignment ( Ausrichtung ) meint, dass aus mehreren Byte zusammengesetzte Datenworte ausschließlich an Adressen abgelegt werden, die einem ganzzahligen Vielfachen der Wortbreite in Byte entsprechen. Beispiel: Datenwort ist 8 Byte groß ) Adresse ist Vielfaches von 8. T c) Warum wird Alignment angewendet? Durch das Alignment wird sichergestellt, dass aus mehreren Byte zusammengesetzte Datenworte durch die auf den Speichermodulen vorhandene Verdrahtung in der richtigen Form (Bit 0 an Position 0, Bit 1 an Position 1,...) beim Prozessor ankommen. Desweiteren wird durch das Alignment sichergestellt, dass für jede Datenwortgröße jedes Datenwort mit einem einzigen Speicherzugriff ausgelesen werden kann. T d) Was würde passieren, wenn ein Bit breites Datenwort an einer durch 4, aber nicht durch 8 teilbaren Adresse abgelegt werden würde? Der erste Teil des Datenworts würde in den Speicherbausteinen 4, 5, 6, 7 an Adresse x und in den Speicherbausteinen 0, 1, 2, 3 an Adresse x + 4 abgelegt werden. Für Zugriffe auf das Datenwort würden dann zwei Speicherzugriffe benötigt werden statt nur einer.

4 236 6 MMIX-Prozessor T e) Welche Eigenschaft müssen Byte-, Wyde-, Tetra- und Octa-Adressen beim MMIX haben? Byte: Keine Einschränkung Wyde: Durch zwei teilbar, d.h. letztes Adressbit = 0 Tetra: Durch vier teilbar, d.h. die letzten beiden Adressbits müssen 0 sein. Octa: Durch 8 teilbar, d.h. die letzten drei Adressbits müssen 0 sein. 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 (> 1, 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 Little-Endian? Was ist der Unterschied? Big- oder Little-Endian beschreibt zwei Möglichkeiten, Datenworte abzuspeichern, die sich aus mehreren Byte zusammensetzen. Bei Big-Endian wird das höherwertigere Byte adressiert, bei Little-Endian wird das niedrigere Byte Adressiert. d) Wie wird die 16 Bit-Zahl 0x1234 im Speicher an der Adresse 0x abgelegt im Falle einer Big-Endian- und einer Little-Endian-Maschine? Adresse Big Endian Little Endian 0x x x12 0x34 0x34 0x12

5 6.3 Speicher 237 T e) Wie wird im Speicher an der Adresse 0x die 32 Bit-Zahl 0x abgelegt im Falle einer Big-Endian- und einer Little-Endian-Maschine? Adresse Big Endian Little Endian 0x x x A 0x B 0x12 0x34 0x56 0x78 0x78 0x56 0x34 0x12 f) Wie wird im Speicher an der Adresse 0x die Bit-Zahl abgelegt im Falle einer Big-Endian- und einer Little-Endian-Maschine? Adresse Big Endian Little Endian 0x x x A 0x B 0x c 0x D 0x E 0x F 0x00 0x00 0x00 0x00 0x12 0x34 0x56 0x78 0x78 0x56 0x34 0x12 0x00 0x00 0x00 0x00

6 238 6 MMIX-Prozessor Speicherorganisation T a) Was wird im Textsegment gespeichert? Programm-Code Direktoperanden Interruptvektoren T b) 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. T c) Nennen Sie ein Ereignis, bei dem ein Interrupt auftreten kann. Division durch 0. T d) Was sind Interruptvektoren? Bereich im Arbeitsspeicher, in dem Adressen oder Verzweigungen zu Interrupt Service Routinen gespeichert werden. T e) Was wird im Datensegment gespeichert? Variable: Von niedrigeren zu höheren Adressen Stack: Von höheren zu niedrigeren Adressen

7 6.3 Speicher 239 T f) 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. Gegeben ist die nachfolgend abgebildete ASCII-Tabelle: ASCII-Zeichentabelle, hexadezimale Nummerierung Code A B C D E F 0 NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI 1 DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US 2 SP! " # $ % & ' ( ) * +, -. / : ; < = >? A B C D E F G H I J K L M N O 5 P Q R S T U V W X Y Z [ \ ] ^ _ 6 ` a b c d e f g h i j k l m n o 7 p q r s t u v w x y z { } ~ DEL g) Geben Sie den Inhalt des Poolsegments für das Programm ls an, das mit dem Parameter -la aufgerufen wird (Aufruf: ls -la). 0x x x x x x x x x x x x x6C x2D6C x x

8 240 6 MMIX-Prozessor T h) Geben Sie den Inhalt des Poolsegments für das Programm rm an, das mit dem Parameter -rf und * aufgerufen wird (Aufruf: rm -rf *). 0x x x x x x x x x x x x x x726D x2D x2A i) Wie werden in der Programmiersprache C einem Programm Parameter übergeben? int main(int argc, char * argv[]) argc ist der sog. argument count, d.h. die Anzahl der Paramter. Bei rm -rf * sind es drei; der Programmname gilt immer als 1. Parameter. argv ist der Zeiger auf das erste Element eines Arrays aus Zeichenketten. j) Wie kann man in der Programmiersprache C auf die Parameter zugreifen? argv[0], argv[1], argv[2],... argv[argc-1]

9 6.3 Speicher 241 k) Wie kann man beim MMIX auf die Paramter zugreifen? Beim MMIX wird argc in Register 0 übergeben und argv in Register 1. Man kann somit über die Adressen $1 + 0, $1 + 1 * 8, $1 + 2 * 8,... auf die Parameter zugreifen. Virtueller Speicher a) Wenn alle Programme an Adresse 0x100 beginnen bzw. alle Programme ihre Daten ab Adresse 0x im Speicher ablegen: Überschreiben 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. b) Was bedeutet virtueller Speicher? Bei virtuellem Speicher entsprechen die Adressen, die ein Programm verwendet, nicht den realen Adressen, die an die Speichermodule angelegt werden. Die virtuellen Adressen werden mit Hardware-Unterstützung in reale Adressen übersetzt. Das Betriebssystem stellt dabei durch Spezialregister ein, welche virtuellen Speicherbereiche auf welche realen Speicherbereiche abgebildet werden. c) Wozu ist virtueller Speicher gut? Adressraum unabhängig von installiertem Speicher Sicherheit, da Programme nicht auf den Speicher anderer Programme zugreifen können

10 242 6 MMIX-Prozessor 6.4 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 man auch Befehlssatz-Befehle den Loader; der Loader ist derjenige Teil des Betriebssystems, der auszuführende Programme vom der Festplatte/SSD in den Speicher lädt den Assemblierer; der Assemblierer, oft auch Assembler genannt, ist das Computerprogramm, das MMIX-Quelltext in Binärdateien mit MMIX-Befehlen und Loader-Anweisungen übersetzt Aufbau Nachfolgende Abbildung zeigt, wie MMIX-Programme (Quelltext) aus vier durch Leerzeichen und Tabulatoren voneinander getrennte Spalten aufgebaut sind. Marke Befehl Operanden Kommentar LOC Data_Segment SP GREG Pool_Segment A OCTA A initialisieren a IS $1 Name für $1 LOC #100 Beginne an 0x100 Main LDO a,a A in Reg. a laden Start SUB SP,SP,8 STO a,:sp, In der ersten Spalte stehen Marken. Marken sind Namen, über die Speicherstellen (Befehle oder Daten) angesprochen werden können. Bis auf die Marke Main (Programm-Beginn) sind Marken optional.

11 6.4 MMIX-Programme 243 Enthält eine Zeile Befehle, jedoch keine Marke, dann muss die Zeile mit einem Leerzeichen oder Tabulator beginnen. Anderenfalls würde der Befehl als Marke interpretiert und die Operanden als Befehl, was zu Fehlern führen würde. Beginnt eine Zeile mit einem Zeichen /2 {a... z, A...Z, 0...9}, so wird diese Zeile als Kommentar ignoriert. In der zweiten Spalte stehen Befehle, d.h. sowohl Befehle aus dem Befehlssatz des MMIX-Prozessors, als auch Anweisungen für den Assembler oder Loader. In der dritten Spalte stehen die Operanden. Mehrere Operanden werden durch Komma (ohne Leerzeichen) getrennt. In der vierten Spalte stehen Kommentare. Kommentare sind optional. Sie können Leerzeichen enthalten. Assembler- und Loader-Befehle Der IS-Befehl Der IS-Befehl ist eine Assemblierer-Anweisung, d.h. er wird von dem Assemblierungs- Programm ausgeführt, das in Assembler-Sprache geschriebene Befehle in Maschinensprache (Nuller und Einser) übersetzt. Der IS-Befehl dient dazu, Allzweck-Register sinnvoll benennen zu können. Die Syntax des Befehls lautet: Name IS Register Name ist der neue Name, Register das entsprechende Register. Ein Beispiel für die Anwendung des IS-Befehls lautet: Seitenlaenge IS $3 Dieser Befehl veranlasst den Assemblierer dazu, im Quelltext nach den Zeichenketten Seitenlaenge zu suchen und diese durch die Zeichenkette $3 zu ersetzen. Dieser Schritt wird wie der Präprozessor in C vor der Übersetzung des Programms in Maschinensprache ausgeführt. Der GREG-Befehl Der GREG-Befehl ist ein Loader-Befehl, d.h. er wird vom Loader beim Laden eines auszuführenden Programms von der Festplatte/SSD in den Arbeitsspeicher ausgeführt. Der GREG-Befehl reserviert das nächste freie globale Register (d.h. er verringert die in rg stehende Zahl um den Wert 1). Wenn für den GREG-Befehl ein Parameter angegeben

12 244 6 MMIX-Prozessor ist, wird das globale Register mit dem entsprechenden Wert initialisiert. Die Syntax des GREG-Befehls lautet: Name GREG Wert Name ist der Wert, über den das neue globale Register ansprechbar sein soll (wie beim IS-Befehl), Wert ist der Initialisierungs-Wert. Name und Wert sind optional. Beispiel: Steht in Register rg der Wert 255, dann hat der Befehl SP GREG # folgende Auswirkungen: Der in rg abgespeicherte Wert wird von 255 auf 254 geändert. In Register 254 wird der Wert 0x abgespeichert; beim MMIX- Assemblierer werden hexadezimale Zahlen mit einer führenden Raute ( # ) statt mit führendem 0x gekennzeichnet. Register 254 kann auch über den Namen SP angesprochen werden. Der LOC-Befehl Der LOC-Befehl ist ein Loader-Befehl. LOC steht für locate an address und setzt die Eingabemarke des Loaders auf die als Parameter angegebene Adresse. Der Befehl teilt dem Loader beim Laden einer ausführbaren MMIX-Datei in den Arbeitsspeicher mit, ab welcher Adresse Befehlscode in den Speicher geschrieben oder ab welcher Speicher-Adresse Variable angelegt werden sollen. Die Syntax des Befehls lautet: LOC Adresse Als Adresse kann entweder eine Zahl, oder ein Segmentname (z.b. Data_Segment) angegeben werden. Der Befehl LOC #100 zeigt dem Loader beispielsweise an, dass die nachfolgenden Daten im Speicher ab Adresse 0x100 abgelegt werden sollen. Die vom Loader aktuell betrachtete Adresse wird beim MMIX mit dem meint dabei the place where we are at.

13 6.4 MMIX-Programme 245 Die Befehle BYTE, WYDE, TETRA und OCTA Die Befehle BYTE, WYDE, TETRA und OCTA sind Loader-Befehle, die Datenworte der Größe 8 Bit (BYTE), 16 Bit (WYDE), 32 Bit (TETRA) und Bit (OCTA) im Speicher allozieren (anlegen) und diesen bei Angabe von Parametern auch initialisieren. Die Syntax lautet: Marke Befehl Wert Befehl ist einer der Anweisungen BYTE, WYDE, TETRA, OCTA, Marke ist der Name (auch Marke genannt), über den auf die Adresse der allozierten Daten zugegriffen werden kann, und Wert der Zahlenwert, mit dem das Datenwort initialisiert werden soll; werden mehrere Werte durch Komma (ohne Leerzeichen) getrennt, werden mehrere Datenworte desselben Typs angelegt. Beispiel: Die Befehle LOC Vektor BYTE 1,2,3 Data_Segment reservieren im Speicher an Adresse 0x drei Byte und initialisieren diese mit den Werten 1, 2 und 3. Nachfolgende MMIX-Befehle können auf die Adresse des ersten Byte (das Byte, in dem die 1 gespeichert ist) über die Marke Vektor zugreifen. Beim MMIX werden aus mehreren Byte zusammengesetzte Datenworte (Wyde, Tetra, Octa) an Adressen ausgerichtet, die dem ganzzahligen Vielfachen ihrer Datenwortbreite entsprechen (Alignment). Zur Einhaltung des Alignments werden ggf. Leer-Byte eingefügt. Die Codierung der Datenworte folgt dem Big-Endian-Schema. Mit jedem durch BYTE, WYDE, TETRA oder OCTA allozierten Datenwort wird die aktuelle um die entsprechende Byteanzahl erhöht. Müssen aufgrund des Alignments Leer-Byte eingefügt werden, so werden diese bei der Erhöhung ebenfalls berücksichtigt.

14 6.4 MMIX-Programme 247 f) Geben Sie Anweisungen an, mit denen Sie die Register 0, 1 und 2 durch die Namen a, b und c ansprechbar machen. a IS $0 b IS $1 c IS $2 T g) Geben Sie Anweisungen an, mit denen Sie die Register 1, 2 und 3 durch die Namen ankathete, gegenkathete und hypothenuse ansprechbar machen. ankathete IS $1 gegenkathete IS $2 hypothenuse IS $3 h) Geben Sie die Anweisung an, mit denen Sie ein globales Register anlegen, dieses über den Namen PI ansprechbar machen und mit 0x400921FB54442EEA initialisieren. PI GREG #400921FB54442EEA T i) Geben Sie die Anweisung an, mit denen Sie ein globales Register anlegen und dieses über den Namen A ansprechbar machen. A GREG

15 248 6 MMIX-Prozessor T j) Mit welchen Befehlen können Sie Worte der Länge 8, 16, 32 und Bit im Speicher reservieren? 8 Bit: BYTE 16 bit: WYDE 32 bit: TETRA bit: OCTA T k) 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. l) Geben Sie Befehle an, mit denen Sie an Speicheradresse # vier Bytes reservieren, die über die Marken A, B, C und D angesprochen werden können. A soll mit 1 und B mit 2 initialisiert werden. Fügen Sie auch einen geeigneten Befehl zur Reservierung und Initialisierung eines globalen Registers mit dem Wert 0x ein. LOC # A BYTE 1 B BYTE 2 C BYTE D BYTE

16 6.4 MMIX-Programme 249 T m) Geben Sie Befehle an, mit denen Sie an Speicheradresse # zwei Bit Werte reservieren, die über die Marken Null, NaN und Inf angesprochen werden können. Null soll mit der Gleitkommazahl 0.0 initialisiert werden, NaN mit der Gleitkomma-Codierung Not a Number und Inf mit der Gleitkomma- Codierung unendlich. Fügen Sie auch einen geeigneten Befehl zur Reservierung und Initialisierung eines globalen Registers mit dem Wert 0x ein. LOC # Null OCTA 0 NaN OCTA #7FFFFFFFFFFFFFFF Inf OCTA #7FF Betrachten Sie die folgenden Befehle: X Y Z LOC # BYTE WYDE OCTA n) Geben Sie die Adressen an, an denen X und Y im Speicher abgelegt werden. X: 0x Y: 0x (höherwertigeres Byte) und 0x (niederwertigeres Byte) o) An welchen Adressen wird Z abgelegt? Z wird an den Adressen 0x bis 0x F abgelegt.

17 250 6 MMIX-Prozessor Betrachten Sie die folgenden Befehle: A B C D LOC # WYDE TETRA BYTE OCTA T p) Geben Sie die Adressen an, an denen A, B, C und D im Speicher abgelegt werden. A: 0x x B: 0x x C: 0x D: 0x x

18 6.4 MMIX-Programme 251 q) Geben Sie Befehle an, die ein neues globales Register anlegen und dieses mit Speicheradresse 0x 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_A1 ansprechbar sein und mit den Bit-Zahlen [1, 2, 3, 4] initialisert werden; der zweite Vektor soll über ADR_A2 ansprechbar sein und mit den Bit-Zahlen [10, 20, 30, 40] initialisiert werden. LOC GREG N OCTA 4 ADR_A1 OCTA 1 OCTA 2 OCTA 3 OCTA 4 ADR_A2 OCTA 10 OCTA 20 OCTA 30 OCTA 40

19 252 6 MMIX-Prozessor T r) Geben Sie Befehle an, die ein neues globales Register anlegen und dieses mit Speicheradresse 0x initialisieren, an dieser Speicheradresse ein Bit breites Datenwort anlegen, das mit der Marke Erg angesprochen werden kann, an den darauffolgenden Speicheradressen zwei 3-dimensionale Vektoren wie folgt anlegen: Der erste Vektor soll über V1 ansprechbar sein und mit den 32 Bit-Zahlen [100, 200, 300] initialisert werden; der zweite Vektor soll über V2 ansprechbar sein und mit den 32 Bit-Zahlen [10, 20, 30] initialisiert werden. LOC GREG Erg OCTA V1 TETRA 100 TETRA 200 TETRA 300 V2 TETRA 10 TETRA 20 TETRA 30

20 6.4 MMIX-Programme 253 Übersetzungsprozess Nachfolgende Abbildung zeigt den Übersetzungsprozess, mit dem MMIX-Quelldateien in MMIX-Objektdateien umgewandelt werden um anschließend vom MMIX-Simulator ausgeführt werden zu können. Quelldatei *.mms LOC Data_Segment A OCTA 3 a IS $1 LOC #100 Main LDO a,a ADD a,a,8 STO a,a mmixal *.mms Assembler (Präprozessor) LOC Data_Segment A OCTA 3 a IS $1 LOC #100 Main LDO $1,$254,0 ADD $1,$1,8 STO $1,$254,0 Assembler Binärdatei *.mmo xxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxx 8D01FE AD01FE00 xxxxxxxxxxxxxxxxxxxxxxxx Loader-Anweisungen MMIX-Befehle Symboltabelle mmix -i *.mmo MMIX-Simulator MMIX-Quelldateien werden mit einem Texteditor erstellt. Die Quelldateien haben die Endung mms (MMIX source). Mit einem Aufruf des Assemblierungsprogramms mmixal

21 254 6 MMIX-Prozessor werden die Quelldateien in Objektdateien übersetzt. Der Assembler verarbeitet zunächst die Assembler-Anweisungen (z.b. IS-Befehle) mit einem Präprozessor und löst Namen und Marken auf. Anschließend übersetzt er die MMIX-Befehle (mit den aufgelösten Marken) in entsprechende Binärwerte. Die durch Namen und Marken gegebenen Anweisungen sind somit implizit in den MMIX-Befehlen enthalten (Nummer des Registers, Speicheradresse,...). Aus den Sprung-Marken erstellt der Assembler eine Symboltabelle, in der für jedes vorkommende Symbol die entsprechende Adresse eingetragen wird. Auf diese Weise kann z.b. der Loader über die Symboltabelle die Adresse der Marke Main ermitteln und zum Programmstart an diese Adresse verzweigen. Befehlswort Das Befehlswort beim MMIX ist für alle Befehle 32 Bit breit, d.h. die Länge des Befehlsworts (in Byte) ist konstant. Dies ist ein typisches Merkmal für RISC-Prozessoren. Durch die konstante Befehlswortbreite ist es sehr einfach, Befehle im Voraus aus dem Befehlsspeicher zu laden: Da alle Befehle vier Byte breit sind, können durch Laden der nächsten 4 n Byte die nächsten n Befehle aus dem Speicher geladen werden. Bei CISC-Prozessoren ist die Länge des Befehlsworts nicht konstant sondern abhängig vom jeweiligen Befehl. Bei x86 sind Befehlsworte beispielsweise zwischen 1 und 15 Byte lang. Beim MMIX gliedert sich das 32 Bit breite Befehlswort in vier Byte, die Opcode, X, Y und Z genannt werden OP X Y Z Der Opcode ist eine 8 Bit breite Zahl die festlegt, um welchen Befehl es sich handelt (Addieren, Subtrahieren,...). Die Zuordnung Opcode $ Befehl wird durch eine Tabelle (s.u.) spezifiziert. X ist (bis auf Speicherbefehle) der Ziel-Operand, d.h. eine 8 Bit breite Zahl, die festlegt, in welches Register (0 bis 255 bei Allzweckregistern bzw. 0 bis 31 bei Spezialregistern) das Ergebnis der Operation abgelegt werden soll. Die Codierung von X entspricht der Registernummer, d.h. Register 1 wird als X = =0x01 codiert. Y und Z sind die Quelloperanden, d.h. zwei 8 Bit breite Zahlen, die festlegen, in welchen Registern die Quelloperanden stehen. Die Codierung entspricht der von X.

22 6.4 MMIX-Programme 255 Spezialregister werden im Befehlswort wie folgt codiert: x S(x) x S(x) x S(x) x S(x) 0x00 rb 0x08 rc 0x10 rq 0x18 rw 0x01 rd 0x09 rn 0x11 ru 0x19 rx 0x02 re 0x0A ro 0x12 rv 0x1A ry 0x03 rh 0x0B rs 0x13 rg 0x1B rz 0x04 rj 0x0C ri 0x14 rl 0x1C rww 0x05 rm 0x0D rt 0x15 ra 0x1D rxx 0x06 rr 0x0E rtt 0x16 rf 0x1E ryy 0x07 rbb 0x0F rk 0x17 rp 0x1F rzz Viele MMIX-Befehle verwenden sog. Direktoperanden (engl. immediate operands), d.h. Operanden, die direkt im Befehlswort stehen. Beim MMIX sind folgende Direktoperanden möglich: Z: Die Bits des Befehlsworts enthalten eine 8 Bit breite Zahl. Y: Die Bits des Befehlsworts enthalten eine 8 Bit breite Zahl. YZ: Die Bits des Befehlsworts enthalten eine 16 Bit breite Zahl. XYZ: Die Bits des Befehlsworts enthalten eine 24 Bit breite Zahl.

23 MMIX-Prozessor Nachfolgende Tabelle übersetzt MMIX-Opcodes in diejenigen Zahlen, die im Befehlswort in den Bits abgelegt werden müssen.! 0x0.. 0x1.. 0x2.. 0x3.. 0x4.. 0x5.. 0x6.. 0x7.. 0x8.. 0x9.. 0xA.. 0xB.. 0xC.. 0xD.. 0xE.. 0xF..! 0x..0 0x..1 0x..2 0x..3 0x..4 0x..5 0x..6 0x..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 40ν FSQRT 40ν FREM 4ν FINT 4ν MUL[I] 10ν MULU[I] 10ν DIV[I] 60ν DIVU[I] 60ν 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] ν 16ADDU[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 20µ+ν SYNC ν SWYM ν GET ν TRIP 5ν 0x..8 0x..9 0x..A 0x..B 0x..C 0x..D 0x..E 0x..F 0x0.. 0x1.. 0x2.. 0x3.. 0x4.. 0x5.. 0x6.. 0x7.. 0x8.. 0x9.. 0xA.. 0xB.. 0xC.. 0xD.. 0xE.. 0xF..! Die Übersetzung erfolgt folgendermaßen: 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 ) 0x2 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 ) 0x..0 oder 0x..1 Steht der Befehl im unteren Teil der Doppelzeile, kann man das

24 6.4 MMIX-Programme 257 untere Nibble (=die unteren 4 Bits) des Opcodes an der untersten Tabellenzeile ablesen, z.b. 2ADDU ) 0x..8 oder 0x..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 0x..0 oder 0x..1 auswählen muss oder ob man in der unteren Zeile 0x..8 oder 0x..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 $1,$2,$3 wird ADD mit 0x20 codiert, bei ADD $1,$2,3 mit 0x21 B bedeutet backward, d.h. Rückwärtssprung; erhöht sich bei einem Sprung die Adresse, wird der linke Zahlenwert verwendet (Vorwärts- Sprung); verringert sich bei einem Sprung die Adresse, wird der rechte Zahlenwert verwendet (Rückwerts-Sprung) Aus der Tabelle lassen sich auch die von Donald Knuth für den MMIX-Simulator spezifizierten Ausführungszeiten ermitteln: entspricht der Dauer von 1 Takt µ ist die Anzahl der Takte für einen Speicherzugriff bedeutet 4 3, wenn gesprungen wird, und 0, wenn nicht gesprungen wird.

25 258 6 MMIX-Prozessor Aufgaben T a) Wie breit (in Bit) ist das MMIX Befehlswort? 32 Bit T b) Skizzieren Sie das MMIX Befehlswort und geben Sie den Inhalt jedes Bytes an Opcode 1. Operand = X 2. Operand = Y 3. Operand = Z T c) In welchen Byte des Befehlsworts wird im Allgemeinen Information über die Quelloperanden bzw. über die Zieloperanden abgespeichert? Ziel = X; Quelle = Y, Z. T d) Was ist ein Direktoperand? Ein Direktoperand ist ein Operand der direkt im Befehlswort steht. e) Wieviele Taktzyklen benötigen die meisten Befehlen zur Ausführung? Die meisten Befehle können innerhalb von 1, d.h. innerhalb eines Taktes ausgeführt werden. f) Welcher Befehl benötigt die längste Zeit zur Ausführung, wenn man von Speicherbefehlen absieht? Der Befehl DIV (Division von Festkommazahlen). g) Wieviele Takte benötigt der BZ-Befehl, wenn gesprungen wird? + = +2 =3 ) 3 Takte

26 6.4 MMIX-Programme 259 h) Wieviele Takte benötigt der BZ-Befehl, wenn nicht gesprungen wird? + = +0 =1 ) 1 Takt i) Wieviele Takte benötigt der PBZ-Befehl, wenn gesprungen wird? 3 =3 2 =1 ) 1 Takt j) Wieviele Takte benötigt der PBZ-Befehl, wenn nicht gesprungen wird? 3 =3 0 =3 ) 3 Takte k) Geben Sie das 32 Bit breite Befehlswort des Befehls SL $1,$2,3 an. 0x T l) Geben Sie das 32 Bit breite Befehlswort des Befehls SUB $5,$6,7 an. 0x

27 260 6 MMIX-Prozessor 6.5 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 =0liegt. wx...y b meint Bits x...y des Datenworts w b. Befehlswort Sei ein 32 Bit breites MMIX Befehlswort. X = Y = Z = YZ = XY = XYZ = Allzweckregister Der MMIX-Prozessor verfügt über 256 Allzweckregister, die mit 0, 1, durchnummeriert werden. Zur Adressierung eines Allzweckregisters im Befehlswort wird die als vorzeichenlose 8 Bit breite Zahl codierte Registernummer verwendet. Beispiel: Register 5 wird als 0x05 bzw. als Bitkombination codiert. $x, 0 apple x apple 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 0x ; Bits extrahieren ) 0x34 (= Bitkombination ) = Dezimal 52 ) Im Falle des Befehlsworts 0x 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 des Befehlsworts adressierten Register gespeichert ist.

28 . Bit weise UND MMIX Befehle 261 µ Arbeitsspeicher ffiütsoämuouisiro M ist der Arbeitsspeicher des MMIX Prozessors (M = memory). M 1 [x] ist das an Adresse x gespeicherte Byte. - 4 = } so , M 2 [x] ist das an Adresse x &( 2) gespeicherte Wyde. M 4 [x] ist das an Adresse x &( M 8 [x] ist das an Adresse x &( µ Verknüpfung 4) gespeicherte Tetra. = ) gespeicherte Octa. % löschen der Bits 2,1 und 0 von X Die Symbole, X, Y, Z, $X, $Y, $Z, $0, $1,..., M 1 [...], M 2 [...],... repräsentieren Bitmuster. Ein Zahlenwert entsteht erst durch entsprechende Interpretation des Bitmusters (z.b. vorzeichenlose Festkommazahl,...). Befehlszähler Beim MMIX bedeutet das the place where we are at und meint eine Adresse im Speicher. Beim Loader bezieht auf die Adresse, an der ein Daten- oder Befehlsworte im Speicher abgelegt werden soll. In Bezug auf die Befehlsausführung die Adresse des Befehls, der gerade ausgeführt wird, also den Befehlszähler BZ (oder PC für engl. program counter).

29 262 6 MMIX-Prozessor 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. 1), wenn x den selben Wert hat wie y, sonst falsch (d.h. 0) x y: Schiebe x um y Stellen nach links; fülle frei werdende Bitstellen mit 0 auf x u y: Schiebe x um y Bitstellen nach rechts; fülle frei werdende Bitstellen mit 0 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 1er-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. 1,75). f32 0 (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. 1,75). f 0 (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.

30 6.5 MMIX Befehle 263 (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. 1, 0, -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. 0, 1) sb 0 (x): Gibt das b Bit breite im 2er-Komplement codiert Bitmuster zurück das dem Wert x entspricht. ub 0 (x): Gibt das b Bit breite Bitmuster (vorzeichenlose Codierung) zurück das dem Wert x, x 0, 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 128 Bit breite Bitmuster das aus der Aneinanderreihung der beiden Bitmuster $X und $Y entsteht. ($X$Y) = $X und ($X$Y) = $Y. Programm beenden TRAP 0,Halt,0 beendet ein MMIX-Programm und gibt die Kontrolle zurück an das Betriebssystem. Register-Register-Befehle Hardware Der MMIX ist eine Drei-Address- Register-Register-Maschine, d.h. er verarbeitet bis zu zwei individuell spezifizierbare Quell-Operanden zu einem Zieloperand, wobei alle Operanden in Registern stehen. Auf die durch Y und Z adressierten Operanden wird beim MMIX nur lesend zugegriffen. Auf X wird sowohl lesend als auch schreibend zugegriffen.

31 2 6 MMIX-Prozessor a) Vervollständigen Sie nachfolgende Schaltung des Registerblocks (engl. register file so, dass an den Ausgängen $X, $Y und $Z die durch X, Y und Z spezifizierten Register automatisch ausgegeben werden und das am Eingang $X anliegende Datenwort im Falle einer positiven Flanke am clk-eingang in das durch X spezifizierte Register übernommen wird. clk $X $X $ X 8 $1 0 1 $Y Y 8 Z 8 $ $Z 8

32 6.5 MMIX Befehle 265 T b) Vervollständigen Sie nachfolgende Schaltung des Rechenwerks (= ALU = Arithmetic Logic Unit) so, dass mit der Steuerleitung op (operation) die Ergebnisse der verschiedenen integrierten Hardware-Schaltungen an den Ausgang durchgeschaltet werden können. op a a >> u b b ADD 0 a a << b FADD 1 2 b a a >> s b b a SUB a-b b MUL a FSUB a-b b a a b b

33 266 6 MMIX-Prozessor c) Entwickeln Sie einen MMIX-Prozessor, der Register-Register-Befehle mit 8 Bit vorzeichenlosen Direktoperanden Z ausführen kann sowie vorzeichenlose 16 Bit Direktoperanden YZ in Register X ablegen kann. 4 Add Steuerung 8 BZ Allzweck- Registerblock Adresse Befehls- Speicher Daten $X X Y Z $X $Y $Z 0 ALU Arithmetische Befehle auf Festkommazahlen Befehl Operanden Name/Aktion Definition $X s 0 (s($y)+s($z)) $X,$Y,$Z Add; signed, with overflow (s($y)+s($z) < 2 63 ) (s($y)+s($z) 2 63 ) ) ADD ra ra u 0 (26 ) $X s 0 (s($y)+u(z)) $X,$Y,Z Add immediate; signed, with overflow (s($y)+u(z) < 2 63 ) (s($y)+u(z) 2 63 ) ) ra ra u 0 (26 ) ADDU $X,$Y,$Z Add unsigned; no overflow $X u 0 (u($y)+u($z)) $X,$Y,Z Add unsigned; no overflow $X u 0 (u($y)+u(z))

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

Ü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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 30 Einstieg in die Informatik mit Java Datentypen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 30 1 Überblick 2 Ganzzahlige Typen 3 Gleitkommatypen 4 Zeichen, char

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

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

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 20 Einstieg in die Informatik mit Java Literalkonstanten Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 20 1 Ganzzahlige Konstanten 2 Gleitkommakonstanten 3 Zeichenkonstanten

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Literalkonstanten Übersicht 1 Ganzzahlige Konstanten 2 Gleitkommakonstanten 3 Zeichenkonstanten 4 Zeichenketten 5 Boolsche Konstanten 6 null Referenz Literalkonstanten Literalkonstanten

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

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

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

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

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

Programmiersprachen Einführung in C

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

Mehr

Programmieren in C Einführung

Programmieren in C Einführung Programmieren in C Einführung Aufbau eines Programms Einfache Programme Datentypen und Vereinbarungen Das Entwicklungswerkzeug Seite Einfache Programme Kugeltank-Berechnung #include void main

Mehr

Rechnerstrukturen WS 2012/13

Rechnerstrukturen WS 2012/13 Rechnerstrukturen WS 2012/13 Repräsentation von Daten Repräsentation natürlicher Zahlen (Wiederholung) Repräsentation von Texten Repräsentation ganzer Zahlen Repräsentation rationaler Zahlen Repräsentation

Mehr

Merke: Mit jedem zusätzlichen Bit verdoppelt sich die Anzahl der darstellbaren Zahlen bzw. Zustände

Merke: Mit jedem zusätzlichen Bit verdoppelt sich die Anzahl der darstellbaren Zahlen bzw. Zustände 1 2 Merke: Mit jedem zusätzlichen Bit verdoppelt sich die Anzahl der darstellbaren Zahlen bzw. Zustände 3 Die Zuordnung der Himmelsrichtungen zu den dreistelligen Binärzahlen, also Norden 000 Süden 001

Mehr

Eine Reihe häufig benötigter Datentypen ist in C vordefiniert

Eine Reihe häufig benötigter Datentypen ist in C vordefiniert 2 Standardtypen in C D.3 Datentypen Eine Reihe häuig benötigter Datentypen ist in C vordeiniert char int loat double void Zeichen (im ASCII-Code dargestellt, 8 Bit) ganze Zahl (16 oder 32 Bit) Gleitkommazahl

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

Datentypen printf und scanf. Programmieren in C Dr. Michael Zwick

Datentypen printf und scanf. Programmieren in C Dr. Michael Zwick Datentypen printf und scanf Programmieren in C Dr. Michael Zwick April June 2015 Monday Tuesday Wednesday Thursday Friday 17 20 Apr 21 22 23 24 Arbeitsblatt 1-1 Ausgabe Arbeitsblatt 1 Beginn Tutorium Arbeitsblatt

Mehr

Rechnerstrukturen. Michael Engel und Peter Marwedel. Sommer TU Dortmund, Fakultät für Informatik

Rechnerstrukturen. Michael Engel und Peter Marwedel. Sommer TU Dortmund, Fakultät für Informatik Rechnerstrukturen Michael Engel und Peter Marwedel TU Dortmund, Fakultät für Informatik Sommer 2014 Folien a. d. Basis von Materialien von Gernot Fink und Thomas Jansen 10. April 2014 1/37 1 Repräsentation

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

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

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

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

Mehr

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

Thema 1 -- Fortsetzung. Computersystem, Informationsdarstellung

Thema 1 -- Fortsetzung. Computersystem, Informationsdarstellung Thema 1 -- Fortsetzung Computersystem, Informationsdarstellung Codierung! Bei der Codierung erfolgt eine eindeutige Zuordnung der Zeichen eines Zeichenvorrates (Urmenge, Quellalphabet) zu denjenigen eines

Mehr

Zahlen und Zeichen (1)

Zahlen und Zeichen (1) Zahlen und Zeichen () Fragen: Wie werden Zahlen repräsentiert und konvertiert? Wie werden negative Zahlen und Brüche repräsentiert? Wie werden die Grundrechenarten ausgeführt? Was ist, wenn das Ergebnis

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

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

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

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

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

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

Rechnerorganisation 2 TOY. Karl C. Posch. co1.ro_2003. Karl.Posch@iaik.tugraz.at 16.03.2011 Technische Universität Graz Institut tfür Angewandte Informationsverarbeitung und Kommunikationstechnologie Rechnerorganisation 2 TOY Karl C. Posch Karl.Posch@iaik.tugraz.at co1.ro_2003. 1 Ausblick. Erste

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

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

PIC16 Programmierung in HITECH-C

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

Mehr

Betriebssysteme 1. Thomas Kolarz. Folie 1

Betriebssysteme 1. Thomas Kolarz. Folie 1 Folie 1 Betriebssysteme I - Inhalt 0. Einführung, Geschichte und Überblick 1. Prozesse und Threads (die AbstrakFon der CPU) 2. Speicherverwaltung (die AbstrakFon des Arbeitsspeichers) 3. Dateisysteme (die

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

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 11

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf  Seite 1 von 11 Kapitel 11 Zeichenverarbeitung Seite 1 von 11 Zeichenverarbeitung - Jedem Zeichen ist ein Zahlencode zugeordnet. - Dadurch wird ermöglicht, zwischen verschiedenen Systemen Texte auszutauschen. - Es werden

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

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

, 2014W Übungsgruppen: Mo., Mi., VU Technische Grundlagen der Informatik Übung 7: Speichermanagement 183.579, 2014W Übungsgruppen: Mo., 12.01. Mi., 14.01.2015 Aufgabe 1: Cache-Adressierung Ein Prozessor mit einer Adresslänge von 20 Bit

Mehr

1 Rechnerstrukturen 1: Der Sehr Einfache Computer

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

Mehr

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

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

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

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

PicAxe M2 - Das Speicherkompendium. Ausgabe Matthias Heuschele / SSE

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

Mehr

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

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften Programmiertechnik Teil 4 C++ Funktionen: Prototypen Overloading Parameter C++ Funktionen: Eigenschaften Funktionen (Unterprogramme, Prozeduren) fassen Folgen von Anweisungen zusammen, die immer wieder

Mehr

Escape-Sequenzen. Dr. Norbert Spangler

Escape-Sequenzen. Dr. Norbert Spangler Escape-Sequenzen Einzelzeichen Bedeutung ASCII- ASCII-Code \a alert BEL 07 \b backspace BS 08 \t horizontal tab HT 09 \n line feed LF 0A \v vertical tab VT 0B \f form feed FF 0C \r carriage return CR 0D

Mehr

"Organisation und Technologie von Rechensystemen 4"

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

Mehr

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

Variablen, Konstanten und Datentypen

Variablen, Konstanten und Datentypen Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14 Variablen, Konstanten und Datentypen Überblick

Mehr

Geräteentwurf mit Mikroprozessoren 1

Geräteentwurf mit Mikroprozessoren 1 Geräteentwurf mit Mikroprozessoren 1 Vorlesung am Institut für Elektronik der TU Graz Dipl.-Ing. Dr. Gerhard Stöckler SS 2003 Vorausgesetzte Kenntnisse: Grundlagen der Digitaltechnik Binäre Informationsdarstellung

Mehr

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) Wintersemester 2006/07 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl

Mehr

Rechner- organisa-on 2 TOY. Karl C. Posch.

Rechner- organisa-on 2 TOY. Karl C. Posch. Rechner- Technische Universität Graz Ins-tut für Angewandte Informa-onsverarbeitung und Kommunika-onstechnologie organisa-on 2 TOY Karl C. Posch Karl.Posch@iaik.tugraz.at co1.ro_2012. Ausblick. Erste HälEe

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

Kapitel 1. Programmierkurs. 1.2 Allgemeiner Aufbau des Computers. 1.1 Hallo, Computer...?

Kapitel 1. Programmierkurs. 1.2 Allgemeiner Aufbau des Computers. 1.1 Hallo, Computer...? Kapitel 1 Programmierkurs Birgit Engels, Anna Schulze ZAIK Universität zu Köln Einführung Hallo, Computer...? Aufbau eines Computers Was ist eine Programmiersprache? Der Programmierprozess Warum Java?

Mehr

Einführung in die Programmierung Wintersemester 2008/09

Einführung in die Programmierung Wintersemester 2008/09 Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Darstellung von Information Inhalt Einfache Datentypen

Mehr

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Was sind primitive Datentypen? Bits und Bytes. Primitive Datentypen. Sommersemester 2014

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Was sind primitive Datentypen? Bits und Bytes. Primitive Datentypen. Sommersemester 2014 Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2014 1 Einführung Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München 2 Grundlagen von Algorithmen

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

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

A ProgrAmmer s Guide to KIM Programming

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

Mehr

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

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

Wie werden die Barcode Prüfziffern berechnet?

Wie werden die Barcode Prüfziffern berechnet? KB Consult; K. Bögli Bergwiesenstrasse 3 CH88 Weisslingen Telefon: [] 05 / 38 6 96 Fax: [] 05 / 38 5 0 EMail: kurt.boegli@kbconsult.ch Wie werden die Barcode Prüfziffern berechnet? Nachfolgend die Beschreibung

Mehr

Klausur: Informatik I am 06. Februar 2009 Gruppe: D Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Klausur: Informatik I am 06. Februar 2009 Gruppe: D Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte: Seite 1 von 10 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 12 Pkt.) Was liefert

Mehr

Variablen und Datentypen

Variablen und Datentypen Programmieren mit Java Modul 1 Variablen und Datentypen Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Darstellen von Zahlen und Zeichen im Computer 3 2.1 Binäres System................................

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

Heute nur MIPS-Praxis (4 Aufgaben)

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

Mehr

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung Version 21.12.2016 1 Inhalt Vorlesung Aufbau einfacher Rechner Überblick: Aufgabe, Historische Entwicklung, unterschiedliche Arten von Betriebssystemen

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

Barcode- Referenzhandbuch

Barcode- Referenzhandbuch Barcode- Referenzhandbuch Version 0 GER/AUS/SWI-GER 1 Einführung 1 Übersicht 1 1 Dieses Referenzhandbuch bietet Informationen zum Drucken von Barcodes über Steuerbefehle, die direkt an ein Brother-Druckergerät

Mehr

Leistung übertragbar

Leistung übertragbar 81 1 Aufgaben Wie funktioniert ein Computer Netzteil a) Welche Spannungen werden von PCNetzteilen bereitgestellt? 3,3 V 5W 12W 5 U 12W b) Warum können PCNetzteile hohe Leistungen liefern, obwohl die eingebauten

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

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

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

Mehr

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

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

Mehr

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

Rechnernetze und Organisation

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

Mehr

Daniel Betz Wintersemester 2011/12

Daniel Betz Wintersemester 2011/12 Daniel Betz Wintersemester 2011/12 Digitally signed by daniel.betz@daniel-betz.com Date: 2011.12.04 17:24:40 +01'00' Insgesamt 16 Register von je 16 Bit (=WORD) Breite Untere 8 Register auch als 2 Register

Mehr

Stephan Brumme, SST, 2.FS, Matrikelnr. 70 25 44

Stephan Brumme, SST, 2.FS, Matrikelnr. 70 25 44 Aufgabe 33 a) Der Pseudobefehl move $rd,$rs wird als addu $rd,$0,$rs übersetzt. Dabei macht sich SPIM zunutze, dass das Register $0 immer Null ist. Somit wird das Register $rd ersetzt durch $rd=0+$rs=$rs,

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

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

Variablen und Datentypen

Variablen und Datentypen Programmieren mit Python Modul 1 Variablen und Datentypen Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Schreiben von Computerprogrammen 3 2.1 Computerprogramme bestehen aus Daten und Instruktionen.......

Mehr