Durchschnittliche Zugriffszeit |
Juergen20
Grünschnabel
Dabei seit: 27.06.2020
Beiträge: 4
 |
|
|
27.06.2020 20:06 |
|
|
NixJava unregistriert
 |
|
Um die Aufgabe zu erklären, vernachlässige ich zunächst die beiden Cache-Ebenen und betrachte nur die beiden letzten Speicherzugriffe, damit ich mit dem letzten Zugriff eine sichere Hitrate von 100% erhalte:
Mathematisch berechnet man hierbei den Erwartungswert, d.h. die durchschnittliche Zugriffszeit beträgt
![[latex]0.99 \cdot 100\text{ns} + 0.01 \cdot 8\text{ms}[/latex]](http://www.matheboard.de/latex2png/latex2png.php?0.99 \cdot 100\text{ns} + 0.01 \cdot 8\text{ms})
0.99 gibt die Hitrate, 0.01 die Missrate an.
In der Aufgabe hat man allerdings vier Speicherebenen gegeben, d.h. man muss die Berechnungen verschachteln.
![[latex]0.92 \cdot 5\text{ns} + 0.08 \cdot ( \dots[/latex]](http://www.matheboard.de/latex2png/latex2png.php?0.92 \cdot 5\text{ns} + 0.08 \cdot ( \dots)
Bei der Berechnung gehe ich davon aus, dass die Zeit für einen Miss bereits in der Zugriffszeit der nächsten Ebenen einbezogen ist. Alternativ könnte die Zeit eines Fehlschlags der Zugriffszeit eines Hits entsprechen. Dann müsste man dies natürlich zusätzlich berücksichtigen. Auskunft darüber kann nur das Vorlesungsskript geben.
|
|
28.06.2020 13:39 |
|
|
Juergen20
Grünschnabel
Dabei seit: 27.06.2020
Beiträge: 4
 |
|
Hallo NixJava, danke für deine Hilfe.
Wäre des dann die Lösung?
(0,92*5ns+0,08)*(0,95*200ns+0,05)*(0,99*100ns+0,01)*(1+8ms)
|
|
28.06.2020 14:00 |
|
|
NixJava unregistriert
 |
|
So macht es keinen Sinn, weil die Klammern falsch gesetzt sind. Sämtliche Folgeberechnungen müssen sich auf die erste Missrate 0.08 beziehen.
|
|
28.06.2020 14:33 |
|
|
Juergen20
Grünschnabel
Dabei seit: 27.06.2020
Beiträge: 4
 |
|
Ich weis gerade leider nicht wie du es meinst, so meinst du es bestimmt nicht
0,92*5ns+0,08*(0,95*200ns+0,05*0,99*100ns+0,01*1+8ms) .
Kannst du mir vielleicht bitte zeigen wie die richtige Lösung auszusehen hat ?
|
|
28.06.2020 14:56 |
|
|
as_string
Haudegen
  
Dabei seit: 06.11.2013
Beiträge: 635
Herkunft: Heidelberg
 |
|
Das muss sich natürlich bei den Folgenden Schritten so fortsetzen.
Mal ein Beispiel: Wie hoch ist die Häufigkeit (bzw. der auf 1 normierte Anteil der Häufigkeit), dass auf die Festplatte zugegriffen werden muss?
Das Bedeutet ja, dass es weder im L1 noch im L2 Cache gefunden wurde und auch nicht im Hauptspeicher. Also musst Du ja dafür alle Miss-Raten zusammen multiplizieren:
0,08*0,05*0,01
Wie hoch ist die Häufigkeit dafür, dass es im Hauptspeicher gefunden wird? Da musst Du die Missrate von den vorhergehenden Stufen zusammen multiplizieren und das Produkt dann noch mit der Hitrate der betrachteten Stufe (die war bei der Festplatte 100%, deshalb fällt die oben weg als Faktor)
Also hab ich für den Hauptspeicher:
0,08*0,05*0,99
Dann weiter mit dem L2 Cache: Die vorhergehende Stufe ist nur noch der L1 Cache, für den brauche ich die Miss-Rate und für den L2-Cache die Hit-Rate:
0,08*0,95
Für den L1 Cache gibt es keine vorgelagerten Stufen (was so eigentlich nicht stimmt, normalerweise betrachtet man das Prozessor-Register noch als vorgelagerte Stufe, aber nicht in der Aufgabe), also ist nur noch die Hitrate für diesen ausschlaggebend, also:
0,92
Diese Faktoren musst Du mit den entsprechenden Zeiten multiplizieren und die Summe liefert Dir dann den gesuchten Durchschnitt.
Das mit der Klammer kannst Du auch machen. Wie Du siehst, haben die ersten drei Faktoren jeweils die 0,08 drin (also die Missrate vom L1 Cache), die kannst Du natürlich ausklammern, genau so für die ersten beiden die 0,05 (da hast Du bei Deiner Rechnung eine Klammer wieder vergessen). Aber ich finde es wie oben erstmal leichter zu verstehen.
Gruß
Marco
|
|
29.06.2020 10:41 |
|
|
|