Motorola 6809
From Free net encyclopedia
Image:MC6809EP.jpg The Motorola 6809 is an 8-bit (arguably, 8/16-bit) microprocessor CPU from Motorola, introduced circa 1979. It was a major advance over both its predecessor, the in-house Motorola 6800, and the comparable MOS Technology 6502.
Contents |
Description
Image:6809registers.png Among the significant enhancements introduced in the 6809 were the employment of two 8-bit accumulators (A and B, which could be combined into a single 16-bit register, D), two 16-bit index registers (X, Y) and two stack pointers (U, S). The index and stack registers allowed very advanced addressing modes.
The 6809 was source-compatible with the 6800, even though the 6800 had seventy-eight instructions to the 6809's fifty-nine. Some instructions were replaced by more general ones which the assembler would translate and some were even replaced by addressing modes. The instruction set and register complement were highly orthogonal, in general making the 6809 easier to program than most microcomputer CPUs of the time.
Other features were one of the first hardware-implemented multiplication instructions of the time, full 16-bit arithmetic and an especially fast interrupt system. The 6809 was also highly optimised, up to five times faster than the 6800 series CPUs. Like the 6800, it included the undocumented Halt and Catch Fire (HCF) bus test instruction.
The 6809's optimisation meant that unlike many processors of the day, the instructions were mostly hardwired into the processor (a common trait of the RISC CPUs not prevalent until the 1990s) rather than microcoded. This meant that it took significantly fewer CPU clock cycles to process instructions. For example, the instruction "ADDA 63
" took three clock cycles - two to fetch the instruction and one to execute the operation; on the Zilog Z80, one of the 6809's main competitors, "ADD A,63
" took seven clock cycles. This meant that the Z80 needed to have a clock speed at least twice that of the 6809 if it were to match its performance. In addition, the Motorola 8-bit CPUs used one clock cycle per memory access, not the internal state clock most other microcomputers used at the time. A single memory-read operation on a Z-80, for instance, needed several clock cycles.
The 6809 had an internal clock generator (needing only an external crystal) whereas the 6809E needed an external clock generator. There were also variants such as the 68A09(E) and 68B09(E), where the letter placed between the "68" and "09" indicated the processor's rated clock speed.
History
The Motorola 6809 was originally produced in 1MHz, 1.5MHz (68A09) and 2MHz (68B09) speed ratings. Faster versions were produced later by Hitachi and perhaps others. It is sometimes considered to be the conceptual precursor of the Motorola 68000 family of processors, though this is somewhat of a misinterpretation. The 6809 and 68000 designs ran lagely in parallel and both processors were released in 1979. There is a certain amount of design philosophy similarity as well as opcode mnemonic similarity, but the 6809 is a derivative of the 6800 whereas the 68000 was a totally new design. An 8 bit data bus version (68008) was intended to be used in future 8-bit designs. In that respect, the 6809 is an evolutionary dead-end.
The team that designed the 6809 believed that in the future, system integrators would look to off-the-shelf code in ROMs to handle common tasks. An example of this might be binary floating point arithmetic, which is a common requirement in many systems. In order to speed time to market, common code bases could be purchased (rather than developed in-house) and integrated into systems from many manufacturers. Since one cannot guarantee where this code would be located in an arbitrary system, the 6809 design focused heavily on position-independent, re-entrant code that could be freely located anywhere in the memory map. This, in reality, never seemed to happen: Motorola's only example of this was the MC6839 floating-point ROM. However, the decisions made by the design team made for a very powerful processor and paved the way for advanced operating systems like OS9, which take advantage of the position-independent re-entrant nature of the 6809.
The 6809 was used in Commodore's dual-CPU SuperPET computer, and, in its 68A09 incarnation, in the unique vector graphics based Vectrex home video game console with built-in screen display. The 6809E was used in the TRS-80 Color Computer (CoCo), the Acorn System 2, 3 and 4 computers (as an optional alternative to their standard 6502) and in the CoCo's UK clone, the Welsh-made Dragon 32/64 home computers. In France, Thomson micro-informatique produced a series of micro-computers based on the 6809E (TO7, TO7/70, TO8, TO8D, TO9, TO9Plus, MO5, MO6, MO5E and MO5NR).
Software development company Microware developed the original OS-9 operating system (not to be confused with the more recent Mac OS 9) for the 6809, later porting it to the 68000 and i386 series of microprocessors.
The Hitachi 6309 was an enhanced version of the 6809 with extra registers and additional instructions, including block move, additional multiply instructions and hardware-implemented division. It was used in unofficially-upgraded CoCo 3 computers and a versions of OS-9 were written to take advantages of the 6309's extra features.
Hitachi also produced its own 6809-based machines, the MB6890 and later the S1. These were primarily for the Japanese market, but some were exported to and sold in Australia. There the MB6890 was dubbed the "Peach", probably in ironic reference to the popularity of the Apple II. The S1 was notable in that it contained paging hardware extending the 6809's native 64k addressing range to a full 1Mb in 4k pages. It was similar in this to machines produced by SWTPC, Gimix, and several other suppliers. TSC produced a Unix-like operating system uniFlex which ran only on such machines. OS-9 Level II, also took advantage of such memory mangement facilities. Most other computers of the time with more than 64KB of memory addressing were limited to bank switching where much if not all the 64KB was simply swapped for another section of memory.
Neither Motorola nor Hitachi produce 6809 processors or derivatives anymore, despite the 6809 being one of the most powerful general-purpose 8-bit CPUs ever produced. Many of its innovative features have since been copied. 6809 cores are available in VHDL and can be programmed into FPGA and used as an embedded processor with speed ratings up to 40MHz. Some 6809 opcodes also live on in Motorola (now Freescale) embedded processors.
References
- Leventhal, Lance (1981). 6809 Assembly Language Programming. Osborne/McGraw-Hill. ISBN 0-931988-35-7.
External links
- The BYTE 6809 Articles (Jan–Feb 1979) (PDF) – By Terry Ritter and Joel Boney, co-designers of the 6809; BYTE magazine scans by T. Lindner
- news://comp.sys.6809 – Usenet newsgroup for 6809 enthusiasts
- This article was originally based on material from the Free On-line Dictionary of Computing, which is licensed under the GFDL.
Image:Motologosmall.png | List of Motorola/Freescale microprocessors | Image:Freescalelogosmall.png | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|