ザイ リ ン ク ス ソ フ ト ウ ェ ア 開発キ ッ ト (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 &RU6LJKW0XOWL&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
© Copyright 2024 Paperzz