このページの本文へ

前へ 1 2 次へ

ロードマップでわかる!当世プロセッサー事情 第743回

RISC-Vの仕様策定からSiFiveの創業までAsanovic教授の足跡をたどる RISC-Vプロセッサー遍歴

2023年10月30日 12時00分更新

文● 大原雄介(http://www.yusuke-ohara.com/) 編集●北村/ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

 RISC-Vプロセッサー遍歴シリーズは、前回から2ヵ月以上空いてしまったが、今回はそのRISC-Vプロセッサー遍歴の3回目をお届けしたい。

 実はRISC-V ISAの基本的な仕様を定めた2011年から、RISC-V Foundationが立ち上がるとともRISC-Vプロセッサー遍歴にSiFiveが創業する2015年までの5年間、Asanović教授は相当忙しかったと想像される。下の画像が2018年までのRISC-Vのタイムラインである。

これはあくまでRISC-V Foundationに絡んだ動きのみである

 この時期Asanović教授は以下の業務に携わっていた。

本来の教授としての業務

 下の画像は、Raven-1以降にUC Berkeleyで開発されたさまざまなRISCプロセッサーの一覧である。

UC Berkeleyで開発されたRISCプロセッサー一覧。ちなみに製造プロセスはまちまち。Raven-2/3とHurricane-1/2はSTMicro、SWERVEはTSMC 28nm、EOSはすべてIBMの45nm FD-SOIである。ちなみにこれで終わりではなく、この後もCraft/FFT/2/Eagle/Fader/GPS/Beagle/Hydra/EagleXといったチップが設計されている

 あくまでもこれはテープアウト、つまり物理設計を終わらせただけであってすべてのチップが実際に製造したわけではないし、ついでに言えばすべてにAsanović教授が関係しているわけではないが、ここのリストのRaven-3はAsanović教授の研究プロジェクトであり、実際にチップが製造され(製造はSTMicroelectronicsの28nm FD-SOI)、その特性を評価してHot Chips 27で発表もされれている。

Raven-3ではPMICとDC-DCコンバーターまでチップ上に積層、コンバーター抜きで34GFlops/W、コンバーター込みでも26GFlops/Wである。ちなみにRaven-1はコンバータが外部で26.2GFlops/Wなので、さらに効率を改善していることがわかる

 ということは2015年くらいまで、Ravenを利用した研究がずっと行なわれていたわけで、当然このために相応の時間を割いているはずである。

RISC-V環境の充実

 2014年までの間は、RISC-V ISAのブラッシュアップや「動くもの」の完成に注力することになる。実際基本的なISA(User ISA)は2011年中に完成し、2014年にはIMAFD(連載733回にあるスライドように、Standard Extentionの全部入り)まで定めたVersion 2.0がリリースされる。

 ただこれはUser ISA、つまりアプリケーション向けの命令セットであり、これとは別にOSなどカーネルモードで動作する際に必要な特権命令(Privileged Arch)設置と縮小命令セット(RVC:RV Compressed)も2015年には完成している。

 これに先立ち、Linuxの移植も始まっており、2013年中にはとりあえずブートするところまで完成している。この時のターゲットは、Raven-3の前段階の試作用で、ASICではなくFPGAボード上で動作していたコアのようだし、Linuxといってもとりあえずカーネルが動いたというレベルの話で、まだQEMUやブート用ファームウェアなどのビジネス用途に必要な環境がそろうには遠い状況ではあったが、とりあえず動作するOSが存在する、というのは重要なマイルストーンの1つを達成したことに間違いない。

 単に「命令セットを定めました」だけでなく、「その命令セットを利用したプロセッサーが存在し、その上でLinuxも動きます」となると説得力が大幅に増す。というのは、性能やコストを現実的に算定できるベースができることになるからだ。

 このコストに絡む話ではもう1つ、Chiselの存在がある。Raven-1の設計は、Verilogで行なわれていた。Verilogはこの連載でもちょくちょく名前が出てくる言語であるが、分類としてはHDL(Hardware Definition Language:ハードウェア記述言語)に属する。

 Verilogは回路を設計するための「高級」言語である。なにをもって「高級」なのかは難しいが、CPUの世界で言えばC/C++やJava、今ならPythonなどが「高級」、アセンブラが「低級」になる。品質云々の高級/低級ではなく、抽象度が高いのが高級、ハードウェアに依存するのが低級と考えて欲しい。

 HDLと対を成すのがRTL(Register Transfer Level)と呼ばれる記述法で、このRTLのデータを元にマスクが製造され、ファウンダリーで製造されることになる。さてRaven-1ではそんなわけでVerilogで直接CPU回路の記述がされていたが、Raven-2ではChiselと呼ばれる新しいツールが投入される。

 Chiselは言ってみれば「Verilogにカバーを被せたもの」で、Scalaという言語を基にしたHDLではあるが、それでも基本的なコアをカスタマイズ(キャッシュやレジスターの容量、演算ユニットの数などを増減)して派生型を作る作業がVerilogを使うよりも非常に簡単になるというメリットもある。

 さすがにVerilogを知らないエンジニアがChiselで直接CPUを構築するというのは無理があるが、Verilogに慣れたエンジニアであればCPUの構成を直接Verilogで記述するよりもずっと容易に構築できるようになった。このChiselは、その後SiFiveでも大活躍している。

 なおRaven-3からはChisel2、Hurricane-2からはChisel3とより進化したChiselが利用されているほか、Raven-3からはBAG(Berkeley Analog Generator)、Hurricane-2からはBAG2と呼ばれるPythonで記述可能なアナログ回路生成用ツールが利用可能になり、2020年からはこれらを包括してハードウェアの上位設計からチップの物理設計までをまとめてハンドリングできるChipyardと呼ばれるツールも登場している。

 こうしたツール群はもちろん徐々に整っていった格好なので2014年までの範囲であればいろいろ足りない部分はあったのだが、それでも他のCPUアーキテクチャーに比べると、RISC-VはCPUを設計するためのコストを低く抑えやすいという特徴が生まれることになった。

 また記事冒頭の画像で2012年に“1st Rocket tapeout”とあるが、これはChiselの上で提供されるRocket Chipと呼ばれるCPUジェネレーターを利用したチップである。その下のUC Berkeleyで開発されたRISCプロセッサー一覧の画像でいえばEOS系列がこのRocket Chipをベースとしたコアとなっている。

 Rocketそのものは5段のパイプラインを持つシングルイシューの比較的シンプルな構成のコアながら、RV32Gの命令セットに加え、マシンモード/スーパーバイザーモードなども搭載されており、ほぼRISC-Vコアの基本ともいうべきものになっている。このRocketコアに周辺回路のIPまでまとめた物がRocket-Chipであり、これはBSDライセンスで提供されている

 このRocketを利用した商用製品は多い(そもそもSiFiveの最初の評価ボードであるHiFive 1に搭載されたEF310というSoCも、このRocketベースである)。BSDライセンスなので、もちろんSiFive以外のベンダーもこれを自由に利用可能である。

 これに引き続き、アウト・オブ・オーダー構成をもつBoomという実装の開発も始まっているが、こちらは登場するのはもう少し後の話である。ただこんな具合に、さまざまなRISC-Vを現実するためのプロジェクトも、研究と同時に走っていたわけだ。

前へ 1 2 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン