Motorola 68000

The Motorola 68000 is a 1979 imported CISC processor from the 68000 family of Motorola. It has an internal 32 -bit register, a self-addressed 32-bit linear address space, of which 24 bits available externally, eight 32 -bit data registers, nine 32 -bit address register, a 16 -bit status register, and a 16- bit data bus. A variant of the Motorola 68008, in which the data bus 8 bits and the address bus 20 in bit DIP version ( or 22 bits in the PLCC version) are reduced. As an upgraded version of the Motorola 68010 came on the market, which was adjusted for errors and provides improved support for virtual memory. A 68010 with extended address bus of 31 bits was offered as a Motorola 68012. Later was followed by the 68020, 68030, 68040 and 68060th

The name comes 68000, according to a modern legend of the number of transistors that has the processor. In fact, it is the logical continuation of the type designation of the older 8 -bit Motorola processor family Motorola 6800th The architecture of the 68000 family is based on mainframes, such as IBM360 and the LSI11/PDP11 of Digital Equipment, but with a linear address range that can be accessed without trial as multiplexing, segmentation or paging directly.

The 68000 (also called 68k ) with 8 MHz clock frequency came in 64 -pin DIL package (see picture) on the market. With the transition to higher clock speeds then only 68-pin PLCC package were used from 16 MHz.

Architecture and instruction set

The processors in the 68000 family are characterized by the large number of registers and a largely orthogonal instruction set, that is, almost all machine instructions can be used with all types of addressing. This orthogonal instruction set is constructed as follows:

The 68000 family is a so-called two - address machine, in most commands, a variable data width. S = { B, W, L} can be used (equivalent to 8, 16 or 32 bit) and for the two source and destination operands or one of the 68000 addressing modes can be used:

Or the complex MC68020/30/40/60-Adressierungsarten:

68000 only has a 16- bit ALU, and also a 16-bit instruction set, but both with 8 -, 16 - and can handle 32-bit data types ( 32-bit ) architecture. The MC68020/030/040/060 other hand, has a 32 -bit ALU.

Example of a typical M68000 command:

The command (opcode ) is 16 bits wide. Three bits (m ) are used for the addressing mode, three bits for the used (R) register and an offset ( displacement ).

0100 1110 1011 1010 is to JSR ( d16, PC). Because here comes the PC - relative addressing with displacement address ( displacement ) is applied, the following word as a signed relative address ( displacement ) will be used. Other commands such as MOVEQ # n Dx are even completely encoded in 16 bits.

The ability of the 68000 to also specify 32 -bit addresses and data for almost all commands (which then had to be naturally read by a 16 -bit bus in several cycles ), the software development simplified immensely, as it virtually a 32- bit architecture acted.

This results in not such as the Intel 8086 problems to address records over 64 KiB size. Due to the 16- bit ALU and the 16- bit data bus of the 68000 times 16 -bit processor is called, but it leads harmless 32-bit software. Due to the 16- bit ALU costs such as a 32- bit addition of the double time. However, the circuit for generating addresses has full 32 bit, so that, for example, searching a text with 8 -bit characters is not slower than would be expected from a pure 16- bitters. In addition, the text can be longer than 64 KiB without modification of the program. 68000 software 32 -bit software.

The contents of the upper 8 bits of the address register is ignored by the memory access 68000. This makes it possible to freely use these bits, for example, meta- information about a pointer ( pointer). In later generations of the 68000 processor family, with 32-bit external address bus, this obviously leads to problems. Since this type of programming, but was very common on the early Macintosh computers, had later Macintosh versions with 68020 without Memory Management Unit (MMU ) has a special block, called Address Management Unit ( AMU), instead of the MMU, which the upper 8 bits of address optional ausmaskierte to use old software in a 24- bit compatibility mode can. As processor with nano code and microcode 68000 is somewhat programmable hardware level by the manufacturer. This led to such interesting variations like the 68000-360, directly on the chip could run a stripped down version of IBM-System/360-Befehlssatzes and was used for a small 360 model from IBM.

Also this allowed an easy way to generate variants of the chip. The first of these was the 68008, in which only the nano code was changed so that the bus was approached only with 8-bit width. Another variation was the 68010, which could be much better operated with virtual memory and also still had some detail improvements. An offshoot of the 68010 was not long available 68012, which provided more address lines for more memory (up to 2 GiB ) available. Later variants were mostly derived directly from the original CPU, such as the 68EC020 from 68020 (24 instead of 32 address lines ) - or 68EC040 and the 68LC040 from 68040 ( it then lacked either the FPU or MMU). From the 68020 step by step were also the first 64 -bit instructions integrated (for simple multiplications ).

About three binary coded interrupt interrupts with seven different priorities can be triggered, which is the highest non- maskable. Together with appropriate peripheral devices are up to 256 vectored interrupts is possible.

The processor further includes control lines that indicate whether a program command or a data is fetched next. While this allows the construction of machines with separate storage for programs and data; but a Harvard architecture is not possible because the necessary separate buses for program and data are not available here.


In the early 1980s, the CPU, with optional MMU, found its way into the Unix world. She was in high numbers in the workstations from Apollo Computer (Apollo), HP ( HP 9000-300 ) and Sun (Sun -1 ) or of Digital Equipment Corporation ( Vax 100) and SGI installed.

Mid-1980s was followed by personal and home computers, the first was Lisa from Apple, which was replaced soon by the Macintosh ( Mac). He was also installed at the Commodore Amiga, the Atari ST and Sinclair QL ( 68008 ).

In the late 1980s and early 1990s, he found himself in game consoles such as the Sega Mega Drive or the Neo Geo. In chess computer (such as the Fidelity Mach IV than 20 MHz and 68020 as Mephisto Amsterdam 68000 with 12 MHz ) of the processor is used.

In calculators by Texas Instruments such as the TI -89 ( Titanium), TI -92 (Plus) and Voyage 200 he can still find the application. The Airbus A320, he controls the Elevator Aileron Computer ( ELAC ), which is part of the flight control system.

The main application area of the processor were and control computers in industry, mostly with a real-time operating system such as OS-9 or pSOS, Nucleus or Linux68k, the latter is not a real- time operating system in the true sense. This commitment and the wide spread were possible thanks to the good Interruptarchitektur and in combination with the VMEbus. In large quantities, this processor also found in laser printers. In addition, it was used on a LAN card (Schneider and Koch) and SCSI controllers (DPD ), but also in modems ( Zyxel ). The automotive industry - primarily (motor) control units - preferred to the appearance of the PowerPC using the MC683xx controller family.

The high-performance models of the 68000 family are the 68040 and 68060 ( to 66 or 75 MHz). Since Apple switched to PowerPC CPUs after the 68040, the 68060 was only in expansion cards or for the Amiga and the Atari Falcon 030 ( CT60 ) as well as for special applications (eg embedded systems such as BMW models of the 1990s highly powerful chess computers ) are used.

Meanwhile, the actual 68000 has virtually disappeared, but is still used in the Nedap voting computers. Motorola (now Freescale ) manufactures a variety of microcontrollers, which are derived from the 68000. The Motorola ColdFire family ( 68k based development ) is still very popular in the embedded systems and goes to the V5 with 400 MHz, which is used in HP laser printers. The Dragon Ball spin-off were used in the entry-level models of Palm PDAs and are used in simple phones.

A prominent example of a ColdFire -based (Amiga -inspired ) system was the Metabox -1000 - STB, which, however, never came to market.

Other components

The processor 68020, 68030, 68040 and 68060 have been incorporated features that are now found to be " novelty ", for example ARM. These include:

  • Internal Harvard architecture
  • Branch Caches / Prediction
  • Barrel shifter
  • Pipelining / prefetch
  • (Also called Protected Mode or Kernel Mode ) User / Supervisor Mode

Other key achievements relate to the Embedded Controller ( single chip ) M68000 family, the M683xx family. These include, for example, the MC68332, MC68360, MC68376. This family were leading the way with the following functions:

  • BDM ( Background Debug Mode ), today Nexus
  • Dual core ( the second CPU was used as an intelligent peripheral controllers, such as when