rechner-strukturen: abschluß-klausuren mit ausgew¨ahlten l ... · erweitern sie den befehlssatz...

64
Rechner-Strukturen: Abschluß-Klausuren mit ausgew¨ ahlten L¨ osungen Prof. Dr. Thomas Risse www.weblearn.hs-bremen.de/risse/RST Fachbereich Elektrotechnik & Informatik Hochschule Bremen SS 2004 Inhaltsverzeichnis Inhaltsverzeichnis 1 1 RST-Abschluß-Klausur WS98 3 2 RST-Abschluß-Klausur SS98 10 3 RST-Abschluß-Klausur WS97 15 4 RST-Abschluß-Klausur SS97 20 5 RST-Abschluß-Klausur WS96 26 6 RST-Abschluß-Klausur WS95e 32 7 RST-Abschluß-Klausur WS95f 36 8 RST-Abschluß-Klausur WS95 40 9 RST-Abschluß-Klausur SS95 45 10 RST-Abschluß-Klausur WS94 51 1

Upload: others

Post on 02-Sep-2019

2 views

Category:

Documents


0 download

TRANSCRIPT

Rechner-Strukturen:Abschluß-Klausuren mit ausgewahlten Losungen

Prof. Dr. Thomas Risse

www.weblearn.hs-bremen.de/risse/RST

Fachbereich Elektrotechnik & InformatikHochschule Bremen

SS 2004

Inhaltsverzeichnis

Inhaltsverzeichnis 1

1 RST-Abschluß-Klausur WS98 3

2 RST-Abschluß-Klausur SS98 10

3 RST-Abschluß-Klausur WS97 15

4 RST-Abschluß-Klausur SS97 20

5 RST-Abschluß-Klausur WS96 26

6 RST-Abschluß-Klausur WS95e 32

7 RST-Abschluß-Klausur WS95f 36

8 RST-Abschluß-Klausur WS95 40

9 RST-Abschluß-Klausur SS95 45

10 RST-Abschluß-Klausur WS94 51

1

Th. Risse, HSB: RST – SS04 2

11 Anlagen – Arbeitsblatter 57

11.1 single cycle implementation . . . . . . . . . . . . . . . . . . . . . . . . . 57

11.2 multi cycle implementation . . . . . . . . . . . . . . . . . . . . . . . . . 58

11.3 pipeline implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

11.4 superscalar implementation . . . . . . . . . . . . . . . . . . . . . . . . . 60

11.5 DLX/MIPS-ISA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

Index 63

Aufgaben und zugehorige Losungen sind wechselweise verzeigert.

Th. Risse, HSB: RST – SS04 3

1 RST-Abschluß-Klausur WS98

Abschluß-Klausur Rechner-Strukturen 22.9.98

Name Matrikel

Alle Unterlagen und Hilfsmittel sind zugelassen.

Unbedingt knappe, prazise Aussagen anstelle von vagen, wolkigen Romanen!

Erwartet werden maximal 40 Pkt!

Lieber wenige Fragen ganz anstatt alle Fragen nur teilweise bearbeiten!

1. Der MIPS R2000 Befehlssatz enthalt den multiply-Befehl mult Rs,Rt imBefehlsformat 0 Rs Rt 0 0x18 . Der Prozessor legt das ProduktRs*Rt in zwei zusatzlichen Registern ab: das low order word des Ergebnissesim Register lo, das high oder word im Register hi.

Bewerten Sie diese Entwurfsentscheidung, also Notwendigkeit, Konsequen-zen, Kosten/Nutzen von mult bzw. der ‘unsigned’ Version multu und stellenSie Alternativen anhand von Beispielen aus den Befehlssatzen anderer Pro-zessoren dar. (3 Pkt)

2. Erst in der aktuellen Auflage1 listen Patterson & Hennessy den Befehl sto-re double word mit der Syntax sd Rscr address und der Bedeutung“speichere die Register Rscr und Rscr+1 im memory ab Adresse address”unmißverstandlich als Pseudo-Instruktion, die der Assembler in echte In-struktionen umsetzt.

Zeigen Sie an sd und weiteren Beispielen, inwiefern derartige Pseudo-In-struktionen sinnvoll sind. Warum wurde sd wohl nicht in hardware desMIPS R2000 realisiert? (2 Pkt)

Erweitern Sie den Befehlssatz des pipeline-Prozessors MIPS R2000 um denstore double-Befehl.Diskutieren Sie mogliche Befehlsformate und bewerten Sie jeweils den Ge-brauchswert von sd. (2 Pkt)

Skizzieren Sie in Anlage Fig. 6.24 und erlautern Sie die notwendigen Ande-rungen oder Erganzungen im Daten-Pfad und in der Steuerung. BedenkenSie das richtige timing. Wie sind die Signale zu setzen? (8 Pkt)

Bewerten Sie jetzt (erneut) Kosten/Nutzen Ihrer sd-Realisierung. (1 Pkt)

1Patterson&Hennessy: Computer Organization and Design; 1998, p A-68

Th. Risse, HSB: RST – SS04 4

3. Ubersetzen Sie den Rumpf der Funktion long ggt(long x,long y)

long rest;

while (y>0) { rest=x%y; x=y; y=rest; } // return x

zur Bestimmung des großten gemeinsamen Teilers in DLX assembly langua-ge (Anlage DLX Standardbefehlssatz), optimieren Sie Ihren Code (Kontext-neutral) fur einen DLX-Prozessor ohne forwarding mit 1-Zyklus-Latenz furload- und ALU-Befehle und erlautern Sie Ihre Optimierung. (8 Pkt)

4. Demonstrieren Sie anhand von Beispielen (C-Programm zusammen mitdem von dlxcc erzeugten assembler code) die diversen Moglichkeiten der(Compiler-) Optimierung des DLX- oder MIPS R2000-Codes. (je 2 Pkt)

5. Berechnen Sie fur einen pipeline-Prozessor den Beschleunigungsfaktor durchbranch prediction. Verifizieren Sie die Plausibilitat Ihrer Formel und disku-tieren Sie deren Parameter. (4 Pkt)

6. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System aufWortadressen 8,9,17,28,18,8,9,18,29,19,8,9 (in einer for-loop)a) fur einen 1-assoziativen cache mit 8 1-Wort-Blocken,b) fur einen 1-assoziativen cache mit 4 Blocken a 2 Worten,c) fur einen 2-assoziativen cache mit 1-Wort-Blocken undd) fur einen 2-assoziativen cache mit Blocken a 2 Worten– jeweils mit LRU2. Skizzieren Sie die cache-Belegungen, bestimmen Siedie Anzahl der hits und der misses sowie diejenige der zu ladenden Wor-te und vergleichen Sie das hit/miss-Verhaltnis mit der jeweils generell zuerwartenden cache-Leistung. (6 Pkt)

7. Vergleichen Sie parallele Versionen des Gauß-Algorithmus’ und ihre Imple-mentierungen auf Vektor-Rechnern, Mehr-Prozessor-Systemen und Rech-ner-Verbunden, z.B. Linux-Clustern. (6 Pkt)

2LRU = least recently referenced

Th. Risse, HSB: RST – SS04 5

Losungen der Abschluß-Klausur Rechner-Strukturen 22.9.98

1. Der MIPS R2000 Befehlssatz enthalt den multiply-Befehl mult Rs,Rt imBefehlsformat 0 Rs Rt 0 0x18 . Der Prozessor legt das ProduktRs*Rt in zwei zusatzlichen Registern ab: das low order word des Ergebnissesim Register lo, das high oder word im Register hi.

Bewerten Sie diese Entwurfsentscheidung, also Notwendigkeit, Konsequen-zen, Kosten/Nutzen von mult bzw. der ‘unsigned’ Version multu und stellenSie Alternativen anhand von Beispielen aus den Befehlssatzen anderer Pro-zessoren dar. (3 Pkt)

1Pkt fur Nutzen, 1 Pkt fur Kosten, 1Pkt fur Alternativen

Nutzen: schnelle integer Multiplikation, d.h. ohne Konvertierung nach GK,GK-Multiplikation und Ruck-Konvertierung des ErgebnissesKosten: integer-Multiplizierer, zwei Register und data movement Instruk-tionen move from/to low/high mflo, mfhi bzw. mtlo, mthiAlternativen im 80x86: z.B. Festkomma-Multiplikation ML16 (s. H&P, D-6),oder stack-orientierte FP-Operationen auf GK-Registern; die Pentium FPUist piplined und unterstutzt auch 16-, 32- und 64-bit Integer-Argumente in8 GK-Registern, s. Martin, S.133,138

2. Erst in der aktuellen Auflage3 listen Patterson & Hennessy den Befehl sto-re double word mit der Syntax sd Rscr address und der Bedeutung“speichere die Register Rscr und Rscr+1 im memory ab Adresse address”unmißverstandlich als Pseudo-Instruktion, die der Assembler in echte In-struktionen umsetzt.

Zeigen Sie an sd und weiteren Beispielen, inwiefern derartige Pseudo-In-struktionen sinnvoll sind. Warum wurde sd wohl nicht in hardware desMIPS R2000 realisiert? (2 Pkt)

1Pkt fur sinnvoll, weil einfacher zu programmieren bzw. zu compilieren,1Pkt fur nicht in hardware implementiert, weil 1) selten, 2) hoher Aufwand(s.u.: zwei Zyklen genauso gut wie Emulation – sonst aufwendige, doppeltbreite Datenpfade) und 3) leicht zu emulieren

Erweitern Sie den Befehlssatz des pipeline-Prozessors MIPS R2000 um denstore double-Befehl.Diskutieren Sie mogliche Befehlsformate und bewerten Sie jeweils den Ge-brauchswert von sd. (2 Pkt)

Skizzieren Sie in Anlage Fig. 6.24 und erlautern Sie die notwendigen Ande-rungen oder Erganzungen im Daten-Pfad und in der Steuerung. BedenkenSie das richtige timing. Wie sind die Signale zu setzen? (8 Pkt)

Bewerten Sie jetzt (erneut) Kosten/Nutzen Ihrer sd-Realisierung. (1 Pkt)

3Patterson&Hennessy: Computer Organization and Design; 1998, p A-68

Th. Risse, HSB: RST – SS04 6

Entweder 32− 6− 5 = 21bit absolute address (≡2MB) oder address offsetoder aber altes Format der Form ld Rdest, RR(immediate)

Flexibler ist letzt genanntes Format. Falls address als absolutem Adreß-offset verwendet wird, ergibt sich die Frage: zu welcher Basis? etwa zumPC: nicht sinnvoll, besser zum SP in Register R14.

Implementierung: entweder relevante Datenpfade doppelt breit (64 bit) aus-legen oder in zwei pipeline-Zyklen abarbeiten (komplizierte Steuerung):doppelt breit: Rscr-Nr inkrementieren, ports, doppelt breite Datenpfade imProzessor ziehen dopplet breite caches, busses und memory ports nach sich,will man keine Leistungseinbuße hinnehmen.zwei Zyklen: erste Zyklus normales sw, Rscr-Nr inkrementieren, Adresseinkrementieren, stall einfugen – ausgelost durch untypisches feature derSteuerung ...

3. Ubersetzen Sie den Rumpf der Funktion long ggt(long x,long y)

long rest;

while (y>0) { rest=x%y; x=y; y=rest; } // return x

zur Bestimmung des großten gemeinsamen Teilers in DLX assembly langua-ge (Anlage DLX Standardbefehlssatz), optimieren Sie Ihren Code (Kontext-neutral) fur einen DLX-Prozessor ohne forwarding mit 1-Zyklus-Latenz furload- und ALU-Befehle und erlautern Sie Ihre Optimierung. (8 Pkt)

; save R3, R4, R5

lw R3, R14(x_offset) ; 1. x in R3

lw R4, R14(y_offset) ; 2. y in R4

nop ; 2.5

while_loop:

ble R4, R0, end ; 3.

div R3, R4 ; 4. lo=x/y, hi=x%y

nop ; 4.5

mfhi R5 ; 5. A-65 (1.Aufl)

add R3, R4, R0 ; 6. x=y

add R4, R5, R0 ; 7. y=rest

j while_loop ; 8.

nop ; 8.5

end:

; restore R3, R4, R5

Optimierung: Vertauschen von 1 und 2 vermeidet 2.5; Vertauschen von 5und 6 vermeidet 4.5, erzeugt aber neues nop, wenn nicht 7 hinter 8 in branchdelay slot geschoben werden kann; statt 5 und 7 gleich mfhi R4

alternative modulo-Bildungen

Th. Risse, HSB: RST – SS04 7

4. Erlautern Sie anhand von Beispielen (C-Programm zusammen mit dem vondlxcc erzeugten assembler code) die diversen Moglichkeiten der (Compiler-)Optimierung. (je 2 Pkt)

Verbreiten von Kopien zur besseren Register-Nutzung, Zusammenfassenvon Sprungen, Eliminieren gemeinsamer Teilausdrucke, Eliminieren vondead code, constant expression evaluation, reduction of strength, inline co-de, ...

5. Berechnen Sie fur einen pipeline-Prozessor den Beschleunigungsfaktor durchbranch prediction. Verifizieren Sie die Plausibilitat Ihrer Formel und disku-tieren Sie deren Parameter. (4 Pkt)

1Pkt fur z.B. ’branch not taken’ und pipeline-Modell, 2Pkt fur Formel, 1Pktfur Bewertung

Verzweigungsvoraussage sei branch not taken, Programm mit n Instruktio-nen, Anteil α an Verzweigungen, penalty x cycles fur Verzweigungen ohnebranch prediction, Anteil τ von branches not taken, penalty y cycles fur... Sei Tc die pipeline cycle time. Der Beschleunigungsfaktor β ist danndurch β =

Tohne branch prediction

Tmit branch prediction= nα(1+x)Tc+n(1−α)Tc

nα(τ+(1−τ)(1+y))Tc+nαTc= α(1+x)+1−α

α(τ+(1−τ)(1+y))+α=

x+1/α(τ+(1−τ)(1+y)+1

gegeben. Die Parameter x und y sind Maschinen-abhangig,die Parameter α und τ sind Programm-abhangig.

6. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System aufWortadressen 8,9,17,28,18,8,9,18,29,19,8,9 (in einer for-loop)

a) fur einen 1-assoziativen cache mit 8 1-Wort-Blocken:

8 9 17 28 18 8 9 18 29 19 8 90 8 8 81 9 17 9 92 18 183 194 285 2967 9

Adresse mod 8

also mit 4 hitsbei 8 zu

ladenden Worten

b) fur einen 1-assoziativen cache mit 4 Blocken a 2 Worten,

8 9 17 28 18 8 9 18 29 19 8 90 (8,9)(8,9)(16,17) (8,9)(8,9) (8,9)(8,9)1 (18,19) (18,19) (18,19)2 (28,29) (28,29)3

mit (Adresse/2) mod 4 also 7 hits bei 10 geladenen Worten

c) fur einen 2-assoziativen cache mit 1-Wort-Blocken (2-assoziativ, also 2Blocke pro set)

Th. Risse, HSB: RST – SS04 8

8 9 17 28 18 8 9 18 29 19 8 9set0 8 8 8

28set1 9 9 9

17 29set2 18 18

set3 19

Adresse mod 4

also mit 5 hitsbei 8 zu

ladenden Worten

d) fur einen 2-assoziativen cache mit Blocken a 2 Worten (2-assoziativ, also2 Blocke pro set).

8 9 17 28 18 8 9 18 29 19 8 9set0 (8,9)(8,9) (28,29) (28,29) (8,9)(8,9)

(16,17) (8,9)(8,9)set1 (18,19) (18,19) (18,19)

(Adresse/2) mod 2 also mit 7 hits bei 10 geladenen Worten

Skizzieren Sie die cache-Belegungen, bestimmen Sie die Anzahl der hits undder misses sowie diejenige der zu ladenden Worte und vergleichen Sie dashit/miss-Verhaltnis mit der jeweils generell zu erwartenden cache-Leistung.(6 Pkt)

1Pkt fur a), 1.5Pkt fur b), 1Pkt fur c) 1.5Pkt fur d), 1Pkt fur Bewertung

7. Vergleichen Sie parallele Versionen des Gauß-Algorithmus’ und ihre Imple-mentierungen auf Vektor-Rechnern, Mehr-Prozessor-Systemen und Rech-ner-Verbunden, z.B. Linux-Clustern. (6 Pkt)

Abhangigkeit vom Algorithmus ...

Zur Ausfuhrung des Algorithmus’ aus dem Skript sind Vektor-Rechner we-gen der Vektor-Operationen (egal ob per Gauß oder Gauß-Seidel) am bestengeeignet, danach Mehr-Prozessor-Systeme mit globalem Speicher, zuletztRechner-Verbunde, weil Kommunikation immer aufwendiger und langsa-mer wird. Auch wenn zur Verbesserung der numerischen Stabilitat der be-tragsmaßig großte Koeffizient als pivot-Element gewahlt werden soll, wirdKommunikation notwendig, die am besten durch die Systeme in derselbenRangfolge erledigt wird.

Wegen der Abhangigkeit vom Algorithmus mussen fur Mehr-Prozessor-Systeme oder Rechner-Verbunde andere Algorithmen gewahlt werden, etwafur Spezial-Anwendungen wie LGS mit sparse matrices, d.h. (sehr große)Koeffizienten-Matrizen mit wenigen von Null verschiedenen Koeffizienten,z.B. Zustandsubergange fehlertoleranter Rechner-Systeme, mit Band-Ma-trizen, d.h. Koeffizienten-Matrizen mit von Null verschiedenen Koeffizien-ten nur in Streifen um die Haupt-Diagonale, oder Block-Matrizen, d.h.Koeffizienten-Matrizen mit von Null verschiedenen Koeffizienten nur in

Th. Risse, HSB: RST – SS04 9

Untermatrizen entlang der Haupt-Diagonalen usw. Die gesichert moglicheUberfuhrung in solche Formen kann erst eigenstandig zu realisieren sein.

Th. Risse, HSB: RST – SS04 10

2 RST-Abschluß-Klausur SS98

Abschluß-Klausur Rechner-Strukturen 4.3.98

Name Matrikel

1. In der MMX-Version des Pentium ist der Befehlssatz um spezielle, schnelleBefehle etwa zur (Video-) Bildbearbeitung erweitert. Geben Sie eine ein-fache Formel fur die Beschleunigung durch Erweiterung des Befehlssatzesum MMX-Befehle an und bewerten Sie die unbekannten Parameter IhrerFormel. (2 Pkt)

2. Belegen Sie, daß der DLX- oder MIPS R2000-Befehlssatz ein klassischerRISC-Befehlssatz ist. (2 Pkt)

3. Als eine load instruction geben Patterson & Hennessy auf Seite A-62 denBefehl load double word mit der Syntax ld Rdest address und derBedeutung “lade 8byte ab address in die Register Rdest und Rdest+1” an,jedoch ohne Angabe des Befehlsformats4.Wie sieht das Format vermutlich aus und was heißt das fur den Gebrauchvon ld ? Wurden Sie diesen Befehl in den Befehlssatz aufnehmen? (3 Pkt)

Erweitern Sie den Befehlssatz unseres (Beispiel-) pipeline-Prozessors MIPSR2000 um den load double-Befehl im vermuteten Befehlsformat. Skizzie-ren und erlautern Sie (Anlage Fig. 6.24) die notwendigen Anderungen oderErganzungen im Daten-Pfad und in der Steuerung. Bedenken Sie das rich-tige timing. Wie sind die Signale zu setzen? (10 Pkt)

Wie ist die Erweiterung um die Instruktion ld in der forwarding unit zuberucksichtigen? (3 Pkt)

4. Ubersetzen Sie den Rumpf der Funktion long ggt(long x,long y)

long rest;

while (y>0) { rest=x%y; x=y; y=rest; } // return x

zur Bestimmung des großten gemeinsamen Teilers in DLX assembly langua-ge (Anlage DLX Standardbefehlssatz), optimieren Sie Ihren Code (Kontext-neutral) fur einen DLX-Prozessor ohne forwarding mit 1-Zyklus-Latenz furload- und ALU-Befehle und erlautern Sie Ihre Optimierung. (8 Pkt)

5. Erlautern Sie anhand von Beispielen (C-Programm zusammen mit dem vondlxcc erzeugten assembler code) die diversen Moglichkeiten der (Compiler-)Optimierung. (je 1 von 8 Pkt)

4im Buch Figure A.18

Th. Risse, HSB: RST – SS04 11

6. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System aufWortadressen 6,7,15,26,16,6,7,16,27,17,6,7 (in einer for-loop)a) fur einen 1-assoziativen cache mit 8 1-Wort-Blocken,b) fur einen 1-assoziativen cache mit 4 Blocken a 2 Worten,c) fur einen 2-assoziativen cache mit 1-Wort-Blocken undd) fur einen 2-assoziativen cache mit Blocken a 2 Worten– jeweils mit LRU5. Skizzieren Sie die cache-Belegungen und vergleichenSie die Ergebnisse mit der jeweils generell zu erwartenden cache-Leistung.(6 Pkt)

7. Skizzieren Sie die Speicherverwaltung der Intel 80x86 Prozessoren, u.a. seg-mentation des 80286, paging des 80386. Welche hardware Vorkehrungensollen den Speicher-Zugriff beschleunigen? (8 Pkt)

8. Klassifizieren Sie die Convex, den Hochleistungsrechner der Hochschule Bre-men, als Multiprozessor-System und bewerten Sie die Art und Weise, wiedie Convex-Prozessoren auf Haupt-Speicher zugreifen. (8 Pkt)

(Summe 58 Punkte)

5LRU = least recently referenced

Th. Risse, HSB: RST – SS04 12

Losungen der Abschluß-Klausur Rechner-Strukturen 4.3.98

1. In der MMX-Version des Pentium ist der Befehlssatz um spezielle, schnelleBefehle etwa zur (Video-) Bildbearbeitung erweitert. Geben Sie eine ein-fache Formel fur die Beschleunigung durch Erweiterung des Befehlssatzesum MMX-Befehle an und bewerten Sie die unbekannten Parameter IhrerFormel. (2 Pkt)

Fur einen Anteil α von MMX-Befehlen in einem Programm, die um denFaktor bmmx schneller sind als gewohnliche 80x86 Befehle, ergibt sich derGesamt-Beschleunigungsfaktor β = 1

1−α+α/bmmx. Etwa fur optimistisches

α = 0.1 und bmmx = 10 ist der Beschleunigungsfaktor nur β = 10.9+0.01

≈ 1.1.

2. Belegen Sie, daß der DLX- oder MIPS R2000-Befehlssatz ein klassischerRISC-Befehlssatz ist. (2 Pkt)

feste Lange (also gut fur caching), weitgehend homogenes Befehlsformat(also einfache Decodierung), eine Adressierungsart register plus offset (alsoeinfache Adressberechnung etwa in EX-Stufe), load store Architektur (alsoeinfacher pipeline Entwurf) ...

3. Als eine load instruction geben Patterson & Hennessy auf Seite A-62 denBefehl load double word mit der Syntax ld Rdest address und derBedeutung “lade 8byte ab address in die Register Rdest und Rdest+1” an,jedoch ohne Angabe des Befehlsformats6.Wie sieht das Format vermutlich aus und was heißt das fur den Gebrauchvon ld ? Wurden Sie diesen Befehl in den Befehlssatz aufnehmen? (3 Pkt)

Erweitern Sie den Befehlssatz unseres (Beispiel-) pipeline-Prozessors MIPSR2000 um den load double-Befehl im vermuteten Befehlsformat. Skizzie-ren und erlautern Sie (Anlage Fig. 6.24) die notwendigen Anderungen oderErganzungen im Daten-Pfad und in der Steuerung. Bedenken Sie das rich-tige timing. Wie sind die Signale zu setzen? (10 Pkt)

Wie ist die Erweiterung um die Instruktion ld in der forwarding unit zuberucksichtigen? (3 Pkt)

Entweder 32− 6− 5 = 21bit address (≡2MB) oder address offset oder aberaltes Format der Form ld Rdest, RR(immediate)

Flexibler ist letzt genanntes Format. Falls address als absolutes Adreß-offset verwendet wird, ergibt sich die Frage: zu welcher Basis? etwa zumPC?...

4. Ubersetzen Sie den Rumpf der Funktion long ggt(long x,long y)

long rest;

while (y>0) { rest=x%y; x=y; y=rest; } // return x

6im Buch Figure A.18

Th. Risse, HSB: RST – SS04 13

zur Bestimmung des großten gemeinsamen Teilers in DLX assembly langua-ge (Anlage DLX Standardbefehlssatz), optimieren Sie Ihren Code (Kontext-neutral) fur einen DLX-Prozessor ohne forwarding mit 1-Zyklus-Latenz furload- und ALU-Befehle und erlautern Sie Ihre Optimierung. (8 Pkt)

5. Erlautern Sie anhand von Beispielen (C-Programm zusammen mit dem vondlxcc erzeugten assembler code) die diversen Moglichkeiten der (Compiler-)Optimierung. (je 1 von 8 Pkt)

Verbreiten von Kopien zur besseren Register-Nutzung, Zusammenfassenvon Sprungen, Eliminieren gemeinsamer Teilausdrucke, Eliminieren vondead code, constant expression evaluation, reduction of strength, inline co-de, ...

6. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System aufWortadressen 6,7,15,26,16,6,7,16,27,17,6,7 (in einer for-loop)

a) fur einen 1-assoziativen cache mit 8 1-Wort-Blocken:

6 7 15 26 16 6 7 16 27 17 6 70 16 161 172 263 27456 6 6 67 7 15 7 7

Adresse mod 8

also mit 4 hits

b) fur einen 1-assoziativen cache mit 4 Blocken a 2 Worten,

6 7 15 26 16 6 7 16 27 17 6 70 (16,17) (16,17) (16,17)1 (26,27) (26,27)23 (6,7)(6,7)(14,15) (6,7)(6,7) (6,7)(6,7)

mit (Adresse/2) mod 4 also 7 hits

c) fur einen 2-assoziativen cache mit 1-Wort-Blocken (2-assoziativ, also 2Blocke pro set)

6 7 15 26 16 6 7 16 27 17 6 7set0 16 16

set1 17

set2 6 6 626

set3 7 7 715 27

Adresse mod 4

also mit 5 hits

Th. Risse, HSB: RST – SS04 14

d) fur einen 2-assoziativen cache mit Blocken a 2 Worten (2-assoziativ, also2 Blocke pro set).

6 7 15 26 16 6 7 16 27 17 6 7set0 (16,17) (16,17) (16,17)

set1 (6,7)(6,7) (26,27) (26,27)(14,15) (6,7)(6,7) (6,7)(6,7)

(Adresse/2) mod 2 also mit 5 hits

Vergleichen Sie die Ergebnisse mit der jeweils generell zu erwartenden cache-Leistung. (6 Pkt)

7. Skizzieren Sie die Speicherverwaltung der Intel 80x86 Prozessoren, u.a. seg-mentation des 80286, paging des 80386. Welche hardware Vorkehrungensollen den Speicher-Zugriff beschleunigen? (8 Pkt)

8. Klassifizieren Sie die Convex, den Hochleistungsrechner der Hochschule Bre-men, als Multiprozessor-System und bewerten Sie die Art und Weise, wiedie Convex-Prozessoren auf Haupt-Speicher zugreifen. (8 Pkt)

NUMA=non uniform memory access: max 8 Prozessoren/Hypernode, cross-bar/hypernode, Kommunikation zwischen hypernodes uber CTI-Ringe (To-ri), CPU-private, hypernode-private (interleaved), near-shared memory/-hypernode benachteiligt Zugriffe aus anderen hypernodes und far-sharedmemory gleich (schlecht) fur Zugriffe aus allen hypernodes, global sharedmemory per entsprechender Adressierung ..., zusatzlich Prozessor- und CTI-caches ...

(Summe 58 Punkte)

Th. Risse, HSB: RST – SS04 15

3 RST-Abschluß-Klausur WS97

Abschluß-Klausur Rechner-Strukturen 22.9.97

Name Matrikel

1. In der MMX-Version des Pentium ist der Befehlssatz um spezielle, schnelleBefehle etwa zur (Video-) Bildbearbeitung erweitert. Geben Sie eine ein-fache Formel fur die Beschleunigung durch Erweiterung des Befehlssatzesum MMX-Befehle an und bewerten Sie die unbekannten Parameter IhrerFormel. (2 Pkt)

2. Charakterisieren Sie einen Ihnen gelaufigen Befehlssatz als RISC- oderCISC-Befehlssatz (mit Begrundung). (2 Pkt)

3. Als eine load instruction geben Patterson & Hennessy auf Seite A-62 denBefehl load double word mit der Syntax ld Rdest address und derBedeutung “lade 8byte ab address in die Register Rdest und Rdest+1” an,jedoch ohne Angabe des Befehlsformats7.Wie sieht das Format vermutlich aus und was heißt das fur den Gebrauchvon ld ? Wurden Sie diesen Befehl in den Befehlssatz aufnehmen? (3 Pkt)

Erweitern Sie den Befehlssatz unseres (Beispiel-) pipeline-Prozessors MIPSR2000 um den load double-Befehl im vermuteten Befehlsformat. Skizzierenund erlautern Sie (Anlage Fig. 6.24) die notwendigen Anderungen/Erganzun-gen im Daten-Pfad und in der Steuerung. Bedenken Sie das richtige timing.Wie sind die Signale zu setzen? (10 Pkt)

Wie ist die Erweiterung um ld in der forwarding unit zu berucksichtigen?(4 Pkt)

4. Ubersetzen Sie die die durch#define sgn(x) (((x)==0.0)? 0 : ((x>0.0)? 1 : -1))

definierte Anweisungsfolge in DLX assembly language (Anlage DLX), op-timieren Sie Ihren Code (Kontext-neutral) fur einen DLX-Prozessor ohneforwarding, mit einer 1-Zyklus-Latenz fur load- und ALU-Befehle und einer2-Zyklen-Latenz fur float-Vergleiche und erlautern Sie Ihre Optimierung.(6 Pkt)

7im Buch Figure A.18

Th. Risse, HSB: RST – SS04 16

5. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System aufWortadressen 4,5,13,24,14,4,5,14,25,15,4,5 (in einer for-loop)a) fur einen 1-assoziativen cache mit 8 1-Wort-Blocken,b) fur einen 1-assoziativen cache mit 4 Blocken a 2 Worten,c) fur einen 2-assoziativen cache mit 1-Wort-Blocken undd) fur einen 2-assoziativen cache mit Blocken a 2 Worten– jeweils mit LRU8. Skizzieren Sie die cache-Belegungen und vergleichenSie die Ergebnisse mit der jeweils generell zu erwartenden cache-Leistung.(6 Pkt)

6. Beschreiben Sie worst case und best case des Zugriffs auf paged segmentsmit und ohne TLB. (4 Pkt)

7. Klassifizieren Sie das Kendall Square Research Multiprozessor-System KSR1und beschreiben Sie Vor- und Nachteile der Art und Weise, wie die KSR1-Prozessoren auf Speicher zugreifen. (8 Pkt)

Zusatz: Welche Motive mogen die KSR1-Entwickler beim Entwurf desSpeicher-Systems geleitet haben? (8 Pkt)

(Summe 45+8 Punkte)

8LRU = least recently referenced

Th. Risse, HSB: RST – SS04 17

Losungen der Abschluß-Klausur Rechner-Strukturen 22.9.97

1. In der MMX-Version des Pentium ist der Befehlssatz um spezielle, schnelleBefehle etwa zur (Video-) Bildbearbeitung erweitert. Geben Sie eine ein-fache Formel fur die Beschleunigung durch Erweiterung des Befehlssatzesum MMX-Befehle an und bewerten Sie die unbekannten Parameter IhrerFormel. (2 Pkt)

Fur einen Anteil α von MMX-Befehlen in einem Programm, die um denFaktor bmmx schneller sind als gewohnliche 80x86 Befehle, ergibt sich derGesamt-Beschleunigungsfaktor β = 1

1−α+α/bmmx. Etwa fur optimistisches

α = 0.1 und bmmx = 10 ist der Beschelunigungsfaktor nur β = 10.9+0.01

≈ 1.1.

2. Charakterisieren Sie einen Ihnen gelaufigen Befehlssatz als RISC- oderCISC-Befehlssatz (mit Begrundung). (2 Pkt)

Intel x86: keine feste Lange (also schlecht fur caching), kein homogenesFormat (also schwierige Decodierung), viele Adressierungsarten (also keineeinfache Adressberechnung etwa in EX-Stufe), keine load store Architektur(also schwieriger pipeline Entwurf), Prafixe, postbyte, ...

3. Als eine load instruction geben Patterson & Hennessy auf Seite A-62 denBefehl load double word mit der Syntax ld Rdest address und derBedeutung “lade 8byte ab address in die Register Rdest und Rdest+1” an,jedoch ohne Angabe des Befehlsformats9.Wie sieht das Format vermutlich aus und was heißt das fur den Gebrauchvon ld ? Wurden Sie diesen Befehl in den Befehlssatz aufnehmen? (3 Pkt)

Erweitern Sie den Befehlssatz unseres (Beispiel-) pipeline-Prozessors MIPSR2000 um den load double-Befehl im vermuteten Befehlsformat. Skizzierenund erlautern Sie (Anlage Fig. 6.24) die notwendigen Anderungen/Erganzun-gen im Daten-Pfad und in der Steuerung. Bedenken Sie das richtige timing.Wie sind die Signale zu setzen? (10 Pkt)

Wie ist die Erweiterung um ld in der forwarding unit zu berucksichtigen?(4 Pkt)

Entweder 32− 6− 5 = 21bit address (≡2MB) oder address offset oder aberaltes Format der Form ld Rdest, RR(immediate)

Flexibler ist letzt genanntes Format. Falls address als absolutes Adreß-offset verwendet wird, ergibt sich die Frage: zu welcher Basis? etwa zumPC?...

4. Ubersetzen Sie die die durch#define sgn(x) (((x)==0.0)? 0 : ((x>0.0)? 1 : -1))

definierte Anweisungsfolge in DLX assembly language (Anlage DLX), op-timieren Sie Ihren Code (Kontext-neutral) fur einen DLX-Prozessor ohne

9im Buch Figure A.18

Th. Risse, HSB: RST – SS04 18

forwarding, mit einer 1-Zyklus Latenz fur load- und ALU-Befehle und einer2-Zyklen-Latenz fur float-Vergleiche und erlautern Sie Ihre Optimierung.(6 Pkt)

...

Optimierung reduziert ? NOP auf ? NOP.

5. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System aufWortadressen 4,5,13,24,14,4,5,14,25,15,4,5 (in einer for-loop)a) fur einen 1-assoziativen cache mit 8 1-Wort-Blocken,b) fur einen 1-assoziativen cache mit 4 Blocken a 2 Worten,c) fur einen 2-assoziativen cache mit 1-Wort-Blocken undd) fur einen 2-assoziativen cache mit Blocken a 2 Worten– jeweils mit LRU10. Skizzieren Sie die cache-Belegungen und vergleichenSie die Ergebnisse mit der jeweils generell zu erwartenden cache-Leistung.(6 Pkt)

a) fur 1-assoziativen cache mit 8 1-Wort-Blocken, (address mod 8)

0 24123 3,3,34 4,12,4,45 13,136 147 23

, also 4 hits

b) fur 1-assoziativen cache mit 4 Blocken a 2 Worten (address/2 mod 4)

gerade ungerade0 24 251 2,2,2 3,3,32 4,12,12,4,12,4 5,13,13,5,13,53 22,14 23,15

, also 3 hits

c) fur 2-assoziativen cache mit 1-Wort-Blocken (2-assoziativ, also 2 Blockepro set) (address mod 4)

set0 4,4,4 12,24set1 13,13set2 14set3 3,3,3 23

, also 5 hits

und d) fur 2-assoziativen cache mit Blocken a 2 Worten (2-assoziativ, also2 Blocke pro set) (address/2 mod 2)

10LRU = least recently referenced

Th. Risse, HSB: RST – SS04 19

even odd even oddset0 4,4,24 5,5,25 12,12,12,4 13,13,13,5set1 2,2,2 3,3,3 22,14 23,15

, also 5 hits (6 Pkt)

6. Beschreiben Sie worst case und best case des Zugriffs auf paged segmentsmit und ohne TLB. (4 Pkt)

best case: Adresse in TLB, page im Speicherworst case: Adresse nicht im TLB (page nicht im Speicher), laut (present)segment descriptor (hidden descriptors ...) ist auch page directory tablenicht im Speicher (nachladen), laut (present) page directory ist auch pagetable nicht im Speicher (nachladen), laut (present) page table ist auch dieSeite selber nicht im Speicher (nachladen).

7. Klassifizieren Sie das Kendall Square Research Multiprozessor-System KSR1und beschreiben Sie Vor- und Nachteile der Art und Weise, wie die KSR1-Prozessoren auf Speicher zugreifen. (8 Pkt)

Zusatz: Welche Motive mogen die KSR1-Entwickler beim Entwurf desSpeichersystems geleitet haben? (8 Pkt)

(Summe 45+8 Punkte)

Th. Risse, HSB: RST – SS04 20

4 RST-Abschluß-Klausur SS97

Abschluß-Klausur Rechner-Strukturen 10.3.97

Name Matrikel

Es sind alle Unterlagen zugelassen.

1. Beim Entwurf eines neuen Prozessors ist der Befehlssatz festzulegen. Welche(konkurrierenden) Anforderungen sind zu erfullen und welche Kompromisseeinzugehen? (4 Pkt)

2. Erweitern Sie den Befehlssatz unseres (Beispiel-) pipeline-Prozessors MIPSR2000 um den jump register -Befehl, j Rs, i.e. um den unbedingten Sprungzur Anweisung mit Adresse in Rs, im Befehlsformat 0 Rs 0 0 8 ,etwa fur switch Anweisungen oder fur den Rucksprung aus Funktionen(j R31).

Skizzieren Sie in der pipline-Implementation (Anlage, Fig. 6.24) die not-wendigen Anderungen oder Erganzungen im Daten-Pfad und in der Steue-rung. Wie sind die Signale zu setzen? (8 Pkt)

3. Durch forwarding konnen fast alle data hazards beseitigt werden. WelcheDaten-Abhangigkeit laßt sich als einzige durch forwarding nicht beseitigenund warum? Was bleibt in dieser Situation zu tun?Wieviele pipeline cycles kostet dieses data hazard im Fall der DLX oder desMIPS R2000 und wieviele im Fall der SPARC mit ihren vier pipeline-StufenIF, ID, EX und Mem/Wb ? (3 Pkt)

4. Inwiefern kann loop unfolding oder auch loop unrolling, also die Vervielfa-chung des Schleifenkorpers durch den Compiler, etwa Verdoppelung

const int n2=2*n;

for(i=0;i<n2;i++) for(i=0;i<n2;i++)

{ {

body(i); body(i);body(++i);

} }

die Abarbeitung von Schleifen durch pipeline-Prozessoren beschleunigen?(3 Pkt)

Programmieren Sie in DLX (Pseudo-) Code Berechnung und Speicherungder ersten 10 Fibonacci-Zahlen (f0 = 0, f1 = 1 und fi = fi−1 + fi−2 furi ≥ 2) in einem Feld, fuhren Sie loop unfolding durch und berechnen Sieden Beschleunigungsfaktor. (6 Pkt)

Th. Risse, HSB: RST – SS04 21

Wie wirkt sich eine Vervierfachung, eine Vervielfachung des Schleifen-Kor-pers aus und wie muß der Compiler Schleifen mit beliebig vielen Schleifen-Durchlaufen behandeln? (1 Pkt)

Fur welche Typen von Prozessoren ist loop unfolding erst recht sinnvoll,mit welcher Vervielfachung? (1 Pkt)

5. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System aufWortadressen 16,17,3,13,3,16,17,18,3,13,3,17,18,19,3,13a) fur einen 1-assoziativen cache mit 8 1-Wort-Blocken,b) fur einen 1-assoziativen cache mit 4 Blocken a 2 Worten,c) fur einen 2-assoziativen cache mit 1-Wort-Blocken undd) fur einen 2-assoziativen cache mit Blocken a 2 Worten– jeweils mit LRU11. Skizzieren Sie die cache-Belegungen und vergleichenSie die Ergebnisse mit der jeweils generell zu erwartenden cache-Leistung.(6 Pkt)

6. Charakterisieren Sie die MMX-Erweiterungen des Pentium-Prozessors, ge-ben Sie eine Formel fur den Leistungszuwachs durch Einsatz der MMX-Technologie an und diskutieren Sie die in Ihrer Formel auftretenden Para-meter. (5 Pkt)

7. Charakterisieren Sie Prozessor, Verbindungsstruktur und Bussystem desMehrprozessor-Systems SYNAPSE-1 – moglichst im Kontext der Zielan-wendungen. (5 Pkt)

(Summe 42 Punkte)

11LRU = least recently referenced!

Th. Risse, HSB: RST – SS04 22

Losungen zur Abschluß-Klausur Rechner-Strukturen 10.3.97

1. Beim Entwurf eines neuen Prozessors ist der Befehlssatz festzulegen. Welche(konkurrierenden) Anforderungen sind zu erfullen und welche Kompromisseeinzugehen? (4 Pkt)

Ziemlich sicher Register-Architektur. Kompatibilitat erforderlich? Zunachst(feste) Befehlslange, load/store, Adressierungsarten usw. entscheiden. DannAnzahl Register, Anzahl und Art von arithmetisch/logischen Operationen,Anzahl und Art von Gleitkomma-Operationen festlegen.

2. Erweitern Sie den Befehlssatz unseres (Beispiel-) pipeline-Prozessors MIPSR2000 um den jump register -Befehl, j Rs, i.e. um den unbedingten Sprungzur Anweisung mit Adresse in Rs, im Befehlsformat 0 Rs 0 0 8 ,etwa fur switch Anweisungen oder fur den Rucksprung aus Funktionen(j R31).

Skizzieren Sie in der pipline-Implementation (Anlage, Fig. 6.24) die not-wendigen Anderungen oder Erganzungen im Daten-Pfad und in der Steue-rung. Wie sind die Signale zu setzen? (8 Pkt)

Problem: OP-Code = 0 (wie bei allen arithmetisch/logischen Operatioen).Also kriegt entweder die Control nicht nur OP-Code als Input sondern zu-dem das ganze funct Feld (macht hohen Schaltungsaufwand notig); oder dieALU-Control produziert ein zusatzliches Signal eight. ZusammengeANDetmit neuem Control-Signal zero ergibt sich das Signal jumpReg (in der EX-Stufe ?, eher erst in der Mem-Stufe), welches einen Multiplexer vor dem PCmit altem PC-Eingang und durchgeschleiftem read data1 steuert, so daßder PC mit dem Inhalt von Rs upgedatet wird, falls jumpReg aktiviert ist.Alle anderen Signale sind 0.

3. Durch forwarding konnen fast alle data hazards beseitigt werden. WelcheDaten-Abhangigkeit laßt sich als einzige durch forwarding nicht beseitigenund warum? Was bleibt in dieser Situation zu tun?Wieviele pipeline cycles kostet dieses data hazard im Fall der DLX oder desMIPS R2000 und wieviele im Fall der SPARC mit ihren vier pipeline-StufenIF, ID, EX und Mem/Wb ? (3 Pkt)

load stalls

4. Inwiefern kann loop unfolding oder auch loop unrolling, also die Vervielfa-chung des Schleifenkorpers durch den Compiler, etwa Verdoppelung

const int n2=2*n;

for(i=0;i<n2;i++) for(i=0;i<n2;i++)

{ {

body(i); body(i);body(++i);

} }

Th. Risse, HSB: RST – SS04 23

die Abarbeitung von Schleifen durch pipeline-Prozessoren beschleunigen?(3 Pkt)

Programmieren Sie in DLX (Pseudo-) Code Berechnung und Speicherungder ersten 10 Fibonacci-Zahlen (f0 = 0, f1 = 1 und fi = fi−1 + fi−2 furi ≥ 2) in einem Feld, fuhren Sie loop unfolding durch und berechnen Sieden Beschleunigungsfaktor. (6 Pkt)

Wie wirkt sich eine Vervierfachung, eine Vervielfachung des Schleifen-Kor-pers aus und wie muß der Compiler Schleifen mit beliebig vielen Schleifen-Durchlaufen behandeln? (1 Pkt)

Fur welche Typen von Prozessoren ist loop unfolding erst recht sinnvoll,mit welcher Vervielfachung? (1 Pkt)

add r3,r0,r0

lw R4,n2$

loopstart: sge R1,R3,R4

beqz R1,loop_exit

nop

body(i)

addi R3,R3,#1

j loopstart

nop

loop_exit:

macht 1+1+ n2(3+ body +2)+3 = 5+2 n(5+ body) = 5+10 n+2 n bodyInstruktionen oder cycles.Bei 2-fach unfolding ergeben sich 2 + n(5 + 2 body) + 3 = 5 + 5 n + 2 n bodyInstruktionen oder cycles.Beschleunigungsfaktor β = 5+10 n+2 n body

5+5 n+2 n bodymit limn→∞ β = 10+2 body

5+2 body

Wie wirkt sich eine Vervierfachung, eine Vervielfachung des Schleifen-Kor-pers aus? Wie muß der Compiler Schleifen mit beliebig vielen Schleifen-Durchlaufen behandeln? (1 Pkt)

Vervierfachung: 5 + 4 n(5 + body) = 5 + 20 n + 4 n body vs 5 + n(5 +4 body) = 5 + 5 n + 4 n body mit Beschleunigungsfaktor β = 5+20 n+4 n body

5+5 n+4 n body

und limn→∞ β = 20+4 body5+4 body

bei Vervielfachung um v eben 5 + v n(5 + body) = 5 + 5 v n + v n bodyvs 5 + n(5 + v body) = 5 + 5 n + v n body mit Beschleunigungsfaktor β =5+5 v n+v n body5+5 n+v n body

und limn→∞ β = 5 v+v body5+v body

n Schleifen-Durchlaufe eigentlich per Vervielfachung nach Binar-Darstel-lung von n, aber code-Lange ...

Fur welche Typen von Prozessoren ist loop unfolding erst recht sinnvoll,unter welchen Bedingungen und mit welcher Vervielfachung? (1 Pkt)

Vektor-Prozessoren, Vervielfachung = HW-Vektor-Lange, aber Datenabhan-gigkeiten

Th. Risse, HSB: RST – SS04 24

5. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System aufWortadressen 16,17,3,13,3,16,17,18,3,13,3,17,18,19,3,13

a) fur einen 1-assoziativen cache mit 8 1-Wort-Blocken,

0 8,8,16,81 92345 5,13,5,567 7,7

, also 3 hits

b) fur einen 1-assoziativen cache mit 4 Blocken a 2 Worten,

gerade ungerade0 8,8,16,8,8 9,9,17,9,912 4,12,4,4 5,13,5,53 6,6 7,7

, also 4 hits

c) fur einen 2-assoziativen cache mit 1-Wort-Blocken (2-assoziativ, also 2Blocke pro set)

set0 8,8,8 16set1 5,5,5 13,9set2set3 7,7

, also 5 hits

und d) fur einen 2-assoziativen cache mit Blocken a 2 Worten (2-assoziativ,also 2 Blocke pro set).

gerade ungeradeset0 4,12,8,8,8 8,4,16,4 5,13,9,9,9 9,5,17,5set1 6,6 7,7

oder

g=0 u=1 g=0 u=1set0 4,12,8,8,8 5,13,9,9,9 8,4,16,4 9,5,17,5set1 6,6 7,7

oder

set0 (4,5)(12,13)(8,9)(8,9)(8,9) (8,9)(4,5)(16,17)(4,5)set1 (6,7)(6,7)

, also 3 hits

Vergleichen Sie die Ergebnisse mit der jeweils generell zu erwartenden cache-Leistung. (6 Pkt)

6. Charakterisieren Sie die MMX-Erweiterungen des Pentium-Prozessors, ge-ben Sie eine Formel fur den Leistungszuwachs durch Einsatz der MMX-Technologie an und diskutieren Sie die in Ihrer Formel auftretenden Para-meter. (5 Pkt)

Th. Risse, HSB: RST – SS04 25

7. Charakterisieren Sie Prozessor, Verbindungsstruktur und Bussystem desMehrprozessor-Systems SYNAPSE-1 – moglichst im Kontext der Zielan-wendungen. (5 Pkt)

(Summe 42 Punkte)

Th. Risse, HSB: RST – SS04 26

5 RST-Abschluß-Klausur WS96

Abschluß-Klausur Rechner-Strukturen 23.9.96

Name Matrikel

Es sind alle Unterlagen zugelassen.

1. Bei RISC-Prozessoren wie MIPS R2000/R3000 oder DLX hat das Regi-ster R0 fest den Wert 0. Welche Vor-/Nachteile ergeben sich dadurch furBefehlssatz und Programmierung? (3 Pkt)

2. Erweitern Sie den Befehlssatz unseres (Beispiel-) pipeline-Prozessors MIPSR2000 um den jump register -Befehl, j Rs, etwa fur switch Anweisungenoder den Rucksprung aus Funktionen (j R31), also unbedingter Sprung zurAnweisung mit Adresse in Rs, im Befehlsformat 0 Rs 0 0 8 .

Skizzieren Sie in der pipline-Implementation (Anlage, Fig. 6.24) die not-wendigen Anderungen oder Erganzungen im Daten-Pfad und in der Steue-rung. Wie sind die Signale zu setzen? (8 Pkt)

3. Durch forwarding konnen fast alle data hazards beseitigt werden. WelcheDaten-Abhangigkeit laßt sich als einzige durch forwarding nicht beseitigenund warum? Was bleibt in dieser Situation zu tun?Wieviele pipeline cycles kostet dieses data hazard im Fall der DLX oder desMIPS R2000 und wieviele im Fall der SPARC mit ihren vier pipeline-StufenIF, ID, EX und Mem/Wb ? (3 Pkt)

4. Skizzieren Sie graphisch die Leistung eines pipeline-Prozessors in Abhangig-keit von der Stufen-Anzahl. Begrunden Sie Ihre Skizze. (2 Pkt)

5. Inwiefern kann loop unfolding oder auch loop unrolling, also die Vervielfa-chung des Schleifenkorpers durch den Compiler, etwa Verdoppelung

const int n2=2*n;

for(i=0;i<n2;i++) for(i=0;i<n2;i++)

{ {

body(i); body(i);i++;body(i);

} }

die Abarbeitung von Schleifen durch pipeline-Prozessoren beschleunigen?Berechnen Sie den Beschleunigungsfaktor unter Verwendung von DLX oderMIPS R2000 (Pseudo-) Code.Wie wirkt sich eine Vervierfachung, eine Vervielfachung des Schleifen-Kor-pers aus? Wie muß der Compiler Schleifen mit beliebig vielen Schleifen-Durchlaufen behandeln?

Th. Risse, HSB: RST – SS04 27

Fur welche Typen von Prozessoren ist loop unfolding erst recht sinnvoll,mit welcher Vervielfachung? (8 Pkt)

6. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System aufWortadressen 5,7,8,13,5,8,16,8,5,7,9a) fur einen 1-assoziativen cache mit 8 1-Wort-Blocken,b) fur einen 1-assoziativen cache mit 4 Blocken a 2 Worten,c) fur einen 2-assoziativen cache mit 1-Wort-Blocken undd) fur einen 2-assoziativen cache mit Blocken a 2 Worten– jeweils mit LRU12. Skizzieren Sie die cache-Belegungen und vergleichenSie die Ergebnisse mit der jeweils generell zu erwartenden cache-Leistung.(6 Pkt)

7. Berechnen Sie fur das n × n-Gitter, fur den n × n-Torus sowie fur dasvollstandig verbundene Netzwerk mit ebenfalls n2 Knoten die folgendenKenngroßen: den Kommunikationsdurchmesser D, also die maximale An-zahl von links auf einem Weg zwischen zwei beliebigen Knoten, die Ge-samtanzahl L von links (als best case Maß fur gleichzeitige Kommunikationim Netzwerk) und den Halbierungsgrad B (bisection), also die minimaleAnzahl von links zwischen zwei beliebigen Knotenmengen mit jeweils derhalben Knotenanzahl 1

2n2 (als worst case Maß fur gleichzeitige Kommuni-

kation im Netzwerk).

4× 4-Gitter

wwww

wwww

wwww

wwww

4× 4-Torus

wwww

wwww

wwww

wwww

��

��

��

��

��

��

��

��

�� ��

�� ��

�� ��

�� ��

Netzwerk mit 5vollstandig ver-

bundenen Knoten

w w������wb

bb

bbw

""

"""wBBBBBB�

��

��

��

��������

ZZ

ZZ

ZZ

Z

BB

BB

BB

BB

Bewerten Sie im Rahmen einer Kosten-Nutzen-Analyse jeweils Dn2 bzw. D

L,

L und Bn2 bzw. B

Lsowie die jeweiligen Grenzwerte fur n →∞.

Welche Aspekte der on-chip Implementierung von Gitter und Torus, undwelche Verbindungskosten im Fall des vollstandig verbundenen Netzwerkeswerden durch die obigen Kenngroßen nicht erfaßt? (10 Pkt)

(Summe 40 Punkte)

12LRU = least recently referenced!

Th. Risse, HSB: RST – SS04 28

Losungen zur Abschluß-Klausur Rechner-Strukturen 23.9.96

1. Bei RISC-Prozessoren wie MIPS R2000/R3000 oder DLX hat das Regi-ster R0 fest den Wert 0. Welche Vor-/Nachteile ergeben sich dadurch furBefehlssatz und Programmierung? (3 Pkt)

2 fur Vorteile, etwa load store-Adress-Berechnung,1 fur Nachteil ‘ein Register weniger’

2. Erweitern Sie den Befehlssatz unseres (Beispiel-) pipeline-Prozessors MIPSR2000 um den jump register -Befehl, j Rs, etwa fur switch Anweisungenoder den Rucksprung aus Funktionen (j R31), also unbedingter Sprung zurAnweisung mit Adresse in Rs, im Befehlsformat 0 Rs 0 0 8 .

Skizzieren Sie in der pipline-Implementation (Anlage, Fig. 6.24) die not-wendigen Anderungen oder Erganzungen im Daten-Pfad und in der Steue-rung. Wie sind die Signale zu setzen? (8 Pkt)

Problem: OP-Code = 0 (wie bei allen arithmetisch/logischen Operatioen).Also kriegt entweder die Control nicht nur OP-Code als Input sondern zu-dem das ganze funct Feld (macht hohen Schaltungsaufwand notig); oder dieALU-Control produziert ein zusatzliches Signal eight. ZusammengeANDetmit neuem Control-Signal zero ergibt sich das Signal jumpReg (in der EX-Stufe ?, eher erst in der Mem-Stufe), welches einen Multiplexer vor dem PCmit altem PC-Eingang und durchgeschleiftem read data1 steuert, so daßder PC mit dem Inhalt von Rs upgedatet wird, falls jumpReg aktiviert ist.Alle anderen Signale sind 0.

3. Durch forwarding konnen fast alle data hazards beseitigt werden. WelcheDaten-Abhangigkeit laßt sich als einzige durch forwarding nicht beseitigenund warum? Was bleibt in dieser Situation zu tun?Wieviele pipeline cycles kostet dieses data hazard im Fall der DLX oder desMIPS R2000 und wieviele im Fall der SPARC mit ihren vier pipeline-StufenIF, ID, EX und Mem/Wb ? (1+2 Pkt)

load stalls

4. Skizzieren Sie graphisch die Leistung eines pipeline-Prozessors in Abhangig-keit von der Stufen-Anzahl. Begrunden Sie Ihre Skizze. (2 Pkt)

Die Leistung eines pipeline-Befehlsprozessors steigt zunachst mit zuneh-mender Stufen-Anzahl. Allerdings nehmen dann die penalties fur branching,restart of pipeline bei Prozeß-Wechsel, bei exceptions stark zu, so daß sichein Maximum bei typischerweise 4-5 Stufen ergibt. Ahnlich auch pipeline-Prozessoren etwa fur arithmetische Operationen!.

5. Inwiefern kann loop unfolding oder auch loop unrolling, also die Vervielfa-chung des Schleifenkorpers durch den Compiler, etwa Verdoppelung

Th. Risse, HSB: RST – SS04 29

const int n2=2*n;

for(i=0;i<n2;i++) for(i=0;i<n2;i++)

{ {

body(i); body(i);i++;body(i);

} }

die Abarbeitung von Schleifen durch pipeline-Prozessoren beschleunigen?Berechnen Sie den Beschleunigungsfaktor unter Verwendung von DLX oderMIPS R2000 (Pseudo-) Code. (4 Pkt)

add r3,r0,r0

lw R4,n2$

loopstart: sge R1,R3,R4

beqz R1,loop_exit

nop

body(i)

addi R3,R3,#1

j loopstart

nop

loop_exit:

macht 1+1+ n2(3+ body +2)+3 = 5+2 n(5+ body) = 5+10 n+2 n bodyInstruktionen oder cycles.Bei 2-fach unfolding ergeben sich 2 + n(5 + 2 body) + 3 = 5 + 5 n + 2 n bodyInstruktionen oder cycles.Beschleunigungsfaktor β = 5+10 n+2 n body

5+5 n+2 n bodymit limn→∞ β = 10+2 body

5+2 body

Wie wirkt sich eine Vervierfachung, eine Vervielfachung des Schleifen-Kor-pers aus? Wie muß der Compiler Schleifen mit beliebig vielen Schleifen-Durchlaufen behandeln? (2 Pkt)

Vervierfachung: 5 + 4 n(5 + body) = 5 + 20 n + 4 n body vs 5 + n(5 +4 body) = 5 + 5 n + 4 n body mit Beschleunigungsfaktor β = 5+20 n+4 n body

5+5 n+4 n body

und limn→∞ β = 20+4 body5+4 body

bei Vervielfachung um v eben 5 + v n(5 + body) = 5 + 5 v n + v n bodyvs 5 + n(5 + v body) = 5 + 5 n + v n body mit Beschleunigungsfaktor β =5+5 v n+v n body5+5 n+v n body

und limn→∞ β = 5 v+v body5+v body

n Schleifen-Durchlaufe eigentlich per Vervielfachung nach Binar-Darstel-lung von n, aber code-Lange ...

Fur welche Typen von Prozessoren ist loop unfolding erst recht sinnvoll,unter welchen Bedingungen und mit welcher Vervielfachung? (2 Pkt)

Vektor-Prozessoren, Vervielfachung = HW-Vektor-Lange, aber Datenab-hangigkeiten

Th. Risse, HSB: RST – SS04 30

6. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System aufWortadressen 5,7,8,13,5,8,16,8,5,7,9

a) fur einen 1-assoziativen cache mit 8 1-Wort-Blocken,

0 8,8,16,81 92345 5,13,5,567 7,7

, also 3 hits

b) fur einen 1-assoziativen cache mit 4 Blocken a 2 Worten,

gerade ungerade0 8,8,16,8,8 9,9,17,9,912 4,12,4,4 5,13,5,53 6,6 7,7

, also 4 hits

c) fur einen 2-assoziativen cache mit 1-Wort-Blocken (2-assoziativ, also 2Blocke pro set)

set0 8,8,8 16set1 5,5,5 13,9set2set3 7,7

, also 5 hits

und d) fur einen 2-assoziativen cache mit Blocken a 2 Worten (2-assoziativ,also 2 Blocke pro set).

gerade ungeradeset0 4,12,8,8,8 8,4,16,4 5,13,9,9,9 9,5,17,5set1 6,6 7,7

oder

g=0 u=1 g=0 u=1set0 4,12,8,8,8 5,13,9,9,9 8,4,16,4 9,5,17,5set1 6,6 7,7

oder

set0 (4,5)(12,13)(8,9)(8,9)(8,9) (8,9)(4,5)(16,17)(4,5)set1 (6,7)(6,7)

, also 3 hits

Vergleichen Sie die Ergebnisse mit der jeweils generell zu erwartenden cache-Leistung. (6 Pkt)

7. Berechnen Sie fur das n × n-Gitter, fur den n × n-Torus sowie fur dasvollstandig verbundene Netzwerk mit ebenfalls n2 Knoten die folgendenKenngroßen: den Kommunikationsdurchmesser D, also die maximale An-zahl von links auf einem Weg zwischen zwei beliebigen Knoten, die Anzahl

Th. Risse, HSB: RST – SS04 31

L von links (als best case Maß fur gleichzeitige Kommunikation im Netz-werk) und den Halbierungsgrad B (bisection), also die minimale Anzahlvon links zwischen zwei beliebigen Knotenmengen mit jeweils der halbenKnotenanzahl 1

2n2 (als worst case Maß fur gleichzeitige Kommunikation im

Netzwerk). (6 Pkt)L: je 1/2, D: je 1/2, B: je 1 zusammen also 6

Bewerten Sie im Rahmen einer Kosten-Nutzen-Analyse jeweils Dn2 bzw. D

L,

L und Bn2 bzw. B

Lsowie die jeweiligen Grenzwerte fur n → ∞.

(1 Pkt)grid torus comcon13

L 2n(n− 1) 2 n2 n2(n2−1)2

D 2(n− 1) 2bn2c 1

B n 2n 12(n

2)2

Dn2

n−1n2 ≈ 1

n1n2

DL

1n

≈ 12n

2n2(n2−1)

Bn2

1n

2n

18

BL

12(n−1)

1n

14(n2−1)

Welche Aspekte der on-chip Implementierung von Gitter und Torus, undwelche Verbindungskosten im Fall des vollstandig verbundenen Netzwerkeswerden durch die obigen Kenngroßen nicht erfaßt? (3 Pkt)

grid mit I/O; Torus ist 3D-Struktur.Die Kosten fur die n ports eines jeden Knoten!

(Summe 40 Punkte)

13completely connected

Th. Risse, HSB: RST – SS04 32

6 RST-Abschluß-Klausur WS95e

Abschluß-Klausur Rechner-Strukturen 11.3.96

Name Matrikel

1. Begrunden Sie, inwiefern die Befehlssatze fur MIPS R2000/R3000- oderDLX-Prozessoren typisch fur pipeline-Prozessoren sind.Bewerten Sie in diesem Zusammenhang die DLX-Instruktionsfolge

lhi r3,(LC0>>16)&0xffff

addui r3,r3,(LC0&0xffff)

2. Erweitern Sie den Befehlssatz unseres (Beispiel-) pipeline-Prozessors MIPSR2000 um den jump and link -Befehl, jal #Target, fur Prozedur-Aufruf:seine Ausfuhrung besteht in R31=PC+4 (Retten der Rucksprung-Adresse)und goto Target (unbedingter Sprung) im Befehlsformat 3 Target .

Skizzieren Sie in der single cycle implementation (Anlage, Fig. 5.22) die not-wendigen Anderungen/Erganzungen im Daten-Pfad und in der Steuerung.Wie sind die Signale zu setzen?

3. Durch forwarding konnen fast alle data hazards beseitigt werden. WelcheDaten-Abhangigkeit laßt sich als einzige durch forwarding nicht beseitigenund warum? Was bleibt in dieser Situation zu tun?

4. Skizzieren Sie graphisch die Leistung eines pipeline-Prozessors in Abhangig-keit von der Stufen-Anzahl. Begrunden Sie Ihre Skizze.

5. #define sgn(x) ((x==0) ? 0 : ((x>0) ? 1 : -1)) berechnet das Si-gnum (Vorzeichen) von x. Ubersetzen Sie die zugehorige Anweisungsfol-ge in MIPS assembly language (Anlage) und optimieren Sie den Code fureinen (MIPS) pipeline-Prozessor mit load/store Architektur, 8 Allzweck-Registern und mit einer Latenzzeit von einem pipeline-Zyklus fur die Verfug-barkeit der Werte in Ziel-Registern von ALU- und load/store-Befehlen sowiemit einem branch delay slot.Erlautern Sie Ihren Code und Ihre Optimierungsschritte.

6. dlxcc erzeugt (uberhaupt) nicht optimierten code. Beschreiben Sie einigemogliche durch dlxcc vorzunehmende Optimierungen und setzen Sie Auf-wand und jeweils zu erwartende Auswirkungen auf Code-Geschwindigkeit(und -Große) in Beziehung.

7. Wie arbeitet eine Speicherhierarchie, bestehend aus cache, memory, diskund Band-Archiv? Was ‘sieht’ ein pipeline-Prozessor von dieser Speicher-hierarchie?

Th. Risse, HSB: RST – SS04 33

8. Erlautern Sie die Begriffe virtual memory, paging und segmentation.

Erlautern Sie, wie Seiten-Zugriffe beschleunigt werden konnen.

Wieviele Zugriffe auf caches, page table und memory werden minimal undmaximal notwendig, wenn ein Prozessor uber first und second level cacheunbeschleunigt bzw. beschleunigt auf ein paged memory zugreift?

9. Zusatz: dlxsim laßt sich als Parallel-Prozessor konfigurieren.Klassifizieren Sie diesen (emulierten) Prozessor zusammen mit seiner hard-ware/software-Schnittstelle. Welche Anforderungen an den Compiler erge-ben sich aus dieser Erweiterung der Architektur?

Th. Risse, HSB: RST – SS04 34

Losungen zur Abschluß-Klausur Rechner-Strukturen 11.3.96

1. Begrunden Sie, inwiefern die Befehlssatze fur MIPS R2000/R3000- oderDLX-Prozessoren typisch fur pipeline-Prozessoren sind.Bewerten Sie in diesem Zusammenhang die DLX-Instruktionsfolge

lhi r3,(LC0>>16)&0xffff

addui r3,r3,(LC0&0xffff) (6 Pkt)

alle gleich lang; einfach zu dekodieren, wenn Argumente im Befehl an den-selben Stellen stehen, wenig Adressierungsarten ...load 32 bit immediate per zweimaligem load von 16 bit immediates ...

2. Erweitern Sie den Befehlssatz unseres (Beispiel-) pipeline-Prozessors MIPSR2000 um den jump and link -Befehl, jal #Target, fur Prozedur-Aufruf:seine Ausfuhrung besteht in R31=PC+4 (Retten der Rucksprung-Adresse)und goto Target (unbedingter Sprung) im Befehlsformat 3 Target .

Skizzieren Sie in der single cycle implementation (Anlage, Fig. 5.22) die not-wendigen Anderungen/Erganzungen im Daten-Pfad und in der Steuerung.Wie sind die Signale zu setzen? (10 Pkt)

3. Durch forwarding konnen fast alle data hazards beseitigt werden. WelcheDaten-Abhangigkeit laßt sich als einzige durch forwarding nicht beseitigenund warum? Was bleibt in dieser Situation zu tun? (5 Pkt)

4. Skizzieren Sie graphisch die Leistung eines pipeline-Prozessors in Abhangig-keit von der Stufen-Anzahl. Begrunden Sie Ihre Skizze. (2 Pkt)

Die Leistung eines pipeline-Befehlsprozessors steigt zunachst mit zuneh-mender Stufen-Anzahl. Allerdings nehmen dann die penalties fur branching,restart of pipeline bei Prozeß-Wechsel, bei exceptions stark zu, so daß sichein Maximum bei typischerweise 4-5 Stufen ergibt. Ahnlich auch pipeline-Prozessoren etwa fur arithmetische Operationen!.

5. #define sgn(x) ((x==0) ? 0 : ((x>0) ? 1 : -1)) berechnet das Si-gnum (Vorzeichen) von x. Ubersetzen Sie die zugehorige Anweisungsfol-ge in MIPS assembly language (Anlage) und optimieren Sie den Code fureinen (MIPS) pipeline-Prozessor mit load/store Architektur, 8 Allzweck-Registern und mit einer Latenzzeit von einem pipeline-Zyklus fur die Verfug-barkeit der Werte in Ziel-Registern von ALU- und load/store-Befehlen sowiemit einem branch delay slot.Erlautern Sie Ihren Code und Ihre Optimierungsschritte. (6+2 Pkt)

load Rx,x load Rx,x

Add Rr,R0,R0 Add Rr,R0,R0

BEQZ Rx, L0 BEQZ Rx, L0

nop nop

Add Rr,R0,#1 BGT Rx,#0, L0

Th. Risse, HSB: RST – SS04 35

BGT Rx,#0, L0 Add Rr,R0,#1

nop Add Rr,R0,#-1

Add Rr,R0,#-1 L0:nop

L0:nop

6. dlxcc erzeugt (uberhaupt) nicht optimierten code. Beschreiben Sie einigemogliche durch dlxcc vorzunehmende Optimierungen und vergleichen Siedie jeweils zu erwartenden Auswirkungen auf Code-Geschwindigkeit und-Große. (6 Pkt)

Binden von Variablen an Register nicht nur C-statement-weise, Fullen vonbranch delay slots, loop unfolding, Elimination gemeinsamer Ausdrucke,Erzeugen von inline code, reduction of strength, Elimination von totemCode ...

7. Wie arbeitet eine Speicherhierarchie, bestehend aus cache, memory, diskund Band-Archiv? Was ‘sieht’ ein pipeline-Prozessor von dieser Speicher-hierarchie? (6 Pkt)

8. Erlautern Sie die Begriffe virtual memory, paging und segmentation. (4 Pkt)Erlautern Sie, wie Seiten-Zugriffe beschleunigt werden konnen. (2 Pkt)Wieviele Zugriffe auf caches, page table und memory werden minimal undmaximal notwendig, wenn ein Prozessor uber first und second level cacheunbeschleunigt bzw. beschleunigt auf ein paged memory zugreift? (2 Pkt)

Abbildung eines vergleichsweise riesigen virtuellen auf einen vergleichsweisewinzigen physikalischen Speicher per paging (feste Seitengroße) oder seg-mentation (variable Segment- oder Seitengroße). (4 Pkt)Der Seiten-Zugriff wird ublicherweise durch Einsatz eines TLB beschleu-nigt, weil miss penalty so gigantisch hoch. (2 Pkt)Minimale Anzahl von Zugriffen ist 1, wenn die Daten im L1 vorliegen; Ma-ximale Anzahl von Zugriffen ist 4 (5), wenn die Daten nicht im L1, nichtim L2, (nicht im TLB), page table und memory. (2 Pkt)

9. Zusatz: dlxsim laßt sich als Parallel-Prozessor konfigurieren.Klassifizieren Sie diesen (emulierten) Prozessor zusammen mit seiner hard-ware/software-Schnittstelle. Welche Anforderungen an den Compiler erge-ben sich aus dieser Erweiterung der Architektur? (6 Pkt)

Th. Risse, HSB: RST – SS04 36

7 RST-Abschluß-Klausur WS95f

Abschluß-Klausur Rechner-Strukturen 22.1.96 ES

Name Matrikel

1. Begrunden Sie, inwiefern die Befehlssatze fur MIPS R2000/R3000- oderDLX-Prozessoren typisch fur pipeline-Prozessoren sind.Bewerten Sie in diesem Zusammenhang die DLX-Instruktionsfolge

lhi r3,(LC0>>16)&0xffff

addui r3,r3,(LC0&0xffff)

2. Erweitern Sie den Befehlssatz unseres (Beispiel-) pipeline-Prozessors MIPSR2000 um den jump and link -Befehl, jal #Target, fur Prozedur-Aufruf:seine Ausfuhrung besteht in R31=PC+4 (Retten der Rucksprung-Adresse)und goto Target (unbedingter Sprung) im Befehlsformat 3 Target .

Skizzieren Sie in der single cycle implementation (Anlage, Fig. 5.22) die not-wendigen Anderungen/Erganzungen im Daten-Pfad und in der Steuerung.Wie sind die Signale zu setzen?

3. Durch forwarding konnen fast alle data hazards beseitigt werden. WelcheDaten-Abhangigkeit laßt sich als einzige durch forwarding nicht beseitigenund warum? Was bleibt in dieser Situation zu tun?

4. Skizzieren Sie graphisch die Leistung eines pipeline-Prozessors in Abhangig-keit von der Stufen-Anzahl. Begrunden Sie Ihre Skizze.

5. #define sgn(x) ((x==0) ? 0 : ((x>0) ? 1 : -1)) berechnet das Si-gnum (Vorzeichen) von x. Ubersetzen Sie die zugehorige Anweisungsfol-ge in MIPS assembly language (Anlage) und optimieren Sie den Code fureinen (MIPS) pipeline-Prozessor mit load/store Architektur, 8 Allzweck-Registern und mit einer Latenzzeit von einem pipeline-Zyklus fur die Verfug-barkeit der Werte in Ziel-Registern von ALU- und load/store-Befehlen sowiemit einem branch delay slot.Erlautern Sie Ihren Code und Ihre Optimierungsschritte.

6. dlxcc erzeugt (uberhaupt) nicht optimierten code. Beschreiben Sie einigemogliche durch dlxcc vorzunehmende Optimierungen und setzen Sie Auf-wand und jeweils zu erwartende Auswirkungen auf Code-Geschwindigkeit(und -Große) in Beziehung.

7. Wie arbeitet eine Speicherhierarchie, bestehend aus cache, memory, diskund Band-Archiv? Was ‘sieht’ ein pipeline-Prozessor von dieser Speicher-hierarchie?

Th. Risse, HSB: RST – SS04 37

8. Erlautern Sie die Begriffe virtual memory, paging und segmentation.

Erlautern Sie, wie Seiten-Zugriffe beschleunigt werden konnen.

Wieviele Zugriffe auf caches, page table und memory werden minimal undmaximal notwendig, wenn ein Prozessor uber first und second level cacheunbeschleunigt bzw. beschleunigt auf ein paged memory zugreift?

9. Zusatz: dlxsim laßt sich als Parallel-Prozessor konfigurieren.Klassifizieren Sie diesen (emulierten) Prozessor zusammen mit seiner hard-ware/software-Schnittstelle. Welche Anforderungen an den Compiler erge-ben sich aus dieser Erweiterung der Architektur?

Th. Risse, HSB: RST – SS04 38

Losungen zur Abschluß-Klausur Rechner-Strukturen 22.1.96 ES

1. Begrunden Sie, inwiefern die Befehlssatze fur MIPS R2000/R3000- oderDLX-Prozessoren typisch fur pipeline-Prozessoren sind.Bewerten Sie in diesem Zusammenhang die DLX-Instruktionsfolge

lhi r3,(LC0>>16)&0xffff

addui r3,r3,(LC0&0xffff)

(6 Pkt)

alle gleich lang; einfach zu dekodieren, wenn Argumente im Befehl an den-selben Stellen stehen, wenig Adressierungsarten ...load 32 bit immediate per zweimaligem load von 16 bit immediates ...

2. Erweitern Sie den Befehlssatz unseres (Beispiel-) pipeline-Prozessors MIPSR2000 um den jump and link -Befehl, jal #Target, fur Prozedur-Aufruf:seine Ausfuhrung besteht in R31=PC+4 (Retten der Rucksprung-Adresse)und goto Target (unbedingter Sprung) im Befehlsformat 3 Target .

Skizzieren Sie in der single cycle implementation (Anlage, Fig. 5.22) die not-wendigen Anderungen/Erganzungen im Daten-Pfad und in der Steuerung.Wie sind die Signale zu setzen? (10 Pkt)

3. Durch forwarding konnen fast alle data hazards beseitigt werden. WelcheDaten-Abhangigkeit laßt sich als einzige durch forwarding nicht beseitigenund warum? Was bleibt in dieser Situation zu tun? (5 Pkt)

4. Skizzieren Sie graphisch die Leistung eines pipeline-Prozessors in Abhangig-keit von der Stufen-Anzahl. Begrunden Sie Ihre Skizze. (2 Pkt)

Die Leistung eines pipeline-Befehlsprozessors steigt zunachst mit zuneh-mender Stufen-Anzahl. Allerdings nehmen dann die penalties fur branching,restart of pipeline bei Prozeß-Wechsel, bei exceptions stark zu, so daß sichein Maximum bei typischerweise 4-5 Stufen ergibt. Ahnlich auch pipeline-Prozessoren etwa fur arithmetische Operationen!.

5. #define sgn(x) ((x==0) ? 0 : ((x>0) ? 1 : -1)) berechnet das Si-gnum (Vorzeichen) von x. Ubersetzen Sie die zugehorige Anweisungsfol-ge in MIPS assembly language (Anlage) und optimieren Sie den Code fureinen (MIPS) pipeline-Prozessor mit load/store Architektur, 8 Allzweck-Registern und mit einer Latenzzeit von einem pipeline-Zyklus fur die Verfug-barkeit der Werte in Ziel-Registern von ALU- und load/store-Befehlen sowiemit einem branch delay slot.Erlautern Sie Ihren Code und Ihre Optimierungsschritte. (6+2 Pkt)

load Rx,x load Rx,x

Add Rr,R0,R0 Add Rr,R0,R0

BEQZ Rx, L0 BEQZ Rx, L0

nop nop

Th. Risse, HSB: RST – SS04 39

Add Rr,R0,#1 BGT Rx,#0, L0

BGT Rx,#0, L0 Add Rr,R0,#1

nop Add Rr,R0,#-1

Add Rr,R0,#-1 L0:nop

L0:nop

6. dlxcc erzeugt (uberhaupt) nicht optimierten code. Beschreiben Sie einigemogliche durch dlxcc vorzunehmende Optimierungen und vergleichen Siedie jeweils zu erwartenden Auswirkungen auf Code-Geschwindigkeit und-Große. (6 Pkt)

Binden von Variablen an Register nicht nur C-statement-weise, Fullen vonbranch delay slots, loop unfolding, Elimination gemeinsamer Ausdrucke,Erzeugen von inline code, reduction of strength, Elimination von totemCode ...

7. Wie arbeitet eine Speicherhierarchie, bestehend aus cache, memory, diskund Band-Archiv? Was ‘sieht’ ein pipeline-Prozessor von dieser Speicher-hierarchie? (6 Pkt)

8. Erlautern Sie die Begriffe virtual memory, paging und segmentation. (4 Pkt)Erlautern Sie, wie Seiten-Zugriffe beschleunigt werden konnen. (2 Pkt)Wieviele Zugriffe auf caches, page table und memory werden minimal undmaximal notwendig, wenn ein Prozessor uber first und second level cacheunbeschleunigt bzw. beschleunigt auf ein paged memory zugreift? (2 Pkt)

Abbildung eines vergleichsweise riesigen virtuellen auf einen vergleichsweisewinzigen physikalischen Speicher per paging (feste Seitengroße) oder seg-mentation (variable Segment- oder Seitengroße). (4 Pkt)Der Seiten-Zugriff wird ublicherweise durch Einsatz eines TLB beschleu-nigt, weil miss penalty so gigantisch hoch. (2 Pkt)Minimale Anzahl von Zugriffen ist 1, wenn die Daten im L1 vorliegen; Ma-ximale Anzahl von Zugriffen ist 4 (5), wenn die Daten nicht im L1, nichtim L2, (nicht im TLB), page table und memory. (2 Pkt)

9. Zusatz: dlxsim laßt sich als Parallel-Prozessor konfigurieren.Klassifizieren Sie diesen (emulierten) Prozessor zusammen mit seiner hard-ware/software-Schnittstelle. Welche Anforderungen an den Compiler erge-ben sich aus dieser Erweiterung der Architektur? (6 Pkt)

Th. Risse, HSB: RST – SS04 40

8 RST-Abschluß-Klausur WS95

Abschluß-Klausur Rechner-Strukturen 25.9.95 I8

Name Matrikel

Außer der Anlage sind keine Unterlagen zugelassen!

1. Erweitern Sie den Befehlssatz unseres (Beispiel-) pipeline-Prozessors MIPSR2000 um den jump and link -Befehl, jal #Target, fur Prozedur-Aufruf:seine Ausfuhrung besteht in R31=PC+4 (Retten der Rucksprung-Adresse)und goto Target (unbedingter Sprung) im Befehlsformat 3 Target .

a) Skizzieren Sie in der single cycle implementation (Anlage, Fig. 5.22) dienotwendigen Anderungen/Erganzungen im Daten-Pfad und in der Steue-rung. Wie sind die Signale zu setzen? (10 Pkt)

b) Fur die Aufrufe nur welcher Prozeduren ist dieser Befehl geeignet?(2 Pkt)

2. a) Charakterisieren Sie die prinzipiellen pipeline-Hazards (jeweils mit DLX-oder MIPS-Beispielen). Erlautern Sie jeweils Abhilfen. (5 Pkt)

b) Skizzieren Sie graphisch die Leistung eines pipeline-Prozessors in Abhan-gigkeit von der Stufen-Anzahl und begrunden Sie Ihre Skizze. (2 Pkt)

c) Welche Befehlssatze eignen sich fur pipeline-Prozessoren? (1 Pkt)

3. #define sgn(x) ((x==0) ? 0 : ((x>0) ? 1 : -1)) berechnet das Si-gnum (Vorzeichen) von x. Ubersetzen Sie die zugehorige Anweisungsfol-ge in MIPS assembly language (Anlage) und optimieren Sie den Code fureinen (MIPS) pipeline-Prozessor mit load/store Architektur, 8 Allzweck-Registern und mit einer Latenzzeit von einem pipeline-Zyklus fur die Ver-fugbarkeit der Werte in Ziel-Registern von ALU- und load/store-Befehlensowie mit einem branch delay slot.Erlautern Sie Ihren Code und Ihre Optimierungsschritte. (8 Pkt)

4. Bestimmen Sie hits vs misses in einem 8-Wort-cache-System beim Zugriffauf Wortadressen 1,3,28,1,25,3,20,1,0,28

a) fur einen 1-assoziativen cache mit 8 1-Wort-Blocken, (1 Pkt)

b) fur einen 1-assoziativen cache mit 4 Blocken a 2 Worten, (2 Pkt)

c) fur einen 2-assoziativen cache mit 1-Wort-Blocken und LRU14 sowie(2 Pkt)

d) fur einen 2-assoziativen cache mit Blocken a 2 Worten und mit LRU1.(2 Pkt)

14LRU = least recently used = least recently referenced

Th. Risse, HSB: RST – SS04 41

Stellen Sie die cache-Belegungen dar und vergleichen Sie die Ergebnisse mitder jeweils generell zu erwartenden cache-Leistung. (1 Pkt)

5. a) Wie groß ist die Seiten-Tabelle bei 8KB- bzw. 16KB-Seiten in einem 4GBgroßen virtuellen Speicher fur einen 4MB großen physikalischen Speicher?(4 Pkt)

b) Bewerten Sie Maßnahmen, Seiten-Zugriffe zu beschleunigen. (2 Pkt)

c) Wieviele Zugriffe auf caches, page table und memory werden minimalund maximal notwendig, wenn ein Prozessor uber first und second levelcache unbeschleunigt bzw. beschleunigt auf ein paged memory zugreift?(2 Pkt)

6. Zur Leistungsbewertung von (bidirektionalen) Verbindungsstrukturen vonMulti-Prozessor-Systemen dient einerseits die Gesamtbandbreite, also dieSumme der Bandbreiten aller Verbindungen, und andererseits die Halbie-rungsbandbreite, also die minimale Bandbreitensumme aller Verbindungen,die jede Linie kreuzen, die das Netzwerk in zwei Halften von Knoten teilt.

a) Wie hangt die Gesamtzahl von Verbindungen mit der Gesamtbandbreitezusammen? (1 Pkt)

b) Wieso reprasentieren die beiden Maße ‘best case’ bzw. ’worst case’?(2 Pkt)

c) Bestimmen Sie den Kommunikationsdurchmesser sowie Gesamt- undHalbierungsbandbreite fur Bus, Ring, Gitter, hypercube und vollstandigeVernetzung mit jeweils p = 22n Prozessoren und bewerten Sie das Ergebnis.(13 Pkt)

(Summe 60 Punkte)

Th. Risse, HSB: RST – SS04 42

Losungen

1. Erweitern Sie den Befehlssatz unseres (Beispiel-) pipeline-Prozessors MIPSR2000 um den jump and link -Befehl, jal #Target, fur Prozedur-Aufruf:seine Ausfuhrung besteht in R31=PC+4 (Retten der Rucksprung-Adresse)und goto Target (unbedingter Sprung) im Befehlsformat 3 Target .

a) Skizzieren Sie in der single cycle implementation (Anlage, Fig. 5.22) dienotwendigen Anderungen/Erganzungen im Daten-Pfad und in der Steue-rung. Wie sind die Signale zu setzen? (10 Pkt)

b) Fur die Aufrufe nur welcher Prozeduren ist dieser Befehl geeignet?(2 Pkt)

2. a) Charakterisieren Sie die prinzipiellen pipeline-Hazards (jeweils mit DLX-oder MIPS-Beispielen). Erlautern Sie jeweils Abhilfen. (5 Pkt)

b) Skizzieren Sie graphisch die Leistung eines pipeline-Prozessors in Ab-hangigkeit von der Stufen-Anzahl und begrunden Sie Ihre Skizze. (2 Pkt)

c) Welche Befehlssatze eignen sich fur pipeline-Prozessoren? (1 Pkt)

Struktur- (genugend HW), Daten- (forwarding) und Control-Hazards (div.branch prediction, branch delay slot, branch target buffer ...)

Die Leistung eines pipeline-Befehlsprozessors steigt zunachst mit zuneh-mender Stufen-Anzahl. Allerdings nehmen dann die penalties fur branching,restart of pipeline bei Prozeß-Wechsel, bei exceptions stark zu, so daß sichein Maximum bei typischerweise 4-5 Stufen ergibt.

alle gleich lang; einfach zu dekodieren, wenn Argumente im Befehl an den-selben Stellen stehen, wenig Adressierungsarten ...

3. #define sgn(x) ((x==0) ? 0 : ((x>0) ? 1 : -1)) berechnet das Si-gnum (Vorzeichen) von x. Ubersetzen Sie die zugehorige Anweisungsfol-ge in MIPS assembly language (Anlage) und optimieren Sie den Code fureinen (MIPS) pipeline-Prozessor mit load/store Architektur, 8 Allzweck-Registern und mit einer Latenzzeit von einem pipeline-Zyklus fur die Ver-fugbarkeit der Werte in Ziel-Registern von ALU- und load/store-Befehlensowie mit einem branch delay slot.Erlautern Sie Ihren Code und Ihre Optimierungsschritte. (6+2 Pkt)

load Rx,x load Rx,x

Add Rr,R0,R0 Add Rr,R0,R0

BEQZ Rx, L0 BEQZ Rx, L0

nop nop

Add Rr,R0,#1 BGT Rx,#0, L0

BGT Rx,#0, L0 Add Rr,R0,#1

nop Add Rr,R0,#-1

Add Rr,R0,#-1 L0:nop

Th. Risse, HSB: RST – SS04 43

L0:nop

4. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System aufWortadressen 1,3,28,1,25,3,20,1,0,28

a) fur einen 1-assoziativen cache mit 8 1-Wort-Blocken, (1 Pkt)

Adressen 1,3,28,1,25,3,20,1,0,28( mod 8 ): 2 hits

:

0 81 1,1,25,123 3,34 28,20,28567

b) fur einen 1-assoziativen cache mit 4 Blocken a 2 Worten, (2 Pkt)

Adressen 1,3,28,1,25,3,20,1,0,28( (address/2) mod 4): 3 hits

:

0 10 0,0,24,0,0 1,1,25,1,11 2,2 3,32 28,20,28 29,21,293

c) fur einen 2-assoziativen cache mit 1-Wort-Blocken und LRU (2 Pkt)

Adressen 1,3,28,1,25,3,20,1,0,28( mod 4 ): 3 hits

:

set0 28,0 20,28set1 1,1,1 25set2set3 3,3

und d) fur einen 2-assoziativen cache mit Blocken a 2 Worten und LRU.(2 Pkt)

Adressen 1,3,28,1,25,3,20,1,0,28( (address/2) mod 2 ): 4 hits

:0 1 0 1

set0 0,0,0,0 1,1,1,1 28,20,28 29,21,29set1 2,2 3,3 24 25

Skizzieren Sie die cache-Belegungen und vergleichen Sie die Ergebnisse mitder jeweils generell zu erwartenden cache-Leistung. (1 Pkt)

5. Wie groß ist die Seiten-Tabelle bei 8KB- bzw. 16KB-Seiten in einem 4GBgroßen virtuellen Speicher fur 4MB physikalischen Speicher?4GB= 232B und 8KB= 213B. Die physikalische Seiten-Adresse ist 9=22-13bit lang (frame no). Damit werden 232/213 = 219 = 512K Eintrage inder Seitentabelle (page table) fur die virtuellen Seiten notwendig – mitEintragen a 11 bit fur valid, dirty, frame no = 1 + 1 + 9. Die Seiten-Tabelleist daher 11×512Kbit oder 704KB groß. Im Fall von 16KB-Seiten hat dieSeiten-Tabelle 232/214 = 218 = 256K Eintrage a 1 + 1 + 8 =bit bei wegen

Th. Risse, HSB: RST – SS04 44

222/214 = 28 also 8bit frame no. Die Seiten-Tablle ist also 10×256Kbit oder320KB groß. (4 Pkt)

Der Seiten-Zugriff wird ublicherweise durch Einsatz eines TLB beschleunigt,weil miss penalty so gigantisch hoch. (2 Pkt)

Minimale Anzahl von Zugriffen ist 1, wenn die Daten im L1 vorliegen;Maximale Anzahl von Zugriffen ist 4 (5), wen die Daten nicht im L1, nichtim L2, (nicht im TLB), page table und memory. (2 Pkt)

6. Zur Leistungsbewertung von (bidirektionalen) Verbindungsstrukturen vonMulti-Prozessor-Systemen dient einerseits die Gesamtbandbreite, also dieSumme der Bandbreiten aller Verbindungen, und andererseits die Halbie-rungsbandbreite, also die minimale Bandbreitensumme aller Verbindungen,die jede Linie kreuzen, die das Netzwerk in zwei Halften von Knoten teilt.

Gesamtbandbreite ≈ Gesamtzahl von Verbindungen. (1 Pkt)

Die Gesamtbandbreite reprasentiert den ‘best case’ insofern, als Sender undEmpfanger so im Netz verteilt sind, daß alle links gleichzeitig aktiv seinkonnen; die Halbierungsbandbreite den ’worst case’ insofern, als alle Kom-munikation die gedachte Halbierungslinie kreuzt, die damit den Engpaßdarstellt. (2 Pkt)

Bestimmen Sie Kommunikationsdurchmesser sowie Gesamt- und Halbie-rungsbandbreite fur Bus, Ring, Gitter, hypercube und vollstandige Vernet-zung mit jeweils p = 22n Prozessoren und bewerten Sie das Ergebnis. Seiq =

√p = 2n und r = p/2 = 22n−1.

Komm-∅ total BW bisectionBus p− 1 p− 1 1Ring p/2 p 2(q × q)-Gitter 2(q − 1) 2 q(q − 1) 2(q − 1)(2 n)-hypercube 2 n 2 n p/2 = n p rfully connected 1 p(p− 1)/2 = r(p− 1) r2

fully connected: bisection = p(p−1)/2−r(r−1) = (2p(p−1)−p(p−2))/4 =r2 (13 Pkt)

Th. Risse, HSB: RST – SS04 45

9 RST-Abschluß-Klausur SS95

Abschluß-Klausur Rechnerstrukturen 6.3.95 I8

Name Matrikel

Es sind keine Unterlagen zugelassen!

1. Erlautern Sie das pipeline-Prinzip am Beispiel des Multiplizierers fur zwei8-bit-Integer ohne Vorzeichen (s. Anlage). Worin besteht unter Leistungs-aspekten der Nutzen, worin bestehen die Kosten? Inwiefern stellt der Mul-tiplizierer eine besondere pipeline dar?

Vergleichen Sie die Zeit zur Ausfuhrung von n Multiplikationen durch denMultiplizierer bei gegebenen T8-bit-adder und Tbus gate mit derjenigen durchdie pipeline-Version des Multiplizierers bei gegebenem Tlatch.

Wie lang braucht der Multiplizierer bzw. die pipeline-Version fur n = 10Multiplikationen fur T8-bit-adder = 50ns und Tlatch = Tbus gate = 10ns ?

Berechnen Sie die Mindest-Anzahl von Multiplikationen, ab der sich derEinsatz der pipeline-Version des Multiplizierers auszahlt.

Fuhren Sie dieselbe Untersuchung fur den entsprechenden Multiplizierer furzwei 16-bit-Integer ohne Vorzeichen durch.

2. a) Charakterisieren Sie die prinzipiellen pipeline-Hazards anhand von Bei-spielen. Erlautern Sie jeweils Abhilfen.b) Skizzieren Sie graphisch die Leistung eines pipeline-Prozessors in Ab-hangigkeit von der Stufen-Anzahl und erlautern Sie Ihre Skizze.c) Welche Befehlssatze eignen sich fur pipeline-Prozessoren? Begrunden SieIhre Charakterisierung.

3. Erlautern Sie Speicher-Hierarchien als Konsequenz von Lokalitat und tech-nologischen Moglichkeiten. Illustrieren Sie Ihre Ausfuhrungen am Beispieldes Einsatzes von cache-Speichern zwischen Prozessor und Speicher sowievon Festplatten zwischen Speicher und Band-Archiven.

4. Charakterisieren und bewerten Sie gangige cache-Verwaltungen (Adressie-rung, Ersetzungsstrategie und Maßnahmen, Konsistenz oder Koharenz si-cherzustellen). Wovon hangt die Leistung eines cache-Speichers ab? Wel-che Konsequenzen ergeben sich fur Auslegung und optimale Nutzung einescache-Speichers? Wann ist eine Aufteilung in getrennte Daten- und Befehls-Caches sinnvoll?Berechnen Sie die Leistungssteigerung

Tmemory ohne cacheTmemory mit cache

bei Einsatz eines

cache-Speichers mit Tmemory =9 Tcache und Treffer-Rate h=0.9.

Th. Risse, HSB: RST – SS04 46

5. Beschreiben Sie das Prinzip der Speicher-Verschrankung (high/low order in-terleave) und vergleichen und bewerten Sie bei gleicher Leistungssteigerungdes Speicher-Systemes den Aufwand, im selben Maß cache-Speicher, Busund Speicher zu verbreitern, mit demjenigen, den Speicher zu verschranken(s. Anlage).

Erlautern Sie das Prinzip des virtuellen Speichers und vergleichen Sie pagingmit segmentation.

6. Erlautern und vergleichen Sie synchrone und asynchrone Busse.

Erlauteren Sie Verfahren, einen Bus mehreren konkurrierenden Einheitenzuzuteilen.

7. Ubersetzen Sie die Anweisungsfolge a := b + c; d := e− f + a; in (Pseudo-)Maschinen-Sprache und optimieren Sie den Code fur einen pipeline-Prozessormit einer Latenzzeit von einem pipeline-Zyklus fur die Verfugbarkeit derWerte in Ziel-Registern von ALU- und load/store-Befehlen und mit 8 Allzweck-Registern. Erlautern Sie Ihre Optimierungsschritte.

8. Skizzieren Sie die Aufteilung der 138 32-bit-Register der RISC I Maschinein 10 Register fur globale Variable und Register-Fenster a 32 Registern,und zwar jeweils die 10 Register fur globale Variable, 10 Register fur lokaleVariable und je 6 Register fur Eingabe- bzw. Ausgabe-Parameter.Welche impliziten Annahmen liegen dieser Aufteilung zugrunde? Wie hochist die Aufruf-Tiefe?Bewerten Sie Vor- und Nachteile einer solchen Unterteilung. In welchenbeiden ‘klassischen’ Situationen uberwiegen die Nachteile?Zusatz: Welche andere Aufteilung haben die SPARC-Entwickler getroffen?

9. Ein Kunde mochte a) einen Prozessor oder b) Rechner mit dem fur ihn be-sten Preis-Leistungsverhaltnis kaufen. Wie gehen Sie bei der Beratung vor?Inwieweit sind Angaben zu CPI, Taktfrequenz, MIPS, MFLOPS, Speicher-Leistung, Bus- und I/O-Bandbreite oder benchmark-Ergebnisse sachdien-lich?

Th. Risse, HSB: RST – SS04 47

Losungen zur Abschluß-Klausur Rechnerstrukturen 6.3.95 I8

1. pipeline-Prinzip = Aufgliederung einer Aufgabe in sequentiell abzuarbei-tende Teile moglichst gleicher Lange – Teile, die dann auf spezialisierterhardware parallel abgearbeitet werden.Nutzen = Vervielfachungung der Multiplikationsrate;Kosten = HW-Aufwand fur latches + um latch times verlangerte Aus-fuhrungszeit einer einzelnen Multiplikationspezielle pipeline, da alle 7 Stufen identisch sind (kein Verlust durch pipeline-Zyklus = Maximum der Zyklen jeder einzelnen Stufe).

nicht pipelined: n 7 (Tbus gate + T8-bit-adder)pipelined: (7 + n− 1) ∗ (Tbus gate + T8-bit-adder + Tlatch)

Sei n = 10, T8-bit-adder = 50ns und Tbus gate = Tlatch = 10ns. Dann gilt:nicht pipelined: n 7 (Tbus gate + T8-bit-adder) = 70 · 60ns = 4.2µspipelined: (7+n−1)∗ (Tbus gate +T8-bit-adder +Tlatch) = 16 ·70ns = 1.12µs

Es gilt fur diese Parameter 420n = n 7 (Tbus gate +T8-bit-adder) ≥ (7+n−1)∗(Tbus gate + T8-bit-adder + Tlatch) = 70(n + 6) = 70n + 420 genau dann, wenn350n ≥ 420, also wenn n ≥ 1.2 also schon fur n ≥ 2.

Im Fall der Multiplikation von 16-bit-Operanden hat die pipeline 15 Stufen.Ihr Einsatz lohnt sich, falls 900n = n 15 (Tbus gate + T8-bit-adder) ≥ (15 + n−1) ∗ (Tbus gate + T8-bit-adder + Tlatch) = 70(n + 14) = 70n + 980 genau dann,wenn 83n ≥ 98, also wenn n ≥ 1.18 also ebenso schon fur n ≥ 2.

2. a) Charakterisieren Sie die prinzipiellen pipeline-Hazards anhand von Bei-spielen. Erlautern Sie jeweils Abhilfen.b) Skizzieren Sie graphisch die Leistung eines pipeline-Prozessors in in Ab-hangigkeit von der Stufen-Anzahl und erlautern Sie Ihre Skizze.c) Welche Befehlssatze eignen sich fur pipeline-Prozessoren? Begrunden SieIhre Charakterisierung.

a) Die drei prinzipiellen pipeline-Hazards sind Struktur- (nicht genugendAddierer fur gleichzeitige Adress-Rechnungen und operate Additionen;bei nur einem Speicher-Port nicht gleichzeitig Befehl und Daten ho-len), Daten- (Ergebnisse stehen als Operanden nicht rechtzeitig zurVerfugung) und Steuer-Hazard (Verzweigungsbedingung und Sprung-Ziel stehen nicht rechtzeitig zur Verfugung).Abhilfe besteht fur Struktur-Hazards in ausreichend vorhandener hard-ware, fur Daten-Hazard etwa in forwarding oder in Verringern derLade-/Speicher-Kosten durch Fullen der load/store delay slots undfur Steuer-Hazards in branch prediction und Fullen der branch delayslots.

b) je mehr Stufen in einer pipeline, um so hohere Ausgabe-Raten bei gefull-ter pipeline – aber gleichzeitig um so langere latch times und Fullzei-

Th. Risse, HSB: RST – SS04 48

ten, um so hohere Verluste bei flush und um so großerer Aufwand, denZustand der pipeline bei kontext switch zu retten.

c) festes Format in Verbindung mit einer oder wenigen Adressierungsar-ten, damit immer in derselben Zeit dekodiert werden kann,load/store, damit nur hier Lade-/Speicher-Kosten anfallen und zu mi-nimieren sind, und gleichermaßen nur Register-operate-Befehle ...

3. Erlautern Sie Speicher-Hierarchien als Konsequenz von Lokalitat und tech-nologischen Moglichkeiten. Illustrieren Sie Ihre Ausfuhrungen am Beispieldes Einsatzes von cache-Speichern zwischen Prozessor und Speicher sowievon Festplatten zwischen Speicher und Band-Archiven.

Speicherhierarchie (Register, cache, memory, disks, tape) zur Kostenopti-mierung: kleinere, schnellere, teuerere Speicher (z.B. cache bzw. Festplatte)halten nach Bedarf Kopien von Daten aus großeren, langsameren, billigerenSpeichern (z.B. memory bzw. Band-Archiv).

4. Charakterisieren und bewerten Sie gangige cache-Verwaltungen (Adressie-rung, Ersetzungsstrategie und Maßnahmen, Konsistenz oder Koharenz si-cherzustellen). Wovon hangt die Leistung eines cache-Speichers ab? Wel-che Konsequenzen ergeben sich fur Auslegung und optimale Nutzung einescache-Speichers? Wann ist eine Aufteilung in getrennte Daten- und Befehls-Caches sinnvoll?Berechnen Sie die Leistungssteigerung

Tmemory ohne cacheTmemory mit cache

bei Einsatz eines

cache-Speichers mit Tmemory =9 Tcache und Treffer-Rate h=0.9.

cache-Speicher nutzen Lokalitat von Befehlen und Daten; Lokalitat wird ge-messen durch hit ratio = hits/Zugriffe. Also moglichst große caches bei mog-lichst hoher Lokalitat (Compiler). Trennung sinnvoll, wenn dadurch Kon-flikte zwischen Befehls- und Datenblocken vermieden werden, oder wennwegen geringerer Fehlzugriffsrate auf und kein Schreiben in den Befehls-cache separat optimiert werden kann.

cache-Verwaltungen durch Adressierung per direct mapped (schnell undgeringer hardware-Aufwand, dafur geringere hit ratio) uber set associativebis hin zu fully associative (langsamer?, hoher hardware-Aufwand (paralleleVergleiche); bessere hit-ratio)Ersetzungsstrategien: direct mapped (geringster hardware-Aufwand), Ran-dom, FIFO, LRU (großter hardware-Aufwand).

Konsistenz durch write through; Koharenz durch write back

Bei einer Treffer-Rate von h = 0.9 ergibt sichTmemory ohne cacheTmemory mit cache

=9 Tcache

h Tcache+(1−h) Tmemory=

9 Tcacheh Tcache+(1−h) 9 Tcache

= 9h+9(1−h)

= 99/10+9 1/10

= 102

= 5.

5. Beschreiben Sie das Prinzip der Speicher-Verschrankung (high/low order in-terleave) und vergleichen und bewerten Sie bei gleicher Leistungssteigerung

Th. Risse, HSB: RST – SS04 49

des Speicher-Systemes den Aufwand, im selben Maß cache-Speicher, Busund Speicher zu verbreitern, mit demjenigen, den Speicher zu verschranken(s. Anlage).

Erlautern Sie das Prinzip des virtuellen Speichers und vergleichen Sie pagingmit segmentation.

Speicher-Verschrankung erlaubt gleichzeitigen oder pipelined Zugriff aufmehrere Speicher-Banke, adressiert durch high order interleave (gut furZugriff autonomer Einheiten auf verschiedene Speicher-Bereiche) oder loworder interleave (gut fur sequentiellen Zugriff auf etwa Feld-Elemente)

virtueller Speicher heißt einen großen logischen Adress-Raum auf einen we-sentlich kleineren physikalischen Adress-Raum abzubilden (swaping).

paging hat Seiten fester Große, mit HW-Unterstutzung, interne Fragmen-tierung usw.segmentation hat Segmente variabler Große mit SW-Unterstutzung (BS),externe Fragmentierungmeist Kombinationen

6. Erlautern und vergleichen Sie synchrone und asynchrone Busse.

Erlauteren Sie Verfahren, einen Bus mehreren konkurrierenden Einheitenzuzuteilen.

synchrone Busse sind getaktet, schnell, kurz und verbinden annahernd gleich-schnelle Gerate.asynchrone Busse sind ungetaktet, lngsam, lang und verbinden Gerate sehrverschiedener Bandbreiten.Giloi, S.93ff

7. Ubersetzen Sie die Anweisungsfolge a := b + c; d := e− f + a; in (Pseudo-)Maschinen-Sprache und optimieren Sie den Code fur einen pipeline-Prozessormit einer Latenzzeit von einem pipeline-Zyklus fur die Verfugbarkeit derWerte in Ziel-Registern von ALU- und load/store-Befehlen und mit 8 Allzweck-Registern. Erlautern Sie Ihre Optimierungsschritte.

a := b + c; d := e− f + a; wird wie folgt (rechts in optimierter Version) inMaschinen-Sprache ubersetzt (load/store Operationen haben eine Latenz-Zeit von einem Takt-Zyklus):

LW Rb,b LW Rb,b

LW Rc,c LW Rc,c

NOOP LW Re,e

ADD Ra,Rb,Rc ADD Ra,Rb,Rc

SW a,Ra LW Rf,f

LW Re,e ADD Rd,Re,Ra

LW Rf,f SW a,Ra

NOOP SUB Rd,Rd,Rf

Th. Risse, HSB: RST – SS04 50

SUB Rd,Re,Rf SW d,Rd

NOOP // (*)

ADD Rd,Rd,Ra

SW d,Rd (*): no forwarding

8. Skizzieren Sie die Aufteilung der 138 32-bit-Register der RISC I Maschinein 10 Register fur globale Variable und Register-Fenster a 32 Registern,und zwar jeweils die 10 Register fur globale Variable, 10 Register fur lokaleVariable und je 6 Register fur Eingabe- bzw. Ausgabe-Parameter.Welche impliziten Annahmen liegen dieser Aufteilung zugrunde? Wie hochist die Aufruf-Tiefe?Bewerten Sie Vor- und Nachteile einer solchen Unterteilung. In welchenbeiden ‘klassischen’ Situationen uberwiegen die Nachteile?Zusatz: Welche andere Aufteilung haben die SPARC-Entwickler getroffen?

Zugrunde liegende Annahmen: ≤10 globale Variable, ≤10 lokale Variableund jeweils ≤6 Eingabe- bzw. Ausgabe-Parameter.138=10+8x16 Register, also 8 Fenster, damit ist die Aufruf-Tiefe 8.Vorteil: schnelle Parameter-Ubergabe ohne Kopieren, push oder pop.Nachteil: Aufwand, falls mehr Parameter oder hohere Aufruf-Tiefe. Nachtei-lig bei rekursiven Funktionen (hohe Aufruf-Tiefe) und multitasking (immerist der ganze Register-Satz zu retten).Zusatz: SPARC-Aufteilung: 8 globale Variable, 8 lokale, 8 Eingabe- und 8Ausgabe-Parameter.

9. Ein Kunde mochte a) einen Prozessor oder b) Rechner mit dem fur ihn be-sten Preis-Leistungsverhaltnis kaufen. Wie gehen Sie bei der Beratung vor?Inwieweit sind Angaben zu CPI, Taktfrequenz, MIPS, MFLOPS, Speicher-Leistung, Bus- und I/O-Bandbreite oder benchmark-Ergebnisse sachdien-lich?

Anwendungsspezifisch!!! MFLOPS bei hohem Anteil von Gleitkomma-Ope-rationen; Bus- und I/O-Bandbreite klassisch bei COBOL wichtig, aber auchbei Grapik;

Th. Risse, HSB: RST – SS04 51

10 RST-Abschluß-Klausur WS94

Abschluß-Klausur Rechnerstrukturen 23.1.95 I8ES

Name Matrikel

Es sind keine Unterlagen zugelassen!

1. Erlautern Sie das pipeline-Prinzip am Beispiel des Multiplizierers fur zwei8-bit-Integer ohne Vorzeichen (s. Anlage). Worin besteht unter Leistungs-aspekten der Nutzen, worin bestehen die Kosten? Inwiefern stellt der Mul-tiplizierer eine besondere pipeline dar?

Vergleichen Sie die Zeit zur Ausfuhrung von n Multiplikationen durch denMultiplizierer bei gegebenen T8-bit-adder und Tbus gate mit derjenigen durchdie pipeline-Version des Multiplizierers bei gegebenem Tlatch.

Wie lang braucht der Multiplizierer bzw. die pipeline-Version fur n = 10Multiplikationen fur T8-bit-adder = 50ns und Tlatch = Tbus gate = 10ns ?

Berechnen Sie die Mindest-Anzahl von Multiplikationen, ab der sich derEinsatz der pipeline-Version des Multiplizierers auszahlt.

Fuhren Sie dieselbe Untersuchung fur den entsprechenden Multiplizierer furzwei 16-bit-Integer ohne Vorzeichen durch.

2. a) Charakterisieren Sie die prinzipiellen pipeline-Hazards (jeweils mit (DLX-) Beispielen). Erlautern Sie jeweils Abhilfen.b) Skizzieren Sie graphisch die Leistung eines pipeline-Prozessors in Abhangig-keit von der Stufen-Anzahl und erlautern Sie Ihre Skizze.c) Welche Befehlssatze eignen sich fur pipeline-Prozessoren?

3. Erlautern Sie Speicherhierarchien als Konsequenz von Lokalitat und tech-nologischen Moglichkeiten. Illustrieren Sie Ihre Ausfuhrungen am Beispieldes Einsatzes von cache-Speichern und Band-Archiven.

4. Charakterisieren und bewerten Sie gangige cache-Verwaltungen (Adressie-rung, Ersetzungsstrategie und Maßnahmen, Konsistenz oder Koharenz si-cherzustellen). Wovon hangt also die Leistung eines cache-Speichers ab?Welche Konsequenzen ergeben sich fur Auslegung und optimale Nutzungeines cache-Speichers?

Berechnen Sie die LeistungTmemoryTcache

eines cache-Speichers mit Tmemory =

9 Tcache bei einer Trefferrate von 0.9.

Th. Risse, HSB: RST – SS04 52

5. Beschreiben Sie das Prinzip der Speicher-Verschrankung (high/low order in-terleave) und vergleichen und bewerten Sie bei gleicher Leistungssteigerungdes Speicher-Systemes den Aufwand, im selben Maß cache-Speicher, Busund Speicher zu verbreitern, mit demjenigen, den Speicher zu verschranken.

Erlautern Sie das Prinzip des virtuellen Speichers und vergleichen Sie pagingmit segmentation.

6. Erlautern und vergleichen Sie synchrone mit asynchronen Bussen.

Erlauteren Sie den dezentralen daisy chain arbiter anhand einer Skizze.

7. Ubersetzen Sie die Anweisungsfolge a := b + c; d := e− f + a; in (Pseudo-)Maschinen-Sprache und optimieren Sie den Code fur einen pipeline-Prozessormit einer Latenzzeit von einem pipeline-Zyklus fur die Verfugbarkeit derWerte in Ziel-Registern von ALU- und load/store-Befehlen und mit 8 Allzweck-Registern. Erlautern Sie Ihre Optimierungsschritte.

8. Erlauteren Sie Methoden, Maschinen-Code fur Rechner mit a) einem pipeline-Prozessor, b) mehreren funktionalen Einheiten oder c) mit Vektor-Einheitenund -Befehlen zu optimieren.

9. Charakterisieren Sie Transputer-Systeme als Mehr-Prozessor-Systeme. Skiz-zieren Sie das Programmier-Modell und die Kommunikation zwischen Pro-zessen bzw. Transputern.

10. Ein Kunde mochte a) einen Prozessor oder b) Rechner mit dem fur ihn be-sten Preis-Leistungsverhaltnis kaufen. Wie gehen Sie bei der Beratung vor?Inwieweit sind Angaben zu CPI, Taktfrequenz, MIPS, MFLOPS, Speicher-Leistung, Bus- und I/O-Bandbreite oder benchmark-Ergebnisse sachdien-lich?

Th. Risse, HSB: RST – SS04 53

Losungen zur Abschluß-Klausur Rechnerstrukturen 23.1.95 I8ES

1. Erlautern Sie das pipeline-Prinzip am Beispiel des Multiplizierers fur zwei8-bit-Integer ohne Vorzeichen (s. Anlage). Worin besteht unter Leistungs-aspekten der Nutzen, worin bestehen die Kosten? Inwiefern stellt der Mul-tiplizierer eine besondere pipeline dar?

Vergleichen Sie die Zeit zur Ausfuhrung von n Multiplikationen durch denMultiplizierer bei gegebenen T8-bit-adder und Tbus gate mit derjenigen durchdie pipeline-Version des Multiplizierers bei gegebenem Tlatch.

Wie lang braucht der Multiplizierer bzw. die pipeline-Version fur n = 10Multiplikationen fur T8-bit-adder = 50ns und Tlatch = Tbus gate = 10ns ?

Berechnen Sie die Mindest-Anzahl von Multiplikationen, ab der sich derEinsatz der pipeline-Version des Multiplizierers auszahlt.

Fuhren Sie dieselbe Untersuchung fur den entsprechenden Multiplizierer furzwei 16-bit-Integer ohne Vorzeichen durch.

pipeline-Prinip = Aufgliederung einer Aufgabe in sequentiell abzuarbei-tende Teile moglichst gleicher Lange – Teile, die dann auf spezialisierterhardware parallel abgearbeitet werden.Nutzen = Vervielfachungung der Multiplikationsrate;Kosten = HW-Aufwand fur latches + um latch times verlangerte Aus-fuhrungszeit einer einzelnen Multiplikationspezielle pipeline, da alle 7 Stufen identisch sind (kein Verlust durch pipeline-Zyklus = Maximum der Zyklen jeder einzelnen Stufe).

nicht pipelined: n 7 (Tbus gate + T8-bit-adder)pipelined: (7 + n− 1) ∗ (Tbus gate + T8-bit-adder + Tlatch)

Sei n = 10, T8-bit-adder = 50ns und Tbus gate = Tlatch = 10ns. Dann gilt:nicht pipelined: n 7 (Tbus gate + T8-bit-adder) = 70 · 60ns = 4.2µspipelined: (7+n−1)∗ (Tbus gate +T8-bit-adder +Tlatch) = 16 ·70ns = 1.12µs

Es gilt fur diese Parameter 420n = n 7 (Tbus gate +T8-bit-adder) ≥ (7+n−1)∗(Tbus gate + T8-bit-adder + Tlatch) = 70(n + 6) = 70n + 420 genau dann, wenn350n ≥ 420, also wenn n ≥ 1.2 also schon fur n ≥ 2.

Im Fall der Multiplikation von 16-bit-Operanden hat die pipeline 15 Stufen.Ihr Einsatz lohnt sich, falls 900n = n 15 (Tbus gate + T8-bit-adder) ≥ (15 + n−1) ∗ (Tbus gate + T8-bit-adder + Tlatch) = 70(n + 14) = 70n + 980 genau dann,wenn 83n ≥ 98, also wenn n ≥ 1.18 also ebenso schon fur n ≥ 2.

2. a) Charakterisieren Sie die prinzipiellen pipeline-Hazards (jeweils mit (DLX-) Beispielen). Erlautern Sie jeweils Abhilfen.b) Skizzieren Sie graphisch die Leistung eines pipeline-Prozessors in Abhangig-keit von der Stufen-Anzahl und erlautern Sie Ihre Skizze.c) Welche Befehlssatze eignen sich fur pipeline-Prozessoren?

Th. Risse, HSB: RST – SS04 54

a) Die drei prinzipiellen pipeline-Hazards sind Struktur- (nicht genugendAddierer fur gleichzeitige Adress-Rechnung und operate ADD; bei nureinem Speicher-Port nicht gleichzeitig Befehl und Daten holen), Daten-(Ergebnisse stehen als Operanden nicht rechtzeitig zur Verfugung) undSteuer-Hazard (Verzweigungsbedingung und Sprung-Ziel stehen nichtrechtzeitig zur Verfugung).Abhilfe besteht fur Struktur-Hazards besteht in ausreichend hard-ware, fur Daten-Hazard etwa in forwarding oder in Verringern derLade-/Speicher-Kosten durch Fullen der load/store delay slots undfur Steuer-Hazards in branch prediction und Fullen der branch delayslots.

b) je mehr Stufen in einer pipeline, um so hohere Ausgabe-Raten bei gefull-ter pipeline – aber gleichzeitig um so langere latch times und Fullzei-ten, um so hohere Verluste bei flush und um so großerer Aufwand, denZustand der pipeline bei kontext switch zu retten.

c) festes Format in Verbindung mit einer oder wenigen Adressierungsarten,damit immer in derselben Zeit dekodiert werden kann, load/store, da-mit nur hier Lade-/Speicher-Kosten anfallen und zu minimieren sind,und gleichermaßen nur Register-operate-Befehle ...

3. Erlautern Sie Speicherhierarchien als Konsequenz von Lokalitat und tech-nologischen Moglichkeiten. Illustrieren Sie Ihre Ausfuhrungen am Beispieldes Einsatzes von cache-Speichern und Band-Archiven.

Speicherhierarchie (Register, cache, memory, disks, tape) zur Kostenopti-mierung: kleinere, schnellere, teuerere Speicher (z.B. cache bzw. Festplatte)halten nach Bedarf Kopien von Daten aus großeren, langsameren, billigerenSpeichern (z.B. memory bzw. Band-Archiv).

4. Charakterisieren und bewerten Sie gangige cache-Verwaltungen (Adressie-rung, Ersetzungsstrategie und Maßnahmen, Konsistenz oder Koharenz si-cherzustellen). Wovon hangt also die Leistung eines cache-Speichers ab?Welche Konsequenzen ergeben sich fur Auslegung und optimale Nutzungeines cache-Speichers?

Berechnen Sie die LeistungTmemoryTcache

eines cache-Speichers mit Tmemory =

9 Tcache bei einer Trefferrate von 0.9.

cache-Speicher nutzen Lokalitat von Befehlen und Daten; Lokalitat wirdgemessen durch hit ratio = hits/Zugriffe. Also moglichst große caches beimoglichst hoher Lokalitat (Compiler).

cache-Verwaltungen durch Adressierung per direct mapped (schnell undgeringer hardware-Aufwand, dafur geringere hit ratio) uber set associativebis hin zu fully associative (langsamer?, hoher hardware-Aufwand (paralleleVergleiche); bessere hit-ratio)

Th. Risse, HSB: RST – SS04 55

Ersetzungsstrategien: direct mapped (geringster hardware-Aufwand), Ran-dom, FIFO, LRU (großter hardware-Aufwand).

Konsistenz durch write through; Koharenz durch write back

Bei einer Trefferrate von h = 0.9 ergibt sichTmemory

Tmit cache=

9 Tcacheh Tcache+(1−h) Tmemory

=9 Tcache

h Tcache+(1−h) 9 Tcache= 9

h+9(1−h)= 9

9/10+9 1/10= 10

2= 5.

5. Beschreiben Sie das Prinzip der Speicher-Verschrankung (high/low order in-terleave) und vergleichen und bewerten Sie bei gleicher Leistungssteigerungdes Speicher-Systemes den Aufwand, im selben Maß cache-Speicher, Busund Speicher zu verbreitern, mit demjenigen, den Speicher zu verschranken.

Erlautern Sie das Prinzip des virtuellen Speichers und vergleichen Sie pagingmit segmentation.

Speicher-Verschrankung erlaubt gleichzeitigen oder pipelined Zugriff aufmehrere Speicher-Banke, adressiert durch high order interleave (gut furZugriff autonomer Einheiten auf verschiedene Speicher-Bereiche) oder loworder interleave (gut fur sequentiellen Zugriff auf etwa Feld-Elemente)

virtueller Speicher heißt einen großen logischen Adress-Raum auf einen we-sentlich kleineren physikalischen Adress-Raum abzubilden (swaping).

paging hat Seiten fester Große, mit HW-Unterstutzung, interne Fragmen-tierung usw.segmentation hat Segmente variabler Große mit SW-Unterstutzung (BS),externe Fragmentierungmeist Kombinationen

6. Erlautern und vergleichen Sie synchrone mit asynchronen Bussen.

Erlauteren Sie den dezentralen daisy chain arbiter anhand einer Skizze.

synchrone Busse sind getaktet, schnell, kurz und verbinden annahernd gleich-schnelle Gerate.asynchrone Busse sind ungetaktet, langsam, lang und verbinden Gerate sehrverschiedener Bandbreiten.

7. Ubersetzen Sie die Anweisungsfolge a := b + c; d := e− f + a; in (Pseudo-)Maschinen-Sprache und optimieren Sie den Code fur einen pipeline-Prozessormit einer Latenzzeit von einem pipeline-Zyklus fur die Verfugbarkeit derWerte in Ziel-Registern von ALU- und load/store-Befehlen und mit 8 Allzweck-Registern. Erlautern Sie Ihre Optimierungsschritte.

a := b + c; d := e− f + a; wird wie folgt (rechts in optimierter Version) inMaschinen-Sprache ubersetzt (load/store Operationen haben eine Latenz-Zeit von einem Takt-Zyklus):

LW Rb,b LW Rb,b

LW Rc,c LW Rc,c

Th. Risse, HSB: RST – SS04 56

NOOP LW Re,e

ADD Ra,Rb,Rc ADD Ra,Rb,Rc

SW a,Ra LW Rf,f

LW Re,e ADD Rd,Re,Ra

LW Rf,f SW a,Ra

NOOP SUB Rd,Rd,Rf

SUB Rd,Re,Rf SW d,Rd

NOOP // (*)

ADD Rd,Rd,Ra

SW d,Rd (*): no forwarding

8. Erlauteren Sie Methoden, Maschinen-Code fur Rechner mit a) einem pipeline-Prozessor, b) mehreren funktionalen Einheiten oder c) mit Vektor-Einheitenund -Befehlen zu optimieren.

Der Maschinen-Code fur Rechner mit einem pipeline-Prozessor wird etwadurch Fullen der branch oder load delay slots, durch branch prediction,durch loop unrolling usw. (alle RISC-Prozessoren), derjenige fur Rechnermit mehreren funktionalen Einheiten wird durch scheduling der funktio-nalen Einheiten (DEC-alpha, PowerPC usw.), derjenige fur Rechner mitVektor-Einheiten wird durch Vektorisierung (alle Vektor-Rechner, geome-tric engines der Indigo) oder derjenige fur Rechner mit mehreren Prozesso-ren wird durch Scheduling von Prozessen (sowohl alpha als auch PowerPCsind multi-Prozessor-fahig) optimiert.Beispiel fur die Parallelisierung auf Anweisungsebene ist das Schedulingmehrerer funktionaler Einheiten, z.B. ALUs, eventuell in Verbindung mitAusnutzen von Kommutativitat, Assoziativitat oder Distributivitat zur Re-duktion der Tiefe des Verarbeitungsbaumes.

9. Charakterisieren Sie Transputer-Systeme als Mehr-Prozessor-Systeme. Skiz-zieren Sie das Programmier-Modell und die Kommunikation zwischen Pro-zessen bzw. Transputern.

Transputer-Systeme sind MIMD-Mehr-Prozessor-Systeme, die uber soge-nannte links sehr effektiv (Maschinen-Befehle) und einfach kommunzieren.Das Programmier-Modell ist das der kommunizierenden Prozesse.

10. Ein Kunde mochte a) einen Prozessor oder b) Rechner mit dem fur ihn be-sten Preis-Leistungsverhaltnis kaufen. Wie gehen Sie bei der Beratung vor?Inwieweit sind Angaben zu CPI, Taktfrequenz, MIPS, MFLOPS, Speicher-Leistung, Bus- und I/O-Bandbreite oder benchmark-Ergebnisse sachdien-lich?

Anwendugsspezifisch!!! MFLOPS bei hohem Anteil von Gleitkomma-Ope-rationen, Bus- und I/O-Bandbreite klassisch bei COBOL wichtig, aber auchbei Grapik.

Th. Risse, HSB: RST – SS04 57

11 Anlagen – Arbeitsblatter

11.1 single cycle implementation

Shi

ft

left

2

PC

Inst

ruct

ion

mem

ory

Rea

d ad

dres

s

Inst

ruct

ion

[31

–0]

Dat

a m

emor

yRea

d da

ta

Write

da

ta

Reg

iste

rsW

rite

re

gist

er

Write

da

ta

Rea

d da

ta 1

Rea

d da

ta 2

Rea

d re

gist

er 1

Rea

d re

gist

er 2

Inst

ruct

ion

[15

–11

]

Inst

ruct

ion

[20

–16

]

Inst

ruct

ion

[25

–21

]

Add

ALU

re

sult

Zero

Inst

ruct

ion

[5–0

]

Mem

toR

eg

ALU

Op

Mem

Write

Reg

Write

Mem

Rea

d

Bra

nch

Jum

pR

egD

st

ALU

Src

Inst

ruct

ion

[31

–26

]

4

M

u x

Inst

ruct

ion

[25

–0]

Jum

p ad

dres

s [3

1–0

]

PC

+4

[3

1–2

8]

Sig

n ex

tend

16

32

Inst

ruct

ion

[15

–0]

1

M

u x1 0

M

u x0 1

M

u x0 1

ALU

co

ntro

l

Con

trol

Add

ALU

re

sult

M

u x0 10

ALU

Shi

ft

left

226

28

Add

ress

14ab WS00/01 aus COD 2nd edition, Fig. 5.29 p372

Th. Risse, HSB: RST – SS04 58

11.2 multi cycle implementation

Shi

ft

left

2

PC

M

u x0 1

Reg

iste

rsW

rite

re

gist

er

Write

da

ta

Rea

d da

ta 1

Rea

d da

ta 2

Rea

d re

gist

er 1

Rea

d re

gist

er 2

Inst

ruct

ion

[15

–11

]

M

u x0 1

M

u x0 1

4

Inst

ruct

ion

[15

–0]

Sig

n ex

tend

32

16

Inst

ruct

ion

[25

–21

]

Inst

ruct

ion

[20

–16

]

Inst

ruct

ion

[15

–0]

Inst

ruct

ion

regi

ster

ALU

co

ntro

l

ALU

re

sult

ALU

Zero

Mem

ory

data

re

gist

er

A B

IorD

Mem

Rea

d

Mem

Write

Mem

toR

eg

PC

Write

Con

d

PC

Write

IRW

rite

ALU

Op

ALU

Src

B

ALU

Src

A

Reg

Dst

PC

Sou

rce

Reg

Write

Con

trol

Out

puts

Op

[5–0

]

Inst

ruct

ion

[31

-26

]

Inst

ruct

ion

[5–0

]

M

u x

0 2

Jum

p ad

dres

s [3

1-0

]In

stru

ctio

n [2

5–0

]2

62

8S

hift

le

ft 2

PC

[3

1-2

8]

1

1M

u x

0 32

M

u x0 1ALU

Out

Mem

ory

Mem

Dat

a

Write

da

ta

Add

ress

14ab WS00/01 aus COD 2nd edition, Fig. 5.33 p383

Th. Risse, HSB: RST – SS04 59

11.3 pipeline implementation

PC

Inst

ruct

ion

mem

ory

4

Reg

iste

rs

M

u x M

u x

M

u x

ALU

EXMWB

MWB

WB

ID/E

X

0

EX/

MEM

MEM

/WB

Dat

a m

emor

y

M

u x

Haz

ard

dete

ctio

n un

it

Forw

ardi

ng

unit

IF.F

lush

IF/I

D

Sig

n ex

tend

Con

trol

M

u x

=

Shi

ft

left

2

M

u x

14ab WS00/01 aus COD 2nd edition, Fig. 6.51 p499

Th. Risse, HSB: RST – SS04 60

11.4 superscalar implementation

PC

Inst

ruct

ion

mem

ory

4

Reg

iste

rsM

u x

M

u x

ALU

M

u x

Dat

a m

emor

y

M

u x

40000040

Sig

n ex

tend

Sig

n ex

tend

ALU

Add

ress

Write

da

ta

14ab WS00/01 aus COD 2nd edition, Fig. 6.58 p512

Th. Risse, HSB: RST – SS04 61

11.5 DLX/MIPS-ISA

Auszug aus der DLX- bzw. MIPS-Instruction Set Architecture (ISA)

SP = single precision; DP = double precision

Befehlstyp/ Bedeutungmnem. OP-Code

Datentransport Datentransport zwischen Registern und Spei-cher oder FK und GK, oder Spezialregistern;Speicher-Addressierungsart: nur GPR + 16 bitDisplacement

LB,LBU,SB Laden eines Bytes. Laden idem vorzeichenlos.Speichern idem

LH, LHU, SH Laden eines Halbwortes. Laden idem vorzeichen-los. Speichern idem

LW, SW Laden eines Wortes, Speichern Wortes (zu/vonFK-Registern)

LF, LD, SF, SD Laden von SP-GK. Laden von DP-GK, Speic-bern von DP-GK, Speichern von DP-GK

MOVF, MOVD Transport vom/zu GPR zu/vom Spezialregister-gister

MOVI2S, MOVS2F Transport eines GK-Registers oder eines DP-Paares zu einem anderen Register oder Paar

MOVFP2I, MOVI2FP Transport von 32 Bit von/zu GK-Registernzu/von FK-Registern

arithmetisch/logisch Operationen auf FK- oder log. Daten in GPRsvorzeichenbehafteter Arithmetik-Trap bei Uber-lauf

ADD, ADDI, ADDU, ADDUI Add., Add. mit Immediate (Immediates sind 16Bit); mit und ohne Vorzeichen

SUB, SUBI, SUBU, SUBUI Subtraktion, Subtraktion Immediate; mit undohne Vorzeichen

MULT, MULTU, DIV, DIVU Multiplikation und Division; mit und ohne Vor-zeichen; Operanden mussen GK-Register sein;alle Operationen ergeben 32-Bit-Werte

AND,ANDI, ADDU, ADDUI logisches AND. AND mit ImmediateOR, ORI, XOR, XORI logisches OR, OR mit Immediate; logisches

XOR, XOR mit ImmediateLHI Laden der oberen Halfte eines RegistersSLL, SRL, SRA,SLLI, SRLI, SRAI

Verschiebung: Immediate (S I) und Variablen-form (S ); Verschiebungen sind links logisch,rechts logisch. rechts arithmetisch

S , S I Setzen Bedingt; kann sein LT, GT, LE, GE,EQ, NE

Th. Risse, HSB: RST – SS04 62

Befehlstyp/ Bedeutungmnem. OP-Code

Steuerung Bedingte Verzweigungen und Sprunge; PC-relativ oder mit Register

BEQZ, BEQNZ Verzweigen bei GPR gleich/verschieden Null; 16-Bit-Offset von PC+4

J, JR Sprunge: 26-Bit-Offset von PC (J) oder dem Zielim Register (JR)

JAL, JALR UP-Sprung: Retten PC+u4 in R31, Ziel ist PC-relativ (JAL) oder ein Register (JALR)

TRAP Ubergang zum OS bei einer vektorisierten Adres-se

RFE Ruckkehr zum Nutzercode von einer Ausnahme;Ruckspeicherung des Nutzer-Modus;

Gleitkomma GK-Operationen im DP- und SP-FormatADDD, ADDF Addieren von DP-, SP-GK-Zah1enSUBD, SUBF Subtrahieren von DP-, SP-GK-ZahlenMULTD, MULTF Multiplizieren von DP-. SP-GK-ZahlenDIVD, DIVF Dividieren von DP-, SP-GK-ZahlenCVTF2D, CVTD2F,CVTI2F, CVTD2F,CVTD2I, CVTI2F, CVTI2D

KonvertierungsbefehJe: CVTx2y konvertiertvom Typ x zum Typ y, wobei x und y einem Typvon I (FK), D (DP) oder F (SP) entsprechen.Beide Operanden sind in GK-Registern

D, F DP- und SP-Vergleich: ist LT ,GT, LE,GE, EQ, NE; setzt Vergleichsbit im GK-Statusregister

Index

assoziativ, siehe cache

Befehlssatz, siehe ISAbenchmark, 47, 53Beschleunigungsfaktor, 5, 11, 16, 21, 22bus, 47, 53

asynchron, 47, 53bandwidth, 47, 53daisy chain, 53synchron, 47, 53

cache, 38, 42, 52data, 46instruction, 46L1, 38, 42L2, 38, 42Organisation, 52

caching, 46coherence, 46consistency, 46LRU, 5, 12, 17, 22, 28, 41read, 5, 12, 17, 22, 28, 41

CISC, 16code, 5, 11, 16, 21, 27, 33, 37, 41, 47, 53

loop, 27unfolding, 21, 27unrolling, 21, 27

Optimierung, 5, 11, 16, 33, 37, 41,47, 53

Convex, 12CPI, 47, 53

direct mapped, siehe cacheDLX, 5, 11, 16, 21, 27, 33, 37

addui, 37ISA, 33jal, 33, 37, 41jr, 21, 27ld, 11lhi, 37

fully associative, siehe cachefunctional unit, 53

implementation, 4, 11, 16, 21, 27, 33,37, 41

pipeline, 4, 11, 16, 21, 27single cycle, 33, 37, 41

Intel 80x8680286, 1280386, 12MMX, 11, 16, 22Pentium, 22

IObandwidth, 47

ISA, 4, 11, 16, 21, 33, 37, 41, 46, 52Format, 11load/store, 41

Latenz, 5, 11, 16, 33, 37, 41, 47, 53Leistung, 11, 21, 27, 33, 37, 41, 46, 47,

52, 53

memory, 12, 17, 33, 37, 42, 46, 47, 52,53

bandwidth, 47, 53hierarchy, 33, 37, 46, 52

cache, 33, 52disk, 33, 37, 46L1 cache, 34L2 cache, 34tape, 33, 37, 46, 52

interleave, 47, 53page size, 42page table, 34, 38, 42paged segments, 17paging, 34, 38, 42, 47, 53segmentation, 12, 34, 38, 47, 53TLB, 17virtual, 34, 38

MFLOPS, 47, 53MIPS, 5, 11, 27, 33, 37, 47, 53

ISA, 33jal, 33, 37, 41jr, 21, 27ld, 11, 16load store, 37mult, 4

63

Th. Risse, HSB: RST – SS04 64

multu, 4sd, 4

multi processing systemKSR1, 17memory system, 17

multi processor system, 5, 12, 22, 28,34, 38, 53

bus system, 22cluster, 5communication

bandwidth, 42bisection bandwidth, 28, 42diameter, 28, 42

interconnect, 22bus, 42completely networked, 42grid, 42hypercube, 42ring, 42

interconnectiongrid, 28torus, 28

memory, 12vectoring, 5

Parallelisierung, 5pipeline, 27, 41, 46, 52, 53

multiplicator, 46, 52Stufen, 27, 33, 37, 41, 46, 52

pipelining, 5, 11, 21, 27, 33, 37, 41, 46,47, 53

branch delay slot, 33, 41branch prediction, 5forwarding, 11, 16, 21, 27, 33, 37hazard, 21, 27, 33, 37, 41, 46, 52

processorpipeline, 33vector, 5, 34, 53

register, 27, 33, 41, 47, 53global, 47local, 47window, 47

RISC, 11, 16, 27RISC I, 47

set associative, siehe cacheSpeicher, siehe memorySUN SPARC, 27Synapse 1, 22

Transputer, 53

voll assoziativ, siehe cache