SuperH

読み:スーパーエッチ
外語:SuperH
品詞:商品名,@部品

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

基本ロードマップ上のラインナップは次のとおり。

  1. 第1世代
  2. 第2世代
  3. 第3世代
  4. 第4世代

他の特殊仕様製品(ASSP展開製品)は次のとおり。

コンセプト

命令セットは、原則として16ビット固定長にすることで効率を高めている。

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

アドレッシング

命令長が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)機能も搭載されており、様々な用途に利用できる。