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# 47516

Zynq-7000 AP SoC、DDR - コントローラーで STREX 命令が不正に処理される

説明

キャッシュが無効になっていると、CPU で実行される排他格納 (STREX) 命令に DDR コントローラーが応答しないことがあります。この問題は、キャッシュを有効にしたキャッシュ可能なメモリ空間でのみ STREX 命令を実行するようにすると、回避できます。

ソリューション


影響 : 深刻な問題ではありません。システムが停止するのは非常にまれです。

回避策 : 排他操作が必要なマスターが ARM コアに制限されている場合、排他操作が必要な領域をキャッシュ可能にし、L1 キャッシュを有効にすると、この問題を回避できます。さらに、マスターの 1 つが PL にある場合、その PL に排他モニターをインプリメントでき、ARM CPU およびデバイス マスターからのアクセスがそのモニターに配線されます。

対象となるコンフィギュレーション : DDR メモリ コントローラーに対して排他操作を発行するシステム

影響のあるデバイス リビジョン : (ザイリンクス アンサー 47916) - Zynq-7000 デザイン アドバイザリ マスター アンサー


特定の状況で STREX 命令が実行されると、DDRC が正しく応答しません。次の排他操作のシーケンスは、STREX 命令が不正に処理される状況を説明しています。
  • マスター 0 がアドレス AEXOKAY で EXCL RD を実行する (正しい)
  • マスター 1 がアドレス BEXOKAY で EXCL RD を実行する (正しい)
  • マスター 1 がアドレス BEXOKAY で EXCL WR を実行する (正しい)
  • マスター 1 がアドレス AEXOKAY で EXCL RD を実行する (正しい)
  • マスター 0 がアドレス AOKAY で EXCL WR を実行する (不正)
  • マスター 1 がアドレス AEXOKAY で EXCL WR を実行する (不正)
このシーケンスで、マスター 0 はアドレス A から排他読み出し (LDREX) を実行します。マスター 0 が同じアドレスに排他書き込み (STREX) を実行して排他操作を完了させる前に、マスター 1 は LDREX/STREX ペアを発行して、アドレス B で排他操作を完了させ、アドレス A から LDREX を実行します。この場合、マスター 0 はアドレス A に STREX を実行することでアドレス A の排他操作を完了させることができます。ただし、この操作では、マスター 1 の排他アクセス モニターはリセットされません。そのため、マスター 1 からの後続の STREX 命令で間違った EXOKAY 応答が受信され、マスター 1 による書き込み操作が実際には完了していないのに完了したと示されます。

影響の詳細 :
これはまれな問題で、最も一般的な使用ケースである L1 キャッシュが有効になっているときの 2 つの ARM CPU 間では発生しません。キャッシュが無効になっているまれな場合に、排他アクセスが不正に処理され、使用方法によっては停止する可能性があります。

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

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

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