AMDのPC向け新CPU「Ryzen」が搭載する新アーキテクチャー「Zen」とはいかなるものなのか。前回に続いて、内部構造を解説する。今回は、省電力に関する詳細だ。
図1は、Zenと競合CPUとの回路規模を比較したものである。図中の「Competitor A」は、米インテルの第6世代Coreプロセッサー(開発コード名はSkylake)だとみられる。比較は4個のコア+共有3次キャッシュである。
ZenのコアはSkylakeより小さい
製造プロセスそのものは、インテルの14nmに対して、AMDは米グローバルファウンドリーズの14nmで一見同じに見えるが、CPP(コンタクテッド・ポリ・ピッチ)とフィンピッチはインテル製コアの方が小さくなっている。そもそも昨今は「14nmプロセス」といっても、実際には14nmの寸法の場所は無かったりする。その代わりにCPPとフィンピッチ、あるいはゲートピッチなどを使って「何nm相当なのか」を計算する。
実際に計算してみると、グローバルファウンドリーズは14nm相当になるが、インテルのコアは12nmあたりになる。つまり同じトランジスター数ならSkylakeの方がエリアサイズを小さくできる。ところが実際には4コア+3次キャッシュの合計面積は44平方mm対49平方mmで、Zenの方がコンパクトである。
2次キャッシュと3次キャッシュのエリア面積も出ているから、ここからCPUコア1個当たりの面積を算出すると、Zenが5.5平方mmなのに対し、Skylakeは約6.6平方mmに達する。この理由の一つは1回目に説明した通り、AVX512をサポートしないことがある。
演算器や内部のAVXレジスター、さらにはロード/ストアユニットなどを節約することが可能になり、その分サイズを節約できたわけだ。ただ、これだけでは説明には十分ではない。2次キャッシュ/3次キャッシュともにZenの方がSkylakeより高密度を実現している。プロセスルール的にはやや不利なのに、同等の機能をより少ない面積で達成していると言うのは、その分構造を工夫した、ということになる。
省電力、コンパクトにするためのキャッシュの実装
では、その2次キャッシュ/3次キャッシュはどうなっているのだろうか(図2、図3)。Zenでは1次キャッシュや2次キャッシュはインクルーシブ(同じデータが両方に保存されている)、2次/3次はエクスクルーシブ(同じデータが両方に載らないように制御される)の構成になっている。2次キャッシュが512KBと大きいので、インクルーシブ構成にすると4コアで最大2MB分が無駄(2次と3次で同じデータを保持する)になるのを避けたかったと言うこともあるのだろう。ただその分制御がやや複雑化している。