2012-10-30 11 views
5

ARM cortex A8でのPLD命令の使用に疑問があります。私はループ内の命令を使用しているので、境界外のメモリアクセスの可能性があります。私の疑問は、それがセグメンテーションフォルトを引き起こすかどうかということです。 PLD命令がキャッシュのすべてのレベルによって、他のロード命令として扱われるので、私はARM manual which states thatPLD命令の使用

で読み出し、PLD命令は、標準的なデータ依存関係ルールと追い出し手順に従います。 PLD実行のどの段階でも、アドレス変換フォルト、キャッシュヒット、またはアボートの場合、PLD命令は無視されます。

したがって、メモリ不足のアクセスが行われた場合、対応するPLD命令は無視されるか、疑いはありません。

+1

+1:大きな質問ですが、私はこれについて疑問を抱いていましたが、決してそれをチェックすることには悩まされませんでした。 – Leo

+0

@Ruggerの質問をありがとう私はこの数年前に自分自身に直面してきました。以下の答えは正しいです。 – poloolop

答えて

5

PLD命令はセグメンテーションフォルトを作成しません。 PLDが存在しないメモリ領域に達するようにメモリシステムに要求する場合は、無視されます。

ARM ARMからプリロード命令はヒントであるので、実装は、デバイスの機能 行動に影響を与えずにNOPとして扱うことができます。 この命令は、同期データアボート例外を生成しませんが、メモリシステム の操作は、例外的な状況で非同期アボートを生成する可能性があります。

...

しかしながら、これらのメモリシステムの一 ヒントの結果として実行されたメモリ操作はそれほどプロセッサの実行に影響を与える、非同期イベントをトリガする可能性があります。トリガーされる可能性がある 非同期イベントの例は、非同期アボートおよび割り込みです。