2014年3月13日木曜日

人で無しのための計算機理論入門 その2 一般的な計算機のハードウエア構成要素とCPUの概略

では、一般的な計算機、(あ、特に言わなったけれど、学問の世界でコンピューターのことを計算機というのが普通です、念のため。)に必要な要素は何かということをここで改めて考えましょう。

 基本的に計算機ですので、計算する装置が必要ですね。現代の計算機ではこれをCPU(Central Processing Unit :中央演算装置)と呼ぶものを使っています。電子的に計算を行う装置ですね。

 あと、何が必要でしょうか。良く聞くメモリっていうものも必要でしょうかね。プログラムやデータを記憶させておくところです。少し専門的なことを言うと、メモリというのは内部メモリと外部メモリに分けられます。この辺りのことは、話せば長くなるんですが、要するにコストの問題で内部メモリと外部メモリが分けられていると思って一向にかまいません。一般的に読み書き速度の早いメモリは構造的に高価なためです。

 もう一つ、人間が使うものだから、やはり、やりとりをしないといけません。これを一般に入出力装置、あるいは単にI/O (Input/output)呼びます。

現在の処、コンピュータというのはどれだけ高価だろうが、小さくなろうが、この三要素で構成されています。


では、ここで、ノイマン型コンピュータのCPUについて少し説明を試みたいと思います。

今度はCPUに必要な要素を考えてみようと思います。

中央演算装置と言うくらいですから、まず演算する構造が必要ですね。ところが、基本的にCPUさん、面白いもので、演算は足し算しかできません。かけ算は、といえば、足し算をものすごいスピードでやります。3×3だと3を3回足すんです。乗算器という仕組みもありますが、これは応用編で。基本は足し算。引き算は、というと、二進数の世界はうまいことやると、その性質を使って引き算もできるんですね。だから割り算もできる。四則演算ができれば、とりあえず計算機としてはOKですが、だいたいのCPUには、二進数を桁上げしたり桁下げしたりという機能もついています。

つまり、CPUの世界では計算機と言いつつ、実は基本的な演算は加算しかできません。あとは、CPUを作る人や使う人の創意工夫による、というのがこの世界の掟。だからこそ面白いんですけどね。

さて、他には何が必要か。そうですね、たくさんでは無くても計算をしたいデータや計算結果を記憶しておくメモリが必要ですね。このような、CPUの処理に必要なメモリのことをレジスタ、と呼びます。

他に、プログラムカウンタという奴も必要ですね。今プログラムの何処を走らせているのか、一つ処理が終わったら次のステップを処理する、そんな管理をしているところです。

他に、メモリとのデーターやプログラムの命令をやりとりする部分が必要ですね。現代のCPUには内部メモリとのあいだに更に早い速度のメモリ、キャッシュ、を持っていることも多いです。しかし、一般的に、データをやりとりするわけで、その部分をバス(bus)と呼んでいます。busには、アドレスバス、とデータバスというのがあるんですが、まあ良いですか、今のところはそこまで知らないで。

これくらいあれば、とりあえずプログラムを処理できそうですね。あと、割り込みというのがあって、ねえねえ、そんなことばっかりやってないで、ちょっとこっち見てよ、という事をやる働きの信号の受付の部分もありますね。

だいたい、こんなとこでしょうか。次は、プログラムとかOSとか、ソフトウエアのお話です。

0 件のコメント:

コメントを投稿