代写 MIPS U ̈bung6 RAWiSe18/19

U ̈bung6 RAWiSe18/19
Diese U ̈bung bescha ̈ftigt sich mit der in der Vorlesung besprochenen Einzyklenimplemen- tierungdesMIPSsubsets.AmEndediesesU ̈bungsblattesbefindensichmehrereidentische Zusatzbla ̈tter mit dem Schaltbild fu ̈r den Datenpfad und den Kontroller. Verwenden Sie diese Zusatzbla ̈tter fu ̈r die in den Aufgaben geforderten Erweiterungen.
Aufgabe 1 (Kontroller fu ̈r Einzyklenimplementierung)
(1) Definieren Sie die Steuersignale, die der Kontroller der Einzyklenimplementierung generiert. Vervollsta ̈ndigen Sie dazu Tabelle 1. Die Steuersignale fu ̈r ALUOp[1:0], den ALU-Kontroller, entnehmen Sie den Vorlesungsunterlagen. Verwenden Sie, wenn mo ̈glich, don’t care Werte X fu ̈r die Steuersignale.
Tabelle 1: Steuerleitungen fu ̈r die MIPS Einzyklenimplementierung
(2) Zeichnen Sie fu ̈r die verschiedenen Instruktionen die Werte der Steuersignale in ein Zusatzblatt ein. Erkla ̈ren Sie den Ablauf des Instruktionszyklus und identifizieren Sie jeweils die Elemente des Datenpfades, die keine Rolle spielen.
Aufgabe 2 (Vereinfachung des Kontrollers)
(1) Kann man in der Einzyklenimplementierung auf das Steuersignal MemtoReg ver- zichten und den Multiplexer am Ausgang des Datenspeichers stattdessen mit dem Steuersignal MemRead ansteuern?
(2) Gibt es weitere Mo ̈glichkeiten, die Anzahl der Steuersignale zu reduzieren? Falls ja, unter welchen Voraussetzungen?
Instr.
RegDst
ALUSrc
MemtoReg
RegWrite
MemRead
MemWrite
Branch
ALUOp[1:0]
R-Type
lw
sw
beq
Seite 1 / 12

U ̈bung6 RAWiSe18/19 Aufgabe 3 (Erweiterungen der Einzyklenimplementierung)
Erweitern Sie den MIPS Einzyklendatenpfad derart, dass folgende Instruktionen verar- beitet werden ko ̈nnen:
(1) j (2) addi (3) jal (4) sll
Geben Sie auf den Zusatzbla ̈ttern jeweils die Datenpfadelemente und Steuerleitungen an, die zusa ̈tzlich zu der in der Vorlesung besprochenen Implementierung beno ̈tigt werden. Zeichnen Sie fu ̈r die neuen Instruktionen die Werte der Steuersignale in das Zusatzblatt ein. Erkla ̈ren Sie wiederum den Ablauf des Instruktionszyklus und identifizieren Sie jeweils die Elemente des Datenpfades, die keine Rolle spielen.
Hinweis 1:
Bei den unbedingten Sprunginstruktionen j und jal wird die Sprungadresse durch Kon- katenation der ho ̈chstwertigsten 4 Bit des PC mit der 26-bit Konstanten in der Instruktion gebildet. Diese Adresse ist eine Wortadresse, dh. die niederwertigsten 2 Bit werden auf 0 gesetzt. Das kann zB. realisiert werden, indem die 26-bit Konstante um 2 Bit nach links geschoben wird. MIPS definiert, dass fu ̈r diese Adressbildung der erho ̈hte PC, also PC+4, genommen werden muss.
Hinweis 2:
Fu ̈r die Implementierung der Instruktion sll nehmen Sie an, dass die ALU um einen barrel shifter erweitert wurde. Ein barrel shifter ist eine kombinatorische Schaltung, die ein Eingangswort um eine variable Anzahl von Stellen, vorgegeben durch einen Kontroll- eingang, schiebt. Sie ko ̈nnen annehmen, dass die ALU einen zusa ̈tzlichen Eingang hat, an dem ein bina ̈res Wort angelegt wird, das die Anzahl der Stellen darstellt, um die der obere ALU-Eingang geschoben wird.
Seite 2 / 12

U ̈bung6 RAWiSe18/19 Aufgabe 4 (Performance der Einzyklenimplementierung)
Fu ̈r eine Einzyklenimplementierung sind folgende kombinatorische Verzo ̈gerungszeiten ge- geben: Ein Speicherzugriff beno ̈tigt 250 ps, sowohl fu ̈r das Lesen als auch das Schreiben. Eine ALU-Operation bzw. eine Adder-Operation dauert 40 ps. Der Zugriff auf das Re- gisterfile dauert auch 40 ps, sowohl fu ̈r das Lesen als auch das Schreiben. Alle ande- ren Verzo ̈gerungszeiten (zB. der Multiplexer, Kontroller, Leitungen, etc.) werden ver- nachla ̈ssigt.
Fu ̈r diese Aufgabe wird folgender Instruktionsmix angenommen:
Untersuchen Sie die relative Performance zwischen einer “normalen” Einzyklenimplemen- tierung und einer Einzyklenimplementierung mit einer Taktperiode variabler La ̈nge. Bei der normalen Einzyklenimplementierung wird jede Instruktion in einer Taktperiode kon- stanter La ̈nge abgearbeitet. Bei der Implementierung mit Taktperiode variabler La ̈nge kann fu ̈r jede Instruktion die jeweils kleinstmo ̈gliche Taktperiode verwendet werden. Man kann sich vorstellen, dass man abha ̈ngig von der Instruktion die Periode des Taktsignals a ̈ndern kann. Eine solche Implementierung ist zwar nicht praktikabel, der Performancever- gleich zeigt aber den potentiellen “Performanceverlust” einer Einzyklenimplementierung auf. Als Hilfestellung dient folgende Tabelle:
Tabelle 2: Verzo ̈gerungszeiten fu ̈r die Instruktionen
Instruktion
relative Ha ̈ufigkeit
lw
25%
sw
10%
R-Type
45%
beq
15%
j
5%
Instruktion
Instr.Memory
Reg.Read
ALUOperation
DataMemory
Reg.Write
Summe
R-Type
lw
sw
beq
j
Seite 3 / 12