そして、この単一レベル記憶はスーパー進化したキャッシュみたいなものだとも言いました。
キャッシュはご存じですよね。もし、ご存じなかったら・・・コメントください。個別説明します
さて、CPUコアにもキャッシュが存在しています。
CPUはどんどん進化し高速化してきていますが、メモリはそれほど高速化されていません。
ましてやハードディスクなどは・・・今ではオールフラッシュもありますが・・・
コンピューターを高速化するには、まずCPUを高速化し、メモリを高速化し、周辺記憶装置を高速化していけば、確かに早くなります。 ただ、CPUだけを高速化してもメモリや周辺記憶装置が遅ければ、全体として遅くなるのは目に見えています。
それは、こんな感じです。 軽トラにF1のエンジンを積んでも時速300キロはでませんよね。
タイヤが持ちません。エンジンの大パワーが路面とタイヤの摩擦力を上回って、タイヤが虚しく空回りするだけです。
CPUを高速化しただけのコンピューターもそうです。 CPUだけでは動きません。メモリに格納されている命令(機械語)を読み出し、それに従ってメモリや周辺記憶装置をアクセスしにいくんです。 CPUがメモリに、このアドレスのデータをくれ!って指示しても、メモリはなかなかデータを渡してくれません。CPUはひたすらそのデータが来るのを待つばかりです。これが繰り返されるのです。しかして、ある時間のうち実際にCPUが働いている時間はごくわずか。残りは待機しているのです。
まさしくCPUが空回り
では、どうすればいいでしょうか?
メモリを極限まで高速化すればいいんです。 CPUを待機させないぐらいに高速なメモリに・・・
ただし、早くはなるけど、べらぼうにコストがかかりますねー
えっ? じゃあどうすればー?
そこで、キャッシュの登場です。
CPUの近くには高速なメモリを少し、その次には少し高速なメモリを少し多めに、残りは低速な周辺記憶装置をたっぷりと。
こうすると、CPUは近くの高速メモリをアクセスして待機時間がみじかくなり、満足します。
しかし、高速メモリはちょっぴりなので、CPUが必要とするデータをいつも保持しているわけではありません。
CPUが要求したデータがないと、CPUは少し高速な方から読んでこんかい!って指示を出して、待機します。その後は満足げに仕事をします。
ただ、少し高速なメモリも少し多めにあるだけなので、大量のデータを扱う処理をCPUがしている場合は、すぐにCPUに要求データを返せない状態になります。そうすると、もっと低速な周辺記憶装置から読み込まなくてはいけません。ここでまた待機時間が発生しますよね。これがCPUのパフォーマンスを下げる要因になります。
そこで、IBMは考えました。
全部、高速なメモリにしちゃえ!
そうすると、CPUはデータを欲しいときに得ることができ、待ち時間を最小限にできるから、CPUをとことんこき使うことができると
でも、最初に言った通り、そんなことしたらお客さんが居なくなるほど高価なコンピュータになっちゃうでしょう。
そこで・・・CPUにはぜーーーーんぶメモリが乗っているように勘違いさせて、実はメモリの向こうに周辺記憶装置があるような仕組みを考えちゃいました。
それが単一レベル記憶です。
何が単一レベルかと言うと、高速なメモリも低速な周辺記憶装置もCPUから見たら同じレベルの高速なメモリとして扱えるようにしちゃったんです。
あっれー! 長くなり過ぎたので、続きは次回に・・・
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
-
no image