CPU高速化とメモリシステム:パイプライン処理とキャッシュメモリの実効アクセス時間計算
CPUは、命令をどう重ねて処理し、遅いメモリへのアクセスをどう減らすのでしょうか?
パイプラインは処理の重なり、キャッシュはデータの再利用で高速化します。計算では、命令数やキャッシュミス時の時間の定義を先に確認します。
命令パイプライン処理と高速化のメカニズム
CPUが1つの命令を実行するには「命令読出し(IF)→ 解読(ID)→ 演算実行(EX)→ メモリアクセス(MEM)→ 結果書込み(WB)」という複数の段階を踏みます。
従来の逐次実行では前の命令がすべて終わるまで次の命令を実行できませんでしたが、「ベルトコンベアのように1ステージずつずらして複数の命令を並行処理する技術」が命令パイプライン処理です。理想状態では 1 クロックあたり 1 命令を完了できます。
パイプラインを妨げる3大ハザードと対策
パイプラインが乱れて処理が停止(ストール)してしまう現象を「ハザード」と呼びます。
ハザード名 | 発生原因 | 具体例 | ハードウェア側の解決・回避策 |
|---|---|---|---|
構造ハザード | 同一リソースの競合 | 命令読出しとデータ読出しが同じメモリ帯域を取り合う | ハーバードアーキテクチャ(命令用とデータ用キャッシュの分離) |
データハザード | 命令間のデータ依存 | 前の命令の計算結果を、完了前に後ろの命令が参照しようとする | フォワーディング(演算器間で結果を直接バイパス)、命令並べ替え |
制御ハザード | 条件分岐による先読み失敗 | if 文などで分岐先が決まるまで後続の命令フェッチが無駄になる | 分岐予測(Branch Prediction)、投機的実行、遅延分岐 |
キャッシュメモリと実効アクセス時間の計算公式
CPUの演算速度に比べ、主記憶(DRAM)のアクセス速度は非常に遅いため、間に高速・小容量な「キャッシュメモリ(SRAM)」を挟みます。
実効アクセス時間の確認
平均アクセス時間 = Tc × H + Tmiss × (1 − H)
Tc:ヒットした場合の総時間
Tmiss:ミスした場合の総時間(キャッシュ確認も含む)キャッシュメモリのアクセス時間
キャッシュミス時に要する総時間
キャッシュヒット率(目的データがキャッシュにある確率、0〜1)
ミス率(目的データが無く、主記憶まで取りに行く確率)
実戦計算例
ヒット時の総時間が10ns、ミス時の総時間が80ns、ヒット率が0.9なら、平均は10×0.9+80×0.1=17nsです。
キャッシュの書込み方式:ライトスルー vs ライトバック
書込み方式 | 動作の仕組み | メリット | デメリット |
|---|---|---|---|
ライトスルー方式 | キャッシュ更新とともに主記憶へも書込みを送る。書込みバッファを使う実装もある。 | 主記憶への反映を逐次進める。バッファや他CPUのキャッシュがある場合、可視性・整合性の制御も必要。 | 低速な主記憶への書き込み待ちが発生し、書込み性能が低下する |
ライトバック方式 | 通常は【キャッシュにのみ書き込み】、追い出し時に主記憶へ反映 | 変更済みのキャッシュを保持する間、主記憶への書込み回数を減らせる。 | 制御が複雑。電源断時に主記憶へ未反映のデータが消失するリスクがある |
17nsと18nsの違いは、ミス時間の定義
毎回キャッシュを10nsで確認し、ミス後に主記憶へ追加で80nsかかる条件なら、ミス時の総時間は90nsです。平均は10+0.1×80=18nsになります。
主記憶アクセス80nsと、ミス時の総時間80nsは同じ条件ではありません。並行アクセスか直列アクセスかも、問題の指定で判断します。
パイプラインは1命令の時間を必ず短くするのか
5段の各段が1クロック、停止も競合もないとします。4命令を重ねず実行すれば20クロック、パイプラインなら5+4−1=8クロックです。最初の1命令には5クロックかかります。
一般にk段でn命令を処理する理想時間は(k+n−1)クロックです。ハザードや段の処理時間の偏りがあると、理想どおりには短縮されません。
ライトスルーでもDRAMは電源断で内容を失います。CPUキャッシュの書込み方式と、ディスク上のデータの永続性は分けて考えます。
まとめ:CPU・メモリ計算の確認
平均アクセス時間は「ヒット時の総時間×ヒット率+ミス時の総時間×ミス率」。ミス時間の定義を確認する。
分岐予測や投機実行は「制御ハザード」の対策。
ライトスルーは主記憶へも書込みを送り、ライトバックは変更済みデータを追い出し・フラッシュ時に反映する。
出典と仕様を確認する
IPA:FEシラバス Ver.9.2
MIT OCW:計算機構成・パイプラインとキャッシュ
次におすすめの学習
編集・検証について
編集・検証:IT資格ラボ編集部
IPAが公開する試験要綱・シラバス・過去問題と、各技術の公式資料を優先して内容を確認しています。制度変更や誤りを確認した場合は、記事を見直して更新します。
編集方針・情報源・訂正方針を見る