Qsys システム・パフォーマンスの最適化

Qsys システム・パフォーマンスの最適化
2015.05.04
QII5V1
更新情報
8
フィードバック
Qsys システム統合ツールで作成した Altera デザインで、システム・インタコネクト性能を最適
化することができます。
®
いずれのシステムも、その基盤はハードウェア・ブロックやコンポーネントを接続するインタコ
ネクト・ロジックです。インタコネクト・ロジックの作成は、エラーが伴いがちであり、書き込
みに時間がかかり、またデザイン要件が変更された際の修正が困難です。Qsys システム統合ツ
ールはこれらの問題に対処し、システム要件を満たすようにデザインされたインタコネクトを自
動的に生成し、最適化します。
Qsys は、Avalon®、AMBA® AXI3™(バージョン 1.0)、AMBA AXI4™(バージョン 2.0)、AMBA
AXI4-Lite™(バージョン 2.0)、AMBA AXI4-Stream(バージョン 1.0)、ならびに AMBA APB™3(バ
ージョン 1.0)インタフェース規格をサポートしています。
注: アルテラが推奨する手法によって、Qsys デザインのクロック周波数、スループット、ロジッ
ク使用率、または消費電力を改善することができます。Qsys システムのデザインに際して、
デザイン意図に関する知識を活用し、Qsys で可能な自動の最適化を超えたシステム・パフォ
ーマンスの最適化を実現することができます。
関連情報
•
•
•
•
•
Avalon Interface Specifications
AMBA Protocol Specifications
Creating a System with Qsys
Creating Qsys Components
Qsys Interconnect
Avalon および AXI インタフェースを使用したデザイン
メモリマップド・インタフェース向けの Qsys の Avalon および AXI インタコネクトは柔軟であ
り、マスタとスレーブのインタフェースを接続する部分的なクロスバー・ロジックです。
Avalon ストリーミング(Avalon-ST)リンクは、ポイント・ツー・ポイントの単方向インタフェ
ースで接続し、通常はデータ・ストリーム・アプリケーションで使用されます。コンポーネント
の各ペアは、データ・ソースとシンク間でアービトレーション要件なしで接続されています。
Qsys はマルチプレクサ化したメモリ・マップドならびにストリーミングでの接続をサポートし
ているので、1 つのデザイン内で、制御用にマルチプレクサ化ロジックを、データ向けにストリ
ーミングを使用するシステムを実装することができます。
© 2015 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, ENPIRION, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos are
trademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified as
trademarks or service marks are the property of their respective holders as described at www.altera.com/common/legal.html. Altera warrants performance
of its semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any
products and services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information,
product, or service described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device
specifications before relying on any published information and before placing orders for products or services.
www.altera.com
101 Innovation Drive, San Jose, CA 95134
ISO
9001:2008 登
8-2
ストリーミング・コンポーネントのデザイン
QII5V1
2015.05.04
関連情報
Creating Qsys Components
ストリーミング・コンポーネントのデザイン
ストリーミング・コンポーネント・インタフェースを設計する際には、システム内の各コンポー
ネントの統合および通信について検討する必要があります。 一つの一般的な検討事項として、
コンポーネント間でのレイテンシに対応するために、内部的なデータのバッファリングがありま
す。
たとえば ready 信号のディアサートによりコンポーネントの Avalon-ST 出力またはストリーミ
ング・データのソースがバックプレッシャされた場合には、オーバーフローを避けるために、コ
ンポーネントは入力またはシンク・インタフェースをバックプレッシャする必要があります。
FIFO を使用して、コンポーネントの出力側で内部的にバック・プレッシャすることにより、出
力がバック・プレッシャされても入力ではさらにデータを受け入れることができるようになりま
す。 FIFO に内部レイテンシに応じるスペースしかなくなった時点で、FIFO almost full フラグを
使用して、シンク・インタフェース、または入力データにバックプレッシャします。 データの
供給が可能な際には、出力またはソース・インタフェースのデータ有効信号を FIFO の not empty
フラグとともに駆動します。
データの供給が可能な際には、出力またはソース・インタフェースのデータ有効信号を FIFO not
empty フラグとともに駆動します。
メモリ・マップド・コンポーネントのデザイン
メモリマップド・コンポーネントをデザインする際に、たとえば、ロジックからのソフトウェ
ア・リードバックをサポートするための出力レジスタ 4 つのセットといった、メモリ位置にマッ
プされた複数のレジスタが含まれる、あらゆるコンポーネントを実装することができます。 読
み出しと書き込みのメモリマップド・トランザクションを実装するコンポーネントには、アドレ
ス・デコーダ、レジスタ・ファイル、および読み出しマルチプレクサの、3 つの主要なビルディ
ング・ブロックが必要です。
デコーダは、書き込みのために 32 ビットまたは 64 ビットの適切なレジスタを有効にします。
読み出しでは、アドレス・ビットがマルチプレクサ選択ビットを駆動します。 読み出し信号に
よりマルチプレクサからのデータが一度レジスタに格納され、つまりパイプライン・ステージが
追加されるため、コンポーネントで高いクロック周波数を実現することができます。
Altera Corporation
Qsys システム・パフォーマンスの最適化
フィードバック
QII5V1
2015.05.04
システムの階層の使用
8-3
図 8-1: スレーブ・コンポーネントのコントロールおよびステータス・レジスタ(CSR)
Avalon-MM
Slave Port
Read Multiplexer
readdata[31:0]
Q
D
s
EN
read
address[1:0]
Register File
D
Decode
2:4
Q
User
Logic
EN
0
D
Q
EN
1
D
address[1:0]
Q
EN
2
D
write
EN
Q
EN
3
writedata[31:0]
このスレーブ・コンポーネントは、書き込みウェイト・ステート、および 1 つの読み出しウェイ
ト・ステートを有します。 あるいは、高いスループットを必要とする場合には、このコンポー
ネントはパイプライン読み出しもサポートしているので、読み出しおよび書き込み両方のウェイ
ト・ステートを 0 に設定し、読み出しレイテンシを 1 に指定することもできます。
システムの階層の使用
階層の使用により、システムを小さなサブシステムへと細分し、これを Qsys システムのトップ
レベルで接続することができます。 さらに、デザインに 1 つの、または複数の同一の機能ユニ
ットが含まれている場合には、機能ユニットをサブシステムとして定義することができ、またト
ップレベル内に複数回インスタンス化することができます。
階層により、メモリ・マップド・システムで各マスタに接続されたスレーブの検証の制御を単純
にすることができます。 デザインへサブシステムを実装する前には、次のガイドラインを使用
してトップレベルのシステム階層ブロックをプランニングします。
Qsys システム・パフォーマンスの最適化
フィードバック
Altera Corporation
8-4
QII5V1
2015.05.04
システムの階層の使用
• 共有リソースをプランニングする—システム階層内で共有リソースに最適な位置を決定しま
す。たとえば、2 つのサブシステムがリソースを共有する場合には、リソースを使用するコン
ポーネントを上位レベルのシステムに追加して、アクセスを容易にします。
• サブシステム間のアドレス・スペース共有をプランニングする—アドレス・スペースのプラ
ンニングにより、サブシステム間のブリッジを適切なサイズに設定できるようになります。
• システムに追加するレイテンシの量をプランニングする—サブシステム間へパイプライン・
ブリッジを追加すると、システム全体にレイテンシが追加されることがあります。0 サイクル
のレイテンシでパイプライン・ブリッジをパラメータ化することによって、追加のレイテン
シを削減することができます。
図 8-2: サブシステム間でのメッセージのパッシング
Top-Level System
Subsystem
Subsystem
Nios II
Processor
Nios II
Processor
M
Pipeline Bridges
M
Arbiter
M
M
Arbiter
Arbiter
Arbiter
S
S
S
S
S
S
S
S
On-Chip
Memory
PIO
UART
Mutex
Shared
Memory
On-Chip
Memory
PIO
UART
Shared Resources for Message Passing
この例では、Nios II プロセッサのサブシステム 2 つがメッセージ・パッシングのためのリソース
を共有しています。 それぞれのサブシステムのブリッジが Nios II のデータ・マスタから、ミュ
ーテックス(mutex、相互排他コンポーネント)、および共有メモリ・コンポーネント(他のオ
ンチップ RAM、もしくはオフチップ RAM デバイスのコントローラなど)を含むトップレベル・
システムにエクスポートします。
Altera Corporation
Qsys システム・パフォーマンスの最適化
フィードバック
QII5V1
2015.05.04
システムの階層の使用
8-5
図 8-3: マルチ・チャネル・システム
Input Data Stream
Channel 1 System
Output Data Stream
Input Data Stream
Channel 2 System
Output Data Stream
Input Data Stream
Channel N System
Output Data Stream
Nios II
Processor
M
M
Arbiter
S
S
S
On-Chip
Memory
Input Data
Stream
Input Data
Stream
同じサブシステムを各チャネルにインスタンス化することにより、複数のデータ・チャネルを処
理するシステムをデザインすることもできます。 このアプローチは大きな非階層的システムよ
りも容易に維持することができます。 加えてこのようなシステムは、必要なリソースをサブシ
ステム要件の倍数として計算することが可能であるために、調整が容易です。
Qsys システム・パフォーマンスの最適化
フィードバック
Altera Corporation
8-6
QII5V1
2015.05.04
メモリ・マップド・システムでの同時処理の使用
メモリ・マップド・システムでの同時処理の使用
Qsys インタコネクトは FPGA のパラレル・ハードウェアを使用しており、これによりシステム
への同時処理の設計、および複数のトランザクションの同時処理が可能になります。
複数のマスタによる同時処理の実装
同時処理を実装するには、Qsys システムに複数のマスタが必要です。 プロセッサを含むシステ
ムは、プロセッサが命令およびデータのマスタを別個に含んでいるために、少なくとも 2 つのマ
スタ・インタフェースを含みます。 マスタ・コンポーネントは以下のように分類することがで
きます。
• Nios II プロセッサなどの汎用プロセッサ
• ダイレクト・メモリ・アクセス(DMA)エンジン
• PCI Express などの通信インタフェース
Qsys はスレーブ側にアービタとインタコネクトを生成するので、システム内の全てのマスタ・
インタフェースは、同一のスレーブに転送をポストしない限り、同時処理で転送を発行できま
す。同時処理は、スレーブ・インタフェースを共有するマスタ・インタフェースの数によって限
定されます。デザインがより高いデータ・スループットを必要とする場合、同時に発生する転送
の数を増やすためにマスタとスレーブのインタフェースの数を増やすことができます。以下の
例に 3 つのマスタ・インタフェースを備えたシステムを示します。
Altera Corporation
Qsys システム・パフォーマンスの最適化
フィードバック
QII5V1
2015.05.04
8-7
複数のマスタによる同時処理の実装
図 8-4: Avalon での複数マスタによるパラレルのアクセス
この Avalon の例では、DMA エンジンは Avalon-MM の読み出しマスタと書き込みマスタで動作
しています。しかし、AXI 規格では、マスタの読み出しおよび書き込みチャネルが独立しており
トランザクションを同時に処理することができるので、AXI の DMA インタフェースは通常 1 つ
のマスタしか備えていません。黄色の線は、同時にアクティブである接続を表します。
N ios II
P rocessor
M
AXI DMA
Engine
M
S
S
Dual-Port On-Chip
Memory
M
A va lon Mas ter P ort
S
A va lon S lave P ort
M
PCI Express
Interface
M
S
M
Arbiter
Arbiter
S
S
External Memory
Controller
External Memory
Controller
Concurrent Access Possible
Qsys システム・パフォーマンスの最適化
フィードバック
Altera Corporation
8-8
QII5V1
2015.05.04
複数のスレーブによる同時処理の実装
図 8-5: AXI での複数マスタによるパラレルのアクセス
この例では、AXI はマスタの読み出しおよび書き込みチャネルが独立しておりトランザクション
を同時に処理することができるので、DMA エンジンがひとつのマスタで動作しています。 読み
出しおよび書き込みチャネル間に同時処理があり、黄色い線は同時処理データ・バスを表してい
ます。
Nios II
Processor
M
DMA
Engine
M
M
Read
S
S
Dual-Port On-Chip
Memory
M
Avalon Master Port
S
PCI Express
Interface
S
M
Write
Arbiter
Arbiter
S
S
External Memory
Controller
External Memory
Controller
Avalon Slave Port
Concurrent Access Possible
複数のスレーブによる同時処理の実装
特定の機能用の複数のスレーブ・インタフェースを作成することにより、デザインの同時処理を
増やすことができます。
Altera Corporation
Qsys システム・パフォーマンスの最適化
フィードバック
QII5V1
2015.05.04
複数のスレーブによる同時処理の実装
8-9
図 8-6: 1 つのインタフェース 対 複数のインタフェース
Single Channel Access
Channel Processor
Host 1
M
Compute
Engine 1
Data Channel 1
Host 2
M
Compute
Engine 2
Data Channel 2
Arbiter
S
Host 3
M
Compute
Engine 3
Data Channel 3
Host 4
M
Compute
Engine 4
Data Channel 4
Multiple Channel Access
Channel Processor
Host 1
M
S
Compute
Engine 1
Data Channel 1
Host 2
M
S
Compute
Engine 2
Data Channel 2
Host 3
M
S
Compute
Engine 3
Data Channel 3
Host 4
M
S
Compute
Engine 4
Data Channel 4
この例には、2 つのチャネル処理システムがあります。 最初の例では、4 つのホストがチャネ
ル・プロセッサの 1 つのスレーブ・インタフェースに対してアービトレーションする必要があり
ます。 2 番目の例では、各ホストが専用のスレーブ・インタフェースを駆動しているので、すべ
てのマスタ・インタフェースはコンポーネントのスレーブ・インタフェースに同時にアクセスす
ることができます。 1 つのホストに 1 つのスレーブ・インタフェースがあれば、アービトレーシ
ョンは必要ありません。
Qsys システム・パフォーマンスの最適化
フィードバック
Altera Corporation
8-10
QII5V1
2015.05.04
DMA エンジンによる同時処理の実装
DMA エンジンによる同時処理の実装
システムによっては、DMA エンジンを使用してスループットを向上することができます。 イン
タフェース間でのデータ・ブロックの転送に DMA エンジンを使用することで、CPU をこのタス
クから解放します。 DMA エンジンは、プログラミングされた開始アドレスと終了アドレスとの
間で干渉されること無くデータを転送し、また、データ・スループットは DMA に接続されてい
るコンポーネントによって規定されます。 データ・スループットに影響を与える要因としては、
データ幅やクロック周波数があります。
図 8-7: 1 つの DMA チャネルと 2 つの DMA チャネル
Single DMA Channel
Maximum of One Read & One Write Per Clock Cycle
DMA
Engine
M
M
S
S
S
S
Read
Buffer 1
Read
Buffer 2
Write
Buffer 1
Write
Buffer 2
Dual DMA Channels
Maximum of two Reads & Two Writes Per Clock Cycle
DMA
Engine 2
DMA
Engine 1
Altera Corporation
M
M
M
M
S
S
S
S
Read
Buffer 1
Write
Buffer 1
Read
Buffer 2
Write
Buffer 2
Qsys システム・パフォーマンスの最適化
フィードバック
QII5V1
2015.05.04
システムの周波数を向上するためのパイプライン・ステージの挿入
8-11
この例は、システムがより多くの DMA エンジンを含むことにより、より多くの同時処理読み出
しおよび書き込み動作を保持できることを示しています。下側の図「2 つの DMA チャネル」で
示すように、トップ・システムでの読み出しおよび書き込みバッファへのアクセスは、2 つの
DMA エンジンに分割されます。
DMA エンジンは Avalon-MM の読み出しマスタと書き込みマスタで動作します。 AXI では、マ
スタの読み出しおよび書き込みチャネルが独立しておりトランザクションを同時に処理するこ
とができるので、AXI の DMA は通常 1 つのマスタしか備えていません。
システムの周波数を向上するためのパイプライン・ステージの挿入
Qsys は、シテムの生成時に自動的に Qsys インタコネクトにパイプライン・ステージを追加する
ための Limit interconnect pipeline stages to オプションを、Project Settings タブで提供していま
す。
0~4 のパイプライン・ステージを指定することができ、0 であればインタコネクトが組み合わせ
データ・パスを有することを意味します。各サブシステムにそれぞれ固有のインタコネクト・パ
イプライン・ステージの値を指定できます。
パイプライン・ステージを加えることにより、レイテンシやロジック使用率を追加しながらも、
組み合わせロジックの段数を減少させることによりデザインの fMAX が向上できる可能性があり
ます。
パイプライン・ステージの挿入には、特定のインタコネクト・コンポーネントが必要です。たと
えば、システムのスレーブ・インタフェースが単独であれば、マルチプレクサがありませんの
で、マルチプレクサ・パイプラインは生じません。Avalon または AXI の単独のマスタから単独
のスレーブへのシステムの場合にも、Limit interconnect pipeline stages to のパラメータにかかわ
りなくパイプラインは生じません。
関連情報
Creating a System with Qsys
ブリッジの使用
ブリッジを使用して、システム周波数の向上、生成される Qsys ロジックの最小化、アダプタ・
ロジックの最小化に加え、Qsys がパイプラインを追加する位置をコントロールする必要がある
場合にシステム・トポロジーを構築することも可能です。システムに同時処理があれば、ブリッ
ジをアービタとともに使用できます。
Avalon ブリッジは Avalon-MM スレーブ・インタフェースと Avalon-MM マスタ・インタフェー
スを有します。ですので、ブリッジのスレーブ・インタフェースに接続された多数のコンポーネ
ントや、ブリッジのマスタ・インタフェースに接続された多数のコンポーネントを有することが
できます。また、1 つのブリッジのスレーブまたはマスタ・インタフェースに接続された 1 つの
コンポーネントを有することもできます。
ブリッジのデータ幅を設定することができ、これにより Qsys がバス・サイジング・ロジックを
どのようにインタコネクトに生成するかが左右されます。どちらのインタフェースも可変レイ
テンシを伴う Avalon-MM パイプライン転送をサポートしており、設定可能なバースト長もサポ
ートできます。
Qsys システム・パフォーマンスの最適化
フィードバック
Altera Corporation
8-12
システムの周波数を向上するためのブリッジの使用
QII5V1
2015.05.04
インタコネクトのパイプラインに対するコントロールの強化が必要な場合、Limit Interconnect
Pipeline Stages to オプションの代わりにブリッジを使用します。ブリッジ・スレーブ・インタフ
ェースへの転送は、マスタ・インタフェースに伝播され、これはブリッジからダウンストリーム
のコンポーネントへと接続されます。
注: Avalon ブリッジは、AXI インタフェース間、および Avalon ドメイン間で使用することがで
きます。Qsys は AXI あるいは Avalon のインタフェース間に自動的にインタコネクト・ロジ
ックを作成するので、これらのドメイン間にブリッジを明確にインスタンス化する必要はあ
りません。ドメインの共有もしくは分離のメリットとデメリットについて、詳しくは、Qsys
Interconnect の章を参照してください。
関連情報
• Creating a System with Qsys
• Qsys Interconnect
システムの周波数を向上するためのブリッジの使用
システムのクロック周波数を向上するために、インタコネクト・パイプライン・ステージ、また
はパイプライン・ブリッジを Qsys に導入することができます。ブリッジにより、システム・イ
ンタコネクト・トポロジーを制御し、インタコネクトの細分化を可能にし、パイプラインおよび
クロック・クロッシング機能の制御を強化できるようになります。
パイプライン・ブリッジの挿入
Avalon-MM パイプライン・ブリッジを挿入することで、ブリッジおよびそのマスタとスレーブ
との間のパスにレジスタを挿入することができます。 インタコネクトでレジスタからレジスタ
へのクリティカルな遅延が発生する場合、パイプライン・ブリッジはこの遅延を軽減し、システ
ムの fMAX を向上させることができます。
すべての Qsys システムに Avalon-MM パイプライン・ブリッジのコンポーネントを統合すること
ができます。 パイプライン・ブリッジ・オプションは、ロジック使用率および読み出しレイテ
ンシを増加させます。 複数のマスタがブリッジでアービトレーションする場合、トポロジーの
変更によって同時処理を削減できることがあります。 Avalon-MM パイプライン・ブリッジを使
用すると、パイプライン・ステージを追加することなくトポロジーを制御することができます。
パイプライン・ステージを追加しないパイプライン・ブリッジは、遅延にセンシティブなアプリ
ケーションに最適です。 たとえば、メモリにアクセスする際のレイテンシを最小限にできるこ
とは CPU に対して利点があります。
Altera Corporation
Qsys システム・パフォーマンスの最適化
フィードバック
QII5V1
2015.05.04
命令パイプラインの実装(マスタからスレーブへ)
8-13
図 8-8: Avalon-MM パイプライン・ブリッジ
Avalon-MM Pipeline Bridge
D
Master-to-Slave
Signals
Q
Master-to-Slave
Pipeline
D
Q
Master-to-Slave
Signals
ENA
waitrequest
Pipeline
waitrequest
Connects to an
Avalon-MM
Slave Interface
Wait Request
Logic
waitrequest
Master
I/F
Slave
I/F
D
Slave-to-Master
Signals
Connects to an
Avalon-MM
Master Interface
Q
Slave-to-Master
Signals
Slave-to-Master
Pipeline
命令パイプラインの実装(マスタからスレーブへ)
複数のマスタが 1 つのスレーブ・デバイスを共有する場合には、パフォーマンスを向上させるた
めに命令パイプラインを使用します。
スレーブ・インタフェースへのアービトレーション・ロジックは、address、writedata、および
burstcount 信号をマルチプレクサ化する必要があります。 マルチプレクサ幅は 1 つのスレー
ブ・インタフェースに接続するマスタの数に比例して増加します。 この増加したマルチプレク
サ幅が、システムでタイミングのクリティカル・パスになる可能性があります。 1 つのパイプラ
イン・ブリッジで十分なパイプライン化を提供できない場合には、パイプライン化の規模を拡大
するため、およびスレーブ・インタフェースでのマルチプレクサの幅をさらに縮小するために、
ブリッジのインスタンスをツリー構造で複数インスタンス化します。
Qsys システム・パフォーマンスの最適化
フィードバック
Altera Corporation
8-14
QII5V1
2015.05.04
応答パイプラインの実装(スレーブからマスタへ)
図 8-9: ブリッジのツリー
Master 1
Master 2
Master 3
Master 4
M
M
M
M
arb
arb
S
S
Pipeline Bridge
Pipeline Bridge
M
M
arb
S
Shared
Slave
Read Data
Write Data &
Control Signals
応答パイプラインの実装(スレーブからマスタへ)
マスタが、読み出し転送をサポートする複数のスレーブに接続する場合に、スレーブからマスタ
へのパイプラインの使用により性能を向上させことができます。
インタコネクトは、マスタに返す全ての読み出しデータ・パスにマルチプレクサを挿入します。
マスタ・インタフェースに接続している、読み出し転送をサポートするスレーブの数が増加すれ
ば、読み出しデータ・マルチプレクサの幅も増加します。 1 つのブリッジでパフォーマンスの向
Altera Corporation
Qsys システム・パフォーマンスの最適化
フィードバック
QII5V1
2015.05.04
クロック・クロッシング・ブリッジの使用
8-15
上が十分ではない場合には、fMAX を向上させるために、複数のブリッジをツリー構造で使用す
ることができます。
クロック・クロッシング・ブリッジの使用
クロック・クロッシング・ブリッジはクロック・クロッシング FIFO のペアを含み、これがマス
タとスレーブのインタフェースを別個の非同期クロック・ドメインに分離します。 スレーブ・
インタフェースへの転送は、マスタ・インタフェースに伝播されます。
FIFO クロック・クロッシング・ブリッジをクロック・ドメイン・クロッシングに使用する際に
は、データ・バッファリングを追加します。 バッファリングにより、ブリッジのダウンストリ
ームのスレーブがパイプライン転送をサポートしていない場合でも、パイプライン読み出しマス
タはブリッジに複数の読み出しをポストすることができます。
また、クロック・クロッシング・ブリッジを使用することにより、周波数の高いコンポーネント
と周波数の低いコンポーネントを異なるクロック・ドメインに配置することができます。 高速
クロック・ドメインを、高いパフォーマンスが必要な部分のデザインだけに限定すると、デザイ
ンのその部分でより高い fMAX を得られる場合があります。 たとえば、エンベデッド・デザイン
で、プロセッサ・ペリフェラルの多くは高い周波数で動作する必要がありません。したがって、
これらのコンポーネントに高い周波数のクロックを使用する必要はありません。 デザインを
Quartus II ソフトウェアでコンパイルする際に、クロック周波数の要件を満たすことが困難であ
れば、Fitter が必要な fMAX を得るためのレジスタの配置により多くの時間を必要とするために、
コンパイルにより多くの時間がかかります。 低い優先順位および低いパフォーマンスのコンポ
ーネントに対して Fitter が消耗するエフォートを削減するために、これらのコンポーネントを低
い周波数で動作するクロック・クロッシング・ブリッジの後段に配置することにより、より高い
優先順位および より高い周波数のデータ・パスに対する Fitter のエフォートを向上することがで
きます。
デザイン・ロジックを最小化するためのブリッジの使用
アービトレーションの量および Qsys が生成するマルチプレクサ・ロジックの量をブリッジによ
って削減することにより、インタコネクト・ロジックを削減することができます。 この削減は、
ブリッジが同時処理で発生する転送の数を制限するために生じます。
ロジックを増加させるスピード最適化の回避
マスタとスレーブの間にパイプライン・ステージとパイプライン・ブリッジを追加することで、
レジスタ間の組み合わせロジックの量を削減し、これによりシステムのパフォーマンスを向上す
ることができます。 デザイン・ロジックの fMAX を向上できる場合に、Quartus II ソフトウェア
の Perform register duplication セッティングのような最適化セッティングをオフにできる可能性
があります。 register duplication は、レジスタからレジスタへの遅延を削減するために FPGA の
2 つ以上の物理的な位置に複製レジスタを作成します。 最適化の方法として Speed を選択する
必要を感じるかもしれませんが、多くの場合これはロジックの複製による高いロジック使用率を
もたらします。 ブリッジで使用可能なレジスタや FIFO を活用することにより、デザインの速度
を向上でき、また不必要なロジックの複製および Speed による最適化を回避することが可能であ
り、それによりデザインのロジック使用率を削減することができます。
同時処理の制限
Qsys は複数のマスタ・インタフェースにより共有されるすべてのスレーブ・インタフェースに
アービトレーション・ロジックを作成するので、インタコネクト用に生成されるロジックの量は
Qsys システム・パフォーマンスの最適化
フィードバック
Altera Corporation
8-16
同時処理の制限
QII5V1
2015.05.04
多くの場合システムが大きくなるにつれて増加します。 複数のスレーブ・インタフェース、お
よびそれに接続しているマスタ・インタフェース双方が読み出しデータ・パスをサポートしてい
る場合、Qsys はこれらのマスタ・インタフェース間にマルチプレクサ・ロジックを挿入します。
ほとんどのエンベデッド・プロセッサのデザインは、高いデータ・スループットをサポートでき
ないコンポーネント、もしくは頻繁にアクセスする必要がないコンポーネントを含みます。 こ
れらのコンポーネントが、マスタまたはスレーブ・インタフェースを有していることがありま
す。 インタコネクトが同時処理アクセスをサポートしているので、生成されるアービトレーシ
ョンおよびマルチプレクサ・ロジックの量を制限するために、データ・パスへブリッジを挿入す
ることにより同時処理を制限する必要がある場合があります。
たとえばシステムが、相互に接続している 3 つのマスタと 3 つのスレーブのインタフェースを含
んでいる場合に、Qsys は 3 つのアービタと 3 つのマルチプレクサを読み出しデータ・パスに生
成します。 これらのマスタが同時に大量のスループットを必要としないのであれば、3 つのマス
タをパイプライン・ブリッジに接続することによりデザインが消耗するリソースを削減できま
す。 ブリッジは 3 つのスレーブ・インタフェースを制御し、インタコネクトをバス構造へと縮
小します。 Qsys は、ブリッジと 3 つのマスタの間に 1 つのアービトレーション・ブロックを、
ブリッジと 3 つのスレーブの間に 1 つの読み出しデータ・パス・マルチプレクサを作成し、同時
処理を防止します。 この実装は、標準的なバス・アーキテクチャと類似しています。
システム全体のパフォーマンスを制限しないために、高いスループットのデータ・パスに対して
はこの手法の使用を避ける必要があります。
Altera Corporation
Qsys システム・パフォーマンスの最適化
フィードバック
QII5V1
2015.05.04
8-17
アダプタ・ロジックを最小化するためのブリッジの使用
図 8-10: パイプライン・ブリッジを用いるシステムと用いないシステムの違い
Concurrency
No Concurrency
M
M
M
M
M
M
M
Arbiter
S
Bridge
Arbiter
Arbiter
Arbiter
S
S
S
Write Data & Control Signals
Read Data
M
S
S
S
アダプタ・ロジックを最小化するためのブリッジの使用
マスタおよびスレーブ・インタフェースのペアのクロック・ドメイン、幅、またはバースト機能
に不一致がある場合に、Qsys は、クロック・クロッシング、バス幅変換、およびバースト・サ
ポートのためのアダプタ・ロジックを生成します。
マスタの最大バースト長が、スレーブのマスタ・バースト長よりも大きい場合に、Qsys はバー
スト・アダプタを作成します。 アダプタ・ロジックは余分なロジック・リソースを作成し、こ
れは、システムが同一特性を共有できない多数のコンポーネントに接続したマスタ・インタフェ
ースを含む場合に、相当な量になります。 デザインにブリッジを配置することにより、Qsys の
生成するアダプタ・ロジックの量を削減することができます。
Qsys システム・パフォーマンスの最適化
フィードバック
Altera Corporation
8-18
ブリッジの効果的な配置の決定
QII5V1
2015.05.04
ブリッジの効果的な配置の決定
ブリッジの効果的な配置を決定するために、最初にシステムの各マスタを解析し、接続されてい
るスレーブ・デバイスが異なるバースト能力をサポートしていないか、または異なったクロッ
ク・ドメインで動作しないかを確認します。 コンポーネントの最大バーストカウントは、コン
ポーネントの HDL ファイルに burstcount 信号として表記されています。 最大バースト長は 2
(width(burstcount -1))なので、burstcount 幅が 4 ビットの場合、最大 burstcount は 8 になります。
burstcount 信号が存在しない場合、コンポーネントはバーストをサポートしていないか、また
は 1 のバースト長を備えています。
マスタとスレーブのインタフェース間にシステムがクロック・クロッシング・アダプタを必要と
するかを判別するには、マスタおよびスレーブ・インタフェースの Clock カラムをチェックしま
す。 マスタとスレーブのインタフェースのクロックが異なる場合には、Qsys はこれらの間にク
ロック・クロッシング・アダプタを挿入します。 複数のアダプタの作成を避けるために、スレ
ーブ・インタフェースを持つコンポーネントをブリッジの後段に配置して、Qsys がアダプタを
1 つだけ作成するようにします。 同一のバーストまたはクロック特性を持つ複数のコンポーネ
ントをブリッジの後段へ配置することにより、同時処理とアダプタの数を制限します。
また、ブリッジを使用して AXI と Avalon のドメインを分離することによっても、バースト・ア
ダプタ・ロジックを縮小することができます。 たとえば、AXI マスタに接続されている複数の
Avalon スレーブがある場合には、ブリッジを挿入し、各スレーブごとに一度ではなく、ブリッ
ジの手前で一度、アダプタ・ロジックにアクセスすることを検討します。 これはレイテンシを
もたらしますが、読み出しと書き込みとの間の同時処理も削減します。
応答バッファ段数の変更
自動のクロック・クロッシング・アダプタを使用する際に、Qsys は、スレーブの特性に基づい
て FIFO バッファリングに必要な段数を決定します。 スレーブの Maximum Pending Reads パラ
メータが高ければ、結果として Qsys がマスタとスレーブとの間に挿入する応答バッファ FIFO
の段数が増え、デバイス・リソースを大量に消費します。 応答 FIFO の段数をコントロールする
ためにクロック・クロッシング・ブリッジを使用し、また、手動で FIFO の段数を調整すること
により、スループットをトレードオフしてメモリ使用率を縮小します。
たとえば、有しているマスタがスレーブをいっぱいにまで満たすことができない場合には、応答
バッファの必要がありません。ブリッジを使用することで FIFO メモリの段数を削減し、またス
レーブからの Maximum Pending Reads を削減します。
ブリッジを使用する効果を検討する
デザインにパイプラインまたはクロック・クロッシング・ブリッジを使用する前に、その影響に
ついて十分に考慮する必要があります。 ブリッジは、デザインで利点にも欠点にもなりうる影
響を複合的に伴います。 ブリッジを挿入する前と後でシステムをベンチマークすることが、デ
ザインへの影響の判断に役立ちます。
レイテンシの増加
デザインへのブリッジの追加は、マスタとスレーブの間の読み出しレイテンシに影響します。
システム要件およびマスタとスレーブのタイプにより、このレイテンシの増加をデザインが許容
できる場合と許容できない場合があります。
Altera Corporation
Qsys システム・パフォーマンスの最適化
フィードバック
QII5V1
2015.05.04
許容できるレイテンシの増加
8-19
許容できるレイテンシの増加
パイプライン・ブリッジでは、イネーブルされた各パイプライン・オプションに対して Qsys が
1 サイクルのレイテンシを追加します。 クロック・クロッシング・ブリッジでのバッファリング
もレイテンシを追加します。 多数の読み出し転送をポストするパイプライン・マスタもしくは
バースト・マスタを使用する場合には、データ転送の長さと比較してレイテンシの増加はとても
小さいので、このレイテンシの増加はパフォーマンスに深刻に影響しません。
たとえば、DMA コントローラのようなパイプライン読み出しマスタを使用して、読み出しレイ
テンシが 4 クロック・サイクルに固定されたコンポーネントからデータを読み出す場合に、しか
し行うワード転送は 1 つのみとすると、オーバーヘッドは合計 4 クロック・サイクルのうちの 3
クロック・サイクルです。ここではインタコネクトに追加のパイプライン・レイテンシがないと
仮定しています。読み出しスループットはわずか 25%です。
図 8-11: 低い効率の読み出し転送
Read Latency
Read Latency
Overhead
Overhead
A0
A1
clk
address
read
waitrequest
readdata
D0
D1
一方、100 ワードのデータが中断することなく転送される場合には、オーバーヘッドは合計 103
クロック・サイクルのうちの 3 サイクルです。 インタコネクトに追加のパイプライン・レイテ
ンシがないとすると、これは約 97%の読み出し効率に相当します。 この読み出しパスにパイプ
ライン・ブリッジを追加すると、2 クロック・サイクルの余分なレイテンシが追加されます。 転
送を完了するために 105 サイクルが必要になり、これは約 94%の効率に相当します。 効率は
3%減少しますが、ブリッジの追加により fMAX を 5%向上できます。たとえばクロック周波数が
向上できれば、全体のスループットが改善されます。 転送されるワード数が向上するため、パ
イプライン・ブリッジの有無にかかわらず効率は 100%近くまで向上します。
Qsys システム・パフォーマンスの最適化
フィードバック
Altera Corporation
8-20
QII5V1
2015.05.04
許容できないレイテンシの増加
図 8-12: 高い効率の読み出し転送
Read Latency
Overhead
clk
address
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
D0
D1
D2
D3
D4
D5
D6
D7
D8
read
waitrequest
readdatavalid
readdata
許容できないレイテンシの増加
プロセッサは高レイテンシの読み出し時間に対してセンシティブであり、また多くの場合、デー
タが到着するまで処理をすることができない計算に使用するためのデータの取得をします。 プ
ロセッサ命令のデータ・パス、またはデータ・マスタにブリッジを追加する前に、クロック周波
数の向上がレイテンシを増加させる正当な理由になるかどうかを判断します。
Nios II プロセッサの命令マスタは、読み出しレイテンシが 4 サイクルのキャッシュ・メモリを有
しており、これは各読み出しに 8 連続したワードのデータを返します。 100 MHz では、1 つめの
読み出しが完了するまでに 40 ns を要します。 連続したワードがそれぞれ 10 ns を要するため
に、8 つの読み出しは 110 ns で完了します。
図 8-13: 100 MHz で動作する Nios II プロセッサとメモリのパフォーマンス
110 ns
40 ns
clk
address
A0
A1
A2
A3
A4
A5
A6
A7
D0
D1
D2
D3
read
waitrequest
readdatavalid
readdata
D4
D5
D6
D7
クロック・クロッシング・ブリッジの追加により、メモリは 125 MHz での動作が可能になりま
す。 しかし、この周波数の向上はレイテンシの増加によって打ち消されます。これは、クロッ
ク・クロッシング・ブリッジが 100 MHz で 6 クロック・サイクルのレイテンシを追加した場合
に、引き続きメモリが 4 クロック・サイクルの読み出しレイテンシで動作するためです。 その
結果、メモリからの 1 つめの読み出しは 100 ns を要し、連続したワードはそれぞれ 10 ns を要し
Altera Corporation
Qsys システム・パフォーマンスの最適化
フィードバック
QII5V1
2015.05.04
同時処理の制限
8-21
ます。読み出しがプロセッサの周波数である 100 MHz で到着するためです。 8 つの読み出しは
合計で 170 ns 後に完了します。 メモリが高いクロック周波数で動作するにもかかわらず、マス
タが動作する周波数がスループットを制限します。
図 8-14: 10 サイクルのレイテンシでの Nios II プロセッサのパフォーマンスおよび 8 つの読み出し
170 ns
100 ns
clk
address
A0
A1 A2
A3 A4
A5 A6 A7
read
waitrequest
readdatavalid
readdata
D0 D1
D2 D3
D4 D5
D6 D7
同時処理の制限
複数のマスタおよびスレーブ・インタフェース間へのブリッジの配置は、システムが開始可能な
同時処理転送の数を制限します。 この制限は、複数のマスタ・インタフェースを 1 つのスレー
ブ・インタフェースに接続した場合と同じです。 ブリッジのスレーブ・インタフェースはすべ
てのマスタに共有され、その結果として Qsys がアービトレーション・ロジックを作成します。
ブリッジの後段に配置したコンポーネントへのアクセスが頻繁ではない場合には、この同時処理
の制限を許容することができます。
ブリッジを不適切に使用した場合に、ブリッジがシステムのパフォーマンスに悪影響を及すこと
があります。 たとえば、複数のメモリがいくつかのマスタによって使用されている場合には、
メモリ・コンポーネントをブリッジの後段に配置するべきではありません。 ブリッジがメモリ・
アクセスの同時処理を妨げ、メモリのパフォーマンスを制限します。 ブリッジの後段へ複数の
メモリ・コンポーネントを配置することにより、ブリッジにアクセスするマスタに対して、個々
のスレーブ・インタフェースが 1 つの大きなメモリと同様になり、つまり全てのマスタが必ず同
じスレーブ・インタフェースにアクセスしなければならなくなります。
Qsys システム・パフォーマンスの最適化
フィードバック
Altera Corporation
8-22
QII5V1
2015.05.04
同時処理の制限
図 8-15: 階層システムでのブリッジの不適切な使用
Nios II
Processor
M
DMA
M
M
Arbiter
Qsys Subsystem
M
Bottleneck
S
Bridge
M
S
S
S
S
DDR
SDRAM
DDR
SDRAM
DDR
SDRAM
DDR
SDRAM
メモリ・サブシステムで、Nios II と DMA の Avalon-MM マスタに対して 1 つのスレーブ・イン
タフェースのように振舞う 1 つのブリッジが、結果的にボトルネック・アーキテクチャとなりま
す。 ブリッジが 2 つのマスタとメモリとの間でボトルネックとして作用しています。
メモリ・インタフェースの fMAX が低く、サブシステム間でパイプライン・ブリッジを使用する
必要がある場合には、各メモリをそれぞれ固有のブリッジの背後に配置することにより、同時処
理を犠牲にすることなくシステムの fMAX を向上させることができます。
Altera Corporation
Qsys システム・パフォーマンスの最適化
フィードバック
QII5V1
2015.05.04
8-23
アドレス・スペース変換
図 8-16: 階層システムでのボトルネックを伴わない効率的なメモリ・パイプライン
Subsystem
Nios II
Processor
M
M
Subsystem
DMA
M
M
Arbiter
Arbiter
Arbiter
Arbiter
S
S
S
S
Bridge
Bridge
Bridge
Bridge
M
M
M
M
S
S
S
S
DDR
SDRAM
DDR
SDRAM
DDR
SDRAM
DDR
SDRAM
アドレス・スペース変換
パイプラインまたはクロック・クロッシング・ブリッジのスレーブ・インタフェースは、ベー
ス・アドレスとアドレス・スパンを有しています。 ベース・アドレスはユーザーがセットする
ことも、Qsys に自動的にセットをさせることもできます。 スレーブ・インタフェースのアドレ
スは、ブリッジに接続されているすべてのコンポーネントのベース・オフセット・アドレスにな
ります。 ブリッジに接続されたコンポーネントのアドレスは、そのベース・オフセットと、コ
ンポーネントのアドレスの合計です。
ブリッジのマスタ・インタフェースは、ブリッジのスレーブ・インタフェースのベース・アドレ
スからのオフセットを表すアドレス・ビットのみを駆動します。 ブリッジを介してマスタがス
レーブにアクセスする際には、常に両方のアドレスを加算する必要があり、そうでなければ転送
が失敗します。 Address Map タブは、各マスタに接続されたスレーブのアドレスを表示してお
り、これはシステム・ブリッジによって生じるアドレス変換を含んでいます。
Qsys システム・パフォーマンスの最適化
フィードバック
Altera Corporation
8-24
QII5V1
2015.05.04
アドレスのコヒーレンシ
図 8-17: ブリッジのアドレス変換
Nios II Processor
Bridge
M
0x102C
Peripheral
0x2C
S
M
0x2C
Base = 0x1000
Address
Decoder
0xC
S
Base = 0x20
Address Translation
Address Translation
この例では、Nios II プロセッサは、ベース・アドレス 0x1000 に位置するブリッジに接続してお
り、スレーブは 0x20 のオフセットでブリッジ・マスタ・インタフェースに接続しています。ま
た、プロセッサはスレーブ内の 4 番目の 32 ビットまたは 64 ビット・ワードへの書き込み転送を
しています。 Nios II はインタコネクトに、ブリッジのアドレス範囲である、アドレス 0x102C を
駆動します。 ブリッジ・マスタ・インタフェースが、スレーブのアドレス範囲である 0x2C を駆
動し、転送が完了します。
アドレスのコヒーレンシ
システム・デザインをシンプルにするためには、すべてのマスタが同じ位置からスレーブへアク
セスする必要があります。 多くのシステムで、プロセッサは DMA コントローラといった他のマ
スタリング・コンポーネントへのバッファの位置をパスします。 プロセッサと DMA コントロー
ラが同じ位置からスレーブにアクセスしない場合には、Qsys が違いを補償する必要があります。
図 8-18: 異なるアドレスのスレーブによるシステムの複雑化
Nios II Processor
M
Peripheral
0x20
Arbiter
0x0
Address
Decoder
Base = 0x20
Masters Drive
Different Addresses
DMA
S
Bridge
M
0x1020
S
0x20
M
0x20
Base = 0x1000
Address Translation
Altera Corporation
Qsys システム・パフォーマンスの最適化
フィードバック
QII5V1
2015.05.04
転送スループットの向上
8-25
Nios II プロセッサと DMA コントローラが、アドレス 0x20 に位置するスレーブ・インタフェー
スにアクセスしています。 プロセッサは、スレーブ・インタフェースに直接に接続しています。
DMA コントローラはアドレス位置 0x1000 のパイプライン・ブリッジに接続し、これがスレー
ブ・インタフェースに接続しています。 DMA コントローラは最初にパイプライン・ブリッジに
アクセスしているので、スレーブ・インタフェースの最初の位置にアクセスするには 0x1020 を
駆動する必要があります。 プロセッサは別の位置からスレーブにアクセスしているために、こ
のスレーブ・デバイス用に 2 つのベース・アドレスを保持する必要があります。
2 つのアドレスが必要になることを回避するには、システムに追加のブリッジを加え、そのベー
ス・アドレスを 0x1000 にセットし、次に、その 2 番目のブリッジのすべてのパイプライン・オ
プションを無効にして、ブリッジによるシステムのタイミングとリソース使用率への影響が最小
限になるようにします。この 2 番目のブリッジは元のブリッジと同じベース・アドレスを有する
ので、プロセッサと DMA コントローラが同一のアドレス範囲でスレーブ・インタフェースにア
クセスします。
図 8-19: ブリッジによるアドレス変換の修正
Address Translation
Nios II Processor
Bridge
M
0x1020
S
0x20
M
Arbiter
Base = 0x1000
DMA
Peripheral
0x20
S
0x0
Address
Decoder
Base = 0x20
Bridge
M
0x1020
S
0x20
M
0x20
Base = 0x1000
Address Translation
転送スループットの向上
システムのマスタおよびスレーブ・インタフェースの転送効率を向上させると、デザインのスル
ープットが向上します。 転送効率の向上により、低価格、低周波のデバイスを使用できるよう
になるため、コストまたは消費電力に厳格な要件を持つデザインに利点があります。 転送効率
の向上が、周波数が制限されるハードウェアのパフォーマンスを改善するので、高い性能を必要
とするデザインにも利点があります。
スループットは、所定のクロック・サイクルで Qsys が転送可能なデータのシンボル(byte など)
の数です。 読み出しレイテンシは、トランザクションのアドレス位相およびデータ位相の間の
Qsys システム・パフォーマンスの最適化
フィードバック
Altera Corporation
8-26
QII5V1
2015.05.04
パイプライン転送の使用
クロック・サイクルの数です。 たとえば 2 の読み出しレイテンシは、アドレスがポストされた
2 サイクル後に、データが有効になることを意味します。 1 つのリクエストが終了するまでマス
タが次の開始を待機しなければならないプロセッサなどでは、読み出しレイテンシが全体のスル
ープットに対して大変重要になります。
スループットおよびレイテンシは、シミュレーションでの波形の観察、または検証 IP モニタの
使用により測定することができます。
関連情報
• Avalon Verification IP Suite User Guide
• Mentor® Verification IP Altera Edition AMBA AXI3/4 User Guide
パイプライン転送の使用
パイプライン転送は、先行の読み出しからのデータが返される前に、マスタが複数の読み出しを
ポストできるようにすることで、読み出し効率を向上させます。 パイプライン転送をサポート
するマスタは連続的に転送をポストし、有効データを示す readdatavalid 信号にて伝えられま
す。 スレーブは readdatavalid 信号を含めるか、または固定の読み出しレイテンシで動作させ
ることによって、パイプライン転送をサポートします。
AXI マスタは writeIssuingCapability および readIssuingCapability パラメータで、未処理の書
き込みと読み出しをいくつ発行することができるかを宣言します。 同様に、スレーブも
readAcceptanceCapability パラメータでいくつの読み出しを受け入れることができるかを宣言
できます。 1 より大きい読み出し発行をすることができる能力を持つ AXI マスタは、Avalon マ
スタの readdatavalid 信号と同様の方法でパイプライン化されます。
Maximum Pending Reads パラメータの使用
可変レイテンシ読み出しをサポートするスレーブ・インタフェースを含むカスタム・コンポーネ
ントを作成する場合には、Component Editor で Maximum Pending Reads パラメータを指定する
必要があります。 Qsys は、適切なインタコネクトを生成し、パイプライン・スレーブ・コンポ
ーネントが処理できる読み出し転送の最大数を示すために、このパラメータを使用します。 ス
レーブ・インタフェースに対して示された読み出し数が Maximum Pending Reads パラメータを
超える場合に、スレーブ・インタフェースは waitrequest をアサートする必要があります。
Maximum Pending Reads パラメータの値を最適なものにするために、カスタム・コンポーネン
トのレイテンシを理解している必要があります。 このパラメータは、コンポーネント内部のさ
まざまなロジック・パスにおけるコンポーネントの最大の読み出しレイテンシに基づいている必
要があります。 たとえば、パイプライン・コンポーネントが、一方が 2 クロック・サイクル、
他方が 5 クロック・サイクルを必要とする 2 つのモードを有する場合、Maximum Pending Reads
を 5 にセットして、コンポーネントが 5 つの転送をパイプライン化できるようにすることで、最
初の 5 サイクルのレイテンシの後のデッド・サイクルを解消します。
また、システムのシミュレーション中あるいはハードウェアの動作中に保留されている読み出し
の数をモニタリングすることによって、Maximum Pending Reads パラメータの適切な値を決定
することもできます。 この手法を使用するには、このパラメータを高い値に設定し、かつ、ク
ロック毎に読み出しリクエストを発行するマスタを使用します。 頻繁に waitrequest をアサー
トしない位置にデータが書き込まれている限り、このタスクに DMA を使用することができま
す。 この手法を適用する場合には、ロジック・アナライザまたは内蔵のモニタリング・ハード
ウェアを使用してコンポーネントを観察できます。
Altera Corporation
Qsys システム・パフォーマンスの最適化
フィードバック
QII5V1
2015.05.04
アービトレーション・シェアおよびバースト
8-27
カスタム・パイプライン読み出しコンポーネントの Maximum Pending Reads パラメータへの適
切な値の選択は重要です。 このパラメータ値を低く見積もると、スレーブが早期の読み出しリ
クエストに応答して FIFO ポジションを解放するまで、マスタ・インタフェースが waitrequest
によって停止状態に陥る原因となります。
Maximum Pending Reads パラメータは、スレーブに接続する各マスタ向けにインタコネクトに
挿入される応答 FIFO の段数をコントロールします。この FIFO はそれほど多くのハードウェ
ア・リソースを使用しません。Maximum Pending Reads パラメータを高く見積もった結果とし
て生じるのはハードウェア使用率のわずかな増加です。 以上の理由から、最適な値がはっきり
しない場合には、この値を高めに見積もります。
システムにブリッジが含まれている場合には、ブリッジの Maximum Pending Reads パラメータ
もセットする必要があります。 最大のスループットを可能にするために、この値は、接続して
いるスレーブの最高の値を有する Maximum Pending Reads 値よりも高く、もしくはそれと等し
くします。高いスループットが必要ない場合には、ブリッジのパラメータ値を下げることによ
り、スレーブの Maximum Pending Reads を制限すること、およびバッファの段数を削減するこ
とができます。 すべてのスレーブ・コンポーネントの Maximum Pending Reads 値が不明な場合
には、システムのシミュレーションでハードウェア動作中に保留される読み出しの数をモニタリ
ングします。この手法を使用するには、Maximum Pending Reads パラメータを高い値にセット
し、クロック毎に読み出しリクエストを発行する DMA のようなマスタを使用します。次に、ブ
リッジが、ブリッジにアクセスしているいずれかのマスタのパフォーマンスを減少させるまで、
ブリッジの Maximum Pending Reads の数を下げてゆきます。
アービトレーション・シェアおよびバースト
アービトレーション・シェアは、アービトレーション・プロセスの制御を提供します。 デフォ
ルトでは、アービトレーション・アルゴリズムは、すべてのマスタが 1 のシェアを受け取るよう
に均等に割り当てをします。
高いスループットを必要とするマスタに より多くの数のシェアを割り当てることによって、ア
ービトレーション・プロセスを調整することができます。 アービトレーション・シェアが大き
くなるにつれ、スレーブにアクセスするマスタに より多くの転送が割り当てられます。 マスタ
は割り当てられたシェアの数に応じて、マスタの読み出しまたは書き込みが続く限り、中断なく
スレーブにアクセスをすることができます。
マスタが転送をポストすることができず、他のマスタが特定のスレーブにアクセスするために待
機している場合には、アービタはそのマスタのアクセスを許可します。 このメカニズムは、マ
スタが連続的な転送をポストできない場合に、マスタがアービトレーション・サイクルを非効率
的に使用することを防ぎます。 バースト・トランザクションは、シングル・アドレスから始ま
る複数ビート(またはワード)のデータを含んでいます。 バーストにより、マスタは、シング
ル・ワード以上の転送をするためにスレーブへのアクセスを維持することができます。 バース
トしているマスタが 8 のバースト長で書き込み転送をポストすると、8 の書き込みサイクルのア
ービトレーションが保証されます。
Avalon-MM バースト・マスタ、および AXI マスタ(常にバースト・マスタと見なされている)
に、アービトレーション・シェアを割り当てることができます。 各シェアは、1 つのバースト・
トランザクション(マルチ・サイクル書き込みなど)で構成されており、これは、アービトレー
ションが次のマスタに切り替わる前に、マスタが複数のバーストを完了することを可能にしま
す。
Qsys システム・パフォーマンスの最適化
フィードバック
Altera Corporation
8-28
アービトレーション・シェアとバーストの違い
QII5V1
2015.05.04
関連情報
• Avalon Interface Specifications
• AMBA Protocol Specification
アービトレーション・シェアとバーストの違い
次の 3 つの主要な特性によってアービトレーション・シェアとバーストが区別されます。
• アービトレーション・ロック
• シーケンシャル・アドレッシング
• バースト・アダプタ
アービトレーション・ロック
マスタがバースト転送をポストすると、そのマスタに対してアービトレーションがロックされ、
その結果バースト・マスタはロックが持続している間は転送を持続できることになります。 4 番
目の書き込みの後でマスタが書き込み信号(Avalon-MM では write、AXI では wvalid)を 50 サ
イクル・ディアサートした場合にも、他のすべてのマスタがこの停滞している期間中もアクセス
の待機を続けます。
帯域幅の非効率的な使用を避けるために、マスタのデザインはフル・バースト転送の処理が可能
になるまでスレーブ・デバイスへのアクセスのリクエストを控える必要があります。あるいは、
用意ができているデータの量に等しい burstcounts をポストすることによっても、帯域幅の非効
率的な使用を避けることができます。たとえば最大 burstcount が 8 のカスタム・バースト書き
込みマスタを作成した場合で、3 ワードのデータのみの用意ができているのであれば、3 つの
burstcount を示します。スレーブが大きいバーストを処理できる場合には、この手法はシステ
ムの帯域幅の最適な使用とはなりませんが、この手法は停止状態を防止し、システム内の他のマ
スタのアクセスを可能にします。
シーケンシャル・アドレッシング
Avalon-MM のバースト転送はベース・アドレスと burstcount を含みます。burstcount は転送さ
れるデータのワード数を示し、ベース・アドレスから開始し、連続的にインクリメントします。
プロセッサや DMA、バッファ処理アクセラレータ向けにはバースト転送が一般的です。しか
し、マスタが連続していないアドレスにアクセスをする必要がある場合もあります。その結果と
して、バースト・マスタは burstcount を連続したアドレスの数にセットし、そのあとで
burstcount を次の位置のためにリセットしなければなくなります。
アービトレーション・シェアのアルゴリズムではアドレスに制限がありませんので、カスタム・
マスタがすべての読み出しまたは書き込みトランザクション毎にインタコネクトに示すアドレ
スを更新することができます。
バースト・アダプタ
Qsys では、バーストの、または非バーストの、マスタとスレーブのインタフェースを組み合わ
せたシステムを作成することができます。このデザイン手法により、異なる最大バースト長をサ
ポートするバースト・マスタとスレーブのインタフェースの接続が可能になり、また必要なとき
に Qsys がバースト・アダプタを生成します。
Qsys は、スレーブ・インタフェースのバースト長をマスタ・インタフェースのバースト長が上
回る場合、またはスレーブがサポートできないバースト・タイプをマスタが発行した場合に必ず
バースト・アダプタを挿入します。たとえば、AXI マスタを Avalon スレーブに接続する場合に
は、バースト・アダプタが挿入されます。Qsys は非バースト・マスタおよびスレーブ・インタ
フェースに 1 のバースト長を割り当てます。バースト・アダプタは、長いバーストを短いバース
Altera Corporation
Qsys システム・パフォーマンスの最適化
フィードバック
QII5V1
2015.05.04
Avalon-MM インタフェース・タイプの選択
8-29
トに分割します。その結果として、バースト・アダプタはマスタおよびスレーブ・インタフェー
ス間のアドレスと burstcount パスにロジックを追加します。
関連情報
• Qsys Interconnect
• AMBA Protocol Specification
Avalon-MM インタフェース・タイプの選択
非効率的な Avalon-MM 転送を避けるために、カスタム・マスタまたはスレーブのインタフェー
スは、単純な、パイプライン化された、またはバーストされた、適切なインタフェースを使用す
る必要があります。
単純な Avalon-MM インタフェース
単純なインタフェースの転送は、読み出しまたは書き込みのパイプラインまたはバーストをサポ
ートしておらず、結果としてパフォーマンスに制限があります。 単純なインタフェースは、マ
スタと使用頻度の低いスレーブ・インタフェースとの間の転送に適しています。 Qsys では、
PIO、UART、および Timer が単純な転送を使用するスレーブ・インタフェースを含みます。
パイプライン化された Avalon-MM インタフェース
パイプライン化された読み出し転送は、パイプライン・マスタ・インタフェースが、先行の転送
の完了を待つことなく連続して複数の読み出し転送を開始することを可能にします。 また、パ
イプライン転送により、スレーブ・ポートが各転送へデータを返すために 1 またはそれ以上のサ
イクルのレイテンシを必要とする場合でも、マスタとスレーブのペアがより高いスループットを
達成することができます。
多くのシステムでは、単純な読み出しが使用される場合に読み出しスループットが不十分になり
ますが、パイプライン化された転送によりスループットを向上することができます。 固定の読
み出しレイテンシによってコンポーネントを定義する場合、Qsys は、パイプライン読み出しを
サポートするために必要なパイプライン・ロジックを自動的に提供します。 スレーブ・インタ
フェース向けに、デフォルトのデザインの起点として固定レイテンシ・パイプラインを使用しま
す。 スレーブ・インタフェースが可変レイテンシ応答時間を有している場合には、有効データ
が使用可能であることを示す readdatavalid 信号を使用します。 インタコネクトには、最大数
のペンディング読み出しリクエストを処理するために、読み出し応答 FIFO バッファを実装しま
す。
パイプラン読み出し転送をサポートするコンポーネントを使用するため、およびパイプライン・
システム・インタコネクトを効率的に使用するためには、システムがパイプライン・マスタを含
んでいる必要があります。 新しいマスタ・コンポーネント向けに、デフォルトの起点として、
パイプライン・マスタを使用します。 これらのマスタ・インタフェースに readdatavalid 信号
を使用します。
マスタとスレーブが適合しないパイプライン・レイテンシを有することがあるので、インタコネ
クトは違いを調整するためのロジックを含みます。
Qsys システム・パフォーマンスの最適化
フィードバック
Altera Corporation
8-30
QII5V1
2015.05.04
バースト Avalon-MM インタフェース
表 8-1: マスタとスレーブのペアのパイプライン・レイテンシ
マスタ
スレーブ
パイプライン管理ロジック構造
パイプラインなし
パイプライン
なし
Qsys インタコネクトは、パイプライン・レイテンシを処理
するためのロジックをインスタンス化しません。
パイプラインなし
固定または可
変レイテンシ
のパイプライ
ン
Qsys インタコネクトは、あらゆるスレーブ側のレイテン
シ・サイクルで待機するようにマスタに強制します。 それ
ぞれの転送が完了するまでマスタが新しい転送の開始を待
機するので、このマスタとスレーブのペアにはパイプライ
ン化による利点がありません。 ただし、マスタの待機中に
スレーブは異なるマスタからの転送を受け入れることがで
きます。
パイプラインあり
パイプライン
なし
マスタとスレーブのどちらもパイプライン化されていない
場合と同様に Qsys インタコネクトが転送を行うので、スレ
ーブがデータを返すまでマスタは待機しなくてはならなく
なります。 非パイプライン・スレーブの例としては、非同
期オフチップ・インタフェースがあります。
パイプラインあり
固定レイテン
シでのパイプ
ライン
Qsys インタコネクトにより、スレーブからのデータが有効
であるときのクロック・サイクル丁度でマスタがデータを
キャプチャすることができ、最大スループットが可能にな
ります。 固定レイテンシ・スレーブの例としては、オンチ
ップ・メモリがあります。
パイプラインあり
可変レイテン
シでのパイプ
ライン
スレーブの readdata が有効である際に、スレーブが信号を
アサートし、マスタがデータをキャプチャします。 スレー
ブが可変レイテンシを備えていれば、マスタとスレーブの
ペアは最大スループットを達成することができます。 可変
レイテンシ・スレーブの例には SDRAM および FIFO メモリ
が含まれます。
バースト Avalon-MM インタフェース
バースト転送は通常、SDRAM などのレイテンシのあるメモリや、PCI Express などのオフ・チッ
プの通信インタフェースに使用されます。 バースト対応スレーブ・インタフェースを効率的に
使用するためには、これをバースト・マスタに接続する必要があります。 効率的に動作するた
めにバーストを要求するコンポーネントは、多くの場合、短いバーストあるいは非バースト転送
によるオーバーヘッド・ペナルティを伴います。
コンポーネントを効率的に動作させるために連続的な転送が必要であることが明らかな場合に
は、バースト対応スレーブ・インタフェースをデザインします。 SDRAM メモリは、バンクやロ
ウを切り替える際にペナルティを負うので、SDRAM メモリがバーストで連続的にアクセスされ
る場合にパフォーマンスは向上します。
バーストは、アドレスとデータの転送に同じ信号を使用するアーキテクチャに対しても利点があ
ります。 アドレスが、アドレスおよびデータの共有の信号に転送されるたびに、データ転送の
スループットは低下します。 アドレス位相によりオーバーヘッドが追加されるので、大規模な
バーストを使用することで接続のスループットを向上できます。
Altera Corporation
Qsys システム・パフォーマンスの最適化
フィードバック
QII5V1
2015.05.04
Avalon-MM バースト・マスタの例
8-31
Avalon-MM バースト・マスタの例
図 8-20: Avalon バースト書き込みマスタ
この例は、FIFO からデータを受信しメモリへコンテンツの書き込みを行うバースト書き込みマ
スタのアーキテクチャを示しています。 カスタム DMA、ハードウェア・アクセラレータ、また
はオフ・チップの情報インタフェースといったバースト・コンポーネントのユーザー設計の起点
として、バースト・マスタを使用することができます。
start_address[31:0]
go
increment_address
d
load
Up
Counter
q
master_address[31:0]
1
0 s
D
Q
VCC
count enable
byteenable[3:0]
EN
burst_begin
done
transfer_length[31:0]
go
increment_address
d
load
q
length[31:0]
master_burstcount[2:0]
Down
Counter
count enable
Tracking Logic/
State Machine
fifo_used[]
burst_begin
burst_count[2:0]
write
increment_address
waitrequest
user_data[31:0]
q
user_data_full
full
user_data_write
write
used[]
Look-Ahead FIFO
d
read acknowledge
writedata[31:0]
increment_address
マスタはワード・アクセスを行い、連続的なメモリ位置に書き込みをしています。 go がアサー
トされると start_address と transfer_length がレジスタに格納されます。 次のクロック・サイ
クルで、コントロール・ロジックが burst_begin をアサートし、これが内部コントロール信号
を、インタコネクトに示された master_address と master_burstcount に加えて同期させます。
この 2 つの信号のタイミングは重要です。これは、バースト書き込み転送の間、byteenable と
burstcount がバースト全体に対して一定に保持される必要があるためです。
非効率的な書き込み避けるために、マスタは十分なデータが FIFO にバッファリングされた際に
バーストをポストします。 バーストの効率を最大にするために、マスタはスレーブが
waitrequest をアサートした際にのみ停止状態になる必要があります。 この例では、FIFO の
Qsys システム・パフォーマンスの最適化
フィードバック
Altera Corporation
8-32
QII5V1
2015.05.04
ロジック使用率の削減
used 信号が FIFO に格納されたデータのワード数をトラッキングし、いつ十分なデータがバッフ
ァリングされたかを判断します。
レジスタは各ワードの転送後にインクリメントし、length レジスタは各ワードの転送後
にデクリメントします。 アドレスはバーストの間中、一定を保ちます。 転送がバースト境界上
で完了することが保証されていないため、短いバーストの完了を認識して転送を完了するための
追加のロジックが必要です。
address
関連情報
• Avalon Memory-Mapped Master Templates
ロジック使用率の削減
Qsys システムのロジック・サイズを最低限に抑えます。通常、ロジック使用率と性能の間には
トレード・オフがあります。 ロジック使用率の削減は、Avalon および AXI インタフェースのど
ちらにも適用できます。
インタコネクト・ロジックの最小化によるロジック使用率の削減
Qsys でのマスタとスレーブ間の接続の修正により、システムで必要とされるインタコネクト・
ロジックの量を削減できます。
関連情報
8-21 ページの 同時処理の制限
マスタとスレーブに専用の接続を作成することによるインタコネクトロジックの最小化
マスタ・インタフェースが単独のスレーブ・インタフェースと接続するシステムを作成します。
この構成はアドレス・デコード、アービトレーション、および戻りデータのマルチプレクサ化を
不要にし、インタコネクトを単純にします。 マスタからスレーブへの専用の接続により、クロ
ック周波数を Avalon-ST の接続と同じにすることができます。
通常、この一対一の接続は、Avalon メモリマップド・ブリッジまたはハードウェア・アクセラ
レータを含みます。 たとえば、スレーブとすべてのマスタ・インタフェースとの間にパイプラ
イン・ブリッジを挿入する場合、ブリッジのマスタとスレーブとのインタフェース間のロジック
は配線になります。 ハードウェア・アクセラレータが専用のメモリのみと接続している場合、
マスタとスレーブのペア間にシステム・インタコネクト・ロジックは生成されません。
不要な接続の削除によるインタコネクトロジックの最小化
マスタとスレーブ・インタフェースとの間の接続の数はシステムの fMAX に影響します。 スレー
ブ・インタフェースに接続するすべてのマスタ・インタフェースが、マルチプレクサ幅を増加さ
せます。 マルチプレクサ幅が増加するので、FPGA 内でマルチプレクサを実装するロジックの段
数と幅も増加します。 システムのパフォーマンスを改善するためには、必要な場合にのみマス
タとスレーブを接続します。
マスタ・インタフェースを多数のスレーブ・インタフェースに接続した際には、読み出しデータ
信号用のマルチプレクサが増大します。 Avalon は通常 readdata 信号を使用します。AXI の読
み出しデータ信号は、rdata、rresp、および rlast を使用する読み出し応答チャネルに応答ステ
Altera Corporation
Qsys システム・パフォーマンスの最適化
フィードバック
QII5V1
2015.05.04
アドレス・デコード・ロジックの単純化
8-33
ータスとラスト・インジケータを追加します。 なお、マルチプレクサの段数を制御するために
ブリッジが役立ちます。
関連情報
8-13 ページの 命令パイプラインの実装(マスタからスレーブへ)
アドレス・デコード・ロジックの単純化
クリティカル・パス内にアドレス・デコード・ロジックがあるのであれば、アドレス・マップの
修正によりデコード・ロジックを単純にできることがあります。 ワン・ホット・エンコーディ
ングを含む様々なアドレス・マップを試してみて、結果が改善するかどうかを確認します。
複数のインタフェースの統合によるアービトレーション・ロジックの最小化
デザインのコンポーネント数の増加に伴い、インタコネクトの実装のために必要となるロジック
の量も増加します。 アービトレーション・ブロックの数は、複数のマスタ・インタフェースに
よって共有される各スレーブ・インタフェースのために増加します。 読み出しデータ・マルチ
プレクサ幅は、各マスタ・インタフェースごとに増加する読み出し転送をサポートしているスレ
ーブ・インタフェースの数に伴って増加します。 これらの理由から、インタコネクト・ロジッ
ク使用率を削減するために、複数のロジックのブロックを 1 つのインタフェースとして実装する
ことを検討します。
ロジック統合のトレード・オフ
システムやインタフェースに変更を加える前に、以下のトレード・オフについて考慮する必要が
あります。
• コンポーネントを統合した際に結果として生じる、同時処理への影響について考慮します。
システムに 4 つのマスタ・コンポーネントと 4 つのスレーブ・インタフェースがある場合、4
つの同時処理アクセスを開始することができます。 4 つのスレーブ・インタフェースを 1 つ
のインタフェースに統合した場合には、4 つのマスタはアクセスのために競い合うことになり
ます。 したがって、統合がパフォーマンスに影響しないかぎり、低速パラレル I/O デバイス
といった優先順位の低いインタフェースのみを統合します。
• 統合により、あらかじめインタコネクトを含んでいるスレーブ・インタフェースに、新しい
デコード、およびマルチプレクサ・ロジックがもたらされるかどうかを判断します。 インタ
フェースが複数の読み出しおよび書き込みのアドレス位置を有していれば、インタフェース
はすでに必要なデコードおよびマルチプレクサのロジックを有しています。 インタフェース
を統合する際、通常は、元のインタフェースの 1 つにすでに存在するデコーダおよびマルチ
プレクサ・ブロックを再利用します。ただし、インタフェースを統合することが複製の排除
にはならず、デコードおよびマルチプレクサ・ロジックを単純に移動しただけの結果になる
ことがあります。
• インタフェースの統合が設計を複雑にするかどうかを考慮します。 もしそうであれば、イン
タフェースの統合をするべきではありません。
関連情報
8-6 ページの メモリ・マップド・システムでの同時処理の使用
Qsys システム・パフォーマンスの最適化
フィードバック
Altera Corporation
8-34
QII5V1
2015.05.04
インタフェースの統合
インタフェースの統合
Nios II/e コアは、Nios II /f コアと外部プロセッサの間の通信を保ちます。 Nios II /f コアは、最大
バースト・サイズ 8 をサポートしています。 外部プロセッサ・インタフェースは、最大バース
ト長 64 をサポートしています。 Nios II/e コアは、バーストをサポートしていません。 システム
内のメモリは、Avalon の最大バースト長が 2 の SDRAM です。
図 8-21: 組み合わされたバースト・システム
Nios II/f Core
Nios II/e Core
M
M
M
M
8
8
64
8
B
B
1
M
8
8
B
Host Processor
Interface
8
64
B
1
1
8
1
1
64
B
B
B
8
2
B
2
2
Arbiter
Arbiter
Arbiter
Arbiter
Arbiter
2
S
S
S
S
S
PIO
System ID
Timer
Mutex
DDR
SDRAM
B
Burst Adapter
8
Maximum Burst Count
この例では、システムは、異なるバースト特性を備えたコンポーネントである Nios II/e コア、
Nios II/f コア、および外部プロセッサの組み合わせを含んでおり、これらが Nios II/f コアの処理
タスクを分担しています。
Qsys は、バースト長のミスマッチを補償するために自動的にバースト・アダプタを挿入します。
アダプタはバーストを 1 つの転送、または 2 つの転送の長さにします。 DDR SDRAM に接続す
る外部プロセッサ・インタフェースでは、64 ワードのバーストはそれぞれバースト長が 2 であ
る 32 のバースト転送に分割されます。 システムを生成する際、Qsys は最大 burstcount 値に基
づいてバースト・アダプタを挿入します。その結果、マスタがバースト可能であれば、バースト
を必要としていないマスタとスレーブのペア間のインタコネクト・ロジックにバースト・アダプ
タが含まれます。
Altera Corporation
Qsys システム・パフォーマンスの最適化
フィードバック
QII5V1
2015.05.04
インタフェースの統合
8-35
この例では、Qsys は Nios II プロセッサと、タイマ、システム ID、および PIO ペリフェラルとの
間にバースト・アダプタを挿入しています。 これらのコンポーネントはバーストをサポートし
ておらず、Nios II プロセッサはこれらのコンポーネントに 1 ワードの読み出しと書き込みのアク
セスを行います。
図 8-22: ブリッジを使用する組み合わされたバースト・システム
アダプタ数を削減するには、パイプライン・ブリッジを追加します。 Nios II/f コアとバーストを
サポートしないペリフェラルとの間のパイプライン・ブリッジが、1 つ手前の例にあったバース
ト・アダプタを 3 つ排除します。 Nios II/f コアと DDR SDRAM との間の、最大バースト・サイ
ズを 8 にセットした 2 つ目のパイプライン・ブリッジが、以下に示すように別のバースト・アダ
プタを排除します。
Nios II/f Core
Nios II/e Core
M
M
M
Host Processor
Interface
M
M
8
8
64
8
64
64
B
1
B
1
S
B
8
8
2
S
Bridge
Bridge
M
M
8
B
2
Arbiter
Arbiter
Arbiter
Arbiter
Arbiter
2
S
S
S
S
S
PIO
System ID
Timer
Mutex
DDR
SDRAM
B
Burst Adapter
8
Maximum Burst Count
Qsys システム・パフォーマンスの最適化
フィードバック
Altera Corporation
8-36
QII5V1
2015.05.04
複数のクロック・ドメインによるロジック使用率の削減
複数のクロック・ドメインによるロジック使用率の削減
Qsys の System Contents タブでクロック・ドメインを指定します。 クロック・ソースは Qsys へ
の外部入力信号、または Qsys の PLL によって駆動されます。 クロック・ドメインはクロック名
によって識別されます。 同じ周波数で複数の非同期クロックを作成できます。
Qsys は、異なるクロック・ドメインで動作するインタフェース・コンポーネントの詳細を隠す、
クロック・ドメイン・クロッシング・ロジック(CDC)を生成します。 インタコネクトは各ポ
ートのメモリマップド・プロトコルを個別にサポートしており、したがって、マスタに、スレー
ブと異なるドメインでインタフェースするためのクロック・アダプタを組み込む必要がありませ
ん。 Qsys インタコネクト・ロジックは、クロック・ドメイン境界をまたぐ転送を自動的に伝播
させます。
クロック・ドメイン・アダプタは次のような利点を提供します。
• コンポーネント・インタフェースが異なるクロック周波数で動作できる
• CDC ハードウェアの設計が不要になる
• 各メモリマップド・ポートが 1 つだけのクロック・ドメインで動作できるようにし、コンポ
ーネントのデザインの複雑性を削減する
• スレーブ・クロック・ドメインとの通信を伴わずに、マスタがあらゆるスレーブにアクセス
できる
• 高速のクロック速度が必要なコンポーネントのパフォーマンスの最適化に集中して取り組む
ことができる
クロック・ドメイン・アダプタは、各クロック・ドメインに 1 つづつある有限ステート・マシン
(FSM)2 つで構成されており、これは、ハンドシェイク・プロトコルを使用してクロック境界
をまたぐ転送コントロール信号(read_request、write_request、およびマスタの waitrequest
信号)を伝播させます。
Altera Corporation
Qsys システム・パフォーマンスの最適化
フィードバック
QII5V1
2015.05.04
複数のクロック・ドメインによるロジック使用率の削減
8-37
図 8-23: クロック・クロッシング・アダプタ
Receiver Clock Domain
Sender Clock Domain
CDC Logic
control
waitrequest
Receiver
Port
Receiver
Handshake
FSM
transfer
request
Synchronizer
acknowledge
Synchronizer
control
Sender
Handshake
FSM
waitrequest
Sender
Port
address
readdata
readdata
writedata & byte enable
この例は、1 つのマスタと 1 つのスレーブの間のクロック・ドメイン・アダプタを示していま
す。 シンクロナイザ・ブロックは、複数のフリップ・フロップのステージを使用して、ハンド
シェイク FSM に入るコントロール信号でのメタステーブル事象の伝播を除去します。 CDC ロ
ジックはすべてのクロック・レートで機能します。
CDC ロジックをまたぐ転送でのイベントの典型的なシーケンスを以下に示します。
• マスタがアドレス、データ、およびコントロール信号をアサートする。
• マスタ・ハンドシェイク FSM はコントロール信号をキャプチャし、ただちにマスタを強制的
に待機状態にする。 FSM はコントロール信号のみを使用し、アドレスとデータは使用しな
い。 たとえばマスタは、アドレス信号をスレーブ側が問題なくキャプチャするまで、ただ一
定に保つ。
• マスタ・ハンドシェイク FSM が、スレーブ・ハンドシェイク FSM への転送リクエストを開
始する。
• 転送リクエストが、スレーブのクロック・ドメインに同期される。
• スレーブ・ハンドシェイク FSM はリクエストを処理し、要求された転送をスレーブとともに
行う。
• スレーブ転送が完了すると、スレーブ・ハンドシェイク FSM はマスタ・ハンドシェイク FSM
に acknowledge を送信する。 acknowledge が、マスタのクロック・ドメインに同期される。
• マスタ・ハンドシェイク FSM は、マスタを待機状態から開放することによりトランザクショ
ンを完了する。
転送は、スレーブおよびマスタ・サイドの通常の転送と同様に進行し、クロッシング・クロッ
ク・ドメインに対応するための特別なプロトコルを伴いません。 スレーブ側にとっては、異な
るクロック・ドメインのマスタが開始した転送との違いはありません。 マスタ側からみると、
Qsys システム・パフォーマンスの最適化
フィードバック
Altera Corporation
8-38
クロッシング・クロック・ドメイン転送の継続時間
QII5V1
2015.05.04
クロック・ドメインをまたぐ転送では単に余分なクロック・サイクルが必要になります。 他の
転送遅延のケース(たとえば、スレーブ側でのアービトレーション遅延またはウェイト・ステー
ト)と同様に、Qsys は転送が終了するまで強制的にマスタを待機させます。 結果として、パイ
プライン・マスタ・ポートは、異なるクロック・ドメインへの転送を行う際にパイプラインによ
る効果を得られません。
Qsys は、システム、およびコンポーネント間の接続に基づいて CDC ロジックを挿入する位置を
自動的に決定し、すべてのコンポーネントを最高の転送レートに保つために CDC ロジックを配
置します。 Qsys は、各マスタとスレーブのペアへの CDC ロジックのニーズを個別に評価し、必
要な位置に CDC ロジックを生成します。
関連情報
Avalon Memory-Mapped Design Optimizations
クロッシング・クロック・ドメイン転送の継続時間
CDC ロジックは、クロック・ドメイン境界をまたぐマスタ転送の継続時間を延長します。 読み
出しでのワースト・ケースでは、各転送は 5 のマスタ・クロック・サイクルと 5 のスレーブ・ク
ロック・サイクルで延長されます。 マスタ・ドメイン・シンクロナイザ長とスレーブ・ドメイ
ン・シンクロナイザ長のデフォルト値を 2 と想定した場合の遅延の内容は以下のとおりです。
• マスタ側のクロック・シンクロナイザによる、4 の追加のマスタ・クロック・サイクル
• スレーブ側のクロック・シンクロナイザによる、4 の追加のスレーブ・クロック・サイクル
• クロック・ドメインと交差するコントロール信号からの潜在的なメタステーブル事象による、
それぞれの方向での 1 の追加のクロック
注: 高性能のクロックを要求するシステムには、自動的に挿入される CDC ロジックではなく
Avalon-MM クロック・クロッシング・ブリッジを使用する必要があります。 このクロック・
クロッシング・ブリッジにはバッファリング・メカニズムが含まれるので、複数の読み出し
および書き込みをパイプライン化することができます。 1 つ目の読み出しまたは書き込み
に対する最初のペナルティの発生後は、読み出しと書き込みの保留に対する追加のレイテン
シ・ペナルティが発生せず、追加のロジック・リソースを犠牲にしながらも、スループット
を最大 4 倍に向上させます。
消費電力の削減
Qsys はさまざまな低消費電力デザインへの移行を可能にし、インタコネクトとカスタム・コン
ポーネントの消費電力を削減できるようにします。
複数のクロック・ドメインでの消費電力の削減
複数のクロック・ドメインを使用する際には、クリティカルではないロジックを低速のクロッ
ク・ドメインに配置します。 Qsys はクロック・クロッシング・ロジック(ハンドシェイクまた
は FIFO)を挿入することにより、非同期のクロック・ドメインをまたぐデータを自動的に調整
します。
Qsys のクロック・クロッシングを使用して、高周波数のクロックを必要としないロジックのク
ロック周波数を削減することができ、これにより消費電力が削減できます。 別々のクロック・
ドメインに、ハンドシェイク・クロック・クロッシング・ブリッジまたはハンドシェイク・クロ
ック・クロッシング・アダプタのどちらかを使用することができます。
Altera Corporation
Qsys システム・パフォーマンスの最適化
フィードバック
QII5V1
2015.05.04
複数のクロック・ドメインでの消費電力の削減
8-39
クロック・クロッシング・ブリッジを使用して、高い周波数で動作するマスタ・インタフェース
を低い周波数で動作するスレーブ・インタフェースに接続することができます。 削減したクロ
ック周波数で動作するクロック・クロッシング・ブリッジには、スループットが低い、あるいは
優先順位が低いコンポーネントだけを接続します。 以下は低いスループット、または低い優先
順位のコンポーネントの一例です。
•
•
•
•
•
•
•
•
PIO
UART(JTAG または RS-232)
システム識別(SysID)
タイマ
PLL(Qsys 内でインスタンス化)
シリアル・ペリフェラル・インタフェース(SPI)
EPCS コントローラ
トライステート・ブリッジ、およびこのブリッジに接続されたコンポーネント
ブリッジに接続されたコンポーネントのクロック周波数を削減することにより、デザインのダイ
ナミック電力の消費量を削減することができます。 ダイナミック電力はトグル・レートの作用
であり、クロック周波数の減少はトグル・レートを減少させます。
Qsys システム・パフォーマンスの最適化
フィードバック
Altera Corporation
8-40
QII5V1
2015.05.04
複数のクロック・ドメインでの消費電力の削減
図 8-24: 異なるクロック・ドメインへブリッジを使用することによる電力使用率の削減
Nios II
Processor
M
Arbiter
Arbiter
S
S
DDR
SDRAM
On-Chip
Memory
M
Arbiter
200 MHz
S
Clock
Crossing
Bridge
M
5 MHz
S
S
S
S
S
S
S
PIO
UART
System ID
Timer
PLL
SPI
EPCS
Controller
S
Tristate
Conduit
M
Low-Frequency Components
S
Flash
Qsys は異なるクロック周波数で動作するマスタとスレーブのインタフェース間に自動的にクロ
ック・クロッシング・アダプタを挿入します。 Qsys の Project Settings タブでクロック・クロッ
シング・アダプタのタイプを選択することができます。 ユーザーがアダプタを挿入することは
できないので、Connection カラムにはアダプタは表示されません。 以下のクロック・クロッシ
ング・アダプタ・タイプを Qsys で使用できます。
Altera Corporation
Qsys システム・パフォーマンスの最適化
フィードバック
QII5V1
2015.05.04
トグル・レートの最小化による消費電力の削減
8-41
• Handshake—クロック境界をまたぐ転送コントロール信号と応答を伝播するために、シンプル
なハンドシェイク・プロトコルを使用します。 次の転送を開始する前に、各転送が問題なく
ターゲット・ドメインに伝播されるため、このアダプタが使用するハードウェア・リソース
は少量です。 ハンドシェイク・アダプタは、スループット要件の低いシステムに適していま
す。
• FIFO—同期のためにデュアル・クロック FIFO を使用します。 FIFO アダプタのレイテンシは
ハンドシェイク・クロック・クロッシング・コンポーネントを約 2 クロック・サイクル上回
りますが、FIFO ベースのアダプタが複数のトランザクションを同時にサポートするので高い
スループットを維持することができます。 FIFO アダプタはより多くのリソースを必要とし、
これはクロック・ドメイン間で高いスループットを必要とするメモリマップドの転送に適し
ています。
• Auto—Qsys が、バースト・リンクに FIFO アダプタを、その他すべてのリンクにハンドシェ
イク・アダプタを適切に指定します。
クロック・クロッシング・ブリッジはクロック・クロッシング・ロジックを実装するために FIFO
を使用するので、これは転送およびデータをバッファリングします。 クロック・クロッシング・
アダプタはパイプライン化されておらず、そのために各トランザクションはトランザクションが
完了するまでブロックされます。 トランザクションのブロックによりスループットが大幅に低
下します。したがって、スループットの大幅な制限を伴わない消費電力の削減が必要な場合に
は、クロック・クロッシング・ブリッジまたは FIFO クロック・クロッシング・アダプタを使用
する必要があります。 しかし、デザインが必要としているのが単独の読み出し転送であれば、
クロック・クロッシング・アダプタはレイテンシが低いので適しています。
クロック・クロッシング・ブリッジは、オンチップ・メモリの他に少量のロジック・リソースを
必要とします。 使用されるオンチップ・メモリ・ブロックの数は、アドレス・スパン、データ
幅、バッファリングの段数、およびブリッジのバースト能力に比例します。 クロック・クロッ
シング・アダプタはオンチップ・メモリ使用せず、中程度のロジック・リソース数を必要としま
す。 デバイスのリソース使用率を、アドレス・スパン、データ幅、およびクロック・クロッシ
ング・アダプタのバースト能力が決定します。
クロック・クロッシング・ブリッジもしくはクロック・クロッシング・アダプタの使用を決めた
際には、デザインのスループットとメモリ使用率への影響を考慮する必要があります。 オンチ
ップ・メモリ・リソースに制限がある場合、クロック・クロッシング・アダプタ以外選択できな
いことがあります。 クロック・クロッシング・ブリッジの使用により 1 つのコンポーネントの
電力を削減することは、より多くのリソースの使用を正当化しません。 しかし、優先順位の低
いコンポーネントすべてを 1 つのクロック・クロッシング・ブリッジの後段に配置できる場合、
デザインの消費電力を削減することができます。
関連情報
Power Optimization
トグル・レートの最小化による消費電力の削減
ロジックがオンとオフのステートの間で遷移するたびに Qsys システムは電力を消費します。
ステートがクロック・エッジ間で一定に保たれている際には、充電または放電は生じません。
以下のデザイン手法を使用して、デザインのトグル・レートを削減します。
• コンポーネント境界へのレジスタの挿入
• クロック・イネーブル信号の使用
• ブリッジの挿入
Qsys システム・パフォーマンスの最適化
フィードバック
Altera Corporation
8-42
トグル・レートの最小化による消費電力の削減
QII5V1
2015.05.04
アダプタまたはブリッジが存在せず、インタコネクトのパイプライン化もない場合には、Qsys
インタコネクトは独自の組み合わせです。 スレーブ・インタフェースがマスタによって選択さ
れていない場合、さまざまな信号がコンポーネント内へとトグルあるいは伝播します。 マスタ
またはスレーブ・インタフェースのコンポーネント境界にレジスタを挿入することにより、イン
タコネクトとコンポーネントのトグルを最小化することができます。 さらに、境界へのレジス
タの挿入により動作周波数も向上できます。 インタフェース・レベルで信号を一度レジスタに
格納する際には、コンポーネントがインタフェース規格の仕様の範囲内で動作し続けるようにす
る必要があります
Avalon-MM の waitrequest は、コンポーネントにレジスタを追加した際に同期が難しい信号で
す。 転送を引き伸ばすためには、waitrequest 信号を、マスタが読み出しまたは書き込みをアサ
ートした同じクロック・サイクルの間にアサートする必要があります。 マスタ・インタフェー
スの waitrequest 信号の読み取りが早すぎてしまう可能性があり、性急により多くの読み出しと
書き込みをポストする可能性があります。
注: waitrequest および burstcount に直接的に等しい AXI 信号が無く、さらに、AMBA Protocol
Specification は AXI ready 信号が、AXI valid 信号に組み合わせ的に依存できないことを示し
ます。 そのため Qsys は通常、ready 信号のために AXI コンポーネント境界をバッファリン
グします。
スレーブ・インタフェースに対しては、インタコネクトは begintransfer 信号を処理し、これは
任意の読み出しまたは書き込み転送の最初のクロック・サイクルの間にアサートされます。
waitrequest が 1 クロック・サイクル遅れた場合には、waitrequest 信号と begintransfer 信号
を論理的 OR にして、適切に同期された新しい waitrequest 信号を形成します。 あるいは、コン
ポーネントは選択される以前に waitrequest をアサートでき、これにより転送の最初のサイクル
の間に waitrequest があらかじめアサートされていることを保証できます。
Altera Corporation
Qsys システム・パフォーマンスの最適化
フィードバック
QII5V1
2015.05.04
トグル・レートの最小化による消費電力の削減
8-43
図 8-25: 可変レイテンシ
Avalon-MM
Slave Port
writedata
write
Remaining
Component
Logic
readdata
read
waitrequest
ready
(synchronous)
begintransfer
クロック・イネーブルの使用
ロジックを安定した状態に保つためにクロック・イネーブルを使用でき、また、スレーブ・コン
ポーネントに対して write および read 信号をクロック・イネーブルとして使用することができ
ます。 コンポーネント境界にレジスタを追加した場合でも、クロック・イネーブルを使用して
いなければインタフェースが潜在的にトグルする可能性があります。 クロック・イネーブルは、
コンポーネント内部の組み合わせ部をディセーブルするためにも使用できます。
たとえば、アクティブ High のクロック・イネーブルを使用して組み合わせロジック内への入力
をマスクし、コンポーネントが非アクティブのときのトグルを防ぐことができます。 非アクテ
ィブ・ロジックのトグルを防止する前に、マスクすることが回路に機能の変化をもたらさないか
を判断する必要があります。 マスクすることが機能障害の原因となる場合には、組み合わせロ
ジックをクロック・サイクル間で一定に保つために、レジスタ・ステージが使用できる可能性が
あります。
ブリッジの挿入
境界でのレジスタの使用やクロック・イネーブルの使用によるコンポーネントの変更が望ましく
ない場合には、トグル・レートを削減するためにブリッジを使用します。 ブリッジは、スレー
ブ・インタフェースへの転送をマスタ・インタフェースでリピートする、リピータとして作用し
ます。 ブリッジがアクセスされない場合、ブリッジのマスタ・インタフェースに接続されたコ
ンポーネントもアクセスされません。 ブリッジのマスタ・インタフェースは、いずれかのマス
タがブリッジのスレーブ・インタフェースにアクセスするまでアイドル状態を維持します。
ブリッジはまた、他のマスタ・インタフェースへ入力する信号のトグル・レートも削減します。
これらの信号は通常、readdata、readdatavalid、および waitrequest です。 読み出しアクセス
をサポートしているスレーブ・インタフェースが readdata、readdatavalid、および waitrequest
Qsys システム・パフォーマンスの最適化
フィードバック
Altera Corporation
8-44
ロジックのディセーブルによる消費電力の削減
QII5V1
2015.05.04
信号を駆動します。 ブリッジはスレーブ・インタフェースとマスタとの間にレジスタまたはク
ロック・クロッシング FIFO のどちらかを挿入して、マスタ入力信号のトグル・レートを削減し
ます。
関連情報
• AMBA Protocol Specification
• Power Optimization
ロジックのディセーブルによる消費電力の削減
揮発性および不揮発性の、標準的な 2 種類の低消費電力モードがあります。揮発性の低消費電力
モードはコンポーネントをリセット状態に保ちます。ロジックが再びアクティブ化された際に
は、以前の動作ステートは失われています。不揮発性の低消費電力モードは以前の動作状態を復
元します。消費電力を低減するためにコンポーネントをディセーブルにするには、ソフトウェア
制御またはハードウェア制御いずれかによるスリープ・モードを使用します。
ソフトウェア制御によるスリープ・モード
ソフトウェア制御のスリープ・モードをサポートするコンポーネントをデザインするために、0
または 1 の書き込みによってロジックを有効または無効にする 1 つのメモリマップド・ロケーシ
ョンを作成します。コンポーネントが不揮発性であることが必要かどうかに基づいて、レジスタ
の出力をクロック・イネーブルまたはリセットとして使用します。コンポーネントをアクティブ
にすることが必要になった時点でイネーブル・ビットをセットできるように、スレーブ・インタ
フェースはスリープ・モード中もアクティブ状態を維持する必要があります。
複数のマスタが、スリープ・モードをサポートしているコンポーネントにアクセス可能な場合に
は、ミューテックス・コアを使用して、コンポーネントに相互排他アクセスを提供します。ロジ
ックを組み込んで、システム内のマスタによる最初のアクセスでコンポーネントを再イネーブル
することもできます。再アクティブ化するためにコンポーネントが複数のクロック・サイクルを
必要とする場合には、スリープ・モードが終了するまで転送を延長するためのウエイト・リクエ
ストをアサートする必要があります。
ハードウェア制御によるスリープ・モード
あるいは、コンポーネントにタイマを実装して、クロック・サイクルで指定したタイム・アウト
値に基づいて、読み出しまたは書き込みアクセスの間に、自動的にコンポーネントをスリープ・
モードにすることができます。各アクセスがタイマのタイム・アウト値をリセットします。アク
セスの無いサイクルがそれぞれタイム・アウト値を 1 ずつデクリメントします。カウンタがゼロ
に達すると、ハードウェアは次のアクセスまでスリープ・モードに入ります。
Altera Corporation
Qsys システム・パフォーマンスの最適化
フィードバック
QII5V1
2015.05.04
Qsys システム・パフォーマンスの最適化のデザイン例
8-45
図 8-26: ハードウェア制御によるコンポーネントのスリープ
Timeout Value
read
write
countq
d
= 0?
reset
Down
Counter
wake
load
waitrequest
count enable
sleep_n
busy
この例は、ハードウェア制御のスリープ・モードの回路図です。コンポーネントのアクティブ状
態への復帰に時間がかかる場合には、長いタイム・アウト値を使用してコンポーネントがスリー
プ・モードへの突入と復帰を繰り返さないようにします。コンポーネントの残りの部分がスリー
プ・モードに入っている間もスレーブ・インタフェースは機能を維持する必要があります。コン
ポーネントがスリープ・モードを終了する際には、コンポーネントは、読み出しまたは書き込み
アクセスが可能な状態になるまで waitrequest 信号をアサートしている必要があります。
関連情報
• Mutex Core
• Power Optimization
Qsys システム・パフォーマンスの最適化のデザイン例
8-45 ページの Avalon パイプライン読み出しマスタの例
8-48 ページの マルチプレクサの例
関連情報
Avalon Interface Specifications
Avalon パイプライン読み出しマスタの例
Avalon-MM 規格を使用する高いスループットのシステムでは、パイプライン読み出しマスタを
設計することができ、これによりデータが返される以前にシステムが複数の読み出しリクエスト
を発行することが可能になります。 パイプライン読み出しマスタは、クロック・サイクルと同
じ頻度で読み出しをポストすることで、読み出し動作のレイテンシを隠します。 アドレス・ロ
ジックがデータの戻りに依存していない場合に このタイプのマスタを使用できます。
Avalon パイプライン読み出しマスタ例のデザイン要件
パイプライン読み出しマスタのコントロールおよびデータ・パスのロジックは慎重に設計する必
要があります。 waitrequest 信号がアサートされるたびに、コントロール・ロジックは読み出し
サイクルを拡張する必要があります。 このロジックはまた、マスタの address、byteenable、お
Qsys システム・パフォーマンスの最適化
フィードバック
Altera Corporation
8-46
スループットの改善の可能性
QII5V1
2015.05.04
よび read 信号をコントロールする必要があります。 スループットを最大にするために、パイプ
ライン読み出しマスタは waitrequest がディアサートされている間は連続して読み出しをポス
トする必要があります。 read がアサートされている間、インタコネクトに示されたアドレスは
格納されています。
データ・パス・ロジックが readdata および readdatavalid 信号を含めます。 マスタが各クロッ
ク・サイクルごとにデータを受け入れることができる場合、readdatavalid をイネーブル・ビッ
トとしてデータをレジスタに格納することができます。 マスタが読み出しデータの連続ストリ
ームを処理できない場合、FIFO でデータをバッファリングする必要があります。 FIFO のオーバ
ーフローを防ぐために、コントロール・ロジックは、FIFO が予め設定されたフィル・レベルに
達した際に読み出しの発行を停止する必要があります。
スループットの改善の可能性
パイプライン読み出しマスタによって可能になるスループットの改善は、通常インタコネクトと
スレーブ・インタフェースのパイプラインの段数に正比例します。 たとえば、レイテンシの合
計が 2 サイクルの場合、スレーブ・インタフェースもパイプライン転送をサポートしていると仮
定すると、パイプライン読み出しマスタの挿入によりスループットを 2 倍にすることができま
す。 マスタかスレーブどちらかがパイプライン読み出し転送をサポートしていない場合には、
インタコネクトは転送が完了するまで waitrequest をアサートします。 読み出し応答までに数
サイクルのオーバーヘッドがある場合も、スループットを増幅することができます。
読み出しがパイプライン化されていなければ、スループットは減少します。 マスタとスレーブ
のインタフェースがどちらもパイプライン読み出し転送をサポートしていれば、データは最初の
レイテンシの後で連続ストリームで流れます。 データを FIFO に格納するパイプライン読み出
しマスタを、カスタム DMA、ハードウェア・アクセラレータ、あるいはオフチップ通信インタ
フェースを実装するために使用することができます。
Altera Corporation
Qsys システム・パフォーマンスの最適化
フィードバック
QII5V1
2015.05.04
スループットの改善の可能性
8-47
図 8-27: パイプライン読み出しマスタ
start_address[31:0]
go
increment_address
d
load
Up
Counter
master_address[31:0]
q
VCC
count enable
byteenable[3:0]
done
transfer_length[31:0]
go
increment_address
d
load
q
length[31:0]
read
Down
Counter
count enable
readdatavalid
Tracking Logic/
State Machine
increment_address
fifo_used[]
waitrequest
user_data[31:0]
q
user_data_empty
empty
user_data_read
read acknowledge
used[]
Look-Ahead FIFO
d
write
writedata[31:0]
readdatavalid
この例は、データを FIFO に格納するパイプライン読み出しマスタを示しています。 マスタはワ
ード・アラインメントされたワード・アクセスを行い、連続的なメモリ・アドレスから読み出し
を行います。 転送長は、ワード・サイズの倍数です。
ビットがアサートされると、マスタは start_address および transfer_length 信号をレジスタ
に格納します。マスタは次のクロック・サイクルへの読み出しの発行を開始し、これは length
レジスタが 0 に達するまで継続されます。この例ではワード・サイズが 4 バイトであるため、ア
ドレスは常に 4 ずつインクリメントし、長さは 4 ずつデクリメントします。あらかじめ設定され
たレベルを FIFO が満たさない限り、read 信号のアサートは維持されます。length が 0 に達せ
ず、また read がポストされていれば、address レジスタはインクリメントし、length レジスタ
はデクリメントします。
go
信号がアサートされ waitrequest がディアサートされるたびにマスタは読み出し転送をポ
ストします。バッファ全体が読み出されるか waitrequest がアサートされるまで、マスタは読み
出しを発行します。オプショナルのトラッキング・ブロックは done ビットをモニタリングしま
す。length レジスタが 0 に達した場合でも、いくつかの読み出し処理は完了していません。ト
ラッキング・ロジックは、最後の読み出し処理が完了するまで done がアサートされるのを防ぎ、
また、インタコネクトにポストされた読み出しの数をモニタリングして、これが readdata FIFO
read
Qsys システム・パフォーマンスの最適化
フィードバック
Altera Corporation
8-48
QII5V1
2015.05.04
マルチプレクサの例
に残っているスペースを超過しないようにします。この例は、以下に示す条件が満たされるかを
検証するカウンタを含んでいます。
• 読み出しがポストされ readdatavalid がディアサートされた場合、カウンタはインクリメン
トする
• 読み出しがポストされず readdatavalid がアサートされた場合、カウンタはデクリメントす
る
length レジスタおよびトラッキング・ロジック・カウンタが 0 に達したときには、全ての読み
出しは完了しており、done ビットがアサートされます。done ビットは、パイプライン読み出し
マスタがアクセスしているメモリ位置を 2 番目のマスタが上書きする場合に重要です。このビ
ットが、元のデータが上書きされる前に読み出しが完了していることを保証します。
マルチプレクサの例
ストリーミング・コンポーネントとアダプタを結合することにより、入力および出力のストリー
ムが異なる特性を持つデータパスを作成することができます。以下の例は、出力ストリームが入
力ストリームよりも高いパフォーマンスを発揮するデータパスを示します。
次の図に、オン・チップ FIFO メモリのデュアル・クロック・バージョンを使用して、2 つの入
力ストリームを異なるレートでサンプリングすることにより、入力データの周波数 100 MHz を
110 MHz に増幅させるデータパスを示します。オンチップ FIFO メモリは、100 MHz の入力クロ
ック周波数と 110 MHz の出力クロック周波数を有します。チャネル・マルチプレクサは 110
MHz で動作し、1 つの入力ストリームを時間の 27.3%で、次の入力ストリームを時間の 72.7%で
サンプリングします。このタイプのデザインでは、これより前の標準と最大の入力チャネル使用
率を把握しておく必要はありません。たとえば、最初のチャネルが 50%の使用率に達した場合、
出力ストリームは 100%の使用率を上回ります。
図 8-28: クロック周波数を増幅させるデータパス
Data Source
Input
src
30% Channel Utilization
8 Bits at 100 MHz
Data Source
Input
src
80% Channel Utilization
8 Bits at 100 MHz
On-Chip FIFO Memory
Dual Clock
sink
src
sink
src
On-Chip FIFO Memory
Dual Clock
sink
27.3% Sample Rate
120 MHz
src
72.7% Sample Rate
110 MHz
100% Channel Utilization
Output 110 MHz
sink
次の図に、データ・フォーマット・アダプタと Avalon-ST チャネル・マルチプレクサを使用し
て、100 MHz で動作する 2 つの 8 ビット入力を、100 MHz での 1 つの 16 ビット出力に変換する
データパスを示します。
Altera Corporation
Qsys システム・パフォーマンスの最適化
フィードバック
QII5V1
2015.05.04
改訂履歴
8-49
図 8-29: データ幅を 2 倍にして元の周波数を維持するデータパス
Data Source
Input
8 Bits at 100 MHz
src
sink
Data Format
Adapter
src
16 Bits at 100 MHz
sink
src
Data Source
Input
8 Bits at 100 MHz
src
sink
Data Format
Adapter
src
16 Bits at 100 MHz
16 Bits
at 100 MHz
sink
次の図に、オン・チップ FIFO メモリのデュアル・クロック・バージョンと Avalon-ST チャネル・
マルチプレクサを使用して、2 つのストリーミング・データ・ソースからの 100 MHz の入力を 1
つの 200 MHz ストリーミング出力にマージするデータパスを示します。この例では、出力で各
インタフェースのスループットが 2 倍になり、クロック周波数もこれに対応して 2 倍になってい
ます。
図 8-30: クロック周波数を逓倍するデータパス
Data Source
Input
src
On-Chip FIFO Memory
Dual Clock
100 MHz
sink
Data Source
Input
src
src
200 MHz
sink
src
On-Chip FIFO Memory
Dual Clock
100 MHz
sink
src
200 MHz
Output
200 MHz
sink
改訂履歴
以下の表に、Qsys システム・パフォーマンスの最適化の初版発行からの改訂履歴を示します。
表 8-2: 改訂履歴
日付
版
変更内容
マルチプレクサの例で図の説
2015.05.04
15.0.0
2013 年 5 月
13.0.0
AMBA APB をサポート
2012 年 11 月
12.1.0
AMBA AXI4 をサポート
Qsys システム・パフォーマンスの最適化
フィードバック
明文を再編
Altera Corporation
8-50
QII5V1
2015.05.04
改訂履歴
日付
版
変更内容
2012 年 6 月
12.0.0
AMBA AXI3 をサポート
2011 年 11 月
11.1.0
初版発行
関連情報
Quartus II Handbook Archive
Altera Corporation
Qsys システム・パフォーマンスの最適化
フィードバック