SuperH
読み:スーパーエイチ
外語:SuperH

 かつて日立製作所半導体部門(現ルネサス)の開発した、組み込み用のRISCプロセッサーのシリーズ名。SuperHのHは、開発した日立製作所の頭文字「H」である。
目次

ラインナップ
 基本ロードマップ上のラインナップは次のとおり。
  1. 第1世代
  2. 第2世代
  3. 第3世代
  4. 第4世代
  5. 第5世代(64ビット)
  6. 第6世代
  7. 第7世代
 他の特殊仕様製品(ASSP展開製品)は次のとおり。

特徴

コンセプト
 命令セットは、原則として16ビット固定長にすることで効率を高めている。
 また命令は上位互換が維持されていて、SH-1のプログラムがSH-4でも(原則として)そのまま動作することになっている。但しマイクロプロセッサーによってI/Oポート空間のアドレス等が違うので、本当に無修正で動作するわけではない。

MMU
 SH1/SH2シリーズまではMMUが搭載されていない。SH3/SH4シリーズにはMMUが搭載されている。
 MMUを使うような近代的なオペレーティングシステム(OS)はSH3以上で動作させることが可能。

アドレッシング
 命令長が16ビット固定なので、レジスターへの数値代入でも、16ビットや32ビットの値をイミディエイトとして与えることはできない。
 可能なのは符号付き8ビットまでで、それ以上はメモリー上に置かれた値を取り出すことになる。手間だが致し方のない所である。
 その代わりにアドレッシングモードが豊富に用意されており、標準で11種類のアドレッシングモードがある。
 もちろん、全ての命令でこの全てのアドレッシングが使えるわけではないが、各命令で必要充分なアドレッシングが可能になっている。

条件ジャンプ

ブランチ型
 条件ジャンプは、いわゆるブランチ型に属する。
 但し、条件判断の方法が一般的なプロセッサーと異なり、条件判断をジャンプ時ではなく比較命令時に行なうのが特徴である。このためフラグは一つしかない。
 条件ジャンプ処理は事前にTビットと呼ばれるフラグに比較結果を入れてから、Tビットの結果を見てジャンプする命令を呼び出す形になる。

条件判断の方法
 一般的なCPUであれば、比較命令でゼロフラグキャリーフラグを立て、その後そのフラグに応じたジャンプをさせる。
 SuperHは、丁度その逆である。
 例えば、
 CMP/GE R1,R0
 とすると、R1≦R0の時にT=1、さもなくばT=0となる。
 次いで、BT label命令(branch if true)を使えば、T=1の時(R1≦R0)にlabelにジャンプ、BF label命令(branch if false)を使えばT=0の時(R1>R0)にlabelにジャンプすることになる。

その他の機能
 積和演算(MAC)機能も搭載されており、様々な用途に利用できる。

再検索