RISC-VのASICチップおよび評価ボードとして、SiFiveのHiFive1ボードがすでに世界中で販売されているが、このHiFive1の持つFreedomプラットフォームについてまとめておこう。
そもそもHiFive1のRISC-Vプラットフォームはどのようになっているのだろう。
SiFive Freedomプラットフォームについて
そもそもHiFive1とは何なのか
HiFive1は、SiFive FE310-G000という製品名として定義されている。
The FE310-G000 is the first Freedom E300 SoC, and forms the basis of the HiFive1 developmentboard for the Freedom E300 family.
FE310-G000のブロックダイアグラム
ブロックダイアグラムの左側が、E31 CoreplexというCPUコアの部分になる。 HiFive1のE31 Coreplexは、以下のような構成となっている。
- コア構成 : RV32IMAC (浮動小数点無し)
- 分岐予測 : 40エントリのBranch-Target Buffer(BTB), 128エントリの分岐ヒストリ, 2エントリのReturn Stack Pointer(RAS)
- 整数乗算 : 1サイクルあたり8ビットの乗算、つまり32ビットの計算を4クロックで実行
- 整数除算 : 1ビットあたり1サイクル。計算サイクルは可変
- 命令キャッシュ : 16kB, 2ウェイセットアソシアティブ
- データキャッシュ : 16kB SRAM
- システムマスクROM : 8kB ブートコード、コンフィグレーション文字列、デバッグROMルーチン挿入用
Freedom プラットフォームについて
Freedom プラットフォームには、現在2種類が存在する。 Freedom Unleashedという大規模SoC向けプラットフォームと、Freedom Everywhereというマイコン向けプラットフォームだ。 それぞれのプラットフォームの特徴を比較してみる。
Freedom Unleashed | Freedom Everywhere | |
---|---|---|
コア種類 | U5 Coreplex at 1.6GHz+ | E3 Coreplex |
アーキテクチャ | RV64GC | RV32IMC/RV32EMC |
マルチコア | マルチコア、キャッシュコヒーレンシ | - |
Peripherals | PCIe 3.0, USB3.0, GbE, DDR3/4 | On chip Flash, OTP, SRAM |
プロセス | TSMC 28nm | TSMC 180nm |
OS | Linux | FreeRTOS |
デバッグツール | サポート | サポート |
FPGA | VC707 FPGA Board(Xilinx) | Arty FPGA Board(Xilinx) |
ASIC | - | HiFive1 |
Freedom Unleashed
UNIXベースのSoCプラットフォームを構築するためのプラットフォーム。マシンラーニング、ストレージ、ネットワークなどの用途向けとなっている。
サポートFPGAボード
現在では、VC707 FPGAをサポートしている。開発環境は、githubから入手可能だ。
ブロックダイアグラム
Freedom U500プラットフォームは、1~8コアまでのマルチコアをサポートしている。またキャッシュコヒーレンシをとるためのL2ユニットと、DDR3/4、PCI-Express Gen3.0, Ethernet, USB-3.0などを接続可能だ。
Freedom Everywhere
マイクロコントローラタイプのプラットフォーム。組み込みマイクロプロセッサ、IoT、ウェアラブルなどのマーケット向け。
サポートFPGAボード
現在では、Arty FPGAボードをサポートしている。開発環境は、githubから入手可能だ。 また、ASICチップとして、HiFive1が入手できる。
ブロックダイアグラム
ブロックダイアグラムはHiFive1のものと同一だ。