Hitachi 6309

From Free net encyclopedia

Image:HD63C09EP.jpg The 6309 is Hitachi's CMOS version of the Motorola 6809 microprocessor. Compatible with the 6809, it added two new eight-bit registers that could be added to form a second 16-bit register, and all four eight-bit registers could form a 32-bit register. The 6309 also featured division, some 32-bit arithmetic, additional bit manipulation instructions, and block move instructions, and was generally 30% faster in native mode than the 6809.

Surprisingly, this information was never published by Hitachi. The April 1988 issue of Oh! FM, a Japanese magazine for Fujitsu personal computer users, contained the first description of the 6309's additional capabilities. Later, Hirotsugu Kakugawa posted details of the 6309's new features and instructions to comp.sys.m6809. This led to the development of NitrOS9 for the Tandy Color Computer 3.

Contents

Progamming Model

Image:6309programmingmodel.png

Differences from the Motorola 6809

The 6309 differs from the 6809 in several key areas.

Process Technology

The 6309 is fabricated in CMOS technology, while the 6809 is an NMOS device. As a result, the 6309 requires less power to operate than the 6809. It is also a fully static device, which will not lose internal state information. This means it can be used with external DMA without needing refresh every 14 cycles as the 6809 does.

Clock Speed

The 6309 has B (2MHz) versions as the 6809 does. However a "C" speed rating was produced with either a 3.0 or 3.5MHz maximum clock rate, depending on which datasheet is referenced. (Several Japanese computers had 63C09 CPUs clocked at 3.58MHz, so the 3.5 rating seems most likely). Anecdotal and individual reports indicate that the 63C09 variant can be clocked at 5MHz with no ill effects. Like the 6809, the Hitachi CPU comes in both internal and external clock versions (HD63B/C09 and HD63B/C09E respectively)

Computational Efficiency

When switched into 6309 Native Mode (as opposed to the default 6809-compatible mode) many key instructions will complete in fewer clock cycles. This often improves execution speeds by up to 30%.

Additional Registers

  • There are two additional 8-bit accumulators, E and F. These can be concatenated to form a 16-bit accumulator called W. The existing 6809 16-bit accumulator, D, can also be concatenated with W to form a 32-bit accumulator Q. (Presumably standing for "Quad").
  • A "Transfer register", V, which is only accessible via inter-register instructions. Its value is not cleared during a hardware reset, so it can maintain a constant 'Value', hence "V".
  • An 8/16-bit Zero register, called 0, is provided for speeding up operations where a zero constant is used. This register always returns a zero value, and writing to it has no effect.
  • A new mode register, MD, which controls the 6309's operating mode and operates as a secondary condition code. Only 4 bits of this register are defined.

Additional Instructions

Most of the new instructions are modifications of exisiting instructions to handle the existence of the additional registers, such as load, store, add, and the like. Genuine 6309 additions include inter-register arithmetic, block transfers, hardware division, and bit-level manipulations.

Despite the user-friendliness of the additional instructions, analysis by 6809 programming gurus indicates that many of the new instructions are actually slower than the equivalent 6809 code, especially in tight loops. Careful analysis should be done to insure that the programmer uses the most efficient code for the particular application.

Additional Hardware Features

It is possible to change the mode of operation for the FIRQ interrupt. Instead of stacking the PC and CC registers (normal 6809 behavior) the FIRQ interrupt can be set to stack the entire register set, as the IRQ interrupt does. In addition, The 6309 has two possible trap modes, one for an illegal instruction fetch and one for division by zero. The illegal instruction fetch is not maskable, and many TRS-80 Color Computer users reported that their 6309's were "buggy" when in reality it was an indicator of enhanced and unknown features!

Related Links

Hirotsugu Kakugawa's original "Secret 6309 features memo" and thread on Google's Usenet archive

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
The 6800 family : 6809 (see also: Hitachi 6309)
68000 family : 68000 | 68008 | 68010 | 68012 | 68020 | 68030 | 68040 | 68060 | ColdFire | DragonBall
Pre-PowerPC RISC : 88000
Floating-point coprocessors : 68881, 68882
PowerPC family (as part of AIM) : PPC 7XX range (aka "PowerPC G3") | PPC 7XXX range (aka "PowerPC G4")
pl:Hitachi 6309