デュアルコア、クワッドコア、って、何?
最近「デュアルコア」プロセッサとか、「クワッドコア」プロセッサという言葉が氾濫し始めている。「デュアル」は「2」、「クワッド = クワドロ」は「4」、「コア」はもともと「中核」という意味ですが、IT用語でなおかつチップ(集積回路)では、演算回路ないしはCPUのことになります。
ひとつのチップ(集積回路)に4つ(2つ)のCPUってどういう意味かというと、一枚のチップを「ダイ」と呼びます(写真参照)が、この上に4つ(2つ)の独立したCPUが乗っているものを「マルチコア・プロセッサ」と言います。
CPUが2つ以上あるとなにがうれしいのか、というと、たとえば、Webサーバに複数のユーザから接続された場合、CPUがひとつだと、待ち行列ができてしまいます。複数のCPUを同時に稼動させて、同時に処理すれば、その分だけユーザは早く結果を得ることができます。
単純なアナロジーを考えると、片道1車線の道路と片道4車線の道路では、処理できる交通量が異なります。もちろん、片道4車線の方が大量に交通量をさばく事ができます。
こちらの写真は、シリコンバレーに行く方にはおなじみ、インターステート101ですね。向こうに見えるのが、サンフランシスコ空港です。
さて、1990年代にはすでにシングルコアの半導体モジュールプロセッサを複数マザーボードに実装した、SMP(対照型マルチプロセッシング:Symmetric Multi-Processing)という技術がありました。SMPを採用する場合、オペレーティング・システム(OS)の役割が重要になってきます。OSの稼働環境下にある複数の資源(CPU、メモリー、キャッシュ等)を管理して、外部からはあたかもひとつのCPUで作動しているサーバの様に見えます。もちろん、内部で行われているのは、並列処理です。そのため、より多くの処理を行うことができます。
さて。マルチコアの場合、CPUは同じ「ダイ」上にあります。こうする事によるメリットとしては;
1.演算機構がすぐそばにあるので、接続設計が簡単 = 設計コストの削減
2.通常CPUをたくさん同一ダイ上に載せると大きくなるので、クロック数を落として設計する。しかし、同時に稼動できる演算機構が複数になるので、「クロック数が多少小さくとも、複数処理を同時に行う様な処理」に向いたチップを作れる。また、消費電力と発熱量を小さく抑えることができる。
3.すでに現在の最高クロック数はHPC(ハイ・パフォーマンス・コンピューティング)を実現するのに充分な速さを持っているが、大量の処理を同時に行う様な処理には単一プロセッサでは、向いていない。
特に3.については、以下の図の様に、クロック数が早くなっても(つまり図1のCがどんどん短くなっていっても)、図2の並列処理に比べ、たとえば、Webサーバなどの運営には、シングルコアチップは向いていないことがわかります。スレッドとは、演算処理機構の単位です。
ふー、簡潔に書こうと思いましたが、ご理解いただけましたでしょうか。あとは。もう、続く。。。。