Computerarchitektur. Übung 3

Ähnliche Dokumente
Übung Praktische Informatik II

4. Mikroprogrammierung 4a - 1

Datenpfad einer einfachen MIPS CPU

Kap.3 Mikroarchitektur. Prozessoren, interne Sicht

Datenpfad einer einfachen MIPS CPU

Datenpfad einer einfachen MIPS CPU

Arithmetik, Register und Speicherzugriff. Grundlagen der Rechnerarchitektur Assembler 9

Grundlagen der Rechnerarchitektur

4. Mikroprogrammierung 4a - 1

Datenpfad einer einfachen MIPS CPU

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


Steuerwerk einer CPU. Einführung in die Technische Informatik Falko Dressler, Stefan Podlipnig Universität Innsbruck

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

Technische Informatik I - HS 18

Assembler am Beispiel der MIPS Architektur

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

Grundlagen der Rechnerarchitektur. MIPS Assembler

Datenpfaderweiterung Der Single Cycle Datenpfad des MIPS Prozessors soll um die Instruktion min $t0, $t1, $t2 erweitert werden, welche den kleineren

Technische Informatik I - HS 18

, SS2012 Übungsgruppen: Do., Mi.,

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

Tutorium Rechnerorganisation

Prinzipieller Aufbau und Funktionsweise eines Prozessors

Auch hier wieder. Control. RegDst Branch MemRead MemtoReg ALUOp MemWrite ALUSrc RegWrite. Instruction[31 26] (also: das Opcode Field der Instruktion)

Teil 2: Rechnerorganisation

Pipelining. Die Pipelining Idee. Grundlagen der Rechnerarchitektur Prozessor 45

Speichern von Zuständen

Computersysteme. Fragestunde

Rechnernetze und Organisation

9. Assembler: Der Prozessor Motorola 68000

9. Assembler: Der Prozessor Motorola 68000

Übungsblatt 7 Implementierung von Programmsteuerbefehlen in einer Befehlspipeline Abgabefrist: Mittwoch , 14:00 Uhr

Lösungsvorschlag 9. Übung Technische Grundlagen der Informatik II Sommersemester 2009

Was ist die Performance Ratio?

Technische Informatik - Eine Einführung

Kap.3 Mikroarchitektur. Prozessoren, interne Sicht

FAKULTÄT FÜR INFORMATIK

10. Die Adressierungsarten des MSP 430

Rechnerorganisation. (10,11) Informationskodierung (12,13,14) TECHNISCHE UNIVERSITÄT ILMENAU. IHS, H.- D. Wuttke `09

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

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

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

Digitaltechnik und Rechnerstrukturen. 2. Entwurf eines einfachen Prozessors

Neues vom STRIP Forth-Prozessor

RO-Tutorien 3 / 6 / 12

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

Von-Neumann-Architektur

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

Die Mikroprogrammebene eines Rechners

Carry Lookahead Adder

Sprungbefehle und Kontroll-Strukturen

Computersysteme. Serie 11

INE1 Bit-Operationen. Bit-Operationen Übungen Bits setzen, löschen, abfragen Beispiel: Bitmap

Kontrollpfad der hypothetischen CPU

Integrierte Schaltungen

Praktikum ASP Blatt 2 1. LEHRSTUHL FÜR RECHNERARCHITEKTUR UND PARALLELE SYSTEME Aspekte der systemnahen Programmierung bei der Spieleentwicklung

Kontrollpfad der hypothetischen CPU

Der Toy Rechner Ein einfacher Mikrorechner

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

9. Die Adressierungsarten des MSP 430

J.5 Die Java Virtual Machine

Geräteentwurf mit Mikroprozessoren 1

3.8 Sequentieller Multiplizierer 159

Einführung in die Rechnerarchitektur (ERA) Zentralübung 6 am 2. Dezember 2016

ERA-Zentralübung 6. Maximilian Bandle LRR TU München ERA Zentralübung 6 Maximilian Bandle 1

Vorlesung Rechnerarchitektur. Einführung

Rechnerstrukturen 1: Der Sehr Einfache Computer

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

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

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

Mikrocomputertechnik

7 Ein einfacher CISC-Prozessor

Die HAM. Die Hypothetische Akku-Maschine

1. Übung aus Digitaltechnik Aufgabe. Die folgende CMOS-Anordnung weist einen Fehler auf:

Übungen zur Vorlesung Technische Informatik I, SS 2002 Hauck / Guenkova-Luy / Prager / Chen Übungsblatt 5 Rechenwerke / Scheduling

Rechnergrundlagen SS Vorlesung

Lösungshinweise/-vorschläge zum Übungsblatt 9: Software-Entwicklung 1 (WS 2017/18)

Mikroprozessor als universeller digitaler Baustein

Rechnerstrukturen Sommersemester 2003

... Adressierung und Befehlsfolgen (1) Speicherbelegung. Hauptspeicheradressen. Inhalt von Speicherbelegungen: Operanden - Zahlen - Zeichen Befehle

Grundlagen der Technischen Informatik

Einfache Liste: Ein Stapel (Stack) Ansatz. Schaubild. Vorlesung 1. Handout S. 2. Die einfachste Form einer Liste ist ein Stapel (stack).

Mikrocomputertechnik. Einadressmaschine

System-Architektur und -Software

Programmieren 1 C Überblick

Datentypen in C. Informatik Universität Hamburg Proseminar: C-Grundlagen und Konzepte Jan Branitzki

Transkript:

Computerarchitektur Übung 3 ufgabe 18) Die LU ist das Rechenwerk in einem Prozessor und führt arithmetische und logische Operationen auf Datenwörter aus. Intern kann die LU aus parametrischen Schaltungen aufgebaut sein, die in bhängigkeit von Steuersignalen (bzw. Parametern) am usgang der LU das Ergebnis der jeweilige gewünschten Funktion ausgeben. Eine zu konstruierende LU soll folgende Funktionalität besitzen: Parallele ddition zweier 32 it-datenworte itweise Und-Verknüpfung zweier 32 it-datenworte itweise Oder-Verknüpfung zweier 32 it-datenworte Unverändertes Durchschalten eines Datenwortes. 1. Die LU besteht aus mehreren Kernzellen. Jede Kernzelle wendet die oben genannten Operationen auf 1-it Datenworte an und ist aus den unten abgebildeten parametrischen Schaltungen aufgebaut.welche Signalleitung muss jeder der unten aufgeführten Schaltungen hinzugefügt werden, damit die Funktion einer Kernzelle durch externe Signale wählbar ist? 2. Zeichnen Sie das lockschaltbild einer Kernzelle unter Verwendung der oben abgebildeten parametrischen Schaltungen. Durch welche hier nicht abgebildete Teilschaltung kann die nzahl der aus der Kernzelle geführten Funktionsauswahlleitungen minimiert werden? 3. Die Kernzellen müssen miteinander verschaltet werden, sodass die entstehende Gesamtschaltung die oben in der ufgabenstellung genannten Funktionalität besitzt. Wieviele der Kernzellen werden hierfür benötigt? Welche Funktion 1

haben die Ein- und usgänge des Volladdierers? Zeichnen Sie in ein lockschaltbild der entstehenden Gesamtschaltung. 4. m Eingang der LU soll das Register, am Eingang das Register angeschlossen werden. Ebenso sollen Register für Speicherzugriffe an die LU angeschlossen werden. Das Ergebnis der LU soll über einen Shifter in die jeweiligen Zielregister gespeichert werden können. Der Shifter soll noch folgende Funktionalität besitzen: Keine Veränderung des Datenwortes Shift left Shift right Zeichnen Sie den Datenweg und die benötigten Steuersignale in einem lockschaltbild. 5. Stellen Sie eine Wertetabelle für die Funktionsauswahl- Signalleitung der LU und des Shifters dar. Welche möglichen Gesamtfunktionen ergibt sich bei verschiedenen itkombinationen der LU und des Shifters. Welcher Zusammenhang ergibt sich mit den Mikrobefehlen in der Mikroarchitektur? 6. Welche Register könnten noch hinzugefügt werden, um eine Leistungssteigerung des Prozessors zu erhalten? Lösung 18.1, 18.2: 2 zu 4 MUX Voll C ddierer Ü Ü C & C C 2

Lösung 18.3: Ü Kernzelle C Ü 32 Kernzellen KZ C KZ C KZ C Ü Ü Ü Ü Ü Ü Lösung 18.4: S 0 S 1 Shift F 0 F 1 LU E EC E EC E EC MDR EC E MR 3

Lösung 18.5: F F 0 1 Funktion 0 0 0 1 + 1 0 1 1 S S 0 1 Funktion 0 0 kein shift 0 1 links shift 1 0 rechts shift 1 1 kein shift F F S S 0 1 0 1 Funktion 0 0 0 0 0 0 0 1 links shift (x 2) 0 0 1 0 rechts shift (:2) 0 0 1 1 0 1 0 0 + 0 1 0 1 links shift + 0 1 1 0 rechts shift + 0 1 1 1 + Lösung 18.6: - TOS (Top of Stack) - Pointer o Stack Pointer 4

ufgabe 19) Gegeben ist das lockschaltbild der MIC-1. 1. Die Mikroarchitektur der MIC-1 umfasst den Datenweg und das Steuerteil. eschreiben Sie die Komponenten des Steuerteils und deren ufgaben. 2. Wieso wird ein ROM als Steuerspeicher eingesetzt? Wann wäre es möglich und sinnvoll, einen wiederbeschreibbaren Speicher einzusetzen? 3. Wieso sind die Steuersignale des C-usses nicht ebenso wie die Steuersignale des -usses mit einem n:m Dekoder kodiert? 5

4. Folgende Zeiten sind für eine Implementierung der MIC1 gegeben: 1 ns um MIR zu laden 1 ns, um den Inhalt ein Registers auf den -us zu legen 3 ns, bis das Ergebnis berechnet worden ist und am Shifter-usgang bereitsteht 1 ns, bis das Ergebnis am C-us stabil anliegt Der Taktimpuls ist 2 ns breit. Kann diese Maschine mit einer Taktfrequenz von 100 MHz betrieben werden? Was geschieht bei einer Taktfrequenz von 150 MHz? 5. Gegeben sei das folgende Mikroprogramm: : H = H + 1 : Z = H + PC; if (Z) goto C; else goto C:... Stellen Sie die itkombination der Mikroinstruktionen dar. Die Zeile befindet sich an der dresse 0 und die Zeile an der dresse 1 im Kontrollspeicher. 6

Lösung 19.1: - Control Store o Mikrobefehle - MIR o Steuerung der LU anhand des aktuellen Mikrobefehls - 4-zu-16 Dekoder o nsteuerung der Register bzgl. us - N/Z o N gesetzt LU Ergebnis Negativ o Z gesetzt LU Ergebnis Null - High it o uswahl von it 9 im MPC MPC High it 9 2 = 512 Speicher dressen ddr 8 N JMN Z JMZ = High it 7

- MPC o O Oder Schaltung ddr[7...0] MRU[7...0] JMPC ( ) ( ) = 7...0 ddr JMPC MRU JMPC MPC Lösung 19.2: Vorteile von wiederbeschreibbarem Speicher?` - Änderung/Erweiterung der Mikroinstruktionsbefehle Geringere Zugriffszeiten Zeit eines efehlszyklus: klein(-er als Speicher) Lösung 19.3: sp: MR = SP = SP + 1 das würde nicht klappen mit einem dekoder! us: Nur 1 Register aktiv C us: Mehrere Register aktiv 4 16 Dekoder bei C us nicht sinnvol! Lösung 19.4: 100 MHz Taktfrequenz 1 Takt = 10 ns Gesamtzeit: 1 ns + 1 ns + 3 ns + 1 ns + 2 ns = 8 ns 10 ns > 8 ns 150 MHz Taktfrequenz 1 Takt = 6,67 ns 8 ns > 6,67 ns 8

Lösung 19.5: : H = H + 1 LU: + 1 C us us + 1 : ; ( ) ; Z = H + PC if Z goto C else goto + 9

ufgabe 20) Im Folgenden wird die IJVM betrachtet, die auf der Mikroarchitektur der MIC-1 aufsetzt. 1. Gegeben ist folgender Java-Code: i = (j k 6) + (j k 6); a. In welche IJVM-ssemblerbefehle würde ein nicht optimierender Compiler diesen Java-Code umsetzen? b. Wie würde ein optimierender Compiler diesen Code compilieren? Verwenden Sie nur die ssemblerbefehle, die in der IJVM bereits definiert wurden. Das bedeutet insbesondere, dass es keinen Multiplikationsbefehl gibt. Formen Sie den obigen usdruck nicht um! 2. erechnen Sie für beide rten der Kompilierung, wie lange eine 200 MHz getaktete MIC-1 braucht, um die Java- nweisung aus dem vorigen ufgabenteil auszuführen. 3. Der efehl iflt der IJVM entfernt das oberste Wort vom Stapel und verzweigt, falls das Wort kleiner als Null ist. In der Implementierung des iflt-efehls wird in iflt4 zu T verzweigt, falls das N it gesetzt ist. T verzweigt anschließend zu goto2. Der Code bei T ist aber der gleiche wie bei goto1. Hätte man goto1 nicht direkt in iflt4 anspringen können, so dass Speicherplatz im Kontrollspeicher gespart werden kann? iflt1 MR = SP = SP - 1; rd // Read in next-to-top word onstack iflt2 OPC = TOS // Save TOS in OPC temporarily iflt3 TOS = MDR // Put new top of stack in TOS iflt4 N = OPC; if (N) goto T; else goto F // ranch on N bit T OPC = PC - 1; fetch; goto goto2 // Same as goto1; needed for target address F PC = PC + 1 // Skip first offset byte F2 PC = PC + 1; fetch // PC now points to next opcode F3 goto Main1 // Wait for fetch of opcode goto1 OPC = PC - 1 // Save address of opcode. goto2 PC = PC + 1; fetch // MR = 1st byte of offset; fetch 2nd byte Goto3 H = MR << 8 // Shift and save signed first byte in H goto4 H = H OR MRU // H = 16-bit branch offset goto5 PC = H + OPC; fetch // dd offset to OPC goto6 goto Main1 // Wait for fetch of next opcode 10

4. etrachten Sie folgende Implementierung von if icmpeq if_icmpeq1 MR = SP = SP - 1; rd // Read in next-to-top word of stack if_icmpeq2 MR = SP = SP - 1 // Set MR to read in new topof-stack if_icmpeq3 H = MDR; rd // Copy second stack word to H if_icmpeq4 OPC = TOS // Save TOS in OPC temporarily if_icmpeq5 TOS = MDR // Put new top of stack in TOS if_icmpeq6 Z = OPC - H; if (Z) goto T; else goto F // If top 2 words are equal, goto T, else goto F In if icmpeq3 wird MDR in H kopiert und in der Zeile if icmpeq6 von OPC (=TOS) subtrahiert. Wieso wird in der Zeile if icmpeq3 nicht die nweisung Z = MDR TOS; rd; if(z)... ausgeführt, so dass nweisungen eingespart werden können? 5. Die Instruktion ISHR (rithmetic Shift Right Integer) gibt es in der JVM, nicht aber in der IJVM. Sie benutzt die oberen beiden Werte des Stapels und ersetzt beide durch einen einzelnen Wert das Ergebnis. Das zweite Wort von oben im Stapel ist der zu verschiebende Operand. Sein Inhalt wird um einen Wert zwischen 0 und einschließlich 31 nach rechts verschoben, je nach dem Wert der fünf am wenigsten signifikanten its des obersten Stapelwortes (die übrigen 27 it des obersten Wortes werden ignoriert). Das Vorzeichenbit wird um die itzahl, die der Verschiebungszahl entspricht, nach rechts repliziert. Welche arithmetische Operation entspricht der Verschiebung nach rechts? Erweitern Sie den Mikrocode um diese Instruktion als Teil der IJVM. Lösung 20.1: a) Nicht optimierter Code ILoad j ILoad k IPUSH 6 ILoad j ILoad k IPUSH 6 IDD ISTORE i 11

b) optimierter Code ILoad j ILoad k IPUSH 6 DUP IDD ISTORE i oder ILoad j ILoad k DUP IDD IPUSH 12 ISTORE i oder ILoad j ILoad k DUP IDD ISTORE i IInc i 12 Lösung 20.2: nicht gelöst! Lösung 20.3: efehlssprung efehlssprung T: 000000000 F: 100000000 goto1: 010100111 0x7 F: 100000000 N = OPC, if (N) goto T goto goto1 else goto F 12

Lösung 20.4: Z = TOS MDR beide liegen in us und OP kann nur durchgeführt werden, wenn einer in us und andere im us liegt. Lösung 20.5: ISHR x MR = SP = SP 1; rd TOS = x ISHR3: Z= TOS if(z) goto ISHR6 else goto ISHR4 ISHR4: MDR = MDR>> TOS = TOS 1 goto ISHR3 ISHR6: TOS = MDR; wr; goto Main1 Klausuraufgabe IJVM efehl für die Micro MIC a 3b =, mit a, b. 4 Shifter Funktion 0 0 kein Shift 0 1 Rechtsshift um 1(>>1) 1 0 Linksshift um 1 (<<1) 1 1 kein Shift b + b + b 4 Iload b DUP DUP Idd Idd H = LV MR = MRU + H ; rd MR = SP = SP + 1 PC = PC + ; fetch; wr TOS = MDR PC = PC + 1; fetch; goto MR MR = SP = SP + 1 MDR = TOS ; wr PC = PC + 1; fetch; goto MR 13

MR = SP = SP + 1 MDR = TOS ; wr PC = PC + 1; fetch; goto MR MR = SP = SP 1 H = TOS MDR = TOS = MDR + H; wr MR := dress pointer MDR := Daten Register Vorgaben: b SP, MR TOS = b Lösung1: H = TOS MDR = H + TOS MDR = H + MDR MDR = MDR>> MDR = MDR>>; wr 3,5 / 14 Punkten Lösung2: TOS = TOS>> /0,5b H = TOS>> /0,25b MDR = H + TOS; wr /0,75b 10,5 / 14 Punkten Lösung3: H = TOS>> MDR = H + TOS>>; wr sp (Lösung3): b = 15 45 = 112 4 hier: Zeile1: 7 Zeile2: 7 + 15 22 = = 11 2 2 14