Motorola 6809
Motorola 6809 microprocessor technical specifications
Developed by: Motorola
Launched: 1977
ALU bits: 8
Clock: 1 MHz
The 6809 was a major advance over its two predecessors, the Motorola 6800 and the MOS Technology 6502. It is considered the precursor to the Motorola 68000 family of processors.
Among the most significant improvements the 6809 introduced over its predecessors was the use of two 8-bit accumulators, rather than the one in the 6502, which could be combined into a single 16-bit register. It also had two 16-bit index registers (compared to the single 8-bit register of the 6502) and two 16-bit stack pointers (compared to one in the 6502), allowing for quite advanced addressing modes.
The 6809 is source-code compatible with the 6800, although the 6800 had 78 instructions and the 6809 only 59. Some instructions were replaced by more general ones that the assembler could translate, and some were replaced by addressing modes. The instruction set and register complement were highly orthogonal, making assembly language programming quite pleasant, rather than the nightmare of most other microcomputer CPUs of the time.
Another feature was one of the first multiplication instructions of its time, 16-bit arithmetic, and a special fast interrupt. But the 6809 was also highly optimized, with a speed up to five times faster than the 6800 series CPUs. Like the 6800, it included the infamous and undocumented Halt and Catch Fire (HCF) bus test instruction.
The optimization of the 6809 processor meant that, unlike many processors of the time, instructions were mostly built into the processor, rather than written using microcode or microprogramming. This meant it could take far fewer CPU clock cycles to process instructions. For example, the "ADDA 63" instruction takes three clock cycles (two to fetch the instruction, and one for the operation to occur). On the Zilog Z80, which was probably the 6809's main competitor, "ADD A,63" takes seven clock cycles. This means that the Z80 needs a clock speed at least twice that of the 6809 to match its performance. Additionally, Motorola's 8-bit CPUs used one clock cycle per memory access, not the state clock of most other microcomputers of the time. A simple memory read operation on a Z80, for example, requires several clock cycles compared to the single clock cycle of the 6800/6809.