高速なメモリも低速な周辺記憶装置もCPUから見たら同じレベルの高速なメモリとして扱えるようにしちゃったんです。
で終わりました。
では、このマジックの種明かしは・・・
その前に、比喩としてこんな状況を想定してみましょう。
あなたはCPUです。
あなたが仕事をするためには書類を読んだり、書類を改訂したりすることが必要です。
そして、その書類を置くための机が必要です。
書類は重ねて机の上にはおけません。
しかし、机の上の書類は近くのものも遠くのものも同じように読んだり書いたりできます。
あなたはとっても視力が良く、また手が必要に応じて伸び縮みします。
あっ!そうそう、書類はA4サイズです。縦31cm 横25.7cm・・・ぐらいですね。
さて、このような状況の中で、あなたが効率よく働けるためには、どうしたらいいでしょうか。
机は標準的な70cm X 140cmが置かれています。
この机にA4書類は何枚置けるでしょうか。
計算すると10枚でした。
あなたは10枚にはほとんどロスタイムなしにアクセスできます。
さて、あなたのボスが書類を100枚持ってきて、『この書類を処理してくれ・・・』と言いながらあなたの机の引き出しに入れて去っていきました。
あなたは、どのように処理するでしょう。
(1)引き出しから書類を10枚取り出して、机の上に並べます。
(2)机の上に並べた書類を処理します。
(3)机の上の書類を引き出しに片付けます。
(4)引き出しから次の10枚の書類を取り出して机の上に並べます。
(5)机の上に並べた書類を処理します。
(6)机の上の書類を引き出しに片付けます。
(7)引き出しから次の10枚の書類を取り出して机の上に並べます。
(8)机の上に並べた書類を処理します。
(9)机の上の書類を引き出しに片付けます。
と、これを100枚処理が完了するまで繰り返します。
さて、半分くらい処理を終えたところでボスが来て、『出来たか?』
あなたは、『一生懸命、頑張ってますが、まだ半分です。』と答えます。
すると、ボスは『君の処理能力ならとっくに済んでいるはずだがなぁ・・・』『さぼっているわけでも無さそうだし・・・』
あなたは、ひらめきました。『ボス、机を今の10倍の大きさにしてください。』
ボスは『うむ、それで君の仕事が早く終わるんなら安いもんだ!』
次の日、同じようにボスが『この書類100枚を処理してくれ』と引き出しに入れて去っていきました。
あなたは、『ようし・・・パッパッと仕上げてしまおう』と意気込み、
(1)引き出しから書類を100枚取り出して、机の上に並べます。
(2)机の上に並べた書類を処理します。
(3)机の上の書類を引き出しに片付けます。
終わりっ!
もう、一瞬で終わってしまって、ボスが来ることを待つまでも無く、ボスのところへ行き、『ボス、完了しました!』と誇らしげに報告しました。
ボスは、『えっ? もう? 君はすごいなぁ!』と褒めちぎりました。
さて、この比喩は、
あなた・・・CPU
机の上・・・メモリ
引出し・・・周辺記憶装置(ハードディスクなど)
を表しています。
パソコンを早くする方法の一つにメモリを増設する手がありますね。
それは、上記の比喩、そのまんまです。
コンピュータの世界では、
机の上の書類の処理速度 : 引き出しから出し入れ処理速度
=メモリアクセススピード : HDDアクセススピード
=100 : 1
ぐらいです。
100倍も差があるんですよね。
この事を頭にいれて、さっきのあなたの仕事ぶりを振り返ってみましょう。
ここで、書類1枚の処理に1秒かかるとしましょう。
(1)引き出しから書類を10枚取り出して、机の上に並べます。 1000秒
(2)机の上に並べた書類を処理します。 10秒
(3)机の上の書類を引き出しに片付けます。 1000秒
(4)引き出しから次の10枚の書類を取り出して机の上に並べます。 1000秒
(5)机の上に並べた書類を処理します。 10秒
(6)机の上の書類を引き出しに片付けます。 1000秒
(7)引き出しから次の10枚の書類を取り出して机の上に並べます。 1000秒
(8)机の上に並べた書類を処理します。 10秒
(9)机の上の書類を引き出しに片付けます。 1000秒
★(7)から(9)をあと7回繰り返します。
全て合計すると、20,100秒ですね。 5時間35分です。
ってことは余談ですが、ボスは 2時間17分ぐらい経ったころにに来たわけですね。
さて、大きくなった机ではどうでしょうか。
(1)引き出しから書類を100枚取り出して、机の上に並べます。 10000秒
(2)机の上に並べた書類を処理します。 100秒
(3)机の上の書類を引き出しに片付けます。 10000秒
合計で20100秒ですね。
あれっ?高速化できてません・・・
実は、このような逐次処理の場合は、それほど効果は表れません。
しかし、コンピュータプログラムでは、逐次処理はあまりありません。繰り返し処理の方が圧倒的に多いです。
すると、引き出しの中から出し入れする回数が飛躍的に増えます。
ちょっとややこしいので割愛しますが、例えば、書類100枚をすべて1000回ずつ処理するとした場合、計算してみると、
前のパターンでは、20,100,000秒
後のパターンでは、 30,000秒
となります。
大幅に違いますよね。
単純なキャッシュでもこれほどの効果が上がります。
IBMの単一レベル記憶では・・・
実は単純なキャッシュは、CPUであるあなた自身が引き出しの中と机の上の書類の出し入れを行います。
しかし、単一レベル記憶では、別な誰かが、あなたがそろそろこの書類を処理しそうだと判断して、あらかじめ引き出しから机の上に出してくれます。そして、処理し終えた書類は別な誰かがその書類を引き出しに片付けてくれます。
そうです、あなたは書類の処理だけに専念できるのです。
このために、最速で処理が行えるわけです。
このような単一レベル記憶は、IBMのSystem/38の時から導入され、AS/400, iSeries, PowerSystemsへと受け継がれてきています。
そして、これらはプログラムやデータベースのアクセス速度の改善に大きく役立っています。
その素晴らしさを体験すると、とりこになってしまうこと間違いなしです。
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
-
no image
-
no image