핵심 인사이트 (3줄 요약)
- 본질: NoC (Network on Chip)는 공유 버스 하나를 모두가 번갈아 쓰는 대신, 칩 내부를 작은 라우터와 링크로 나누어 패킷 단위로 전달하는 온칩 통신 구조다.
- 가치: 코어 수와 가속기 수가 늘어날수록 배선 길이, 중재 비용, 병목이 폭증하는데, NoC는 이를 분산 경로와 병렬 전송으로 흡수해 확장성을 확보한다.
- 판단 포인트: 작은 SoC (System on Chip)에는 버스나 크로스바가 더 단순할 수 있지만, 수십 개 이상의 마스터와 혼합 트래픽이 생기면 NoC가 사실상 유일한 현실적 선택이 된다.
Ⅰ. 개요 및 필요성
NoC (Network on Chip)는 칩 내부에 네트워크를 축소해 넣은 인터커넥트다. CPU (Central Processing Unit), GPU (Graphics Processing Unit), NPU (Neural Processing Unit), 메모리 컨트롤러, 캐시, 주변 IP (Intellectual Property) 블록이 데이터를 주고받을 때, 더 이상 하나의 공용 버스만으로는 지연시간과 대역폭 요구를 감당할 수 없어서 등장했다.
공유 버스는 구조가 단순하고 소규모 설계에 유리하다. 그러나 연결 대상이 많아질수록 한 번에 한 주체만 길을 점유할 수 있고, 중앙 중재기까지 필요해져 대기 시간이 급격히 늘어난다. 크로스바는 동시성을 높일 수 있지만 포트 수가 커질수록 배선과 스위치 비용이 빠르게 증가한다. 결국 멀티코어를 넘어 매니코어 칩으로 갈수록 문제는 "누가 먼저 말할까"가 아니라 "모두가 동시에 말해도 길이 버틸 수 있는가"로 바뀐다.
특히 최신 인공지능 가속기나 서버용 프로세서는 코어 수만 많은 것이 아니라 트래픽 종류도 제각각이다. 캐시 일관성 요청은 짧고 민감하며, 메모리 읽기/쓰기는 대역폭을 많이 먹고, 가속기 간 데이터 이동은 연속적이다. 이런 혼합 부하를 단일 버스로 처리하면 특정 흐름이 전체를 막아 버리는 헤드 오브 라인 블로킹(Head-of-Line Blocking)이 쉽게 발생한다.
- 📢 섹션 요약 비유: 동네 골목길 하나로는 몇 대의 차만 지나가도 괜찮지만, 공장과 학교와 시장이 한꺼번에 들어선 도시에서는 바둑판 도로망이 필요하다. NoC는 칩이 작은 마을에서 거대한 도시로 커졌을 때 생기는 교통 체증을 풀기 위한 도시계획이다.
Ⅱ. 아키텍처 및 핵심 원리
NoC의 핵심은 데이터를 패킷으로 쪼개고, 라우터를 거치며, 필요한 경로로 흘려보내는 것이다. 송신 블록은 네트워크 인터페이스 (Network Interface, NI)에서 요청을 패킷화하고, 패킷은 다시 플릿 (Flit, Flow Control Unit) 단위로 잘려 이동한다. 각 라우터는 목적지 주소와 혼잡 상태를 보고 다음 출력 포트를 선택한다.
| 구성 요소 | 역할 | 설계 포인트 |
|---|---|---|
| 네트워크 인터페이스 (NI) | 버스/캐시 요청을 NoC 패킷으로 변환 | 프로토콜 변환, 패킷 크기 |
| 라우터 (Router) | 입력 플릿을 받아 다음 링크로 전달 | 포트 수, 버퍼 깊이, 중재 지연 |
| 링크 (Link) | 인접 라우터 간 물리 배선 | 배선 길이, 에너지/비트 |
| 가상 채널 (Virtual Channel) | 같은 물리 링크를 논리적으로 분리 | 교착 상태 완화, 혼잡 분산 |
| 라우팅 알고리즘 | 패킷 경로 선택 | XY 라우팅, 적응형 라우팅 |
아래 그림은 NoC가 공유 버스와 달리 홉 단위 전달로 병목을 분산하는 모습을 보여준다.
┌────────────────────────────────────────────────────────────────────┐
│ NoC의 데이터 이동: 긴 버스 점유 대신 홉 전달 │
├────────────────────────────────────────────────────────────────────┤
│ [Core A] → [NI] → [R0] → [R1] → [R2] → [NI] → [Core B] │
│ │ │ │ │
│ │ │ └─ 목적지 근처 라우터 │
│ │ └─ 혼잡 시 다른 출력 포트 선택 가능 │
│ └─ 헤더 플릿이 경로를 먼저 확보 │
│ │
│ 공유 버스 : 한 요청이 전역 배선을 길게 점유 │
│ NoC : 서로 다른 링크를 여러 요청이 동시에 사용 │
└────────────────────────────────────────────────────────────────────┘
실무 구현에서는 웜홀 스위칭 (Wormhole Switching)이 자주 쓰인다. 헤더 플릿이 길을 먼저 잡고, 뒤따르는 바디 플릿과 테일 플릿이 그 경로를 따라 흐르는 방식이라 큰 패킷 버퍼 없이도 지연을 줄일 수 있다. 다만 경로 중간이 막히면 뒷부분도 함께 정체되므로, 버퍼 설계와 가상 채널 구성이 중요하다.
또 하나의 핵심은 토폴로지다. 링 (Ring)은 단순하지만 홉 수가 늘기 쉽고, 메시 (Mesh)는 배치가 규칙적이라 칩 레이아웃과 잘 맞으며, 토러스 (Torus)는 평균 거리를 줄일 수 있지만 물리 배선이 복잡해진다. 그래서 일반 범용 프로세서는 메시를, 구조가 매우 규칙적인 가속기는 2차원 메시나 특수 배열형 NoC를 채택하는 경우가 많다.
- 📢 섹션 요약 비유: NoC는 택배 허브 시스템과 같다. 물건을 한 번에 통째로 들고 뛰는 대신, 상자를 나누고 중간 물류센터에서 다음 차편을 정해 보내기 때문에 도시 전체 배송량이 커져도 운영이 가능하다.
Ⅲ. 비교 및 연결
NoC를 제대로 이해하려면 공유 버스, 크로스바, 링 인터커넥트와의 경계를 함께 봐야 한다. 핵심 차이는 "배선을 공유하는가"보다 "동시성과 확장성을 어떤 비용으로 확보하는가"에 있다.
| 구조 | 장점 | 한계 | 적합한 규모 |
|---|---|---|---|
| 공유 버스 (Shared Bus) | 단순, 면적 적음, 검증 쉬움 | 한 번에 한 트랜잭션 중심 | 소형 마이크로컨트롤러 |
| 크로스바 (Crossbar) | 낮은 지연, 다수 동시 연결 가능 | 포트 수 증가 시 면적/배선 급증 | 중간 규모 SoC |
| 링 (Ring) | 구현 단순, 배선 규칙적 | 먼 노드 간 홉 수 증가 | 수~십 개 노드 |
| NoC 메시 (Mesh) | 확장성 우수, 병렬성 높음 | 라우터 지연, 설계 복잡도 증가 | 매니코어, 가속기 |
NoC는 단순 데이터 통로를 넘어 시스템 정책의 실행 기반이 되기도 한다. 캐시 일관성 메시지, 메모리 우선순위, 실시간 트래픽 분리, 전력 도메인 분리 같은 문제가 모두 이 위에서 움직인다. 그래서 NoC는 버스의 대체재이면서 동시에 코히어런트 패브릭(Coherent Fabric)의 뼈대이기도 하다.
온칩 버스와의 연결도 분명하다. 소형 SoC에서는 AXI (Advanced eXtensible Interface) 같은 버스 프로토콜이 그대로 유리하지만, 규모가 커지면 AXI 요청 자체를 NoC 패킷으로 캡슐화해 운반한다. 즉 "버스냐 NoC냐"가 완전한 이분법이 아니라, 버스 프로토콜을 NoC 위에 실어 보내는 혼합 구조가 흔하다.
- 📢 섹션 요약 비유: 버스는 교실에서 한 사람씩 발표하는 방식이고, 크로스바는 발표대가 여러 개인 방식이며, NoC는 교실을 여러 분과실로 나눠 동시에 토론하게 하는 방식이다. 학생 수가 많아질수록 분산된 구조가 훨씬 덜 막힌다.
Ⅳ. 실무 적용 및 기술사 판단
실무에서 NoC 채택 여부는 "최신이라서"가 아니라 트래픽 구조가 이미 버스의 한계를 넘었는가로 판단해야 한다. 대체로 마스터가 16개 이상으로 늘고, CPU·가속기·메모리 간 혼합 트래픽이 동시에 존재하며, 확장 버전을 반복 개발해야 하는 경우 NoC가 유리하다. 반대로 저전력 마이크로컨트롤러처럼 노드 수가 적고 기능이 고정된 칩은 공유 버스가 더 싸고 검증도 쉽다.
설계 시 가장 자주 보는 판단 포인트는 다음과 같다.
- 토폴로지 선택: 규칙적인 플로어플랜이면 메시가 무난하고, 지연이 최우선인 소규모 칩은 크로스바가 더 낫다.
- 품질 보장: 실시간 영상, 캐시 일관성, 대용량 메모리 복사를 같은 길에 실을 때는 QoS (Quality of Service) 우선순위가 필요하다.
- 안정성 확보: 교착 상태(Deadlock)와 기아(Starvation)를 막기 위해 가상 채널, 우회 경로, 공정 중재 규칙을 설계해야 한다.
- 전력 관리: 라우터와 링크도 전력을 먹으므로, 혼잡이 적은 구간은 클럭 게이팅과 전력 게이팅 정책을 함께 고려해야 한다.
특히 인공지능 가속기에서는 연산 유닛보다 NoC가 먼저 막히는 경우가 많다. 연산량은 충분해도 중간 활성값이 제때 도착하지 않으면 배열 전체가 기다리기 때문이다. 그래서 실제 성능은 TOPS (Tera Operations Per Second) 스펙보다 NoC 대역폭, 홉 수, 버퍼 압력에 더 크게 좌우되기도 한다.
피해야 할 안티패턴도 분명하다. 작은 칩에 과도한 NoC를 도입하면 라우터 지연과 면적 비용만 늘고 이득이 작다. 반대로 큰 칩에서 버스 마인드를 유지하면 특정 마스터가 전체 대역폭을 독점해 병목이 재설계 단계까지 이어진다. 실무 판단은 항상 "최대 성능"보다 "예측 가능한 혼잡 제어"에 맞춰야 한다.
- 📢 섹션 요약 비유: 대형 쇼핑몰에서는 에스컬레이터, 엘리베이터, 비상통로를 함께 설계해야 사람이 몰려도 마비되지 않는다. NoC 설계도 길을 만드는 일보다, 사람이 몰릴 때도 질서가 유지되게 만드는 운영 설계에 가깝다.
Ⅴ. 기대효과 및 결론
좋은 NoC는 칩을 단순히 빠르게 만드는 것이 아니라 커질 수 있게 만든다. 블록을 타일처럼 반복 배치해도 배선 구조를 일정하게 유지할 수 있고, 국지 통신과 장거리 통신을 분리해 설계 복잡도를 관리할 수 있다. 이는 재사용 가능한 IP 조합, 멀티코어 확장, 칩렛 기반 분할 설계에 직접적인 이점을 준다.
물론 대가도 있다. 라우터를 거칠 때마다 지연이 추가되고, 버퍼와 제어 로직이 면적과 전력을 소비하며, 검증 범위도 크게 늘어난다. 따라서 NoC는 "무조건 빠른 구조"가 아니라 "큰 시스템에서 병목을 통제 가능한 형태로 바꾸는 구조"로 기억해야 한다.
앞으로는 적응형 라우팅, 칩렛 간 패브릭, 3차원 적층 칩의 수직 NoC까지 확장될 가능성이 크다. 결국 NoC의 본질은 칩 내부를 네트워크 관점으로 해석하는 데 있다. 프로세서를 더 크게 만드는 시대일수록, 계산 장치만큼이나 그 사이를 잇는 길의 설계가 성능을 결정한다.
- 📢 섹션 요약 비유: 좋은 도시는 건물 높이만 자랑하지 않는다. 건물이 많아져도 길과 신호 체계가 감당할 수 있어야 진짜 경쟁력이 생긴다. NoC는 칩을 고층 도시로 키우기 위해 먼저 깔아야 하는 도로 인프라다.
📌 관련 개념 맵
| 개념 | 연결 포인트 |
|---|---|
| 온칩 버스 (On-Chip Bus) | 소규모 칩에서 단순한 연결을 제공하지만, 노드 증가 시 NoC로 확장 필요 |
| 크로스바 스위치 (Crossbar Switch) | 낮은 지연을 제공하나 포트 수가 커질수록 배선 복잡도 증가 |
| 가상 채널 (Virtual Channel) | NoC의 교착 상태 완화와 혼잡 분산에 핵심 |
| 캐시 일관성 (Cache Coherence) | 다중 코어 환경에서 NoC 위를 흐르는 대표 제어 트래픽 |
| 칩렛 (Chiplet) | 온칩 NoC 개념이 패키지 수준 인터커넥트로 확장되는 방향 |
📈 관련 키워드 및 발전 흐름도
공유 버스 (Shared Bus)
│
▼
크로스바 (Crossbar) · 링 (Ring) 인터커넥트
│
▼
NoC (Network on Chip)
│
├─ 패킷 스위칭 (Packet Switching)
├─ 플릿 (Flit, Flow Control Unit)
└─ 가상 채널 (Virtual Channel)
│
▼
캐시 일관성 패브릭 · QoS (Quality of Service)
│
▼
칩렛 패브릭 · 3차원 적층 인터커넥트
이 흐름은 "단일 통로 → 다중 스위치 → 네트워크화 → 정책 통합 → 패키지 확장"으로 인터커넥트가 진화하는 방향을 보여준다.
👶 어린이를 위한 3줄 비유 설명
- NoC는 컴퓨터 칩 안에 만든 아주 작은 도로망이에요.
- 예전에는 큰길 하나만 있어서 차가 많아지면 모두 멈췄지만, 이제는 여러 길로 나눠서 같이 달릴 수 있어요.
- 그래서 똑똑한 칩일수록 계산을 잘하는 뇌만큼이나 길을 잘 만드는 기술도 중요하답니다.