ICF3-Zプロジェクトが制限の緩いライセンスの オープンソースのCPUをGitHubに公開
2020.06.12 11:00
ICF3-Zプロジェクトは、良く売れた大型コンピュータのプロセッサの元開発者による画期的な発想のCPU「ICF3-Z」をオープンソースで公開しました。
2020年1月15日にテスト公開後、現在まで安定しているためこの度、本格的に発表いたします。
■要約
「ICF3-Z」は1999年に製品化された大型コンピュータの暗号プロセッサから転用して作られたCPUです。命令セットアーキテクチャの仕様と公式実装であるZeviosのVerilogファイルをGitHubに公開。FPGAで実際に動作させてみることができます。
暗号プロセッサからの転用なので他のCPUとは技術的に独立していて商用で使いやすく、除算の面積性能が非常に高いCPUであるため低消費電力でコストパフォーマンスが高いのが特長。32bit CPUでは非効率になる用途向けの8bit CPUとして家電製品や制御分野での利用が期待されます。
「ICF3-Z」の著作権者である平山 直紀(Naoki Hirayama)が2020年1月15日に公開し、現在まで安定しているため今回、初プレスリリースとなりました。
■開発の経緯
「ICF3-Z」の著作権者である平山 直紀(Naoki Hirayama)が1999年に世界一高速なRSA暗号プロセッサ(ICF3)を開発。米国の輸出規制のためIBMが自社の大型コンピュータの暗号装置を海外に販売することが厳しかったためか、この暗号プロセッサを搭載した日立の互換機(国内での名称はMP5600)が欧州などに良く売れました。RSA暗号プロセッサは専用演算器を駆動するために設計された軽量なプロセッサで、要求仕様がCPUとは異なるため、平山 直紀が1人で1から設計をしたもの。平山 直紀が2005年に退職するときに打合せをしてICF3を競合他社に持っていけることを日立製作所と約束。2017年に、この暗号プロセッサICF3をベースとして32bit CPUの開発を個人で始めましたが、他の32bit CPUの強敵を避け8bit CPUとして完成させ、2019年にインターネット上にオープンソースとして公開。制限の緩いオープンソースのApache License 2.0として2020年1月15日に公開をしました。なお暗号専用演算器はついていないため普通の8bit CPUと同じです。
■このオープンソースのCPUのメリット
家電や自動車など、産業で使われる廉価なCPUでは除算器のないものが多くあります。除算器のないCPUでは除算はソフトウェアで行いますが、性能はとても遅い。そしてハードウェアによる除算器で除算を高速化するのは難しく、高度なアルゴリズムを使う必要があります。このため除算器を搭載したCPUは価格が高い傾向にあります。
このICF3-Z CPUは1999年のICF3をベースに作られています。ICF3は加算器を改造した演算器で四則演算ができました。加算器を改造した一体型の除算器なので性能は高度なアルゴリズムを実装する除算器に及ばないものの、除算器としての面積がほぼゼロで、除算の面積性能が非常に高い8bit CPUとなっています。「ICF3-Z」は除算器のない8bit CPUと比較すれば数十倍高速であることはもちろんですが、除算器のある32bit CPUと比較しても最大5倍(面積性能25倍)高速という驚異的な結果も出ています(ICF3-Z公式サイトのトップページにデータ有)。このような結果になるのは用途によっては32bit CPUの32bitが無駄になるため「ICF3-Z」のような乗除算が可能な高性能な8bit CPUが、圧倒的に有利になるということを表しています。
この「ICF3-Z」を平山 直紀が設計して著作権を所有しているためオープンソースとして公開が可能になっています。この安価な除算器により、これまでより周波数を低くすることができるため、安価で低消費電力な家電などを作るのに役立ちます。
ただし普通のCPUの命令セットとはかなり違うためアプリケーション開発の初期コストが大きく難しいといった問題はあります。8bit CPUでありながら32bit CPUの命令セットを自作することも可能。このためC言語コンパイラやスクリプト言語など移植が容易。アプリケーション開発が難しいデメリットを解決します。
この「ICF3-Z」は他のCPUが比較的不得手なPWM制御などのリアルタイム処理が得意なのが特長です。自動運転がこれから立ち上がろうとしていますが、信頼性が必要なシステムを開発する方法論として1つの高性能CPUよりFPGAに小さいCPUを複数搭載するというものがあります。「ICF3-Z」は除算器を持ちながら、小さくてPWM制御やリアルタイム処理が得意なため、前述の方法論を実装するのに向いています。
家電などの製品では部品として使っていたCPUの生産が中止になると大きな損害が出る場合がありますが、「ICF3-Z」は制限の緩いオープンソースのライセンスなので困りません。オープンソースの32bit CPUはRISC-Vがあります。「ICF3-Z」は8bit CPUなのでRISC-Vでは非効率な用途で活躍します。
また暗号プロセッサからの転用で独自なアーキテクチャであるため「ICF3-Z」を使った製品を作っても設計については他に寄付する必要がなく商用で使いやすいのも特長です。
ICF3-Zコアは完成しているものの、実際に製品に用いるためには開発環境などの開発が必要ですが、このCPUに日本の税金を投入させない方針を公式サイトで明確にしているため、商用で使いやすいこともメリット。制限の緩いオープンソースのライセンスなので派生して税金が投入されてしまう場合もあります。このため意向が派生にも伝わるようにオープンソースのライセンスの仕組みであるNOTICEに記述しています。しかしNOTICEでは法的な効力はないため、注意深く監視する必要はあります。
可能な限り少ないトランジスタ数であることが必要な用途など32bit CPUではできないことが、この「ICF3-Z」ではできることも重要な点です。乗除算ができて、ここまで少ないトランジスタ数で実現できているものは、あまりありません。
■もう少し詳しく
例えばGoogleとMicrochipが開発したIoTボード AVR-IoT WGの8bit CPU(AVR)には除算器はありません。有名なIntelの8bit CPUの8051の除算命令は8bit÷8bitであるため用途が限定されます。ICF3-Zは16bit÷8bit(24bit÷8bit)が高速に演算できるためより多くの用途で利用できます。
「ICF3-Z」が低消費電力である理由としては次のようなことが挙げられます。
例えば絶えずセンサーからデータを取り込んで除算のある計算式でデータを加工しサーバに送信したり、出力制御するような用途において除算器のない安いCPUでは周波数を高くする必要があります。しかし除算器つきのCPUを使えば原価が上がります。「ICF3-Z」は、昔、暗号プロセッサを開発したときに平山 直紀が設計した簡易な除算器(加算器を四則演算器にした一体型、水平コード含む、軽量)であるため、安価で低消費電力になるというものです。
さらにユーザが命令を定義できるといった他のCPUではあまり見かけない機能があります。これが他の8bit CPUとは一線を画しています。メモリ効率を上げるために作られましたが使い方次第では互換性維持など、いろいろ使えます。これに興味を持つ研究者、開発者が多いようです。
2002年にSHARPがガラスの上にCPUを作っています。
https://av.watch.impress.co.jp/docs/20021022/sharp.htm
ガラスの上にCPUを作るにはトランジスタ数が少ないほうが、コスト的なメリットが大きいと言えます。トランジスタ数を可能な限り少なくするという方針で設計された「ICF3-Z」は、最適なCPUと言えます。
「ICF3-Z」は、新しいデバイスの早期商用化を実現するため、絶対に必要なCPUとなるかもしれません。
2019年にMITがカーボンナノチューブを使った従来の10倍のエネルギー効率の新デバイスを発表しました。
https://www.electronicsweekly.com/news/research-news/mits-carbon-nanotube-risc-v-cpu-2019-09/
この新デバイスでオープンソースのCPU RISC-Vが実装されましたが、恐らくトランジスタ数の問題で32bitレジスタ16本のはずが、16bitレジスタ4本になっているのです。「ICF3-Z」であれば、完全実装できて「既存のアプリが動作します」というニュースになっていたことでしょう。
■ソースコードと設計図
「ICF3-Z」はVerilog言語のソースコード約1,000行で作られています。わかりやすくて詳細な設計図がついているため不信な実装がないかなどの検証が極めて短時間に行えます。割込みの実装が単純なので安心できます。
全体図
制御部
データ部
■Webサイト
ICF3-Z公式サイト
GitHub