2 という数字を 2 倍にすると 4 になります。さらに2倍にすると8個になります。以前の製品の 2 倍になるこの傾向を継続すると、10 ラウンド以内に最大 1,024 になります。 20ラウンドまでに1,048,576を達成しました。これを指数関数的成長といいます。これは、エレクトロニクスの進化における最も重要な概念の 1 つを支える原理です。
1965 年、インテルの共同創設者であるゴードン・ムーアは、それ以来半導体業界の方向性を決定づけた観察を行いました。ムーア氏は、チップ上のトランジスタの密度が毎年倍増していると指摘した。これは、チップ メーカーが 12 か月ごとに、チップ基板上に 2 倍のトランジスタを搭載できるようにトランジスタのサイズを縮小する方法を見つけていたことを意味します。
ムーア氏は、チップ上のトランジスタの密度とチップの製造コストは密接に関係していると指摘した。しかし、メディアは、そして他のほとんどすべてのメディアは、マイクロチップ産業が指数関数的な速度で発展しているという考えに固執しました。ムーアの観察と予測は、私たちがムーアの法則と呼ぶ概念に形を変えました。
長年にわたって、人々はチップ開発のパラメータに合わせてムーアの法則を微調整してきました。ある時点では、チップ上のトランジスタの数が 2 倍になるまでの期間が 18 か月にまで増加しました。今日でもう2年くらい経ちます。今日のトップマイクロプロセッサが1 つのチップ上に 10 億個以上のトランジスタを搭載していることを考えると、これは依然として素晴らしい成果です。
ムーアの法則を別の見方で見ると、マイクロチップの処理能力は 2 年ごとに 2 倍になります。これは、トランジスタの数が 2 倍になるということとほぼ同じです。マイクロプロセッサはトランジスタから処理能力を引き出します。しかし、プロセッサの能力を向上させるもう 1 つの方法は、チップをより効率的に設計する新しい方法を見つけることです。
ここでインテルの話に戻ります。インテルの哲学は、チクタク戦略に従うことです。このチェックマークは、より小型のトランジスタを構築する新しい方法を作成することを指します。タックとは、マイクロプロセッサのパワーと速度を最大化することを指します。 (この記事の執筆時点で) 市場に投入された最新の Intel ティック チップは、45 ナノメートル スケールのトランジスタを備えたPenrynチップです。ナノメートルは 1 メートルの 10 億分の 1 です。正確に言うと、平均的な人間の髪の毛の直径は約 100,000 ナノメートルです。
それで、何ですか?それはIntelの新しいCore i7マイクロプロセッサだろう。 Penryn と同じサイズのトランジスタを搭載していますが、Intel の新しいNehalem マイクロアーキテクチャを使用して電力と速度を向上させています。このチックタックの哲学に従うことで、インテルは今後数年間、ムーアの法則の期待に応える目標を達成したいと考えています。
Nehalem マイクロプロセッサはどのようにして Penryn と同じサイズのトランジスタを使用しながら、より良い結果を得ることができるのでしょうか?マイクロプロセッサを詳しく見てみましょう。
ネハレムの建築
Nehalemマイクロプロセッサは、コアとアンコアと呼ばれる周囲のコンポーネントという 2 つの主要セクションを持つチップとして見ることができます。マイクロプロセッサのコアには次の要素が含まれています。
- 実際の数値処理を行うプロセッサ。これには、加算や減算などの単純な数学演算から、より複雑な関数まで、あらゆるものが含まれます。
- このセクションは、順不同のスケジューリングとリタイア ロジックに特化しています。言い換えれば、この部分により、マイクロプロセッサは最速の順序で命令に取り組むことができ、より効率的になります。
- キャッシュ メモリはマイクロプロセッサのコアの約 3 分の 1 を占めます。キャッシュにより、マイクロプロセッサはチップ自体に情報を一時的に保存できるため、コンピュータの他の部分から情報を取得する必要性が減ります。コアにはキャッシュ メモリの 2 つのセクションがあります。
- コア上の分岐予測セクションにより、マイクロプロセッサは以前の入力に基づいて機能を予測できます。関数を予測することにより、マイクロプロセッサはより効率的に動作できるようになります。予測が間違っていることが判明した場合、チップは動作を停止し、機能が変更される可能性があります。
- 残りのコアは機能を命令し、情報を解読し、データを整理します。
非コア セクションには、L3 キャッシュに含まれる追加の 8 メガバイトのメモリがあります。 L3 キャッシュがコアにない理由は、Nehalem マイクロプロセッサがスケーラブルでモジュール式であるためです。つまり、Intelは複数のコアを備えたチップを構築できるということだ。すべてのコアは同じ L3 メモリ キャッシュを共有します。つまり、複数のコアが同じ情報に基づいて同時に動作できるということです。
スケーラブルなマイクロプロセッサを開発する理由これは、プロセッサ自体を再発明することなく、より多くの処理能力を構築するという、難しい問題に対する洗練された解決策です。ある意味、複数の電池を直列に接続しているようなものです。 Intel は、Nehalem マイクロプロセッサをデュアル、クアッド、および 8 コア構成で構築することを計画しています。デュアルコアプロセッサはスマートフォンなどの小型デバイスに適しています。デスクトップ コンピューターまたはラップトップコンピューターにはクアッドコア プロセッサーが搭載されていることがよくあります。インテルは、サーバーなどのマシン、つまり重いワークロードを処理するコンピューター向けに 8 コア プロセッサーを設計しました。
Intelは、アンコアにグラフィックス処理装置(GPU)を組み込んだNehalemマイクロプロセッサを提供するとしている。 GPU は専用グラフィックス カードとほぼ同じように機能します。
次に、ネハレムが情報を送信する方法を見てみましょう。
ネハレムとクイックパス
Intel によると、Nehalem マイクロアーキテクチャでは、同社が QuickPath と呼ぶシステムが使用されています。 QuickPath には、プロセッサ、メモリ、その他のコンポーネント間の接続が含まれます。
古い Intelマイクロプロセッサでは、コマンドは入出力( I/O )コントローラを介して集中メモリ コントローラに送られます。メモリ コントローラーはプロセッサに接続し、データを要求する可能性があります。メモリ コントローラーはこのデータをメモリ ストレージから取得し、プロセッサに送信します。プロセッサはそのデータに基づいて計算を行い、結果をメモリ コントローラを介して I/O コントローラに送り返します。マイクロプロセッサが単一チップ上に複数のプロセッサを搭載して複雑になるにつれて、このモデルの効率は低下します。
古いマイクロアーキテクチャを使用するインテルのチップは、毎秒最大 21 ギガバイトのメモリ帯域幅を実現しました。 QuickPath 接続によりメモリ帯域幅が向上し、毎秒より多くの情報を送信できるようになります。
新しいテクノロジーを使用したプロセッサーは、プロセッサーとメモリー間の通信を分散化します。つまり、集中型メモリ コントローラの代わりに、各プロセッサが独自のメモリ コントローラ、専用メモリ、およびキャッシュメモリを備えています。プロセッサは I/O コントローラと直接通信します。コマンドは I/O コントローラーからプロセッサーに送信されます。各プロセッサには専用のメモリ コントローラ、メモリ、キャッシュが搭載されているため、情報の流れがより自由になります。各プロセッサは、毎秒 32 ギガバイトの速度で専用メモリと通信できます。
Nehalem ベースのプロセッサも、相互にポイントツーポイント相互接続を備えています。つまり、あるプロセッサが別のプロセッサのキャッシュ内のデータにアクセスする必要がある場合、それぞれのプロセッサにリクエストを直接送信して応答を取得できます。各相互接続内には個別のデータ経路があります。データは同時に両方向に流れることができるため、データ転送が高速化されます。複数のプロセッサと I/O コントローラ間の転送速度は、1 秒あたり最大 25.6 ギガバイトです。
QuickPath を使用すると、プロセッサは他のプロセッサに情報を要求するときにショートカットを実行できます。プロセッサ A、B、C、D を備えたクアッドコア マイクロプロセッサを想像してください。各プロセッサ間にはリンクがあります。古いアーキテクチャでは、プロセッサ A が D からの情報を必要とする場合、リクエストを送信します。次に、D はプロセッサ B と C にリクエストを送信して、D がそのデータの最新のインスタンスを持っているかどうかを確認します。 B と C は結果を D に送信し、D は情報を A に送り返すことができます。メッセージの各ラウンドはホップと呼ばれます。この例では 4 つのホップがありました。
QuickPath では、これらの手順の 1 つがスキップされます。プロセッサ A は、「スヌープ」と呼ばれる最初の要求を B、C、D に送信し、D を応答者として指定します。プロセッサ B と C はデータを D に送信します。D は結果を A に送信します。このメソッドはメッセージを 1 ラウンドスキップするため、ホップは 3 つだけです。小さな改善のように見えますが、数十億回の計算を経ると大きな違いが生じます。
さらに、他のプロセッサの 1 つが A が要求する情報を持っている場合、データを A に直接送信できます。これにより、ホップが 2 に減ります。QuickPath は、情報をよりコンパクトなペイロードに詰め込みます。
Nehalem のブランチとループ
マイクロプロセッサでは、すべてがクロック サイクルで実行されます。クロック サイクルは、マイクロプロセッサが命令を実行するのにかかる時間を測定する方法です。これは、マイクロプロセッサが 1 秒間に実行できる命令の数と考えてください。クロック速度が速いほど、マイクロプロセッサが 1 秒あたりに処理できる命令の数が増えます。
Core i7 のようなマイクロプロセッサが効率を向上させようとする 1 つの方法は、古い命令に基づいて将来の命令を予測することです。それは分岐予測と呼ばれます。分岐予測が機能すると、マイクロプロセッサは命令をより効率的に完了します。しかし、予測が不正確であることが判明した場合、マイクロプロセッサは補正する必要があります。これはクロック サイクルが無駄になる可能性があり、パフォーマンスの低下につながります。
Nehalem には 2 つの分岐ターゲット バッファ(BTB) があります。これらのバッファーは、プロセッサーが次に何を必要とするかを予測して、プロセッサー用の命令をロードします。予測が正しいと仮定すると、プロセッサはコンピュータのメモリから情報を呼び出す必要はありません。 Nehalem の 2 つのバッファにより、より多くの命令をロードできるようになり、1 つのセットが間違っていることが判明した場合の遅延時間が減少します。
もう 1 つの効率向上には、ソフトウェア ループが関係します。ループは、ソフトウェアが実行中に繰り返す一連の命令です。一定の間隔で発生する場合もあれば、断続的に発生する場合もあります。ループを使用すると、分岐予測は不要になります。特定のループの 1 つのインスタンスは、他のループと同じように実行される必要があります。 Intel は、ループを認識し、他の命令とは異なる方法でループを処理するように Nehalem チップを設計しました。
ループ ストリーム検出のないマイクロプロセッサは、分岐予測器から始まり、命令を取得 (またはフェッチ) し、命令をデコードして実行するように設計されたハードウェアに移行するハードウェア パイプラインを持つ傾向があります。ループ ストリーム検出では、このプロセスの一部をバイパスして、繰り返される命令を識別できます。
Intel は、Penryn マイクロプロセッサでループ ストリーム検出を使用しました。 Penryn のループ ストリーム検出ハードウェアは、古いマイクロプロセッサのフェッチ コンポーネントとデコード コンポーネントの間に位置します。 Penryn チップの検出器がループを検出すると、マイクロプロセッサは分岐予測をシャットダウンしてコンポーネントをフェッチできます。これによりパイプラインが短くなります。しかし、ネハレムはさらに一歩先を行きます。 Nehalem のループ ストリーム ディテクタはパイプラインの最後にあります。ループを検出すると、マイクロプロセッサは適切な命令をバッファに送信するループ ストリーム検出器を除くすべてをシャットダウンできます。
分岐予測とループ ストリーム検出の改善はすべて、Intel の「tock」戦略の一部です。 Nehalem チップのトランジスタは Penryn のものと同じサイズですが、Nehalem の設計はハードウェアをより効率的に使用します。
次に、Nehalem マイクロプロセッサがデータ ストリームをどのように処理するかを見ていきます。
Nehalem とマルチスレッド
ソフトウェア アプリケーションがより高度になるにつれて、プロセッサへの命令の送信は複雑になります。プロセスを簡素化する 1 つの方法は、スレッド化を使用することです。スレッド化はソフトウェア側から始まります。プログラマは、プロセッサが複数のストリームまたはスレッドに分割できる命令を使用してアプリケーションを構築します。プロセッサーは命令の個別のスレッドを処理し、チームを組んでタスクを完了できます。マイクロプロセッサの世界では、複数のプロセッサがデータの並列スレッドを同時に処理するため、これを並列処理と呼びます。
Nehalem のアーキテクチャにより、各プロセッサは 2 つのスレッドを同時に処理できます。つまり、8 コアの Nehalem マイクロプロセッサは同時に 16 スレッドを処理できます。これにより、Nehalem マイクロプロセッサは複雑な命令をより効率的に処理できるようになります。 Intel によれば、マルチスレッド機能は、マイクロプロセッサに処理コアを追加するよりも効率的です。 Nehalem マイクロプロセッサは、ビデオ編集プログラムやハイエンド ビデオ ゲームなどの高度なソフトウェアの要求を満たすことができる必要があります。
マルチスレッドのもう 1 つの利点は、プロセッサが複数のアプリケーションを同時に処理できることです。これにより、ウイルススキャナなどの他のアプリケーションをバックグラウンドで実行しながら、複雑なプログラムで作業することができます。古いプロセッサでは、これらの動作によりコンピュータの速度が低下したり、クラッシュする可能性があります。
Intelは、同社がターボ・ブーストと呼ぶ追加テクノロジーをNehalemのアーキテクチャ内に組み込んだ。プロセッサーが消費電力、処理能力、温度レベルの制限を下回って実行されている場合、クロック周波数を上げることができます。これにより、アクティブなプロセッサの動作が高速になります。シングルスレッドを備えた古いアプリケーションでは、チップはクロック速度をさらに向上させることができます。
ターボ ブースト機能は動的です。チップが動作パラメータの範囲内にある場合、作業負荷が増加するにつれて Nehalem マイクロプロセッサの動作がより激しくなります。ワークロードが減少すると、マイクロプロセッサは通常のクロック周波数で動作できるようになります。マイクロチップには監視システムが備わっているため、チップが過熱したり、能力を超えて動作したりすることを心配する必要はありません。また、プロセッサーに大きな負荷を与えていないときは、チップが電力を節約します。
Nehalem がインテルの最新の「ティック」である場合、次の「ティック」は何になるでしょうか?そしてその後は何が起こるのでしょうか?次のセクションで調べてください。
Nehalem のターボ ブースト機能は、オーバークロックと呼ばれる古いハッキング手法に似ています。マイクロプロセッサをオーバークロックするとは、チップの通常のパラメータを超えて処理周波数を高めることです。ゲーマーの中には、高度なビデオ ゲームをプレイするときにパフォーマンスを向上させるために、マシンのプロセッサをオーバークロックする人もいます。ただし、オーバークロックは常に良い考えであるとは限りません。チップが過熱する可能性があります。
インテルのチクタク
マイクロプロセッサの開発には何年もかかります。 Intel は 2008 年に Nehalem を発表しましたが、このプロジェクトは当時 5 年以上前から行われていました。つまり、人々が発表されたマイクロチップがさまざまな電子機器やコンピューターに搭載されるのを待っている間にも、インテルのようなメーカーはマイクロプロセッサーの進化の次のステップに取り組んでいることを意味します。ムーアの法則を守りたいのであれば、そうしなければなりません。
インテルの次のステップは、別の「ティック」な開発です。これは、トランジスタを幅 32 ナノメートルまで縮小することを意味します。このサイズのトランジスタを備えたマイクロプロセッサを 1 つ製造することは、驚くべき成果です。しかし、さらに困難なのは、これほど小さなトランジスタを備えた数百万個のチップを、効率的で信頼性が高く、コスト効率の高い方法で大量生産する方法を見つけることです。
次期インテルチップのコードネームはWestmereです。 WestmereはNehalemと同じマイクロアーキテクチャを使用しますが、32ナノメートルのトランジスタを搭載します。つまり、ウェストメアはネハレムよりも強力になるということです。しかし、それは、Westmereのアーキテクチャが、これほど小さなトランジスタを備えたマイクロプロセッサにとって最も合理的であるという意味ではない。それは次の「トック」マイクロプロセッサに委ねられます。
そして、このトックにはすでに「Sandy Bridge」という名前が付いています。 Sandy Bridge マイクロチップは、32 ナノメートルのトランジスタに最適化されたアーキテクチャを備えています。 Sandy Bridge が商業市場に展開されるまでには数年かかるかもしれませんが、実際に商業市場に投入されると、おそらく今日の Nehalem と同じくらい革命的なものになるでしょう。
その後、インテルはどこへ向かうのでしょうか?言うのは難しいです。トランジスタは 10 年前にはほとんど想像もできなかったサイズまで縮小していますが、急速な発展に歯止めをかける可能性のあるいくつかの基本的な物理法則に到達しつつあります。それは、より小さな材料を扱うにつれて、量子力学の領域に入り始めるからです。量子力学の世界は、古典的な物理学しか知らない人にとっては奇妙に見えるかもしれません。粒子とエネルギーは、古典的な観点からは直感に反するように見えます。
マイクロプロセッサに関しては、これらの動作の 1 つである電子トンネリングが特に問題になります。通常、トランジスタはリークの危険をほとんど伴わずに電子を集中させることができます。しかし、障壁が薄くなるにつれて、電子トンネリングの可能性が高くなります。電子が非常に薄い障壁(幅が 1 ナノメートル程度のもの)に遭遇すると、電子のエネルギー レベルが通常では起こりえないように見えても、障壁の一方の側からもう一方の側に通過することができます。電子が障壁に物理的な穴を開けないにもかかわらず、科学者はこの現象をトンネリングと呼んでいます。
これはマイクロプロセッサにとって大きな問題です。マイクロプロセッサは、トランジスタ スイッチを介して電子を流すことによって機能します。ナノスケールのトランジスタを備えたマイクロプロセッサは、すでにある程度のレベルの電子漏れに対処する必要があります。リークによりマイクロプロセッサの効率が低下します。 Intelのトランジスタ設計方法に劇的な変化がなければ、ムーアの法則が最終的に無効になる危険性がある。
それでも、エンジニアは完全に克服できないと思われる問題を回避する方法を考える傾向があります。たとえあと 1 ~ 2 世代経ってもトランジスタをこれ以上小さくできなかったとしても、エレクトロニクスが終わるわけではありません。それは、私たちが慣れているよりも少しゆっくりと前進することを意味するかもしれません。
マイクロプロセッサと関連主題の詳細については、次のページのリンクを参照してください。
関連する仕組みの記事
- 電池の仕組み
- ビットとバイトの仕組み
- ブール論理の仕組み
- 電気モーターの仕組み
- 電子ゲートの仕組み
- マイクロプロセッサの仕組み
- 量子コンピューターの仕組み
- 半導体の仕組み