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

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

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

untere Speicherbereich beschrieben. Um das unnötige<br />

Nachla<strong>de</strong>n aus <strong>de</strong>m DDR-RAM von zufälligen Daten<br />

zu vermei<strong>de</strong>n, wer<strong>de</strong>n die Daten im Cache als Abbild<br />

<strong>de</strong>s unteren Speicherbereichs angenommen. Dazu<br />

müssen im „RESET“-Zustand die Tag-Adressen und<br />

Attribute <strong>de</strong>r Tag-Speicher korrekt initialisiert wer<strong>de</strong>n.<br />

Mit <strong>de</strong>n vier Cache-Blöcken, die je 4 KB Daten<br />

zwischenspeichern, können die unteren 16 KB Daten<br />

abgebil<strong>de</strong>t wer<strong>de</strong>n. Dies entspricht <strong>de</strong>m Adressraum<br />

von 0x00000000 bis 0x00003FFF. Dies ergibt für die<br />

Cache-Blöcke folgen<strong>de</strong> Adressbereiche:<br />

LESEN“-Zustand und darauf folgend in <strong>de</strong>n<br />

„LESEN/SCHREIBEN“-Zustand gewechselt. Da die<br />

nachgela<strong>de</strong>nen Daten nun auf je<strong>de</strong>n Fall im Cache<br />

verfügbar sind, kommt es zu einem Hit. In diesem Fall<br />

wird mit steigen<strong>de</strong>r Taktflanke <strong>de</strong>s System-Taktes<br />

wie<strong>de</strong>r in <strong>de</strong>n „TAG LESEN“-Zustand gewechselt,<br />

wenn <strong>de</strong>r Cache mit <strong>de</strong>m Chip-Select-Signal erneut<br />

angesteuert wird. Ansonsten kehrt <strong>de</strong>r Zustandsautomat<br />

in <strong>de</strong>n „LEERLAUF“-Zustand zurück, bis ein<br />

erneuter Cache-Zugriff erfolgt. Das Zustandsdiagr<strong>am</strong>m<br />

ist in Abbildung 6.4 dargestellt.<br />

Block 0: 0x00000000 bis 0x00000FFF<br />

Block 1: 0x00001000 bis 0x00001FFF<br />

Block 2: 0x00002000 bis 0x00002FFF<br />

Block 3: 0x00003000 bis 0x00003FFF<br />

Die Tag-Adressen innerhalb <strong>eines</strong> Blockes sind für<br />

alle Zeilen i<strong>de</strong>ntisch und unterschei<strong>de</strong>n sich nur in <strong>de</strong>n<br />

zwei LSBs gegenüber <strong>de</strong>n an<strong>de</strong>ren Blöcken. Die<br />

oberen 18 Bit sind dabei immer gleich „0“. Das Attribut<br />

für das Alter einer Cache-Zeile kann beliebig gewählt<br />

wer<strong>de</strong>n, jedoch muss dabei sichergestellt sein, dass<br />

bei <strong>de</strong>n Cache-Zeilen mit gleicher Selektor-Adresse<br />

je<strong>de</strong>r Zählerwert nur einmal verwen<strong>de</strong>t wird. Zur<br />

Vereinfachung wird das Attribut entsprechend <strong>de</strong>n<br />

zwei LSBs <strong>de</strong>r Tag-Adressen initialisiert. Das Dirty-Bit<br />

wird immer auf „0“ gesetzt. Somit ergeben sich für die<br />

Tag-Speicher <strong>de</strong>r Cache-Blöcke die in Abbildung 6.3<br />

gezeigten Werte für die Initialisierung.<br />

Abbildung 6.4: Zustandsautomat<br />

Abbildung 6.3: Initialisierung <strong>de</strong>r Tag-Speicher<br />

Nach <strong>de</strong>r Initialisierung wechselt er in <strong>de</strong>n<br />

„LEERLAUF“-Zustand. Sobald während einer steigen<strong>de</strong>n<br />

Taktflanke <strong>de</strong>s langs<strong>am</strong>en System-Takts <strong>de</strong>r<br />

Cache mit <strong>de</strong>m Chip-Select-Signal angesteuert wird,<br />

wechselt er in <strong>de</strong>n „TAG LESEN“-Zustand, in welchem<br />

die Tag-Adressen aus <strong>de</strong>n adressierten Cache-Zeilen<br />

ausgelesen wer<strong>de</strong>n. Danach wird in <strong>de</strong>n „LESEN/<br />

SCHREIBEN“-Zustand gewechselt. In diesem<br />

Zustand wer<strong>de</strong>n die Tag-Adressen in <strong>de</strong>n Cache-<br />

Blöcken miteinan<strong>de</strong>r verglichen und gegebenenfalls<br />

ein Hit-Signal erzeugt. Kommt es zu einem Hit,<br />

können die Daten aus <strong>de</strong>m entsprechen<strong>de</strong>n Cache-<br />

Block gelesen o<strong>de</strong>r geschrieben wer<strong>de</strong>n. Bei einem<br />

Miss wird in <strong>de</strong>n „NACHLADEN“-Zustand gewechselt,<br />

in <strong>de</strong>m die benötigte Datenzeile aus <strong>de</strong>m DDR-RAM<br />

nachgela<strong>de</strong>n wird. Nach <strong>de</strong>m Nachla<strong>de</strong>vorgang wird<br />

mit steigen<strong>de</strong>r Taktflanke wie<strong>de</strong>r in <strong>de</strong>n „TAG<br />

7. Simulation<br />

Zur Simulation <strong>de</strong>s Cache-Systems wird das<br />

Progr<strong>am</strong>m Mo<strong>de</strong>lSim verwen<strong>de</strong>t. Dabei kann das<br />

Verhalten <strong>de</strong>r Schaltung genau analysiert wer<strong>de</strong>n.<br />

D<strong>am</strong>it die Eingangssignale nicht für je<strong>de</strong>n Taktzyklus<br />

einzeln festgelegt wer<strong>de</strong>n müssen, wird das Cache-<br />

System zus<strong>am</strong>men mit <strong>de</strong>m kompletten Mikrocontrollersystem<br />

simuliert. Sollte es im Cache-<br />

Speicher zu einem Fehler kommen, ist dies meist<br />

leicht <strong>am</strong> Fehlverhalten <strong>de</strong>s Mikrocontrollersystems zu<br />

erkennen.<br />

Bei <strong>de</strong>r simulierten Systemfrequenz von 50 MHz<br />

erfolgt <strong>de</strong>r Zugriff auf <strong>de</strong>n Cache gemäß <strong>de</strong>r Anfor<strong>de</strong>rung<br />

innerhalb <strong>eines</strong> System-Taktes. Dies entspricht<br />

einer Zugriffszeit von 20 ns. Beim Nachla<strong>de</strong>n<br />

einer Datenzeile aus <strong>de</strong>m DDR-RAM wer<strong>de</strong>n für <strong>de</strong>n<br />

ges<strong>am</strong>ten Datenzugriff 23 Systemtakte benötigt, womit<br />

sich eine Zugriffszeit bei einem Miss von 460 ns<br />

ergibt. Falls dabei eine Cache-Zeile zuvor in <strong>de</strong>n RAM<br />

zurückgeschrieben wer<strong>de</strong>n muss, dauert <strong>de</strong>r Zugriff<br />

35 Systemtakte, womit sich die Zugriffszeit auf 700 ns<br />

verlängert. Wird während <strong>de</strong>s Nachla<strong>de</strong>vorgangs ein<br />

Refresh <strong>de</strong>s DDR-RAMs vom DRAM-Controller<br />

ausgelöst, verlängert sich <strong>de</strong>r Zugriff um weitere 4<br />

System-Takte bzw. 80 ns.<br />

MPC-Workshop, Juli 2009<br />

68

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!