IP 라이센스의 형태와 제휴 칩의 설계 흐름

 

컴퓨팅 기기의 반도체 칩은 PC형 표준 반도체 제품 모델에서 보다 다양한 임베디드 모델로 흐름이 바뀌고 있습니다, 그 때문에 반도체 칩의 기본 방향도 바뀌고 있습니다. 게임기 뿐만 아니라 PC라는 패러다임에서 다른 모바일, 웨어러블, IoT(The Internet of Things)이 융성하는 쪽으로 향하고 있기 때문이다.

 

PC에서는 매우 한정된 종류의 ASSP(Application Specific Standard Produce:특정 용도의 표준 제품)이 많이 생산돼 범용으로 쓰입니다. 인텔 CPU나 NVIDIA GPU도 반도체 제품이란 관점에서 보면 물량이 많은 ASSP에 불과합니다. 또 PC의 CPU난 인텔과 AMD가 기능적으로는 큰 차이가 없습니다. PC란 관점에서 놓고 보면 차이가 있지만 인베디드라는 관점에서 보면 비슷한 점입니다. 바로 이 점에서 다양한 칩이 넘치는 임베디드 세계와 큰 차이점이 있습니다.

 

컴퓨팅 시장은 PC나 서버 위주에서 모바일, 웨어러블, IoT 등의 작은 장치로 확산되고 있습니다. 그런 분야에서 반도체 칩의 기본 방향은 PC와는 크게 다릅니다. CPU 코어와 GPU 코어는 IP로 라이센스 하고 칩 제조사가 IP 코어를 통합해 다양한 시장에 적합한 칩을 설계하거나 커스텀 칩을 만듭니다. 그래서 코어 IP 라이센스와 커스터마이즈가 중요한 의미를 갖고 있습니다.

 

01.png

 

ARM 기반 제품의 변화

 

ARM의 설계 흐름은 코어 IP를 라이센스 하기 쉬운 방법입니다. ARM은 CPU 코어를 라이센스 하는 IP 개발사이기에 CPU 코어를 라이센스하기 쉬운 형태로 설계할 필요가 있습니다. 라이센스 형태는 로직 코어의 설계 흐름과 밀접히 관련되어 있습니다.

 

설계 흐름 속에서 소프트웨어적으로 기술된 데이터로 라이센스 하는 경우인 소프트 매크로(Soft Macro). 배치 배선을 마친 하드웨어 설계를 라이센스 하는 경우인 하드 매크로(Hard Macro). 한층 더 상위의 CPU의 명령 세트 아키텍처 레벨에서 라이센스하는 것도 있습니다. ARM은 이러한 설계 흐름에서 다양한 IP 라이센스 모델을 쓰고 있습니다.

 

 

HDL로 만들어진 기존의 코어

 

현재의 임베디드 CPU 코어는 로직 합성(Logic Synthesis)과 자동 레이아웃에 따라 설계를 실제 칩에 넣도록 자동화/반자동화한 것이 일반적입니다. CPU 코어 전체에서 로직 합성이 가능한 경우를 완전 합성 가능(Fully Synthesizable) 코어라 합니다. 완전 합성 가능 CPU 코어의 설계 흐름에선 HDL(Hardware Description Language:하드웨어 기술 언어)로 만들어진 CPU 코어가 칩의 최종 마스크 데이터에 자동/반자동으로 변환됩니다.

 

HDL에는 Verilog HDL과 VHDL이란 2개의 메이저 언어가 있는데 Verilog HDL은 하드웨어 업계의 C언어라고 부를 수 있을 정도로 주도적인 위치에 있습니다. 그 외에도 여러 소수 언어나 행동 수준의 기술 언어가 있습니다. 인텔도 2005년까지는 iHDL(Intel's Hardware Description Language)라 부르는 인텔 자체의 HDL을 사용해 HDL 레벨에서 보자면 업계 표준과 달랐습니다. 그러나 코어 i7 네할렘부터 SystemVerilog로 전환합니다.

 

02.png

 

인텔은 네할렘부터 iHDL을 SystemVerilog로 바꿨습니다.

 

HDL에 의해 기술된 로직 회로 설계 데이터는 RTL(Register Transfer Level:레지스터 전송 레벨) 데이터입니다. HDL은 언어의 종류, RTL은 회로 기술의 추상화 차원이니, HDL에 따라 RTL 수준의 코드를 작성한다는 이야기가 됩니다. 레지스터와 그동안의 로직 기능으로 추상화돼 작성했기에 RTL이라 부릅니다. RTL은 로직 합성(Logic Synthesis)을 통해서 실제 하드웨어에 대응한 게이트 레벨의 회로 설계 데이터로 변환됩니다.

 

소프트웨어에 비유하자면 HDL이 고급 프로그래밍 언어고 RTL 코드가 소스 코드, 로직 합성이 컴파일이 됩니다. RTL 코드는 가독성이 좋아 읽는 것만으로도 회로 구성을 알 수 있고 프로그래밍 언어의 소스 코드와 비슷합니다. 실제로 RTL 소스 코드라고 불리는 일도 많습니다. 마찬가지로 로직 합성도 컴파일이라 부르는 경우가 많습니다. RTL의 로직 레벨 설계보다 더 상위에 행동 레벨의 아키텍처 설계가 있으며 그 쪽도 기술 언어가 개발되고 있습니다.

 

03.png

 

LSI 설계와 소프트웨어의 아날로지

 

 

자동 배치 배선과 커스텀 배치 배선

 

RTL에서는 로직 합성에 의해 보다 하위 레벨의 회로 설계 데이터인  넷 리스트를 자동으로 생성합니다. 반도체 칩을 하드웨어에 대응한 게이트 레벨 기술의 로직 회로도입니다. 실제 트랜지스터에 대응한 것이 아니지만 IP의 블랙 박스가 됩니다. 소프트웨어로 비유하면 넷 리스트는 미들 랭귀지가 됩니다.

 

넷 리스트는 물리적인 배선 배치를 자동으로 생선하는 툴 그룹으로 넘어가 트랜지스터 레벨의 데이터로 변환됩니다. 자동 레이아웃 툴에 의한 배치 배선 피팅 결과 최종 다이에서 레이아우스이 오브젝트 파일이 생성됩니다. 여기까지의 흐름은 한번에 이루어지는 게 아니라 여러 컴파일 도구에 따라 여러 단계를 거친 것이며, 최근에는 로직 합성과 넷 리스트의 배치 배선을 통합해 실시하는 경우도 있습니다.

 

레이아웃 데이터에선 마스크 패턴이 작성돼 Fab에서 만들 수 있게 됩니다. 소프트웨어로 비교하자면 레이아웃이나 마스크 패턴이 바이너리 코드가 됩니다.

 

CPU 코어의 설계에선 자동으로 배선을 배치하지 않고 수작업으로 배선을 설계하는 경우도 있습니다. 수작업 설계로 PPA(Performance, Power, Area:성능, 전력, 다이 면적)을 최적화하는 것입니다. 인텔, AMD, IBM이 고성능 CPU 설계에서 쓰는 방법인데, 이 경우 PPA는 향상되지만 특정 프로세스에 의존하는 설계가 나오게 되고 설계에 기간과 노력이 필요하게 됩니다.

 

04.png

 

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

 

05.png

 

완전 합성 가능 설계의 장점

 

현재는 완전 합성 가능 코어를 RTL에서 컴파일하는 단계에서 툴에 따라 PPA의 고도의 최적화가 되도록 하지만, 커스텀 설계와 자동화 설계의 2가지 방법이 여전히 같이 쓰이고 있습니다.

 

 

설계 흐름과 IP 라이센스의 관계

 

프로세서 코어를 라이센스하는 경우엔 RTL에서 마스크까지의 설계 흐름 중에서 특정 단계의 데이터를 라이센스받은 곳에 내줘야 합니다. 어느 단계의 IP를 주느냐에 따라 같은 IP 라이센스라 하더라도 그 내용이 크게 달라집니다. 또 커스텀 매크로와 세미 커스텀 매크로를 포함한 코어에선 라이센스의 형태도 제약됩니다.

 

합성 가능한 IP를 다른 제조사에 라이센스하는 경우에는 설계 흐름의 각 단계를 데이터로 넘길 수 있습니다. RTL에서 라이센스하는 경우를 소프트 매크로, 혹은 소프트 코어라 부르며 단순히 RTL이라 부르는 경우도 있습니다. 소프트 매크로는 라이센스를 받은 칩 설계 기업이 커스터마이즈를 더하는 것도 이론적으로는 가능합니다. 다만 실제 커스터마이즈 여부는 라이센스 조건에 따라 달라집니다. ARM의 경우엔 RTL에서 라이센스하며 CPU 코어의 경우 캐시의 유무를 비롯해 다양한 커스터마이즈가 가능해 그 범위 안에서 고객이 자유롭게 커스터마이즈할 수 있습니다.

 

06.png

 

설계 흐름과 IP 라이센스

 

RTL에서 로직 합성한 넷 리스트를 라이센스하는 경우도 있습니다. IP 설계 회사 중에는 가독성이 높은 RTL을 넘기는 걸 꺼리는 곳도 있습니다. RTL 라이센스가 소스코드를 건네주는 것과 같다고 보면 그걸 꺼리는 이유도 이해가 되겠지요. 넷 리스트를 펌 코어(Firm Core)라 부르는 경우도 있고, 넓은 의미에서 하드 매크로를 포함하는 경우도 있습니다.

 

넷 리스트에서 배선 배치를 마친 데이터를 건네줄 때는 하드 매크로나 하드웨어 IP란 이름을 붙입니다. 특정 파운드리의 특정 프로세스에 최적화된 IP로 성능/전력/다이 크기(PPA)에 최적화됐기에 성능과 전력 효율이 높습니다. 하지만 완전한 블랙 박스에 커스터마이즈할 순 없습니다. 또 RTL 라이센스에서 권장하는 플로어 플래닝을 나타내는 경우도 있습니다.

 

07.png

 

08.png

 

09.png

 

ARM Cortex-A9의 TSMC 40G nm 공정에서 하드 매크로의 사례. ARM은 성능 최적화와 전력 최적화의 2가지 하드 매크로를 준비했습니다.

 

예전에는 IP 코어가 하드 매크로나 넷 리스트가 일반적이었습니다. 그러나 EDA 툴에 의한 합성을 사용한 설계가 일반적으로 쓰이면서 소프트 매크로가 등장하게 됐습니다. 현재 흐름은 소프트 매크로가 쓰이긴 하지만 성능과 전력에 최적화가 중요하기 때문에 PPA의 고효율 하드 매크로가 같은 솔루션으로 제공되는 경우입니다. 예전의 하드 매크로 일변도였던 시절과는 많이 다르지요. 

 

커스텀 매크로를 많이 포함한 코어의 경우 라이센스에서 하드 매크로가 기본이 됩니다. 만약 인텔의 PC용 CPU 코어를 라이센스한다면 하드 매크로로 제공하게 될 것이라 추측합니다. 그 경우 인텔의 Fab에서 다른 Fab으로 옮기려면 인텔 자신이 물리 설계를 해야 합니다. 다만 커스텀 매크로를 포함한 코어를 RTL에서 라이센스하거나 FPGA 합성 가능한 RTL로 해 라이센스하는 특수한 경우도 있습니다. 인텔은 실제로 초대 아톰인 본넬 코어에서 RTL을 FPGA 합성 가능하도록 해서 사용합니다.

 

 

여러 방면에 걸친 ARM의 Cortex-A 라이센스

 

ARM의 경우엔 보통 RTL으로 IP 라이센스를 합니다. 그러나 Cortex-A 패밀리에 경우 특정 파운드리의 특정 프로세스에 맞춘 하드 매크로를 마련했습니다. 게다가 RTL에 각 파운드리의 프로세스 기술에 최적화한 데이터인 POP(Process Optimization Pack)도 제공하고 있습니다.

 

즉 ARM Cortex-A 패밀리의 IP 라이센스에는 크게 RTL, RTL+POP, 하드 매크로의 3가지가 있습니다. 참고로 ARM도 하위인 Cortex-M의 경우 POP나 하드 매크로는 거의 제공하지 않습니다.

 

10.png

 

Cool Chips XV 컨퍼런스에서 공개된 Cortex-A15의 하드 매크로 Seahawk의 평면도

 

하드 매크로가 PPA에 가장 최적화되어 성능이 높지만 특정 프로세스에 의존하게 됩니다. RTL 기반의 경우 프로세스에 의존하지 않지만 최적화가 전혀 들어가있지 않을 때엔 성능이 낮습니다. 다만 RTL에서 칩 제조사가 물리 설계를 최적화해 하드 매크로의 PPA와 가까워질 수 있습니다. ARM의 경우 RTL 라이센스로 POP를 사용한 경우가 있으며 PPA 최적화는 RTL 합성과 하드 매크로의 중간에 위치합니다.

 

11.png

 

Cortex-A를 TSMC 40G 프로세스로 만들 때 각 라이센스에 따른 동작 클럭의 차이. 오른쪽 2개가 하드 매크로, 왼쪽이 RTL. 오른쪽에서 두번째는 POP.

 

12.png

 

ARM의 POP 솔루션

 

커스터마이즈가 필요 없고 짧은 설계 기간에 높은 PPA가 필요한 고객은 하드 매크로를, 자유도를 필요로 하지만 고효율 PPA 최적화에 투자하기 싫은 경우엔 POP 솔루션을, PPA 최적화를 직접 실현할 경우엔 RTL을 고르게 됩니다.

 

ARM의 경우엔 한층 더 나아가 명령어 셋트 아키텍처의 라이센스도 Cortex-A를 대상으로 하고 있습니다. ARM의 라이센스는 명령 셋트만 호환된다면 자신의 요구에 맞는 CPU 코어를 자유롭게 설계할 수 있습니다. 퀄컴의 스냅드래곤, NVIDIA의 덴버는 이러한 아키텍처 라이센스로 처음부터 CPU 코어를 개발한 것입니다. ARM이 제공하는 IP에서 이룰 수 없는 기능과 성능을 실현하고 싶은 경우 아키텍처 라이센스를 사용합니다.

 

13.png

 

ARM의 Cortex-A 패밀라 라이센스의 개념

 

다만 ARM의 경우엔 아키텍처 라이센스와 IP 라이센스를 조합할 수 없습니다. 아키텍처 라이선스를 가진 제조사가 ARM 코어의 RTL 라이센스를 받아 RTL을 자유롭게 고치는 것은 일반적으로 허용되지 않는다고 ARM의 James Bruce씨(Lead Mobile Strategist, ARM)는 설명합니다. 수정에 따라 문제가 발생하는 걸 막기 위해서입니다. 이들 2가지의 라이센스는 구별돼 있어 RTL 소프트 코어는 ARM이 허락하는 범위에서만 커스터마이즈할 수 있습니다. 예를 들어 아키텍처 라이센스를 갖고 있는 퀄컴은 자사 코어를 개발하지만 Cortex-A5나 Cortex-A7은 그대로 사용하고 있습니다.

 

ARM의 다양한 라이센스 형태는 여러 방면에 걸쳐 있으며 고객은 자사의 요구에 맞춘 라이센스를 선택할 수 있습니다. 이러한 유연함이 ARM의 장점입니다.

 

소스: http://pc.watch.impress.co.jp/docs/column/kaigai/20140710_657290.html

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