SiFiveが提供するプロセサコアIP

SiFiveは32bitアーキテクチャの「Freedom Everywhere」というコアと、64bitアーキテクチャで高性能の「Freedom Unleashed」という2種類のプロセサコアIPを持っている。

Freedom Everywhereの方はTSMCの180nmプロセスで作られておりクロックは320MHz以上となっている。

次に示すブロックダイアグラムは、E31 CPUにUART、GPIOなどの低速I/Oが付いたマイクロコントローラである。8KBのマスクROMと8KBのOTP(One Time Programmable)ROMを内蔵しており、ここにプログラムや固定データを書き込んで使う。

  • E31 CPUに低速I/Oポートが付いたFE310チップのブロックダイアグラム

    E31 CPUに低速I/Oポートが付いたFE310チップのブロックダイアグラム。合計16KBのROMを内蔵し、ここにプログラムや固定のデータを入れて動かす

Freedom Unleashedの方はTSMCの28nmプロセスで作られクロックは最低でも1.5GHzとなっている。こちらはマルチコア構成ができ、高性能のシステム用のプロセサである。次の図にブロックダイアグラムと簡単な諸元を示す。

FU540チップは1個のE51コア(E31の64bitアーキテクチャ版)と4個のU54コアを集積している。E51コアは整数演算だけであるが、U54コアは単精度と倍精度の浮動小数点演算機能を持っている。また、TileLinkをチップ外に延長するChipLinkというインタフェースを持ち、ここに自分用のIPブロックを接続することができるようになっている。もちろん、自分用のチップを開発する場合は、アクセラレータを別チップにする必要はなく、CPUコアと同一チップに載せてTileLinkで接続しても良い。

さらに、U540チップはDDR3/4 DRAMのコントローラとギガビットEthernetポートを装備しており、Linuxを走らせることができる。

  • 64bitアーキテクチャのE51コアを1個とU54コアを4個搭載するFreedom Unleashed U540チップ

    64bitアーキテクチャのE51コアを1個とU54コアを4個搭載するFreedom Unleashed U540チップ。DRAMコントローラ、ギガビットEthernet、マイクロSDカード、マイクロUSBポートを持ち、Linuxを走らせることができる

なお、この発表では触れられていないが、同社のWebには、E31コアには28nmプロセスを使い最低でも900MHzで動作するものも載っている。また、E51コアもU54のコンポーネントとして使うだけではなく、独立の製品として扱われている。最新情報が必要な場合は、SiFiveのWebサイトを確認した方が良い。

そして、これらのCPUコアにRAMBUS、UltraSoC、FlexLogicなどのサードパーティのIPを組み合わせてチップを構成する。SiFiveのビジネスは、CPUコアIPの提供だけでなく、これらのIPを組み合わせてチップを設計し、そのドキュメントの作成や、チップを検査するテストベクタの開発なども引き受ける。

なお、サードパーティのIPベンダは、通常、最初にかなり高額のライセンス料を取るが、SiFiveと提携しているIPベンダは、最初のライセンス料は非常に低くして、製品の出荷が始まると最初の値下げ分をロイヤリティで回収するという契約を行うことができるようになっているという。

つまり、開発の初期に必要な資金を低く抑えて、カスタムLSI開発の費用的ハードルを下げて、カスタムチップの開発の後押しをしている。

  • SiFiveはローエンドコントローラ用のFreedom EverywhereコアとハイエンドのFreedom Unleashedの種のプロセサコアを提供する

    SiFiveはローエンドコントローラ用のFreedom EverywhereコアとハイエンドのFreedom Unleashedの種のプロセサコアを提供する。これにRAMBUSなどのIPを組み合わせてチップ全体の設計やテストベクタの作成なども引き受ける

SiFiveの32ビットアーキテクチャコアの性能

次の図は、Freedom EverywhereのFE310とIntelのCurieモジュール、ArmのCortexM0+コアを使うArduino Zero、NordicのNRF51を比較したものである。競合製品のクロックは16-48MHzであるがFE310は320MHzとクロック周波数が高く、かつ、DMIPS/MHzも1.16と競合製品より高い。結果としてDMIPS値は、次に性能の高いArduino Zeroの7倍以上となっている。

さらに、DMIPS/mWも3.16と高く、他の製品より性能当たりの消費電力が小さい。

  • プロセサコアの性能と消費電力の比較

    プロセサコアの性能と消費電力の比較。IntelのCurie、Arduino Zeroに使われているATSAMD21G18、Nordic NRF51とFreedom E310を比較している。FE310はクロックが高く、DMIPS/MHzも高く、Cortex M0+の7倍の性能を持つ。また、DMIPS/mWの値も高く、同一性能の場合は消費電力が小さい

E310コアは有償のコアIPであるが、その前身となったRocketというRISC-V CPUはオープンソースで自由に利用できる。また、TileLinkと呼ぶキャッシュコヒーレンシ機能をもつチップ内インタコネクト、UARTやGPIOなどの低速I/O、Xilinx FPGA用のDDR DRAMやPCIeブロックのラッパーなどはオープンソースになっている。ただし、チップのパッド、PLL、OTP ROMやマスクROMなどのサードパーティのIPはオープンソースにはなっていない。

  • FE310の前身のRocketコアと低速I/OのIPはオープンソースとして公開している

    FE310の前身のRocketコアと低速I/OのIPはオープンソースとして公開している。しかし、PLLやROMなどはオープンソースではなく、サードパーティのライセンスを受けて入手する必要がある

Yunsup Lee氏は、「オープンソースはソフトウェアの世界に革命を起こした。次はハードウェアの番である。SiFiveが推進するハードウェア設計の解放の流れに乗れば、あなたのアプリケーション用のカスタムチップを作ることができる。RISC-V革命に参加しよう」と呼びかけた。

  • Yunsup Lee氏はRISC-V革命に参加しようと呼びかけた

    Yunsup Lee氏はRISC-V革命に参加しようと呼びかけた

SiFiveの64ビットアーキテクチャコアの性能

次の図はFU540チップを搭載した開発ボードの外観とその諸元である。Yunsup Lee氏は、このボードを持参してきており、発表の最後に箱からボードを取り出し、電源アダプタとターミナルになるPCをつなぎDebian Linuxを立ち上げて見せた。それに要した時間は僅かで、開発ボードが簡単に動かせることを印象付けたデモであった。

  • Freedom U540チップを搭載した開発ボードの外観と諸元

    Freedom U540チップを搭載した開発ボードの外観と諸元。発表の最後で、Yunsup Lee氏は持参した開発ボードを接続してDebian Linuxを立ち上げるデモを行った

Yunsup Lee氏は、カスタムLSIの開発を、ピザを注文するようにベース(プロセサコア)を選んで、それに好みのトッピング(メモリコントローラやPCI ExpressなどのIP)を振りかけて、ピザ窯に入れると、注文したピザが焼き上がるという風に作れるようにしたいと語っていた。

  • SiFiveのYunsup Lee氏

    COOL Chips 21での発表の中でRISC-Vプロセサの評価ボードのデモの準備をするSiFiveのYunsup Lee氏

RISC-Vのコミュニティが大きくなれば、使えるIPの種類が増え、コストも下がり、開発ツールも便利になり、カスタムLSIの開発が気軽にできるようになるというのも夢ではない。