連載
» 2020年12月16日 05時00分 公開

第247回 NVIDIAのArm買収で今注目の「RISC-V」って何?頭脳放談

NVIDIAのArm買収で、これまでArmを採用してきたベンダーは戦略変更を迫られるかもしれない。そんな中、注目を集めているのが、オープンソースのプロセッサ「RISC-V」だ。RISC-Vとは何なのか、どういったメリットがあるのかを解説しよう。

[Massa POP Izumida,著]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

 NVIDIAがArmの買収を発表してから、Armを採用しているベンダーは今後の動向を注視しているようだ(NVIDIAのプレスリリース「NVIDIA、Armを400億米ドルで買収」)。NVIDIAの戦略によっては、引き続きArmを採用すべきなのかを考える必要があるからだ。そこで、注目を集めているのが、「RISC-V(リスク・ファイブ)」だ(RISC-Vは、「ファイブ」だけでなく、実はベクターの「V」でもあるのだと設計者が書いてもいる)。

 実際、大手ストレージベンダーであるSeagate Technologyは、自社のハードディスク向けのSoCに組み込むためのRISC-Vコア2種を設計したと発表している(Seagate Technologyのプレスリリース「Seagateがデータ・モビリティと信頼性を向上するRISC-Vコアを設計」)。高性能なものと面積の小さい(すなわちコストも小さい)ものである。高性能な方は、既にハードディスク上で動作しているということだ。RISC-Vに関するイベント(オンライン開催)である「RISC-V Summit 2020」での発表である。

 RISC-Vは、プロセッサ業界では知らない人はいないと思うが、それ以外ではあまり知られていないと思う。そこでまずは、ご存じない方向けにその概要について勝手な説明を書かせていただく。

RISC-Vとは

 RISC-Vのプロジェクトには歴史がある。RISCのまさに元祖家元ともいうべきカリフォルニア大学バークレー校(UCバークレー)のRISCプロジェクトが起源なのだ。年寄りの筆者がまだ若手だった20世紀のこと、DLX(デラックス:John LeRoy Hennessy氏とDavid Andrew Patterson氏が設計したRISCアーキテクチャ)というプロセッサを勉強したことがある。それが同プロジェクトの初代の成果物なのだ。その流れをくんだ5代目が「RISC-V」というわけだ。

 最初にRISC-Vの話を聞いたとき(10年近く前だったと記憶している)、「何をいまさらISA(インストラクション・セット・アーキテクチャ)の開発かい?」と思ってしまったことを告白しておきたい。既にx86とArmの覇権が定まっているように見えた。何か新しいISAなど決めても市場に入り込む余地などないだろうと浅はかにも考えた。

 しかし、筆者の机の周りには、今、RISC-Vのコアで動いているマイコンボードが4枚ほどある。それどころかこの文章を書くのに使っているPCには、ダウンロードしてきた小さなRISC-Vコアのソースまで保存しているくらいだ。「何をいまさら」どころか、今や時流に乗っているといってもよいプロセッサに成長してきている。

 RISC-Vには、「RISC-V International」という団体があり、ここがRISC-Vの大本を「管理」している。だが、ArmのようにArmコアの設計をライセンス販売しているわけではなく、ましてやIntelやAMDのようにx86のチップを売っているわけでもない。ただプロセッサの命令セットを決めているだけだ。

 RISC-V命令セットのプロセッサの設計をしたり、設計したものを実際のチップにして販売したりすることは、誰でも無料でできる。もちろん、商業的な組織がRISC-V Internationalのメンバーになって、この活動に深くかかわりたいと思えば、組織の規模によりそれなりの年会費を払う必要がある。ただしその額は、数十万円から数千万円というレベルだ。そして別に会員にならなくてもチップは作れる。

RISC-Vのよさはアセンブラで分かる

 RISC-Vのよさを真に実感しようと思ったら、これがISAの定義であるだけに、RISC-V用にアセンブラを書いてみることだ。x86やArmでもアセンブラを書いたことがあれば即座にそれを感じられるだろう。かつて筆者はx86のアセンブラを書いていた時期があった。現在のx86の命令セットは、そのころより数十倍(?)の数千命令に膨れ上がっている。その拡張の仕方たるや、互換性最優先のために、「屋上屋を架す」という表現がピッタリの汚いやり方だ。

 Intelの現在のISAマニュアルに一度でも目を通したら分かるが、これを最後まで読み通すのは至難の業だと思う。Armの場合は、IntelのISA拡張とは異なり、複雑度はそれほどではない(それでも命令セットマニュアルを通読するのは難儀なことに変わりない)。しかし、携帯電話市場で大成功を収めたARM7の時代からすると、Armという名のもとで幾つかの断絶が存在する。過去の機械語コードがそのまま今でも実行できるような拡張の仕方ではないのだ。

 その点、RISC-Vの命令セットは平易だ。経験者ならすぐに理解してアセンブラでプログラムを書ける。リファレンスカードというものがあるのだが、A4用紙表裏で足りている。それで組み込み用のマイクロコントローラーから、HPC(スーパーコンピュータ)までカバーできるというのだ。どの実装でも使える基本部分というものがあり、その部分で書けば組み込みチップでもHPCでも動作するはずだ。

 そして、実装によるオプショナルな拡張部分についても統一されたポリシーがある。x86やArmのように「過去のしがらみを残しつつ、インクリメンタルに拡張してきた結果できた伏魔殿的なところ」「今じゃ要らないけどね」とか、「似たものが他にもあって冗長だよね」とかいった部分がないのだ。素直で簡素で必要十分である。そのうえ、過去のいろいろなISAが失敗してきた経験を生かしている。x86やArmだけではない、RISCプロジェクトの源流近くにあるMIPSとかSPARCとかPowerとかさまざまなアーキテクチャの失敗に学んでいる。

タイミングのよかったRISC-Vの登場時期

 そんなよい命令セットだが、登場したタイミングもよかったのではないかと思う。1つには、設計技術の発展がある。このような命令セットが何十年か前にあったとしても、そのころの設計技術で実装するのはなかなか大変で、費用がかかったはずである。大枚はたいてオープンなプロセッサを作って商売になるとは思わなかったのではないか。

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。