BETA

オープンソースのCPUの除算性能 RISC-V vs ICF3-Z

投稿日:2020-02-01
最終更新:2020-02-01

はじめに

2020年1月15日に8bit CPU ICF3-Zを制限の緩いオープンソースのライセンスで公開しました。

CPUのようなハードウェアもオープンソースな時代になってきました。CPUのオープンソースで最も有名なのはRISC-Vです。RISC-Vを見てみるとオープンソースによるメリットを見つけることができます。RISC-Vは、とても広い範囲をカバーする32bit(64bit)のCPUですが低性能な領域でも万能というわけではないように思います。

例えば通信系のハードウェアでは8bit単位で処理するものもあり32bitが無駄になる場合もあります。無駄になるだけなら問題はありませんが消費電力で不利です。

一方、8bit CPUは除算命令がなかったり、除算命令があっても8bit÷8bitで、使える範囲が狭いということがありました。8bit CPUのオープンソースも既に複数、存在していますが、高性能な除算を持ったものは、あまりないように思います。ICF3-Zはオープンソースで、少ないトランジスタ数であるにもかかわらず高速な除算が可能です。

除算性能の比較

実際に比較しないと、わからない人が多いと思っています。 ICF3-ZのZeviosを小型のRISC-VコアであるlowRISCのibexと比較してみました。 ICF3-ZのZeviosは8bit CPUですが、lowRISCのibexは除算器を持った32bit CPUです。

lowRISCのWebページにXilinxのローエンドのFPGA(7シリーズ)に実装した場合の周波数が50MHz、面積2500LUTと書かれてありました。 除算のサイクル数は別のページに37サイクルと記述されています。

Zeviosは同じくXilinxのローエンドのFPGA(Artix-7)に実装した場合、周波数は150MHzになります。つまりibexの3倍の周波数で動作します。ibexが1命令を実行するのにZeviosは3命令を実行できる。

除算 ibex
RISC-V
[サイクル]
Zevios
ICF3-Z
[サイクル]
ibexを1
とした
倍率
周波数を
考慮した
倍率
16bit÷8bit 37 20 1.85 5.55
24bit÷8bit
条件付き
37 21 1.76 5.29
32bit÷8bit 37 55 0.67 2.02
32bit÷16bit 37 約350 0.11 0.32

0除算などのチェックや演算レジスタへのロード、ストアの補正として3~6サイクル追加しています。
ZeviosはXilinxのFPGA XC7A35TICSG324-1Lに実装した場合です。

まとめ

ibexは2500LUTの面積ですが、Zeviosは400LUTの面積です。 外部I/OなどZeviosに不足しているものがあるかもしれませんが5分の一の面積で5倍以上の性能が出ることは、考えるべき点ではないでしょうか。16bit÷8bitは32bit CPUであるRISC-Vに不利ということはありますが、制御など32bitの精度が必ずしも必要ない場合もあるように思います。

ICF3-Zは海外のパクリな構造ではなく僕の考えた独自アーキテクチャです。疑似パイプラインによって高周波数で動作することも、この圧倒的な面積当たりの性能(25倍)に貢献しています。

このオープンソースな8bit CPU ICF3-Zが、期待を含めれば2020年代に大きく産業に貢献していくかもしれません。

参考リンク

8bit CPU ICF3-ZのZeviosの除算性能のメモ

8bit CPU AVRとICF3-Zとの違い

8bit CPU ATmega328の除算性能を測定してみた

仮想マシンの加速支援機構つきの新型8bit CPU

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

なにか思いついたことを不定期に更新。

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう