DIPLOMARBEIT - FG Mikroelektronik, TU Berlin
DIPLOMARBEIT - FG Mikroelektronik, TU Berlin
DIPLOMARBEIT - FG Mikroelektronik, TU Berlin
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Technische Universität <strong>Berlin</strong><br />
Institut für <strong>Mikroelektronik</strong><br />
Lukas Bauer<br />
5.6 Realisierung in Speedchart-VHDL<br />
5.6.1 Steuerung von Host-Zugriffen<br />
Diplomarbeit<br />
Hochleistungs-Grafikprozessor in Speedchart-VHDL<br />
Abschnitt 5.6<br />
Seite 42<br />
Die Steuerung aller Host-Zugriffe auf den Grafikprozessor – des Lesens und Schreibens von Registern<br />
oder Speicherinhalten – erfolgt im Diagramm TIM ACCESS (Seite 120).<br />
Mit der fallenden Flanke von AS werden die Adresse, die Daten (bei nicht-gemultiplextem Bus),<br />
das Register-Select-Signal RS und die Byte-Select-Signale BS3 bis BS0 in interne Register (in die<br />
Variablen A lat, D lat, RS lat und BS lat) übernommen (T5). Bei Host-Busbreiten unter 32 Bit<br />
werden zur Bestimmung der Byte-Select-Signale auch die unteren Adreßleitungen herangezogen,<br />
da in diesem Fall eine Umsetzung des Zugriffs auf eine interne Datenbreite von 32 Bit<br />
geschieht, wobei nur die adressierten 1 oder 2 Bytes des Langworts über die BS-Signale freigegeben<br />
werden. Der weitere Zugriff wird auf diese Weise vereinfacht, da weitere Fallunterscheidungen nicht<br />
mehr nötig werden.<br />
Abhängig vom Zustand des HWE-Signals bei der fallenden Flanke von AS wird ein Lese- oder<br />
Schreibzugriff durchgeführt (T1, T13). Bei gemultiplexten Bussen (RS MUX=’1’) wird vorher auf<br />
die fallende Flanke von DS gewartet. In Abhängigkeit vom Signal RS lat wird dann ein Registerzugriff<br />
oder ein Speicherzugriff eingeleitet.<br />
Registerzugriffe erfolgen in den untergeordneten Diagrammen REG READ (S. 121) und<br />
REG WRITE (S. 122). Während die Register in REG READ als Langworte gelesen werden,<br />
aus denen anschließend evtl. die richtigen Bytes ausgewählt werden, dürfen in REG WRITE nur<br />
die Bytes geschrieben werden, die über die BS-Signale freigegeben wurden. Eine Besonderheit bilden<br />
einige Register, die nur gelesen werden können, sowie einige Konfigurations-Register, die durch<br />
eine Verriegelung vor unbefugtem Beschreiben geschützt werden können: Ein Schreiben ist nicht<br />
möglich, wenn das LOCK-Bit im CONFIG-Register gesetzt ist. Der Schutz kann jedoch durch<br />
Schreiben einer bestimmten Byte-Folge in das CONFIG-Register aufgehoben werden (T3).<br />
Bei Schreibzugriffen auf den Speicher werden Daten, Adresse und BS-Signale im FIFO-Puffer<br />
für zu schreibende Daten abgelegt (T10) und der Host-Zugriff sofort beendet. Das Beschreiben der<br />
RAMs übernimmt eine andere Einheit (s. Abschnitt 5.6.3). Falls der FIFO-Puffer voll ist, wird so<br />
lange gewartet, bis wieder Platz zum Ablegen des aktuellen Langworts ist.<br />
Bei Lesezugriffen auf den Speicher hingegen muß immer gewartet werden, bis der Schreibpuffer<br />
leer ist, da anderenfalls Unstimmigkeiten bei Schreib- und Lese-Zugriffen auf die gleichen<br />
Daten auftreten könnten. Zur Anforderung der zu lesenden Daten wird die Adresse in A READ<br />
abgelegt und MEM READ auf ’1’ gesetzt. Wenn die Daten bereitstehen, erfolgt die Rückmeldung<br />
(READ DONE=’1’) von der Speicherzugriffs-Einheit (Abschnitt 5.6.3). Daraufhin wird der<br />
Host-Zugriff abgeschlossen.<br />
Der Handshake über das RDY-Signal erfolgt in T14, T17 und T15 gemäß der Beschreibung in<br />
Abschnitt 5.2.<br />
In einem asynchronen Block (Seite 120 rechts) erfolgt für die oben beschriebenen Zugriffe die Umsetzung<br />
der Schreib- und Lese-Daten auf die Host-Busbreite. Bei 8 Bit Host-Busbreite<br />
z. B. werden die Daten vom Host auf allen vier Bytes des TIM-internen Daten-Langworts DATA IN<br />
wiedergegeben, von denen nur eines über BS zum Schreiben freigegeben wird. Die von TIM auszugebenden<br />
Daten werden anhand der untersten zwei Adreßbits aus dem internen Langwort DATA OUT<br />
ausgewählt und auf D7...D0 des Host-Busses ausgegeben. Bei 32 Bit Host-Busbreite erfolgt keine<br />
Umsetzung. Ist jedoch das NUBUS-Bit gesetzt, erfolgt eine Vertauschung der Bytes in der Datenphase.