AR# 52033

Zynq-7000 SoC、APU - MMU ディスエーブルにした投機的命令フェッチがアーキテクチャ要件に準拠しない可能性がある

説明

CPU は通常、MMU および分岐予測の両方がイネーブルにされているときに動作します。プロセッサーがこの条件で長期間動作する場合は、BTAC (分岐ターゲット アドレス キャッシュ) に分岐予測が含まれます。 

分岐予測はイネーブルのままで MMU をディスエーブルにする場合は、これらの同期していない BTAC エントリが原因でプロセッサーが読み出し機密のロケーションに対して投機的命令フェッチを実行してしまう可能性があります。 

これは、arm アーキテクチャ リファレンス マニュアルに記載されている、投機的フェッチに関する armV7 アーキテクチャ上の規則に反することになります。

ソリューション

影響:
深刻な問題ではありません。CPU はたいていの場合、MMU がイネーブルにされている状態で使用されます。また、次のセクションに示す簡単な回避策に従うことで回避できます。
回避策:
BPIALL (分岐予期アレイ全体を無効にする) 操作の後に DSB を実行してから MMU をディスエーブルにすることで、BTAC に含まれるすべてのエントリを無効にします。

また、MMU をディスエーブルにするときに分岐予期をディスエーブルにして、MMU がイネーブルにされるまで分岐よきもディスエーブルにすることで回避することも可能です。
対象となる構成:
CPU を使用するシステム
対象となるデバイス リビジョン:すべて。修正予定はありません。(Xilinx Answer 47916) - 「Zynq-7000 AP SoC デバイス - シリコン リビジョン間の相違点」を参照してください。
 

改訂履歴
2013 年 3 月 - 初版。

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

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

Answer Number アンサータイトル 問題の発生したバージョン 修正バージョン
47916 Zynq-7000 SoC デバイス - シリコン リビジョン間の相違点 N/A N/A
AR# 52033
日付 06/13/2018
ステータス アクティブ
種類 デザイン アドバイザリ
デバイス