Blitter (Amiga)
Der Blitter ist ein Amiga-Koprozessor zum schnellen Kopieren und Verschieben von Speicherblöcken (Bit blit).[1][2] Physisch ist er ein Teil des Agnus-Chips.
Der Blitter kann Speicherblöcke im Chip-RAM des Amigas auf Bit-Ebene kopieren, verschieben und dabei auch logisch verknüpfen. Versucht nun der Hauptprozessor auf das Chip-RAM zuzugreifen während der Blitter aktiv ist, wird der Hauptprozessor angehalten.[3] Nur bei einem Zugriff des Hauptprozessors auf das Fast-RAM ist dieser unabhängig vom Blitter. Eine offensichtliche Anwendung des Blitters ist das Ausführen von Kopiervorgängen im Grafikspeicher, der Teil vom Chip-RAM ist. Der Blitter kann unter Verwendung des Bresenham-Algorithmus selbsttätig Linien zeichnen.[4]
Er kann gleichzeitig bis zu drei Quell-Speicherbereiche beliebig miteinander verknüpfen und das Ergebnis in einem vierten abspeichern. Die vier Speicherbereiche können als Bitplanes unterschiedlicher Größe organisiert sein, solange der abzutastende Bereich gleich groß ist. Bitweise Verschiebungen können ohne zusätzlichen Zeitaufwand mittels Barrel-Shifter vorgenommen werden. Damit lassen sich z. B. unregelmäßig geformte Objekte durch Verknüpfung mit einer Maske in eine bestehende Grafik hineinstanzen, auch Cookie Cutting (englisch für „Keks-Ausstechen“) genannt.
Eine typische Aufgabe des Blitters ist das Darstellen von animierten Objekten auf dem Bildschirm, den sogenannten Blitter-Objects (BOBs). Sie unterscheiden sich von Sprites dadurch, dass BOBs tatsächlich in den Bildspeicher kopiert werden, während Hardware-Sprites in eigenen Registern oder Speicherbereichen definiert sind und erst bei jedem Bildaufbau in den Datenstrom zum Monitor eingefügt werden.
Durch die Realisierung als dedizierte Hardware konnte eine zum Zeitpunkt der Vorstellung des Amigas nicht übliche Arbeitsgeschwindigkeit im Grafikbereich erzielt werden. Zuvor mussten Grafikblöcke vom Hauptprozessor durch eine Routine mittels zweier geschachtelter Schleifen verschoben werden.
Der Blitter wird weiterhin zur MFM-Kodierung und -Dekodierung für die Diskettenlaufwerke eingesetzt. Die Kodierung benötigt dabei drei Durchläufe, die Dekodierung einen.
Der Name Blitter leitet sich von der Tätigkeit des Block Image Transfers ab, abgekürzt als BLIT.
Jay Miner, der Entwickler und „Vater“ des Amiga-Chipsatzes, stattete den Blitter noch mit zusätzlichen Funktionen aus, wie zum Beispiel das Ausfüllen von Flächen mit Bit-Mustern oder das Zeichnen von geraden Linien, worin er einen Grund sah, ihn auch „Bimmer“ für „Bit-Mapped Image Manipulator“ zu nennen.[5]
Einzelnachweise
- Der Blitter im Agnus 8370
- The Amiga's blitter is also located in the Agnus chip
- Commodore-Amiga, Inc.: Amiga Hardware Reference Manual (3rd ed.). 1991, S. 198, abgerufen am 3. Oktober 2020 (englisch): „... the blitter will keep the bus for every available Chip memory cycle.“
- What is the Blitter?
- Phillip Robinson: The Amiga's Custom Graphics Chips. (PDF; 3,4 MB) Abgerufen am 23. August 2020 (englisch).