CPU뉴스소식

AMD Zen vs Zen 2 vs Zen 3 vs Zen 4 vs Zen 5 코어 아키텍처: Road to Ryzen 9000

AMD의 Zen 코어 아키텍처의 다섯 번째 반복은 이달 말에 출시될 예정입니다. Zen 5는 2017년 Zen 출시를 시작으로 Ryzen 프로세서의 거의 7년을 기념합니다. 그 이후로 Ryzen 2000, 3000, 5000 및 7000 시리즈 CPU의 중심에 Zen+, Zen 2, Zen 3 및 Zen 4가 있습니다. Ryzen 9000 라인업을 구동하는 Zen 5 코어는 프론트엔드 설계의 가장 큰 아키텍처 점검 으로, 그 어느 때보다 더 넓고, 빠르고, 효율적입니다. 다음은 Zen의 다섯 가지 반복을 살펴 보겠습니다.

AMD Zen vs Zen 2 vs Zen 3 vs Zen 4 vs Zen 5: CPU 프론트엔드

분기 예측기 및 I-Cache

맨 위에는 분기 예측기가 있어 배의 항해사처럼 명령어 흐름을 제어합니다.

if 조건
    {dosomething}
else
    {dosomethingelse}
  • 다음 명령어가 분기인지 여부와 그렇다면 어떤 종류(조건부/무조건부)를 예측합니다.
  • 분기는 일반적으로 “if/else” 조건부 또는 무조건(항상 분기)입니다.
  • 다음 단계는 명령어의 주소 (일반적으로 캐시에 있음)를 계산하는 것입니다.
  • 여기서 BTB( Branch Target Buffer )가 중요합니다. 여기에는 마지막 n 개의 분기 (취하거나 취하지 않음)와 명령어의 대상 주소 (PC)의 기록이 포함됩니다.
  • 분기 예측자를 사용하면 다음 명령의 위치가 생성되기 전에도 CPU가 계속 실행될 수 있습니다. 이를 비순차적 실행이라고 합니다.
가져오기/디코딩
  • Zen 코어 아키텍처는 3 레벨 BTB를 사용하는 Hash Perceptron 분기 예측자를 사용합니다.
    • Zen 및 Zen 2의 분기 예측기는 BTB 항목당 최대 2 개의 분기를 저장합니다.
    • L0 BTB는 4 개의 전방 분기와 4 개의 후방 분기를 보유합니다. L1 BTB에는 256 개의 항목이 있고 L2에는 4096개의 항목이 있습니다.
    • 간접 타겟에 대한 1024 개의 항목이 있는 간접 타겟 배열도 있습니다.
    • 64KB L1I 캐시는 8 엔트리 L0, 64 엔트리 L1 및 512 엔트리 L2 TLB와 쌍을 이룹니다.
  • Zen 2 는 L1 해시 퍼셉트론과 L2 TAGE 예측자를 사용합니다.
    • L0 BTB는 8 개의 전진 분기와 8 개의 후방 분기를 보유합니다. L1 BTB에는 512개의 항목이 있고 L2 BTB에는 7168 개의 항목이 있습니다.
    • ITA는 1024 개 항목으로 두 배가 됩니다.
    • L1I 캐시는 64개 항목 L1 및 512개 항목 L2 TLB가 있는 32KB입니다.
  • Zen 3 는 분기 예측 정확도와 대역폭을 개선하여 예측 오류 페널티를 줄입니다. 대부분의 taken 브랜치에는 0 버블 페널티가 있습니다(파이프라인을 중단하지 않음).
    • L1 BTB는 최대 1024개를 보유하고 L2 BTB는 최대 6.5K 항목을 보유합니다.
    • ITA는 50% 확장되어 1536 개 항목으로 확장됩니다.
  • Zen 4 는 사이클당 2 개의 분기를 사용할 수 있습니다.
    • L1 BTB는 최대 1536개를 수용할 수 있으며 L2 BTB에는 7168 개의 항목이 있습니다.
    • ITA는 약 3K 항목으로 확장됩니다.
  • Zen 5 는 최대 2 개의 테이크 브랜치와 2 개의 어헤드 브랜치를 수행할 수 있습니다.
    • L1I 캐시 크기는 변경되지 않지만 주기당 L2 캐시에서 최대 32B x2 (이전에는 32B)의 데이터를 가져올 수 있습니다.

디코더, 연산 캐시 및 연산 대기열

디코더는 명령어 대기열을 통해 명령어 캐시에서 명령어(복잡한)를 가져와 더 간단한 마이크로 연산으로 나눕니다. 이는 마이크로 연산 대기열로 전달되고 연산 캐시에도 저장됩니다. 마이크로 작업 큐에 있고 실행 백 엔드로 디스패치됩니다.

디코더는 전력 집약적이므로 연산 캐시를 보다 효율적이고 정확하게 만드는 것이 중요합니다. 연산 캐시에 캐시된 명령어를 사용하면 프런트 엔드가 디코더를 우회할 수 있어 처리량과 효율성이 향상됩니다.

  • Zen 코어는 사이클당 4개의 명령어를 디코딩할 수 있는 4개의 와이드 디코더를 사용합니다.
    • 20 x16B 명령어 대기열에 의해 공급되며 최대 4개의 명령어를 디코더로 보냅니다.
    • 연산 캐시에는 2048 개의 항목이 있으며 최대 8개의 마이크로 연산을 연산 대기열로 보낼 수 있습니다.
    • 마이크로 연산 대기열에는 72개의 항목이 있으며 연산 캐시 또는 디코더에서 8개 또는 4개의 마이크로 연산 을 가져옵니다.
    • 최대 6개의 마이크로 연산 이 정수/부동 소수점 백엔드로 디스패치됩니다.
  • Zen 2 는 연산 캐시의 크기를 4096 개 항목으로 두 배로 늘립니다.
  • Zen 3 은 명령 대기열을 24 x16B로 늘립니다.
  • Zen 4 는 연산 캐시 용량을 6.75K 항목으로 증가시켜 마이크로 연산 대기열에 최대 9개의 마이크로 연산 을 공급할 수 있습니다.
  • Zen 5 는 디코더를 과감하게 변경합니다.
    • 2x 4 와이드 디코더가 특징이며 각각 최대 4개의 마이크로 연산을 전송할 수 있습니다.
    • 디코더는 이중 포트 명령 가져오기에 의해 공급됩니다.
    • 마이크로 옵 캐시는 6K로 줄어들었지만 마이크로 옵 대기열에 최대 12개(6×2)의 마이크로 옵 스를 공급할 수 있습니다.
    • 디스패치는 8 와이드로 확장되어 실행 백엔드에 8개의 마이크로 작업을 보낼 수 있습니다.
    • SMT가 활성화되면 각 스레드는 하나의 4 와이드 디코더를 가져옵니다.
Zen 5 프런트 엔드

ROB, 스케줄러 및 레지스터

재주문 버퍼 또는 ROB는 비순차 프로세서의 중요한 구성 요소입니다. 명령어가 초기 주문에 따라 레지스터에 기록되도록 합니다. 프로그램 시퀀스에 따라 명령어와 피연산자를 보유하는 스케줄러에 공급합니다. 스케줄링된 명령어의 특정 세트에 대한 피연산자를 사용할 수 있게 되면, 실행을 위해 실행 유닛 으로 보내진다.

레지스터 이름 바꾸기 는 OoO 실행의 또 다른 중요한 부분입니다. 둘 이상의 명령어가 동일한 메모리 위치(레지스터)에 의존하지만 서로 독립적인 경우 프로세서는 논리 레지스터를 사용하여 다른 변형을 만듭니다. 이름이 바뀐 레지스터는 데이터 위험을 일으키지 않고 병렬로 실행됩니다.

젠 2에서 젠 3 CCD로
  • Zen 코어는 별도의 정수 및 부동 소수점 스케줄러/레지스터 및 실행 장치를 사용하여 ROB에 192 개의 항목을 보유할 수 있습니다.
    • FP 이름 바꾸기는 6 너비이고 정수 이름 바꾸기는 4 너비입니다.
    • 4x 14 엔트리 정수 및 2x 14 엔트리 AGU 스케줄러가 있습니다.
    • FP 스케줄링 대기열에는 96개의 항목이 있습니다.
    • 정수 레지스터 파일에는 168개의 항목이 있는 반면 부동 소수점 파일에는 160 개의 항목이 있습니다.
  • Zen 2 는 ROB 크기를 224 로 늘리고 부동 소수점 데이터 경로를 두 배로 늘립니다.
    • 4x 16 엔트리 정수와 1x 28 엔트리 AGU 스케줄러가 있습니다.
    • 정수 레지스터 파일이 180으로 증가했습니다.
    • FP 쪽에는 스케줄러 버퍼에 64개의 비 일정 항목과 36개의 항목이 있습니다.
  • Zen 3256 개의 항목이 있는 약간 더 넓은 ROB를 가지고 있습니다.
    • 4x 24 엔트리 정수+AGU 스케줄러.
    • FP 측에는 64개 항목 스케줄링과 2x 32개 항목 스케줄링 대기열이 있습니다.
    • 정수 레지스터 파일이 192로 증가합니다.
  • Zen 4 는 ROB 크기를 320으로 늘립니다.
    • 정수 레지스터 파일에는 224 개의 항목이 있는 반면 FP 측에는 192x 512비트 레지스터가 있습니다.
    • 68개 항목 AVX512 마스크 레지스터 파일도 있습니다.
  • Zen 5 는 ROB 크기를 448 개 항목으로 늘립니다.
    • FP 이름 바꾸기는 너비가 6이고 정수 이름 바꾸기는 너비가 8입니다.
    • FP 측에는 3x 32개 항목 스케줄러와 96개 항목 비예약 대기열이 있습니다.
    • 정수 레지스터 파일에는 240(64b) 항목이 있는 반면 FP 측에는 384(512b) 항목이 있습니다.
Zen 5 백엔드 INT Execte

실행 장치 및 메모리 하위 시스템

실행 단위는 프로그램 순서에 따라 다양한 산술, 부동 소수점, 주소 생성, 로드 저장소 또는 분기 관련 계산을 수행하여 최종 결과를 얻습니다. 최신 CPU 코어는 FADD, FMUL, FMA, ALU, AGU, LD/ST 등과 같은 특정 명령어에 특화된 여러 개의 독립적인 실행 경로를 갖추고 있습니다. 얻은 결과는 레지스터에 기록되거나 폐기 큐로 리디렉션됩니다.

Zen 4 백엔드
  • Zen 코어에는 10개의 실행 포트가 있습니다.
    • 정수 측에는 4x ALU2x AGU 포트가 있습니다.
    • FP 측에는 FMUL/FMA 2개, FADD 실행 장치(128비트) 2개가 있습니다.
    • 로드 버퍼에는 72개의 항목이 있고 저장 버퍼에는 44개의 항목이 있습니다.
    • Zen은 2x 128비트 로드와 1x 32B 스토어가 가능합니다.
    • 32KB 8방향 데이터 캐시와 512KB L2 캐시로 지원됩니다.
  • Zen 2 에는 11개의 실행 포트가 있습니다.
    • 정수 측에는 4x ALU3x AGU 포트가 있습니다.
    • FP 측에는 FMA 2개 , FADD 2개 (256비트)가 있습니다.
    • 48개의 항목이 있는 저장 대기열이 있습니다.
    • 로드/저장 대역폭이 사이클당 256비트 로 증가합니다.
  • Zen 3 에는 14개의 실행 포트가 있습니다.
    • 정수 측에는 4x ALU, 3x AGU1x 분기 실행 단위가 있습니다.
    • FP 측에는 FMA 2개, FADD 2개, 스토어 유닛 2개가 있습니다.
    • 저장소 큐에는 64개의 항목이 있고 로드 큐에는 116개의 항목이 있습니다.
    • 로드 대역폭은 최대 3x 64비트 (또는 2x 256비트)이며 2x 64비트 (또는 1x 256비트)로 저장됩니다.
  • Zen 4 는 14개 너비의 실행 백엔드를 유지합니다.
    • Zen 4는 256비트 와이드 부동 소수점 장치를 이중 펌핑하여 AVX512 명령을 수행할 수 있습니다.
    • L2 캐시가 1MB 8방향으로 증가합니다.
  • Zen 5 에는 16 개의 실행 포트가 있습니다.
    • 정수 실행은 6개의 ALU 포트와 4개의 AGU 포트로 구성됩니다.
    • FP 측에는 FMUL 2개, FADD 2개intD/StD 실행 포트 2개가 있습니다.
    • Zen 5는 512b 데이터 경로를 사용하여 기본 AVX512 실행을 지원합니다.
    • 사이클당 4개의 64비트 또는 2개의 2x 256비트 저장소와 2개의 128비트/256비트 또는 1개의 512비트 저장소가 가능합니다.
    • 또한 L1 데이터 캐시를 48KB 12방향으로 늘리고 주기당 4개의 읽기 및 2개의 쓰기를 제공합니다.
    • L1에서 L2/FP로의 대역폭은 사이클당 64바이트 로 두 배가 되었습니다.
Zen 5 백엔드 FP 실행

AMD Zen 1 vs Zen 2 vs Zen 3 vs Zen 4 vs Zen 5: 프론트 엔드 요약

젠 2젠 3젠 4젠 5
L1I 캐시64KB32KB32KB32KB32KB
ITLB 항목64 L1/512 L264 L1/512 L264 L1/512 L264 L1/512 L264 L1/512 L2
BTB 항목256 L1/4K L2512 L1/7K L21024년 L1/6.5K L21536년 L1/7K L2?
지시 Q20배 16B20배 16B24배 16B24배 16B?
디코더 너비4-와이드4-와이드4-와이드4-와이드2x 4-와이드
Micro-op Cache 항목2케이4케이4케이6.75케이6케이
연산 캐시 bw (uops)88892륜 6
디스패치(uops)66668

AMD Zen 1 vs Zen 2 vs Zen 3 vs Zen 4 vs Zen 5: 백엔드 요약

젠 2젠 3젠 4젠 5
ROB 항목192224256320448
INT 스케줄러6x 14 엔트리4x 16 엔트리(1x 28 엔트리 AGU)4×24 엔트리4×24 엔트리88 엔트리(56 AGU)
FP 스케줄러96 항목36 항목2x 32 엔트리2x 32 엔트리3x 32 엔트리
INT 레지스터168 항목180 엔트리192 항목224 항목 240 엔트리
FP 레지스터160 엔트리160 엔트리160 엔트리192x 512비트(68 512B 마스크)384x 512비트
ALU 포트444 (+1 BR)4 (+1 BR)6
AGU 포트23334
FP 포트4 (128b) 4 (256b)44 (+2 F2I)4 (+2 표준 IntD)
LD/ST Q72/44 엔트리72/48 엔트리116/64 엔트리136/64 엔트리?
LD/ST 흑백32B/2x 128b2x 256B256B/256B 2개256B/256B 2개512B/512B 2개
좌1D32KB32KB32KB32KB48KB
패2512KB512KB512KB1 메가바이트1 메가바이트

추가 참고 자료:

Intel Golden Cove 대 Raptor Cove 대 Redwood Cove 대 Lion Cove: Intel의 P-Core 아키텍처 비교

Areej

Processors, PC gaming, and the past. I have been writing about computer hardware for over seven years with more than 5000 published articles. Started off during engineering college and haven't stopped since. Find me at HardwareTimes and PC Opset.
Back to top button