SkylakeのIDF発表
IDF2015でIntelからSkylakeのマイクロアーキテクチャについての解説がありました。日本語ではPCWatchで後藤氏が解説記事を出しています。
【後藤弘茂のWeekly海外ニュース】Intelの次世代マイクロアーキテクチャ「Skylake」 - PC Watch
まずLLCの配置ですが、私は理由が想像付かなかったのですが、後藤氏によると、
Skylakeのダイ(半導体本体)を見ると、CPUコアの周囲をぐるっとLL(Last Level)キャッシュSRAMが囲っている。通常のCPUコアレイアウトでは、見慣れないSRAMの配置だ。これは、CPUコアの熱を効率的に分散するための工夫だと見られる。
とのことで、なるほど感があります。
ついでに私もひとつ理由を思いついたのですが、現在のリングバスを2次元メッシュや2次元トーラスに拡張するのに上下方向の配線を通すのに使えそうですね。マルチソケットのSkylake Xeonはおそらく32コア程度まで拡張すると思われるので、リングは多重化してスヌープフィルタをいれても共有LLCでまともに性能の出せる限界を超えています。
フロントエンド
"Wider instruction supply with deeper buffers"となっています。L1I$帯域は16B/cycleのままなので、これはuOP$かLSBのことだと考えられますが、4wayから増えた証拠は見つけられていません。
"Faster prefetch"ですが、L2$, L3$からのフェッチ帯域は実測で増えているようなので、このことだと思われます。
スケジューラ
RSのエントリ数が60->97と鬼のように増えています。way数を増やすと3乗でリソース≒消費電力が増えますが、エントリ数は線形にしか影響しないのでエントリ数を増やすしか道がないのです。ただ、常に全力で埋めているわけではないのではないかと推測します。
これだけエントリ数が増えると演算器レイテンシ隠蔽のためのループアンローリングは完全に過去のものですね。まぁ今も大抵必要ないですが。
97あれば命令密度によってはL3ミスも隠蔽できそうです。L3帯域が増えたこととあわせて、AVX512になってL1/L2が相対的に不足しても力技でいけてしまうのではないかとも思えてきます。
FP Register Fileは増えていません。これはAVX512化の伏線と考えれば、データパスまるごと512bit化もあるかもしれません。期待しすぎですね。
"Better L2 cache miss bandwidth"ですが、シングルスレッドでも名目ピーク出るようになっている測定がでているようです。
"New instructions for better cache management" これなんでしたっけ???
"Wider retirement"ですが、"Wider instruction supply with deeper buffers"も含めてシングルスレッドでは使い切れない帯域があるのかもしれません。数値計算分野ではHTを使わずにシングルスレッドで最適化して演算器やキャッシュを使い切るというのが標準的なやり方な気がしますが、積極的にHTを使ったほうが性能を出せるケースも出てくるのかもしれません。