コンピューターのハードウェア

処理装置 CPU(Central Processing Unit ) 

 中央演算処理装置と呼ばれ、コンピュータの中で、各装置の制御やデータの計算・加工を行なう中枢部分。メモリに記憶されたプログラムを実行する装置で、入力装置や記憶装置からデータを受け取り、演算・加工した上で、出力装置や記憶装置に出力する。パソコンではCPUの機能を一つのチップに集積されたマイクロプロセッサが利用されている。1回の命令で同時に処理できるデータの量によって8ビット、16ビット、32ビット、64ビットなどの種類があり、値が大きいものほど性能が高い。また、同じビット数でも、1秒間に実行できる命令の回数「Hz」や、FSBFront Side Bus)と呼ばれるプロセッサとメモリ・コントローラ・ハブ(MCH)など他の主要コンポーネントを結ぶデータ伝走路が一度に運べるデータの量「ビット」、バスが1秒間に行える転送の回数「Hz」などに違いがあり、これらの値が大きいものほど性能が高い。厳密には、1命令を行なうのにかかるクロック数や同時に実行できる命令数などの違いにも影響される。

 CPUの性能

 データ処理:

 現在は 32 bit CPU の PC 主流であるが、今後は 64 bit (x64) CPU の PC が主流になることは確実である。
 CPU が 64 bit になると、一度に処理できるデータ量が 64 bit になる。たとえば 32 bit CPU で 64 bit のデータを扱う場合は、1 度に処理ができないので 2 度に分けて処理することになる。64 bit CPU だと 1 度で処理できるので、その点では処理速度が 2 倍になる。もちろん CPU の動作はそんなに単純ではないので、すべての動作が 2 倍速くなるわけではないが、それでも大幅な高速化が期待できる。
 また扱えるメモリ量が 32 bit CPU では最大 4 GBであるが 64 bit CPU では理論上で最大 16 EB (エクサバイト) に増える。とはいえ実際には CPU の実装上の制限や OS の制限もあるため、16 EB がそのまま使えるわけではなく、Windows XP Professional x64 Edition では実際に利用できるメモリは最大 128 GB である。そして仮想メモリは最大 16 TB を利用できる。

 動作周波数(GHz、MHz):

 プロセッサの内部クロックの速度。プロセッサがどれだけ高速にデータを処理できるかを表す。一般に、動作周波数はGHz(1GHz は1秒間に10 億回のパルスで動作)で表す。
 CPUを高速化する方法としては、

(1)動作周波数を高める
(2)演算コアの個数を増やす
(3)CPUの内部構造を改良し、演算効率を高める。
 などがある。

 パソコンのあらゆる作業は、必ず一定のテンポに合わせて処理される。パソコン上のテンポは「クロック信号」が作り出す動作周波数である。 動作周波数の単位はHz(ヘルツ)。。山1つと谷1つの組み合わせが「1クロック」で、1秒間にクロックが1つなら1Hz、1000クロックなら1000Hz(1kHz)となる。
 CPUやメモリーなどの回路は、1クロックごとに動作するように設計されている。1秒当たりのクロック数が増えれば、その分だけ多くの処理をこなせるわけである。
1990年代から2000年代初頭にかけて登場したCPUは、動作周波数が右肩上がりに上昇していた。初代Pentiumは60MHzで1993年に登場したが、その7年後の2000年にはPentiumIIIで1GHzを突破した。
  潮目が変わったのがPentium4の時代である。動作周波数は3.8GHzにまで達していたが、消費電力と発熱量が増大する問題に直面した。そこでインテルは、CPUの動作周波数を高める代わりに、処理の並列度を高める路線に転換を図った。

 キャッシュ

 頻繁にアクセス、あるいは最近アクセスしたデータを一時的に保存しておく領域。データをキャッシュに格納することでコンピュータの動作が高速化する。キャッシュサイズはMB またはKB で表す。
 キャッシュメモリーというのは、CPUとメインメモリーの問に置く高速なメモリーのこと。CPUはハードディスクに格納されているデータを、メインメモリー上に読み出して処理するが、CPUの動作に比べるとメインメモリーの処理速度は低い。そのため、CPUがメインメモリーからデータを読み出す際に「待ち時間」が発生する。この待ち時問を解消する役割を果たすのがキャッシュメモリーである。
 CPUはメインメモリーからデータを読み出す際に、それをキャッシュにコピーしておく。次回、同じものを読み出す際には、遅いメインメモリーではなく、キャッシュから探す。キャッシュにはより高速なもの、低速なものとレベルがある。かつてのキャッシュメモリーは「1次」「2次」の2種類だったが、ここ1、2年に登場したCPUの多くは、「1次」「2次」「3次(第2世代CoreiではLLC(Last Level cache)」と、さらに階層を増やしている。第2世代Coreiでは6M〜8MBもの3次キャッシュを搭載するモデルがある。
 さらに、第2世代Coreiでは演算コアとグラフィックスコアでキャッシュメモリーを共有できるリング構造を採用している。内部構造を改良し、洗練させることで、いっそうの高速化を果たしている。

 CPUの性能評価指標としては、次のようなものがあげられる。

 MIPS(Mega Instructions Per Second
 MIPSは、CPUが1秒間に何百万回の命令を処理することができるかというもの。主に汎用コンピュータ、オフコンなどの指標として用いられる。
 MFLOPS(Mega FLOating point operations Per Second
 MFLOPSは、技術計算でよく用いられる浮動小数点演算を1秒間に何百万回できるかということを表すもの。スーパーコンピュータ、スーパーミニコンなどで用いられる。
 サイクルタイム(Cycle time
 パソコンなどでは、CPUの命令実行よりも読み書きのためのデータの出し入れの時間がその指標として使われる。サイクルタイムというのは、CPUが読み書きの命令を出してから読み書きが完了し、次の読み取り指令が出せるまでの時間を表す。通常はこのサイクルタイムの逆数(周波数)をとり、1秒間に何百万サイクルできるかというものをMHz(メガヘルツ)という単位で表す。この数値が大きいほど高速処理が行える。

 マルチプロセッサー

 処理の並列度を高める方法はいくつかある。その一つが、1台のパソコンに複数のCPUを搭載する「マルチプロセッサー」である。今でも企業向けのサーバーなどで採用されている。ただし、この方法はCPUやCPUクーラー、マザーボード上のソケットなども全て複数必要となりコスト高。CPUの設置スペースも増大するため、ノートへの搭載が難しいといった難点もあり、パソコンの分野ではあまり流行しなかった。
 そこで登場したのが、ハイパー・スレッデイング・テクノロジーだ。これは、1つのCPUを仮想的に2つあるかのように見せる技術。OSから見ると、先のマルチプロセッサー構成であるかのように見える。処理性能はマルチプロセッサーには及ばないが、コストを抑えつつ処理性能を数割高めることに成功した。
 続いて登場した方法が、マルチコアCPUである。CPU内部の演算コアの数を2個、4個と増やすことで処理の並列度を高める。Pentium Dで初めて採用され、以降、CoreDuo、Core2Duo、Coreiと引き継がれている。Corei以降は、このマルチコアと先のハイパー・スレッデイングの両方を組み合わせたCPUが主流となっている。
 ただ、CPUにマルチコアやハイパー・スレッデイングといった技術を導入したとしても、並列度を高めるにはそれだけでは足りない。そうした技術を最大限に生かすには、OSやアプリケーションソフトが「マルチスレッド」に対応している必要がある。
 スレッドというのは、CPUがアプリケーションを実行する際の最小単位のこと。1つのスレッドだけで成り立つアプリケーションもあれば、複数のスレッドで成り立つアプリケーションもある。前者をシングルスレッドのアプリケーション、後者をマルチスレッド対応のアプリケーションと呼ぶ。
 シングルスレッドの場合、処理が1つの塊のため、CPUの演算コアがたとえ4つあっても1つしか使わない。大工に例えれば、4人いるうち1人しか働かず、残りの3人が寝ている状態だ。
 これに対し、マルチスレッドの場合は、各スレッドをCPUが持つ複数の演算コアに割り振れる。複数のスレッドが同時に実行できるので、処理が高速になる。このとき、スレッドをCPUの各演算コアに割り当てるのはOSの役目である。
 ただし、シングルスレッドのアプリであっても、マルチコアやハイパー・スレッデイングを生かせる場面もある。それは、複数のアプリを実行する「マルチタスク」の状態である。複数のアプリをそれぞれ別の演算コアが実行するので、1つのコアしか持たないCPUに比べ、より高速に実行できる。

 一つの基板上に、2個のCPUのコアを載せるデュアルコア・プロセッサー。
 演算タスクを複数のプロセッサーに振り分けることでパソコンの性能を向上させるとともに、シングルコアに比べ発熱の問題が改善される。
 「デュアルコアCPU」とは、データ処理を実行する回路(コア)を2個内蔵したCPUのこと。高性能パソコンの多くは、「Core 2 Duo」や「Turion 64 X2」などのデュアルコアCPUを搭載している。
 デュアルコアの特徴は「スレッド」というデータ処理ブロックを、2つ同時に処理できること。ゲームで遊びながら動画を圧縮するなど、CPUに負担がかかる作業を複数同時にこなすときに威力を発揮する。またVistaは、ユーザーが使っているソフト以外にバックグラウンドでさまざまな作業を行うため、デュアルコアの効果が高い。
 動画・音楽プレーヤーソフトの「Windows Media Player」や、画像編集ソフトの「Photoshop」などは、2個のコアを効率よく使う「マルチスレッド対応機能」を持っている。それぞれのソフトを単独で使っているときでも、デュアルコアCPUの威力が発揮できる。
 デュアルコア・プロセッサーがシングルコア・チップと違うのは、1個のダイ[半導体チップの基板]上に、物理的に2個の中央演算処理装置(CPU)のコアを載せている点である。つまり、市販されているインテル社またはAMD社のデュアルコア・プロセッサー搭載のパソコンは、電子回路で橋渡しされた2個の演算処理コアを持つCPUアーキテクチャーを備えている。

 デュアルコアの処理は並列処理に基づいており、演算タスクを複数のプロセッサーに振り分けることでパソコンの性能を向上させている。従来、プロセッサーの性能を増強するということは、処理能力の向上と回路の小型化(現在では90ナノメートルまで小さくなった)に比例して消費電力が増えることを意味していた。消費電力が増えると、冷却のためにファンを増やす必要があり、ファンの騒音が我慢できないレベルにまでなる可能性がある(水冷方式という代替案もある)。
 並列処理を採用することで、デュアルコア・チップは熱に関するジレンマの解決に役立つ。演算の負荷を2つのプロセッサーに分散することで、それを実現する。

 制御装置

 制御装置とは、コンピュータの装置(入力、出力、記憶、演算〉 の全般的な制御を行う。つまり、コンピュータ内で電気信号が流れる際の交通整理の役割をはたすと同時に、プログラムに記述された通りに仕事を進めるはたらきをする装置である。

 主記憶装置の制御

  主記憶装置に記憶されているプログラムから命令を一つずつ取り出して解読し、他の装置に指示を出す。また、演算装置で計算した結果を主記憶装置に送り記憶させる。

 入出力装置の制御

 制御装置としての機能の小つに入出力制御の機能がある。特に人出カの制御を専門に行う装置を入出力制御装置(入出力チャンネル)といい、コンピュータ内で高速に動作する主記憶装置と、低速な入出力装置との間のデータのやり取りを円滑に効率的に行えるよう制御する。またフロッピーディスクなどの補助記憶装置からデータを読み出し、主記憶装置に記憶させたり、ワープロや表計算ソフトで作ったデータをフロッピーディスクに記憶させるのも入出力制御装置の役割である。

 演算装置

 演算装置とは計算を行う装置のことであり、「算術論理演算装置」(ALU:Arithmetic Logic Unit )ともいう。この場合の演算には、算術演算(加減乗除:A+Bなど)、論理演算(論理和:A OR B、論理積:A AND Bなど)、比較演算(対象の比較:A>Bなど)などがある。演算装置は、“計算すべき値”と“計算式“によって演算を行い、その計算結果を返すはたらきをする装置である。

 レジスタ

 CPUの内部にあって(主記憶装置上ではなく)、一時的にデータを記憶しておくものを総称してレジスタという。レジスタには通常、高速のメモリがごく小容量用いられる。レジスタには、次のように各種のものがある。

 アキュムレータ(累算器)

 演算する数値や演算結果を蓄えておく装置。

 命令カウンタ

 プログラムの実行中、次に実行すべき命令の位置を知るために、次に実行する命令の入っている番地を常に入れておく装置。

 命令レジスタ

 CPUで実行する命令自体を格納しておく装置。

 メモリデータレジスタ

 主記憶装置に送り込むデータや、主記憶装置から受け取るデータを格納しておく装置。

 指標レジスタ(インデックスレジスタ)、ベースレジスタ

 アドレス指定に用いるレジスタ。

 汎用レジスタ

 前記のレジスタのように機能別に用いるものではなく、必要に応じてアキュムレータ、メモリデータレジスタ、指標レジスタなど多目的に使えるレジスタ。

 処理装置の性能

 パソコンのカタログなどで、性能を表す単位として“16ビットCPU搭載”とか“32ビットCPU搭載などといった表示を見かけるが、この表示は、CPUが一度に扱うことのできる情報量を表したもので、CPUの性能を表す。
 32ビットは16ビットの2倍の数であるが、その表現力には大変な開きがある。たとえば、それぞれの大きさの単位で、数値の情報を表した場合、
16ビット → 0〜65,535の値(2^16)
32ビット → 0〜4,294,967,295の値(2^32)
64ビット → 0〜16E(エクサ)Bの値(2^64)
となり、処理速度や機能は、32ビットのほうがはるかに優れていることがわかる。現在のパソコンの主流は、32ビットのCPUであるが、64ビットのCPUを搭載したパソコンも開発されている。

 処理動作

 パソコンを動かすプログラムは、命令の集まりである。たとえば「A+B=Cを実行しろ」とか、「Cを画面に表示しろ」などといった記述の連続である。プログラムは、通常CD-ROMやハードディスクなどの外部記憶装置に保存されている。
  1. 補助記憶装置のプログラムを読みとり、主記憶装置上に記憶する。
  2. プログラムの先頭の命令を取り出し、制御装置に渡す。
  3. 制御装置は命令を解読し、処理に必要なデータを入力装置から入力、そのデータを主記憶装置から演算装置に渡す。演算装置は計算を行い演算結果の値を主記憶装置に返す。
  4. 処理結果が出力装置に渡され、出力される。
  5. 次の命令を取り出し、上記の行程をプログラムが終わるまで繰り返す。