2017年も押し詰まった12月18日に東大の本郷キャンパスで「RISC-V Day 2017 Tokyo」と題する催しが行われた。RISC-Vの知名度から、出席者はわずかと思われたが、蓋を開けてみると、300人あまり入るホールが満席で、立ち見も出るという盛況ぶりであった。
顔見知りのコンピュータエンジニアも多かったのであるが、もちろん、上司から、情報収集のために出席せよと言われて来た人もいたほか、「今日は会社を休んで、個人で来ました」というエンジニアが多かったのは驚きであった。
RISC-Vってなんだ?
RISC-Vは「リスク ファイブ」と読む。カリフォルニア大学バークレイ校はRISC(Reduced Instruction Set Computer)と命名したPatterson教授が在籍するコンピュータアーキテクチャ研究の名門であり、1981年に発表されたRISC-1からのRISCプロセサの開発の歴史がある。この歴史の流れで5代目にあたるRISCプロセサであるので、ファイブと名付けられている。
RISC-Vは、カリフォルニア大学バークレイ校のKreste Asanović教授、David Patterson教授らが中心になって開発したRISCアーキテクチャである。
RISC-Vは、命令セットアーキテクチャ(ISA:Instruction Set Architecture)であり、どのようなレジスタや命令があり、各命令を実行すると、レジスタやメモリの状態がどう変わるかということを定義している。一方、それをどのように作るのかというマイクロアーキテクチャは規定していない。
なぜ、今更、新しいRISCアーキテクチャを作るのか
すでにIntelのx86アーキテクチャやArmv8アーキテクチャがあるのに、なぜ、新しいアーキテクチャを作るのかというと、まず、Intelのx86やArmv8などのアーキテクチャはオープンではなく、事実上、他社がx86アーキテクチャのプロセサを作ることはできない。ただし、AMDは例外で、長い歴史的ないきさつがあり、一応、互換のプロセサを作る権利をもっている。
一方、Armアーキテクチャのプロセサを作るのは、Armからしかるべきライセンスを得れば可能であるが、相当な額のライセンス料を払う必要がある。
次の図のように、ネットワークやOS、コンパイラ、データベース、グラフィックスの分野では誰でも無償で使える標準があり、その標準に基づいて多くの製品が作られている。しかし、プロセサのISAはオープンな標準がない。異なるISAのプロセサを使う場合には、それなりに手間がかかる。
リコンパイルすれば、新しいISAのプロセサのバイナリプログラムが作れるので問題ないと思うかも知れないが、まず、新しいISAに対応したコンパイラを誰かが作る必要があるし、デバッガを始めとする開発ツールも作る必要がある。また、リコンパイルしたプログラムが本当にちゃんと動くことを確認する必要があり、この手間が馬鹿にならない。
1つのオープンなISA標準があれば、これらの無駄を省くことができる。
IBMのSystem 360 ISAやIntelのx86 ISAは残っているが、各社のISAがずっと続くとは限らない。
Digital Equipment(DEC)のPDP-11、VAX、Alphaは名機と謳われたが、今や、DEC自体が無くなり、これらのマシンのISAも使われなくなっている。Intelは、会社は存続しているが、i960、i860やItaniumなどはなくなってしまった、もしくは終焉に向けた状態となっている。
そして、Imagination Technologies(IMG)はMIPS部門を切り離し、MIPS ISAの将来がどうなるのか懸念がある状態になっている。また、OracleはSPARC ISAのプロセサの開発は止めると見られている。
ArmがArmv8 ISAを止めるという話はないが、買収したソフトバンクが、将来、どのような方針を取るか、25%の株を持つアブダビの投資公社がどのような方針をとるかは分からない。Armv8 ISAも無くならないという保証はない。
今日では、多数のISAが1つのSoCの中に含まれている。次の図に見られるNVIDIAのTegraは1つの例であるが、アプリケーションプロセサ、GPU、イメージプロセサ、ラジオDSP、オーディアDSP、セキュリティプロセサ、電力管理プロセサなど各種のプロセサが含まれており、それぞれが異なるISAを使っている。
なぜ、異なるISAを使っているかというと、アプリケーションプロセサのISAはアクセラレータのISAとしては大きすぎるし、柔軟性に欠ける。そして、多くの場合、それぞれのプロセサは異なる会社が開発したものであるので、ISAが異なっている。また、エンジニアは自分たちでISAを作りたがるという問題もある。
多くのISAを覚えて使いこなすのは大変であるし、それぞれのISAごとにコンパイラやデバッガなどのツールも必要になる。また、各社の作ったISAは無くなってしまうこともある。
(次回は12月26日に掲載します)