NetBurstマイクロアーキテクチャ

NetBurstマイクロアーキテクチャ（ネットバースト・マイクロアーキテクチャ、NetBurst Microarchitecture）は、インテルの8世代目のx86系として開発されたCPUの基本設計である。
命令解釈を行うフロントエンドと命令処理を行うバックエンドとを完全に分離することでCPUの機能拡張への対応や高クロック化が容易になるよう設計され、2000年のPentium 4で初めて採用された。しかしプロセスの微細化に伴い、高消費電力と高発熱という問題が深刻化し、2006年以降、これらの問題を改善したCoreマイクロアーキテクチャに置き換えられ2007年に生産を終了した。
概要.
2000年、インテルは1995年のPentium Pro以来続いてきたP6マイクロアーキテクチャを大幅に変更したNetBurstマイクロアーキテクチャを採用した。従来から用いられてきたP5やP6という没個性的な呼称を踏襲せずNetBurst（ネットバースト）と命名されたことは、Pentium 4で実装したSSE2命令などによってストリーミング・ビデオなどのインターネット利用シーンでパフォーマンスを発揮する、新たなマイクロアーキテクチャの誕生をユーザに印象づけるために行われたと推定される。
NetBurstマイクロアーキテクチャは、極端に小さいL1キャッシュ、比較的大きなL2キャッシュ、帯域の広いFSBなど、他社を含め従来のプロセッサのそれとは大きく異なる点を多数備えている。
L1キャッシュはデータと命令とを分離して格納するが、命令は命令解釈(デコード)され、より細かな操作の集まりであるμOPsに変換された状態でL1キャッシュに格納される。この命令を格納するL1キャッシュをトレース・キャッシュと呼ぶ。デコーダは、NetBurstマイクロアーキテクチャの柔軟性と拡張性の核となっている所でもありマイクロコードで機能変更や拡張を行うことが可能である。この柔軟性・拡張性を活かすことで比較的短い開発期間でHTTやSSE3やIntel 64やIntel VT等を追加した。このデコーダは、同時に1命令までのx86命令をμOPsに変換が可能であるが、P6マイクロアーキテクチャが同時に3命令まで変換可能だったのと比べると劣る。しかし、命令実行時にトレース・キャッシュに目的の命令が格納されていれば命令実行時間のおよそ1/3を占めるデコードを省くことが可能となる。
Pentium 4は命令実行を行うパイプライン段数が同社のPentium IIIやAMD社のAthlonに比べて大きく増加している。Pentium III が 10段であったのに対し、Pentium 4 では 20段(Prescottでは 31段)にも達し、Pentium 4 において命令実行パイプラインより分離された命令解釈(デコード)ステージを含めると更に段数は増える。パイプライン段数の増加は動作クロック周波数を向上させやすいというメリットがあるが、条件分岐命令の予測ミスによりパイプラインがストールしてしまいCPUの動作密度が低下するというデメリットも伴う。そのため、NetBurstマイクロアーキテクチャはクロックあたりの処理性能が従来のアーキテクチャ（P6やAMD-K7など）と比較して劣る。
しかし、従来の条件分岐を多用するプログラムは現状より大幅な向上は求められておらず、それに代わって「ストリーミングSIMD拡張命令2 (SSE2) 」など新たに実装した命令を用いることで動作クロックに比例して処理能力が向上するアプリケーションが主流になるとの予想に基づいてNetBurstマイクロアーキテクチャは開発されている。比較的苦手な条件分岐処理においても動作クロックの向上によって性能の向上が期待できる。また、ALUのうち2個はクロック周波数の2倍で動作する等、演算能力の強化が図られている。
そして次世代あるいは次々世代Pentium 4で実装されると一般に考えられていた「ハイパースレッディング・テクノロジー (HTT)」もNetBurstマイクロアーキテクチャの柔軟な構造を活用し、第一世代のWillametteでは使用できない状態で販売されていたものの完成されていたと見られる。HTTはCPU動作密度の低下を補い、CPU全体としての演算能力を向上させるためのものである。また後に、SSE3命令も追加される。
NetBurstマイクロアーキテクチャを採用したPentium 4は、その性格上必然的に動作クロック周波数が増加した。動作クロック=CPUの性能、そのCPUを搭載したコンピューターの性能だと大きく誤解している消費者に対し高性能という印象を与えることもあった。しかし「高クロック＝高性能」とは一概に言えないことから、発熱や消費電力を増大させる高クロックの弊害が顕著になり、不満が漏れる事となる。
なお誤解される事が多いが、NetBurstアーキテクチャ向けにコンパイルされたアプリケーションに関しては、P6アーキテクチャ向けのアプリケーションで同様な処理を行うよりも高速ではある(特に、SSE命令を多用する場合)。
ただし、NetBurstアーキテクチャが登場した当初は、当然ながら、従来のP6アーキテクチャ向けにコンパイルされたアプリケーションが大半であった。
これらP6アーキテクチャ向けのアプリケーションを、NetBurstアーキテクチャで実行した際の実効性能は、同一クロックのP6プロセッサをほぼ下回っており、これが後々まで、NetBurstアーキテクチャの実行効率の悪さの印象として固定化された。
発熱と消費電力の深刻な問題.
NetBurstマイクロアーキテクチャは、パイプライン段数を増やすことにより分岐予測ミスのペナルティが増加してクロック周波数あたりの性能が低下しても、それを上回るだけクロック周波数が向上すればトータルの性能は向上する、という理論に基づき設計された。これは、半導体プロセスが微細化すれば動作周波数は向上し、消費電力は下がるというスケーリング則が成立し続けることを前提としたものであった。
一般的に、発熱や消費電力は動作クロックに比例して大きくなる。スケーリング則が成り立っていた2000年代初頭までは、製造プロセスを微細化することで動作電圧を低減し発熱や消費電力を抑えることができたが、微細化がより高度になることによりリーク（漏れ）電流と呼ばれる電流が問題視されるようになった。
漏れ電流はどのような半導体でも発生する。コンピュータ以外も含むいかなる回路の中で、漏れ電流はその回路の動作に悪影響を与える存在として排除の対象となる。特にnm(ナノメートル)単位で設計されるようになった集積度の極めて高いマイクロプロセッサ類では、それまで大きな問題にならなかった漏れ電流が、実際の動作による消費電力と大差ないところまで増えてしまい、半導体業界全体の問題となった。その中でも業界最大手のIntelは、業界の最先端を走っていたことからその問題に大きくつまずくことになる。
130nmプロセス世代では、その前世代の180nmプロセスからの移行で、漏れ電流の増加より電圧低減による省消費電力化の効果が勝っていたが、90nmプロセスになると漏れ電流が極端に増加してしまった。動作クロックを高めることで性能向上を図るPentium 4では、この問題が小型なコンピューター本体・CPU冷却装置の低コスト化や冷却騒音低減、低消費電力が求められるモバイル向けで顕著にあらわれた。同様の問題はAMDのAthlon 64でも発生したが、Athlon 64はクロックあたりの処理能力を高めるという従来の手法を踏襲したことと、製造技術にSOI(Silicon on Insulator)を採用し、その影響を大きく抑えることに成功した。ただし、AMDの次世代マイクロアーキテクチャの開発には少なからずの影響を及ぼした。Pentium 4においても漏れ電流抑制技術が採用されたが、Intelは高コストで製造に手間が掛かるSOIを敬遠し、歪みシリコンと呼ばれる技術に留まった。その結果、消費電力の大きさがPentium 4の欠点としてクローズアップされた。
開発の終焉.
最終的に10GHzへ到達することを予定していた動作クロックの向上による性能向上は断念せざるを得ず、4GHzの製品は予告だけで終わった。また、モバイル用途では絶対性能は高くないことから当初Pentium 4より格下に位置づけられていたPentium MをPentium 4よりも高位の製品として販売することとなった。
Pentium 4の動作クロックは、2004年11月に発表された3.8GHzが最高となった。そしてさらに消費電力が増大すると見られたTejasと呼ばれる次世代製品の開発は中止され、CPUの性能向上はクロック数の向上から、処理効率の改善やデュアル・マルチコア化へと大きな転換点を迎えることになる。そのためインテルはCoreマイクロアーキテクチャであるCoreシリーズの開発にシフトし「NetBurstマイクロアーキテクチャ」の開発は2007年に事実上終了した（外部リンク「Intel、Pentium D 945などを生産中止～NetBurstが終息へ」,PC watch 2007年8月10日記事も参照）。このインテルの動きに対し、様子見をしていたAMDもデュアルコア版Athlon 64（Athlon 64 X2）を前倒しして市場に投入した。