デュアルコア?クワッドコア?サンはオクトコア!
以前、「デュアルコア、クワッドコア、って、何?」というブログを投稿しました。なるべくわかり易く書こうと力んだため、書いてて途中でバテてしまい、内容的には前半で終わっちゃいました。そこで、ちょっと続きを書いておきたいと思います。
まずは、おさらい。デュアルは『2』、クワッドは『4』のラテン語読み。つまり2コア、4コアという意味です。コアとは、何か。集積回路におけるコアとは、演算する回路の単位、つまりはCPUのことです。
ひとつのダイ(一枚のチップ)上に、CPUが2つあるものを、デュアルコア、4つあるのをクワッドコアと呼んでいます。なんで一枚に複数のコアを乗せるかというと、前回も書きましたが「CPUが2つ以上あるとなにがうれしいのか、というと、たとえば、Webサーバに複数のユーザから接続された場合、CPUがひとつだと、待ち行列ができてしまいます。複数のCPUを同時に稼動させて、同時に処理すれば、その分だけユーザは早く結果を得ることができます。」
つまり並列環境を作るという事が、マルチコアの原理です。
さて、今度は新しい技術の話です。複数のコアが1チップ上に乗っていても、ひとつのコアの中では、シングルコアと同じように、CPUの実行とメモリーへのアクセスの時間が、振り分けられます。図1を参照してください。
そうすると、CPU自体は、何もしていない時間が出来てしまいます。『もったいない!!』。もしWebにたくさんの処理が同時に来ている場合、ひとつの処理がメモリーを使いに行っている間に、他の処理がCPUを使うことができたら。複数の処理はより短い時間で終了します。図2を参照してください。
この技術を『チップ・マルチ・スレッディング(またはチップ・マルチ・プロセシング)』と呼んでいます。この技術、実は新しいのではなく、Intel、AMD、IBMのPowerの各チップですでにこの『チップ・マルチ・プロセシング』技術を使っています。しかし、各社の設計思想の違いがあり、この技術をどのように実現するか、マルチコアのチップで実現するかどうか、というのは各社ごとに異なります。
他社のお話は書けませんので、自社、サン・マイクロシステムズの状況をご説明します。
まず、思わず威張ってしまいますが、サンのマルチコアチップは、『オクトコア』です。聞いたことがないかと思います。オクトパス(蛸)が足8本からの由来であるように、オクトとは8を意味します。つまり、8コアなのです。IntelさんやAMDさん、IBMさんはようやく4コアのチップを出してきつつありますが、サンはすでに8コア(ふっふっふ)。
さらに、サンのチップでは、1コアごとにチップ・マルチ・スレッディング技術を付加しています。スレッドとは処理の単位で、サンでは1コアあたり4スレッドを同時稼動させます。
さて、1コアあたり4スレッドありますから、チップ全体では、8 x 4 = 32 スレッドもあります。IntelさんやAMDさんのチップの場合、最大でも2スレッドしかありません。クワッドコアで2スレッドだった場合は、4 x 2 = 8 スレッドなので、サンは『4倍』のスレッドを持つことになります。
こんなチップを搭載したサーバならば、その処理能力はものすごーいということが想像できると思います。そのサーバが、この『Sun Fire T2000』です。
ちなみにどこが使っているかと言うと、サンも自社用に使い始めています。サンのブログ『blog.sun.com』のサーバはこの『Sun Fire T2000』です。ものすごく早く、しかも現状ではCPU使用率が『1~2%』なのだそうです。
ということで、今半導体の技術の最先端を進んでいるのは、実はサンでした、という自慢話でした。