Ich kann ihnen Cache-Speicher ganz schnell und ganz rasant erklären
Also, der erste Unterschied ist der
1.) Ich habe einen ortsaddressierten Arbeitsspeicher
2.) Einen Inhaltsaddressierte
Nehmen wir den typischen Arbeittspeicher, ich will auf Addresse
0x5b zu greifen. Gut, dann lege ich die an
Gut, das ist ortaddressiert. Jetzt was ich inhaltsaddressiert. Sie dürfen das nicht verwechseln
Inhaltsaddressiert ist der Cache, aber es wird kein Inhalt angelegt. Beispiel: Wenn ich im RAM einen Elefanten an Addresse 0x5b habe, dann lege ich 0x5b und kriege - den Elefanten als Datum
Aber, wenn ich jetzt einen Cache dazwischen schalte, dann ist der Inhaltsaddressiert. Das heisst aber nicht, ich lege einen Elefanten an und kriege ein. Wie es als Datum im RAM steht
Sondern, ich lege 0x5b an, was im RAM addressiert werden soll und jetzt - die Organisation des Cache ist assoziativ, d.h. Inhaltsaddressiert. Die Organisation. Das heisst nicht, ich lege das Datum an. Sondern die Addresse für den RAM
Gut, der Cache ist Zwischenspeicher und ich tue 0x5b an das RAM - der Zwischenspeicher dazwischen
Jetzt geht das 0x5b an den Cache. Und das assoziativ heisst einfach, das Datum, was da im RAM steht, steht quasi genauso wie beim RAM drin, nur - der Unterschied, diese 0x5b wurde mit dem Datum hinterlegt. Anders als RAM muss die 0x5b nicht an der Stelle 0x5b liegen
Also, beim RAM ist das: Die 0x4b liegt irgendwo vor der 0x5b
Also, 0, 1, 2, 3, 4,
Aber, die 4, und alles andere kann beim Cache überlegen, dazu gepseichert sind das Datum
Und jetzt der zweite Teil
1.) Ich habe die Cache-Zeile
2.) Den Cache Block.
Was isrt jetzt was. Also, erstnes ich speichere nicht Byte für Byte. Sondern ich speichere immer gleich 128 Byte
Gut
1.) Jetzt haben wir zu sagen, einen physischen Teil, von Speicher
2.) Einen Datenteil, der flüchtig ist
Also, ich habe ein Datum, von den Registern her gesehen. Ich habe 16 Bit Register und den wert
0xfffe
Gut, das ist das Datum. Das ist der flüchtige Teil. Dann habe ich den physischen Teil, das ist das Register
So, der flüchtige Teil, ist die Cache Zeil. Der Physische Teil der Cache Block
Also, jetzt entspricht die Länge oder Breite oder grösse der Cache Zeile dem Cache Block
Jetzt könnte man fragen - warum hat man Cache Zeilen, die Dynimisch sind, also Daten, genauso gross wie den Cache Block
Das ist ganz einfach. Angenommen ich habe ein 128 Bit Register. Dann speichere ich ein 128 Bit drin
Die Cache Zeile ist einfach ein flüchtiger Datums Teil, der kommt in einen physischen Bereich, den Cache Block
So weit einfach.
Jetzt stellen wir uns einen ganz einfach Cache vor. Wir schalten keinen Speicher dazwischen, sondern ein Register
Das ist nicht 128 Bit Gross, 128 Byte. Also, wir schalten ein Register mit 128 Byte dazwischen
Jetzt der Cache speicher. der Besteht aus einem einzigen Satz
Also, anstatt, dass ich ein Register nehme, auf dem Datenbus, was zwischen Arbeitsspeicher und Prozessor liegt, nehme ich einen ganzen Speicher, mit lauter 128 Byte Blöcken
Also, ein Speicher, mit 128 Byte Blöcken und davon hat der Speicher 16
Also, ein Speicher, mit 16 Blöcken, so heissen , die 128 Byte physisch und das sind 16 Blöcke, und jeder Block ist 128 Byte
das wäre Vollassoziativ
Jetzt kaufe ich diesen Speicher
16 Blöcke und jeder Block ist 128 Byte
Jetzt kommt ein Gedankenexperiment. Angenommen ich kaufe diesen Cache, dnan kaufe ich den deswegen, dass ich ihn benutzen als Cache. Ich möchte seine Vorzüge geniessen
Ich kaufe einen solchen Speicher und schliesse den an
16 Blöcke zu je 128 Byte
Gut, wenn ich einen Cache kaufe, erwarte ich, das Datum kann überall stehen. Ich kaufe einen Riegel. Sagen wir mal so - ein Plätchen. Da sind 16 Blöcke zu 128 Byte draufä
Jetzt erwarte nur eines von dem: Das Datum kann überall stehen. Sonst kaufe ich ja ein Plättchen, das muss ja seinen Zweck erfüllen. Also, kann das über stehen
Das geht nicht um das nächste Thema. Aber ein Vollassoziaitver Cache soll seinen Zweck erfülleln
Jetzt kaufe ich noch einen Cache. Jetzt habe ich 2. Gut, jeder der beiden erfüllt ein wunderbares Kriterium. Das Datum kann, wnen man das pro Die sieht, also pro Plättchen überall stehne
Jetzt habe ich zwei
Jetzt fange ich an in Sätzen zu reden.
Wenn ch eine Charge beim Baumarkt bestelle, dann bestelle ich einen Satz. Ich habe einen Satz von den Bauteilen und einen Satz von denn
Jeder, Die den ich kaufe, besthet als lauter Blöcken. Aber die Blöcke zusammengefasst, für die gkauften sind jeweils ein Satze, eine Charge
Also, habe ich jetzt zwei Sätze
Die Blöcke werden zu Sätzen zusammengefasst. Das ist ein Sazt von Blöcken
Jetzt habe ich zwei solche Sätze. Gut, jetzt tut jeder was er soll. Es kann in jedem der beiden in jedem Block stehen
Jetzt habe ich aber 2 Sätze - jetzt kann das entweder in dem ersten Stehen oder im zweiten.
Jeder erfüllt dass Kriterium. Innerhalb kann das an jeder stelle, in jedem Stehen. Jetzt habe ich 2 gekauft, danach 4. Nachdem ich die alle angeschlossen habe, kann jedem das Ding überall stehen
Aber ich habe 4 angeschlossen. Es gibt eine Einschränkung, nachdem das geschehen ist. Entweder in dem einen Satz, in dem ersten Die, dann im zweiten, dann dritten
Und was ist Direkt abgebildet.
Ich hatte ja am Anfang ein Register. Ich hatte keine Blöcke, ich hatte nur einen einzigen Block. Ein Register
Gut, Direkt abgebildet heisst, ich habe lauter Register, kaufe Register für Register, aber jedes der Dies ist immer nur eines. Jetzt kann das da stehen oder da
Jetzt psychologische Anmerkung: Jetzt kommen Baumarkt mitarbeiter und sagen: Man kann den Cache nicht so anschliessen. Danke schön. Wir sind nicht im Baumarkt, es geht um das kaufen und was sie montieren.
Aber nichts gegen den Baumarkt, ausgerechnet nicht gegen die. Im Gegensatz zu anderne, gehören sie zu den tadellost organisiertesten Menschen und Angelenheiten.
Cache Richtig
- davidvajda.de
- Site Admin
- Beiträge: 1497
- Registriert: Di Jul 18, 2023 8:36 pm
- Wohnort: D-72072, Tübingen
- Kontaktdaten: