SoC 설계실
이제 당신이 아키텍트다. 마케팅팀은 "게임이 끊기지 않는 폰"을, 카메라팀은 "밤에도 선명한 사진"을, AI팀은 "인터넷 없이 돌아가는 비서"를 원한다. 재무팀은 원가표를 들고 서 있다. 다이 면적은 한정되어 있고, 휴대폰은 5 W 남짓한 열밖에 내보내지 못한다. 이 장은 지금까지 배운 블록을 한 자리에 모아 놓은 놀이터다. 슬라이더 몇 개로 칩을 짜면 평면도가 그려지고, 원가와 전력, 다섯 가지 작업의 성적표가 바로 나온다. 정답은 없다. 무엇을 얻으려면 무엇을 내줘야 하는지가 있을 뿐이다.
- 공정 노드, 코어 구성, 캐시, GPU·NPU 크기, 메모리 채널이 면적·원가·전력·성능에 미치는 영향을 한 화면에서 비교한다.
- 작업마다 병목(단일 스레드, GPU 연산, 메모리 대역폭, 열)이 다르다는 것을 확인한다.
- 전력 한계 아래에서는 "넓고 느린" 설계가 "좁고 빠른" 설계를 이길 수 있음을 직접 보인다.
- 온디바이스 LLM의 토큰 생성 속도가 연산이 아니라 메모리 대역폭에 묶이는 이유를 루프라인으로 설명한다.
- 도전 과제를 풀며 PPA와 원가 사이의 트레이드오프를 스스로 결정해 본다.
설계실 사용법
아래 시뮬레이터는 17장에서 본 설계 흐름 중 아키텍처 단계의 장난감판이다. 실제 회사에서는 이 단계에서 수백 개의 앱 트레이스를 정밀한 성능 모델로 돌려 보며 몇 달을 보낸다. 여기서는 그 계산을 한 줄짜리 공식 몇 개로 줄였다. 숫자의 절대값보다 방향과 크기의 감각을 얻는 것이 목적이다.
모든 수치는 기준 칩 SB-1(3 nm급, 약 105 mm²)을 기준점으로 맞춘 대략적인 모델이다. 실제 칩의 성능은 마이크로아키텍처, 소프트웨어, 열 설계, 메모리 칩에 따라 크게 달라진다. 모델이 어떤 식으로 계산하는지는 시뮬레이터 바로 아래 '모델 속' 설명과 이 장 뒤쪽의 작은 그림들에 모두 공개했다.
쓰는 법은 간단하다. ① 위쪽 단추로 출발점(프리셋)을 고른다. ② 슬라이더로 블록을 바꾼다. ③ 오른쪽 성적표와 아래 숫자를 본다. 성적표의 세로 눈금선은 SB-1의 값이다. ④ 마음에 드는 설계는 "비교용으로 고정"을 눌러 두 설계 겨루기에서 다른 설계와 나란히 놓거나, "링크 복사"로 주소에 담아 친구에게 보낸다.
나만의 SoC 짜기
SoC 설계실
도전 과제
아래 과제는 위 설계실의 현재 설계로 실시간 판정된다. 조건을 모두 만족하면 동그라미가 초록 체크로 바뀐다. 한 번 달성한 과제는 이 브라우저에 기억된다. 어떤 과제는 서로 반대 방향을 요구한다. 과제를 풀다 보면 "왜 실제 칩이 그렇게 생겼는지"가 보일 것이다.
도전 과제 6개
두 설계 겨루기
성적표 하나로는 설계의 성격이 잘 안 보인다. 두 설계를 골라 레이더 차트에 겹쳐 보자. 축마다 SB-1을 1로 둔 상대값이고, 바깥으로 갈수록 좋다(원가 축은 싼 쪽이 바깥). "현재 설계"는 위 설계실의 설계, "고정한 설계"는 "비교용으로 고정"을 눌러 둔 설계다.
설계 A vs 설계 B
프리셋끼리 겹쳐 보면 성격이 드러난다. 플래그십은 모든 축이 고르게 크지만 원가 축이 안쪽으로 움푹 들어간다. 보급형은 원가 축만 튀어나온 별 모양이다. AI 특화는 LLM과 카메라 축으로 길게 뻗는 대신 게임을 내줬다. 실제 칩 회사들이 한 세대에 등급별로 칩을 여러 개 내놓는 이유가 이 그림에 있다. 한 다이로 모든 축을 다 키울 수는 없다.
CPU: 코어를 늘려도 빨라지지 않는 이유
설계실의 웹 점수는 암달의 법칙(Amdahl's law)을 따른다. 작업 중 병렬화할 수 있는 비율이 \(p\)라면, 코어 \(N\)개로 얻는 최대 속도 향상은 다음과 같다.
게임: 연산, 대역폭, 열이라는 세 개의 벽
3D 게임의 초당 프레임 수(fps)는 세 가지 중 가장 낮은 것으로 정해진다. GPU가 한 프레임의 셰이더 연산을 끝내는 속도, 메모리가 한 프레임의 텍스처·프레임 버퍼 트래픽을 나르는 속도, 그리고 그 둘을 5 W 안에서 할 수 있느냐다. 아래 그림은 SB-1에서 GPU 코어 수만 바꿨을 때 세 벽이 어디 있는지 보여 준다.
"넓고 느리게"는 GPU 설계의 오래된 지혜다. 휴대폰 GPU가 데스크톱 GPU보다 클럭이 훨씬 낮은 것(약 1 GHz 안팎 대 2 GHz 이상)도 이 때문이다. 하지만 넓히는 데는 면적이 들고, 넓힌 만큼 메모리가 데이터를 더 빨리 날라야 한다. 시스템 캐시(SLC)는 그 트래픽 일부를 칩 안에서 흡수해 대역폭 벽을 밀어 올린다(9장의 타일 기반 렌더링도 같은 목적이다).
열 한계는 순간이 아니라 시간의 문제다. 칩과 휴대폰 몸체에는 열 용량이 있어서, 처음 몇십 초 동안은 5 W를 훌쩍 넘는 전력을 써도 온도가 천천히 오른다. 벤치마크 점수가 처음 1분과 20분 뒤에 다른 이유다. 아래 그림에서 요구 전력을 바꾸고 시간을 흘려 보자.
온디바이스 LLM: 대역폭이 왕이다
대형 언어 모델이 글자 하나(토큰)를 만들 때마다 모델의 가중치 전부를 한 번씩 읽어야 한다. 70억 파라미터 모델을 4비트로 양자화해도 3.5 GB다. 그런데 계산은 파라미터 하나당 곱셈-덧셈 한 번(2연산)뿐이다. 읽어 온 1바이트로 고작 4번 계산하는 셈이다. 이 비율, 즉 바이트당 연산 수를 연산 강도(Arithmetic intensity)라 하고, 연산 강도에 따라 성능 상한이 연산과 대역폭 중 어느 쪽에 걸리는지 보여 주는 그림이 루프라인(Roofline)이다(10장).
위 그림에서 NPU 슬라이더를 움직이기 전에 예상해 보자. 첫 토큰이 나오기까지의 시간(프리필)은 어떻게 될까?
답 보기
토큰 생성 속도는 그대로다. "토큰 생성" 점은 지붕이 아니라 비탈, 즉 대역폭 한계 위에 있으므로 지붕을 올려도 움직이지 않는다. 반면 "프리필" 점은 지붕 아래에 있어서 NPU에 비례해 빨라진다. 500토큰 프롬프트 처리 시간이 약 0.58초에서 0.23초로 준다. "TOPS 숫자가 큰 칩이 챗봇을 더 빨리 돌린다"는 말은 절반만 맞는 셈이다.
그래서 휴대폰에서 LLM을 돌릴 때 NPU의 TOPS 숫자는 생각보다 중요하지 않다. 토큰 생성 속도는 거의 정확히 메모리 대역폭 ÷ 모델 크기다. 모델을 더 작게 양자화하거나(4비트, 그 이하), 더 작은 모델을 쓰거나, 메모리 채널을 늘리는 수밖에 없다. NPU는 첫 토큰이 나오기까지의 시간(프리필)과 전력 효율에서 제값을 한다. 설계실의 "AI 특화" 프리셋이 NPU뿐 아니라 메모리 채널과 SLC를 최대로 둔 이유다.
공정 노드 고르기: 작아지지 않는 SRAM
설계실에서 공정 노드를 바꾸면 블록마다 줄어드는 비율이 다르다. 로직은 세대마다 꽤 줄지만, SRAM과 아날로그(PHY, PLL)는 훨씬 덜 준다. 특히 5 nm급에서 3 nm급으로 넘어갈 때 SRAM 셀 면적은 거의 그대로였다. 캐시를 많이 넣은 설계일수록 최신 공정의 면적 이득이 작고, 비싼 웨이퍼 값만 고스란히 낸다.
| 공정 (모델값) | 로직 면적 | SRAM 면적 | 아날로그 면적 | 같은 일의 전력 | 최고 클럭 | 웨이퍼 (대략) | D₀ (/cm²) |
|---|---|---|---|---|---|---|---|
| 7 nm급 | 2.6× | 1.35× | 1.2× | 1.8× | 3.7 GHz | 약 $9,500 | 0.07 |
| 5 nm급 | 1.5× | 1.05× | 1.1× | 1.3× | 4.1 GHz | 약 $16,000 | 0.08 |
| 3 nm급 (기준) | 1× | 1× | 1× | 1× | 4.4 GHz | 약 $19,000 | 0.10 |
| 2 nm급 | 0.85× | 0.9× | 1× | 0.82× | 4.7 GHz | 약 $30,000 | 0.15 |
표의 축소율은 파운드리들이 발표한 세대별 로직 밀도 향상(대략 1.3~1.8배)과 SRAM 비트셀 크기 추이(5 nm급과 3 nm급 모두 약 0.021 µm²)를 단순화한 값이고, 웨이퍼 가격은 2024~2025년 보도의 대략값이다. 같은 일을 할 때 전력은 세대마다 약 20~30%씩 준다고 두었다. 실제로 어느 공정을 쓸지는 원가만이 아니라 17장의 개발비(NRE)와 판매량, 그리고 전력 이득이 함께 정한다.
핵심 정리
- SoC 아키텍처는 면적(원가)·전력(열)·성능의 예산을 블록 사이에 나누는 일이다. 한 다이로 모든 축을 최대로 만들 수는 없다.
- 작업마다 병목이 다르다: 웹은 단일 코어 성능, 게임은 GPU 연산·대역폭·열, 카메라는 ISP·NPU, LLM 토큰 생성은 메모리 대역폭.
- 암달의 법칙 때문에 병렬화 비율이 낮은 작업에서는 코어 수보다 코어 하나의 성능이 중요하다.
- 전력 한계 아래에서는 넓고 느린 설계(코어 많이, 클럭 낮게)가 더 높은 지속 성능을 낸다. 대가는 면적과 원가다.
- 최신 공정은 로직을 크게 줄이지만 SRAM·아날로그는 덜 줄고 웨이퍼는 비싸다. 공정 선택은 설계의 구성과 판매량에 따라 달라진다.
확인 퀴즈
Q1. 병렬화 비율 p = 0.4인 작업을 코어 4개로 돌릴 때 암달의 법칙이 주는 속도 향상은?
Q2. 70억 파라미터 모델을 4비트로 양자화해 LPDDR5X 4채널(약 68 GB/s, 실효 80%)에서 돌릴 때 토큰 생성 속도의 상한에 가장 가까운 것은?
Q3. 지속 전력 5 W로 묶인 게임에서 GPU 코어를 12개에서 20개로 늘렸더니 지속 fps가 올랐다. 가장 알맞은 설명은?
Q4. 캐시를 아주 많이 넣은 설계를 5 nm급에서 3 nm급으로 옮겼더니 면적은 조금밖에 안 줄고 원가는 올랐다. 주된 이유는?