Here you can ask questions and find or give answers to organizational, academic and other questions about studying computer science.

1.1k questions

1.3k answers

1.7k comments

557 users

0 votes

Guten Tag,

ich hoffe es ist erlaubt hier auch Fragen über die Übungsblätter zu stellen, falls nicht tut es mir leid für die falsche Fragenstellung.
Eine Kommilitonin und ich sind uns bei der Aufgabe 2a) nicht sicher, wo der Fehler in

unserer Lösung liegt. Hier ist eine Zusammenfassung unseres Rechenwegs und unsere Lösung:

So wie wir die Aufgabenstellung verstehen sieht der Cache wie folgt aus:

image

und die Antworten zu den Fragen wären:

1. Total number of blocks in the cache:

Da jeder Block 2 Byte umfasst und der Cache insgesamt aus 32 Blöcken besteht haben wir 16 Blöcke.

2. Maximum number of blocks with the same tag that can be found in the cache any given time.

Diese Frage interpretieren wir so, dass man die maximale Anzahl an

Blöcken angeben soll, die sich zu ein und demselben Zeitpunkt mit dem

selben Tag im Cache befinden können, also gleichzeitig vorhanden sind

ohne das es zu einem writeback kommt. Ein tag gehört zu jeweils einem

Block, und da sich die tatsächliche Speicheradresse des Blocks im

Hauptspeicher daraus ergibt, dass man das Tag und die Bits zur

Addressierung der Sets zusammenfügt, kann es innerhalb eines Sets nur

einen Block mit dem selben Tag geben. Pro Set darf also nur ein Block

das selbe Tag haben und da wir 4 Sets haben wäre die Antwort: 4 Blöcke.

3. Number of bits required for the tag

Hierbei haben wir die folgenden Ausschnitte aus den Vorlesungsfolien "Cache Architecture" Folie 53 und Folie 54 benutzt:

image

image

Die Blöcke bestehen aus 2 Byte also ist b = 1

Die Sets bestehen aus 4 Blöcken also ist nk = 2

Der Cache besteht aus 16 Blöcken als ist sk = 4

Unsere Formel besagt dann:

image

Damit ergeben sich 5 Bits für das Tag.

4. Number of bits required for the index

Unsere Annahme ist, dass mit "Index" die Bits gemeint sind, die zur Addressierung des Sets benutzt werden.(?)

Daher ist unsere Lösung 2 Bit.

5. Number of used (valid) blocks in the cache after the following (block-)reads: 17,73,16,41,35,125,62,5,73

Die Addressen in Binär übersetzt ergibt:

image

Hier sind die Addressierungen an die Sets in denen gespeichert wird, farbig markiert.

Man kann erkennen, dass die Speicheradressen 16 und 17 teil des gleichen

Blocks sind. Daher wird beim Lesezugriff auf 17 der Block in den Cache

geladen, der auch die 16 enthält und es kommt zu einem Cache Hit. Um die

16 zu laden müssen wir also nicht erneut einen Block in das Set laden.

Das selbe gilt für die 73, diese wird hier zweimal gelesen und beim

zweiten Lesevorgang kommt es zu einem Cache Hit. Somit werden in das Set

00 nur 3 Blöcke geladen. Bei den anderen 4 Lesezugriffen auf die

anderen Sets kommt es zu keinen Cache hits, aber auch keinen Writebacks

da die Sets niemals voll werden.

Somit werden 7 Blöcke in den Cache geladen.

6. Number of writebacks for the mentioned read sequence

Bei unseren Lösungsweg kommt es zu keinem Writeback.

Somit ist unsere Lösung: 16,4,5,2,7,0

Wir haben versucht die Aufgabe im Abacus Simulator nachzustellen, und haben keinen Widerspruch zu unserer Lösung gefunden.

Könnten sie bitte uns einen Hinweis darauf geben, an welcher Stelle wir

einen Fehler gemacht haben bzw. ob unser Verständnis dieses Caches

richtig ist oder wir eine Annahme getroffen haben, die falsch ist?

Freundliche Grüße

Thomas Maximilian Kühn

(und nochmals Entschuldigung falls dies der falsche Ort ist für meine Frage)

in * TF "Emb. Sys. and Rob." by (170 points)

1 Answer

+1 vote
Hallo,

selbstverständlich darf man auch hier Fragen zu Übungsblättern stellen. Ihre Fragen beziehen sich allerdings auf die richtige Lösung statt allgemeineren Fragen zum Lösungsweg. Daher kann ich hier keine Antwort geben, die von allen gelesen werden kann, aber ich werde Ihnen auf direktem Wege antworten.

Freundliche Grüße,

Klaus Schneider
by (170k points)
Imprint | Privacy Policy
...