コンテキストスイッチ(コンテキストスイッチ)
CPUが実行中プロセス/スレッドを切り替える処理。レジスタ・MMU・キャッシュの保存復元で1-10μs要し、頻発するとオーバーヘッド増。`perf stat`・`vmstat`で計測可能。
概要
コンテキストスイッチは、CPU が現在実行中のプロセスやスレッドを停止し、別のプロセスやスレッドへ切り替える処理です。
切り替え時にはレジスタ、MMU のページテーブル、キャッシュの内容を保存し、次のタスクの状態を復元します。
典型的な切り替え時間は 1〜10 µs 程度で、頻繁に発生するとシステム全体のオーバーヘッドが増大します。
perf stat や vmstat などのツールで実際のスイッチ数や時間を計測できます。
主な特徴・仕組み
- レジスタ保存
CPU の汎用レジスタとフラグレジスタをプロセスの PCB(Process Control Block)へ書き込む。 - MMU 状態切替
ページテーブルベースアドレス変換を有効にするため、TLB(Translation Lookaside Buffer)をクリアまたは再ロード。 - キャッシュの失効
L1/L2/L3 キャッシュはプロセス間で共有されるため、切替時に失効させることで不整合を防ぐ。 - スケジューラの介入
OS のスケジューラが次に実行すべきタスクを決定し、カーネルが切替を指示。 - オーバーヘッドの抑制
ハードウェアは「ライト」な切替(レジスタのみ保存)をサポートし、ソフトウェアは「フル」な切替を実装。
スペック/製品比較表
| 製品 | コア数 | クロック | L1 キャッシュ | L2 キャッシュ | L3 キャッシュ | TDP | コンテキストスイッチ時間 | 備考 |
|---|---|---|---|---|---|---|---|---|
| Intel Core Ultra 9 285K | 24 | 5.7 GHz | 32 KB | 1 MB | 72 MB | 450 W | 1.2 µs | 2025年モデル |
| AMD Ryzen 9 7950X3D | 16 | 5.5 GHz | 32 KB | 512 KB | 64 MB | 280 W | 1.5 µs | 3D‑Cache搭載 |
| Intel Core i9‑13980HX | 24 | 5.4 GHz | 32 KB | 1 MB | 48 MB | 450 W | 1.3 µs | モバイル向け |
| Qualcomm Snapdragon 8 Gen 3 | 8 | 4.5 GHz | 32 KB | 256 KB | 8 MB | 15 W | 0.9 µs | SoC |
| Apple M3 Max | 12 | 5.0 GHz | 32 KB | 512 KB | 24 MB | 200 W | 1.0 µs | ARM ベース |
具体例・対応製品
- NVIDIA RTX 4090
24 GB GDDR6X、PCIe 5.0 x16、最大 450 W TDP。GPU 側のスレッド切替は CPU とは別に実装されるが、CPU との同期が必要。 - ASUS ROG Strix X670E‑E Gaming WiFi
AMD AM5 ソケット、DDR5‑6000、PCIe 5.0 x16 をサポート。高速メモリは MMU のページテーブル更新を高速化。 - Samsung 990 Pro
1 TB NVMe、PCIe 4.0 x4、最大 1,500 MB/s。SSD の I/O スケジューラは OS のコンテキストスイッチと連携。 - Intel Core Ultra 9 285K
24 コア、3.4 GHz ベース、5.7 GHz ブースト。CPU 内部で 1.2 µs の軽量切替を実現。 - Apple M3 Max
12 コア、5.0 GHz ブースト。ARM の「ライト」切替は 1.0 µs。
自作PCでの選び方・注意点
- CPU のコア数とスレッド数
コア数が多いほど同時に実行できるタスクが増えるが、切替頻度が高くなる可能性。 - キャッシュ階層
大きな L3 キャッシュはスレッド間のデータ共有を高速化し、TLB 失敗を減らす。 - メモリ帯域
DDR5‑4800 以上の速度は MMU のページテーブル更新を速め、切替オーバーヘッドを低減。 - 電源ユニット (PSU)
450 W 以上の高出力 PSU は 2025年の最新ゲーミング PC に最適。 - 冷却性能
高クロックで発熱が大きい CPU は水冷または高性能空冷を検討。 - マザーボードのチップセット
最新のチップセットは 2026年の次世代 CPU との互換性を保証。 - BIOS/UEFI の設定
「CPU C‑State」や「Intel SpeedStep」を適切に設定し、不要なスリープ状態を抑制。 - OS の最適化
Windows 11 Pro 以降は「プロセッサ優先度」を調整でき、コンテキストスイッチを最小化。 - スケジューラのチューニング
niceやioniceで I/O スケジューラを調整し、CPU の切替頻度を抑える。 - モニタリングツール
perf statで「context-switches」や「context-switches per second」を定期的に確認。
関連用語との違い
| 用語 | 主な違い | 具体例 |
|---|---|---|
| スケジューリング | タスクの実行順序を決定 | Round‑Robin |
| TLB Miss | ページテーブルがヒットしない | 1 ms の遅延 |
| キャッシュミス | データがキャッシュにない | 10 µs の遅延 |
| スレッド | CPU 内で実行される最小単位 | 1 CPU コアに 1 スレッド |
| コンテキストスイッチ | スレッド間の状態保存/復元 | 1.2 µs のオーバーヘッド |
よくある質問(FAQ)
Q1. コンテキストスイッチが多いとどうなる?
A1. 切替オーバーヘッドが増え、CPU の実際の処理時間が減少します。結果としてスループットが低下し、マルチタスク環境で遅延が発生します。
Q2. 2026年の次世代CPUはコンテキストスイッチをどう改善する?
A2. 次世代プロセッサは「ライト」切替をハードウェアレベルでサポートし、レジスタ保存を 0.5 µs 以内に抑える設計が進行中です。
Q3. perf stat で「context-switches per second」を 10,000 以上に抑えるには?
A3. OS のスケジューラ設定を「リアルタイム」モードに変更し、不要なスレッドを停止または優先度を下げることで、スイッチ数を減らせます。
まとめ
コンテキストスイッチは CPU のマルチタスク性能に直結する重要な処理です。
最新世代のプロセッサは 2025年以降にリリースされる製品で、1.0 µs 前後の軽量切替を実現。
自作 PC で高いパフォーマンスを求めるなら、CPU のキャッシュ階層、メモリ帯域、電源・冷却性能を総合的に評価し、適切なスケジューラ設定を行うことが鍵です。
次世代のハードウェアとソフトウェアの最適化を組み合わせることで、コンテキストスイッチのオーバーヘッドを最小化し、スムーズなマルチタスク体験を実現できます。