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

73
ザイリンクス ソフトウェア開発 ザイリンクス ソフトウェア 開発キ ッ ト (SDK) ユーザー ガイド システム パフォーマンス解析 UG1145 (v2015.1) 2015 4 1 本資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資 料によっては英語版の更新に対応していないものがあります。日本語版は参考用としてご使用の上、最新情 報につきましては、必ず最新英語版をご参照ください。

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

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

ザイ リ ン ク ス ソ フ ト ウ ェ ア開発

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

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

UG1145 (v2015.1) 2015 年 4 月 1 日

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

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

システム パフォーマンス解析 japan.xilinx.com 2UG1145 (v2015.1) 2015 年 4 月 1 日

改訂履歴

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

日付 バージョ ン 改訂内容

2015 年 4 月 1 日 2015.1 AXI パフォーマンス モニター (APM) に関する制限事項を追加して、「PL プロファイル カウンター」 を更新

「 ト レーニング リ ソース」 ビデオを 「その他のソースおよび法的通知」 に追加

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

目次

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

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

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

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

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

第 2章 : 背景

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

システム パフォーマンス解析 japan.xilinx.com 3UG1145 (v2015.1) 2015 年 4 月 1 日

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

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

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

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

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

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

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

詳細な解析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

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

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

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

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

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

重要な法的通知 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

システム パフォーマンス解析 japan.xilinx.com 4UG1145 (v2015.1) 2015 年 4 月 1 日

Page 5: ザイリンクス ソフトウェア 開発キット (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 の両方を確認できるよ うになっています。デザイン フローの重要な段階でシステム パフォーマンスを確認し、 システムのパフォーマンスを改善していく こ とができます。

システム パフォーマンス解析 japan.xilinx.com 5UG1145 (v2015.1) 2015 年 4 月 1 日

Page 6: ザイリンクス ソフトウェア 開発キット (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 の機能

ソフトウェアパフォーマンス解析

(SPA)

システム パフォーマンスモデリング (SPM)

監視フレームワーク

ユーザー インターフェイス/視覚化

ソフトウェアプロファイル ツール

システムデバッガー

ドライバー/ライブラリ

システム パフォーマンス解析 japan.xilinx.com 6UG1145 (v2015.1) 2015 年 4 月 1 日

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

第 1 章 : 概要

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

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

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

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

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

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

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

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

• デザインの改善 : 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 :徹底したパフォーマンス解析フロー

用件の査定 デザインのモデル パフォーマンス検証 詳細な解析

システム パフォーマンス解析 japan.xilinx.com 7UG1145 (v2015.1) 2015 年 4 月 1 日

Page 8: ザイリンクス ソフトウェア 開発キット (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 to USB Mini-B ケーブル (UART 通信の場合)

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

システム パフォーマンス解析 japan.xilinx.com 8UG1145 (v2015.1) 2015 年 4 月 1 日

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

第 1 章 : 概要

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

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

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

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

システム パフォーマンス解析 japan.xilinx.com 9UG1145 (v2015.1) 2015 年 4 月 1 日

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

第 2章

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

X-Ref Target - Figure 2-1

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

システム パフォーマンス解析 japan.xilinx.com 10UG1145 (v2015.1) 2015 年 4 月 1 日

Page 11: ザイリンクス ソフトウェア 開発キット (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 ポート : 高帯域幅のデータパスの PL バス マスターを DDR および OCM メモ リに接続。

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

システム パフォーマンス解析 japan.xilinx.com 11UG1145 (v2015.1) 2015 年 4 月 1 日

Page 12: ザイリンクス ソフトウェア 開発キット (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 ブロック図 (共有リソースをハイライ ト ) 

システム パフォーマンス解析 japan.xilinx.com 12UG1145 (v2015.1) 2015 年 4 月 1 日

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

第 2 章 : 背景

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

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

システム パフォーマンス解析 japan.xilinx.com 13UG1145 (v2015.1) 2015 年 4 月 1 日

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

第 3章

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

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

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

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

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

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

システム パフォーマンス解析 japan.xilinx.com 14UG1145 (v2015.1) 2015 年 4 月 1 日

Page 15: ザイリンクス ソフトウェア 開発キット (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 プロジェク ト  ファイル

システム パフォーマンス解析 japan.xilinx.com 15UG1145 (v2015.1) 2015 年 4 月 1 日

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

BEEBS と同様に、 メモ リ ス ト ラ イ ド ベンチマークは、 1 つの実行ファイルに含まれており、 ベンチマーク とベンチマークの間には 1 秒間のス リープが設定されています。 表 3-2 は、 プログラム内のベンチマークの順番を示していま

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

ベンチマーク ツール 説明

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

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

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

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

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

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

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

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

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

システム パフォーマンス解析 japan.xilinx.com 16UG1145 (v2015.1) 2015 年 4 月 1 日

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

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

す。 各ベンチマークは、 BEEBS用に上記にリ ス ト されている 3 つのアレイ サイズと同じサイズで動作します。 メモリ ス ト ラ イ ド プログラムも計測されていますが、 ト ランスク リプ ト レポートに各テス トで達成できたスループッ トおよびレイテンシがレポート されます。

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

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

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

帯域幅

リニア

読み出し

書き込み

コピー

読み出し /書き込み

ランダム (計算済み)

読み出し

書き込み

コピー

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

読み出し

書き込み

コピー

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

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

システム パフォーマンス解析 japan.xilinx.com 17UG1145 (v2015.1) 2015 年 4 月 1 日

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

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

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

X-Ref Target - Figure 3-2

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

システム パフォーマンス解析 japan.xilinx.com 18UG1145 (v2015.1) 2015 年 4 月 1 日

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

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

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

AXI ト ラフ ィ ッ ク ジェネレーター (ATG) は、 具体的な AXI ト ラフ ィ ッ ク動作を示すためにコンフ ィギュレート された、インテ リジェン ト な ト ラフ ィ ッ ク ジェネレーターです。各 ATG のコマンド シーケンスは初期化中に読み込まれ、開始ビッ トが読み込まれる と、 これらのコマンドが実行されます。 書き込み及び読み出し ト ラフ ィ ッ ク用には、 256個のコマンドのキューが別に含まれています。 ATG にはループ モード もあ り、 コマンド キューの ト ラフ ィ ッ クは連続して実行され、停止ビッ トが読み込まれるまで、 キューの ト ラフ ィ ッ クは繰り返されます。 SDK では、 これはト ラフ ィ ッ ク期間値 (秒) に簡略されています。 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 章 「監視フレームワーク」 を参照して ください。

システム パフォーマンス解析 japan.xilinx.com 19UG1145 (v2015.1) 2015 年 4 月 1 日

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

システム パフォーマンス解析 japan.xilinx.com 20UG1145 (v2015.1) 2015 年 4 月 1 日

Page 21: ザイリンクス ソフトウェア 開発キット (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 を受信する前) に、 新しいデータ ト ランザクシ ョ ンのアドレス初期化が行われる ト ランザクシ ョ ン。

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

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

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

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

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

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

X-Ref Target - Figure 4-1

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

システム パフォーマンス解析 japan.xilinx.com 21UG1145 (v2015.1) 2015 年 4 月 1 日

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

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

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

表 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))

システム パフォーマンス解析 japan.xilinx.com 22UG1145 (v2015.1) 2015 年 4 月 1 日

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

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

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

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

X-Ref Target - Figure 4-2

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

システム パフォーマンス解析 japan.xilinx.com 23UG1145 (v2015.1) 2015 年 4 月 1 日

Page 24: ザイリンクス ソフトウェア 開発キット (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 コンフ ィギュレーシ ョ ン  ウィザードでのアプリケーシ ョ ン設定

システム パフォーマンス解析 japan.xilinx.com 24UG1145 (v2015.1) 2015 年 4 月 1 日

Page 25: ザイリンクス ソフトウェア 開発キット (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 のプリセッ ト アドレスです。

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

X-Ref Target - Figure 5-2

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

システム パフォーマンス解析 japan.xilinx.com 25UG1145 (v2015.1) 2015 年 4 月 1 日

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

第 5 章 : SPM の入門

• [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. [APU Performance Summary] : CPU のパフォーマンス メ ト リ クス (PS プロファイル カウンター セクシ ョ ンの下)、AXI パフォーマンス モニター (APM) のパフォーマンス メ ト リ クス (PL プロファイル カウンター セクシ ョ ンの下) をま とめた 2 つの表です。

2. [PL Performance] : 共有タイムライン上の 16 ページの表 3-1 にリ ス ト されている APM パフォーマンス メ ト リ クスを示すプロ ッ ト。

3. [PS Performance] : 共有タイムライン上の 17 ページの表 3-2 にリ ス ト されている CPU パフォーマンス メ ト リ クスを示すプロ ッ ト。

X-Ref Target - Figure 5-3

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

システム パフォーマンス解析 japan.xilinx.com 26UG1145 (v2015.1) 2015 年 4 月 1 日

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

第 5 章 : SPM の入門

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

5. [MicroBlaze Performance] : 共有タイムライン上の にリ ス ト されている 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]

システム パフォーマンス解析 japan.xilinx.com 27UG1145 (v2015.1) 2015 年 4 月 1 日

Page 28: ザイリンクス ソフトウェア 開発キット (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 ベンチマーク )

システム パフォーマンス解析 japan.xilinx.com 28UG1145 (v2015.1) 2015 年 4 月 1 日

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

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

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

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

X-Ref Target - Figure 6-2

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

システム パフォーマンス解析 japan.xilinx.com 29UG1145 (v2015.1) 2015 年 4 月 1 日

Page 30: ザイリンクス ソフトウェア 開発キット (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 データ  キャッシュ、 命令ごとのストール サイクル数)

システム パフォーマンス解析 japan.xilinx.com 30UG1145 (v2015.1) 2015 年 4 月 1 日

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

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

先に説明したよ うに、全体的なソフ ト ウェア パフォーマンスを計測するには、アプリ ケーシ ョ ンの異なる箇所のランタイムを計測しておく こ とをお勧めします。図 6-4 は、 8 つのベンチマークを異なる 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』 [参照 6] を参照してください。

X-Ref Target - Figure 6-4

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

システム パフォーマンス解析 japan.xilinx.com 31UG1145 (v2015.1) 2015 年 4 月 1 日

Page 32: ザイリンクス ソフトウェア 開発キット (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 ↓↓

システム パフォーマンス解析 japan.xilinx.com 32UG1145 (v2015.1) 2015 年 4 月 1 日

Page 33: ザイリンクス ソフトウェア 開発キット (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%

システム パフォーマンス解析 japan.xilinx.com 33UG1145 (v2015.1) 2015 年 4 月 1 日

Page 34: ザイリンクス ソフトウェア 開発キット (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 を使用すると、 そのパフォーマンスをモデルできます。 また、 設計を開始する前に、 目的のパフォーマンスを達成できるこ とをすばやく検証するこ とができます。

システム パフォーマンス解析 japan.xilinx.com 34UG1145 (v2015.1) 2015 年 4 月 1 日

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

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

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

X-Ref Target - Figure 7-1

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

システム パフォーマンス解析 japan.xilinx.com 35UG1145 (v2015.1) 2015 年 4 月 1 日

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

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

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

X-Ref Target - Figure 7-2

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

システム パフォーマンス解析 japan.xilinx.com 36UG1145 (v2015.1) 2015 年 4 月 1 日

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

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

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

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

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

X-Ref Target - Figure 7-3

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

システム パフォーマンス解析 japan.xilinx.com 37UG1145 (v2015.1) 2015 年 4 月 1 日

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

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

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

合計帯域幅 =424.22+424.22+424.06+424.06+370.81+370.81+370.79+370.79= 3179.76 MB/秒 式 2

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

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

X-Ref Target - Figure 7-4

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

システム パフォーマンス解析 japan.xilinx.com 38UG1145 (v2015.1) 2015 年 4 月 1 日

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

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

HP ポートの読み出しスループッ トおよびレイテンシには、 行列乗算中のパフォーマンスにもっと目立った低下が見られます (図 7-6 を参照)。 ほかのすべてのテス ト中は、 読み出し帯域幅は約 420MB/秒ですが、 メモ リ を多用する行

X-Ref Target - Figure 7-5

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

X-Ref Target - Figure 7-6

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

システム パフォーマンス解析 japan.xilinx.com 39UG1145 (v2015.1) 2015 年 4 月 1 日

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

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

列乗算の間は (1024KB のデータ アレイを使用)、 スループッ ト は約 340MB/秒に低下します。 図 7-6 に示すよ うに、[Show/Hide Trace Tooltip] ボタン を使用して、 この事実を確認します。 64 秒間おいて、 4 つの HP ポートの読み出しスループッ トはすべて約 338MB/秒にな り ます。 スループッ トのこの低下はレイテンシの増加と一致しており、どちらも DDR コン ト ローラーでの飽和に起因しています。

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

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

X-Ref Target - Figure 7-7

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

システム パフォーマンス解析 japan.xilinx.com 40UG1145 (v2015.1) 2015 年 4 月 1 日

Page 41: ザイリンクス ソフトウェア 開発キット (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 コン ト ローラー

システム パフォーマンス解析 japan.xilinx.com 41UG1145 (v2015.1) 2015 年 4 月 1 日

Page 42: ザイリンクス ソフトウェア 開発キット (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) がク リ テ ィ カルになる前に待機状態のものをな くすこ とができる ク ロ ッ ク数 (32DDR ク ロ ッ ク サイ クルが単位) を指定します。 ク リ ティカル ステートに達する と、 そのキューは最優先になります。 つま り、 値が小さいほど、 そのキューの優先度は高くなり ます。

これらの 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 デザイン)

システム パフォーマンス解析 japan.xilinx.com 42UG1145 (v2015.1) 2015 年 4 月 1 日

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

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

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

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

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

合計の帯域幅 = 434.63+434.70+434.67+435.08+429.81+429.87+430.06+430.47= 3459.29 MB/秒 式 1

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

X-Ref Target - Figure 8-3

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

システム パフォーマンス解析 japan.xilinx.com 43UG1145 (v2015.1) 2015 年 4 月 1 日

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

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

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

HP0 および HP1 の読み出し ト ラフ ィ ッ クに、 高い優先順位が必要であるシナリオを検討してみまし ょ う。 Zynq-7000AP 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 デザイン)

システム パフォーマンス解析 japan.xilinx.com 44UG1145 (v2015.1) 2015 年 4 月 1 日

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

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

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

合計帯域幅 =410.34+410.46+410.37+410.58+512.08+512.21+356.39+356.59= 3379.02 MB/秒 式 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 のスループッ トは低くな り ます。

X-Ref Target - Figure 8-5

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

X-Ref Target - Figure 8-6

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

システム パフォーマンス解析 japan.xilinx.com 45UG1145 (v2015.1) 2015 年 4 月 1 日

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

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

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

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

X-Ref Target - Figure 8-7

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

システム パフォーマンス解析 japan.xilinx.com 46UG1145 (v2015.1) 2015 年 4 月 1 日

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

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

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

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

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

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

X-Ref Target - Figure 8-8

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

システム パフォーマンス解析 japan.xilinx.com 47UG1145 (v2015.1) 2015 年 4 月 1 日

Page 48: ザイリンクス ソフトウェア 開発キット (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 : メモリ  スト ライ ド  ベンチマーク  ソフ トウェアを使用したアプリケーシ ョ ン設定

システム パフォーマンス解析 japan.xilinx.com 48UG1145 (v2015.1) 2015 年 4 月 1 日

Page 49: ザイリンクス ソフトウェア 開発キット (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

システム パフォーマンス解析 japan.xilinx.com 49UG1145 (v2015.1) 2015 年 4 月 1 日

Page 50: ザイリンクス ソフトウェア 開発キット (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を参照)。

X-Ref Target - Figure 9-2

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

システム パフォーマンス解析 japan.xilinx.com 50UG1145 (v2015.1) 2015 年 4 月 1 日

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

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

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

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 メモリ  アクセス レイテンシ

システム パフォーマンス解析 japan.xilinx.com 51UG1145 (v2015.1) 2015 年 4 月 1 日

Page 52: ザイリンクス ソフトウェア 開発キット (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 コンフ ィギュレーシ ョ ン

システム パフォーマンス解析 japan.xilinx.com 52UG1145 (v2015.1) 2015 年 4 月 1 日

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

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

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

命令ごとの CPU 書き込みス トール サイ クル数と、 命令ごとの CPU 読み出しス トール サイ クル数には 1 つ違いがあり ます。 これらの値は、 ACP ト ラフ ィ ッ クなしで 2.03 および 4.10 ですが、高帯域幅の ACP ト ラフ ィ ッ クを追加すると、 それぞれ 2.67 および 5.22 に増加します。 これら 2 つの指標の値が高くなる と、 一般的にメモ リ書き込みとデー

X-Ref Target - Figure 9-6

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

X-Ref Target - Figure 9-7

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

システム パフォーマンス解析 japan.xilinx.com 53UG1145 (v2015.1) 2015 年 4 月 1 日

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

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

タ キャ ッシュ補充で CPU がス トールするこ とを示します。 その理由は、 ACP ト ラフ ィ ッ クが L2 キャ ッシュの帯域幅をかなり使ってしまっているために、 L2 キャ ッシュで競合が起きるからです。

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

X-Ref Target - Figure 9-8

図 9‐8 : レイテンシへの影響を示す SDK での 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) で達成されたパフォーマンス

システム パフォーマンス解析 japan.xilinx.com 54UG1145 (v2015.1) 2015 年 4 月 1 日

Page 55: ザイリンクス ソフトウェア 開発キット (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 ト ラフ ィ ッ クは CPU 帯域幅に大きな影響を与えます (図 9-10 および図 9-11 を参照)。CPU0 帯域幅が一番低下したのは、64KB でリニア帯域幅のコピー ベンチマークを実行したと きで、 14.6% でした。

X-Ref Target - Figure 9-11

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

システム パフォーマンス解析 japan.xilinx.com 55UG1145 (v2015.1) 2015 年 4 月 1 日

Page 56: ザイリンクス ソフトウェア 開発キット (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);}

システム パフォーマンス解析 japan.xilinx.com 56UG1145 (v2015.1) 2015 年 4 月 1 日

Page 57: ザイリンクス ソフトウェア 開発キット (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 パフォーマンスモニター –インスタンスとカスタマイズ

システム パフォーマンス解析 japan.xilinx.com 57UG1145 (v2015.1) 2015 年 4 月 1 日

Page 58: ザイリンクス ソフトウェア 開発キット (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 :デバッグ コンフ ィギュレーシ ョ ンでのターゲッ ト設定 (インポート されたハードウェア プラッ ト フォーム仕様を使用) 

システム パフォーマンス解析 japan.xilinx.com 58UG1145 (v2015.1) 2015 年 4 月 1 日

Page 59: ザイリンクス ソフトウェア 開発キット (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 :デバッグ コンフ ィギュレーシ ョ ンのターゲッ ト設定 (ハードウェア プラッ ト フォームなし )

システム パフォーマンス解析 japan.xilinx.com 59UG1145 (v2015.1) 2015 年 4 月 1 日

Page 60: ザイリンクス ソフトウェア 開発キット (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 進数に設定されているこ とに注意して ください。

システム パフォーマンス解析 japan.xilinx.com 60UG1145 (v2015.1) 2015 年 4 月 1 日

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

第 11章

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

システム パフォーマンス解析 japan.xilinx.com 61UG1145 (v2015.1) 2015 年 4 月 1 日

Page 62: ザイリンクス ソフトウェア 開発キット (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 コン ト ローラーで異なるポートが使用されるからです。 もちろん、 ほかのコネクティビティのモデリ ングも可能です。

表 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 300GUI)

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

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

(レイヤー 2 : 1920 x 1080)

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

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

システム パフォーマンス解析 japan.xilinx.com 62UG1145 (v2015.1) 2015 年 4 月 1 日

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

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

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

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

X-Ref Target - Figure 11-2

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

システム パフォーマンス解析 japan.xilinx.com 63UG1145 (v2015.1) 2015 年 4 月 1 日

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

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

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

X-Ref Target - Figure 11-3

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

X-Ref Target - Figure 11-4

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

システム パフォーマンス解析 japan.xilinx.com 64UG1145 (v2015.1) 2015 年 4 月 1 日

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

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

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

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

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

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

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

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

図 11-5 は、 Vivado® Design Suite の IP インテグレーターでブロ ッ ク図で定義されている TRD を示しています。 APMインスタンスがハイライ ト されています。 APM はプロファイル モードでコンフ ィギュレート されていて、 パフォーマンス結果が正し く SDK にレポート されるよ うになっています。 HP0 は AXI パフォーマンス モニター (APM) のス

X-Ref Target - Figure 11-5

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

システム パフォーマンス解析 japan.xilinx.com 65UG1145 (v2015.1) 2015 年 4 月 1 日

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

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

ロ ッ ト 0 に接続されていて、 HP2 はスロ ッ ト 2 に接続されています。 スロ ッ ト 1 はオープンのままで (HP1 が使用されていないため)、 [Number of Monitor interfaces] は 3 に設定されています。

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

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

X-Ref Target - Figure 11-6

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

システム パフォーマンス解析 japan.xilinx.com 66UG1145 (v2015.1) 2015 年 4 月 1 日

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

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

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 の書き込みおよび読み出しのパフォーマンス

システム パフォーマンス解析 japan.xilinx.com 67UG1145 (v2015.1) 2015 年 4 月 1 日

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

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

詳細な解析2 番目の TRD の実行は、 TRD のさまざまなランタイム設定のパフォーマンスへの影響を調べるために、 実行されています。 表 11-2 は、 これらすべて設定、 そして SDK で得られたその設定に対応したパフォーマンス結果をま とめたものです。 時間はこれらの設定がテス ト実行中に使用されたと きで、 およその時間です (69 ページの図 11-9 および69 ページの図 11-10 を参照)。表 10 の最終行は、64 ページの図 11-3でモデリ ングされた ト ラフ ィ ッ ク シナリオと、図55 にある実際のデザインを使用した実行に対応しています。

表 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 のパフォーマンス結果は、69 ページの図 11-9 および69 ページの図 11-10 にあるグラフを見る と特にはっき り とわかり ます。 69 ページの図 11-9にある PS パフォーマンス結果に関しては、 約 30 秒から50 秒の間、 ソーベル ソフ ト ウェア フ ィルター モードが使用されている と きに注目すべきです。 この時間は、 一定して CPU 使用率が高く、 IPC や L1 データ キャ ッシュ アクセスなどの値がとても高くなっています。

69 ページの図 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

システム パフォーマンス解析 japan.xilinx.com 68UG1145 (v2015.1) 2015 年 4 月 1 日

Page 69: ザイリンクス ソフトウェア 開発キット (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 パフォーマンス グラフ

システム パフォーマンス解析 japan.xilinx.com 69UG1145 (v2015.1) 2015 年 4 月 1 日

Page 70: ザイリンクス ソフトウェア 開発キット (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 AboutMemory』 (Ref [3]) を参照してください。 この資料では、 次のよ うな点を考慮するよ う アドバイスされています。

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

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

° プリ フェッチの使用

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

• 競合の把握

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

システム パフォーマンス解析 japan.xilinx.com 70UG1145 (v2015.1) 2015 年 4 月 1 日

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

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

• DDR コン ト ローラー設定

これらの設定は 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 ポートで帯域幅を最大限にするため)。

システム パフォーマンス解析 japan.xilinx.com 71UG1145 (v2015.1) 2015 年 4 月 1 日

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

付録 B

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

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

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

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

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

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)

システム パフォーマンス解析 japan.xilinx.com 72UG1145 (v2015.1) 2015 年 4 月 1 日

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

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

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

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

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

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

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

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://japan.xilinx.com/legal.htm#tos で見られるザイ リ ンクスの販売

条件を参照してください。

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

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

者に帰属します。

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

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

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

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

システム パフォーマンス解析 japan.xilinx.com 73UG1145 (v2015.1) 2015 年 4 月 1 日