ページング(ページング)
メモリを固定サイズページ(x86_64は4KB/2MB/1GB)に分割しRAM⇔SSD間で転送する方式。Windowsは Working Set、Linuxはkswapd・Transparent Huge Pagesで管理。
概要
ページングは、オペレーティングシステムが仮想メモリ空間を固定長のブロック(ページ)に分割し、物理メモリとストレージ(SSD)間で必要に応じてデータを転送する仕組みです。x86_64アーキテクチャでは 4 KB、2 MB、1 GB の 3 種類のページサイズが標準でサポートされており、OS はページテーブルを用いて仮想アドレスと物理アドレスの対応を管理します。ページングは、メモリ不足時にページフォルトを発生させ、必要なページをディスクから読み込むことでプログラムを継続させるため、実行中のプロセスが物理メモリの容量に縛られないという利点があります。
主な特徴・仕組み
- ページサイズの選択:4 KB がデフォルトだが、Large Page(2 MB)や Huge Page(1 GB)を利用すると TLB ミスを減らし、キャッシュ効率が向上します。
- ページフォルト処理:仮想アドレスが物理メモリに存在しない場合、カーネルはページフォルトハンドラを呼び出し、SSD からページを読み込みます。
- ページ置換アルゴリズム:Linux の kswapd がバックグラウンドで実行し、LRU(Least Recently Used)や CLOCK‑PROBES などのアルゴリズムでページを選択します。
- Transparent Huge Pages (THP):ユーザー空間のアプリケーションが明示的に設定しなくても、カーネルが自動で 2 MB ページを使用できるようにします。
- Working Set:Windows はプロセスが実際に使用しているページの集合を Working Set と呼び、これを基にメモリ管理を行います。
- TLB(Translation Lookaside Buffer):ページテーブルのキャッシュとして機能し、頻繁にアクセスされるページの物理アドレスを高速に取得します。
- ページキャッシュ:読み込んだページはキャッシュに保持され、同じページへの再アクセス時にディスク I/O を回避します。
- スワップ領域:ページが物理メモリに収まりきらない場合、スワップ領域に退避させます。
- ページ保護:読み取り専用、書き込み禁止、実行禁止などの属性をページ単位で設定し、セキュリティを強化します。
- ページテーブル階層:x86_64 では PML4 → PDPT → PD → PT の 4 階層構造で管理され、64 ビットアドレス空間を効率的に表現します。
スペック/製品比較表
| 製品 | CPU | GPU | メモリ | ストレージ | TDP | PCIe | 画面解像度 | 価格帯 |
|---|---|---|---|---|---|---|---|---|
| Intel Core Ultra 9 285K | 5.7 GHz ブースト | - | 24 GB DDR5-6000 | - | 450 W | PCIe 5.0 x16 | 3840×2160 | 12 万円 |
| NVIDIA RTX 4090 | - | 24 GB GDDR6X | - | - | 450 W | PCIe 4.0 x16 | 3840×2160 | 30 万円 |
| ASUS ROG Strix G15 | 3.5 GHz | - | 32 GB DDR5-4800 | 1 TB NVMe | 350 W | PCIe 4.0 x16 | 1920×1080 | 25 万円 |
| Samsung 990 Pro | - | - | - | 2 TB NVMe | - | PCIe 5.0 x4 | - | 18 万円 |
| Corsair Vengeance RGB Pro | - | - | 32 GB DDR5-5200 | - | - | - | - | 12 万円 |
数値は 2025年 の最新情報を基にしています。
具体例・対応製品
- Intel Core Ultra 9 285K: 4 KB ページに加えて、1 GB Huge Page をサポートし、ハイパフォーマンスなデータベース処理に最適。
- NVIDIA RTX 4090: GPU メモリは 24 GB GDDR6X で、CUDA コアが 2 MB ページを利用して高速なデータ転送を実現。
- ASUS ROG Strix G15: DDR5-4800 の 32 GB メモリは、Linux 5.10 以降の kswapd が 2 MB THP を自動で有効化。
- Samsung 990 Pro: PCIe 5.0 x4 接続で、NVMe 1.4 の 2 TB 容量は、ページキャッシュの高速化に寄与。
- Corsair Vengeance RGB Pro: 32 GB DDR5-5200 の 4 KB ページは、Windows 11 の Working Set 管理と相性が良い。
自作PCでの選び方・注意点
- CPU のページテーブル拡張: 4 KB ページに加えて 2 MB/1 GB をサポートする CPU を選ぶ。
- メモリ容量: 16 GB 以上を推奨。大容量メモリはページ置換回数を減らし、スワップを抑制。
- 高速 SSD: NVMe 1.4 以上の PCIe 5.0 接続が、ページフォルト時の I/O 待ち時間を短縮。
- BIOS の「Large Page」設定: BIOS で Large Page を有効化すると、OS での THP 有効化がスムーズ。
- OS のカーネルバージョン: Linux 5.15 以降は THP のデフォルト設定が改善され、ページ置換効率が向上。
- メモリレイアウト: 2 GB ずつのチャネル構成で、メモリのアドレス空間を均等に分配。
- 電源容量: TDP が 450 W を超える構成は 650 W 以上の電源を推奨。
- 冷却対策: 高負荷時に CPU の温度が 80 ℃ を超えると、ページフォルトが増加しパフォーマンス低下。
- 監視ツール:
vmstat,htop,perfなどでページフォルト数を定期的に確認。 - バックアップ: 重要データは RAID 1 以上で保護し、スワップ領域の破損リスクを低減。
関連用語との違い
- ページング vs セグメンテーション: ページングは固定長ページで管理し、セグメンテーションは可変長セグメントで管理。ページングは TLB の高速化に優れ、セグメンテーションはアドレス空間の柔軟性が高い。
- スワップ vs ページフォルト: スワップは物理メモリ不足時にページをディスクに退避させる処理で、ページフォルトは仮想アドレスが物理メモリに存在しないときに発生するイベント。
- ページキャッシュ vs ファイルキャッシュ: ページキャッシュはメモリ内にページを保持し、ファイルキャッシュはファイルシステムのデータブロックを保持。両者は同時に存在し、相互に競合することもある。
よくある質問(FAQ)
Q1. 2026年に登場する次世代 CPU でページングの性能はどの程度向上しますか?
A1. 2026年に予定される次世代 Xeon Scalable は、ページテーブル階層を 5 階に拡張し、TLB の容量を 4 倍にすることでページフォルト時の遅延を 30 % 以上削減します。
Q2. THP を有効化するとメモリ使用量が増えるのはなぜですか?
A2. THP は 2 MB ページを使用するため、アプリケーションが 4 KB ページを多数保持している場合、ページ数が減少し、結果として同じデータ量を保持するために必要なメモリが増えることがあります。
Q3. Windows 11 でページングを最適化するにはどうすればよいですか?
A3. システム設定で「パフォーマンスオプション」→「詳細設定」→「仮想メモリ」を「自動管理」に設定し、ページファイルサイズを 1.5 × 物理メモリに設定すると、ページフォルトが抑制されます。
まとめ
ページングは、仮想メモリ空間を固定長ページに分割し、OS が必要に応じて RAM と SSD との間でデータを転送する不可欠なメモリ管理手法です。x86_64 では 4 KB、2 MB、1 GB の 3 種類のページがサポートされ、Linux では kswapd と Transparent Huge Pages、Windows では Working Set がそれぞれのページ管理を担います。自作PCを構築する際は、CPU のページテーブル拡張、メモリ容量、SSD の速度、BIOS の Large Page 設定、OS のカーネルバージョンを総合的に検討し、ページング性能を最大化することが重要です。2025年以降の最新ハードウェアを取り入れつつ、次世代の CPU とストレージがもたらす高速化を活かすことで、ページフォルトによる遅延を最小限に抑え、スムーズなシステム動作を実現できます。