$30 off During Our Annual Pro Sale. View Details »

試しながら学ぶ オープンソースプロセッサ RISC-V の世界

msyksphinz
September 12, 2018

試しながら学ぶ オープンソースプロセッサ RISC-V の世界

msyksphinz

September 12, 2018
Tweet

More Decks by msyksphinz

Other Decks in Technology

Transcript

  1. 試しながら学ぶ オープンソースプロセッサ RISC-V の世界 FPGA開発日記 著者 @msyksphinz_dev http://msyksphinz.hatenablog.com 2018年09月12日 Design

    Solution Forum 2018 D-4 13:30~14:10
  2. 今回の発表について RISC-Vとは何となく聞いたことがあり、何となく理解している。 でも、詳細はなんだか良く分からない?という人をターゲットに。 RISC-V Foundation “RISC-V”の概要と それを支える人々・技術 RISC-Vを導入する メリット・デメリット “RISC-V”の仕様を

    読みながら シミュレータを作った “RISC-V”はハードウェア 設計の常識を変えるか?
  3. “RISC-V”の概要と それを支える人々・技術 RISC-V を支える技術/人々 オープンソースハードウェアを支えるコミュニティ ※ こんな本は出ません 世界を徐々に変えつつある、 オープンソースハードウェアを支える人々

  4. RISC-Vとは • カリフォルニア大学バークレイ校(UCB)が2011年から公開している新しい命 令セットアーキテクチャ • シンプルかつオープン、しかしLinuxが動くまでにはしっかりしている • かつ、自由にカスタマイズ可能 • RISC-Vの仕様を決定する非営利団体”RISC-V

    Foundation” • GoogleやNVIDIAなどがメンバーに加入し注目を浴びる • 2018年9月現在で加盟団体・企業は150に迫る 1. RISC-Vの概要 2. RISC-V Pros Cons 3. RISC-V Sim 4. オープンHWの将来
  5. RISC-V発展の歴史 2011 2012 2013 2014 2015 2016 2017 RISC-V Processor

    Raven-1 7th RISC-V Workshop 6th RISC-V Workshop RISC-V Processor Raven-2 RISC-V Processor Raven-3 5th RISC-V Workshop 4th RISC-V Workshop 3th RISC-V Workshop 1th RISC-V Workshop 2th RISC-V Workshop User-Level ISA Ver. 1.0 User-Level ISA Ver. 2.0 User-Level ISA Ver. 2.1 User-Level ISA Ver. 2.2 Privileged ISA Ver. 1.7 Privileged ISA Ver. 1.9 Privileged ISA Ver. 1.10 世界発の商用 RISC-Vボード 研究チップの制御 プロセッサとして利用 ヘネパタ第6版は RISC-Vで刷新 パタヘネのRISC-V 版が登場 約半年に1回の頻度で Workshop開催 8th RISC-V Workshop in Barcelona RISC-V Day in Shanghai 9th RISC-V Workshop in Chennai RISC-V Day in Tokyo RISC-V Day in MICRO51 RISC-V Summit in Santa Clara Linuxが動作す るRISC-Vボード 2018 ◼ 2015年から定期的にWorkshopを開催 ◼ トップカンファレンスにRISC-Vネタで 通している。 ◼ パタヘネ・ヘネパタはRISC-Vに移行 ◼ 2017年/2018年に日本でイベント開催 1. RISC-Vの概要 2. RISC-V Pros Cons 3. RISC-V Sim 4. オープンHWの将来
  6. 気づかぬ間に浸透しています “RISC-V” According to the LinkedIn profile, work on the

    Exynos 9820 began in January this year, and the Samsung engineer appears to have been working on a 5G RF chip based on the RISC-V architecture ever since May 2017, which could reinforce a 2019 release for the 5G smartphones. (https://www.notebookcheck.net/Samsung-Exynos-9820-SoC-and-5G-RF-chips-already-in-the- works.295886.0.html) WD、同社製品搭載のプロセッサ/コントローラなどをRISC-Vへ移行 (https://pc.watch.impress.co.jp/docs/news/1094891.html) NVIDIA gave a presentation about how its proprietary Falcon (Fast Logic CONtroller) core will be replaced by RISC-V cores. (https://www.electronicdesign.com/industrial-automation/rise-risc-v-display-workshop) Internal Project to demonstrate ability to easily develop custom RISC-V implementation by leveraging Rocket Chip. (https://content.riscv.org/wp-content/uploads/2018/05/13.15-13.30-matt-Cockrell.pdf) BSC is promoting the adoption of RISC-V as a key partner of the European Processor Initiative, the consortium to design and develop Europe’s low-power processors and related technologies for extreme- scale, high-performance computing, which will be funded by the European Commission under the Horizon 2020 program. (https://insidehpc.com/2018/05/bsc-host-risc-v-workshop-road- european-processor-initiative/) 1. RISC-Vの概要 2. RISC-V Pros Cons 3. RISC-V Sim 4. オープンHWの将来
  7. “RISC-V 命令セットアーキテクチャ” を支えるエコシステム RISC-V Foundation Working Group GCC Binutils LLVM

    Linux QEMU ISS BOOM Rocket- Chip Freedom SoC HiFive1 HiFive Unleashed ボード・ プラットフォーム SIMD拡張 Privileged Spec セキュリティ メモリモデル ソフトウェア ツールチェイン Board of Directorsを中心に、ISAの各分野でWorking Groupが存在している。 … Linux パッケージメンテナ 有志によるOS 移植 Foundation 加入 メンバによるメンテ Foundation 加入 メンバによる開発 1. RISC-Vの概要 2. RISC-V Pros Cons 3. RISC-V Sim 4. オープンHWの将来 Board of Directors RISC-V ISA Manual
  8. RISC-Vを支えるソフトウェアエコシステム ◼各種ツールチェインはほぼ整備完了 ◼ GCC 7.1でRISC-VがMainstreamに取り込まれた ◼ LLVM/ClangのRISC-Vサポートが lowRISCプロジェクトにより進行中 ◼ LinuxカーネルはVersion

    4.15に対応済み ◼ 各種LinuxディストリビューションがRISC-Vのサポート進行中 ◼ RedHat / Debian ◼ FreeBSD : RISC-Vのサポート進行中 ◼ QEMU v2.12 よりRISC-V向けビルドをサポート ◼RISC-Vの仕様に準拠しているかを試す コンプライアンステスト ◼ これらのテストがPassしていれば、だいたいOK • riscv-tests (https://github.com/riscv/riscv-tests) • riscv-torture (https://github.com/ucb-bar/riscv-torture) 1. RISC-Vの概要 2. RISC-V Pros Cons 3. RISC-V Sim 4. オープンHWの将来
  9. 例: Debian GNU/LinuxのRISC-V対応 https://content.riscv.org/wp-content/uploads/2018/05/09.25-09.55-tate-of-RISC-V-Software-RISC-V-Workshop-at-Barcelona-May-2018-1.pdf 1. RISC-Vの概要 2. RISC-V Pros Cons

    3. RISC-V Sim 4. オープンHWの将来 Debian GNU/Linux is imported and “apt-get” worked!
  10. ハードウェアエコシステム : SiFiveのデザイン 実チップを使う FPGAを使う ZC706 ZedBoard Rocket-Chip BOOM Freedom-SoC

    HiFive1 HiFive Unleashed 高速・高性能 4+1Core RV64 1GHz Arduino RV32 320MHz カスタマイズ可能 1. RISC-Vの概要 2. RISC-V Pros Cons 3. RISC-V Sim 4. オープンHWの将来
  11. FPGAを使うメリット RISC-Vデザインをオリジナルカスタマイズ ◼ カスタム命令を追加する ◼ 不要な機能を削除してダイエット ◼ 自社のIPをアクセラレータとして接続する (RoCC :

    Rocket Custom Coprocessor) ◼ オリジナルカスタマイズの例:RISC-V+ディープラーニング CMD RESP RESP CMD Rocket Core L1 D-cache Accelerator CMD RESP External H_addr MAD V_addr Chiselで記述 図. Rocket-Chip on RISC-V上でMNISTを実行 Acceleration無し Acceleration IP接続 1. RISC-Vの概要 2. RISC-V Pros Cons 3. RISC-V Sim 4. オープンHWの将来
  12. RISC-Vが できること できないこと

  13. メリット RISC-Vを導入することによる メリット・デメリット RISC-Vを導入すれば、すべてが解決するなどと言うつもりはありません。 1. RISC-Vの概要 2. RISC-V Pros Cons

    3. RISC-V Sim 4. オープンHWの将来 企業が作ったアーキテクチャ ではないので、企業の 経営状態に左右されない ◼ 注目されている分、メリット・デメリットがある。 ◼ 冷静に分析し、「自社にとってどのようなメリットがあるのか?」を解析する必要がある。 がむしゃらに”RISC-V”と叫べば良いわけではありません デメリット RISC-Vはカスタマイズが可能 RISC-Vは商用プロセッサほど 実装技術が最適化されていない ソフトウェアエコシステムが ある程度用意されている RISC-Vは ISAの断片化の恐れがある 一社で開発される実装は仕様が 統一されている RISC-Vはライセンス料の 問題を削減できる 歴史あるアーキテクチャは プラットフォームも豊富
  14. RISC-Vが解決すること、しないこと ライセンス料・特許の問題 例: IBM産業スパイ事件 Intelはx86命令に対して膨大な特許を持っている 自社でCPUを独自開発して、その特許を掻い潜れるか? → オープンソースISAに乗った方が特許の問題を解決できる ライセンス料・特許の問題 をすべて解決できるか?→

    No マイクロアーキテクチャ(実装)の特許は解決できない。 1. RISC-Vの概要 2. RISC-V Pros Cons 3. RISC-V Sim 4. オープンHWの将来
  15. RISC-Vを導入することによるメリットを しっかり考えること • 自社独自コアを持っているが、メンテナンスに手が回らない場合 • ソフトウェアエコシステムを含めてRISC-Vを導入することによりコストを削減する • 独自開発したことによる特許の問題が心配な場合 • 本当に力を入れたいのは、CPUコアではなく別のところにある場合

    • 補助プロセッサとしてRISC-Vを使用するという選択肢 • 制御プロセッサの設計とメンテナンスに必要なコストを最小化する。 • 開発しているチップがプロセッサメインで性能が要求される場合 • 余力あればRISC-Vプロセッサを独自に開発するという選択肢がある • 特許に関する問題を解決することができれば。 1. RISC-Vの概要 2. RISC-V Pros Cons 3. RISC-V Sim 4. オープンHWの将来 いろんな手段はありますが 用量・用法を守ることが肝要です
  16. シミュレータを作って分かる RISC-Vの「すごい」ところ もっと良く分かる RISC-V

  17. Linuxがブートする RISC-Vシミュレータを作る • RISC-VのISAをしっかり理解したい • マニュアルを読むだけでは何が何だか分からないことが多い。 RISC-Vシミュレータを 自作する 目標1. コンプライアンステストをPassさせる

    目標2. Linuxをブートさせる 使用したRISC-V Linux : Freedom-U-SDKで公開されているLinuxバイナリ buildrootで1つのバイナリにまとめられている。Kernel v4.15 https://github.com/sifive/freedom-u-sdk で公開されており、ビルドできます。 ※ 上記に限らず、RISC-V向けにビルドしたLinuxディストリビューションは各種公開されている。 RedHat, Debian, … 今回はディスクイメージが1つにまとめられているので上記を使用。 あるものを理解したいとき、フルスクラッチで自分で 作ってみるの、おすすめです。 1. RISC-Vの概要 2. RISC-V Pros Cons 3. RISC-V Sim 4. オープンHWの将来
  18. RISC-Vの命令セットシミュレータを作った pk (proxy kernel) RISC-V Instruction Set Simulator dtb Device

    Tree Blob Target Program Elf Log Files x86 Host Linux ※ pk(proxy kernel) RISC-Vのプログラムを動かすにあたり、システムコールを代わりに処理してくれる仕組み。 printf()やら、ファイルアクセスなどを代行できる (Linuxの起動には使用しません)。 参考にしたもの RISC-V ISA Spec Manual RISC-V Privileged Manual riscv-isa-sim 実装!! マニュアル見て意味が分からなかっ たら実装を見るのがおすすめ RISC-Vの仕様を、C++の実装 でほぼ忠実に再現してある。 GitHub公開中 : http://github.com/msyksphinz/xxx 1. RISC-Vの概要 2. RISC-V Pros Cons 3. RISC-V Sim 4. オープンHWの将来 Rocket-Chipを含め、多くの RISC-V実装は最初に Device Tree を読み込む
  19. Linuxをブートしながら学んだ RISC-Vのすごいところ(仕様編) • 命令デコードがシンプルだが、C命令(Compressed命令)の理解は必須 • デコーダの設計はかなりシンプルで自動化できる • RISC-Vの真の性能を発揮したいなら、C命令はサポートすべき • スーパバイザに権限を移譲する”Delegation(移譲)”

    • Machine Modeで処理するのが面倒な例外はSupervisor Modeに移譲して動かす • コンテキストスイッチ時にレジスタ退避を簡略化するための仕組み • XS / FSビットフィールドにより、レジスタの書き換え発生を記憶している • mstatusシステムレジスタは過去の実行モードを記憶することが可能 • 例外処理に入る→復帰の処理が割と容易 1. RISC-Vの概要 2. RISC-V Pros Cons 3. RISC-V Sim 4. オープンHWの将来 スーパバイザモード マシンモード 例外発生 移譲 例外処理 例外から戻る ユーザモード スーパバイザモード マシンモード 例外発生 例外受付 動作モード変更 例外処理 例外から戻る ユーザモード 割り込み・例外の移譲を使う場合 割り込み・例外の移譲を使わない場合 こちらも参考になります : https://www.sifive.com/blog/2017/10/23/all-aboard-part-7-entering-and-exiting-the-linux-kernel-on-risc-v/
  20. Linuxをブートしながら学んだ RISC-Vのすごいところ(環境編) • ツールがすべて公開されているので、デバッグが容易 • https://github.com/riscv/riscv-tools を参照のこと • テストセットもすべて公開されている •

    ISAのテストパタン riscv-tests / riscv-torture • ~な高速化技法試してみようかな→ 一旦テストセットで全部リグレッションを動かして確認 1. RISC-Vの概要 2. RISC-V Pros Cons 3. RISC-V Sim 4. オープンHWの将来
  21. RISC-Vを通じて変わる 「ハードウェア設計の常識」

  22. Open-Hardwareの目指すところ • ハードウェア設計・CPUアーキテクチャをオープンに議論 できる環境を構築する • 例: Meltdown / Spectre •

    例: Memory Consistency Model of RISC-V • RISC-Vのメモリコンシステンシモデルのバグを大学が発見 • 2018年はハードウェアを含め、セキュリティ界隈の話が多い • RISC-Vをベースにオープンなセキュリティプラットフォームの 構築を目指すKeystone 多くの人が開発に参加できるように 多くの人が議論に参加できるように ハードウェア開発の参入障壁が下がる ハードウェア開発に関わる人が増える ハードウェア開発者のすそ野が広がる
  23. 実チップ?FPGA?いえいえ、AWS FireSim : RISC-V Implementation on AWS F1 instance 複数FPGAを使って最大1024コアまで動作。

    GitHubで公開されている (https://github.com/firesim) 大規模FPGAの購入にはかなりのコスト高。200~300万円 FPGAを常に手元に置いておく必要がない。 必要な時に必要な分だけコストがかかる。 → コストダウン・参入障壁を下げる一要因になることを期待 FPGA-Accelerated Cycle-Exact Scale-Out System Simulation in the Public Cloud http://iscaconf.org/isca2018/slides/1A3.pdf
  24. AWSを使ってRISC-Vを動かし Linuxをブートする お値段 : f1.2xlarge (Rocket-ChipならばSingle-Core) : 1.65USD/h f1.16xlarge (Rocket-Chipならば8-Core)

    : 13.20USD/h Single使用なら 個人でも何とか… (ちょっと見えにくいけど) AWS F1上でRISC-V Linuxがブート RISC-Vと関係なく、とりあえずAWSインスタンスを 試したいということも可能: AWS FPGAリポジトリ : https://github.com/aws/aws-fpga
  25. とはいえRISC-Vはまだ発展途上 Q. Chisel難しくない? A. 慣れれば何とかなります。 Chiselの文法を覚えるよりも、Scalaをベースと したGeneric Programmingを使いこなす方が ハードウェア技術者に取って大変かもしれない。 Q.

    情報が無さすぎるんだけど A. オープンソースなので自分で参加できます 「Armからの移行ツールが無いんだけど」とか 言う前に、自分で作ってGitHubに公開したら ネ申扱いされること間違いなしです。 少しでも興味があれば、自分で積極的に参加することができます 多くの人が参加すれば、RISC-Vはもっと面白くなります
  26. おまけ

  27. Tokyo 18 October 2018, 慶應義塾大学 Upcoming Events 何かしゃべるかも しれません IEEE

    Micro 51 in Fukuoka Fukuoka 20-24 October 2018 何かしゃべるかも しれません 14, November 2018 テクニカルセッションやります