Upgrade to Pro — share decks privately, control downloads, hide ads and more …

【基本情報対策】CPU・メモリ・キャッシュ

 【基本情報対策】CPU・メモリ・キャッシュ

Avatar for 赤神青空

赤神青空 PRO

October 20, 2026

Video

More Decks by 赤神青空

Other Decks in Programming

Transcript

  1. ▪二分探索は、比べるたびに候補が半分になる 前回のクイズの答えは「A」 前回のクイズ 整列済みの 1,000 件から⼆分探索で探すとき、 ⽐較の回数は最⼤で何回? ⽐べた値を外しながら、候補を半分以下にしていく。 1,000 →

    500 → 250 → … → 1 と、9回で1件になり、 10回⽬でその1件と⽐べる 答えは A 今ココ おさらい A 10回 9回で候補が1件、10回⽬でその1件と⽐べる B 100回 どの探索の回数にも当たらない C 500回 線形探索の平均の⽬安 D 1,000回 線形探索の最⼤ 2/15
  2. ▪CPU・メモリ・キャッシュと、Lambda 今回の話 のメモリ設定 ① CPU 命令の実⾏と、速さの指標 ② メモリ 記憶階層とキャッシュ ③

    実務では Lambda のメモリ設定 今回いちばん持ち帰ってほしいこと 速さを、式で⾒積もれるようにする 今ココ はじめに 3/15
  3. ▪取出し 命令の実行手順 → 解読 → データの取出し → 実行 命令の取出し 命令部の解読

    データの取出し 命令の実⾏ プログラムカウンター 命令レジスタ‧デコーダ 汎⽤レジスタ 演算装置 取り出したら次の番地へ 取り出した命令を解読 計算に使う値を置く 計算して結果を書く 1つ終わったら、プログラムカウンターが指す次の命令を取り出す この流れを、クロックに合わせて進めていく 今ココ CPU 5/15
  4. ▪CPU の速さを表す3つの指標 クロック周波数・CPI・MIPS クロック周波数 CPI MIPS 1秒に 20億回 刻む サイクルタイム

    = 0.5 ナノ秒 1命令に要るクロック数 1命令 = 4 × 0.5 = 2 ナノ秒 1秒に実⾏できる命令の数 GHz ÷ = 億命令∕秒 GHz MIPS = クロック周波数 ÷ CPI(百万単位で数える) 今ココ CPU 6/15
  5. ▪命令ミックスから平均の 命令の割合から MIPS を出す CPI を出してから割る 命令 CPI 割合 CPI

    × 割合 % % . 命令 X 命令 Y ⾜すと MIPS = GHz ÷ . = 平均 3.2 MIPS 命令ミックス(命令の割合)から平均の CPI を出して、クロック周波数を割る 今ココ CPU 7/15
  6. ▪前の命令が終わる前に、次の命令を始める パイプライン 12 クロック 順番に 命令1 取出し 命令2 命令3 解読

    データ 実⾏ 取出し 解読 データ 実⾏ 取出し 解読 データ 実⾏ パイプライン 命令1 取出し 解読 データ 実⾏ 命令2 取出し 解読 データ 実⾏ 命令3 取出し 解読 データ 実⾏ 6 クロック 段の数 +(命令の数 − 1)= 4 + 2 = 6(1段1クロックで、⽌まらない場合) 今ココ CPU 8/15
  7. ▪速い記憶と大きい記憶を組み合わせる 記憶階層 レジスタ CPU の中 キャッシュメモリ 速い ⼩さい ⾼い SRAM

    主記憶 DRAM 補助記憶 SSD‧HDD 遅い ⼤きい 安い 特徴の違う記憶を組み合わせて、速さと容量を両⽴する 今ココ メモリ 9/15
  8. ▪平均すると、どれだけ待つか キャッシュのヒット率と実効アクセス時間 CPU キャッシュ 10 ナノ秒 主記憶 100 ナノ秒 あれば(ヒット)

    無ければ(ミス) ヒット率 90% 10回に9回はキャッシュにある 実効アクセス時間 = キャッシュの時間 × ヒット率 + 主記憶の時間 ×(1 − ヒット率) = 10 × 0.9 + 100 × 0.1 = 9 + 10 = 19 ナノ秒 ヒット率 80% 28 ナノ秒 今ココ メモリ ヒット率 90% 19 ナノ秒 ヒット率 95% 14.5 ナノ秒 10/15
  9. ▪ライトスルーとライトバック 書き込みの方式 ライトスルー ライトバック あとで キャッシュ 主記憶 CPU キャッシュと主記憶に、同時に書く いつも主記憶と中⾝が同じ

    書き込みは主記憶を待つぶん遅い 今ココ メモリ キャッシュ 主記憶 CPU まずキャッシュにだけ書く 主記憶には、追い出すときに書く 速いが、⼀時的に中⾝がずれる 11/15
  10. ▪メモリと一緒に、CPU Lambdaも増えるのメモリを増やすと速くなる理由 通常の関数で選ぶのは、メモリの量(CPU を選ぶ項⽬は無い) MB 刻みで選べる MB , MB ,

    MB CPU の⼒は、メモリの量に⽐例して割り当てられる , MB で、vCPU つぶんに相当(AWS のドキュメント) 料⾦の時間ぶんは「メモリ × 動いた時間」(GB 秒) 例:1 GB で 2 秒 = 2 GB 秒。2 GB にして 1 秒で終われば、同じ 2 GB 秒 CPU で詰まっている処理なら、メモリを上げると速くなりうる 今ココ 実務では 12/15
  11. ▪メモリを変えて、時間と料金を比べる 測ってから決める 1. どこで詰まっているかを⾒る CPU‧メモリ‧ネットワーク。ドキュメントは、どれで詰まっていてもメモリを上げると良くなりうる、と書いている 2. メモリを変えて、時間を測る AWS Lambda Power

    Tuning(オープンソース)は、メモリを変えた版を並べて動かして性能を測る 3. 速さと料⾦のちょうどいい所を選ぶ メモリを上げても速くならない処理なら、料⾦が増えるだけ 今ココ 実務では 13/15
  12. ▪速さを、式で見積もる まとめ CPU の速さは、クロック周波数と CPI で決まる CPU キャッシュは、ヒット率で効き⽅が変わる メモリ Lambda

    は、メモリに⽐例して CPU が増える 実務 MIPS = クロック周波数 ÷ CPI。2GHz‧CPI . なら 625 MIPS 実効アクセス時間 = キャッシュの時間 × ヒット率 + 主記憶の時間 ×(1 − ヒット率) , MB で vCPU つぶん。CPU で詰まる処理なら、メモリを上げて測る 今ココ まとめ 14/15