
인텔은 지난 10년 동안 4개의 성능(P) 코어를 출시했으며, 가장 최신의 제품은 몇 분기 전에 노트북 PC를 강타했습니다. Skylake는 2015년에 상륙한 후 몇 번의 리프레시와 Cannon Lake의 조기 출시로 인해 더 많은 리브랜딩이 이루어졌습니다. Ice Lake(Sunny Cove)는 2019년 2분기 에 한정 규모로 출시되었으며, 2021년 4분기에 Golden Cove 핵심 아키텍처를 특징으로 하는 Tiger Lake와 Alder Lake가 그 뒤를 이었습니다. Redwood Cove는 작년에 Meteor Lake와 함께 데뷔하여 Arrow Lake와 해당 Lion Cove 코어 아키텍처의 길을 열었습니다.
인텔 스카이레이크: 케이비 레이크, 커피 레이크, 위스키 레이크, 코멧 레이크
Skylake는 인텔에서 가장 많이 사용되는 코어 아키텍처로 6세대, 7세대, 8세대, 9세대 및 10세대 라인업을 지원합니다. 프런트 엔드의 맨 위부터 시작하여 32KB L1 명령 캐시와 BPU(Branch Prediction Unit)가 있습니다.
- 분기 예측 단위(Branch Prediction Unit )는 프로세서의 드라이버와 같아서 다음 명령어가 분기인지 여부와 어떤 종류(조건부/무조건부)인지 예측하여 명령어의 흐름을 제어합니다.
- 첫 번째 단계는 명령어가 분기인지 계산하는 것입니다. 그리고 만약 그렇다면, 그것을 취할 것인가? 다시 그렇다면 다음 명령어의 주소를 계산해야 합니다(일반적으로 L1I에서).
- 마지막 n개의 분기(yes 또는 no) 및 대상 주소(PC)의 기록은 BTB(Branch Target Buffer)에 저장됩니다. BTB는 실행 후 분기의 유효성을 검사하고 향후 분기를 사용할지 여부와 해당 주소를 결정하기 위한 지침으로 사용됩니다.
- CPU 캐시와 마찬가지로 BTB에는 여러 수준이 있으며 각 수준에는 분기 예측자가 있습니다.

프론트엔드
Skylake에는 128(L0) 및 4096(L1) 항목 분기 대상 버퍼가 있는 2단계 분기 예측이 있습니다. 더 큰 BTB는 확장된 프로그램 추적(PC)을 허용하여 정확도를 향상시킵니다. 최신 분기 예측 변수의 정확도는 90%가 훨씬 넘습니다.
- BPU에 의해 생성된 예측(PW)은 명령어 캐시(L1I) 및 마이크로 연산 캐시로 전송됩니다. L1I 캐시는 이러한 명령어를 명령어 가져오기/사전 디코딩 창, 명령어 대기열 및 디코더로 보냅니다.
- 디코더는 매크로 연산을 마이크로 연산으로 분해하여 마이크로 연산 대기열과 연산 캐시로 보냅니다.
- 마이크로 연산 캐시는 자주 사용되는 마이크로 연산을 저장하고 동일한 명령어가 다시 필요한 경우 디코더를 우회할 수 있습니다. 이를 통해 전력 효율성과 성능이 향상됩니다. 연산 캐시가 클수록 일반적으로 디코더 단계의 사용량이 줄어들어 파이프라인 속도가 빨라집니다.

Intel Skylake는 16바이트(주기당) 명령어 가져오기 와 50개 항목 명령어 대기열을 특징으로 하며, 긴 매크로 명령어를 (최대) 4개의 마이크로 명령어로 나눌 수 있는 3개의 단순 디코더와 1개의 복잡한 디코더로 구성된 4방향 디코더 가 있습니다. 마이크로 연산 캐시 는 1536개의 항목을 보유하며, 사이클당 최대 6개의 마이크로 연산이 있는 128개 항목(64×2) 마이크로 연산 대기열 에 공급됩니다.
- Allocation Queue는 Reorder Buffer부터 시작하여 코어 백엔드에 공급합니다.
- 재주문 버퍼 또는 ROB는 비순차 프로세서의 중요한 구성 요소입니다. 명령어가 초기 주문에 따라 레지스터에 기록되도록 합니다. 헤드 포인터와 테일 포인터가 있는 FIFO(Circular Queue)입니다.
- 레지스터 이름 바꾸기 는 OoO 실행의 또 다른 중요한 부분입니다. 둘 이상의 명령어가 동일한 메모리 위치(레지스터)에 의존하지만 서로 독립적인 경우 프로세서는 논리 레지스터를 사용하여 다른 변형을 만듭니다.

- 이렇게 이름이 바뀐 레지스터는 데이터 위험을 일으키지 않고 병렬로 실행됩니다.

- 이름을 바꿀 때, 명령어는 결과 레지스터의 이름이 되거나 결과 레지스터를 가리키는 ROB(Reorder Buffer)의 꼬리에 있는 엔트리에 할당됩니다. 명령어가 ROB의 헤드에 도달하면 해당 값이 정수/부동 소수점 레지스터 파일에 저장됩니다.
- 명령어에 필요한 모든 피연산자를 사용할 수 있으면(실행 준비가 되면) 해당 명령어가 예약 스테이션(통합 스케줄러)으로 전송됩니다.
- 스케줄러는 프로그램 시퀀스에 따라 명령어와 피연산자를 보유합니다. 피연산자를 사용할 수 없는 경우 RS는 Common Data Bus(EU를 ROB 및 RS에 연결)를 모니터링합니다. 피연산자를 사용할 수 있으면 RS에 의해 캐시되고 명령이 실행됩니다.
- 실행 후 지침은 예약 스테이션에서 제거되지만 재주문 버퍼에는 남아 있습니다.
- ROB의 헤드에 있는 명령어는 일단 실행되면 커밋 되므로 ROB와 해당 레지스터가 해제됩니다.
- Skylake는 또한 ROB 옆에 48개 항목 BOB(Branch Order Buffer) 를 제공합니다. 마지막으로 알려진 유효한 상태를 추적하고 잘못된 분기 후 파이프라인을 이전 상태로 복원하는 데 도움이 됩니다.
백엔드

Intel의 Skylake 코어는 할당 대기열에서 백엔드로 6개의 마이크로 작업을 디스패치하여 224개 항목 재주문 버퍼 와 예약 스테이션에 공급합니다. RS 또는 Unified Scheduler 는 97개의 항목을 보유할 수 있습니다. 레지스터 이름 바꾸기에 사용되는 물리 레지스터, 180 정수 및 168 부동 소수점 레지스터도 있습니다.
Skylake에는 4개의 실행 포트 와 6개의 로드/저장 포트가 있습니다. ALU 는 256비트이며 58개 항목 스케줄러가 있습니다. AGU 스케줄러에는 39개의 항목이 있으며 로드의 경우 64KB/s, 저장소의 경우 32KB/s의 대역폭이 있습니다. 로드/저장 대기열 에는 72/56 항목이 있습니다. L1 데이터 캐시는 32KB(8방향)이고 L2 캐시는 256KB(4방향)입니다.
인텔 써니 코브, 사이프러스 코브, 윌로우 코브: 얼음 호수, 로켓 호수, 호랑이 호수
Sunny Cove는 2019년 3분기에 출시된 인텔 최초의 10nm(FinFET) 코어 아키텍처입니다. 그리고 아니요, 우리는 캐논 레이크를 세지 않을 것입니다. 디스패치 창에서 ROB, 레지스터 및 스케줄러에 이르기까지 구식 코어 설계에 대한 균형 잡힌 업그레이드였습니다.
프론트엔드
- L0 BTB는 128에서 256으로 두 배가 되었고, L1 BTB는 4K에서 5K로 증가했습니다.
- 마이크로 연산 캐시가 1536개 항목에서 2304개 항목으로 확장되었습니다.
- 마이크로 옵 대기열이 128개 항목에서 140개 항목으로 증가했습니다.
- 디스패치 대역폭이 4마이크로옵스에서 5마이크로옵스로 증가했습니다.

백엔드
- 재정렬 버퍼가 224개 항목에서 352개 항목으로 확장되었습니다.
- 분기 순서 버퍼가 64개 항목에서 96개 항목으로 증가했습니다.
- 정수 레지스터는 180에서 280으로 증가했습니다. FP 등록 수는 168명에서 224명으로 증가했습니다.
- ALU 스케줄러가 58개에서 80개로 확장되었습니다.
- L1D는 32KB에서 48KB로, L2는 256KB(1.5K TLB)에서 1280KB(2K TLB)로 확장되었습니다.
- 두 개의 실행 포트는 더 넓은 FMA/ALU 단위(256비트-512비트)> 있습니다.
- AGU 스케줄러는 34 및 46(이전에는 39)으로 강화되었습니다.
- 데이터 저장/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 엔트리가 있는 세 번째 스테이지 L2 BTB 가 추가되었고, L1 BTB 는 5K에서 6K 엔트리로 증가했습니다.
- 명령어 가져오기 대역폭은 사이클당 16바이트에서 32바이트로 두 배로 증가했습니다.
- 디코더는 4방향에서 6방향으로 확장되었습니다.
- 마이크로 연산 캐시가 2304개 항목에서 4096개 항목으로 확장되었습니다.
- 마이크로 연산 캐시 대역폭 이 6 uops에서 8 uops로 증가했습니다.
- uop 대기열이 140에서 144로 증가했습니다.
- 디스패치 대역폭이 5uops에서 6uops로 증가했습니다.

백엔드
- 순서 변경 버퍼가 352개 항목에서 512개 항목으로 확장되었습니다.
- 분기 대상 버퍼는 96개 항목에서 128개 항목으로 증가했습니다.
- FP 레지스터 파일이 224개에서 332개로 증가했습니다.
- ALU 스케줄러는 80개 항목에서 97개 항목으로 확장되었으며 다섯 번째 실행 포트가 추가되었습니다.
- FADD 벡터 단위가 포트 1 및 5에 추가되었습니다.
- 로드/저장 스케줄러는 70/38 항목으로 통합되었습니다.
- 로드/저장 대기열 이 128/72에서 192/114 항목으로 확장되었습니다.
인텔 레드우드 코브: 메테오 레이크 “코어 울트라”
Redwood Cove는 Intel 4 프로세스 노드를 활용하고 Golden Cove 코어 아키텍처를 약간 수정합니다. 이를 “Tick”으로 생각할 수 있으며, 이는 마이크로아키텍처에 대한 최소한의 변경으로 노드가 축소되는 것입니다.
- I-Cache는 32KB에서 64KB로 증가했습니다.
- 마이크로 작전 대기열이 144개에서 192개로 증가했습니다.
- 명령 실행 대기 시간이 더 짧습니다.
- “더 스마트한” 프리페치 및 향상된 BPU.
- AMX 명령 지원.

인텔 라이온 코브 : 애로우 레이크, 달의 호수 “코어 울트라 200”
Lion Cove는 Arrow Lake “Core Ultra 200” 및 Lunar Lake “Core Ultra 200V” 프로세서를 구동하는 Intel의 곧 출시될 P-core 아키텍처입니다. TSMC의 3nm “N3B” 와 Intel 20A 프로세스 노드를 활용합니다. 인텔은 다음과 같은 아키텍처 업그레이드를 확인했습니다.
프론트엔드
8배 더 큰 예측 블록: 확실한 세부 사항을 공개하지 않고 Intel은 Lion Cove가 Golden 및 Redwood Cove보다 훨씬 더 큰 BPU를 특징으로 한다고 주장합니다. 이것은 아마도 더 큰 BTB를 의미할 수 있지만 얼마나 많습니까? 두고 봐야 할 것입니다.
더 넓은 가져오기, 디코딩 및 uop 캐시: Lion Cove는 페치 대역폭을 32KB에서 64KB로 두 배로 늘렸습니다. 명령어 디코더는 8 와이드(이전 6 와이드), uop 캐시는 12 와이드(이전 8) 또는 5.25K 항목(4096에서 증가), MSROM은 4 와이드(3에서 증가)입니다.
더 높은 연산 캐시 대역폭 및 대기열(ILQ): op-cache는 이제 192개 항목의 확장된 uop 대기열로 최대 12개의 uops(8개에서 증가)를 전송할 수 있습니다.

백엔드
더 넓은 할당, 사용 중지 및 재정렬: 이름 바꾸기/디스패치 버퍼가 8개의 명령어(6개에서 증가)를 포함하도록 확장되었으며 폐기 처리량은 주기당 8개에서 12개의 명령어로 증가했습니다. 이에 따라 재정렬 버퍼가 512개 항목에서 576개 항목으로 상향되었습니다.
Integer 및 Floating Point Execute : Lion Cove는 정수 및 부동 소수점 실행을 별도의 스케줄러 및 레지스터 파일로 분할합니다.
- 정수 측면에서 ALU, JMP 및 SHIFT 단위가 5->6, 2->3 및 2->3에서 증가했습니다. 두 개의 MUL 단위도 추가되었습니다(이전 1).
- 벡터 실행은 더 높은 처리량(256비트)과 더 낮은 레이턴시를 가진 4x 256비트 ALU(기존 3), 2x 256비트 FMA(4 사이클 지연) 및 2개의 FP 분배기(기존 1)로 구성됩니다.
- 전체 실행 포트 수가 12개에서 18개로 증가했습니다.

캐시 및 메모리 하위 시스템: 세 번째 STA AGU 장치는 2개의 저장 데이터 파이프를 사용하여 로드 AGU(각각 3개)와 동등한 STA 수를 제공합니다. 데이터 캐시 계층 구조가 3개 수준(이전 2)과 더 심층적인 TLD(96-128>페이지)로 수정되었습니다.
- L0 캐시는 4사이클 지연 시간으로 48KB를 압축하고, 9사이클 지연 시간을 가진 192KB L1, 17사이클 지연 시간을 가진 더 큰 3MB L2를 압축합니다.
- Redwood Cove는 두 번째 레벨 L2 캐시에 대해 훨씬 더 높은 16 사이클 대기 시간을 가졌으며 이는 Lion Cove의 3MB L2와 거의 같습니다.

Intel Skylake vs Sunny Cove vs Golden Cove vs Raptor Cove vs Redwood Cove vs Lion Cove: 핵심 아키텍처 요약
프론트엔드
프론트엔드 | 하늘호수 | 써니 코브 | 골든 코브/랩터 코브 | 레드우드 코브 | 라이온 코브 |
---|---|---|---|---|---|
I-캐시 | 32KB | 32KB | 32KB | 64KB | 64KB |
ITLB (영어) | 128 | 128 | 256 | 256? | 256? |
브랜치 타겟 버퍼 | 128/4케이 | 256/5케이 | 128/6케이/12케이 | ? | ? |
명령 가져 오기 B / w | 16 바이트 | 16 바이트 | 32 바이트 | 32 바이트 | 128 바이트 |
명령어 대기열 | 50 | 50 | 50 | 50? | ? |
해독기 | 4방향 | 4방향 | 6방향 | 6방향 | 8방향 |
Micro-op 캐시 | 1536 | 2304 | 4096 | 4096 | 5.25케이 |
Micro-op 캐시 흑백 | 6 | 6 | 8 | 8 | 12 |
Micro-op 대기열 너비 | 128 | 140 | 144 | 192 | 192 |
이름 바꾸기/디스패치 | 4 | 5 | 6 | 6 | 8 |
백엔드
백엔드 | 하늘호수 | 써니 코브 | 골든 코브/랩터 코브 | 레드우드 코브 | 라이온 코브 |
---|---|---|---|---|---|
버퍼 재정렬(Reorder Buffer) | 224 | 352 | 512 | 512 | 576 |
분기 순서 버퍼 | 64 | 96 | 128 | 128 | ? |
폐지 흑백 | 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 캐시 | 32KB | 48KB | 48KB | 48KB | 48KB/192KB |
디틀LB | 64 | 64 | 96 | 96 | 128 |
L2 캐시 | 256KB | 1280 킬로바이트 | 1280 킬로바이트 | 2 메가바이트 | 2.5MB/3MB |
L2 TLB | 1536 | 2048 | 2048 | ? | ? |
Willow 와 Raptor Cove 는 각각 Sunny와 Golden Cove의 새로 고침 이므로 L2 캐시가 증가하므로 생략됩니다.