Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch {...

266
Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ausgew¨ ahlten L¨ osungen Prof. Dr. Thomas Risse www.weblearn.hs-bremen.de/risse/RST Fakult¨ at Elektrotechnik & Informatik Hochschule Bremen SS 2015 Inhaltsverzeichnis Inhaltsverzeichnis 1 1 CompArch-Klausur SS15w 4 2 CompArch-Klausur SS15 10 3 CompArch-Klausur SS14w 19 4 CompArch-Klausur SS14 29 5 RST-Klausur SS13 38 6 RST-Klausur SS12w 48 7 RST-Klausur SS11w 56 8 RST-Klausur SS11 68 9 RST-Klausur WS10 78 10 RST-Klausur SS09 85 1

Transcript of Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch {...

Page 1: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Computer-Architektur/Rechner-StrukturenAlte Klausuren mit ausgewahlten Losungen

Prof. Dr. Thomas Risse

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

Fakultat Elektrotechnik & InformatikHochschule Bremen

SS 2015

Inhaltsverzeichnis

Inhaltsverzeichnis 1

1 CompArch-Klausur SS15w 4

2 CompArch-Klausur SS15 10

3 CompArch-Klausur SS14w 19

4 CompArch-Klausur SS14 29

5 RST-Klausur SS13 38

6 RST-Klausur SS12w 48

7 RST-Klausur SS11w 56

8 RST-Klausur SS11 68

9 RST-Klausur WS10 78

10 RST-Klausur SS09 85

1

Page 2: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 2

11 RST-Klausur SS08 91

12 RST-Klausur WS07 98

13 RST-Klausur SS07 108

14 RST-Klausur WS06 118

15 RST-Klausur SS06 126

16 RST-Klausur SS05 133

17 RST-Klausur WS04 141

18 RST-Klausur SS04 147

19 RST-Klausur SS03 157

20 RST-Klausur SS02 168

21 RST-Klausur SS01 176

22 RST-Klausur WS00 184

23 RST-Klausur WS99 191

24 RST-Klausur SS99 198

25 RST-Klausur SS98 205

26 RST-Klausur WS97 211

27 RST-Klausur SS97 217

28 RST-Klausur WS96 223

29 RST-Klausur SS96 228

30 RST-Klausur WS95 234

31 RST-Klausur SS95 fur I5 241

32 RST-Klausur SS95 fur I7 245

Page 3: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 3

33 RST-Klausur WS94 250

34 Anlagen – Arbeitsblatter 255

34.1 single cycle implementation . . . . . . . . . . . . . . . . . . . . . . . . . 255

34.2 multi cycle implementation . . . . . . . . . . . . . . . . . . . . . . . . . 256

34.3 Modeling the Main Control . . . . . . . . . . . . . . . . . . . . . . . . . 257

34.4 pipeline implementation – ohne hazard detection . . . . . . . . . . . . . 258

34.5 pipeline implementation – mit hazard detection . . . . . . . . . . . . . . 259

34.6 superscalar implementation . . . . . . . . . . . . . . . . . . . . . . . . . 260

34.7 DLX/MIPS-ISA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261

Index 262

Aufgaben und zugehorige Losungen sind wechselweise verzeigert.

Page 4: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 4

1 CompArch-Klausur SS15w

Klausur, 2.Termin Computer-Architektur 28.9.2015

Name, Vorname Matrikel

Hilfsmittel sind nicht zugelassen! und aus gegebenem Anlaß:weniger ist mehr! – statt weitschweifiger, wolkiger Poesie

klare, knappe Aussagen mit stimmigen, Stichwort-artigen Begrundungen!Es wird nicht erwartet, daß alle Aufgaben bearbeitet werden!

Pkt 11 12 13 14 15 16 17 18 19 20Note 4,0 3,7 3,3 3,0 2,7 2,3 2,0 1,7 1,3 1,0

1. Bezugnehmend auf den c’t-Artikel von Christof Windeck: Benchmarks zur ProtokollKW 12&2717.3.&30.6.

Einschatzung der Prozessor-Performance nehmen Sie konkret Stellung zu• Bedingungen fur faire Ausfuhrung eines benchmarks •Was mißt Octane?• je mehr Kerne je mehr Leistung? • Was ist und welche Bedeutung hatLinpack •Was ist und welche Bedeutung hat AVX fur benchmarks? •Wasist OpenCL? • IGPs und benchmarks? • Charakteristika von SYSmark?

(je 0,25 Pkt)

2. Die DLX-Instruktion bgez Rs, label; if (Rs>=0) goto label ist eine ProtokollKW 1614.4.2015

sogenannte Pseudo-Instruktion, d.h. eine Instruktion, die nicht im Befehls-satz vorkommt und die der Assembler durch eine oder mehrere geeigneteInstruktionen des Befehlssatzes ersetzt.Welchen Sinn haben Pseudo-Instruktionen? Pseudo-Instruktionen entlastenwelche Instanzen wovon und belasten welche Instanzen wodurch? Durchwelche Instruktion(en) wird bgez ersetzt (s. DLX/MIPS ISA)? SchlagenSie wesentlich andere, sinnvolle Pseudo-Instruktionen zusammen mit ihrenDLX-Implementierungen vor (s. DLX ISA). (je 0,5 Pkt)

3. Erweitern Sie die multi cycle-Implementation des MIPS R2000/R3000 um ProtokollKW 195.5.2015

den jump and link register Befehl jalr Rs,Rd, der PC+4 in Rd rettet unddann nach Rs springt; jalr ist im Format 0 Rs 0 Rd 0 9 kodiert.(Um welches Format handelt es sich?) Skizzieren Sie dazu im Arbeitsblatt(Fig. 5.33) die notwendigen Anderungen oder Erganzungen im Daten-Pfadund in der Steuerung. Wie sind die Signale zu setzen? Erzeugen Sie dieSignale durch Erweiterung des Mikro-Programms in Fig. 5.46. (8 Pkt)

4. Was spricht – wenn uberhaupt – fur getrennte Befehls- und Daten-caches, ProtokollKW 232.6.2015

was – wenn uberhaupt – dagegen? (je 0,5 Pkt)

5. Beschreiben Sie worst case und best case beim lesenden bzw. schreibenden ProtokollKW 249.6.2015

Speicher-Zugriff eines Prozessors mit cache, TLB und paged segments. Dercache sei virtuell indiziert. (4 Pkt)

Page 5: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 5

6. Gauß-Elimination uberfuhrt die Koeffizienten-Matrix A eines Systems li- ProtokollKW 2623.6.2015

nearer Gleichungen A~x = ~b in eine obere Dreiecksmatrix, das Gauß-Jordan-Verfahren in eine Diagonalmatrix. Beschreiben Sie eine parallele Version desGauß-Jordan-Verfahrens und seine Vorteile gegenuber dem parallelen klas-sischen Gauß-Verfahren der Vorlesung. (2 Pkt)

Fig. 5.46: das zu erweiternde µ-Programm fur MIPS R2000 in symbolischer Form

ALU Register PC write sequen-

label cntrl SRC1 SRC2 control Memory control cing

Fetch Add PC 4 read PC ALU seq

Add PC Extshft read dispatch1

Mem1 Add A Extend dispatch2

LW2 read ALU seq

write MDR to Rt fetch

SW2 write ALU fetch

R-Type1 func A B seq

write ALU to Rd fetch

BEQ1 Sub A B ALU-zero fetch

JUMP1 jumpaddr fetch

(Summe 20 Punkte)

Page 6: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 6

Losungen zurKlausur2.Termin

Computer-Architektur 28.9.2015

1. Bezugnehmend auf den c’t-Artikel von Christof Windeck: Benchmarks zur ProtokollKW 12&2717.3.&30.6.

Einschatzung der Prozessor-Performance nehmen Sie konkret Stellung zu• Bedingungen fur faire Ausfuhrung eines benchmarks •Was mißt Octane?• je mehr Kerne je mehr Leistung? • Was ist und welche Bedeutung hatLinpack •Was ist und welche Bedeutung hat AVX fur benchmarks? •Wasist OpenCL? • IGPs und benchmarks? • Charakteristika von SYSmark?

(je 0,25 Pkt)

+0,25 Bedingungen fur faire Ausfuhrung eines benchmarks bestehen dar-in, storende Einflusse auszuschalten: parallel laufende Software wieViren-Skanner, Updates; aber auch Große des RAM, Art des HDDoder Leistungsfahigkeit des Kuhlsystems spielen eine Rolle.

+0,25 Was mißt Octane? Octane 2.0 is a modern benchmark that measu-res a JavaScript engines performance by running a suite of tests repre-sentative of todays complex and demanding web applications. Octanesgoal is to measure the performance of JavaScript code found in large,real-world web applications, running on modern mobile and desktopbrowsers. s.a. https://developers.google.com/octane/

+0,25 je mehr Kerne je mehr Leistung? Die Gesamtleistung eines Mehr-Kern-Prozessors ist i.a.R. kleiner als die Summe der Rechen-Leistungder einzelnen Rechenwerke: hardware-maßig bedeutsam ist Konkur-renz um gemeinsame Resourcen sowie Zugriff auf den Speicher, Energiebzw. Kuhlung. software-maßig ist bedeutsam, inwiefern die (eine) Soft-ware mehrere Kerne uberhaupt und wenn ja wie effizient nutzen kann(Parallelisierung, multi-thread-Fahigkeit des Codes). Hyperthreading?

+0,25 Was ist und welche Bedeutung hat Linpack Linpack ist ein HPCbenchmark bestehend aus Algorithmen der linearen Algebra wie demLosen linearer Gleichungssysteme. ’Das Verhaltnis des Linpack-Ergeb-nisses zur theoretischen DP-Gleitkomma-performance zeigt, wie guthoch optimierter Code (Wahl des Compilers und dessen Optimierun-gen) die Rechenwerke ausreizen kann.’

+0,25 Was ist und welche Bedeutung hat AVX fur benchmarks? AVX isteine Erweiterung der x86-ISA um Vektor-Instruktionen, SIMD. DieseInstruktionen beschleunigen insbesondere den LINPACK benchmark.

+0,25 Was ist OpenCL? OpenCL, Open Computing Language, ist eineSchnittstelle fur uneinheitliche Parallelrechner, die z.B. mit Haupt-,Grafik- oder digitalen Signalprozessoren ausgestattet sind. Z.B. derbenchmark LuxMark ’erlaubt einen Vergleich der (OpenCL-) Rechen-leistung der CPU- und GPU-Teile eines solchen Kombinationsprozes-sors! Das C-Derivat OpenCL C ist die zugehorige Programmierspra-che.

Page 7: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 7

+0,25 IGPs und benchmarks? IGPs sind Integrated Graphicxs Processors,also GPU-Kerne, fur allgemeine Rechen-intensive Anwendungen (etwaper OpenCL programmierbar) oder fur 3D-Bechleunigung in Brow-sern oder eben fur gaming. Einschlagige benchmarks sind Luxmark,3DMark oder die fps-Werte von Spielen.

+0,25 Charakteristika von SYSmark? Benchmarks wie SYSmark von BAP-Co messen die ’Office Productivity’, indem Sie Software wie AdobeAcrobat XI, Excel und Word 2013, Premiere oder Photoshop Stan-dardaufgaben erledigen lassen.

2. in klausur.pdf s. WS04, Nr.1 ProtokollKW 1614.4.2015

Die DLX-Instruktion bgez Rs, label; if (Rs>=0) goto label ist einesogenannte Pseudo-Instruktion, d.h. eine Instruktion, die nicht im Befehls-satz vorkommt und die der Assembler durch eine oder mehrere geeigneteInstruktionen des Befehlssatzes ersetzt.Welchen Sinn haben Pseudo-Instruktionen? Pseudo-Instruktionen entlastenwelche Instanzen wovon und belasten welche Instanzen wodurch? Durchwelche Instruktion(en) wird bgez ersetzt (s. DLX/MIPS ISA)? SchlagenSie wesentlich andere, sinnvolle Pseudo-Instruktionen zusammen mit ihrenDLX/MIPS-Implementierungen vor (s. DLX/MIPS ISA). (je 0,5 Pkt)

+0,5 fur Pseudo-Instruktionen erleichtern die Assembler-Proigrammierungund machen den Assembler-Code lesbarer.

+0,5 fur Pseudo-Instruktionen entlasten damit den Assembler-Program-mierer, sie belasten denjenigen, der den Assembler selbst program-miert (z.B. wird die Sprungzielberechnung wesentlich aufwendiger,weil Pseudo-Instruktionen jeweils unterschiedlich vielen Assembler-Instruktionen entsprechen)

+0,5 Pseudo-Instruktionen stellen so etwas wie eine einfache ’Befehlssat-zerweiterung’ dar, ohne OP-Codes zu verschwenden.

+0,5 bgez Rs, label; if (Rs>=0) goto label wird ersetzt durch

slt Rtmp, Rs, R0; // Rtmp = (Rs < 0)

beqz Rtmp,label; // if (Rtmp==0) goto label, i.e.

// if (Rs >= 0) goto label

+0,5 Pseudo-Instruktion move Rd,Rs wird ersetzt durch addi Rd,Rs,#0.Die Pseudo-Instruktion swap Rd,Rs zum Vertauschen der Register-Inhalte von Rs und Rt wird ersetzt durch die drei folgenden Instruk-tionen

add Rtmp,Rs,R0; // save Rs to Rtmp

add Rs,Rt,R0; // overwrite Rs by Rt

add Rt,Rtmp,R0; // overwrite Rt by Rs

Die Pseudo-Instruktion abs Rd,Rs mit Rd = |Rs| wird ersetzt durch

slt Rtmp,Rs,R0; // Rtmp = (Rs<0)

Page 8: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 8

beqz Rtmp,pos; // if (Rtmp==0) then Rs is positive

sub Rd, R0, Rd; // Rd = -Rs

j cont

pos: add Rd,Rs,R0

cont:

3. in klausur.pdf s. SS07, Nr.3 ProtokollKW 195.5.2015

Erweitern Sie die multi cycle-Implementation des MIPS R2000/R3000 umden jump and link register Befehl jalr Rs,Rd, der PC+4 in Rd rettet unddann nach Rs springt; jalr ist im Format 0 Rs 0 Rd 0 9 kodiert.(Um welches Format handelt es sich?) Skizzieren Sie dazu im Arbeitsblatt(Fig. 5.33) die notwendigen Anderungen oder Erganzungen im Daten-Pfadund in der Steuerung. Wie sind die Signale zu setzen? Erzeugen Sie dieSignale durch Erweiterung des Mikro-Programms in Fig. 5.46. (8 Pkt)

+1 fur R-Type+1 fur Datenpfad von A nach zu erweiterndem MUX PCsource,+1 fur Datenpfad von PC nach zu erweiterndem MUX MemToReg,+1 fur WB1 schreibe PC in Rd,+1 fur WB2 schreibe A in PC,+3 fur Steuerung: erganze erste dispatch-Tabelle dispatch1 um die Zeile

if((opcode==0)&&(Func==9)) goto JALR1

sowie das µ-Programm um zwei µ-Instruktionen,(early write late read)modifiziere goto R-type1.

ALU Register PC write sequen-

label cntrl SRC1 SRC2 control Memory control cing

Fetch Add PC 4 read PC ALU seq

Add PC Extshft read dispatch1

Mem1 Add A Extend dispatch2

LW2 read ALU seq

write MDR to Rt fetch

SW2 write ALU fetch

R-Type1 func A B seq

write ALU to Rd fetch

BEQ1 Sub A B ALU-zero fetch

JUMP1 jumpaddr fetch

JALR1 write PC to Rd seq

A fetch

Diese Losung ist einfach aber unschon, weil die main-control auch aufdas Funktion-Feld zugreifen muß, was diese aufwandiger macht. Alterna-tiv konnte die ALU-control steuern, daß in EX das Register Rd mit deminzwischen inkrementierten PC und in WB der PC mit Rs uberschriebenwird. Die ALU-control erzeugt dafur in EX ein Signal jalr, das genau dassteuert: in EX Schreiben von PC in Rd und in WB Schreiben von Rs inPC.

4. in klausur.pdf s. WS95, Nr.6 ProtokollKW 232.6.2015

Page 9: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 9

Was spricht – wenn uberhaupt – fur getrennte Befehls- und Daten-caches,was – wenn uberhaupt – dagegen? (je 0.5 Pkt)

+0,5 Geschwindigkeitsvorteil, da cache Verwaltung besser anpaßbar fallsunterschiedliche Zugriffsmuster auf Instruktionen bzw. auf Daten, d.h.etwa unterschiedlicher Assoziativitatsgrad

+0,5 geringerer HW-Aufwand, da i.d.R. in instruction caches nicht ge-schrieben wird: also kein write back oder write through, fetch on writemiss oder write around

+0,5 kein bus snooping, kein MESI o.a. fur den instruction cache notig+0,5 ein gemeinsamer cache ist in Situationen vorteilhaft, wo auf wenige

verschiedene Instruktionen (kleine Schleifen) und viele Daten oder ofviele Instruktionen und wenige Daten zugegriffen wird, so daß kein’Verschnitt’ entsteht und der gemeinsame cache (mit Kapazitat =Summe der Kapazitaten der getrennten caches) die Ausfuhrung desProgrammes optimal beschleunigt.

5. in klausur.pdf s. WS06, Nr.6 ProtokollKW 249.6.2015

Beschreiben Sie worst case und best case beim lesenden bzw. schreibendenSpeicher-Zugriff eines Prozessors mit cache, TLB und paged segments. Dercache sei virtuell indiziert. (4 Pkt)

1 fur best case (data sind im virtual indexed cache vorhanden, auf die pervirtueller Adresse lesend zugegriffen wird; etwa bei copy back und write hitkann direkt in den cache geschrieben werden; in beiden Fallen ist kein TLB-und kein Speicher-Zugriff notig), 3 fur worst case (data nicht im virtualindexed cache: cache miss; address translation: TLB miss, segment tablemiss + page table fault; data access: segment miss + page fault – lesendund schreibend etwa bei write back mit fetch on write und ohne write buffero.a.)

6. in klausur.pdf s. WS04, Nr.7 ProtokollKW 2623.6.2015

Gauß-Elimination uberfuhrt die Koeffizienten-Matrix A eines Systems li-nearer Gleichungen Ax = b in eine obere Dreiecksmatrix, das Gauß-Jordan-Verfahren in eine Diagonalmatrix. Beschreiben Sie eine parallele Version desGauß-Jordan-Verfahrens und seine Vorteile gegenuber dem parallelen klas-sischen das Gauß-Verfahren der Vorlesung. (2 Pkt)

1 fur: Erhohung der Auslastung: in jedem Eliminationsschritt modifiziertjedes PE ’sein’ Koeffizienten-Matrix-Element bzw. das Element des Vektorsder rechten Seite,1 fur: Uberfuhrung in Diagonal-Matrix Dx = diag(d1, . . . , dn)x = b er-leichtert den Auflosungsschritt ganz wesentlich (Reduktion von O(n2) aufO(n)) und das ohne Datenabhangigkeiten, d.h. bestens parallelisierbar:PEi rechnet xi = (b)i/di fur i = 1, 2, . . . , n.

(Summe 20 Punkte)

Page 10: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 10

2 CompArch-Klausur SS15

Klausur, 1.Termin Computer-Architektur 17.7.2015

Name, Vorname Matrikel

Hilfsmittel sind nicht zugelassen! und aus gegebenem Anlaß:weniger ist mehr! – statt weitschweifiger, wolkiger Poesie

klare, knappe Aussagen mit stimmigen, Stichwort-artigen Begrundungen!Es wird nicht erwartet, daß alle Aufgaben bearbeitet werden!

Pkt 10 11 12 13 14 15 16 17 18 19Note 4,0 3,7 3,3 3,0 2,7 2,3 2,0 1,7 1,3 1,0

1. Bezugnehmend auf den c’t-Artikel von Christof Windeck: Benchmarks zur ProtokollKW 12,2717.3./30.6.

Einschatzung der Prozessor-Performance nehmen Sie konkret Stellung zu• alte benchmarks auf neuen Prozessoren • single thread vs multi thread •Beispiele fur benchmarks, die nur spezielle Arten von Rechenleistung mes-sen • Beispiele fur benchmarks, die uber unterschiedliche Anwendungenmitteln • Berucksichtigung von Befehlssatz-Erweiterungen (je 0,25 Pkt)

2. Der besseren Lesbarkeit halber gibt es sogenannte Pseudo-Instruktionen, ProtokollKW 1614.4.2015

die der Compiler in im Befehlssatz vorhandene Instruktionen ubersetzt.Beispielsweise die sechs set-Instruktionen vergleichen Integer-Register:s__ Rd,Rs,Rt; // Rd=Rs __ Rt, wo __ fur eines der sechs Doppelzeichenlt (<), le (≤), eq (=), ne ( 6=), ge (≥), gt (>) steht. Auf diese set-Instruktionen folgt meist eine Verzweigungsinstruktion wie beq(z) oderbne(z). In der MIPS-ISA ist aber einzig slt implementiert.Zeigen Sie, durch welche Instruktionen der Compiler jede der funf Pseudo-Instruktionen ersetzt. (je 0,4 Pkt)

3. Die Instruktion QuoRem Rd,Rr,Rs,Rt;// Rs = Rd*Rt+Rr im modifizierten ProtokollKW 195.5.2015

R-Format 0 Rs Rt Rd Rr func (mit func=QuoRem) soll zugleichden ganzzahligen Quotienten Rd = Rs/Rt und den Divisionsrest (Remain-der) Rr = mod(Rs,Rt) berechnen. Wie nutzlich ist QuoRem ? (1 Pkt)

Erweitern Sie die multicycle-Implementierung des MIPS R2000 um die In-struktion QuoRem im angegebenen Befehlsformat. Was unterscheidet QuoRemvon allen bislang behandelten arithmetisch-logischen Instruktionen?Spezifizieren Sie in einer Tabelle, was in jedem cycle passieren soll. Unter-stellen Sie, daß die ALU in einem cycle Quotient und Rest berechnen kann.Nehmen Sie in Fig. 5.33 aus COD2e die ggfls. erforderlichen Modifikationendes Daten-Pfades und der Steuerung vor. Spezifizieren Sie in einer Tabellealle Signale fur jeden cycle der Befehlsabarbeitung. (8 Pkt)

Page 11: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 11

4. Gegeben ein direct mapped cache fester Netto-Kapazitat. Quantifizieren ProtokollKW 232.6.2015

Sie, wie der cache overhead (= Brutto-Kapazitat – Netto-Kapazitat) mit zu-nehmender Blockgroße abnimmt. Warum wahlt man nicht moglichst großeBlocke? (2,5+0,5 Pkt)

Gegeben ein direct mapped cache fester Netto-Kapazitat. QuantifizierenSie, wie der cache overhead (= Brutto-Kapazitat – Netto-Kapazitat) mitzunehmendem Assoziativitatsgrad wachst. Warum wahlt man nicht not-wendig den kleinsten Assoziativitatsgrad? (2,5+0,5 Pkt)

5. A computer has 16 pages of virtual address space but only 4 physical pages, ProtokollKW 249.6.2015

i.e. frames. Initially the memory is empty. A program references the virtualpages in the order: 0 2 4 5 2 4 3 11 2 10.(a) Which references cause a page fault with the LRU page replacementpolicy? (Wie werden die frames jeweils vergeben?) (2 Pkt)(b) Which references cause a page fault with the FIFO page replacementpolicy? (Wie werden die frames jeweils vergeben?) (2 Pkt)

6. Auf der superskalaren Version des MIPS-Prozessors sollen die Binomial- ProtokollKW 2226.5.2015

Koeffizienten berechnet werden. Das array binomial enthalte die Binomial-Koeffizienten, d.h. binomial[n][k]=

(nk

), auch wenn so etwa die Halfte des

Speicherplatzes ungenutzt bleibt. Es seien(nk

)fur 0 ≤ k ≤ n ≤ nmax = 2m

zu berechnen. Wegen(nk

)=(n−1k−1

)+(n−1k

)erledigt dies

for(n=0;n<nmax;n++) for(k=0;k<nmax;k++) binomial[n][k] = 0;

for(n=0;n<nmax;n++) binomial[n][0] = 1; binomial[n][n] = 1;

for(n=2;n<nmax;n++) for(k=1;k<n;k++)

binomial[n][k] = binomial[n-1][k-1]+binomial[n-1][k];

Entwerfen Sie ein MIPS-Assembler-Programm fur die letzte (interessan-te) doppelte Schleife. Die Adress-Rechnung oder pointer arithmetic von C,C++, JAVA u.a. liefert binomial[n][k] = binomial[n*2^m+k]. Die noti-ge Multiplikation erledigt der Compiler/erledigen Sie mit shifts. Starten Siemit dem Schleifen-Rumpf. (3 Pkt)Optimieren Sie Ihr Programm fur die superskalare Version des MIPS-Pro-zessors. Kommentieren Sie Ihre Annahmen zum forwarding! (3 Pkt)

Erganzen Sie Ihr MIPS-Assembler-Programm des Schleifen-Rumpfes umdie beiden (geschachtelten) Schleifen. (3 Pkt)Optimieren Sie Ihr Programm fur die superskalare Version des MIPS-Pro-zessors. Kommentieren Sie Ihre Annahmen zu load und branch delay slots!

(3 Pkt)

(Summe 35 Punkte)

Page 12: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 12

Losungen zurKlausur1.Termin

Computer-Architektur 17.7.2015

1. Bezugnehmend auf den c’t-Artikel von Christof Windeck: Benchmarks zur ProtokollKW 12,2717.3./30.6.

Einschatzung der Prozessor-Performance nehmen Sie konkret Stellung zu• alte benchmarks auf neuen Prozessoren • single thread vs multi thread •Beispiele fur benchmarks, die nur spezielle Arten von Rechenleistung mes-sen • Beispiele fur benchmarks, die uber unterschiedliche Anwendungenmitteln • Berucksichtigung von Befehlssatz-Erweiterungen (je 0,25 Pkt)

+0,25 alte benchmarks konnen Leistung-steigernde features neuer Prozes-soren wie SSE, AVX, OpenCL- oder DirectX-Unterstutzung, nicht nut-zen und unterschatzen so die Leistungsfahigkeit neuer Prozessoren.(S.113 linke Spalte)

+0,25 je mehr Kerne umso hoher die multi thread performance, die al-lerdings nur multi thread fahiger software zu Gute kommt. Ansonstenzahlt eben mehr oder weniger nur die single thread performance. (S.113linke/mittlere Spalte)

+0,25 etwa der Klassiker linpack mißt vornehmlich SP- und DP-Gleitpunkt-Arithmetik-Leistung. (S.113 linke Spalte, S.114 mittlere Spalte)

+0,25 etwa TrueCrypt 7.1a als AES-benchmark mißt vornehmlich Leis-tung der Bit-Operationen und die Geschwindigkeit, mit der LUTs aus-gelesen werden. (S.113 linke Spalte, S.115 linke Spalte)

+0,25 etwa der BABCo SYSmark mittelt uber die performance von office-Anwendungen. (S.113 linke Spalte)

+0,25 Leistungszuwachs etwa durch SIMD-Erweiterungen SSE und AVX(S.114, mittlere Spalte) oder durch spezielle Instruktionen, die AESund damit Truecrypt beschleunigen. (S.115, linke Spalte)

2. Der besseren Lesbarkeit halber gibt es sogenannte Pseudo-Instruktionen, ProtokollKW 1614.4.2015

die der Compiler in im Befehlssatz vorhandene Instruktionen ubersetzt.Beispielsweise die sechs set-Instruktionen vergleichen Integer-Register:s__ Rd,Rs,Rt; // Rd=Rs __ Rt, wo __ fur eines der sechs Doppelzeichenlt (<), le (≤), eq (=), ne ( 6=), ge (≥), gt (>) steht. Auf diese set-Instruktionen folgt meist eine Verzweigungsinstruktion wie beq(z) oderbne(z). In der MIPS-ISA ist aber einzig slt implementiert.Zeigen Sie, durch welche Instruktionen der Compiler jede der funf Pseudo-Instruktionen ersetzt. (je 0,4 Pkt)

Implementiert ist nur slt Rd, Rs, Rt; // Rd = Rs<Rt. Dann sind gleich-wertig

Page 13: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 13

Pseudo-Instruktion Compiler-generiertes Aquivalentsle Rd,Rs,Rt addi Rtmp,Rt,#1; slt Rd,Rs,Rtmp

seq Rd,Rs,Rt; bnez Rd,label beq Rs,Rt,label

sne Rd,Rs,Rt; bnez Rd,label bne Rs,Rt,label

sge Rd,Rs,Rt addi Rtmp,Rs,#1; slt Rd,Rt,Rtmp

sgt Rd,Rs,Rt slt Rd,Rt,Rs

und ohne Bezugnahme auf eine folgende Verzweigung

Pseudo-Instruktion Compiler-generiertes Aquivalentseq Rd,Rs,Rt add Rd,R0,R0

bne Rs,Rt,seq_end

addi Rd,R0,#1

seq_end:

sne Rd,Rs,Rt sub Rd, Rs, Rt

beq Rd,R0,sne_end

addi Rd, R0,#1

sne_end:

3. Die Instruktion QuoRem Rd,Rr,Rs,Rt;// Rs = Rd*Rt+Rr im modifizierten ProtokollKW 195.5.2015

R-Format 0 Rs Rt Rd Rr func (mit func=QuoRem) soll zugleichden ganzzahligen Quotienten Rd = Rs/Rt und den Divisionsrest (Remain-der) Rr = mod(Rs,Rt) berechnen. Wie nutzlich ist QuoRem ? (1 Pkt)

Die Instruktion QuoRem ist außerst nutzlich etwa bei der Implementierungdes (erweiterten) Euklid1schen Algorithmus’, vgl. https://de.wikibooks.org/wiki/Algorithmensammlung:_Zahlentheorie:_Euklidischer_Algorithmus beispiels-weise zur Bestimmung des ggT gcd(a, b) von a, b ∈ N, zur Berechnung desmodulo ϕ(n) Inversen etwa in RSA usw.2 In Python nimmt der Algorithmusgcd und seine Erweiterung xgcd eine besonders einfache Form an:

def euklid(a, b):

while b != 0:

a, b = b, a % b

return a

def xgcd(a,b):

prevx, x = 1, 0; prevy, y = 0, 1

while b:

q = a/b

x, prevx = prevx - q*x, x

y, prevy = prevy - q*y, y

a, b = b, a % b

return a, prevx, prevy

Weniger imposant ist die Verwendung von QuoRem, um die Ziffern der Dar-stellung einer naturlichen Zahl n (in Rn) im Stellenwertsystem zur Basis b(in Rb) beginnend mit der niederwertigsten Ziffer (in Rr) zu berechnen:repeat

QuoRem Rn,Rr,Rn,Rb

// output Rr

until Rn == 0

loop: QuoRem Rn,Rr,Rn,Rb

// output Rr

bne Rn,R0,loop

1 Euclid of Alexandria (ca 325-ca 265) www-history.mcs.st-andrews.ac.uk/Biographies/Euclid.html

2 Der Algorithmus laßt sich fur Polynome uber endlichen Korpern verallgemeinern und spieltdann eine wesentliche Rolle etwa bei der Dekodierung von Reed-Solomon-Codes.

Page 14: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 14

Erweitern Sie die multicycle-Implementierung des MIPS R2000 um die In-struktion QuoRem im angegebenen Befehlsformat. Was unterscheidet QuoRemvon allen bislang behandelten arithmetisch-logischen Instruktionen?Spezifizieren Sie in einer Tabelle, was in jedem cycle passieren soll. Unter-stellen Sie, daß die ALU in einem cycle Quotient und Rest berechnen kann.Nehmen Sie in Fig. 5.33 aus COD2e die ggfls. erforderlichen Modifikationendes Daten-Pfades und der Steuerung vor. Spezifizieren Sie in einer Tabellealle Signale fur jeden cycle der Befehlsabarbeitung. (8 Pkt)

1 fur zwei Zielregister, 2 fur Tabelle (je 0,5 pro cycle), 2 fur Steuerung perALUcontrol, 2 fur Datenpfad, 2 fur Signale

QuoRem unterscheidet sich von allen bislang behandelten arithmetisch-lo-gischen Instruktionen insofern, als die Instruktion wie ubrigens etwa auchmul zwei (!) Zielregister hat.

cycle Aktionen

IF Instruction fetch und PC+=4ID Register Read und prophylaktische Berechnung des VerzweigungszielesEX Berechnung von Rs/Rt sowie von mod(Rs,Rt)

WB Rd := ALUout und Rr := ALUout2

Dieser Plan unterstellt, daß die ALU erstens in einem cycle Quotient undRest berechnet und den Quotienten in ALUout sowie den Divisionsrest imneuen Ergebnis-Register ALUout2 speichert. Zweitens ist unterstellt, daß ineinem cycle zweimal Werte in Register der Register-Datei geschrieben wer-den: Dafur sind zwei weitere Eingange WriteRegister2 fur das Zielregisterund WriteData2 fur die zu schreibenden Daten notig. Die ALU-Controlerzeugt ein weiteres 1-bit Register/weiteres Signal RegWrite2, das kontrol-liert, ob die an WriteData2 anliegenden Daten tatsachlich in WriteRegister2

geschrieben werden. Dabei gilt RegWrite2==1 ⇐⇒ opCode=0 (was ALU-control an ALUop erkennen kann) && func==’QuoRem’

Im Datenpfad ist das zweite Ergebnis-Register ALUout2, verbunden mitWriteData2 zu erganzen. Das Feld IR[10-6] ist mit WriteRegister2 zuverbinden. Das neue, von ALUcontrol in RegWrite2 erzeugte Signal liegtsozusagen ’parallel’ zu RegWrite an der Register-Datei an.

cycle Signale fur opCode=0 und func=’QuoRem’IF instruction fetch & PC+=4: IorD=0,MemRead,IRwrite

ALUsrcA=0,ALUsrcB=1,ALUop=’+’,PSsource=0,PCwrite=1ID Register Read & ALUsrcA=0, ALUsrcB=3,ALUop=’+’EX Berechnung Rs/Rt sowie Rs mod Rt:

ALUSrcA=1,ALUsrcB=0,ALUop=’func’ ⇒ RegWrite2=1

WB Rd = ALUout & Rr = ALUout2:RegDst=1,MemToReg=0,RegWrite=1

Alternativen wie die, die ALU in je einem cycle den Quotienten und denDivisionsrest zu berechnen oder das write back in zwei cycles abzuwickeln,ggfls. uberlappend mit der Berechnung des Divisionsrestes, funktionieren

Page 15: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 15

nicht, solange die main control nur den OpCode 0 sieht: dann wird dieInstruktion wie jede andere arithmetisch-logische Instruktion mit (mindes-tens) drei Argumenten in Registern in den vier cycles IF, ID, EX und WBabgearbeitet.Kommen also – aus welchen Grunden auch immer – weitere ports an derRegister-Datei nicht in Frage, muß die main control auch das function-Feldberucksichtigen, was man bislang ja gerade hatte vermeiden konnen (vgl.eine große LUT vs zwei kleine LUTs).

4. Gegeben ein direct mapped cache fester Netto-Kapazitat. Quantifizieren ProtokollKW 232.6.2015

Sie, wie der cache overhead (= Brutto-Kapazitat – Netto-Kapazitat) mit zu-nehmender Blockgroße abnimmt. Warum wahlt man nicht moglichst großeBlocke? (2,5+0,5 Pkt)

Gegeben (MIPS)-byte-Adressen tag index bl by . Die Feld-Namen ste-hen jeweils zugleich fur die Anzahl der bits des zugehorigen Feldes. Also gilt32 = tag + index + blockoffset + byteoffset, wenn man beispielsweise 32bitAdressen unterstellt. Index indiziert den cache aufgefaßt als LUT.Jede der 2index cache lines hat einen Verwaltungsanteil (overhead) beste-hend aus valid- und dirty bit und tag. Der overhead beansprucht somit2index(2+tag) bits. Die Blockgroße zu verdoppeln, heißt, den blockoffset umein bit zu erweitern. Zugleich halbiert sich – bei konstanter Netto-Kapazitat– die Anzahl der cache lines, d.h. das Feld index verliert ein bit. Da dasFeld tag unverandert bleibt, halbiert sich also der overhead, wenn man dieBlockgroße verdoppelt.Je großer die Blocke umso besser kann der cache raumliche Lokalitat nutz-ten – allerdings zu Lasten der zeitlichen Lokalitat, des Verschnittes undder Zeit fur Laden und Verdrangen. ’Moglichst große Blocke’ bedeutet, daßder cache aus nur einem Block besteht. Dieser kann im strengen Sinn nurraumliche Lokalitat aber keine zeitliche Lokalitat nutzen.

Gegeben ein direct mapped cache fester Netto-Kapazitat. QuantifizierenSie, wie der cache overhead (= Brutto-Kapazitat – Netto-Kapazitat) mitzunehmendem Assoziativitatsgrad wachst. Warum wahlt man nicht not-wendig den kleinsten Assoziativitatsgrad? (2,5+0,5 Pkt)

Der Assoziativitatsgrad a ist typischerweise eine Zweier-Potenz a = 2m. Erbesagt, wieviele Blocke ein set enthalt. Auf sets wird per ’direct mapped’zugegriffen, auf die Blocke innerhalb eines sets voll-assoziativ.Ein direct mapped cache ist 1-assoziativ, a = 2o. Sein overhead betragt2index(tag + 2). Ubergang zu einem 2-assoziativen cache (a = 21) bedeu-tet, daß sich die Anzahl der sets halbiert: index ’verliert’ ein Bit, tag’gewinnt’ ein Bit. Der overhead eines 2-assoziativen caches mit derselbenNetto-Kapazitat betragt also 2index−1(2(tag + 1 + 2)) = 2index(tag + 3)und allgemein dasjenige eines a = 2m-assoziativen caches mit derselbenNetto-Kapazitat eben 2index−m(2m(tag+m+2)) = 2index(tag+m+2). Deroverhead wachst mit wachsendem Assoziativitatsgrad.

Page 16: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 16

Mit wachsendem Assoziativitatsgrad steigt die hit rate, was gegen denkleinsten Assoziativitatsgrad 1 (= direct mapped) spricht. Zugleich wachstmit steigendem Assoziativitatsgrad aber auch der hardware-Aufwand (com-parators, MUX).

5. A computer has 16 pages of virtual address space but only 4 physical pages, ProtokollKW 249.6.2015

i.e. frames. Initially the memory is empty. A program references the virtualpages in the order: 0 2 4 5 2 4 3 11 2 10.(a) Which references cause a page fault with the LRU page replacementpolicy? (Wie werden die frames jeweils vergeben?) (2 Pkt)

Mit LRU ergibt sich folgende Belegung des physikalischen Speichers:

0 2 4 5 2 4 3 11 2 10frame0 0 3frame1 2 2 2frame2 4 4 10frame3 5 11†3 m m m m t t r r t r

Die einzigen Referenzen, die keinen page fault auslosen, sind diejenigen, diemit ’t’ markiert sind.

∑= 7 page faults

(b) Which references cause a page fault with the FIFO page replacementpolicy? (Wie werden die frames jeweils vergeben?) (2 Pkt)

Mit FIFO ergibt sich folgende Belegung des physikalischen Speichers:

0 2 4 5 2 4 3 11 2 10frame0 0 3frame1 2 2 11frame2 4 4 2frame3 5 10†4 m m m m t t r r r r

Die einzigen Referenzen, die keinen page fault auslosen, sind diejenigen, diemit ’t’ markiert sind.

∑= 8 page faults

6. Auf der superskalaren Version des MIPS-Prozessors sollen die Binomial- ProtokollKW 2226.5.2015

Koeffizienten berechnet werden. Das array binomial enthalte die Binomial-Koeffizienten, d.h. binomial[n][k]=

(nk

), auch wenn so etwa die Halfte des

Speicherplatzes ungenutzt bleibt. Es seien(nk

)fur 0 ≤ k ≤ n ≤ nmax = 2m

zu berechnen. Wegen(nk

)=(n−1k−1

)+(n−1k

)erledigt dies

for(n=0;n<nmax;n++) for(k=0;k<nmax;k++) binomial[n][k] = 0;

for(n=0;n<nmax;n++) binomial[n][0] = 1; binomial[n][n] = 1;

for(n=2;n<nmax;n++) for(k=1;k<n;k++)

binomial[n][k] = binomial[n-1][k-1]+binomial[n-1][k];

3 m=miss, t=hit due to temporal locality, r=replacement due to LRU4 m=miss, t=hit due to temporal locality, r=replacement due to FIFO

Page 17: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 17

Entwerfen Sie ein MIPS-Assembler-Programm fur die letzte (interessan-te) doppelte Schleife. Die Adress-Rechnung oder pointer arithmetic von C,C++, JAVA u.a. liefert binomial[n][k] = binomial[n*2^m+k]. Die noti-ge Multiplikation erledigt der Compiler/erledigen Sie mit shifts. Starten Siemit dem Schleifen-Rumpf. (3 Pkt)

Das array binomial ist Zeilen-weise im Speicher abgelegt. Angenommen,die Variablen n bzw. k seien an die Register Rn bzw. Rk gebunden. Das Re-gister Rb enhalte den base pointer auf binomial[0][0] und Rnmax den Wert2m. Dann ist Rb+4(n 2m + k) = Rb +(n << m+ k) << 2 die byte-Adressedes Elementes binomial[n][k]. Es wird im Folgenden angenommen, daßdie Register Rp (pointer), Rv (value) und Rw (value) im Schleifen-Rumpf freiverfugbar sind. (Es gibt – selbstverstandlich – bessere code-Varianten!)

subi Rp,Rn,#1; // Rp = n-1

sll Rp,Rp,#m; // Rp = (n-1)*2^m

add Rp,Rp,Rk; // Rp = (n-1)*2^m+k

sll Rp,Rp,#2; // Rp = 4((n-1)*2^m+k)

add Rp,Rp,Rb; // Rp = Rb+4((n-1)*2^m+k)

lw Rv,-4(Rp); // Rv = Mem[Rb+4((n-1)*2^m+k-1)] = binomial[n-1][k-1]

lw Rw,0(Rp); // Rw = Mem[Rb+4((n-1)*2^m+k)] = binomial[n-1][k]

add Rw,Rv,Rw; // Rw = binomial[n-1][k-1]+binomial[n-1][k]

sll Rv,Rnmax,#2;// Rv = 4*2^m

add Rp,Rp,Rv; // Rp = Rb+4(n*2^m+k)

sw 0(Rp),Rw; // Mem[Rb+4(n*2^m+k)]=binomial[n-1][k-1]+binomial[n-1][k]

Im Vorgriff auf den Einbau des Schleifen-Rumpfes in die geschachtelte Sclei-fe sind hier eigentlich die Schleifen-Variablen n durch 4n 2m und k durch4 k zu ersetzen!

Optimieren Sie Ihr Programm fur die superskalare Version des MIPS-Pro-zessors. Kommentieren Sie Ihre Annahmen zum forwarding! (3 Pkt)

Um den Grad an Parallelitat zu erhohen, wird ein weiteres im Schleifen-Rumpf freies Register Rtmp unterstellt. Unterstellt sei ein load delay slot.

arithmetisch/logisch load/store Bemerkungensubi Rp,Rn,#1

sll Rp,Rp,#m forwarding in der a-pipelineadd Rp,Rp,Rk forwarding in der a-pipelinesll Rp,Rp,#2 forwarding in der a-pipelineadd Rp,Rp,Rb lw Rw,0(Rp) forwarding in der a- und zur m-pipelinesll Rtmp,Rnmax,#2 lw Rv,-4(Rp) forwarding von der a- zur m-pipelineadd Rp,Rp,Rtmp forwarding in a-pipeline, vermeide load stalladd Rw,Rv,Rw sw 0(Rp),Rw 2 x forwarding von der a- zur m-pipeline

Erganzen Sie Ihr MIPS-Assembler-Programm des Schleifen-Rumpfes umdie beiden (geschachtelten) Schleifen. (3 Pkt)

Der MIPS/DLX-compiler speichert die Ergebnisse Boole’scher Operatio-nen, hier die Ergebnisse von set-Instruktionen ublicherweise in R1.

Page 18: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 18

addi Rn,R0,#2; // Rn = 2

loopn: slt R1,Rn,Rnmax; // R1 = (Rn<Rnmax)

beq R1,R0,exitn; // exit loop in n

addi Rk,R0,#1; // Rk = 1

loopk: slt R1,Rk,Rn; // R1 = (Rk<Rn)

beq R1,R0,exitk; // exit loop in k

... // body(n,k)

addi Rk,Rk,#1; // Rk += 1

j loopk

exitk: addi Rn,Rn,#1; // Rn += 1

j loopn

exitn:

Optimieren Sie Ihr Programm fur die superskalare Version des MIPS-Pro-zessors. Kommentieren Sie Ihre Annahmen zu load und branch delay slots!

(3 Pkt)

Unterstellt sei ein branch delay slot.

arithmetisch/logisch load/store Bemerkungenaddi Rn,R0,#2 n initialisieren

loopn: slt R1,Rn,Rnmax n < nmax ?beq R1,R0,exitn if not goto exitnaddi Rk,R0,#1 im branch delay slot: k initialisieren

loopk: slt R1,Rk,Rn k < n ?beq R1,R0,exitk if not goto exitk

im branch delay slot: Anfang body (init Rp)

. . . . . . . . . . . . . .body(n,k) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

j loopk continue loop in kaddi Rk,Rk,#1 im ’jump’ delay slot: k += 1

exitk: j loopn continue loop in naddi Rn,Rn,#1 im ’jump’ delay slot: n += 1

exitn: Rk ist initialisiert

Modifiziere den code etwa fur den Fall, daß keine Register fur n und k zurVerfugung stehen.

(Summe 35 Punkte)

Page 19: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 19

3 CompArch-Klausur SS14w

Klausur, 2.Termin Computer-Architektur 6.10.14

Name, Vorname Matrikel

Hilfsmittel sind nicht zugelassen! und aus gegebenem Anlaß:weniger ist mehr! – statt weitschweifiger, wolkiger Poesie

klare, knappe Aussagen mit stimmigen, Stichwort-artigen Begrundungen!Es wird nicht erwartet, daß alle Aufgaben bearbeitet werden!

Pkt 12 13 14 15 16 17 18 19 20 21Note 4,0 3,7 3,3 3,0 2,7 2,3 2,0 1,7 1,3 1,0

1. Anhand der Auszuge aus MicroChip’s PIC24FJ128GC010 Family pp418, Protokoll3./4.Woche24./31.3.14

419 nehmen Sie begrundet Stellung zu Register (Anzahl? Breite?), Akku-mulator- oder Register-Architektur? Speicher-Formen (file registers: An-zahl? Breite?), Adressierungsarten? branching? heterogen? Inwiefern ist derBefehlssatz ’highly orthogonal’? load store? Welche Rolle spielen wohl diefile registers? Instruktionsbreite? OpCode-Breite? Welche Aspekte sprecheneher fur RISC, welche eher fur CISC? (je 1/4 Pkt)

2. Bewerten und vergleichen Sie die Leistung eines 32bit-Prozessors und ei- Protokoll4.Woche31.3.14

nes 64bit Prozessors mit demselben Takt und ’demselben’ (?) Befehlssatz,die auf derselben Technologie basieren. Bewerten und vergleichen Sie dieLeistung der Rechner-Systeme mit diesen beiden Prozessoren. (je 1/4 Pkt)

3. Der MIPS Assembler unterstutzt die Pseudo-Instruktion abs Rdest,Rsrc Protokoll7.-9. Woche5.-19.5.14

mit Rdest = |Rsrc| (Betrag) fur die Integer-Register Rsrc und Rdest.(Konnte die ALU Betrage berechnen, gabe es eine echte Instruktion abs.)Durch welche (echten) Instruktionen (siehe DLX/MIPS-ISA) ersetzt derAssembler die Pseudo-Instruktion abs Rdest,Rsrc ? (1 Pkt)

Erweitern Sie die pipeline-Implementierung des MIPS R2000 um die absInstruktion abs Rdest, Rsrc; // Rdest = abs(RSrc).Spezifizieren Sie das Befehlsformat. Spezifizieren Sie in einer Tabelle, wasin jedem cycle passieren soll. Wenn notig, unterstellen Sie, daß die ALUneben zero eine weitere flag neg setzt: neg = 1 genau dann, wenn dasALU-Ergebnis negativ ist.Nehmen Sie in Fig. 6.30 aus COD2e die ggfls. erforderlichen Modifikationendes Daten-Pfades und der Steuerung vor. Spezifizieren Sie in einer Tabellealle Signale fur jeden cycle der Befehlsabarbeitung. (8 Pkt)

4. Ubersetzen Sie den Funktionsrumpf ’Berechnung der Fibonacci-Zahlen’ Protokoll10.Woche26.5.14

f[0]=1; f[1]=1; for(i=2; i<6; i++) f[i]=f[i-1]+f[i-2];

Page 20: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 20

in MIPS R2000 assembler (siehe DLX/MIPS-ISA). Unterstellen Sie dabei:der Compiler bindet den heap pointer an Register R14; die 4byte Schlei-fenvariable i liegt auf dem heap ab der Adresse R14+0x08; das Feld f von4byte integers beginnt auf dem heap an der Adresse R14+0x0C. R1, R2, R3,R4 und R5 stehen als einzige freie Allzweck-Register zur Verfugung. (3 Pkt)

Bestimmen Sie dann die cache Belegung eines initial leeren direct mappedcaches mit acht 1-Wort-Blocken Netto-Kapazitat mit copy back write Stra-tegie und zum einen der fetch on write, zum anderen der write around writeon miss Strategie. Unterstellen Sie, daß der heap pointer R14 durch 8 teilbarist. Vergleichen Sie Anzahl von hits, misses und von Wortern, die uber denBus mit dem Speicher ausgetauscht werden. (3 Pkt)

5. Ein Speicher werde mit paged segments verwaltet. Segment- und Seiten- Protokoll11. Woche,2.6.14

Anfange fallen zusammen. Virtuelle (Byte-) Adressen bestehen aus 2bit-SegmentNo: 3bit-pageNo und 3bit page-offest, die physikalischen (Byte-)Adressen aus 3bit-pageNo=frameNo und 3bit page-offest. Wie groß ist dervirtuelle Speicher? der physikalische Speicher? eine jede Seite? (1 Pkt)

Gegeben die Ausschnitte aus Segment (Descriptor) Table ST (mit Seg-mentlangen in Seiten) und Page Table PT mit

ST =

seg# base len

1 0x3 0x22 0x5 0x23 0x2 0x1

und PT =tag · · · 0x2 0x3 0x4 0x5 0x6 . . .

frame · · · hdd 0x2 0x5 0x1 0x0 · · ·

Was ist die zur virtuellen Adresse (0x1:0xF) gehorende physikalische Ad-dresse? Konstruieren Sie eine Adresse, die ein segmentation violation auslost.Konstruieren Sie eine Adresse, die ein page fault auslost. (1+1+1 Pkt)

6. Auf einem Mehrprozessor-System mit p PEs sei das Maximum eines nume- Protokoll13. Woche23.6.14

rischen Feldes a mit n Elementen zu bestimmen. Skizzieren Sie fur n = 8mogliche DAGs fur p = 8, p = 4 und p = 2. (3 Pkt)

Berechnen Sie unter genau zu spezifizierenden, vereinfachenden Annahmenin jedem der drei Falle Beschleunigungsfaktor βp und Effizienz Ep = βp

pfur

die Berechnung des Minimums von n = 8 Feld-Elementen. (1+je 1/3 Pkt)

Verallgemeinern Sie Ihre obigen Ergebnisse fur β und E fur n = 2m mitm ≥ 4 und p = 2, 4, 8 sowie fur n = 8 und beliebiges p. (3+1 Pkt)

(Summe 32 Punkte)

Page 21: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 21

Losungen zurKlausur2.Termin

Computer-Architektur 6.10.14

1. Anhand der Auszuge aus MicroChip’s PIC24FJ128GC010 Family pp418, Protokoll3./4.Woche24./31.3.14

419 nehmen Sie begrundet Stellung zu Register (Anzahl? Breite?), Akku-mulator- oder Register-Architektur? Speicher-Formen (file registers: An-zahl? Breite?), Adressierungsarten? branching? heterogen? Inwiefern ist derBefehlssatz ’highly orthogonal’? load store? Welche Rolle spielen wohl diefile registers? Instruktionsbreite? OpCode-Breite? Welche Aspekte sprecheneher fur RISC, welche eher fur CISC? (je 1/4 Pkt)

+1/4 Es gibt 16 (mehr oder weniger) 16 bit Allzweck-Register W0 . . .W15,vgl. p.417; p39: The 16th working register (W15) operates as a SoftwareStack Pointer for interrupts and calls, s.a. p77.

+1/4 16 Register sprechen fur Register-, W0 (=WREG) fur Akkumulator-Achitektur, vgl. z.B. ADDC f; // f+=WREG+(C), ebenso AND, ASR, CPB,IOR, MUL und SUBBR.

+1/4 es gibt (mindestens) ein internes RAM = 16 bit file registers (vgl.BCLR) = f von 0x2000 bytes, d.h. 8K bytes.

+1/4 es gibt mit Wd, [Wd], [Wd++], [Wd--], [++Wd], [--Wd] und f min-destens sieben Adressierungsarten.

+1/4 soweit ersichtlich wird aufgrund von condition codes verzweigt.+1/4 der Befehlssatz ist angesichts der unterschiedlichen Argumente etwa

fur ADD vermutlich eher heterogen.+1/4 der Befehlssatz ist vermutlich ’highly orthogonal’, weil schon ADD,

ADDC, AND und ASR alle auf dieselben Kombinationen von Argumentenangewandt werden konnen.

+1/4 wenn f als Register-Zugriff gewertet wird, kann eine load-store-Ar-chitektur vorliegen; sonst nicht.

+1/4 die file registers spielen vermutlich dieselbe Rolle wie der interneSpeicher des 8051.

+1/4 die meisten Instruktionen sind 24bit=3byte breit – z.B. CALL ist48bit=6byte breit. Der OpCode ist 8bit=1byte breit.

+1/4 beispielsweise die vielen Adressierungsarten, viele Datentypen, hierArten von Immediates, condition codes oder Instruktionen wie BTSC

sprechen fur CISC; (beispielsweise sind p422:REPEAT #lit14; // Repeat Next Instruction lit14+1 times oderREPEAT Wn; // Repeat Next Instruction (Wn) +1 times typi-sche CISC-Instruktionen – vgl. 80x86 prefixes.) soweit hier ersichtlichsprechen nur (fast) durchgangig 24 bit-Befehle fur RISC.

2. Bewerten und vergleichen Sie die Leistung eines 32bit-Prozessors und ei-nes 64bit Prozessors mit demselben Takt und ’demselben’ (?) Befehlssatz,die auf derselben Technologie basieren. Bewerten und vergleichen Sie dieLeistung der Rechner-Systeme mit diesen beiden Prozessoren. (je 1/4 Pkt)

Page 22: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 22

zunachst

+1/4 Die Befehlssatze konnen naturlich nicht ’identisch’ sein, weil der64bit Prozessor mindestens 32bit und 64bit Argumente verarbeiten konnenmuß.

+1/4 Weil Prozessoren Operationen auf Daten unterschiedlicher Große(bit, byte, short int, long int, float, double etc) ausfuhren, sind 64bitProzessoren sicher nicht doppelt so schnell wie 32bit Prozessoren.

+1/4 double Argumente werden auch auf 32bit Prozessoren ublicherweisein Paaren von eigenen float Registern verarbeitet.

pro 64bit

+1/4 Der 64bit Prozessor kann mit 64bit Adressen einen wesentlich große-ren virtuellen Speicher adressieren als der 32bit Prozessor.

+1/4 64bit integer Register konnen auch als double Register verwendetwerden.

+1/4 Die breiteren 64bit Register erlauben einfacher SIMD-Anweisungen.

contra 64bit

+1/4 Es gibt viele Instruktionen, die von 64bit bf nicht profitieren: ebenalle Instruktionen mit Operanden, die in 32bit passen, wie z.B. bits,bytes, utf8, 32bit signed/unsigned integers, floats . . .

+1/4 Vermutlich braucht der der 64bit Prozessor zusatzliche Adressie-rungsarten, um auch alte 32bit Anwendungen ausfuhren zu konnen.

3. Der MIPS Assembler unterstutzt die Pseudo-Instruktion abs Rdest,Rsrc

mit Rdest = |Rsrc| (Betrag) fur die Integer-Register Rsrc und Rdest.(Konnte die ALU Betrage berechnen, gabe es eine echte Instruktion abs.)Durch welche (echten) Instruktionen (siehe DLX/MIPS-ISA) ersetzt derAssembler die Pseudo-Instruktion abs Rdest,Rsrc ? (1 Pkt)

Der Assembler ersetzt abs Rdest,Rsrc unter Verwendung von etwa R1

durch

add Rdest,R0,Rsrc ; Rdest = Rsrc

slt R1,R0,Rsrc ; R1 = (0<Rsrc)

bne R1,R0,pos

sub Rdest,R0,Rsrc ; Rdest = 0-Rsrc

pos:

ohne sich um Zweier-Komplement kummern zu mussen . . .

Erweitern Sie die pipeline-Implementierung des MIPS R2000 um die absInstruktion abs Rdest, Rsrc; // Rdest = abs(RSrc).Spezifizieren Sie das Befehlsformat. Spezifizieren Sie in einer Tabelle, wasin jedem cycle passieren soll. Wenn notig, unterstellen Sie, daß die ALU

Page 23: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 23

neben zero eine weitere flag neg setzt: neg = 1 genau dann, wenn dasALU-Ergebnis negativ ist.Nehmen Sie in Fig. 6.30 aus COD2e die ggfls. erforderlichen Modifikationendes Daten-Pfades und der Steuerung vor. Spezifizieren Sie in einer Tabellealle Signale fur jeden cycle der Befehlsabarbeitung. (8 Pkt)

2 fur Tabelle, 2 fur Datenpfad, 3 fur Signale, 1 fur Signal-Tabelle

Das R-Format birgt das Problem, daß die unveranderte main control nurden OPcode 0 sieht und daher Signale nur fur arithmetisch-logische Instruk-tionen codiert im function Feld generiert. Alles davon Abweichende mußdann von der ALU-control ubernommen werden, will man nicht die Inputsin die main control um das function Feld erweitern: besser keine opCodeszu opfern und das R-Format 0 0 Rsrc Rdest ∗ abs zu verwenden.

Der Datenpfad ist um einen Multiplexer abs vor dem oberen Eingang vonMemToReg zu erweitern, dessen einer Eingang ALUout und dessen andererEingang B ist. abs wird gesteuert durch AND von func==abs, generiert vonALUcontrol, und der ALU flag neg.

cycle action

IF IR = Mem[PC]; PC += 4;

ID

ID/EX.A = Register(IR[25-21]);ID/EX.B = Register(IR[20-16]);ID/EX.C = Register(IR[15-11]);ALUOut = PC+4+signextend(IR[15-0]); // prophylaktisch Verzweigungsziel berechnen

EX ALUout = -Rt; neg = (-Rt < 0), also neg = Rt > 0WB if abs&&neg then Rd := B else Rd:=ALUout

Im Folgenden sind die Signale in IF und ID wie gehabt; alle nicht erwahntenSignale sind 0.In EX subtrahiert (aufgrund von opCode=0 und func=abs) die ALU R0-Rt

und setzt flag neg = (-Rt<0), d.h. neg = (Rt>0).In WB wird entweder ALUout oder B in Rd geschrieben: diese Fallunter-scheidung nimmt der neue Multiplexer abs vor dem oberem Eingang vonMemToReg vor, der seinerseits vom AND des von der ALUcontrol erzeugtenSignals func==abs und neg gesteuert wird.

ALU Register PC write sequen-

label cntrl SRC1 SRC2 control Memory control cing

Fetch Add PC 4 read PC ALU seq

Add PC Extshft read dispatch1

Mem1 Add A Extend dispatch2

LW2 read ALU seq

write MDR to Rt fetch

SW2 write ALU fetch

R-Type1 func A B seq

write ALU to Rd fetch

BEQ1 Sub A B ALU-zero fetch

JUMP1 jumpaddr fetch

Hier ist anzumerken, daß durch den neuen Multiplexer abs das µ-Programm-Feld write ALU to Rd durch

Page 24: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 24

if abs&&neg then write B to Rd

else write ALUout to Rd

zu ersetzen ist.

4. Ubersetzen Sie den Funktionsrumpf ’Berechnung der Fibonacci-Zahlen’

f[0]=1; f[1]=1; for(i=2; i<6; i++) f[i]=f[i-1]+f[i-2];

in MIPS R2000 assembler (siehe DLX/MIPS-ISA). Unterstellen Sie dabei:der Compiler bindet den heap pointer an Register R14; die 4byte Schlei-fenvariable i liegt auf dem heap ab der Adresse R14+0x08; das Feld f von4byte integers beginnt auf dem heap an der Adresse R14+0x0C. R1, R2, R3,R4 und R5 stehen als einzige freie Allzweck-Register zur Verfugung. (3 Pkt)

2 fur assembler-Programm, 1 fur optimiertes assembler-Programm

Es ist effizient, die Variable i an ein Register zu binden und erst nach Abar-beitung der Schleife im Speicher zu aktualisieren. Wie im Beispiel quicksortder Vorlesung verwende den Zeiger auf die Feld-Elemente als Schleifenva-riable.

addi R1,R0,#1; // R1 := 1

sw (R14)0x0C,R1; // f[0] := 1

sw (R14)0x10,R1; // f[1] := 1

addi R3,R14,#0x14;// R3 is address of f[2] on heap

addi R4,R14,#0x24;// R4 is address _after_ last element of f

loop: slti R1,R3,R4; // R1 := (R3<R4), R4 = R14+0x0C+0x18

beq R1,R0,lend; // if R1==0 exit loop, i.e. goto loop end

lw R1,(R3)-4; // R1 := Mem[R3-4] = f[i-1]

lw R2,(R3)-8; // R2 := Mem[R3-8] = f[i-2]

add R1,R1,R2; // R1 := R1+R2

sw (R3)0,R1; // Mem[R3] := R1

addi R3,R3,#4; // R3 += 4 inc pointer to next element

j loop; // jump to loop begin

lend: addi R3,R0,#6; // R3 := 6

sw (R14)0x08,R3; // restore variable i on heap

Bestimmen Sie dann die cache Belegung eines initial leeren direct mappedcaches mit acht 1-Wort-Blocken Netto-Kapazitat mit copy back write Stra-tegie und zum einen der fetch on write miss, zum anderen der write aroundon write miss Strategie. Unterstellen Sie, daß der heap pointer R14 durch8 teilbar ist. Vergleichen Sie Anzahl von hits, misses und von Wortern, dieuber den Bus mit dem Speicher ausgetauscht werden. (3 Pkt)

1 fur Rolle von R14, je 1 fur cache Belegung und Anzahl Worter

Da R14 ein Vielfaches von 8 ist, ist die cache-Belegung unabhangig von R14.Die hexadezimalen Speicher-Referenzen konnen daher auch auf YZ verkurztwerden, wo R14+0xYZ gemeint ist.

Page 25: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 25

fetch on write missW W W W W W W

0C 10 0C 10 14 10 14 18 14 18 1C 18 1C 20 08

0 10 10 10 18 18 18 20 081

23

4 0C 0C 14 14 14 1C 1C5

675† f f t t bf t t bf t t bf t t bf faddress mod 8 8 read hits, 0 write hits bei 11 Wortern

Da genugend Register zur Verfugung stehen, mussen die gerade berechnetenFeld-Elemente nicht erneut geladen werden. Außerdem halten wir uns andie Konvention (des WinDLX compilers), R1 fur die Boole’schen Ergebnissevon (Integer-) Vergleichen zu verwenden.

addi R5,R0,#1; // R5 := 1, R5 initialisieren

sw (R14)0x0C,R5; // f[0] := 1

addi R4,R0,#1; // R4 := 1, R4 initialisieren

sw (R14)0x10,R4; // f[1] := 1

addi R2,R14,#0x24;// R2 is address _after_ last element of f

addi R3,R14,#0x14;// R3 is address of f[2] on heap

loop: slti R1,R3,R2; // R1 := (R3<R2) wobei R2 = R14+0x0C+0x14

beq R1,R0,lend; // if R1==0 exit loop, i.e. goto loop end

add R1,R4,R5; // R1 := R4+R5 = f[i-1]+f[i-2]

sw (R3)0,R1; // Mem[R3] := R1

add R5,R4,R0; // R5 := R4

add R4,R1,R0; // R4 := R1

addi R3,R3,#4; // R3 += 4; inc pointer to next element

j loop; // jump to loop begin

lend: addi R3,R0,#6; // R3 := 6

sw (R14)0x08,R3; // restore variable i on heap

Da R14 ein Vielfaches von 8 ist, ist die cache-Belegung unabhangig von R14.Alle Zugriffe auf den Speicher und damit auf den cache sind schreibend:elf zu initialisierende Feld-Elemente und ein zu aktualisierender Wert derVariablen i.

fetch on write miss

5† m=miss, s=spatial hit, t=temporal hit, w=write to cache & mem, wc=write to cache,wm=write to mem, b=write back to mem before replace, f=fetch on write miss into cache

Page 26: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 26

W W W W W W W

0C 10 14 18 1C 20 08

0 10 18 20 081

23

4 0C 14 1C5

676† f f bf bf bf bf faddress mod 8 0 read hits, 0 write hits bei 11 Wortern

Da der cache initial leer ist, sind alle zwolf speichernden Zugriffe writemisses. Unter einer write around on write miss Strategie bleibt der cachealso leer und die zwolf Worter werden direkt in den Speicher geschrieben.

5. Ein Speicher werde mit paged segments verwaltet. Segment- und Seiten-Anfange fallen zusammen. Virtuelle (Byte-) Adressen bestehen aus 2bit-SegmentNo: 3bit-pageNo und 3bit page-offest, die physikalischen (Byte-)Adressen aus 3bit-pageNo=frameNo und 3bit page-offest. Wie groß ist dervirtuelle Speicher? der physikalische Speicher? eine jede Seite? (1 Pkt)Gegeben die Ausschnitte aus Segment (Descriptor) Table ST (mit Seg-mentlangen in Seiten) und Page Table PT mit

ST =

seg# base len

1 0x3 0x22 0x5 0x23 0x2 0x1

und PT =tag · · · 0x2 0x3 0x4 0x5 0x6 . . .

frame · · · hdd 0x2 0x5 0x1 0x0 · · ·

Was ist die zur virtuellen Adresse (0x1:0xF) gehorende physikalische Ad-dresse? Konstruieren Sie eine Adresse, die ein segmentation violation auslost.Konstruieren Sie eine Adresse, die ein page fault auslost. (1+1+1 Pkt)

Die Kapazitat des physikalischen Speichers ist 26 = 64B, die des virtuellenSpeichers 28 = 256B. Eine Seite ist 23 = 8B groß.In der virtuellen Adresse (0x1:0xF)=(0x1:1111) entspricht 0x1 der Segment-No, 1 = 001(2) der virtual pageNo und 0x7 = 111(2) dem page offset. Dievirtuelle Speicher-Adresse ist also ST[1].base+1 = 0x3+1=0x4. Der PT-Eintrag liefert die zugehorige physikalische Adresse 0x2F = 101111(2) =

(frame no—page offset) = 101111, die aus physikalischer Seiten-Nummerframe = 0x5 = 101(2) und page offset 0x7 = 111(2) zusammengesetzt ist.Beispielsweise die virtuelle Adresse (0x1:0x1F) lost ein segmentation viola-tion aus, weil das Segment Nr. 1 nur zwei Seiten groß ist (len = 0x2).Beispielsweise die virtuelle Adresse (0x3:0x0) lost ein page fault aus, weildas aus einer Seite bestehende (len = 0x1) Segment Nr. 3 nicht im Speicherliegt, sondern (gerade) ausgelagert ist.

6† m=miss, s=spatial hit, t=temporal hit, w=write to cache & mem, wc=write to cache,wm=write to mem, b=write back to mem before replace, f=fetch on write miss into cache

Page 27: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 27

6. Auf einem Mehrprozessor-System mit p PEs sei das Maximum eines nume-rischen Feldes a mit n Elementen zu bestimmen. Skizzieren Sie fur n = 8mogliche DAGs fur p = 8, p = 4 und p = 2. (3 Pkt)

Berechnen Sie unter genau zu spezifizierenden, vereinfachenden Annahmenin jedem der drei Falle Beschleunigungsfaktor βp und Effizienz Ep = βp

pfur

die Berechnung des Maximums von n = 8 Feld-Elementen. (1+je 1/3 Pkt)

Verallgemeinern Sie Ihre obigen Ergebnisse fur β und E fur n = 2m mitm ≥ 4 und p = 2, 4, 8 sowie fur n = 8 und beliebiges p. (3+1 Pkt)

Wir unterstellen, daß das Feld im globalem Speicher liegt, auf den die PEsgleichartigen und gleichzeitigen Zugriff haben. Die PEs stellen Zwischen-ergebnisse im globalen Speicher zur Verfugung. Die Berechnung des Maxi-mums erfolgt genauso wie die der Summe von n Feld-Elementen und weistdieselben Datenabhangigkeiten auf. Fur etwa n = 8 ergibt sich:ao a1 a2 a3 a4 a5 a6 a7

ao = max(ao, a1) a2 = max(a2, a3) a4 = max(a4, a5) a6 = max(a6, a7)

ao = max(ao, a2) a4 = max(a4, a6)

ao = max(ao, a4)

Daraus leitet sich der zugehorige DAG ab:ao a1 a2 a3 a4 a5 a6 a7

aao = max(ao, a1)

1

ba2 = max(a2, a3)

1

ca4 = max(a4, a5)

1

da6 = max(a6, a7)

1

eao = max(ao, a2)

1

fa4 = max(a4, a6)

1

gao = max(ao, a4)

1

Die sieben subtasks a, b, c, d, e, f und g berechnen jeweils ein Maximumund brauchen dafur je eine Zeiteinheit, ZE. Der Kommunikationsaufwandist fur alle subtasks mit je Tcom ZE identisch (und nicht eingezeichnet). Daim ersten Schritt hochstens vier Paare verglichen werden konnen, stimmendie DAGs fur p = 8 und p = 4 i.W. uberein: fur p = 8 sind im ersten Schritteben vier PEs idle.

Page 28: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 28

Im Folgenden geben wir immer gleich bestimmte PATs vor, d.h. bestimmteZuordnungen der verfugbaren PEs zu subtasks.

p = 4 Das Multiprozessor-System braucht drei Schritte:

1. Fur i = 0, 1, 2, 3 berechnet PEi jeweils a2i := maxa2i, a2i+1.2. Fur i = 0, 2 berechnet PEi jeweils a2i := maxa2i, a2i+23. PEo berechnet endlich ao := maxao, a4

p = 2 Das Multiprozessor-System braucht jetzt vier Schritte:

1. Fur i = 0, 1 berechnet PEi jeweils a2i := maxa2i, a2i+1.2. Fur i = 0, 1 berechnet PEi jeweils a2(i+2) := maxa2(i+2), a2(i+2)+1.3. Fur i = 0, 1 berechnet PEi jeweils a2i := maxa4i, a4i+24. PEo berechnet endlich ao := maxao, a4

so daß sich bei identischem, parallelen Zugriff auf den Speicher mit Tcom = 0eben βp = β8 = β4 = 7

3= 2.3 und Ep = E8 = 7

24= 0.2916 sowie E4 = 7

12=

0.583 ergibt. Fur p = 2 ergibt sich β2 = 74

= 1.75 und E2 = 78

= 0.875.Verallgemeinere fur Tcom > 0 usw.

Fur n = 2m mit m ≥ 4 fuhrt ein Monoprozessor-System n − 1 ≥ 16 Ver-gleiche durch.

p = 8 Das Multiprozessor-System braucht∑m−4

i=1 2i + 4 = 3 + 1−2m−3

1−2=

2m−3 + 2 Schritte:

2m Elemente: Reduziere 2m Elemente durch 2m−1 Vergleiche in 1p2m−1

= 2m−1−ld p Schritten auf 2m−1 zu vergleichenden Zwischen-Maxima.

...

25 Elemente: Reduziere 32 Zwischenergebnisse in zwei Schritten auf16 Zwischen-Maxima.

24 Elemente: Berechne in 4 Schritten das Maximum von 16 Zwischen-Maxima.

p = 4 Das Multiprozessor-System braucht entsprechend 3 +∑m−3

i=1 2i =2m−2 + 1 Schritte.

p = 2 Das Multiprozessor-System braucht 2 +∑m−2

i=1 2i = 2m−1 Schritte.

Ein Monoprozessor-System fuhrt n−1 = 2m−1 Vergleiche in n−1 = 2m−1ZE durch. so daß sich erwartungsgemaß etwa β8 = 2m−1

2m−3+2≈ 8 fur große m

sowie ebenfalls erwartungsgemaß E8 = 18β8 ≈ 1 ergibt – fur große m sind

meist alle acht PEs busy.

Fur n = 8 gilt offensichtlich

p 1 2 3 4 5 6 7 8 . . .Schritte 7 4 4 3 3 3 3 3 . . .βp 1 7

474

73

73

73

73

73

. . .Ep 1 7

8712

712

715

718

13

724

. . .

(Summe 32 Punkte)

Page 29: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 29

4 CompArch-Klausur SS14

Klausur Computer-Architektur 7.7.14

Name, Vorname Matrikel

Hilfsmittel sind nicht zugelassen! und aus gegebenem Anlaß:weniger ist mehr! – statt weitschweifiger, wolkiger Poesie

klare, knappe Aussagen mit stimmigen, Stichwort-artigen Begrundungen!Es wird nicht erwartet, daß alle Aufgaben bearbeitet werden!

Pkt 12 13 14 15 16 17 18 19 20 21Note 4,0 3,7 3,3 3,0 2,7 2,3 2,0 1,7 1,3 1,0

1. Anhand der Auszuge aus MicroChip’s PIC24FJ128GC010 Family pp418, Protokoll3./4.Woche24./31.3.14

419 nehmen Sie begrundet Stellung zu Register (Anzahl? Breite?), Akku-mulator- oder Register-Architektur? Speicher-Formen (file registers: An-zahl? Breite?), Adressierungsarten? branching? heterogen? Inwiefern ist derBefehlssatz ’highly orthogonal’? load store? Welche Rolle spielen wohl diefile registers? Instruktionsbreite? OpCode-Breite? Welche Aspekte sprechenfur eher RISC, welche fur eher CISC? (je 1/4 Pkt)

2. Fig. 5.46: µ-Programm fur MIPS R2000 in symbolischer Form Protokoll6./7.Woche28.4./5.5.14ALU Register PC write sequen-

label cntrl SRC1 SRC2 control Memory control cing

Fetch Add PC 4 read PC ALU seq

Add PC Extshft read dispatch1

Mem1 Add A Extend dispatch2

LW2 read ALU seq

write MDR to Rt fetch

SW2 write ALU fetch

R-Type1 func A B seq

write ALU to Rd fetch

BEQ1 Sub A B ALU-zero fetch

JUMP1 jumpaddr fetch

Prufen Sie, ob jedes Feld der µ-Instruktionen auch durch entsprechende Si-gnale in der MCI zu realisieren ist, d.h. ob die Intentionen des µ-Program-mierers auch durch geeignete Signale umzusetzen sind. (je 1/4 Pkt)

3. Der MIPS Assembler unterstutzt die Pseudo-Instruktion abs Rdest,Rsrc Protokoll6./7. Woche28.4.14, 5.5.14

mit Rdest = |Rsrc| (Betrag) fur die Integer-Register Rsrc und Rdest.(Konnte die ALU Betrage berechnen, gabe es eine echte Instruktion abs.)Durch welche (echten) Instruktionen (siehe DLX/MIPS-ISA) ersetzt derAssembler die Pseudo-Instruktion abs Rdest,Rsrc ? (1 Pkt)

Erweitern Sie die multicycle-Implementierung des MIPS R2000 um die absInstruktion abs Rdest, Rsrc; // Rdest = abs(RSrc).

Page 30: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 30

Spezifizieren Sie das Befehlsformat. Spezifizieren Sie in einer Tabelle, wasin jedem cycle passieren soll. Wenn notig, unterstellen Sie, daß die ALUneben zero eine weitere flag neg setzt: neg = 1 genau dann, wenn dasALU-Ergebnis negativ ist.Nehmen Sie in Fig. 5.33 aus COD2e die ggfls. erforderlichen Modifikationendes Daten-Pfades und der Steuerung vor. Spezifizieren Sie alle Signale furjeden cycle der Befehlsabarbeitung und formulieren Sie die Steuerung alsµ-Programm, indem Sie Fig. 5.46 geeignet modifizieren. (8 Pkt)

4. Ubersetzen Sie die Initialisierung for(i=0; i<11; i++)a[i]=0; in MIPS Protokoll10.Woche26.5.14

R2000 assembler (siehe DLX/MIPS-ISA). Unterstellen Sie dabei, daß derCompiler den heap pointer an Register R14 bindet, daß die 4byte Schleifen-variable i auf dem heap ab der Adresse R14+0x08 liegt und daß das Feld a

von elf 4byte integers auf dem heap an der Adresse R14+0x0C beginnt. R1,R2 und R3 stehen als einzige freie Allzweck-Register zur Verfugung. (3 Pkt)

Bestimmen Sie dann die cache Belegung eines initial leeren direct mappedcaches mit acht 1-Wort-Blocken Netto-Kapazitat mit copy back write Stra-tegie und zum einen der fetch on write, zum anderen der write around writeon miss Strategie. Unterstellen Sie, daß der heap pointer R14 durch 8 teilbarist. Vergleichen Sie Anzahl von hits, misses und von Wortern, die uber denBus mit dem Speicher ausgetauscht werden. (3 Pkt)

5. Wieso kann die Seiten-Große nur eine Zweierpotenz sein? In welcher Ein- Protokoll11. Woche,2.6.14

heit wird diese Große gemessen? Welcher Vorteil, welcher Nachteil geht mitsolchen Seiten-Großen einher? (je 1/2 Pkt)

6. Gegeben das Polynom q(x) = co + c1x+ . . .+ cnxn. Begrunden Sie, warum Protokoll

13. Woche23.6.14

die Auswertung von q in xo per Horner-Darstellung

q(x) = ((...((cnx+ cn−1)x+ cn−2) + . . .+ c2)x+ c1)x+ co

gunstig fur ein Mono-Prozessor-System und denkbar ungeeignet fur einMulti-Prozessor-System ist. Zeichnen Sie dazu den zur Horner-Darstellunggehorigen DAG. (1+1 Pkt)Sei n = 8. Geben Sie eine fur die Auswertung von q in xo auf einem Multi-Prozessor-System gunstigere Darstellung des Polynoms an. Zeichnen Siedazu den zur rechten Seite gehorigen DAG. (3 Pkt)Berechnen Sie unter vereinfachenden Annahmen und fur eine geeignete An-zahl p von PEs den Beschleunigungsfaktor β(p) und die Effizienz E(p) =β(p)p

fur die Berechnung von q(xo) mit n = 8. (2 Pkt)

(Summe 30 Punkte)

Page 31: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 31

Losungen zurKlausur

Computer-Architektur 7.7.14

1. Anhand der Auszuge aus MicroChip’s PIC24FJ128GC010 Family pp418, Protokoll3./4.Woche24./31.3.14

419 nehmen Sie begrundet Stellung zu Register (Anzahl? Breite?), Akku-mulator- oder Register-Architektur? Speicher-Formen (file registers: An-zahl? Breite?), Adressierungsarten? branching? heterogen? Inwiefern ist derBefehlssatz ’highly orthogonal’? load store? Welche Rolle spielen wohl diefile registers? Instruktionsbreite? OpCode-Breite? Welche Aspekte sprechenfur eher RISC, welche fur eher CISC? (je 1/4 Pkt)

+1/4 Es gibt 16 (mehr oder weniger) 16 bit Allzweck-Register W0 . . .W15,vgl. p.417; p39: The 16th working register (W15) operates as a SoftwareStack Pointer for interrupts and calls, s.a. p77.

+1/4 16 Register sprechen fur Register-, W0 (=WREG) fur Akkumulator-Achitektur, vgl. z.B. ADDC f; // f+=WREG+(C), ebenso AND, ASR, CPB,IOR, MUL und SUBBR.

+1/4 es gibt (mindestens) ein internes RAM = 16 bit file registers (vgl.BCLR) = f von 0x2000 bytes, d.h. 8K bytes.

+1/4 es gibt mit Wd, [Wd], [Wd++], [Wd--], [++Wd], [--Wd] und f min-destens sieben Adressierungsarten.

+1/4 soweit ersichtlich wird aufgrund von condition codes verzweigt.+1/4 der Befehlssatz ist angesichts der unterschiedlichen Argumente etwa

fur ADD vermutlich eher heterogen.+1/4 der Befehlssatz ist vermutlich ’highly orthogonal’, weil schon ADD,

ADDC, AND und ASR alle auf dieselben Kombinationen von Argumentenangewandt werden konnen.

+1/4 wenn f als Register-Zugriff gewertet wird, kann eine load-store-Ar-chitektur vorliegen; sonst nicht.

+1/4 die file registers spielen vermutlich dieselbe Rolle wie der interneSpeicher des 8051.

+1/4 die meisten Instruktionen sind 24bit=3byte breit – z.B. CALL ist48bit=6byte breit. Der OpCode ist 8bit=1byte breit.

+1/4 beispielsweise die vielen Adressierungsarten, viele Datentypen, hierArten von Immediates, condition codes oder Instruktionen wie BTSC

sprechen fur CISC; (beispielsweise sind p422:REPEAT #lit14; // Repeat Next Instruction lit14+1 times oderREPEAT Wn; // Repeat Next Instruction (Wn) +1 times typi-sche CISC-Instruktionen – vgl. 80x86 prefixes.) soweit hier ersichtlichsprechen nur (fast) durchgangig 24 bit-Befehle fur RISC.

2. Fig. 5.46: µ-Programm fur MIPS R2000 in symbolischer Form

Page 32: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 32

ALU Register PC write sequen-

label cntrl SRC1 SRC2 control Memory control cing

Fetch Add PC 4 read PC ALU seq

Add PC Extshft read dispatch1

Mem1 Add A Extend dispatch2

LW2 read ALU seq

write MDR to Rt fetch

SW2 write ALU fetch

R-Type1 func A B seq

write ALU to Rd fetch

BEQ1 Sub A B ALU-zero fetch

JUMP1 jumpaddr fetch

Prufen Sie, ob jedes Feld der µ-Instruktionen auch durch entsprechende Si-gnale in der MCI zu realisieren ist, d.h. ob die Intentionen des µ-Program-mierers auch durch geeignete Signale umzusetzen sind. (je 1/4 Pkt)

Wir gehen Spalten-weise vor:

• das Signal ALUop erlaubt, die ALU per ALUcontrol so anzusteuern, daßsie addiert, subtrahiert oder die in func kodierte Funktion ausfuhrt.

• der Multiplexer ALUSrcA steuert, ob das ’obere’ Argument der ALUin ID fur PC += 4 der PC oder in ID das Register A ist.

• der Multiplexer ALUSrcB steuert, daß das ’untere’ Argument der ALU

in IF fur PC += 4 eine 32bit vier ist,

in ID fur branch target das durch shiften mit 4 multiplizierte und auf32bit Vorzeichen-richtig erweiterte Immediate IR[15-0]<<2 ist,

in EX fur alle arithmetisch-logischen Operationen das auf 32bit Vor-zeichen-richtig erweiterte Immediate IR[15-0] oder das RegisterB ist.

• Die Register konnen immer gelesen werden: das read soll nur ID ver-deutlichen. Das Signal RegWrite steuert, ob die anliegenden Daten indie Register-Datei geschrieben werden. Der Multiplexer RegDst steu-ert, ob das Ziel-Register im Feld Rt, IR[20-16] oder im Feld Rd,IR[15-11] benannt ist. Der Multiplexer MemToReg steuert, ob ALUout

oder MDR in die Register-Datei geschrieben werden.

• Entweder wird garnicht oder lesend bzw. schreibend auf den Speicherzugegriffen. Die jeweilige Adresse liefert ALUout. Die drei Zugriffsartenwerden durch MemRead (load) und MemWrite (store) gesteuert.

• Der Multiplexer PCsource steuert, daß PC in IF wegen PCsource=0mit dem ALU-Ergebnis PC+4 und in EX bei BEQ on branch takenwegen PCsource=1 mit dem in ID prophylaktisch berechneten branchtarget bzw. bei J wegen PCsource=2 mit dem jump target uberschrie-ben wird.

3. Der MIPS Assembler unterstutzt die Pseudo-Instruktion abs Rdest,Rsrc

mit Rdest = |Rsrc| (Betrag) fur die Integer-Register Rsrc und Rdest.

Page 33: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 33

(Konnte die ALU Betrage berechnen, gabe es eine echte Instruktion abs.)Durch welche (echten) Instruktionen (siehe DLX/MIPS-ISA) ersetzt derAssembler die Pseudo-Instruktion abs Rdest,Rsrc ? (1 Pkt)

Der Assembler ersetzt abs Rdest,Rsrc unter Verwendung von etwa R1

durch

add Rdest,R0,Rsrc ; Rdest = Rsrc

slt R1,R0,Rsrc ; R1 = (0<Rsrc)

bne R1,R0,pos

sub Rdest,R0,Rsrc ; Rdest = 0-Rsrc

pos:

ohne sich um Zweier-Komplement kummern zu mussen . . .

Erweitern Sie die multicycle-Implementierung des MIPS R2000 um die absInstruktion abs Rdest, Rsrc; // Rdest = abs(RSrc).Spezifizieren Sie das Befehlsformat. Spezifizieren Sie in einer Tabelle, wasin jedem cycle passieren soll. Wenn notig, unterstellen Sie, daß die ALUneben zero eine weitere flag neg setzt: neg = 1 genau dann, wenn dasALU-Ergebnis negativ ist.Nehmen Sie in Fig. 5.33 aus COD2e die ggfls. erforderlichen Modifikationendes Daten-Pfades und der Steuerung vor. Spezifizieren Sie alle Signale furjeden cycle der Befehlsabarbeitung und formulieren Sie die Steuerung alsµ-Programm, indem Sie Fig. 5.46 geeignet modifizieren. (8 Pkt)

2 fur Tabelle, 2 fur Datenpfad, 3 fur Signale, 1 fur µ-Programm

Das R-Format birgt das Problem, daß die unveranderte main control nurden OPcode 0 sieht und daher Signale nur fur arithmetisch-logische Instruk-tionen codiert im function Feld generiert. Alles davon Abweichende mußdann von der ALU-control ubernommen werden, will man nicht die Inputsin die main control um das function Feld erweitern: besser keine opCodeszu opfern und das R-Format 0 0 Rsrc Rdest ∗ abs zu verwenden.

Der Datenpfad ist um einen Multiplexer abs vor dem oberen Eingang vonMemToReg zu erweitern, dessen einer Eingang ALUout und dessen andererEingang B ist. abs wird gesteuert durch AND von func==abs, generiert vonALUcontrol, und der ALU flag neg.

cycle action

IF IR = Mem[PC]; PC += 4;

ID

ID/EX.A = Register(IR[25-21]);ID/EX.B = Register(IR[20-16]);ID/EX.C = Register(IR[15-11]);ALUOut = PC+4+signextend(IR[15-0]); // prophylaktisch Verzweigungsziel berechnen

EX ALUout = -Rt; neg = (-Rt < 0), also neg = Rt > 0WB if abs&&neg then Rd := B else Rd:=ALUout

Im Folgenden sind die Signale in IF und ID wie gehabt; alle nicht erwahntenSignale sind 0.

Page 34: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 34

In EX subtrahiert (aufgrund von opCode=0 und func=abs) die ALU R0-Rt

und setzt flag neg = (-Rt<0), d.h. neg = (Rt>0).In WB wird entweder ALUout oder B in Rd geschrieben: diese Fallunter-scheidung nimmt der neue Multiplexer abs vor dem oberem Eingang vonMemToReg vor, der seinerseits vom AND des von der ALUcontrol erzeugtenSignals func==abs und neg gesteuert wird.

ALU Register PC write sequen-

label cntrl SRC1 SRC2 control Memory control cing

Fetch Add PC 4 read PC ALU seq

Add PC Extshft read dispatch1

Mem1 Add A Extend dispatch2

LW2 read ALU seq

write MDR to Rt fetch

SW2 write ALU fetch

R-Type1 func A B seq

write ALU to Rd fetch

BEQ1 Sub A B ALU-zero fetch

JUMP1 jumpaddr fetch

Hier ist anzumerken, daß durch den neuen Multiplexer abs das µ-Programm-Feld write ALU to Rd durch

if abs&&neg then write B to Rd

else write ALUout to Rd

zu ersetzen ist.

4. Ubersetzen Sie die Initialisierung for(i=0; i<11; i++)a[i]=0; in MIPSR2000 assembler (siehe DLX/MIPS-ISA). Unterstellen Sie dabei, daß derCompiler den heap pointer an Register R14 bindet, daß die 4byte Schleifen-variable i auf dem heap ab der Adresse R14+0x08 liegt und daß das Feld a

von elf 4byte integers auf dem heap an der Adresse R14+0x0C beginnt. R1,R2 und R3 stehen als einzige freie Allzweck-Register zur Verfugung. (3 Pkt)

2 fur assembler-Programm, 1 fur optimiertes assembler-Programm

Es ist effizient, die Variable i an ein Register zu binden und erst nach Abar-beitung der Schleife im Speicher zu aktualisieren. Wie im Beispiel quicksortder Vorlesung verwende den Zeiger auf die Feld-Elemente als Schleifenva-riable.

add R2,R14,#0x0C;// R2 is address of a[0] on heap

loop: slti R1,R2,#0x38;// R1 = (R2<0x38) = (R2<12+44) = (i<11)

beq R1,R0,lend; // if R1==0 exit loop, i.e. goto loop end

sw (R2)0,R0; // Mem[R2] = R0 = 0 (4-byte integer)

addi R2,R2,#4; // R2 += 4 inc pointer to next element

j loop; // jump to loop begin

lend: addi R3,R0,#11; // R3 = 11

sw (R14)0x08,R3; // update variable i on heap

Page 35: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 35

Bestimmen Sie dann die cache Belegung eines initial leeren direct mappedcaches mit acht 1-Wort-Blocken Netto-Kapazitat mit copy back write Stra-tegie und zum einen der fetch on write miss, zum anderen der write aroundon write miss Strategie. Unterstellen Sie, daß der heap pointer R14 durch8 teilbar ist. Vergleichen Sie Anzahl von hits, misses und von Wortern, dieuber den Bus mit dem Speicher ausgetauscht werden. (3 Pkt)

1 fur Rolle von R14, je 1 fur cache Belegung und Anzahl Worter

Da R14 ein Vielfaches von 8 ist, ist die cache-Belegung unabhangig vonR14. Die einzigen Zugriffe auf den Speicher und damit auf den cache sindelf zu initialisierende Feld-Elemente und ein zu aktualisierender Wert derVariablen i.

fetch on write missW W W W W W W W W W W W

0C 10 14 18 1C 20 24 28 2C 30 34 08

0 10 18 20 28 30 081

23

4 0C 14 1C 24 2C 345

677† f f bf bf bf bf bf bf bf bf bf f

address mod 8 0 read/write hits bei 21 Wortern

Da der cache initial leer ist, sind alle zwolf speichernden Zugriffe writemisses. Unter einer write around on write miss Strategie bleibt der cachealso leer und die zwolf Worter werden direkt in den Speicher geschrieben.

5. Wieso kann die Seiten-Große nur eine Zweierpotenz sein? In welcher Ein-heit wird diese Große gemessen? Welcher Vorteil, welcher Nachteil geht mitsolchen Seiten-Großen einher? (je 1/2 Pkt)

virtual page no page offset ist das Format virtueller Adressen.

physical page no page offset ist das Format physikalischer Adressen.

Fur das page offset steht also eine feste Anzahl von n bits zur Verfugung.Mit n bits sind 2n Adressen zu bilden, d.h. die Große einer Seite betragt 2n

byte bzw. 2n Worter, wenn es sich um byte- bzw. Wort-Adressen handelt.Dabei steht Wort ublicherweise fur die bits, die bei einem Zugriff auf denSpeicher ubertragen werden. Virtuelle und physikalische MIPS- oder 80x86-Adressen sind Byte-Adressen. Ein MIPS-Wort besteht aus vier Bytes (vgl.LW und SW ).Vorteil ist die schnelle address translation:

7† m=miss, s=spatial hit, t=temporal hit, w=write to cache & mem, wc=write to cache,wm=write to mem, b=write back to mem before replace, f=fetch on write miss into cache

Page 36: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 36

physical address = (physical page no|page offset)

= (PT(virtual page no).physPageNo|page offset).

Nachteil ist die Große der page table, PT, der Aufwand fur ’protection’ undder entstehende Verschnitt beim Allozieren von Speicher.

6. Gegeben das Polynom q(x) = co + c1x+ . . .+ cnxn. Begrunden Sie, warum

die Auswertung von q in xo per Horner-Darstellung

q(x) = ((...((cnx+ cn−1)x+ cn−2) + . . .+ c2)x+ c1)x+ co

gunstig fur ein Mono-Prozessor-System und denkbar ungeeignet fur einMulti-Prozessor-System ist. Zeichnen Sie dazu den zur Horner-Darstellunggehorigen DAG. (1+1 Pkt)

xo cn cn−1 cn−2 · · · c1 co

+

+

...

+

+

Der Umstand, daß xo soweit als moglich ausgeklammert wird, erlaubt effi-ziente Berechnung der Potenzen von xo auf einem Mono-Prozessor-System.Zugleich ist wegen der sichtbaren Abhangigkeit der Horner-Algorithmus in-trinsisch sequentiell, d.h. T (n) = T (1) fur jedes n ∈ N.

Page 37: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 37

Sei n = 8. Geben Sie eine fur die Auswertung von q in xo auf einem Multi-Prozessor-System gunstigere Darstellung des Polynoms an. Zeichnen Siedazu den zur rechten Seite gehorigen DAG. (3 Pkt)

Eine naheliegende Losung ist die Verwendung des russian peasant algorithm,erganzt um die Multiplikation mit Koeffzienten und um das Aufsummieren.

S

S

S

c8 c7 c6 c5 c4 c3 c2 c1 co

∗ +

+∗∗

+

+ + +

+

+

∗∗∗∗

S

S

S * S *

*

xo

x2o

x4o x3o

x8o x7o x6o x5o

Knoten auf demselben Niveau werden potentiell gleichzeitig abgearbeitet.Naturlich ist obige Abarbeitung des DAG in der Zeit nicht die einzige mogli-che . . .

Berechnen Sie unter vereinfachenden Annahmen und fur eine geeignete An-zahl p von PEs den Beschleunigungsfaktor β(p) und die Effizienz E(p) =β(p)p

fur die Berechnung von q(xo) mit n = 8. (2 Pkt)

Sei Tmul die Dauer fur eine Multiplikation, Tadd diejenige fur eine Addition.Dann gilt T (1) = 8Tadd + 8Tmul sowie in obigem DAG T (∞) = T (6) ≤7max(Tadd, Tmul). Wir unterstellen T := Tadd = Tmul. Damit ergibt sich

β(p) = β(6) = T (1)T (6)≥ 16T

7T= 16

7und E(p) = E(6) = 16

42≈ 0.38.

(Summe 30 Punkte)

Page 38: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 38

5 RST-Klausur SS13

Klausur Rechner-Strukturen 1.7.13

Name, Vorname Matrikel

Hilfsmittel sind nicht zugelassen! und aus gegebenem Anlaß:weniger ist mehr! – statt weitschweifiger, wolkiger Poesie

klare, knappe Aussagen mit stimmigen, Stichwort-artigen Begrundungen!Es wird nicht erwartet, daß alle Aufgaben bearbeitet werden!

Pkt 12 13 14 15 16 17 18 19 20 21Note 4,0 3,7 3,3 3,0 2,7 2,3 2,0 1,7 1,3 1,0

1. Andreas Stiller: Der Rechenkunstler – Mikroarchitektur und Instruktions- Protokoll15. Woche26.6.13

satz der neuen vierten Core-Generation Haswell ; c’t 14/2013 S.114-119 be-schreibt, wie Intel die Leistung der Haswell-Prozessoren steigert. Beschrei-ben Sie konkret, welche Maßnahmen zum Einsatz kommen und bewertenSie ihre Wirksamkeit. (je 1/4 Pkt)

2. Was sagt der Umstand uber den ARM-Prozessor und seinen Befehlssatz Protokoll2./3. Woche20./27.3.12

aus, wenn die ARM-ISA8 beispielsweise Varianten der InstruktionAdd<cond><S> Rd, Rn, Rm OP #; if cond Rd = Rn+OP(Rm) im Format

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00

cond 0 0 1 0 0 0 0 S Rn Rd rot imd immediate8cond 0 0 0 0 0 0 0 S Rn Rd shift imd shift 0 Rmcond 0 0 0 0 0 0 0 S Rn Rd Rs 0 shift 1 Rm

enthalt? Dabei ist cond eine Maske fur die bits Negative, Zero, Carry, oVer-flow im processor status word. Fast alle Instruktionen sind i.d.S. bedingt:if [NZCV]&cond execute instruction else nop; Das S-bit entscheidet,ob die Instruktion NZCV im processor status word verandert oder nicht.Das I-bit9 in instruction[25] entscheidet, ob instruction[11 − 0] als zu ro-tierendes Immediate interpretiert wird oder nicht. Falls nicht, kann dasQuell-Register Rm oder das Immediate vor der Addition funf Typen vonshifts (LSL, LSR, ASR, ROR und RRX) mit shift amount als immediateoder im Register Rs unterworfen werden. In welchen Situationen sind dieseVarianten vorteilhaft? Was spricht fur RISC? was fur CISC? (je 1/2 Pkt)

3. Erweitern Sie die pipeline Implementierung des MIPS R2000 um die con- Protokoll6./7./9. Woche24./29.4.13,15.5.13

ditional swap Instruktion cswap Rs, Rt, Rd; if Rs then swap(Rt,Rd).Spezifizieren Sie das Befehlsformat. Spezifizieren Sie in einer Tabelle, wasin jeder pipeline-Stufe passieren soll. Nehmen Sie in Fig. 6.30 aus COD2e

8 ARM ISA Quick Reference Card http://infocenter.arm.com/help/topic/com.arm.doc.qrc0001l/QRC0001 UAL.pdf

9 If the I bit is 0 and both bit 7 and bit 4 of shifter operand are 1 the instruction is notADD. Instead, see Extending the Instruction Set on page A3-27 to determine which instructionit is. http://morrow.ece.wisc.edu/ECE353/arm reference/ddi0100e arm arm.pdf

Page 39: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 39

die ggfls. erforderlichen Anderungen des Daten-Pfades und der Steuerungvor. Spezifizieren Sie alle Signale fur jede Stufe der Befehlsabarbeitung.Stellen Sie sicher, daß Ihre Erweiterung nicht die Abarbeitung der schon inFig. 6.30 implementierten Instruktionen verandert. Identifizieren Sie ggfls.structure hazards. (8 Pkt)

4. Zwei Kerne Core0 und Core1 eines Multi-Core Prozessors greifen entweder Protokoll10./11.Woche22./29.5.13

uber lokale 2-assoziative caches mit vier 1-Wort-Blocken oder uber einengemeinsamen 2-assoziativen shared cache mit acht 1-Wort-Blocken auf denSpeicher zu. Die Verdrangungsstrategie sei in beiden Fallen LRU.Core0 greift auf die Speicher-Adressen 16,17,25,36,27,16,17,26,37,28,16,17lesend zu.Core1 greift auf die Speicher-Adressen 48,49,57,68,59,48,49,58,69,60,48,49lesend zu.Im Fall des shared caches wechseln sich lesende Zugriffe der beiden Kerneab. Core0 beginnt. Alle caches sind initial leer.

Bestimmen Sie zum einen die cache Belegungen der beiden lokalen cachesund zum anderen diejenige des shared caches. Vergleichen Sie Anzahl vonhits, misses und von Worten, die uber den Bus mit dem Speicher aus-getauscht werden. Erklaren Sie Ihre Ergebnisse. In welchen Situationenkonnen vergleichbare Zugriffsmuster entstehen? Was passiert, wenn Sie denshared cache als 2-assoziativen shared cache mit 2-Wort-Blocken auslegen?

(1+1+1+1+1 Pkt)

5. Andreas Stiller: Speicherfacher – LRDIMMS in XEON-E5-Romley-Platt- Protokoll10./11. Woche,22./29.5.13

form; c’t 11/2012 S.152-154 vergleichtwelche Systeme mit welchem Speicher-Ausbau? (1/2 Pkt)mit welchen Typen inwiefern unterschiedlicher Speicher-Chips? (1/2 Pkt)anhand welcher Benchmarks? (1/2 Pkt)Was laßt das Amdahl’sche Gesetz erwarten? was nicht? (3 Pkt)Inwiefern spiegeln die Benchmark-Ergebnisse die Amdahl-Implikationen wi-der? inwiefern nicht? (1 Pkt)

6. Let ci denote cities with map coordinates (xi, yi) for i = 0, 1, 2, . . . , n. Let Protokoll12.6.13t = (co, c1, . . . , cn, co) be a tour of the cities which starts at co, proceeds to

c1, then c2 and so on back to co. Can the calculation of the length of thetour be done in parallel? Make a DAG of this calculation. (3 Pkt)Berechne unter vereinfachenden Annahmen und fur eine geeignete Anzahlp von PEs Beschleunigungsfaktor β(p) und Effizienz E(p) = β(p)

p. (2 Pkt)

(Summe 32 Punkte)

Page 40: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 40

Losungen zurKlausur

Rechner-Strukturen 1.7.13

1. Andreas Stiller: Der Rechenkunstler – Mikroarchitektur und Instruktions-satz der neuen vierten Core-Generation Haswell ; c’t 14/2013 S.114-119 be-schreibt, wie Intel die Leistung der Haswell-Prozessoren steigert. Beschrei-ben Sie konkret, welche Maßnahmen zum Einsatz kommen und bewertenSie ihre Wirksamkeit. (je 1/4 Pkt)

Mehr von allem:• Bessere Sprungvorhersage• großere Instruktion Queue• großere Decoded Instruktion Queue• großeres physical register file• großerer Reorder Buffer (ROB)• großerer Reservation Station• zusatzliche Ports zu weiteren functional units: Store Address Unit, MMX-ALU&Branch Unit, Mul Unit und 2 × FMA Unit.• zusatzlicher Memory Order Buffer (MOB) entspricht einem 0th level cache• breitere Anbindung an die data caches• L3 cache mit geringerer Latenz• schnellere Speicher-Anbindung• bessere I- und D-TLBs

Zusatzliche Instruktionen in AVX2 (SIMD), BMI (Bit-Manipulation), FMA(fused multiply and add) kommen nur zur Anwendung, wenn die Compilerdiese Instruktionen auch verwenden!

Zusatzliche features wie transactional memeory mit wahlweise HLE oderRTM werden nur bei Gebrauch wirksam, eben dann, wenn threads oderProzesse beim Zugriff auf gemeinsame Daten zu synchronisieren sind.

verbesserte Energie-Effizient (gezielter Einsatz unterschiedlicher Transistor-Typen, Fully Integrated Voltage Regulator, FIVR)

2. Was sagt der Umstand uber den ARM-Prozessor und seinen Befehlssatzaus, wenn die ARM-ISA10 beispielsweise Varianten der InstruktionAdd<cond><S> Rd, Rn, Rm OP #; if cond Rd = Rn+OP(Rm) im Format

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00

cond 0 0 1 0 0 0 0 S Rn Rd rot imd immediate8cond 0 0 0 0 0 0 0 S Rn Rd shift imd shift 0 Rmcond 0 0 0 0 0 0 0 S Rn Rd Rs 0 shift 1 Rm

enthalt? Dabei ist cond eine Maske fur die bits Negative, Zero, Carry, oVer-flow im processor status word. Fast alle Instruktionen sind i.d.S. bedingt:if [NZCV]&cond execute instruction else nop; Das S-bit entscheidet,ob die Instruktion NZCV im processor status word verandert oder nicht.

10 ARM ISA Quick Reference Card http://infocenter.arm.com/help/topic/com.arm.doc.qrc0001l/QRC0001 UAL.pdf

Page 41: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 41

Das I-bit11 in instruction[25] entscheidet, ob instruction[11 − 0] als zu ro-tierendes Immediate interpretiert wird oder nicht. Falls nicht, kann dasQuell-Register Rm oder das Immediate vor der Addition funf Typen vonshifts (LSL, LSR, ASR, ROR und RRX) mit shift amount als immediateoder im Register Rs unterworfen werden. In welchen Situationen sind dieseVarianten vorteilhaft? Was spricht fur RISC? was fur CISC? (je 1/2 Pkt)

Das Format laßt vermuten:

• Es gibt (mindestens) 16 (Allzweck-?) Register, weil die Felder fur Ar-gumente 4bit breit sind. Da der Name ADD fur Integer-Addition spricht,handelt es sich dabei hochstwahrscheinlich um Integer-Register.

• Vermutlich gibt es eine ganze Klasse von arithmetisch-logischen In-struktionen wie ADD mit drei Argumenten in Registern.

• Vermutlich sind alle arithmetisch-logischen Instruktionen bedingt. Manspart also viel Verzweigungsoverhead.

• Die Instruktion ADD ist eher keine RISC Instruktion: sie kann einerseitsbedingt sein; ihr zweites Quell-Argument kann ein immediate sein, dasgeshifted werden kann und so ein 32bit Argument liefert. Dabei istshift amount offensichtlich entweder selbst ein immediate oder Inhaltdes Registers Rs.

• OpCodes sind vermutlich maximal 7bit breit.

• Schon die Varianten von ADD erfordern drei verschiedene Formate.

• Vermutlich sind alle Instruktionen 32bit lang.

Integer-Additionen konnen teilweise Integer-Multiplikationen mit Zweier-Potenzen ersetzen. Z.B. erledigt ADD Rd, Rn, shift(Rn,3) eine Multipli-kation mit 9: Rd = 9*Rn. Insgesamt kann man daruber streiten, ob dieARM-Architektur ihrem Namen alle Ehre macht und tatsachlich eher ei-ne RISC-Architektur (Load/Store-Architektur, 3-Operanden-Befehle) odereine eher CISC-Architektur (conditional execution aufgrund von conditi-on codes, 14 Formate, mehrfaches load/store, mehrere Adressierungsarten)darstellt.

3. Erweitern Sie die pipeline Implementierung des MIPS R2000 um die con-ditional swap Instruktion cswap Rs, Rt, Rd; if Rs then swap(Rt,Rd).Spezifizieren Sie das Befehlsformat. Spezifizieren Sie in einer Tabelle, wasin jeder pipeline-Stufe passieren soll. Nehmen Sie in Fig. 6.30 aus COD2edie ggfls. erforderlichen Anderungen des Daten-Pfades und der Steuerungvor. Spezifizieren Sie alle Signale fur jede Stufe der Befehlsabarbeitung.Stellen Sie sicher, daß Ihre Erweiterung nicht die Abarbeitung der schon in

11 If the I bit is 0 and both bit 7 and bit 4 of shifter operand are 1 the instruction is notADD. Instead, see Extending the Instruction Set on page A3-27 to determine which instructionit is. http://morrow.ece.wisc.edu/ECE353/arm reference/ddi0100e arm arm.pdf

Page 42: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 42

Fig. 6.30 implementierten Instruktionen verandert. Identifizieren Sie ggfls.structure hazards. (8 Pkt)

2 fur Tabelle, 2 fur Datenpfad, 3 fur Signale, 1 fur hazard

Das R-Format birgt das Problem, daß die unveranderte main control nurden OPcode 0 sieht und daher Signale nur fur arithmetisch-logische Instruk-tionen codiert im function Feld generiert. Alles davon Abweichende mußtedann von der ALU-control ubernommen werden, will man nicht die Inputsin die main control um das function Feld erweitern.Wenn man einen neuen opCode spendiert, entfallen diese Probleme. Wir un-terstellen also das (neue) Format opC Rs Rt Rd ∗ fnc . Im func-tion Feld kann auch etwa eine der sechs Boole’schen Bedingungen (wie beiden set-Instruktionen) codiert werden: eq, ne, le,lt, ge, gt im Vergleich zur0. Die Instruktion wird flexibler, ohne weitere opCode’s zu kosten.

cycle action

IF IR = Mem[PC]; PC += 4;

ID

ID/EX.A = Register(IR[25-21]);ID/EX.B = Register(IR[20-16]);ID/EX.C = Register(IR[15-11]);ALUOut = PC+4+signextend(IR[15-0]); // prophylaktisch Verzweigungsziel berechnen

NOPflag = (Rt==Rd);EX cflag = (Rs op 0)

Mem if cflag Rt := CWB if cflag Rd := B

Diese Implementierung weist ein structure hazard auf: Angenommen in derpipeline werden die eingetragenen Instruktionen ausgefuhrt.

cycle 1 2 3 4 5 6 7 8 9R-type IF ID EX Mem WBcswap IF ID EX Mem WB

* IF ID EX Mem WBcswap IF ID EX Mem WB

* IF ID EX Mem WB

Dann konnen beispielsweise im cycle 5 (von oben nach unten) mit 1 × write,1 × write, –, 3 × read, – ein register read und ein register write pro Zyklusmehr auftreten als bisher. Die Register-Datei muß auch dafur ausgelegt sein.

Im Folgenden sind die Signale in IF und ID wie gehabt; alle nicht erwahntenSignale sind 0. Die Register-Inhalte von Rt und Rd sind durch die pipeline-Register fur Mem und WB durchzureichen.In ID liegt IF/ID.IR[15-11] an neuem Port RegisterRead3 an und derentsprechende dritte Register-Inhalt wird aus ReadData3 ausgelesen und inID/EX.ReadData3 geschrieben. Die main control erzeugt das Signal cswap,das – durch die pipeline-Register durchgereicht – in Mem und in WB zurVerfugung steht.In EX erzeut die ALU ein geeignetes condition flag cflag = (Rs op 0), das

Page 43: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 43

– durch die beiden pipeline-Register durchgereicht – in Mem und WB zurVerfugung steht.Damit in Mem der Inhalt von EX/Mem.ReadData3 in Rt geschrieben werdenkann, ist ein neuer Datenpfad von EX/Mem.ReadData3 zu einem neuen Mul-tiplexer cswapMem vor writeData der Register-Datei zu installieren, dessenSteuersignal cswapMem der Ausgang EX/Mem.cswap&EX/Mem.cflag einesneuen AND-Gatters ist. cswapMem ist aktiv genau dann, wenn uberhaupteine cswap-Instruktion verarbeitet wird und wenn deren Bedingung erfulltist. cswapMem steuert weiter einen neuen Multiplexer vor WriteRegister,der das Zielregister EX/Mem.Rt an WriteRegister der Register-Datei an-legt. Zuletzt ermoglicht ein neues OR-Gatter vor RegWrite, das das vorhan-denen Signal RegWrite mit cswapMem verknupft, daß in die Register-Dateigeschrieben wird.Damit in WB der Inhalt von Mem/WB.ReadData2 in Rd geschrieben wer-den kann, verfahrt man analaog zur Mem-Phase: neuer Datenpfad vonMem/WB.ReadData2 zu neuem Multiplexer cswapWB vor writeData der Register-Datei mit cswapWB = Mem/WB.cswap&Mem/WB.cflag; neuen von cswapWB

gesteuerter Multiplexer vor WriteRegister fur das Zielregister Mem/WB.Rd;das OR-Gatter vor RegWrite um den Eingang cswapWB erweitern.

4. Zwei Kerne Core0 und Core1 eines Multi-Core Prozessors greifen entwederuber lokale 2-assoziative caches mit vier 1-Wort-Blocken oder uber einengemeinsamen 2-assoziativen shared cache mit acht 1-Wort-Blocken auf denSpeicher zu. Die Verdrangungsstrategie sei in beiden Fallen LRU.Core0 greift auf die Speicher-Adressen 16,17,25,36,27,16,17,26,37,28,16,17lesend zu.Core1 greift auf die Speicher-Adressen 48,49,57,68,59,48,49,58,69,60,48,49lesend zu.Im Fall des shared caches wechseln sich lesende Zugriffe der beiden Kerneab. Core0 beginnt. Alle caches sind initial leer.

Bestimmen Sie zum einen die cache Belegungen der beiden lokalen cachesund zum anderen diejenige des shared caches. Vergleichen Sie Anzahl vonhits, misses und von Worten, die uber den Bus mit dem Speicher aus-getauscht werden. Erklaren Sie Ihre Ergebnisse. In welchen Situationenkonnen vergleichbare Zugriffsmuster entstehen? Was passiert, wenn Sie denshared cache als 2-assoziativen shared cache mit 2-Wort-Blocken auslegen?

(1+1+1+1+1 Pkt)

Page 44: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 44

Core0 local cache16 17 25 36 27 16 17 26 37 28 16 17

set0 16 16 2836 26 16

set1 17 27 3725 17 17

12† m m m m m t m m m m m tAdresse mod 2 2 read hits bei 10 Wortern

Core1 local cache48 49 57 68 59 48 49 58 69 60 48 49

set0 48 48 6068 58 48

set1 49 59 6957 49 49

12† m m m m m t m m m m m tAdresse mod 2 2 read hits bei 10 Wortern

Insgesamt treten 2 read hits und 22 misses auf. Insgesamt sind 22 Worteruber den Bus zu transportieren.

Core0&Core1 shared cache mit vier sets a zwei 1-Wort-Blocken16 48 17 49 25 57 36 68 27 59 16 48

set0 16 36 1648 68 48

set1 17 2549 57

set2

set3 2759

12† m m m m m m m m m m m m

17 49 26 58 37 69 28 60 16 48 17 49

28 16 set060 48

17 37 17 set149 69 49

26 set258

set3

m m m m m m m m m m m mAdresse mod 4 0 read hits bei 24 Wortern

Der verhaltnismaßig kleine shared cache schneidet bei diesem verhaltnisma-ßig kurzem trace schlechter ab, weil die Folgen von memory-Referenzen vonCore0 und Core1 einen festen Abstand von 32 haben, der dazu fuhrt, daßdie Adressen im shared Cache immer in dasselbe set fallen. Die Eintrage

12† m=miss, s=hit due to spatial locality, t=hit due to temporal locality

Page 45: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 45

im cache verdrangen sich so gegenseitig.Denkbar ist ein solches Zugriffsmuster, wenn ein Prozess zwei threads ge-neriert, die parallel dasselbe auf verschiedenen Daten machen.

Core0&Core1 shared cache mit zwei sets a zwei 2-Wort-Blocken16 48 17 49 25 57 36 68 27 59 16 48

set0(16,17) (16,17) (24,25) (36,37) (16,17)(48,49) (48,49) (56,57) (68,69) (48,49)

set1 (26,27)(58,59)

12† m m s s m m m m m m m m

17 49 26 58 37 69 28 60 16 48 17 49(16,17) (36,37) (28,29) (16,17) (16,17) set0

(48,49) (68,69) (60,61) (48,49) (48,49)(26,27) set1

(58,59)s s s s m m m m m m s s

Adresse/2 mod 2 8 read hits bei 32 Wortern

Offensichtlich lohnt es sich gerade hier, auch raumliche Lokalitat auszunut-zen, da alle read hits aufgrund raumlicher Lokalitat auftreten.

5. Andreas Stiller: Speicherfacher – LRDIMMS in XEON-E5-Romley-Platt-form; c’t 11/2012 S.152-154 vergleichtwelche Systeme mit welchem Speicher-Ausbau? (1/2 Pkt)mit welchen Typen inwiefern unterschiedlicher Speicher-Chips? (1/2 Pkt)anhand welcher Benchmarks? (1/2 Pkt)Was laßt das Amdahl’sche Gesetz erwarten? was nicht? (3 Pkt)Inwiefern spiegeln die Benchmark-Ergebnisse Amdahl wider? inwiefern nicht?

(1 Pkt)

Andreas Stiller vergleicht ein• XEON-E5-Romley-System mit 128GB R(D)IMM13 bestehend aus mit1.5V zu betreibenden eher teueren DDR3-1600 Modulen• mit einem XEON-E5-Romley-System mit 256GB LRDIMM14 bestehendaus mit 1.35V zu betreibenden vergleichsweise billigen DDR3-1333 Modu-len. LRDIMMs sind von der CPU durch den Memory Buffer abgekoppelt:geringere load, mehr ranks, etc. bei kaum hoherer Verlustleistung, vgl. An-dreas Stiller’s Ausblick.Er verwendet die SPECfp CPU2006 Benchmark suite, einen stream bench-mark, Cinebench, Linpack und ycruncher (Berechnung von π).

Amdahl liefert β = (1−α)Trest+α(γ128TRDIMM+(1−γ128)THDD)(1−α)Trest+α(γ256TLRDIMM+(1−γ128)THDD)

, wo α den Anteilder Speicher-Zugriffe, γK der Anteil der Speicher-Zugriffe, die der Speichermit Speicher-Kapazitat K bedient, Tmem−Typ die durchschnittliche Zeit furSpeicherzugriffe auf den betreffenden Speicher-Typ und Trest die durch-schnittliche Zeit fur alle ubrigen ausgefuhrten Instruktionen bezeichne. Of-fensichtlich hangt α nur vom benchmark selbst ab und ist durch Auszahlen

13 Registered Double/Dual Inline Memory Module (Register statt Buffer wie in DIMMs)14 Load Reduced Double/Dual Inline Memory Module treiben zusatzlich zu den Adress- und

Steuersignalen auch die Daten uber den Memory Buffer.

Page 46: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 46

zu ermitteln. Weiter ist γ128 ≤ γ256, wahrend TRDIMM

TLRDIMM= 1600

1333gilt. Ge-

schwindigkeit der Speicherzugriffe und Speichergroße gehen gegenlaufig inden Beschleunigungsfaktor β ein. Ohne Kenntnis von α, γ128, γ256, TRDIMM ,TLRDIMM und Trest ist β per Amdahl also nicht zu bestimmen.Wenn das RDIMM-System nicht swappen muß, ist es i.A. etwas leistungsfahi-ger als das LRDIMM-System. Das ist kompatibel mit den um 20% schnelle-ren Speicherzugriffen. Allerdings gibt es auch inkompatible Ergebnisse bei416.gamess, 444.namd, 453.povray und Cinebench 11.5, die ohne Kenntnisder Spezifika des jeweiligen benchmarks nicht bewertet werden konnen, weilzu viele andere Einflusse wie Anzahl threads, memory buffer also caching,Speicherverwaltung des BSs (Andreas Stiller macht keine Aussage zu Un-terschieden bei Windows Server 2008R2 Datacenter vs Red Hat Enterprise6.2 ) u.a. zu berucksichtigen sind.

6. Let ci denote cities with map coordinates (xi, yi) for i = 0, 1, 2, . . . , n. Lett = (co, c1, . . . , cn, co) be a tour of the cities which starts at co, proceeds toc1, then c2 and so on back to co. Can the calculation of the length of thetour be done in parallel? Make a DAG of this calculation. (3 Pkt)Berechne unter vereinfachenden Annahmen und fur eine geeignete Anzahlp von PEs Beschleunigungsfaktor β(p) und Effizienz E(p) = β(p)

p. (2 Pkt)

2 fur n ist Zweier-Potenz, 3 fur n ∈ NWegen der Datenunabhangigkeit konnen n + 1 PEs die Abstande di =√

∆x2i + ∆y2

i mit ∆xi = xi − xi−1 und ∆yi = yi − yi−1 fur i = 0, 1, 2, . . . , n(wobei ∆xo = xn − xo und ∆yo = yn − yo) parallel berechnen.Wenn der Kommunikationsoverhead klein genug ist, konnen jeweils Paar-chen von PEs im ersten Schritt ∆xi = xi − xi−1 bzw. ∆yi = yi − yi−1

und im zweiten Schritt ∆x2i bzw. ∆y2

i berechnen. Erst im dritten Schrittfallt Kommunikationsoverhead an, wenn ein PE eines jeden Paarchens denSummanden des anderen PEs empfangen muß. Im vierten Schritt berechnetdann jedes zweite PE die Quadratwurzel.Darauf folgend werden in einem binaren Baum der Hohe dld(n + 1)e dien+1 Distanzen aufsummiert. In der folgenden Darstellung sind der besserenNachvollziehbarkeit halber die Knoten meist mit den jeweiligen Ergebnissen(anstelle der offensichtlichen Operationen) etikettiert.

Page 47: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 47

xo yo x1 y1 x2 y2 x3 y3 · · · xn yn

∆xo ∆yo ∆x1 ∆y1 ∆x2 ∆y2 ∆x3 ∆y3 · · · ∆xn ∆yn

∆x2o ∆y2o ∆x21 ∆y21 ∆x22 ∆y22 ∆x23 ∆y23 · · · ∆x2n ∆y2n

+ + + + +· · ·

=√

+ =√

+ =√

+ =√

+ =√

+do d1 d2 d3 · · · dn

do+d1 d2+d3

do+ ...+d3

...

Unter einfachsten Annahmen berechnet jedes PEs in Tarith = 1 ZE je ei-ne Summe, ein Quadrat oder eine Quadrat-Wurzel. Ein Mono-Prozessorbraucht dann T (1) = 2(2n+ 2) + 2(n+ 1) + n = 6(n+ 1) + n = 7n+ 6 ZE.Der Kommunikationsoverhead betrage jeweils Tcom ZE.Dann gilt T (2n+2) = 4+2Tcom+(1+Tcom)dld(n+1)e ZE und β(2n+2) =

7n+64+2Tcom+(1+Tcom)dld(n+1)e sowie E(2n+2) = 1

2n+27n+6

4+2Tcom+(1+Tcom)dld(n+1)e , bei-spielsweise also

n+ 1 4 8 16 32 . . .β(2n+ 2) 27

6+4Tcom55

7+5Tcom111

8+6Tcom223

9+7Tcom. . .

β(2n+ 2) 2.7 ≈ 4.58 ≈ 7.93 ≈ 13.94 . . .

fur ausgewahlte n, wahrend in der letzten Zeile Tcom = 1 ZE unterstellt ist.

(Summe 32 Punkte)

Page 48: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 48

6 RST-Klausur SS12w

Wiederholer-Klausur Rechner-Strukturen 8.10.12

Name, Vorname Matrikel

Hilfsmittel sind nicht zugelassen! und aus gegebenem Anlaß:weniger ist mehr! – so konkret wie moglich statt weitschweifiger, wolkiger Poesie

klare, knappe Aussagen mit stimmigen, Stichwort-artigen Begrundungen!Es wird nicht erwartet, daß alle Aufgaben bearbeitet werden!

Protokoll.htm17./19.4.12

1. Laut c’t: was zeichnet den BAPCo SYSmark benchmark aus? Warum wer-den Aktualisierungen solcher benchmarks, warum wird gerade der SYS-mark 2012 notig? Welche Eigenschaft des SYSmark 2012 stellt AMD inFrage? zu Recht? (1+1+1 Pkt)

Protokoll.htm8./10.5.12

2. Belegen Sie anhand konkreter Beispiele, daß 80x86-Prozessoren (auch) eineAkkumulator-Architektur aufweisen. (je 1 Pkt)

3. Die Intel- bzw. ARM-Ingenieure mussen einen Grund gehabt haben, im x86- Protokoll.htm17./19.4.12,8./10.5.12

bzw. ARM-Befehlssatz swap-Instruktionen wie XCHG bzw. SWP vorzusehen,die zwei Worter vertauschen. Soll also der MIPS/DLX-Befehlssatz um dieInstruktion swap Rs,Rt erweitert werden, die die Inhalte der Register Rs

und Rt vertauscht? in welchem Format? Erlautern Sie anhand konkreter,einschlagiger Programm-Beispiele den Nutzen von swap und vergleichen Sieden Aufwand in multi cycle und pipeline implementation. (3Pkt)

je 1 fur Format, Nutzen, Aufwand MCI bzw. pipeline

4. Erweitern Sie die multi cycle Implementierung des MIPS R2000 um die ab 5. Woche

swap-Instruktion der vorigen Aufgabe. Spezifizieren Sie das Befehlsformat.Spezifizieren Sie in einer Tabelle, was in jedem Zyklus der Befehlsabarbei-tung passiert. Nehmen Sie in Fig. 5.33 aus COD2e die ggfls. erforderlichenAnderungen des Daten-Pfades vor. Spezifizieren Sie alle Signale fur jedenZyklus der Befehlsabarbeitung. (6 Pkt)

2 fur Tabelle, 1 fur Datenpfad, 3 fur Signale10. Woche,21./28.6.12

5. Skizzieren Sie die Implementierung des direct mapped I-caches mit acht 1-Wort-Blocken (mit welcher Brutto-Kapazitat?) und verschalten Sie diesenI-cache mit dem in fig. 6.30 von COD2e dargestellten pipeline Prozessor.Welche Eigenschaften eines direct mapped I-caches machen die Implemen-tierung so einfach? (4 Pkt)

Page 49: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 49

6. page tablepage no present frame no

0 1 31 1 22 1 03 0 –

where present = “page is inphysical memory“.

Using the page table shown opposite,translate virtual address 2050 into aphysical address, and translate physi-cal address 25 into a virtual address.Address length is 16 bits, page sizeis 2048 words. Physical memory hasfour frames, i.e. pages in physical me-mory. (2 Pkt)

11. Woche,19./21.6.12

7. Die superskalare Version des MIPS R2000 verfugt uber zwei pipelines: eine Protokoll5./7./14.6.12arithmetisch-logische und eine load/store-pipeline, vgl. fig. 6.58 aus COD2e.

Im Quicksort-Algorithmus kommen u.a. Programm-Blocke der Form

do i++; while (a[i]<v);

vor. Dabei ist a ein Feld von Integer-Werten und v einer dieser Integer-Werte. Ubersetzen Sie die Programm-Zeile in (optimalen) Assembler-Codefur den pipeline- und den superskalaren Prozessor unter Berucksichtigungvon load stalls und einem branch delay slot. Verwenden Sie ausschließ-lich ADD, ADDI, SUB, SLT, BEQZ, BNEZ, SLL, SRL bzw. SRA sowie LW undSW. Unterstellen Sie forwarding. Berechnen Sie den Beschleunigungsfaktorβpiperline→superscalar. (2+3+1 Pkt)

ADD BEQ LW SW

IF IRa=Mem[PC]; IRm=Mem[PC+4]; PC+=8;

ID Aa=Reg[IRa[25-21]] Am=Reg[IRm[25-21]]

Ba=Reg[IRa[20-16]] Bm=Reg[IRm[20-16]]

target=PC+SignExt(IRa[15-0])

EX ALUouta IF (Aa==Ba) ALUoutm=Am+SignExt(IRm[15-0])

= Aa op Ba PC = target

MEM MDR=Mem[ALUoutm] Mem[ALUoutm]=Bm

WB Reg[IRa[15-11]] Reg[IRm[20-16]]

= ALUouta = MDRRSTslide.pdfS.106ff

Fur die Bearbeitung der ADD/BEQ- bzw. der LW/SW-Instruktionen notige, ansonsten aber gleich-

namige Register sind hier durch die Suffixe a bzw. m voneinander unterschieden.

(Summe 30 Punkte)

Page 50: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 50

Losungen zurWiederholer-Klausur

Rechner-Strukturen 8.10.12

1. Laut c’t: was zeichnet den BAPCo SYSmark benchmark aus? Warum wer-den Aktualisierungen solcher benchmarks, warum wird gerade der SYS-mark 2012 notig? Welche Eigenschaft des SYSmark 2012 stellt AMD inFrage? zu Recht? (1+1+1 Pkt)

i. SYSmark mißt den Gebrauchswert von (Buro-) Computern, also von PCsfur SOHO-Anwendungen, indem es die Leistung relativ zu einem Referenz-System anhand der Leistung einschlagiger Programme in den Sparten officeproductivity (z.B. MS Office, WinZip, Adobe), media creation (z.B. Premie-re), web development (z.B. Dreamweaver, Firefox), data/financial analysis(z.B. MS Excel), 3D modeling (z.B. 3D Studio Max) und system manage-ment (z.B. WinZip) bewertet.

ii. Benchmarks mussen aktualisiert werden, um der technischen EntwicklungRechnung zu tragen, insbesondere Mehr-Kern-CPUs und onboard Graphik.

iii. AMD kritisiert die eingeschrankte Maschinen-Unabhangigkeit des SYSmark2012, der angeblich Intel-Prozessoren bevorteilt – m.E. zu Recht, wenndie besonders hoch gewichtete Sparte data/financial analysis des SYSmark2012 laut c’t auf bestimmten AMD-Rechnern nicht lauffahig ist, vgl. bei- S.127 Media crea-

tionspielsweise auch http://blogs.amd.com/nigel-dessau/2011/06/21/1006. Dieser blog-Eintrag vom 21.6.2011 war bis Ende Juni 2012 verfugbar. Er ist nichtlanger verfugbar (14.10.2012), siehe stattdessen www.extremetech.com/computing/

87438-amd-damns-sysmark-2012-resigns-from-bapco

M.E. hat dahinter AMD’s Kritik an den Wichtungen der performance ein-zelner Programme im SYSmark zuruckzutreten, uber die man immer treff-lich streiten kann.

2. Belegen Sie anhand konkreter Beispiele, daß 80x86-Prozessoren (auch) eineAkkumulator-Architektur aufweisen. (je 1 Pkt)

Wie in Protokoll.htm ausgefuhrt, verwenden beispielsweise die Instruk-tionen mul bzw. div und imul bzw. idiv immer den Akkumulator, also jenach Bittigkeit AL, AX oder EAX, ohne daß dieser explizit zu benennen ware:der Akkumulator ist implizit Faktor bzw. Dividend.Etwa www.swansontec.com/sregisters.html listet weitere Beispiele: For ex-ample, all nine basic operations (ADD, ADC, AND, CMP, OR, SBB, SUB, TEST,and XOR) have special one-byte opcodes for operations between the accumula-tor and a constant. Specialized operations, such as multiplication, division,sign extension, and BCD correction can only occur in the accumulator.

3. Die Intel- bzw. ARM-Ingenieure mussen einen Grund gehabt haben, im x86-bzw. ARM-Befehlssatz swap-Instruktionen wie XCHG bzw. SWP vorzusehen,die zwei Worter vertauschen. Soll also der MIPS/DLX-Befehlssatz um dieInstruktion swap Rs,Rt erweitert werden, die die Inhalte der Register Rs

Page 51: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 51

und Rt vertauscht? in welchem Format? Erlautern Sie anhand konkreterProgramm-Beispiele den Nutzen von swap und vergleichen Sie den Aufwandin multi cycle und pipeline implementation. (3Pkt)

je 1 fur Format, Nutzen, Aufwand MCI bzw. pipeline

Fur das R-Format spricht: es gibt noch freie Eintrage im Feld funct undman spart so einen neuen opCode.Gegen das R-Format spricht allerdings, daß dann die ALU die Vertauschungdurchfuhren mußte, die aber unabhangig von der main control nicht ohneWeiteres zweimaliges Schreiben von Registern auslosen kann. Bliebe nur diebittere Pille, das func-Feld auch zum Input der main control zu machen:das erhoht die Anzahl der Zustande der main control erheblich und machtdamit die Implementierung aufwandig.Bleibt also nur das I-Format, also etwa 40 Rs Rt * .

Nutzlich ist swap fur das Vertauschen zweier Register-Inhalte. Wenn alleElemente eines zu sortierenden Feldes in Registern vorliegen, kommt swap

etwa in QuickSort sehr gelegen. Inhalte von Speicher-Zellen tauscht

; Rb halt die base address von Feld array

add Ra1, Rb, Ri1 ; Adresse von array[Ri1]

add Ra1, Rb, Ri2 ; Adresse von array[Ri2]

lw R1, 0(Ra1) ; R1 = Mem[Ra1]

lw R2, 0(Ra2) ; R2 = Mem[Ra2]

sw 0(Ra2),R1 ; Mem[Ra2] = R1 - - - diese Reihenfolge

sw 0(Ra1),R2 ; Mem[Ra1] = R2 - vermeidet load stalls

auch ohne swap. Besser geht es ubrigens mit XOR-swap, s.a. http://en.wikipedia.org/wiki/XOR_swap_algorithm, der zwei Register-Inhalte mitdrei XOR-Instruktionen tauscht, ohne ein temporares Register zu gebrau-chen.In der multi cycle implementation wird nach ID in WB1 Rs=B und in WB2Rt=A geschrieben. swap braucht also vier cycles und einen erweiterten Mul-tiplexer writeRegister, der das Feld Rs als Ziel-Register auszuwahlen er-laubt. Das funktioniert auch in der pipeline implementation etwa in Mem

und WB. Allerdings entsteht jetzt ein structure hazard, weil in einem pipeli-ne cycle zwei Schreibvorgange in die Register-Datei abzuwickeln sind: manbraucht also neben writeRegister und writeData zumindest ein weiteresPort-Paar writeRegister1 und writeData1.

4. Erweitern Sie die multi cycle Implementierung des MIPS R2000 um dieswap-Instruktion der vorigen Aufgabe. Spezifizieren Sie das Befehlsformat.Spezifizieren Sie in einer Tabelle, was in jedem Zyklus der Befehlsabarbei-tung passiert. Nehmen Sie in Fig. 5.33 aus COD2e die ggfls. erforderlichenAnderungen des Daten-Pfades vor. Spezifizieren Sie alle Signale fur jedenZyklus der Befehlsabarbeitung. (6 Pkt)

2 fur Tabelle, 1 fur Datenpfad, 3 fur Signale

Page 52: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 52

swap hat das Format 40 Rs Rt * , vgl. Nr. 3. Ohne großeKlimmzuge konnte die main control zusammen mit ALU control im R-Format nicht zwei WB-Phasen ansteuern.

cycle action

IF IR = Mem[PC]; PC += 4;

IDA = Register(IR[25-21]); // Rs

B = Register(IR[20-16]); // Rt // Der PC wurde schon in IF incrementiert:

ALUOut = PC+signextend(IR[15-0]); // prophylaktisch Verzweigungsziel berechnen

WB1 Rs := BWB2 Rt := A

Im Folgenden sind die Signale in IF und ID wie gehabt; alle nicht erwahntenSignale sind 0.

Damit in WB1 der Inhalt von B in Rs geschrieben werden kann, muß einneuer Datenpfad von B zum Multiplexer MemtoReg installiert und dessenSteuersignal MemtoReg auf zwei bit verbreitert werden. Zugleich muß analogdazu ein neuer Datenpfad von IR[25-21] zum Multiplexer RegDst instal-liert und dessen Steuersignal RegDst auf zwei bit verbreitert werden. DieSignale in WB1 sind dann RegDst = 2 = 10(2), MemtoReg = 2 = 10(2) sowieRegWrite=1.Damit in WB2 der Inhalt von A in Rt geschrieben werden kann, muß ein neuerDatenpfad von A zum Multiplexer MemtoReg installiert werden. Die Signalein WB2 sind RegDst = 0 = 00(2), MemtoReg = 3 = 11(2) sowie RegWrite=1.

5. Skizzieren Sie die Implementierung des direct mapped I-caches mit acht 1- 10. Woche,21./28.6.12Wort-Blocken (mit welcher Brutto-Kapazitat?) und verschalten Sie diesen

I-cache mit dem in fig. 6.30 von COD2e dargestellten pipeline Prozessor.Welche Eigenschaften eines direct mapped I-caches machen die Implemen-tierung so einfach? (4 Pkt)

1-assoziative caches kennen keine Verdrangungsstrategie. Insofern muß mansich nicht darum kummern, LRU, Pseudo-LRU o.a. zu implementieren. EinI-cache ist i.a.R. ein cache, aus dem nur gelesen wird. Man muß man sichalso nicht darum kummern, Schreibstrategien zu implementieren.

Page 53: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 53

valid Ist-tag data

0

1

6

7

PC

Soll-tag indexBO BO = byte offset

3

=

27

32

addressmemread

instruction memory

data

1

0

IR

Die Brutto-Kapazitat des I-caches ist 8(1 + 27 + 32) = 8 · 60bit = 60byte.

6. page tablepage no present frame no

0 1 31 1 22 1 03 0 –

where present = “page is inphysical memory“.

Using the page table shown opposite,translate virtual address 2050 into aphysical address, and translate physi-cal address 25 into a virtual address.Address length is 16 bits, page sizeis 2048 words. Physical memory hasfour frames, i.e. pages in physical me-mory. (2 Pkt)

In der (fremden) Aufgabenstellung ist die Seiten-Große in Worten (mitwievielen Bytes auch immer) angegeben. Daher ist davon auszugehen, daßes sich bei den Adressen auch um Wort-Adressen handelt.

2050(10) = 2048(10) + 2(10) = 1|000 0000 0010(2), d.h. virtual page no = 1und (virtual) page offset 000 0000 0010(2) = 2(10). Die zur virtual page no 1gehorende physical page ist laut Seitentabelle die (physical) page no 2, sodaß sich 10|000 0000 0010(2) = 4098(10) als physikalische Adresse ergibt.Die physikalische Adresse 25(10) = 0|000 0001 1001(2) gehort in den frameno 0; dieser ist das Abbild der virtuellen Seite mit (virtual) page no 2 imvirtuellen Speicher. Die zugehorige virtuelle Adresse ist also 4096 + 25 =4121(10) = 10|000 0001 1001(2).

7. Die superskalare Version des MIPS R2000 verfugt uber zwei pipelines: einearithmetisch-logische und eine load/store-pipeline, vgl. fig. 6.58 aus COD2e.Im Quicksort-Algorithmus kommen u.a. Programm-Blocke der Form

Page 54: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 54

do i++; while (a[i]<v);

vor. Dabei ist a ein Feld von Integer-Werten und v einer dieser Integer-Werte. Ubersetzen Sie die Programm-Zeile in (optimalen) Assembler-Codefur den pipeline- und den superskalaren Prozessor unter Berucksichtigungvon load stalls und einem branch delay slot. Verwenden Sie ausschließ-lich ADD, ADDI, SUB, SLT, BEQZ, BNEZ, SLL, SRL bzw. SRA sowie LW undSW. Unterstellen Sie forwarding. Berechnen Sie den Beschleunigungsfaktorβpiperline→superscalar. (2+3+1 Pkt)

Grundsatzlich enthalte Ra die Basis-Adresse des Feldes a, Rv den Wert v,Ri die Variable i und Re ein Element des Feldes a. Das Register Rb enthalteden Wert Boole’scher Ausdrucke. Das temporare Register Rp enthalte dieAdresse eines Feldelementes. Die Register Ra und Ri seien initialisiert.

loop: addi Ri,Ri,#1 ; Ri += 1

sll Rp,Ri,#2 ; Rp = 4*Ri

add Rp, Ri, Ra ; pointer

lw Re,0(Rp) ; Re=Mem[Ra+Ri]

nop ; load stall

slt Rb,Re,Rv ; Rb=(Re<Rv)

bnez Rb,loop ; branch mit

nop ; delay slot

cont: ; weiter

sll Ri,Ri,#2 ; Ri *= 4

add Ri,Ri,Ra ; Ri += Ra

loop: addi Ri,Ri,#4 ; Ri += 4

lw Re,0(Ri) ; Re=Mem[Ri]

nop ; load stall

slt Rb,Re,Rv ; Rb=(Re<Rv)

bnez Rb,loop ; branch mit

nop ; delay slot

cont: sub Ri,Ri,Ra ; update

sra Ri,Ri,#2 ; i in Ri

Um die Adress-Rechnung zu vermeiden, ersetze Rp durch das modifizierteRi um den Preis geeigneter Transformationen. Den Schleifenrumpf abzuar-beiten braucht dann nur sechs statt acht Zyklen.

Reorganisation des Schleifenrumpfes erlaubt, load stalls einzusparen undden branch delay slot mit einer produktiven Instruktion zu fullen.

sll Ri,Ri,#2 ; Ri *= 4

add Ri,Ri,Ra ; add offset

lw Re, 4(Ri) ;

loop: addi Ri,Ri,#4 ; Ri += 4

slt Rb,Re,Rv ; Rb=(Re<Rv)

bnez Rb,loop ; branch mit

lw Re,4(Ri) ; delay slot

cont: sub Ri,Ri,Ra ; sub offset

sra Ri,Ri,#2 ; Ri /= 4

Die pipeline-Implementierung arbeitet den Schleifenrumpf in nur vier cyclesab – um den Preis eines etwas großeren overheads fur Initialisierung vor undAktualisierung der Variablen nach der Schleife.

Pro Durchlauf des Schleifenrumpfes muß die arithmetische pipeline der su-perskalaren Implementierung die drei Instruktionen slt, bnez und addi,die load/store pipeline dagegen nur genau ein lw abarbeiten.

Page 55: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 55

arith./log./branch load/store

add Ri,Ri,Ra ; nop ;

addi Ri,Ri,#4 ; lw Re,4(Ri) ;

nop ; nop ; no load stall

loop: slt Rb,Re,Rv ; nop ;

bnez Rb,loop ; lw Re,4(Ri) ;

addi Ri,Ri,#4 ; delay slot nop ; no load stall

cont: addi Ri,Ri,#-? ; update var- nop ;

sub Ri,Ri,Ra ; iable i in nop ;

sra Ri,Ri,#2 ; register Ri nop ;

(Man uberzeuge sich, daß die superskalare Implementierung nicht weiterbeschleunigt werden kann!)

Sei n die Anzahl der Schleifen-Durchlaufe. Fur die drei Versionen der pipeline-Implementierung ergeben sich folgende Beschleunigungsfaktoren:

1. βpiperline1→superscalar = 8n3+3n+3

n→∞−→ 83≈ 2.7

2. βpiperline2→superscalar = 3+6n+23+3n+3

n→∞−→ 2

3. βpiperline3→superscalar = 3+4n+23+3n+3

n→∞−→ 43≈ 1.3

Umso mehr die Effizienz der pipeline-Implementierung gesteigert wird, de-sto geringer fallt der Beschleunigungsfaktor aufgrund des Uberganges zurmultiskalaren Implementierung aus.

(Summe 30 Punkte)

Page 56: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 56

7 RST-Klausur SS11w

Wiederholer-Klausur Rechner-Strukturen 29.9.11

Name Matrikel

Hilfsmittel sind nicht zugelassen! und aus gegebenem Anlaß:weniger ist mehr! – statt weitschweifiger, wolkiger Poesie

klare, knappe Aussagen mit stimmigen, Stichwort-artigen Begrundungen!Es wird nicht erwartet, daß alle Aufgaben bearbeitet werden!

1. Laut c’t: was ist hyperthreading? Was ist und wie wird Thermal Design Protokoll.htm16.3.11 11.5.1122.6.11

Power, TDP ausgereizt? Was ist ein SoC? (mit Beispiel) Wie unterscheidensich ARM-Prozessoren von Prozessoren fur PCs? (1+1+1+1 Pkt)

2. Der MIPS R2000- bzw. DLX-Befehlssatz bietet die Instruktionen LUI bzw. PrasentationenSebastian S.,Eva R.&Chr. B.

LHI, die helfen, 32bit-immediates in Register zu laden. Geben Sie in MIPS-Assembler an, wie man dies mit und ohne LUI tun kann. Bestimmen Sie denGesamt-Beschleunigungsfaktor von Programmen aufgrund des Gebrauchsvon LUI. (2+1 Pkt)

3. 80x86-Prozessoren verarbeiten conditional move Befehle, d.h. Instruktio- klausur.pdfSS11nen der Form if Bedingung dann move. Fur den MIPS sind etwa die drei

Instruktionen movp, movz bzw. movn Rd,Rt,Rs mit der Bedeutung WennRs>0, Rs==0 bzw. Rs<0 dann move Rt nach Rd denkbar.Erweitern Sie die pipeline Implementierung des MIPS R2000 um das con-ditional move move on zero movz Rd,Rt,Rs; // if Rs==0 then Rd=Rt

und zwar im R-Format (welches sonst?) 0 Rs Rt Rd * 0x30 . (Dasfunc Feld hat noch genugend freie Eintrage! z.B. movn: 0x31, movp: 0x32)

Nehmen Sie dazu in Fig. 6.30 aus COD2e die ggfls. erforderlichen Ande-rungen des Daten-Pfades vor. Spezifizieren Sie alle Signale fur jeden Zyklusder Befehlsabarbeitung. Werden neue Klauseln in der hazard detection furdas forwarding notig? Wenn ja, welche? wenn nein, wieso nicht? (8 Pkt)

2 fur Tabelle”

was passiert in jedem Zyklus der Befehlsabarbeitung“, 1 furDatenpfad, 3 fur Signale, 2 fur forwarding

4. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System auf studenti-schen Wunsch,gegen meineEmpfehlung

mit LRU auf Wortadressen 17,18,50,71,61,17,18,61,72,62,17,18a) fur einen 1-assoziativen (direct mapped) cache mit 8 1-Wort-Blocken,b) fur einen 1-assoziativen cache mit 4 2-Wort-Blocken,c) fur einen 2-assoziativen cache mit 1-Wort-Blocken undd) fur einen 2-assoziativen cache mit 2-Wort-Blocken

– jeweils mit LRU15. Skizzieren Sie die jeweils sich ergebenden cache-Be-

15LRU = least recently referenced

Page 57: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 57

legungen. Bestimmen Sie die Anzahl von hits vs misses, identifizieren Siejeweils raumliche und zeitliche Lokalitat. Geben Sie die Anzahl der insge-samt zwischen cache und Speicher ausgetauschten Worter an. (4 Pkt)

5. In der vorangehenden Aufgabe seien alle Speicher-Zugriffe auf jede zweite auf studenti-schen Wunsch,gegen meineEmpfehlung

Adresse schreibend. Stellen Sie die Belegungen der vier cache-Organisati-onen fur jeweils die write back mit fetch on write bzw. write around Schreib-Strategien dar. Ermitteln Sie read und write hits. Markieren Sie dirty cachelines geeignet. Geben Sie wieder die Anzahl der insgesamt ausgetauschtenWorter an. (4 Pkt)

6. Die superscalare Version des MIPS R2000 verfugt uber zwei pipelines: eine RSTslide.pdfS.106arithmetisch-logische und eine load/store-pipeline, vgl. COD2e, Fig. 6.58.

Hat sie damit zwei unabhangig voneinander agierende functional units?Treten in der superscalaren Implementation WAR hazards auf? Wenn nein,wieso nicht? wenn ja, wie sind diese hazards aufzulosen? (1+1 Pkt)

7. Die quadratische Gleichung ax2+bx+c = 0 habe zwei reelle Losungen, die in RSTslide.pdfS.219,klausur.pdf

moglichst effizienter Weise auf einem Mehr-Prozessor-System zu berechnensind.

Spezifizieren Sie dazu den DAG. Unterstellen Sie zwei gleichartige PEs,die auf alle Eingangsgroßen und Konstanten ohne Verzogerung zugreifenkonnen und die Additionen/Subtraktionen in TaddZE, Multiplikationen/Di-visionen in TmulZE und Quadratwurzeln in TsqrtZE berechnen.

Zwischen den PEs werden immer einzelne floats (oder doubles) ausgetauscht:Zwischenergebnissen zwischen verschiedenen PEs auszutauschen, dauereTcomZE. (Kommunikation auf ein und demselben PE braucht keine Zeit).

Zeichnen Sie ein Aktivitaten-Diagramm, das zeigt, wann welche PE wel-che Operation, d.h. subtask ausfuhrt. Bestimmen Sie fur Ihren gewahltenPAT, also fur Ihre Zuordnung von PEs zu subtasks, die Zeit, bis im Systembeide Losungen vorliegen, und bestimmen und bewerten Sie den Beschleu-nigungsfaktor β gegenuber einem Mono-Prozessor. (6 Pkt)

2 fur DAG, 2 fur Aktivitaten-Diagramm, 2 fur β mit Bewertung

(Summe 30 Punkte)

Page 58: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 58

Losungen zurWiederholer-Klausur

Rechner-Strukturen 29.9.11

1. Laut c’t: was ist hyperthreading? Was ist und wie wird Thermal Design Protokoll.htm16.3.11 11.5.1122.6.11

Power, TDP ausgereizt? Was ist ein SoC? (mit Beispiel) Wie unterscheidensich ARM-Prozessoren von Prozessoren fur PCs? (1+1+1+1 Pkt)

i. Hyper-Threading gaukelt dem Betriebssystem die doppelte Anzahl an Ker-nen vor und soll so fur eine bessere Auslastung der Rechenwerke sorgen,bringt aber naturgemaß viel weniger zusatzliche Leistung als zusatzlicheechte Kerne.

ii. Um maximale Rechenleistung zu liefern, bemuhen sich Turbo Boost (In-tel) und Turbo Core (AMD), TDP, also die maximal zulassige Verlustleis-tung, unter Volllast auszureizen. lnsbesondere wenn altere Software nichtalle verfugbaren Kerne auslastet, schickt der Turbo einige schlafen und tak-tet die restlichen hoch. Der CPU-Turbo ist eine sehr vorteilhafte Technik,um altere oder schlecht programmierte (Single-Thread-) Software zu be-schleunigen. Die Effizienz beeinflussen die Turbos ubrigens trotz der hoher-en Leistungsaufnahme positiv. Die Performance steigt im standardmaßigenTurbo-Bereich schneller als die Leistungsaufnahme, und ist die Arbeit ge-tan, legen sich die Kerne fruher wieder schlafen.

iii. In den meisten Mobilgeraten stecken derzeit sogenannte Systems-on-Chip(SoC). Auch wenn diese Winzig-Prozessoren – insbesondere bei Internet-Anwendungen – nahezu dieselbe Arbeit bewaltigen mussen wie ihre großenBruder im PC, unterscheiden sie sich von diesen gewaltig: Zum einen lautetin der Mobilwelt die oberste Maxime Sparsamkeit und nicht wie beim PCPerformance. Zum anderen hat der CPU-Hersteller nicht von der Architek-tur uber die Fertigung bis hin zum Compiler alles unter seinen Fittichen.Ein typisches Beispiel fur einen Smartphone-Prozessor ist der vor weni-gen Wochen vorgestellte OMAP 5. Fur dieses SoC hat Texas Instrumentsgleich mehrere verschiedene Kerne als Intellectual Property, IP von ARMzugekauft. Dazu kommen noch ein Power VR Grafikkern von ImaginationTechnologies sowie aus dem eigenen Hause ein Signal-, ein Audio- und einBildprozessor, ein Videobeschleuniger und viele Peripherie-Blocke. All dieseSchaltkreise werden bei der sogenannten Synthese zu einem Chip vereint.Dabei kann der Entwickler an vielen Stellschrauben wie Cache-Großen oderBus-Breiten drehen.

iv. Ein OMAP 5 kann spielend und vor allem stromsparend Full-HD-Videos inEchtzeit codieren, wenn das Betriebssystem damit den hoch spezialisiertenVideobeschleuniger betraut. Der Generalist Cortex-A15 ware damit hoff-nungslos uberfordert.Abgesehen von solchen Spezialaufgaben wie der Videocodierung kommtAllround-ARM-Kernen aber durch Betriebssysteme wie Android sowie Ap-ps und Internet-Anwendungen immer mehr Bedeutung zu. In klassischenHandys sowie in billigen Smartphones stecken meist noch Prozessoren mitARM9E- respektive ARM11-Kernen, denen die alteren Architekturen ARMv5und ARMv6 zugrunde liegen.

Page 59: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 59

Aktuell ist der ARMvT-Befehlssatz der Cortex-Kerne. Dazu gehoren dasEinkern-Modell Cortex-A8 sowie der Cortex-A9 MPCore mit bis zu vierKernen. Single-Core-Prozessoren mit Cortex-A8 oder -A9 treiben derzeitnahezu alle Smartphones und Tablets an, ganz egal ob ihre ProzessorenA4, Snapdragon oder OMAP 3 heißen. Erste Smartphones mit zwei CortexA9-Kernen wurden auf dem Mobile World Congress im Februar vorgestellt.Auch im zweiten iPad und im Motorola Zoom steckt ein Dual-Core-ARM-SoC. Ganz vorne mit dabei ist Nvidia nicht nur bei den Doppelkernen mitdem Tegra 2 sondern auch mit dem auf dem Mobile-World Congress vorge-stellten Quad-Core namens ’Kal-El’ mit A9-Innenleben. Im CoreMark liegter laut Nvidia in etwa auf dem Niveau eines Doppelkern-Atom – genaue Da-ten zu Leistungsaufnahme und Taktfrequenz gibt es noch nicht. Die Wertezeigen dennoch, wie sehr sich die x86- und die ARM-Prozessoren einanderangenahert haben.

2. Der MIPS R2000- bzw. DLX-Befehlssatz bietet die Instruktionen LUI bzw.LHI, die helfen, 32bit-immediates in Register zu laden. Geben Sie in MIPS-Assembler an, wie man dies mit und ohne LUI tun kann. Bestimmen Sie denGesamt-Beschleunigungsfaktor von Programmen aufgrund des Gebrauchsvon LUI. (2+1 Pkt)

32bit-immediates konnen auf zwei Weisen in Register geladen werden: oh-ne und mit Verwendung der darauf zugeschnittenen Instruktionen LUI furMIPS bzw. LHI fur DLX. I.a.R. unterstutzen die Assembler die Berechnungder oberen immhi und unteren immlo 16bit eines 32bit immediates imm =

immhi,immlo. Und LUI setzt praktischer Weise das lower halfword auf 0.Im folgenden MIPS-code sei Rz das Ziel-Register der Lade-Operation.

addui Rz,R0,immhi // auch per ori

sll Rz,Rz,16 // Rz = Rz<<16ori Rz,Rz,immlo

lui Rz,immhi

addui Rz,Rz,immlo // auch per ori

Um den Beschleunigungfaktor aufgrund der Verwendung der speziellen In-struktionen LUI bzw. LHI zu bestimmen, unterstelle der Einfachkeit halberetwa eine pipeline Implementierung, so daß die Ausfuhrung jeder Instrukti-on zunachst einen pipeline cycle Tcycle kostet. Sei α der Anteil der ausgefuhr-

ten 32bit-Lade-Operationen. Dann gilt βohne → mit LUI =(1−α)Tcycle+3αTcycle(1−α)Tcycle+2αTcycle

=1+2α1+α

. Mit angenommenem α = 0.01 ergibt sich βohne → mit LUI = 1.021.01≈

1.0099. Berechne βohne → mit LUI fur die Implementationen SCI bzw. MCI.

3. 80x86-Prozessoren verarbeiten conditional move Befehle, d.h. Instruktio-nen der Form if Bedingung dann move. Fur den MIPS sind etwa die dreiInstruktionen movp, movz bzw. movn Rd,Rt,Rs mit der Bedeutung WennRs>0, Rs==0 bzw. Rs<0 dann move Rt nach Rd denkbar.Erweitern Sie die pipeline Implementierung des MIPS R2000 um das con-ditional move move on zero movz Rd,Rt,Rs; // if Rs==0 then Rd=Rt

und zwar im R-Format (welches sonst?) 0 Rs Rt Rd * 0x30 . (Dasfunc Feld hat noch genugend freie Eintrage! z.B. movn: 0x31, movp: 0x32)

Page 60: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 60

Nehmen Sie dazu in Fig. 6.30 aus COD2e die ggfls. erforderlichen Ande-rungen des Daten-Pfades vor. Spezifizieren Sie alle Signale fur jeden Zyklusder Befehlsabarbeitung. Werden neue Klauseln in der hazard detection furdas forwarding notig? Wenn ja, welche? wenn nein, wieso nicht? (8 Pkt)2 fur Tabelle

”was passiert in jedem Zyklus der Befehlsabarbeitung“, 1 fur

Datenpfad, 3 fur Signale, 2 fur forwarding

cycle action

IF IR = Mem[PC]; PC += 4;

IDID/EX.ReadData1 = Register(IR[25-21]);ID/EX.ReadData2 = Register(IR[20-16]);target = PC+signextend(IR[15-0]); // prophylaktisch Verzweigungsziel berechnen

EX ALUout = Rs ± 0; // so daß zero = (Rs==0)

MemMem/WB.ReadData2 = EX/Mem.ReadData2; // = EX/Mem.WriteDataMem/WB.movz = EX/Mem.movz;

WB if (zero) Register(IR[15-11]) = Mem/WB.ReadData2 // if Rs==0 then Rd = Rt

Man achte grundsatzlich darauf, daß Signale in der richtigen Phase derBefehlsabarbeitung, also in der richtigen pipeline-Stufe wirksam werden.Außerdem berucksichtige man, daß die main control bei OPcode==0 Signalefur die EX-, Mem- und WB-Stufe von R-Type Instruktionen setzt.

Die ersten beiden pipeline cycles IF und ID sind unabhangig von der jewei-ligen Instruktion, siehe Tabelle. Also sind alle Signale wie ublich zu setzen.Wegen OPcode==0 gilt in EX ALUsrcA=1, ALUsrcB=0 und ALUOp=10. DieALU-Control laßt bei func==0x30 die ALU den oberen Input A plus oderminus 0 rechnen, so daß das Zero-flag gerade die Bedingung Rs==0 enthalt.ALU-Control erzeugt das neue Signal movz=(ALUOp==10)&&(func==0x30),das durch zwei pipeline Register durchgereicht in WB den neuen MUX movz

– wie ublich mit demselben Namen – steuert.In Mem gilt MemWrite==0 und MemRead==0 wegen OPcode==0; nur Rt undmovz werden weitergereicht.In WB sorgt ein neuer MUX movz zwischen dem MUX MemtoReg und demWriteData Eingang an der Register-Datei dafur, daß das durchgereichteRt aus dem Mem/WB pipeline Register in das Zielregister Rd geschrie-ben werden kann. Ob dieses Schreiben erfolgt oder nicht, steuert kom-binatorische Logik ahnlich der branch Logik: Die main control generiertunverandert das in WB aktive Signal RegWrite. Letztendlich steuert nundie kombinatorische Logik RegWrite&&(not(movz)||(movz&&zero)), kurzRegWrite&&(not(movz)||zero) das Schreiben in die Register-Datei. Allenicht aufgefuhrten Signale sind 0.

Zunachst ist zu unterscheiden, ob data hazards zwischen einer Instruktionxyz und spater movz oder zwischen movz und spater xyz auftreten. Im ers-ten Fall ist nichts zu tun: klassisches forwarding des Zielregisters von xyz

lost das data hazard.Der zweite Fall ist etwas komplizierter, da der aktuelle Wert fur Rd entwederder alte ist: der Prozessor kann schadlos auf den alten Wert zugreifen. Oderaber Rd sollte eigentlich den Inhalt von Rt enthalten, dessen Wert aber noch

Page 61: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 61

nicht in Rd geschrieben wurde. Man kann auf Nummer Sicher gehen unddas data hazard durch stalls losen. Besser sind aber zwei Klauseln16

if (xyz.Rs==movz.Rd) && (movz.signal_movz==1) && (movz.RegWrite==1) ALUsrcA = movz.Rt

if (xyz.Rt==movz.Rd) && (movz.signal_movz==1) && (movz.RegWrite==1) ALUsrcB = movz.Rt

movz.RegWrite bezeichnet hier das oben spezifizierte Ergebnis kombinato-rischer Logik, wie es an der Register-Datei anliegt.

4. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System mitLRU auf Wortadressen 17,18,50,71,61,17,18,61,72,62,17,18a) fur einen 1-assoziativen (direct mapped) cache mit 8 1-Wort-Blocken,b) fur einen 1-assoziativen cache mit 4 2-Wort-Blocken,c) fur einen 2-assoziativen cache mit 1-Wort-Blocken undd) fur einen 2-assoziativen cache mit 2-Wort-Blocken– jeweils mit LRU17. Skizzieren Sie die jeweils sich ergebenden cache-Be-legungen, bestimmen Sie die Anzahl von hits vs misses, identifizieren Siejeweils raumliche und zeitliche Lokalitat der hits und geben Sie die An-zahl der insgesamt zwischen cache und Speicher ausgetauschten Worter an.(4 Pkt)je 1 fur cache Belegung: Eintrage geben die Adressen der validen cache lineswieder.

a) fur einen 1-assoziativen cache mit 8 1-Wort-Blocken:17 18 50 71 61 17 18 61 72 62 17 18

0 721 17 17 172 18 50 18 18345 61 616 627 71

18† m m m m m t m t m m t tAdresse mod 8 4 read hits bei 8 Wortern

16 hier der Einfachkeit halber noch ohne Einbeziehung der passenden pipeline-Register, sodaß man sich noch nicht um den Abstand der beiden Instruktionen und darum, in welchenpipeline Registern bestimmte Informationen zu finden sind, kummern muß.

17LRU = least recently referenced18† m=miss, s=hit due to spatial locality, t=hit due to temporal locality

Page 62: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 62

b) fur einen 1-assoziativen cache mit 4 2-Wort-Blocken

17 18 50 71 61 17 18 61 72 62 17 180 (16,17) (16,17) (72,73) (16,17)1 (18,19)(50,51) (18,19) (18,19)2 (60,61) (60,61)3 (70,71) (62,63)19† m m m m m t m t m m m t

(Adresse/2) mod 4 3 read hit bei 18 Wortern

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

17 18 50 71 61 17 18 61 72 62 17 18

set0 72

set1 17 17 1761 61

set2 18 18 1850 62

set3 71

19† m m m m m t t t m m t tAdresse mod 4 5 read hits bei 7 Wortern

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

17 18 50 71 61 17 18 61 72 62 17 18set0 (16,17) (16,17) (72,73)

(60,61) (60,61) (16,17)set1 (18,19) (70,71) (62,63)

(50,51) (18,19) (18,19)19† m m m m m t m t m m m t

(Adresse/2) mod 2 3 read hits bei 18 Wortern

5. In der vorangehenden Aufgabe seien alle Speicher-Zugriffe auf jede zweiteAdresse schreibend. Stellen Sie die Belegungen der vier cache-Organisati-onen fur jeweils die write back mit fetch on write bzw. write around Schreib-Strategien dar. Ermitteln Sie read und write hits. Markieren Sie dirty cachelines geeignet. Geben Sie wieder die Anzahl der insgesamt ausgetauschtenWorter an. (4 Pkt)je 1/2 fur cache-Belegung je Organisation a) bis d) und write-StrategieIm Folgenden sind dirty cache blocks rot markiert.

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

write back mit fetch on write

19† m=miss, s=hit due to spatial locality, t=hit due to temporal locality

Page 63: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 63

W W W W W W

17 18 50 71 61 17 18 61 72 62 17 18

0 721 17 17 172 18 50 18 18345 61 616 627 71

20† m f bm f m wc m wc m f t wcAdresse mod 8 3 write hits und 1 read hit bei 9 words

write back mit write aroundW W W W W W

17 18 50 71 61 17 18 61 72 62 17 18

0 721 17 17 172 50 18 18345 61 6167

20† m wm m wm m wc m wc m wm t wcAdresse mod 8 3 write hits und 1 read hit bei 8 words

b) fur einen 1-assoziativen cache mit 4 Blocken a 2 Worten,write back mit fetch on write

W W W W W W

17 18 50 71 61 17 18 61 72 62 17 180 (16,17) (16,17) (72,73) (16,17)1 (18,19)(50,51) (18,19) (18,19)2 (60,61) (60,61)3 (70,71) (62,63)

20† m f bm f m wc m wc bm bf m wc

(Adresse/2) mod 4 3 write hits und 0 read hits bei 24 words

write back mit write aroundW W W W W W

17 18 50 71 61 17 18 61 72 62 17 180 (16,17) (16,17) (72,73) (16,17)1 (50,51) (18,19) (18,19)2 (60,61) (60,61)3

20† m wm m wm m wc m wc bm wm m wc

(Adresse/2) mod 4 3 write hits und 0 read hits bei 20 words

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

20† m=miss, s=spatial hit, t=temporal hit, w=write to cache & mem, wc=write to cache,wm=write to mem, b=write back to mem before replace, f=fetch on write miss into cache

Page 64: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 64

write back mit fetch on writeW W W W W W

17 18 50 71 61 17 18 61 72 62 17 18

set0 72

set1 17 17 1761 61

set2 18 18 1850 62

set3 71

21† m f m f m wc t wc m f t wcAdresse mod 4 3 write hits und 2 read hits bei 7 words

write back mit write around

W W W W W W

17 18 50 71 61 17 18 61 72 62 17 18

set0 72

set1 17 17 1761 61

set2 5018 18

set3

21† m wm m wm m wc m wc m wm t wcAdresse mod 4 3 write hits und 1 read hit bei 8 words

d) fur einen 2-assoziativen cache mit 2-Wort-Blocken (also 2 Blocke pro set)

write back mit fetch on writeW W W W W W

17 18 50 71 61 17 18 61 72 62 17 18set0 (16,17) (16,17) (72,73)

(60,61) (60,61) (16,17)set1 (18,19) (70,71) (62,63)

(50,51) (18,19) (18,19)21† m f m bf m wc m wc bm bf bm wc

(Adresse/2) mod 2 3 write hits und 0 read hits bei 26 words

21† m=miss, s=spatial hit, t=temporal hit, w=write to cache & mem, wc=write to cache,wm=write word to mem, b=write back to mem before replace, f=fetch on write miss into cache

Page 65: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 65

write back mit write aroundW W W W W W

17 18 50 71 61 17 18 61 72 62 17 18set0 (16,17) (16,17) (72,73)

(60,61) (60,61) (16,17)set1 (50,51)

(18,19) (18,19)22† m wm m wm m wc m wc bm m bm wc

(Adresse/2) mod 2 3 write hits und 0 read hits bei 22 words

6. Die superscalare Version des MIPS R2000 verfugt uber zwei pipelines: einearithmetisch-logische und eine load/store-pipeline, vgl. COD2e, Fig. 6.58.Hat sie damit zwei unabhangig voneinander agierende functional units?Treten in der superscalaren Implementation WAR hazards auf? Wenn nein,wieso nicht? wenn ja, wie sind diese hazards aufzulosen? (1+1 Pkt)

Erstens sind die beiden pipelines sicher nicht unabhangig, weil sie synchronarbeiten und weil es kein scheduling gibt (das ubernimmt sozusagen derCompiler). Wenn die beiden pipelines keine unabhangig voneinander agie-rende functional units darstellen, kann es auch keine WAR hazards geben.

IF ID EX MEM WB

IF ID EX MEM WB

IF ID EX MEM WB

IF ID EX MEM WB

IF ID EX MEM WB

IF ID EX MEM WB

IF ID EX MEM WB

IF ID EX MEM WB

IF ID EX MEM WB

IF ID EX MEM WB

schwarz: ’arithmetische’ pipelinerot: ’load/store’ pipeline

Ein WAR hazard liegt namlich dann vor, wenn eine im Instruktionsstromspatere Instruktion ein Register schreibt, bevor eine fruhere Instruktiondieses Register gelesen hat. Instruktionen in aufeinander folgenden Instruk-tionspaaren konnen keine WAR hazards aufweisen, weil Register immerzuerst gelesen werden, bevor sie geschrieben werden. Dasselbe gilt offen-sichtlich auch fur die beiden Instruktionen desselben Instruktionspaares.Es gibt eben keine WAR hazards in der superscalar implementation derFig 6.58 von COD2e.

7. Die quadratische Gleichung ax2+bx+c = 0 habe zwei reelle Losungen, die inmoglichst effizienter Weise auf einem Mehr-Prozessor-System zu berechnensind.

Spezifizieren Sie dazu den DAG. Unterstellen Sie zwei gleichartige PEs,die auf alle Eingangsgroßen und Konstanten ohne Verzogerung zugreifenkonnen und die Additionen/Subtraktionen in TaddZE, Multiplikationen/Di-visionen in TmulZE und Quadratwurzeln in TsqrtZE berechnen.

22† m=miss, s=spatial hit, t=temporal hit, w=write to cache & mem, wc=write to cache,wm=write word to mem, b=write back to mem before replace, f=fetch on write miss into cache

Page 66: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 66

Zwischen den PEs werden immer einzelne floats (oder doubles) ausgetauscht:Zwischenergebnissen zwischen verschiedenen PEs auszutauschen, dauereTcomZE. (Kommunikation auf ein und demselben PE braucht keine Zeit).

Zeichnen Sie ein Aktivitaten-Diagramm, das zeigt, wann welche PE wel-che Operation, d.h. subtask ausfuhrt. Bestimmen Sie fur Ihren gewahltenPAT, also fur Ihre Zuordnung von PEs zu subtasks, die Zeit, bis im Systembeide Losungen vorliegen, und bestimmen und bewerten Sie den Beschleu-nigungsfaktor β gegenuber einem Mono-Prozessor. (6 Pkt)

2 fur DAG, 2 fur Aktivitaten-Diagramm, 2 fur β mit Bewertung

Das Mehrprozessor-System muß die beiden Losungen

x1,2 = − b2a±√

( b2a

)2 − ca

= − b2a± 1

2a

√b2 − 4ac = 1

2a(− b±√b2 − 4ac)

berechnen (zur Numerik s.a. heath.pdf). Die aquivalenten Ausdrucke zurBerechnung von x1,2 zeigen, daß es fur das Problem mehrere aquivalenteDAGs gibt. Simples Auszahlen der Multiplikationen und Divisionen zeigt,daß fur den Mono-Prozessor die Wiederverwendung des Ausdrucks b

2ain

x1,2 = − b2a±√

( b2a

)2 − ca

optimal ist.

Der folgende DAG ist vermutlich fur zwei PEs optimal. Letzte Sicherheitgibt nur die Untersuchung aller aquivalenter DAGs fur alle PATs mit jeweilsmax 2 PEs. – und das fur beliebige Parameter Tadd, Tmul, Tsqrt und Tcom.

In den folgenden beiden beispielhaften DAGs sind erstens die Knoten nichtwie ublich mit der Operation bezeichnet sondern der Nachvollziehbarkeithalber mit dem jeweiligen Ergebnis: die Operation ist offensichtlich. Weiter-hin sagt die vertikale Anordnung in Schritten nichts uber Gleichzeitigkeitaus, sondern dient nur der einfacheren, ubersichtlicheren Beschreibung. Derkritische Pfad durch den Graphen ist jeweils offensichtlich. Die Operationeneiner Spalte werden von ein und demselben PE ausgefuhrt. Die Knoten-labels ergeben sich aus der Operation. Kanten-labels sind bei Kommunika-tion auf demselben PE 0 oder bei Kommunikation zwischen PEs Tcom.

Page 67: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 67

a b c

b/2

c/a

b2/a

( b2a )2

( b2a )2 − c

a

√( b2a )2 − c

a

− b2a

− b2a+√

( b2a )2 − c

a

− b2a−√

( b2a )2 − c

a

a b c

2 ∗ a 4 ∗ a

b ∗ b 4a ∗ c

b2 − 4ac

−b√b2 − 4ac

−b+√

b2 − 4ac

−b−√

b2 − 4ac

−b+√b2−4ac2a

−b−√b2−4ac2a

Wenn man den Prozess der Berechnung auf PEo und PE1 darstellen mochte,kann man die Zeit-Achse nicht skalieren, solange nicht alle Zeiten bekanntsind. Wir unterstellen im Folgenden nur, daß jede arithmetische Operationlanger als der Austausch von floats oder doubles zwischen PEs dauert. Diebeiden Graphiken konnen also nur die Abfolge der Operationen widerspie-geln. Dabei ist Tcom < minTadd, Tmul, Tsqrt unterstellt.

PE1 → PEoca

PEo → PE1b2a

PE1 c/a − b2a

− b2a−√

PEo b/2 b2/a ( b

2a)2 ( b

2a)2 − c

a

√( b2a

)2 − ca− b

2a+√

oder alternativPE1 → PEo

PEo → PE1 2a b2 −bPE1 4 ∗ a 4a ∗ c b2 − 4ac

√b2 − 4ac −b−√ (−b−√)/(2a)

PEo 2 ∗ a b2 −b −b+√

(−b+√

)/(2a)

Zum Vergleich sei also Tcom < Tadd < Tmul < Tsqrt angenommen. In erstenDAG besteht der kritische Pfad aus drei Additionen/Subtraktionen, dreiMultiplikationen/Divisionen und einer Quadratwurzel, im zweiten, unguns-tigeren DAG aus einer Multiplikation/Division mehr. Laut Annahme findetder Austausch von Zwischenergebnissen wahrend der arithmetischen Opera-

tionen statt. Also gilt βmono → duo =4Tadd+4Tmul+Tsqrt3Tadd+3Tmul+Tsqrt

. Falls nun beispielswei-

se Tadd = Tmul = Tsqrt = T gilt, ergibt sich βmono → duo = 9T7T

= 97≈ 1.12857

mit einer Effizienz Ef = 914≈ 0.642857.

(Summe 30 Punkte)

Page 68: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 68

8 RST-Klausur SS11

Klausur Rechner-Strukturen 13.7.11

Name Matrikel

Hilfsmittel sind nicht zugelassen! und aus gegebenem Anlaß:weniger ist mehr! – statt weitschweifiger, wolkiger Poesie

klare, knappe Aussagen mit stimmigen, Stichwort-artigen Begrundungen!Es wird nicht erwartet, daß alle Aufgaben bearbeitet werden!

1. Laut c’t: wieviel leistungsfahiger sind 10fach teuerere Desktop-Prozessoren? Protokoll.htm16.3.11 11.5.1122.6.11

Was sind die drei wichtigsten Kenngroßen fur die Leistung von (Intel- undAMD-) Desktop-Prozessoren? Was bedeutet und wie bewerten Sie AVX?Wie mißt (nicht nur) die c’t konkret die Leistung von Desktop-Prozessoren?

(4=1+1+1+1 Pkt)

2. Warum ist kein anderes als das MIPS- oder DLX-Register R31 als Register Protokoll.htm22.6.11fur die Rucksprungadresse sinnvoll? Was ist – unabhangig vom Prozessor –

notig, damit Rucksprungadressen auch in Registern (statt auf dem Stack)vorgehalten werden konnen? (2=1+1 Pkt)

3. 80x86-Prozessoren verarbeiten conditional move Befehle, d.h. Instruktio- klausur.pdfSS02nen der Form if Bedingung dann move. Fur den MIPS sind etwa die drei

Instruktionen movp, movz bzw. movn Rd,Rt,Rs mit der Bedeutung WennRs>0, Rs==0 bzw. Rs<0 dann move Rt nach Rd denkbar. Bewerten Sie dieNutzlichkeit dieser drei Instruktionen anhand konkreter Code-Beispiele.Erweitern Sie die multi cycle Implementierung des MIPS R2000 um das con-ditional move move on zero movz Rd,Rt,Rs; // if Rs==0 then Rd=Rt

und zwar im R-Format (welches sonst?) 0 Rs Rt Rd * 0x30 . (Dasfunc Feld hat noch genugend freie Eintrage! z.B. movn: 0x31, movp: 0x32)Nehmen Sie dazu in Fig. 5.33 (COD2e) die erforderlichen Anderungen desDaten-Pfades vor. Spezifizieren Sie alle Signale fur jeden Zyklus der Befehls-abarbeitung. (6 Pkt)

4. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System auf studenti-schen Wunsch,gegen meineEmpfehlung

mit LRU auf Wortadressen 37,38,49,70,60,37,38,60,71,61,37,38a) fur einen 1-assoziativen (direct mapped) cache mit 8 1-Wort-Blocken,b) fur einen 1-assoziativen cache mit 4 2-Wort-Blocken,c) fur einen 2-assoziativen cache mit 1-Wort-Blocken undd) fur einen 2-assoziativen cache mit 2-Wort-Blocken

– jeweils mit LRU23. Skizzieren Sie die jeweils sich ergebenden cache-Be-legungen. Bestimmen Sie die Anzahl von hits vs misses, identifizieren Sie

23LRU = least recently referenced

Page 69: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 69

jeweils raumliche und zeitliche Lokalitat. Geben Sie die Anzahl der insge-samt zwischen cache und Speicher ausgetauschten Worter an. (4 Pkt)

5. In der vorangehenden Aufgabe seien alle Speicher-Zugriffe auf jede zweiteAdresse schreibend. Stellen Sie die Belegungen der vier cache-Organisati- auf studenti-

schen Wunsch,gegen meineEmpfehlung

onen fur jeweils die write back mit fetch on write bzw. write around Schreib-Strategien dar. Ermitteln Sie read und write hits. Markieren Sie dirty cachelines geeignet. Geben Sie wieder die Anzahl der insgesamt ausgetauschtenWorter an. (4 Pkt)

6. Ein Speicher werde mit paged segments verwaltet. Segment- und Seiten- Protokoll.htm15.6.11Anfange fallen zusammen. Virtuelle (Byte-) Adressen bestehen aus 2bit-

SegmentNo: 3bit-pageNo und 3bit page-offest, die physikalischen (Byte-)Adressen aus 3bit-pageNo=frameNo und 3bit page-offest. Wie groß ist dervirtuelle Speicher? der physikalische Speicher? eine jede Seite? (1 Pkt)

Gegeben die Ausschnitte aus Segment (Descriptor) Table ST (mit Seg-mentlangen in Seiten) und Page Table PT mit

ST =

seg# base len

1 0x3 0x22 0x5 0x23 0x2 0x1

und PT =tag · · · 0x2 0x3 0x4 0x5 0x6 . . .

frame · · · hdd 0x2 0x5 0x1 0x0 · · ·

Was ist die zur virtuellen Adresse (0x1:0xF) gehorende physikalische Ad-dresse? Konstruieren Sie eine Adresse, die ein segmentation violation auslost.Konstruieren Sie eine Adresse, die ein page fault auslost. (3=1+1+1 Pkt)

7. Die quadratische Gleichung x2 + bx+ c = 0 habe zwei reelle Losungen, die RSTslide.pdfS.219in moglichst effizienter Weise auf einem Mehr-Prozessor-System zu berech-

nen sind.Spezifizieren Sie dazu den DAG. Unterstellen Sie 2 gleichartige PEs, die aufalle Eingangsgroßen und Konstanten ohne Verzogerung zugreifen konnenund die Additionen/Subtraktionen in TaddZE, Multiplikationen/Divisionenin TmulZE und Quadratwurzeln in TsqrtZE berechnen.Zwischen den PEs werden immer einzelne floats (oder doubles) ausgetauscht:die Kommunikation von Zwischenergebnissen zwischen verschiedenen PEsdauere TcomZE. (Auf ein und demselben PE braucht Kommunikation keineZeit).Zeichnen Sie ein Aktivitaten-Diagramm, das zeigt, wann welche PE wasmacht. Bestimmen Sie fur Ihren gewahlten PAT, also Ihre Zuordnung vonPEs zu subtasks, die Zeit, bis im System beide Losungen vorliegen, und be-stimmen und bewerten Sie den Beschleunigungsfaktor β gegenuber einemMono-Prozessor. (6 Pkt)

(Summe 30 Punkte)

Page 70: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 70

Losungen zur Klausur Rechner-Strukturen 13.7.11

1. Laut c’t: wieviel leistungsfahiger sind 10fach teuerere Desktop-Prozessoren?Was sind die drei wichtigsten Kenngroßen fur die Leistung von (Intel- undAMD-) Desktop-Prozessoren? Was bedeutet und wie bewerten Sie AVX?Wie mißt (nicht nur) die c’t konkret die Leistung von Desktop-Prozessoren?

(4=1+1+1+1 Pkt)

i. Der zehnfach teuere Prozessor leistet nur das Funffache.

ii. Anzahl cores, Takt und cache-System, d.h. Struktur und Kapazitatenvon L1$, L2$, L3$ etc

iii. AVX steht fur Advanced Vector Extensions und bedeutet die Fortset-zung der Befehlssatz-Erweiterung um SIMD-Instruktionen. Je mehrProgramme AVX-Instruktionen nutzen, umso mehr Programme nut-zen die damit einhergehende partielle Beschleunigung und umso be-deutender wird die Erweiterung – vgl. Protokoll.htm zu AVX2.

iv. Die c’t verwendet einen Satz von (ublichen, verbreiteten, fur bestimmteAnwendungen signifikanten) benchmark-Programmen: Kbench, Core-Mark, BAPCo, . . . , SPECfp, SPECint.

2. Warum ist kein anderes als das MIPS- oder DLX-Register R31 als Registerfur die Rucksprungadresse sinnvoll?Was ist – unabhangig vom Prozessor – notig, damit Rucksprungadres-sen auch in Registern (statt auf dem Stack) vorgehalten werden konnen?

(2=1+1 Pkt)

Grundsatzlich ist es dann attraktiv, Rucksprung-Adressen in Registern zuretten, wenn eine Subroutine keine Aufrufe weiterer Subroutinen enthalt.Damit spart man namlich langwierige Stack-Operationen im Speicher!

Die Instruktion jal label an der Adresse jaladr bewirkt, daß erst die Ruck-sprungadresse jaladr+4, die Adresse der Folge-Instruktion, ’festverdrahtet’in Register R31 gerettet wird, bevor in die Subroutine label gesprungenwird. Also ergibt kein anderes Register uberhaupt Sinn.Es sind Sprung-Anweisungen der Form jump register; PC = register

notig, um an Adressen zu springen, die in Registern gerettet wurden, z.B.MIPS jump register jr Rs; PC = Rs. Intel 80x86?

3. 80x86-Prozessoren verarbeiten conditional move Befehle, d.h. Instruktio-nen der Form if Bedingung dann move. Fur den MIPS sind etwa die dreiInstruktionen movp, movz bzw. movn Rd,Rt,Rs mit der Bedeutung WennRs>0, Rs==0 bzw. Rs<0 dann move Rt nach Rd denkbar. Bewerten Sie dieNutzlichkeit dieser drei Instruktionen anhand konkreter Code-Beispiele.Erweitern Sie die multi cycle Implementierung des MIPS R2000 um das con-ditional move move on zero movz Rd,Rt,Rs; // if Rs==0 then Rd=Rt

und zwar im R-Format (welches sonst?) 0 Rs Rt Rd * 0x30 . (Das

Page 71: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 71

func Feld hat noch genugend freie Eintrage! z.B. movn: 0x31, movp: 0x32)Nehmen Sie dazu in Fig. 5.33 (COD2e) die erforderlichen Anderungen desDaten-Pfades vor. Spezifizieren Sie alle Signale fur jeden Zyklus der Befehls-abarbeitung. (6 Pkt)1 fur Nutzlichkeit, 1 fur Tabelle

”was passiert in jedem Zyklus der Befehls-

abarbeitung“, 1 fur Datenpfad, 3 fur Signale

Conditional moves sind nutzlich, weil man beispielsweiseR4 = max(R2, R3)sehr leicht mit den drei Instruktionen slt R1,R2,R3 und movp R4,R3,R1

und movz R4,R2,R1 berechnen kann, ohne explizite Verzweigungen mit denublichen in Kauf zu nehmenden branch penalties gebrauchen zu mussen.

cycle actionIF IR = Mem[PC]; PC += 4;

IDA = Register(IR[25-21]); B = Register(IR[20-16]);target = PC+signextend(IR[15-0]); // prophylaktisch Verzweigungsziel berechnen

EX ALUout = A ± 0; // so daß zero = (Rs==0)

WB if zero Register(IR[15-11]) = B // if Rs==0 then Rd = Rt

Die ersten beiden MCI-cycles IF und ID sind unabhangig von der jeweiligenInstruktion. Also sind die Signale wie ublich zu setzen.Wegen OP-Code gilt in EX ALUsrcA=1 und ALUsrcB=0. Die ALU-Controllaßt bei func==0x30 die ALU etwa den oberen Input A minus 0 rechnen, sodaß das Zero-flag gerade die Bedingung Rs==0 enthalt.In WB sorgt ein neuer MUX movz zwischen dem MUX Mem2Reg und demWriteData Eingang an der Register-Datei dafur, daß B in das ZielregisterRd geschrieben werden kann. Ob dieses Schreiben erfolgt oder nicht, steu-ert kombinatorische Logik ahnlich der branch Logik: die ALU-Control er-zeugt ein neues Signal movz=(OP-Code==0)&&(func==0x30), das den MUXmovz – wie ublich mit demselben Namen – steuert. Die main control ge-neriert das in WB aktive Signal RegWrite. Die kombinatorische LogikRegWrite&&(not((OP-Code==0)&&(func==0x30))||(OP-Code==0)&&(func==0x30)&&zero)

oder kurz RegWrite&&(not((OP-Code==0)&&(func==0x30))||zero) steuert dasSchreiben in die Register-Datei. Alle nicht aufgefuhrten Signale sind 0.

4. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System mitLRU auf Wortadressen 37,38,49,70,60,37,38,60,71,61,37,38a) fur einen 1-assoziativen (direct mapped) cache mit 8 1-Wort-Blocken,b) fur einen 1-assoziativen cache mit 4 2-Wort-Blocken,c) fur einen 2-assoziativen cache mit 1-Wort-Blocken undd) fur einen 2-assoziativen cache mit 2-Wort-Blocken– jeweils mit LRU24. Skizzieren Sie die jeweils sich ergebenden cache-Be-legungen, bestimmen Sie die Anzahl von hits vs misses, identifizieren Siejeweils raumliche und zeitliche Lokalitat der hits und geben Sie die An-zahl der insgesamt zwischen cache und Speicher ausgetauschten Worter an.(4 Pkt)

24LRU = least recently referenced

Page 72: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 72

je 1 fur cache Belegung: Eintrage geben die Adressen der validen cache lineswieder.

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

37 38 49 70 60 37 38 60 71 61 37 38

01 49234 60 605 37 37 61 376 38 70 38 387 71

25† m m m m m t m t m m m tAdresse mod 8 3 read hits bei 9 Wortern

b) fur einen 1-assoziativen cache mit 4 2-Wort-Blocken

37 38 49 70 60 37 38 60 71 61 37 380 (48,49)12 (36,37) (60,61)(36,37) (60,61) (60,61)(36,37)3 (38,39) (70,71) (38,39) (70,71) (38,39)

25† m m m m m m m m m s m m

(Adresse/2) mod 4 1 read hit bei 22 Wortern

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

37 38 49 70 60 37 38 60 71 61 37 38

set0 60 60

set1 37 37 3749 61

set2 38 38 3870

set3 71

25† m m m m m t t t m m t tAdresse mod 4 5 read hits bei 7 Wortern

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

37 38 49 70 60 37 38 60 71 61 37 38set0 (36,37) (60,61) (60,61) (60,61)

(48,49) (36,37) (36,37)set1 (38,39) (38,39) (38,39)

(70,71) (70,71)26† m m m m m m t t s s t t

25† m=miss, s=hit due to spatial locality, t=hit due to temporal locality

Page 73: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 73

(Adresse/2) mod 2 6 read hits bei 12 Wortern

5. In der vorangehenden Aufgabe seien alle Speicher-Zugriffe auf jede zweiteAdresse schreibend. Stellen Sie die Belegungen der vier cache-Organisati-onen fur jeweils die write back mit fetch on write bzw. write around Schreib-Strategien dar. Ermitteln Sie read und write hits. Markieren Sie dirty cachelines geeignet. Geben Sie wieder die Anzahl der insgesamt ausgetauschtenWorter an. (4 Pkt)je 1/2 fur cache-Belegung je Organisation a) bis d) und write-StrategieIm Folgenden sind dirty cache blocks rot markiert.

a) fur einen 1-assoziativen cache mit 8 1-Wort-Blockenwrite back mit fetch on write

W W W W W W

37 38 49 70 60 37 38 60 71 61 37 38

01 49234 60 605 37 37 61 376 38 70 38 387 71

27† m f m bf m wc bm wc m bf bm wcAdresse mod 8 3 write hits und 0 read hits bei 13 Wortern

26† m=miss, s=hit due to spatial locality, t=hit due to temporal locality27† m=miss, s=spatial hit, t=temporal hit, w=write to cache & mem, wc=write to cache,

wm=write to mem, b=write back to mem before replace, f=fetch on write miss into cache

Page 74: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 74

write back mit write aroundW W W W W W

37 38 49 70 60 37 38 60 71 61 37 38

01 49234 60 605 37 37 376 38 387 71

28† m wm m wm m wc m wc m wm t wcAdresse mod 8 3 write hits und 1 read hit bei 8 Wortern

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

write back mit fetch on writeW W W W W W

37 38 49 70 60 37 38 60 71 61 37 380 (48,49)12 (36,37) (60,61)(36,37) (60,61) (60,61)(36,37)3 (38,39) (70,71) (38,39) (70,71) (38,39)

28† m f m bf m f bm bf m wc bm f

(Adresse/2) mod 4 1 write hit und 0 read hits bei 30 words

write back mit write aroundW W W W W W

37 38 49 70 60 37 38 60 71 61 37 380 (48,49)12 (36,37) (60,61) (60,61) (60,61)(36,37)3 (38,39) (70,71)

28† m wm m wm m wm m wc m wc bm wm

(Adresse/2) mod 4 2 write hits und 0 read hits bei 22 Wortern

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

write back mit fetch on writeW W W W W W

37 38 49 70 60 37 38 60 71 61 37 38

set0 60 60

set1 37 37 3749 61

set2 38 38 3870

set3 71

29† m f m f m wc t wc m f t wc

28† m=miss, s=spatial hit, t=temporal hit, w=write to cache & mem, wc=write to cache,wm=write word to mem, b=write back to mem before replace, f=fetch on write miss into cache

Page 75: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 75

Adresse mod 4 3 write hits und 2 read hits bei 7 Wortern

write back mit write aroundW W W W W W

37 38 49 70 60 37 38 60 71 61 37 38

set0 60 60

set1 37 37 3749

set2 38 38

set3 71

29† m wm m wm m wc m wc m wm t wcAdresse mod 4 3 write hits und 1 read hit bei 8 Wortern

d) fur einen 2-assoziativen cache mit 2-Wort-Blocken (also 2 Blocke pro set)write back mit fetch on write

W W W W W W

37 38 49 70 60 37 38 60 71 61 37 38set0 (36,37) (60,61) (60,61) (60,61)

(48,49) (36,37) (36,37)set1 (38,39) (38,39) (38,39)

(70,71) (70,71)29† m f m f m f t wc s wc t wc

(Adresse/2) mod 2 3 write hits und 3 read hits bei 12 Wortern

write back mit write aroundW W W W W W

37 38 49 70 60 37 38 60 71 61 37 38set0 (36,37) (60,61) (60,61) (60,61)

(48,49) (36,37)set1 (38,39) (38,39)

(70,71)29† m wm m wm m wm m wc m wc m wc

(Adresse/2) mod 2 3 write hits und 0 read hits bei 18 Wortern

6. Ein Speicher werde mit paged segments verwaltet. Segement- und Seiten-Anfange fallen zusammen. Virtuelle (Byte-) Adressen bestehen aus 2bit-SegmentNo: 3bit-pageNo und 3bit page-offest, die physikalischen (Byte-)Adressen aus 3bit-pageNo=frameNo und 3bit page-offest. Wie groß ist dervirtuelle Speicher? der physikalische Speicher? eine jede Seite? (1 Pkt)Gegeben die Ausschnitte aus Segment (Descriptor) Table ST (mit Seg-mentlangen in Seiten) und Page Table PT mit

ST =

seg# base len

1 0x3 0x22 0x5 0x23 0x2 0x1

und PT =tag · · · 0x2 0x3 0x4 0x5 0x6 . . .

frame · · · hdd 0x2 0x5 0x1 0x0 · · ·

29† m=miss, s=spatial hit, t=temporal hit, w=write to cache & mem, wc=write to cache,wm=write word to mem, b=write back to mem before replace, f=fetch on write miss into cache

Page 76: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 76

Was ist die zur virtuellen Adresse (0x1:0xF) gehorende physikalische Ad-dresse? Konstruieren Sie eine Adresse, die ein segmentation violation auslost.Konstruieren Sie eine Adresse, die ein page fault auslost. (3=1+1+1 Pkt)

Die Kapazitat des physikalischen Speichers ist 26 = 64B, die des virtuellenSpeichers 28 = 256B. Eine Seite ist 23 = 8B groß.In der virtuellen Adresse (0x1:0xF) entspricht der SegmentNo 0x1, der vir-tual pageNo 1 = 001(2) und dem page offset 0x7 = 111(2). Die virtuel-le Speicher-Adresse ist also ST[1].base+1 = 0x3+1=0x4. Der PT-Eintragliefert die zugehorige physikalische Adresse 0x2F = 101111(2) zusammen-gesetzt aus physikalischer Seiten-Nummer frame=0x5 = 101(2) und pageoffset 0x7 = 111(2).Beispielsweise die virtuelle Adresse (0x1:0x1F) lost ein segmentation viola-tion aus, weil das Segment Nr. 1 nur zwei Seiten groß ist (len = 0x2).Beispielsweise die virtuelle Adresse (0x3:0x0) lost ein page fault aus, weildas aus einer Seite bestehende (len = 0x1) Segment Nr. 3 nicht im Speicherliegt, sondern ausgelagert ist.

7. Die quadratische Gleichung x2 +bx+c = 0 habe zwei reelle Losungen, die inmoglichst effizienter Weise auf einem Mehr-Prozessor-System zu berechnensind.

Spezifizieren Sie dazu den DAG. Unterstellen Sie 2 gleichartige PEs, die aufalle Eingangsgroßen und Konstanten ohne Verzogerung zugreifen konnenund die Additionen/Subtraktionen in TaddZE, Multiplikationen/Divisionenin TmulZE und Quadratwurzeln in TsqrtZE berechnen.

Zwischen den PEs werden immer einzelne floats (oder doubles) ausgetauscht:die Kommunikation von Zwischenergebnissen zwischen verschiedenen PEsdauere TcomZE. (Auf ein und demselben PE braucht Kommunikation keineZeit).

Zeichnen Sie ein Aktivitaten-Diagramm, das zeigt, wann welche PE wasmacht. Bestimmen Sie fur Ihren gewahlten PAT, also Ihre Zuordnung vonPEs zu subtasks, die Zeit, bis im System beide Losungen vorliegen, undbestimmen und bewerten Sie den Beschleunigungsfaktor β gegenuber einemMono-Prozessor. (6 Pkt)2 fur DAG, 2 fur Aktivitaten-Diagramm, 2 fur β mit Bewertung

Das Mehrprozessor-System muß die beiden Losungen x1,2 = − b2±√

( b2)2 − c

= − b2± 1

2

√b2 − 4c = 1

2( − b ±√b2 − 4c) berechnen (zur Numerik s.a.

heath.pdf). Die aquivalenten Ausdrucke zur Berechnung von x1,2 zeigen, daßes fur das Problem mehrere aquivalente DAGs gibt. Der folgende DAG istvermutlich fur 2 PEs optimal. Letzte Sicherheit gibt nur die Untersuchungaller aquivalenter DAGs fur alle PATs mit jeweils max 2 PEs. – und dasfur beliebige Parameter Tadd, Tmul, Tsqrt und Tcom.

Im folgenden DAG sind erstens die Knoten nicht wie ublich mit der Opera-tion bezeichnet, sondern der Nachvollziehbarkeit halber mit dem jeweiligen

Page 77: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 77

Ergebnis: die Operation ist offensichtlich. Weiterhin sagt die vertikale An-ordnung in Schritten nichts uber Gleichzeitigkeit aus, sondern dient nurder einfacheren, ubersichtlicheren Beschreibung: Der kritische Pfad ist of-fensichtlich.

b c

b ∗ b 4 ∗ c

0− b b2 − 4c

√b2 − 4c

−b/2√b2 − 4c/2

−b/2+√

b2 − 4c/2

−b/2−√

b2 − 4c/2

Im ersten Schritt fuhren die beidenPEs je eine Multiplikation in TmulZEaus.Im zweiten Schritt fuhren beide PEsnach TcomZE eine Subtraktion inTaddZE aus.Im dritten Schritt zieht die ’rechte’PE eine Quadratwurzel, wahrend die’linke’ PE idle ist. Grundsatzlich kanndie ’linke’ PE naturlich die Operation−b/2 irgendwann nach Berechnungvon 0 − b und vor der Verfugbarkeitdes Zwischenergebnisses

√b2 − 4c der

’rechten’ PE ausfuhren.Im vierten Schritt dividieren beidePEs durch 2.Im funften Schritt fuhren beide PEsnach TcomZE eine Addition bzw. eineSubtraktion in jeweils TaddZE aus.

Also gilt βmono → duo =4Tadd+3Tmul+Tsqrt

2Tadd+2Tmul+Tsqrt+2Tcom. Falls nun beispielsweise Tadd =

Tmul = Tsqrt = Tcom = T gilt, ergibt sich βmono → duo = 8T7T

= 87≈ 1.14 mit

einer Effizienz Ef = 814≈ 0.57. Man variiere die Parameter.

(Summe 30 Punkte)

Page 78: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 78

9 RST-Klausur WS10

Klausur Rechner-Strukturen 1.2.11

Name Matrikel

Hilfsmittel sind nicht zugelassen! und aus gegebenem Anlaß:weniger ist mehr! – statt weitschweifiger, wolkiger Poesie

klare, knappe Aussagen mit stimmigen, Stichwort-artigen Begrundungen!Es wird nicht erwartet, daß alle Aufgaben bearbeitet werden!

1. Was spricht fur, was gegen branch delay slots (delayed branches) in pipeline-Prozessoren? (2 Pkt)

2. Entwickeln Sie einen kommentierten Programm-Kern in DLX-Assembler(siehe Liste der Instruktionen), anhand dessen Sie testen, ob DLX- oderMIPS R2000-Prozessoren (oder deren Emulationen) mit branch delay slotsarbeiten oder nicht. (Sie greifen naturlich nicht auf debugger oder gar Vi-sualisierung der Befehlsabarbeitungen etwa durch WinDLX zuruck, sondernlassen Ihr Test-Programm geeignete Ausgaben erzeugen!) (3 Pkt)

3. Die MIPS R2000 Instruktionen bgez Rs,label und bltz Rs,label mitder Bedeutung if Rs>=0 bzw. Rs<0 goto (PC-relativ) label haben das Format0x01 Rs Rt label , wobei fur bgez Rt=1 und fur bltz Rt=0 spezifiziert

ist. Beurteilen Sie Nutzlichkeit und Format der beiden Instruktionen unterGesichtspunkten des ISA-Entwurfs. (2 Pkt)

4. Erweitern Sie die pipeline-Implementierung des MIPS R2000 um die bgez-Instruktion der Nr. 3. Nehmen Sie an, daß die ALU zusatzlich zum Ergeb-nis und zur Flag zero zwei weitere Flags positiv (> 0) und negativ (< 0)generiert. Nehmen Sie dazu in Fig. 6.30 die erforderlichen Anderungen desDaten-Pfades vor. Spezifizieren Sie alle Signale der drei Befehls-spezifischenStufen. Welcher Umstand steigert unweigerlich die Komplexitat der Steue-rung, wie wirkt sich dieser Umstand auf die Implementierung der Steuerungetwa durch LUTs aus und wie kann man diesen (unerwunschten) Auswir-kungen begegnen? (8 Pkt)

5. Beschreiben Sie zwei Paare bestehend aus jeweils einem konkreten Programm-Stuck zusammen mit einem konkreten I-cache, der die Ausfuhrung dieseskonkreten Programm-Stucks best- bzw. schlechtmoglichst unterstutzt.Inwiefern ist Ihr best case oder Ihr worst case Beispiel vermutlich unrealis-tisch? (3 Pkt)

6. Die 80x86 Prozessoren (ab Pentium) unterstutzen hardwaremaßig pagedsegments mit 4KB pages und 4MB pages. Beschreiben Sie konkret Vor-und Nachteile der beiden Modi. (4 Pkt)

Page 79: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 79

7. Gegeben folgender DAG fur eine task mit funf subtasks, execution undcommunication times, TAP = αααβα sowie dem zugehorigen Diagrammder Aktivitaten in Abhangigkeit von der Zeit mit tDAG(PAT ) = 15.

5a 3b

3c 2d

1e

12

3

3 1

1 2 3 4 5 6 7 8 9 0 1 2 3 4 5a(α)b(α)

b(α) to d(β)c(α)d(β)

d(β) to e(α)e(α)

Stellen Sie das Aktivitaten-Diagramm fur PAT = αβαβα auf. (2 Pkt)

8. Ein block-copy im Speicher kann u.a. aus einer Reihe von Paaren aufein-anderfolgernder LW/SW bestehen. Beschreiben Sie das entstehende datahazard und zeigen Sie, wie der Prozessor es durch forwarding auflost. Er-weitern Sie dazu die forwarding unit in der pipeline-implementation desMIPS R2000 (Fig 6.40) um inputs, outputs und die notwendigen multiple-xers und spezifizieren Sie die zusatzliche Funktionalitat dieser forwardingunit wie in der Vorlesung durch Klauseln. Benennen Sie fehlende Registerdabei wie in Fig. 6.30. (3 Pkt)

PCInstruction

memory

Registers

M u x

M u x

Control

ALU

EX

M

WB

M

WB

WB

ID/EX

EX/MEM

MEM/WB

Data memory

M u x

Forwarding unit

IF/ID

Inst

ruct

ion

M u x

RdEX/MEM.RegisterRd

MEM/WB.RegisterRd

Rt

Rt

Rs

IF/ID.RegisterRd

IF/ID.RegisterRt

IF/ID.RegisterRt

IF/ID.RegisterRs

(Summe 29 Punkte)

Anlagen: DLX/MIPS R2000-Befehlsliste, pipeline-implementation (Fig 6.30)

Page 80: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 80

Losungen zur Klausur Rechner-Strukturen 1.2.11

1. Was spricht fur, was gegen branch delay slots (delayed branches) in pipeline-Prozessoren? (2 Pkt)

Pro: Reduktion der branch penalties in dem Maß, in dem der compiler inder Lage ist, die branch delay slots mit produktiven Instruktionen statt mitnop zu fullen. Geringerer hw-Aufwand durch Wegfall der hw fur stalling derpipeline.Contra: Maschinen-Abhangigkeit des Codes – fur Prozessor-Versionen mitbranch delay slots bzw. solchen, die branch hazards selbststandig losen(branch prediction, branch target buffer, branch stalls). Außerdem wirdbranch taken/not taken nicht ausgenutzt!

2. Entwickeln Sie einen kommentierten Programm-Kern in DLX-Assembler(siehe Liste der Instruktionen), anhand dessen Sie testen, ob DLX- oderMIPS R2000-Prozessoren (oder deren Emulationen) mit branch delay slotsarbeiten oder nicht. (Sie greifen naturlich nicht auf debugger oder gar Vi-sualisierung der Befehlsabarbeitungen etwa durch WinDLX zuruck, sondernlassen Ihr Test-Programm geeignete Ausgaben erzeugen!) (3 Pkt)

.data

PrintfFmt: .asciiz "Register R1=%d (0/1 = ohne/mit branch delay slot)"

.align 2

PrintfPar: .word PrintfFmt

PrintfVal: .space 4

.text

... ; save registers etc.

ADD R1,R0,R0 ; R1 <== 0

BEQ R0,R1,lbl ; erzwungene Verzweigung nach lbl

ADDI R1,R1,#1 ; R1 <== 1 im 1. branch delay slot

NOP ; moegliche weitere

NOP ; branch delay slots

NOP ; ...

lbl: SW PrintfVal,R1 ; Parameteruebergabe

ADDI R14,R0,PrintfPar

TRAP #5 ; printf-Einsprung

... ; restore registers

3. Die MIPS R2000 Instruktionen bgez Rs,label und bltz Rs,label mitder Bedeutung if Rs>=0 bzw. Rs<0 goto (PC-relativ) label haben das Format0x01 Rs Rt label , wobei fur bgez Rt=1 und fur bltz Rt=0 spezifiziert

ist. Beurteilen Sie Nutzlichkeit und Format der beiden Instruktionen unterGesichtspunkten des ISA-Entwurfs. (2 Pkt)

Page 81: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 81

Die Instruktionen sind nutzlich, ersparen sie doch jeweils eine zusatzliche In-struktion mit einem zusatzlichen Zielregister Rtmp: statt sge Rtmp,Rs,R0

bzw. slt Rtmp,Rs,R0 gefolgt von beq Rtmp,label ist eben nur die eineInstruktion bgez Rs,label bzw. bltz Rs,label notwendig. Das Instruk-tionspaar ist sinnvoll, weil etwa bgtz Rs, lbl nur durch blez in der In-struktionsfolge sub Rtmp,R0,Rs; blez Rtmp, lbl ersetzt werden kann.Offensichtlich dient das Instruktionsfeld Rt hier als Befehlserweiterung, ummit nur einem opCode, namlich 1, mehrere Instruktionen, namlich außerbgez und bltz auch noch bgezal und bltzal, zu codieren, die ihrerseitsdieses Feld ebenfalls nicht explizit nutzen. Die Steuerung wird komplexer,weil sie neben opCode jetzt auch noch Rt auswerten muß, s.a. Nr.4.

4. Erweitern Sie die pipeline-Implementierung des MIPS R2000 um die bgez-Instruktion der Nr. 3. Nehmen Sie an, daß die ALU zusatzlich zum Ergeb-nis und zur Flag zero zwei weitere Flags positiv (> 0) und negativ (< 0)generiert. Nehmen Sie dazu in Fig. 6.30 die erforderlichen Anderungen desDaten-Pfades vor. Spezifizieren Sie alle Signale der drei Befehls-spezifischenStufen. Welcher Umstand steigert unweigerlich die Komplexitat der Steue-rung, wie wirkt sich dieser Umstand auf die Implementierung der Steuerungetwa durch LUTs aus und wie kann man diesen (unerwunschten) Auswir-kungen begegnen? (8 Pkt)

6 fur Datenpfad und Signale, 2 fur control per LUT

Der opCode 1 laßt die main control ein neues Signal bgez erzeugen, das etwauber einen weiteren Multiplexer R0 an den unteren Eingang der ALU anlegt.Zugleich erzeugt die main control etwa dasselbe ALUop-Signal wie bei BEQ,so daß die ALU Rs-R0 berechnet und die Flags pos, zero und neg setzt.Wie bei BEQ steuern Gatter (pos||zero)&&bgez dann das Uberschreibendes PCs mit dem prophylaktisch berechneten Verzweigungsziel.

IF und ID sind fur alle Instruktionen identisch. Bei bgez erzeugt die controlStufe SignaleEX ALUsrcB = ’R0’; ALUop = ’sub’

Mem PCSrc = bgez&&(pos||zero)WB

Alle anderen Signale sind inaktiv, Signale wie RegDst oder MemtoReg don’tcare/wildcard – bgez schreibt ja nicht in die Register-Datei.

Zur Erzeugung von bgez muß die main control gegenuber den funf proto-pischen Instruktionen auch das Feld Rt auswerten. Eine naive Implemen-tierung der main control durch eine LUT liefert eine LUT, auf die per(opCode,Rt,state), also mit 6+5+4=15bit zugegriffen wird. Die LUT hatdamit 215 Zeilen a ca 20bit, also 215 ·2.5byte > 64KB. Wieder kann man dieLUT-Große durch Aufsplitten reduzieren: eine LUT fur next state mit 215

Zeilen a ca 4bit, also 214byte = 16KB plus eine kleine LUT fur die Signalein Abhangigkeit vom Zustand, d.h. 16 Zeilen a 16bit, also 256bit = 32byte.

Page 82: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 82

5. Beschreiben Sie zwei Paare bestehend aus jeweils einem konkreten Programm-Stuck zusammen mit einem konkreten I-cache, der die Ausfuhrung dieseskonkreten Programm-Stucks best- bzw. schlechtmoglichst unterstutzt.Inwiefern ist Ihr best case oder Ihr worst case Beispiel vermutlich unrealis-tisch? (3 Pkt)

Das Programm-Stuck bestehe etwa aus einer Schleifefor(int i=n; i>0; i--) body(i);Die Variable n sei an das Register Rn, die Schleifen-Variable i an das Re-gister Ri gebunden.

... ;

ADD Ri,Rn,R0 ; init i := n

loop: BEQ Ri,R0,ext ; Schleifen-Ende

... ; body(i) ohne weitere

... ; Unterprogrammaufrufe

ADDI Ri,Ri,#-1 ; i--

j loop ; next i

ext: ... ;

worst case Der I-cache sei direct mapped und operiere auf 1-Wort Blockenmit 1Wort=4Byte. Die I-cache-Kapazitat sei 2c Worte. Wenn nun dieSchleife (incl. overhead) gerade 2c+1 Instruktionen ausmacht, so kannim cache immer nur eine Halfte der Schleife gespeichert sein, die jeweilsvon der anderen Halfte sukzessive verdrangt wird. Bei der Abarbeitungder Schleife gibt es also im I-cache nie einen hit, sondern nur misses.

best case Die Schleife paßt vollstandig in den I-cache gleich welcher Or-ganisation, so daß nach einer Abarbeitung bei allen weiteren Schlei-fendurchlaufen nur noch cache-hits auftreten.

Das worst case Beispiel ist unrealistisch, weil die Netto-Kapazitat von ca-ches wesentlich großer ist, weil die Blockgroße i.a.R. großer als 1 ist, umraumliche Lokalitat ausnutzen zu konnen,

6. Die 80x86 Prozessoren (ab Pentium) unterstutzen hardwaremaßig pagedsegments mit 4KB pages und 4MB pages. Beschreiben Sie konkret Vor-und Nachteile der beiden Modi. (4 Pkt)

Pro 4KB pages: kleiner Verschnitt und geringere Ubertragungslast zwischenHintergrund- und Haupt-SpeicherPro 4MB pages: gut etwa fur streaming Anwendungen; da eine paging-Hierarchie-Ebene entfallt, ein Speicherzugriff weniger; kleinere Seiten-TabelleContra 4KB pages: eine weitere Hierarchie-Ebene und damit ein Speicher-zugriff mehr; großere Seiten-TabellenContra 4MB pages: großer Verschnitt und hohere Ubertragungslast zwi-schen Hintergrund- und Haupt-Speicher

Page 83: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 83

Fur 32bit x86-Prozessoren gilt konkret: page directory table (obere Hierar-chie-Ebene) hat 1K 32bit Eintrage mit 20bit page number einer page ta-ble (untere Hierarchie-Ebene) plus 12bit Verwaltungsinformation (Availa-ble, Global, 4K or 4M Page, Reserved, Accessed, Cache Disabled, Write-through, User/Supervisor, Read/Write, Present), also 4KB.jede der 1K page tables (untere Hierarchie-Ebene) hat 1K 32bit Eintragemit 20bit frame number plus (Available, Global, PAT30, Dirty, Accessed,Cache Disabled, Write-through, User/Supervisor, Read/Write, Present), al-so 1K 4KB page tables = total 4MB page tables (falls alle page tables imSpeicher)

7. Gegeben folgender DAG fur eine task mit funf subtasks, execution undcommunication times, PAT = αααβα sowie dem zugehorigen Diagrammder Aktivitaten in Abhangigkeit von der Zeit mit tDAG(PAT ) = 15.

5a 3b

3c 2d

1e

12

3

3 1

1 2 3 4 5 6 7 8 9 0 1 2 3 4 5a(α)b(α)

b(α) to d(β)c(α)d(β)

d(β) to e(α)e(α)

Stellen Sie das Aktivitaten-Diagramm fur PAT = αβαβα auf. (2 Pkt)

5a 3b

3c 2d

1e

12

3

3 1

1 2 3 4 5 6 7 8 9 0 1 2 3 4 5a(α)b(β)d(β)

b(β) to c(α)c(α)

d(β) to e(α)e(α)

Also ist tDAG(PAT ) = 9.

8. Ein block-copy im Speicher kann u.a. aus einer Reihe von Paaren aufein-anderfolgernder LW/SW bestehen. Beschreiben Sie das entstehende datahazard und zeigen Sie, wie der Prozessor es durch forwarding auflost. Er-weitern Sie dazu die forwarding unit in der pipeline-implementation desMIPS R2000 (Fig 6.40) um inputs, outputs und die notwendigen multiple-xers und spezifizieren Sie die zusatzliche Funktionalitat dieser forwardingunit wie in der Vorlesung durch Klauseln. Benennen Sie fehlende Registerdabei wie in Fig. 6.30. (3 Pkt)

1 fur LW/SW und data hazard, 1 fur zusatzlichen Multiplexer und datapath, 1 fur Klausel

Das block-copy enthalt eine Reihe von Instruktionspaaren LW R1,(imd1)R2;

30 Page Attribute Table http://kernelnewbies.org/Linux 2 6 26#head-619b02eadc63322536a5ac956d72ca32035216c3

Page 84: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 84

SW R1,(imd2)R3 mit data hazard.

CC1 CC2 CC3 CC4 CC5 CC6LW R1,(imd1)R2 IF ID EX Mem

Z~WB

SW R1,(imd2)R3 IF ID EX Mem WB

Am Ende von CC4 liegt das Datum in Mem/WB.MDR vor und kann zu Anfangvon CC5 am neuen Multiplexer data2mem vor dem storeData-Eingang desdata memory anliegen. Bei forwarding ist data2mem mit from.Mem/WB.MDRso anzusteuern, daß Mem/WB.MDR an storeData anliegt. Die forwarding unitlost also dieses data hazard auf, wenn folgende Klausel implementiert istund die Rt sowie MemRead durch die betreffenden pipeline-Register gescho-ben werden.

if (EX/Mem.MemWrite && Mem/WB.MemRead &&

(EX/Mem.Rt==Mem/WB.RegisterRd)) data2mem = from.Mem/WB.MDR;

Selbstverstandlich kann dieselbe Klausel auch mit den Register-Inhaltenvon ID/EX und EX/Mem formuliert werden, wenn vielleicht auch nicht sosinnfallig.

(Summe 29 Punkte)

Page 85: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 85

10 RST-Klausur SS09

Klausur Rechner-Strukturen 23.7.09

Name Matrikel

Hilfsmittel sind nicht zugelassen! und aus gegebenem Anlaß:weniger ist mehr! – statt weitschweifiger, wolkiger Poesie

klare, knappe Aussagen mit stimmigen, Stichwort-artigen Begrundungen!Es wird nicht erwartet, daß alle Aufgaben bearbeitet werden!

1. Wieso kann grundsatzlich nur der Compiler wissen, ob eine Verzweigungeher ausgefuhrt (branch taken) wird oder eher nicht (branch not taken)?Geben Sie jeweils ein Beispiel. (3 Pkt)Da Donald Knuth’s MMIX-Prozessor zwei branch on equal-Instruktionen,nennen wir sie BEQtaken und BEQnottaken, kennt, kann der Compiler diejeweils passende branch-Instruktion generieren. Angenommen, DLX oderMIPS – ausgestattet z.B. mit der 2-bit branch prediction der Vorlesung– verarbeiten statt BEQ jetzt BEQtaken und BEQnottaken. Diskutieren SieKosten und Nutzen dieser Anderung des Befehlssatzes. (2 Pkt)Unabhangig von DLX oder MIPS: welche Eigenschaft einer Befehlspipeli-ne bestimmt maßgeblich den Nutzen dieser Anderung des Befehlssatzes?

(2 Pkt)

2. Ein erster Schritt, die superscalar-Implementation des MIPS R2000/R3000von der Parallelisierung durch den Compiler zu befreien, konnte darin beste-hen, beliebig angeordnete Paare von einem ’arithmetischen’ (R-Type, BEQ,J oder NOP) und einem Load/Store-Befehl (LW, SW oder NOP) zuzulassen.Die Instruktionen eines Instruktionspaares mussen also gegebenenfalls ver-tauscht werden.Skizzieren Sie dazu im Arbeitsblatt (Fig. 6.58) die notwendigen Anderun-gen oder Erganzungen im Daten-Pfad und in der Steuerung. BezeichnenSie dabei die Objekte der ’oberen’ pipeline durch ein vorgestelltes a, dieder ’unteren’ pipeline durch ein vorgestelltes m. Wie sind alle Signale in denvon der Anderung betroffenen Stufen zu setzen? (6 Pkt)

Page 86: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 86

3. Konstruieren Sie periodische worst case Folgen von Speicher-Referenzen furjeweilsa) den 1-assoziativen cache mit acht 1-Wort-Blockenb) den 1-assoziativen cache mit vier 2-Wort-Blockenc) den 2-assoziativen cache mit insgesamt acht 1-Wort-Blockend) den 2-assoziativen cache mit insgesamt vier 2-Wort-Blockenmit maximaler Anzahl von cache misses. (Das Phanomen wird wie auch inder Vorlesung als thrashing bezeichnet.) (4 Pkt)Wie sieht eine solche worst case Folge fur einen n-assoziativen cache mitm-Wort-Blocken aus? (2 Pkt)

4. Ein Speicher sei durch paged segments organisiert. Warum wird man tun-lichst Segmente aligned anordnen, d.h. den Segment-Anfang, i.e. die Seg-ment-base address mit dem Anfang einer Seite zusammenfallen lassen?Nennen Sie als Beispiel mindestens einen Prozessor, der diese Speicher-Organisation unterstutzt, und belegen Sie ihr Beispiel. (2 Pkt)

5. In einem Multiprozessor-System stehen beliebig viele PEs zur Verfugung,die die vier Grundrechnungsarten beherrschen. In minimal wieviel Schrit-ten Tp kann x2 +x3 fur gegebenes x mit wievielen PEs (p Stuck) wie berech-net werden? (Der Austausch von Zwischenergebnissen etwa uber ein sharedmemory wird vernachlassigt!) (2 Pkt)Bestimmen Sie den speedup SU(p) = T1/Tp gegenuber einem Mono-Pro-zessor mit einem PE. (1 Pkt)E(p) = SU(p)/p bezeichnet die Effizienz der Parallelisierung. Berechnenund beurteilen Sie Ef(p). (2 Pkt)

6. Der Kommunikationsdurchmesser ist der maximale Abstand (= minimaleAnzahl verbindender links) zweier beliebiger PEs in einem Multiprozessor-System. Bestimmen Sie Anzahl der Verbindungen (links) und Kommunika-tionsdurchmesser fur den Torus mit insgesamt 4× 5 PEs. (2 Pkt)Verallgemeinern Sie Ihre Aussagen fur den Torus mit insgesamt m×n PEsfur beliebige m,n ∈ N. (2 Pkt)

(Summe 30 Punkte)

Page 87: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 87

Losungen zur Klausur Rechner-Strukturen 23.7.09

1. Wieso kann grundsatzlich nur der Compiler wissen, ob eine Verzweigungeher ausgefuhrt (branch taken) wird oder eher nicht (branch not taken)?Geben Sie jeweils ein Beispiel. (3 Pkt)Da Donald Knuth’s MMIX-Prozessor zwei branch on equal-Instruktionen,nennen wir sie BEQtaken und BEQnottaken, kennt, kann der Compiler diejeweils passende branch-Instruktion generieren. Angenommen, DLX oderMIPS – ausgestattet z.B. mit der 2-bit branch prediction der Vorlesung– verarbeiten statt BEQ jetzt BEQtaken und BEQnottaken. Diskutieren SieKosten und Nutzen dieser Anderung des Befehlssatzes. (2 Pkt)Unabhangig von DLX oder MIPS: welche Eigenschaft einer Befehlspipeli-ne bestimmt maßgeblich den Nutzen dieser Anderung des Befehlssatzes?

(2 Pkt)

Ob eine Vezweigung eher ausgefuhrt wird oder eher nicht, hangt vom Kon-text, in dem die Verzweigung steht, ab. Diesen Kontext, z.B. ob eine Ver-zweigung Teil einer Schleife ist, kennt nur der Compiler.Die Verzweigung am Anfang einer Kopf-gesteuerten Schleife, z.B. i=0;

while (i<10) do i++;, wird bis zum Ende der Schleife nie ausgefuhrt.Die Verzweigung am Ende einer Fuß-gesteuerten Schleife, z.B. i=1; repeat

i++; until (i>10);, wird bis zum Ende der Schleife jedesmal ausgefuhrt.

Kosten: ’Verbrauch’ von Op-Codes; Nutzen: branch prediction startet imrichtigen Zustand (von den vier moglichen), so daß die branch penaltiessinken.

Die branch penalties, die etwa bei falscher Sprungvorhersage hinzunehmensind, hangen von der pipeline-Stufe ab, in der sowohl Verzweigungsziel alsauch Verzweigungsbedingung ermittelt sind: je spater dies der Fall ist, umsohoher die branch penalties.

2. Ein erster Schritt, die superscalar-Implementation des MIPS R2000/R3000von der Parallelisierung durch den Compiler zu befreien, konnte darin beste-hen, beliebig angeordnete Paare von einem ’arithmetischen’ (R-Type, BEQ,J oder NOP) und einem Load/Store-Befehl (LW, SW oder NOP) zuzulassen.Die Instruktionen eines Instruktionspaares mussen also gegebenenfalls ver-tauscht werden.Skizzieren Sie dazu im Arbeitsblatt (Fig. 6.58) die notwendigen Anderun-gen oder Erganzungen im Daten-Pfad und in der Steuerung. BezeichnenSie dabei die Objekte der ’oberen’ pipeline durch ein vorgestelltes a, dieder ’unteren’ pipeline durch ein vorgestelltes m. Wie sind alle Signale in denvon der Anderung betroffenen Stufen zu setzen? (6 Pkt)

Hier zunachst eine Implementierung des Vertauschens der beiden Instruk-tionen ’oben’ aIR und ’unten’ mIR in einer eigenen Stufe (ohne ’PC+4’).

Page 88: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 88

aIR

mIR

aIR

mIR

MUX

0

1

MUX

1

0

q

q

c

c

Das gemeinsame Signal c fur beide Multiple-xer ist genau dann aktiv, wenn die beiden In-struktionen zu vertauschen sind. Da der Com-piler nach Voraussetzung sowieso nur zulassi-ge Instruktionspaare erzeugt, ist c high, wennetwa (aIR.opCode==LW) || (aIR.opCode==SW)

oder gleichermaßen wenn (mIR.opCode==0) ||

(mIR.opCode==BEQ) || (mIR.opCode==J). Ei-ne geeignete simple kombinatorische Logik (hiernicht dargestellt) erzeugt also c aus einemder beiden Input-Registern aIR oder mIR.Es empfiehlt sich, c = (aIR.opCode==LW) ||

(aIR.opCode==SW) zu implementieren, da in die-sem Fall nur zwei Vergleicher und zwei OR-Gatter gebraucht werden.

Unsere Debatte zur Implementierung des BEQ mit minimalen branch penal-ties hat gezeigt, daß fur das gegebenenfalls notwendig werdende Vertauschenvon aIR und mIR keine eigene pipeline-Stufe benotigt wird (vgl. auch singlecycle implementation).Nach dem Vertauschen mussen die beiden Instruktionen – jetzt in der richti-gen Reihenfolge – an die main control, namlich aIR.opCode und mIR.opCode,und den nachfolgenden pipeline-Stufen, namlich insbesondere die jeweiligenZielregister, ubergeben werden.Außer dem Signal c, das nicht von der main control erzeugt wird, sind keineanderen Signale abweichend zu setzen.

Alternativ konnte man naturlich auch Multiplexer (alle durch c angesteu-ert) vor aRs, mRs, aRt, mRt, aRd, mRd, aImmediate, mImmediate setzen: dieobige Losung scheint mir lesbarer.

3. Konstruieren Sie periodische worst case Folgen von Speicher-Referenzen furjeweilsa) den 1-assoziativen cache mit acht 1-Wort-Blockenb) den 1-assoziativen cache mit vier 2-Wort-Blockenc) den 2-assoziativen cache mit insgesamt acht 1-Wort-Blockend) den 2-assoziativen cache mit insgesamt vier 2-Wort-Blockenmit maximaler Anzahl von cache misses. (Das Phanomen wird wie auch inder Vorlesung als thrashing bezeichnet.) (4 Pkt)Wie sieht eine solche worst case Folge fur einen n-assoziativen cache mitm-Wort-Blocken aus? (2 Pkt)

Im Folgenden sind alle caches initial leer. Die Strategie ist LRU.

a) Beispielsweise die Folge 1,9,1,9,. . . ladt abwechselnd Mem[1] und Mem[9]

in die cache line mit Index 1.b) Beispielsweise die Folge 1,9,1,9,. . . fuhrt dazu, daß abwechselnd dieBlocke (Mem[0],Mem[1]) und (Mem[8],Mem[9]) in die cache line mit Index0 geladen werden.

Page 89: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 89

c) Beispielsweise die Folge 1,5,9,1,5,9,. . . ladt abwechselnd Mem[1], Mem[5]und Mem[9] in das cache set (zwei cache lines) mit Index 1.d) Beispielsweise die Folge 1,5,9,1,5,9,. . . fuhrt dazu, daß abwechselnd dieBlocke (Mem[0],Mem[1]), (Mem[4],Mem[5]) und (Mem[8],Mem[9]) in dascache set (zwei cache lines) mit Index 0 geladen werden.In a) bis d) lost jeder (neue) Zugriff einen cache miss aus.Sei ` die Anzahl der sets im n-assoziativen cache. Jede der n cache lineseines sets enthalt also einen Block bestehend aus m Worten. Aus der Wort-Adresse address ergibt sich dann der set index aus (address/m) mod `.Die Folge 0, `m, 2`m, . . . , (n − 1)`m, 0, `m, . . . , (n − 1)`m, . . . ladt ab-wechselnd die Blocke mit Startadressen 0, `m, 2`m, . . . , (n − 1)`m in dasset mit Index 0, so daß jeder (neue) Zugriff einen cache miss auslost.

4. Ein Speicher sei durch paged segments organisiert. Warum wird man tun-lichst Segmente aligned anordnen, d.h. den Segment-Anfang, i.e. die Seg-ment-base address mit dem Anfang einer Seite zusammenfallen lassen?Nennen Sie als Beispiel mindestens einen Prozessor, der diese Speicher-Organisation unterstutzt, und belegen Sie ihr Beispiel. (2 Pkt)

Wenn ein Segement-Anfang nicht mit einem Seiten-Anfang zusammenfallt,hat man internen Verschnitt in zwei Seiten hinzunehmen: in der ersten undi.a.R. in der letzten Seite des Segmentes. Beim Laden des Segments mussenalso i.a.R. zwei Seiten, die nur teilweise Daten des Segements enthalten,ganz geladen werden: Laden und ebenso Sichern beim Verdrangen dauertlanger.Die 80x86-Prozessoren unterstutzen die Speicherorganisation anhand pagedsegments, vgl. www.weblearn.hs-bremen.de/risse/RST/docs/RSTslide.pdf,80x86-Unterstutzung der Speicher-Anbindung.

5. In einem Multiprozessor-System stehen beliebig viele PEs zur Verfugung,die die vier Grundrechnungsarten beherrschen. In minimal wieviel Schrit-ten Tp kann x2 +x3 fur gegebenes x mit wievielen PEs (p Stuck) wie berech-net werden? (Der Austausch von Zwischenergebnissen etwa uber ein sharedmemory wird vernachlassigt!) (2 Pkt)Bestimmen Sie den speedup SU(p) = T1/Tp gegenuber einem Mono-Pro-zessor mit einem PE. (1 Pkt)Ef(p) = SU(p)/p bezeichnet die Effizienz der Parallelisierung. Berechnenund beurteilen Sie Ef(p). (2 Pkt)

Im ersten Schritt berechnet ein PE 1+x und ein anderes PE x2. Im zweitenSchritt fuhrt eines der beiden PEs die Ergebnisse zusammen, indem es dieZwischenergebnisse multipliziert: x2 + x3 = x2(1 + x). Es gilt T2 = 2.Ein Mono-Prozessor braucht (mindestens) drei Schritte, also T1 = 3 unddaher SU(2) = 3/2.E(p) = SU(p)/p = 3/4 spiegelt wider, daß von den vier Prozessor-Schritten(Anzahl Prozessoren × Anzahl der Schritte) ja nur drei genutzt werden.

Page 90: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 90

6. Der Kommunikationsdurchmesser ist der maximale Abstand (= minimaleAnzahl verbindender links) zweier beliebiger PEs in einem Multiprozessor-System. Bestimmen Sie Anzahl der Verbindungen (links) und Kommunika-tionsdurchmesser fur den Torus mit insgesamt 4× 5 PEs. (2 Pkt)Verallgemeinern Sie Ihre Aussagen fur den Torus mit insgesamt m×n PEsfur beliebige m,n ∈ N. (2 Pkt)

Der Torus mit insgesamt 4× 5 PEs besteht aus vier ’waagerechten’ Ringenmit jeweils 5 links und aus funf ’senkrechten’ Ringen mit jeweils 4 links.Die 20 PEs sind also durch insgesamt 40 links verbunden.Der Abstand von zwei PEs setzt sich aus dem ’waagerechten’ und dem’senkrechten’ Abstand zusammen. Der minimale ’waagerechte’ Abstand ist2, der minimale ’senkrechte’ Abstand ist auch 2. Also ist der Kommunika-tionsdurchmesser des Torus’ mit insgesamt 4× 5 PEs gerade 2 + 2 = 4.Der Torus mit insgesamt m× n PEs hat 2mn links.Sein Kommunikationsdurchmesser ist bm/2c+ bn/2c.

(Summe 30 Punkte)

Page 91: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 91

11 RST-Klausur SS08

Klausur Rechner-Strukturen 7.7.08

Name Matrikel

Hilfsmittel sind nicht zugelassen! und aus gegebenem Anlaß:weniger ist mehr! – statt weitschweifiger, wolkiger Poesie

klare, knappe Aussagen mit stimmigen, Stichwort-artigen Begrundungen!

1. Klassifizieren Sie Architektur/Befehlssatz eines Ihnen bekannten µ-Control-lers, z.B. des 8051. Belegen Sie Ihre Aussagen durch konkrete Beispiele.

(je 1/2 Pkt, max 3 Pkt)

2. Beurteilen Sie den Nutzen der Erweiterung des DLX- oder MIPS R2000-Befehlssatzes um die (skalare) multiply and accumulate Instruktion mac.

(1 Pkt)Spezifizieren/diskutieren Sie Semantik und Format von mac. (1 Pkt)In der Vorlesung wurde die Implementierung von float-Arithmetik nur ge-streift. Beurteilen Sie daher hier die Kosten einer ggfls. reinen Integer-Implementierung (Operanden und Ergebnis sind Integer) von mac in dera) single cycle implementation (1 Pkt)b) multi cycle implementation (1 Pkt)c) pipeline implementation (1 Pkt)

3. Erweitern Sie die pipeline-Implementation des MIPS R2000 um den loadupper immediate Befehl lui Rt,Immd im Format 0xF * Rt Immd ,der das 16bit immediate Immd in das obere Halbwort von Rt ladt. (Komplet-tieren Sie die Spezifikation geeignet. Warum ist Rt Zielregister?) SkizzierenSie dazu im Arbeitsblatt (Fig. 6.51) die notwendigen Anderungen oder Er-ganzungen im Daten-Pfad und in der Steuerung. Wie sind die Signale injeder Phase der Befehlsabarbeitung zu setzen? (8 Pkt)

Erlautern Sie den Sinn dieser Befehlssatzerweiterung an einem konkretenBeispiel fur den Gebrauch von lui. Was bedeutet lui fur die Behandlungvon data hazards? (2 Pkt)

Page 92: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 92

4. Nur unter welchen Bedingungen ist eine cache-Hierarchie (1st level cache,2nd level cache, . . . ) sinnvoll? (2 Pkt)

Etwa im HP PA7200 oder im AMD K7 und K8 kommen victim caches zumEinsatz: entweder halt wie im HP PA7200 der victim cache (zwischen cacheund memory) ausschließlich cache lines, die aus dem eigentlichen cache ver-drangt wurden, oder aus einem cache verdrangte cache lines werden wie imAMD K7 oder AMD K8 im next level cache gespeichert. Welche Vorstel-lung, welche Annahme, welches Kalkul steckt hinter der Implementationvon victim caches? (2 Pkt)

5. Definieren Sie ein (kleines) virtuelles Speicher-System zusammen mit sei-nem physikalischen Speicher, das per paging verwaltet wird, und konstru-ieren Sie fur dieses Speicher-System konkret eine (unendliche) worst caseFolge von Memory-Referenzen. (4-Pkt)

6. Fur die Losung eines n × n-Systems linearer Gleichungen A~x = ~b brauchtein Mono-Prozessor 1

6(n−1)n(2n+5) MAC-Takte. Sei n = 2p−1 ungerade.

Angenommen, es stehen p = (n+1)/2 PEs zur Verfugung. Grob gesprochen,sei nun jedes PE genau zwei Spalten zugeordnet. Pro ZE aktualisiert jedesPE genau ein Element der Koeffizienten-Matrix A bzw. des Vektors ~b derrechten Seite. Berechnen Sie den Beschleunigungsfaktor β aufgrund dieserParallelisierung fur den Eliminationsschritt des Gauß-Verfahrens fur einegunstige Wahl der beiden Spalten fur große n. (4 Pkt)Berechnen Sie den Auslastungsgrad der PEs fur große n. (1 Pkt)Empfehlen Sie eine fur diese Anwendung gunstige Verbindungsstruktur.

(1-Pkt)

Fig. 6.51 s. Anlage

(Summe 32 Punkte)

Page 93: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 93

Losungen zur Klausur Rechner-Strukturen 7.7.08

1. Klassifizieren Sie Architektur/Befehlssatz eines Ihnen bekannten µ-Control-lers, z.B. des 8051. Belegen Sie Ihre Aussagen durch konkrete Beispiele.

(je 1/2 Pkt, max 3 Pkt)

1/2 fur Akkumulator/Register-Architektur (wie 8086) – es gibt einen Akku-mulator ACC, wie man vor allem an den logischen Instruktionen sehen kann,aber auch Registersatze R0, . . . , R7 in vier Registerbanken, und , aber auchSP mit push und pop; 1/2 zwei Operanden Befehle – wie add A,B; A+=B;1/2 diverse Adressierungsarten – wie direct, register, immediate, indirect@DPTR, indirect plus index @A+DPTR, bit-Adressierung; 1/2 fur conditioncodes – etwa CY im PSW mit JC; 1/2 fur unterschiedliche Befehlslangen(1byte etwa fur add A,Rr bis 3byte etwa fur mov direct,direct) und Be-fehlsausfuhrungszeiten (1 cycle etwa fur add A,Rr bis 4 cycles etwa fur MUL

und DIV) 1/2 fur typische CISC-Instruktionen wie etwa cjne, djnz oderacall und lcall, 1/2 fur 8bit-Operanden bis auf mov DPTR,#16bit undinc DPTR

Alle Merkmale zusammen genommen, ist der 8051 als CISC-Prozessor wieder 8086 ein Kind seiner Zeit: der Befehlssatz ist ausgesprochen Speicher-optimiert!

2. Beurteilen Sie den Nutzen der Erweiterung des DLX- oder MIPS R2000-Befehlssatzes um die (skalare) multiply and accumulate Instruktion mac.

(1 Pkt)Spezifizieren/diskutieren Sie Semantik und Format von mac. (1 Pkt)In der Vorlesung wurde die Implementierung von float-Arithmetik nur ge-streift. Beurteilen Sie daher hier die Kosten einer ggfls. reinen Integer-Implementierung (Operanden und Ergebnis sind Integer) von mac in dera) single cycle implementation (1 Pkt)b) multi cycle implementation (1 Pkt)c) pipeline implementation (1 Pkt)

1 fur MAC-Instruktionen – mit float-Operanden und float-Ergebnis – sindumso nutzlich, je haufiger etwa Systeme linearer Gleichungen per Gauß unddamit auch Systeme partieller Differentialgleichungen zu losen sind.1 Zusatzpunkt fur mangelnde Sinnhaftigkeit einer ’reinen integer-Implemen-tierung’ von mac und fur Problem, daß die oberen 32bit des 64bittigen Pro-duktes ignoriert werden mussen. 1 fur entwedermac Rd,Rs,Rt; Rd += Rs*Rt im R-Format op Rs Rt Rd * functodermac Rs,Rt,Rd,Re; Re = Rd+Rs*Rt im neu definierten RR-Formatop Rs Rt Rd Re funct , was einen zweiten write-port (writeRegis-

ter2, writeData2) an der Register-Datei notig macht!1 fur Erweiterung um mac macht weiteren Adder notig und erhoht so dieDauer der Abarbeitung aller Instruktionen der single cycle implementation,

Page 94: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 94

falls der Befehlssatz nicht schon Instruktionen wie beispielsweise sqrt, sinoder cos enthalt, deren Abarbeitung in jedem Fall langer als die von mac

dauert.1 falls HW-Aufwand moglich, ist die Erweiterung der multi cycle imle-mentation um mac umso sinnvoller, je haufiger mac gebraucht wird, damac Rd,Rs,Rt besser als die Emulation durch das Paar mul Rtmp,Rs,Rt

und add Rd,Rd,Rtmp ist, weil doppelte cycles IF, ID und WB und das tem-porare Register Rtmp eingespart werden.1 fur die Implementierung der reinen Integer-Version von mac mit ihrerMultiplikation und darauffolgenden Addition erzwingt eine zweite EX-Stufe,was Latenz und penalties erhohen wurde. Besser ist es also, einen zusatz-lichen Adder in der MEM-Stufe vorzusehen. Kosten = Adder + Steuerung,Nutzen = Beschleunigung gegenuber Emulation wie in multi cycle imple-mentation.

3. Erweitern Sie die pipeline-Implementation des MIPS R2000 um den loadupper immediate Befehl lui Rt,Immd im Format 0xF * Rt Immd ,der das 16bit immediate Immd in das obere Halbwort von Rt ladt. (Komplet-tieren Sie die Spezifikation geeignet. Warum ist Rt Zielregister?) SkizzierenSie dazu im Arbeitsblatt (Fig. 6.51) die notwendigen Anderungen oder Er-ganzungen im Daten-Pfad und in der Steuerung. Wie sind die Signale injeder Phase der Befehlsabarbeitung zu setzen? (8 Pkt)

Erlautern Sie den Sinn dieser Befehlssatzerweiterung an einem konkretenBeispiel fur den Gebrauch von lui. Was bedeutet lui fur die Behandlungvon data hazards? (2 Pkt)

1 MIPS/DLX-Wort = 4 Byte = 32 bit, also 1 halfword = 2 Byte = 16 bit1 fur was macht lui mit dem unteren Halbwort? am besten (s.u.) Nullsetzen, 1 fur Rt ist Zielregister, weil fur Rs ein weiterer Multiplexer notigwurde, 1 fur shift16(Immd) wird in ID erzeugt, durch alle pipeline Regis-ter durchgereicht und in WB in das Zielregister Rt geschrieben, 1 fur ambesten durch Erweitern des Multiplexers MemtoReg, der – mit 2 angesteuert– shift16(Immd) an WriteData anlegt, 1 fur alle Signale in IF, ID wiebisher, 1 fur alle Signale in EX deaktiviert (also insbesondere RegDst=0), 1fur alle Signale in Mem alle deaktiviert, 1 fur MemtoReg=2 und RegWrite=1

1 fur Beispiel des Ladens von 32bit immediates in ein Register durch die bei-den Instruktionen lui Rt,Immdupper und addi Rt,Rt,Immdlower, 1 furda der Zielwert durch die drei letzten pipeline-Register durchgereicht wird,konnen data hazards per forwarding aufgelost werden.

Selbstverstandlich kann alternativ auch die ALU die ’Funktion’ des shift16ersetzen, allerdings um den Preis eines erhohten Aufwands bei der ALU-Control: ALUop ist zu erweitern, so daß die ALU bei lui eben das auf 32biterweiterte Immediate Immd per sll um 16 Stellen nach links schiebt: also inEX signextend(Immd) per ALUSrc=1 an ALU anlegen sowie mit RegDst=0das Zielregister festlegen, in EX festes shamt=16 per Multiplexer an den

Page 95: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 95

shamt-Eingang der ALU anlegen (sollte die ALU shamt am oberen Eingangerwarten, eben uber neuen MUX anlegen, vgl. srav) und die ALU mit slaansteuern (d.h. eventuell fuhrende Einsen fallen links einfach heraus) undin WB das Ergebnis per MemtoReg=0 und RegWrite=1 in Rt der Register-Datei schreiben.Als weitere Alternative kann man naturlich auch den Umstand, daß im For-mat von LUI das Feld Rs zwangsweise Null ist, nutzen und das geschobeneImmediate auf R0 aufaddieren.

4. Nur unter welchen Bedingungen ist eine cache-Hierarchie (1st level cache,2nd level cache, . . . ) sinnvoll? (2 Pkt)

1 fur Große mit Begrundung, 1 fur Geschwindigkeit mit Begrundung

Ein cache-System mit verschiedenen Hierarchie-Ebenen ist nur dann sinn-voll, wenn sich Zugriffsgeschwindigkeit und Kosten pro bit und damit cache-Große auf den einzelnen Hierarchie-Ebenen wesentlich unterscheiden. So istz.B. ein cache on die schneller und wegen des Platzbedarfes teuerer pro bitals ein schon durch die Anbindung (back side bus31, hypertransport) lang-samerer cache off die, der zudem ziemlich sicher billiger pro bit herzustel-len ist (keine Platzbeschrankungen, keine Stromversorgungsprobleme, keinezusatzlichen Kuhlprobleme).

Etwa im HP PA7200 oder im AMD K7 und K8 kommen victim caches zumEinsatz: entweder halt wie im HP PA7200 der victim cache (zwischen cacheund memory) ausschließlich cache lines, die aus dem eigentlichen cache ver-drangt wurden, oder aus einem cache verdrangte cache lines werden wie imAMD K7 oder AMD K8 im next level cache gespeichert. Welche Vorstel-lung, welche Annahme, welches Kalkul steckt hinter der Implementierungvon victim caches? (2 Pkt)

1 fur verdrangt, d.h. schon mal im cache, so daß erneute Referenzierungerwartet wird, 1 fur Mehrfaches Vorhalten auf verschiedenen Speicher-Hier-archie-Ebenen vermeiden

Die Annahme, daß einmal verdrangte cache lines mit großer Wahrscheinlich-keit erneut referenziert werden, laßt die Implementation von victim cachesim HP PA7200 – precision architecture – sinnvoll erscheinen.Im Fall des AMD K7 und K8 vermeiden victim caches das mehrfache Spei-chern derselben Information in caches verschiedener levels: verdrangte cachelines lieber fur erwartete, erneute Referenzierung speichern statt verwerfen!

5. Definieren Sie ein (kleines) virtuelles Speicher-System zusammen mit sei-nem physikalischen Speicher, das per paging verwaltet wird, und konstru-ieren Sie fur dieses Speicher-System konkret eine (unendliche) worst caseFolge von Memory-Referenzen. (4-Pkt)

31 s.a. http://www.wisegeek.com/what-is-a-front-side-bus.htm

Page 96: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 96

Im worst case lost jeder Speicherzugriff ein page fault aus.Ein kleines, nicht notwendig minimales, dafur aber halbwegs sinnvolles Bei-spiel bestehe aus einem virtuellen Speicher mit 4 Seiten a page size = 2n

bytes, der auf einen physikalischen Speicher mit nur zwei Seiten abzubildenist.

virtual addressn+1 n n-1 0

virtual page number page offset

page table

valid physical page number

physical addressn n-1 0

physical page number page offset

Die Adressumsetzung wird also mit einer Seiten-Tabelle mit 4 Eintragena 2bit, namlich valid und physical page number, erledigt (Netto-Kapazitat8bit). virtual page number indiziert die Eintrage der Seiten-Tabelle, in derdann die zugehorige physical page number gefunden wird. Als Ersetzungs-stratgie sei LRU unterstellt (was sonst?). Wenn nun zyklisch nacheinander

die virtuellen Adressen 00

n mal︷ ︸︸ ︷0 . . . 0, 01

n mal︷ ︸︸ ︷0 . . . 0, 10

n mal︷ ︸︸ ︷0 . . . 0 und 11

n mal︷ ︸︸ ︷0 . . . 0 referen-

ziert werden, so lost – nach zwei Zugriffen startup – erstens jeder Spei-cherzugriff ein page fault aus, bei jedem Speicherzugriff wird zweitens dievorletzte Seite verdrangt und drittens muß die aktuelle Seite jedesmal nach-geladen werden. Dieses worst case Phanomen heißt thrashing und kann z.B.auftreten, wenn ein Programm auf Zeilen-weise im Speicher abgelegte Ma-trizen Spalten-weise zugreift.

6. Fur die Losung eines n × n-Systems linearer Gleichungen A~x = ~b brauchtein Mono-Prozessor 1

6(n − 1)n(2n + 5) ZE. Sei n = 2p − 1, p ∈ N ungera-

de. Angenommen, es stehen nun p = (n + 1)/2 PEs zur Verfugung. Grobgesprochen, sei jedes PE genau zwei Spalten zugeordnet (vgl. Parallelisie-rung in der Vorlesung). Pro ZE aktualisiert jedes PE genau ein Element

der Koeffizienten-Matrix A bzw. des Vektors ~b der rechten Seite. BerechnenSie den Beschleunigungsfaktor β aufgrund dieser Parallelisierung fur denEliminationsschritt des Gauß-Verfahrens fur eine gunstige Wahl der beidenSpalten fur große n. (4 Pkt)Berechnen Sie den Auslastungsgrad der PEs fur große n. (1 Pkt)Empfehlen Sie eine fur diese Anwendung gunstige Verbindungsstruktur.

(1-Pkt)

PEi sei etwa fur die i-te und fur die (i + p)-te Spalte zustandig, wobei die

(n+ 1)-te Spalte den (Spalten-) Vektor ~b der rechten Seite reprasentiert.

Eliminieren von x1 in n− 1 Gleichungen ist in je zwei ZE moglich.

Page 97: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 97

. . .

Eliminieren von xi in n − i Gleichungen ist fur i ≤ p in je zwei ZEmoglich.

. . .

Eliminieren von xp in n− p Gleichungen ist in je zwei ZE moglich.

Eliminieren von xp+1 in n−p−1 Gleichungen ist in je einer ZE moglich.

. . .

Eliminieren von xn−1 in der letzten Gleichung ist in einer ZE moglich.

Sei Tp = T (p, n) = T (p, 2p − 1) die Anzahl ZE, die das Multi-Prozessor-System fur die Elimination insgesamt braucht. Fur T gilt dann

T = 2(n− 1) + 2(n− 2) + . . .+ 2(n− p) + (n− p− 1) + . . .+ 1

= 2n−1∑i=n−p

i+

n−p−1∑i=1

i = 2

p∑j=1

(n− j) + 12(n− p− 1)(n− p)

= 2(pn− 1

2p(p+ 1)

)+ 1

2(2p− 1− p− 1)(2p− 1− p)

= 2p(2p− 1)− p(p+ 1) + 12(p− 2)(p− 1)

= 12(2(n+ 1)n+ (p− 2)(p− 1)− 2p(p+ 1)) = 1

8

(7n2 − 4n− 3

)ZE.

Also gilt fur den Beschleunigungsfaktor β aufgrund dieser Parallelisierungβ = 8

6(n−1)n(2n+5)

7n2−4n−3≈ 8

21(n+ 1) = 16

21p bei p = 1

2(n+ 1) PEs.

Der Auslastungsgrad α betragt α = 86

(n−1)n(2n+5)(7n2−4n−3)p

≈ 1621

.

Wenn die einzelnen PEs die beiden ihnen zugeordneten Koeffizienten-Spal-ten lokal speichern und langer brauchen, um auf nicht-lokale Koeffizientenzuzugreifen, ergibt sich eine NUMA. PEs mussen auf einen Koeffizienten inderselben Spalte, auf einen Koeffizienten in derselben Zeile sowie auf daspivot-Element zugreifen konnen. Entweder eine zentrale (Vektor-) Controlkoordiniert den Austausch von pivot und Koeffizienten uber grids, star o.a.oder PEs synchronisieren sich durch Botschaftsaustausch. Naheliegend istdann also eine grid-Verbindungsstruktur, deren links allerdings sehr un-gleichmaßig genutzt werden.

(Summe 32 Punkte)

Page 98: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 98

12 RST-Klausur WS07

Wiederholer-Klausur Rechner-Strukturen 7.11.07

Name Matrikel

Hilfsmittel sind nicht zugelassen! und aus gegebenem Anlaß:weniger ist mehr! – statt weitschweifiger, wolkiger Poesie

klare, knappe Aussagen mit stimmigen, Stichwort-artigen Begrundungen!Es wird nicht erwartet, daß alle Aufgaben bearbeitet werden!

Es sind mindestens 16 Punkte zu erzielen!

1. Der single instruction computer, SIC verarbeitet bekanntermaßen nur eineeinzige Instruktion subtract and branch if negative, SBN

sbn a,b,c // Mem[a] -= Mem[b]; if (Mem[a]<0) goto c;

Entwerfen und skizzieren Sie eine (optimale) pipeline-Implementierung des

SIC.

(Entwurf 2 Pkt, Datenpfad-Skizze 2 Pkt, control 2 Pkt,

data & control hazards 2+2 Pkt, βSCI → pipline mit Bewertung 2 Pkt

)2. Als eine store instruction geben Patterson & Hennessy im Anhang A den

Befehl store double word mit der Syntax sd Rsrc address und derBedeutung “speichere 8byte aus Rsrc und nachstem Register Rsrcinc abaddress” an, jedoch ohne Angabe eines Befehlsformats.Was heißt das fur den Befehl sd ? Wie sieht das Format von sd vermutlichaus? Wurden Sie diesen Befehl in den Befehlssatz jeweils einer multicycle-bzw. einer pipeline-Implementierung aufnehmen? Begrundung? (4 Pkt)

3. Erweitern Sie die multi cycle-Implementation des MIPS R2000/R3000 umden store double Befehl sd Rs,Rt,Imd, der Register Rt in Mem[Rs+Imd] undRegister Rti, also das auf Rt folgende Register, in Mem[Rs+Imd+4] schreibt.(Welches Format ist geeignet? vgl. Aufgabe 2)Skizzieren Sie dazu im Arbeitsblatt (Fig. 5.33) die notwendigen Anderun-gen oder Erganzungen im Daten-Pfad und in der Steuerung. Wie sind dieSignale zu setzen? Erzeugen Sie die Signale durch Erweiterung des Mikro-Programms in Fig. 5.46. (8 Pkt)

4. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System mitLRU auf Wortadressen 40,41,52,73,63,40,41,63,74,64,40,41a) fur einen 1-assoziativen (direct mapped) cache mit 8 1-Wort-Blocken,b) fur einen 1-assoziativen cache mit 4 2-Wort-Blocken,c) fur einen 2-assoziativen cache mit 1-Wort-Blocken undd) fur einen 2-assoziativen cache mit 2-Wort-Blocken

Page 99: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 99

– jeweils mit LRU32. Skizzieren Sie die jeweils sich ergebenden cache-Bele-gungen, bestimmen Sie die Anzahl von hits vs misses und identifizieren Siejeweils raumliche und zeitliche Lokalitat der hits. (4 Pkt)

5. In der vorangehenden Aufgabe seien alle Speicher-Zugriffe auf jede zweiteAdresse schreibend. Stellen Sie die Belegungen der vier cache-Organisati-onen fur jeweils die write back mit fetch on write bzw. write around Schreib-Strategien dar. Geben Sie jeweils auch die Anzahl der insgesamt uber denBus ubertragenen Worter an. (4 Pkt)

6. Virtuelle Wort-Adressen seien 24bit breit, physikalische Wort-Adressen 21bit.Speicher sei in Seiten von 1024 Worten organisiert. Welcher physikalischenAdresse entspricht die dezimale virtuelle Adresse 4097, wenn zu einem Zeit-punkt ein Ausschnitt der dezimalen Seitentabelle wie folgt aussieht? (2 Pkt)

virtual page number 0 1 2 3 4 5 6 7 . . .physical page number 7 9 6 3 2 5 4 1 . . .

7. Gegeben p PEs, die gemeinsam auf einen globalen Speicher zugreifen. Imglobalen Speicher liege ein Feld mit n Elementen. Geben Sie einen parallelenAlgorithmus fur diese p PEs an, der das Maximum der Feld-Elemente be-stimmt – zunachst fur p = n/2, dann verallgemeinert fur p < n/2. WelcheVerbindungsstruktur zwischen PEs und Speicher ist vorteilhaft? WelcherBeschleunigungsfaktor ergibt sich? (4 Pkt)

Fig. 5.33 s. AnlageFig. 5.46: das zu erweiternde µ-Programm fur MIPS R2000 in symbolischer Form

ALU Register PC write sequen-

label cntrl SRC1 SRC2 control Memory control cing

Fetch Add PC 4 read PC ALU seq

Add PC Extshft read dispatch1

Mem1 Add A Extend dispatch2

LW2 read ALU seq

write MDR to Rt fetch

SW2 write ALU fetch

R-Type1 func A B seq

write ALU to Rd fetch

BEQ1 Sub A B ALU-zero fetch

JUMP1 jumpaddr fetch

(Summe 38 Punkte)

32LRU = least recently referenced

Page 100: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 100

Losungen zur Klausur Rechner-Strukturen 7.11.07

1. Der single instruction computer, SIC verarbeitet bekanntermaßen nur eineeinzige Instruktion subtract and branch if negative, SBN

sbn a,b,c // Mem[a]-=Mem[b]; if (Mem[a]<0) goto c;

Entwerfen und skizzieren Sie eine (optimale) pipeline-Implementierung des

SIC.

(Entwurf 2 Pkt, Datenpfad-Skizze 2 Pkt, control 2 Pkt,

data & control hazards 2+2 Pkt, βSCI → pipline mit Bewertung 2 Pkt

)1/2 fur je nach Anzahl der memory ports eine Stufe oder zwei Stufen furA:=Mem[a]; B:=Mem[b]; (d.h. load pipeline registers A, B), 1/2 fur eineEX-Stufe (d.h. Subtraktion) D:=A-B;, 1/2 fur eine WB-Stufe Mem[a]:=D,1/2 fur branching if(Mem[a]<0) goto c; in einer pipeline-Stufe

In der folgenden Implementierung ist unterstellt, daß der Einfachkeit hal-ber c eine absolute (statt PC-relative) Adresse darstellt, daß es pipeline-Register A, B und D sowie das flag neg gibt und daß zu einem Zeitpunktdrei lesende Zugriffe auf Mem[PC], Mem[a] sowie Mem[b] und zugleich einschreibender Zugriff auf (Mem[a]) durchgefuhrt werden konnen.

Stufe Beschreibung CodeIF fetch instruction, increment PC IR.abc:=Mem[PC]; PC+=|SBN|;

ID load pipeline registers A:=Mem[a]; B:=Mem[b];

EX subtract, set branch flag D:=A-B; neg = (D<0);

Br conditional branch if (neg) PC:=c;

WB write difference back Mem[a]:=D;

Stucture hazards uberpruft man anhand der in der gefullten pipeline par-allel stattfindenden Operationen, also ab 5. cycle.

1 2 3 4 5 6 7 8 9 . . .IF ID EX Br WB

IF ID EX Br WBIF ID EX Br WB

IF ID EX Br WBIF ID EX Br WB

Die pipeline-Stufen Br und WB sind hier ubrigens vertauscht, um branchpenalties zu reduzieren. Falls in der folgenden Skizze des Datenpfades einge-zeichnet, werden die Inhalte eines pipeline-Registers jeweils an das nachstepipeline-Register weitergereicht, ohne daß dies explizit dargestellt ware.

Page 101: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 101

PC

IF/ID

IR.a

IR.b

IR.c

ID/EX

A

B

IR.a

IR.c

EX/Br

Dneg

IR.a

IR.c

Br/WB

D

IR.a

Mem

PC

a

b

writeData

writeAddr

Mem[PC]

Mem[a]

Mem[b]

+

|SBN |

-

MUX

label Register Memory PC write control sequencing

fetch IF/ID.IR:=Mem[PC] PC+=|SBN| seq

decode ID/EX.A:=Mem[IF/ID.IR.a]

ID/EX.B:=Mem[IF/ID.IR.b] seq

execute EX/Br.D:=ID/EX.A-ID/EX.B

EX/Br.neg:=(ALUout<0) seq

branch if (neg) PC:=EX/Br.IR.c seq

write back Mem[Br/WB.IR.a]:=Br/WB.D fetch

µ-Instruktionen haben dabei die auf der Hand liegende Bedeutungen: Wennaus dem Speicher gelesen wird, ist MemRead=1, wenn in den Speicher ge-schrieben wird, ist MemWrite=1 zu setzen. Ebenso bedeutet etwa PC+=|SBN|,daß das Register PC geschrieben wird und wie der MUX anzusteuern ist.

Es gibt typische read after write hazards, wenn Mem[a] oder Mem[b] ge-lesen werden sollen, bevor die entsprechende Speicherzelle durch ein vor-angehendes SBN geschrieben wurde: man lost solche data hazards durchforwarding, d.h. Werte werden aus pipeline-Registern statt aus dem Spei-cher gelesen. Die Funktionalitat der forwarding unit hat hier also die Formif (data hazard) then read pipeline register else read memory.Zusatzliche entsprechend gesteuerte Multiplexer erbringen diese Funktio-nalitat. Data hazards treten zwischen aktueller und Vorganger- sowie Vor-vorganger-Instruktion auf. Die folgende Beschreibung des forwarding inPidgin-C berucksichtigt branching nicht.

if (IF/ID.IR.a==ID/EX.IR.a) ID/EX.A:=EX/Br.D;

if (IF/ID.IR.b==ID/EX.IR.a) ID/EX.B:=EX/Br.D;

if (IF/ID.IR.a==EX/Br.IR.a) ID/EX.A:=Br/WB.D;

if (IF/ID.IR.b==EX/Br.IR.a) ID/EX.A:=Br/WB.D;

Page 102: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 102

Eine branch unit muß feststellen, daß das Programm tatsachlich verzweigt,und muß die falschlich in die pipeline geladenen SBNs am Schreiben in Br

oder WB hindern! Erst am Ende der EX-Phase liegt neg vor und damit, obdas Programm verzweigt oder nicht. Der PC ist erst am Ende der Br-Phaseaktualisiert, es mussen also – in bekannter Weise – die drei auf die verzwei-gende Instruktion folgenden Instruktionen invalidiert werden. Branchingkostet also drei cycles penalty.

Unter der Annahme, daß Memory-Zugriffe sowie ALU-Operationen etwa10nsec und Register-Zugriffe etwa 5nsec dauern, ergibt sich der Beschleuni- vgl. P&Hgungsfaktor β aufgrund des Uberganges von der singlecycle- zur pipeline-Implementierung zu β = (10+10+10+5+10)n

50+10(n−1)= 45

50/n+10→ 4.5 fur n → ∞,

allerdings nur wenn man penalties fur branching nicht berucksichtigt. Diedrei cycles branch penalty konnen erst berucksichtigt werden, wenn dieHaufigkeit, mit der verzweigende SBNs abgearbeitet werden, bekannt ist.

2. Als eine store instruction geben Patterson & Hennessy im Anhang A denBefehl store double word mit der Syntax sd Rsrc address und derBedeutung “speichere 8byte aus Rsrc und nachstem Register Rsrcinc abaddress” an, jedoch ohne Angabe eines Befehlsformats.Was heißt das fur den Befehl sd ? Wie sieht das Format von sd vermutlichaus? Wurden Sie diesen Befehl in den Befehlssatz jeweils einer multicycle-bzw. einer pipeline-Implementierung aufnehmen? Begrundung? (4 Pkt)

1 fur sd ist eine Pseudo-Instruktion, die der Assembler in zwei sw ubersetzt,namlich sw Rs,Rt,Imd und sw Rs,Rti,Immd+4 fur address = Rs+Imd, der Assembler

checks evenRt in 5bitImd+4 in 16bit

Assembler bestimmt Rti=Rt+1 und Imd+4 zur Compile-Zeit!, 1 fur I-Formatop Rs Rt Imd 1 fur multicycle-Implementierung: falls genugend freie

OpCodes zur Verfugung stehen, spricht nichts gegen die sechs cycles IF, ID,EX1, Store1, EX2, Store2, 1 fur pipeline-Implementierung: entweder Auf-losen in zwei Store-Instruktionen durch den Assembler mit dem Seiteneffekt,daß die pipeline nicht geandert werden muß, oder aber sd in hardware insechs pipeline cycles (wieder IF, ID, EX1, Mem1, EX2, Mem2) mit zwei-ter ALU und zweitem Schreib-Port und damit großerer Latenz oder in funfpipeline cycles (jetzt IF, ID, EX1, Mem1 & EX2, Mem2) mit demselbenhardware-Aufwand und derselben Latenz wie bei zwei sw.

3. Erweitern Sie die multi cycle-Implementation des MIPS R2000/R3000 umden store double Befehl sd Rs,Rt,Imd, der Register Rt in Mem[Rs+Imd] undRegister Rti, also das auf Rt folgende Register, in Mem[Rs+Imd+4] schreibt.(Welches Format ist geeignet? vgl. Aufgabe 2)Skizzieren Sie dazu im Arbeitsblatt (Fig. 5.33) die notwendigen Anderun-gen oder Erganzungen im Daten-Pfad und in der Steuerung. Wie sind dieSignale zu setzen? Erzeugen Sie die Signale durch Erweiterung des Mikro-Programms in Fig. 5.46. (8 Pkt)

1 fur Incrementiere Rt (Ergebnis in Rti) ’prophylaktisch’ mit einem eigenen5bit Incrementer, 1 fur Datenpfad von IR.Rt zu Incrementer und Ergebnis

Page 103: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 103

Rti uber neuen MUX an ReadRegister2, 1 fur Datenpfad von ALUout

uber zu erweiternden MUX ALUSrcA an ALU, 1 fur EX1 berechne Rs+Imd

in ALUout und fur WB1 schreibe Rt in M[ALUout], 1 fur EX2 berechneRs+Imd+4 in ALUout und fur WB2 schreibe Rti in M[ALUout],3 fur Steuerung: erganze das µ-Programm um vier µ-Instruktionen sowiedie dispatch-Tabelle disp1 um die eine Zeile if (opcode==sd) goto SD1.

ALU Register PC write sequen-

label cntrl SRC1 SRC2 control Memory control cing

Fetch Add PC 4 read PC ALU seq

Add PC Extshft read dispatch1

Mem1 Add A Extend dispatch2

LW2 read ALU seq

write MDR to Rt fetch

SW2 write ALU fetch

R-Type1 func A B seq

write ALU to Rd fetch

BEQ1 Sub A B ALU-zero fetch

JUMP1 jumpaddr fetch

SD1 ADD A Extend seq

M[ALU]:=Rt seq

ADD ALU 4 read Rti seq

M[ALU]:=Rti fetch

4. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System mitLRU auf Wortadressen 40,41,52,73,63,40,41,63,74,64,40,41

Skizzieren Sie die jeweils sich ergebenden cache-Belegungen, bestimmen Siedie Anzahl von hits und misses und identifizieren Sie raumliche und zeitlicheLokalitat der hits. (4 Pkt)

je 1 fur cache Belegung: Eintrage geben die Adressen der validen cache lineswieder.

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

40 41 52 73 63 40 41 63 74 64 40 41

0 40 40 64 401 41 73 41 412 7434 52567 63 63

33† m m m m m t m t m m m tAdresse mod 8 also 3 read hits

33† m=miss, s=hit due to spatial locality, t=hit due to temporal locality

Page 104: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 104

b) fur einen 1-assoziativen cache mit 4 2-Wort-Blocken

40 41 52 73 63 40 41 63 74 64 40 410 (40,41)(40,41) (72,73) (40,41)(40,41) (64,65)(40,41)(40,41)1 (74,75)2 (52,53)3 (62,63) (62,63)34† m s m m m m s t m m m s

(Adresse/2) mod 4 also 4 read hits

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

40 41 52 73 63 40 41 63 74 64 40 41

set0 40 40 4052 64

set1 41 41 4173

set2 74

set3 63 63

34† m m m m m t t t m m t tAdresse mod 4 also 5 read hits

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

40 41 52 73 63 40 41 63 74 64 40 41set0 (40,41)(40,41) (72,73) (64,65)

(52,53) (40,41)(40,41) (40,41)(40,41)set1 (62,63) (62,63)

(74,75)34† m s m m m m s t m m s s

(Adresse/2) mod 2 also 5 read hits

5. In der vorangehenden Aufgabe seien alle Speicher-Zugriffe auf jede zweiteAdresse schreibend. Stellen Sie die Belegungen der vier cache-Organisati-onen fur jeweils die write back mit fetch on write bzw. write around Schreib-Strategien dar. Geben Sie jeweils auch die Anzahl der insgesamt uber denBus ubertragenen Worter an. (4 Pkt)

je 1/2 fur cache-Belegung je Organisation a) bis d) und write-StrategieIm Folgenden sind dirty cache lines rot markiert.

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

34† m=miss, s=hit due to spatial locality, t=hit due to temporal locality

Page 105: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 105

write back mit fetch on writeW W W W W W

40 41 52 73 63 40 41 63 74 64 40 41

0 40 40 64 401 41 73 41 412 7434 52567 63 63

35† m f m bf m wc bm wc m bf bm wcAdresse mod 8 also 3 write hits und 0 read hits bei 13 words

write back mit write aroundW W W W W W

40 41 52 73 63 40 41 63 74 64 40 41

0 40 40 401 41 412 7434 52567 63 63

35† m wm m wm m wc m wc m wm t wcAdresse mod 8 also 3 write hits und 1 read hit bei 8 wordsb) fur einen 1-assoziativen cache mit 4 Blocken a 2 Worten,

write back mit fetch on writeW W W W W W

40 41 52 73 63 40 41 63 74 64 40 410 (40,41)(40,41) (72,73) (40,41)(40,41) (64,65)(40,41)(40,41)1 (74,75)2 (52,53)3 (62,63) (62,63)

35† m wc m bf m bf s wc m bf bm wc

(Adresse/2) mod 4 also 3 write hits und 1 read hit bei 24 wordswrite back mit write around

W W W W W W

40 41 52 73 63 40 41 63 74 64 40 410 (40,41)(40,41) (40,41)(40,41) (40,41)(40,41)1 (74,75)2 (52,53)3 (62,63) (62,63)

35† m wc m wm m wc s wc m wm s wc

(Adresse/2) mod 4 also 4 write hits und 2 read hits bei 10 words

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

35† m=miss, s=spatial hit, t=temporal hit, w=write to cache & mem, wc=write to cache,wm=write word to mem, b=write back to mem before replace, f=fetch on write miss into cache

Page 106: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 106

write back mit fetch on write

W W W W W W

40 41 52 73 63 40 41 63 74 64 40 41

set0 40 40 4052 64

set1 41 41 4173

set2 74

set3 63 63

36† m f m f m wc t wc m f t wcAdresse mod 4 also 3 write hits und 2 read hits bei 7 words

write back mit write around

W W W W W W

40 41 52 73 63 40 41 63 74 64 40 41

set0 40 40 4052

set1 41 41

set2 74

set3 63 63

36† m wm m wm m wc m wc m wm t wcAdresse mod 4 also 3 write hits und 1 read hit bei 8 words

d) fur einen 2-assoziativen cache mit 2-Wort-Blocken (also 2 Blocke pro set)

write back mit fetch on writeW W W W W W

40 41 52 73 63 40 41 63 74 64 40 41set0 (40,41)(40,41) (72,73) (64,65)

(52,53) (40,41)(40,41) (40,41)(40,41)set1 (62,63) (62,63)

(74,75)36† m wc m bf m f s wc m bf s wc

(Adresse/2) mod 2 also 3 write hits und 2 read hits bei 18 words

36† m=miss, s=spatial hit, t=temporal hit, w=write to cache & mem, wc=write to cache,wm=write word to mem, b=write back to mem before replace, f=fetch on write miss into cache

Page 107: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 107

write back mit write aroundW W W W W W

40 41 52 73 63 40 41 63 74 64 40 41set0 (40,41)(40,41) (40,41)(40,41) (40,41)(40,41)

(52,53)set1 (62,63) (62,63)

(74,75)37† m wc m wm m wc s wc m wm s wc

(Adresse/2) mod 2 also 4 write hits und 2 read hits bei 10 words

6. Virtuelle Wort-Adressen seien 24bit breit, physikalische Wort-Adressen 21bit.Speicher sei in Seiten von 1024 Worten organisiert. Welcher physikalischenAdresse entspricht die dezimale virtuelle Adresse 4097, wenn zu einem Zeit-punkt ein Ausschnitt der dezimalen Seitentabelle wie folgt aussieht? (2 Pkt)

virtual page number 0 1 2 3 4 5 6 7 . . .physical page number 7 9 6 3 2 5 4 1 . . .

Ohne fuhrende Nullen ist 4097(10) = 100 0000000001(2), d.h. die virtual pagenumber ist 100(2) = 4(10) und der page offset ist 0000000001(2).1 fur Die physical page number ist laut Seiten-Tabelle also 2(10) = 10(2).1 fur Damit ist die physikalische Adresse 10 0000000001(2) = 2049(10).

7. Gegeben p PEs, die gemeinsam auf einen globalen Speicher zugreifen. Imglobalen Speicher liege ein Feld mit n Elementen. Geben Sie einen parallelenAlgorithmus fur diese p PEs an, der das Maximum der Feld-Elemente be-stimmt – zunachst fur p = n/2, dann verallgemeinert fur p < n/2. WelcheVerbindungsstruktur zwischen PEs und Speicher ist vorteilhaft? WelcherBeschleunigungsfaktor ergibt sich? (4 Pkt)

vgl. Aufgabe 7 aus Klausur SS06

Wie bei der parallelen Summation werden parallel Teil-Maxima berechnet:

n = 2

max

n = 3

max

max

n = 4

max max

max

usw.

Verbindungsstruktur und Beschleunigungsfaktor s.a. Aufgabe 7 der KlausurSS06

(Summe 38 Punkte)

37† m=miss, s=spatial hit, t=temporal hit, w=write to cache & mem, wc=write to cache,wm=write word to mem, b=write back to mem before replace, f=fetch on write miss into cache

Page 108: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 108

13 RST-Klausur SS07

Klausur Rechner-Strukturen 13.7.07

Name Matrikel

Hilfsmittel sind nicht zugelassen! und aus gegebenem Anlaß:

weniger ist mehr! – statt weitschweifiger, wolkiger Poesieklare, knappe Aussagen mit stimmigen, Stichwort-artigen Begrundungen!

1. Klassifizieren Sie Architektur/Befehlssatz eines Ihnen bekannten µ-Control-lers, z.B. des 8051 anhand belegter features. (je 1/2 Pkt, max 3 Pkt)

2. In allen Implementierungen (single/multi cycle, pipeline, superscalar) hat vgl. z.B. Fig. 5.33

die ALU eine eigene, eigenstandige, kleine Steuereinheit ALU control, dieaufgrund des Signals ALUOp der Main Control und des Function Feldes Funcder Instruktion das 3bit Steuersignal Operation fur die ALU erzeugt.

Instr F=Func ALUOp OperationLW * 00 010SW * 00 010BEQ * 01 110ADD 100000 10 010AND 100100 10 000

R–

Typ

e

OR 100101 10 001SUB 100010 10 110SLT 101010 10 111

Operation2

Operation1

Operation0

Operation

ALUOp1

F3

F2

F1

F0

F (5–0)

ALUOp0

ALUOp

ALU control block

a) Warum ist eine eigene ALU control neben der Main Control grundsatzlichvorteilhaft? (2 Pkt)

b) Skizzieren Sie andere Implementierungen obiger ALU control. (je 2 Pkt)

3. Erweitern Sie die multi cycle-Implementation des MIPS R2000/R3000 umden jump and link register Befehl jalr Rs,Rd, der PC+4 in Rd rettet unddann nach Rs springt; jalr ist im Format 0 Rs 0 Rd 0 9 kodiert.(Um welches Format handelt es sich?) Skizzieren Sie dazu im Arbeitsblatt(Fig. 5.33) die notwendigen Anderungen oder Erganzungen im Daten-Pfadund in der Steuerung. Wie sind die Signale zu setzen? Erzeugen Sie dieSignale durch Erweiterung des Mikro-Programms in Fig. 5.46. (8 Pkt)

4. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System mitLRU auf Wortadressen 37,38,49,60,50,37,38,50,61,51,37,38

Page 109: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 109

a) fur einen 1-assoziativen (direct mapped) cache mit 8 1-Wort-Blocken,b) fur einen 1-assoziativen cache mit 4 2-Wort-Blocken,c) fur einen 2-assoziativen cache mit 1-Wort-Blocken undd) fur einen 2-assoziativen cache mit 2-Wort-Blocken

– jeweils mit LRU38. Skizzieren Sie die jeweils sich ergebenden cache-Bele-gungen, bestimmen Sie die Anzahl von hits vs misses und identifizieren Siejeweils raumliche und zeitliche Lokalitat der hits. (4 Pkt)

5. In der vorangehenden Aufgabe seien alle Speicher-Zugriffe auf jede zweiteAdresse schreibend. Stellen Sie die Belegungen der vier cache-Organisati-onen fur jeweils die write back mit fetch on write bzw. write around Schreib-Strategien dar. Geben Sie jeweils auch die Anzahl der insgesamt uber denBus ubertragenen Worter an. (4 Pkt)

6. Auf einen segmentierten Speicher werde uber einen (einzigen) cache zuge-griffen. Ist ein physikalisch oder ein virtuell indizierter cache vorzuziehenoder ist die Segmentierung fur diese Entscheidung unerheblich? (3 Pkt)

7. Parallele Sortier-Algorithmen bestehen aus Netzen sogenannter Vergleicher.Ein Vergleicher [i : j] bringt das Feld-Elemente-Paar (ai, aj) im globalenSpeicher in die gewunschte Reihenfolge, etwa ( min(ai, aj),max(ai, aj))

[i : j]

a0...ai...aj...an−1

oder ’vernetzt’ [0 : 2] [1 : 3] [0 : 1] [2 : 3]

a0

a1

a2

a3

Wann konnen zwei Vergleicher parallel operieren? Wie sieht die paralleleVersion von etwa Bubblesort fur beliebig viele Vergleicher aus? (4 Pkt)

Fig. 5.33 s. AnlageFig. 5.46: das zu erweiternde µ-Programm fur MIPS R2000 in symbolischer Form

ALU Register PC write sequen-

label cntrl SRC1 SRC2 control Memory control cing

Fetch Add PC 4 read PC ALU seq

Add PC Extshft read dispatch1

Mem1 Add A Extend dispatch2

LW2 read ALU seq

write MDR to Rt fetch

SW2 write ALU fetch

R-Type1 func A B seq

write ALU to Rd fetch

BEQ1 Sub A B ALU-zero fetch

JUMP1 jumpaddr fetch

(Summe 30 Punkte)

38LRU = least recently referenced

Page 110: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 110

Losungen zur Klausur Rechner-Strukturen 13.7.07

1. Klassifizieren Sie Architektur/Befehlssatz eines Ihnen bekannten µ-Control-lers, z.B. des 8051 anhand belegter features. (je 1/2 Pkt, max 3 Pkt)

1/2 fur Akkumulator/Register-Architektur (wie 8086) – es gibt ACC, B undRegistersatze R0, . . . , R7, aber auch SP mit push und pop; 1/2 zwei Ope-randen Befehle – wie add A,B; A+=B; 1/2 diverse Adressierungsarten –wie direct, register, immediate, indirect @DPTR, indirect plus index @A+DPTR,bit-Adressierung; 1/2 fur condition codes – etwa CY im PSW mit JC; 1/2fur unterschiedliche Befehlslangen (1byte etwa fur add A,Rr bis 3byte et-wa fur mov direct,direct) und Befehlsausfuhrungszeiten (1 cycle etwafur add A,Rr bis 4 cycles etwa fur MUL und DIV) 1/2 fur typische CISC-Instruktionen wie etwa cjne oder djnz.

Alle Merkmale zusammen genommen, ist der 8051 als CISC-Prozessor wieder 8086 ein Kind seiner Zeit: der Befehlssatz ist Speicher-optimiert!

2. In allen Implementierungen (single/multi cycle, pipeline, superscalar) hat vgl. z.B. Fig. 5.33

die ALU eine eigene, eigenstandige, kleine Steuereinheit ALU control, dieaufgrund des Signals ALUOp der Main Control und des Function Feldes Funcder Instruktion das 3bit Steuersignal Operation fur die ALU erzeugt.

Instr F=Func ALUOp OperationLW * 00 010SW * 00 010BEQ * 01 110ADD 100000 10 010AND 100100 10 000

R–

Typ

e

OR 100101 10 001SUB 100010 10 110SLT 101010 10 111

Operation2

Operation1

Operation0

Operation

ALUOp1

F3

F2

F1

F0

F (5–0)

ALUOp0

ALUOp

ALU control block

a) Warum ist eine eigene ALU control neben der Main Control grundsatzlichvorteilhaft? (2 Pkt)

Die eigene ALU control verringert den Aufwand fur die Implementierung,wie der Vergleich der look up tables, LUTs zeigt (|field| ist die Lange desFeldes field und |LUT | ist die Große der LUT im Speicher):

eine einzige Control Unit Naiv implementiert hat die zugehorige LUT2|Func|+|OPcode| = 26+6 = 212 = 4K Zeilen a s+3 bit, wobei s die Anzahlder zu erzeugenden Signale (außer denen fur die ALU-Steuerung) ist,insgesamt also |LUT | = 4(s+ 3)Kbit.

Main und eigene ALU control Genauso naiv implementiert hat die LUTder Main control 2|OPcode| = 26 = 64 Zeilen a s + 2 bit und die LUTder ALU control 2|Func|+|ALUOp| = 26+2 = 28 = 256 Zeilen a 3 bit.

Derselbe ’Trick’ wie das Ausnutzen der Tatsache, daß nur nextstate vomOPcode und die Signale nur vom Zustand abhangen (Moore-Automat),reduziert auch hier die Große der LUTs ganz wesentlich.

Page 111: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 111

b) Skizzieren Sie andere Implementierungen obiger ALU control. (je 2 Pkt)

per LUT Die LUT wird entweder durch concat(ALUOp,Func) oder durchconcat(Func,ALUOp) indiziert:

ALUOp Func Operation00 000000 010...

... 01000 111111 01001 000000 001...

... 00101 111111 00110 000000 ???...

......

10 100000 010...

......

10 100010 110...

......

10 111111 ???11 000000 ???...

......

......

...11 111111 ???

Func ALUOp Operation000000 00 010000000 01 110000000 10 ???000000 11 ???

......

...100000 00 010100000 01 110100000 10 010100000 11 ???

......

...100010 00 010100010 01 110100010 10 110100010 11 ???

......

......

......

111111 11 ???Die Große der vollstandigen LUTs ist in beiden Fallen identisch. Dieerste LUT kann vorteilhaft um 26 = 64 Zeilen gekurzt werden, solangeALUOp nur die drei Auspragungen 00, 01 und 10 hat.

per PLA Die ALU control kann wie gehabt auch als programmable logicarray, PLA implementiert werden:

F5

F4

F3

F2

F1

F0

ALUOp1

ALUOp0

Operation2Operation1Operation0

AND

OR

LW/SWBEQ

ADDSUB

ANDOR

SLT

per µ-Programmierung ergibt hier keinen Sinn, weil die ALU controldas Signal Operation innerhalb eines cycles erzeugen muß.

Page 112: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 112

3. Erweitern Sie die multi cycle-Implementation des MIPS R2000/R3000 umden jump and link register Befehl jalr Rs,Rd, der PC+4 in Rd rettet unddann nach Rs springt; jalr ist im Format 0 Rs 0 Rd 0 9 kodiert.(Um welches Format handelt es sich?) Skizzieren Sie dazu im Arbeitsblatt(Fig. 5.33) die notwendigen Anderungen oder Erganzungen im Daten-Pfadund in der Steuerung. Wie sind die Signale zu setzen? Erzeugen Sie dieSignale durch Erweiterung des Mikro-Programms in Fig. 5.46. (8 Pkt)

1 fur R-Type, 1 fur Datenpfad von A nach zu erweiterndem MUX PCsource, z.B. auch perdispatch3

in R-Type1:einfacherecontrol, aber1 cycle mehr

1 fur Datenpfad von PC nach zu erweiterndem MUX MemToReg, 1 fur WB1schreibe PC in Rd, 1 fur WB2 schreibe A in PC, 3 fur Steuerung: erganzedispatch-Tabelle disp1 um if((opcode==0)&&(Func==9)) goto JALR1 so-wie das µ-Programm um zwei µ-Instruktionen, modifiziere goto R-type1.

early writelate read

ALU Register PC write sequen-

label cntrl SRC1 SRC2 control Memory control cing

Fetch Add PC 4 read PC ALU seq

Add PC Extshft read dispatch1

Mem1 Add A Extend dispatch2

LW2 read ALU seq

write MDR to Rt fetch

SW2 write ALU fetch

R-Type1 func A B seq

write ALU to Rd fetch

BEQ1 Sub A B ALU-zero fetch

JUMP1 jumpaddr fetch

JALR1 write PC to Rd seq

A fetch

4. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System mitLRU auf Wortadressen 37,38,49,60,50,37,38,50,61,51,37,38

Skizzieren Sie die jeweils sich ergebenden cache-Belegungen, bestimmen Siedie Anzahl von hits und misses und identifizieren Sie raumliche und zeitlicheLokalitat der hits. (4 Pkt)

je 1 fur cache Belegung: Eintrage geben die Adressen der validen cache lineswieder.

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

37 38 49 60 50 37 38 50 61 51 37 38

01 492 50 503 514 605 37 37 61 376 38 38 387

39† m m m m m t t t m m m t

Page 113: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 113

Adresse mod 8 also 4 read hits

b) fur einen 1-assoziativen cache mit 4 2-Wort-Blocken

37 38 49 60 50 37 38 50 61 51 37 380 (48,49)1 (50,51) (50,51) (50,51)2 (36,37) (60,61) (36,37) (60,61) (36,37)3 (38,39) (38,39) (38,39)

39† m m m m m m t t m s m t

(Adresse/2) mod 4 also 4 read hits

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

37 38 49 60 50 37 38 50 61 51 37 38

set0 60

set1 37 37 3749 61

set2 38 38 3850 50

set3 51

39† m m m m m t t t m m t tAdresse mod 4 also 5 read hits

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

37 38 49 60 50 37 38 50 61 51 37 38set0 (36,37) (60,61) (60,61)

(48,49) (36,37) (36,37)set1 (38,39) (38,39) (38,39)

(50,51) (50,51) (50,51)39† m m m m m m t t s s t t

(Adresse/2) mod 2 also 6 read hits

5. In der vorangehenden Aufgabe seien alle Speicher-Zugriffe auf jede zweiteAdresse schreibend. Stellen Sie die Belegungen der vier cache-Organisati-onen fur jeweils die write back mit fetch on write bzw. write around Schreib-Strategien dar. Geben Sie jeweils auch die Anzahl der insgesamt uber denBus ubertragenen Worter an. (4 Pkt)

je 1/2 fur cache-Belegung je Organisation a) bis d) und write-StrategieIm Folgenden sind dirty cache lines rot markiert.

a) fur einen 1-assoziativen cache mit 8 1-Wort-Blockenwrite back mit fetch on write

39† m=miss, s=hit due to spatial locality, t=hit due to temporal locality

Page 114: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 114

W W W W W W

37 38 49 60 50 37 38 50 61 51 37 38

01 492 50 503 514 605 37 37 61 376 38 38 387

40† m f m f m wc t wc b f m wcAdresse mod 8 also 3 write hits und 1 read hit bei 9 words

write back mit write aroundW W W W W W

37 38 49 60 50 37 38 50 61 51 37 38

01 492 50 50345 37 37 61 376 38 387

40† m wm m wm m wc m wc b wm m wcAdresse mod 8 also 3 write hits und 0 read hits bei 10 words

b) fur einen 1-assoziativen cache mit 4 Blocken a 2 Worten,write back mit fetch on write

W W W W W W

37 38 49 60 50 37 38 50 61 51 37 380 (48,49)1 (50,51) (50,51) (50,51)2 (36,37) (60,61) (36,37) (60,61) (36,37)3 (38,39) (38,39) (38,39)

40† m f m f m bf t wc b wc m wc

(Adresse/2) mod 4 also 3 write hits und 1 read hit bei 20 words

write back mit write aroundW W W W W W

37 38 49 60 50 37 38 50 61 51 37 380 (48,49)1 (50,51) (50,51) (50,51)2 (36,37) (36,37) (60,61) (36,37)3 (38,39) (38,39)

41† m wm m wm m wc m wc b wc m wc

(Adresse/2) mod 4 also 4 write hits und 0 read hits bei 16 words

40† m=miss, s=spatial hit, t=temporal hit, w=write to cache & mem, wc=write to cache,wm=write to mem, b=write back to mem before replace, f=fetch on write miss into cache

41† m=miss, s=spatial hit, t=temporal hit, w=write to cache & mem, wc=write to cache,wm=write to mem, b=write back to mem before replace, f=fetch on write miss into cache

Page 115: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 115

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

write back mit fetch on writeW W W W W W

37 38 49 60 50 37 38 50 61 51 37 38

set0 60

set1 37 37 3749 61

set2 38 38 3850 50

set3 51

41† m f m f m wc t wc m f t wcAdresse mod 4 also 3 write hits und 2 read hits bei 7 words

write back mit write aroundW W W W W W

37 38 49 60 50 37 38 50 61 51 37 38

set0

set1 37 37 3749 61

set2 50 5038 38

set3

41† m wm m wm m wc m wc m wm t wcAdresse mod 4 also 3 write hits und 1 read hit bei 8 words

d) fur einen 2-assoziativen cache mit 2-Wort-Blocken (also 2 Blocke pro set)

write back mit fetch on writeW W W W W W

37 38 49 60 50 37 38 50 61 51 37 38set0 (36,37) (60,61) (60,61)

(48,49) (36,37) (36,37)set1 (38,39) (38,39) (38,39)

(50,51) (50,51) (50,51)42† m f m f m f t wc s wc t wc

(Adresse/2) mod 2 also 3 write hits und 3 read hits bei 12 words

write back mit write aroundW W W W W W

37 38 49 60 50 37 38 50 61 51 37 38set0 (36,37) (36,37) (36,37)

(48,49) (60,61)set1 (50,51) (50,51) (50,51)

(38,39) (38,39)42† m wm m wm m wc m wc m wc t wc

42† m=miss, s=spatial hit, t=temporal hit, w=write to cache & mem, wc=write to cache,wm=write to mem, b=write back to mem before replace, f=fetch on write miss into cache

Page 116: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 116

(Adresse/2) mod 2 also 4 write hits und 1 read hit bei 14 words

6. Auf einen segmentierten Speicher werde uber einen (einzigen) cache zuge-griffen. Ist ein physikalisch oder ein virtuell indizierter cache vorzuziehenoder ist die Segmentierung fur diese Entscheidung unerheblich? (3 Pkt)

1 fur virtuelle Adresse aus zwei Teilen, 1 fur tags im virtuell bzw. im phy-sikalisch indizierten cache, 1 fur Zugriff auf den virtuell bzw. auf den phy-sikalisch indizierten cache mit/ohne TLB

Die virtuelle Adresse besteht aus zwei Teilen segmID und segmoffset. Tagsim virtuell indizierten cache bestehen aus segmID und den most significantbits von segmoffset, wahrend die tags im physikalisch indizierten cacheaus den most significant bits von segmstart+segmoffset bestehen. Aufden virtuell indizierten cache kann direkt zugegriffen werden, wahrend aufden physikalisch indizierten cache erst nach Auslesen von segmstart aus derSegment-Beschreibung und nach Addition von segmstart+segmoffset zu-gegriffen werden kann – falls kein TLB vorhanden oder sonst eben bei TLBmiss. Wenn auch die tags langer sind und damit Tara, d.h. der overheadgroßer ist, ist daher i.a.R. wohl der virtuell inidzierte cache vorzuziehen.

7. Parallele Sortier-Algorithmen bestehen aus Netzen sogenannter Vergleicher.Ein Vergleicher [i : j] bringt das Feld-Elemente-Paar (ai, aj) im globa-len Speicher in die gewunschte Reihenfolge, etwa ( min(ai, aj),max(ai, aj)),dargestellt durch

[i : j]

a0...ai...aj...an−1

oder ’vernetzt’ [0 : 2] [1 : 3] [0 : 1] [2 : 3]

a0

a1

a2

a3

Wann konnen zwei Vergleicher parallel operieren? Wie sieht die paralleleVersion von etwa Bubblesort fur beliebig viele Vergleicher aus? (4 Pkt)

1 fur [i : j]||[k : `] ⇐⇒ i, j, k, ` paarweise verschieden, 3 fur bubblesort

Zwei Vergleicher konnen genau dann parallel arbeiten, wenn sie keine Ar-gumente gemeinsam haben.Bubblesort sieht fur beliebig viele Vergleicher (hier wird der immanenteGrad an Parallelitat des Algorithmus von drei Vergleichern ausgeschopft!)und beispielsweise sechs zu sortierende Feld-Elemente wie folgt aus:

a0

a1

a2

a3

a4

a5

n Mono-ZE Multi-ZE2 1 13 3 34 6 55 10 76 15 9...

......

im worst case:Mono(n) = 1

2(n− 1)n Vergleiche

Multi(n) = 2(n− 1)− 1 Schrittebestehend aus ggfls.

parallelen Vergleichen

Page 117: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 117

Die Vergleicher auf den (Parallelen zur) Diagonalen symbolisieren, wie dasjeweilige maximale Element durch Vertauschen benachbarter Feld-Elementein seine endgultige Position verbracht wird.Offensichtlich konnen bei n zu sortierenden Feld-Elementen maximal bn/2cVergleicher parallel eingesetzt werden und es ergibt sich im worst case, alsobei maximal vielen auszufuhrenden Vertauschungen, der Beschleunigungs-faktor β aufgrund von Parallelisierung zu β = (n−1)n/2

2(n−1)−1= n

4−2/(n−1)≈ n

4.

(Summe 30 Punkte)

Page 118: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 118

14 RST-Klausur WS06

Wiederholer-Klausur Rechner-Strukturen 15.12.06

Name Matrikel

Hilfsmittel sind nicht zugelassen! und aus gegebenem Anlaß:

weniger ist mehr! – statt weitschweifiger, wolkiger Poesieklare, knappe Aussagen mit stimmigen, Stichwort-artigen Begrundungen!

1. Intel Corp. wirbt u.a. mit folgender Graphik fur ihre server-Prozessoren.

www.intel.com/performance/server/xeon/web.htm

Prozessor Web

Intel XEON(3.6GHz, 2MB L2 Cache, 800MHz Bus)

4237

Dual Core XEON(2.8GHz, 2 x 2MB L2 Cache, 800MHz Bus)

4850

Dual Core XEON 5080(3.73GHz, 2 x 2MB L2 Cache, 1066MHz Bus)

6400

Dual Core XEON 5160(3.0GHz, 2 x 4MB L2 Cache, 1333MHz Bus)

9808

Dual Core AMD Opteron(2.4GHz, Dual Core)

8364

Beurteilen Sie die Aussagen dieser Graphik von Intel. (3 Pkt)

2. Der Befehlssatz des MIPS R2000/R3000 weist keinen SUBI-Befehl auf, alsokeine Subtraktion eines immediates. Warum wohl nicht? aufgrund welcherEntscheidung der Prozessor-Designer? vgl. andere ISAs. (2 Pkt)

3. Erweitern Sie die multi cycle-Implementation des MIPS R2000/R3000 umden set less than immediate Befehl slti Rs,Rt,#Imm, der Rs und das Im-mediate geeignet vergleicht und als Ergebnis Rt=1 setzt, falls Rs < Imd, undsonst Rt=0 setzt. slti ist im I-Format 0xa Rs Rt Imm kodiert.Unterstellen Sie, daß die ALU gewunschte Operationen ausfuhrt, wenn sienur geeignet angesteuert wird.Skizzieren Sie dazu im Arbeitsblatt (Fig. 5.33) die notwendigen Anderun-gen oder Erganzungen im Daten-Pfad und in der Steuerung. Wie sind dieSignale zu setzen? Erzeugen Sie die Signale durch Erweiterung des Mikro-Programms in Fig. 5.46. (8 Pkt)

Page 119: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 119

4. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System mitLRU auf Wortadressen 23,24,41,52,42,23,24,42,53,43,23,24a) fur einen 1-assoziativen (direct mapped) cache mit 8 1-Wort-Blocken,b) fur einen 1-assoziativen cache mit 4 2-Wort-Blocken,c) fur einen 2-assoziativen cache mit 1-Wort-Blocken undd) fur einen 2-assoziativen cache mit 2-Wort-Blocken– jeweils mit LRU43. Skizzieren Sie die jeweils sich ergebenden cache-Bele-gungen, bestimmen Sie die Anzahl von hits vs misses und identifizieren Siejeweils raumliche und zeitliche Lokalitat der hits. (4 Pkt)

5. In der vorangehenden Aufgabe seien alle Speicher-Zugriffe auf jede zweiteAdresse schreibend. Stellen Sie die Belegungen der vier cache-Organisati-onen fur jeweils die write back mit fetch on write bzw. write around Schreib-Strategien dar. (4 Pkt)

6. Beschreiben Sie worst case und best case beim lesenden bzw. schreibendenSpeicher-Zugriff eines Prozessors mit cache, TLB und paged segments. Dercache sei virtuell indiziert. (6 Pkt)

7. Aktuelle dual core Prozessoren haben einen gemeinsamen, shared L2 cache.Beschreiben Sie Vor- und Nachteile dieser Losung im Vergleich zu getrenn-ten, lokalen L2 caches. (3 Pkt)

Fig. 5.46: das zu erweiternde µ-Programm fur MIPS R2000 in symbolischer Form

ALU Register PC write sequen-

label cntrl SRC1 SRC2 control Memory control cing

Fetch Add PC 4 read PC ALU seq

Add PC Extshft read dispatch1

Mem1 Add A Extend dispatch2

LW2 read ALU seq

write MDR to Rt fetch

SW2 write ALU fetch

R-Type1 func A B seq

write ALU to Rd fetch

BEQ1 Sub A B ALU-zero fetch

JUMP1 jumpaddr fetch

Fig. 5.33 s. Anlagen

(Summe 30 Punkte)

43LRU = least recently referenced

Page 120: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 120

Losungen zur Wiederholer-Klausur Rechner-Strukturen 15.12.06

1. Intel Corp. wirbt u.a. mit folgender Graphik fur ihre server-Prozessoren.

www.intel.com/performance/server/xeon/web.htm

Prozessor Web

Intel XEON(3.6GHz, 2MB L2 Cache, 800MHz Bus)

4237

Dual Core XEON(2.8GHz, 2 x 2MB L2 Cache, 800MHz Bus)

4850

Dual Core XEON 5080(3.73GHz, 2 x 2MB L2 Cache, 1066MHz Bus)

6400

Dual Core XEON 5160(3.0GHz, 2 x 4MB L2 Cache, 1333MHz Bus)

9808

Dual Core AMD Opteron(2.4GHz, Dual Core)

8364

Beurteilen Sie die Aussagen dieser Graphik von Intel. (3 Pkt)

1 fur Angaben zu Intel Prozessor cache-Großen und FS-Bus-Taktraten vor-handen, aber die entsprechenden Angaben zum AMD-Prozessor fehlen in derGraphik; 1 fur die Angaben cache-Große und Bus-Takt sind aber signifikant,wie der Unterschied von 5080 und 5160 zeigt: Web(5080) < Web(5160),obwohl GHz(5080) > GHz(5160), wohl weil Cache(5080) < Cache(5160)und Bus-Takt(5080) < Bus-Takt(5160); 1 fur: die fairness des benchmark-Programms SPECweb2005 ist so nicht zu beurteilen, ubrigens auch nichtmit www.spec.org/benchmarks.html, der Beschreibung des benchmark-Pro-gramms SPECweb2005 in 2006

Auf der Seite www.intel.com/performance/server/xeon/web.htm gibt IntelAMD Opteron mit 2.6GHz und 2x1MB L2 Cache an. Der Opteron cachehat also einen wesentlich kleineren L2 Cache als die drei Intel dual coreProzessoren!Aus der Beschreibung www.spec.org/benchmarks.html des benchmark-Pro-gramms SPECweb2005 in 2006:

SPECweb2005 emulates users sending browser requests over broad-band Internet connections to a web server. It provides three newworkloads: a banking site (HTTPS), an e-commerce site (HTTP/HTTPS mix), and a support site (HTTP). Dynamic content isimplemented in PHP and JSP. The current version is 1.10.

2. Der Befehlssatz des MIPS R2000/R3000 weist keinen SUBI-Befehl auf, alsokeine Subtraktion eines immediates. Warum wohl nicht? aufgrund welcherEntscheidung der Prozessor-Designer? vgl. andere ISAs. (2 Pkt)

1/2 fur alle immediates sind signed, 1/2 fur der Compiler generiert stattsubi Rd, Rs, imd das gleichbedeutende addi Rd, Rs, -imd, 1/2 fur manspart so hardware und einen OPcode, 1/2 fur etwa MMIX hat nur unsignedimmediates und dafur jeweils paarige Operationen op_p_imd (Operation aufplus immediate) sowie op_m_imd (Operation auf minus immediate)

Page 121: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 121

3. Erweitern Sie die multi cycle-Implementation des MIPS R2000/R3000 umden set less than immediate Befehl slti Rs,Rt,#Imd, der Rs und das Im-mediate geeignet vergleicht und als Ergebnis Rt=1 setzt, falls Rs < Imd, undsonst Rt=0 setzt. slti ist im I-Format 0xa Rs Rt Imd kodiert.Unterstellen Sie, daß die ALU gewunschte Operationen ausfuhrt, wenn sienur geeignet angesteuert wird.Skizzieren Sie dazu im Arbeitsblatt (Fig. 5.33) die notwendigen Anderun-gen oder Erganzungen im Daten-Pfad und in der Steuerung. Wie sind dieSignale zu setzen? Erzeugen Sie die Signale durch Erweiterung des Mikro-Programms in Fig. 5.46. (8 Pkt)

1 fur Erstens, die ALU erzeuge ein zweites ein-bittiges Signal pos: die flagpos ist high, falls das ALU-Ergebnis positiv ist, sonst low.2 fur Zweitens, falls OP-Code == slti == 0xa erzeugt die Control das Si-gnal ALUOp = 01, so daß – wie gehabt – die ALU bei unveranderter ALU-control und unabhangig vom func-Feld subtrahiert.2 fur Drittens, pos – auf 32 bit erweitert – wird uber den zu erweiterndenMUX MemtoReg (mit 2-bittigem Steuersignal) an WriteData der Register-Datei angelegt.

1+2 fur Entsprechend ist die Steuerung zu erweitern: die erste dispatch-Tabelle disp1 ist um die Zeile if (opcode == SLTI) goto SLTI1 und dasµ-Programm um zwei µ-Instruktionen wie folgt

ALU Register PC write sequen-

label cntrl SRC1 SRC2 control Memory control cing

Fetch Add PC 4 read PC ALU seq

Add PC Extshft read dispatch1

Mem1 Add A Extend dispatch2

LW2 read ALU seq

write MDR to Rt fetch

SW2 write ALU fetch

R-Type1 func A B seq

write ALU to Rd fetch

BEQ1 Sub A B ALU-zero fetch

JUMP1 jumpaddr fetch

SLTI1 Sub A Extend seq

write pos to Rt fetch

zu erganzen.

4. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System mitLRU auf Wortadressen 23,24,41,52,42,23,24,42,53,43,23,24

Skizzieren Sie die jeweils sich ergebenden cache-Belegungen, bestimmen Siedie Anzahl von hits und misses und identifizieren Sie raumliche und zeitlicheLokalitat der hits. (4 Pkt)

je 1 fur cache Belegung: Eintrage geben die Adressen der validen cache lineswieder.

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

Page 122: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 122

23 24 41 52 42 23 24 42 53 43 23 24

0 24 24 241 412 42 423 434 525 5367 23 23 23

44† m m m m m t t t m m t tAdresse mod 8 also 5 read hits

b) fur einen 1-assoziativen cache mit 4 2-Wort-Blocken

23 24 41 52 42 23 24 42 53 43 23 240 (24,25)(40,41) (24,25) (24,25)1 (42,43) (42,43) (42,43)2 (52,53) (52,53)3 (22,23) (22,23) (22,23)

44† m m m m m t m t s s t t

mit (Adresse/2) mod 4 also 6 read hits

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

23 24 41 52 42 23 24 42 53 43 23 24

set0 24 24 2452

set1 4153

set2 42 42

set3 23 23 2343

44† m m m m m t t t m m t tAdresse mod 4 also 5 read hits

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

23 24 41 52 42 23 24 42 53 43 23 24set0 (24,25) (52,53) (52,53)

(40,41) (24,25) (24,25)set1 (22,23) (22,23) (22,23)

(42,43) (42,43) (42,43)44† m m m m m t m t s s t t

(Adresse/2) mod 2 also 6 read hits

5. In der vorangehenden Aufgabe seien alle Speicher-Zugriffe auf jede zweiteAdresse schreibend. Stellen Sie die Belegungen der vier cache-Organisati-

44† m=miss, s=hit due to spatial locality, t=hit due to temporal locality

Page 123: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 123

onen fur jeweils die write back mit fetch on write bzw. write around Schreib-Strategien dar. (4 Pkt)

je 1/2 fur cache-Belegung je Organisation a) bis d) und write-StrategieIm Folgenden sind dirty cache lines rot markiert.

a) fur einen 1-assoziativen cache mit 8 1-Wort-Blockenwrite back mit fetch on write

W W W W W W

23 24 41 52 42 23 24 42 53 43 23 24

0 24 24 241 412 42 423 434 525 5367 23 23 23

45† m f m f m wc t wc m f t wcAdresse mod 8 also 3 write hits und 2 read hits

write back mit write aroundW W W W W W

23 24 41 52 42 23 24 42 53 43 23 24

0 24 241 412 42 42345 5367 23 23 23

45† m wm m wm m wc m wc m wm t wcAdresse mod 8 also 3 write hits und 1 read hit

b) fur einen 1-assoziativen cache mit 4 Blocken a 2 Worten,write back mit fetch on write

W W W W W W

23 24 41 52 42 23 24 42 53 43 23 240 (24,25)(40,41) (24,25) (24,25)1 (42,43) (42,43) (42,43)2 (52,53) (52,53)3 (22,23) (22,23) (22,23)

45† m f bm f m wc m wc s wc t wc

mit (Adresse/2) mod 4 also 4 write hits und 2 read hits

write back mit write around

45† m=miss, s=spatial hit, t=temporal hit, w=write to cache & mem, wc=write to cache,wm=write to mem, b=write back to mem before replace, f=fetch on write miss into cache

Page 124: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 124

W W W W W W

23 24 41 52 42 23 24 42 53 43 23 240 (40,41) (24,25) (24,25)1 (42,43) (42,43) (42,43)2 (52,53)3 (22,23) (22,23) (22,23)

46† m wm m wm m wc m wc m wc t wc

mit (Adresse/2) mod 4 also 4 write hits und 1 read hit

c) fur einen 2-assoziativen cache mit 1-Wort-Blocken (also 2 Blocke pro set)write back mit fetch on write

W W W W W W

23 24 41 52 42 23 24 42 53 43 23 24

set0 24 24 2452

set1 4153

set2 42 42

set3 23 23 2343

46† m f m f m wc t wc m f t wcAdresse mod 4 also 3 write hits und 2 read hits

write back mit write aroundW W W W W W

23 24 41 52 42 23 24 42 53 43 23 24

set0 24 24

set1 4153

set2 42 42

set3 23 23 23

46† m wm m wm m wc m wc m wm t wcAdresse mod 4 also 3 write hits und 1 read hit

46† m=miss, s=spatial hit, t=temporal hit, w=write to cache & mem, wc=write to cache,wm=write to mem, b=write back to mem before replace, f=fetch on write miss into cache

Page 125: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 125

d) fur einen 2-assoziativen cache mit 2-Wort-Blocken (also 2 Blocke pro set)

write back mit fetch on writeW W W W W W

23 24 41 52 42 23 24 42 53 43 23 24set0 (24,25) (52,53) (52,53)

(40,41) (24,25) (24,25)set1 (22,23) (22,23) (22,23)

(42,43) (42,43) (42,43)47† m f m bf m wc m wc s wc t wc

(Adresse/2) mod 2 also 4 write hits und 2 read hits

write back mit write aroundW W W W W W

23 24 41 52 42 23 24 42 53 43 23 24set0 (40,41) (52,53)

(24,25) (24,25)set1 (22,23) (22,23) (22,23)

(42,43) (42,43) (42,43)47† m wm m wm m wc m wc m wc t wc

(Adresse/2) mod 2 also 4 write hits und 1 read hit

6. Beschreiben Sie worst case und best case beim lesenden bzw. schreibendenSpeicher-Zugriff eines Prozessors mit cache, TLB und paged segments. Dercache sei virtuell indiziert. (6 Pkt)

1 fur best case (data sind im virtual indexed cache vorhanden, auf die pervirtueller Adresse lesend zugegriffen wird; etwa bei copy back und write hitkann direkt in den cache geschrieben werden; in beiden Fallen ist kein TLB-Zugriff notig), 5 fur worst case (data nicht im virtual indexed cache: cachemiss; address translation: TLB miss, segment table miss + page table fault;data access: segment miss + page fault – lesend und schreibend etwa beiwrite back mit fetch on write und ohne write buffer o.a.)

7. Aktuelle dual core Prozessoren haben einen gemeinsamen, shared L2 cache.Beschreiben Sie Vor- und Nachteile dieser Losung im Vergleich zu getrenn-ten, lokalen L2 caches. (3 Pkt)

1 fur Leistungseinbuße aufgrund des Konkurrierens um den einen shared ca- hit rate ↓che (gegenseitiges Verdrangen, thrashing, flush bei process switch) – einmalganz abgesehen von der ’Arbitrierung’ beim Zugriff auf den shared cache,1/2 fur getrennte caches sind (bei fester gemeinsamer Kapazitat) jeweils hit rate ↓nur halb so groß, 1/2 fur ohne gegenseitiges Verdrangen im shared cache hit rate ↑kann Lokalitat ’doppelt so gut’ ausgenutzt werden, 1 fur getrennte caches er-fordern aufwandige cache-Koharenz-Protokolle, dafur keine ’Arbitrierung’.

(Summe 30 Punkte)

47† m=miss, s=spatial hit, t=temporal hit, w=write to cache & mem, wc=write to cache,wm=write to mem, b=write back to mem before replace, f=fetch on write miss into cache

Page 126: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 126

15 RST-Klausur SS06

Klausur Rechner-Strukturen 19.7.06

Name Matrikel

Hilfsmittel sind nicht zugelassen! und aus gegebenem Anlaß:

weniger ist mehr! – statt weitschweifiger, wolkiger Poesieklare, knappe Aussagen mit stimmigen, Stichwort-artigen Begrundungen!

1. Befehle fur move immediate to register, alle arithmetisch logischen Instruk-tionen mit Immediates sowie LHI (bei DLX) und LUI (bei MIPS) konneneingespart werden! Wie? Vorteil? um welchen Preis? (2 Pkt)

2. Geben Sie ein konkretes Beispiel an, in dem die Adressierungsarten Auto-

Inkrement, z.B.LWai Rt,imd(Rs) ; Rt=Mem[Rs+imd];Rs+=4

SWai Rt,imd(Rs) ; Mem[Rs+imd]=Rt;Rs+=4oder Auto-

Dekrement, z.B.LWad Rt,imd(Rs) ; Rt=Mem[Rs+imd];Rs-=4

SWad Rt,imd(Rs) ; Mem[Rs+imd]=Rt;Rs-=4sinnvoll

eingesetzt werden konnen. (DLX/MIPS-Assembler-Programm) (2 Pkt)Was spricht – unabhangig von der gewahlten single-, multi-, pipeline- odersuperscalar-Implementierung – gegen eine Erweiterung um diese Adressie-rungsarten? (1 Pkt)

3. Identifizieren Sie die prinzipielle Schwierigkeit, die pipeline-Implementationdes MIPS R2000 um etwa den auto-increment Befehle LWai im FormatLWai Rs Rt immediate zu erweitern. Welche Losungen gibt es?

Wahlen Sie die einfachste und skizzieren Sie in Fig. 6.51 die notwendigenAnderungen und Erganzungen im Daten-Pfad und in der Steuerung. Wiesind die Signale in jeder Phase der Befehlsabarbeitung zu setzen? (12 Pkt)

4. Konstruieren und bewerten Sie Folgen von Memory-Referenzen fur denMini-Cache mit 8 Worten Netto-Kapazitat und geeigneter Organisation,

a) so daß βcaching < 1, so daß also caching kontraproduktiv ist, (2 Pkt)

b) so daß ein den Speicher lesender Zugriff einen den Speicher schreibendenZugriff auslost. (2 Pkt)

c) Entweder Sie geben eine Folge von lesenden Speicher-Referenzen an, sodaß – bei derselben Netto-Kapazitat – ein hoher assoziativer cache wenigerhits aufweist als ein niedrig assoziativer cache, oder Sie begrunden, warumes eine solche Folge von Referenzen nicht geben kann. (2 Pkt)

Page 127: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 127

5. Consider: 8 bits in a physical address, 3 bits for the frame/page numberHow many bytes (words) of physical memory? How many frames are there?How many bytes is a page? How many bits for page offset? (1 Pkt)

6. Wir haben gesehen, daß data und control hazards sowohl vom Compilerals auch vom Prozessor behoben werden konnen. Die superskalare Imple-mentierung (vgl. Fig 6.58) unterstellt, daß der Compiler immer geeignetePaare von Instruktionen generiert, namlich (alInstr, LSinstr), wobei alInstrfur arithmetisch-logische Instruktionen, Verzweigungen und Sprunge oderNOP und LSinstr fur load/store-Instruktionen oder NOP steht.Beschreiben und skizzieren Sie konkret, wie die Anforderungen an den Com-piler schrittweise auf die hardware verlagert werden konnen. (10 Pkt)

7. In der parallelen Version des Gauß-Algorithmus mussen zum Auflosen (back-substitution) Summen von Feld-Elementen berechnet werden.Bestimmen Sie fur p = 2, 3, 4, in welcher Zeit (unter Vernachlassigung desKommunikationsoverheads) p PEs n Feld-Elemente mit n > 2p aufsummie-ren. (6 Pkt)

(Summe ca. 40 Punkte)

Page 128: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 128

Losungen zur Klausur Rechner-Strukturen 19.7.06

1. Befehle fur move immediate to register, alle arithmetisch logischen Instruk-tionen mit Immediates sowie LHI (bei DLX) und LUI (bei MIPS) konneneingespart werden! Wie? Vorteil? um welchen Preis? (2 Pkt)

1 fur Immediates als Konstanten aus dem Speicher lesen, 1 fur zwei In-struktionen statt einer, aber dafur wenigstens 32bit Immediates

Ersetze das Lesen von Immediates durch Zugriffe auf einen Konstanten-Poolim Speicher: der Compiler definiert den Pool-Inhalt, wie etwa Konstantenwie z.B. 42, 3.14159 oder ’Hello World’ der Pool wird beim Programm-Start in den Speicher geladen.Statt Zugriff auf das immediate im Instruktionsregister, nach dem Ladender Instruktion erneuter Speicherzugriff; beispielsweise ADDI wird durchzwei Instruktionen LW und ADD ersetzt, was ein zusatzliches temporaresRegister notig macht und in der pipeline implementation einen load stallimplizieren kann! immerhin Vorteil: 32bit Immediates

2. Geben Sie ein konkretes Beispiel an, in dem die Adressierungsarten Auto-

Inkrement, z.B.LWai Rt,imd(Rs) ; Rt=Mem[Rs+imd];Rs+=4

SWai Rt,imd(Rs) ; Mem[Rs+imd]=Rt;Rs+=4oder Auto-

Dekrement, z.B.LWad Rt,imd(Rs) ; Rt=Mem[Rs+imd];Rs-=4

SWad Rt,imd(Rs) ; Mem[Rs+imd]=Rt;Rs-=4sinnvoll

eingesetzt werden konnen. (DLX/MIPS-Assembler-Programm) (2 Pkt)Was spricht – unabhangig von der gewahlten single-, multi-, pipeline- odersuperscalar-Implementierung – gegen eine Erweiterung um diese Adressie-rungsarten? (1 Pkt)

2 fur etwa Stack-Operationen (push/pop) oder Blockcopy, also beispielsweisebei jeder Objekt-Instantiierung mit deep copy: hier mit nur einer Kopier-Richtung, die andere entsprechend; der Block mit Rl(aenge) Worten undmit Startadresse Rq(uelle) ist nach Zieladresse Rz(iel) zu kopieren.

; als Schleifenindex wird Rq(elle) benutzt

ADD Re,Rq,Rl ; Re(nde)

loop: BGE Rq,Re,ende ; Schleife verlassen

LWai Rtmp, 0(Rq)

SWai Rtmp, 0(Rz)

j loop

ende:

Im Gegensatz zu allen anderen DLX/MIPS-Instruktionen schreiben LWai

und LWad zwei verschiedene Register. Die beiden Instruktionen zu imple-mentieren, erzeugt also einen Struktur-Hazard.Jede der vier neuen Instruktionen wird naheliegenderweise das I-Formataufweisen. Jede neue Instruktion ’verbraucht’ dann noch auch einen weite-ren OP-Code.

Page 129: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 129

3. Identifizieren Sie die prinzipielle Schwierigkeit, die pipeline-Implementationdes MIPS R2000 um etwa den auto-increment Befehle LWai im FormatLWai Rs Rt immediate zu erweitern. Welche Losungen gibt es?

Wahlen Sie die einfachste und skizzieren Sie in Fig. 6.51 die notwendigenAnderungen und Erganzungen im Daten-Pfad und in der Steuerung. Wiesind die Signale in jeder Phase der Befehlsabarbeitung zu setzen? (12 Pkt)

1 fur structure hazard = zwei Additionen plus zweifaches Schreiben in dieRegister-Datei, 1 fur einfache Losung = Addierer hinzufugen (d.h. mehrhardware), 1 fur stall (d.h. mehr Zeit), 1 fur komplexe, weil schwieriger zubewertende Losung = zusatzliche Stufe hinzufugen (d.h. mehr Zeit, mehrpipeline-Register, aufwandigeres forwarding, hohere penalties fur pipelineflush bei Prozess-Wechsel etc.), 1 fur Bewertung der drei Losungen, 1 furincrement/decrement offsets ±1, ±4, ±8, namlich fur etwa char, float

und double – soweit angesichts des not aligned Zugriffs uberhaupt sinnvoll,1 fur zusatzliche Ports an Register-Datei, 5 fur Signale

Datenpfad und Signale fur die 5-stufige pipeline mit zusatzlichem Addiererin der EX-Stufe sowie zusatzlichen ports WriteRegister2 und WriteData2

am register file:

IF-Signale, ID-Signale wie gehabt

EX-Signale Signale fur die Adressen-Berechnung wie gehabt. Der zusatz-liche Addierer berechnet Rs+=4 oder Rs -= 4 je nach OPcode LWai

oder LWad.

MEM-Signale wie fur LW

WB-Signale Das Signal RegWrite ist um ein weiteres Signal RegWrite2zu erganzen: nur wenn RegWrite2 aktiv ist, wird WriteData2, namlichdas Ergebnis des zusatzlichen Addierers, in WriteRegister2 (wie derLW-Zielregister-Name Rt ist auch der weitere LWai-Zielregister-NameRs durch die drei pipeline-Register ID/EX, EX/Mem und Mem/WB durch-zureichen, damit der Name dieses zweiten Zielregisters in WB zurVerfugung steht) geschrieben. Dies hat u.a. zur Folge, daß die hazarddetection auch RegWrite2 untersuchen muß, um das zusatzliche Ziel-register WriteRegister2 als Ursache eines data hazards identifizierenzu konnen.

4. Konstruieren und bewerten Sie Folgen von Memory-Referenzen fur denMini-Cache mit 8 Worten Netto-Kapazitat und geeigneter Organisation,

a) so daß βcaching < 1, so daß also caching kontraproduktiv ist, (2 Pkt)

Unmittelbar aufeinander folgende Lese-Zugriffe, z.B. aufgrund der Speicher-Referenzen 0,8,0,8,. . . auf dieselbe line des direct mapped caches machenstandiges Verdrangen und Nachladen notwendig: je hoher die Blockgroße,um so kontraproduktiver/sinnloser ist es, standig mit neuen Blocken alte

Page 130: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 130

zu verdrangen, ohne daß auf einen dieser Blocke mehrmals nacheinanderzugegriffen wird.

b) so daß ein den Speicher lesender Zugriff einen den Speicher schreibendenZugriff auslost. (2 Pkt)

2 fur klassifizierte Zugriffe auf cache mit spezifizierter Organisation

Immer dann, wenn aufgrund eines read miss eine dirty cache line – bei derSchreibstrategie copy back – verdrangt wird, muß die zu verdrangende cacheline zunachst in den Speicher zuruckgeschrieben werden: cache line Nr. 0 seidirty. Die Speicher-Referenzen 0,8 auf diese line des direct mapped cachesseien lesend. Die Referenz 8 stellt einen read miss dar, die alte dirty linemuß vor dem Verdrangen erst in den Speicher zuruckgeschrieben werden.Eine Lese-Operation lost also eine Schreib-Operation aus.

c) Entweder Sie geben eine Folge von lesenden Speicher-Referenzen an, sodaß – bei derselben Netto-Kapazitat – ein hoher assoziativer cache wenigerhits aufweist als ein niedrig assoziativer cache, oder Sie begrunden, warumes eine solche Folge von Referenzen nicht geben kann. (2 Pkt)

1 fur Existenz, 1 fur ’hoher assoziative caches haben bei derselben Netto-Kapazitat genauso viel cache lines wie niedriger assoziative caches, abermehr Freiheitsgrade beim Platzieren von Blocken

fully associative (4-ass.), LRU0 1 2 3 4 0 1 2

0 0 41 1 02 2 13 3 2

m m m m m m m m

direct mapped (1-ass.)0 1 2 3 4 0 1 2

0 0 4 01 1 12 2 23 3

m m m m m m h hGibt es kleinere Beispiele?

5. Consider: 8 bits in a physical address, 3 bits for the frame/page numberHow many bytes (words) of physical memory? How many frames are there?How many bytes is a page? How many bits for page offset? (1 Pkt)

1 fur physical memory = 256 bytes = 8 × 32 bytes-pages; frame = physicalpage hat 5bit page offset.

6. Wir haben gesehen, daß data und control hazards sowohl vom Compilerals auch vom Prozessor behoben werden konnen. Die superskalare Imple-mentierung (vgl. Fig 6.58) unterstellt, daß der Compiler immer geeignetePaare von Instruktionen generiert, namlich (alInstr, LSinstr), wobei alInstrfur arithmetisch-logische Instruktionen, Verzweigungen und Sprunge oderNOP und LSinstr fur load/store-Instruktionen oder NOP steht.Beschreiben und skizzieren Sie konkret, wie die Anforderungen an den Com-piler schrittweise auf die hardware verlagert werden konnen. (10 Pkt)

Page 131: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 131

1 fur check, ob ’oben’ alInstr und ’unten’ LSinstr, 1 fur exception, fallsunzulassiges Instruktionspaar, 2 fur Vertauschen der Instruktionen im In-struktionspaar in richtige Reihenfolge, 6 fur Serialisierung der Abarbeitungunzulassiger Instruktionspaare

Alles Folgende ohne Berucksichtigung von hazards!

1. Prozessor soll wenigstens signalisieren, daß ein nicht zulassiges Instruk-tionspaar geladen wurde:

if !(alInstr==ADD||alInstr==BEQ||alInstr==J||alInstr==NOP)

|| !(LSinstr==LW||LSinstr==SW||LSinstr==NOP) raise exception

implementiert durch Erweiterung der Control

2. Unterstellt, der Compiler liefert immer bis auf Reihenfolge zulassigeInstruktionspaare. Vertauschen von (instruction1,instruction2)

im IR in die richtige Reihenfolge macht eine weitere pipeline-Stufe IO(InstructionOrder) erforderlich, weil nach der Vertauschung ein ’neues’IR, namlich das pipeline Register IO/ID geschrieben werden muß. Restper MUXs

3. Unterstellt, der Compiler liefert beliebige Instruktionspaare. Der Pro-zessor muß dann entweder die beiden Instruktionen eines Instruktions-paares gegebenenfalls vertauschen und kann danach beide Instruktio-nen parallel abarbeiten oder es liegt kein bis auf Reihenfolge zulassi-gen Instruktionspaar vor: dann serialisieren und der richtigen pipelinezufuhren . . .

7. In der parallelen Version des Gauß-Algorithmus mussen zum Auflosen (back-substitution) Summen von Feld-Elementen berechnet werden.Bestimmen Sie fur p = 2, 3, 4, in welcher Zeit (unter Vernachlassigung desKommunikationsoverheads) p PEs n Feld-Elemente mit n > 2p aufsummie-ren. (6 Pkt)

Wie in der Vorlesung behandelt, summieren p PEs n Summanden in t =t(p, n) Schritten, wobei t(p, n) = dldne, falls p ≥ n/2.

n = 2

+

n = 3

+

+

n = 4

+ +

+

usw.

In Anwendungen gilt nun aber typischerweise n p. Also ist t(p, n) unterder Annahme ungehinderten Zugriffs eines jeden PEs auf alle Argumente(im globalen Speicher) fur n > 2p zu bestimmen.Uberlegungen, die jeweils auf vollstandige Induktion hinauslaufen, liefern:

Page 132: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 132

p = 2 PEs: Fur 2 < n/2, also n > 4 gilt t(2, n) = dn/2e, weil im letztenSchritt notwendigerweise nur eine relevante Addition ausgefuhrt wer-den kann, und die ubrigen n− 2 Additionen in d(n− 2)/2e Schrittenausgefuhrt werden: t(2, n) = d(n− 2)/2e+ 1 = dn/2e.

p = 3 PEs: Fur 3 < n/2, also n > 6 gilt t(3, n) = d(n − 1)/3e + 1,weil im letzten nur eine und im vorletzten Schritt nur zwei relevanteAdditionen ausgefuhrt werden konnen: t(3, n) = d(n − 4)/3e + 2 =d(n− 1)/3e+ 1.

p = 4 PEs: Fur 4 < n/2, also n > 8 gilt t(4, n) = dn/4e + 1, weil inden beiden letzten Schritten nur drei relevante Additionen ausgefuhrtwerden konnen: t(4, n) = d(n− 4)/4e+ 2 = dn/4e+ 1.

. . .

Selbstverstandlich muß hier jeweils noch etabliert werden, daß die oberenGrenzen jeweils auch tatsachlich angenommen werden.Wegen t = t(p, n) = dldne, falls p ≥ n/2, gilt hier βaufgrund p PEs = n−1

dldne .

Da wegen n p im ersten Schritt alle PEs auf den gemeinsamen Speicherzugreifen, kame etwa ein Kreuzschienenverteiler mit entsprechend vielenmemory-ports in Frage. Der globale Speicher kann aber auch verteilt wer-den, so daß er sich im NUMA-Sinn aus lauter lokalen Speichern allerdingsmit gemeinsamem Adreßraum zusammensetzt. Die PEs mit ihren lokalenSpeichern werden als hypercube verbunden. Dann kommt gerade im erstenSchritt der schnelle lokale Zugriff vorteilhaft zum Tragen.

Wie sind die Ergebnisse zu verallgemeinern?

(Summe ca. 40 Punkte)

Page 133: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 133

16 RST-Klausur SS05

Klausur Rechner-Strukturen 13.7.05

Name Matrikel

Alle schriftlichen Unterlagen sind zugelassen! und aus gegebenem Anlaß:

weniger ist mehr! – statt weitschweifiger, wolkiger Poesieklare, knappe Aussagen mit stimmigen, Stichwort-artigen Begrundungen!

Abschreiben allgemeiner Aussagen aus Materialien allein ist sinnlos!

1. Entwickler erwagen eine Erweiterung des MIPS R2000/R3000-Befehlssatzesum die Instruktion load immediate21 mit li21 Rs,immd21; Rs=immd21 im

Format6 5 21

op Rs immediate.

Diskutieren Sie Vor- und Nachteile dieser Befehlssatzerweiterung. (2 Pkt)

2. Um 32bit-Immediates in ein MIPS R2000/R3000-Register zu laden, sinddie beiden Instruktionen lui Rt,immdupper und addi Rt,Rt,immdlower

notwendig.

In der superskalaren pipeline-Implementierung (in jedem Zyklus werdenPaare von Instruktionen abgearbeitet) ware folgende 32bit-Variante loadimmediate32 mit li32 Rt,immd32; Rt=immd32 denkbar: die Instruktion ist

64bit (!) lang und habe das Format

(6 5 5 16

op * Rt *,

32

immediate

).

Beschreiben Sie die Abarbeitung von li32 auf der superskalaren pipeline-Implementierung und erweitern Sie die Implementierung um li32. Skiz-zieren Sie dazu im Arbeitsblatt (Fig. 6.58) die notwendigen Anderungenoder Erganzungen im Daten-Pfad. Wie sind die Signale (verwenden Sie dieeingefuhrten Bezeichnungen) zu setzen? (8 Pkt)

Illustrieren Sie den Gebrauch von li32 an einem einschlagigen Beispiel.(2 Pkt)

3. Welche Variante des folgenden C-Programms ist unter welchen Bedingun-gen an caching und Speicher-Organisation schneller?

/* version A */

int arr[1024][1024];

for (j=0; j<1024; j++)

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

arr[i][j]=0;

/* version B */

int arr[1024][1024];

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

for (j=0; j<1024; j++)

arr[i][j]=0;(4 Pkt)

Page 134: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 134

4. Physical memory = 128 bytes, Physical address space = 8 frames = 8 pages.How many bits in a byte address? How many bits for page number? Howmany bits for page offset? Can a logical address space have only 2 pages?How big would the page table be? (2 Pkt)

5. Gauß-Elimination uberfuhrt die Koeffizienten-Matrix A eines Systems li-nearer Gleichungen A~x = ~b in eine obere Dreiecksmatrix, das Gauß-Jordan-Verfahren in eine Diagonalmatrix.Das Gauß-Jordan-Verfahren fur ein System n linearer Gleichungen in n Un-bekannten werde wie in der Vorlesung auf einem Multi-Prozessor-Systemmit n+1 PEs implementiert. Skizzieren Sie den Algorithmus und berechnenSie den Beschleunigungsfaktor aufgrund Parallelisierung unter Vernachlassi-gung des overheads fur Kommunikation. (4 Pkt)

6. Gegeben ein System n linearer Gleichungen in n Unbekannten, implemen-tiert auf einem Multi-Prozessor-System mit n + 1 = 2m PEs . EntwerfenSie einen Algorithmus fur den Schritt der Auflosung im klassischen Gauß-Verfahren, implementiert auf einem als m-dimensionalen hypercube orga-nisierten Multi-Prozessor-System. (4 Pkt)

(Summe ca. 26 Punkte)

Page 135: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 135

Losungen zur Klausur Rechner-Strukturen 13.7.05

1. Entwickler erwagen eine Erweiterung des MIPS R2000/R3000-Befehlssatzesum die Instruktion load immediate21 mit li21 Rs,immd21; Rs=immd21 im

Format6 5 21

op Rs immediate.

Diskutieren Sie Vor- und Nachteile dieser Befehlssatzerweiterung. (2 Pkt)

1 fur ’so sind 21bit breite Immediates mit einer einzigen Instruktion undeben nicht mit zwei Instruktionen, namlich lui und addi, zu laden’, 1 fur’Nutzen hangt ab von der Haufigkeit des Ladens von 17 bis 21bit breiten Im-mediates: wahrscheinlich nicht ubermaßig haufig!’, 1 fur ’es wird ein OPcodefur eine eher nicht so potente Instruktion verbraten’, 1 fur ’etwas zusatzli-cher hardware-Aufwand: vor allem 21→ 32 SignExtend’

2. Um 32bit-Immediates in ein MIPS R2000/R3000-Register zu laden, sinddie beiden Instruktionen lui Rt,immdupper und addi Rt,Rt,immdlower

notwendig.

In der superskalaren pipeline-Implementierung (in jedem Zyklus werdenPaare von Instruktionen abgearbeitet) ware folgende 32bit-Variante loadimmediate32 mit li32 Rt,immd32; Rt=immd32 denkbar: die Instruktion ist

64bit (!) lang und habe das Format

(6 5 5 16

op * Rt *,

32

immediate

).

Beschreiben Sie die Abarbeitung von li32 auf der superskalaren pipeline-Implementierung und erweitern Sie die Implementierung um li32. Skiz-zieren Sie dazu im Arbeitsblatt (Fig. 6.58) die notwendigen Anderungenoder Erganzungen im Daten-Pfad. Wie sind die Signale (verwenden Sie dieeingefuhrten Bezeichnungen) zu setzen? (8 Pkt)

Illustrieren Sie den Gebrauch von li32 an einem einschlagigen Beispiel.(2 Pkt)

1 fur ’zweite Instruktion im Instruktionspaar ist Immediate’, 1 fur: li perCompiler immer etwa ’obere’ Instruktion (align), control unit verhindertdann die Auswertung des ’unteren’ ’opcodes’!1 fur 32 bit immediate der Instruktion/des Instruktionspaares bis durchdas ID/EX-pipeline-Register durchschleifen und an neuen MUX li32 vorwrite data anlegen.Die zugehorigen Signale sind dann 1/2 fur IF: wie gehabt, 1/2 fur ID: wiegehabt, 3/2 fur EX: li32=1, RegWrite=1, RegDst=0 1/2 fur alle ubrigenSignale sind deaktiviert.

li32 wird wie alle Instruktionspaare geladen (IF) und dekodiert (ID). Zu-gleich wird das 32-bit immediate Instr[63-32] durch die pipeline-Registerbis in die EX-Phase durchgeschoben, um etwa in der WB-Phase (oderauch fruher) zur Verfugung zu stehen. Der MUX RegDst fur das Ziel-Register ist in der EX-Phase per RegWrite=1 so anzusteuern, daß Rt Ziel-

Page 136: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 136

Register ist. Ein neuer MUX li32 vor write data hat als Eingange den al-ten write data-Pfad sowie das durchgeschleifte immediate Instr[63-32].Dieser MUX ist in der EX-Phase so anzusteuern, daß das immediate amwrite data Eingang der Register-Datei anliegt. Mit RegWrite = 1 kanndann das immediate in das Ziel-Register geschrieben werden. Alle ubrigenSignale sind zu deaktivieren, insbesondere naturlich alle diejenigen, die denload/store-Prozessor steuern.

Alternativ kann man den MUX li32 einsparen und das immediate durchalle pipeline-Register hindurch zusatzlich an den zu erweiternden MUXMemtoReg anlegen. Allerdings dauert li32 dann funf statt drei pipeline-cycles.

Selbstverstandlich sind Alternativen moglich, wie etwa Immd32 an ’obere’ALU anlegen und auf R0 aufaddieren.

Eine einschlagige Anwendung von li32 ist (vgl. jedes WinDLX-Programm),

;; Initialize Stack Pointer

add r14,r0,r0

lhi r14, ((0x10000-4)>>16)&0xffff

addui r14, r14, ((0x10000-4)&0xffff)

(0x10000 ist hier die Große des Speichers) zu ersetzen durch

li r13, 0x10000-4

3. Welche Variante des folgenden C-Programms ist unter welchen Bedingun-gen an caching und Speicher-Organisation schneller?

/* version A */

int arr[1024][1024];

for (j=0; j<1024; j++)

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

arr[i][j]=0;

/* version B */

int arr[1024][1024];

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

for (j=0; j<1024; j++)

arr[i][j]=0;(4 Pkt)

1 fur Anlegen von Feldern im Speicher, 1 fur Einfluß caching (cache- undBlock-Große sowie Schreib-Strategie), 1 fur Speicher-Organisation bei pa-ging (thrashing), 1 fur Speicher-Organisation bei segmentation

Zunachst werden in C zwei-dimensionale Felder zeilenweise abgelegt. arr:[0, 0] [0, 1] ... [0, n] [1, 0] [1, 1] ... [1, n] . . . . . . [n, 0] [n, 1] ... [n, n]

fur n = 1023. Nur zur Erinnerung: in arr[i][j] ist i der Zeilen- und j derSpalten-Index, z.B. in Bildern. Das Ergebnis des Vergleichs hangt nun abvon

cache-Organisation und cache-Schreib-Strategie Gehen wir der Ein-fachheit halber davon aus, daß keines der Feld-Elemente schon imcache vorliegt, wie z.B. dann, wenn der Programm-Ausschnitt eineInitialisierung von arr darstellt.

Page 137: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 137

write through & write around on write miss Laut unserer An-nahme ist jede Zuweisung im Schleifen-Rumpf ein write miss: dercache spielt fur die Feld-Initialisierung keine Rolle, so daß sich dieVarianten A und B uberhaupt nicht unterscheiden.

write back & fetch on write miss d.h. on miss wird der Block ei-nes jeden Feld-Elements erst in den cache geladen, nehmen wirwieder der Einfachheit halber an, daß das Feld alligned alloziertist und daß die Block-Lange ein Teiler von 1024 ist.Die performance von Version A hangt von der Anzahl c der cachelines und der block size b ab: Ein Beispiel: direct mapped cachemit 512 lines a 512 int’s, d.h. c = 512 und b = 1MB. Dieser cachehat eine Netto-Kapazitat von c b B= 512KB. Zur Vereinfachungder Darstellung sei arr im Speicher ab Adresse 0 abgelegt.

arr[0][0]=0 bringt Matrix-Zeile arr[0][] in cache line No 0arr[1][0]=0 bringt Matrix-Zeile arr[1][] in cache line No 1usw.arr[511][0]=0 bringt Matrix-Zeile arr[511][] in cache line No 511arr[512][0]=0 bringt Matrix-Zeile arr[512][] in cache line No 0

verdrangt dabei die alte Matrix-Zeile arr[0][]

(Block mit nur 2 geanderten Bytes zuruck in Speicher)usw.arr[n][0]=0 bringt Matrix-Zeile arr[n][] in cache line No 511

verdrangt dabei die alte Matrix-Zeile arr[511][]

(Block mit nur 2 geanderten Bytes zuruck in Speicher)arr[0][1]=0 bringt Matrix-Zeile arr[0][] in cache line No 0

verdrangt dabei die alte Matrix-Zeile arr[511][]

(Block mit nur 2 geanderten Bytes zuruck in Speicher)usw.arr[511][1]=0 bringt Matrix-Zeile arr[511][] in cache line No 511

verdrangt dabei die alte Matrix-Zeile arr[n][]

(Block mit nur 2 geanderten Bytes zuruck in Speicher)usw.usf.

Wie im Beispiel ersichtlich, wird in Version A fur jedes Feld-Element ein Block in den Speicher geschrieben. Insgesamt werdenalso 1020× 1024 = 1M Blocke in den Speicher geschrieben.In Version B wird also aufgrund eines write miss ein Block (!) inden cache geladen, die nachsten writes sind write hits, die zunachstnur die cache line verandern. Die cache line, der Block wird erst vordem Verdrangen ins memory zuruckgeschrieben, d.h. in 1M/block-size Block-transfers (block-size in size of(int)).

die anderen beiden Schreib-Strategien sind nicht ublich (vgl. CA 8.3)

Speicher-Organisation (letztlich muß das Feld ja im Speicher auf Nullgesetzt werden)

paging Etwa unter der write through & write around on write miss

Page 138: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 138

cache-Schreib-Strategie kann bei der Varinate A page thrashingauftreten: bei wenig verfugbarem physikalischen Speicher mussendauernd neue Seiten geladen und alte Seiten verdrangt werden.

segmentation etwa 80x86 data segments liegen entweder ganz imphysikalischen Speicher oder garnicht. Wenn das Feld also einmalalloziert ist, kann – in welcher Reihenfolge auch immer – ohneweiteres in das data segment geschrieben werden, so daß sich dieVersionen A und B nicht unterscheiden.

4. Physical memory = 128 bytes, Physical address space = 8 frames = 8 pages.How many bits in a byte address? How many bits for page number? Howmany bits for page offset? Can a logical address space have only 2 pages?How big would the page table be? (2 Pkt)

1 fur physical memory = 128 bytes = 8 × 16bytes-pages; physical addresshat 7 bit (27 = 128); physical page number hat 3 bit wegen 4bit page offset.1 fur logical = virtual address space bestehe aus nur zwei pages. Ok, aberdann ist der virtual address space mit 32 bytes untypischerweise wesentlichkleiner als der physical address space. Die page table hat dann zwei Eintrage:wo befindet sich die erste, wo die zweite page im physikalischen Speicher.

5. Gauß-Elimination uberfuhrt die Koeffizienten-Matrix A eines Systems li-nearer Gleichungen A~x = ~b in eine obere Dreiecksmatrix, das Gauß-Jordan-Verfahren in eine Diagonalmatrix.Das Gauß-Jordan-Verfahren fur ein System n linearer Gleichungen in n Un-bekannten werde wie in der Vorlesung auf einem Multi-Prozessor-Systemmit n+1 PEs implementiert. Skizzieren Sie den Algorithmus und berechnenSie den Beschleunigungsfaktor aufgrund Parallelisierung unter Vernachlassi-gung des overheads fur Kommunikation. (4 Pkt)

1 fur: Erhohung der Auslastung: in jedem Eliminationsschritt modifiziertjedes PE ’sein’ Koeffizienten-Matrix-Element bzw. ’sein’ Element des Vek-tors der rechten Seite,1 fur: Uberfuhrung in Diagonal-Matrix erleichtert den Auflosungsschrittganz wesentlich (Reduktion von O(n2) auf O(n)) und das ohne Daten-abhangigkeiten, 2 fur β

Gauß-Elimination (hier ohne Auflosen) uberfuhrt die Koeffizienten-Matrixin eine obere Dreiecksmatrix:

for(i=1; i<n; i++) // eliminiere Unbekannte xi, 1 ≤ i < nfor(j=i+1; j<=n; j++) // in der j-ten Gleichung, j = i+1, ..., n

const double pivot=A[j][i]/A[i][i];

parbegin

A[j][i]=0.0; // xi in j-ter Gleichung eliminieren// restliche Koeffizienten der j-ten Gleichung aktualisierenfor(k=i+1; k<=n; k++) A[j][k]-=pivot*A[i][k];

b[j]-=pivot*b[i]; // Koeffizienten der r.S. aktualisieren

Page 139: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 139

parend

Gauß-Jordan uberfuhrt die Koeffizienten-Matrix in eine Diagonalmatrix(nur die Elemente auf der Hauptdiagonalen sind von Null verschieden):

for(i=1; i<n; i++) // eliminiere Unbekannte xi, 1 ≤ i < nfor(j=1;j<=n;j++)if(j<>i) // in der j-ten Gleichung, j 6= i

const double pivot=A[j][i]/A[i][i];

parbegin

A[j][i]=0.0; // xi in j-ter Gleichung eliminieren// restliche Koeffizienten der j-ten Gleichung aktualisierenfor(k=i+1; k<=n; k++) A[j][k]-=pivot*A[i][k];

b[j]-=pivot*b[i]; // Koeffizienten der r.S. aktualisierenparend

Die Auflosung von diag(~d)~x =diag(d1, . . . , dn)~x = ~b besteht dann nur nochin der (parallel ausfuhrbaren) Division xi = bi/di fur i = 1, 2, . . . , n.Der Beschleunigungsfaktor ist leicht bestimmt. Wieder aktualisieren dien + 1 PEs ’ihre’ Koeffizienten parallel in einer ZE (Nullsetzen oder MAC-Operation):x1 in n− 1 Gleichungen zu eliminieren, braucht n− 1 ZE.x2 in n− 1 Gleichungen zu eliminieren, braucht n− 1 ZE.. . .xn−1 in n− 1 Gleichungen zu eliminieren, braucht n− 1 ZE.Insgesamt braucht das Multi-Prozessor-System also (n−1)2 ZE, um die dieKoeffizienten-Matrix in eine Diagonalmatrix zu uberfuhren.

Fur ein Mono-Prozessor-System dagegen gilt unter denselben Zeitbedin-gungen x1 in n− 1 Gleichungen zu eliminieren, braucht (n− 1)(n+ 1) ZE.x2 in n− 1 Gleichungen zu eliminieren, braucht (n− 1)n ZE.x3 in n− 1 Gleichungen zu eliminieren, braucht (n− 1)(n− 1) ZE.. . .xn−1 in n− 1 Gleichungen zu eliminieren, braucht (n− 1)3 ZE.Insgesamt braucht das Mono-Prozessor-System also (n− 1)

∑n+1i=3 i = (n−

1)( (n+1)(n+2)2

−3) = (n−1)12(n2 +3n−4) = 1

2(n−1)2(n+3) ZE, so daß sich

fur den Beschleunigungsfaktor β = (n−1)2(n+3)2(n−1)2

= 12(n + 3) ≈ n

2fur große n

ergibt.

Gauß-Jordan kann die Koeffizienten-Matrix auch in die Einheitsmatrix u-berfuhren, so daß der Vektor der rechten Seite am Ende die Losung enthalt.

6. Gegeben ein System n linearer Gleichungen in n Unbekannten, implemen-tiert auf einem Multi-Prozessor-System mit n + 1 = 2m PEs . EntwerfenSie einen Algorithmus fur den Schritt der Auflosung im klassischen Gauß-Verfahren, implementiert auf einem als m-dimensionalen hypercube orga-nisierten Multi-Prozessor-System. (4 Pkt)

Page 140: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 140

Es reicht zu zeigen, wie auf dem m-hypercube eine Summe aus 2m Sum-manden berechnet werden kann. Dies kann induktiv gezeigt werden. Hiergenugt vermutlich folgende Graphik (die Summe wird immer vom linkenPE, bzw. vom PE links unten gebildet):

1-cube

0 1 so s1

so + s1

node 0 berechnet so + s1

2-cube

00 01

10 11

soo so1 s1o s11

soo+so1+s1o+s11node 10 berechnet s1 = s1o + s11

node 00 berechnet so = soo + so1

node 00 berechnet so + s1

3-cube

000 001

010 011

100 101

110 111

sooo soo1 so1o so11 s1oo s1o1 s11o s111

sooo+soo1+so1o+so11+s1oo+s1o1+s11o+s111

(Summe ca. 26 Punkte)

Page 141: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 141

17 RST-Klausur WS04

Klausur Rechner-Strukturen 20.12.04

Name Matrikel

Alle schriftlichen Unterlagen sind zugelassen! und aus gegebenem Anlaß:

weniger ist mehr! – statt weitschweifiger, wolkiger Poesieklare, knappe Aussagen mit stimmigen, Stichwort-artigen Begrundungen!

Abschreiben allgemeiner Aussagen aus Materialien allein ist sinnlos!

1. Die DLX-Instruktion bgez Rs, label; if (Rs>=0) goto label ist einesogenannte Pseudo-Instruktion, d.h. eine Instruktion, die nicht im Befehls-satz vorkommt und die der Assembler durch eine oder mehrere geeigneteInstruktionen des Befehlssatzes ersetzt.Welchen Sinn haben Pseudo-Instruktionen? Pseudo-Instruktionen entlastenwelche Instanzen wovon und belasten welche Instanzen wodurch? Durchwelche Instruktion(en) wird bgez ersetzt (s. DLX ISA)? Schlagen Sie we-sentlich andere, sinnvolle Pseudo-Instruktionen zusammen mit ihren DLX-Implementierungen vor (s. DLX ISA). (je 1/2 Pkt)

2. Der MIPS R2000/R3000-Befehlssatz soll um die load-upper-immediate-

Instruktion lui Rt,immd im Format6 5 5 16

0xf * Rt immediateerweitert

werden, die immd in die obere Halfte von Rt ladt und die unteren Bits auf0 setzt.Skizzieren Sie dazu im Arbeitsblatt (Fig. 5.33) die notwendigen Anderun-gen oder Erganzungen im Daten-Pfad der multi cycle Implementierung.Wie mussen die Signale gesetzt werden? Illustrieren Sie den Gebrauch vonlui. (8 Pkt)

3. Fur aufmerksame c’t-Leser: Im Prescott-Kern des Intel Pentium 4E ist diepipeline von 20 auf 32 Stufen verlangert worden (vgl. c’t 4/04 166–169).Erlautern Sie den Grund fur diese tiefe pipeline und die damit einhergehen-den Probleme (ggfls. mit Losungen). (je1/2 Pkt)

Page 142: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 142

4. (P&H, Ex 7.6) Cache C1 sei direct mapped mit 16 1-Wort-Blocken. CacheC2 sei direct mapped mit vier 4-Wort-Blocken. Die miss penalty fur C1 sei8 cycles, diejenige fur C2 sei 11 cycles. Beide caches seien inital leer (allecache lines sind invalid). Geben Sie eine Reihe von memory-Referenzen inWort-Adressen an, so daß C2 eine kleinere miss rate aber mehr cycles misspenalty als C1 aufweist. (4 Pkt)

5. Gegeben ein 1st level cache C1 und ein 2nd level cache C2. Berechnen Siedie durchschnittliche Zugriffszeit auf den Speicher (average memory accesstime, AMAT ) fur C1, C2 und RAM unter Berucksichtigung der beiden cacheaccess times c1 und c2 sowie der beiden hit rates h1 und h2 und der memoryaccesss time m. Bestimmen Sie den Beschleunigungsfaktor aufgrund derEinfuhrung von C2 fur c1 = 2ZE, h1 = .85, c2 = 12ZE, h2 = .98 undm = 40ZE. (3 Pkt)

6. Fur Pentium-Kenner: In welchen Hinsichten nutzen Intel Pentium Prozes-soren Parallel-Verarbeitung? Belegen Sie Ihre Aussagen durch Beispiele.(je 1/2 Pkt)

7. Gauß-Elimination uberfuhrt die Koeffizienten-Matrix A eines Systems li-nearer Gleichungen A~x = ~b in eine obere Dreiecksmatrix, das Gauß-Jordan-Verfahren in eine Diagonalmatrix. Beschreiben Sie eine parallele Version desGauß-Jordan-Verfahrens und seine Vorteile gegenuber dem parallelen klas-sischen Gauß-Verfahren der Vorlesung. (2 Pkt)

(Summe ca. 24 Punkte)

Page 143: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 143

Losungen zur Klausur Rechner-Strukturen 20.12.04

1. Die DLX-Instruktion bgez Rs, label; if (Rs>=0) goto label ist einesogenannte Pseudo-Instruktion, d.h. eine Instruktion, die nicht im Befehls-satz vorkommt und die der Assembler durch eine oder mehrere geeigneteInstruktionen des Befehlssatzes ersetzt.Welchen Sinn haben Pseudo-Instruktionen? Pseudo-Instruktionen entlastenwelche Instanzen wovon und belasten welche Instanzen wodurch? Durchwelche Instruktion(en) wird bgez ersetzt (s. DLX ISA)? Schlagen Sie we-sentlich andere, sinnvolle Pseudo-Instruktionen zusammen mit ihren DLX-Implementierungen vor (s. DLX ISA). (je 1/2 Pkt)

1/2 fur Pseudo-Instruktionen machen den Assembler-Code lesbarer.1/2 fur Pseudo-Instruktionen entlasten damit den Assembler-Programmie-rer, sie belasten denjenigen, der den Assembler selbst programmiert (z.B.wird die Sprungzielberechnung wesentlich aufwendiger, weil Pseudo-Instruk-tionen jeweils unterschiedlich vielen Assembler-Instruktionen entsprechen)1/2 fur einfache ’Befehlssatzerweiterung’, ohne OP-Codes zu verschwenden1/2 bgez wird ersetzt durch sge und beqz

1/2 Pseudo-Instruktion move Rd,Rs wird ersetzt durch addi Rd,Rs,#0

2. Der MIPS R2000/R3000-Befehlssatz soll um die load-upper-immediate-

Instruktion lui Rt,immd im Format6 5 5 16

0xf * Rt immediateerweitert

werden, die immd in die obere Halfte von Rt ladt und die unteren Bits auf0 setzt.Skizzieren Sie dazu im Arbeitsblatt (Fig. 5.33) die notwendigen Anderun-gen oder Erganzungen im Daten-Pfad der multi cycle Implementierung.Wie mussen die Signale gesetzt werden? Illustrieren Sie den Gebrauch vonlui. (8 Pkt)

1 fur: in multicycle implementation wird lui in nur drei cycles abgearbeitet:IF, ID, WB.1 fur Zusammensetzen des in Rt zu schreibenden Wertes wie Jump address.namlich einfach per concatenation.1 fur Erweiterung des MUXs MemToReg um einen weiteren Eingang, der miteiner dezimalen 2 angesteuert wird: Lege 16 bit ’fest auf 0’ als low word unddas immediate der Instruktion als das high word an diesen neuen Eingang.Die zugehorigen Signale sind dann 1/2 fur IF: wie gehabt, 1/2 fur ID:wie gehabt, 3/2 fur WB: MemToReg=2, RegWrite=1, RegDst=0 1/2 fur alleubrigen Signale sind deaktiviert. 2 fur Gebrauch: Laden von 32 data in GP-Register in zwei Stufen:

lui Rt, imd ; load imd, i.e. upper half word, into Rt

addui Rt, Rt, imd ; load imd, i.e. lower half word, into Rt

3. Fur aufmerksame c’t-Leser: Im Prescott-Kern des Intel Pentium 4E ist diepipeline von 20 auf 32 Stufen verlangert worden (vgl. c’t 4/04 166–169).

Page 144: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 144

Erlautern Sie den Grund fur diese tiefe pipeline und die damit einhergehen-den Probleme (ggfls. mit Losungen). (je1/2 Pkt)

1/2 fur: In je mehr (gleichlange) Stufen die Befehlsabarbeitung aufgebrochenwird, in umso hoherer Frequenz purzeln am Ende der pipeline die abgear-beiteten Befehle ’raus. Leistung ≈ Stufenanzahl ! Der Ubergang zu immerhoheren werbewirksamen Taktfrequenzen wird erleichtert.1/2 fur: Erhohung der Stufenanzahl erhoht zugleich die penalties fur bran-ching und loading sowie die Latenz, flush und restart times der pipelinesetwa bei Prozess-Wechsel. Also wird Verbesserung der branch prediction,Vergroßerung der caches wie ebenso Verbesserung der Speicher-Anbindungnotwendig.1/2 fur: Erhohung der Leistung auch durch mehr functional units (integerMultiplizierer, shifter),1/2 fur: Verbesserung der Speicheranbindung (page table walk, cache alias)insbesondere bei hyperthreading,1/2 fur: zusatzliche SSE-Instruktionen,1/2 fur: thread Synchronisation usw.

4. (P&H, Ex 7.6) Cache C1 sei direct mapped mit 16 1-Wort-Blocken. CacheC2 sei direct mapped mit vier 4-Wort-Blocken. Die miss penalty fur C1 sei8 cycles, diejenige fur C2 sei 11 cycles. Beide caches seien inital leer (allecache lines sind invalid). Geben Sie eine Reihe von memory-Referenzen inWort-Adressen an, so daß C2 eine kleinere miss rate aber mehr cycles misspenalty als C1 aufweist. (4 Pkt)

Ein Beispiel ist die Folge 0,1,4,8 von Speicher-Referenzen:

C1 0 1 4 80 01 1...4 4...8 8...

15m m m m

C1 mit 4 misses und 4·8 = 32 cycles penalty

C2 mit 3 misses und 3·11 = 33 cycles penaltyC2 0 1 4 80 (0,1,2,3) (0,1,2,3)1 (4,5,6,7)2 (8,9,10,11)3

m h m m

Diese Situation ist die Ausnahme, wie ein vermutlich kleinstes Gegenbeispielzeigt:

Page 145: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 145

C1 C2

Referenz line line0 0 miss 0 miss1 1 miss 0 hit

penalty 2× 8 = 16 1× 11 = 11miss rate 100% 50%

5. Gegeben ein 1st level cache C1 und ein 2nd level cache C2. Berechnen Siedie durchschnittliche Zugriffszeit auf den Speicher (average memory accesstime, AMAT ) fur C1, C2 und RAM unter Berucksichtigung der beiden cacheaccess times c1 und c2 sowie der beiden hit rates h1 und h2 und der memoryaccesss time m. Bestimmen Sie den Beschleunigungsfaktor aufgrund derEinfuhrung von C2 fur c1 = 2ZE, h1 = .85, c2 = 12ZE, h2 = .98 undm = 40ZE. (3 Pkt)

Angenommen, die Zugriffe bzw. Zugriffsversuche auf caches und Speicherwerden jeweils nacheinander unternommen: erst bei C1-miss wird – fallsvorhanden – auf C2 und erst bei C2-miss wird auf den Speicher zugegriffen.

Fur das Speicher-System bestehend aus C1 und Mem gilt:

AMAT = AMAT(C1, Mem) = h1c1 + (1−h1)m

Fur das Speicher-System bestehend aus C1, C2 und Mem gilt:

AMAT = AMAT(C1, C2, Mem) = h1c1 + (1−h1)h2c2 + (1−h1)(1−h2)m

Der Beschleunigungsfaktor β aufgrund der Einfuhrung von C2 ist

β =AMAT(C1, Mem)

AMAT(C1, C2, Mem)=

h1c1 + (1− h1)m

h1c1 + (1− h1)h2c2 + (1− h1)(1− h2)m

6. Fur Pentium-Kenner: In welchen Hinsichten nutzen Intel Pentium Prozes-soren Parallel-Verarbeitung? Belegen Sie Ihre Aussagen durch Beispiele.(je 1/2 Pkt)

1/2 fur: Parallelisierung der Befehlsabarbeitung per pipelining,1/2 fur: parallele Befehlsbearbeitung (Arithmetik) in diversen functionalunits per speculative out-of-order execution: Erhohung der Superskalaritat,1/2 fur: Daten-parallele (SIMD) Programm-Abarbeitung per SSE,1/2 fur: parallele Zugriffe auf caches (Prescott), usw.

7. Gauß-Elimination uberfuhrt die Koeffizienten-Matrix A eines Systems li-nearer Gleichungen A~x = ~b in eine obere Dreiecksmatrix, das Gauß-Jordan-Verfahren in eine Diagonalmatrix. Beschreiben Sie eine parallele Version desGauß-Jordan-Verfahrens und seine Vorteile gegenuber dem parallelen klas-sischen das Gauß-Verfahren der Vorlesung. (2 Pkt)

1 fur: Erhohung der Auslastung: in jedem Eliminationsschritt modifiziertjedes PE entweder ’sein’ Koeffizienten-Matrix-Element oder das Element

Page 146: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 146

des Vektors der rechten Seite,1 fur: Uberfuhrung in Diagonal-Matrix erleichtert den Auflosungsschrittganz wesentlich (Reduktion von O(n2) auf O(n)) und das ohne Daten-abhangigkeiten

(Summe ca. 24 Punkte)

Page 147: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 147

18 RST-Klausur SS04

Klausur Rechner-Strukturen 7.7.04

Name Matrikel

Alle schriftlichen Unterlagen sind zugelassen! und aus gegebenem Anlaß:

weniger ist mehr! – statt weitschweifiger, wolkiger Poesieklare, knappe Aussagen mit stimmigen, Stichwort-artigen Begrundungen!

Abschreiben allgemeiner Aussagen aus Materialien allein ist sinnlos!

1. Die jump-register-Instruktion jr Rs der Prozessoren MIPS R2000/3000

und der DLX hat das Format6 5 15 6

0 Rs 0 8. (siehe auch Aufgabe 2) Was

haben sich die ISA-designer dabei wohl gedacht? Kosten/Nutzen? (3 Pkt)

2. Der MIPS R2000/R3000- oder DLX-Befehlssatz soll um die jump-register-

Instruktion jr Rs im Format6 5 15 6

0 Rs 0 8erweitert werden, die einen

(unbedingten) Sprung an die Adresse in Rs veranlaßt.Skizzieren Sie dazu im Arbeitsblatt (Fig. 6.30) die notwendigen Anderun-gen oder Erganzungen im Daten-Pfad der pipeline Implementierung. Wiemussen die Signale gesetzt werden? Diskutieren Sie etwaige Implementati-onsvarianten. (8 Pkt)

3. a) Zeichnen Sie den Zustandsgraphen eines endlichen Automaten fur dieSprung-Vorhersage, der das Verzweigungsverhalten bei den letzten dreiAusfuhrungen einer Verzweigung beobachtet und daraus eine geeignete Vor-hersage (branch prediction) ableitet. (4 Pkt)

b) Begrunden Sie initiale Zustande Ihres Automaten. (2 Pkt)

4. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System mitLRU auf Wortadressen 19,20,27,47,28,19,20,28,48,29,19,20

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

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

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

d) fur einen 2-assoziativen cache mit 2-Wort-Blocken

– jeweils mit LRU48. Skizzieren Sie die jeweils sich ergebenden cache-Be-legungen, bestimmen Sie die Anzahl von hits vs misses, identifizieren Siejeweils raumliche und zeitliche Lokalitat der hits und ermitteln Sie die An-zahl der jeweils insgesamt aus dem Speicher zu lesenden Worte. (4 Pkt)

48LRU = least recently referenced

Page 148: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 148

5. In der vorangehenden Aufgabe seien alle Speicher-Zugriffe auf jede zweiteAdresse schreibend. Stellen Sie die Belegungen der vier cache-Organisatio-nen fur jeweils die write back mit fetch on write bzw. write around Schreib-Strategien dar. Ermitteln Sie die Anzahl der jeweils insgesamt aus demSpeicher zu lesenden und in den Speicher zu schreibenden Worte. (4 Pkt)

6. In einem Multi-Prozessor-System habe jeder Prozessor einen eigenen lokalencache. Bei welchen Schreibstrategien wird in jeder cache line kein dirty bitbenotigt? Bewertung? (2 Pkt)

7. In der Vorlesung ist die Platzierung von Segmenten zu kurz gekommen:first-fit bzw. best-fit bzw. worst-fit platziert ein neues Segment in den erstbesten bzw. kleinsten bzw. großten freien, zusammenhangenden genugendgroßen Speicherbereich. Vergleichen Sie die drei Strategien anhand ihrer of-fensichtlichen Kosten und ihres zu erwartenden Nutzens. Was hat Platzierenmit Ersetzen von Segmenten zu tun? (3 Pkt)

8. a) Parallelisieren Sie einen Sortier-Algorithmus Ihrer Wahl (Darstellung Ih-res Algorithmus moglichst in Pseudo-Code! wie konnen die zu sortierendenDaten dabei vorliegen?). (4 Pkt)

b) Welche Verbindungsstruktur eines Mehr-Prozessor-Systems ist wohl furIhren parallelen Algorithmus vorteilhaft? (2 Pkt)

(Summe max. 36 Punkte)

Page 149: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 149

Losungen zur Klausur Rechner-Strukturen 7.7.04

1. Die jump-register-Instruktion jr Rs der Prozessoren MIPS R2000/3000

und der DLX hat das Format6 5 15 6

0 Rs 0 8. (siehe auch Aufgabe 2) Was

haben sich die ISA-designer dabei wohl gedacht? Kosten/Nutzen? (3 Pkt)

1 fur eigentlich R-type, und zwar arithmetisch/logisch mit 3 Operanden inRegistern, also Einsparen von eigenem OPcode, 1 fur Unterscheidung vondiesen Instruktionen per function Feld, 1 fur Nachteil ist, daß die controlunit jetzt auch noch das function Feld als Input braucht: großere Tabellenoder aufwandigere hardware, 1 fur Nutzen, etwa return from trap per R31

2. Der MIPS R2000/R3000- oder DLX-Befehlssatz soll um die jump-register-

Instruktion jr Rs im Format6 5 15 6

0 Rs 0 8erweitert werden, die einen

(unbedingten) Sprung an die Adresse in Rs veranlaßt.Skizzieren Sie dazu im Arbeitsblatt (Fig. 6.30) die notwendigen Anderun-gen oder Erganzungen im Daten-Pfad der pipeline Implementierung. Wiemussen alle Signale gesetzt werden? Diskutieren Sie etwaige Implementati-onsvarianten. (8 Pkt)

Unabhangig von Implementierungsvariante (in welcher Phase PC=Rs) ist: 2fur IF und ID wie bisher, Mem: 1 fur MemRead und MemWrite disabled, Rest*, WB: 1 fur RegWrite disabledVariante mit hohem Aufwand bei der Implementierung der Control, abergeringen jr-penalties:1 fur control generiert Signal jr aus OPcode und funct der Instruktionals neuem Input in control, EX: 1 fur MUX-Erweiterung, 1 fur PCsrc-Erweiterung, 1 fur PCwrite enabled

Variante mit geringem Aufwand bei der Implementierung der Control, aberhoheren jr-penalties:1 fur ALU-Control, die ja func ausliest, verwenden, EX: 1 fur ALUcontrolerzeugt neues 1-bit Signal EX/Mem.jr enabled, 1 fur Rs von ID/Ex auchnoch durch EX/Mem durchreichen, Mem: 1 fur neuen Multiplexer PCsrc2

vor PC um EX/Mem.Rs erweitern, mit EX/Mem.jr ansteuern. 1 fur PCwrite

enabled

3. a) Zeichnen Sie den Zustandsgraphen eines endlichen Automaten fur dieSprung-Vorhersage, der das Verzweigungsverhalten bei den letzten dreiAusfuhrungen einer Verzweigung beobachtet und daraus eine geeignete Vor-hersage (branch prediction) ableitet. (4 Pkt)b) Begrunden Sie initiale Zustande Ihres Automaten. (2 Pkt)

Page 150: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 150

a) In Analogie zu Fig 6.53

Taken

Taken

Taken

Taken

Not taken

Not taken

Not taken

Not taken

Predict taken Predict taken

Predict not taken Predict not taken

97108/Patterson Figure 06.53

andert die folgende fsm die Sprungvorhersage nach maximal drei aufeinan-der folgenden falschen Sprungvorhersagen:

predictnot taken

predictnot taken

predictnot taken

predicttaken

predicttaken

predicttaken

not taken

taken

not taken

taken

taken

not taken

taken

not taken

taken

taken

not taken

nottaken

b) Jeder der sechs Zustande kann als initialer Zustand spezifiziert werden.Die Wahl hangt davon ab, welche Kontroll-Flusse als haufigste ermitteltwurden oder unterstellt werden, wie zwei (extreme) Beispiele illustrieren.Einerseits angenommen, alle Programme bestehen nur aus for-Schleifen,s. S.156. Dann ist naheliegend, davon auszugehen, daß branch not taken vor-herrscht, so daß initial der Zustand links oben eingenommen werden sollte.Andererseits angenommen, alle Programme bestehen nur aus Verzweigun-gen (s. S.156) der Form if (true) goto .... Dann ist naheliegend, davonauszugehen, daß branch taken vorherrscht, so daß initial der Zustand rechtsunten eingenommen werden sollte. I.a.R. sind derartig extreme Verhaltnissenicht gegeben. Wahle dann etwa links unten oder rechts oben als initialenZustand.

4. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System mitLRU auf Wortadressen 19,20,27,47,28,19,20,28,48,29,19,20

Skizzieren Sie die jeweils sich ergebenden cache-Belegungen, bestimmen Siedie Anzahl von hits und misses und identifizieren Sie raumliche und zeitlicheLokalitat der hits. (4 Pkt)

je 1 fur cache Belegung: Eintrage = Adressen der validen cache lines

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

Page 151: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 151

19 20 27 47 28 19 20 28 48 29 19 20

0 48123 19 27 19 194 20 28 20 28 205 2967 47

49† m m m m m m m m m m t mAdresse mod 8 2− 1 = 11 words read from mem 1 read hit

b) fur einen 1-assoziativen cache mit 4 2-Wort-Blocken

19 20 27 47 28 19 20 28 48 29 19 200 (48,49)1 (18,19) (26,27) (18,19) (18,19)2 (20,21) (28,29) (20,21)(28,29) (28,29) (20,21)3 (46,47)

49† m m m m m m m m m s t m

mit (Adresse/2) mod 4 2(12− 2) = 20 words read from mem 2 read hits

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

19 20 27 47 28 19 20 28 48 29 19 20

set0 20 20 4828 28 20

set1 29

set2

set3 19 4727 19 19

49† m m m m m m t t m m t mAdresse mod 4 12− 3 = 9 words read from mem 3 read hits

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

19 20 27 47 28 19 20 28 48 29 19 20set0 (20,21) (20,21) (48,49) (20,21)

(28,29) (28,29) (28,29)set1 (18,19) (46,47)

(26,27) (18,19) (18,19)49† m m m m m m t t m s t m

(Adresse/2) mod 2 2(12− 4) = 16 words read from mem 4 read hits

5. In der vorangehenden Aufgabe seien alle Speicher-Zugriffe auf jede zweiteAdresse schreibend. Stellen Sie die Belegungen der vier cache-Organisatio-nen fur jeweils die write back mit fetch on write bzw. write around Schreib-

49† m=miss, s=hit due to spatial locality, t=hit due to temporal locality

Page 152: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 152

Strategien dar. Ermitteln Sie die Anzahl der jeweils insgesamt aus demSpeicher zu lesenden und in den Speicher zu schreibenden Worte. (4 Pkt)

je 1/2 fur cache-Belegung je Organisation a) bis d) und write-Strategie: incl.Anzahl der read hits und write hits sowie Anzahl der aus Speicher gelese-nen und der in Speicher geschriebenen Worte (1/2 = je 1/8 fur Belegung,Klassifikation, read/write hits, read/written words)Summe aller Punkte auf halbe Punkte gerundet

Im Folgenden sind alle dirty cache lines rot markiert.

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

write back mit fetch on writeW W W W W W

19 20 27 47 28 19 20 28 48 29 19 20

0 48123 19 27 19 194 20 28 20 28 205 2967 47

50† m f m f bm f m f m f t bfaddr mod 8, 11 read from, 2 written to mem, 0 write hits, 1 read hit

write back mit write aroundW W W W W W

19 20 27 47 28 19 20 28 48 29 19 20

0 48123 19 27 194 28 20 20567

50† m wm m wm m wm m wm m wm m wcaddr mod 8, 6 read from, 5 written to mem, 1 write hit, 0 read hits

50† m=miss, s=spatial hit, t=temporal hit, w=write to cache & mem, wc=write to cache,wm=write to mem, b=write back to mem before replace, f=fetch on write miss into cache

Page 153: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 153

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

write back mit fetch on writeW W W W W W

19 20 27 47 28 19 20 28 48 29 19 200 (48,49)1 (18,19) (26,27) (18,19) (18,19)2 (20,21) (28,29) (20,21)(28,29) (28,29) (20,21)3 (46,47)51† m f m f bm f m f m wc t bf

(addr/2) mod 4, 20 read from, 4 written to mem, 1 write hit, 1 read hit

write back mit write aroundW W W W W W

19 20 27 47 28 19 20 28 48 29 19 200 (48,49)1 (18,19) (26,27) (18,19)2 (28,29) (20,21) (20,21)3

51† m wm m wm m wm m wm m wm m wc

(addr/2)mod 4, 12 read from, 10 written to mem, 1 write hit, 0 read hits

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

write back mit fetch on writeW W W W W W

19 20 27 47 28 19 20 28 48 29 19 20

set0 20 20 4828 28 20

set1 29

set2

set3 19 4727 19 19

51† m f m f m f t wc bm f t bfaddr mod 4, 9 read from, 2 written to mem, 1 write hit, 2 read hits

51† m=miss, s=spatial hit, t=temporal hit, w=write to cache & mem, wc=write to cache,wm=write to mem, b=write back to mem before replace, f=fetch on write miss into cache

Page 154: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 154

write back mit write aroundW W W W W W

19 20 27 47 28 19 20 28 48 29 19 20

set0 28 2820 48

set1

set2

set3 19 19 1927

52† m wm m wm m wc m wc m wm t wmaddr mod 4, 5 read from, 4 written to mem, 2 write hits und 1 read hit

d) fur einen 2-assoziativen cache mit 2-Wort-Blocken (also 2 Blocke pro set)

write back mit fetch on writeW W W W W W

19 20 27 47 28 19 20 28 48 29 19 20set0 (20,21) (20,21) (48,49) (20,21)

(28,29) (28,29) (28,29)set1 (18,19) (46,47)

(26,27) (18,19) (18,19)52† m f m f m f t wc bm wc t f

(addr/2) mod 2, 16 read from, 2 written to mem, 2 write hits, 2 read hits

write back mit write aroundW W W W W W

19 20 27 47 28 19 20 28 48 29 19 20set0 (28,29) (28,29) (28,29)

(20,21) (48,49)set1 (18,19) (18,19) (18,19)

(26,27)52† m wm m wm m wc m wc m wc t wm

(addr/2) mod 2, 10 read from, 6 written to mem, 3 write hits, 1 read hit

6. In einem Multi-Prozessor-System habe jeder Prozessor einen eigenen lokalencache. Bei welchen Schreibstrategien wird in jeder cache line kein dirty bitbenotigt? Bewertung? (2 Pkt)

1 fur write update oder write broadcast, der Multi-Prozessor-Variante vonwrite through, entweder mit write around oder mit fetch on write (d.h. loadblock to cache & write modified block to cache and memory),1 fur hohere Bus-Last als bei etwa write invalidate, wo nur beim erstma-ligen Schreiben in einen Block die cache lines aller anderen Prozessoreninvalidiert werden mussen.

7. In der Vorlesung ist die Platzierung von Segmenten zu kurz gekommen:first-fit bzw. best-fit bzw. worst-fit platziert ein neues Segment in den erst

52† m=miss, s=spatial hit, t=temporal hit, w=write to cache & mem, wc=write to cache,wm=write to mem, b=write back to mem before replace, f=fetch on write miss into cache

Page 155: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 155

besten bzw. kleinsten bzw. großten freien, zusammenhangenden genugendgroßen Speicherbereich. Vergleichen Sie die drei Strategien anhand ihrer of-fensichtlichen Kosten und ihres zu erwartenden Nutzens. Was hat Platzierenmit Ersetzen von Segmenten zu tun? (3 Pkt)

1 fur bei best fit und worst fit nicht aber bei first fit muß die Liste allerfreien Speicherbereiche vollstandig durchsucht werden, 1 fur best fit vs firstfit, 1 fur Ersetzen nur, wenn kein freier Speicherbereich verfugbar ist und(noch) nicht reorganisiert werden soll.

First-fit ist der bessere Algorithmus, da best-fit dazu neigt, viele kleine un-brauchbare Locher zu erzeugen, s.a. Knuth: The Art of Computer-Programing

– Fundamental Algorithms; Addison-Wesley 1997, s.a. Howard J. Hamiltonhttp://www2.cs.uregina.ca/~hamilton/courses/330/notes/memory/segmentation.html

free list contains a starting address and a size managed as a linked list

• sort by address for first fit - so you can later combine adjacent holestogether easily to form larger holes

• sort by size for best fit and worst fit

– disadvantage of best fit: many small spacesadvantage of best fit: minimal external fragmentation

– advantages of first fit: quite fast, good for recombining holesdisadvantage of first fit: small holes tend to accumulate at thebeginning of memory because each time you go until you find thefirst “large enough” hole

– first fit with a roving pointer, start search from where we left off

∗ even better than first fit

∗ faster

∗ holes aren’t accumulated at beginning

– best utilization of memory because of the few small spaces exter-nally

8. a) Parallelisieren Sie einen Sortier-Algorithmus Ihrer Wahl (Darstellung Ih-res Algorithmus moglichst in Pseudo-Code! wie konnen die zu sortierendenDaten dabei vorliegen?). (4 Pkt)b) Welche Verbindungsstruktur eines Mehr-Prozessor-Systems ist wohl furIhren parallelen Algorithmus vorteilhaft? (2 Pkt)

2 fur Berucksichtigung der Speicherbedingungen, 2 fur Parallelisierung, 2fur Speicher-layout

Generell hangt die Art der Parallelisierung davon ab, wieviele zu sortieren-den Daten wie wo vorliegen: sequentiell (als Feld) oder als verzeigerte Liste;im Arbeitsspeicher oder auf Platte (im Wesentlichen wahlfreier Zugriff), aufBand (sequentieller Zugriff).Hier seien die Daten als Feld im Arbeitsspeicher bereitgestellt.

Page 156: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 156

a) Z.B. Aufteilen des zu sortierenden Feldes in n Teil-Felder bei n = 2e

Prozessoren, PEs: jedes PE sortiert seinen Teil des Feldes (Algorithmus jenach Zugriff auf das Teil-Feld); danach erfolgt ein paralleler merge-sort –parallelisierbar wie das Berechnen von Summen.

m=array.length/n;

parfor(i=0;i<n;i++) PE(i) sorts array[i*m,...,(i+1)*m-1];

und

limit=n; half=n;

repeat

half=half/2; // send vs receive dividing line

if (half<=Pn && Pn<limit) send(Pn-half,mySortedArray);

if (Pn<half) mergesort(mySortedArray, receive());

limit=half; // upper limit of senders

until (half==1)

b) Gunstig, wenn das Sortieren der zugewiesenen Teil-Felder in lokalencaches oder lokalen Speichern erfolgt. Fur das merge-sort mussen die zumergenden Teil-Felder und (anfangs ’leere’) Kopien fur die Aufnahme dermerge-Ergebnisse z.B. im globalen Speicher bereitgestellt werden.

Nachtrag Aufbau for-Schleife

; for (i=Ra; i<Re; i++) body(i);

; initialisiere Ra (nfang)

; initialisiere Re (nde)

; binde i an Ri

add Ri,Ra,R0; i = Ri

L1: sge R2,Ri,Re; R2=(Ri>=Re)

bnez R2,L2

; body(i)

addi Ri,Ri,#1; inc(Ri)

j L1

L2:

Nachtrag Aufbau if-Statement

; if (Bedingung)

; then bodytrue

; else bodyfalse;

; logischer Wert der

; Bedingung in R2

beq R2,R0,L1

; bodytrue

j L2

L1:

; bodyfalse

L2:

(Summe max. 36 Punkte)

Page 157: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 157

19 RST-Klausur SS03

Klausur Rechner-Strukturen 17.7.03

Name Matrikel

Alle schriftlichen Unterlagen sind zugelassen! und aus gegebenem Anlaß:

weniger ist mehr! – statt weitschweifiger, wolkiger Poesieklare, knappe Aussagen mit stimmigen, Stichwort-artigen Begrundungen!

Abschreiben allgemeiner Aussagen aus Materialien allein ist sinnlos!

1. Beurteilen Sie das Kosten/Nutzen-Verhaltnis einer Erweiterung des MIPS-Instruktionssatzes um die Test And Set Instruktion, TAS,

if (Mem[adr+offset]==0) Mem[adr+offset]=1; return true;

else return false;

Spezifizieren Sie TAS fur den MIPS-Prozessor, schatzen Sie den Implemen-tationsaufwand fur single cycle, multi cycle und pipeline Implementierungund damit die Kosten ab und geben Sie das klassische Anwendungsbeispielmit Anforderungen an TAS an, womit Sie den Nutzen von TAS zumindestandeuten. (6 Pkt)

2. Der MIPS R2000/R3000- oder DLX-Befehlssatz soll um den Block-Copy-Befehl bcp Rs, Rt, amt im Format op Rs Rt -- amt -- mit 5-bit Feld amt (vgl. shamt) erweitert werden, der den Speicher-Block mitamt Wortern, d.h. mit 4*amt Bytes von der Adresse Rs an die Adresse Rt

kopiert.Skizzieren Sie dazu im Arbeitsblatt (Fig. 5.33) die notwendigen Anderungenoder Erganzungen im Daten-Pfad der multi cycle Implementierung undentwerfen Sie eine µ-Programm-Steuerung unter Verwendung der Vorlagein Fig. 5.46. (8 Pkt)

3. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System mitLRU auf Wortadressen 13,14,31,42,32,13,14,32,43,33,13,14a) fur einen 1-assoziativen (direct mapped) cache mit 8 1-Wort-Blocken,b) fur einen 1-assoziativen cache mit 4 2-Wort-Blocken,c) fur einen 2-assoziativen cache mit 1-Wort-Blocken undd) fur einen 2-assoziativen cache mit 2-Wort-Blocken– jeweils mit LRU53. Skizzieren Sie die jeweils sich ergebenden cache-Bele-gungen, bestimmen Sie die Anzahl von hits vs misses und identifizieren Siejeweils raumliche und zeitliche Lokalitat der hits. (4 Pkt)

53LRU = least recently referenced

Page 158: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 158

4. In der vorangehenden Aufgabe seien alle Speicher-Zugriffe auf jede zweiteAdresse schreibend. Stellen Sie die Belegungen der vier cache-Organisati-onen fur jeweils die write back mit fetch on write bzw. write around Schreib-Strategien dar. (4 Pkt)

5. (COD) Ein virtueller Speicher arbeite mit 40 bit virtuellen Adressen, 16 KBSeiten und 36 bit physikalischen Adressen. Wie groß ist die Seiten-Tabelle(fur jeden Prozeß), wenn pro Seite je ein bit fur dirty-, valid-, protection-(?) und use-bit (?) verwaltet werden – dabei (?) erlautern! (4 Pkt)

6.

c. Omega network switch box

A

B

C

D

P0

P1

P2

P3

P4

P5

P6

P7

a. Crossbar b. Omega network

P0

P1

P2

P3

P4

P5

P6

P7

Entwerfen Sie ein Omega-Network fur N = 4 undfur N = 16 Prozessoren.Wieviele switch-Boxen undwieviele switches werdenim Vergleich zum Kreuz-schienenverteiler (crossbar)notwendig? Berechnen Siemoglichst viele der ein-schlagigen Kenngroßen desVerbindungsnetzwerkes, ambesten fur beliebiges N .

(4+10 Pkt)

Fig. 5.46: das zu erweiternde Mikro-Programm fur MIPS R3000 in symbolischer Form

ALU Register PC write sequen-

label cntrl SRC1 SRC2 control Memory control cing

Fetch Add PC 4 read PC ALU seq

Add PC Extshft read dispatch1

Mem1 Add A Extend dispatch2

LW2 read ALU seq

write MDR to Rt fetch

SW2 write ALU fetch

R-Type1 func A B seq

write ALU to Rd fetch

BEQ1 Sub A B ALU-zero fetch

JUMP1 jumpaddr fetch

Fig. 5.33 s. Anlagen

(Summe max. 30+10 Punkte)

Page 159: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 159

Losungen zur Klausur Rechner-Strukturen 17.7.03

1. Beurteilen Sie das Kosten/Nutzen-Verhaltnis einer Erweiterung des MIPS-Instruktionssatzes um die Test And Set Instruktion, TAS,

if (Mem[adr+offset]==0) Mem[adr+offset]=1; return true;

else return false;

Spezifizieren Sie TAS fur den MIPS-Prozessor, schatzen Sie den Implemen-tationsaufwand fur single cycle, multi cycle und pipeline Implementierungund damit die Kosten ab und geben Sie das klassische Anwendungsbeispielmit Anforderungen an TAS an, womit Sie den Nutzen von TAS zumindestandeuten. (6 Pkt)

1 fur Spezifikation, je 1 fur Implementationsaufwand, 1 fur mutual exclusi-on, 1 fur Implikation (Bus, Speicher-Verwaltung)

Das klassische Anwendungsbeispiel fur TAS ist der Schutz einer critical sec-tion durch eine Variable lock im Speicher:

// non-critical section

repeat until test_and_set(lock); // busy wait

// begin critical region

// ... only one thread in critical section! (mutual exclusion)

// end critical region

lock=false;

// non-critical section

Laut Vorgabe wird auf die Variable lock per displacement zugegriffen.Bleibt zu entscheiden, wie return true/false implementiert werden soll:per condition code, d.h. flag im processor status word, PSW, oder per Uber-gabe in einem Register. DLX und MIPS verwenden condition codes so wenigwie moglich. Also liegt folgende Spezifikation fur TAS Rs, Rt, immd nahe.

if (Mem[Rs+immd]==0) Mem[Rs+immd]=1; Rt=1;

else Rt=0;

single cycle implementation:

multi cycle implementation: TAS hat etwa folgende sechs Phasen derBefehlsausfuhrung:IF, ID, EX mit Adressrechnung, MEM mit MDR=Mem[Rs+immd];,Mem/WB mit if (MDR==0) Mem[target]=1; else Rt=0; undWB mit if (MDR==0) Rt=1;

Die Kosten der Implementierung sind vergleichsweise niedrig, da nurTAS zu implementieren ist und alle anderen Instruktionen von der Er-weiterung nicht betroffen sind.

Page 160: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 160

pipeline implementation: Erweiterung um TAS erhoht die Anzahl derpipeline-Stufen um eine auf sechs Stufen. Mit der Einfuhrung von TAS

verliert die DLX/MIPS-ISA ihre load/store-Architektur.

Die Kosten der Implementierung sind vergleichsweise hoch: Mit hoher-er Stufen-Anzahl wird die hazard detection aufwandiger. Ebenso wirdbei Prozess-Wechsel entweder pipeline flush teuerer oder es sind mehrpipeline Register zu retten und wiederherzustellen.

2. Der MIPS R2000/R3000- oder DLX-Befehlssatz soll um den Block-Copy-Befehl bcp Rs, Rt, amt im Format op Rs Rt -- amt -- mit 5-bit Feld amt (vgl. shamt) erweitert werden, der den Speicher-Block mitamt Wortern, d.h. mit 4*amt Bytes von der Adresse Rs an die Adresse Rt

kopiert.Skizzieren Sie dazu im Arbeitsblatt (Fig. 5.33) die notwendigen Anderungenoder Erganzungen im Daten-Pfad der multi cycle Implementierung undentwerfen Sie eine µ-Programm-Steuerung unter Verwendung der Vorlagein Fig. 5.46. (8 Pkt)

Spezifikation der folgenden Implementierung:

1. amt steht fur die Anzahl der zu kopierenden 4B-Worter.

2. Zwei Kopier-Richtungen fur uberlappende Quell- und Ziel-Bereichewerden (noch) nicht unterschieden.

3. die beiden Register Rs und Rt werden im Verlauf der Befehlsbearbei-tung von bcp verandert!

Die folgende Implementierung laßt auch amt=0 zu (for-Schleife statt do-while-Kontroll-Struktur – Optimierungspotential?).

ALU Register PC write sequen-

label cntrl SRC1 SRC2 control Memory control cing

Fetch Add PC 4 read PC ALU seq

Add PC Extshft read dispatch1

Mem1 Add A Extend dispatch2

LW2 read ALU seq

write MDR to Rt fetch

SW2 write ALU fetch

R-Type1 func A B seq

write ALU to Rd fetch

BEQ1 Sub A B ALU-zero fetch

JUMP1 jumpaddr fetch

BCP1 dispatch3

MDR=Mem[Rs] seq

Mem[Rt]=MDR seq

Add Rs 4 seq

write ALU to Rs seq

Add Rt 4 seq

write ALU to Rt seq

Add amt -1 seq

write ALU to amt BCP1

Page 161: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 161

µ-Programm: dispatch1 ist um if (OP-Code==BCP) goto BCP1 zu er-weitern. dispatch3 besteht nur aus if (IR.amt==0) goto Fetch.

Aus dem µ-Programm ergeben sich zwangslaufig folgende Anderungen desDatenpfades:

1. Fur die Behandlung von amt entweder eigene hardware vorsehen oderfolgende Erweiterungen vornehmen: Um amt auf Null testen zu konnen,wird ALUselA um feste Null und ALUselB um auf 32 bit erweitertes amterweitert. Um amt dekrementieren zu konnen, wird ALUselA um festes−1 erweitert. Per geeignetem Multiplexer wird IR.amt mit dem Er-gebnis des Dekrementierens, das sich in den untersten 5bit von ALUout

befindet, uberschrieben.

2. Um Mem[Rs] auslesen zu konnen, wird IorD um ReadData1 erweitert.

3. Um Mem[Rt] schreiben zu konnen, wird Writeaddress per neuemMUX um neuen Eingang (etwa – wenn auch sinnentstellend – ausTarget) erweitert.

4. Um Rs schreiben zu konnen, ist der Multiplexer RegDst geeignet zuerweitern.

5. Um auch Rt um vier inkrementieren zu konnen, wird ALUselA um festedezimale vier erweitert.

Wegen der (ersten) Erweiterung von ALUselA kann amt ohne Weiteres de-krementiert werden.Selbstverstandlich konnen schrittweise die in der Spezifikation genanntenEinschrankungen beseitigt werden: Untersuchung auf Uberlappung und ent-sprechende Kopier-Richtung, Einfugen zweier Adress-Register, um Rs undRt nicht zu verandern und eventuell nop, falls Rs == Rt.

3. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System mitLRU auf Wortadressen 13,14,31,42,32,13,14,32,43,33,13,14

Skizzieren Sie die jeweils sich ergebenden cache-Belegungen, bestimmen Siedie Anzahl von hits und misses und identifizieren Sie raumliche und zeitlicheLokalitat der hits. (4 Pkt)

je 1 fur cache Belegung: Eintrage geben die Adressen der validen cache lineswieder.

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

Page 162: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 162

13 14 31 42 32 13 14 32 43 33 13 14

0 32 321 332 423 4345 13 13 136 14 14 147 31

54† m m m m m t t t m m t tAdresse mod 8 also 5 hits

b) fur einen 1-assoziativen cache mit 4 2-Wort-Blocken

13 14 31 42 32 13 14 32 43 33 13 140 (32,33) (32,33) (32,33)1 (42,43) (42,43)2 (12,13) (12,13) (12,13)3 (14,15)(30,31) (14,15) (14,15)

54† m m m m m t m t s s t t

mit (Adresse/2) mod 4 also 6 hits

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

13 14 31 42 32 13 14 32 43 33 13 14

set0 32 32

set1 13 13 1333

set2 14 14 1442

set3 3143

54† m m m m m t t t m m t tAdresse mod 4 also 5 hits

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

13 14 31 42 32 13 14 32 43 33 13 14set0 (12,13) (12,13) (12,13)

(32,33) (32,33) (32,33)set1 (14,15) (42,43) (42,43)

(30,31) (14,15) (14,15)54† m m m m m t m t s s t t

(Adresse/2) mod 2 also 6 hits

4. In der vorangehenden Aufgabe seien alle Speicher-Zugriffe auf jede zweiteAdresse schreibend. Stellen Sie die Belegungen der vier cache-Organisati-

54† m=miss, s=hit due to spatial locality, t=hit due to temporal locality

Page 163: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 163

onen fur jeweils die write back mit fetch on write bzw. write around Schreib-Strategien dar. (4 Pkt)

je 1/2 fur cache-Belegung je Organisation a) bis d) und write-Strategiedirty cache lines sind rot markiert.

a) fur einen 1-assoziativen cache mit 8 1-Wort-Blockenwrite back mit fetch on write

W W W W W W

13 14 31 42 32 13 14 32 43 33 13 14

0 32 321 332 423 4345 13 13 136 14 14 147 31

55† m f m f m wc t wc m f t wcAdresse mod 8 also 3 write hits und 2 read hits

write back mit write aroundW W W W W W

13 14 31 42 32 13 14 32 43 33 13 14

0 32 32123 4345 13 13 136 14 147 31

55† m wm m wm m wc m wc m wm t wcAdresse mod 8 also 3 write hits und 1 read hit

b) fur einen 1-assoziativen cache mit 4 Blocken a 2 Worten,write back mit fetch on write

W W W W W W

13 14 31 42 32 13 14 32 43 33 13 140 (32,33) (32,33) (32,33)1 (42,43) (42,43)2 (12,13) (12,13) (12,13)3 (14,15)(30,31) (14,15) (14,15)

55† m f bm f m wc m wc s wc t wc

mit (Adresse/2) mod 4 also 4 write hits und 2 read hits

write back mit write around

55† m=miss, s=spatial hit, t=temporal hit, w=write to cache & mem, wc=write to cache,wm=write to mem, b=write back to mem before replace, f=fetch on write miss into cache

Page 164: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 164

W W W W W W

13 14 31 42 32 13 14 32 43 33 13 140 (32,33) (32,33) (32,33)1 (42,43)2 (12,13) (12,13) (12,13)3 (30,31) (14,15) (14,15)56† m wm m wm m wc m wc m wc t wc

mit (Adresse/2) mod 4 also 4 write hits und 1 read hit

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

write back mit fetch on writeW W W W W W

13 14 31 42 32 13 14 32 43 33 13 14

set0 32 32

set1 13 13 1333

set2 14 14 1442

set3 3143

56† m f m f m wc t wc m f t wcAdresse mod 4 also 3 write hits und 2 read hits

write back mit write aroundW W W W W W

13 14 31 42 32 13 14 32 43 33 13 14

set0 32 32

set1 13 13 13

set2 14 14

set3 3143

56† m wm m wm m wc m wc m wm t wcAdresse mod 4 also 3 write hits und 1 read hit

56† m=miss, s=spatial hit, t=temporal hit, w=write to cache & mem, wc=write to cache,wm=write to mem, b=write back to mem before replace, f=fetch on write miss into cache

Page 165: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 165

d) fur einen 2-assoziativen cache mit 2-Wort-Blocken (also 2 Blocke pro set)

write back mit fetch on writeW W W W W W

13 14 31 42 32 13 14 32 43 33 13 14set0 (12,13) (12,13) (12,13)

(32,33) (32,33) (32,33)set1 (14,15) (42,43) (42,43)

(30,31) (14,15) (14,15)57† m f m bf m wc m wc s wc t wc

(Adresse/2) mod 2 also 4 write hits und 2 read hits

write back mit write aroundW W W W W W

13 14 31 42 32 13 14 32 43 33 13 14set0 (12,13) (12,13) (12,13)

(32,33) (32,33) (32,33)set1 (42,43)

(30,31) (14,15) (14,15)57† m wm m wm m wc m wc m wc t wc

(Adresse/2) mod 2 also 4 write hits und 1 read hit

5. (COD) Ein virtueller Speicher arbeite mit 40 bit virtuellen Adressen, 16 KBSeiten und 36 bit physikalischen Adressen. Wie groß ist die Seiten-Tabelle(fur jeden Prozeß), wenn pro Seite je ein bit fur dirty-, valid-, protection-(?) und use-bit (?) verwaltet werden – dabei (?) erlautern! (4 Pkt)

2 fur Große, 1 fur protection-bit, 1 fur use-bit

Die Seiten-Tabelle hat 240/214 = 226 = 64 M Eintrage a 26 bit, i.e. 36−14 =22 fur die physikalische Seiten-Nummer plus 4 bit Verwaltungsinformationund damit eine Große von 26 · 64 Mbit = 26 · 8 MB = 208 MB.

Bei einem protection bit (!) kann nur beispielsweise user/system oder nowrite/write unterschieden werden.Ein einziges use bit (!) fur LRU erlaubt nur zu unterscheiden, ob eine Seitegerade ganz frisch nachgeladen oder schon mehrfach referenziert wurde.

6. Entwerfen Sie ein Omega-Network fur N = 4 und fur N = 16 Prozesso-ren. Wieviele switch-Boxen und wieviele switches werden im Vergleich zumKreuzschienenverteiler (crossbar) notwendig? Berechnen Sie moglichst vieleder einschlagigen Kenngroßen des Verbindungsnetzwerkes – am besten furbeliebiges N . (4+10 Pkt)

57† m=miss, s=spatial hit, t=temporal hit, w=write to cache & mem, wc=write to cache,wm=write to mem, b=write back to mem before replace, f=fetch on write miss into cache

Page 166: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 166

c. Omega network switch box

A

B

C

D

P0

P1

P2

P3

P4

P5

P6

P7

a. Crossbar b. Omega network

P0

P1

P2

P3

P4

P5

P6

P7

Ein Omega-Network ΩN verbindet N Prozessoren bei Verwendung von 2×2switch boxes bestehend aus vier switches. Die switch boxes sind Spalten-weise in (stages) von 0 bis ldN − 1 durchnummeriert angeordnet. Die Ver-bindungsstruktur zwischen zwei Spalten ist ein perfect shuffle: Verbindun-gen bestehen zwischen switch boxes, deren binar dargestellte Nummerndurch shift mit wrap around (rotate) auseinander hervorgehen. Wenn dasd-te PE (Ziel) addressiert werden soll, ist im i-ten stage entsprechend demi-ten bit in der Binar-Darstellung von d noch oben/unten weiterzurouten.

Zunachst sei das Omega-Network Ω4 fur N = 4 betrachtet:

P0

P1

P2

P3

entspricht dem Verbindungsgraphenwenn jede switch-Box gerade durch einen Knoten reprasentiert wird.

Fur N = 4 hat Crossbar CN offensichtlich N2 = 16 switches, wie auch ΩN

16 switches in vier switch boxes hat.

000001

010011

100101

110111

000001

010011

100101

110111

bzw. 00000001

00100011

01000101

01100111

10001001

10101011

11001101

11101111

00000001

00100011

01000101

01100111

10001001

10101011

11001101

11101111

ist der Verbindungsgraph von Ω8 aus Fig. 9.14 bzw. von Ω16.

Fur N = 8 hat Crossbar CN offensichtlich N2 = 64 switches, wahrend ΩN

nur 48 switches in 12 switch boxes hat.

Page 167: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 167

Fur N = 16 hat Crossbar CN offensichtlich N2 = 256 switches, wahrendΩN nur 128 switches in 32 switch boxes hat.Allgemein hat Crossbar CN offensichtlich N2 switches, wahrend ΩN nur4 N

2ldN = 2N ldN switches in N

2ldN switch boxes hat.

Offensichtlich sind ΩN wie CN bestens skalierbar, da unabhangig von N furbeide Verbindungsstrukturen gilt: die PEs haben zwei ports und es werdendurchgangig dieselben switches eingesetzt.Durchmesser gemessen in Anzahl von hops = Anzahl passierter switchesals Maß fur die Latenz der Inter-Prozessor-Kommunikation.max bandwidthPE bandwidth

fur ΩN wird angenommen, wenn alle switch boxes im Zustandstraight, d.h. a↔ c und b↔ d, (vgl. Fig. 9.14) betrieben werden.Die bisection bandwidth ist die minimale totale Bandweite aller lınks, dieeine Halfte mit der anderen Halfte der Prozessoren verbinden.CN ist voll vernetzt: jedes PE kann direkt mit jedem anderen kommuni-zieren. Um die bisection bandwidth zu bestimmen, bestehe o.B.d.A. dieeine Halfte H0 der Prozessoren aus H0 = PEo, PE1, . . . , PEN/2−1 unddie andere Halfte H1 der Prozessoren aus H1 = PEN/2, . . . , PEN. Dannkreuzen gerade N/2 links die Linie, die H0 von H1 trennt, und die bisectionbandwidth ist offensichtlich N/2 fach die link- oder PE-Bandbreite.

network # hops #switches bisection bandwidthPE bandwidth

max bandwidthPE bandwidth

Ω4 2 16 4C4 1 16 2 4Ω8 3 48 8C8 1 64 4 8Ω16 4 128 16C16 1 256 8 16ΩN ldN 2N ldN NCN 1 N2 N/2 N

(Summe max. 30+10 Punkte)

Page 168: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 168

20 RST-Klausur SS02

Klausur Rechner-Strukturen 12.7.02

Name Matrikel

Alle schriftlichen Unterlagen sind zugelassen! und aus gegebenem Anlaß:

Die Bearbeitung aller Aufgaben wird nicht erwartet!

weniger ist mehr! – statt weitschweifiger, wolkiger Poesieklare, knappe Aussagen mit stimmigen, Stichwort-artigen Begrundungen!

Abschreiben allgemeiner Aussagen aus Materialien allein ist vollig sinnlos!

1. Benennen und belegen Sie ganz konkret features, in denen sich jeweilsmindestens zwei Prozessoren der assignments grundsatzlich unterschei-den, namlich features von Befehlssatz, Prozessor-Typ und -Aufbau, pipe-lining, caching, Speicher-Anbindung und -Verwaltung sowie Unterstutzungder Multiprozessorfahigkeit.Etwa ein 2-fach assoziativer cache des einen und ein 4-fach assoziativercache des anderen Prozessors stellen dabei sicher keinen grundsatzlichenUnterschied dieser beiden Prozessoren hinsichtlich caching dar.Die jeweiligen Unterschiede konkret mit Anwendungsszenarien, fur die dieProzessoren entworfen und entwickelt wurden, zu begrunden, bringt Zu-satzpunkte. (je ≥1/2 Pkt)

2. Erweitern Sie etwa den MIPS-Befehlssatz um conditional moves, d.h. be-stimme Format und Semantik einer neuen Instruktion CMOV und bewertenSie Kosten und Nutzen dieser Befehlssatzerweiterung. (Welcher Prozessorder assignments verarbeitet conditional moves?) (3 Pkt)

3. Erweitern Sie die multi cycle-Implementation des MIPS R2000/R3000 umden and immediate Befehl andi Rs,Rt,#Imm im I-Format0xc Rs Rt Imm , der Rs und das geeignet modifizierte Immediate

geeignet verknupft und das Ergebnis in Rt ablegt.Unterstellen Sie, daß die ALU logische AND-Operationen ausfuhrt, wennsie nur geeignet angesteuert wird.Skizzieren Sie dazu im Arbeitsblatt (Fig. 5.33) die notwendigen Anderun-gen oder Erganzungen im Daten-Pfad und in der Steuerung. Wie sind dieSignale zu setzen? Erzeugen Sie die Signale durch Erweiterung des Mikro-Programms in Fig. 5.46. (8 Pkt)

4. Bewerten Sie die ARM branch prediction strategy (s. assignment) branch

taken, if branch target < PC fur etwa den MIPS-Prozessor. (4 Pkt)

Page 169: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 169

5. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System mitLRU auf Wortadressen 19,20,32,43,33,19,20,33,44,34,19,20a) fur einen 1-assoziativen (direct mapped) 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 LRU58. Skizzieren Sie die jeweils sich ergebenden cache-Bele-gungen, bestimmen Sie die Anzahl von hits vs misses und identifizieren Siejeweils raumliche und zeitliche Lokalitat der hits. (4 Pkt)

6. In der vorangehenden Aufgabe seien alle Speicher-Zugriffe auf ungeradeAdressen schreibend. Illustrieren Sie die cache-Belegungen fur verschiede-ne Schreib-Strategien. (8 Pkt)

7. Beschreiben Sie worst case und best case beim lesenden bzw. schreiben-den Speicher-Zugriff eines Prozessors mit cache, TLB und paged segments.Entscheiden Sie sich dabei fur einen entweder physikalisch oder virtuell in-dizierten cache. (6 Pkt)

8. Bewerten Sie Multiprozessor-fahige Prozessoren der assignments im Hin-blick auf den Einsatz in den ublichen Verbindungsstrukturen wie Bus, Ring,Gitter, Torus, Hypercube usw. (je 1 Pkt)

Fig. 5.46 zeigt das zu erweiternde µ-Programm fur MIPS R2000 in symbolischerForm:

ALU Register PC write sequen-

label cntrl SRC1 SRC2 control Memory control cing

Fetch Add PC 4 read PC ALU seq

Add PC Extshft read dispatch1

Mem1 Add A Extend dispatch2

LW2 read ALU seq

write MDR to Rt fetch

SW2 write ALU fetch

R-Type1 func A B seq

write ALU to Rd fetch

BEQ1 Sub A B ALU-zero fetch

JUMP1 jumpaddr fetch

Fig. 5.33 s. Anlagen

(Summe ca. 40 Punkte)

58LRU = least recently referenced

Page 170: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 170

Losungen zur Klausur Rechner-Strukturen 12.7.02

1. Benennen und belegen Sie ganz konkret features, in denen sich jeweilsmindestens zwei Prozessoren der assignments grundsatzlich unterschei-den, namlich features von Befehlssatz, Prozessor-Typ und -Aufbau, pipe-lining, caching, Speicher-Anbindung und -Verwaltung sowie Unterstutzungder Multiprozessorfahigkeit.Etwa ein 2-fach assoziativer cache des einen und ein 4-fach assoziativercache des anderen Prozessors stellen dabei sicher keinen grundsatzlichenUnterschied dieser beiden Prozessoren hinsichtlich caching dar.Die jeweiligen Unterschiede konkret mit Anwendungsszenarien, fur die dieProzessoren entworfen und entwickelt wurden, zu begrunden, bringt Zu-satzpunkte. (je ≥1/2 Pkt)

nur Prozessor-Paare mit einem feature, in dem sie sich grundsatzlich unter-scheiden, werden gewertet, und zwar je Prozessor 1/2 fur benannte, +1/2fur belegte features

2. Erweitern Sie etwa den MIPS-Befehlssatz um conditional moves, d.h. be-stimme Format und Semantik einer neuen Instruktion CMOV und bewertenSie Kosten und Nutzen dieser Befehlssatzerweiterung. (Welcher Prozessorder assignments verarbeitet conditional moves?) (3 Pkt)

1 fur Format & Semantik, 1 fur Kosten, 1 fur Nutzen

Format & Semantik: Es gibt verschiedene Moglichkeiten, conditional mo-ves zu spezifizieren: Bedingung in condition codes oder als Vergleich vonzwei Registern bzw. einem Register mit Null, move zwischen Registerenoder im Speicher. MIPS ist eine load/store-Architektur, also ist ein Satzvon R-Type Instruktionen naheliegend, etwa

CMOV.EZ Rs, Rt, Rd; if (Rs==0) Rd=Rt

CMOV.NEZ Rs, Rt, Rd; if (Rs!=0) Rd=Rt

CMOV.GEZ Rs, Rt, Rd; if (Rs>=0) Rd=Rt

CMOV.GTZ Rs, Rt, Rd; if (Rs>0) Rd=Rt

CMOV.LEZ Rs, Rt, Rd; if (Rs<=0) Rd=Rt

CMOV.LTZ Rs, Rt, Rd; if (Rs<0) Rd=Rt

je nachdem wievielfunc-codes im R-Format

0 Rs Rt Rd shamt func man aufzuwenden bereit ist.

Kosten: In einer multi cycle Implementierung braucht die Befehlsabarbei-tung drei oder vier Phasen je nachdem ob ein Vergleicher in ID vorgesehenist, d.h. IF, ID, (EX-Vergleich), WB.

Nutzen: Der Nutzen hangt von der Beschleunigung ihrer Abarbeitung undvon der Haufigkeit von if-Statements if (a op 0) b=c; ab, deren Argu-

Page 171: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 171

mente in Registern vorliegen:

sop Rcond, Ra, R0

beqz Rcond, continue

add Rb, Rc, R0

continue:

⇔ CMOV.opZ Ra, Rc, Rb

Jetzt laßt sich leicht der Beschleunigungsfaktor bestimmen. Ubrigens bietenetwa ARM, Intel 80x86, MIPS R8000 und SPARC conditional moves.

3. Erweitern Sie die multi cycle-Implementation des MIPS R2000/R3000 umden and immediate Befehl andi Rs,Rt,#Imm im I-Format0xc Rs Rt Imm , der Rs und das geeignet modifizierte Immediate

geeignet verknupft und das Ergebnis in Rt ablegt.Unterstellen Sie, daß die ALU logische AND-Operationen ausfuhrt, wennsie nur geeignet angesteuert wird.Skizzieren Sie dazu im Arbeitsblatt (Fig. 5.33) die notwendigen Anderun-gen oder Erganzungen im Daten-Pfad und in der Steuerung. Wie sind dieSignale zu setzen? Erzeugen Sie die Signale durch Erweiterung des Mikro-Programms in Fig. 5.46. (8 Pkt)

1 fur zusatzliches Extend by 0, 1 fur geeignete Erweiterung der ALUcon-trol, 1 fur Diskussion des verwendeten ANDs, entweder je 1 fur Signaleder vier cycles oder 1 fur Erweiterung von dispatch1, 4 fur label, AND,

A, Extend by 0, seq und fur write ALU to Rt, fetch in den beiden µ-Instruktionen mit Erlauterungen

Zu erweitern sind ALUSrcB und der Datenpfad um Extend by 0. Die ALU-control muß um die Moglichkeit erweitert werden, der ALU ein AND zu si-gnalisieren: ALUop und Signal-Pfad von ALUcontrol zur ALU entsprechendverbreitern. Alle sonstigen Signale sind dem folgenden µ-Programm zu ent-nehmen.

In dem folgenden µ-Programm ist die dispatch1-Tabelle um den Eintragif op-code=ANDI goto ANDI1 zu erweitern:

ALU Register PC write sequen-

label cntrl SRC1 SRC2 control Memory control cing

Fetch Add PC 4 read PC ALU seq

Add PC Extshft read dispatch1

Mem1 Add A Extend dispatch2

LW2 read ALU seq

write MDR to Rt fetch

SW2 write ALU fetch

R-Type1 func A B seq

write ALU to Rd fetch

BEQ1 Sub A B ALU-zero fetch

JUMP1 jumpaddr fetch

ANDI1 And A Extend by 0 seq

write ALU to Rt fetch

4. Bewerten Sie die ARM branch prediction strategy (s. assignment) branch

taken, if branch target < PC fur etwa den MIPS-Prozessor. (4 Pkt)

Page 172: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 172

je 1 fur vorteilhaft fur backward jumps in den branches am Ende von do-while-loops, 1 fur Reduktion der MIPS branch penalty um einen cycle beizutreffender prediction, 1 fur weitere Reduktion per branch target buffer,zusatzlich 1 fur konkrete Beschreibung der ARM-Implementierung

More recent implementations of the architecture include static branchprediction. In this scheme, branches that direct the processor to ear-lier memory addresses are deemed ’always taken’ because this formof branch is most often encountered in loops. Forward branches areassumed never taken.

”It gives you a very high [correct] prediction ratio. As you make the pi-

peline deeper, the cost of flushing the pipeline on a misprediction getshigher. It becomes worth spending more on a more elaborate branchprediction scheme,“ said Simon Segars, vice president of engineering.s. www.electronicstimes.com/tech/news/OEG20010510S0002

Soviel zu den Vorteilen: konkrete vorteilhafte Situationen sind etwa unbe-dingte Rucksprunge am Ende von for-Schleifen-Rumpfen und Verzweigun-gen am Ende von do-while-Schleifen.

In einer MIPS-Implementierung muß also in der ID-Phase wie bisher dasSprungziel bestimmt werden. Ob vorwarts oder ruckwarts gesprungen wird,ergibt sich etwa aus dem Vorzeichen der Sprungdistanz. Damit wird alsonicht erst am Ende der EX-Phase (nach Auswertung der Sprungbedingung)sondern am Ende der ID-Phase der PC aktualisiert werden: die branchpenalty sinkt bei zutreffender branch prediction um einen pipeline cycle.

Verbesserungen ergeben sich – wie beim ARM – erst dann, wenn bei Ver-wendung eines branch target buffers die Information

”die aktuelle Instruk-

tion ist ein backward branch oder backward jump“ anhand der Adresseerkannt wird und der PC schon in der IF-Phase aktualisiert werden kann.

5. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System mitLRU auf Wortadressen 19,20,32,43,33,19,20,33,44,34,19,20

Skizzieren Sie die jeweils sich ergebenden cache-Belegungen, bestimmen Siedie Anzahl von hits und misses und identifizieren Sie raumliche und zeitlicheLokalitat der hits. (4 Pkt)

je 1 fur cache Belegung: Eintrage geben die Adressen der validen cache lineswieder.

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

Page 173: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 173

19 20 32 43 33 19 20 33 44 34 19 20

0 321 33 332 343 19 43 19 194 20 20 44 20567

59† m m m m m m t t m m t mAdresse mod 8 also 3 read hits

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

19 20 32 43 33 19 20 33 44 34 19 200 (32,33) (32,33) (32,33)1 (18,19) (42,43) (18,19) (34,35)(18,19)2 (20,21) (20,21) (44,45) (20,21)3

59† m m m m s m t t m m m m

mit (Adresse/2) mod 4 also 3 read hits

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

19 20 32 43 33 19 20 33 44 34 19 20

set0 20 20 2032 44

set1 33 33

set2 34

set3 19 19 1943

59† m m m m m t t t m m t tAdresse mod 4 also 5 read hits

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

19 20 32 43 33 19 20 33 44 34 19 20set0 (20,21) (20,21) (44,45)

(32,33) (32,33) (32,33) (20,21)set1 (18,19) (18,19) (18,19)

(42,43) (34,35)59† m m m m s t t t m m t m

(Adresse/2) mod 2 also 5 read hits

6. In der vorangehenden Aufgabe seien alle Speicher-Zugriffe auf ungeradeAdressen schreibend. Illustrieren Sie die cache-Belegungen fur verschiede-ne Schreib-Strategien. (8 Pkt)

59† m=miss, s=hit due to spatial locality, t=hit due to temporal locality

Page 174: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 174

1 fur allgemeine Beschreibung von write through, copy back, fetch on write,no write allocate, 2 fur cache-Belegung je write-Strategie und je Organisa-tion a) bis d)

Zur Illustration sei hier nur der Fall a) des direct mapped cache mit 81-Wort-Blocken behandelt: grundsatzlich nutzt dieser cache raumliche Lo-kalitat nicht, also auch nicht die raumliche Lokalitat von kombinierten Lese-/Schreib-Zugriffen. Offensichtlich andert sich durch das Schreiben nur imFall der Strategie ’write through mit fetch on write’ sicher nichts an dercache-Belegung ohne Schreiben. Lesen und Schreiben haben insgesamt 11Speicherzugriffe bei nur einem read hit zur Folge.

W W W W W W

19 20 32 43 33 19 20 33 44 34 19 20

0 321 33 332 343 19 43 19 194 20 20 44 20567

60† f m m f f f t w m m w mAdresse mod 8 also 2 write hits und 1 read hit

Im (untypischen) Mini-Beipiel liefert die Strategie ’write through mit nowrite allocate/write around’ bei wieder insgesamt 11 Speicherzugriffen eineganz andere cache Belegung mit reichlich freien lines zur Aufnahme vonweiteren (zu lesenden) Daten.

W W W W W W

19 20 32 43 33 19 20 33 44 34 19 20

0 3212 3434 20 20 44 20567

61† a m m a a a t a m m a mAdresse mod 8 also 0 write hits und 1 read hit

Die Strategie ’copy back mit no write allocate’ produziert im Mini-Beispieldieselbe cache-Belegung, da nur writes misses vorkommen.Im Mini-Beispiel weist die Strategie ’copy back mit fetch on write’ nur 7Speicher-Zugriffe auf, da Mem[33] zweimal nur in den cache und Mem[19]

bzw. Mem[43] erst beim Verdrangen durch Mem[43] bzw. Mem[19] in den

60† w=write (through), f=fetch on write (miss)61† w=write (through), a=write around

Page 175: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 175

Speicher geschrieben wird.W W W W W W

19 20 32 43 33 19 20 33 44 34 19 20

0 321 33 332 343 19 43 19 194 20 20 44 20567

62† f m m c f c t w m m w mAdresse mod 8 also 2 write hits und 1 read hit

Wie im Fall von write back auch read misses schreibende Speicherzugriffeauslosen konnen, zeigt der 2-assoziative cache mit 2-Wort-Blocken:

W W W W W W

19 20 32 43 33 19 20 33 44 34 19 20set0 (20,21) (20,21) (44,45)

(32,33) (32,33) (32,33) (20,21)set1 (18,19) (18,19) (18,19)

(42,43) (34,35)62† f m m f w w t w m c w c

(Adresse/2) mod 2 also 4 write hits und 1 hit

7. Beschreiben Sie worst case und best case beim lesenden bzw. schreiben-den Speicher-Zugriff eines Prozessors mit cache, TLB und paged segments.Entscheiden Sie sich dabei fur einen entweder physikalisch oder virtuell in-dizierten cache. (6 Pkt)

1 fur best case (address in TLB, data in e.g. physically indexed cache), 5fur worst case (address translation: TLB miss, segment table miss + pagetable fault; data access: segment miss + page fault)

8. Bewerten Sie Multiprozessor-fahige Prozessoren der assignments im Hin-blick auf den Einsatz in den ublichen Verbindungsstrukturen wie Bus, Ring,Gitter, Torus, Hypercube usw. (je 1 Pkt)

(Summe ca 40 Punkte)

62† w=write (on hit), c=copy back (dirty verdrangen), f=fetch on write (miss)

Page 176: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 176

21 RST-Klausur SS01

Klausur Rechner-Strukturen 9.7.01

Name Matrikel

Alle schriftlichen Unterlagen sind zugelassen! und aus gegebenem Anlaß:

weniger ist mehr! – statt weitschweifiger, wolkiger Poesieklare, knappe Aussagen mit stimmigen, Stichwort-artigen Begrundungen!

Abschreiben allgemeiner Aussagen aus Materialien allein ist sinnlos!

1. Der MIPS R2000/R3000- oder DLX-Befehlssatzes soll um den Block-Copy-Befehl bcp Rs, Rt, amt im Format op Rs Rt -- amt -- mit 5-bit Feld amt (vgl. shamt) erweitert werden, der den Speicher-Block mit amtBytes von der Adresse Rs an die Adresse Rt kopiert.Klassifizieren Sie Instruktion und Format-Typ. Debattieren Sie Vor- undNachteile der Befehlssatz-Erweiterung um bcp. Beurteilen Sie die Kostender Implementierung von bcp in einer multi cycle Implementierung. (5 Pkt)

Optional Berechnen Sie den Beschleunigungsfaktor aufgrund Erweiterungum bcp fur eine multi cycle Implementierung.Beurteilen Sie die Moglichkeiten der Implementierung von bcp in der singlecycle und der pipeline Implementierung. Vergleichen Sie mit der Varianteblock copy variable, bcpv, der die Anzahl der zu kopierenden Bytes in einemAllzweck-Register ubergeben wird. (10 Pkt)

2. Erweitern Sie die multi cycle-Implementation des MIPS R2000/R3000 umden shift right arithmetic variable Befehl srav Rd,Rt,Rs im R-Format0x0 Rs Rt Rd 0 0x7 , der Rt um Rs viele Stellen (unter Beibehal-

tung des Vorzeichens) nach rechts schiebt und das Ergebnis in Rd ablegt.Unterstellen Sie, daß die ALU arithmetische Schiebe-Operationen ausfuhrt,wenn sie nur geeignet angesteuert wird.Skizzieren Sie dazu im Arbeitsblatt (Fig. 5.33) die notwendigen Anderun-gen oder Erganzungen im Daten-Pfad und in der Steuerung. Wie sind dieSignale zu setzen? (8 Pkt)

3. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System mitLRU auf Wortadressen 16,17,29,40,30,16,17,30,41,31,16,17a) fur einen 1-assoziativen (direct mapped) 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

Page 177: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 177

– jeweils mit LRU63. Skizzieren Sie die jeweils sich ergebenden cache-Bele-gungen, bestimmen Sie die Anzahl von hits vs misses und identifizieren Siejeweils raumliche und zeitliche Lokalitat der hits. (4 Pkt)

4. In der vorangehenden Aufgabe seien alle Speicher-Zugriffe auf ungeradeAdressen schreibend. Illustrieren Sie die cache-Belegungen fur verschiede-ne Schreib-Strategien. (12 Pkt)

5. Diskutieren Sie die Verwendung von zwei Speicher-Banken mit low levelinterleaving fur MIPS R2000/3000 oder DLX.Welche Verschrankung ist sinnvoll? Welche hardware wird notwendig? Nurunter welcher Bedingung ist der Speicher-Aufbau mit einer bzw. mit zweiBanken vergleichbar? Von welchen Kenngroßen hangt der Beschleunigungs-faktor ab? Wie gehen diese Großen in eine Formel fur den Beschleunigungs-faktor ein? (6 Pkt)

6. Demonstrieren Sie am Beispiel einer Anwendung (z.B. render/server farms,Emulation von Neuronalen Netzen (backpropagation), FEM, o.a.) Paralle-lisierung von Programmen und Abbilden auf geeignete Multi-Prozessor-bzw. Multi-Computer-Architekturen. Gehen Sie dabei auch auf speed up,Verbindungsstruktur, Skalierbarkeit, Fehlertoleranz, usw. ein. (10 Pkt)

Fig 5.33 s. Anlagen

(Summe max. 55 Punkte)

63LRU = least recently referenced

Page 178: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 178

Losungen zur Klausur Rechner-Strukturen 9.7.01

1. Der MIPS R2000/R3000- oder DLX-Befehlssatzes soll um den Block-Copy-Befehl bcp Rs, Rt, amt im Format op Rs Rt -- amt -- mit 5-bit Feld amt (vgl. shamt) erweitert werden, der den Speicher-Block mit amtBytes von der Adresse Rs an die Adresse Rt kopiert.Klassifizieren Sie Instruktion und Format-Typ. Debattieren Sie Vor- undNachteile der Befehlssatz-Erweiterung um bcp. Beurteilen Sie die Kostender Implementierung von bcp in einer multi cycle Implementierung. (5 Pkt)

1 fur Klassifikation, je 1 fur Vorteil/Nachteil, 2 fur Kosten, 1/2 fur OPcode

bcp ist ein typischer CISC-Befehl mit 2 Speicher-Adressen und dem imme-diate Argument amt, der amt-viele Speicher-Speicher-Operationen ausfuhrt.Vorteile: kurze Programme, da bcp eine explizite Schleife ersetzt und dadie hardware copy forward oder copy backward entscheiden muß.Nachteile: einiger Implementationsaufwand (wenigstens ist die Blockgroßeauf 25 = 32 Byte begrenzt) fur eine Instruktion, die ohne weiteres auchdurch software erledigt werden kann (s.u.).Dafur muß die Blockgroße als Immediate ubergeben werden (und nicht ineinem Register, vgl. copy constructor ...)Kosten: in der multi cycle Implementierung sind maximal 32 oder eher2 × 32 = 64 cycles (je nach in einem cycle moglicher Funktionalitat) vor-zusehen, um den Befehl in jedem Fall vollstandig abarbeiten zu konnen –zum Gluck unabhangig von der Implementierung aller anderen Instruktio-nen. Der hardware-Aufwand ist mit Zahlregister cnt etwa im PSW gering:

forward=(Rs<=Rt) && (Rt<Rs+amt);

if forward

for(cnt=0; cnt<amt; cnt++) MDR=mem[Rs+cnt]; mem[Rt+cnt]=MDR;

else

for(cnt=amt-1;cnt>=0;cnt--)MDR=mem[Rs+cnt]; mem[Rt+cnt]=MDR;

Wie ublich, statt einzelne Bytes besser 32bit weise (oder 64bit weise, fallsetwa load/store double als Instruktion – nicht nur als Assembler-Pseudo-Instruktion – vorhanden) kopieren, falls Argumente aligned! sonst Rest ge-sondert behandeln.

Optional Berechnen Sie den Beschleunigungsfaktor aufgrund Erweiterungum bcp fur eine multi cycle Implementierung.Beurteilen Sie die Moglichkeiten der Implementierung von bcp in der singlecycle und der pipeline Implementierung. Vergleichen Sie mit der Varianteblock copy variable, bcpv, der die Anzahl der zu kopierenden Bytes in einemAllzweck-Register ubergeben wird. (10 Pkt)

6 fur Beschleunigungsfaktor, 1 fur single cycle, 2 fur pipeline, 1 fur Variante

bcp laßt sich in single cycle Implementierung nicht realisieren, es sei dennder Speicher unterstutzt einen entsprechenden burst mode ...

Page 179: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 179

Vernunftig ist eine pipeline-Implementierung mit einer functional unit furblock copy mit 4 pipeline-Stufen:

1) read address Berechnung, 2) load MDR,3) write address Berechnung, 4) save MDR.

Diese wird unter Verwendung eines Zahlregisters cnt gesteuert. functionalunits machen jedoch scoreboarding notwendig! Zugleich allerdings schwie-rigeres forwarding, schwierigeres annullieren bei wrong branch prediction,schwierigeres rollback etwa bei page fault, bei Prozeß-Wechsel ...Die flexiblere Variante bcpv ist grundsatzlich vorzuziehen.

2. Erweitern Sie die multi cycle-Implementation des MIPS R2000/R3000 umden shift right arithmetic variable Befehl srav Rd,Rt,Rs im R-Format0x0 Rs Rt Rd 0 0x7 , der Rt um Rs viele Stellen (unter Beibehal-

tung des Vorzeichens) nach rechts schiebt und das Ergebnis in Rd ablegt.Unterstellen Sie, daß die ALU arithmetische Schiebe-Operationen ausfuhrt,wenn sie nur geeignet angesteuert wird.Skizzieren Sie dazu im Arbeitsblatt (Fig. 5.33) die notwendigen Anderun-gen oder Erganzungen im Daten-Pfad und in der Steuerung. Wie sind dieSignale zu setzen? (8 Pkt)

1 fur keine Anderung des Datenpfades, 1 fur Steuerung der ALUcontrolerganzen (nicht ALUop !!!), 1 fur alle nicht aufgefuhrten Signale deasserted,1/2 je Signal im richtigen cycle, bis auf 1 fur ALUop, je 1/4 fur Signaleohne cycle, -1/4 fur falsche Signale – Zusatzpunkte fur Barrel-Shifter

IF: IorD=0, MemRead=1, IRwrite=1 (PC=PC+4 ist default)

ID: (prophylaktische Sprungziel-Berechnung ist default)

EX: ALUsrcA=1, ALUsrcB=0, ALUop= wie ADD, namlich funct codegibt die Operation der ALU vor! Erweiterung der ALUcontrol generiertsarv-Signal fur die ALU

WB: MemToReg=0, RegWrite=1, RegDst=1

3. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System mitLRU auf Wortadressen 16,17,29,40,30,16,17,30,41,31,16,17

Skizzieren Sie die jeweils sich ergebenden cache-Belegungen, bestimmen Siedie Anzahl von hits und misses und identifizieren Sie raumliche und zeitlicheLokalitat der hits. (4 Pkt)

je 1 fur cache Belegung: Eintrage geben die Adressen der validen cache lineswieder.

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

Page 180: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 180

16 17 29 40 30 16 17 30 41 31 16 17

0 16 40 16 161 17 17 41 172345 296 30 307 31

64† m m m m m m t t m m t mAdresse mod 8 also 3 hits

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

16 17 29 40 30 16 17 30 41 31 16 170 (16,17)(16,17) (40,41) (16,17)(16,17) (40,41) (16,17)(16,17)12 (28,29)3 (30,31) (30,31) (30,31)

64† m s m m m m s t m s m s

mit (Adresse/2) mod 4 also 5 hits

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

16 17 29 40 30 16 17 30 41 31 16 17

set0 16 16 1640

set1 17 17 1729 41

set2 30 30

set3 31

64† m m m m m t t t m m t tAdresse mod 4 also 5 hits

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

16 17 29 40 30 16 17 30 41 31 16 17set0 (16,17)(16,17) (40,41) (40,41)

(28,29) (16,17)(16,17) (16,17)(16,17)set1 (30,31) (30,31) (30,31)

64† m s m m m m s t s s s s

(Adresse/2) mod 2 also 7 hits

4. In der vorangehenden Aufgabe seien alle Speicher-Zugriffe auf ungeradeAdressen schreibend. Illustrieren Sie die cache-Belegungen fur verschiede-ne Schreib-Strategien. (12 Pkt)

64† m=miss, s=hit due to spatial locality, t=hit due to temporal locality

Page 181: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 181

je 1/2 fur allgemeine Beschreibung von write through, write back, fetch onwrite, no write allocate, 1 fur cache-Belegung je Organisation a) bis d) undwrite-Strategie

Zur Illustration sei hier nur der Fall a) des direct mapped cache mit 81-Wort-Blocken behandelt: grundsatzlich nutzt dieser cache raumliche Lo-kalitat nicht, also auch nicht die raumliche Lokalitat von kombinierten Lese-/Schreib-Zugriffen.

Offensichtlich andert sich durch das Schreiben nur im Fall der Strategie ’wri-te through mit fetch on write’ nichts an der cache-Belegung ohne Schreiben.Lesen und Schreiben haben insgesamt 10 Speicherzugriffe bei zwei read hitszur Folge.

16 17 29 40 30 16 17 30 41 31 16 17

0 16 40 16 161 17 17 41 172345 296 30 307 31

† m f f m m m w t f f t fAdresse mod 8 also 2 read hits

Im Mini-Beipiel liefert die Strategie ’write through mit no write allocate’eine ganz andere cache Belegung mit reichlich freien lines zur Aufnahmevon weiteren zu lesenden Daten. (Untypischerweise werden keine Daten (sowie Variable, die nicht in Registern gehalten werden konnen) erst gelesenund dann geschrieben.)

16 17 29 40 30 16 17 30 41 31 16 17

0 16 40 16 16123456 30 307

† m w w m m m w t w w t wAdresse mod 8 also 2 read hits

Die Strategie ’copy back mit no write allocate’ produziert im Mini-Beispieldieselbe cache-Belegung, da nur writes misses vorkommen.

Im Mini-Beispiel weist die Strategie ’copy back mit fetch on write’ nur 9Speicher-Zugriffe auf, da die Speicher-Zelle mit der Adresse 17 zweimal nur

1† w=write, f=fetch on write miss

Page 182: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 182

in den cache und erst beim Verdrangen durch 41 in den Speicher geschriebenwird.

16 17 29 40 30 16 17 30 41 31 16 17

0 16 40 16 161 17 17 41 172345 296 30 307 31

† m f f m m m o t f f t fAdresse mod 8 also 2 read hits

5. Diskutieren Sie die Verwendung von zwei Speicher-Banken mit low levelinterleaving fur MIPS R2000/3000 und DLX.Welche Verschrankung ist sinnvoll? Welche hardware wird notwendig? Nurunter welcher Bedingung ist der Speicher-Aufbau mit einer bzw. mit zweiBanken vergleichbar? Von welchen Kenngroßen hangt der Beschleunigungs-faktor ab? Wie gehen diese Großen in eine Formel fur den Beschleunigungs-faktor ein? (6 Pkt)

Zugriffe jeweils Doppelwort-weise (a 32bit = 4Byte), da in dieser Großealle Instruktionen als auch viele Daten (int, float) vorliegen. Unterstelltwird dabei: Daten wie sowieso Instruktionen immer aligned (Compiler).Sinnvoll ist dann ein low level interleave, bei dem das (Byte-) Address-bitNr.2 (≡ 22) einer der beiden Banke bestimmt.Adressen 010 = . . . 000002, 810 = . . . 010002, usw. referenzieren Bank 0,Adressen 410 = . . . 001002, 1210 = . . . 011002, usw. referenzieren Bank 1.Der konsekutive Zugriff auf Instruktionen (etwa bei 2/3 der Instruktionen)und auf Daten (etwa bei Feld-Elementen) kann dann pipelined ausgefuhrtwerden, so daß die Speicher-Latenz-Zeit jeweils nur einmal anfallt.

• hardware-Unterstutzung siehe Patterson & Hennessy, B.5

• Vergleichbarkeit nur bei gleicher Kapazitat und identischer Zugriffs-breite

• Kenngroßen sind Speicherlatenz, Bandbreite des Speicherzugriffs undHaufigkeit von konsektiven Speicherzugriffen (also abhangig von derHaufigkeit von Nicht-Control-Instruktionen und von der Homogenitatder Daten (etwa (eindimensionale ...) Felder, auf deren Elemente kon-sekutiv zugegriffen wird) sowie bei caching dominierend von der Block-Große der caches – je großer um so mehr konsekutive Speicher-Zugriffebeim Lesen bzw. Zuruckschreiben von cache lines)

2† o=overwrite on hit

Page 183: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 183

Beschleunigungsfaktor β =Tohne VerschrankungTmit Verschrankung

aufgrund von Speicher-Ver-

schrankung mit β falls Speicherlatenz , Haufigkeit konsekutiver Zu-griffe , cache-Breite (solange das Speichersystem bursts dieser Langeunterstutzt ...)

6. Demonstrieren Sie am Beispiel einer Anwendung (z.B. render/server farms,Emulation von Neuronalen Netzen (backpropagation), FEM, o.a.) Paralle-lisierung von Programmen und Abbilden auf geeignete Multi-Prozessor-bzw. Multi-Computer-Architekturen. Gehen Sie dabei auch auf speed up,Verbindungsstruktur, Skalierbarkeit, Fehlertoleranz, usw. ein. (10 Pkt)

2 fur Parallelisierung/Abbilden, je 1 fur speedup, Verbindungstruktur, Feh-lertoleranz, ... je +1/2 fur Begrundungen

Beispiele, Beispiele, Beispiele

(Summe max. 55 Punkte)

Page 184: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 184

22 RST-Klausur WS00

Klausur Rechner-Strukturen 22.1.01

Name Matrikel

Alle schriftlichen Unterlagen sind zugelassen! und aus gegebenem Anlaß:

weniger ist mehr! – statt weitschweifiger, wolkiger Poesieklare, knappe Aussagen mit stimmigen, Stichwort-artigen Begrundungen

1. Beispielsweise die Prozessoren RISC I oder SPARC verwalten Register-Fenster, i.e. Fenster von je 32 Registern, die uberlappend uber die vor-handenen 138 bzw. 136 Register gelegt werden, so daß diese als globaleund fur jede Prozedur lokale Register sowie als Register fur Ubergabe- bzw.Ruckgabe-Parameter verwendet werden konnen. Bei Aufruf bzw. -Ruckkehraus einer Prozedur wird das Fenster nur verschoben. Parameter werden ’inplace’ statt aufwandig uber den stack ubergeben.

Wenn auch Prozeß-Wechsel zu berucksichtigen sind: Was spricht fur, wasgegen Register-Fenster? Welche Kenngroßen sind relevant?Bestimmen Sie den Beschleunigungsfaktor aufgrund einer Register-Fenster-Architektur. (6 Pkt)

2. Erlautern und begrunden Sie den Leistungsabfall bei Erhohung der Anzahlder pipeline-Stufen uber das Optimum hinaus. Welche Instruktionen, welcheKenngroßen sind relevant? (4 Pkt)

3. Erweitern Sie die pipeline-Implementation des MIPS R2000 um den OR im-mediate Befehl ori Rt,Rs,Imm im I-Format 0xd Rs Rt immediate

mit Rt=Rs OR Imm. Skizzieren Sie dazu im Arbeitsblatt (Fig. 6.30) die not-wendigen Anderungen oder Erganzungen im Daten-Pfad und in der Steue-rung. Wie sind die Signale zu setzen?Welche hazards konnen bei der Abarbeitung dieser Instruktion eine Rollespielen? Wie konnen sie aufgelost werden? (8 Pkt)

4. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System mitLRU auf Wortadressen 6,7,129,140,130,6,7,130,141,131,6,7a) fur einen 1-assoziativen (direct mapped) 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 LRU65. Skizzieren Sie die jeweils sich ergebenden cache-Bele-gungen, bestimmen Sie die Anzahl von hits vs misses und identifizieren Siejeweils raumliche und zeitliche Lokalitat der hits. (4 Pkt)

65LRU = least recently referenced

Page 185: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 185

5. Beispielsweise die DECstation 3100 weist ein cache-System auf, das mitphysikalischen Adressen arbeitet. Ein Rechner adressiere virtuellen Speichermit 32 bit und physikalischen Speicher mit 28 bit. Entwerfen Sie TLB undcache-System, das mit virtuellen Adressen arbeitet. Vergleichen Sie IhrenEntwurf mit der entsprechenden TLB/cache-Kombination der DECStation3100 in Fig. 7.25. (4 Pkt)

Valid Tag Data

Page offset

Page offset

Virtual page number

Virtual address

Physical page numberValid

1220

20

16 14

Cache index

32

Cache

DataCache hit

2

Byte offset

Dirty Tag

TLB hit

Physical page number

Physical address tag

TLB

Physical address

31 30 29 15 14 13 12 11 10 9 8 3 2 1 0

6. Im Gauß’schen Algorithmus zur Losung des LGS A~x = ~b werden die Unbe-kannten xi nach Uberfuhrung von A in obere Dreiecksgestalt durch Auflosenbestimmt.

xi =biAii−

n∑j=i+1

AijAii

xj fur i = n, n− 1, . . . , 1

Unterstellt seien n+ 1 PEs. PEk bzw. PEn+1 hat aufgrund der vorangegan-genen Eliminierung Aik bzw. bi lokal gespeichert.Welche Verbindungsstruktur der PEs ist fur den Auflosungsschritt bei fes-tem n wohl (Kosten-) optimal? Welcher Beschleunigungsfaktor ergibt sichaufgrund Parallelisierung, wenn die Ergebnisse fur xi in den lokalen Spei-chern beliebiger PEs vorliegen durfen? Die Berechnung von

Aij

Aiixj brauche

eine Zeiteinheit. In c ZE sei ein Wert aus einem benachbarten PE auszulesenund lokal aufzusummieren. (10 Pkt)

Fig. 6.30 s. Anlagen

(Summe 36 Punkte)

Page 186: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 186

Losungen zur Klausur Rechner-Strukturen 22.1.01

1. Beispielsweise die Prozessoren RISC I oder SPARC verwalten Register-Fenster, i.e. Fenster von je 32 Registern, die uberlappend uber die vor-handenen 138 bzw. 136 Register gelegt werden, so daß diese als globaleund fur jede Prozedur lokale Register sowie als Register fur Ubergabe- bzw.Ruckgabe-Parameter verwendet werden konnen. Bei Aufruf bzw. -Ruckkehraus einer Prozedur wird das Fenster nur verschoben. Parameter werden ’inplace’ statt aufwandig uber den stack ubergeben.

Wenn auch Prozeß-Wechsel zu berucksichtigen sind: Was spricht fur, wasgegen Register-Fenster? Welche Kenngroßen sind relevant?Bestimmen Sie den Beschleunigungsfaktor aufgrund einer Register-Fenster-Architektur. (6 Pkt)

Pro: in den meisten Fallen sehr schnelle Parameter-UbergabeContra: zusatzliche Kosten, falls mehr Parameter zu ubergeben als im Fens-ter verfugbar sind oder falls die Aufruf-Tiefe großer als Fenster-Anzahlist! Zudem Register-Verschnitt – durch feste Zuordnung globaler, lokaler,input- und output-Register stehen weniger Allzweckregister zur Verfugung.Schließlich ist bei Prozeß-Wechsel die ganze Registerbank (oder besser nuralle Register in aktiven Fenstern) zu retten bzw. zuruckzuschreiben.

Relevante Kenngroßen sind α der Anteil an Prozedur-Aufrufen pro aus-gefuhrter Instruktion, αo der Anteil davon, die nicht durch Verschiebender Register-Fenster abgearbeitet werden konnen sondern in Tstack ZE tra-ditionell uber den stack abgearbeitet werden mussen, αs der Anteil anProzeß-Wechseln pro ausgefuhrter Instruktion, die fur die Register-Fenster-Architektur viermal so lang dauert (ca. vierfache Zahl von Registern zuretten bzw. zuruckzuschreiben – mogliches Auswechseln der Seiten-Tabelleno.a. bleibt hier außer Betracht.). Das Testprogramm umfasse n auszufuhren-de Instruktionen. Alle angegebenen Zeiten sind durchschnittliche Zeiten.

β =Tohne Register-Fenster

Tmit Register-Fenstern

=n(1− α)Tinstruction + nαTstack + nαsTswitch

n(1− α)Tinstruction + nα((1− αo)Tinstruction + αoTstack) + nαs4Tswitch

=(1− α)Tinstruction + αTstack + αsTswitch

(1− α)Tinstruction + α((1− αo)Tinstruction + αoTstack) + αs4Tswitch= ...

2. Erlautern und begrunden Sie den Leistungsabfall bei Erhohung der Anzahlder pipeline-Stufen uber das Optimum hinaus. Welche Instruktionen, welcheKenngroßen sind relevant? (4 Pkt)

1/2 fur branch/jump penalties, 1/2 fur branch/jump Haufigkeit, 1/2 fur loadstalls, 1/2 fur load Haufigkeit, 1/2 fur Retten der pipeline-Register/latchesbei Prozeß-Wechsel, 1/2 fur Prozeß-Wechsel-Haufigkeit, 1 fur float oderMMX operations oder andere eigene pipelined FUs

Page 187: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 187

Mit der Zahl der pipeline-Stufen nehmen auch die branch und jump pen-alties sowie die load stalls (data hazard nach einem load) zu. Bei Prozeß-Wechsel mussen entsprechend mehr pipeline-Register gerettet und zuruck-geschrieben werden. Eigene GK- oder etwa MMX-pipelines erhohen ihrer-seits die Gesamt-Stufen-Anzahl.Relevant sind die Haufigkeiten der obigen Instruktionen (BEQ, BNEQ,BGT, BGE, BLT, BLE, BEQZ, BNEZ, J, JR, JAL, JRAL, ... sowie alleInstruktionen, die in eigenen pipelines ausgefuhrt werden.) mit ihren jewei-ligen penalties (Anzahl von stalls/Dauer) sowie die Haufigkeit und Kosten,d.h. Dauer fur Retten und Zuruckschreiben zusatzlicher pipeline Register,von Prozeß-Wechseln.

3. Erweitern Sie die pipeline-Implementation des MIPS R2000 um den OR im-mediate Befehl ori Rt,Rs,Imm im I-Format 0xd Rs Rt immediate

mit Rt=Rs OR Imm. Skizzieren Sie dazu im Arbeitsblatt (Fig. 6.30) die not-wendigen Anderungen oder Erganzungen im Daten-Pfad und in der Steue-rung. Wie sind die Signale zu setzen?Welche hazards konnen bei der Abarbeitung dieser Instruktion eine Rollespielen? Wie konnen sie aufgelost werden? (8 Pkt)

1 fur bitweises (Rs|Imm) oder logisches Oder (Rs||Imm), 1 fur 16 vs 32 bit, 1fur ’extend by leading zero’ und ALUsrc-MUX-Erweiterung, 1 fur ALUcontrol-Erweiterung, 1 fur Signale wie gehabt in IF und ID, 1 fur ALUSrc=10,RegDst=0, ALUOp=OR in EX, 1 fur MemWrite=0, MemRead=0 in Memund MemtoReg=0, RegWrite=1 in WB, 1 fur data hazards mit vorangehen-den Instruktionen mit Ziel Rs werden wie gehabt aufgelost

Zunachst ist die Bedeutung der ORi-Instruktion festzulegen: bitweises ODER(das logische kann daraus abgeleitet werden.) Immediates sind 16bit, Regis-ter 32bit breit. Also muß in ID ein eigenes Extend fur Instr[15-0] her, derALUsrc-MUX muß entsprechend erweitert werden, so daß mit ALUsrc=10in EX an der ALU Rs und Extend(Imm) anliegen. Die ALUControl ist zuerweitern, so daß ein geeignetes Signal ALUop=OR ein bitweises ODERerzwingt. In Mem passiert nichts. In WB wird ALUresult per MemtoReg=0

und RegWrite=1 in das Zielregister Rt geschrieben. Zusammenfassend, dieControl Unit detektiert den OPcode 0xd und decodiert damit die ORi-Instruktion und erzeugt obige Signale, so daß der Prozessor die gewunschteInstruktion ausfuhrt.Hazards werden – wie gehabt – am besten durch Forwarding aufgelost.

4. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System mitLRU auf Wortadressen 6,7,129,140,130,6,7,130,141,131,6,7

Skizzieren Sie die jeweils sich ergebenden cache-Belegungen, bestimmen Siedie Anzahl von hits und misses und identifizieren Sie raumliche und zeitlicheLokalitat der hits. (6 Pkt)

je 1 fur cache Belegung

Page 188: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 188

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

6 7 129 140 130 6 7 130 141 131 6 7

01 1292 130 1303 1314 1405 1416 6 6 67 7 7 7

66† m m m m m t t t m m t tAdresse mod 8 also 5 hits

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

6 7 129 140 130 6 7 130 141 131 6 70 (128,129)1 (130,131) (130,131) (130,131)2 (140,141) (140,141)3 (6,7)(6,7) (6,7)(6,7) (6,7)(6,7)

66† m s m m m s s t s s s s

mit (Adresse/2) mod 4 also 8 hits

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

6 7 129 140 130 6 7 130 141 131 6 7

set0 140

set1 129141

set2 6 6 6130 130

set3 7 7 7131

66† m m m m m t t t m m t tAdresse mod 4 also 5 hits

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

6 7 129 140 130 6 7 130 141 131 6 7set0 (128,129)

(140,141) (140,141)set1 (6,7)(6,7) (6,7)(6,7) (6,7)(6,7)

(130,131) (130,131) (130,131)66† m s m m m s s t s s s s

(Adresse/2) mod 2 also 8 hits

5. Beispielsweise die DECstation 3100 weist ein cache-System auf, das mitphysikalischen Adressen arbeitet. Ein Rechner adressiere virtuellen Speicher

66† m=miss, s=hit due to spatial locality, t=hit due to temporal locality

Page 189: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 189

mit 32 bit und physikalischen Speicher mit 28 bit. Entwerfen Sie TLB undcache-System, das mit virtuellen Adressen arbeitet. Vergleichen Sie IhrenEntwurf mit der entsprechenden TLB/cache-Kombination der DECStation3100 in Fig. 7.25. (4 Pkt)

bo = block offset

virtual addressvirtual page no | page offset

virt. cache tag | cache index | bo

?

-cache

v d tag data

t=

?hit

t?

data

jen

ach

Org

anis

ati

on

des

TL

B

?

-?

TLB

v d tagphysicalpage no

t=

- hit

t?

physical page no | page offsetphysical address

?memory

processor–TLB–cache processor–cache–TLB

– TLB liegt ausgerechnet imZeit-kritischen Pfad zwischenProzessor und cache.Also am besten soviel compa-rators wie TLB lines.– Bei TLB miss kein Zu-griff auf cache, bis pagetable ausgelesen ist. TLBmuß groß genug sein, da-mit nicht mogliche cache hitsdurch TLB misses ausge-bremst werden!

– cache Adreßierung per langerer virtuel-ler Adresse: schlechtere Nutzung der Loka-litat (großerer Adressraum wird auf kleine-ren cache abgebildet) und großerer cacheoverhead.+ cache und TLB-Kapazitat entkoppelt,TLB nicht im Zeit-kritischen Pfad, cacheund TLB konnen zeitgleich addressiert wer-den, so daß bei cache miss entweder schondie physikalische Adresse verfugbar oder so-gar schon die Seiten-Tabelle adressiert wor-den ist.

6. Im Gauß’schen Algorithmus zur Losung des LGS A~x = ~b werden die Unbe-kannten xi nach Uberfuhrung von A in obere Dreiecksgestalt durch Auflosenbestimmt.

xi =biAii−

n∑j=i+1

AijAii

xj fur i = n, n− 1, . . . , 1

Page 190: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 190

Unterstellt seien n+ 1 PEs. PEk bzw. PEn+1 hat aufgrund der vorangegan-genen Eliminierung Aik bzw. bi lokal gespeichert.Welche Verbindungsstruktur der PEs ist fur den Auflosungsschritt bei fes-tem n wohl (Kosten-) optimal? Welcher Beschleunigungsfaktor ergibt sichaufgrund Parallelisierung, wenn die Ergebnisse fur xi in den lokalen Spei-chern beliebiger PEs vorliegen durfen? Die Berechnung von

Aij

Aiixj brauche

eine Zeiteinheit. In c ZE sei ein Wert aus einem benachbarten PE auszulesenund lokal aufzusummieren. (10 Pkt)

Summierung von 2m Termen in einem binaren Baum der Tiefe m bzw. mitm Ebenen: Ebene 0 mit 20 = 1 Knoten/Addition, dem Wurzel-Knoten,Ebene 1 mit 21 = 2 Knoten/Additionen, usw. bis Ebene m − 1 mit 2m−1

Knoten, die auf den eigenen Term einen benachbarten Term aufaddieren.Es reichen also 2m−1 PEs, um 2m Terme aufzusummieren.

Der m-cube hat genau 2m Knoten. Wenn 2m Terme Ti in den lokalen Spei-chern von 2m PEs zu summieren sind, bleibt zu untersuchen, ob der binareBaum auf die Verbindungen im m-cube abgebildet werden kann. Dies istsicher fur m = 0, 1, 2 der Fall.

m = 0 nichts zu addieren

m = 1 PEo bekommt T1 von PE1 und addiert T0 + T1

m = 2 PE0i bekommt T1i von PE1i und addiert T0i+T1i fur i = 0, 1. Zuletztaddiert PE0 dann T00 + T10 und T01 + T11

Der Rest ist Induktion: wenn die Verbindungsstruktur eines m-cubes er-laubt, 2m Terme zu summieren, dann konnen im m + 1-cube 2m+1 Termesummiert werden, da der m+1-cube aus zwei m-cubes besteht, jeder dieserm-cubes unabhangig 2m Terme, also eine Halfte der 2m+1 Terme summie-ren kann (laut Induktionsvorausetzung) und zuletzt PE0...0 auf die eigeneTeilsumme die in PE10...0 berechnete Teilsumme addiert.Der sich fur den Auflosungsschritt ergebende Beschleunigungsfaktor auf-grund Parallelisierung entspricht also demjenigen fur die Elimination (s.Skript).

Die Abbildung beispielsweise auf ein (quadratisches) Gitter ist vergleichs-weise ineffizient (unterschiedliche Laufzeiten ...).

(Summe 36 Punkte)

Page 191: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 191

23 RST-Klausur WS99

Klausur Rechner-Strukturen 17.12.99

Name Matrikel

Alle Unterlagen sind zugelassen!

weniger ist mehr! – statt weitschweifiger, wolkiger Poesieklare, knappe Aussagen mit stimmigen, Stichwort-artigen Begrundungen

1. Die Befehlssatze von DLX und MIPS R2000 weisen keine auto-incrementbzw. auto-decrement Instruktionen auf, also etwa Instruktionen wie

Instruktion BedeutungLWai Rt, Rs(immediate) Rt ←M [Rs+immediate]; Rs + = 4;LWad Rt, Rs(immediate) Rt ←M [Rs+immediate]; Rs − = 4;SWai Rt, Rs(immediate) M [Rs+immediate]← Rt; Rs + = 4;SWad Rt, Rs(immediate) M [Rs+immediate]← Rt; Rs − = 4;

Beurteilen Sie das Kosten/Nutzen-Verhaltnis dieser Instruktionen, indemSie einerseits Quell-Code-Ausschnitte identifizieren, fur deren Compilierungund Ausfuhrung diese Instruktionen nutzlich sind, (2 Pkt)

und bestimmen Sie den Beschleunigungsfaktor jeweils fur einea) single cycle implementationb) multi cycle implementationc) pipeline implementation

(erlautern Sie IhreAnnahmen wo notig)

(2 Pkt)(2 Pkt)(3 Pkt)

Beurteilen Sie andererseits die Kosten dieser Erweiterung jeweils fur einea) single cycle implementationb) multi cycle implementationc) pipeline implementation

(erlautern Sie IhreAnnahmen wo notig)

(2 Pkt)(2 Pkt)(4 Pkt)

2. Implementieren Sie im MIPS R2000 einen dieser auto-increment bzw. auto-decrement-Befehle, d.h. erweitern Sie die multi-cycle-Implementation et-wa um den LWai-Befehl im Format LWai Rs Rt immediate . Skizzie-

ren Sie dazu (in Fig. 5.39 der Anlage) die notwendigen Anderungen oderErganzungen im Daten-Pfad und in der Steuerung. Wie sind die Signale zusetzen? (8 Pkt)

3. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System mitLRU auf Wortadressen 5,6,18,29,19,5,6,19,30,20,5,6a) fur einen 1-assoziativen (direct mapped) 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 und

Page 192: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 192

d) fur einen 2-assoziativen cache mit Blocken a 2 Worten– jeweils mit LRU67. Skizzieren Sie die jeweils sich ergebenden cache-Bele-gungen, bestimmen Sie die Anzahl von hits und misses, identifizieren Sieraumliche und zeitliche Lokalitat und vergleichen Sie Ihre Ergebnisse mitder jeweils generell zu erwartenden cache-Leistung. (6 Pkt)

4. Wieso stellen Laden und Ausfuhren eines Programmes verschiedene Anfor-derungen an ein Speicherverwaltungssystem? (2 Pkt)

Unterscheiden sich paging und segmentation in diesen beiden ’modi’? Wennnein, begrunden! wenn ja, belegen! (2 Pkt)

5. Charakterisieren Sie die Erweiterung (im wesentlichen) des 80386-Befehls-satzes um MMX-, 3Dnow- bzw. ISSE-Befehle. Diskutieren Sie das Kosten/-Nutzen-Verhaltnis, Unterschiede, relevante Anwendungsbereiche und damitdie Bedeutung der jeweiligen Befehlssatz-Erweiterung. (je 3 Pkt)

(Summe 44 Punkte)

67LRU = least recently referenced

Page 193: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 193

Losungen zur Klausur Rechner-Strukturen 17.12.99

1. Die Befehlssatze von DLX und MIPS R2000 weisen keine auto-incrementbzw. auto-decrement Instruktionen auf, also etwa Instruktionen wie

Instruktion BedeutungLWai Rt, Rs(immediate) Rt ←M [Rs+immediate]; Rs + = 4;LWad Rt, Rs(immediate) Rt ←M [Rs+immediate]; Rs − = 4;SWai Rt, Rs(immediate) M [Rs+immediate]← Rt; Rs + = 4;SWad Rt, Rs(immediate) M [Rs+immediate]← Rt; Rs − = 4;

Beurteilen Sie das Kosten/Nutzen-Verhaltnis dieser Instruktionen, indemSie einerseits Quell-Code-Ausschnitte identifizieren, fur deren Compilierungund Ausfuhrung diese Instruktionen nutzlich sind, (2 Pkt)

Nutzlich sicher in allen Situationen, in denen auto in-/-decrement BefehleSchleifen-Zahler inkrementieren oder dekrementieren, z.B.

for(i=min; i<max; i++) feld[i]=c; Feld mit Konstanten c initialisie-ren (Schleifen-Variable soll Feld-Element-Adressen an Stelle der Feld-Indices durchlaufen! Abbruch-Bedingung anpassen!)

for(i=min; i<max; i++) destin[p++]=source[q++]; Kopieren von Be-reichen des Speichers (Zeichenketten, Puffer etc.)

Ra=&feld[min], Rmax=Ra+4∗max, Rc=constans

loop: sge R1, Ra, Rmax ; R1 = (Ra>=Rmax)? 1 : 0;

beqz loop end ; if (R1 <> 0) exit loop

SWai Rc, Ra(0) ; Mem[Ra]=Rc; Ra+=4;

j loop

loop end:

und bestimmen Sie den Beschleunigungsfaktor jeweils fur einea) single cycle implementationb) multi cycle implementationc) pipeline implementation

(erlautern Sie IhreAnnahmen wo notig)

(2 Pkt)(2 Pkt)(3 Pkt)

Sei α der Anteil der auto-increment bzw. auto-decrement Instruktionenan allen ausgefuhrten Instruktionen. Unterstellt, Register-Zugriffe dauern5µsec, Speicher-Zugriffe und ALU-Operationen je 10µsec.

a) single cycle implementation: Falls kein eigener Adder Rs in-/dekre-mentiert, steigt die Zeit Tss fur die Ausfuhrung einer Instruktion in dersingle cycle implementation von 10 + 5 + 10 + 10 + 5 = 40µsec auf 40 + 10 +5 = 55µsec. Der Beschleunigungsfaktor ist β =

TaltTneu

= (1−α)Tss+α2TssTss+TALU+TWB

=1+α

1+(TALU+TWB)/Tss, im Beispiel also β = 1+α

1+15/40= 8(1 + α)/11, so daß

β > 1 genau dann, wenn nur α > 0.375 ! Derartig hohe Anteile an auto

Page 194: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 194

in/decrement Instruktionen sind vollig unrealistisch. Daher ist die Einfuh-rung dieser Instruktionen ohne eigenen Adder kontraproduktiv.

Falls die ALU ± = 4 in Mem berechnet und falls das multi port registerfile Laden des Zielregisters und zugleich Ruckschreiben von Rs erlaubt, giltβ =

TaltTneu

= (1−α)Tss+α2Tss(1−α)Tss+αTss

= 1 + α.

b) multi cycle implementation: Mit multi port register file konnen autoin/decrement Instruktionen in derselben Zeit ausgefuhrt werden wie solcheohne. Daher gilt β = 1 + α.Ohne multi port register file wird nur fur auto in/decrement Instruktio-nen eine zweite WB-Phase notwendig. Mit durchschnittlicher Ausfuhrungs-dauer T (auto) von Instruktionen ohne auto in/decrement gilt daher β =Tohne auto

Tmit auto=

(1−α)T (auto)+α(Tload/store+Tarith/log)

(1−α)T (auto)+α(Tload/store+TWB)=

1+γ(Tload/store+Tarith/log)

1+γ(Tload/store+TWB)mit γ =

α(1−α)T (auto)

.

Im worst case Befehlsmix gilt dann β = 1+65γ1+45γ

≈ (1 + 65γ)(1 − 45γ) ≈1 + 20γ > 1 + 20 α

(1−α)40= 1−0.5α

1−α > 1.

beispielsweise fur α = 0.01, Tload/store ≈ 38 und T (auto) = 35 ergibt sich nurβ = 35+0.68

35+0.2= 35.68

35.2≈ 1.01: Beschleunigung durch eine derartige Erweite-

rung ist nicht signifikant.

c) pipeline implementation: die ALU ist standig belegt. Diesen Struktur-Hazard lost entweder ein zusatzlicher Adder auf oder ein stall nach LWai/d,SWai/d, was unsinnig ware, da den Kosten fur verbratene OP-Codes, furErweiterung der Control, fur komplizierteres forwarding und branching keinNutzen gegenubersteht. Das Argument fur den zusatzlichen Adder wird inID bereitgestellt, Adder berechnet Rs ±4 in EX, Ruckschreiben in Rs inMem oder WB mit denselben Anforderungen an ports (Struktur-Hazard).Wieder gilt β = 1 + α.

2. Implementieren Sie im MIPS R2000 einen dieser auto-increment bzw. auto-decrement-Befehle, d.h. erweitern Sie die multi-cycle-Implementation et-wa um den LWai-Befehl im Format LWai Rs Rt immediate . Skizzie-

ren Sie dazu (in Fig. 5.39 der Anlage) die notwendigen Anderungen oderErganzungen im Daten-Pfad und in der Steuerung. Wie sind die Signale zusetzen? (8 Pkt)

Entweder sieht man zwei write back Phasen vor: in WB1 wird – wie beimnormalen LW – Rt geschrieben und in WB2 wird das inkrementierte Rs ge-schrieben: die ALU hat dann diese Inkrementierung in MEM oder in WB1

durchfuhren konnen.

Oder, nachdem die ALU die Inkrementierung in MEM durchgefuhrt hat, wer-den in WB – und damit um einen Takt schneller – die beiden Register Rt

und Rs in einem Takt geschrieben. Dazu sind allerdings zwei write-ports indie Register-Datei notwendig . . . Zusammengefaßt also:

Page 195: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 195

EX: ALU berechnet die Adresse.Mem: zusatzlich zum Memory-Zugriff uber notwendige MAR und MDRist ALUSelA=1 (Rs an ALU), ALUSelB=1 (feste 4), ALUop=+ zu setzen.ALU berechnet ± = 4.WB: Schreiben von Rt wie beim normalen LW und – falls im selben Takt –per MUX – gesteuert von Control bei OP-Code LWai – write register2

auf Rs setzen und ALU-Ergebnis uber neuen, signalisierten Datenpfad inRs schreiben (check Rs 6= Rt).

3. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System mitLRU auf Wortadressen 5,6,18,29,19,5,6,19,30,20,5,6

Skizzieren Sie die jeweils sich ergebenden cache-Belegungen, bestimmen Siedie Anzahl von hits und misses, identifizieren Sie raumliche und zeitlicheLokalitat und vergleichen Sie Ihre Ergebnisse mit der jeweils generell zuerwartenden cache-Leistung.

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

5 6 18 29 19 5 6 19 30 20 5 6

012 183 19 194 205 5 29 5 56 6 6 30 67

68† m m m m m m t t m m t m

Adresse mod 8

also 3 hits

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

5 6 18 29 19 5 6 19 30 20 5 601 (18,19) (18,19) (18,19)2 (4,5) (28,29) (4,5) (20,21)(4,5)3 (6,7) (6,7) (30,31) (6,7)

68† m m m m s m t t m m m mmit (Adresse/2) mod 4 also 3 hits

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

68† m=miss, s=hit due to spatial locality, t=hit due to temporal locality

Page 196: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 196

5 6 18 29 19 5 6 19 30 20 5 6

set0 20

set1 5 5 529

set2 6 6 618 30

set3 19 19

68† m m m m m t t t m m t t

Adresse mod 4

also 5 hits

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

5 6 18 29 19 5 6 19 30 20 5 6set0 (4,5) (4,5) (4,5)

(28,29) (20,21)set1 (6,7) (6,7) (30,31)

(18,19) (18,19) (18,19) (6,7)68† m m m m s t t t m m t m(Adresse/2) mod 2 also 5 hits

Generell sind umso mehr hits zu erwarten, je großer die Blocke und je hoherdie Assoziativitat. (6 Pkt)

4. Wieso stellen Laden und Ausfuhren eines Programmes verschiedene Anfor-derungen an ein Speicherverwaltungssystem? (2 Pkt)

Unterscheiden sich paging und segmentation in diesen beiden ’modi’? Wennnein, begrunden! wenn ja, belegen! (2 Pkt)

Nicht betrachtet sei die Einrichtung einer neuen Ausfuhrungsumgebungbeim Laden eines Programmes (GDT, LDT, . . . ); generell virtual memory

Laden: keine zeitliche, dafur extreme raumliche Lokalitat, da sequentiellimmer neue Instruktionen zu laden, d.h. in den Speicher zu schreiben (!)sind. Bei paging bei Bedarf Nachladen und Verdrangen. Bei segmentationAllozieren von Speicher fur das gesamte Programm.Ausfuhren: auch zeitliche Lokalitat (erneutes Ausfuhren bestimmter In-struktionen etwa in Schleifen, erneuter Zugriff auf bestimmte Variablen).Zugriffe auf stack oder heap sind dynamisch! Bei paging sind fur stack oderheap neue Seiten anzulegen oder alte freizugeben, bei segmentation sindDaten etwa im stack oder data segment abzulegen; die segmente sind inbeiden Fallen ggfls. umstandlich zu vergroßern/verkleinern.

5. Charakterisieren Sie die Erweiterung (im wesentlichen) des 80386-Befehls-satzes um MMX-, 3Dnow- bzw. ISSE-Befehle. Diskutieren Sie das Kosten/-Nutzen-Verhaltnis, Unterschiede, relevante Anwendungsbereiche und damitdie Bedeutung der jeweiligen Befehlssatz-Erweiterung. (je 3 Pkt)

Page 197: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 197

Charakterisierung: 1 je Erweiterung, spezifische Anwendungen: 1 je Erwei-terung, Kosten: 1 fur Mehrkosten, 1 fur langfristige Prognose, 1 fur EMMX,Nutzen: 1 fur Parallelisierungsgrad, 1 fur Software, 1 fur großere Caches,1 fur Compiler-Unterstutzung ...

Charakterisierung: MMX sind integer SIMD Instruktionen! 3Dnow sindinteger (ahnlich MMX) und float SIMD Instruktionen! ISSE sind integer(wie MMX) und float SIMD Instruktionen!MMX verwendet float-Register: load/clear MMX-registers! Notwendig istEMMX (exit MMX-Mode).Beschleunigung je nach Haufigkeit und Parallelitatsgrad (8-fach, 4-fach, 2-fach), eben in Abhangigkeit der packed data types. Aber hohe Kosten furEMMX. In Assembler zu programmieren!

Anwendungen: digitale Bildverarbeitung, multi media, 3D-Graphik (Ko-ordinaten-Transformationen bei Verwendung homogener Koordinaten perfloat 4× 4-Matrizen).

Kosten: Mehr-Kosten der MMX/3Dnow/ISSE-Prozessoren werden uberkurz oder lang von der gesamten Benutzer-Gemeinde getragen, da bald nurnoch ‘aufgemotzte’ Prozessoren angeboten werden.

Nutzen: Allgemeiner Nutzen durch großere caches!Spezieller Nutzen bei Verwendung von Software, die fur MMX, 3Dnow oderISSE optimiert ist. Dann ergibt sich der Beschleunigungsfaktor fur dieseSoftware aus Befehlsmix und spezieller Beschleunigung durch SIMD.

Bedeutung steigt mit der Verfugbarkeit von Compilern, die MMX, 3Dnowoder ISSE-Code erzeugen.

Page 198: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 198

24 RST-Klausur SS99

Klausur Rechner-Strukturen 13.7.99

Name Matrikel

Alle Unterlagen sind zugelassen!

weniger ist mehr! – statt weitschweifiger, wolkiger Poesieklare, knappe Aussagen mit stimmigen, stichwortartigen Begrundungen

1. Die Befehlssatze von DLX und MIPS R2000 weisen dieselben Vergleichs-instruktionen seq, sge, sgt, sle, slt und sne auf, die das Ergebnis desVergleichs der beiden Quellregister in das Zielregister schreiben.Die DLX kennt nur die beiden Verzweigungsbefehle beqz und bnez (Ver-zweigen je nachdem, ob das einzige Quellregister Null enthalt oder nicht),wahrend der MIPS-Befehlssatz daruber hinaus u.a. die Instruktionen beq

und bne mit zwei Quellregistern sowie die Instruktionen bgez, bgtz, blezund bltz mit einem Quellregister aufweist.Beurteilen Sie das Kosten/Nutzen-Verhaltnis dieser Entscheidung beim Ent-wurf des Befehlssatzes fur die

a) single cycle implementation (2 Pkt)b) multi cycle implementation (4 Pkt)c) pipeline implementation (6 Pkt)

2. Erweitern Sie den Befehlssatz des pipeline-Prozessors MIPS R2000 um denbranch on zero/autodecrement-Befehl, bzad Rs, label, mit der Bedeutung

if (Rs==0) goto label; Rs--; oder Rs--; if (Rs==0) goto label;

Beurteilen Sie den Nutzen dieses Befehls in den beiden Versionen. (2 Pkt)

Erweitern Sie hier die multi-cycle-Implementation um den bzad-Befehl (inder besseren Version). Skizzieren Sie dazu in Fig. 5.39 der Anlage die not-wendigen Anderungen oder Erganzungen im Daten-Pfad und in der Steue-rung. Wie sind die Signale zu setzen? Lohnt der Aufwand? (8 Pkt)

3. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System mitLRU auf Wortadressen 4,5,17,28,18,4,5,18,29,19,4,5a) fur einen 1-assoziativen (direct mapped) 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 LRU69. Skizzieren Sie die jeweils sich ergebenden cache-Bele-gungen, bestimmen Sie die Anzahl von hits und misses, identifizieren Sie

69LRU = least recently referenced

Page 199: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 199

raumliche und zeitliche Lokalitat und vergleichen Sie Ihre Ergebnisse mitder jeweils generell zu erwartenden cache-Leistung. (6 Pkt)

4. Welche Auswirkungen hat, in einem Speicher-System mit 4GB virtuellemSpeicher und 32MB physikalischem Speicher die page size von 32KB auf64KB zu erhohen? (4 Pkt)

5. Illustrieren Sie – wenn moglich anhand von Beispielen – die Bedeutungfolgender Kenngroßen fur Multi-Prozessor-Netzwerke:

Anzahl der verbundenen Knoten (PE)

Anzahl der verbindenden links

Knoten-Grad, d.h. maximale Anzahl der links pro Knoten

Netz-Durchmesser, d.h. maximaler Abstand (minimale Anzahl verbinden-der links) zweier beliebiger Knoten

minimale Anzahl disjunkter Pfade, die zwei beliebige Knoten verbinden

link bandwidth, d.h. Kommunikationsbandbreite eines links

total bandwidth, d.h. Kommunikationsbandbreite aller links zusammen

bisection bandwidth, d.h. die minimale Kommunikationsbandbreite allerder links zusammengenommen, die zu trennen sind, um das Netzwerkin zwei Halften mit identischer Knotenanzahl zu zerlegen.

Identifizieren Sie jeweils best case/worst case sowie Kosten-/Nutzen-orien-tierte Maße. (je 1 Pkt: 8 Pkt)

(Summe 40 Punkte)

Page 200: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 200

Losungen zur Klausur Rechner-Strukturen 13.7.99

1. Die Befehlssatze von DLX und MIPS R2000 weisen dieselben Vergleichs-instruktionen seq, sge, sgt, sle, slt und sne auf, die das Ergebnis desVergleichs der beiden Quellregister in das Zielregister schreiben.Die DLX kennt nur die beiden Verzweigungsbefehle beqz und bnez (Ver-zweigen je nachdem, ob das einzige Quellregister Null enthalt oder nicht),wahrend der MIPS-Befehlssatz daruber hinaus u.a. die Instruktionen beq

und bne mit zwei Quellregistern sowie die Instruktionen bgez, bgtz, blezund bltz mit einem Quellregister aufweist.Beurteilen Sie das Kosten/Nutzen-Verhaltnis dieser Entscheidung beim Ent-wurf des Befehlssatzes fur die

a) single cycle implementation (2 Pkt)b) multi cycle implementation (4 Pkt)c) pipeline implementation (6 Pkt)

Stellvertretend wird nur die DLX-Befehlsfolge seq; bnez; mit der gleich-wertigen MIPS-Instruktion beq verglichen. Der Nutzen wird anhand desBeschleunigungsfaktors β beim Ubergang von DLX zu MIPS gemessen: αsei die Rate von ausgefuhrten seq; bnez; bzw. beq-Befehlen.

a) single cycle implementation: eine Instruktion dauert so lang, wie dielangste Instruktion, namlich load braucht, also 40ns.

40ns/Instruktion∑

DLX seq und bnez 80nsMIPS beq 40ns

→Tseq;bnez = 2Tbeqmit Amdahl alsoβ = 1

1−α/2

Aufwand fur beq: im wesentlichen Control

b) multi cycle implementation: eine Instruktion soviele cycles a 10ns,wie Phasen zu ihrer Abarbeitung notig sind.

IF, ID fur jede Instruktion∑

DLX seq: + EX, + WB; bnez: + EX70 70nsMIPS beq: + EX 30ns

→Tseq;bnez = 7

3Tbeqmit Amdahl alsoβ = 1

1−α/ 73

Aufwand fur beq: im wesentlichen Control

c) pipeline implementation: es sind eine Reihe von Annahmen zu tref-fen: erstens wird betreffend der Datenabhangigkeit in seq; bnez forwardingunterstellt; zweitens wird der Einfachheit halber keine Sprung-Vorhersageo.a. unterstellt, stattdessen erzeugt der Prozessor nach bnez bzw. beq nursoviele stalls wie notig.Fur die DLX gilt dann: trotz forwarding immer noch 1 stall wegen Daten-abhangigkeit zwischen seq und bnez, sowie 1 stall branch penalty, wenn in

70test ALUoutput auf 6= 0 und update PC

Page 201: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 201

ID sowohl auf 0 getestet als auch der PC aktualisiert wird.Fur den MIPS gilt dann: der PC wird erst in MEM aktualisiert. Daherbelauft sich die branch penalty auf 3 stalls.

cycles a 10ns∑

DLX seq, bnez, 2 stalls 40nsMIPS beq, 3 stalls 40ns

→ Tseq;bnez = Tbeqβ = 1

Aufwand fur bnez: Comparator und PC update in ID, hazard detectionerweitern, Control to stallAufwand fur beq: im wesentlichen Control to stall

Offensichtlich lohnt sich der DLX-seitige Aufwand! Selbstverstandlich istbei DLX und MIPS weitere Leistungssteigerung durch verbesserte Sprung-vorhersage moglich.

2. Erweitern Sie den Befehlssatz des pipeline-Prozessors MIPS R2000 um denbranch on zero/autodecrement-Befehl, bzad Rs, label, mit der Bedeutung

if (Rs==0) goto label; Rs--; oder Rs--; if (Rs==0) goto label;

Beurteilen Sie den Nutzen dieses Befehls in den beiden Versionen. (2 Pkt)

Erweitern Sie hier die multi-cycle-Implementation um den bzad-Befehl (inder besseren Version). Skizzieren Sie dazu in Fig. 5.39 der Anlage die not-wendigen Anderungen oder Erganzungen im Daten-Pfad und in der Steue-rung. Wie sind die Signale zu setzen? Lohnt der Aufwand? (8 Pkt)

Um bzad nutzen zu konnen, muß der Compiler beispielsweise for-Schleifenpassend umbauen: aus der Schleife for(i=lo; i<hi+1; i++) body(i);mit Rumpf body(i) wird for(j=hi-lo; j==0; j--) body(hi-j);(NB: fall through! index register after loop!)

; set Rj to hi-lo+2 ; set Rj to hi-lo+1

; Rj--; if Rj==0 goto end ; if Rj==0 goto end; Rj--

; eigentlich if lo>hi goto end ; eigentlich if lo>hi goto end

for: bzad Rj, end for: bzad Rj, end

; set Ri to hi+1-Rj ; set Ri to hi-Rj

; body(Ri) ; body(Ri)

j for j for

end: end:

Frage ist, ob der Gewinn durch bzad nicht durch set Ri wieder zunich-te gemacht wird. (Untersuche while- und do ... while-Schleifen.) Brauch-bar sicher dort, wo die Durchlaufrichtung der Schleife ohne Anderung desRumpfes umgekehrt werden kann: etwa Initialisieren von Feldern, Vektor-Operationen, Binomischer Lehrsatz. Fur den Ersatz der for-Schleife durcheine Fuß-gesteuerte while-Schleife ware ein Analogon der 80x86 LOOP-Instruktion vorteilhaft:

if (Rs>0) goto label; Rs--; oder Rs--; if (Rs>=0) goto label;

Page 202: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 202

; set Rj to hi-lo+1 ; set Rj to hi-lo+1

; fall through? ; fall through?

; if lo>hi goto end ; if lo>hi goto end

for: for:

; set Ri to hi+1-Rj ; set Ri to hi+1-Rj

; body(Ri) ; body(Ri)

bzad Rj,for bzad Rj,for

end: end:

wodurch der Schleifen-overhead erneut reduziert wird.

multi cycle implementation: Format sei der Einfachheit halber I-Type.Sprungzielberechnung in ID (wie gehabt). ALU besorgt in EX das Dekre-mentieren. Test auf Abbruch-Kriterium und Uberschreiben des PC erfolgtmit zusatzlicher hardware entweder vor (wie bei beqz) oder nach EX.Neues Signal bzad steuert zusammen mit Ergebnis des Comparators dasUberschreiben des PC mit dem berechneten Sprungziel. Zum Dekremen-tieren braucht ALU weiteren ‘unteren’ Eingang (MUX um Konstante 1erweitern).Die ubrigen Signale sind wie folgt zu setzen: (IF, ID wie gehabt)IF: IR laden: IorD=0, MemRead=1, MemWrite=0, IRWrite=1, PC+=4:ALUSelA=0, ALUSelB=1, ALUOP=+, PCSource=0, PCWrite=1ID: branch target: ALUSelA=0, ALUSelB=3, ALUOp=+, TargetWrite=1EX: Decrement: ALUSelA=1, ALUSelB=4, ALUOp=–, RegWrite=1, Mem-toReg=0 (entweder in der Instruktion Quell=Ziel-Register oder RegDst-MUX-Erweiterung)branch: bzad steuert ein AND-Gatter wie PCWriteCond, zusammen mitErgebnis des Comparators wird PC uberschrieben oder nicht. PCSource=1,PCWrite=0, PCWriteCond=0Generell: MemWrite=0

Der hardware-Aufwand halt sich in Grenzen. Bei genugend freien OPcodeshangt die Entscheidung von der Prioritat weiterer geplanter Befehlssatzer-weiterungen fur eine multi cycle implementation ab.

3. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System mitLRU auf Wortadressen 4,5,17,28,18,4,5,18,29,19,4,5.

Skizzieren Sie die jeweils sich ergebenden cache-Belegungen, bestimmen Siedie Anzahl von hits und misses, identifizieren Sie raumliche und zeitlicheLokalitat und vergleichen Sie Ihre Ergebnisse mit der jeweils generell zuerwartenden cache-Leistung.

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

Page 203: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 203

4 5 17 28 18 4 5 18 29 19 4 5

01 172 18 183 194 4 28 4 45 5 5 29 567

71† m m m m m m t t m m t m

Adresse mod 8

also 3 hits

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

4 5 17 28 18 4 5 18 29 19 4 50 (16,17)1 (18,19) (18,19) (18,19)2 (4,5)(4,5) (28,29) (4,5)(4,5) (28,29) (4,5)(4,5)3

71† m s m m m m s t m s m smit (Adresse/2) mod 4 also 5 hits

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

4 5 17 28 18 4 5 18 29 19 4 5

set0 4 4 428

set1 5 5 517 29

set2 18 18

set3 19

71† m m m m m t t t m m t t

Adresse mod 4

also 5 hits

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

4 5 17 28 18 4 5 18 29 19 4 5set0 (4,5)(4,5) (28,29) (28,29)

(16,17) (4,5)(4,5) (4,5)(4,5)set1 (18,19) (18,19) (18,19)

71† m s m m m m s t s s t s(Adresse/2) mod 2 also 7 hits

Generell sind umso mehr hits zu erwarten, je großer die Blocke und je hoherdie Assoziativitat. (6 Pkt)

71† m=miss, s=hit due to spatial locality, t=hit due to temporal locality

Page 204: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 204

4. Welche Auswirkungen hat, in einem Speicher-System mit 4GB virtuellemSpeicher und 32MB physikalischem Speicher die page size von 32KB auf64KB zu erhohen? (4 Pkt)

1 fur Lokalitat, 1 fur miss penalty, je 1 fur page table size

Mit steigender Seiten-Große steigt die Nutzung der raumlichen Lokalitat.Die Nutzung zeitlicher Lokalitat sinkt eher (vgl. Extremfall page=physicalmemory). Die interne Fragmentierung nimmt zu. Beim Verdrangen undNachladen (page miss) muß die doppelte Daten-Menge bewegt werden: diemiss penalty verdoppelt sich (zumindest was die Ubertragungszeit uber denBus angeht).

Große der page table nimmt auf etwa die Halfte ab: 4GB=232B, 32MB=225B

32KB=215B page table hat 232/215 = 217=128K Eintrage a 25−15 = 10bitpage address + valid bit + dirty bit, also a 12bit, d.h. page table size= 12 · 214B = 3 · 216B = 192KB (ohne lru, protection)

64KB=216B page table hat 232/216 = 216=64K Eintrage a 25− 16 = 9bitpage address + valid bit + dirty bit, also a 11bit, d.h. page table size= 11 · 213B = 88KB (ohne lru, protection)

5. Illustrieren Sie – wenn moglich anhand von Beispielen – die Bedeutungfolgender Kenngroßen fur Multi-Prozessor-Netzwerke:

Anzahl der verbundenen Knoten (PE)

Anzahl der verbindenden links

Knoten-Grad, d.h. maximale Anzahl der links pro Knoten

Netz-Durchmesser, d.h. maximaler Abstand (i.e. minimale Anzahl verbin-dender links) zweier beliebiger Knoten

minimale Anzahl disjunkter Pfade, die zwei beliebige Knoten verbinden

link bandwidth, d.h. Kommunikationsbandbreite eines links

total bandwidth, d.h. Kommunikationsbandbreite aller links zusammen

bisection bandwidth, d.h. die minimale Kommunikationsbandbreite allerder links zusammengenommen, die zu trennen sind, um das Netzwerkin zwei Halften mit identischer Knotenanzahl zu zerlegen.

Identifizieren Sie jeweils best case/worst case sowie Kosten-/Nutzen-orien-tierte Maße. (je 1 Pkt: 8 Pkt)

Maß Bedeutung b/w K/N# PEs max. zur Verfugung stehende Rechenleistung b K/N# links max. # paralleler Kommunikationsbeziehungen b K/NKnoten-Grad # paralleler Kommunikationsbeziehungen/PE – Skalierbarkeit K/NDurchmesser min. strukturelle Kommunikationsgeschwindigkeit – Latenz w N# disjunkter Pfade Ausfallsicherheit/Fehler-Toleranz der Kommunikation Nlink bandwidth Datenrate zu jeweils direkt benachbarten PEs K/Ntotal bandwidth max. Datenrate im gesamten Netz b K/Nbisection bandwidth min. Datenrate zwischen je zwei Halften der PEs w K/N

Page 205: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 205

25 RST-Klausur SS98

Klausur Rechner-Strukturen 8.7.98

Name Matrikel

1. Warum weisen RISC-Prozessoren i.a.R. load/store-Architekturen auf?Inwiefern unterstutzen load/store-Architekturen das pipelining? (2 Pkt)

2. Erweitern Sie den Befehlssatz des pipeline-Prozessors MIPS R2000 um denmultiply-Befehl, mult Rs, Rt im Befehlsformat 0 Rs Rt 0 0x18 .Das low order word des Ergebnisses steht im Register lo, das high oder wordim Register hi. (Wieso lo und hi? mit welchen Konsequenzen?) (2 Pkt)

Skizzieren Sie in der multi-cycle-Implementation (Fig. 5.39 der Anlage)die notwendigen Anderungen oder Erganzungen im Daten-Pfad und in derSteuerung. Wie sind die Signale zu setzen? (8 Pkt)

3. Stellen Sie eine Formel fur den Beschleunigungsfaktor durch forwarding furDLX oder MIPS R2000 auf. (4 Pkt)Diskutieren Sie die benotigten Parameter Ihrer Formel (Gewinnung, Ein-fluß, Abhangigkeiten). (2 Pkt)Wie sieht die Formel fur den Beschleunigungsfaktor durch forwarding fureinen generischen pipeline-Prozessor aus? (2 Pkt)

4. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System mitLRU auf Wortadressen 7,8,16,27,17,7,8,17,28,18,7,8a) fur einen 1-assoziativen (direct mapped) 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 LRU72. Skizzieren Sie die jeweils sich ergebenden cache-Be-legungen, bestimmen Sie die Anzahl von hits und misses und vergleichenSie Ihre Ergebnisse mit der jeweils generell zu erwartenden cache-Leistung.

(6 Pkt)

5. Charakterisieren Sie den Zugriff auf paged segments mit TLB. BeschreibenSie worst case und best case. Stellen Sie die Implementierung auf Intel80x86-Prozessoren dar. (4 Pkt)

6. Wozu dient und wie funktioniert das MESI-Protokoll? (2 Pkt)

72LRU = least recently referenced

Page 206: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 206

7. Charakterisieren Sie die Parallelisierbarkeit der folgenden Algorithmen:Sieb des Erathostenes, Substring-Search, Bubble-Sort, Heap-Sort, Merge-Sort, Trapez-Regel, Simpson-Verfahren, Fixpunkt- oder Newton’sche Null-stellenbestimmung, Gauß’sches Eliminationsverfahren, Gauß-Seidel-Verfah-ren, Runge-Kutta-Verfahren u. drgl. und geben Sie jeweils ein passendesMehr-Prozessor-System mit zugehoriger Verbindungsstruktur an. (je 4 Pkt)

(Summe 40+4N Punkte)

Page 207: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 207

Losungen zur Wiederholer-Klausur Rechner-Strukturen 8.7.98

1. Warum weisen RISC-Prozessoren i.a.R. load/store-Architekturen auf?Inwiefern unterstutzen load/store-Architekturen das pipelining? (2 Pkt)

Speicher-Register-, Register-Speicher- oder Speicher-Speicher-Befehle incl.aller Varianten fur unterschiedliche Adressierungsarten blahen den Befehls-satz auf, erschweren die Decodierung und erfordern zusatzliche hardwarezur Adreß-Berechnung. Genau das gilt ebenso fur pipelining. Zusatzlich er-fordern die moglichen Speicherzugriffe in der Decodierungsstufe eine andereAufteilung der Befehlsbearbeitung auf Stufen: entweder großer Verschnittoder zusatzliche Stufen fur Adreß-Berechnung und Speicher-Zugriff und da-mit auch langere Stalls, branches delays, mehr forwarding, großerer zu si-chernder und nachzuladender Kontext bei Prozeß-Wechsel ...

2. Erweitern Sie den Befehlssatz des pipeline-Prozessors MIPS R2000 um denmultiply-Befehl, mult Rs, Rt im Befehlsformat 0 Rs Rt 0 0x18 .Das low order word des Ergebnisses steht im Register lo, das high oder wordim Register hi. (Wieso lo und hi? mit welchen Konsequenzen?) (2 Pkt)

Skizzieren Sie in der multi-cycle-Implementation (Fig. 5.39 der Anlage)die notwendigen Anderungen oder Erganzungen im Daten-Pfad und in derSteuerung. Wie sind die Signale zu setzen? (8 Pkt)

Das 64bit Ergebnis wird offensichtlich in den beiden zusatzlichen Registernlo und hi abgelegt. Also mussen Befehle vorhanden sein, diese Registerauch wieder auszulesen, namlich move from hi, mfhi und move from lo,mflo. Zudem gibt es auch move to hi/lo mthi/mtlo, s. P&H A-65.

1 fur ALUop=10 und ALU multipliziert fur funct=0x18, 1 fur Datenpfad-Frage, 2 fur neue Signale writeLo und writeHi, 1 fur Signale erzeugt durchALUControl, 3 fur restliche Signale in der multi cycle Implementierung

Grundsatzlich wird angenommen, daß Schreiben in R0 (wegen Feld Rd=0)zulassig und unschadlich ist, da R0 fest verdrahtet auf 0 liegt. Weiter erzeugeALUControl (!) die beiden neuen Signale writeLo und writeHi, und zwarwriteLo und writeHi sind asserted iff funct=0x18 and ALUop=10, d.h.ALU-Operation wird durch funct bestimmt.

In der multicycle Implementierung ist eine 1-cycle und eine 2-cycle Imple-mentierung von mult moglich:1 cycle for R-type completion: zusatzlicher Datenpfad, ALU erzeugt Lound Hi gemeinsam, ALUControl (!) kontrolliert mit writeLo und writeHi

das Schreiben in diese Zusatz-Register.2 cycle for R-type completion: kein zusatzlicher Datenpfad, ALU er-zeugt Lo und Hi nacheinander, ALUControl (!) kontrolliert mit writeLo

und writeHi das Schreiben erst von Lo und dann von Hi.

3. Stellen Sie eine Formel fur den Beschleunigungsfaktor durch forwarding furDLX oder MIPS R2000 auf. (4 Pkt)

Page 208: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 208

Diskutieren Sie die benotigten Parameter Ihrer Formel (Gewinnung, Ein-fluß, Abhangigkeiten). (2 Pkt)Wie sieht die Formel fur den Beschleunigungsfaktor durch forwarding fureinen generischen pipeline-Prozessor aus? (2 Pkt)

Sei n die Anzahl von Instruktionen eines Programmes, α der Anteil der In-struktionen mit Datenabhangigkeiten, deren data hazard durch forwardingaufgelost werden kann. Sei Tc die Ausfuhrungszeit einer pipeline-Stufe. An-genommen, bei data hazard fugt der Prozessor im Mittel 2 stalls ein. Dann

gilt fur den Beschleunigungsfaktor β durch forwarding β =Tohne forwardingTmit forwarding

=

n(1−α)Tc+nα 3TcnTc

= 1+2α. Genauer ware zu unterscheiden, mit welchen Ratenwieviel stalls anfallen. (s.u.)α ist durch traces zu gewinnen. Hangt stark von der Anzahl der gene-ral purpose register, der Anzahl der pipeline-Stufen und vom verwendetenCompiler ab. Dabei ist grundsatzlich angenommen, daß forwarding uberalle pipeline-Stufen implementiert ist.Unter dieser Annahme gilt also fur forwarding uber maximal s Stufen ge-

nerisch β =n(1−

∑si≥1 αi)Tc+

∑si≥1 n iαi Tc

nTc= 1 +

∑si>1(i− 1)αi.

4. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System mitLRU auf Wortadressen 7,8,16,27,17,7,8,17,28,18,7,8.Skizzieren Sie die jeweils sich ergebenden cache-Belegungen, bestimmen Siedie Anzahl von hits und misses

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

7 8 16 27 17 7 8 17 28 18 7 8

0 8 16 8 81 17 172 183 274 28567 7 7 7

Adresse mod 8

also 4 hits

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

7 8 16 27 17 7 8 17 28 18 7 80 (8,9)(16,17) (16,17) (8,9)(16,17) (8,9)1 (26,27) (18,19)2 (28,29)3 (6,7) (6,7) (6,7)

mit (Adresse/2) mod 4 also 3 hits

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

Page 209: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 209

7 8 16 27 17 7 8 17 28 18 7 8

set0 8 8 816 28

set1 17 17

set2 18

set3 7 7 727

Adresse mod 4

also 5 hits

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

7 8 16 27 17 7 8 17 28 18 7 8set0 (8,9) (8,9) (28,29)

(16,17) (16,17) (16,17) (8,9)set1 (6,7) (6,7) (6,7)

(26,27) (18,19)(Adresse/2) mod 2 also 5 hits

Generell sind umso mehr hits zu erwarten, je großer die Blocke und je hoherdie Assoziativitat. (6 Pkt)

5. Charakterisieren Sie den Zugriff auf paged segments mit TLB. BeschreibenSie worst case und best case. Stellen Sie die Implementierung auf Intel80x86-Prozessoren dar. (4 Pkt)

Unter sehr vielen Referenzen wie etwa Baron & Higbie 204-215, Bahring332-352 372-392, Flick & Liebig 410-411, Hennessy & Patterson 445-448,Herrmann 143-145, Martin 143-147, Patterson & Hennessy 481-501, Stal-lings 252-256, usw. ist Bahring besonders ausfuhrlich und detailliert.

6. Wozu dient und wie funktioniert das MESI-Protokoll? (2 Pkt)

Protokoll fur cache Koharenz in single processor Systemen (Prozessor undDMA) wie auch multi processor Systemen (ein cache/processor). Bei sin-gle Pentium fur Koharenz von L1, L2 und memory. Ebenso im Power PC,Motorola usw. Vier Zustande einer jeden cache line: MESI = modified, ex-clusive, shared, invalid.

modified exclusive shared invalid

cache line valid ja ja ja neincopy in memory is out of date valid valid —copy in another cache no no may be may be

a write to this line goes not to bus not to bus to bus & up direct to busdate cache

Protokoll realisiert Zustandsubergange (s. z.B. Martin, S.235, Stallings,p.135-137)

7. Charakterisieren Sie die Parallelisierbarkeit der folgenden Algorithmen:Sieb des Erathostenes, Substring-Search, Bubble-Sort, Heap-Sort, Merge-

Page 210: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 210

Sort, Trapez-Regel, Simpson-Verfahren, Fixpunkt- oder Newton’sche Null-stellenbestimmung, Gauß’sches Eliminationsverfahren, Gauß-Seidel-Verfah-ren, Runge-Kutta-Verfahren u. drgl. und geben Sie jeweils ein passendesMehr-Prozessor-System mit zugehoriger Verbindungsstruktur an. (je 4 Pkt)

Nicht oder nicht gut parallelisierbar sind beispielsweise Sieb des Erathoste-nes, Newton’sche Nullstellenbestimmung, usw.Gut parallelisierbar sind beispielsweise Substring-Search, Gauß’sches Elimi-nationsverfahren (gut auf einem Vektor-Rechner zu implementieren), usw.

Page 211: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 211

26 RST-Klausur WS97

Wiederholer-Klausur Rechner-Strukturen 23.1.98

Name Matrikel

Alle Unterlagen sind zugelassen.

1. Ein MMX-Pentium-Prozessors koste doppelt soviel wie der entsprechen-de Prozessor ohne MMX-Fahigkeiten. Der MMX-Prozessor arbeite 1% derBefehle einer MMX-fahigen Software 10-mal so schnell ab wie der entspre-chende Pentium ohne MMX-Fahigkeiten, der die MMX-Befehle emulierenmuß. Rechnet sich die (Zusatz-) Investition in die MMX-Version? falls dieKosten fur den Prozessor 10% der Gesamtkosten ausmachen? (2 Pkt)

2. Charakterisieren Sie einen Ihnen gelaufigen Befehlssatz als RISC- oderCISC-Befehlssatz. Begrunden Sie Ihre Charakterisierung. (2 Pkt)

3. Erweitern Sie den Befehlssatz des Prozessors MIPS R2000 um den jump andlink -Befehl, jal #Target, fur den Aufruf von Prozeduren: seine Ausfuhrungbesteht in Retten der Rucksprung-Adresse (R31=PC+4) und im unbedingtenSprung goto Target, und zwar im Befehlsformat 3 Target .

Skizzieren Sie in der single/multi-cycle-Implementation (Fig. 5.22 der An-lage) die notwendigen Anderungen oder Erganzungen im Daten-Pfad undin der Steuerung. Wie sind die Signale zu setzen? (8 Pkt)

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

const int n=2*m; const int n=2*m;

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

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

fur m ∈ N die Abarbeitung von Schleifen durch pipeline-Prozessoren be-schleunigen? Berechnen Sie den Beschleunigungsfaktor fur eine 5-stufigepipeline mit je einem jump und load delay slot. (7 Pkt)Wie wirkt sich fur n = 4m mit m ∈ N eine Vervierfachung, wie eine Ver-vielfachung des Schleifen-Korpers aus? Wie muß der Compiler Schleifen mitbeliebig vielen Schleifen-Durchlaufen behandeln? (2 Pkt)Fur welche Typen von Prozessoren ist loop unfolding erst recht sinnvoll,unter welcher Bedingung und mit welcher Vervielfachung? (1 Pkt)

Page 212: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 212

5. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System mitLRU73 auf Wortadressen 5,6,14,25,15,5,6,15,26,16,5,6a) fur einen 1-assoziativen (direct mapped) 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 WortenSkizzieren Sie die jeweils sich ergebenden cache-Belegungen, bestimmen Siedie Anzahl von hits und misses und vergleichen Sie Ihre Ergebnisse mit derjeweils generell zu erwartenden cache-Leistung. (6 Pkt)

6. Klassifizieren Sie die Inter-Prozessor-Kommunikation in Mehr-Prozessor-Systemen, stellen Sie geeignete Leistungskriterien fur die Inter-Prozessor-Kommunikation auf und wenden Sie diese Kriterien auf verschiedene Ver-bindungstopologien an. (4 Pkt)

Zusatz: Wenden Sie Ihre Kriterien auf ein Ihnen gelaufiges Mehr-Prozes-sor-System an. (4 Pkt)Zusatz: Zeigen Sie an einem Beispiel, wie die Inter-Prozessor-Kommuni-kation den Entwurf bzw. die Leistungsfahigkeit von parallelen Algorithmenbeeinflußt. (4 Pkt)

(Summe 32+8 Punkte)

73LRU = least recently referenced

Page 213: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 213

Losungen zur Wiederholer-Klausur Rechner-Strukturen 23.1.98

1. Ein MMX-Pentium-Prozessors koste doppelt soviel wie der entsprechen-de Prozessor ohne MMX-Fahigkeiten. Der MMX-Prozessor arbeite 1% derBefehle einer MMX-fahigen Software 10-mal so schnell ab wie der entspre-chende Pentium ohne MMX-Fahigkeiten, der die MMX-Befehle emulierenmuß. Rechnet sich die (Zusatz-) Investition in die MMX-Version? falls dieKosten fur den Prozessor 10% der Gesamtkosten ausmachen? (2 Pkt)

Beschleunigung βMMX = 10.99+0.01/10

= 1000991

= 1.009 bei einem Steigerungs-

faktor der Kosten von 2 bzw. von 2 110

+ 1 910

= 1.1 rechnet sich nicht.

2. Charakterisieren Sie einen Ihnen gelaufigen Befehlssatz als RISC- oderCISC-Befehlssatz. Begrunden Sie Ihre Charakterisierung. (2 Pkt)

RISC: etwa DLX, MIPS oder RISC I; CISC: etwa Intel x86, VAX oder IBM/360 jeweils Charakteristika aufzeigen ...

3. Erweitern Sie den Befehlssatz des Prozessors MIPS R2000 um den jump andlink -Befehl, jal #Target, fur den Aufruf von Prozeduren: seine Ausfuhrungbesteht in Retten der Rucksprung-Adresse (R31=PC+4) und im unbedingtenSprung goto Target, und zwar im Befehlsformat 3 Target .

Skizzieren Sie in der single/multi-cycle-Implementation (Fig. 5.22 der An-lage) die notwendigen Anderungen oder Erganzungen im Daten-Pfad undin der Steuerung. Wie sind die Signale zu setzen? (8 Pkt)

PC+4 uber erweiterten MemToReg-MUX an Write Data der Register-Datei,zugleich erweiterter RegDst-Mux mit Eingang fest auf 31, gesteuert durcherweitertes RegDst, so daß PC+4 in R31 geschrieben wird (RegWrite=1).

fur goto target erzeugt die control unit neues Signal jump. Die Ziel-Adresse Instruction[25-0] (in Befehlen) wird durch shift left 2 in ei-ne Byte-Adresse umgewandelt und dann an durch jump gesteuerten zusatz-lichen MUX angelegt, uber den PC mit der Ziel-Adresse uberschrieben wird.

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

const int n=2*m; const int n=2*m;

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

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

fur m ∈ N die Abarbeitung von Schleifen durch pipeline-Prozessoren be-schleunigen? Berechnen Sie den Beschleunigungsfaktor fur eine 5-stufigepipeline mit je einem jump und load delay slot. (7 Pkt)

Page 214: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 214

add r3,r0,r0

lw R4,n$

nop

loopstart: sge R1,R3,R4

bnez R1,loop_exit

nop

body(i)

addi R3,R3,#1

j loopstart

nop

loop_exit:

macht 3 Instruktionen oder cycles fur die Initialisierung, 3+b+3 cycles furjeden Schleifen-Durchlauf mit b cycles fur den Schleifen-Rumpf und 3 cyclesfur den Schleifen-Abbruch, also 3+n(3+b+3)+3 = 6+n(6+b) = 6+6n+n bcycles.Bei 2-fach unfolding dauert die Abarbeitung der Schleife 3+m(3+b+1+b+3)+3 = 6+7m+n b cycles. Der Beschleunigungsfaktor βn in Abhangigkeitvon n ist βn = 6+6n+n b

6+7m+n bmit limn→∞ βn = 6+b

7/2+b. (Je kleiner b, um so mehr

fallt der Schleifen-Overhead ins Gewicht.)

Wie wirkt sich fur n = 4m mit m ∈ N eine Vervierfachung, wie eine Ver-vielfachung des Schleifen-Korpers aus? Wie muß der Compiler Schleifen mitbeliebig vielen Schleifen-Durchlaufen behandeln? (2 Pkt)

Vervierfachung: 6 +n(6 + b) = 6 + 6n+n b vs 6 +m(9 + 4 b) = 6 + 9m+n bmit Beschleunigungsfaktor βn = 6+6n+n b

6+9m+n bund limn→∞ βn = 6+b

9/4+b.

Bei n = vm mit v,m ∈ N, also Vervielfachung um den Faktor v eben6 + n(6 + b) = 6 + 6n + n b vs 6 + m(6 + v b + v − 1) = 6 + 5m + n + n bmit Beschleunigungsfaktor βn = 6+6n+n b

6+5m+n+n bund limn→∞ βn = 6+b

1+5/v+b.

Einem ’maximalen’ unrolling/unfolding von n Schleifen-Durchlaufen eigent-lich per Vervielfachung gemnaß der Binar-Darstellung von n steht aber dieVergroßerung des codes (beim Laden, bei Prozess-Wechseln) entgegen . . .

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 Datenab-hangigkeiten (per Datenfluß-Analyse) konnen loop unrolling ausschließen. . .

5. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-Systemmit LRU auf Wortadressen 5,6,14,25,15,5,6,15,26,16,5,6. Skizzieren Sie diejeweils sich ergebenden cache-Belegungen, bestimmen Sie die Anzahl vonhits und misses

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

Page 215: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 215

5 6 14 25 15 5 6 15 26 16 5 6

0 161 252 26345 5 5 56 6 14 6 67 15 15

m m m m m h m h m m h h

Adresse mod 8

also mit 4 hits

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

5 6 14 25 15 5 6 15 26 16 5 60 (24,25) (16,17)1 (26,27)2 (4,5) (4,5) (4,5)3 (6,7)(14,15) (14,15) (6,7)(14,15) (6,7)

m m m m s t m m m m t mmit (Adresse/2) mod 4 also 3 hits

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

5 6 14 25 15 5 6 15 26 16 5 6

set0 16

set1 5 5 525

set2 6 6 614 26

set3 15 15

m m m m m h h h m m h h

Adresse mod 4

also mit 5 hits

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

5 6 14 25 15 5 6 15 26 16 5 6set0 (4,5) (4,5) (4,5)

(24,25) (16,17)set1 (6,7) (6,7) (26,27)

(14,15) (14,15) (14,15) (6,7)m m m m s t t t m m t m

(Adresse/2) mod 2 also mit 5 hits

Generell sind umso mehr hits zu erwarten, je großer die Blocke und je hoherdie Assoziativitat. (6 Pkt)

6. Klassifizieren Sie die Inter-Prozessor-Kommunikation in Mehr-Prozessor-Systemen, stellen Sie geeignete Leistungskriterien fur die Inter-Prozessor-

Page 216: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 216

Kommunikation auf und wenden Sie diese Kriterien auf verschiedene Ver-bindungstopologien an. (4 Pkt)

Zusatz: Wenden Sie Ihre Kriterien auf ein Ihnen gelaufiges Mehr-Prozes-sor-System an. (4 Pkt)Zusatz: Zeigen Sie an einem Beispiel, wie die Inter-Prozessor-Kommuni-kation den Entwurf bzw. die Leistungsfahigkeit von parallelen Algorithmenbeeinflußt. (4 Pkt)

. . . . . . . . .

Page 217: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 217

27 RST-Klausur SS97

Klausur Rechner-Strukturen 3.7.97

Name Matrikel

1. Geben Sie eine einfache Formel fur den Beschleunigungsfaktor durch Er-weiterung des Befehlssatzes um MMX-Befehle an und bewerten Sie die un-bekannten Parameter Ihrer Formel. (2 Pkt)

2. Charakterisieren Sie den Intel 80x86-Befehlssatz. Warum ist dieser fur einenRISC- oder pipeline-Prozessor ungeeignet? (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 Befehlsformats (s. a. Figure A.18).Wie sieht das Format vermutlich aus und was heißt das fur den Gebrauchvon ld ? Wurden Sie diesen Befehl in den Befehlssatz aufnehmen? (2 Pkt)

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

(10 Pkt)

4. Ubersetzen Sie die Anweisungsfolge c=b+a; f:=c+d-e; in MIPS assemblylanguage (s. Anlage), optimieren Sie Ihren Code (Kontext-neutral) fur einenpipeline-Prozessor ohne forwarding, mit einer 1-Zyklus Latenz fur load- undALU-Befehle und mit aktuell sieben verfugbaren Registern und erlauternSie Ihre Optimierung. (6 Pkt)

5. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System mitLRU74 auf Wortadressen 3,4,12,23,13,3,4,13,24,14,3,4 (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 WortenSkizzieren Sie die cache-Belegungen und vergleichen Sie die Ergebnisse mitder jeweils generell zu erwartenden cache-Leistung. (6 Pkt)

6. Beschreiben Sie worst case und best case des Zugriffs auf die paged segmentsdes Intel 80386. (4 Pkt)

74LRU = least recently used=referenced

Page 218: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 218

7. Der Gauß’sche Algorithmus fur das LGS A~x = ~b besteht aus den beidenTeilen Eliminieren und Auflosen:

for(i=1; i<n; i++) // eliminiere die Unbekannte xifor(j=i+1; j<=n; j++) // in der j-ten Gleichung

const double pivot=A[j][i]/A[i][i];

A[j][i]=0.0; // xi in j-ter Gleichung eliminieren// restliche Koeffizienten der j-ten Gleichung aktualisierenfor(k=i+1; k<=n; k++) A[j][k]-=pivot*A[i][k];

b[j]-=pivot*b[i]; // rechte Seite aktualisieren

// das Gleichungssystem hat jetzt Diagonalgestalt: die Unbekannten// xi lassen sich aus

∑nj=iAij xj = bi von unten nach oben bestimmen.

for(i=n; i>0; i--) // bestimme xi fur i = n, n− 2, . . . , 1 double tmp=b[i]; // berechne bi −

∑nj=i+1Aij xj in tmp

for(j=n; j>i; j--) tmp-=A[i][j]*x[j];

x[i]=tmp/A[i][j];

Bestimmen Sie die workload der beiden Teile auf einem Mono-Prozessorund bewerten Sie Ihr Ergebnis fur die Parallelisierung. (2 Pkt)

Ein Mehrprozessor-System mit 4 Prozessoren soll die Unbekannten in einemLGS mit 7 Gleichungen in 7 Unbekannten eliminieren, also die Koeffizien-ten-Matrix in Dreicksgestalt uberfuhren, wobei wieder – wie gehabt – Pro-zessoren fest Spalten zugeordnet sind. Berechnen Sie die sich aufgrund derParallelisierung ergebenden Großen β (Beschleunigungsfaktor) und α (Aus-lastung der Prozessoren). (8 Pkt)

Zusatz: Stellen Sie das Programm fur den p-ten Prozessor, p = 0, 1, 2, 3geeignet dar und entwickeln Sie Verbesserungen. (8 Pkt)

(Summe 42+8 Punkte)

Page 219: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 219

Losungen der Klausur Rechner-Strukturen 3.7.97

1. Geben Sie eine einfache Formel fur die Beschleunigung durch Erweiterungdes Befehlssatzes um MMX-Befehle an und bewerten Sie die unbekanntenParameter Ihrer Formel. (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 den Intel 80x86-Befehlssatz. Warum ist dieser fur einenRISC- oder pipeline-Prozessor ungeeignet? (2 Pkt)

keine feste Lange (also schlecht fur caching), kein homogenes Format (al-so schwierige Decodierung), viele Adressierungsarten (also keine einfacheAdressberechnung etwa in EX-Stufe), keine load store Architektur (alsoschwieriger 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 Befehlsformats (s. a. Figure A.18).Wie sieht das Format vermutlich aus und was heißt das fur den Gebrauchvon ld ? Wurden Sie diesen Befehl in den Befehlssatz aufnehmen? (2 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?Sinnvoll ist ld nur; wenn tatsachlich ein Befehl eingespart werden kann: dasgeht aber nur, wenn der Prozessor auf 64bit Worte im Speicher zugreift undwenn das caching mitmacht. Sonst muß eben ld durch zweimal lw emuliertwerden.

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

(10 Pkt)

Es ist aus Rdest die Nummer Rdest+1 zu berechnen. Die Registerdateihat neben write register noch write register2 und neben write data

noch write data2. Analog dazu hat das data memory neben read address

noch read address2 und neben read data noch read data2.Es ist read address2=read address+4 zu berechnen. Je nach Format istread address zu setzen.

Page 220: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 220

Die control unit muß dafur sorgen, daß an write register2 immer 0 undnur bei ld eben Rdest anliegt. Bei ld muß die Steuerung die ubrigen Signalewie folgt setzen: branch=0, MemRead=1, MemtoReg=1, MemWrite=0 undRegWrite=1.

4. Ubersetzen Sie die Anweisungsfolge c=b+a; f:=c+d-e; in MIPS assemblylanguage (s. Anlage), optimieren Sie Ihren Code (Kontext-neutral) fur einenpipeline-Prozessor ohne forwarding, mit einer 1-Zyklus Latenz fur load- undALU-Befehle und mit aktuell sieben verfugbaren Registern und erlauternSie Ihre Optimierung. (6 Pkt)

c := b + a; f := c + d − e; wird wie folgt (rechts in optimierter Version)in MIPS assembly language ubersetzt (load/store- und ALU-Operationenhaben eine Latenz-Zeit von einem Takt-Zyklus):

LW Rb,b LW Rb,b

LW Ra,a LW Ra,a

NOP LW Rd,d

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

SW c,Rc LW Re,e

LW Rd,d ADD Rf,Rc,Rd

LW Re,e SW c,Rc

NOP SUB Rf,Rf,Re

SUB Rf,Rd,Re NOP

NOP SW f,Rf

ADD Rf,Rf,Rc

NOP

SW f,Rf

Optimierung reduziert 4 NOP auf ein NOP.

5. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System mitLRU75 auf Wortadressen 3,4,12,23,13,3,4,13,24,14,3,4 (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

75LRU = least recently used=referenced

Page 221: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 221

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

3 4 12 23 13 3 4 13 24 14 3 40 24123 3 3 34 4 12 4 45 13 136 147 23

m m m m m h m h m m h h

also 4 hits

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

3 4 12 23 13 3 4 13 24 14 3 40 (24,25)1 (2,3) (2,3) (2,3)2 (4,5) (12,15) (12,13) (4,5) (12,13) (4,5)3 (22,23) (14,15)

m m m m s t m m m m t m

(address/2 mod 4) also 3 hits

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

3 4 12 23 13 3 4 13 24 14 3 4set0 4 4 4

12 24set1 13 13

set2 14

set3 3 3 323

m m m m m h h h m m h h

also 5 hits

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

3 4 12 23 13 3 4 13 24 14 3 4set0 (4,5) (4,5) (24,25)

(12,13) (12,13) (12,13) (4,5)set1 (2,3) (2,3) (2,3)

(22,23) (14,15)m m m m s t t t m m t m

(address/2 mod 2) also 5 hits

Generell sind umso mehr hits zu erwarten, je großer die Blocke und je hoherdie Assoziativitat. (6 Pkt)

6. Beschreiben Sie worst case und best case des Zugriffs auf die paged segmentsdes Intel 80386. (4 Pkt)

Page 222: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 222

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. Bestimmen Sie die workload der beiden Teile auf einem Mono-Prozessorund bewerten Sie Ihr Ergebnis fur die Parallelisierung. (2 Pkt)

Der Gauß’sche Algorithmus fur das LGS A~x = ~b besteht aus den beidenTeilen Eliminieren (dreifach geschachtelt) und Auflosen (zweifach geschach-telt):

Ein Mehrprozessor-System mit 4 Prozessoren soll die Unbekannten in einemLGS mit 7 Gleichungen in 7 Unbekannten eliminieren, also die Koeffizien-ten-Matrix in Dreiecksgestalt uberfuhren, wobei wieder – wie gehabt – Pro-zessoren fest Spalten zugeordnet sind. Berechnen Sie die sich aufgrund derParallelisierung ergebenden Großen β (Beschleunigungsfaktor) und α (Aus-lastung der Prozessoren). (8 Pkt)

Faktor ZE

x1 in 6 Gleichungen eliminieren 2 12x2 in 5 Gleichungen eliminieren 2 10x3 in 4 Gleichungen eliminieren 2 8x4 in 3 Gleichungen eliminieren 2 6x5 in 2 Gleichungen eliminieren 1 2x6 in 1 Gleichungen eliminieren 1 1

Summe∑

= 39

Ein Mono-Prozessor braucht 16(n − 1)n(2n + 5) = 133ZE und damit ist

β = 13339≈ 3.4 und α = 133

4·39≈ 0.85.

Zusatz: Stellen Sie das Programm fur den p-ten Prozessor, p = 0, 1, 2, 3geeignet dar und entwickeln Sie Verbesserungen. (8 Pkt)

Page 223: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 223

28 RST-Klausur WS96

Wiederholer-Klausur Rechner-Strukturen 18.12.96

Name Matrikel

1. Im Februar dieses Jahres warb dieFirma ComTech u.a. mit nebenste-hender Graphik fur ihren PC mit“100MHz Pentium, 8MB RAM ZifSockel 7, superschneller 1GB Marken-Festplatte IDE PIO Mode 4, 4 x PCI,3 x 16bit ISA, Spea V7 Mirage, usw.”

Nehmen Sie zu Tip, Graphik und An-gebot Stellung. (4 Pkt)

2. Welche Eigenschaften sollte der Befehlssatz eines pipeline-Prozessors haben,und wieso? (4 Pkt)

3. Erweitern Sie den Befehlssatz des Prozessors MIPS R2000 um den addimmediate (without overflow)-Befehl, mnemotechnisch addiu Rt,Rs,Imm,d.h. Rt=Rs+Imm und mit Befehlsformat 9 Rs Rt Imm . Skizzieren

und erlautern Sie (in Fig. 5.22) die notwendigen Anderungen/Erganzungenim Daten-Pfad und in der Steuerung. Wie sind die Signale zu setzen? (8 Pkt)

4. Skizzieren Sie graphisch die Leistung eines pipeline-Befehlsprozessors (wieMIPS R2000/R3000, DLX, usw.) in Abhangigkeit von der Stufen-Anzahlund erlautern Sie Ihre Skizze. (2 Pkt)

5. Ubersetzen Sie die Anweisungsfolge a:=b+c; d:=e-f+a; in MIPS assemblylanguage (s. Anlage) und optimieren Sie Ihren Code (Kontext-neutral) fureinen pipeline-Prozessor mit load/store-Architektur, einem load delay voneinem pipeline-Zyklus und mit aktuell sieben verfugbaren Registern R3, . . . ,R9. Erlautern Sie Ihre Optimierung. (6 Pkt)

Page 224: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 224

6. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System mitLRU76 auf Wortadressen 2,3,11,22,12,2,3,12,23,13,2,3 (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

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

7. Wie beeinflußt die Seiten-Große ein paging-System und wodurch ist dieoptimale Seitengroße bestimmt? (4 Pkt)

8. Bestimmen Sie Kommunikationsdurchmesser und Anzahl von Verbindun-gen fur das Gitter mit insgesamt 22n Knoten wie fur den hypercube mitebenfalls 22n Knoten und interpretieren Sie das Ergebnis (Bedeutung, Auf-wand, Kosten/Nutzen). (4 Pkt)

(Summe 34 Punkte)

76LRU = least recently referenced

Page 225: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 225

Losungen der Wiederholer-Klausur Rechner-Strukturen 18.12.96

1. Nichts ist quantifiziert: weder Gewinn durch EDO-RAM noch der durchpipeline burst cache. Auch nicht, ob großere cache besser als kleinerer pi-peline burst cache. Vielleicht gibt es ja sowieso ganz andere Flaschenhalse,z.B. der Festplatten-Controller, usw. (4 Pkt)

2. identische Lange (caching), homogenes Format (einfache Decodierung), we-nig Adressierungsarten (einfache Adressberechnung etwa in der EX-Stufe),load/store-Architektur (4 Pkt)

3. Es sind keine Anderungen/Erganzungen im Daten-Pfad notwendig. Beiopcode=9 muß die Steuerung die Signale wie folgt setzen: RegDst=0 (wiebei load), branch=0, MemRead=0, MemtoReg=x, MemWrite=0, ALUs-rc=1 (wie bei load/store) und RegWrite=1 (wie bei arithm./log.). Ebensomuß die Steuerung ALUop geeignet setzen. (8 Pkt)

4. Die Leistung eines pipeline-Befehlsprozessors steigt zunachst mit zuneh-mender Stufen-Anzahl s da MIPS≈ s bzw. CPI≈ 1/s. Allerdings nehmendann die penalties fur branching, restart of pipeline bei Prozeß-Wechsel, beiexceptions so stark zu, daß sich ein Maximum bei typischerweise 4-5 Stufenergibt. (2 Pkt)

5. a := b + c; d := e − f + a; wird wie folgt (rechts in optimierter Version)in MIPS assembly language ubersetzt (load/store Operationen haben eineLatenz-Zeit von einem Takt-Zyklus):

LW Rb,b LW Rb,b

LW Rc,c LW Rc,c

NOP 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

NOP SUB Rd,Rd,Rf

SUB Rd,Re,Rf NOP ; no forwarding

NOP ; no forwarding SW d,Rd

ADD Rd,Rd,Ra

SW d,Rd

Also ist optimiert ohne forwarding noch ein NOP und mit forwarding keinNOP mehr erforderlich. (6 Pkt)

6. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System mitLRU77 auf Wortadressen 2,3,11,22,12,2,3,12,23,13,2,3.

77LRU = least recently used=referenced

Page 226: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 226

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

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

2 3 11 22 12 2 3 12 23 13 2 3012 2 2 23 3 11 3 34 12 125 136 227 23

m m m m m h m h m m h h

also 4 hits

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

2 3 11 22 12 2 3 12 23 13 2 301 (2,3) (2,3) (10,11) (2,3) (2,3) (2,3) (2,3)2 (12,13) (12,13) (12,13)3 (22,23) (22,23)

m s m m m m s t s s s||t s||t(address/2 mod 4) also 6 hits

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

2 3 11 22 12 2 3 12 23 13 2 3set0 12 12

set1 13

set2 2 2 222

set3 3 3 311 23

m m m m m h h h m m h h

also 5 hits

und

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

2 3 11 22 12 2 3 12 23 13 2 3set0 (12,13) (12,13) (12,13)

set1 (2,3) (2,3) (22,23) (22,23)(10,11) (2,3) (2,3) (2,3) (2,3)

m s m m m m s t s s s||t s||talso 7 hits

Generell sind umso mehr hits zu erwarten, je großer die Blocke und je hoherdie Assoziativitat. (6 Pkt)

Page 227: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 227

7. Wie beeinflußt die Seiten-Große ein paging-System und wodurch ist dieoptimale Seitengroße bestimmt? (4 Pkt)

8. Bestimmen Sie Kommunikationsdurchmesser und Anzahl von Verbindun-gen fur das Gitter mit insgesamt 22n Knoten wie fur den hypercube mitebenfalls 22n Knoten und interpretieren Sie das Ergebnis (Bedeutung, Kos-ten/Nutzen).#Wege steht fur die Anzahl der Wege minimaler Lange!

Komm-∅ # Verbindungen # Wege

Gitter 2 (2n − 1) 2 · 2n(2n − 1)(

∆i+∆j∆i

)≤(

2n+2n

2n

)hypercube 2n 2n · 22n−1 = n 22n #i : pi! = qi ≤ (2n)!

Der hypercube mit N = 22n Knoten ist 2n-dimensional: von jedem Knotengehen 2n links aus. Es gibt also insgesamt 2n22n/2 links.Das Gitter hat pro Seite sn − 1 links. Vom Knoten links oben zu demrechts unten sind also Komm-∅ = (2n − 1) + (2n − 1) = 2(2n − 1) links zudurchlaufen. (4 Pkt)

Page 228: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 228

29 RST-Klausur SS96

Klausur Rechner-Strukturen I5I1/I5ES 9.7.96

Name Matrikel

Alle Unterlagen (bei Vorgabe alter Klausuren) sind zugelassen.

1. Die Firma ComTech wirbt mit dem Bildchen auf der Umseite fur den Kaufihrer PCs. Bewerten Sie die Aussagekraft des ‘Leistungsschemas’. Wannkommt das ‘LeistungsPLUS’ zum tragen? Wie attraktiv ist dadurch derangebotene PC im Vergleich zu anderen Pentium 133 PCs? Unter welchenUmstanden wurden Sie 49,-DM fur weitere 256KB pipeline burst cacheinvestieren? (4 Pkt)

2. Erweitern Sie den Befehlssatz des Prozessors MIPS R2000 um den jump andlink -Befehl, jal #Target, fur den Aufruf von Prozeduren: seine Ausfuhrungbesteht in Retten der Rucksprung-Adresse (R31=PC+4) und im unbedingtenSprung goto Target, und zwar im Befehlsformat 3 Target .

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

3. Skizzieren Sie graphisch die Leistung eines pipeline-Prozessors in Abhangig-keit von der Stufen-Anzahl. Begrunden Sie Ihre Skizze. (2 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; 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. (4 Pkt)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)Fur welche Typen von Prozessoren ist loop unfolding erst recht sinnvoll,unter welcher Bedingung und mit welcher Vervielfachung? (2 Pkt)

Page 229: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 229

5. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System mitLRU78 auf Wortadressen 2,4,10,9,13,4,13,2,13a) fur einen 1-assoziativen (direct mapped) 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 und

d) fur einen 2-assoziativen cache mit Blocken a 2 Worten

Skizzieren Sie die jeweils sich ergebenden cache-Belegungen, bestimmen Siedie Anzahl von hits und misses und vergleichen Sie Ihre Ergebnisse mit derjeweils generell zu erwartenden cache-Leistung. (6 Pkt)

6. Zusatz: Als ein Maß fur die Fehlertoleranz einer Verbindungsstruktur be-stimme die Anzahl α verschiedener Wege minimaler Lange zwischen zweiKnoten in einem Gitter: die Adressen (Matrix-Element-Indices) der beidenKnoten seien P = (i, j) und Q = (k, l).Auf einem Weg von P nach Q mussen wieviele waagerechte links durchlau-fen werden?Auf einem Weg von P nach Q mussen wieviele senkrechte links durchlaufenwerden?Jeder Weg minimaler Lange kann also als Folge von w’s (oder etwa 0en)und s’s (oder etwa 1en), also als Binar-Vektor dargestellt werden. DieseBinar-Vektoren haben wieviele Elemente?Die gesuchte Anzahl α stimmt also mit der Anzahl dieser Binar-Vektorenuberein. Berechnen Sie α als Anzahl der Moglichkeiten, die erste 1, danndie zweite 1 usw. im Vektor anzuordnen, unter Berucksichtigung des Um-standes, daß so bestimmte Anordnungen mehrfach gezahlt werden. (4 Pkt)

ComTech-Werbe-Bildchen

(Summe 32 Punkte)

78LRU = least recently used=referenced

Page 230: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 230

Losungen zur Klausur Rechner-Strukturen I5I1/I5ES 9.7.96

1. Die Firma ComTech wirbt mit dem Bildchen auf der Umseite fur den Kaufihrer PCs. Bewerten Sie die Aussagekraft des ‘Leistungsschemas’. Wannkommt das ‘LeistungsPLUS’ zum tragen? Wie attraktiv ist dadurch derangebotene PC im Vergleich zu anderen Pentium 133 PCs? Unter welchenUmstanden wurden Sie 49,-DM fur weitere 256KB pipeline burst cacheinvestieren? (4 Pkt)

keine Aussage, da kein Maßstab (relativ und absolut). kein Benchmark!schnellerer Prozessor, schnelleres Memory mit zudem schnellerem Zugriffdurch cache: also schnelleres Rechnen;wegen smartdrive auch schnellerer Plattenzugriffwieder mangelnde Information uber erzielbaren Leistungszugewinn

2. Erweitern Sie den Befehlssatz des Prozessors MIPS R2000 um den jump andlink -Befehl, jal #Target, fur den Aufruf von Prozeduren: seine Ausfuhrungbesteht in Retten der Rucksprung-Adresse (R31=PC+4) und im unbedingtenSprung goto Target, und zwar im Befehlsformat 3 Target .

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

Es sind zwei Aktionen zu implementieren: R31=PC+4 und jump target.

fur R31=PC+4 erweitere MUX RegDst in EX-Stufe um zusatzlichen Ein-gang fest auf 31, schiebe PC+4 durch alle pipeline-Register, Mem: disableMemwrite und Memread, WB: uberschreibe R31 mit PC+4, indem RegWrite

enabled ist, Mem/WB.WriteRegister aus EX die 31 enthalt und der umMem/WB.PC+4 erweiterte MUX MemtoReg den Wert PC+4 an WriteData

anlegt. Es ist ubrigens besser, die Operation R31=PC+4 selbst in Mem durch-zufuhren, da so die jal-penalty vermindert wird.

fur jump target gehe wie bei j target vor: ID: baue 32bit-SprungzielTarget aus PC+4 und ID/EX.IR[25-0] zusammen und schiebe durch diePipeline-Register, EX: keine weitere, zusatzliche Aktion, Mem: uberschreibePC mit EX/Mem.Target, indem MUX PCsrc, an dem auch EX/Mem.Target

anliegt, wie bei j target angesteuert wird und PCwrite enabled ist.

3. 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!

Page 231: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 231

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; 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. (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 + 2n(5 + body) = 5 + 10n+ 2n bodyInstruktionen oder cycles.Bei 2-fach unfolding ergeben sich 2 + n(5 + 2 body) + 3 = 5 + 5n+ 2n bodyInstruktionen oder cycles.Beschleunigungsfaktor β = 5+10n+2n body

5+5n+2n 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 + 4n(5 + body) = 5 + 20n + 4n body vs 5 + n(5 +4 body) = 5 + 5n + 4n body mit Beschleunigungsfaktor β = 5+20n+4n body

5+5n+4n 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 + 5n + v n body mit Beschleunigungsfaktor β =5+5 v n+v n body5+5n+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, dabei sind aberDaten-Abhangigkeiten zu berucksichtigen! . . .

Page 232: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 232

5. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System aufWortadressen 2,4,10,9,13,4,13,2,13. Skizzieren Sie die jeweils sich ergeben-den cache-Belegungen, bestimmen Sie die Anzahl von hits und misses

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

2 4 10 9 13 4 13 2 1301 92 2 10 234 4 45 13 13 1367

m m m m m h h m h

mitAdresse mod 8

also 3 hits

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

2 4 10 9 13 4 13 2 130 (8,9)1 (2,3) (10,11) (2,3)2 (4,5) (12,13) (4,5) (12,13) (12,13)3

m m m m m m m m t(Adresse/2) mod 4 also 1 hit

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

2 4 10 9 13 4 13 2 13set0 4 4

set1 913 13 13

set2 2 210

set3

m m m m m h h h h

mitAdresse mod 4

also 4 hits

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

2 4 10 9 13 4 13 2 13set0 (4,5) (12,13) (12,13) (12,13)

(8,9) (4,5)set1 (2,3) (2,3)

(10,11)m m m m m m t t t

mit (Adresse/2) mod 2 also 3 hits

Page 233: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 233

Generell ist die A nzahl der hits umso großer, je großer die Blocke und jehoher die Assoziativitat. (6 Pkt)

6. Zusatz: Als ein Maß fur die Fehlertoleranz einer Verbindungsstruktur be-stimme die Anzahl α verschiedener Wege minimaler Lange zwischen zweiKnoten in einem Gitter: die Adressen (Matrix-Element-Indices) der beidenKnoten seien P = (i, j) und Q = (k, l).Auf einem Weg von P nach Q mussen |j− l| waagerechte links durchlaufenwerden.Auf einem Weg von P nach Q mussen |i− k| senkrechte links durchlaufenwerden.Jeder Weg minimaler Lange kann also als Folge von w’s (oder etwa 0en)und s’s (oder etwa 1en), also als Binar-Vektor dargestellt werden. DieseBinar-Vektoren haben |i− k|+ |j − l| Elemente.Die gesuchte Anzahl α stimmt also mit der Anzahl dieser Binar-Vektorenuberein. Berechnen Sie α als Anzahl der Moglichkeiten, die erste 1, danndie zweite 1 usw. im Vektor anzuordnen, unter Berucksichtigung des Um-standes, daß so bestimmte Anordnungen mehrfach gezahlt werden. (4 Pkt)

je 1 fur # waagerechte und # senkrechte links,1 fur Vektor-Lange

1 fur α =

(|i− k|+ |j − l||i− k|

)

Page 234: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 234

30 RST-Klausur WS95

Wiederholer-Klausur Rechner-Strukturen 24.1.96

Name Matrikel

1. Wieso sind die Befehlssatze des MIPS R2000/R3000- oder des DLX-Pro-zessors typisch fur pipeline-Prozessoren?Bewerten Sie in diesem Zusammenhang die DLX-Instruktionsfolge

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

addui r3,r3,(LC0&0xffff)

(4 Pkt)

2. Erweitern Sie den Befehlssatz des Prozessors MIPS R2000 um den shift rightlogical -Befehl, mnemotechnisch srl Rd, Rt, shamt, d.h. Rd=Rt>>shamt, –also den Inhalt von Rt um shift amount shamt (logisch) shiften und dasErgebnis in Rd ablegen – im Befehlsformat 0 Rs Rt Rd shamt 2 .

Skizzieren Sie (in Fig. 5.22, Anlage) die evtl. notwendigen Anderungen/Er-ganzungen im Daten-Pfad und in der Steuerung. Wie sind die Signale zusetzen? (8 Pkt)

3. Gegeben folgende pipeline-Architektur und Kenngroßen der eingesetztensoftware: 1

3= 33.3% der Instruktionen sind Sprunge mit einem NOP im

branch delay slot, 19

= 11.1% der Instruktionen sind Lade-Operationen mitzwei NOPs in den load delay slots. Durch latch times und durch Verschnittin den Stufen werde die Stufen-Zeit um 27% erhoht. Ab wievielen Stufen istder pipelined Prozessor unter genau diesen Bedingungen schneller als derzugehorige ‘non-pipelined’ Prozessor? (4 Pkt)

4. dlxcc erzeugt fur die Schleife for(i=1;i<=n;i++) s+=i; etwa folgendenCode:

addi R3, R0,#1

sw -12(R30), R3

L1: lw R3, -20(R30)

lw R4, -12(R30)

nop

sgt R5, R3,R4

bnez R5, L2

nop

lw R3, -28(R30)

lw R4, -12(R30)

nop

Page 235: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 235

add R5, R3,R4

sw -28(R30), R5

lw R3, -12(R30)

nop

add R3, R3,#1

sw -12(R30), R3

j L1

nop

L2:

Welche Annahmen macht der Compiler (-Bauer) uber den pipeline-Prozes-sor bzgl. forwarding und branching? Kommentieren, erlautern und optimie-ren Sie den Code im Ramen dieser Annahmen fur acht freie Register R3 bisR10. (8 Pkt)

5. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System mitLRU79 auf Wortadressen 12,14,8,9,13,17,18,12,13

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.

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

6. Was spricht – wenn uberhaupt – fur getrennte Befehls- und Daten-caches,was – wenn uberhaupt – dagegen? (4 Pkt)

7. Wie beeinflußt die Seiten-Große ein paging-System?Welcher Aufwand ist fur die Verwaltung von 16KB-Seiten bei 40bit virtu-ellen Adressen und 36bit physikalischen Adressen zu treiben? Die Seiten-Tabelle enthalt dabei je ein valid, protection, dirty und use bit. Wie veran-dert sich der Aufwand bei 64KB Seiten?Wodurch ist die optimale Seitengroße bestimmt?Wie wird der Seiten-Zugriff ublicherweise beschleunigt?Was heißt ‘paging the page table’ und warum wird dieses Verfahren imple-mentiert? (6 Pkt)

(Summe 40 Punkte)

79LRU = least recently used=referenced

Page 236: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 236

Losungen der Wiederholer-Klausur RST 24.1.96

1. Wieso sind die Befehlssatze des MIPS R2000/R3000- oder des DLX-Pro-zessors typisch fur pipeline-Prozessoren?Bewerten Sie in diesem Zusammenhang die DLX-Instruktionsfolge

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

addui r3,r3,(LC0&0xffff)

(4 Pkt)

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

2. Erweitern Sie den Befehlssatz des Prozessors MIPS R2000 um den shift rightlogical -Befehl, mnemotechnisch srl Rd, Rt, shamt, d.h. Rd=Rt>>shamt, –also den Inhalt von Rt um shift amount shamt (logisch) shiften und dasErgebnis in Rd ablegen – im Befehlsformat 0 Rs Rt Rd shamt 2 .

Skizzieren Sie (in Fig. 5.22, Anlage) die evtl. notwendigen Anderungen/Er-ganzungen im Daten-Pfad und in der Steuerung. Wie sind die Signale zusetzen? (8 Pkt)

shamt muß an ALU. (4 Pkt)Bei opcode=0 muß die Steuerung die Signale wie folgt setzen: RegDst=1,branch=0, MemRead=0, MemtoReg=0, ALUop je nach OpCode=0, Mem-Write=0, ALUsrc=0 und RegWrite=1. (je Signal 1/2Pkt, also 4 Pkt)

3. Gegeben folgende pipeline-Architektur und Kenngroßen der eingesetztensoftware: 1

3= 33.3% der Instruktionen sind Sprunge mit einem NOP im

branch delay slot, 19

= 11.1% der Instruktionen sind Lade-Operationen mitzwei NOPs in den load delay slots. Durch latch times und durch Verschnittin den Stufen werde die Stufen-Zeit um 27% erhoht. Ab wievielen Stufen istder pipelined Prozessor unter genau diesen Bedingungen schneller als derzugehorige ‘non-pipelined’ Prozessor? (4 Pkt)

Sei Ti die Zeit fur die Aufuhrung einer Instruktion durch den ‘non-pipelined’Prozessor. Es werden i Instruktionen ausgefuhrt. Der ‘non-pipelined’ Pro-zessor braucht dazu i Ti ZE, also s Ti/s = Ti ZE pro Instruktion.Der pipeline-Prozessor mit s Stufen braucht Ti+(i−1)Ti/s = Ti(1+(i−1)/s)ohne delays und Verschnitt, mit Verschnitt 1.17Ti(1+(i−1)/s) und mit Ver-schnitt und delays 1.17Ti(1+ 1

3(i−1) 2/s+ 1

9(i−1) 3/s+(1− 1

3− 1

9)(i−1)/s) =

1.17Ti(1 + (23

+ 39

+ 1 − 13− 1

9)(i − 1)/s) = Ti

9·13100 (1 + 14

9(i − 1)/s) =

Ti9·13100 (1 + 14

9(i − 1)/s) = 1.17Ti + Ti

182100

(i − 1)/s, also fur i → ∞ eben1.82Ti/s ZE pro Instruktion. Damit ist der pipeline-Prozessor mit mindes-tens zwei Stufen schneller als der ‘non-pipelined’ Prozessor.

4. dlxcc erzeugt fur die Schleife for(i=1;i<=n;i++) s+=i; etwa folgendenCode:

Page 237: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 237

addi R3, R0,#1 ; R3 := 1

sw -12(R30), R3 ; i := 1

L1: lw R3, -20(R30) ; R3 := n

lw R4, -12(R30) ; R4 := i

nop ; load stall

sgt R5, R3,R4 ; R5 := (R3 > R4) =(i>n)

bnez R5, L2 ; if (R5!=0) goto L2

nop ; branch delay slot

lw R3, -28(R30) ; R3 := s

lw R4, -12(R30) ; R4 := i

nop ; load stall

add R5, R3,R4 ; R5 := R3 + R4

sw -28(R30), R5 ; s := R5

lw R3, -12(R30) ; R3 := i

nop ; load stall

add R3, R3,#1 ; R3 := R3 + 1

sw -12(R30), R3 ; i := R3

j L1 ; goto L1

nop ; branch delay slot

L2:

Welche Annahmen macht der Compiler (-Bauer) uber den pipeline-Prozes-sor bzgl. forwarding und branching? Kommentieren, erlautern und optimie-ren Sie den Code im Ramen dieser Annahmen fur acht freie Register R3 bisR10. (8 Pkt)

Der Prozessor hat volles forwarding bis auf einen load stall (arithmetisch/lo-gische Operation mit Quell-Registern, die gerade zuvor geladen wurden)und einen branch delay slot.

addi R3, R0,#1 ; R3 := 1 generell

lw R4, -20(R30) ; R4 := n

lw R5, -28(R30) ; R5 := s

L1: sgt R5, R3,R4 ; R5 := (R3 > R4) =(i>n)

bnez R5, L2 ; if (R5!=0) goto L2

add R5, R5,R3 ; R5+=R3, branch delay slot

j L1 ; goto L1

add R3, R3,#1 ; R3++ im branch delay slot

L2: sub R5, R5,R3 ; aus branch delay slot

sw -28(R30), R5 ; save s

sw -12(R30), R3 ; save i

(6 Pkt)

5. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System mitLRU auf Wortadressen 12,14,8,9,13,17,18,12,13

Page 238: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 238

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

12 14 8 9 13 17 18 12 130 81 9 172 1834 12 125 13 136 147

m m m m m m m m h

also 1 hit

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

12 14 8 9 13 17 18 12 130 (8,9) (8,9) (16,17)1 (18,19)2 (12,13) (12,13) (12,13) (12,13)3 (14,15)

m m m s s m m s||t s||tmit (Adresse/2) mod 4 also 4 hits

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

12 14 8 9 13 17 18 12 13set0 12 12

8set1 9 17

13 13set2 14

18set3

m m m m m m m h hAdresse mod 4 also 2 hits

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

12 14 8 9 13 17 18 12 13set0 (12,13) (12,13) (12,13) (12,13)

(8,9) (8,9) (16,17)set1 (14,15)

(18,19)m m m s s m m s||t s||t

(Adresse/2) mod 2 also 4 hits

Generell ist die Anzahl der hits umso großer, je großer die Blocke und jehoher die Assoziativitat. (6 Pkt)

Page 239: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 239

6. Was spricht – wenn uberhaupt – fur getrennte Befehls- und Daten-caches,was – wenn uberhaupt – dagegen? (4 Pkt)

Geschwindigkeitsvorteil, da cache Verwaltung besser anpaßbargeringerer HW-Aufwand, da i.d.R. in instruction caches nicht geschriebenwird und daher kein write back, write through, kein bus snooping etc. furden instruction cache notwendig ist.

7. Wie beeinflußt die Seiten-Große ein paging-System?Welcher Aufwand ist fur die Verwaltung von 16KB-Seiten bei 40bit virtu-ellen Adressen und 36bit physikalischen Adressen zu treiben? Die Seiten-Tabelle enthalt dabei je ein valid, protection, dirty und use bit. Wie veran-dert sich der Aufwand bei 64KB Seiten?Wodurch ist die optimale Seitengroße bestimmt?Wie wird der Seiten-Zugriff ublicherweise beschleunigt?Was heißt ‘paging the page table’ und warum wird dieses Verfahren imple-mentiert? (6 Pkt)

Wie beeinflußt die Seiten-Große ein paging-System? Einflußfaktoren: jegroßer die Seiten,um so kleiner die Seiten-Tabelle,um so großer die Zeit, einzelne Seiten zu laden, zu verdrangen und zuruck-zuschreiben,um so seltener (abgesehen von Prozeß-Wechseln) mussen Seiten geladen,verdrangt oder zuruckgeschrieben werden,um so großer der interne Verschnitt.(Bei paged segments ....) Alle diese Einflußfaktoren sind bei der Optimie-rung der Seiten-Große zu berucksichtigen.

Welcher Aufwand ist fur die Verwaltung von 16KB-Seiten in einem 1TBgroßen virtuellen Speicher fur 64GB= 236B physikalischen Speicher zu trei-ben. 1TB= 240B virtueller, 64GB= 236B physikalischer Speicher und Seitenmit 16KB= 214B. Die physikalische Seiten-Adresse ist 36− 14 = 22bit lang(frame no). Damit werden 240/214 = 226 = 64M Eintrage in der Seiten-Tabelle (page table) fur die virtuellen Seiten notwendig – mit Eintragen a1 + 1 + 1 + 1 + 22 = 26bit fur valid, protection, dirty, use und frame no. DieSeiten-Tabelle ist daher 26 · 64Mbit = 26 · 8MB = 208MB groß.Im Fall von Seiten a 64KB= 216B hat die Seiten-Tabelle 240/216 = 224 =16M Eintrage a 1 + 1 + 1 + 1 + 20 = 24bit bei 36 − 16 = 20bit frame no.Die Seiten-Tablle ist also 20 · 16Mbit = 20 · 2MB = 40MB groß.

Der Seiten-Zugriff wird ublicherweise durch Einsatz eines, unterschiedlichaufwendig realisierten (Position bzgl. cache, Große, Organisation, d.h. As-soziativitat, Verdrangungsstrategie) TLBs beschleunigt ...

paging the page table unterwirft auch die Seiten-Tabelle dem paging. Vorallem bei großen Seiten-Tabellen in kleinen physikalischen Speichern erhohtsich so der den Anwendungen zur Verfugung stehende physikalische Spei-cher um den Preis, auch Teile der Seiten-Tabelle auslagern und nachladen

Page 240: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 240

zu mussen. Man unterscheide Prozeß-Wechsel und Verhalten des Speicher-Systems innerhalb einer Zeitscheibe ...

Page 241: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 241

31 RST-Klausur SS95 fur I5

Klausur Rechner-Strukturen 6.7.95 I5Name Matrikel

1. Erweitern Sie den Befehlssatz des Prozessors MIPS R2000 um den addimmediate (without overflow)-Befehl, mnemotechnisch addi Rt, Rs,Imm,d.h. Rt=Rs+Imm und mit Befehlsformat 8 Rs Rt Imm . Skizzieren

Sie (in Fig. 5.22) die notwendigen Anderungen/Erganzungen im Daten-Pfadund in der Steuerung (wie sind die Signale zu setzen?). (6 Pkt)

2. Skizzieren Sie die Leistung eines pipeline-Befehlsprozessors (wie MIPS R2000)in Abhangigkeit von der Stufen-Anzahl und erlautern Sie Ihre Skizze. (4 Pkt)

3. Ubersetzen Sie die Anweisungsfolge a:=b*c; d:=e-f+a; in (Pseudo-) Ma-schinen-Sprache. Optimieren Sie den Code fur einen pipeline-Prozessor mitload/store Architektur, 8 Allzweck-Registern und einer Latenzzeit von 1pipeline-Zyklus fur die Verfugbarkeit der Werte in Ziel-Registern von ALU-und load/store-Befehlen. Erlautern Sie Ihre Optimierungsschritte. (8 Pkt)

4. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System mitLRU80 auf Wortadressen 1,4,8,5,20,1,7,4,20,12,21,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.Skizzieren Sie die cache-Belegungen und vergleichen Sie die Ergebnisse mitder jeweils generell zu erwartenden cache-Leistung. (6 Pkt)

5. Erlautern Sie Speicher-Hierarchien als Konsequenz von Lokalitat und tech-nologischen Moglichkeiten. Illustrieren Sie Ihre Ausfuhrungen an den Bei-spielen des Einsatzes von cache-Speichern zwischen Prozessor und Speichersowie des Einsatzes von Festplatten zwischen Speicher und Band-Archiv.

(4 Pkt)

6. Wie beeinflußt die Seiten-Große ein paging-System? Welcher Aufwand istfur die Verwaltung von 8KB- bzw. 16KB-Seiten in einem 4GB großen virtu-ellen Speicher fur 4MB physikalischen Speicher zu treiben. Wodurch ist dieoptimale Seitengroße bestimmt? Wie werden Seiten-Zugriffe ublicherweisebeschleunigt? (4 Pkt)

(Summe 32 Punkte)

80LRU = least recently used=referenced

Page 242: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 242

Losungen der Klausur Rechner-Strukturen 6.7.95 I5

1. Anderungen/Erganzungen im Daten-Pfad sind fur addi nicht notwendig.Bei opcode=8 setzt die Steuerung die Signale wie folgt: RegDst=0 (wie beiload), branch=0, MemRead=0, MemtoReg=0, MemWrite=0, ALUsrc=1 (wie beiload/store) und RegWrite=1 (wie bei arithm./log.). Ebenso muß die Steue-rung ALUop geeignet setzen. (4 Pkt)

2. 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. (4 Pkt)

3. 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

MUL 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 NOOP ;(*)

NOOP ;(*) SW d,Rd

ADD Rd,Rd,Ra

NOOP ;(*)

SW d,Rd ;(*) no forwarding

(6 Pkt)

4. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System mitLRU auf Wortadressen 1,4,8,5,20,1,7,4,20,12,21,13

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

1 4 8 5 20 1 7 4 20 12 21 130 81 1 1234 4 20 4 20 125 5 21 1367 7

m m m m m h m m m m m mAdresse mod 8 also 1 hit

Page 243: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 243

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

1 4 8 5 20 1 7 4 20 12 21 130 (0,1) (8,9) (0,1)12 (4,5) (4,5) (20,21) (4,5) (20,21) (12,13) (20,21) (12,13)3 (6,7)

m m m s m m m m m m m m

mit (Adresse/2) mod 4 also 1 hit

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

1 4 8 5 20 1 7 4 20 12 21 13set0 4 20 20

8 4 12set1 1 1 13

5 21set2

set3 7

m m m m m h m m h m m mAdresse mod 4 also 2 hits

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

1 4 8 5 20 1 7 4 20 12 21 13set0 (0,1) (8,9) (20,21) (4,5) (12,13) (12,13)

(4,5) (4,5) (0,1) (20,21) (20,21)set1 (6,7)

m m m s m m m m m m s s

(Adresse/2) mod 2 also 3 hits

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

5. Erlautern Sie Speicher-Hierarchien als Konsequenz von Lokalitat und tech-nologischen Moglichkeiten. Illustrieren Sie Ihre Ausfuhrungen an den Bei-spielen des Einsatzes von cache-Speichern zwischen Prozessor und Speichersowie des Einsatzes von Festplatten zwischen Speicher und Band-Archiv.(4 Pkt)

6. Wie beeinflußt die Seiten-Große ein paging-System? Welcher Aufwand istfur die Verwaltung von 4KB-Seiten in einem 4GB großen virtuellen Spei-cher fur 4MB= 222B physikalischen Speicher zu treiben. 4GB= 232B und8KB= 213B. Die physikalische Seiten-Adresse ist 9=22-13bit lang (fra-me no). Damit werden 232/213 = 219 = 512K Eintrage in der Seitenta-belle (page table) fur die virtuellen Seiten notwendig – mit Eintragen a11 bit fur valid, dirty, frame no = 1 + 1 + 9. Die Seiten-Tabelle ist da-her 11times512Kbit oder 704B groß. Im Fall von 16KB-Seiten hat die

Page 244: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 244

Seiten-Tabelle 232/214 = 218 = 256K Eintrage a 1 + 1 + 8 =bit bei we-gen 222/214 = 28 also 8bit frame no. Die Seiten-Tablle ist also 10×256Kbitoder 320KB groß.

Der Seiten-Zugriff wird ublicherweise durch Einsatz eines TLB beschleunigt.(4 Pkt)

Page 245: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 245

32 RST-Klausur SS95 fur I7

Klausur Rechner-Strukturen 4.7.95 I7

Name Matrikel

Es sind keine Unterlagen zugelassen!

1. Erweitern Sie den Befehlssatz des MIPS R2000/3000 um den add immediate(with overflow)-Befehl, mnemotechnisch addi Rt, Rs,Imm, d.h. Rt=Rs+Immund mit Befehlsformat 8 Rs Rt Imm .

Skizzieren Sie (in Fig. 5.22) die notwendigen Anderungen/Erganzungen imDaten-Pfad und in der Steuerung (wie sind die Signale zu setzen?). (4 Pkt)

2. Skizzieren Sie graphisch die Leistung eines pipeline-Befehlsprozessors (wieMIPS R2000) in Abhangigkeit von der Stufen-Anzahl und erlautern Sie IhreSkizze. (4 Pkt)

3. dlxcc erzeugt fur die Schleife for(i=1;i<=n;i++) s+=i; etwa folgendenCode:

addi R3, R0,#1

sw -12(R30), R3

L1: lw R3, -20(R30)

lw R4, -12(R30)

sgt R5, R3,R4

bnez R5, L2

nop

lw R3, -28(R30)

lw R4, -12(R30)

add R5, R3,R4

sw -28(R30), R5

lw R3, -12(R30)

add R3, R3,#1

sw -12(R30), R3

j L1

nop

L2:

Welche Annahmen macht der Compiler (-Bauer) uber den pipeline-Prozes-sor bzgl. forwarding und branching? Kommentieren, erlautern und optimie-ren Sie den Code (unter Verwendung derselben Register). (6 Pkt)

Page 246: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 246

4. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System mitLRU81 auf Wortadressen 1,4,8,5,20,1,7,4,20,12,21,13

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

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

5. Erlautern Sie Speicher-Hierarchien als Konsequenz von Lokalitat und tech-nologischen Moglichkeiten. Illustrieren Sie Ihre Ausfuhrungen an den Bei-spielen des Einsatzes von cache-Speichern zwischen Prozessor und Speichersowie des Einsatzes von Festplatten zwischen Speicher und Band-Archiv.

(4 Pkt)

6. Wie beeinflußt die Seiten-Große ein paging-System? Welcher Aufwand istfur die Verwaltung von 4KB- bzw. 8KB-Seiten in einem 4GB großen virtu-ellen Speicher fur 4MB physikalischen Speicher zu treiben? Wodurch ist dieoptimale Seitengroße bestimmt? Wie wird der Seiten-Zugriff ublicherweisebeschleunigt? (4 Pkt)

7. Bestimmen Sie Kommunikationsdurchmesser und Anzahl von Verbindun-gen fur das quadratische Gitter mit insgesamt 22n = (2n)2 Knoten wie furden hypercube mit ebenfalls 22n Knoten fur n ∈ N. (2 Pkt)Interpretieren Sie Ihr Ergebnis hinsichtlich Bedeutung, Aufwand und Kos-ten/Nutzen. (2 Pkt)

(Summe 32 Punkte)

81LRU = least recently used=referenced

Page 247: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 247

Losungen der Klausur Rechner-Strukturen 4.7.95 I7

1. Es sind keine Anderungen/Erganzungen im Daten-Pfad notwendig. Beiopcode=8 muß die Steuerung die Signale wie folgt setzen: RegDst=0 (wiebei load), branch=0, MemRead=0, MemtoReg=0, MemWrite=0, ALUs-rc=1 (wie bei load/store) und RegWrite=1 (wie bei arithm./log.). Ebensomuß die Steuerung ALUop geeignet setzen. (4 Pkt)

2. Die Leistung eines pipeline-Befehlsprozessors steigt zunachst mit zuneh-mender Stufen-Anzahl s, da MIPS ≈ s bzw. CPI ≈ 1/s. Allerdings nehmendann die penalties fur branching, restart of pipeline bei Prozeß-Wechsel, beiexceptions so stark zu, daß sich ein Maximum bei typischerweise 4-5 Stufenergibt. (4 Pkt)

3. dlxcc erzeugt fur die Schleife for(i=1;i<=n;i++) s+=i; etwa folgendenCode:

addi R3, R0,#1 ; R3 := 1

sw -12(R30), R3 ; i := 1

L1: lw R3, -20(R30) ; R3 := n

lw R4, -12(R30) ; R4 := i

sgt R5, R3,R4 ; R5 := (R3 > R4) =(i>n)

bnez R5, L2 ; if (R5!=0) goto L2

nop ; branch delay slot

lw R3, -28(R30) ; R3 := s

lw R4, -12(R30) ; R4 := i

add R5, R3,R4 ; R5 := R3 + R4

sw -28(R30), R5 ; s := R5

lw R3, -12(R30) ; R3 := i

add R3, R3,#1 ; R3 := R3 + 1

sw -12(R30), R3 ; i := R3

j L1 ; goto L1

nop ; branch delay slot

L2:

Der Prozessor hat volles forwarding und einen branch delay slot.

addi R3, R0,#1 ; R3 := i initialisiert

lw R4, -20(R30) ; R4 := n

lw R5, -28(R30) ; R5 := s

L1: sgt R2, R3,R4 ; R2 := (R3 > R4) =(i>n)

bnez R2, L2 ; if (R2!=0) goto L2

add R5, R5,R3 ; R5+=R3, branch delay slot

j L1 ; goto L1

add R3, R3,#1 ; R3++ im branch delay slot

Page 248: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 248

L2: sub R5, R5,R3 ; aus branch delay slot

sw -28(R30), R5 ; save s

sw -12(R30), R3 ; save i

(6 Pkt)

4. Bestimmen Sie hits vs misses beim Zugriff auf ein 8-Wort-cache-System mitLRU auf Wortadressen 1,4,8,5,20,1,7,4,20,12,21,13

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

1 4 8 5 20 1 7 4 20 12 21 130 81 1 1234 4 20 4 20 125 5 21 1367 7

m m m m m h m m m m m mAdresse mod 8 also 1 hit

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

1 4 8 5 20 1 7 4 20 12 21 130 (0,1) (8,9) (0,1)12 (4,5) (4,5) (20,21) (4,5) (20,21) (12,13) (20,21) (12,13)3 (6,7)

m m m s m m m m m m m m

mit (Adresse/2) mod 4 also 1 hit

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

1 4 8 5 20 1 7 4 20 12 21 13set0 4 20 20

8 4 12set1 1 1 13

5 21set2

set3 7

m m m m m h m m h m m mAdresse mod 4 also 2 hits

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

Page 249: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 249

1 4 8 5 20 1 7 4 20 12 21 13set0 (0,1) (8,9) (20,21) (12,13) (12,13)

(4,5) (4,5) (0,1) (4,5) (20,21) (20,21)set1 (6,7)

m m m s m m m m m m s s

(Adresse/2) mod 2 also 3 hits

Generell ist die Anzahl der hits umso großer, je großer die Blocke und jehoher die Assoziativitat. (6 Pkt)

5. Erlautern Sie Speicher-Hierarchien als Konsequenz von Lokalitat und tech-nologischen Moglichkeiten. Illustrieren Sie Ihre Ausfuhrungen an den Bei-spielen des Einsatzes von cache-Speichern zwischen Prozessor und Speichersowie des Einsatzes von Festplatten zwischen Speicher und Band-Archiv.

(4 Pkt)

6. Wie beeinflußt die Seiten-Große ein paging-System? Welcher Aufwand istfur die Verwaltung von 4KB-Seiten in einem 4GB großen virtuellen Spei-cher fur 4MB physikalischen Speicher zu treiben?4GB = 232B, 4MB = 222B und 4KB = 212B. Der virtuelle Speicher hat also4GB/4KB = 1M Seiten. Die physikalische Seiten-Adresse (frame number)ist 10bit = 22bit-12bit lang. Damit werden 232/212 = 220 = 1M Eintragein der Seitentabelle (page table) fur die virtuellen Seiten notwendig – mitEintragen a 12 bit fur valid, dirty, frame no = 1+1+10. Die Seiten-Tabelleist daher 12Mbit=0.75MB groß.Im Fall von 8KB-Seiten hat die Seiten-Tabelle 232/213 = 219 = 512K Ein-trage. Die physikalische Seiten-Adresse (frame number) ist 9bit = 22bit-13bit lang. Jeder Eintrag ist also 11 = 1+1+9 =bit lang. Die Seiten-Tablleist also 11×512Kbit oder 704KB groß.Der Seiten-Zugriff wird ublicherweise durch Einsatz eines TLB beschleu-nigt. (4 Pkt)

7. Bestimmen Sie Kommunikationsdurchmesser und Anzahl von Verbindun-gen fur das quadratische Gitter mit insgesamt 22n = (2n)2 Knoten wie furden hypercube mit ebenfalls 22n Knoten fur n ∈ N. (2 Pkt)Interpretieren Sie Ihr Ergebnis hinsichtlich Bedeutung, Aufwand und Kos-ten/Nutzen. (2 Pkt)

Komm− ∅ #V erbindungenGitter 2 (2n − 1) 2 · 2n(2n − 1)hypercube 2n 1

22n · 22n = n 22n

Das Kosten-zu-Nutzen-Verhaltnis fur das 2n× 2n Gitter ist 2·2n(2n−1)2(2n−1)

= 2n.

Das Kosten-zu-Nutzen-Verhaltnis fur den 2n-hypercube ist n·22n2n

= 22n−1.Das Kosten-zu-Nutzen-Verhaltnis steigt also fur wachsendes n beim hyper-cube viel starker an als beim Gitter.

Page 250: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 250

33 RST-Klausur WS94

Klausur Rechner-Strukturen WS94/95 I8ES

1. Erlautere das pipeline-Prinzip am Beispiel des Multiplizierers fur zwei 8-bit-Integer ohne Vorzeichen (Vorlesung, B&H, p.291-292). Worin bestehtunter Leistungsaspekten der Nutzen, worin bestehen die Kosten? Inwiefernstellt der Multiplizierer eine besondere pipeline dar?Vergleiche die Zeit zur Ausfuhrung von n Multiplikationen durch den Multi-plizierer bei gegebenem T8-bit-adder mit derjenigen durch die pipeline-Versiondes Multiplizierers bei gegebenem Tlatch.

Sei T8-bit-adder = 50ns und Tlatch = 5ns. Wie lang braucht der Multipliziererbzw. die pipeline-Version fur n = 10 Multiplikationen.

Berechne die Mindest-Anzahl von Multiplikationen, ab der sich der Einsatzder pipeline-Version des Multiplizierers auszahlt. (6 Punkte)

2. Charakterisiere die drei prinzipiellen pipeline-Hazards. Gib jeweils (DLX-)Beispiele. Inwiefern lassen sich diese direkt fur multifunktionale pipelinesbzw. fur Multiprozessor-Systeme verallgemeinern?

Eine RISC-Maschine arbeite load/store-Anweisungen in 4 Zyklen (IFD,address, load, WB bzw. IFD, address, get register, store) und operate-Anweisungen in 3 Zyklen (IFD, Ex, WB) ab. Wieviele Zyklen braucht einekonventionelle dann im Gegensatz zur RISC-Maschine bei maximaler Uber-lappung fur die Befehlsfolge load R1,X; sub R1, R1, R2; store X, R1;add R2, R1, R2; ? Skizziere den zeitlichen Ablauf (kein forwarding!).

Wie entstehen Verzweigungs- und Lade-/Speicher-Kosten? Wie konnen die-se Kosten verringert werden? (6 Punkte)

3. Kommentiere die Maxime ¨Je mehr Stufen in einer pipeline, um so mehrLeistung!¨ (2 Punkte)

4. Speicherhierarchie – was, wozu, warum? (2 Punkte)

5. Welchen Umstand nutzen cache-Speicher? Wie wird die entsprechende Gro-ße gemessen? Welche Konsequenzen ergeben sich fur Auslegung und opti-male Nutzung eines cache-Speichers?

Charakterisiere gangige cache-Verwaltungen (Adressierung, Ersetzungsstra-tegie).Beschreibe Vor- und Nachteile gangiger Strategien, Konsistenz oder Koha-renz eines cache-Speichers sicherzustellen. (6 Punkte)

Page 251: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 251

6. Beschreibe und bewerte die verschiedenen Formen der Speicher-Organisa-tion: Verschrankung (high/low order interleave) und virtueller Speicher.

Vergleiche paging mit segmentation. (6 Punkte)

7. Ein Rechner fuhre im Mittel 500K Instruktionen a 4 Bytes (Instruktionund Operanden) aus. Sein Bus habe eine Bandbreite von 5MB/s. WelcheBandbreite bleibt fur DMA-E/A?

Welche E/A-Bandbreite ergibt sich, wenn die CPU im Mittel 2 Instruktio-nen pro Byte E/A ausfuhren muß?

Vergleiche synchrone mit asynchronen Bussen.

Skizziere und erlautere den dezentralen daisy chain arbiter. (6 Punkte)

8. Was fur ein Hazard fur das Bus-System stellt z.B. eine DMA-Einheit dar?Verallgemeinere fur den Fall von Mehrprozessor-Systemen. CharakterisiereAbhilfen. (4 Punkte)

9. Ubersetze a := b + c; d := e− f + a; in (Pseudo-) Maschinen-Sprache undoptimiere den Code fur den pipeline-Prozessor der DLX. Erlautere die dabeigemachten Annahmen uber die pipeline-Architektur. (8 Punkte)

10. Wann sind zwei operate Anweisungen vertauschbar?

Erlautere Methoden, Maschinen-Code fur Rechner mit einem pipeline-Pro-zessor, mit mehreren funktionalen Einheiten oder mit Vektor-Einheiten und-Befehlen zu optimieren.Verwende als Beispiel die in den Referaten vorgestellten Prozessoren.

Gib Beispiele fur die Parallelisierung auf Anweisungsebene. (8 Punkte)

11. Vergleiche CISC- und RISC-Befehlssatze.

Bewerte die Interpretation des Akronyms RISC durch ‘relegate importantstuff to the compiler’. (4 Punkte)

12. Charakterisiere Transputer-Systeme als Mehr-Prozessor-Systeme im Hin-blick auf Programmier-Modell und Kommunikation. (2 Punkte)

(Summe 60 Punkte)

Page 252: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 252

Losungen der Klausur Rechner-Strukturen WS94/95 I8ES

1. 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 pipe-line-Zyklus = Maximum der Zyklen jeder einzelnen Stufe).

nicht pipelined: n 7T8-bit-adder

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

Sei n = 10, T8-bit-adder = 50ns und Tlatch = 5ns. Dann gilt:nicht pipelined: n 7T8-bit-adder = 70 · 50ns = 3.5µspipelined: (7 + n− 1) ∗ (T8-bit-adder + Tlatch) = 16 · 55ns = 0.88µs

Es gilt fur diese Parameter 350n = n 7T8-bit-adder ≥ (7+n−1)∗(T8-bit-adder +Tlatch) = 55(n+ 6) = 55n+ 330 genau dann, wenn n ≥ 330/295 also schonfur n ≥ 2

2. Die drei prinzipiellen pipeline-Hazards sind Struktur- (nicht genugend Ad-dierer fur gleichzeitige Adress-Rechnung und operate ADD; bei nur einemSpeicher-Port nicht gleichzeitig Befehl und Daten holen), Daten- (Ergeb-nisse stehen als Operanden nicht rechtzeitig zur Verfugung) und Steuer-Hazard (Verzweigungsbedingung und Sprung-Ziel stehen nicht rechtzeitigzur Verfugung).Struktur- und Daten-Hazard existieren genauso fur multifunktionale pipe-lines bzw. fur Multiprozessor-Systeme.

load R1,X IFD addr load WBsub R1, R1, R2 IFD Ex WBstore X, R1 IFD addr get storeadd R2, R1, R2 IFD Ex WB

Bei maximaler Uberlappung braucht die konventionelle 14 und die pipeline-Version 8 Zyklen zur Abarbeitung dieser Befehlsfolge.

Verzweigungs-Kosten konne durch branch prediction und Fullen der branchdelay slots, Lade-/Speicher-Kosten durch Fullen der load/store delay slotsverringert werden.

3. je mehr Stufen in einer pipeline, um so hohere Ausgabe-Raten bei gefullterpipeline – aber gleichzeitig um so langere latch times und Fullzeiten, umso hohere Verluste bei flush und um so großerer Aufwand, den Zustand derpipeline bei kontext switch zu retten.

4. Speicherhierarchie (Register, cache, memory, disks, tape) zur Kostenopti-mierung: kleinere, schnellere, teuerere Speicher halten nach Bedarf Kopienvon Daten aus großeren, langsameren, billigeren Speichern.

Page 253: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 253

5. 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, set associati-ve, fully associative; Ersetzungsstrategien: direct mapped, Random, FIFO,LRU.

Konsistenz durch write through; Koharenz durch write back

6. 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

7. 500K Instruktionen a 4 Bytes = 2MB/s; bleiben 5–2 MB/s=3MB/s

Wenn die CPU im Mittel 2 Instruktionen pro Byte E/A ausfuhren muß,ergibt sich eine E/A-Bandbreite von 250KB/s. ???

synchrone Busse sind getaktet, schnell, kurz und verbinden Gerate mitannahernd derselben Bandbreite.asynchrone Busse sind ungetaktet, langsam, lang und verbinden Gerate sehrverschiedener Bandbreiten.

Skizziere und erlautere den dezentralen daisy chain arbiter.

8. Fur das Bus-System stellt eine DMA-Einheit (neben der CPU) wie jedeweitere autonome Einheit am Bus ein Struktur-Hazard dar. Abhilfen sindBus-Protokolle wie CSMA/CD oder Arbitrierung.

9. a := b + c; d := e − f + a; wird wie folgt (rechts in optimierter Version)in Maschinen-Sprache ubersetzt (load Operationen haben eine Latenz-Zeitvon 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

Page 254: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 254

NOOP SUB Rd,Rd,Rf

SUB Rd,Re,Rf SW d,Rd

NOOP // (*)

ADD Rd,Rd,Ra

SW d,Rd (*): no forwarding

10. Wenn die jeweiligen Mengen von Ein- und Ausgabe-Variablen paarweisedisjunkt sind, sind zwei operate Anweisungen vertauschbar.

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.

11. CISC: mehrere Befehlsformte und -Langen, viele Adressierungsarten liefertmachtige Befehle, schwieriger zu pipelinen, jedoch geringerer Befehlsdurch-satzRISC: ein Befehlsformat, wenig Addressierungsarten, load/store liefert sim-ple Befehle, besser zu pipelinen, hoherer Befehlsdurchsatz

RISC als ‘relegate important stuff to the compiler’ ist insofern berechtigt,als optimierende Compiler dafur sorgen mussen, daß die pipeline immer vollist.

12. 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.

Page 255: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 255

34 Anlagen – Arbeitsblatter

34.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–1

1]

Inst

ruct

ion

[20–1

6]

Inst

ruct

ion

[25–2

1]

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–2

6]

4

M

u x

Inst

ruct

ion

[25–0

]Ju

mp

addr

ess

[31–0

]

PC

+4 [31–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

22

62

8

Add

ress

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

Page 256: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 256

34.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–2

1]

Inst

ruct

ion

[20–1

6]

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-2

6]

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

8Shi

ft

left

2

PC

[31-2

8]

1

1M

u x

0 32

M

u x0 1ALU

Out

Mem

ory

Mem

Dat

a

Write

da

ta

Add

ress

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

Page 257: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 257

34.3 Modeling the Main Control

ALU

Src

A =

1

ALU

Src

B =

00

ALU

Op

= 0

1

PC

Write

Con

d PC

Sou

rce

= 0

1

ALU

Src

A =

1

ALU

Src

B =

00

ALU

Op

= 1

0

Reg

Dst

= 1

R

egW

rite

M

emto

Reg

= 0

Mem

Write

Io

rD =

1

Mem

Rea

d Io

rD =

1

ALU

Src

A =

1

ALU

Src

B =

00

ALU

Op

= 0

0

Reg

Write

M

emto

Reg

= 1

R

egD

st =

0

ALU

Src

A =

0

ALU

Src

B =

11

ALU

Op

= 0

0

Mem

Rea

d ALU

Src

A =

0

IorD

= 0

IR

Write

ALU

Src

B =

01

ALU

Op

= 0

0

PC

Write

PC

Sou

rce

= 0

0

Inst

ruct

ion

fetc

hIn

stru

ctio

n de

code

/ R

egis

ter

fetc

h

Jum

p co

mpl

etio

n

Bra

nch

com

plet

ion

Exe

cution

Mem

ory

addr

ess

com

puta

tion Mem

ory

acce

ssM

emor

y ac

cess

R-ty

pe c

ompl

etio

n

Write

-bac

k st

ep (O

p = 'LW

') o

r (O

p = 'SW

')(O

p =

R-ty

pe)

(Op =

'BEQ

')

(Op = 'J')

(Op

= 'SW')

(Op = 'LW')

4

01 9

86

2

71

11

05

3

Sta

rt

(Op =

othe

r)

Ove

rflo

w

Ove

rflo

w

ALU

Src

A =

0

ALU

Src

B =

01

ALU

Op

= 0

1

EPC

Write

PC

Write

PC

Sou

rce

= 1

1

IntC

ause

= 0

C

ause

Write

ALU

Src

A =

0

ALU

Src

B =

01

ALU

Op

= 0

1

EPC

Write

PC

Write

PC

Sou

rce

= 1

1

IntC

ause

= 1

C

ause

WritePC

Write

PC

Sou

rce

= 1

0

81aus COD 2nd edition, Fig. 5.50 p???

Page 258: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 258

34.4 pipeline implementation – ohne hazard detection

PC

Inst

ruct

ion

mem

ory

Instruction

Add

Inst

ruct

ion

[20

–16

]

MemtoReg

ALU

Op

Bra

nch

Reg

Dst

ALU

Src

4

16

32

Inst

ruct

ion

[15

–0]

0

0

M

u x0 1

Add

Add

re

sult

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

Sig

n ex

tend

M

u x 1

ALU

re

sult

Zero

Write

da

ta

Rea

d da

taM

u x1

ALU

co

ntro

l

Shi

ft

left

2

RegWrite

Mem

Rea

d

Con

trol

ALU

Inst

ruct

ion

[15

–11

]

6

EXMWB

MWB

WB

IF/I

D

PC

Src

ID/E

X

EX/

MEM

MEM

/WB

M

u x0 1

MemWrite

Add

ress

Dat

a m

emor

y

Add

ress

81ab WS00/01 aus COD 2nd edition, Fig. 6.30 p???

Page 259: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 259

34.5 pipeline implementation – mit hazard detection

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

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

Page 260: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 260

34.6 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

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

Page 261: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 261

34.7 DLX/MIPS-ISA

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

Befehlstyp/Mnemonic Bedeutung

Datentransport Datentransport zwischen Registern und Speicher oder FKund GK, oder Spezialregistern; Speicher-Addressierungsart:nur GPR + 16 bit Displacement

LB, LBU, SB Laden eines Bytes. Laden vorzeichenlos. SpeichernLH, LHU, SH Laden eines Halbwortes. Laden vorzeichenlos. SpeichernLW, SW Laden/Speichern eines WortesLF, LD, SF, SD Laden von SP-GK. Laden von DP-GK, Speichern von DP-

GK, Speichern von DP-GKMOVF, MOVD Transport vom/zu GPR zu/vom SpezialregisterMOVI2S, MOVS2F Transport eines GK-Registers oder eines DP-Paares zu einem

anderen Register oder PaarMOVFP2I, MOVI2FP Transport von 32 Bit von/zu GK- zu/von FK-Registern

arithmetisch/logisch Operationen auf integer oder logischen Daten in GPRs vor-zeichenbehafteter Arithmetik-Trap bei Uberlauf

ADD, ADDI, ADDU, ADDUI Addition, Addition mit Immediate (Immediates sind 16 Bit);mit/ohne Vorzeichen

SUB, SUBI, SUBU, SUBUI Subtraktion, Subtraktion Immediate; mit und ohne Vorzei-chen

MULT, MULTU, DIV, DIVU Multiplikation und Division, mit/ohne VorzeichenAND, 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

Schieben: shamt im Immediate (S I) und in Variablen (S );Schieben: links logisch, rechts logisch. rechts arithmetisch

S , S I Vergleich & Setzen; ∈ LT, GT, LE, GE, EQ, NE Steuerung Bedingte Verzweigungen und Sprunge; PC-relativ oder mit

Register

BEQZ, BNEZ Verzweigen bei GPR gleich bzw. ungleich Null; 16-Bit-Offsetvon PC+4

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

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

TRAP Ubergang zum OS bei einer vektorisierten AdresseRFE Ruckkehr zum Nutzercode von einer Ausnahme; Ruckspei-

cherung des Nutzer-Modus;

float operations arithmetische Operationen auf SP & DP Operanden

Page 262: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Index

µ-Controller, 91, 108µ-Programm, 29µ-program, 4, 98, 108, 118, 157, 1681-assoziativ, siehe direct mapped cache64bit computing, 19

Akkumulator-Architektur, 48AMD, 48, 118

Opteron, 118ARM, 168

branch prediction, 168ISA, 38SWP, 48SWPB, 48

assembler, 10, 19, 30assoziativ, siehe cache

BAPCo SYSmark, 48Befehl, siehe DLX oder MIPS

Format, 147load immediate, 133Pseudo-, 4, 98, 141

Befehlssatz, siehe instruction set, sieheISA

benchmark, 39, 48Linpack, 39SPECfp, 39

Beschleunigungsfaktor, 176, 177, 184, 185,191, 205, 211, 217, 218

branch delay slot, 78branching

MicroChipPIC24FJ128GC010 Family, 19, 21,

29, 31bus, 251

arbiter, 251asynchrone, 251daisy chain, 251hazard, 251synchrone, 251

cache, 78, 1191st level, 922nd level, 92

1-assoziativ, 11, 19, 30, 48, 522-assoziativ, 39Assoziativitat, 86copy back, 11, 19, 30data, 4, 235direct mapped, 48, 52, 142dirty bit, 148fetch on write, 11, 19, 30first level, 142hierarchy, 92I-cache, 48, 52instruction, 4, 78, 81, 235line, 148local, 39, 148miss, 86physically indexed, 109, 116, 169,

185second level, 142shared, 39, 119thrashing, 86victim-, 92virtually indexed, 4, 109, 116, 119,

169, 185write around, 11, 19, 30

caching, 126, 133, 168, 205, 250coherence, 250consistence, 250fetch on write, 57, 69, 99, 109, 119,

148, 158LRU, 147, 184, 191, 198, 205, 212,

217, 224, 229, 235MESI, 205miss penalty, 142miss rate, 142read, 56, 68, 98, 108, 119, 126, 147,

157, 169, 176, 184, 191, 198, 205,212, 217, 224, 229, 235, 241, 246

write, 57, 69, 99, 109, 119, 126, 148,158, 169, 177

write around, 57, 69, 99, 109, 119,148, 158

write back, 57, 69, 99, 109, 119, 148,158

262

Page 263: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 263

CISC, 19, 21, 29, 31, 211, 251code

loop, 228, 245unfolding, 211, 228unrolling, 211, 228

Optimierung, 223Compiler, 133, 234conditional move, 56, 68Control, 108, 110

µ-Programm, 4, 29, 98, 108, 118,168

DAG, siehe Parallelisierung, DAGDECStation 3100, 185delayed branch, 78direct mapped, siehe cachedirected acyclic graph, siehe Paralleli-

sierung, DAGDLX, 177, 205, 234, 251

abs, 19, 29addi, 241, 245addiu, 223addui, 234andi, 168assembler, 10, 19, 30auto decrement, 126, 191auto increment, 126, 191bcp, 157, 176bcpv, 176BEQnottaken, 85BEQtaken, 85bgez, 78, 80bltz, 78bnez, 198bzad, 198bzai, 198cswap, 38ISA, 126, 198jal, 211, 228jalr, 4, 108jr, 147ld, 217lhi, 56, 91, 133, 141, 234lwad, 126lwai, 126, 191

mac, 91movz, 56, 68mult, 205ori, 184pipeline, 234pipelining, 250quorem, 10s , 198sd, 98set, s , 10set, seq, 10set, sge, 10set, sgt, 10set, sle, 10set, slt, 10set, sne, 10slti, 118srav, 176subi, 118swap, 48

DMA, 251dual core, 119

float-Arithmetik, 91fully associative, siehe cachefunctional units, 251

Gauß-Eliminationsverfahren, 5, 127, 134,142

back substitution, 127, 134Gauß-Jordan-Verfahren, 5, 134, 142

hypercube, 134

implementation, 10, 19, 29, 38, 48, 56,68, 78, 85, 98, 118, 157, 168,176, 184, 205, 211, 217, 223, 228,234

multi cycle, 4, 48, 68, 91, 98, 108,118, 141, 157, 168, 176, 191, 198,205, 211

multicycle, 10, 29pipeline, 19, 38, 56, 78, 91, 147, 157,

176, 184, 191, 198, 217, 228pipelining, 91, 98

Page 264: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 264

single cycle, 91, 157, 176, 191, 198,211

super scalar, 11superscalar, 49, 57, 85, 133

instruction set, siehe Befehlssatzinstruction set architecture, siehe ISAInstruktion, siehe DLX oder MIPS

Format, 147load immediate, 133Pseudo-, 4, 10, 141test and set, 157

Intel 80x86, 48, 118, 168, 205µOps, 3880386, 192, 217AVX, 38BMI, 38Dual Core, 118FMA, 38Haswell, 38HLE, 38ISA, 217ISSE, 192MMU, 78MMX, 192, 211, 217Pentium, 211, 223, 228Pentium 4E, 141pipeline burst cache, 228SSE, 192XCHG, 48XEON, 118

ISA, siehe instruction set architecture,78, 91, 157, 168, 176, 198, 205,211, 217, 223, 251

load/store, 205, 223, 241, 250MicroChip

PIC24FJ128GC010 Family, 19, 21,29, 31

tas, 157ISA, highly orthogonal

MicroChipPIC24FJ128GC010 Family, 19, 21,

29, 31

Latenz, 217, 241Leistung, 4, 10, 184, 223, 228, 250

64bit computing, 19pipelining, 241, 245

Leistungsmessung, 4, 10loop

unfolding, 211unrolling, 211

memory, siehe Speicher, 4, 119, 134, 158,169, 199, 205, 217, 224, 235, 250,251

access, 142Anbindung, 168banks, 177

interleave, 251low level interleaving, 177Verschrankung, 177

frame, 127global, 99, 109, 127hierarchy, 241, 246, 250

cache, 241, 246disk, 246disks, 241tape, 241, 246

LRDIMM, 39management, 168

Programm ausfuhren, 192Programm laden, 192

page, 127page size, 199, 224, 235, 241, 246page table, 92, 134, 158, 235

dirty, 158, 235protection, 158, 235use, 158, 235valid, 158, 235

paged segments, 4, 69, 78, 86, 119,169, 205, 217

paging, 11, 20, 30, 48, 69, 78, 86, 92,99, 134, 158, 192, 224, 235, 241,246, 251

FIFO, 11LRU, 11paging the page table, 235thrashing, 92

physical, 92, 127, 134physical address, 20, 30

Page 265: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 265

RDIMM, 39segmentation, 20, 69, 78, 86, 109,

116, 148, 192, 251best fit, 148first fit, 148worst fit, 148

TLB, 4, 119, 169, 185, 205, 217, 235,241, 246

virtual, 11, 20, 30, 92, 185, 199, 251virtual address, 20, 30

MicroChipPIC24FJ128GC010 Family, 19, 21,

29, 31branching, 19, 21, 29, 31ISA, 19, 21, 29, 31ISA, highly orthogonal, 19, 21, 29,

31Register, 19, 21, 29, 31Register-Architektur, 19, 21, 29,

31MIPS, 168, 177, 205, 217, 234

abs, 19, 29addi, 241, 245addiu, 223addui, 234andi, 168assembler, 10, 19, 30auto decrement, 126, 191auto increment, 126, 191b , 198b z, 198bcp, 157, 176bcpv, 176BEQnottaken, 85BEQtaken, 85bgez, 78, 80bltz, 78branch prediction, 168bzad, 198bzai, 198cmov, 168cswap, 38ISA, 126, 198jal, 211, 228jalr, 4, 108

jr, 147ld, 217lui, 56, 91, 133, 141, 234lwad, 126lwai, 126, 191mac, 91movz, 56, 68mult, 205ori, 184pipeline, 245quorem, 10R8000, 168s , 198sd, 98set, s , 10set, seq, 10set, sge, 10set, sgt, 10set, sle, 10set, slt, 10set, sne, 10slti, 118srav, 176srl, 234subi, 118swap, 48

MMIX, 85multi computer system, 177multi core, 119multi processor system, 148, 169, 177,

185, 199, 212, 218, 224, 229, 251Auslastung, 218communication, 199, 212, 251

bandwidth, 199bisection bandwidth, 199diameter, 86, 199, 224, 246

Fehlertoleranz, 177, 229global memory, 148interconnection, 92, 169, 177, 185,

212, 224bus, 169crossbar, 99, 127, 158grid, 169, 224hypercube, 99, 127, 169, 224omega, 158

Page 266: Computer-Architektur/Rechner-Strukturen Alte Klausuren mit ... · Th. Risse, HSB: CompArch { Klausuren 2 11 RST-Klausur SS08 91 12 RST-Klausur WS07 98 13 RST-Klausur SS07 108 14 RST-Klausur

Th. Risse, HSB: CompArch – Klausuren 266

ring, 169switch, 158torus, 169

local memory, 148pipelining, 250Skalierbarkeit, 177speed up, 177torus, 86Verbindungsstruktur, 148

Multiprozessorfahigkeit, 168

paged segments, siehe memorypaging, siehe memoryparallel processing, 5, 127, 134, 142, 148Parallelisierbarkeit, 205Parallelisierung, 57, 69, 79, 185, 218, 251

algebraische Ausdrucke, 86Auflosen, 185, 218Aufsummieren, 127DAG, 20, 30, 39, 57, 69, 79Effizienz, 86Gauß-Verfahren, 92Horner, 30Maximieren, 99Minimum, 20Sortieren, 109speedup, 86subtasks, 57, 69, 79Triagonalisieren, 218

performance, 4, 10pipeline, 184, 223, 234, 251

branching, 234, 245forwarding, 56, 245Latenz, 234Stufen, 184, 223, 228, 234, 241, 245

pipelining, 79, 168, 205, 217, 223, 234,250, 251

branch prediction, 141, 147forwarding, 79, 205, 234generisch, 205hazard, 250multi functional, 250Multiplizierer, 250Sprung-Vorhersage, 141, 147Stufen, 141

superscalar, 127processor

Aufbau, 168functional units, 142pipelining, 5, 142superscalar, 127Typ, 168

Programmausfuhren, siehe memoryladen, siehe memory

Pseudo-Instruktion, 4, 98, 141

RegisterMicroChip

PIC24FJ128GC010 Family, 19, 21,29, 31

register, 184, 223window, 184

Register-ArchitekturMicroChip

PIC24FJ128GC010 Family, 19, 21,29, 31

RISC, 19, 21, 29, 31, 205, 211, 217, 250,251

RISC I, 184

Schleifen, 211segmentation, siehe memoryset associative, siehe cachesingle instruction computer, SIC, 98Speicher, siehe memory

global, 99, 127Steuereinheit, 108, 110SUN SPARC, 168, 184

TLB, siehe memoryTransputer, 251

Verbindungsstruktur, siehe multi pro-cessor system

voll assoziativ, siehe cache