...

日本語版 - Xilinx

by user

on
Category: Documents
10

views

Report

Comments

Transcript

日本語版 - Xilinx
ア プ リ ケーシ ョ ン ノ ー ト : Zynq-7000 AP SoC
All Programmable SoC のシステム性能解析
XAPP1219 (v1.0) 2014 年 12 月 11 日
著者 : Forrest Pickett
概要
こ のアプ リ ケーシ ョ ン ノ ー ト では、 Zynq-7000 All Programmable (AP) SoC の性能を評価、 測定、 お よ びモデル化す る ため
に必要な情報を提供 し ます。 サンプル デザ イ ン を用いて、 Zynq-7000 デバ イ ス のシ ス テ ム性能を さ ま ざ ま な側面か ら 説明
し ます。 こ のデザ イ ンは、 Zynq-7000 アーキ テ ク チ ャ のプ ロ グ ラ マブル ロ ジ ッ ク (PL) と プ ロ セ ッ シ ン グ シ ス テ ム間の通
信に焦点を当ててい ます。 ま た、 こ のデザ イ ン を利用 し て、 シ ス テ ム を モデル化 し 、 Zynq-7000 AP SoC が特定シ ス テ ムの
性能要件を満たすか ど う か を判断で き ます。
こ のアプ リ ケーシ ョ ン ノ ー ト に付属す る デザ イ ンは、SDK で提供 さ れ る SPM (System Performance Modeling) プ ロ ジ ェ ク ト
を適用 し てい ます。 詳細は、 『SDK ユーザー ガ イ ド : シ ス テ ム性能解析』 (UG1145) [参照 1] を参照 し て く だ さ い。 SPM プ
ロ ジ ェ ク ト は、 実際の タ ーゲ ッ ト ハー ド ウ ェ アで実行 さ れ、 5 つの AXI ト ラ フ ィ ッ ク ジ ェ ネ レー タ ーを備え た固定ビ ッ
ト ス ト リ ーム を含みます。 こ れ ら の ト ラ フ ィ ッ ク ジ ェ ネ レー タ ーは コ ン フ ィ ギ ュ レーシ ョ ン可能な コ アであ り 、 プ ロ グ ラ
マブル ロ ジ ッ ク (PL) の ト ラ フ ィ ッ ク ア ク テ ィ ビ テ ィ を モデル化す る ために SDK で使用 さ れ ます。 ソ フ ト ウ ェ ア アプ リ
ケーシ ョ ン も プ ロ セ ッ シ ン グ シ ス テ ム (PS) で同時に実行可能であ り 、 ユーザーはシ ス テ ム コ ン フ ィ ギ ュ レーシ ョ ン パ ラ
メ ー タ ーを指定で き ま す。 ユーザーが SPM プ ロ ジ ェ ク ト を実行 し た後、 アプ リ ケーシ ョ ン を よ り 正確に反映 さ せ る ため
に、 こ のアプ リ ケーシ ョ ン ノ ー ト のデザ イ ン を使用で き ます。
は じ めに
こ のアプ リ ケーシ ョ ン ノ ー ト は、 主に次の 3 つのセ ク シ ョ ンで構成 さ れてい ます。
•
最初のセ ク シ ョ ンでは、 Zynq-7000 AP SoC のシ ス テ ム性能について説明 し てい ます。
•
2 番目のセ ク シ ョ ンでは、 次の方法について説明 し てい ます。
•
°
PL に実装す る デザ イ ンのシ ス テ ム モデルを実行 し て アプ リ ケーシ ョ ン をエ ミ ュ レー ト す る 。
°
SDK ( ソ フ ト ウ ェ ア開発キ ッ ト ) でモデルを使用 し て、 シ ス テ ム性能の指標を示す。
3 番目のセ ク シ ョ ンでは、 次の方法について説明 し てい ます。
°
独自の ソ フ ト ウ ェ ア を追加 し てモデルを実行す る 。
°
PL 内のア イ テ ム を独自の IP に置 き 換え る 。
必要なハー ド ウ ェ アおよびツール
リ フ ァ レ ン ス シ ス テ ムのハー ド ウ ェ ア要件は次の と お り です。
•
ZC702 評価ボー ド
•
AC 電源アダプ タ ー (12VDC)
•
USB Type-A/Mini-B ケーブル (UART 通信用)
•
USB Type-A/Micro-B ケーブル (JTAG ア ク セ ス用)
•
Vivado® Design Suite 2014.3
本資料は表記のバージ ョ ンの英語版を翻訳 し た も ので、内容に相違が生 じ る場合には原文を優先 し ます。 資料に よ っ ては英語版の更新に対応 し ていない も のがあ り ます。 日本
語版は参考用 と し て ご使用の上、 最新情報につ き ま し ては、 必ず最新英語版を ご参照 く だ さ い。
XAPP1219 (v1.0) 2014 年 12 月 11 日
japan.xilinx.com
1
AP SoC シ ス テム性能
AP SoC シス テム性能
SoC の性能は、 デバ イ ス ま たはシ ス テ ム レベルで測定 さ れ、 イ ン タ ーフ ェ イ スや回路ブ ロ ッ ク レベルでは測定 さ れ ませ
ん。 性能を決定す る 最 も 重要な要素は、 シ ス テ ム アーキ テ ク チ ャ が共有 リ ソ ース の競合を処理する 効率性です。 通常、 結
合 さ れたブ ロ ッ ク には、 アプ リ ケーシ ョ ン プ ロ セ ッ サ ユニ ッ ト (APU)、 イ ン タ ー コ ネ ク ト 、 I/O ペ リ フ ェ ラ ル、 I/O、 お よ
び メ モ リ コ ン ト ロ ー ラ ー (ス タ テ ィ ッ ク /ダ イ ナ ミ ッ ク ) が含まれます (図 1)。 次に重要な要素は、 こ れ ら のブ ロ ッ ク が動作
す る ス ピー ド 、 お よ び生成す る ト ラ フ ィ ッ ク です。 こ れ ら のブ ロ ッ ク は、 サブシ ス テ ム (アプ リ ケーシ ョ ン プ ロ セ ッ サ ユ
ニ ッ ト 、 I/O サブシ ス テ ム、 お よ び メ モ リ サブシ ス テ ム な ど) にグループ化で き ます。 特に AP SoC 上にあ る メ モ リ サブシ
ス テ ムは、 SoC 性能に影響を与え る 最 も 重要な共有 リ ソ ース サブシ ス テ ム です。
X-Ref Target - Figure 1
6R&
''5&RQWUROOHU
(WKHUQHW
:'0$
2Q&KLS5$0
86%
:'0$
8$57
+DUGZDUH
&RKHUHQF\
/
/
&DFKH
&DFKH
&HQWUDO'0$
,QWHUFRQQHFW
%':'0$
6KDUHG/&DFKH
,QWHUUXSW&RQWUROOHU
&38
7LPHU&RXQWHUV
&38
ಹ
&
$38
[BB
図 1 : SoC ブ ロ ッ ク 図の例
シ ス テ ム性能に影響を与え る 要素を次に示 し ます。
•
キャ ッ シュ サイズ
•
メ モ リ ス ピー ド
•
メ モ リ の効率
•
メ モ リ デー タ 幅
•
CPU ス ピー ド
•
イ ン ターコ ネ ク ト
•
ブ ロ ッ ク の統合
こ れ ら の要素の中には不変で変更で き ない も のがあ り ますが、 ほ と ん ど の要素は、 デバ イ ス、 プ ラ ッ ト フ ォーム、 ま たは
デザ イ ンに よ っ て異な り ます。
こ のアプ リ ケーシ ョ ン ノ ー ト で使用 さ れ る 効率性お よ び有効性は、 次の よ う に定義 さ れてい ます。
効率性 と は、 メ モ リ コ ン ト ロ ー ラ ーが効率的に DRAM を使用す る こ と を示 し ま す。 効率的な メ モ リ コ ン ト ロ ー ラ ーは、
DRAM を イ ン テ リ ジ ェ ン ト に使用 し て、 よ り 広い帯域幅を実現 し ます。 帯域幅は MB/s で測定 さ れ、 効率はパーセ ン テー
ジで測定 さ れます。
XAPP1219 (v1.0) 2014 年 12 月 11 日
japan.xilinx.com
2
AP SoC シ ス テム性能
有効性 と は、 DRAM コ ン ト ロ ー ラ ーが効果的に メ モ リ 帯域幅を分配する こ と を示 し ます。 言い換えれば、 異な る ポー ト に
帯域幅を与え る 際の DDR コ ン ト ロ ー ラ ーの 「公平性」 を示 し ます。
つま り 、 効率性 と は、 論理上の最大帯域幅か ら どれだけの帯域幅を実現で き る か を示 し 、 有効性 と は、 その帯域幅が競合
ブ ロ ッ ク にいかに分配 さ れ る か を示 し ます。 図 2 に、 シ ス テ ム性能に影響を与え る 最 も 重要な要素を示 し ます。
X-Ref Target - Figure 2
6R&
''5&RQWUROOHU
(WKHUQHW
:'0$
2Q&KLS5$0
86%
:'0$
8$57
+DUGZDUH
&RKHUHQF\
/
/
&DFKH
&DFKH
&HQWUDO'0$
,QWHUFRQQHFW
%':'0$
6KDUHG/&DFKH
,QWHUUXSW&RQWUROOHU
&38
7LPHU&RXQWHUV
&38
ಹ
&
$38
[BB
図 2 : シス テム性能に最も重要な要素
SoC に課せ ら れた重要な任務の一つは、 デー タ 依存の ス ト ールを最小限に抑え て CPU を継続的に実行す る こ と です。 こ れ
を達成す る には、 CPU で使用 さ れ る デー タ を キ ャ ッ シ ュ へ ロ ー ド する 必要があ り ます。 こ の よ う に し た場合、 メ イ ン メ モ
リ よ り も ア ク セ ス レ イ テ ン シが大幅に減少 し ます。デー タ を キ ャ ッ シ ュ へ ロ ー ド す る ス ピー ド は、 メ モ リ サブシ ス テ ムの
性能に依存 し ます。 た と えば、 メ モ リ サブシ ス テ ムの帯域幅が不足 し てい る 場合、 キ ャ ッ シ ュ は指定時間内に フルにな ら
ずに、 CPU は ス ト ール し てデー タ を待機 し ます。 メ モ リ サブシ ス テ ムの性能は、 主に次の要素に依存 し ます。
•
メ モ リ の ス ピー ド (周波数)
•
DRAM コ ン ト ロ ー ラ ーの効率性
•
DRAM コ ン ト ロ ー ラ ーの有効性
•
メ モ リ イ ン タ ーフ ェ イ ス の幅 (内部/外部)
°
DDR コ ン ト ロ ー ラ ーへのポー ト (内部)
°
DRAM への イ ン タ ーフ ェ イ ス (PHY 経由 - 外部)
注記 : メ モ リ サブシ ス テ ムにキ ャ ッ シ ュ は含まれません。
SoC 内の メ モ リ サブシ ス テ ムが十分な帯域幅を備えていない場合、 シ ス テ ム全体の性能が低下 し ます。 た と えば、 CPU が
高周波数で動作 し 、 レベル 2 キ ャ ッ シ ュ が適時送信で き る デー タ 量 よ り も 多 く のデー タ を メ モ リ か ら フ ェ ッ チ し よ う と す
る 場合、 CPU はデー タ を受信す る ま で一時的に ス ト ール状態にな り ます。 こ の よ う なシ ス テ ムでは、 メ モ リ サブシ ス テ ム
がボ ト ルネ ッ ク と な る ため、 よ り 高い ク ロ ッ ク ス ピー ド で CPU を実行する だけではシ ス テ ムの性能は向上 し ません。図 3
に、 シ ス テ ム性能に影響を与え る その他の要素を示 し ます。
XAPP1219 (v1.0) 2014 年 12 月 11 日
japan.xilinx.com
3
AP SoC シ ス テム性能
X-Ref Target - Figure 3
6R&
''5&RQWUROOHU
(WKHUQHW
:'0$
2Q&KLS5$0
86%
:'0$
8$57
,QWHUFRQQHFW
%':'0$
&HQWUDO'0$
,QWHUUXSW&RQWUROOHU
7LPHU&RXQWHUV
6KDUHG/&DFKH
+DUGZDUH
&RKHUHQF\
/
/
&DFKH
&DFKH
&38
&38
ಹ
&
$SSOLFDWLRQV3URFHVVRU8QLW$38
$FFHOHUDWRUV
$FFHOHUDWRUV
[BB
図 3 : AP SoC シ ス テム性能のコ ンポーネ ン ト
通常、SoC はヘテ ロ ジニア ス なシ ス テ ムであ り 、多様な ト ラ フ ィ ッ ク を生成する ブ ロ ッ ク を含んでい ます。 こ れ ら のブ ロ ッ
ク はすべて、 同 じ メ モ リ リ ソ ース を求めて競合 し ます。 メ モ リ サブシ ス テ ムには、 異な る 回路ブ ロ ッ ク 間の リ ソ ース競合
問題を解決 し 、 異な る ト ラ フ ィ ッ ク を効率的かつ公平に処理す る 能力が必要です。 し たが っ て、 SoC 内 (特に メ モ リ サブ
シ ス テ ム と プ ロ グ ラ マブル ロ ジ ッ ク ) のほかの要素を考慮せずに CPU の ク ロ ッ ク レー ト を比較す る 評価方法は現実的で
はな く 、 誤っ た診断を招 く 可能性があ り ま す。 Zynq-7000 AP SoC の さ ま ざ ま な ト ラ フ ィ ッ ク 例 と し て、 マ ス タ ー と DDR
間の ト ラ フ ィ ッ ク を次に示 し ます。
•
APU か ら の ト ラ フ ィ ッ ク (CPU か ら の メ モ リ の ロ ー ド /ス ト ア命令、 セ ン ト ラ ル DMA か ら のダ イ レ ク ト メ モ リ ア ク
セ ス (DMA) 要求)
•
PS ペ リ フ ェ ラ ル (Ethernet、 USB な ど)
•
PL か ら の DMA 要求
•
PL ペ リ フ ェ ラ ル (IP お よ びア ク セ ラ レー タ ー )。 例 : ビデオ パ イ プ ラ イ ン IP
メ モ リ サブシ ス テ ムは、 こ の よ う な異な る ト ラ フ ィ ッ ク ソ ース か ら のア ク セ ス要求を調停 し 、 ま た DRAM の有効帯域幅
を最大化す る 必要があ り ます。 効率的な メ モ リ コ ン ト ロ ー ラ ーは、 こ のバ ラ ン ス を保ちなが ら 予想どお り のビヘ イ ビ アー
を継続 し ます。 メ モ リ コ ン ト ロ ー ラ ーの公平性は、 QoS (quality of service) メ カ ニズ ムに よ っ て維持 さ れ、 全体的な スルー
プ ッ ト を最適化 し なが ら 、 各 ト ラ フ ィ ッ ク が ス タ ベーシ ョ ン状態にな る こ と を回避 し ます。 メ モ リ サブシ ス テ ムの偏っ た
イ ンプ リ メ ン テーシ ョ ンは、 無条件の調停プ ラ イ オ リ テ ィ が原因であ る こ と が多 く 、 こ の タ イ プの調停は、 異な る ソ ース
か ら の複数デー タ ス ト リ ーム を同時にサポー ト す る 必要があ る SoC には不適切です。 通常、 いずれかの ソ ース が ス タ ベー
シ ョ ン状態にな る と 、 シ ス テ ム全体の ス ピー ド が低下 し ます。
XAPP1219 (v1.0) 2014 年 12 月 11 日
japan.xilinx.com
4
性能解析用に構成 さ れたデザイ ン
性能解析用に構成 さ れたデザイ ン
Zynq-7000 AP SoC を使用す る シ ス テ ム を モデル化する には、 PL か ら PS への ト ラ フ ィ ッ ク を エ ミ ュ レー ト で き る デザ イ ン
が必要です。 こ れには、 コ ン フ ィ ギ ュ レーシ ョ ン可能なザ イ リ ン ク ス IP を使用 し て、 ユーザー デザ イ ンの さ ま ざ ま な部
分を模倣で き ます。 デザ イ ン フ ァ イ ルのダ ウ ン ロ ー ド は、 「 リ フ ァ レ ン ス デザ イ ン」 を参照 し て く だ さ い。
1.
C ド ラ イ ブの 「XAPP1219」 と い う 名前が付いたデ ィ レ ク ト リ に フ ァ イ ルを解凍 し ます。
2.
Vivado Design Suite 2014.3 を起動 し ます。
3.
a.
Tcl ウ ィ ン ド ウ を開 き ます。
b.
デザ イ ン フ ァ イ ルを配置 し たデ ィ レ ク ト リ へ移動 (cd) し ます。
c.
Source コ マ ン ド で project.tcl フ ァ イ ルを実行 し ます。
Vivado IP イ ン テ グ レー タ ーでブ ロ ッ ク 図を表示 し ます。
a.
[IP Integrator] → [Open Block Design] を ク リ ッ ク し ます。
4.
[Generate Bitstream] を ク リ ッ ク し ます。 必要に応 じ て使用で き る よ う に、 生成済みのビ ッ ト ス ト リ ーム を 1 つ提供 し
てい ます。 こ のビ ッ ト ス ト リ ーム を使用す る 場合は、 手順 6 か ら 始めて く だ さ い。
5.
[Export Hardware] を ク リ ッ ク し て、 [Include bitstream] を オンに し ます。
6.
Vivado Design Suite か ら SDK コ マ ン ド を実行 し ます。
ま た、 すべてのア イ テ ム を含む ワー ク スペース も 提供 し てい ます。 Vivado Design Suite を終了 し て SDK を起動す る 場
合は、 こ の ワー ク スペース を選択 し て く だ さ い。
こ のデザ イ ンは、 PL か ら PS DDR への ト ラ フ ィ ッ ク を生成 し てアプ リ ケーシ ョ ン を エ ミ ュ レー ト し ます。 こ のため、 プ ロ
グ ラ ムで AXI Traffic Generator (ATG) と い う IP コ ア を使用 し ます。 詳細は、 『LogiCORE™ IP AXI Traffic Generator v2.0 製品
ガ イ ド 』 (PG125) [参照 2] を参照 し て く だ さ い。 ATG は、 Ethernet、 USB、 PCIe® な ど の標準 イ ン タ ーフ ェ イ ス を模倣で き
ますが、 ユーザー アプ リ ケーシ ョ ンに よ り 線密に適合す る よ う にカ ス タ マ イ ズ も 可能です。 こ のアプ リ ケーシ ョ ン ノ ー ト
に付属す る リ フ ァ レ ン ス デザ イ ンには、 6 つの ATG があ り 、 それぞれ Zynq-7000 SoC の 4 つの HP (high-performance) ポー
ト 、 ACP (ア ク セ ラ レー タ ー コ ヒ ーレ ン シー ポー ト )、 お よ び汎用 (GP) ポー ト に接続 さ れてい ます。 こ れ ら はあ ら か じ め
設定 さ れてい ますが、 モデル化す る シ ス テ ムに応 じ て変更で き ます。 アプ リ ケーシ ョ ンのモデル化におけ る デザ イ ンの変
更手順 (特に ATG 関連) については、 「シ ス テ ム性能解析」 を参照 し て く だ さ い。 図 4 に、 デザ イ ンのブ ロ ッ ク 図を示 し ま
す (Vivado Design Suite)。
XAPP1219 (v1.0) 2014 年 12 月 11 日
japan.xilinx.com
5
性能解析用に構成 さ れたデザイ ン
X-Ref Target - Figure 4
[BB
図 4 : シ ス テム性能解析のブ ロ ッ ク 図
XAPP1219 (v1.0) 2014 年 12 月 11 日
japan.xilinx.com
6
性能解析用に構成 さ れたデザイ ン
最上位図を シ ン プルにす る ため、 ATG は階層ブ ロ ッ ク の中に配置 さ れてい ま す。 最上位には、 ATG、 Constant ブ ロ ッ ク 、
お よ び AXI Interconnect ブ ロ ッ ク が 3 つ分かれ る のではな く 、1 つのブ ロ ッ ク (TrafficGen ブ ロ ッ ク ) の中に含まれてい ます。
図 5 のブ ロ ッ ク 図は、階層内の TrafficGen ブ ロ ッ ク を示 し てい ます。Constant ブ ロ ッ ク が ATG の実行を開始 し 、Interconnect
ブ ロ ッ ク が ATG AXI4 を Zynq-7000 AP SoC AXI3 イ ン タ ーフ ェ イ ス に切 り 換え ます。
X-Ref Target - Figure 5
[BB
図 5 : TrafficGen ブ ロ ッ ク図
6 つの ATG はすべて同 じ よ う に設定 さ れ、 最上位の ト ラ フ ィ ッ ク プ ロ フ ァ イ ル と デー タ の ト ラ フ ィ ッ ク プ ロ フ ァ イ ルを
設定 し ます。 デー タ フ ロ ーの設定は、 読み出 し と 書き 込みがそれぞれ 50% と な り 、 イ ン タ ーバルは 50 サ イ ク ルで固定で
す。 1 つの ト ラ ンザ ク シ ョ ンの開始か ら 次の ト ラ ンザ ク シ ョ ンの開始ま での 50 サ イ ク ルが測定 さ れ ます ( ト ラ ンザ ク シ ョ
ンの開始は、 AXI Interconnect ブ ロ ッ ク のア ド レ ス が現れ る)。 各 ATG は、 PS か ら の FCLK で動作 し 、 100MHz に設定 さ れ
てい ます。 こ れに よ っ て、 HP ポー ト と ACP ポー ト のそれぞれの イ ン タ ーフ ェ イ ス で 256MB/s の読み出 し と 書 き 込みが実
行 さ れます。 GP ポー ト のデー タ 幅は 32 ビ ッ ト であ る ため、 生成 さ れ る ト ラ フ ィ ッ ク は、 デザ イ ン内のほかの ATG の半分
と な り ます。 し たがっ て、 GP ポー ト の読み出 し と 書 き 込みはそれぞれ 128MB/s と な り ます。 図 6 に、 各 ATG の設定を示
し ます。
XAPP1219 (v1.0) 2014 年 12 月 11 日
japan.xilinx.com
7
性能解析用に構成 さ れたデザイ ン
X-Ref Target - Figure 6
[BB
図 6 : AXI Traffic Generator の設定
XAPP1219 (v1.0) 2014 年 12 月 11 日
japan.xilinx.com
8
性能解析用に構成 さ れたデザイ ン
式 1 に MB/s 単位の レー ト 計算式を示 し 、 式 2 に ATG の設定値を使用 し た計算式を示 し ます。
B×N
------------------ = Rate
1
--- × I
 f
式1
説明
B = 1 ワ ー ド のバ イ ト 数
N = TX の ワ ー ド 数
I = イ ン タ ーバル
f = PL ク ロ ッ ク 周波数 (MHz)
8 × 16
------------------------------ = 256
1 
 --------- × 50
 100
式2
ATG を 50% の読み出 し と 50% の書 き 込み と し てプ ロ グ ラ ム し た場合、 AXI の書 き 込みチ ャ ネルに 256MB/s、 AXI の読み
出 し チ ャ ネルに 256MB/s が生 じ ます。ATG は読み出 し ト ラ ンザ ク シ ョ ン と 書 き 込み ト ラ ンザ ク シ ョ ン を同時に実行す る た
め、 AXI イ ン タ ーフ ェ イ ス では合計 512MB/s の ト ラ ンザ ク シ ョ ン が生 じ ます。 し たがっ て、 こ の例の場合は、 HP ポー ト
と ACP ポー ト のそれぞれで 512MB/s が生 じ ます。 表 1 に、 各ポー ト の ト ラ フ ィ ッ ク お よ び PS か ら PL へ転送 さ れ る 合計
の MB/s を示 し ます。 PS DDR の最大帯域幅を示 し 、 533MHz で動作する 32b DDR をベース と し てい ます。
表 1 : PS DDR の HP および ACP ポー ト の帯域幅
HP0
HP1
HP2
HP3
ACP
GP1
読み出 し
256
256
256
256
256
128
書 き 込み
256
256
256
256
256
128
ポー ト の合計
512
512
512
512
512
256
合計
2816
PS DDR の最大帯域幅
4264
PS DDR の最大帯域幅の
パーセ ン テージ
66.04%
表 1 では、 PL か ら の ト ラ フ ィ ッ ク 量が PS DDR の最大帯域幅の 60% であ る こ と を示 し てい ます。 PL か ら PS の イ ン タ ー
フ ェ イ ス では、 DDR コ ン ト ロ ー ラ ーが処理で き る 量 よ り も 多 く の ト ラ フ ィ ッ ク を生成で き ます。 ATG ト ラ フ ィ ッ ク を設
定す る 際には、 PS DDR コ ン ト ロ ー ラ ーの許容可能オーバー ロ ー ド に留意 し て く だ さ い。 つま り 、 ATG をいかな る 設定に
し て も 、 PS DDR の最大帯域幅を超え る ト ラ フ ィ ッ ク を生成す る こ と はで き ません。 PL が PS DDR の理論上最大帯域幅の
80% を超え る か ど う か を確認す る には、 こ の よ う なシ ンプルな表を作成す る 方法が有効です。 こ れに よ り 、 性能が目標値
に達 し ない問題、 あ る いは レ イ テ ン シが高いな ど の問題を認識で き ます。
こ こ では、 シ ス テ ム をモデル化で き る デザ イ ン を利用 し ます。 性能指標を満た し てい る かは、 ど の よ う に確認 し た ら よ い
ので し ょ う か。 HP お よ び ACP ポー ト では、 実際に 256MB/s ト ラ フ ィ ッ ク が生成 さ れてい る ので し ょ う か。 こ れ ら のデー
タ をデザ イ ンか ら 取得す る には、 も う 一つザ イ リ ン ク ス IP を使用する 必要があ り ます。 AXI Performance Monitor (APM) を
使用 し て、 モデル化 さ れた各 AXI イ ン タ ーフ ェ イ ス や HP、 ACP、 お よ び GP ポー ト か ら デー タ を収集 し ま す。 図 7 に、
APM の設定を示 し ます。
XAPP1219 (v1.0) 2014 年 12 月 11 日
japan.xilinx.com
9
性能解析用に構成 さ れたデザイ ン
X-Ref Target - Figure 7
[BB
図 7 : AXI Performance Monitor の設定
APM は Profile モー ド で動作 し ます。 こ のモー ド は、 SDK 2014.1 ま たはそれ以降でサポー ト さ れてい ます。 その他のモー
ド の詳細は、 『LogiCORE IP AXI Performance Monitor v5.0 製品ガ イ ド 』 (PG037) [参照 3] を参照 し て く だ さ い。
Profile モー ド の場合は、 最上位の帯域幅 と レ イ テ ン シ を示 し ます。 SDK は、 各ス ロ ッ ト ま たは イ ン タ ーフ ェ イ ス のデー タ
を取得す る ため、 50ms ご と に APM の情報を読み出 し ます。 よ り 詳 し い イ ン タ ーフ ェ イ ス デー タ を収集する には、 その他
のモー ド を使用 し ます。 Advanced モー ド お よ び Trace モー ド の場合は、 Profile モー ド よ り も 高い レー ト でデー タ を取得 し
ます。 こ れ ら のモー ド は SDK でサポー ト さ れていないため、 こ のアプ リ ケーシ ョ ン ノ ー ト では説明 し ません。
図 7 に、 APM の設定を示 し ます。 6 つの イ ン タ ーフ ェ イ ス が選択 さ れてい ます。 各モニ タ ー イ ン タ ーフ ェ イ ス は、 AXI3
(Zynq-7000 AP SoC) ポー ト 、 お よ び 64 ビ ッ ト のデー タ 幅 と し て同 じ よ う に設定 さ れてい ます。 例外 と し て、 GP ポー ト だ
けは 32 ビ ッ ト デー タ 幅 と な り ま す。 図 7 に、 最初の 4 つのモニ タ ー イ ン タ ーフ ェ イ ス の設定を示 し ま す ( こ れ ら は HP
ポー ト であ り 、 5 番目は ACP ポー ト で 6 番目は GP ポー ト )。 SDK の仕様に合わせて、 最初の 5 つの APM ポー ト は、
HP0 → slot 0、 HP1 → Slot 1、 HP2 → Slot 2、 HP3 → Slot 3、 ACP → Slot 4 の よ う に接続す る 必要があ り ます。 こ の よ う に設
定 し なければ、 不正な結果が生 じ ます。
Zynq-7000 AP SoC AXI ポー ト の設定は、 図 8 に示 し ます。 こ の設定で、 ト ラ フ ィ ッ ク ジ ェ ネ レー タ ーを Zynq-7000 AP SoC
の異な る イ ン タ ーフ ェ イ ス に接続 し ます。
XAPP1219 (v1.0) 2014 年 12 月 11 日
japan.xilinx.com
10
性能解析用に構成 さ れたデザイ ン
X-Ref Target - Figure 8
[BB
図 8 : Zynq AXI ポー ト の設定
こ のデザ イ ンは、 シ ス テ ム をモデル化 し て性能情報を収集す る よ う に構成 さ れた、 いわゆ る シ ス テ ム性能解析用のデザ イ
ンです。
Vivado ウ ィ ン ド ウ の右側にあ る Flow Navigator で [Generate Bitstream] を ク リ ッ ク す る と 、 ビ ッ ト ス ト リ ーム を生成で き ま
す。 こ の手順は、 ZIP フ ァ イ ルに含ま れ る ワ ー ク スペース内の ビ ッ ト ス ト リ ーム を使用す る こ と で省略で き ます。 ビ ッ ト
ス ト リ ームの生成方法を示す手順は、 次のセ ク シ ョ ンで説明 し てい ますので、 Vivado IDE は起動 さ せた ま ま に し ておいて
く だ さ い。
「は じ めに」 で示 し た と お り 、 シ ス テ ム性能に関す る 指標は も う 一つあ り ます。 PL でハー ド ウ ェ ア を モデル化 し た場合、
CPU の動作は ど の よ う に確認 し た ら よ いで し ょ う か。 こ の場合、 Zynq-7000 アーキ テ ク チ ャ には PS 内にパ フ ォ ーマ ン ス
モニ タ リ ン グ ユニ ッ ト (PMU) があ り 、 動作中の ARM Cortex-A9 に関す る デー タ を収集で き ます。 ま た、 L2 キ ャ ッ シ ュ に
はパフ ォーマ ン ス カ ウ ン タ ーがあ り 、 それ ら のカ ウ ン タ ー値を収集 し てユーザーに提示 し ます。 収集 さ れ る 指標は次の と
お り です。
•
CPU レベル 1 のキ ャ ッ シ ュ ミ ス率
•
CPU レベル 1 のキ ャ ッ シ ュ ア ク セ ス数
•
1 読み出 し 命令に対す る CPU の ス ト ール サ イ ク ル
•
1 書 き 込み命令に対す る CPU の ス ト ール サ イ ク ル
CPU で動作す る ソ フ ト ウ ェ アの指標 と モデル化 さ れたハー ド ウ ェ ア を使用 し て、 設計を開始す る 前にシ ス テ ム性能を解析
で き ます。
XAPP1219 (v1.0) 2014 年 12 月 11 日
japan.xilinx.com
11
シス テム性能解析
シ ス テム性能解析
次の手順では、 モデルを実行 し て、 さ ま ざ ま な解析ポ イ ン ト で何が生 じ てい る か を示 し ま す。 性能指標を確認す る には、
SDK で こ のデザ イ ン を実行す る 必要があ り ま す。 最初の実行は、 ソ フ ト ウ ェ ア を使用せずに行い ます。 こ の場合、 PS メ
モ リ コ ン ト ロ ー ラ ーのみを介 し た場合の、 HP ポー ト お よ び GP ポー ト か ら DDR への性能を示 し ます。
ビ ッ ト ス ト リ ーム を生成 し ない場合は、SDK を起動 し て Workspace デ ィ レ ク ト リ (ZIP フ ァ イ ルに含まれ る ) を使用 し て、
SDK 内で ワ ー ク スペース を選択で き ます。 その場合は、 図 11 に示す画面か ら の ス タ ー ト と な る ため、 14 ページの手順 4
ま で ス キ ッ プ し て く だ さ い。
シ ス テ ム解析の設定手順は次の と お り です。
1.
Vivado IDE の [File] メ ニ ュ ーか ら 、[Export] → [Export Hardware] を ク リ ッ ク し て、SDK 用にハー ド ウ ェ ア を エ ク ス ポー
ト し ます。 次に、 [File] → [Launch SDK] を ク リ ッ ク し て、 エ ク ス ポー ト し たハー ド ウ ェ ア定義を使用 し て SDK を起動
し ます。 図 9 に示す SDK ウ ィ ン ド ウ で、 [File] → [Import] → [General] → [Existing Projects into Workspace] を ク リ ッ ク
し て [Next] を ク リ ッ ク し ます。
X-Ref Target - Figure 9
[BB
図 9 : イ ンポー ト し たハー ド ウ ェ ア を示す SDK 画面
XAPP1219 (v1.0) 2014 年 12 月 11 日
japan.xilinx.com
12
シス テム性能解析
2.
ZIP フ ァ イ ルの中にあ る ルー ト デ ィ レ ク ト リ を ワ ー ク スペース と し て選択 し ます。 図 10 に示す よ う に、 2 つのチ ェ ッ
ク ボ ッ ク ス ([perfmon] お よ び [standalone_bsp_0]) をオンに し ます。
X-Ref Target - Figure 10
[BB
図 10 : SDK で プ ロ ジ ェ ク ト を ワー ク スペースに イ ンポー ト
XAPP1219 (v1.0) 2014 年 12 月 11 日
japan.xilinx.com
13
シス テム性能解析
3.
[Finish] を ク リ ッ ク し ます。 図 11 に、 イ ン ポー ト さ れた SDK プ ロ ジ ェ ク ト を示 し ます。
X-Ref Target - Figure 11
[BB
図 11 : SDL プ ロ ジ ェ ク ト ワー ク スペース
4.
ユーザーの コ ン ピ ュ ー タ ーが 2 つの USB コ ネ ク タ を使用 し て ZC702 評価ボー ド へ接続 さ れてい る こ と を確認 し ます。
1 つはプ ロ グ ラ ミ ン グ ケーブルへ接続 し 、 も う 一つは UART へ接続する こ と に よ っ て、 端末で出力を確認で き ます。
5.
ZC702 ボー ド 上では、 電源ス イ ッ チを ON に し て、 デバ イ ス をプ ロ グ ラ ム可能に し ます。
6.
Terminal 1 を接続 し て、 C プ ロ グ ラ ムか ら の出力を表示 し ます。 端末の接続手順は次の と お り です。
a.
SDK ウ ィ ン ド ウ下部にあ る Terminal 1 タ ブ (図 11 には [Term] と 表示) を開 き ます。
b.
3 つ目のボ タ ン を ク リ ッ ク し ます (テーブルの よ う な も の)。 こ れが設定 タ ブです。
XAPP1219 (v1.0) 2014 年 12 月 11 日
japan.xilinx.com
14
シス テム性能解析
c.
図 12 の よ う に設定を変更 し ます。 COM3 は、 ユーザー マシ ンに よ っ て異な る COM# にな る 場合があ る ので注意
が必要です。
X-Ref Target - Figure 12
[BB
図 12 : UART Terminal 0 の設定
XAPP1219 (v1.0) 2014 年 12 月 11 日
japan.xilinx.com
15
シス テム性能解析
PL のプ ロ グ ラ ム手順は次の と お り です。
1.
ザイ リ ン ク ス
ツールの中にあ る
FPGA
プログ ラ ム
コ マ ン ド を使用 し ます。 SDK
でビ ッ ト ス ト リ ーム
(pretest_wrapper.bit) が自動的に選択 さ れます。 その画面で [Program] を ク リ ッ ク し ます。
2.
DONE を示す LED (DS3) が High にな っ た後、 図 13 に示す よ う に、 [Run] → [Debug Configurations] を ク リ ッ ク し て新
し いデバ ッ グ コ ン フ ィ ギ ュ レーシ ョ ン を作成 し 、 [Xilinx C/C++ Application (System Debugger)] を ク リ ッ ク し ます。
X-Ref Target - Figure 13
[BB
図 13 : [Debug Configurations] の設定
3.
新 し い ウ ィ ン ド ウ で、 [Debug Type] を [Standalone Application Debug] に変更 し ます。
XAPP1219 (v1.0) 2014 年 12 月 11 日
japan.xilinx.com
16
シス テム性能解析
4.
[Name] を perf_mon に変更 し ます。 設定 さ れた ウ ィ ン ド ウ は図 14 の よ う にな り ます。
X-Ref Target - Figure 14
[BB
図 14 : デバ ッ グ コ ン フ ィ ギ ュ レーシ ョ ンのス タ ン ド ア ロ ン ア プ リ ケーシ ョ ンの設定
XAPP1219 (v1.0) 2014 年 12 月 11 日
japan.xilinx.com
17
シス テム性能解析
5.
[Application] タ ブへ移動 し て、 [Download Application] を オンに し ます。 [Project Name] お よ び [Application] は、 図 15 に
示す よ う に自動的に入力 さ れます。
X-Ref Target - Figure 15
[BB
図 15 : デバ ッ グ コ ン フ ィ ギ ュ レーシ ョ ンのソ フ ト ウ ェ ア ダウン ロー ド 追加
6.
[Stop at program entry] をオンに し ます。 こ れに よ っ て、 自動的にブ レー ク ポ イ ン ト を挿入す る 機能がプ ロ グ ラ ムに備
わ り 、 ユーザーが SDK に指示す る と プ ロ グ ラ ムが開始 し ます。
XAPP1219 (v1.0) 2014 年 12 月 11 日
japan.xilinx.com
18
シス テム性能解析
7.
次に、 [Debug] を ク リ ッ ク し てデバ ッ グ セ ッ シ ョ ン を開始 し ます。 [Confirm Perspective Switch] ダ イ ア ロ グ ボ ッ ク ス が
表示 さ れます。 そのダ イ ア ロ グ ボ ッ ク ス で [Yes] を ク リ ッ ク し ます。 SDK セ ッ シ ョ ン画面は図 16 の よ う にな り ます。
X-Ref Target - Figure 16
[BB
図 16 : デバ ッ グ パースペ ク テ ィ ブ
8.
[Target Connection] お よ び [SD log] タ ブ を閉 じ ます。
9.
[Terminal 1] タ ブ を選択す る と 、 プ ロ グ ラ ムの出力内容を確認で き ます。
XAPP1219 (v1.0) 2014 年 12 月 11 日
japan.xilinx.com
19
シス テム性能解析
10. ス タ ー ト ボ タ ン (図 17 の赤枠部分) を ク リ ッ ク し ます。
こ の動作で hello_world の コ ー ド が実行 さ れ、 ATG に接続 さ れたポー ト の ト ラ ンザ ク シ ョ ン数が提示 さ れます。 そ
の後、 プ ロ グ ラ ムが MB/s を素早 く 計算 し て表示 し ます。 SDK セ ッ シ ョ ン画面は図 17 の よ う にな り ます。
X-Ref Target - Figure 17
[BB
図 17 : Terminal 1 に表示 さ れたデバ ッ グ パースペ ク テ ィ ブの結果
端末に表示 さ れた結果は、 HP ポー ト と ACP ポー ト がすべて 256MB/s で GP ポー ト は 128MB/s にな る 必要があ り ます。 こ
れは、 C コ ー ド を使用 し て APM か ら デー タ を抽出す る 方法ですが、 SDK の現バージ ョ ンには、 HP0 ~ 3 お よ び ACP の性
能デー タ を自動で提示す る 新機能があ り ます。
XAPP1219 (v1.0) 2014 年 12 月 11 日
japan.xilinx.com
20
シス テム性能解析
GP ポー ト のみを読み出す よ う に変更 し た perf_mon があ り ま す。 こ れを使用 し て、 GP ポー ト を読み出す こ と がで き ま
す。 手順は次の と お り です。
1.
SDK で新規の性能解析パースペ ク テ ィ ブ (Performance Analysis Perspective) を開始する ため、 [Window] →[Close
Perspective] を ク リ ッ ク し て、 既存のデバ ッ グ パースペ ク テ ィ ブを閉 じ ます。
2.
性能解析パースペ ク テ ィ ブ を実行す る ため、 前回の perf_mon の実行 と 同様に [Run] → [Debug configurations] を ク
リ ッ ク し ます。
3.
今回は、 図 18 の よ う に [Performance Analysis] を ク リ ッ ク し ます。
X-Ref Target - Figure 18
[BB
図 18 : デバ ッ グ コ ン フ ィ ギ ュ レーシ ョ ンのス タ ン ド ア ロ ン ア プ リ ケーシ ョ ンの設定
4.
コ ン フ ィ ギ ュ レーシ ョ ン名を 「Performance」 に変更 し ます。 今回は、 SDK が自動的に APM を読み出すため、 ユー
ザーがアプ リ ケーシ ョ ンに読み出 し を実行 さ せ る 必要はあ り ません。
XAPP1219 (v1.0) 2014 年 12 月 11 日
japan.xilinx.com
21
シス テム性能解析
5.
[Debug] を ク リ ッ ク し 、[Yes] を ク リ ッ ク し てパースペ ク テ ィ ブ を切 り 換え ます。出力結果は、図 19 の よ う にな り ます。
X-Ref Target - Figure 19
[BB
図 19 : パフ ォ ーマ ン ス パースペ ク テ ィ ブ
こ れ ら の結果は、 APM を読み出 し た も の と 同 じ ですが、 SDK は APM だけでな く 、 PS の PMU も 読み出 し て APU ま たは
APM に関す る デー タ を提供す る ため、 デー タ 量は多少増加 し ます。 [PL Performance] お よ び [PS Performance] の表は、 サマ
リ のテーブルを グ ラ フ化 し た も のです。 サマ リ は瞬間的に捉えた スナ ッ プシ ョ ッ ト を表 し 、 グ ラ フは長期的なデー タ を表
し ます。 MicroBlaze™ プ ロ セ ッ サの タ ブに関 し ては、 こ のアプ リ ケーシ ョ ン ノ ー ト の範疇ではないため閉 じ て も 構い ませ
ん。
こ れで、 性能を示すデー タ が揃い ま し たが、 こ れ ら は何を表 し てい る ので し ょ う か。 最初の手順 と し て、 それぞれの値が
示す意味を理解 し てい き ます。 その後、 高度な手順 と し て、 こ れ ら のデー タ を解析 し て、 目標の性能に到達 し てい る か を
判断 し ます。
まず、 [APU Performance Summary] タ ブ を開き ます。 こ の タ ブには、 PMU カ ウ ン タ ー と APM の指標が一覧表示 さ れてい ま
す。 1 つ目のテーブルは、 PMU カ ウ ン タ ーか ら の値で、 各 Cortex-A9 プ ロ セ ッ サの指標を示 し てい ます。 各プ ロ セ ッ サの
レベル 1 (L1) キ ャ ッ シ ュ 、 そ し て 2 つの Cortex-A9 コ アで共有 さ れ る 統合 さ れた キ ャ ッ シ ュ の レベル 2 (L2) キ ャ ッ シ ュ に
対応 し てい ます。 PS 性能の指標は次の と お り です。
•
CPU Utilization (%) : 非ア イ ド ル状態での CPU ク ロ ッ ク サ イ ク ル率を示す。
•
CPU Instructions Per Cycle (IPC) : 1 サ イ ク ルに実行 さ れた命令数を示す。
•
L1 Data Cache Miss Rate (%) : L1 デー タ キ ャ ッ シ ュ に対 し てア ク セ ス し た数お よ び ミ ス率を示す。
•
CPU Write/Read Stall Cycles Per Instruction : メ モ リ の書 き 込み (write) お よ びデー タ キ ャ ッ シ ュ の リ フ ィ ル (read) 動作が
原因 と な る 、 1 命令に対す る ス ト ール サ イ ク ル数を示す。
XAPP1219 (v1.0) 2014 年 12 月 11 日
japan.xilinx.com
22
シス テム性能解析
APM の指標は、 次の よ う に定義 さ れてい ます。
•
Read/Write Transactions
ATG で生成 さ れ る 読み出 し /書 き 込み ト ラ ンザ ク シ ョ ンの数を示 し てい ます。 一般的に ATG は ト ラ ンザ ク シ ョ ン を多
数生成す る ため、 こ の値は大 き く な り ます。
•
Read/Write Latency - Average
ト ラ ンザ ク シ ョ ンの レ イ テ ン シ を示 し てい ます。 コ マ ン ド を受信 し てか ら バース ト の最後の ワー ド が送信 さ れ る ま で
の期間が測定 さ れます。
レ イ テ ン シは上記の よ う に測定 さ れ る ため、 書 き 込みの受信 と 同時に書 き 込み動作が測定 さ れ、 レ イ テ ン シが低 く な
り ます。 し たがっ て、 シ ス テ ムにバ ッ ク プ レ ッ シ ャ ーがない場合、 こ の値はバース ト サ イ ズ よ り も わずかに上回 る 程
度 と な り ます。 こ れを使用 し て、 書 き 込み ト ラ ンザ ク シ ョ ンに対 し てバ ッ ク プ レ ッ シ ャ ーが動作す る タ イ ミ ン グ を示
す こ と がで き ま す。 ユーザーは、 こ の よ う に し て、 書 き 込みが ス レーブで ス ト ールす る タ イ ミ ン グ を認識で き ます。
書 き 込みレ イ テ ン シがバー ス ト 長 よ り も 大 き く 上回 る と 、 こ れ ら の ト ラ ンザ ク シ ョ ン が ス レーブで ス ト ール し ます (
デザ イ ン内の PS)。
•
Read/Write Latency - Std.Dev.
レ イ テ ン シ測定値の標準偏差を示 し てい ます。
•
Read/Write Throughput (MB/s)
ト ラ ンザ ク シ ョ ン数、 ト ラ ンザ ク シ ョ ン サ イ ズ、 お よ び イ ン タ ーフ ェ イ ス ス ピー ド に基づいて、 イ ン タ ーフ ェ イ ス の
スループ ッ ト が計算 さ れてい ます。
全体的な PL 性能を見てみま し ょ う 。ボー ド の電源投入で ATG が動作 し てい ます。コ アの実行開始に伴っ て一定値 ( ロ ジ ッ
ク 1) が保持 さ れてい る ため、 ATG は Zynq-7000 AP SoC が リ セ ッ ト か ら 回復する と 実行 し ます。 ま た ATG は、 一定数の ト
ラ フ ィ ッ ク を生成す る よ う に設定 さ れてい る ため、 図 20 の よ う に ト ラ フ ィ ッ ク はグ ラ フ上で一本の線 と し て現れます。 +
印が付いたオ レ ン ジ色のボ ッ ク ス は、 グ ラ フ の拡大/縮小機能です。 図 20 に、 こ のボ ッ ク ス を丸で囲んでい ます。
XAPP1219 (v1.0) 2014 年 12 月 11 日
japan.xilinx.com
23
シス テム性能解析
X-Ref Target - Figure 20
[BB
図 20 : [Performance Analysis] の [PL Performance] タ ブ
こ の タ ブの上部には、 オ レ ン ジ色の + の拡大部分を示 し ます。 グ ラ フ内の任意の部分を ク リ ッ ク し て、 ズーム ボ ッ ク ス を
配置で き ます。 拡大表示 し たい部分にズーム ボ ッ ク ス を ク リ ッ ク し て ド ラ ッ グ し ます。 CTRL キーを押 し なが ら マ ウ ス を
ス ク ロ ール し て、 ズーム エ リ ア を拡大/縮小す る こ と も 可能です。
[PS Performance] タ ブは、 [PL Performance] と 類似 し てい ますが、 PMU カ ウ ン タ ーを グ ラ フ化 し た も のであ り 、 APM か ら
取得 し たデー タ ではあ り ません。 それぞれの値が示す意味を理解す る こ と で、 こ れ ら がデザ イ ン要件を満た し てい る か を
判断で き ます。 結果は、 アプ リ ケーシ ョ ンに よ っ て異な り ます。 まず最初に、 任意の ト ラ フ ィ ッ ク で ATG が設定 さ れてい
る こ と を確認 し ます。 ソ フ ト ウ ェ ア を動作 さ せた状態で、 帯域幅 と レ イ テ ン シがアプ リ ケーシ ョ ンの要件を満た し てい る
場合は、 こ れで終了ですが、 性能に関す る 要件が満た さ れていない場合は、 何をすべ き で し ょ う か。
こ の問題は、 簡単には解決で き ません。 通常、 性能を向上 さ せ る パ ラ メ ー タ ーは 1 つだけではあ り ません。 い く つかの要
素を確認す る 必要があ り ます。 すでに言及 し た と お り 、 PS-PL 間を往来す る ト ラ フ ィ ッ ク 量を確認 し ま す。 PS DDR の理
論上の最大帯域幅の 80% を使用 し てい る 場合は、 こ れが問題 と な る 可能性があ り ます。 も う 一つの要素 と し て、 すべての
ト ラ フ ィ ッ ク が 1 つま たは 2 つの HP ポー ト 上に集中 し てい る か を確認 し ます。 その よ う な場合は、 こ れ ら の ト ラ フ ィ ッ
ク を複数ポー ト に分散可能であ る か を考え ます。 ピー ク ト ラ フ ィ ッ ク 用にシ ス テ ムがモデル化 さ れてい ませんか。 10% ~
50% 程度 し か生 じ ないに も かかわ ら ず、 100% の ピー ク ト ラ フ ィ ッ ク を達成 し よ う と し てい ませんか。
Zynq-7000 AP SoC で性能を調整す る 作業は非常に複雑です。 こ のアプ リ ケーシ ョ ン ノ ー ト では言及 し てい ませんが、 デザ
イ ンの フ ロ ーや性能要件が異な る ため、 特定アプ リ ケーシ ョ ンの設定がほかのアプ リ ケーシ ョ ンに必ず し も 有効 と は限 り
ません。 詳細は、 『SDK ユーザー ガ イ ド : シ ス テ ム性能解析』 (UG1145) [参照 1] お よ び 『UltraFast エンベデ ッ ド デザ イ ン
設計手法ガ イ ド 』 (UG1046) [参照 4] を参照 し て く だ さ い。
XAPP1219 (v1.0) 2014 年 12 月 11 日
japan.xilinx.com
24
モデルへの変更および追加
注記 : SDK 2014.3 には、 次の制約事項があ り ます。
°
°
ハー ド ウ ェ ア デザ イ ンには、 AXI Performance Unit が 1 つ含まれ る 必要があ り 、 0 か ら 5 ま での ス ロ ッ ト は、 順に
HP0、 HP1、 HP2、 HP3、 HP4、 ACP ポー ト へ接続 し ます。
APM カ ウ ン タ ーが読み出 さ れ る と 、 すべてのプ ロ フ ァ イ ル カ ウ ン タ ーが リ セ ッ ト さ れます。 こ のため、 2 つのエ
ン テ ィ テ ィ が APM を読み出す と 、 結果が不正にな り ます。 可能な限 り 、 SDK ま たは perf_mon C コ ー ド を使用 し
て、 帯域幅を読み出 し お よ び表示 さ せます。 推奨方法は SDK です。 perf_mon コ ー ド は、 必要に応 じ て GP ポー ト
を読み出す際に使用 し ます。
モデルへの変更および追加
こ のモデルを使用 し てユーザー アプ リ ケーシ ョ ン を よ り 厳密に模倣する 方法は 2 つあ り ます。 1 つ目は、 ソ フ ト ウ ェ ア を
追加す る 方法です。 2 つ目は、 ハー ド ウ ェ ア モデルを変更 し て、 ユーザー アプ リ ケーシ ョ ンのデー タ フ ロ ーを模倣す る 方
法です。 前の セ ク シ ョ ン で は、 モデル に複数の ソ フ ト ウ ェ ア を 追加 し ま し た。 ソ フ ト ウ ェ ア を 追加す る 際、 SDK で
hello_world コ ー ド を独自の も のに置 き 換え る こ と がで き ます。 GP ポー ト の APM を読み出すために hello_world の
コ ー ド が重要な場合は、 独自 コ ー ド に統合で き ます。 SDK の詳細は、 『Zynq-7000 All Programmable SoC ソ フ ト ウ ェ ア開発
者向けガ イ ド 』 (UG821) [参照 5] ま たは 『Zynq-7000 All Programmable SoC : コ ン セプ ト 、 ツール、 テ ク ニ ッ ク ガ イ ド : 効率
的なエンベデ ッ ド シ ス テ ム構築をサポー ト す る ハンデ ィ ガ イ ド 』 (UG873) [参照 6] の 「Zynq プ ロ セ ッ シ ン グ シ ス テ ム を使
用す る エンベデ ッ ド シ ス テ ム デザ イ ン」を参照 し て く だ さ い。ま た、その他の参考資料お よ びビデオは、Document Navigator
のデザ イ ン ハブか ら 入手で き ます。
1.
[Import] ウ ィ ン ド ウ で [C/C++] を ク リ ッ ク し て、 C コ ー ド を含むデ ィ レ ク ト リ を選択 し ます。 図 21 お よ び図 22 に、 C
ま たは C++ コ ー ド を イ ン ポー ト す る ウ ィ ン ド ウ を示 し ます。
X-Ref Target - Figure 21
[BB
図 21 : 既存の C コ ー ド を SDK に イ ンポー ト
XAPP1219 (v1.0) 2014 年 12 月 11 日
japan.xilinx.com
25
モデルへの変更および追加
X-Ref Target - Figure 22
[BB
図 22 : 既存コ ー ド のイ ンポー ト
XAPP1219 (v1.0) 2014 年 12 月 11 日
japan.xilinx.com
26
モデルへの変更および追加
2.
新規のパフ ォーマ ン ス パースペ ク テ ィ ブを作成 し ます (図 23)。
X-Ref Target - Figure 23
[BB
図 23 : 新 し い コ ン フ ィ ギ ュ レーシ ョ ン
SDK お よ び ソ フ ト ウ ェ ア デバ ッ グに関す る その他の資料は、 「参考資料」 を参照 し て く だ さ い。
2 つ目は、 ハー ド ウ ェ ア モデルを変更す る 方法です。 こ の方法には、 次の 4 つの手法があ り ます。
•
さ ら に ATG を追加す る
•
ATG を独自の IP で置 き 換え る
•
既存 ATG の ト ラ フ ィ ッ ク フ ロ ーを変更する
•
APM を追加 し た独自の IPI デザ イ ン を追加す る
ハー ド ウ ェ ア デザ イ ンは、 こ のアプ リ ケーシ ョ ン ノ ー ト の一部であ り 、 こ れ ら の変更お よ び追加が可能です。
こ のデザ イ ンで ATG の追加はサポー ト さ れてい ません。 ATG を PS へ接続する ために残 さ れたポー ト は GP ポー ト のみで
す。 追加す る 場合は、 こ のデザ イ ンの ATG と GP0 の接続方法を真似て、 GP1 への別の TrafficGen 接続を行 う こ と で実現
で き ます。 その後、 TrafficGen が GP0 へ接続 さ れ る 方法 と 同 じ よ う に し て、 各信号を所定の場所へ接続 し ます。
ATG を独自の IP に置 き 換え る 方法は、 多 く の時間を要する 上に Vivado IP イ ン テ グ レー タ ーの知識 も 必要です。 こ の方法
については、 アプ リ ケーシ ョ ン ノ ー ト の後半で説明 し てい ま す。 確認すべ き 最 も 重要な事は、 コ アが AXI3 ま たは AXI4
メ モ リ マ ッ プ ド イ ン タ ーフ ェ イ ス を備えてい る こ と です。 AXI4 の場合は、 PS へ接続する ために TrafficGen ブ ロ ッ ク で使
用 さ れ る よ う な イ ン タ ー コ ネ ク ト が必要です。
ATG コ ン フ ィ ギ ュ レーシ ョ ンの フ ロ ーを変更 し て、 よ り 厳密にアプ リ ケーシ ョ ン デー タ フ ロ ーを模倣す る 方法について
説明 し ます。 ATG コ ン フ ィ ギ ュ レーシ ョ ン を変更する 手順は次の と お り です。
1.
アプ リ ケーシ ョ ン ノ ー ト の最初に作成 し たデザ イ ン を Vivado IDE で開 き ます ( 「性能解析用に構成 さ れたデザ イ ン」
参照)。
XAPP1219 (v1.0) 2014 年 12 月 11 日
japan.xilinx.com
27
モデルへの変更および追加
2.
任意の TrafficGen モデルを ダブル ク リ ッ ク し て階層内に入 り ます。
TrafficGen ブ ロ ッ ク には 0 ~ 5 ま での番号が付いてい ます。 最初の 4 つ (TrafficGen0 ~ 3) は、 HP0 ~ 3 に接続 さ れて
お り 、 TrafficGen4 は ACP、 TrafficGen5 は S_AXI_GP0 に接続 さ れてい ます。
3.
階層内に入っ た後、図の中の axi_traffic_gen_0 を ダブル ク リ ッ ク し ます。図 24 の よ う な ATG の コ ン フ ィ ギ ュ レーシ ョ
ン画面が表示 さ れます。
X-Ref Target - Figure 24
[BB
図 24 : ATG コ ン フ ィ ギ ュ レーシ ョ ンの変更
まず最初に、 プ ロ フ ァ イ ルを変更 し ます。 カ ス タ ム モー ド では、 Zynq-7000 プ ラ ッ ト フ ォームの Cortex-A9 あ る いは PL の
その他の CPU (MicroBlaze プ ロ セ ッ サ な ど) を 使用 し て ATG を プ ロ グ ラ ム で き ま す。 詳細は、 『LogiCORE IP AXI Traffic
Generator v2.0 製品 ガ イ ド 』 (PG125) [参照 2] の ATG に関す る 説明 を 参照 し て く だ さ い。 ド ラ イ バー ソ フ ト ウ ェ ア は、
C:\Xilinx\SDK\2014.3\data\embeddedsw\XilinxProcessorIPLib\drivers\trafgen_v3_2\doc\html\ap
i\index.html にあ り ま す。 ト ラ フ ィ ッ ク の動的制御を実装す る 場合は、 こ のモー ド を使用 し ま すが、 こ のアプ リ ケー
シ ョ ン ノ ー ト では説明 し てい ません。
次に、 ト ラ フ ィ ッ ク プ ロ フ ァ イ ルを設定 し ます。 便宜上、 4 つのプ ロ フ ァ イ ル (Video、 PCIe、 Ethernet、 USB) があ ら か じ
め定義 さ れてい ます。 こ れ ら のプ ロ フ ァ イ ルの詳細は、 『LogiCORE IP AXI Traffic Generator v2.0 製品ガ イ ド 』 [参照 2] を参
XAPP1219 (v1.0) 2014 年 12 月 11 日
japan.xilinx.com
28
ま とめ
照 し て く だ さ い。 こ れ ら の各モー ド を使用 し て、 イ ン タ ーフ ェ イ スや生成す る ト ラ フ ィ ッ ク に関す る さ ま ざ ま な項目を選
択で き ます。 あ ら か じ め定義 さ れてい る すべてのモー ド が、 モデル化す る ト ラ フ ィ ッ ク の要件を満た さ ない場合は、 Data
モー ド を使用 し ます。 例では、 こ のモー ド を使用 し てい ます。 ユーザーは、 次の項目を変更で き ます。
•
AXI オプシ ョ ン : 生成 さ れ る ト ラ ンザ ク シ ョ ンのデー タ 幅、 ベース ア ド レ ス、 高位ア ド レ ス。 こ れ ら は、 Zynq-7000
AP SoC の DDR 用に設定 さ れ ます。 1 つの設定を変更す る と 、 オ ンチ ッ プ メ モ リ (OCM) の こ れ ら の設定が変更 さ れ
る 場合があ り ます。
•
Data モー ド :
°
パ タ ーン (固定ま たは ラ ン ダ ム サ イ ズ)、 ラ ン ダ ム サ イ ズの最小/最大転送サ イ ズ、 固定サ イ ズの転送長。
°
ト ラ ンザ ク シ ョ ン タ イ プ。 ATG の読み出 し 、 書 き 込み、 読み出 し /書き 込み、 お よ びそれ ら のパーセ ン テージ。
°
例で使用 さ れ る 設定は、 固定の 16 ワ ー ド バース ト 、 50% の読み出 し と 50% の書き 込み。
°
ト ラ ンザ ク シ ョ ン間の イ ン タ ーバル (固定ま たは ラ ン ダ ム)。 イ ン タ ーバルの設定は 50 サ イ ク ルで、 ATG 用の ク
ロ ッ ク サ イ ク ル。 例では 100MHz ク ロ ッ ク を使用。
°
ト ラ ンザ ク シ ョ ン ア ド レ ッ シ ン グ。 固定のみ。 こ れは、 ア ド レ ス が イ ン ク リ メ ン ト ま たは ラ ン ダ ムのいずれかに
制限 さ れ る 。
こ のデザ イ ン を使用 し て ATG を変更す る こ と で、 Zynq-7000 AP SoC 用のアプ リ ケーシ ョ ン モデルを作成で き ます。
注記 : シ ス テ ムに過度の付加が与え ら れ る と 、 性能可視化 (Performance Visualization) の結果が不正にな り ます。 た と えば、
最初のセ ク シ ョ ンで示 し た リ フ ァ レ ン ス デザ イ ンで、各 ATG の イ ン タ ーバルを 30 サ イ ク ル未満に設定 し ます。その結果、
生成 さ れ る ト ラ フ ィ ッ ク は、 各 AXI イ ン タ ーフ ェ イ ス で 844MB/s、 合計する と 4,220MB/s にな り ます。 こ れは 533MHz で
100% の DDR 使用率 と な り 、(すべて と は言わないが) ほ と ん ど の DDR コ ン ト ロ ー ラ ーでは達成不可能です。Zynq-7000 AP
SoC の付加に関す る 詳細は、 『SDK ユーザー ガ イ ド : シ ス テ ム性能解析』 (UG1145) [参照 1] を参照 し て く だ さ い。
も う 一つ有効な方法 と し て、 ATG を既存 IP で置 き 換え る 方法があ り ます ( こ の場合、 Vivado ツールにすでに イ ン ポー ト さ
れてい る 必要があ る )。 IP を追加す る 場合は、 ATG を削除 し てか ら 独自 IP を追加 し ます。 こ の作業には、 Vivado アーキ テ
ク チ ャ お よ び IP イ ン テ グ レー タ ーに関す る 実用的な知識が必要です。 Vivado アーキ テ ク チ ャ お よ び IP イ ン テ グ レー タ ー
に精通 し ていない方は、 『Vivado Design Suite チ ュ ー ト リ アル : IP を使用 し た設計』 (UG939) [参照 7] お よ び 『Vivado Design
Suite ユーザー ガ イ ド : IP を使用 し た設計』 (UG896) [参照 8] を参照 し て く だ さ い。 Vivado 2014.2 の Document Navigator か
ら ア ク セ ス可能なデザ イ ン ハブ [参照 9] では、 役に立つ さ ま ざ ま な資料お よ びビデオ を提供 し てい ます。
ま とめ
こ のアプ リ ケーシ ョ ン ノ ー ト では、 All Programmable SoC の性能解析について包括的な説明を し てい ます。 こ の よ う に性
能を解析す る こ と で、 デバ イ ス が性能要件を満たす こ と が可能であ る か を判断で き ます。 CPU の ス ピー ド を着目す る だけ
な ら 簡単なのですが、 メ モ リ コ ン ト ロ ー ラ ーの効率が悪ければ、 CPU 動作は低速化 し ます。
こ こ では、 Zynq-7000 AP SoC をベース と す る アプ リ ケーシ ョ ンのモデル化に利用で き る リ フ ァ レ ン ス デザ イ ン を提供 し 、
こ れ ら を使用 し て実際に達成可能な性能を示 し ます。 こ のモデルは、 ユーザーが独自の ソ フ ト ウ ェ ア と 組み合わせ可能な
実際のハー ド ウ ェ ア内のデザ イ ン を採用 し てい ます。 こ れに よ っ て、 ユーザーのアプ リ ケーシ ョ ン を モデル化 し て、 早期
の設計段階で性能を評価で き ます。
こ のモデルの ATG を変更、 あ る いは独自 IP に置 き 換え る こ と で、 アプ リ ケーシ ョ ン を厳密にモデル化で き ます。 こ れに
よ り 、 Zynq-7000 デバ イ ス で達成で き る こ と 、 で き ない こ と を よ り 詳 し く 解析で き ます。
SDK の機能 と 性能解析用の IP を組み合わせて使用す る こ と で、 Zynq-7000 AP SoC がユーザー アプ リ ケーシ ョ ンの性能要
件を満たすか ど う か を確実に評価で き ます。
リ フ ァ レ ン ス デザイ ン
こ のアプ リ ケーシ ョ ン ノ ー ト の リ フ ァ レ ン ス デザ イ ンは、 ザ イ リ ン ク ス の ウ ェ ブサ イ ト か ら ダ ウ ン ロ ー ド で き ます。
表 2 に、 リ フ ァ レ ン ス デザ イ ンの詳細を示 し ます。
XAPP1219 (v1.0) 2014 年 12 月 11 日
japan.xilinx.com
29
参考資料
表 2 : リ フ ァ レ ン ス デザイ ンの詳細
パラ メ ー タ ー
説明
全般
Forrest Pickett
開発者
XC7Z020
デバ イ ス番号
ソ ース コ ー ド の提供
あり
C
ソ ース コ ー ド の形式 (提供 さ れ る 場合)
AXI Traffic Generator
既存 リ フ ァ レ ン ス デザ イ ンか ら 使用 し た IP
AXI Performance Monitor
シ ミ ュ レーシ ョ ン
論理シ ミ ュ レーシ ョ ンの実施
N/A
タ イ ミ ン グ シ ミ ュ レーシ ョ ンの実施
N/A
論理シ ミ ュ レ ーシ ョ ンお よ び タ イ ミ ン グ シ ミ ュ レ ーシ ョ ン
用テ ス ト ベンチの提供
N/A
テ ス ト ベンチの形式
N/A
使用 し たシ ミ ュ レー タ /バージ ョ ン
N/A
SPICE/IBIS シ ミ ュ レーシ ョ ンの実施
N/A
使用 し た イ ンプ リ メ ン テーシ ョ ン ツール/バージ ョ ン
ザ イ リ ン ク ス SDK (2014.3)
N/A
ス タ テ ィ ッ ク タ イ ミ ン グ解析の実施
ハー ド ウ ェ ア検証
N/A
ハー ド ウ ェ ア検証の実施
Vivado Design Suite 2014.3
使用 し たプ ラ ッ ト フ ォーム
参考資料
1.
『SDK ユーザー ガ イ ド : シ ス テ ム性能解析』 (UG1145)
2.
『LogiCORE IP AXI Traffic Generator v2.0 製品ガ イ ド 』 (PG125)
3.
『LogiCORE IP AXI Performance Monitor v5.0 製品ガ イ ド 』 (PG037)
4.
『UltraFast エンベデ ッ ド デザ イ ン設計手法ガ イ ド 』 (UG1046)
5.
『Zynq-7000 All Programmable SoC ソ フ ト ウ ェ ア開発者向けガ イ ド 』 (UG821)
6.
『Zynq-7000 All Programmable SoC : コ ン セプ ト 、 ツール、 テ ク ニ ッ ク ガ イ ド : 効率的なエンベデ ッ ド シ ス テ ム構築を
サポー ト す る ハンデ ィ ガ イ ド 』 (UG873)
7.
『Vivado Design Suite チ ュ ー ト リ アル : IP を使用 し た設計』 (UG939)
8.
『Vivado Design Suite ユーザー ガ イ ド : IP を使用 し た設計』 (UG896)
9.
Vivado 2014.2 - Document Navigator のデザ イ ン ハブ (Document Navigator は Vivado Design Suite か ら ア ク セ ス可能)
10. 『AXI リ フ ァ レ ン ス ガ イ ド 』 (UG761)
XAPP1219 (v1.0) 2014 年 12 月 11 日
japan.xilinx.com
30
改訂履歴
改訂履歴
次の表に、 こ の文書の改訂履歴を示 し ます。
日付
バージ ョ ン
2014 年 12 月 11 日
1.0
内容
初版
法的通知
The information disclosed to you hereunder (the “Materials”) is provided solely for the selection and use of Xilinx products.To the maximum extent
permitted by applicable law:(1) Materials are made available "AS IS" and with all faults, Xilinx hereby DISCLAIMS ALL WARRANTIES AND
CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY,
NON-INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and (2) Xilinx shall not be liable (whether in contract or tort, including
negligence, or under any other theory of liability) for any loss or damage of any kind or nature related to, arising under, or in connection with, the
Materials (including your use of the Materials), including for any direct, indirect, special, incidental, or consequential loss or damage (including loss of
data, profits, goodwill, or any type of loss or damage suffered as a result of any action brought by a third party) even if such damage or loss was reasonably
foreseeable or Xilinx had been advised of the possibility of the same.Xilinx assumes no obligation to correct any errors contained in the Materials or to
notify you of updates to the Materials or to product specifications.You may not reproduce, modify, distribute, or publicly display the Materials without
prior written consent.Certain products are subject to the terms and conditions of Xilinx’s limited warranty, please refer to Xilinx’s Terms of Sale which
can be viewed at http://www.xilinx.com/legal.htm#tos; IP cores may be subject to warranty and support terms contained in a license issued to you by
Xilinx.Xilinx products are not designed or intended to be fail-safe or for use in any application requiring fail-safe performance; you assume sole risk and
liability for use of Xilinx products in such critical applications, please refer to Xilinx’s Terms of Sale which can be viewed at
http://www.xilinx.com/legal.htm#tos.
Automotive Applications Disclaimer
XILINX PRODUCTS ARE NOT DESIGNED OR INTENDED TO BE FAIL-SAFE, OR FOR USE IN ANY APPLICATION REQUIRING FAIL-SAFE
PERFORMANCE, SUCH AS APPLICATIONS RELATED TO:(I) THE DEPLOYMENT OF AIRBAGS, (II) CONTROL OF A VEHICLE, UNLESS
THERE IS A FAIL-SAFE OR REDUNDANCY FEATURE (WHICH DOES NOT INCLUDE USE OF SOFTWARE IN THE XILINX DEVICE TO
IMPLEMENT THE REDUNDANCY) AND A WARNING SIGNAL UPON FAILURE TO THE OPERATOR, OR (III) USES THAT COULD LEAD
TO DEATH OR PERSONAL INJURY.CUSTOMER ASSUMES THE SOLE RISK AND LIABILITY OF ANY USE OF XILINX PRODUCTS IN
SUCH APPLICATIONS.
© Copyright 2014 Xilinx, Inc. Xilinx, the Xilinx logo, Artix, ISE, Kintex, Spartan, Virtex, Vivado, Zynq, and other designated brands included herein are
trademarks of Xilinx in the United States and other countries.Cortex is a trademark of ARM in the EU and other countries.PCI, PCIe, and PCI Express
are trademarks of PCI-SIG and used under license.All other trademarks are the property of their respective owners.
こ の資料に関す る フ ィ ー ド バ ッ ク お よ び リ ン ク な ど の問題につ き ま し ては、 [email protected] ま で、 ま たは各ページの右下
にあ る [フ ィ ー ド バ ッ ク 送信] ボ タ ン を ク リ ッ ク す る と 表示 さ れ る フ ォームか ら お知 ら せ く だ さ い。いただ き ま し た ご意見を参考に早急に
対応 さ せていただ き ます。 なお、 こ の メ ール ア ド レ スへのお問い合わせは受け付けてお り ません。 あ ら か じ めご了承 く だ さ い。
XAPP1219 (v1.0) 2014 年 12 月 11 日
japan.xilinx.com
31
Fly UP