k0b0's record.

Computer Engineering, Arts and Books

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から引用)

[参考サイト]

github.com