01.01.2015 Aufrufe

Der UMC 0.18 Design Flow am Beispiel eines PDA ... - Mpc.belwue.de

Der UMC 0.18 Design Flow am Beispiel eines PDA ... - Mpc.belwue.de

Der UMC 0.18 Design Flow am Beispiel eines PDA ... - Mpc.belwue.de

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Cache-Speicher für <strong>de</strong>n Softprozessor SIRIUS mit DDR-Interface<br />

gleiche Anzahl von Zeilen, wobei je<strong>de</strong> dieser Zeilen<br />

eine bestimmte Anzahl zus<strong>am</strong>menhängen<strong>de</strong>r Datenbytes<br />

enthält. Diese liegt üblicherweise im Bereich von<br />

4 bis 128 Bytes. [5]<br />

Besteht <strong>de</strong>r Cache nur aus einem Block, gibt es zwei<br />

verschie<strong>de</strong>ne Organisationstypen: „vollassoziativ“ und<br />

„direkt verdrahtet“. Bei einem vollassoziativen Cache<br />

kann je<strong>de</strong> Datenzeile aus <strong>de</strong>m großen Speicher an<br />

je<strong>de</strong>r beliebigen Stelle im Cache abgelegt wer<strong>de</strong>n. Bei<br />

einem direkt verdrahteten Cache kann je<strong>de</strong> Zeile,<br />

abhängig von <strong>de</strong>r Adresse, nur an einer einzigen<br />

Position gespeichert wer<strong>de</strong>n. Dadurch vereinfacht sich<br />

zwar <strong>de</strong>r Implementierungsaufwand, sobald jedoch<br />

nacheinan<strong>de</strong>r abwechselnd auf Speicherbereiche<br />

zugegriffen wird, die auf dieselbe Position im Cache<br />

verdrahtet sind, kommt es je<strong>de</strong>s Mal zu einem Miss.<br />

Um diesem Problem entgegenzuwirken, können<br />

mehrere direkt verdrahtete Cache-Blöcke parallel<br />

verwen<strong>de</strong>t wer<strong>de</strong>n. [5]<br />

Bei n Blöcken spricht man von einem n-fach assoziativen<br />

Cache. Je<strong>de</strong> Adresse ist auch hier mit einer<br />

bestimmten Zeile innerhalb <strong>eines</strong> Blockes verdrahtet,<br />

jedoch kann <strong>de</strong>r Block selbst frei gewählt wer<strong>de</strong>n.<br />

Somit ergeben sich für n Blöcke auch n mögliche<br />

Speicherpositionen im Cache. Diese n Speicherpositionen,<br />

die mit <strong>de</strong>nselben Adressen verdrahtet<br />

sind, wer<strong>de</strong>n als Satz bezeichnet. Die Anzahl <strong>de</strong>r<br />

Sätze in einem Cache ist gleich <strong>de</strong>r Anzahl <strong>de</strong>r Cache-<br />

Zeilen in einem Block. [5] Abbildung 3.2 zeigt einen n-<br />

fach assoziativen Cache mit m Sätzen.<br />

Abbildung 3.2: n-fach assoziativer Cache mit m<br />

Sätzen<br />

Für die Entwicklung <strong>de</strong>s Caches war vorgegeben,<br />

dass <strong>de</strong>r Cache 4-fach assoziativ ausgelegt sein soll.<br />

D<strong>am</strong>it ist sichergestellt, dass min<strong>de</strong>stens vier<br />

unterschiedliche Datenbereiche gleichzeitig zwischengespeichert<br />

wer<strong>de</strong>n können. Außer<strong>de</strong>m stellt dies<br />

einen guten Kompromiss aus Effizienz und Implementierungsaufwand<br />

dar.<br />

3.3. Adressierung und Steuerung<br />

Bei Cache-Speichern wird die Adresse in drei<br />

Adressen unterteilt, die Tag-Adresse, die Selektor-<br />

Adresse und die Wort-Adresse, z.B. stellen bei <strong>de</strong>r<br />

Adresse „11001001“ die drei MSBs „110“ die Tag-<br />

Adresse, die zwei mittleren Bit „01“ die Selektor-<br />

Adresse und die drei LSBs „001“ die Wort-Adresse<br />

dar. Die Wort-Adresse adressiert ein Wort innerhalb<br />

einer Cache-Zeile, die mit <strong>de</strong>r Selektor-Adresse<br />

ausgewählt wird. Die zus<strong>am</strong>menhängen<strong>de</strong>n Daten<br />

innerhalb einer Cache-Zeile haben somit immer eine<br />

gemeins<strong>am</strong>e Tag- und Selektor-Adresse, die dazu<br />

gehörige Tag-Adresse wird zu je<strong>de</strong>r Cache-Zeile<br />

separat gespeichert. [5]<br />

Abbildung 3.3: Adressierung im Cache<br />

In Abbildung 3.3 ist die Adressierung <strong>eines</strong> Cache-<br />

Blockes dargestellt. Wenn die Tag-Adresse einer über<br />

<strong>de</strong>n Selektor ausgewählten Cache-Zeile mit <strong>de</strong>r<br />

gespeicherten Tag-Adresse in einem <strong>de</strong>r Blöcke übereinstimmt,<br />

kommt es zu einem Hit. Die adressierten<br />

Daten sind im Cache verfügbar und können direkt<br />

gelesen o<strong>de</strong>r geschrieben wer<strong>de</strong>n. An<strong>de</strong>rnfalls kommt<br />

es zu einem Miss und die entsprechen<strong>de</strong> Datenzeile<br />

muss aus <strong>de</strong>m großen Speicher in einen Cache-Block<br />

nachgela<strong>de</strong>n wer<strong>de</strong>n. Dabei wird auch die entsprechen<strong>de</strong><br />

gespeicherte Tag-Adresse aktualisiert.<br />

Welcher Cache-Block dabei gewählt wird, ist im nachfolgen<strong>de</strong>n<br />

Kapitel beschrieben.<br />

3.4. Verdrängungsstrategien<br />

Beim Nachla<strong>de</strong>n einer Daten-Zeile in einen 4-fach<br />

assoziativen Cache kann diese theoretisch in je<strong>de</strong>m<br />

<strong>de</strong>r vier Cache-Blöcke abgelegt wer<strong>de</strong>n, wobei jedoch<br />

die an <strong>de</strong>r betreffen<strong>de</strong>n Position befindliche Zeile aus<br />

<strong>de</strong>m Cache verdrängt wird. I<strong>de</strong>alerweise sollte dabei<br />

<strong>de</strong>r Cache-Block gewählt wer<strong>de</strong>n, <strong>de</strong>ssen über die<br />

Selektor-Adresse ausgewählte Zeile <strong>am</strong> längsten nicht<br />

benutzt wird. Diese ist jedoch meist im Voraus nicht<br />

bekannt. Aus diesem Grund gibt es verschie<strong>de</strong>ne<br />

Verdrängungsstrategien. Es kann beispielsweise eine<br />

zufällige, die älteste, die <strong>am</strong> seltensten genutzte o<strong>de</strong>r<br />

MPC-Workshop, Juli 2009<br />

61

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!