H8シリーズ
H8シリーズは、1980年代後半に
日立製作所(現在はルネサス エレクトロニクスの一部門が担当)が開発し市場に投入した
マイクロコントローラ製品群です。主に
組み込みシステム用途を対象としており、非常に多岐にわたる機能を集積した製品がラインナップされました。提供形態も、製造時にプログラムを書き込むマスクROM版やROMを持たないROMレス版に加え、開発段階での利用や少量生産に適した
EPROM内蔵のZTAT版、そして普及が進んだ
フラッシュメモリ内蔵のF-ZTAT版など、多様なニーズに対応するものが用意されました。
当初は
8ビットの
アーキテクチャを基盤としていたため「H8」と命名されましたが、シリーズの展開とともに
16ビットや
32ビットへと拡張され、名称はそのまま引き継がれました。内部的には
16ビットまたは
32ビットのレジスタ幅を持ち、外部データバスの幅によってビット分類が行われています。
2013年時点では継続して生産・供給されていましたが、ルネサスエレクトロニクスへの会社統合に伴う製品整理により、新規開発の計画はないとされていました。
しかし、2023年現在では、
8ビット、
16ビット、
32ビットのH8/300、H8S、H8SXといった主要な
アーキテクチャが、知的財産(IP)製品として提供が続けられています。これにより、既存システムの維持や新規開発において、生産中止を心配することなく利用可能とされています。H8/3048のような汎用
マイクロコントローラの機能をFPGA上で実現するためのIP(FPGAマイコン)や、H8S IPを基にしたH8/3048FやH8/3052FのIPなども提供されています。
H8シリーズは、いわゆる
CISC(Complex Instruction Set Computer)
アーキテクチャを採用しています。基本となるレジスタセットは、
16ビット幅の汎用レジスタが8本(R0からR7)あり、これらはそれぞれ上位バイト(H)と下位バイト(L)に分割して
8ビットレジスタとして利用することも可能です(例:R0H, R0L)。R7レジスタはスタックポインタとして機能します。さらに上位のシリーズでは、これらのレジスタが
32ビット幅に拡張され、ER0からER7として利用できます。
命令体系は、豊富な
アドレッシングモードと高い直交性(命令と
アドレッシングモードの組み合わせ自由度が高いこと)を特徴とします。
モトローラの
MC68000シリーズと類似点があり、例えば奇数アドレスに対するワード(
16ビット)アクセスはできませんが、エラーは発生しない仕様となっています。入出力(I/O)空間へのアクセスは、メモリ空間の一部として扱われる
メモリマップドI/O|メモリマップドI_O方式です。命令記述は、ロード命令においてソースオペランドを先に、デスティネーションオペランドを後に記述する形式で、データ格納順序はビッグエンディアン(データの最上位バイトが最小アドレスに格納される方式)を採用しています。
製品としては、CPUコアだけでなく、プログラムを格納するROM、データを一時的に保持するRAM、割り込み制御、タイマ、入出力ポート、シリアル通信インターフェース(SCI)、A/DおよびD/Aコンバータ、DMAコントローラなど、
組み込みシステムに必要な多様な周辺機能がワン
パッケージに集積されて提供されます。一部のシリーズでは、I2Cバスインターフェース、スマートカードインターフェース、
液晶コントローラといった特定の用途に向けた機能も内蔵されています。ただし、シリーズ間ではピン配置に
互換性がない場合が多いです。
パッケージ形態は、基板表面に実装するQFPやPLCCが一般的ですが、古くはシュリンクDIPのような挿入型
パッケージの品種も存在しました。
開発環境については、日立純正のC/
C++/アセンブラ開発ツールや
統合開発環境「HEW(High-performance Embedded Workshop)」が提供されていました。また、他のソフトウェアベンダーからもCコンパイラなどがリリースされ、オープンソースのGCCもH8シリーズに対応しています。
歴史的背景と普及
H8シリーズは、1980年代後半に日立が掲げた「Hシリーズマイクロ
コンピュータファミリー」構想の一環として開発されました。この構想では、
8ビットのH8、
16ビットのH16、
32ビットのH32というラインナップで、多様な応用分野をカバーすることを目指していました。H8は主に制御用途、特にプリンタ、コピー機、自動車のエンジン制御などへの適用が想定されていました。H16はより大規模な制御や情報処理(
ワードプロセッサ、
ファクシミリなど)を、H32はTRON
アーキテクチャを採用し、
ワークステーションやミニ
コンピュータ市場をターゲットとしていました。
日立はそれ以前に、
モトローラの
MC6800/
MC6809/
MC68000や、ザイログの
Z80の上位互換プロセッサであるHD64180などのセカンドソース製品を製造・販売しており、これらの経験がH8シリーズの独自命令セット
アーキテクチャの設計に活かされていると考えられます。H16も68000の影響を受けつつも独自の設計でしたが、HD68000のようなセカンドソース品とは異なります。
特許に関する係争としては、
モトローラが日立のH8とH16が自社特許を侵害していると訴え、これに対し日立が
モトローラの68000が自社特許を侵害していると反訴した「日立対
モトローラ事件」がありました。この訴訟は最終的に相互ライセンス供与という形で決着し、事実上日立が有利な結果となりました。訴訟対象製品については、H8とMC68030だったとする説明もあります。この訴訟の影響や、TRONプロジェクトが政治的な圧力によって失速した影響もあり、H16は市場から姿を消し、H32もごく少数の生産に留まりました。結果として「Hシリーズマイクロ
コンピュータファミリー」構想の中で、H8のみが主力製品として残ることになりました。
なお、日立が後に開発した
SuperHシリーズ(特にSH1やSH2)は、H8とは異なる目的と視点から開発されたもので、当初は
CISC的な要素も検討されましたが、高性能化のために
RISC的な設計が採用されました。そのため、HD64180や
SuperHシリーズとの
バイナリ互換性はありません。また、ルネサス移行後に登場したR8C/Tinyシリーズは、旧
三菱電機のM16CをルーツとするCPUであり、こちらもH8との
互換性はありません。
H8シリーズは、組み込み向け
マイクロプロセッサ/
マイクロコントローラとして世界的に高いシェアを獲得しました。専門分野だけでなく、
電子工作や教育現場においても、それまでの
Z80などに代わる中規模マイコンとして広く普及し、
秋葉原などの電子部品店でチップ単体や搭載済みマイコンボードが容易に入手できる状況が長く続きました。教育分野では、日立が支援していた「
マイコンカーラリー」で古くから使われているほか、
レゴの教育用ロボットキットである
MINDSTORMSにも採用されたことがあります。
近年の開発環境のトレンドとしては、Tinyシリーズなどに代表されるように、オンチップデバッグインターフェースを内蔵し、比較的安価なエミュレータで開発・デバッグが可能となる方向に移行が進んでいます。また、純正開発環境の無償評価版がウェブサイトや
雑誌付録などで積極的に配布され、一定期間経過後は機能が限定(例:64KBのコードサイズ制限)されるものの、個人ユーザーでも手軽に評価できるようになりました。
H8シリーズには、プログラミングマニュアルやソフトウェアマニュアルとして体系化された、いくつかの主要な命令セット
アーキテクチャ(ISA)が存在します。主なものは以下の7種類です。
H8/500
H8/300
H8/300L
H8/300H
H8S/2600, H8S/2000
H8SX
H8/500を除くH8/300L、H8/300、H8/300H、H8S(2000/2600)、H8SXの命令セットは、オブジェクトコードレベルでの
互換性が確保されており、アセンブラやコンパイラといった開発ツールも共通で使用できます。H8/500とH8/300は、個別の命令を持ちつつも、アセンブラソースコードのレベルでは
互換性があるとされていました。
H8シリーズの初期、特にH8/300の登場時には「
RISC指向」という説明がなされることもありました。これは当時の
RISCが持つ特徴の一部、例えば命令長が固定ではない可変長ながらも比較的短い(H8/300は2バイト単位の可変長)、汎用レジスタを多く持つ、レジスタ間の演算が可能である、ワードデータの配置に境界制限がある、といった点が挙げられたためです。
最後の命令セット
アーキテクチャであるH8SXは「ルネサス
32ビットCISCマイクロ
コンピュータ」と位置づけられています。命令やデータサイズ、
アドレッシングモードの直交性が非常に高く、メモリとメモリの間での直接演算も可能です。また、ワード(
16ビット)やロングワード(
32ビット)データを奇数アドレスから配置することも可能になるなど、より柔軟なデータアクセスが可能になっています。
主なシリーズと分類
H8シリーズは、命令セット
アーキテクチャや内蔵CPUコアに対応する形でシリーズ名が付けられており、さらに低消費電力版の「SLP(Super Low Power)」や、ピン数の少ない「Tiny」といった派生シリーズが存在します。
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ステートアクセスとなっています。
個別のシリーズを見ると、例えば
8ビット版としては、最大64KBのメモリ空間を持つH8/300や、その低消費電力版であるH8/300Lがあります(これらはページ切り替え機能を持たない)。
16ビット版としては、16MBのメモリ空間をページ切り替えでアクセスするH8/500(レジスタは
16ビット)、H8/300の上位互換で16MBメモリ空間(アドバンストモード)、
32ビットレジスタ、高速化が図られたH8/300H(外部データバス幅は8/
16ビット切り替え可、F-ZTAT版あり)などがあります。H8S/2000はH8/300Hの上位互換で、基本命令が1クロックで実行可能になるなど高速化されています。H8/300H Tinyは、H8/300Hをベースにピン数を減らし、外部バスを持たず、ノーマルモード(64KBメモリ空間)またはアドバンストモード(16MBメモリ空間)のいずれかに動作モードが固定されたシリーズで、主にF-ZTAT版が提供されました。
32ビット版の代表例であるH8SXは、H8Sの上位互換として登場しました。最初の製品であるH8SX/1650は50MHz(発表当初35MHz)で動作し、より新しいH8SX/1720Sは改良されたH8SX V2 CPUを内蔵し80MHzで動作します。
現在のライセンス提供状況
過去には、
1996年に
日立製作所がアメリカのアナログ・デバイセズ社に対してH8/300HのCPUコアをライセンス供与することで合意したと発表されました。
そして2023年現在、ルネサスエレクトロニクス株式会社からは、H8/300、H8S、H8SXといった主要なH8シリーズのコアが、IP(Intellectual Property)製品として提供されています。これらのIPは、CPUコアと各種周辺機能を組み合わせることで、かつてのH8/2655、H8/3048、H8/327といった実績のあるマイコン製品と同等の機能仕様を実現できます。H8/2355やH8/338の機能も実現可能です。ハードウェアとソフトウェアの両方の設計資産を保持できるため、長期にわたる継続的な利用が可能となるメリットがあります。このIP製品の一つであるH8S C200コアは、単体のマイコン製品とは別に、2000年代からはFPGA上に実装可能なソフトマクロとしても紹介されてきました。2023年現在、このH8S C200 IPは株式会社マクニカからも提供されています(元は2014年に株式会社アルティマから発表されたものです)。
関連項目
組み込みシステム'>
組み込みシステム
シーケンス制御'>
シーケンス制御