인텔 CPU와 ARM CPU 레이아웃의 큰 차이

 

01.png

 

위는 인텔의 초대 아톰 코어, 아래는 ARM의 Cortex-A9의 레이아웃. 코어 크기는 실제 다이의 면적 비율을 맞춘 게 아니라 Cortex-A9는 더 크게 나왔습니다.

 

인텔의 PC용 CPU 코어와 ARM의 모바일 CPU 코어는 그 관점이 크게 다릅니다. ARM의 CPU 코어는 유닛의 경계가 불분명하고 서로 뒤얽혀 배치돼 있습니다. 그에 비해 인텔의 PC용 CPU 코어는 아톰 계열까지도 각 유닛의 경계가 명확하게 나뉘어 있으며 유닛 내부도 직사각형으로 잘게 나뉘어져 배치됩니다. 인텔과 ARM의 CPU 코어는 왜 이렇게 큰 차이를 보이는 것일까요?

 

인텔과 ARM의 CPU 코어 평면도 차이는 설계 흐름의 차이를 나타내고 있습니다. ARM의 CPU 코어는 기본적으로 CPU 코어 전체가 100% 자동 설계 변형이 가능한 Fully Synthesizable 설계입니다. Logic Synthesis과 배치 배선 툴이 CPU 코어 전체에서 최적의 레이아웃을 생성하다 보니 기능 블럭을 명확하게 구분하기가 어려운 형상이 됐습니다.

 

그에 비해 인텔의 CPU 코어는 로직 합성과 커스텀/세미 커스텀 설계가 뒤섞인 구성입니다. 코어 전체를 보면 로직 합성되지 않았고 간단한 구조의 커스텀 매크로가 섞여 있습니다. 철저하게 성능과 전력의 최적화를 추구한 결과 이런 설계가 나왔습니다. 아래의 IBM의 슬라이드를 보면 퍼포먼스급 CPU의 설계 기법을 알 수 있습니다.

 

02.png

 

로직 합성한 RLM(Random Logic Macros)과 커스텀/세미 커스텀의 데이터 플로우(데이터 패스라고도 함)가 패치 워크된 IBM의 CPU 코어

 

 

데이터 패스에 커스텀 디자인을 이용하는 퍼포먼스급 코어

 

ARM이 제공하는 Fully Synthesizable 코어는 로직 합성과 자동 레이아웃에 따라 설계부터 실제 칩에 넣는 것까지를 자동화/반자동화합니다. HDL(Hardware Description Language)로 만들어진 CPU 코어가 최종적으로 칩의 마스크 데이터에 자동 혹은 반자동으로 변환됩니다.

 

03.png

 

설계 흐름과 IP 라이센스

 

그러나 인텔과 IBM 등의 퍼포먼스급 CPU 코어의 설계에서는 로직 합성과 자동 레이아웃을 전제로 한 설계 흐름 이외에 배선을 자동으로 배치하지 않고 커스텀 배선 설계를 넣는 경우도 있습니다. 복잡한 데이터 패스 부분에 흔히 쓰이는 방법으로 커스텀 설계에 의해 실장 밀도를 높이고 성능을 높이기 위함입니다. 전통적인 데이터 패스 설계에서는 셀을 임시 배치하고 대략적인 위치를 정해 인터 커넥트의 길이를 재고 타이밍이나 면적을 분석합니다. 그 분석을 바탕으로 셀 배치를 조정하고 PPA(Performance, Power, Area: 성능, 전력, 다이 크기)를 최적화합니다.

 

매뉴얼의 커스텀 설계가 일반적인 자동 설계보다 얼마나 효율적인지는 아래 IBM의 슬라이드를 보면 잘 알 수 있습니다. 커스텀 배치가 자동 배치보다 다이 면적이 작고 전력이나 성능에서도 유리합니다. 그 대신 설계에 걸리는 기간이 현저하게 길어집니다.

 

04.png

 

위쪽이 커스텀 설계, 아래가 자동 설계.

 

05.png

 

왼쪽이 커스텀 설계, 오른쪽이 자동 설계.

 

매뉴얼 설계를 이용하는 쪽은 프로세서 중의 데이터 패스(또는 데이터 플로우)라고 부르는 부분입니다. 커스텀 설계가 적합하다고 여겨지는 데이터 패스의 기능 유닛에 무엇이 포함되는지는 아래 IBM의 슬라이드가 잘 설명하고 있습니다. CPU 내부에서 데이터를 직접 다루는 핵심 유닛이 데이터 패스 부분이 됩니다.

 

06.png

 

고성능 CPU에선 전통적으로 성능, 전력, 다이 면적을 최적화하기 위해 데이터 패스 부분은 수작업하는 커스텀 설계나 세미 커스텀 설계를 쓰는 경우가 많습니다. 인텔과 IBM의 퍼포먼스급 CPU는 그러한 커스텀 매크로와 로직 합성한 매크로의 패치 워크를 씁니다.

 

매뉴얼 설계의 비중이 높은 커스텀 설계 기법은 소프트웨어로 비유했을 때 어셈블러 코딩과 같습니다. 많은 노력이 필요하고 생산성은 나빠지지만 성능은 높아집니다. 이전에는 RTL의 로직 합성&자동 레이아웃에서는 동작 속도를 올리기가 어려웠습니다. 클럭을 높이기 위해선 수작업으로 커스텀을 해 요소 요소마다 최적화를 할 필요가 있었습니다.

 

07.png

 

커스텀 설계나 세미 커스텀 설계, 자동 설계의 설계 기간과 회로 규모의 개념도. RLM은 Random Logic Macros, LBS는 Large Block Synthesis를 나타냅니다. CPU 코어 전체를 로직 합성&배치로 배선하는 경우엔 LBS, CPU 코어의 개별 유닛 단위로 합성하는 경우는 RLM입니다.

 

 

로직 합성&배치 배선 툴에서의 최적화 진행

 

지금도 고성능 CPU는 커스텀 설계를 사용하지만 CPU 코어의 대부분은 로직 합성과 자동 배치 배선을 전제로 합니다. PC용 프로세서 중에도 CPU가 아닌 GPU는 로직 합성이 주류를 이루며 CPU는 커스텀 설계가 많다는 차이가 있습니다. 그래서 GPU는 개발 기간이 짧고 CPU는 개발 기간이 길기도 합니다. 그러한 차이가 아키텍처의 전환이 빠른 GPU와 클럭이 높은 CPU라는 두 프로세서의 성격 차이를 형성했습니다. 그러나 모바일이나 임베디드 계열이 되면 이러한 차이는 명확하게 드러나진 않습니다.

 

모바일 애플리케이션 프로세서에서 CPU 코어에 높은 성능을 요구하게 되면서 Fully Synthesizable 코어에서도 PPA를 높은 수준으로 최적화가 이루어지도록 했습니다. 풀 커스텀 설계를 도입하는 경우도 있지만 대게는 컴파일 중에 성능이나 전력의 최적화를 해서 성능을 끌어올리고 전력이나 면적을 최적화하는 쪽입니다. RTL에서 배치 배선까지 자동화된 플로우에서 툴에 의한 최적화를 도모한다는 식입니다. 타이밍 시뮬레이션 등으로 최적의 배치 배선으로 조정해 나가는 것입니다.

 

즉, 크게 나눠보면 프로세서 코어 등의 고속 로직에서는 커스텀 설계에 의한 최적화와, 합성 단계에서 자동으로 최적하는 2개의 PPA 최적화 방법이 있습니다. 인텔은 전자에 해당하고 ARM은 후자의 방법을 주로 씁니다. 물론 ARM 코어의 RTL에서 커스텀 설계도 합니다(애플리케이션 프로세서에서는 그러한 사례도 적지 않습니다). 또 인텔 프로세서의 내부에도 로직 합성하는 경우가 다수 있습니다. 두가지 방법의 중간에 해당하는 방법도 제안하고 있으니 딱딱 나뉘는 건 아닙니다. 실제로 최근의 연구 중 하나는 데이터 패스 등에서 커스텀 설계의 구조에 가까운 것을 자동으로 생성하는 것도 있습니다.

 

현재 도구를 사용한 최적화만 해도 상당 수준까지 최적화할 수 있습니다. ARM의 기술 컨퍼런스 ARM Techcon에서는 매년 대학 EDA 개발사나 대형 반도체 개발사가 자신들의 최적화 기술을 설명하거나 ARM 코어의 최적화 사례의 소개하곤 합니다. 여기선 최신 최적화 기술을 통해 얼마나 높은 클럭을 달성할 수 있는지, 어디까지 전력을 줄일 수 있는지를 볼 수 있습니다. 작년의 ARM Techcon에서는 ARM과 Cadence, TSMC의 FinFET 프로세스로 만든 Cortex-A57의 최적화를 설명했습니다.

 

09.png

 

10.png

 

11.png

 

현재 흐름은 소프트웨어가 나날이 발전하면서 자동화된 설계 기법도 최적화가 나아지고 있으나, 아직 커스텀 설계를 완전히 대체할 수준은 아니라고 합니다. 또한 도구를 이용해 최적화하는 것도 어느 정도 시간이 필요합니다. 도구가 아직 발전 중이니 새로운 도구나 방법을 도입함에 따라 최적화가 진행되고 시간이 흐를수록 PPA가 향상될 것입니다.

 

 

플레이스테이션 4의 APU에 들어간 CPU 코어가 정해진 이유

 

CPU 코어의 설계 기법은 프로세스의 이식에도 큰 영향을 미칩니다. 커스텀 매크로를 포함한 코어는 다른 파운드리나 다른 프로세스 기술로 이식하는 데 상당한 노력이 필요합니다. 그에 비해 Fully Synthesizable 코어는 RTL에서 다른 파운드리나 프로세스 기술로 인식할 수 있습니다. 이것은 팹리스 반도체 개발사가 자사 IP를 이용해 특정 고객을 위한 커스텀 칩을 설계하는 경우도 마찬가지 입니다.

 

이것이 큰 영향을 미친 최근의 사례로는 소니 컴퓨터 엔터테인먼트(SCE)의 플레이스테이션 4에 들어간 APU가 있습니다. PS4의 APU는 원래 글로벌 파운드리의 28nm 공정으로 제조할 예정이었지만 TSMC의 28nm 공정으로 바뀌었습니다. PS4의 발매 시기에 맞추기 위해선 TSMC밖에 답이 없었기 때문입니다.

 

12.png

 

글로벌 파운드리 버전의 PS4 APU는 불도저 계열의 고성능 CPU 코어인 스팀롤러를 쿼드코어로 쓸 예정이었습니다. 그러나 스팀롤러는 글로벌 파운드리의 28nm 공정에 최적화돼 많은 커스텀/세미 커스텀 매크로를 포함합니다. 그래서 스팀롤러를 TSMC의 28nm 공정으로 도입하는 건 긴 시간이 걸립니다.

 

그에 비해 AMD의 다른 CPU 코어인 재규어는 Fully Synthesizable로 제조 파운드리를 가리지 않습니다. 그래서 약간의 수정만으로 TSMC의 28nm 공정으로 이식할 수 있었습니다. 재규어는 거의 모든 부분이 자동 배치된 배선이며 커스텀 배열은 일부 사용됐습니다(재규어의 이전 세대인 밥캣 코어도 7종류의 커스텀 배열/매크로를 포함하지만  Fully Synthesizable임). 그래서 PS4의 APU는 파운드리의 변경과 함께 CPU 코어를 스팀롤러에서 재규어로 바꾸게 됐습니다.

 

13.png

 

14.png

 

재규어의 플로어 플랜과 실장 개요

 

 

Xbox 360의 XCGPU가 IBM에서 생산을 시작한 이유

 

PS4의 CPU 코어 변경은 찬반 양론이 있었지만 현재 파운드리의 상황을 보면 Fab을 바꿀 수 있는 재규어 코어가 된 것이 분명 장점이 있습니다. 소니는 파운드리를 고를 자유를 얻었고 상황에 따라서 파운드리에서 최적의 프로세스를 고르기가 쉬워졌습니다.

 

각 파운드리의 프로세스 기술을 시작하고 이행하는 게 어떻게 될 것인지를 알기 힘든 현재 상황에서 이것은 큰 장점입니다. 예를 들면 FinFET 3D 트랜지스터 세대의 PS4 APU에서 소니는 글로벌 파운드리의 FinFET(삼성과 공통)을 기다리지 않고 FinFET로 선행하는 삼성과 TSMC를 고를 수 있게 됩니다. 이것은 AMD의 저전력 APU도 마찬가지며 그 결과 AMD의 저전력 APU는 프로세스 기술의 이행 속도가 빨라지고 있습니다.

 

15.png

 

커스텀/세미 커스텀 매크로를 다수 포함한 코어는 Fab을 바꾸는 데 시간이 많이 걸립니다.

 

16.png

 

현재 AMD의 제품 로드맵. 저전력 계열은 20nm지만 고성능 계열은 28nm입니다. 28nm로의 이행도 저전력이 더 빠릅니다. 

 

게임기 장에서 파운드리에 의존하는 경우로는 Xbox 360의 XCGPU가 있습니다. Xbox 360은 CPU의 경우 IBM이 중심이 되어 설계했으며 IBM과 그 파트너의 Fab에서 생산했습니다. 그에 비해 Xbox 360의 GPU는 옛 ATI가 주로 설계해 TSMC에서 생산했습니다. CPU를 설계할 때는 커스텀 매크로를 다수 포함했지만 GPU는 Fully Synthesizable 설계였습니다.

 

CPU 코어에 GPU 코어가 통합된 XCGPU에서는 Verilog HDL의 GPU 데이터를 VHDL로 변환하여 IBM 45nm 공정에 맞춰 합성했으며, VHDL로 만들어진 커스텀 매크로와  Synthesizable의 양쪽을 포함한 CPU 코어와 통합했습니다. CPU 코어는 파운드리에 대한 의존도가 높기 때문에 GPU를 VHDL로 변환해 TSMC에서 가져왔습니다. GPU 코어도 VHDL에 적용시켜 XCGPU 전체의 검증을 가능하게 했습니다.

 

17.png

 

18.png

 

19.png

 

이렇게 보면 게임기의 CPU 코어나 프로세스가 어떤 이유에서 결정됐는지를 이해하기 위해서라도 IP 코어의 설계 흐름을 파악할 필요가 있습니다. 특히 스팀롤러와 재규어의 설계 흐름 차이는 파운드리 프로세스 기술의 상황을 모를 경우 PS4가 왜 재규어를 썼는지를 알기 어렵습니다. 설계 흐름의 차이는 현재 CPU 코어에서 매우 중요합니다.

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