SuperH

SuperH（スーパーエイチ）は、日立製作所（後のルネサスエレクトロニクス）が開発した組み込み機器用32ビットRISCマイクロコンピュータ用アーキテクチャである。
概要.
1990年代後半以降に到来すると考えられたユビキタスコンピューティング社会における普及を目指し、立ち上げ当初から消費電力あたりの性能 (MIPS/W) の向上を標榜していたことが特徴の一つである。
1990年代にはSH-1、SH-2、SH-3、SH-4、の4種類のアーキテクチャが発表され、高性能・高機能な32ビット組み込み向けマイクロプロセッサ (MPU) として展開された。家電、AV機器、産業機器、ゲーム機、携帯情報端末 (PDA) など非常に広範囲に採用されたが、2000年代に入るころにはARMに市場を奪われ、シェアを失った。64ビット版SHプロセッサであるSH-5アーキテクチャの開発も2000年までに完了していたが、顧客獲得に至らず、製品をリリースできないまま終わった。
そのため、2000年代には組み込み向けマイクロコントローラ（MCU、マイコン）として展開された。当時は組み込み向けなら32ビットでも十分に高性能・高機能なマルチメディア対応プロセッサでありえた時代であり、SHマイコンは組み込み向けSoCのコアとして、携帯電話（ガラケー）向けアプリケーションプロセッサの「SH-Mobile」や、車載情報機器（カーナビ）向けSoCの「SH-Navi」として非常に成功した。
ルネサス再建の過程で、SHファミリのかなりの製品が製造中止になった。車載用マイコンとしては、2012年に旧NECエレのV850をベースとする新世代マイコン「RH850」に置き換えられて廃止された。ARMをベースとする新生ルネサスのカーナビ向けハイエンドSoC「R-Car」においては、しばらくはSHコアが搭載され続けていたが、2015年の製品より廃止された。ただし、ルネサスは組込向けプラットフォームの提供者として「長期製品供給プログラム」を運用しており、顧客が使い続ける限りはSHマイコンを生産し続けることを確約している（逆に言うと、顧客がいないと2025年以降に製造中止になる）。
歴史.
日立製作所は1976年より米国モトローラと提携し、モトローラよりMC6800のライセンスを受けてマイコンを製造していたが、1980年代に入ると日立とモトローラとの関係が悪化し、1986年には日立の「ZTAT」マイコン（Zero Turn Around Time、日立の登録商標。後に一般的にOTP (One Time Programmable ROM) と呼ばれるもので、マイコンにメモリを組み込んだ世界初の製品）においてライセンス打ち切りを通達される。そのため日立は日立独自の「H8」および「H16」アーキテクチャの策定に着手したが、H8とH16のアーキテクチャに対してモトローラが特許侵害を訴え、1989年より訴訟合戦が始まったため、先行きが不透明となった。モトローラとの訴訟は1990年に終結し、8ビットマイコンであるH8の展開は継続することができたが、H16マイコンは打ち切りとなったため、新たな16/32ビットCPUの開発が急務となった。H8/H16と同時期にはTRONCHIP「H32」の開発も行われていたが、国策のTRONプロジェクトによるマイコン開発は1990年の時点ではすでに失敗が見えていた。そのため、日立製作所半導体事業部マイコン設計部部長の木原利昌は、新たなアーキテクチャ「SH」の開発を河崎俊平に命じた。「SH」とは公式には「SuperH」の略だが、河崎によると実は「俊平」の略だという。
SuperH CPUの開発は1990年夏ごろより進められ、1992年にSHシリーズの最初の製品であるSH-1 (SH-7034:HD6417034) が発表された。開発段階からメーカーに好評で、各社の製品に採用され、組み込み用途の32ビットRISCマイクロコンピュータとして先鞭をつけた。1994年に発表されたSH-2は、1994年発売のゲーム機・セガサターンへの搭載を前提としてセガ・エンタープライゼスと共同開発され、ゲーム用に1000万個単位で量産されたことにより、1996年には組み込み向けRISC CPUとして世界第2位の出荷量を誇った。1996年に発表されたSH-3は、1996年発売のPDA・カシオペアへの搭載を前提としてカシオ計算機と共同開発され、OSとしてWindows CEを走らせるためにMMUが搭載された。1998年に発表されたSH-4は、1998年発売のゲーム機・ドリームキャストへの搭載を前提として、スーパースカラ方式の採用に加えて3DCGを表示させるためのベクトル演算器が搭載された。SHマイコンはカプコン CPシステムIII（1996年）、カネコ スーパーカネコノバシステム（1996年）、セガ NAOMI（1998年）などの業務用ゲーム基板にも採用され、PDAやハンドヘルドPCなどの携帯情報機器の分野では、高性能かつ低消費電力と言うSHアーキテクチャの強みから、2000年頃までは日立製作所のPERSONAシリーズだけでなく、HP JornadaシリーズやCOMPAQ AEROシリーズなど海外でも少なくない製品で採用されていた。
1998年より日立はSH-4の次世代アーキテクチャとして、64ビット版のSHプロセッサであるSH-5アーキテクチャをSTマイクロエレクトロニクスと共同開発しており、2000年12月までにSH-5のサンプル出荷を行う予定であった。SH-5では64ビットの広いアドレス空間において、新開発のクリーンなアーキテクチャ（「SHmedia」モード）を用いてCPUとしての性能を向上させ、SH-4との互換性はエミュレーションモード（「SHcompact」モード）を持たせることで担保する、という方針であった。さらに、SH-5の開発が完了した後、後継であるSH-6およびSH-7アーキテクチャの開発をルネサスとSTマイクロで継続して行うつもりでもあった。しかし2000年代に入ると組込CPU市場はARMアーキテクチャが圧倒しており、SH-5は顧客の獲得に失敗した。Windows CEベースのPDAがPocket PC 2002よりのちARMアーキテクチャに一本化されたことと、セガが家庭用ゲーム機のハードの開発から撤退したこと、RISCプロセッサのブームが一段落したこと、などが理由として挙げられる。
ARMに市場を奪われた背景として、IPライセンシングを専業とし製造部門を持たないARMに対し、SHアーキテクチャを開発する日立製作所/ルネサスは製造部門を抱えており、SHマイコンの「自社での製造」に力点を置かざるを得ないという弱みがあった。2001年の時点で、組み込みにおけるSHマイコンのシェアは6.8％と、組み込みで70%近いシェアを占めるARMに対して大きく差を付けられていた。この状況を変えるべく、2001年にはIPライセンシングの専業企業である「SuperH,Inc.」を日立製作所とSTマイクロとの合弁により設立。他社にSHコアのIPをライセンシングすることで、SHアーキテクチャを広く普及させるという方針を取ったが、うまくいかず、SuperH,Inc.は2004年にルネサス本体に吸収された。（結局SHマイコンが製造終了になる2015年まで、ルネサス那珂工場がSHマイコンを製造する世界唯一の工場であり続けた。当時のルネサス半導体部門トップであった馬場志朗も、2012年に回想して「残念ながら遅きに失した」と後悔を述べている。
結局SH-5アーキテクチャのCPUは製品としてリリースされることなく、幻となった。当初のロードマップから一転、SHアーキテクチャはSH-5向けに開発された高速バスなどの技術を継承しつつ、マイクロコントローラ（マイコン、MCU）として産業用機器や車載向けSoCでの採用を目指して再設計されることになった。
2000年頃より、携帯電話の性能向上とマルチメディア対応への要求に伴い、通信や通話を処理するためのベースバンドプロセッサとは別にアプリケーションプロセッサを搭載する需要が生じた。既に携帯電話向けベースバンドプロセッサからの撤退を余儀なくされていた日立はこれにSHアーキテクチャの再起をかけ、SH-3にDSP機能を搭載した「SH3-DSP」をコアとする「S-MAP」を2000年より展開し、2001年にはこれをSH-Mobileに改称。SH-Mobileは2004年時点で2.5G携帯電話向けのアプリケーションプロセッサとしてはトップシェアとなる成功を収めた。SH-Mobileを搭載した最初期の携帯電話として、日立製作所が2002年に発売したA5303Hが挙げられる。
2003年9月、ルネサスはSHファミリの多様化を一段落させ、SH-1とSH-2は自動車、民生機器、産業用機器の制御をターゲットとする「SH++（コードネーム）」として、またSH-3とSH-4は携帯機器や情報機器のデータ処理をターゲットとする「SH-X（コードネーム）」として統合させることを発表。2004年2月、携帯電話・デジタルカメラ・カーナビなどでの採用を目指し、SH-4をベースとして400MHz（250mWで720MIPS、2.8GFLOPS, 36Mポリゴン/s）にまで性能を高めたSH-X（SH-4A）を発表した。また2004年4月、エンジン制御やプリンタなどでの採用を目指し、SH-2をベースとして200MHz（360MIPS）にまで性能を高めたSH-2Aを発表した。
2004年当時、FOMAなどのハイエンドな3G携帯電話向けアプリケーションプロセッサ市場はTIのOMAPがほぼ独占していたが、そのシェアを突き崩すべく、2004年にルネサス初となる3G向けのアプリケーションプロセッサである「SH-Mobile3」を発表。CPUコアは従来のSH-3からSH-4Aに置き換えられ、高性能かつ省電力になった。ルネサスは3Gへの本格進出を図るため、2004年よりNTTドコモとの共同開発を行い、2005年よりベースバンドチップとアプリケーションプロセッサがワンチップに統合された「SH-Mobile G」シリーズを展開した。「SH-Mobile G」の開発は2011年まで続き、NTTドコモ及びドコモ陣営の携帯電話メーカーとの6社共同開発にまで発展し、「SH-Mobile」を海外も含めた3G市場のデファクトとして普及させる目論見であった。
2005年より、SH-4をコアとするカーナビ向けハイエンドSoCのSH-Naviが展開された。SH-Naviはカーナビなどの車載情報機器向けSoCとして大いに成功し、2010年時点で国内シェア97％、海外シェア57％に達した。
2000年代においては、普及率ではARMには劣るとはいえ、車載、携帯機器、日本の国策プロジェクトなど一部の応用分野においては善戦していた。例えば、SH-2が自動車用ECUなどに、SH-3が車載情報機器や小惑星探査機はやぶさなどに採用されていた。また、SH-Naviはクラリオンのカーナビゲーションシステムとして採用されており、SH-Mobileシリーズは日本の携帯電話各キャリアやウィルコムの機器に採用されていた。しかしこれらの分野でも次第にARMに市場を奪われていった。
2000年代中頃には、組み込みにもマルチコア化の波が押し寄せてきており、ルネサスは2006年10月にSH-4Aをマルチコア化した「SH4A-MULTI」を発表。しかし実際の製品化までの開発は難航した。そうこうするうち、2007年9月、ルネサスの「SH-Navi」の独断場だった車載マイコン市場にNECエレクトロニクスが参入し、組み込み型カーナビ用のマルチコアプロセッサ「NaviEngine」（後に「EMMA Car」と改称）を発表した。NaviEngineのコアである「MPCore」（ARM11ベース、4コア、動作周波数400MHz、1920MIPS）はプロセッサをマルチコア化することで、ルネサスの「SH-Navi2」（SH-4A、動作周波数600MHz、1080MIPS）よりも大幅な性能向上を成し遂げたことから、NaviEngineは車載のマルチコア時代のデファクトスタンダードとして整備が進んだ。
ルネサスは2008年8月、「SH4A-MULTI」の第1弾製品であるデュアルコアSH「SH7786」をようやく製品化。SH7786はSH-4Aコアを2個搭載し、動作周波数は533MHzで、処理能力は1920MIPSとなり、NECエレの「EMMA Car」に十分対抗できる製品となった。SH7786は2009年12月より量産を開始する。その応用であるカーナビ用プロセッサ「SH-Navi3」(型番：SH7776)は2009年1月に発表され、同年中にサンプル出荷開始。量産開始は2011年から2012年頃と想定されたために、グラフィック処理回路を持たない汎用品のSH7786が2009年よりカーナビ向けに「とりあえず」で出荷されていた。
2010年2月には、ルネサス・日立・早稲田大・東工大の共同開発により、SH-4Aを8個搭載したヘテロジニアスマルチコアLSIを発表。カーナビやTV・レコーダなど、高度な情報機器向けを想定し、NECエレとの統合直前までSHプロセッサの更なる性能向上を進めていた。
2008年のリーマンショックをきっかけとする世界同時不況により、ルネサスの自動車と携帯電話の販売が不振となり、車載と携帯に依存するルネサステクノロジの経営は2009年より急激に悪化。同じく経営が悪化していたNECエレクトロニクスと2010年に統合され「ルネサスエレクトロニクス」となった。マイコン市場で激しく競り合っていた両社が統合された結果、新生ルネサスのカーナビや情報機器向けのプロセッサはNECエレの製品がベースとなったため、SHプロセッサの開発は終了した。
2011年、スマホ時代の到来によってガラケー向けのSH-Mobileの市場は消滅し、SH-Mobileは展開を終了した。同年、旧ルネサスの「SH-Navi」は旧NECエレの「EMMA Car」と統合され、ARMコアとSHコアを両方搭載した次世代車載SoC「R-Car」が発表されたが、実質的にARMコアがメインであり、2015年発表の第三世代R-CarよりSHコアは廃止された。
2011年、東日本大震災でルネサス那珂工場が被災し、SHマイコンの出荷がストップした。その際、ルネサス那珂工場でしか生産していないSHマイコンを採用する自動車の生産もストップする結果となったため、自動車業界から「マルチファブ構築」を構築するようにと言う声が大きかった。また、旧ルネサスと旧NECエレの車載マイコンの統合が課題であった。そのため2012年、車載マイコンとしてのSuperHは旧NECエレの「V850」と統合され、TSMCとのマルチファブ生産を前提とする新世代車載マイコンの「RH850」（NEC V850がベース）が発表され、車載マイコンとしてのSHはこれで置き換えられた。
特徴.
CPUコアはアドレス長、データ長はともに32ビットだが、インストラクションセットは16ビット固定長命令であり、32ビットCPUでありながらコード効率を向上、組み込み用32ビットマイコンとして成功させた（その後ARMやMIPSなどもこれに倣い、Thumb命令などの16ビット命令体系を取り込んだ）。ビットフィールドを削減し16ビット語長に抑えるため、汎用レジスタは16本、2オペランド命令が基調となる。またインデックス修飾のオフセットはバイト単位ではなく命令で指定するデータ長でスケーリングされ、さらに32ビット絶対アドレスや16 / 32ビット相対アドレスの指定は4ビット / 8ビットのディスプレースメント相対によるロード命令によって値を取得する必要がある。
CPUコアには汎用レジスタ16本のほかにグローバルベースレジスタ、ベクタベースレジスタ、サブルーチン呼び出し用のプロシジャレジスタなどを持つ。
周辺ユニットとして、タイマや割り込みコントローラ、シリアルインタフェース、ROM / RAM、DMAコントローラ、I/Oポートなどが内蔵されている。
各SHシリーズは基本的に数字の若いシリーズとオブジェクトレベルで互換性がある。ただし、
条件分岐は1ビットのT（真 / 偽）フラグを比較命令でセットし、条件分岐命令で分岐する。
これは演算毎に自動でキャリーやゼロなどの複数のフラグがセットされ、条件分岐命令ではそのフラグを参照するアーキテクチャと、条件分岐命令で指定したレジスタのゼロ / 非ゼロや偶数・奇数によって直接分岐するアーキテクチャの折衷案といえる。また、分岐命令は多くが遅延スロットをもつ遅延分岐命令となっている。
シリーズ展開.
シリーズ番号は初期の番号を記す。
SH-Mobileシリーズ.
SH-Mobileは、SuperHアーキテクチャのCPUコアに加え、マルチメディア処理回路や基地局とのデジタル信号を処理するベースバンド回路を加えた携帯電話向けのシステムLSI製品である。2002年に初代のSH-Mobile(SH7290)がリリースされた後、ハイエンド向けの「SH-Mobile V」シリーズ・ミドルレンジ向けの「SH-Mobile J」シリーズ・ローエンド向けの「SH-Mobile L」シリーズとセグメント別のシリーズ展開を行っていた。
2006年よりベースバンドを統合した「SH-Mobile G」シリーズが展開されたが、それと並行して、SH-MobileシリーズにおいてもSH-Mobile 3AS/SH-Mobile 4/SH-Mobile 5、SH-Mobile J3/SH-Mobile J4、SH-Mobile L2/SH-Mobile L3V/SH-Mobile L4などの展開が行われる予定ではあった。
SH-Mobile Gシリーズ.
SH-MobileをベースにW-CDMAおよびGSM対応のベースバンド回路を統合した製品で、NTTドコモおよび複数の携帯電話メーカーと共同で開発された。ベースバンドプロセッサおよびOSが動作するアプリケーションプロセッサにはARMアーキテクチャを採用し、SH-4およびPowerVR等の各種IPはマルチメディア等の高負荷処理を担当する。
SH-Naviシリーズ.
車載情報機器向けのSoC。
SH-Naviのローコスト版である「SH-NaviJ」も存在する。
SH-MobileRシリーズ.
携帯電話以外での使用を前提としたSH-Mobileで、ローエンドのカーナビやポータブルナビ (PND)、ポータブルメディアプレーヤなどで使用されていた。なおルネサスは、携帯電話と車載情報機器を「同じアーキテクチャ」という点で同じ「Mobile」というカテゴリの製品だと考えており、2011年に車載と携帯電話部門を合わせて「ルネサスモバイル」として分離したのもその流れであった（ただし、車載部門は設立早々にルネサス本体に吸収され、残った携帯電話部門は2013年に事業を停止した）。
オープンソース実装「J Core」.
2014年、SH-2関連の特許が期限切れとなるのに合わせ、μClinuxの初期開発者Jeff Dionneなどがクリーンルーム設計で実装したもの。回路がVHDLで記述されており、BSDライセンスで公開されている。