後藤弘茂のWeekly海外ニュース
AMDの新APU「Bristol Ridge」のパフォーマンスアップ手法
2016年6月1日 15:00
物理的にはCarrizoと同じだが性能が違うBristol Ridge
AMDは、2016年の“新世代”APU「Bristol Ridge(ブリストルリッヂ)」を、COMPUTEX TAIPEI 2016に合わせて発表した。AMDは、第7世代の新APUと謳っている。ただし、謳い文句の新世代の部分には、クォーテーションマークが付く。というのは、このAPU(Accelerated Processing Unit)は、物理的には新しいチップではないからだ。Bristol Ridgeのダイ(半導体本体)自体は現在のAPU「Carrizo(キャリゾ)」と変わらない。
Bristol Ridgeは、4個の「Excavator(エキスカベータ)」CPUコア、GCN(Graphics Core Next) 1.2アーキテクチャのGPUコアを8 CU(Compute Unit)搭載し、サウスブリッジチップを統合したSoC(System on a Chip)となっている。ユニット的にはCarrizoと同じだ。機能上で目立つCarrizoとの違いは、DDR4対応だが、これもCarrizoの時から実装されており、Bristol Ridgeで有効化されただけだ。
このようにCarrizoと変わらないにも関わらず、Bristol Ridgeは、非常に興味深いAPUだ。それは、AMDがさまざまな技を使って、性能を引き上げているからだ。「Carrizoに対してBristol Ridgeは、CPUで20%、GPUでは最大37%も性能がアップしている」とJoe Macri氏(Vice President and CTO, AMD Client Products, AMD)は言う。一言で言えば、新しいチップを設計したのと同程度の性能アップを達成している。
AMDがCarrizoをリリースしてから約1年。1年あれば、APUを再設計して性能を上げることも可能ではある。ところが、Bristol Ridgeの場合は、そうではなく、物理的な設計には一切手を付けていない。「Bristol Ridgeは、Carrizoとまったく同じプロセス技術を使い、チップ上のトランジスタにも一切違いがない、マスクセット(半導体製造のパターニング原盤)すらまったく同じだ」とMacri氏は語る。
では、どうやって同じダイのAPUの性能を引き上げたのか。
シャドウPステイトの導入でダイ毎の制御を
半導体チップは、電圧を上げるとトランジスタのスピードが上がるため、より高い周波数で動作できるようになる。そして、同じプロセス技術でも成熟すると、同電圧時の動作周波数を上げることができるようになる。そのため、同じ電力枠でも、プロセスの成熟によって動作周波数と電圧の組み合わせが変わる。実際には、性能アップの半分は、このプロセスの成熟によって実現されているという。
さらに細かく見ると、チップの動作周波数は、パスのレイテンシが長いクリティカルパスによって決まる。クリティカルパスに合わせた動作周波数にしなければならない。さらに、そこにCMOSプロセスにはばらつきという要素が加わる。プロセスばらつきによって、個々のチップのキャラクタリスティックが異なる。ばらつきによって、クリティカルパスが遅くなったチップは、電圧を上げないと規定の動作周波数まで達することができない。つまり、プロセスが成熟すると周波数が上がるが、ダイ毎にばらつきがあって、その度合いが変わる。
そこで、AMDはこうした要素を吸収するために、動作周波数と電圧をステップで切り替える「DVFS(Dynamic Voltage and Frequency Scaling)」を最適化した。そもそも、AMDは、Carrizoで、DVFSを拡張して実際のシリコンダイの動作周波数上限に合わせて最適化する「AVFS(Adaptive Voltage and Frequency Scaling)」を導入している。これは、CPUコアに周波数センサーを設置して、特定の動作周波数での動作がどの最低電圧で可能になるかを検知する仕組みだ。これによって、プロセスばらつきによる動作周波数と電圧の組み合わせの違いに合わせる。
DVFS/AVFSは、いずれもプロセッサのPステイトに応じて周波数&電圧を切り替える。そこで、「Bristol Ridgeでは新たにPステイトを10ステイト設定した。OS側が扱うPステイトは8つだ。そのため、2つのPステイトは、シャドウPステイトとなる」とMacri氏は説明する。つまり、Bristol Ridgeでは従来の8個のPステイトの上に、さらに2つのPステイトを設定した。そして、OS側の8つのPステイトを、CPU側の10のPステイトにマップするシステムにした。
この方法によって、Bristol Ridgeでは、チップによってはより高いPステイトへと振ることができるようになった。つまり、AVFSによってチップの最適な周波数と電圧に遷移するだけでなく、周波数と電圧の上限に余裕がある場合は、より高い周波数と電圧の組み合わせにステップアップすることができる。これによって、Bristol Ridgeでは、一定の電力枠の中で、製品の動作周波数を引き上げることが可能になった。
ライアビリティをトラックしてスペックのマージンを低減
Bristol Ridgeではライアビリティトラッキングと呼ぶ制御も行なっている。CMOS半導体は、電圧をかけすぎるとトランジスタが壊れ、電流量が多いと配線層にエレクトロマイグレーションが発生する。こうした欠損が発生するとチップは正常に動作できなくなるため、チップのスペックでは保守的にならざるを得ない。チップのオーバークロックが可能なのは、欠損の発生を考慮しなければ、電圧を上げることが可能だからだ。
しかし、製品としては、設定したライフタイムの間は正常に動作できるように、一定の欠陥レイト「Failures in Time (FIT)」を下回るように大きくマージンを取って設定している。これが、チップのスペックの足かせとなっているという。実際にはダイごとのばらつきもあり、スペックを引き上げる余裕のあるチップも存在する。そこで、AMDはライアビリティのトラッキングを動的に行なうことで、スペックのマージンを短縮。より高い性能でBristol Ridgeを稼働できるようにしたという。
スキン温度による制御やブート時の電圧キャリブレーション
ノートPCなどの場合、チップ温度が上がると、筐体を通した廃熱のために、PCの筐体温度が上がる。人体に接触するスキン部分の温度(Tskin)が上がり過ぎると不快感が生じるため、通常はスキン温度が上がり過ぎないようにチップ温度を制約している。しかし、実際にはPCをブートやウエイクアップしたばかりの状態では、筐体温度が低いためスキン温度が制約温度まで上がるには時間がかかる。
そこで、Bristol Ridgeでは、APUのパワーマネージメントプロセッサを使って、実際のスキン温度に即したバースト制御「STAPM (Skin Temperature Aware Power Management)」を行なう。筐体に設置したスキン温度センサーを使って、一定の制約温度まで上がるまでは、APUのCPUやGPUの周波数をバーストさせて性能を向上させる仕組みだ。
Bristol Ridgeでは、さらにAPUへの電力供給をモニタしてキャリブレートする「Boot time power supply calibration (BTC)」を行なう。これは、電圧レギュレータ(VRM)からの電力供給を正確にすることで、ロスを削る機能だ。VRMからの電圧は、最初にAPUがテストされてスピードビンが決められた時に設定される。しかし、実際のシステムでは、VRMもマザーボードも配線も、いずれも経年劣化などによって、実際に供給される電圧値が変動する可能性がある。Bristol Ridgeでは、ブート時にオンダイの電圧センサーが電圧を計測、それに合わせて電力供給を調節するという。
AMDは、このように、Carrizoのダイ(半導体本体)の設計に手を入れることなく、小さなテクニックを組み合わせることで、Bristol Ridgeでの性能アップを実現した。「同じトランジスタ、物理的には同じデバイスでも、1年のエンジニアリングをかけることで、まったく違うデバイスになった。だから我々は、これを第7世代APUと呼んでいる。一方、我々の競合は、新しいアーキテクチャを導入しても20%台しか性能を向上できない」とAMDのMacri氏は語る。