HSA가 드디어 완성형에 도달. Carrizo 아키텍처

 

AMD는 2015년 상반기에 차기 모바일 APU 패밀리인 Carrizo(카리조)를 출시합니다. Carrizo는 퍼포먼스급 x86 코어인 Excavator를 기반으로 하는 Carrizo와 저전력 x86 코어인 Puma+를 기반으로 하는 Carrizo-L의 2가지가 있습니다.

 

01.png

 

Carrizo는 현재의 APU인 Kaveri(카베리)와 같은 28nm 세대지만 모바일에 초점을 맞춰 전력 사용량을 줄이고 성능도 높였습니다. 전력 효율로 보면 Carrizo는 Kaveri의 2배에 달한다고 합니다. 또 전력 절약을 위해 마이크로 아키텍처 뿐만 아니라 프로세스 기술이나 회로 설계같은 기초적인 기술도 확장했습니다.

 

02.png

 

03.png

 

Carrizo는 HSA(Heterogeneous System Architecture)1.0 스펙을 모두 지원하는 최초의 칩입니다. 즉 GPU 컴퓨트의 태스크 스위칭과 그래픽 선점 스케줄링을 지원하며 콤퓨트와 그래픽 어느 작업도 인터럽트가 허용됩니다. 다시 말해 GPU 코어를 보다 CPU처럼 쓸 수 있게 되며 HSA 기능의 실장은 Carrizo에서 마침내 완성되는 것입니다.

 

04.png

 

AMD가 HSA를 창설했을 때 제시했던 HSA 로드맵의 최종 단계에 드디어 도달

 

컴퓨트 태스크 스위칭과 그래픽 선점 스케줄링을 구별하는 건 컨텍스트가 다르기 때문입니다. GPU 코어는 원래 그래픽 작업을 실행할 때 컨텍스트를 갖는데 이는 레거시 컨텍스트도 포함하기에 양이 매우 많습니다. 반면 컴퓨트 때의 컨텍스트는 프로세서의 레지스터 등이라 양이 적습니다.

 

그래서 컴퓨트 태스크를 실행할 때엔 GPU의 콘텍스트 중 컴퓨트에 관련된 콘텍스트만 따로 빼서 스위치 하기로 했습니다. 이것이 AMD가 말하는 GPU 컴퓨트 컨텍스트 스위칭(GPU Compute Context Switching)입니다. 스위칭에 필요한 데이터는 CPU와 마찬가지로 메모리에 기록합니다.  GPU 코어 전체를 보면 콘텍스트는 크지만 AMD GPU에서 컴퓨트는 각각의 프로세서 유닛 CU(Compute Unit) 단위로 관리하고 있으며, 컨텍스트의 스위칭도 CU 단위라서 레이턴시는 그다지 문제가 되지 않는다고 AMD는 설명합니다. 한편 그래픽 작업을 실행할 때는 프로세서의 범용 레지스터 이외에 각종 그래픽 콘텍스트를 포함해 다 전환하도록 했습니다. 이쪽이 GPU 그래픽 선점 스케줄링(GPU Graphics Preemption)입니다.

 

AMD에 따르면 컴퓨트 태스크 스위칭은 Kaveri에서 지원하지만 그래픽 선점 스케줄링은 Carrizo부터 지원한다고 합니다. 외장형 GPU에서 그래픽 선점 스케줄링은 Radeon R9 285(Tonga, 통가)부터 지원합니다.

 

HSA 1.0을 완벽 지원하게 되면서 AMD APU는 CPU와 GPU의 가상 메모리 주소 공유나 컨텍스트 스위치 등 당초 계획하던 기능을 모두 갖춘 셈입니다. 단 CPU 코어와 GPU 코어 사이의 완전한 쌍방향 캐시 스누프는 Carrizo 세대에서도 아직 실현되지 않았을 가능성이 높습니다.

 

현재의 Kaveri는 IOMMUv2를 사용해 CPU 코어와 GPU 코어를 연결합니다. IO 일관성을 갖고 있어 CPU 쪽에선 GPU 캐시를 스누프하지 못하며 그 때문에 일관성 버스(Onion+)는 GPU 캐시를 우회합니다. 간섭되는 버스와 그렇지 않은 버스(Onion)은 모두 IOMMUv2에 연결돼 가상-물리 메모리 간의 변환을 위한 Page Table Walker를 공유합니다. 이 페이지 테이블은 CPU 쪽의 테이블과 동기화되어 있습니다. 또 변환 주소의 캐시인 Translation Lookaside Buffer(TLB)는 L2를 두 버스로 하며 공유 L1을 각각의 버스가 독립하는 구성입니다. Carrizo의 내부 버스가 이 구성에서 어떻게 바뀔지는 아직 밝혀지지 않았습니다.

 

05.png

 

Kaveri 내부 인터커넥트의 아키텍처

 

 

2계열의 APU가 플랫폼 호환되는 Carrizo

 

06.jpg

 

AMD의 Joe Macri(CVP and Product CTO)

 

Carrizo와 Carrizo-L은 코드네임이 같아도 실제 모습은 크게 다릅니다. CPU 코어는 Carrizo가 Excavator이며 Carrizo-L이 Puma+입니다. GPU 코어의 세대가 다르며 Carrizo-L의 HSA 지원은 기존의 Beema(비마)와 같은 수준입니다. 그럼에도 불구하고 이름만 놓고 보면 두 제품은 한 계열로 나오게 됩니다.

 

그동안 AMD의 퍼포먼스 x86와 저전력 x86은 다른 코드네임을 사용하며 명확하게 분리돼 있었습니다. 2015년의 APU에서 서로 다른 두 계열이 같은 Carrizo란 이름을 쓰는 건 플랫폼이 호환이 되는 것을 강조하기 위해서입니다. 싱가포르에서 11월 20~21일에 개최된 이벤트 Future of Compute에서 Carrizo에 대해 발표한 AMD의 Joe Macri(CVP and Product CTO)는 Carrizo의 컨셉을 이렇게 설명했습니다.

 

"Carrizo 패밀리의 제품은 모두 같은 Ball Out이며 같은 소켓을 사용합니다. 기존에는 고성능 APU와 저가형 APU가 다른 인프라를 사용했습니다. 왜냐하면 저렴한 Kabini 계열은 싱글 칩 SoC(System on a Chip)인데 비해 고성능인 Kaveri는 2칩 구성을 쓰기 때문입니다.

 

그러나 Carrizo는 저가형 APU와 같은 원 칩 SoC이며 Carrizo 세대에서는 고성능과 저비용 APU가 같은 인프라 스트럭처를 공유할 수 있습니다. 이것은 OEM이나 플랫폼 파트너를 돕는 것이지요. 하나의 플랫폼으로 폭넓은 가격대를 커버할 수 있다. 고객 입장에선 풍부한 선택지를 얻게 됩니다."

 

Carrizo 세대에서는 하나의 메인보드로 고성능 Carrizo와 저비용 저전력의 Carrizo-L를 모두 쓸 수 있게 됩니다. 자유도가 높아지면서 OEM이 AMD를 쓰기 쉬워지며 고객들은 최종 제품의 선택지가 넓어집니다.

 

 

불도저 계열의 4세대 Excavator 코어를 탑재

 

AMD는 차세대 마이크로 아키텍처의 x86 CPU에 대해선 현재 개발 중인 ARMv8 아키텍처의 K12와 함께 Jim Keller(Vice President and Chief Architect of AMD's Microprocessor Cores) 팀에서 개발 중이라고 밝혔습니다. 코드 네임 Zen이라 불리는 새로운 코어로 기존의 Bulldozer계열과는 전혀 다른 마이크로 아키텍처입니다. 그러나 Carrizo에 탑재되는 Excavator 코어는 Keller 팀에서 바꾸게 되며 기존의 Bulldozer 아키텍처를 확장한 것입니다. 

 

07.png

 

AMD의 CPU/APU/GPU 아키텍처

 

Bulldozer 코어는 Piledriver(파일 드라이버)를 거쳐 Steamroller(스팀롤러)로 발전해 왔습니다. Piledriver는 클락 분배에 Resonant Clock Mesh(RCM)를 채택해 물리 설계를 크게 바꾸었습니다. Steamroller에서는 마이크로 아키텍처를 변경하고 명령 디코딩의 병목 현상을 줄였습니다. Excavator는 Bulldozer 계열의 4세대이며 3차 확장 코어가 됩니다.

 

08.png

 

Piledriver에 구현된 Resonant Clock Mesh

 

현재 AMD는 아직 Excavator에서 무엇이 바뀌는지 자세히 밝히지 않았습니다. 그러나 AMD는 Carrizo에서 프로세스 기술이나 회로 설계를 개량한다고 밝힌 바 있으며 Excavator 코어 자체도 물리 설계가 크게 달라질 것으로 보입니다. CPU 코어 자체가 보다 고밀도 저전력이 되는 설계로 향할 가능성이 높습니다. 셀 라이브러리 등도 기존과 달라질 수 있습니다. 그렇다면 AMD는 마이크로 아키텍처 확장과 물리 설계의 개량을 번갈아가며 CPU 코어를 진화시키는 셈입니다. 무엇보다 Excavator는 명령 세트도 확장시켜 AVX2 등을 지원할 것으로 보입니다.

 

참고로 AMD의 ARM 코어와 x86 코어의 두 APU가 같은 인프라와 같은 내부 인터 커넥트를 사용하는 SkyBridge 프로젝트는 20nm 이후의 프로세스이며 Carrizo 패밀리의 뒷 세대에 해당됩니다. Carrizo 패밀리는 28nm 공정 마지막 세대의 APU입니다. Carrizo의 제조는 Kaveri에 이어 계속해서 글로벌 파운드리가 될 것입니다. 현재 AMD의 고성능 CPU 코어는 다른 파운드리로 오림기기 힘들고 글로벌 파운드리는 첨단 프로세스를 상대적으로 저렴하게 제공하고 있습니다.

 

AMD의 프로세스 노드 이행이 인텔보다 느린 건 특별한 사정도 있습니다. 파운드리는 28nm 공정의 다음 세대로 20nm가 아니라 FinFET 3D 트랜지스터의 16/14nm 공정에 주력하고 있습니다. AMD의 파운드리를 보면 TSMC는 20nm 제조 능력의 상당 부분을 애플의 아이폰 6 시리즈에 제공하고 있으며 글로벌 파운드리는 20nm보다 14nm FinFET에 중시하고 있습니다. 그래서 AMD 뿐만 아니라 많은 칩 제조사가 28nm로 이행하는 데 시간이 걸리고 있습니다.

 

09.png

 

시장 제품군과 공정

 

 

같은 28nm 공정이라 해도 Kaveri와 크게 다른 Carrizo의 제조 공정 기술

 

Carrizo의 제조 프로세스 노드는 현재의 Kaveri와 같은 28nm입니다. 그러나 같은 28nm 프로세스 노드라 해도 카베리가 채용한 프로세스와는 크게 다릅니다. Kaveri는 글로벌 파운드리의 28SHP 프로세스를 채용했습니다. 28SHP 프로세스는 AMD가 글로벌 파운드리와 협력해 개발한 APU용 프로세스로서 배선층(Metal Layer) 구성을 확장해 CPU에 필요한 고성능과 GPU등에 적합한 고밀도 배선을 모두 갖춘 프로세스라 하네요. Carrizo에서는 이를 더 진행해 배선층(Metal Layer)을 고밀도 저전력으로 바꿨다고 합니다.

 

10.png

 

주요 프로세스 로드맵

 

AMD의 Macri는 Kaveri의 프로세스 기술에 대해 다음과 같이 설명합니다.

 

"Kaveri는 데스크탑부터 모바일까지 넓은 성능과 전력 범위를 커버할 필요가 있습니다. 이는 매우 어려운 일이나 우리는 그 안에서 고성능과 저전력의 균형을 맞췄습니다. 데스크탑에서 멋진 성능을 발휘하면서 모바일에서 뛰어난 전력 사용량을 실현할 수 있는 균형을 맞추는 것입니다.

 

그 때문에 Kaveri에서는 프로세스 기술의 배선층도 최적화했습니다. Kaveri에 채용한 프로세스의 배선층을 보면 배선 아래의 층은 배선 피치(Metal Pitch)가 좁지만 위층으로 갈수록 배선 피치가 넓어지고 있습니다. 최하층의 배선이 가장 폭이 좁고 얇으며 그 위의 층으로 갈수록 더욱 두껍고 넓어집니다. 말하자면 V자형이 됩니다.

 

과거에는 (CPU용 프로세스 기술) 배선층의 V자형에서 폭이 매우 컸습니다. 좁은 배선 피치에서 빠르게, 넓은 배선 피치에서 두껍게 확산되는 배선층 구성을 썼습니다. 그에비해 Kaveri에서는 성능과 전력 균형을 맞춘 배선을 실현했습니다".

 

기존 CPU용 공정보다 더 조밀해진 배선 피치로 구성한 것이 Kaveri였습니다. AMD가 Kaveri에서 배선층을 고안한 것은 CPU의 성능과 SoC로서의 트랜지스터 밀도나 전력 효율을 모두 잡기 위해서였습니다. 그러나 이렇게 해도 전력 효율과 트랜지스터 밀도가 충분하지 않다고 판단한 AMD는 Carrizo에서는 모바일에 초점을 맞춰 전력 효율과 밀도를 더욱 향상시키는 배선층의 구성을 채용했습니다.

 

보다 모바일에 맞춰 과감한 프로세스 기술이나 회로 기술을 담은 것이 Carrizo라는 것입니다. 여기에는 PC 시장이 모바일에 기울어 있다는 판단도 있다고 봅니다. Macri는 Carrizo의 배선층이 Kaveri와 크게 다르다고 설명합니다.

 

"Carrizo의 프로세스 기술은 배선층(Metal Layer)의 면에서 kaveri에 쓴 것과는 크게 다릅니다. 프로세스 기술로 보자면 Carrizo는 Kaveri보다 Beema에 더욱 많이 닮았습니다. 프로세스의 배선층의 밀도를 올리는 데 집중해서 개선했습니다. 밀도를 높이면 전력 효율도 높아지기에 Carrizo는 프로세스 자체가 매우 전력 사용량이 낮습니다.

 

Carrizo는 보다 저전력으로 가기 위해 V자형을 개선하는 것부터 시작했습니다. Kaveri보다 배선 피치를 줄인 것이지요. 자세한 사항은 말할 수 없지만 스마트폰 전용 프로세스를 보면 V자형보다는 T자형에 가까운 배선층이 그려집니다. 저전력에 최적화하면 T자형처럼 보다 좁은 배선 피치(Metal Pitch)의 층을 늘리게 됩니다.

 

왜냐하면 배선을 조밀하게 했을 때 배선이 짧아지고 드라이브 신호가 이동하는 거리가 짧아지기 때문입니다. 거리가 짧아지면 용량을 줄일 수 있습니다. 저항을 줄이면 드라이버 자체를 줄일 수 있습니다. 드라이버를 작게 할 수 있으면 스위칭 용량도 줄어듭니다. 이처럼 피드백 루프를 거쳐 전력이 줄어들게 됩니다".

 

 

CPU와 SoC에서 큰 차이를 보이는 배선층의 구성

 

고성능 CPU와 모바일 SoC는 프로세스 기술의 배선층(Metal Layer) 구성이 전혀 다릅니다. 예를 들어 인텔의 CPU용 22nm 공정에는 배선 피치(Metal Pitch)가 가장 좁은 층(1x Pitch)이 3층(M2, M3)까지 입니다. 그 위에 최하층 배선의 1.4배 폭(1.4x Pitch)의 배선, 다시 2배(2x Pitch), 3배(3x Pitch)로 넓은 폭의 배선이 1층씩 쌓여져 있습니다. 여기서 다시 위에는 4배 폭(4x Pitch) 배선이 다시 2층으로 매우 넓은 배선층을 구성합니다.  V자 모양이 위에서 넓어지는 배선층의 구성입니다. CPU용 프로세스의 배선에서 느슨하고 두터운 배선층이 많은 건 배선 저항을 줄이기 위해서입니다. 그래서 CPU 프로세스는 소비 전력이 많고 트랜지스터 밀도가 낮습니다.

 

11.png

 

인텔의 CPU용 프로세스(사진 왼쪽)과 SoC용 프로세스(사진 오른쪽)

 

그에 비해 SoC용 프로세스는 일반적으로 배선 피치가 가장 좁은(1x Pitch) 층이 최대 8층(M1, M8)까지이며(TSMC와 글로벌 파운드리의 배선 옵션) 그 위에 조금 넓은 배선(1.25 Pitch등)이 몇층 있고 다시 그 위에 매우 폭이 넓은 배선이 있습니다. 아래 그림은 가장 좁은 배선 피치(1x Pitch)의 층이 3층(M1, M3)인 경우인데 TSMC의 옵션에서는 8층(M1, M8)까지 가장 좁은 배선 피치(1x Pitch)로 만들 수도 있습니다. 이런 구성은 외장형 GPU에서 두드러지며 이 경우엔 T자 형태가 됩니다.

 

12.png

 

TSMC 16nm 공정의 배선층. 가장 좁은 배선 피치(1x Pitch)의 층이 3층(M1, M3)의 예

 

13.png

 

모바일 SoC와 GPU의 배선층

 

인텔 SoC 프로세스는 두 형태의 중간에 해당되는 구성으로 인텔 CPU 프로세스보다 V자가 좁은 편이나 파운드리의 SoC용 프로세스 같은 T자형까지는 아닙니다. Carrizo에서 사용한 프로세스 배선층의 자세한 구성은 아직 알 수 없으나 고성능 CPU와 고밀도 GPU을 공존시켜야 하니 인텔의 SoC 프로세스에 가까운 구성에 1~1.x배의 배선 피치의 층을 추가한 구성이 아닐까 추측됩니다.

 

다만 20nm 이후의 공정은 가장 좁은 배선 폭(1x Pitch)의 층을 늘릴수록 더블 패터닝이 필요한 배선층이 늘어나고 제조 원가가 무시할 수 없을 수준으로 늘어나게 됩니다. 그러나 20nm 이후에도 배선 폭을 80~90nm로 유지하면 더블 패터닝을 쓰지 않아도 배선층을 구성할 수 있습니다.

 

Carrizo에서는 프로세스 기술뿐 아니라 전력 절약을 위해 회로 설계에서도 개량을 더하고 있습니다. Carrizo의 구현 및 회로 설계 관련 기술은 2월에 열리는 반도체 학회 ISSCC(IEEE International Solid-State Circuits Conference)에서 발표될 예정입니다.

기글하드웨어(http://gigglehd.com/zbxe)에 올라온 모든 뉴스와 정보 글은 다른 곳으로 퍼가실 때 작성자의 허락을 받아야 합니다. 번역한 뉴스와 정보 글을 작성자 동의 없이 무단 전재와 무단 수정하는 행위를 금지합니다.