それにしても、だ。待機時/稼動時共にPhenomの消費電力は突出して高くなっている。これはなぜか? 冷静に考えると、こんなに高くなる理由があまり思いつかない。まずプロセスは、従来のAthlon 64 X2と同じ65nm SOIを使っている。従って、ここで大きく消費電力が増える理由はない。またパイプライン構造が大きく変わったわけではない。勿論キャッシュ周りの帯域増加は色々手が入っているし、SSEユニットは機能強化がなされている。しかしながら、デコーダ部などにはそれほど違いが無いわけで、構造面でもそれほど消費電力が増える理由は思いつかない。
ここからは完全に筆者の推測である。AMDは恐らくBarcelonaの実装に十分な時間を掛けられなかったのだろう。このために、内部の改造(一番怪しいのはL1キャッシュやフェッチユニットだ)にあたり、安易にLow VtのHigh-Speedトランジスタを多用してしまい、結果としてCritical Pathの消費電力がガンと増えてしまっているのではないか、と考えている。
これにはもう少し説明が必要だろう。130nm世代あたりまでは、プロセス内部のトランジスタはほぼ1種類だった。ところが高速性と省電力性の両立が難しくなってきたため、90nm世代あたりから、複数の種類のトランジスタを混載することが一般的である。上でちょっと、トランジスタのリーク電流の話をしたが、一般にトランジスタのVt(スレッショルド電圧)は、
Low Vt : 高速動作・低Dynamic Power・高Static Power
High Vt : 低速動作・高Dynamic Power・低Static Power
という傾向がある。スレッショルド電圧を下げると、On/Offに要する時間が短くなる(電圧の立上り/立下りに要する時間が減る)からスイッチング速度は上がるし、電圧の2乗でスイッチング電力は減る一方、敷居が下がるからリークも飛躍的に増える。逆にスレッショルド電圧を上げると、全く逆の事が起きる。そこで、この2種類のトランジスタを組み合わせ、
- システムの性能に影響を与えやすい部分にはLow Vtのトランジスタ
- システムの性能に影響を与えにくい部分にはHigh Vtのトランジスタ
を配する事で、消費電力の増分を最小に減らしつつ性能を確保しようとする。Critical Pathというのは、まさしくこの性能に影響を思いっきり与える部分で、ここがどの程度で動作するか、でシステム全体の動作周波数が決まる部分だ。
ただ当然これを最適化、つまりLow Vtのトランジスタの利用を最小化しつつ性能を確保するためには、猛烈な時間がかかる。これは単に回路だけの問題でなく、レイアウトとか配線にも絡んでくるから、通常はパラメータを少しづつ変えながらシミュレーションをひたすらブン回して最適化を行う事になる。が、何しろ総トランジスタ数が4億5000万にもなる巨大なプロセッサだ。コアあたりのトランジスタ数は公開されていないが、ざっくり考えても5000万を切ることはないだろう。そうなると必然的に、シミュレーションには時間が掛かる。結果として、Low Vtのトランジスタを多用することになっても不思議ではないだろう。ちなみにAMD/IBMは65nm SOIでDual Vtを利用している事を発表済であり、当然Phenomでも利用されていると考えるべきだろう。
仮にこれが事実だとすると、解決案は? というのが次の問題。世間一般には45nm SOIでこれが解決するという見方をしているが、筆者はこれを単純には肯定できない。先ほどのトランジスタの話に戻るが、プロセスを微細化してゆくと一般にLow Vtのトランジスタはよりリークが増える傾向にある。逆にHigh Vtのトランジスタはより省電力性が実現できるという具合に、両者のギャップは広がる方向に進むのが一般的である。このため、単にLow Vt/High Vtだけでなく、中間的な性格を持つMid Vt(高速性も省電力性もそこそこ)のトランジスタを追加するとか、場合によってはもう1つ追加する(つまりLow VtとHigh Vtの間に2種類入る)場合すらある。例えばTSMCの45nmプロセスでも、Core Deviceに3種類のVtが用意されているのがわかる筈だ。45nm SOIがどうなるか現時点では発表されていないが、まぁDual Vtではギャップが大きすぎると筆者は見ている。
仮にTriple Vtが利用可能だとしよう。この場合でも、これを利用するためには間違いなく内部レイアウトとかCritical Pathの再設計が必要になるだろう。こうした再設計を行わずにそのままLow VtとHigh Vtのみを使った場合、むしろ消費電力は増えると考えられる。Low Vtを使う部分の消費電力が間違いなく増えるからだ。ただ、プロセスの移行と内部設計/レイアウトの変更を同時に行うのは、いくらなんでもリスクが高すぎるように思う。仮に筆者が方針を決められるのであれば、まず65nm SOIで一度Critical Path周りを再設計(このときに45nmのTriple Vtへの移行も考慮しておく)し、次いでそれを45nm SOIに移行するという方針を選びたいところだ。
最近、AMDの45nm SOIを使ったPhenomのうわさが色々飛び交っている。前編で紹介した通り、Errata #298への対処のみを行ったRevision B3のPhenomがとりあえず登場するが、これに続いて65nm SOIのままRevision B4なる省電力化を行ったものが出るとか、いやRevision B4は無く45nm SOI化したRevision C1が出るとか、色々話が出ている。これらの話の真偽は全くしらないが、(ここまでの推察が正しければ)Critical Pathの再設計を行ったRevision B4は当然あってしかるべきであろう。それを流通させるかどうか、はまた別の話だろうが。