컴퓨터/노트북/인터넷
IT 컴퓨터 기기를 좋아하는 사람들의 모임방
AMD는 국제 반도체 학회 ISSCC(IEEE International Solid-State Circuits Conference) 2020에서 젠 2 코어의 구현에 대해 강연했습니다. Zen 2 : The AMD 7nm Energy-Efficient High-Performance x86-64 Microprocessor Core(T. Singh, et al., IEEE International Solid-State Circuits Conference 2020)라는 제목의 강연에서 AMD는 젠 2 코어의 물리적인 구현을 공개했습니다.
이건 2017년 ISSCC에서 발표된 14nm 젠 CPU 코어의 사진입니다. Zen : A Next-Generation High-Performance x86 Core(T. Singh, et al., IEEE International Solid-State Circuits Conference 2017)라는 제목의 강연이였습니다.
AMD는 다이 레이아웃 이미지를 통해 기술이 유출되는 걸 막기 위해서 일부러 사진을 흐리게 만들었습니다. 고성능 CPU는 CPU 코어 전체가 한 덩어리가 아니라 여러 기능 블럭으로 구성된 모듈입니다. 젠과 젠 2 모두 20개 정도의 타일로 분할됩니다. 그래서 각각의 유닛 크기를 비교해서 추측할 수 있습니다.
젠 2의 개발 동기. Zen 2 : The AMD 7nm Energy-Efficient High-Performance x86-64 Microprocessor Core(T. Singh, et al., ISSCC 2020)에서 발췌
두 CPU 코어의 사진을 비교했을 때 눈에 가장 띄는 건 부동 소수점 연산 유닛의 대형화입니다. 젠의 부동소수점 연산 유닛도 컸으나, 젠2에서는 더 커졌습니다. SIMD(Single Instruction, Multiple Data) 연산 유닛이 128비트에서 256비트로 늘었기 때문입니다.
젠2는 32비트 부동소수점 연산 유닛과 추가 유닛 16개가 병렬 작동합니다. 연산 유닛이 2배가 됐으니 부동소수점 유닛 부분이 커진 것도 놀라운 일은 아닙니다. 부동소수점 연산 유닛은 CPU 코어에서 가장 큰 유닛으로, 대부분의 구역을 로직 셀이 차지하기에 이 부분의 소비 전력이 매우 높으리라 추측됩니다.
마이크로 아키텍처가 확장된 만큼 다이 면적이 커짐
젠 마이크로 아키텍처
젠 2 마이크로 아키텍처. 추가된 부분은 빨간색으로 표시했습니다. 여러 부분이 확장됐으나 가장 큰 건 부동소수점 SIMD 연산 유닛을 256비트로 바꾸고, 로드/스토어 유닛의 경로를 늘려 분기 예측에서 TAGE와 테이블 크기를 늘렸으며, L1 명령 캐시와 내부 명령어 캐시의 비율 수정, 명령여 자원 증가가 있습니다.
이 중 트랜지스터와 다이 영역에 가장 큰 영향을 주는 건 부동소수점 SIMD 유닛의 확장과 분기 예측의 확장입니다. AMD가 공개한 CPU 코어 사진에서도 이 두 부분이 커졌음을 알 수 있습니다.
반대로 젠2에서 작아진 영역도 있습니다. L1 명령어 캐시가 젠에서 64KB, 젠2에서는 32KB로 절반이 됐습니다. 그 만큼 L1 명령 캐시가 줄어든 건 당연합니다. 젠2에서 L1 명령 캐시가 줄어든 건 명령 디코드 후 내부 명령어 캐시인 OP캐시가 늘어났기 때문입니다. 젠의 OP 캐시 용량은 2K Micro-OPs였으나 젠2는 4K가 됐습니다. AMD는 L1 명령 캐시와 OP 캐시의 비율을 조절했다고 설명합니다.
젠 아키텍처는 OP 캐시에 저장되는 여러 작업을 하나의 명령으로 정리하는 복합형 내부 명령을 씁니다. 단일 작업 내부 명령이 아니라 내부 명령 포맷도 더 복잡해집니다. 젠2 OP 캐시에 저장되는 내부 명령이 64비트라면 4K Micro-OPs의 캐시 용량은 32KB가 됩니다. 내부 명령은 길이 제한이 적기에, 이보다 더 커질 수도 있습니다. 태그도 L1 명령 캐시와 OP 캐시가 따로 있으며, 두 태그를 연결하는 로직과 마이크로 태그가 있습니다.
젠 계열 CPU의 코어 사진에서 OP 캐시가 어떤 영역에 포함되는지는 나타나지 않았습니다. 명령 디코더나 분기 예측 중 한 곳이라 추측되며, 양쪽 모두 SRAM 블럭이 있습니다. 어쨌건 명령 디코더나 분기 예측 블럭에선 OP 캐시가 늘어난 부분을 빼고 비교할 필요가 있습니다.
TAGE 분기 예측의 도입으로 커진 분기 예측 유닛
분기 예측은 젠 2 마이크로 아키텍처에서 크게 확장된 블럭 중 하나입니다. 젠의 Perceptron 분기 예측 외에 TAGE(TAgged GEometric history length branch prediction) 분기 예측이 구현됩니다. TAGE는 분기 예측 기록에서 일정 길이마다 태그를 붙여 에측합니다. 여러 단계로 예측을 수행해, 가장 예측이 잘 된 결과를 가져오는 알고리즘입니다.
TAGE는 기록 테이블에 태그 비트를 추가하기에 분기 예측 SRAM의 크기가 늘어납니다. 또 분기 예측 유닛 자체도 병렬 처리되니 그만큼 트랜지스터 수가 늘어납니다. 다이 면적이 당연히 늘어나지만 다이 사진에서 큰 변화는 없어 보입니다. 최소한 부동소수점 연산 유닛처럼 커지진 않았습니다. 젠의 분기 예측 유닛이 매우 크기에 TAGE를 더해도 티가 많이 나지 않습니다.
젠2의 다른 유닛은 젠과 비교해서 상대적으로 많이 변하지 않아 보입니다. 가장 아래의 L1 데이터 캐시는 젠과 젠2 모두 32KB로 크기가 바뀌진 않았습니다. 데이터 캐시의 정수 연산 유닛도 마찬가지입니다. 로드/스토어 유닛 패스는 256비트로 2배가 됐으며 어드레스 생성 유닛도 1개 늘었습니다. 하지만 다이 영역에 미치는 영향은 작고, 실제 유닛의 상대적인 크기 변화는 적습니다. 명령 스케줄러는 스케줄링 리소스나 실제 레지스터가 늘어난 만큼 커 보이지만 그 비율은 크지 않습니다.
이렇게 보면 젠2는 젠에서 부동소수점 유닛에 트랜지스터를 대폭 늘리고, 분기 예측의 트랜지스터도 늘리고, 명령 캐시 트랜지스터 분배를 늘린 디자인 되겠습니다. 다이 면적의 증가는 모두 여기에서 비롯됐습니다.
젠 2의 CCX 아키텍처
젠 2 CPU는 서버/고성능 클라이언트용 CPU 4코어와 16MB 공유 L3 캐시 클러스터를 합친 Core Complex (CCX)로 구성됩니다. 7nm 젠 2 CCX 16MB L3의 다이 면적은 31.3제곱mm, 트랜지스터 수는 19억 개입니다. 14nm 젠의 CCX는 8MB L3에 다이 면적은 44제곱mm, 트랜지스터 수는 14억개입니다. L3 용량이 같다고 가정하면 14nm 젠에서 7nm 젠2는 거의 절반으로 줄었습니다.
젠2 CCX의 공유 L3 캐시 블럭. Zen 2 : The AMD 7nm Energy-Efficient High-Performance x86-64 Microprocessor Core(T. Singh, et al., ISSCC 2020)에서 발췌.
CCX는 CPU 코어와 L3 슬라이스 4개로 구성됩니다. 젠 2 CPU 코어와 512KB L2 캐시로 다이 영역은 3.5제곱mm입니다. CPU 코어와 L2 캐시, L3 캐시의 1/4인 4MB, 캐시 주변 회로 1/4를 더하변 7.83제곱mm. 총 트랜지스터 수는 4억 7500만 개입니다.
AMD는 서버와 고성능 클라이언트 CPU로 4코어 에 16MB L3 캐시를 넣은 CCX를 설계했습니다. 모바일 APU는 4코어에 4MB L3 캐시를 넣은 소형 CCX를 디자인했습니다. 보급형에선 2코어에 4MB L3의 CCX도 가능하다고 합니다. 하지만 2코어 CPU가 경제적이라고 보긴 어렵습니다. 젠2는 CPU 코어가 작기에 저가형도 4코어에 4MB L3 조합을 공급합니다. 그리고 2코어는 7nm 공정으로 만들어도 I/O 회로 크기는 줄어들지 않습니다. 따라서 I/O에 투자한 영역이 아까운 칩이 되버립니다. 사실 7nm 같은 고급 공정으로 보급형 제품을 만든다는 것 자체가 현 상황에서 맞진 않습니다.
젠 2 아키텍처가 여러 시장을 커버하는 제품인 만큼, 4코어 CCX와 2코어 CCX를 더해서 6코어 제품을 만들 수도 있겠으나, 이것도 PC 시장에서 경제적인 선택은 아닙니다. 8코어 다이를 만들고 거기서 2개를 죽여 6코어를 만드는 게 수율은 더 좋습니다. PC 외에 다른 시장이라면 몰라도요. 그렇다면 현 상황에선 게임기가 가장 유력해 보입니다.
칩 설계에서 6T 표준 셀을 사용
AMD는 젠 2에서 커스텀 스탠더드 셀을 썼다고 발표했습니다. AMD는 예전부터 표준 셀에 커스텀을 더해 설계했으나, 이번에는 셀 배치를 비롯해 더 많은 부분을 수정했습니다. 젠 2는 6개의 메탈 트랙을 배치한 6T 셀을 사용했는데, 14nm에서는 10.5T 셀을 많이 썼습니다. 제조 공정 뿐만 아니라 셀 높이도 줄어들었다는 이야기 되겠습니다.
표준 셀은 높이에 따라 종류를 나눕니다. 셀 높이는 로컬 배선의 메탈 피치와 메탈 트랙으로 표시합니다.
AMD는 상대적으로 낮은 6T 셀에서 고성능 CPU를 만들기 위해, 다양한 높이의 셀을 조합했습니다. 물리적 설계에 많은 부분을 수정했는데, 이건 인텔도 마찬가지입니다.
이번 AMD의 발표에서 TSMC 퍼포먼스 로직을 위한 메탈 레이어는 M1 피치 간격이 57nm임이 밝혀졌습니다. TSMC N7의 배선층 피치는 다음과 같습니다.
M0 40nm
M1 57nm
M2 40 / 44nm (1.0-1.1)
M3 40 / 44nm (1.0-1.1)
M4 80nm
M5 80nm
M6 80nm
M7 80nm
M8 80nm
M9 80nm
M10 126nm
M11 126nm
M12 720nm
M13 720nm