メモリって何?〜基本情報技術者合格のためのブログ〜

基本情報

メモリとは〜基本情報技術者合格のための学習法〜

メモリとは、コンピュータで作成するプログラムやデータをに内蔵される半導体集積回路(IC)で、一時的に記憶する装置です。

メモリの分類

 メモリは、大きく分けてと読み書き両方できるRAM(ラム)と読み出し専用のROM(ロム)があります。
 メモリという時は一般的に、RAMであるメインメモリのことを指します。 スマートフォンやタブレットでは、単にRAMといいます。
データやプログラムを 一時的に記憶する部品で、コンピューターでは 主記憶を担当します。
 メモリに記録できる容量(大きさ)を増やすことで、いろんなソフトを同時に使用できたり、例えば動画とか音楽のような大きなデータも、すばやく処理できたりするわけです。
 分かりやすく例えると机や作業台です。何かの作業をするとしても、小さい作業台で作業をするよりも広い作業台のほうが作業ははかどります。

メモリの確認方法

Windows10の場合

左下のスタートメニューの上で 右クリック
上から探してシステムの項目をクリック
RAMの項目のところに性能が表示されているので確認

※もしくはコントロールパネルを開いてシステム

Macの場合

アップルマークの上でクリック
このMacについてという項目をクリック
メモリの項目のところに性能が表示されているので確認

RAM(ラム)

自由に読み書きができますが、電源を切ると内容が失われる装置を「RAM」(Randam-Access Memory)と言います。揮発性メモリーともいいます。
RAMには「DRAM」と「SRAM」の2種類があります。

DRAM

DRAMは、記憶データを「コンデンサの電荷」として蓄えているため、情報を保持するためには、定期的に情報を読み出し、再度書き込む「リフレッシュ」という動作を実行する必要となります。
回路構成がシンプルであることから、大容量化に適しています。

リフレッシュ

DRAMは、コンデンサとトランジスタ1個ずつで構成された「DRAMセル」を複数組み合わせたものです。
コンデンサは、電荷を蓄えたり放出したりする電子部品です。
DRAMは、コンデンサを用いて、電圧の高い状態を1、低い状態を0としてデータを記録します。
しかし、コンデンサに蓄えられた電荷は、一定時間が経つと自然に放電し失われ、記録したデータも消失してしまいます。
リフレッシュを何度も繰り返すことで、コンデンサの自然放電をカバーし、データの消失を防止しています。
例)パソコンのメモリ

SRAM

SRAMは、DRAMのようにリフレッシュという動作を必要としません
記憶部にフリップフロップ回路を用いており、そこでの電流の流れ方でデータを保持しています。
回路構成が複雑で大容量化には適していません。しかし動作速度はDRAMより高速です。
例) レジスタ,キャッシュメモリー
まとめると

特徴DRAMSRAM
回路コンデンサフリップフロップ回路
リフレッシュ動作必要不要
速度遅い速い
消費電力大きい小さい
集積度高い低い
容量の増やしやすさしやすいしにくい
値段安い高い

ROM(ロム)

電源を落としても記録内容が維持されますが、内容を書き込めません
製造時などに一度だけデータを書き込むことができ、利用時には読み出し専用のメモリーを装置を「ROM」(Read-Only Memory)と言います。
ROMにはいくつか種類があります。

マスクROM

呼び出し専用のメモリです。
製造する時に書き込まれたデータは上から書き換えることは出来ません。
もともとROMは、すべて書き換え不可でしたが、書き換え可能なROMが増えてきたため、それらと区別する場合に、書き換えできないものをマスクROMと呼びます。

PROM

 ユーザーによって内容の書き換えができるROMです。
 PROMのPはProgrammable(プログラマブル)= プログラム可能という意味です。
 PROMにはいくつか種類があります。

EPROM

 紫外線でデータを消去して、書き換えができます。
開発中に利用されることが多く、またメインメモリで用いられるのではなく、コンピュータなどの設定情報を記憶する際に補助メモリとして用いられることが多いです。

EEPROM

 電圧をかけてデータを消去して、書き換えができます。

フラッシュメモリー

 EEPROMの1種です。全消去ではなくブロック単位でデータを書き換えることができます。

種類特徴
RAM揮発性
DRAM主記憶、コンデンサに負荷
SRAMキャッシュメモリ、フリップフロップ回路
ROM不揮発性
マスクROM読み出しのみ
PROM書き込み可能
EPROM紫外線で消去可能
EEPROM電圧をかけて消去可能
フラッシュメモリブロック単位で書き換え可能

主記憶装置の高速化手法

レジスタとメモリ、ハードディスクの間には「越えられない壁」といってもいいくらいの速度差があります。
 ですからCPUはメモリへの読み書き(メモリからハードディスクも)が発生すると、待たされることになります。
しかし、全部レジスタやメモリにすると1ビット当たりの単価が高くなります。
そこで、キャッシュを使います。

レジスタメモリハードディスク
速い         遅い

キャッシュ

 キャッシュとは、装置間の速度ギャップを緩和させるために用います。
キャッシュには「キャッシュメモリ」と「ディスクキャッシュ」などがあります。

キャッシュメモリ

 メモリ不足をおぎなうためにメモリとCPUの間に高速に読み書きができるメモリを設置して、速度ロスを吸収させます。
 CPUの中にはこのキャッシュメモリが入っていて、処理の高速化が図られています。
 キャッシュというのは一つではなくて、1次キャッシュ、2次キャッシュ・・・と重ねて設置することができます。
 CPUに内臓できる容量は小さいものになりますから、「レジスタより遅いけどDRAMよりは速いく、容量を大きく持てる」メモリ(SRAM)をCPUの外側にキャッシュとして増設すると、よりキャッシュ効果が期待できます。

ディスクキャッシュ

キャッシュメモリの動作を主記憶装置とハードディスク間で担います。
 ディスクキャッシュは、専用に半導体メモリを搭載したり、主記憶装置の一部を間借りするなどして実装します。

高速大容量
レジスタ
キャッシュメモリ
主記憶装置
ディスクキャッシュ
磁気ディスク装置
低速小容量

キャッシュメモリから主記憶装置へ更新する方式

 キャッシュメモリは読み出しでけではなく、書き込みにも使われます。
しかし、書き込みのデータはどこかのタイミングで主記憶装置にも反映してあげなければいけません。
そこで、「ライトスルー方式」と「ライトバック方式」の2種類の書き換えタイミングがあります。

ライトスルー方式 (write through)

 キャッシュメモリへの書き込みを行う際に、主記憶装置へも同時に書き込みをおこないます。
書き込みが完了するまで次の処理を待ち、データを書き込んでいくため、処理は確実なのですが、ディスクへの書き込みの待ちが発生するため処理は遅くなります。

ライトバック方式 (write back)

 こちらは、普段キャッシュメモリにしか書き込みを行えません。
キャッシュメモリから追い出されるデータが発生した際に、その内容を主記憶装置へと書き戻して更新内容を反映させます。
メモリに書き込むだけで処理が完了するのでライトスルーと比較して処理は早くなります。
しかし、停電やサーバの故障により、キャッシュメモリに通電がされずに、その内容が消えてしまうと主記憶装置やディスクへ書き込む予定だった(書き込まれていない)データは消えてしまいます。

ヒット率と実効アクセス時間

ヒット率

キャッシュメモリの小さなものですから、全てのデータを保持することができません。
目的となるデータを取得するのにはCPUのキャッシュメモリから取得する場合と、主記憶装置から取得する場合があります。

 

この「目的となるデータがキャッシュメモリに入っている確率」を呼びます。
反対に主記憶装置にしかデータが存在しない確率は「1-ヒット率」となります。

実効アクセス時間

 CPUがデータを取得する時に必要なアクセス時間はどうなるのでしょうか?
キャッシュメモリを利用した、主記憶装置にアクセスするために掛かる時間(実効アクセス時間)は次のように算出することができます。

 

キャッシュメモリにアクセスする時間 = キャッシュメモリのアクセス時間 ヒット率
 主記憶装置にアクセスする時間 = 主記憶装置のアクセス時間
(1 - ヒット率)
 実効アクセス時間 = キャッシュメモリにアクセスする時間 * 主記憶装置にアクセスする時間

メモリインターリーブ

 主記憶装置へのアクセス高速化する手法として、キャッシュメモリ以外にあげられる手法が、メモリインターリーブです。
 
記憶装置の中を複数の区画(バンク)に分割します。
主記憶装置内の番地は、分割した区画を横断するように割り当てられます。
そのため、複数バンクを同時にアクセスすることで、連続した番地データを一気に読み出すことができます。
ただし、ランダムアクセスなど連続しないデータの読み出しでは、あまり効果を発揮しません。 

コメント

タイトルとURLをコピーしました