しかし、Silverthorneではダイサイズが相当小さいことから、トランジスタ数が少ない、つまりそれほど複雑な機能を持たないことが予想される。ここで考えられるのは、次の三つのマイクロアーキテクチャである。
(前回までの続き)
- x86ネイティブマイクロアーキテクチャ
- P6マイクロアーキテクチャ
- まったく新しいマイクロアーキテクチャ
コアクロックあたり、最も命令実行効率を高めるためには、同時実行できる命令数を増やすか、断続的に命令実行できるようにするかのどちらか、あるいは両方である。NetBurstマイクロアーキテクチャは、クロックあたりの命令実行効率に目を瞑る代わりに、クロックを大幅に引き上げることで、単位時間当たりの命令実行数を増やした。だが、クロック至上主義は限界を迎え、Mobileプロセッサ向けに最適化された、Baniasの進化型であるCoreマイクロアーキテクチャが取って代わった。
Coreマイクロアーキテクチャのアプローチは、大きな問題を抱えていると見る。それは、本来MobileプロセッサとしてのBaniasのマイクロアーキテクチャをDualコア化し発展させたYonahに対し、これをパフォーマンス向上の側面から拡張したことである。つまり、基本的な部分は低消費電力プロセッサとして設計されながら、パフォーマンス向上のために、せっかく低消費電力を指向する形で用意されたものを、結果的につぶしてしまうような無駄なアプローチが数多くみられるのではないか、という危惧だ。
これは、Core2 Duoの弱点といわれる64-bit拡張の部分や、プリフェッチ部分と命令実行部分とのアンバランス等(入口は狭いのに出口はやたら広い)、そう思わせる部分が多いことからも伺える。要は、Mobileプロセッサを流用したものなのだから、当然の帰結ではあるのだが…。
さて、話を戻そう。Silverthorneは、三つのマイクロアーキテクチャが考えられるとしたが、この中で最も考えられるのは、x86ネイティブマイクロアーキテクチャ、あるいはこの改良版だと見る。根拠は、次のとおりである。
- トランジスタ数が少ない=余計な変換機構や複雑な機能は持たない
- クロック周波数が低い=命令実行効率が高い
- 超低消費電力である=トランジスタのゲート通過率が低い
P6マイクロアーキテクチャ以降では、x86命令をMicro Opsに置き換えて実行しているが、これは対RISCプロセッサとして、クロック周波数を高めるために導入されたものである。したがって、同じクロック周波数であれば、一般的にx86命令をそのまま実行した方が速いことが多い(無論、例外はある)。しかし、複雑な可変長命令だといわれるx86命令だが、ハンドアセンブルならともかく、一般的なコンパイラであれば、わざわざ複雑なx86命令を使うことはほとんどない。つまり、それほど複雑でないx86命令を効率よくネイティブで実行できるようになれば、低クロック周波数でもそこそこの性能を発揮することが可能ということである。しかも、複雑な変換機構等は必要としない。
もちろん、x86ネイティブといっても、Pentiumの時代まで遡る必要はない。Pentiumの時代から15年近い歳月を経て、プロセスの進歩もさることながら、P6、NetBurst、Banias、Coreといった様々なマイクロアーキテクチャで培った技術がある。これをx86ネイティブで実行するための工夫とすれば、最新のプロセッサの性能には遠く及ばないが、1GHzに満たないクロック周波数であっても、同クロックのPentium IIIより確実に速くなるだろう。
ただし、Intel社のことだから、こういったものでもまったく新しいマイクロアーキテクチャだと名乗る可能性は高い。だが、そんなことよりもP6以来のMicro OpsがSilverthorneでは採用されないのではないか? そちらの方が興味深いところである。ま、勝手な妄想なので、本当はどうなのか、楽しみに来年を待つとしよう。
コメント