SoC 설계·검증·원가
2년 전, 회의실 화이트보드에 "다음 플래그십: 성능 20% 향상, 전력 그대로, 다이 110 mm² 이하"라는 세 줄이 적혔다. 그 세 줄이 오늘 웨이퍼 위 수백 개의 사각형이 되기까지 엔지니어 천 명 남짓이 움직였고, 수억 달러가 들었고, 마스크 한 세트를 깎는 데만 수천만 달러가 나갔다. 테이프아웃 뒤에 버그 하나가 발견되면 그 돈의 상당 부분을 다시 써야 한다. 이 장에서는 지금까지 블록 하나하나로 뜯어본 SB-1을 만드는 쪽에서 본다. 블록을 직접 끌어 다이 위에 배치하고, 랜덤 테스트로 버그를 사냥하고, 웨이퍼에 다이를 찍어 칩 한 개의 원가를 계산해 보자.
- 사양 정의부터 실리콘 브링업까지 SoC 설계 흐름의 단계와 각 단계의 산출물, 기간, 인력을 말할 수 있다.
- 평면 배치가 배선 길이·에너지·타이밍에 미치는 영향을 이해하고, 직접 배치해 비용을 줄여 본다.
- 검증 커버리지가 왜 끝으로 갈수록 느리게 차는지, 버그를 늦게 찾을수록 비용이 왜 기하급수로 커지는지 설명한다.
- 웨이퍼당 다이 수와 수율 모델(포아송·머피·음이항)로 양품 다이 한 개의 원가를 계산한다.
- 칩렛 분할과 개발비(NRE) 상각이 공정·구조 선택을 어떻게 바꾸는지 판단한다.
세 줄의 사양서에서 실리콘까지
SoC 하나가 시장에 나오기까지는 보통 2~3년이 걸린다. 이 기간은 몇 개의 큰 단계로 나뉘는데, 단계들은 차례로 끝나기보다 겹쳐서 진행된다. RTL이 반쯤 쓰였을 때 검증이 시작되고, 검증이 한창일 때 물리 설계팀은 이미 초기 넷리스트로 배치를 시험한다. 아래 간트 차트에서 단계를 하나씩 넘겨 보자. 아래쪽 곡선은 시점마다 몇 명이 이 칩에 매달려 있는지를 보여 준다.
단계마다 손에 쥐는 결과물이 다르다. 사양(Specification) 단계의 결과물은 문서다. 목표 성능, 전력, 면적, 지원할 기능과 표준이 적힌다. 아키텍처 단계에서는 C++나 SystemC로 만든 성능 모델로 "캐시를 8 MB로 할까 16 MB로 할까", "GPU 코어를 몇 개로 할까"를 결정한다(18장의 설계실이 바로 이 단계의 장난감 판이다). RTL(Register Transfer Level) 단계에서 비로소 Verilog·SystemVerilog로 하드웨어가 기술된다. 2장에서 본 플립플롭과 조합 논리를 "클럭마다 레지스터 값이 어떻게 바뀌는가"로 적은 코드다.
RTL은 논리 합성(Logic synthesis) 도구를 거쳐 표준 셀(NAND, NOR, 플립플롭 등)을 이은 게이트 수준 넷리스트가 되고, 배치·배선(Place and Route, P&R) 도구가 수십억 개의 셀을 다이 위에 놓고 금속선으로 잇는다. 마지막으로 사인오프(Signoff)에서 타이밍, 전력망의 전압 강하(13장), 설계 규칙(DRC), 회로도 일치(LVS)를 모두 통과하면, 레이아웃 데이터(GDSII/OASIS)를 파운드리에 넘긴다. 이 순간을 테이프아웃(Tape-out)이라 부른다. 옛날에 레이아웃을 자기 테이프에 담아 보냈던 데서 온 말이다.
RTL 작성, 합성, 정적 타이밍 분석, P&R 같은 디지털 설계 흐름 자체는 DesignBook에서 자세히 다룬다. 테이프아웃 뒤 웨이퍼 위에서 일어나는 노광·식각·증착은 ProcessBook, 다이를 패키지에 담고 여러 다이를 잇는 이야기는 PackagingBook, 결함과 수율은 YieldBook이 맡는다. 이 장은 그 네 권이 SoC 한 개 위에서 만나는 지점을 훑는다.
모든 것을 직접 만들지 않는다: IP 재사용
SB-1의 블록 25개를 모두 처음부터 설계하는 회사는 없다. 실제 SoC는 직접 만든 블록과 사 온 블록의 조합이다. 다른 회사가 설계해 라이선스로 파는 블록을 IP(Intellectual Property core)라 부른다. CPU 코어 IP를 파는 회사, GPU IP를 파는 회사, LPDDR·PCIe·USB 같은 인터페이스 IP(컨트롤러 + PHY)를 파는 회사, NoC를 자동 생성해 주는 회사가 따로 있다. SRAM 매크로는 파운드리나 IP 회사가 제공하는 메모리 컴파일러로 원하는 크기를 찍어 낸다.
아래 다이에서 블록을 눌러 "사 온다(라이선스)"와 "직접 만든다(자체 개발)"를 바꿔 보자. 빗금 친 블록이 라이선스 IP다. 직접 만들면 개발 인력이 들고, 사 오면 선불 라이선스 비용과 칩 한 개마다 내는 로열티가 든다.
돈만의 문제는 아니다. 직접 만든 블록은 차별화의 원천이다. 같은 CPU IP를 산 회사들끼리는 CPU 성능으로 앞서기 어렵다. 그래서 큰 회사들은 경쟁력을 좌우하는 블록(CPU 코어, GPU, NPU, ISP)은 직접 만들고, 표준을 따르기만 하면 되는 블록(USB·PCIe PHY, 저속 주변장치)은 사 오는 경향이 있다. 반대로 시장 출시가 급하거나 판매량이 적은 칩은 거의 모든 것을 사 와서 통합(Integration)에만 집중한다.
| IP 종류 | 대표 형태 | 흔한 선택 | 통합할 때 까다로운 점 |
|---|---|---|---|
| CPU 코어 | 소프트 IP(RTL) + 구현 가이드 | 라이선스 또는 명령어 집합만 라이선스하고 자체 설계 | 최고 클럭을 내려면 공정에 맞춘 물리 설계가 필요 |
| GPU | 소프트 IP | 라이선스 또는 자체 | 드라이버·컴파일러 소프트웨어가 하드웨어만큼 크다 |
| LPDDR PHY | 하드 IP(레이아웃 고정) | 거의 언제나 라이선스 | 공정별로 따로 만들어야 하고 다이 가장자리에 놓여야 한다 |
| NoC | 생성기(설정 → RTL) | 라이선스 또는 자체 | 칩 전체에 퍼지므로 배치와 함께 설계해야 한다 |
| SRAM | 메모리 컴파일러 | 파운드리·IP 회사 제공 | 수율을 위해 여분 행·열(리던던시)과 자체 시험(BIST)을 넣는다 |
| USB·PCIe·UFS | 컨트롤러(소프트) + PHY(하드) | 라이선스 | 표준 인증 시험을 통과해야 한다 |
평면 배치: 다이 위의 부동산
블록이 모두 준비되면 다이 위에 어디에 놓을지 정해야 한다. 이것이 평면 배치(Floorplanning)다. 겉보기엔 테트리스 같지만 규칙이 있다. 첫째, 많이 대화하는 블록끼리 가까이. 1장에서 본 것처럼 데이터 이동이 에너지를 먹고, 긴 배선은 지연이 커서 중간에 파이프라인 레지스터를 더 넣어야 한다(8장). 둘째, 칩 밖과 대화하는 블록은 가장자리에. LPDDR PHY와 고속 I/O는 패키지 범프와 가까워야 한다. 셋째, 겹치면 안 된다. 그리고 다이가 작을수록 원가가 싸므로 빈 공간을 줄여야 한다.
아래 시뮬레이터에서 블록을 끌어 옮겨 보자. 선은 블록 사이의 통신이고, 굵을수록 대역폭이 크며 색이 붉을수록 길다. 처음 배치는 블록을 크기순으로 쌓기만 한 것이라 배선이 엉망이다. SB-1과 비슷한 배치를 불러와 비교해 보고, 더 좋은 배치를 찾아보자.
평면 배치 놀이터
NoC는 거의 모든 블록과 이어져 있다. 위치만 바꾸고 다른 블록은 그대로 두면 가중 배선 길이는 얼마나 변할까?
답 보기
크게 늘어난다. NoC–메모리 컨트롤러(140 GB/s), NoC–SLC(120 GB/s), NoC–GPU(90 GB/s)처럼 굵은 선이 모두 NoC에 모여 있기 때문이다. 그래서 실제 칩에서도 NoC와 SLC, 메모리 컨트롤러는 다이 한가운데에서 아래쪽 PHY 방향으로 길게 이어지는 경우가 많다. 반대로 모뎀이나 보안 블록처럼 대역폭이 작은 블록은 구석으로 밀려나도 손해가 적다. 실제 SoC 다이 사진에서 모뎀이 흔히 가장자리 한쪽을 차지하는 이유다.
실제 평면 배치는 이보다 훨씬 많은 것을 고려한다. 뜨거운 블록(큰 코어, GPU)을 한곳에 몰면 열점이 생기므로 떨어뜨려 놓기도 하고(13장), 아날로그 PHY는 시끄러운 디지털 블록에서 떼어 놓는다. 전원 영역마다 전원 스위치와 레벨 시프터를 둘 자리도 남긴다(12장). 블록 안의 표준 셀 배치는 자동 도구가 하지만, 블록 단위 평면 배치는 아직도 경험 많은 엔지니어의 손을 많이 탄다. 최근에는 강화 학습으로 매크로 배치를 찾는 연구도 활발하다.
PPA: 성능·전력·면적의 줄다리기
설계자의 모든 결정은 결국 세 숫자 PPA(Performance, Power, Area)로 평가된다. 셋은 서로 당긴다. 같은 RTL이라도 합성 도구에 목표 클럭을 높게 주면, 도구는 임계 경로의 게이트를 큰 것으로 바꾸고(게이트 크기 키우기), 버퍼를 더 넣고, 더 빠르지만 누설이 큰 트랜지스터(낮은 문턱 전압, LVT)로 바꾼다. 처음에는 면적이 조금씩 늘다가, 그 회로가 낼 수 있는 한계 클럭에 다가가면 면적과 전력이 가파르게 치솟는다.
이 곡선이 4장의 big.LITTLE을 설명한다. 큰 코어는 오른쪽 끝, 한계 근처에서 합성해 최고 성능을 뽑고, 작은 코어는 에너지 최저점 근처에서 합성한다. 같은 칩 안에서도 블록마다 다른 문턱 전압의 셀을 섞어 쓰는 것(다중 Vt(Multi-Vt))이 보통이다. 임계 경로에만 LVT를 쓰고 나머지는 HVT로 채우면 속도는 거의 그대로 두고 누설을 크게 줄일 수 있다.
수십억 개 셀 가운데 슬랙이 음수인 경로가 처음에는 수만 개 나온다. 엔지니어는 경로를 고치고(셀 교체, 배치 조정, 때로는 RTL 수정), 다시 배치·배선하고, 다시 분석한다. 한 번 돌리는 데 블록 크기에 따라 몇 시간에서 며칠이 걸린다. 이 반복을 타이밍 클로저(Timing closure)라 부르며, 일정이 늦어지는 가장 흔한 이유 중 하나다.
검증: 버그 사냥은 확률 게임이다
SoC 개발에서 가장 많은 인력이 드는 일은 설계가 아니라 검증(Verification)이다. 업계 조사에서 프로젝트 시간의 절반 이상이 검증에 쓰이고, 큰 프로젝트에서는 검증 엔지니어가 설계 엔지니어보다 많다. 그런데도 첫 실리콘이 고칠 것 없이 양산까지 가는 비율은 낮다. 2022년 Wilson Research Group 조사에서 ASIC의 첫 실리콘 성공률은 약 24%였다.
왜 이렇게 어려울까? 설계의 상태 공간이 상상할 수 없이 넓기 때문이다. 그래서 검증팀은 "확인해야 할 상황" 목록을 만들고, 그중 몇 %를 시험했는지를 센다. 이것이 기능 커버리지(Functional coverage)다. 예를 들어 "캐시 미스가 난 그 클럭에 같은 주소로 쓰기가 들어오고, 동시에 일관성 무효화 요청이 온다"(6장)가 커버리지 항목 하나다. 테스트는 보통 제약 랜덤(Constrained random) 방식으로 만든다. 규칙에 맞는 입력을 무작위로 쏟아붓고, 검사기가 결과를 기준 모델과 비교한다.
커버리지 채우기와 숨은 버그
몇 번 눌러 보면 패턴이 보인다. 처음 수백 개 테스트로 커버리지가 80% 가까이 금세 차지만, 그 뒤로는 테스트를 열 배로 늘려도 몇 %밖에 오르지 않는다. 남은 칸은 랜덤으로는 좀처럼 걸리지 않는 커버리지 구멍(Coverage hole)이고, 하필 버그는 그런 곳에 숨어 있다. 마지막 몇 %는 제약 조건을 고치거나 사람이 직접 겨냥한 방향성 테스트, 또는 수학적으로 모든 경우를 따지는 형식 검증(Formal verification)으로 메운다. 시뮬레이션이 너무 느리면 설계를 FPGA나 전용 에뮬레이터에 올려 수천 배 빠르게 돌리며 실제 운영체제를 부팅해 본다.
위 시뮬레이터에서 256칸을 모두 채웠다면, 칩에 버그가 남아 있을 수 있을까?
답 보기
그렇다. 커버리지는 우리가 생각해 낸 상황을 다 시험했다는 뜻일 뿐이다. 아무도 커버리지 항목으로 적지 않은 상황(두 기능이 겹치는 경우, 사양서 자체의 모호함)에 숨은 버그는 커버리지 100%로도 잡히지 않는다. 그래서 커버리지 목록을 리뷰하는 일, 서로 다른 팀이 독립적으로 기준 모델을 만드는 일, 실제 소프트웨어를 에뮬레이터에서 돌려 보는 일이 함께 필요하다.
그렇다면 검증에 얼마나 투자해야 할까? 버그를 늦게 찾을수록 고치는 비용이 커진다. RTL 단계라면 코드 몇 줄 고치고 회귀 테스트를 돌리면 된다. 테이프아웃 뒤라면 마스크를 다시 만들어야 하고(리스핀(Re-spin)), 몇 달이 늦어진다. 금속층 몇 장만 바꿔 고치는 메탈 ECO가 가능하면 다행이다. 출하 뒤라면 소프트웨어로 우회하거나, 최악의 경우 회수해야 한다.
총비용 곡선에는 최저점이 있지만, 그 최저점은 생각보다 오른쪽에 있다. 실리콘 이후의 버그 비용이 너무 크기 때문에 검증을 "충분히 많이" 하는 편이 거의 항상 싸다. 그리고 곡선의 오른쪽은 완만하지만 왼쪽은 가파르다. 검증을 아끼다 실패하는 쪽의 손해가 훨씬 크다는 뜻이다.
웨이퍼 한 장에서 다이 몇 개가 나오나
테이프아웃 뒤 파운드리는 지름 300 mm 실리콘 웨이퍼 위에 다이를 바둑판처럼 찍는다. 웨이퍼 한 장의 가격은 공정이 정해 주므로, 다이 한 개의 원가는 웨이퍼 한 장에서 양품 다이가 몇 개 나오느냐에 달려 있다. 원은 사각형으로 꽉 채울 수 없으므로 가장자리에서 잘려 나가는 다이가 생기고, 웨이퍼 맨 바깥 몇 mm는 공정이 고르지 않아 아예 쓰지 않는다(가장자리 제외(Edge exclusion)). 다이를 크게 하면 가장자리 손실이 커진다.
그런데 찍은 다이가 모두 동작하지는 않는다. 웨이퍼에는 먼지, 결정 결함, 패턴 불량 같은 결함이 무작위로 떨어지고, 결함이 회로의 중요한 곳에 떨어진 다이는 불량이다. 단위 면적당 결함 수를 결함 밀도 \(D_0\)(개/cm²)라 한다. 아래 시뮬레이터에서 다이 크기와 결함 밀도를 바꾸며 웨이퍼 지도를 보자. 초록은 양품, 빨강은 결함이 떨어진 불량, 회색은 가장자리에 걸려 버리는 다이다.
웨이퍼 지도와 양품 다이 원가
| 공정 | 300 mm 웨이퍼 가격 (대략) | 마스크 세트 (대략) | 칩 설계 비용 추정 (대략) |
|---|---|---|---|
| 28 nm | 약 $3,000 | 약 $1~2M | 약 $50M |
| 7 nm급 | 약 $9,000~10,000 | 약 $10M | 약 $300M |
| 5 nm급 | 약 $16,000 | 약 $15~20M | 약 $540M |
| 3 nm급 | 약 $18,000~20,000 | 약 $25~40M | 약 $600M |
| 2 nm급 | 약 $30,000 (2025~2026년 예상) | — | — |
표의 값은 2020~2025년 업계 보도와 시장 조사(IBS 등)의 대략값이며 회사와 계약에 따라 크게 다르다. 흐름은 분명하다. 웨이퍼 값이 공정마다 오르는데 트랜지스터는 예전만큼 줄지 않는다. 특히 SRAM 셀은 5 nm급에서 3 nm급으로 넘어갈 때 거의 줄지 않았다. 그래서 "최신 공정이면 트랜지스터당 원가가 싸진다"는 오랜 공식이 흔들리고 있다.
수율 모델: 결함은 어떻게 떨어지는가
결함이 웨이퍼 위에 완전히 고르게, 서로 독립적으로 떨어진다면 다이 하나에 떨어지는 결함 수는 평균 \(A D_0\)인 포아송 분포를 따른다. 다이가 양품일 확률은 결함이 0개일 확률이다.
수율이 원가에 미치는 영향은 두 번 겹친다. 다이가 커지면 웨이퍼당 다이 수가 줄고(면적에 반비례하고 가장자리 손실까지), 그 다이들의 수율도 떨어진다. 그래서 다이 면적을 두 배로 키우면 양품 다이 원가는 두 배보다 더 오른다. 거꾸로, 설계자가 다이를 10% 줄이면 원가는 10% 넘게 준다. SoC 회사가 면적을 1 mm²라도 아끼려 애쓰는 이유다.
SRAM에는 여분의 행·열을 넣어 두고, 시험에서 불량 셀이 나오면 퓨즈를 끊어 여분으로 바꿔 끼운다(리던던시). 이것만으로 캐시가 큰 칩의 수율이 크게 오른다. GPU 코어나 CPU 코어 하나가 불량이면 그 코어를 끄고 낮은 등급 제품으로 파는 빈닝(Binning)도 흔하다. 결함 메커니즘과 수율 학습 곡선은 YieldBook에서 깊이 다룬다.
칩렛과 개발비: 원가의 마지막 퍼즐
다이가 커질수록 수율이 떨어진다면, 큰 칩을 여러 개의 작은 다이로 나누면 어떨까? 이것이 칩렛(Chiplet)이다. 작은 다이는 수율이 높고, 시험을 거쳐 양품만 골라(KGD(Known Good Die)) 한 패키지 안에서 잇는다. 대신 대가가 있다. 다이 사이를 잇는 다이 간 인터페이스(Die-to-die, D2D) 회로가 다이마다 면적을 먹고, 고급 패키지(실리콘 인터포저, 브리지)가 비싸며, 다이를 붙이다 실패하면 양품 다이 여러 개를 함께 버린다. 다이 사이를 건너는 비트는 다이 안보다 에너지가 몇 배 든다(D2D 약 0.3~1 pJ/bit, 다이 안 약 0.1 pJ/bit 미만).
그래서 칩렛은 데이터센터 CPU·GPU처럼 큰 칩에서 먼저 퍼졌다. 서버 CPU는 작은 CPU 다이 여러 개와 I/O 다이 하나를 묶고, 대형 AI 가속기는 레티클 한계(노광 한 번에 찍을 수 있는 최대 면적, 약 26 × 33 mm ≈ 858 mm²)를 넘는 크기를 다이 두 개를 이어 붙여 만든다. 칩렛은 원가 말고도 장점이 있다. 아날로그 PHY나 I/O처럼 미세 공정의 이득이 적은 부분은 싼 구형 공정으로 만들고 CPU만 최신 공정으로 만들 수 있다. 칩렛을 서로 다른 회사 것끼리 잇기 위한 표준(UCIe, 2022년)도 나왔다. 휴대폰 SoC는 다이가 작고 전력과 두께가 빠듯해 아직 대부분 한 다이다. 패키지 이야기는 PackagingBook에서 이어진다.
마지막 퍼즐은 NRE(Non-Recurring Engineering), 한 번만 드는 개발비다. 설계 인력, IP 라이선스, EDA 도구, 그리고 마스크 세트가 여기에 들어간다. 이 돈은 몇 개를 팔든 똑같이 들므로 칩 한 개당으로 나누면 판매량에 반비례한다. 같은 설계를 세 공정으로 만든다고 해 보자. 최신 공정은 다이가 작아 개당 원가는 싸지만 NRE가 크다.
이 그래프가 반도체 산업의 구조를 설명한다. 최신 공정의 첫 고객이 연간 수억 대를 파는 스마트폰 회사와 대형 데이터센터 칩 회사인 이유, 판매량이 적은 칩은 몇 세대 뒤의 성숙 공정에 머무는 이유, 그리고 IP를 사고팔고 칩렛을 재사용하려는 이유가 모두 "NRE를 얼마나 많은 칩에 나눠 실을 수 있는가"로 모인다.
핵심 정리
- SoC 설계는 사양 → 아키텍처 → RTL → 검증 → 합성 → P&R → 사인오프 → 테이프아웃 → 브링업으로 이어지고, 단계가 겹쳐 2~3년, 수백~천여 명이 든다.
- 대부분의 블록은 IP로 사 오거나 이전 세대에서 재사용하고, 차별화가 필요한 블록만 직접 만든다. 통합과 검증은 언제나 직접 해야 한다.
- 평면 배치는 대역폭이 큰 블록끼리 가깝게, PHY·I/O는 가장자리에, 겹침과 빈 공간 없이 놓는 최적화 문제다. PPA는 목표 클럭이 한계에 다가갈수록 면적·전력이 가파르게 는다.
- 검증 커버리지는 끝으로 갈수록 느리게 차고, 버그는 드문 상황에 숨는다. 버그 수정 비용은 단계마다 약 열 배씩 커지므로 검증 투자는 넉넉한 편이 싸다.
- 양품 다이 원가 = 웨이퍼 가격 ÷ (웨이퍼당 다이 수 × 수율). 큰 다이는 다이 수와 수율이 함께 줄어 원가가 면적보다 빨리 오른다. 칩렛은 큰 칩에서, 최신 공정은 판매량이 많을 때 이득이다.
확인 퀴즈
Q1. "테이프아웃"이 가리키는 순간은?
Q2. 평면 배치에서 LPDDR PHY를 다이 가장자리에 두는 가장 큰 이유는?
Q3. 랜덤 테스트를 열 배로 늘렸는데 커버리지가 92%에서 94%로밖에 오르지 않았다. 가장 알맞은 다음 조치는?
Q4. 결함 밀도 0.1개/cm², 포아송 모델에서 면적 100 mm²인 다이의 수율은 약 얼마인가?
Q5. 같은 결함 밀도에서 음이항 모델의 수율이 포아송 모델보다 높게 나오는 이유는?
Q6. 면적 약 100 mm²인 스마트폰 SoC를 칩렛 4개로 나누는 것이 보통 이득이 아닌 이유로 가장 알맞은 것은?