본문 바로가기
IT

단일 칩 시스템 (System On Chip, SoC)

by 비준 2022. 10. 3.

단일 칩 시스템 (System On Chip, SoC)

단일 칩 시스템 (System On Chip, SoC)는 하나의 집적회로에 집적된 컴퓨터나 전자 시스템 부품을 말한다. 디지털 신호, 아날로그 신호, 혼성 신호와 RF 기능 등이 단일 칩에 구현이 되어있다. 일반적으로 임베디드 시스템 영역에서 주로 사용된다.

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

 

- 구성

일반적인 단일 칩 시스템 구성

> 1개 이상의 마이크로 컨트롤러, 마이크로 프로세서나 디지털 신호 처리기 코어를 포함한다.

> ROM, RAM, 이이피 ROM과 플래시 메모리 중 일부가 포함된 메모리 블록이 있다.

> 진동자와 위상 고정 루프를 포함한 타이밍 발생기가 있다.

> 카운터-타이머, 실시간 타이머와 전원 초기화 발생기를 포함한 주변 장치가 있다.

> 범용 직렬버스, 파이어와이어, 이더넷, 범용 비동기 송수신, 직렬 주변 장치 인터페이스 버스 같은 산업 표준 외부 인터페이스가 있다.

> 아날로그-디지털 변환 회로와 디지털-아날로그 변환 회로가 내장된 아날로그 인터페이스가 있다.

> 전압 레귤레이터와 전원 관리 회로를 포함하고 있다.

 

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

 

발열

SoC는 주로 스마트폰 CPU & GPU와 RAM으로 많이 쓰인다. 해당 SoC가 탑재된 소프트웨어에 따라 다르지만 대부분 발열이 매우 심하다. 과거에는 정보 통신만 수신 및  송신 정도만 할 수 있어 단순하게 그래픽 디스플레이에 탑재된 SoC를 사용하였는데 시대가 바뀌고 응용 프로그램들의 발전과 그래픽 시뮬레이션들의 업그레이드로 인해 좀 더 복잡한 방정식을 해결해야 함에 따라 요구사항이 증가됨과 같이 발열도 함께 증가하였다. 그래서 게임 또는 그래픽 시뮬레이션과 같이 모바일로 고사양  응용프로그램을 실행시키면 디바이스에 매우 심한 발열이 발생한다. 요즘 새롭게 공정이 되어 출시하는 SoC는 최적화가 잘되어 있어 예전처럼 심하지는 않지만 그래도 마찬가지로 고사양 프로그램을 실행 시키면 디바이스에 매우 심한 발열이 발생한다. SoC와 같이 반도체 자체에서 발열이 심하게 발생하여 지속적인 고온의 상태가 유지될 경우 , SoC 칩 자체에서 냉납이 발생한다. 그렇게 되면 SoC가 재기능을 하지 못하게 되어 결국 메인보드 자체가 다운된다.

사람으로 비유하자면 사람이 고강도 운동을 격하게 할수록 운동 에너지가 열 에너지로 전환되어 체온이 올라가듯이 SoC도 마찬가지로 응용 프로그램을 구동하면 당연히 처리 프로세스가 빠르게 돌아가기 때문에 온도가 올라갈 수밖에 없다. 그 이유는 단순한 물리 법칙으로 설명이 가능하다. 열역학 법칙과 에너지 보존 법칙으로 설명이 가능한데 이들은 사용하면 사용할수록 엔트로피 법칙과 에너지 보존 법칙으로 인해 전기 에너지가 열 에너지로 변형된다. 앞에 말했듯이 복잡한 응용프로그램을 실행하면 프로세스가 빠르게 돌아가기 때문에 전력을 더 많이 먹게 되는데 그에 따라 전기 에너지가 열 에너지로 전환되는 양도 증가하기 때문에 발열이 발생하는 것이다.

 

발열이 발생되는 과정은 열역학 제1법칙에 의해 설명이 가능하다. 일을 함과 동시에 열 에너지가 발생된다. 이를 수식으로 표현하면 열역학 제1법칙과 유사하지만 다음과 같다

 

<math>dU = dp + dv (여기서 d는 SoC가 어떤 일을 처리하기 위해 시작된 전기 생산량을 뜻한다.)

 

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

두 번째인 소프트웨어적 방법은 소프트웨어 최적화와 RAM 자체의 소비량을 절제시켜 발열을 감소시키는 것이다. 그런데 이 방법은 2010년 초중반에만 적용을 하였었고 시간이 지날수록 소프트웨어로 최적화를 시켜 발열을 감소 시키는 방법은 그렇게 발열 쿨링에 큰 효과가 없다는 것을 알게되었다. 그래서 2016년 초중반에서 대부분의 제조사에서 하드웨어적 방법인 히트파이프를 도압하였다. 게다가 쿨러를 설치하여도 기종마다 다르지만 공정과 제조사가 설계를 이상하게 하면 위 2가지 쿨링 시스템 방법을 적용하였다 하더라도 디바이스가 고온상태가 될 것이다. 왜냐하면 시간이 지날 수록 점점 프로그램들의 요구사항이 높아지고, 프로그램들의 퍼포먼스가 증가함에 따라 그만큼 SoC가 감당해야 할 정보도 많아지기 때문이다. 만약 프로그램 자체에서 요구사항이 낮았으면 히트파이프가 설치되는 경우는 많지 않았을 것이다. 하지만 요즘에는 제조사가 아닌 다른 업체에서 자체적으로 만드는 쿨링 시스템이 도입되어 있으며,  외부에 장착하는 쿨러들도 출시하였다.

 

설계의 흐름

단일 칩 시스템은 위에서 말한 하드웨어와 마이크로 컨트롤러, 디지털 신호 처리기 코어, 주변 장치와 인터페이스를 제어하는 소프트웨어로 구성된다. 설계 흐름은 단일 칩 시스템용 하드웨어와 소프트웨어를 동시에 개발하는 것을 보여준다. 대부분의 단일 칩 시스템 위에서 말한 하드웨어 구성이 사전에 검증된 하드웨어 블록을 서로 연결하고 동작을 제어하는 소프트웨어 드라이버를 추가하여 개발한다. 가장 중요한 것은 범용 직렬 버스처럼 산업 표준 인터페이스를 제어하는 프로토콜 스택이다. 하드웨어 블록은 컴퓨터 지원 설계 도구를 사용하여 서로 붙인다. 소프트웨어 모듈은 소프트웨어 개발 환경을 사용하여 집적시킨다. 

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

단일 칩 시스템 흐름은 하드웨어를 에뮬레이션 한 후에 제조하기 이전에 집적회로의 설계의 배치 및 배선 단계를 거친다. 반도체 칩은 외주로 생산하기 이전에 논리적 정확성을 검증한다. 검증 공정은 ASIC 검증이라고 불린다. 베릴로그와 VHDL은 검증에 사용되는 일반적인 하드웨어 기술 언어이다. 반도체 칩의 다양성이 증가되면서 시스템 베릴로그, 시스템 C, e와 오픈베라같은 하드웨어 기술 언어가 사용되기도 한다.

 

검증 단계에서 발견한 버그는 설계자에게 보고된다.

'IT' 카테고리의 다른 글

컴퓨터 과학 (Computer Science)  (0) 2022.10.19
플래시 메모리 (Flash memory)  (0) 2022.10.19
무선 통신 (Wireless Communication)  (0) 2022.09.28
스트리밍 (Streaming)  (0) 2022.09.27
스크럼 (Scrum, 애자일 개발 프로세스)  (0) 2022.09.27

댓글