3 ポイント 投稿者 GN⁺ 2023-11-05 | 1件のコメント | WhatsAppで共有
  • AMD MicroBlaze Vは、AMD adaptive SoCおよびFPGAに組み込んで使用するソフトコアRISC-VプロセッサIPで、VivadoおよびVitisの設計フローに統合されている
  • 既存のMicroBlaze設計とのハードウェア互換性を維持しつつ、RISC-V ISAベースのソフトウェア移植性とオープンソースエコシステムの活用を狙っている
  • RV32I・RV64Iの基本命令セットを構成でき、M/A/F/C拡張とZBa, ZBB, ZBc, ZBsビット操作拡張を選択可能
  • マイクロコントローラからアプリケーションプロセッサまでプリセット構成が用意され、4種類のパイプラインオプションとdual-core lockstep、TMRなどの安全機能を含む
  • Vivado Design SuiteがサポートするすべてのAMD adaptive SoCまたはFPGAデバイスを追加費用なしでターゲットにできるが、RV64IとMemory Protection UnitはEarly Accessで、Memory Management Unitはロードマップ段階にある

AMD adaptive SoCとFPGA向けRISC-Vソフトプロセッサ

  • AMD MicroBlaze Vは、AMD adaptive SoCおよびFPGA向けのソフトコアRISC-VプロセッサIP
  • RISC-V命令セットアーキテクチャ(ISA)を基盤とし、組み込みシステムアプリケーションに合わせてモジュール式に構成可能なアーキテクチャを提供する
  • 開発者は、Vivado Design SuiteがサポートするAMD adaptive SoCまたはFPGAデバイスにMicroBlaze Vを追加費用なしでターゲットできる
  • RISC-Vは、非営利団体のRISC-V Foundationが管理するオープンソース標準ISAであり、AMDは2020年からメンバーとなっている

RISC-V ISA構成と移植性

  • MicroBlaze Vは、業界全体のソフトウェアおよびソリューションエコシステムに支えられたオープンソースISAを基盤とする
  • 設計目標は、既存のMicroBlazeプロセッサ設計のハードウェア移行を容易にし、RISC-V設計のソフトウェア移植性を高めることにある
  • 構成可能なISAサポート範囲:
    • RV32IおよびRV64I Base Integer Instruction Set
    • 乗算・除算のためのM拡張
    • 原子的命令のためのA拡張
    • 浮動小数点のためのF拡張
    • コード圧縮のためのC拡張
    • ビット操作のためのZBa, ZBB, ZBc, ZBs拡張
  • コード圧縮機能は、コードサイズを縮小し、設計メモリを節約するために使われる

アーキテクチャ、性能、安全機能

  • マイクロコントローラからアプリケーションプロセッサまで、さまざまなアプリケーション範囲に合わせたプリセット構成を選択できる
  • 面積または性能の最適化に向けて4種類のパイプラインオプションを提供する
  • 安全性が重要なシステム向けの選択式安全機能も含まれる
    • Dual-core lockstep

      • Triple modular redundancy(TMR)

Vivado・Vitisベースの設計フローと周辺機器

  • MicroBlaze Vは、Vivado Design SuiteおよびVitis software toolsに統合された設計フローを提供する
  • Vivado設計ツールがサポートするすべてのAMD adaptive SoCとFPGAに対応する
  • グラフィカルユーザーインターフェイス(GUI)とコマンドラインインターフェイス(CLI)で利用できる
  • 最適化されたIPを活用し、プログラマブルロジック内に統合MicroBlaze Vプロセッササブシステムを配置でき、システム構成要素数と開発時間の削減を目指す
  • ドラッグ&ドロップ方式で追加できる主な周辺機器カテゴリ:
    • General Purpose: Multichannel DMA, Streaming FIFO, Timer / Watchdog, Mutex / Mailbox
    • I/O: UART, USB 2.0, SPI, GPIO, PWM
    • Video: HDMI Camera/Display Interface, MIPI-CSI, MIPI-DSI, Video DMA
    • Memory: DDR, Quad SPI, SDRAM
    • Networking: Ethernet Subsystem, Controller Area Network

例示構成、文書、サポート状況

  • 例示設計構成は、MicroBlaze V MicrocontrollerMicroBlaze V with Memory Protection Unitの2種類
  • MicroBlaze V Microcontroller構成

    • 32-bit Processor Core RV32IMAFC
    • JTAG Debug Interface
    • Tightly Coupled Local Memory
    • SPI controller, I2C Controller, UART
    • Interrupt Controller, Timer, GPIO
  • MicroBlaze V with Memory Protection Unit構成

    • Microcontroller Preset Blocks全体
    • Instruction Cache
    • Memory Protection Unit

      • Data Cache
      • Memory Controller
  • サポート文書とリソース

  • サポート状況

    • Microcontroller configurationはProductionとして提供される
    • AMD MicroBlaze VのRV64IおよびMemory Protection UnitはEarly Access
    • AMD MicroBlaze VのMemory Management Unitはロードマップにある

1件のコメント

 
GN⁺ 2023-11-05
Hacker Newsの意見
  • AMDが最近 Xilinxを買収したことを覚えていないと混乱するかもしれない
    今後、新しいXilinx製品にAMDの名前が付くことが増える可能性が高い

    • ランダムな新製品と見るのは難しい。Xilinx MicroBlazeは20年以上前からある技術で、FPGA向けに開発された初期の「本物の」ソフトコアの1つだった
      Intel側の対応物はAltera NIOS IIと考えればよい
  • Redditのコメント[1]によると、これは既存の MicroBlaze RTL の前段に RISC-V命令デコーダ を付けたもののようだという
    「最高のRISC-Vコアを作ろう」という観点では筋が通らないように見えるが、Xilinx/AMDの目標はもともとそういうものではなかった
    MicroBlazeは、退屈なニッチに収まる退屈なインオーダー実行RISC CPUの好例で、FPGAベンダーにとってソフトコアは半分は客寄せ商品だ。シリコンの販売には役立つが、それ自体で儲かるものではない。性能を左右するFPGA領域というより「統合のための接着剤」に近い技術なので、「十分に良い」ならそれで十分だ
    AMDが本当にMicroBlaze RTLを再利用するなら、既存のファームウェア(コア、FPU、デバッグ、周辺機器など)とソフトウェア(HAL、コンパイラ、ドライバ)を維持できる。供給側にとっても、新しいMicroBlazeコアへ苦痛なく移行したいユーザーにとっても非常に魅力的だ
    1: https://old.reddit.com/r/FPGA/comments/17mdcyt/microblaze_go...

    • そのRedditユーザーのカルマは-5だ。そして単純な RISC-Vコア をゼロから実装するのに数日で済む状況では、そのアイデアはほとんど意味をなさない
      その情報に頼るつもりはない
      ただし既存のMicroBlazeと同じ外部インターフェースを持っているので、ハードウェアの観点では既存設計にそのまま差し込める代替品ではある
    • FPGAベンダーにとってソフトコアが客寄せ商品だというのは正しい。こうした イネーブリング技術 はそれ自体で儲からないため、ハードウェア企業では価値あるものとして扱われない
      だからXilinxとAlteraの億万長者CEOたちは、Jensen HuangがNvidiaのソフトウェアスタックに継続的に資金を注ぎ込んでいるのを聞くと、残念そうに首を振るのだ。いつか本当の価値がどこにあるのか学ぶだろう
  • この発表が RISC-V にとってどれほど重要なのか説明できる?

    • 他の主要FPGAメーカーは、すでに数年前から自社独自命令セットのコアの代替として、公式サポート付きの RISC-Vコア を提供し始めていた
      もちろんGitHub上のサードパーティ製コアも多く使われているが、IDEやツールに公式に統合され、サポートされることは多くの顧客にとって意味がある
      MicroSemiは2017年からRISC-Vソフトコアを提供し、2020年末からはPolarFire SoCのようなハードコアも提供していた。例えば新しいBeagleBoard FireやIcicleなどがある
      Latticeは2020年6月ごろに初の公式RISC-Vソフトコアを発表し、2019年12月にはSiFiveとの協業を発表しており、2021年半ばには800 LUTコアのような改良版も出した
      Intelは2021年10月にNios Vを導入した
    • MicroBlazeは、RISC-Vが積極的に侵食している ゲート数規模 にあったコアだった
      TensilicaやARCのようなものも、この領域で多くの付加価値を失った。実際にMicroBlazeへカーネルをポーティングした立場から見ると、おおよそ2万ゲート規模の古典的なパイプラインRISCで、MIPSとSH4の中間あたりだ
      今回の発表で最も興味深いのは、AMD/Xilinxが新しい名前を作って既存のMicroBlaze更新を継続的にサポートする代わりに、商標付きの「MicroBlaze」という用語そのものを再定義するほど深く踏み込んだ点だ
    • 以前のSiFiveにはArtix-7に入るRV32コアがあったが、かなり基本的なものだった
      入出力はばらばらで、ボード搭載DRAMも使えなかった。Artix-7で公式サポートされる RV32ソフトコア が見られるなら素晴らしいと思う
      以前MicroBlazeをかなり問題なく使ったことがあるが、非常にクローズドだったので、テストや教育以外で使おうとは思わなかった。RISC-Vの熱烈な支持者ではないが、この分野にはよく合っている。「すでに投資しているかもしれない命令セットを使うツールを提供し、そのツールチェーンまで囲い込もうとはしない」という形だからだ
      AMD/Xilinxが命令セットより下の部分で囲い込むのは、ある程度受け入れられる。いずれにせよFPGAを買うにせよ、いつか出るかもしれないカタログ部品を買うにせよ、ハードウェア費用を払う可能性が高いからだ
    • Xilinxはかなり大きなFPGAメーカーで、MicroBlazeは TMR を含む耐故障機能をかなりうまく提供している
      RISC-VでTMR自体が新しいわけではないが、すでにMicroBlazeを使っている多くのプロジェクトや、これからMicroBlazeを使いたいプロジェクトが、今後RISC-Vを使えるようになるという意味がある
    • マイクロコントローラでありながら リアルタイムCPU としても動作できる
      RISC-Vはすでにその市場でかなり人気がある
  • MicroBlaze Vの用途が、例えばSERV https://serv.readthedocs.io/en/latest/servant.html と比べてどうなのか気になる
    つまり、チップメーカーのお墨付き以外でMicroBlaze Vがもたらす唯一の利点は速度のように見える。FPGA CPUは普通、それほど時間に敏感でない作業に使うのではないだろうか? 高速で時間に敏感な処理は、オンチップI/Oインターフェースとともに FPGAファブリック が担うのが目的だと思う

    • 要点は ツールとサポート だ。RISC-Vソフトコアを自分でいじり回したいのではなく、ただ動いて、実際に気にしているものとすでにうまく接続されていてほしいのだ
      MicroBlazeは、さまざまな設定オプションと周辺機器を選んでドラッグ&ドロップすることで、文字通り自分のソフトコアを構成できるようにしてくれる。ユーザーアプリケーション向けSDKや、問題の原因を見つけるためのデバッグツールも含まれる
      SERVで開発すると、ツールの成熟度が低いという理由だけでも、開発時間が数桁長くなっても驚かない
  • 新しいソフトコアが出るのはいいが、わざわざ名前空間を汚す必要があるのかとは思う
    MicroBlazeはすでに誰かが検索しうるアーキテクチャ名だ
    普通にAMDcoreVみたいな呼び方でよかったのでは

    • その通り。MicroBlazeはAMDが所有するアーキテクチャ名で、記事によるとこのコアはそれと互換性がある

      It allows developers to leverage the open-source RISC-V software ecosystem, is hardware compatible with the classic MicroBlaze processor

    • HDLから見たインターフェースは同じ。一方でソフトウェア側では、最も強力なエコシステムへ急速に成長しているRISC-V命令セット
      再コンパイルするだけでよく、今回は貧弱で独占的なカスタムの低品質ツールを扱う必要がなく、gcc、binutils、llvmのような信頼できる業界標準ツールを使える
    • これは新しいXilinx MicroBlazeだ。AVRに似た命令セットからRV32へ移行したものだ
    • AMDがXilinx買収によって所有することになった、あのMicroBlazeアーキテクチャのことではないのか?
    • それでも接尾辞なしでそのまま使うよりは、MicroBlaze Vなのでまだましではある
  • PSPやMEに相当するものは入っているのか?安全でなくパッチも当てられない怪しいブラックボックスCPUにはもううんざりだ

  • コア自体はオープンソースなのか?

    • そうではない可能性が高いが、AMDはどのAMD(Xilinx)FPGAでも無料で使えると言っていた
      使用料が必要だったなら、無料の代替があるのでこの発表に関心はなかったはずだ
      このコアはXilinx FPGAのリソースを効率よく使うよう十分に最適化されていると見てよく、それが代替に対する利点である可能性が高い
    • オープンソースライセンスではないかもしれないが、以前のMicroBlazeコアのソースコードは開発キットに含まれており、軽く難読化されていた
      ソースコードのコメントすら削除されていなかった
  • こうしたRISC-Vソフトコアを一目で比較できる概要があるといい
    オープンソースかどうか、CoreMarkスコアがどの程度か、サイズはどれくらいか、といったものだ
    neorv、serv、vexrisc、nios v、microblaze vなど

  • これを触ってみられる開発キットはある?どう始めればいい?

  • これは第一歩で、良い兆候だ
    ただ、32ビットコアよりは64ビットコアだったらよかった。64ビットRISC-Vアセンブリコードのパスを書けば、デスクトップ、サーバー、組み込みで実際に再利用できるからだ

    • 「第一歩」ではない。すでにいくつかある歩みの一つだ
      64ビットコアを望むなら、対象市場に属していないのだと思う
      64ビットRISC-Vアセンブリをデスクトップ、サーバー、組み込みで再利用するというのも現実的ではない。デスクトップ・サーバーは事実上64ビット専用で、組み込みは大半が32ビットコアなので重なる部分は多くない
      32ビットと64ビットの違いだけでなく、システムの複雑さ、ブート手順、外部とのやり取りの方法など、プログラミング環境も大きく異なる
      要するに、対象デバイスを選び、それに合わせてコーディングする必要がある。複数種類のデバイス間で簡単に移植したいなら、アセンブリではなく別の言語で書くべきだ