AN 763: インテル® Arria® 10 SoCデバイスのデザイン・ガイドライン

ID 683192
日付 8/14/2020
Public
ドキュメント目次

2.2.2.1. ACPに関連するロックアップの回避

特定のコヒーレント・アクセス・シナリオでは、ACPとCPUを介してデッドロックが引き起こされる可能性があります。ただし、このタイプのデッドロックは、単純なアクセス戦略により回避することができます。
次の例では、FPGAファブリックを介してHPSへのアクセスを開始することにより、CPUがデッドロックを引き起こします。
  1. CPUがFPGAファブリックへのデバイス・メモリー・アクセスを開始します。CPUのパイプラインは、このタイプのアクセスが完了するまで停止している必要があります。
  2. FPGAファブリックのステートマシンでは、デバイス・メモリー・アクセスに応答する前に、HPSにコヒーレントにアクセスする必要があります。そのため、ACPを必要とするコヒーレント・アクセスを開始します。
  3. ACPでは、アクセスを完了する前にキャッシュのメンテナンス操作を行う必要があります。ただし、CPUのパイプラインが停止しているため、キャッシュのメンテナンス操作を実行することができません。システムでデッドロックが発生します。

アクセスをより小さく分割することで、デッドロックを発生させることなく必要なアクセスを実装することができます。例えば、1つのアクセスで動作を開始し、2番目のアクセスで動作のステータスを特定することが可能です。