Motorola 68000

<processor> (MC68000) The first member of Motorola Inc.'s family of 16 and 32 bit microprocessors. The successor to the Motorola 6809 and followed by the Motorola 68010.

The 68000 was actually a 32 bit architecture internally, but 16 bit externally. It also included 24 bit addressing and a linear address space, with no evil segment registers. That meant that a single directly accessed array or structure could be larger than 64K in size. Addresses were computed as 32 bit, but the top 8 bits were cut to fit the address bus into a 64 pin package (address and data shared a bus in the 40 pin packages of the 8086 and Zilog Z8000). Absence of segments made programming the 68000 easier than competing Intel processors.

The 68000 had an orthogonal instruction set and sixteen registers, split into data and address registers. One address register was reserved for the Stack Pointer. Both types of registers could be used for any function except for direct addressing. Only address registers could be used as the source of an address, but data registers could provide the offset from an address.

Like the Zilog Z8000, the 68000 featured a supervisor and user mode, each with its own Stack Pointer. The Zilog Z8000 and 68000 were similar in capabilities, but the 68000 was 32 bits internally, making it faster and eliminating forced segmentations. It was designed for expansion, including specifications for floating point and string operations (floating point later implemented in the Motorola 68040). Like many other CPUs of the time, it could fetch the next instruction during execution (2 stage pipeline), the 68040 was fully pipelined (6 stages).

The 68000 was used in many workstations, notably early Sun 2s and Sun 3s, and personal computers, notably Apple Computer's first Macintoshes.

Variants of the 68000 include the 68HC000 (a low-power HCMOS implementation) and the 68008 (an eight bit data bus version used in the Sinclair QL).

["The 68000: Principles and Programming", Leo Scanlon, 1981].

(22 Nov 1994)