人気ブログランキング | 話題のタグを見る

日記を書きつつ、意見を書いたり語ってみたり


by poppy_h
カレンダー
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

第三回 戦う

おっそろしい夢を見た。
蛇がいた。細い、緑色の蛇だ。
なぜか捕獲する僕。その蛇、口元を押さえようが容赦なく僕に噛み付いてくる。
イタイイタイと夢の中でうなされ続けていた。
一つわかったこと。やっぱ夢の中でも色はある。


第三回!コンピュータについて学ぼう!
今回から、e-wordsを用いて、単語検索できるようにしました。
その単語について、もっと詳しく知りたい場合、クリックしてください。
サクサクいきましょー!!


CPU
プロセッサとは以前書いた通り、コンピュータの頭脳。つまり処理速度を上げるために、とても重要だ。
では、プロセッサの性能はどのように決められるのか?

クロック周波数がよく使われている。インテルのCPUはすべて○○Hzと表記されている。
昔はMHz単位だったものの、今ではGHzが当たり前の世の中になった。

プロセッサには命令実行のタイミングを取るために、正確な周期で信号を発生する内部と計がある。
この時計が1回振動するのに必要な時間をクロックと言う。
クロックの逆数、つまりは単位時間のクロック数をクロック周波数と言う。
1GHzでは10憶回のクロック信号を発生させることを意味する。
1GHzで1クロックにかかる時間は1n(ナノ)秒。

もう一つ重要なのは、1命令の実行に要するクロック数だ。
それはCPIと呼ばれる。
CPIが1、1GHzの周波数のマシンがあったとする。
そのマシンならば1秒で10億個もの命令を処理できるのだ。

CPIと周波数が速ければ、処理が速いということになる。


さて、1命令のなかには、さまざまな段階がある。
学校で習ったものとは異なるが、教書の通り、その段階を6回に分ける。

①[IF]命令のフェッチ(フェッチとは主記憶にある命令をレジスタに取り出すこと)
②[ID]命令のデコード(デコードとは命令を読解すること)
③[OA]オペランドのアドレス計算
④[OF]オペランドのフェッチ
⑤[EX]命令の実行
⑥[RS]演算結果の格納

これをCPUが1命令につき、この段階6つを行うわけであるが、1命令だけでもいろいろ処理がされているのがわかる。
もしも1命令の処理全部が終わった後、次の命令に移る場合、機能せずに休んでいる部分が存在する。
EXが動いているとき、IFやIDは休止状態なのだ。

それではもったいないということで、もっと効率の良いシステムを作った。
1番目の命令のIFが終わってIDに移ったとき、2番目の命令がIFを開始する。
かえるの歌の原理である。
この仕組みをパイプライン処理と言う。
このシステムによって、CPUをより効率よく使っている。

さてさて、なぜインテルのCPUだけだんとつに周波数が多いのか、では他者のCPUはインテルより劣っているのか、この辺が気になるところだろう。

インテルは宣伝のためにわかりやすい数字を出そうとした。それで狙ったのが周波数だ。
周波数をあげるために、どうすればいいのか?
そう考えたインテルは、その処理段階をもっと細かくした。
それをスーパーパイプライン方式と呼ぶ。

通常のものはIF、ID、・・・それぞれ2n秒かかるとする。1段階処理するのに要するのは1クロックとする。
その場合の動作周波数は1/2n秒=500MHz

もし、先ほどの通常6段階のものを、1段階を2つに分け、計12段階にしたとする。
そうすれば1n秒ごとに段階を分けられるわけだ。
動作周波数は1/1n秒=1GHz

わかりにくいだろう・・・自分でも書いてて「これわかりにくいだろうなぁ」って思っている。

このようにしてインテル社は周波数をあげているのだ。
だが、このようにすれば実際処理速度は上がる。具体的な計算学校でしたが、何倍かの速度にはなる。
しかし、これには弱点がある。処理がすべて1n秒ごとにできるとは限らないし、もし分岐命令が現れたとき・・・。
掘り下げると書ききれなくなりそうな気がするので、難しいことは機会があったら書こうと思う。



さてさて、書いてて疲れちゃったので、今日はココまで。
次回はメモリについて触れる(予定)。


あーうなぎ食いてー。
by poppy_h | 2006-07-06 23:50 | 情報技術