第779回
Lunar LakeではEコアの「Skymont」でもAI処理を実行するようになった インテル CPUロードマップ
Skymontはフロントエンドを大幅に強化
Crestmontの構造を念頭に置いたうえでSkymontの説明であるが、設計目標が下の画像だ。
Vectorの性能を倍にする、というのはAI PC向けとしてNPUなりGPUなりを使わないアプリケーションがまだそれなりに存在しており、こうしたアプリケーションでAI処理を高速化するためのものだが、これまでであればこうした処理はPコアの仕事であって、EコアはAI「以外」を処理するという流れだったはずだ。
ところがLunar Lakeの場合は、そもそものコア数が少ないからAI処理を行なう際にはPコアとコア、両方をフルに使うという方向性に変わったらしい。
そのSkymontのフロントエンド。まずPrediction/Fetch Unitであるが、128Bytesを対象とするPredictionはCrestmontと変わらない。ただしParallel fetchが最大96 Instruction Bytesに強化された。
なぜフェッチのサイズが1.5倍になったか? と言えば、デコードが3命令×3に強化されたからだ。
もともとTremontの時からこの構造は実装されていた。ただしTremontは3命令のデコーダーが2という構造で、ハイパースレッディング有効時はこのそれぞれのスレッドに3命令のデコーダーが割り当てられ、ハイパースレッディング無効時は6命令のデコーダーとして動作する、という構造だった。
この仕組みをこの図に当てはめると、ハイパースレッディング有効時は3スレッドを同時に扱えるようになる。ハイパースレッディングを無効化したLion Coveとは逆に、Skymontではさらにハイパースレッディングの性能を強化したわけだ。
なせこのようなことになったのか? は、Lunar Lakeだけを見ていてもわからないし、おそらくこの後出てくるArrow LakeもEコアはハイパースレッディングを無効化していると思われるので無関係であろうが、間もなく出荷されるSierra Forestの後継となるClearwater ForestではこのSkymontコアをハイパースレッディングを有効化して搭載されると筆者は推定している。
Sierra Forestの話はいずれするが、Sierra Forestの2ダイ構成の物は288コアで576スレッドを同時に実行可能だった。これをコア数を変えずにSkymontに入れ替えた場合、864スレッドの同時実行が可能になる計算だ。おそらく今回のSkymontの大幅なフロントエンド強化は、Clearwater Forest以降のEコアベースXeonに向けた施策と思われる。
ちなみに上の画像に戻ると、各デコーダーは最大32のμOp Queueを持つ関係で合計の容量は64μOpから96μOpに増えた格好だが、それよりも特筆すべきはNanocodeである。
通常のデコードでは処理できない複雑な命令についてはMicrocodeを利用して処理するわけだが、Microcodeそのものは同時に1命令しか処理できなかった。
Skymontではこれを改良、クラスター(要するに3命令デコードとその前後のQueueを合わせた塊)単位で処理が並行してできるようになった。ハイパースレッディング有効時には、各スレッドごとに同時に1命令のMicrocodeを利用したデコードが可能で、無効時にはトータルで3命令のMicrocodeを利用したデコードが可能になるという計算だ。
週刊アスキーの最新情報を購読しよう
本記事はアフィリエイトプログラムによる収益を得ている場合があります