H8

H8は、1980年代後半に日立製作所（担当部門は2002年に分社し現在はルネサス エレクトロニクス）が開発・発売したマイクロコントローラのシリーズである。

ターゲットは組み込み市場であり、様々な機能を内蔵した多様な製品群がシリーズ展開され、形態としてはマスクROM版・ROMレス版のほかに、EPROMを内蔵したZTAT版のほか、フラッシュメモリを内蔵したF-ZTAT版がある。当初は8ビット主体のアーキテクチャだったのでH8と命名されたが、後に、名前はH8のまま16ビット・32ビットの後継シリーズが展開された。内部レジスタ幅は16ビットまたは32ビットで、データバスの幅によってビット数を分類している。

2013年現在、H8シリーズの生産・供給は続けられているものの、ルネサス エレクトロニクスの会社統合による製品ラインナップの整理により、今後の新製品の開発予定は無いとされるH8はどうなるの ルネサスユーザコミュニティ「かふぇルネ」におけるメーカー担当者の回答より。

2023年現在、8、16、32ビットのH8/300、H8S、H8SXが、IP製品として提供されている。生産中止ということがなく、継続的に使用可能とされる。H8/3048などの汎用マイコン機能のFPGA実装用IP（FPGAマイコン）も提供されている。H8/3048FやH8/3052FのIPとして、H8S IPが利用可能とされる。

 概要 
いわゆるCISCアーキテクチャで、R0～R7の16ビット汎用レジスタが8本あり、これらはR0H、R0Lなど8ビットレジスタ16本としても使用できる。なお、R7はスタックレジスタである。上位のシリーズではさらに各レジスタを32ビット幅に拡張してER0～ER7としている。

アドレッシングモードが豊富で直交性の高い命令体系を持つ。MC68000にも似ていて、同様に奇数アドレスをワードアクセスすることはできないが、エラーは発生しない。I/O空間はメモリマップドI/O。ロード命令ではソースを先にデスティネーションを後に書き、ビッグエンディアンである。

製品としてはCPUコアにROM、RAM、割り込みコントローラ、タイマ、入出力ポート、シリアルコントローラ(SCI)、A/Dコンバータ、D/Aコンバータ、DMAなどが統合されたパッケージで販売される。I2Cバス、スマートカードインターフェースや液晶コントローラなどを持つシリーズもある。また、ピン配置に互換性のない複数のシリーズに細かく分けられている。パッケージはQFPやPLCCなどの表面実装型が多く、シュリンクDIPなどの挿入型の品種も存在する。

開発環境としては純正のC/C++/アセンブラパッケージおよび統合開発環境HEW（High-performance Embedded Workshop/「Hitachi～」から改称）があるほか、各社からCコンパイラなどが発売されている。GCCでも対応している。

 歴史 
H8は、もともとは1980年代後半に日立が「Hシリーズマイクロコンピュータファミリー」構想のもとに開発したものであり、そのファミリーを8ビットのH8、16ビットのH16、32ビットのH32で構成し、8ビットのH8は制御用途だが、当初はその中でも主にプリンタやコピー機や自動車エンジン制御向けという位置づけであった。H16もやはり制御用途だが、より大規模な応用製品、主にワードプロセッサやファクシミリや端末用途を、H32はTRONアーキテクチャを採用しワークステーションやミニコン用途を想定していた。

日立はそれまでモトローラの、MC6800のセカンドソースHD6300シリーズ（HD6301・HD6303等）（及びMC6809を拡張したHD6309（:en:Hitachi 6309））、MC68000のセカンドソースHD68000、ザイログのZ80上位互換のHD64180を製造・販売しており、その経験からか、H8はこれらの長所を取り入れた、独自命令セットアーキテクチャとなっている。尚、H16（HD641016）も、68000に強く影響されているがやはり独自のプロセッサであり、MC68000のセカンドソースであるHD68000とは別物である。

「日立対モトローラ事件」では、モトローラがH8とH16について自社特許を侵害しているとして提訴し、一方の日立は68000が日立の特許を侵害しているとして対抗した。最終的にクロスライセンスで決着（事実上の日立勝利）した。訴訟の対象になった製品はH8とMC68030であるという説明もある。この影響もありH16は消滅し、H32はスーパー301条適用がほのめかされた圧力によるTRONプロジェクトの失速の影響で少数の生産に止まった結果、「Hシリーズマイクロコンピュータファミリー」構想の中ではH8のみが残った。

なお、後に同社が開発したSuperHシリーズ（特にSH1とSH2）は、H8とは別の用途、視点から開発され、当初はよりCISC的な仕様を取り入れることも検討されたが、動作クロックやパフォーマンスを考慮しRISC的なマイクロコントローラとしてデザインしたものである。このためHD64180やSuperHシリーズなどとのバイナリの互換性はないSuperH 開発ストーリ。またルネサス移行後に発売されたR8C/Tinyシリーズは元三菱電機のM16C系統のCPUであり、やはり互換性はない。

H8は組み込み向けのマイクロプロセッサ、マイクロコントローラ（マイコン）としては世界的に大きなシェアを有する。電子工作用や教材用としてもそれまでのZ80などに代わって、中規模のマイコンとして広く使われていて、秋葉原などでもチップや搭載マイコンボードなどが容易に入手できる。また日立が支援していた「マイコンカーラリー」には古くから使われているほか、レゴのMINDSTORMSにも使われている。

近年はTinyシリーズのようにオンチップ・デバッキングインターフェースを内蔵して、廉価なオンチップ・エミュレータを使用できるシリーズに移行しつつある。また純正開発環境の無償評価版（一定期間経過後、64KBの限定版となる）の配布もWebや雑誌などで積極的に行われている。

 命令セットアーキテクチャ 
プログラミングマニュアルまたはソフトウェアマニュアルとして、以下が発行（いずれも第1版発行時の名称で記載）されており、命令セットアーキテクチャとしては7種類がある。

 H8/500（株式会社日立製作所「H8/500シリーズプログラミングマニュアル」第1版1988年10月）
 H8/300（株式会社日立製作所「H8/300シリーズプログラミングマニュアル」第1版1989年7月）
 H8/300L（株式会社日立製作所「H8/300Lシリーズプログラミングマニュアル」第1版1991年8月）
 H8/300H（株式会社日立製作所「H8/300Hシリーズプログラミングマニュアル」第1版1993年6月）
 H8S/2600、H8S/2000（株式会社日立製作所「H8S/2600シリーズ、H8S/2000シリーズプログラミングマニュアル」第1版1995年3月）
 H8SX（株式会社日立製作所「H8SXプログラミングマニュアル」第1版2003年2月）

H8/500を除き、H8/300L、H8/300、H8/300H、H8S/2000、H8S/2600、H8SXの命令セットはオブジェクトレベルで互換性があり、アセンブラおよびコンパイラは共通である。H8/500とH8/300は、それぞれ固有の命令を持つものの、基本的にアセンブラソースレベルでコンパチブルとされている（株式会社日立製作所半導体事業部「HITACHI SEMICONDUCTOR NEWS Gain」No.73、1989年3月、p14）。

H8の初期には「RISC指向」といった説明がされていた（株式会社日立製作所半導体事業部「HITACHI SEMICONDUCTOR NEWS Gain」No.73、1989年3月、p13）。当時におけるRISC的な特徴として、H8/300では、2バイト単位可変長命令、汎用レジスタ、レジスタ‐レジスタ間演算、ワードデータ境界などがある。

最後の命令セットアーキテクチャであるH8SXは「ルネサス32ビットCISCマイクロコンピュータ」とされ、命令、データサイズ、アドレッシングモードの直交性が高く、メモリ‐メモリ間の演算も可能であり、ワード（16ビット）、ロングワード（32ビット）データを奇数アドレスから配置可能である。

 主なシリーズ 
シリーズ名は、命令セットアーキテクチャあるいはCPUと対応しており、これに、TinyやSLP（Super Low Power）を組み合わせたシリーズもある。

Tinyシリーズには、H8/300H Tiny、H8S/Tinyが含まれている。SLPシリーズには、H8/300L SLP、H8/300H SLP、H8S SLPがある。

シリーズの上位としてファミリの名称が設けられ、H8ファミリ、H8SファミリおよびH8SXファミリが存在する。これらのファミリは、CPUと内蔵メモリ（ROM、RAM）のアクセス仕様が相違しており、H8ファミリは16ビットデータバス・2ステートアクセス、H8Sファミリは16ビットデータバス・1ステートアクセス、H8SXファミリは32ビットデータバス・1ステートアクセスである。

H8Sファミリは、プログラミングマニュアルでは、H8S/2600とH8S/2000の2つのシリーズとなっているが、製品としては「H8Sファミリ／H8S/2x00シリーズ」（x=1,2,3,4,5,6）と、細かくシリーズを分けている。H8S/2600とH8S/2400シリーズは、H8S/2600CPUを内蔵している。H8S/2200、H8S/2300とH8S/2500シリーズは、H8S/2000CPUを内蔵している。H8S/2100シリーズには、H8S/2000CPUを内蔵した製品とH8S/2600CPUを内蔵した製品がある。

H8SXファミリには、H8SX/1700、H8SX/1600、H8SX/1500シリーズがある。
8ビット版
H8/300 : メモリ空間最大64KB。ページ切り替えはない。H8/500下位互換。
H8/300L : H8/300の低電力版。
16ビット版
H8/500 : メモリ空間最大16MB（マキシマムモード）、レジスタは16ビット幅（R0～R7）。64KB以上のアドレス空間をページレジスタでページ切り替えする。（いわゆるセグメント）
H8/300H : メモリ空間を最大16MB（アドバンストモード）に、レジスタを32ビット幅に拡張（ER0～ER7/16・8ビット幅としても使用可）。命令を高速化。外部データバスは8/16ビット切り替え可能。F-ZTAT版もある。H8/300上位互換。
H8S/2000 : 基本命令を1クロックに高速化。H8/300H上位互換。
H8/300H Tiny : H8/300Hを16ビットコアのままで小ピン化。ノーマルモード（メモリ空間64Kバイト）で動作するシリーズとアドバンストモード（メモリ空間16Mバイト）で動作するシリーズがあり、動作モードは固定。外部バスはない。基本的にF-ZTAT対応。
32ビット版
H8SX : H8S上位互換。最初の製品はH8SX/1650（動作周波数50MHz（ニュースリリース時には35MHz））である。H8SX/1720SはH8SX V2 CPU内蔵で、動作周波数は80MHzである。

 ライセンス提供 
1996年に、日立製作所が米国アナログ・デバイセズ社に対し、H8/300HのCPUコアをライセンス供与することで合意したとの発表があった。

2023年現在、ルネサスエレクトロニクス株式会社から、H8/300、H8S、H8SXが、IP製品として提供されている。CPUと周辺機能を組み合わせて、既存のマイコン製品と同等の機能仕様を実現したパッケージとして、H8S/2655、H8/3048、H8/327対応パッケージがある。H8S/2355やH8/338の機能の実現も可能である。ハードウェアとソフトウェアの設計財産を組み合わせた形で保持し、長期にわたる継続的な使用が可能になるとされている。このIP製品の1つである、H8S C200コアは、マイコン製品とは別に、2000年代から、FPGA実装可能なソフトマクロとして紹介されている（株式会社ルネサスソリューションズ「RSO技報」No.5、2007年12月、p52「H8S C200コアFPGA評価ボードとPC開発環境の整備」、CQ出版社「デザインウェーブマガジン」No.134、2009年1月号、p129「標準マイコン互換コアをFPGAで使ってみた」）。

また、2023年現在、株式会社マクニカから、H8S C200 IPが提供されている。これは2014年に株式会社アルティマ（現株式会社マクニカ アルティマカンパニー）から発表されている。

 脚注 

 関連項目 
組み込みシステム
シーケンス制御

Category:マイクロコントローラ