Vista Virtual Prototyping

Vista Virtual Prototyping
高速シミュレーションモデルによるソフトウェア統合と最適化
ESL(Electronic System Level)設計
D
A
T
A
S
H
E
E
T
特長
ƒ 業界標準 SystemC TLM 2.0 に基づ
く実行可能な仮想プロトタイプ
ƒ ソフトウェアの妥当性を確認するハー
ドウェアモデルの早期入手
ƒ 主要なハードウェアレジスタとその属
性の可視化
ƒ ソフトウェアの高速実行
ƒ TLM のモデルとプラットフォームを広
範囲にサポート
ƒ 製品性能の向上と高度なパワー解析
ƒ 非侵入型のトレース、プロファイリン
グ、カバレッジ
Vista Virtual Prototyping を導入すると、ソフトウェアエンジニアは開発の初期段階から
ハードウェアモデルに基づいたソフトウェアの統合、妥当性確認、解析、最適化ができます。
ƒ Sourcery CodeBench による直観的な
ソフトウェアデバッグ環境
ƒ Sourcery Analyzer による組込みソフ
トウェア解析
イブラリを含んでおり、ライブラリ内のモデルの主要な属性
ソフトウェア開発費の割合は急激に増加しています。組込 (タイミングや電力など)をカスタマイズできます。また、ユー
み設計プロセスでは、ハードウェアとの連携を考慮しながら ザ独自の TLM モデルの作成や、外部からモデルをインポー
どのようにソフトウェアを開発、統合、妥当性確認、最適 トして Vista モデルライブラリに追加することも可能です。
化するかが大きな課題となっています。そこで組込みソフト
ウェア設計チームが求めているのは、開発の初期段階から TLM プラットフォームの作成
ハードウェアをシミュレーションする高速、正確、低コスト Vista の Block Diagram エディタは、TLM プラットフォー
ムを SystemC で構造化したコードを簡単に作成し、TLM
のモデルです。
の図形シンボルどうしをつないで設計トポロジを定義でき
メンター・グラフィックスの Vista™ Virtual Prototyping は、 ます。保存操作を実行するたびに、回路図ビューに対応
Vista プラットフォームの一部です。ソフトウェアエンジニア する SystemC で構造化されたコードを自動的に生成しま
は、ハードウェア設計を RTL(レジスタ転送レベル)実装 す。Block Diagram エディタは、 個別要素やグループの
する前の初期段階でも、抽象度の高い機能モデルを使って 選択、属性の定義と図形要素のデフォルト名の設定に加え
ハードウェアをシミュレーションできます。また、組込みプ て、要素のサイズ変更、移動、コピーといった多種多様な
ロセッサのモデル上で実機ボードと同等の速度でソフトウェ 操作をサポートしています。シンボルエディタまたは Block
アを実行できるだけでなく、ソフトウェアとハードウェアの複 Diagram エディタを使ってシンボルを編集することもできま
雑な相互作用のデバッグ作業を制御し可視化する機能や、 す。以上に加えて、図形の回転、削除、複製や、テキスト
製品の最終性能と消費電力の目標を達成するソフトウェア の追加と編集、TLM シンボルの追加といった操作も可能
最適化が可能といったメリットを備えています。
です。Block Diagram エディタの柔軟性に富んだ機能は
TLM プラットフォームの作成を支援し、メニュー、ツール
バー、サイドバーから簡単にアクセス可能となっています。
プラットフォームの作成
SoC(システムオンチップ)と最終製品の総開発費に占める
TLM(トランザクションレベルモデリング)は、デジタルシス
仮想プロトタイプの作成
テム内の機能ユニット間でやり取りされる詳細な情報を、ユ
仮想プロトタイプはスタンドアロンで実行可能となってお
ニットの具体的な実装から切り離し、機能ユニットのモデル
り、TLM プラットフォームから作 成します。 作 成 には、
として抽象化するアプローチです。TLM プラットフォームは、
Vista GUI の仮想プロトタイプダイアログあるいは vista_
SystemC の構造化されたコードで書かれた TLM モデルを
create_vp コマンドを使います。ユーザは Vista を使って、
相互接続したものです。Vista は定義済みの TLM モデルラ
www.mentorg.co.jp/esl
Vista パラメータファイルを定義します。Vista パラメータ
ファイルに含まれている設計パラメータは、ランタイム中に
変更可能です(実行可能ファイルを再び作成する必要はあ
りません)。また、仮想プロトタイプのシミュレーション実行
中に使われる、デフォルトランタイム環境の変数を設定し、
仮想プロトタイプのランタイム環境にディレクトリとファイル
をコピーして追加することもできます。作成した Vista 仮想
プロトタイプは、Linux® あるいは Windows ワークステー
ション上で実行可能です。プラットフォーム作成者は、仮想
プロトタイプにオプションとしてライセンス契約書を添付す
ることによって、誰が仮想プロトタイプを利用できるかを管
理できます。
プラットフォーム作成のメリット
ƒ 定義済みの TLM モデルライブラリ
ƒ タイミングや電力などの TLM 属性をカスタマイズ
ƒ 独自の TLM を作成しモデルライブラリに追加
ƒ プラットフォーム構成の変更をグラフィックで直観的に可
視化
ƒ 実行可能な仮想プロトタイプを自動的に作成
ƒ Linux または Windows ワークステーション上で仮想プロ
トタイプを実行
シミュレーション制御とハードウェア/ソフトウェア
の協調デバッグ
シミュレーション制御
Vista の仮想プロトタイプは、コマンドラインを使って呼び
出 す か、Sourcery™ CodeBench Virtual Edition を 使っ
て Sourcery CodeBench の IDE 環境上で制御します。コ
マンドラインモードでは、仮想プロトタイプのランタイム
変 数をコマンドラインの引 数として渡します。Sourcery
CodeBench Virtual Edition はハードウェアの可視化、ハー
ドウェアとソフトウェアを緊密に連携させたデバッグ作業、
ファイルシステム間の相互作用を制御できます。これらの機
能は Sourcery CodeBench のプラグインとして提供されて
おり、仮想プロトタイプ API を通じて情報をやり取りします。
ソフトウェア開発
Vista Virtual Prototyping は、従来のハードウェアプロトタ
イプや実機ボードと同等の機能を仮想プロトタイプによって
提供し、ハードウェアを考慮したソフトウェア開発、統合、
妥当性確認を実現します。最終製品上で実行する予定の実
ソフトウェアを、一貫してデターミニスティックに実行可能
、
アプリケーションスタック、
です。UI(ユーザインタフェース)
ミドルウェア、ファームウェア、OS(オペレーティングシステ
ム : Linux、Android™ 、Nucleus® など)上で稼働するド
ライバ、ベアメタルモードをサポートしています。Linux カー
www.mentorg.co.jp/esl
ネルを構築し、わずか数秒で OS を起動するための環境と
メソドロジを提供します。
Vista の仮想プロトタイプをホストワークステーション上の
ターミナルやディスプレイといった物理デバイスにリンクさ
せることができ、ソフトウェアエンジニアは仮想プロトタイ
プを制御できるようになります。また、実環境に近い条件
で仮想プロトタイプを実行するために、ホストワークステー
ションの USB 接続やイーサネット接続を使うことも可能で
す。さらに Vista は、OpenGL や Qt といったグラフィック
アプリケーションをホストの GPU 上にブリッジ接続して実
行可能です。セミホスティング機能を使うと、メッセージや
現在のシミュレーション時間を画面に表示したり、エラーメッ
セージとしての詳細度を設定したりできます。プロトタイプ
を可視化しプロファイリングする機能は非侵入的なためプロ
トタイプの動作に影響を与えず、また性能にもほぼ影響を
与えません。
ハードウェアタイミングモード
Vista Virtual Prototyping は、以下の 2 つのモードでハー
ドウェアを実行します。機能モードではソフトウェアを統合、
妥当性確認、デバッグし、性能モードではソフトウェアを解
析および最適化することによって性能の向上と消費電力の
削減を実現します。この 2 つのモードに対して、仮想プロト
タイプのモデル化には、LT と AT という 2 種類のレベルの
タイミング精度を使います。
機能モードの場合、仮想プロトタイプは転送の方法と所要
時間にかかわらず、ハードウェアバスを通じた完全なデータ
転送を表す、LT 抽象レベルを使います。このモードのシミュ
レーション速度は数百 MIPS 規模となり、実機スピードと
それほど変わりません。
性能モードの場合、仮想プロトタイプは AT 抽象度を用い
ます。この抽象度ではトランザクションは特定のバスプロト
コルに基づくデータ転送のフェーズ(例えば、AHB の read
や write のアドレスフェーズやデータフェーズ)として表現し
ます。性能モードでは精度を高めるために、仮想プロトタ
イプのシミュレーション速度は機能モードに対しておよそ 2
桁遅くなります。Vista は機能モードを実行する際に、さら
に高いタイミング精度を備えた「Accuracy-Tunable 機能シ
ミュレーションモード」を使って、シミュレーション速度を大
幅に向上できます。一部のアプリケーションでは、
シミュレー
ション速度を大幅に増加しても性能モードと同等の高精度
を達成できます。Accuracy-Tunable 機能シミュレーション
モードでシミュレーションすると、ユーザはシステム内の高
精度なタイミングを必要とする部分に集中し、システムのほ
かの部分を機能モードで実行できます。
Vista Virtual Prototyping は、ランタイム中にタイミングモー
ドを選択し、切り替え可能です。アプリケーションや OS と
いった高次レベルのソフトウェアの大部分にとって、ソフ
トウェアの妥当性確認とデバッグには機能モードで十分で
す。しかしソフトウェア制御されたハードウェアの性能と電
力の解析に加えて、低次レベルのソフトウェア(ドライバや
リアルタイムソフトウェアなど)では、仮想プロトタイプを性
能モードあるいは Accuracy-Tunable 機能シミュレーション
モードで実行しなければなりません。
ハードウェアの可視化
CodeBench Virtual Edition デ バッガ を、GDB サ ー バリ
モートプロトコルを通じて Vista のプロセッサモデルに接
続すると、デバッガをどのコアに接続するかを選択できる
ようになります。Vista Virtual Prototyping を導入すると、
CodeBench Virtual Edition はプラットフォーム内のハード
ウェアオブジェクトを目で直接確認し、制御できるようにな
ります。ハードウェアオブジェクトには、TLM コンポーネン
ト作成者の宣言したペリフェラルレジスタやローカル変数
が含まれています。オブジェクトは階層構造の設計パスに
よって指定されており、CodeBench Register ビュー上で別
個のサブツリーとしてオブジェクトの値が表示されます。各
オブジェクトの値は編集可能で、デバッグ実行中に新しい
値を設定できます。
ハードウェアとソフトウェアを緊密に統合したデバッグ
作業
ハードウェアとソフトウェアを緊密に統合してデバッグを実
行するために、ハードウェア内にブレークポイントを設定
し、ブレークポイント条件の発生時にハードウェアシミュレー
ションを停止できます。その後シミュレーションを再開する
と、ブレークポイントを引き起こした命令が完了してからソ
フトウェアデバッガを停止します。この結果、ソフトウェア
のステートを停止時点で確認後、以降の各ソフトウェア命
令をステップ実行した結果の、ハードウェアオブジェクトの
ステートを表示確認できます。
www.mentorg.co.jp/esl
ハードウェアシミュレーションの制御
ハードウェアシミュレーションは、Sourcery CodeBench コ
ンソールが提供する一連の gdb モニタ(mon)コマンドを
使って制御できます。コマンドの機能は、CPU コアのリセッ
ト、メモリへの画像ファイルのロード、ブレークポイントの
設定/削除とクエリ実行、ハードウェアタイミングモードの
設定と表示、シミュレーションプロセス情報の表示、シミュ
レーションプロセスの終了です。
Vista Virtual Prototyping は重大なイベントの発生時に、
定義済みのコールバックを利用して CPU コアの追跡をカス
タマイズするほか、セミホスティングをはじめとする便利な
タスクをサポートするシミュレーション制御 API を提供しま
す。また、仮想プロトタイプ上で起動する組込み OS のプロ
ンプトを使ってファイルを操作できます。例えば、ホストファ
イルシステムからファイルをコピーして、ターゲットとなる仮
想プロトタイプ上のローカルディレクトリにペーストする、あ
るいはその逆の操作を、組込み Linux OS のプロンプトか
ら発行する Linux の cp コマンドを使って実行できます。
シミュレーション制御とハードウェア/ソフトウェア協調
デバッグのメリット
ƒ CodeBench Virtual Edition によるシミュレーション制御
ƒ ランタイム中に機能モードと性能モードを切り替え可能
ƒ CodeBench Virtual Edition によるハードウェアオブジェ
クトの可視化と制御
ƒ ハードウェアあるいはソフトウェアのブレークポイント上で
シミュレーションを停止
ƒ シミュレーションとソフトウェアの制御コマンドを提供
ƒ 組込み OS によるホストファイル操作をサポート
ソフトウェアとハードウェアの解析
CodeBench Virtual Edition は、組込みソフトウェアとその
背景にあるモデル化されたハードウェアを解析する幅広い
機能を備えており、解析閲覧ウィンドウと解析サマリレポー
トで結果を確認できます。
ソフトウェア解析
Vista Virtual Prototyping 上 の ソ フ ト ウ ェ ア 解 析 は、
CodeBench Virtual Edition に 装 備されて いる Sourcery
Analyzer ツールを使って実行します。Sourcery Analyzer
は、Vista の仮想プロトタイプと連携してシングルコアあ
るいはマルチコア CPU からのデータを統合し、Linux、
RTOS(リアルタイムオペレーティングシステム)、ベアメタ
ルモードをサポートするとともに、解析エージェントを内蔵
しています。ソフトウェアエンジニアにとって最大の関心は、
開発中のソフトウェア、CPU 操作、コア操作が最終製品の
機能、性能、電力に対してどのような影響をもたらすかを
評価することです。この要望に応える、一般的で直観的な
システム解析ツールと可視化ツールを提供するライブラリ
が解析エージェントです。
Sourcery Analyzer エージェントは、CPU ステートと統計、
ファイルシステムの時間とともに変化する動作、関数の呼
び出しと統計、レイテンシの上限、ロックの待ち時間とホー
ルド時間、プロセスとスレッドのステートを表示できます。
CodeBench Virtual Edition は VP ソフトウェア解析エー
ジェントを内蔵しており、以下を表示できます。
ƒƒVP Current Function ̶ 特定のクラスタ上で、現在
実行されている機能を時間とともに表示
ƒƒVP Function Call Activity ̶ ソフトウェア機能
の動作を時間とともに表示
ƒƒVP Latency ̶ 指定した期間内で、特定のタイプの転
送を完了するまでの平均時間
ƒƒVP Power ̶ 設計全体と設計内の選択したインスタンス
の動的電力、静的(リーク)電力、クロックツリー電力
ƒƒVP Attributes ̶ TLM モデルに指定されたユーザ定
義の変数から得られた属性値を、時間とともに表示
ƒƒVP Throughput ̶ バス上の転送スループット
ƒƒCache Hit/Miss Ratio Analysis ̶ Icache およ
び Dcache コンポーネントを含む、CPU コアに対する
キャッシュのヒットとミスの比率を表示。これらの比率を、
READ 用のキャッシュと WRITE 用のキャッシュにさらに
分割することも可能
ƒƒVP Transactions ̶ 特定のモジュールソケットの転送
を表示。データの生成や消費に際してソフトウェア機能
がやり取りしたデータを相互に関連付け可能
Sourcery Analyzer を使って、ユーザはカスタムエージェン
トを作成可能です。Java でエージェントを書くことによって、
特定のアプリケーションだけの解析結果を可視化し、設計
性能の向上と最適化を実現します。Sourcery Analyzer は、
内蔵された解析エージェントが使う API すべてにアクセス
するとともに、新しい解析エージェントを簡単に作成するウィ
ザードを提供します。
調節するとともに、情報を表示する始点と終点を指定でき
ます。また、複数のシミュレーションセッションを比較する
ことによって、システム構成とソフトウェアの変更が設計動
作、性能属性、電力属性にどのような影響をもたらしたか
を検討できます。
カバレッジと機能レポート
Sourcery CodeBench Virtual Edition は、プロファイリング
ソフトウェアおよびハードウェア解析のメリット
ƒ Linux、RTOS、ベアメタルモードをサポート
レポートとラインカバレッジレポートを生成し、ソフトウェア
ノードの Reports サブノードの下に配置します。カバレッ
ジレポート内のラインをクリックすると、対応するコードを
表示します。
ハードウェア解析
Sourcery CodeBench Virtual Edition は、VP ハ ードウェ
ア解析エージェントを内蔵しており、以下の主要なハード
ウェア設計属性を表示します。
ƒƒVP Throughput ̶ 指定した期間内で、選択したオブ
ジェクトの動作レベルを転送回数あるいはバイト数に基
づいて表示
Vista Virtual Prototyping は、表示情報のズームレベルを
ƒ CPU ステート、関数呼び出し、プロセスの主要な解析
結果を可視化
ƒ ソフトウェア制御されたハードウェア電力を可視化
ƒ スループットやレイテンシをはじめとするハードウェア性
能を可視化
ƒ バス衝突の解析、バス調停の解析、キャッシュのヒット率
とミス率の解析を実行
ƒ ソフトウェアプロファイリングとラインカバレッジの包括的
なレポートを作成
詳しい製品情報は、www.mentorg.co.jp/esl をご覧ください。
Copyright © 2015 Mentor Graphics Corporation. All rights reserved.
Mentor Graphics は Mentor Graphics Corporation の登録商標です。登録商標 Linux は、全世界における商標保持者 Linus Torvalds 氏から排他的ライセンスを受けている
LMI (Linux Mark Institute) からの許諾により使用しています。その他記載されている製品名および会社名は各社の商標または登録商標です。製品の仕様は予告なく変更される
ことがありますのでご了承ください。
本 社
大阪支店
名古屋支店
URL
〒140-0001 東京都品川区北品川 4 丁目 7 番 35 号 御殿山トラストタワー
電話(03)5488-3030(営業代表)
〒532-0004 大阪府大阪市淀川区西宮原 2 丁目 1 番 3 号 SORA 新大阪 21
電話(06)6399-9521
〒460-0008 愛知県名古屋市中区栄 4 丁目 2 番 29 号 名古屋広小路プレイス
電話(052)249-2101
http://www.mentorg.co.jp
15/04-R1-PDF-TI