FB18 - Das Forum für Informatik

fb18.de / Bachelorstudieng / PM Technische Informatik

Aufgabenblatt 12

Aufgabenblatt 12 2009-01-23 20:24
Anonymer User
Huhu,
Habe da "eine" Frage zu Aufgabe 45:
Was will der von uns?^^

Im Script steht ja dazu fast nichts, z.B. Teilassoziativ kommt mit keinem Wort vor, das einzige was man dort findet ist ein völlig unverständliches Schaubild zu Mengenassoziativität.
Und Speicherbit? Meint er damit die Bit im Cache alle zusammen die man noch zum Speichern von Daten verwenden kann, oder die, die pro Eintrag über sind?
Meine Idee wäre jetz dass man von der Gesamtgröße des Cacheblocks alles abzieht was durch zusätzliche Informationen verloren geht:
2^4 = 16 Bit pro Cacheblock
-1 Bit Gültigkeit
-1 "Schmutzbit" was auch immer das sein mag…
-24 Bit für die Adresse (Geht zwar bis 2^27 aber da diese ja in Byte angegeben ist müsste es sich ja nur noch um ein Achtel handeln oder?)
Macht insgesamt -10 Bit zum Speichern, und dann müssen irgendwo noch die Mengen verwaltet werden. Oder passiert das auch irgendwo mit im Cache?

Help, ich versteh gar nix mehr ^^

Gruß

RE: Aufgabenblatt 12 2009-01-23 21:08
Wulf
schonmal bei wikipedia geschaut?

RE: Aufgabenblatt 12 2009-01-24 11:28
Anonymer User
SO jungens …. Weiß einer von euch welche Fromel man in Aufgabe 42 anwenden muss?
Die aus dem script passt nicht.

RE: Aufgabenblatt 12 2009-01-24 12:00
Wulf
Ich kenn das Script nicht, aber man braucht das hier auch nicht.
Was bedeutet "look-through"? Einfach mal google fragen.
Und wie lange dauert nun ein Zugriff auf den L1-Cache, den L2-Cache und den RAM?

RE: Aufgabenblatt 12 2009-01-24 13:38
Roberto
Moin,

"look - through" bedeutet, dass der Cache- und der Speicherzugriff nacheinander stattfinden….

RE: Aufgabenblatt 12 2009-01-24 16:51
Natmann
Ich hab mal folgende Frage:
In Aufgabe 45 soll man die Anzahl der Speicherbit angeben. sind damit die bit gemeint, die die werte enthalten, mit denen gerechnet werden soll oder sind damit alle gemeint, also auch die Bit, die für die Adresse beansprucht werden?

RE: Aufgabenblatt 12 2009-01-24 20:04
Philipp
Zugriffszeit = Z1 + (1 − Tq1)*Z2 + (1 − Tq2)*ZHS

Z1 = 2ns, Z2 = 4ns, ZHS = 50ns

Die Trefferquoten stehen ja in der Aufgabe ;)… ich habe auch ein bisschen im internet geucht und denke die Formel passt dazu und ist hoffentlich richtig :/… gebe natürlich keine Garantie!

RE: Aufgabenblatt 12 2009-01-25 11:19
Anonymer User
Zugriffszeit = Z1 + (1 − Tq1)*Z2 + (1 − Tq2)*ZHS

Z1 = 2ns, Z2 = 4ns, ZHS = 50ns

Die Trefferquoten stehen ja in der Aufgabe ;)… ich habe auch ein bisschen im internet geucht und denke die Formel passt dazu und ist hoffentlich richtig :/… gebe natürlich keine Garantie!

Nicht ganz! Du berechnest viel zu viele Zugriffe auf den Hauptspeicher. Ich hab die Aufgabe nach folgender Formel glöst:

MZ = Z1 + (1 - Tq1) * Z2 + (1-Tq1) * (1-Tq2) * Z3.

RE: Aufgabenblatt 12 2009-01-25 15:06
Maxim
Ist die Aufgabe 46 wirklich so einfach, dass man die beiden Zahlen einfach addieren kann oder ist da irgendwo ein Hacken?

RE: Aufgabenblatt 12 2009-01-25 15:13
Anonymer User
der Haken an der Aufgabe 46 ist, dass die man die beiden Singlewerte erst nach int konvertieren muss. Ich hatte das auch fix in C geschrieben und bei Int zeigte er mir das richtige Ergebnis an, zumal printf laut Compiler sowieso einen (unsigned) int wert verlangt um ihn als Sedezimalwert darzustellen.

RE: Aufgabenblatt 12 2009-01-25 16:06
s4ms3milia
Zugriffszeit = Z1 + (1 − Tq1)*Z2 + (1 − Tq2)*ZHS

Z1 = 2ns, Z2 = 4ns, ZHS = 50ns

Die Trefferquoten stehen ja in der Aufgabe ;)… ich habe auch ein bisschen im internet geucht und denke die Formel passt dazu und ist hoffentlich richtig :/… gebe natürlich keine Garantie!

Nicht ganz! Du berechnest viel zu viele Zugriffe auf den Hauptspeicher. Ich hab die Aufgabe nach folgender Formel glöst:

MZ = Z1 + (1 - Tq1) * Z2 + (1-Tq1) * (1-Tq2) * Z3.

Hi, wie bist du auf die Formel gekommen?
Z1 + (1 − Tq1)*Z2 + (1 − Tq2)*ZHS finde ich irgendwie logischer.
Warum muss man 2x + (1-Tq1) rechnen?

RE: Aufgabenblatt 12 2009-01-25 16:30
Anonymer User
Zugriffszeit = Z1 + (1 − Tq1)*Z2 + (1 − Tq2)*ZHS

Z1 = 2ns, Z2 = 4ns, ZHS = 50ns

Die Trefferquoten stehen ja in der Aufgabe ;)… ich habe auch ein bisschen im internet geucht und denke die Formel passt dazu und ist hoffentlich richtig :/… gebe natürlich keine Garantie!

Nicht ganz! Du berechnest viel zu viele Zugriffe auf den Hauptspeicher. Ich hab die Aufgabe nach folgender Formel glöst:

MZ = Z1 + (1 - Tq1) * Z2 + (1-Tq1) * (1-Tq2) * Z3.

Hi, wie bist du auf die Formel gekommen?
Z1 + (1 − Tq1)*Z2 + (1 − Tq2)*ZHS finde ich irgendwie logischer.
Warum muss man 2x  + (1-Tq1) rechnen?

Es werden doch nur 94% von 10% aller Zugriffe an den Hauptspeicher getätigt, nicht 94 von 100.

RE: Aufgabenblatt 12 2009-01-25 16:55
Maxim
der Haken an der Aufgabe 46 ist, dass die man die beiden Singlewerte erst nach int konvertieren muss. Ich hatte das auch fix in C geschrieben und bei Int zeigte er mir das richtige Ergebnis an, zumal printf laut Compiler sowieso einen (unsigned) int wert verlangt um ihn als Sedezimalwert darzustellen.

Heißt es, dass ich das in Assembler schreiben muss oder "zu Fuss"? Ich meine es steht nirgendwo, wie man es machen soll, da dachte ich man soll es selbst ohne jede Hilfe von Programm lösen.

RE: Aufgabenblatt 12 2009-01-25 17:30
Anonymer User
der Haken an der Aufgabe 46 ist, dass die man die beiden Singlewerte erst nach int konvertieren muss. Ich hatte das auch fix in C geschrieben und bei Int zeigte er mir das richtige Ergebnis an, zumal printf laut Compiler sowieso einen (unsigned) int wert verlangt um ihn als Sedezimalwert darzustellen.

Heißt es, dass ich das in Assembler schreiben muss oder "zu Fuss"? Ich meine es steht nirgendwo, wie man es machen soll, da dachte ich man soll es selbst ohne jede Hilfe von Programm lösen.

Also ich hab einfach nen Online- IEEE 754 - Umrechner benutzt, beide Zahlen umgerechnet, addiert, und zurückkonvertiert. So auf dem Papier würde ich das doch recht umständlich finden.

Wenn jemand nen guten Link zu den Aufgaben 44 und 45 gefunden hat, vor allem zu den LRU- Algorithmen, wäre es sehr schön, den ins Forum zu stellen. Ich verstehe diese Matrizenimplementation im Skript überhaupt nicht.

RE: Aufgabenblatt 12 2009-01-25 17:48
Anonymer User
der Haken an der Aufgabe 46 ist, dass die man die beiden Singlewerte erst nach int konvertieren muss. Ich hatte das auch fix in C geschrieben und bei Int zeigte er mir das richtige Ergebnis an, zumal printf laut Compiler sowieso einen (unsigned) int wert verlangt um ihn als Sedezimalwert darzustellen.

Heißt es, dass ich das in Assembler schreiben muss oder "zu Fuss"? Ich meine es steht nirgendwo, wie man es machen soll, da dachte ich man soll es selbst ohne jede Hilfe von Programm lösen.

Also ich hab einfach nen Online- IEEE 754 - Umrechner benutzt, beide Zahlen umgerechnet, addiert, und zurückkonvertiert. So auf dem Papier würde ich das doch recht umständlich finden.

Wenn jemand nen guten Link zu den Aufgaben 44 und 45 gefunden hat, vor allem zu den LRU- Algorithmen, wäre es sehr schön, den ins Forum zu stellen. Ich verstehe diese Matrizenimplementation im Skript überhaupt nicht.


Könntest du diesen einfachen IEEE 754 Umrechner mal linken? Wäre nett :D

RE: Aufgabenblatt 12 2009-01-25 17:52
Anonymer User
IEEE 754 Umrechner

RE: Aufgabenblatt 12 2009-01-25 18:02
Fred
Heißt es, dass ich das in Assembler schreiben muss oder "zu Fuss"?
Laut Musterlösung soll man es zu Fuß machen. Ein Assemblerprogramm würde ich aber auch akzeptieren.

der Haken an der Aufgabe 46 ist, dass die man die beiden Singlewerte erst nach int konvertieren muss.
Was meinst Du denn damit?

RE: Aufgabenblatt 12 2009-01-25 18:16
Anonymer User
Verstehe ich auch nicht mit dem integer, wieso muss man das bitte machen? Steht doch nirgendwo. Zahlen in Binärdarstellung umwandeln, auf dem Papier einbisschen addieren und Summe wieder in Sedezimaldarstellung umwandeln. Oder etwa nicht?

RE: Aufgabenblatt 12 2009-01-25 18:19
Anonymer User
Naja ein Assemblerprogramm ist in dem Fall sicher nicht Sinn  der Sache. Sone Aufgabe taugt sicher für die Klausur, da sollte man IEEE 754 schon verstanden haben.
Warum ihr euch komplizierte Formeln aus dem Netz besorgt für Aufgabe 42 versteh ich nicht.
Die kann man sich doch leicht herleiten:
0,9*2ns + 0,6*(2+4)ns + … (bitte selbst denken)
2+4 kommt durchs Look-Through zustande.

RE: Aufgabenblatt 12 2009-01-25 18:22
Anonymer User
Verstehe ich auch nicht mit dem integer, wieso muss man das bitte machen? Steht doch nirgendwo. Zahlen in Binärdarstellung umwandeln, auf dem Papier einbisschen addieren und Summe wieder in Sedezimaldarstellung umwandeln. Oder etwa nicht?

Hm naja steht tatsächlich nirgends das man a und b auch dezimal angeben soll.
Beachten muss man aber trotzdem natürlich das IEEE Format.

RE: Aufgabenblatt 12 2009-01-25 18:27
Anonymer User
Also ich hab Aufgabe 46 eben mal nach IEEE-756 für Fließkommazahlen (Single ist ja eine Fließkommazahl) durchgerechnet:

0x448AE000
= 0100 0100 1000 1010 1110 0000 0000 0000
Damit ist Vorzeichen = 0, Exponent = 137 und Mantisse = 712704
Also ist die Zahl 0,712704*10^137

0x3A449BA6
= 0011 1010 0100 0100 1001 1011 1010 0110
Damit ist Vorzeichen = 0, Exponent = 116 und Mantisse = 4496294
Also ist die Zahl 0,4496294*10^116

Wenn man dies nun zusammenaddiert, ergibt sich 0,712704*10^137 (die Zahl ist nicht genauer darstellbar als Single) also die erste Zahl, da der Exponent so stark abweicht. Ist das ne Falle, und richtig, oder die Rechnung eher am Thema vorbei?

RE: Aufgabenblatt 12 2009-01-25 18:47
Anonymer User
Also vom Exponenten (Zahl a) musst du noch 127 ("bias") abziehen, dann stimmts.
Und die Mantisse bzw. der Signifikant ist irgendwie.. falsch…
Erstes Bit Vorzeichen, 8 Bit Exponent, eine "versteckte" eins, und dann kommt der 23 bittige Signifikant.

RE: Aufgabenblatt 12 2009-01-25 19:40
Fred
Zahlen in Binärdarstellung umwandeln, auf dem Papier ein bischen addieren und Summe wieder in Sedezimaldarstellung umwandeln. Oder etwa nicht?
Je nachdem, was Du mit dem fett gedruckten Text meinst: korrekt [28]

Auf jeden Fall reicht es nicht aus, einfach zwei 32-Bit-Ketten zu addieren. Man muss die Bits schon interpretieren (Vorzeichen, Charakteristik, Mantisse) und ein bischen überlegen.

RE: Aufgabenblatt 12 2009-01-25 20:35
Anonymer User
hmm also aus dem englischen Wikipedia artikel zu Cache werd ich auch nich schlau… vll liegt das auch an 20 stunden MK… naja
Kann mir nicht jemand evtl nen kleinen Tipp geben wie dieses Teilassoziativ gemeint ist?
Und das Speicherbit..

Gruß

RE: Aufgabenblatt 12 2009-01-25 21:12
Anonymer User
hmm also aus dem englischen Wikipedia artikel zu Cache werd ich auch nich schlau… vll liegt das auch an 20 stunden MK… naja
Kann mir nicht jemand evtl nen kleinen Tipp geben wie dieses Teilassoziativ gemeint ist?
Und das Speicherbit..

Gruß

"Teilassoziativ" heißt wohl daß jeder Speicherblock in mehreren Cacheblocks aufgenommen werden kann. Da der Assoziativitätsgrad 3 ist, stehen also für jeden Speicherblock drei alternative Cacheblocks zur Verfügung.

Zum Rest hab ich leider auch nichts gefunden.

RE: Aufgabenblatt 12 2009-01-25 22:28
Anonymer User
Also vom Exponenten (Zahl a) musst du noch 127 ("bias") abziehen, dann stimmts.
Und die Mantisse bzw. der Signifikant ist irgendwie.. falsch…
Erstes Bit Vorzeichen, 8 Bit Exponent, eine "versteckte" eins, und dann kommt der 23 bittige Signifikant.

1. Wieso muss ich was abziehen von dem Exponenten?
2. Was ist mit dieser "versteckten" eins gemeint?

1. So ist halt das Format angelegt, damit auch Zahlen dargestellt werden können, die kleiner sind als eins.

2. Der Mantisse steht immer eine Eins voran, die in der Bitkette nicht auftaucht. Ich hatte oben den Link zu einem Umrechner gepostet, sieh dir mal an wie dort die Zahl 1 dargestellt wird.

Hast du 44 und 45 gelöst?

RE: Aufgabenblatt 12 2009-01-25 22:32
Maxim
Danke, habe auch selbst bei Wiki das nötige gefunden.
Nein ich versuche mich nur an der und vlt noch 43.

RE: Aufgabenblatt 12 2009-01-25 23:06
Fred
2. Der Mantisse steht immer eine Eins voran, die in der Bitkette nicht auftaucht.
Es sei denn, es handelt sich um eine denormalisierte Zahl (zu erkennen an der Charakteristik 0).

RE: Aufgabenblatt 12 2009-01-26 11:11
Fred
Wenn man dies nun zusammenaddiert, ergibt sich […] die erste Zahl, da der Exponent so stark abweicht.
Das sind wahrscheinlich Rundungsfehler durch deine Umrechnung binär -> dezimal -> binär. Rechne mal direkt in binärer Darstellung. Die Summe ist recht nah an a dran, aber nicht gleich a.

Ich habe hier 0x448ae000 + 0x3a449ba6 = 0x448ae006 raus, natürlich ohne Garantie.

RE: Aufgabenblatt 12 2009-01-26 14:19
Anonymer User
Mit dem einbisschen rumaddieren habe ich offenbar das richtige gemeint, ich habe nämlich dasselbe heraus wie du Fred. Juhu \o/ ^^

RE: Aufgabenblatt 12 2009-01-27 00:18
Anonymer User
Für Aufgabe 45 wurde uns heute folgende Musterlösung vorgestellt:

96 * (27 + 18 + 1) + 3 * 32

Das sieht für mich in weiten Teilen auch logisch aus, aber ich verstehe ein paar Dinge nicht:

1. Woher kommen die 27? Sieht ja so aus, als wäre das die komplette Adresse (von der Größe her), aber das will für mich nun gar keinen Sinn ergeben, auch weil ja bereits die 18 Bit für den Tag drin sind.
2. Wo sind die eigentlichen Daten, die der Cache speichert, berücksichtigt? Laut Aufgabenstellung ist die Größe eines Blocks ja "2⁴" (Byte, hab ich mal angenommen), also müssten diese 128 Bit doch eigentlich in der Klammer auftauchen?
3. Sind die 5 Indexbits pro Block nur deshalb nicht aufgeführt, weil sie statisch sind und nie verändert werden? Vorhanden sein müssen sie ja irgendwo, sonst könnte man nicht mit ihnen vergleichen…

RE: Aufgabenblatt 12 2009-01-29 07:36
8kalinow
Also die Lösung ist komplett falsch, wie Lehmann auch bestätigte ;)
Richtig ist:
96*18 für Tags
96 Gültigkeitsbits
3*32 für LRU
96*128 Datenbits

demnach also 96*(128+18+1) + 3*32

ohne gewähr