
시스템 온 칩(영어: System on Chip, 약칭: SoC)은 컴퓨터나 전자 시스템의 핵심 구성 요소 대부분 또는 전부를 단일 마이크로칩에 통합한 집적 회로이다. 일반적으로 SoC는 중앙 처리 장치(CPU)와 메모리, 입출력, 그리고 데이터 저장 제어 기능을 포함하며, 그래픽 처리 장치(GPU), 와이파이 연결성, 무선 주파수 처리와 같은 선택적 기능을 함께 갖춘다. 이러한 높은 수준의 통합은 별도의 개별 부품에 대한 필요성을 최소화하여 전성비를 향상시키고 장치 설계를 단순화한다.
고성능 SoC는 종종 LPDDR과 같은 전용 메모리 및 eUFS나 eMMC와 같은 플래시 저장 장치 칩과 결합되며, 이들은 패키지 온 패키지(PoP) 구성으로 SoC 바로 위에 적층되거나 마더보드의 근처에 배치된다. 일부 SoC는 셀룰러 모뎀과 같은 특수 칩과 함께 작동하기도 한다.
기본적으로 SoC는 하나 이상의 프로세서 코어와 핵심 주변 장치를 통합한다. 이러한 포괄적인 통합은 마이크로컨트롤러가 설계되는 방식과 개념적으로 유사하지만, 훨씬 더 큰 계산 능력을 제공한다. 이러한 통합 설계는 기존의 멀티칩 아키텍처에 비해 전력 소비를 낮추고 반도체 다이 면적을 줄이지만, 모듈성과 부품 교체 가능성이 감소한다는 대가를 치른다.
SoC는 소형의 에너지 효율적인 설계가 중요한 모바일 컴퓨팅 분야에서 어디에나 존재한다. SoC는 스마트폰, 태블릿 컴퓨터, 스마트워치를 구동하며, 데이터 소스 근처에서 실시간 데이터 처리가 이루어지는 에지 컴퓨팅 분야에서도 점점 더 중요해지고 있다.

일반적으로 세 가지 유형의 SoC를 구분할 수 있다.
SoC는 모든 컴퓨팅 작업에 적용할 수 있다. 그러나 일반적으로 태블릿, 스마트폰, 스마트워치, 넷북과 같은 모바일 컴퓨팅뿐만 아니라 임베디드 시스템 및 이전에 마이크로컨트롤러가 사용되던 응용 분야에 사용된다.
이전에 마이크로컨트롤러만 사용할 수 있던 분야에서 SoC가 임베디드 시스템 시장에서 두각을 나타내고 있다. 더 긴밀한 시스템 통합은 더 나은 신뢰성과 평균 무고장 시간을 제공하며, SoC는 마이크로컨트롤러보다 더 고급 기능과 컴퓨팅 성능을 제공한다. 응용 분야로는 AI 가속, 임베디드 머신 비전, 데이터 수집, 원격 측정법, 벡터 프로세서 및 생활환경지능이 포함된다. 임베디드 SoC는 종종 사물인터넷, 멀티미디어, 네트워킹, 통신 및 에지 컴퓨팅 시장을 겨냥한다. 임베디드 응용 분야를 위한 SoC의 예로는 ST마이크로일렉트로닉스의 STM32, 라즈베리 파이의 RP2040, AMD의 Zynq 7000이 있다.

모바일 컴퓨팅 기반 SoC는 항상 프로세서, 메모리, 온칩 캐시, 무선망 기능, 그리고 종종 디지털 카메라 하드웨어 및 펌웨어를 하나로 묶는다. 메모리 용량이 증가함에 따라, 하이엔드 SoC는 종종 온칩 메모리나 플래시 저장 장치를 갖추지 않고, 대신 메모리와 플래시 메모리가 SoC 바로 옆이나 위(패키지 온 패키지)에 배치된다. 모바일 컴퓨팅 SoC의 몇 가지 예는 다음과 같다.
1992년, 아콘 컴퓨터는 ARM250 SoC를 탑재한 A3010, A3020 및 A4000 시리즈 개인용 컴퓨터를 생산했다. 이는 기존 아콘 ARM2 프로세서와 메모리 컨트롤러(MEMC), 비디오 컨트롤러(VIDC), I/O 컨트롤러(IOC)를 하나로 합친 것이었다. 이전의 아콘 ARM 아키텍처 기반 컴퓨터에서는 이들이 4개의 개별 칩이었다. ARM7500 칩은 ARM700, VIDC20, IOMD 컨트롤러를 기반으로 한 2세대 SoC였으며, 셋톱박스 및 이후 아콘 개인용 컴퓨터와 같은 임베디드 장치에 널리 라이선스되었다.
태블릿 및 랩톱 제조업체는 하드웨어 및 펌웨어 모듈의 더 긴밀한 시스템 통합과 LTE 및 기타 무선망 통신 기능의 칩 내 통합(네트워크 인터페이스 컨트롤러)을 통해 전력 소비 감소, 성능 및 신뢰성 향상을 이루어냈다.
최신 랩톱 및 미니 PC에서 AMD 라이젠 및 인텔 코어 프로세서의 저전력 변형 모델은 CPU, 내장 그래픽(iGPU), 칩셋 및 기타 프로세서를 단일 패키지에 통합한 SoC 설계를 사용한다. 그러나 이러한 x86 프로세서는 여전히 외부 메모리와 저장 장치 칩을 필요로 한다.
SoC는 소프트웨어 코드를 실행하는 마이크로프로세서를 비롯하여, 이러한 기능 모듈 간을 연결, 제어, 지시 및 인터페이스하는 통신 서브시스템을 포함한 하드웨어 실행 장치로 구성된다.
SoC는 최소 하나 이상의 프로세서 코어를 가져야 하며, 일반적으로는 하나 이상의 코어를 가진다. 프로세서 코어는 마이크로컨트롤러, 마이크로프로세서(μP), 디지털 신호 처리 장치(DSP) 또는 애플리케이션 도메인별 명령어 집합 프로세서(ASIP) 코어일 수 있다. ASIP는 특정 작업 부하 유형에 대해 범용 명령어보다 효율적으로 설계된 애플리케이션 도메인 맞춤형 명령어 집합을 갖는다. 멀티프로세서 SoC는 정의상 하나 이상의 프로세서 코어를 가진다. ARM 아키텍처는 일부 ARM 아키텍처 코어가 반도체 IP 코어로 지정된 소프트 마이크로프로세서이기 때문에 SoC 프로세서 코어로 흔히 선택된다.
SoC는 마이크로컨트롤러나 다른 임베디드 시스템과 마찬가지로 계산을 수행하기 위해 반도체 메모리 블록을 가져야 한다. 응용 분야에 따라 SoC 메모리는 메모리 계층 구조 및 캐시 계층을 형성할 수 있다. 모바일 컴퓨팅 시장에서는 이것이 일반적이지만, 많은 저전력 일렉트로닉스 임베디드 마이크로컨트롤러에서는 반드시 필요한 것은 아니다. SoC를 위한 메모리 기술에는 고정 기억 장치(ROM), 랜덤 액세스 메모리(RAM), EEPROM 및 플래시 메모리가 포함된다. 다른 컴퓨터 시스템과 마찬가지로 RAM은 상대적으로 빠르지만 비싼 SRAM과 느리지만 저렴한 DRAM으로 나눌 수 있다. SoC가 캐시 계층을 가질 때, SRAM은 일반적으로 프로세서 레지스터와 코어의 내장 캐시를 구현하는 데 사용되고, DRAM은 주기억장치로 사용된다. SoC가 다중 처리를 수행할 때 "주기억장치"는 단일 프로세서(멀티 코어일 수 있음)에 특화될 수 있으며, 이 경우 분산 메모리가 되어 다른 프로세서에서 접근하려면 온칩 인터모듈 통신을 통해 전송되어야 한다. 멀티프로세싱 메모리 문제에 대한 자세한 내용은 캐시 일관성 및 메모리 레이턴시를 참조하라.
SoC는 일반적으로 통신 프로토콜을 위한 외부 전기 인터페이스를 포함한다. 이는 종종 USB, 이더넷, SPI, HDMI, I²C, CSI 등과 같은 업계 표준을 기반으로 한다. 이러한 인터페이스는 의도된 응용 분야에 따라 다르다. 와이파이, 블루투스, 6LoWPAN 및 근거리 무선 통신과 같은 무선망 프로토콜도 지원될 수 있다.
필요한 경우 SoC는 신호 처리를 위해 디지털-아날로그 변환회로를 포함한 아날로그 인터페이스를 포함한다. 이들은 스마트 트랜스듀서를 포함한 다양한 유형의 센서나 액추에이터와 인터페이스할 수 있다. 이들은 특정 응용 분야의 모듈이나 실드와 인터페이스할 수 있다. 또는 아날로그 센서가 SoC에 내장되어 있고 그 판독값을 수학적 처리를 위해 디지털 신호로 변환해야 하는 경우와 같이 SoC 내부에 있을 수도 있다.
디지털 신호 처리 장치(DSP) 코어는 SoC에 자주 포함된다. 이들은 센서, 액추에이터, 데이터 수집, 데이터 분석 및 멀티미디어 처리를 위한 SoC 내의 신호 처리 작업을 수행한다. DSP 코어는 일반적으로 VLIW 및 SIMD 명령어 집합 구조를 특징으로 하며, 따라서 병렬 처리 및 슈퍼스칼라 실행을 통해 명령어 수준 병렬성을 활용하는 데 매우 적합하다.: 4 DSP 코어는 종종 애플리케이션별 명령어를 특징으로 하며, 따라서 일반적으로 애플리케이션 도메인별 명령어 집합 프로세서(ASIP)이다. 이러한 애플리케이션별 명령어는 해당 명령어를 계산하는 전용 하드웨어 실행 장치에 대응된다.
다른 컴퓨터 시스템과 마찬가지로 SoC는 클럭 신호를 생성하고 SoC 기능의 실행을 제어하며 필요한 경우 SoC의 신호 처리 응용 프로그램에 시간 맥락을 제공하기 위해 타이밍 소스가 필요하다. 널리 사용되는 시간 소스는 결정 진동자와 위상동기회로이다.
계수기-타이머, 실시간 타이머 및 파워온 리셋 발생기를 포함한 SoC 주변기기도 있다. SoC는 또한 전압 조정기 및 전원 관리 회로를 포함한다.
SoC는 많은 실행 장치로 구성된다. 이러한 장치는 데이터를 주고받아야 하는 경우가 많다. 이 때문에 가장 단순한 SoC를 제외한 모든 SoC는 통신 서브시스템을 필요로 한다. 원래 다른 마이크로컴퓨터 기술과 마찬가지로 데이터 버스 아키텍처가 사용되었지만, 최근에는 네트워크 온 칩(NoC)으로 알려진 희소 상호통신 네트워크 기반 설계가 두각을 나타내고 있으며 향후 SoC 설계에서 버스 아키텍처를 추월할 것으로 예상된다.
역사적으로 공유 전역 컴퓨터 버스가 SoC의 서로 다른 구성 요소(블록)를 연결하는 것이 일반적이었다. SoC 통신을 위한 매우 일반적인 버스는 ARM의 로열티 프리 어드밴스트 마이크로컨트롤러 버스 아키텍처(AMBA) 표준이다.
직접 메모리 접근 컨트롤러는 CPU나 제어 장치를 우회하여 외부 인터페이스와 SoC 메모리 간에 데이터를 직접 라우팅함으로써 SoC의 데이터 처리량을 증가시킨다. 이는 컴포넌트 기반 멀티칩 모듈 PC 아키텍처의 일부 주변기기 장치 드라이버와 유사하다.
지속적인 소형화로 인해 배선 지연은 확장 불가능하며, 컴퓨터 성능은 연결된 코어 수에 따라 확장되지 않고, 전력을 지속 가능하게 유지하려면 코어가 추가될 때마다 SoC의 작동 주파수가 감소해야 하며, 긴 와이어는 많은 양의 전력을 소비한다. 이러한 도전 과제는 SoC에서 매니코어 프로세서 시스템을 지원하는 데 방해가 된다.: xiii
2010년대 후반, 버스 기반 프로토콜 대신 네트워크와 유사한 토폴로지로 통신 서브시스템을 구현하는 SoC의 추세가 나타났다. SoC에 더 많은 프로세서 코어를 탑재하는 추세로 인해 온칩 통신 효율성이 전체 시스템 성능과 비용을 결정하는 핵심 요소 중 하나가 되었다.: xiii 이로 인해 버스 기반 네트워크의 병목 현상을 극복하기 위해 라우터 기반 패킷 교환을 사용하는 "네트워크 온 칩"(NoC) 상호연결 네트워크가 등장하게 되었다.: xiii
네트워크 온 칩은 대상 및 응용 분야별 라우팅, 더 큰 전력 효율성, 버스 경합 가능성 감소와 같은 장점을 가진다. 네트워크 온 칩 아키텍처는 온칩 통신을 위해 전송 제어 프로토콜(TCP) 및 인터넷 프로토콜 스위트와 같은 통신 프로토콜에서 영감을 얻었지만, 일반적으로 네트워크 계층이 더 적다. 최적의 네트워크 온 칩 네트워크 아키텍처는 많은 연구 관심이 집중되는 분야이다. NoC 아키텍처는 토러스 상호연결, 하이퍼큐브, 메시 망 및 트리 네트워크와 같은 전통적인 분산 컴퓨팅 네트워크 아키텍처에서 유전 알고리즘 스케줄링, 분기형 랜덤 워크와 같은 확률적 알고리즘에 이르기까지 다양하다.
많은 SoC 연구자는 NoC 아키텍처가 SoC 설계의 전력 및 처리량 요구 사항을 효율적으로 충족하는 것으로 입증되었기 때문에 SoC 설계의 미래라고 생각한다. 현재 NoC 아키텍처는 2차원적이다. SoC 내 코어 수가 증가함에 따라 2D IC 설계는 플로어플래닝 선택에 제한이 있으므로, 3차원 집적 회로(3DIC)가 등장함에 따라 SoC 설계자들은 3DNoC라고 불리는 3차원 온칩 네트워크 구축을 모색하고 있다.

시스템 온 칩은 구조에 기술된 하드웨어와 마이크로컨트롤러, 마이크로프로세서 또는 디지털 신호 처리 장치 코어, 주변기기 및 인터페이스를 제어하는 소프트웨어로 구성된다. SoC를 위한 설계 흐름은 이 하드웨어와 소프트웨어를 동시에 개발하는 것을 목표로 하며, 이를 하드웨어/소프트웨어 공동 설계라고도 한다. 설계 흐름은 또한 최적화와 제약 조건을 고려해야 한다.
대부분의 SoC는 위에서 설명한 하드웨어 요소 및 실행 장치를 위한 사전 검증된 하드웨어 구성 요소인 반도체 IP 코어 사양과 함께, 이들의 작동을 제어할 수 있는 소프트웨어 장치 드라이버로부터 개발된다. 특히 USB와 같은 업계 표준 인터페이스를 구동하는 프로토콜 스택이 중요하다. 하드웨어 블록은 컴퓨터 지원 설계 도구, 특히 전자 설계 자동화 도구를 사용하여 함께 구성되며, 소프트웨어 모듈은 소프트웨어 통합 개발 환경을 사용하여 통합된다.
SoC 구성 요소는 종종 C++, 매트랩 또는 SystemC와 같은 고급 프로그래밍 언어로 설계되고, C to HDL 또는 flow to HDL과 같은 고수준 합성 도구를 통해 레지스터 전송 수준(RTL) 설계로 변환된다. "알고리즘 합성"이라고 불리는 HLS 제품을 사용하면 설계자가 C++를 사용하여 시스템, 회로, 소프트웨어 및 검증 수준을 모두 단일 고급 언어로 모델링하고 합성할 수 있다. 다른 구성 요소는 소프트웨어로 남아 SoC에 모듈로 포함된 소프트 마이크로프로세서에 컴파일 및 내장될 수 있다.
SoC의 컴퓨터 구조가 정의되면 새로운 하드웨어 요소는 회로 동작을 정의하는 레지스터 전송 수준(RTL)이라는 추상 하드웨어 기술 언어로 작성되거나, 고수준 합성 도구를 통해 고급 언어에서 RTL로 합성된다. 이러한 요소들은 하드웨어 기술 언어로 연결되어 전체 SoC 설계를 만든다. 이러한 구성 요소를 연결하고 다른 벤더가 제공하는 서로 다른 인터페이스 간을 변환하기 위해 지정된 논리를 글루 로직이라고 한다.
칩은 반도체 파운드리에 보내지기 전에 검증 정확성을 확인한다. 이 과정을 기능 검증이라고 하며, 집적 회로 설계 수명 주기에서 소비되는 시간과 에너지의 상당 부분, 종종 70%를 차지한다. 칩의 복잡성이 증가함에 따라 시스템베릴로그, SystemC, e, OpenVera와 같은 하드웨어 검증 언어가 사용되고 있다. 검증 단계에서 발견된 버그는 설계자에게 보고된다.
전통적으로 엔지니어들은 테이프 아웃이라 불리는 설계 최종화 이전에 SoC 설계의 하드웨어와 소프트웨어를 검증하고 디버그하기 위해 시뮬레이션 가속, 에뮬레이션 또는 재구성 가능 컴퓨팅 하드웨어에서의 프로토타이핑을 사용해 왔다. FPGA는 FPGA 프로토타이핑이 재프로그래밍 가능하고 디버그가 가능하며 ASIC보다 유연하기 때문에 SoC 프로토타이핑에 선호된다.
고용량과 빠른 컴파일 시간을 가진 시뮬레이션 가속과 에뮬레이션은 시스템에 대한 넓은 가시성을 제공하는 강력한 기술이다. 그러나 두 기술 모두 MHz 단위로 느리게 작동하며, 이는 SoC의 작동 주파수보다 최대 100배 더 느릴 수 있다. 또한 가속 및 에뮬레이션 박스는 100만 달러가 넘는 매우 크고 비싼 장비이다.
반면 FPGA 프로토타입은 FPGA를 직접 사용하여 엔지니어가 실제 상황과 같은 시스템의 전체 작동 주파수 또는 그에 근접한 속도로 유효성 검사 및 테스트를 수행할 수 있게 한다. Certus와 같은 도구는 FPGA RTL에 프로브를 삽입하여 신호를 관찰할 수 있게 하는 데 사용된다. 이는 로직 분석기와 유사한 기능으로 여러 FPGA에 걸쳐 하드웨어, 펌웨어 및 소프트웨어 상호 작용을 디버그하는 데 사용된다.
이와 병행하여 하드웨어 요소는 그룹화되어 논리 합성 과정을 거치며, 여기서 작동 주파수 및 예상 신호 지연과 같은 성능 제약 조건이 적용된다. 이는 설계를 물리적 회로와 그 상호연결로 기술하는 넷리스트라는 출력을 생성한다. 이러한 넷리스트는 구성 요소를 연결하는 글루 로직과 결합되어 칩에 인쇄될 수 있는 회로로서의 SoC의 회로도 기술을 생성한다. 이 과정을 배치 및 배선이라고 하며 SoC가 ASIC으로 생산될 경우 테이프 아웃 이전에 수행된다.
SoC는 전력 사용, 다이 면적, 통신, 모듈 장치 간의 참조 국부성을 위한 배치 및 기타 요소를 최적화해야 한다. 최적화는 SoC의 필수 설계 목표이다. 최적화가 필요하지 않다면 엔지니어는 시스템의 면적 사용, 전력 소비 또는 성능을 고려하지 않고 멀티칩 모듈 아키텍처를 사용할 것이다.
SoC 설계를 위한 일반적인 최적화 목표는 다음과 같다. 일반적으로 이러한 수량을 최적화하는 것은 어려운 조합 최적화 문제이며, NP-난해 문제일 수 있다. 따라서 정교한 최적화 알고리즘이 종종 필요하며, 경우에 따라 근사 알고리즘이나 휴리스틱을 사용하는 것이 실용적일 수 있다. 또한 대부분의 SoC 설계에는 동시에 최적화해야 할 여러 변수가 포함되어 있으므로 SoC 설계에서는 파레토 효율성 솔루션이 모색된다. 종종 이러한 수량을 최적화하는 목표는 서로 상충하여 SoC 설계 최적화의 복잡성을 더하고 시스템 설계에서 트레이드오프를 발생시킨다.
트레이드오프 및 요구사항 분석에 대한 더 넓은 범위는 요구공학을 참조하라.
SoC는 SoC의 기능을 수행하는 데 사용되는 전력을 최소화하도록 최적화된다. 대부분의 SoC는 저전력을 사용해야 한다. SoC 시스템은 종종 긴 배터리 수명을 요구하며, 자율 기능을 유지하면서 전원 없이 몇 달 또는 몇 년 동안 작동할 수 있어야 하고, 종종 한 지역에 많은 수의 임베디드 시스템 SoC가 네트워킹되어 전력 사용이 제한된다. 또한 에너지 비용이 높을 수 있으며 에너지를 절약하면 SoC의 총소유비용이 절감된다. 마지막으로 높은 에너지 소비로 인한 폐열은 너무 많은 열이 방출되면 다른 회로 구성 요소를 손상시킬 수 있으므로 에너지를 절약해야 하는 또 다른 실용적인 이유가 된다. 회로에서 사용되는 에너지의 양은 시간 경과에 따른 소비된 일률의 적분이며, 평균 일률 소비율은 전류와 전압의 곱이다. 옴의 법칙에 따르면 일률은 전류의 제곱 곱하기 저항 또는 전압의 제곱 나누기 저항과 같다:
SoC는 스마트폰, GPS 내비게이션, 디지털 시계, 스마트워치 및 넷북과 같은 휴대용 장치에 자주 내장된다. 고객은 모바일 컴퓨팅 장치의 긴 배터리 수명을 원하며, 이것이 SoC에서 전력 소비를 최소화해야 하는 또 다른 이유이다. 비디오 게임, 비디오 스트리밍, 영상 처리를 포함한 멀티미디어 응용 프로그램이 이러한 장치에서 자주 실행되며, 이들 모두 최근 사용자의 요구와 더 높은 비디오 품질의 멀티미디어에 대한 기대치로 인해 계산 복잡도가 증가했다. 기대치가 고해상도 3D 비디오로 이동함에 따라 SoC는 표준 모바일 배터리로 작동할 수 있는 저전력이면서도 계산 능력이 뛰어난 플랫폼이어야 한다.: 3
SoC는 전성비(와트당 성능) 측면에서 전성비를 극대화하도록 최적화된다. 즉, 주어진 전력 예산 내에서 SoC의 성능을 극대화한다. 에지 컴퓨팅, 분산 컴퓨팅 및 생활환경지능과 같은 많은 응용 프로그램은 일정 수준의 컴퓨터 성능을 요구하지만 대부분의 SoC 환경에서 전력은 제한적이다.
SoC 설계는 칩에서의 폐열 방출을 최소화하도록 최적화된다. 다른 집적 회로와 마찬가지로 높은 전력 밀도로 인해 발생하는 열은 부품의 추가적인 소형화에 대한 병목 현상이다.: 1 고속 집적 회로, 특히 마이크로프로세서를 포함한 SoC의 전력 밀도는 매우 불균일해졌다. 너무 많은 폐열은 회로를 손상시키고 시간이 지남에 따라 회로의 신뢰성을 저하시킬 수 있다. 고온과 열 응력은 신뢰성, 일렉트로마이그레이션, 감소된 평균 무고장 시간, 와이어 본딩, 그리고 시간이 지남에 따라 SoC의 다른 성능 저하에 부정적인 영향을 미친다.: 2–9
특히 대부분의 SoC는 물리적으로 작은 영역이나 부피를 차지하므로 시스템 밖으로 열이 확산될 공간이 거의 없어 폐열의 영향이 가중된다. 최신 장치의 높은 트랜지스터 카운트로 인해 충분한 처리량과 높은 트랜지스터 밀도를 갖춘 레이아웃은 제조 공정에서 물리적으로 실현 가능하더라도 회로 부피 내에서 허용할 수 없을 정도로 높은 열을 발생시키는 경우가 많다.: 1
이러한 열적 영향은 SoC 및 기타 칩 설계자가 보수적인 설계 마진을 적용하게 하여, 치명적 장애의 위험을 완화하기 위해 성능이 낮은 장치를 만들게 한다. 선폭이 작아짐에 따라 트랜지스터 밀도가 증가하여, 각 공정 세대는 이전 세대보다 더 많은 열을 생성한다. 이 문제를 더욱 복잡하게 만드는 것은 SoC 아키텍처가 일반적으로 이기종이며, 균일한 수동 냉각으로는 효과적으로 완화할 수 없는 공간적으로 불균일한 열유속을 생성한다는 점이다.: 1
SoC는 계산 및 통신 처리량을 극대화하도록 최적화된다.
SoC는 일부 또는 모든 기능에 대해 레이턴시를 최소화하도록 최적화된다. 이는 모듈, 실행 장치 및 메모리 간의 상호연결 지연을 최소화하고 데이터가 통신되는 속도를 극대화하기 위해 적절한 근접성과 참조 국부성을 갖추어 요소를 배치함으로써 달성할 수 있다. 일반적으로 레이턴시를 최소화하기 위한 최적화는 충족 가능성 문제와 동등한 NP-완전 문제이다.
프로세서 코어에서 실행되는 태스크의 경우 태스크 스케줄링을 통해 레이턴시와 처리량을 개선할 수 있다. 그러나 일부 작업은 응용 분야별 하드웨어 장치에서 실행되며, 태스크 스케줄링만으로는 타이밍 및 처리량 제약을 충족하기 위해 모든 소프트웨어 기반 작업을 최적화하기에 충분하지 않을 수 있다.
시스템 온 칩은 표준 하드웨어 검사와 타당성 검증 기술로 모델링되지만, 위의 최적화 목표에 대한 다기준 의사결정 분석 측면에서 시스템을 최적으로 만들기 위해 SoC 설계 대안을 모델링하고 최적화하는 추가 기술이 사용된다.
태스크 스케줄링은 단일 프로세서 코어를 공유하는 여러 프로세스 또는 스레드가 있는 모든 컴퓨터 시스템에서 중요한 활동이다. SoC의 프로세서 코어에서 실행되는 임베디드 소프트웨어의 레이턴시를 줄이고 처리량을 높이는 것이 중요하다. SoC의 모든 중요한 컴퓨팅 활동이 온칩 프로세서에서 실행되는 소프트웨어로 수행되는 것은 아니지만, 스케줄링은 소프트웨어 기반 작업 및 공유 자원을 포함하는 기타 작업의 성능을 크게 향상시킬 수 있다.
SoC에서 실행되는 소프트웨어는 종종 네트워크 스케줄링 및 확률적 스케줄링 알고리즘에 따라 작업을 스케줄링한다.
하드웨어 및 소프트웨어 작업은 프로세서 설계에서 종종 파이프라이닝된다. 파이프라이닝은 컴퓨터 구조에서 스피드업을 위한 중요한 원칙이다. 이들은 CPU(예: 클래식 RISC 파이프라인) 및 그래픽 처리 장치(그래픽스 파이프라인)에 자주 사용되지만, SoC의 맥락에서 디지털 신호 처리 및 멀티미디어 조작과 같은 애플리케이션별 작업에도 적용된다.
SoC는 종종 확률적 모델, 대기행렬 네트워크 및 마르코프 연쇄를 통해 분석된다. 예를 들어, 리틀의 법칙을 사용하면 SoC 상태 및 NoC 버퍼를 도착 프로세스로 모델링하고 포아송 변수 및 포아송 과정을 통해 분석할 수 있다.
SoC는 마르코프 연쇄의 이산 시간 및 연속 시간 변형 모델로 자주 모델링된다. 마르코프 연쇄 모델링을 사용하면 전력, 열, 레이턴시 및 기타 요인의 정상 상태 분포를 점근적 분석하여 일반적인 경우에 대해 설계 결정을 최적화할 수 있다.
SoC 칩은 일반적으로 MOS 기술을 사용하여 제조된다. 위에서 설명한 넷리스트는 설계자의 의도를 SoC 설계로 변환하기 위한 물리적 설계(배치 및 배선) 흐름의 기초로 사용된다. 이 변환 과정 전반에 걸쳐 설계는 정적 타이밍 모델링, 시뮬레이션 및 기타 도구를 사용하여 주파수, 전력 소비 및 방출, 기능적 무결성(레지스터 전송 수준 코드에 기술된 대로), 전기적 무결성과 같은 지정된 작동 매개변수를 충족하는지 확인하기 위해 분석된다.
모든 알려진 버그가 수정되고 재검증되며 모든 물리적 설계 검사가 완료되면, 칩의 각 층을 기술하는 물리적 설계 파일이 파운드리의 마스크 샵으로 전송되어 유리 리소그래피 마스크의 전체 세트가 식각된다. 이는 패키징 및 테스트 전에 SoC 다이를 생성하기 위해 웨이퍼 제조 공장으로 전송된다.
SoC는 다음을 포함한 여러 기술로 제조될 수 있다.
ASIC은 FPGA보다 전력을 덜 소비하고 더 빠르지만 재프로그래밍할 수 없으며 제조 비용이 비싸다. FPGA 설계는 소량 설계에 더 적합하지만, 충분한 생산 유닛 이후에는 ASIC이 총소유비용을 절감한다.
SoC 설계는 대체하는 멀티칩 시스템보다 전력을 적게 소비하고 비용이 낮으며 신뢰성이 높다. 시스템의 패키지 수가 적어 조립 비용도 절감된다.
그러나 대부분의 VLSI 설계와 마찬가지로, 수율 저하와 높은 초기 개발비로 인해 동일한 기능을 여러 작은 칩에 분산하는 것보다 하나의 큰 칩에 대한 총비용이 더 높다.
특정 응용 분야에 SoC를 구축하는 것이 실현 가능하지 않을 때, 대안은 단일 칩 캐리어에 여러 칩을 포함하는 시스템 인 패키지(SiP)이다. 대량 생산 시 SoC는 패키징이 더 단순하기 때문에 SiP보다 비용 효율적이다. SiP가 선호될 수 있는 또 다른 이유는 기능 구성 요소가 너무 가깝게 배치되어 특정 목적에 대해 SoC의 폐열이 너무 높을 수 있기 때문이며, SiP에서는 물리적으로 더 멀리 떨어져 있으므로 다른 기능 모듈에서 열이 더 잘 방출된다.
시스템 온 칩의 몇 가지 예는 다음과 같다.
SoC 연구개발은 종종 많은 옵션을 비교한다. COSMIC과 같은 벤치마크가 이러한 평가를 돕기 위해 개발되었다.
In interviews most of the interviewers are asking questions on "What is Difference between Verification and Validation?" Many people use verification and validation interchangeably but both have different meanings.