APU는 싱글 다이로 설계
AMD의 CPU와 APU의 다이 크기
AMD 는 7nm 공정의 젠 2 세대 APU(Accelerated Processing Unit), AMD 라이젠 4000 시리즈 모바일 프로세서를 발표했습니다. AMD는 젠 2 세대에서 CPU에 칩 렛 전략을 도입, CPU 코어와 I/O를 다른 다이로 분리했습니다. 그러나 APU에선 CPU 코어, GPU 코어 I/O를 모두 하나의 다이로 통합했습니다. 그 이유는 매우 간단합니다. 기존의 AMD 인터커넥트 기술의 한계 때문입니다.
클라이언트 컴퓨팅과 모바일까지 시야에 넣는 APU는 메모리 레이턴시를 최대한 줄이고 전력 사용량은 최대한 낮춰야 합니다. 하지만 CPU 코어와 메모리 인터페이스를 다른 다이로 분리하면 지연 시간과 소비 전력이 늘어납니다. 또 GPU 코어는 방대한 메모리 대역이 필요하기에, GPU 코어와 메모리 인터베이스를 다른 다이로 분리하면 다이 사이를 연결하는데 많은 전력이 소모됩니다.
광대역 다이의 인터커넥트는 1pj/bit(pico joule/bit) 이하로 에너지를 사용하는 전송 기술이 필요합니다. 이런 상황에서 클라이언트용 APU는 싱글 다이 솔루션밖에 답이 없습니다.
비싼 7nm 공정에서 가격 경쟁력이 중요한 APU를 만들기 위해, AMD는 다이의 크기를 억제했습니다. 패키지를 통해 추측되는 7nm APU의 다이 크기는 150제곱mm나 그 이하입니다. AMD APU가 32/28nm에서 250제곱mm였고 14nm에서 210제곱mm 수준으로 크기가 꽤 컸으나, 7nm에선 다이 크기가 많이 줄었습니다.
AMD는 7nm 공정에서 다이 크기를 줄여야 하는 이유를 2018 Symposia on VLSI Technology and Circuits에서 설명했습니다. 250제곱mm의 크기로 다이를 만들면 제조 비용이 어떻게 변화하는지를 계산한 표인데, 28nm에 비해 7nm의 생산 비용은 2배 이상으로 늘어납니다. 150제곱mm도 저렴한 편은 아니지만 AMD는 이를 감수하고 높은 성능을 뽑아냈습니다.
시간이 걸리는 I/O의 통합
AMD는 7nm 공정을 처음 도입하면서 우선 CPU 코어만 7nm로 전환하고, I/O는 12nm 공정을 써서 따로 만드는 칩렛 전략을 사용했습니다. 이 전략은 제조 비용 외에 다른 장점도 있습니다. CPU 다이에 I/O 다이가 거의 포함되지 않으니 설계 속도가 빠르다는 점입니다. 현재 신형 공정에선 I/O의 IP를 넣기가 까다롭거든요.
따라서 CPU 코어나 GPU 코어처럼 I/O가 적은 칩을 설계하기란 어렵지 않지만, 많은 I/O가 들어간 칩은 설계하기 어렵습니다. AMD도 모든 IP를 직접 만들지 못하니 써드파티 IP를 구입할 수 있는데 여기에도 단점이 있습니다. PC는 레거시 부분이 많아 설계가 더욱 까다롭습니다.
코드네임 르누아르, AMD의 7세대 APU는 8개의 젠 2 CPU 코어와 8개의 CU로 구성된 GPU 코어를 탑재합니다. GPU 코어는 베가 기반입니다. 새로운 나비 GPU가 아닌 이유는 설계가 그만큼 예전부터 진행됐기 때문이라 추측합니다. CPU는 GPU보다 설계와 검증에 걸리는 시간이 깁니다. 따라서 CPU 설계 당시에 이미 완성된 아키텍처를 가져왔으리라 보입니다.
그러나 8코어 CPU와 8 CU GPU라는 조합은 균형이 맞지 않습니다. AMD 14nm 젠 기반 APU인 레이븐 릿지는 8코어 CPU와 11 CU의 베가 GPU 구성이었습니다. 그 이유는 AMD CPU와 GPU 설계를 확인하면 알 수 있습니다. AMD에게 다른 대안은 달리 없었으리라 생각됩니다.
14nm 젠 APU, 레이븐 릿지
14nm 젠 APU, 레이븐 릿지 아키텍처
젠 CPU의 특징. 4코어 CCX
AMD의 젠 계열 CPU는 CPU 코어 4개로 구성된 클러스터인 Core Complex(CCX)가 있습니다. 4개의 CPU 코어가 L3 캐시를 공유하는 구조입니다. L3 캐시 SRAM의 용량은 서버/퍼포먼스 데스크탑과 메인스트림 클라이언트 등의 사용 분야에 따라 다릅니다. 14nm 공정에서 AMD는 l3 캐시 용량이 8MB와 4MB인 두 가지 CCX를 디자인했습니다.
CCX L3 8MB 버전은 서버와 데스크탑 CPU용인 제플린 다이에 탑재됩니다. CCX L3 4MB 버전인 APU용인 레이븐 릿지 다이에 탑재됐습니다. CCX L3 8MB는 14억 개의 트랜지스터로 44제곱mm의 다이를 차지합니다. L3 캐시 용량이 절반인 CCX L3 4MB는 12억 개의 트랜지스터에 39제곱mm의 다이를 차지합니다. 4MB L3의 크기는 8MB L3의 절반이 아니라 그보다 살짝 더 큰데, L3 컨트롤에 필요한 영역 때문입니다.
4MB와 8MB 버전의 젠 CPU 코어와 CCX 설계는 큰 차이가 보이지 않습니다. L3 SRAM 셀 어레이가 적다는 게 전부입니다. CCX L3 4MB가 CCX L3 8MB보다 12% 정도 공간이 작습니다. 그리고 젠+에서 12nm 공정을 사용하지만 셀 라이브러리의 셀 높이는 같기에, 다이 면적은 거의 같습니다.
7nm 공정 CCX의 다이 영역은 절반으로 줄어듬
AMD는 그 다음 세대에선 TSMC의 액침 7nm 공정인 N7로 전환했습니다. 7nm 공정에선 CPU 코어가 젠2로 확장되고, L3 캐시가 16MB인 CCX를 출시했습니다. TSMC 7nm 젠2 CCX L3 16MB 버전은 다이 크기가 31.3제곱mm입니다. 글로벌 파운드리 14nm 공정의 L3 8MB CCX와 비교하면 이렇습니다.
7nm의 L3 16MB 버전 CCX도 기본적인 레이아웃은 14/12nm 버전 CCX와 같습니다. 가운데 L3 캐시가 있고 그 주변에 4개의 코어가 있습니다. AMD는 7nm CCX가 14nm CCX의 절반 크기라 설명하는데, 실제로는 더 큽니다. 14nm 서버/데스크탑 CCX는 44제곱mm, 7mm는 31.3제곱mm니 71% 정도로 줄어들었습니다. 다이 면적이 절반이 됐다는 건 L3 SRAM가 똑같은 CCX를 비교했을 때의 이야기입니다. 14nm에서 16MB L3 SRAM을 넣는다면 CCX 다이 면적이 60제곱mm가 될 테니 정말 절반이 되네요.
서버와 데스크탑 CPU 용 CCX L3 16MB 버전은 CCD(Core Complex Die) 칩렛 다이에 2개가 들어갑니다. CCD는 2개의 CCX에 8개의 젠2 CPU 코어와 I/O 칩과의 연결을 위한 IFOP(GMI2)가 2링크 탑재됩니다. CCD의 트랜지스터 수는 38억개, 다이 크기는 74제곱mm로 다이 대부분을 CCX가 차지합니다.
AMD CCD 다이 레이아웃
젠 2 CCX의 변화
르누아르 다이의 자세한 내용은 발표되지 않았으나 CCX 다이 크기가 얼마인지 대충 계산은 가능합니다. 각각의 L3 캐시 슬라이스는 1MB니 SRAM 셀 어레이 면적의 1/4이고, 거기에 들어가는 주변 회로도 대충 작아졌다고 잡아서 계산하면 이런 결과가 나옵니다. 7nm CCX L3 4MB의 다이 면적은 아마 21제곱mm, 16MB 버전 CCX와 비교하면 70% 이하가 되리라 추측됩니다. 14nm CCX는 8MB에서 4MB로 가며 88% 정도로 줄었으니 7nm는 많이 작아졌지요.
7nm CCX L3 4MB를 동일 구성의 14nm와 비교하면 다이 크기는 절반이 됩니다. 즉 14nm에서 4코어가 들어가던 다이에 7nm라면 8코어가 들어갑니다. 면적은 같고 코어 수는 2배가 됩니다. 기존의 CMOS 스케일링에선 CPU 코어 제조 비용이 절반이 됐다고 할 수 있겠으나, 웨이퍼 제조 단가는 14nm보다 7nm가 훨씬 비싸기에 제조 가격이 절반으로 줄어든 건 아닙니다.
14nm 젠의 절반 크기가 된 7nm 젠2 CPU 코어
CCX의 내용을 더 자세히 봅시다. 14nm 젠의 다이 사진을 보면 CPU 코어의 다이 면적이 5.6제곱mm, 512KB L2 캐시를 포함하면 7제곱mm입니다. 이에 비해 7nm 젠2는 CPU 코어가 3제곱mm 이하, L2를 포함해도 3.5제곱mm 정도입니다. 즉 CPU 코어의 크기는 14nm에서 7nm로 오면서 거의 반으로 줄었습니다. 뿐만 아니라 젠2는 젠에서 SIMD 연산 유닛의 면적이 두배로 늘어 128비트에서 256비트가 됐습니다.
젠/젠+ 마이크로 아키텍처
젠2 마이크로 아키텍처
제조 공정의 변화는 아키텍처 뿐만 아니라 트랜지스터에도 영향을 줍니다. 젠의 14nm CCX 8MB L3 다이의 트랜지스터는 14억 개, 제플린 다이는 CCX가 2개 들어가니 CCX의 트랜지스터는 총 28억 개입니다. 제플린 다이의 총 트랜지스터 수는 48개니까, 단순히 계산하면 20억 개의 트랜지스터가 I/O와 노스브릿지에 들어갑니다.
이에 비해 젠2의 7nm는 2개의 CCX 16MB L3를 탑재한 CCD 다이의 트랜지스터 수가 38억 개, I/O는 IFOP(GMI2)밖에 없으며 아주 작은 I/O 로직도 최적화 처리됐습니다. (Infinity Scalable Data Fabric (SDF) 등은 구현하지 않았습니다). 아마도 I/O에 들어간 트랜지스터 수는 1억 개가 채 되지 않으리라 보입니다.
젠2의 CCX 16MB L3 다이 2개 트랜지스터는 37억 개로 추정됩니다. 14nm의 CCX 2개가 28억 개의 트랜지스터니, 7nm 젠2 세대의 CCX는 트랜지스터가 10억 개 정도 늘어났다고 보입니다. 7nm 공정에서 CCX의 L3 캐시 SRAM은 8MB가 늘었습니다. 2개의 CCX에 총 16MB SRAM입니다. SRAM 셀을 6T로 잡고 계산하면 약 8억 개입니다. 실제 데이터 셀 어레이 뿐만 아니라 주변 회로도 늘어나기에, 2개의 CCX에서 늘어난 트랜지스터는 8억 개 이상입니다. SRAM을 빼면 CCX 1개의 트랜지스터 수는 1억 개에 크게 미치지 못하는 수량이 늘어났다 보입니다.
CPU 코어의 트랜지스터 수는 많지 않음
사실 젠에서 젠2로 오면서 CCX의 트랜지스터 수가 아주 많이 늘어나진 않았습니다. CPU 코어의 면적을 보면 CCX 8MB L3의 트랜지스터 수가 14억 개, L3가 8MB에 L2가 2MB니까 데이터 SRAM에만 5억 개의 트랜지스터가 들어갑니다. 그럼 4코어 CPU만의 트랜지스터 수는 9억개라는 계산이 나옵니다. 젠 CPU 코어 1개당 2억 2500만개라는 소리죠. 이렇게 보면 CPU 코어에 들어가는 순수한 트랜지스터 수는 그렇게 많진 않습니다.
이유는 간단합니다. SRAM 셀의 트랜지스터 밀도는 높으나, CPU 코어 부분의 로직 셀은 그만큼 높지 않습니다. 7nm 공정 에서 CPU 코어 다이 부분은 최신 공정의 도입으로 실제로 절반 이상 줄어들었을 가능성이 높으나, 코어 내부에 SRAM 등이 배치되면서 코어가 많이 확장된 것처럼 보이지 않을 수 있습니다.
AMD의 CPU 코어 크기를 보면 위 그림처럼 됩니다. 130nm 공정에서 CPU 다이의 대부분을 CPU 코어가 차지했지만, 지금은 CPU 코어가 많은 비중을 차지하진 않습니다. 7nm 세대 젠2 코어의 크기는 3제곱mm 이하로, PS4에 탑재된 28nm 공정의 저전력 재규어 코어의 3.1제곱mm보다 작습니다. 고성능 CPU 코어는 이전 세대의 저전력 코어와 비슷한 크기가 됐습니다.