Agnus (Amiga)

© Raimond Spekking / CC BY-SA 4.0 (via Wikimedia Commons)
MOS 8367R0 - Agnus

Der Agnus (lat. für Lamm) ist einer der Custom-Chips im Chipsatz des Commodore Amiga. In den späteren Versionen wurde er in Alice umbenannt.

Name

„Agnus“ ist ein Akronym von „Adressgenerator“ (englisch AdressGeneratorUnits).

Eigenschaften

Amiga-Hardwarestruktur mit dem speziellen Chip-Set
Alice 8374 Chip im Amiga 1200

Der Baustein ist für die Steuerung des sogenannten Chip-RAMs im Amiga zuständig, stellt die Video-Synchronsignale (HSY, CSY, VSY) zur Verfügung und enthält die Coprozessoren Copper und Blitter. Agnus enthält zusätzlich die komplette DMA-Logik für alle 6 möglichen Quellen. Für den zeitlichen Ablauf der einzelnen DMA-Zugriffe dient eine Bildschirmzeile als Zeitbezug. In jeder Zeile werden 225 Speicherzugriffe von Agnus auf die DMA-Kanäle und die CPU verteilt. Für das korrekte Timing sind ein Zeilen- und ein Spaltenzähler verantwortlich (HSY, VSY). Über diese Signale kann das Timing auch extern gesteuert werden (Genlock). Ein wesentlicher Hauptbestandteil von Agnus ist der große Adressgenerator. Alle Custom-Chips des Amiga können unabhängig von der CPU direkt auf das RAM zugreifen. Dazu benötigen diese Chips jedoch einen freien DMA-Kanal und den Adressgenerator. Über die DMA-Kanäle wird der Zugriff auf das RAM abgewickelt. Der Adressgenerator wandelt die Signale eines Chips in vollständige Speicheradressen um. Agnus kann Daten unabhängig vom Hauptprozessor im Speicher kopieren oder von einem Peripheriegerät in einen Speicherbereich oder umgekehrt.

Keiner der anderen Chips des Amiga-Chipsatzes verfügt über DMA-Kanäle oder Adressgeneratoren. Alle Speicherzugriffe laufen deshalb zentral über Agnus und werden von ihm kontrolliert und koordiniert. Insgesamt hat Agnus 25 DMA-Kanäle, über die 25 verschiedene Geräte ohne Beihilfe der CPU Daten in den Speicher schreiben oder aus ihm lesen können. Zu diesen von Agnus aus dem Chip-RAM geholten und von Denise dargestellten Video-Daten gehören neben den Pixel-Daten Paletten- und Sprite-Daten sowie die Copperlisten. Die Daten von BOBs werden zwar auch von Agnus per DMA geholt, aber dann mit dem in Agnus integrierten Blitter direkt an die darzustellende Position innerhalb des Videospeichers im Chip-RAM kopiert.

Agnus holt zum einen die Video- und Sound-Daten aus dem Chip-RAM und kann zum anderen auch Daten innerhalb des Chip-RAMs umkopieren und dabei auch verarbeiten (blitten), kann aber auch Daten generieren, nämlich beim Linienzeichnen und Flächenfüllen mit dem Blitter.

Die Urversion des Agnus kann 512 KiB Chip-RAM adressieren (OCS). Sie wurde im DIP-Gehäuse gefertigt und nur im Amiga 1000 und im Amiga 2000 mit A-Board eingesetzt. Die Nachfolgemodelle Amiga 500 und Amiga 2000 mit B-Board verfügen bereits über einen PLCC-Sockel für den aufgrund dieser Gehäuseform so genannten Fat Agnus (siehe unten bei PLCC-Versionen). Der Fat Agnus erschien in verschiedenen Varianten für unterschiedliche Chip-RAM-Größen mit abweichendem Funktionsumfang (OCS/ECS). Für die ECS-Versionen des Fat Agnus kursieren zusätzlich nicht vom Hersteller geprägte und daher uneinheitlich verwendete Ausdrücke wie Big Agnus, Super Agnus oder die Kombination dieser.

Der Alice-Chip ist die Weiterentwicklung des Fat Agnus für den AGA(AA)-Chipsatz. Alice wurde auf Basis des A3000-Agnus neu entwickelt und speziell auf die neueren CPUs (ab MC68020) zugeschnitten. Weil bei diesen Prozessoren der Bus 32 Bit breit ist, konnten einige Signale zusammengefasst bzw. entfernt werden. Damit konnten 2 MiB Chip-RAM verwendet werden. Alice kann allerdings nicht in alte Amigas eingebaut werden. Er ist nur für die Amigas mit AGA(AA)-Chipsatz entwickelt worden und wird im Amiga 1200, Amiga 4000-Modellen und im CD³² verwendet.

Versionen

  • 8361 (A1000, A2000A, OCS, DIP-Gehäuse, NTSC)
  • 8367 (A1000, A2000A, OCS, DIP-Gehäuse, PAL)
  • 8370 (A500, A2000, OCS, PLCC-Gehäuse, NTSC)
  • 8371 (A500, A2000, OCS, PLCC-Gehäuse, PAL)
  • 8372 (A500, A2000, ECS, 1 MiB Chip-RAM)
  • 8372-A (A500, A2000, ECS, 1 MiB Chip-RAM)
  • 8372-B (A500+, A600, ECS, 2 MiB Chip-RAM)
  • 8372-AB (A3000(T), ECS, 2 MiB Chip-RAM)
  • 8374 Alice (A1200, A4000(T), CD³², AGA)
  • 8375 (A500+, A600, ECS, 2 MiB Chip-RAM)

Der Fat-(PLCC)-Agnus 8370-72/75 existiert also in verschiedenen Varianten:

  • 1 MiB RAM, aber aufgrund nicht erweiterter Register nur 512 KiB als Chip-RAM nutzbar (OCS), die 2. Hälfte wird als Pseudo Fast-RAM nach $C00000 gemappt ('Ranger-Memory')
  • 1 MiB RAM, voll als Chip-RAM nutzbar (ECS)
  • 2 MiB RAM, voll als Chip-RAM nutzbar (ECS in A3000(T), A500+, A600)

ECS-Chips sind zwischen PAL und NTSC umschaltbar, im OCS existieren dedizierte Versionen.

DMA-Kanäle

PrioritätNameAnzahlZyklen/RasterzeileChipBemerkung
MPU1variiertCPU
ABlitter4variiertAgnus (intern)gibt Zyklen an CPU ab, außer wenn BLTPRI aktiviert
BBitplane680Denisebei extremem Overscan werden Sprite-Kanäle beeinträchtigt
CCopper1variiertAgnus (intern)
DAudio44Paula
ESprites816Denise
FDisk13Paula
GMemory Refresh14-
Quelle: Amiga 500 plus Service Manual

Pinbelegung

DIP-Version

 OCS
 A1000/2000
 8361/67
1D8
2D7
3D6
4D5
5D4
6D3
7D2
8D1
9D0
10Vcc (+5V)
11_RES
12_INT3
13DMAL
14_BLS
15_DBR
16_ARW
17_RGA8
18_RGA7
19_RGA6
20_RGA5
21_RGA4
22_RGA3
23_RGA2
24_RGA1
25CCK
26CCKQ
27VSS
28DRA0
29DRA1
30DRA2
31DRA3
32DRA4
33DRA5
34DRA6
35DRA7
36DRA8
37_FIR0
38_VSY
39_CSY
40_HSY
41VSS
42D15
43D14
44D13
45D12
46D11
47D10
48D9
Quelle: A2000A Schaltplan[1]

PLCC-Versionen

Bei Austausch/Umbau ist die Pinbelegung interessant. Die Typenangaben sind lediglich zur Referenz gedacht; von einem vorliegenden Agnus-Chip kann nicht direkt auf die Pinbelegung geschlossen werden, da diese unabhängig vom Chip anscheinend erst beim Packaging festgelegt wurde.[2]

 OCS/ECSECSECSAGA
 A500/2000A3000A500+/600A1200/4000
 8370/71837283758374 Alice
1RD13DRD13DRD13DRD13
2RD12DRD12DRD12DRD12
3RD11DRD11DRD11DRD11
4RD10DRD10DRD10DRD10
5RD9DRD9DRD9DRD9
6RD8DRD8DRD8DRD8
7RD7DRD7DRD7DRD7
8RD6DRD6DRD6DRD6
9RD5DRD5DRD5DRD5
10RD4DRD4DRD4DRD4
11RD3DRD3DRD3DRD3
12RD2DRD2DRD2DRD2
13RD1DRD1DRD1DRD1
14RD0DRD0DRD0DRD0
15VccVccVccVcc1
16RST*_RESET_RESET/RESET
17INT3_INTR_INTR/INTR
18DMALDMALDMALDMAL
19BLS*_BLISS_BLISS/BLS
20DBR*_BLIT_BLIT/DBR
21RRW_WE_WE/WE
22PRWR/WR/WR/W
23RGEN*_REGEN_REGEN_REGEN
24AS*_AS_ASNC2
25RAMEN*_RAMEN_RAMEN/RAMEN
26RGA8RGA8RGA8RGA8
27RGA7RGA7RGA7RGA7
28RGA6RGA6RGA6RGA6
29RGA5RGA5RGA5RGA5
30RGA4RGA4RGA4RGA4
31RGA3RGA3RGA3RGA3
32RGA2RGA2RGA2RGA2
33RGA1RGA1RGA1RGA1
3428MHz28MHz28MHzSCLK
35XCLKA20A20A20
36XCLKEN*_XCLKEN_CDAC14MHz
37CDAC*_CDAC7MHz/CDAC
387MHz7MHzCCKQ7MHz
39CCKQCCKQCCKCCKQ
40CCKCCK14MCCK
41TESTTESTGND/NTSC
42VssVss1DRA0GND2
43MA0DRA0DRA1DRA0
44MA1DRA1DRA2DRA1
45MA2DRA2DRA3DRA2
46MA3DRA3DRA4DRA3
47MA4DRA4DRA5DRA4
48MA5DRA5DRA6DRA5
49MA6DRA6DRA7DRA6
50MA7DRA7DRA8DRA7
51MA8DRA8_LDSDRA8
52LDS*_LDS_UDSVcc2
53UDS*_UDS_CASLNC1
54CASL*_CASL_CASU/CAS
55CASU*_CASUDRA9Vbb
56RAS1*DRA9_RAS1DRA9
57RAS0*_RAS_RAS0/RAS
58VssVss2GNDGND3
59A19A19A19A19
60A1A1A1A1
61A2A2A2A2
62A3A3A3A3
63A4A4A4A4
64A5A5A5A5
65A6A6A6A6
66A7A7A7A7
67A8A8A8A8
68A9A9A9A9
69A10A10A10A10
70A11A11A11A11
71A12A12A12A12
72A13A13A13A13
73A14A14A14A14
74A15A15A15A15
75A16A16A16A16
76A17A17A17A17
77A18A18A18A18
78LP*_LPEN_LPEN/LPEN
79VSY*_VSYNC_VSYNC/VSYNC
80CSY*_CSYNC_CSYNC/CSYNC
81HSY*_HSYNC_HSYNC/HSYNC
82VssVss3GNDGND1
83RD15DRD15DRD15DRD15
84RD14DRD14DRD14DRD14
Quellen: A500 Service Training, A3000 Service Manual, A500+ Service Manual, A1200 Schaltplan

Siehe auch

Einzelnachweise

  1. Commodore SCHEMATIC AMIGA 2000 380710 REV 6
  2. „Difference of 8372A vs 8375“

Auf dieser Seite verwendete Medien

8374 Alice im Amiga 1200.jpg
Autor/Urheber: MOS6502, Lizenz: CC BY-SA 3.0
8374 Alice Chip im Amiga 1200
Commodore Amiga 1000 - main board - MOS 8367R0-7824.jpg
© Raimond Spekking / CC BY-SA 4.0 (via Wikimedia Commons)
Commodore Amiga 1000 - main board - MOS 8367R0 -AGNUS, PAL (AdressGenerator Units) from Original Chip Set. Package: DIP
Amiga Original Chipset diagram.svg
Autor/Urheber: Ungzd, Lizenz: CC0
Amiga Original Chipset overview diagram