学習目標
性能の設問では、数値を先に式へ入れず、「何を1回と数えるか」「待ち時間を含むか」「どこだけを速くするか」を確定する。CPUの周波数、メモリの待ち時間、システム全体の応答時間は別の尺度である。
記憶階層の意味
| 対象 | 主な役割 | 比較時の着眼点 |
|---|---|---|
| レジスタ | 演算中の値やアドレスを保持 | CPU命令が直接扱う小容量の記憶 |
| キャッシュ | 主記憶中のデータなどの複製を保持 | 高速だが小容量。局所性を利用 |
| 主記憶 | 実行中のプログラムとデータを保持 | 通常のDRAMは揮発性 |
| 補助記憶 | データを永続保存 | SSDとHDDで特性が異なる。容量だけで性能は決まらない |
時間的局所性は「最近使ったものをまた使う」、空間的局所性は「近いアドレスを続けて使う」という偏り。どちらも必ず成立する法則ではなく、キャッシュが有効になる理由である。キャッシュ容量を増やしても、アクセスの仕方や待ちの原因によっては効果が小さい。
平均時間は分岐ごとの重み付き平均
図の前提は、毎回キャッシュに2nsかかり、ミス時だけ主記憶アクセス50nsが追加されること。ヒット率をhとすると、平均は h×2+(1−h)×(2+50)=2+(1−h)×50 ns。
解法例
ヒット率95%なら、0.95×2+0.05×52=4.5ns。主記憶の50nsを「ミス時の総時間」と定義する別の問題なら、0.95×2+0.05×50=4.4nsとなる。異なるのは公式ではなく、与えられた時間の定義である。多段キャッシュでは、L2ヒット率が全アクセスに対する率か、L1ミスに対する条件付きの率かも確認する。
CPU性能と並列化
| 指標・式 | 意味 | 見落としやすい前提 |
|---|---|---|
| CPU時間=命令数×平均CPI÷クロック周波数 | 命令実行に必要な時間 | 同じ処理でも命令数とCPIが変わる |
| スループット | 単位時間に完了できる仕事量 | 1件の応答時間とは一致しない |
| 速度向上率=旧時間÷新時間 | 何倍速くなったか | 時間短縮率と逆数の関係ではない |
| アムダールの法則 1÷((1−p)+p/n) | 並列化可能部分pをn倍にした全体の速度向上 | 固定仕事量、理想的分割、追加費用なしのモデル |
全体の80%を4倍速にできる場合、残り20%はそのまま。新時間は0.2+0.8/4=0.4、速度向上は2.5倍であり4倍ではない。nを限りなく増やしても上限は1/0.2=5倍。実際には同期や通信の費用が加わる。Intelのアムダールの法則の説明
間違えやすい点
- GHzが2倍でも、命令数・CPI・メモリ待ちが変われば処理全体は2倍にならない。
- 2.5倍速は処理時間が40%になること。時間短縮率は60%で、250%短縮ではない。
- RAID、キャッシュ、バックアップは目的が違う。速さ、稼働継続、復旧可能性を混同しない。
確認問題
- キャッシュ3ns、ミス時追加60ns、ヒット率90%なら平均は? → 3+0.1×60=9ns。
- 半分だけを無限に高速化したときの全体の上限は? → 2倍。残り半分が下限になる。
出典と適用上の注意
数値例と図は独自作成。機種固有の性能値や出題頻度を示すものではない。基本的な記憶・仮想化の仕組みの補助資料は著者公開教材 OSTEP。範囲の基準はIPA試験要綱Ver.5.6。