Syntacore社のRISC-Vチップ SCRファミリについて@ [追記:2018/01/31]
Syntacore社のSCRファミリ
Syntacore社のSCRファミリはRISC-Vを採用したマイクロプロセッサIPである。その用途範囲は組み込み用のMCUコアからSMP をサポートするアプリケーションコアまで幅広い。とりあえず、SCRファミリ中の組み込み用MCUであるSCR1 が無償かつ開発環境がしっかりしてそうなのでメモしておく。
SCR1の特徴
- 無償で使えるプロセッサコア
- SHL(Permissive Solderpad Hardware License(version 0.51))に準拠 - ペリフェラル&内臓ユニット
- 小容量密結合RAM搭載
- 割り込みサポート機能
- オンチップデバッグ機能(JTAGインタフェース)
- バス・インタフェースにハーバードアーキテクチャを採用 - プログラミングモデル
- RISC-Vに準拠
- 32本の汎用レジスタ(32bit長:x0〜x31)または16本(x0〜x15) - 内部構成用パラメータ
- パラメータ設定により命令セットやパイプライン構成等の変更が可能 - 論理記述
- System Verilogを採用
SCR1コアの仕様
項目 | 内容 |
アーキテクチャ | 32bitマイクロコントローラ向けRISC-V RV32I | E [MC] |
命令セット | RV32IまたはRV32E。オプションで拡張命令MとCを追加可能 ・M : 47個の整数命令、8個の乗算/除算命令(32bit長) ・C : 27個の短縮命令(16bit長) |
特権モード | Machine Modeのみ |
汎用レジスタ | 32本または16本の32bit汎用レジスタ |
バス構成 | ハーバードアーキテクチャ(命令用バスとデータ用バスを分離) 外部バス仕様は32bit幅AXI4またはAHB-Lifeに準拠 |
パイプライン段数 | 2段から4段(設定可能) |
密結合メモリ | Tightly Coupled Memory サポート |
割り込みコントローラ | プログラマブル割り込みコントローラ(オプション) ・低レイテンシ割り込み ・最大16本の割り込み要求入力(IRQ) |
乗算/除算ユニット | 性能最大化仕様または面積最適化仕様の観点から選択可能 |
デバッガ | JTAGインタフェース式デバッグ・コントローラ(オプション) ハードウェアブレークポイント・モジュール(オプション) |
性能測定機能 | 3種類の64bit性能カウンタ ・リアルタイムクロック ・サイクル・カウンタ ・リタイアした(実行した)命令数のカウンタ |
動作周波数 | 250MHz @ 90nm |
論理規模 | RV32EC : 12Kゲート RV32IMC : 28kゲート |
( ※Interfece 2018 2月号 p106から引用)
SCRファミリの仕様
コア名 | SCR1 | SCR3 | SCR4 | SCR5 |
対象 | 小規模MCU | 大規模MCU | 浮動小数点MCU | アプリケーションプロセッサ(Linux) |
命令セット | RV32I | E [MC] | RV32I | E [MC] | RV32IMCF[D] | RV[32|64] IMC[AFD] |
ライセンス | 無償(SHL) | 有償 | 有償 | 有償 |
性能 | 1.63DMIPS/MHz 2.43Coremark/MHz |
1.7DMIPS/MHz 3.16Coremark/MHz |
0.7WMIPS/MHz | 1.5+DMIPS/MHz |
動作周波数 | 250MHz@90nm | N/A | N/A | 1GHz@28nm |
論理規模 | RV32EC:12kゲート RV32IMC:28kゲート |
N/A | N/A | N/A |
パイプライン | 2 〜 4 | 3 〜 5 | 3 〜 5 | 7 〜 9 |
分岐予測 | なし | あり | あり | あり |
特権モード | Machine mode | Machine mode User mode |
Machine mode User mode |
Machine mode Supervisor mode User mode |
乗算・除算 | 面積最適型MUL/DIV | 高速MUL/DIV | 高速MUL/DIV | 高速MUL/DIV |
割り込み | コンフィギャラブルIPIC (IRQ 8〜16本) |
コンフィギャラブルIPIC (IRQ 8〜128本) |
コンフィギャラブルIPIC (IRQ 8〜128本) |
コンフィギャラブルIPIC (IRQ 8〜128本) |
デバッガ | JTAGデバッグ OpenOCDコンパチブル |
JTAGデバッグ | JTAGデバッグ | JTAGデバッグ |
メモリ保護・管理 | なし | Memory Protection Unit (MPU) | Memory Protection Unit (MPU) | Memory Protection Unit (MPU) |
( ※Interfece 2018 2月号 p105から引用)