The Motorola MC68010 processor is a 16/32-bit microprocessor from Motorola, released in 1982 as the successor to the Motorola 68000. It fixes several small flaws in the 68000, and adds a few features.
The 68010 is pin-compatible with the 68000, but is not 100% software compatible. Some of the differences were:
- The MOVE from SR instruction is now 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 meet them.
- 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, and re-run the last instruction, allowing it to implement virtual memory.
- The exception stack frame is different.
- It introduced a 22-bit Vector Base Register (VBR) that holds A[31:10] of the 1 KiB-aligned base address for the exception vector table. The 68000 vector table was always based at address zero.
- "Loop mode" which accelerates loops consisting of only two instructions, such as a MOVE and a DBRA. The two-instruction mini-loop opcodes are prefetched and held in the 6-byte instruction cache while subsequent memory read/write cycles are only needed for the data operands for the duration of the loop. It provided for performance improvements averaging 50%, as a result of the elimination of instruction opcodes fetching during the loop.
In practice, the overall speed gain over a 68000 at the same frequency is less than 10%.
The 68010 could be used with the 68451 MMU. However, aspects of its design, such as its 1 clock memory access penalty, made this configuration unpopular. Some vendors used their own MMU designs, such as Sun Microsystems in their Sun-2 workstation and Convergent Technologies in the AT&T UNIX PC/3B1.