プロセッサをカスタマイズする. これはプロセッサIPコアを特定のワークロードに最適化するアプローチの一つの方法です. 既存コアのリストから比較的要件を満たしているものを選び, それをスタート地点として最適化したプロセッサを作るというものです. では, なぜ, そして, どのようにプロセッサをカスタマイズするのでしょうか.
カスタム・コアを開発する利点は?
その前に, プロセッサ・コンフィグレーションとプロセッサ・カスタマイズの違いを理解しておきましょう. まず, この2つは全く異なるものです. プロセッサのコンフィギュレーションとは, IPベンダが提供するオプション(キャッシュサイズ, MMUのサポートなど)を設定することです. プロセッサのカスタマイズとは, ISAの変更や新しい命令の記述など, より踏み込んだ変更を必要とする何かを追加または変更することを意味します. このブログでは, 後者のプロセッサのカスタマイズに焦点を当てます.
性能, 面積効率, 電力効率を同時に満たす必要がある製品を開発る場合, 既存のプロセッサをカスタマイズすることは効率的です. ベクトル命令と低消費電力機能の両方を必要とする自律走行車用プロセッサを設計する場合でも, リアルタイム性と電力・面積の制約がある演算ストレージ用プロセッサを設計する場合でも, 最適化された専用コアが効果的となります.
これまでSoC上の複数のIP, もしくは多機能を集約した消費電力の激しい大きなIPで実現していた機能が, プロセッサのカスタマイズにより, 必要とする標準拡張やカスタム拡張, すべてのアーキテクチャ拡張を1つのプロセッサIPで実現することができます. 既存のプロセッサをお客様独自のニーズに合わせて最適化することには, 以下の大きな利点があります.
- 面積を節約し, 電力とパフォーマンスの目標を的確に捉え最適化できます
- 既存プロセッサは既に検証済みなので, カスタム拡張機能を加えた検証を行い, すぐに使用可能
- どのような変更を行うかは, あなた次第, 競合他社との差別化に注力可能
カスタマイズはそう簡単にはできないと思われるかもしれません. またカスタム・プロセッサの検証はどこまで信頼できるのだろうか, と疑問に思われるかもしれません. 現在, 差別化することは, 難しく, 時間がかかり, 時にはより高くつくようになってきています. プロセッサのカスタマイズが成功するかどうかは, 以下の2点に懸かっています
- RISC-VのようなオープンソースISAであること
- 設計と検証の自動化
カスタム・プロセッサ, ASIP, ドメイン特化型アクセラレータ, アプリケーション特化型プロセッサなど, これらはすべてプロセッサのカスタマイズを意味します.
RISC-Vプロセッサをカスタマイズする方法
RISC-Vの命令セット・アーキテクチャ(ISA)は, カスタマイズされることを念頭において作られています. カスタム・プロセッサを作りたいのであれば, 既存RISC-Vプロセッサから始めるのが理想的です.
基本命令セットにオプションで標準拡張や非標準カスタム拡張を追加して, プロセッサを特定のアプリケーション向けにカスタマイズすることができます.
設計の品質と検証の信頼性を確保する確実なカスタマイズ・プロセスには, 自動化が重要です.
コダシップは, 以下の方法でRISC-Vプロセッサが提供可能です:
- 一般的な形式(RTL, テストベンチ, SDK)
- CodALのソースコード
コダシップはCodALを使用して, Codasip RISC-Vプロセッサを開発, SDKとHDKを自動生成しています. コダシップもユーザもCodALのソースコードを編集して, 独自のカスタム拡張機能を作成したり, 必要に応じて他のアーキテクチャの機能を変更することができます.
CODASIP STUDIOによるプロセッサ設計自動化
従来のアプローチでは, コアに新しい命令を追加するためには, 手作業で追加する方法しかありませんでした. この場合, 以下の部分を手作業で修正する必要があります.
- ソフトウェア・ツールチェーン
- 命令セットシミュレータ
- 検証環境
- RTL
ソフトウェア・ツールチェーンでは, 新しい命令をコンパイラが使用できるように組み込み関数を作成することができますが, これは同時にアプリケーションコードの更新が必要であることも意味します. しかし, 既存のISSやRTLを変更することは, エラーの原因となる可能性が高く, また, 検証環境の変更が必要な場合, これはさらに問題発生の可能性が高くなります. これらの手作業による変更を検証することは大きな課題であり, 開発プロジェクトによりリスクをもたらします.
一部のベンダは, 部分的に自動化されたソリューションを提供していますが, プロセッサのカスタマイズのすべての側面をカバーしていないため, 手動変更によるエラーのリスクが残されています.
これに対してCodasip Studioを使用した場合, CodALのソースコードのみの修正だけです. LLVMツールチェーンは, 新しい命令をサポートするように自動生成されます. 同様に, ISSとRTLもカスタム命令を含むように自動生成され, 更新されたUVM環境を使用して即検証することができます. この方法は, 時間の節約になるだけでなく, より強固で, 確実なカスタマイズ・プロセスとなっています.
RISC-VとCODASIPでアプリケーション特化型プロセッサを作る
従来のプロセッサ設計では差別化がより難しく, より時間がかかり, 時には高コストになります. 独自の差別化要件を満たすようにプロセッサをカスタマイズすることが鍵です. PPAを犠牲にすることなく, アプリケーションに特化したプロセッサを効率的に作成するには, オープン・アーキテクチャと, 設計・検証プロセスを自動化するツールが必要です. 詳細は, ホワイトペーパー 「カスタムRISC-V ISA命令によるドメイン特化型プロセッサの作成について」"でご確認ください