# Chapter6-2 「主記憶装置と高速化手法」 ## 5/4(火) ###### tags:`基本情報技術` さつき: #### キャッシュ > レジスタとメモリ、メモリとハードディスクの間には、「越えられない壁」といっていいくらいの速度差があります。 > CPUはメモリへの読み書きが発生すると待たされるし、メモリはハードディスクへの読み書きが発生すると待たされることになります。 >この記憶装置間のギャップを埋めて、待ち時間によるロスを防ぐための手法が、キャッシュです。 >「じゃあ全部高速なメモリにすればいい」 >けど高速であるほど、単価が高くて、ちょこっとしか使えない。 * キャッシュ * キャッシュメモリ * レジスタとメモリの間に設ける * ディスクキャッシュ * メモリとハードディスクの間に設ける * キャッシュメモリ * メモリとCPUの間に、より高速に読み書きできるメモリを入れ、速度差によるロスを吸収させる。 * CPUの中にある。 > CPUに比べるとメモリは非常に遅いので、CPU側に待機時間が生じてしまいます。 > この待機時間を解消します。 * ディスクメモリ * キャッシュメモリと同じ役割を、主記憶装置と磁気ディスク装置の間で担う。 * 専用に半導体メモリを搭載したり、主記憶装置の一部を間借りするなどして実装する。 #### 主記憶装置への書き込み方式 * キャッシュメモリは読み出しだけじゃなくて、書き出しにも使われる。 >しかし書き込みの場合、書いて終わりではなく、更新した内容をどこかのタイミングで主記憶装置にも反映しなければだめです。 >そうしなければ、データの整合性がとれなくなります。 * 書き換える方式には、ライトスルー方式とライトバック方式があります。 * ライトスルー方式 * キャッシュメモリへの書き込みを行う際に、主記憶装置へも同様に書き込みを行う。 * ライトバック方式 * 普段はキャッシュメモリにしか、書き込みを行いません。 #### ヒット率と実行アクセス時間 * キャッシュメモリの容量は小さなもの。目的のデータが必ずそこに入っているとは限らない。 この、目的とするデータがそこに入っている確率のことを、「ヒット率」と呼びます。 * キャッシュメモリになくて、主記憶装置を読みに行く確率 = 1-ヒット率 ##### キャッシュメモリを利用したPCの平均的なアクセス時間(実行アクセス時間) * ① キャッシュメモリのアクセス時間✖️ヒット率 * ② 主記憶装置のアクセス時間✖️(1 - ヒット率) * ① + ② = 実行アクセス時間 #### メモリインタリーブ * 主記憶装置の中を複数の区画に分割します。 * 複数バンクを同時にアクセスすることで、連続した番地のデータを一気に読み出すことができる。 #### 過去問 * 問1:ナノの世界。 15 = 10*x+(1-x)*60 x = 0.9 * 問2:書き込み頻度を減らす。 ちさと: * キャッシュメモリ * メモリとCPUの間に置くことで高速化 * レジスタ > キャッシュメモリ > 主記憶装置 > ディスクキャッシュ > 磁気ディスク装置 * 高速 → 低速 * キャッシュメモリ * 読み出しだけでなく、書き込みでも使われる(書いて終わりでなく、メモリの方も書き換えて内容を更新する必要あり) * 内容を更新する方式(2つ。それぞれ書き換えのタイミングが異なる) * ライトスルー方式 * キャッシュメモリへの書き込みをする時に、主記憶装置にも同時に書き込み * ライトバック方式 * 普段はキャッシュメモリのみ。(=主記憶装置に書き込む動作がない分、速い) * キャッシュに入りきらなくなったタイミングで、反映させる * ヒット率(=キャッシュメモリに目的とするデータが入っている確率) * キャッシュメモリのアクセス時間 ✖️ ヒット率 = a * 主記憶装置のアクセス時間 ✖️ (1ーヒット率)= b * a + b = キャッシュメモリを利用したPCの平均的なアクセス時間 * ↑以外で高速化する方法:メモリインタリーブ * 主記憶装置の中を複数の区画(バンク)に分ける * 複数バンクを同時にアクセス可能=一気に読み出せるから速い! * ただし、読み出せるのは連続した番地のデータに限る * 過去問 * 問1:公式が頭に残ってたから、式はわかった! * 問2:キャッシュミス(CPUに必要なデータがキャッシュに存在しない状態)が起きたら、 主記憶から必要なデータが取り出されてキャッシュメモリにも格納される
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up