Motorola 6809

Last updated
Motorola 6809
KL Motorola MC6809.jpg
General Info
Launched1978;42 years ago (1978)
Common manufacturer(s)
Performance
Data width8
Address width16
Architecture and classification
Instruction set 6809
Instructions59
Physical specifications
Transistors
  • 9,000
Package(s)
History

The Motorola 6809 ("sixty-eight-oh-nine") is an 8-bit microprocessor CPU with some 16-bit features from Motorola. It was designed by Terry Ritter and Joel Boney and introduced in 1978. It was a major advance over both its predecessor, the Motorola 6800, and the related MOS Technology 6502. Among the systems to use the 6809 are the TRS-80 Color Computer and Dragon 32/64 home computers, the Vectrex game system, and early 1980s arcade machines including Defender , Robotron: 2084 , Joust , and Gyruss . Series II of the Fairlight CMI digital audio workstation and Konami's Time Pilot '84 arcade game each use dual 6809 processors. [1]

Contents

Unlike the 6800 and 6502, the 6809 allows fully position-independent code and fully reentrant code in a simple and straightforward way. It was one of the first[ vague ] microprocessors with a hardware multiplication instruction, and it includes full 16-bit arithmetic and a fast interrupt system.

Description

6809 programming model, showing the processor registers 6809registers.png
6809 programming model, showing the processor registers

Among the significant enhancements introduced in the 6809 are the use of two 8-bit accumulators (A and B, which can be combined into a single 16-bit register, D), two 16-bit index registers (X, Y) and two 16-bit stack pointers. The index and stack registers allow advanced addressing modes. Program counter relative addressing allows for the easy creation of position-independent code, while a user stack pointer (U) facilitates reentrant code.

The 6809 is assembler source-compatible with the 6800, though the 6800 has 78 instructions to the 6809's 59. Some instructions were replaced by more general ones which the assembler translated into equivalent operations and some were even replaced by addressing modes. The instruction set and register complement were highly orthogonal, making the 6809 easier to program than the 6800 or 6502. Like the 6800, the 6809 includes an undocumented address bus test instruction which came to be nicknamed Halt and Catch Fire (HCF). [2]

Unlike contemporary processors that often used a microcoded architecture (such as the 68000 and partly the 8086), the 6809's internal design was more similar to early simple CPU designs (and to some degree also the RISC machines that appeared in the mid 1970s and onwards). Like most 8-bit microprocessors, the 6809 implementation can in be viewed as a register-transfer level (RTL) machine, using a central PLA (less combinational logic) to implement much of the instruction decoding as well as parts of the sequencing.

Just like the 6800 and 6502, the 6809 uses a two-phase clock to gate the latches. This two phase clock cycle is used as a full machine cycle in these processors. Simple instructions can therefore execute in as little as two or three such cycles, although this also means that these cycles must be pretty slow.

As a comparison, the higher resolution state machine of a CPU like the Z80 allows clock frequencies 3–5 times as high with the same speed memory chips, which was often the limiting factor. This is because the Z80 combines two full (but short) clock cycles into a relatively long memory access period compared to the clock, while the more asynchronous 6809 instead has relatively short memory access times: depending on version and speed grade, approximately 40–60% of a single clock cycle is typically available for memory access in a 6800, 6502, or 6809.

The 6809 has an internal two-phase 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); the internal letter indicates the processor's rated clock speed.

History

Die of Motorola 6809 Motorola 6809 die.JPG
Die of Motorola 6809

Core concepts

A key aspect of the 6809 design is a series of built-in features to allow position-independent code. This came about because the design team believed that future system integrators would look to off-the-shelf code in ROMs to handle common tasks. Libraries of common routines like floating point arithmetic, graphics primitives, Lempel-Ziv (LZ77 and LZ78) and so forth would be available for integrators to license, combine together along with their own code, and burn to ROM. [lower-alpha 1] A larger example is found in Motorola's 6809 programming manual, [3] which contains the full listing of assist09, a so-called monitor, a miniature operating system intended to be burned in ROM.

In this sort of "pick and place" programming environment, there was no way to predict where the code would end up in the ROM. Any instructions that referred to other locations in memory would normally have to be changed to reflect these changes in layout. In contrast, the 6809 allowed code to be placed anywhere in memory without modification. The 6809 design also focused on supporting reentrant code, code that can be called from various different programs concurrently without concern for coordination between them, or that can recursively call itself. [4]

The design team's prediction was, ultimately, incorrect. The market for pre-rolled ROM modules never materialized: Motorola's only released example was the MC6839 floating-point ROM. The industry as a whole solved the problem of integrating code modules from multiple separate sources by using automatic relocating linkers and loaderswhich is still the solution used todayinstead of using relocatable ROM modules.

However, the decisions made by the design team yielded a very powerful processor and made possible advanced operating systems like OS-9 and UniFlex, which took advantage of the position-independence, re-entrancy orientated nature of the 6809 to create multi-user multitasking operating systems.

The 6809 is sometimes[ according to whom? ] considered to be the conceptual precursor of the Motorola 68000 family of processors, though this is mostly a misunderstanding: the 6809 and 68000 design projects ran partly in parallel, and the two CPUs have quite differing architectures as well as radically different implementation principles. However, there is a certain amount of design philosophy similarity (e.g., considerable orthogonality and flexible addressing modes) and also some assembly language syntax resemblance as well as opcode mnemonic similarity. [5] Notwithstanding the common elements, the 6809 is a derivative of the 6800, whereas the 68000 was a totally new design.

Versions

The Motorola 6809 was originally produced in 1  MHz, 1.5 MHz (68A09) and 2 MHz (68B09) speed ratings. Faster versions were produced later by Hitachi. With little to improve, the 6809 marks the end of the evolution of Motorola's 8-bit processors; Motorola intended that future 8-bit products would be based on an 8-bit data bus version of the 68000 (the 68008). A micro-controller version with a slightly modified instruction set, the 6811, was discontinued as late as the second decade of the 21st century.

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 Tandy Color Computer 3 computers and a version of OS-9 was written to take advantages of the 6309's extra features: NitrOS9 [6]

Use

SuperPET SP9000 Commodore SuperPET SP9000 (Thomas Conte).jpg
SuperPET SP9000
Vectrex home video game console Vectrex-Console-Set.jpg
Vectrex home video game console
TRS-80 Color Computer TRS-80 Color Computer 1 front right.jpg
TRS-80 Color Computer

The 6809 is 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, and in the Milton Bradley Expansion (MBX) system (an arcade console for use with the Texas Instruments TI-99/4A home computer). The 6809E is the CPU in the TRS-80 Color Computer, the Acorn System 2, 3 and 4 computers (as an optional alternative to their standard 6502), the Fujitsu FM-7, the Canon CX-1, the Welsh-made Dragon 32/64 home computers, and the SWTPC, Gimix, Smoke Signal Broadcasting, etc. SS-50 bus bus systems, in addition to several of Motorola's own EXORmacs and EXORset development systems. 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).

In addition to home computers and game consoles, the 6809 is also found in a number of arcade games released during the early to mid-1980s. Williams Electronics was a prolific user of the processor, which was deployed in Defender , Stargate , Joust , Robotron: 2084 , Sinistar , and other games. The 6809 CPU forms the core of the successful Williams Pinball Controller. The KONAMI-1 is a modified 6809 used by Konami in Roc'n Rope , Gyruss , and The Simpsons . [7]

The 6809 CPU was also used in traffic signal controllers made in the 1980s by several different manufacturers. [8]

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. Some years later, enthusiasts developed the NitrOS9 operating system based upon the original Microware OS9.

Series II of the Fairlight CMI (computer musical instrument) used dual 6809 CPUs and OS9, and also used one 6809 CPU per voice card. The 6809 was often employed in music synthesizers from other manufacturers such as Oberheim (Xpander, Matrix 6/12/1000), PPG (Wave 2/2.2/2.3, Waveterm A), and Ensoniq (Mirage sampler, SDP-1, ESQ1, SQ80). The latter used the 6809E as their main CPU. The (E) version was used in order to synchronize the microprocessor's clock to the sound chip (Ensoniq 5503 DOC) in those machines; in the ESQ1 and SQ80 the 68B09E was used, requiring a dedicated arbiter logic in order to ensure 1 MHz bus timing when accessing the DOC chip.

Hitachi 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 64 kilobyte (64×210 byte) addressing range to a full 1 mebibyte (1×220 byte) in 4 KB 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 management facilities. Most other computers of the time with more than 64 KB of memory addressing were limited to bank switching where much if not all the 64 KB was simply swapped for another section of memory, although in the case of the 6809, Motorola offered their own MC6829 MMU design mapping 2 mebibytes (2×220 byte) in 2 KB pages. [9]

The very first Macintosh prototype, wire-wrapped by Burrell Smith, contained a 6809. [10]

The 6809 was used in the mid-1980s through the early 2000s in Motorola SMARTNET and SMARTZONE Trunked Central Controllers (so dubbed the "6809 Controller"). These controllers were used as the central processors in many of Motorola's trunked two-way radio communications systems.[ citation needed ]

Legacy

Motorola spun off its microprocessor division in 2004. The division changed its name to Freescale and has subsequently been acquired by NXP.

Neither Motorola nor Hitachi produce 6809 processors or derivatives anymore. 6809 cores are available in VHDL and can be programmed into an FPGA and used as an embedded processor with speed ratings up to 40 MHz.[ citation needed ] Some 6809 opcodes also live on in the Freescale embedded processors. In 2015, Freescale authorized Rochester Electronics to start manufacturing the MC6809 once again as a drop-in replacement and copy of the original NMOS device. Freescale supplied Rochester the original GDSII physical design database. At the end of 2016, Rochester's MC6809 (including the MC68A09, and MC68B09) is fully qualified and available in production.

Australian developer John Kent has synthesized the Motorola 6809 CPU in hardware description language (HDL). [11] This has made possible the use of the 6809 core at much higher clock speeds than were available with the original 6809. Gary Becker's CoCo3FPGA runs the Kent 6809 core at 25 MHz. Roger Taylor's Matchbox CoCo runs at 7.16 MHz. Dave Philipsen's CoCoDEV runs at 25 MHz.

Notes

  1. Other examples are matrix arithmetic, Huffman encoding/decoding, statistical functions, string searching (e.g. by the Boyer-Moore algorithm) and tree structure management. NOTE FROM ED: are these examples from Moto, or just picked at random?

Related Research Articles

A complex instruction set computer is a computer in which single instructions can execute several low-level operations or are capable of multi-step operations or addressing modes within single instructions. The term was retroactively coined in contrast to reduced instruction set computer (RISC) and has therefore become something of an umbrella term for everything that is not RISC, from large and complex mainframe computers to simplistic microcontrollers where memory load and store operations are not separated from arithmetic instructions. A modern RISC processor can therefore be much more complex than, say, a modern microcontroller using a CISC-labeled instruction set, especially in the complexity of its electronic circuits, but also in the number of instructions or the complexity of their encoding patterns. The only typical differentiating characteristic is that most RISC designs use uniform instruction length for almost all instructions, and employ strictly separate load/store-instructions.

Hitachi 6309

The 6309 is Hitachi's CMOS version of the Motorola 6809 microprocessor. While in "Emulation Mode" it is fully compatible with the 6809. To the 6809 specifications it adds higher clock rates, enhanced features, new instructions, and additional registers. Most new instructions were added to support the additional registers, as well as up to 32-bit math, hardware division, bit manipulations, and block transfers. The 6309 is generally 30% faster in native mode than the 6809.

Intel 8086 16-bit central processing unit

The 8086 is a 16-bit microprocessor chip designed by Intel between early 1976 and June 8, 1978, when it was released. The Intel 8088, released July 1, 1979, is a slightly modified chip with an external 8-bit data bus, and is notable as the processor used in the original IBM PC design.

Intel 8088 microprocessor model

The Intel 8088 microprocessor is a variant of the Intel 8086. Introduced on June 1, 1979, the 8088 had an eight-bit external data bus instead of the 16-bit bus of the 8086. The 16-bit registers and the one megabyte address range were unchanged, however. In fact, according to the Intel documentation, the 8086 and 8088 have the same execution unit (EU)—only the bus interface unit (BIU) is different. The original IBM PC was based on the 8088, as were its clones.

Motorola 68000 Microprocessor

The Motorola 68000 is a 16/32-bit CISC microprocessor, introduced in 1979 by Motorola Semiconductor Products Sector.

MOS Technology 6502 8-bit microprocessor

The MOS Technology 6502 is an 8-bit microprocessor that was designed by a small team led by Chuck Peddle for MOS Technology. The design team had formerly worked at Motorola on the Motorola 6800 project; the 6502 is essentially a simplified, less expensive and faster version of that design.

Motorola 6800 8-bit microprocessor

The 6800 is an 8-bit microprocessor designed and first manufactured by Motorola in 1974. The MC6800 microprocessor was part of the M6800 Microcomputer System that also included serial and parallel interface ICs, RAM, ROM and other support chips. A significant design feature was that the M6800 family of ICs required only a single five-volt power supply at a time when most other microprocessors required three voltages. The M6800 Microcomputer System was announced in March 1974 and was in full production by the end of that year.

Motorola 68020 microprocessor model

The Motorola 68020 is a 32-bit microprocessor from Motorola, released in 1984. It is the successor to the Motorola 68010 and is succeeded by the Motorola 68030. A lower cost version was also made available, known as the 68EC020. In keeping with naming practices common to Motorola designs, the 68020 is usually referred to as the "020", pronounced "oh-two-oh" or "oh-twenty".

Motorola 68060 microprocessor model

The Motorola 68060 ("sixty-eight-oh-sixty") is a 32-bit microprocessor from Motorola released in 1994. It is the successor to the Motorola 68040 and is the highest performing member of the 68000 series. Two derivatives were produced, the 68LC060 and the 68EC060.

Instructions per second (IPS) is a measure of a computer's processor speed. For CISC computers different instructions take different amounts of time, so the value measured depends on the instruction mix; even for comparing processors in the same family the IPS measurement can be problematic. Many reported IPS values have represented "peak" execution rates on artificial instruction sequences with few branches and no cache contention, whereas realistic workloads typically lead to significantly lower IPS values. Memory hierarchy also greatly affects processor performance, an issue barely considered in IPS calculations. Because of these problems, synthetic benchmarks such as Dhrystone are now generally used to estimate computer performance in commonly used applications, and raw IPS has fallen into disuse.

MOS Technology semiconductor design and fabrication company

MOS Technology, Inc., later known as CSG , was a semiconductor design and fabrication company based in Norristown, Pennsylvania, in the United States. It is most famous for its 6502 microprocessor and various designs for Commodore International's range of home computers.

TRS-80 Color Computer line of home computers

The RadioShack TRS-80 Color Computer is a line of home computers based on the Motorola 6809 processor. The Tandy Color Computer line started in 1980 with what is now called the CoCo 1 and ended in 1991 with the more powerful CoCo 3. All three CoCo models maintained a high level of software and hardware compatibility, with few programs written for the older model being unable to run on the newer ones.

OS-9 is a family of real-time, process-based, multitasking, multi-user operating systems, developed in the 1980s, originally by Microware Systems Corporation for the Motorola 6809 microprocessor. It was purchased by Radisys Corp in 2001, and was purchased again in 2013 by its current owner Microware LP.

The Motorola 68000 series is a family of 32-bit CISC microprocessors. During the 1980s and early 1990s, they were popular in personal computers and workstations and were the primary competitors of Intel's x86 microprocessors. They were most well known as the processors powering the early Apple Macintosh, the Sharp X68000, the Commodore Amiga, the Sinclair QL, the Atari ST, the SNK NG AES/Neo Geo CD, the Sega Genesis, Atari Jaguar and Commodore CDTV. Although no modern desktop computers are based on processors in the 68000 series, derivative processors are still widely used in embedded systems.

In computer engineering, Halt and Catch Fire, known by the assembly mnemonic HCF, is an idiom referring to a computer machine code instruction that causes the computer's central processing unit (CPU) to cease meaningful operation, typically requiring a restart of the computer. It originally referred to a fictitious instruction in IBM System/360 computers, making a joke about its numerous non-obvious instruction mnemonics.

The 6800 family of 8-bit microprocessors (µPs) and microcontrollers (µCs) is based upon the Motorola 6800 CPU. The architecture also inspired the MOS Technology 6502, and that company started in the microprocessor business producing 6800 replacements.

Motorola 68881 floating-point coprocessor for the Motorola 68k

The Motorola 68881 and Motorola 68882 are floating-point coprocessor (FPU) devices that were used in some computer systems in conjunction with the 68020 or 68030 microprocessors. The Motorola 68881 was introduced in 1984. The addition of one of these devices added substantial cost to a computer, but added a floating-point unit that could rapidly perform floating point mathematical calculations. In the mid 1980s, this feature was useful mostly for scientific and mathematical software.

This article is a generic description of Namco's 8-bit "Libble Rabble" hardware. For the specific arcade game, see Libble Rabble.

DTACK Grounded was a computer hobbyist newsletter published from July 1981 to September 1985 by Hal W. Hardenberg. Subtitled "The Journal of Simple 68000 Systems", the newsletter was dedicated to the proposition that the Motorola 68000 CPU could be used to build simple fast computers. In 1981 this was a revolutionary idea. This was before 68000-based personal computers like the Sharp X1, Apple Macintosh, Commodore Amiga, and Atari ST had been created. In 1981 Motorola was marketing the 68000 solely as a CPU for high-end Unix workstations. Hal believed that the 68000 could be used as a simple embedded microprocessor as well, and used the newsletter to explain how to do that.

N8VEM was a homebrew computing project. It featured a variety of free and open hardware and software. N8VEM builders made their own homebrew computer systems for themselves and shared their experiences with other homebrew computer hobbyists. N8VEM homebrew computer components are made in the style of vintage computers of the mid to late 1970s and early 1980s using a mix of classic and modern technologies. They are designed with ease of amateur assembly in mind.

References

  1. "Konami Dual 6809 Based Hardware". System 16.
  2. John Bayko. "Great Microprocessors of the Present and the Past". Archived from the original on 2013-07-01. Retrieved 2013-07-01.
  3. https://archive.org/details/bitsavers_motorola68_13419254
  4. This means that any number of modules can share any other (reentrant) module in common without synchronization, mutual exclusion controls, or other restrictions on their shared access.
  5. though the assembly language is not a characteristic of the 6809 per se, as many assembly languages can be constructed for any given machine language: witness the assembly languages of the Z80 vs. the 8080, or the 8086/88 assembly language vs. the one that NEC developed for the V30/V20 (both cases of companies avoiding Intel's claimed copyrights on its assembly language mnemonics)
  6. NitrOS9
  7. Nicola Salmoria and the MAME Team. "konami: Portable Konami cpu emulator". Archived from the original on 2012-10-04. Retrieved 2012-10-21.
  8. Robert J. Simpson; Raveendran Paramesran (1998). Advanced 8-bit Microprocessor, MC6809: Its Software, Hardware, Architecture & Interfacing Techniques. Springer. ISBN   978-981-3083-09-7.
  9. "1981 Motorola Microprocessors Data Manual". archive.org. 1981. Retrieved 2 April 2018.
  10. Hertzfeld, Andy (October 1980). "Good Earth". Folklore.org. Retrieved 2009-12-29.
  11. "John Kent's Home Web Page".

Further reading

Datasheets and manuals
Books
Magazines
Reference cards
Simulators / Emulators
Boards
FPGA

This article is based on material taken from the Free On-line Dictionary of Computing prior to 1 November 2008 and incorporated under the "relicensing" terms of the GFDL, version 1.3 or later.