SoC란 무엇인가
스마트폰 뒷면을 열면 손톱만 한 칩 하나가 보인다. 그 칩 안에는 30년 전 데스크톱 컴퓨터의 메인보드에 흩어져 있던 부품, 즉 CPU, 그래픽 카드, 사운드 카드, 네트워크 카드, 메모리 컨트롤러가 전부 들어 있다. 거기에 사진을 처리하는 ISP, 인공지능을 돌리는 NPU, 5G 모뎀까지 더해졌다. 이렇게 시스템 전체를 칩 하나에 담은 것을 시스템 온 칩(SoC, System on Chip)이라 부른다. 이 장에서는 이 책 전체에서 함께 뜯어볼 가상의 칩 SB-1을 처음 만난다.
- SoC가 여러 칩을 하나로 합친 이유를 배선 길이·에너지·면적으로 설명할 수 있다.
- 스마트폰 SoC의 주요 블록(CPU, GPU, NPU, ISP, DSP, 모뎀, NoC, 메모리 컨트롤러)의 역할을 구분한다.
- 작업마다 일하는 블록이 다르고, 그래서 전력이 블록 단위로 관리된다는 것을 확인한다.
- "계산보다 데이터 이동이 비싸다"는 SoC 설계의 제1원칙을 숫자로 체감한다.
메인보드가 칩 하나로 줄어들기까지
1990년대 PC를 열면 큼직한 초록색 기판(메인보드) 위에 칩이 여기저기 꽂혀 있었다. CPU는 소켓에, 그래픽은 확장 카드에, 메모리 컨트롤러는 "노스브리지"라는 별도 칩에 있었다. 칩과 칩은 기판에 새긴 구리 선으로 이어졌다. 이 선은 수 cm 길이에, 칩 밖으로 신호를 내보내려면 굵은 출력 드라이버가 필요했다.
반도체 공정이 미세해지자 한 칩에 넣을 수 있는 트랜지스터가 2년마다 두 배씩 늘었다. 남는 트랜지스터로 무엇을 할까? 답은 옆 칩을 끌어들이는 것이었다. 아래 그림의 슬라이더를 움직여 기판 위의 부품을 하나의 다이로 모아 보자.
통합의 이득은 세 가지다. 첫째, 에너지. 칩 밖으로 신호를 보내는 일은 칩 안에서 보내는 것보다 수십~수백 배 비싸다. 배터리로 하루를 버텨야 하는 휴대폰에서 이 차이는 결정적이다. 둘째, 속도. 짧은 배선은 지연이 작고, 칩 안에서는 수천 가닥의 넓은 버스를 깔 수 있다(칩 밖으로는 핀 수가 한정되어 있다). 셋째, 크기와 원가. 부품 수가 줄면 기판이 작아지고 조립이 쉬워진다.
대가도 있다. 칩 하나가 커지고 복잡해져서 설계·검증에 수천 명이 수년을 매달린다. 한 블록에 결함이 나면 칩 전체를 버려야 할 수도 있다. 공정 하나로 CPU, SRAM, 아날로그 회로를 모두 만들어야 하니 각자에게 최적인 공정을 고를 수 없다. 이 대가가 너무 커지자 최근에는 SoC를 다시 여러 조각(칩렛(Chiplet))으로 나누는 흐름도 생겼다. 이 이야기는 17장에서 한다.
기준 칩 SB-1 둘러보기
이 책은 가상의 스마트폰 SoC SB-1을 기준으로 삼는다. 3 nm급 공정에서 만든 약 106 mm² 크기의 다이에 트랜지스터 약 190억 개가 들어 있다. 블록의 배치와 크기 비율은 2023~2025년에 공개된 실제 스마트폰 칩의 다이 사진 분석을 참고해 단순화했다. 블록에 마우스를 올리거나 눌러 보자. 아래 칩 버튼으로 같은 종류의 블록만 골라 볼 수도 있다.
SB-1 다이 탐험
몇 가지가 눈에 띈다. 먼저 CPU 코어는 생각보다 작다. 큰 코어 셋과 작은 코어 넷을 합쳐도 다이의 10% 남짓이다. 그보다 큰 것이 GPU와 캐시다. 캐시(노란색)는 L3와 시스템 캐시를 합치면 다이의 1/7에 이른다. 데이터를 칩 안에 붙잡아 두는 일이 그만큼 중요하다는 뜻이다. 둘째, 가장자리를 메모리 PHY와 I/O가 차지한다. 칩 밖과 대화하는 회로는 패드(핀)와 가까워야 하기 때문이다. 셋째, 전용 블록이 많다. ISP, 비디오 코덱, DSP, NPU는 하나의 일만 잘하는 회로다. 왜 범용 CPU 하나로 모든 일을 하지 않는지는 이 장 마지막 절과 11장에서 답한다.
| 블록 | 하는 일 | 비유 | 장 |
|---|---|---|---|
| CPU | 운영체제와 앱의 일반 코드 실행. 분기 많고 예측하기 어려운 일 | 무엇이든 하는 만능 일꾼 | 3–4 |
| 캐시 | 자주 쓰는 데이터를 칩 안에 보관 | 책상 위 서랍 | 5–6 |
| 메모리 컨트롤러 | 칩 밖 LPDDR DRAM과의 통로, 명령 순서 결정 | 창고 관리인 | 7 |
| NoC | 블록 사이 데이터 운반 | 도로망 | 8 |
| GPU | 같은 계산을 수천 화소·정점에 동시에 | 똑같은 일을 하는 수천 명의 작업자 | 9 |
| NPU | 신경망의 행렬 곱 | 곱셈만 하는 거대한 계산판 | 10 |
| ISP · 코덱 · DSP | 카메라 영상 처리, 영상 압축, 음성 신호 처리 | 한 가지 일만 하는 공장 라인 | 11 |
| 전력·클럭 | 블록별 전압·주파수 조절, 끄고 켜기 | 전기 배전반 | 12–14 |
| I/O | 저장장치·USB·센서와의 연결 | 항구 | 15 |
| 보안 | 부팅 검증, 키 보관, 암호화 | 금고 | 16 |
무엇을 하느냐에 따라 일하는 블록이 다르다
SoC의 블록들은 늘 동시에 바쁘지 않다. 화면이 꺼진 채 주머니 속에 있을 때는 거의 모든 블록이 잠들어 있고, 음성 명령을 기다리는 DSP와 작은 코어 하나 정도만 깨어 있다. 게임을 켜면 GPU와 큰 코어가 깨어나고, 카메라를 켜면 ISP와 NPU가 바빠진다. 아래에서 상황을 골라 다이가 어떻게 달아오르는지 보자.
작업별 전력 지도
클럭이 1.3배가 되려면 전압도 올려야 한다. 전압이 클럭에 비례해 오른다고 가정하면?
답 보기
동적 전력은 \(P \propto V^2 f\)이므로 전압과 클럭이 함께 1.3배면 \(1.3^3 \approx 2.2\)배다. 성능은 많아야 1.3배 좋아지는데 전력은 두 배가 넘는다. 위 시뮬레이터에서 직접 확인해 보자. 그래서 휴대폰은 꼭 필요할 때만 잠깐 클럭을 올린다. 이 계산을 정확히 하는 법은 12장에서 다룬다.
이 구조가 SoC 전력 관리의 출발점이다. 블록마다 전원과 클럭을 따로 두면 일하지 않는 블록은 클럭을 멈추고(클럭 게이팅), 아예 전원을 끌 수도 있다(전원 게이팅). SB-1 같은 칩에는 이런 독립된 전원 영역이 수십 개 있다.
사진 한 장이 칩 안을 여행하는 길
블록들은 혼자 일하지 않는다. 셔터를 누르는 순간부터 사진이 저장될 때까지, 데이터는 여러 블록을 차례로 거친다. 그 사이를 잇는 것이 온칩 네트워크(NoC)와 DRAM이다. 단계를 하나씩 넘기며 데이터가 어디로 가는지 따라가 보자.
사진 한 장의 여행
여행을 마치고 나면 한 가지가 분명해진다. 사진 한 장(1,200만 화소, 원시 데이터 약 18 MB)을 만드는 동안 데이터는 DRAM을 여러 번 오간다. 계산 자체보다 데이터를 옮기는 데 드는 에너지와 시간이 SoC 성능을 좌우하는 경우가 많다. 그래서 SoC 설계자는 블록 사이에 시스템 캐시(SLC)를 두고, ISP와 NPU처럼 자주 이어 붙는 블록이 DRAM을 거치지 않고 바로 데이터를 넘길 수 있게 만든다.
계산은 싸고, 데이터 이동은 비싸다
앞 절의 교훈을 숫자로 확인해 보자. 2014년 Mark Horowitz가 정리한 45 nm 공정의 에너지 표는 지금도 칩 설계자들이 즐겨 인용한다. 공정이 바뀌면 절대값은 줄지만 비율은 크게 변하지 않았다. 아래에서 두 연산을 골라 보자. 오른쪽 연산 한 번의 에너지로 왼쪽 연산을 몇 번 할 수 있는지 점으로 보여 준다.
이 표가 SoC의 모양을 거의 다 설명한다. 캐시가 다이의 큰 몫을 차지하는 이유, NPU가 가중치를 칩 안 SRAM에 붙잡아 두려고 애쓰는 이유, ISP와 NPU를 DRAM 없이 바로 잇는 이유, CPU·GPU·메모리를 칩 하나에 모은 이유가 모두 "데이터를 덜 움직이자"로 모인다.
앞으로 어떤 블록을 만나든 두 질문을 던져 보자. ① 이 블록은 데이터를 어디서 가져오는가? ② 그 데이터를 가져오는 데 드는 비용이 계산 비용보다 큰가? 거의 모든 설계 결정이 이 두 질문의 답에서 나온다.
트랜지스터 190억 개는 어디서 왔나
1965년 고든 무어는 칩 하나에 넣는 부품 수가 해마다 두 배가 된다고 내다봤고, 1975년에 이를 "2년마다 두 배"로 고쳤다. 이것이 무어의 법칙(Moore's law)이다. 아래는 한 회사의 스마트폰 SoC 세대별 트랜지스터 수(공개 발표값)다. 두 배가 되는 주기를 바꿔 직선을 점에 맞춰 보자.
트랜지스터가 늘어도 칩의 전력 예산(휴대폰은 지속 3~5 W)은 그대로다. 트랜지스터 하나가 쓰는 전력이 공정마다 충분히 줄지 않자, 모든 트랜지스터를 동시에 켤 수 없는 상황이 왔다. 이를 다크 실리콘(Dark silicon)이라 부른다. 역설적으로 이것이 전용 블록이 늘어난 이유다. 어차피 한꺼번에 다 켤 수 없다면, 평소에는 꺼 두었다가 필요할 때만 켜서 아주 효율적으로 일하는 블록을 여럿 두는 편이 낫다.
범용과 전용 사이: 효율의 사다리
같은 계산을 CPU로 할 수도, 전용 회로로 할 수도 있다. CPU는 명령어를 하나 실행할 때마다 명령어를 가져오고, 해독하고, 레지스터를 읽고 쓰는 데 에너지를 쓴다. 정작 덧셈 자체는 그 에너지의 몇 %에 불과하다. 전용 회로는 이 "관리 비용"이 거의 없다. 아래 슬라이더로 한 연산에 붙는 관리 비용을 바꿔 보자.
이 사다리의 위쪽(CPU)은 무엇이든 할 수 있지만 비효율적이고, 아래쪽(전용 회로)은 효율이 수백 배 좋지만 한 가지 일밖에 못 한다. GPU·DSP·NPU는 그 중간 어딘가에 있다. 어떤 일을 어떤 블록에 맡길지 정하는 것이 SoC 설계, 그리고 그 위에서 도는 소프트웨어의 핵심 과제다. 이 책의 나머지는 이 사다리를 한 칸씩 내려가며 각 블록의 내부를 열어 본다.
| SoC 구성 요소 | SB-1 (가상) | 참고: 2024~2025년 플래그십 스마트폰 칩 범위(대략) |
|---|---|---|
| 공정 | 3 nm급 | 3~4 nm급 |
| 다이 면적 | 106 mm² | 약 100~140 mm² |
| 트랜지스터 | 190억 | 약 150억~250억 |
| CPU | 3 + 4 코어 | 6~10 코어, 최고 3.5~4.3 GHz |
| NPU 성능 | ~40 TOPS | 약 35~50 TOPS (INT8) |
| 메모리 | LPDDR5X 64비트 | LPDDR5X, 64비트, 약 60~85 GB/s |
| 지속 전력 예산 | ~4 W | 약 3~6 W (순간 최대 10 W 이상) |
핵심 정리
- SoC는 CPU·GPU·NPU·ISP·DSP·모뎀·메모리 컨트롤러·I/O를 한 다이에 모은 칩이다. 통합의 이득은 에너지, 속도, 크기다.
- 칩 밖으로 비트를 보내는 일은 칩 안보다 수십~수백 배 비싸다. DRAM 한 번 읽기 ≈ 덧셈 수천 번.
- 스마트폰 SoC에서 CPU 코어 자체는 다이의 일부일 뿐이고, GPU·캐시·전용 블록이 큰 몫을 차지한다.
- 작업마다 일하는 블록이 다르므로 전원과 클럭을 블록 단위로 관리한다. 성능 모드를 조금 올리면 전력은 세제곱에 가깝게 는다.
- 범용(CPU) → SIMD·GPU → DSP·NPU → 전용 회로로 갈수록 효율은 좋아지고 유연성은 줄어든다.
확인 퀴즈
Q1. 여러 칩을 SoC 하나로 합쳤을 때 얻는 가장 큰 에너지상의 이득은?
Q2. Horowitz의 45 nm 표에서 DRAM에서 32비트를 읽는 에너지는 32비트 정수 덧셈의 약 몇 배인가?
Q3. 휴대폰이 주머니 속에서 "헤이 OO" 같은 음성 호출어를 기다릴 때 주로 깨어 있는 블록은?
Q4. 전압과 클럭을 함께 20% 올리면 동적 전력은 대략 몇 배가 되는가?
Q5. "다크 실리콘"이 전용 블록(ISP, 코덱, NPU)이 늘어난 이유가 되는 까닭은?