PCの心臓部たるCPUを製造しているCPU業界のトレンドはいまダイナミックに変貌を遂げようとしている。そのキーワードが「マルチコア」だ。従来のCPUは基本的にシングルコアと呼ばれ、エンジンを1つ備える構造になっていたのだが、新世代のCPUではデュアルコアやマルチコアなどと呼ばれるエンジンを複数備えた構造になっており、よりパワフルに生まれ変わりつつある。
マルチスレッドを効率よく実行するためのマルチコア
そもそも、シングルコアやデュアルコア、マルチコアとはどういう意味なのか。その疑問を解く鍵が「マルチスレッド」という言葉に隠されている。コンピュータのソフトウェアがCPUに対して仕事をさせる場合、「スレッド」と呼ばれる処理単位に分割して命令を発する仕組みになっている。ソフトウェアはCPUに対し、連続してこのスレッドを送り続け、処理をさせる。
例えば、ワープロソフトで文字を処理することを考えてみよう。ワープロソフトで文字のフォントを変える場合、ソフトウェアがCPUに対して「文字のフォントを変えて画面表示を変更せよ」という指示を出す。この指示がさらに細かく分解され、その1つ1つの単位がスレッドと呼ばれることになる。ユーザーが1つのアプリケーションしか実行していない場合、このスレッドはCPUに対して同時に1つしか送られず、常にCPUは1つだけのスレッドを処理することになる。こうした状態を「シングルスレッド」と呼んでいる。
これに対し、Windows XPなどの最新OSでは、同時に複数のアプリケーションを実行することが可能となっている。例えば、ウィルススキャンしながらワープロソフトを実行することが可能なのだ。この場合、ウィルススキャンソフトはウィルススキャンの命令を細分化し、スレッドにしてCPUに送り続ける。一方、ワープロは文字の処理命令を細分化し、スレッドにしてCPUに送り続ける。こうした複数のスレッドが同時にCPUに対して送られ、命令が実行される状態を「マルチスレッド」と呼ぶ。
従来のCPUでは、このスレッドを同時に1つだけ実行できるエンジンである「コア」を1つだけ内蔵するという構造になっていた。こうしたコアを1つだけ内蔵しているCPUをシングルコアCPUと呼ぶ。このため、マルチスレッドの状態にある場合は、見た目には同時に複数のスレッドを実行しているように見えても、実際にはウィルススキャンソフトのスレッドを実行した後で、ワープロソフトのスレッドを実行するという状況にあった。
新しい世代のCPUでは、このコアを複数内蔵するマルチコアになり、現在PCに採用されているCPUでは、コアを2つ内蔵したデュアルコアCPUが登場しつつある。デュアルコアCPUでは、2つのスレッドを同時に実行することが可能で、シングルコアCPUに比べて処理能力が向上できるのだ。今後は、コア数が4つになったクアッドコアや、さらにコア数を増やしたメニーコアと呼ばれるマルチコアCPUが登場する見通しとなっている。
技術的、経済的な背景からCPUのトレンドはマルチコアに
ここまで読むと、マルチコアCPUはすばらしいことだらけのように思えるが、なぜこれまでのCPUはシングルコアCPUだったのだろうか。
それには技術的な理由と経済的な理由がある。技術的理由で最大のものは、コンピュータの使われ方がほとんどシングルスレッドだったためだ。OSであるWindowsやMac OSなどは、1990年代の後半から徐々に複数の仕事が処理できる「マルチタスク」という仕様になってきたものの、ユーザーの使い方としては1つのアプリケーションを使い続けることが多く、複数のアプリケーションを同時に実行することはあまりなかったのだ。このため、CPUベンダーはシングルスレッドの性能を上げるべく、CPUのクロック周波数(CPUコアが1つの命令を実行する速度)を上げるアプローチでCPUの開発を進めていった。
経済的な理由としては、CPUを製造する技術が現在ほど洗練されていなかったことがある。CPUを製造する技術は「プロセスルール」と呼ばれる言葉で表現される。このプロセスルールというのは、CPUコア内部の最小単位である「トランジスタ」の長さのことを指しており、このプロセスルールの数字が小さくなればなるほど1つのCPUコアに実装できるトランジスタ数が増加する仕組みになっている。従来の製造技術では、2つのCPUコアを1つのCPUに実装しようとすると、CPUの大きさに入らなくなってしまったのだ。厳密に言えば不可能ではなかったが、エンドユーザーに対してリーズナブルな価格で製造することができなかった。