東工大、IoT向けCPUアーキテクチャSubRISC+。エネルギー効率3.8倍
だそうです。

 めっちゃ低消費電力なIoT向けなCPUということですが、
命令がたった4種類しかないというのが驚き!
比較対象となっているARMv6-MやRISC-V(RVC32E)が50~60種類程度で、
これでも十分少ない方だと思うのに・・・。

 でも、
チューリング完全」で、ちゃんと汎用的なソフトウェアを書けるそうです。
「チューリング完全」ってやつがよく分かってないけど(^_^;)

 とにかくも、
そんなに少なくてもやれるなんて、どんな命令になっているのだろうか・・・。
そういえば、かつて「JavsScriptは5種類の文字で書ける!?
というのを取り上げたことあるけど、
理屈的にはこれと似たようなことなのかな(^_^;)

 こちらをよく読んでみたら、
「減算・シフト・論理演算・メモリアクセスの4種類の命令」という記述を見つけました。
減算結果に応じて条件分岐する、とも書いてありますが、
ジャンプ命令とか無いのにどうやって? という疑問が(^_^;)
何にしても興味深いCPUですね。

★2021-2-24追記。

 こちらでさらに詳しい情報をみつけました。
なんと命令が1種類しかないOISCというのがあるそうです。
Subleqという命令しかないようです(^_^;)
減算&分岐で1命令なのですね。

Subleqは、通常3つのパラメータを持つ。 基本的なSubleqの構文は、Subleq(a,b,c)である。Subleqはbからaを減算し、 bに結果を格納し、結果が0以下場合にcのアドレスに制御を移す。

 足し算はマイナス値を引き算すればやれるし、
ジャンプ先をすぐ次の命令にすれば逐次処理は出来そうです。
足し算を繰り返せば掛け算、引き算を繰り返せば割り算もやれますので、
まぁ、確かにそれなりな処理は出来そうですけど・・・(^_^;)

 そして、
こちらのPDFSubRISC+のアーキテクチャの概要が出ています。

 4種類の命令の内訳は、
1)sng: 減算&分岐
2)and: 論理和
3)sht: シフト
4)mr & mw: メモリアクセス(レジスタ導入)
だそうです。
sng は前述の subleq みたいな命令のようです。

 LLVMの中間表現(IR)を利用したコンパイラになるようなので、
C言語とか既存の言語 ➔ LLVM(IR) ➔ SubRISC+なコード
という感じにコンパイルできるっぽい。
とは言え、さすがに整数演算のみという制限がありそうだけど。

null

コメントする

メールアドレスが公開されることはありません。が付いている欄は必須項目です。