Rechner-Strukturen: Abschluß-Klausuren mit ausgew¨ahlten L ... · Erweitern Sie den Befehlssatz...
Transcript of Rechner-Strukturen: Abschluß-Klausuren mit ausgew¨ahlten L ... · Erweitern Sie den Befehlssatz...
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