시스템 온 칩

**시스템 온 칩**(, 약칭: SoC)은 하나의 집적회로에 집적된 컴퓨터나 전자 시스템 부품을 가리킨다. 디지털 신호, 아날로그 신호, 혼성 신호와 RF 기능등이 단일 칩에 구현되어 있다. 일반적으로 임베디드 시스템 영역에 주로 사용된다.

특정 응용에서 시스템 온 칩을 구현할 수 없을 경우, 단일 패키지에 여러 칩을 구성한 단일패키지 시스템 (SIP)을 사용할 수 있다. 시스템 온 칩은 단일면적에 제조되는 소자수가 많아지고 패키지가 단순해지기 때문에 생산비용이 크게 감소되는 것으로 신뢰성을 얻는다.

2008년 6월 2일에 엔비디아는 공식적으로 방송용 기능이 탑재된 시스템 온 칩, 엔비디아 테그라 제품군을 발표했다.

## 구성
오른쪽|300px|섬네일|마이크로컨트롤러기반 시스템 온 칩
일반적인 시스템 온 칩의 구성은 다음과 같다:
* 1개 이상의 마이크로컨트롤러, 마이크로프로세서나 디지털 신호 처리기 코어를 포함한다.
* 롬, 램, 이이피롬과 플래시 메모리 중 일부가 포함된 메모리 블록이 있다.
* 진동자와 위상 고정 루프를 포함한 타이밍 발생기가 있다.
* 카운터-타이머, 실시간 타이머와 전원 초기화 발생기를 포함한 주변장치가 있다.
* 범용 직렬 버스, 파이어와이어, 이더넷, 범용 비동기 송수신, 직렬 주변장치 인터페이스 버스같은 산업표준 외부 인터페이스가 있다.
* 아날로그-디지털 변환회로와 디지털-아날로그 변환회로가 내장된 아날로그 인터페이스가 있다.
* 전압 레귤레이터와 전원 관리 회로를 포함하고 있다.

이런 블록들은 지적재산 버스나 ARM 유한회사가 개발한 AMBA 버스같은 산업표준 버스로 연결된다. 직접 메모리 접근 제어기는 데이터가 프로세서 코어를 거치지 않고 외부 인터페이스와 메모리 사이에 직접 연결하는 것을 가능하게 해서, 시스템 온 칩의 데이터 처리속도를 증가시킨다.

## 발열
Soc는 주로 스마트폰 CPU & GPU와 RAM으로 많이 쓰인다. 해당 Soc가 탑재된 소프트웨어에 따라 다르지만 대부분 발열이 매우 심하다.
과거에는 간단한 정보만을 수신 및 송신할 수 있는 것에 그쳐 단순하게 그래픽 디스플레이에 탑재된 SoC를 사용하였는데 시대가 바뀌고 응용 프로그램들의 발전과 그래픽 시뮬레이션의 업그레이드로 인해 좀 더 복잡한 방정식을 해결하기 위한 최소 요구 사양이 증가함에 따라 발열도 함께 증가하게 되었다.

그래서 게임 또는 그래픽 시뮬레이션과 같이 모바일로 고사양 응용 프로그램을 실행시키면 디바이스에 매우 심한 발열이 발생한다.
섬네일|대표적인 모바일에 탑재된 히트파이프 중 갤럭시 S7, S7edge에 탑재된 히트 파이프다.

요즘 새롭게 공정이 되어 출시되는 Soc는 최적화가 잘 되어 있어 예전처럼 심하지는 않지만 그래도 마찬가지로 고사양 프로그램을 실행시키면 디바이스에 매우 심한 발열이 발생한다. Soc와 같이 반도체 자체에서 발열이 심하게 발생하여 지속적인 고온의 상태가 유지될 경우, Soc 칩 자체에서 냉납이 발생한다. 그렇게 되면 Soc가 재기능을 하지 못하게 되어 결국 메인보드 자체가 다운된다.

사람으로 비유하면 사람이 고강도 운동을 격하게 할수록 운동 에너지가 열 에너지로 전환되어 체온이 올라가듯이 SoC도 마찬가지로 복잡한 방정식들로 구성되어 있어 응용 프로그램을 구동하면 당연히 온도가 올라갈 수 밖에 없다. 그 이유는 단순한 물리 법칙으로 설명할 수 있다. 바로 열역학법칙과 에너지 보존 법칙때문인데 이들은 사용하면 할수록 엔트로피 법칙과 에너지 보존 법칙으로 인해 전기 에너지가 열 에너지로 변형된다. 즉 앞서 서술했듯이 좀 더 복잡한 방정식의 체계로 이루어진 응용 프로그램을 실행할 시 전력을 더 많이 먹게 되는데 그에 따라 전기 에너지가 열 에너지로 전환되는 양도 증가하는 것이기에 발열이 발생하는 것이다.

발열이 발생하는 과정은 열역학 제 1법칙에 의해 설명된다. 우선 일을 함과 동시에 열 에너지가 발생함에 따라 이걸 수식으로 표현하면 열역학 제 1법칙과 유사하지만 다음과 같다.
dU = dp + dv

여기서 d는 SoC가 어떤 일을 처리하기 위해 시작한 전기 생산량을 뜻하고

인간은 이를 해결하기 위해 쿨링 매커니즘을 바로 체내에 있는 수분을 배출시켜 열을 식히는 원리로 쿨링 시스템이 이루어져 있는 반면 SoC는 동물이 아니기에 이들의 쿨링 시스템은 직접 하드웨어적, 소프트웨어적 방법으로 쿨링 시스템을 도입해야 한다. 그래서 SoC의 발열을 해결하기 위해서 여러 방안들이 나오고 있고 이를 보완하기 위해 앞서 서술한 두 가지 방법이 시행되는데 첫 번째로는 하드웨어적 방법인 히트파이프를 설치하는 것이다. 실제로 대부분의 스마트폰 제조사에선 히트 파이프를 설치하여 발열을 감소시키고 또 방열 패드 및 방열 스티커를 통해 열 전도 극대화를 위한 써멀을 도포 후 쿨링 시스템 체계를 만든다.

두 번째, 소프트웨어적 방법은 소프트웨어의 최적화와 Ram 자체의 소비량을 절제 시켜 발열을 감소 시키는 것이다. 다만 이 방법은 과거 2010년 초중반에만 해당이 됐었지 시간이 지날 수록 소프트웨어로 최적화를 시켜 발열을 감소 시키는 방법은 그렇게 발열 쿨링에 큰 효과가 없다. 그래서 2016년에서 대부분의 제조사에서 히트파이프를 도입한 것. 게다가 쿨러를 설치해도 기종마다 다르지만 공정과 제조사가 설계를 이상하게 하면 위 두 가지의 쿨링 시스템 방법을 적용했더라 해도 디바이스가 고온의 온도로 유지될 것이다. 그 이유는 시간이 지나면 지날 수록 점점 프로그램들의 요구 사양이 높아지고 또 프로그램들의 퍼포먼스가 증가함에 따라 그만큼 SoC가 감당해야 할 정보도 많아지는 것이다. 만약 프로그램 자체에서 요구 사양이 낮았으면 히트 파이프가 설치 되는 경우는 거의 없었을 것이다.

하지만 요즘에는 제조사가 아닌 다른 업체에서 자체적으로 만드는 쿨링 시스템이 도입되어 있으며 벌써 외부에서 장착하는 쿨러들이 출시하였다. 위키백과의 규정상 사이트는 따로 첨부할 수는 없지만 그래도 확실히 쿨링 효과는 있다.

## 애플리케이션 프로세서
스마트폰, 태블릿에서 명령해석, 연산, 제어 등 사람의 두뇌 역할을 하는 핵심 부품(반도체)이다. 명령해석, 연산, 제어 등을 하면서 PC나 컴퓨터와 달리 CPU(중앙처리장치)라고 부르지 않는 이유는, CPU의 기능 외에도 GPU(그래픽프로세서)와 설계에 따라 통신 칩(3G, 블루투스, Wi-Fi 등)과 USB와 같은 부가기능까지 하나의 칩에 포합시켜 놓는 칩셋의 형태로 구성되었기 때문이다. 추가로 난제를 해결하기 위한 알고리즘도 일반적인 CPU와 달리 복잡한 체계로 이루어져 있다. 그래서 해당 칩셋을 SoC(System on Chip)이라고도 불리며, 말 그대로 직역하면 CPU와 GPU등 칩 하나에 여러 기능을 집적시켜 모든 애플리케이션 구동과 시스템장치, 여러 인터페이스 장치 등을 제어하고 관장하는 장치로, 부피를 줄이고(기존의 컴퓨터에 사용되는 칩 보다), 전력소모를 최소화 할 수 있게 되어 한손에 들고 다닐 수 있는 초소형의 컴퓨터(스마트폰이나 태블릿)이다. 다만 부피가 작은 만큼 그에 따라 공정도 까다로워 단가가 비싸고 성능도 일반 연산 장치와 달리 느리기에 PC나 컴퓨터에선 CPU 또는 GPU 자체에선 SoC를 잘 사용하지 않는다.

### 종류

## 설계 흐름
오른쪽|300px|섬네일|시스템 온 칩 설계 흐름
시스템 온 칩은 위에서 기술한 하드웨어와 마이크로컨트롤러, 마이크로프로세서, 디지털 신호 처리기 코어, 주변장치와 인터페이스를 제어하는 소프트웨어로 구성된다. 설계 흐름은 시스템 온 칩용 하드웨어와 소프트웨어를 동시에 개발하는 것을 보여준다.

대부분의 시스템 온 칩은 위에서 기술한 하드웨어 구성이 사전에 검증된 하드웨어 블록을 서로 연결하고, 동작을 제어하는 소프트웨어 드라이버를 추가하여 개발된다. 가장 중요한 것은 범용 직렬 버스처럼 산업표준 인터페이스를 제어하는 프로토콜 스택이다. 하드웨어 블록은 컴퓨터 지원 설계 도구를 사용하여 서로 붙인다. 소프트웨어 모듈은 소프트웨어 개발 환경을 사용하여 집적시킨다.

설계 흐름의 핵심 단계는 에뮬레이션이다. 하드웨어는 시스템 온 칩의 동작을 흉내내는 현장 프로그래머블 게이트 어레이 (FPGA)기반 에뮬레이션 플랫폼에 연결되고, 소프트웨어 모듈은 에뮬레이션 플랫폼의 메모리에 기록된다. 한번 프로그램되면, 에뮬레이션 플랫폼은 시스템 온 칩의 하드웨어와 소프트웨어를 실제 동작속도에서 테스트하고 디버그하는 것이 가능하다.

시스템 온 칩 흐름은 하드웨어를 에뮬레이션한 후에 제조하기 이전에 집적회로 설계의 배치 및 배선 단계를 거친다.

반도체 칩은 외주로 생산하기 이전에 논리적 정확성을 검증한다. 검증공정은 ASIC 검증이라고 불린다. 베릴로그와 VHDL은 검증에 사용되는 일반적인 하드웨어 기술 언어이다. 반도체 칩의 다양성이 증가하면서, 시스템베릴로그, 시스템C, e와 오픈베라같은 하드웨어 기술 언어가 사용되기도 한다. 검증 단계에서 발견된 버그는 설계자에게 보고된다.

## 제조
시스템 온 칩은 다음 기술에 의하여 제조될 수 있다.
* 표준셀
* FPGA

## 장단점
시스템 온 칩 설계는 일반적으로 멀티칩 시스템보다 소비전력이 적고 생산단가가 저렴하며 높은 신뢰성을 갖는다. 또한 여러 패키지를 사용하는 시스템보다 조립 비용이 크게 감소한다. 따라서 기존 시스템을 대체함으로써 얻게 되는 이익이 많다. 또 칩 하나의 시스템으로 여러 가지 프로세싱 및 작업을 할 수 있어 그래픽 디스플레이에 유용하게 쓰인다.

## 같이 보기
* 단일칩 시스템 공급사의 목록
* 주문형 반도체 (ASIC)
* 마이크로컨트롤러
* 전자설계 자동화

## 각주

## 외부 링크
*  시스템 온 칩 기사
*  MIPS 아키텍처 기반 시스템 온 칩 
*  프론티어 학회지
*  
*  시스템 온 칩
*  하이브리드 CPU/FPGA 부품을 사용하여 하이브리드스레드  프로그램할 수 있게 설계된 반-커스텀 멀티프로세서 시스템 온 칩
*  하이브리드 CPU/FPGA 부품을 사용한 시스템 온 칩
*  시스템 온 칩 암 인사이드
*  SOCC 연례 IEEE 국제 시스템 온 칩 회의


분류:회로 설계
분류:전자공학
분류:컴퓨터 공학
분류:하드웨어 가속
분류:ASIC