特徴的なのは、メモリがSRAMブロックとスタンダードセルで構成するSCMのペアのハイブリッド構造になっている点である。SRAMブロックは4KB、SCMブロックは512Bである。また、この図では書かれていないが、命令キャッシュもSCMで作られている。アクセス頻度の高い命令キャッシュのエネルギー消費を減らして消費電力を抑えている。また、SRAMブロックをアクセスしない場合は、逆ボディバイアスを掛けてリークによる消費電力を低減している。

また、PULPでは「Logarithmic Number System(LNS)」を使って浮動小数点演算相当のダイナミックレンジの広い(HDR)数値の演算エネルギーを減らしている。通常使用されるFloating Point数では、符号、指数、数値を使って数を表しているが、LNSでは、次の図のように、Sign×2固定小数点数で数値を表す。PULPの場合、小数点以上の部分は8bit、以下の部分は23bitとなっている。

数の表現がSign×2固定小数点数となっているので、乗除算は指数部の加算、減算で実行できる。一方、加減算は3回のバイナリの加減算とlog2の計算が必要になる。ビット数が少ない場合は、log2の計算はROMで作ったテーブルを引くことで行われるが、ビット数が多くなるとこれは現実的ではなく、テーブル参照と補間を組み合わせて計算する。

なお、LNSはPULPの発明ではなく、天体の重力相互作用を計算する専用マシンであるGRAPEの一部の世代でもLNSが使われていた。

PULPは、浮動小数点数をSign×2固定小数点数というLogarithmic Number Systemで表現している

そして、計算の簡単なMUL/DIV/SQRTの演算器は各PEに持つが、構造が複雑なADD/SUB/EXP/LOG演算器は4PEで共用と言う造りになっている。これらの演算器を4PEで共用しても使用要求が競合するのは4%程度で、ほとんど性能の低下はないという。

計算の簡単なMUL/DIV/SQRTの演算器は各PEに持つが、構造が複雑なADD/SUB/EXP/LOG演算器は4PEで共用という造りになっている

各PEに通常のFPUを付けた場合と上記のADD/SUB/EXP/LOGは共用のLNU(Logarithmic Number Unit)を付けた場合を比較したのが次の表である。65nm LVTプロセスで製造したFPUとLNUの結果を比較するとLNUの方がクロックは若干低いが、エネルギー効率は1.35~4.17倍に改善されている。

同一プロセスで作ったFPUとLNUの比較。LNUの方がエネルギー効率が1.35~4.17倍高い

PULPは大きな広がりをもったプロジェクトで、PULPプロセサを補完する各種のチップが開発されている。その1つが、ニューラルネットワークの処理のアクセラレータの「Origami」である。

Convolutional Neural Network(CNN)では重みと入力の積を加算するが、SoP(Sum of Product)ユニットはハードウェアの積和ツリーを持ち、この計算を行なう。ChSum(Channel Summer)はチャネルごとに2チャネルの出力を累算する。この計算は12bit精度で行っているが、64bitの倍精度浮動小数点数の場合と比べて、精度の低下は0.5%以下であるという。

ニューラルネットワークの計算アクセラレータOrigamiのブロック図

2014年のILSVRCで優勝したGoogLeNetは約700万個のパラメタを持ち、320×240のカラーイメージを1枚認識するのに~2.3×109回の積和演算を必要とする。この計算を毎秒10フレーム行うには23GMACの演算を必要とする。つまり、28nm FDSOIプロセスで作られたOrigamiチップを使えば、GoogLeNetをおおよそ10mWで実行することができる。

2014年のILSVRCで優勝したGoogLeNetは320×240のRGB画像の処理に2.3GMACの計算が必要。28nm FDSOIプロセスを使うOrigamiチップなら、毎秒10フレームの処理を10mWで実行できる

PULPは20.7uW/MHzの消費電力で、これはこれまでに発表されているベストの低電力プロセサが58μW/MHzであるのと比べると、2.8分の1の電力である。結果として最大性能も10%高くなっている。また、ピークエネルギー効率はこれまでのベストの60MOPS/mWを3.2倍上回る192MOPS/mWを達成した。

従来の低電力プロセサとPULPの比較。PULPは従来のベストのチップと比較して3.2倍のエネルギー効率を実現した

結論として、IoTはどこにでもコンピュータが使われているという環境となり、挑戦と同時に大きな機会でもある。pJ/OPのエネルギー効率を実現する必要があるが、これはテクノロジスケーリングだけでは実現できず、低電力アーキテクチャ、低電力回路などが必要である。

LNSを使う高ダイナミックレンジ計算は、エネルギー効率的にも実用になることが確認された。

Benini教授は、将来の方向として、非ノイマン計算と近似計算には大当たりの可能性がある。オープンソースのハード/ソフトの開発は、効率的なイノベーションを可能にする。と結んだ。