IT用語集 › ハードウェア › 排他モニタ (LDREX/STREX)

排他モニタ (LDREX/STREX)

ハードウェア Svenska → 更新: 2026-11-04

ARMのアトミックな読み出し・変更・書き込みを実現するハードウェア機構で、ロードでアドレスに印を付け、その間に誰も触れていなかった場合にだけストアが成功する。

LDREXは値を読み出し、そのアドレスを監視するようモニタに指示する。プログラムが新しい値を計算し、STREXが書き戻しを試みる。その間に何か起きた場合、たとえば別のコアが同じ場所に書いた、あるいは割り込みが入った場合は、ストアは失敗してSTREXは1を返し、コードはループして最初からやり直す。この原理はロードリンク/ストアコンディショナル(LL/SC)と呼ばれ、MIPSにすでにあった。ARMはARMv6で採用した。

Cortex-M3以降では例外に入るたびにモニタがクリアされるため、メインループでのインクリメントがISR内の同じインクリメントと衝突することはない。Cortex-M0にはこの命令自体がなく、そのためアトミック操作はクリティカルセクション内で割り込みをマスクして行う。

← 用語集に戻る