ということで、やっと本題に近づいてきた。Clock Meshはそんな訳で広く使われている技法ではあるのだが、Clock Mesh自身の持つ寄生容量による消費電力増加や、当然配線抵抗による消費電力増加も問題である。これにより、そのまま供給したのでは信号電圧が弱まってしまうため、Clock Meshの途中にClock Bufferを挟んで信号の振幅を上げる工夫も必要である。図4では緑色の配線に合計5箇所、Clock Bufferを挟んでいるが、実際はClock Meshからさらにその下の回路に供給する部分にもClock Bufferを挟まないと信号電圧が弱くなりすぎるという場合もある。こうしたClock Bufferもまた消費電力増加に繋がる。

この中で最大の問題はClock Meshによる寄生容量である。そこでこれを逆手に取って、Clock供給回路のどこかにインダクタンスを置けば、Clock MeshuとあわせてLC回路が構成できる。このLC回路の発振周波数を、Clock信号が本来供給する周波数にうまく合わせられれば、ずっと消費電力が下がる、というのがPiledriverで導入されたResonant Clock Meshの仕組みである。図5がその模式図で、赤で描いた部分がResonant Clock Meshで追加された回路となる。

勿論これは模式図であって、実際にはこんな一点供給では位相のずれが出るので、Clock Meshに複数個所これを設ける形となる。当然Clock Meshには配線抵抗もあるから、放っておくと共振による信号電圧がどんどん減っていってしまう。そこで定期的に電力を供給する必要があるが、それでも従来のClock信号供給の方式よりも消費電力を下げられるとしている。

実際にPiledriverでは1つのCoreあたり5本のHCLK Treeが構成され、この1本のTreeに54個のClock Driverと25個のインダクタンスが接続される(Photo02)。配線で言えば、Piledriverの配線層の第10層と11層が、このClock Meshuに割り当てられている形だ(Photo03,04)。Photo05は実際のPiledriverのダイのどこにこのClock Meshが配されているかを示したもので、先のPhoto02とか、PiledriverコアのFloor Plan(Photo06)と重ね合わせてみると面白い。

Photo02: 5本のHCLK Tree(図ではHCK Tree)と交差するように縦の配線が走っており、この配線から実際の回路にClock信号が供給される形になる。この縦の配線が54本あり、それぞれClock Driverで電圧を正規レベルに引き上げて負荷に対応している。

Photo03: 10/11層は電源とも当然ながら共用になっているのが判る。

Photo04: Photo03からResonant Clock Meshの要素を抜き出したもの。Photo03で薄緑&オレンジで描かれた、太い"[]"字型の配線がインダクタンスを構成している部分であることが判る。

Photo05: この写真を、PiledriverのFloor Planの写真と重ねてみると、これはCoreというよりもModule全体(ただしL2は除く)に相当するようだ。

Photo06: これは2012年のHotChips 24でAMDが発表したTrinityコアのプレゼンテーションより。縦横比がちょっと異なっているが、Photo05はこのFloor Planの左半分に相当することが判る。

Cyclosが出しているWhitepaperによれば、1GHzのClock信号供給には0.75nH~1.25nHのインダクタンスが必要で、これをCMOS回路上で構成するには100×100μm^2程度の面積を要するとする。LC回路の共振周波数f=1/2π(√LC)なので、4GHzとかであればもっと小さなインダクタンスでも足りる計算になる(勿論これはClock Meshの寄生容量次第ではあるのだが)。ちなみにISSCCにおける発表では、このResonant Clock Meshを採用することで、最大で25%ほどの効率が改善できるとしている(Photo07)。

Photo07: 縦軸(左)がCac Savingで、要するにCの容量をどれだけ節約できたか、という軸になる。140pF節約すると30%ほどの効率アップということだから、Resonant Clock Meshを使わない状態におけるClock Meshの寄生容量は467pFほどという事になるのだろうか。

具体的には、

Cac=Pdynamic÷(V^2×f)

という値を定め、これをプロットしているものだ。このCacというのは何かという話だが、ちょっと基本に立ち返るとプロセッサの消費電力Pは一般に、

P=C×V^2×f

として計算される。Cが本来は定数、Vが電圧、fが消費電力である。

2つの式を見比べて戴くと判るとおり、Resonant Clock Meshを使う事でこのCが変わる、という訳だ。当然消費電力はCが低いほど下がる計算になる。Photo06によれば3.3GHz付近が一番効率が良く25%強の節約となっており、4GHzでもまだ20%程の節約が可能とされている。Cが少なくなると、当然Clock Driverの性能を落としても十分な振幅を確保できるという事にもなる。Photo08がこのシミュレーション結果で、Clock Driverの消費電力も減らすことができるとする。

Photo08: これは4.25GHzにおける電圧1.2Vの場合のシミュレーション結果だとか。Clock Driverの出力を定格の半分(4/8)や8分の3まで落としても、十分な振幅が確保できることが示された。

勿論ここまでの技術はあくまでClock信号の分配「だけ」にしか影響がないので、Clock信号を25%削減といっても、それはCPUの消費電力の一部でしかない。ただAMDによれば、Resonant Clock Meshを使う事で同じ動作周波数ならば10%程度消費電力を下げられるし、同じ消費電力なら動作周波数を100MHzほど引き上げられる、発表では説明していた。

次ページ消費電力(その3)