ザイリンクス ソフトウェア 開発キット (sdk) ユー …ザイリンクス...

73
ザイリンクス ソフトウェア 開発キ ッ ト (SDK) ユーザー ガイド システム パフォーマンス解析 UG1145 (v2017.1) 2017 年 4 月 5 日

Upload: others

Post on 01-Aug-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

ザイリンクス ソフ トウェア開発キッ ト (SDK) ユーザー ガイド

システム パフォーマンス解析

UG1145 (v2016.2) 2016 年 6 月 14 日UG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 2: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

システム パフォーマンス解析 2UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.com

改訂履歴

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

日付 バージョ ン 改訂内容

2016/06/14 2016.2 文章を若干変更

UG1145 (v2016.3) 2016 年 10 月 5 日

2016/10/05 : Vivado Design Suite 2016.3 リリース。内容の変更なし。

UG1145 (v2016.4) 2016 年 11 月 30 日

2016/11/30 : Vivado® Design Suite 2016.4 リリース。2016.2 から内容の変更なし。

UG1145 (v2017.1) 2017 年 4 月 5 日

2017/04/05: Vivado® Design Suite 2017.1 リリース。内容の変更なし。

Page 3: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

目次

改訂履歴 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

第 1章 : 概要SPA ツールボッ クス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

パフォーマンス解析フロー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

要件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

その他のリ ソース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

第 2章 : 背景

第 3章 : システム パフォーマンス モデリング プロジェク トSPM ソフ ト ウェア . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

SPM ハードウェア . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

第 4章 : 監視フレームワークPL プロファイル カウンター . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

PS プロファイル カウンター . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

ホス ト /ターゲッ ト間の通信 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

第 5章 : SPM の入門ATG コンフ ィギュレーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

パフォーマンス解析のパースペクティブ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

第 6章 : ソフ トウェア パフォーマンスの評価パフォーマンスの監視 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

パフォーマンス改善の可視化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

第 7章 : ハイ  パフォーマンス ポートの評価HD ビデオ ト ラフ ィ ッ ク . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

高帯域幅ト ラフ ィ ッ ク . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

第 8章 : DDR コン ト ローラー設定の評価デフォルトの DDRC 設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

変更した DDRC 設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

オンチップ メモ リの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

第 9章 : メモリ階層および ACP の評価メモ リ パフォーマンスの査定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

データ サイズおよび局所性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

共有 L2 キャ ッシュ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

システム パフォーマンス解析 3UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 4: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 10章 : カスタム ターゲッ トの使用ソフ ト ウェアの計測 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

ハードウェアの計測 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

カスタム ターゲッ トの監視 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

第 11章 : 徹底パフォーマンス解析要件の査定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

デザインのモデル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

パフォーマンス検証 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

詳細な解析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

付録 A : パフォーマンス チェ ックリス ト

付録 B : その他のソースおよび法的通知ザイ リ ンクス リ ソース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

ソ リ ューシ ョ ン センター . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

Documentation Navigator およびデザイン ハブ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

参考資料 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

ト レーニング リ ソース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

お読みください : 重要な法的通知 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

システム パフォーマンス解析 4UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 5: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 1章

概要

ザイ リ ンクス Zynq®-7000 All Programmable SoC デバイス ファ ミ リには、デュアル コア ARM® Cortex™-A9 MPCore™ プロセッシング システム (PS) と、 28nm テク ノ ロジのザイ リ ンクス 7 シ リーズのプログラマブル ロジッ ク (PL) が統合されています。 PS と PL は、パフォーマンスおよびシステムを統合するために設計された標準 ARM AMBA™ AXI インターフェイスを介して接続されます。 このタイプの SoC は業界でも新し く、 システム パフォーマンスをしっかり と把握できるよ う、 新しいタイプのパフォーマンス解析およびベンチマーキング テクニッ クが必要になり ます。Zynq-7000 AP SoC アーキテクチャの持つ機能を最大限に利用し、 市場で製品の差別化を可能にするには、 このアーキテクチャをよ く理解しておく こ とが重要です。

SPA ツールボックス

パフォーマンス解析とベンチマーク テクニッ クの必要性に応えて、 ハード ウェアおよびソフ ト ウェア システムを早期段階で検証できるよ う、 ザイ リ ンクス ソフ ト ウェア開発キッ ト (SDK) には、 システム パフォーマンス解析 (SPA) ツールボッ クスが含まれています。 特に、 Zynq-7000 AP SoC を設計する場合は、 その複雑な異種システムでのインタラ クシ ョ ンを把握できるよ う、 PS と PL の両方を確認できるよ うになっています。 デザイン フローの重要な段階でシステム パフォーマンスを確認し、 システムのパフォーマンスを改善していく こ とができます。

システム パフォーマンス解析 5UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 6: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 1 章 : 概要

図 1-1 は、 SDK の機能セッ トに SPA ツールボッ クスがどのよ うに組み込まれているかを示しています。 SDK にはほかに、 ソフ ト ウェア プロファイ リ ング ツール、 システム デバッガー、 ド ラ イバーおよびライブラ リのサポート といった重要な機能があ り ます。 SPA ツールボッ クスには、 監視フレームワーク、 ユーザー インターフェイスが含まれているだけでなく、 システム パフォーマンス モデリ ング (SPM) と呼ばれる早期段階の検証用環境と、 ユーザー デザインの監視および解析という 2 つの重要な使用モデルに共通した可視化ツールが含まれています。 このツールボッ クスは、 デザイン プロセスで一貫したパフォーマンスが得られるよ うに、 パフォーマンスを検証するために使用できます。

SPM は SDK 独特の機能で、 設計作業を始める前から、 複雑なパフォーマンス モデリ ングを行う こ とができます。SPM は実際のターゲッ ト ハードウェアで実行されます。 また、 5 つの AXI ト ラフ ィ ッ ク ジェネレーターを含んだ、非常にコンフ ィギャラブルな固定ビッ ト ス ト リームが含まれています。 これらの ト ラフ ィ ッ ク ジェネレーターは、PL ト ラフ ィ ッ クをモデルするためのコンフ ィギャラブルなコアで、 SDK で使用されます。 プロセッシング システムで同時にソフ ト ウェア アプリ ケーシ ョ ンも実行できるので、 システム コンフ ィギュレーシ ョ ン パラ メーターをユーザー指定できます。

X-Ref Target - Figure 1-1

図 1‐1 : システム パフォーマンス解析 (SPA) ツールボックスを含んだザイリンクス SDK の機能

システム パフォーマンス解析 6UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 7: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 1 章 : 概要

パフォーマンス解析フロー

SDK には、 SPM デザインを使用した徹底したパフォーマンス解析フローがあ り ます。 このフローを使用し、 予想デザインで ト ラフ ィ ッ クをモデルした後に、 実際のデザインを使用してパフォーマンスを検証できます。

図 1-2 に示すよ うに、 このフローには 4 つのステップがあ り ます。

要件の査定 : まず、 ターゲッ ト システムの PS - PL インターフェイスでのデータ スループッ ト など、デザインの AXI ト ラフ ィ ッ ク要件を予測します。

デザインのモデル : 予測した ト ラフ ィ ッ ク要件に基づいて、 SPM を使用してデザインをモデルします。 実際のターゲッ ト ハードウェアが使用されるため、 リ アルタイムのクロ ッ ク レート を達成できます。 このため、 ほかのモデリング環境と比較する と、 ランタイムは改善されます。 また、 実際のシステム アクティ ビティが監視されるのでよ り正確になり ます。

パフォーマンス検証 : デザインを開発しながら、 実際のデザインを監視し、 可視化していく こ とで、 パフォーマンス結果を検証するこ とができます。

詳細な解析 : SDK パフォーマンス ツールは、 デザイン オプシ ョ ンを評価し、 デザインを改善したこ とによる影響を予測するため、 デザインを詳細に解析します。

こ う した徹底したパフォーマンス解析フローには次のよ うな利点があ り ます。

• リ スク軽減 : SPM ベース モデルを利用して目的のレイテンシおよびスループッ ト を達成しておく こ とで、 最終デザインでも同じパフォーマンスを達成しやすくな り ます。 確約されているわけではあ り ませんが、 Zynq-7000 AP SoC でパフォーマンス目標を満たしやすくな り ます。

• デザインの改善 : SPM を使用してさまざまな ト ラフ ィ ッ ク シナリオを予測しておく こ とで、 レイテンシなどシステム パフォーマンスに関するデータを収集でき、 実際のデザインで役立てるこ とができます。

• さまざまなシナリオ設定 : SPM は非常にコンフ ィギャラブルなモデルであるため、 さまざまな機能やアーキテクチャを試してみるこ とができます。

このガイ ドでは、 このパフォーマンス解析ツールボッ クスの技術情報だけでなく、 その利便性や強みを理解するための手法についても説明します。 このツールボッ クスでは、 ターゲッ ト プラ ッ ト フォームの機能に関してだけでなく、 デザインの詳細についても情報が提供されます。 また、 このガイ ドでは、 Zynq-7000 AP SoC の代表的な機能を説明し、 その機能を最大限に活かせるこ とができるよ うに SDK を使用する方法も説明します。 このガイ ドを読むと、 次のこ とができるよ うになり ます。

• ソフ ト ウェア アプリ ケーシ ョ ンを解析し、 ハード ウェア ト ラフ ィ ッ クをモデルするため、 SPM デザインを使用できる。

• Zynq-7000 AP SoC プラ ッ ト フォームとその機能をよ り よ く理解できる。

• Zynq-7000 AP SoCでの PS - PL インターフェイスの使用方法および機能を認識できる。

• 最高のシステム パフォーマンスを得るため、 メモ リ階層 (L1 および L2 のデータ キャ ッシュ と DDR) を利用できる。

• SPM を使用してデザインをモデルし、 その後、 実際のデザインのパフォーマンスを検証してフォローアップできる。

X-Ref Target - Figure 1-2

図 1‐2 :徹底したパフォーマンス解析フロー

システム パフォーマンス解析 7UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 8: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 1 章 : 概要

詳細な結果および解析を提供するために具体的な例が使用されています。 また、 このガイ ドでは、 SDK で同様の結果を得るための方法も説明します。 このガイ ドは、 こ う したテクニッ クをユーザー デザインを使用した実践で活かせるよ うに構成されています。

次の 4 章では、 SPA ツールボッ クスの概要を説明します。

• 第 2 章 「背景」 では、 システム パフォーマンスを説明し、 その重要性を定義します。

• 第 3 章 「システム パフォーマンス モデリ ング プロジェク ト 」 では、 SPM プロジェク トの内容を説明します。

• 第 4 章 「監視フレームワーク」 では、 SDK ツールで使用される監視インフラス ト ラ クチャを定義します。

• 第 5 章 「SPM の入門」 では、 SPM デザインを実行するのに必要なステップを説明します。

そして、 その後に続く章では、 SPM デザインを使用する上での詳細について説明します。

• 第 6 章 「ソフ ト ウェア パフォーマンスの評価」 では、 SPM プロジェク トに含まれているソフ ト ウェア実行ファイルを実行する と ころから説明を始めます。

• 第 7 章 「ハイ パフォーマンス ポートの評価」 では、 同じソフ ト ウェアを実行しながら、 ハイ パフォーマンス (HP) ポートでの ト ラフ ィ ッ クを監視します。

• 第 8 章 「DDR コン ト ローラー設定の評価」 では、 DDR コン ト ローラー (DDRC) の設定変更方法、 および HP ポートの ト ラフ ィ ッ クへのインパク ト を解析する方法について説明します。

• 第 9 章 「メモ リ階層および ACP の評価」 では、 まずメモ リ階層からの帯域幅およびレイテンシを評価して、 次にアクセラレータ コ ヒーレンシ ポート (ACP) のト ラフ ィ ッ クを監視して、 パフォーマンスへの影響を調査します。

さ らに、 この後、 ユーザー デザインでパフォーマンス解析を実行するにあたっての情報を提供する章が 2 章続きます。

• 第 10 章 「カスタム ターゲッ トの使用」 では、 ユーザーデザインを計測および監視するにあたってのステップと要件を定義します。

• 第 11 章 「徹底パフォーマンス解析」 では、 図 1-2 に示すパフォーマンス解析のサイ クルを全体を通して説明します。

最後に、 付録 A 「パフォーマンス チェッ ク リ ス ト 」 には、 このガイ ド全体で説明してきたパフォーマンスについての主な推奨事項がまとめられています。

要件

このガイ ドで説明する結果を再現させるには、 次の要件があ り ます。

1. ソフ ト ウェア

a. ザイ リ ンクス ソフ ト ウェア開発キッ ト (SDK) 2015.1

b. オプシ ョ ン : Silicon Labs からのUSB-UART ド ラ イバー

2. ハードウェア

a. ザイ リ ンクス ZC702 評価ボード (XC7Z020 CLG484-1 パーツ搭載)

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

c. ザイ リ ンクス プログラ ミ ング ケーブル (プラ ッ ト フォーム ケーブルまたは Digilent USB ケーブル)

d. オプシ ョ ン : USB Type-A/Mini-B ケーブル (UART 通信用)

e. オプシ ョ ン : 『Zynq-7000 All Programmable SoC ZC702 ベース ターゲッ ト リ ファレンス デザイン』 (UG925) [参照 3].

システム パフォーマンス解析 8UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 9: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 1 章 : 概要

その他のリソース

SDK に関する情報や資料へのリ ンクは、 こちらのザイ リ ンクス SDK ホーム ページをご覧ください。

http://japan.xilinx.com/tools/sdk.htm

『Zynq-7000 All Programmable SoC テクニカル リ ファレンス マニュアル』 (UG585) [参照 1] をはじめとする Zynq-7000 AP SoC の資料は、 こちらをご覧ください。

http://japan.xilinx.com/products/silicon-devices/soc/zynq-7000/index.htm

システム パフォーマンス解析 9UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 10: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 2章

背景Zynq®-7000 AP SoC のさまざまなシステム リ ソースや機能を理解しておく と、 デザインをこのデバイスにターゲット しやすくな り ます。 このデバイスに慣れた後に、 リ ソースに機能をマップしていく方法や、 デザインのパフォーマンスを最適化する方法を決めていきます。

X-Ref Target - Figure 2-1

図 2‐1 : Zynq‐7000 All Programmable SoC のブロック図

システム パフォーマンス解析 10UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 11: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 2 章 : 背景

図 2-1 は Zynq-7000 AP SoC のブロ ッ ク図です。 プロセッシング システム (PS) には、 ARM Cortex-A9 コアが 2 つ、512KB の L2 キャ ッシュが 1 つ、 256KB のオンチップ メモ リが 1 つ、そしてペリ フェラルおよびコン ト ローラーが多数含まれています。

プログラマブル ロジッ ク (PL) には、 コンフ ィギャラブル システム ゲート、 DSP、 ブロ ッ ク メモ リが含まれています。 PS と PL との間のインターフェイスには次の 3 種類があ り ます。

• 汎用 (GP) AXI ポート : スレーブ インターコネク トに直接接続されている制御ポート。

• アクセラレータ コ ヒーレンシ ポート (ACP) : PL マスターへのレイテンシの少ないアクセスを提供。 L1 および L2 キャ ッシュを使用したコ ヒーレンシはオプシ ョ ンです。

• ハイ パフォーマンス (HP) AXI ポート : DDR および OCM メモ リへの高帯域幅のデータ パスを持つ PL バス マスター。

これらのインターフェイスは、 PS - PL 間の通信、 外部メモ リ (DDR SDRAM や単純な DDR など) との通信といった、さまざまな通信目的に合わせて利用できます。

システム パフォーマンス解析 11UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 12: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 2 章 : 背景

図 2-2 では、 Zynq-7000 AP SoC 内の共有リ ソースがハイライ ト されています。 この SoC の機能をすべてフルに利用しているデザインの場合、 高帯域幅の通信チャネルが複数必要になり ます。 システムのこ う した ト ラフ ィ ッ クには、必然的に共有リ ソースが使用されます。 システムがう ま く設計されていないと、 L2 キャ ッシュ、 DDR メモ リ コント ローラー、 高速インターコネク トで、 競合がいくつも発生する可能性が出てきます。 これらのリ ソースをすべてフルに使用しているデザインのパフォーマンスを最適化するには、 システムの複数個所を確認しておく必要があ ります。 デザインを改善するには、 コード、 デザインのコネクティ ビティ、 システム設定を変更します。

L2 キャ ッシュはその最たる例です。 ACP は L2 キャ ッシュを Cortex-A9 CPU と共有しているため、 ACP またはプロセッサからのスループッ ト ト ラフ ィ ッ クは、 互いのパフォーマンスに影響してしま う可能性があ り ます。 これは予測可能ですが、 その影響がどのよ うなもので、 どれほどのものなのかを把握するのは容易ではあ り ません。

X-Ref Target - Figure 2-2

図 2‐2 : Zynq‐7000 AP SoC ブロック図 (共有リソースをハイライ ト ) 

Flash ControllerNOR, NAND, SRAM, Quad SPI

Programmable Logic(System Gates, DSP, RAM)

2xSPI

Pro

cess

or I/

0 M

ux

2xI2C

2xCAN

2xUART

GPIO

2x SDIOwith DMA

2x USBwith DMA

2x GigEwith DMA

SecurityAES, SHA, RSA

Multi-Standard I/0s (3.3V & High-Speed 1.8V) Multi-Gigabit Transceivers

Pcle Gen21-8 Lanes

XAD2x ADC,Mux,

Thermal Sensor

ARM© CorSight™ Multi-Core Debug and Trace

NEON™ DSP/FPU Engine NEON DSP/FPU Engine

Cortex™- A9 MPCore32/32 KB I/0 Caches

Cortex- A9 MPCore32/32 KB I/0 Caches

SnoopControl

Unit

256 Kbyte

On-Chip Memory

General InterruptController

WatchdogTimer

Configuration Timers DMA

General PurposeAXI Ports

EMIOACP High Performance

AXI Ports

AMBA Interconnect AMBA Interconnect

Flash ControllerNOR, NAND, SRAM, Quad SPI

Programmable Logic(System Gates, DSP, RAM)

2xSPI

Pro

cess

or I/

0 M

ux

2xI2C

2xCAN

2xUART

GPIO

2x SDIOwith DMA

2x USBwith DMA

2x GigEwith DMA

SecurityAES, SHA, RSA

Multi-Standard I/0s (3.3V & High-Speed 1.8V) Multi-Gigabit Transceivers

Pcle Gen21-8 Lanes

XAD2x ADC,Mux,

Thermal Sensor

ARM© CorSight™ Multi-Core Debug and Trace

NEON™ DSP/FPU Engine NEON DSP/FPU Engine

Cortex™- A9 MPCore32/32 KB I/0 Caches

Cortex- A9 MPCore32/32 KB I/0 Caches

SnoopControl

Unit

256Kbyte

On-Chip Memory

General InterruptController

WatchdogTimer

Configuration Timers DMA

General PurposeAXI Ports

EMIOACP High Performance

AXI Ports

AMBA Interconnect AMBA Interconnect

DDR Memory Controller

512 Kbyte L2 Cache

InterconnectAMBA© Interconnect

システム パフォーマンス解析 12UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 13: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 2 章 : 背景

こ う したと きにこそ、 SDK パフォーマンス機能を利用する価値があ り ます。 SDK には、 この影響を把握するための可視化ツールと、 早期段階でデザインを試行錯誤していくための SPM があ り ます。 表やリ アルタイムの図を利用して、 一般的なタイムラインで PS および PL のパフォーマンス メ ト リ クスを可視化できるよ うになっています。 これによ り、 潜在的な問題を早い段階で隔離できるよ う、 問題が発生しそ うなタイ ミ ングや位置を知るための情報を入手できます。 さ らに、 SPM デザインとユーザー デザインに同じパフォーマンス メ ト リ クスを使用して計算されるため、 早期段階でさまざまなオプシ ョ ンを考慮でき、 デザイン フローを通して一貫した結果が得られるよ うにな り ます。

このパフォーマンス ツールを使用してパフォーマンス結果を解析する前に、 まずは、 どのデザインが使用され、 何が計測されるのかを理解しておく こ とが重要です。 この後の章では、 SPM デザインと、 SDK で使用されるパフォーマンス監視フレームワークについて説明します。

システム パフォーマンス解析 13UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 14: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 3章

システム パフォーマンス モデリング プロジェク ト

ザイ リ ンクス ソフ ト ウェア開発キッ ト (SDK) にはあらかじめ定義されているプロジェク トが含まれており、 システム パフォーマンス モデリ ング (SPM) を利用し、 またデザインの早期段階でパフォーマンス解析を実行しやすく します。 この SPM プロジェク トには、 ソフ ト ウェア実行ファイルと、 ビッ ト ス ト リーム後のコンフ ィギャラブル ハードウェア システムの両方が含まれています。 SPM は次のよ うな目的で使用するこ とができます。

• ターゲッ トの評価 : ハードウェア設計の知識や経験に乏し くても、 ターゲッ ト プラ ッ ト フォームを把握できます。 Zynq®-7000 AP SoC などの複雑な SoC を特性化および評価でき、 ARM Cortex-A9 とプログラマブル ロジック との間のク リティカルなパーティシ ョ ン ト レードオフを検討するこ とができます。 もっと も重要なのは、 デザインの進捗状況や完成度とは関係なく、 評価できる点です。 常に、 ターゲッ ト プラ ッ ト フォームをよ り理解して判断ができます。

• パフォーマンス ス ト レス テス ト : システム内で競合が発生する位置を確認できます。 ターゲッ ト プラ ッ トフォームの機能の制限を評価するには、 そのプラ ッ ト フォームを理解するのが一番です。

• パフォーマンス評価 : デザインの ト ラフ ィ ッ クをモデルします。 ターゲッ ト プラ ッ ト フォームを理解できたら、デザインの具体的な部分はト ラフ ィ ッ ク シナリオと して入力できます。 また、 SPM を使用してアーキテクチャのオプシ ョ ンを評価するこ と もできます。

• パフォーマンス検証 : 最終デザインを計測し、 初期モデルを使用して結果を確認します。 SPM デザインで使用されるのと同じモニタ リ ングもデザインに追加でき (57 ページの 「ハード ウェアの計測」 を参照)、 モデル化されたパフォーマンス結果が検証されるよ うにできます。

システム パフォーマンス解析 14UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 15: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 3 章 : システム パフォーマンス モデリング プロジェク ト

図 3-1 には、 あらかじめ定義されている SPM プロジェク トに含まれるファ イルがリ ス ト されています。 このプロジェク トには、 定義済みのト ラフ ィ ッ ク コンフ ィギュレーシ ョ ン、 コンパイル済みのソフ ト ウェア実行ファイル 2 つ、 そして多数のシステム定義ファイルが含まれています。 システム定義ファイルには、 プロセッシング システム 7 (PS7) の初期化ファイル、Vivado IP インテグレーターでデザイン定義を作成する Vivado® Design Suite Tcl ファ イル、定義済みのプログラマブル ロジッ ク (PL) デザインを含んだビッ ト ス ト リームが含まれています。

SPM ソフ トウェア

SPM プロジェク トには、 コンパイル済みのソフ ト ウェア実行ファイルが 2 つ含まれています。

• BEEBS (Bristol/Embecosm Embedded Energy Benchmark Suite) と呼ばれるベンチマークのコレクシ ョ ン

• メモ リ帯域幅およびレイテンシをテス トするこ とに特化している メモ リ ス ト ラ イ ド ベンチマーク

BEEBS ベンチマーク

BEEBS プログラムは、 8 つの多様なベンチマークのシーケンスで構成されています。 表 3-1 に示すよ うに、 このプログラムには、 MiBench、 WCET、 DSPstone といった知名度の高いベンチマーク ツールの一部に元々は含まれていたアルゴ リズムが含まれています。 これらのベンチマークは、 エンベデッ ド システムをテス ト し、 スタンドアロン

X-Ref Target - Figure 3-1

図 3‐1 : SDK での SPM プロジェク ト  ファイル

システム パフォーマンス解析 15UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 16: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 3 章 : システム パフォーマンス モデリング プロジェク ト

またはベアメ タルのターゲッ トに利用できるよ う、 選択されています。 BEEBS ベンチマーク スイートの詳細は、『BEEBS: Open Benchmarks for Energy Measurements on Embedded Platforms』 [参照 9] を参照してください。

BEEBS ベンチマーク ツールは次の 4 つの点で変更されています。

• 1 つの実行ファイル : 1 プログラム内ですべてのベンチマークを実行するための、 1 つの実行ファイルが作成されています。 表 3-1 には、 SPM プロジェク トに含まれているコンパイル済みのプログラムで呼び出される順番でベンチマークがリ ス ト されています。

• ベンチマーク間のス リープ : 各ベンチマークの後、 次のベンチマークが始まるまで、 1 秒間のス リープが挿入されています。 それぞれのベンチマークを区別させるための割り込みベースのス リープで、 CPU 使用率は 0% です。

• さまざまなデータ配列サイズ : さまざまなデータ配列サイズに対応できるよ う、 ベンチマークは変更されています。 このベンチマーク プログラムで使用される 3 つの配列サイズは次のよ うになっています。

° 4KB (2-D 配列 : 32 x 32) – 32KB の L1 データ キャ ッシュにフ ィ ッ ト します。

° 64 KB (2-D 配列 : 128 x 128) – 512 KB の L2 データ キャ ッシュにフ ィ ッ ト します。

° 1024KB (2-D 配列 : 512 x 512) – DDR SDRAM にフ ィ ッ ト します。

• 計測済み : これらのベンチマークのランタイムは、 各ベンチマークの前後のコードに追加された計測に基づいて計算されています。 詳細は、 57 ページの 「ハード ウェアの計測」 を参照してください。 これらのランタイムは、UART (SDK のターミナル 1 のパネル) で送信される ト ランスク リプ トにレポート され、 手動で読み込みます。

メモリ  スト ライ ド  ベンチマーク

メモ リ ス ト ラ イ ド ベンチマークは、 最小限の計算処理を実行し、 またメモ リの帯域幅とレイテンシをテス トするために設計されている という点において、 BEEBS ベンチマーク とは異なり ます。 ソフ ト ウェアに含まれているベンチマークは、 表 3-2 にリ ス ト されています。 次の 5 つのタイプのテス トがあ り ます。

• リ ニア帯域幅 : 一定した リニア ス ト ラ イ ド アクセスのメモ リ帯域幅テス ト。 SPM プロジェク トに含まれるコンパイル済みのアプリ ケーシ ョ ンの場合、 ス ト ラ イ ドの長さは 32 バイ トのキャ ッシュ ラインと同じです。

• ランダム帯域幅 (計算済み) : ランダム ス ト ラ イ ド アクセスのメモリ帯域幅テス ト。 これらのテス トで使用されるランダム アドレスはあらかじめ計算されています。

• ランダム帯域幅 ( リ アルタイム) : ランダム ス ト ラ イ ド アクセスのメモリ帯域幅テス ト。 これらのテス トで使用されるランダム アドレスは、 ランダム番号ジェネレーターを使用して リ アルタイムで計算されます。

• リ ニア レイテンシ : 一定した リニア ス ト ラ イ ド アクセスのメモ リ レイテンシ テス ト。

• ランダム レイテンシ (計算済み) : ランダム ス ト ラ イ ド アクセスのメモ リ レイテンシ テス ト。 これらのテス トで使用されるランダム アドレスはあらかじめ計算されています。

表 3‐1 : コンパイル済みプログラムで提供されている BEEBS ベンチマーク

ベンチマーク ツール 説明

Blowfish エンコーダー MiBench ブロ ッ ク暗号

巡回冗長検査 (CRC) MiBench エラー検出コード

セキュア ハッシュ アルゴ リズム (SHA)

MiBench NIST 暗号学的ハッシュ関数

ダイクス ト ラ法 MiBench グラフ検索アルゴ リズム

離散コサイン変換 (DCT) WCET MP3、 JPEG で使用される変換

2-D FIR フ ィルター DSPstone 画像フ ィルタ リ ングで共通

浮動小数点の行列の乗算 WCET 2x2 の行列の乗算

整数の行列の乗算 WCET 2x2 の行列の乗算

システム パフォーマンス解析 16UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 17: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 3 章 : システム パフォーマンス モデリング プロジェク ト

BEEBS と同様に、 メモ リ ス ト ラ イ ド ベンチマークは、 1 つの実行ファイルに含まれており、 ベンチマーク とベンチマークの間には 1 秒間のス リープが設定されています。 表 3-2 は、 プログラム内のベンチマークの順番を示しています。 各ベンチマークは、 BEEBS用に上記にリ ス ト されている 3 つの配列サイズと同じサイズで動作します。 メモ リ ス ト ラ イ ド プログラムも計測されていますが、 ト ランスク リプ ト レポートに各テス トで達成できたスループッ トおよびレイテンシがレポート されます。

SPM ハードウェア

SPM プロジェク トには定義済みのハードウェア デザインが含まれており、 早期段階でパフォーマンスをいろいろと試すこ とができます。 このデザインは、 Zynq-7000 AP SoC プログラマブル ロジッ ク (PL) をコンフ ィギュレートするための固定ビッ ト ス トームと して、 プロジェク トに含まれています。

表 3‐2 : コンパイル済みプログラムで提供されているメモリ  スト ライ ド  ベンチマーク

テスト  タイプ パターン  タイプ 操作タイプ

帯域幅

リニア

読み出し

書き込み

コピー

読み出し /書き込み

ランダム (計算済み)

読み出し

書き込み

コピー

ランダム ( リ アルタイム)

読み出し

書き込み

コピー

レイテンシリニア 読み出し

ランダム (計算済み) 読み出し

システム パフォーマンス解析 17UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 18: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 3 章 : システム パフォーマンス モデリング プロジェク ト

図 3-2 は Zynq-7000 AP SoC をターゲッ トにした定義済み SPM デザインのブロ ッ ク図です。 これは、 非常にコンフ ィギャラブルなデザインで、 5 つの AXI ト ラフ ィ ッ ク ジェネレーター (ATG) と、 1 つの AXI パフォーマンス モニター (APM) が含まれています。 1 つの ATG は 4 つのハイ パフォーマンス (HP) ポートのそれぞれに接続されていて、ACP にも接続されています。 これらのコアのコンフ ィギュレーシ ョ ンは、 汎用 (GP) ポート 0 マスターを介して行われます。 CPU パフォーマンス メ ト リ クスは、 パフォーマンス モニター ユニッ ト (PMU) を使用して得られます。

AXI ト ラフ ィ ッ ク  ジェネレーター

AXI ト ラフ ィ ッ ク ジェネレーター (ATG) は、 具体的な AXI ト ラフ ィ ッ ク動作を示すためにコンフ ィギュレート された、 インテ リジェン ト な ト ラフ ィ ッ ク ジェネレーターです。 各 ATG のコマンド シーケンスは初期化中に読み込まれ、 開始ビッ トが読み込まれる と、 これらのコマンドが実行されます。 書き込み及び読み出し ト ラフ ィ ッ ク用には、256 個のコマンドのキューが別に含まれています。 ATG にはループ モード もあ り、 コマンド キューの ト ラフ ィ ッ クは連続して実行され、 停止ビッ トが読み込まれるまで、 キューの ト ラフ ィ ッ クは繰り返されます。 SDK では、 これ

X-Ref Target - Figure 3-2

図 3‐2 : Zynq‐7000 AP SoC の定義済み SPM デザイン

システム パフォーマンス解析 18UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 19: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 3 章 : システム パフォーマンス モデリング プロジェク ト

はト ラフ ィ ッ ク期間値 (秒) に簡略されています。 ATG のト ラフ ィ ッ クに関する詳細は、 第 5 章 「SPM の入門」 で説明されています。

AXI パフォーマンス モニター

AXI パフォーマンス モニター (APM) は、接続されている AXI インターフェイスすべてのリ アルタイムのパフォーマンスを計測するために設計されたコアです。 SPM デザインでは、 これらのインターフェイスには 5 つの ATG の出力が含まれます。 APM はプロファイル モードでコンフ ィギュレート されていて、 ATG ごとに 6 つのプロファイル カウンターを含んだ、 イベン ト カウン ト モジュールを提供します。 この 6 つのカウンターは、 接続されている AXI インターフェイスのすべての書き込みおよび読み出しチャネルの平均スループッ トおよびレイテンシを計測するよ う設計されています。 これらのメ ト リ クスの計算方法については、 第 4 章 「監視フレームワーク」 を参照してください。

パフォーマンス モニター ユニッ ト

各 ARM Cortex-A9 CPU には、パフォーマンス モニター ユニッ ト (PMU) が含まれています。 この PMU は、 CPU 使用率やサイクルごとの命令数 (IPC) など、 さまざまなパフォーマンス メ ト リ クスを監視するためにコンフ ィギュレーシ ョ ンされています。 PMU には SDK で使用されるパフォーマンス モニター フレームワークの一部と してアクセスできます。 これらの PMU カウンターの使用方法については、 第 4 章 「監視フレームワーク」 を参照して ください。

システム パフォーマンス解析 19UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 20: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 4章

監視フレームワークザイ リ ンクス ソフ ト ウェア開発キッ ト (SDK) のパフォーマンス解析ツールボッ クスは、 システムレベルのパフォーマンス計測を提供します。 Zynq®-7000 AP SoC をターゲッ トにしているデザインの場合、 プログラマブル ロジッ ク (PL) およびプロセッシング システム (PS) の両方からのパフォーマンス メ ト リ クスがあ り ます。

PL パフォーマンス メ ト リ クスには次のものがあ り ます。

• (書き込み/読み出し ) ト ランザクシ ョ ン : AXI ト ランザクシ ョ ンの数

• (書き込み/読み出し ) スループッ ト : 書き込みまたは読み出しの帯域幅 (MB/秒)

• 平均 (書き込み/読み出し ) レイテンシ : AXI ト ランザクシ ョ ンの平均書き込みまたは読み出しレイテンシ

PS パフォーマンス メ ト リ クスには次のものがあ り ます。

• CPU 使用率 (%) : アイ ドル状態以外の CPU ク ロ ッ ク サイクルの割合

• サイクルごとの CPU 命令数 (IPC) : サイクルごとに実行される命令の予想数

• L1 データ キャ ッシュ アクセスおよびキャ ッシュ ミ ス率 (%) : L1 データ キャ ッシュ アクセス数およびそのミ ス率

• CPU (書き込み/読み出し ) の命令ごとのス トール サイ クル : メモ リ書き込み (書き込み)およびデータ キャ ッシュ補充 (読み出し ) が原因の、 命令ごとのス トール サイ クルの予想数

これらのパフォーマンス メ ト リ クスはターゲッ トのさまざまな箇所から収集され、 共通のタイムラインにま とめられて表示され、 システムレベルのパフォーマンス解析ができるよ うになり ます。 これらのメ ト リ クスを収集し表示するため、 SDK には、 ターゲッ ト システム全体にあるプロファ イル カウンターにアクセスする監視フレームワークと、 これらのカウンターのサンプリ ングとオフロードを実行するためのホス ト ターゲッ ト通信フレームワークがあり ます。

SDK がこの監視に必要なメ タデータは、 Vivado® Design Suite によってエクスポート され、 ハード ウェア プラ ッ トフォーム仕様プロジェク トが作成される と きに SDK に読み込まれます。 このエクスポート /インポートは、 システム パフォーマンス モデリ ング (SPM) プロジェク トに対して既に実行されていますが、 ユーザー デザインに対しても実行できます (57 ページの 「ハード ウェアの計測」 を参照)。 言い換えれば、 こ こで説明されている監視および解析のすべてが、 SPM にもユーザー デザインにも利用可能である という こ とです。 これは、 第 11 章 「徹底パフォーマンス解析」 で詳し く説明されています。

PL プロファイル カウンター 

デザインに APM (AXI Performance Monitor) が挿入される と、 PL プロファイル カウンターが提供されます (デザインにこれを挿入する方法については、 57 ページの 「ハード ウェアの計測」 を参照して ください)。 接続されている AXI インターフェイスごとに 6 つのカウンターがあ り ます。表 4-1 にはこれらのカウンターの使用方法がまとめられています。 これらのカウンターはインク リ メン ト アップ カウンターで、 送信された実行されているバイ ト総数、 レイテンシ総計、 および完了した AXI ト ランザクシ ョ ン数をそれぞれカウン ト します。 表 4-1 にあるよ うに、 連続サンプル間でのこれらのカウンターの差 (Δで表現) は、 サンプル間隔の平均スループッ トおよびレイテンシの計算に使用されます。 SDK で使用されるデフォルトのサンプル間隔は約 50 ミ リ秒です。

システム パフォーマンス解析 20UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 21: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 4 章 : 監視フレームワーク

AXI ト ランザクシ ョ ンを構成するイベン トは多いため、 SDK が取り込むイベン トおよびレイテンシの計算方法を理解しておく こ とが重要です。 図 4-1 は、 サンプルの AXI 読み出し ト ランザクシ ョ ンのタイ ミ ング図で、 アドレス、データおよび制御信号が含まれています。

SDK で使用される開始イベン トはアドレス受諾 (ARVALID=1 と ARREADY=1) で、 最終イベン トは最終データ (RLAST=1 と RVALID=1 と RREADY=1) です。 共通ト ランザクシ ョ ン内でのこれら 2 つのイベン トの差は、 ト ランザクシ ョ ン レイテンシと考えられます。

ARM は次のものをサポート していないこ とに注意して ください。

• 33 以上の未処理ト ランザクシ ョ ン。 つま り、 最初のデータ ブロ ッ ク開始の前に 33 個以上のアドレスの初期化が行われる ト ランザクシ ョ ン、 または、 最初のアドレスの前に 32 個のデータ ブロ ッ クが送信/受信される ト ランザクシ ョ ン。

• インターリーブされた ト ランザクシ ョ ン。 つま り、 現在のデータ ト ランザクシ ョ ンが終了する前 (wlast/rlast を受信する前) に、 新しいデータ ト ランザクシ ョ ンのアドレス初期化が行われる ト ランザクシ ョ ン。

PS プロファイル カウンター

PS プロファイル カウンターは、各 Cortex-A9 CPU に含まれている ARM パフォーマンス モニター ユニッ ト (PMU) を構成しています。 表 4-2 は、 各 PMU の 6 つのカウンターが自動的に SDK にコンフ ィギュレート される方法と、 各 CPU に対するパフォーマンス メ ト リ クスの式をま とめています。 後で説明するよ うに、 これらは SDK で直接グラフ化される メ ト リ クスです。

表 4‐1 : AXI パフォーマンス モニターでの AXI インターフェイスごとのプロファイル カウンター

APM カウンター メ ト リクス パフォーマンス メ ト リクスの式

書き込みバイ ト数 書き込みスループッ ト =(∆(書き込みバイ ト数))/(サンプル間隔)

書き込みレイテンシ数 平均書き込みレイテンシ = (∆(書き込みレイテンシ数))/(∆(書き込みト ランザクシ ョ ン数))書き込みト ランザクシ ョ ン数

読み出しバイ ト数 読み出しスループッ ト =(∆(読み出しバイ ト数))/(サンプル間隔)

読み出しレイテンシ数 平均読み出しレイテンシ = (∆(読み出しレイテンシ数))/(∆(読み出しト ランザクシ ョ ン数))読み出し ト ランザクシ ョ ン数

X-Ref Target - Figure 4-1

図 4‐1 : SDK で使用される読み出しレイテンシを示した AXI ト ランザクシ ョ ン  タイムラインの例

システム パフォーマンス解析 21UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 22: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 4 章 : 監視フレームワーク

ホスト /ターゲッ ト間の通信

プロファイル カウンターがシステム パフォーマンス解析 (SPA) ツールボッ クスでどのよ うに処理および表示されるのかがこれで理解できたと思います。 さ らに、 これらのカウンターがどのよ うにサンプルされ、 ターゲッ トからホス ト コンピューターに転送されるのかを理解するこ と も大切です。

表 4‐2 : ARM パフォーマンス モニター ユニッ トで使用されるプロファイル カウンター

イベン ト名 イベン ト 説明 パフォーマンス メ ト リクスの式

CCNT なし 非アイ ドル ク ロ ッ ク サイクル カウンター

CPU 使用率 (%)=100x∆CCNT/(2*∆(SPM 基準クロ ッ ク ))

INST_RENAME 0x68 レジスタの名前変更をした命令数

サイクルごとの CPU 命令数 (IPC)=(∆(INST_RENAME))/∆CCNT

L1D_CACHE_REFILL 0x03 L1 データ キャ ッシュ ミ ス L1 データ キャ ッシュ ミ ス率

(%)=100*(∆(L1D_CACHE_REFILL))/(∆(L1D_CACHE))L1D_CACHE 0x04 L1 データ キャ ッシュ ミ ス

DCACHE_DEP_STALL 0x61 データ キャ ッシュに依存したス トール サイ クル (保留ラインフ ィル)

命令ごとの読み出しス トール サイクル =(∆(DCACHE_DEP_STALL))/(∆(INST_RENAME))

MEM_WRITE_STALL 0x81 メモ リ書き込みを待っているプロセッサ ス トール サイクル

命令ごとの書き込みス トール サイクル =(∆(MEM_WRITE_STALL))/(∆(INST_RENAME))

X-Ref Target - Figure 4-2

図 4‐2 : SDK のホスト /ターゲッ ト間の通信インフラスト ラクチャ

システム パフォーマンス解析 22UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 23: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 4 章 : 監視フレームワーク

図 4-2 は SDK のホス ト /ターゲッ ト間の通信インフラス ト ラ クチャを表しています。 SDK ツール自体はホス ト コンピューターで実行され、 また、 ツールにはターゲッ ト通信フレームワーク (TCF) を使用したハード ウェア サーバーが含まれています。 TCF を使用する と、 JTAG プログラ ミ ング ケーブルを介してターゲッ ト と効率よ く通信できます。 この TCF ベースのハードウェア サーバーは、 16 ページの表 3-1 および17 ページの表 3-2 にリ ス ト されているプロファ イル カウンターにできるかぎ り介入せずに制御します。 APM および PMU カウンターは、 Zynq-7000 AP SoCの中央インターコネク ト を介して、 メモ リ マップ アクセスを使用して読み出されます。 この後、 カウンター値は、先に説明したよ うに処理され、 SDK に表示されます。

システム パフォーマンス解析 23UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 24: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 5章

SPM の入門定義済みの SPM プロジェク トは、 ザイ リ ンクス ソフ ト ウェア開発キッ ト (SDK) で [File] → [SPM Project] をク リ ッ クする と、 ワークスペースに自動的に読み込まれます。

プロンプ トが表示されたら、 SPM ターゲッ ト を選択します。 SPM プロジェク ト名は、 指定されたターゲッ トに基づいて付けられます。 たとえば、 ZC702 ボードでサポート されているターゲッ ト を選択した場合は、 SPM プロジェクトの名前は自動的に 「SPM_ZC_702_HwPlatform」 にな り ます。

これで、 テス ト用にコンフ ィギュレーシ ョ ンを変更するこ とができます。 たとえば、 ターゲッ ト設定、 ソフ ト ウェア アプリ ケーシ ョ ン、 AXI ト ラフ ィ ッ ク ジェネレーター (ATG) を使用するための ト ラフ ィ ッ クを変更できます。ターゲッ ト設定には、 ボード接続情報、 ビッ ト ス ト リームの選択、 プロセッシング システム 7 (PS7) 初期化が含まれます。 ビッ ト ス ト リームはデフォルトで SPM ビッ ト ス ト リームに指定されていますが、 PS7 の設定は SPM システム定義ファイルで定義されています。 ホス ト コンピューターからターゲッ ト ボードへのローカルまたは直接の接続がない場合は、 『Vivado Design Suite ユーザー ガイ ド : エンベデッ ド ハードウェア デザイン』 (UG898) [参照 2] を参照して、 ボード接続を設定してください。

図 5-1 は SPM のソフ ト ウェア アプリ ケーシ ョ ン設定を示しています。 デフォルトでは、 このコンフ ィギュレーシ ョンのソフ ト ウェア実行ファイルは beebs_benchmarks.elf で、 これにはかなりの量のデータ処理と メモ リ アクセスが含まれているため、 手始めに利用するには最適です (第 3 章 「システム パフォーマンス モデリ ング プロジェク ト 」 を参照)。

X-Ref Target - Figure 5-1

図 5‐1 : SDK コンフ ィギュレーシ ョ ン  ウィザードでのアプリケーシ ョ ン設定

システム パフォーマンス解析 24UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 25: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 5 章 : SPM の入門

このデフォルト アプリ ケーシ ョ ンは、 次の章で説明されているソフ ト ウェア パフォーマンスの評価のためにデザインを準備するために選ばれています。 後で、 この設定を変更していきます。 そして、 SPM プロジェク トで提供されているも う 1 つのアプリ ケーシ ョ ン、 メモ リ ス ト ラ イ ドが使用されます。

ATG コンフ ィギュレーシ ョ ン

SDK では、 AXI ト ラフ ィ ッ ク ジェネレーター (ATG) をコンフ ィギュレートするためのト ラフ ィ ッ ク シナリオを指定するこ とができます。

図 5-2 は、 ト ラフ ィ ッ クを指定できる [ATG Configuration] タブを示しています。 SPM の固定ビッ ト ス ト リームでは (15 ページの 「SPM ソフ ト ウェア」 を参照)、 1 つの ATG はすべてハイ パフォーマンス (HP) ポート と、 アクセラレータ コ ヒーレンシ ポート (ACP) に接続されています。 つま りプログラマブル ロジッ ク (PL) とプロセッシング システム (PS) との間のすべてのインターフェイスに接続されています。 メモ リ アクセス パターンは、 さまざまな長さ、 周波数、 各ポートのメモ リ アドレスでの AXI ト ランザクシ ョ ンを出力する ATG によってモデルされます。 4 つの HP および ACP ポートで読み出し /書き込みパターンのさまざまな組み合わせを指定できます。 この ATG コンフ ィギュレーシ ョ ンの表には次の情報が含まれています。

• [Port Location] : コンフ ィギュレート されている ATG (SPM 内で、 わかりやすい名前が付いています)。

• [Template Id] : その行に定義されている ト ラフ ィ ッ クをディ スエーブル/イネーブル。 <None> に設定されている場合は、 ト ラフ ィ ッ クは生成されません。

• [Operation] : AXI ポートの AXI ト ランザクシ ョ ンのタイプ。 有効値は、 メモ リ読み出し ト ランザクシ ョ ンの RD (AXI 読み出しポート を介す)、 およびメモ リ書き込みト ランザクシ ョ ンの WR (AXI 書き込みポート を介す) です。

• [Address_Start] : AXI ト ランザクシ ョ ンの開始アドレス。 有効値は、 ddr (ddr0 のエイ リ アス)、 ddr0、 ddr1、 ddr2、ddr3、 ocm のプリセッ ト アドレスです。

X-Ref Target - Figure 5-2

図 5‐2 : SDK コンフ ィギュレーシ ョ ン  ウィザードでの ATG コンフ ィギュレーシ ョ ン設定

システム パフォーマンス解析 25UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 26: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 5 章 : SPM の入門

• [Address_Next] : Address_Start の後に続くアドレスが生成される方法 (アドレス範囲内でインク リ メンタルかランダム)。

• [Beats/tranx] : AXI ト ランザクシ ョ ンごとのバース ト長またはビート数。 有効な値は 1 ~ 256 です。

• [Tranx interval] : 2 つの連続する AXI ト ランザクシ ョ ンのそれぞれの開始点の間をカウン ト した PL ク ロ ッ ク サイクル数。 有効な値は 5 ~ 1024 です。

• [Est. Throughput] – 現在のト ラフ ィ ッ ク設定の ト ラフ ィ ッ ク設定の予想スループッ ト (MB/秒)。 スループッ トの計算式は 8 ×(Lburst/(MAX(Linterval, Lburst)))×f,で、 Lburst はビート数/ ト ランザクシ ョ ン、 Linterval はト ランザクシ ョン間隔、 f は PL ク ロ ッ ク レートです。

パフォーマンス解析のパースペクテ ィブ

コンフ ィギュレーシ ョ ンを編集したら、 [Edit Configuration] ダイアログ ボッ クス (25 ページの図 5-2) で [Debug] をクリ ッ ク し、 パフォーマンス解析セッシ ョ ンを開始できます。 SDK で [Performance Analysis] パースペクティブが開きます。

図 5-3 は Eclipse のパースペクティブを示しており、 こ こにはパフォーマンス結果のダッシュボードが表示されています。 5 つの重要なパネルがあ り ます。

1. [PS Performance Graphs] : PS (ARM®) メ ト リ クスがこれらのグラフを使用して表示されます。

2. [PS Performance Counters] : PS (ARM®) メ ト リ クスが表形式でリ ス ト されます。

3. [APM Performance Graphs] : これらのグラフを使用して21 ページの表 4-1にリ ス ト される APM パフォーマンス メト リ クスが描かれます。

X-Ref Target - Figure 5-3

図 5‐3 : SDK の [Performance Analysis] パースペクテ ィブ

システム パフォーマンス解析 26UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 27: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 5 章 : SPM の入門

4. [APM Performance counters] : 21 ページの表 4-1にリ ス ト されるよ うに表形式で APM パフォーマンス メ ト リ クスが描かれます。

5. [MicroBlaze Performance Graphs] : 共有タイムラインでさまざまな MicroBlaze パフォーマンス メ ト リ クスが描かれます。 これについては、 SPM では使用されないので、 このガイ ドでは説明しません。

6. [MicroBlaze Performance Counters] : MicroBlaze™ パフォーマンス メ ト リ クスをま とめて表にされています。 これについては、 SPM では使用されないので、 このガイ ドでは説明しません。

このガイ ドでは、 ターゲッ ト アプリ ケーシ ョ ンが出力したさまざまな結果が使用され、 それを SDK のターミナル 1 のパネルに表示します。 ソフ ト ウェア ランタイム、 達成した帯域幅、 平均レイテンシなどがその結果に含まれます。

これらの結果を再現したい場合、 またはユーザー自身で実行したい場合は、 AC702 ボードの UART と、 ホス ト コンピューターの USB ポート間を、 USB ケーブル (Type-A to USB Mini-B) で接続する必要があ り ます。

図 5-4 は、 SDK でこの UART ト ランスク リプ ト を表示させるのに必要なターミナル設定を示しています。 このポップアップ メニューを表示させるには、 26 ページの図 5-3の右上にある [Connect] ボタン をク リ ッ ク します。 ユーザーのポートは COM5 ではない場合があ り ますが、 その他の設定はすべて有効です。

X-Ref Target - Figure 5-4

図 5‐4 : SDK の [View Transcript] の [Terminal Settings]

システム パフォーマンス解析 27UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 28: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 6章

ソフ トウェア パフォーマンスの評価Zynq®-7000 AP SoC には、 さまざまなソフ ト ウェア パフォーマンスを評価する監視機能があ り ます。 これらの機能を利用する と、 アプ リ ケーシ ョ ンの効率を知る情報が得られるだけでなく、 ソフ ト ウェアをよ り よ く把握し最適化するため情報を視覚的に確認するこ と もできます。

パフォーマンスの監視

パフォーマンス監視機能を説明するため、 BEEBS (Bristol/Embecosm Embedded Energy Benchmark Suite) ベンチマーク プログラム (第 3 章「システム パフォーマンス モデリ ング プロジェク ト 」 を参照) を ZC702 ターゲッ ト ボードで実行し、 そのパフォーマンス結果をザイ リ ンクス ソフ ト ウェア開発キッ ト (SDK) 2015.1 で取り込みました。 プログラマブル ロジッ ク (PL) から駆動される ト ラフ ィ ッ クはないので、 これはソフ ト ウェア専用テス トです。 これらの結果を再現する必要がある場合は、 選択されているソフ ト ウェア アプリ ケーシ ョ ンは24 ページの図 5-1で、 そして PL ト ラフ ィ ッ クは25 ページの図 5-2で説明されているので、 そちらを参照して ください。 こ こでの結果は BEEBS ベンチマーク用ですが、 まったく同じ メ ト リ クスを、 SDK に提供されているプログラム用または SDK によってコンパイルされるプログラム用に得るこ と も可能です。

合計 24 個のテス トが実行され、 16 ページの表 3-1にリ ス ト されている 8 つのベンチマークのそれぞれが、 3 つの異なるデータ配列サイズ (4KB、 64KB、 1024KB) で実行されています。 各テス ト間に 1 秒間のス リープが挿入されているため、 CPU 使用率を見れば、 どのベンチマークが実行されているのかを見分けやすくなっています。 図 6-1 には、結果のタイムラインが表示されています。 各ベンチマーク内で、 小さいサイズから大きなサイズへと順番に、 3 つのデータ サイズが実行されています。 CPU0 の使用率およびその使用期間を確認できます。 ト ラフ ィ ッ クなしの BEEBS ベンチマークの実行には約 45 秒かかっています。

X-Ref Target - Figure 6-1

図 6‐1 : CPU 使用率 (BEEBS ベンチマーク )

システム パフォーマンス解析 28UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 29: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 6 章 : ソフ トウェア パフォーマンスの評価

図 6-2 は、 SDK の [PS Performance] パネルに表示される [CPU Utilization (%)]、 [CPU Instructions Per Cycle]、 [L1 Data Cache Access]、 [L1 Data Cache Miss Rate (%)] という 4 つのグラフを示しています。

CPU 使用率を見る とベンチマークがいつ実行されたかが判断できますが、 複数のグラフを検討する と詳細な解析データが得られます。 これらのテス トの場合、 サイクルごとの命令数 (IPC) および L1 データ キャ ッシュのグラフを見る と、 重要な解析データが確認できます。 IPC はよ く知られているもので、 ソフ ト ウェアがその環境とどのよ うに関わっているのか、 特にメモ リ階層がど うなっているのかを示すための指標です。 詳細は、 『Computer Organization & Design: The Hardware/Software Interface』 (David A. Patterson、 John L. Hennessy 共著) [参照 10] を参照して ください。図 6-2 を見る と、 IPC の値は L1 データ キャ ッシュ アクセスをほぼなぞっている形になっています。 また、 メモ リ を多用する行列乗数を実行している間、 IPC の最低値は L1 データ キャ ッシュ ミ ス率の最大値に該当しています。 IPC がソフ ト ウェア効率を図るものである とすれば、 図 6-2 を見る と、 メモ リ を多用する計算が長時間実行されている間のソフ ト ウェア効率は最低レベルであるこ とが明らかです。 この状態が避けられないこ と もあ り ますが、 メモ リ階層との関わり を調べる上で IPC を確認すべきであるこ とがわかり ます。

X-Ref Target - Figure 6-2

図 6‐2 : BEEBS ベンチマークのパフォーマンス解析 (CPU 使用率、 IPC、 L1 データ  キャッシュ )

システム パフォーマンス解析 29UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 30: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 6 章 : ソフ トウェア パフォーマンスの評価

この解析をさらに 1 歩進めたのが、 図 6-3 のグラフです。 これは、 プロセッサが指定されたアルゴ リズムを読み込んで、 データを書き出すという、 局所的データについての情報を表しています。 L1 データ キャ ッシュ ミ ス率が低い場合は、 そのキャ ッシュにデータが保存され、 アクセスされるデータ量が多いこ とを示しています。 また、 L1 データ キャ ッシュ ミ ス率が高く、 命令ごとのCPU 書き込みまたは読み出しのス トール サイクル数が多い場合は、 データのほとんどが DDR から来ているこ とを示します。

もちろん、 ソフ ト ウェア アプリ ケーシ ョ ンを理解しておく こ とが解析に役立ちます。 たとえば、 図 6-3に示すよ うに、 L1 ミ ス率が高く、 CPU 読み出しス トール サイクル数が多い期間が長いのは 2 回あって、 それは、 浮動小数点および整数の行列乗数アルゴ リズムが、 512 x 512 (256K ワード = 1024KB) の 2D データ配列で動作している と きです。

アプ リ ケーシ ョ ンのパフォーマンスをさ らに高めるには、 L2 データ キャ ッシュ プリ フェッチをイネーブルまたはディ スエーブルにしてみる というオプシ ョ ンがあ り ます。 これは、 reg15_prefetch_ctrl のビッ ト 28 で指定します (絶対アドレスは 0xF8F02F60)。 このデータ プリ フェッチがイネーブルになっている場合、 近接するキャ ッシュ ラ インも自動的にフェッチされます。 29 ページの図 6-2および図 6-3 に示す結果は、 プリ フェッチがイネーブルになった状態で生成されていますが、 BEEBS ベンチマークはプリ フェッチがディ スエーブルになった状態で実行されています。 整数の行列乗算の場合は、 ソフ ト ウェア ランタイムが 9.0% 短縮される という、 非常に大きなインパク トがあ りました。 このプ リ フェッチ オプシ ョ ンによってアプリ ケーシ ョ ンのパフォーマンスが改善されるものがあれば、 改善されずに悪化する可能性のあるものもあ り ます。 アプリ ケーシ ョ ンのランタイムは、 プ リ フェッチ オプシ ョ ンを使用した状態、 そして使用していない状態の両方で検証するこ とを推奨します。

X-Ref Target - Figure 6-3

図 6‐3 : BEEBS ベンチマークのパフォーマンス解析 (L1 データ  キャッシュ、 命令ごとのストール サイクル数)

システム パフォーマンス解析 30UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 31: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 6 章 : ソフ トウェア パフォーマンスの評価

先に説明したよ うに、 全体的なソフ ト ウェア パフォーマンスを計測するには、 アプリ ケーシ ョ ンの異なる箇所のランタイムを計測しておく こ とをお勧めします。 図 6-4 は、 8 つの BEEBS ベンチマークのランタイムのサマ リ を 3 つの異なるデータ 配列サイズで実行した結果を示しています (ランタイムの計算方法とキャプチャ方法については、57 ページの 「ハードウェアの計測」 を参照してください)。 図 6-4 の左側の Y 軸は、 値の全範囲を示していますが、右側の Y 軸は低い範囲だけを拡大表示させています。 配列サイズが大きいと、 ランタイムは長くな り ます。 しかし、異なるベンチマークでテス ト してみる と、 その増加量は変動します。 その理由は、 データ量、 局所的データ、 アルゴ リズムがデータ サイズに左右される点など、 さまざまな要因がランタイムに影響しているからです。 局所的データに関していえば、 4KB、 64KB、 1024KB のデータ配列は、 L1 データ キャ ッシュ、 L2 データ キャ ッシュ、 DDR にそれぞれフ ィ ッ ト します。

メモ リ階層のパフォーマンスの査定については、 第 9 章 「メモ リ階層および ACP の評価」 を参照してください。

パフォーマンス改善の可視化

図 6-4 に示すよ うに、 ランタイムがもっと も長いのは明らかに行列乗算で、 特に配列サイズが最大だと、 ランタイムが長くな り ます。 こ う したランタイムを改善する必要がある と したらど うでし ょ うか。 コードを最適化あるいは改善しやすくするには、 SDK のパフォーマンス解析機能をどのよ うに利用すればよいのか、 またどのよ うに視覚化ツールと して使用できるのでし ょ うか。

次のサンプル コードは、 浮動小数点の行列乗算の 2 つの異なる C/C++ インプリ メンテーシ ョ ンを示しています。 1 つは従来のインプ リ メンテーシ ョ ンである Multiply_Old() です。 も う 1 つは新しいインプリ メンテーシ ョ ンで Multiply_New() です。 新しいほうは複雑そうに見えますが、 32 バイ トのキャ ッシュ ラインを利用しています。 詳細は、 Ulrich Drepper 著の 『What Every Programmer Should Know About Memory』 ([参照 11]) を参照してください。

X-Ref Target - Figure 6-4

図 6‐4 : BEEBS ベンチマーク  ツールでのソフ トウェア ランタイムの結果

システム パフォーマンス解析 31UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 32: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 6 章 : ソフ トウェア パフォーマンスの評価

#define CLS 32#define SM (CLS / sizeof (float))

/* Original method of calculating floating-point matrix multiplication */void Multiply_Old(float **A, float **B, float **Res, long dim) { for (int i = 0; i < dim; i++) { for (int j = 0; j < dim; j++) { for (int Index = 0; Index < dim; Index++) { Res[i][j] += A[i][Index] * B[Index][j]; }}}}

/* Modified method of calculating floating-point matrix multiplication */void Multiply_New(float **A, float **B, float **Res, long dim){ for (int i = 0; i < dim; i += SM) { for (int j = 0; j < dim; j += SM) { for (int k = 0; k < dim; k += SM) { float *rres = &Res[i][j]; float *rmul1 = &A[i][k]; for (int i2 = 0; i2 < SM; ++i2, rres += dim, rmul1 += dim) { float *rmul2 = &B[k][j]; for (int k2 = 0; k2 < SM; ++k2, rmul2 += dim) { for (int j2 = 0; j2 < SM; ++j2) { rres[j2] += rmul1[k2] * rmul2[j2];

BEEBS ベンチマーク ソフ ト ウェアは、 浮動小数点および整数の行列乗算の新しいインプリ メンテーシ ョ ンを使用して、 再コンパイルおよび再実行されています。

32 ページの表 6-1には、SDK の [APU Performance Summery] パネルでレポート されている CPU0 のパフォーマンス メト リ クスがま とめられています。 8 つあるベンチマークのうち 2 つしか変更されていませんが、 レポート されているメ ト リ クスには大きな差があ り ます。平均 IPC 値は 34.9% 増加していますが、 L1 データ キャ ッシュ ミ ス率は著し く低下しています。 読み出しス トール サイクルも大幅に下がり、 CPU がデータ キャ ッシュ補充で待機している間にクロ ッ ク サイ クルが低下するこ とが確認できます。

X-Ref Target - Figure 6-5

図 6‐5 :変更前後の C/C++ ソフ トウェア (浮動小数点の行列乗算)

表 6‐1 : CPU0 パフォーマンス サマリ  (変更前後の行列乗算)

パフォーマンス メ ト リクスCPU0 パフォーマンス サマリ

変更前 変更後 変更点

CPU 使用率 (%) 100.00 100.00 ≈

サイクルごとの CPU 命令 0.43 0.58 ↑

L1 データ キャ ッシュ ミ ス率 (%)

8.24 0.64 ↓↓

L1 データ キャ ッシュ アクセス

3484.33M 3653.48M ≈

命令ごとの CPU 書き込みス トール サイ クル

0.00 0.00 ≈

命令ごとの CPU 読み出しス トール サイ クル

0.79 0.05 ↓↓

システム パフォーマンス解析 32UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 33: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 6 章 : ソフ トウェア パフォーマンスの評価

図 6-6 は、 [PS Performance] パネルでレポート されている L1 データ キャ ッシュのグラフ、 命令ごとの CPU ス トール サイクル数を示しています。 30 ページの図 6-3と比べる と、 コードのボ トルネッ クであった浮動小数点および整数の行列乗算が大幅に改善されているのが明らかです。 キャプチャの最後のほうの、 IPC が低く、 L1 データ キャ ッシュ ミ ス率が高く、 CPU の読み出しス トール サイクル数が多い期間が長かったのですが、 それがかなり短くな り改善されています。

これはソフ ト ウェアのランタイムで確認されています。 計測されたランタイムのま とめは表 6-2 にもあ り ます。 浮動小数点および整数の行列乗算のランタイムは、 それぞれも とのランタイムと比べて 22.8% そして 17.0% と低減されています。

X-Ref Target - Figure 6-6

図 6‐6 :改善された行列乗算を使用した BEEBS ベンチマークのパフォーマンス解析

表 6‐2 : ソフ トウェア ランタイムのまとめ (変更前および変更後の行列乗算)

ベンチマークソフ トウェア ランタイム (ミ リ秒)

変更前 変更後

浮動小数点の行列の乗算9201.70 2100.36

100.0% 22.8%

整数の行列の乗算8726.67 1483.24

100.0% 17.0%

システム パフォーマンス解析 33UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 34: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 7章

ハイ  パフォーマンス ポートの評価システム パフォーマンス モデリ ング (SPM) の大きな利点は、 プロセッシング システム (PS) とプログラマブル ロジッ ク (PL) の動き とそのインタラ クシ ョ ンに仮説を立てて、 それをチェッ クできるこ とにあ り ます。 この機能により、 デザイン段階に入る前にパフォーマンスを試行錯誤するこ とができるため、 後になってパフォーマンスに関する問題を発見してしま う可能性を抑えるこ とができます。 Zynq®-7000 AP SoC デバイスの競合は直接視覚的に確認はできませんが、 システム パフォーマンスへのインパク トは表示されます。

PS でソフ ト ウェア アプリ ケーシ ョ ンを実行しながら も、 具体的な ト ラフ ィ ッ ク シナリオをモデルするために SPM デザインを設定するこ とができます。 その後、 スループッ トやレイテンシなどの PL マスター パフォーマンス指標を使用して、 そのシナリオで目指すシステム パフォーマンスに問題がないかを検証するこ とができます。 このプロセスは、 さまざまな ト ラフ ィ ッ ク シナリオを使って、 繰り返し何度も実行するこ とができます。

Zynq-7000 AP SoC デバイスの重要な共有リ ソースの 1 つが DDR コン ト ローラーです。 このリ ソースは、 両方の CPU、 4 つのハイ パフォーマンス (HP) ポート、 アクセラレータ コ ヒーレンシ ポート (ACP)、 中央インターコネク トを介するほかのマスターで共有されます (詳細は第 8 章 「DDR コン ト ローラー設定の評価」 を参照)。 このため、 利用可能な DDR の帯域幅を知っておく こ とが重要です。

DDR の理論上の帯域幅は次の式を使用して計算できます。

(533.3 Mcycles)/sec x (2 tranx)/cycle× (4 bytes)/tranx=4270 MB/sec 式 1

これは、 このメモ リ を使用して達成できる最大帯域幅ですが、 実際の DDR 使用率は、 リ クエス ト を出すマスターの数やメモ リ アクセスのタイプなど多くの要因に左右されます。 本章で説明するよ うに、 この最大値あたり、 あるいはそれを越える帯域幅を リ クエス トする と、 リ クエス ト しているマスターすべてのスループッ トおよびレイテンシに影響する可能性があ り ます。 ザイ リ ンクス ソフ ト ウェア開発キッ ト (SDK) のシステム パフォーマンス解析 (SPA) ツールボッ クスを使用する と、 この解析がしやすくな り ます。

HD ビデオ ト ラフ ィ ッ ク

使用されているソフ ト ウェア アプリ ケーシ ョ ンは、 15 ページの 「SPM ソフ ト ウェア」 で説明した BEEBS (Bristol/Embecosm Embedded Energy Benchmark Suite) ベンチマーク プログラムです。 これを SDK で指定する方法については、 24 ページの図 5-1を参照して ください。 このシナリオでは、 4 つのハイ パフォーマンス (HP) ポートの ト ラフ ィ ッ クがシステムに挿入されていて、 ソフ ト ウェアおよびハードウェアのパフォーマンスは SDK で計測されています。 これは、 ソフ ト ウェアの複雑なアルゴ リズムを実行しながら、 同時に PL で HD ビデオ ス ト リームを処理しているシステムをモデルしています。 この処理をインプリ メン トするシステムを設計するのではなく、 SPM を使用する と、 そのパフォーマンスをモデルできます。 また、 設計を開始する前に、 目的のパフォーマンスを達成できることをすばやく検証するこ とができます。

システム パフォーマンス解析 34UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 35: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 7 章 : ハイ  パフォーマンス ポートの評価

図 7-1 は、 最初のト ラフ ィ ッ ク シナリオを示しています (この ト ラフ ィ ッ クの詳細については第 5 章 「SPM の入門」を参照)。 このシナリオは 4 つの未圧縮の 1080p/60 (つま り 1080 の走査線、 プログレッシブ、 60 フレーム/秒) の HD ビデオ ス ト リームをモデルしています。2 つのス ト リームがポート HP0 および HP2 で DDR から読み出され、ポート HP1 および HP3 には 2 つのス ト リームが書き込まれています。 モデルされているビデオ ス ト リームすべてに対し、ト ランザクシ ョ ン間隔は 376MB/秒、 未圧縮の RGB 4:4:4 ビデオの予想スループッ ト を リ クエス トするよ う選択されています。

この HD ビデオ ト ラフ ィ ッ クは ZC702 ボード上で実行されています。 図 7-2 に示すよ うに、 4 つの HP ポートのすべてが、 376MB/秒のリ クエス ト されたスループッ ト を維持できています。 これらの高いスループッ トは BEEBS ベンチマークが CPU0 で実行されている間も達成されています。 これらの 4 つの HP ポートで使用される合計帯域幅は、1510MB/秒、 または DDR の使用可能な帯域幅の 35% でした。 つま り、 Zynq-7000 AP SoC デバイスで、 これらのスループッ ト を達成するこ とが可能だという こ とです。 しかし、 DDR コン ト ローラーでのアービ ト レーシ ョ ンおよびスケジューリ ングが原因で、 いくつかの競合が見られ、 ソフ ト ウェア アプリ ケーシ ョ ンのパフォーマンスに影響し

X-Ref Target - Figure 7-1

図 7‐1 : HP ポートで HD ビデオ スト リームをモデルする ATG ト ラフ ィ ッ ク  コンフ ィギュレーシ ョ ン 

X-Ref Target - Figure 7-2

図 7‐2 : HP ポートで HD ビデオ スト リームをモデルした場合のパフォーマンス結果のサマリ

システム パフォーマンス解析 35UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 36: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 7 章 : ハイ  パフォーマンス ポートの評価

ています (40 ページの図 7-7を参照)。 ほとんどのベンチマークのランタイムにわずかな影響が出ていましたが、 メモリ アクセス量の多いベンチマークにはいちばん多く影響が出ていました。 ワース ト ケースは、 整数の行列乗算で、ランタイムは 14.0% 増でした。

高帯域幅ト ラフ ィ ッ ク

34 ページの 「HD ビデオ ト ラフ ィ ッ ク」 で説明されている ト ラフ ィ ッ ク モデリ ングは拡張可能です。 HP ポートの トラフ ィ ッ ク シナリオに別のものを使用し、 同じ BEEBS ベンチマークを実行できます。

図 7-3 は、 どれぐらい高い帯域幅のト ラフ ィ ッ クであればパフォーマンスに影響するのかを確認するため、 ス ト レス テス ト を実行する ト ラフ ィ ッ クを示しています。 4 つの HP ポートはすべて、 DDR へインク リ メンタルなアドレス指定を使用し、 読み出し と書き込みの両方に対して、 512 MB/秒を リ クエス ト します。 ト ラフ ィ ッ クの長さが BEEBS ベンチマーク アプリ ケーシ ョ ン全体の長さ と一致するよ うに、 合計の長さは 80 秒に設定されています。28 ページの図 6-1 には、 結果のタイムラインが表示されています。

HP マスターによって リ クエス ト されたスループッ ト合計は 8 * 512 = 4096MB/秒、 または DDR の理論上の最大スループッ トの 95.9% です。 ト ラフ ィ ッ クには書き込みと読み出しの両方のリ クエス トが含まれているため、 DDR コン ト ローラーにはさらにス ト レスが加えられます。 その理由は、 複数のリ クエスターだけでなく、 さまざまなタイプのリ クエス トの間をこのコン ト ローラーがアービ ト レート しなければならないからです。 このため、 これは、 達成可能な DDR 帯域幅のス ト レス テス ト とみなされます。 この ト ラフ ィ ッ クはワース ト ケース シナリオを表していますが、 メモ リが提供できる範囲を超えた、 さ らに高い帯域幅がリ クエス ト された場合に起きるバッ ク プレッシャーを可視化するよ うに実行するこ とが重要です。

X-Ref Target - Figure 7-3

図 7‐3 : HP ポートで高帯域幅のト ラフ ィ ッ クをモデルする  ATG ト ラフ ィ ック  コンフ ィギュレーシ ョ ン

システム パフォーマンス解析 36UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 37: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 7 章 : ハイ  パフォーマンス ポートの評価

SDK で SPM デザインを使用する と、 このタイプのス ト レス テス トは簡単に実行できます。 BEEBS ベンチマーウ アプリ ケーシ ョ ンは CPU0 で実行されましたが、 ATG は36 ページの図 7-3に示すリ クエス ト された ト ラフ ィ ッ クを実行するために SDK によってコンフ ィギュレーシ ョ ンされます。 この ト ラフ ィ ッ ク シナリオからのパフォーマンス結果のま とめは、 図 7-4 にあ り ます。 予想どおり、 HP ポート ごとに 512MB/秒のスループッ トが リ クエス ト されていましたが、 これは達成されていませんが、 非常に高いスループッ ト総計になっています。 HP ポートに割り当てられた読み出し /書き込みの帯域幅の合計は、 次のよ うに計算されます。

帯域幅合計 = 457.1 + 457.3 + 457 + 457.3 + 438.6 + 438.7 + 440.8 + 441.1= 3587.9 MB/sec 式 2

このバンド幅は式 1 から理論上最大の 84% ですが、BEEBS ベンチマーク スイート を実行する CPU0 に割り当てられた帯域幅もあ り ます。 このス ト レス テス トは、 4 つの HP ポートの書き込みおよび読み出し用に DDR コン ト ローラーによって使用されるアービ ト レーシ ョ ンを確認しています。 書き込みまたは読み込みどちらかの ト ラフ ィ ッ クも使用される可能性があるため、 DDR コン ト ローラーの帯域幅パフォーマンスは上がる点に注意してください。

書き込みと読み出しの両方のト ラフ ィ ッ クが指定されているため、 両タイプの ト ランザクシ ョ ンのパフォーマンスを解析するこ とが重要です。 38 ページの図 7-5 は、 [PL Performance] パネルの書き込み AXI ト ランザクシ ョ ンのパフォーマンスを示しています。 この 3 つのグラフは [Write Transactions]、 [Average Write Latency]、 [Write Throughput] です。 書き込みスループッ トおよびレイテンシは、 テス ト実行全体を通し、 4 つの HP ポート上で比較的一定しており、 平均値で若干の低下があるのと、 3.2 秒あたりでいく らかの変動が見られる程度です。

X-Ref Target - Figure 7-4

図 7‐4 : HP ポートで高帯域幅ト ラフ ィ ックをモデルした場合のパフォーマンス結果のサマリ

システム パフォーマンス解析 37UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 38: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 7 章 : ハイ  パフォーマンス ポートの評価

X-Ref Target - Figure 7-5

図 7‐5 : BEEBS ベンチマークを実行した HP ポートの高帯域幅ト ラフ ィ ックの書き込みパフォーマンス結果 

システム パフォーマンス解析 38UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 39: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 7 章 : ハイ  パフォーマンス ポートの評価

HP ポートの読み出しスループッ トおよびレイテンシには、 行列乗算中のパフォーマンスにもっと目立った低下が見られます (図 7-6 を参照)。 ほかのすべてのテス ト中は、 読み出し帯域幅は約 420MB/秒ですが、 メモ リ を多用する行列乗算の間は (1024KB のデータ配列を使用)、 スループッ トは約 340MB/秒に低下します。 グラフの上にマウスを置く と、 それを確認できます。 64 秒間おいて、 4 つの HP ポートの読み出しスループッ トはすべて約 338MB/秒になります。 スループッ トのこの低下はレイテンシの増加と一致しており、 どちら も DDR コン ト ローラーでの飽和に起因しています。

具体的な時点でのパフォーマンス指標値をレポートするには、 [Trace Tooltip] ボタンを使用するこ と もできます。ツール ヒ ン トが表示されたら、 それをグラフ内の任意点に移動させるこ とができ、 指定された測定値が表示されます。 正確な時点でのパフォーマンスを指定するのに非常に便利です。

X-Ref Target - Figure 7-6

図 7‐6 : BEEBS ベンチマークを実行した HP ポートの高帯域幅ト ラフ ィ ックの読み出しパフォーマンス結果

システム パフォーマンス解析 39UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 40: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 7 章 : ハイ  パフォーマンス ポートの評価

HP ト ラフ ィ ッ クが増加した影響はソフ ト ウェア パフォーマンスで見られます。 このパフォーマンスの全体的な指標はランタイムです。 BEEBS ソフ ト ウェアに追加された計装については、 57 ページの 「ハード ウェアの計測」 を参照してください。 図 7-7 は、 1024KB のデータ配列サイズを使用した 8 つのベンチマークの相対的なランタイムを示しています。 ト ラフ ィ ッ クのない各ベンチマークのランタイムは、 1.0 に正規化されます。 この大型配列には DDR へのアクセスが必要となるため、 ソフ ト ウェア ランタイムの増加は DDR 飽和によるものと考えられます。 行列乗算では、 ソフ ト ウェエア ランタイムが最も長くな り ます。 CRC (巡回冗長検査) アルゴ リズムも ランタイムに目立った影響を与えますが、 これは、 データ配列のメモ リ読み出し回数が増加したこ と と、 CRC 多項式テーブルが原因であるこ とがほとんどです。 その他のベンチマークは、 4 つの HP ポートすべてで高いスループッ トの ト ラフ ィ ッ クがあっても、 パフォーマンスに最低限の影響しか与えません。

X-Ref Target - Figure 7-7

図 7‐7 : さまざまな HP ポート  ト ラフ ィ ッ クでの BEEBS ベンチマークの相対的なランタイム (データ配列 サイズは 1024KB)

システム パフォーマンス解析 40UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 41: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 8章

DDR コン ト ローラー設定の評価Zynq-7000 AP SoC デバイス ファ ミ リの場合、 DDR メモ リの帯域幅の割り当てをある程度コン ト ロールできます。 これは、 オンチップ DDR コン ト ローラー (DDRC) で設定できます。 SDK 2014.4 よ り、 SPM デザインのクロ ッ ク周波数および DDRC 設定を変更できるよ うになっています。 この章では、 帯域幅は必ずしも作成できませんが、 それを割り当て直すこ とができる という こ とを説明します。

まず、 DDRC へのコネクティビティを理解しておく こ とが大切です。 図 8-1 は Zynq-7000 AP SoC の DDRC のブロ ック図です。 DDRC には 4 つのポートがあ り ます。 CPU およびアクセラレータ コ ヒーレンシ ポート (ACP) (ポート 0) からの ト ラフ ィ ッ ク、 中央インターコネク ト を介したほかのマスター (ポート 1) からの ト ラフ ィ ッ ク、 HP2 および HP3 の HP ポート (ポート 2) からの ト ラフ ィ ッ ク、 HP0 および HP1 の HP ポート (ポート 3) からの ト ラフ ィ ッ クを処理します。 DDRC の設定は、 ブート プロセスの初期段階でさまざまなシステム設定をコンフ ィギュレートする、PS7 または FSBL の一部です。詳細は、『Zynq-7000 AP SoC テクニカル リ ファレンス マニュアル』 (UG585) [参照 1] の「DDR メモ リ コン ト ローラー」 の章を参照してください。

X-Ref Target - Figure 8-1

図 8‐1 : Zynq‐7000 AP SoC の DDR コン ト ローラー

システム パフォーマンス解析 41UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 42: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 8 章 : DDR コン ト ローラー設定の評価

SDK の Project Explorer で SPM プロジェク ト (プロジェク トの デフォルト名は SPM_ZC_702_HwPlatform) を右ク リ ック し、 [Configure FSBL Parameters] をク リ ッ ク します。 図 8-2 はそのと きに開くダイアログ ボッ クスです。 SPM デザインのデフォルトの FSBL 設定が表示されています。 このダイアログ ボッ クスでは次の設定ができます。

• [(PS/PL/DDR) Clock Frequency (MHz)] : プロセッシング システム (PS)、 プログラマブル ロジッ ク (PL)、 DDR のクロ ッ ク周波数を指定できます。

• [DDR Data Path Width] : 16 ビッ ト または 32 ビッ トのデータ パス幅を指定できます。

• [DDR Port (0/1/2/3) - Enable HPR] : 4 つの DDR ポートに対し、 ハイ パフォーマンスの読み出し (HPR) を有効にするこ とができます。

• [HPR/LPR Queue partitioning] : 32 個のリ クエス ト分の読み出し リ クエス トのキューが DDRC に含まれています。HPR および優先順位の低い読み出し (LPR) に対するこのキューの割り当て方法を指定できます。

• [(LPR/HPR/Write) to Critical Priority Level] : 図 8-2 にある最後の 3 つの値はク リティカル レベルです。 3 つの異なるキュー (LPR、 HPR、 Write) がク リ ティカルになる前に待機状態のものをなくすこ とができるクロ ッ ク数 (32 DDR ク ロ ッ ク サイクルが単位) を指定します。 ク リ ティカル ステートに達する と、 そのキューは最優先になります。 つま り、 値が小さいほど、 そのキューの優先度は高くなり ます。

これらの DDRC 設定は Vivado® Design Suite でも変更できます。 Vivado IP インテグレーター ベースのデザインでは、ブロ ッ ク図の Zynq7 Processing System IP をダブルク リ ッ ク します。 コンフ ィギュレーシ ョ ン ダイアログ ボッ クスが開き、 そこで IP を再カスタマイズできます。 DDR コン ト ローラーの設定は、 [DDR Configuration] の下にリ ス ト されていて、 詳細なオプシ ョ ンは [Enable Advanced options] の下にあ り ます。 チェッ ク ボッ クスがオンになっていれば、読み出し /書き込み優先順位、 優先順位の高い読み出し (HPR) など、 パフォーマンスに影響する可能性のある重要な設定を表示したり、 変更したりできます。 これらの設定の詳細は、 『Zynq-7000 AP SoC テクニカル リ ファレンス マニュアル』 (UG585) [参照 1] で説明されています。

X-Ref Target - Figure 8-2

図 8‐2 :デフォルト  FSBL コンフ ィギュレーシ ョ ン設定 (SPM デザイン)

システム パフォーマンス解析 42UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 43: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 8 章 : DDR コン ト ローラー設定の評価

デフォルトの DDRC 設定

ベースライン結果は、 42 ページの図 8-2に示すよ うに、 デフォルトの FSBL 設定を使用して、 HP のみのト ラフ ィ ックを実行して作成されています。 PL ト ラフ ィ ッ クは 36 ページの図 7-3に示す高帯域幅の HP ト ラフ ィ ッ クですが、その期間は 10 秒に設定されています。 また、 ソフ ト ウェア アプリ ケーシ ョ ンは実行されていません。 [Debug Configuration] を変更してコンフ ィギュレーシ ョ ンできます。 [Application] タブをク リ ッ ク し、 [Download Applications] チェッ ク ボッ クスをオフにします。

この ト ラフ ィ ッ ク シナリオは ZC702 で実行されていて、 結果は図 8-3 で確認できます。 デフォルトの DDRC 設定はまだ変更されていないため、 使用されている点に注意してください。 HP ポートの帯域幅は、 CPU からの DDR ト ラフ ィ ッ クがないので、 37 ページの図 7-4に示される前の結果よ り も高くなっています。

このため、 合計の DDR 帯域幅は、 HP ポートで計測された各帯域幅の和になり、 次のよ うに計算されます。

帯域幅合計 = 462.3 + 462.3 + 462.1 + 462.1 + 432.3 + 432.3 + 432.0 + 432.0= 3577.4 MB/sec 式 1

この帯域幅合計は DDR の理論上の最大スループッ トの 83.7% です。 4 つの異なる HP ポートからの高帯域幅の読み出し と書き込みが混ざっているこ とを考える と、 これは非常によいパフォーマンスです。

X-Ref Target - Figure 8-3

図 8‐3 :デフォルト  DDR コンフ ィギュレーシ ョ ン設定を使用した HP パフォーマンス

システム パフォーマンス解析 43UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 44: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 8 章 : DDR コン ト ローラー設定の評価

変更した DDRC 設定

DDRC 設定を変更し、 上記の HP のみのテス ト を再実行して、 パフォーマンス結果を比較するこ とができます。DDRC 設定をこのス ト レス テス ト用に変更するのは重要なのですが、 ユーザー デザインにはその変更が好まし くない場合もあるので注意してください。 実際、 デフォルトの DDRC 設定を使用する とほとんどのデザインで目指すパフォーマンスを達成するこ とができます。

HP0 および HP1 の読み出し ト ラフ ィ ッ クに、高い優先順位が必要であるシナリオを検討してみまし ょ う。 Zynq-7000 AP SoC では、 これらの HP ポートは、DDR ポート 3 によ り処理されます (41 ページの図 8-1を参照)。図 8-4 にあるように、 これは、 HPR を DDR ポート 3 に追加するこ とで達成できます。 リ クエス ト キューも、 HPR の 24 個のリ クエス ト、 LPR の 8 個のリ クエス ト を割り当てるこ とで分割できています。 HPR はそのク リティカル レベルを 2 に下げるこ とで、 さ らに優先度が上がっていて、 LPR および書き込みのク リティカル レベルは 15 に上げられています。 これは、 HPR が目指す優先度で受信されるよ うにするための重要なステップです。

X-Ref Target - Figure 8-4

図 8‐4 :変更した FSBL コンフ ィギュレーシ ョ ン設定 (SPM デザイン)

X-Ref Target - Figure 8-5

図 8‐5 :変更された DDR コン ト ローラー設定を使用した HP パフォーマンス

システム パフォーマンス解析 44UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 45: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 8 章 : DDR コン ト ローラー設定の評価

図 8-5 は、 DDRC 設定を変更し、同じ HP のみのト ラフ ィ ッ クを再実行した後の SDK での結果を示しています。 HP0 および HP1 の DDR コン ト ローラーでのト ランザクシ ョ ンは高い優先順位であるため、 HP0 および HP1 はリ クエスト されている 512 MB/秒の読み出しスループッ ト を達成できています。 しかし、 ほかのすべての ト ラフ ィ ッ ク (HP2 および HP3 のリ クエス ト された読み出し、 そしてすべての書き込み) 達成スループッ トは低下しています。 これは、これらの ト ランザクシ ョ ンの優先順位が低いこ とが原因です。 つま り、 DDRC 設定でそのよ うに指定されている という こ とです。 このテス トの合計帯域幅は次のよ うに計算されます。

帯域幅合計 = 361 + 361 + 360.9 + 360.9 + 511.4 + 511.4 + 412.2 + 412.2= 3291 MB/sec 式 2

この合計帯域幅は、デフォルトの DDRC 設定で達成された合計帯域幅の 2.3% に収まっています (ま とめは 43 ページの図 8-3 および 式 1 を参照してください)。 DDRC 設定を変更しても帯域幅は作成されず、 再度割り当てられるだけである点に注意してください。 つま り、 DDR コン ト ローラーで達成された合計帯域幅を占める率が高いものが、 リクエス ト された優先順位の高いポート HP0 および HP1 に割り当て直されます。 一方で合計帯域幅は比較的一定しています。

また、 別の確認方法が、 図 8-6 にある読み出しレイテンシの図に示されています。 HP0 および HP1 での読み出し トラフ ィ ッ クに高い優先順位を与えるため、 DDRC がコンフ ィギュレーシ ョ ンされているため、 これらのポートのレイテンシは比較的低くなっています。 つま り、 これらのポートの読み出し リ クエス トは、 高い優先順位で DDRC によって処理されています。 一方で、 その他の HP ポート、 HP2 と HP3 の読み出し リ クエス トは低い優先順位で処理されているため、 そのレイテンシはもっと高くな り ます。 このため、 HP0 と HP1 のスループッ トが高くな り、 HP2 と HP3 のスループッ トは低くな り ます。

オンチップ メモリの使用

すべての HP ポートの書き込みと読み出し両方のト ラフ ィ ッ クに対し、 512MB/秒を得る というのがデザイン要件になっているケースを考えてみまし ょ う。 DDRC 帯域幅を増加させるためほかのメモ リ を利用するにはど う したらよいでし ょ うか。 帯域幅合計は 8 * 512 = 4096MB/秒、 または DDR の理論上の最大スループッ トの 96.0% が必要になります。 通常の DDR コン ト ローラーや、 書き込みと読み出しを混合させたメモ リ を使っても これを達成するこ とはできないのですが、 追加データ バッファ リ ング用にオンチップ メモ リ (OCM) を利用するこ とが可能です。 これは、Zynq-7000 AP SoC PS にある、 優れた、 低いレイテンシのスク ラ ッチ パッ ドを提供する 256KB メモ リ とは別です。

X-Ref Target - Figure 8-6

図 8‐6 :変更された DDR コン ト ローラー設定を使用した HP ポートの読み出しレイテンシ

システム パフォーマンス解析 45UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 46: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 8 章 : DDR コン ト ローラー設定の評価

図 8-7 は OCM を使用するある ト ラフ ィ ッ ク シナリオを示しています。 このシナリオを、 36 ページの図 7-3にある元のシナリオと比較してください。 リ クエス ト されたスループッ トは、 すべての操作およびタイプに対して同じままですが、 HP2 および HP3 のト ラフ ィ ッ クは OCM を使用しています。

そのよ うな ト ラフ ィ ッ ク シナリオの結果は図 8-8 に示されています。 OCM は DDR の帯域幅を増加させるために使用されているので、 4 つの HP ポートすべてで書き込みおよび読み出しの両方の操作に対して、 512MB/秒という必要な帯域幅が維持されています。 また、 OCM からの平均読み出しレイテンシは、 31 ~ 32 サイクルです (DDR からの平均は 40 ~ 44 サイ クル)。 これらのレイテンシ値はシステムの多くの要因に左右されるので、 SPM デザインを使用し、 さまざまな条件の下で解析を実行するこ とが重要です。

X-Ref Target - Figure 8-7

図 8‐7 : DDR と  OCM の両方を使用し、 HP ポートの高帯域幅ト ラフ ィ ッ クをモデルする  ATG ト ラフ ィ ッ ク  コンフ ィギュレーシ ョ ン

X-Ref Target - Figure 8-8

図 8‐8 : DDR と  OCM の両方を使用した HP ポートの高帯域幅ト ラフ ィ ックのパフォーマンス サマリ

システム パフォーマンス解析 46UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 47: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 8 章 : DDR コン ト ローラー設定の評価

もちろん、 DDRC 設定を変更して、 帯域幅の再割り当てを試してみるこ とができます。 たとえば、 ユーザーのプログラマブル ロジッ ク デザインで、 ある IP の帯域幅要件がもっと高かったり、 あるいはレイテンシ要件が低かったりするケースがあ り ます。そのコアがどの HP ポートに接続されるのか (またはどれに接続する予定なのか) を把握したら、 その HP ポート とのペアにもっと高い帯域幅を割り当てるこ とができます。 たとえば、 第 11 章 「徹底パフォーマンス解析」 では、 マルチレイヤー ビデオ ディ スプレイ コン ト ローラーの帯域幅要件が、 システムの AXI マスターよ り も高くなっています。

デザインの条件と制約が違えば、 別の HPR と優先レベルの組み合わせのほうがう ま くいく こ と もあ り ます。 たとえば、 DDR ポート 0 の優先順位を上げるこ とで、 ユーザーのソフ ト ウェアのランタイム パフォーマンスを改善するために、 これらの設定を変更するこ と もできるでし ょ う。 このポートは L2 キャ ッシュに接続されていて、 CPU および ACP ポート用になっています。

SDK で提供されているパフォーマンス解析機能を利用するこ とで、 こ う したパフォーマンス結果をすばやく、 視覚的に検証するこ とができます。

システム パフォーマンス解析 47UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 48: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 9章

メモリ階層および ACP の評価SPM (System Performance Modeling) デザインを使用して、 Zynq®-7000 AP SoC キャ ッシュのパフォーマンス効果を評価するこ とができます。 まずソフ ト ウェアだけを使用したベースライン パフォーマンスを査定して、 それから、 アクセラレータ コ ヒーレンシ ポート (ACP) のト ラフ ィ ッ クの効果を評価できます。 ソフ ト ウェアのみを実行していると きはメモ リ パフォーマンスは非常に予測しやすいのですが、 ほかの ト ラフ ィ ッ ク アクティ ビティをシステムに加える と、 結果はそれほど簡単には予測できなくなる可能性が出てきます。 特に、 CPU および ACP のト ラフ ィ ッ クは共有の L2 キャ ッシュで互いに影響し合う可能性があ り ます。 SPM デザインを使用するこ とで、 この解析を非常に簡単に行う こ とができます。

メモリ  パフォーマンスの査定

この査定を始めるには、 SPM デザインを使用し、 ソフ ト ウェアのみを実行したベースライン パフォーマンスを査定します。 この評価に使用するアプリ ケーシ ョ ンは、 SPM プロジェク トの中にあるプリ コンパイルされた実行ファイルの 1 つ、 メモ リ ス ト ラ イ ド ベンチマーク プログラムです。

X-Ref Target - Figure 9-1

図 9‐1 : メモリ  スト ライ ド  ベンチマーク  ソフ トウェアを使用したアプリケーシ ョ ン設定

システム パフォーマンス解析 48UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 49: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 9 章 : メモリ階層および ACP の評価

図 9-1 は、メモ リ ス ト ラ イ ド ベンチマーク ソフ ト ウェア実行ファイルを使用して SDK でこれを定義する方法を示しています (15 ページの 「SPM ソフ ト ウェア」 を参照)。 このソフ ト ウェアは、 帯域幅と平均レイテンシを計算するために計装されています (56 ページの 「ソフ ト ウェアの計測」 参照)。

プログラマブル ロジッ ク (PL) のト ラフ ィ ッ クを使用せずに、 ソフ ト ウェアのみのテス トでの帯域幅結果 (MB/秒) は表 9-1 に、 レイテンシ結果 (ナノ秒) は表 9-2 にリ ス ト されています。 4KB、 64KB、 1024KB という 3 つのサイズは、メモ リ階層の異なるステージでの帯域幅をテス トするために使用されています。 この 3 つのサイズは、 SPM プロジェク トのプ リ コンパイルされたメモ リ ス ト ラ イ ド実行ファイルによ り使用されています。 これらのデータ アレイの位置は、 そのサイズと、 プログラムで使用されている ヒープ以外の場所にはまずみられないという事実から推測できます。

1 つのサイズ内でもっと も高い帯域幅はリニアの帯域幅テス トで達成されます。 これらのテス トは 32 バイ トのキャ ッシュ ラインを利用するこ とができるからです。 コピーや、 読み出し /書き込みといった操作は、 読み出し と書き込みの両方の操作が行われるため、 一般的にその速度は遅くなり ます。 3 つのサイズのうち、 4KB アレイがいちばん高い帯域幅を維持し、 1024KB アレイがいちばん低い帯域幅を維持します。

表 9-1 および表 9-2 にリ ス ト されている 12 個のベンチマークが 3 つのデータ アレイ サイズでそれぞれに実行されるので、 合計 36 個のテス トが実行されています。 各テス ト間に 1 秒間のス リープが挿入されているため、 CPU 使用率を見れば、 どのベンチマークが実行されているのかを見分けやすくなっています。 図 9-2 には、 結果のタイムラインが表示されています。 各ベンチマーク内で、 小さいサイズから大きなサイズへと順番に、 3 つのデータ サイズが実行されています。 CPU0 の使用率およびその使用期間を確認できます。

表 9‐1 : メモリ  スト ライ ド  ベンチマークを使用したソフ トウェアのみの帯域幅結果 (MB/秒)

パターン  タイプ 操作タイプサイズ

4KB 64KB 1024KB

リ ニア

読み出し 2141.4 338.4 118.1

書き込み 2114.8 238.4 57.6

コピー 1248.4 126.7 32.9

読み出し /

書き込み

1194.4 265.2 64.4

ランダム

(予測値)

読み出し 1019.9 325.9 92.4

書き込み 532.4 285.6 64.1

コピー 442.6 140.6 31.9

ランダム

( リ アルタイム)

読み出し 337.2 138.7 41.5

書き込み 409.8 393.6 70.0

コピー 409.7 159.4 32.8

表 9‐2 : メモリ  スト ライ ド  ベンチマークを使用したソフ トウェアのみのレイテンシ結果 (ナノ秒)

パターン  タイプ 操作タイプサイズ

4KB 64 KB 1024 KB

リ ニア 読み出し 1.87 11.82 33.88

ランダム

(予測値)

読み出し 1.89 16.78 69.46

システム パフォーマンス解析 49UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 50: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 9 章 : メモリ階層および ACP の評価

図 9-2 は、 [PS Performance] パネルにレポート されているほかの 3 つのグラフ、 L1 データ キャ ッシュ ミ ス率、命令ごとの CPU 書き込み/読み出しのス トール サイ クル数が示されています。 メモ リ ス ト ラ イ ド ベンチマークは一定間隔で行われるので、 それがこれらのグラフに反映されています。 また、 この 3 つのグラフは、 データがどこに取り込まれているかに関する情報も示すこ とができます。 3 つに 1 つベンチマークの L1 データ キャ ッシュ ミ ス率が 0% になり ますが、 これは 4KB のサイズが使用された場合です。 ほかの 2 つのサイズは、 L1 データ キャ ッシュには収まらないため、 ミ ス率はほぼ 100% になり ます。

これらのキャ ッシュ ミ スのソフ ト ウェアへの影響は、 命令ごとのス トール サイクル数で確認できます。 ス トール サイクル数が多ければ、 メモ リ書き込み (書き込み) またはデータ キャ ッシュ補充 (読み出し ) を待っている間のプロセッサのサイクル数が多くなり ます。 つま り、 そのベンチマークの有効帯域幅が低くなり ます。 たとえば、 図 9-2 にある リニア帯域幅のコピーのベンチマークは、 約 10 から 11 秒で実行されています。 この期間中の命令ごとの CPU 書き込み/読み出しス トール サイクル数が多いのは、 すべてのメモ リ ス ト ラ イ ド ベンチマークの中で最も低い帯域幅の 1 つを維持しているからです (33.23 MB/秒、 49 ページの表 9-1を参照)。

データ  サイズおよび局所性

メモ リ階層のパフォーマンスをよ り視覚的確認するため、 メモ リ ス ト ラ イ ド テス トで使用されたサイズの範囲を 1KB から 4096KB までにしました。 これで、 データ サイズおよびその局所性が、 CPU で達成される帯域幅とレイテンシにどのよ うに影響するかをはっき り と確認できるよ うになり ます。

X-Ref Target - Figure 9-2

図 9‐2 : メモリ  スト ライ ド  ベンチマークの PS パフォーマンス グラフ

システム パフォーマンス解析 50UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 51: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 9 章 : メモリ階層および ACP の評価

51 ページの図 9-3 は、 メモ リ ス ト ラ イ ド テス ト中に CPU0 で達成される メモ リ帯域幅を示しています。 はっき り と説明できるよ うに、 ランダム帯域幅 ( リ アルタイム) テス トは、 このグラフには表示されていません。 サイズが大きくなる と、 L1 と L2 データ キャ ッシュの境界で大き く変動しています。 これはサイズが前のキャッシュには収まらなくなってしまったからです。 図 9-4 も、 メモ リ ス ト ラ イ ド テス ト中に CPU0 で達成される平均メモ リ アクセス レイテンシに対し、 同じよ う な変動があるこ とを示しています。 しかし、 サイズが大き くなる と帯域幅が低くなる一方で、 レイテンシは大き く増加しています。

X-Ref Target - Figure 9-3

図 9‐3 : メモリ  スト ライ ド  テストで達成した CPU メモリ帯域幅 

X-Ref Target - Figure 9-4

図 9‐4 : メモリ  スト ライ ド  テストで達成した CPU メモリ  アクセス レイテンシ

システム パフォーマンス解析 51UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 52: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 9 章 : メモリ階層および ACP の評価

共有 L2 キャッシュ

CPU と メモ リ との間のベースライン パフォーマンスを測るこ とができたので、 次に、 アクセラレータ コ ヒーレンシ ポート (ACP) にト ラフ ィ ッ クを追加して、 システム パフォーマンスへのその影響を解析します。 メモ リ ス ト ラ イ ド ソフ ト ウェア (15 ページの 「SPM ソフ ト ウェア」 を参照) は、 CPU0 でまた実行されていますが、 今回はト ラフ ィ ックが ACP に追加されています。 L2 キャ ッシュは CPU と ACP で共有されているため、 そのメモリである程度の競合が起きるこ とが予測されます。

図 9-5 は、 ACP の初期ト ラフ ィ ッ クをモデルする、 AXI ト ラフ ィ ッ ク ジェネレーター (ATG) のコンフ ィギュレーシ ョ ンを示しています。 4KB 領域内でのランダム アドレス指定が指定されていますが、 L2 から DDR までのメモ リ パスが使用されています。 [Tranx interval] の最初の値は 100 ク ロ ッ ク サイクルで、 100MHz で 128MB/秒のスループッ ト を リ クエス トするよ う、 ATG がコンフ ィギュレート されます。 そのほかの設定はそのままにしておき、[Tranx interval] の値を下げます。 そ うする と、 リ クエス ト されたスループッ ト値が増えていきます。 この ト ランザクシ ョ ン間隔に使用される値は、 100、 50、 30、 25、 20、 17 です。 これらの間隔はそれぞれ、 128、 256、 426、 512、640、 752MB/秒のスループッ ト を リ クエス ト します。

この ト ラフ ィ ッ ク シナリオで、 帯域幅に関して、 CPU と ACP との間での ト レードオフを試行錯誤するこ とができます。 ただし、 これは CPU と ACP が共有メモ リ空間を使用していないケースをモデルしている点に注意して ください。 DDR に対しても同様で、 L2 データ キャ ッシュは、 スケジューリ ングに基づいて帯域幅を割り当てます。 合わせた帯域幅が L2 キャ ッシュがサポートできる値よ り高い場合は、 バッ ク プレッシャーという形で競合が起きます。

X-Ref Target - Figure 9-5

図 9‐5 : ACP でのト ラフ ィ ッ クをモデリングする  ATG コンフ ィギュレーシ ョ ン

システム パフォーマンス解析 52UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 53: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 9 章 : メモリ階層および ACP の評価

53 ページの図 9-6 は、 ACP ト ラフ ィ ッ クなしでメモ リ ス ト ラ イ ドを実行した後の、 SDK でのパフォーマンス サマリです。 図 9-7 は、752MB/秒 ( ト ランザクシ ョ ン間隔は 17) を リ クエス トする ACP の読み出し /書き込みト ラフ ィ ッ クを追加してメモ リ ス ト ラ イ ドを実行した同じパフォーマンス サマリです。 これらは同じテス トの 2 種類のサマリですが、 その違いはある程度見られます。 ACP ト ラフ ィ ッ クは図 9-7 で明らかに見られますが、 CPU 統計は大体類似しています。

命令ごとの CPU 書き込みス トール サイクル数と、 命令ごとの CPU 読み出しス トール サイクル数には 1 つ違いがあり ます。 これらの値は ACP ト ラフ ィ ッ クなしで 2.79 および 4.29 ですが、 高帯域幅の ACP ト ラフ ィ ッ クを使用するとそれぞれ 3.35 および 5.64 に増加します。 これら 2 つの指標の値が高くなる と、 一般的にメモ リ書き込みとデータ キャ ッシュ補充で CPU がス トールするこ とを示します。 その理由は、 ACP ト ラフ ィ ッ クが L2 キャ ッシュの帯域幅をかなり使ってしまっているために、 L2 キャ ッシュで競合が起きるからです。

図 9-8 は、 この競合が ACP の書き込みおよび読み出しのパフォーマンスにどのよ うな影響を与えているのかを示しています。 ACP 書き込みパフォーマンスへの影響は最小限で、 さまざまなソフ ト ウェア ベンチマークを試してみてもレイテンシにわずかな増加が見られるだけです。 しかし、 平均読み出しレイテンシは、 メモ リ ス ト ラ イ ド ソフ トウェアの影響を明らかに受けていて、 ベンチマークのシーケンスがその周期に反映されています。 ACP スループット も影響を受けていて、 約 640MB/秒のワース ト ケース値に低下しています。 リ クエス ト された帯域幅 752MB/秒は、一般的なデザインにはおそら く値が高すぎて現実的ではあ り ませんが、 システムのス ト レス テス トには効果があ ります。

X-Ref Target - Figure 9-6

図 9‐6 : メモリ  スト ライ ドおよび ACP ト ラフ ィ ックなしのパフォーマンス サマリ

X-Ref Target - Figure 9-7

図 9‐7 : メモリ  スト ライ ドおよび 752 MB/秒をリクエストする  ACP ト ラフ ィ ッ クのパフォーマンス サマリ

X-Ref Target - Figure 9-8

図 9‐8 : レイテンシへの影響を示す SDK での ACP パフォーマンス結果

システム パフォーマンス解析 53UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 54: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 9 章 : メモリ階層および ACP の評価

リ クエス ト された ACP 帯域幅の値が確認されたので、 維持されている CPU の帯域幅も記録されています。 54 ページの図 9-9 は、 作業セッ ト サイズ 4KB を使用したメモ リ ス ト ラ イ ドを含む CPU0 で達成される帯域幅を示しています。 図 9-10 は、 メモ リ ス ト ラ イ ドが 64KB で実行されたと きの CPU0 帯域幅を、 図 9-11 は、 メモ リ ス ト ラ イ ドが 1024KB で実行されたと きの帯域幅を示しています。 これらのサイズで得られた値は、 L1 データ キャ ッシュ、 L2 データ キャ ッシュ、 そして DDR とそれぞれで達成された帯域幅の有効な計測値とみなされます。

作業セッ ト サイズ 4KB を使用したメモ リ ス ト ラ イ ド ソフ ト ウェアを実行する場合、 CPU の帯域幅は ACP のト ラフ ィ ッ クの影響を受けません (54 ページの図 9-9参照)。 64KB および 1024KB を使用する と、 ACP ト ラフ ィ ッ クは

X-Ref Target - Figure 9-9

図 9‐9 : CPU0 vs ACP 帯域幅 (サイズ = 4 KB) で達成されたパフォーマンス

X-Ref Target - Figure 9-10

図 9‐10 : CPU0 vs ACP 帯域幅 (サイズ = 64 KB) で達成されたパフォーマンス

X-Ref Target - Figure 9-11

図 9‐11 : CPU0 vs ACP 帯域幅 (サイズ = 1024 KB) で達成されたパフォーマンス

システム パフォーマンス解析 54UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 55: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 9 章 : メモリ階層および ACP の評価

CPU 帯域幅に大きな影響を与えます (図 9-10 および図 9-11 を参照)。CPU0 帯域幅が一番低下したのは、64KB でリニア帯域幅のコピー ベンチマークを実行したと きで、 14.6% でした。

システム パフォーマンス解析 55UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 56: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 10章

カスタム ターゲッ トの使用ザイ リ ンクス ソフ ト ウェア開発キッ ト (SDK) のシステム パフォーマンス解析ツールボッ クスをデザインで使用するには、 ソフ ト ウェアの計測、 ハード ウェアの計測、 そして SDK 内でのカスタム ターゲッ トの監視という 3 つの重要な点を考慮する必要があ り ます。

ソフ トウェアの計測

ソフ ト ウェア ランタイム、 帯域幅、 平均レイテンシは、 xtime_l.h ヘッダーで定義されているスタンドアロンの BSP で使用できる簡単な計器を使用して計算されます。 ベンチマークの前後に XTime_GetTime() への呼び出しが挿入されます (57 ページの図 10-1を参照)。 2 つの Xtime 値の差は、 xtime_l.h にある COUNTS_PER_SECOND 値を使用して秒 (またはミ リ秒) に変換されています。 ベンチマーク実行中に送信されるデータ量はわかっているため、 その特定ベンチマークを実行している間に達成された帯域幅および平均レイテンシも計算できます。

#include <stdlib.h>#include <stdio.h>#include <unistd.h>#include "xtime_l.h" // XTime_GetTime()

// Macros#define TIMEDIFF(t1,t2) (t2 - t1)#define MILLISECONDS(t) (1000.0 * t / COUNTS_PER_SECOND)

// GlobalsXTime start, end;

// Start a testvoid startTest() { XTime_GetTime(&start);}

// End a testvoid endTest() { XTime_GetTime(&end); double time_curr = TIMEDIFF(start, end); double msec = MILLISECONDS(time_curr); printf("Run-time = %.2f msec...\n", msec);

// Achieved Bandwidth = (total bytes transferred) / (msec) // Average Latency = (msec) / (total memory accesses)}

// Dummy testvoid runSomething(int time) { sleep(time);}

システム パフォーマンス解析 56UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 57: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 10 章 : カスタム ターゲッ トの使用

int main(void) { startTest(); runSomething(1); endTest();

startTest(); runSomething(2); endTest();

return 0;}

ハードウェアの計測

SDK でパフォーマンス解析機能を使用したい場合は、 プログラマブル ロジッ ク (PL) デザインに AXI パフォーマンス モニター (APM) を含める必要があ り ます。 APM は既に SPM (System Performance Modeling) の固定ビッ ト ス ト リーム デザインに含まれているこ とに注意してください (15 ページの 「SPM ソフ ト ウェア」 を参照)。

図 10-2 は、 Vivado® Design Suite の IP インテグレーターのブロ ッ ク図におよびそのコンフ ィギュレーシ ョ ン パネルに APM のインスタンスがどのよ うに表示されるかを示しています。Vivado IP インテグレーターにこれを追加するには、 APM のあるデザインを設定するための手順に従ってください。

1. IP インテグレーターのブロ ッ ク図で、 [Add IP] ボタン をク リ ッ ク します。

2. 「AXI Performance Monitor」 を検索して、 それをダブルク リ ッ ク します。

3. APM をダブルク リ ッ ク して [Re-Customize IP] ダイアログ ボッ クスを開きます。 このダイアログ ボッ クスでは次のオプシ ョ ンを設定できます。

X-Ref Target - Figure 10-1

図 10‐1 :サンプルの C/C++ ソフ トウェア コード

X-Ref Target - Figure 10-2

図 10‐2 : AXI パフォーマンスモニター –インスタンスとカスタマイズ

システム パフォーマンス解析 57UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 58: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 10 章 : カスタム ターゲッ トの使用

a. [APM Mode] の下にある [Profile] をチェッ ク します。

b. [Number of Monitor interfaces] を 5 に設定します。

4. 次の作業を行って、 APM をユーザー デザインに接続します。

a. Zynq-7 プロ ッセシング システム (AXI インターコネク ト を介す) の GP0 または GP1 に S_AXI を接続します。

b. SLOT_x_AXI ポート (x=0…4)に HP0、 HP1、 HP2、 HP3、 および ACP を接続します。 これらのインターフェイスがデザインで使用されていない場合は、 対応するスロ ッ ト を未接続のままにしておきます。

c. s_axi_aclk および s_axi_aresetn を、 GP0/GP1 に関連付けられているクロ ッ クおよびリセッ トに接続します。

d. すべての入力、 slot_x_axi_aclk および slot_x_axi_aresetn を該当するクロ ッ クおよびリセッ トに接続します。

e. core_aclk および core_aresetn をもっと も高いクロ ッ ク周波数でクロ ッ ク / リセッ トに接続します。

5. [File] → [Export] → [Export Hardware] をク リ ッ ク して、 ビッ ト ス ト リームをビルド して、 Vivado からエクスポート します。

6. [File] → [New] → [Project] をク リ ッ ク して、 次に [Xilinx] → [Hardware Platform Specification] をク リ ッ ク して、 生成されたファイル <your design>.hdf をSDK にインポート します。

カスタム ターゲッ トの監視

SDK には、 第 11 章 「徹底パフォーマンス解析」 で説明したよ うな、 実行しているターゲッ ト を監視する機能があ ります。 ターゲッ トのオペレーティング システムに関わらず、 テクニッ クには 2 つあり、 どちら も使用できます。 違いは、 ハード ウェア プラ ッ ト フォーム仕様が SDK にインポート されるかど うかです。 これは Vivado で作成されたハード ウェア デザインで、 プロジェク ト と して SDK にインポート されます。

Vivado でデザインが定義されているなら、 そのデザインに基づいてハードウェア プラ ッ ト フォーム仕様を作成するこ とをお勧めします。 その後、 その仕様に基づいてパフォーマンス解析を実行できます。 手順は次のとおりです。

X-Ref Target - Figure 10-3

図 10‐3 :デバッグ コンフ ィギュレーシ ョ ンでのターゲッ ト設定 (インポート されたハードウェア プラッ ト フォーム仕様を使用) 

システム パフォーマンス解析 58UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 59: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 10 章 : カスタム ターゲッ トの使用

1. Vivado で [File] → [Export] → [Export Hardware] をク リ ッ ク して、 ビッ ト ス ト リームをビルド して、 Vivado からエクスポート します。 [File] → [New] → [Project] をク リ ッ ク して、 次に [Xilinx] → [Hardware Platform Specification] をク リ ッ ク して、 生成されたファイル <your design>.hdf をSDK にインポート します。

2. [Run] → [Debug Configurations] をク リ ッ ク して、 パフォーマンス解析コンフ ィギュレーシ ョ ンを作成します。

3. パフォーマンス解析をコンフ ィギュレーシ ョ ンするには次の手順に従います。

a. [Performance Analysis] を選択して、 [New] をク リ ッ ク します。

b. [Debug Type] を [Standalone Application Debug] に設定します。

c. [Hardware platform] を先ほどインポート したハード ウェア プラ ッ ト フォーム仕様に設定します。 その他にも、 システム全体のリセッ ト 、 FPGA のプログラム、 ps7_init の実行、 ps7_post_config の実行、 クロス ト リガーのイネーブルといったオプシ ョ ンがあ り ます。

d. パフォーマンス解析のパースペクティブを開くには、 [Debug] をク リ ッ ク します。

58 ページの図 10-3 は、 第 11 章 「徹底パフォーマンス解析」 で使用されているターゲッ ト設定を示しています。 これは、 Zynq®-7000 AP SoC 基本ターゲッ ト リ ファレンス デザイン (TRD) に接続し、 これを監視するためのものです。チェッ ク ボッ クスはすべてオフになっているこ とに注意してください。 TRD は SD カード ブート を使用するため、システムは既にリセッ トおよびコンフ ィギュレーシ ョ ンされています。

何らかの理由でハードウェアプラ ッ ト フォーム仕様を作成できない場合は、 SDK でパフォーマンス解析を実行するこ とができます。 手順は次のとおりです。

1. [Run] → [Debug Configurations] をク リ ッ ク して、 パフォーマンス解析コンフ ィギュレーシ ョ ンを作成します。

2. [Performance Analysis] を選択して、 [New] をク リ ッ ク します。

3. [Debug Type] を [Attach to running target] に設定します。

4. [PS Processor Frequency (MHz)] をデザインで使用されている PS ク ロ ッ ク周波数に設定します。

5. デザインに APM が含まれる場合は、 次を実行します。

a. [Enable APM Counters] を実行します。

X-Ref Target - Figure 10-4

図 10‐4 :デバッグ コンフ ィギュレーシ ョ ンのターゲッ ト設定 (ハードウェア プラッ ト フォームなし )

システム パフォーマンス解析 59UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 60: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 10 章 : カスタム ターゲッ トの使用

b. [APM Frequency (MHz)] をデザインの APM コアの s_axi_aclk に接続されているクロ ッ クの周波数に設定します。

c. [APM Base Address] をデザインの APM の基本アドレスに設定します。

6. パフォーマンス解析のパースペクティブを開くには、 [Debug] をク リ ッ ク します。

59 ページの図 10-4 は第 11 章 「徹底パフォーマンス解析」 で使用されているターゲッ ト設定を示しています。 これは『Zynq-7000 All Programmable SoC ZC702 基本ターゲッ ト リ ファレンス デザイン』 (UG925) [参照 3] で説明されている Zynq-7000 AP SoC 基本ターゲッ ト リ ファレンス デザイン (TRD) に接続し、 これを監視するためのものです。 APM 周波数は 50MHz で、 APM 基本アドレスは 0x400F0000 という 16 進数に設定されているこ とに注意して ください。

システム パフォーマンス解析 60UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 61: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 11章

徹底パフォーマンス解析SDK では徹底したパフォーマンス解析フローを実行するこ とができます (7 ページの図 1-2を参照)。 このフローを使用し、 予想デザインで ト ラフ ィ ッ クをモデルした後に、 実際のデザインを使用してパフォーマンスを検証できます。この徹底フローをよ りわかりやすくするため、 この章ではサンプル デザインを使ってフローを説明します。 使用されるデザインは Zynq-7000 AP SoC ベースのターゲッ ト リ ファレンス デザイン (TRD) で、 これは 『Zynq-7000 All Programmable SoC ZC702 ベースのターゲッ ト リ ファレンス デザイン (TRD) で、 これは 『Zynq-7000 All Programmableのターゲッ ト リ ファレンス デザイン』 (UG925) [参照 3]で説明されています。

要件の査定

図 11-1 は、 HDMI ビデオ入力と出力があ り、 ソーベル フ ィルターを使用した処理を行う、 TRD のブロ ッ ク図です。DDR メモ リには複数のビデオ フレームが格納され、 高い帯域幅の書き込みおよび読み出し ト ラフ ィ ッ クのチャネルが複数作成されます。

こ こでは、 このデザインは計画段階にあって、 まだ完成していないものと します。 SPM を使用してこのデザインをモデルするにはど う したらよいでし ょ うか。 まず、 システムの帯域幅要件を査定します。 これには、 まずデザインの通信チャネルすべての予期帯域幅を計算し、 次に、 PS-PL インターフェイスを決めます。 これは AXI ト ラフ ィ ックなので、 ト ランザクシ ョ ンごとのサイクル数、 そしてデータの局所性も重要です。

帯域幅を計算するには、 入力され、 処理されているデータのタイプを知っておく必要があ り、 それをディ スプレイに出力します。 61 ページの図 11-1 に示すよ うに、 TRD の入力データは、 CbCr 4:2:2 のデータ フォーマッ トで 1080p/60 のビデオ、 または 16ビッ ト /ピクセルを出力する HDMI ソースです。 このデザインには、 フ ィルターを介したビデオと、 コン ト ロールおよびグラフ用の GUI レイヤーを表示させるため、 出力ディ スプレイに複数のビデオ レ

X-Ref Target - Figure 11-1

図 11‐1 : Zynq‐7000 AP SoC ベースの TRD ハードウェア ブロック図

システム パフォーマンス解析 61UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 62: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 11 章 : 徹底パフォーマンス解析

イヤーをオーバーレイさせる という要件もあ り ます。 GUI レイヤーは 1920 x 300、 RGB 4:4:4 フォーマッ トで、 ほかのレイヤーはすべてフル フレーム、 YCbCr 4:2:2 フォーマッ トです。 ク ロ ッ ク周波数はまだわからなくても、 データ ト ラフ ィ ッ クの必須帯域幅を使用して、 システムをモデルするこ とができます。

表 11-1 は Zynq-7000 AP SoC ベースの TRD の帯域幅査定のまとめです。 各ビデオ チャネルの計算された帯域幅は、DDR 帯域幅のパーセンテージと と もにリ ス ト されています。 このデザイン仕様では、 HP0 および HP2 が使用されています。 この 2 つでは、 DDR コン ト ローラーで異なるポートが使用されるからです。 もちろん、 ほかのコネクティビティのモデリ ングも可能です。

デザインのモデル

帯域幅要件が確認できたので、 次は SPM デザインを使用してモデリ ングを実行します。 必要というわけではあ り ませんが、 プロセッシング システム (PS) ト ラフ ィ ッ クのモデルには、 ソフ ト ウェア アプリ ケーシ ョ ンの使用を推奨します。 こ こでは、 PS で動きの激しいアクティ ビティをモデルするため、 メモ リ ス ト ラ イ ド ソフ ト ウェア アプリケーシ ョ ンを使用します。 実際のデザインでは実行されるソフ ト ウェアではあ り ませんが、 アクティ ビティ と メモリ帯域幅に関して、 ワース ト ケースのテス ト シナリオを提供します。

表 11‐1 :  Zynq‐7000 AP SoC ベースの TRD での帯域幅の査定

説明 ビデオ フォーマッ ト ポート タイプ 帯域幅 DDR 帯域幅 (%)

HDMI ビデオ入力 YCbCr 4:2:2 HP0 書き込み 248.8 5.8

処理入力 YCbCr 4:2:2 HP2 読み出し 248.8 5.8

処理出力 YCbCr 4:2:2 HP2 書き込み 248.8 5.8

マルチレイヤー ビデオ出力

(レイヤー 1 : 1920 x 300 GUI)

RGB 4:4:4 HP0 読み出し 138.3 3.3

マルチレイヤー ビデオ出力

(レイヤー 2 : 1920 x 1080)

YCbCr 4:2:2 HP0 読み出し 248.8 5.8

合計ト ラフ ィ ック N/A HP0/HP2 書き込み/読み出し 1133.4 26.5

システム パフォーマンス解析 62UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 63: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 11 章 : 徹底パフォーマンス解析

図 11-2 は、 SPM を使用して TRD のト ラフ ィ ッ クをモデルする方法の 1 つを示しています。 ビデオ フレームはメモリの別の部分に格納されるものと し、 [Address Start] の値は ddr0 および ddr2 に設定されています。 さ らに、 ビデオ データは通常連続するデータ ラ インと して格納されるので、 [Address Next] の値は [increment] に設定されています。[Beats/tranx] の値は、 ソーベル フ ィルターへの入/出力ビデオ、 そしてマルチレイヤー ビデオ出力をモデルするために、 それぞれ 8 および 16 が選択されています。 62 ページの表 11-1にまとめたよ うに、 間隔は各ポートおよびタイプに必要なスループッ トに一致するよ うに指定されています。

ATG は、 指定された ト ラフ ィ ッ クでコンフ ィギュレーシ ョ ンされ、 ZC702 ボードで実行されています。 図 11-3 は、この実行後の結果をまとめたものです。 HP0 および HP2 の両方で、 このデザインに必要な書き込みおよび読み出しの帯域幅を達成できています。 CPU パフォーマンス結果はメモ リ ス ト ラ イ ド ベンチマークのもので、 実際の TRD アプリ ケーシ ョ ンではあ り ませんが、 このアクティ ビティをも とに予測するこ とはできます。

X-Ref Target - Figure 11-2

図 11‐2 : Zynq‐7000 AP SoC ベースの TRD のト ラフ ィ ッ クをモデルするための ATG コンフ ィギュレーシ ョ ン

X-Ref Target - Figure 11-3

図 11‐3 : Zynq‐7000 AP SoC ベースの TRD をモデリングしたパフォーマンス結果

システム パフォーマンス解析 63UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 64: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 11 章 : 徹底パフォーマンス解析

図 11-4 は、 サイ リ ンクス ソフ ト ウェア開発キッ ト (SDK) からの書き込みおよび読み出しのパフォーマンス グラフで、 達成されたパフォーマンスの詳細を示しています。 平均書き込みレイテンシおよび書き込みスループッ トは、テス ト全体で一定しています。 平均読み出しレイテンシはメモ リ ス ト ラ イ ド ベンチマークの影響を大き く受けています。 これは DDR コン ト ローラーで競合が起きているためです。 しかし、 読み出しスループッ トはテス ト全体を通して一定しています。

第 1 章 「概要」 で説明したよ うに、 特にデザインが計画段階にある場合は、 このモデリ ングを実行したほうがよい理由がいろいろとあ り ます。 この特定デザインに限っていう と、 次のよ うな理由があ り ます。

• リ スクを軽減 – この SPM モデルは、 必要なレイテンシおよびスループッ トが達成可能であるこ とを証明しています。 つま り、 Zynq-7000 AP SoC ベースの TRD で、 同じパフォーマンスが得られる可能性が非常に高いこ とを示しています。

• デザイン改善 – 63 ページの図 11-3 は、 モデルの平均読み出しレイテンシが HP0 で 40.13、 HP2 で 32.41 になるこ とを示しています。 フレーム レートの制約がはっき り と しているこのよ うなビデオ デザインの場合、 ディ スプレイ コン ト ローラーをこの指標範囲内で動作するよ うに設計するこ とができます。

• さまざまなシナリオ設定 – 出力ディ スプレイにもっとビデオ レイヤーを追加するこ と も可能です。 実際のデザイン内で繰り返し検証作業を行わずに、 SPM を使用してシナリオを想定して先に検証しておく こ とができます。ほかにも、 2 番目のビデオ パイプラインを含めたり、 4K の解像度に上げてみたりするオプシ ョ ンもあ り ます。これらのシナリオはすべてモデル可能で、 デザイン フェーズが始まる前に解析するこ とができます。

パフォーマンス検証

SPM モデルのパフォーマンスは実際のデザインを使用して検証できます。 APM を含む、 正し く計測されたデザインを使用し、 Zynq-7000 AP SoC ベースの TRD のパフォーマンスを解析します (57 ページの 「ハード ウェアの計測」 を参照)。 2015.1 で配布されている TRD では既に検証が行われています。

X-Ref Target - Figure 11-4

図 11‐4 : Zynq‐7000 AP SoC ベースの TRD をモデリングした書き込みおよび読み出しのパフォーマンス

システム パフォーマンス解析 64UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 65: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 11 章 : 徹底パフォーマンス解析

図 11-5 は、 Vivado® Design Suite の IP インテグレーターでブロ ッ ク図で定義されている TRD を示しています。 APM インスタンスがハイライ ト されています。 APM はプロファイル モードでコンフ ィギュレート されていて、 パフォーマンス結果が正し く SDK にレポート されるよ うになっています。 HP0 は AXI パフォーマンス モニター (APM) のスロ ッ ト 0 に接続されていて、 HP2 はスロ ッ ト 2 に接続されています。 スロ ッ ト 1 はオープンのままで (HP1 が使用されていないため)、 [Number of Monitor interfaces] は 3 に設定されています。

X-Ref Target - Figure 11-5

図 11‐5 : Zynq‐7000 AP SoC ベースの TRD の Vivado IP インテグレーターのブロック図

X-Ref Target - Figure 11-6

図 11‐6 : ZC702 ボードを使用した Zynq‐7000 AP SoC ベースの TRD の接続図

システム パフォーマンス解析 65UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 66: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 11 章 : 徹底パフォーマンス解析

図 11-6 は、 デモを実行するための ZC702 ボードへの接続図です。 ボードは図にあるよ うに接続され、 デザインは SD カードからブート されます。

結果は66 ページの図 11-7 の表にまとめられていて、 その図は66 ページの図 11-8 にあ り ます。 プログラマブル ロジッ ク (PL) のパフォーマンス結果は、 直接、 63 ページの図 11-3 にある SPM モデルから収集された値と比較できます。 モデルからの書き込みおよび読み出しスループッ トはすべて実際の結果の 2.0% 内にすべて収まっています。 書き込みレイテンシは実際のデザインの 1 サイクル内にあ り、 モデルの平均読み出しレイテンシは実際のデザインの 16.0% 内です。 実際のデザインは、 も と も と SPM よ り もバース ト性が高いよ うですが、 平均パフォーマンス値は十分に正確で、 TRD でパフォーマンス目標が満たすこ とができるでし ょ う。

X-Ref Target - Figure 11-7

図 11‐7 :実際の Zynq‐7000 AP SoC ベースの TRD のパフォーマンス結果

X-Ref Target - Figure 11-8

図 11‐8 : Zynq‐7000 AP SoC ベースの TRD の書き込みおよび読み出しのパフォーマンス

システム パフォーマンス解析 66UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 67: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 11 章 : 徹底パフォーマンス解析

詳細な解析

2 番目の TRD の実行は、 TRD のさまざまなランタイム設定のパフォーマンスへの影響を調べるために、 実行されています。 表 11-2 は、 これらすべて設定、 そして SDK で得られたその設定に対応したパフォーマンス結果をま とめたものです。 時間はこれらの設定がテス ト実行中に使用されたと きで、 およその時間です (68 ページの図 11-9 および68 ページの図 11-10 を参照)。

表 11-2 にリ ス ト されているよ うに、 パフォーマンスへの影響は直接 SDK で計測できます。 実際の TRD では、 GUI ビデオ出力レイヤーには最小化モード (1920 x 80) および最大化モード (1920 x 300) の 2 つがあ り ます。0 から 20 秒の間、 ビデオ フレームのその部分だけがハードウェアで出力され、 ビデオ ディ スプレイに送信されます。 これは、HP0 での読み出しスループッ トで確認できます。 出力ビデオがイネーブルになった後、 合計 HP0 の読み出し帯域幅にはフル ビデオ フレームおよび GUI レイヤーが含まれます。入力 4:2:2 のビデオも HP0 の DDR に書き込まれます。

ソーベル フ ィルターをオンにする と、 パフォーマンスには非常に大きな変化が出ます。 ソフ ト ウェア モードが使用されている と き、明らかに CPU アクティビティが増加し、特に L1 データ キャ ッシュ アクセスが多くなっています。また、 ソーベル フ ィルターをハード ウェア モードで使用する と、 HP2 の書き込みおよび読み出し ト ラフ ィ ッ クにはっき り と影響が出ます。

Zynq-7000 AP SoC ベースの TRD のパフォーマンス結果は、 68 ページの図 11-9 および68 ページの図 11-10 にあるグラフを見る と特にはっき り とわかり ます。 68 ページの図 11-9 の PS パフォーマンスでは、 ソーベル ソフ ト ウェア フ ィルター モデルを使用した場合、 約 30 ~ 50 秒の時間周期が最もアクティビティが多くなっています。 この時間は、 一定して CPU 使用率が高く、 IPC や L1 データ キャ ッシュ アクセスなどの値がとても高くなっています。

68 ページの図 11-10 の PL パフォーマンスの場合、すべての時間周期にかなり目立つ特徴があ り ます。ただし、約 50 秒から 70 秒の間、 ソーベル ハードウェア フ ィルターが使用されている と きに、 最もアクティビティが見られます。HP0 および HP2 での書き込みスループッ ト、 HP2 での読み出しスループッ トは、 4:2:2 のビデオ ス ト リームの予期値にすべて対応しています。 HP0 の読み出しスループッ トには、 4:2:2 のフル フレーム ビデオとパーシャル フレームの GUI レイヤーが含まれているため、 値が高くなっています。

ま とめる と、 Zynq-7000 AP SoC ベースの TRD を計測するこ とには、 1) 最初に SPM でモデルされたパフォーマンス結果を検証できる、 そして 2) さまざまなデザイン設定でもっと踏み込んだ解析ができる、 という 2 つの大きな利点があ り ます。

表 11‐2 :実際の Zynq‐7000 AP SoC ベースの TRD のパフォーマンス指標のまとめ

説明時間 (単位は秒、 概

算値)

L1 データ  キャッシュ  アクセス (x103)

書き込みスループッ ト  (MB/秒)

読み出しスループッ ト  (MB/秒)

CPU0 CPU1 HP0 HP2 HP0 HP2

GUI のみ、 最小化

0-10 100 100 0 0 37 0

GUI のみ、 最大化

10-20 100 100 0 0 140 0

ビデオ イネーブル

20-30 100 100 246 0 382 0

ソーベル フ ィルター – ソフ ト ウェア

モード

30-50 2800 7000 246 0 382 0

ソーベル フ ィルター – ハードウェア

モード

50-70 100 200 246 246 382 246

システム パフォーマンス解析 67UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 68: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

第 11 章 : 徹底パフォーマンス解析

X-Ref Target - Figure 11-9

図 11‐9 : Zynq‐7000 AP SoC ベースの TRD の PS パフォーマンス グラフ

X-Ref Target - Figure 11-10

図 11‐10 : Zynq‐7000 AP SoC ベースの TRD の PL パフォーマンス グラフ

システム パフォーマンス解析 68UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 69: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

付録 A

パフォーマンス チェ ックリス トこの付録では、 Zynq®-7000 AP SoC デザインのパフォーマンスを評価する と きに考慮すべき項目をまとめたチェック リ ス ト を提供します。 これはすべての項目を挙げている リ ス トではあ り ませんが、 注意点や、 なかなか気づけないよ うな点を リ ス ト していて、 これを手始めにして作業を進める という形で利用してください。 サイ リ ンクス ソフト ウェア開発キッ ト (SDK) も、 システム パフォーマンスを評価するのに便利なツールで、 その機能や利点もいくつかこ こに挙げています。

• システム パフォーマンス モデリ ングの仕様

システム パフォーマンス モデリ ング (SPM) は、 ハード ウェア設計の経験や知識がなくても、 システム パフォーマンスを調べる場合に理想的です。 SPM を使用するこ とで、 パフォーマンス目標を満たすこ とができる という確認作業ができ、 達成できたパフォーマンスの指標が把握しやすくなり、 さまざまなシナリオを設定して調査していく環境を提供できます。 デザインを作成してたり、 デバッグしている途中であっても、 SPM を利用するこ とで、 オーバーヘッ ドを出すこ とな く、 デザインを調査し、 アーキテクチャに関する判断材料を得るこ とができます。 このガイ ドでは、 わかりやすいよ うに、 さまざまな例が用意されています。

• SPM でのクロ ッ ク周波数の調整

SPM を使用して、 プロセッシング システム (PS)、 プログラマブル ロジッ ク (PL)、 および DDR のクロ ッ ク周波数を調整するための調査ができます。 帯域幅の高いシステムが求められる場合は、 スループッ ト を増やすためにクロ ック周波数を調整するこ とをお勧めします。 初期段階の評価環境では、 周波数はデザイン目標にもなり ます。

• L2 キャ ッシュ プリ フェ ッチの設定/設定解除

PL310 キャ ッシュ コン ト ローラーで命令およびデータのプリ フェ ッチ設定をチェッ ク します。 チェッ ク方法については、 第 6 章 「ソフ ト ウェア パフォーマンスの評価」 を参照してください。

• コンパイラ最適化設定

SDK で C/C++ ビルド設定をチェッ ク します。 ベス ト パフォーマンスを得るには、 [Optimize More (O2)] または [Optimize Most (O3)] を使用するこ とを推奨します。

• 効率的なソフ ト ウェア コードの記述

このガイ ドでは、 行列乗算のパフォーマンスを約 5 倍伸ばす方法が説明されています。 ハイ パフォーマンスで、 効率的なソフ ト ウェア コードの記述方法に関しては、 Ulrich Drepper 著 『What Every Programmer Should Know About Memory』 (Ref [3]) を参照してください。 この資料では、 次のよ うな点を考慮するよ う アドバイスされています。

° キャ ッシュのバイパス (一時的な書き込み用ではない場合)

° キャ ッシュ アクセスおよびミ ス率の最適化

° プリ フェッチの使用

° 同時並行処理やマルチスレッ ドの検討

• 競合の把握

ソフ ト ウェアのみのテス ト を実行するだけでも予測可能なパフォーマンス結果が得られますが、 HP ポート または ACP にト ラフ ィ ッ ク シナリオを導入する と、 パフォーマンスに影響が出て、 予測が難し くな り ます。 ほかの高帯域幅のト ラフ ィ ッ クをシステムに追加する と、 必ず L2 キャ ッシュ、 ハイ パフォーマンス スイ ッチ、 または DDR コント ローラーに競合が発生します。 この競合と、 その影響を把握しておく と、 非常に役立ちます。

• DDR コン ト ローラー設定

システム パフォーマンス解析 69UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 70: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

付録 A : パフォーマンス チェ ックリス ト

これらの設定は SDK (SPM デザインのみ) または Vivado® Design Suite で Processing System 7 (PS7) IP ブロッ クのコンフ ィギュレーシ ョ ンで変更するこ とができます。 これらの設定は、 システムのニーズに基づいて、 DDR から帯域幅を割り当て直すのに使用します。 この変更方法、 および CPU と HP ポートの DDR 帯域幅への影響については、 第 8 章 「DDR コン ト ローラー設定の評価」 を参照して ください。

• Zynq-7000 AP SoC オンチップ メモ リの使用

オンチップ メモ リ (OCM) は 256KB のメモ リ ブロ ッ クで、 アクセラレータ コ ヒーレンシ ポート (ACP)、 汎用ポート (GP)、 ハイ パフォーマンス (HP) ポートから、 CPU とプログラマブル ロジッ クにアクセスできます。 OCM は低レイテンシ アクセスを可能にし、 同期化またはスク ラ ッチ パッ ド アプリ ケーシ ョ ンで使用するのに理想的なコンポーネン トです。

• アクセラレータ コ ヒーレンシ ポートの使用

ACP は ARM Cortex-A9 プロセッサーとのキャ ッシュ コ ヒーレンシ用です。 このコ ヒーレンシは一部のアプリ ケーシ ョ ンでは有用ですが、 L2 キャ ッシュで競合が起きる可能性があ り ます。 この競合がデザインに発生するのは好まし くない場合は、 OCM を ACP と一緒に使用して、 低レイテンシ メモ リ インターフェイスを作成します。

• ハイ パフォーマンス ポートの使用

HP ポートは、 PS、 PL、 DDR の間にスループッ トが非常に大きなインターフェイスを提供します。 HP ポートは、 高い帯域幅が必要な部分であれば、 デザインのどこにでも推奨されます。 すべての HP ポートは同じに作成されていますが、 DDR コン ト ローラーで使用される HP ポートのペアを把握しておく こ とは重要です。 HP0 と HP1 とで 1 つの DDR ポート を共有しており、 HP2 と HP3 とで別の DDR ポート を共有しています。 これらのポート ぺアは一緒に使用するこ と もできますし (DDR 設定を変更する場合)、 個別に使用するこ と もできます (複数の DDRC ポートで帯域幅を最大限にするため)。

システム パフォーマンス解析 70UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 71: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

付録 B

その他のソースおよび法的通知

ザイリンクス リソース

アンサー、 資料、 ダウンロード、 フォーラムなどのサポート リ ソースは、 ザイ リ ンクス サポート サイ ト を参照してください。

ソリューシ ョ ン  センター

デバイス、 ツール、 IP のサポートについては、 ザイ リ ンクス ソ リ ューシ ョ ン センターを参照して ください。 ト ピックには、 デザイン アシスタン ト、 アドバイザリ、 ト ラブルシュート ヒ ン ト などが含まれます。

Documentation Navigator およびデザイン  ハブ

Xilinx Documentation Navigator を使用する とザイ リ ンクスの資料、 ビデオ、 およびサポート リ ソースにアクセスして情報をフ ィルター、 検索できます。 Xilinx Documentation Navigator (DocNav) を開くには、 次のいずれかを実行します。

• Vivado IDE で [Help] → [Documentation and Tutorials] をク リ ッ ク します。

• Windows で [スタート ] → [すべてのプログラム] → [Xilinx Design Tools] → [DocNav] をク リ ッ ク します。

• Linux コマンド プロンプ トに 「docnav」 と入力します。

ザイ リ ンクス デザイン ハブでは資料やビデオへのリ ンクがデザイン タスクおよびト ピッ クごとにま とめられており、 これらを使用する とキーコンセプ ト を学ぶこ とができ、 よ くある質問を解決できます。 デザイン ハブにアクセスするには、 次のいずれかを実行します。

• Xilinx Documentation Navigator で [Design Hubs View] タブをク リ ッ ク します。

• ザイ リ ンクス ウェブサイ トのデザイン ハブ ページを参照します。

システム パフォーマンス解析 71UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 72: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

付録 B : その他のソースおよび法的通知

参考資料

さ らに詳細な情報が必要な場合は、 次のリ ファレンスを参照してください。

ザイリンクス ユーザー ガイドおよびリファレンス ガイド

1. 『Zynq-7000 All Programmable SoC テクニカル リ ファレンス マニュアル』 (UG585 : 英語版、 日本語版)

2. 『Vivado Design Suite ユーザー ガイ ド : エンベデッ ド プロセッサ ハードウェア デザイン』 (UG898 : 英語版、 日本語版)

3. 『Zynq-7000 All Programmable SoC ZC702 基本ターゲッ ト リ ファレンス デザイン (ISE Design Suite 14.4) ユーザー ガイ ド』 (UG925)

4. 『Zynq UltraScale+ MPSoC パッケージおよびピン配置ユーザー ガイ ド』 (UG1075 : 英語版、 日本語版)

5. 『Zynq UltraScale+ MPSoC テクニカル リ ファレンス マニュアル』 (UG1085 : 英語版、 日本語版)

6. 『Zynq UltraScale+ MPSoC ソフ ト ウェア開発者向けガイ ド』 (UG1137 : 英語版、 日本語版)

7. 『Zynq UltraScale+ MPSoC ク イ ッ ク エミ ュレーター ユーザー ガイ ド』 (UG1169)

8. 『Zynq UltraScale+ MPSoC OpenAMP 入門ガイ ド』 (UG1186)

サードパーティの参考文献

9. James Pallister、 Simon Hollis、 Jeremy Bennett 共著、 「BEEBS: Open Benchmarks for Energy Measurements on Embedded Platforms」 (2013 年 8 月 23 日)。 オンライン版 : http://dblp.uni-trier.de/db/journals/corr/corr1308.html#PallisterHB13

10. David A. Patterson、 John L. Hennessy 共著、 『Computer Organization & Design: The Hardware/Software Interface』 (Morgan Kaufman Publishers, Inc.、 第 2 版、 1998 年)。

11. Ulrich Drepper 著、 「What Every Programmer Should Know About Memory」 (2007年 11 月 21 日)。 オンライン版 : http://www.cs.bgu.ac.il/~os142/wiki.files/drepper-2007.pdf.

システム パフォーマンス解析 72UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日

Page 73: ザイリンクス ソフトウェア 開発キット (SDK) ユー …ザイリンクス ソフトウェア 開発キット (SDK) ユーザー ガイド システム パフォーマンス解析

付録 B : その他のソースおよび法的通知

ト レーニング リソース

ザイ リ ンクスでは、 本書に含まれるコンセプ ト を説明するさまざまな ト レーニング コースおよびオンライン ビデオを提供しています。 次のリ ンクから関連する ト レーニング リ ソースを参照して ください。

1. Zynq-7000 All Programmable SoC : 開発ツールの概要

2. Zynq-7000 All Programmable SoC : システム パフォーマンス ツールの概要

3. Zynq-7000 All Programmable SoC : 5 分間で Hello World

4. Zynq-7000 All Programmable SoC : ベア メ タル アプリ ケーシ ョ ン開発

お読みください : 重要な法的通知通知に基づいて貴殿または貴社 (本通知の被通知者が個人の場合には 「貴殿」、 法人その他の団体の場合には 「貴社」。 以下同じ ) に開示される情報 (以下 「本情報」 といいます) は、 ザイ リ ンクスの製品を選択および使用するこ とのためにのみ提供されます。 適用

される法律が許容する最大限の範囲で、 (1) 本情報は 「現状有姿」、 およびすべて受領者の責任で (with all faults) とい う状態で提供

され、 ザイ リ ンクスは、 本通知をもって、 明示、 黙示、 法定を問わず (商品性、 非侵害、 特定目的適合性の保証を含みますがこれ

らに限られません)、 すべての保証および条件を負わない (否認する ) ものと します。 また、 (2) ザイ リ ンクスは、 本情報 (貴殿また

は貴社による本情報の使用を含む) に関係し、 起因し、 関連する、 いかなる種類 ・ 性質の損失または損害についても、 責任を負わ

ない (契約上、 不法行為上 (過失の場合を含む)、 その他のいかなる責任の法理によるかを問わない) ものと し、 当該損失または損害

には、 直接、 間接、 特別、 付随的、 結果的な損失または損害 (第三者が起こした行為の結果被った、 データ、 利益、 業務上の信用

の損失、 その他あらゆる種類の損失や損害を含みます) が含まれるものと し、 それは、 たとえ当該損害や損失が合理的に予見可能

であったり、 ザイ リ ンクスがそれらの可能性について助言を受けていた場合であったと しても同様です。 ザイ リ ンクスは、 本情報

に含まれるいかなる誤り も訂正する義務を負わず、 本情報または製品仕様のアップデート を貴殿または貴社に知らせる義務も負い

ません。 事前の書面による同意のない限り、 貴殿または貴社は本情報を再生産、 変更、 頒布、 または公に展示してはなり ません。

一定の製品は、 ザイ リ ンクスの限定的保証の諸条件に従う こ と となるので、 http://japan.xilinx.com/legal.htm#tos で見られるザイ リ ン

クスの販売条件を参照して ください。 IP コアは、 ザイ リ ンクスが貴殿または貴社に付与したライセンスに含まれる保証と補助的条

件に従う こ とにな り ます。 ザイ リ ンクスの製品は、 フェイルセーフと して、 または、 フェイルセーフの動作を要求するアプリ ケー

シ ョ ンに使用するために、 設計されたり意図されたり していません。 そのよ う な重大なアプリ ケーシ ョ ンにザイ リ ンクスの製品を

使用する場合のリ スク と責任は、 貴殿または貴社が単独で負う ものです。 http://www.xilinx.com/legal.htm#tos で見られるザイ リ ンク

スの販売条件を参照して ください。

© Copyright 2015 - -2016 Xilinx, Inc. Xilinx、 Xilinx のロゴ、 Artix、 ISE、 Kintex、 Spartan、 Virtex、 Vivado、 Zynq、 およびこの文書に

含まれるその他の指定されたブランドは、 米国およびその他各国のザイ リ ンクス社の商標です。 すべてのその他の商標は、 それぞ

れの保有者に帰属します。

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

の右下にある [フ ィードバッ ク送信] ボタンをク リ ッ クする と表示されるフォームからお知らせください。 フ ィードバッ クは日本語

で入力可能です。 いただきましたご意見を参考に早急に対応させていただきます。 なお、 このメール アドレスへのお問い合わせは

受け付けており ません。 あらかじめご了承ください。

システム パフォーマンス解析 73UG1145 (v2016.2) 2016 年 6 月 14 日 japan.xilinx.comUG1145 (v2016.3) 2016 年 10 月 5 日UG1145 (v2016.4) 2016 年 11 月 30 日UG1145 (v2017.1) 2017 年 4 月 5 日