前置き
試験的にはプロセッサよりも大事となるのがメモリです。
というかコンピュータ構成要素内では一番大事ですね。
メモリ
主記憶装置の種類
大きく分けて以下の2種がある。
• RAM(Random Access Memory)…読み書きが自由
• ROM(Read Only Memory)…読出し専用
RAM
電源の供給がなくなると内容が消えてしまう。揮発性メモリとも言う。
また、RAMには一定時間でデータが消失するDRAM(Dynamic RAM)と、電源を切らない限り内容を保持するSRAM(Static RAM)がある。
主記憶装置に使うメモリには、コストと容量の関係でDRAMが使われる。しかし、プロセッサがメモリに直接アクセスすることが多くなると処理速度の低下が起こるので、高速なキャッシュメモリを間に置いて両者のギャップを埋める。このキャッシュメモリにSRAMが使われる。
ROM
基本的に読出し専用の記憶装置だが、種類によっては全消去・書込み・追記が可能。
書換えが可能なマスクROMと、書込みが可能なPROM(Programmable ROM)がある。
書込み可能なROMの代表が、ブロック単位での消去や書込みが出来るフラッシュメモリ。他にも結晶状態と非結晶状態の違いを利用する相変化メモリもある。
キャッシュメモリ
プロセッサとメモリの性能差を埋めるためのメモリ。高速である必要があるのでSRAMが用いられる。近年では、CPUのチップ内に取り込まれるのが一般的。
キャッシュメモリにはアドレス管理を効率的に行い、処理を高速化するための様々なアーキテクチャを採用している。その効果は、ヒット率によって変わる。
キャッシュメモリのデータ格納方法
キャッシュメモリでデータを管理するときは、ブロックと呼ばれる一定長の単位にまとめる。
このとき、メモリのデータがキャッシュメモリのどの部分にあるのかを管理する方法には三通りの方法がある。
1. ダイレクトマップ方式
メモリのアドレスごとに、キャッシュメモリの格納場所が一つに決まる方式。
アドレスさえ分かれば場所の特定が容易なので検索しやすいが、データの衝突が起こりやすい欠点があり、ヒット率が下がる。
(メモリの種類によるが衝突したら入れようとした値に更新する動作が多い)
2. フルアソシアティブ方式
アドレス振分け行わず、キャッシュメモリの空いているブロックならどこでも使える方式。
キャッシュメモリがいっぱいになるまで衝突が起こらないが、データ使用時に毎回全ブロックの検索が必要なので、応答速度に問題が出てくる。
3. セットアソシアティブ方式
上記2通りの方法は一長一短ある。そこで、キャッシュメモリを複数のグループに分け、そのグループ内ならどこでも使えるという方式が考えられた。
フルとセットのアソシアティブ方式では、連想メモリ(CAM:Content Addressable Memory)を使用することで検索を高速化している。
ヒット率
CPUが必要なデータがキャッシュメモリにない場合、メモリにアクセスする。この時、必要なデータがキャッシュメモリにある確率をヒット率という。
キャッシュメモリのデータ更新方式
プロセッサがキャッシュメモリのデータを更新した場合、その内容をメモリにも反映させる必要がある。
キャッシュメモリに比べメモリへのアクセスは時間がかかるので、更新方式を工夫している。
1. ライトスルー方式
プロセッサがキャッシュメモリび書き込むとき、同時にメモリにも内容を転送する方式。
メリット:コヒーレンシが保たれる
デメリット:スループットが悪くなる
2. ライトバック方式
キャッシュメモリに書き込んでもすぐにはメモリへ情報を転送しない。
キャッシュメモリのデータがメモリに追い出されるなど、条件を満たしたときのみメモリへの書き込みを行う。
メリット:スループットは良くなる
デメリット:コヒーレンシが保たれない
スループット:単位時間の処理量
コヒーレンシ:データの一貫性
キャッシュメモリのヒット率
ヒット率が分かると、平均的なアクセス時間である実効アクセス時間を計算できる。
実効アクセス時間 = キャッシュメモリへのアクセス時間 × ヒット率 + メモリへのアクセス時間 × (1 – ヒット率)
メモリインタリーブ
キャッシュメモリ以外のCPUとメモリのデータ転送を高速化する技術。
データを複数のメモリバンクに順番に分割して配置しておく。
データ読み出し時には、その複数のメモリバンクに同時にアクセスすることで効率よくデータが取り出せる。
記憶領域の管理方式
記憶領域を管理する代表的なアルゴリズムには以下のようなものがある。
• ファーストフィット方式
記憶領域の空き領域をアドレス下位から順に検索し、最初に見つかった空き領域を割り当てる。
• ベストフィット方式
空き領域のうち、要求された大きさを満たす最小のものを割り当てる。
最後に
応用情報の試験終わるとヒット率の計算方法とか忘れるけど、名前自体は憶えておきたいですね。