Skip to content

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

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

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

부동 소수점/SIMD, 로드/스토어를 확장

 

1.png

 

젠 2 마이크로 아키텍처
 

AMD는 젠 2에서 젠 마이크로 아키텍처를 대폭 수정했습니다. 명령을 실행하는 백엔드 부분에서 중요한 포인트는 두 가지입니다. 하나는 부동 소수점과 SIMD (Single Instruction, Multiple Data) 연산 파이프를 256-bit로 확장해 확장 부동 소수점 연산 처리량을 2배로 늘린 것입니다. 다른 하나는 메모리 액세스의 로드/스토어 파이프를 2개에서 3개로 확장해 로드/스토어의 효율을 최대화했습니다. 로드/스토어의 확장은 실질적으로 SIMD 파이프 확장이라고 봐도 되니, 백엔드의 확장은 SIMD 연산 처리량을 개선하기 위해서라고 봐도 되겠습니다. 

 

AMD는 정수 코어 대비 연산 파이프 수를 4개(그 이상으로 늘려도 의미가 크지 않음)로 하고, 아웃 오브 오더의 명령 윈도우는 192개에서 224개로, 물리 정수 레지스터는 168개에서 180개 로 확장했습니다. 젠 2는 SMT(Simultaneous Multithreading)니까 1스레드 당 명령 윈도우가 112개, 레지스터가 90가라는 계산이 나옵니다. SIMD와 로드/스토어를 확장한 대신 정수 연산의 아웃 오브 오더 명령어 처리 자원은 확장하지 않았습니다.

 

2.png

 

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

 

인텔의 아웃 오브 오더 윈도우는 10nm 공정의 서니 코브에서 352개까지 늘렸습니다. 인텔이 지나치게 많이 늘렸다는 견해도 있지요. 젠 2의 아웃 오브 오더 수준은 인텔 스카이레이크 정도입니다. 스카이레이크의 명령 윈도우는 224개, 정수 레지스터는 180개로 젠2와 일치합니다. AMD는 프론트 엔드를 확장해 실행 엔진의 명령 피드를 늘려, 더 많은 명령을 실행 엔진에 보냅니다. 지금의 백엔드 구성은 명령 피드에 맞는 구성이라고 보는 듯 합니다. 어쨌건 정수 연산 리소스의 확장은 인텔처럼 많이 하진 않았습니다.

 

3.png

 

인텔 서니 코브 아키텍처

 

4.png

 

인텔의 리소스 확장

 

5.png

 

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

 


아웃 오브 오더 윈도우는 스카이레이크보다 많음

 

젠 2의 아웃 오브 오더 부분을 보면 리타이어 큐(Retire Queue)는 224개로, 최대 224개의 내부 명령을 아웃 오브 오더 실행을 통해 내부에서 제어할 수 있습니다. 이게 클수록 더 많은 명령을 아웃 오브 오더로 실행해 클럭 당 성능을 높일 수 있습니다. 1세대 젠의 리타이어 큐는 192니까 리소스가 17% 늘어난 셈입니다. 젠은 SMT 아키텍처니까 2개의 스레드를 동시 실행하면 리타이어 큐는 각각 96/스레드가 됩니다.

 

리타이어 큐의 확장도 IPC 향상에 기여하지만, AMD는 리소스의 확장을 억제해 그 임팩트는 크지 않습니다. 인텔이 새로운 세대마다 인 오더 리소스를 크게 확장하는 것에 비하면 원만한 편입니다. 앞서 말한대로 젠2와 경쟁할 서니 코브 코어는 리 오더 버퍼가 352개로 젠2의 1.57배입니다. 

 

6.png

 

젠2와 젠의 백엔드 부분 비교


리타이어 큐에서 내부 명령은 리타이어 컨트롤 유닛(Retire Control Unit : RCU)에 맡겨진 아웃 오브 오더 부분에서 처리합니다. 여기서 헷갈리는 부분은 AMD가 프리젠테이션 슬라이드에 사이클마다 8개의 Micro-OP를 리타이어 처리한다고 쓴 반면, 젠 소프트웨어 최적화 가이드에선 8개의 Macro-OP를 리타이어 처리한다고 썼다는 점입니다. 최적화 가이드는 불도저 세대의 이름을 일부 혼용해 작성했는데, Macro-OP는 다수의 Micro-OP를 포함한 복합 명령입니다. 젠 2 슬라이드에서 복합형 명령은 Instruction이라고 표기합니다. 

 

원래 AMD 아키텍처는 레지스터 리네이밍이 정수 코어와 부동소수점/SIMD 코어로 분리돼 배치되고, 그 아래에 스케줄링 큐가 배치되는 복잡한 구조였습니다. 같은 x86/x64라 해도 인텔 CPU는 디코딩한 명령을 통합 스케줄러 Micro-OP로 분해해 리네이밍 물리 레지스터에 할당하고 아웃 오브 오더 큐에 파견합니다.

 

그러나 AMD는 디코더와 스케줄러 사이에서 배치를 수행합니다. AMD는 전통적으로 정수 코어와 FP/SIMD 코어로 CPU 내부를 나눴기에, 스케줄러도 2개의 코어마다 따로 진행했습니다. 코프로세서를 두는 듯한 방식이지요. 정수 파이프와 FP 파이프의 일관성은 두 코어 사이에 공유되는 리타이어 컨트롤 장치가 제어합니다. 

 

이 구성을 위해 AMD 아키텍처는 디스패치 단계에서 Micro-OPs로 분해가 필요합니다. 예를 들어 메모리 피연산자를 가진 FP 계열 명령은 FP 연산 Micro-OP와 로드 Micro-OP로 나눠, 각각 FP 코어와 정수 코어로 분리해 발송해야 합니다. 리타이어 유닛은 명령을 정리해 합쳐야 합니다. 분해된 Micro-OP 실행이 끝나면 복합형 명령으로 정리해서 리타이어 처리합니다. AMD는 디스패치 단계에서 Micro-OPs로 분리하지만, 같은 복합 명령에 속하는 Micro-OP로 묶어 트래킹합니다.

 

 

기본 구조는 그대로인 정수 코어


내부 명령 디스패처에서 정수 코어의 Micro-OPs 디스패치는 1 사이클마다 최대 6 Micro-OPs, FP 유닛은 1사이클마다 최대 4 Micro-OPs를 처리합니다. 이건 젠과 같지요. 내부 명령어 캐시인 OP 캐시의 판독은 1 사이클마다 최대 8개의 명령어니까 디스패치 대역이 상대적으로 좁아 보이지만, 파이프 라인을 이렇게 윗단계는 넓고 아래 단계는 좁게 할당하는 건 일방적인 방법입니다. 실제로 디스패치에 큐를 채우려면 많은 명령어를 가져올 필요가 있습니다. 

 

레지스터 리네이밍 유닛은 정수 코어와 FP 유닛이 각각 분리됐습니다. 물리적 레지스터가 다르기에 이렇게 하는 게 효율이 좋다고 AMD는 봅니다. 레지스터 리네이밍 레지스터의 충돌을 피하기 위해 각각의 Micro-OPs 레지스터의 이름을 바꿔서 물리 레지스터에 전달합니다. 명령과 명령 사이에서 같은 레지스터를 사용하며 충돌이 생기지 않도록 레지스터 리네이밍을 합니다.

 

따라서 물리적 레지스터 공간은 젠이 168개에 젠 2는 180개로 확장돼, 아웃 오브 오더에 여유가 생겼습니다. 스카이레이크와 같은 180개입니다.

 

7.png

 

젠2와 젠의 실행 코어 비교

 

8.png

 

젠 2의 정수 코어

 

FP 유닛의 물리 레지스터 수는 160개로 젠과 같지만, 사실 레지스터의 양은 2배가 됐습니다. 레지스터 스페이스도 커져 더 많은 SIMD 명령어를 실행할 수 있습니다. 앞서 말한대로 정수 코어 실행 파이프는 로드/스토어가 3개로 확장됐습니다. FP 유닛의 실행 파이프는 4개 그대로지만 각각의 유닛은 128비트에서 256비트로 확장됐습니다.

 

 

명령 스케줄러 구성도 변경
 

정수 코어는 스케줄러 큐의 구성이 바뀌었습니다. 젠 2는 정수 연산 스케줄러가 각각의 명령 포트 당 하나의 큐(ALQ : ALU Queue)를, 각각의 큐는 16개의 항목을 갖습니다. 즉 4개의 정수 연산 명령 포트마다 16개의 명령을 대기시킵니다. 큐에서 대기하는 명령은 자원이 활성화될 때마다 순차적으로 실행됩니다.

 

정수 연산은 명령 포트마다 다른 큐를 갖지만, 로드/스토어는 통합 큐(AGQ : Address Generator Queue)를 씁니다. 28개의 항목에서 AGQ가 3개의 로드/스토어 명령 포트에 명령을 발행합니다. 1세대 젠은 로드/스토어의 포트 2개에 각각 14개의 큐가 있었습니다. 1포트당 갖는 큐는 줄었으나, 로드/스토어는 명령 발행 큐가 더 중요합니다.

 

9.png

 

젠2와 젠, 불도저의 정수 코어 비교

 

10.png

 

젠 2의 정수 코어

 

젠 2는 로드/스토어 파이프가 늘어나면서 스케줄러의 명령 발행 포트가 7개가 됐습니다. 최대 7개의 Micro-OPs를 실행 유닛에 발행(이슈)할 수 있습니다. 젠은 로드/스토어가 1개 적은 6포트입니다.

 

불도저 아키텍처에선 정수 코어의 연산 파이프가 2개, 로드/스토어 파이프가 2개였고, 물리 레지스터는 112개, 스케줄러 큐는 48개였습니다. 불도저의 정수 연산 성능이 상당 부분 억제됐음을 알 수 있습니다. 젠은 SMT를 통해 2스레드를 실행하면서 리소스를 공유하지만, 멀티스레딩을 동적으로 제어하기에 불도저보다 IPC가 더 높습니다. 젠2에서 리소스가 늘어나며 SMT의 여유분도 늘었습니다. 

 

11.png

 

젠 2와 젠의 로드/스토어 파이프 비교 


TAG •

  • ?
    마라톤 2019.07.04 07:26
    좋은 정보 감사합니다. ^_^
  • ?
    테브리오 2019.07.04 09:52
    기능들을 확장해서 성능이 올라갔군요.
    엠바고 이후에 게임벤치들이 궁금해집니다.
  • profile
    TundraMC      자타공인 암드사랑/GET AMD, GET MAD. Dam/컴푸어 카푸어 그냥푸어/니얼굴사... 2019.07.04 11:29
    WA!

    머...이정도만(?) 해도 개인적으로는 만족스럽네요

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


  1. 등록된 글이 없습니다.
목록
Board Pagination Prev 1 ... 57 58 59 60 61 62 63 64 65 66 Next
/ 66

최근 코멘트 30개
거침없이헤드샷
10:08
고자되기
09:53
소코
09:45
모노타입
09:44
노코나
09:36
장구
09:34
고자되기
09:26
툴라
09:06
툴라
09:05
K_mount
08:56
K_mount
08:56
360Ghz
08:55
딱풀
08:50
알란
08:48
카토메구미
08:41
카토메구미
08:40
Iwish
08:39
PLAYER001
08:35
툴라
08:26
툴라
08:04
오쿠소라아야네
07:59
GENESIS
07:52
툴라
07:32
skyknight
07:27
마초코
07:26
마초코
07:25
Argenté
07:24
툴라
07:21
까르르
06:59
veritas
05:41

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

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


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

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


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

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

설치 취소