벤치리뷰·뉴스·정보/아키텍처·정보분석

[분석정보] ARM 코어의 다양한 라이센스 모델과 CPU코어의 설계 흐름

tware 2014. 7. 10. 21:00

 

IP 라이센스의 형태와 연계되는 칩 디자인 흐름


 컴퓨팅 기기의 반도체 칩은 PC 형 표준 반도체 제품의 모델에서 보다 다양한 내장 모델로 흐름이 바뀌고 있으며,이를 위해 반도체 칩의 형태도 바뀌고 있다. 게임기 뿐만 아니라 PC와 패러다임이 다른 모바일 및 착용형, IoT (The Internet of Things)가 융성했기 때문이다.

 PC에서는 극히 한정된 종류의 ASSP (Application Specific Standard Produce : 특정 용도 표준 제품)가 대량으로 생산되고 범용품으로 사용된다. Intel CPU도 NVIDIA GPU도 반도체 제품으로 본다면, 볼륨이 나오는 ASSP에 불과하다. 또한 PC 에서는 CPU라면 Intel도 AMD도 기능적으로는(역할로) 큰 차이가 없다. PC로 본다면 차이가 있지만 기본적인 관점에서 본다면 유사한 칩이다. 이 점이 다양한 칩이 넘치는 임베디드 분야와는 크게 다르다.

 컴퓨팅 시장은 현재 PC와 서버 중심의 세계에서, 모바일, 착용, IoT로 작은 장치로 확산되고 있다. 그 세계는 반도체 칩의 본연의 자세는 PC와 크게 다르다. CPU 코어와 GPU 코어 IP로 허가 된 칩 공급 업체가 IP 코어를 통합해 다양한 시장에 적합한 칩을 설계한다. 또는 커스텀 칩이 설계된다. 따라서 코어 IP 라이센스와 커스터마이즈가 중요한 의미를 갖게 된다.

 

ARM 기반 제품의 변형


 ARM의 설계 진행은, 코어 IP를 라이선스 하기 쉬운 방법이다. ARM은 CPU 코어를 라이센스 하는 IP 벤더로, 따라서 CPU 코어를 라이센스 하기 쉬운 형태로 설계할 필요가 있다. 라이센스 형태는 로직 코어의 설계 흐름과 밀접한 관련이 있다.

 설계흐름 속에서 소프트웨어적으로 기술된 데이터에 허가하는 경우 "소프트 매크로 (Soft Macro)" 배치 배선을 완료한 하드웨어 디자인을 라이센스 하는 경우 "하드 매크로 (Hard Macro)" 또는 더 상류의 CPU의 명령 세트 아키텍처 수준의 라이센스도 있다. ARM은 설계 흐름 속에서 다른 IP 라이센스 모델을 공존시키고 있다.

 


하드웨어 기술 언어로 쓰여져있는 현재의 코어


 현재 임베디드 CPU 코어는 논리합성 (Logic Synthesis)과 자동 레이아웃에 의한 설계를 실제 칩으로 넣기까지 자동화 / 반 자동화 되고 있는 것이 일반적이다. CPU 코어 전체에서 논리합성이 가능한 경우는 완전 합성 가능 (Fully Synthesizable) 코어로 불린다. 완전 합성 가능 CPU 코어의 설계 흐름은 HDL (Hardware Description Language : 하드웨어 기술 언어)로 작성된 CPU 코어가 최종적으로 칩의 마스크 데이터에 자동 또는 반자동으로 변환된다.

 HDL에는 "Verilog HDL '과'VHDL'의 2대 언어가 있고, Verilog HDL은 말하자면 하드웨어 업계의 C 언어적인 위치에 있다. 그 외에도 몇 가지 마이너 언어와 사내언어, 동작(behavior) 수준의 기술 언어가 있다. Intel도 2005년 까지는 "iHDL (Intel 's Hardware Description Language) "라는 Intel 독자적인 사내 HDL을 사용했으며, HDL 수준에서 업계 표준과는 달랐다. 그러나 Core i7 (Nehalem : 네할렘)에서 "SystemVerilog"로 전환했다.

 

 

Intel은 Nehalem에서 iHDL를 SystemVerilog로 전환


 HDL에 의해 작성된 논리 회로 설계 데이터는 "RTL (Register Transfer Level : 레지스터 전송 레벨)"데이터 이다. HDL 언어의 종류에서 RTL이 회로 기술의 추상화 수준에서 HDL에 따라 RTL 수준의 코드를 쓴다는 뜻이다. 레지스터와 그 사이의 논리적 기능으로서 추상화 되어 기술되어 있기 때문에 RTL로 불린다. RTL은 논리 합성 (Logic Synthesis)을 행하는 것으로, 실제 하드웨어에 대응되는 게이트 수준의 회로 설계 데이터로 변환된다.

 소프트웨어에 비유하면 HDL이 고급 프로그래밍 언어로, RTL 코드가 소스 코드, 논리 합성이 컴파일이 된다. RTL 코드는 가독성이 좋기 때문에, 읽으면 회로 구성이 판별되는 점도 프로그래밍 언어의 소스 코드와 비슷하다. 실제로, RTL 소스 코드라 불리는 경우도 많다. 마찬가지로 논리합성도 컴파일 이라고 불리는 경우도 많다. RTL의 논리 레벨 설계의 더 상류에 비헤이비어 수준의 아키텍처 설계가 있고 그쪽도 기술 언어가 개발되고 있다.

 

LSI 설계와 소프트웨어의 비유

 


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


 RTL에서는 논리합성에 의해 낮은 수준의 회로 설계 데이터 "넷리스트 (Net-List)"가 자동 생성된다. 반도체 칩의 하드웨어에 대응한 게이트 수준 (Gate Level) 기술의 논리 회로도 이다. 실제 트랜지스터에는 아직 대응하고 있지 않지만, IP는 보다 블랙 박스가 된다. 소프트웨어에 비유하면, 넷리스트는 중간 언어와 같은 것이다.

 넷리스트는 더욱 물리적 배치 배선을 자동으로 생성하는 툴 들에 넘겨주고 트랜지스터 수준의 데이터로 변환된다. 자동 레이아웃 툴에 의한 배치 배선 부착의 결과, 최종적인 다이상의 레이아웃 오브젝트 파일이 생성된다. 사실, 지금까지 원 패스가 아닌 복수의 컴파일 툴에 의한 단계를 거쳤다. 또한 최근에는 논리합성과 넷리스트에서 배치 배선을 통합적으로 행하는 흐름도 있다.

 레이아웃 데이터에서 다시 마스크 패턴이 작성되어, Fab에서 제조가 가능하게 된다. 소프트웨어에 비유하면 레이아웃과 마스크 패턴이 바이너리 코드에 해당된다.

 덧붙여서, CPU 코어의 설계에서는 자동 배치 배선을 행하지 않고 수작업으로 배선 설계를 행하는 경우도 있다. 커스텀 설계에 의한 PPA (Performance, Power, Area : 성능, 전력, 다이 면적)의 최적화를 행한다. Intel이나 AMD, IBM 등이 고성능 CPU의 설계에서 채택하고 있는 수법이다. 이 수법의 경우 PPA는 오르지만, 설계는 특정 공정에 의존하게 되며, 설계 기간과 노력이 필요하다.

 

 

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

 

 

 

완전 합성 가능 설계의 이점


 현재는 완전 합성 가능 코어를 RTL로 부터 컴파일 하는 단계에서도 툴에 의해 PPA의 고도적 최적화가 이루어지게 되었다. 그러나 커스텀 설계수법과 자동화 한 합성 2가지는 아직 공존하고 있다.

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


 프로세서 코어를 라이센스 하는 경우는 RTL로 부터 마스크까지 사이의 설계 흐름 속에서 어느 단계의 데이터를 라이센시에 건네주게 된다. 어느 단계의 IP를 전달 하느냐에 따라 동일한 IP 라이센스로도 내용이 크게 다르다. 또한 커스텀 매크로나 세미 커스텀 매크로를 포함한 코어에서는 라이센스 형태도 제약된다.

 합성 가능한 IP를 타사에 라이센스 하는 경우에는 설계 흐름의 각 단계의 데이터로 전달할 수 있다. RTL로 라이센스 하는 경우는 "소프트 매크로"또는 "소프트 코어 (Soft Core)"라고 하지만 단순히 RTL 로만 불리는 경우도 많다. 소프트 매크로는 라이센스를 받은 칩 설계 기업이 커스터마이즈를 행하는 것도 원리적으로는 가능하다. 다만 실제로 커스터마이즈 되는지 어떤지는 라이센스의 조건에 따른다. ARM의 경우는 RTL로 라이센스 하는 CPU 코어에 대해서는 캐시의 유무를 시작으로 여러가지 커스터마이즈 항목을 마련하고, 그 틀속에서 고객이 자유롭게 커스터마이즈 가능하다.

 

설계 흐름과 IP 라이센스


 RTL로 부터 논리합성한 넷리스트를 라이센스 하는 경우도 있다. IP 기업 중에는 가독성 높은 R​​TL을 건네주는 것을 싫어하는 기업이 있다. RTL의 라이센스는 소스 코드를 건네주는 것과 같다고 생각하면 싫어하는 이유도 판명된다. 넷리스트는 "팜 코어 (Firm Core)"로 ​​불리는 경우도 있고, 넓은뜻의 하드 매크로에 포함하는 경우도 있다.

 넷리스트로 부터 다시 배치 배선을 마친 데이터로 건네주는 경우는 "하드 매크로 '또는'하드웨어 IP (Hardware IP)"라고 불리는 편이다. 특정 파운드리의 특정 공정에 최적화 된 IP로 되며, 성능 / 전력 / 면적 (PPA)에 최적화 되어 있기 때문에 성능이나 전력 효율이 높다. 그 반면 완전 블랙 박스로 커스터마즈는 할 수 없다. 또한 RTL 라이센스에서도 권장하는 플로어 플래닝을 나타내는 경우도 있다.

 

 

 

 

 

 

ARM의 Cortex-A9의 TSMC 40G nm 공정에서의 하드 매크로의 예.

ARM은 성능 최적화와 전력 최적화의 두종류 하드 매크로를 준비한다.


 예전에는 IP 코어는 하드 매크로나 넷리스트가 일반적 이었다. 그러나 EDA 툴에 의한 논리합성을 이용한 설계가 일반화 되고 부터는, 소프트 매크로가 침투했다. 현재의 흐름은 소프트 매크로가 침투했지만, 성능과 전력으로의 최적화가 중요해졌기 때문에 PPA의 효율이 좋은 하드 매크로 같은 솔루션으로서 모습으로 되돌아 오고 있는 것이다. 시대가 약간 흔들 되돌아 오는 분위기 이지만, 이전의 하드 매크로 일변도였던 시대와는 상당히 다르다.

 커스텀 매크로를 많이 포함하는 코어의 경우, 라이센스 하는 경우는 하드 매크로가 기본이다. 만약 Intel의 PC 용 CPU 코어를 라이센스 하려고 하면 하드 매크로로 제공하는 것이라고 추측된다. 이 경우 Intel의 Fab에서 다른 Fab으로 옮기려면, Intel 자신이 물리적 설계를 행하지 않으면 안된다. 다만 커스텀 매크로를 포함한 코어를 RTL로 라이센스 하거나 FPGA 합성 가능한 RTL로 라이센스 하는 특수한 경우도 있다. Intel은 실제 초대 Atom (Bonnell : 본넬) 코어 등의 RTL을 FPGA 합성 가능하게 고쳐 쓰고 있었다.

 


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


 ARM의 경우는 일반적으로 RTL로 IP 라이센스 한다. 그러나 Cortex-A 패밀리에 관해서는 특정 파운드리 특정 공정에 맞춘 하드 매크로도 준비한다. 여기에 RTL에 각 파운드리의 공정기술의 최적화 데이터 'POP (Process Optimization Pack)'도 제공한다.

 즉, ARM의 Cortex-A 패밀리의 IP 라이센스는 크게 (1) RTL (2) RTL + POP (3) 하드 매크로의 3 종류가 있다. 덧붙여서, ARM도 하위 Cortex-M의 경우 POP 이나 하드 매크로는 거의 제공하지 않는다.

 

일본의 칩 컨퍼런스 'Coop Chips XV'에서 공개

Cortex-A15 하드 매크로 "Seahawk" 평면도


 하드 매크로가 가장 PPA 최적화 되어 성능이 높지만, 공정에 의존한다. RTL 베이스의 경우는 공정에 의존하지 않지만, 전혀 최적화 없는 상태로는 성능이 낮다. 다만 RTL로 부터 칩 벤더가 물리설계의 최적화를 행하는 것으로 하드 매크로의 PPA에 근접할 수 있다. ARM의 경우 RTL 라이센스로 POP을 쓰는 경우가 있어, PPA 최적화는 RTL로 부터 합성한 만큼의 경우도 하드 매크로의 중간이 된다.

 

Cortex-A9에서의 TSMC 40G 공정에서의 각 라이센스에 의한 동작 주파수의 예.

오른쪽 두개가 하드 매크로 왼쪽끝이 RTL, 오른쪽에서 두번째는 POP 이다.

 

 

ARM의 POP 솔루션


 선택으로는 커스터마이즈가 필요없고 어쨌든 짧은 설계 기간에 높은 PPA의 코어를 바라는 고객은 하드 매크로를, 자유도를 바라지만 고효율의 PPA 최적화도 수고를 들이지 않고 행하려는 경우는 POP 솔루션을, PPA 최적화를 포함하여 자기 부담 (또는 EDA 벤더의 협력)으로 실현하는 경우 RTL을, 이라는 것이다.

 ARM의 경우는 그 위에 명령 세트 아키텍처의 라이센스로 있는 아키텍처럴 라이센스도 Cortex-A에 대해서는 행하고 있다. 아키텍처럴 라이센스에서는 ARM의 라이센스 사용자는 명령 세트만 호환되면 자유롭게 자신의 요구에 맞는 CPU 코어를 설계 할 수 있다. Qualcomm의 "Snapdragon"이나 NVIDIA의 "Denver"등은 아키텍처럴 라이센스로 제로로 부터 CPU 코어를 개발하고 있다. ARM의 IP에서는 실현 될 수 없는 기능이나 성능을 실현하려는 경우는 아키텍처럴 라이센스가 된다.

 

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


 다만 ARM의 경우는 아키텍처럴 라이센스와 IP 라이센스를 조합하는 것은 할수 없다. 아키텍처럴 라이센스를 가지고 있는 벤더가 ARM 코어의 RTL의 라이센스를 받아서 RTL을 자유롭게 고쳐 쓰는 것은 일반적으로 허가되지 않는다고 ARM의 James Bruce 씨 (Lead Mobile Strategist, ARM)는 설명한다. 개조에 의해 발생하는 잠재적인 문제가 발생하는 것을 막으려 하기 때문이며, 2계통의 라이센스는 구별되며, RTL 소프트 코어는 ARM이 허용한 범위만으로 커스터마이즈 할 수 없다고 한다. 예를 들어, 아키텍처럴 라이센스를 가진 Qualcomm은 자사 코어를 개발하는 한편, Cortex-A5 및 Cortex-A7은 그대로 사용하고 있다.

 ARM의 각 라이센스 형태는 다방면에 걸쳐 있으며, 고객은 자사의 요구에 맞는 라이센스를 선택하는 것이 가능하다. 이 유연성이 ARM의 강점이 된다.

 

 

2014년 7월 10일 기사 입니다.

 

[분석정보] NVIDIA의 ARM 코어 Denver 등이 Hot Chips에서 발표

 

 

[고전 2000.08.25] 그래픽 통합 CPU 팀나(Timna)의 개요를 분명히-극적인 다이 크기 축소를 실현


 

[분석정보] ARM 코어와 x86 코어를 동등하게 다루는 AMD의 CPU 전략