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

ザイ リ ン ク ス ソ フ ト ウ ェ ア
開発キ ッ ト (SDK) ユーザー
ガイ ド
シス テム パフ ォ ーマ ン ス解析
UG1145(v2015.1)
(v2015.2)
2015
月
UG1145
2015
年 4年
月 16 日
24 日
本資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資
料によっては英語版の更新に対応していないものがあります。日本語版は参考用としてご使用の上、最新情
報につきましては、必ず最新英語版をご参照ください。
ザ イ リ ン ク ス ソ フ ト ウ ェ ア 開発
改訂履歴
次の表に、 こ の文書の改訂履歴を示
し ます。
2015/06/24
: Vivado Design Suite
2015.2 リリース。内容の変更なし。
日付
バージ ョ ン
改訂内容
2015 年 4 月 1 日
2015.1
AXI パフ ォーマ ン ス モニ タ ー (APM) に関す る 制限事項を追加 し て、「PL プ ロ フ ァ イ ル カ
ウ ン タ ー」 を更新
「 ト レーニ ン グ リ ソ ース」 ビデオを 「その他の ソ ースお よ び法的通知」 に追加
シス テム パフ ォ ーマ ン ス解析
UG1145 (v2015.1)
20152015
年4月
UG1145
(v2015.2)
年1 日
6 月 24 日
japan.xilinx.com
2
目次
改訂履歴 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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
シス テム パフ ォ ーマ ン ス解析
UG1145 (v2015.1)
20152015
年4月
UG1145
(v2015.2)
年1 日
6 月 24 日
japan.xilinx.com
3
第 10 章 : カ ス タ ム タ ーゲ ッ ト の使用
ソ フ ト ウ ェ アの計測 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
ハー ド ウ ェ アの計測 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
カ ス タ ム タ ーゲ ッ ト の監視 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
第 11 章 : 徹底パ フ ォ ーマ ン ス解析
要件の査定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
デザ イ ンのモデル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
パフ ォーマ ン ス検証 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
詳細な解析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
61
63
65
68
付録 A : パフ ォ ーマ ン ス チ ェ ッ ク リ ス ト
付録 B : その他のソ ースおよび法的通知
ザ イ リ ン ク ス リ ソ ース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ソ リ ュ ーシ ョ ン セ ン タ ー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
参考資料 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ト レーニ ン グ リ ソ ース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
重要な法的通知 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
シス テム パフ ォ ーマ ン ス解析
UG1145 (v2015.1)
20152015
年4月
UG1145
(v2015.2)
年1 日
6 月 24 日
japan.xilinx.com
72
72
72
73
73
4
第 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 の両方を確認で き る よ う にな っ てい ます。デザ イ ン フ ロ ーの重要
な段階でシ ス テ ム パフ ォーマ ン ス を確認 し 、 シ ス テ ムのパフ ォーマ ン ス を改善 し てい く こ と がで き ます。
シス テム パフ ォ ーマ ン ス解析
UG1145 (v2015.1)
20152015
年4月
UG1145
(v2015.2)
年1 日
6 月 24 日
japan.xilinx.com
5
第 1 章 : 概要
X-Ref Target - Figure 1-1
ソフトウェア
パフォーマンス解析
(SPA)
ソフトウェア
プロファイル ツール
システム
デバッガー
ドライバー/
ライブラリ
システム
パフォーマンス
モデリング (SPM)
監視
フレームワーク
ユーザー インター
フェイス/視覚化
図 1‐1 : シス テム パ フ ォ ーマ ン ス解析 (SPA) ツールボ ッ ク ス を含んだザイ リ ン ク ス SDK の機能
図 1-1 は、 SDK の機能セ ッ ト に SPA ツールボ ッ ク ス が ど の よ う に組み込まれてい る か を示 し てい ます。 SDK にはほ
かに、 ソ フ ト ウ ェ ア プ ロ フ ァ イ リ ン グ ツール、シ ス テ ム デバ ッ ガー、 ド ラ イ バーお よ び ラ イ ブ ラ リ のサポー ト と いっ
た重要な機能があ り ます。 SPA ツールボ ッ ク ス には、 監視フ レーム ワ ー ク 、 ユーザー イ ン タ ーフ ェ イ ス が含まれてい
る だけでな く 、 シ ス テ ム パフ ォーマ ン ス モデ リ ン グ (SPM) と 呼ばれ る 早期段階の検証用環境 と 、 ユーザー デザ イ ン
の監視お よ び解析 と い う 2 つの重要な使用モデルに共通 し た可視化ツールが含 ま れてい ま す。 こ の ツールボ ッ ク ス
は、デザ イ ン プ ロ セ ス で一貫 し たパフ ォーマ ン ス が得 ら れ る よ う に、パフ ォーマ ン ス を検証す る ために使用で き ます。
SPM は SDK 独特の機能で、設計作業を始め る 前か ら 、複雑なパフ ォーマ ン ス モデ リ ン グ を行 う こ と がで き ます。SPM
は実際の タ ーゲ ッ ト ハー ド ウ ェ アで実行 さ れます。 ま た、5 つの AXI ト ラ フ ィ ッ ク ジ ェ ネ レー タ ーを含んだ、非常に
コ ン フ ィ ギ ャ ラ ブルな固定ビ ッ ト ス ト リ ームが含まれてい ます。 こ れ ら の ト ラ フ ィ ッ ク ジ ェ ネ レー タ ーは、 PL ト ラ
フ ィ ッ ク を モデルす る ための コ ン フ ィ ギ ャ ラ ブルな コ アで、 SDK で使用 さ れ ます。 プ ロ セ ッ シ ン グ シ ス テ ム で同時
に ソ フ ト ウ ェ ア アプ リ ケーシ ョ ン も 実行で き る ので、 シ ス テ ム コ ン フ ィ ギ ュ レーシ ョ ン パ ラ メ ー タ ーを ユーザー指
定で き ます。
シス テム パフ ォ ーマ ン ス解析
UG1145 (v2015.1)
20152015
年4月
UG1145
(v2015.2)
年1 日
6 月 24 日
japan.xilinx.com
6
第 1 章 : 概要
パフ ォ ーマ ン ス解析フ ロー
SDK には、 SPM デザ イ ン を使用 し た徹底 し たパフ ォ ーマ ン ス解析フ ロ ーがあ り ます。 こ の フ ロ ーを使用 し 、 予想デ
ザ イ ンで ト ラ フ ィ ッ ク を モデル し た後に、 実際のデザ イ ン を使用 し てパフ ォーマ ン ス を検証で き ます。
X-Ref Target - Figure 1-2
用件の査定
デザインのモデル
パフォーマンス検証
詳細な解析
図 1‐2 : 徹底 し たパフ ォ ーマ ン ス解析フ ロー
図 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 を使用 し てデザ イ ン を モデル し 、 その後、 実際のデザ イ ンのパフ ォーマ ン ス を検証 し て フ ォ ロ ーア ッ プで き
る。
シス テム パフ ォ ーマ ン ス解析
UG1145 (v2015.1)
20152015
年4月
UG1145
(v2015.2)
年1 日
6 月 24 日
japan.xilinx.com
7
第 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.
2.
ソ フ ト ウ ェア
a.
ザ イ リ ン ク ス ソ フ ト ウ ェ ア開発キ ッ ト (SDK) 2015.1
b.
オプシ ョ ン : Silicon Labs 社の USB-UART ド ラ イ バー
ハー ド ウ ェ ア
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]
シス テム パフ ォ ーマ ン ス解析
UG1145 (v2015.1)
20152015
年4月
UG1145
(v2015.2)
年1 日
6 月 24 日
japan.xilinx.com
8
第 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
シス テム パフ ォ ーマ ン ス解析
UG1145 (v2015.1)
20152015
年4月
UG1145
(v2015.2)
年1 日
6 月 24 日
japan.xilinx.com
9
第 2章
背景
Zynq®-7000 AP SoC の さ ま ざ ま なシ ス テ ム リ ソ ースや機能を理解 し てお く と 、デザ イ ン を こ のデバ イ ス に タ ーゲ ッ ト
し やす く な り ます。 こ のデバ イ ス に慣れた後に、 リ ソ ース に機能を マ ッ プ し てい く 方法や、 デザ イ ンのパフ ォーマ ン
ス を最適化す る 方法を決めてい き ます。
X-Ref Target - Figure 2-1
図 2‐1 : Zynq‐7000 All Programmable SoC のブ ロ ッ ク図
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
japan.xilinx.com
24 日
10
第 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 な ど) と の通信 と いっ た、
さ ま ざ ま な通信目的に合わせて利用で き ます。
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
japan.xilinx.com
24 日
11
第 2 章 : 背景
)ODVK&RQWUROOHU
1251$1'65$04XDG63,
$0%$‹,QWHUFRQQHFW
[
63,
3URFHVVRU,0X[
[
,&
[
&$1
[
8$57
''50HPRU\&RQWUROOHU
,QWHUFRQQHFW
$50‹&RU6LJKW
&RU6LJKWŒ0XOWL&RUH'HEXJDQG7UDFH
0XOWL&RUH'HEXJDQG7UDFH
1(21Œ'63)38(QJLQH
'63)38(QJLQH
1(21'63)38(QJLQH
&RUWH[Œ$03&RUH
.%,&DFKHV
&RUWH[$03&RUH
.%,&DFKHV
.E\WH/&DFKH
*3,2
[6',2
ZLWK'0$
*HQHUDO,QWHUUXSW
&RQWUROOHU
&RQILJXUDWLRQ
:DWFKGRJ
7LPHU
7LPHUV
.E\WH
.E\WH
2Q&KLS
0HPRU\
6QRRS
&RQWURO
8QLW
'0$
[86%
ZLWK'0$
[*LJ(
ZLWK'0$
$0%$,QWHUFRQQHFW
$0%$,QWHUFRQQHFW
6HFXULW\
$(66+$56$
(0,2
*HQHUDO3XUSRVH
$;,3RUWV
;$'
[$'&0X[
7KHUPDO6HQVRU
$&3
+LJK3HUIRUPDQFH
$;,3RUWV
3URJUDPPDEOH/RJLF
6\VWHP*DWHV'63 5$0
6\VWHP*DWHV'635$0
0XOWL6WDQGDUG,V 9 +LJK6SHHG9
3FOH*HQ
/DQHV
0XOWL*LJDELW7UDQVFHLYHUV
X-Ref Target - Figure 2-2
図 2‐2 : Zynq‐7000 AP SoC ブ ロ ッ ク 図 (共有 リ ソ ース をハイ ラ イ ト )
図 2-2 では、Zynq-7000 AP SoC 内の共有 リ ソ ース がハ イ ラ イ ト さ れてい ます。 こ の SoC の機能をすべて フルに利用 し
てい る デザ イ ンの場合、 高帯域幅の通信チ ャ ネルが複数必要にな り ます。 シ ス テ ムの こ う し た ト ラ フ ィ ッ ク には、 必
然的に共有 リ ソ ー ス が使用 さ れ ま す。 シ ス テ ム が う ま く 設計 さ れていない と 、 L2 キ ャ ッ シ ュ 、 DDR メ モ リ コ ン ト
ロ ー ラ ー、 高速 イ ン タ ー コ ネ ク ト で、 競合がい く つ も 発生す る 可能性が出て き ます。 こ れ ら の リ ソ ース をすべて フル
に使用 し てい る デザ イ ン のパフ ォーマ ン ス を最適化す る には、 シ ス テ ムの複数個所を確認 し てお く 必要があ り ます。
デザ イ ン を改善す る には、 コ ー ド 、 デザ イ ンの コ ネ ク テ ィ ビ テ ィ 、 シ ス テ ム設定を変更 し ます。
L2 キ ャ ッ シ ュ はその最た る 例です。 ACP は L2 キ ャ ッ シ ュ を Cortex-A9 CPU と 共有 し てい る ため、 ACP ま たはプ ロ
セ ッ サか ら の スループ ッ ト ト ラ フ ィ ッ ク は、互いのパフ ォーマ ン ス に影響 し て し ま う 可能性があ り ます。 こ れは予測
可能ですが、 その影響が ど の よ う な も ので、 どれほ ど の も のなのかを把握す る のは容易ではあ り ません。
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
japan.xilinx.com
24 日
12
第 2 章 : 背景
こ う し た と き に こ そ、 SDK パフ ォーマ ン ス機能を利用す る 価値があ り ます。 SDK には、 こ の影響を把握す る ための
可視化ツール と 、 早期段階でデザ イ ン を試行錯誤 し てい く ための SPM があ り ます。 表や リ アル タ イ ムの図を利用 し
て、 一般的な タ イ ム ラ イ ンで PS お よ び PL のパフ ォ ーマ ン ス メ ト リ ク ス を可視化で き る よ う にな っ てい ます。 こ れ
に よ り 、 潜在的な問題を早い段階で隔離で き る よ う 、 問題が発生 し そ う な タ イ ミ ン グや位置を知 る ための情報を入手
で き ます。 さ ら に、 SPM デザ イ ン と ユーザー デザ イ ンに同 じ パフ ォーマ ン ス メ ト リ ク ス を使用 し て計算 さ れ る ため、
早期段階で さ ま ざ ま なオプシ ョ ン を考慮で き 、 デザ イ ン フ ロ ーを通 し て一貫 し た結果が得 ら れ る よ う にな り ます。
こ のパフ ォーマ ン ス ツールを使用 し てパフ ォーマ ン ス結果を解析する 前に、 まずは、 ど のデザ イ ンが使用 さ れ、 何が
計測 さ れ る のか を理解 し てお く こ と が重要です。 こ の後の章では、 SPM デザ イ ン と 、 SDK で使用 さ れ る パフ ォーマ
ン ス監視フ レーム ワー ク について説明 し ます。
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
japan.xilinx.com
24 日
13
第 3章
シス テム パフ ォ ーマ ン ス モデ リ ング プ ロ
ジェク ト
ザ イ リ ン ク ス ソ フ ト ウ ェ ア開発キ ッ ト (SDK) にはあ ら か じ め定義 さ れてい る プ ロ ジ ェ ク ト が含ま れてお り 、 シ ス テ
ム パフ ォーマ ン ス モデ リ ン グ (SPM) を利用 し 、 ま たデザ イ ンの早期段階でパフ ォーマ ン ス解析を実行 し やす く し ま
す。 こ の SPM プ ロ ジ ェ ク ト には、 ソ フ ト ウ ェ ア実行フ ァ イ ル と 、 ビ ッ ト ス ト リ ーム後の コ ン フ ィ ギ ャ ラ ブル ハー ド
ウ ェ ア シ ス テ ムの両方が含まれてい ます。 SPM は次の よ う な目的で使用す る こ と がで き ます。
•
タ ーゲ ッ ト の評価 : ハー ド ウ ェ ア設計の知識や経験に乏 し く て も 、 タ ーゲ ッ ト プ ラ ッ ト フ ォーム を把握で き ま
す。 Zynq®-7000 AP SoC な ど の複雑な SoC を特性化お よ び評価で き 、 ARM Cortex-A9 と プ ロ グ ラ マブル ロ ジ ッ
ク と の間の ク リ テ ィ カルなパーテ ィ シ ョ ン ト レー ド オ フ を検討する こ と がで き ます。 も っ と も 重要なのは、デザ
イ ンの進捗状況や完成度 と は関係な く 、 評価で き る 点です。 常に、 タ ーゲ ッ ト プ ラ ッ ト フ ォーム を よ り 理解 し て
判断がで き ます。
•
パフ ォーマ ン ス ス ト レ ス テ ス ト : シ ス テ ム内で競合が発生す る 位置を確認で き ます。 タ ーゲ ッ ト プ ラ ッ ト
フ ォームの機能の制限を評価す る には、 そのプ ラ ッ ト フ ォーム を理解す る のが一番です。
•
パフ ォーマ ン ス評価 : デザ イ ンの ト ラ フ ィ ッ ク をモデル し ます。 タ ーゲ ッ ト プ ラ ッ ト フ ォーム を理解で き た ら 、
デザ イ ンの具体的な部分は ト ラ フ ィ ッ ク シナ リ オ と し て入力で き ます。 ま た、 SPM を使用 し て アーキ テ ク チ ャ
のオプシ ョ ン を評価す る こ と も で き ます。
•
パフ ォーマ ン ス検証 : 最終デザ イ ン を計測 し 、 初期モデルを使用 し て結果を確認 し ます。 SPM デザ イ ン で使用 さ
れ る の と 同 じ 監視機能を ユーザー デザ イ ンに も 追加 し (57 ページの 「ハー ド ウ ェ アの計測」 を参照)、 モデル さ
れたパフ ォーマ ン ス結果を検証で き ます。
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
japan.xilinx.com
24 日
14
第 3 章 : シ ス テム パフ ォ ーマ ン ス モデ リ ング プ ロ ジ ェ ク ト
X-Ref Target - Figure 3-1
図 3‐1 : SDK での SPM プ ロ ジ ェ ク ト フ ァ イル
図 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 と いっ た知名度の高いベンチマー ク ツールの一部に元々は含まれていた ア
ルゴ リ ズ ムが含ま れてい ます。 こ れ ら のベンチマー ク は、 エンベデ ッ ド シ ス テ ム を テ ス ト し 、 ス タ ン ド ア ロ ン ま たは
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
japan.xilinx.com
24 日
15
第 3 章 : シ ス テム パフ ォ ーマ ン ス モデ リ ング プ ロ ジ ェ ク ト
ベア メ タ ルの タ ーゲ ッ ト に利用で き る よ う 、選択 さ れてい ます。BEEBS ベンチマー ク ツールの詳細は、『BEEBS: Open
Benchmarks for Energy Measurements on Embedded Platforms』 [参照 4]を参照 し て く だ さ い。
表 3‐1 : コ ンパイル済みプ ログ ラ ムで提供 さ れている BEEBS ベン チマー ク
ベン チマー ク
ツール
説明
Blowfish エン コーダー
MiBench
ブ ロ ッ ク 暗号
巡回冗長検査 (CRC)
MiBench
エ ラ ー検出 コ ー ド
セキ ュ ア ハ ッ シ ュ アルゴ リ
ズ ム (SHA)
MiBench
NIST 暗号学的ハ ッ シ ュ 関数
ダイ ク ス ト ラ法
MiBench
グ ラ フ検索アルゴ リ ズ ム
離散 コ サ イ ン変換 (DCT)
WCET
MP3、 JPEG で使用 さ れ る 変換
2-D FIR フ ィ ル タ ー
DSPstone
画像フ ィ ル タ リ ン グで共通
浮動小数点の行列の乗算
WCET
2x2 の行列の乗算
整数の行列の乗算
WCET
2x2 の行列の乗算
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 は、 プ ロ グ ラ ム内のベンチマー ク の順番を示 し てい ま
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
japan.xilinx.com
24 日
16
第 3 章 : シ ス テム パフ ォ ーマ ン ス モデ リ ング プ ロ ジ ェ ク ト
す。 各ベンチマー ク は、 BEEBS用に上記に リ ス ト さ れてい る 3 つのア レ イ サ イ ズ と 同 じ サ イ ズで動作 し ます。 メ モ
リ ス ト ラ イ ド プ ロ グ ラ ム も 計測 さ れてい ますが、 ト ラ ン ス ク リ プ ト レ ポー ト に各テ ス ト で達成で き た スループ ッ ト
お よ びレ イ テ ン シが レ ポー ト さ れます。
表 3‐2 : コ ンパイル済みプ ログ ラ ムで提供 さ れている メ モ リ ス ト ラ イ ド ベン チマー ク
テス ト タ イ プ
パ タ ーン タ イ プ
操作 タ イ プ
読み出 し
リ ニア
書き 込み
コ ピー
読み出 し /書き 込み
帯域幅
読み出 し
ラ ン ダ ム (計算済み)
書き 込み
コ ピー
読み出 し
ラ ン ダ ム ( リ アル タ イ ム)
書き 込み
コ ピー
レ イ テンシ
リ ニア
読み出 し
ラ ン ダ ム (計算済み)
読み出 し
SPM ハー ド ウ ェ ア
SPM プ ロ ジ ェ ク ト には定義済みのハー ド ウ ェ ア デザ イ ンが含ま れてお り 、 早期段階でパフ ォ ーマ ン ス を いろい ろ と
試す こ と がで き ます。 こ のデザ イ ンは、 Zynq-7000 AP SoC プ ロ グ ラ マブル ロ ジ ッ ク (PL) を コ ン フ ィ ギ ュ レー ト す る
ための固定ビ ッ ト ス ト ーム と し て、 プ ロ ジ ェ ク ト に含まれてい ます。
シス テム パフ ォ ーマ ン ス解析
UG1145 (v2015.1)
20152015
年4月
UG1145
(v2015.2)
年1 日
6 月 24 日
japan.xilinx.com
17
第 3 章 : シ ス テム パフ ォ ーマ ン ス モデ リ ング プ ロ ジ ェ ク ト
X-Ref Target - Figure 3-2
図 3‐2 : Zynq‐7000 AP SoC の定義済み SPM デザイ ン
図 3-2 は Zynq-7000 AP SoC を タ ーゲ ッ ト に し た定義済み SPM デザ イ ンのブ ロ ッ ク 図です。 こ れは、 非常に コ ン フ ィ
ギ ャ ラ ブルなデザ イ ンで、 5 つの AXI ト ラ フ ィ ッ ク ジ ェ ネ レー タ ー (ATG) と 、 1 つの AXI パフ ォーマ ン ス モニ タ ー
(APM) が含まれてい ます。 1 つの ATG は 4 つのハ イ パフ ォーマ ン ス (HP) ポー ト のそれぞれに接続 さ れていて、 ACP
に も 接続 さ れてい ます。 こ れ ら の コ アの コ ン フ ィ ギ ュ レーシ ョ ンは、 汎用 (GP) ポー ト 0 マ ス タ ーを介 し て行われま
す。 CPU パフ ォーマ ン ス メ ト リ ク ス は、 パフ ォーマ ン ス モニ タ ー ユニ ッ ト (PMU) を使用 し て得 ら れます。
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
japan.xilinx.com
24 日
18
第 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 章 「監視フ レーム ワー ク 」 を参照 し て く だ さ い。
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
japan.xilinx.com
24 日
19
第 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 ミ リ 秒です。
シス テム パフ ォ ーマ ン ス解析
UG1145 (v2015.1)
20152015
年4月
UG1145
(v2015.2)
年1 日
6 月 24 日
japan.xilinx.com
20
第 4 章 : 監視フ レームワー ク
表 4‐1 : AXI パフ ォ ーマ ン ス モニ タ ーでの AXI イ ン タ ー フ ェ イ ス ご と のプ ロ フ ァ イル カ ウン タ ー
APM カ ウン タ ー メ ト リ ク ス
パフ ォ ーマ ン ス メ ト リ ク スの式
書 き 込みバ イ ト 数
書き 込みスループ ッ ト =(∆(書 き 込みバ イ ト 数))/(サンプル間隔)
書 き 込みレ イ テ ン シ数
書 き 込み ト ラ ンザ ク シ ョ ン数
平均書 き 込みレ イ テ ン シ = (∆(書 き 込みレ イ テ ン シ数))/(∆(書 き 込み
ト ラ ンザ ク シ ョ ン数))
読み出 し バ イ ト 数
読み出 し スループ ッ ト =(∆(読み出 し バ イ ト 数))/(サンプル間隔)
読み出 し レ イ テ ン シ数
平均読み出 し レ イ テ ン シ = (∆(読み出 し レ イ テ ン シ数))/(∆(読み出 し
ト ラ ンザ ク シ ョ ン数))
読み出 し ト ラ ンザ ク シ ョ ン数
X-Ref Target - Figure 4-1
図 4‐1 : SDK で使用 さ れる読み出 し レ イ テ ン シ を示 し た AXI ト ラ ンザク シ ョ ン タ イム ラ イ ンの例
AXI ト ラ ンザ ク シ ョ ン を構成す る イ ベン ト は多いため、SDK が取 り 込む イ ベン ト お よ びレ イ テ ン シの計算方法を理解
し てお く こ と が重要です。 図 4-1 は、 サンプルの AXI 読み出 し ト ラ ンザ ク シ ョ ンの タ イ ミ ン グ図で、 ア ド レ ス、 デー
タ お よ び制御信号が含ま れてい ます。
SDK で 使用 さ れ る 開始 イ ベ ン ト は ア ド レ ス 受諾 (ARVALID=1 と ARREADY=1) で、 最終 イ ベ ン ト は最終デー タ
(RLAST=1 と RVALID=1 と RREADY=1) です。 共通 ト ラ ンザ ク シ ョ ン内での こ れ ら 2 つの イ ベン ト の差は、 ト ラ ンザ
ク シ ョ ン レ イ テ ン シ と 考え ら れます。
ARM は次の も のをサポー ト し ていない こ と に注意 し て く だ さ い。
•
33 以上の未処理 ト ラ ンザ ク シ ョ ン。 つま り 、 最初のデー タ ブ ロ ッ ク 開始の前に 33 個以上のア ド レ ス の初期化が
行われ る ト ラ ンザ ク シ ョ ン、 ま たは、 最初のア ド レ ス の前に 32 個のデー タ ブ ロ ッ ク が送信/受信 さ れ る ト ラ ンザ
ク シ ョ ン。
•
イ ン タ ー リ ーブ さ れた ト ラ ンザ ク シ ョ ン。 つま り 、 現在のデー タ ト ラ ンザ ク シ ョ ンが終了する 前 (wlast/rlast を受
信す る 前) に、 新 し いデー タ ト ラ ンザ ク シ ョ ンのア ド レ ス初期化が行われ る ト ラ ンザ ク シ ョ ン。
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
japan.xilinx.com
24 日
21
第 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 デー タ キ ャ ッ シ ュ
ミス
L1D_CACHE
0x04
L1 デー タ キ ャ ッ シ ュ
ミス
DCACHE_DEP_STALL
0x61
デー タ キ ャ ッ シ ュ に
依存 し た ス ト ール サ
イ ク ル ( 保留 ラ イ ン
フ ィ ル)
命令ご と の読み出 し ス ト ール サ イ ク ル
=(∆(DCACHE_DEP_STALL))/(∆(INST_RENAME))
MEM_WRITE_STALL
0x81
メ モ リ 書 き 込みを
待っ てい る プ ロ セ ッ
サ ス ト ール サ イ ク ル
命令ご と の書 き 込みス ト ール サ イ ク ル
=(∆(MEM_WRITE_STALL))/(∆(INST_RENAME))
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
L1 デー タ キ ャ ッ シ ュ ミ ス率
(%)=100*(∆(L1D_CACHE_REFILL))/(∆(L1D_CACHE))
japan.xilinx.com
24 日
22
第 4 章 : 監視フ レームワー ク
ホス ト / タ ーゲ ッ ト 間の通信
プ ロ フ ァ イ ル カ ウ ン タ ーがシ ス テ ム パフ ォーマ ン ス解析 (SPA) ツールボ ッ ク ス で ど の よ う に処理お よ び表示 さ れ る
のかが こ れで理解で き た と 思い ます。 さ ら に、 こ れ ら のカ ウ ン タ ーが ど の よ う にサンプル さ れ、 タ ーゲ ッ ト か ら ホ ス
ト コ ン ピ ュ ー タ ーに転送 さ れ る のか を理解する こ と も 大切です。
X-Ref Target - Figure 4-2
図 4‐2 : SDK のホス ト / タ ーゲ ッ ト 間の通信イ ン フ ラ ス ト ラ ク チ ャ
図 4-2 は SDK のホ ス ト / タ ーゲ ッ ト 間の通信 イ ン フ ラ ス ト ラ ク チ ャ を表 し てい ま す。 SDK ツール自体はホ ス ト コ ン
ピ ュ ー タ ーで実行 さ れ、 ま た、 ツールには タ ーゲ ッ ト 通信フ レーム ワー ク (TCF) を使用 し たハー ド ウ ェ ア サーバーが
含 ま れてい ます。 TCF を使用す る と 、 JTAG プ ロ グ ラ ミ ン グ ケーブルを介 し て タ ーゲ ッ ト と 効率 よ く 通信で き ます。
こ の TCF ベー ス のハー ド ウ ェ ア サーバーは、 16 ページの表 3-1 お よ び17 ページの表 3-2 に リ ス ト さ れてい る プ ロ
フ ァ イ ル カ ウ ン タ ーにで き る かぎ り 介入せずに制御 し ます。APM お よ び PMU カ ウ ン タ ーは、Zynq-7000 AP SoCの中
央 イ ン タ ー コ ネ ク ト を介 し て、 メ モ リ マ ッ プ ア ク セ ス を使用 し て読み出 さ れ ます。 こ の後、 カ ウ ン タ ー値は、 先に
説明 し た よ う に処理 さ れ、 SDK に表示 さ れます。
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
japan.xilinx.com
24 日
23
第 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] を参照 し て、
ボー ド 接続を設定 し て く だ さ い。
X-Ref Target - Figure 5-1
図 5‐1 : SDK コ ン フ ィ ギ ュ レーシ ョ ン ウ ィ ザー ド でのア プ リ ケーシ ョ ン設定
図 5-1 は SPM の ソ フ ト ウ ェ ア アプ リ ケーシ ョ ン設定を示 し てい ます。 デフ ォ ル ト では、 こ の コ ン フ ィ ギ ュ レーシ ョ
ンの ソ フ ト ウ ェ ア実行フ ァ イ ルは beebs_benchmarks.elf で、 こ れにはかな り の量のデー タ 処理 と メ モ リ ア ク セ ス が含
ま れてい る ため、 手始めに利用す る には最適です (第 3 章 「シ ス テ ム パフ ォ ーマ ン ス モデ リ ン グ プ ロ ジ ェ ク ト 」 を
参照)。
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
japan.xilinx.com
24 日
24
第 5 章 : SPM の入門
こ のデフ ォ ル ト アプ リ ケーシ ョ ンは、 次の章で説明 さ れてい る ソ フ ト ウ ェ ア パフ ォ ーマ ン ス の評価のためにデザ イ
ン を準備す る ために選ばれてい ます。 後で、 こ の設定を変更 し てい き ます。 そ し て、 SPM プ ロ ジ ェ ク ト で提供 さ れて
い る も う 1 つのアプ リ ケーシ ョ ン、 メ モ リ ス ト ラ イ ド が使用 さ れます。
ATG コ ン フ ィ ギ ュ レーシ ョ ン
SDK では、 AXI ト ラ フ ィ ッ ク ジ ェ ネ レー タ ー (ATG) を コ ン フ ィ ギ ュ レー ト する ための ト ラ フ ィ ッ ク シナ リ オを指定
す る こ と がで き ます。
X-Ref Target - Figure 5-2
図 5‐2 : SDK コ ン フ ィ ギ ュ レーシ ョ ン ウ ィ ザー ド での 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 の後に続 く ア ド レ ス が生成 さ れ る 方法 (ア ド レ ス範囲内で イ ン ク リ メ ン タ ルか ラ ン
ダ ム)。
シス テム パフ ォ ーマ ン ス解析
UG1145 (v2015.1)
20152015
年4月
UG1145
(v2015.2)
年1 日
6 月 24 日
japan.xilinx.com
25
第 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] パースペ ク テ ィ ブが開 き ま
す。
X-Ref Target - Figure 5-3
図 5‐3 : 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 パフ ォーマ ン ス メ ト リ ク ス
を示すプ ロ ッ ト 。
シス テム パフ ォ ーマ ン ス解析
UG1145 (v2015.1)
20152015
年4月
UG1145
(v2015.2)
年1 日
6 月 24 日
japan.xilinx.com
26
第 5 章 : SPM の入門
4.
[MicroBlaze Performance Summary] : MicroBlaze™ パフ ォーマ ン ス メ ト リ ク ス を ま と めた表。 こ れは SPM では使
用 さ れないので、 こ のガ イ ド では説明 さ れてい ません。
5.
[MicroBlaze Performance] : 共有 タ イ ム ラ イ ン上の に リ ス ト さ れてい る MicroBlaze パフ ォーマ ン ス メ ト リ ク ス を
示すプ ロ ッ ト 。 こ れは SPM では使用 さ れないので、 こ のガ イ ド では説明 さ れてい ません。
X-Ref Target - Figure 5-4
図 5‐4 : SDK の [View Transcript] の [Terminal Settings]
こ のガ イ ド では、 タ ーゲ ッ ト アプ リ ケーシ ョ ンが出力 し た さ ま ざ ま な結果が使用 さ れ、 それを SDK の タ ー ミ ナル 1
のパネルに表示 し ます。 ソ フ ト ウ ェ ア ラ ン タ イ ム、 達成 し た帯域幅、 平均レ イ テ ン シな ど がその結果に含まれます。
こ れ ら の結果を再現 し たい場合、 ま たはユーザー自身で実行 し たい場合は、 AC702 ボー ド の UART と 、 ホ ス ト コ ン
ピ ュ ー タ ーの USB ポー ト 間を、 USB ケーブル (Type-A to USB Mini-B) で接続する 必要があ り ます。
図 5-4 は、SDK で こ の UART ト ラ ン ス ク リ プ ト を表示 さ せ る のに必要な タ ー ミ ナル設定を示 し てい ます。 こ のポ ッ プ
ア ッ プ メ ニ ュ ーを表示 さ せる には、26 ページの図 5-3の右上にあ る [Connect] ボ タ ン
を ク リ ッ ク し ます。ユーザー
のポー ト は COM5 ではない場合があ り ますが、 その他の設定はすべて有効です。
シス テム パフ ォ ーマ ン ス解析
UG1145 (v2015.1)
20152015
年4月
UG1145
(v2015.2)
年1 日
6 月 24 日
japan.xilinx.com
27
第 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 に よ っ て コ ンパ イ ル さ れ
る プ ロ グ ラ ム用に得 る こ と も 可能です。
X-Ref Target - Figure 6-1
図 6‐1 : CPU 使用率 (BEEBS ベン チマー ク)
合計 24 個のテ ス ト が実行 さ れ、 16 ページの表 3-1に リ ス ト さ れてい る 8 つのベンチマー ク のそれぞれが、 3 つの異な
る デー タ ア レ イ サ イ ズ (4KB、 64KB、 1024KB) で実行 さ れてい ま す。 各テ ス ト 間に 1 秒間の ス リ ープが挿入 さ れて
い る ため、CPU 使用率を見れば、 ど のベンチマー ク が実行 さ れてい る のか を見分けやす く な っ てい ます。図 6-1 には、
結果の タ イ ム ラ イ ンが表示 さ れてい ます。 各ベンチマー ク 内で、 小 さ いサ イ ズか ら 大き なサ イ ズへ と 順番に、 3 つの
デー タ サ イ ズが実行 さ れてい ます。CPU0 の使用率お よ びその使用期間を確認で き ます。 ト ラ フ ィ ッ ク な し の BEEBS
ベンチマー ク の実行には約 45 秒かか っ てい ます。
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
japan.xilinx.com
24 日
28
第 6 章 : ソ フ ト ウ ェ ア パフ ォ ーマ ン スの評価
X-Ref Target - Figure 6-2
図 6‐2 : BEEBS ベン チマー ク のパフ ォ ーマ ン ス解析 (CPU 使用率、 IPC、 L1 デー タ キ ャ ッ シ ュ )
図 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 共著) [参照 5] を参照 し て く だ さ い。図 6-2
を見 る と 、 IPC の値は L1 デー タ キ ャ ッ シ ュ ア ク セ ス を ほぼなぞっ てい る 形にな っ てい ます。 ま た、 メ モ リ を多用す
る 行列乗数を実行 し てい る 間、 IPC の最低値は L1 デー タ キ ャ ッ シ ュ ミ ス率の最大値に該当 し てい ます。 IPC が ソ フ
ト ウ ェ ア効率を図 る も のであ る と すれば、 図 6-2 を見 る と 、 メ モ リ を多用す る 計算が長時間実行 さ れてい る 間の ソ フ
ト ウ ェ ア効率は最低レベルであ る こ と が明 ら かです。 こ の状態が避け ら れない こ と も あ り ますが、 メ モ リ 階層 と の関
わ り を調べ る 上で IPC を確認すべ き であ る こ と がわか り ます。
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
japan.xilinx.com
24 日
29
第 6 章 : ソ フ ト ウ ェ ア パフ ォ ーマ ン スの評価
X-Ref Target - Figure 6-3
図 6‐3 : BEEBS ベン チマー ク のパフ ォ ーマ ン ス解析 (L1 デー タ キ ャ ッ シ ュ、 命令ご と のス ト ール サイ ク ル数)
こ の解析を さ ら に 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% 短縮 さ れ る と い う 、非常に大 き な イ ンパ ク ト があ り ま し た。
こ のプ リ フ ェ ッ チ オプシ ョ ンに よ っ て アプ リ ケーシ ョ ンのパフ ォーマ ン ス が改善 さ れ る も のがあれば、改善 さ れずに
悪化す る 可能性のあ る も の も あ り ま す。 アプ リ ケーシ ョ ン の ラ ン タ イ ムは、 プ リ フ ェ ッ チ オプシ ョ ン を使用 し た状
態、 そ し て使用 し ていない状態の両方で検証す る こ と を推奨 し ます。
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
japan.xilinx.com
24 日
30
第 6 章 : ソ フ ト ウ ェ ア パフ ォ ーマ ン スの評価
X-Ref Target - Figure 6-4
図 6‐4 : BEEBS ベン チマー ク ツールでの ソ フ ト ウ ェ ア ラ ン タ イ ムの結果
先に説明 し た よ う に、 全体的な ソ フ ト ウ ェ ア パフ ォーマ ン ス を計測す る には、 アプ リ ケーシ ョ ンの異な る 箇所の ラ ン
タ イ ム を計測 し てお く こ と をお勧め し ます。 図 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] を参照 し て く だ さ い。
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
japan.xilinx.com
24 日
31
第 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];
X-Ref Target - Figure 6-5
図 6‐5 : 変更前後の C/C++ ソ フ ト ウ ェ ア (浮動小数点の行列乗算)
BEEBS ベンチマー ク ソ フ ト ウ ェ アは、 浮動小数点お よ び整数の行列乗算の新 し い イ ン プ リ メ ン テーシ ョ ン を使用 し
て、 再 コ ンパ イ ルお よ び再実行 さ れてい ます。
32 ページの表 6-1には、 SDK の [APU Performance Summery] パネルで レ ポー ト さ れてい る CPU0 のパフ ォーマ ン ス メ
ト リ ク ス が ま と め ら れてい ます。 8 つあ る ベンチマー ク の う ち 2 つ し か変更 さ れてい ませんが、 レ ポー ト さ れてい る
メ ト リ ク ス には大 き な差があ り ます。 平均 IPC 値は 34.9% 増加 し てい ますが、 L1 デー タ キ ャ ッ シ ュ ミ ス率は著 し く
低下 し てい ます。 読み出 し ス ト ール サ イ ク ル も 大幅に下が り 、 CPU がデー タ キ ャ ッ シ ュ 補充で待機 し てい る 間に ク
ロ ッ ク サ イ ク ルが低下す る こ と が確認で き ます。
表 6‐1 : CPU0 パ フ ォ ーマ ン ス サマ リ (変更前後の行列乗算)
パ フ ォ ーマ ン ス メ ト リ ク ス
CPU0 パフ ォ ーマ ン ス サマ リ
変更前
変更後
変更点
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
↓↓
CPU 使用率 (%)
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
japan.xilinx.com
24 日
32
第 6 章 : ソ フ ト ウ ェ ア パフ ォ ーマ ン スの評価
X-Ref Target - Figure 6-6
図 6‐6 : 改善 さ れた行列乗算を使用 し た BEEBS ベ ン チマー クのパフ ォ ーマ ン ス解析
図 6-6 は、 [PS Performance] パネルで レ ポー ト さ れてい る L1 デー タ キ ャ ッ シ ュ のグ ラ フ、 命令ご と の CPU ス ト ール
サ イ ク ル数を示 し てい ます。 30 ページの図 6-3 と 比べ る と 、 コ ー ド のボ ト ルネ ッ ク であ っ た浮動小数点お よ び整数の
行列乗算が大幅に改善 さ れてい る のが明 ら かです。 キ ャ プチ ャ の最後のほ う の、 IPC が低 く 、 L1 デー タ キ ャ ッ シ ュ
ミ ス率が高 く 、 CPU の読み出 し ス ト ール サ イ ク ル数が多い期間が長か っ たのですが、 それがかな り 短 く な り 改善 さ
れてい ます。
こ れは ソ フ ト ウ ェ アの ラ ン タ イ ムで確認 さ れてい ます。 計測 さ れた ラ ン タ イ ムの ま と めは表 6-2 に も あ り ます。 浮動
小数点お よ び整数の行列乗算の ラ ン タ イ ムは、それぞれ も と の ラ ン タ イ ム と 比べて 22.8% そ し て 17.0% と 低減 さ れて
い ます。
表 6‐2 : ソ フ ト ウ ェ ア ラ ン タ イムのま と め (変更前および変更後の行列乗算)
ソ フ ト ウ ェ ア ラ ン タ イ ム ( ミ リ 秒)
ベン チマー ク
浮動小数点の行列の乗算
整数の行列の乗算
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
変更前
9201.70
2100.36
100.0%
22.8%
8726.67
1483.24
100.0%
17.0%
japan.xilinx.com
24 日
変更後
33
第 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 を使用す る
と 、 そのパフ ォーマ ン ス をモデルで き ます。 ま た、 設計を開始す る 前に、 目的のパフ ォーマ ン ス を達成で き る こ と を
すばや く 検証す る こ と がで き ます。
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
japan.xilinx.com
24 日
34
第 7 章 : ハイ パフ ォ ーマ ン ス ポー ト の評価
X-Ref Target - Figure 7-1
図 7‐1 : HP ポー ト で HD ビデオ ス ト リ ームを モデルする ATG ト ラ フ ィ ッ ク コ ン フ ィ ギ ュ レーシ ョ ン
図 7-1 は、 最初の ト ラ フ ィ ッ ク シナ リ オを示 し てい ます ( こ の ト ラ フ ィ ッ ク の詳細については第 5 章 「SPM の入門」
を参照)。 こ のシナ リ オは 4 つの未圧縮の 1080p/60 (つま り 1080 の走査線、 プ ロ グ レ ッ シブ、 60 フ レーム/秒) の HD
ビデオ ス ト リ ーム をモデル し てい ます。2 つの ス ト リ ームがポー ト HP0 お よ び HP2 で DDR か ら 読み出 さ れ、ポー ト
HP1 お よ び HP3 には 2 つの ス ト リ ームが書 き 込まれてい ます。 モデル さ れてい る ビデオ ス ト リ ームすべてに対 し 、
ト ラ ンザ ク シ ョ ン間隔は 376MB/秒、 未圧縮の RGB 4:4:4 ビデオの予想スループ ッ ト を リ ク エ ス ト する よ う 選択 さ れ
てい ます。
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
japan.xilinx.com
24 日
35
第 7 章 : ハイ パフ ォ ーマ ン ス ポー ト の評価
X-Ref Target - Figure 7-2
図 7‐2 : HP ポー ト で HD ビデオ ス ト リ ームを モデル し た場合のパフ ォ ーマ ン ス結果のサマ リ
こ の HD ビデオ ト ラ フ ィ ッ ク は ZC702 ボー ド 上で実行 さ れてい ます。 図 7-2 に示す よ う に、 4 つの HP ポー ト のすべ
てが、 376MB/秒の リ ク エ ス ト さ れた スループ ッ ト を維持で き てい ます。 こ れ ら の高い スループ ッ ト は BEEBS ベンチ
マー ク が CPU0 で実行 さ れて い る 間 も 達成 さ れて い ま す。 こ れ ら の 4 つの HP ポー ト で使用 さ れ る 合計帯域幅は、
1510MB/秒、 ま たは DDR の使用可能な帯域幅の 35% で し た。 つ ま り 、 Zynq-7000 AP SoC デバ イ ス で、 こ れ ら の ス
ループ ッ ト を達成す る こ と が可能だ と い う こ と です。 し か し 、 DDR コ ン ト ロ ー ラ ーでのアービ ト レーシ ョ ンお よ び
ス ケ ジ ュ ー リ ン グが原因で、 い く つかの競合が見 ら れ、 ソ フ ト ウ ェ ア アプ リ ケーシ ョ ンのパフ ォーマ ン ス に影響 し て
い ます (40 ページの図 7-7を参照)。 ほ と ん ど のベンチマー ク の ラ ン タ イ ムにわずかな影響が出てい ま し たが、 メ モ リ
ア ク セ ス量の多いベンチマー ク にはいちばん多 く 影響が出てい ま し た。 ワ ース ト ケース は、 整数の行列乗算で、 ラ ン
タ イ ムは 14.0% 増で し た。
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
japan.xilinx.com
24 日
36
第 7 章 : ハイ パフ ォ ーマ ン ス ポー ト の評価
高帯域幅 ト ラ フ ィ ッ ク
34 ページの 「HD ビデオ ト ラ フ ィ ッ ク 」 で説明 さ れてい る ト ラ フ ィ ッ ク モデ リ ン グは拡張可能です。 HP ポー ト の ト
ラ フ ィ ッ ク シナ リ オに別の も のを使用 し 、 同 じ BEEBS ベンチマー ク を実行で き ます。
X-Ref Target - Figure 7-3
図 7‐3 : HP ポー ト で高帯域幅の ト ラ フ ィ ッ ク を モデルする ATG ト ラ フ ィ ッ ク コ ン フ ィ ギ ュ レーシ ョ ン
図 7-3 は、 どれ ぐ ら い高い帯域幅の ト ラ フ ィ ッ ク であればパフ ォーマ ン ス に影響す る のか を確認す る ため、 ス ト レ ス
テ ス ト を実行す る ト ラ フ ィ ッ ク を示 し てい ます。 4 つの HP ポー ト はすべて、 DDR へ イ ン ク リ メ ン タ ルなア ド レ ス指
定を使用 し 、 読み出 し と 書 き 込みの両方に対 し て、 512MB/秒を リ ク エ ス ト し ます。 ト ラ フ ィ ッ ク の長 さ が BEEBS ベ
ンチマー ク アプ リ ケーシ ョ ン全体の長 さ と 一致す る よ う に、 合計の長 さ は 80 秒に設定 さ れてい ま す。 28 ページの
図 6-1 には、 結果の タ イ ム ラ イ ンが表示 さ れてい ます。
HP マ ス タ ーに よ っ て リ ク エ ス ト さ れた スループ ッ ト 合計は 8 * 512 = 4096MB/秒、ま たは DDR の理論上の最大スルー
プ ッ ト の 95.9% です。 ト ラ フ ィ ッ ク には書 き 込み と 読み出 し の両方の リ ク エ ス ト が含ま れてい る ため、 DDR コ ン ト
ロ ー ラ ーには さ ら に ス ト レ ス が加え ら れます。 その理由は、 複数の リ ク エ ス タ ーだけでな く 、 さ ま ざ ま な タ イ プの リ
ク エ ス ト の間を こ の コ ン ト ロ ー ラ ーがアービ ト レー ト し なければな ら ないか ら です。 こ のため、 こ れは、 達成可能な
DDR 帯域幅の ス ト レ ス テ ス ト と みな さ れます。 こ の ト ラ フ ィ ッ ク は ワ ース ト ケース シナ リ オ を表 し てい ますが、 メ
モ リ が提供で き る 範囲を超えた、さ ら に高い帯域幅が リ ク エ ス ト さ れた場合に起き る バ ッ ク プ レ ッ シ ャ ーを可視化す
る よ う に実行す る こ と が重要です。
シス テム パフ ォ ーマ ン ス解析
UG1145 (v2015.1)
20152015
年4月
UG1145
(v2015.2)
年1 日
6 月 24 日
japan.xilinx.com
37
第 7 章 : ハイ パフ ォ ーマ ン ス ポー ト の評価
X-Ref Target - Figure 7-4
図 7‐4 : HP ポー ト で高帯域幅 ト ラ フ ィ ッ ク を モデル し た場合のパフ ォ ーマ ン ス結果のサマ リ
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 秒あ た り でい く ら かの変動が見 ら れ る 程度です。
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
japan.xilinx.com
24 日
38
第 7 章 : ハイ パフ ォ ーマ ン ス ポー ト の評価
X-Ref Target - Figure 7-5
図 7‐5 : BEEBS ベン チマー ク を実行 し た HP ポー ト の高帯域幅 ト ラ フ ィ ッ ク の書き込みパフ ォ ーマ ン ス結果
X-Ref Target - Figure 7-6
図 7‐6 : BEEBS ベン チマー ク を実行 し た HP ポー ト の高帯域幅 ト ラ フ ィ ッ ク の読み出 し パフ ォ ーマ ン ス結果
HP ポー ト の読み出 し ス ループ ッ ト お よ びレ イ テ ン シには、 行列乗算中のパフ ォーマ ン ス に も っ と 目立っ た低下が見
ら れ ます (図 7-6 を参照)。 ほかのすべてのテ ス ト 中は、 読み出 し 帯域幅は約 420MB/秒ですが、 メ モ リ を多用す る 行
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
japan.xilinx.com
24 日
39
第 7 章 : ハイ パフ ォ ーマ ン ス ポー ト の評価
列乗算の間は (1024KB のデー タ ア レ イ を使用)、 ス ループ ッ ト は約 340MB/秒に低下 し ま す。 図 7-6 に示す よ う に、
[Show/Hide Trace Tooltip] ボ タ ン
を使用 し て、 こ の事実を確認 し ます。 64 秒間おいて、 4 つの HP ポー ト の読み
出 し ス ループ ッ ト はすべて約 338MB/秒にな り ま す。 ス ループ ッ ト の こ の低下は レ イ テ ン シの増加 と 一致 し てお り 、
ど ち ら も DDR コ ン ト ロ ー ラ ーでの飽和に起因 し てい ます。
具体的な時点でのパフ ォーマ ン ス指標値を レ ポー ト す る には、[Trace Tooltip] ボ タ ン を使用す る こ と も で き ます。 ツー
ル ヒ ン ト が表示 さ れた ら 、 それを グ ラ フ内の任意点に移動 さ せ る こ と がで き 、 指定 さ れた測定値が表示 さ れます。 正
確な時点でのパフ ォーマ ン ス を指定す る のに非常に便利です。
X-Ref Target - Figure 7-7
図 7‐7 : さ ま ざ ま な HP ポー ト ト ラ フ ィ ッ ク での BEEBS ベン チマー クの相対的な ラ ン タ イ ム (デー タ ア レ イ サイ ズは
1024KB)
HP ト ラ フ ィ ッ ク が増加 し た影響は ソ フ ト ウ ェ ア パフ ォーマ ン ス で見 ら れます。 こ のパフ ォーマ ン ス の全体的な指標
は ラ ン タ イ ムです。 BEEBS ソ フ ト ウ ェ アに追加 さ れた測定を使用する 場合は (57 ページの 「ハー ド ウ ェ アの計測」 を
参照)、 1024KB のデー タ ア レ イ サ イ ズ を使用 し た 8 つのベンチマー ク の相対的な ラ ン タ イ ムが図 7-7 に表示 さ れ ま
す。 ト ラ フ ィ ッ ク のない各ベンチマー ク の ラ ン タ イ ムは、 1.0 に正規化 さ れます。 こ の大型ア レ イ には DDR へのア ク
セ ス が必要 と な る ため、 ソ フ ト ウ ェ ア ラ ン タ イ ムの増加は DDR 飽和に よ る も の と 考え ら れます。 行列乗算では、 ソ
フ ト ウ ェ エア ラ ン タ イ ム が最 も 長 く な り ます。 CRC (巡回冗長検査) アルゴ リ ズ ム も ラ ン タ イ ムに目立っ た影響を与
え ますが、 こ れは、 デー タ ア レ イ の メ モ リ 読み出 し 回数が増加 し た こ と と 、 CRC 多項式テーブルが原因であ る こ と
がほ と ん ど です。 その他のベンチマー ク は、 4 つの HP ポー ト すべてで高い スループ ッ ト の ト ラ フ ィ ッ ク があ っ て も 、
パフ ォーマ ン ス に最低限の影響 し か与え ません。
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
japan.xilinx.com
24 日
40
第 8章
DDR コ ン ト ロー ラ ー設定の評価
Zynq-7000 AP SoC デバ イ ス フ ァ ミ リ の場合、 DDR メ モ リ の帯域幅の割 り 当て を あ る 程度 コ ン ト ロ ールで き ます。 こ
れは、 オンチ ッ プ DDR コ ン ト ロ ー ラ ー (DDRC) で設定で き ます。 SDK 2014.4 よ り 、 SPM デザ イ ンの ク ロ ッ ク 周波数
お よ び DDRC 設定を変更で き る よ う にな っ てい ます。 こ の章では、 帯域幅は必ず し も 作成で き ませんが、 それを割 り
当て直す こ と がで き る と い う こ と を説明 し ます。
X-Ref Target - Figure 8-1
図 8‐1 : Zynq‐7000 AP SoC の DDR コ ン ト ロー ラ ー
まず、 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 メ モ リ コ ン ト ロ ー ラ ー」 の章を参照 し て く だ さ い。
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
japan.xilinx.com
24 日
41
第 8 章 : DDR コ ン ト ロー ラ ー設定の評価
X-Ref Target - Figure 8-2
図 8‐2 : デ フ ォル ト FSBL コ ン フ ィ ギ ュ レーシ ョ ン設定 (SPM デザイ ン)
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] で説明 さ れてい ます。
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
japan.xilinx.com
24 日
42
第 8 章 : DDR コ ン ト ロー ラ ー設定の評価
デ フ ォル ト の DDRC 設定
ベース ラ イ ン結果は、 42 ページの図 8-2に示す よ う に、 デフ ォ ル ト の FSBL 設定を使用 し て、 HP のみの ト ラ フ ィ ッ ク
を実行 し て作成 さ れてい ます。PL ト ラ フ ィ ッ ク は 37 ページの図 7-3に示す高帯域幅の HP ト ラ フ ィ ッ ク ですが、 その
期間は 10 秒に設定 さ れてい ます。ま た、ソ フ ト ウ ェ ア アプ リ ケーシ ョ ンは実行 さ れてい ません。[Debug Configuration]
を変更 し て コ ン フ ィ ギ ュ レーシ ョ ンで き ます。[Application] タ ブ を ク リ ッ ク し 、[Download Applications] チ ェ ッ ク ボ ッ
ク ス を オ フ に し ます。
X-Ref Target - Figure 8-3
図 8‐3 : デ フ ォル ト DDR コ ン フ ィ ギ ュ レーシ ョ ン設定を使用 し た HP パフ ォ ーマ ン ス
こ の ト ラ フ ィ ッ ク シナ リ オは 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 ポー ト か ら の高帯域幅の読み出
し と 書 き 込みが混ざ っ てい る こ と を考え る と 、 こ れは非常に よ いパフ ォーマ ン ス です。
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
japan.xilinx.com
24 日
43
第 8 章 : DDR コ ン ト ロー ラ ー設定の評価
変更 し た DDRC 設定
DDRC 設定を変更 し 、上記の HP のみのテ ス ト を再実行 し て、パフ ォーマ ン ス結果を比較する こ と がで き ます。DDRC
設定を こ の ス ト レ ス テ ス ト 用に変更す る のは重要なのですが、 ユーザー デザ イ ンにはその変更が好ま し く ない場合
も あ る ので注意 し て く だ さ い。実際、デフ ォ ル ト の DDRC 設定を使用す る と ほ と ん ど のデザ イ ン で目指すパフ ォーマ
ン ス を達成す る こ と がで き ます。
X-Ref Target - Figure 8-4
図 8‐4 : 変更 し た FSBL コ ン フ ィ ギ ュ レーシ ョ ン設定 (SPM デザイ ン)
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 が目指す優先度で受信 さ れ る よ う にす る ための重要な ス テ ッ プです。
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
japan.xilinx.com
24 日
44
第 8 章 : DDR コ ン ト ロー ラ ー設定の評価
X-Ref Target - Figure 8-5
図 8‐5 : 変更 さ れた DDR コ ン ト ロー ラ ー設定を使用 し た HP パフ ォ ーマ ン ス
図 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 に割 り 当て直 さ れます。 一方で合計帯域幅は比較的一定 し て
い ます。
X-Ref Target - Figure 8-6
図 8‐6 : 変更 さ れた DDR コ ン ト ロー ラ ー設定を使用 し た HP ポー ト の読み出 し レ イ テ ン シ
ま た、 別の確認方法が、 図 8-6 にあ る 読み出 し レ イ テ ン シの図に示 さ れてい ます。 HP0 お よ び HP1 での読み出 し ト ラ
フ ィ ッ ク に高い優先順位を与え る ため、 DDRC が コ ン フ ィ ギ ュ レーシ ョ ン さ れてい る ため、 こ れ ら のポー ト の レ イ テ
ン シは比較的低 く な っ てい ます。 つま り 、 こ れ ら のポー ト の読み出 し リ ク エ ス ト は、 高い優先順位で DDRC に よ っ て
処理 さ れてい ます。 一方で、 その他の HP ポー ト 、 HP2 と HP3 の読み出 し リ ク エ ス ト は低い優先順位で処理 さ れてい
る ため、 その レ イ テ ン シは も っ と 高 く な り ます。 こ のため、 HP0 と HP1 の スループ ッ ト が高 く な り 、 HP2 と HP3 の
スループ ッ ト は低 く な り ます。
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
japan.xilinx.com
24 日
45
第 8 章 : DDR コ ン ト ロー ラ ー設定の評価
オ ン チ ッ プ メ モ リ の使用
すべての HP ポー ト の書 き 込み と 読み出 し 両方の ト ラ フ ィ ッ ク に対 し 、 512MB/秒を得 る と い う のがデザ イ ン要件に
な っ てい る ケース を考え てみま し ょ う 。DDRC 帯域幅を増加 さ せ る ためほかの メ モ リ を利用す る にはど う し た ら よ い
で し ょ う か。 帯域幅合計は 8 * 512 = 4096MB/秒、 ま たは DDR の理論上の最大スループ ッ ト の 96.0% が必要にな り ま
す。 通常の DDR コ ン ト ロ ー ラ ーや、 書 き 込み と 読み出 し を混合 さ せた メ モ リ を使っ て も こ れを達成す る こ と はで き
な い の ですが、 追加デー タ バ ッ フ ァ リ ン グ 用に オ ン チ ッ プ メ モ リ (OCM) を 利用す る こ と が可能です。 こ れは、
Zynq-7000 AP SoC PS にあ る 、 優れた、 低い レ イ テ ン シの ス ク ラ ッ チ パ ッ ド を提供す る 256KB メ モ リ と は別です。
X-Ref Target - Figure 8-7
図 8‐7 : DDR と OCM の両方を使用 し 、 HP ポー ト の高帯域幅 ト ラ フ ィ ッ ク を モデルする ATG ト ラ フ ィ ッ ク コ ン フ ィ
ギ ュ レーシ ョ ン
図 8-7 は OCM を使用す る あ る ト ラ フ ィ ッ ク シナ リ オ を示 し てい ます。 こ のシナ リ オ を、 37 ページの図 7-3にあ る 元
のシナ リ オ と 比較 し て く だ さ い。 リ ク エ ス ト さ れた スループ ッ ト は、 すべての操作お よ び タ イ プに対 し て同 じ ま ま で
すが、 HP2 お よ び HP3 の ト ラ フ ィ ッ ク は OCM を使用 し てい ます。
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
japan.xilinx.com
24 日
46
第 8 章 : DDR コ ン ト ロー ラ ー設定の評価
X-Ref Target - Figure 8-8
図 8‐8 : DDR と OCM の両方を使用 し た HP ポー ト の高帯域幅 ト ラ フ ィ ッ ク のパフ ォ ーマ ン ス サマ リ
その よ う な ト ラ フ ィ ッ ク シナ リ オの結果は図 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 で提供 さ れてい る パフ ォーマ ン ス解析機能を利用す る こ と で、 こ う し たパフ ォーマ ン ス結果をすばや く 、 視覚的
に検証す る こ と がで き ます。
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
japan.xilinx.com
24 日
47
第 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 : メ モ リ ス ト ラ イ ド ベン チマー ク ソ フ ト ウ ェ ア を使用 し たア プ リ ケーシ ョ ン設定
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
japan.xilinx.com
24 日
48
第 9 章 : メ モ リ 階層および ACP の評価
図 9-1 は、 メ モ リ ス ト ラ イ ド ベンチマー ク ソ フ ト ウ ェ ア実行フ ァ イ ルを使用 し て SDK で こ れを定義す る 方法を示 し
てい ます (15 ページの 「SPM ソ フ ト ウ ェ ア」 を参照)。 こ の ソ フ ト ウ ェ アは、 帯域幅お よ び平均レ イ テ ン シ を計算す
る よ う に設定 さ れてい ます (56 ページの 「 ソ フ ト ウ ェ アの計測」 を参照)。
表 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
プ ロ グ ラ マブル ロ ジ ッ ク (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 の使用率お よ びその使用期間を確認で き ます。
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
japan.xilinx.com
24 日
49
第 9 章 : メ モ リ 階層および ACP の評価
X-Ref Target - Figure 9-2
図 9‐2 : メ モ リ ス ト ラ イ ド ベン チマー クの PS パフ ォ ーマ ン ス グ ラ フ
図 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を参照)。
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
japan.xilinx.com
24 日
50
第 9 章 : メ モ リ 階層および ACP の評価
デー タ サイ ズおよび局所性
メ モ リ 階層のパ フ ォ ーマ ン ス を よ り 視覚的確認す る ため、 メ モ リ ス ト ラ イ ド テ ス ト で使用 さ れたサ イ ズの範囲を
1KB か ら 4096KB ま でに し ま し た。 こ れで、 デー タ サ イ ズお よ びその局所性が、 CPU で達成 さ れ る 帯域幅 と レ イ テ
ン シに ど の よ う に影響す る か をはっ き り と 確認で き る よ う にな り ます。
X-Ref Target - Figure 9-3
図 9‐3 : メ モ リ ス ト ラ イ ド テ ス ト で達成 し た CPU メ モ リ 帯域幅
X-Ref Target - Figure 9-4
図 9‐4 : メ モ リ ス ト ラ イ ド テ ス ト で達成 し た CPU メ モ リ ア ク セス レ イ テ ン シ
51 ページの図 9-3は、 メ モ リ ス ト ラ イ ド テ ス ト 中に CPU0 で達成 さ れた メ モ リ 帯域幅を示 し てい ます。はっ き り と 説
明で き る よ う に、 ラ ン ダ ム帯域幅 ( リ アル タ イ ム) テ ス ト は、 こ のグ ラ フ には表示 さ れてい ません。 サ イ ズが大 き く な
る と 、 L1 と L2 デー タ キ ャ ッ シ ュ の境界で大 き く 変動 し てい ま す。 こ れはサ イ ズが前のキ ャ ッ シ ュ には収ま ら な く
な っ て し ま っ たか ら です。 図 9-4 も 、 メ モ リ ス ト ラ イ ド テ ス ト 中に CPU0 で達成 さ れ る 平均 メ モ リ ア ク セ ス レ イ テ
ン シに対 し 、 同 じ よ う な変動があ る こ と を示 し てい ます。 し か し 、 サ イ ズが大 き く な る と 帯域幅が低 く な る 一方で、
レ イ テ ン シは大 き く 増加 し てい ます。
シス テム パフ ォ ーマ ン ス解析
UG1145 (v2015.1)
20152015
年4月
UG1145
(v2015.2)
年1 日
6 月 24 日
japan.xilinx.com
51
第 9 章 : メ モ リ 階層および ACP の評価
共有 L2 キ ャ ッ シ ュ
CPU と メ モ リ と の間のベース ラ イ ン パフ ォーマ ン ス を測 る こ と がで き たので、 次に、 ア ク セ ラ レー タ コ ヒ ーレ ン シ
ポー ト (ACP) に ト ラ フ ィ ッ ク を追加 し て、 シ ス テ ム パフ ォーマ ン スへのその影響を解析 し ます。 メ モ リ ス ト ラ イ ド
ソ フ ト ウ ェ ア (15 ページの 「SPM ソ フ ト ウ ェ ア」 を参照) は、 CPU0 で ま た実行 さ れてい ますが、 今回は ト ラ フ ィ ッ
ク が ACP に追加 さ れてい ます。 L2 キ ャ ッ シ ュ は CPU と ACP で共有 さ れてい る ため、 その メ モ リ であ る 程度の競合
が起 き る こ と が予測 さ れます。
X-Ref Target - Figure 9-5
図 9‐5 : ACP での ト ラ フ ィ ッ ク を モデ リ ングする ATG コ ン フ ィ ギ ュ レーシ ョ ン
図 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 キ ャ ッ シ ュ がサポー ト で き る 値 よ り 高い場合は、 バ ッ ク プ レ ッ シ ャ ー と い う 形で競合が起 き ます。
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
japan.xilinx.com
24 日
52
第 9 章 : メ モ リ 階層および ACP の評価
X-Ref Target - Figure 9-6
図 9‐6 : メ モ リ ス ト ラ イ ド および ACP ト ラ フ ィ ッ ク な し のパフ ォ ーマ ン ス サマ リ
X-Ref Target - Figure 9-7
図 9‐7 : メ モ リ ス ト ラ イ ド および 752 MB/秒を リ ク エス ト する 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 つの指標の値が高 く な る と 、 一般的に メ モ リ 書 き 込み と デー
シス テム パフ ォ ーマ ン ス解析
UG1145 (v2015.1)
20152015
年4月
UG1145
(v2015.2)
年1 日
6 月 24 日
japan.xilinx.com
53
第 9 章 : メ モ リ 階層および ACP の評価
タ キ ャ ッ シ ュ 補充で CPU が ス ト ールす る こ と を示 し ます。 その理由は、 ACP ト ラ フ ィ ッ ク が L2 キ ャ ッ シ ュ の帯域
幅をかな り 使っ て し ま っ てい る ために、 L2 キ ャ ッ シ ュ で競合が起 き る か ら です。
X-Ref Target - Figure 9-8
図 9‐8 : レ イ テ ン シへの影響を示す SDK での ACP パフ ォ ーマ ン ス結果
図 9-8 は、こ の競合が ACP の書 き 込みお よ び読み出 し のパフ ォーマ ン ス に ど の よ う な影響を与え てい る のか を示 し て
い ます。 ACP 書 き 込みパフ ォーマ ン スへの影響は最小限で、 さ ま ざ ま な ソ フ ト ウ ェ ア ベンチマー ク を試 し てみて も
レ イ テ ン シにわずかな増加が見 ら れ る だけです。 し か し 、平均読み出 し レ イ テ ン シは、 メ モ リ ス ト ラ イ ド ソ フ ト ウ ェ
アの影響を明 ら かに受けていて、 ベンチマー ク のシーケ ン ス がその周期に反映 さ れてい ます。 ACP スループ ッ ト も 影
響を受けていて、 約 640MB/秒の ワ ー ス ト ケース値に低下 し てい ます。 リ ク エ ス ト さ れた帯域幅 752MB/秒は、 一般
的なデザ イ ンにはおそ ら く 値が高すぎ て現実的ではあ り ませんが、 シ ス テ ムの ス ト レ ス テ ス ト には効果があ り ます。
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) で達成 さ れたパフ ォ ーマ ン ス
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
japan.xilinx.com
24 日
54
第 9 章 : メ モ リ 階層および ACP の評価
X-Ref Target - Figure 9-11
図 9‐11 : CPU0 vs ACP 帯域幅 (サイ ズ = 1024 KB) で達成 さ れたパフ ォ ーマ ン ス
リ ク エ ス ト さ れた 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% で し た。
シス テム パフ ォ ーマ ン ス解析
UG1145 (v2015.1)
20152015
年4月
UG1145
(v2015.2)
年1 日
6 月 24 日
japan.xilinx.com
55
第 10 章
カ ス タ ム タ ーゲ ッ ト の使用
ザ イ リ ン ク ス ソ フ ト ウ ェ ア開発キ ッ ト (SDK) のシ ス テ ム パフ ォーマ ン ス解析ツールボ ッ ク ス をデザ イ ンで使用す る
には、 ソ フ ト ウ ェ アの計測、 ハー ド ウ ェ アの計測、 そ し て SDK 内でのカ ス タ ム タ ーゲ ッ ト の監視 と い う 3 つの重要
な点を考慮す る 必要があ り ます。
ソ フ ト ウ ェ アの計測
ソ フ ト ウ ェ ア ラ ン タ イ ム、 帯域幅、 平均レ イ テ ン シは、 xtime_l.h ヘ ッ ダーで定義 さ れてい る ス タ ン ド ア ロ ン の BSP
で使用で き る 簡単な計測を使用 し ます。 各ベンチマー ク の前後に、 XTime_GetTime() が挿入 さ れてい ます (57 ページ
の図 10-1を参照)。 2 つの Xtime 値の差は、 xtime_l.h にあ る COUNTS_PER_SECOND 値を使用 し て秒 (ま たは ミ リ 秒)
に変換 さ れてい ます。 ベンチマー ク 実行中に送信 さ れ る デー タ 量はわか っ てい る ため、 その特定ベンチマー ク を実行
し てい る 間に達成 さ れた帯域幅お よ び平均レ イ テ ン シは計算す る こ と も で き ます。
#include
#include
#include
#include
<stdlib.h>
<stdio.h>
<unistd.h>
"xtime_l.h"
// XTime_GetTime()
// Macros
#define TIMEDIFF(t1,t2) (t2 - t1)
#define MILLISECONDS(t) (1000.0 * t / COUNTS_PER_SECOND)
// Globals
XTime start, end;
// Start a test
void startTest() {
XTime_GetTime(&start);
}
// End a test
void 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 test
void runSomething(int time) {
sleep(time);
}
シス テム パフ ォ ーマ ン ス解析
UG1145 (v2015.1)
20152015
年4月
UG1145
(v2015.2)
年1 日
6 月 24 日
japan.xilinx.com
56
第 10 章 : カ ス タ ム タ ーゲ ッ ト の使用
int main(void) {
startTest();
runSomething(1);
endTest();
startTest();
runSomething(2);
endTest();
return 0;
}
X-Ref Target - Figure 10-1
図 10‐1 : サン プルの C/C++ ソ フ ト ウ ェ ア コ ー ド
ハー ド ウ ェ アの計測
SDK でパフ ォーマ ン ス解析機能を使用 し たい場合は、プ ロ グ ラ マブル ロ ジ ッ ク (PL) デザ イ ンに AXI パフ ォーマ ン ス
モニ タ ー (APM) を含め る 必要があ り ます。 APM は既に SPM (System Performance Modeling) の固定ビ ッ ト ス ト リ ーム
デザ イ ンに含まれてい る こ と に注意 し て く だ さ い (15 ページの 「SPM ソ フ ト ウ ェ ア」 を参照)。
X-Ref Target - Figure 10-2
図 10‐2 : AXI パフ ォ ーマ ン スモニ タ ー –イ ン ス タ ン ス と カ ス タ マ イ ズ
図 10-2 は、Vivado® Design Suite の IP イ ン テ グ レー タ ーのブ ロ ッ ク 図にお よ びその コ ン フ ィ ギ ュ レーシ ョ ン パネルに
APM の イ ン ス タ ン ス が ど の よ う に表示 さ れ る かを示 し てい ます。Vivado IP イ ン テ グ レー タ ーに こ れを追加す る には、
APM のあ る デザ イ ン を設定す る ための手順に従っ て く だ さ い。
1.
IP イ ン テ グ レー タ ーのブ ロ ッ ク 図で、 [Add IP] ボ タ ン
2.
「AXI Performance Monitor」 を検索 し て、 それを ダブル ク リ ッ ク し ます。
3.
APM を ダブル ク リ ッ ク し て [Re-Customize IP] ダ イ ア ロ グ ボ ッ ク ス を開 き ます。 こ のダ イ ア ロ グ ボ ッ ク ス では次
のオプシ ョ ン を設定で き ます。
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
japan.xilinx.com
24 日
を ク リ ッ ク し ます。
57
第 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 に イ ン ポー ト さ れます。
X-Ref Target - Figure 10-3
図 10‐3 : デバ ッ グ コ ン フ ィ ギ ュ レーシ ョ ン での タ ーゲ ッ ト 設定 (イ ンポー ト さ れたハー ド ウ ェ ア プ ラ ッ ト フ ォ ーム仕
様を使用)
Vivado でデザ イ ン が定義 さ れてい る な ら 、 そのデザ イ ンに基づいてハー ド ウ ェ ア プ ラ ッ ト フ ォ ーム仕様を作成す る
こ と をお勧め し ます。 その後、 その仕様に基づいてパフ ォーマ ン ス解析を実行で き ます。 手順は次の と お り です。
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
japan.xilinx.com
24 日
58
第 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 カー ド ブー ト を使用す る ため、シ
ス テ ムは既に リ セ ッ ト お よ び コ ン フ ィ ギ ュ レーシ ョ ン さ れてい ます。
X-Ref Target - Figure 10-4
図 10‐4 : デバ ッ グ コ ン フ ィ ギ ュ レーシ ョ ンの タ ーゲ ッ ト 設定 (ハー ド ウ ェ ア プ ラ ッ ト フ ォ ームな し )
何 ら かの理由でハー ド ウ ェ アプ ラ ッ ト フ ォーム仕様を作成で き ない場合は、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] を実行 し ます。
シス テム パフ ォ ーマ ン ス解析
UG1145 (v2015.1)
20152015
年4月
UG1145
(v2015.2)
年1 日
6 月 24 日
japan.xilinx.com
59
第 10 章 : カ ス タ ム タ ーゲ ッ ト の使用
6.
b.
[APM Frequency (MHz)] をデザ イ ンの APM コ アの s_axi_aclk に接続 さ れてい る ク ロ ッ ク の周波数に設定 し ま
す。
c.
[APM Base Address] をデザ イ ンの APM の基本ア ド レ ス に設定 し ます。
パフ ォーマ ン ス解析のパースペ ク テ ィ ブ を開 く には、 [Debug] を ク リ ッ ク し ます。
59 ページの図 10-4 は第 11 章 「徹底パフ ォーマ ン ス解析」 で使用 さ れてい る タ ーゲ ッ ト 設定を示 し てい ます。 こ れは
『Zynq-7000 All Programmable SoC ZC702 基本 タ ーゲ ッ ト リ フ ァ レ ン ス デザ イ ン』 (UG925) [参照 3] で説明 さ れてい る
Zynq-7000 AP SoC 基本 タ ーゲ ッ ト リ フ ァ レ ン ス デザ イ ン (TRD) に接続 し 、 こ れを監視す る ための も のです。 APM
周波数は 50MHz で、 APM 基本ア ド レ ス は 0x400F0000 と い う 16 進数に設定 さ れてい る こ と に注意 し て く だ さ い。
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
japan.xilinx.com
24 日
60
第 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 メ モ リ には複数のビデオ フ レームが格納 さ れ、 高い帯域幅の書 き 込みお よ び読み出 し ト ラ フ ィ ッ ク のチ ャ ネル
が複数作成 さ れます。
X-Ref Target - Figure 11-1
図 11‐1 : Zynq‐7000 AP SoC ベースの TRD ハー ド ウ ェ ア ブ ロ ッ ク図
こ こ では、 こ のデザ イ ンは計画段階にあ っ て、 ま だ完成 し ていない も の と し ます。 SPM を使用 し て こ のデザ イ ン を モ
デルす る にはど う し た ら よ いで し ょ う か。 まず、 シ ス テ ムの帯域幅要件を査定 し ます。 こ れには、 まずデザ イ ンの通
信チ ャ ネルすべての予期帯域幅を計算 し 、 次に、 PS-PL イ ン タ ーフ ェ イ ス を決め ます。 こ れは AXI ト ラ フ ィ ッ ク なの
で、 ト ラ ンザ ク シ ョ ン ご と のサ イ ク ル数、 そ し てデー タ の局所性 も 重要です。
帯域幅を計算す る には、 入力 さ れ、 処理 さ れてい る デー タ の タ イ プ を知っ てお く 必要があ り 、 それをデ ィ ス プ レ イ に
出力 し ます。 61 ページの図 11-1 に示す よ う に、 TRD の入力デー タ は、 CbCr 4:2:2 のデー タ フ ォーマ ッ ト で 1080p/60
のビデオ、 ま たは 16ビ ッ ト /ピ ク セルを出力する HDMI ソ ース です。 こ のデザ イ ンには、 フ ィ ル タ ーを介 し た ビデオ
と 、 コ ン ト ロ ールお よ びグ ラ フ用の GUI レ イ ヤーを表示 さ せ る ため、 出力デ ィ ス プ レ イ に複数の ビデオ レ イ ヤーを
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
japan.xilinx.com
24 日
61
第 11 章 : 徹底パフ ォ ーマ ン ス解析
オーバーレ イ さ せ る と い う 要件 も あ り ます。 GUI レ イ ヤーは 1920 x 300、 RGB 4:4:4 フ ォーマ ッ ト で、 ほかの レ イ ヤー
はすべて フル フ レーム、 YCbCr 4:2:2 フ ォーマ ッ ト です。 ク ロ ッ ク 周波数は ま だわか ら な く て も 、 デー タ ト ラ フ ィ ッ
ク の必須帯域幅を使用 し て、 シ ス テ ム を モデルす る こ と がで き ます。
表 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
合計 ト ラ フ ィ ッ ク
なし
HP0/HP2
書き込み/読み出 し
1133.4
26.5
表 11-1 は Zynq-7000 AP SoC ベー ス の TRD の帯域幅査定の ま と めです。 各ビデオ チ ャ ネルの計算 さ れた帯域幅は、
DDR 帯域幅のパーセ ン テージ と と も に リ ス ト さ れてい ます。 こ のデザ イ ン仕様では、 HP0 お よ び HP2 が使用 さ れて
い ます。 こ の 2 つでは、 DDR コ ン ト ロ ー ラ ーで異な る ポー ト が使用 さ れ る か ら です。 も ち ろ ん、 ほかの コ ネ ク テ ィ
ビ テ ィ のモデ リ ン グ も 可能です。
シス テム パフ ォ ーマ ン ス解析
UG1145 (v2015.1)
20152015
年4月
UG1145
(v2015.2)
年1 日
6 月 24 日
japan.xilinx.com
62
第 11 章 : 徹底パフ ォ ーマ ン ス解析
デザイ ンのモデル
帯域幅要件が確認で き たので、 次は SPM デザ イ ン を使用 し てモデ リ ン グ を実行 し ます。 必要 と い う わけではあ り ま
せんが、 プ ロ セ ッ シ ン グ シ ス テ ム (PS) ト ラ フ ィ ッ ク のモデルには、 ソ フ ト ウ ェ ア アプ リ ケーシ ョ ンの使用を推奨 し
ます。 こ こ では、 PS で動 き の激 し いア ク テ ィ ビ テ ィ を モデルす る ため、 メ モ リ ス ト ラ イ ド ソ フ ト ウ ェ ア アプ リ ケー
シ ョ ン を使用 し ます。 実際のデザ イ ンでは実行 さ れ る ソ フ ト ウ ェ アではあ り ませんが、 ア ク テ ィ ビ テ ィ と メ モ リ 帯域
幅に関 し て、 ワース ト ケース のテ ス ト シナ リ オ を提供 し ます。
X-Ref Target - Figure 11-2
図 11‐2 : Zynq‐7000 AP SoC ベースの TRD の ト ラ フ ィ ッ ク を モデルする ための ATG コ ン フ ィ ギ ュ レーシ ョ ン
図 11-2 は、 SPM を使用 し て TRD の ト ラ フ ィ ッ ク を モデルす る 方法の 1 つを示 し てい ます。 ビデオ フ レームは メ モ
リ の別の部分に格納 さ れ る も の と し 、 [Address Start] の値は ddr0 お よ び ddr2 に設定 さ れてい ま す。 さ ら に、 ビデオ
デー タ は通常連続す る デー タ ラ イ ン と し て格納 さ れ る ので、 [Address Next] の値は [increment] に設定 さ れてい ます。
[Beats/tranx] の値は、 ソ ーベル フ ィ ル タ ーへの入/出力ビデオ、 そ し てマルチ レ イ ヤー ビデオ出力を モデルす る ため
に、 それぞれ 8 お よ び 16 が選択 さ れてい ます。 [Tranx interval] は、 62 ページの表 11-1に ま と め ら れてい る よ う に、 そ
れぞれのポー ト お よ び タ イ プに対 し て求め ら れ る スループ ッ ト に一致す る よ う に指定 さ れてい ます。
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
japan.xilinx.com
24 日
63
第 11 章 : 徹底パフ ォ ーマ ン ス解析
X-Ref Target - Figure 11-3
図 11‐3 : Zynq‐7000 AP SoC ベースの TRD を モデ リ ン グ し たパフ ォ ーマ ン ス結果
ATG は、 指定 さ れた ト ラ フ ィ ッ ク で コ ン フ ィ ギ ュ レーシ ョ ン さ れ、 ZC702 ボー ド で実行 さ れてい ます。 図 11-3 は、 こ
の実行後の結果を ま と めた も のです。 HP0 お よ び HP2 の両方で、 こ のデザ イ ン に必要な書 き 込みお よ び読み出 し の
帯域幅を達成で き てい ます。 CPU パフ ォーマ ン ス結果は メ モ リ ス ト ラ イ ド ベンチマー ク の も ので、 実際の TRD アプ
リ ケーシ ョ ンではあ り ませんが、 こ のア ク テ ィ ビ テ ィ を も と に予測す る こ と はで き ます。
X-Ref Target - Figure 11-4
図 11‐4 : Zynq‐7000 AP SoC ベースの TRD を モデ リ ング し た書き込みおよび読み出 し のパフ ォ ーマ ン ス
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
japan.xilinx.com
24 日
64
第 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 では既に検証が行われてい ます。
X-Ref Target - Figure 11-5
図 11‐5 : Zynq‐7000 AP SoC ベースの TRD の Vivado IP イ ン テグレー タ ーのブ ロ ッ ク図
図 11-5 は、 Vivado® Design Suite の IP イ ン テ グ レー タ ーでブ ロ ッ ク 図で定義 さ れてい る TRD を示 し てい ます。 APM
イ ン ス タ ン ス がハ イ ラ イ ト さ れてい ます。 APM はプ ロ フ ァ イ ル モー ド で コ ン フ ィ ギ ュ レー ト さ れていて、 パフ ォー
マ ン ス結果が正 し く SDK に レ ポー ト さ れ る よ う にな っ てい ます。 HP0 は AXI パフ ォーマ ン ス モニ タ ー (APM) の ス
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
japan.xilinx.com
24 日
65
第 11 章 : 徹底パフ ォ ーマ ン ス解析
ロ ッ ト 0 に接続 さ れていて、 HP2 は ス ロ ッ ト 2 に接続 さ れてい ます。 ス ロ ッ ト 1 はオープンの ま ま で (HP1 が使用 さ
れていないため)、 [Number of Monitor interfaces] は 3 に設定 さ れてい ます。
X-Ref Target - Figure 11-6
図 11‐6 : ZC702 ボー ド を使用 し た Zynq‐7000 AP SoC ベースの TRD の接続図
図 11-6 は、 デモ を実行す る ための ZC702 ボー ド への接続図です。 ボー ド は図にあ る よ う に接続 さ れ、 デザ イ ンは SD
カー ド か ら ブー ト さ れます。
結果は67 ページの図 11-7 の表に ま と め ら れていて、その図は67 ページの図 11-8 にあ り ます。プ ロ グ ラ マブル ロ ジ ッ
ク (PL) のパフ ォーマ ン ス結果は、 直接、 64 ページの図 11-3 にあ る SPM モデルか ら 収集 さ れた値 と 比較で き ます。 モ
デルか ら の書 き 込みお よ び読み出 し スループ ッ ト はすべて実際の結果の 2.0% 内にすべて収ま っ てい ます。 書 き 込み
レ イ テ ン シは実際のデザ イ ンの 1 サ イ ク ル内にあ り 、モデルの平均読み出 し レ イ テ ン シは実際のデザ イ ンの 16.0% 内
です。 実際のデザ イ ンは、 も と も と SPM よ り も バース ト 性が高い よ う ですが、 平均パフ ォ ーマ ン ス値は十分に正確
で、 TRD でパフ ォーマ ン ス目標が満たす こ と がで き る で し ょ う 。
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
japan.xilinx.com
24 日
66
第 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 の書き込みおよび読み出 し のパフ ォ ーマ ン ス
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
japan.xilinx.com
24 日
67
第 11 章 : 徹底パフ ォ ーマ ン ス解析
詳細な解析
2 番目の TRD の実行は、 TRD の さ ま ざ ま な ラ ン タ イ ム設定のパフ ォーマ ン スへの影響を調べ る ために、 実行 さ れて
い ます。 表 11-2 は、 こ れ ら すべて設定、 そ し て SDK で得 ら れたその設定に対応 し たパフ ォーマ ン ス結果を ま と めた
も のです。 時間は こ れ ら の設定がテ ス ト 実行中に使用 さ れた と き で、 お よ その時間です (69 ページの図 11-9 お よ び
69 ページの図 11-10 を参照)。表 10 の最終行は、64 ページの図 11-3でモデ リ ン グ さ れた ト ラ フ ィ ッ ク シナ リ オ と 、図
55 にあ る 実際のデザ イ ン を使用 し た実行に対応 し てい ます。
表 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
表 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 つの大 き な利点が
あ り ます。
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
japan.xilinx.com
24 日
68
第 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 パフ ォ ーマ ン ス グ ラ フ
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
japan.xilinx.com
24 日
69
付録 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 コ ン
ト ロ ー ラ ーに競合が発生 し ます。 こ の競合 と 、 その影響を把握 し てお く と 、 非常に役立ち ます。
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
japan.xilinx.com
24 日
70
付録 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 ポー ト で帯域幅
を最大限にす る ため)。
シス テム パフ ォ ーマ ン ス解析
UG1145 (v2015.1)
20152015
年4月
UG1145
(v2015.2)
年1 日
6 月 24 日
japan.xilinx.com
71
付録 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)
シス テム パフ ォ ーマ ン ス解析
UG1145
20152015
年4月
UG1145(v2015.1)
(v2015.2)
年1 日
6月
japan.xilinx.com
24 日
72
付録 B : その他のソ ースおよび法的通知
サー ド パーテ ィ の参考文献
4.
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
5.
David A. Patterson、John L. Hennessy 共著、『Computer Organization & Design: The Hardware/Software Interface』 (Morgan
Kaufman 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、 お よ び こ の文書に含ま れ る
その他の指定 さ れたブ ラ ン ド は、 米国お よ びその他各国のザ イ リ ン ク ス社の商標です。 すべてのその他の商標は、 それぞれの保有
者に帰属 し ます。
こ の資料に関す る フ ィ ー ド バ ッ ク お よ び リ ン ク な ど の問題につ き ま し ては、 jpn_trans_feedback@xilinx.com ま で、 ま たは各ページの
右下にあ る [フ ィ ー ド バ ッ ク 送信] ボ タ ン を ク リ ッ ク す る と 表示 さ れ る フ ォ ームか ら お知 ら せ く だ さ い。 フ ィ ー ド バ ッ ク は日本語で
入力可能です。 いただ き ま し た ご意見を参考に早急に対応 さ せていただ き ます。 なお、 こ の メ ール ア ド レ スへのお問い合わせは受
け付けてお り ません。 あ ら か じ めご了承 く だ さ い。
シス テム パフ ォ ーマ ン ス解析
UG1145 (v2015.1)
20152015
年4月
UG1145
(v2015.2)
年1 日
6 月 24 日
japan.xilinx.com
73