FB18 - Das Forum für Informatik

fb18.de / Bachelorstudieng / PM Technische Informatik

RS Hilfe zu Aufgaben

RS Hilfe zu Aufgaben 2008-02-10 23:29
Anonymer User
könnte mir jemand bei diesen aufgaben helfen? erklärungen etc? oder die musterlösung posten?

Existiert ein unmittelbarer ternärer Code mit den Wortlängen 1,2,2,2,2,2,3,3,3,3? Falls ja, konstruieren Sie einen, falls nein, versuchen Sie einen unmittelbaren ternären Code zu finden, indem Sie nur eine Wortlänge verändern.


Welche Anzeigen setzt der Befehl subcc der Sparc V8 für die folgenden Subtraktionen?

0x00000000 - 0xb2d05e00 = 0x4d2fa200
0x00000000 - 0x80000001 = 0x7fffffff
0x00000000 - 0x80000000 = 0x80000000
0x00000000 - 0xfff1236 = 0xf000edca
0x00000000 - 0x7ffffff4 = 0x8000000c
0x80123456 - 0x00000000 = 0x80123456
0x80123456 - 0x00000000 = 0x80123456
0x00000000 - 0xcfffffff = 0x30000001



Bestimmen Sie für die folgende Referenzkette R die Anzahl der Seitenalarme bei Beladys Algorithmus und dem LRU-Verfahren bei einer Größe des Kachelspeichers von 3.

R = a b c d a b b a c e d c a f g a d b c f



Man betrachte eine dreistufige Speicherhierarchie L1-Cache, L2-Cache und Hauptspeicher. Die relativen Zugriffszeiten seien 1, 5, 20.
Berechnen Sie für eine "look-through"-Organisation die mittlere Zugriffszeit bei Trefferquoten von 90%, 98%, 100%.
Die mittlere Zahl ist folgendermaßen zu interpretieren, falls man ein Datum nicht im L1-Cache findet, dann besteht eine Chance von 98%, daß es im L2-Cache liegt.



Betrachten Sie einen direkten Cache mit folgenden Parametern: Hauptspeichergröße = 65.536, Cachegröße = 256, Cacheblockgröße = 8.

In welchen Cacheblöcken werden die Elemente mit den folgenden Adressen gespeichert?

a) 0001 0001 0001 1011
b) 1100 0011 0011 0010
c) 0111 0001 1011 0110
d) 0101 0101 0110 1011

RE: RS Hilfe zu Aufgaben 2008-02-10 23:57
T
Bestimmen Sie für die folgende Referenzkette R die Anzahl der Seitenalarme bei Beladys Algorithmus und dem LRU-Verfahren bei einer Größe des Kachelspeichers von 3.

R = a b c d a b b a c e d c a f g a d b c f
das kann ich.
belady:
R = a b c *d a b b a *c *e d c *a *f *g a d *b *c *f 1:a a a a a e a a a a c c 2:- b b b c c c f g b b b 3:- - c d d d d d d d d f wobei das für die letzten drei reine willkür ist. 9BANG [edit](+3 für die ersten drei = 12BANG)[/edit]
lru:
R = a b c *d *a *b b a *c *e *d c *a *f *g a *d *b *c *f 1:a a a d d d c c c c c g g b b b 2:- b b b a a a a d d f f d d d f 3:- - c c c b b e e a a a a a c c 13BANG. [edit](+3 für die ersten drei = 16BANG)[/edit]
merke:belady ist toller, aber leider unmöglich

RE: RS Hilfe zu Aufgaben 2008-02-11 00:06
SkaterAzN
Zur letzten Aufgabe:


Cacheblockgröße = 8 == 2^3 , also 3 Stellen Versatz
Cachegröße = 256 == 2^8 , also 8 Stellen für den Index


Indextag Index Versatz
a) 0001 0 | 001 0001 1 | 011
=> 35
b) 1100 0 | 011 0011 0 | 010
=> 102
c) 0111 0 | 001 1011 0 | 110
=> 54
d) 0101 0 | 101 0110 1 | 011
=> 173

RE: RS Hilfe zu Aufgaben 2008-02-11 00:16
SkaterAzN
Man betrachte eine dreistufige Speicherhierarchie L1-Cache, L2-Cache und Hauptspeicher. Die relativen Zugriffszeiten seien 1, 5, 20.
Berechnen Sie für eine "look-through"-Organisation die mittlere Zugriffszeit bei Trefferquoten von 90%, 98%, 100%.
Die mittlere Zahl ist folgendermaßen zu interpretieren, falls man ein Datum nicht im L1-Cache findet, dann besteht eine Chance von 98%, daß es im L2-Cache liegt.

0,9*1+0,1*0,98*6+0,1*0,02*26= 1,54

RE: RS Hilfe zu Aufgaben 2008-02-11 01:10
Loom
Cacheblockgröße = 8 == 2^3 , also 3 Stellen Versatz
Cachegröße = 256 == 2^8 , also 8 Stellen für den Index

Indextag Index Versatz
a) 0001 0 | 001 0001 1 | 011
=> 35
b) 1100 0 | 011 0011 0 | 010
=> 102
c) 0111 0 | 001 1011 0 | 110
=> 54
d) 0101 0 | 101 0110 1 | 011
=> 173

^^Falsch, denn der Index sind die letzten 8 Bit (da Hauptspeicher = 256x Cachegröße) und gefragt war nach den Blöcken [evtl. mit assoziativ verwechselt?]. Da der Cache 256 Adressen groß ist und jeder Block 8 Adressen umfasst, ergibt dies 256/8 (= 2^8/2^3 = 2^5) = 32 Blöcke. Ist also nix mit 173 und so.

Mit dem "Versatz" kommt es jedoch hin, denn die letzten 3 Bit sind in über (da diese jeweils innerhalb eines Blockes liegen). Da die 256 Adressen des Cache mit 8 Bit (2^8 = 256) direkt angesprochen werden können müssen die letzten 8 Bit betrachtet werden (erklärung warum die letzten bei Bedarf). Den Block liest man jetzt so ab:
Indextag Index Versatz
a) 0001 0001 | 0001 1|011
=> 3
b) 1100 0011 | 0011 0|010
=> 12
c) 0111 0001 | 1011 0|110
=> 22
d) 0101 0101 | 0110 1|011
=> 13

RE: RS Hilfe zu Aufgaben 2008-02-11 01:11
Anonymer User
Bestimmen Sie für die folgende Referenzkette R die Anzahl der Seitenalarme bei Beladys Algorithmus und dem LRU-Verfahren bei einer Größe des Kachelspeichers von 3.

R = a b c d a b b a c e d c a f g a d b c f
das kann ich.
belady:
R = a b c *d a b b a *c *e d c *a *f *g a d *b *c *f 1:a a a a a e a a a a c c 2:- b b b c c c f g b b b 3:- - c d d d d d d d d f wobei das für die letzten drei reine willkür ist. 9BANG
lru:
R = a b c *d *a *b b a *c *e *d c *a *f *g a *d *b *c *f 1:a a a d d d c c c c c g g b b b 2:- b b b a a a a d d f f d d d f 3:- - c c c b b e e a a a a a c c 13BANG. merke:belady ist toller, aber leider unmöglich
[/quote

wäre es möglich dies noch näher zu erklären?

RE: RS Hilfe zu Aufgaben 2008-02-11 01:16
Loom
Ausserdem wollte ich nochmal loswerden:
@Anonymer User: Es wäre schön, wenn man schon nicht zu den Übungen geht(?!) wenigstens sich das bisschen Mühe macht und die letzten drei Threads mal anschaut! Denn da steht z.B. schon etwas zu Aufgabe 10 oder auch Aufgabe 48.

RE: RS Hilfe zu Aufgaben 2008-02-11 09:57
SkaterAzN
Cacheblockgröße = 8 == 2^3 , also 3 Stellen Versatz
Cachegröße = 256 == 2^8 , also 8 Stellen für den Index

Indextag Index Versatz
a) 0001 0 | 001 0001 1 | 011
=> 35
b) 1100 0 | 011 0011 0 | 010
=> 102
c) 0111 0 | 001 1011 0 | 110
=> 54
d) 0101 0 | 101 0110 1 | 011
=> 173

^^Falsch, denn der Index sind die letzten 8 Bit (da Hauptspeicher = 256x Cachegröße) und gefragt war nach den Blöcken [evtl. mit assoziativ verwechselt?]. Da der Cache 256 Adressen groß ist und jeder Block 8 Adressen umfasst, ergibt dies 256/8 (= 2^8/2^3 = 2^5) = 32 Blöcke. Ist also nix mit 173 und so.

Mit dem "Versatz" kommt es jedoch hin, denn die letzten 3 Bit sind in über (da diese jeweils innerhalb eines Blockes liegen). Da die 256 Adressen des Cache mit 8 Bit (2^8 = 256) direkt angesprochen werden können müssen die letzten 8 Bit betrachtet werden (erklärung warum die letzten bei Bedarf). Den Block liest man jetzt so ab:
Indextag Index Versatz
a) 0001 0001 | 0001 1|011
=> 3
b) 1100 0011 | 0011 0|010
=> 12
c) 0111 0001 | 1011 0|110
=> 22
d) 0101 0101 | 0110 1|011
=> 13

selber falsch

b) 1100 0011 | 0011 0|010
=> ist 6 und nicht 12 nach deiner aussage

Aber der Hauptspeicher hat doch garnix damit zu tun, wo die dinger gespeichert werden.
Ich verstehe die aufgabe so, dass die bitkette schon dem cacheblock zugeordnet ist und man nur ablesen braucht, wo er gespeichert ist. Und unter cachegröße verstehe ich, dass er 256 mal die 8 Bit aufnehmen kann.

Tja wer hat nun recht?

RE: RS Hilfe zu Aufgaben 2008-02-11 12:09
T
wäre es möglich dies noch näher zu erklären?
wäre es.

belady streicht immer den aus dem cache der in der zukunft am längsten nicht mehr genutzt werden wird.
zb. habe ich a, b und c im cache. als nächstes wird d gebraucht. ich muss also was streichen. in der zukunft wird auf a, b, b, und a zugegriffen (in dieser reihenfolge) die sollte ich also nicht streichen, sondern stattdessen c. das gibt einen cacheinhalt von a, b, d.

lru streicht immer den, der am längsten nicht genutzt wurde. zb. habe ich nach den ersten drei schritten a, b und c im cache. als nächstes wird d gebraucht. vorher wurde in der reihenfolge a, b, c auf die elemente zugegriffen die im cache liegen. am weitesten zurück liegt also a. a wird gestrichen. nun liegen d, b und c im cache.

gefragt war, wie oft es nötig ist auf den hinter dem cache liegenden speicher zuzugreifen. das ist jeweils die summe der *e und die zahl vor dem BANG.
(ausserdem gibt es einen knopf Vorschau und wenn man sich anmeldet kann man sogar seine eigenen beiträge nachträglich ändern)

RE: RS Hilfe zu Aufgaben 2008-02-11 13:16
Loom
Aber der Hauptspeicher hat doch garnix damit zu tun, wo die dinger gespeichert werden.
Doch, denn es wird nur der Hauptspeicher addressiert. Der Cache sitzt dazwischen und holt die Daten aus dem Hauptspeicher um sie an den Prozessor weiterzuleiten.
Ich verstehe die aufgabe so, dass die bitkette schon dem cacheblock zugeordnet ist und man nur ablesen braucht, wo er gespeichert ist.
richtig
Und unter cachegröße verstehe ich, dass er 256 mal die 8 Bit aufnehmen kann.
Welche 8 Bit? Unter Cachegröße verstehe ich, dass 256 Adressen (also die Daten die an den Adressen liegen) gespeichert werden können. Da der Hauptspeicher nun 256 mal so groß ist wie der Cache, wiederholt sich die direkte Addressierung alle 256 Adressen. Deshalb geben die letzten 8 Bit der HS-Adresse die Cache-Adresse an. Da wir nur einen 8er Block haben wollen teilen wir dies durch 8. Ergo die letzten drei Bits weglassen.

Darstellung mit Dezimalzahlen (ohne Blöcke):
Adresse Cache Binäre Anmerkung 0 0 Adr. ist 16 mal 0, Cache ist 8 mal 0 1 1 255 255 256 0 Adr. ist 0000000100000000, Cache ist 8 mal 0 257 1 511 255 512 0 65.535 255 Adr. ist 16 mal 1, Cache ist 8 mal 1
Tja wer hat nun recht?
Ich [15]

RE: RS Hilfe zu Aufgaben 2008-02-11 21:47
SkaterAzN
Aber b) ist trotzdem falsch

RE: RS Hilfe zu Aufgaben 2008-02-11 22:44
derhamster
Also ich denke, dass man unter
Cachegröße = 256
verschiedenes verstehen kann. Erstens, dass der Cache 256 Wörter aufnehmen kann und zweitens, dass er 256 Blöcke aufnimmt. In der Übung wurde uns zu der ersten Variante geraten. Dann ist natürlich Looms Lösung richtig.

RE: RS Hilfe zu Aufgaben 2008-02-11 23:10
Anonymer User
Ich hab keine Ahnung ob das richtig ist.
kann das bitte jemand kontrollieren, bzw korrigierren?!?!

0x00000000 - 0xb2d05e00 = 0x4d2fa200 => C
0x00000000 - 0x80000001 = 0x7fffffff =>C, N, V
0x00000000 - 0x80000000 = 0x80000000 => C, N, V
0x00000000 - 0x0fff1236 = 0xf000edca => C, N (Hab hier ne "0" hinzugefügt, weil da eine fehlte)
0x00000000 - 0x7ffffff4 = 0x8000000c => C, N
0x80123456 - 0x00000000 = 0x80123456 => N
0x80123456 - 0x00000000 = 0x80123456 =>N
0x00000000 - 0xcfffffff = 0x30000001 =>C

RE: RS Hilfe zu Aufgaben 2008-02-12 00:26
Anonymer User
Bestimmen Sie für die folgende Referenzkette R die Anzahl der Seitenalarme bei Beladys Algorithmus und dem LRU-Verfahren bei einer Größe des Kachelspeichers von 3.

R = a b c d a b b a c e d c a f g a d b c f
das kann ich.
belady:
R = a b c *d a b b a *c *e d c *a *f *g a d *b *c *f 1:a a a a a e a a a a c c 2:- b b b c c c f g b b b 3:- - c d d d d d d d d f wobei das für die letzten drei reine willkür ist. 9BANG
lru:
R = a b c *d *a *b b a *c *e *d c *a *f *g a *d *b *c *f 1:a a a d d d c c c c c g g b b b 2:- b b b a a a a d d f f d d d f 3:- - c c c b b e e a a a a a c c 13BANG. merke:belady ist toller, aber leider unmöglich

ich versteh das mit dem einfügen noch nicht ganz. müssen 1, 2, 3 immer zu gleicher länge voll sein? manchmal wird es aufgefüllt bevor der neue eingefügt wird, aber wann und warum?

RE: RS Hilfe zu Aufgaben 2008-02-12 00:28
Anonymer User
Ich hab keine Ahnung ob das richtig ist.
kann das bitte jemand kontrollieren, bzw korrigierren?!?!

0x00000000 - 0xb2d05e00 = 0x4d2fa200 => C
0x00000000 - 0x80000001 = 0x7fffffff =>C, N, V
0x00000000 - 0x80000000 = 0x80000000 => C, N, V
0x00000000 - 0x0fff1236 = 0xf000edca => C, N (Hab hier ne "0" hinzugefügt, weil da eine fehlte)
0x00000000 - 0x7ffffff4 = 0x8000000c => C, N
0x80123456 - 0x00000000 = 0x80123456 => N
0x80123456 - 0x00000000 = 0x80123456 =>N
0x00000000 - 0xcfffffff = 0x30000001 =>C

wie kommst du drauf?

RE: RS Hilfe zu Aufgaben 2008-02-12 02:45
TriPhoenix
[schnipp]
R = a b c *d a b b a *c *e d c *a *f *g a d *b *c *f 1:a a a a a e a a a a c c 2:- b b b c c c f g b b b 3:- - c d d d d d d d d f [schnapp]

ich versteh das mit dem einfügen noch nicht ganz. müssen 1, 2, 3 immer zu gleicher länge voll sein? manchmal wird es aufgefüllt bevor der neue eingefügt wird, aber wann und warum?

Lies es andersrum, nach rechts hin vergeht die Zeit, die Spalten sagen, was drin ist. Also zum Zeitpunkt 0 ist in 1 das a, 2 und 3 sind leer. Zum Zeitpunkt 1 ist in 1 das a, in 2 das b und 3 ist leer, etc. Es wird immer erstmal, solange noch freie Plätze da sind, dieser genutzt; erst danach werden Verdrängungsstrategien betrachtet.

RE: RS Hilfe zu Aufgaben 2008-02-12 10:13
Anonymer User
Bestimmen Sie für die folgende Referenzkette R die Anzahl der Seitenalarme bei Beladys Algorithmus und dem LRU-Verfahren bei einer Größe des Kachelspeichers von 3.

R = a b c d a b b a c e d c a f g a d b c f
das kann ich.
belady:
R = a b c *d a b b a *c *e d c *a *f *g a d *b *c *f 1:a a a a a e a a a a c c 2:- b b b c c c f g b b b 3:- - c d d d d d d d d f wobei das für die letzten drei reine willkür ist. 9BANG
lru:
R = a b c *d *a *b b a *c *e *d c *a *f *g a *d *b *c *f 1:a a a d d d c c c c c g g b b b 2:- b b b a a a a d d f f d d d f 3:- - c c c b b e e a a a a a c c 13BANG. merke:belady ist toller, aber leider unmöglich
[/quote

wäre es möglich dies noch näher zu erklären?

Bei deiner Lösung sind am Anfang bei a b c keine Seitenalarme, im Skript jedoch schon.
Eigentlich wäre das dann 12 bei Belady und 16 bei LRU. Was ist nun richtig?

RE: RS Hilfe zu Aufgaben 2008-02-12 12:09
ole
ein seitenalarm wird ausgelößt, wenn eine benötigte seite nicht verfügbar ist. insofern werden auch bei den ersten drei anfragen seitenalarme ausgelöst.

RE: RS Hilfe zu Aufgaben 2008-02-12 13:01
Atomic
Ich hab keine Ahnung ob das richtig ist.
kann das bitte jemand kontrollieren, bzw korrigierren?!?!

0x00000000 - 0xb2d05e00 = 0x4d2fa200 => C
0x00000000 - 0x80000001 = 0x7fffffff =>C
0x00000000 - 0x80000000 = 0x80000000 => C, N, V
0x00000000 - 0x0fff1236 = 0xf000edca => C, N
0x00000000 - 0x7ffffff4 = 0x8000000c => C, N
0x80123456 - 0x00000000 = 0x80123456 => N
0x80123456 - 0x00000000 = 0x80123456 =>N
0x00000000 - 0xcfffffff = 0x30000001 =>C

Korrigiert mich wenn ich falsch liege [24]

RE: RS Hilfe zu Aufgaben 2008-02-12 13:15
Anonymer User
[schnipp]
R = a b c *d a b b a *c *e d c *a *f *g a d *b *c *f 1:a a a a a e a a a a c c 2:- b b b c c c f g b b b 3:- - c d d d d d d d d f [schnapp]

ich versteh das mit dem einfügen noch nicht ganz. müssen 1, 2, 3 immer zu gleicher länge voll sein? manchmal wird es aufgefüllt bevor der neue eingefügt wird, aber wann und warum?

Lies es andersrum, nach rechts hin vergeht die Zeit, die Spalten sagen, was drin ist. Also zum Zeitpunkt 0 ist in 1 das a, 2 und 3 sind leer. Zum Zeitpunkt 1 ist in 1 das a, in 2 das b und 3 ist leer, etc. Es wird immer erstmal, solange noch freie Plätze da sind, dieser genutzt; erst danach werden Verdrängungsstrategien betrachtet.

was sind noch freie plätze? ich verstehe das einfügen der letzten nicht weil dort teilweise a und d aufgefüllt wird.

RE: RS Hilfe zu Aufgaben 2008-02-12 16:32
Anonymer User
Man betrachte eine dreistufige Speicherhierarchie L1-Cache, L2-Cache und Hauptspeicher. Die relativen Zugriffszeiten seien 1, 5, 20.
Berechnen Sie für eine "look-through"-Organisation die mittlere Zugriffszeit bei Trefferquoten von 90%, 98%, 100%.
Die mittlere Zahl ist folgendermaßen zu interpretieren, falls man ein Datum nicht im L1-Cache findet, dann besteht eine Chance von 98%, daß es im L2-Cache liegt.

0,9*1+0,1*0,98*6+0,1*0,02*26= 1,54

welche formel ist das?