次に、NoC と統合 DDRMC の性能チューニングの概要を示します。
- 各 NoC マスターのトラフィック クラスを選択します。
- マスターにキャッシュがある場合は、読み出しを低レイテンシ (LL)、書き込みをベスト エフォート (BE) とします。
- マスターにハードまたはソフト リアルタイム要件がある場合 (ビデオ アプリケーションなど)、トラフィック クラスをアイソクロナス (ISOC) とします。
- それ以外の場合は、ベスト エフォート (BE) を選択します。よくわからない場合は、デフォルトでこの設定を使用します。
- 各フローに対する帯域幅の割り当てを選択します。帯域幅の割り当てにより、すべてのマスターがサービスを要求して競合が発生した場合の解決方法が決まります。
- LL トラフィックには、利用可能な DDR 帯域幅のごく一部を割り当てます。
- ISOC トラフィックの場合、通常はマスターが必要とする (またはマスターが生成する) 帯域幅は事前にわかっているため、その値を割り当てます。
- BE トラフィックの場合は、必要な最小帯域幅を選択します。
- マスターがなるべく長いバーストを送信するように設定します。これにより、DDR の効率が最大化します。
- NoC の前に、まず DDR の性能をチューニングします。行/バンク/列のマップが最適化されていることを確認してください。
- DDR の性能を最適化しても NoC の全体的なトラフィック仕様が満たされていない場合は、次の手順を確認します。
- NoC を通過する共有配線を調べます。配線の共有が最適でないために、一部のマスターが十分な帯域幅を確保できていない可能性があります。
- NMU の読み出しリオーダー バッファーのエントリ数が限界に達して、BE マスターに十分な帯域幅が確保されていないことがあります。
- マスターを DDR の近くに移動すると、改善することがあります。
- マスターの帯域幅割り当てを増やします。BE トラフィックの場合、これでは効果がないこともあります。NoC は帯域幅の割り当てに基づいて BE にトラフィック シェーピングを適用しますが、メモリ コントローラーはすべての BE トラフィックを同じ優先度で扱います。
- その他の方法としては、マスターを ISOC にするか、ほかの BE マスターのレートを制限するなどがあります。