学生が開発したRISC-V メニーコアチップをwebで発見。
(以下はスライド : Celerity: An Open Source RISC-V Tiered Accelerator Fabric)
http://www-personal.umich.edu/~rovinski/pub/ajayi2017celerity.pdf
「開発されたCelerityチップは5コアのRocketコア、496コアのVanilla-5コアとニューラルネットの畳み込み処理専用の10コアの合計511個のRISC-Vコアを集積している。Rocketコアとニューラルネットのアクセラレータは625MHz、496コアのメニーコアチップは1.05GHzで動作し、DDR DRAMコントローラは400MHzクロックで動作させている。」
この大規模な仕様の設計を28人の大学院生のみで開発して、わずか9ヶ月で設計を完了してテープアウット。少数精鋭で短期間開発、まさにスカンクワークスって感じだ。
開発効率を高めるための設計方針
ディジタル回路設計のお手本のような設計方針だ。
(詳しくは「ディジタル回路設計とコンピュータアーキテクチャ」の第1章を参照のこと。)
- 再利用
- RocketやVanillaなどのRISC-Vコアを使用
- Basejump(オープンソースIPライブラリ)を使用
- RoCC(オープンソースオンチップコネクタ)を使用 - モジュール化
- 最適化された部品(Basejump)を使い階層設計を採用
- 最適化された部品を使うこと細かな部品の設計を省略(ブラックボックス設計) - 自動設計
- 高位合成を採用
- 最適化されたIPを使用することで、結合テストのみで済むようにした
- 実装とテストのフローを抽象化して、色々な設計に適用できるようにした。
Basejump
注目したいのはBasejumpというIPライブラリ。NoCのようなネットワークルータの部品から、MUXや非同期FIFOなど、一通りの部品はそろっていて便利そう。
System Verilog版のBasejumpはBaseJumpSTLとして以下で公開されてるみたい。Basejumpを利用して開発効率を上げるのはもちろんのことだけど、IPのコードを参考にして自分なりのIPライブラリを作っても面白いかも(?)