Motorola 68010

The Motorola MC68010 processor is a 16/32-bit microprocessor from Motorola, released in 1982. In line with the Motorola 68000 naming convention, it is usually just referred to as the 010 (pronounced oh-one-oh).

It fixes several small flaws in the 68000, and adds a few features. The 68010 was pin-compatible with the 68000, but was not 100% software compatible. Some of the differences were:

  • The MOVE from SR instruction is privileged (it may only be executed in supervisor mode). This means that the 68010 meets Popek and Goldberg virtualization requirements. Because the 68000 offers an unprivileged MOVE from SR, it does not.
  • The MOVE from CCR instruction was added to partially compensate for the removal of the user-mode MOVE from SR.
  • It can recover from bus faults, allowing it to implement virtual memory.
  • The exception stack frame was different.
  • It introduced a vector base register (VBR), which allowed the vector jump table to be anywhere in RAM.

Additionally, the 68010 had a "loop mode", which could be considered a tiny and special-case instruction cache, which accelerates loops that consist of only 2 instructions.

In practice, the overall speed gain compared to the 68000 at the same frequency was less than 10%.

The 68010 could be used with the 68451 MMU. However, problems with the design, such as a 1 clock memory access penalty, made this configuration unpopular. Some vendors such as Sun Microsystems used their own MMU design.

The 68010 was never as popular as the 68000, as the added complexity and cost turned out not to be worthwhile in practice. Vendors looking for MMU support waited for the 68020 instead. However, due to the 68010's small speed boost over the 68000 and its support for virtual memory it can be found in a number of smaller Unix systems, both with the 68451 MMU (in the Torch Triple X), and with a custom MMU (such as the Sun-2 Workstation, AT&T UNIX PC, the NCR Tower XP and early HP9000s like the Model 300 and 310) and various research machines. Occasionally, owners of Atari ST and Amiga computers and Sega Genesis game consoles replaced their system's 68000 CPU with a 68010 to gain a small speed boost.