Amiga Patent Story
II. Hardware2. Amiga Hardware: Agnus (US-Patent 4,874,164)
Tipp: Der Ausdruck der Patentzeichnungen (TIF-Format) erspart nervtötende Scrollorgien.
***************************************
Bild 1: Blockschaltbild des Amiga High Resolution TIF Image ( 32,9kB )
***************************************
Blockschaltbild des Custom-Chip Agnus
Bild 2 zeigt das Blockschaltbild des Custom-Chip Agnus. Der Agnus-Chip 410 nach Bild 1 fungiert als Adress-Generator. Er umfasst circa 21 000 Transistoren und belegt eine Chip-Fläche von 6,04 * 7,14 Quadratmillimeter. Untergebracht ist der Chip in einem 48-poligen DIL-Gehäuse. Seine Hauptaufgabe im Chip-Bereich sind die Bereitstellung eines RAM-Adressgenerators 45 und eines Register-Adresskodierers 43, die zuständig sind für die Erzeugung aller Register- und RAM-Adressen während eines DMA-Zyklus. Der Agnus-Chip beinhaltet die DMA-Kanal-Steuerlogik des gesamten Amiga-Systems. Außerdem enthält der Chip einen Bitmap Image Manipulator (Blitter) 67 und einen mit der Bildschirmanzeige synchronisierten Koprozessor (Copper) 47. Das Blockschaltbild nach Bild 2 zeigt die Einheiten der DMA-Steuerlogikschaltungen und die Treiber für den Register-Adressbus 405 und den RAM-Adressbus 406. Der Ausgang einer jeden DMA-Steuerlogikschaltung ist mit zwei nummerierte Pfeilen versehen. Diese stehen für die jeweilige Anzahl der DMA-Kanäle in Bezug auf den RAM-Adressgenerator 45 und den Register-Adresskodierer 43.
Bild 2: Blockschaltbild des Custom-Chip Agnus High Resolution TIF Image ( 44,7kB )
***************************************
Der RAM-Adressgenerator
Bild 3: Blockschaltbild des RAM-Adressgenerators High Resolution TIF Image ( 27,2kB )
***************************************
Der Koprozessor (Copper)
Bild 3: Blockschaltbild des Koprozessors (Copper) High Resolution TIF Image ( 23,2kB )
***************************************
Der Bitmap Image Manipulator (Blitter)
Für den folgenden Abschnitt erscheint es sinnvoll, eingangs einige Grundlagen aufzufrischen, da sich die Beschreibung auf die Chip-Ebene hinab begibt. Digitalschaltungen basieren bekanntlich auf der Boolschen Algebra, die Georg Boole (1815-1864) im Jahre 1847 vorgestellt hat. Die Boolsche Algebra beschreibt Verknüpfungsregeln für binäre Zahlen. Sie kennt nur zwei Aussagen: WAHR und FALSCH. Für eine Logikschaltung bedeutet dies: Es fließt Strom (1) oder es fließt kein Strom (0). Es gibt drei logische Grundverknüpfungen:
Auch komplexe Verknüpfungen können auf diese Grundverknüpfungen zurückgeführt werden. Nachfolgend ein Beispiel für eine logische UND-Verknüpfung: Gegeben sei ein Stromkreis mit einer Stromquelle, einer Lampe X und zwei in Reihe (hintereinander) liegenden Schaltern A und B. Die Schalter kennen die Zustände "0" für "offen" und "1" für "geschlossen". Die Lampe die Zustände "1" für "an" und "0" für "aus". Es ist leicht nachvollziehbar, dass die Lampe X nur dann leuchtet, wenn beide Schalter A und B geschlossen sind. Dann ist die Aussage wahr, da beide Bedingungen erfüllt sind. Oder nach den Regeln der Boolschen Algebra: 1+1=1.
***************************************
Der Datenbus 404 liegt ferner am Speicherregister C 89 an, wobei die Dateneinschreibung ebenfalls durch
den Register-Adress-Dekoder 27 aus Bild 2 gesteuert wird. Die Daten des Speicherregisters C 89 werden in eine Logikeinheit
91 geladen, die aus einen Minterm Generator zur Ausführung Boolscher Operationen besteht. Die Logikeinheit 91 besitzt einen
8-Bit-Steuereingang (Multi Minterm Select), über den ihr mitgeteilt wird, welche der möglichen 256 Logikoperationen auf die in den Registern A 101,
B 102 und C 89 gespeicherten Datenbits angewendet werden soll. Ein Schieberegister A 93 und ein Schieberegister B 95 werden
jeweils mit vier Datenbits vom Datenbus 404 geladen. Die Dateneinschreibung wird durch das Blitter-Steuerregister 63 aus Bild 2 gesteuert.
Die 4-Bit-Worte der Schieberegister 93 und
95 liegen am Steuereingang des Barrel Shifter 81. Der Barrel Shifter 81 kann den Inhalt der Quelldatenregister A 77 und B 79
unabhängig voneinander um jeweils bis zu 15 Bit verschieben.
Mit je einem 16-Bit-Datenwort sind die Speicherregister A 101 und B 102 geladen.
Eines der Blitter-Steuerregister 63 nach Bild 2 wird mit Daten vom Datenbus 404 geladen. Acht Bit dieses Blitter-Steuerworts
enthalten die Multi-Minterm-Auswahlbits, die die Logikeinheit 91 ansteuern. Damit wird bestimmt, welche der acht verfügbaren Minterms zu kombinieren sind,
um eine von 256 möglichen Logikoperationen auf die in den Speicherregistern 101, 102 und 89 gespeicherten Daten anzuwenden.
Der Blitter arbeitet beim Kopieren von Daten immer nach dem gleichen Muster: Bis zu drei verschiedene Quellbereiche (A, B, C) werden miteinander logisch verknüpft
und das Ergebnis in einen Zielbereich D geschrieben. Die punktweise Verknüpfung auf den Quellbereichen erfolgt durch eine beliebige dreistellige boolesche Funktion,
ausgewählt aus den verfügbaren Minterms des Minterm-Generators.
Ein Beispiel soll die Funktion des Blitter verdeutlichen: In Spielen wird der Blitter meist intensiv zur Darstellung bewegter Grafikobjekte,
sogenannter BOBs (Blitter Objects), verwendet. Diese werden vor jedem Bildaufbau an den entsprechenden Stellen in das Playfield einkopiert.
Dabei ist eine Bitplane des eigentlichen BOB einer der Quellbereiche (Datenregister A 77), in einem zweiten Quellbereich liegt eine Maske, welche die
nicht-transparenten Pixel des BOBs ausmaskiert (Datenregister B 79), und der dritte Quell- und zugleich Zielbereich ist die entsprechende Bitplane des
Playfield (Datenregister C 89). Bildquelle und Beispiel: Niklas Matthies: Proseminar Computerspiele - Die Hardware des Commodore Amiga 500.
Die Logikeinheit 91 enthält auch eine Füll-Logikschaltung. Diese Fülllogik dient dazu,
Bereiche zwischen den horizontalen Begrenzungslinien eines Objekts auszufüllen. Die Ausgabefunktion wird durch
ein Register der Blitter-Steuerung 63 nach Bild 2 gesteuert. Die Füllfunktion für jedes Bit oder
jedes Wort wird über ein Signal auf Leitung 107 aktiviert und wirkt auf das nächste Bit oder das
erste Bit des nächsten Wortes, wenn die Blitteroperation für das aktuelle Wort abgeschlossen ist.
Die EXCLUSIV ODER (XOR)-Schaltung 108 ersetzt, wenn sie eine erste logische "1" auf einer horizontalen Zeile findet,
die folgenden Nullen durch "1", bis sie auf eine zweite "1" auf derselben Zeile stößt. Die Füllgeschwindigkeit
beläuft sich auf circa 1 Million Bildpunkte pro Sekunde. Die Logikeinheit 91 gibt ihre Daten an ein
Speicherregister 113 aus. Der Ausgangswert des Speicherregisters 113 kann an den Datenbus 404
übergeben und im RAM-Speicher 401 gespeichert werden. (Thomas Unger) Copyright © Thomas Unger 2000-2005. Alle Rechte vorbehalten.
Hinweise an:
kickstart@arcor.de |