#メモリ
メモリとは、コンピュータにおいて情報の記憶を行う装置。
プロセッサが直接アクセスできる主記憶装置と、それ以外の補助記憶装置に分かれる。
##1.RAMとROM
主記憶装置には大きく分けてRAMとROMがある。
RAM(Random Access Memory)
「メモリ」という場合多くはRAMのことを指す。読み書きが自由である点が特徴。
半導体メモリを使っており、電源の供給がなくなると内容が消えてしまう。
一定時間経つとデータが消失してしまう**DRAM(Dynamic RAM)と、電源を切らない限り内容を保持するSRAM(Static RAM)**の二種類がある。
DRAMは安価で大容量のため、主記憶装置としてのメモリに使用される。一方、プロセッサがメモリにアクセスする頻度が多くなると処理速度が遅くなるため、高速かつ消費電力の小さいSRAMがキャッシュメモリに使われる。
ROM(Read Only Memory)
基本的に読み出し専用の記憶装置。書き換えができないマスクROMや書き込みが可能なPROM、書き込みと消去が可能なEPROMなどの種類がある。EPROMでも特に電圧をかけることで何度も書き込みと消去ができるEEPROMの一つとして、フラッシュメモリが挙げられる。フラッシュメモリはUSBやSSDなどの記憶媒体に利用されており、本来はROMなので何度も書き換えを行うと劣化するため書き換え回数に上限がある。
##2.キャッシュメモリ
プロセッサとメモリの間の性能差を埋めるために、高速なSRAMを利用してキャッシュを格納している。
キャッシュメモリでデータを管理するときには、ブロックと呼ばれる一定長の単位にまとめる。このとき、メモリのデータがキャッシュメモリのどの部分にあるのかを管理する方法には次の三つがある。
1.ダイレクトマップ方式
メモリのアドレスごとにキャッシュメモリの格納場所が一つに決まる方式。メモリのアドレスから場所が特定できるため検索は容易だが、データの衝突が起こりやすい。
2.フルアソシアティブ方式
アドレスによる振り分けを行わず、キャッシュメモリの空いているブロックにデータを入れていく方式。データの衝突は起こらないが、データの使用時に毎回線形探索を行わなければならないため、応答速度に問題がある。
3.セットアソシアティブ方式
キャッシュメモリを複数のグループに分け、そのグループ内でフルアソシアティブ方式の様に空いているブロックを利用する方式。ダイレクトマップ方式とフルアソシアティブ方式の融合。
また、キャッシュメモリに書き込みが行われたときに、即時にメモリにも内容を転送する方式をライトスルー方式、すぐには反映しない方式をライトバック方式という。
##3.メモリインタリーブ
キャッシュメモリ以外に、CPUとメモリのデータ転送を高速化する技術にメモリインタリーブがある。データを複数のメモリバンクに分割して配置し、読みだすときは複数のメモリバンクに同時にアクセスすることによって、効率よくデータを取り出すことができる。
##4.管理方式
メモリのどの領域にどのデータを割り当てるのかを管理するアルゴリズムとして、代表的なものを二つ。アドレスの下位から順に検索して見つかった空き領域を割り当てるファーストフィット方式、要求された大きさを満たす最小のものを割り当てるベストフィット方式がある。