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 />
6 Die Prozessor-Einheit<br />
6.1 Aufgaben der Prozessor-Einheit<br />
Diplomarbeit<br />
Hochleistungs-Grafikprozessor in Speedchart-VHDL<br />
Abschnitt 6.1<br />
Seite 45<br />
Die Prozessor-Einheit hat die Aufgabe, die folgenden Grafikbefehle selbständig zu bearbeiten:<br />
• Block Move: Kopieren eines linearen Datenblocks<br />
• Fill: Einfarbiges Füllen eines zweidimensionalen Bildschirmbereichs<br />
• Pattern Fill: Füllen eines zweidimensionalen Bildschirmbereichs mit einem mehrfarbigem<br />
Füllmuster<br />
• Pattern Fill Transparent: Füllen eines zweidimensionalen Bildschirmbereichs mit einem<br />
mehrfarbigem Füllmuster, das transparente Bereiche enthalten kann<br />
• Pixel Block Transfer (PixBlT): Kopieren eines zweidimensionalen Bildschirmbereichs mit<br />
beliebiger Verknüpfung von Quell- und Zieldaten<br />
• Pixel Block Transfer with Binary Expansion: Kopieren eines zweidimensionalen Bildschirmbereichs<br />
mit beliebiger Verknüpfung von Quell- und Zieldaten, wobei ein bzw. zwei<br />
Quelldaten-Bits eine von zwei bzw. vier Farben zum Beschreiben des Zielbereichs auswählen<br />
• Clip: Anpassung der Grenzen eines zweidimensionalen Bildschirmbereichs an ein vorgegebenes<br />
Zielfenster<br />
• VRAM Copy: Schnelles Kopieren ganzer VRAM-Zeilen unter Verwendung der VRAM-<br />
Schieberegister<br />
• VRAM Block Fill: Schnelles Füllen eines linearen Datenblocks im VRAM unter Verwendung<br />
des Block-Modus der VRAMs<br />
• VRAM Load Color Register: Laden der Color-Register der VRAMs mit einer Füllfarbe<br />
für den “VRAM Block Fill”-Befehl<br />
Bei allen Befehlen werden vom Host zunächst die Parameter des Befehls und dann der Befehls-<br />
Opcode in die TIM-internen Register geschrieben (vgl. Tabelle 18 auf Seite 68). Daraufhin führt<br />
TIM den Befehl aus und löscht nach Ende der Bearbeitung das Befehlsregister.<br />
Alle Befehle, die auf zweidimensionalen Bildschirmbereichen arbeiten, unterstützen zwei Adressierungsarten<br />
(hier am Beispiel des Zielbereichs):<br />
• Bei XY-Adressierung werden die Startkoordinaten DXADR und DYADR des Bildschirmbereichs<br />
angegeben. Abhängig von der Farbtiefe PSIZE eines Pixels und der Bit-Adresse<br />
DSTART bit des Bildschirmanfangs ergibt sich die physikalische Bit-Adresse des ersten Pixels<br />
zu<br />
DADRL L := DSTART bit + (DYADR · DINC + DXADR) · PSIZE .<br />
• Bei linearer Adressierung wird die lineare Pixel-Adresse DADR des Bildschirmbereichs<br />
angegeben. In diesem Fall ergibt ich die physikalische Bit-Adresse des ersten Pixels zu<br />
DADRL L := DSTART bit + DADR · PSIZE .<br />
Bei beiden Adressierungsarten wird die Größe des zweidimensionalen Bildschirmbereichs in X- und<br />
Y-Richtung in Pixeln angegeben (DX und DY, vgl. Tabelle 18 auf Seite 68). Bei den Befehlen<br />
hingegen, die auf linearen Datenblöcken arbeiten, wird die Bereichslänge in Pixeln angegeben.