IT用語集 › ハードウェア › PendSV

PendSV

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

先送りされることを前提に設計されたCortex-Mの例外。そのため、ほぼすべてのRTOSがタスク切り替えをここで行う。

PendSV(Pendable Service Call)はCortex-Mの例外番号14である。周辺機器が発生させることはなく、ソフトウェアが ICSR レジスタのビットを立てて要求する。肝は優先度をシステム内で最低に設定しておく点で、他の割り込みがすべて終わってから初めて実行される。

これはRTOSにとって理想的な性質だ。SysTickハンドラが別のタスクを動かすべきだと判断しても、ネストした割り込みの最中にスタックを入れ替えるのは危険である。そこでPendSVを保留状態にしておけば、ハードウェアがスレッドモードへ戻る途中でコンテキストスイッチが実行される。FreeRTOSやZephyrをはじめ、Cortex-M向けカーネルの大半がこの方式を採る。兄弟分のSVCは同期的で、システムコールに使われる。

← 用語集に戻る