[勝手に基本情報解説 その2]キャッシュメモリとフラッシュメモリの違い

こんばんは。

自分でも更新頻度が高すぎてビビっている🦀です。

昨日の今日だが、さっそくシリーズの2回目をやっていきたい。

今回も、コンピューターの構成要素に関する部分である。


さて、過去問を解いていていつもいつもゴチャゴチャになって間違えるところがある。

それがこのキャッシュメモリとフラッシュメモリの違いだ。

問題を解きながら、「あれ、どっちがどうだっけ?」と迷った挙句間違える事象が多発しているので、ここでまとめておきたい。

この両者、名前は似ているが全く違うものである。

たぶんアルジェリアとナイジェリアぐらい違う。

どう違うか。1つずつ見ていこう。

①キャッシュメモリ

キャッシュメモリは、CPUと主記憶(メモリ)を高速で結びつけるために存在しているメモリの種類のことだ。

どういうことか。

ここで昨日の記事で使ったCPUの画像を使いまわs・・・振り返りたい。

画像2

昨日の記事は、コンピュータが命令を出すときはCPUからメモリ(主記憶)に命令を受け渡したりデータを引き渡したりという話だった。

今回のキャッシュメモリは、↓の赤で囲った部分の話である。

画像2

しかし、元々CPUとメモリは、キャッシュメモリなんてなくてもデータを引き渡すことが出来るのだ。

ではなぜわざわざキャッシュメモリがあるのか。

それはCPUと主記憶を高速で結びつけるため。

そもそも、CPUは処理が早いのに対し、普通のメモリはたくさん記憶できる分処理が遅いという特性がある。

そのため、CPUとしては早く次の処理を渡したいのに、メモリが前の処理を書き込んでいるせいで待っておかなくてはならなくなるのだ。

逆もしかり、メモリからCPUに情報を渡すときも、メモリが莫大なデータから探し出すのに時間がかかり、CPUに渡すのに時間がかかってしまう。

その待ち時間を解消するために生まれたのがこのキャッシュメモリという種類のメモリだ。

普通のメモリがCPUからの要求に鈍いのに対し、キャッシュメモリは、「CPUからの情報を瞬時に受け取れ、CPUからの要求に瞬時に答えられるタイプのメモリ」だ。

こうなると「あれ?、CPUの要求にすぐ答えられる上に情報も保存できるなら普通のメモリいらないんじゃね?」という話になる。

しかし、キャッシュメモリは記憶できる容量が少ないため、キャッシュメモリだけCPUと結び付けていては、容量が足りなくなる。

そこで、CPUからの応答は早いけどあまり書き込めないタイプのキャッシュメモリと、応答は遅いけどたくさん書き込めるタイプのメモリの2刀流でCPUからの要求にこたえるというわけだ。

ちなみにこの2刀流で書き込むにもライトスルー方式とライトバック方式という2つのやり方があるのだが・・・フラッシュメモリとの違いを重点に置きたいので敢えてスルーしておく(スルーだけに)。


②フラッシュメモリ

さて、次にフラッシュメモリについて解説しておく。

フラッシュメモリは、「メモリの一種」である。

つまり、図に表すとこういうことだ。

画像3

青で囲ったメモリは、実はいろいろな種類に分類できる。

そのいろんな種類に分類した中の一つに、フラッシュメモリはいる。

フラッシュメモリの特徴は以下の通り。

①PROMである。

②不揮発性である。

③ブロック単位でデータを消去して書き換えることが出来る。


①について

PROMについて書く前に、ROMについて確認しておきたい。

ROMとはRead Only Memoryの略で「読み取り専用のメモリ」ということだ。

つまり、書き込みができないため、家電製品のように決められた動作を行うだけの特定用途向けのメモリと考えることができる。

ただ、それでは不便なので、専用の機器を使うと記憶の消去・書き込みができるものがある。そういうもののことをPROMという。

②について

不揮発性とは、電源を切っても中身が消えない という意味である。

③について

他のメモリは全消去してしまうものが多いが、フラッシュメモリは、ブロック単位でデータを消去できる。なのでカメラのメモリーカードなどしょっちゅう情報が書き代わるようなものに向いていると言える。


以上がフラッシュメモリの特徴だが、正直これは他のメモリの特徴と比べながら丸覚えするしかないと思う。


まとめ

キャッシュメモリとフラッシュメモリの違いはだいたい以下の通りだ。


キャッシュメモリ・・・CPUの要求に早く答えられるメモリの種類

フラッシュメモリ・・・PROM、不揮発性をもつメモリの一種

キャッシュメモリがメモリの種類を表す大枠なのに対し、フラッシュメモリはいろいろある種類の中の一つであると認識している。



いかがだっただろうか。

アウトプットしながら書くというのは難しい。特に、前回、今回のような具体的な内容は大枠をとらえていないと何が何だか分からなくなる。

それに、CPUばかり復習しても仕方ないので、次あたりはネットワークとかまとめたいなと思っている。

ということで、次回、ネットワークとは何か(たぶん)

お楽しみに。

この記事が気に入ったらサポートをしてみませんか?