userpages.uni-koblenz.de€¦  · Web viewGegeben sei die folgende Liste von...

14
Universität Koblenz-Landau Übungen zur Vorlesung Grundlagen der Rechnerarchitektur - Sommersemester 2019 - Übungsblatt 5 Abgabe bis Sonntag, 07. Juli 2019, 23:59 Uhr als pdf via SVN A1 (10) A2 (10) A3 (10) A4 (8) A5 (6) A6 (6) (50) Punkt e Kürze l Von Korrektoren auszufüllen Gruppenname: Name Uni-Mail-Kennung

Transcript of userpages.uni-koblenz.de€¦  · Web viewGegeben sei die folgende Liste von...

Page 1: userpages.uni-koblenz.de€¦  · Web viewGegeben sei die folgende Liste von MIPS-Pseudoinstruktionen, sowie deren Repräsentation in Pseudocodenotation. Geben Sie für jede Pseudoinstruktion

Universität Koblenz-Landau

Übungen zur Vorlesung Grundlagen der Rechnerarchitektur

- Sommersemester 2019 -

Übungsblatt 5

Abgabe bis Sonntag, 07. Juli 2019, 23:59 Uhrals pdf via SVN

A1 (10) A2 (10) A3 (10) A4 (8) A5 (6) A6 (6) ∑ (50)PunkteKürzel

Von Korrektoren auszufüllen

Gruppenname:

Name Uni-Mail-Kennung

Nur die hier aufgeführten Teilnehmer der Gruppe erhalten Punkte!

Page 2: userpages.uni-koblenz.de€¦  · Web viewGegeben sei die folgende Liste von MIPS-Pseudoinstruktionen, sowie deren Repräsentation in Pseudocodenotation. Geben Sie für jede Pseudoinstruktion

Übungen zu Grundlagen der Rechnerarchitektur SS2019 – Übungsblatt 5 2

Aufgabe 1 (10 Punkte)Gegeben sei die folgende Liste von MIPS-Pseudoinstruktionen, sowie deren Repräsentation in Pseudocodenotation. Geben Sie für jede Pseudoinstruktion eine minimale Sequenz von „echten“ (auch als „normal“ bezeichnet) MIPS-Instruktionen an, welche die gleiche Operation ausführen. Als Hinweis ist für jede Pseudoinstruktion eine Anzahl minimal benötigter „Lines of Code“ in der Spalte „#LoC“ gegeben. Steht dort bspw. die Zahl 2, dann benötigen Sie genau 2 Zeilen in MIPS-Assembler Code zur äquivalenten Darstellung. Beachten Sie weiterhin:

klein steht für eine 16-Bit Zahl gross steht für eine 32-Bit Zahl P – ist ein Label

(Hinweis: Nutzen Sie zur Lösung der Aufgabe das Instruction Set unter der Hilfeseite im MARS-Simulator!)

MIPS-Pseudoinstruktion Pseudocodenotation #LoC Lösungmove $t1, $t2 $t1 = $t2 1 1:

beq $t1, klein, P if($t1 == klein)go to P 2 1:2:

beq $t2, gross, P if($t2 == gross)go to P 3 1:2:3:

li $t1, klein $t1 = klein 1 1:

ble $t3, $t5, P if ($t3 <= $t5) go to P 2 1:2:3:

bge $t5, $t3, P if ($t5 >= $t3) go to P 2 1:2:

addi $t0, $t2,gross $t0 = $t2 + gross 3 1:2:3:

lw $t5, gross($t2) $t5 = Memory[$t2 + gross]

4 1:2:3:4:

Page 3: userpages.uni-koblenz.de€¦  · Web viewGegeben sei die folgende Liste von MIPS-Pseudoinstruktionen, sowie deren Repräsentation in Pseudocodenotation. Geben Sie für jede Pseudoinstruktion

Übungen zu Grundlagen der Rechnerarchitektur SS2019 – Übungsblatt 5 3

Aufgabe 2 (10 Punkte)a) Die Abbildung auf der nächsten Seite des Übungsblattes zeigt das Blockschaltbild des MIPS-Prozessors aus der Vorlesung. Angenommen in der Befehlszeile eines MIPS-Programms steht das jeweilige Befehlswort:

(1) sub $t4, $t2, $t1 (0x01496022hex)(2) beq $t4, $t1, loop (0x1189fffehex)Wie wird der Befehl auf die Daten- und Kontrollpfade des dargestellten MIPS-Prozessors bitweise aufgeteilt? Zeichnen Sie an die einzelnen Daten- und Kontrollpfade die jeweiligen Bitwerte des jeweiligen Befehls ein und tragen Sie in die Tabelle die OP- und Kontroll-Bits ein. (Hinweis: siehe Folien von Vorlesung VL 9 + 10 (Prozessor) und beqtest.asm )

Signal name (1) sub (2) beq

Inputs Op5

Op4

Op3

Op2

Op1

Op0

Outputs RegDst

Jump X X

Branch

MemRead

MemtoReg

ALU-Op0

ALU-Op1

MemWrite

ALUSrc

RegWrite

b) R-Format Befehle (R-Type) haben alle den gleichen Opcode und Control-Output. Wie werden diese Befehle unterschieden? Welche Komponente des MIPS-Prozesssors ist hier maßgeblich beteiligt?

Page 4: userpages.uni-koblenz.de€¦  · Web viewGegeben sei die folgende Liste von MIPS-Pseudoinstruktionen, sowie deren Repräsentation in Pseudocodenotation. Geben Sie für jede Pseudoinstruktion

Übungen zu Grundlagen der Rechnerarchitektur SS2019 – Übungsblatt 5 4

(1) sub $t4, $t2, $t1 (0x01496022hex)

Page 5: userpages.uni-koblenz.de€¦  · Web viewGegeben sei die folgende Liste von MIPS-Pseudoinstruktionen, sowie deren Repräsentation in Pseudocodenotation. Geben Sie für jede Pseudoinstruktion

Übungen zu Grundlagen der Rechnerarchitektur SS2019 – Übungsblatt 5 5

(2) beq $t4, $t1, loop (0x1189fffehex)

Page 6: userpages.uni-koblenz.de€¦  · Web viewGegeben sei die folgende Liste von MIPS-Pseudoinstruktionen, sowie deren Repräsentation in Pseudocodenotation. Geben Sie für jede Pseudoinstruktion

Übungen zu Grundlagen der Rechnerarchitektur SS2019 – Übungsblatt 5 6

Aufgabe 3 (10 Punkte)a) Zu Beginn der Vorlesung (01 Einführung (VL02) S. 30 ff) haben wir verschiedene Leistungskriterien (Performance) kennen gelernt. Welches Kriterium wird verbessert und warum ausschließlich dieses?

b) Wovon hängt der Speed-Up einer Pipeline generell ab.

c) Nennen Sie kurz Vor- und Nachteile von Pipelining gegenüber der Parallelverarbeitungzur Leistungssteigerung.

d) Nennen und erläutern Sie in eigenen Worten kurz die fünf Stufen der MIPS-Pipeline.

e) Was versteht man unter Forwarding? Bei welchen Hazard-Typen hilft „Forwarding“?

Page 7: userpages.uni-koblenz.de€¦  · Web viewGegeben sei die folgende Liste von MIPS-Pseudoinstruktionen, sowie deren Repräsentation in Pseudocodenotation. Geben Sie für jede Pseudoinstruktion

Übungen zu Grundlagen der Rechnerarchitektur SS2019 – Übungsblatt 5 7

f) Was versteht man unter Prediction? Bei welchen Hazard-Typen hilft „Prediction“?

g) Was versteht man unter Pipeline-Stall? Bei welchen Hazard-Typen hilft „Stall“?

Page 8: userpages.uni-koblenz.de€¦  · Web viewGegeben sei die folgende Liste von MIPS-Pseudoinstruktionen, sowie deren Repräsentation in Pseudocodenotation. Geben Sie für jede Pseudoinstruktion

Übungen zu Grundlagen der Rechnerarchitektur SS2019 – Übungsblatt 5 8

Aufgabe 4 (8 Punkte)Ändern Sie den nachfolgenden Programmcode, so dass die Semantik des Programms auch auf einem MIPS Rechner mit Delayed Load und Delayed Branches erhalten bleibt.1. Durch das Einfügen von NOP Befehlen.2. Durch das sinnvolle Umsortieren von bestehenden Befehlen. Machen Sie die Umsortierung durch Pfeile deutlich.

1.text 2.globl main

3 main: 4 ori $s2, $zero, 2 5 ori $s3, $zero, 8

7 add $s3, $s2, $s3 8 li $v0, 4 # Print String 9 la $a0, prompt10 syscall11 move $s1, $s312 li $v0, 5 # Read Integer13 syscall14 move $s0, $v015 li $v0, 4 # Print String16 la $a0, danke17 syscall18 lw $t0, lower19 blt $s0, $t0, error20 addi $s1, $s1, 121 addi $s0, $s0, -122 sll $t1, $s0, 223 li $v0, 1 # Print Integer24 lw $a0, array($t1)25 syscall26 li $v0, 4 # Print String27 la $a0, nl # New Line28 syscall29 b ende

30 error:31 addi $s1, $s1, 232 la $a0, fehler33 syscall # print String34 move $s0, $zero35 b ende

Page 9: userpages.uni-koblenz.de€¦  · Web viewGegeben sei die folgende Liste von MIPS-Pseudoinstruktionen, sowie deren Repräsentation in Pseudocodenotation. Geben Sie für jede Pseudoinstruktion

Übungen zu Grundlagen der Rechnerarchitektur SS2019 – Übungsblatt 5 9

36 ende:37 mul $s1, $s1, $s338 move $a0, $s139 li $v0, 1 # Print Integer40 syscall

41.data42 prompt: .asciiz "Bitte Zahl größer 1 eingeben..."43 fehler: .asciiz "Fehler!"44 danke : .asciiz "Danke!"45 nl: .asciiz "\n"46 array : .word 123 456 789 321 65447 lower : .word 1

Page 10: userpages.uni-koblenz.de€¦  · Web viewGegeben sei die folgende Liste von MIPS-Pseudoinstruktionen, sowie deren Repräsentation in Pseudocodenotation. Geben Sie für jede Pseudoinstruktion

Übungen zu Grundlagen der Rechnerarchitektur SS2019 – Übungsblatt 5 10

Aufgabe 5 (6 Punkte) Drei Arten von Data-Hazards können beim Pipelining auftreten: • Read-After-Write (RAW),• Write-After-Read (WAR) und • Write-After-Write (WAW). Geben Sie jeweils ein kurzes Codefragment (MIPS-Assembler-Code) als Beispiel für jede Art eines Data-Hazards an und erläutern Sie mit wenigen, eigenen Worten an Ihrem Bei-spiel die Datenabhängigkeit und wie diese aufgelöst werden kann.

Codefragment Data-Hazard Bedeutung Auflösung

Page 11: userpages.uni-koblenz.de€¦  · Web viewGegeben sei die folgende Liste von MIPS-Pseudoinstruktionen, sowie deren Repräsentation in Pseudocodenotation. Geben Sie für jede Pseudoinstruktion

Übungen zu Grundlagen der Rechnerarchitektur SS2019 – Übungsblatt 5 11

Aufgabe 6 (6 Punkte)a) Geben Sie für die folgenden Begrifflichkeiten aus der Beschreibung für Speicher/Caches eine kurze Definition:

hit:

miss:

hit rate:

hit time:

miss penalty:

b) Warum adressiert man einen Direkt-Adressierten Cache mit den niederwertigen Bits der Speicher-Blockadresse und nicht mit den höherwertigen Bits?