
Intelは過去10年間で4つのパフォーマンス(P)コアを出荷しており、最新のノートブックPCは数四半期前に発売されました。Skylakeは 2015年に上陸し、その後、いくつかのリフレッシュと時期尚早なCannon Lakeの発売により、さらに多くのブランドが変更されました。Ice Lake(Sunny Cove)は 2019年上半期 に(限定規模で)ローンチされ、続いてTiger LakeとAlder Lakeがリリースされ、 2021年第4四半期にはGolden Coveのコアアーキテクチャが特徴となっています。レッドウッドコーブは 昨年メテオレイクでデビューし、アローレイクとそれに対応するライオンコーブのコアアーキテクチャへの道を開きました。
Intel Skylake:Kaby Lake、Coffee Lake、Whiskey Lake、Comet Lake
Skylakeは、Intelの最も採用されているコアアーキテクチャであり 、第6世代、第7世代、第8世代、第9世代、および第10世代の ラインナップを支えています。フロントエンドの上部から始めて、32KBの L1 命令キャッシュとBranch Prediction Unit(BPU)があります。
- 分岐予測ユニットは 、プロセッサのドライバのようなもので、次の命令が分岐かどうか、どのような命令か(条件付き/無条件)を予測することで、命令の流れを制御します。
- 最初のステップは、命令が分岐であるかどうかを計算することです。そして、もしそうなら、それは取られますか?再び「はい」の場合は、次の命令のアドレスを計算する必要があります(通常はL1Iで)。
- 最後の n 個のブランチ (はいまたはいいえ) の履歴と宛先アドレス (PC) は、ブランチ ターゲット バッファー (BTB) に格納されます。BTB は、実行後にブランチを検証するため、および将来のブランチが取得されるかどうか、およびそれらのアドレスを決定するためのガイドとして使用されます。
- CPUキャッシュと同様に、BTBには複数のレベルがあり、それぞれに分岐予測子があります。

フロントエンド
Skylake には 2 段階の 分岐予測があり、128 (L0) と 4096 (L1) のエントリの分岐ターゲット バッファーがあります。 BTBが大きくなると 、拡張プログラムトラッキング(PC)が可能になり、精度が向上します。最新の分岐予測器の精度は90%をはるかに超えています。
- BPUによって生成された予測(PW)は、 命令キャッシュ(L1I) とマイクロオペキャッシュに送信されます。L1Iキャッシュは、これらの命令を命令フェッチ/プリデコードウィンドウ、命令キュー、およびデコーダに送信します。
- デコーダーは 、マクロ演算をマイクロ演算に分解し、マイクロ演算キューと演算キャッシュに送信します。
- マイクロ演算キャッシュには、 頻繁に使用されるマイクロ演算が格納され、同じ命令が再度必要になった場合にデコーダをバイパスできます。これにより、電力効率とパフォーマンスが向上します。通常、オペ キャッシュが大きいほど、デコーダー ステージの使用量が減り、パイプラインが高速化されます。

Intel Skylakeは、16バイト(サイクルあたり)の 命令フェッチ と50エントリの命令 キュー、それに続く3つの単純なデコーダと1つの複雑なデコーダで構成される4ウェイ デコーダ を備えており、長いマクロ命令を最大4つのマイクロ命令に分割できます。 マイクロ演算キャッシュ は 1536 個のエントリを保持し、128 エントリ (64×2) のマイクロ演算 キュー にサイクルあたり最大 6 個のマイクロ演算を供給します。
- Allocation Queue は 、Reorder Buffer から始まるコアバックエンドにフィードします。
- リオーダー バッファー (ROB) は、アウト オブ オーダー プロセッサの重要なコンポーネントです。これにより、命令が最初の順序に従ってレジスタに書き込まれるようになります。これは、ヘッド ポインターとテール ポインターを持つ循環キュー (FIFO) です。
- レジスタの名前変更 も OoO 実行の重要な部分です。2 つ以上の命令が同じメモリ位置 (レジスタ) に依存しているが、互いに独立している場合、プロセッサは論理レジスタを使用して、その異なるバリアントを作成します。

- これらの名前が変更されたレジスタは、データの危険を引き起こすことなく並列に実行されます。

- 名前を変更すると、命令にはリオーダー バッファー (ROB) の末尾にエントリが割り当てられ、これが結果レジスタの名前になるか、結果レジスタを指すようになります。命令がROBの先頭に到達すると、その値は整数/浮動小数点レジスタファイルに格納されます。
- 命令に必要なすべてのオペランドが使用可能である (実行準備ができている) 場合、その命令は予約ステーション (統合スケジューラ) に送信されます。
- スケジューラは 、プログラム シーケンスごとに命令とそのオペランドを保持します。オペランドが使用できない場合、RS は Common Data Bus (EU を ROB と RS に接続) を監視します。オペランドが使用可能な場合、オペランドは RS によってキャッシュされ、命令が実行されます。
- 実行後、指示は予約ステーションから削除されますが、リオーダーバッファには残ります。
- ROB の先頭にある命令は、実行されると コミット されるため、ROB とそのレジスタが解放されます。
- Skylakeは、ROBの隣に48エントリの Branch Order Buffer(BOB) も備えています。これは、最後の既知の有効な状態を追跡し、正しくない分岐の後にパイプラインを以前の状態に復元するのに役立ちます。
バックエンド

IntelのSkylakeコアは、割り当てキューからバックエンドに6つのマイクロオペレーションをディスパッチし、224エントリの リオーダーバッファ とリザベーションステーションに供給します。RS または Unified Scheduler は 97 個のエントリを保持できます。また、レジスタの名前変更に使用される物理レジスタ、180 整数レジスタ、および 168 浮動小数点レジスタもあります。
Skylake には 4 つの 実行ポート と 6 つのロード/ストア ポートがあります。 ALU は256ビットで、58エントリのスケジューラを備えています。AGU スケジューラには 39 のエントリがあり、帯域幅はロード用に 64 KB/秒、ストア用に 32 KB/秒です。 ロード/ストア キュー には 72/56 エントリが保持されます。 L1 データ キャッシュは 32 KB (8 ウェイ)、 L2 キャッシュは 256 KB (4 ウェイ) です。
インテルサニーコーブ、サイプレスコーブ、ウィローコーブ:アイスレイク、ロケットレイク、タイガーレイク
Sunny Coveは、2019年第3四半期にリリースされたIntel初の 10nm(FinFET) コアアーキテクチャです。そして、キャノン湖は数えません。これは、ディスパッチ ウィンドウから ROB、レジスタ、スケジューラまで、古いコア設計に対する包括的なアップグレードでした。
フロントエンド
- L0 BTBは128から256に倍増し、L1 BTBは4Kから5Kに増加しました。
- micro-op キャッシュは 1536 エントリから 2304 エントリに拡張されました。
- マイクロオペレーションのキューが128から140に増加しました。
- ディスパッチ帯域幅が 4 マイクロオペレーションから 5 マイクロオペレーションに増加しました。

バックエンド
- Reorder Buffer のエントリが 224 から 352 に拡張されました。
- ブランチオーダーバッファが64エントリから96エントリに増加しました。
- 整数レジスタが 180 から 280 に増加しました。FPレジスタの数は168から224に増加しました。
- ALUスケジューラが58から80に拡張されました。
- L1D は 32KB から 48KB に、L2 は 256KB (1.5K TLB) から 1280KB (2K TLB) に拡張されました。
- 2つの実行ポートは、256ビット>512ビットのより広いFMA/ALUユニットになりました。
- AGUスケジューラは、以前は39個から34個と46個に強化されました。
- Store Data/AGU ポートが 1/3 から 2/4 に増加しました。
- ロード/ストアのキューは72/56から128/72に増加しました。
- ロード/ストア の帯域幅 が 64KB/32KB から 128KB/64KB に倍増しました。
インテルゴールデンコーブ、ラプターコーブ:アルダーレイク、ラプターレイク
10nm ESFプロセスに基づくGolden Coveコアアーキテクチャは、2021年11月にAlder Lake-Sで導入されました。Sunny Coveがバックエンドに重点を置いているのに対し、Golden Coveはフロントエンドとブランチ予測器を広げました。
フロントエンド
- ITLB(Instruction TLB)は、128エントリから256エントリに倍増しました。
- 12Kエントリの第3ステージ L2 BTB が追加され、 L1 BTB は5Kエントリから6Kエントリに増加しました。
- 命令フェッチ帯域幅は、サイクルあたり 16 バイトから 32 バイトに倍増しました。
- デコーダーを4ウェイから6ウェイに広げました。
- micro-op キャッシュが 2304 エントリから 4096 エントリに拡張されました。
- マイクロオペレーションのキャッシュ 帯域幅 が6から8 uopsに増加しました。
- uop キューが 140 から 144 に増加しました。
- ディスパッチ帯域幅が 5 から 6 uops に増加しました。

バックエンド
- Reorder バッファが 352 エントリから 512 エントリに拡張されました。
- Branch Target Buffer のエントリは 96 から 128 に増加しました。
- FP レジスタ ファイルが 224 から 332 に増加しました。
- ALUスケジューラが80エントリから97エントリに拡張され、5番目の実行ポートが追加されました。
- FADD ベクトル ユニットがポート 1 と 5 に追加されました。
- ロード/ストア スケジューラは 70/38 エントリに統合されました。
- ロード/ストア キュー が128/72エントリから192/114エントリに拡張されました。
Intel Redwood Cove:流星湖「Core Ultra」
Redwood Coveは 、Intel 4 プロセスノードを活用し、Golden Coveコアアーキテクチャにわずかな変更を加えています。これは、マイクロアーキテクチャへの最小限の変更でノードが縮小する「ティック」と考えることができます。
- I-Cache は 32KB から 64KB に増加しました。
- マイクロオペレーションキューが144から192に増加しました。
- 命令実行のレイテンシが低くなります。
- 「よりスマートな」プリフェッチと改善されたBPU。
- AMX命令のサポート。

Intel Lion Cove:アローレイク、ルナレイク「Core Ultra 200」
Lion Coveは、Arrow Lakeの「Core Ultra 200」およびLunar Lakeの「Core Ultra 200V」プロセッサに搭載されるIntelの次期Pコアアーキテクチャです。TSMCの3nm 「N3B」 とIntel 20A プロセスノードを活用します。Intel では、以下のアーキテクチャのアップグレードを確認しています。
フロントエンド
8倍大きい予測ブロック: 確固たる詳細を明らかにすることなく、Intelは、Lion CoveはGolden CoveやRedwood Coveよりもはるかに大きなBPUを備えていると主張しています。これはおそらくBTBが大きいことを意味しますが、どのくらいですか?様子を見るしかないでしょう。
より広範なフェッチ、デコード、およびuopキャッシュ: Lion Coveは、フェッチ帯域幅を32KBから64KBに倍増させます。命令デコーダは8幅(以前は6幅)、uopキャッシュは12幅(以前は8)または5.25Kエントリ(4096から増加)、MSROMは4幅(以前は3)です。
より高いオペキャッシュ帯域幅とキュー (ILQ): op-cache は、最大 12 uop(8 から増加)を 192 エントリの拡張 uop キューに送信できるようになりました。

バックエンド
より広範な割り当て、廃止、および並べ替え: 名前変更/ディスパッチ バッファーが拡張され、8 命令 (6 命令から増加) を保持でき、リタイア スループットがサイクルあたり 8 命令から 12 命令に増加しました。これに伴い、リオーダーバッファは512エントリから576エントリに強化されました。
整数と浮動小数点の分離実行: Lion Coveは、整数と浮動小数点の実行を別々のスケジューラとレジスタファイルで分割します。
- 整数側では、ALU、JMP、およびSHIFTの単位が5->6、2->3、および2->3に増加しました。また、2つのMULユニットも追加されました(以前は1台)。
- ベクトル実行は、4x 256ビットALU(3個から増加)、2個256ビットFMA(4サイクルレイテンシ)、および2個のFP分周器(1から増加)で構成され、高スループット(256ビット)と低レイテンシを実現します。
- 全体の実行ポート数が 12 から 18 に増加しました。

キャッシュおよびメモリサブシステム: 3台目のSTA AGUユニットは、2つのストアデータパイプを備えたロードAGU(各3つ)と同等のSTAカウントを実現します。データ キャッシュ階層が改訂され、3 つのレベル (以前は 2) とより深い TLD (96 から >128 ページ) が追加されました。
- L0 キャッシュには 48KB のレイテンシが 4 サイクル、続いて 192KB の L1 が 9 サイクルのレイテンシ、3MB の大きな L2 が 17 サイクルのレイテンシでパックされています。
- Redwood Cove の 2 サイクルのレイテンシは、第 2 レベルの L2 キャッシュの 16 サイクルのレイテンシがはるかに高く、Lion Cove の 3MB の L2 とほぼ同じでした。

Intel Skylake vs Sunny Cove vs Golden Cove vs Raptor Cove vs Redwood Cove vs Lion Cove: コアアーキテクチャの概要
フロントエンド
フロントエンド | スカイレイク | サニーコーブ | ゴールデンコーブ/ラプターコーブ | レッドウッドコーブ | ライオンコーブ |
---|---|---|---|---|---|
Iキャッシュ | 32キロバイト | 32キロバイト | 32キロバイト | 64キロバイト | 64キロバイト |
ITLBの | 128 | 128 | 256 | 256? | 256? |
ブランチ ターゲット バッファ | 128/4K 閲覧数 | 256/5K 閲覧数 | 128/6K/12K | ? | ? |
命令フェッチ B/w | 16バイト | 16バイト | 32バイト | 32バイト | 128バイト |
命令キュー | 50 | 50 | 50 | 50? | ? |
デコーダ | 4ウェイ | 4ウェイ | 6ウェイ | 6ウェイ | 8ウェイ |
マイクロ演算キャッシュ | 1536 | 2304 | 4096 | 4096 | 5.25K 閲覧数 |
マイクロ演算キャッシュ B/w | 6 | 6 | 8 | 8 | 12 |
Micro-op キュー幅 | 128 | 140 | 144 | 192 | 192 |
名前の変更/ディスパッチ | 4 | 5 | 6 | 6 | 8 |
バックエンド
バックエンド | スカイレイク | サニーコーブ | ゴールデンコーブ/ラプターコーブ | レッドウッドコーブ | ライオンコーブ |
---|---|---|---|---|---|
バッファの並べ替え | 224 | 352 | 512 | 512 | 576 |
分岐順序バッファ | 64 | 96 | 128 | 128 | ? |
リタイア B/W | 4 | 5 | 8 | 8 | 12 |
Int Reg/FP Reg | 180/168 | 280/224 | 280/332 | 280/332 | ? |
EUスケジューラー | 58 | 80 | 97 | 97 | ? |
ロードスケジューラ | 39 (共有) | 23 | 70 | 70 | ? |
ストア スケジューラ | 39 (共有) | 23 + 34 SD | 38 | 38 | ? |
実行ポート | 4 | 4 | 5 | 5 | 10 |
データポートの保存 | 1 | 2 | 2 | 2 | 2 |
AGU のロード | 2 | 2 | 3 | 3 | 3 |
AGUを保管する | 1 | 2 | 2 | 2 | 3 |
ロードキュー | 72 | 128 | 192 | 192 | ? |
ストアキュー | 56 | 72 | 114 | 114 | ? |
ロード B/w | 64バイト | 128バイト | 96バイト | 128バイト | 128バイト |
ストア B/w | 32バイト | 64バイト | 64バイト | 64バイト | 64バイト? |
L1Dキャッシュ | 32キロバイト | 48キロバイト | 48キロバイト | 48キロバイト | 48 KB/192 KB |
DTLBの | 64 | 64 | 96 | 96 | 128 |
L2キャッシュ | 256キロバイト | 1280キロバイト | 1280キロバイト | 2メガバイト | 2.5 MB/3 MB |
L2 TLBの | 1536 | 2048 | 2048 | ? | ? |
Willow と Raptor Cove は、それぞれ Sunny と Golden Cove を リフレッシュ し、L2 キャッシュを増やしたものであるため、省略されています。