CPUとは何ですか、そしてそれは何をしますか?

コンピューターの最も重要な部分は、1つだけを選択する必要がある場合、中央処理装置(CPU)です。これはプライマリハブ(または「頭脳」)であり、プログラム、オペレーティングシステム、またはPC内の他のコンポーネントからの命令を処理します。

1と0

より強力なCPUのおかげで、コンピューター画面に画像をほとんど表示できない状態から、Netflix、ビデオチャット、ストリーミング、そしてますますリアルなビデオゲームに飛躍しました。

CPUはエンジニアリングの驚異ですが、基本的には、バイナリ信号(1と0)を解釈するという基本的な概念に依存しています。現在の違いは、パンチカードを読み取ったり、真空管のセットで命令を処理したりする代わりに、最近のCPUは小さなトランジスタを使用してTikTokビデオを作成したり、スプレッドシートに数値を入力したりすることです。

CPUの基本

CPUの製造は複雑です。重要な点は、各CPUには、数十億の微細なトランジスタを収容するシリコン(1つまたは複数)があるということです。

前に触れたように、これらのトランジスタは一連の電気信号(電流「オン」と電流「オフ」)を使用して、1と0で構成されるマシンのバイナリコードを表します。これらのトランジスタは非常に多いため、CPUは以前よりも高速でますます複雑なタスクを実行できます。

トランジスタ数は、必ずしもCPUが高速になることを意味するわけではありません。しかし、それはあなたがポケットに入れて持っている電話が、おそらく私たちが最初に月に行ったときに地球全体が持っていたよりもはるかに多くの計算能力を持っている根本的な理由です。

CPUの概念的なはしごをさらに進める前に、CPUが「命令セット」と呼ばれるマシンコードに基づいて命令を実行する方法について説明しましょう。異なる会社のCPUは異なる命令セットを持つことができますが、常にではありません。

たとえば、ほとんどのWindows PCと現在のMacプロセッサは、IntelCPUかAMDCPUかに関係なく、x86-64命令セットを使用します。ただし、2020年後半にデビューするMacには、異なる命令セットを使用するARMベースのCPUが搭載されます。ARMプロセッサを使用するWindows10PCも少数あります。

関連:バイナリとは何ですか、そしてなぜコンピュータはそれを使用するのですか?

コア、キャッシュ、およびグラフィックス

それでは、シリコン自体を見てみましょう。上の図は、Corei7-4770S用の同社のCPUアーキテクチャについて2014年に発行されたIntelホワイトペーパーからのものです。これは、1つのプロセッサがどのように見えるかの一例にすぎません。他のプロセッサは、レイアウトが異なります。

これは4コアプロセッサであることがわかります。CPUのコアが1つしかない時代がありました。複数のコアができたので、それらは命令をはるかに高速に処理します。コアには、ハイパースレッディングまたは同時マルチスレッディング(SMT)と呼ばれるものを含めることもできます。これにより、1つのコアがPCからは2つのように見えます。ご想像のとおり、これは処理時間をさらに高速化するのに役立ちます。

この図のコアは、L3キャッシュと呼ばれるものを共有しています。これは、CPU内のオンボードメモリの形式です。CPUには、各コアに含まれるL1キャッシュとL2キャッシュ、および低レベルメモリの形式であるレジスタもあります。レジスタ、キャッシュ、システムRAMの違いを理解したい場合は、StackExchangeでこの回答を確認してください。

上記のCPUには、システムエージェント、メモリコントローラ、およびCPUに出入りする情報を管理するシリコンの他の部分も含まれています。

最後に、プロセッサのオンボードグラフィックスがあり、画面に表示されるすばらしい視覚要素をすべて生成します。すべてのCPUに独自のグラフィック機能が含まれているわけではありません。たとえば、AMD ZenデスクトップCPUは、画面に何かを表示するためにディスクリートグラフィックスカードを必要とします。一部のIntelCoreデスクトップCPUには、オンボードグラフィックスも含まれていません。

マザーボード上のCPU

CPUの内部で何が起こっているかを見てきたので、それがPCの他の部分とどのように統合されるかを見てみましょう。CPUは、PCのマザーボード上のいわゆるソケットに配置されています。

ソケットに装着されると、コンピューターの他の部分は「バス」と呼ばれるものを介してCPUに接続できます。たとえば、RAMは独自のバスを介してCPUに接続しますが、多くのPCコンポーネントは「PCIe」と呼ばれる特定のタイプのバスを使用します。

各CPUには、使用できる「PCIeレーン」のセットがあります。たとえば、AMDのZen 2 CPUには、CPUに直接接続する24レーンがあります。これらのレーンは、AMDの指導を受けてマザーボードメーカーによって分割されます。

たとえば、16レーンは通常x16グラフィックカードスロットに使用されます。次に、M.2 SSDのような1つの高速ストレージデバイスなど、ストレージ用に4つのレーンがあります。または、これらの4つのレーンを分割することもできます。2つのレーンをM.2SSDに使用し、2つをハードドライブや2.5インチSSDなどの低速のSATAドライブに使用できます。

これは20レーンで、他の4レーンはチップセット用に予約されています。チップセットは、マザーボードの通信センターとトラフィックコントローラーです。チップセットには独自のバス接続のセットがあり、PCにさらに多くのコンポーネントを追加できます。ご想像のとおり、パフォーマンスの高いコンポーネントは、CPUに直接接続されています。

ご覧のとおり、CPUはほとんどの命令処理を実行し、場合によってはグラフィックスも機能します(そのために構築されている場合)。ただし、命令を処理する方法はCPUだけではありません。グラフィックカードなどの他のコンポーネントには、独自のオンボード処理機能があります。GPUは、独自の処理機能を使用して、CPUと連携し、ゲームを実行したり、その他のグラフィックを多用するタスクを実行したりします。

大きな違いは、コンポーネントプロセッサが特定のタスクを念頭に置いて構築されていることです。ただし、CPUは、要求されたコンピューティングタスクを実行できる汎用デバイスです。そのため、CPUはPC内で最高の状態を維持し、システムの残りの部分はCPUに依存して機能します。