Upgrade to Pro — share decks privately, control downloads, hide ads and more …

RISC-Vエコシステムを 構成する技術と立役者たち

msyksphinz
October 18, 2018

RISC-Vエコシステムを 構成する技術と立役者たち

msyksphinz

October 18, 2018
Tweet

More Decks by msyksphinz

Other Decks in Technology

Transcript

  1. RISC-Vエコシステムを 構成する技術と立役者たち Introduction of Technologies and People Supporting RISC-V Ecosystem

    RISC-V Day Tokyo 2018 Thursday, 18 October 2018 09:40 - 09:55 FPGA開発日記 著者 @msyksphinz_dev http://msyksphinz.hatenablog.com
  2. RISC-Vをはじめとした Open-Hardwareの目指すところ • ハードウェア設計・CPUアーキテクチャをオープンに 議論できる環境を構築する • 例: Meltdown / Spectre

    • 例: Memory Consistency Model of RISC-V • RISC-Vのメモリコンシステンシモデルのバグを大学が発見 • 2018年はハードウェアを含め、セキュリティ界隈の話が多い • RISC-Vをベースにオープンなセキュリティプラットフォームの 構築を目指すKeystone 多くの人が開発に参加できるように 多くの人が議論に参加できるように ハードウェア開発の参入障壁が下がる ハードウェア開発に関わる人が増える ハードウェア開発者のすそ野が広がる
  3. RISC-Vのオープンソースハードウェアは 半導体業界にとってチャンス • CPUは強者による2強の時代に(x86, Arm) • しかしライセンス費は馬鹿にならず、最先端プロセスは巨大企業しか追従できない • IP, EDA,

    ウェハ製造費, パッケージ費 … • より多くの選択肢が登場することは良いこと。 • 自社の中核になる技術に注力したい。それ以外の部分(SoCや制御CPUなど)にはあまり時間をかけ たくない • 自社独自コアを持っているが、メンテナンスに手が回らない場合 • ソフトウェアエコシステムを含めてRISC-Vを導入することによりコストを削減する • 独自開発したことによる特許の問題が心配な場合 • CPUというSoCの中心部の、実装コストを最小化させる • CPU以外にもチップ内で注力したい部分はたくさんあるはず。 • だったら、CPUはアリモノで早く作って「本当に価値のあるところ」に注力したい
  4. “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 加入 メンバによる開発 Board of Directors RISC-V ISA Manual
  5. 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)
  6. RISC-Vを支えるエンジニアコミュニティ • RISC-Vコミュニティには誰でも参加できる • Google Groups(Mailing List) • 質問すると結構な頻度で返信が来る。 Announcements

    Academic Community Software Developers Hardware Developers ISA Developers Debug • Stack Overflow でもRISC-V Tagが作られている。 • SiFive Forum • SiFiveの製品・仕様についての コミュニティ https://stackoverflow.com/questions/tagged/riscv https://forums.sifive.com https://riscv.org/mailing-lists/
  7. RISC-Vを支えるGitHub Repositories • ソフトウェアツールチェイン・ハードウェアツールチェイン ※ https://riscv.org/software-status, https://riscv.org/risc-v-cores/に詳しくまとめられている riscv-tools riscv-openocd riscv-fesvr

    riscv-gnu-toolchain riscv-isa-sim riscv-opcodes riscv-tests riscv-pk RISC-Vデバッグ用のOpenOCD実装 シミュレーション用のフロントエンドサーバ コンパイラやライブラリなど 命令セットシミュレータ RISC-Vテストパタン RISC-Vのプロキシカーネル https://github.com/riscv/riscv-tools https://github.com/esperantotech/boom-template https://github.com/ucb-bar/project-template
  8. RISC-V Open Ecosystemの凄さ: 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つにまとめられているので上記を使用。
  9. RISC-V Open Ecosystemの凄さ: 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/swimmer_riscv Rocket-Chipを含め、多くの RISC-V実装は最初に Device Tree を読み込む
  10. Linuxをブートしながら学んだRISC-Vのすごいところ ◼ ツールがすべて公開されているので、デバッグが容易 ◼ https://github.com/riscv/riscv-tools を参照のこと ◼ テストセットもすべて公開されている ◼ ISAのテストパタン

    riscv-tests / riscv-torture ◼ ~な高速化技法試してみようかな→ 一旦テストセットで全部リグレッションを動かして確認 ◼ RISC-Vの仕様に準拠しているかを試す コンプライアンステスト ◼ これらのテストがPassしていれば、だいたいOK ◼ riscv-tests (https://github.com/riscv/riscv-tests) ◼ riscv-torture (https://github.com/ucb-bar/riscv-torture)
  11. まとめ: RISC-Vコミュニティは誰でも参加できます • オープンソースのデザインでRISC-Vをトライ • お金が無くてもRISC-Vを試行できる • ハードウェア・ソフトウェアのRISC-V対応は着実に 進んでいる。 •

    いろんな手段が用意されている • FPGAボードを使う : カスタムデザインでゴリゴリに最適化 • 評価ボードを買う : 簡単にアプリケーション評価可能 • 誰にでもチャンスがあります • RISC-Vを使ってみたいけど~が無い!と思ったら、自分でやってみてください。 GitHubに公開したら、それでコミュニティの仲間入りです。 少しでも興味があれば、自分で積極的に参加することができます 多くの人が参加すれば、RISC-Vはもっと面白くなります