Zynq UltraScale+ MPSoC エンベデッド設計手法ガ...

203
Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド UG1228 (v1.0) 2017 3 31 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資料に よっては英語版の更新に対応していないものがあります。日本語版は参考用としてご使用の上、最新情報につきまし ては、必ず最新英語版をご参照ください。

Transcript of Zynq UltraScale+ MPSoC エンベデッド設計手法ガ...

Page 1: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

Zynq UltraScale+ MPSoC エンベデ ッ ド設計手法ガイ ド

UG1228 (v1.0) 2017 年 3 月 31 日

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

Page 2: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 2UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

改訂履歴

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

日付 バージ ョ ン 改訂内容

初版2017 年 3 月 31 日 1.0

Page 3: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

目次

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

第 1 章: 概要ブロ ッ ク図 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

ベク ター設計手法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

資料および ト レーニングへのア ク セス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

第 2 章: プロセ ッ シング システムプロセ ッ シング要件を定義する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

プロセ ッ シング システムの設計手法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

ヘテ ロ ジニアス コ ンピ ューテ ィ ングの概念 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

アプ リ ケーシ ョ ン プロセ ッ シング ユニ ッ ト (APU). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

APU の仮想化サポー ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

リ アルタ イ ム プロセ ッ シング ユニ ッ ト (RPU). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

イ ン ターコネ ク ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

割 り 込み . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

PL を使用し たワーク ロード ア ク セラ レーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

汎用コ ンピ ューテ ィ ングのア ク セ ラ レーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

第 3 章: システム ソ フ ト ウ ェ アの検討事項システム ソ フ ト ウ ェ ア要件を定義する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

システム ソ フ ト ウ ェ アの設計手法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

ブー ト プロセス ソ フ ト ウ ェア . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

システム ソ フ ト ウ ェ ア ス タ ッ ク . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

OpenAMP フ レーム ワーク . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

Xen ハイパーバイザー. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

PMU ソ フ ト ウ ェア . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

ソ フ ト ウ ェア開発ツール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

開発フ ロー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

第 4 章: 電源に関する注意事項電源の要件を定義する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

パワー マネージ メ ン ト の調整方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

4 つの主要電源ド メ イ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

電源ア イ ラ ン ド と パワー ゲーテ ィ ング . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

プラ ッ ト フ ォーム管理ユニ ッ ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

パワー マネージ メ ン ト ソ フ ト ウ ェアのアーキテ クチャ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89Xilinx Power Estimator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

第 5 章: プログラマブル ロジ ッ クPL の要件を定義する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 3UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 4: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

PL の設計手法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

ロ ジ ッ ク . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

統合 IP のサポー ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

コ ンフ ィ ギ ュ レーシ ョ ンおよびパーシ ャル リ コ ンフ ィ ギュ レーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

消費電力削減機能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

第 6 章: メ モ リメ モ リ の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

メ モ リ 要件を定義する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

メ モ リ の設計手法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

ビル ト イ ン メ モ リ ブロ ッ ク . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

PS DDR メ モ リ およびコ ン ト ローラー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

グ ローバル システム メ モ リ マ ッ プ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

PS DMA コ ン ト ローラー. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

PL を使用する外部 メ モ リ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

第 7 章: リ ソースの分離と分割リ ソース分離/分割の要件を定義する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

リ ソースの分離と分割に関する設計手法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119ARM TrustZone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

システム メ モ リ 管理ユニ ッ ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

ザイ リ ン ク ス メ モ リ 保護ユニ ッ ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

ザイ リ ン ク ス ペ リ フ ェ ラル保護ユニ ッ ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

Xen ハイパーバイザー. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138

第 8 章: セキュ リ テ ィセキ ュ リ テ ィ 要件を定義する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

セキ ュ リ テ ィ に関する設計手法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140

セキ ュ リ テ ィ 機能の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

コ ンフ ィ ギ ュ レーシ ョ ンのセキ ュ リ テ ィ と セキ ュ ア ブー ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

デバイ ス とデータのセキ ュ リ テ ィ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

DPA 攻撃からの保護 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

CSU ハード ウ ェ ア ア ク セラ レータ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

機能安全 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

第 9 章: マルチ メ デ ィ アマルチ メ デ ィ ア要件を定義する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

マルチ メ デ ィ アに関する設計手法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154DisplayPort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

GPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

VCU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

第 10 章: ペ リ フ ェ ラルペ リ フ ェ ラル要件を定義する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175

ペ リ フ ェ ラルの設計手法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176GPIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179

I2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182

SPI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183

UART . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184

CAN コ ン ト ローラー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 4UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 5: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

NAND. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188

SD/SDIO/eMMC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189

Quad-SPI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190

ギガビ ッ ト イーサネ ッ ト コ ン ト ローラー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193USB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196

PCI Express. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197

SATA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199

DisplayPort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200

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

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

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

参考資料 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202

法的通知 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 5UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 6: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 1 章

概要Zynq® UltraScale+™ MPSoC プラ ッ ト フ ォームは、 業界初の完全な All Programmable ヘテ ロ ジニアス マルチプロセ ッ

シング SoC (システム オン チッ プ) デバイ スです。 自動車業界、 大規模データベース、 さ らには宇宙開発まで多 く の

アプ リ ケーシ ョ ンにおいてスマー ト システムの複雑さ が増し てお り 、 世代交代を重ねる SoC に対する要求も と ど ま

る と こ ろを知 り ません。 電源制御、 リ アルタ イ ム アプ リ ケーシ ョ ン、 強力なグ ラ フ ィ ッ ク ス機能、 および処理性能

に対する要求の高ま り によ り 、 大限の柔軟性を備えたプラ ッ ト フ ォームが必要と されています。 Zynq UltraScale+

MPSoC プラ ッ ト フ ォームは、 先進のシステム設計に必要な 先端の機能を備えています。

TSMC (Taiwan Semiconductor Manufacturing Company) 社の次世代 16 nm FinFET プロセス ノード を採用し た Zynq

UltraScale+ MPSoC は、 スケーラブルな 32 または 64 ビ ッ ト マルチプロセ ッ サ CPU、 リ アルタ イ ム グ ラ フ ィ ッ ク スお

よびビデオ処理専用のハード エンジン、 先進の高速ペ リ フ ェ ラル、 およびプロ グ ラ マブル ロ ジ ッ ク を内蔵し ていま

す。 このプラ ッ ト フ ォームはデュ アルコ アまたはク ワ ッ ド コ アの APU によ り 大限のス ケーラ ビ リ テ ィ を実現し て

いるほか、 グ ラ フ ィ ッ ク スおよびビデオ パイプラ イ ンなどの重要なアプ リ ケーシ ョ ンを専用のプロセ ッ シング ブ

ロ ッ ク にオフ ロード でき ます。 また、 効果的な電源ド メ イ ンおよび電源ア イ ラ ン ド のゲーテ ィ ングによ り ブロ ッ ク

単位でのオン/オフ も可能です。 幅広いイ ン ターコネ ク ト オプシ ョ ン、 デジ タル信号処理 (DSP) ブロ ッ ク、 およびプ

ロ グ ラ マブル ロ ジ ッ ク の選択肢を豊富に備えた Zynq UltraScale+ MPSoC には、 ユーザー アプ リ ケーシ ョ ンの多様な

要件に応え る柔軟性があ り ます。

このガイ ド は、 Zynq UltraScale+ MPSoC の機能セ ッ ト に関連し てユーザー デザイ ンの意思決定を支援する ツール と

なる ものです。 推奨事項 と ト レード オフを十分に評価し た上で、 個々の製品に 適な判断を し て く ださい。 このガ

イ ド は、Zynq UltraScale+ MPSoC の主要な機能にシステム設計要件をマ ッ プし た ものを図で表し たベク ター設計手法

( 「ベク ター設計手法」 参照) に基づいて構成し ています。 ベク ター設計手法はプラ ッ ト フ ォームの機能を 大限に

利用する こ と を目的 と し た ものではな く 、 製品をプラ ッ ト フ ォーム上に構築する際に実行でき る ト レード オフ と ソ

リ ューシ ョ ンを視覚的に表現する ものです。 この結果、 全体的な ソ リ ューシ ョ ンの中で特定のプラ ッ ト フ ォーム機

能の優先度が相対的に低下する こ と があ り ます。 ベク ター設計手法を使用する と、 設計者はチーム内のハード ウ ェ

ア設計者、 アーキテ ク ト 、 ソ フ ト ウ ェ ア エンジニアなどほかの メ ンバーに対し、 それぞれの職務に関係のあ るセ ク

シ ョ ンの設計手法を参照する よ う に指示でき ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 6UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 7: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 1 章: 概要

ブロ ッ ク図

Zynq UltraScale+ MPSoC デバイ スはプロセ ッ シング システム (PS) と プロ グ ラ マブル ロ ジ ッ ク (PL) の 2 つのブロ ッ ク

に大別され、 これらは別々の電源ド メ イ ンに属し ています。

PS はス タ ン ド ア ロ ンの MPSoC デバイ ス と し て動作し、 PL に電源を投入し な く て もブー ト 可能で、 かつ 8 ページの

図 1-1 に示すすべての機能をサポー ト でき ます。 このマニュ アルでは、 内蔵の各ブロ ッ ク について説明し ます。

Zynq UltraScale+ MPSoC デバイ スには次の 4 つの電源ド メ イ ンがあ り ます。

• 低電力ド メ イ ン (LPD)

• フル電力ド メ イ ン (FPD)

• PL 電源ド メ イ ン (PLPD)

• バッ テ リ 電源ド メ イ ン (BPD)

各電源ド メ イ ンはそれぞれ分離させる こ と ができ ます。 LPD に属するプラ ッ ト フ ォーム管理ユニ ッ ト (PMU) を使用

する と、 各電源ド メ イ ンを容易に分離でき ます。 このよ う に各電源ド メ イ ンを個別に切 り 離すこ と ができ る ため、

安全およびセキ ュ リ テ ィ アプ リ ケーシ ョ ンで特に重要と なる機能の分離が可能です。 また、 不測の事態によ ってい

ずれかの電源ド メ イ ンへの電源供給が停止する と、 ド メ イ ンの分離が自動的に実行されます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 7UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 8: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 1 章: 概要

図 1‐1: ブロ ッ ク図

X-Ref Target - Figure 1-1

RPU

256 KBOCM

LPD-DMA

CSUPMU

Processing System

Cortex-R532 KB I/D

128 KB TCM

Cortex-R532 KB I/D

128 KB TCM

4 x 1GE

APU

Cortex-A5332 KB I/D

Cortex-A5332 KB I/D

Cortex-A5332 KB I/D

Cortex-A5332 KB I/D

GIC

SCU

ACP 1 MB L2

GPUMali-400 MP2

64 KB L2

2 x USB 3.0

NAND x8ONFI 3.1

2 x SD3.0/eMMC4.51

Quad-SPIx 8

2 x SPI

2 x CAN

2 x I2C

2 x UART

GPIOs

SYSMON

MIO Central

Switch

FPD-DMA

VCU H.264/H.265

PCIe Gen4

DisplayPort v1.2 x1, x2

2 x SATAv3.0

PCIe Gen2x1, x2, or x4

SHA3AES-GCMRSA

Processor System BPU

DDRC (DDR4/3/3L, LPDDR3/4)

Programmable Logic

128 KB RAM

PL_

LPD

HP

GIC

LLLP

LLLP

RGMII

ULPI PS-G

TR

SMMU/CCI

GFC

USB 3.0

SGMII

Low Power Switch

To ACP

Low Power Full PowerBattery Power

32-bit/64-bit

64-bitM S

128-bitM S

UG1085_c1_01_091715

LPD

_PL

HP

CH

PM

GTY Quad

GTH Quad

Interlaken 100G Ethernet

AC

E DisplayPort Video and

Audio Interface

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 8UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 9: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 1 章: 概要

ベク ター設計手法

ベク ター設計手法を Zynq UltraScale+ MPSoC デバイ スに適用する と、 次の図のよ う にな り ます。

図 1‐2: ベク ター設計手法の図

X-Ref Target - Figure 1-2

Power

Processing System

Programmable Logic

Real-Time Processing

Security

Multimedia

Memory

Peripherals

System Software Configurations

Resource Isolationand Partitioning

X18044-032917

この図で、 中心から放射状に伸びている線は Zynq UltraScale+ MPSoC プラ ッ ト フ ォームの各機能領域を表し ていま

す。 中心点はその機能領域の必要性がゼロであ る こ と を示し、 外側に向か う ほど必要性と複雑さが大き く なってい

き ます。 システム アーキテ ク ト は FAE またはセールス エンジニア と共同で、 各機能領域がどの程度デザイ ンに関係

するかを この図にプロ ッ ト し ます。 これらの点を結ぶ と、 どのよ う な問題に対処すればよいのかを全体像と し て把

握でき ます。

例 と し て、 先進運転支援システム (ADAS) の場合を考えてみます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 9UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 10: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 1 章: 概要

図 1‐3: ベク ター設計手法の例: 先進運転支援システム

X-Ref Target - Figure 1-3

Power

Processing System

Programmable Logic

m

Progra

Real-Time Processing

Security

Multimedia

Memory

Peripherals

System Software Configurations

Resource Isolationand Partitioning

Advanced Driver Assistance System (ADAS) Design Example

ystem

P

Re

Multimedia

ls

re s

Resoand Processing Sy

ySecurity

ource Isolationd Partitioning

yMemory

g

70

80

90

100

60

50

40

30

20

10

0

X18043-032917

この例では、 システム ソ フ ト ウ ェ ア コ ンフ ィ ギュ レーシ ョ ン、 リ アルタ イ ム処理、 プロ グ ラ マブル ロ ジ ッ ク、 およ

びプロセ ッ シング システムが 大値を示し ています。 し たがって、 こ のガ イ ド でこれら 4 つのベク ターについて説

明し た各章を重点的に読み、 MPSoC のどの部分に注意を向ければよいか、 そし てそれぞれの長所/短所および制限事

項を理解すればよいこ と にな り ます。 消費電力、 セキ ュ リ テ ィ 、 マルチ メ デ ィ ア、 ペ リ フ ェ ラル、 および リ ソース

分離/分割の必要性は平均的なレベルであ るため、 これらの領域に対する作業量はそれに応じ て減らすこ と ができ ま

す。 その分だけ、 製品に と ってよ り 重要なベク ターに作業を集中でき ます。 つま り 、 このガイ ド を使用する と要件

のレベルに応じ てデザイ ンの取捨選択を し、 Zynq UltraScale+ MPSoC ベースのデザイ ンに対し て労力と リ ソースのめ

り は り をつけた 適化が可能 と な り ます。

注記: この図は、 このガイ ド の各章の重要度を測る柔軟なツール と なる ものですが、 無視し て よいベク ターがあ るわ

けではあ り ません。 このガイ ド の設計手法をすべて読んでから 終的な設計判断を下す必要があ り ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 10UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 11: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 1 章: 概要

資料および ト レーニングへのアクセス

デザイ ン ク ロージ ャの短時間での達成およびデザイ ンの総合的な成功のためには、 適切な情報にタ イ ム リ ーにア ク

セスでき る こ と が重要です。 ザイ リ ン ク スのツールをなるべ く 短期間で習熟し ていただける よ う 、 リ フ ァ レ ン ス ガ

イ ド、 ユーザー ガイ ド、 チュー ト リ アル、 ビデオを用意し ています。 こ のセ ク シ ョ ンでは、 資料および ト レーニン

グの入手先を示し ます。

Documentation Navigator の使用

ザイ リ ン ク ス ツールには Xilinx Documentation Navigator が付属し ます。 ザイ リ ン ク スのソ フ ト ウ ェアおよびハード

ウ ェアに関連する資料、 ト レーニング、 サポー ト マテ リ アルへのア ク セス と管理はすべて こ の環境から実行でき ま

す。 Documentation Navigator では、 新および以前のバージ ョ ンのザイ リ ン ク ス資料を参照でき ます。 リ リ ース、 資

料タ イプ、 またはデザイ ン タ ス ク をフ ィ ルター条件に指定し て資料を表示でき ます。 検索機能を使用する と、 必要

な情報をすばや く 見つける こ と ができ ます。

Documentation Navigator はザイ リ ン ク スのウ ェブサイ ト を スキ ャ ン し て、 資料の更新をチェ ッ ク し ます。 更新があ る

場合は [Update Catalog] 機能で通知され、 更新された文書の詳細が表示されます。 カ タ ロ グを 新にする よ う メ ッ

セージが表示された場合は、 カ タ ロ グをア ッ プデー ト し て資料を 新の状態にし てお く こ と をお勧めし ます。 資料

を指定し てローカル資料カ タ ロ グを作成および管理する こ と もでき ます。

Documentation Navigator には、 [Design Hub View] と い う タブがあ り ます。 デザイ ン ハブは、 Zynq UltraScale+ MPSoC

デザイ ン概要、 PetaLinux ツール、 ザイ リ ン ク ス ソ フ ト ウ ェ ア開発キ ッ ト (SDK) などデザイ ン ア ク テ ィ ビテ ィ ご と に

関連する資料を集めた ものです。 資料およびビデオがそのタ ス ク を学びやすいよ う に並べられています。 各デザイ

ン ハブには、 [Embedded Processor Design] セ ク シ ョ ンや [Design Resources] セ ク シ ョ ン、 およびサポー ト リ ソースの

一覧などが表示されます。 新規ユーザーは、 [Embedded Processor Design] セ ク シ ョ ンから始める こ と を推奨し ます (

図 1-4 参照)。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 11UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 13: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 2 章

プロセ ッ シング システムシステム設計者に と って、 Zynq® UltraScale+™ MPSoC デバイ スは内蔵のプロセ ッ シング機能を非常に強力かつ柔軟

に利用でき る利点があ り ます。 アプ リ ケーシ ョ ン プロセ ッ シング ユニ ッ ト (APU) および リ アルタ イ ム プロセ ッ シン

グ ユニ ッ ト (RPU) を適宜構成でき るだけでな く 、 Zynq UltraScale+ MPSoC デバイ スには各種タ ス ク の処理に特化し

た専用のプロセ ッ シング ブロ ッ ク がい く つかあ り ます。 こ の章では、 Zynq UltraScale+ MPSoC デバイ スのプロセ ッ

シング システムの機能、 イ ン ターコネ ク ト 、 およびその使用に関する推奨事項について説明し ます。

プロセ ッ シング要件を定義する

近のエンベデッ ド デザイ ンの多 く はワーク ロード、 制約、 および外部への依存性が複雑に混在し た上で成 り 立っ

ています。 アプ リ ケーシ ョ ンの個々のプロセ ッ シング要件について、 Zynq UltraScale+ MPSoC デバイ スが備え る多 く

のプロセ ッ シング ブロ ッ ク の中で も処理に適し た ものを見つける こ と が、 全体的な製品を成功させる上で非常に

重要です。 次のセ ク シ ョ ンで Zynq UltraScale+ MPSoC デバイ スの各プロセ ッ シング ブロ ッ ク の基本概念を紹介し た

後、 この章全体で各ブロ ッ クおよび重要なコ ンポーネン ト について詳し く 説明し ていき ます。

これらの説明に移る前に、 まず目的のデザイ ンに関し て次の質問に答えてみて く ださい。

1. そのアプ リ ケーシ ョ ンの重大な要件は何ですか。 それぞれの部分について次の質問に答えて く ださい。

a. 時間的制約の厳しいデータ を常時処理し ますか。

b. リ アルタ イ ム性が必要、 または ミ ッ シ ョ ン ク リ テ ィ カルなワーク ロード ですか。

c. マルチ メ デ ィ アに関係し ますか。 それ と も汎用コ ンピ ューテ ィ ングに属する ワーク ロード ですか。

d. プロセ ッ シング システム よ り も高速な処理が必要ですか。

2. システム コ ンポーネン ト 間でどのよ う な通信が必要ですか。 それぞれのコ ンポーネン ト 間について次の質問に

答えて く ださい。

a. データ交換が必要ですか。

b. 必要な場合、 どれだけのデータ をどの程度の頻度で交換し ますか。

c. 重要な イベン ト を互いに通知する必要があ り ますか。

3. 外部世界 と の間でどのよ う な通信が必要ですか。 それぞれの部分について次の質問に答えて く ださい。

a. メ モ リ についてどのよ う な要件があ り ますか。

b. 割 り 込みによ って ト リ ガーされますか。 それ と も割 り 込みに応答し ますか。

c. ペ リ フ ェ ラル I/O を使用する必要があ り ますか。

4. 消費電力の制約が厳しいのはデザイ ン内のどのコ ンポーネン ト ですか。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 13UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 14: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 2 章: プロセ ッ シング システム

プロセ ッ シング システムの設計手法

Zynq UltraScale+ MPSoC デバイ スは柔軟性が高いため、 デバイ スのプロセ ッ シング機能を十分に理解し てからデザイ

ンをマ ッ プする必要があ り ます。 そ こ で、 第 1 章で示し たシステム全体のブロ ッ ク図から Zynq UltraScale+ MPSoC デ

バイ スの主要なプロセ ッ シング ブロ ッ クおよびイ ン ターコネ ク ト によ る これらの接続を抜き出し た概略図を次に示

し ます。 この図で、 何らかの形でカ ス タマイ ズが可能なプロセ ッ シング ブロ ッ クは緑で示し てあ り ます。

図 2‐1: デバイス全体のプロセ ッ シング可能ブロ ッ ク

X-Ref Target - Figure 2-1

RPU PMU LPDPeripherals

Inter-ProcessorCommunication

Framework(OpenAMP)

APU GPU*

CSU

PL

FPDPeripherals

Full Power Domain

Low Power Domain

Programmable Logic Power Domain

PLPeripherals AcceleratorsAccelerators

* GPU support is OS-specific

X18660-032917

注記: 図 2-1 は Zynq UltraScale+ MPSoC デバイ スの内部ブロ ッ ク を正確に表現し た ものではな く 、 このセ ク シ ョ ンで

説明する概念を図にし た ものです。

以降のセ ク シ ョ ンでは、 Zynq UltraScale+ MPSoC デバイ スの主要なブロ ッ ク の詳細、 および関連する割 り 込み機能、

イ ン ターコネ ク ト 、 および主なプロセ ッ サ間通信 メ カニズムについて説明し ます。 た と えばイ ン ターコネ ク ト は種

類の異なる複数のブロ ッ ク で構成されてお り 、 本来は各ブロ ッ ク について個別に説明が必要です。 しかし こ こ では

システムの各部分のハイ レベル機能に絞って説明し ます。

個々のデザイ ンに存在するプロセ ッ シング要件を見る と、 それがどのよ う な種類のものであれ、 前のセ ク シ ョ ンの

質問内容から もわかる よ う にユーザーは次の点を制御でき ます。

• 処理の実行場所 (プロセ ッ シング ブロ ッ ク )

• プロセ ッ シング ブロ ッ ク間のイ ン ターコネ ク ト

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 14UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 15: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 2 章: プロセ ッ シング システム

• 外部世界 と の通信

° メ モ リ

° 割 り 込み

° ペ リ フ ェ ラル I/O

処理の実行場所は、 ワーク ロード の種類によ って選択肢を絞 り 込むこ と ができ ます。

表 2‐1: 各プロセ ッ シング ブロ ッ クに適し たワーク ロー ド

ブロ ッ ク 適性 理想的なワーク ロー ド

• Linux などのハイ レベル OS のサポー ト

• ハイパーバイザー ベースのコ ンピ ューテ ィ ング

• 対称型マルチプロセ ッ シングおよびスーパー

バイザー付き非対称型マルチプロセ ッ シング

• HMI/UX

• ビジネス ロ ジ ッ ク

• ネ ッ ト ワーク /ク ラ ウ ド と の通信

• 確定的動作

• 低レ イ テンシの メ モ リ ア ク セス

• 確定的な応答時間が必要 と される ソ フ ト

ウ ェア

• セーフテ ィ ク リ テ ィ カル ソ フ ト ウ ェア

• 標準規格に準拠し た ソ フ ト ウ ェ ア ス タ ッ ク

(無線など)

• アプ リ ケーシ ョ ンのア ク セ ラ レーシ ョ ン • ア ク セラ レーシ ョ ン/並列化

• 各種エフ ェ ク ト 、 変換、 フ ィ ルタ リ ング、

プロセ ッ シング、 エン コード /デコード の

ハード ウ ェア ア ク セラ レーシ ョ ン

• Linux 環境での 2D および 3D グ ラ フ ィ ッ ク ス ア ク セ ラ レーシ ョ ン

• デ ィ スプレ イ

• マルチ メ デ ィ ア

これらは一般的なガイ ド ラ イ ンであ り 、 実際のデザイ ンでは異なる アプローチが必要と なる こ と があ り ます。 特定

のワーク ロード をどのプロセ ッ シング ブロ ッ ク で処理すべきかは、 次に示すデシジ ョ ン ツ リ ーでも判断でき ます。

APU

RPU

PL

GPU

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 15UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 16: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 2 章: プロセ ッ シング システム

図 2‐2: 処理の実行場所を求めるデシジ ョ ン  ツ リー

X-Ref Target - Figure 2-2

Is it continuously processing time-sensitive data?

PL

Yes No

Is it real-time or mission critical?

Yes No

RPU

Is it multimedia?

Yes No

GPU* APU

Can it be optimized to PL?

Yes

* GPU support is OS-specific

X18706-032117

システムの各コ ンポーネン ト について、 この図に示し た質問には簡単に答え る こ と ができ るはずです。 一定の時間

枠内でデータ ス ト リ ーム または要求を継続的に処理する必要があ る場合、 これらのデータ ス ト リ ームや要求の処理

に関係する システム コ ンポーネン ト の大半をプロ グ ラ マブル ロ ジ ッ ク (PL) に置 く のが 適と考え られます。 この条

件に当てはま ら ないワーク ロード の う ち、 外部イベン ト に対し て確定的な (すなわち リ アルタ イ ムの) 応答が必要な

ワーク ロードや ミ ッ シ ョ ン ク リ テ ィ カルなワーク ロード は、 RPU での実行が適し ている と考え られます。 これらの

条件に当てはま ら ないワーク ロード は汎用コ ンピ ューテ ィ ングに属する問題 と考え られます。 これらは、 グ ラ

フ ィ ッ ク スに関係する ものであればグ ラ フ ィ ッ ク ス プロセ ッ シング ユニ ッ ト (GPU) で処理し、 それ以外は APU で

処理し ます。

また、 上記の条件に当てはめて RPU または APU での処理が適切と判断し た ソ フ ト ウ ェアであって も、 PL で処理し

た方が適切な場合があ り ます。 た と えば FFT のよ う に決ま った数式で機能を実行する ものや、 既知のステー ト また

はステー ト マシンで機能を実行する もの (そし て特にこれら を並列に実行する場合) は PL の一部 と し て内蔵するの

が適し ている と考え られます。

あ る機能を PL で処理し た方がよいかど う かは、 手動によ るテス ト と プロ タ イ ピングによ って見積も る こ と も でき ま

すが、 ザイ リ ン ク スはよ り 効果的な手段を提供し ています。 た と えば SDSoC™ およびザイ リ ン ク ス SDK 開発ツール

にはアプ リ ケーシ ョ ン コード のプロ フ ァ イ リ ング機能があ り 、 特に SDSoC では特定のコード セ ク シ ョ ンを PL にオ

フ ロード し て、 ボタ ンを ク リ ッ クするだけでパフ ォーマン ス テス ト を実行でき ます。 SDSoC は必要な ロ ジ ッ ク を自

動的に PL にコ ンパイルし、APU または RPU 側に残った ソ フ ト ウ ェ アが PL で高速化された ソ フ ト ウ ェアを透過的に

利用でき る よ う にするためのデータ ムーバーと ソ フ ト ウ ェア ド ラ イバーを自動的に割 り 当てます。 このよ う に、

SDSoC を使用する と必要な手順が大幅に簡略化され、 ソ フ ト ウ ェ ア ア ク セラ レーシ ョ ン プロセス を円滑に進める こ

と ができ ます。 し たがって、 SDSoC を使用するか手動でオフ ロードするかは、 イ ンプ リ メ ンテーシ ョ ンの容易さ と

ハン ド コーデ ィ ングによ る性能 適化の ト レード オフで決める こ と にな り ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 16UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 17: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 2 章: プロセ ッ シング システム

も う 1 つ、 各プロセ ッ シング ブロ ッ クの 大ク ロ ッ ク周波数も考慮する必要があ り ます。

• APU – 大 1.5 GHz

• RPU – 大 600 MHz

• GPU – 大 667 MHz

注記: これらは 大周波数であ る こ と に注意し て く ださい。 各ブロ ッ クは上に示し た周波数まで動作が可能ですが、

実際のデザイ ンにおいて これらのブロ ッ ク を 大周波数で常時動作させる こ と は現実的ではあ り ません。

Zynq UltraScale+ MPSoC デバイ スの APU は ARM® Cortex®-A53 プロセ ッ サを内蔵し ているため、 汎用コ ンピ ュー

テ ィ ング リ ソース と し ては も高性能です。 特に Zynq UltraScale+ MPSoC デバイ スでは Cortex-A53 プロセ ッサを

大 4 つ利用でき るため、 な るべ く 高い処理性能が必要なワーク ロード には APU が 初の候補と し て挙げられます。

ただし、 動作周波数が高いだけでは機能の実行に必ずし も有利 と はいえません。 た と えば リ アルタ イ ム ワーク ロー

ド には APU の Cortex-A53 プロセ ッサよ り も RPU の ARM® Cortex®-R5 プロセ ッサの方が適し ています。APU と RPU

のどち ら を選択するかは多 く の要因を考慮し て決める必要があ り ますが、 特に性能と確定的動作の ト レード オフは

重要な検討事項です。

あ る機能の実行に 適なブロ ッ ク が決ま った ら、 次に、 イ ン ターコネ ク ト を介し てブロ ッ ク間でデータ を移動する

適な方法、 および処理を実行する各ブロ ッ ク がシステム内部の各種プロセ ッ シング リ ソース、 および外部世界の

イ ン ターフ ェ イ ス / リ ソース と どのよ う に通信するのかを決定する必要があ り ます。 イ ン ターコネ ク ト と割 り 込みの

詳細は、 この章で後述し ます。 ペ リ フ ェ ラル I/O の詳細は、 第 10 章 「ペ リ フ ェ ラル」 を参照し て く ださ い。 メ モ リ

の詳細は、 第 6 章 「 メ モ リ 」 を参照し て く ださい。 PL 内蔵のア ク セ ラ レータ など、 PL の機能の詳細は、 第 5 章 「プ

ロ グ ラ マブル ロ ジ ッ ク」 を参照し て く ださい。

なお、 このガイ ド ラ イ ンで特定のプロセ ッ シング ブロ ッ クが候補に上がった と して も、 デザイ ンのその部分に関係す

るすべての内容を検討した結果、 別のプロセ ッ シング ブロ ッ クの方が製品要件によ り 適している と判断する こ と も十

分にあ り えます。 た と えば前出のデシジ ョ ン ツ リ ーでは、 リ アルタ イ ム ソ フ ト ウ ェアには RPU の使用が推奨されて

います。 しかしデザイ ンによ っては APU で リ アルタ イ ム オペレーテ ィ ング システム (RTOS) を実行し、 Cortex-R5 プ

ロセ ッサでベア メ タルを実行した方がよいこ と も あ り ます。 も う 1 つの例と してネ ッ ト ワーク通信があ り ます。 これ

までの説明に従 う と、 ネ ッ ト ワーク通信の実行には APU が 適と考え られます。 ただしそれは一般論で、 PL に内蔵

されている 100G イーサネ ッ ト および PCIe 用の統合ブロ ッ ク を組み合わせた方がよ り 効率よ く 実行でき る こ と も あ り

ます。 ザイ リ ン ク スのホワ イ ト ペーパー 『Zynq UltraScale+ MPSoC で圧倒的な低消費電力と柔軟性を実現』 (WP470) [

参照 10] では、 データ セン ター アプ リ ケーシ ョ ンの例を紹介しながら Zynq UltraScale+ MPSoC の柔軟性について説明

しています。 また、 この文書ではセン ト ラル先進運転支援システム (ADAS) モジュールおよびソ フ ト ウ ェア無線

(SDR) の例も取 り 上げてお り 、 デザイ ンの処理をどのよ う に分割すればよいかの参考にな り ます。

デザイ ンの処理をどのプロセ ッ シング ブロ ッ ク で実行するかを決める際にも う 1 つ考慮する必要があ るのが、 パ

ワー マネージ メ ン ト の問題です。 Zynq UltraScale+ MPSoC デバイ スのアーキテ クチャでは、 消費電力を きめ細か く

制御でき ます。 14 ページの図 2-1 に示し た電源ド メ イ ン もパワー マネージ メ ン ト の一部です。 パワー マネージ メ ン

ト の詳細は、 第 4 章 「電源に関する注意事項」 で説明し ます。 あ る ワーク ロード を Zynq UltraScale+ MPSoC デバイ

スのどのプロセ ッ シング ブロ ッ ク で実行するかを決める際には、 必ず全体的なパワー マネージ メ ン ト の要件 と の関

係を考慮する必要があ り ます。 た と えばあ る重要なアルゴ リ ズムを APU で実行し ている と し て、 あ る一定時間 APU

への電源供給を停止し たい場合、 そのアルゴ リ ズムの実行を PL または RPU に移す必要があ り ます。 前述の とお り 、

APU はシステムの中で も強力なブロ ッ ク と いえますが、 も消費電力が大きいブロ ッ ク でも あ り ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 17UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 18: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 2 章: プロセ ッ シング システム

ヘテロジニアス コ ンピ ューテ ィ ングの概念

Zynq UltraScale+ MPSoC デバイ スおよびその周辺機能の処理能力を理解するには、 ヘテロ ジニアス コ ンピ ューテ ィ

ング分野に特有の重要な概念をい く つか理解し てお く 必要があ り ます。 し たがって、 こ こ ではこの文書および Zynq

UltraScale+ MPSoC デバイ スに関する資料全般で使用する用語について簡単に説明し ます。

Zynq UltraScale+ MPSoC デバイ スには、 マルチプロセ ッ シング コ ンポーネン ト (互いに並列に動作するプロセ ッ サ)

のレ イヤーが大き く 2 つあ り ます。 初のレ イヤーは、 次の主要なプロセ ッ シング ブロ ッ ク で構成されます。

• APU

• RPU

• PL

• GPU

2 番目のレ イヤーと し て、 上記のブロ ッ ク内部に次のプロセ ッ シング ユニ ッ ト があ り ます。

• APU 内部: 2 つまたは 4 つの Cortex-A53 コ ア

• RPU 内部: 2 つの Cortex-R5 プロセ ッサ コ ア

• PL 内部: PL に 適化されたアプ リ ケーシ ョ ン、 および MicroBlaze™ プロセ ッサ イ ン ス タ ン ス

• GPU 内部: 複数のグ ラ フ ィ ッ ク ス処理パイプラ イ ン

Zynq UltraScale+ MPSoC デバイ スの主要コ ンポーネン ト ど う しの関係は、 一般に 「非対称」 と考え られます。 つま り

APU、 RPU、 PL、 GPU はそれぞれ異な る長所と短所を備えてお り 、 実行する OS も同じ と は限らず、 ワーク ロード

を これらブロ ッ ク間でシームレ スに移動する こ と もでき ません。 これらいずれかのコ ンポーネン ト を使用し てワー

ク ロード を実行する場合は、 使用する コ ンポーネン ト に合ったワーク ロード を作成する必要があ り ます。 これを非

対称型マルチプロセ ッ シング (AMP) と呼びます。

APU 内部の Cortex-A53 プロセ ッサど う しの関係は、 次の 4 つのいずれかの形態を と り ます。

• すべての Cortex-A53 プロセ ッサ コ アで Linux など同じ OS を実行する場合 (これも推奨構成の 1 つ)、 これらは

互いに 「対称な」 関係にあ る と いいます。 この場合、 共通の OS であ る Linux は各プロセ ッサに対し てワーク

ロード (実質的には OS プロセス) を透過的にデ ィ スパッチおよび移動でき ます。 ソ フ ト ウ ェ ア開発の観点から

見る と、 ソ フ ト ウ ェ アがどの Cortex-A53 プロセ ッサで実行されるかにかかわらず、 OS の API 境界によ って ソ

フ ト ウ ェアが同じ よ う に動作する こ と が保証されます。 このよ う な動作の形態を対称型マルチプロセ ッ シング

(SMP) と呼びます。

• Cortex-A53 プロセ ッ サを独立し て動作させるのは同じでも、 オープン ソースの Xen や商用の各種ハイパーバイ

ザーを使用し て全体の動作を管理する場合、 これらは互いに 「スーパーバイザー付き」 非対称な関係にあ る と

いいます。 この場合、 ハイパーバイザーが複数の Cortex-A53 プロセ ッサを管理する スーパーバイザーと し て動

作する こ と によ り 、 各 Cortex-A53 プロセ ッサ上で並列に動作する独立し た ソ フ ト ウ ェア ス タ ッ ク間に両者が共

通に同意し たアービ タが存在する こ と にな り ます。 アプ リ ケーシ ョ ンの種類によ っては、 APU を スーパーバイ

ザー付き AMP モード で使用する こ と を第 3 章 「システム ソ フ ト ウ ェ アの検討事項」 では推奨し ています。

• APU のハード ウ ェ アではハイブ リ ッ ド構成も可能です。 ハイパーバイザーを使用し て Cortex-A53 プロセ ッ サの

一部を スーパーバイザー付き AMP モード にし、 残 り のコ アを SMP モード で 1 つの OS イ メ ージを使用し て一括

管理する と い う 方法です。 ただし これは高度な構成であるため、 ザイ リ ン ク スは提供もサポー ト も していません。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 18UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 19: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 2 章: プロセ ッ シング システム

• 各 Cortex-A53 プロセ ッサが独立し て動作し てお り 、 共通の OS またはハイパーバイザーな しでそれぞれが異な

る システム ソ フ ト ウ ェ アを実行し ている場合も、 これらは互いに非対称な関係と見な されます。 よ り 厳密には、

この形態では、 各 Cortex-A53 プロセ ッサの動作を管理する単一のソ フ ト ウ ェアが存在し ないため、 「スーパーバ

イザーな し」 AMP モード と呼ばれます。 ただし Cortex-A53 プロセ ッ サでのスーパーバイザーな し AMP 構成は

複雑なため、 APU の構成 と し てザイ リ ン ク スは推奨もサポー ト も し ていません。 詳細は、 第 3 章 「システム ソ

フ ト ウ ェアの検討事項」 を参照し て く ださい。

Zynq UltraScale+ MPSoC デバイ スは多 く の種類のプロセ ッ サおよびプロセ ッ サ コ アを 1 つのデバイ スに統合し ている

ため、 そのコ ンピ ューテ ィ ング環境を 「ヘテ ロ ジニアス」 コ ンピ ューテ ィ ング と呼びます。 このため、 Zynq

UltraScale+ MPSoC デバイ スでは多 く のプロセ ッサおよびプロセ ッサ セ ッ ト と ほかのブロ ッ ク または同じブロ ッ ク内

のほかのプロセ ッ サ と の関係が、 これまで述べた よ う にさ まざまな形で存在し ます。

次に、 こ こ までの説明を簡単にま と めます。

• SMP: APU 内の複数のプロセ ッ サ コ アを 1 つの OS で管理する方式

• AMP: 各プロセ ッ シング ブロ ッ クが互いに独立し て動作する方式

° スーパーバイザー付き : 複数の AMP ブロ ッ ク の動作をハイパーバイザーで管理する方式

° スーパーバイザーな し : 複数の AMP ブロ ッ ク の動作を管理する単一のアービ タが存在し ない方式

• ヘテロ ジニアス コ ンピ ューテ ィ ング: 種類の異なる複数のプロセ ッ サを 1 つのデバイ スに統合し た もの

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 19UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 20: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 2 章: プロセ ッ シング システム

アプ リ ケーシ ョ ン  プロセ ッ シング ユニ ッ ト  (APU)

Zynq UltraScale+ MPSoC デバイ スの APU は、 使用する製品によ り 2 つまたは 4 つの Cortex-A53 プロセ ッサを内蔵し

ています。

図 2‐3: アプ リ ケーシ ョ ン プロセ ッ シング ユニ ッ ト  (APU) のブロ ッ ク図

X-Ref Target - Figure 2-3

各 Cortex-A53 プロセ ッサには、 主に次の機能があ り ます。

• ARMv8-A アーキテ クチャ をサポー ト

• 64 または 32 ビ ッ ト 動作

• 大 1.5 GHz の性能

• 独立し た メ モ リ 管理ユニ ッ ト (MMU)

• 専用 L1 キ ャ ッ シュ

• 個別のパワー ゲーテ ィ ング

• ARM TrustZone をサポー ト

• VFPv4 FPU を実装

• NEON および Crypto API をサポー ト

注記: 全機能の一覧は、 Zynq UltraScale+ MPSoC デバイ スのデータ シー ト および 『Zynq UltraScale+ MPSoC テ ク ニカ

ル リ フ ァ レ ン ス マニュ アル』 (UG1085) [参照 7] を参照し て く ださい。

第 3 章 「システム ソ フ ト ウ ェ アの検討事項」 で説明する よ う に、 Cortex-A53 プロセ ッ サはほかのコ ンピ ューテ ィ ン

グ プラ ッ ト フ ォーム と同じハイエン ド の汎用コ ンピ ューテ ィ ング性能を備えてお り 、 ハイエン ド の汎用アプ リ ケー

シ ョ ンおよび OS を実行でき ます。 Cortex-A53 プロセ ッサの各コ アはほぼ完全に独立し ていますが、 APU を正し く

動作させるには後述する グ ローバル割 り 込みコ ン ト ローラー (GIC) など APU の一部の リ ソースについて、 すべての

Cortex-A53 プロセ ッ サに対し てコ ヒ ーレ ンシが維持される よ う に管理する必要があ り ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 20UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 21: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 2 章: プロセ ッ シング システム

次に、 APU の詳細なブロ ッ ク図を示し ます。

図 2‐4: APU の詳細なブロ ッ ク図

X-Ref Target - Figure 2-4

APU

GIC

Cortex-A53 MPCore

Cortex-A53

FPU/NEON/Crypto

32K L1ICache

32K L1DCache

Debug/Timers

Cortex-A53

FPU/NEON/Crypto

32K L1ICache

32K L1DCache

Debug/Timers

Cortex-A53

FPU/NEON/Crypto

32K L1ICache

32K L1DCache

Debug/Timers

Cortex-A53

FPU/NEON/Crypto

32K L1ICache

32K L1DCache

Debug/Timers

Snoop Control Unit (SCU)

L2 Cache 1MB

IRQ/vIRQFIQ/vFIQ

Timers Interrupts

System Counter (in LPD) FPD Core Switch CoreSightSPI Interrupts

64-bit counter

AP

B, TS

ATB

32-bit AXI

128-bit ACPCCI

128-bit ACE

APU のソ フ ト ウ ェ ア動作の詳細は、 第 3 章 「システム ソ フ ト ウ ェアの検討事項」 および 『Zynq UltraScale+ MPSoC

ソ フ ト ウ ェア開発者向けガイ ド』 (UG1137) [参照 5] を参照し て く ださい。 こ こからは APU のプロセ ッ シング機能に

ついて説明し ます。

APU における  SMP

ザイ リ ン ク スはオープン ソースの Linux を提供し ています。 この中に含まれる カーネルは SMP をサポー ト し てお

り 、 開発者のニーズに合わせて構成する こ と もでき ます。 カーネルの構成によ り 、 OS の SMP 機能で使用する CPU

コ アの数を開発者が指定でき ます。 利用可能なコ ア よ り 少ない数を指定し、 下層にハイパーバイザーを導入する と、

残 り のコ アをザイ リ ン ク ス SDK で作成し たカス タ ム ベア メ タル アプ リ ケーシ ョ ンなど、 ほかのアプ リ ケーシ ョ ン

実行に割 り 当てる こ と ができ ます。

APU のスーパーバイザーな し  AMP

APU を スーパーバイザーな し AMP で使用する場合、 まず制御を 初のプロセ ッ サに渡し、 このプロセ ッ サがほかの

プロセ ッ サ上で特定の OS をブー ト し てワーク ロード を実行し ます。 こ の動作モード では、 リ ソース共有を開発者自

身で実装する必要があ り ます。 前述の とお り 、 この実装は非常に複雑であ るため、 Zynq UltraScale+ MPSoC デバイ ス

のユース ケース と し てザイ リ ン ク スは推奨もサポー ト も し ていません。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 21UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 22: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 2 章: プロセ ッ シング システム

APU のスーパーバイザー付き  AMP

APU でハイパーバイザーを使用する と、 利用可能なコ ア上で種類の異なる OS やベア メ タル ワーク ロード を実行で

き ます。 使用するハイパーバイザーおよびユーザー ニーズに応じ て、 動作するゲス ト に対し て リ ソース共有の管理

を透過的に実行する こ と (完全仮想化) も、 半透過的に実行する こ と (準仮想化) も可能です。 仮想化サポー ト につい

ては、 次のセ ク シ ョ ンで説明し ます。

64 または 32 ビ ッ ト 動作

Cortex-A53 プロセ ッ サは ARMv8 仕様に準拠し てお り 、 64 ビ ッ ト (AArch64) および 32 ビ ッ ト (AArch32) 実行モード

のどち らでも動作し ます。 各モード の制限事項は、 ARM アーキテ クチャの仕様に準じ ます。 Zynq® UltraScale+™

MPSoC の AArch32 実行モード は Zynq 7000 デバイ ス フ ァ ミ リ および ARMv7 仕様と の互換性を維持しつつ、SIMD や

暗号化など ARMv8 の一部の機能をサポー ト する よ う に拡張されています。 どち らの実行モード を選択するかは、 通

常、 デバイ スで実行する ソ フ ト ウ ェ アに応じ て決定し ます。

ハイパーバイザー モード で AArch32 と AArch64 のどち ら を使用するかは、 ハイパーバイザーが使用する実行ステー

ト によ って決ま り ます。

• 64 ビ ッ ト ハイパーバイザーは、 AArch64 または AArch32 モード で動作するオペレーテ ィ ング システム カーネ

ルを実行でき ます。 なお、 ハイパーバイザーが AArch64 モード で動作し ていて も、 OS カーネルが AArch32

モード で動作し ている場合は AArch32 モード のアプ リ ケーシ ョ ン しか実行でき ません。

• 32 ビ ッ ト ハイパーバイザーは、 AArch32 モード の OS およびアプ リ ケーシ ョ ン しか実行でき ません。

APU の仮想化サポー ト

Zynq UltraScale+ MPSoC デバイ スは 4 つの主要な コ ンポーネン ト でハード ウ ェア仮想化をサポー ト し ています。 その

う ちのい く つかは、 Xen ハイパーバイザーなど Zynq UltraScale+ MPSoC デバイ ス用に設計されたシステム ソ フ ト

ウ ェアによ って既に利用されています。 Zynq UltraScale+ MPSoC デバイ ス をベースにし たシステムを よ り 効果的に設

計するには、 これらの機能を理解する必要があ り ます。

Cortex‐A53 プロセ ッサの仮想化

通常、 APU における仮想化サポー ト は Cortex-A53 プロセ ッサの ARMv8 アーキテ クチャ仕様で定義された例外レベ

ル (EL) の 1 つを使用し て実装し ます。 ARMv8 でサポー ト される EL は 4 つあ り 、 サポー ト されるハイパーバイザー

は EL2 を使用し てハイパーバイザーのコ ンテキス ト をゲス ト OS から隔離し ます。 Cortex-A53 プロセ ッサの EL の詳

細は、 第 7 章 「 リ ソースの分離 と分割」 の 「ARM TrustZone」 セ ク シ ョ ンで説明し ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 22UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 23: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 2 章: プロセ ッ シング システム

図 2‐5: TrustZone の例外レベル

X-Ref Target - Figure 2-5

Non-secure State

App1

AArch64 orAArch32(1)

App2

AArch64 orAArch32(1)

App1

AArch64 orAArch32(1)

App2

AArch64 orAArch32(1)

Supervisor (Guest OS1)

AArch64 or AArch32(2)

Supervisor (Guest OS2)

AArch64 or AArch32(2)

Hypervisor Mode

AArch64 or AArch32

EL0

EL1

EL2

SVC

HVC

SMC

Secure Monitor Mode

Supervisor (Secure OS)

AArch64 or AArch32

Trusted App1

AArch64 orAArch32(1)

Trusted App2

AArch64 orAArch32(1)

EL3

Secure State

X15288-032917

割り込みの仮想化

割 り 込みの仮想化は 37 ページの 「APU の割 り 込み仮想化」 で説明し ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 23UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 24: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 2 章: プロセ ッ シング システム

システム MMU による  I/O 仮想化

システム MMU (SMMU) はソ フ ト ウ ェ アで管理される テーブルに基づいてア ド レ ス変換を自動で実行し、 I/O および

ハイパーバイザーで使用する ア ド レ スの仮想化を簡略化し ます。 次の図に、 SMMU によ る ア ド レ ス仮想化の例を示

し ます。

図 2‐6: SMMU の使用例

X-Ref Target - Figure 2-6

Cache Coherent Interconnect

Memory

Device1 Device2

Interconnect

Device3 Device<n>

Interconnect

SMMU S2 SMMU S1/2 SMMU S1/2

CPU0 CPU1-3

MMU S1/2

L1 Cache

MMU S1/2

L1 Cache

GPU

MMU S1

Cache

Coherent Interconnect

L2 Cache

X15290-092916

SMMU は 2 つのステージで動作し ます。 これを上の図では 「S1」、 「S2」、 または 「S1/S2」 と示し ています。

• ステージ 1:

このステージの動作は、 従来のシングル ステージの CPU MMU と同じです。 仮想ア ド レ ス (VA) を取得し て、 中

間物理ア ド レ ス (IPA) に変換し ます。

• ステージ 2:

ハイパーバイザー環境では、 このステージによ ってゲス ト OS はハイパーバイザーに接続し て要求を発行し な く

て も システム内の DMA 対応デバイ ス を直接設定でき る よ う になる ため、 ハイパーバイザーの設計が簡略化され

ます。 このステージでは、 SMMU は IPA を取得し て物理ア ド レ ス (PA) に変換し ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 24UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 25: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 2 章: プロセ ッ シング システム

次の図に、 ハイパーバイザー環境における SMMU のア ド レ ス仮想化を示し ます。

図 2‐7: SMMU のア ド レス変換ステージ

X-Ref Target - Figure 2-7

B2

A0 A1

Guest OS0

B0 B1

Guest OS0

Hypervisor

CPUMMU

Memory Accessing Devices

System Memory

SystemMMU

B2

Gue

st O

Sm

4GB

B2

B2

0

4GB

Sto

ge 1

Add

ress

Tra

nsla

tion

Under control of Guest OS

A2

A2

Gue

st O

Sm

4GB

A2

A2

0Sta

ge 1

Add

ress

Tra

nsla

tion

Intermediate PhysicalAddress (IPA) Space

Virtual Address (VA) Space

4GB

B2

4GB

A2

B2

A2

Sta

ge 2

Add

ress

Tra

nsla

tion

Physical Address (PA) Space

0

0

X15291-032917

SMMU には、 後述する Zynq UltraScale+ MPSoC デバイ スのイ ン ターコネ ク ト に接続する重要な コ ンポーネン ト と し

て次のものがあ り ます。

• 変換バッ フ ァー ユニ ッ ト (TBU): ア ド レ ス変換に使用

• 変換制御ユニ ッ ト (TCU): ア ド レ ス変換を制御および管理

第 7 章 「 リ ソースの分離 と分割」 で詳細を説明し ます。

ペ リ フ ェ ラルの仮想化

一般に、 ハイパーバイザーは SMMU を使用し てゲス ト が DMA 対応デバイ ス を排他的に所有でき る よ う にし ます。

システム デザイ ンで 1 つのハード ウ ェ ア デバイ ス を複数のゲス ト OS で共有し たい場合は、 準仮想化と呼ばれる手

法を使用し ます。 そのためには、 デバイ ス を共有するすべての OS に新しいデバイ ス ド ラ イバーが必要 と な り ます。

共有し たデバイ スのスループ ッ ト は、 SMMU によ ってマ ッ プされた排他所有のデバイ ス よ り も スループ ッ ト が低 く

な り ます。

タ イマーの仮想化

ARM プロセ ッ サには、 各種タ ス ク に対応し た汎用ハード ウ ェア タ イマーが複数あ り ます。 1 つのタ イマーは、 シス

テムのグ ローバルな時間経過を計算し ます。 この汎用タ イマーは、 システム設定または CPU 周波数に応じ たレー ト

でイ ン ク リ メ ン ト する カ ウ ン ターに関連付け られています。 各 CPU コ アには、 システム カ ウ ン ター値を格納する物

理カ ウ ン ターがあ り ます。 各 CPU コ アには仮想時間を示す仮想カ ウ ン ターも あ り ます。 こ の仮想カ ウ ン ターは、 仮

想マシンに割 り 込みが発生し て制御がハイパーバイザーに戻る と、 値が保存されて一時停止し ます。 カ ウ ン ター値

へのア ク セスは、 実行レベルに応じ て OS によ って制御でき ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 25UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 26: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 2 章: プロセ ッ シング システム

リ アルタ イム プロセ ッ シング ユニ ッ ト  (RPU)

Zynq® UltraScale+™ MPSoC には 2 つの Cortex-R5 プロセ ッ サが内蔵されています。 通常、 これらは確定的な低レ イ テ

ンシの動作が必要 と される処理や、 応答時間の要件が厳しいアプ リ ケーシ ョ ンに使用されます。

図 2‐8: リ アルタ イム プロセ ッ シング ユニ ッ ト  (RPU) のブロ ッ ク図

X-Ref Target - Figure 2-8

各 Cortex-R5 プロセ ッサには、 主に次の機能があ り ます。

• ARMv7-R アーキテ クチャ をサポー ト

• 32 ビ ッ ト 動作

• 大 600 MHz の性能

• 専用 L1 キ ャ ッ シュ

• 128 KB の ECC (エラー訂正符号) 付き密結合 メ モ リ

• 単精度および倍精度 FPU

APU の場合 と同様、 Cortex-R5 プロセ ッサも独立し て動作させる こ と ができ ますが、 RPU を正し く 動作させるには後

述する グ ローバル割 り 込みコ ン ト ローラーなど RPU の一部の リ ソースについて、 両方の Cortex-R5 プロセ ッ サに対

し てコ ヒ ーレ ンシが維持される よ う に管理する必要があ り ます。

Cortex-R5 プロセ ッ サは、 必要に応じ て 2 つの動作モード のいずれかを選択でき ます。

• スプ リ ッ ト モード /スーパーバイザーな し AMP:

Cortex-R5 プロセ ッ サのデフ ォル ト モード で、 パフ ォーマン ス モード と も呼ばれます。 このモード では、 前述

のよ う に割 り 込みコ ン ト ローラーを除いて各コ アが独立し て動作し ます。 スプ リ ッ ト モード では、 1 つのコ ア

で RTOS を実行し ながら も う 1 つのコ アでベア メ タルを実行し た り 、 2 つのコ アで別々の RTOS を実行し た り で

き ます。 APU と は異な り Cortex-R5 プロセ ッサはハイパーバイザーをサポー ト でき ないため、 こ のモード での

そのよ う な構成はすべてスーパーバイザーな し AMP に分類されます。 Cortex-R5 プロセ ッサ間の通信は、 ザイ

リ ン ク ス ベア メ タル ラ イブラ リ を使用し て単純に割 り 込みを渡し て メ モ リ を共有するか、 OpenAMP フ レーム

ワーク で提供される各種の高度な機能を利用し て実装し ます。 詳細は、 『Zynq デバイ ス向け OpenAMP フ レーム

ワーク : ス ター ト ア ッ プ ガ イ ド』 (UG1186) [参照 8] を参照し て く ださい。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 26UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 27: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 2 章: プロセ ッ シング システム

• ロ ッ ク ステ ッ プ モード :

セーフテ ィ モード と も呼ばれる こ のモード では、 Cortex-R5 プロセ ッ サは、 RPU 以外のシステムから見る と シン

グル CPU と し て動作し ます。 ただし内部では、 2 つのコ アが同じ命令を並列に処理し ます (シングル イベン ト

ア ッ プセ ッ ト を検出でき る よ う に 1 ½ ク ロ ッ ク サイ クルの遅延があ る )。 2 つのコ アからの出力が異なる場合、

比較/同期ロ ジ ッ ク で検出し てエラー通知信号を出力し、 これを受けてカ ス タ ム応答を実行し ます。 た と えば改

ざんによ ってロ ッ ク ステ ッ プ コ アの動作が食い違った場合には、 これに応答し てシステムのシ ャ ッ ト ダウ ンや

ロ ッ ク ア ウ ト を実行でき ます。 次の図に、 こ のモード における RPU の動作を示し ます。

図 2‐9: Cortex‐R5 プロセ ッサのロ ッ クステ ッ プ動作

X-Ref Target - Figure 2-9

TCMs Associated with CPU1

TCM A

TCM B

TCMs Associated with CPU0

TCM A

TCM B Shim

Shim

GIC

Cortex-R5CPU0

Cortex-R5CPU1

Caches Associated with CPU0

D-Cache

I-Cache

Comparison and Synchronization Logic

X15295-092916

ミ ッ シ ョ ン ク リ テ ィ カルなアプ リ ケーシ ョ ンや機能安全アプ リ ケーシ ョ ンでシングル イベン ト ア ッ プセ ッ ト の検出

が必要な場合は、 ロ ッ ク ステ ッ プ モード を推奨し ます。 これに対し、 2 つの Cortex-R5 プロセ ッサによ り アプ リ ケー

シ ョ ンの性能を 大限に高めたい場合は、 デフ ォル ト のスプ リ ッ ト モード が適し ています。

第 4 章 「電源に関する注意事項」 で説明する よ う に、 Cortex-R5 プロセ ッ サは 「電源ア イ ラ ン ド」 の一部であ り 、 ま

と めてパワー ゲーテ ィ ングでき ます。 ただし個別にはパワー ゲーテ ィ ングでき ません。

RPU の詳細は、 「 リ アルタ イ ム プロセ ッ シング ユニ ッ ト (RPU)」 の章で説明し ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 27UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 28: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 2 章: プロセ ッ シング システム

イ ン ターコネク ト

Zynq UltraScale+ MPSoC デバイ スのヘテロ ジニアス アーキテ クチャの中心にあ るのがイ ン ターコネ ク ト です。 イ ン

ターコネ ク ト はすべてのプロセ ッ シング ブロ ッ ク を接続し、 これらのブロ ッ ク がア ク セス ペ リ フ ェ ラル、 デバイ ス

および メ モ リ を介し て外部世界 と通信でき る よ う にし ます。 し たがって、 システムを 適化するにはイ ン ターコネ

ク ト の機能を理解し てお く 必要があ り ます。

Zynq UltraScale+ MPSoC デバイ スのイ ン ターコネ ク ト は ARM 社の AMBA (Advanced Microcontroller Bus Architecture)

4.0 仕様の一部と し て定義された AXI (Advanced eXtensible Interface) をベースに、 キ ャ ッ シュ コ ヒ ーレン ト イ ン ター

コネ ク ト (CCI-400) や CoreLink NIC-400 ネ ッ ト ワーク イ ン ターコネ ク ト など多 く の関連する ARM テ ク ノ ロ ジを採用

し ています。 ARM 社は、 これらのテ ク ノ ロ ジの詳細を仕様および資料の形で公開し ています。 こ こ では、 Zynq

UltraScale+ MPSoC デバイ スのイ ン ターコネ ク ト を個々のニーズに合わせてカス タマイ ズでき る よ う になる上で押さ

えてお く べき基本的な概念のみを簡単に紹介し ます。

AXI イ ン ターフ ェ イス

Zynq UltraScale+ MPSoC では、 ブロ ッ ク のペアを接続する手段 と し て主に AXI イ ン ターフ ェ イ ス を使用し ます。 基

本的に、 AXI イ ン ターフ ェ イ スは 1 つの AXI マス ターを 1 つまたは複数の AXI ス レーブに接続し ます。 マス ターが

ス レーブに対し て要求を発行し、 ス レーブがこの要求を実行し ます。 各 AXI イ ン ターフ ェ イ スは、 次の 5 つのチャ

ネルで構成されます。

• 読み出し ア ド レ ス チャネル

• 書き込みア ド レ ス チャネル

• 読み出しデータ チャネル

• 書き込みデータ チャネル

• 書き込み応答チャネル

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 28UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 29: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 2 章: プロセ ッ シング システム

次の図に、 マス ター と ス レーブ間の通信を ま と めます。

図 2‐10: AXI マス ターと スレーブの通信: 読み出し チャネル

X-Ref Target - Figure 2-10

Masterinterface

Read address channelAddress

andcontrol

Read data channel

Readdata

Readdata

Readdata

Readdata

Slaveinterface

X12076

図 2‐11: AXI マス ターと スレーブの通信: 書き込みチャネル

X-Ref Target - Figure 2-11

Masterinterface

Write address channelAddress

andcontrol

Write data channel

Writedata

Writedata

Writedata

Writedata

Writeresponse

Write response channel

Slaveinterface

X12077

Zynq UltraScale+ MPSoC デバイ スの各ブロ ッ ク には、 多 く のイ ン ターフ ェ イ ス マス ターと ス レーブを含める こ と が

でき ます。 Zynq UltraScale+ MPSoC デバイ スでは多 く のコ ンポーネン ト が複雑に関係し合っている ため、 マス ター と

ス レーブを直接接続する こ と はほ と んどあ り ません。 Zynq UltraScale+ MPSoC デバイ スにはい く つかの戦略的なポイ

ン ト にス イ ッチが配置されてお り 、 これを利用し て各種ブロ ッ ク が相互に接続し ます。 これによ り 、 Zynq

UltraScale+ MPSoC デバイ スで重視されるパワー マネージ メ ン ト 、 セキ ュ リ テ ィ 、 分離、 全体的な柔軟性が維持され

ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 29UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 30: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 2 章: プロセ ッ シング システム

ト ラ フ ィ ッ ク優先度と コ ヒーレンシ

Zynq UltraScale+ MPSoC デバイ スでは常時非常に多 く の並列 ト ラ フ ィ ッ ク が発生し ています。 イ ン ターコネ ク ト に接

続し た多 く のブロ ッ ク が同時に メ モ リ にア ク セスする一方、 ト ラ フ ィ ッ クの優先度はプロセ ッ シング ブロ ッ クおよ

び リ ソースによ り 異な り ます。 し たがって、 ト ラ フ ィ ッ ク に優先度を割 り 当てる と同時に、 メ モ リ への ト ラ フ ィ ッ

ク のコ ヒ ーレ ンシを維持する仕組みが必要です。

イ ン ターコネ ク ト ス イ ッチを流れる ト ラ フ ィ ッ ク にはすべて同じ優先度が割 り 当て られるわけではあ り ません。

Zynq UltraScale+ MPSoC デバイ スのイ ン ターコネ ク ト を流れる AXI ト ラ フ ィ ッ ク には、次の 3 つの優先度のいずれか

が割 り 当て られます。

• 低レ イ テンシ (高優先度)

通常、 このタ イプの ト ラ フ ィ ッ クはほかのタ イプの ト ラ フ ィ ッ ク よ り も優先的に処理する必要があ り ます。 こ

れには APU と RPU、 および メ モ リ 間の ト ラ フ ィ ッ ク が該当し ます。

• 高スループ ッ ト (ベス ト エフ ォー ト )

このタ イプの ト ラ フ ィ ッ クはあ る程度のレ イ テンシは許容でき ますが、 非常に高いスループ ッ ト を必要と し ま

す。 これには GPU や PL が該当し ます。

• ア イ ソ ク ロナス (ビデオ ク ラ ス)

このタ イプの ト ラ フ ィ ッ クは、 一部の重要な タ イ ミ ングを除いて長いレ イ テンシを許容でき ます。 一般的には、

ビデオ/イ メ ージ データが該当し ます。 タ イ ムアウ ト が発生しそ う になる と、 この ト ラ フ ィ ッ ク ク ラ スに 高の

優先度が割 り 当て られます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 30UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 31: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 2 章: プロセ ッ シング システム

次に、 Zynq UltraScale+ MPSoC デバイ スのイ ン ターコネ ク ト と ト ラ フ ィ ッ ク ク ラ スの概略図を示し ます。

図 2‐12: イ ン ターコネク ト と ト ラ フ ィ ッ ク  ク ラスの概略図

X-Ref Target - Figure 2-12

図に示し たデフ ォル ト の ト ラ フ ィ ッ ク ク ラ スは、 「LL」 が低レ イ テンシ、 「BE」 がベス ト エフ ォー ト 、 「V」 がビデ

オ ク ラ スです。 こ の図に示し たブロ ッ ク の多 く は、 こ の章またはこ のセ ク シ ョ ンで説明し た も のです。 TBU および

TCU ブロ ッ クは、 前のセ ク シ ョ ンで説明し た SMMU の一部です。 し たがって、 この図は SMMU と イ ン ターコネ ク

ト の緊密な関係を示し ています。

Zynq UltraScale+ MPSoC デバイ スのイ ン ターコネ ク ト でス イ ッチ以外の重要なコ ンポーネン ト と し て、 キ ャ ッ シュ

コ ヒ ーレ ン ト イ ン ターコネ ク ト (CCI) があ り ます。 これは、 Zynq UltraScale+ MPSoC デバイ ス全体で メ モ リ ト ラ ンザ

ク シ ョ ンのコ ヒ ーレ ンシを維持する ものです。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 31UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 32: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 2 章: プロセ ッ シング システム

次の図に、 CCI の役割を示し ます。

図 2‐13: CCI の役割

X-Ref Target - Figure 2-13

詳細図

Zynq UltraScale+ MPSoC デバイ スのイ ン ターコネ ク ト には、 こ こ まで述べて きた コ ンポーネン ト 以外にも重要なサブ

モジュールがい く つかあ り ます。

• AXI タ イ ムア ウ ト ブロ ッ ク :

ス レーブからの応答がない場合にマス ターがハングするのを防止し ます。

• AXI 分離ブロ ッ ク (AIB):

システム ブロ ッ ク間のパワー ダウ ン遷移を管理し ます。

• XMPU/XPPU:

マス ター ブロ ッ ク と ス レーブ ブロ ッ ク を分離し ます (第 7 章 「 リ ソースの分離と分割」 参照)。

• AXI ト レース マ ク ロセル (ATM):

ア ド バン ス ト ト レース バス (ATB) を使用し て CoreSight 用の AXI ト レース を取得し ます。

• AXI パフ ォーマン ス モニ ター (APM):

AXI パフ ォーマン ス メ ト リ ク ス をキ ャプチャ し ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 32UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 33: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 2 章: プロセ ッ シング システム

こ こ までの説明をふまえ、 次に Zynq UltraScale+ MPSoC デバイ スのイ ン ターコネ ク ト の詳細図を示し ます。

図 2‐14: Zynq UltraScale+ MPSoC デバイスのイ ン ターコネク ト  (詳細図)

X-Ref Target - Figure 2-14

8

16

16

16

OCM

RPU

USB1

IOU

LPD-DMA

CS-DAP

CSU

Slaves

GIC

APU

ADB ADB

CCI-400TBU

2

TCU

Programmable Logic (PL)

Dis

play

Por

t

TBU

0TB

U1

FPD

-DM

A

PC

Ie

GP

U

SAT

AG

IC/T

CU

Sla

ves

TBU3 TBU4 TBU5

Core Switch

DDR Subsystem

2 x

64-b

it

S_AXI_LPD

USB0

OC

M

AXI Stream

XMPU

XPPU

ATM

PMU

AXI Stream

M_AXI_HPM0_LPDS_AXI_LPDS_AXI_ACP_FPDS_AXI_ACE_FPD

QoS-400

AXI Isolation Block

AXI Timeout Block

ATM+APM

S_AXI_HPC[0:1]_FPD S_AXI_HP[0:3]_FPD

AIB

ATB

AIB

AIB

AIB

AIB

ATB

AIB

AIBAIB

AIB

AIB

ATB

ATB

AIB

M_AXI_HPM0/1_FPD

AIB

AIB

ATB

64-bitM S

128-bitM S

AcronymsADB: AMBA Domain Bridge; TCU: Translation Control Unit; TBU: Translation Buffer Unit

16 16 161616 16

8

16

8 8

32

3232

32

32

28

16

ATB

16

1614,8

88

8 8

S3

S2

S1

S0S4

S3

M0M1M2DVM

S5S4S2S1S0

16The following markings designate the read/write capability of the bus. Where an example value of 16 designates 16 reads and 16 writes. Two values (for example 14,8) designates 14 reads and 8 writes. 14,8

X15277-100116

CoreSight

サービス品質 (QoS)

上の図に示し た イ ン ターコネ ク ト でも う 1 つ重要なのがサービ ス品質 (QoS) です。 QoS に関係するシステム ブロ ッ

ク には、 イ ン ターコネ ク ト ス イ ッチ と CCI の 2 つがあ り ます。

スイ ッ チを利用し た QoS

上の図を よ く 見る と わかる よ う に、 ほ と んどのス イ ッチが QoS-400 に対応し ています。 QoS-400 は前述の CoreLink

NIC-400 規格を ARM 社が拡張し た もので、 Zynq UltraScale+ MPSoC デバイ スはこれを ス イ ッチ イ ン ターコネ ク ト に

使用し ています。 QoS-400 レギュ レータはイ ン ターコネ ク ト のほ と んどの AXI マス ターに割 り 当て られます。

注記: QoS-400 「レギュ レータ」 と は、 AXI マス ターに関連付け られてマス ターの動作を制御するブロ ッ ク を表す用

語 と し て ARM 社の資料で使用されています。

このレギュ レータの働きによ り 、 各 AXI マス ターに対し て次の制限を加え る こ と ができ ます。

• 未処理 ト ラ ンザク シ ョ ンの 大数

• コマン ド発行レー ト

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 33UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 34: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 2 章: プロセ ッ シング システム

CCI を利用し た QoS

Zynq UltraScale+ MPSoC デバイ スで使用する CCI-400 には、優先度の異なる 2 つの ト ラ フ ィ ッ ク ク ラ スによ って生成

された要求が メ モ リ にア ク セス し た際にヘッ ド オブ ラ イ ン ブロ ッ キング (HOLB) が発生するのを防ぐ QoS 仮想ネ ッ

ト ワーク (QVN) 機能があ り ます。 次の図に、 このよ う な状況を示し ます。

図 2‐15: CCI を利用し た QoS

X-Ref Target - Figure 2-15

CCI-400

LL Traffic BE Traffic

DDR ControllerPort 1 Port 2

X15889-101816

この場合、 CCI を通過する一方の ト ラ フ ィ ッ クは低レ イ テンシ (LL) と し てタ グ付け され、 も う 一方の ト ラ フ ィ ッ ク

はベス ト エフ ォー ト (BE) と し て タ グ付け されます。低優先度の BE ト ラ フ ィ ッ ク が DDR ポー ト を占有し て高優先度

の LL ト ラ フ ィ ッ ク がア ク セスでき な く なる と HOLB が発生し ます。 QVN は 2 つの DDR ポー ト に異なる キ ューと

ト ーク ンを使用し て ト ラ フ ィ ッ ク のアービ ト レーシ ョ ンを実行する こ と で、 HOLB によ る遅延を防ぎます。

APU は事前に割 り 当て られた 1 つの DDR ポー ト を使用するのではな く 、前のセク シ ョ ンの図に示したよ う に CCI-400

を経由して 2 つの DDR ポー ト を常時切 り 替えながら使用しているため、 QVN の恩恵を受ける こ と ができ ます。

APU の ト ラ フ ィ ッ クは一般に LL で、 CCI を共有するその他の ト ラ フ ィ ッ クはほ と んどが BE であ るため、 こ こ で説

明し た よ う に QVN を使用する と APU は常に適切な QoS で メ モ リ にア ク セスでき ます。

QoS のカス タ マイズ

ほ と んどの場合、 Zynq UltraScale+ MPSoC デバイ スのデフ ォル ト の QoS 設定を変更する必要はあ り ません。 ただし

デフ ォル ト のま までは問題があ り 、 QoS-400 レギュ レータの一部を調整し たいこ と も あ り ます。 その場合は、 まず

前述の APM や ATM と し て内蔵されているデータ収集機能を使用し て く ださい。 『ザイ リ ン ク ス ソ フ ト ウ ェ ア開発

キ ッ ト (SDK) ユーザー ガイ ド : システム パフ ォーマン ス解析』 (UG1145) [参照 11] では、 無償で利用可能なザイ リ ン

ク ス ソ フ ト ウ ェ ア開発キ ッ ト (SDK) のパフ ォーマン ス モニ ター機能を使用し て ト ラ フ ィ ッ ク をモデル化し、 Zynq

UltraScale+ MPSoC デバイ スから ラ イブ ラ ン タ イ ム情報を取得する方法を紹介し ています。 同じ こ と は SDSoC 開発

環境でも実行でき ます。 これはザイ リ ン ク スのユニーク な機能で、 APU からだけでな く Zynq UltraScale+ MPSoC デ

バイ スのすべての内部ブロ ッ ク を接続する イ ン ターコネ ク ト から も情報を取得でき ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 34UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 35: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 2 章: プロセ ッ シング システム

これらのツールから得られたデータ を使用し て、 前出のイ ン ターコネ ク ト 詳細図を見ながら システム内のホ ッ ト パ

ス を見つけ出し、 必要に応じ てその設定を調整し ます。 この作業ではまず、 AXI マス ターからの ト ラ フ ィ ッ ク の う

ち、 低優先度のマス ターからの ト ラ フ ィ ッ ク によ って影響を受けている ものがないかど う かを調べます。 次に、 重

要度の低い AXI マス ターに対応する QoS-400 レギュ レータ を調整し てス ロ ッ ト リ ングを実装し ます。 た と えば APU

および RPU からの ト ラ フ ィ ッ クの方が PL の ト ラ フ ィ ッ ク よ り も優先度が低い場合、 PL からの ト ラ フ ィ ッ ク を優先

する よ う に APU および RPU のレギ ュ レータ を設定し ます。 ただし このよ う な調整を正し く 行 う には、 Zynq

UltraScale+ MPSoC デバイ ス内の ト ラ フ ィ ッ ク フ ローを十分に理解し てお く 必要があ り ます。

QoS のカ ス タマイ ズは、 デフ ォル ト 設定では実際のデザイ ンで問題が生じ る場合にのみ と どめて く ださい。

PL イ ン ターフ ェ イス

Zynq UltraScale+ MPSoC デバイ スのイ ン ターコネク ト で設計者が完全に制御でき る ものの 1 つに、 PL と それ以外のシ

ステムの接続があ り ます。 前出の メ イ ン イ ン ターコネク ト の図にも示したよ う に、 PL から イ ン ターコネ ク ト (すなわ

ちシステム全体) への接続にはい く つかのパスがあ り ます (詳細は第 5 章 「プロ グ ラマブル ロジ ッ ク」 でも後述)。

第 5 章では、 このセク シ ョ ンで前述した内容を さ らに詳し く 説明し ます。

その他の情報

イ ン ターコネ ク ト の詳細は、 『Zynq UltraScale+ MPSoC テ ク ニカル リ フ ァ レ ン ス マニュ アル』 (UG1085) [参照 7] のイ

ン ターコネ ク ト に関する章、 および次の項目に関する ARM 社の公式文書を参照し て く ださい。

• AMBA 4.0: AXI 規格のコ ア仕様

• NIC-400: ス イ ッチ イ ン ターコネ ク ト

• CCI-400: キ ャ ッ シュ コ ヒ ーレン ト イ ン ターコネ ク ト

• QoS-400: NIC-400 に QoS を追加し た もの

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 35UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 36: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 2 章: プロセ ッ シング システム

割り込み

Zynq UltraScale+ MPSoC デバイ スは多 く の機能を集積し たヘテ ロ ジニアス設計を採用し ているため割 り 込みソースの

数が非常に多 く 、 割 り 込みを処理する方法もい く つかあ り ます。 た と えばイーサネ ッ ト 、 USB、 GPU、 DisplayPort、

DMA、 UART、 SPI、 SD など、 内蔵ペ リ フ ェ ラルのほ と んどが割 り 込みを ト リ ガーし て重要な イベン ト をプロセ ッ

サに通知し ます。 PL も 16 種類の割 り 込みを ト リ ガーでき ます。

また、 Zynq UltraScale+ MPSoC デバイ スには設定可能なプロセ ッ サ間割 り 込み (IPI) があ り 、 これを使用し て独立し

たプロセ ッ シング ブロ ッ ク ど う し を通信させる こ と ができ ます。

Zynq UltraScale+ MPSoC デバイ スには APU 用と RPU 用に合計 2 つの割 り 込みコ ン ト ローラーがあ り ます。APU の割

り 込みコ ン ト ローラーは ARM GICv2 (Generic Interrupt Controller version 2) 仕様に準拠し、RPU の割 り 込みコ ン ト ロー

ラーは ARM GICv1 仕様に準拠し ています。 GICv2 の利点と し て、 APU では割 り 込み仮想化がサポー ト されます。

次に、 Zynq UltraScale+ MPSoC デバイ スの割 り 込みの接続図を示し ます。

図 2‐16: Zynq UltraScale+ MPSoC デバイスの割り込み接続

X-Ref Target - Figure 2-16

Cortex-A53 MPCore

CPU0 CPUn

CPU0 I/FVCPU0 I/F CPU0 I/FVCPUn I/F

Distributor

RPU Cores

CPU0 CPU1

GIC (PL390)CPU0 I/F CPU1 I/F

Distributor

niRQ0/nFIQ0nViRQ/nVFIQ

niRQ0/nFIQ0 niRQ1/nFIQ1

Interrupt Source Blocks (e.g., VCU, GPU,

DisplayPort)

PCIeTop Level IPI

PCIe Inbound

To Interconnect

To PMU

To PL

To PMU

To PMU

MSI

Legacy IRQ/FiQ per CPUFrom PL

APU

GIC-400

X15327-092816

この図で、 APU の GICv2 割 り 込みコ ン ト ローラーは 「GIC-400」、 RPU の GICv1 割 り 込みコ ン ト ローラーは 「GIC

(PL390)」 と し て示し ています。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 36UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 37: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 2 章: プロセ ッ シング システム

APU の割り込みコ ン ト ローラー

各 Cortex-A53 プロセ ッサには、 入力と し て次に示す 4 つの割 り 込みラ イ ンがあ り ます。

• nIRQ: 通常優先度の割 り 込み

• nFIQ: 高優先度の高速割 り 込み

• nVIRQ: 通常優先度の仮想割 り 込み (APU で仮想化をサポー ト する ために使用)

• nVFIQ: 高優先度の仮想割 り 込み (APU で仮想化をサポー ト するために使用)

次の図に、 APU の割 り 込みコ ン ト ローラーによ る Cortex-A53 プロセ ッサの割 り 込み処理を示し ます。

図 2‐17: APU の割り込みコ ン ト ローラー

X-Ref Target - Figure 2-17

割 り 込みコ ン ト ローラーは 2 つの部分で構成されます。 1 つはデ ィ ス ト リ ビ ューターで、 受信し た割 り 込みを登録し

て優先度を割 り 当てた後、 適切な CPU に分配し ます。 も う 1 つの部分は各 CPU の割 り 込みラ イ ンに接続し、 適切な

Cortex-A53 プロセ ッ サに対し て実際の割 り 込みを ト リ ガーし ます。

割 り 込みコ ン ト ローラーは、 次に示す 3 つのタ イプの割 り 込みを処理し ます。

• コ ア間で割 り 込みを送信するためのソ フ ト ウ ェ ア生成割 り 込み (SGI) が 16 個

• 1 つの Cortex CPU コ アを ターゲ ッ ト にし たプラ イベー ト ペ リ フ ェ ラル割 り 込み (PPI) が 7 個

• すべての APU および RPU コ アで共有する共有ペ リ フ ェ ラル割 り 込み (SPI) が 92 個

APU の割り込み仮想化

APU がハイパーバイザーを実行中に割 り 込みを受信する と、 ハイパーバイザーは APU の割 り 込みコ ン ト ローラーと

通信し、 次の図に示すよ う にゲス ト OS に対し て仮想割 り 込みを生成し ます。 これらの割 り 込みはゲス ト OS に直接

送信され、 ゲス ト OS が割 り 込みを処理し て ク リ ア し ます。 ゲス ト OS 以外に対する割 り 込みは、 ハイパーバイザー

がローカルに処理し て ク リ ア し ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 37UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 38: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 2 章: プロセ ッ シング システム

図 2‐18: APU の割り込み仮想化

X-Ref Target - Figure 2-18

RPU の割り込みコ ン ト ローラー

RPU の GICv1 割 り 込みコ ン ト ローラーは、 次の図のよ う に Cortex-R5 プロセ ッ サに接続されます。 この割 り 込みコ

ン ト ローラーは APU のものに似ていますが、 仮想割 り 込みはサポー ト し ていません。 また、 前述の割 り 込みタ イプ

(SGI、 PPI、 SPI) に対し てそれぞれ処理でき る割 り 込みの数も少な く なっています。

図 2‐19: RPU の割り込みコ ン ト ローラー

X-Ref Target - Figure 2-19

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 38UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 39: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 2 章: プロセ ッ シング システム

セキュア ステー ト と割り込み

第 7 章 「 リ ソースの分離 と分割」 で説明する よ う に、 イ ン ターコネ ク ト 経由で接続される Zynq UltraScale+ MPSoC

デバイ スのすべてのブロ ッ クは、 ARM TrustZone 仕様に基づいてセキ ュ アまたは非セキ ュ アのいずれかに分類され

ます。 詳細は第 7 章で説明し ますが、 APU と RPU の割 り 込みコ ン ト ローラーはどち ら も割 り 込みを ト リ ガーする側

がセキ ュ アか非セキ ュ アかを区別し ません。 慣例によ り APU の FIQ はセキ ュ ア モニターに送信されますが、 これは

ソ フ ト ウ ェアによ る選択であ り 、 ハード ウ ェ ア要件ではあ り ません。

プロセ ッサ間割り込み

プロセ ッ サ間割 り 込み (IPI) は Zynq UltraScale+ MPSoC デバイ ス内のプロセ ッ シング ブロ ッ ク間の通信基盤と な る も

ので、 リ モー ト プロセ ッサに対し て割 り 込みを送信する ためのチャネルを提供し ます。 また、 あ る程度のペイ ロー

ド も転送でき ます。 IPI の主な使用例と し て、 パワー マネージ メ ン ト があ り ます。 フル電力ド メ イ ンへの電源供給が

停止し た場合、 IPI をプラ ッ ト フ ォーム管理ユニ ッ ト (PMU) に送信し て電源の回復を要求でき ます。

IPI チャネルは 11 あ り 、 その う ち 4 チャネルは PMU と の通信用に予約されています。 PMU と の通信用に予約されて

いる IPI チャネルを除き、各 IPI チャネルには 2 つの 32 バイ ト バッ フ ァーと 6 つのレジス タがあ り 、 これら を使用し

て ソース と ターゲ ッ ト が通信し ます。 2 つのバッ フ ァーの う ち 1 つはソースが要求を格納する ために使用し、 も う 1

つはターゲ ッ ト が応答を格納するために使用し ます。 次の図に、 マス ターがレジス タ を操作し て IPI を ト リ ガーし、

ターゲ ッ ト がレジス タ を操作し て ACK を返し て割 り 込みに応答する動作を示し ます。

図 2‐20: プロセ ッサ間割り込みの割り込みチャネル レジス タ

X-Ref Target - Figure 2-20

Enable

Trigger

Observation

Status/Clear

Disable

Mask

Req/Resp buffers

Master A Master B

IPI Channel

X18707-032117

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 39UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 40: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 2 章: プロセ ッ シング システム

OpenAMP

Zynq UltraScale+ MPSoC デバイ ス内のブロ ッ ク間通信に IPI を直接使用するのは手間がかか り ます。 このため、 ザイ

リ ン ク スはヘテロ ジニアス環境で AMP システムを容易に開発でき る よ う に OpenAMP フ レーム ワーク (第 3 章 「シ

ステム ソ フ ト ウ ェ アの検討事項」 参照) を提供し ています。 OpenAMP は IPI をベースにしつつ、 次に示す 2 つの重要

なコ ンポーネン ト で CPU コ アど う しの通信をサポー ト し ます。

• Remoteproc: リ モー ト CPU のラ イ フ サイ クルを開始および管理し ます。

• RPMsg: リ モー ト CPU ど う しの通信に使用し ます。

OpenAMP と その使用方法の詳細は、 第 3 章 「システム ソ フ ト ウ ェ アの検討事項」 を参照し て く ださい。

PL を使用し たワーク ロー ド  アクセラ レーシ ョ ン

14 ページの 「プロセ ッ シング システムの設計手法」 で説明し た よ う に、 Zynq UltraScale+ MPSoC デバイ スではハン

ド コーデ ィ ングあ るいは Vivado® HLS またはザイ リ ン ク ス SDSoC 開発環境を使用し てプロセ ッ シングを PL にオフ

ロード でき ます。 これらのツールを使用する と、 システム設計者はソ フ ト ウ ェ アを容易に PL に移行し て性能を向上

させる こ と ができ ます。

次に、 SDSoC を使用し てプロセ ッ シングを PL にオフ ロードする手順を図に示し ます。

図 2‐21: PL オフ ロー ド手順のま とめ

X-Ref Target - Figure 2-21

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 40UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 41: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 2 章: プロセ ッ シング システム

SDSoC には、 アプ リ ケーシ ョ ンを MPSoC のハード ウ ェアで実行し た場合の性能を解析するのに役立つ機能がい く つ

かあ り ます。 この機能を利用し てコード に関する完全なレポー ト を生成する と、 コード 内の繰 り 返しセグ メ ン ト を

見つける こ と ができ ます。 このレポー ト 機能は、 この環境で作成し たコード を PL にオフ ロード し た場合に性能が向

上するかど う かを判定し、 システム性能がどれだけ向上するか、 および PL リ ソース をどれだけ使用するかを見積

も って く れます。 SDSoC 環境では、 次のよ う な画面で情報が表示されます。

図 2‐22: SDSoC による  PL アクセラ レーシ ョ ン出力の例

X-Ref Target - Figure 2-22

次に、 C/C++ コード を Zynq UltraScale+ MPSoC デバイ スの PL 内のブロ ッ ク に変換し ます。 これは、 Vivado HLS (高

位合成) コ ンパイ ラで実行し ます。

合成が完了し た ら、 合成環境で選択されたデータ ムーバーに関する レポー ト が生成されます。 データ ムーバー と ド

ラ イバーは SDSoC によ って自動的に選択されますが、 必要に応じ てユーザーが容易に変更でき ます。 また、 Verilog

または VHDL を使用し て PL 内に生成し た IP ブロ ッ ク を APU または RPU で動作する アプ リ ケーシ ョ ンから呼び出す

ためのラ ッパーを生成する こ と もでき ます。 この場合、 前述の HLS によ る コ ンパイルは実行し ません。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 41UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 42: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 2 章: プロセ ッ シング システム

汎用コ ンピ ューテ ィ ングのアクセラ レーシ ョ ン

前のセ ク シ ョ ンではワーク ロード を手動または自動で PL にオフ ロードする方法について説明し ま し たが、 それ以外

に汎用コ ンピ ューテ ィ ングのア ク セラ レーシ ョ ンに使用でき る一般的な手法およびテ ク ノ ロ ジがい く つかあ り ます。

これには、 GPGPU をサポー ト し たグ ラ フ ィ ッ ク ス プロセ ッ シング ユニ ッ ト 上で OpenCL ラ イブラ リ や汎用コ ン

ピ ューテ ィ ングを使用する場合が含まれます。 前述し た Zynq UltraScale+ MPSoC デバイ スの PL オフ ロード機能は、

業界で使用されているその他の手法に比べ演算を圧倒的に高速化でき ます。 Zynq UltraScale+ MPSoC デバイ スで使用

される MALI-400 GPU はグ ラ フ ィ ッ ク ス ア ク セ ラ レーシ ョ ン専用に設計されてお り 、 GPGPU には適し ていません。

次の表に示すよ う に、独立機関によ る発表を見て も FPGA によ る 適化の方が汎用 GPU と CPU を組み合わせた場合

よ り も よい結果を達成し ています。

図 2‐23: FPGA による最適化と  CPU+GPGPU および CPU のみの場合の比較

X-Ref Target - Figure 2-23

後に、 ア ク セラ レーシ ョ ンには GPGPU よ り も PL (すなわち FPGA) の方が適し ている と考え られる一般的な理由

を次の表に示し ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 42UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 43: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 2 章: プロセ ッ シング システム

図 2‐24: GPGPU と比較し た FPGA アクセラ レーシ ョ ンの利点

X-Ref Target - Figure 2-24

結論 と し て、 ソ フ ト ウ ェ アを高速化し たい場合は、 PL のオフ ロード機能を利用する こ と を強 く 推奨し ます。 前述の

SDSoC ツール以外に、 ザイ リ ン ク ス SDAccel™ 開発環境の使用も検討し て く ださ い。 SDAccel は、 FPGA を利用し た

OpenCL および C/C++ のア ク セ ラ レーシ ョ ンに 適化されています。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 43UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 44: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 3 章

システム ソ フ ト ウ ェ アの検討事項Zynq® UltraScale+™ MPSoC では、 デバイ スのほぼ全体にソ フ ト ウ ェアが存在し ます。 ソ フ ト ウ ェアはベア メ タル ア

プ リ ケーシ ョ ン、 ミ ド ルウ ェ ア、 フ ァーム ウ ェ ア、 ド ラ イバー、 ハイ レベル オペレーテ ィ ング システム (HLOS)、

ラ イブラ リ 、 ハイ レベル アプ リ ケーシ ョ ン、 グ ラ フ ィ ッ ク ス アプ リ ケーシ ョ ン、 通信プロ ト コルなどの形で存在し

ます。 Zynq UltraScale+ MPSoC でこれらのソ フ ト ウ ェア コ ンポーネン ト を含めるか除外するか、 特定のハード ウ ェ

ア機能を有効にするかど う かは個々のアプ リ ケーシ ョ ンによ って異な り 、 それによ ってデバイ スのス ピードや効率

も変化し ます。 また、 これらのソ フ ト ウ ェ ア コ ンポーネン ト は一般にユーザーが希望する主要な実行環境を提供し

ます。 要するに、 特定のソ フ ト ウ ェ ア フ ッ ト プ リ ン ト がシステム全体をつなぐ役割を果た し ます。

システム ソ フ ト ウ ェ ア要件を定義する

Zynq UltraScale+ MPSoC デバイ スはソ フ ト ウ ェアの柔軟性が高いため、 Zynq UltraScale+ MPSoC デバイ スの可能性を

大限に引き出すには Zynq UltraScale+ MPSoC デバイ スの各ブロ ッ ク で利用可能な ソ フ ト ウ ェ アの選択肢について

十分に理解し てお く 必要があ り ます。 こ の章では、 Zynq UltraScale+ MPSoC デバイ スで利用可能な ソ フ ト ウ ェアの選

択肢、 および関連する推奨事項について説明し ます。

Zynq UltraScale+ MPSoC デバイ スに関し てデザイ ンの要件を定義するために、 次の質問に答えてみて く ださい。

1. 実行し たいのはベア メ タルですか、 または OS ですか。

2. ベア メ タルを実行し たい場合、 その理由は何ですか。

3. リ アルタ イ ム処理が必要ですか。

4. ブー ト 時間の制約はあ り ますか。 制約があ る場合、 それはどの程度厳密な制約ですか。

5. 使用し たいビル ド /開発環境はあ り ますか。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 44UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 45: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 3 章: システム ソ フ ト ウ ェ アの検討事項

システム ソ フ ト ウ ェ アの設計手法

図 3‐1: Zynq UltraScale+ MPSoC デバイスのソ フ ト ウ ェ ア概略図

X-Ref Target - Figure 3-1

RPU PMU LPDPeripherals

Inter-ProcessorCommunication

Framework(OpenAMP)

APU GPU*

CSU

PL

FPDPeripherals

Full Power Domain

Low Power Domain

Programmable Logic Power Domain

PLPeripherals AcceleratorsAccelerators

* GPU support is OS-specific

X18660-032917

注記: Zynq UltraScale+ MPSoC プラ ッ ト フ ォームでは、 システム内の複数のプロセ ッ シング ブロ ッ ク上で幅広い種類

のソ フ ト ウ ェア ス タ ッ ク を同時に実行でき ます。 次に示すのは、 第 1 章で示し たシステム全体のブロ ッ ク図から主

要なプロセ ッ シング ブロ ッ ク を抜き出し た概略図です。 緑のブロ ッ ク が も柔軟性が高 く 、 あ らゆる種類のソ フ ト

ウ ェアを実行でき ます。 ブロ ッ ク の柔軟性は黄色、 白の順に低 く な り ます。 この図は Zynq UltraScale+ MPSoC デバ

イ スの内部ブロ ッ ク を正確に表現し た ものではな く 、 このセ ク シ ョ ンで説明する概念を図にし た ものです。

アプ リ ケーシ ョ ン プロセ ッ シング ユニ ッ ト (APU) と リ アルタ イ ム プロセ ッ シング ユニ ッ ト (RPU) はそれぞれ汎用

の ARM A53 と ARM R5 で構成されてお り 、 一般的なエンベデッ ド プロセ ッサで動作する ソ フ ト ウ ェ アな ら何でも

実行でき ます。 グ ラ フ ィ ッ ク ス プロセ ッ シング ユニ ッ ト (GPU)、 プラ ッ ト フ ォーム管理ユニ ッ ト (PMU) およびプロ

グ ラ マブル ロ ジ ッ ク (PL) は特定の用途を想定し て機能が設計されてお り 、 実行でき る ソ フ ト ウ ェ アには制約があ り

ます。 通常、 GPU の機能にはザイ リ ン ク スから提供される グ ラ フ ィ ッ ク /マルチ メ デ ィ ア ラ イブラ リ およびド ラ イ

バー経由でア ク セス し ます。 ザイ リ ン ク スは PMU のデフ ォル ト フ ァーム ウ ェ アを提供し ています。 カス タ ム

フ ァーム ウ ェア も作成でき ますが、 デフ ォル ト フ ァーム ウ ェアをそのま ま使用する こ と を強 く 推奨し ます。 PL で

ソ フ ト ウ ェアを実行する方法は 2 つあ り ます。 1 つはソ フ ト ウ ェ アの一部をハード ウ ェ アに 適化する方法、 そし て

も う 1 つは MicroBlaze™ プロセ ッ サ ソ フ ト コ ア イ ン ス タ ン ス を実行する方法です。

45 ページの図 3-1 でコ ンフ ィ ギュ レーシ ョ ン セキ ュ リ テ ィ ユニ ッ ト (CSU) ブロ ッ クは点線で示し てあ り ますが、

これは工場でプロ グ ラ ム済みのため、 一切カ ス タマイ ズができ ないこ と を意味し ています。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 45UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 46: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 3 章: システム ソ フ ト ウ ェ アの検討事項

Zynq UltraScale+ MPSoC デバイ スのアーキテ クチャではパワー マネージ メ ン ト が特に重要な要素と な り ます。 し た

がって、 各ブロ ッ ク で使用する ソ フ ト ウ ェ ア コ ンポーネン ト を決定する際にもパワー マネージ メ ン ト を考慮する必

要があ り ます。 第 2 章 「プロセ ッ シング システム」 で説明し た よ う に、 Zynq UltraScale+ MPSoC デバイ スにはい く

つかの電源ド メ イ ンがあ り 、 これら を実行時に制御でき ます。 た と えば APU で Linux を動作させる場合、 フル電力

ド メ イ ン (FPD) への電源供給が停止する と Linux OS を利用でき な く な り ます。

この章では、 APU および RPU のソ フ ト ウ ェ ア機能の詳細について説明し ます。 また、 GPU を使用するためのソ フ ト

ウ ェア、 および PMU のデフ ォル ト フ ァーム ウ ェ アの機能について も紹介し ます。 GPU を含むグ ラ フ ィ ッ ク スの詳

細は、 第 9 章 「マルチ メ デ ィ ア」 を参照し て く ださい。 PMU を含むパワー マネージ メ ン ト の詳細は、 第 4 章 「電源

に関する注意事項」 を参照し て く ださい。 PL によ るハード ウ ェ ア オフ ロード の機能は、 第 2 章 「プロセ ッ シング シ

ステム」 を参照し て く ださい。 ザイ リ ン ク ス PL で MicroBlaze ソ フ ト コ アを使用する方法の詳細は、 MicroBlaze に

関するザイ リ ン ク スの資料全般を参照し て く ださい。

アプ リ ケーシ ョ ン  プロセ ッ シング ユニ ッ ト  (APU) のソ フ ト ウ ェ ア

APU は Zynq UltraScale+ MPSoC デバイ スの中心的な汎用プロセ ッ シング ブロ ッ ク です。 大動作周波数 1.5 GHz の

A53 を 大 4 つ備えた APU は圧倒的な コ ンピ ューテ ィ ング性能を発揮し、 強力な ソ フ ト ウ ェア アブス ト ラ ク シ ョ ン

をサポー ト し ます。

APU では次のソ フ ト ウ ェ アおよびソ フ ト ウ ェ ア構成を利用でき ます。

• ベア メ タル動作 (A53 上で直接動作、 または Xen ハイパーバイザー上のゲス ト と し て動作)。

注記: この場合は A53 を 1 つしか使用できないため、 マルチコ アのスケーラ ビ リ テ ィ は得られません。

• 本格的な SMP Linux (A53 上で直接動作、 または Xen ハイパーバイザー上のゲス ト と し て動作)。

• FreeRTOS (A53 上で直接動作、 または Xen ハイパーバイザー上のゲス ト と し て動作)。

注記: この場合は A53 を 1 つしか使用できないため、 マルチコ アのスケーラ ビ リ テ ィ は得られません。

• Xen ハイパーバイザー (ゲス ト Linux イ ン ス タ ン ス をホステ ィ ング、 またはい く つかの A53 上で Linux イ ン ス タ

ン ス を実行)。

• ARM ト ラ ステ ッ ド フ ァーム ウ ェ ア (ATF) (A53 の TrustZone 機能をサポー ト 。 第 7 章 「 リ ソースの分離と分割」

を参照)。

• ザイ リ ン ク ス OpenAMP (Open Asymmetric Multi Processing) (Zynq UltraScale+ MPSoC デバイ スの異なるブロ ッ ク

上で動作する複数のソ フ ト ウ ェ ア間の通信を可能にする フ レーム ワーク )。

• 上記のいずれかに関連する ド ラ イバー、 サービ ス、 およびラ イブラ リ 。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 46UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 47: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 3 章: システム ソ フ ト ウ ェ アの検討事項

次に、 前述のパッ ケージの多 く を実行し た APU の構成例を示し ます。

図 3‐2: APU ソ フ ト ウ ェ ア ス タ ッ クの例

X-Ref Target - Figure 3-2

Non-secure world

Xen Hypervisor

Guest OS Guest OS

App1 App2 App1 App2

Secure world

ARM Trusted Firmware (ATF)

A53Core 0

A53Core 1

A53Core 2

A53Core 3

X18930-032117

この例で、 APU は ARM ト ラ ステ ッ ド フ ァーム ウ ェア (ATF) と Xen ハイパーバイザー、 および 2 つのゲス ト OS を同

時に実行し ます。 このため、 APU は 2 つの重要な方法で分離されます。 1 つはセキュア環境と非セキュア環境の分離

で、 これは ARMv8 TrustZone 機能によ って実現しています (第 7 章 「 リ ソースの分離と分割」 参照)。 も う 1 つは、 並

列に動作する 2 つの異なるゲス ト OS の分離で、 これは Xen ハイパーバイザーによ って実現しています。

APU におけるベア メ タルの使用

Zynq UltraScale+ MPSoC デバイ ス を使用するにあた り 、 デバイ ス全体でベア メ タルを実行する (すなわち OS もハイ

パーバイザーも使用し ない) こ と を検討し ている な ら、 特に APU に関し てはその判断の根拠を慎重に分析する こ と

を強 く 推奨し ます。 APU はベア メ タルの実行をサポー ト し ていますが、 その場合 1 つの A53 しか使用できず、 それ

以外の 3 つの A53 は使用でき な く な り ます。 し たがって、 システム アーキテ クチャ を決定する前にこの点を十分に

考慮する必要があ り ます。 その理由は、 ベア メ タルでは SMP 動作がサポー ト されないこ と にあ り ます。 Xen と

Linux はどち ら も APU の A53 を複数管理でき るため、 これはハード ウ ェア上の制限と い う よ り もむし ろ必要な ソ フ

ト ウ ェアが複雑にな り すぎて手間がかかる と い う 問題によ る ものです。

そのため、 APU でベア メ タルを使用するかど う か迷っている場合は、 次の点を考慮し て く ださい。

1. RPU な ら 600 DMIPS のプロセ ッサで 高の リ アルタ イ ム割 り 込み応答が得られます。

2. APU でベア メ タルを実行し た場合、 多 く のデザイ ンで十分なレベルの リ アルタ イ ム応答が得られますが、 APU

のすべてのプロセ ッ サ コ アを使用するのは困難です。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 47UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 48: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 3 章: システム ソ フ ト ウ ェ アの検討事項

それほど高い速度および安定し た リ アルタ イ ム性能が必要 と されない場合、 ハイパーバイザー上でほかのオペレー

テ ィ ング システム と並行し てベア メ タルを実行し て も主要な製品要件を満たすこ と ができ ます。 厳密な リ アルタ イ

ム応答時間を重視する場合は、 リ アルタ イ ム コード を Linux に密結合する必要があ るかど う かを検討し ます。 リ ア

ルタ イ ム コード がほぼ単独で動作する場合は RPU での実行が適し ています。 リ アルタ イ ム コード と Linux の間に依

存関係があ る場合も、 まずは リ アルタ イ ム部分を RPU で実行し、 OpenAMP フ レーム ワーク を使用し て APU 上の

Linux イ ン ス タ ン ス と必要に応じ て通信する こ と を推奨し ます。 OpenAMP を使用し て も問題を解決でき ない場合は、

サード パーテ ィ から提供されているいずれかの リ アルタ イ ム Linux バ リ アン ト を APU で実行するか、 適切なパ

フ ォーマン ス を備えたハイパーバイザーを使用し て APU 上で Linux と並行し てベア メ タル/RTOS をホステ ィ ングす

る方法があ り ます。

それほど厳密な リ アルタ イ ム性能が必要 と されないアプ リ ケーシ ョ ンの場合、 Xen ハイパーバイザー上でベア メ タ

ル アプ リ ケーシ ョ ンを実行するのが有効です。 Xen を使用する と、 Linux をゲス ト と し て実行し な く て も A53 上で動

作する ソ フ ト ウ ェ アをユーザーが完全に制御でき ます。 このため、 Xen を使用する と複数の A53 上でベア メ タル

コード を実行でき ます。

リ アルタ イム プロセ ッ シング ユニ ッ ト  (RPU) のソ フ ト ウ ェ ア

Zynq UltraScale+ MPSoC デバイ スでは APU と は別に完全に独立し たブロ ッ ク と し て RPU が内蔵されているため、 リ

アルタ イ ム コ ンピ ューテ ィ ング と汎用コ ンピ ューテ ィ ングの両方のワーク ロード をどち ら も妥協する こ と な く 同じ

システムで実行でき ます。 専用の リ アルタ イ ム プロセ ッ シング環境と し て RPU の 2 つの R5 を利用でき る ため、

APU の汎用 A53 で無理に リ アルタ イ ム性能を追求する必要がな く な り ます。 業界標準の汎用ハイ レベル機能および

オペレーテ ィ ング システムを A53 で実行し ながら、 RPU では同時に次のものを実行でき ます。

• ベア メ タル アプ リ ケーシ ョ ン

• FreeRTOS およびその他の商用 RTOS

• ほかのプロセ ッ シング ブロ ッ ク と の通信を可能にする OpenAMP フ レーム ワーク

• 上記のいずれかに関連する ド ラ イバー、 サービ ス、 およびラ イブラ リ

RPU の R5 はスプ リ ッ ト モード またはロ ッ ク ステ ッ プ モード での動作が可能です。 スプ リ ッ ト モード では、 次の図

に示すよ う に各 R5 がそれぞれ専用のソ フ ト ウ ェア ス タ ッ ク を実行でき ます。

図 3‐3: RPU ソ フ ト ウ ェ ア ス タ ッ クの例

X-Ref Target - Figure 3-3

RPU

R5 Core 0

Baremetal RTOS

Baremetal RTOS

App1 App2 App1 App2

R5 Core 1

第 2 章 「プロセ ッ シング システム」 で説明し た よ う に、 ロ ッ ク ステ ッ プ モード では 2 つの R5 が同じ処理を実行し、

その出力が異なる と エラーが ト リ ガーされます。 ロ ッ ク ステ ッ プ モード では、 RPU から密結合 メ モ リ (TCM) 全体の

256 KB にア ク セスでき ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 48UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 49: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 3 章: システム ソ フ ト ウ ェ アの検討事項

R5 はス ター ト ア ッ プ時に FSBL から独立し てブー ト させる こ と も、 APU のス レーブ と し て動作させる こ と もでき ま

す。 ス レーブ モード では APU で OpenAMP を動作させ、 実行時に指定し たワーク ロード で R5 のロードおよび リ

セ ッ ト を実行し ます。

グラ フ ィ ッ クス プロセ ッ シング ユニ ッ ト  (GPU) のソ フ ト ウ ェ ア

Zynq UltraScale+ MPSoC デバイ スは、業界標準の ARM Mali-400 MP2 グ ラ フ ィ ッ ク ス プロセ ッ シング ユニ ッ ト (GPU)

を使用し て 2D および 3D グ ラ フ ィ ッ ク ス を処理し ます。 次の図に、 Linux ベースのソ フ ト ウ ェア ス タ ッ ク で GPU を

使用する際のシステム コ ンポーネン ト を示し ます。

図 3‐4: Linux ベースの GPU ソ フ ト ウ ェ ア ス タ ッ ク

X-Ref Target - Figure 3-4

Graphics Application

Display ServerEx: XII, Wayland Mali common

Libraries

Video Codecs

Graphic LibrariesEx: Open GLES1,

Open GLES 2, Open VG

Gstreamer

Frame Buffer Driver

Display Drivers

Video DriversEx: V4L2

Mali Graphic DriversDRM

APU

Linux Kernel Drivers

DDR Controller

Memory

GPO PPO PP1Display Port

ARM MALI GPUCache Coherent

Interconnect

X14822-032917

GPU を使用する アプ リ ケーシ ョ ンの下位層には、 デ ィ スプレ イ サーバー (Wayland など)、 グ ラ フ ィ ッ ク ス ラ イブラ

リ (OpenGL ES 1.1 など)、 Mali 共通ラ イブラ リ 、 Gstreamer、 およびビデオ コーデッ ク で構成される ミ ド ルウ ェアが

あ り ます。 ミ ド ルウ ェ ア と実際の GPU ハード ウ ェア コ ンポーネン ト の間には、 Linux カーネル ド ラ イバーのレ イ

ヤーがあ り ます。 これらの ド ラ イバーは、 フ レーム バッ フ ァー、 DRAM、 Mali グ ラ フ ィ ッ ク ス、 ビデオ、 および

デ ィ スプレ イ を処理し ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 49UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 50: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 3 章: システム ソ フ ト ウ ェ アの検討事項

ブー ト  プロセス ソ フ ト ウ ェ ア

ブー ト 時の動作 と性能がアプ リ ケーシ ョ ンに と って重要かど う かはシステム要件によ り 異な り ます。 しかしいずれ

の場合も、 一部の処理はブー ト 時にしか実行でき ないため、 システムがどのよ う にブー ト するのかを理解し てお く

こ と が重要です。

次に示すブロ ッ クはいずれもブー ト プロセスに関係し ます。

• PMU

• CSU

• APU

• RPU

• PL

これらのブロ ッ ク が使用する ソ フ ト ウ ェ アおよびバイナ リ コ ンポーネン ト には次のものがあ り ます。

• PMU フ ァーム ウ ェ ア

• CSU ブー ト ROM

• 第 1 段階ブー ト ローダー (FSBL)

• U-Boot

• ARM ト ラ ステ ッ ド フ ァーム ウ ェ ア (ATF)

• PL ビ ッ ト ス ト リ ーム

ブー ト プロセスは主に次の 3 つのステージで構成されます。

• プ リ コ ンフ ィ ギュ レーシ ョ ン ステージ: こ のステージは主に PMU が制御し、 PMU ROM を実行し てシステムを

セ ッ ト ア ッ プし ます。 リ セ ッ ト およびウ ェーク ア ッ プに関するプロセスはすべて PMU が処理し ます。

• コ ンフ ィ ギュ レーシ ョ ン ステージ: FSBL コード をオンチッ プ RAM (OCM) にロード し ます。 セキ ュ ア ブー ト と

非セキ ュ ア ブー ト のどち らのモード もサポー ト されます。 FSBL は APU または RPU にロード でき ます。

• ポス ト コ ンフ ィ ギュ レーシ ョ ン ステージ: FSBL の実行が開始する と、 Zynq UltraScale+ MPSoC デバイ スはポス

ト コ ンフ ィ ギュ レーシ ョ ン ステージに移行し ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 50UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 51: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 3 章: システム ソ フ ト ウ ェ アの検討事項

ブー ト  プロセスの基礎

次に、 ブー ト プロセスおよび関係するブロ ッ ク と ソ フ ト ウ ェアを概略図と し て示し ます。

図 3‐5: ブー ト  プロセスの例

X-Ref Target - Figure 3-5

Time

Release CSU

Power Monitoring

LoadFSBL

AMP Firmware

U-Boot

Linux

PMU

CSUBootROM

RPU0

APU0 FSBL

AMP FirmwareRPU1

AMP Firmware

APU1,APU2,APU3,

...

LinuxLinux

AMP Firmware

MB (PL)

RP

Msg*

AMP Firmware

*RMPsg is provided in the Xilinx OpenAMP Library

RP

Msg* R

PM

sg*

RP

Msg*

ATF

この図に示すよ う に、 ブー ト フ ローでは PMU、 CSU、 および APU 内のソ フ ト ウ ェ ア システムがすべて連携し てシ

ステムを起動し ます。 実行される ア ク シ ョ ンは次の とお り です。

• PMU は CSU に制御を渡し、 認証が必要かど う かを CSU がチェ ッ ク し ます。

• CSU が FSBL をオンチッ プ メ モ リ (OCM) にロード し ます。

• APU で FSBL が実行されます。 FSBL は RPU でも実行でき ます。

• 次に、 FSBL がユーザーのアプ リ ケーシ ョ ン ソ フ ト ウ ェ アまたは U-Boot などの第 2 段階ブー ト ローダーを起動

し ます。

次に示す図は、 ブー ト プロセス を別の観点から見た ものです。 パワーア ッ プおよび リ セ ッ ト シーケン スはすべて

PMU によ って制御されます。 PMU はまず CSU を解放し、 これによ ってユーザーからは通常見えない内部チェ ッ ク

および初期化が実行されます。 FSBL の実行を開始するブー ト イ メ ージの構成に基づいて制御が RPU または APU に

移 り ます。 FSBL は RPU 上の RTOS、 PL ビ ッ ト ス ト リ ーム、 ATF および U-Boot、 Linux、 ハイパーバイザーなど、 そ

の他のシステム コ ンポーネン ト をすべて ロード し てシステム全体をブ リ ングア ッ プし ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 51UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 52: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 3 章: システム ソ フ ト ウ ェ アの検討事項

図 3‐6: 別の観点から見たブー ト  プロセス

X-Ref Target - Figure 3-6

PlatformManagement ROM

ConfigurationSecurity ROM

First Stage Boot Loader

Loads ARM Trusted Firmware, Loads U-Boot for Hypervisor

and non-secure OS

Loads Hypervisor on APU

Uboot loads Linux Kernel on APU

Load RTOS on RPU

Load PL bitstream

X18661-032917

ハード ウ ェア RoT (Root of Trust)、 ウ ォーム リ ス ター ト 、 およびサブシステム間の分離と いった基本的な機能を実行

するには、 PMU フ ァーム ウ ェ ア、 CSU ブー ト ROM および FSBL が必要です。 Linux を使用する場合は ATF も使用し

ます。

セキュア ブー ト

Zynq UltraScale+ MPSoC デバイ スには、 セキ ュ ア ブー ト と非セキ ュ ア ブー ト の 2 つのモード があ り ます。 前出のタ

イ ミ ング図は、 基本的に非セキ ュ ア モード のブー ト プロセス を示し ています。 次の図に、 完全なセキ ュ ア モード の

ブー ト プロセス を示し ます。

図 3‐7: セキュア ブー ト  プロセス

X-Ref Target - Figure 3-7

Time

Release CSU

Power Monitoring

LoadFSBL

Tamper Monitoring

AMP Firmware

U-Boot

Linux

PMU

CSUBootROM

RPU0

APU0 FSBL

AMP FirmwareRPU1

AMP Firmware

APU1,APU2,APU3,

...

LinuxLinux

AMP Firmware

MB (PL)

RP

Msg*

AMP Firmware

*RMPsg is provided in the Xilinx OpenAMP Library

RP

Msg* R

PM

sg*

RP

Msg*

ATF

X18662-032117

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 52UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 53: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 3 章: システム ソ フ ト ウ ェ アの検討事項

セキ ュ ア ブー ト の場合、 CSU は次の動作も実行し ます。

• 認証チェ ッ ク を実行し、 このチェ ッ ク にパス し た場合のみ次へ進みます。 イ メ ージに暗号化されたパーテ ィ

シ ョ ンがあ るかど う かをチェ ッ ク し ます。

• パーテ ィ シ ョ ンが暗号化されている場合、 CSU は復号化を実行し、 FSBL を OCM にロード し ます。

また、 この例では APU 上で動作する Linux イ ン ス タ ン スが OpenAMP を使用し て RPU 上のソ フ ト ウ ェアおよび PL

で動作する MicroBlaze 上のソ フ ト ウ ェ アを起動し ている こ と も見て と れます。

ブー ト 時の性能

前述の とお り 、 一部の処理はブー ト 時にしか実行でき ません。 し たがって、 ブー ト プロセス をカス タマイ ズする際

にはブー ト 時間の制約があ るかど う かを理解し てお く 必要があ り ます。 た と えば PCIe、 CAN-FD、 イーサネ ッ ト

AVB などではシステムがオン ラ イ ンになる までの時間が仕様で定義されています。 これらの規格に従 う 場合、 パー

シャル リ コ ンフ ィ ギュ レーシ ョ ンを使用し てブー ト 時にビ ッ ト ス ト リ ームの も重要な部分のみを短時間でロード

し ておき、 残 り は後でロードする と い う 方法も可能です。

ブー ト  デバイス

Zynq UltraScale+ MPSoC デバイ スの CSU ブー ト ROM は、 次のプラ イマ リ ブー ト デバイ ス をサポー ト し ています。

• ク ワ ッ ド SPI

• NAND

• SD/MMC

• eMMC

CSU は SATA、 イーサネ ッ ト 、 および PCI Express からのブー ト を直接サポー ト し ていませんが、 小限の FSBL を

使用し て、 これらデバイ スからのセカンダ リ ブー ト が可能です。

一般に、 ブー ト デバイ スは次のよ う なニーズに応じ て選択し ます。

• 速度を重視する場合は、 SPI フ ラ ッ シュ を使用し ます。

• 容量を重視し、 なおかつシステムのホス ト にフ ラ ッ シュ フ ァ イル管理の負担をかけた く ない場合は eMMC が適

し ています。

• ス ト レージ構成が複雑な場合は、 NAND の方が柔軟性に優れています。 性能上の理由でフ ラ ッ シュ を きめ細か

く 制御する必要があ り 、 なおかつフ ラ ッ シュ管理ソ フ ト ウ ェ アを実行でき るだけの強力なプロセ ッ サを備えた

システムでは、 この選択肢が理想的です。

また、 ス ト レージを選択する際にはデバイ スによ って必要なピン数が異なる こ と も考慮する必要があ り ます。

サポー ト されるブー ト デバイ スについてのその他の注意点は次の とお り です。

• QSPI (シ リ アル フ ラ ッ シュ ) のプラ イマ リ ブー ト モード は 4 バイ ト ア ド レ ス指定をサポー ト し ています。

• NAND は ONFI (Open NAND Flash Interface) バージ ョ ン 3.1 をサポー ト し ています。

• SD カード は SD 仕様バージ ョ ン 3.0 をサポー ト し ています。

• eMMC は eMMC (embedded Multimedia Card) 仕様バージ ョ ン 4.51 をサポー ト し ています。

• NOR (パラ レル フ ラ ッ シュ ) はサポー ト されません。

• PS JTAG を利用でき ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 53UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 54: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 3 章: システム ソ フ ト ウ ェ アの検討事項

• PL JTAG は FSBL のみに限られます。

• スプ リ ッ ト JTAG モード は FSBL のみに限られます。

ブー ト に関するその他のリ ソース

ブー ト プロセスの詳細、 およびセキ ュ ア/非セキ ュ ア ブー ト の詳細は、 次の資料を参照し て く ださい。

• 『Zynq UltraScale+ MPSoC テ ク ニカル リ フ ァ レ ン ス マニュ アル』 (UG1085) [参照 7]

° ブー ト およびコ ンフ ィ ギュ レーシ ョ ン

° セキ ュ リ テ ィ

• 『Zynq UltraScale+ MPSoC ソ フ ト ウ ェア開発者向けガイ ド』 (UG1137) [参照 5]

° Zynq UltraScale+ MPSoC デバイ スのプロ グ ラ ミ ング ビ ュー

° システム ブー ト およびコ ンフ ィ ギュ レーシ ョ ン

° セキ ュ リ テ ィ 機能

システム ソ フ ト ウ ェ ア ス タ ッ ク

APU および RPU で使用でき る ソ フ ト ウ ェ ア ス タ ッ クは、 45 ページの 「システム ソ フ ト ウ ェアの設計手法」 に示し

た とお り です。 こ こ では、 これら ス タ ッ ク のい く つかを詳し く 取 り 上げ、 それらの使用に関する推奨事項について

説明し ます。

RPU ベア メ タル ソ フ ト ウ ェ ア ス タ ッ ク

RPU ベア メ タル ソ フ ト ウ ェ ア ス タ ッ クは、 次に示す複数のレ イヤーで構成されます。

• ス タ ッ ク の 下層には、 Cortex R5 ス タ ン ド ア ロ ン ボード サポー ト パッ ケージ (BSP) プロセ ッ サ レ イヤーがあ

り ます。 このレ イヤーには、 プロセ ッ サ ブー ト コード、 キ ャ ッ シュ、 例外処理、 メ モ リ 、 システム タ イマー

コ ンフ ィ ギュ レーシ ョ ン、 およびプロセ ッ サ機能の初期化を含むス タ ン ド ア ロ ン BSP があ り ます。

• Cortex R5 ス タ ン ド ア ロ ン BSP プロセ ッ サ レ イヤーの上位には、 各種ハード ウ ェ ア コ ンポーネン ト に対する複

数のシングル ス レ ッ ド デバイ ス ド ラ イバーがあ り ます。 これにはペ リ フ ェ ラル ド ラ イバーのほか、 システム

でのデバッ グをサポー ト する CoreSight デバッ グ ド ラ イバーも含まれます。

• その上位には、 アプ リ ケーシ ョ ン ソ フ ト ウ ェ ア開発をサポー ト する各種ラ イブラ リ で構成される レ イヤーがあ

り ます。 これには、 C ラ イブラ リ 、 フ ァ イル システム ラ イブラ リ 、 メ モ リ 、 フ ラ ッ シュ、 セキ ュ ア キー、 パ

ワー マネージ メ ン ト ラ イブラ リ 、 および lwIP ネ ッ ト ワーク ス タ ッ ク ラ イブラ リ が含まれます。 また、 Zynq

UltraScale+ MPSoC デバイ スの OpenAMP フ レーム ワーク (60 ページの 「OpenAMP フ レーム ワーク」 参照) を使

用するための OpenAMP ラ イブラ リ も このレ イヤーに含まれます。

• このス タ ッ ク の上位にユーザー アプ リ ケーシ ョ ン、 カス タ ム ラ イブラ リ 、 およびサービ スが必要に応じ て存在

し ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 54UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 55: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 3 章: システム ソ フ ト ウ ェ アの検討事項

図 3‐8: RPU ベア メ タル ソ フ ト ウ ェ ア ス タ ッ ク

X-Ref Target - Figure 3-8

Standalone Kernel and DriversStandard USB

Drivers SysMon Driver

CoreSight Debug Driver

EMAC EthernetDriver

RTC Driver Interrupt Controller Driver

CAN Driver AXI Performance Monitor Driver

NAND Driver QSPI Driver

SPI, I2C, UART Drivers ZDMA Driver

GPIO Driver IPI Driver

SD Card Driver TTC Driver

Cortex R5 Standalone BSP Processor Layer

LibrariesStandard ‘C’ Library

(libXil)

Secure Key (xilskey)

lwIP Networking (lwip141)

Memory File System (xilmfs)

FAT file system (xilffs)

Serial Flash (xilisf)

Secure (xilsecure) RSA (xilrsa) Power Mgr API

(xilpm)OpenAMP

(xilopenamp)Parallel Flash

(xilflash)

ApplicationsTemplate Applications Customer Applications

RPU の R5 でベア メ タルを実行する と RPU の機能を完全に制御でき ますが、 そのためにはタ ス ク のスケジュー リ ン

グ、 ソ フ ト ウ ェ ア コ ンポーネン ト 間の主要な通信の管理、 ソ フ ト ウ ェア間ロ ッ ク の管理はも ちろん、 それ以外にも

通常な ら OS カーネルが実行し て く れるい く つかの処理を手動で実行し なければな ら ないこ と があ り ます。 十分に定

義された、 または十分に同期し た タ ス ク を限られた回数だけ実行する よ う なアプ リ ケーシ ョ ンの場合、 片方または

両方の R5 でベア メ タルを実行するのが適し ています。 R5 で実行する機能が今後拡張される可能性があ る場合は、

R5 で何らかの OS を実行する こ と を推奨し ます。 た と えば 初は while(1) ループだけだったデザイ ンが、 開発を

重ねた結果、 終的に高機能な OS のよ う になって し ま う こ と も珍し く あ り ません。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 55UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 56: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 3 章: システム ソ フ ト ウ ェ アの検討事項

RPU FreeRTOS ソ フ ト ウ ェ ア ス タ ッ ク

RPU FreeRTOS ソ フ ト ウ ェア ス タ ッ クは、 下層に FreeRTOS カーネル コ ンポーネン ト が含まれる点を除き、 RPU

ベア メ タル ソ フ ト ウ ェ ア ス タ ッ ク と同じです。 RPU ベア メ タルの代わ り に FreeRTOS を実行する と、 OS の基本機能

を自分で管理し な く て も業界標準の リ アルタ イ ム OS を使用し てアプ リ ケーシ ョ ンを段階的に拡張でき る利点があ り

ます。 その反面、 FreeRTOS およびその API の使用経験がない場合は習熟の必要があ り ます。

図 3‐9: FreeRTOS ソ フ ト ウ ェ ア ス タ ッ ク

X-Ref Target - Figure 3-9

FreeRTOS Kernel and DriversStandard USB

Drivers SysMon Driver

CoreSight Debug Driver

EMAC EthernetDriver

RTC Driver Interrupt Controller Driver

CAN Driver AXI Performance Monitor Driver

NAND Driver QSPI Driver

SPI, I2C, UART Drivers ZDMA Driver

GPIO Driver IPI Driver

SD Card Driver TTC Driver

FreeRTOS 8.2.1

Cortex R5 Standalone BSP Processor Layer

LibrariesStandard ‘C’ Library

(libXil)

Secure Key (xilskey)

lwIP Networking (lwip141)

Memory File System (xilmfs)

FAT file system (xilffs)

Serial Flash (xilisf)

Secure (xilsecure) RSA (xilrsa) Power Mgr API

(xilpm)OpenAMP

(xilopenamp)Parallel Flash

(xilflash)

ApplicationsTemplate Applications Customer Applications

APU ベア メ タル ス タ ッ ク

APU のベア メ タル ソ フ ト ウ ェ ア ス タ ッ ク も、 こ こ まで示し た ソ フ ト ウ ェ ア ス タ ッ ク と同様のレ イヤーで構成され

ます。

• ス タ ッ ク の 下層には Cortex-A53 ス タ ン ド ア ロ ン BSP (32 ビ ッ ト モード用と 64 ビ ッ ト モード用に 1 つずつ) が

あ り ます。 32 ビ ッ ト モード は ARMv7-A と互換性があ り 、 64 ビ ッ ト モード は ARMv8-A アーキテ クチャ と互換

性があ り ます。 各ス タ ン ド ア ロ ン BSP にはプロセ ッサ ブー ト コード、 キ ャ ッ シュ、 例外処理、 メ モ リ 、 システ

ム タ イマー コ ンフ ィ ギュ レーシ ョ ン、 およびプロセ ッ サ固有機能の初期化が含まれます。

• Cortex-A53 ス タ ン ド ア ロ ン BSP レ イヤーの上位には、 各種ハード ウ ェ ア コ ンポーネン ト に対する複数のデバイ

ス ド ラ イバーがあ り ます。 これにはペ リ フ ェ ラル ド ラ イバーのほか、 システムでのデバッ グをサポー ト する

CoreSight デバッ グ ド ラ イバーも含まれます。

• その上位には、 アプ リ ケーシ ョ ン ソ フ ト ウ ェ ア開発をサポー ト する各種ラ イブラ リ で構成される レ イヤーがあ

り ます。 これには、 標準 C ラ イブラ リ 、 フ ァ イル システム ラ イブラ リ 、 メ モ リ 、 フ ラ ッ シュ、 セキ ュ ア キー、

パワー マネージ メ ン ト ラ イブラ リ 、 および lwIP ネ ッ ト ワーク ス タ ッ ク ラ イブラ リ が含まれます。 また、 Zynq

UltraScale+ MPSoC デバイ スの OpenAMP フ レーム ワーク (60 ページの 「OpenAMP フ レーム ワーク」 参照) を使

用するための OpenAMP ラ イブラ リ も このレ イヤーに含まれます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 56UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 57: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 3 章: システム ソ フ ト ウ ェ アの検討事項

• このス タ ッ ク の上位にユーザー アプ リ ケーシ ョ ン、 カス タ ム ラ イブラ リ 、 およびサービ スが必要に応じ て存在

し ます。

図 3‐10: APU ベア メ タル ス タ ッ ク

X-Ref Target - Figure 3-10

Standalone Kernel and DriversStandard USB

Drivers SysMon Driver

CoreSight Debug Driver

EMAC EthernetDriver

RTC Driver Interrupt Controller Driver

CAN Driver AXI Performance Monitor Driver

NAND Driver QSPI Driver

SPI, I2C, UART Drivers ZDMA Driver

GPIO Driver IPI Driver

SD Card Driver TTC Driver

Cortex A53 Standalone BSP Processor Layer

LibrariesStandard ‘C’ Library

(libXil)

Secure Key (xilskey)

lwIP Networking (lwip141)

Memory File System (xilmfs)

FAT file system (xilffs)

Serial Flash (xilisf)

Secure (xilsecure) RSA (xilrsa) Power Mgr API

(xilpm)OpenAMP

(xilopenamp)Parallel Flash

(xilflash)

ApplicationsTemplate Applications Customer Applications

APU でベア メ タルを使用する際の注意点は、 47 ページの 「APU におけるベア メ タルの使用」 で説明し た とお り で

す。 ベア メ タル アプ リ ケーシ ョ ンの リ アルタ イ ム または割 り 込み応答要件を見直し、 可能な ら Xen ハイパーバイ

ザー上でアプ リ ケーシ ョ ンをホステ ィ ングする こ と を推奨し ます。 こ う する と、 よ り 多 く のシステム リ ソース をほ

かのタ ス ク に割 り 当てる こ と ができ ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 57UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 58: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 3 章: システム ソ フ ト ウ ェ アの検討事項

APU Linux ソ フ ト ウ ェ ア ス タ ッ ク

Zynq UltraScale+ MPSoC デバイ スの使用方法と し ては、 APU で Linux を実行する こ と が推奨されます。 PetaLinux

ツールの一部 と し て提供される APU Linux ソ フ ト ウ ェア ス タ ッ ク もい く つかのレ イヤーで構成されています。 これ

らの多 く は標準 Linux ソ フ ト ウ ェア エコ システムに含まれます。

• ス タ ッ ク の 下層には Linux コ ア カーネル/サービ ス と Cortex-A53 BSP プロセ ッサ レ イヤーがあ り ます。 この

レ イヤーには、 プロセ ッ サ ブー ト コード、 キ ャ ッ シュ、 例外処理、 メ モ リ 、 システム タ イマー コ ンフ ィ ギュ

レーシ ョ ン、 およびプロセ ッ サ固有機能の初期化に関する コ ンポーネン ト が含まれます。

• その上位には、 カーネル レベルの複数のデバイ ス ド ラ イバー、 ペ リ フ ェ ラル ド ラ イバー、 い く つかの Linux ド

ラ イバーおよびシステム サービ スがあ り ます。 これには、 リ ソース管理、 フ ァ イル システム、 I/O 管理、 パ

ワー マネージ メ ン ト 、 ネ ッ ト ワークおよびマルチ メ デ ィ ア ス タ ッ ク レ イヤー、 グ ラ フ ィ ッ ク ス、 ビデオ ド ラ

イバー、 およびネ ッ ト ワーク ス タ ッ ク が含まれます。

• その上のレ イヤーにはアプ リ ケーシ ョ ン ソ フ ト ウ ェ ア開発をサポー ト する各種ラ イブラ リ があ り ます。 これに

は、 標準 C ラ イブラ リ 、 フ ァ イル システム ラ イブラ リ 、 メ モ リ 、 フ ラ ッ シュ、 セキ ュ ア キー、 パワー マネー

ジ メ ン ト ラ イブラ リ 、 マルチ メ デ ィ ア ラ イブラ リ OpenGL、 EGL、 DRM ラ イブラ リ 、 デ ィ スプレ イ サーバー、

オーデ ィ オ サーバー、 OpenMAX、 その他多 く の ミ ド ルウ ェ ア ラ イブラ リ が含まれます。 また、 Zynq

UltraScale+ MPSoC デバイ スの OpenAMP フ レーム ワーク (60 ページの 「OpenAMP フ レーム ワーク」 参照) を使

用するための OpenAMP ラ イブラ リ も このレ イヤーに含まれます。

• このス タ ッ ク の上位にユーザー アプ リ ケーシ ョ ン、 カス タ ム ラ イブラ リ 、 およびサービ スが必要に応じ て存在

し ます。

図 3‐11: APU Linux ソ フ ト ウ ェ ア ス タ ッ ク

X-Ref Target - Figure 3-11

Linux Kernel and DriversFile System

ManagerRPmsg &

Remoteproc

Linux TCP/IP Network Stack

Graphics Driver

Ethernet Driver

USBDrivers

V4I2 ARM Arch Support

SATA Driver

Video Codec Driver

SPI, I2C, UART Drivers

PCIe Driver

Display Driver

ALSA Audio Driver

SD Card Driver

Flash Drivers

Linux Core Kernel and Services

Libraries

EGL DRM Library Display Server Audio Server OpenAMP Library Power Mgr API

ApplicationsTemplate Applications Customer Applications

OpenGL FBdev Other Middleware Libraries RSA Secure Library OpenMAX

FileSystem Services

File System

DRM KMS SMP Support

Cortex A53 BSP Processor Layer

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 58UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 59: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 3 章: システム ソ フ ト ウ ェ アの検討事項

Linux は 20 年以上にわたって組み込みシステム、 サーバー、 デス ク ト ッ プで使用されてお り 、 非常に活発で充実し

たエコ システムが形成されています。 し たがって Linux は多 く のカ ス タ ムおよび汎用アプ リ ケーシ ョ ンで強固な基

盤 と し て利用でき ます。 特に、 APU のマルチコ ア デザイ ンの可能性を 大限に引き出すには Linux が適し ています。

Linux の経験が豊富なチームな ら、 Linux を採用するのが も自然な選択肢と いえます。 反対に、 Linux に不慣れな

チームの場合はザイ リ ン ク ス独自の PetaLinux を使用し てプロ ジェ ク ト を開始する こ と を推奨し ます。 前述の とお

り 、 PetaLinux は初心者のエンベデッ ド ニーズに向けて敷居を下げた Linux バージ ョ ンです。

ただし Linux は分散開発モデルを採用し ているため、 伝統的なエンベデッ ド OS と は異な り 責任を持つ単一のベン

ダーが存在せず、 使用法について信頼でき る情報を ワ ン ス ト ッ プで入手でき ないこ と が問題と なる可能性があ り ま

す。 このため、 Linux の初心者がシステムの特定の事項について情報を得よ う とする と、 実際のユース ケースに関

係のない情報まで ヒ ッ ト し て し まい、 取捨選択が必要 と な り ます。 しかし先に述べた よ う に Linux はエンベデッ ド

プロ ジェ ク ト への採用実績が豊富で、 非常に多 く のチームが成功を収めている ため、 このよ う な短所はそれほど大

き な障壁 と はな ら ないでし ょ う 。

それよ り も技術的な問題 と し て、 デフ ォル ト の Linux カーネルでは完全な リ アルタ イ ム性能が得られない点に注意

が必要です。 Linux に リ アルタ イ ム性を追加する拡張機能と し て PREEMPT_RT や Xenomai も あ り ますが、 本稿執筆

時にはそのどち ら も Linux カーネルに完全には含まれていません。 このため、 これらの拡張機能を使用する場合は

Linux カーネルにパッチを追加する手間が必要と な り ます。 ただし前述の とお り 、 リ アルタ イ ム性能が求められる場

合はまず RPU と その機能を活用する こ と を検討し て く ださい。

ザイ リ ン ク スがサポー ト する Linux バ リ アン ト の詳細は、 この章で後述し ます。 Linux の使用についての詳細は、

『Zynq UltraScale+ MPSoC ソ フ ト ウ ェア開発者向けガイ ド』 (UG1137) [参照 5] でも説明し ています。

APU で Linux を使用する場合、 これ以外にも説明の必要な ソ フ ト ウ ェア ス タ ッ ク がい く つかあ り ます。 これらはグ

ラ フ ィ ッ ク スに関係する ものです。 Linux 環境における次のス タ ッ ク の詳細は、 第 9 章 「マルチ メ デ ィ ア」 を参照し

て く ださい。

• Linux DisplayPort ス タ ッ ク

• Linux GPU ソ フ ト ウ ェア ス タ ッ ク

• Linux ビデオ コーデッ ク ド ラ イバー ス タ ッ ク

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 59UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 60: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 3 章: システム ソ フ ト ウ ェ アの検討事項

OpenAMP フ レームワーク

OpenAMP (Open Asymmetric Multiprocessing) は、 Zynq UltraScale+ MPSoC デバイ スのよ う な非対称型マルチプロセ ッ

シング (AMP) システムにおいて ソ フ ト ウ ェ ア コ ンポーネン ト ど う し を相互接続するための一般的な API と メ ソ ド ロ

ジを提供する多層モジュール構造のフ レーム ワーク です。 これによ り 、 異なる コ ア イ ン ス タ ン スで異な るオペレー

テ ィ ング システム (HLOS、 ベア メ タル、 または FreeRTOS などの リ アルタ イ ム OS) を実行するヘテ ロ ジニアス マル

チプロセ ッ サ システムで動作する ソ フ ト ウ ェ ア アプ リ ケーシ ョ ンど う しが協調し て通信でき る よ う にな り ます。 も

う 少し具体的に言 う と、 OpenAMP はパワーオン、 フ ァーム ウ ェアのロード、 パワーオフ、 およびシステムを構成す

るヘテロ ジニアス プロセ ッサ間での情報共有 (通信) を可能にする ジェネ リ ッ ク な抽象化フ レーム ワーク です。

AMP システムでは、 一般的にマス ター プロセ ッサが要求に応じ て リ モー ト コ ア上のソ フ ト ウ ェ アを起動し ます。 そ

し てコ アど う しはプロセ ッ サ間通信 (IPC) を使用し て通信し、 マス ター プロセ ッサがほかのプロセ ッサにワーク

ロード をオフ ロード し ます。

次の図は、 非常に簡単な AMP ト ポロ ジを示し た ものです。 この例で、 Linux は APU でマス ター プロセ ッ サ と し て動

作し、 RPU は リ モー ト プロセ ッサ と し てベア メ タル アプ リ ケーシ ョ ンを実行し ています。 リ モー ト プロセ ッサの

ロード と開始は Linux が実行し ます。

図 3‐12: 簡単な AMP ト ポロジ

X-Ref Target - Figure 3-12

OpenAMP は 2 つの主要なコ ンポーネン ト で構成されます。

• Remoteproc: リ モー ト プロセ ッ サのラ イ フサイ クル管理 (LCM) をマス ター プロセ ッ サから制御するための管理

用フ レーム ワーク。

• RPMsg: AMP システムの独立し たコ ア上で動作する ソ フ ト ウ ェ ア間で API 経由でのプロセス間通信 (IPC) を可

能にする メ ッ セージング フ レーム ワーク。

図 3‐13: Remoteproc と  RPMsg

X-Ref Target - Figure 3-13

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 60UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 61: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 3 章: システム ソ フ ト ウ ェ アの検討事項

Remoteproc

Remoteproc はデバイ ス ド ラ イバーで実装され、 API 経由で命令を受け取 り ます。 API から受け取った命令に従い、

Remoteproc はマス ター プロセ ッ サに対し てコード とデータ を リ モー ト プロセ ッ サの メ モ リ にロードする、 リ モー ト

プロセ ッ サを開始する、 マス ター プロセ ッサ と リ モー ト プロセ ッ サ間の通信チャネルを管理する、 リ モー ト プロ

セ ッ サをシャ ッ ト ダウ ンする と いった動作の実行を指示し ます。

リ モー ト プロセ ッサからは、 API 経由のマス ター プロセ ッ サに対する呼び出しによ り 、 リ モー ト プロセ ッサ上の

Remoteproc システムを初期化する、 リ モー ト プロセ ッ サ と マス ター プロセ ッ サ間の通信チャネルを管理する、

リ モー ト プロセ ッサ上の Remoteproc システムをシ ャ ッ ト ダウ ンする と いった動作を実行でき ます。

RPMsg

RPMsg はプロセ ッ サ間の メ ッ セージング バスで、 各プロセ ッサはバス上のデバイ ス と し て存在し ます。 プロセ ッ サ

はチャネル と呼ばれる リ ン ク で相互に通信し ます。 チャネルは リ モー ト プロセ ッサが開始する と作成されます。

各チャネルは、 名前 と ソースおよびデステ ィ ネーシ ョ ン ア ド レ スで識別し ます。

RPMsg は仮想 I/O (Virtio) コ ンポーネン ト を使用し ます。 Virtio は、 マス ター プロセ ッサ と リ モー ト プロ ッ サ間の通

信をサポー ト する仮想 I/O サービ ス を提供し ます。

次の図は、 OpenAMP のレ イヤーに Virtio がどのよ う に組み込まれるかを示し た ものです。

図 3‐14: RPMsg と  Virtio

X-Ref Target - Figure 3-14

Virtio は、 Virtio が使用する I/O 処理用の ト ラ ン スポー ト 抽象化と し て vring を使用し ます。 vring は リ ング バッ

フ ァーを実装し ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 61UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 62: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 3 章: システム ソ フ ト ウ ェ アの検討事項

API

OpenAMP の API はマス ター プロセ ッ サ と リ モー ト プロセ ッ サの両方に実装されます。 API からの指示によ り 、

RPMsg は次の動作を実行し ます。

• チャネルのデフ ォル ト エン ド ポイ ン ト へ メ ッ セージを送信する

• 明示的な ソース /デステ ィ ネーシ ョ ン ア ド レ スおよびブロ ッ キング オプシ ョ ンに対応し た複合 メ ッ セージを送信

する

• チャネルおよびチャネル エン ド ポイ ン ト を作成および破棄する

• データ を受信する

• データ転送中にバッ フ ァー サイ ズを認識し て使用する

次に、 Zynq UltraScale+ MPSoC デバイ スの OpenAMP 対応コ ア間での API の使用例を示し ます。

図 3‐15: OpenAMP フ レームワーク を使用し たハイブ リ ッ ド  SMP + AMP の例

X-Ref Target - Figure 3-15

RPMsg

RPMsg

Open AMP(APIs for loading/ Unloading firmware, Message Passing)

その他のリ ソース

OpenAMP の詳細は、 『Zynq UltraScale+ MPSoC OpenAMP: 入門ガ イ ド』 (UG1186) [参照 8] を参照し て く ださい。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 62UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 63: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 3 章: システム ソ フ ト ウ ェ アの検討事項

Xen ハイパーバイザー

ザイ リ ン ク スはオープン ソースの Xen ハイパーバイザーをザイ リ ン ク ス Zynq UltraScale+ MPSoC デバイ ス向けに

ポーテ ィ ング し、 同じ コ ンピ ューテ ィ ング プラ ッ ト フ ォームで複数のオペレーテ ィ ング システムを実行でき る よ う

にし ています。 Xen はハード ウ ェ ア上で直接動作し、 ハイパーバイザー上で複数の OS を実行し ながら CPU、 メ モ

リ 、 割 り 込みを管理し ます。 これらの OS を ド メ イ ン または仮想マシン (VM) と呼びます。

注記: Xen ハイパーバイザーの詳細は、 https://wiki.xen.org/wiki/Xen_Project_Software_Overview の 「Xen プロ ジェ ク ト

のソ フ ト ウ ェア概要」 を参照し て く ださい。

次の図に、 Zynq UltraScale+ MPSoC デバイ ス上の Xen ハイパーバイザー アーキテ クチャの例を示し ます。

図 3‐16: Xen ハイパーバイザーのアーキテ クチャ

X-Ref Target - Figure 3-16

Hypervisor

APU

ARMCortex-A53

ARM Cortex-A53

ARM Cortex-A53

ARM Cortex-A53

Linux Kernel inSMP mode

RTOSKernel

BaremetalApplication

Application 1

Thre

ad 1

Thre

ad 2

Thre

ad n

App

licat

ion

n

Task

1

Task

2

Task

n

X14840-081015

Xen ハイパーバイザーは、1 つの ド メ イ ン ( ド メ イ ン 0 または dom0) と 1 つまたは複数のゲス ト ド メ イ ン (domU) を制

御し ます。 コ ン ト ロール ド メ イ ンには次の特権があ り ます。

• ハード ウ ェ アへの直接ア ク セス

• システムの I/O 機能へのア ク セス処理

• ほかの仮想マシン と の通信

また、 外部から ア ク セス可能な制御イ ン ターフ ェ イ ス も あ り 、 このイ ン ターフ ェ イ ス を利用し てシステムを制御し

ます。 各ゲス ト ド メ イ ン上ではそれぞれの OS と アプ リ ケーシ ョ ンを実行し ます。 ゲス ト ド メ イ ンはハード ウ ェ ア

から完全に隔離されます。

ハイパーバイザーはブー ト ローダーによ って起動し ます。 詳細は、 50 ページの 「ブー ト プロセス ソ フ ト ウ ェア」 を

参照して く ださい。 Xen ハイパーバイザーを使用し て複数の OS を実行するには、 ホス ト OS をセ ッ ト ア ップして 1 つ

または複数のゲス ト OS を追加し ます。 Zynq UltraScale+ MPSoC デバイ スの場合、 Xen はゲス ト OS なしでベア メ タル

アプ リ ケーシ ョ ンを実行する こ と もでき ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 63UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 64: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 3 章: システム ソ フ ト ウ ェ アの検討事項

パフ ォーマンス最適化に関する検討事項

前述の とお り 、 リ アルタ イ ムおよび割 り 込み応答要件によ っては、 Xen ハイパーバイザーを使用し たシステム デザ

イ ン構成の方がよいこ と も あ り ます。 しかし個々のデザイ ンはすべて異なってお り 、 設計要件によ っては Xen の使

用に関し て さ らにい く つか注意が必要になる こ と があ り ます。 こ こ では、 Zynq UltraScale+ MPSoC デバイ スで Xen を

適化するためのパフ ォーマン ス調整方法をい く つか紹介し ます。

割り込み応答時間

割 り 込み応答時間 と は、 ハード ウ ェ ア レベルで生成された割 り 込みが、 そのハード ウ ェア上で動作する OS 内で対

応する コード の実行を ト リ ガーする までの時間をいいます。 割 り 込み応答時間は、 ネイ テ ィ ブ OS と ゲス ト OS で異

な り ます。 ネイ テ ィ ブ OS の場合、 パフ ォーマン スに影響する要因と し てはプロセ ッサの例外レベル 3 (ARMv8 アー

キテ クチャの場合) で発生する動作、 OS 割 り 込みハン ド ラー、 および実際の応答時間のテス ト に使用する タ イマー

と計測精度が挙げられます。 ゲス ト OS の場合、 ハイパーバイザーの割 り 込み処理および転送ルーチン、 ハイパーバ

イザーのタ イマー分解能、 ゲス ト OS のコ ンフ ィ ギュ レーシ ョ ンなどパフ ォーマン スに影響する多 く の要因を考慮す

る必要があ り 、 複雑です。

計測を実行後、 アプ リ ケーシ ョ ンでゲス ト OS の割 り 込み応答時間を微調整する必要があ る と判断し た場合、 次の

適化手法を検討し ます。 これらの手法で実行する コ ンフ ィ ギュ レーシ ョ ン または設計変更は比較的簡単な ものです。

• Xen ハイパーバイザーのスケジューラの選択 と設定

• ゲス ト OS から物理 CPU への割 り 当て

• ゲス ト OS: デバイ ス をポー リ ングするか割 り 込みド リ ブン とするかの決定

適化手法にはこれ以外も あ り ますが、 この文書の目的からは外れる ため割愛し ます。

ブー ト 時間

ブー ト 時間 と は、 Xen ハイパーバイザーおよび Xen Dom0 が 初のゲス ト OS をブー ト する準備ができ る までの時間

をいいます。 ブー ト 時間は FSBL、 ARM ト ラ ステ ッ ド フ ァーム ウ ェア、 および U-Boot の実行時間によ って異な り ま

す。 また、 ブー ト デバイ スおよびセキ ュ ア ブー ト フ ロー (Xen ハイパーバイザーの起動および Dom0 の起動など) に

よ って も異な り ます。

ブー ト 時間が問題になる よ う なユース ケースでは、 次の事項を検討し ます。 これらはハイパーバイザー自体への変

更を必要 と し ません。

• Dom0 の設定 (サイ ズが小さいほど高速)

• ブー ト デバイ スの選択 (ハイパーバイザーを使用し ないシステムの場合)

• セキ ュ ア ブー ト のパラ メ ーター (ハイパーバイザーを使用し ないシステムの場合)

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 64UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 65: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 3 章: システム ソ フ ト ウ ェ アの検討事項

パススルー デバイスの I/O スループ ッ ト

Zynq UltraScale+ MPSoC には IOMMU (ARM SMMU-400) があ り ます。 Xen などのハイパーバイザーが IOMMU をサ

ポー ト し ている場合、 ゲス ト OS はネイ テ ィ ブな DMA 対応デバイ ス ド ラ イバーを使用でき、 エ ミ ュ レーシ ョ ンや仮

想化などのレ イヤーを介さずにデバイ スがデータ を直接ゲス ト へパス スルー転送でき ます。

このよ う な構成における I/O スループ ッ ト は、 デバイ ス ド ラ イバーを同じ OS にデプロ イ し た場合のパフ ォーマン ス

に依存し ますが、 SMMU の第 2 ステージ ア ド レ ス変換に伴 う わずかな遅延が伴います。

準仮想化し た共有デバイスの I/O スループ ッ ト

Xen ハイパーバイザーは準仮想化し たデバイ ス用のイ ンフ ラ ス ト ラ クチャ をサポー ト し、 次の 2 つの重要な機能を実

現し ます。

• Xen Dom0 が所有および制御するデバイ スは複数のゲス ト OS で効果的に共有でき ます。

• ゲス ト OS ど う しは、 各 OS からは UART またはネ ッ ト ワーク イ ン ターフ ェ イ ス と し て見え る仮想デバイ ス を

使用し て互いに通信し ます。

この種の構成における I/O スループ ッ ト は、 次の要因に左右されます。

• ネイ テ ィ ブ Linux デバイ ス ド ラ イバー (Dom0 が使用) のパフ ォーマン ス

• ほかのゲス ト OS が要求する I/O デバイ ス帯域幅

• Xen バス イ ンフ ラ ス ト ラ クチャの性能

• Xen Dom0 および Xen DomU のワーク ロード

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 65UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 66: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 3 章: システム ソ フ ト ウ ェ アの検討事項

PMU ソ フ ト ウ ェ ア

プラ ッ ト フ ォーム マネージ メ ン ト ユニ ッ ト (PMU) には、 ブー ト プロセスへの参加、 パワー マネージ メ ン ト API の

提供、 および各種システム エラーの処理など多 く の役割があ り ます。 こ のセ ク シ ョ ンでは、 PMU のソ フ ト ウ ェア開

発に関するい く つかの項目について説明し ます。 パワー マネージ メ ン ト の詳細は、 87 ページの 「プラ ッ ト フ ォーム

管理ユニ ッ ト 」 を参照し て く ださい。 次に、 PMU の機能ブロ ッ ク図を示し ます。

図 3‐17: PMU のブロ ッ ク図

X-Ref Target - Figure 3-17

メ モ リ

PMU は次の種類の メ モ リ を使用し ます。

• RAM にはデータ用の ECC (エラー訂正符号) メ モ リ があ り 、 オプシ ョ ンでユーザー /フ ァーム ウ ェ ア コード も格

納でき ます。

• PMU ROM にはデフ ォル ト の割 り 込みサービ ス ハン ド ラー (ISR) が格納されてお り 、 フ ッ ク モード での割 り 込

み処理に使用し ます。

• PMU メ モ リ (ROM および RAM) はパワーア ッ プ、 パワーダウ ン、 IPI、 リ セ ッ ト 要求などのパワー マネージ メ

ン ト 機能を処理し ます。

• PMU はザイ リ ン ク スが提供する フ レーム ワーク内にユーザー コード領域を持ち、 これが PMU RAM にロード さ

れます。

PMU の機能拡張に使用でき る メ モ リ 容量は非常に限られています。 Linux で周波数制御などのパワー マネージ メ ン

ト を実行する と、 PMU フ ァーム ウ ェ アのサイ ズに影響し ます。 し たがって、 必要な機能をすべて PMU の メ モ リ に

格納でき る よ う に、 パワー マネージ メ ン ト の必要性を十分に検討する必要があ り ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 66UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 67: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 3 章: システム ソ フ ト ウ ェ アの検討事項

パワー マネージ メ ン ト  フ レームワーク

パワー マネージ メ ン ト ソ フ ト ウ ェア フ レーム ワークは、 複数の消費電力削減モード (電源ド メ イ ン) をサポー ト し て

います。 これらのモード は各種ハード ウ ェ アを ターゲ ッ ト と し、 電源に関する カス タマー要件が厳しいアプ リ ケー

シ ョ ンに使用されます。 このフ レーム ワークはソース コード と し て提供されている ため、 カス タマイ ズが可能です。

次の図は、 代表的なフ レーム ワーク呼び出しがシステムをどのよ う に伝搬するかを示し た ものです。

図 3‐18: パワー マネージ メ ン ト  セル シーケンス

X-Ref Target - Figure 3-18

このフ レーム ワークは、 い く つかの API レ イヤーで構成されてお り 、 上の図では各レ イヤーを左から右に示し てい

ます。 このフ レーム ワーク が電源ア ク シ ョ ンをどのよ う にサポー ト するかを知る ために、 Cortex-A53 ユニ ッ ト など

のマス ター パワー ユニ ッ ト がプロセ ッ サ間割 り 込み (IPI) を使用し て PMU に割 り 込みを送信し、 電源ア イ ラ ン ド の

シャ ッ ト ダウ ンなどの電源ア ク シ ョ ンを実行する例について見てみます。 PMU フ ァーム ウ ェ アは IPI を受信し た後

API イベン ト を生成し、 それを受けて ROM へのハン ド ラー呼び出しが実行されます。 ROM にはデフ ォル ト の割 り

込みサービ ス ルーチン (ISR) が格納されてお り 、 電源ア ク シ ョ ンが実行されます。 電源ア イ ラ ン ド のシ ャ ッ ト ダウ

ンなどのア ク シ ョ ンが実行される と コード が戻 り 、 ACK 信号がフ レーム ワーク の 初の位置まで戻る と要求が完了

し ます。

PMU フ レーム ワーク のラ ン タ イ ム ソ フ ト ウ ェアはシステム パワーダウ ン モード の有効化をサポー ト し、 パワーダ

ウ ン モード を管理し て必要に応じ てシステムを ウ ェーク ア ッ プし ます。 また、 適切な電源ステー ト を維持し、 APU

と RPU を ス リ ープ ステー ト から ウ ェーク ア ッ プする必要があ る場合には APU と RPU の代理と し て動作し ます。

このフ レーム ワーク内では、 PMU がパワー マネージ メ ン ト サーバーです。 サーバーはすべてのマス ターに対し て

API を提供し、 外部パワー マネージ メ ン ト IC およびすべての電源ド メ イ ン ス イ ッチを制御し ます。 また、 サブシス

テムのサスペン ド処理を完了し、 サスペン ド し たサブシステムを必要に応じ てウ ェーク ア ッ プでき ます。

プロセ ッ シング ユニ ッ ト (APU と RPU) はパワー マネージ メ ン ト マス ターです。 マス ターはパワー マネージ メ ン ト

サーバーからデバイ ス電源の各種ス イ ッチングを要求でき ます。 また、 サブシステムのサスペン ド を開始および実

行し、 ウ ェーク ア ッ プ命令を受け取った らサブシステムのレジュームを実行し、 PMU からの要求に応答し ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 67UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 68: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 3 章: システム ソ フ ト ウ ェ アの検討事項

次の図は、 PMU フ レーム ワーク の内部および上位にあ る ソ フ ト ウ ェ ア レ イヤーを示し た ものです。 これらのレ イ

ヤーによ り 、 アプ リ ケーシ ョ ン と下位フ ァーム ウ ェ アはそれぞれ異なる レベルでパワー マネージ メ ン ト にア ク セス

でき ます。 プロセ ッ シング ユニ ッ ト の複雑な ソ フ ト ウ ェ ア ス タ ッ クはすべてのレ イヤーを使用し、 ベア メ タルなど

のシンプルなユニ ッ ト はシステム レベル API のみを使用し ます。

図 3‐19: パワー マネージ メ ン ト  フ レームワーク

X-Ref Target - Figure 3-19

フ レーム ワークおよびレ イヤーを通じ て行われる処理はすべてパワー マネージ メ ン ト API を利用し て簡単に実行で

き ます。 この API によ って、 次の機能が管理されます。

• プロセ ッ シング ユニ ッ ト をサスペン ドする ためのシステム レベル機能

• パワー マネージ メ ン ト ス レーブを管理するためのシステム レベル機能

• その他の各種システム レベル機能

• 直接制御システム機能 (読み出しおよび書き込み)

ソ フ ト ウ ェ ア開発ツール

Zynq UltraScale+ MPSoC デバイ スの利点を 大限に引き出し て個々のデザイ ンに役立てていただける よ う 、 ザイ リ ン

ク スは幅広い種類のソ フ ト ウ ェ ア開発ツールを提供し ています。 このセ ク シ ョ ンでは、 これら ツールの概要を説明

し、 Zynq UltraScale+ MPSoC デバイ スの豊富な ソ フ ト ウ ェア機能がこれら ツールによ ってどのよ う にサポー ト される

のかを示し ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 68UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 69: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 3 章: システム ソ フ ト ウ ェ アの検討事項

開発環境およびキ ッ ト

次の図に、 Zynq UltraScale+ MPSoC デバイ ス向け ソ リ ューシ ョ ンの開発に使用でき る主な開発環境を示し ます。

図 3‐20: Zynq UltraScale+ MPSoC デバイスに対応し たザイ リ ン クスの開発環境

X-Ref Target - Figure 3-20

Vivado Design Suite

この統合開発環境 (IDE) は業界で初めて SoC に対応し たハード ウ ェ ア ソ リ ューシ ョ ン設計のためのデザイ ン ス イー

ト です。 Vivado® には C ベースのアルゴ リ ズムをハード ウ ェ ア IP に変換する高位合成 (HLS) コ ンパイ ラ (Vivado

HLS) のほか、 ザイ リ ン ク スの充実し た IP ラ イブラ リ から IP を選んで統合でき るブロ ッ ク ベースの IP イ ンテグレー

シ ョ ン ツールが含まれます。システム検証向けに、Vivado には混在言語シ ミ ュ レーシ ョ ン ツールの Vivado ロ ジ ッ ク

シ ミ ュ レーターがあ り 、 この中にはターゲ ッ ト 環境でのシステム デバッ グをサポー ト し た ロ ジ ッ ク アナラ イザー

(Vivado ロ ジ ッ ク解析) が含まれます。 Vivado 全体で使用する ス ク リ プ ト 言語の Tcl (Tool Command Language) を用い

て Vivado の機能を拡張する こ と も でき ます。

PetaLinux

PetaLinux は、 完全なエンベデッ ド Linux システム開発キ ッ ト です。 こ のキ ッ ト には Linux OS およびザイ リ ン ク ス シ

リ コ ン用の完全なコ ンフ ィ ギュ レーシ ョ ン、 ビル ド、 デプロ イ環境、 Linux OS コ ンフ ィ ギュ レーシ ョ ン、 コマン ド

ラ イ ン ツール、 開発テンプレー ト (アプ リ ケーシ ョ ン、 デバイ ス ド ラ イバー、 およびラ イブラ リ )、 デバッ グ エー

ジェ ン ト 、 GCC ツール、 統合エ ミ ュ レータ QEMU (QuickEMUlator)、 およびザイ リ ン ク ス BSP パッ ケージが含まれ

ます。

PetaLinux は Linux カーネル、 U-Boot、 プロ ジェ ク ト 固有コ ンポーネン ト 、 およびプロ ジェ ク ト 固有ラ イブラ リ など

のコ ンポーネン ト を集約し ます。 コ ンポーネン ト は C コード であ る必要はな く 、 PetaLinux プロ ジェ ク ト で何らかの

目的を達成する一連の命令であればかまいません。 PetaLinux コ ンフ ィ ギュ レーシ ョ ン ユーテ ィ リ テ ィ を使用し て、

特定のコ ンポーネン ト を有効または無効にでき ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 69UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 70: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 3 章: システム ソ フ ト ウ ェ アの検討事項

PetaLinux ではすべてがコ ンポーネン ト をベースにし ている ため、 こ のキ ッ ト を使用し た設計ではモジュール構造を

活かすこ と ができ ます。 異なる コ ンポーネン ト のラ イブラ リ を使用し て既存デザイ ンに対し て イ タ レーシ ョ ンを実

行する こ と によ り 、 派生デザイ ンを容易に作成でき ます。

PetaLinux はバッ ク グ ラ ウ ン ド で make を使用し てプロ ジェ ク ト をビル ド し ます。

前述の とお り 、 Linux の経験がほ と んどな く 、 しかも ご く 基本的なス ケジューラ またはオペレーテ ィ ング システム

で APU の A53 を動作させたい場合は、 まず PetaLinux を使用する こ と を推奨し ます。

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

ザイ リ ン ク ス ソ フ ト ウ ェ ア開発キ ッ ト (SDK) は、 MicroBlaze ソ フ ト プロセ ッ サを含むザイ リ ン ク スの任意のプロ

セ ッ サ上で動作するエンベデッ ド アプ リ ケーシ ョ ンの作成に向けた統合設計環境 (IDE) です。 ザイ リ ン ク ス SDK は

ソ フ ト ウ ェアの開発 とデバッ グを完全にサポー ト し てお り 、 Vivado Design Suite に統合し て使用する こ と も、 ス タ ン

ド ア ロ ン イ ン ターフ ェ イ ス と し て使用する こ と もでき ます。 こ の SDK は、 定評あ る Eclipse IDE をベースにし てい

ます。

SDK を Vivado ハード ウ ェア デザイ ン環境に接続し、Vivado で設計し たハード ウ ェ アを SDK にエク スポー ト する と、

BSP パッ ケージやド ラ イバーなど、 そのデザイ ンに必要な ソ フ ト ウ ェ ア環境が自動的に作成されます。

SDK にはエデ ィ ター、 コ ンパイ ラ、 ビル ド ツール、 フ ラ ッ シュ メ モ リ 管理、 デバッ グ、 およびプロ フ ァ イ リ ング

ツールが付属し ます。 SDK は 1 本の JTAG ケーブルを使用し て JTAG デバッ グをサポー ト し ます。

SDSoC 開発環境

SDSoC™ 開発環境は、 Eclipse IDE をはじめヘテ ロ ジニアスな Zynq UltraScale+ MPSoC 向けの包括的な開発環境を備

えた、 使いやすいエンベデッ ド C/C++/OpenCL アプ リ ケーシ ョ ン開発環境を提供し ます。 フルシステムの 適化を

C/C++/OpenCL のみで実現する コ ンパイ ラ を備えた こ の開発環境は、 システム レベルのプロ フ ァ イ リ ング、 プロ グ

ラ マブル ロ ジ ッ ク (PL) を利用し た ソ フ ト ウ ェア ア ク セラ レーシ ョ ンの自動化、 システム コネ ク テ ィ ビテ ィ の自動

生成、 およびプロ グ ラ ミ ングを迅速に行 う ためのラ イブラ リ を提供し ます。 また、 エン ド ユーザーやサード パー

テ ィ プラ ッ ト フ ォームの開発者は、 システム レベルのソ リ ューシ ョ ンを迅速に定義、 統合および検証でき る こ と か

ら、 エン ド カス タマーに独自のプロ グ ラ ミ ング環境を提供でき ます。

この開発環境には次の機能があ り ます。

• 使いやすい Eclipse IDE を使用し て、 エンベデッ ド C/C++/OpenCL アプ リ ケーシ ョ ンで Zynq All Programmable

SoC および MPSoC システム開発が可能

• フ ァ ン ク シ ョ ンを PL で高速化

• ターゲ ッ ト オペレーテ ィ ング システム と し てベア メ タル、 Linux、 および FreeRTOS をサポー ト

• Vivado HLS の一部と し てザイ リ ン ク ス ラ イブラ リ を提供。 また、 ハード ウ ェ アに 適化し たオプシ ョ ンのラ イ

ブラ リ をア ラ イ アン ス メ ンバーから提供

SDSoC 開発システムの詳細は、 https://japan.xilinx.com/products/design-tools/software-zone/sdsoc.html を参照して く ださい。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 70UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 71: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 3 章: システム ソ フ ト ウ ェ アの検討事項

開発フ ロー

ソ フ ト ウ ェア ソ リ ューシ ョ ンの開発に利用する環境は 1 つと限 り ません。 事実、 1 つのイ メ ージを作成するのに複

数の環境を使用し ます。 た と えば Zynq UltraScale+ MPSoC の実行可能フ ラ ッ シュ イ メ ージは、 次に示す複数のツー

ルで作成でき ます。

• Vivado IP イ ンテグレーターおよびプロセ ッ サ コ ンフ ィ ギュ レーシ ョ ン ウ ィ ザード (PCW) を使用し て PS サブシ

ステムおよび .bit フ ァ イル コ ンポーネン ト を構成し ます。

• SDK を使用し て BSP、 PMU フ ァーム ウ ェ ア、 FSBL、 およびアプ リ ケーシ ョ ン イ メ ージを作成し ます。 こ の中

には結合イ メ ージを生成するための bootgen ユーテ ィ リ テ ィ も含まれます。

• PetaLinux を使用し て U-Boot、 ATF、 Linux、 デバイ ス ツ リ ー BLOB などのオープン ソース ソ フ ト ウ ェ ア イ メ ー

ジを作成し ます。

次に、 複数の開発環境およびツールを使用し たデザイ ン フ ローを 2 つ示し ます。 初の例では、 Vivado と SDK の両

方を使用し てベア メ タル イ メ ージを開発し ています。

図 3‐21: ベア メ タル イ メ ージの生成

X-Ref Target - Figure 3-21

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 71UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 72: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 3 章: システム ソ フ ト ウ ェ アの検討事項

次の例では、 3 つの開発環境すべてを使用し て Linux イ メ ージを生成し ています。

図 3‐22: Linux イ メ ージの生成

X-Ref Target - Figure 3-22

Yocto Project 開発

チームが既に Linux に習熟し てお り 、 Linux の実装を完全に制御し たい場合は PetaLinux よ り も Yocto の方が適し てい

ます。 Yocto Project ツールおよび開発環境で使用でき る Zynq UltraScale+ MPSoC デバイ スの Yocto レシピはザイ リ ン

ク スの git サーバーから入手でき ます。

Yocto には次の機能があ り ます。

• 新の Linux カーネルおよびエンベデッ ド環境に適し たシステム コマン ド のセ ッ ト と ラ イブラ リ を提供し ます。

• X11、 GTK+、 Qt、 Clutter、 SDL をはじめ とする各種システム コ ンポーネン ト を利用でき るため、 デ ィ スプレ イ

ハード ウ ェ アを備えたデバイ スで豊富なユーザー体験を実現でき ます。 デバイ スにデ ィ スプレ イがない場合や

別の UI フ レーム ワーク を使用する場合、 これらのコ ンポーネン ト はイ ン ス ト ール不要です。

• OpenEmbedded プロ ジェ ク ト と互換性のあ る安定し た コ アを、 目的に応じ て作成し ます。 このコ アを使用し て、

Linux ソ フ ト ウ ェ アを簡単かつ確実にビル ド し て開発でき ます。

• Quick Emulator (QEMU) によ り 、 幅広い種類のハード ウ ェアおよびデバイ スのエ ミ ュ レーシ ョ ンをサポー ト し ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 72UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 73: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 3 章: システム ソ フ ト ウ ェ アの検討事項

次の図に、 Yocto Project 開発環境を示し ます。

図 3‐23: Yocto Project 開発環境

X-Ref Target - Figure 3-23

User Configuration

Metadata(.bb+patches)

Machine(BSP)Configuration

Policy Configuration

SourceFetching

PatchApplication

Configuration / Compile /

Autoreconf as needed

OutputAnalysis for

package splitting plus

Packagerelationships

.rpmGeneration

.debGeneration

.ipkGeneration

QATests

imageGeneration

ImagesApplication

DevelopmentSDK

Package Feeds

Source Mirror(s)

Upstream Project

Releases

LocalProjects

SCMs(optional)

Upstram SourceMetadata/InputsBuild System

Output PackagesProcess steps (Tasks)Output Image Data

SDKGeneration

X14841-020717

2016 年 4 月現在、 前述の PetaLinux 開発環境は完全な Yocto バッ ク エン ド を備えています。

Zynq UltraScale+ MPSoC デバイ スで Yocto を使用する方法について、 詳細は 『Zynq UltraScale+ MPSoC ソ フ ト ウ ェア

開発者向けガイ ド』 (UG1137) [参照 5] を参照し て く ださい。

マルチ メ デ ィ ア開発ツール

マルチ メ デ ィ ア開発には次のものが利用でき ます。

• PetaLinux ツールチェーンを使用し てデ ィ スプレ イ、 オーデ ィ オ、 GPU、 およびビデオ コーデッ ク用のユーザー

モード ラ イブラ リ およびカーネル モード ド ラ イバーを コ ンパイルでき ます。

• GDB デバッ ガーまたは SDK のデバッ グ ツールを使用し てマルチ メ デ ィ ア アプ リ ケーシ ョ ンのアプ リ ケーシ ョ

ン コード をデバッ グでき ます。

• SDK にはマルチ メ デ ィ ア デザイ ンのプロ フ ァ イ リ ングを実行でき る システム パフ ォーマン ス解析 (SPA) があ り

ます。

• SDSoC 開発環境では C/C++ ロ ジ ッ ク から IP を生成し、 Vivado Design Suite を利用し て特定用途向け イ メ ージ処

理用 SoC の FPGA ビ ッ ト ス ト リ ームを生成でき ます。 実例については、 『SDSoC 環境チュー ト リ アル: 入門』

(UG1028) [参照 9] を参照し て く ださい。

• グ ラ フ ィ ッ ク ス アプ リ ケーシ ョ ン開発には ARM Mali 開発ツールを使用でき ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 73UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 74: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 3 章: システム ソ フ ト ウ ェ アの検討事項

デバッ グ

デバッ グはシステムの機能検証およびソ フ ト ウ ェ ア評価を行い、 設計プロセスの早期段階で見つけに く い重大なデ

ザイ ン エラーを検出でき ます。 また、 実チ ッ プでは再現しに く い条件をシ ミ ュ レーシ ョ ンでき、 ARM A53 および

R5 コ ア、 および PS ペ リ フ ェ ラルをエ ミ ュ レー ト でき ます。

このセ ク シ ョ ンで述べた よ う に、 IDE にはい く つかのデバッ グ ツールおよび手法があ り ます。 IDE に付属するデ

バッ ガ以外にも、 次のよ う なデバッ グ ツールがあ り ます。

• ザイ リ ン ク ス SDK は Xilinx System Debugger (XSDB) をサポー ト し ています。 XSDB はブレーク ポイ ン ト /ウ ォ ッ

チポイ ン ト の設定、 プロ グ ラ ムのステ ッ プ実行、 プロ グ ラ ム変数およびス タ ッ クの表示、 システム内の メ モ リ

内容の表示 と いった一般的なデバッ グ機能をすべてサポー ト し ています。 また、 マルチプロセ ッ サ システムの

異なるプロセ ッ サ上で動作し ているプロ グ ラ ムを同じデバッ グ環境から同時にデバッ グでき ます。 た と えば

APU のコ ア と複数の MicroBlaze ソ フ ト プロセ ッ サの両方を 1 本の JTAG ケーブルを使用し て同じデバッ グ セ ッ

シ ョ ンに表示でき ます。

Vivado ロ ジ ッ ク アナラ イザー同様、XSDB もザイ リ ン ク ス ハード ウ ェア サーバーをデバッ グ エンジン と し て使

用し ます。 これによ り 、 ヘテロ ジニアス デバッ グ (ソ フ ト ウ ェア と ハード ウ ェアの同時デバッ グ) と い う 重要な

利点を実現し ています。

XSDB を使用し てアプ リ ケーシ ョ ンをデバッ グするにはデバッ グ シンボルが必要なため、 デバッ グ用にコ ンパ

イルし た ELF (Executable Linkable Format) フ ァ イルを使用する必要があ り ます。 また、 実行フ ァ イル名や実行す

る ターゲ ッ ト プロセ ッサ、 その他の情報を含むデバッ グ セ ッ シ ョ ン も作成する必要があ り ます。 デバッ ガーを

起動後、 GUI でデバッ グ パースペク テ ィ ブを切 り 替え る こ と ができ ます。 これによ り 、 プロ グ ラ ムのデバッ グ

と実行を管理でき ます。

• PetaLinux はデバッ グ ツール と し て QEMU、 Oprofile、 および GDB (GNU デバッ ガー ) を使用し ます。

• Yocto Project のデバッ グ ツールには、 Perf、 Ftrace、 Oprofile、 Sysprof、 および Blktrace があ り ます。

• ARM 社の DS-5 Development Studio では DS-5 デバッ ガーを使用し ます。 こ のデバッ ガーはデバイ スのブ リ ング

ア ッ プから アプ リ ケーシ ョ ン デバッ グまでを支援し ます。 DS-5 デバッ ガーを使用する と、 RTL シ ミ ュ レータ、

仮想プラ ッ ト フ ォーム、 およびハード ウ ェ ア上でコード を開発でき ます。

• 一部の商用 Linux デ ィ ス ト リ ビ ューシ ョ ンはデバッ グ用ツールをサポー ト し ています。

• Zynq UltraScale+ MPSoC は BIST (Built-in Startup Test) もサポー ト し てお り 、 これには メ モ リ テス ト (MBIST) と ロ

ジ ッ ク テス ト (LBIST) が含まれます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 74UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 75: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 4 章

パワー マネージ メ ン ト に関する注意事項今日のテ ク ノ ロ ジ市場ではますます複雑な ソ リ ューシ ョ ン と コ ンピ ューテ ィ ング機能が求められています。 複雑性

と機能性が高 く なる と、 適に機能するために消費電力に対する要件も高ま り ます。 これによ って、 システム設計

者、 開発者、 エンジニアには消費電力を削減する任務が課せられます。 この章では、 Zynq® UltraScale+™ デバイ ス

のパワー マネージ メ ン ト 機能と その使用に関連する推奨事項について説明し ます。

電力要件を定義する

Zynq UltraScale+ デバイ スには、 特定のパワー マネージ メ ン ト の要件に合わせて調整でき る非常に豊富なパワー マ

ネージ メ ン ト 機能があ り ます。 そのため、 Zynq UltraScale+ デバイ スに適用されたデザイ ンが 高の結果 と なる よ う

に、 一歩下がった視点から システムの特定デザイ ン要件を批判的に分析する こ と が重要です。

Zynq UltraScale+ デバイ スに間してシステムのパワー マネージ メ ン ト の要件を定義するには、 次の質問に答えてみて く

ださい。

1. プロセ ッ シング機能は常に実行する必要があ り ますか。

2. Zynq UltraScale+ デバイ スのどの部分の電源を切断でき ますか。

3. デザイ ンには指定された再開時間要件があ り ますか。

4. システムの処理の一部をプロ グ ラ マブル ロ ジ ッ ク (PL) にオフ ロード でき ますか。

Zynq UltraScale+ MPSoC エンベデッ ド  デザイ ン設計手法ガイ ド 75UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 76: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 4 章:  パワー マネージ メ ン ト に関する注意事項

パワー マネージ メ ン ト の調整方法

Zynq UltraScale+ デバイ スでシステムのパワー マネージ メ ン ト を調整する方法は主に次の 5 つと な り ます。

1. 機能を無効化

2. 動的なパワー マネージ メ ン ト

3. 周波数制御

4. ク ロ ッ ク ゲーテ ィ ング

5. PL ア ク セラ レーシ ョ ンの使用

初の 4 つは、 エンベデッ ド システムのパワー マネージ メ ン ト において共通する方法であ り 、 Zynq UltraScale+ デバ

イ スはこれらの分野において独自の機能を提供し ます。 これらの方法に加えて、 Zynq UltraScale+ MPSoC デバイ スで

は、 C 言語を HDL に変換する ツールを使用し て、 ソ フ ト ウ ェア タ ス ク をプロ グ ラ マブル ロ ジ ッ ク に移行する こ と も

可能です。 コプロセ ッ サへソ フ ト ウ ェ ア タ ス ク をオフ ロードする こ と は、 よ り 高性能な処理が可能にな るだけでな

く ワ ッ ト あた り の性能も向上する こ と が実証されています。

Zynq UltraScale+ デバイ スの動作を効果的に制御するには、 まずパワー マネージ メ ン ト の基本を押さ えてお く 必要が

あ り ます。 77 ページの図 4-1 に示すよ う に、 Zynq UltraScale+ MPSoC デバイ スは、 効率的なパワー マネージ メ ン ト

を行 う ために 4 つの電源ド メ イ ンで構成されています。 各電源ド メ イ ンは、 外部電圧レギュ レータによ り 電力が供

給されます。 個々の電源ド メ イ ン制御が必要ない場合は、 ド メ イ ン間で電源レールを共有でき ます。

プロセ ッ シング システムには、 バッ テ リ 電源ド メ イ ン、 低電力ド メ イ ン、 フル電力ド メ イ ン と い う 、 主に 3 つの電

源ド メ イ ンがあ り ます。 低電力ド メ イ ン と フル電力ド メ イ ンには、 さ らに IP のパワー ゲーテ ィ ング オプシ ョ ンがあ

り ます。

4 つ目の電源ド メ イ ンは、 プロ グ ラ マブル ロ ジ ッ ク (PL) です。 信頼性の高いパワー マネージ メ ン ト 制御を可能にす

る三重冗長マイ ク ロ コ ン ト ローラーを含むプラ ッ ト フ ォーム管理ユニ ッ ト (PMU) によ ってパワー マネージ メ ン ト が

制御されます。

Zynq UltraScale+ MPSoC エンベデッ ド  デザイ ン設計手法ガイ ド 76UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 77: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 4 章:  パワー マネージ メ ン ト に関する注意事項

図 4‐1: Zynq UltraScale+ MPSoC の電源ド メ イ ン

X-Ref Target - Figure 4-1Zy

TextFull-Power Domain

Text

Text

Low-Power Domain

PL Domain

Application Processing Unit

Real-Time Processing Unit

Textn Programmable Logic

TextDDR Controller

Graphics Processing Unit

High-Speed Connectivity

TextSecurity &

Configuration Unit

Platform Management

Unit

System Monitor

General Connectivity

TextBattery Power Domain

TTe txtBBRAM RTCProcessing System

一般的にベク ター設計手法の消費電力に対する必要性が大きいほど、 Zynq UltraScale+ MPSoC デバイ スのパワー

マネージ メ ン ト 機能について よ り 多 く の時間を費やす必要があ る ため、 ユーザー デザイ ン要件 と 対比させて、 要

件に応じ て実装を細か く 調整する必要があ り ます。 デザイ ンのベク ターおよびそれら の使用方法の詳細は、

9 ページの 「ベク ター設計手法」 を参照し て く だ さ い。

機能を無効化

Zynq UltraScale+ デバイ スは豊富な機能を備えていますが、 デザイ ンにすべての機能が必要 と は限 り ません。 Zynq

UltraScale+ デバイ ス を電力要件に応じ て調整する際の 初のステ ッ プは、 Zynq UltraScale+ デバイ スの機能を理解し、

デザイ ンに不要な部分を判断する こ と です。 次に、 これ以降の説明および関連する Zynq UltraScale+ デバイ スの技術

資料を参照し て、 必要のないブロ ッ クへの電力供給を無効化または 小化する方法を習得する必要があ り ます。

た と えば、 R5 プロセ ッサが提供する リ アルタ イ ム処理機能が必要ない場合は、 これらのプロセ ッサを無効化する よ

う に Zynq UltraScale+ デバイ ス を設定でき ます。 A53 に対し て も同様です。 つま り 、 これらのプロセ ッ サを選択的に

無効化でき ます。 計算ブロ ッ ク のほかに、 USB 機能などのペ リ フ ェ ラル ブロ ッ ク を無効化する こ と も可能です。

一般的にベク ター設計手法の消費電力に対する必要性が大きいほど、 Zynq UltraScale+ デバイ スから可能な限 り 不

要な機能を除き、 パワー マネージ メ ン ト 機能を使用し て これらの機能を無効化する こ と に注力する必要があ り ます。

次のセ ク シ ョ ンでは、 電源ド メ イ ン と電源ア イ ラ ン ド について詳し く 説明し ます。

動的なパワー マネージ メ ン ト

無効化する不要な機能を特定し た後、 次に Zynq UltraScale+ デバイ スのどの部分の電源を定期的に切断すべきかを判

断し ます。 通常、 動的なパワー マネージ メ ン ト では、 Zynq UltraScale+ デバイ スのいかなる部分、 いかなる時点でも

完全に電源を切断する こ と は不可能です。 このよ う な場合は、 次に説明する周波数制御やク ロ ッ ク ゲーテ ィ ング方

Zynq UltraScale+ MPSoC エンベデッ ド  デザイ ン設計手法ガイ ド 77UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 78: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 4 章:  パワー マネージ メ ン ト に関する注意事項

法を使用でき ます。 しかし ながら、 一部のコ ンポーネン ト を定期的にシャ ッ ト ダウ ン し、 必要に応じ て起動する方

法が一般的です。

た と えば、 プロ グ ラ マブル ロ ジ ッ ク のみを常時ア ク テ ィ ブにする必要があ り 、 アプ リ ケーシ ョ ン プロセ ッ シング ユ

ニ ッ ト (APU) は定期的に必要と なるデザイ ンの場合、 Zynq UltraScale+ デバイ スの機能を慎重に考慮し、 PL を常にア

ク テ ィ ブにし て、 必要に応じ て APU を起動する方法を考えます。

ほかにも さ まざまな例があ り 、 PL を定期的にシャ ッ ト ダウ ンする場合や、 よ り 複雑な方法が必要な場合があ り ま

す。 た と えば、 PL を常にア ク テ ィ ブにし、 APU を一時的に起動させる必要があ る上に、 リ アルタ イ ム プロセ ッ シン

グ ユニ ッ ト (RPU) を一定時間ご と にア ク テ ィ ブにする必要があ る場合などがあ り ます。

この章では、 デザイ ンの各部の動的なパワー マネージ メ ン ト の要件に応じ て Zynq UltraScale+ デバイ スの機能をゲー

テ ィ ングする方法について説明し ます。

Zynq UltraScale+ デバイ スの各部の電源を定期的に切断でき る と 判断し た場合には、 こ れら が起動し て動作を再開

する までの時間も考慮する必要があ り ます。 た と えば、 A53 で Linux などの高性能 OS を再起動させる には、 PL

を再起動させる よ り も かな り の時間が必要にな る可能性があ り ます。 A53 で OS やアプ リ ケーシ ョ ンの再起動時間

が長すぎ る可能性があ る ため、 起動時の応答時間要件を満たすために ロ ジ ッ ク の一部を PL に移動する必要があ り

ます。

再起動時間を事前に判断する こ と は複雑な作業であ り 、 おおよその再起動時間を定量化する ためにデザイ ンの基本

機能の一部をプロ ト タ イプ化する こ と が必要です。 た と えば、 A53 で Linux を実行し ている場合、 Linux の再起動時

間は特定のソ フ ト ウ ェ ア コ ンフ ィ ギュ レーシ ョ ン と使用し ている ド ラ イバーに依存し ます。 し たがって、 Linux は

数百 ミ リ 秒以内に再起動でき ますが、 Zynq UltraScale+ デバイ ス ベースのデザイ ンでは、 その正確な再起動時間を予

測でき ません。

場合によ っては、 慎重な再起動時間の分析によ って、 デザイ ンで動的なパワー マネージ メ ン ト を使用できない と い

う 結論に至る可能性があ り ます。 そのよ う な場合は、 パワー マネージ メ ン ト を 適化する ための別のオプシ ョ ン と

し て周波数制御やク ロ ッ ク ゲーテ ィ ングを検討する こ と をお勧めし ます。

周波数制御

Zynq UltraScale+ デバイ スで永久的または定期的にオフにでき る部分を特定し た場合、 周波数制御を使用し てア ク

テ ィ ブ部分の消費電力を さ らに削減でき る可能性があ り ます。 デザイ ンの A53 を特定の期間中にア ク テ ィ ブにする

必要があ る場合でも、 フルの処理機能が不要な と きには速度を下げる こ と によ って A53 の消費電力を さ らに削減で

き る可能性があ り ます。

プロセ ッ シング システムは、 独自のパワー マネージ メ ン ト 機能を備えた 2 つの主要プロセ ッ シング システム (APU

と RPU) を使用し て電力/性能を制御し ます。 通常、 APU の周波数制御は Linux の CPU ガバナーで実行されます。

プロセ ッ シング コ ンポーネン ト の周波数を下げる と、 性能が低下する代わ り に電力効率が向上し ます。 こ のよ う な

ト レード オフを許容でき ない場合、 残されたオプシ ョ ンは機能を無効化 (77 ページの 「機能を無効化」 参照) する方

法 と ク ロ ッ ク ゲーテ ィ ングです。 詳細は次のセ ク シ ョ ンを参照し て く ださい。

周波数制御の詳細は、 『Zynq UltraScale+ MPSoC テ ク ニカル リ フ ァ レ ン ス マニュ アル』 (UG1085) [参照 7] の 「ク ロ ッ

キング」 セ ク シ ョ ンを参照し て く ださい。

ク ロ ッ ク  ゲーテ ィ ング

Zynq UltraScale+ デバイ スの別のパワー マネージ メ ン ト オプシ ョ ン と し て、 ク ロ ッ ク ゲーテ ィ ングがあ り ます。 こ

れによ り 、 特定コ ンポーネン ト へのク ロ ッ ク供給を無効にでき る ため、 ダ イナ ミ ッ ク消費電力を削減でき ます。 ス

タ テ ィ ッ ク消費電力は変化し ません。 つま り 、 電源は投入された状態で ク ロ ッ ク信号が受信されません。

Zynq UltraScale+ MPSoC エンベデッ ド  デザイ ン設計手法ガイ ド 78UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 79: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 4 章:  パワー マネージ メ ン ト に関する注意事項

ク ロ ッ ク ゲーテ ィ ングは Zynq UltraScale+ デバイ ス内の複数コ ンポーネン ト に適用でき ます。 プロセ ッ サ コ ア、 プ

ロセ ッ サ ペ リ フ ェ ラル、 PL ソ フ ト コ ア、 PL ハード コ アなどがその対象 と な り ます。

ク ロ ッ ク ゲーテ ィ ングの詳細は、 『Zynq UltraScale+ MPSoC テ ク ニカル リ フ ァ レ ン ス マニュ アル』 (UG1085) [参照 7]

の 「ク ロ ッ キング」 セ ク シ ョ ンを参照し て く ださい。

PL アクセラ レーシ ョ ンの使用

ASSP と は異な り 、 Zynq UltraScale+ MPSoC はソ フ ト ウ ェア タ ス ク をプロ グ ラ マブル ロ ジ ッ ク に移行でき る特別な機

能を備えているため、 ソ フ ト ウ ェ ア動作を大幅に加速でき る上にワ ッ ト あた り の性能を向上でき ます。 新世代の

プロ グ ラ マブル ロ ジ ッ クは、 次世代の低消費電力ハード IP と性能強化された ソ フ ト IP によ る独自の消費電力削減/

管理機能を提供し ます。

これらは、 エンベデッ ド システムの消費電力を調整する革新的な方法です。 実際には、 前述のその他の調整方法と

は異な り 、 Zynq UltraScale+ デバイ スの独自機能は、 システム全体のパフ ォーマン ス を向上させながら消費電力を削

減する唯一の方法です。 し たがって、 ザイ リ ン ク スでは、 システムの目標を確認し て、 PL に実装でき る機能を判断

する こ と を強 く お勧めし ます。

ハー ド ウ ェ アに関する注意事項

Zynq UltraScale+ デバイ スのパワー マネージ メ ン ト 機能の中には、 ボード のサポー ト が必要な ものがあ り ます。 た と

えば、 フル電力ド メ イ ンの電源を切断でき るかど う かは、 ボード レベルのサポー ト に依存し ます。 レギ ュ レータは

ソ フ ト ウ ェアで制御でき る よ う に、 GPIO や PMBUS などを介し て正し く 配線される必要があ り ます。 求められる柔

軟性レベルに応じ て、 電源レールの結合に制約が生じ ます。 し たがって、 必要 と なる動作時の PM (パワー マネージ

メ ン ト ) 機能を考慮に入れてボード設計を行 う 必要があ り ます。

ソ フ ト ウ ェ アに関する注意事項

ザイ リ ン ク スは、 消費電力削減モード をサポー ト する ソ フ ト ウ ェ アのパワー マネージ メ ン ト フ レーム ワーク を提供

し ています。 このフ レーム ワークは、 電力モード と サブモード をサポー ト する業界標準をベースに構築され、 プ

ラ ッ ト フ ォーム管理ユニ ッ ト (PMU) で制御されます。 こ のパワー マネージ メ ン ト フ レーム ワーク によ り 、 任意のシ

ステム ソ フ ト ウ ェ アで、 ベア メ タル操作、 従来型 Linux のパワー マネージ メ ン ト 、 独自のソ フ ト ウ ェア ス タ ッ ク な

どのパワー マネージ メ ン ト を制御でき ます。 Linux 経由でのこれらのモード の使用例を示し たサンプル コード を提

供し ています。

ま とめ

次の表は、 各調整方法が性能、 消費電力、 および PL フ ッ ト プ リ ン ト の 適化に有効または無効であ るかを示し てい

ます。

方法 性能 消費電力 PL フ ッ ト プ リ ン ト

つま り 、 通常、 電力調整では消費電力、 性能、 利用可能な機能 と い う 3 つの要素の間で ト レード オフが行われます。

機能を無効化 有効 有効 無効

動的なパワー マネージ メ ン ト 有効 有効 無効

周波数制御 有効 有効 無効

ク ロ ッ ク ゲーテ ィ ング 無効 有効 無効

PL ア ク セラ レーシ ョ ンの使用 有効 有効 有効

Zynq UltraScale+ MPSoC エンベデッ ド  デザイ ン設計手法ガイ ド 79UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 80: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 4 章:  パワー マネージ メ ン ト に関する注意事項

4 つの主要電源ド メ イ ン

Zynq UltraScale+ デバイ スの 4 つの主要電源ド メ イ ンは、 かな り 高度なレベルで早期に導入されま し た。 次の図で、

これらの ド メ イ ンを構成する コ ンポーネン ト の詳細を示し ています。 左下隅にはバッ テ リ 電源ド メ イ ンがあ り 、 左

上隅には リ アルタ イ ム プロセ ッ シング ユニ ッ ト (RPU) を含む低電力ド メ イ ンがあ り ます。 右上はアプ リ ケーシ ョ ン

プロセ ッ シング ユニ ッ ト (APU) を含むフル電力ド メ イ ンです。 そし て、 下部にプロ グ ラ マブル ロ ジ ッ ク (PL) の電源

ド メ イ ンがあ り ます。

図 4‐2: Zynq UltraScale+ デバイス: 4 つの主要電源ド メ イ ン

X-Ref Target - Figure 4-2

プロセ ッ シング システム (PS) の電源ド メ イ ン

プロセ ッ シング システム (PS) は、 バッ テ リ 電源モード、 低電力モード、 およびフル電力モード の 3 つの電力モード

で動作し ます。

バッ テ リ 電源モード は、 も低消費電力かつ も シンプルなモード であ り 、 リ アルタ イ ム ク ロ ッ ク と バッ テ リ バッ

ク ア ッ プ式 RAM を維持する ために使用されます。 消費電力は、 バッ テ リ バッ ク ア ッ プ式 RAM に電力を供給し てい

る と きの 180 ナ ノ ワ ッ ト から、 リ アルタ イ ム ク ロ ッ ク が有効の と きのわずか 3 マイ ク ロ ワ ッ ト までの範囲です。

低電力モード は、 リ アルタ イ ム プロセ ッ シング ユニ ッ ト (RPU) に関連付け られています。 消費電力は、 動作レベル

に応じ て約 20 mW から 220 mW の範囲です。

フル電力モード は、 有効に設定されたアプ リ ケーシ ョ ン プロセ ッ シング ユニ ッ ト に関連付け られています。 消費電

力は、 動作レベルに応じ て 大で数ワ ッ ト に及ぶ可能性があ り ます。 低電力モード から フル電力モード に切 り 替え

るには、 通常、 APU 上で実行されている OS (一般的に Linux) を起動または再開する必要があ り ます。

Zynq UltraScale+ MPSoC エンベデッ ド  デザイ ン設計手法ガイ ド 80UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 81: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 4 章:  パワー マネージ メ ン ト に関する注意事項

図 4‐3: プロセ ッ シング システム: 複数の電力モー ド

X-Ref Target - Figure 4-3

上の図では、 機能の無効化 と動的なパワー マネージ メ ン ト と い う 点で、 PS 電源ド メ イ ンにおけ る処理能力と消費電

力の ト レード オフを理解する こ と ができ ます。 積み重なった各モード は、 下のモード がア ク テ ィ ブになる こ と が前

提 と な り ます。 つま り 、 フル電力モード は、 低電力モード と バッ テ リ 電源モード の両方がア ク テ ィ ブであ る こ と が

前提です。

処理能力 と消費電力の ト レード オフを検討する際、 特定タ ス ク にフル電力モード を適用する と、 そのタ ス クの電力

バジェ ッ ト に合致し ない可能性があ り ます。 そのよ う な場合は、 関連する機能を PL に移行する こ と を推奨し ていま

す。 一方、 消費電力が許容電力バジェ ッ ト 内に収ま っている場合、 フル電力モード の消費電力を把握する こ と で、

システム全体の消費電力を評価でき ます。 また、 フル電力モード の消費電力が大きすぎて も、 このモード をア ク

テ ィ ブにする必要があ る場合は、 システムの消費電力を さ らに調整する ために周波数制御と ク ロ ッ ク ゲーテ ィ ング

の適用を推奨し ています。

再開時間の要件があ る場合は、 電力モード の切 り 替えに要する時間を考慮する必要があ り ます。 た と えば、 再開時

間が非常に重要で、 可能な限 り 短 く 抑え る必要があ り 、 重要な入力データ を処理する ためにバッ テ リ 電源モード か

ら フル電力モード に切 り 替え る必要があ る場合は、 切 り 替え時間が要件を満た し ているかを確認する必要があ り ま

す。 た と えば、 APU 上で Linux を実行し ている と し、 ユーザー空間プロセスが特定の入力を処理するために提案さ

れた方法であ る と し ます。 その場合、 外部イベン ト と前述のユーザー空間プロセスの再開と の間の時間差が要件に

合っているかど う かを確認する必要があ り ます。

バッ テ リ電源ド メ イ ン

バッ テ リ 駆動ド メ イ ンには、 暗号化キー と リ アルタ イ ム ク ロ ッ ク を格納する ためのバッ テ リ バッ ク ア ッ プ式 RAM

があ り ます。

Zynq UltraScale+ MPSoC エンベデッ ド  デザイ ン設計手法ガイ ド 81UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 82: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 4 章:  パワー マネージ メ ン ト に関する注意事項

図 4‐4: バッ テ リ電源ド メ イ ン

X-Ref Target - Figure 4-4

バ ッ テ リ バ ッ ク ア ッ プ式 RAM には、 オプシ ョ ンでデータ の復号に使用さ れる 256 ビ ッ ト のデバイ ス キーがあ り

ます。

リ アルタ イ ム ク ロ ッ クは 40 ビ ッ ト タ イマーと し て構成され、 残 り のシステムがス リ ープモード にあ る と きに使用

される カ ウ ン ト ダウ ン タ イマーです。 これは設定可能 ( 大 40 ビ ッ ト ) で、 周期的な割 り 込みを生成し てシステムの

残 り のク ロ ッ ク よ り も低い周波数でシステムの状態をチェ ッ ク し ます。 通常は、 32 キ ロヘルツの 「時計」 式の水晶

発振器が接続されています。

通常、 Zynq UltraScale+ デバイ スのバッ テ リ 電源ド メ イ ンは常にオン と な り ます。 そ う でない場合は、 次に電源ド メ

イ ンが有効になる (電源が投入された) と きに RTC を再プロ グ ラ ムする必要があ り ます。

Zynq UltraScale+ MPSoC エンベデッ ド  デザイ ン設計手法ガイ ド 82UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 83: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 4 章:  パワー マネージ メ ン ト に関する注意事項

低電力ド メ イ ン

低電力ド メ イ ン (LPD) は、 R5 プロセ ッ サを使用する リ アルタ イ ム プロセ ッ シング ユニ ッ ト 、 ス タ テ ィ ッ ク オン

チッ プ メ モ リ (OCM)、 プラ ッ ト フ ォーム管理ユニ ッ ト (PMU)、 コ ンフ ィ ギュ レーシ ョ ン/セキ ュ リ テ ィ ユニ ッ ト

(CSU)、 低速ペ リ フ ェ ラルで構成されています。

図 4‐5: 低電力ド メ イ ン

X-Ref Target - Figure 4-5

Zynq UltraScale+ MPSoC エンベデッ ド  デザイ ン設計手法ガイ ド 83UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 84: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 4 章:  パワー マネージ メ ン ト に関する注意事項

フル電力ド メ イ ン

フル電力ド メ イ ン (FPD) は、 A53 プロセッサを使用する APU、 GPU、 DDR (ダブル データ レー ト ) メ モ リ コ ン ト ロー

ラー、 および高性能ペ リ フ ェ ラル (PCI Express、 USB 3.0、 ディ スプレ イポー ト 、 SATA など) で構成されています。

図 4‐6: フル電力ド メ イ ン

X-Ref Target - Figure 4-6

フル電力ド メ イ ンは、 低電力ド メ イ ンが有効に設定されていなければ有効にでき ないこ と に注意し て く ださい。 こ

れは、 低電力ド メ イ ンにはフル電力ド メ イ ンで必要 と なるすべてのパワー マネージ メ ン ト プロセス を担 う PMU が

含まれているためです。

Zynq UltraScale+ MPSoC エンベデッ ド  デザイ ン設計手法ガイ ド 84UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 85: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 4 章:  パワー マネージ メ ン ト に関する注意事項

PL 電源ド メ イ ン

プロ グ ラ マブル ロ ジ ッ ク (PL) 電源ド メ イ ンは、 ロ ジ ッ ク セル、 ブロ ッ ク RAM、 デジ タル信号処理 (DSP) ブロ ッ ク、

AMS、 入力/出力、 および高速シ リ アル イ ン ターフ ェ イ スで構成されています。 プラ ッ ト フ ォームによ っては、 ビデ

オ コーデッ ク、 PCI Express Gen-4、 UltraRAM、 CMAC、 Interlaken などを含む場合があ り ます。

図 4‐7: PL 電源ド メ イ ン

X-Ref Target - Figure 4-7

Zynq UltraScale+ MPSoC エンベデッ ド  デザイ ン設計手法ガイ ド 85UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 86: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 4 章:  パワー マネージ メ ン ト に関する注意事項

電源アイ ラ ン ド とパワー ゲーテ ィ ング

低電力ド メ イ ン と フル電力ド メ イ ンの中には、 複数の電源ア イ ラ ン ド があ り ます。 これによ り 、 外部の電源レール

やレギュ レータ を必要 と し ないデバイ ス内で局所的なパワー ゲーテ ィ ングが可能にな り ます。

ゲーテ ィ ングを適用でき るデバイ スには次の特長を持つド メ イ ンがあ り ます。

• 低電力ド メ イ ン

° R5 はペアでゲー ト 制御可能です。

° TCM と OCM は 4 つのバン ク に分割され、 それぞれ個別にゲー ト 制御または リ テンシ ョ ン モード で保持で

き ます。

° USB は個別にゲー ト 制御でき ます。

• フル電力ド メ イ ン

° 各 A53 は個別にゲー ト 制御でき ます。

° L2 キ ャ ッ シュ

° GPU - ジオ メ ト リ プロセ ッ サ と L2 キ ャ ッ シュは同時に ク ロ ッ ク ゲー ト でき ますが、 各ピ ク セル プロセ ッ

サは個別にゲー ト 制御でき ます。

電源ア イ ラ ン ド は、 e-fuse によ って無効化されていない限 り 、 初は電源が投入された状態と な り ます。 ユーザー

コード によ って電源が投入された後、 PMU は適切なア イ ラ ン ド を即座にパワー ダウ ンでき ます。

機能の無効化 と動的なパワー マネージ メ ン ト の両方の面から、 有効な電源ア イ ラ ン ド を確認し、 デザイ ンに必要な

パワー マネージ メ ン ト 方法と それら を使用する タ イ ミ ングを検討する必要があ り ます。 た と えば、 システムにユー

ザー イ ン ターフ ェ イ ス も USB 接続も ない場合は、 起動時に USB と GPU の電源ア イ ラ ン ド に電源を投入し ないよ う

に PMU に命令を送る こ と をお勧めし ます。 また、 ク ロ ッ ク ゲーテ ィ ングを使用し て、 必要に応じ て一部のペ リ フ ェ

ラルの消費電力を削減する こ と もでき ます。

Zynq UltraScale+ MPSoC エンベデッ ド  デザイ ン設計手法ガイ ド 86UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 87: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 4 章:  パワー マネージ メ ン ト に関する注意事項

プ ラ ッ ト フ ォーム管理ユニ ッ ト

プラ ッ ト フ ォーム管理ユニ ッ ト (PMU) には、 主に 2 つの機能があ り ます。

• パワー マネージ メ ン ト

• 安全管理

このユニ ッ ト には、 電源投入、 電源切断、 および リ セ ッ ト 要求を処理する専用のブー ト ROM が含まれています。 ま

た、 システム プロセ ッサ間の通信用にプロセ ッサ間割 り 込み (IPI) をサポー ト し ています。

PMU プロセ ッ サは、 エラー訂正コード (ECC) 付きの 128 キ ロバイ ト の RAM に接続されてお り 、 この RAM にデータ

やフ ァーム ウ ェ ア、 ザイ リ ン ク スのフ レーム ワーク コード を格納し ます。 PMU は、 ザイ リ ン ク スのパワー マネージ

メ ン ト フ ァーム ウ ェ アで使用される グ ローバル レジス タ (Power、 Isolation、 Reset、 Logic Clear、 Error Capture、

System Power State レジス タ など) を提供し ます。

PMU には専用の割 り 込みコ ン ト ローラー と専用のローカル レジス タがあ り ます。 PMU は、 プロセ ッ シング システ

ムの I/O やプロ グ ラ マブル ロ ジ ッ ク (PL) と の間にイ ン ターフ ェ イ ス接続があ り ます。

図 4‐8: プ ラ ッ ト フ ォーム管理ユニ ッ ト のブロ ッ ク図

X-Ref Target - Figure 4-8

消費電力の要件が高 く なるほど、 PMU と その機能について深 く 理解する必要があ り ます。

電源投入時の機能

電源投入後、PMU は次の一連のイベン ト を実行し てから コ ンフ ィ ギュ レーシ ョ ン セ ッ ト ア ッ プ ユニ ッ ト (CSU) に制

御を渡し ます。

• CSU と残 り の LP ド メ イ ンの適切な動作を保証する ために、 システム モニ ター (SysMon) を使用し てパワー イ ン

テグ リ テ ィ をチェ ッ クする

• PLL を初期化する

Zynq UltraScale+ MPSoC エンベデッ ド  デザイ ン設計手法ガイ ド 87UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 88: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 4 章:  パワー マネージ メ ン ト に関する注意事項

• MBIST (Memory Built-In Self Test) を ト リ ガーし てシーケン ス を実行する

• JTAG を介し て読み出すこ と ができ るエラーをキ ャプチャ し て通知する

• 電源ア イ ラ ン ドおよび eFuse を介し て無効になっているその他の IP の電源を切断する

• CSU の リ セ ッ ト を解放する

ザイ リ ン クスの PMU フ ァームウ ェ ア

ザイ リ ン ク スが提供する PMU フ ァーム ウ ェアは、 ROM の既存機能を拡張し、 さ らに充実し た機能を提供し ます。

これは、 パワー マネージ メ ン ト および安全管理用に提供されている フ レーム ワーク であ り 、 ソース コード と し て利

用し て簡単にカ ス タマイ ズや拡張が可能にな り ます。

フ ァーム ウ ェアは、 IPI を使用し てその他のオンチッ プ マス ター デバイ ス と通信し、 エラー処理や RAM ス ク ラブな

どの安全機能を実行し ます。

PMU ブー ト ROM (PBR) には、 次の 2 つの割 り 込み処理モード があ り ます。

• フ ッ ク モード

• 完全置換モード

1 つ目のモード では、 PMU 割 り 込みが ROM 内に直接送信され、 その後 ROM 内の割 り 込みサービ ス ルーチン (ISR)

によ って処理されます。

2 つ目のモード (完全置換モード ) では、 ROM 内の割 り 込みハン ド ラーが RAM 内にあ る コード に置き換え られます。

PMU フ ァーム ウ ェ アは、 2 つ目のモード を使用し て実行されます。

Zynq UltraScale+ MPSoC エンベデッ ド  デザイ ン設計手法ガイ ド 88UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 89: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 4 章:  パワー マネージ メ ン ト に関する注意事項

パワー マネージ メ ン ト  ソ フ ト ウ ェ アのアーキテ クチャ

Zynq UltraScale+ MPSoC デバイ スのソ フ ト ウ ェア フ レーム ワークは、 複数のプロセ ッ シング ユニ ッ ト がパワー マ

ネージ メ ン ト において連携する こ と を可能にするため、 ヘテ ロ ジニアス マルチプロセ ッ シング システムを管理する

ためのパワー マネージ メ ン ト API を実装し ます。 次の図は、 API ベースのパワー マネージ メ ン ト ソ フ ト ウ ェアの

アーキテ クチャ を示し ています。

図 4‐9: パワー マネージ メ ン ト  ソ フ ト ウ ェ アのアーキテ クチャ

X-Ref Target - Figure 4-9

PMU のラ ン タ イ ム ソ フ ト ウ ェ ア機能には、 次のものがあ り ます。

• システムのパワーダウ ン モード を有効にする

• パワーダウ ン モード中のシステムを管理し、 各種 ト リ ガー メ カニズムに基づいてシステムを ウ ェーク ア ッ プさ

せる

• システムの電力ステー ト を常に維持管理する

• APU および RPU がス リ ープ ステー ト の場合にこれらの代理と し て動作し、 ウ ェーク ア ッ プ要求に従って これ

らに電源投入し て再起動させる

パワー マネージ メ ン ト 用のさ まざまな API の使用については、 『Embedded Energy Management Interface (EEMI) API

ユーザー ガイ ド』 (UG1200) [参照 6] を参照し て く ださい。

Zynq UltraScale+ MPSoC エンベデッ ド  デザイ ン設計手法ガイ ド 89UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 90: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 4 章:  パワー マネージ メ ン ト に関する注意事項

Xilinx Power Estimator

ザイ リ ン ク スは、 ターゲ ッ ト デバイ スの消費電力を迅速に見積も る ためのツールを提供し ています。 デバイ ス タ イ

プ、 パッ ケージ、 ス ピード グレード、 温度グレード を選択でき、 オプシ ョ ンで 「Typical」 または 「Maximum」 を選

択し て見積も り を実行でき ます。 また、 どのプロセ ッ サ コ アがア ク テ ィ ブであ るか、 その使用率レベル、 計画され

ている メ モ リ タ イプ と その使用率、 および使用されているペ リ フ ェ ラルを選択でき ます。 同様に、 プロ グ ラマブル

ロ ジ ッ ク に対し ては、 どの IP ブロ ッ ク が使用されているか、 またそれらの ク ロ ッ ク周波数や リ ソース使用率を選択

でき ます。

図 4‐10: Xilinx Power Estimator

X-Ref Target - Figure 4-10

詳細は、 『Xilinx Power Estimator ユーザー ガイ ド』 (UG440) [参照 1] を参照し て く ださい。

Zynq UltraScale+ MPSoC エンベデッ ド  デザイ ン設計手法ガイ ド 90UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 91: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 5 章

プログラマブル ロジ ッ クすべての Zynq® UltraScale+™ MPSoC デバイ スにはプロ グ ラ マブル ロ ジ ッ ク が統合されてお り 、 プロセ ッ シング シ

ステム (PS) と プロ グ ラ マブル ロ ジ ッ ク (PL) 間の通信を可能にする イ ン ターフ ェ イ ス も含まれています。 こ の章で

は、 PS と PL 間のイ ン ターフ ェ イ ス を含む設計に関する あ らゆる注意事項について説明し ます。 PL のさ まざまな機

能間相互のや り 取 り に影響を及ぼす設計上の注意事項については、 こ こ では割愛し ますが、 PL のさ まざまな機能に

ついては、 十分理解し てお く 必要があ り ます。 これらの詳細は、 『UltraFast 設計手法ガイ ド (Vivado Design Suite 用)』

(UG949) [参照 4] を参照し て く ださい。

PL の要件を定義する

PL の要件を認識する こ と は、 システム設計の基本です。 使用でき る PL のサイ ズや機能は、 選択するデバイ スに

よ って異な り ます。 し たがって、 まず、 システムの観点から要件を明確にし て、 適切な種類のデバイ ス を選択する

こ と が重要です。ザイ リ ン ク スの All Programmable ヘテ ロ ジニアス MPSoC のウ ェブサイ ト [参照 18] にあ る製品一覧

表に、 さ まざまなデバイ スおよび PL の機能が示されています。 あ らかじめ要件を定義する こ と で、 PS と PL 間の通

信の設定方法において も正しい判断を下すこ と ができ ます。

この章では、 FPGA のプロ グ ラ マブル ロ ジ ッ ク を使用する設計についての知識があ る こ と を前提 と し て説明し ます。

具体的には、 デザイ ンで必要 と なる カ ス タ ムおよび既製の IP に必要な ロ ジ ッ クの量を考慮に入れて、 適切なサイ ズ

のデバイ ス を選択する方法を熟知し ている必要があ り ます。

ト レーニング: ザイ リ ン ク スでは、 資料、 ト レーニング、 チュー ト リ アルなど さ まざまな リ ソース を提供し ていま

す。 ト レーニング情報は、 https://japan.xilinx.com/training.html を参照し て く ださい。

その他の詳細は、 ハード ウ ェア開発者ゾーン (https://japan.xilinx.com/products/design-tools/hardware-zone.html) を参照し

て く ださい。

Zynq UltraScale+ MPSoC エンベデッ ド  デザイ ン設計手法ガイ ド 91UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 92: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 5 章:  プログラマブル ロジ ッ ク

次の質問は、 PS-PL 間相互のや り 取 り に関する要件を定義する際に役立ちます。

• PS-PL 間でデータ を転送する必要があ り ますか。

• PS に接続された メ モ リ と の間でデータ を転送する際の性能要件 (スループ ッ ト 、 レ イ テンシ) はあ り ますか。

• PS-PL 間に割 り 込みを配線する必要があ り ますか。

• 起動時間や PL コ ンフ ィ ギ ュ レーシ ョ ンは重要ですか。

• PL 内にあ る IP は リ セ ッ ト 信号によ る通知が必要ですか。

• PL では、 PS から ク ロ ッ ク信号を受信する必要があ り ますか。

• PS へク ロ ッ ク を供給するために PL でク ロ ッ ク を生成する必要があ り ますか。

PL の設計手法

システム アーキテ クチャ全体における PL の役割を確認する ために、 次の図に PL と その機能、 および PL-PS 間の通

信イ ン ターフ ェ イ ス を示し ます。

図 5‐1: Zynq UltraScale+ MPSoC のプログラマブル ロジ ッ ク

X-Ref Target - Figure 5-1

前述し た とお り 、 こ こ で説明する PL の設計手法は、 PS-PL 間相互のや り 取 り に焦点を当てています。 図 5-2 にシン

プルかつ正確な図を示し ます。

Zynq UltraScale+ MPSoC エンベデッ ド  デザイ ン設計手法ガイ ド 92UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 93: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 5 章:  プログラマブル ロジ ッ ク

図 5‐2: Zynq UltraScale+ MPSoC の PS‐PL イ ン ターフ ェ イス

X-Ref Target - Figure 5-2

Processing System

ProgrammableLogic

AXI Interfaces

There are several AXI Interfaces, see Fig 5-3 for details

Interrupts

FPD

APU

LPD

RPU

16 Shared Peripheral Interrupts

64 Peripheral Interrupts

4 IPI + 4 FIQ + 4 IRQ

100 Peripherals Interrupts

4 IPI + 2 nFIQ + 2 nIRQ

Clocks

LPD 4 Clocks

EMIO96 EMIO bits (Use GPIO for Resets)LPD

DisplayPort Dedicated Stream

Dedicated Connections

PMU Several Signals

GigEth Dedicated Stream

DMA

FPD-DMA Flow Control

LPD-DMA Flow Control

(DMA transfers are done over AXI interfaces)

注記: この図は、 Zynq UltraScale+ デバイ スの内部ブロ ッ ク を正確に表現し た ものではな く 、 このセ ク シ ョ ンで説明

する概念を図にし た ものです。

図示されている よ う に、 デバイ スの PL 領域と の接続にはい く つかの種類があ り ます。 各接続には、 デザイ ンに影響

を与え る重要な特性があ り ます。 接続の種類は次の とお り です。

• AXI イ ン ターフ ェ イ ス

• 割 り 込み

• ク ロ ッ ク

• EMIO、 リ セ ッ ト (EMIO 経由の GPIO) を含む

• 専用ス ト リ ーム

• PMU

• DMA

次のセ ク シ ョ ンでは、 各接続の詳細を説明し ます。

Zynq UltraScale+ MPSoC エンベデッ ド  デザイ ン設計手法ガイ ド 93UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 94: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 5 章:  プログラマブル ロジ ッ ク

AXI イ ン ターフ ェ イス

第 2 章 「プロセ ッ シング システム」 で説明し た とお り 、 Zynq UltraScale+ MPSoC デバイ スのコ ンポーネン ト 間通信

の主な メ カニズムは ARM AXI イ ン ターコネ ク ト です。 また、 PS-PL 間には複数の AXI リ ン ク があ り ます。 PS-PL 間

で使用する AXI リ ン ク の選択は、 Zynq UltraScale+ MPSoC デバイ ス をベース とする アプ リ ケーシ ョ ンの設計におい

て も重要な項目の 1 つです。 使用でき る選択肢を認識でき る よ う に、 次の図では、 PS-PL 間で共有される AXI イ

ン ターフ ェ イ スの詳細を示し ています。

図 5‐3: PL‐PS 間における  AXI イ ン ターフ ェ イス通信の詳細

X-Ref Target - Figure 5-3

PS

S_AXI_ACP_FPDAPU

CCI

Mem

ory

Sub

syst

em

LP

PL

S_AXI_ACE_FPD

S_AXI_HPC0_FPDS_AXI_HPC1_FPD

S_AXI_HP0_FPDS_AXI_HP1_FPDS_AXI_HP2_FPDS_AXI_HP3_FPD

SM

MU

M_AXI_HPM0_FPDM_AXI_HPM1_FPD

S_AXI_LPD

M_AXI_HPM0_LPD

SMMU

X15278-100116

Zynq UltraScale+ MPSoC エンベデッ ド  デザイ ン設計手法ガイ ド 94UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 95: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 5 章:  プログラマブル ロジ ッ ク

高性能 AXI マス ター

高性能 AXI ポー ト は、 PL から DDR (ダブル データ レー ト ) へのア ク セスに利用でき ます。 PL から接続されるポー ト

は 6 つ (S_AXI_HPCn_FPD が 2 つ、 S_AXI_HPn_FPD が 4 つ) あ り 、 これらは 128、 64、 または 32 ビ ッ ト に設定可能

です。 これらのポー ト の う ちの 2 つは、 次に説明する キ ャ ッ シュ コ ヒ ーレ ン ト イ ン ターコネ ク ト (CCI) に接続され、

4 つは メ モ リ ア ク セスのために DDR イ ン ターフ ェ イ スに直接接続されます。

イ ンバウン ド  AXI スレーブ 

1 本の 大 128 ビ ッ ト 幅の低レ イ テンシ ス レーブ イ ン タ フ ェ イ ス (M_AXI_HPM0_LPD) は、 LPD からの PS-PL 間通

信を可能にし ます。 2 本のイ ンバウ ン ド ス レーブ イ ン ターフ ェ イ ス (M_AXI_HPM0_FPD、 M_AXI_HPM1_FPD) は、

FPD から PL への通信を可能にし ます。

アクセラ レータ  コ ヒーレンシ ポー ト  (ACP)

128 ビ ッ ト 幅の AXI ス レーブ イ ン ターフ ェ イ ス (S_AXI_ACP_FPD) は、 APU L2 キ ャ ッ シュ コ ン ト ローラー と PL 内

の可能なア ク セラ レータ機能 と の間の接続を可能にし ます。 このス レーブ イ ン ターフ ェ イ スは、 ス ヌーピング プロ

セスによ ってコ ヒ ーレ ン ト な CPU L2 キ ャ ッ シュ を共有し ます。 つま り 、 PL は CPU キ ャ ッ シ ュ を常に 新の状態に

保ちます。 デフ ォル ト で PL から CPU のコ ヒ ーレ ンシが維持されない場合、 このイ ン ターフ ェ イ スは、 CPU キ ャ ッ

シュへ既にロード されているデータに依存する PL のア ク セ ラ レーシ ョ ン機能に 適です。

AXI コ ヒーレンシ拡張

AXI コ ヒ ーレンシ拡張 (ACE) は、128 ビ ッ ト の AXI4 ス レーブ イ ン ターフ ェ イ ス (S_AXI_ACE_FPD) であ り 、APU と

PL 内の潜在的なア ク セラ レータ機能と の接続を可能にし ます。 ACP と は異な り 、 このス レーブは CCI へのコ ヒ ーレ

ン ト なア ク セス を可能にし ます。 ACE は CCI および PL へのア ク セス を ス ヌープする ため、 ハード ウ ェ アに 2 とお り

のコ ヒ ーレ ンシを提供し ます。 PL には、 PS に対し てそのよ う なマス ター イ ン ターフ ェ イ スが 1 つあ り ます。

PL/PS 通信の詳細は、 『Zynq UltraScale+ MPSoC テ ク ニカル リ フ ァ レン ス マニュ アル』 (UG1085) [参照 7] の 「PS - PL

イ ン ターフ ェ イ ス」 セ ク シ ョ ンを参照し て く ださい。

ソ フ ト ウ ェア と ハード ウ ェ アのコ ヒ ーレ ンシの詳細は、 『Zynq UltraScale+ MPSoC ソ フ ト ウ ェ ア開発者向けガイ ド』

(UG1137) [参照 5] の 「システム コ ヒ ーレンシ」 セ ク シ ョ ンを参照し て く ださい。

適切な AXI イ ン ターフ ェ イスを選択する

設計者は、 イ ン ターフ ェ イ スの利用/割 り 当てを判断する際に、 い く つかの ト レード オフを考慮する必要があ り ます。

選択肢によ って異なる結果が生じ ます。 まずは、 ピンの方向 (双方向のピン、 あ るいは PL から または PL への単方向

のピン) です。 イ ン ターフ ェ イ スの中には、 コ ヒ ーレ ンシを提供する もの、 安全性のために保護機能 (低電力ド メ イ

ン (LPD) に属する ) を提供する もの、 そし て性能の優位性 (レ イ テンシ、 スループ ッ ト ) を提供する ものがあ り ます。

次の表に、 ピンの方向および必要な機能に基づいた有効な AXI イ ン ターフ ェ イ ス を示し ます。

Zynq UltraScale+ MPSoC エンベデッ ド  デザイ ン設計手法ガイ ド 95UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 96: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 5 章:  プログラマブル ロジ ッ ク

双方向 PL から PL へ 

コ ヒ ーレ ン ト

LPD に属す

性能

汎用、 非コ ヒ ーレ ン ト

た と えば、 FPD がダウ ン し て も継続する PL からのア ウ ト バウ ン ド リ ン ク が必要な場合は、 S_AXI_LPD が 適と な

り ます。 一方、 PS-PL 間に完全コ ヒ ーレン ト な双方向 リ ン ク が必要な場合は、 S_AXI_ACE_FPD を選択する方が好

ま しいでし ょ う 。

その選択に基づいて残 り のアーキテ クチャが展開されるため、 特定 リ ン ク を使用し た場合の長所と短所を考察する

のに十分な時間を費やす必要があ り ます。 つま り 、 後から変更を加え る と、 非常に高いコ ス ト が発生する可能性が

あ り ます。

割り込み

PL からの割 り 込み送信/受信は、 デザイ ンの重要な部分です。 『Zynq UltraScale+ MPSoC テ ク ニカル リ フ ァ レ ン ス マ

ニュアル』 (UG1085) [参照 7] の表 35-6 では、 PL から送受信される割 り 込みの完全 リ ス ト を示し、 前述の設計手法の

図では、 次のよ う な有効な割 り 込みの概要を示し ています。

• PL で受信される割 り 込み信号

° 100 の LPD ペ リ フ ェ ラル割 り 込み

° 64 の FPD ペ リ フ ェ ラル割 り 込み

• PL から送信される割 り 込み信号:

° PS への 16 の共有ペ リ フ ェ ラル割 り 込み

° 4 つのプロセ ッサ間割 り 込み、 APU への 4 つの FIQ および 4 つの IRQ

° 4 つのプロセ ッサ間割 り 込み、 RPU への 2 つの nFIQ および 2 つの nIRQ

ユーザーは任意の受信し た割 り 込みを使用し て、 PL IP の動作を ト リ ガーでき、 任意の送信された割 り 込みをアサー

ト し て、 PS の割 り 込みを ト リ ガーでき ます。 マルチ メ デ ィ アの選択は、 アプ リ ケーシ ョ ンによ って異な り ます。

S_AXI_ACE_FPD S_AXI_HPC0_FPD、

S_AXI_HPC1_FPD

N/A

N/A S_AXI_LPD M_AXI_HPM0_LPD

N/A S_AXI_ACP_FPD N/A

N/A S_AXI_HP0_FPD、

S_AXI_HP1_FPD、

S_AXI_HP3_FPD、

S_AXI_HP4_FPD、

M_AXI_HPM0_FPD、

M_AXI_HPM1_FPD

Zynq UltraScale+ MPSoC エンベデッ ド  デザイ ン設計手法ガイ ド 96UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 97: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 5 章:  プログラマブル ロジ ッ ク

ク ロ ッ ク

PS から ク ロ ッ ク信号を受信する必要があ る場合は、 PL の境界から送信される 4 つの ク ロ ッ クのいずれかを使用でき

ます。 これらのク ロ ッ クは独立し て動作し、 これらの信号間のタ イ ミ ング関係は保証されません。 そのため、 PL IP

は、 PS から受信する ク ロ ッ ク間の暗黙の同期に依存すべきではあ り ません。

EMIO

第 10 章 「ペ リ フ ェ ラル」 で説明し た とお り 、 EMIO は、 LPD ペ リ フ ェ ラル出力ピンを PL にマ ッ プする手段と し て

使用されます。 また、 LPD を PL へ双方向 リ ン ク で接続する簡単な方法と し て も使用でき ます。 た と えば、 LPD

GPIO 出力を PL 機能にマ ッ プする こ と によ って、 PL で使用するための リ セ ッ ト 信号を PS から生成でき ます。 PS-PL

間に専用の リ セ ッ ト 信号はあ り ません。

専用ス ト リーム

LPD のギガビ ッ ト イーサネ ッ ト コ ン ト ローラーや FPD の DisplayPort などの一部の機能には、 PL と の間で接続され

た専用ス ト リ ームがあ り ます。 ギガビ ッ ト イーサネ ッ ト コ ン ト ローラーについては、 第 10 章 「ペ リ フ ェ ラル」 で

説明し ます。 DisplayPort については、 第 9 章 「マルチ メ デ ィ ア」 で説明し ます。 これらのペ リ フ ェ ラルが PL と通信

する方法の詳細は、 『Zynq UltraScale+ MPSoC テ ク ニカル リ フ ァ レ ン ス マニュ アル』 (UG1085) [参照 7] を参照し て く

ださい。

PMU

PMU と PL は次の信号を共有し ます。

• 32 ビ ッ ト の汎用入力 (GPI) および汎用出力 (GPO)

• LPD と FPD 両方の AIB 要求信号と ACK 信号

• PMU への入力 と し て提供される PL からの 4 つのエラー出力

• PL へエラーを示す PS からの 47 の出力

これらの信号は、 ミ ッ シ ョ ン ク リ テ ィ カルなアプ リ ケーシ ョ ンで、 ユーザーの PL IP が PMU と密接に連携する必要

があ る場合に役立ちます。

DMA

FPD-DMA と LPD-DMA は両方と も、 PL 内にフ ロー制御信号を提供でき ます。 SMA コ ン ト ローラーの詳細は、

第 6 章 「 メ モ リ 」 を参照し て く ださい。

ロジ ッ ク  

このセ ク シ ョ ンでは、 ルッ ク ア ッ プ テーブル (LUT) と フ リ ッ プフ ロ ッ プで構成された PL の機能について説明し ま

す。 ユーザーは独自の RTL を実装し、 ザイ リ ン ク ス ツールを使用し てそれら をプロ グ ラ ムでき ます。 それら を PS

に接続するには、 データ転送用に PS と通信する必要があ るすべてのロ ジ ッ ク に AXI イ ン ターフ ェ イ ス を実装する必

要があ り ます。 PS と通信する必要があ る イ ン ターフ ェ イ スが複数あ る場合、 複数のマス ターが複数のス レーブ と通

信でき る よ う に AXI Interconnect IP を イ ン ス タ ンシエー ト する必要があ り ます。 AXI Interconnect IP を使用する と、 接

Zynq UltraScale+ MPSoC エンベデッ ド  デザイ ン設計手法ガイ ド 97UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 98: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 5 章:  プログラマブル ロジ ッ ク

続に使用される ロ ジ ッ ク量が増加し ます。 あ らかじめ計画する こ と で、 ロ ジ ッ ク リ ソースの 適な使用が可能にな

り ます。

このセ ク シ ョ ンでは、 ユーザーが PL のロ ジ ッ ク リ ソース を使用し て設計でき る よ う に、 有効なツール、 設計手法、

およびラ イブラ リ について簡単に説明し ます。

注記: デバイ スのあ らゆる設計段階をサポー ト するザイ リ ン ク ス ツールの一般的情報は、 開発者ゾーンを参照し て く

ださい。

Vivado Design Suite

Vivado® Design Suite 統合開発環境 (IDE) は、 ハード ウ ェ ア ソ リ ューシ ョ ンの設計に 適な業界初の SOC に対応でき

る設計環境です。 次の機能が含まれます。

• Vivado HLS: C ベースのアルゴ リ ズムをハード ウ ェア IP に変換する高位合成コ ンパイ ラ。

• Vivado IP イ ンテグレーター : 豊富なザイ リ ン ク ス IP ラ イブラ リ から IP を統合するブロ ッ クベースの IP 統合

ツール。

• Vivado ロ ジ ッ ク アナラ イザー : ターゲ ッ ト 環境でシステム デバッ グを行 う ためのロ ジ ッ ク解析機能 (Vivado ロ

ジ ッ ク アナラ イザー ) を含む混合言語シ ミ ュ レーシ ョ ン ツール。

• TCL: Vivado 全体で使用される基本的なス ク リ プ ト 言語であ る ツール コマン ド言語。

• ザイ リ ン ク ス ソ フ ト ウ ェ ア開発キ ッ ト (SDK): MicroBlaze™ ソ フ ト コ ア マイ ク ロプロセ ッ サなどのザイ リ ン ク ス

マイ ク ロプロセ ッ サをベースにエンベデッ ド アプ リ ケーシ ョ ンを構築する場合に使用でき る も う 1 つの統合設

計環境 (IDE)。 ザイ リ ン ク ス SDK を使用し て、 FPGA で実行する アプ リ ケーシ ョ ンを作成でき ます。 ザイ リ ン ク

ス SDK は、 Vivado Design Suite のイ ン ス ト ール時にオプシ ョ ンでイ ン ス ト ールでき ます。 ザイ リ ン ク ス SDK の

詳細は、 ザイ リ ン ク ス ソ フ ト ウ ェ ア開発キ ッ ト のウ ェブ ページ [参照 14] を参照し て く ださい。

Vivado は完全な IDE であ るため、 PL の構成に使用される暗号化ビ ッ ト ス ト リ ームの作成など、 FPGA に必要なすべ

てのロ ジ ッ ク開発を 初から 後までサポー ト し ます。 また、 高度な設計、 検証、 および実装を短時間で実行でき

ます。 Vivado は複数のエデ ィ シ ョ ン (HL System、 HL Design、 HL WebPack™) で展開されています。 詳細は、 Vivado

Design Suite のウ ェブサイ ト [参照 15] を参照し て く ださい。

アイ ソ レーシ ョ ン  デザイ ン  フ ロー

ザイ リ ン ク ス ア イ ソ レーシ ョ ン デザイ ン フ ロー (IDF) は、 1 つの FPGA 上で独立し た機能をパーテ ィ シ ョ ン方式で

動作させるために開発されま し た。 た と えば、 機密データ (赤) と非機密データ (黒) あ るいは関数が相互に侵害され

ないよ う にする必要があ る赤/黒の概念を使用する ソ リ ューシ ョ ンでは、 関数とデータ を物理的に分離する こ と (取

り 消し不可) が不可欠です。

IDF は、 既存のイ ンプ リ メ ンテーシ ョ ン ツール フ ローに基づいた設計手法です。 デザイ ンのさ ら なる フ ロ アプラ ン

は、 既存の制約ツール (PlanAhead/Vivado GUI) を使用し て行います。 デザイ ン (ピン配置および配線済みデザイ ン) の

検証は、 ス タ ン ド ア ロ ン ツール (ISE® Design Suite または Vivado の IVT または VIV のいずれか) で行います。

IDF を使用する と、 プロ グ ラ マブル ロ ジ ッ ク (PL) に実装されているすべての IP が、 リ ソースの分離要件と セキ ュ リ

テ ィ 要件が満た される よ う に分離されます。 ザイ リ ン ク スは、 IDF を紹介するための リ フ ァ レ ン ス デザイ ンをい く

つか提供し ています。 詳細は、 ア イ ソ レーシ ョ ン デザイ ン フ ローのウ ェブサイ ト [参照 16] を参照し て く ださい。

ザイ リ ン ク スのパーテ ィ シ ョ ン技術を使用する こ と で、 1 つの FPGA に分離された機能が複数含まれた安全で信頼性

の高いシングルチッ プ ソ リ ューシ ョ ンを開発でき ます。 認証機関が求める要件を満たすために必要な分離を実現す

るには、 SCC_ISOLATED など特別な属性 と それが可能にする機能によ る制御が必要です。 IDF の詳細を理解するに

は、 通常のパーテ ィ シ ョ ン デザイ ン フ ローを十分理解し てお く 必要があ り ます。 IDF では、 パーテ ィ シ ョ ン フ ロー

Zynq UltraScale+ MPSoC エンベデッ ド  デザイ ン設計手法ガイ ド 98UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 99: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 5 章:  プログラマブル ロジ ッ ク

の用語およびプロセスが多 く 使用されます。 通常のパーテ ィ シ ョ ン デザイ ン フ ロー と比較し た場合の IDF 機能の優

れている点については、 ザイ リ ン ク スのアプ リ ケーシ ョ ン ノ ー ト を参照し て く ださい。

注記: ザイ リ ン ク ス 7 シ リ ーズ FPGA または Zynq-7000 AP SoC (Vivado Tools) 用アプ リ ケーシ ョ ン ノ ー ト のア イ ソ

レーシ ョ ン デザイ ン フ ローで Vivado Design Suite を使用し た IDF を紹介し ています。 これらのアプ リ ケーシ ョ ン

ノー ト では、 Zynq 7000 AP SoC を対象 と し ていますが、 Zynq UltraScale+ MPSoC デバイ スにも適用でき ます。

IDF フ ローのコ ンセプ ト は、 FPGA 内に独立し た領域を作成する こ と です。 次の図に例を示し ます。

図 5‐4: アイ ソ レーシ ョ ン  デザイ ン

X-Ref Target - Figure 5-4

COMPAREAES

AES_R

INOUT

led

push_button

reset

data_pins

clkkey_pins

key_addr

key_sel

mode

INOUT

X1086_01_113012

AES_R

この FPGA デザイ ンの例には、 I/O バン ド、 比較ロ ジ ッ ク ブロ ッ ク、 AES (Advanced Encryption Standard)、 および冗

長 AES (AES_R) があ り ます。 それぞれのエ リ アは、 論理的に分離されてお り 、 相互に隔て られています。 制御され

た信頼でき る通信のみが各ロ ジ ッ ク ブロ ッ ク間で可能です。

FPGA の設計手法と コーデ ィ ング ス タ イルを使用し て、 従来の FPGA 開発フ ローをわずかに変更するだけで安全性

と信頼性に優れた ソ リ ューシ ョ ンを実現でき ます。 IDF 開発では、 ロ ジ ッ ク、 配線、 および I/O バッ フ ァー (IOB) で

適切な分離が行われる よ う に、 設計プロセスのかな り 早い段階でフ ロ アプラ ンを検討する必要があ り ます。 さ らに、

開発フ ローはパーテ ィ シ ョ ンをベース と し て進められます。 つま り 、 ユーザーが分離し たい と思 う 各機能はそれぞ

れの階層レベルに配置されている必要があ り ます。

この段階で、 設計者は次の 2 つの方法のいずれかを使用でき ます。

• 不必要に繰 り 返される 適化を回避し たい場合、 分離された各機能をほかのパーテ ィ シ ョ ンから独立させて個

別に合成し て実装し ます。 そし て、 各パーテ ィ シ ョ ンの実装後、 デザイ ンを 1 つのフ ラ ッ ト な FPGA デザイ ン

にマージ し てデバイ ス を コ ンフ ィ ギュ レーシ ョ ン し ます。

• そのよ う な 適化を回避する別の方法 と し ては、 分離が必要な各パーテ ィ シ ョ ンに IDE 制約を適用でき る よ う 、

少な く と も 1 つのレベルの階層を保持し ながらデザイ ン全体を合成する こ と ができ ます。

このフ ローは、 FPGA 設計者がこれまで行ってき た開発フ ローから外れる こ と にな り ますが、 パーテ ィ シ ョ ンを使用

する方法には明らかな利点があ り ます。 設計サイ クルの後半になって分離されたパーテ ィ シ ョ ンに変更が必要な場

合、 その特定機能のみを変更し、 その他のパーテ ィ シ ョ ンをそのま ま保持でき ます。

Zynq UltraScale+ MPSoC エンベデッ ド  デザイ ン設計手法ガイ ド 99UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 100: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 5 章:  プログラマブル ロジ ッ ク

注記: グ ローバル ク ロ ッ ク、 リ セ ッ ト 、 および IOB を除 く すべてのロ ジ ッ クは 1 つの分離されたパーテ ィ シ ョ ンに属

する必要があ り ます。

図 5-5 は、 通常の FPGA デザイ ンフ ローと追加の IDE フ ロー (右側) を示し ています。 階層パーテ ィ シ ョ ン と ロ ジ ッ

ク パーテ ィ シ ョ ンの両方を考慮する必要があ り ます。 これらの両方を考慮する こ と で、 機能が分離されて相互に干

渉し ないこ と が保証されます。 IDF 検証ツール (VIV) を使用する こ と で、 フ ロ アプラ ンの制約やデザイ ンの検証をサ

ポー ト でき ます。

図 5‐5: アイ ソ レーシ ョ ン  デザイ ン  フ ロー

X-Ref Target - Figure 5-5

Zynq UltraScale+ MPSoC エンベデッ ド  デザイ ン設計手法ガイ ド 100UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 101: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 5 章:  プログラマブル ロジ ッ ク

ザイ リ ン クスの IP

ザイ リ ン ク スおよびそのパー ト ナー企業は、 厳しい検証に合格し た豊富な IP (Intellectual Property) ラ イブラ リ を提供

し てお り 、 FPGA の開発にこれら を使用でき ます。 ラ イブラ リ は、 次のよ う な IP をカバーする カテゴ リ に分類され

ています。

• イ ン ターフ ェ イ スおよびイ ン ターコネ ク ト

• 通信

• IP ユーテ ィ リ テ ィ

• DSP および計算

• メ モ リ およびコ ン ト ローラー

• デバイ ス フ ァ ミ リ

• エンベデッ ド

• オーデ ィ オおよびビデオ画像処理

• 特定市場向け IP

https://japan.xilinx.com/products/intellectual-property.html で IP ラ イブラ リ を検索でき ます。

98 ページの 「Vivado Design Suite」 で説明し た と お り 、 Vivado IP イ ンテグ レーターは、 AXI ベースの共通ユーザー

イ ン ターフ ェ イ スによ って IP の接続をすばや く 実行でき ます。 こ のツールを利用する こ と で、 設計期間を数か月

単位で短縮でき ます。 IP ラ イ ブ ラ リ には、 複数の IP を 1 つの ソ リ ューシ ョ ンに統合し た IP サブシ ス テムがあ り ま

す。

統合 IP のサポー ト

PL には、 PCI Express、 100G イーサネ ッ ト 、 システム モニター、 および Video コーデッ ク ユニ ッ ト 用の統合ブロ ッ

ク が含まれています。 これらの使用については、 ユーザー アプ リ ケーシ ョ ンのユース ケースによ って さ まざまで

す。 次のサブセ ク シ ョ ンでは、 これらの PL ペ リ フ ェ ラルについて簡単に説明し ます。

これらのデバイ スのペ リ フ ェ ラル サポー ト の詳細は、 『Zynq UltraScale+ MPSoC テ ク ニカル リ フ ァ レ ン ス マニュ ア

ル』 (UG1085) [参照 7] の 「PS - PL イ ン ターフ ェ イ ス」 セ ク シ ョ ンを参照し て く ださい。

PCI Express

FPGA に 小限の FPGA ロ ジ ッ ク使用率で ト ラ ンザク シ ョ ン層、 データ リ ン ク層、 および物理層を実装し て、 完全

な PCI Express エン ド ポイ ン ト およびルー ト ポー ト 機能を提供し ます。

これら の機能は、 PCI Express プ ロ ト コルを用いたチ ッ プ間のカ ス タ ム通信を可能にする互換性のあ るルー ト コ ン

プレ ッ ク ス を構築する ための根幹、 また イーサネ ッ ト コ ン ト ローラーやフ ァ イバー チャ ネル HBA などの ASSP

エン ド ポ イ ン ト デバイ ス を MPSoC に接続する ための根幹を提供し ます。 シ ス テム デザイ ンの要件に応じ て、

大データ レー ト 2.5Gb/s、 5.0Gb/s、 8.0Gb/s、 16Gb/s のレーン数 1、 2、 4、 8、 16 で動作する よ う に こ のブ ロ ッ ク を

構成でき ます。

Zynq UltraScale+ MPSoC エンベデッ ド  デザイ ン設計手法ガイ ド 101UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 102: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 5 章:  プログラマブル ロジ ッ ク

Interlaken

Interlaken IP は、 広帯域幅で信頼性の高いパケ ッ ト 転送に 適です。 この IP は、 レーン ロジ ッ ク と プロ ト コル ロジ ッ ク

を有効にするチップ間のイ ンターコネク ト プロ ト コルを提供し ます。 プロ ト コル ロジ ッ クは、 大 150Gb/s まで拡張

でき ます。 大 12.5Gb/s を使用する場合は 大 12 レーン、 また 大 25.78125Gb/s を使用する場合は 大 1 ~ 6 レーン

のロジ ッ ク を構成でき ます。 複数の Interlaken ブロ ッ ク を持つ UltraScale アーキテ クチャ デバイ スでは、 これら を活用

する こ と で信頼性の高い Interlaken ス イ ッチおよびブ リ ッ ジを簡単に設計でき ます。

100G イーサネ ッ ト

IEEE Std 802.3ba に準拠する イーサネ ッ ト 統合ブロ ッ クは、 ユーザーによ る カ ス タマイ ズ と統計収集をサポー ト する、

低レ イ テンシの 100Gb/s イーサネ ッ ト ポー ト を提供し ます。 Zynq UltraScale+ MPSoC 100G イーサネ ッ ト ブロ ッ ク に

は IEEE Std 802.3bj に準拠し た RS-FEC (Reed Solomon Forward Error Correction) ブロ ッ ク が含まれています。 この

RS-FEC ブロ ッ クは、 ユーザー アプ リ ケーシ ョ ンでイーサネ ッ ト ブロ ッ ク と組み合わせて使用し た り 、 また単独で

も使用でき ます。

システム モニ ター

第 8 章 「セキ ュ リ テ ィ 」 で説明し た とお り 、 システム モニター ブロ ッ クは、 オンチッ プの温度 と電源センサーを使

用し て物理的環境を監視する こ と で、 システム全体の安全性、 セキ ュ リ テ ィ 、 信頼性を向上させる こ と が可能です。

システム モニターを使用する こ と で、 電圧の監視、 電流の測定、 センサー出力の測定が可能にな り 、 必要な外部ア

ナロ グ信号を接続する IO ポー ト が不足し ている場合には外部マルチプレ ク サー モード での使用が可能です。

PL のシステム モニターは、 10 ビ ッ ト 1MSPS の ADC でセンサー出力をデジタル化し ます。 この計測値はレジス タに

格納され、 PS のプロセ ッ サおよび PMU は APB (Advanced Peripheral Bus) イ ン ターフ ェ イ ス を介し てア ク セス されま

す。 PL のシステム モニターは、 汎用 A/D コ ンバーターと し て使用でき ます。

ビデオ コーデッ ク  ユニ ッ ト

「EV」 シ リ ーズで利用可能な Zynq® UltraScale+™ MPSoC ビデオ コーデッ ク ユニ ッ ト (VCU) は、 高効率なビデオ

コーデ ィ ング (HEVC) H.265 規格や高度なビデオコーデ ィ ング (AVC) H.264 規格のサポー ト など、 複数規格のビデオ

エン コーデ ィ ング/デコーデ ィ ング機能を提供し ます。 VCU は、 PS への直接接続がない一部の Zynq UltraScale+

MPSoC の PL 内にあ る統合ブロ ッ ク です。 VCU の動作は、 レジス タでプロ グ ラ ム可能です。

詳細は、 第 9 章 「マルチ メ デ ィ ア」 の 「VCU」 セ ク シ ョ ン を参照し て く だ さ い。

コ ン フ ィ ギュ レーシ ョ ンおよびパーシャル リ コ ン フ ィギュ レーシ ョ ン

第 3 章 「システム ソ フ ト ウ ェ アの検討事項」 および第 8 章 「セキ ュ リ テ ィ 」 で説明し た とお り 、 PL は CSU の PCAP

を使用し て起動時に FSBL によ って構成されます。 場合によ っては、 起動時に FSBL によ って PL を部分的にロード

する こ と が望ま しい場合があ り ます。 システムの寿命期間中には、 PL を部分的に後から再構成する必要性が生じ ま

す。

つま り 、 パーシャル リ コ ンフ ィ ギュ レーシ ョ ン と は、 残 り のロ ジ ッ ク の動作を継続させながら、 部分的なビ ッ ト ス

ト リ ームをダウ ン ロードする こ と によ って ロ ジ ッ ク ブロ ッ ク を動的に変更でき る機能です。 こ のフ ローでは、 複数

コ ンフ ィ ギュ レーシ ョ ンの実装が必要です。 つま り 、 各コ ンフ ィ ギュ レーシ ョ ンのフル ビ ッ ト ス ト リ ーム と、 パー

Zynq UltraScale+ MPSoC エンベデッ ド  デザイ ン設計手法ガイ ド 102UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 103: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 5 章:  プログラマブル ロジ ッ ク

シャル リ コ ンフ ィ ギュ レーシ ョ ンに関与する各モジュールのパーシ ャル ビ ッ ト ス ト リ ームが生成されます。 必要な

コ ンフ ィ ギュ レーシ ョ ンの回数は実装する必要のあ るモジュールの数によ って異な り ます。

パーシャル リ コ ンフ ィ ギュ レーシ ョ ンの詳細は次を参照し て く ださい。

• 『Vivado Design Suite チュー ト リ アル: パーシャル リ コ ンフ ィ ギュ レーシ ョ ン』 (UG947) [参照 3]

• パーシャル リ コ ンフ ィ ギュ レーシ ョ ンのウ ェブ ページ [参照 17]

• すべてのコ ンフ ィ ギュ レーシ ョ ンでは、 同じ 上位 (ス タ テ ィ ッ ク ) の配置配線結果が使用されます。 これらの

ス タ テ ィ ッ ク の結果は初期コ ンフ ィ ギュ レーシ ョ ンからエク スポー ト され、 その後のチェ ッ ク ポイ ン ト を使用

するすべてのコ ンフ ィ ギュ レーシ ョ ンでイ ンポー ト されます。

FPGA テ ク ノ ロ ジは、 変更し たデザイ ンで製品を再製造し な く て も、 オンサイ ト でプロ グ ラ ム または再プロ グ ラ ムで

き る柔軟性を提供し ます。 パーシャル リ コ ンフ ィ ギュ レーシ ョ ンによ って、 こ の柔軟性がさ らに高ま り 、 パーシ ャ

ル コ ンフ ィ ギュ レーシ ョ ン フ ァ イル (パーシ ャル BIT フ ァ イル) を読み込むこ と で動作中の FPGA デザイ ンに変更を

加え る こ と ができ ます。 フル BIT フ ァ イルで FPGA を コ ンフ ィ ギュ レーシ ョ ン し た後、 パーシャル BIT フ ァ イルを

ダウ ン ロード し て FPGA の リ コ ンフ ィ ギ ャ ラブルな領域を変更でき ます。 この と き、 リ コ ンフ ィ ギュ レーシ ョ ン さ

れない領域で実行されている アプ リ ケーシ ョ ンに影響を与え る こ と はあ り ません。

図 5‐6: パーシャル リ コ ン フ ィ ギュ レーシ ョ ン

X-Ref Target - Figure 5-6

FPGA

ReconfigBlock “A”

A4.bitA3.bit

A2.bitA1.bit

X12001

パーシャル リ コ ンフ ィ ギュ レーシ ョ ンの基本概念は、 フ ィ ール ド のデバイ スにロード し たいすべてのビ ッ ト ス ト

リ ーム (フル/パーシャル) を作成する こ と です。 それには、 Zynq UltraScale+ MPSoC がフ ィ ール ド で動作し ている間

に、 どのデバイ スの再構成が必要になるかを把握し てお く 必要があ り ます。

消費電力削減機能

20nm および 16nm の微細化技術によ る消費電力の削減は、 プロ グ ラ マブル ロ ジ ッ ク (PL) 内での機能です。 適な電

圧調整がワ ッ ト あた り 性能の向上を実現させる こ と以外に、 ザイ リ ン ク スは 20nm プロセス デバイ スから、 アーキ

テ クチャ ブロ ッ ク に対し て数多 く の機能強化を行ってき ま し た。 また、 16nm では、 UltraRAM、 新 PCI Express

Gen4、 新タ イプ I/O バン ク など、 新技術を導入し ま し た。

各固有デザイ ンの総消費電力は 4 つのソース (静的消費電力、 動的消費電力、 ト ラ ンシーバー消費電力、 I/O 消費電

力) で構成されます。 それぞれが占める割合は、 実際に使用されている リ ソース、 頻度、 温度、 および負荷によ って

異な り ます。 ザイ リ ン ク スの 28nm 製品と UltraScale+ アーキテ クチャベースの FPGA を比較する と、 すべての電源

ソースに対し て消費電力が削減されています。 結果と し て、 FPGA の電力バジェ ッ ト を 大 50 % まで削減でき ます。

あ るいは同じ電力バジェ ッ ト の場合には、 よ り 高いシステム性能を実現でき ます。

Zynq UltraScale+ MPSoC エンベデッ ド  デザイ ン設計手法ガイ ド 103UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 104: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 5 章:  プログラマブル ロジ ッ ク

これらの進歩は、 UltraScale+ アーキテ クチャ FPGA に革新的な機能が備わっている ためです。 た と えば、 ザイ リ ン

ク スは ト ラ ンシーバーの設計を見直し て、 前世代よ り 消費電力を 50 % 削減する こ と に成功し ま し た。 UltraScale+

アーキテ クチャ FPGA では、 マルチモード I/O が引き続き使用可能で、 高性能 メ モ リ および LVDS イ ン ターフ ェ イ ス

で大幅な消費電力削減が可能です。 細かいレベルでのク ロ ッ ク ゲーテ ィ ング と いった機能は、 Vivado IDE と シーム

レ スに連携し、 ロ ジ ッ ク の大幅な動的消費電力削減を実現し ます。 ブロ ッ ク RAM にも、 多 く の消費電力削減機能が

あ り ます。 次の図に、 Zynq UltraScale+ MPSoC デバイ スの電力 適化機能を示し ます。

図 5‐7: PL の消費電力削減機能

X-Ref Target - Figure 5-7

Zynq UltraScale+ MPSoC エンベデッ ド  デザイ ン設計手法ガイ ド 104UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 105: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 6 章

メ モ リ

メ モ リの概要

Zynq® UltraScale+™ MPSoC デバイ スに固有のヘテ ロ ジニアス コ ンピ ューテ ィ ング機能は、 一般的な汎用コ ンピ ュー

テ ィ ング プロセ ッサを使用する場合よ り も、 適切な メ モ リ 構成を提供し、 その動作に不可欠な機能を提供し ます。

Zynq UltraScale+ MPSoC デバイ スには、 複数のオンチッ プ メ モ リ コ ンポーネン ト 、 メ モ リ ア ク セス用に多数の制御

機能、 高速で効率的な外部 メ モ リ イ ン ターフ ェ イ スが含まれています。 こ の章では、 Zynq UltraScale+ MPSoC デバ

イ スの メ モ リ 関連の情報 と その使用に関する推奨事項について説明し ます。

メ モ リ要件を定義する

ユーザー アプ リ ケーシ ョ ンの メ モ リ 要件を認識し、 それら と Zynq UltraScale+ MPSoC デバイ ス と の関連性を定義す

る こ と は、 設計プロセスの重要な部分です。 この章でも説明し ますが、 Zynq UltraScale+ MPSoC デバイ スの メ モ リ を

設定し て使用する方法は多数あ り ます。 Zynq UltraScale+ MPSoC デバイ ス をベース とする メ モ リ 要件に応じ た設計方

法を説明するにあたって、 こ こ では、 第 2 章 「プロセ ッ シング システム」 で説明し たプロセ ッ シング システムの設

計手法について理解し ている こ と が前提です。 つま り 、 第 2 章 で説明し た よ う に、 ユーザー デザイ ンの主要部分を

Zynq UltraScale+ MPSoC デバイ スの主要プロセ ッ シング ブロ ッ ク にどのよ う に分割するかを考えてお く 必要があ り

ます。

これらのこ と を踏まえた上で、 次の質問に応え る と、 要件に応じ た Zynq UltraScale+ MPSoC デバイ スの メ モ リ 機能

のカ ス タマイ ズに備え る こ と ができ ます。

• デバイ スの特定部分で、 どの時点でどれ く らいの メ モ リ 容量が必要ですか。

• 相互に比較し た場合、 それらのデザイ ン部分の動的な メ モ リ 帯域幅の要件何ですか。

• プロセ ッ シング ブロ ッ ク を安全に分離する ために処理機能を分割する必要があ り ますか。

• 扱 う データは常に安全に保管する必要があ り ますか。

メ モ リの設計手法

Zynq UltraScale+ MPSoC デバイ スにはさ まざまな種類の メ モ リ ブロ ッ ク があ り 、 Zynq UltraScale+ MPSoC デバイ スの

プロセ ッ シング ブロ ッ ク と メ モ リ 間にも さ まざまなパスがあ り ます。 第 1 章 「概要」 のアーキテ クチャ図は、 シス

テム全体 と関連する メ モ リ コ ンポーネン ト の全体図を示し ています。 こ の章では、 メ モ リ と それらの関係に焦点を

当てて説明するため、 Zynq UltraScale+ MPSoC デバイ スの概要図を使用し ます。

Zynq UltraScale+ MPSoC エンベデッ ド  デザイ ン設計手法ガイ ド 105UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 106: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 6 章:  メ モ リ

注記: この図は、 Zynq UltraScale+ MPSoC デバイ スの内部コ ンポーネン ト を正確に表現し た ものではな く 、 このセ ク

シ ョ ンで説明する概念を図にし た ものです。

メ モ リ の相互関係に焦点を当てた場合、 次のよ う にコ ンポーネン ト を 3 つのカテゴ リ に分類でき ます。

• ユーザー : 場所にかかわらずさ まざまな方法で メ モ リ へア ク セスするブロ ッ ク。

• アービ タ : 通過する と きに メ モ リ ア ク セスにフ ィ ルタ リ ングまたは条件を付け るブロ ッ ク。

• プロバイ ダー : 実際の メ モ リ ス ト レージを提供するブロ ッ ク。

次の図は、 これらのカテゴ リ に分類し た関連する Zynq UltraScale+ MPSoC デバイ スのブロ ッ ク を示し ています。 青

色の矢印は標準的なフ ローを示し、 それを受けた メ モ リ 参照を示し ています。

図 6‐1: メ モ リ関連の Zynq UltraScale+ MPSoC デバイスのブロ ッ ク  カテゴ リ

X-Ref Target - Figure 6-1

APU

GPU

RPU

Peripherals

DMA

PL

XMPU

Switch QoS

CCI

DDRC

ExternalMemory

OCM

PL

TCM

Users Arbitrators Providers

PL

Peripherals

X18700-032917

注記: この図は、 Zynq UltraScale+ MPSoC デバイ スの内部コ ンポーネン ト を正確に表現し た ものではな く 、 このセ ク

シ ョ ンで説明する概念を図にし た ものです。

要するに、 実際には メ モ リ プロバイ ダーに到達する前に 1 つ (通常は、 も っ と多 く ) のアービ タ を経由する必要があ

り ます。 これにはい く つか例外があ り ます。 RPU には、 低遅延 リ ン ク を介し て RPU 内の R5 に直接ア ク セスでき る

密結合 メ モ リ (TCM) が含まれています。 また、 プロセ ッ シング ロ ジ ッ ク (PL) をプロ グ ラ ム し て外部 メ モ リ へのア ク

セス を調停し た り 、 PL のその他の部分から内部ア ク セスでき る メ モ リ や、 さ ほど頻繁ではないがシステムのその他

の部分から ア ク セスでき る メ モ リ を提供し た り する こ と も可能です。

第 2 章 「プロセ ッ シング システム」 で説明し た とお り 、 メ モ リ の動作と ア ク セスは、 Zynq UltraScale+ MPSoC デバ

イ スの相互接続に大き く 影響を受けます。 この章では、 ス イ ッチの QoS (Quality of Service)、 CCI (Cache Coherent

Interconnect)、 および必要に応じ て イ ン ターコネ ク ト の QoS を要件に合わせる方法について説明し ます。 ザイ リ ン ク

ス メ モ リ 保護ユニ ッ ト (XMPU) は、 事実上 メ モ リ ア ク セス をフ ィ ルタ リ ングする ためのセキ ュ リ テ ィ ブロ ッ ク であ

り 、 詳細は第 7 章 「 リ ソースの分離 と分割」 で後述し ます。

ほ と んどのアプ リ ケーシ ョ ンの場合、 256 KB のオンチッ プ メ モ リ (OCM) 、 および各 R5 のサイ ズが 128 KB のツ イ

ン TCM は、 完全に機能する システムを構築するには不十分です。 こ のため、 外部 メ モ リ が常にデザイ ンの一部と し

て機能し ます。 し たがって、 デザイ ンに使用する外部 メ モ リ のサイ ズを決める こ と は、 重要な決定事項の 1 つ と な

り ます。 さ らに、 デフ ォル ト の DDR コ ン ト ローラー (DDRC) よ り も広い帯域幅が必要であ るかを判断する必要があ

Zynq UltraScale+ MPSoC エンベデッ ド  デザイ ン設計手法ガイ ド 106UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 107: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 6 章:  メ モ リ

り ます。 ほ と んどのアプ リ ケーシ ョ ンは、 DDRC の 大帯域幅 19,200 MB/s で問題な く 機能し ます。 アプ リ ケーシ ョ

ンがこの帯域幅をどのよ う に使用し ているのかを把握し、 必要な場合に備えてオプシ ョ ンを理解し てお く こ と が重

要です。

アプ リ ケーシ ョ ンが DDRC の 大帯域幅の約 60 % 以下を必要 とする場合、 Zynq UltraScale+ MPSoC デバイ スは、 メ

モ リ に関し てはそのま ま使用でき ます。 大帯域幅の 60 ~ 80 % の間であれば、 ザイ リ ン ク ス ソ フ ト ウ ェ ア開発

キ ッ ト (SDK) のシステム パフ ォーマン ス モニ タ リ ング (SPM) ツールを使用し て、 Zynq UltraScale+ MPSoC デバイ ス

の メ モ リ 使用量をモデル化し、 現状のワーク ロード でシステムがいかに効率的に動作するかを把握する こ と ができ

ます。 SDK については、 34 ページの 「QoS のカス タマイ ズ」 で言及し てお り 、 詳細は、 第 3 章 「システム ソ フ ト

ウ ェアの検討事項」 を参照し て く ださい。 しかし、 大帯域幅の 90 % に近づ く につれて、 追加の外部 メ モ リ コ ン ト

ローラーが必要になる可能性が高 く な り ます。 そのよ う なコ ン ト ローラーは、 PL 内に実装する こ と ができ、 前の図

に示すよ う に、 PL に メ モ リ ア ク セスのアービ タ と し て機能させる こ と ができ ます。 通常のアプ リ ケーシ ョ ンでは、

そのよ う なコ ンフ ィ ギュ レーシ ョ ンを必要 と し ませんが、 ビデオ処理や UltraHD を含むシステムでは、 追加の メ モ

リ コ ン ト ローラーが必要になる可能性が高 く な り ます。

外部 メ モ リ の要件は、 サイ ズ と ECC の考慮事項によ って も左右されます。

ビル ト イ ン  メ モ リ  ブロ ッ ク

Zynq UltraScale+ MPSoC デバイ スには、 さ ま ざ ま な状況で使用する ためのビル ト イ ン メ モ リ と メ モ リ 対応ブ ロ ッ

ク がい く つか含まれています。 こ のセ ク シ ョ ンでは、 こ れら のブ ロ ッ ク と それら の一般的な使用法について説明

し ます。

オンチ ッ プ メ モ リ

プロセ ッ シング システム (PS) のオンチッ プ メ モ リ (OCM) のサイ ズは 256 KB です。 OCM には、 DDR コ ン ト ロー

ラー経由でア ク セスする こ と はでき ません。 OCM へのイ ン ターフ ェ イ スは、 PL と PS から接続されています。 後者

は、 フル電力ド メ イ ン (FPD) と低電力ド メ イ ン (LPD) の両方から OCM にア ク セスでき ます。

DDR よ り も OCM を使用する主な理由は、 OCM のレ イ テンシは DDR コ ン ト ローラーよ り も数サイ クル短 く 、 DDR

よ り も高い帯域幅を持つため、 よ り 高い性能を実現でき るからです。 し たがって、 メ モ リ ア ク セス ス ピード は重要

でもサイ ズが制限されている場合は OCM を戦略的に使用する こ と で解決し ます。 性能のために OCM の使用を 大

限にする 1 つの方法は、 コード ではな く データ を格納するために使用する こ と です。 コード は外部 メ モ リ に格納し

てそ こから実行でき ます。 また、 外部 メ モ リ を使用し ていない場合や外部 メ モ リ をほかの用途に使用し たい場合は、

XIP (eXecute-In-Place) 方式を使用し て コード を実行する こ と も可能です。 た と えば、 Quad-SPI (QSPI) ベースのス ト

レージから直接コード を実行でき ます。

外部 メ モ リ の代わ り に OCM を使用する も う 1 つの理由はセキ ュ リ テ ィ です。 OCM は Zynq UltraScale+ MPSoC デバ

イ スに組み込まれているため、 さ まざまなプロセ ッ シング ブロ ッ ク と OCM 間で転送されるデータ を攻撃者がス

ヌープする こ と は不可能です。 し たがって、 OCM は、 暗号キーや機密情報などの重要な一時データ を安全に格納す

るための理想的な場所です。 保存するオブジェ ク ト が OCM には大きすぎ る場合は、 OCM に格納された一時キーを

使用し て暗号化し、 暗号化されたオブジェ ク ト を外部 メ モ リ に保存でき ます。 この場合、 外部 メ モ リ に格納された

暗号化されたオブジェ ク ト へア ク セスするためのキーは OCM に格納されている ため、 オブジェ ク ト は保護されま

す。

一般に、 アプ リ ケーシ ョ ン プロセ ッ シング ユニ ッ ト (APU) および リ アルタ イ ム プロセ ッ シング ユニ ッ ト (RPU) 上

で実行される ソ フ ト ウ ェ アは、 OCM を使用でき ます。 さ らに、 OCM を使用する シナ リ オはほかにも あ り ます。 た

と えば、 ブー ト プロセスの設定段階で FSBL (第 1 段階ブー ト ローダー ) は、 システムのブー ト モード (セキ ュ ア

モード /非セキ ュ ア モード ) にかかわらず PS を起動するためのコード を OCM にロード し ます。 OCM は、 JTAG を介

Zynq UltraScale+ MPSoC エンベデッ ド  デザイ ン設計手法ガイ ド 107UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 108: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 6 章:  メ モ リ

し て不揮発性フ ラ ッ シュ メ モ リ をプロ グ ラ ムする場合にも使用されます。 JTAG ブー ト モード の場合、 フ ラ ッ シ ュ

メ モ リ をプロ グ ラ ムするルーチンが OCM にロード され、 その後フ ラ ッ シュ メ モ リ に関するプロセス を引き継ぎま

す。

プログラム可能なロジ ッ ク  メ モ リ

PL をプロ グ ラ ム し て 3 種類の メ モ リ ブロ ッ ク を提供でき ます。 PL 内で利用でき る メ モ リ 容量は限られていますが、

これらの メ モ リ は消費電力が少ない上に、 外部 メ モ リ よ り も高速ア ク セスが可能です。 このこ と は、 PL でハード

ウ ェアを設計する際にも重要です。 し たがって、 Zynq UltraScale+ MPSoC デバイ スのプロセ ッ シング ブロ ッ ク が一

般的な目的で PL の メ モ リ 機能を使用する よ う な設定は、 後の手段にすべきです。

PL の 3 種類の メ モ リ は異なる特性を持ち、 ザイ リ ン ク ス開発ツールを使用する こ と で、 これらはすべて FPGA デザ

イ ン内にイ ン ス タ ンシエー ト 可能です。

BRAM

ブロ ッ ク RAM (BRAM) メ モ リ は、 以前のザイ リ ン ク ス FPGA プロセ ッ サで有効な メ モ リ の一種です。 BRAM は、 PL

コ ンポーネン ト が使用でき る小規模 メ モ リ を提供し ます。 36 KB ブロ ッ ク で提供されるため、 Zynq UltraScale+

MPSoC デバイ スでは、 デバイ スの種類に応じ て PL 全体で 大 35 MB の BRAM を含める こ と ができ ます。 BRAM ユ

ニ ッ ト は、 2 つの独立し た 18 Kb ブロ ッ ク または 1 つの 36 Kb ブロ ッ ク と し て使用でき ます。 使用するポー ト 数は、

2 つまたは 1 つに設定でき ます。 複数の BRAM ブロ ッ ク を結合し て、 1 つのユニ ッ ト と し て使用する こ と も可能で

す。

UltraRAM

UltraRAM は、 Zynq UltraScale+ MPSoC デバイ ス用の FPGA RAM です。 各 UltraRAM ブロ ッ クは 288 Kb で、 Zynq

UltraScale+ MPSoC デバイ スでは 大 128 MB の UltraRAM を利用でき ます。UltraRAM は BRAM よ り も集積度が高い

ため、 FPGA フ ァ ブ リ ッ クのスペースが少な く て済みます。 UltraRAM の集積度が高 く なるほど、 BRAM よ り も消費

電力を抑え られます。

LUTRAM

LUTRAM (分散 RAM) は、 Zynq® UltraScale+™ MPSoC 上に限られた数だけ存在し ます。 分散 RAM は、 PL 内の LUT

プ リ ミ テ ィ ブで構築された メ モ リ ブロ ッ ク です。 メ モ リ の必要性が低い場合や BRAM のレ イ テンシが望ま し く ない

場合には、 分散型 メ モ リ を使用でき ます。

密結合メ モ リ

密結合 メ モ リ (TCM) は、 リ アルタ イ ム プロセ ッ シング ユニ ッ ト (RPU) 内の Cortex R5 プロセ ッ サ コ アに接続された

4 バン クの 64 KB メ モ リ です。 TCM によ り 、 RPU は決定的なパフ ォーマン ス と低レ イ テンシのア ク セス を持つ メ モ

リ へ、 優先的にア ク セスでき ます。

第 2 章 「プロセ ッ シング システム」 で説明し た とお り 、 R5 プロセ ッサはスプ リ ッ ト モード またはロ ッ ク ステ ッ プ

モード のいずれかで動作する よ う に設定でき ます。 デフ ォル ト の動作モード はスプ リ ッ ト モード です。 こ のモード

の場合、各 Cortex-R5 プロセ ッ サには ATCM ポー ト と BTCM ポー ト と呼ばれる 2 つの 64 ビ ッ ト 幅 64 KB メ モ リ バン

ク があ り 、 合計 128 KB の メ モ リ を利用でき ます。 TCM を 2 つの部分に分割する こ と で、 R5 CPU または AXI イ ン

ターフ ェ イ ス経由で メ モ リ バン ク に同時にア ク セス可能にな り ます。 ロ ッ ク ステ ッ プ モード の場合は、 TCM を 1 つ

の 256 KB 領域にま と める こ と ができ ます。 RPU と PS 内のその他の部分 と の間の通信を可能にする ために、 TCM メ

Zynq UltraScale+ MPSoC エンベデッ ド  デザイ ン設計手法ガイ ド 108UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 109: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 6 章:  メ モ リ

モ リ は APU またはその他の AXI マス ターがア ク セスでき る グ ローバル システム ア ド レ ス マ ッ プにも マ ッ プされま

す。 次の図は、 TCM メ モ リ へア ク セスでき る さ まざまな方法を示し ています。

図 6‐2: RPU および APU 側からの TCM ア ド レス空間

X-Ref Target - Figure 6-2

Global Address Map

TCMs (256 KB)

LLPP + RPU-GIC

DRAM

BTCM (64 KB)

ATCM (64 KB)

0xFFFF-FFFF RPU Split View

Global Address Map

TCMs (256 KB)

LLPP + RPU-GIC

DRAM

BTCM (128 KB)

ATCM (128 KB)

RPU Lock-step View

Global Address Map

TCMs (256 KB)

APU-GIC

DRAM

APU View

GIC BaseAddr

Top of DRAM

TCMs alias

0x0000-0000

0xFFE0-0000

X15298-092916

注記: グ ローバル システム ア ド レ ス マ ッ プの詳細は、 110 ページの 「グ ローバル システム メ モ リ マ ッ プ」 を参照し

て く ださい。

TCM は APU ア ド レ ス空間内にマ ッ プされますが、 RPU はこ の章の前半で説明し た メ モ リ アービ タ を経由せずに、

常に直接低レ イ テンシ パス を通って TCM にア ク セス し ます。

PS DDR メ モ リ およびコ ン ト ローラー

Zynq® UltraScale+™ MPSoC PS DDR サブシステムは、 6 つの AXI イ ン ターフ ェ イ ス を使用し て第 2 章 「プロセ ッ シ

ング システム」 で説明し た イ ン ターコネ ク ト を介し てシステムの残 り の部分に接続されます。 DDR サブシステム

は、 複数の メ モ リ 規格 (DDR3、 DDR3L、 LPDDR3、 DDR4、 LPDDR4)、 および UDIMM と RDIMM の両方をサポー ト

し ています。 サポー ト されている DRAM 総容量は 32 GB です。

Zynq UltraScale+ MPSoC エンベデッ ド  デザイ ン設計手法ガイ ド 109UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 110: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 6 章:  メ モ リ

図 6‐3: DDR サブシステムのブロ ッ ク図

X-Ref Target - Figure 6-3

AXI Performance

Monitor

XMPU0

FromRPU

XMPU1

FromCCI-400

XMPU2

FromCCI-400

XMPU3 XMPU4

FromAFI3/AFI42x2 Switch

XMPU5

From AFI5FPD-DMA2x2 Switch

QoS ControllerAXI to APB

Bridge

DDR Memory Controller

DDR multiPHY

DDR3, LPDDR3, DDR4, LPDDR4Standard DDR Memory Interface

From Top Switch

FromAFI2/Display Port

2x2 Switch

X15348-092816

イ ン ターコネ ク ト の動作および QoS のカス タマイ ズ方法の詳細は、 第 2 章 「プロセ ッ シング システム」 を参照し て

く ださい。 上記の図に示す 「QoS コ ン ト ローラー」 は、 ス イ ッチベースの QoS と CCI ベースの QoS (第 2 章の各セ ク

シ ョ ンで説明) を使用し て設定されたポ リ シーを実行し ます。

グローバル システム メ モ リ  マ ッ プ

Zynq UltraScale+ MPSoC デバイ スのグ ローバル システム ア ド レ ス マ ッ プ空間は 1TB に及んでお り 、 複数タ イプの

AXI マス ターに対応する よ う に構築されています。 た と えば、 RPU の R5 は 32 ビ ッ ト のプロセ ッ サであ るのに対し、

APU の A53 は 64 ビ ッ ト または 32 ビ ッ ト のプロセ ッサ と な り ます。 し たがって、 基本的に 64 ビ ッ ト モード の A53

は R5 よ り も多 く の メ モ リ 容量に対応でき ます。 32 ビ ッ ト のプロセ ッ サは 大 4GB まで対応でき、 64 ビ ッ ト のプロ

セ ッ サは理論的には 大 16GB まで対応でき ます。 実際、 ARMv8-A は 大 48 ビ ッ ト のア ド レ ス指定しかサポー ト し

ていません。 システム メ モ リ マ ッ プは、 両方のタ イプの AXI マス ターに対応し、 32 ビ ッ ト 、 36 ビ ッ ト 、 または 40

ビ ッ ト のシステム ア ド レ ス をサポー ト する よ う に構成でき ます。

ページテーブル変換では、 変換ステージ間でア ド レ ス を変換する ために メ モ リ 管理ハード ウ ェ アがページ テーブル

を ウ ォーク スルーする必要があ り ます。 ア ド レ ス空間が広 く なるほど、 ウ ォーク スルーする テーブルが増加し ます。

た と えば、 4 KB のページでは、 40 ビ ッ ト 幅のア ド レ スは 4 つのテーブルを ウ ォーク スルーする必要があ り 、 36 ビ ッ

Zynq UltraScale+ MPSoC エンベデッ ド  デザイ ン設計手法ガイ ド 110UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 111: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 6 章:  メ モ リ

ト 幅のア ド レ スは 3 つ必要であ り 、 32 ビ ッ ト 幅のア ド レ スは 2 つ必要です。 し たがって、 よ り 広いア ド レ ス空間

に対応でき るプ ロ セ ッ サであって も、 でき るだけ少ないア ド レ ス ビ ッ ト を使用する こ と で メ モ リ ア ク セス を高速

化でき る と い う 利点があ り ます。

次に示す Zynq UltraScale+ MPSoC デバイ スのシステム ア ド レ スは、 32 ビ ッ ト マス ター、 および 64 ビ ッ ト に対応で

き るマス ター用に 適化された 36 ビ ッ ト ア ク セス をサポー ト し ています。

図 6‐4: Zynq UltraScale+ MPSoC デバイスのシステム ア ド レス マ ッ プ

X-Ref Target - Figure 6-4

FooDDR - 2GBFooLPD-PL - 512 MBFooHPM0 - 256MBFooHPM1 - 256MB

QSPI - 512MBFooLower PCIe - 256MBFooReserved - 128MB

CoreSight STM 4MB per master ID - 16MBRPU Low Latency Peripheral Port - 1MB

Reserved - 63MBFPS Slaves Includes FPS Top Slaves - 16MBLPS Slaves Includes LPS Top Slaves - 28MB

CSU/PMU/TCM/OCM - 4MBReserved - 12GB

FooPL - 8GBFooPCIe - 8 GB

DDR - 32GBPL - 448GB

PCIe - 256 GBFooReserved - 256GB

32-bitAddressSpace

36-bitAddressSpace

40-bitAddressSpace

0GB2GB

3GB

4GB16GB24GB32GB64GB512GB768GB1TB

X18701-032117

注記: 16 ExaBytes、 16*1,024 PetaBytes、 または 16*1,024*1,1024 TeraBytes です。

Zynq UltraScale+ MPSoC デバイ スでは、 DDR などの重要なシステム コ ンポーネン ト を 32 ビ ッ ト 対応のマス ターがア

ク セスでき る下位 32 ビ ッ ト のア ド レ ス指定可能な空間にマ ッ プする こ と によ り 、 これらのマス ターが大部分のオン

チッ プ ペ リ フ ェ ラルおよび機能を使用でき る よ う にな り ます。 それを超える 36 ビ ッ ト ア ド レ ス空間にマ ッ プする

と、 64 ビ ッ ト のマス ターが、 その他の DDR を含む も頻繁に必要と される リ ソースへすばや く ア ク セスでき る よ う

にな り ます。 後に、 40 ビ ッ ト のア ド レ ス空間にマ ッ プする と、 64 ビ ッ ト のマス ターが、 Zynq UltraScale+ MPSoC

デバイ スの機能へア ク セスでき ます。 64 ビ ッ ト のマス ターには、 APU、 PCIe、 SATA、 DisplayPort、 フル電力ド メ イ

ン ダ イ レ ク ト メ モ リ ア ク セス (FPD-DMA)、 USB、 ギガビ ッ ト イーサネ ッ ト MAC (GEM)、 SD、 NAND、 QSPI、 コ

ンフ ィ ギュ レーシ ョ ン セキ ュ リ テ ィ ユニ ッ ト (CSU) DMA、 および低電力ド メ イ ン ダ イ レ ク ト メ モ リ ア ク セス

(LPD-DMA) のイ ン ターコネ ク ト があ り ます。

PS DMA コ ン ト ローラー

新の SoC と同様に、 Zynq UltraScale+ MPSoC デバイ ス上で大量のデータ を転送する も効率的な方法は、 DMA コ

ン ト ローラーを使用する こ と です。 これによ って、 さ まざまな CPU コ アへの関与を回避でき ます。 Zynq UltraScale+

Zynq UltraScale+ MPSoC エンベデッ ド  デザイ ン設計手法ガイ ド 111UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 112: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 6 章:  メ モ リ

MPSoC デバイ スには、 2 つの汎用 DMA コ ン ト ローラーと い く つかのペ リ フ ェ ラル特有の DMA エンジンが含まれて

います。 前者は、 メ モ リ 間、 メ モ リ と I/O 間、 および I/O 間の転送をサポー ト し ます。 後者については、 第 10 章

「ペ リ フ ェ ラル」 で詳し く 説明し ます。 また、 ザイ リ ン ク スでは、 IP カ タ ロ グで PL DMA コ アを提供し ています。

汎用コ ン ト ローラーの 1 つはフル電力ド メ イ ン (FPD-DMA) にあ り 、 も う 1 つは低電力ド メ イ ン (LPD-DMA) にあ り

ます。 この 2 つの汎用 DMA コ ン ト ローラーは同一であ り 、 8 つの独立し た DMA チャネルを使用し て、 1 つの共通

バッ フ ァーを内部で共有し て 大 AXI 帯域幅を使用し ます。 これらは両方と も、 QoS、 TrustZone、 OverFetch、 およ

び整列し ていない転送をサポー ト し ています。 また、 どち ら も通知の割 り 込みを発生させる こ と ができ、 シンプル

DMA と スキ ャ ッ ター ギ ャザー DMA の 2 つの転送モード に対応でき ます。

これらのコ ン ト ローラーの相違点の 1 つは、 共通バッ フ ァーのサイ ズです。 FPD-DMA は 128 ビ ッ ト の AXI バスに接

続され、 4 K の内部共通バッ フ ァーを使用し、 LPD-DMA は 64 ビ ッ ト の AXI バスに接続され、 2 K の共通バッ フ ァー

を使用し ます。 共通バッ フ ァーはコ ン ト ローラーで自動的に管理されますが、 各チャネルのレー ト コ ン ト ローラー

と読み出し発行レジス タ を調整する こ と によ って、 各チャネルのバッ フ ァーの使用状況をあ る程度操作する こ と も

可能です。

コ ン ト ローラー間のも う 1 つの相違点は、 LPD-DMA が I/O コ ヒ ーレ ン ト であ るのに対し て、 FPD-DMA が I/O コ

ヒ ーレ ン ト でないこ と です。 LPD-DMA 転送は CCI を経由する ため I/O コ ヒ ーレ ン ト と な り ますが、 FPD-DMA は

CCI を経由せずに直接 DDR へア ク セス し ます。 し たがって、 FPD-DMA 転送は、 コ ヒ ーレ ンシを確保するためにソ

フ ト ウ ェア サポー ト が必要と な り ます。

Zynq UltraScale+ MPSoC エンベデッ ド  デザイ ン設計手法ガイ ド 112UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 113: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 6 章:  メ モ リ

次の図は、 各汎用 DMA コ ン ト ローラーの内部を示し ています。

図 6‐5: DMA のブロ ッ ク図

X-Ref Target - Figure 6-5

DMA Channel 1

DMAChannel 7

MUX

CommonBuffer

Read Arbiter

Write Arbiter

APB Registers APB

DMAChannel 0

RDATA

AXI RD CMD AXI WR CMD

WDATA

X15366-092516

シンプル DMA

シンプル DMA モード では、 転送コマン ド が単一の命令と し てコ ン ト ローラーに発行されます。 こ の DMA 要求のプ

ロ グ ラ ミ ング モデルは、 次のよ う にな り ます。

1. データ転送ソース ア ド レ スのデステ ィ ネーシ ョ ン ア ド レ スが DMA チャネル レジス タにプロ グ ラ ム されます。

2. ソースのサイ ズ とデステ ィ ネーシ ョ ン バッ フ ァーは、 同じチャネル レジス タ内にプロ グ ラ ム されます。

3. 必要に応じ て、 チャネルで割 り 込みが有効にな り ます。

4. DMA 転送が開始されます。

割 り 込みが有効な場合、 DMA コ ン ト ローラーが メ モ リ の読み出し を完了する と割 り 込みが生成され、 DMA コ ン ト

ローラーが メ モ リ への書き込みを完了する と、 また別の割 り 込みが生成されます。

要求された DMA 読み出しが メ モ リ ページの境界を越え る場合、 DMA コ ン ト ローラーはオプシ ョ ンの指示に従っ

て、 その境界まで残 り のデータ をフ ェ ッチする こ と ができ ます。 これが OverFetch 機能です。 こ の機能が無効になっ

ている場合、 不完全な メ モ リ ページへの読み出し要求は、 シングル バイ ト 読み出し を複数回実行し て完了し ます。

シンプル DMA モード には、 2 つのサブモード があ り ます。

Zynq UltraScale+ MPSoC エンベデッ ド  デザイ ン設計手法ガイ ド 113UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 114: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 6 章:  メ モ リ

• Read-only: 読み出し専用モード では、 DMA チャネルは メ モ リ からデータ を読み出すだけで、 データ を書き込む

こ と はでき ません。 このモード は、 可能性のあ るエラー訂正コード (ECC) エラーを訂正する ために、 メ モ リ ス

ク ラブを行 う のに役立ちます。

• Write-only: 書き込み専用モード では、 DMA チャネルは DMA チャネル レジス タから あ らかじめロード し たデー

タ を メ モ リ に書き込みます。 このモード は、 メ モ リ ブロ ッ ク をすばや く 初期化するのに役立ちます。

スキャ ッ ター ギャザー DMA

スキ ャ ッ ター ギ ャザー DMA は、 データ ソース とデータ デステ ィ ネーシ ョ ンがバッ フ ァー デ ィ ス ク リ プター (BD)

フ ォーマ ッ ト で指定される、 よ り 複雑な動作モード です。 DMA コ ン ト ローラーは、 異なるニーズに対応でき る 3 つ

の異なるデ ィ ス ク リ プター フ ォーマ ッ ト をサポー ト し ています。

• リ ニア: リ ニア BD は、 リ ニア アレ イに格納されます。 各 128 ビ ッ ト デ ィ ス ク リ プターには、 DMA 転送用の

ソース ア ド レ ス とデステ ィ ネーシ ョ ン ア ド レ スが含まれます。

• 連結 リ ス ト : 連結 リ ス ト BD は 256 ビ ッ ト 幅です。 リ ニア デ ィ ス ク リ プターと同じ情報を含みますが、 次の BD

のア ド レ ス ( メ モ リ 内のど こ に配置されていて も問題ない) も含みます。

• ハイブ リ ッ ド : ハイブ リ ッ ド モード では、 2 種類の BD が混在可能です。 2 つのパターンを同時に使用する こ の

モード では、 メ モ リ ページの境界でのみ連結 リ ス ト BD を使用し、 その他のページでは リ ニア BD を使用し ま

す。

Zynq UltraScale+ MPSoC エンベデッ ド  デザイ ン設計手法ガイ ド 114UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 115: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 6 章:  メ モ リ

次の図にこれらの 3 つのフ ォーマ ッ ト を示し ます。

図 6‐6: サポー ト されているスキャ ッ ター ギャザーのユース ケース 

X-Ref Target - Figure 6-6

Dscr0

Dscr1

Dscr2

Dscr3

Dscr4

Dscr5

Dscr6

Dscr7

Dscr0

Dscr1

Dscr2

Dscr3

Dscr4

Dscr5

Dscr6

Next Addr

Dscr3Next Addr

Dscr0Next Addr

Dscr7

Dscr8

Dscr13

Next Addr

Dscr5Next Addr

Dscr4Next Addr

Dscr2Next Addr

Dscr1Next Addr

Linear Descriptor Mode Linked-List Descriptor Mode Hybrid Descriptor Mode

128-bit DescriptorDescriptor Element

Type = 0

256-bit DescriptorDescriptor Element

Type = 1

128 and 256-bit DescriptorDescriptor Element Type = 0 and 1

Linked-List Descriptor is OnlyUsed on Page Boundary

X15368-092516

スキ ャ ッ ター ギ ャザー DMA は割 り 込みもサポー ト し ています。 生成された割 り 込みの数は、 専用のアカ ウ ンテ ィ

ング レジス タ を使用し て管理されます。 こ のレジス タは、 DMA コ ン ト ローラーで処理されるデ ィ ス ク リ プターご と

にイ ン ク リ メ ン ト されます。 アプ リ ケーシ ョ ンは、 このレジス タ を参照し て DMA 転送ステータ ス を把握し、 必要に

応じ てレジス タ を リ セ ッ ト でき ます。

ペ リ フ ェ ラル DMA

前述のよ う に、 Zynq® UltraScale+™ MPSoC の高速ペ リ フ ェ ラルには、 独自の DMA コ ン ト ローラーが付属し ていま

す。 各ペ リ フ ェ ラルの DMA の特性は、 それぞれに固有と な り ます。 詳細は、 第 10 章 「ペ リ フ ェ ラル」 を参照し て

く ださい。 次の表は、 各高速ペ リ フ ェ ラルの DMA に関する情報を ま と めた ものです。

Zynq UltraScale+ MPSoC エンベデッ ド  デザイ ン設計手法ガイ ド 115UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 116: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 6 章:  メ モ リ

図 6‐7: ペ リ フ ェ ラルの DMA サポー ト

X-Ref Target - Figure 6-7

使用およびプログラ ミ ング

通常、 第 2 章 「プロセ ッ シング システム」 で説明し たプロセ ッ シング ユニ ッ ト 上で動作する OS やド ラ イバーは、

さ まざまな DMA コ ン ト ローラーをプロ グ ラ ムおよびイ ン ターフ ェ イ ス し ます。 し たがって、 DMA の 適な使用方

法 と リ ソースの分割方法の分析は、 ソ フ ト ウ ェ ア全体の設計プロセスの一環 と し て実行するのが適し ています。 さ

らに、 DMA コ ン ト ローラーは、 AXI バス上にあ るその他多数のコ ンポーネン ト と同様の AXI マス ターであ る こ と に

留意し て く ださい。 し たがって、 DMA ト ラ フ ィ ッ ク の優先順位付けは、 第 2 章で説明し た QoS を調整する場合 と同

じ技術を使用し て実行でき ます。

PL を使用する外部メ モ リ

既に説明し た とお り 、 Zynq UltraScale+ MPSoC デバイ スの PL を使用し て外部 DDR メ モ リ へ接続でき ます。 これは、

ザイ リ ン ク スが提供する特別な IP ブロ ッ ク ジェネレーターを使用する こ と で可能にな り ます。 メ モ リ イ ン ターフ ェ

イ ス ジェネレーター (MIG) を使用し て、 FPGA の PL フ ァ ブ リ ッ ク に統合するのに必要なブロ ッ ク を生成し ます。

MIG は、 次のダ イナ ミ ッ ク RAM 用イ ン ターフ ェ イ ス を生成でき ます。

• DDR3/DDR4

• QDR II+

• QDR-IV

• RLDRAM

DDR3 および DDR4 の場合、 MIG は次のよ う な構造を生成し ます。

Zynq UltraScale+ MPSoC エンベデッ ド  デザイ ン設計手法ガイ ド 116UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 117: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 6 章:  メ モ リ

図 6‐8: MIG で生成される一般的なブロ ッ ク

X-Ref Target - Figure 6-8

User FPGA Logic

A User Interface

Memory Controller

Initialization/Calibration

Physical Layer

DDR3/DDR4

SDRAM

UltraScale Architecture-Based FPGAs

UltraScale Architecture-Based FPGAs Memory Interface Solution

CalDone

Read Data

1

0

物理層 (PHY) は、 DDR メ モ リ の動作に必要な低レベル信号を扱います。 キ ャ リ ブレーシ ョ ンを実行し、 メ モ リ の読

み書きに必要な正確なタ イ ミ ング信号を生成し ます。 また、 電源投入時には RAM の初期化も実行し ます。 メ モ リ コ

ン ト ローラー (MC) は、 ユーザー イ ン ターフ ェ イ スからの書き込み/読み出し ト ラ ンザク シ ョ ン要求を処理し、 それ

ら を物理層に転送し ます。 また、 必要に応じ て メ モ リ ECC 機能も実行し ます。

MIG を使用する こ と で、 PL ブロ ッ ク を介し て追加の外部 メ モ リ へア ク セスでき る よ う にな り ます。 つま り 、 PL が

システムのその他の部分から独立し て メ モ リ を使用でき る よ う にな り 、 また外部 メ モ リ を別のコ ンポーネン ト と共

有でき る よ う にな り ます。 た と えば、 PL に内蔵されている ビデオ コーデッ ク ユニ ッ ト (VCU) が、 ソ フ ト DDR コ ン

ト ローラーで制御される追加の外部 メ モ リ を使用でき る よ う にな り ます。 PL を介し て メ モ リ を拡張し て使用する も

う 1 つの目的は、 前にも言及し ま し たが、 PS DDR コ ン ト ローラーを用いる Zynq UltraScale+ MPSoC デバイ スの 大

メ モ リ ア ク セス帯域幅であ る 19,200 MB/s 以上を達成するためです。

Zynq UltraScale+ MPSoC エンベデッ ド  デザイ ン設計手法ガイ ド 117UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 118: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 7 章

リ ソースの分離と分割Zynq® UltraScale+™ MPSoC デバイ スはヘテ ロ ジニアス コ ンピ ューテ ィ ング デバイ スであ るため、 種類の異なるプロ

セ ッ シング ブロ ッ ク、 ペ リ フ ェ ラル、 および メ モ リ を内蔵し ています。 Zynq UltraScale+ MPSoC デバイ スには、 こ

れらの リ ソース をグループにま と め、 グループご と に分割および分離でき る重要な機能があ り ます。 この機能を使

用する と、 設計者は複数の独立し たサブシステムを作成し、 必要なハード ウ ェ ア リ ソースにはア ク セス しつつもほ

かのサブシステムからは保護される よ う にでき ます。 こ う する こ と で、 サブシステムを またいだ攻撃を防ぐ こ と が

でき ます。 また、 Zynq UltraScale+ MPSoC デバイ スのプロセ ッ シング ブロ ッ ク には、 指定し たサブシステムの内部

を分割および分離するサブシステム内セキ ュ リ テ ィ メ カニズム もい く つかあ り ます。 こ の章では、 Zynq UltraScale+

MPSoC デバイ スの リ ソース分離/分割 メ カニズムおよびその使用に関する推奨事項について説明し ます。

リ ソース分離/分割の要件を定義する

リ ソース分離/分割の要件を定義するには、 まず Zynq UltraScale+ MPSoC デバイ スの主要なコ ンポーネン ト と それぞ

れの関係、 およびそれらの代表的な使用方法について理解し てお く 必要があ り ます。 し たがって、 この章に進む前

に少な く と も第 2 章 「プロセ ッ シング システム」、 第 3 章 「システム ソ フ ト ウ ェ アの検討事項」、 および第 6 章 「 メ

モ リ 」 の内容を理解し てお く 必要があ り ます。 この章で見てい く よ う に、 Zynq UltraScale+ MPSoC デバイ スには非常

に柔軟な リ ソース分離/分割の機能があ り ます。 これらの機能を使用する上での指針と し て、 まずはデザイ ン内で独

立し た形で共存する複数の区分を明確に定義する必要があ り ます。 この区分は、 相補的な機能を備えた共存するサ

ブシステム と し て多少な り と も明確に識別でき る もの と し ます。 完全または部分的に互いを分離または保護する必

要があ るかど う かは問いません。

この作業を進めるにあた り 、 まずは次の質問に答えてみて く ださい。

• 第 2 章 「プロセ ッ シング システム」 で説明し た Zynq UltraScale+ MPSoC デバイ スの主要なコ ンポーネン ト の間

でデザイ ンのワーク ロード を主にどのよ う に分割し ますか。 つま り 、 アプ リ ケーシ ョ ン プロセ ッ シング ユニ ッ

ト (APU)、 リ アルタ イ ム プロセ ッ シング ユニ ッ ト (RPU)、 プロ グ ラマブル ロ ジ ッ ク (PL) でそれぞれどのよ う な

ワーク ロード を実行し よ う と考えていますか。

• 先の質問で分割し たワーク ロード を、 明確に識別でき る複数のサブシステムにグループ化でき ますか。 別の言

い方をする と、 Zynq UltraScale+ MPSoC デバイ スのヘテロ ジニアス コ ンピ ューテ ィ ング機能に基づいてデザイ

ン全体を複数のサブシステムに分け られますか。

• Zynq UltraScale+ MPSoC デバイ ス上で異なる実行環境 (すなわちサブシステム) を同時に並行し てホステ ィ ング

する必要があ り 、 なおかつこれら をそれぞれ強固に分離する必要があ り ますか。 た と えば次のよ う な場合です。

° APU 上で複数の実行環境を分離する必要があ り ますか。

° APU 上での処理 と RPU 上での処理を分離する必要があ り ますか。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 118UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 119: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 7 章: リ ソースの分離と分割

• 特定のペ リ フ ェ ラルや メ モ リ へのア ク セス を、 それらが属するサブシステムに基づいて制限または制御する必

要があ り ますか。 た と えば次のよ う な場合です。

° APU のみが DisplayPort にア ク セスでき る よ う にし たいですか。

° RPU のみが CAN (Controller Area Network) バスにア ク セスでき る よ う にし たいですか。

° RAM の一部を RPU のみがア ク セスでき る領域にし たいですか。

リ ソースの分離と分割に関する設計手法

Zynq UltraScale+ MPSoC デバイ スの リ ソース分離/分割機能およびその 適な使用方法を理解するには、 い く つかの

システム コ ンポーネン ト について見てい く 必要があ り ます。 これまでの章と同様に、 詳細はこ の後のセ ク シ ョ ンに

譲る と し て、 このセ ク シ ョ ンでは詳細を理解する上で必要 と なる重要な概念のみを紹介し ます。 そ う する こ と で、

前のセ ク シ ョ ンの質問の答えがよ く わから なかった方も、 デザイ ンを独立し た複数のサブシステムに分割し て保護

でき るかど う か、 そし てその方法について よ り よ く 理解でき る よ う にな り ます。

これまでの章で、 Zynq UltraScale+ MPSoC デバイ スの リ ソース と ブロ ッ ク をい く つかの異なる視点から紹介し てき ま

し た。 次の図は、 リ ソースの分離/分割の視点から Zynq UltraScale+ MPSoC デバイ スのブロ ッ ク を大き く 3 つのカテ

ゴ リ に分類し ています。

図 7‐1: Zynq UltraScale+ MPSoC デバイスのリ ソースおよび相互通信の概略図

X-Ref Target - Figure 7-1

PeripheralsProcessing Blocks& General-Purpose DMA

Memory* GPU support is OS-specific

TCM

DDRCMemoryy

OCM

FPDPeripherals

PLPeripherals

LPDPeripherals

RPU

PL

GPDMA

APU

GPU*

PL/MIG

X18702-032917

注記: これら カテゴ リ と次に示す図は Zynq UltraScale+ MPSoC デバイ スの内部ブロ ッ ク を正確に表現し た ものではな

く 、 このセ ク シ ョ ンで説明する概念を図にし た ものです。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 119UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 120: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 7 章: リ ソースの分離と分割

この図で示し た 3 つのカテゴ リ は次の とお り です。

• プロセ ッ シング ブロ ッ クおよび汎用ダ イ レ ク ト メ モ リ ア ク セス (DMA)

Zynq UltraScale+ MPSoC デバイ スのほ と んどのア ク セス、 転送、 および通信を開始/制御するブロ ッ クはすべて

こ こに属し ます。

• ペ リ フ ェ ラル

すべての電源ド メ イ ンのすべてのペ リ フ ェ ラル、 すなわち低電力ド メ イ ン (LPD) と フル電力ド メ イ ンのペ リ

フ ェ ラル、 および PL に作成し たすべてのペ リ フ ェ ラルがこ こに属し ます。

• メ モ リ

Zynq UltraScale+ MPSoC デバイ ス内に存在する メ モ リ ブロ ッ ク、および Zynq UltraScale+ MPSoC デバイ スによ っ

てア ク セス可能な メ モ リ ブロ ッ クはすべて こ こ に属し ます。

矢印は、 代表的なア ク セスが開始される方向を示し ています。 通常、 各種プロセ ッ シング ブロ ッ クおよび汎用 DMA

はペ リ フ ェ ラルまたは メ モ リ に接続し て所定のワーク ロード を実行し ます。 これに対し、 ペ リ フ ェ ラルは主に I/O の

ために メ モ リ に接続し ます。 メ モ リ バン ク自体が通信を開始する こ と はあ り ません。

図の矢印は、 よ り 厳密に言えば AXI ト ラ フ ィ ッ クの方向を示し ています。 第 2 章 「プロセ ッ シング システム」 で説

明し た よ う に、 Zynq UltraScale+ MPSoC デバイ スの内部イ ン ターコネ ク ト は ARM 社が定義し たい く つかの標準規格

に基づいています。 これらの規格の中心概念 と なるのが、 AXI マス ターおよび AXI ス レーブ と呼ばれるエン ド ポイ

ン ト です。 読み出し /書き込み要求を開始するのが AXI マス ターで、 これらの要求に応答するのが AXI ス レーブで

す。 し たがって、 プロセ ッ シング ブロ ッ クおよび汎用 DMA からペ リ フ ェ ラルへの矢印は、 前者の AXI マス ターか

ら後者の AXI ス レーブに対し て ト ラ フ ィ ッ クが開始される こ と を意味し ています。 通常、 この種のア ク セスはプロ

セ ッ シング ブロ ッ ク がペ リ フ ェ ラルの制御レジス タにア ク セス し た り 、 ペ リ フ ェ ラルに対し て特定の動作を要求し

た り する目的で使用し ます。 第 10 章 「ペ リ フ ェ ラル」 で説明する よ う に、 Zynq UltraScale+ MPSoC デバイ スのほ と

んどのペ リ フ ェ ラルには DMA 対応 AXI マス ターも あ り 、 プロセ ッ シング ブロ ッ ク で適切にプロ グ ラ ムする と これ

らのペ リ フ ェ ラルから メ モ リ にア ク セス し てデータ を送受信でき ます。 これを表し ているのが、 ペ リ フ ェ ラルから

メ モ リ への矢印です。

なお、 プロセ ッ シング ブロ ッ ク のカテゴ リ に示し た GP DMA ブロ ッ ク には、 第 6 章 「 メ モ リ 」 で説明し た低電力ド

メ イ ン (LPD) 汎用 DMA コ ン ト ローラー と フル電力ド メ イ ン (FPD) 汎用 DMA コ ン ト ローラーの両方が含まれます。

どち ら も、AXI ス レーブ ポー ト を介し てそれぞれ LPD ペ リ フ ェ ラルまたは FPD ペ リ フ ェ ラル と し てプロ グ ラ ムでき

ます。 ただし前述の とお り 、 この図は Zynq UltraScale+ MPSoC デバイ スの主要な機能を大まかな概念図と し て示し

た もので、 詳細は省略し ています。 イ ン ターコネ ク ト の詳細図は、 第 2 章 「プロセ ッ シング システム」 を参照し て

く ださい。

Zynq UltraScale+ MPSoC デバイ ス内部では、 上記の 3 つの主要な境界は次に示す 3 つの相補的な保護 メ カニズムに

よ って保護されます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 120UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 121: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 7 章: リ ソースの分離と分割

図 7‐2: Zynq UltraScale+ MPSoC デバイスのリ ソース と保護メ カニズム

X-Ref Target - Figure 7-2

XMPUXMPU

XPPU

SMMU

SMMU

PeripheralsProcessing Blocks& General-Purpose DMA

MemorySM

MU

FPDPeripherals

LPDPeripherals

PLPeripherals

GPDMA XMPU

RPU

PL

GPU*

APU

XPPU

* GPU support is OS-specific

TCMOCM

PL/MIG

DDRCMemory

X18704-032917

システム設計者は、 相補的に機能する システム メ モ リ 管理ユニ ッ ト (SMMU)、 ザイ リ ン ク ス メ モ リ 保護ユニ ッ ト

(XMPU) およびザイ リ ン ク ス ペ リ フ ェ ラル保護ユニ ッ ト (XPPU) を利用し て リ ソース を分離および分割でき ます。

次に、 それぞれについて説明し ます。

• SMMU (詳細は第 2 章 「プロセ ッ シング システム」 参照): DMA 対応デバイ スから仮想ア ド レ ス を参照でき る よ

う にし ます。 これらの仮想ア ド レ スは、 ハイパーバイザー ゲス ト が必要とする仮想物理ア ド レ ス、 または APU

上でネイ テ ィ ブに動作するオペレーテ ィ ング システムが使用する実際の物理ア ド レ スに SMMU が直接マ ッ プし

ます。

• XMPU (詳細は 132 ページの 「ザイ リ ン ク ス メ モ リ 保護ユニ ッ ト 」 参照): ア ク セス要求を開始し た AXI マス ター

の ID などに基づいて メ モ リ および FPD ペ リ フ ェ ラルへのア ク セス をフ ィ ルタ リ ング し ます。

• XPPU (詳細は 134 ページの 「ザイ リ ン ク ス ペ リ フ ェ ラル保護ユニ ッ ト 」 参照): ア ク セス要求を開始し た AXI マ

ス ターの ID などに基づいて LPD ペ リ フ ェ ラルへのア ク セス をフ ィ ルタ リ ング し ます。

上の図に示し た よ う に、 これら 3 つの保護 メ カニズムには何とお り かの組み合わせがあ り 、 プロセ ッ シング ブロ ッ

ク、 ペ リ フ ェ ラルおよび メ モ リ の各境界で使用でき る保護 メ カニズムが異な り ます。 Zynq UltraScale+ MPSoC デバイ

スの各種ブロ ッ ク間のパスで使用される保護 メ カニズムの詳細は、 第 2 章 「プロセ ッ シング システム」 で示し た イ

ン ターコネ ク ト の詳細図を参照し て く ださい。 次の図は、 こ こ での説明に関係する部分のみをア ク セス相関図と し

てま と めた ものです。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 121UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 122: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 7 章: リ ソースの分離と分割

図 7‐3: 分離/分割パスの詳細図

X-Ref Target - Figure 7-3

XMPU XMPU

XP

PU

SMMU

SMMU

PeripheralsProcessing Blocks& General-Purpose DMA

MemoryOCM

TCM

DDRCMemory

MM

SM

MU

FPDPeripherals

LPDPeripherals

PLPeripherals

DDMADGPD XM

PUU

RPURPPURPPUP

PLLP

TrustZ

one

Secure

Non-Secure

Linu

xnuAp

psAp

pP1

P2

P3P4

GPU*

Xen

PPUAP

XPPU

* GPU support is OS-specific

PL/MIG

X18703-032917

この図で、 矢印の色はその色のコ ンポーネン ト からの、 またはその色のコ ンポーネン ト へのア ク セスに使用する こ

と を表し ています。 RPU を例に説明し ます。 RPU を表す円にはピン ク色の部分があ り ます。 これは、 ピン ク色の矢

印を使用し て XPPU 経由で LPD ペ リ フ ェ ラルにア ク セスする こ と を意味し ています。 また、 RPU を表す円には黄色

の部分も あ り ます。 これは、 黄色の矢印を使用し て黄色の TCM にア ク セスする こ と を意味し ています。 こ のア ク セ

スは、 SMMU、 XMPU、 XPPU のいずれも経由し ません。 第 6 章 「 メ モ リ 」 で説明し た よ う に、 TCM にはグ ローバ

ル メ モ リ マ ッ プを使用し てシステム全体から ア ク セスでき ますが、 TCM は RPU 内部に存在し ている ため、 RPU か

らのア ク セス方法のみが異な り ます。 これに対し、 APU から TCM へのア ク セスには APU から LPD ペ リ フ ェ ラルへ

のア ク セス同様、 XPPU を経由する ピン ク色の矢印を使用し ます。

こ こ ではすべての矢印について詳細な説明は省き ますが、 この図からわかる重要な点がい く つかあ り ます。 なお、

前述の とお り 矢印は AXI マス ターから AXI ス レーブへの AXI ト ラ フ ィ ッ ク の方向を示し ています。

第一に、 ほ と んどの矢印が XMPU または XPPU を経由し ている こ と に注目し て く ださい。 唯一の例外は、 同じサブ

システムに属する内部コ ンポーネン ト 間のア ク セス (RPU 内部に存在する TCM、 PL の内部に存在する PL ペ リ フ ェ

ラル) です。 これらの例外を除き、 同じ電源ド メ イ ンに属する場合も含め、 すべてのア ク セスに XMPU および XPPU

で設定し た規則が適用されます。 た と えば APU と FPD ペ リ フ ェ ラルはすべてフル電力ド メ イ ン (FPD) に属し ます

が、 これら 2 つの間のア ク セスはすべて XMPU を経由し ます。 同様に、 RPU と LPD ペ リ フ ェ ラルはどち ら も低電力

ド メ イ ン (LPD) に属し ますが、 これらの間のア ク セスはすべて XPPU を経由し ます。 つま り 、 XMPU と XPPU を適

切に設定し ておけば、 システム内のすべてのア ク セス を常時制御でき る こ と にな り ます。

第二に、 SMMU の役割に注目し て く ださい。 汎用 DMA を使用する場合、 またはペ リ フ ェ ラルから メ モ リ にア ク セ

スする場合は必ず SMMU を経由し ます。 前述の とお り 、 そし て第 2 章 「プロセ ッ シング システム」 でも説明し た よ

う に、 SMMU をネイ テ ィ ブ (すなわち仮想化し ていない) OS で使用し た場合、 DMA 対応デバイ スに対する 2 段階の

ア ド レ ス変換を実行し ます。 また、 I/O およびハイパーバイザーで使用する ア ド レ ス仮想化もサポー ト し ます。 仮想

化し ていない環境で SMMU を使用する と、 デバイ スは自分自身に割 り 当て られたア ド レ スにしかア ク セスでき ませ

ん。 仮想化環境では、 APU 上で動作するゲス ト OS が使用する メ モ リ 空間にデバイ ス ア ド レ ス を正し く マ ッ プする

こ と も SMMU の役割と な り ます。 つま り 、 ゲス ト OS はペ リ フ ェ ラル DMA に実際の物理ア ド レ ス を明示的にプロ

グ ラ ムするわけではあ り ません。 ペ リ フ ェ ラルから メ モ リ へのア ク セスは途中で必ず SMMU を経由するため、 ゲス

ト OS が提供する ア ド レ ス とペ リ フ ェ ラルが使用する ア ド レ スが正し く 変換されます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 122UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 123: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 7 章: リ ソースの分離と分割

第三に、 APU にはこれまで述べた以外にも、 APU 上で動作する ソ フ ト ウ ェ アを分離および分割する ための メ カニズ

ムが複数存在する こ と に注目し て く ださい。 も下層レベルでは、 TrustZone によ って APU をセキ ュ ア実行環境 と非

セキ ュ ア実行環境に分割でき ます。 後述する よ う に、 セキ ュ ア/非セキ ュ ア ステー ト は AXI ト ラ ンザク シ ョ ンで伝達

され、 XMPU/XPPU はこ の情報に基づいて要求を適切にフ ィ ルタ リ ング し ます。 また、 第 3 章 「システム ソ フ ト

ウ ェアの検討事項」 で説明し た よ う に Xen などのハイパーバイザーを使用し て APU の A53 コ アを複数のゲス ト に分

割でき ます。 あ るいは、 第 3 章で説明し た よ う に Linux などの OS を使用し て A53 コ アを対称型マルチプロセ ッ シン

グ (SMP) モード で直接管理する こ と もでき ます。 ハイパーバイザーを使用するかど う かにかかわらず、 ハイ レベル

OS は通常 A53 の メ モ リ 管理ユニ ッ ト (MMU) を使用し てプロセス ど う し、 および OS と ユーザー空間プロセス を分

離し て保護し ます。

後に、 PL および PL ペ リ フ ェ ラルに対する規則はあ る程度設定可能であ る こ と に注目し て く ださい。 た と えば PL

から メ モ リ へのア ク セスで SMMU を経由するかど う かは、 PL 側で使用する AXI ポー ト によ って異な り ます。 また、

デフ ォル ト では PL 内のペ リ フ ェ ラルに PL 外部のコ ンポーネン ト からはア ク セスでき ません。 こ のよ う に PL IP は

ユーザーによ る設定が必要で、 その際に必要に応じ て AXI フ ィ ルタ リ ング規則を IP に追加でき ます。 こ の例につい

ては後述し ます。

前述の とお り 、 これらの メ カニズムを組み合わせる こ と によ ってデザイ ンを複数の独立し たサブシステムに分割で

き ます。 次の図は、 このよ う に分割し たデザイ ンの例を示し た ものです。

図 7‐4: サブシステムに分離および分割し た例

X-Ref Target - Figure 7-4

Subsystem A

APU GPU

Processing

Peripherals

Low-PowerDomain

Full-PowerDomain

USB

eMMC

PCIe

DisplayPort

Ether-net

Subsystem B

RPU

Processing

Peripherals

Low-PowerDomain

Full-PowerDomain

OCM

CAN

SATA

GPIO

Subsystem C

PLPeripheralsPL

X18705-032117

この図の例では、 Zynq UltraScale+ MPSoC デバイ スの保護 メ カニズムを使用し てデザイ ン全体を 3 つの独立し たサブ

システムに分割し ています。 各サブシステムにはそれぞれ異なるプロセ ッ シング ブロ ッ ク が属し てお り 、 これらは

そのブロ ッ ク内の主要なプロセ ッ シング エージェ ン ト と し て動作し、 そのサブシステムのペ リ フ ェ ラルにア ク セス

し ます。 こ こ で、 サブシステム A と サブシステム B のどち らの場合も、 それぞれ異なる電源ド メ イ ンに属するプロ

セ ッ シング ブロ ッ ク とペ リ フ ェ ラルが存在する こ と に注目し て く ださい。 た と えばサブシステム A の APU は FPD

に属し ます。 しかし XPPU を使用する と、 LPD に属するペ リ フ ェ ラル (USB、 eMMC、 イーサネ ッ ト ) に APU から排

他的にア ク セスでき ます。サブシステム B でも、同じ方法で LPD に属する RPU が FPD に属する SATA イ ン ターフ ェ

イ スに排他的にア ク セスでき ます。 し たがって、 第 4 章 「パワー マネージ メ ン ト に関する注意事項」 で説明し た方

法で電源ド メ イ ンを使用し て も、 Zynq UltraScale+ MPSoC デバイ スの リ ソース分離および分割機能には影響し ませ

ん。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 123UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 124: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 7 章: リ ソースの分離と分割

この例では、 サブシステム A のペ リ フ ェ ラルにはサブシステム B から ア ク セスできず、 サブシステム B のペ リ フ ェ

ラルにはサブシステム A から ア ク セスでき ません。 た と えば SATA イ ン ターフ ェ イ スはサブシステム B 専用でサブ

システム A からはア ク セスでき ません。 反対に、 DisplayPort はサブシステム A 専用でサブシステム B からはア ク セ

スでき ません。 このア ク セス制限はイ ン ターコネ ク ト レベルで実行されます。 イ ン ターコネ ク ト のコ ンフ ィ ギ ュ

レーシ ョ ンはブー ト 時に読み出し専用に設定でき ます。 し たがって このアーキテ クチャは、 システム リ ソースへの

不正ア ク セスに対する非常に強力な防御 と な り ます。 た と えば APU 上で動作する ソ フ ト ウ ェアが実行時にこれらの

規則を変更し よ う と し て も、 そのよ う な手段は存在し ません。 実質的に、 Zynq UltraScale+ MPSoC デバイ スの分離/

分割機能はサブシステム A と サブシステム B がそれぞれ物理的に切 り 離されたデバイ スであ るかのよ う に分割する

ためのものです。

同様の保護機能は、 サブシステム A/B と サブシステム C の間にも存在し ます。 ただし、 サブシステム A/B からサブ

システム C を保護する方法はこれまでの説明と はやや異な り ます。 PL の場合、 PL ブロ ッ クへのア ク セスは XMPU

も XPPU も経由し ません。 PL IP は、 PL の AXI ス レーブ ポー ト で受信し た ト ラ フ ィ ッ ク を AXI マス ターの ID に基

づいてフ ィ ルタ リ ングする よ う にコ ンフ ィ ギュ レーシ ョ ンでき ます。 つま り 、 特定の PL AXI ス レーブ ポー ト で受信

し た AXI ト ラ フ ィ ッ ク を要求発行元の AXI ブロ ッ クの ID に基づいて設計者がブロ ッ ク でき ます。 た と えば PL の特

定の AXI ス レーブ ポー ト が APU に対し てのみ応答する よ う に設定でき ます。 この場合、 RPU から その AXI ス レー

ブに対し てア ク セス要求を発行する と拒否されます。 つま り 、 PL の IP をカス タマイ ズする こ と によ り 、 Zynq

UltraScale+ MPSoC デバイ スのほかのコ ンポーネン ト に対し て XMPU や XPPU が提供するの と同程度に厳密な制御を

実装でき ます。

分離/分割の例は先に示し た もの以外にも数多 く 存在し ます。 実際のデザイ ンでこのよ う な分割が必要かど う か、 そ

し て必要な場合はどのよ う な方法で分割するかは、 個々のデザイ ンの要件および仕様によ って決ま り ます。 すべて

の場合に当てはま る、 特に決ま った規則 と い う ものはあ り ません。 1 つだけ挙げる とすれば、 前述の とお り 、 サブシ

ステムの分割を明確にし、 基本的な設計目標を達成するために Zynq UltraScale+ MPSoC デバイ スの機能をどのよ う

に使用すればよいのかを理解する作業に十分な時間をかける必要があ り ます。

も う 1 つ言え るのは、 Zynq UltraScale+ MPSoC デバイ スの リ ソース分離/分割機能をデザイ ンに組み込むと セキ ュ リ

テ ィ の向上に確実に寄与する と い う 点です。 早い段階から これらの機能に対する理解をチーム全体で深めておけば、

必要に応じ て微調整を重ねてい く こ と ができ ます。 これの機能が不要 と判断し た場合でも、 その判断を後から見直

すこ と も でき ます。 ただしセキ ュ リ テ ィ 制約を後付けするのは往々にし てシステムの実装が進むにつれて難し く な

る こ と に注意が必要です。 このため、 デザイ ンの要件にセキ ュ リ テ ィ が含まれる場合、 またはプロ ジェ ク ト の途中

で要件に加わる可能性が予想される場合は、 この章の内容を真剣に吟味する こ と を強 く 推奨し ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 124UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 125: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 7 章: リ ソースの分離と分割

ARM TrustZone

Zynq UltraScale+ MPSoC デバイ スのい く つかの機能では、 ARM TrustZone テ ク ノ ロ ジおよびその基礎概念が重要な役

割を果た し ています。 前述の とお り 、 た と えば XMPU と XPPU には ARM TrustZone で定義し たセキ ュ リ テ ィ ステー

ト に基づいてア ク セス をフ ィ ルタ リ ングする機能があ り ます。 しかし多 く の理由によ り 、 TrustZone は経験豊富な

チームに と って も決し て扱いやすい ト ピ ッ ク ではあ り ません。 それでも、 TrustZone の内容および実際のユーザー デ

ザイ ンで TrustZone が Zynq UltraScale+ MPSoC デバイ スの全体的な機能にどのよ う に組み込まれているかを十分に理

解し てお く 必要があ り ます。 このセ ク シ ョ ンでは TrustZone の概要、 Zynq UltraScale+ MPSoC デバイ スにおける

TrustZone の使用、 および TrustZone を中心 と し たデザイ ンのカ ス タマイ ズ方法について説明し ます。

TrustZone の基礎

TrustZone の動作を理解するには、 まず現在のプロセ ッサが複数の特権をどのよ う に分離し ているのかについて見てい

く 必要があ り ます。 現在のプロセ ッサ設計では、 特権モード と非特権モード の少な く と も 2 つの動作モード が存在す

る ものがほ と んどです。 特権モード は OS が使用し、 非特権モード は通常のアプ リ ケーシ ョ ンが使用し ます。 通常、

プロセ ッサには特権モード でのみ使用可能なオペラ ン ド と レジス タがあ り ます。 このため、 OS にはシステム制御に

関してプロセ ッサの構成を超えた権限が与え られます。 プロセ ッサの MMU でも このよ う な分離が徹底されるため、

非特権モード のアプ リ ケーシ ョ ンから OS への不正なア ク セス を防ぐ こ と ができ ます。

この特権モード と非特権モード と い う 分離方式はさ まざまなプロセ ッ サ アーキテ クチャに見られ、 ソ フ ト ウ ェアの

分野では 「カーネル空間」 と 「ユーザー空間」 と い う 用語で区別される こ と も あ り ます。 これ以外にも、 「OS が リ

ング 0 で動作する」 と い う 表現をする こ と があ り ます。 これは、 複数の特権 「 リ ング」 が存在し、 OS が も内側の

リ ングで動作し ている こ と を意味し ます。 このよ う に用語はさ まざまですが、 いずれにせよ これまでほ と んどのア

プ リ ケーシ ョ ンではこのよ う な概念に基づ く 分離があれば十分でし た。

しかし近年、 ARM アーキテ クチャなどの汎用プロセ ッ サを使用し たアプ リ ケーシ ョ ンにおいて特定のソ フ ト ウ ェア

ワーク ロード をシステム全体から分離する こ と が必要 と なる ケースが増えてお り 、 その処理をアプ リ ケーシ ョ ンで

動作する汎用 OS に任せるのは信用の面で問題があ る こ と が指摘されています。 事実、 近の OS は非常に複雑化が

進んでお り 、 定期的にセキ ュ リ テ ィ パッチが発行される こ と も珍し く あ り ません。 しかし 近のデザイ ンでは、

ユーザー資格情報のセキ ュ リ テ ィ 保護や DRM で符号化された メ デ ィ アの復号化と いったセキ ュ アな機能を同じプロ

セ ッ サ上で汎用 OS と共存させる こ と がますます求められる よ う になっています。

ARM TrustZone テ ク ノ ロ ジは、 プロセ ッ サ上で汎用 OS が動作する特権レベルよ り も さ らに下層にも う 1 つの新しい

特権レベルを定義する こ と によ り 、 こ う し た要求に応え る こ と を目的 と し ています。 TrustZone を導入する と、 ARM

プロセ ッ サ上で動作する OS は 高の特権レベルではな く な り ます。 OS よ り も高い特権を持つソ フ ト ウ ェ ア レベル

が存在し、 重要な処理は OS やアプ リ ケーシ ョ ンのコ ンテキス ト 外でセキ ュ アに実行されます。 TrustZone を使用し

た場合、 これらの処理を含むセキ ュ ア コ ンテキス ト 全体が OS からは透過的に動作し ます。 つま り 、 TrustZone 対応

ARM プロセ ッ サ上で動作する汎用 OS からは、 あたかも TrustZone が存在せず自分自身がプロセ ッ サを完全に制御し

ているかのよ う に見えます。 しかし実際には TrustZone が動作を継続し、 必要に応じ てサービ ス を提供し ます。

OS がプロセ ッ サの特別な機能およびレジス タにア ク セス し、 コ ンフ ィ ギュ レーシ ョ ン メ モ リ の保護 メ カニズムによ

り 自身を通常のアプ リ ケーシ ョ ンから保護するの と同様、 TrustZone で定義される新しい特権レベルも ARM プロ

セ ッ サの特別な機能にア ク セスする こ と によ り 、 分離されたセキ ュ アなコ ンテキス ト を提供し ます。 つま り 、 非セ

キ ュ ア ワール ド (すなわち通常の OS およびアプ リ ケーシ ョ ン) から見たプロセ ッサのステー ト (レジス タ値を含む)

は、 セキ ュ ア ステー ト に移行する際に保存し、 非セキ ュ ア ステー ト に戻る際に復元する必要があ り ます。 また、 非

セキ ュ ア ステー ト を保存し た らプロセ ッサは非セキ ュ アな汎用 OS およびそのアプ リ ケーシ ョ ンから完全に分離し

たセキ ュ ア ス タ ッ ク を実行でき る こ と にな り ます。 こ のセキ ュ ア ス タ ッ クは後者からは見えません。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 125UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 126: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 7 章: リ ソースの分離と分割

セキ ュ ア ソ フ ト ウ ェ ア ス タ ッ ク と通信するため、 TrustZone 上で動作する汎用 OS には通常、 割 り 込みを使用し てセ

キ ュ ア コ ンテキス ト を呼び出すための 1 つまたは複数の ド ラ イバーがあ り ます。 アプ リ ケーシ ョ ンは、 通常のデバ

イ ス と通信するの と同じ方法でこれらの ド ラ イバーを使用し ます。 OS 自身は、 ド ラ イバーからの要求を受け取る と

通常どお り プロセ ッ サに用意されている機能を使用し て割 り 込みを ト リ ガーし ます。 ただし唯一の違い と し て、 こ

れらの割 り 込みは通常な ら OS の割 り 込みサービ ス ルーチンによ って捕捉されますが、 この場合は TrustZone セキ ュ

リ テ ィ コ ンテキス ト によ って捕捉されます。 そし てセキ ュ ア コ ンテキス ト で動作する ソ フ ト ウ ェ アのプロ グ ラ ム内

容に従って、 セキ ュ ア コ ンテキス ト によ って割 り 込みが処理されます。

例外レベル

APU の ARMv8 A53 に実装される TrustZone は、 こ こ まで説明し た基本概念に基づき、 4 つの特権レベルを定義し て

います。 これらは、 次の図に示すよ う にそれぞれが個別の例外レベル (EL) と呼ばれます。

図 7‐5: TrustZone の例外レベル

X-Ref Target - Figure 7-5

Non-secure State

App1

AArch64 orAArch32(1)

App2

AArch64 orAArch32(1)

App1

AArch64 orAArch32(1)

App2

AArch64 orAArch32(1)

Supervisor (Guest OS1)

AArch64 or AArch32(2)

Supervisor (Guest OS2)

AArch64 or AArch32(2)

Hypervisor Mode

AArch64 or AArch32

EL0

EL1

EL2

SVC

HVC

SMC

Secure Monitor Mode

Supervisor (Secure OS)

AArch64 or AArch32

Trusted App1

AArch64 orAArch32(1)

Trusted App2

AArch64 orAArch32(1)

EL3

Secure State

X15288-032917

まずこの図からわかるのは、 TrustZone では分離されたセキ ュ ア ス タ ッ ク が A53 上で動作する メ イ ンの非セキ ュ ア

ス タ ッ ク と並行し て存在でき る と い う 点です。 この例では、 非セキ ュ ア サイ ド の EL2 で Xen をハイパーバイザー と

し て動作させ、 Xen でホステ ィ ングする Linux ゲス ト OS イ ン ス タ ン ス を EL1 で動作させ、 それぞれのゲス ト OS イ

ン ス タ ン スが EL0 でアプ リ ケーシ ョ ンを実行し ています。 しかし EL3 に入る と上の図で 「Secure Monitor Mode」 と

示し た ソ フ ト ウ ェ アが動作し てお り 、 分離し てセキ ュ ア ス タ ッ ク で実行されます。 分離されたセキ ュ ア ス タ ッ クの

EL1 ではセキ ュ ア OS が動作し、 EL0 でセキ ュ ア アプ リ ケーシ ョ ンが動作し ています。

セキ ュ ア サイ ド内にあ る これらのソ フ ト ウ ェ ア レ イヤーも、 非セキ ュ ア サイ ド のソ フ ト ウ ェ ア レ イヤー と ま った

く 同じ方法で互いに保護されます。 つま り 、 非セキ ュ ア コ ンテキス ト で動作する通常の Linux アプ リ ケーシ ョ ンが

互いに保護され、 EL1 でホステ ィ ング される Linux カーネル リ ソースには直接ア ク セスできないの と同様、 EL0 で

動作するセキ ュ ア アプ リ ケーシ ョ ンは互いに保護され、 EL1 の OS リ ソースには直接ア ク セスでき ません。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 126UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 127: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 7 章: リ ソースの分離と分割

セキュ リ テ ィ  プロ フ ァ イルと ト ラ ンザクシ ョ ン  タグ

APU がセキ ュ ア ステー ト と非セキ ュ ア ステー ト に分割されるのに加え、 Zynq UltraScale+ MPSoC デバイ スおよび

AXI イ ン ターコネ ク ト 上のコ ンフ ィ ギ ュ レーシ ョ ン レジス タ も APU の TrustZone と同様にセキ ュ ア、 非セキ ュ ア、

両方、 またはコ ンフ ィ ギュ レーシ ョ ン依存 (セキ ュ アまたは非セキ ュ アのいずれか) に設定でき ます。 イ ン ターコネ

ク ト 上のすべての AXI メ モ リ ト ラ ンザク シ ョ ンはセキ ュ アまたは非セキ ュ アのいずれかにタ グ付け されるため、 こ

れは非常に重要な点です。 このステー ト は ト ラ ンザク シ ョ ンの発行元がセキ ュ アか非セキ ュ アかを反映し てお り 、

AXI ス レーブおよび前述の とお り XMPU と XPPU はこのステー ト を使用し てステー ト の一致し ない ト ラ ンザク シ ョ

ンをフ ィ ルタ リ ング し ます。

い く つかの重要なシステム コ ンポーネン ト はセキ ュ ア AXI ス レーブです。 これには、 プラ ッ ト フ ォーム管理ユニ ッ

ト (PMU)、 コ ンフ ィ ギ ュ レーシ ョ ン セキ ュ リ テ ィ ユニ ッ ト (CSU)、 およびシステム レベル制御レジス タ (SLCR) が

該当し ます。 し たがって、 これら コ ンポーネン ト と の通信を開始でき るのはセキ ュ ア AXI マス ターのみです。 同様

に、 一部のシステム コ ンポーネン ト はセキ ュ ア AXI マス ターです。 これには PMU と CSU が該当し ます。 し たがっ

て、 PMU と CSU の間ではいつでも セキ ュ ア AXI ト ラ ンザク シ ョ ンを開始でき ます。

また、 セキ ュ ア コ ンテキス ト で動作する A53 によ って開始された APU メ モ リ ト ラ ンザク シ ョ ンは AXI バス上では

すべてセキ ュ ア と し てタ グ付け されます。 重要なシステム動作の中には、 APU で動作するセキ ュ ア コード でしか実

行でき ないものがあ るため、 このこ と にも注意が必要です。 し たがって、 PMU または CSU と はセキ ュ ア コ ンテキ

ス ト 上で動作する A53 からは通信でき ますが、 非セキ ュ ア コ ンテキス ト 上で動作する A53 からは通信でき ません。

原則 と し てセキ ュ ア マス ターは非セキ ュ ア ス レーブにア ク セスでき ますが、 XMPU および XPPU の設定によ ってセ

キ ュ ア マス ターから非セキ ュ ア ス レーブへのア ク セス を禁止でき ます。

TrustZone プロ フ ァ イルの詳細は、『Zynq UltraScale+ MPSoC テ ク ニカル リ フ ァ レ ン ス マニュ アル』 (UG1085) [参照 7]

の表 16-10 を参照し て く ださい。

ARM ト ラステ ッ ド  フ ァームウ ェ ア

ザイ リ ン ク ス FSBL は APU を常にセキ ュ ア モード でブー ト し ます。 また、 上の図で示し たセキ ュ ア モニターと し て

ARM ト ラ ステ ッ ド フ ァーム ウ ェ アを EL3 で実行する よ う にも設定でき ます。 第 3 章 「システム ソ フ ト ウ ェアの検

討事項」 で概要を説明し た よ う に、 ARM ト ラ ステ ッ ド フ ァーム ウ ェ ア (ATF) はブー ト 時の ト ラ ス ト チェーンの一部

を構成し ます。

ATF の役割と し て特に重要なのが、 セキ ュ ア コ ンテキス ト と の切 り 替え時に非セキ ュ ア コ ンテキス ト を保存および

復元する こ と です。 また、 ATF はパワー マネージ メ ン ト にも一部関与し ます。 これは、 パワー マネージ メ ン ト の機

能を担 う PMU はセキ ュ ア AXI ス レーブであ り 、 ハイパーバイザーまたは APU 上で動作する非セキ ュ ア OS が発行

し た コマン ド を受け取る こ と ができ ないためです。 このため、 Linux などの非セキ ュ ア OS によ るパワー マネージ メ

ン ト 要求は ATF をプロ キシ と し て経由し て PMU に渡されます。

ATF には A53 の内部プロセ ッ サ ステー ト を維持する と同時に、 APU と主要なシステム機能間の仲介役と し ての働

き、 および基本的なシステム セキ ュ リ テ ィ を確保する役割があ る ため、 ほ と んどのデザイ ンで ATF を使用する必要

があ る と考え られます。 特に、 第 3 章 「システム ソ フ ト ウ ェアの検討事項」 で説明し た よ う に Linux を動作させる

場合は ATF が必要です。

注記: 下層に ATF を使用し ないで OS を実行する構成をザイ リ ン ク スは一切サポー ト し ていません。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 127UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 128: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 7 章: リ ソースの分離と分割

TEE (Trusted Execution Environment)

ATF は A53 を動作させる上で重要な役割を果た し ますが、 ATF 自体にはセキ ュ ア モード の EL0 (上の図の右上部分)

で動作する カ ス タ ム セキ ュ ア アプ リ ケーシ ョ ンのホステ ィ ングに必要な機能および API はあ り ません。 通常、 こ の

役割を果たすのは 「スーパーバイザー (セキ ュ ア OS)」 と呼ばれる コ ンポーネン ト で、 ARM 社の資料では TEE

(Trusted Execution Environment) と呼ばれています。

TEE はザイ リ ン ク スが提供する システム ソ フ ト ウ ェ ア ス タ ッ ク には含まれませんが、 重要なコ ンポーネン ト のため

こ こ で少し説明し ます。 TEE は ATF からは独立し た ソ フ ト ウ ェ ア コ ンポーネン ト で、 ATF に関し ては ARM 社から

オープン ソースの リ フ ァ レ ン ス イ ンプ リ メ ンテーシ ョ ンが提供されていますが、 TEE の提供はサード パーテ ィ パー

ト ナーに任されています。 このため市場にはい く つかの TEE があ り 、 ユーザーは TEE が必要かど う か、 そし て必要

な ら どの TEE を使用するのかを判断する必要があ り ます。 Zynq UltraScale+ MPSoC デバイ ス をサポー ト し たオープ

ン ソース TEE と し ては、 少な く と も op-tee.org で提供されている Open Portable Trusted Execution Environment

(OP-TEE) が 1 つ存在し ます。

どの TEE も セキ ュ ア アプ リ ケーシ ョ ンを作成するための API をそれぞれ独自に定義し てお り 、 非セキ ュ ア OS およ

びアプ リ ケーシ ョ ンが必要な非セキ ュ ア/セキ ュ ア コ ンテキス ト ス イ ッチを介し て TEE と通信する ための手段と API

も それぞれ異なる ものを提供し ています。 TEE を選択する際は、 プロ ジェ ク ト に必要な API および メ カニズムが提

供されているかど う かを検討する必要があ り ます。

機能のま とめ

こ こ まで、 TrustZone の基礎およびその中心的な機能と主なサポー ト ソ フ ト ウ ェアについて説明し てき ま し た。 これ

で、 次に示す主要な機能の意義を容易に理解でき る よ う になったはずです。

• PMU、 CSU、 SCLR などの重要なデバイ スは常にセキ ュ アであ り 、 セキ ュ リ テ ィ システム自体に対する不正ア

ク セスおよび改ざんを防ぎます。

• デバイ ス をセキ ュ アまたは非セキ ュ アにプロ グ ラ ムでき ます。

• オンチッ プ メ モ リ や DDR (Double Data Rate) などの メ モ リ は領域ご と にセキ ュ アまたは非セキ ュ アにプロ グ ラ ム

でき ます。

• APU は常にセキ ュ ア モード でブー ト し ます。

• RPU は TrustZone テ ク ノ ロ ジをサポー ト し ませんが、 各 RPU から AXI バスへ ト ラ ンザク シ ョ ンをセキ ュ ア マス

ター と し て、 または非セキ ュ ア マス ターと し て送信するかを SCLR で設定でき ます。

詳細情報

TrustZone の詳細は、 ARM 社のテ ク ニカル リ フ ァ レ ン ス マニュ アルを参照し て く ださい。 また、 Zynq UltraScale+

MPSoC デバイ スにおける TrustZone の使用および設定の詳細は、 『Zynq UltraScale+ MPSoC テ ク ニカル リ フ ァ レ ン ス

マニュ アル』 (UG1085) [参照 7] のこ のセ ク シ ョ ンを参照し て く ださい。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 128UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 129: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 7 章: リ ソースの分離と分割

システム メ モ リ管理ユニ ッ ト

システム メ モ リ 管理ユニ ッ ト (SMMU) は APU コ アの MMU を補完する もので、 任意のコ ンポーネン ト (すなわち

AXI マス ター ) が APU 上で動作する ソ フ ト ウ ェ アのプロ グ ラ ムに従って生成し た メ モ リ ア ク セスが、 APU 上で使用

されるマ ッ ピング と の間でコ ヒ ーレ ンシ (一貫性) を維持でき る よ う にし ます。 Zynq UltraScale+ MPSoC デバイ ス内で

は、 確実に分離が行われる よ う に SMMU を使用し てすべての DMA ア ク セスが適切に変換されます。

これには、 次のものからの DMA ア ク セスが該当し ます。

• LPD および FPD ペ リ フ ェ ラル

• ソ フ ト ウ ェ アで設定可能な DMA チャネル (すなわち汎用 DMA)

• プロ グ ラ マブル ロ ジ ッ ク (PL) 内の DMA 対応カス タ ム IP

し たがって、 SMMU は正し く プロ グ ラ ム されていないデバイ ス、 または悪意のあ るデバイ スによ る システム メ モ リ

の破損やシステム障害から システムを保護するのに役立ちます。

SMMU の主要なコ ンポーネン ト は次の とお り です。

• 変換バッ フ ァー ユニ ッ ト (TBU): ページ テーブルをキ ャ ッ シュする変換ルッ ク アサイ ド バッ フ ァー (TLB) が含

まれます。 SMMU は接続されたマス ターご と に TBU を実装し ます。 これによ り 、 共通 メ モ リ にア ク セス し よ う

とする複数のデバイ ス を仮想環境で隔離でき ます。

• 変換制御ユニ ッ ト (TCU): ア ド レ ス変換を制御および管理し ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 129UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 130: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 7 章: リ ソースの分離と分割

次の図に、 イ ン ターコネ ク ト における SMMU コ ンポーネン ト の位置を示し ます。

図 7‐6: イ ン ターコネク ト における  SMMU コ ンポーネン ト の位置

X-Ref Target - Figure 7-6

ネイテ ィ ブ環境におけるア ド レス変換

仮想化し ていないネイ テ ィ ブなシステムでは、 SMMU を使用し てペ リ フ ェ ラルに対する ア ド レ ス変換を実行でき ま

す。 この変換によ り 、 DMA 対応ペ リ フ ェ ラルは事前に割 り 当てた物理空間のみに制限されるため、 結果的にデバイ

スが分離され DMA 攻撃を防ぐ こ と ができ ます。 こ のよ う にし て メ モ リ を分離し ない と、 ペ リ フ ェ ラルによ ってシス

テム メ モ リ が破壊される可能性があ り ます。 次の図に示すよ う に、 ネイ テ ィ ブ環境で SMMU を使用する と、 任意の

デバイ ス (すなわちペ リ フ ェ ラル) の DMA マス ターがどの メ モ リ にア ク セスするかを APU 上でネイ テ ィ ブに動作す

る OS で制御でき ます。

図 7‐7: 仮想化し ていないネイテ ィ ブ環境における  SMMU の使用

X-Ref Target - Figure 7-7

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 130UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 131: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 7 章: リ ソースの分離と分割

なお、 ネイ テ ィ ブ環境では SMMU の使用は必須ではあ り ません。 ただし、 SMMU を使用する と システムのセキ ュ リ

テ ィ は確実に向上し ます。

仮想化環境におけるグローバルな分離

仮想化し たシステムで SMMU を使用する と、 複数のゲス ト OS によ って要求された DMA ア ク セス を互いに分離で

き る利点があ り ます。 これによ り 、 あ る ド メ イ ンで誤動作、 障害、 またはハッ キングが発生し て もほかの ド メ イ ン

への影響を防ぐ こ と ができ、 仮想化環境における システムの完全性が維持されます。 この目的のため、 SMMU は適

切な変換方式 と コ ンテキス ト を設定するための機能を提供し ます (I/O 仮想化)。

仮想化環境では、 SMMU は 2 段階の変換プロセス を必要 とする ア ド レ ス変換方式をサポー ト し ます。 仮想化環境で

はハイパーバイザーが複数のゲス ト OS を管理し、 OS 上で動作する複数のアプ リ ケーシ ョ ンが同じ システム リ ソー

スにア ク セス を試みる可能性があ り ます。 次の図に示すよ う に、 この変換はゲス ト OS から独立し て実行されます。

図 7‐8: 仮想化環境における  SMMU の使用

X-Ref Target - Figure 7-8

その他の情報

SMMU の詳細は、 第 2 章 「プロセ ッ シング システム」 および 『Zynq UltraScale+ MPSoC テ ク ニカル リ フ ァ レ ン ス マ

ニュアル』 (UG1085) [参照 7] のこ のセ ク シ ョ ン と こ のセ ク シ ョ ンを参照し て く ださい。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 131UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 132: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 7 章: リ ソースの分離と分割

ザイ リ ン クス メ モ リ保護ユニ ッ ト

前述の とお り 、 XMPU は メ モ リ を分割し てシステム間の脅威から保護し ます。 具体的には、 特定のマス ターから

FPD ペ リ フ ェ ラルおよび メ モ リ の領域へのア ク セス を制限する こ と によ り 、 主に FPD ペ リ フ ェ ラル と メ モ リ を保護

し ます。 Zynq UltraScale+ MPSoC デバイ ス全体には、 次の図の赤で示し た 6 つの XMPU があ り ます。

図 7‐9: Zynq UltraScale+ MPSoC デバイスの XMPU の位置

X-Ref Target - Figure 7-9

各 XMPU には次の機能があ り ます。

• フ ィ ルタ リ ングの対象 と なる 16 の設定可能な領域

• ア ク セス要求を受け取るためのス レーブ AXI ポー ト

• ポイ ズン出力を備えたマス ター AXI ポー ト

• XMPU をプロ グ ラ ムする ための APB ス レーブ

• レベル セン スの非同期割 り 込み出力

• AXI ク ロ ッ ク (マス ター ポー ト と ス レーブ ポー ト で共通) および APB (Advanced Peripheral Bus) ク ロ ッ ク

要するに、 各 XMPU はそれぞれの構成に基づいてア ク セス を許可するかど う かを判定し ます。 ア ク セスが許可され

ない場合、 後述する 「ポイ ズン」 の使用を含むい く つかの手段が実行されます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 132UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 133: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 7 章: リ ソースの分離と分割

XMPU の領域

各 XMPU には領域 0 から 15 まで合計 16 の領域があ り ます。 各領域は開始ア ド レ ス と終了ア ド レ スで定義し ます。

各領域は個別に有効または無効にでき ます。 無効にし た領域は、 保護チェ ッ クには使用し ません。 領域のア ド レ ス

は 1 MB 境界と 4 KB 境界のいずれかのア ラ イ メ ン ト が可能です。 領域は重複可能です。 その場合、 領域番号が大き

いものが優先されます (つま り 領域 0 の優先度が も低い)。

すべての領域を無効にし た場合、 または要求がどの領域にも一致し ない場合、 XMPU は XMPU 制御レジス タで指定

し たデフ ォル ト の動作に従って要求を許可またはポイ ズン し ます。

保護チ ェ ッ クの動作

XMPU によ って保護されている AXI ス レーブに対し て AXI マス ターからの読み出し または書き込み要求を受信する

たびに、 その要求に対するチェ ッ ク が XMPU の有効な各領域ご と に行われます。 次に示す 2 つの基本チェ ッ ク が実

行されます。

• ト ラ ンザク シ ョ ンのア ド レ スが領域内にあ るかど う か

• 受信し た ト ラ ンザク シ ョ ンのマス ター ID が許可されているかど う か

これらの判定がどち ら も真の場合、 その領域のセキ ュ ア ステー ト および読み出し /書き込みパー ミ ッ シ ョ ンの設定を

チェ ッ ク し ます。

• セキ ュ ア マス ターが必要と設定されている領域にア ク セスでき るのはセキ ュ アな要求のみです。 こ のチェ ッ ク

を通過し た場合、 読み出しパー ミ ッ シ ョ ン と書き込みパー ミ ッ シ ョ ンを個別にチェ ッ ク し、 ト ラ ンザク シ ョ ン

が許可されるかど う かを判定し ます。 セキ ュ ア マス ターの詳細は、 125 ページの 「ARM TrustZone」 を参照し て

く ださい。

• 領域がセキ ュ ア と し て設定されてお り 、 ト ラ ンザク シ ョ ンが非セキ ュ アの場合、 チェ ッ ク でエラーにな り ます。

• 領域が非セキ ュ ア と し て設定されてお り 、 ト ラ ンザク シ ョ ンが非セキ ュ アの場合、 次に読み出しパー ミ ッ シ ョ

ン と書き込みパー ミ ッ シ ョ ンを個別にチェ ッ ク し、 ト ラ ンザク シ ョ ンが許可されるかど う かを判定し ます。

XMPU のエラー処理

前述の とお り 、 読み出しであれ書き込みであれ XMPU を経由する AXI ト ラ ンザク シ ョ ンがエラーになるのは、 パー

ミ ッ シ ョ ン違反 と セキ ュ リ テ ィ 違反のいずれかが理由です。 これらのエラーが発生する と、 XMPU は要求を無効化 (ポイ ズン) し、 チェ ッ クがエラーになった 初の ト ラ ンザク シ ョ ンのア ド レ ス と マス ター ID を記録し て違反フ ラ グ

をセ ッ ト し ます。 また、 オプシ ョ ンで割 り 込みも生成でき ます。 セキ ュ リ テ ィ 違反の場合は、 そのエラーがセキ ュ

リ テ ィ 違反であ る こ と を示すロ グ も記録されます。

要求に対するポイ ズン処理の方法には次の 2 つがあ り ます。

1. 要求のポイズン属性をセ ッ ト する と、 読み出しにはすべて 0 のデータ を返し、 書き込みは無視する よ う に AXI ス

レーブに通知でき ます。 ポイズン属性をサポー ト しているのは DDR メ モ リ コ ン ト ローラーと OCM のみです。

2. 受信し た読み出し要求を、 事前にプロ グ ラ ム し たポイ ズン ア ド レ スに XMPU が変更し ます。 ポイ ズン ア ド レ ス

にあ る内容は基本的に 「ハニーポ ッ ト 」 と呼ばれる もので、 要求元のマス ターに送信する偽データです。 この

ポイ ズン処理は、 無効な要求の宛先であ る ス レーブ側に特別なサポー ト は必要あ り ません。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 133UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 134: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 7 章: リ ソースの分離と分割

コ ン フ ィ ギュ レーシ ョ ン

各 XMPU には、 専用のコ ンフ ィ ギ ュ レーシ ョ ン レジス タ セ ッ ト があ り ます。 XMPU のレジス タで特に重要なのが

LOCK レジス タです。 これは読み出し /書き込み、 デフ ォル ト 、 読み出し専用のいずれかに設定でき ます。 このレジ

ス タ をいったん設定する と、 システム全体を リ セ ッ ト する まで XMPU の設定は変更でき ません。 し たがって、 個々

のデザイ ンの必要に応じ て XMPU を構成し た ら、 その設定は固定されます。

XMPU のコ ンフ ィ ギュ レーシ ョ ン方法には次の 2 つがあ り ます。

1. Vivado® Design Suite の Processor Configuration Wizard (PCW) を使用して第 1 段階ブー ト ローダー (FSBL) を生成する。

2. 実行時に、 セキ ュ ア AXI マス ターを使用する。

いずれの場合も、 LOCK レジス タが設定済みの場合、 次の リ ブー ト まで設定は変わ り ません。

常に正しい設定でシステムのセキ ュ リ テ ィ を確保するには PCW を使用し、 ロ ッ ク モード のブー ト 時に FSBL 経由で

XMPU を構成する こ と を推奨し ます。 2. の方法で実行時に構成する場合、 XMPU の設定を誤る と リ ソース を利用で

き な く なるため注意が必要です。

各領域が各 XMPU の構成に使用する領域と権限は、 デザイ ンによ って異な り ます。 118 ページの 「 リ ソース分離/分

割の要件を定義する」 で説明し た よ う に、 Zynq UltraScale+ MPSoC デバイ スの機能を使用し てデザイ ンをどのよ う に

分割するかは、 個々のデザイ ンの機能 と要件によ り ます。

XMPU の詳細は、 『Zynq UltraScale+ MPSoC テ ク ニカル リ フ ァ レン ス マニュ アル』 (UG1085) [参照 7] のこ のセ ク シ ョ

ンを参照し て く ださい。

ザイ リ ン クス ペ リ フ ェ ラル保護ユニ ッ ト

ザイ リ ン ク ス ペ リ フ ェ ラル保護ユニ ッ ト (XPPU) は LPD ペ リ フ ェ ラルを分離し、 プロセ ッ サ間割 り 込み (IPI) を保護

し ます。 XMPU 同様、 XPPU も システム間の脅威を防ぎます。 XMPU に比べ XPPU の方がア ド レ ス一致の精度が細

か く 、 ア ド レ ス アパーチャの数も多 く 、 ペ リ フ ェ ラル、 IPI、 および Quad-SPI フ ラ ッ シュ メ モ リ の要求に応えます。

また、 XMPU と は異な り XPPU はシステム全体で 1 つしかあ り ません。

XPPU の概要

XPPU には次の機能があ り ます。

• 特定のア ド レ ス アパーチャに対し てマス ター単位でのア ク セス制御

• ペ リ フ ェ ラル単位または メ ッ セージ バッ フ ァー単位でのア ク セス制御

• 同時に 大 20 個のマス ターをサポー ト

• 大 128 x 32B アパーチャ、 256 x 64 KB アパーチャ、 16 x 1 MB アパーチャ、 および 1 x 512 MB アパーチャ をサ

ポー ト

• 64 KB および 1 MB のペ リ フ ェ ラル アパーチャ、 および 32B の メ ッ セージ アパーチャ をサポー ト

• リ ニア Quad-SPI フ ラ ッ シ ュ メ モ リ のパー ミ ッ シ ョ ン チェ ッ ク用に 512 MB アパーチャ を 1 つサポー ト

• 禁止された ト ラ ンザク シ ョ ンに対するエラー処理 (オプシ ョ ンで割 り 込み生成も可能)

XMPU 同様、 XPPU も AXI マス ターと AXI ス レーブの間に位置し、 AXI 読み出しおよび AXI 書き込み ト ラ ンザク

シ ョ ンに対し て メ モ リ ア ク セス制御を実行し ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 134UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 135: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 7 章: リ ソースの分離と分割

XPPU は次の図の青で示し た場所にあ り ます。

図 7‐10: Zynq UltraScale+ MPSoC デバイスの XPPU の位置

X-Ref Target - Figure 7-10

XPPU は次に示す 2 つのデータ構造でア ク セス を制御し ます。

• マス ター ID リ ス ト :

この リ ス ト の一部はユーザーがプロ グ ラ ムでき ます。 この リ ス ト で、 ペ リ フ ェ ラルへのア ク セスが許可される

マス ターを指定し ます。 基本的に、 この リ ス ト は潜在的なマス ターのプールを定義し た ものです。 初の 9 個

のマス ターは定義が決ま っています。 残 り の 11 個はプロ グ ラ マブルで、 XPPU を有効にする前に設定し てお く

必要があ り ます。

• アパーチャ パー ミ ッ シ ョ ン リ ス ト :

ア ク セス可能なア ド レ ス アパーチャ セ ッ ト を定義し、 各アパーチャにア ク セス可能なマス ターを指定し ます。

前述の とお り 、 XPPU は 大 128 x 32B アパーチャ、 256 x 64 KB アパーチャ、 16 x 1 MB アパーチャ、 および 1 x 512 MB アパーチャ (ス レーブ) をサポー ト し ます。 ソ フ ト ウ ェ アでセ ッ ト ア ッ プし たパー ミ ッ シ ョ ン設定は、

RAM に格納し ます。 こ の RAM はシステム ア ド レ ス マ ッ プにあ り 、 通常のソ フ ト ウ ェア プロ グ ラ マブル レジ

ス タ と同じ よ う にア ク セスでき ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 135UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 136: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 7 章: リ ソースの分離と分割

XPPU の動作

XPPU は細かなア ク セス制御が可能な 1x1 AXI ス イ ッチ と見なすこ と ができ ます。 すべての読み出しおよび書き込み

ト ラ ンザク シ ョ ンについて、 XPPU はその ト ラ ンザク シ ョ ンが許可されるかど う かを判定し ます。 許可された ト ラ ン

ザク シ ョ ンは、 通常の処理を実行し ます。 許可されない ト ラ ンザク シ ョ ンは、 XMPU の場合と同様に無効化 (ポ イ ズ

ン) されます。

AXI マス ターが XPPU を経由し て AXI ス レーブにア ク セスするには、 次の 2 つの条件を満たす必要があ り ます。

• AXI マス ターの ID がマス ター ID リ ス ト に存在する (こ こ では m 番目のエン ト リ とする )

• アパーチャ パー ミ ッ シ ョ ン リ ス ト の該当する AXI ス レーブのエン ト リ で、 PERMISSION フ ィ ール ド の対応す

る ビ ッ ト がセ ッ ト されている (すなわち PERM[m] == 1)

これらは必要条件です。 これ以外にも、 後述するい く つかのチェ ッ ク項目があ り ます。

次に、 XPPU の動作をブロ ッ ク図にま と めます。

図 7‐11: XPPU の動作

X-Ref Target - Figure 7-11

APBInterface

AXIARADDR

ARID ARADDR

AXIAWADDR

AWID

AWADDR

APB

RegisterFile

Permission RAM

Address Decode

ADDR

IDPermission

CheckMatch

Data

Aperture Info

poison

poison

ID Lookup

X15344-091616

AXI 読み出し ト ラ ンザク シ ョ ンはこ の図の上部で受信し、 AXI 書き込み ト ラ ンザク シ ョ ンは下部で受信し ます。

これらの ト ラ ンザク シ ョ ンにはマス ター ID、 パー ミ ッ シ ョ ンなどが埋め込まれてお り 、 XPPU はこれら を使用し て

読み出し /書き込み要求が有効で許可されるかど う かを判定し ます。 APB (Advanced Peripheral Bus) イ ン ターフ ェ イ ス

は、 XPPU を有効にする前に XPPU をプロ グ ラ ムするのに使用し ます。 パー ミ ッ シ ョ ン RAM にはパー ミ ッ シ ョ ン条

件を格納し ます。

XPPU はルッ ク ア ッ プ ベースのペ リ フ ェ ラル保護ユニ ッ ト のため、 どのマス ターがどのペ リ フ ェ ラルに対し て読み

出し または書き込みを試みているのかをテーブル (すなわちマス ター ID と アパーチャ パー ミ ッ シ ョ ン) を使用し て正

確に判定し ます。 テーブルおよびその使用方法の詳細は、 『Zynq UltraScale+ MPSoC テ ク ニカル リ フ ァ レ ン ス マニュ

アル』 (UG1085) [参照 7] を参照し て く ださい。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 136UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 137: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 7 章: リ ソースの分離と分割

XPPU のパー ミ ッ シ ョ ン  チ ェ ッ ク

パー ミ ッ シ ョ ン チェ ッ クは、 読み出し /書き込み ト ラ ンザク シ ョ ンが許可されるかど う かを判定し ます。 基本的に、

このチェ ッ クは一致し たマス ター ID ルッ ク ア ッ プ と アパーチャ パー ミ ッ シ ョ ン リ ス ト からのエン ト リ を取得し て

実行し ます。 受信し た AXI マス ター ID (マス ク適用済みのもの) がマス ター ID リ ス ト に含まれてお り 、 なおかつア

パーチャ パー ミ ッ シ ョ ン リ ス ト に許可されたマス ター と し て登録されている必要があ り ます。 また、 受信し たセ

キ ュ ア ステー ト がアパーチャのセキ ュ ア ステー ト 設定に一致し ている必要も あ り ます。 パ リ テ ィ チェ ッ ク を有効に

し ている場合は、 アパーチャ パー ミ ッ シ ョ ン リ ス ト の選択し たエン ト リ に対し てパ リ テ ィ チェ ッ ク も実施し ます。

これらのチェ ッ ク にすべて合格する と、 その ト ラ ンザク シ ョ ンは許可されます。 それ以外の場合、 次のいずれかの

エラーが発生し ています。

• マス ター ID リ ス ト パ リ テ ィ エラー

• マス ター ID リ ス ト 読み出し専用エラー

• マス ター ID リ ス ト 不在エラー

• アパーチャ パー ミ ッ シ ョ ン リ ス ト パ リ テ ィ エラー

• ト ラ ンザク シ ョ ン TrustZone エラー

• ト ラ ンザク シ ョ ン パー ミ ッ シ ョ ン エラー

XPPU のパー ミ ッ シ ョ ン チェ ッ クおよびエラー処理の詳細は、 『Zynq UltraScale+ MPSoC テ ク ニカル リ フ ァ レ ン ス マ

ニュアル』 (UG1085) [参照 7] を参照し て く ださい。

ト ラ ンザクシ ョ ンへのポイズン処理

前出の XPPU の機能ブロ ッ ク図にも示し た よ う に、 読み出し または書き込み AXI ト ラ ンザク シ ョ ンがチェ ッ ク に合

格し ない場合、 その ト ラ ンザク シ ョ ンはポイ ズン処理されます。 ポイ ズン処理された読み出しはすべて 0 の値を返

し、 ポイ ズン処理された書き込みは無視されます。 システムには、 ポイ ズン処理された ト ラ ンザク シ ョ ンを受け取

る と エラー応答を返すシン ク モジュールがあ り ます。 こ のモジュールには、 オプシ ョ ンで ト ラ ンザク シ ョ ン ア ド レ

スの下位 12 ビ ッ ト を記録する機能も あ り ます。 これによ り 、 データ アボー ト またはプロセ ッサへの割 り 込みが発生

し ます。

XPPU の保護

XPPU 自体は 2 つの方法で保護されます。

• マス ター ID リ ス ト と アパーチャ パー ミ ッ シ ョ ン リ ス ト には、 セキ ュ ア マス ターしか書き込みでき ません。

• マス ター ID リ ス ト と アパーチャ パー ミ ッ シ ョ ン リ ス ト は、 XPPU 自体のコ ンフ ィ ギュ レーシ ョ ン機能を使用し

て さ ら なる書き込みを防ぐ こ と ができ ます。 これは、 マス ター ID リ ス ト と アパーチャ パー ミ ッ シ ョ ン リ ス ト

で該当するエン ト リ を設定し て XPPU へのさ ら なる書き込みを防ぐの と同じ方法によ る保護です。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 137UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 138: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 7 章: リ ソースの分離と分割

コ ン フ ィ ギュ レーシ ョ ン

XMPU の場合と同様、 XPPU の構成方法も 2 とお り あ り ます。

1. Vivado Design Suite の Processor Configuration Wizard (PCW) を使用して第 1 段階ブー ト ローダー (FSBL) を生成する。

2. 実行時に、 セキ ュ ア AXI マス ターを使用する。

XMPU の場合と同様、 常に正しい設定でシステムのセキ ュ リ テ ィ を確保するには、 PCW を使用し てブー ト 時に

FSBL で XPPU を構成し て さ ら なる書き込みから保護する こ と を推奨し ます。 2. の方法で実行時に構成する場合、

XPPU の設定を誤る と リ ソース を利用でき な く なる ため注意が必要です。

XMPU の場合と同様に、 各領域が各 XPPU の構成に使用する領域 と権限は、 デザイ ンによ って異な り ます。

XPPU の詳細は、 『Zynq UltraScale+ MPSoC テ ク ニカル リ フ ァ レン ス マニュ アル』 (UG1085) [参照 7] のこ のセ ク シ ョ

ンを参照し て く ださい。

Xen ハイパーバイザー

Xen ハイパーバイザーの概要および Zynq UltraScale+ MPSoC デバイ スでの使用法については、 第 3 章 「システム ソ

フ ト ウ ェアの検討事項」 で説明し ま し た。 こ こ では、 この章の主題であ る リ ソース分離/分割の観点からハイパーバ

イザーの中でも特に Xen について少し説明し ます。

前述の とお り 、 Xen のよ う なハイパーバイザーを使用する と、 複数の異なるゲス ト OS 間、 またはい く つかのゲス ト

OS とベア メ タル アプ リ ケーシ ョ ンの間で仮想化し た A53 CPU を分割でき ます。 TrustZone のセ ク シ ョ ンで説明し た

よ う に、 Xen は非セキ ュ ア コ ンテキス ト で動作し、 Xen の下層では ATF が動作し ています。 このため、 Xen および

Xen がホステ ィ ングするゲス ト から開始された メ モ リ ア ク セスはすべて非セキ ュ ア AXI ト ラ ンザク シ ョ ン と し て

AXI イ ン ターコネ ク ト に発行されます。 し たがって、 XMPU と XPPU を構成する際には APU のソ フ ト ウ ェ ア アーキ

テ クチャの一部 と し て Xen に適用する ソ フ ト ウ ェ ア分割を考慮する必要があ り ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 138UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 139: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 8 章

セキュ リ テ ィ近ではあ らゆるエンベデッ ド デザイ ンでセキ ュ リ テ ィ の重要性が高ま っています。 Zynq® UltraScale+™ デバイ ス

には、 現在の も高度なセキ ュ リ テ ィ 脅威および課題に対処する ための機能が包括的に用意されています。 この章

では、 Zynq UltraScale+ デバイ スのこれら機能の根底にあ るセキ ュ リ テ ィ 理念 と、 これらの機能を使用し て実際のデ

ザイ ンのセキ ュ リ テ ィ 要件を満たす方法について説明し ます。

セキュ リ テ ィ 要件を定義する

セキ ュ リ テ ィ は非常に幅の広い分野であ り 、 設計者やエンジニアはその重要性を理解し てはいる ものの、 プロ ジェ

ク ト で計画し ているデザイ ンのセキ ュ リ テ ィ を十分に分析し よ う とする と セキ ュ リ テ ィ に関し て相当な知識量が求

められます。 事実、 技術的な脆弱性だけに対処し ていればよいケースは少な く 、 企業と し ての信用や財務への影響、

ミ ッ シ ョ ン ク リ テ ィ カルな安全性、 そし て場合によ っては国家安全保障と いった問題までも分析が必要と な る こ と

があ り ます。

し たがって、 こ こ でい く つかの簡単な質問に答えていただいて個々のデザイ ンのセキ ュ リ テ ィ 評価の指針とするの

は適切ではあ り ません。 チームのセキ ュ リ テ ィ 専門家の協力を得てデザイ ンが直面する脅威モデルの理解を深める

こ と を強 く 推奨し ます。 そ こ では次の事項について考慮し て く ださい。

• 保護し よ う と し ている IP にはどれだけの価値があ り ますか。

• システムをどのよ う な環境にデプロ イ し ますか (無人環境、 入退室の容易な環境、 ゲー ト や守衛/武装警備員に

守られた環境など)。

• どのよ う な攻撃者が想定されますか。 それはどの程度の攻撃能力を持っていますか。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 139UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 140: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 8 章: セキュ リ テ ィ

セキュ リ テ ィ に関する設計手法

前述の とお り 、 セキ ュ リ テ ィ は多岐の分野にわた り ます。 Zynq UltraScale+ デバイ ス を使用し たシステム デザイ ンに

関し て言えば、 図 8-1 に示す 3 つの観点からデザイ ンを検討する こ と を推奨し ます。

図 8‐1: セキュ リ テ ィ の基本的な分野

X-Ref Target - Figure 8-1

• 耐タ ンパー (AT: Anti-Tamper): AT は 「物理セキ ュ リ テ ィ 」 と も呼ばれます。 AT はカス タ ム IP を リ バース エンジ

ニア リ ング、 ク ローニング、 盗難、 改変など、 システムの設計目標に沿わない形での使用から保護し ます。 カ

ス タ ム IP に高い価値があ る場合、 セキ ュ リ テ ィ ス ト ラ テジの中でも AT を特に重視する必要があ り ます。

• 情報保証 (IA: Information Assurance): 処理対象の情報およびデータ を業界標準の暗号化およびフ ォル ト ト レ ラ ン

ト 設計手法によ って保護し ます。

• ト ラ ス ト (サプラ イ チェーン セキ ュ リ テ ィ ): シ リ コ ン、 ソ フ ト ウ ェア、 フ ァーム ウ ェア、 および IP に 「 ト ロ イ

の木馬」 が存在し ないこ と を保証し ます。

図 8-1 から もわかる よ う に、 これら 3 つの分野には重な り 合 う 部分があ り ます。 このため、 セキ ュ リ テ ィ は全体的な

視点に立って解析する必要があ り ます。 セキ ュ リ テ ィ はこのよ う に複数の分野で構成されているだけでな く 、 階層

構造 と し て も捉え る こ と ができ ます。 初は特定の特定の側面にのみ関心が向 く かも しれませんが、 図 8-2 に示す

よ う にセキ ュ リ テ ィ は各階層が積み重なって構成されています。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 140UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 141: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 8 章: セキュ リ テ ィ

図 8‐2: セキュ リ テ ィ のピ ラ ミ ッ ド

X-Ref Target - Figure 8-2

この図から もわかる よ う に、 ベス ト プラ ク テ ィ ス を使用し ているかど う か、 信頼でき るサプラ イヤーを利用し てい

るかど う か と いったサプラ イ チェーンの信頼が、 セキ ュ リ テ ィ アーキテ クチャ全体の土台 と な り ます。 この土台に

よ り 、 デバイ スが意図し た以外の動作をする こ と がな く な り ます。 この階層はザイ リ ン ク スが担当する領域です。

ピ ラ ミ ッ ド の階層を 1 つ上がる と、 物理タ ンパー攻撃 (温度や電圧などの変動や監視を利用し た攻撃、 あ るいは

JTAG などデバイ スの正当な機能を悪用し た攻撃) などの攻撃から シ リ コ ン自体を保護するセキ ュ リ テ ィ 機能があ り

ます。 この階層もザイ リ ン ク スが担当する領域です。

さ らにピ ラ ミ ッ ド の階層を上がる と、 機密性、 認証、 完全性 と いった情報保証 (IA) の分野の原則を適用し てブー ト

およびコ ンフ ィ ギュ レーシ ョ ン プロセス を保護する機能があ り ます。 こ のためのツールはザイ リ ン ク スから提供さ

れますが、 設計者がこれら を正し く 使用する必要があ り ます。

さ らに階層を上がる と、 ハイパーバイザーによ る保護、 TrustZone、 モニターなど ス タ ッ ク の上位に位置する ソ フ ト

ウ ェア レベルがあ り ます。 こ こ でも、 ザイ リ ン ク スが提供する機能を正し く 使用する必要があ り ます。

後に、 ピ ラ ミ ッ ド の頂上にあ る アプ リ ケーシ ョ ンは署名およびユーザーが設定し たパス ワード によ って保護され

ます。 この階層は、 主にシステム設計者が担当する領域です。

実質的に、 セキ ュ リ テ ィ にはサプラ イ チェーンから始ま ってデバイ スがフ ィ ール ド で動作する までのラ イ フサイ ク

ルがあ り ます。

先端のセキ ュ リ テ ィ 対策を周知する こ と を目的 と し た団体やフ ォーラ ムがい く つも存在し ます。 ザイ リ ン ク スは

毎年、 北米 と ヨーロ ッパで Xilinx Security Working Group (XSWG) と呼ばれる イベン ト を開催し ています。 こ こには航

空宇宙、 防衛、 およびコマーシャル分野のザイ リ ン ク ス顧客企業、 大学関係者、 ザイ リ ン ク ス ア ラ イ アン ス メ ン

バー、 政府機関代表者が集ま ってセキ ュ リ テ ィ に関する 先端の ト ピ ッ クについて議論を交わし ています。 これら

の ト ピ ッ ク には、 サプラ イ チェーンの保護、 デバイ ス セキ ュ リ テ ィ 、 セキ ュ ア ブー ト 、 およびラ ン タ イ ム セキ ュ

リ テ ィ などがあ り ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 141UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 142: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 8 章: セキュ リ テ ィ

なお、 この章のタ イ ト ルは明示的に 「セキ ュ リ テ ィ 」 と名付けていますが、 セキ ュ リ テ ィ に関連する ト ピ ッ クはそ

の他の章でも取 り 上げています。

• 第 2 章 「プロセ ッ シング システム」 : Zynq UltraScale+ デバイ スでほ と んどのコ ンポーネン ト 間通信に使用され

る イ ン ターコネ ク ト について説明し ています。

• 第 7 章 「 リ ソースの分離と分割」 : TrustZone、 ザイ リ ン ク ス メ モ リ 保護ユニ ッ ト (XMPU)、 ザイ リ ン ク ス ペ リ フ ェ

ラル保護ユニ ッ ト (XPPU) などの各種ラ ン タ イ ム セキュ リ テ ィ に関する メ カニズムについて説明しています。

• 第 5 章 「プロ グ ラ マブル ロ ジ ッ ク」 : プロ グ ラマブル ロ ジ ッ ク (PL) の IP 機能を分離する こ と を目的と し たフ ォ

ル ト ト レ ラ ン ト 設計手法であ る ア イ ソ レーシ ョ ン デザイ ン フ ロー (IDF) について説明し ています。

セキュ リ テ ィ 機能の概要

セキ ュ リ テ ィ と は終わ り のない 「軍拡競争」 のよ う な もので、 ザイ リ ン ク スは新しいセキ ュ リ テ ィ 機能の追加およ

び既存セキ ュ リ テ ィ 機能の強化を続け、 常に脅威の一歩先を行 く よ う 全力を尽 く し ています。 図 8-3 はザイ リ ン ク

ス製品に内蔵されているセキ ュ リ テ ィ 機能を ま と めた もので、 右端の 2 列が UltraScale+ の機能です。

図 8‐3: ザイ リ ン クスのセキュ リ テ ィ 機能

X-Ref Target - Figure 8-3

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 142UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 143: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 8 章: セキュ リ テ ィ

セキ ュ リ テ ィ 機能は受動機能 と能動機能の 2 つに大別されます。 受動セキ ュ リ テ ィ 機能はデバイ スに内蔵されてお

り 、 設計者はデザイ ンで特に何も し な く て も利用でき ます。 た と えばセキ ュ ア コ ンフ ィ ギュ レーシ ョ ン/ブー ト およ

び認証がこのグループに該当し ます。 能動セキ ュ リ テ ィ 機能は Zynq UltraScale+ デバイ スの一部の機能を設計者が設

計時または実行時に有効にする必要があ り ます。 た と えば、 特定の動作電圧/温度範囲を監視する よ う にデバイ ス を

構成する と いった ものが能動セキ ュ リ テ ィ 機能に該当し ます。

どの機能を実装するかを決めるには、 Zynq UltraScale+ デバイ スの機能を理解し、 それらがどのよ う な種類の攻撃に

対する ものかを知ってお く 必要があ り ます。 セキ ュ リ テ ィ の詳細は、 『Zynq UltraScale+ MPSoC テ ク ニカル リ フ ァ レ

ン ス マニュ アル』 (UG1085) [参照 7] のこのセ ク シ ョ ンを参照し て く ださい。

コ ン フ ィ ギュ レーシ ョ ンのセキュ リ テ ィ と セキュア ブー ト

メ ーカーから顧客までの ト ラ ス ト チェーンをセキ ュ リ テ ィ 保護する上でシステム設計者がまず 初に理解する必要

があ るのは、 SoC のブー ト プロセスのセキ ュ リ テ ィ を確保する方法です。 実際、 ス ター ト ア ッ プ時に読み込まれる

一連のソ フ ト ウ ェ アがブー ト 時にデバイ スで検出される正当なキーによ って正し く 署名されている こ と を確認する

こ と がオンチッ プ ロ ジ ッ クおよびフ ァーム ウ ェ アの重要な役割です。 こ う し て、 いわゆるハード ウ ェアの信頼の起

点 (Root of Trust) を保証し ます。 署名な しのイ メ ージをブー ト する こ と も可能ですが、 そのよ う な方法がシステム デ

ザイ ンに と って 善の方法であ る と判断される な ら、 そのデザイ ンではそ も そ も セキ ュ リ テ ィ は大き な問題でない

と いえます。 開発の初期段階では、 た と えば JTAG 経由で署名な しのイ メ ージを読み込んで動作させる こ と も慣例的

に行われています。

Zynq UltraScale+ デバイ スでは、 プラ ッ ト フ ォーム管理ユニ ッ ト (PMU) と コ ンフ ィ ギュ レーシ ョ ン セキ ュ リ テ ィ ユ

ニ ッ ト (CSU) によ ってセキ ュ ア ブー ト を容易に実現でき ます。 CSU はブー ト プロセスの一部ですが、 後述する よ う

にそれ以外にも Zynq UltraScale+ デバイ スの多 く のセキ ュ リ テ ィ 機能において重要な役割を果た し ます。 CSU は、 非

対称認証に RSA を使用し、 機密性 (暗号化/復号化) に AES-GCM を使用する こ と によ ってハード ウ ェアの信頼の起点

を保証し ます。 次に、 Zynq UltraScale+ MPSoC デバイ スの全体的なシステム ブロ ッ ク図における CSU の位置を示し

ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 143UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 144: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 8 章: セキュ リ テ ィ

図 8‐4: コ ン フ ィ ギュ レーシ ョ ン  セキュ リ テ ィ  ユニ ッ ト

X-Ref Target - Figure 8-4

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 144UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 145: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 8 章: セキュ リ テ ィ

図 8-5 に、 ブー ト 時における PMU と CSU の役割を示し ます。

図 8‐5: ブー ト  フ ローの概略図

X-Ref Target - Figure 8-5

Test I/F Lockdown

Zeroize PMU Registers

Run LBIST*

SHA3/384 IntegrityCheck of PMU ROM

Release Reset to PMU

Zeroize RegistersLPD/FPD*

Zeroize PMU RAM

Voltage Checks(LPD, AUX, I/O)

Zeroize memories on CSU, LPD and FPD

SHA3/384 Integrity Check of CSU ROM

Release Reset to CSU

Enforces HW Root of Trust when enabled

Enforces Security “State”

Validate Integrity of User Public Key

Public Key Revocation

FSBL and PMU FW*Authentication/Decryption*

Zeroize storage elements after processing(including fallback)

Release Reset to RPU/APU

HW PMU CSU

CSU Tamper MonitoringLoad FSBL andPMU FW1

PMU ReleaseCSU

HW ReleasePMU

PowerValid

NOTE:1. Authentication with optional decryption.

Power Monitoring

X18922-032917

ブー ト フ ローは次の 3 つの段階で構成されます。

• プ リ コ ンフ ィ ギュ レーシ ョ ン: システムのブー ト (POR: パワーオン リ セ ッ ト ) が必要と判断し た場合、 PMU が

PMU ROM セ ッ ト ア ッ プを実行し ます。 リ セ ッ ト およびウ ェーク ア ッ プ プロセスはすべて PMU が処理し ます。

• コ ンフ ィ ギュ レーシ ョ ン: CSU が処理を引き継ぎ、 FSBL をオンチ ッ プ メ モ リ (OCM) にロード し ます。 コ ン

フ ィ ギュ レーシ ョ ン中、 FSBL イ メ ージが認証され (ハード ウ ェアの信頼の起点が有効な場合)、 復号化された

後、 OCM にロード され、 アプ リ ケーシ ョ ン プロセ ッ シング ユニ ッ ト (APU) または リ アルタ イ ム プロセ ッ シン

グ ユニ ッ ト (RPU) が使用し ます。

• ポス ト コ ンフ ィ ギュ レーシ ョ ン: FSBL が実行を開始する と、 CSU はタ ンパー監視ステー ト に移行し ます。

「システム ソ フ ト ウ ェ アの検討事項」 の章で説明し た よ う に、 Zynq UltraScale+ デバイ スは外部デバイ ス と し て

Quad-SPI、 NAND、 SD、 および eMMC からのブー ト をサポー ト し ています。 これらのス ト レージ デバイ ス を使用し

た場合、 CSU によ ってハード ウ ェアの信頼の起点が保証されます。 SATA、 イーサネ ッ ト および PCIe からはセカン

ダ リ ブー ト を利用でき ます。 小限の FSBL を使用する こ と も可能ですが、 これらのデバイ スからのセキ ュ ア ブー

ト はシステム設計者側で正し く 実装する必要があ り ます。

ブー ト ROM は実行を開始する と、 ロード すべき有効な イ メ ージの検出を開始し ます。 有効な イ メ ージかど う かは、

イ メ ージ識別文字列で判定し ます。 この方法によ り 、 Zynq UltraScale+ デバイ スの各種プロセ ッ シング デバイ スで使

用する複数のブー ト イ メ ージを外部デバイ スに格納し てお く こ と ができ ます。 また、 こ の方法ではフ ォールバッ ク

およびマルチブー ト イ メ ージ検索を使用する こ と もでき ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 145UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 146: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 8 章: セキュ リ テ ィ

チェ ッ クおよびブー ト 対象のブー ト イ メ ージは、 外部ブー ト デバイ スから CSU ブロ ッ ク と三重冗長 MicroBlaze™

プロセ ッ サ、 各種セキ ュ リ テ ィ ブロ ッ ク、 CSU DMA、 セキ ュ ア ス ト リ ーム ス イ ッチ (SSS)、 およびプロセ ッ サ コ

ンフ ィ ギュ レーシ ョ ン ア ク セス ポー ト (PCAP) を経由し て Zynq UltraScale+ デバイ スへロード されます。 図 8-6 に、

CSU ブロ ッ クおよびセキ ュ ア ブー ト に使用する各種ブロ ッ ク を示し ます。

図 8‐6: コ ン フ ィ ギュ レーシ ョ ン  セキュ リ テ ィ  ユニ ッ ト  (CSU) のブロ ッ ク図

X-Ref Target - Figure 8-6

CSU PMU Switch

ROMValidation

ROM(128 KB)

RAM(32 KB)

TripleRedundantMicroBlaze

SHA-3384

AES-GCM256

Secure Stream Switch

PCAP

CSU DMA

CSURegisters

KeyManagement

To PL Configuration

PMU ROMValidation

To/From LPD Main Switch

TamperSources INTC

ECC

BBRAMeFUSEPUFOperationKUP Family

CSU Local

Registers

PUF RSA Multiplier

PSTP

Security Processor Block Crypto Interface Block

X15318-032917

左側には三重冗長 MicroBlaze プロセ ッ サ と CSU RAM および ROM があ り ます。 また、 デバイ ス固有の暗号キーの生

成に使用する PUF (Physically Unclonable Function) ブロ ッ ク も あ り ます。 右側には暗号/復号キー、 各種復号プロセス

(AES-GCM および RSA) を管理するブロ ッ ク があ り 、 全体を CIB (Crypto-Interface Block) と呼びます。 また、 SSS の動

作経路には CSU DMA プロセス ブロ ッ ク があ り ます。

CSU の役割で特に重要なのがキー管理です。 CSU は次の表に示すい く つかのキーの う ち 1 つを使用し て AES-GCM

の機能を実行し ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 146UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 147: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 8 章: セキュ リ テ ィ

表 8‐1: キーの種類

キーの名称 説明

BBRAM バッ テ リ バッ ク ア ッ プ式 RAM (BBRAM) キーは 256 ビ ッ ト SRAM アレ イに平文で

格納されます。 バッ テ リ 消費を抑える ため、 VCCAUX に電源が供給されている場

合、 SRAM アレ イは VCCAUX 電源で動作し ます。 それ以外の場合、 SRAM アレ イ

は VCCBAT 電源で動作し ます。

ブー ト ブー ト キー レジス タには、 使用中のキーを復号化し た ものが格納されます。

eFUSE eFUSE キーは eFUSE に格納されます。 平文、 難読化 (フ ァ ミ リ キーでの暗号化)、

または PUF KEK での暗号化のいずれかの形式で格納されます。

フ ァ ミ リ フ ァ ミ リ キーは、 デバイ スにハード コード された定数値の AES キーです。 同じ

キーを Zynq UltraScale+ MPSoC フ ァ ミ リ のすべてのデバイ スで使用し ます。 この

キーは、 難読化し たキーを CSU ROM が復号化する場合のみ使用し ます。 難読化し

たキーを復号化し た ものは、 ブー ト イ メ ージの復号化に使用し ます。 難読化し た

キーは、 eFUSE または認証済みのブー ト ヘッ ダーに格納でき ます。 フ ァ ミ リ キー

はデバイ ス全体で共通のため、 セキ ュ リ テ ィ メ カニズムの相対的な強度を表すた

めに 「暗号化」 ではな く 「難読化」 の用語を使用し ています。

オペレーシ ョ ン オペレーシ ョ ン キーは、 デバイ スのほかのキー ソースから取得し た平文のキーを

使用し てセキ ュ ア ヘッ ダーを復号化し て得ます。 セキ ュ ア ブー ト の場合、 こ の

キーはオプシ ョ ンです。 オペレーシ ョ ン キーはブー ト ヘッ ダーで指定されます。

こ のキーを使用する とデバイ ス キーの使用を 小限に抑え、 外部への露出を減ら

すこ と ができ ます。

PUF KEK PUF KEK はキーを暗号化するためのキーで、 PUF によ って生成されます。

キー更新レジス タ ユーザーが支給する キー ソースです。 ブー ト 後は、 ユーザーが選択し たキーを

ハード化し た AES ア ク セラ レータで使用でき ます。

Zynq UltraScale+ デバイ スの BBRAM と eFUSE にプロ グ ラ ム し たキーは、 いかなる方法でも取 り 出すこ と ができ ませ

ん。 キーが正し く プロ グ ラ ム されたかど う かは、 CRC でしかチェ ッ ク でき ません。

CSU の動作が完了し て FSBL の動作が開始する と、 CSU はタ ンパー応答のためにシステムの監視を開始し ます。

タ ンパーが検出される と、 セキ ュ ア ロ ッ ク ダウ ンを含むさ まざまなユーザー定義の応答を実行でき ます。

ブー ト 時に設計者が選択およびコ ンフ ィ ギュ レーシ ョ ンでき る ソ フ ト ウ ェ ア コ ンポーネン ト の詳細は、 「システム

ソ フ ト ウ ェアの検討事項」 の章で説明し ています。 こ こ での 「ブー ト 時」 と は、 FSBL のブー ト 以降のプロセス を指

し ます。

なお、 PL 用のビ ッ ト ス ト リ ームは、 FSBL で CSU DMA を使用し て CSU の PCAP から読み込む必要があ り ます。

Vivado® Design Suite を使用する と、 このプロセスは自動化されます。

詳細は、 次の資料を参照し て く ださい。

• CSU の詳細は、 『Zynq UltraScale+ MPSoC テ ク ニカル リ フ ァ レ ン ス マニュ アル』 (UG1085) [参照 7] のこのセ ク

シ ョ ンを参照し て く ださい。

• CSU の PCAP を経由し た PL ビ ッ ト ス ト リ ームのプロ グ ラ ミ ングの詳細は、 『Zynq UltraScale+ MPSoC テ ク ニカ

ル リ フ ァ レ ン ス マニュ アル』 (UG1085) [参照 7] のこのセ ク シ ョ ンを参照し て く ださい。

• ブー ト 時のセキ ュ リ テ ィ については、 『Zynq UltraScale+ MPSoC ソ フ ト ウ ェ ア開発者向けガイ ド』 (UG1137) [参

照 5] のこのセ ク シ ョ ンでも説明し ています。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 147UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 148: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 8 章: セキュ リ テ ィ

デバイス とデータのセキュ リ テ ィ

CSU と セキ ュ ア ブー ト はデバイ スのセキ ュ アな起動を保証する ためのものですが、 Zynq UltraScale+ MPSoC デバイ

スにはデバイ ス実行時のセキ ュ リ テ ィ を確保するための機能も あ り ます。

タ ンパーの監視と応答

140 ページの 「セキ ュ リ テ ィ に関する設計手法」 で説明し た よ う に、 耐タ ンパー (AT) と は リ バース エンジニア リ ン

グやク ローニングなど不正な方法によ る操作から IP を保護する こ と をいいます。 また、 前のセ ク シ ョ ンで説明し た

よ う に、 FSBL が実行を開始し た後の CSU の主な役割は、 監視モード で動作し てタ ンパー イベン ト を検出する こ と

にあ り ます。 タ ンパー イベン ト は、 た と えば Zynq UltraScale+ デバイ スの電圧と温度を監視する こ と によ って検出で

き ます。

タ ンパーに対する応答は、 次の表に示す CSU タ ンパー レジス タ を設定し て制御でき ます。

表 8‐2: タ ンパーおよび監視レジス タ

レジス タ 監視内容の説明

csu_tamper_12 GT の AMS 電圧ア ラーム

csu_tamper_11 PSIO バン ク 3 の AMS 電圧ア ラーム

csu_tamper_10 PSIO バン ク 0/1/2 の AMS 電圧ア ラーム

csu_tamper_9 DDRPHY の AMS 電圧ア ラーム

csu_tamper_8 VCCPAUX の AMS 電圧ア ラーム

csu_tamper_7 VCCPINT_FPD の AMS 電圧ア ラーム

csu_tamper_6 VCCPINT_LPD の AMS 電圧ア ラーム

csu_tamper_5 APU の AMS 過温度/低温度ア ラーム

csu_tamper_4 LPD の AMS 過温度/低温度ア ラーム

csu_tamper_3 PL SEU エラー

csu_tamper_2 JTAG ト グル検出

csu_tamper_1 外部 MIO

csu_tamper_0 CSU レジス タ

次の表に、 これら タ ンパー イベン ト に対し て可能な応答を示し ます。

表 8‐3: タ ンパー監視および応答ビ ッ ト

ビ ッ ト 応答

4 下記のいずれかの応答に加え、 BBRAM キーを消去

3 セキ ュ ア ロ ッ ク ダウ ンおよびすべての I/O を ト ラ イ ステー ト

2 セキ ュ ア ロ ッ ク ダウ ン

1 システム リ セ ッ ト

0 システム割 り 込み

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 148UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 149: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 8 章: セキュ リ テ ィ

場合によ っては、 タ ンパー イベン ト 検出時にこれよ り も厳格で永続的なペナルテ ィ を課す必要があ る こ と があ り ま

す。 そのよ う な場合の例については、 『Zynq UltraScale+ MPSoC テ ク ニカル リ フ ァ レ ン ス マニュ アル』 (UG1085) [参

照 7] のこのセ ク シ ョ ンを参照し て く ださい。

また、 Zynq UltraScale+ デバイ スには一意の ID の作成、 または メ ンテナン ス /タ ンパー イベン ト に関するデータ を事

後解析用 と し て記録するためのユーザー定義可能な eFUSE ビ ッ ト も多数備えています (図 8-7)。

図 8‐7: タ ンパーおよび メ ンテナンスの記録

X-Ref Target - Figure 8-7

eFUSE を使用し てデータ ロ ギングに必要な一意の ID を取得する方法の詳細は、 『Zynq UltraScale+ MPSoC テ ク ニカ

ル リ フ ァ レ ン ス マニュ アル』 (UG1085) [参照 7] のこのセ ク シ ョ ンを参照し て く ださい。

システム モニ ター

CSU の機能に加え、 Zynq UltraScale+ デバイ スには PS と PL の両方にシステム モニター (SYSMON) ブロ ッ クがあ り

ます。 SYSMON はカス タ ム環境や高度な環境の監視に使用し ます。 SYSMON は検証と イ ンプ リ メ ン ト が完了し た形

で提供される自己完結型のブロ ッ ク で、 ザイ リ ン ク スのセキ ュ リ テ ィ 機能を統合し、 非常に高い使い勝手を実現し

ています。

た と えば SYSMON ブロ ッ ク のレジス タ イ ン ターフ ェ イ ス を使用し て SYSMON ブロ ッ ク を設定し、 オンチッ プ電圧

およびジャ ン ク シ ョ ン温度監視する よ う にでき ます。 SYSMON ブロ ッ ク にはア ラーム生成ロ ジ ッ ク も内蔵されてお

り 、 特定のア ラーム条件に基づいてプロセ ッ サへの割 り 込みを生成でき ます。 た と えば、 過温度 (OT) ア ラームが生

成される と システムをシャ ッ ト ダウ ンする と いった こ と が可能です。 図 8-8 に、 Zynq UltraScale+ デバイ スの

SYSMON ブロ ッ ク を示し ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 149UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 150: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 8 章: セキュ リ テ ィ

図 8‐8: システム モニ ター (SYSMON) ブロ ッ ク

X-Ref Target - Figure 8-8

AXI/APB Interconnect APB

Splitter

Reg

iste

rs

APB To

DRP

PS SYSMON

PL SYSMON

DRP Bus

Alarm

Alarm

DRP Bus

Remote Temperature Sensorfrom Full Power Domain

PS Lower Power Domain PL

APB To

DRP

X15149-021216

SYSMON には次に示すセキ ュ リ テ ィ および安全機能があ り ます。

• JTAG ポー ト の監視と ブロ ッ ク

• 低電力ド メ イ ン (LPD) を含む電源電圧の監視

• デバイ スのダ イ温度監視 (APU、 RPU、 および PL)

• ユーザー ク ロ ッ ク監視 (8 つの周波数モニ ター ) およびウ ォ ッチ ド ッ グ

• パーシャル コ ンフ ィ ギュ レーシ ョ ン管理

• コ ンフ ィ ギュ レーシ ョ ン RAM の整合性監視

• BIST (Built-In Self Test) によ る自己診断

SYSMON は、 LPD の LPD I/O ペ リ フ ェ ラル ア ド レ ス マ ッ プを経由し てア ク セス可能なダ イナ ミ ッ ク リ コ ンフ ィ

ギュ レーシ ョ ン ポー ト (DRP) を使用し て構成でき ます。

SYSMON の詳細は、 『Zynq UltraScale+ MPSoC テ ク ニカル リ フ ァ レ ン ス マニュ アル』 (UG1085) [参照 7] のこのセ ク

シ ョ ンを参照し て く ださい。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 150UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 151: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 8 章: セキュ リ テ ィ

DPA 攻撃からの保護

差分電力解析 (DPA) 攻撃と は、 デバイ スが情報を復号化し ている と きにデバイ ス全体の消費電力や放射電磁波の信

号をあ る一定時間にわたってサンプ リ ング し、 その統計情報を使用し て変化を解析する こ と によ って秘密キーを特

定し よ う とする攻撃をいいます。 このよ う に、 総当た り 攻撃を実行し た り 使用されている暗号アルゴ リ ズムの弱点

を見つけよ う と し た り するのではな く 、 システム イ ンプ リ メ ンテーシ ョ ンを監視し てデバイ ス またはその動作につ

いての情報を得よ う とする タ イプの攻撃を 「サイ ド チャネル攻撃」 と呼びます。

DPA 攻撃を防ぐには、 計測値と し て現れる消費電力や電磁波放射の変動を 小限に抑え るバラ ン ス回路を使用する

方法や、 計測に対し て ノ イ ズ フ ロ アを引き上げる方法などがあ り ます。 イ メ ージのロード に関し て、 Zynq

UltraScale+ デバイ スは攻撃者が収集でき るデータ量を制限し、 サイ ド チャネル情報に対し て十分な解析を行えな く

する アプローチを採用し ています。

一般に、 DPA 攻撃には次の 2 つの形態があ り ます。

• ラ ンダム データ攻撃: 攻撃者が暗号システムにラ ンダム データ を送 り 込み、 「秘密」 (AES キー ) を抽出するのに

十分なサイ ド チャネル情報を収集し よ う とする攻撃です。

• グ ッ ド データ攻撃: プロ グ ラ ミ ング フ ァ イルは非常に大きいため、 攻撃者が有効な イ メ ージを暗号システムへ

の入力 と し て使用し た場合、 解析を実行するのに十分なサイ ド チャネル情報を収集でき る こ と があ り ます。

ラ ンダム データ攻撃を防ぐには、 公開鍵非対称認証 (RSA) を実行し てから復号処理を実行し ます。 こ う する と、 正

当な イ メ ージのみ復号を許可でき ます。

グ ッ ド データ攻撃を防ぐには、 ブー ト イ メ ージを複数の小さ な イ メ ージに分割し、 それぞれを異なる キーで暗号化

し ます (キー ロー リ ング)。 ブロ ッ ク のサイ ズは選択でき、 デバイ スの eFUSE または BBRAM に格納する必要があ る

のは 初のキーのみです。 2 番目以降のキーはすべて直前のブロ ッ ク で保護、 認証、 および復号化されます。

図 8‐9: 差分電力解析 (DPA) への対抗策

X-Ref Target - Figure 8-9

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 151UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 152: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 8 章: セキュ リ テ ィ

CSU ハー ド ウ ェ ア アクセラ レータ

CSU の暗号機能はブー ト 時に使用する以外にも、 RSA、 SHA、 および AES-GCM の暗号処理のハード ウ ェア ア ク セ

ラ レーシ ョ ンに使用でき ます。 これら機能の詳細は、 『Zynq UltraScale+ MPSoC テ ク ニカル リ フ ァ レ ン ス マニュ ア

ル』 (UG1085) [参照 7] を参照し て く ださい。

機能安全

セキ ュ リ テ ィ に密接に関連する も う 1 つの分野と し て、 機能安全があ り ます。 これは、 システム動作の正し さにつ

いて扱 う 分野です。 Zynq UltraScale+ デバイ スには、 機能安全をサポー ト する機能がい く つかあ り ます。 詳細は、

『Zynq UltraScale+ MPSoC テ ク ニカル リ フ ァ レ ン ス マニュ アル』 (UG1085) [参照 7] のこのセ ク シ ョ ンを参照し て く だ

さい。

セーフテ ィ ク リ テ ィ カル アプ リ ケーシ ョ ンに 適な機能の 1 つに、 RPU のロ ッ ク ステ ッ プ モード があ り ます。 デザ

イ ン プロセスの一部と し てアプ リ ケーシ ョ ンの特定の部位を IEC61508 や ISO26262 などの機能安全規格に適合させ

る必要があ る場合は、 このモード が特に役立ちます。 RPU の ARM Cortex R5 のアーキテ クチャは、 システムのハー

ド ウ ェア故障への応答が必要 と される高信頼性アプ リ ケーシ ョ ン向けに設計されています。 また、 ザイ リ ン ク スの

デザイ ン ツール ス イー ト は TUV SUD 認証に適合し たツール セ ッ ト によ って機能安全デザイ ン フ ローをサポー ト し

てお り 、 プロ ジェ ク ト の安全認証プロセス を短期間で完了でき ます。

プロセ ッ シング システムにおける信頼性と FIT の特定および応答は、 Zynq UltraScale+ デバイ スの分離アーキテ ク

チャによ って達成されます。 RPU は Zynq UltraScale+ デバイ ス アーキテ クチャのその他の部分から完全に独立し た

システム と し て分離でき、 ア ク セスは特定のペ リ フ ェ ラルおよび メ モ リ ア ド レ スのみに限定でき ます。 イ ン ターコ

ネ ク ト レベルでは、 「 リ ソースの分離と分割」 の章で説明し たザイ リ ン ク ス メ モ リ 保護ユニ ッ ト (XMPU) と ザイ リ

ン ク ス ペ リ フ ェ ラル保護ユニ ッ ト (XPPU) を使用し てア ク セス を制御し ます。 これらのコ ンポーネン ト は、 メ モ リ

またはペ リ フ ェ ラルに対するデータ ト ラ ンザク シ ョ ンを権限のあ るサブシステム コ ンポーネン ト のみに限定し ま

す。 また、 各サブシステムに対するデータ ト ラ ンザク シ ョ ンは ARM TrustZone アーキテ クチャによ ってア ク セス権

限が個別にチェ ッ ク されます。

実際のデザイ ンで機能安全の問題に対処する方法の詳細は、 『Xilinx All Programmable Functional Safety Design Flow

Solution Product Brief』 (PB015) [参照 12] および 『Xilinx Reduces Risk and Increases Efficiency for IEC61508 and ISO26262

Certified Safety Applications White Paper』 (WP461) [参照 13] を参照し て く ださい。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 152UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 153: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 9 章

マルチ メ デ ィ アZynq® UltraScale+™ MPSoC デバイ スは、 先端のプロ グ ラマブル ロ ジ ッ ク (PL)、 ビデオおよびオーデ ィ オ処理機能

を備えた DisplayPort、 消費電力を抑えたグ ラ フ ィ ッ ク ス プロセ ッ シング ユニ ッ ト (GPU)、 ビデオの同時エン コード /

デコード をサポー ト し たビデオ コーデッ ク ユニ ッ ト (VCU) を組み合わせています。 この豊富なマルチ メ デ ィ ア機能

によ り 、 きわめて要求の厳しいマルチ メ デ ィ ア アプ リ ケーシ ョ ンにも対処でき る性能と柔軟性を実現し ています。

この章では、 これらの機能およびその使用に関する推奨事項について説明し ます。

マルチ メ デ ィ ア要件を定義する

通常、 マルチ メ デ ィ ア アプ リ ケーシ ョ ンは非常に多 く のシステム リ ソース を必要 と し ます。 Zynq UltraScale+

MPSoC デバイ スはマルチ メ デ ィ アに 適化し て設計されていますが、 マルチ メ デ ィ ア要件を Zynq UltraScale+

MPSoC デバイ スの機能でどのよ う に満たすのかを十分に理解し てお く 必要があ り ます。 具体的には、 「プロセ ッ シ

ング システム」 および 「 メ モ リ 」 の章の内容を理解し た上で、 システム イ ン ターコネ ク ト および メ モ リ 機能の観点

からデータ処理のパス を特定し てそれぞれのパスの相互関係を理解する作業が必要です。

この作業を進めるにあた り 、 まずは次の質問に答えてみて く ださい。

• グ ラ フ ィ ッ ク ス ア ク セラ レーシ ョ ンを必要とするデザイ ンですか。

• Zynq UltraScale+ MPSoC デバイ ス をユーザー デ ィ スプレ イ を使用する システムの一部と し て使用し ますか。

• アプ リ ケーシ ョ ンにオーデ ィ オ出力はあ り ますか。

• アプ リ ケーシ ョ ン プロセ ッ シング ユニ ッ ト (APU) でどの OS を使用する予定ですか。

• カ ス タ ム マルチ メ デ ィ ア処理を必要とするデザイ ンですか。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 153UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 154: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 9 章: マルチ メ デ ィ ア

マルチ メ デ ィ アに関する設計手法

これまでの章 と同様、 このセ ク シ ョ ンでは Zynq UltraScale+ MPSoC デバイ スのマルチ メ デ ィ ア機能に関連する シス

テム コ ンポーネン ト に焦点を当てて説明し ていき ます。 こ のため、 図 9-1 には Zynq UltraScale+ MPSoC デバイ スの

マルチ メ デ ィ アに関係する主要なブロ ッ ク と その相互関係のみを示し ています。 この図に記載されていない主要な

コ ンポーネン ト と し て APU があ り ます。 APU はマルチ メ デ ィ ア ソ フ ト ウ ェ ア ス タ ッ ク が必要な場合にはほぼ例外

な く 使用し ますが、 それは主にコマン ドおよび制御用コ ンポーネン ト と し ての役割であ り 、 マルチ メ デ ィ ア処理に

必要なデータ転送/処理にはほ と んど関与し ません。 マルチ メ デ ィ ア デザイ ンでは後者に重点を置いて考え る必要が

あ り ます。

図 9‐1: Zynq UltraScale+ MPSoC デバイスのマルチ メ デ ィ ア コ ンポーネン ト

X-Ref Target - Figure 9-1

GPU

VCU

Programmable Logic

PS-GTRDisplayPortDisplayPort

DDRMemory

Controller

X18927-032117

注記: 図 9-1 は Zynq UltraScale+ MPSoC デバイ スの内部ブロ ッ ク を正確に表現し た ものではな く 、 このセ ク シ ョ ンで

説明する概念を図にし た ものです。

図 9-1 で、 マルチ メ デ ィ アに関し て考慮すべき も重要なコ ンポーネン ト は メ モ リ です。 マルチ メ デ ィ ア処理では

通常、 大量の メ モ リ 転送が発生し ます。 し たがって、 マルチ メ デ ィ ア スループ ッ ト を向上させるには何らかの方法

で メ モ リ 転送を 小限に抑え る必要があ り ます。 メ モ リ 転送が避け られない場合は、 メ モ リ 転送に使用するパスに

ついて (転送中にどのブロ ッ ク がそのパスにア ク セスする必要があ るかを含め) 十分に理解し てお く こ と がシステム

の正しい動作には欠かせません。

た と えば GPU は主にレ ンダ リ ング対象データ を RAM から取得し、 レンダ リ ング済みコ ンテンツを同じ く RAM に存

在するデ ィ スプレ イ バッ フ ァーに戻し ます。 DisplayPort は メ モ リ から ビデオおよびオーデ ィ オ バッ フ ァーを読み出

し、 出力を PS-GTR ト ラ ンシーバーに送信するか、 さ ら なる処理が必要な場合はプロ グ ラ マブル ロ ジ ッ ク (PL) に送

信し ます。 また、 VCU のエン コードおよびデコード処理でも メ モ リ と の間でデータ移動が発生し ます。 し たがっ

て、 第 2 章 「プロセ ッ シング システム」 で説明し た イ ン ターコネ ク ト を十分に理解する と共に、 既存の メ モ リ 帯域

幅ではアプ リ ケーシ ョ ンに不十分な場合の対策について第 6 章 「 メ モ リ 」 の推奨事項を参照する こ と を推奨し ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 154UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 155: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 9 章: マルチ メ デ ィ ア

マルチ メ デ ィ アでも う 1 つ重要なのが、 ソ フ ト ウ ェア サポー ト です。 ザイ リ ン ク スは Zynq UltraScale+ MPSoC デバ

イ スのマルチ メ デ ィ ア機能用に Linux ベースのソ フ ト ウ ェア ス タ ッ ク を提供し ています。 し たがって、 これらのス

タ ッ ク を利用する場合は APU で Linux を動作させる必要があ り ます。

DisplayPort

Zynq UltraScale+ MPSoC デバイ スの DisplayPort コ ン ト ローラーは VESA DisplayPort v1.2a 仕様 (ソースのみ) に準拠し、

ビデオ、 グ ラ フ ィ ッ ク スおよびオーデ ィ オをサポー ト し ています。 ビデオ パイプラ イ ン と グ ラ フ ィ ッ ク ス パイプラ

イ ンはアルフ ァ ブレ ン ド またはク ロマ キーのステージまで独立し て動作し、 そ こ でこれらが合成されます。 図 9-2

に、 DisplayPort コ ン ト ローラーのデータ フ ローの概略図を示し ます。

図 9‐2: DisplayPort の概略ブロ ッ ク図

X-Ref Target - Figure 9-2

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 155UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 156: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 9 章: マルチ メ デ ィ ア

DisplayPort には 2 つのデータ ソースがあ り ます。 DisplayPort は DMA マス ター と し て動作し て メ モ リ から非ラ イブ

データ を取得し、 PL から ラ イブ データ を受信し ます。 出力先は PS-GTR と PL のいずれか と な り ます。 図 9-3 に、

DisplayPort の機能の詳細図を示し ます。

図 9‐3: DisplayPort コ ン ト ローラー内のデータ  フ ロー

X-Ref Target - Figure 9-3

Interrupt

High Level Address Decoder

APB

Display PortSource

Controller

Link layer and PHY layer logic. PS-GTR is at the system level.

128-bit AXI-S (Memory)

Live Native Video Input(36-bit Video +

36-bit Graphics + 8-bit Alpha)

Live Audio Input(AXI-S 32-bit)

Video Stream 1

AUX + HPDNative Video (Mapped to

48-bit)

APB Master

Lane0: 16-bit Data + 2-bit

Lane1: 16-bit Data + 2-bit

PS-GTR Status

32-bit AXI-S (Audio)

Video Stream 2

Audio Stream 1

Audio Stream 2

Blended Video to

PL

Mixed Audio to

PL

ExternalVSYNCEvent

ExternalCustomEvent 1

ExternalCustomEvent 2

Audio/Video Buffer Manager

and STC

Audio Mixer

Video RenderingPipeline

Channel 0

Channel 1

Channel 2

Channel 3

Channel 4

Channel 5

DPDMA

PS

-GTR

X16959-092516

ビデオ/グラ フ ィ ッ クス レンダ リ ング パイプ ラ イ ン

前のセ ク シ ョ ンの DisplayPort コ ン ト ローラーのブロ ッ ク図に示し た よ う に、 ビデオ レ ンダ リ ング パイプラ イ ンには

い く つかの入力ス ト リ ームがあ り 、 これら を 1 つのビデオ出力にま と める必要があ り ます。 前述の とお り 、

DisplayPort には主な入力ソース と し て PL からのラ イブ データ と メ モ リ 内バッ フ ァーの 2 つがあ り ます。 前者は PL

から DisplayPort に直接接続し ていますが、 後者はダ イ レ ク ト メ モ リ ア ク セス (DMA) を使用し て転送されます。

図 9-4 に、 各種入力ス ト リ ームに対する ビデオ レ ンダ リ ング パイプラ イ ンでの処理を示し ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 156UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 157: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 9 章: マルチ メ デ ィ ア

図 9‐4: DisplayPort コ ン ト ローラーのビデオ レンダ リ ング パイプラ イ ンのブロ ッ ク図

X-Ref Target - Figure 9-4

Test PatternGenerator

Live VideoInterface DisplayPort DMA Live Graphics

Interface

MUX Split

4:2:0 or 4:2:2

CHROMA Up Sampling

Color Space Conversion

Color Space Conversion

Alpha Blending

Color Space Conversion

Chroma Sub-sampling

MUX

Pallete or Bypass

Video Rendering Pipeline

Video Graphics

To Display Port Core/PL

4:2:2 or 4:4:4

4:2:2 or 4:4:4

X15506-092516

ビデオ パイプラ イ ンは次のいずれかの動作モード に設定でき ます。

• ラ イブ プレゼンテーシ ョ ン モード

° このモード では、 PL のみを A/V データ ソース と し て使用し ます。 A/V データからのタ イ ミ ング情報を使用

し て DisplayPort コ ン ト ローラーを駆動し ます。

• 非ラ イブ プレゼンテーシ ョ ン モード

° このモード では、 DisplayPort DMA を使用し て メ モ リ から AXI 経由で A/V データ をフ ェ ッチし ます。 この

モード では、 ソ フ ト ウ ェ アを使用し てオーデ ィ オ と ビデオを正し く 同期させる必要があ り ます。 このため、

DisplayPort コ ン ト ローラーが使用する DMA デ ィ ス ク リ プター内部のタ イ ム ス タ ンプを用いて同期を取 り ま

す。 DisplayPort DMA (DPDMA) の機能については後述し ます。

• 混在プレゼンテーシ ョ ン モード

° このモード は、 上記の 2 つのモード を組み合わせた ものです。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 157UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 158: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 9 章: マルチ メ デ ィ ア

ブレ ンデ ィ ング ステージは、 図 9-5 に示すよ う にアルフ ァ ブレン ド またはク ロマ キーのいずれかの方法で実行され

ます。

図 9‐5: ビデオ ブレンデ ィ ング ステージ

X-Ref Target - Figure 9-5

Chroma Upsampling

Input Color Space

Converter

input_video_color_format[3:0]

Chroma Upsampling

Input Color Space

Converter

graphics_color_format [3:0]

Alpha Blending (RGB) or Chroma Keying

Output Color Space

Converter

output_color_format[3:0]

Chroma Subsampling Video Out

Video 1

Video 2

Alpha

X17915-092516

アルフ ァ  ブレン ド

DisplayPort コ ン ト ローラーは、 デフ ォル ト ではアルフ ァ ブレン ド の方法で 2 つのデータ ソース を合成し ます。 アル

フ ァ ブレ ン ド は、 あ る決ま った計算式を使用し て 2 つのイ メ ージをブレ ン ド し ます。 アルフ ァ ブレ ン ド プロセスの

い く つかのパラ メ ーター (ブレ ンデ ィ ング マ ト リ ッ ク ス、 係数など) は DisplayPort コ ン ト ローラーのレジス タでプロ

グ ラ ムでき ます。

ク ロマ キー

ク ロマ キーは 2 つのイ メ ージまたはビデオ ス ト リ ームをレ イヤー化する ビデオ手法です。 これは映画製作で 「グ リ ー

ン ス ク リ ーン」 と呼ばれている もの と同じです。 ビデオ パイプラ イ ンのこのステージでは、 キーと なる カ ラーを 1 つ

選ぶ必要があ り ます。 このパイプラ イ ン ステージが完了する と、 キーに指定したカ ラーはパイプラ イ ンの 2 番目の

データ ソースの内容で置き換わ り ます。 ク ロマ キーを有効にする と、 パイプラ イ ンのアルフ ァ ブレン ド ステージの

代わ り にク ロマ キーが実行されます。

オーデ ィ オ

図 9-6 に示すよ う に、 DisplayPort コ ン ト ローラーは 2 つの独立し た ソースからのオーデ ィ オも管理でき ます。 2 つの

ソースが互換の場合、 これらはパイプラ イ ンで合成されます。 一方の入力は、 テス ト パターン ジェネレーター、 ス

ト リ ー ミ ング オーデ ィ オ、 非ラ イブ オーデ ィ オ イ ン ターフ ェ イ ス (DPDMA) のいずれかが可能です。 も う 一方の入

力は非ラ イブ オーデ ィ オ イ ン ターフ ェ イ ス とする必要があ り ます。 各ス ト リ ームにはそれぞれ独立し たボ リ ューム

コ ン ト ロールがあ り ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 158UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 159: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 9 章: マルチ メ デ ィ ア

図 9‐6: MPSoC のデ ィ スプレ イ  コ ン ト ローラーのテ クニカル モジュール

X-Ref Target - Figure 9-6

DisplayPort DMA

DPDMA コ ン ト ローラーは 大 6 チャネルをサポー ト し ます。 DDR コ ン ト ローラーと は、 128 ビ ッ ト AXI3 マス ター

ポー ト を使用し て通信し ます。 DPDMA で使用するデ ィ ス ク リ プターには 16 個の異なるデータ ワード が含まれま

す。 DDR コ ン ト ローラーの汎用 DMA デ ィ ス ク リ プター同様、 DPDMA デ ィ ス ク リ プターにもデ ィ ス ク リ プターが

指し示すデータのサイ ズを宣言する フ ィ ール ド (XFER_SIZE) と次のポイ ン ターのア ド レ ス を指定する フ ィ ール ド

(ADDR_NEXT) があ り ます。 また、 これ以外にも LINE_SIZE、 STRIDE、 TIME_STAMP_LSB、 TIME_STAMP_MSB

など、 デ ィ ス ク リ プターが指し示すデータ を記述する DisplayPort 特有のフ ィ ール ド があ り ます。

Linux DisplayPort ス タ ッ ク

前述の とお り 、 Zynq UltraScale+ MPSoC デバイ スのマルチ メ デ ィ ア機能は Linux 環境でサポー ト されます。 図 9-7 に、

DisplayPort を動作させる ための Linux パッ ケージの一部と し てザイ リ ン ク スが提供する Linux ベースのソ フ ト ウ ェ ア

ス タ ッ ク を示し ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 159UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 160: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 9 章: マルチ メ デ ィ ア

図 9‐7: DisplayPort Linux ソ フ ト ウ ェ ア ス タ ッ ク

X-Ref Target - Figure 9-7

DisplayPort サブシステムの Linux ス タ ッ クは、 DisplayPort ハード ウ ェ アの上位に存在する次の 2 つのレ イヤーで構成

されます。

• 下層にあ るのはカーネル レ イヤーで、 DRM (Direct Rendering Manager)、 KMS (Kernel Mode Setting)、 DMA エン

ジン、 および ALSA (Advanced Linux Sound Architecture) ド ラ イバーで構成されます。

° DRM フ レーム ワークは、 グ ラ フ ィ ッ ク ス ハード ウ ェ アへの接続に使用し ます。

° KMS ド ラ イバーはデ ィ スプレ イ モード の設定に使用し ます。 これがデ ィ スプレ イ コ ン ト ローラーのデバ

イ ス ド ラ イバーです。

° DMA エンジンは DMA 転送をサポー ト し ます。

° ALSA はオーデ ィ オ ハード ウ ェ ア用のデバイ ス ド ラ イバーと ロー レベル サポー ト を提供し ます。

• カーネル レベルの上位には、 ラ イブラ リ と サーバーで構成されるユーザー レベルがあ り ます。

° Libdrm は、 ユーザー空間のプロ グ ラ ム と DRM サブシステムを接続するためのユーザー ラ イブラ リ です。

° Libasound は、 アプ リ ケーシ ョ ン プロ グ ラ ムに ALSA 機能を提供するユーザー ラ イブラ リ です。

° X11 デ ィ スプレ イ サーバーは、 デ ィ スプレ イ装置上のウ ィ ン ド ウの描画と移動、 およびマウ ス /キーボード

と の通信など GUI 環境の構築に必要な基本フ レーム ワーク を提供し ます。

° Wayland デ ィ スプレ イ サーバーは X11 デ ィ スプレ イ サーバーよ り も新しいデ ィ スプレ イ サーバーで、 X11

の置き換え と し て使用でき ます。

° PA オーデ ィ オ サーバーは、 複数のオーデ ィ オ アプ リ ケーシ ョ ンがサウ ン ド /オーデ ィ オ デバイ スに同時に

ア ク セス し て使用でき る よ う に管理し ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 160UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 161: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 9 章: マルチ メ デ ィ ア

GPU

Zynq UltraScale+ MPSoC デバイ スのグ ラ フ ィ ッ ク ス プロセ ッ シング ユニ ッ ト (GPU) は ARM Mali-400 MP2 アーキテ

クチャ をベースにし てお り 、 2D および 3D ア ク セ ラ レーシ ョ ンをサポー ト し ています。 Zynq UltraScale+ MPSoC デバ

イ スのその他のマルチ メ デ ィ ア機能同様、 GPU の動作にも Linux が必要です。 Mali GPU 向け Linux プラ ッ ト フ ォー

ム上では、X11 と FBDEV のどち らのウ ィ ン ド ウ システムに対し て も OpenGLES1.1 と OpenGLES 2.0 を両方サポー ト

し た OpenGL グ ラ フ ィ ッ ク ス ラ イブラ リ を利用でき ます。 図 9-8 に、 GPU のブロ ッ ク図を示し ます。

図 9‐8: Mali GPU のブロ ッ ク図

X-Ref Target - Figure 9-8

GeometryProcessor

MMU

AXI 64-bit

L2 Cache (64 KB)

PixelProcessor

MMU

AXI 64-bit

PixelProcessor

MMU

AXI 64-bit

AXI 128-bitAPB 32-bit

GPU 自体の動作、 および GPU と それ以外のシステム と の通信を理解するには、 図 9-9 に示すよ う な GPU に関する

データ フ ローを見るのが も効果的です。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 161UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 162: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 9 章: マルチ メ デ ィ ア

図 9‐9: GPU に関するデータ  フ ローの概略図

X-Ref Target - Figure 9-9

この図のステ ッ プ 1 では、 APU 上で動作する ソ フ ト ウ ェアが GL ラ イブラ リ を使用し て頂点データ を RAM の頂点

バッ フ ァーに書き込みます。 ステ ッ プ 2 では、 これらの頂点データがジオ メ ト リ プロセ ッサに読み込まれて処理さ

れ、 ステ ッ プ 3 でポ リ ゴン リ ス ト と し て書き込まれます。 ステ ッ プ 4 では、 ポ リ ゴン と テ ク スチャがピ ク セル プロ

セ ッ サに読み込まれ、 ステ ッ プ 5 で 終イ メ ージ と し てフ レーム バッ フ ァーにレンダ リ ング されます。

GPU の動作は一般にレ ンダ リ ング パイプラ イ ン と呼ばれるプロセスで構成され、 アプ リ ケーシ ョ ンから 初に受け

取ったデータ セ ッ ト をい く つかの工程を経て イ メ ージにレ ンダ リ ング し て画面に表示し ます。 現在の GPU はプロ グ

ラ マブル パイプラ イ ン と い う 概念に基づいて構成されています。 Zynq UltraScale+ MPSoC デバイ スの GPU パイプラ

イ ン (図 9-10) は GLSL API (OpenGL Shading Language) でプロ グ ラ ム し ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 162UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 163: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 9 章: マルチ メ デ ィ ア

図 9‐10: Zynq UltraScale+ MPSoC デバイスの Mali 400 ベース GPU のパイプ ラ イ ン

X-Ref Target - Figure 9-10

Geometry Processing Pixels Processing

Application Vertex Setup Vertex Shader Rasterizer Fragment Shader Frame buffer

Texturing

ジオ メ ト リ 処理ステージでは、 アプ リ ケーシ ョ ンから送信された生の頂点データ を処理し ます。 描画コマン ド を実

行し て頂点配列オブジェ ク ト で指定された頂点属性データ を頂点シェーダーに入力する と、 個々の頂点が処理され、

レ ンダ リ ング不要な頂点が削除されます。 後にこれらの頂点を連結し てプ リ ミ テ ィ ブを作成し、 次のステージに

渡し ます。 ラ ス タ ラ イザーは個々のプ リ ミ テ ィ ブを受け取 り 、 これら をプ リ ミ テ ィ ブのサンプル カバレ ッ ジに基づ

いてフ ラ グ メ ン ト と呼ばれるデ ィ ス ク リ ー ト 画素に分解し ます。 フ ラ グ メ ン ト シェーダーはラ ス タ ラ イザーで生成

されたフ ラ グ メ ン ト に対し て、 深度値、 可能なステンシル値 (フ ラ グ メ ン ト シェーダーによ って変更されない)、 お

よびゼロ以上のカ ラー値を正規化し て処理し ます。 これらはすべて現在のフ レーム バッ フ ァーに書き込まれる可能

性があ り ます。

先に示し たデータ フ ロー図から もわかる よ う に、 レ ンダ リ ング パイプラ イ ンの各処理では メ モ リ と GPU の間でい

く つかの転送が実行されます。 このため、 Mali GPU では メ モ リ 転送の少ないタ イル ベースのレ ンダ ラーを採用し て

います。 このタ イル ベースのレ ンダ ラーの利点を理解するには、 まず従来の GPU の動作方式であ る即時モード

(Immediate Mode) について見てい く 必要があ り ます。 即時モード アーキテ クチャでは、 メ モ リ に保存された頂点

データはフ ラ グ メ ン ト シェーダーで処理された後、 1 つずつ直接レ ンダ リ ング されます。 描画呼び出しのたびにフ

ラ グ メ ン ト シェーダーがプ リ ミ テ ィ ブを 1 つずつ順番に処理し ます (図 9-11)。

図 9‐11: 即時モー ド  レンダラーのデータ  フ ロー

X-Ref Target - Figure 9-11

GPU Vertex Shader FIFO Fragment Shader

DDR Attributes Textures FramebufferWorking Set

X18928-032117

ブレ ン ド、 深度テス ト 、 およびステンシル テス ト を実行する たびに、 現在のフ ラ グ メ ン ト のピ ク セル座標に対応す

るデータの現在値を DRAM のオフチ ッ プ バッ フ ァーから フ ェ ッチする必要があ り ます。 1 つのフ ラ グ メ ン ト につき

多数の Read-Modify-Write 動作が発生するため、 高解像度では特にシステム メ モ リ の帯域幅が圧迫される可能性があ

り ます。 また、 GPU は高い周波数で動作する必要があ る ため、 外部 メ モ リ も一般的なシステム メ モ リ よ り 高い周波

数での動作が必要 と な り ます。 これらはいずれも GPU の消費電力増大を招き ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 163UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 164: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 9 章: マルチ メ デ ィ ア

レ ンダ リ ング時の メ モ リ ト ラ ンザク シ ョ ンを 小限に抑える ため、 Mali GPU は異なる アプローチ と し て タ イル ベー

スのレ ンダ リ ング手法を採用し ています。 タ イル と は通常、 フ レーム バッ フ ァー内の多数のピ ク セルで構成される

正方形をいいます。 処理対象のタ イルはオンチッ プ GPU メ モ リ バッ フ ァーに格納されます。 こ こには、 現在レ ンダ

リ ング し ている タ イルのフ レーム バッ フ ァー内容が格納されています。 タ イル ベースのレ ンダ リ ングではフ レーム

バッ フ ァーの内容をオフチッ プ メ モ リ と の間で転送する ト ラ フ ィ ッ ク が 小限に抑え られ、 帯域幅および メ モ リ バ

ス性能の要件を緩和でき ます。 図 9-12 に示すよ う に、 ARM Mali は 2 パス レ ンダ リ ング ス ト ラ テジを採用し ていま

す。

1 回目のパスですべてのジオ メ ト リ 処理を実行し、 2 回目のパスですべてのフ ラ グ メ ン ト 処理を実行し ます。 ジオ メ

ト リ 処理ステージでは、 レ ンダ リ ング領域を 16x16 ピ ク セルのタ イルに分割し ます。 フ ラ グ メ ン ト シェーダー コ ア

は各タ イルを完全に処理し てから次のタ イル処理を開始し ます。 Mali 400 では 2 つのピ ク セル プロセ ッ サが 2 つの

タ イルを同時にレ ンダ リ ングでき るため、 GPU スループ ッ ト が向上し ています。

図 9‐12: タ イル ベース レンダラーのデータ  フ ロー

X-Ref Target - Figure 9-12

GPU Vertex Shader Tiler Fragment Shader

DDR Attributes

LocalTile Memory

GeometryWorking Set Textures Compressed

Framebuffer

X18929-032117

外部 メ モ リ への ト ラ ンザク シ ョ ンを 小限に抑え るだけでな く 、 この手法にはも う 1 つの利点も あ り ます。 それは、

タ イルは GPU の メ モ リ 内で局所性があ る ため、 頂点データ を メ イ ン メ モ リ から フ ェ ッチし な く て もい く つかのグ ラ

フ ィ ッ ク アルゴ リ ズムを効率よ く 適用でき る と い う 点です。

ジオ メ ト リ  プロセ ッサ

こ こ まで GPU の全体的な機能について見てき ま し た。 次に、 ジオ メ ト リ プロセ ッ サ と その内部コ ンポーネン ト (図 9-13) について詳し く 説明し ます。 ジオ メ ト リ プロセ ッ サは、 イ メ ージにレ ンダ リ ング される頂点に対し てデー

タ処理を実行し ます。 その名が示すよ う に、 ジオ メ ト リ プロセ ッサはイ メ ージ ジオ メ ト リ を扱 う もので、 供給され

たデータに対し て GL ラ イブラ リ の API を使用し て数学演算を実行し ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 164UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 165: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 9 章: マルチ メ デ ィ ア

図 9‐13: Mali GPU のジオ メ ト リ  プロセ ッサのブロ ッ ク図

X-Ref Target - Figure 9-13

Geometry Processor

GPU

System Bus Interface

Vertex Shader

Command Processor

PLB Command Processor

PLB

Vertex Shader Core

Vertex Shader

Vertex Storer

Vertex Loader

Configuration Registers

MMU

L2 Cache

Pixel Processor

MMU

X15300-032817

頂点シ ェーダー

ジオ メ ト リ プロセ ッサの前半に位置する内部コ ンポーネン ト が頂点シェーダー コ アです。 この中には次のものが含

まれます。

• 頂点ローダー

° 頂点ご と に処理が必要なデータ を メ イ ン システム メ モ リ から ロードする DMA ユニ ッ ト です。

• 頂点シェーダー

° 各頂点に対し て計算を実行し ます。 パイプラ イ ンの後段で処理されるポ リ ゴン リ ス ト は、 こ の出力を使用

し て作成されます。

• 頂点ス ト ア ラー

° 頂点シェーダー コ アの出力レジス タからのデータ を メ モ リ に格納し ます。 32 ビ ッ ト 浮動小数点形式のデー

タ を固定小数点またはサイ ズの異なる浮動小数点形式のデータに変換する機能も あ り ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 165UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 166: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 9 章: マルチ メ デ ィ ア

ポ リ ゴン  リ ス ト  ビルダー

ポ リ ゴン リ ス ト ビルダー (PLB) は、 ピ ク セル シェーダーで処理するポ リ ゴンの リ ス ト を作成し ます。 前述の とお

り 、 Mali GPU はレ ンダ リ ング領域を複数のタ イルに分割し、 タ イル単位でレンダ リ ングを実行し ます。 Zynq

UltraScale+ MPSoC デバイ スの Mali 400 では、 2 つのピ ク セル プロセ ッ サがそれぞれ 2 つのタ イルを並列に処理し ま

す。 ピ ク セル プロセ ッサが処理を開始する前に、 PLB が各タ イルでレンダ リ ングするポ リ ゴンの リ ス ト を生成し て

お く 必要があ り ます。 ほかのポ リ ゴンに隠れるポ リ ゴンは リ ス ト から削除し ます。

ピ クセル プロセ ッサ

ジオ メ ト リ プロセ ッサによ ってポ リ ゴンの準備が完了し た ら、 ポ リ ゴン データがピ ク セル プロセ ッサに渡され、 こ

こ で GPU パイプラ イ ンのフ ラ グ メ ン ト シェーダー ステージが実行されます。 図 9-14 に、 各ピ ク セル プロセ ッ サの

ブロ ッ ク図を示し ます。

図 9‐14: ピ クセル プロセ ッサのブロ ッ ク図

X-Ref Target - Figure 9-14

Geometry Processor

GPU

System Bus Interface

MMU

L2 Cache

Pixel Processor

MMU

Title Writeback Unit

Tile Buffers

BlendingUnitRasterizer Fragment

Shader

Configuration Registers

Vertex Loader

Polygon List

Reader

Triangle Setup Unit

RSW

X15302-091616

各ピ ク セル プロセ ッサの動作は次の とお り です。

1. ト ラ イ アングル セ ッ ト ア ッ プ ユニ ッ ト は PLB によ って生成されたポ リ ゴン リ ス ト を入力と し て受け取 り 、 ト ラ

イ アングルを構築し ます。

2. ラ ス タ ラ イザーは入力データ を独立し たフ ラ グ メ ン ト に分割し ます。 終的にレ ンダ リ ング される フ ラ グ メ ン

ト のみが次のステージに進み、 隠れて見えないフ ラ グ メ ン ト は破棄されます。

3. フ ラ グ メ ン ト シェーダー コ アは、 プ リ ミ テ ィ ブからの各フ ラ グ メ ン ト がどのよ う に見え るかを計算し ます。

4. ブレ ンデ ィ ング ユニ ッ ト は計算後のフ ラ グ メ ン ト を タ イル バッ フ ァーにブレ ン ド し、 終的な イ メ ージを生成

し ます。 フ ラ グ メ ン ト をブレ ン ドする方法は、 フ ラ グ メ ン ト を不透明にするか、 一部を透明にするかを設定で

き ます。 低解像度でイ メ ージのエ ッ ジを目立たな く する アンチ エイ リ アシング処理も こ のステージで適用され

ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 166UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 167: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 9 章: マルチ メ デ ィ ア

5. タ イル バッ フ ァー モジュールは前のステージで完成し た タ イルを処理し、 不要なフ ラ グ メ ン ト を画面に描画し

ないよ う にフ ラ グ メ ン ト に対し て各種テス ト を実行し ます。

6. タ イル ラ イ ト バッ ク ユニ ッ ト はタ イル バッ フ ァーの内容をシステム メ モ リ に書き戻し ます。

Linux GPU ソ フ ト ウ ェ ア ス タ ッ ク

その他のマルチ メ デ ィ ア コ ンポーネン ト 同様、 Zynq UltraScale+ MPSoC デバイ スの GPU は Linux 環境でサポー ト さ

れます。 図 9-15 に、 GPU を動作させるための Linux パッ ケージの一部と し てザイ リ ン ク スが提供する Linux ベース

のソ フ ト ウ ェア ス タ ッ ク を示し ます。

図 9‐15: Linux GPU ソ フ ト ウ ェ ア ス タ ッ ク

X-Ref Target - Figure 9-15

Linux GPU ソ フ ト ウ ェ ア ス タ ッ ク には次のレ イヤーがあ り ます。

• 下層には Mali カーネル ド ラ イバーがあ り ます。 こ のレ イヤーは MMU、 GP、 PP、 L2 キ ャ ッ シュ、 PMU など

の各種ハード ウ ェ ア コ ンポーネン ト の ド ラ イバーで構成されます。

• ド ラ イバーの上位にはユーザー ラ イブラ リ があ り ます。

° Mali 共通ユーザー ラ イブラ リ には GPU 共通のラ イブラ リ が含まれます。

° EGL は、 OpenGL ES や OpenVG などの Khronos レンダ リ ング API と下層のネイテ ィ ブ プラ ッ ト フ ォーム

ウ ィ ン ド ウ システムの間のイ ン ターフ ェ イ スです。 EGL はグ ラ フ ィ ッ ク ス コ ンテキス ト 管理、 サーフ ェ ス/

バッ フ ァー バイ ン ド、 レンダ リ ング同期を実行し、 ほかの Khronos API を使用して高性能で高速な 2D およ

び 3D 混合レンダ リ ングを実現し ます。

° OpenGL (Open Graphics Language) は 3D グ ラ フ ィ ッ ク ス向けのオープンな業界標準 API で、 ハード ウ ェ ア ア

ク セラ レーシ ョ ンを利用し て、 テ ク スチャ処理を し た三角形の描画に対応し ます。 OpenGL は基本的にはグ

ラ フ ィ ッ ク ス ハード ウ ェ アに対する ソ フ ト ウ ェ ア イ ン ターフ ェ イ スです。

° OpenVG は 2D グ ラ フ ィ ッ ク スのハード ウ ェ ア ア ク セ ラ レーシ ョ ン用 API です。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 167UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 168: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 9 章: マルチ メ デ ィ ア

• ス タ ッ ク の 上位にはグ ラ フ ィ ッ ク ス アプ リ ケーシ ョ ンがあ り ます。

ARM Mali GPU 上でのデバッ グ

Mali グ ラ フ ィ ッ ク ス デバッ ガー (MGD) は、 Mali ハード ウ ェ アを使用する開発者が Mali GPU 上で動作するプロ グ ラ

ムをデバッ グするためのツールです。 図 9-16 に、 その動作を ま と めます。

図 9‐16: Mali グラ フ ィ ッ クス デバッ ガー (MGD)

X-Ref Target - Figure 9-16

MGD には、 アプ リ ケーシ ョ ンで実行し ている GPU 処理の理解に役立つ次のよ う な機能があ り ます。

• 描画呼び出し (Draw Call) のステ ッ プ実行

• テ ク スチャ使用状況の表示

• シェーダー統計情報

• 頂点属性

• ステー ト 表示

• 動的 適化ア ド バイ ス

Zynq UltraScale+ MPSoC デバイ ス を搭載し たザイ リ ン ク ス ZCU102 評価キ ッ ト での MGD の使用方法の詳細は、

「Zynq UltraScale+ MPSoC グ ラ フ ィ ッ ク ス : ARM Mali グ ラ フ ィ ッ ク ス デバッ ガー (MGD) を使用し た GPU アプ リ ケー

シ ョ ンのデバッ グ」 の Wiki ページ [参照 19] を参照し て く ださい。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 168UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 169: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 9 章: マルチ メ デ ィ ア

VCU

一部の Zynq UltraScale+ MPSoC デバイ スには、 プロ グ ラ マブル ロ ジ ッ ク (PL) にビデオ コーデッ ク ユニ ッ ト (VCU)

があ り ます。 VCU はビデオ データのエン コード /デコード速度が重視される ビデオ アプ リ ケーシ ョ ンに特に適し て

います。 VCU は H.264 および H.265 フ ォーマ ッ ト の同時デコード /エン コード をサポー ト し ています。 図 9-17 に、 シ

ステム概略図における VCU の位置を示し ます。

図 9‐17: Zynq UltraScale+ MPSoC デバイスの VCU の位置

X-Ref Target - Figure 9-17

VCU には独立し たビデオ エン コード ユニ ッ ト とデコード ユニ ッ ト があ り ます。 各ユニ ッ ト はマイ ク ロ コ ン ト ロー

ラー ユニ ッ ト (MCU) によ って制御されます。 こ の MCU は、 AXI イ ン ターフ ェ イ スから受信し たエン コード または

デコード対象データのフ ローを制御し ます。 APU からデコーダーまたはエン コーダーの MCU ユニ ッ ト にコマン ド

が渡され、 エン コーダーの場合は各フ レーム、 デコーダーの場合は各ス ラ イ ス またはタ イルに対し て処理が実行さ

れます。 MCU へのコマン ド はレジス タ経由で渡すこ と も、 メ イ ン メ モ リ にコ ピーし て MCU が読み出すこ と もでき

ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 169UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 170: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 9 章: マルチ メ デ ィ ア

図 9-18 に、 VCU のビデオ エン コーダーのアーキテ クチャ を示し ます。

図 9‐18: VCU のビデオ エン コーダーのアーキテ クチャ

X-Ref Target - Figure 9-18

VCU のエン コーダー ユニ ッ ト には 32 ビ ッ ト ス レーブ AXI イ ン ターフ ェ イ スが 1 つあ り 、 APU はこれを使用し てエ

ン コーダー ユニ ッ ト と通信し てエン コーダー ユニ ッ ト の構成およびエン コード動作の開始/停止を実行し ます。 AXI

マス ター イ ン ターフ ェ イ スは MCU 命令のフ ェ ッチ用に 2 つ、 MCU データのロード /ス ト ア用に 1 つを使用し ます。

MCU は 2 つの 128 ビ ッ ト AXI イ ン ターフ ェ イ ス を使用し てエン コード対象データ を抽出し、 エン コード済みデータ

を書き戻し ます。 これ以外にも、 VCU には必要に応じ てエン コーダーを PL BRAM または UltraRAM ブロ ッ ク に接続

し て使用するためのイ ン ターフ ェ イ スがあ り ます。 図 9-19 に、 VCU のビデオ デコーダーのアーキテ クチャ を示し

ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 170UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 171: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 9 章: マルチ メ デ ィ ア

図 9‐19: VCU のビデオ デコーダーのアーキテ クチャ

X-Ref Target - Figure 9-19

ビデオ デコーダー ユニ ッ ト も エン コーダー ユニ ッ ト と同様のアーキテ クチャ を使用し て動作し ます。 エン コーダー

の場合 と同様、 2 つの AXI マス ター イ ン ターフ ェ イ ス を使用し てデコード対象データ をフ ェ ッチし、 デコード済み

データ を メ モ リ に書き込みます。

VCU は低レ イ テンシ モード にも設定でき ます。 この場合、 入力から コーデッ ク (またはコーデッ ク からの出力) まで

のレ イ テンシは削減されますが、 圧縮品質が低下し ます。

メ モ リ  ト ポロジ

前述の とお り 、 VCU の動作では メ モ リ からのデータ取得と メ モ リ へのデータ保存が発生し ます。 VCU は PL の一部

であ るため、 コ ンフ ィ ギュ レーシ ョ ンに応じ て 3 つの メ モ リ ト ポロ ジを使用でき ます。 具体的には、 次のいずれか

の構成が可能です。

1. DDR コ ン ト ローラー経由で DDR RAM を使用する方法

2. PL で Memory Interface Generator (MIG) を使用し て外部 メ モ リ に接続する方法 (第 6 章 「 メ モ リ 」 参照)

3. 上の 2 つを組み合わせた方法

図 9-20 ~図 9-22 にこれらの構成を示し ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 171UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 172: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 9 章: マルチ メ デ ィ ア

図 9‐20: DDR コ ン ト ローラー経由でアクセス可能な RAM を使用し た VCU

X-Ref Target - Figure 9-20

図 9‐21: PL で Memory Interface Generator を使用し た VCU

X-Ref Target - Figure 9-21

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 172UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 173: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 9 章: マルチ メ デ ィ ア

図 9‐22: DDR RAM と  PL の MIG を組み合わせて使用し た VCU

X-Ref Target - Figure 9-22

前述の とお り 、 マルチ メ デ ィ ア アプ リ ケーシ ョ ンの設計で考慮すべき も重要な事項は メ モ リ 帯域幅です。 GPU や

DisplayPort と は異な り 、 VCU はオプシ ョ ンで PL の リ コ ンフ ィ ギ ャ ラブル ロ ジ ッ ク を使用し て メ モ リ 帯域幅を拡大

でき、 PL 内の メ モ リ コ ン ト ローラーを使用する こ と で DDR コ ン ト ローラーのみを使用し た場合よ り も広い帯域幅

を確保でき ます。 メ モ リ 帯域幅の説明、 およびシステム デザイ ンで メ モ リ 帯域幅が不足する場合の調整方法の詳細

は、 第 6 章 「 メ モ リ 」 を参照し て く ださい。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 173UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 174: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 9 章: マルチ メ デ ィ ア

Linux ビデオ コーデ ッ ク  ド ラ イバー ス タ ッ ク

これまで説明し たマルチ メ デ ィ ア コ ンポーネン ト 同様、 Zynq UltraScale+ MPSoC デバイ スの VCU は Linux 環境でサ

ポー ト されます。 図 9-23 に、 VCU を動作させる ための Linux パッ ケージの一部と し てザイ リ ン ク スが提供する

Linux ベースのソ フ ト ウ ェ ア ス タ ッ ク を示し ます。

図 9‐23: Linux ビデオ コーデッ ク  ド ラ イバー ス タ ッ ク

X-Ref Target - Figure 9-23

Video Application

Open MAX Implementation Layer (OMX IL)

VCU Hardware

MCU Decodercore+

Decoder IPMCU Encoder

core+Encoder IP

gstreamer

gstreamer OMX IL plugins

Driver APIs

Kernel Driver(ioctl)

User space

Kernel space

Hardware

Linux ビデオ コーデッ ク ド ラ イバー ス タ ッ ク には次のレ イヤーがあ り ます。

• ハード ウ ェ アの上位に位置する 下層のス タ ッ ク がカーネル空間です。 これは Video for Linux 2 (V4L2) ド ラ イ

バー と I/O Control (ioctl) カーネル ド ラ イバーで構成されます。 V4L2 はビデオ キ ャプチャに使用する標準 Linux

カーネル イ ン ターフ ェ イ スです。 V4L2 にはキ ャプチャ寸法と カ ラー フ ォーマ ッ ト を選択するための専用イ ン

ターフ ェ イ スがあ り ます。 Memory-to-Memory デバイ スがサポー ト されます。 また、 メ モ リ 割 り 当てやバッ フ ァ

リ ングなどの一般的な機能も あ り ます。

• カーネル空間の上位にはユーザー空間があ り ます。 このレ イヤーは Gstreamer/Bellagio OMX IL および OpenMAX

ラ イブラ リ で構成されます。

° Gstreamer は、 各種 メ デ ィ ア処理システムを連結し て複雑なワーク フ ロー (あ る フ ォーマ ッ ト でデータ を読

み込み、 処理後に別のフ ォーマ ッ ト でデータ を出力する など) を完成させるパイプラ イ ン ベースのマルチ

メ デ ィ ア フ レーム ワーク です。 Bellagio OMX IL (OpenMAX Integration Layer) は、 プラ ッ ト フ ォーム上の

ハード ウ ェ ア ア ク セラ レータにア ク セスでき る標準 API です。

° OpenMAX ラ イブラ リ は、 マルチ メ デ ィ ア コーデッ クおよびアプ リ ケーシ ョ ン移植のためのク ロ スプラ ッ

ト フ ォーム API 群です。

• ス タ ッ ク の 上位にはビデオ アプ リ ケーシ ョ ンがあ り ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 174UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 175: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 10 章

ペ リ フ ェ ラルZynq UltraScale+ デバイ スは I2C、 シ リ アル ペ リ フ ェ ラル イ ン ターフ ェ イ ス (SPI)、 汎用 I/O (GPIO) などのレガシ I/O

イ ン ターフ ェ イ ス、 および PCIe、 SATA、 USB 3.0 などの 新規格の両方を含む非常に多 く のペ リ フ ェ ラルをサポー

ト し ています。 Zynq® UltraScale+™ デバイ スでサポー ト される個々のペ リ フ ェ ラル イ ン ターフ ェ イ スについての概

要および詳細を説明するのはこのガイ ド の目的ではあ り ません。 この章では、 各種ペ リ フ ェ ラルをサポー ト する方

法およびこれら を使用する際に考慮すべき ト レード オフについて説明し ます。

ペ リ フ ェ ラル要件を定義する

I/O 要件を理解する こ とはシステム設計の基本であ り 、 これを理解できれば Zynq UltraScale+ デバイ スでどのペ リ フ ェ

ラル I/O 機能を使用する必要があるかを容易に判断でき る よ う にな り ます。 このため、 ペ リ フ ェ ラルの要件定義に関

して Zynq UltraScale+ デバイ ス特有の考慮事項はあ り ません。 一般的な SoC の場合と同様の要件に従って く ださい。

ただし Zynq UltraScale+ デバイ スで 1 つだけ注意が必要なのは、 「電源に関する考慮事項」 の章で説明し た よ う にペ

リ フ ェ ラル イ ン ターフ ェ イ ス を含むシステム ブロ ッ ク全体が 4 つの電源ド メ イ ンに分割されている と い う 事実で

す。 し たがって、 どのペ リ フ ェ ラルを使用するかは、 パワー マネージ メ ン ト の要件を考慮し て決定する必要があ り

ます。 反対に、 システムのパワー マネージ メ ン ト を設計する際にはどのペ リ フ ェ ラルが必要か、 そし てそのペ リ

フ ェ ラルがどの電源ド メ イ ンに属するかを考慮する必要があ り ます。

この作業を進めるにあた り 、 まずは次の質問に答えてみて く ださい。

• どのペ リ フ ェ ラルが必要ですか。

• そのペ リ フ ェ ラルはどの電源ド メ イ ンに属し ますか。

• システムのウ ェーク ア ッ プに使用するペ リ フ ェ ラルはあ り ますか。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 175UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 176: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 10 章: ペ リ フ ェ ラル

ペ リ フ ェ ラルの設計手法

これまでの章 と同様、 こ こ でも システムの概略図を使用し ながらペ リ フ ェ ラルの使用に関する設計手法を説明し て

いき ます。 次の図は、 各電源ド メ イ ンに属するペ リ フ ェ ラルおよびほかの電源ド メ イ ン と の関係を示し た ものです。

デバイ スの外部境界、 すなわちチッ プのピンを経由し て外部世界 と接続する場所は、 システムの外周にグレーで

「Device Boundary (デバイ ス境界)」 と し て示し ています。

図 10‐1: 各電源ド メ イ ンに属するペ リ フ ェ ラル

X-Ref Target - Figure 10-1

Device Boundary

GigEth

USBNAND

GPIOQuad-

SPI

SD/eMMC

I2C

UARTCAN

SPI

Lower PowerDomain

PCIe

SATA

DisplayPort

Full PowerDomain

GTHQuad

Device Boundary

EMIO (Except USB, Quad-SPI and NAND)

MIOPS-GTR

100GEth

PCIeGen4

Interlaken

VCU

Programmable Logic Power

Domain

GTYQuand

USB 3.0ULPI

RGMIISGMII

X18886-032017

注記: この図は Zynq UltraScale+ MPSoC デバイ スの内部ブロ ッ ク を正確に表現し た ものではな く 、 こ のセ ク シ ョ ンで

説明する概念を図にし た ものです。

前のセ ク シ ョ ンで説明し た よ う に、 システムを設計する際には各ペ リ フ ェ ラルがどの電源ド メ イ ンに属し ているか

を意識し てお く 必要があ り ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 176UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 177: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 10 章: ペ リ フ ェ ラル

Zynq UltraScale+ デバイ スのペ リ フ ェ ラルおよびそれらが属する電源ド メ イ ンに関する も う 1 つの重要な点と し て、

ペ リ フ ェ ラルを外部世界に接続する方法が電源ド メ イ ンご と に異なる こ と も理解し てお く 必要があ り ます。 低電力

ド メ イ ン (LPD) は MIO (Multiplexed I/O) イ ン ターフ ェ イ ス、 フル電力ド メ イ ン (FPD) は PS-GTR イ ン ターフ ェ イ ス を

それぞれ使用し て外部世界に接続し ます。 プロ グ ラマブル ロ ジ ッ ク (PL) 電源ド メ イ ン (PLPD) は、 チッ プの PL ピン

をどのよ う に接続するかは PL の構成によ って決ま り ます。 一般に、 LPD に属するペ リ フ ェ ラルは低速ペ リ フ ェ ラル

に分類され、 FPD に属するペ リ フ ェ ラルは高速ペ リ フ ェ ラルに分類されます。

MIO イ ン ターフ ェ イ スは、 マルチプレ ク サーを利用し て LPD ペ リ フ ェ ラルを 78 本のピンに接続し ます。 ピン機能

の割 り 当ては、 MIO コ ン ト ローラーのレジス タにプロ グ ラ ム し て決定し ます。 これは通常、 ザイ リ ン ク ス SDK ツー

ルで生成し た第 1 段階ブー ト ローダー (FSBL) に含まれる コ ンフ ィ ギュ レーシ ョ ン コード を使用し て行います。MIO

コ ン ト ローラーの構成は、 この方法を推奨し ます。 どのピンをどのペ リ フ ェ ラルに使用でき るかの詳細は、 『Zynq

UltraScale+ MPSoC テ ク ニカル リ フ ァ レン ス マニュ アル』 (UG1085) [参照 7] を参照し て く ださい。 すべてのピンをす

べてのペ リ フ ェ ラルに使用でき るわけではないため、 必要なペ リ フ ェ ラル と利用可能なピンの数を十分に検討する

必要があ り ます。

PL は リ コ ンフ ィ ギュ レーシ ョ ンが可能なため、 PL のデバイ ス境界にあ る I/O ピンの一部を PL 内の IP 以外の用途で

使用する よ う に構成でき ます。 具体的には、 EMIO (Extended Multiplexed I/O) を使用し て LPD ペ リ フ ェ ラルを PL ピ

ンに接続でき ます。 ただし例外 と し て USB、 Quad-SPI および NAND は EMIO 経由では接続でき ません。 EMIO の使

用法、 および EMIO 経由で接続し た LPD ペ リ フ ェ ラルに対する制限事項は、 『Zynq UltraScale+ MPSoC テ ク ニカル リ

フ ァ レ ン ス マニュ アル』 (UG1085) [参照 7] を参照し て く ださい。 ただし、 MIO ピンが不足し て必要なペ リ フ ェ ラル

を利用でき ない場合は EMIO を使用する こ と によ って こ の問題を回避でき ます。AXI マス ターから PL 内の IP にア ク

セスする方法 と し て EMIO を使用する こ と もでき ますが、 PL 内の IP をシステムのその他のブロ ッ ク に接続する方法

はい く つかあ るため、 どの方法を用いるかは第 5 章 「プロ グ ラ マブル ロ ジ ッ ク」 を参照し て十分に検討し て決定し

て く ださい。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 177UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 178: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 10 章: ペ リ フ ェ ラル

PS-GTR は、 次の図の赤で囲んだ FPD の SIOU (Serial Input Output Unit) の一部です。

図 10‐2: SIOU

X-Ref Target - Figure 10-2

CSU PSMU

RPU

GKv1

Cortex-R532K I/D Cache128 KB TCM

Cortex-R532K I/D Cache128 KB TCM

OCM(256 KB)

To P

L From

PL

APU

Cortex-A53 L1 I$/D$

GICv2

Cortex-A53 L1 I$/D$

Cortex-A53 L1 I$/D$

Cortex-A53 L1 I$/D$

SCU

ACP L2 with ECC [1MB]

128-bit ACE

CCI

TCU

Switch

FPD-DMA

DDRC (DD3/4, LP DDR3/4)

FullPower

LowPower

BatteryPower

BPU

64-b

it

PL-ACE

TBU

TBU PCIe Gen2

1/2/4

2 x SATAv3.0

DisplayPort v1.2 p1/3

Inte

rcon

nect

Mat

rix

PS

-GTR

x4

128-bit

GPUMali-4 MP2(64 KB L2)

PL

PCIeGTH

or GTY

AMS HDI/O

Vide

o C

odec

H.2

64/5

SGMIIUSB3

128-

bit

128-bit128-bit

128-bit

To CCI

To ACP

From LP

64-bit

CFG

TBU

TBU

TBU

LPD-DMA

128-

bit

TBU

128-bit64-bit

128-

bit

128-

bit

32 bit/64 bit

Processor

ROM 128 KB

RAM 32 KB

SHAAESRSA

Processor

ROM 128 KB

RAM 32 KB

SYSMON

EMIO

GPIOs

2x UART

2x I2C

2x CAN

2x SPI

QSPI

2x SDIOSD3.0

NANDONFI 3.1

2x USB3

4 x GigaE128D

UL PI

M SControl Path

M SControl Path/Datapath

M SDatapath

MIO

SIOU

X18888-032117

FPD の PS-GTR ト ラ ンシーバーは 4 つのマルチ ギガビ ッ ト レーンをサポー ト し てお り 、 外部世界からはこれらの

レーンを使用し て FPD ペ リ フ ェ ラルにア ク セス し ます。 また、 PS-GTR は LPD のギガビ ッ ト イーサネ ッ ト および

USB 機能へのア ク セスにも使用でき、 その場合、 SGMI PHY ア ク セスおよび USB 3.0 をそれぞれ提供し ます。 4 つの

異なる PS-GTR レーンは 1.25Gbps ~ 6Gbps の周波数で動作し ます。 PS-GTR 経由で接続する各ペ リ フ ェ ラル ブロ ッ

ク には、 PS-GTR レジス タ をプロ グ ラ ム し て PS-GTR のいずれか 1 つのレーンを割 り 当てる必要があ り ます。 MIO お

よび LPD ペ リ フ ェ ラルの場合と同様、PS-GTR には PS-GTR がデバイ スのピンに同時に配線でき る数よ り も多 く のペ

リ フ ェ ラル ブロ ッ ク が接続されます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 178UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 179: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 10 章: ペ リ フ ェ ラル

し たがって、 FPD のペ リ フ ェ ラルおよび LPD のギガビ ッ ト イーサネ ッ ト と USB 機能の う ち、 どのペ リ フ ェ ラルを

PS-GTR に接続するのかを選択する必要があ り ます。 ギガビ ッ ト イーサネ ッ ト は PS-GTR の SGMII を利用でき な く

て も、 RGMII を使用し て イーサネ ッ ト PHY に接続でき ます。 ギガビ ッ ト イーサネ ッ ト は EMIO も使用でき ますが、

その場合の接続は RGMII/SGMII ではな く GMII です。 USB ブロ ッ クは MIO 経由でも接続でき ますが、 その場合は

ULPI に限られます。

ペ リ フ ェ ラルに関する システム設計において、 パワー マネージ メ ン ト に関し て も う 1 つ注意が必要なのが、 ウ ェー

ク ア ッ プ信号です。 プラ ッ ト フ ォーム管理ユニ ッ ト (PMU) の汎用入力 (GPI) のい く つかは、 外部ウ ェーク ア ッ プ信

号に使用でき ます。 また、 USB 2.0 またはイーサネ ッ ト からのウ ェーク ア ッ プも可能ですが、 その場合は ULPI また

は RGMII をそれぞれ使用し ます。

GPIO

MIO モジュールで使用可能な全 78 ピンは、 汎用 I/O (GPIO) ペ リ フ ェ ラルを使用し て制御し ます。 EMIO を使用する

と、 GPIO ペ リ フ ェ ラルは 大 96 本の PL ピンを入力と し て使用し、 192 本の PL ピンを出力と し て使用でき ます (96

本が純粋な出力で、 残 り は出力イネーブル)。 MIO に接続し た GPIO 出力は ト ラ イ ステー ト (Low、 High またはハイ

イ ンピーダン ス) が可能です。 次に、 GPIO ペ リ フ ェ ラル と MIO モジュール、 および EMIO 経由での PL と の接続を

ブロ ッ ク図で示し ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 179UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 180: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 10 章: ペ リ フ ェ ラル

図 10‐3: GPIO と  MIO の接続、 および EMIO 経由での PL との接続

X-Ref Target - Figure 10-3

AP

B Interface

APB

Event Detector

Configuration

Registers

PL

MIOPins

Pins

PS

GPIO Module

EMIO Interface to PL

gpio_in[n]

gpio_out[n]

gpio_oe[n]

gpio_in[0]

gpio_out[0]

gpio_oe[0]

gpio_in[n]

gpio_out[n]

gpio_oe[n]

gpio_in[0]

gpio_out[0]

gpio_oe[0]

X18889-032017

GPIO ピンの機能はピン単位またはグループ単位でプロ グ ラ ムでき ます。 ピンは 6 つのバン ク (バン ク 0 ~ 5) にグ

ループ化されます。 バン ク 0 ~ 2 には MIO イ ン ターフ ェ イ ス経由でア ク セス し、 バン ク 3 ~ 5 には EMIO 経由でア

ク セス し ます。 次の図に、 GPIO ペ リ フ ェ ラルのバン ク を示し ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 180UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 181: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 10 章: ペ リ フ ェ ラル

図 10‐4: GPIO バン ク

X-Ref Target - Figure 10-4

GPIOBank 0

MIO

26-bit

GPIOBank 1

26-bit

GPIOBank 2

26-bit

Pin

x78

32-bit

EMIOGPIOI[95;64]EMIOGPIOO[95;64]EMIOGPIOTN[95;64]

EMIO Interface to PL

EMIOGPIOI[31:0]EMIOGPIOO[31:0]EMIOGPIOTN[31:0]

32-bit

EMIOGPIOI[63:32]EMIOGPIOO[63:32]EMIOGPIOTN[63:32]

32-bit

GPIOBank 3

GPIOBank 4

GPIOBank 5

X18890-032017X18891-032017

割 り 込みをピンに ト リ ガーする方法は、 次のいずれかにカス タマイ ズでき ます。

• レベル セン ス : High または Low

• エ ッ ジ セン ス : 立ち上が り 、 立ち下が り 、 または両方

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 181UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 182: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 10 章: ペ リ フ ェ ラル

I2C

I2C は低速ペ リ フ ェ ラル と の接続に使用する シンプルな 2 線式バスです。 2 本のラ イ ンの う ち 1 本がデータ ラ イ ン

(SDA) で、 も う 1 本はク ロ ッ ク信号 (SCL) の駆動に使用し ます。 I2C バス上の ノ ード はマス ターまたはス レーブのい

ずれかです。 マス ター ノード はバスのク ロ ッ ク信号を駆動し、 ス レーブ ノード と の通信を開始し ます。 ス レーブ

ノード はク ロ ッ ク信号を受信し、 マス ターの要求に応答し ます。 I2C プロ ト コルは複数のマス ターもサポー ト し てい

ます。 この場合、 各マス ターはほかのマス ターを認識し、 ほかのマス ターが使用中は I2C バス を使用し ない必要が

あ り ます。

Zynq UltraScale+ デバイ スは I2C コ ン ト ローラー モジュールを内蔵し てお り 、 マルチ マス ター デザイ ンではマス

ター モード でも ス レーブ モード でも動作し ます。 次に、 Zynq UltraScale+ デバイ スの I2C コ ン ト ローラーのブロ ッ ク

図を示し ます。

図 10‐5: I2C ブロ ッ ク図

X-Ref Target - Figure 10-5

APBInterface

InterruptsInterrupts

APB

StatusRegister

RX DataRegister

TX DataRegister

ControlRegister

ControlFSM

RX ShiftRegister

ClockEnable

Generator

SCL/SDAInterface

X18892-032017

このコ ン ト ローラーの動作は、 レジス タ プロ グ ラ ミ ングによ ってマス ター ノード またはス レーブ ノ ード に設定でき

ます。 また、 このコ ン ト ローラーはポー リ ング モードおよび割 り 込みド リ ブン モード でも使用でき ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 182UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 183: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 10 章: ペ リ フ ェ ラル

SPI

シ リ アル ペ リ フ ェ ラル イ ン ターフ ェ イ ス (SPI) バスは、 電子デバイ ス間で I2C よ り も高速な通信手段と し て使用し

ます。 SPI バス上の ノード はマス ターまたはス レーブのいずれかです。 マス ターは複数存在でき ます。 このプロ ト コ

ルは 4 本のラ イ ンを使用し て通信し ます。

• MOSI: マス ター出力/ス レーブ入力

• MISO: マス ター入力/ス レーブ出力

• SCLK: シ リ アル ク ロ ッ ク

• SS: ス レーブ セレ ク ト

MOSI および MISO 信号はマス ターと ス レーブ間の全二重通信に使用し ます。 Zynq UltraScale+ デバイ スには同一の

SPI コ ン ト ローラーが 2 つあ り 、 対応する ソ フ ト ウ ェ ア ド ラ イバーを使用し て これら を独立し て同時に制御し て動作

させる こ と ができ ます。 次に、 Zynq UltraScale+ デバイ スの SPI コ ン ト ローラーのブロ ッ ク図を示し ます。

図 10‐6: SPI コ ン ト ローラーのブロ ッ ク図

X-Ref Target - Figure 10-6

TX FIFO

MI

APBInterface

Transmit

SPI CTRL

RX FIFO

SPIMaster

SPISlave

ReceiveSlaveSync

SO

SS[2:0]

SCLK

SCLK

SS

SI

Interrupt Interrupts

MO

MOSI

SPI Interface

Pins

MOSI

SCLK

SS

MISO

APB

X18893-032017

Zynq UltraScale+ デバイ スの SPI コ ン ト ローラーは次の 3 つのモード のいずれかに設定でき ます。

• ス レーブ モード : SPI バスに接続されたほかのマス ターがコ ン ト ローラー ク ロ ッ ク を駆動し ます。

• マス ター モード : SPI コ ン ト ローラーがス レーブ ノード のク ロ ッ ク を管理し ます。 通信相手のス レーブは、 コ ン

ト ローラーが SS ラ イ ンを駆動し て選択し ます。

• マルチ マス ター モード : 転送を実行し ていない間、 ほかのマス ター と の競合を避ける ためにコ ン ト ローラーを

無効にし てお く 必要があ り ます。 別のコ ン ト ローラーがバス を使用し ているかど う かは SS 信号を監視し て検出

し ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 183UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 184: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 10 章: ペ リ フ ェ ラル

SPI コ ン ト ローラーはダ イ レ ク ト メ モ リ ア ク セス (DMA) をサポー ト し ません。 し たがって通信はコ ン ト ローラーの

AXI イ ン ターフ ェ イ ス を使用し たレジス タ読み出し /書き込みによ って実行し ます。 コ ン ト ローラーには深さ 128 バ

イ ト の FIFO (TX および RX) があ り ます。 ス レーブにデータ を送信する場合、 マス ターはレジス タ を使用し て

TXFIFO にデータ を書き込みます。 ス レーブからデータ を読み出す場合、 マス ターは RXFIFO から読み出し ます。

1 バイ ト を TXFIFO に書き込むたびに RXFIFO に 1 バイ ト が格納されます。 TXFIFO に n バイ ト を書き込むたびに

RXFIFO には n バイ ト が格納されるため、 ソ フ ト ウ ェ アで RXFIFO を読み出し てから次の転送を開始する必要があ り

ます。

コ ン ト ローラーは、 データ転送中にス レーブ セレ ク ト (SS) ラ イ ンを自動的に制御する よ う にも、 ソ フ ト ウ ェアで制

御する よ う にも設定でき ます。 後者のモード (手動モード ) では、 SPI ソ フ ト ウ ェアでレジス タ を操作し て SS ラ イ ン

を有効にする必要があ り ます。

UART

PART (Universal Asynchronous Receiver/Transmitter (UART) は非同期シ リ アル通信用のシンプルなプロ ト コルです。

2 つの UART モジュール間の通信のフ ォーマ ッ ト と転送速度は設定可能ですが、 通信を確立する前に指定する必要が

あ り ます。

Zynq UltraScale+ デバイ スの UART は幅広いパラ メ ーター値をサポー ト し ています。

• プロ グ ラ ム可能なボー レー ト

• 6、 7、 または 8 データ ビ ッ ト

• 1、 1.5、 または 2 ス ト ッ プ ビ ッ ト

• 奇数、 偶数、 スペース、 マーク、 パ リ テ ィ な し

注記: パラ メ ーターの詳細は、『Zynq UltraScale+ MPSoC テ ク ニカル リ フ ァ レ ン ス マニュ アル』 (UG1085) [参照 7] を参

照し て く ださい。

これらのパラ メ ーターは、 UART コ ン ト ローラー専用のレジス タで変更でき ます。

図 10‐7: UART コ ン ト ローラー

X-Ref Target - Figure 10-7

APBSlave

Interface

PS AXIInterconnect

Control andStatus Register

Interrupts

InterruptController (GIC)

OptionalDivide by 8

UART Reference Clock

TXFIFO

RXFIFO

Transmitter

Receiver

ModeSwitch MIO/EMIO

EMIOCTS, RTS, DSR, DCD, RI, DTR

UART TxD

UART RxD

Baud RateGenerator

X18898-032017

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 184UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 185: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 10 章: ペ リ フ ェ ラル

コ ン ト ローラーは受信 (RX) と送信 (TX) の 2 つの部分で構成されます。各パスには 64 バイ ト の FIFO バッ フ ァーがあ

り ます。

UART コ ン ト ローラーは 4 種類のモード に設定でき ます。 その う ち 3 つはアプ リ ケーシ ョ ン またはハード ウ ェアのテ

ス ト に使用し ます。

• 標準的な UART 通信には通常モード を使用し ます。

• 自動エコー モード では、 RxD で受信し たデータがレシーバー と TxD ピンの両方に送信されます。

• ローカル ループバッ ク モード では、 UART コ ン ト ローラーで送信し たデータがレシーバー側にループバッ ク し

ます。 このため、 コ ン ト ローラーは送信データ をそのま ま受信し ます。

• リ モー ト ループバッ ク モード では、 RxD 信号が TxD 信号に接続されます。 このモード では、 コ ン ト ローラー

はデータ を送信でき ません。 このモード は、 リ モー ト /ホス ト チャネルの UART レシーバーおよび ト ラ ン ス ミ ッ

ターの動作をテス ト する目的で使用し ます。

CAN コ ン ト ローラー

CAN (Controller Area Network) は自動車業界で車載デバイ ス間の通信に使用される標準バス規格です。 Zynq

UltraScale+ デバイ スには 2 つの CAN コ ン ト ローラー (CAN0、 CAN1) があ り ます。 ほかの LPD ペ リ フ ェ ラル同様、

CAN コ ン ト ローラーは MIO サブシステム または EMIO を経由し てデバイ ス境界の外部に接続し ます。 CAN コ ン ト

ローラーは内部ク ロ ッ ク を ク ロ ッ ク ソースにする こ と も、 外部ク ロ ッ ク で駆動する こ と もでき ます。 次に、 CAN コ

ン ト ローラーのシステム図を示し ます。

図 10‐8: CAN コ ン ト ローラーのシステム図

X-Ref Target - Figure 10-8

CANControllers

PL

Clock

TX, RX

TX, RX

ClockingCAN{0,1} REF clock

CAN{0,1] CPU_1x clock

IRQ ID# {60,83}

MIO-EMIORouting

EMIO

MIOPins

DeviceBoundary

TX, RX

ExternalClock

Source

ControlRegisters

APBInterconnect

SlavePort

CAN{0,1] CPU_1x reset

X18897-032017

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 185UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 186: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 10 章: ペ リ フ ェ ラル

次に、 CAN コ ン ト ローラーのブロ ッ ク図を示し ます。 データの送信用と受信用にそれぞれ専用のス ト レージ バッ

フ ァーがあ り ます。これら 2 つの FIFO バッ フ ァー (送信用の TXFIFO と受信用の RXFIFO) は 大 64 個の メ ッ セージ

を格納でき ます。 各コ ン ト ローラーには、 高優先度の送信 メ ッ セージを格納する専用バッ フ ァー TXHPB も あ り ま

す。 このバッ フ ァーに格納された メ ッ セージは TXFIFO から送信される通常の メ ッ セージ よ り も優先されます。

図 10‐9: CAN コ ン ト ローラーのブロ ッ ク図

X-Ref Target - Figure 10-9

Object Layer – Data Buffer and Filtering Transfer Layer Protocol Engine

Bit Stream Processor

Bit TimingLogic

TX FIFO

TX HPB

TXPriority Logic

TX Storage

ConfigurationRegisters

RXFIFO

Acceptance Filtering

CAN TX

CAN RX

Data Read

Register R/W

Data Write

APBInterface

X18899-032017

メ ッ セージのフ ィ ルタ リ ング

受信側では、 ユーザー定義によ る ア ク セプタ ン ス フ ィ ルターによ ってどの受信 メ ッ セージを RXFIFO に格納するか

を決定でき ます。 ア ク セプタ ン ス フ ィ ルターにはマス ク と ID があ り 、 こ のフ ィ ルターに基づいて受信 メ ッ セージを

RXFIFO に書き込むか ACK だけを返し て メ ッ セージを破棄するかを決定し ます。

フ ィ ルター モジュールには 4 種類のア ク セプタ ン ス フ ィ ルターを設定でき、 レジス タ設定によ って これら を個別に

有効または無効にでき ます。 フ レームを受信する と、 有効にし た各ア ク セプタ ン ス フ ィ ルターに格納されているマ

ス クおよび ID と受信し た メ ッ セージのマス クおよび ID が比較されます。 いずれかのフ ィ ルターが メ ッ セージ内の

対応するデータ と一致する と、 メ ッ セージは受信されます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 186UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 187: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 10 章: ペ リ フ ェ ラル

CAN コ ン ト ローラーのモー ド

CAN コ ン ト ローラーは 5 つのモード のいずれかに設定でき ます。 モード の切 り 替えは、 次に示すステー ト マシンに

従って実行する必要があ り ます。

図 10‐10: CAN コ ン ト ローラーの動作モー ドの遷移、 モー ド設定

X-Ref Target - Figure 10-10

Configuration

Reset

Normal

SleepLoopback

Snoop

Reset

can.SRR[CEN]=0

Diagnostics

CRL_APB.RST_LPD_IOU2 [CANx_RESET] = 0

Reset:CRL_APB.RST_LPD_IOU2 [CANx_RESET]=1ORcan.SRR[SRST}=1(Self-clearing)

Hardware Forcescan.SRR[CEN]=0

X18900-032117

コ ン フ ィ ギュ レーシ ョ ン  モー ド

リ セ ッ ト 後のコ ン ト ローラーのモード です。 上のステー ト マシンにも示し た よ う に、 コ ン ト ローラーをいずれかの

診断モード にする場合はコ ンフ ィ ギュ レーシ ョ ン モード を経由する必要があ り ます。

通常モー ド

このモード では、 CAN コ ン ト ローラー仕様に基づいて TX ラ イ ンで メ ッ セージを送信し、 RX ラ イ ンで メ ッ セージを

受信し ます。

ス リープ モー ド

このモード では、 コ ン ト ローラーのア イ ド ル時に消費電力をわずかに削減でき ます。 ス リ ープ モード でデータ を受

信するか、 データ送信要求を受け取る と コ ン ト ローラーは通常モード に遷移し ます。

ループバッ ク  モー ド  (診断用)

ループバッ ク モード では、 コ ン ト ローラーは送信し たすべてのデータ を自動的に受信し ます。 CAN ネ ッ ト ワーク の

ほかの ノード からの メ ッ セージは受信し ません。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 187UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 188: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 10 章: ペ リ フ ェ ラル

スヌープ モー ド  (診断用)

ス ヌープ モード ではコ ン ト ローラーは何も送信せず、 システムのほかの ノ ード から送信された メ ッ セージを受信し

ます。

割り込み

CAN コ ン ト ローラーは汎用割 り 込みコ ン ト ローラー (GIC) に接続されています。 各 CAN コ ン ト ローラーが使用する

割 り 込み番号は異な り 、 CAN0 は 55、 CAN1 は 56 を使用し ます。 割 り 込み要因はい く つかあ り ますが、 次の 4 つに

分類されます。

• TXFIFO および TXHPB

• RXFIFO

• メ ッ セージ送信およびアービ ト レーシ ョ ン

• ス リ ープ モードおよびバスオフ ステー ト

NAND

Zynq UltraScale+ デバイ スには ONFI 3.1 仕様に準拠し た NAND メ モ リ コ ン ト ローラーがあ り ます。 次の図に示すよ

う に、 このコ ン ト ローラーには ONFI 仕様で定義された SLC (Single-Level Cell) および MLC (Multi-Level Cell) のエ

ラー訂正をサポー ト し た ECC (エラー訂正符号) イ ン ターフ ェ イ スがあ り ます。

図 10‐11: NAND フ ラ ッ シュの AXI 機能ブロ ッ ク図

X-Ref Target - Figure 10-11

ARMProcessor

AXIMaster

Interface

AXISlave

Interface

Dual-PortRAM

ControlRegisters

NANDFlash

Interface

ECC

FlashMemory 0

FlashMemory 1

FlashMemory 2

FlashMemory 3

AXI BusNAND Flash Bus

(8-Bit)

X18901-032017

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 188UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 189: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 10 章: ペ リ フ ェ ラル

NAND コ ン ト ローラーには AXI ス レーブおよび AXI マス ター イ ン ターフ ェ イ スがあ り ます。 AXI ス レーブ イ ン

ターフ ェ イ スは制御レジス タ と の接続に使用し ます。 AXI マス ターは、 このイ ン ターフ ェ イ ス を使用し て NAND フ

ラ ッ シュ イ ン ターフ ェ イ ス を制御し ます。 DMA 読み出し /書き込み転送中は、 NAND コ ン ト ローラーの AXI マス

ター イ ン ターフ ェ イ ス を使用し てデュ アルポー ト RAM 経由で メ モ リ と フ ラ ッ シ ュの間で読み出し または書き込み

を実行し ます。

SD/SDIO/eMMC

SD コ ン ト ローラーは SD カード、 MMC、 eMMC デバイ スなど各種 SD フ ォーマ ッ ト へのア ク セス をサポー ト し ます。

図 10‐12: SD/SDIO/eMMC コ ン ト ローラーのブロ ッ ク図

X-Ref Target - Figure 10-12

AXIMaster

AXITarget

PIO/DMAController

Host ControlRegister

Set

BlockBufferFIFO

(Configurable)

SDInterfaceController

TX Clock Delay

(DLY_BUF/DLL)

TX Flip-Flops

RX Flip-Flops

RX Clock Delay

(DLY_BUF/DLL)

SDTUNING

SD RECV_CTRL

SD CMD_CTRL

SD XMIT_CTRL

SD TIME_OUT

SD CARD_DET

SDCLK_GEN

SD Host Control Block

MasterInterface

TargetInterface

SDInterface

X18902-032017

システム全体からは、 AXI ス レーブ イ ン ターフ ェ イ ス経由で SD カード にア ク セス し ます。 NAND コ ン ト ローラー

の場合 と同様、 コ ン ト ローラーの AXI マス ター イ ン ターフ ェ イ スは DMA 要求に使用し ます。

SD/SDIO/eMMC DMA

SDIO コ ン ト ローラーは SD コ ン ト ローラー仕様に準拠し てお り 、 仕様で定義された DMA を実装し ています。 この

仕様では 2 種類の DMA イ ン ターフ ェ イ スが定義されています。 1 つは ADMA (Advanced DMA) で、 も う 1 つは

SDMA (Single Operation DMA) です。 Zynq UltraScale+ デバイ スのコ ン ト ローラーは両方の DMA モード をサポー ト し

ています。

SDMA

SDMA はデ ィ ス ク リ プターを使用せず、 1 つのア ド レ ス を使用し て読み出し または書き込みを実行し ます。 SD カー

ド コ ン ト ローラーは、 転送のア ド レ ス、 コ ピーするブロ ッ ク の数と サイ ズを レジス タ経由で受け取 り ます。 1 ブ

ロ ッ ク の転送が完了するたびにコ ン ト ローラーが割 り 込みを ト リ ガーし、 アプ リ ケーシ ョ ンがデータ ソース レジス

タ を更新し ます。 大量のデータ転送の場合、 SDMA では CPU がボ ト ルネ ッ ク と な り 十分な性能が得られません。 し

たがって、 SD コ ン ト ローラーの DMA 転送には ADMA を推奨し ます。

SDMA を正し く 実行する ための手順は、 SD ホス ト コ ン ト ローラー仕様 1.0 で説明されています。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 189UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 190: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 10 章: ペ リ フ ェ ラル

ADMA

SD 仕様で定義されている ADMA は、 システム全体のスキ ャ ッ ター ギャザー DMA でサポー ト されるハイブ リ ッ ド

デ ィ ス ク リ プターと同様の DMA デ ィ ス ク リ プターを使用し ます。 ADMA では、 SDMA のよ う な CPU に割 り 込みを

使用せずコ ン ト ローラーは複数の ト ラ ンザク シ ョ ンを処理でき ます。 サポー ト される ADMA には 2 つのバージ ョ ン

があ り ます。 ADMA1 でサポー ト される転送サイズは 4 KB のみで、 ADMA2 では任意の転送サイ ズがサポー ト されま

す。 どちらのバージ ョ ンの ADMA プロ ト コルも、 SD ホス ト コ ン ト ローラー仕様バージ ョ ン 3.0 で定義されています。

SD/SDIO/eMMC PIO

SDIO コ ン ト ローラーには、 コ ン ト ローラーのレジス タ経由で内部転送バッ フ ァーに直接ア ク セスでき る PIO

(Programmed I/O) イ ン ターフ ェ イ ス も あ り ます。 PIO モード の要求はコ ン ト ローラーのス レーブ イ ン ターフ ェ イ ス を

経由し、 これによ り DMA な しで SD 転送を実行でき ます。

Quad‐SPI

Zynq UltraScale+ デバイ スの Quad-SPI コ ン ト ローラーには、 ジェネ リ ッ ク Quad-SPI コ ン ト ローラーと レガシ

Quad-SPI コ ン ト ローラーの 2 種類のコ ン ト ローラーがあ り ます。 次に、 Quad-SPI コ ン ト ローラーのブロ ッ ク図を示

し ます。

図 10‐13: Quad‐SPI コ ン ト ローラーの最上位ブロ ッ ク図

X-Ref Target - Figure 10-13

DMA

AXI MasterWrite I/F

AXI SlaveRead I/F

GenericQuad-SPIController

APB SlaveI/F

LegacyQuad-SPIController

RX Capture and

Delay Line

DIN

DOUT

OEN

DIN

DOUT

OEN

I/OLogic

DOUT

DOUT

OEN

generic_qspi_en

X18903-032017

2 つのコ ン ト ローラーの切 り 替えは、 レジス タ プロ グ ラ ミ ングによ って行います。 レガシ Quad-SPI コ ン ト ローラー

はブー ト プロセスの第 1 段階で使用する XIP (eXecute In Place) をサポー ト し ているため、 ブー ト プロセスで重要な

役割を果た し ます。 ブー ト プロセスで XIP を使用する方法は、 「 メ モ リ 」 の章を参照し て く ださい。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 190UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 191: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 10 章: ペ リ フ ェ ラル

ジ ェ ネ リ ッ ク  Quad‐SPI コ ン ト ローラー

ジェネ リ ッ ク Quad-SPI コ ン ト ローラーは、 データ ラ イ ンの数を 1 本から 4 本に増やし た SPI コ ン ト ローラーです。

シンプルな SPI コ ン ト ローラーは全二重で通信し ますが、 こ のコ ン ト ローラーはラ イ ン数を抑える ために半二重で

通信し ます。 ジェネ リ ッ ク Quad-SPI コ ン ト ローラーは SPI プロ ト コルのすべての機能をサポー ト し ています。 この

コ ン ト ローラーは、 外部にコマン ド ベース イ ン ターフ ェ イ ス を提供し ます。 コ ン ト ローラーに送信する コマン ド

は、 次の図に示すよ う にレジス タ プロ グ ラ ミ ングによ ってジェネ リ ッ ク コマン ド FIFO に書き込む必要があ り ます。

図 10‐14: ジ ェ ネ リ ッ ク  Quad‐SPI コ ン ト ローラーのブロ ッ ク図

X-Ref Target - Figure 10-14

AXI MasterWrite I/F

RX Capture and

Delay Line

I/OLogic

DIN

OEN

Generic Quad-SPI Controller

DMA(AXI Master)

AXI Slave I/F

APBRegisters

Generic FIFO

20 x 32

RXFIFO

Command Generator

TXFIFO

QuadSPIRX

Quad-SPI TX

DOUT

X18904-032017

SPI コ ン ト ローラーと は異な り 、 ジェネ リ ッ ク Quad-SPI コ ン ト ローラーは DMA 転送 と PIO (Programmed I/O) をサ

ポー ト し ているため、 AXI マス ターと AXI ス レーブの両方を備えています。

DMA

ジェネ リ ッ ク Quad-SPI コ ン ト ローラーの DMA はデ ィ ス ク リ プターを使用し ません。 すべての DMA 要求について、

データの転送先ア ド レ ス とデータ サイ ズを コ ン ト ローラーの適切なレジス タにプロ グ ラ ム し て設定する必要があ り

ます。

I/O モー ド

このモード では、 ク ラ イ アン ト がレジス タ を使用し て RXFIFO および TXFIFO バッ フ ァーから直接読み出し を実行

し ます。

レガシ Quad‐SPI コ ン ト ローラー

レガシ Quad-SPI コ ン ト ローラーの動作モード は リ ニア ア ド レ ス モード のみです。 このモード では、 コ ン ト ローラー

に接続されたフ ラ ッ シュ メ モ リ は AXI イ ン ターフ ェ イ ス を持つ読み出し専用 メ モ リ と し て動作し ます。 レガシ モー

ド のコ ン ト ローラーに対する書き込みコマン ド は無視され、 ACK のみが返されます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 191UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 192: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 10 章: ペ リ フ ェ ラル

フ ラ ッ シュ  メ モ リの構成

ジェネ リ ッ ク Quad-SPI コ ン ト ローラーを 2 つの SPI フ ラ ッ シュ メ モ リ に接続する方法は、 次の図に示すよ う に 2 と

お り あ り ます。

図 10‐15: デュアル パラ レル モー ド  (上) と ス タ ッ ク ド  モー ド  (下)

X-Ref Target - Figure 10-15

GenericQuad-SPIController

SPI FlashMemory Upper

SPI FlashMemory Lower

QSPI1_SCLK

QSPI1_SS_B

QSPI1_IO[3:0]

QSPI0_SCLK

QSPI0_SS_B

QSPI0_IO[3:0]

GenericQuad-SPIController

SPI FlashMemory Upper

SPI FlashMemory Lower

QSPI0_SCLK

QSPI0_SS_B

QSPI0_IO[3:0]

QSPI1_SS_B

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 192UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 193: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 10 章: ペ リ フ ェ ラル

ス タ ッ ク ド モード では、 2 つの メ モ リ のどち らにア ク セスするかをチッ プ セレ ク ト 信号で決定し ます。 コ ン ト ロー

ラーの Stripe コマン ド を使用する と、 2 つの メ モ リ にデータ を分割する よ う にコ ン ト ローラーを設定でき ます。 ス ト

ラ イプ機能を使用し た場合、 偶数位置のバイ ト が下位データ バスに送信され、 それ以外のデータ バイ ト は上位デー

タ バスに送信されます。

レガシ Quad-SPI コ ン ト ローラーは、 1 つのデータ バス を両方のフ ラ ッ シュ メ モ リ に接続するデュ アル パラ レル

モード もサポー ト し ています。 どち らの メ モ リ を選択するかは、 Data Bus Select フ ィ ール ド で制御し ます。

ギガビ ッ ト  イーサネ ッ ト  コ ン ト ローラー

Zynq UltraScale+ デバイ スには 10/100/1000 Mb/s イーサネ ッ ト MAC を実装し たギガビ ッ ト イーサネ ッ ト コ ン ト ロー

ラーが 4 つあ り ます。 イーサネ ッ ト コ ン ト ローラーは、 構成に応じ て複数の MII (Media Independent Interface) をサ

ポー ト し ます。 コ ン ト ローラーを EMIO 経由で PL に接続し た場合は、 GMII (Gigabit Media Independent Interface) を使

用し ます。 コ ン ト ローラーを MIO 経由で接続し た場合は RGMII (Reduced Gigabit Media Independent Interface) を使用

し ます。 コ ン ト ローラーを PS-GTR 経由で接続し た場合は SGMII (Serial Gigabit Media Independent Interface) を使用し

ます。 次に、 イーサネ ッ ト コ ン ト ローラーのブロ ッ ク図を示し ます。

図 10‐16: イーサネ ッ ト  コ ン ト ローラーのブロ ッ ク図

X-Ref Target - Figure 10-16

PCS

DMAController

AXI Master AXIFIFO

Interface

MACTransmitter

MACReceiver

GMII to RGMIIAdapter

RegisterInterface

APB Slave Status and Statistics Registers

Control Registers

GMII to RGMIIAdapter

RGMII

EMIO PLUser

Defined

DeviceBoundary

MDC, MDIO

FrameFiltering

GMII/MII

EMIO

MIOPins

PLSignals

MIOPins

External FIFO interface Ten-bit Interface (SGMII)

X18907-032017

MAC フ ィ ルタ リ ング

イーサネ ッ ト コ ン ト ローラーは MAC フ ィ ルタ リ ングをサポー ト し ています。 コ ン ト ローラーは、 受信し たパケ ッ

ト と コ ン ト ローラーの構成を比較し て、 パケ ッ ト を DMA または PIO 転送用の FIFO に書き込むかど う かを判定し ま

す。

プロ ミ スキャス モー ド

イーサネ ッ ト コ ン ト ローラーをプロ ミ スキ ャ ス モード に設定する と、 すべての有効なフ レームが メ モ リ にコ ピーさ

れます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 193UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 194: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 10 章: ペ リ フ ェ ラル

指定ア ド レス

大 4 つのア ド レ ス を指定し てフ ィ ルタ リ ングを実行する よ う にコ ン ト ローラーを設定でき ます。 指定し たいずれ

かのア ド レ スから受信し たフ レームは、 FIFO にコ ピーされます。

ブロー ド キャス ト  ア ド レス

ブロード キ ャ ス ト パケ ッ ト の受信を拒否または許可する よ う にコ ン ト ローラーを設定でき ます。

PAUSE フ レーム

PAUSE フ レームは IEEE 802.3x 規格で定義されたフ ロー制御機能の 1 つです。 Zynq UltraScale+ デバイ スのイーサ

ネ ッ ト コ ン ト ローラーは、 PAUSE フ レームのコ ピーを禁止する よ う に設定でき ます。

VLAN のサポー ト

Zynq UltraScale+ MPSoC デバイ スのイーサネ ッ ト コ ン ト ローラーは、 特定の VLAN (Virtual LAN) に宛てたパケ ッ ト

のみを受信する よ う に設定でき ます。

WOL (Wake‐on‐LAN)

イーサネ ッ ト コ ン ト ローラーの受信ブロ ッ クは、 次に示すイベン ト を検出する こ と によ って WOL (Wake-on-LAN) を

サポー ト し ます。

• マジ ッ ク パケ ッ ト

• デバイ スの IP ア ド レ スに対する ARP (Address Resolution Protocol) 要求

• 指定ア ド レ ス 1 フ ィ ルターの一致

• マルチキ ャ ス ト ハッ シュ フ ィ ルターの一致

これらのイベン ト のいずれかが検出される と、 ウ ェーク ア ッ プ割 り 込みが ト リ ガーされます。

ギガビ ッ ト  イーサネ ッ ト  DMA

イーサネ ッ ト コ ン ト ローラーはスキ ャ ッ ター ギャザー DMA をサポー ト し ています。 デ ィ ス ク リ プターのフ ォー

マ ッ ト は固定されておらず、 コ ン ト ローラーの動作モードおよびデータの受信 (RX) または送信 (TX) にバッ フ ァー

を使用するかど う かによ って異な り ます。 デ ィ ス ク リ プターのサイ ズは、 コ ン ト ローラーで 64 ビ ッ ト ア ド レ ス指定

およびタ イ ム ス タ ンプ キ ャプチャ (後述) を有効にし ているかど う かによ って 64 ~ 196 ビ ッ ト の間で可変です。

DMA デ ィ ス ク リ プターの詳細な構造は、 『Zynq UltraScale+ MPSoC テ ク ニカル リ フ ァ レ ン ス マニュ アル』 (UG1085) [参照 7] で定義し ています。 この中には次の重要なフ ィ ール ド が含まれます。

• 送信データの メ モ リ ア ド レ ス

• チェ ッ ク サム オフ ロード のステータ ス

• VLAN タ グおよび優先度

注記: パラ メ ーターの詳細は、『Zynq UltraScale+ MPSoC テ ク ニカル リ フ ァ レ ン ス マニュ アル』 (UG1085) [参照 7] を参

照し て く ださい。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 194UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 195: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 10 章: ペ リ フ ェ ラル

Zynq UltraScale+ デバイ スのイーサネ ッ ト コ ン ト ローラーは、 AXI DMA 転送を容易にするために送信パス と受信パ

スの両方にパケ ッ ト バッ フ ァーがあ り ます。 次に、 パケ ッ ト バッ フ ァーを含む DMA コ ン ト ローラーの構造を示し

ます。 パケ ッ ト バッ フ ァーを使用する と パケ ッ ト 全体を メ モ リ に格納し てチェ ッ ク でき る ため、 チェ ッ ク サム オフ

ロード も完全にサポー ト されます。 衝突が発生し た場合、 コ ン ト ローラーはパケ ッ ト バッ フ ァーから自動的にパ

ケ ッ ト を再送し ます。

図 10‐17: DMA パケ ッ ト  バッ フ ァー

X-Ref Target - Figure 10-17

Register Interface

APBInterconnect

Control Registers

MDIOMIO or EMIO

Status and Statistic

Registers

TX Packet Buffer

RX Packet Buffer

TX Packet Buffer

DPSRAM

TXDMA

RXDMA

AXIDMA

MACTransmitter

RX Packet Buffer

DPSRAM

MACReceive

FrameFiltering

GigabitEthernetController

AXIInterconnect

TX GMIIMIO or EMIO

RX GMIIMIO or EMIO

X18908-032017

チ ェ ッ クサム オフ ロー ド

Zynq UltraScale+ デバイ スのイーサネ ッ ト コ ン ト ローラーは、 TX と RX のどち らの方向もチェ ッ クサム オフ ロード

をサポー ト し ています。

チェ ッ ク サム オフ ロード を有効にし てパケ ッ ト を受信する と、 IPv4 パケ ッ ト 、 TCP および UDP パケ ッ ト のチェ ッ ク

サム ヘッ ダーが検査されます。 コ ン ト ローラーは、 チェ ッ クサム検査の結果を受信処理に使用するデ ィ ス ク リ プ

ターに記録し ます。 チェ ッ ク サムに誤 り があ る場合、 コ ン ト ローラーはパケ ッ ト を破棄し ます。

パケ ッ ト 送信時には、 パケ ッ ト バッ フ ァーに格納される各パケ ッ ト に対し、 送信フ レームのプロ ト コルを自動で検

出し てチェ ッ ク サムを計算し ます。 チェ ッ ク サムは UDP、 TCP および IPv4 パケ ッ ト に対し て計算されます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 195UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 196: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 10 章: ペ リ フ ェ ラル

USB

Zynq UltraScale+ デバイ スの USB 3.0 コ ン ト ローラーは、 2 つの独立し たデュ アル ロール デバイ ス (DRD) コ ン ト ロー

ラーで構成されます。 このコ ン ト ローラーは AXI ス レーブ イ ン ターフ ェ イ ス を経由し て xHCI 機能を外部に提供し

ます。 このコ ン ト ローラーには DMA イ ン ターフ ェ イ ス も あ り 、 AXI マス ター イ ン ターフ ェ イ ス を使用し てデータ

を転送し ます。

次に、 Zynq UltraScale+ デバイ スの USB コ ン ト ローラーの概略ブロ ッ ク図を示し ます。 各 USB DRD コ ン ト ローラー

のモード は、AXI バス経由で USB コ ン ト ローラーのコ ンフ ィ ギュ レーシ ョ ン ステータ ス レジス タ (CSR) にア ク セス

し て制御し ます。

図 10‐18: Zynq UltraScale+ デバイスの USB 3.0 のブロ ッ ク図

X-Ref Target - Figure 10-18

USB 3.0 Dual Role Device Controller 1

AXI Bus Interface,

Buffer, and Register

Management Module

CSR Regs

USB 3 Protocol Layer

USB 3 LinkLayer

PIPE3Interface

USB 2 Protocol Layer

USB 2 LinkLayer

ULPIInterface

RAM1RAM0 RAM2

S CSR Access

M DMA

USB 3.0 Dual Role Device Controller 2

AXI Bus Interface,

Buffer, and Register

Management Module

CSR Regs

USB 3 Protocol Layer

USB 3 LinkLayer

PIPE3Interface

USB 2 Protocol Layer

USB 2 LinkLayer

ULPIInterface

RAM1RAM0 RAM2

S CSR Access

M DMA

ToAXI

Switch

ToAXI

Switch

Zynq UltraScale+ MPSoC USB 3.0 block

X18909-032017

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 196UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 197: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 10 章: ペ リ フ ェ ラル

次の表に示すよ う に、 サポー ト する USB バージ ョ ン、 および USB コ ン ト ローラーを MIO と PS-GTR のどち ら を経

由し て接続するかによ って、 標準 USB プロ ト コルのサポー ト される速度が異な り ます。

表 10‐1: USB 3.0 コ ン ト ローラーの構成

コ ン フ ィ ギュ レーシ ョ ン PHY イ ン ターフ ェ イス スーパー スピー ド ハイ  スピー ド フル スピー ド ロー スピー ド

USB 2.0 ホス ト

USB 2.0 デバイ ス

USB 2.0 OTG

USB 3.0 ホス ト (xHCI)

USB 3.0 デバイ ス

USB 3.0 OTG

PCI Express

Zynq UltraScale+ デバイ スには、 『PCI Express Base Specification Revision 2.1』 を実装し た統合ブロ ッ クがあ り ます。

Zynq UltraScale+ デバイ スは PCIe エン ド ポイ ン ト と し て も PCIe ルー ト ポー ト と し て も動作し ます。PCIe ルー ト ポー

ト と はほかの PCIe デバイ ス をホステ ィ ング し て これらのデバイ ス と通信でき るデバイ スで、 PCIe エン ド ポイ ン ト と

はルー ト ポー ト に対する ク ラ イ アン ト と し て動作でき るデバイ ス をいいます。 次に、 Zynq UltraScale+ デバイ スの

PCIe コ ン ト ローラーのブロ ッ ク図を示し ます。

図 10‐19: PCIe コ ン ト ローラーのブロ ッ ク図

X-Ref Target - Figure 10-19

AXI-PCIe Bridge(DMA, RP/EP)

Integrated Block for PCIe

Egress Address Translation / BAR

MSI/INTx/Msg

Ingress Address Translation/BAR

Tran

sact

ion

Laye

r

Dat

a Li

nk L

ayer

Phy

sica

l Lay

er

Configuration/Status Register

AXI3 64-bit

Clock/Reset

Interrupts

AXI3 64-bit

AXI4 Streaming

AXI4 Streaming

Configuration Status

APB

PCIe Configuration

ECAM Write FIFO

DMA (4 channels)

Blk

Reg

ECAM Read Sidebands

(interrupts etc.)

PIPE

X18910-032017

ULPI サポー ト サポー ト サポー ト

ULPI サポー ト サポー ト サポー ト

ULPI サポー ト サポー ト サポー ト

PIPE3 サポー ト サポー ト サポー ト サポー ト

PIPE3 サポー ト サポー ト サポー ト

PIPE3 サポー ト サポー ト サポー ト サポー ト

(ホス ト のみ)

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 197UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 198: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 10 章: ペ リ フ ェ ラル

PCIe は実質的にバスであ り 、 Zynq UltraScale+ デバイ スの内部イ ン ターコネ ク ト は AXI ベースであ る ため、 PCIe コ

ン ト ローラーでは内部 AXI イ ン ターコネ ク ト と PCIe エン ド ポイ ン ト を管理するブロ ッ ク を相互に接続する

AXI-PCIe ブ リ ッ ジが主要なコ ンポーネン ト の 1 つに挙げられます。 これによ り 、 内部コ ンポーネン ト は AXI ト ラ ン

ザク シ ョ ンを使用し て PCIe に接続し たデバイ ス と通信でき る よ う にな り ます。

パワー マネージ メ ン ト

『PCI Express Base Specification Revision 2.1』 では 4 つのパワー マネージ メ ン ト ステー ト が定義されていますが、Zynq

UltraScale+ デバイ スの PCIe コ ン ト ローラーがサポー ト し ているのは L0 と L1 の 2 つのみです。 また、 このコ ン ト

ローラーは ASPM (Active State Power Manager) もサポー ト し ていません。 L0 と L1 の切 り 替えは、 PPM (Programmed

Power Manager) を使用し て手動で実行でき ます。

セキュ リ テ ィ

PCIe コ ン ト ローラーの AXI マス ターは、 「 リ ソースの分離と分割」 の章で説明し た TrustZone でセキ ュ ア/非セキ ュ ア

に設定し た ト ラ ンザク シ ョ ンを生成でき ます。 セキ ュ ア/非セキ ュ アの設定は、 コ ン ト ローラーのプロ グ ラ ミ ング イ

ン ターフ ェ イ スでレジス タ プロ グ ラ ミ ングによ ってア ド レ ス変換および DMA チャネルご と に設定でき ます。

DMA

Zynq UltraScale+ デバイ スの PCIe コ ン ト ローラーはスキ ャ ッ ター ギャザー形式の DMA をサポー ト し てお り 、 4 チャ

ネル DMA エンジンを内蔵し ています。 各チャネルは受信または送信にプロ グ ラ ムでき ます。 次の図に示すよ う に、

PCIe DMA は 3 種類の DMA デ ィ ス ク リ プターを使用し ます。

図 10‐20: DMA SGL‐Q のフ ォーマ ッ ト

X-Ref Target - Figure 10-20

Source Address [31:0]

Source Address [63:32]

Byte Count [23:0]Flags [7:0]

UserHandle[15:0]UserID[15:0]

SRC SGL Flags-[0]: Location (AXI or PCIe)[1]: EOP[2]: Interrupt[7:4]: Attributes

SRC-SGL

UserHandle[15:0]UserID[15:0]

CM

PLT

Error[3:1]Completed Byte

Count [26:0]

Upper Status Non-Zero

Error-[1]: Source Error[2]: Destination Error[3]: Internal DMA Error

STAS/STAD-SGL

Destination Address [31:0]

Destination Address [63:32]

Byte Count [23:0]Flags [7:0]

UserHandle[15:0]UserID[15:0]

DST SGL Flags-[0]: Location (AXI or PCIe)[1]: Enable one packet per element[7:4]: Attributes

DST-SGL

X18911-032017

SRC-SGL はソース データのスキ ャ ッ ター ギ ャザー リ ス ト で、 DST-SGL はデステ ィ ネーシ ョ ン データのスキ ャ ッ

ター ギ ャザー リ ス ト です。 DMA エンジンは、 ソースおよびデステ ィ ネーシ ョ ン デ ィ ス ク リ プターのステータ ス を

格納するデ ィ ス ク リ プター リ ス ト も使用し ます。 フ ォーマ ッ ト はソース とデステ ィ ネーシ ョ ンで共通で、 上の図で

は STAS/STAD-SGL と し て定義し ています。 DMA エンジンは、 ソース データの読み出し (SRC-SGL デ ィ ス ク リ プ

ターの場合) またはデステ ィ ネーシ ョ ンへのデータ書き込み (DST-SGL デ ィ ス ク リ プターの場合) が完了するかエ

ラーが発生するたびにこれらのデ ィ ス ク リ プターを更新し ます。

Zynq UltraScale+ デバイ スはエン ド ポイ ン ト と し て動作でき るため、 DMA エンジンの設定で DMA 機能の役割をホス

ト (すなわちルー ト ポー ト ) と共有させる こ と ができ ます。 これをデュ アル CPU 制御モード と呼びます。 こ の場合、

ホス ト CPU と AXI CPU の両方が DMA を制御し ます。 DMA 転送をホス ト のみで制御する シングル CPU 制御モード

に設定する こ と も でき ます。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 198UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 199: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 10 章: ペ リ フ ェ ラル

SATA

シ リ アル ATA (SATA) プロ ト コルは、 初期のパーソナル コ ンピ ューターで使用されていたパラ レル ATA プロ ト コル

(IDE) を置き換え る目的で設計されま し た。 Zynq UltraScale+ デバイ スには SATA Gen1 ~ Gen3 をサポー ト し た SATA

コ ン ト ローラーが 2 つあ り ます。 SATA コ ン ト ローラーの主な機能は次の とお り です。

• AHCI v1.3 に準拠

• 1.5、 3.0、 および 6.0Gb/s のデータ レー ト をサポー ト

• DMA 内蔵 64 ビ ッ ト AXI マス ター ポー ト

注記: 機能の詳細は、『Zynq UltraScale+ MPSoC テ ク ニカル リ フ ァ レ ン ス マニュ アル』 (UG1085) [参照 7] を参照し て く

ださい。

次に、 Zynq UltraScale+ MPSoC デバイ スの SATA コ ン ト ローラーのブロ ッ ク図を示し ます。 こ の図の 「Command

Layer (コマン ド層)」、 「Transport Layer ( ト ラ ン スポー ト 層)」、 「Link Layer ( リ ン ク層)」、 「PHY Controller Layer (PHY 制

御層)」 は、 SATA ホス ト コ ン ト ローラー イ ン ターフ ェ イ スの仕様に記載のレ イヤーに対応し ます。

図 10‐21: SATA のシステム ブロ ッ ク図

X-Ref Target - Figure 10-21

Zynq UltraScale+MPSoC SATA Block

SATA Host Controller

DMA

AXI Engine

SToAXI

Switch

RAM

Port 0

Command Layer

Transport Layer Link Layer

PHY Control Layer S

erD

es

Inte

rface

AHCIRegs

M

RAM

DMA

Port 1

Command Layer

Transport Layer Link Layer

PHY Control Layer S

erD

es

Inte

rface

To PS-GTR MUX

To PS-GTR MUX

X18912-032017

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 199UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 200: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

第 10 章: ペ リ フ ェ ラル

SATA のセキュ リ テ ィ

SATA コ ン ト ローラーは、 マス ターおよびス レーブ ポー ト の両方で TrustZone セキ ュ ア ア ク セス をサポー ト し ていま

す。 詳細は、 『Zynq UltraScale+ MPSoC テ ク ニカル リ フ ァ レ ン ス マニュ アル』 (UG1085) [参照 7] のこのセ ク シ ョ ンを

参照し て く ださい。

DMA

Zynq UltraScale+ デバイ スの SATA コ ン ト ローラーに実装されている DMA 機能は、 Serial ATA Advanced Host

Controller Interface (AHCI) で定義されている DMA プロ ト コルに基づいています。

DisplayPort

Zynq UltraScale+ デバイ スの DisplayPort 機能については、 第 9 章 「マルチ メ デ ィ ア」 で説明し ています。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 200UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 201: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

付録 A 

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

ザイ リ ン クス リ ソース

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

く ださい。

ソ リ ューシ ョ ン  セン ター

デバイ ス、 ツール、 IP のサポー ト については、 ザイ リ ン ク ス ソ リ ューシ ョ ン セン ターを参照し て く ださい。 デザイ

ン アシス タ ン ト 、 デザイ ン ア ド バイザ リ 、 ト ラブルシューテ ィ ングの ヒ ン ト などが含まれます。

Documentation Navigator およびデザイ ン  ハブ

Xilinx® Documentation Navigator では、 ザイ リ ン ク スの資料、 ビデオ、 サポー ト リ ソースにア ク セスでき、 特定の情

報を取得するためにフ ィ ルター機能や検索機能を利用でき ます。 Xilinx Documentation Navigator (DocNav) を開 く に

は、 次のいずれかを実行し ます。

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

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

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

ザイ リ ン ク スのデザイ ン ハブでは、 資料やビデオへの リ ン ク がデザイ ン タ ス クおよび ト ピ ッ ク ご と にま と められて

お り 、 これら を参照する こ と で重要なコ ンセプ ト に関する知識を得た り 、 よ く あ る質問 (FAQ) を参考に問題を解決

でき ます。 デザイ ン ハブにア ク セスするには、 次のいずれかを実行し ます。

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

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

注記: Documentation Navigator の詳細は、 ザイ リ ン ク ス ウ ェブサイ ト の Documentation Navigator ページを参照し て く

ださい。

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 201UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 202: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

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

参考資料

注記: 日本語版のバージ ョ ンは、 英語版よ り 古い場合があ り ます。

1. 『Xilinx Power Estimator ユーザー ガイ ド』 (UG440: 英語版、 日本語版)

2. 『UltraScale アーキテ クチャ コ ンフ ィ ギュ レーシ ョ ン ユーザー ガイ ド』 (UG570: 英語版、 日本語版)

3. 『Vivado Design Suite チュー ト リ アル: パーシ ャル リ コ ンフ ィ ギュ レーシ ョ ン』 (UG947)

4. 『UltraFast 設計手法ガイ ド (Vivado Design Suite 用)』 (UG949: 英語版、 日本語版)

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

6. 『Embedded Energy Management Interface (EEMI) API ユーザー ガイ ド』 (UG1200)

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

8. 『Zynq デバイ ス向け OpenAMP フ レーム ワーク : ス ター ト ア ッ プ ガイ ド』 (UG1186)

9. 『SDSoC 環境チュー ト リ アル: 入門』 (UG1028: 英語版、 日本語版)

10. 『Zynq UltraScale+ MPSoC で圧倒的な低消費電力と柔軟性を実現』 (WP470: 英語版、 日本語版)

11. 『ザイ リ ン ク ス ソ フ ト ウ ェ ア開発キ ッ ト (SDK) ユーザー ガイ ド : システム パフ ォーマン ス解析』 (UG1145: 英語版、 日本語版)

12. 『Xilinx All Programmable Functional Safety Design Flow Solution Product Brief』 (PB015)

13. 『Xilinx Reduces Risk and Increases Efficiency for IEC61508 and ISO26262 Certified Safety Applications White Paper』 (WP461)

14. ザイ リ ン ク ス ソ フ ト ウ ェ ア開発キ ッ ト (XSDK) のウ ェブ ページ: https://japan.xilinx.com/products/design-tools/embedded-software/sdk.html

15. ザイ リ ン ク ス Vivado Design Suite のウ ェブ ページ: https://japan.xilinx.com/products/design-tools/vivado.html

16. ザイ リ ン ク ス ア イ ソ レーシ ョ ン デザイ ン フ ローのウ ェブ ページ: https://japan.xilinx.com/applications/isolation-design-flow.html

17. パーシ ャル リ コ ンフ ィ ギュ レーシ ョ ンのウ ェブ ページ: https://japan.xilinx.com/products/design-tools/vivado/implementation/partial-reconfiguration.html

18. All Programmable ヘテロ ジニアス MPSoC のウ ェブ ページ: https://japan.xilinx.com/products/silicon-devices/soc/zynq-ultrascale-mpsoc.html#productTable

19. Wiki ページ 「Zynq UltraScale+ MPSoC グ ラ フ ィ ッ ク ス : ARM Mali グ ラ フ ィ ッ ク ス デバッ ガー (MGD) を使用し た GPU アプ リ ケーシ ョ ンのデバッ グ」 : http://www.wiki.xilinx.com/Zynq+UltraScale%EF%BC%8BMPSoC+Graphics-+GPU+application+debugging+using+ARM+Mali+Graphics+Debugger+tool

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 202UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com

Page 203: Zynq UltraScale+ MPSoC エンベデッド設計手法ガ …„電源ドメインはそれぞれ分離させることができます。LPD に属するプラットフォーム管理ユニット

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

自動車用のアプ リ ケーシ ョ ンの免責条項

オー ト モーテ ィ ブ製品 (製品番号に 「XA」 が含まれる ) は、 ISO 26262 自動車用機能安全規格に従った安全コ ンセプ ト または余剰性

の機能 ( 「セーフテ ィ 設計」 ) がない限 り 、 エアバッ グの展開におけ る使用または車両の制御に影響する アプ リ ケーシ ョ ン ( 「セー

フテ ィ アプ リ ケーシ ョ ン」 ) におけ る使用は保証されていません。 顧客は、 製品を組み込むすべてのシステムについて、 その使用

前または提供前に安全を目的と し て十分なテス ト を行 う もの と し ます。 セーフテ ィ 設計な しにセーフテ ィ アプ リ ケーシ ョ ンで製品

を使用する リ ス クはすべて顧客が負い、 製品の責任の制限を規定する適用法令および規則にのみ従 う もの と し ます。

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

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

者に帰属し ます。

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

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

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

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

Zynq UltraScale+ MPSoC エンベデッ ド設計手法ガイ ド 203UG1228 (v1.0) 2017 年 3 月 31 日 japan.xilinx.com