U ̈bung7 RAWiSe18/19
Diese U ̈bung bescha ̈ftigt sich mit der in der Vorlesung besprochenen Mehrzyklenimple- mentierung des MIPS subsets. Am Ende dieses U ̈bungsblattes befinden sich mehrere iden- tische 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 (Erweiterung der Mehrzyklenimplementierung)
Erweitern Sie die in der Vorlesung besprochene Mehrzyklenimplementierung derart, dass die Instruktion jal abgearbeitet werden kann. Gehen Sie folgendermassen vor:
(1) Erweiteren Sie – falls no ̈tig – den Datenpfad und die Steuersignale und zeichnen Sie diese Erweiterungen in einem Zusatzblatt ein.
(2) Beschreiben Sie den Ablauf des Instruktionszyklus fu ̈r jal in der in der Vorlesung verwendeten Pseudocode-Notation. Geben Sie fu ̈r jeden der Taktschritte IF, ID, EX, MEM und WB die Signalzuweisungen an.
(3) Geben Sie den Automatengraphen fu ̈r den um jal erweiterten Kontroller an.
Aufgabe 2 (Erweiterung der Mehrzyklenimplementierung)
Die Mehrzyklenimplementierung soll um eine neuartige Instruktion wai erweitert werden. wai steht fu ̈r “where-am-I” und soll die Adresse der gerade ausgefu ̈hrten Instruktion in ein Register laden.
(1) Definieren Sie eine geeignete Instruktionscodierung fu ̈r wai.
(2) Erweiteren Sie – falls no ̈tig – den Datenpfad und die Steuersignale und zeichnen Sie
diese Erweiterungen in einem Zusatzblatt ein.
(3) Beschreiben Sie den Ablauf des Instruktionszyklus fu ̈r wai in der in der Vorlesung verwendeten Pseudocode-Notation. Geben Sie fu ̈r jeden der Taktschritte IF, ID, EX, MEM und WB die Signalzuweisungen an.
(3) Geben Sie den Automatengraphen fu ̈r den um wai erweiterten Kontroller an.
Seite 1 / 6
U ̈bung7 RAWiSe18/19 Aufgabe 3 (Performancevergleich)
Fu ̈r diese Aufgabe wird folgender Instruktionsmix angenommen:
Zu vergleichen sind drei Implementierungen eines Instruktionssatzes:
• Implementierung M1:
M1 ist eine Mehrzyklenimplementierung wie in der Vorlesung besprochen. Die Takt- frequenz betra ̈gt 600 MHz.
• Implementierung M2:
M2 baut auf M1 auf. Der Unterschied besteht darin, dass bei M2 das Schreiben von Registern im selben Taktzyklus geschieht wie das Lesen des Speichers oder eine ALU Operation. Im Automatengraph des Kontrollers fallen dann die Zusta ̈nde 6 und 7 bzw. 3 und 4 zusammen. Allerdings wird die maximale kombinatorische Verzo ̈gerung gro ̈sser. Die Taktfrequenz der resultierenden Implementierung kann deshalb maximal 400 MHz betragen.
• Implementierung M3:
M3 baut auf M2 auf. Die Erweiterung besteht darin, dass die Speicheradresse im selben Taktzyklus bestimmt wird, in dem auch der Speicherzugriff stattfindet. Im Automatengraph des Kontrollers fallen dann die Zusta ̈nde 2, 3 und 4 bzw. 2 und 5 bzw. 6 und 7 zusammen. Die resultierende Implementierung beno ̈tigt eine noch la ̈ngere Taktperiode und hat deshalb eine maximale Taktfrequenz von 300 MHz.
Stellen Sie fest, welche Implementierung die ho ̈chste Performance hat. Verwenden Sie als Performancemetrik die MIPS-Rate. Warum ist die MIPS-Rate in diesem Fall eine geeignete Performancemetrik?
Instruktionsklasse
relative Ha ̈ufigkeit
lw
30%
sw
15%
R-Type
43%
beq, j
12%
Seite 2 / 6
0 1