Skip to content

기글하드웨어기글하드웨어

컴퓨터 / 하드웨어 : 컴퓨터와 하드웨어, 주변기기에 관련된 이야기, 소식, 테스트, 정보를 올리는 게시판입니다.

Extra Form
참고/링크 https://pc.watch.impress.co.jp/docs/colu...92135.html

젠 2 아키텍처의 확장 포인트

 

1.png

 

2017년의 젠에서 IPC를 최대 15% 높인 젠 2

 

AMD의 새로운 CPU 마이크로 아키텍처 젠2는 기존의 젠/젠+보다 성능을 크게 끌어올렸습니다. 성능 향상에서 가장 중요한  부분은 두 가지, 하나는 SIMD (Single Instruction, Multiple Data) 연산 유닛을 128-bit에서 256-bit로 확장해 부동소수점 연산 성능을 두배로 늘린 것입니다. 다른 하나는 명령의 실행 효율을 높여 젠보다 IPC (Instruction-per-Clock)을 최대 15% 높였습니다. 한마디로 부동 소수점 연산은 2배 빠르고, 정수 연산 클럭이 15% 올라간 게 젠2입니다.

 

2.png

 

젠 2의 블록 다이어그램. 빨간색 별을 붙인 게 젠2에서 확장된 부분입니다. 

 

3.png 

 

젠의 블럭 다이어그램

 

4.png

 

부동소수점 연산 유닛이 128비트에서 256비트로 확장되고, 로드/스토어 파이프라인이 2개에서 3개가 됐습니다. 분기 예측에는 TAGE라는 예측 유닛이 추가됐습니다. 이 밖에 L1 캐시와 OP 캐시의 크기도 바뀌어 큐와 레지스터도 확장됐습니다. 로드/스토어 확장은 부동 소수점 파이프의 확장과 연동되기에, 가장 큰 특징은 분기 예측과 SIMD 파이프 확장입니다. 

 

5.png

 

SIMD 파이프는 128비트에서 256비트로 SIMD 폭이 두배로 늘어났으니 이해가 쉽습니다. 이에 비해 분기 예측의 확장은 약간 복잡합니다. 젠2의 싱글스레드 성능 향상에서 상당한 부분은 분기 예측 기능 강화에서 비롯됐습니다. 그리고 CPU 기능 확장에선 분기 예측이 더 강한 존재감을 지닙니다. 왜냐면 TAGE는 현재 최강의 분기 예측이라 평가받고 있어서입니다.

 

6.png

 

분기 예측 정확도의 향상은 고성능 CPU에서 아주 중요합니다. 성능 향상 뿐만 아니라 분기 예측 실수 때분에 불필요한 투기적 실행이 생길 가능성이 줄어들어서입니다. 정밀도 향상에 따른 절전 효과는 분기 예측 기구의 하드웨어가 커지면서 어느 정도 상쇄되지만, 그래도 전력 사용이 개선되리라 기대됩니다. 

 

7.png

 

 

젠 2의 프론트 엔드 아키텍처

 

CPU는 명령을 캡쳐하고 디코딩하는 프론트 엔드, 명령을 실행하고 데이터에 액세스하는 백엔드로 나뉩니다. 젠 2 마이크로 아키텍처의 프런트 엔드를 젠과 비교하면 무엇이 달라졌는지 보입니다. 

 

8.png

 

젠 2와 젠의 프론트 엔드 비교

 

프론트 엔드의 기본 구성은 분기 예측을 제외하면 젠과 젠 2가 크게 다르지 않습니다. 명령어 캐시는 x86 명령어를 캐시하는 L1 명령 캐시와 디코딩된 내부 명령, 마이크로 오퍼레이션(Micro-OP)을 캐시하는 OP 캐시 2개로 나뉩니다. 그러나 L1 명령 캐시는 젠이 64KB인데 젠2는 32KB로 줄었습니다. 대신 OP 캐시는 기존의 2K Micro-OPs에서 4K Micro-OPs로 두 배가 됐습니다. OP 캐시에는 내부 명령을 최대 4,000개 저장합니다.

 

9.png

 

젠 프론트엔드 아키텍처 확장

 

AMD는 젠을 연구해, 다이 면적을 어떤 장치에 얼마나 할당하는지 그 균형을 찾았다고 설명합니다. 그 결과 OP 캐시와 분기 예측에 더 많은 트랜지스터를 쓰기로 결정했다네요. L1 명령 캐시의 크기를 줄여 그만큼 OP 캐시와 분기 예측 면적을 늘리는 게, 동일 면적에서 성능을 높이는 판단이라는 이야기입니다. L1 명령 캐시는 절반으로 줄었으나 대신 4웨이에서 8웨이로 확장했습니다. 

 

10.png

 

캐시 구성이 바뀌어 Translation Lookaside Buffer(TLB)도 확장

 

L1 명령 캐시에서 명령어 인출도 기본 구조는 변하지 않았습니다. L2 캐시에서 L1 명령 캐시의 명령 프리 페치가 개량됐습니다. 이 프리페치의 개선은 프리페치 알고리즘의 개선뿐만 아니라, 분기 예측 정확도가 커진 점도 크다고 합니다. 명령을 인출을 더 정확하게 예측하면서 명령 인출 효율성도 오른 셈입니다. Translation Lookaside Buffer(TLB)도 기본적으로 바뀌지 않고, L1 TLB가 64개 항목에 모든 크기의 페이지를 지원하며, L2 TLB는 명령이 512개 항목에 1G 페이지는 지원하지 않습니다.

 


명령 디코드는 젠과 같음

 

명령 디코더는 4웨이에 최대 4개의 x86/x64 명령을 디코딩합니다. x86/x64 명령은 CISC(Complex Instruction Set Computer) 계열 명령이기에 하나의 명령에 여러 작업이 포함된 경우도 많습니다. 그러나 젠을 비롯한 고성능 x86 CPU의 내부 파이프 라인은 아웃 오브 오더 실행이라 CISC의 복합 명령으로는 효율적으로 실행하지 못합니다. 

 

그래서 x86/x64의 고성능 CPU는 CISC의 복합 명령어를 간단한 RISC (Reduced Instruction Set Computer) 내부 명령으로 변환해 실행합니다. 일반적으로 CPU 내부 명령은 마이크로 오퍼레이션(Micro Operation)을 줄여서 Micro-OP(마이크로 OP)라고 하며, uOP라고 표기하기도 합니다.

 

11.png


명령어 인출 / 분기 예측 파이프 라인

 

12.png

 

젠 2 명령 디코드 파이프 라인

 

하지만 현재의 고성능 x86/x64 계열 CPU는 단순히 x86/x64 계열 명령을 Micro-OP로 변환하지 않습니다. x86/x64 계열 명령을 일단 CISC인 내부의 복합 작업 명을으로 변환하고, 백 엔드 디스패치 스테이지에서 단일 작업의 내부 명령으로 다시 변환합니다. 이것은 명령을 쉽게 처리하기 위한 것으로, CPU의 인 오더 부분에서 복합형 Micro-OP를 관리해 실제로 작업을 발행하는 아웃 오브 오더 부분에서 간단한 작업의 Micro-OP로 분해합니다. 

 

그리고 복합형 Micro-OP를 어느 정도의 크기로 다루는지는 CPU마다 크게 다릅니다. 같은 AMD CPU라 해도 젠 계열과 이전 세대가 크게 다릅니다. 또 각 단계의 이름도 다릅니다. AMD CPU조차 말이죠. AMD는 불도저 세대의 아키텍처까지는 복합형 Micro-OP를 매크로 OP(Macro-OP), 간단한 OP를 마이크로 OP(Micro-OP)라 불러 구분했습니다. 그런데 젠에선 이 두가지 내부 명령이 모두 Micro-OP며 이름으로 구분짓지도 않습니다.

 

더 까다로운 건 젠 소프트웨어 최적화 가이드에서 복합형 Micro-OP를 Instruction(명령)이라 설명하면서, x86/x64 명령과 구분이 어려워졌습니다. AMD의 젠 2 슬라이드에서도 복합형 Micro-OP는 명령(Instruction)이라고 씁니다. 또 복합형 Micro-OP의 명령 퓨전은 융합 명령(Fused Instruction)이라 불러 알기가 더욱 어렵습니다.

 

13.png

 

AMD로는 불도저 시대까지의 Micro-OP와 젠의 명령어는 작업의 크기가 다르기에 이를 구분하고자 이렇게 한 것으로 보입니다. 그러나 그 명령어를 저장하는 캐시는 OP 캐시, 발송 큐는 Micro-OP Queue니 이름이 통일되지 않습니다. 정리하면 젠에서는 x86/x64 명령 → Instruction(명령) → Fused Instruction(융합 명령) → Micro-OP 마이크로 OP)의 순서대로 명령을 변환합니다.

 


거의 1대 1로 변환되는 젠 2의 명령 디코더


L1 명령 캐시는 앞서 설명한대로 젠2가 32KB, 32바이트/사이클로 명령어를 인출합니다. 명령어 인출은 16바이트 바운더리를 지원합니다.  x86/x64 명령 큐는 Instruction Byte Queue로, 여기에서 4개의 x86/x64 명령을 선택해 명령 디코더로 보냅니다.

 

AMD는 젠 세대의 CPU의 명령 디코드 구조를 크게 바꿨습니다. 젠 계통에서 x86/x64 명령은 거의 1대 1로 섞인 명령어로 변환됩니다. 그 전의 불도저 계열에선 2개의 Macro-OP(젠의 Instruction에 해당)로 변환됐으나, 젠은 1개의 명령어로 변환됐습니다. CISC의 이미지가 더 강합니다. 젠 이전의 AMD CPU는 디코딩된 2개의 복합형 Micro-OP 디스패치를 2~4개의 Micro-OP로 변환하는 패스트 패스 더블(Fast-Path Double)처리를 했지만, 젠은 디코딩 후에도 1개의 복합형 멸령어가 남습니다. 

 

명령 디코더는 4개의 x86/x64 명령을 1사이클마다 디코딩해 4개의 명령어/사이클 디코더로 출력합니다. 명령 디코드 시점에서는 마이크로 코드 명령은 실제로 해독하지 않고, 마이크로 코드 ROM의 주소를 저장하는 명령어로 변환합니다. 명령 디코더에서 변환된 명령은 발송 큐인 Micro-OP Queue로 보냅니다.

 

디코딩된 명령어는 내부 명령어 캐시인 OP 캐시에 저장됩니다. OP 캐시의 목적은 복잡하고 전력 소비가 많은 x86/x64 명령의 디코딩을 우회해 성능을 높이고 전력 사용량을 낮추는 것입니다. 젠 2는 OP 캐시의 양을 2K에서 4K로 늘려 캐시 적중률을 높였습니다.

 

14.png

 

복잡하기 짝이 없는 x86/x64 명령 포맷

 

x86/x64 명령은 명령 디코드가 설계에 가장 큰 장애물입니다. x86/x64가 CISC(Complex Instruction Set Computer) 형 명령이고, 오랫동안 명령을 확장해 매우 복잡한 명령 세트 아키텍처(ISA : Instruction Set Architecture)가 됐기 때문입니다. 특히 명령 앞에 붙이는 접두사가 문제이며, 이 때문에 명령 디코드가 어렵습니다. 긴 명령의 경우 15바이트까지 나옵니다.

 

x86/x64 명령은 어디서부터 어디까지 명령인지 구분이 어렵습니다. 명령 길이가 정해진 RISC (Reduced Instruction Set Computer) 계열 CPU는 특정 길이마다 명령이 구분되니, 명령을 구분해 자르기가 쉽습니다. 그런데 x86/x64는 명령 길이의 변화가 너무 복잡하기에 쉽게 자르기가 어렵습니다.

 

x86/x64 명령 CPU는 명령 디코드 로직이 복잡해지고, 디코딩 영역에서 전력 소비량이 커지며, 디코딩 대기 시간이 늘어납니다. 이런 문제 때문에 현재의 고성능 x86/x64 CPU는 디코딩된 내부 명령어를 미리 캐시해 둡니다. AMD는 젠에서야 이 기능을 탑재했습니다.

 

OP 캐시의 장점은 크게 세가지입니다. 

1. 복잡한 x86/x64 명령어 디코더를 생략해 전력 효율 향상

2. 디코딩 단계를 건너 뛰면서, 명령어 인출/파견/쓰기까지의 파이프라인 지연 시간을 줄임

3. 명령 디코더의 출력 대역은 1사이클당 4 명령이나, OP 캐시는 8명령으로 대역폭이 2배

 

15.png

 

OP 캐시의 효용

 

젠은 x86/x64 명령어를 저장하는 L1 명령 캐시와 디코딩된 명령을 저장하는 OP 캐시를 따로 분리합니다. L1 명령 캐시와 OP 캐시는 각각 전용 태그인 Micro-Tag가 있으며, 이 태그가 L1 캐시 액세스, OP 캐시 적중 여부를 판정합니다. 

 

젠의 OP 캐시는 두 가지 모드가 있습니다. Instruction Cache Mode (IC mode)와 OP Cache Mode (OC mode)인데, 태그 액세스의 차이로 추측됩니다. 기본적으로 IC 모드에서 OC 모드로의 전환에 씁니다. 이 OC 모드는 오버클럭 모드가 아닙니다. OP 캐시와 L1 명령 캐시는 포괄적 관계가 아니라, 명령 캐시에서 삭제된 데이터도 OP 캐시에 남아있을 수 있습니다.

 

 

1사이클에 8 명령어를 판독하는 광대역 OP 캐시


젠 2 OP 캐시는 최대 4000개의 명령어를 저장합니다. 1세대 젠의 2배입니다. 명령어가 32바이트 길이라고 가정하면 약 16KB의 용량입니다. L1 명령 캐시가 32KB니까 절반이라고 볼 수 있으나, L1 명령 캐시는 x86/x64 명령이니 단순 비교는 어렵습니다.

 

젠의 OP 캐시 라인은 8 명령/라인으로 명령 디코더 출력의 2배입니다. 젠 2도 마찬가지입니다. OP 캐시는 추적 캐시(Trace Cache) 대신 추적 빌드를 수행하며, 분기 경로를 포함하지 않고 주소 기반으로 실행합니다. 4K 명령어는 최대치입니다.

 

16.png

 

젠 2의 명령 디코드 라인

 

젠은 명령어 중 64비트 명령으로 즉 (immediates) 처리나 치환(displacements)을 갖는 명령은 2개의 슬롯을 사용합니다. 또 마이크로 코드 명령도 2슬롯을 차지합니다. 젠 2에서도 변하지 않았으리라 추측됩니다. 기본 명령 길이는 짧게 유지합니다. 

 

 

OP 캐시의 출력은 최대 8 명령/사이클, 즉 하나의 캐시 라인에 해당되는 명령을 1 사이클 동안 판독합니다. OP 캐시로부터 읽어낸 명령은 명령 디코더를 무시하고 발송 큐인 Micro-OP Queue로 보냅니다. 즉 Micro-OP 큐는 8개의 명령을 읽어낼 대역폭을 갖춘 셈입니다. 일반적으로 디코더에서 명령어를 읽을 땐 그 절반만 사용합니다. x86/x64 CPU에서는 항상 4명령/사이클로 디코딩하진 못하기에, OP 캐시에서 8 명령/사이클의 페치 큐를 채우도록 도와줍니다.

 

17.png

 

젠 2 명령 디코딩의 설계 방향

 

젠 계열 CPU의 프론트 엔드는 의존성이 있는 2개의 명령을 1개의 명령에 융합하는 명령 퓨전을 지원합니다. 테스트/비교 계열의 명령과 점프 명령을 합친 브런치 퓨전(Branch Fusion)입니다. 인텔 CPU도 비슷한 기능은 있으나 구형 방식이 다릅니다. 인텔은 명령 디코더에서 분기 퓨전처럼 x86 명령을 퓨전하고, 명령 디코딩 대역을 높입니다.

 

그러나 젠 계열 아키텍처는 퓨전을 디코딩 단계에서 하지 않습니다. 1세대 젠은 명령 퓨전을 Micro-OP Queue에서 발송/퓨전했습니다. 이번했다. 이번 젠 2는 OP 캐시 퓨전을 합니다. 젠2는 OP 캐시와 파견에 각각 명령 퓨전 기능이 있는지, OP 캐시에만 있는지는 아직 모릅니다.

 

젠 아키텍처는 1개로 유합된 명령 디스패치에서 1개의 마이크로 OP로 변환해 발송합니다. 따라서 Micro-OP 디스패치 대역을 높일 수 있습니다. 젠 계열 아키텍처는 분기 퓨전 디코딩 후 내부 명령의 융합으로 아웃 오브 오더 부분의 내부 명령 수를 줄이고 내부 처리량을 높이는 게 목적입니다.

 

 

또한 명령어 파견 단 이전에 마이크로 코드 명령을 큐에서 선택, 마이크로 코드 롬으로 보냅니다. 불도저처럼 명령 디코드 단계에서 마이크로 코드 롬을 읽진 않습니다. 이것도 명령의 크기를 키우는 구조입니다.

 

젠 프론트 엔드는 명령 디코드 단계를 가능한 단순하게 만들고, 명령 부분에선 가능한 CISC 형태의 큰 단위으 명령어로 처리, 발송 전에 디코딩의 나머지 부분을 처리하는 방식으로 설계했습니다. 이 방법은 명령 디코더를 상대적으로 간소하게 유지하고, 대기열에 들어있는 사이클을 효율적으로 사용하여 프런트 엔드 전체의 파이프 라인을 효율적으로 사용합니다. 젠 2에서는 OP 캐시의 용량을 2배로 늘려 명령 디코드를 쓸 필요를 줄였습니다.

 

젠 2는 OP 캐시에서 명령 퓨전을 수행하며, 프론트 엔드의 대역을 끌어올려 디스패치 스테이지를 가볍게 만들었다고 할 수 있습니다. 즉, 프론트 엔드의 효율화를 진행한 젠에서 한발 더 나간 것이 젠 2입니다. 

 

18.png

 

젠 2 마이크로 아키텍처의 확장

 

19.png

 

전력 효율과 성능을 높인 젠 2

 

20.png

 

싱글 스레드 성능이 오른 젠 2

 

21.png

 

젠2에서 향상된 게임 성능   


TAG •

  • profile
    케닌      スナネコ🐱 2019.07.01 04:23
    맨 위에 있는 젠+랑 젠2 블록 다이어그램 이미지가 똑같아서 뭐지 싶었는데, pc.watch 에서 잘못 올려놨네요.
    https://pc.watch.impress.co.jp/video/pcw/docs/1192/135/p02.pdf
    이걸 보면 될듯 합니다.
  • ?
    포인트 팡팡! 2019.07.01 04:23
    케닌님 축하합니다.
    팡팡!에 당첨되어 5포인트를 보너스로 받으셨습니다.
  • ?
    마라톤 2019.07.01 12:43
    좋은 정보 감사합니다. ^_^
  • profile
    TundraMC      자타공인 암드사랑/GET AMD, GET MAD. Dam/컴푸어 카푸어 그냥푸어/니얼굴사... 2019.07.01 12:50
    젠4는 5웨이 디코더해주십쇼 충성충성
  • ?
    BOXU 2019.07.01 23:19
    암드뽕에 취한다.
  • ?
    포인트 팡팡! 2019.07.01 23:19
    BOXU님 축하합니다.
    팡팡!에 당첨되어 10포인트를 보너스로 받으셨습니다.

작성된지 4주일이 지난 글에는 새 코멘트를 달 수 없습니다.


  1. 등록된 글이 없습니다.
목록
Board Pagination Prev 1 ... 33 34 35 36 37 38 39 40 41 42 Next
/ 42

더함
한미마이크로닉스
MSI 코리아
AMD

공지사항        사이트 약관        개인정보취급방침       신고와 건의


기글하드웨어는 2006년 6월 28일에 개설된 컴퓨터, 하드웨어, 모바일, 스마트폰, 게임, 소프트웨어, 디지털 카메라 관련 뉴스와 정보, 사용기를 공유하는 커뮤니티 사이트입니다.
개인 정보 보호, 개인 및 단체의 권리 침해, 사이트 운영, 관리, 제휴와 광고 관련 문의는 이메일로 보내주세요. 관리자 이메일

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소