RISC-V発展の背景
皆さんは「RISC-V」という名前を聞いたことがあるでしょうか。コンピュータアーキテクチャ、プロセッサなどに興味を持っている方ならば、その名前を少しくらいは聞いたことがあると思います。
RISC-Vは「リスク-ファイブ」と呼び、最近急速に注目を浴びているコンピュータの命令セットアーキテクチャ(Instruction Set Architecture: ISA)です。ISAといえば、デスクトップコンピュータやサーバ向けのIntel、AMD製プロセッサに搭載されているx86、スマートフォンやモバイルデバイス向けプロセッサとして非常に高いシェアを持っているArmといったものが有名です。
しかしながら、歴史上非常に多くのISAが提案され、製品化され、また消えていきました。そんな中でRISC-Vが急速に注目を浴びている理由は何でしょうか?
歴史上、数多くのISAが提案されて、しのぎを削ってきた
突然ですが、Wikipediaで「命令セットアーキテクチャ(Instruction Set Architecture)」について調べてみましょう。堅苦しい説明はさておき、代表的なISA一覧について見てみると、多くのISAがリストアップされています。
これだけではありません、歴史的にたくさんのISAが提案され、半導体メーカ、電気機器メーカが新ISAの開発にしのぎを削ってきました。しかし、(少なくとも私たちの身近に感じる、主流となっている)ISAはわずかです。残りはどこに行ったのでしょうか?
これらのISAは、完全に消滅しているわけではありません。小さな電子機器デバイスや、インフラなどに細々と使われています。しかし、上記の主流なISAと比べるとシェアは非常に低いと言えます。
そんな群雄割拠な、なかなか普及させることが難しくなってきたISAの世界に、RISC-Vは一石を投じた、という訳です。
RISC-V は大学発
RISC-Vの歴史を紐解いていくと、カリフォルニア大学バークレイ校(University of Califronia、Berkeley 以下 UCB)にたどり着きます。UCBといえば、上記のISA一覧にも載っている “MIPS”を開発したことで有名な大学ですが、研究用としてUCBのメンバが新しく開発した命令セットアーキテクチャが、RISC-Vです。
彼らは、2011年頃から、新しいISAについて検討を始めました。まずは研究用のチップを作る際の制御コントローラとして実装し、いくつかのチップを開発しいくつかの論文発表も行いました。その後商用化を目指し、”RISC-V Foundation”という団体を作成し、Web上でISAを全て公開しました。
そのような由緒正しい研究室からアーキテクチャですが、彼らがこれまでに開発したMIPSと、RISC-Vでは何が異なるのでしょうか?
RISC-Vは完全にオープン
RISC-Vは完全にオープンであり、RISC-VのISA使うためのライセンス料は必要ありません。これは、これまでに主流であったISAとは根本的に異なります。
x86のアーキテクチャはIntelとAMDしか使うことが出来ません。また、Arm ISAのライセンス料は、構成にもよりますが数千万から数億とも言われています。x86はさておき、ArmのISAやCPUコアを使おうとすると、非常に高価な初期投資を行う必要があります。
これに引き換え、RISC-Vのライセンス料は全く不要です。つまり、初期コストゼロから始めることが出来ます。
RISC-V Foundationの役割
ここで重要なのは、RISC-VというISAは「RISC-V Foundation」という非営利団体が管理しているという点です。
RISC-V Foundationは”Board of Directors”を中心として100を超える企業が参加しており、それぞれグループに分かれて仕様の策定の議論やエコシステムの開発を行っています。RISC-V Foundationの創設の経緯について、直接財団のウェブサイトに言及されているわけではありませんが、筆者は「非営利団体」がISAを管理するということ自体に大きな意義があると感じています。
これまでに開発された数々のISAは、その開発を行った企業や団体の状態に大きく依存していました。いくら優れたISAを作っても、そのISAをメンテナンスし、IPを提供する会社の業績が悪くなれば、そのISA自体も存在の危機に立たされることになります。
RISC-VはそのISAを実装する会社とそのISAを管理する団体を完全分離されているため、ISA自体をなるべく長く継続させることができます。このような意図も、団体設立の背景として読み取れます。
CPUのISAは「特許の問題」と常に戦ってきた
もうひとつ、コストの問題以外にISAがオープンであることのメリットに、「特許の問題」があります。
歴史的に、CPUのISAやマイクロアーキテクチャを開発すると、別のISAを開発した他社が自社のISAと類似しているため、特許違反として訴えを起こすことがあります(日立対モトローラ事件など)。
IntelとAMDもx86のアーキテクチャについてクロスライセンス契約を行っており、プロセッサを開発するベンダは、特許違反にならないかは非常に神経質になっています。モバイル向けSoCを開発しているAppleも、かつてCPUのマイクロアーキテクチャについてウィスコンシン大学から特許訴訟を受けており、その賠償額は250億円になるとも報じられています。CPUのISAは特許の問題と隣り合わせで開発をしなければならない、といえるでしょう。
しかし、RISC-VのISAを利用すれば、少なくともISAに関して特許のことを考える必要はなくなります。ロイヤリティフリーで、オープンなISAは、誰にでも使用することができるのです。(ただしこのISAをどのように実装するか、マイクロアーキテクチャの特許の問題までRISC-Vは解決してくれるわけではありませんので、注意が必要です)。
RISC-Vの発展の歴史
では、RISC-Vの発展の歴史について、ザックリとみていきましょう。
仕様のアップデート
RISC-Vの最初の仕様は2011年に公開されました。後を追うようにしてPrivileged ISA(つまりシステムレベル仕様)が公開され、現在もアップデートが行われています。しかしベースとなるISAの部分は既にFixされ、今後のアップデートで変更されることはありません。
- 2011年:RISC-V Base User-Level ISA 1.0 がリリースされる。
- 2014年:RISC-V User-Level ISA 2.0がリリースされる。
- 2015年:RISC-V Priviledeg ISA 1.7がリリースされる。
- 2016年:RISC-V User-Level ISA 2.1、Privileged ISA 1.9がリリースされる。
- 2017年:RISC-V User-Level ISA 2.2、Privileged ISA 1.10がリリースされる。
ワークショップ
RISC-Vのワークショップは半年に1回の目途で開催されており、毎回様々な研究機関や企業でRISC-Vの検討や実装の報告がなされています。また、新しい仕様のアップデートなどもワークショップを通じて説明がなされることがあります。
開催回 | 開催日 | 開催場所 | ホスト組織 |
---|---|---|---|
1st | 2015/01/14-01/15 | カリフォルニア州モントレー | — |
2nd | 2015/06/29-06/30 | カリフォルニア州バークレイ | — |
3rd | 2016/01/05-01/06 | カリフォルニア州レッドウッドシティ | Oracle |
4th | 2016/07/12-07/13 | マサチューセッツ州ケンブリッジ | MIT |
5th | 2016/11/29-11/30 | カリフォルニア州マウンテンビュー | |
6th | 2017/05/08-05/11 | 中国、上海 | NVIDIA |
7th | 2017/11/28-11/30 | カリフォルニア州ミルピタス | Western Digital |
また、2017年12月には、RISC-V Tokyo 2017として、RISC-V Foundationが中心となった初めての日本でのRISC-Vイベントが開催されました。東京大学の伊藤謝恩ホールで行われ、300人以上の参加者がありました。
RISC-Vの情報源
RISC-Vを始めてみたいと思ったとき、まずは何から調べて行けばよいのでしょうか。ここでは、RISC-Vについて学ぶための様々な情報源についてリストアップしてみましょう。
詳細なRISC-Vの仕様をチェックしたいならばriscv.orgの仕様書
RISC-V Foundationのウェブサイトである「riscv.org」には、ISAの仕様書が掲載されています。2018年2月現在では、ユーザレベルISAはVer.2.2、特権レベルISAはVer.1.10が最新版となっています。
詳細なRISC-Vの仕様をチェックしたいならば、これらの資料を参照することをお勧めします。
ハードウェア実装の例を見たいならば、SiFiveの仕様書
RISC-V Foundationは基本的にISAの仕様書しか公開していませんが、具体的なRISC-Vの実装について確認したいときは、RISC-VのIPを提供しているSiFive社のウェブサイトをお勧めします。
SiFive社はRISC-VのIPを提供している会社で、業界では唯一32-bit RISC-V ASICチップと評価ボードであるHiFive1を提供している会社として、RISC-V界をリードしています。このSiFive社が公開している各種RISC-V IPコアの仕様書も公開されており、だれでもアクセスすることが出来ます。どのようなメモリマップが一般的なのか、確認するのにも使うことができ、またデバッグ仕様についてもSiFive社のウェブサイトで公開されているため、一度チェックしてみることをお勧めします。
RISC-Vを中心としたコンピュータアーキテクチャについて学びたいなら、パタヘネ、ヘネパタ
RISC-Vは大学発のISAです。RISC-Vを最初に考案したUCBは、コンピュータアーキテクチャ界では非常に有名なDavid A.Patterson先生が在籍している大学です。
David A.Patterson先生とStanford大学のJohn L.Hennessy先生が共同で執筆している、”Computer Organization and Design(通称パタヘネ)”、”Computer Architecture: A Quantitative Approach(通称ヘネパタ)”という教科書があります。こちらはほとんどの大学で教科書として採用されており、コンピュータアーキテクチャを学ぶものならば必ず読んでおきたい一冊です。
2017年に、この「パタヘネ」「ヘネパタ」が解説用のISAとしてRISC-Vを採用し刷新されました。”Computer Organization and Design RISC-V Edition”および”Computer Architecture: A Quantitative Approach Sixth Edition”です。
RISC-Vと一緒に、コンピュータアーキテクチャについて学びたい人にとって、最適な入門書になっています。
トラブルシューティングに役立つ、メーリングリスト
RISC-Vを試していくうちに、疑問点、トラブルやうまく動かないことが発生することも多々あります。そんな時は、RISC-Vのメーリングリストを調査してみることをお勧めします。実装やISAについての疑問点など、検索すると様々なユーザからの疑問や解答がまとめられており、疑問点があればまずはメーリングリストを検索してみましょう。
メーリングリストは大きく分けて2つあり、RISC-V Foundationの管理しているメーリングリストと、SiFive社が管理しているメーリングリストがあります。RISC-V Foundationの管理しているメーリングリストは議論する内容に応じて細かく分けられており、ハードウェア設計についてのメーリングリスト、ISAについてのメーリングリスト、ソフトウェアについてのメーリングリストなどが存在します。
一方でSiFive社のメーリングリストは、SiFive社が提供するASICチップであるHiFive1についてのトラブルシューティングや、提供するIPについてのトラブルシューティングとなっており、より詳細なハードウェア実装について確認したい場合、こちらのメーリングリストも確認してみることをお勧めします。
日本語での解説が分かりやすい、雑誌
CQ出版から、FPGAマガジンNo.18として”RISC-Vづくり”という雑誌が発行されています。こちらはRISC-Vの発展の歴史からその仕様まで、幅広く解説されています。なにより日本語で解説されているという点がうれしいです。
また、UCBの開発したCPUコアではありませんが、実際にRISC-Vコアを開発してFPGAで実装する記事が掲載されています。こちらも、RISC-Vを中心としたシステムを構築する際には参考にしておきたい情報です。
さいごに
というわけで、いかがでしたでしょうか?RISC-Vの発展の歴史について、簡単にですが紹介してみました。次回は、RISC-Vの命令セット仕様について解説していきます。
こちらも是非
“もっと見る” RISC-V編
GUIの開発環境を使ってRISC-Vを動かしてみよう
Arduino IDEは他のArduinoプラットフォームとの親和性が良く、Arduinoチップとして楽しむならば十分な環境です。また、Freedom-E-SDKはコンソールを使ってプログラムのコンパイルやアップロードを行う環境で、初心者にはややハードルが高いですが、柔軟なプログラムを開発することができます。
GUIの環境は好きじゃない!Freedom SDKを使ったアプリケーション開発
Arduino IDEを使ってプログラムを書き込む方法をはじめ、EclipseベースのGUI環境であるFreedom Studioを使うとGUI環境でプログラムを開発することが出来ます。その一方で、GUIを使うのは面倒だし、Linuxなどを使っていればコマンドラインからすべて操作したいという人はたくさんいると思います。
Arduino互換RISC-Vプロセッサ“HiFive1”を使ってみる
RISC-Vを使うにはいろんな手段があります。ASICチップが乗っているボードを買ってくることもできますし、FPGAにデザインを焼いて動作させることができます。特にFPGAを使う場合は、自分で簡単にカスタマイズすることもできますので独自のRISC-V環境を作ることもできます。