all programmable soc のシステム性能解析 -...

31
XAPP1219 (v1.0) 2014 12 11 japan .xilinx.com 1 本資料は表記のバージ ョ ンの英語版を翻訳し たもので、内容に相違が生じ る場合には原文を優先し ます。 資料によっては英語版の更新に対応していないものがあります。 日本 語版は参考用 と し てご使用の上、 最新情報につき ま し ては、 必ず最新英語版を ご参照 く だ さ い。 概要 このアプリケーション ノ ー ト では、 Zynq-7000 All Programmable (AP) SoC の性能を評価、 測定、 およびモデル化するため に必要な情報を提供し ます。 サンプル デザインを用いて、 Zynq-7000 デバイスのシステム性能をさまざまな側面から説明 します。 このデザインは、 Zynq-7000 アーキテクチャのプログラマブル ロジック (PL) とプロセッシング システム間の通 信に焦点を当てています。 また、 このデザインを利用して、 システムをモデル化し、 Zynq-7000 AP SoC が特定システムの 性能要件を満たすかど う かを判断でき ます。 このアプリケーション ノートに付属するデザインは、SDK で提供される SPM (System Performance Modeling) プロジェクト を適用しています。 詳細は、 『SDK ユーザー ガイド : システム性能解析』 (UG1145) [参照 1] を参照してください。 SPM ロ ジ ェ ク ト は、 実際の タ ーゲ ッ ト ハードウェアで実行され、 5 つの AXI トラフィック ジェネレーターを備えた固定ビッ ト ス ト リ ームを含みます。 これらの ト ラ フ ィ ッ ク ジェネレーターはコンフィギュレーション可能なコアであり、プログラ マブル ロジック (PL) のトラフィック アクティビティをモデル化するために SDK で使用されます。 ソフ ト ウェア アプリ ケーションもプロセッシング システム (PS) で同時に実行可能であ り 、 ユーザーはシステム コンフィギュレーション パラ メーターを指定できます。 ユーザーが SPM プロジェク トを実行した後、 アプリケーションをより正確に反映させるため に、 このアプ リ ケーシ ョ ン ノートのデザインを使用できます。 はじめに このアプリケーション ノ ー ト は、 主に次の 3 つのセクシ ョ ンで構成されています。 最初のセ ク シ ョ ンでは、 Zynq-7000 AP SoC のシステム性能について説明しています。 2 番目のセクシ ョ ンでは、 次の方法について説明しています。 ° PL に実装するデザインのシステム モデルを実行してアプリケーションをエミュレートする。 ° SDK ( ソ フ ト ウ ェ ア開発キ ッ ト ) でモデルを使用して、 システム性能の指標を示す。 3 番目のセクシ ョ ンでは、 次の方法について説明しています。 ° 独自のソフ ト ウェアを追加してモデルを実行する。 ° PL 内のアイテムを独自の IP に置き換える。 必要なハードウェアおよびツール リファレンス システムのハードウェア要件は次のとおりです。 ZC702 評価ボード AC 電源アダプター (12VDC) USB Type-A/Mini-B ケーブル (UART 通信用) USB Type-A/Micro-B ケーブル (JTAG アクセス用) Vivado® Design Suite 2014.3 アプリケーション ノート : Zynq-7000 AP SoC XAPP1219 (v1.0) 2014 12 11 All Programmable SoC のシステム性能解析 著者 : Forrest Pickett

Upload: others

Post on 07-Sep-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: All Programmable SoC のシステム性能解析 - Xilinx...性能解析用に構成されたデザイン XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 5 性能解析用に構成されたデザイン

XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 1

本資料は表記のバージ ョ ンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。 資料によっては英語版の更新に対応していないものがあります。 日本語版は参考用としてご使用の上、 最新情報につきましては、 必ず最新英語版をご参照く ださい。

概要このアプ リ ケーシ ョ ン ノートでは、 Zynq-7000 All Programmable (AP) SoC の性能を評価、 測定、 およびモデル化するために必要な情報を提供します。 サンプル デザインを用いて、 Zynq-7000 デバイスのシステム性能をさまざまな側面から説明します。 このデザインは、 Zynq-7000 アーキテクチャのプログラマブル ロジッ ク (PL) とプロセッシング システム間の通信に焦点を当てています。 また、 このデザインを利用して、 システムをモデル化し、 Zynq-7000 AP SoC が特定システムの性能要件を満たすかど うかを判断できます。

このアプリ ケーシ ョ ン ノートに付属するデザインは、SDK で提供される SPM (System Performance Modeling) プロジェク トを適用しています。 詳細は、 『SDK ユーザー ガイ ド : システム性能解析』 (UG1145) [参照 1] を参照してください。 SPM プロジェク トは、 実際のターゲッ ト ハード ウェアで実行され、 5 つの AXI ト ラフ ィ ッ ク ジェネレーターを備えた固定ビット ス ト リームを含みます。 これらの ト ラフ ィ ッ ク ジェネレーターはコンフ ィギュレーシ ョ ン可能なコアであ り、プログラマブル ロジッ ク (PL) のト ラフ ィ ッ ク アクティ ビティ をモデル化するために SDK で使用されます。 ソフ ト ウェア アプリケーシ ョ ンもプロセッシング システム (PS) で同時に実行可能であ り、 ユーザーはシステム コンフ ィギュレーシ ョ ン パラメーターを指定できます。 ユーザーが SPM プロジェク ト を実行した後、 アプ リ ケーシ ョ ンをよ り正確に反映させるために、 このアプリ ケーシ ョ ン ノートのデザインを使用できます。

はじめにこのアプリ ケーシ ョ ン ノートは、 主に次の 3 つのセクシ ョ ンで構成されています。

• 最初のセクシ ョ ンでは、 Zynq-7000 AP SoC のシステム性能について説明しています。

• 2 番目のセクシ ョ ンでは、 次の方法について説明しています。

° PL に実装するデザインのシステム モデルを実行してアプリ ケーシ ョ ンをエ ミ ュレートする。

° SDK (ソフ ト ウェア開発キッ ト ) でモデルを使用して、 システム性能の指標を示す。

• 3 番目のセクシ ョ ンでは、 次の方法について説明しています。

° 独自のソフ ト ウェアを追加してモデルを実行する。

° PL 内のアイテムを独自の IP に置き換える。

必要なハードウェアおよびツールリ ファレンス システムのハード ウェア要件は次のとおりです。

• ZC702 評価ボード

• AC 電源アダプター (12VDC)

• USB Type-A/Mini-B ケーブル (UART 通信用)

• USB Type-A/Micro-B ケーブル (JTAG アクセス用)

• Vivado® Design Suite 2014.3

アプリケーシ ョ ン ノート : Zynq-7000 AP SoC

XAPP1219 (v1.0) 2014 年 12 月 11 日

All Programmable SoC のシステム性能解析著者 : Forrest Pickett

Page 2: All Programmable SoC のシステム性能解析 - Xilinx...性能解析用に構成されたデザイン XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 5 性能解析用に構成されたデザイン

AP SoC システム性能

XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 2

AP SoC システム性能SoC の性能は、 デバイスまたはシステム レベルで測定され、 インターフェイスや回路ブロ ッ ク レベルでは測定されません。 性能を決定する最も重要な要素は、 システム アーキテクチャが共有リ ソースの競合を処理する効率性です。 通常、 結合されたブロ ッ クには、 アプ リ ケーシ ョ ン プロセッサ ユニッ ト (APU)、 インターコネク ト、 I/O ペリ フェラル、 I/O、 およびメモ リ コン ト ローラー (スタティ ッ ク /ダイナミ ッ ク ) が含まれます (図 1)。 次に重要な要素は、 これらのブロ ッ クが動作するスピード、 および生成する ト ラフ ィ ッ クです。 これらのブロ ッ クは、 サブシステム (アプリ ケーシ ョ ン プロセッサ ユニッ ト、 I/O サブシステム、およびメモ リ サブシステムなど) にグループ化できます。特に AP SoC 上にある メモ リ サブシステムは、 SoC 性能に影響を与える最も重要な共有リ ソース サブシステムです。

システム性能に影響を与える要素を次に示します。

• キャ ッシュ サイズ

• メモ リ スピード

• メモ リの効率

• メモ リ データ幅

• CPU スピード

• インターコネク ト

• ブロ ッ クの統合

これらの要素の中には不変で変更できないものがあ り ますが、 ほとんどの要素は、 デバイス、 プラ ッ ト フォーム、 またはデザインによって異なり ます。

このアプリ ケーシ ョ ン ノートで使用される効率性および有効性は、 次のよ うに定義されています。

効率性とは、 メモ リ コン ト ローラーが効率的に DRAM を使用するこ とを示します。 効率的なメモ リ コン ト ローラーは、DRAM をインテ リジェン トに使用して、 よ り広い帯域幅を実現します。 帯域幅は MB/s で測定され、 効率はパーセンテージで測定されます。

X-Ref Target - Figure 1

図 1 : SoC ブロック図の例

Page 3: All Programmable SoC のシステム性能解析 - Xilinx...性能解析用に構成されたデザイン XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 5 性能解析用に構成されたデザイン

AP SoC システム性能

XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 3

有効性とは、 DRAM コン ト ローラーが効果的にメモ リ帯域幅を分配するこ とを示します。言い換えれば、 異なるポートに帯域幅を与える際の DDR コン ト ローラーの 「公平性」 を示します。

つま り、 効率性とは、 論理上の最大帯域幅からどれだけの帯域幅を実現できるかを示し、 有効性とは、 その帯域幅が競合ブロッ クにいかに分配されるかを示します。 図 2 に、 システム性能に影響を与える最も重要な要素を示します。

SoC に課せられた重要な任務の一つは、データ依存のス トールを最小限に抑えて CPU を継続的に実行するこ とです。 これを達成するには、 CPU で使用されるデータをキャ ッシュへロードする必要があ り ます。 このよ うにした場合、 メ イン メモリ よ り もアクセス レイテンシが大幅に減少します。データをキャ ッシュへロードするスピードは、 メモ リ サブシステムの性能に依存します。 たとえば、 メモ リ サブシステムの帯域幅が不足している場合、 キャ ッシュは指定時間内にフルにならずに、 CPU はス トールしてデータを待機します。 メモ リ サブシステムの性能は、 主に次の要素に依存します。

• メモ リのスピード (周波数)

• DRAM コン ト ローラーの効率性

• DRAM コン ト ローラーの有効性

• メモ リ インターフェイスの幅 (内部/外部)

° DDR コン ト ローラーへのポート (内部)

° DRAM へのインターフェイス (PHY 経由 - 外部)

注記 : メモ リ サブシステムにキャ ッシュは含まれません。

SoC 内のメモ リ サブシステムが十分な帯域幅を備えていない場合、システム全体の性能が低下します。たとえば、 CPU が高周波数で動作し、 レベル 2 キャ ッシュが適時送信できるデータ量よ り も多くのデータを メモリからフェッチしよ う とする場合、 CPU はデータを受信するまで一時的にス トール状態になり ます。 このよ うなシステムでは、 メモ リ サブシステムがボ トルネッ ク となるため、よ り高いクロ ッ ク スピードで CPU を実行するだけではシステムの性能は向上しません。図 3に、 システム性能に影響を与えるその他の要素を示します。

X-Ref Target - Figure 2

図 2 : システム性能に最も重要な要素

Page 4: All Programmable SoC のシステム性能解析 - Xilinx...性能解析用に構成されたデザイン XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 5 性能解析用に構成されたデザイン

AP SoC システム性能

XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 4

通常、SoC はヘテロジニアスなシステムであ り、多様な ト ラフ ィ ッ クを生成するブロ ッ クを含んでいます。これらのブロ ックはすべて、同じ メモ リ リ ソースを求めて競合します。 メモ リ サブシステムには、異なる回路ブロ ッ ク間のリ ソース競合問題を解決し、 異なる ト ラフ ィ ッ クを効率的かつ公平に処理する能力が必要です。 したがって、 SoC 内 (特にメモ リ サブシステムとプログラマブル ロジッ ク ) のほかの要素を考慮せずに CPU のクロ ッ ク レート を比較する評価方法は現実的ではなく、 誤った診断を招く可能性があ り ます。 Zynq-7000 AP SoC のさまざまな ト ラフ ィ ッ ク例と して、 マスターと DDR間のト ラフ ィ ッ クを次に示します。

• APU からの ト ラフ ィ ッ ク (CPU からのメモリのロード /ス ト ア命令、 セン ト ラル DMA からのダイレク ト メモ リ アクセス (DMA) 要求)

• PS ペリ フェラル (Ethernet、 USB など)

• PL からの DMA 要求

• PL ペリ フェラル (IP およびアクセラレーター )。 例 : ビデオ パイプライン IP

メモ リ サブシステムは、 このよ うな異なる ト ラフ ィ ッ ク ソースからのアクセス要求を調停し、 また DRAM の有効帯域幅を最大化する必要があ り ます。効率的なメモ リ コン ト ローラーは、 このバランスを保ちながら予想どおりのビヘイビアーを継続します。 メモ リ コン ト ローラーの公平性は、 QoS (quality of service) メカニズムによって維持され、 全体的なスループッ ト を最適化しながら、各ト ラフ ィ ッ クがスタベーシ ョ ン状態になるこ とを回避します。 メモ リ サブシステムの偏ったインプリ メンテーシ ョ ンは、 無条件の調停プライオ リティが原因であるこ とが多く、 このタイプの調停は、 異なるソースからの複数データ ス ト リームを同時にサポートする必要がある SoC には不適切です。通常、いずれかのソースがスタベーシ ョ ン状態になる と、 システム全体のスピードが低下します。

X-Ref Target - Figure 3

図 3 : AP SoC システム性能のコンポーネン ト

Page 5: All Programmable SoC のシステム性能解析 - Xilinx...性能解析用に構成されたデザイン XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 5 性能解析用に構成されたデザイン

性能解析用に構成されたデザイン

XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 5

性能解析用に構成されたデザインZynq-7000 AP SoC を使用するシステムをモデル化するには、PL から PS へのト ラフ ィ ッ クをエミ ュレートできるデザインが必要です。 これには、 コンフ ィギュレーシ ョ ン可能なザイ リ ンクス IP を使用して、 ユーザー デザインのさまざまな部分を模倣できます。 デザイン ファ イルのダウンロードは、 「 リ ファレンス デザイン」 を参照して ください。

1. C ド ラ イブの 「XAPP1219」 とい う名前が付いたディレク ト リにファ イルを解凍します。

2. Vivado Design Suite 2014.3 を起動します。

a. Tcl ウ ィンド ウを開きます。

b. デザイン ファ イルを配置したディ レク ト リへ移動 (cd) します。

c. Source コマンドで project.tcl ファ イルを実行します。

3. Vivado IP インテグレーターでブロ ッ ク図を表示します。

a. [IP Integrator] → [Open Block Design] をク リ ッ ク します。

4. [Generate Bitstream] をク リ ッ ク します。 必要に応じて使用できるよ うに、 生成済みのビッ ト ス ト リームを 1 つ提供しています。 このビッ ト ス ト リームを使用する場合は、 手順 6 から始めてください。

5. [Export Hardware] をク リ ッ ク して、 [Include bitstream] をオンにします。

6. Vivado Design Suite から SDK コマンドを実行します。

また、 すべてのアイテムを含むワークスペースも提供しています。 Vivado Design Suite を終了して SDK を起動する場合は、 このワークスペースを選択して ください。

このデザインは、 PL から PS DDR へのト ラフ ィ ッ クを生成してアプリ ケーシ ョ ンをエ ミ ュレート します。 このため、プログラムで AXI Traffic Generator (ATG) という IP コアを使用します。詳細は、『LogiCORE™ IP AXI Traffic Generator v2.0 製品ガイ ド』 (PG125) [参照 2] を参照して ください。 ATG は、 Ethernet、 USB、 PCIe® などの標準インターフェイスを模倣できますが、ユーザー アプリ ケーシ ョ ンによ り線密に適合するよ うにカスタマイズも可能です。このアプリ ケーシ ョ ン ノートに付属する リ ファレンス デザインには、 6 つの ATG があ り、 それぞれ Zynq-7000 SoC の 4 つの HP (high-performance) ポート、 ACP (アクセラレーター コ ヒーレンシー ポート )、 および汎用 (GP) ポートに接続されています。 これらはあらかじめ設定されていますが、 モデル化するシステムに応じて変更できます。 アプリ ケーシ ョ ンのモデル化におけるデザインの変更手順 (特に ATG 関連) については、 「システム性能解析」 を参照して ください。 図 4 に、 デザインのブロ ッ ク図を示します (Vivado Design Suite)。

Page 7: All Programmable SoC のシステム性能解析 - Xilinx...性能解析用に構成されたデザイン XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 5 性能解析用に構成されたデザイン

性能解析用に構成されたデザイン

XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 7

最上位図をシンプルにするため、 ATG は階層ブロ ッ クの中に配置されています。 最上位には、 ATG、 Constant ブロ ッ ク、および AXI Interconnect ブロ ッ クが 3 つ分かれるのではなく、1 つのブロッ ク (TrafficGen ブロ ッ ク ) の中に含まれています。図 5 のブロ ッ ク図は、階層内の TrafficGen ブロ ッ クを示しています。Constant ブロ ッ クが ATG の実行を開始し、Interconnectブロ ッ クが ATG AXI4 を Zynq-7000 AP SoC AXI3 インターフェイスに切り換えます。

6 つの ATG はすべて同じよ うに設定され、 最上位のト ラフ ィ ッ ク プロファ イルとデータの ト ラフ ィ ッ ク プロファ イルを設定します。 データ フローの設定は、 読み出し と書き込みがそれぞれ 50% とな り、 インターバルは 50 サイクルで固定です。 1 つのト ランザクシ ョ ンの開始から次の ト ランザクシ ョ ンの開始までの 50 サイ クルが測定されます ( ト ランザクシ ョンの開始は、 AXI Interconnect ブロ ッ クのアドレスが現れる)。 各 ATG は、 PS からの FCLK で動作し、 100MHz に設定されています。 これによって、 HP ポート と ACP ポートのそれぞれのインターフェイスで 256MB/s の読み出し と書き込みが実行されます。GP ポートのデータ幅は 32 ビッ トであるため、生成される ト ラフ ィ ッ クは、デザイン内のほかの ATG の半分とな り ます。 したがって、 GP ポートの読み出し と書き込みはそれぞれ 128MB/s とな り ます。 図 6 に、 各 ATG の設定を示します。

X-Ref Target - Figure 5

図 5 : TrafficGen ブロック図

Page 9: All Programmable SoC のシステム性能解析 - Xilinx...性能解析用に構成されたデザイン XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 5 性能解析用に構成されたデザイン

性能解析用に構成されたデザイン

XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 9

式 1 に MB/s 単位のレート計算式を示し、 式 2 に ATG の設定値を使用した計算式を示します。

式 1

説明

B = 1 ワードのバイ ト数N = TX のワード数I = インターバルf = PL ク ロ ッ ク周波数 (MHz)

式 2

ATG を 50% の読み出し と 50% の書き込みと してプログラムした場合、 AXI の書き込みチャネルに 256MB/s、 AXI の読み出しチャネルに 256MB/s が生じます。ATG は読み出し ト ランザクシ ョ ンと書き込みト ランザクシ ョ ンを同時に実行するため、 AXI インターフェイスでは合計 512MB/s のト ランザクシ ョ ンが生じます。 したがって、 この例の場合は、 HP ポートと ACP ポートのそれぞれで 512MB/s が生じます。 表 1 に、 各ポートの ト ラフ ィ ッ クおよび PS から PL へ転送される合計の MB/s を示します。 PS DDR の最大帯域幅を示し、 533MHz で動作する 32b DDR をベース と しています。

表 1 では、 PL からの ト ラフ ィ ッ ク量が PS DDR の最大帯域幅の 60% であるこ とを示しています。 PL から PS のインターフェイスでは、 DDR コン ト ローラーが処理できる量よ り も多くの ト ラフ ィ ッ クを生成できます。 ATG ト ラフ ィ ッ クを設定する際には、 PS DDR コン ト ローラーの許容可能オーバーロードに留意して ください。 つま り、 ATG をいかなる設定にしても、 PS DDR の最大帯域幅を超える ト ラフ ィ ッ クを生成するこ とはできません。 PL が PS DDR の理論上最大帯域幅の80% を超えるかど うかを確認するには、 このよ うなシンプルな表を作成する方法が有効です。 これによ り、 性能が目標値に達しない問題、 あるいはレイテンシが高いなどの問題を認識できます。

こ こでは、 システムをモデル化できるデザインを利用します。 性能指標を満たしているかは、 どのよ うに確認したらよいのでし ょ うか。 HP および ACP ポートでは、 実際に 256MB/s ト ラフ ィ ッ クが生成されているのでし ょ うか。 これらのデータをデザインから取得するには、 も う一つザイ リ ンクス IP を使用する必要があ り ます。AXI Performance Monitor (APM) を使用して、 モデル化された各 AXI インターフェイスや HP、 ACP、 および GP ポート からデータを収集します。 図 7 に、APM の設定を示します。

表 1 : PS DDR の HP および ACP ポートの帯域幅

HP0 HP1 HP2 HP3 ACP GP1

読み出し 256 256 256 256 256 128

書き込み 256 256 256 256 256 128

ポートの合計 512 512 512 512 512 256

合計 2816

PS DDR の最大帯域幅 4264

PS DDR の最大帯域幅のパーセンテージ

66.04%

B N×1f--- I×------------------ Rate=

8 16×1

100---------- 50×------------------------------ 256=

Page 10: All Programmable SoC のシステム性能解析 - Xilinx...性能解析用に構成されたデザイン XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 5 性能解析用に構成されたデザイン

性能解析用に構成されたデザイン

XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 10

APM は Profile モードで動作します。 このモードは、 SDK 2014.1 またはそれ以降でサポート されています。 その他のモードの詳細は、 『LogiCORE IP AXI Performance Monitor v5.0 製品ガイ ド』 (PG037) [参照 3] を参照してください。

Profile モードの場合は、 最上位の帯域幅とレイテンシを示します。 SDK は、 各スロ ッ ト またはインターフェイスのデータを取得するため、 50ms ごとに APM の情報を読み出します。 よ り詳しいインターフェイス データを収集するには、 その他のモードを使用します。 Advanced モードおよび Trace モードの場合は、 Profile モード よ り も高いレートでデータを取得します。 これらのモードは SDK でサポート されていないため、 このアプリ ケーシ ョ ン ノートでは説明しません。

図 7 に、 APM の設定を示します。 6 つのインターフェイスが選択されています。 各モニター インターフェイスは、 AXI3(Zynq-7000 AP SoC) ポート、 および 64 ビッ トのデータ幅と して同じよ うに設定されています。 例外と して、 GP ポートだけは 32 ビッ ト データ幅とな り ます。 図 7 に、 最初の 4 つのモニター インターフェイスの設定を示します (これらは HPポートであ り、 5 番目は ACP ポートで 6 番目は GP ポート )。 SDK の仕様に合わせて、 最初の 5 つの APM ポートは、HP0 → slot 0、 HP1 → Slot 1、 HP2 → Slot 2、 HP3 → Slot 3、 ACP → Slot 4 のよ うに接続する必要があ り ます。 このよ うに設定しなければ、 不正な結果が生じます。

Zynq-7000 AP SoC AXI ポートの設定は、図 8 に示します。この設定で、 ト ラフ ィ ッ ク ジェネレーターを Zynq-7000 AP SoCの異なるインターフェイスに接続します。

X-Ref Target - Figure 7

図 7 : AXI Performance Monitor の設定

Page 11: All Programmable SoC のシステム性能解析 - Xilinx...性能解析用に構成されたデザイン XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 5 性能解析用に構成されたデザイン

性能解析用に構成されたデザイン

XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 11

このデザインは、 システムをモデル化して性能情報を収集するよ うに構成された、 いわゆるシステム性能解析用のデザインです。

Vivado ウ ィンド ウの右側にある Flow Navigator で [Generate Bitstream] をク リ ッ クする と、 ビッ ト ス ト リームを生成できます。 この手順は、 ZIP ファ イルに含まれるワークスペース内のビッ ト ス ト リームを使用するこ とで省略できます。 ビッ トス ト リームの生成方法を示す手順は、 次のセクシ ョ ンで説明していますので、 Vivado IDE は起動させたままにしておいてください。

「はじめに」 で示したとおり、 システム性能に関する指標はも う一つあ り ます。 PL でハード ウェアをモデル化した場合、CPU の動作はどのよ うに確認したらよいでし ょ うか。 この場合、 Zynq-7000 アーキテクチャには PS 内にパフォーマンスモニタ リ ング ユニッ ト (PMU) があ り、 動作中の ARM Cortex-A9 に関するデータを収集できます。 また、 L2 キャ ッシュにはパフォーマンス カウンターがあ り、 それらのカウンター値を収集してユーザーに提示します。収集される指標は次のとおりです。

• CPU レベル 1 のキャッシュ ミ ス率

• CPU レベル 1 のキャッシュ アクセス数

• 1 読み出し命令に対する CPU のス トール サイクル

• 1 書き込み命令に対する CPU のス トール サイクル

CPU で動作するソフ ト ウェアの指標とモデル化されたハード ウェアを使用して、設計を開始する前にシステム性能を解析できます。

X-Ref Target - Figure 8

図 8 : Zynq AXI ポートの設定

Page 12: All Programmable SoC のシステム性能解析 - Xilinx...性能解析用に構成されたデザイン XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 5 性能解析用に構成されたデザイン

システム性能解析

XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 12

システム性能解析次の手順では、 モデルを実行して、 さまざまな解析ポイン トで何が生じているかを示します。 性能指標を確認するには、SDK でこのデザインを実行する必要があ り ます。 最初の実行は、 ソフ ト ウェアを使用せずに行います。 この場合、 PS メモ リ コン ト ローラーのみを介した場合の、 HP ポートおよび GP ポートから DDR への性能を示します。

ビッ ト ス ト リームを生成しない場合は、SDK を起動して Workspace ディ レク ト リ (ZIP ファ イルに含まれる ) を使用して、SDK 内でワークスペースを選択できます。 その場合は、 図 11 に示す画面からのスタート となるため、 14 ページの手順 4までスキップして ください。

システム解析の設定手順は次のとおりです。

1. Vivado IDE の [File] メニューから、[Export] → [Export Hardware] をク リ ッ ク して、SDK 用にハードウェアをエクスポート します。次に、 [File] → [Launch SDK] をク リ ッ ク して、エクスポート したハード ウェア定義を使用して SDK を起動します。 図 9 に示す SDK ウ ィンド ウで、 [File] → [Import] → [General] → [Existing Projects into Workspace] をク リ ッ クして [Next] をク リ ッ ク します。

X-Ref Target - Figure 9

図 9 : インポート したハードウェアを示す SDK 画面

Page 13: All Programmable SoC のシステム性能解析 - Xilinx...性能解析用に構成されたデザイン XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 5 性能解析用に構成されたデザイン

システム性能解析

XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 13

2. ZIP ファ イルの中にあるルート ディ レク ト リ をワークスペース と して選択します。図 10 に示すよ うに、 2 つのチェックボッ クス ([perfmon] および [standalone_bsp_0]) をオンにします。

X-Ref Target - Figure 10

図 10 : SDK でプロジェク ト をワークスペースにインポート

Page 14: All Programmable SoC のシステム性能解析 - Xilinx...性能解析用に構成されたデザイン XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 5 性能解析用に構成されたデザイン

システム性能解析

XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 14

3. [Finish] をク リ ッ ク します。 図 11 に、 インポート された SDK プロジェク ト を示します。

4. ユーザーのコンピューターが 2 つの USB コネクタを使用して ZC702 評価ボードへ接続されているこ とを確認します。1 つはプログラ ミ ング ケーブルへ接続し、 も う一つは UART へ接続するこ とによって、 端末で出力を確認できます。

5. ZC702 ボード上では、 電源スイ ッチを ON にして、 デバイスをプログラム可能にします。

6. Terminal 1 を接続して、 C プログラムからの出力を表示します。 端末の接続手順は次のとおりです。

a. SDK ウ ィンド ウ下部にある Terminal 1 タブ (図 11 には [Term] と表示) を開きます。

b. 3 つ目のボタンをク リ ッ ク します (テーブルのよ うなもの)。 これが設定タブです。

X-Ref Target - Figure 11

図 11 : SDL プロジェク ト ワークスペース

Page 15: All Programmable SoC のシステム性能解析 - Xilinx...性能解析用に構成されたデザイン XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 5 性能解析用に構成されたデザイン

システム性能解析

XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 15

c. 図 12 のよ うに設定を変更します。 COM3 は、 ユーザー マシンによって異なる COM# になる場合があるので注意が必要です。

X-Ref Target - Figure 12

図 12 : UART Terminal 0 の設定

Page 16: All Programmable SoC のシステム性能解析 - Xilinx...性能解析用に構成されたデザイン XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 5 性能解析用に構成されたデザイン

システム性能解析

XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 16

PL のプログラム手順は次のとおりです。

1. ザイ リ ンクス ツールの中にある FPGA プログラム コマンドを使用します。 SDK でビッ ト ス ト リーム(pretest_wrapper.bit) が自動的に選択されます。 その画面で [Program] をク リ ッ ク します。

2. DONE を示す LED (DS3) が High になった後、 図 13 に示すよ うに、 [Run] → [Debug Configurations] をク リ ッ ク して新しいデバッグ コンフ ィギュレーシ ョ ンを作成し、 [Xilinx C/C++ Application (System Debugger)] をク リ ッ ク します。

3. 新しいウ ィンド ウで、 [Debug Type] を [Standalone Application Debug] に変更します。

X-Ref Target - Figure 13

図 13 : [Debug Configurations] の設定

Page 17: All Programmable SoC のシステム性能解析 - Xilinx...性能解析用に構成されたデザイン XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 5 性能解析用に構成されたデザイン

システム性能解析

XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 17

4. [Name] を perf_mon に変更します。 設定されたウ ィンド ウは図 14 のよ うにな り ます。

X-Ref Target - Figure 14

図 14 : デバッグ コンフ ィギュレーシ ョ ンのスタンドアロン アプリケーシ ョ ンの設定

Page 18: All Programmable SoC のシステム性能解析 - Xilinx...性能解析用に構成されたデザイン XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 5 性能解析用に構成されたデザイン

システム性能解析

XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 18

5. [Application] タブへ移動して、 [Download Application] をオンにします。 [Project Name] および [Application] は、図 15 に示すよ うに自動的に入力されます。

6. [Stop at program entry] をオンにします。 これによって、 自動的にブレークポイン ト を挿入する機能がプログラムに備わり、 ユーザーが SDK に指示する とプログラムが開始します。

X-Ref Target - Figure 15

図 15 : デバッグ コンフ ィギュレーシ ョ ンのソフ トウェア ダウンロード追加

Page 19: All Programmable SoC のシステム性能解析 - Xilinx...性能解析用に構成されたデザイン XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 5 性能解析用に構成されたデザイン

システム性能解析

XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 19

7. 次に、 [Debug] をク リ ッ ク してデバッグ セッシ ョ ンを開始します。 [Confirm Perspective Switch] ダイアログ ボッ クスが表示されます。 そのダイアログ ボッ クスで [Yes] をク リ ッ ク します。 SDK セッシ ョ ン画面は図 16 のよ うになり ます。

8. [Target Connection] および [SD log] タブを閉じます。

9. [Terminal 1] タブを選択する と、 プログラムの出力内容を確認できます。

X-Ref Target - Figure 16

図 16 : デバッグ パースペクテ ィブ

Page 20: All Programmable SoC のシステム性能解析 - Xilinx...性能解析用に構成されたデザイン XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 5 性能解析用に構成されたデザイン

システム性能解析

XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 20

10. スタート ボタン (図 17 の赤枠部分) をク リ ッ ク します。

この動作で hello_world のコードが実行され、 ATG に接続されたポートの ト ランザクシ ョ ン数が提示されます。その後、 プログラムが MB/s を素早く計算して表示します。 SDK セッシ ョ ン画面は図 17 のよ うにな り ます。

端末に表示された結果は、 HP ポート と ACP ポートがすべて 256MB/s で GP ポートは 128MB/s になる必要があ り ます。 これは、 C コードを使用して APM からデータを抽出する方法ですが、 SDK の現バージ ョ ンには、 HP0 ~ 3 および ACP の性能データを自動で提示する新機能があ り ます。

X-Ref Target - Figure 17

図 17 : Terminal 1 に表示されたデバッグ パースペクテ ィブの結果

Page 21: All Programmable SoC のシステム性能解析 - Xilinx...性能解析用に構成されたデザイン XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 5 性能解析用に構成されたデザイン

システム性能解析

XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 21

GP ポートのみを読み出すよ うに変更した perf_mon があ り ます。 これを使用して、 GP ポート を読み出すこ とができます。 手順は次のとおりです。

1. SDK で新規の性能解析パースペクティブ (Performance Analysis Perspective) を開始するため、 [Window] →[ClosePerspective] をク リ ッ ク して、 既存のデバッグ パースペクティブを閉じます。

2. 性能解析パースペクティブを実行するため、 前回の perf_mon の実行と同様に [Run] → [Debug configurations] をクリ ッ ク します。

3. 今回は、 図 18 のよ うに [Performance Analysis] をク リ ッ ク します。

4. コンフ ィギュレーシ ョ ン名を 「Performance」 に変更します。 今回は、 SDK が自動的に APM を読み出すため、 ユーザーがアプリ ケーシ ョ ンに読み出しを実行させる必要はあ り ません。

X-Ref Target - Figure 18

図 18 : デバッグ コンフ ィギュレーシ ョ ンのスタンドアロン アプリケーシ ョ ンの設定

Page 22: All Programmable SoC のシステム性能解析 - Xilinx...性能解析用に構成されたデザイン XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 5 性能解析用に構成されたデザイン

システム性能解析

XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 22

5. [Debug] をク リ ッ ク し、[Yes] をク リ ッ ク してパースペクティブを切り換えます。出力結果は、図 19 のよ うになり ます。

これらの結果は、 APM を読み出したものと同じですが、 SDK は APM だけでなく、 PS の PMU も読み出して APU またはAPM に関するデータを提供するため、データ量は多少増加します。 [PL Performance] および [PS Performance] の表は、サマリのテーブルをグラフ化したものです。 サマ リは瞬間的に捉えたスナップシ ョ ッ ト を表し、 グラフは長期的なデータを表します。 MicroBlaze™ プロセッサのタブに関しては、 このアプリ ケーシ ョ ン ノートの範疇ではないため閉じても構いません。

これで、 性能を示すデータが揃いましたが、 これらは何を表しているのでし ょ うか。 最初の手順と して、 それぞれの値が示す意味を理解していきます。 その後、 高度な手順と して、 これらのデータを解析して、 目標の性能に到達しているかを判断します。

まず、 [APU Performance Summary] タブを開きます。 このタブには、 PMU カウンターと APM の指標が一覧表示されています。 1 つ目のテーブルは、 PMU カウンターからの値で、 各 Cortex-A9 プロセッサの指標を示しています。 各プロセッサのレベル 1 (L1) キャ ッシュ、 そして 2 つの Cortex-A9 コアで共有される統合されたキャ ッシュのレベル 2 (L2) キャ ッシュに対応しています。 PS 性能の指標は次のとおりです。

• CPU Utilization (%) : 非アイ ドル状態での CPU ク ロ ッ ク サイクル率を示す。

• CPU Instructions Per Cycle (IPC) : 1 サイクルに実行された命令数を示す。

• L1 Data Cache Miss Rate (%) : L1 データ キャ ッシュに対してアクセスした数およびミ ス率を示す。

• CPU Write/Read Stall Cycles Per Instruction : メモ リの書き込み (write) およびデータ キャ ッシュのリ フ ィル (read) 動作が原因となる、 1 命令に対するス トール サイクル数を示す。

X-Ref Target - Figure 19

図 19 : パフォーマンス パースペクテ ィブ

Page 23: All Programmable SoC のシステム性能解析 - Xilinx...性能解析用に構成されたデザイン XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 5 性能解析用に構成されたデザイン

システム性能解析

XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 23

APM の指標は、 次のよ うに定義されています。

• Read/Write Transactions

ATG で生成される読み出し /書き込みト ランザクシ ョ ンの数を示しています。 一般的に ATG はト ランザクシ ョ ンを多数生成するため、 この値は大き くな り ます。

• Read/Write Latency - Average

ト ランザクシ ョ ンのレイテンシを示しています。 コマンドを受信してからバース トの最後のワードが送信されるまでの期間が測定されます。

レイテンシは上記のよ うに測定されるため、 書き込みの受信と同時に書き込み動作が測定され、 レイテンシが低くなり ます。 したがって、システムにバッ ク プレッシャーがない場合、 この値はバース ト サイズよ り もわずかに上回る程度とな り ます。 これを使用して、書き込みト ランザクシ ョ ンに対してバッ ク プレッシャーが動作するタイ ミ ングを示すこ とができます。 ユーザーは、 このよ うにして、 書き込みがスレーブでス トールするタイ ミ ングを認識できます。書き込みレイテンシがバース ト長よ り も大き く上回る と、 これらの ト ランザクシ ョ ンがスレーブでス トールします (デザイン内の PS)。

• Read/Write Latency - Std.Dev.

レイテンシ測定値の標準偏差を示しています。

• Read/Write Throughput (MB/s)

ト ランザクシ ョ ン数、 ト ランザクシ ョ ン サイズ、およびインターフェイス スピードに基づいて、 インターフェイスのスループッ トが計算されています。

全体的な PL 性能を見てみまし ょ う。ボードの電源投入で ATG が動作しています。コアの実行開始に伴って一定値 (ロジック 1) が保持されているため、 ATG は Zynq-7000 AP SoC がリセッ トから回復する と実行します。 また ATG は、一定数のトラフ ィ ッ クを生成するよ うに設定されているため、 図 20 のよ うに ト ラフ ィ ッ クはグラフ上で一本の線と して現れます。 +印が付いたオレンジ色のボッ クスは、 グラフの拡大/縮小機能です。 図 20 に、 このボッ クスを丸で囲んでいます。

Page 24: All Programmable SoC のシステム性能解析 - Xilinx...性能解析用に構成されたデザイン XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 5 性能解析用に構成されたデザイン

システム性能解析

XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 24

このタブの上部には、 オレンジ色の + の拡大部分を示します。 グラフ内の任意の部分をク リ ッ ク して、 ズーム ボッ クスを配置できます。 拡大表示したい部分にズーム ボッ クスをク リ ッ ク してド ラ ッグします。 CTRL キーを押しながらマウスをスクロールして、 ズーム エリ アを拡大/縮小するこ と も可能です。

[PS Performance] タブは、 [PL Performance] と類似していますが、 PMU カウンターをグラフ化したものであ り、 APM から取得したデータではあ り ません。 それぞれの値が示す意味を理解するこ とで、 これらがデザイン要件を満たしているかを判断できます。結果は、 アプリ ケーシ ョ ンによって異なり ます。 まず最初に、任意のト ラフ ィ ッ クで ATG が設定されているこ とを確認します。 ソフ ト ウェアを動作させた状態で、 帯域幅とレイテンシがアプリ ケーシ ョ ンの要件を満たしている場合は、 これで終了ですが、 性能に関する要件が満たされていない場合は、 何をすべきでし ょ うか。

この問題は、 簡単には解決できません。 通常、 性能を向上させるパラ メーターは 1 つだけではあ り ません。 いくつかの要素を確認する必要があ り ます。 すでに言及したとおり、 PS-PL 間を往来する ト ラフ ィ ッ ク量を確認します。 PS DDR の理論上の最大帯域幅の 80% を使用している場合は、 これが問題となる可能性があ り ます。 も う一つの要素と して、すべてのト ラフ ィ ッ クが 1 つまたは 2 つの HP ポート上に集中しているかを確認します。 そのよ うな場合は、 これらの ト ラフ ィ ックを複数ポートに分散可能であるかを考えます。 ピーク ト ラフ ィ ッ ク用にシステムがモデル化されていませんか。 10% ~50% 程度しか生じないにもかかわらず、 100% のピーク ト ラフ ィ ッ クを達成しよ う と していませんか。

Zynq-7000 AP SoC で性能を調整する作業は非常に複雑です。 このアプリ ケーシ ョ ン ノートでは言及していませんが、デザインのフローや性能要件が異なるため、 特定アプリ ケーシ ョ ンの設定がほかのアプリ ケーシ ョ ンに必ずしも有効とは限りません。 詳細は、 『SDK ユーザー ガイ ド : システム性能解析』 (UG1145) [参照 1] および 『UltraFast エンベデッ ド デザイン設計手法ガイ ド』 (UG1046) [参照 4] を参照してください。

X-Ref Target - Figure 20

図 20 : [Performance Analysis] の [PL Performance] タブ

Page 25: All Programmable SoC のシステム性能解析 - Xilinx...性能解析用に構成されたデザイン XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 5 性能解析用に構成されたデザイン

モデルへの変更および追加

XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 25

注記 : SDK 2014.3 には、 次の制約事項があ り ます。

° ハードウェア デザインには、 AXI Performance Unit が 1 つ含まれる必要があ り、 0 から 5 までのスロ ッ トは、順にHP0、 HP1、 HP2、 HP3、 HP4、 ACP ポートへ接続します。

° APM カウンターが読み出される と、すべてのプロファイル カウンターがリセッ ト されます。 このため、 2 つのエンティティが APM を読み出すと、 結果が不正になり ます。 可能な限り、 SDK または perf_mon C コードを使用して、帯域幅を読み出しおよび表示させます。推奨方法は SDK です。 perf_mon コードは、必要に応じて GP ポートを読み出す際に使用します。

モデルへの変更および追加このモデルを使用してユーザー アプリ ケーシ ョ ンをよ り厳密に模倣する方法は 2 つあ り ます。 1 つ目は、 ソフ ト ウェアを追加する方法です。 2 つ目は、ハードウェア モデルを変更して、ユーザー アプリ ケーシ ョ ンのデータ フローを模倣する方法です。 前のセクシ ョ ンでは、 モデルに複数のソ フ ト ウ ェアを追加し ま した。 ソ フ ト ウ ェアを追加する際、 SDK でhello_world コードを独自のものに置き換えるこ とができます。 GP ポートの APM を読み出すために hello_world のコードが重要な場合は、 独自コードに統合できます。 SDK の詳細は、 『Zynq-7000 All Programmable SoC ソフ ト ウェア開発者向けガイ ド』 (UG821) [参照 5] または 『Zynq-7000 All Programmable SoC : コンセプ ト、 ツール、テクニッ ク ガイ ド : 効率的なエンベデッ ドシステム構築をサポートするハンディガイ ド』 (UG873) [参照 6] の 「Zynq プロセッシング システムを使用するエンベデッ ド システム デザイン」を参照してください。また、その他の参考資料およびビデオは、Document Navigatorのデザイン ハブから入手できます。

1. [Import] ウ ィンド ウで [C/C++] をク リ ッ ク して、 C コードを含むディ レク ト リ を選択します。 図 21 および図 22 に、 Cまたは C++ コードをインポートするウ ィンド ウを示します。

X-Ref Target - Figure 21

図 21 : 既存の C コードを SDK にインポート

Page 27: All Programmable SoC のシステム性能解析 - Xilinx...性能解析用に構成されたデザイン XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 5 性能解析用に構成されたデザイン

モデルへの変更および追加

XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 27

2. 新規のパフォーマンス パースペクティブを作成します (図 23)。

SDK およびソフ ト ウェア デバッグに関するその他の資料は、 「参考資料」 を参照してください。

2 つ目は、 ハード ウェア モデルを変更する方法です。 この方法には、 次の 4 つの手法があ り ます。

• さ らに ATG を追加する

• ATG を独自の IP で置き換える

• 既存 ATG のト ラフ ィ ッ ク フローを変更する

• APM を追加した独自の IPI デザインを追加する

ハード ウェア デザインは、 このアプリ ケーシ ョ ン ノートの一部であ り、 これらの変更および追加が可能です。

このデザインで ATG の追加はサポート されていません。 ATG を PS へ接続するために残されたポートは GP ポートのみです。 追加する場合は、 このデザインの ATG と GP0 の接続方法を真似て、 GP1 への別の TrafficGen 接続を行う こ とで実現できます。 その後、 TrafficGen が GP0 へ接続される方法と同じよ うにして、 各信号を所定の場所へ接続します。

ATG を独自の IP に置き換える方法は、 多くの時間を要する上に Vivado IP インテグレーターの知識も必要です。 この方法については、 アプ リ ケーシ ョ ン ノートの後半で説明しています。 確認すべき最も重要な事は、 コアが AXI3 または AXI4メモ リ マップド インターフェイスを備えているこ とです。 AXI4 の場合は、 PS へ接続するために TrafficGen ブロ ッ クで使用されるよ うなインターコネク トが必要です。

ATG コンフ ィギュレーシ ョ ンのフローを変更して、 よ り厳密にアプリ ケーシ ョ ン データ フローを模倣する方法について説明します。 ATG コンフ ィギュレーシ ョ ンを変更する手順は次のとおりです。

1. アプリ ケーシ ョ ン ノートの最初に作成したデザインを Vivado IDE で開きます ( 「性能解析用に構成されたデザイン」参照)。

X-Ref Target - Figure 23

図 23 : 新しいコンフ ィギュレーシ ョ ン

Page 28: All Programmable SoC のシステム性能解析 - Xilinx...性能解析用に構成されたデザイン XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 5 性能解析用に構成されたデザイン

モデルへの変更および追加

XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 28

2. 任意の TrafficGen モデルをダブルク リ ッ ク して階層内に入り ます。

TrafficGen ブロ ッ クには 0 ~ 5 までの番号が付いています。 最初の 4 つ (TrafficGen0 ~ 3) は、 HP0 ~ 3 に接続されており、 TrafficGen4 は ACP、 TrafficGen5 は S_AXI_GP0 に接続されています。

3. 階層内に入った後、図の中の axi_traffic_gen_0 をダブルク リ ッ ク します。図 24 のよ うな ATG のコンフ ィギュレーシ ョン画面が表示されます。

まず最初に、プロファ イルを変更します。 カスタム モードでは、 Zynq-7000 プラ ッ ト フォームの Cortex-A9 あるいは PL のその他の CPU (MicroBlaze プロセッサなど) を使用して ATG をプログラムできます。 詳細は、 『LogiCORE IP AXI TrafficGenerator v2.0 製品ガイ ド』 (PG125) [参照 2] の ATG に関する説明を参照して く ださい。 ド ラ イバー ソ フ ト ウ ェアは、C:\Xilinx\SDK\2014.3\data\embeddedsw\XilinxProcessorIPLib\drivers\trafgen_v3_2\doc\html\ap

i\index.html にあ り ます。 ト ラフ ィ ッ クの動的制御を実装する場合は、 このモードを使用しますが、 このアプ リ ケーシ ョ ン ノートでは説明していません。

次に、 ト ラフ ィ ッ ク プロファ イルを設定します。 便宜上、 4 つのプロファイル (Video、 PCIe、 Ethernet、 USB) があらかじめ定義されています。 これらのプロファ イルの詳細は、 『LogiCORE IP AXI Traffic Generator v2.0 製品ガイ ド』 [参照 2] を参

X-Ref Target - Figure 24

図 24 : ATG コンフ ィギュレーシ ョ ンの変更

Page 29: All Programmable SoC のシステム性能解析 - Xilinx...性能解析用に構成されたデザイン XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 5 性能解析用に構成されたデザイン

まとめ

XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 29

照してください。 これらの各モードを使用して、 インターフェイスや生成する ト ラフ ィ ッ クに関するさまざまな項目を選択できます。 あらかじめ定義されているすべてのモードが、 モデル化する ト ラフ ィ ッ クの要件を満たさない場合は、 Dataモードを使用します。 例では、 このモードを使用しています。 ユーザーは、 次の項目を変更できます。

• AXI オプシ ョ ン : 生成される ト ランザクシ ョ ンのデータ幅、 ベース アドレス、 高位アドレス。 これらは、 Zynq-7000AP SoC の DDR 用に設定されます。 1 つの設定を変更する と、 オンチップ メモ リ (OCM) のこれらの設定が変更される場合があ り ます。

• Data モード :

° パターン (固定またはランダム サイズ)、 ランダム サイズの最小/最大転送サイズ、 固定サイズの転送長。

° ト ランザクシ ョ ン タイプ。 ATG の読み出し、 書き込み、 読み出し /書き込み、 およびそれらのパーセンテージ。

° 例で使用される設定は、 固定の 16 ワード バース ト、 50% の読み出し と 50% の書き込み。

° ト ランザクシ ョ ン間のインターバル (固定またはランダム)。 インターバルの設定は 50 サイ クルで、 ATG 用のクロ ッ ク サイクル。 例では 100MHz ク ロ ッ クを使用。

° ト ランザクシ ョ ン アドレッシング。 固定のみ。 これは、 アドレスがインク リ メン ト またはランダムのいずれかに制限される。

このデザインを使用して ATG を変更するこ とで、 Zynq-7000 AP SoC 用のアプリ ケーシ ョ ン モデルを作成できます。

注記 : システムに過度の付加が与えられる と、 性能可視化 (Performance Visualization) の結果が不正になり ます。 たとえば、最初のセクシ ョ ンで示した リ ファレンス デザインで、各 ATG のインターバルを 30 サイ クル未満に設定します。その結果、生成される ト ラフ ィ ッ クは、各 AXI インターフェイスで 844MB/s、 合計する と 4,220MB/s になり ます。 これは 533MHz で100% の DDR 使用率とな り、(すべてとは言わないが) ほとんどの DDR コン ト ローラーでは達成不可能です。Zynq-7000 APSoC の付加に関する詳細は、 『SDK ユーザー ガイ ド : システム性能解析』 (UG1145) [参照 1] を参照してください。

も う一つ有効な方法と して、 ATG を既存 IP で置き換える方法があ り ます (この場合、 Vivado ツールにすでにインポート されている必要がある )。 IP を追加する場合は、 ATG を削除してから独自 IP を追加します。 この作業には、 Vivado アーキテクチャおよび IP インテグレーターに関する実用的な知識が必要です。 Vivado アーキテクチャおよび IP インテグレーターに精通していない方は、 『Vivado Design Suite チュート リ アル : IP を使用した設計』 (UG939) [参照 7] および 『Vivado DesignSuite ユーザー ガイ ド : IP を使用した設計』 (UG896) [参照 8] を参照してください。 Vivado 2014.2 の Document Navigator からアクセス可能なデザイン ハブ [参照 9] では、 役に立つさまざまな資料およびビデオを提供しています。

まとめこのアプ リ ケーシ ョ ン ノートでは、 All Programmable SoC の性能解析について包括的な説明をしています。 このよ うに性能を解析するこ とで、デバイスが性能要件を満たすこ とが可能であるかを判断できます。 CPU のスピードを着目するだけなら簡単なのですが、 メモ リ コン ト ローラーの効率が悪ければ、 CPU 動作は低速化します。

こ こでは、 Zynq-7000 AP SoC をベースとするアプリ ケーシ ョ ンのモデル化に利用できる リ ファレンス デザインを提供し、これらを使用して実際に達成可能な性能を示します。 このモデルは、 ユーザーが独自のソフ ト ウェアと組み合わせ可能な実際のハードウェア内のデザインを採用しています。 これによって、 ユーザーのアプリ ケーシ ョ ンをモデル化して、 早期の設計段階で性能を評価できます。

このモデルの ATG を変更、 あるいは独自 IP に置き換えるこ とで、 アプ リ ケーシ ョ ンを厳密にモデル化できます。 これによ り、 Zynq-7000 デバイスで達成できるこ と、 できないこ とをよ り詳し く解析できます。

SDK の機能と性能解析用の IP を組み合わせて使用するこ とで、 Zynq-7000 AP SoC がユーザー アプリ ケーシ ョ ンの性能要件を満たすかど うかを確実に評価できます。

リファレンス デザインこのアプリ ケーシ ョ ン ノートの リ ファレンス デザインは、 ザイ リ ンクスのウェブサイ トからダウンロードできます。

表 2 に、 リ ファレンス デザインの詳細を示します。

Page 30: All Programmable SoC のシステム性能解析 - Xilinx...性能解析用に構成されたデザイン XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 5 性能解析用に構成されたデザイン

参考資料

XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 30

参考資料1. 『SDK ユーザー ガイ ド : システム性能解析』 (UG1145)

2. 『LogiCORE IP AXI Traffic Generator v2.0 製品ガイ ド』 (PG125)

3. 『LogiCORE IP AXI Performance Monitor v5.0 製品ガイ ド』 (PG037)

4. 『UltraFast エンベデッ ド デザイン設計手法ガイ ド』 (UG1046)

5. 『Zynq-7000 All Programmable SoC ソフ ト ウェア開発者向けガイ ド』 (UG821)

6. 『Zynq-7000 All Programmable SoC : コンセプ ト、 ツール、 テクニッ ク ガイ ド : 効率的なエンベデッ ドシステム構築をサポートするハンディ ガイ ド』 (UG873)

7. 『Vivado Design Suite チュート リ アル : IP を使用した設計』 (UG939)

8. 『Vivado Design Suite ユーザー ガイ ド : IP を使用した設計』 (UG896)

9. Vivado 2014.2 - Document Navigator のデザイン ハブ (Document Navigator は Vivado Design Suite からアクセス可能)

10. 『AXI リ ファレンス ガイ ド』 (UG761)

表 2 : リファレンス デザインの詳細

パラメーター 説明

全般

開発者 Forrest Pickett

デバイス番号 XC7Z020

ソース コードの提供 あ り

ソース コードの形式 (提供される場合) C

既存リ ファレンス デザインから使用した IP AXI Traffic Generator

AXI Performance Monitor

シミ ュレーシ ョ ン

論理シ ミ ュレーシ ョ ンの実施 N/A

タイ ミ ング シ ミ ュレーシ ョ ンの実施 N/A

論理シ ミ ュレーシ ョ ンおよびタイ ミ ング シ ミ ュレーシ ョ ン用テス トベンチの提供

N/A

テス トベンチの形式 N/A

使用したシ ミ ュレータ /バージ ョ ン N/A

SPICE/IBIS シ ミ ュレーシ ョ ンの実施 N/A

使用したインプリ メンテーシ ョ ン ツール/バージ ョ ン ザイ リ ンクス SDK (2014.3)

スタティ ッ ク タイ ミ ング解析の実施 N/A

ハードウェア検証

ハードウェア検証の実施 N/A

使用したプラ ッ ト フォーム Vivado Design Suite 2014.3

Page 31: All Programmable SoC のシステム性能解析 - Xilinx...性能解析用に構成されたデザイン XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 5 性能解析用に構成されたデザイン

改訂履歴

XAPP1219 (v1.0) 2014 年 12 月 11 日 japan.xilinx.com 31

改訂履歴次の表に、 この文書の改訂履歴を示します。

法的通知The information disclosed to you hereunder (the “Materials”) is provided solely for the selection and use of Xilinx products.To the maximum extentpermitted by applicable law:(1) Materials are made available "AS IS" and with all faults, Xilinx hereby DISCLAIMS ALL WARRANTIES ANDCONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY,NON-INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and (2) Xilinx shall not be liable (whether in contract or tort, includingnegligence, or under any other theory of liability) for any loss or damage of any kind or nature related to, arising under, or in connection with, theMaterials (including your use of the Materials), including for any direct, indirect, special, incidental, or consequential loss or damage (including loss ofdata, profits, goodwill, or any type of loss or damage suffered as a result of any action brought by a third party) even if such damage or loss was reasonablyforeseeable or Xilinx had been advised of the possibility of the same.Xilinx assumes no obligation to correct any errors contained in the Materials or tonotify you of updates to the Materials or to product specifications.You may not reproduce, modify, distribute, or publicly display the Materials withoutprior written consent.Certain products are subject to the terms and conditions of Xilinx’s limited warranty, please refer to Xilinx’s Terms of Sale whichcan be viewed at http://www.xilinx.com/legal.htm#tos; IP cores may be subject to warranty and support terms contained in a license issued to you byXilinx.Xilinx products are not designed or intended to be fail-safe or for use in any application requiring fail-safe performance; you assume sole risk andliability for use of Xilinx products in such critical applications, please refer to Xilinx’s Terms of Sale which can be viewed athttp://www.xilinx.com/legal.htm#tos.

Automotive Applications DisclaimerXILINX PRODUCTS ARE NOT DESIGNED OR INTENDED TO BE FAIL-SAFE, OR FOR USE IN ANY APPLICATION REQUIRING FAIL-SAFEPERFORMANCE, SUCH AS APPLICATIONS RELATED TO:(I) THE DEPLOYMENT OF AIRBAGS, (II) CONTROL OF A VEHICLE, UNLESSTHERE IS A FAIL-SAFE OR REDUNDANCY FEATURE (WHICH DOES NOT INCLUDE USE OF SOFTWARE IN THE XILINX DEVICE TOIMPLEMENT THE REDUNDANCY) AND A WARNING SIGNAL UPON FAILURE TO THE OPERATOR, OR (III) USES THAT COULD LEADTO DEATH OR PERSONAL INJURY.CUSTOMER ASSUMES THE SOLE RISK AND LIABILITY OF ANY USE OF XILINX PRODUCTS INSUCH APPLICATIONS.

© Copyright 2014 Xilinx, Inc. Xilinx, the Xilinx logo, Artix, ISE, Kintex, Spartan, Virtex, Vivado, Zynq, and other designated brands included herein aretrademarks of Xilinx in the United States and other countries.Cortex is a trademark of ARM in the EU and other countries.PCI, PCIe, and PCI Expressare trademarks of PCI-SIG and used under license.All other trademarks are the property of their respective owners.

この資料に関するフ ィードバッ クおよびリ ンクなどの問題につきましては、 [email protected] まで、 または各ページの右下

にある [フ ィードバッ ク送信] ボタンをク リ ッ クする と表示されるフォームからお知らせください。いただきましたご意見を参考に早急に

対応させていただきます。 なお、 このメール アドレスへのお問い合わせは受け付けており ません。 あらかじめご了承ください。

日付 バージョ ン 内容

2014 年 12 月 11 日 1.0 初版