Chapter 01

SoC란 무엇인가

스마트폰 뒷면을 열면 손톱만 한 칩 하나가 보인다. 그 칩 안에는 30년 전 데스크톱 컴퓨터의 메인보드에 흩어져 있던 부품, 즉 CPU, 그래픽 카드, 사운드 카드, 네트워크 카드, 메모리 컨트롤러가 전부 들어 있다. 거기에 사진을 처리하는 ISP, 인공지능을 돌리는 NPU, 5G 모뎀까지 더해졌다. 이렇게 시스템 전체를 칩 하나에 담은 것을 시스템 온 칩(SoC, System on Chip)이라 부른다. 이 장에서는 이 책 전체에서 함께 뜯어볼 가상의 칩 SB-1을 처음 만난다.

메인보드가 칩 하나로 줄어들기까지

1990년대 PC를 열면 큼직한 초록색 기판(메인보드) 위에 칩이 여기저기 꽂혀 있었다. CPU는 소켓에, 그래픽은 확장 카드에, 메모리 컨트롤러는 "노스브리지"라는 별도 칩에 있었다. 칩과 칩은 기판에 새긴 구리 선으로 이어졌다. 이 선은 수 cm 길이에, 칩 밖으로 신호를 내보내려면 굵은 출력 드라이버가 필요했다.

반도체 공정이 미세해지자 한 칩에 넣을 수 있는 트랜지스터가 2년마다 두 배씩 늘었다. 남는 트랜지스터로 무엇을 할까? 답은 옆 칩을 끌어들이는 것이었다. 아래 그림의 슬라이더를 움직여 기판 위의 부품을 하나의 다이로 모아 보자.

칩 개수8
평균 연결 거리—
1비트 보내는 에너지—
초당 100 GB 옮길 때—
그림 1-1. 만져 보기슬라이더를 오른쪽으로 끌면 흩어진 칩이 한 다이로 모인다. 칩 밖으로 나가는 신호는 패키지 핀·기판 배선·상대 칩의 입력 회로를 모두 충전해야 해서 비트당 수~수십 pJ이 들지만, 다이 안의 짧은 배선은 mm당 0.1 pJ 안팎이다. 오른쪽 아래 숫자는 같은 대역폭을 옮길 때 드는 전력이다.

통합의 이득은 세 가지다. 첫째, 에너지. 칩 밖으로 신호를 보내는 일은 칩 안에서 보내는 것보다 수십~수백 배 비싸다. 배터리로 하루를 버텨야 하는 휴대폰에서 이 차이는 결정적이다. 둘째, 속도. 짧은 배선은 지연이 작고, 칩 안에서는 수천 가닥의 넓은 버스를 깔 수 있다(칩 밖으로는 핀 수가 한정되어 있다). 셋째, 크기와 원가. 부품 수가 줄면 기판이 작아지고 조립이 쉬워진다.

대가도 있다. 칩 하나가 커지고 복잡해져서 설계·검증에 수천 명이 수년을 매달린다. 한 블록에 결함이 나면 칩 전체를 버려야 할 수도 있다. 공정 하나로 CPU, SRAM, 아날로그 회로를 모두 만들어야 하니 각자에게 최적인 공정을 고를 수 없다. 이 대가가 너무 커지자 최근에는 SoC를 다시 여러 조각(칩렛(Chiplet))으로 나누는 흐름도 생겼다. 이 이야기는 17장에서 한다.

기준 칩 SB-1 둘러보기

이 책은 가상의 스마트폰 SoC SB-1을 기준으로 삼는다. 3 nm급 공정에서 만든 약 106 mm² 크기의 다이에 트랜지스터 약 190억 개가 들어 있다. 블록의 배치와 크기 비율은 2023~2025년에 공개된 실제 스마트폰 칩의 다이 사진 분석을 참고해 단순화했다. 블록에 마우스를 올리거나 눌러 보자. 아래 칩 버튼으로 같은 종류의 블록만 골라 볼 수도 있다.

EXPLORE

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가 바빠진다. 아래에서 상황을 골라 다이가 어떻게 달아오르는지 보자.

SIMULATOR

작업별 전력 지도

블록 종류별 전력
SoC 전력—
가장 뜨거운 블록—
배터리 시간 (화면 포함)—
열지도는 블록별 활동률(0~100%)이다. 전력은 블록마다 "최대 활동일 때의 전력 × 활동률"에 누설 전력을 더한 교육용 모델이다. 성능 모드를 올리면 전압과 주파수가 함께 올라 동적 전력이 대략 \(V^2 f\)에 비례해 늘어난다(12장). 배터리는 5,000 mAh·3.85 V(약 19 Wh), 화면이 켜진 상황은 패널 1 W를 더했다.
성능 모드를 1.3배로 올리면 게임 전력은 몇 배가 될까?

클럭이 1.3배가 되려면 전압도 올려야 한다. 전압이 클럭에 비례해 오른다고 가정하면?

답 보기

동적 전력은 \(P \propto V^2 f\)이므로 전압과 클럭이 함께 1.3배면 \(1.3^3 \approx 2.2\)배다. 성능은 많아야 1.3배 좋아지는데 전력은 두 배가 넘는다. 위 시뮬레이터에서 직접 확인해 보자. 그래서 휴대폰은 꼭 필요할 때만 잠깐 클럭을 올린다. 이 계산을 정확히 하는 법은 12장에서 다룬다.

이 구조가 SoC 전력 관리의 출발점이다. 블록마다 전원과 클럭을 따로 두면 일하지 않는 블록은 클럭을 멈추고(클럭 게이팅), 아예 전원을 끌 수도 있다(전원 게이팅). SB-1 같은 칩에는 이런 독립된 전원 영역이 수십 개 있다.

사진 한 장이 칩 안을 여행하는 길

블록들은 혼자 일하지 않는다. 셔터를 누르는 순간부터 사진이 저장될 때까지, 데이터는 여러 블록을 차례로 거친다. 그 사이를 잇는 것이 온칩 네트워크(NoC)와 DRAM이다. 단계를 하나씩 넘기며 데이터가 어디로 가는지 따라가 보자.

STEP

사진 한 장의 여행

이 단계에서 옮긴 데이터—
누적 DRAM 왕복—
누적 이동 에너지 (대략)—

여행을 마치고 나면 한 가지가 분명해진다. 사진 한 장(1,200만 화소, 원시 데이터 약 18 MB)을 만드는 동안 데이터는 DRAM을 여러 번 오간다. 계산 자체보다 데이터를 옮기는 데 드는 에너지와 시간이 SoC 성능을 좌우하는 경우가 많다. 그래서 SoC 설계자는 블록 사이에 시스템 캐시(SLC)를 두고, ISP와 NPU처럼 자주 이어 붙는 블록이 DRAM을 거치지 않고 바로 데이터를 넘길 수 있게 만든다.

계산은 싸고, 데이터 이동은 비싸다

앞 절의 교훈을 숫자로 확인해 보자. 2014년 Mark Horowitz가 정리한 45 nm 공정의 에너지 표는 지금도 칩 설계자들이 즐겨 인용한다. 공정이 바뀌면 절대값은 줄지만 비율은 크게 변하지 않았다. 아래에서 두 연산을 골라 보자. 오른쪽 연산 한 번의 에너지로 왼쪽 연산을 몇 번 할 수 있는지 점으로 보여 준다.

기준 연산 (작은 점 하나)
비교할 연산
그림 1-2. 만져 보기연산별 에너지(45 nm, 0.9 V, Horowitz ISSCC 2014). 32비트 덧셈 0.1 pJ, 32비트 부동소수점 곱셈 3.7 pJ, 8 KB SRAM에서 32비트 읽기 5 pJ, 칩 밖 DRAM에서 32비트 읽기 640 pJ. DRAM 한 번 읽을 에너지로 덧셈을 6,400번 할 수 있다.

이 표가 SoC의 모양을 거의 다 설명한다. 캐시가 다이의 큰 몫을 차지하는 이유, NPU가 가중치를 칩 안 SRAM에 붙잡아 두려고 애쓰는 이유, ISP와 NPU를 DRAM 없이 바로 잇는 이유, CPU·GPU·메모리를 칩 하나에 모은 이유가 모두 "데이터를 덜 움직이자"로 모인다.

이 책을 읽는 요령

앞으로 어떤 블록을 만나든 두 질문을 던져 보자. ① 이 블록은 데이터를 어디서 가져오는가? ② 그 데이터를 가져오는 데 드는 비용이 계산 비용보다 큰가? 거의 모든 설계 결정이 이 두 질문의 답에서 나온다.

트랜지스터 190억 개는 어디서 왔나

1965년 고든 무어는 칩 하나에 넣는 부품 수가 해마다 두 배가 된다고 내다봤고, 1975년에 이를 "2년마다 두 배"로 고쳤다. 이것이 무어의 법칙(Moore's law)이다. 아래는 한 회사의 스마트폰 SoC 세대별 트랜지스터 수(공개 발표값)다. 두 배가 되는 주기를 바꿔 직선을 점에 맞춰 보자.

맞춤 오차 (로그 RMS)—
이 주기로 2030년 예측—
그림 1-3. 만져 보기세로축은 로그 눈금이다. 2013~2017년에는 1.5년 남짓마다 두 배였지만 최근에는 증가가 느려졌다. 주기를 바꿔 가며 어느 구간에 맞는지 보자. 공정 미세화가 느려진 만큼, 남은 성장은 더 큰 다이와 칩렛, 3D 적층에서 나온다.

트랜지스터가 늘어도 칩의 전력 예산(휴대폰은 지속 3~5 W)은 그대로다. 트랜지스터 하나가 쓰는 전력이 공정마다 충분히 줄지 않자, 모든 트랜지스터를 동시에 켤 수 없는 상황이 왔다. 이를 다크 실리콘(Dark silicon)이라 부른다. 역설적으로 이것이 전용 블록이 늘어난 이유다. 어차피 한꺼번에 다 켤 수 없다면, 평소에는 꺼 두었다가 필요할 때만 켜서 아주 효율적으로 일하는 블록을 여럿 두는 편이 낫다.

범용과 전용 사이: 효율의 사다리

같은 계산을 CPU로 할 수도, 전용 회로로 할 수도 있다. CPU는 명령어를 하나 실행할 때마다 명령어를 가져오고, 해독하고, 레지스터를 읽고 쓰는 데 에너지를 쓴다. 정작 덧셈 자체는 그 에너지의 몇 %에 불과하다. 전용 회로는 이 "관리 비용"이 거의 없다. 아래 슬라이더로 한 연산에 붙는 관리 비용을 바꿔 보자.

그림 1-4. 만져 보기막대는 연산 하나당 에너지를 "실제 계산"(진한 색)과 "명령어 처리·데이터 이동 같은 관리 비용"(연한 색)으로 나눈 대략값이다(Hameed 외 2010, Dally 외 2020의 분석을 단순화). 한 명령으로 여러 데이터를 처리하면(SIMD·GPU) 관리 비용이 나뉘어 줄어든다. 전용 회로는 관리 비용 자체가 거의 없다.

이 사다리의 위쪽(CPU)은 무엇이든 할 수 있지만 비효율적이고, 아래쪽(전용 회로)은 효율이 수백 배 좋지만 한 가지 일밖에 못 한다. GPU·DSP·NPU는 그 중간 어딘가에 있다. 어떤 일을 어떤 블록에 맡길지 정하는 것이 SoC 설계, 그리고 그 위에서 도는 소프트웨어의 핵심 과제다. 이 책의 나머지는 이 사다리를 한 칸씩 내려가며 각 블록의 내부를 열어 본다.

SoC 구성 요소SB-1 (가상)참고: 2024~2025년 플래그십 스마트폰 칩 범위(대략)
공정3 nm급3~4 nm급
다이 면적106 mm²약 100~140 mm²
트랜지스터190억약 150억~250억
CPU3 + 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 이상)

핵심 정리

  1. SoC는 CPU·GPU·NPU·ISP·DSP·모뎀·메모리 컨트롤러·I/O를 한 다이에 모은 칩이다. 통합의 이득은 에너지, 속도, 크기다.
  2. 칩 밖으로 비트를 보내는 일은 칩 안보다 수십~수백 배 비싸다. DRAM 한 번 읽기 ≈ 덧셈 수천 번.
  3. 스마트폰 SoC에서 CPU 코어 자체는 다이의 일부일 뿐이고, GPU·캐시·전용 블록이 큰 몫을 차지한다.
  4. 작업마다 일하는 블록이 다르므로 전원과 클럭을 블록 단위로 관리한다. 성능 모드를 조금 올리면 전력은 세제곱에 가깝게 는다.
  5. 범용(CPU) → SIMD·GPU → DSP·NPU → 전용 회로로 갈수록 효율은 좋아지고 유연성은 줄어든다.

확인 퀴즈

Q1. 여러 칩을 SoC 하나로 합쳤을 때 얻는 가장 큰 에너지상의 이득은?

칩 밖 신호는 패키지·기판 배선·상대 칩 입력단의 큰 정전 용량을 충전해야 한다. 칩 안 배선은 그보다 훨씬 짧고 가늘어서 비트당 에너지가 수십 배 이상 작다.

Q2. Horowitz의 45 nm 표에서 DRAM에서 32비트를 읽는 에너지는 32비트 정수 덧셈의 약 몇 배인가?

640 pJ ÷ 0.1 pJ = 6,400. 그래서 데이터를 칩 안에 붙잡아 두는 캐시와 SRAM이 다이의 큰 몫을 차지한다.

Q3. 휴대폰이 주머니 속에서 "헤이 OO" 같은 음성 호출어를 기다릴 때 주로 깨어 있는 블록은?

항상 켜져 있어야 하는 일은 수 mW로 도는 DSP에 맡기고, 호출어가 감지되면 그때 더 큰 블록을 깨운다.

Q4. 전압과 클럭을 함께 20% 올리면 동적 전력은 대략 몇 배가 되는가?

\(P \propto V^2 f\)이므로 \(1.2^2 \times 1.2 = 1.728\). 성능 20%를 얻기 위해 전력 73%를 더 쓰는 셈이다.

Q5. "다크 실리콘"이 전용 블록(ISP, 코덱, NPU)이 늘어난 이유가 되는 까닭은?

전력 예산 때문에 다이의 상당 부분은 늘 꺼져 있어야 한다. 그렇다면 그 면적을 "가끔 켜지지만 켜지면 아주 효율적인" 전용 블록으로 채우는 것이 합리적이다.