Lehrveranstaltung: PR Rechnerorganisation Blatt 10. Thomas Aichholzer

Größe: px
Ab Seite anzeigen:

Download "Lehrveranstaltung: PR Rechnerorganisation Blatt 10. Thomas Aichholzer"

Transkript

1 Aufgabe 10.1 Gegeben sei folgendes Code-Fragment, das zwei geschachtelte Schleifen implementiert: addi $t0, $a0, 100 outer: addi $t1, $a1, 200 inner: lw $t4, 0($t0) lw $t5, 0($t1) add $t2, $t0, $t1 add $t2, $t2, $a2 slt $t6, $t4, $t5 addi $t1, $t1, -1 sw $t6, 0($t2) bne $t1, $a1, inner addi $t0, $t0, -1 bne $t0, $a0, outer a. Wie viele Taktzyklen benötigt dieses Code-Fragment bei der Ausführung in der Beispiel- Pipeline (siehe Folie 4-36), wenn weder Delayed Branching noch Branch Prediction implementiert sind? b. Wie viele Taktzyklen werden benötigt, wenn eine 1-Bit Branch History Tabelle (BHT) implementiert ist?? c. Wie viele Taktzyklen werden benötigt, wenn eine 2-Bit BHT gemäß Folie 4-29 der Vorlesung implementiert ist? Quellcodeanalyse und Datenabhängigkeiten: addi $t0, $a0, 100 # t0 = a outer: addi $t1, $a1, 200 # t1 = a inner: lw $t4, 0($t0) # t4 = MEM[t0] lw $t5, 0($t1) # t5 = MEM[t1] add $t2, $t0, $t1 # (t2 = t0 + t1) add $t2, $t2, $a2 # t2 = t0 + t1 + a2 slt $t6, $t4, $t5 # t4 < t5? t6 = 1 : t6 = 0 addi $t1, $t1, -1 # t1 -= 1 sw $t6, 0($t2) # MEM[t2] = t6 bne $t1, $a1, inner # goto inner if( t1 a1) addi $t0, $t0, -1 # t0 -= 1 bne $t0, $a0, outer # goto outer if( t0 a0) Es treten keine Datenabhängigkeiten zwischen den einzelnen Befehlen auf die Stalls verursachen würden. (Ausnahme Branch Operationen) ad a) 1 Stall 1 Stall Wartezeiten zwischen Abhängigkeiten (Stalls) Integer OP Integer OP 0 Load Integer Integer OP 1 Branch 1 siehe Vorlesungsunterlagen (4-36) Wenn keine Branch Prediction sonstige Techniken zur Control Hazard Vermeidung eingesetzt werden benötigt die inner Schleife pro Schleifenzyklus 9 Takte. Diese Schleife wird 200 abgearbeitet, daher werden Takte benötigt (200 9). Seite 1

2 Die äußere Schleife (outer) wird 100 durchgeführt und eine Schleifeniteration benötigt die Anzahl der Takte für die inner Schleife plus die 3 Takte für weiteren 3 Befehle der Schleife, sowie einen zusätzlichen Stall Takt der durch den Branch (Not Equal) entsteht. Das bedeutet die äußere Schleife benötigt ( ) 100 = Takte. Die Initialisierung am Anfang für Register $t0 benötigt auch noch einen Takt, und somit benötigt das gesamte Codefragment Taktzyklen. ad b) Nun wird eine 1 Bit Branch History Tabelle angelegt um bedingte Sprünge vorherzusagen. Es wird hierbei der alte Programmzähler (PC) gespeichert. Um das ganze einfacher zu handhaben spricht man von 2 Zuständen: Branch Taken bzw. Branch Not Taken. Bei Start eines Codefragmentes wird auf einen Defaultwert zurück gegriffen, der hier günstigerweise als Branch Taken definiert werden kann. Sollte die Prediction (Sprungvorhersage) falsch sein, wird der nachfolgende Befehl in der Pipeline ungültig gemacht und die Branch History Tabelle überschrieben (bei Taken auf Branch Not Taken). Um sich eine solche Berechnung leicht durchzuführen kann folgende Notation verwendet werden: Outerschleife (100) Daher ergibt sich für die äußere Schleife eine Anzahl von Taktzyklen von: = ( 1) = = Schließlich wird noch der Initialisierungsschritt dazugezählt, was bedeutet, dass das gesamte Codefragment Taktzyklen benötigt. ad c) ( ) + 3 = 1604 Ausdruck in der Klammer ist Anzahl der Taktzyklen der inneren Schleife Default: Branch Taken Innerschleife (200) ( ) + 3 = Bild ( ) = 1606 Takte pro Schleifendurchlauf durch 1 Bit BHT Nun wird eine 2 Bit Branch History Tabelle verwendet. Dies bedeutet, das es zum Vergleich zu der 1 Bit Branch History Tabelle 2 weitere Zustände gibt Stärkeres Branch Taken Branch Taken Branch Not Taken Branch Taken Bild Seite 2 Branch Not Taken Stärkeres Branch Not Taken

3 Dieser Zustandsgraph hat 4 Zustände. Die 4 Zustände speichern jeweils ein Branch Taken bzw. Branch Not Taken. Die Übergänge (grün für Branch Taken, rot für Branch Not Taken) kennzeichnen was passiert, wenn ein Branch ausgeführt wird. Befindet sich der Graph im linken oberen Bild, so wird bei einem Branch Not Taken (roter Pfeil) in den Zustand links unten gewechselt. Der neue Zustand würde einen Branch Taken machen, jedoch bei einem weiteren Branch Not Taken auf den Zustand rechts unten übergehen und bei einem weiteren Branch Not Taken ausführen. Kurz gesagt gibt es zwei Zustände die, bei denen man grob sagen kann, ist man ein in einem der beiden, dann muss die Sprungbedingung 2 falsch vorgehgesagt werden, um die Sprungvorhersage zu ändern (stärkerer Zustand). Daher ergibt sich für unsere Notation mit Defaultzustand Branch Taken (in diesem Fall egal ob stärkerer oder schwächerer Zustand) folgendes Bild: Outerschleife (100) ( ) + 3 = 1604 Ausdruck in der Klammer ist Anzahl der Taktzyklen der inneren Schleife Default: Branch Taken Innerschleife (200) ( ) + 3 = Bild ( ) = 1606 Takte pro Schleifendurchlauf durch 1 Bit BHT Es ergibt sich hier für die äußere Schleife folgende Anzahl von Taktzyklen: = = Mit Initialisierungsschritt benötigt daher dieses Codefragment Taktzyklen. Bemerkung: Die Annahme des Defaulteintrages in der Branch History Tabelle kann willkürlich gewählt werden, muss aber dann für die Berechnung angeführt werden. In diesem Fall wurde als Defaulteintrag immer Branch Taken genommen. Es hätte auch Branch Not Taken genommen werden können, und für die 2 Bit BHT hätte auch eine Unterscheidung zwischen starken bzw. schwächeren Zustand des Branch Not Taken dann erfolgen müssen Seite 3

4 Aufgabe 10.2 Wenden Sie auf das folgende Code-Fragment die Methode des Software Pipelining an, um die Ausführungszeit auf der Beispiel-Pipeline zu verkürzen. Die Initialisierung der Register $t0, $f28 und $f30 ist nicht angeführt. Nehmen Sie an, dass die Hardware Branch Prediction implementiert. Codebeschreibung: loop: l.d $f0, 0($t0) # f0 = MEM[t0] add.d $f2, $f0, $f30 # f2 = f0 + f30 addi $t0, $t0, -8 # t0 -= 8 s.d $f2, 8($t0) # MEM[t0+8] = f2 # f28 += f2 bnez $t0, loop # goto loop if(t0 0) a. Wie viele Takte pro Ergebniselement werden für die Ausführung des gegebenen Code- Fragments in der Beispiel-Pipeline benötigt? b. Wie viele Takte pro Ergebniselement werden für die Ausführung des durch Software Pipelining optimierten Codes auf derselben Hardware benötigt? Datenabhängigkeiten: loop: l.d $f0, 0($t0) 1 Stall add.d $f2, $f0, $f30 addi $t0, $t0, -8 1 Stall s.d $f2, 8($t0) 3 Stall bnez $t0, loop ad a) Bei Verwendung einer Branch Prediction wird die Anzahl der Takte pro Ergebniselement ca. 8 Takte umfassen (6 Befehle + 2 Stalls). Bei hoher Anzahl von Schleifeniterationen wirkt sich ein Stall durch eine Fehlvorhersage kaum aus. ad b) Für Software Pipelining werden direkte Daten Abhängigkeiten die auftreten in der Pipeline umgeschichtet, sodass es keine Stalls zwischen den einzelnen Befehlen gibt. Durch umordnen des Codes erhält man folgendes Codefragment, welches sich in 3 Blöcke unterteilen lässt, die jeweils Datenabhängigkeiten zum Nachfolgerblock aufweisen: loop: l.d $f0, 0($t0) # Block #1 Abhängigkeit: $f0 add.d $f2, $f0, $f30 # Block #2 Abhängigkeit: $f2 s.d $f2, 0($t0) # Block #3 addi $t0, $t0, -8 bnez $t0, loop Wartezeiten zwischen Abhängigkeiten (Stalls) FP. ALU OP FP. ALU OP 3 FP. ALU OP Store FP. double 2 Load FP. double FP. ALU OP 1 Load FP. double Store FP. double 0 Branch 1 siehe Vorlesungsunterlagen (4-36) Seite 4

5 Diese 3 Blöcke werden nun in eine Software Pipeline verpackt: 1. Schleifendurchgang 2. Schleifendurchgang 3. Schleifendurchgang l.d $f0, 0($t0) Startup Code add.d $f2, $f0, $f30 l.d $f0, 0($t0) s.d $f2, 16($t0) add.d $f2, $f0, $f30 l.d $f0, 0($t0) s.d $f2, 16($t0) add.d $f2, $f0, $f30 s.d $f2, 16($t0) Tabelle Dies ist ein Ansatz wie man Software Pipelining machen könnte (siehe Tabelle ). Um eine solche Pipeline zum Laufen zu bringen benötigt man einen Startup Code (rot), sowie am Ende einen Widedown Code. Im diesen beiden Codeteilen können Stalls auftreten, jedoch innerhalb der Software Pipeline ist jede Pipelinestufe gefüllt (keine Stalls). Startup und Wide down Code 1 Stall Startup Code l.d $f0, 0($t0) add.d $f2, $f0, $f30 l.d $f0, -8($t0) 2 Stall Wide down Code s.d $f2, 0($t0) add.d $f2, $f0, $f30 s.d $f2, -8($t0) Offsets müssen dementsprechend korrigiert werden! (Startoffset beginnt bei 0) weitere Möglichkeit zur Software Pipeline zu gelangen 1. Pipelinestufe Um an eine Software Pipeline zu kommen muss zuerst die Anzahl der von einander abhängigen Blöcke ermittelt werden. In unserem Beispiel gibt es 3 Blöcke! Deshalb wird der Code 3 abgerollt und nach folgendem System in die Pipeline eingeordnet: Der erste Block in der Software Pipeline, ist der erste Block aus dem letzen Teil der abgerollten Schleife. Der zweite Block der Software Pipeline ist der 2. Block des vorletzten Teils der abgerollten Schleife, und so fort. Schließlich setzt sich der letzte Block der Software Pipeline aus dem letzten Block des ersten Teils der abgerollten Schleife zusammen. Seite 5

6 Folgende Tabelle veranschaulicht diesen Vorgang: 3 abgerollt l.d $f0, 0($t0) add.d $f2, $f0, $f30 s.d $f2, 0($t0) l.d $f0, -8($t0) add.d $f2, $f0, $f30 s.d $f2, -8($t0) l.d $f0, -16($t0) add.d $f2, $f0, $f30 s.d $f2, -16($t0) 1. Teil 2. Teil 3. Teil addi $t0, $t0, -24 # (-8) 4 bnez $t0, loop Tabelle Software Pipeline Startup Code s.d $f2, 0($t0) add.d $f2, $f0, $f30 l.d $f0, -16($t0) # Schleifenoverhead addi $t0, $t0, -8 bgti $t0, 16, loop Wide down Code Da keine Stalls innerhalb einer Software Pipeline auftreten, werden 6 Taktzyklen pro Ergebnis Element benötigt! Anmerkung: Da die Offsets innerhalb der Software Pipeline über eine größere Spanne (0-16) gehen muss die Branchbedingung geändert werden: bnez $t0, loop bgti $t0, 16, loop Pipeline Seite 6

7 Aufgabe 10.3 Gegeben sei eine Rechnerarchitektur mit 3 Speicherebenen laut untenstehender Tabelle, welche die durchschnittliche Hitrate und die Verzögerung im Fall eines erfolgreichen Zugriffs auf die jeweilige Speicherebene angibt. Der durchschnittliche CPI - Wert ohne Berücksichtigung der Speicherzugriffe betrage 1,2. Nehmen Sie an, dass im Schnitt 10 % aller Instruktionen auf den Speicher zugreifen. a. Berechnen Sie den durchschnittlichen CPI - Wert der vorgestellten Architektur mit Berücksichtigung der Speicherzugriffe. Wie viel Prozent seiner Ausführungszeit verschwendet der Prozessor mit Stalls? b. Um welchen Prozentsatz würde sich der CPI - Wert verbessern, wenn ein 3rd Level Cache mit einer Hitrate von 99 Prozent und 15 Taktzyklen Zugriffszeit eingeführt würde? ad a) Idealer CPI Wert ist laut Angabe 1,2. 10 % der Operationen sind Zugriffe auf den Speicher. Von diesen 10 % sind 94 % Zugriffe auf L1 Cache und kosten 2 Zyklen, daher ergibt sich: 0,1 0,94 2 = 0,188 Die restlichen 6 % der 10 % verteilen sich auf L2 Cache und Hauptspeicher. Wobei 94 % (von den 6% der 10%) in L2 Cache stattfinden und 4 Zyklen dafür benötigt. (0,1 0,06) 0,94 4 = 0,02256 Der Rest ist Zugriff auf den Hauptspeicher, kostet den Prozess 100 Zyklen: (0,1 0,06) 0, = 0,036 Tatsächlicher CPI Wert 1,2 + (0, , ,036) = 1,2 + 0,24656 = 1,44656 Prozentsatz der Verschwendung durch Stalls 0,24656 / 1,44656 = 0, ( ~ 17 %) ad b) Es wird ein L3 Cache eingefügt, daher ändert sich für die Berechnungen von L1 und L2 Caches nichts. Zugriffe auf den L3 Cache (99 %), kosten 15 Zyklen: (0,1 0,06) 0,06 0,99 15 = 0, Rest der Zugriffe geht auf den Hauptspeicher (Kosten: 100 Zyklen): (0,1 0,06) 0,06 0, = 0,00036 Tatsächlicher CPI Wert 1,2 + (0, , , ,00036) = 1,2 + 0, = 1, Verbesserung des CPI Wertes 1, , Speicher Hitrate [%] Delay in Clockcycles 1st Level Cache nd Level Cache 94 4 Hauptspeicher = 1, ~ 2 % besser Seite 7

8 Aufgabe 10.4 Die Rechnerarchitektur von Aufgabe 10.3 b) werde um eine weitere Speicherebene (Swap File auf Festplatte) laut untenstehender Tabelle erweitert. Wie verändert sich der CPI - Wert gegenüber 10.3 a) bzw. b)? CPI Straf Werte aus 10.3 übernommen: L1 Cache: 0,188 L2 Cache: 0,02256 L3 Cache: 0, Für Hauptspeicher müssen die Strafwerte neu berechnet werden, da sich bis L3 Cache nichts ändert. Zugriffe 99,5% aus der Wahrscheinlichkeit von 0,00036 % ( = 6 % 6 % 1 % 10 %). Diese Wahrscheinlichkeit ergibt sich aus dem Wahrscheinlichkeitsprodukt der einzelnen Wahrscheinlichkeiten in jedem übergeordneten Speicherlevel einen Cache Miss zu erzielen. (Cache Miss Rate = 1 Hitrate). Es ergibt sich daher ein durchschnittlicher (CPI) Strafwert (für eine Verzögerung von 100): (0,06 0,06 0,01 0,1) 0, = 0, Die restlichen 0,5 % Zugriffe der 0,00036 %, die als Misswahrscheinlichkeit auftreten könnte, geschieht auf dem Swap File, und kostet Zyklen: (0,06 0,06 0,01 0,1) 0, = 0,18 Tatsächlicher CPI Wert 1,2 + (0, , , , ,18) = 1,2 + 0, = 1, Verschlechterung zu 10 a) und 10 b) 10 a) hatte einen CPI von 1,44656 Verschlechterung: 1, = 1, ( ~ 10,3 %) 1, b) hatte einen CPI von 1, Speicher Hitrate [%] Delay in Clockcycles 1st Level Cache nd Level Cache rd Level Cache Hauptspeicher 99,5 100 Swap File , = 1, ( ~ 12,7 %) 1, Seite 8

9 Aufgabe 10.5 Gegeben sei folgendes C-Code-Fragment: int a[8]; int b[8]; int c; int i; c=0; for( i=0; i<8; i+=2) c=a[i]+b[6-i]; a. Berechnen Sie die Folge der Speicheradressen, die aufgrund von Datenzugriffen durch das gegebene Programmfragment generiert werden. Nehmen Sie an, dass c und i in Registern gehalten werden und nicht aus dem Speicher geladen werden. Nehmen Sie an, dass die Startadresse von a auf der Adresse 0 liegt, dass alle Variablen und Arrays in der angegebenen Reihenfolge aufsteigend und lückenlos im Speicher angelegt werden und in der Berechnung zuerst auf a und dann auf b zugegriffen wird. b. Nehmen Sie einen direkt abbildenden Cache (initial leer) mit 32 1-Wort-Blöcken an (1 Wort = 4 Bytes = 1 Integer). Kennzeichnen Sie jeden der Zugriffe als Hit oder Miss und geben Sie den Cache-Inhalt nach Ausführung des letzten Befehls an. (Dazu müssen Sie natürlich die durch den Referenzstrom entstehende Entwicklung des Cache-Inhaltes protokollieren.) c. wie a) für einen direkt abbildenden Cache gleicher Größe (32 Worte), aber 8-Wort- Blöcken. d. wie a) für einen vollassoziativen Cache gleicher Größe und 1-Wort-Blöcken. Nehmen Sie zusätzlich eine LRU - Ersetzungsstrategie für die Cache - Blöcke an. e. Wie c) für einen vollassoziativen Cache gleicher Größe und 8-Wort-Blöcken. f. Wie c)für einen 2-fach satz-assoziativen Cache gleicher Größe und 1-Wort-Blöcken. g. Wie c)für einen 2-fach satz-assoziativen Cache gleicher Größe und 4-Wort-Blöcken. ad a) Variable a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] b[0] b[1] b[2] b[3] b[4] b[5] b[6] b[7] RAM Adr ad b) Ablauf des C Codes: for( i=0; i<8; i+=2) c=a[i]+b[6-i]; i läuft von 0 bis 6 und zwar in 4 Schritten. Im ersten Schritt (i=0) wird auf a[0] und b[6] zugegriffen. Im zweiten Schritt (i=2) wird auf a[2] und b[4] zugegriffen. Im dritten Schritt (i=4) wird auf a[4] und b[2] zugegriffen. Im vierten Schritt (i=6) wird auf a[6] und b[0] zugegriffen. Wir verwenden einen Direct Mapped Cache mit 32 1-Wortblöcken: Seite 9

10 In jeden dieser Blöcke passt daher genau ein Wort (ein Integer z.b. a[i]). Daraus ergibt sich daher folgendes Abbild: Block Inhalt a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] b[0] b[1] b[2] b[3] b[4] b[5] b[6] b[7] Block Inhalt Blöcke 16 bis 31 werden daher gar nicht benötigt! Im ersten Schritt wird versucht a[0] aus dem Cache zuladen. Da der Cache kein a[0] enthält gibt es einen Cache Miss. a[0] wird daher in den Cache geladen. Das gleiche passiert mit b[6] im ersten Schritt. Der Prozessor sucht b[6] im Block 14 die Folge Cache Miss und b[6] muss in den Speicher geladen werden. Im zweiten bis vierten Schritt ändert sich hierbei nichts. Es gibt bei jedem Versuch auf den Cache benötigte Daten zu finden einen Cache Miss. Alle Daten müssen daher vom Hauptspeicher geholt werden. Die Missrate ist daher 100 % ad c) Wir verwenden einen Direct Mapped Cache mit gleicher Größe aber 8-Wortblöcken: Es gibt daher 4 Blöcke: In jeden dieser Blöcke passen daher genau 8 Worte (8 Integer z.b. a[0 7]). Block Inhalt a[0 7] b[0 7] Die Blöcke 2 und 3 werden nicht verwendet! Nun wird im ersten Schritt beim Zugriff auf a[0] wird ein Cache Miss verursacht und aus dem Hauptspeicher wird der Block 0 geladen mit den Elementen a[0] bis a[7]. Bei Zugriff auf b[6] wird ebenso ein Cache Miss verursacht. Darauf hin wird dieser ebenso in den Cache geladen. In den weiteren Schritten sieht das ganze System bereits besser aus, da die benötigten Blöcke bereits in den Caches vorhanden sind, und daher bei jedem Zugriff immer ein Cache Hit erfolgt. Es erfolgen 8 Zugriffe auf den Cache, davon sind die ersten 2 ein Cache Miss, und die anderen ein Cache Hit. Cache Missrate ergibt sich daher 25 %. ad d) Nun wird ein vollassoziativen Cache gleicher Größe (32 Worte) in 1-Wort-Blöcken verwendet. Es soll zusätzlich eine LRU - Ersetzungsstrategie für die Cache - Blöcke gemacht werden. Bei einem vollassoziativen Cache kann jeder Block aus dem Hauptspeicher an einer beliebigen Stelle im Cache abgelegt werden. Dadurch wird ein Ping Pong Effekt, wie es beispielsweise bei direkt abbildenden Caches oft möglich ist, vermieden. Der Nachteil ist jedoch, das nach dem Cache Eintrag im ganzen Cache gesucht werden muss, und dies erfordert einen weiteren Hardwareaufwand durch Komparatoren. Seite 10

11 In diesem Beispiel gibt es nichts zu rechnen jeder Block zuerst in den Cache geladen werden muss, und daher die Missrate wieder 100 % ist. Je nach der Reihenfolge der Zugriffe auf den Hauptspeicher wird der Cache gefüllt: Block Inhalt a[0] b[6] a[2] b[4] a[4] b[2] a[6] b[0] Block Inhalt Es werden 8 Speicherzugriffe innerhalb von 4 Schritten gemacht: Im ersten Schritt (i=0) wird auf a[0] und b[6] zugegriffen. Im zweiten Schritt (i=2) wird auf a[2] und b[4] zugegriffen. Im dritten Schritt (i=4) wird auf a[4] und b[2] zugegriffen. Im vierten Schritt (i=6) wird auf a[6] und b[0] zugegriffen. Es werden daher auch nur 8 Blöcke im vollassoziativen Cache benötigt. ad e) Es wird wieder ein vollassoziativer Cache verwendet mit 32 Worten Größe, jedoch eingeteilt in 8 Wort Blöcke. Es werden wiederum 8 Speicherzugriffe innerhalb von 4 Schritten gemacht: Im ersten Schritt (i=0) wird auf a[0] und b[6] zugegriffen. Diese Einträge sind jedoch nicht im Cache vorhanden (Cache Miss), also werden beide Mal der gesamte 8 Worte lange Block aus dem Hauptspeicher in den Cache geladen (a[0] a[7] wird geladen und b[0] b[7] wird geladen). Nach diesem Zugriff auf den Speicher sieht der Cache wie folgt aus: Block Inhalt a[0 7] b[0 7] Im zweiten Schritt (i=2) wird auf a[2] und b[4] zugegriffen. Diese beiden Einträge wurden im vorherigem Schritt bereits aufgrund der Blockgröße von 8 Worten in den Cache gelesen. Cache Hit Im dritten Schritt (i=4) wird auf a[4] und b[2] zugegriffen. Diese Einträge sind auch im Cache zu finden. Cache Hit Im vierten Schritt (i=6) wird auf a[6] und b[0] zugegriffen. Diese beiden Einträge sind auch im Cache gespeichert. Cache Hit In diesem Fall werden wieder die Blöcke 2 und 3 des Caches nicht verwendet! Ersetzungen finden also nicht statt. Die Cache Missrate beträgt 25 %. ad f) Nun soll ein n fachassoziativer Cache verwendet werden, mit 32 Worten Größe und 1 Wort- Blöcken. n ist in diesem Beispiel 2fach assoziativ. Nun gibt es ein paar Formeln für das Rechnen mit Caches: Um die Anzahl der Blöcke eines Caches zu berechnen kann man folgende Formel verwenden: Size Size Größe des Cachespeichers # CL = CLSize Größe einer Cacheline ( = Cache Block) CLSize # CL Anzahl der Cachelines ( = Cache Blöcke) Seite 11

12 Es sollte bei diesen Formeln vorzugsweise in Byte gerechnet werden, wobei gilt: 1 Wort = 4 Bytes Um die Anzahl der Sets Blöcke zu berechnen kann folgende Formel verwendet werden: # CL # Sets = n # CL Anzahl der Cachelines ( = Cache Blöcke) n die Assoziativität (bei Direkt abbildenden Speicher n = 1) # Sets Anzahl der Sets Blöcke Direkt abbildendende Caches sowie auch vollassoziative Caches bilden hier die Extremfälle. Denn bei direkt abbildendenden Caches ist die Anzahl der Sets Blöcke gleich der Anzahl der Cache Blöcke, und bei vollassoziativen Caches gibt es nur einen (großen) Block. Um die Blocknummer eines Speichers auszurechnen gibt es eine nützliche Formel: Addr Blocknr = % # Sets CLSize # Sets Anzahl der Sets Addr Adresse im Speicher CLSize Größe einer Cacheline ( = Cache Block) Blocknr Blocknummer im Cache Nützlich können auch folgende Formeln sein, um den niedrigsten Speicheradresseintrag (Lower) bzw. den höchsten Speicheradresseintrag (Upper) im Cache zu erhalten: Addr Lower = CLSize CLSize Upper = Lower + CLSize 1 Addr Adresse im Speicher CLSize Größe einer Cacheline ( = Cache Block) Lower niedrigster Adresseintrag aus dem Speicher Upper höchster Adresseintrag aus dem Speicher Wenn man nun diese Formeln verwendet kann man folgende Berechnungen durchführen: Anzahl der Blöcke: (Cachegröße: 32 Worte, Cacheblockgröße 1 Wort) Size 32Worte 128Byte # CL = = = = 32 CLSize 1Wort 4Byte Anzahl der Sets - Blöcke: (n = 2) # CL 32 # Sets = = = 16 n 2 Folgende Tabelle soll den zeitlichen Zugriff auf den Speicher veranschaulichen: Variable Adresse im Hauptspeicher Blocknummer Set Blocknummer a[0] Miss b[6] Miss a[2] Miss b[4] Miss a[4] Miss b[2] Miss a[6] Miss b[0] Miss Cacheinhalt nach Codefragment (2fach assoziativ 2 Sätze / Sets) Block Set 0 a[0] a[2] a[4] a[6] b[0] b[2] b[4] b[6] Set 1 Set 1 wird nie verwendet! Missrate beträgt 100 %. Seite 12

13 ad g) Nun soll sich die Größe eines Cacheblockes vergrößern: Blockgröße 4 Worte. 2fach satz-assoziativer Cache mit 32 Worten Größe. Anzahl der Blöcke: (Cachegröße: 32 Worte, Cacheblockgröße 4 Worte) Size 32Worte 128Byte # CL = = = = 8 CLSize 4Worte 16Byte Anzahl der Sets - Blöcke: (n = 2) # CL 8 # Sets = = = 4 n 2 Die Einteilung geschieht nun wieder über 2 Sets, jedoch gibt es nur 4 Blöcke pro Set und ein Block kann 4 Worte (16 Byte) speichern. Folgende Tabelle soll den zeitlichen Zugriff auf den Speicher veranschaulichen: Variable Adresse im Hauptspeicher Blocknummer Set Blocknummer a[0] Miss b[6] Miss a[2] Hit b[4] Hit a[4] Miss b[2] Miss a[6] Hit b[0] Hit Cacheinhalt nach Codefragment (2fach assoziativ 2 Sätze / Sets) Block# Set 0 a[0 3] a[4 7] b[0 3] b[4 7] Set 1 Set 1 wird auch hier nie verwendet! Missrate beträgt 50 %. Seite 13

Lehrveranstaltung: PR Rechnerorganisation Blatt 8. Thomas Aichholzer

Lehrveranstaltung: PR Rechnerorganisation Blatt 8. Thomas Aichholzer Aufgabe 8.1 Ausnahmen (Exceptions) a. Erklären Sie den Begriff Exception. b. Welche Arten von Exceptions kennen Sie? Wie werden sie ausgelöst und welche Auswirkungen auf den ablaufenden Code ergeben sich

Mehr

Technische Informatik 1 Übung 8 Instruktionsparallelität (Rechenübung) Andreas Tretter 8./9. Dezember Bitte immer eine Reihe freilassen

Technische Informatik 1 Übung 8 Instruktionsparallelität (Rechenübung) Andreas Tretter 8./9. Dezember Bitte immer eine Reihe freilassen Technische Informatik 1 Übung 8 Instruktionsparallelität (Rechenübung) Andreas Tretter 8./9. Dezember 2016 Bitte immer eine Reihe freilassen Ziele der Übung Verschiedene Arten von Instruktionsparallelität

Mehr

Data Hazards. Grundlagen der Rechnerarchitektur Prozessor 74

Data Hazards. Grundlagen der Rechnerarchitektur Prozessor 74 Data Hazards Grundlagen der Rechnerarchitektur Prozessor 74 Motivation Ist die Pipelined Ausführung immer ohne Probleme möglich? Beispiel: sub $2, $1, $3 and $12, $2, $5 or $13, $6, $2 add $14, $2, $2

Mehr

Technische Informatik I - HS 18

Technische Informatik I - HS 18 Institut für Technische Informatik und Kommunikationsnetze Prof. L. Thiele Technische Informatik I - HS 18 Übung 7 Datum : 22.-23. November 2018 Pipelining Aufgabe 1: Taktrate / Latenz In dieser Aufgabe

Mehr

Technische Informatik 1 - HS 2016

Technische Informatik 1 - HS 2016 Institut für Technische Informatik und Kommunikationsnetze Prof. L. Thiele Technische Informatik 1 - HS 2016 Lösungsvorschläge für Übung 8 Datum: 8. 9. 12. 2016 1 Instruktionsparallelität VLIW Gegeben

Mehr

Datenpfaderweiterung Der Single Cycle Datenpfad des MIPS Prozessors soll um die Instruktion min $t0, $t1, $t2 erweitert werden, welche den kleineren

Datenpfaderweiterung Der Single Cycle Datenpfad des MIPS Prozessors soll um die Instruktion min $t0, $t1, $t2 erweitert werden, welche den kleineren Datenpfaderweiterung Der Single Cycle Datenpfad des MIPS Prozessors soll um die Instruktion min $t0, $t1, $t2 erweitert werden, welche den kleineren der beiden Registerwerte $t1 und $t2 in einem Zielregister

Mehr

Quiz. Gegeben sei ein 16KB Cache mit 32 Byte Blockgröße. Wie verteilen sich die Bits einer 32 Bit Adresse auf: Tag Index Byte Offset.

Quiz. Gegeben sei ein 16KB Cache mit 32 Byte Blockgröße. Wie verteilen sich die Bits einer 32 Bit Adresse auf: Tag Index Byte Offset. Quiz Gegeben sei ein 16KB Cache mit 32 Byte Blockgröße. Wie verteilen sich die Bits einer 32 Bit Adresse auf: Tag Index Byte Offset 32 Bit Adresse 31 3 29... 2 1 SS 212 Grundlagen der Rechnerarchitektur

Mehr

Technische Informatik 1 Übung 6 Pipelining (Rechenübung) Andreas Tretter 24./25. November 2016

Technische Informatik 1 Übung 6 Pipelining (Rechenübung) Andreas Tretter 24./25. November 2016 Technische Informatik 1 Übung 6 Pipelining (Rechenübung) Andreas Tretter 24./25. November 2016 Aufgabe 1: Taktrate / Latenz TI1 - Übung 6: Pipelining Einzeltakt-Architektur TI1 - Übung 6: Pipelining Pipelining-Architektur

Mehr

Technische Informatik 1 - HS 2017

Technische Informatik 1 - HS 2017 Institut für Technische Informatik und Kommunikationsnetze Prof. L. Thiele Technische Informatik 1 - HS 2017 Übung 8 Datum: 30. 11. 1. 12. 2017 In dieser Übung soll mit Hilfe des Simulators WinMIPS64 die

Mehr

Technische Informatik 1 - HS 2016

Technische Informatik 1 - HS 2016 Institut für Technische Informatik und Kommunikationsnetze Prof. L. Thiele Technische Informatik 1 - HS 2016 Lösungsvorschläge für Übung 6 Datum: 24. 25. 11. 2016 Pipelining 1 Taktrate / Latenz In dieser

Mehr

Name: Vorname: Matr.-Nr.: 4. a) RISC-Architekturen müssen zur Decodierung von Maschinenbefehlen stets ein mikroprogrammierbares Steuerwerk verwenden.

Name: Vorname: Matr.-Nr.: 4. a) RISC-Architekturen müssen zur Decodierung von Maschinenbefehlen stets ein mikroprogrammierbares Steuerwerk verwenden. Name: Vorname: Matr.-Nr.: 4 Aufgabe 1 (8 Punkte) Entscheiden Sie, welche der folgenden Aussagen zum Thema CISC/RISC-Prinzipien korrekt sind. a) RISC-Architekturen müssen zur Decodierung von Maschinenbefehlen

Mehr

Was ist die Performance Ratio?

Was ist die Performance Ratio? Was ist die Performance Ratio? Wie eben gezeigt wäre für k Pipeline Stufen und eine große Zahl an ausgeführten Instruktionen die Performance Ratio gleich k, wenn jede Pipeline Stufe dieselbe Zeit beanspruchen

Mehr

Technische Informatik 1 Übung 7 Pipelining (Rechenübung) Balz Maag 22./23. November 2018

Technische Informatik 1 Übung 7 Pipelining (Rechenübung) Balz Maag 22./23. November 2018 Technische Informatik 1 Übung 7 Pipelining (Rechenübung) Balz Maag 22./23. November 2018 Aufgabe 1: Taktrate / Latenz Einzeltakt-Architektur Pipelining-Architektur Pipelining-Architektur 15 15 120 ps 15

Mehr

, 2014W Übungsgruppen: Mo., Mi.,

, 2014W Übungsgruppen: Mo., Mi., VU Technische Grundlagen der Informatik Übung 7: Speichermanagement 183.579, 2014W Übungsgruppen: Mo., 12.01. Mi., 14.01.2015 Aufgabe 1: Cache-Adressierung Ein Prozessor mit einer Adresslänge von 20 Bit

Mehr

Cache Grundlagen. Schreibender Cache Zugriff. SS 2012 Grundlagen der Rechnerarchitektur Speicher 22

Cache Grundlagen. Schreibender Cache Zugriff. SS 2012 Grundlagen der Rechnerarchitektur Speicher 22 Cache Grundlagen Schreibender Cache Zugriff SS 212 Grundlagen der Rechnerarchitektur Speicher 22 Eine einfache Strategie Schreibt man nur in den Cache, werden Cache und darunter liegender Speicher inkonsistent.

Mehr

Besprechung des 8. Übungsblattes Einführung in Caches Cache-Organisation Cache-Ersetzungsstrategien Aufgaben (an der Tafel) Testklausur

Besprechung des 8. Übungsblattes Einführung in Caches Cache-Organisation Cache-Ersetzungsstrategien Aufgaben (an der Tafel) Testklausur Themen heute Besprechung des 8. Übungsblattes Einführung in Caches Cache-Organisation Cache-Ersetzungsstrategien Aufgaben (an der Tafel) Testklausur Besprechung des 8. Übungsblattes Aufgabe 2.6. In diesem

Mehr

é Er ist software-transparent, d.h. der Benutzer braucht nichts von seiner Existenz zu wissen. Adreßbus Cache- Control Datenbus

é Er ist software-transparent, d.h. der Benutzer braucht nichts von seiner Existenz zu wissen. Adreßbus Cache- Control Datenbus 4.2 Caches é Cache kommt aus dem Französischen: cacher (verstecken). é Er kann durch ein Anwendungsprogramm nicht explizit adressiert werden. é Er ist software-transparent, d.h. der Benutzer braucht nichts

Mehr

Beispielhafte Prüfungsaufgaben zur Vorlesung TI I, gestellt im Frühjahr 2009

Beispielhafte Prüfungsaufgaben zur Vorlesung TI I, gestellt im Frühjahr 2009 Beispielhafte Prüfungsaufgaben zur Vorlesung TI I, gestellt im Frühjahr 2009 Die beigefügte Lösung ist ein Vorschlag. Für Korrektheit, Vollständigkeit und Verständlichkeit wird keine Verantwortung übernommen.

Mehr

Speicher. Speicher. Speicherhierarchie. Speicher. Interessante Zahlen:

Speicher. Speicher. Speicherhierarchie. Speicher. Interessante Zahlen: Übersicht 1 Einleitung Hauptspeicher 2 Hauptspeicher 3 Caches, Cache-Kohärenz Dr.-Ing. Volkmar Sieh Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2008/2009

Mehr

Lösungsvorschlag zur 5. Übung

Lösungsvorschlag zur 5. Übung Prof. Frederik Armknecht Sascha Müller Daniel Mäurer Grundlagen der Informatik 3 Wintersemester 09/10 Lösungsvorschlag zur 5. Übung 1 Präsenzübungen 1.1 Schnelltest a) Welche Aussagen über Caches sind

Mehr

Cache. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011

Cache. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011 Cache Dr.-Ing. Volkmar Sieh Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011 Cache 1/53 2012-02-29 Einleitung Hauptspeicherzugriffe sind langsam die

Mehr

Datenpfad einer einfachen MIPS CPU

Datenpfad einer einfachen MIPS CPU Datenpfad einer einfachen MIPS CPU Zugriff auf den Datenspeicher Grundlagen der Rechnerarchitektur Prozessor 19 Betrachten nun Load und Store Word Erinnerung, Instruktionen lw und sw sind vom I Typ Format:

Mehr

Datenpfad einer einfachen MIPS CPU

Datenpfad einer einfachen MIPS CPU Datenpfad einer einfachen MIPS CPU Zugriff auf den Datenspeicher Grundlagen der Rechnerarchitektur Prozessor 19 Betrachten nun Load und Store Word Erinnerung, Instruktionen lw und sw sind vom I Typ Format:

Mehr

Cache Blöcke und Offsets

Cache Blöcke und Offsets Cache Blöcke und Offsets Ein Cache Eintrag speichert in der Regel gleich mehrere im Speicher aufeinander folgende Bytes. Grund: räumliche Lokalität wird wie folgt besser ausgenutzt: Bei Cache Miss gleich

Mehr

Grob-Struktur des Prozessor-Speichersystems

Grob-Struktur des Prozessor-Speichersystems 2.3.2 Speicherstruktur (1) Grob-Struktur des Prozessor-Speichersystems Chipsatz (Erklärung s. später, Folie 104) 22.4.-27.5.2013, Folie 52 2.3.2 Speicherstruktur (2) Zugriff Prozessor zumeist auf schnelle

Mehr

Besprechung des 9. Übungsblattes Virtuelle Speicherverwaltung Aufgaben

Besprechung des 9. Übungsblattes Virtuelle Speicherverwaltung Aufgaben Themen heute Besprechung des 9. Übungsblattes Virtuelle Speicherverwaltung Aufgaben Besprechung des 9. Übungsblattes Aufgabe 2 Ist in einer Aufgabe wie hier keine explizite Wortbreite angegeben, nicht

Mehr

Rechnerarchitektur (RA)

Rechnerarchitektur (RA) 2 Rechnerarchitektur (RA) Sommersemester 27 Pipelines Jian-Jia Chen Informatik 2 http://ls2-www.cs.tu.de/daes/ 27/5/3 Diese Folien enthalten Graphiken mit Nutzungseinschränkungen. Das Kopieren der Graphiken

Mehr

Rechnerarchitektur (RA)

Rechnerarchitektur (RA) 2 Rechnerarchitektur (RA) Sommersemester 26 Pipelines Jian-Jia Chen Informatik 2 http://ls2-www.cs.tu.de/daes/ 26/5/25 Diese Folien enthalten Graphiken mit Nutzungseinschränkungen. Das Kopieren der Graphiken

Mehr

Grundlagen der Rechnerarchitektur. Speicher

Grundlagen der Rechnerarchitektur. Speicher Grundlagen der Rechnerarchitektur Speicher Übersicht Speicherhierarchie Cache Grundlagen Verbessern der Cache Performance Virtueller Speicher SS 2012 Grundlagen der Rechnerarchitektur Speicher 2 Speicherhierarchie

Mehr

Grundlagen der Informatik III Wintersemester 2010/ Vorlesung Dr.-Ing. Wolfgang Heenes

Grundlagen der Informatik III Wintersemester 2010/ Vorlesung Dr.-Ing. Wolfgang Heenes Grundlagen der Informatik III Wintersemester 2010/2011 15. Vorlesung Dr.-Ing. Wolfgang Heenes int main() { printf("hello, world!"); return 0; } msg: main:.data.asciiz "Hello, world!".text.globl main la

Mehr

Übung Praktische Informatik II

Übung Praktische Informatik II Übung Praktische Informatik II FSS 2009 Benjamin Guthier Lehrstuhl für Praktische Informatik IV Universität Mannheim guthier@pi4.informatik.uni-mannheim.de 20.03.09 4-1 Heutige große Übung Ankündigung

Mehr

Technische Informatik - Eine Einführung

Technische Informatik - Eine Einführung Martin-Luther-Universität Halle-Wittenberg Fachbereich Mathematik und Informatik Lehrstuhl für Technische Informatik Prof. P. Molitor Technische Informatik - Eine Einführung Rechnerarchitektur Aufgabe

Mehr

Datenpfad einer einfachen MIPS CPU

Datenpfad einer einfachen MIPS CPU Datenpfad einer einfachen MIPS CPU Die Branch Instruktion beq Grundlagen der Rechnerarchitektur Prozessor 13 Betrachten nun Branch Instruktion beq Erinnerung, Branch Instruktionen beq ist vom I Typ Format:

Mehr

, 2015W Übungsgruppen: Mo., Mi.,

, 2015W Übungsgruppen: Mo., Mi., VU Technische Grundlagen der Informatik Übung 7: Speichermanagement 183.579, 2015W Übungsgruppen: Mo., 11.01. Mi., 13.01.2016 Aufgabe 1: Cache-Adressierung Ihr Cachingsystem soll 32 GiB an Speicher auf

Mehr

Kontrollpfad der hypothetischen CPU

Kontrollpfad der hypothetischen CPU Kontrollpfad der hypothetischen CPU fast alle Algorithmen benötigen FOR- oder WHILE-Schleifen und IF.. ELSE Verzweigungen Kontrollfluß ist datenabhängig CCR speichert Statussignale N,Z, V,C der letzten

Mehr

Kontrollpfad der hypothetischen CPU

Kontrollpfad der hypothetischen CPU Kontrollpfad der hypothetischen CPU fast alle Algorithmen benötigen FOR- oder WHILE-Schleifen und IF.. ELSE Verzweigungen Kontrollfluß ist datenabhängig CCR speichert Statussignale N,Z, V,C der letzten

Mehr

1. räumliche Lokalität - Nach dem Zugriff auf eine bestimmte Adresse erfolgt in naher Zukunft ein erneuter Zugriff auf ein dazu benachbartes Datum.

1. räumliche Lokalität - Nach dem Zugriff auf eine bestimmte Adresse erfolgt in naher Zukunft ein erneuter Zugriff auf ein dazu benachbartes Datum. Aufgabe 1 a) Warum besitzen nahezu alle modernen Prozessoren einen Cache? Zur Überbrückung der Prozessor-Speicher-Lücke. Geschwindigkeit des Arbeitsspeichers ist nicht in gleichem Maße gestiegen wie die

Mehr

Aufgabe 1 : Assembler

Aufgabe 1 : Assembler Winter 2015/16 Technische Informatik I Lösungsvorschlag Seite 2 Aufgabe 1 : Assembler (maximal 21 Punkte) 1.1: Verständnisfragen (maximal 4 Punkte) (a) (1 Punkt) Kreuzen Sie an, welche der folgenden Statements

Mehr

Tutorium Rechnerorganisation

Tutorium Rechnerorganisation Woche 10 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Mehr

Tutorium Rechnerorganisation

Tutorium Rechnerorganisation Woche 8 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Mehr

Datenpfad einer einfachen MIPS CPU

Datenpfad einer einfachen MIPS CPU Datenpfad einer einfachen MIPS CPU Die Branch Instruktion beq Grundlagen der Rechnerarchitektur Prozessor 13 Betrachten nun Branch Instruktion beq Erinnerung, Branch Instruktionen beq ist vom I Typ Format:

Mehr

, SS2012 Übungsgruppen: Do., Mi.,

, SS2012 Übungsgruppen: Do., Mi., VU Technische Grundlagen der Informatik Übung : Mikroprozessoren, Pipelining, Cache 183.579, SS01 Übungsgruppen: Do., 10.05. Mi., 1.05.01 Aufgabe 1: Stack Funktionsweise eines Stacks Erläutern Sie die

Mehr

Grundlagen der Rechnerarchitektur

Grundlagen der Rechnerarchitektur Grundlagen der Rechnerarchitektur Prozessor Übersicht Datenpfad Control Pipelining Data Hazards Control Hazards Multiple Issue Grundlagen der Rechnerarchitektur Prozessor 2 Datenpfad einer einfachen MIPS

Mehr

Schriftliche Prüfung. Aufgaben OTTO-VON-GUERICKE-UNIVERSITÄT MAGDEBURG FAKULTÄT FÜR INFORMATIK. Technische Informatik II. am:

Schriftliche Prüfung. Aufgaben OTTO-VON-GUERICKE-UNIVERSITÄT MAGDEBURG FAKULTÄT FÜR INFORMATIK. Technische Informatik II. am: OTTO-VON-GUERICKE-UNIVERSITÄT MAGDEBURG FAKULTÄT FÜR INFORMATIK Schriftliche Prüfung im Fach: Studiengang: Technische Informatik II Informatik am: 11. 02. 2005 Bearbeitungszeit: 180 min zugelassene Hilfsmittel:

Mehr

Grundlagen der Rechnerarchitektur. Speicher

Grundlagen der Rechnerarchitektur. Speicher Grundlagen der Rechnerarchitektur Speicher Übersicht Speicherhierarchie Cache Grundlagen Verbessern der Cache Performance Virtueller Speicher SS 2012 Grundlagen der Rechnerarchitektur Speicher 2 Speicherhierarchie

Mehr

Schriftliche Prüfung

Schriftliche Prüfung OTTO-VON-GUERICKE-UNIVERSITÄT MAGDEBURG FAKULTÄT FÜR INFORMATIK Schriftliche Prüfung im Fach: Rechnersysteme Studiengang: Bachelor (PF CSE / IF; WPF CV / WIF) am: 30. Juli 2008 Bearbeitungszeit: 120 Minuten

Mehr

CPU. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011

CPU. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011 CPU Dr.-Ing. Volkmar Sieh Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011 CPU 1/62 2012-02-29 CPU Übersicht: Pipeline-Aufbau Pipeline- Hazards CPU

Mehr

Technische Informatik 1 - HS 2017

Technische Informatik 1 - HS 2017 Institut für Technische Informatik und Kommunikationsnetze Prof. L. Thiele Technische Informatik 1 - HS 2017 Übung 11 Datum: 21. 22. 12. 2017 Virtueller Speicher 1 Performanz Gehen Sie von einem virtuellen

Mehr

Pipelining. Die Pipelining Idee. Grundlagen der Rechnerarchitektur Prozessor 45

Pipelining. Die Pipelining Idee. Grundlagen der Rechnerarchitektur Prozessor 45 Pipelining Die Pipelining Idee Grundlagen der Rechnerarchitektur Prozessor 45 Single Cycle Performance Annahme die einzelnen Abschnitte des MIPS Instruktionszyklus benötigen folgende Ausführungszeiten:

Mehr

Allgemeine Lösung mittels Hazard Detection Unit

Allgemeine Lösung mittels Hazard Detection Unit Allgemeine Lösung mittels Hazard Detection Unit Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 83

Mehr

Grundlagen der Rechnerarchitektur

Grundlagen der Rechnerarchitektur Grundlagen der Rechnerarchitektur Speicher Übersicht Speicherhierarchie Cache Grundlagen Verbessern der Cache Performance Virtueller Speicher SS 2012 Grundlagen der Rechnerarchitektur Speicher 2 Speicherhierarchie

Mehr

In heutigen Computern findet man schnellen/teuren als auch langsamen/billigen Speicher

In heutigen Computern findet man schnellen/teuren als auch langsamen/billigen Speicher Speicherhierarchie In heutigen Computern findet man schnellen/teuren als auch langsamen/billigen Speicher Register Speicherzellen, direkt mit der Recheneinheit verbunden Cache-Speicher Puffer-Speicher

Mehr

Cache-Speicher. Design Digitaler Systeme. Prof. Dr.-Ing. Rainer Bermbach

Cache-Speicher. Design Digitaler Systeme. Prof. Dr.-Ing. Rainer Bermbach Cache-Speicher Design Digitaler Systeme Prof. Dr.-Ing. Rainer Bermbach Übersicht Cache-Speicher Warum Cache-Speicher? Cache-Strukturen Aufbau und Organisation von Caches Cache-Architekturen Cache-Strategien

Mehr

, 2015W Übungsgruppen: Mo., Mi.,

, 2015W Übungsgruppen: Mo., Mi., VU Technische Grundlagen der Informatik Übung 6: Befehlssatz, Pipelining 183.59, 2015W Übungsgruppen: Mo., 1.12. Mi., 16.12.2015 Aufgabe 1: Stack Funktionsweise Erläutern Sie die Funktionsweise eines Stacks

Mehr

Aufgabe 4 : Virtueller Speicher

Aufgabe 4 : Virtueller Speicher Sommer 216 Technische Informatik I Lösungsvorschlag Seite 16 Aufgabe 4 : Virtueller Speicher (maximal 27 Punkte) 4.1: Generelle Funktionsweise (maximal 5 Punkte) (a) (1 Punkt) Nennen Sie zwei Gründe, weshalb

Mehr

INF. Fachbereich Informatik. FERNUNIVERSITÄT in Hagen D Hagen Technische Informatik II. Hauptklausur am

INF. Fachbereich Informatik. FERNUNIVERSITÄT in Hagen D Hagen Technische Informatik II. Hauptklausur am FERNUNIVERSITÄT In Hagen EINGANG INF FERNUNIVERSITÄT in Hagen D-58084 Hagen Fachbereich Informatik Kurs: 1708 Technische Informatik II Hauptklausur am 07.02.2004 Hörerstatus: Klausurort: Vollzeitstudent

Mehr

9.1. Aufbau einer Befehlspipeline

9.1. Aufbau einer Befehlspipeline Kapitel 9 - Befehlspipelining Seite 191 Kapitel 9 Befehlspipelining 9.1. Aufbau einer Befehlspipeline Ein typischer Befehl in einer Maschine mit einem RISC-artigen Befehlssatz besteht aus den Operationen:

Mehr

Lösungsvorschlag zur 6. Übung

Lösungsvorschlag zur 6. Übung rof. Frederik Armknecht Sascha Müller Daniel Mäurer Grundlagen der Informatik 3 Wintersemester 9/1 Lösungsvorschlag zur 6. Übung 1 räsenzübungen 1.1 Schnelltest a) Caches und virtueller Speicher können

Mehr

Wie groß ist die Page Table?

Wie groß ist die Page Table? Wie groß ist die Page Table? Im vorigen (typischen) Beispiel verwenden wir 20 Bits zum indizieren der Page Table. Typischerweise spendiert man 32 Bits pro Tabellen Zeile (im Vorigen Beispiel brauchten

Mehr

, WS2013 Übungsgruppen: Di., Fr.,

, WS2013 Übungsgruppen: Di., Fr., VU Technische Grundlagen der Informatik Übung : Stack, Pipelining., WS20 Übungsgruppen: Di., 0.01. Fr.,.01.201 Aufgabe 1: Stack - Funktionsweise Erläutern Sie die Funktionsweise eines Stacks bzw. Kellerspeichers

Mehr

Grundlagen der Rechnerarchitektur. MIPS Assembler

Grundlagen der Rechnerarchitektur. MIPS Assembler Grundlagen der Rechnerarchitektur MIPS Assembler Übersicht Arithmetik, Register und Speicherzugriff Darstellung von Instruktionen Logische Operationen Weitere Arithmetik Branches und Jumps Prozeduren 32

Mehr

Beispiele von Branch Delay Slot Schedules

Beispiele von Branch Delay Slot Schedules Beispiele von Branch Delay Slot Schedules Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 97 Weniger

Mehr

Übung zu Einführung in die Informatik # 10

Übung zu Einführung in die Informatik # 10 Übung zu Einführung in die Informatik # 10 Tobias Schill tschill@techfak.uni-bielefeld.de 15. Januar 2016 Aktualisiert am 15. Januar 2016 um 9:58 Erstklausur: Mi, 24.02.2016 von 10-12Uhr Aufgabe 1* a),

Mehr

Kap.3 Mikroarchitektur. Prozessoren, interne Sicht

Kap.3 Mikroarchitektur. Prozessoren, interne Sicht Kap.3 Mikroarchitektur Prozessoren, interne Sicht 3.1 Elementare Datentypen, Operationen und ihre Realisierung (siehe 2.1) 3.2 Mikroprogrammierung 3.3 Einfache Implementierung von MIPS 3.4 Pipelining Implementierung

Mehr

Arithmetik, Register und Speicherzugriff. Grundlagen der Rechnerarchitektur Assembler 9

Arithmetik, Register und Speicherzugriff. Grundlagen der Rechnerarchitektur Assembler 9 Arithmetik, Register und Speicherzugriff Grundlagen der Rechnerarchitektur Assembler 9 Arithmetik und Zuweisungen Einfache Arithmetik mit Zuweisung C Programm: a = b + c; d = a e; MIPS Instruktionen: Komplexere

Mehr

Speicherarchitektur (16)

Speicherarchitektur (16) Zuweisungsstrategien für Cacheblocks: direct-mapped Speicherarchitektur (16) voll-assoziativ mengen-assoziativ Beispiel: Vorlesung Rechnersysteme SS `09 E. Nett 15 Speicherarchitektur (16) Konfigurationsmöglichkeiten

Mehr

Name : Klasse : Punkte : Note :

Name : Klasse : Punkte : Note : ESI Semesterendprüfung 15.6.2009 Name : Klasse : Punkte : Note : Zeit: 12.50 bis 13.35 Die Aufgaben sind möglichst direkt auf den Blättern zu lösen (Antworten bitte in ganzen Sätzen!), bei Bedarf die Rückseite

Mehr

Gedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff.

Gedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff. Gedächtnis Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet Hauptspeicher 38265 Telefon CPU Gedächtnis Vorlesender Zugriff Verarbeitungseinheit

Mehr

Übungen zu Grundlagen der Rechnerarchitektur und -organisation: Bonusaufgaben Übung 8 und Präsenzaufgaben Übung 9

Übungen zu Grundlagen der Rechnerarchitektur und -organisation: Bonusaufgaben Übung 8 und Präsenzaufgaben Übung 9 Übungen zu Grundlagen der Rechnerarchitektur und -organisation: Bonusaufgaben Übung 8 und Präsenzaufgaben Übung 9 Dominik Schoenwetter Erlangen, 30. Juni 2014 Lehrstuhl für Informatik 3 (Rechnerarchitektur)

Mehr

, 2014W Übungsgruppen: Mo., Mi.,

, 2014W Übungsgruppen: Mo., Mi., VU Technische Grundlagen der Informatik Übung 5: ikroprozessor (icro16) 183.579, 2014W Übungsgruppen: o., 01.12. i., 03.12.2014 Aufgabe 1: Schaltwerksentwicklung Hexapod / Teil 2 a) Befüllen Sie die untenstehende

Mehr

Übung Praktische Informatik II

Übung Praktische Informatik II Übung Praktische Informatik II FSS 2009 Benjamin Guthier Lehrstuhl für Praktische Informatik IV Universität Mannheim guthier@pi4.informatik.uni-mannheim.de 22.05.09 11-1 Heutige große Übung Ankündigung

Mehr

Prozessorarchitektur. Sprungvorhersage. M. Schölzel

Prozessorarchitektur. Sprungvorhersage. M. Schölzel Prozessorarchitektur Sprungvorhersage M. Schölzel Inhalt Sprungvorhersage statische Methoden dynamische Methoden Problem Fetch-Phase Befehlswarteschlange Speicher b? Neue Adresse für noch nicht bekannt

Mehr

Das Konzept der Speicherhierarchie

Das Konzept der Speicherhierarchie Das Konzept der Speicherhierarchie Small is fast, daher sind kleine Speicher schneller (und kosten mehr pro Byte). Vergrößerung von Speichern und schnellerer Zugriff sind aber Schlüsselfunktionen in der

Mehr

Prüfungsklausur SS 14

Prüfungsklausur SS 14 Prüfungsklausur 31231 SS 14 Prof. Dr. J. Keller 23.08.2014 1 FernUniversität Hagen Prüfungsklausur 31231 23.08.2014 Seite 2 Inhaltsverzeichnis 1 Codierungsverfahren 3 2 Speichermedien und Peripheriegeräte

Mehr

ÜBUNGS-BLOCK 7 LÖSUNGEN

ÜBUNGS-BLOCK 7 LÖSUNGEN ÜBUNGS-BLOCK 7 LÖSUNGEN Aufgabe 1: Gegeben ist folgender Code: Auto[] array = new Auto[3]; // Alle Autos im Array tunen: for (int i = 1; i

Mehr

Technische Informatik I - HS 18

Technische Informatik I - HS 18 Institut für Technische Informatik und Kommunikationsnetze Prof. L. Thiele Technische Informatik I - HS 8 Musterlösung zu Übung 5 Datum : 8.-9. November 8 Aufgabe : MIPS Architektur Das auf der nächsten

Mehr

Übungsblatt 7 Implementierung von Programmsteuerbefehlen in einer Befehlspipeline Abgabefrist: Mittwoch , 14:00 Uhr

Übungsblatt 7 Implementierung von Programmsteuerbefehlen in einer Befehlspipeline Abgabefrist: Mittwoch , 14:00 Uhr Praktikum zur Vorlesung Prozessorarchitektur SS 2017 Übungsblatt 7 Implementierung von Programmsteuerbefehlen in einer Befehlspipeline Abgabefrist: Mittwoch 21.06.2017, 14:00 Uhr 1.1. Einführung Programmsteuerbefehle

Mehr

Speicherhierarchie, Caches, Consistency Models

Speicherhierarchie, Caches, Consistency Models Speicherhierarchie, Caches, Consistency Models Maximilian Langknecht Lehrstuhl für Rechnerarchitektur Betreuer: Prof. Dr. Ulrich Brüning 1 Inhaltsverzeichnis Speicherhierarchie Warum gibt es Speicherhierarchie?

Mehr

Kap.3 Mikroarchitektur. Prozessoren, interne Sicht

Kap.3 Mikroarchitektur. Prozessoren, interne Sicht Kap.3 Mikroarchitektur Prozessoren, interne Sicht Kapitel 3 Mikroarchitektur 3.1 elementare Datentypen, Operationen und ihre Realisierung (siehe 2.1) 3.2 Mikroprogrammierung (zur Realisierung der Befehlsabarbeitung

Mehr

Rechnerarchitektur. Marián Vajteršic und Helmut A. Mayer

Rechnerarchitektur. Marián Vajteršic und Helmut A. Mayer Rechnerarchitektur Marián Vajteršic und Helmut A. Mayer Fachbereich Computerwissenschaften Universität Salzburg marian@cosy.sbg.ac.at und helmut@cosy.sbg.ac.at Tel.: 8044-6344 und 8044-6315 30. Mai 2017

Mehr

(Cache-Schreibstrategien)

(Cache-Schreibstrategien) Übungsblatt 2 Aufgabe 1 (Digitale Datenspeicher) 1. Nennen Sie einen digitalen Datenspeicher, der mechanisch arbeitet. 2. Nennen Sie zwei rotierende magnetische digitale Datenspeicher. 3. Nennen Sie zwei

Mehr

Lösung von Übungsblatt 2

Lösung von Übungsblatt 2 Lösung von Übungsblatt 2 Aufgabe 1 (Digitale Datenspeicher) 1. Nennen Sie einen digitalen Datenspeicher, der mechanisch arbeitet. Lochstreifen, Lochkarte, CD/DVD beim Pressen. 2. Nennen Sie zwei rotierende

Mehr

Zusammenhang Interrupt, Befehlszyklus, indirekte Adressierung und Mikroprogramm [Stallings, Kap. 15, S ]

Zusammenhang Interrupt, Befehlszyklus, indirekte Adressierung und Mikroprogramm [Stallings, Kap. 15, S ] 2.1.2 Behandlung von Unterbrechungen (Interrupts) Zusammenhang Interrupt, Befehlszyklus, indirekte Adressierung und Mikroprogramm [Stallings, Kap. 15, S. 582-585] t 1 : MAR (PC) t 2 : MBR Memory[MAR] PC

Mehr

Rechnerarchitektur SS TU Dortmund

Rechnerarchitektur SS TU Dortmund Rechnerarchitektur SS 2016 Exercises: Scoreboarding and Tomasulo s Algorithm Jian-Jia Chen TU Dortmund to be discussed on June, 14, 2016 Jian-Jia Chen (TU Dortmund) 1 / 8 Scoreboardings Im nächste Folien

Mehr

Algorithm Engineering. Alexander Kröller, Abteilung Algorithmik, IBR

Algorithm Engineering. Alexander Kröller, Abteilung Algorithmik, IBR #7 Terminchaos Nächste Vorlesungen: 27. 5. Vertretung durch Prof. Fekete 3. 6. Exkursionswoche 10. 6. Vertretung durch N.N. 17. 6. back to normal... Experiment Durchlaufe zwei gleichgrosse Arrays: Sortierte

Mehr

Einführung in die technische Informatik

Einführung in die technische Informatik Einführung in die technische Informatik Christopher Kruegel chris@auto.tuwien.ac.at http://www.auto.tuwien.ac.at/~chris Betriebssysteme Aufgaben Management von Ressourcen Präsentation einer einheitlichen

Mehr

Quantitative Prinzipien im Hardwareentwurf. 1. Small is fast

Quantitative Prinzipien im Hardwareentwurf. 1. Small is fast Quantitative Prinzipien im Hardwareentwurf 1. Small is fast Kleine Hardwareeinheiten schalten in der Regel schneller als größere. Kleine Transistoren bilden an ihren Gates kleinere Kapazitäten die Source-Drain

Mehr

Organisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download

Organisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download Organisatorisches Folien (u.a.) gibt's auf der Lva-Homepage zum Download Diesen Mi erstes Tutorium (15-17) Ab nächster Woche montags 10-12 (jeweils im Computerraum) 17.10.2017 IT I - VO 3 1 Organisatorisches

Mehr

Schreiben von Pages. Schreiben einer Page in den Swap Space ist sehr teuer (kostet millionen von CPU Zyklen).

Schreiben von Pages. Schreiben einer Page in den Swap Space ist sehr teuer (kostet millionen von CPU Zyklen). Schreiben von Pages Schreiben einer Page in den Swap Space ist sehr teuer (kostet millionen von CPU Zyklen). Write Through Strategie (siehe Abschnitt über Caching) ist hier somit nicht sinnvoll. Eine sinnvolle

Mehr

Computersysteme. Stacks Anwendung in der Assembler-Programmierung

Computersysteme. Stacks Anwendung in der Assembler-Programmierung Computersysteme Stacks Anwendung in der Assembler-Programmierung 1 Unterprogramme Betrachten wir zunächst folgendes Programm m_mod_n : /Berechne m modulo n für positive Integerwerte m und n. /Beim Programmstart

Mehr

. Die obige Beschreibung der Laufzeit für ein bestimmtes k können wir also erweitern und erhalten die folgende Gleichung für den mittleren Fall:

. Die obige Beschreibung der Laufzeit für ein bestimmtes k können wir also erweitern und erhalten die folgende Gleichung für den mittleren Fall: Laufzeit von Quicksort im Mittel. Wir wollen die erwartete Effizienz von Quicksort ermitteln. Wir nehmen an, die Wahrscheinlichkeit, dass das gewählte Pivot-Element a j das k-t kleinste Element der Folge

Mehr

Struktur der CPU (1) Die Adress- und Datenpfad der CPU: Befehl holen. Vorlesung Rechnerarchitektur und Rechnertechnik SS Memory Adress Register

Struktur der CPU (1) Die Adress- und Datenpfad der CPU: Befehl holen. Vorlesung Rechnerarchitektur und Rechnertechnik SS Memory Adress Register Struktur der CPU (1) Die Adress- und Datenpfad der CPU: Prog. Counter Memory Adress Register Befehl holen Incrementer Main store Instruction register Op-code Address Memory Buffer Register CU Clock Control

Mehr

Grundlagen der Informationsverarbeitung:

Grundlagen der Informationsverarbeitung: Grundlagen der Informationsverarbeitung: Speicherhierarchie Prof. Dr.-Ing. habil. Ulrike Lucke Durchgeführt von Prof. Dr. rer. nat. habil. Mario Schölzel Maximaler Raum für Titelbild (wenn kleiner dann

Mehr