|
日本シノプシス合同会社 Platform Architect
SystemCを用いたアーキテクチャ設計ソリューション
1. ハードウェア/ソフトウェア協調設計のフロー
大規模化するSoCを効率良く開発するために、近年ベース・プラットフォームにアプリケーション・サブシステムや、IPを追加するプラットフォーム・ベース・デザインが採用されています。このような設計フローで重要になるのは新規に追加される機能をHW、SWのどちらで実現するかといったHW/SWの分割や、IP単体でのパフォーマンス検討だけでなく、システム全体のパフォーマンスが仕様を満たすことを設計早期に検討・検証することです。
2. ESLツールを用いない場合のパフォーマンス検証とその問題点
従来の設計フローでは、一部の設計者がC言語を使って簡単なモデルを作成してパフォーマンス検討を行ったり、エクセルシートを用いて静的な解析を行ったりすることによってパフォーマンス検討を行うケースが多く見られました。昨今のSoCでは複数のCPU、DSP、ペリフェラルおよび各種IPが複雑なインタコネクトで接続されており、前述したような静的解析だけでなく、動的なシミュレーションによる解析が重要になっています。静的な解析だけで設計した場合、各々のIP単体はパフォーマンス仕様を満たしているのに、システム全体としてパフォーマンスを満たさないといった問題が多発しています。こういった問題を解決するためには、設計早期におけるESLツールを用いたアーキテクチャの最適化が重要です。
3. Synopsys Platform Architectを使用した設計フロー
(1) モデリング
ESLツールを使用するためには、各部品をモデリングする必要があります。HWのアーキテクチャ・モデルを作成するために最適な言語はSystemCです。SystemC言語を使用することによって、ツールに依存しないシミュレーション・モデルの記述が可能になると同時に、各社が提供するIPモデルを容易に統合できます。実際にESL設計環境を活用している企業では、時間概念が非常に重要なモデルをHW経験者が作成し、機能モデルに一定の遅延値を与えるような単純なモデルをSW経験者が作成することによって、モデリングを効率良く行っているケースが増えています。シノプシスが提供しているSystemC Model Wizardを使用すると、ポート、レジスタ、パラメータなどの情報をGUI上で設定するだけで、ツールがSystemCのテンプレートを自動生成するため、SystemCに不慣れなエンジニアであっても短期間でSystemCモデルを開発できます。
(図1参照)

図1 SystemC Block Wizard画面例
(2) インタコネクトおよびメモリ・サブシステムの最適化
マルチメディア機器、イメージング、次世代携帯電話といった機器向けのSoCでは、インタコネクトとメモリ・サブシステムの最適化が大きな課題になっています。プロセッサ上で動作するSWが開発される前に最適化を実施するためにはトラフィック・ジェネレータが有効です。シノプシスではGFRBM(Generic File Reader Bus Master)と呼ばれるトラフィック・ジェネレータや、AMBA、AMBA3.0 AXIなどのバス・モデル、メモリサブシステム・スタータ・キット等を用意しています。設計者はこれらのモデルやキットを使用して図2のようなシステムを構築し、SWが開発される以前に精度の高いパフォーマンスの見積もりとアーキテクチャの最適化を実行できます。またシノプシスが提供しているライブラリにはHW/SW協調設計を行う上で必要な解析データを取得するためのAPIが予め埋め込まれているため、設計者は簡単な設定だけで各種解析結果の収集と表示ができます。図3にGFRBMを用いたバス・アーキテクチャの最適化例を示します。この例から分かるようにバス・アーキテクチャの変更によって処理時間が大きく変わるため、事前にシミュレーションを行って仕様に合ったアーキテクチャを検討する必要があります。

図2 GFRBMベース仮想プラットフォーム

図3 GFRBMを用いたパフォーマンス解析例
(3) HW/SW分割
Coretexのように高性能な新規プロセッサ・コアを用いて設計する場合、新規開発される「機能」をどこまでリアルタイムに処理できるか見極めることは非常に困難です。特にHWとSWが密接に関係している場合、インタコネクトの状況やメモリ・コントローラのパフォーマンスによって、プロセッサ上でのSWの処理時間が大きく異なるため、経験と勘に頼った従来の設計手法では、オーバー・スペックによるコストの増加、仕様変更によるスケジュール遅延、パフォーマンスが仕様を満たさないことによる再設計といった問題を引き起こす可能性が高く、仮想プラットフォームを用いた動的な解析が非常に重要となります。
シノプシスはARM社製のサイクル精度インストラクション・セット・シミュレータをベースに開発した、プロセッサ・モデルを用意しているため、上記GFRBMを用いたアーキテクチャ検討用仮想システムにサイクル精度のプロセッサ・モデルを導入するだけで、簡単に実SWを用いたシステム全体のパフォーマンス検証が実現できます。最終的なアーキテクチャを決定するためには図4に示すような様々な解析(SW解析、メモリ・アクセス解析、バス解析、キャッシュのヒットミス解析)が必要になります。これらの解析結果からシステムのボトルネックを探し、HW/SWの分割、アーキテクチャの変更を行うことによって、仕様を満たす最適なシステムが構築可能になります。

図4 解析画面例
|