RISC-V

出典: フリー百科事典『ウィキペディア(Wikipedia)』
ナビゲーションに移動 検索に移動
RISC-Vのロゴ
RISC-V
開発者 カリフォルニア大学バークレイ校
ビット数 32, 64, 128
発表 2010
バージョン 2.2
デザイン RISC
タイプ Load-store
エンコード Variable
ブランチ Compare-and-branch
エンディアン Little
拡張 M, A, F, D, Q, C, P
オープン Yes
レジスタ
汎用 16, 32 (ゼロ・レジスタを1つ含む)
浮動小数点 32 (オプション)
2013年1月に製造されたRISC-Vプロセッサのプロトタイプ

RISC-V(リスク ファイブ)は、RISCの設計思想に基いた、オープン標準命令セット・アーキテクチャ (ISA) である。

ほとんどのISAと異なり、RISC-V ISAはいかなる用途にも自由に利用でき、RISC-Vチップおよびソフトウェアの設計・製造・販売は全ての人に許可されている。オープンアーキテクチャのISAとして最初のものではないが[1]、幅広いデバイスに有用なよう設計されている点において重要である。その命令セットをサポートするソフトウェアは実用上十分に存在し、新しく設計された命令セットが抱えがちな弱点を回避している。

プロジェクトは、2010年にカリフォルニア大学バークレイ校で開始されたが、現在は、多くのコントリビューターが、ボランティアもしくは企業の従業員として、大学外から参加している。[2] 例えば、グーグルオラクルヒューレット・パッカード・エンタープライズ(HPE)などが開発に参加している[3]

RISC-V ISAは、小さく、速く、省電力で、実用性を重視して設計されてきているが[4][5]。特定のマイクロアーキテクチャに過適合しないようにしている[5][6][7][8]

2017年5月に、ユーザーレベルのISAのバージョン2.2が決定され、特権レベルISAが、ドラフト・バージョン1.10として提供されている。

重要性[編集]

RISC-Vの製作者は、自由に利用可能ないくつものCPUデザインをBSDライセンス下で提供することを目指している。同ライセンスは、RISC-Vチップの設計や派生成果物を、RISC-V自身と同様オープンかつ自由に、またはクローズドで独占的に、作成することを許可する。

対照的に、商業チップ製造者、たとえばARMホールディングスミップス・テクノロジーズは、彼らの特許を利用するにあたり、相当のライセンス料を課する[9]。彼らはまた、設計の優位性や命令セットを記した文書を渡す前に秘密保持契約を要求する。

CPUの設計開発は、電子論理回路・コンパイラ・オペレーティングシステムにまたがる専門的な知識を要する。プロの設計部隊以外でこうした専門知識を有する組織は極めて稀である。そのため、現代的かつ高品質な汎用コンピュータ命令セットで広く利用可能なものはなく、また学術分野を除けば詳しい解説もなされていない。こうした背景があるため、多くのRISC-Vの貢献者(Contributor)は、RISC-Vをコミュニティの総力による賜物だとみなしている。そうした多くの貢献者からの要求があったことが、RISC-Vが幅広い利用目的に合うように設計された理由の一つに挙げられる。

また、RISC-Vの製作者たちは、CPU設計の検証にあたって、実機・シミュレーション問わず研究・利用の両方の立場での豊富な経験を持っている。RISC-V ISAの直接的な起源は、継続的に行われた学術的なコンピュータ設計プロジェクトにあり、それらのプロジェクトを補佐する狙いもあって始まったものである[5][10]

歴史[編集]

先行開発[編集]

RISC」という用語は1980年頃に作られた[11]。それ以前は、よりシンプルな設計のコンピュータは効率的な可能性があるといういくつかの知見は存在したが、そのような設計指針はまだ広まってはいなかった。単純で効率的なコンピュータは、常に学術的な関心にとどまっていた。

研究者は、RISC命令セットのDLXを、1990年に初版の『コンピュータ・アーキテクチャ 設計・実現・評価の定量的アプローチ』のために作成した。著者のデイビッド・パターソンは、後にRISC-Vを支援した。しかし、DLXは教育目的用だったため、研究者やホビーストはDLXをFPGAを使って実装したが、商業的には成功しなかった。

ARM CPUのバージョン2とその前は、パブリックドメインの命令セットであり、現在もまだGNUコンパイラコレクションによってサポートされている。このISA向けに、3つのオープンソースのコアが存在するが、もはや製造されていない[12][13]

OpenRISCは、DLXをベースとしたオープンソースのISAであり、RISCの実装の1つである。OpenRISCはGCCとLinuxの実装を完全にサポートしているが、商業的な実装は少ない。

RISC-Vという名称は、カリフォルニア大学バークレイ校が発表したRISC ISAの5番目のメジャー・バージョンであることを表している[5]。RISC-Vの前の4つのバージョンは、それぞれRISC-I[14]、RISC-II[15]、SOAR[16]、およびSPUR[17]である。

財団[編集]

カリフォルニア大学バークレイ校Krste Asanovićは、オープンソースのコンピュータシステムが広く普及している状況を認識していた。2010年、彼は「夏の3ヶ月の短期間プロジェクト」の中で、RISC-Vを開発、公開することを決意した。この計画は、研究者や企業のユーザーに役立つものだったため[10]、バークレイ校のデイビッド・パターソンも協力した。もともとパターソンは、バークレイRISCの特性を定めた人物であり、RISC-Vは、彼のRISC-Vの研究プロジェクトの長い経歴の一つである。初期の開発では、DARPAが財政支援を行っていた[5]

RISC-V財団をサポートしている組織としては、アドバンスト・マイクロ・デバイセズ[18]、Andes Technology[19]BAEシステムズ、Berkeley Architecture Research、Bluespec, Inc.、Cortus、Google、GreenWaves Technologies、ヒューレット・パッカード・エンタープライズ華為技術IBM、Imperas Software、中国科学院、IIT Madras、ラティスセミコンダクター、Mellanox Technologies、Microsemiマイクロン・テクノロジNVIDIANXPセミコンダクターズオラクルクアルコム、Cryptography Research、ウェスタン・デジタル、SiFiveなどがある[20][21][3]

表彰[編集]

  • 2017年、Linley Groupにより、ベスト・テクノロジー(命令セット)賞に選定された。

開発動機[編集]

RISC-Vの設計者は、命令セットは、ハードウェアとソフトウェアの中間に存在する故に、コンピュータのインタフェースの中心であると主張している。もし、良い命令セットがオープンで誰もが利用できるなら、ソフトウェアの再利用がより可能になり、そのコストは劇的に削減されるだろう。また、ハードウェア製造者間の競争が促進され、ハードウェア製造者は、より多くのリソースを設計に使えるようになり、ソフトウェア・サポートに使うリソースは少なくできる[10]

彼らの主張によれば、命令セットの設計では新しい設計原理が現れることはほとんどなく、過去40年の中で最も成功した設計はますます似通って来ている。失敗した設計のほとんどは、出資した企業が商業的に失敗したのであり、命令セットが技術的に劣っていたからではない。よって、よく設計されたオープンな命令セットが、十分に確立された設計原理を用いて設計されれば、多くのベンダーが長期間に渡ってサポートする気になるだろう[10]

先行のオープンなISAのほとんどは、ライセンスにGNU General Public License(GPL)を使用することで、ユーザーにコピーや利用するにあたって、実装をオープンにするようにさせていた。

他の学術目的の設計とは異なり、RISC-V命令セットは、研究内容の説明のための簡略化に最適化するのではなく、実用的なコンピュータに最適化した簡略化にすると宣言されている。この簡略化はコンピュータの速度向上を目的とするが、コストや電力使用量も削減される。この命令セットに含まれるものは、ロード/ストア アーキテクチャ、CPU内部のマルチプレクサを単純化するビット・パターン、簡略化された標準に基いた浮動小数点、アーキテクチャに中立な設計、および、最上位の符号ビットを固定とすることによる符号拡張の高速化である。符号拡張は、しばしば、クリティカル・タイミング・パスになると言われている。

命令セットは、幅広い層のユーザー向けに設計されている。32-、64-、128-ビットの3つのワード幅、様々なサブセットをサポートする。各サブセットの定義は、3つワード幅間で、わずかに変化する。サブセットは、小さな組み込みシステムパーソナルコンピュータ、ベクタプロセッサを持つスーパーコンピュータ、および、ウェアハウス・スケールのラック・マウント型並列計算マシンをサポートする。

命令セットは、可変長幅で、拡張可能であるため、より多くのエンコード・ビットが追加可能である。ISAには128ビットまで拡張されたバージョンまで予約されている。これは、過去60年の業界の歴史の中で、過去の命令セットでメモリアドレス空間が不足していたことが原因で、取り返しのつかない失敗が起きたことを反映している。2016年現在、128-ビットのISAは、その巨大なメモリシステムに関する知見がほとんどないために、意図的に未定義にされている。

しかしながら、RISC-Vは、設計者の学術利用もサポートしている。整数命令のサブセットは単純であるため、学生が初歩的な練習をすることができ、整数命令サブセットはシンプルなISAであるため、ソフトウェアによる研究用マシンの制御にも利用できる。可変長のISAは、学生の練習と研究のための拡張を可能にする[5]。別定義の特権命令セットを用いれば、OSの研究を、コンパイラを再設計せずにサポートできる[22]。RISC-Vのオープンな知的財産によって、設計を公開したり、再利用したり、修正が可能になる[5]

ソフトウェア[編集]

新しい命令セットを作る際に一般的な問題点は、CPUの設計とソフトウェアが存在しないことである[要出典]が、RISC-Vのウェブサイトには、オペレーティングシステムをサポートするために、ユーザーモード命令の仕様と、汎用目的の特権命令セットの予備仕様が用意されている[23]

オープンソースのCPU設計としては、64-bit Berkeley Out of Order Machine(BOOM)[24]、64-bit Rocket[25]、Berkeleyによる5種類の32-bit Sodor CPUの設計[26]、Clifford Wolfによるpicorv32、Syntacoreによるscr1、ETH Zürich / University of BolognaによるPULPino(Riscy and Zero-Riscy)[27]などが存在する。第3世代のSodor CPUは小型の組み込みCPUに適しているように考えられている。Rocketは小型の低消費電力の個人用中型コンピュータに適している可能性がある。BOOMはRocket向けに作られた命令の多くを使用しており、パーソナルコンピュータ、スーパーコンピュータ、データセンタースケールのコンピュータに適している可能性がある。picorvおよび scr1は32ビットのマイクロコントローラ・ユニット(microcontroller unit; MCU)クラスのRV32IMCのVerilog実装である。PULPinoのコアは、マイクロコントローラ(Zero-Riscy)または組み込み信号処理のためのカスタムDSP拡張を搭載したより強力なRV32IMFC ISA向けの、シンプルなPV32IMC ISAを実装している。

設計用ソフトウェアには設計コンパイラのChisel[28]があり、デバイスで使用するためのVerilogでの設計工数を削減することができる。ウェブサイトでは、コアの実装をテストするための検証用データが公開されている。

現在利用可能なRISC-Vソフトウェアのツールとしては、GNU Compiler Collection(GCC)ツールチェーン(GDBおよびデバッカーを含む)、LLVMツールチェーン、OVPsim英語版 simulator(およびRISC-V Fast Processor Modelsのライブラリ)、Spike simulator、およびQEMU内のシミュレータが存在する。

オペレーティング・システムのサポートも、Linuxカーネル、FreeBSDNetBSDに存在しているが、特権モード命令は2019年3月14日 (2019-03-14)現在は標準化されていない[29]ため、暫定的な対応となっている。RISC-Vアーキテクチャへの予備のFreeBSD移植版は2016年2月にアップストリームに反映され、FreeBSD 11.0で公開された[30][31]Debianへのポート[32]およびFedoraへのポート[33]はすでに安定している。Das U-Bootへのポートが存在する[34]。UEFI仕様v2.7のRISC-Vバインディングおよびtianocoreへのポートは、HPEのエンジニアによって完了しており、アップストリームに反映されることが期待されている。seL4マイクロカーネルのポートも存在する[35][36]ウェブブラウザ上でRISC-V Linuxが動作するシミュレータシステムがJavaScriptで書かれている[37]

設計[編集]

ハードウェアコアはRocket Core Generatorを使用して生成できる[38]

脚注[編集]

  1. ^ Patterson, David A.; Waterman, Andrew. The RISC-V Reader: An Open Architecture Atlas (1st ed.). Strawberry Canyon. ISBN 978-0999249109. )
  2. ^ Contributors”. riscv.org. Regents of the University of California. 2014年8月25日閲覧。
  3. ^ a b “グーグル、オラクル、HPEなどがRISCプロセッサのオープンな命令セットを開発する「RISC-V」参加へ”. @IT. (2016年1月5日). http://www.atmarkit.co.jp/ait/articles/1601/05/news090.html 2016年10月25日閲覧。 
  4. ^ Rocket Core Generator”. RISC-V. Regents of the University of California. 2014年10月1日閲覧。
  5. ^ a b c d e f g The RISC-V Instruction Set Manual, Volume I: Base User-Level ISA version 2.2”. University of California, Berkeley. 2017年5月25日閲覧。
  6. ^ ucb-bar/riscv-sodor”. GitHub Inc.. Regents of the University of California. 2015年2月12日閲覧。
  7. ^ SHAKTI Processor Project”. Indian Institute of Technology Madras. 2014年9月15日閲覧。
  8. ^ CS 152 Laboratory Exercise 3”. UC Berkeley. Regents of the University of California. 2015年2月12日閲覧。
  9. ^ Demerjian, C. (2013年). “A long look at how ARM licenses chips: Part 1”. SemiAccurate. 2018年7月21日閲覧。How ARM licenses it’s IP for production: Part 2”. 2018年7月21日閲覧。
  10. ^ a b c d Instruction Sets Should be Free”. U.C. Berkeley Technical Reports. Regents of the University of California. 2016年11月15日閲覧。
  11. ^ Patterson, David A; Ditzel, David R. (October 1980). “The Case for the Reduced Instruction Set Computer”. ACM SIGARCH Computer Architecture News 8 (6): 25. doi:10.1145/641914.641917. http://dl.acm.org/citation.cfm?id=641917. 
  12. ^ Amber ARM-compatible core”. OpenCores. OpenCores. 2014年8月26日閲覧。
  13. ^ ARM4U”. OpenCores. OpenCores. 2014年8月26日閲覧。
  14. ^ Patterson, David A.; Sequin, Carlo H. (1981). “RISC I: A reduced instruction set VLSI computer”. ISCA: 443-458. 
  15. ^ Katevenis, Manolis G.H.; Sherburne, Jr., Robert W.; Patterson, David A. (August 1983). “The RISC II micro-architecture”. Proceedings VLSI 83 Conference. 
  16. ^ Ungar, David; Blau, Ricki; Foley, Peter; Samples, Dain; Patterson, David (1984). “Architecture of SOAR: Smalltalk on a RISC”. ISCA: 188–197. 
  17. ^ Lee, David D.; Kong, Shing I.; Hill, Mark D.; Taylor, George S.; Hodges, David A.; Katz, Randy H.; Patterson, David A. (December 1989). “A VLSI chip set for a multiprocessor workstation–Part I: An RISC microprocessor with coprocessor interface and support for symbolic processing.”. IEEE JSSC 24 (6): 1688–1698. 
  18. ^ Finley, Klint. “Turing Prize Winners Paved Way to Smartphone Chips”. Wired.com. 2018年3月21日閲覧。
  19. ^ AndeStar Architecture”. Andes Technology. 2018年7月19日閲覧。 “Andes is a founding member of the RISC-V Foundation”
  20. ^ Google, Oracle and HP Join RISC-V”. EE Times. UBM. 2016年2月11日閲覧。
  21. ^ Members at a Glance”. riscv.org. 2018年1月2日閲覧。
  22. ^ Draft Privileged ISA Specification 1.9”. RISC- V. RISC-V Foundation. 2016年8月30日閲覧。
  23. ^ RISC-V The Free and Open Instruction Set”. RISC-V Foundation. 2016年11月11日閲覧。
  24. ^ Celio, Christopher. “riscv-boom”. GitHub. Regents of the University of California. 2016年11月11日閲覧。
  25. ^ Asanović, Krste. “rocket-chip”. GitHub. The RISC-V Foundation. 2016年11月11日閲覧。
  26. ^ Celio, Christopher. “riscv-sodor”. GitHub. Regents of the University of California. 2016年11月11日閲覧。
  27. ^ Traber, Andreas. “PULP: Parallel Ultra Low Power”. ETH Zurich, University of Bologna. 2016年8月5日閲覧。
  28. ^ Chisel: Constructing Hardware in a Scala Embedded Language”. UC Berkeley. Regents of the University of California. 2015年2月12日閲覧。
  29. ^ Waterman, Andrew. “Draft Privileged ISA Specification 1.9”. RISC-V. RISC-V Foundation. 2016年8月30日閲覧。
  30. ^ "FreeBSD Wiki: RISC-V".
  31. ^ "FreeBSD Foundation: Initial FreeBSD RISC-V Architecture Port Committed".
  32. ^ Montezelo, Manuel. “Debian GNU/Linux port for RISC-V 64”. Google Groups. Google. 2018年7月19日閲覧。
  33. ^ Architectures/RISC-V”. Fedora Wiki. Red Hat. 2016年9月26日閲覧。
  34. ^ Begari, Padmarao. “U-Boot port on RISC-V 32-bit is available”. Google Groups. Microsemi. 2017年2月15日閲覧。
  35. ^ Almatary, Hesham. “RISC-V, seL4”. seL4 Documentation. Commonwealth Scientific and Industrial Research Organisation (CSIRO). 2018年7月13日閲覧。
  36. ^ Almatary, Hesham. “heshamelmatary”. GitHub. 2018年7月13日閲覧。
  37. ^ “[JavaScript ANGEL is a Javascript RISC-V ISA (RV64) Simulator that runs riscv-linux with BusyBox.]”. RISCV.org. 2019年1月17日閲覧。
  38. ^ RISC-V[出典無効]

関連項目[編集]

公開資料、解説書[編集]

  • RISC-V Publications
  • David Patterson & John Hennessy: "Computer Organization and Design (RISC-V Edition)", Morgan Kaufmann, ISBN 978-0128122754 (Apr. 27th, 2017).
  • David Patterson & Andrew Waterman: "RISC-V reader: an open architecture atlas", Strawberry Canyon, ISBN 978-0-9992491-1-6 (Sep. 10th, 2017).
  • John Hennessy & David Patterson: "Computer Architecture (6th Edition)", Morgan Kaufmann, ISBN 978-0128119051 (Dec, 7th, 2017).
  • デイビッド・パターソン、アンドリュー・ウォーターマン、成田 光彰 (訳):「RISC-V原典 オープンアーキテクチャのススメ」、日経BP社、ISBN 978-4822292812(2018年10月18日)。

外部リンク[編集]