プロセッサをカスタマイズする理由とその方法


10月 1, 2021

プロセッサをカスタマイズする. これはプロセッサIPコアを特定のワークロードに最適化するアプローチの一つの方法です. 既存コアのリストから比較的要件を満たしているものを選び, それをスタート地点として最適化したプロセッサを作るというものです. では, なぜ, そして, どのようにプロセッサをカスタマイズするのでしょうか.

カスタム・コアを開発する利点は?

その前に, プロセッサ・コンフィグレーションとプロセッサ・カスタマイズの違いを理解しておきましょう. まず, この2つは全く異なるものです. プロセッサのコンフィギュレーションとは, IPベンダが提供するオプション(キャッシュサイズ, MMUのサポートなど)を設定することです. プロセッサのカスタマイズとは, ISAの変更や新しい命令の記述など, より踏み込んだ変更を必要とする何かを追加または変更することを意味します. このブログでは, 後者のプロセッサのカスタマイズに焦点を当てます.

性能, 面積効率, 電力効率を同時に満たす必要がある製品を開発る場合, 既存のプロセッサをカスタマイズすることは効率的です. ベクトル命令と低消費電力機能の両方を必要とする自律走行車用プロセッサを設計する場合でも, リアルタイム性と電力・面積の制約がある演算ストレージ用プロセッサを設計する場合でも, 最適化された専用コアが効果的となります.

これまでSoC上の複数のIP, もしくは多機能を集約した消費電力の激しい大きなIPで実現していた機能が, プロセッサのカスタマイズにより, 必要とする標準拡張やカスタム拡張, すべてのアーキテクチャ拡張を1つのプロセッサIPで実現することができます. 既存のプロセッサをお客様独自のニーズに合わせて最適化することには, 以下の大きな利点があります.

  • 面積を節約し, 電力とパフォーマンスの目標を的確に捉え最適化できます
  • 既存プロセッサは既に検証済みなので, カスタム拡張機能を加えた検証を行い, すぐに使用可能
  • どのような変更を行うかは, あなた次第, 競合他社との差別化に注力可能

カスタマイズはそう簡単にはできないと思われるかもしれません. またカスタム・プロセッサの検証はどこまで信頼できるのだろうか, と疑問に思われるかもしれません. 現在, 差別化することは, 難しく, 時間がかかり, 時にはより高くつくようになってきています. プロセッサのカスタマイズが成功するかどうかは, 以下の2点に懸かっています

  • RISC-VのようなオープンソースISAであること
  • 設計と検証の自動化

カスタム・プロセッサ, ASIP, ドメイン特化型アクセラレータ, アプリケーション特化型プロセッサなど, これらはすべてプロセッサのカスタマイズを意味します.

RISC-Vプロセッサをカスタマイズする方法

RISC-Vの命令セット・アーキテクチャ(ISA)は, カスタマイズされることを念頭において作られています. カスタムプロセッサを作りたいのであれば, 既存RISC-Vプロセッサから始めるのが理想的です.

基本命令セットにオプションで標準拡張非標準カスタム拡張を追加して, プロセッサを特定のアプリケーション向けにカスタマイズすることができます.

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命令によるドメイン特化型プロセッサの作成について」”でご確認ください

ホワイトペーパーをダウンロードする

Roddy Urquhart

Related Posts

Check out the latest news, posts, papers, videos, and more!

プロセッサのコンフィグレーションとプロセッサのカスタマイズの違い

8月 12, 2021
By Roddy Urquhart

ASIPとは?

4月 16, 2021
By Roddy Urquhart

既存RISC-Vプロセッサのカスタイマイズ

2月 11, 2021
By Roddy Urquhart

プロセッサのコンフィグレーションとプロセッサのカスタマイズの違い


8月 12, 2021

長年, プロセッサIPコアのコンフィギュレーションについて語られてきましたが, オープンRISC-V ISAへの関心が高まるにつれ, カスタマイズについて語られることが多くなっています. では, プロセッサ・コンフィギュレーションとカスタマイズの違いは何でしょうか?

CPUコンフィギュレーションはピザ屋にピザを注文するのと同じ

簡単な例えとして, ピザの注文を思い浮かべてください. 多くのピザ屋さんでは, 標準的な何種類かのピザと, 限られたリストからトッピングを選ぶことができますよね. その限られた中から, 自分好みの味にコンフィグレーションしてピザを注文します.

プロセッサIPベンダーは今までオプションのキャッシュ, 密結合メモリ(TCM), オンチップデバッグなど, いくつかの標準オプションを顧客に提供し, それらを組み合わせて顧客のニーズに合った構成を提供してきました. ただし, コアそのものは変わらず, もしくはごく限られたバリエーションに留められていました. 命令セット, レジスタセット, パイプラインももちろんそのままで, キャッシュなどのオプションブロックだけを変えることが許されている状況です.

CPUのカスタマイズは, シェフがあなたのために特別なピザを作ってくれるのと同じ

今では多くのユーザーが, プロセッサ・コアにより高い専門的な特性と可変性を求めています. これは, シリコン面積と消費電力を抑えながら, 性能を向上させるためかもしれません. それを実現するにはいくつかの方法があるでしょう. 例えば, ターゲット・アプリケーションに最適化したカスタム命令の作成やポートやレジスターを追加するなど. しかしこのような変更は, プロセッサ・コアそのものを根本的に変えてしまうことになります.

ピザの例え話に戻りますが, カスタマイズとは, あなた専用シェフがピザの基本レシピを持っているけれども, トッピングを自由自在に変えてくれるだけではなく, 小麦粉, オイル, イースト酵母といった標準的な材料を貴方好みのものに変更して, ピザの基本から変更してくれるようなものです. これこそ, プロセッサをカスタマイズする大きな理由と同じではないでしょうか.

そして, これこそがRISC-Vがもたらした可能性です. 既存のRISC-Vプロセッサに, オプションの標準拡張機能や非標準のカスタム拡張機能を追加して, 特定の要件に適合するようにカスタマイズすることができるのです.

RISC-VとCODASIP(コダシップ)でカスタムコアを作成する

IPサプライヤの中には, コアの拡張を許可しているところもありますが, カスタマイズの範囲が最も広いのはRISC-Vです. RISC-VのISAは, 当初からカスタム命令をサポートするように考えられています. コダシップのRISC-Vプロセッサは, アーキテクチャ記述言語CodALを用いて開発されており, Codasip Studioで簡単にカスタマイズすることが可能です. カスタム命令を使用してドメイン特化型プロセッサを作成する方法の詳細については, 当社のホワイトペーパーをダウンロードしてください.

ホワイトペーパーをダウンロードする

Roddy Urquhart

Related Posts

Check out the latest news, posts, papers, videos, and more!

RISC-VでSoCオープンスタンダードのギャップを埋める

3月 24, 2022
By Roddy Urquhart

プロセッサをカスタマイズする理由とその方法

10月 1, 2021
By Roddy Urquhart

RISC-Vは未来なのか?

7月 27, 2021
By Roddy Urquhart

ASIPとは?


4月 16, 2021

ASIPはApplication Specific Instruction-Set Processorの略です. これは特定のアプリケーションやドメインのために最適に設計されたプロセッサを意味します.

汎用プロセッサ VS. ドメイン特化型やアプリケーション特化型プロセッサ

これまでのプロセッサコアの多くは汎用型で, 平均的な性能で幅広いアプリケーションを処理できるように設計されています. そのため, オーディオ処理など特殊な計算を必要とするアルゴリズムでは, 高性能なコア(SIMDユニットやゼロオーバーヘッドループなど)や, 高いクロック周波数が必要となり, 想定したシリコンや電力が許容範囲を超えてしまう可能性があります.

それではどうすれば良いのでしょう. 答えは, オーディオ処理に必要な性能を効率的に達成するために最適化した, アーキテクチャを持つASIPを作成することです. ASIPは, オペレーティングシステムが求めるような, 汎用的な操作の処理に適した設計ではありません. OSの処理が必要な場合は, オーディオ処理アルゴリズムを実行するためのものではない, 別の汎用コアで実行すれば良いのです. このようにして, ASIPの設計は, ユースケースを満たすのに十分な柔軟性を持ちつつ, 性能面も最適化されるのです

ASIPは世界中の大学で研究され, オーディオ信号処理, イメージセンサ, ベースバンド信号処理など様々な領域に応用されています. コダシップの創業者のKarel MasaříkとCTOのZdeněk Přikrylは, ブルノ工科大学でASIPの設計自動化について研究しました. 彼らの研究の詳細については, 本記事の最後に掲載されている論文をご覧ください.

半導体のスケーリング課題に対応するためのASIP

ASIPやドメイン特化型プロセッサは, 半導体の微細化の問題から, 今後より広く使用されていくことと考えられています. これまで数十年にわたり, SoCの開発者はムーアの法則とデナード・スケーリングに基づき, シリコン形状の微細化で,回路密度と高性能を得ようとしてきました.

このスケーリングが機能している間は, 汎用プロセッサコアや新世代のシリコン技術を使用することで, 許容範囲内の消費電力で必要な性能を実現することが可能でした. しかし, このスケーリングが崩壊し, 性能向上が鈍化し, リーク電流が消費電力を悪化させることが分かってきました. 処理に対する新しいアプローチが必要とされている今, 半導体業界は変わらなければいけません.

これまで, 業界におけるこの共通課題は, 1つのSoCに異なる種類の汎用コアを搭載することで対処されてきました. 例えば, 携帯電話のSoCでは, アプリケーションプロセッサ, GPU, DSP, MCUが組み合わせていますが, これらのプロセッサはいずれもアプリケーションに特化した命令セットは持っていません.

人工知能, 高度なグラフィックス, 高度なセキュリティなど, 新たなアルゴリズムが求められる新製品が登場する中, より専門性の高いハードウェア・アクセラレータが必要とされ, 開発が進んでいます. このようなアクセラレータは, 計算負荷の高いアルゴリズムを効率的に処理するために設計されています. それぞれのアクセラレータには, 最適化された命令セットとマイクロアーキテクチャが必要となります. そう, ASIPが必要です.

ASIPとソフトウェア開発

ドメイン特化型プロセッサ(ASIPと同義語として私たちは使っています)は, ハードウェアの専門化と柔軟性を, ソフトウェアのプログラマビリティと組み合わせて実現しています.

カスタムハードウェアを作る際の課題の1つは, ソフトウェア開発者のニーズも確実に満たすことでます. 組み込み(イントリニシック)命令のような手法は, C言語から命令セットへの直接アクセスを可能にしますが, コードの柔軟性を低下させます. だたし, 複雑な機能を1つの命令で実現するような際には, この方法が有効な解決策となる場合もあります.

しかし, それでもトップダウンのアプローチの方が好ましいでしょう. あなたのドメイン特化型アクセラレータ用に作成されたコンパイラが, あなたが作成したカスタム命令を自動的に推論します. これを命令セットシミュレータとプロファイラとともに使用することで, 短時間でさまざまな設計アイデアの試行を行い, 最適なソリューションに早く収束させることができます.

Codasip Studioは, シンプルな命令レベルモデルからISAとコンパイラを生成する機能を提供し, この探求プロセスに対する完全なソリューションを提供します.

アプリケーション特化型プロセッサの設計自動化および検証

多種多様なアクセラレータを開発する必要がある中, 命令セットやマイクロアーキテクチャを手作業で開発するのは効率的ではありません. アプリケーション・ソフトウェアは, プロファイリングで解析し, そのニーズに合わせて命令セットをチューニングすることができます. その後, Codasip Studioのようなプロセッサ設計自動化ツールセットを使うことにより, ソフトウェア・ツールチェーンや命令セットシミュレータを生成することができます.

具体的には, Codasip Studioは, 命令セットを完全に認識し, 特定の命令を自動的に推論できるC/C++コンパイラの生成を自動化します. アプリケーション固有の命令の影響を確認するために, C/C++コンパイラを作業ループに含めることが重要です. 命令セットシミュレータ, デバッガ, プロファイラ, その他自動生成されるSDK内のツールも同様です. Codasip Studioは, RTL, テストベンチ, UVM環境を含むハードウェア設計環境の生成も行います.

実は…

コダシップは, もともとASIPの協調設計ツールを作るために設立された会社であり, この理由から「Co-dASIP」と名付けられました. その後, Codasip Studioは, RISC-V組み込みコアやアプリケーションコアなど, より汎用的なコアの作成にも使用されるようになりました.

プロセッサの設計は, RTLコードの生成で終わるわけではありません. 設計サイクルの主要な部分は検証であり, それは厳密である必要があります. Philippe Luc氏がSemiconductor Engineering誌で説明したように, RTLの検証は多層的で複雑です.

Codasip Studioは, ASIP設計の全フローをより迅速にするために, 検証プロセスの主要な部分を自動化することができます. 特に, Codasip Studioは, 最適化された命令の自動カバレッジポイントを生成します. 提供されるUVM環境では, モデルおよびRTLの両方でプログラム(新しい命令を含む)を実行し, 結果を比較することを容易にしています. また, 制約付きランダムプログラム生成ツールも提供し, カバレッジを満たし, お客様の検証がより迅速に行えます.

Codasip StudioとRISC-Vの最高のコンビネーションについては, ホワイトペーパー「カスタムRISC-V ISA命令によるドメイン特化型プロセッサの作成について」をご覧ください.

ASIPの設計自動化に関するコダシップの研究論文

  • MASAŘÍK Karel, UML in design of ASIP, IFAC Proceedings Volumes 39(17):209-214, September 2006.
  • ZACHARIÁŠOVÁ Marcela, PŘIKRYL Zdeněk, HRUŠKA Tomáš and KOTÁSEK Zdeněk. Automated Functional Verification of Application Specific Instruction-set Processors. IFIP Advances in Information and Communication Technology, vol. 4, no. 403, pp. 128-138. ISSN 1868-4238.
  • PŘIKRYL Zdeněk. Fast Simulation of Pipeline in ASIP simulators. In: 15th International Workshop on Microprocessor Test and Verification. Austin: IEEE Computer Society, 2014, pp. 1-6. ISBN 978-0-7695-4000-9.
  • HUSÁR Adam, PŘIKRYL Zdeněk, DOLÍHAL Luděk, MASAŘÍK Karel and HRUŠKA Tomáš. ASIP Design with Automatic C/C++ Compiler Generation. Haifa, 2013.

Roddy Urquhart

Related Posts

Check out the latest news, posts, papers, videos, and more!

プロセッサをカスタマイズする理由とその方法

10月 1, 2021
By Roddy Urquhart

RISC-Vは何の略?

3月 17, 2021
By Roddy Urquhart

RISC-Vとは?見逃すべきでない理由

9月 22, 2016
By Roddy Urquhart

既存RISC-Vプロセッサのカスタイマイズ


2月 11, 2021

オープンなRISC-V ISA, 移植可能なソフトウェアは, ドメイン特化型プロセッサを開発する良い出発点です. しかし, ソフトウェアのプロファイリングや, 命令の追加・削除の実験を効率的に行い, 簡単かつスマートにISAを最適化するにはどうしたらよいのでしょうか. ここでは, 既存のRISC-Vプロセッサを効率的にカスタマイズする最適解について考えて行きます.

命令セットを変更する方法

一般的に2つのアプローチが考えられます. 手作業で行うか, 可能な限り自動化するかです.

手作業で臨むアプローチ

命令セットを変更する昔ながらの方法:

  1. 命令セットシミュレータ(ISS)を修正して, ISAを変更
  2. 新しいISAを反映させるためにSDKをアップデート

この方法だと, 膨大な量の手作業が必要な上, 手作業によるリスクを伴います. そして完成したSDKでは, カスタム命令を組み込み関数, またはインラインアセンブラ・コードとして利用できるようにすることが殆どです. ソフトウェア開発者にとってより良い開発環境となる, コンパイラを修正・検証するというもう一つの選択肢を実現するためにはかなりの労力を必要とします. 同様に, プロセッサのハードウェア側を拡張する場合, 従来はRTLを編集して, マイクロアーキテクチャを変更し, それをゴールデンリファレンスのISSと照らし合わせて検証する必要があります.

自動化されたアプローチ

対象的に, CodALのようなプロセッサ記述言語でISAを記述すると, 設計自動化ツールを用いて, このプロセスの効率が大幅に改善されます. Codasip Studioは, 変更後のISAに対応した新しいISSとコンパイラの両方を自動生成できるため, プロセッサのカスタマイズ 作業がより簡単になります. また, CodALのプロセッサ記述言語は, 命令精度の記述だけでなく, マイクロアーキテクチャの記述(サイクル精度)も可能です. 2つのレベルの整合性は, Studio環境内で静的解析により確認できます.

カスタマイズをRISC-V ISAのRTLモデルから始めるよりも, CodALで記述された完全なRISC-Vプロセッサコアから始める方が, はるかに簡単なアプローチです.

CODASIP STUDIOを使用した, RISC-V CPUのカスタマイズ自動化

Codasip RISC-Vプロセッサは, RTLでなく全てCodAL言語を用いてCodasip Studioで開発しています. シンプルな32ビットの組み込み用コアから, 64ビットのLinux対応マルチコア・アプリケーション・プロセッサまで, 幅広いコアを取り揃えています. したがって, パイプライン段数や対応するOSのサポートなど, 必要なベースライン要件を満たすプロセッサを選択し, 貴方はパフォーマンスを向上させるためのカスタム拡張機能の作成に集中することができます. すでに実績のある完成されたプロセッサIPからカスタマイズを始めることで, 新しい命令のためのマイクロアーキテクチャの追加作業に集中でき, 時間の節約とリスクの大幅な低減が可能になります.

Codasip Studioは, RTL, テストベンチ, EDAスクリプト, UVM環境を含むHDKを生成できます. UVM環境を用い, ゴールデンISSリファレンスとRTLの動的等価性検証が可能となります. 生成されるUVM環境には, レジスタファイル, バスプロトコル, メモリ, キャッシュなどの主な機能領域に対するアサーションとカバレッジポイントが, デフォルトで含まれています. サードパーティのRTLシミュレータを用いて, RTLのファンクションおよびコードカバレッジの達成度も測定することができます.

マイクロアーキテクチャを拡張した後, Codasip Studioプロファイラには, CodALのコードカバレッジ(行, 条件, 式)を評価するためのカバレッジ解析ツールが用意されています. また, Codasip Studioには, ランダム・アセンブラ生成ツールが用意されており, 簡単に包括的にコードカバレッジを評価することができます. 一部困難なケースでは, ダイレクトテストを追加する必要があるかもしれません.

Codasip RISC-Vプロセッサは, CodALソースコードでライセンスされ, Codasip Studioを用いて効率的に改良, 検証を行うことができます. これは, ドメイン特化型プロセッサを作成する上で費用対効果の高い, 非常に効率的なアプローチです.

Roddy Urquhart

Related Posts

Check out the latest news, posts, papers, videos, and more!

RISC-VでSoCオープンスタンダードのギャップを埋める

3月 24, 2022
By Roddy Urquhart

プロセッサをカスタマイズする理由とその方法

10月 1, 2021
By Roddy Urquhart

プロセッサのコンフィグレーションとプロセッサのカスタマイズの違い

8月 12, 2021
By Roddy Urquhart