プログラミング用語を段階的に定義(1) 『CPU』
[ PR ]
CPUは、プログラミングで最も基本的なものなので、最初の1つに選びました。
この連載では、普通のプログラミング用語集と少し違い、初歩的な定義から順番にだんだんと本質的な定義へと段階的に定義していこうと思います。
定義
これは、次の図を見ると分かりやすいと思います。
入力装置はマウスやキーボードなど、出力装置はディスプレイやプリンタなど、記憶装置はハードディスクやメモリなどです。
ちなみに、本物のCPUは次のようなものです。
もう少し掘り下げてみます。
(上図は日経BPより引用)
クロック周波数は、CPUの性能を表すものとして知られていて、例えば 1.8GHz などのようにHz(ヘルツ)で表されることが多いです。
この場合、各プロセッサは並列処理されるため、マルチコアを活用するには並列処理に対応したプログラムを書く必要がある。』
(上図は、Frank Mueller Lab "Chapter 1 - Basics of Cell Architecture"より引用)
これは、デュアルコア(2つのコア)やクアッドコア(4つのコア)という表現もされますね。
コアが複数になると、通常のプログラミングよりも一般に難しくなってきます。そのため、ソフトウェアの中にはマルチコアを活用できないものもありますが、各コアの配分はOSが上手く調整します。
『CPUにはメーカーごとに様々な種類があり、IntelやAMD、ARMなどがある。
例えばIntelとAMDでは処理の方法が違うため、Intelで動作する 機械語 はAMDでは動かない。』
このことはよくMacで問題になりますね。Intel Macで作られたプログラム(機械語)は、PowerPC Macでは動かないので、両方で利用できるソフトウェアはユニバーサルバイナリという形式で配布されます。
まとめ
どうでしたでしょうか。段階的に分けることでよりわかりやすくなったんじゃないかと思います。
次回から少しずつ別のトピックも解説していこうと思います。
技術評論社
売り上げランキング: 15,409