Motorola 68000, 68010, 68020 Evolution

The Motorola 68k family was introduced in 1979 with the MC68000, followed by the MC68010 (1982), the MC68020 (1984), and the MC68EC020 (1990). The 68000 and 68010 are 16-bit-external-bus parts with a 24-bit address space; the 68020 is the first 32-bit-external-bus part with a full 32-bit address space. The Amiga's CPU evolution follows this trajectory: 68000 → 68020 (via EC020).

This article documents the evolution of the 68k family — the architectural progression from 68000 to 68020, the key differences between each generation, and the variants of each CPU (different suffixes like EC, SEC, LC). Sources: MC68000UM, MC68010UM, MC68020UM (Motorola User's Manuals, 1985-1992).

Architecture progression

Feature MC68000 MC68010 MC68020
Year 1979 1982 1984
Process NMOS (HCMOS later) NMOS (HCMOS later) HCMOS
Data bus 16-bit 16-bit 32-bit (with dynamic sizing)
Address bus 24-bit (16 MiB) 24-bit (16 MiB) 32-bit (4 GiB)
Registers 8×D + 8×A + PC, 32-bit same + VBR/SFC/DFC same + CACR/CAAR/SRP/TC/TT0/TT1/MMUSR
Privilege levels 2 (user/supervisor) 2 2 + master mode (3 levels)
On-chip cache none 6-byte loop-mode prefetch queue 256-byte instruction cache
MMU external (68851 PMMU) external (68851 PMMU) external (68851 PMMU)
FPU external (68881/68882) external (68881/68882) external (68881/68882, with new coprocessor bus interface)
Instruction set size ~56 mnemonics ~56 + 4 new (BKPT, MOVEC, MOVES, RTD) ~56 + 4 + ~50 (bit-field, atomic, range, etc.)
Addressing modes 14 (original set) same + new privilege modes ~30+ (memory indirect, scaled index, etc.)

The 68008 is omitted from this table — see 68000 Variants below.

68000 variants

Per MC68000UM (Section 1.3 "Ordering Information"), the 68000 family has seven documented variants:

Variant Data bus Address bus Notes
MC68000 16-bit 24-bit (16 MiB) original full part, NMOS, 4-7 MHz
MC68000-1 16-bit 24-bit 8 MHz version (speed grade)
MC68EC000 ("Embedded Controller") 16-bit 24-bit no bus arbitration logic, lower power, no dynamic bus sizing
MC68SEC000 16-bit 24-bit Single-Edge Clocked (CMOS variant for low-power synchronous designs)
MC68HC000 16-bit 24-bit HCMOS, low power (~50 mW typical)
MC68SC000 16-bit 24-bit Static HCMOS, no clock needed for static operation
MC68008 8-bit 20-bit (1 MiB) or 22-bit (4 MiB) data bus externally multiplexed; reduced pin count package; address reduced to allow cheap 8-bit designs

Pattern: the "EC" suffix disables bus arbitration (suitable for single-master embedded systems), the "SEC/SC/HC" suffixes are CMOS variants for low power. The 68008 is a true 8-bit variant used in low-cost embedded systems (rare in Amiga space).

68010 variants

Per MC68010UM, the 68010 family has three documented variants:

Variant Notes
MC68010 full part, NMOS, 8-10 MHz; introduced virtual memory support, loop mode, new exception vectors
MC68SEC010 Single-Edge Clocked (CMOS, low power, synchronous design)
MC68EC010 ("Embedded Controller") no bus arbitration logic, lower power; full instruction set retained

The 68010 was not widely used in Amiga hardware — the A500/A1000/A2000 used the 68000, and the 68020 came directly to the A1200/CD32. The 68010 found use in early Mac LC and Sun-3/80.

68020 variants

Per MC68020UM (Section 1.3), the 68020 family has two documented variants:

Variant Notes
MC68020 full part, 32-bit address bus (4 GiB address space), MMU coprocessor bus enabled (works with external MC68851 PMMU)
MC68EC020 ("Embedded Controller") 24-bit address bus (16 MiB address space, like the 68000); MMU coprocessor bus disabled at fabrication; works with no external PMMU; the coprocessor interface for the FPU (68881/68882) remains enabled

Used in: Commodore CD32 (14.3 MHz) and base CPU of the Amiga 1200 (the 1200's 68EC020 could be swapped with a full MC68020 for full 32-bit address space + MMU support).

Note: the 68020 has no integrated MMU — the MMU bus interface is for the external MC68851 PMMU coprocessor. The "EC" variant on the 68020 therefore disables the 68851 interface, not an on-die MMU.

Amiga CPU usage

Amiga model CPU Notes
A1000 MC68000 (7.14 MHz) Original
A500/A2000 MC68000 (7.14 MHz) Most common
A3000 MC68030 (16/25 MHz) 68020 + on-chip MMU (68851 external on 68020)
A4000 MC68030 (25 MHz) or MC68040 (25 MHz) 68040 adds on-chip FPU
CD32 MC68EC020 (14.3 MHz) Cost-reduced 68020: 24-bit address bus (16 MiB), no PMMU bus interface; FPU port still enabled (68881/68882 can be attached)
A1200 MC68EC020 (14.3 MHz) Cost-reduced 68020: 24-bit address bus (16 MiB); can be replaced with full MC68020

AmigaOS code runs in user mode — the OS handles supervisor mode transitions internally. The 68000's 24-bit address space (16 MB) was a practical limit on A500/A2000. The 68020's instruction cache and 32-bit data path gave the A3000/A4000 significant speed improvements. The dynamic bus sizing of the 68020 allowed the Amiga to mix 8/16/32-bit peripherals without performance penalties.

See Also