Amiga Chip RAM

From Wikipedia, the free encyclopedia

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[edit]

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[edit]

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

Model Stock Chip RAM Maximum Chip RAM Width
Amiga 1000 256 KiB 512 KiB 16-bit
Amiga 500, Amiga 2000, CDTV 512 KiB – 1 MiB[a] 512 KiB – 1 MiB[b] 16-bit
Amiga 500 Plus, Amiga 600 1 MiB 2 MiB 16-bit
Amiga 3000 1 MiB 2 MiB 32-bit[c]
Amiga 1200, Amiga 4000, Amiga CD32 2 MiB 2 MiB 32-bit[d]

The shared RAM data bus is 16-bit on OCS and ECS systems[c]. 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[edit]

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[edit]

  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

References[edit]

  1. ^ Commodore-Amiga, Inc. (1991). Amiga User Interface Style Guide. Amiga Technical Reference Series. Reading, Massachusetts: Addison-Wesley Publishing Company, Inc. p. 180. ISBN 978-0-201-57757-0.
  2. ^ a b Commodore-Amiga, Inc. (1991). Amiga Hardware Reference Manual. Amiga Technical Reference Series (Third ed.). Reading, Massachusetts: Addison-Wesley Publishing Company, Inc. ISBN 978-0-201-56776-2.
  3. ^ "A4000 Motherboard Jumpers". Archived from the original on 23 November 2019. Retrieved 2 September 2011.
  4. ^ "Features of the UAE Amiga Emulator". Archived from the original on 2017-01-05. Retrieved 4 January 2017.
  5. ^ "List of A500 Trapdoor Expansions". Retrieved 3 November 2018.

See also[edit]