H8

出典: フリー百科事典『ウィキペディア(Wikipedia)』

これはこのページの過去の版です。210.255.7.48 (会話) による 2012年5月22日 (火) 09:13個人設定で未設定ならUTC)時点の版 (→‎H8)であり、現在の版とは大きく異なる場合があります。

H8/323 HD6473238F10

H8シリーズは日立製作所(現在はルネサス エレクトロニクスとして分離)が開発したマイクロプロセッサである。ターゲットは組み込み市場であり、様々な機能を内蔵した多岐な製品をシリーズ展開している。形態としてはマスクROM版・ROMレス版のほかに、EPROMを内蔵したZTAT版のほか、フラッシュメモリを内蔵したF-ZTAT版がある。

当初はその名の通り8ビットCPUであったが、「H8」の名前のまま、16ビット32ビットの後継シリーズが開発された。(内部レジスタ幅は16ビットまたは32ビットで、データバスの幅によってビット数を分類している。)

概要

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

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

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

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

背景

H8は1980年代後半に日立が独自に開発したCMOSの8ビットCPUで、初期段階ではTRONCHIPで32ビットのH32、16ビットのH16と同時期に発表されたが、H16はH8発売後のモトローラ(側から始まった)との特許訴訟合戦(その後、クロスライセンスを結んで和解)の影響で、H32はTRONCHIPプロジェクトの中止により、それぞれ消滅し、H8シリーズのみが残った。日立はそれまでモトローラのセカンドソースのMC6800シリーズ相当のHD6300シリーズ、MC68000シリーズ相当のHD68000シリーズ、またザイログZ80上位互換のHD64180を製造して販売しており、その経験からか、それぞれの長所を取り入れたアーキテクチャとなっている。

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

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

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

主なシリーズ

  • 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上位互換。

脚注

  1. ^ ※外部リンク SuperH 開発ストーリ[1]

関連項目