21.07.2013 Aufrufe

DIPLOMARBEIT - FG Mikroelektronik, TU Berlin

DIPLOMARBEIT - FG Mikroelektronik, TU Berlin

DIPLOMARBEIT - FG Mikroelektronik, TU Berlin

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.

Technische Universität <strong>Berlin</strong><br />

Institut für <strong>Mikroelektronik</strong><br />

Lukas Bauer<br />

Diplomarbeit<br />

Hochleistungs-Grafikprozessor in Speedchart-VHDL<br />

Abschnitt 6.2<br />

Seite 46<br />

Bei Kopierbefehlen, die auf zweidimensionalen Bildschirmbereichen arbeiten, kann mit unterschiedlichen<br />

Startadressen und Zeilenlängen von Quell- und Zielbildschirm gearbeitet werden (vgl. Register<br />

SSTART, DSTART, SINC und DINC, Tabelle 18). Dadurch wird es möglich, verschiedene<br />

virtuelle Bildschirme unterschiedlicher Auflösung gleichzeitig im Speicher zu halten.<br />

Bei allen Kopierbefehlen erfolgen die Speicherzugriffe, falls freigegeben, im Fast Page Mode. Da<br />

dies beim abwechselnden Lesen und Schreiben von Daten aus unterschiedlichen Speicherbereichen<br />

nicht möglich wäre, werden die Daten erst in einer Page-Mode-Sequenz in einen internen Puffer<br />

gelesen, um dann in einer weiteren Page-Mode-Sequenz geschrieben zu werden. Dies bedeutet einen<br />

erheblichen Geschwindigkeitsvorteil.<br />

Aus Zeitgründen konnten im Rahmen dieser Arbeit nur zwei Befehle implementiert werden: der<br />

“Clip”-Befehl und der sehr umfangreiche “Pixel Block Transfer”-Befehl.<br />

6.2 Funktionsweise der implementierten Befehle<br />

6.2.1 Der “Clip”-Befehl<br />

Der Clip-Befehl dient dazu, die kartesischen Koordinaten des Zielbereichs eines Befehls, der auf<br />

zweidimensionalen Bildschirmbereichen arbeitet, auf ein vorgegebenes Zielfenster zu beschränken.<br />

Dies ist bei grafischen Benutzeroberflächen häufig erforderlich.<br />

Vor Ausführung des Befehls müssen in den Registern WSTARTX, WSTARTY, WENDX und<br />

WENDY die Koordinaten des Zielfensters angegeben werden.<br />

Bei der Ausführung des Befehls ermittelt TIM aus den Koordinaten des linken oberen Pixels (den<br />

Startkoordinaten) des Zielbereichs, die in DXADR und DYADR stehen, sowie den Ausdehnungen<br />

DX und DY des Zielbereichs die Start- und Endkoordinaten des Zielbereichs.<br />

Anschließend werden alle vier Koordinaten von Zielbereich und Zielfenster verglichen. Liegt eine<br />

Koordinate des Zielbereichs außerhalb des Zielfensters, so wird das Registerbit WINT gesetzt und,<br />

falls freigegeben, ein Interrupt ausgelöst. Außerdem wird die Koordinate des Zielbereichs durch<br />

den Wert der entsprechenden Zielfenster-Koordinate ersetzt. Dabei wird eine Rückrechnung in<br />

Startkoordinate und Ausdehnung erforderlich.<br />

Liegt kein Pixel der Zielbereichs innerhalb des Zielfensters, wird das Registerbit CINT gesetzt und<br />

evtl. ein Interrupt ausgelöst. In diesem Fall kann auf die Ausführung des sonst sofort nachfolgenden<br />

Grafikbefehls verzichtet werden.<br />

Nach der Anpassung der Koordinaten werden die kartesischen Startkoordinaten des Zielbereichs in<br />

eine lineare Pixeladresse umgerechnet, damit im Anschluß an den Clip-Befehl sofort ein Befehl mit<br />

linearer Adressierung ausgeführt werden kann.<br />

6.2.2 Der “Pixel Block Transfer”-Befehl<br />

Der “Pixel Block Transfer”-Befehl ist ein sehr mächtiger Kopierbefehl für zweidimensionale Bildschirmbereiche.<br />

Er erlaubt neben dem einfachen Kopieren auch vielfältige Möglichkeiten der<br />

Verknüpfung von Quell- und Zieldaten gemäß Tabelle 14. Zusätzlich kann angegeben werden,<br />

in welcher horizontalen und vertikalen Richtung die Daten bearbeitet werden sollen (Registerbits<br />

PBH und PBV, Tabelle 18, S. 68). Dies ist erforderlich, damit bei Überlappungen von Quellund<br />

Zielbereich in jedem Fall garantiert werden kann, daß keine Daten im Überlappungsbereich<br />

überschrieben werden, die noch nicht gelesen wurden.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!