Cacheline

OP #468909
Lesenswert?

Hallo zusammen,

wir haben gerade ein kleines Problem mit dem Cache des Coldfire-V4e uP.

Auf dem Bild im Anhang aus dem "MCF5485 ReferenceManual" ist der 4-Wege 
Assoziativspeicher dargestellt.

Unsere Frage:
Wozu dienen bei der Adresse die Bits 0 bis 3? Es würden doch 2Bits 
reichen um aus der Cacheline das richtige Langwort auszuwählen.
(Der Datenbus ist auch 32Bit breit)

Danke schonmal,

Grüße,
Pete
Angehängte Dateien:
Gast #468978
Lesenswert?

Eine Cacheline ist hier offensichtlich 16 Bytes gross. Folglich dienen 
A4:A11 zur Auswahl der Cacheline, und A0:3 adressiert das Byte/Wort 
darin. D.h. die Verwaltungseinheit in diesem Cache ist nicht 4 Bytes 
gross sondern 16 Bytes.
Gast #469065
Lesenswert?

> D.h. die Verwaltungseinheit in diesem Cache ist nicht 4 Bytes gross sondern 16 
Bytes.

.. Du meinst wohl 16Bit, wenn ich dich richtig verstanden habe?
Aber dann wär wieder das Problem, dass man mit 16Bit auf einem 32Bit 
Datenbus nicht viel anfangen kann :(


Komischerweise steht in demselben Manual, zwei Seiten davor, dass der 
Tag 21 Bit groß wäre und nicht 19Bit, wie in dem Bild da oben.
(siehe Anhang)

Dann würde es wieder einwandfrei passen:
A31:A11 - Tag
A10:A1  - Index
A1 :A0  - Auswahl des 32Bit Langwortes in der Cacheline

.. ich bin verwirrt
Angehängte Dateien:
Gast #469111
Lesenswert?

Praktisch alle Caches speichern als kleinste unabhängige Einheit ganze 
Blöcke, die um ein Mehrfaches grösser sind als die Wortbreite der 
Maschine. Dieser Cache speichert also keine Maschinenworte zu 32 Bits, 
sondern Blöcke zu 16 Bytes. Was man eine Cacheline nennt. Und was in den 
Bildern so auch deutlich dargestellt ist.

Wenn ein Lesezugriff keinen Treffer im Cache landet, wird eine komplette 
Cacheline aus dem Speicher geladen, und ersetzt eine andere Cacheline. 
Operationen zwischen Cache und Speicher finden in Blöcken statt, den 
Cachelines. Lesend wie schreibend. Nicht in Bytes oder Maschinenworten.

Der Index adressiert folglich Cachelines, nicht Maschinenworte, und 
besteht daher aus A12:A4.

Die Angabe von 21 Tagbits passt zum gezeigten Format, wenn man die 
V(alid) und M(odified) Bits zum Tag mitzählt. Das Tag besteht hier also 
auch A31:A13,V,M.
OP #469172
Lesenswert?

Ah, ok, danke. Das mit V und M Bit erklärt die 21Bit Tag-Breite

Was eine Cacheline ist hab ich schon verstanden, aber mein Problem liegt 
wo anders:
In der Cacheline sind 4 Langwörter mit je 32Bit gespeichert.
Angenommen ich habe einen Hit, dann legt der MUX, je nachdem in welchem 
WAY der Hit aufgetreten ist, die Cacheline raus. Und aus dieser wird mit 
den letzten 2 Adressbits das gesuchte Langwort ausgewählt und auf den 
Bus gelegt.

Wozu benötige ich dann die Bits 3..2?? Mit den 4 letzten Adressbits 
könnte ich ja ganze 16 Langwörter aus einer Cacheline auswählen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren