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 |
ステータス | アクティブ |
種類 | デザイン アドバイザリ |
デバイス |