Agnus (Amiga)

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
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.

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

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.

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

Priorität Name Anzahl Zyklen/Rasterzeile Chip Bemerkung
MPU 1 variiert CPU
A Blitter 4 variiert Agnus (intern) gibt Zyklen an CPU ab, außer wenn BLTPRI aktiviert
B Bitplane 6 80 Denise bei extremem Overscan werden Sprite-Kanäle beeinträchtigt
C Copper 1 variiert Agnus (intern)
D Audio 4 4 Paula
E Sprites 8 16 Denise
F Disk 1 3 Paula
G Memory Refresh 1 4 -
Quelle: Amiga 500 plus Service Manual
  OCS
  A1000/2000
  8361/67
1 D8
2 D7
3 D6
4 D5
5 D4
6 D3
7 D2
8 D1
9 D0
10 Vcc (+5V)
11 _RES
12 _INT3
13 DMAL
14 _BLS
15 _DBR
16 _ARW
17 _RGA8
18 _RGA7
19 _RGA6
20 _RGA5
21 _RGA4
22 _RGA3
23 _RGA2
24 _RGA1
25 CCK
26 CCKQ
27 VSS
28 DRA0
29 DRA1
30 DRA2
31 DRA3
32 DRA4
33 DRA5
34 DRA6
35 DRA7
36 DRA8
37 _FIR0
38 _VSY
39 _CSY
40 _HSY
41 VSS
42 D15
43 D14
44 D13
45 D12
46 D11
47 D10
48 D9
Quelle: A2000A Schaltplan[1]

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/ECS ECS ECS AGA
  A500/2000 A3000 A500+/600 A1200/4000
  8370/71 8372 8375 8374 Alice
1 RD13 DRD13 DRD13 DRD13
2 RD12 DRD12 DRD12 DRD12
3 RD11 DRD11 DRD11 DRD11
4 RD10 DRD10 DRD10 DRD10
5 RD9 DRD9 DRD9 DRD9
6 RD8 DRD8 DRD8 DRD8
7 RD7 DRD7 DRD7 DRD7
8 RD6 DRD6 DRD6 DRD6
9 RD5 DRD5 DRD5 DRD5
10 RD4 DRD4 DRD4 DRD4
11 RD3 DRD3 DRD3 DRD3
12 RD2 DRD2 DRD2 DRD2
13 RD1 DRD1 DRD1 DRD1
14 RD0 DRD0 DRD0 DRD0
15 Vcc Vcc Vcc Vcc1
16 RST* _RESET _RESET /RESET
17 INT3 _INTR _INTR /INTR
18 DMAL DMAL DMAL DMAL
19 BLS* _BLISS _BLISS /BLS
20 DBR* _BLIT _BLIT /DBR
21 RRW _WE _WE /WE
22 PRW R/W R/W R/W
23 RGEN* _REGEN _REGEN _REGEN
24 AS* _AS _AS NC2
25 RAMEN* _RAMEN _RAMEN /RAMEN
26 RGA8 RGA8 RGA8 RGA8
27 RGA7 RGA7 RGA7 RGA7
28 RGA6 RGA6 RGA6 RGA6
29 RGA5 RGA5 RGA5 RGA5
30 RGA4 RGA4 RGA4 RGA4
31 RGA3 RGA3 RGA3 RGA3
32 RGA2 RGA2 RGA2 RGA2
33 RGA1 RGA1 RGA1 RGA1
34 28MHz 28MHz 28MHz SCLK
35 XCLK A20 A20 A20
36 XCLKEN* _XCLKEN _CDAC 14MHz
37 CDAC* _CDAC 7MHz /CDAC
38 7MHz 7MHz CCKQ 7MHz
39 CCKQ CCKQ CCK CCKQ
40 CCK CCK 14M CCK
41 TEST TEST GND /NTSC
42 Vss Vss1 DRA0 GND2
43 MA0 DRA0 DRA1 DRA0
44 MA1 DRA1 DRA2 DRA1
45 MA2 DRA2 DRA3 DRA2
46 MA3 DRA3 DRA4 DRA3
47 MA4 DRA4 DRA5 DRA4
48 MA5 DRA5 DRA6 DRA5
49 MA6 DRA6 DRA7 DRA6
50 MA7 DRA7 DRA8 DRA7
51 MA8 DRA8 _LDS DRA8
52 LDS* _LDS _UDS Vcc2
53 UDS* _UDS _CASL NC1
54 CASL* _CASL _CASU /CAS
55 CASU* _CASU DRA9 Vbb
56 RAS1* DRA9 _RAS1 DRA9
57 RAS0* _RAS _RAS0 /RAS
58 Vss Vss2 GND GND3
59 A19 A19 A19 A19
60 A1 A1 A1 A1
61 A2 A2 A2 A2
62 A3 A3 A3 A3
63 A4 A4 A4 A4
64 A5 A5 A5 A5
65 A6 A6 A6 A6
66 A7 A7 A7 A7
67 A8 A8 A8 A8
68 A9 A9 A9 A9
69 A10 A10 A10 A10
70 A11 A11 A11 A11
71 A12 A12 A12 A12
72 A13 A13 A13 A13
73 A14 A14 A14 A14
74 A15 A15 A15 A15
75 A16 A16 A16 A16
76 A17 A17 A17 A17
77 A18 A18 A18 A18
78 LP* _LPEN _LPEN /LPEN
79 VSY* _VSYNC _VSYNC /VSYNC
80 CSY* _CSYNC _CSYNC /CSYNC
81 HSY* _HSYNC _HSYNC /HSYNC
82 Vss Vss3 GND GND1
83 RD15 DRD15 DRD15 DRD15
84 RD14 DRD14 DRD14 DRD14
Quellen: A500 Service Training, A3000 Service Manual, A500+ Service Manual, A1200 Schaltplan

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. Commodore SCHEMATIC AMIGA 2000 380710 REV 6
  2. ifference of 8372A vs 8375. Archiviert vom Original (nicht mehr online verfügbar) am 29. September 2012; abgerufen am 22. Oktober 2024 (englisch).