REU

From C64-Wiki
(Redirected from Memory Expansion)
Jump to navigationJump to search
Commodore 1750 REU

A REU (RAM Expansion Unit) is a hardware device that increases the amount of RAM available to a computer[1].


History[edit | edit source]

The MOS Technology 65XX and 85XX family of CPUs have an 8-bit data bus and a 16-bit address bus[2]. Memory addressing by the CPU alone is therefore limited to 64 Kb at any one time. The only way to improve (but not increase) this limit is with external so-called bank switching logic; which swaps blocks (banks) of memory that the CPU can see (address). The VIC-20 does not have any such logic; the C64 does, but it is used only for mapping ROM and I/O-Registers into the address space in place of RAM, not to switch between several RAM areas. The C128 does have RAM bank switching logic[3] (in an additional IC). The MOS Technology 8722 MMU (Memory Management Unit) supplies this logic in order to swap 2 banks of RAM which provide the C128 with 128 Kb of RAM. Unfortunately due to competition from new 16/32-bit computers available at the launch of the C128, Commodore discontinued further development of the 8-bit MMU. However, the potential for RAM expansion was evident, even if the demand was not clear; the REUs were therefore created as a more cost-effective way to increase the default memory of an existing computer. Although Commodore were notably absent[4] from the 1984 CES (Consumer Electronics Show) and COMDEX (Computer Dealers' Exhibition), at the 1985 CES a demonstration of the new Commodore REU with the famous spinning globe demo was on display[5]. REUs continued to be developed and refined for over a decade.

Hardware[edit | edit source]

The REU contains a logic IC and DRAM. The IC is is known as a REC (RAM Expansion Controller), and contains the logic required to swap banks of memory on request from code executed by the CPU. The RAM is not directly accessible[6] to the CPU and, therefore, no code in the REU can be executed in situ. The data must be transferred to the (default) RAM that is directly accessible to the CPU before it can be executed. Nevertheless, the main advantage of the RAM expansion module is rapid retrieval of relatively large amounts of data. However, RAM is a volatile data storage medium, and data stored within the RAM will be lost when power is interrupted or removed. If data is to be retained for future use, it must be backed-up on a (more permanent) secondary storage device. Some REUs will not operate without an additional power supply (due to the power demand of the ICs) and some have internal power to maintain the contents of the DRAM. The REU attaches to the expansion port of the C64 or C128 and is contained in a cartridge-style (or larger) case. As with all cartridges though, REUs must be attached when there is no power to the motherboard.

Benefits[edit | edit source]

  • The 8-bit architecture allows access to a maximum of 28 (256) banks of 28 (256) addresses on each of the 28 (256) pages. The theoretical maximum is therefore 16777216 bytes of RAM.
  • In machine code it is possible to access all 256 ($00-$ff) banks of RAM, which equates to 16 MiB[7]..
  • Where DMA (Direct Memory Access) is used, data can be transferred quickly (one byte per cycle plus some overhead for setting up the transfer) between the REU and the computer's default RAM.
  • Memory transfers between the computer's default RAM and the REU cause only the actual data to travel on the data bus. Compare this to the traditional method where the CPU conducts the transfer; which requires 75% (or more) of the bus capacity on instruction fetches and only 25% (or less) on data[8].
  • After the first transfer to the REU, no time is wasted in seeking data from a secondary storage device.
  • GEOS had built-in support for the REU as a RAM disk, as did the C128's version of CP/M.
  • Some disk copy programs used the REU to facilitate high-speed copying with a single floppy disk drive.
  • Due to its high speed, relative to Commodore's floppy disk drives or even commercially available hard drives, the REU became popular with BBS (Bulletin Board System) operators[9].

Drawbacks[edit | edit source]

  • Very little existing software made use of REUs[10].
  • Software developers were hesitant to support REUs due to the relatively small number of units in use; creating a Catch-22 scenario.
  • Complicated programming techniques were required for implementation.
  • The RAM in REUs was only accessible via a few hardware registers, and not directly by the CPU; which limits the amount of code to be executed.
  • The REU did not automatically provide an on-board RAM disk functionality; although some REUs were packaged with with a loadable RAM disk driver.
  • The compatibility of the REU as a RAM disk with commercial software was not guaranteed; as some programs relied on various quirks of the Commodore 1541 floppy disk drive.
  • Some commercial programs wrote to the memory in use by the RAM disk software[11].
  • In BASIC V7 it is only possible to access the first 16 ($0-$f) banks of RAM, which equates to 1 MiB[12].
  • Some REUs required (when attached to the C64) an additional heavy-duty power supply.

Known REUs[edit | edit source]

Table 1 - Known REU Products
Name Company Year of Release Machine Size Expanded Remarks
Turbo Chameleon 64 Individual Computers 2013 C64 16 Mb 4 Mb The cartridge has 32 Mb RAM, 16 MB reserved for REU and 4MB reserved for GeoRAM
1700 REU Commodore Business Machines 1985 C128 128 KiB Works on the C64[13] (albeit unsupported)
1750 REU Commodore Business Machines 1985 C128 512 KiB Works on the C64[14](albeit unsupported)
1764 REU Commodore Business Machines 1985 C64 256 KiB Works on the C128 (albeit with timing issues[15])
RAMDrive Creative Micro Designs 1990 C64/C128 512 Kb 2 Mb The RAM Link and RAM Drive were designed to work in tandem.
RAMLink Creative Micro Designs 1990 C64/C128 1 MiB 16 MiB
geoRAM Berkeley Softworks 1990 C64/C128 512 KiB
Super 1750 Clone Chip Level Designs 1991 C64/C128 512 Kb
BBGRAM Performance Peripherals Incorporated 1990 C64/C128 1 Mb 2 Mb A GeoRAM clone.
1750XL Creative Micro Designs 1997 C64/C128 2 Mb
SuperCPU Creative Micro Designs 1996 C64 0 MiB 16 MiB In 16 bit mode the SuperCPU has access to 16 MiB maximum system memory. Required RAMLink / RAMDrive for REU functionality.
1541 Ultimate Gideon's Logic Architectures 2008 C64/C128 0 MiB 16 MiB Includes REU support among its features.

References[edit | edit source]

External Links[edit | edit source]

WP-W11.png Wikipedia: RAM_Expansion_Unit Language German