6309は、日立のCMOS版モトローラ6809マイクロプロセッサで、1985年に予備データが入手可能でした。 [ 1 ]当初は、内部の多くの改良点に言及することなく、6809の低消費電力版として販売されました。
エミュレーションモードでは、6809と完全に互換性があります。6809の仕様に加えて、より高いクロック周波数、強化された機能、新しい命令、および追加のレジスタが追加されています。新しい命令のほとんどは、追加のレジスタをサポートするため、また最大32ビットの演算、ハードウェア除算、ビット操作、およびブロック転送をサポートするために追加されました。6309は、ネイティブモードでは一般的に6809よりも30%高速です。
この情報は日立によって公表されたことは一度もありませんでした。富士通のパーソナルコンピュータユーザー向けの日本の雑誌であるOh! FMの1988年4月号に、6309の追加機能に関する最初の説明が掲載されました。その後、角川博嗣氏が6309の新機能の詳細とcomp.sys.m6809への指示を投稿しました。[ 2 ]これにより、Tandy Color Computer 3用のNitrOS-9 [ 3 ]の開発につながりました。

6309は、6809とはいくつかの重要な点で異なっている。
6309はCMOS技術で製造されているのに対し、6809はNMOSデバイスである。そのため、6309は6809よりも動作に必要な電力が少ない。
これは動的な設計(データシート[ 4 ]では最小クロック周波数が500kHzと規定されており 、クロック速度が低すぎると状態が失われる)ではあるものの、最大15サイクルまで一時停止できる。これはダイレクトメモリアクセスに便利で、外部デバイスがCPUを一時停止してメモリバスを解放し、少量のメモリを読み書きした後、再びCPUを一時停止解除することができる。他にロジックは必要ない。
6309には、6809と同様にB(2MHz )バージョンがあります。ただし、「C」速度定格は、 参照するデータシートによって最大クロックレートが3.0MHzまたは3.5MHzのいずれかで製造されました。(日本のコンピュータのいくつかは、3.58MHzのカラーバースト水晶でクロックされた63C09 CPUを搭載していた ため、 3.5MHz定格が最も可能性が高いと思われます。)逸話や個別の報告によると、63C09バリアントは5MHzでクロックして も悪影響はないようです。6809と同様に、日立CPUには内部クロックバージョンと外部クロックバージョンの両方があります(それぞれHD63B/C09とHD63B/C09E)。
デフォルトの6809互換モードではなく、6309ネイティブモードに切り替えると、多くの重要な命令がより少ないクロックサイクルで完了します。これにより、実行速度が最大30%向上することがよくあります。
Most of the new instructions are modifications of existing 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. Further, 16 bit registers D and W can be target of 16 bit arithmetic with carry and 16 bit shift and rotate operations. On 6809, these operations are limited to 8 bit operands.
追加された命令はユーザーフレンドリーであるにもかかわらず、6809プログラミングの専門家による分析によると、特にタイトなループにおいては、新しい命令の多くは実際には同等の6809コードよりも遅いことが示されている。
新しい命令のほとんどはオペコード接頭辞を使用しているため、同様の6809命令と比較して1サイクル遅くなります。一方、6309のネイティブモードでは、多くの命令が1サイクル以上高速に実行されます。以下は、6809と6309における「A」レジスタと「E」レジスタの8ビットLD命令のタイミング比較です。
また、レジスタ間演算と新しい16ビット演算は、一概には言えません。アドレッシングモードと6309モードによっては、同等の6809コードの方が高速になる場合があります。例として、排他的論理和命令のタイミングを見てみましょう。
上記の表が示すように、即値パラメータを持つ 16 ビットレジスタ D の排他的論理和は、2 つの 8 ビット命令 EORA imm、EORB imm に置き換えることができ、6309 がエミュレーションモードで実行される場合、より高速に実行されます。ただし、8 ビット命令のシーケンス EORA imm、EORB imm は、16 ビット命令 EORD imm と完全に等価ではないことに注意する必要があります。これは、条件コード CC レジスタが、最初のケースでは 8 ビット演算の結果に応じて設定され、2 番目のケースでは 16 ビット演算の結果に応じて設定されるためです。
レジスタ間命令EORRにも同様の課題があります。この命令は8ビットと16ビットの両方のオペランドを受け入れ、常に4サイクル以内に実行されます。しかし、8ビットのオペランドの場合、適切な状況ではEORA immまたはEORB imm命令を使用する方が高速です。さらに、6309がネイティブモードで動作している場合、EORA direct命令とEORB direct命令はわずか3サイクルで実行され、レジスタ間命令よりも1サイクル少なくなります。
FIRQ割り込みの動作モードを変更することが可能です。通常の6809の動作ではPCレジスタとCCレジスタをスタックしますが、FIRQ割り込みではIRQ割り込みと同様にレジスタセット全体をスタックするように設定できます。さらに、6309には2つのトラップモードがあり、1つは不正な命令フェッチ、もう1つはゼロ除算です。不正な命令フェッチはマスクできないため、多くのTRS-80カラーコンピュータのユーザーは、実際には拡張された未知の機能の兆候であるにもかかわらず、6309が「バグだらけ」だと報告しました。
一時記憶用のレジスタMも使用可能である。[ 5 ]