www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Cacheline


Autor: Pete Sahat (petesahat)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: petesahat (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Pete Sahat (petesahat)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Edit: Tschuldigung, der Index ist nur 9Bit groß. Also:
A31:A11   - Tag
A10:A #2# - Index
A1 :A0    - Auswahl des 32Bit Langwortes in der Cacheline

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fix: ... Das Tag besteht hier also aus A31:A13,V,M.

Autor: Pete Sahat (petesahat)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.