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¶
- 68000 Programming Model
- 680x0 Instruction Reference — full instruction matrix, vector table, variants per CPU