コンピューターの高度な概念: 用語集パート 1

同カテゴリーの次の記事

コンピューターの高度な概念: 用語集パート 2

この記事は、インテル® デベロッパー・ゾーンに公開されている「Advanced Computer Concepts For The (Not So) Common Chef: Terminology Pt 1」(https://software.intel.com/en-us/blogs/2015/03/24/advanced-computer-concepts-for-the-not-so-common-chef-terminology-pt-1) の日本語参考訳です。


この記事の PDF 版はこちらからご利用になれます。

最初に、この記事と次の記事でいくつかの用語について説明します。すでにこれらの概念を理解されている場合は、この 2 つの記事をスキップされても結構です。ソフトウェア開発者の方は、スレッドに関する記事をお読みになることを推奨します。スレッドについては、ソフトウェア開発者の間でも多くの混乱が見られます。

この記事では、まずプロセッサー、CPU、コア、そしてパッケージについて説明します。一般的なメディアでは、これらの用語はさまざまな使い方をされています。次の記事では、スレッド、特にハードウェア・スレッドとソフトウェア・スレッドの相違点について説明します。これらの異なる種類のスレッドの違いについては、コンピューター・プログラマーでさえも混乱しがちです。

コア、CPU、パッケージ、シリコンとは?

以下の図の左側の CPU を見てみましょう。インテル® Pentium® プロセッサーの頃は、プログラムの命令を実行するコンピューターのコンポーネント (つまり、コンピューターの脳) を ‘CPU’ または ‘プロセッサー’ と呼んでいました。この 2 つの用語は同義語として使用されていました。’コンピューター・チップ’ は、集積回路がエッチングされたシリコン (インテルの CPU など) を指していました。そして、’パッケージ’ は、シリコンを保護するためのプラスチックと金属のケースで、さまざまなピンや接合部が突出していました。

現在のプロセッサーは、複数の CPU を搭載しており、各 CPU で複数のスレッドを実行できます。また、1 つのパッケージに複数のチップ (シリコン) があります。この変化を受けて、用語も変わりました。以下の図の右側の CPU を見てみましょう。以前の CPU は ‘コア’ と呼ばれるようになりました。プロセッサーは、1 つのシリコン上に複数のコアを持つことができます。最近の一般的なラップトップは、プロセッサーに 2 つのコアを搭載しています。そして、デスクトップでは 4 ~ 6 コア、サーバーではプロセッサーごとに 18 コアを上回ります。パッケージには複数のシリコン集積回路が含まれており、 プロセッサー・シリコンに加えて、 フラッシュメモリーや特殊プロセッサーなどがあります。

インテル® Pentium® プロセッサーのコアとインテル® Xeon® プロセッサーのマルチコア

                           1995                                                         2015

CPU の図: 以前および現在のプロセッサー

以下のシリコンの写真を見てみましょう。左は、1993 年頃に登場したオリジナルのインテル® Pentium® プロセッサーで、 右は、2013 年頃に登場した現世代のインテル® Xeon® プロセッサー E5-2600 v3 です。インテル® Pentium® プロセッサー (左) には、1 つのパッケージの 1 つのシリコンチップ上に 1 つの CPU があります。インテル® Xeon® プロセッサー (右) には、1 つのシリコンチップ上に 18 コアあり、各コアの性能は (非常に高速で機能拡張された) 古いインテル® Pentium® プロセッサーの 1 つの CPU と同程度です。(それぞれのコアがどこにあるか分かりますか?)

1993 年頃のインテル® Pentium® プロセッサー

インテル® Xeon® プロセッサー E5-2600 のシリコン インテル® Xeon® プロセッサー E3 ファミリーの製造技術 (22nm) で表した場合のインテル® Pentium® プロセッサー

シリコンの図: インテル® Pentium® プロセッサーとインテル® Xeon® プロセッサー E5-2600 v3+

次の記事で、’プロセッサー’ はすべてのコアと支援回路を含むシリコンの塊を指します。’コア’ は (以前は CPU と呼ばれていた) 計算処理を行うプロセシング・ユニットを指し、そのようなユニットは複数存在する可能性があり、各ユニットで 2 つ以上のスレッドを同時に実行することができます。そして、’パッケージ’ は、別々のシリコンチップ上に配置された複数の特殊プロセッサー、メモリー、その他の支援回路を保持する、薄い長方形の金属とプラスチックでできたケースを指します。

これで、プロセッサー、CPU、コア、パッケージとは何かが明確になりました。次に、特にプログラマーを混乱させているスレッドについて説明します。

次の記事: スレッドについて正しく理解していますか?

+参考までに、シリコンの写真のインテル® Xeon プロセッサーの下に、インテル® Pentium® プロセッサー (800nm) を現在の製造技術 (22nm) で表してみました (赤線で囲んだ部分)。これは非常に大雑把なもので、トランジスター数 (14 億 / 75 万 = 187 倍) を使用するか、形状 ((800nm)^2 / (22nm)^2 = 1322 倍) を使用するかによって大きさが異なります。ここでは、より保守的な 187 倍を使用しています。実際のダイサイズとは異なります。

コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください

関連記事