Anonim

パーソナルコンピュータが最初に発明されたとき、その中央処理装置(CPU)は独立しており、プロセッサコアは1つしかありませんでした。 プロセッサ自体 が コアでした。 マルチコアプロセッサを搭載するというアイデアは、これまでにないものでした。 今日、複数のコアを備えたコンピューター、電話、およびその他のデバイスを目にすることは珍しくありません。実際、あらゆる種類の市販のコンピューターのほとんどが複数のコアを備えています。 これらのコアは、同じ、シングル、CPU、または中央処理装置にあります。

複数のコアを持つことは大きな利点です。 コアが1つしかないため、コンピューターは一度に1つのタスクのみを処理でき、タスクを完了してから別のタスクに移動する必要があります。 ただし、より多くのコアを使用すると、コンピューターは一度に複数のタスクを処理できます。これは、多くのマルチタスクを行うユーザーにとって特に便利です。

マルチコアプロセッサの動作を正確に説明する前に、処理技術の背景について少し話をすることが重要です。その後、マルチコアプロセッサの機能について説明します。

いくつかの歴史

複数のコアを備えたプロセッサを構築する前に、IntelやAMDなどの人々や企業は、複数のCPUを搭載したコンピューターを構築しようとしました。 これは、複数のCPUソケットを備えたマザーボードが必要であることを意味していました。 これは、別のCPUソケットに必要な物理ハードウェアが原因でより高価であるだけでなく、2つのプロセッサ間で行われる通信の増加によりレイテンシも増加しました。 マザーボードは、データをすべてプロセッサに送信するのではなく、コンピューター内の完全に離れた2つの場所にデータを分割する必要がありました。 物理的な距離は、実際にはプロセスが遅いことを意味します。 複数のコアを備えた1つのチップにこれらのプロセスを配置すると、移動距離が短くなるだけでなく、異なるコアがリソースを共有して特に重いタスクを実行できるようになります。 たとえば、IntelのPentium IIおよびPentium IIIチップは、1つのマザーボードに2つのプロセッサを搭載したバージョンで実装されていました。

しばらくして、プロセッサはより強力になる必要があったため、コンピューターメーカーはハイパースレッディングの概念を思いつきました。 コンセプト自体はIntelから生まれたもので、2002年に同社のXeonサーバープロセッサで考案され、後にPentium 4デスクトッププロセッサで考案されました。 ハイパースレッディングは現在でもプロセッサで使用されており、Intelのi5チップとi7チップの主な違いですらあります。 基本的に、特にタスクが他のプログラムに使用できる処理能力をあまり必要としない場合、プロセッサに未使用のリソースがしばしばあるという事実を利用します。 ハイパースレッディングを使用するプロセッサは、基本的に2つのコアを持っているかのようにオペレーティングシステムに表示されます。 もちろん、実際には2つのコアはありませんが、使用可能な処理能力の半分以下を使用する2つのプログラムの場合、それらが一緒になってすべての能力を利用できるため、2つのコアも存在する可能性がありますプロセッサが提供する必要があります。 ただし、コアを使用する2つのプログラム間で共有するのに十分な処理能力がない場合、ハイパースレッディングは2つのコアを持つプロセッサよりも若干遅くなります。

ハイパースレッディングの簡潔で詳細な説明を提供する洞察力のあるビデオをここで見つけることができます。

マルチプロセッサ

多くの実験の後、最終的に複数のコアを持つCPUを構築することができました。 つまり、1つのプロセッサには基本的に複数の処理ユニットがあります。 たとえば、デュアルコアプロセッサには2つの処理ユニットがあり、クアッドコアには4つのプロセッサがあります。

では、なぜ企業は複数のコアを持つプロセッサを開発したのですか? さて、より高速なプロセッサの必要性はますます明らかになってきましたが、シングルコアプロセッサの開発は減速していました。 1980年代から2000年代まで、エンジニアは処理速度を数メガヘルツから数ギガヘルツに上げることができました。 IntelやAMDのような企業は、トランジスタのサイズを縮小することでこれを実現しました。これにより、同じスペースでより多くのトランジスタを使用できるようになり、パフォーマンスが向上しました。

プロセッサのクロック速度は、1つのチップに搭載できるトランジスタの数に非常に関係しているため、トランジスタの縮小技術が遅くなり始め、プロセッサの高速化の開発も遅くなり始めました。 これは、企業がマルチコアプロセッサを初めて知ったときではありませんが、商業目的でマルチコアプロセッサを試し始めたときです。 マルチコアプロセッサは1980年代半ばに最初に開発されましたが、大企業向けに設計されたものであり、シングルコアテクノロジの速度が低下し始めるまで実際に再訪することはありませんでした。 最初のマルチコアプロセッサはRockwell Internationalによって開発され、1つのチップに2つの6502プロセッサを備えた6501チップのバージョンでした(詳細については、このウィキペディアのエントリを参照してください)。

マルチコアプロセッサの機能

まあ、それは本当にすべて非常に簡単です。 複数のコアを持つことにより、複数のことを一度に行うことができます。 たとえば、電子メールで作業している場合、インターネットブラウザを開いている場合、Excelスプレッドシートで作業している場合、iTunesで音楽を聴く場合は、クアッドコアプロセッサがこれらすべてを一度に処理できます。 または、ユーザーがすぐに完了する必要があるタスクを持っている場合、それをより小さく、より処理しやすいタスクに分割することができます。

また、複数のコアを使用することは、複数のプログラムに限定されるものではありません。 たとえば、Google Chromeは新しいページをそれぞれ異なるプロセスでレンダリングします。つまり、複数のコアを一度に活用できます。 ただし、一部のプログラムはシングルスレッドと呼ばれるものです。つまり、複数のコアを使用できるように作成されていないため、使用できません。 ここでもハイパースレッディングが作用し、Chromeが複数のページを1つの実際のコア上の2つの「論理コア」に送信できるようにします。

マルチコアプロセッサとハイパースレッディングを連携させることは、マルチスレッドと呼ばれる概念です。 マルチスレッドとは、基本的に、オペレーティングシステムがコードを最も基本的な形式であるスレッドに分割し、異なるコアに同時に供給することにより、複数のコアを活用する機能です。 もちろん、これはマルチコアプロセッサだけでなくマルチプロセッサでも重要です。 マルチスレッドは、プログラムが効率的に実行し続けることができるように、オペレーティングシステムにコードを適切に順序付ける必要があるため、思ったよりも少し複雑です。

オペレーティングシステム自体は、独自のプロセスで同様のことを行います。アプリケーションに限定されるわけではありません。 オペレーティングシステムプロセスは、ユーザーが必ずしもそれを知ることなく、オペレーティングシステムが常にバックグラウンドで実行していることです。 これらのプロセスは常に実行されているため、ハイパースレッディングやマルチコアを使用すると、アプリで発生しているような他の作業を行えるようにプロセッサが解放されるため、非常に役立ちます。

マルチコアプロセッサの仕組み

まず、マザーボードとオペレーティングシステムがプロセッサと複数のコアがあることを認識する必要があります。 古いコンピューターにはコアが1つしかないため、ユーザーが複数のコアを備えた新しいコンピューターにインストールしようとした場合、古いオペレーティングシステムはうまく機能しない可能性があります。 たとえば、Windows 95は、ハイパースレッディングまたはマルチコアをサポートしていません。 Windows 7、8、新しくリリースされた10、AppleのOS X 10.10など、最近のすべてのオペレーティングシステムはマルチコアプロセッサをサポートしています。

基本的には、オペレーティングシステムはマザーボードにプロセスを実行する必要があることを伝えます。 次に、マザーボードはプロセッサに通知します。 マルチコアプロセッサでは、オペレーティングシステムはプロセッサに複数のことを一度に行うように指示できます。 基本的に、オペレーティングシステムの指示により、データはハードドライブまたはRAMからマザーボード経由でプロセッサに移動されます。

マルチコアプロセッサ

プロセッサ内には、プロセッサの次の操作のためにデータを保持する複数レベルのキャッシュメモリがあります。 これらのレベルのキャッシュメモリにより、プロセッサが次のプロセスを探すために遠くを見る必要がなくなり、時間を大幅に節約できます。 キャッシュメモリの最初のレベルはL1キャッシュです。 プロセッサは、L1キャッシュで次のプロセスに必要なデータを見つけることができない場合、L2キャッシュを探します。 L2キャッシュはメモリが大きくなりますが、L1キャッシュよりも遅くなります。

シングルコアプロセッサー

プロセッサが探しているものをL2キャッシュで見つけることができない場合、L3までラインを続け、プロセッサがある場合、L4に進みます。 その後、メインメモリ、またはコンピューターのRAMを調べます。

異なるプロセッサが異なるキャッシュを処理する異なる方法もあります。 たとえば、L1キャッシュのデータをL2キャッシュに複製するものもあります。これは基本的に、プロセッサが探しているものを見つけられるようにする方法です。 もちろん、これはL2キャッシュでより多くのメモリを消費します。

マルチコアプロセッサでは、さまざまなレベルのキャッシュも使用されます。 通常、各コアには独自のL1キャッシュがありますが、L2キャッシュは共有されます。 これは、各プロセッサに独自のL1、L2、およびその他のレベルのキャッシュがあるため、複数のプロセッサがあった場合とは異なります。 複数のシングルコアプロセッサでは、キャッシュ共有はまったく不可能です。 共有キャッシュを持つことの主な利点の1つは、1つのコアがキャッシュを使用していない場合、もう1つのコアがキャッシュを使用できるため、キャッシュを最大限に使用できることです。

マルチコアプロセッサでは、データを検索するときに、コアは独自のL1キャッシュを調べて、共有L2キャッシュ、RAM、最終的にはハードドライブに分岐できます。

今後も、より多くのコアの開発が見られる可能性があります。 プロセッサのクロック速度は、以前よりも低速ではありますが、確実に向上し続けます。 スマートフォンのようなものでオクタコアプロセッサを使用することは今では珍しくありませんが、すぐに数十のコアを搭載したプロセッサを見ることができました。

マルチコア処理技術は次にどこへ向かうと思いますか? 以下のコメントでお知らせください。または、コミュニティフォーラムで新しいスレッドを開始してください。

マルチコアプロセッサについてのすべて:それらが何であるか、どのように動作するか、どこから来たのか