Amiga Chip RAM explained

Chip RAM[1] is a commonly used term for the integrated RAM used in Commodore's line of Amiga computers. Chip RAM is shared between the central processing unit (CPU) and the Amiga's dedicated chipset (hence the name).[2] It was also, rather misleadingly, known as "graphics RAM".

Direct memory access

Under the Amiga architecture, the direct memory access (DMA) controller is integrated into the Agnus (Alice on AGA models) chip. Both the CPU and other members of the chipset have to arbitrate for access to shared RAM via Agnus. This allows the custom chips to perform video, audio, or other DMA operations independently of the CPU. As the 68000 processor used in early Amiga systems usually only accesses memory on every second memory cycle, Agnus operates a system where the "odd" clock cycle is allocated to time-critical custom chip access and the "even" cycle is allocated to the CPU: thus, for average DMA demand, the CPU is not typically blocked from memory access and may run without interruption. However, certain chipset DMA, such as high-resolution graphics with a larger color palette, Copper, or blitter operations, can use any spare cycles, effectively blocking cycles from the CPU. In such situations CPU cycles are only blocked while accessing shared RAM, but never when accessing Fast (CPU-only) RAM (when present) or ROM.[2]

Chip RAM by model

Most stock Amiga systems were equipped with Chip RAM only and shipped with between 256 kiB and 2 MiB.

ModelStock Chip RAMMaximum Chip RAMWidth
Amiga 1000256 KiB512 KiB16-bit
Amiga 500, Amiga 2000, CDTV512 KiB  - 1 MiB512 KiB  - 1 MiB16-bit
Amiga 500 Plus, Amiga 6001 MiB2 MiB16-bit
Amiga 30001 MiB2 MiB32-bit
Amiga 1200, Amiga 4000, Amiga CD322 MiB2 MiB32-bit

The shared RAM data bus is 16-bit on OCS and ECS systems. The later AGA systems use a 32-bit data bus controlled by the Alice coprocessor (replacing Agnus) and 32-bit RAM. The memory clock runs at double the rate on AGA systems. As a result, chipset RAM bandwidth is increased fourfold compared to the earlier 16-bit design. However, 32-bit access is limited to CPU and graphics DMA and cannot be used for other devices. The ECS-based A3000 also has 32-bit Chip RAM, but access is only 32-bit for CPU operations; the chipset remained 16-bit.

The maximum amount of Chip RAM is dependent on the Agnus/Alice version. The original Agnus chip fitted to the A1000 and early A2000 systems is a 48-pin DIP package able to address 512 KiB of Chip RAM. Subsequent versions of the Agnus are in an 84-pin PLCC package (either socketed or surface-mounted). All models except the A1000 are upgradable to 2 MiB of Chip RAM. The A500 and the early A2000B can accommodate 1 MiB by installing a later revision Agnus chip (8732A) with minimal hardware modifications; late-production machines usually already contained that chip, so that only jumper modifications were necessary. Likewise, 2 MB can be installed by fitting an 8372B Agnus and extra memory.

The maximum amount of Chip RAM in any model is 2 MiB. The Amiga 4000 motherboard includes a non-functional jumper that anticipated later chips and is labeled for 8 MiB of Chip RAM - regardless of its position, the system only recognizes 2 MiB due to the limitations of the Alice chip.[3] However, the software emulator UAE can emulate an Amiga system with the design limit of up to 8 MiB of Chip RAM.[4]

Fast RAM

Amiga systems can also be expanded with Fast RAM, which is only accessible to the CPU. This improves execution speed, as CPU cycles are never blocked even when the custom chipset is simultaneously accessing Chip RAM. Adding Fast RAM to systems with 32-bit CPUs roughly doubles the instruction speed, as the more advanced 68020, '030, and '040 CPUs can utilize more memory cycles than the earlier 68000.

Confusingly, a system may have several different kinds and speeds of Fast RAM. For example, an Amiga 3000 may contain 16-bit Zorro II expansion RAM, 32-bit Zorro III expansion RAM, 32-bit motherboard RAM, and 32-bit CPU card RAM simultaneously (in increasing speed order). Automatically configured RAM is prioritized by the system, so the fastest memory is used first.

Early versions of the Amiga 2000B, and the most common "trapdoor memory expanded" configuration of the Amiga 500, contain 512 KiB pseudo-fast RAM ("slow RAM") controlled by Agnus with the same limitations as Chip RAM, yet unusable as such due to register limitations. Numerous budget trapdoor expansions[5] for the 500 extended this "controllerless" concept to up to 1.8 MB slow RAM (requiring a Gary adapter for addressing).

Notes

  1. Later A500/A2000 systems were equipped with 1 MiB
  2. Up to 2 MiB with hardware modification
  3. A3000 Chip RAM is 32-bit for CPU access, 16-bit for chipset access
  4. AGA Chip RAM access is 32-bit for CPU and graphics DMA only; audio, floppy, Copper, and blitter DMA remain 16-bit

Notes and References

  1. Book: Commodore-Amiga, Inc.. 1991. Amiga User Interface Style Guide. Amiga Technical Reference Series. Addison-Wesley Publishing Company, Inc.. Reading, Massachusetts. 180. 978-0-201-57757-0.
  2. Book: Commodore-Amiga, Inc.. Amiga Hardware Reference Manual. Third. Amiga Technical Reference Series. 1991. Addison-Wesley Publishing Company, Inc.. Reading, Massachusetts. 978-0-201-56776-2.
  3. Web site: A4000 Motherboard Jumpers . 2 September 2011 . https://web.archive.org/web/20191123044708/http://www.zimmers.net/cbmpics/cbm/amiga/a4000jumpers.html . 23 November 2019 . dead .
  4. Web site: Features of the UAE Amiga Emulator . 4 January 2017 . https://web.archive.org/web/20170105180734/http://amiga.technology/features . 2017-01-05 . dead .
  5. Web site: List of A500 Trapdoor Expansions . 3 November 2018.