작성일 :

데스크톱과 다른 모바일의 설계

하드웨어 기초 (3) - GPU의 탄생과 발전에서 GPU의 발전 역사를 다루었습니다.

고정 기능 파이프라인에서 프로그래머블 셰이더로의 전환, 통합 셰이더 아키텍처의 등장, 그리고 GPU의 범용 연산 활용(GPGPU)에 이르기까지의 흐름이었습니다.


데스크톱 GPU는 전원 콘센트에서 수백 W의 전력을 공급받고, 대형 방열판과 팬으로 열을 처리하며, GDDR6/GDDR6X 전용 메모리를 통해 500~1,000 GB/s의 대역폭을 확보합니다.

전력과 냉각에 여유가 있으므로, 성능 한계는 주로 셰이더 코어의 병렬 처리 능력과 메모리 대역폭의 균형에서 결정됩니다.


모바일 환경은 근본적으로 다릅니다.

배터리라는 유한한 에너지원, 팬 없는 밀폐 구조, 손 위에 올려놓는 폼팩터가 하드웨어 설계 전반을 제약합니다.

모바일 기기의 핵심 칩인 SoC(System on Chip)는 이 제약 아래서 CPU, GPU, 메모리 컨트롤러 등 주요 구성 요소를 하나의 칩에 집적합니다. 데스크톱처럼 부품별로 분리하여 독립 냉각하고 개별 전원을 공급하는 방식이 아니라, 제한된 전력과 방열 예산 안에서 모든 구성 요소가 동작해야 하는 설계입니다.


이 글에서는 모바일 SoC의 구조, 통합 메모리 아키텍처, LPDDR 메모리의 대역폭 제약, ARM big.LITTLE 아키텍처, 전력 예산과 발열, 그리고 주요 모바일 SoC 제조사별 특성을 다룹니다.



SoC란

SoC는 이름 그대로, 컴퓨터 한 대를 구성하는 주요 부품들을 하나의 칩 위에 구현한 것입니다.

SoC 내부에 어떤 구성 요소들이 들어가고, 통합 설계가 왜 전력 효율에 유리한지를 이해하려면 데스크톱의 분리 구조와 비교하는 것이 직관적입니다.


데스크톱 PC에서는 CPU, GPU, 메모리 컨트롤러, 네트워크 칩, 오디오 칩 등이 메인보드 위에 별도의 부품으로 존재합니다.

각 부품은 물리적으로 분리되어 있고, PCIe(고속 확장 버스) 슬롯이나 소켓을 통해 연결됩니다. GPU를 교체하거나 RAM을 추가할 수 있는 것도 이 분리된 구조 덕분입니다.


스마트폰은 배터리, 디스플레이, 카메라 모듈이 내부 공간 대부분을 차지하여 메인보드에 할당되는 면적이 좁고, 부품 간 연결이 늘어날수록 전력 소비와 발열이 증가합니다.

부품 사이의 배선이 길어지면 신호를 전달하기 위해 충·방전해야 하는 기생 커패시턴스(배선 자체가 가지는 전기 용량)가 커지고, 접점마다 임피던스 불일치로 인한 전력 손실이 발생합니다.

모바일 SoC는 이 문제를 해결하기 위해 CPU, GPU, NPU(Neural Processing Unit, 인공지능 연산 전용 처리 장치), ISP(Image Signal Processor, 카메라 영상 처리 장치), 모뎀(셀룰러 통신 칩), 메모리 컨트롤러, 디스플레이 컨트롤러 등을 하나의 실리콘 다이(silicon die, 반도체 회로가 새겨진 단일 칩) 위에 집적합니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
데스크톱 PC vs 모바일 SoC 구성 비교

데스크톱 PC (메인보드 위에 별도 부품들):

  ┌──────────┐     ┌──────────┐     ┌──────────────┐
  │   CPU    │     │   GPU    │     │   RAM 슬롯   │
  │ (소켓)   │     │ (PCIe)   │     │ (DIMM x4)    │
  └────┬─────┘     └────┬─────┘     └──────┬───────┘
       │                │                   │
  ═════╧════════════════╧═══════════════════╧═══════
              메인보드 (칩셋, 배선 수십 cm)
  ═════╤════════════════╤═══════════════════╤═══════
       │                │                   │
  ┌────┴─────┐     ┌────┴─────┐     ┌──────┴───────┐
  │ 오디오   │     │ 네트워크 │     │   저장장치   │
  │  칩      │     │  칩      │     │   (NVMe)     │
  └──────────┘     └──────────┘     └──────────────┘

  → 부품 교체 가능, 전력/공간 제약 적음


모바일 SoC (하나의 칩에 모두 통합):

  ┌─────────────────────────────────────────────────┐
  │            SoC 칩 (내부 배선 수 mm)               │
  │                                                  │
  │  ┌───────┐  ┌───────┐  ┌───────┐  ┌──────────┐ │
  │  │  CPU  │  │  GPU  │  │  NPU  │  │   ISP    │ │
  │  │ 코어  │  │ 코어  │  │       │  │ (카메라) │ │
  │  └───────┘  └───────┘  └───────┘  └──────────┘ │
  │                                                  │
  │  ┌───────┐  ┌──────────┐  ┌──────────────────┐ │
  │  │ 모뎀  │  │ 메모리   │  │  디스플레이      │ │
  │  │ (5G)  │  │ 컨트롤러 │  │  컨트롤러        │ │
  │  └───────┘  └──────────┘  └──────────────────┘ │
  │                                                  │
  └─────────────────────────────────────────────────┘
         │
         │  짧은 배선 (수 mm)
         ▼
  ┌──────────────┐
  │  LPDDR 메모리 │  (칩 외부, 패키지 위에 적층)
  └──────────────┘

  → 부품 교체 불가, 전력/공간 효율 극대화


SoC 통합 설계의 핵심 이점은 전력 효율입니다.

신호 전달에 소비되는 에너지는 배선의 기생 커패시턴스에 비례하고, 커패시턴스는 배선 길이에 비례합니다.

칩 내부의 배선은 수 밀리미터 이하인 반면, 메인보드 위의 배선은 수십 cm에 달하므로, 같은 데이터를 전달할 때 소비되는 에너지가 수십~수백 배 차이납니다.

CPU가 GPU에 렌더링 명령을 전달하거나 GPU가 메모리 컨트롤러를 통해 텍스처 데이터를 읽을 때, 이 통신이 모두 칩 내부에서 이루어지므로 데스크톱 대비 통신 전력이 크게 줄어듭니다.


통합이 통신 전력을 줄여 주는 반면, 대가도 따릅니다.

CPU와 GPU가 같은 칩 위에 있으므로 한쪽이 발열하면 다른 쪽에도 영향을 줍니다.

데스크톱에서는 CPU와 GPU가 물리적으로 떨어져 있어 독립적으로 냉각되지만, SoC에서는 GPU가 발생시킨 열이 바로 옆의 CPU 온도를 높이고, CPU가 발생시킨 열이 GPU 온도를 높입니다. 게임처럼 CPU와 GPU를 동시에 고부하로 사용하는 작업에서 이 문제가 가장 뚜렷하게 드러납니다.



통합 메모리 아키텍처 (UMA)

CPU와 GPU를 하나의 칩에 통합한 SoC는 메모리 구조에서도 데스크톱과 다릅니다.

통합 메모리 아키텍처(UMA, Unified Memory Architecture)는 CPU와 GPU가 물리적으로 같은 메모리를 공유하는 구조이며, 모바일 SoC의 메모리 설계를 정의하는 핵심 특성입니다.


데스크톱 PC에서는 CPU와 GPU가 각각 별도의 메모리를 사용합니다. CPU는 메인보드의 DDR 슬롯에 장착된 DDR(Double Data Rate) 메모리를, GPU는 그래픽 카드 위에 탑재된 GDDR(Graphics DDR) 또는 HBM(High Bandwidth Memory)을 사용합니다.

CPU가 텍스처 데이터를 GPU에 전달하려면, 시스템 메모리에서 PCIe 버스를 거쳐 GPU의 VRAM(Video RAM, GPU 전용 메모리)으로 복사해야 합니다.


모바일 SoC에서는 CPU와 GPU 모두 하나의 LPDDR(Low Power DDR) 메모리에 접근합니다.

하드웨어 기초 (2)에서 살펴본 메모리 계층(L1/L2/L3 캐시 → DRAM)의 최하위 계층인 DRAM이 이 LPDDR에 해당하며, GPU 전용 메모리가 따로 없습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
데스크톱 vs 모바일의 메모리 구조

데스크톱 (분리 메모리):

  ┌──────────┐                        ┌──────────────┐
  │   CPU    │◀═══ DDR5 버스 ═══════▶│  시스템 RAM   │
  │          │    50~90 GB/s          │ (DDR5, 32GB) │
  └─────┬────┘                        └──────────────┘
        │
   PCIe │ ~32 GB/s
        │
  ┌─────┴────┐                        ┌──────────────┐
  │   GPU    │◀═══ 256~384bit ══════▶│  전용 VRAM   │
  │          │   500~1,000 GB/s       │(GDDR6X, 12GB)│
  └──────────┘                        └──────────────┘

  CPU → GPU 데이터 전달: PCIe 버스를 통한 복사 필요

================================================================

모바일 SoC (통합 메모리):

  ┌─────────────────────────────────┐
  │             SoC                 │
  │  ┌───────┐       ┌───────┐      │   64~128bit 버스
  │  │  CPU  │       │  GPU  │      │◀══════════════▶ ┌──────────────┐
  │  └───┬───┘       └───┬───┘      │   34~68 GB/s     │    LPDDR     │
  │      │  (NPU, ISP, 모뎀 등)      │                  │(공유, 6~16GB) │
  │      └───────┬───────┘          │                  └──────────────┘
  │              │                  │
  │       메모리 컨트롤러             │
  └─────────────────────────────────┘

  CPU → GPU 데이터 전달: 같은 물리 메모리를 공유, PCIe 복사 불필요

UMA의 장점

PCIe를 통한 데이터 복사가 불필요합니다. 데스크톱에서는 텍스처, 메쉬 데이터 등을 시스템 메모리에서 PCIe 버스를 거쳐 GPU의 VRAM으로 복사해야 하며, 이 복사에 시간과 대역폭이 소비됩니다.

UMA에서는 CPU가 준비한 데이터가 이미 GPU가 접근할 수 있는 같은 물리적 메모리에 존재하므로, PCIe를 통한 별도의 복사 단계 없이 GPU가 바로 사용할 수 있습니다.

다만 CPU와 GPU는 각각 독립적인 캐시를 가지고 있으므로, CPU가 캐시에 쓴 데이터를 GPU가 읽으려면 캐시 간 동기화가 필요합니다. 이 동기화 비용은 PCIe 복사에 비하면 훨씬 작지만, 완전히 0은 아닙니다.


칩 면적과 비용이 절약됩니다. GPU 전용 메모리 인터페이스와 메모리 칩을 별도로 탑재할 필요가 없으므로, SoC의 패키지 크기가 줄어들고 제조 비용이 낮아집니다.

줄어든 면적만큼 모바일 기기 내부에서 배터리나 안테나 등 다른 부품이 차지할 수 있는 공간이 늘어납니다.

UMA의 단점

대역폭을 나눠 써야 합니다. 하나의 LPDDR 메모리를 CPU, GPU, NPU, ISP, 모뎀 등 SoC 내의 모든 구성 요소가 공유합니다.

GPU가 프레임 렌더링을 위해 텍스처를 대량으로 읽는 동안, CPU도 게임 로직 처리를 위해 메모리에 접근하고, ISP는 카메라 프리뷰를 위해 메모리에 쓰고, 모뎀은 네트워크 데이터를 버퍼링합니다.

총 대역폭이 데스크톱 GPU 전용 메모리의 약 1/10 수준인 상황에서, 이 대역폭마저 여러 소비자가 나눠 사용하게 됩니다.


메모리 용량도 공유합니다. 데스크톱에서는 시스템 RAM 32GB와 VRAM 12GB를 별도로 가져 합산 44GB를 사용할 수 있지만, 모바일 SoC에서는 총 6GB ~ 16GB의 LPDDR 하나를 OS, 앱, GPU가 함께 사용합니다.

게임이 텍스처와 메쉬에 대량의 메모리를 할당하면, OS와 다른 앱이 사용할 수 있는 메모리가 줄어들고, 메모리 부족 시 OS가 백그라운드 앱을 종료하거나 게임 자체를 강제 종료할 수 있습니다.



LPDDR 메모리와 대역폭 제약

UMA에서 CPU와 GPU가 공유하는 메모리가 LPDDR(Low Power Double Data Rate)입니다.

이름의 “LP(Low Power)”가 나타내듯 저전력 동작에 초점을 맞춘 메모리이며, 데스크톱의 DDR이나 GPU의 GDDR과 비교하여 전력 소비를 줄이는 대신 대역폭도 낮습니다.


LPDDR은 세대가 올라갈수록 대역폭이 증가하지만, 전력 제약으로 버스 폭(64~128비트)이 근본적으로 좁기 때문에 GDDR(256~384비트)이나 HBM(1,024비트)과의 격차는 좁혀지지 않습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
LPDDR 세대별 대역폭 비교

메모리 규격                이론 대역폭           전압
────────────────────────────────────────────────────────────────
LPDDR4X  (64bit)           ~34 GB/s             0.6V  (VDDQ)
LPDDR5   (64bit)           ~51 GB/s             0.5V  (VDDQ)
LPDDR5X  (64bit)           ~68 GB/s             0.5V  (VDDQ)
────────────────────────────────────────────────────────────────

비교 대상 (GPU 전용 메모리):
────────────────────────────────────────────────────────────────
GDDR6    (256bit)          ~500 GB/s            1.35V (VDD)
GDDR6X   (384bit)          ~1,000 GB/s          1.35V (VDD)
HBM3     (1,024bit/스택)   ~819 GB/s            1.1V  (VDD)
────────────────────────────────────────────────────────────────

대역폭 비율:
  LPDDR5 (64bit)  ~51 GB/s  vs  GDDR6 (256bit)  ~500 GB/s
  ──────────────────────────────────────────────────────────
  약 10배 차이


이 대역폭 격차는 렌더링 방식의 차이로 이어집니다.

데스크톱 GPU는 넉넉한 대역폭을 전제로, 각 삼각형을 바로 외부 메모리에 렌더링하는 IMR(Immediate Mode Rendering) 방식을 사용합니다.

대역폭이 제한된 모바일에서는 같은 방식의 외부 메모리 트래픽을 감당할 수 없으므로, 외부 메모리 접근을 최소화하는 구조인 TBDR(Tile-Based Deferred Rendering) 을 채택했습니다.

GPU 아키텍처 (2) - 모바일 GPU와 TBDR에서 이 구조를 상세히 다룹니다.


LPDDR의 “Low Power” 특성은 대역폭을 낮춘 부산물이 아니라, 배터리 기기를 위해 의도적으로 설계한 결과입니다.

외부 메모리 접근은 칩 내부의 캐시 접근보다 약 100배의 에너지를 소비하므로, 메모리 접근당 에너지를 줄이는 것이 배터리 수명에 직접 영향을 미칩니다.

LPDDR은 이를 위해 여러 메커니즘을 사용합니다.

첫째, 데이터를 전송하는 I/O 신호 전압(VDDQ)을 DDR4(1.2V)·DDR5(1.1V)·GDDR6(1.35V)보다 낮은 0.5~0.6V로 설정하여, 신호 전환마다 소비되는 에너지를 줄입니다.

둘째, 데이터 프리페치(prefetch) 단위를 크게 합니다. 메모리에서 데이터를 읽으려면 먼저 해당 행(row)을 활성화해야 하는데, 이 활성화 자체에 에너지가 소비됩니다. LPDDR5는 한 번의 행 활성화로 16개 단위(16n prefetch)를 한꺼번에 읽어, 같은 양의 데이터를 전송하는 데 필요한 활성화 횟수를 줄입니다.

셋째, 메모리가 사용되지 않는 구간에서는 자동으로 저전력 상태로 전환합니다.


이 대역폭 제약은 모바일 게임의 최적화 방향으로 직결됩니다.

텍스처 크기를 줄이고, ASTC 같은 GPU 압축 포맷을 사용하고, 밉맵(텍스처의 축소 복사본 체인)을 활성화하고, 오버드로우를 줄이는 것은 모두 LPDDR의 제한된 대역폭 안에서 렌더링을 완료하기 위한 최적화입니다.



ARM big.LITTLE 아키텍처

SoC의 통합 설계와 메모리 구조에 이어, SoC 내부의 CPU 설계를 살펴봅니다.

데스크톱 CPU는 전통적으로 모든 코어가 동일한 성능을 가진 대칭 구조(homogeneous)였습니다.

Intel은 12세대(Alder Lake) 이후 P-core와 E-core를 혼합하는 비대칭 구조를 도입했지만, 모바일 SoC는 이보다 훨씬 오래전부터 비대칭 구조를 핵심 설계 원칙으로 사용해 왔습니다.

배터리 용량이 유한하고 팬 없이 수동 방열에 의존하는 모바일 환경에서는, 항상 고성능 코어를 가동하면 전력과 발열이 감당할 수 없을 만큼 커지기 때문입니다.


모바일 SoC의 CPU는 비대칭 구조(heterogeneous)입니다.

ARM이 설계한 big.LITTLE 아키텍처(이후 DynamIQ로 발전)에 따라, 성능 특성이 다른 두 종류 이상의 코어를 하나의 CPU 클러스터에 배치합니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
ARM big.LITTLE / DynamIQ 구조

전통적 데스크톱 CPU (대칭 구조):

  ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐
  │ Core 0 │ │ Core 1 │ │ Core 2 │ │ Core 3 │
  │ 동일   │  │ 동일   │ │ 동일    │ │ 동일   │
  │ 성능   │  │ 성능   │ │ 성능    │ │ 성능   │
  └────────┘ └────────┘ └────────┘ └────────┘
  → 모든 코어가 같은 마이크로아키텍처


모바일 SoC CPU (비대칭 구조):

  고성능 코어 (Prime)
  ┌──────────────────┐
  │  Cortex-X 계열    │  1코어
  │  out-of-order    │  높은 IPC, 높은 전력
  └──────────────────┘

  중간 성능 코어 (big)
  ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
  │ Cortex-A7xx │ │ Cortex-A7xx │ │ Cortex-A7xx │  2~5코어
  │ out-of-order│ │ out-of-order│ │ out-of-order│  중간 IPC, 중간 전력
  └─────────────┘ └─────────────┘ └─────────────┘

  고효율 코어 (LITTLE)
  ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐
  │A5xx    │ │A5xx    │ │A5xx    │ │A5xx    │  2~4코어
  │in-order│ │in-order│ │in-order│ │in-order│  낮은 IPC, 낮은 전력
  └────────┘ └────────┘ └────────┘ └────────┘

  → 성능이 필요하면 big, 전력을 아끼려면 LITTLE
  → OS 스케줄러가 스레드 부하에 따라 런타임에 배정

================================================================

고성능 코어 (big)

big 코어는 데스크톱 CPU 코어와 유사한 설계 철학을 따릅니다.

하드웨어 기초 (1)에서 다룬 비순차 실행(Out-of-Order Execution, OoO) 파이프라인을 갖추고 있어, 명령어 간 의존성을 분석한 뒤 실행 순서를 동적으로 재배치하여 파이프라인 정체(stall)를 최소화합니다.

분기 예측기의 정확도가 높고 실행 폭(execution width)이 넓어, 클럭당 처리할 수 있는 명령어 수(IPC)가 높습니다.


대표적인 big 코어로는 ARM의 Cortex-X4, Cortex-A720 등이 있습니다.

최신 SoC에서는 가장 높은 클럭으로 동작하는 단일 Prime 코어(Cortex-X 계열)와, 약간 낮은 클럭의 big 코어(Cortex-A7xx 계열) 여러 개를 조합하는 구성이 일반적입니다.

예를 들어 Qualcomm Snapdragon 8 Gen 3은 1+5+2 구성(X4 1개 @ 3.3GHz + A720 5개 @ 2.96~3.15GHz + A520 2개 @ 2.27GHz)이고, Samsung Exynos 2400은 1+2+3+4 구성처럼 SoC 제조사마다 코어 수와 클럭 조합이 다릅니다.


big 코어의 복잡한 파이프라인은 트랜지스터 수가 많고 칩 면적을 넓게 차지합니다.

동적 전력 소비는 전압의 제곱과 클럭 주파수에 비례하므로(P ~ V^2 x f), 클럭을 높이기 위해 전압까지 올리면 전력은 클럭 증가분 이상으로 늘어납니다. big 코어 1개가 최대 클럭에서 소비하는 전력은 약 1W 수준입니다.

고효율 코어 (LITTLE)

LITTLE 코어는 전력 효율을 최우선으로 설계된 코어입니다.

순차 실행(In-Order Execution) 파이프라인을 사용하며, 실행 폭이 좁고 분기 예측기도 단순합니다.

클럭당 처리 능력(IPC)은 big 코어의 절반 이하이지만, 같은 작업을 수행할 때 소비하는 전력은 big 코어의 약 1/10 수준입니다.


대표적인 LITTLE 코어로는 ARM의 Cortex-A520이 있습니다.

A520은 in-order 파이프라인이지만, 전 세대인 A510과 마찬가지로 캐시 미스 시 후속 명령어를 제한적으로 추적하는 비차단(non-blocking) 메커니즘을 갖추고 있어, 순수 in-order 설계보다 메모리 지연(DRAM 접근 시 약 300클럭의 대기)을 더 잘 흡수합니다. A520은 A510에서 ALU 하나를 제거하여 전력 효율을 추가로 높인 설계이기도 합니다.

이메일 확인, 웹 브라우징, 음악 재생 등 가벼운 작업에서는 LITTLE 코어만으로 충분한 성능을 제공하면서 배터리를 절약합니다.

부하에 따른 코어 전환

OS의 스케줄러가 스레드의 부하 수준을 모니터링하고, 부하가 높은 스레드는 big 코어에 배정하며, 부하가 낮은 스레드는 LITTLE 코어에 배정합니다.

게임이 실행되면 메인 스레드(게임 로직, 렌더 준비)와 렌더 스레드는 big 코어에 배정되고, 오디오 디코딩이나 네트워크 I/O 같은 부하가 낮은 스레드는 LITTLE 코어에서 동작합니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
big.LITTLE 코어 배정 예시 (게임 실행 중)

big 코어 — 부하가 높은 스레드:
  ┌───────────────────────────────────────┐
  │  Prime:  메인 스레드 (게임 로직, UI)     │
  │  big 1:  렌더 스레드                    │
  │  big 2:  물리 연산                      │
  │  big 3:  잡 시스템 워커                 │
  └───────────────────────────────────────┘

LITTLE 코어 — 부하가 낮은 스레드:
  ┌───────────────────────────────────────┐
  │  LITTLE 0:  오디오 디코딩               │
  │  LITTLE 1:  네트워크 I/O               │
  │  LITTLE 2:  OS 백그라운드 서비 스        │
  │  LITTLE 3:  센서·위치 서비스            │
  └───────────────────────────────────────┘

  → 프레임마다 처리량이 많은 스레드는 big 코어에서 실행
  → 간헐적으로 깨어나는 스레드는 LITTLE 코어에서 전력 절약

게임에서의 영향

big.LITTLE 구조는 Unity 게임의 프레임 성능에 직접 영향을 줍니다.

Unity의 메인 스레드는 MonoBehaviour의 Update(), 물리 연산 트리거, UI 레이아웃, 렌더링 커맨드 제출 등 프레임당 처리량이 가장 많은 스레드입니다.

이 스레드가 LITTLE 코어에서 실행되면, IPC가 big 코어의 절반 이하이므로 같은 작업에 두 배 이상의 시간이 걸립니다.

대부분의 경우 OS 스케줄러가 부하를 감지하여 big 코어에 자동 배정하지만, 서멀 스로틀링이 심해지면 OS가 big 코어의 클럭을 낮추거나 일부 big 코어를 비활성화하면서 스레드가 LITTLE 코어로 이동할 수 있습니다.


스레드가 big 코어에서 LITTLE 코어로(또는 반대로) 이동하면, 이전 코어의 L1/L2 캐시에 올라와 있던 데이터를 새 코어에서는 사용할 수 없습니다.

새 코어에서 캐시 미스(cache miss)가 연쇄적으로 발생하고, 각 미스마다 상위 캐시나 DRAM에서 데이터를 다시 가져와야 하므로 수십~수백 클럭의 지연이 추가됩니다.

이 비용을 코어 마이그레이션 비용이라 하며, 빈번한 코어 이동은 캐시 효율을 떨어뜨려 성능을 저하시킵니다.


멀티스레드 성능도 코어 조합의 영향을 받습니다.

Unity의 잡 시스템(Job System)이나 Burst 컴파일러가 생성한 병렬 작업은 여러 코어에 분산됩니다.

예를 들어 big 코어 4개와 LITTLE 코어 4개에 병렬 작업 8개를 동시에 배정하면, big 코어의 작업은 빠르게 끝나지만 LITTLE 코어의 작업은 느리게 끝납니다.

병렬 처리에서는 가장 느린 작업이 완료되어야 전체가 끝나므로, 비대칭 구조에서는 대칭 구조보다 병렬 처리의 효과가 제한적입니다.



전력 예산과 발열

모바일 SoC의 성능을 최종적으로 제한하는 요소는 아키텍처의 연산 능력이 아니라 전력 예산발열입니다. 트랜지스터를 아무리 많이 집적해도, 배터리가 공급할 수 있는 전력과 방열 구조가 허용하는 열량이 한계를 정합니다.

TDP와 전력 예산

TDP(Thermal Design Power, 열 설계 전력)는 칩이 정상 동작 범위에서 방출할 수 있는 최대 열량을 나타내는 스펙이며, 냉각 시스템이 처리할 수 있는 열량의 기준이기도 합니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
데스크톱 vs 모바일 전력 비교

                      데스크톱             모바일 SoC
────────────────────────────────────────────────────────────
CPU TDP              65 ~ 125W (base)   (SoC 전체에 통합)
GPU TDP              150 ~ 450W         (SoC 전체에 통합)
SoC 전체 TDP             -               5 ~ 10W
지속 전력 (Sustained)  200 ~ 400W         2.5 ~ 5W
피크 전력 (Peak)       400 ~ 600W          8 ~ 12W
냉각 방식              팬 + 방열판         수동 방열 (팬 없음)
전원                  콘센트 (무제한)      배터리 (유한)
────────────────────────────────────────────────────────────

전력 비율 (GPU 기준):
  데스크톱 GPU 단독   ~300W
  모바일 GPU 할당분   1~2.5W (SoC 지속 전력의 40~50%)
  ─────────────────────────────
  약 120~300배 차이


모바일 SoC의 지속 전력 2.5~5W는 CPU, GPU, NPU, 모뎀, 메모리 컨트롤러 등 칩 위의 모든 구성 요소가 나눠 써야 하는 총합입니다.

게임 실행 중 GPU는 전체 전력의 40~50%를 차지하는 최대 소비자이지만, 총합 자체가 작으므로 절대량은 약 1~2.5W에 머뭅니다. 데스크톱 GPU 한 장이 단독으로 소비하는 300W의 1/120 수준입니다.

피크 전력과 지속 전력

SoC는 짧은 시간 동안 지속 전력을 초과하는 피크 전력(Peak Power)을 사용할 수 있습니다.

앱을 시작하거나, 게임의 로딩 화면에서 대량의 데이터를 처리하거나, 짧은 벤치마크를 실행할 때 SoC는 최대 클럭으로 동작하며 8~12W의 전력을 소비합니다.

이때 측정되는 성능이 벤치마크 점수로 반영됩니다.


피크 전력 상태는 수 분 이상 유지할 수 없습니다.

모바일 기기는 팬 없이 수동 방열에 의존하므로, 피크 전력이 발생시키는 열을 충분히 배출하지 못합니다.

열 발생이 방열 능력을 초과하면 칩 온도가 상승하고, 임계 온도에 도달하면 OS가 클럭을 강제로 낮춥니다.

서 big.LITTLE 섹션에서 언급한 서멀 스로틀링(Thermal Throttling)이 이 과정입니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
전력과 성능의 시간 변화

전력
(W)
  │
10│──●━━━━━━━━━━━●
  │               ╲
 8│                ╲
  │                 ╲
 6│                  ╲
  │                   ╲
 4│                    ╲━━━━━━━━━━━━━━━━━━━━━━━●
  │
 2│
  │
  └──────────────────────────────────────────────── 시간
  0     1     2     3     4     5     6  ...  10+ (분)
  │                 │                          │
  ▼                 ▼                          ▼
  피크 전력        스로틀링 시작              지속 전력
  (~10W)           (칩 온도 임계치 도달)       (~4W)
  최대 클럭        클럭 급격히 하락           안정 클럭

서멀 스로틀링의 과정

서멀 스로틀링은 단계적으로 진행됩니다.

임계 온도에 따라 OS가 적용하는 제한의 강도가 달라지며, 일반적으로 세 단계로 구분할 수 있습니다.


1단계: 경고 (Warning). 칩 내부 온도가 첫 번째 임계치(예: 75도)에 도달하면, OS는 CPU 또는 GPU 중 부하가 높은 쪽의 최대 클럭을 약간 제한합니다. 성능 저하가 미미하여 플레이어가 체감하기 어려운 수준입니다.


2단계: 적극적 제한 (Throttling). 온도가 두 번째 임계치(예: 85도)에 도달하면, CPU와 GPU 양쪽의 클럭이 크게 낮아집니다. big 코어의 클럭이 최대치의 50~70% 수준으로 제한되고, GPU 클럭도 비례하여 내려갑니다. 프레임 레이트가 눈에 띄게 하락합니다.


3단계: 비상 제한 (Critical). 온도가 세 번째 임계치(예: 95도)에 도달하면, big 코어 일부가 완전히 비활성화되거나 GPU가 최소 클럭으로 동작합니다. 이 시점에서는 앞서 다룬 big.LITTLE 코어 전환이 발생하여, 메인 스레드가 LITTLE 코어로 이동할 수 있습니다. 극단적인 경우 OS가 앱을 강제 종료합니다.

1
2
3
4
5
6
7
8
9
10
서멀 스로틀링 단계

칩 온도    클럭 상태                 성능 영향
─────────────────────────────────────────────────────────
 ~70도    최대 클럭                 피크 성능 (100%)
  75도    CPU 또는 GPU 약간 제한       ~90%
  85도    CPU + GPU 클럭 하락        ~50~70%
  95도    코어 비활성화 / 최소 클럭    ~30~40%
 100도+   강제 종료 가능                 -
─────────────────────────────────────────────────────────

배터리 용량과 사용 시간

전력 소비는 배터리 수명과 직결됩니다.

2025년 기준 스마트폰 배터리 용량은 5,000~7,000mAh 범위이며, 실리콘-카본(Si/C) 배터리 확산으로 빠르게 대용량화되고 있습니다. 배터리 평균 전압은 약 3.8V이고, 배터리 용량(mAh)에 전압(V)을 곱하면 저장 에너지(Wh)가 됩니다. 6,000mAh 배터리의 총 에너지 저장량은 약 23Wh입니다.


게임을 실행하면 SoC가 지속적으로 약 4W를 소비하고, 디스플레이와 모뎀 등 기기 전체를 포함하면 약 6~8W에 이릅니다.

23Wh를 7W로 나누면 약 3.3시간입니다.

매 프레임 GPU를 최대 부하로 구동하는 60fps 타이틀이라면 전체 소비가 9~10W까지 올라가, 플레이 시간이 약 2.3시간으로 줄어듭니다.

게임 개발에서의 지속 성능 기준 설계

전력 예산이 제한적이고, 스로틀링으로 피크 성능이 유지되지 않으며, 배터리 수명도 유한하므로, 모바일 게임은 피크 성능이 아니라 지속 성능을 기준으로 설계해야 합니다.


벤치마크에서 60fps가 나온다고 해서 60fps를 목표로 설계하면, 게임 시작 5~10분 후 스로틀링에 의해 40fps, 30fps로 불규칙하게 하락합니다. 플레이어에게는 시간이 지날수록 점점 버벅거리는 경험이 됩니다.

반면 기기를 10분 이상 예열한 뒤 측정한 지속 성능을 기준으로 설계하면, 게임 시작부터 종료까지 일정한 프레임 레이트를 유지할 수 있습니다.


프로파일링도 지속 성능 상태에서 수행해야 합니다.

기기가 차가운 상태에서 처음 실행하는 콜드 스타트(Cold Start) 측정값은 피크 성능에 해당하며, 실제 플레이 환경을 대표하지 못합니다.



주요 모바일 SoC 비교

지금까지 다룬 통합 설계, UMA, LPDDR, big.LITTLE, 전력 제약은 모바일 SoC가 공유하는 구조적 특성입니다.

이 절에서는 제조사별로 갈라지는 부분, 특히 게임 성능에 직접 영향을 미치는 GPU 아키텍처와 드라이버 특성의 차이를 다룹니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
주요 모바일 SoC — GPU 아키텍처 비교

              GPU            렌더링 방식                오버드로우 감소 기술
═══════════════════════════════════════════════════════════════════════
Snapdragon    Adreno         FlexRender                 LRZ
(Qualcomm)                   (TBDR + IMR 자동 전환)     (저해상도 깊이 버퍼로 조기 제거)
──────────────────────────────────────────────────────────────────────
Exynos        Mali /         Mali: TBDR                 Mali: FPK
(Samsung)     Xclipse        Xclipse: IMR               (셰이딩 중 가려진 픽셀 취소)
              (AMD RDNA)                                Xclipse: VRS + RT 하드웨어
──────────────────────────────────────────────────────────────────────
Apple A/M     자체 설계      TBDR + HSR                 HSR
(Apple)       GPU                                       (보이는 것만 셰이딩)
──────────────────────────────────────────────────────────────────────
Dimensity     Mali           TBDR                       FPK
(MediaTek)                                              (셰이딩 중 가려진 픽셀 취소)
═══════════════════════════════════════════════════════════════════════

→ 같은 셰이더라도 GPU 아키텍처에 따라 성능이 달라짐
→ 출시 전 Adreno · Mali · Apple GPU 세 계열에서 각각 테스트 필요

Snapdragon (Qualcomm)

Qualcomm의 Snapdragon은 Android 기기에서 점유율이 가장 높은 SoC입니다. GPU는 자체 설계한 Adreno를 탑재합니다.

Adreno의 핵심 특성은 FlexRender입니다. 장면의 복잡도에 따라 TBDR과 IMR을 자동 전환하는 하이브리드 방식으로, 삼각형이 적은 단순한 장면에서는 Binning(삼각형을 타일 단위로 분류하는 전처리) 오버헤드를 피하기 위해 IMR로, 복잡한 장면에서는 외부 메모리 대역폭을 절약하기 위해 TBDR로 동작합니다.

또한 Adreno는 LRZ(Low Resolution Z)를 통해 오버드로우를 줄입니다. LRZ는 Binning 단계에서 저해상도 깊이 버퍼를 생성하고, 렌더링 단계에서 이 버퍼를 참조하여 전체 해상도 깊이 테스트 이전에 가려진 프래그먼트를 제거합니다.

프로파일링 도구로는 Snapdragon Profiler가 제공되며, GPU 클럭, 메모리 대역폭, 셰이더 실행 시간 등을 실시간으로 확인할 수 있습니다.

Exynos (Samsung)

Samsung의 Exynos는 일부 Galaxy 기기에 탑재됩니다. GPU는 전통적으로 ARM의 Mali를 사용해 왔으며, 최근 모델에서는 AMD RDNA 아키텍처 기반의 Xclipse GPU를 탑재합니다.

Mali를 탑재한 Exynos는 다른 Mali 기반 SoC와 동일하게 TBDR로 동작하며, FPK(Forward Pixel Kill)로 오버드로우를 줄입니다. FPK는 셰이딩이 진행되는 도중에 더 가까운 프래그먼트가 도착하면 이전 프래그먼트의 셰이딩을 취소하는 방식입니다.

Xclipse는 데스크톱 GPU 계열인 RDNA에서 유래한 IMR 기반 아키텍처로, 레이 트레이싱 하드웨어와 VRS(Variable Rate Shading)를 포함합니다. 다만 모바일의 전력 제약으로 인해 실제 게임에서 레이 트레이싱을 활용하는 사례는 아직 제한적입니다.

프로파일링에는 Samsung의 GPUWatch(Mali·Xclipse 공용 온디바이스 모니터링)와, Mali 셰이더 분석에는 ARM의 Mali Offline Compiler가 사용됩니다.

Apple A/M 시리즈

Apple의 A-시리즈(iPhone)와 M-시리즈(iPad, Mac)는 CPU와 GPU 모두 Apple이 자체 설계합니다. GPU는 TBDR 위에 HSR(Hidden Surface Removal)을 구현합니다. HSR은 타일 내에서 래스터화만 먼저 수행한 뒤, 각 픽셀에서 실제로 보이는 프래그먼트만 셰이딩하는 방식으로, 불투명 오브젝트에 대한 오버드로우를 하드웨어 수준에서 제거합니다.

Apple은 하드웨어와 소프트웨어(iOS)를 모두 직접 통제하므로, OS 수준에서 GPU 드라이버를 최적화하고 Metal API를 통해 하드웨어 특성을 직접 노출합니다. Android 생태계에서 나타나는 GPU 드라이버 품질 편차가 없어, 같은 셰이더 코드가 기기마다 다르게 동작하는 문제가 발생하지 않습니다.

프로파일링 도구로는 Xcode에 내장된 GPU ProfilerMetal System Trace가 제공됩니다.

Dimensity (MediaTek)

MediaTek의 Dimensity는 중저가부터 플래그십까지 폭넓은 라인업으로 Android 기기에서 점유율을 넓히고 있습니다. GPU는 ARM의 Mali 시리즈를 탑재하며, TBDR 구현과 FPK는 Exynos에 탑재된 Mali와 동일합니다. 프로파일링에는 ARM의 StreamlineMali Offline Compiler를 사용합니다.

Dimensity 기기를 테스트 목록에 포함해야 하는 이유는 점유율 증가 속도에 있습니다. 인도, 동남아시아, 중국 시장에서 Dimensity 탑재 기기가 빠르게 늘어나고 있으므로, 글로벌 출시를 계획하는 게임이라면 테스트 대상에 반드시 포함해야 합니다.

SoC별 교차 테스트

같은 Unity 프로젝트라도 SoC에 따라 성능 특성이 달라집니다. Adreno에서 정상 동작하던 셰이더가 Mali에서 성능 저하를 일으키거나, Apple GPU의 HSR로 최적화된 렌더링 경로가 Android GPU에서는 동일한 효과를 내지 못하는 경우가 있습니다.


GPU 아키텍처의 구조적 차이(FlexRender vs 순수 TBDR vs TBDR+HSR)에 더해, 셰이더 컴파일러의 최적화 수준이 GPU 제조사마다 다르고, Android 생태계에서는 같은 GPU라도 기기 제조사별 드라이버 품질에 편차가 있습니다.


모바일 게임 출시 전에는 Snapdragon(Adreno), Exynos/Dimensity(Mali), Apple(자체 GPU)의 세 GPU 계열에서 각각 테스트해야 합니다.



마무리

  • SoC는 CPU, GPU, NPU, ISP, 모뎀, 메모리 컨트롤러를 하나의 칩에 통합하며, 전력 효율이 높은 대신 발열이 칩 전체에 영향을 미칩니다.
  • UMA에서 CPU와 GPU는 같은 LPDDR 메모리를 공유하며, LPDDR의 대역폭은 GDDR의 약 1/10 수준입니다. 이 제약이 TBDR 아키텍처와 대역폭 절약 중심 최적화를 요구하는 근본 원인입니다.
  • ARM big.LITTLE 아키텍처는 고성능 코어와 고효율 코어를 조합하여 전력 효율을 높이며, 게임의 메인 스레드는 big 코어에서 실행되어야 성능을 확보할 수 있습니다.
  • 모바일 SoC의 지속 전력은 2.5~5W이며, 서멀 스로틀링에 의해 피크 성능의 50~70% 수준에서 안정화됩니다.
  • Adreno(FlexRender, LRZ), Mali(FPK), Apple GPU(HSR) 등 SoC마다 GPU 아키텍처와 오버드로우 감소 기술이 다르므로, 출시 전 주요 계열별 테스트가 필수적입니다.

모바일 SoC의 모든 설계 결정은 결국 하나의 물리적 제약으로 수렴합니다. 배터리와 팬 없는 수동 방열 폼팩터에서 전력과 발열을 통제해야 한다는 점입니다. 통합 설계, 공유 메모리, 이종 코어, 서멀 스로틀링은 모두 이 제약의 산물이며, 모바일 게임 최적화는 이 제약을 이해하는 데서 시작됩니다.

이 글에서 살펴본 LPDDR의 대역폭 제약이 모바일 GPU 아키텍처를 어떻게 변화시켰는지는 GPU 아키텍처 (2) - 모바일 GPU와 TBDR에서 상세히 다룹니다. 서멀 스로틀링과 전력 예산에 대응하는 구체적인 전략은 모바일 전략 (1) - 발열과 배터리에서 Adaptive Performance, 프레임 레이트 선택, 지속 성능 기준 설계를 포함하여 다룹니다.



관련 글

시리즈

전체 시리즈

Tags: ARM, SoC, Unity, 모바일, 하드웨어

Categories: ,