UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 47484

Zynq-7000 AP SoC、AXI - AXI_HP が OCM および DDR にアクセスするとデッドロック状態が発生する可能性がある

説明


AXI_HP ソースと、DMAC などの別のソースがそれぞれ相互依存する形で OCM および DDR の両方にアクセスすると、PS AXI インターコネクトでデッドロック状態になる可能性があります。これらのソースのいずれかで 1 つのデスティネーション (OCM または DDR) にのみリクエストを出力するようにするか、または AXI_HP インターフェイスの書き込み数を 1 度に 1 回の書き込みが行われるように制限するかして、このデッドロックは避けることができます。問題となるソースには AXI_HP インターフェイスのペアや、中央インターコネクト (DMAC、IOP マスターなど) が含まれます。APU メモリ リクエスト (CPU および ACP) は問題ではありません。


ソリューション

影響 : 深刻な問題です。システムが停止する可能性があります。
回避策 :「ソリューション」セクションの「回避策の詳細」を参照してください。
対象となるコンフィギュレーション : AXI_HP インターフェイスを使用するデザイン
対象となるデバイス リビジョン : 詳細は、(ザイリンクス アンサー 47916) - Zynq-7000 デザイン アドバイザリ マスター アンサーを参照してください。



あるシーケンスで 2 つのソースがOCM および DDR にアクセスすると、デッドロック状態が発生する可能性があります。デッドロック状態に影響するソースは 3 つあります。これらのソースには APU (CPU および ACP インターフェイス) からのメモリ リクエストは含まれません。
OCM および DDR の両方にアクセスする 3 つのソースのうち、どの 2 つを組み合わせてもデッドロックが発生する可能性があります。

  • AXI_HP{1,0} のペア
  • AXI_HP{3,2} のペア

中央インターコネクト (DMAC、IOP マスターなど)

たとえば、AXI_HP{1:0} には、OCM にアクセスする AXI_HP0 と、DDR にアクセスする AXI_HP1 があります (両方のマスターが同じ HP ペアにある)。
デッドロックが起きないときの例は次のとおりです。
  • AXI_HP ペアが OCM および DDR の両方にアクセスしていない。
  • 中央インターコネクトが OCM および DDR の両方にアクセスしていない。
  • AXI_HP0 が OCM にアクセスし、AXI_HP3 が DDR にアクセスしている (異なる AXI_HP ペア)。
つまり、デッドロック状態が発生するには、2 つのソースがどちらも OCM および DDR にアクセスしている必要があり、2 つのソースのうち 1 つが AXI_HP ペアの 1 つである必要があります。もう 1 つのソースは他の AXI_HP ペアまたは中央インターコネクトに接続されているマスターの可能性があります。

2 つのソースのそれぞれが OCM および DDR の両方にアクセスしているだけでなく、特定シーケンスでアクセスが行われている必要があります。

そのシーケンスの具体例は次のとおりです。

AXI_HP マスターDMA 制御マスター
AXI_HP_DDR1_1 (DDR ポート 1 へ)DMA_OCM (OCM へ)
AXI_HP_DDR1_2 (DDR ポート 1 へ)DMA_ DDR2 (DDR ポート 2 へ)
AXI_HP_OCM (OCM へ)

書き込みアドレスと書き込みデータは別々のチャネルで送信されますが、スレーブでは、書き込みデータ順序は、スレーブで許可されている書き込みアドレス シーケンスに従う必要があります。たとえば、順序並び替えは許可されていません。DDR でのトランザクションの順序は次のようになります。
  • AXI_HP_DDR1_1 : AXI_HP からの最初の書き込みが行われる。
  • DMA_DDR2 : DDRC がトランザクションを許可するが、書き込みデータは DMA_OCM の後まで使用できないので、完了できない。
  • AXI_HP_DDR1_2 : DDR は DMA_DDR2 が完了するまでこれを処理できない。
OCM でのトランザクションの順序は次のようになります。
  • AXI_HP_OCM : OCM がトランザクションを許可するが、書き込みデータは AXI_HP_DDR1_2 完了後まで使用できないので、完了できない。
  • DMA_OCM : OCM は AXI_HP_OCM が完了するまでこれを処理できない。
上記で説明したように、デッドロックが発生します。

回避策 : この問題の回避策はいくつかあります。
AXI_HP0/AXI_HP1 のマスター ペアが OCM または DDR のどちらかにアクセスしていて、AXI_HP2/AXI_HP3 のマスター ペアからのアクセスが、OCM または DDR にのみに制限されているようにしてください。AXI_HP ポートの書き込み出力が 1 回につき 1 書き込みとなるように制限します。AXI_HP ポートの書き込み出力を 1 に設定するには、GPV レジスタを次のようにプログラムします。 AddressValue
0xF894_2108 0x02
0xF894_3108 0x02
0xF894_4108 0x02
0xF894_5108 0x02

アンサー レコード リファレンス

マスター アンサー レコード

Answer Number アンサータイトル 問題の発生したバージョン 修正バージョン
53051 Zynq-7000 AP SoC - PS DDR コントローラー N/A N/A
AR# 47484
日付 03/05/2013
ステータス アクティブ
種類 デザイン アドバイザリ
デバイス
  • Zynq-7000
このページをブックマークに追加