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 />
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.