vSMP로 모바일 프로세서 전력과 성능을 전환하는 방식

vSMP 아키텍처의 Companion Core와 Main Core 전환 방식, 공유 L2 캐시, 전력 최적화와 스레싱 대응 방안을 정리한다.

2026-08-14 · 최초 발행 2025-12-25

부하에 따라 다른 코어를 선택하는 vSMP

vSMP(Variable Symmetric Multi-Processing)는 전력 효율을 담당하는 Companion Core와 성능을 담당하는 Main Core를 함께 두는 모바일 프로세서 아키텍처다. 활성 대기 상태에서는 Companion Core를 사용하고, 높은 성능이 필요해지면 Main Core로 전환한다. 이 구조는 저전력 동작과 고성능 처리를 한 프로세서 안에서 조절하는 데 목적이 있다.

저부하대기 상태고부하피크 성능작업 부하 감지부하 수준Companion Core(전력 최적화)Main Cores(성능 최적화)초저전력 소비쿼드 코어 성능배터리 수명 연장

Companion Core는 저부하 작업과 대기 모드를 맡고, Main Core는 고성능 애플리케이션을 처리한다. 부하 변화에 따라 두 영역을 seamless하게 바꾸며, 모바일 디바이스의 배터리 수명과 성능을 함께 최적화한다.

코어와 메모리 경로의 배치

코어 유형 개수 클럭 주파수 전력 소비 용도
Companion Core 1개 낮음 (300-500MHz) 매우 낮음 대기, 백그라운드 작업
Main Cores 4개 (Quad) 높음 (1.5-2.0GHz) 높음 고성능 애플리케이션

Companion Core와 Main Cores는 공유 L2 캐시에 연결되고, 메모리 컨트롤러를 통해 DRAM을 사용한다. 전력 관리 유닛은 각 코어의 활성 상태를 제어한다.

Companion CoreL2 캐시(공유)Main Core 0Main Core 1Main Core 2Main Core 3메모리컨트롤러DRAM전력 관리유닛

공유 L2 캐시를 사용하므로 Companion Core와 Main Cores는 같은 캐시 영역에 접근한다. 코어를 전환할 때 캐시 플러시가 필요하지 않고, 컨텍스트 스위칭 오버헤드도 최소화할 수 있다.

대기 상태에서 피크 성능까지

사용자가 대기 상태에 있으면 전력 관리 유닛은 저부하를 감지해 Companion Core를 활성화하고 백그라운드 작업을 맡긴다. 고성능 애플리케이션이 실행되면 Main Cores를 켜고 Companion Core를 비활성화한다.

"전력 관리""MainCores""CompanionCore""운영체제""사용자""전력 관리""MainCores""CompanionCore""운영체제""사용자""대기 상태""저부하 감지""Companion 활성화""백그라운드 작업""고성능 앱 실행""고부하 감지""Main Cores 활성화""Companion 비활성화""쿼드 코어 성능"

대기 모드에서는 Companion Core만 동작해 초저전력 상태를 유지한다. 일반 작업에서는 1-2개 Main Core를 활성화하고, 게임이나 동영상 편집처럼 높은 성능이 필요한 경우에는 4개 Main Core를 모두 사용한다. 이 조절은 실시간 부하에 따라 자동으로 이루어진다.

조건 활성 코어 전력 소비 성능
화면 꺼짐, 대기 Companion 10mW 낮음
음악 재생, 웹 브라우징 1-2 Main 100mW 중간
게임, 동영상 편집 4 Main 500mW+ 최고

캐시 일관성과 운영체제의 관점

각 코어의 L1 캐시는 공유 L2 캐시를 통해 연결되며, MESI/MOESI 일관성 프로토콜이 코어 전환 과정의 데이터 일관성을 보장한다. 따라서 캐시 동기화를 위한 별도 오버헤드 없이 전환할 수 있다.

Companion CoreL1 캐시L2 캐시(공유)Main Core 0L1 캐시Main Core 1L1 캐시일관성 프로토콜(MESI/MOESI)코어 전환데이터 일관성 보장

운영체제는 이 구성을 단일 프로세서로 인식한다. 하드웨어 로직이 코어 전환을 처리하므로 기존 애플리케이션은 수정할 필요가 없으며, OS 스케줄러도 일반적인 SMP 스케줄링을 사용한다.

Companion Core는 저전력 대기 모드를 전담한다. 사용하지 않는 Main Core는 전력 게이팅으로 완전히 차단하고, DVFS와 결합해 전압과 주파수도 조정한다. 이 Battery Saver Core 구성은 배터리 수명을 최대 2-3배 연장할 수 있다.

전환 지연과 반복 전환을 다루는 방법

코어 전환에는 지연 시간이 생길 수 있고, 이는 사용자 체감 반응 속도를 낮출 수 있다. 이를 줄이기 위해 부하 증가를 예측해 Main Core를 미리 준비하고, 전환 로직은 하드웨어로 구현한다. 전환 전에 필요한 데이터를 L2 캐시에 로드하는 방식도 사용할 수 있으며, seamless 전환의 목표는 10ms 이내다.

"Main""Companion""전력 관리""애플리케이션""Main""Companion""전력 관리""애플리케이션""부하 증가 감지""미리 준비 시작""전원 인가, 캐시 준비""작업 마이그레이션""컨텍스트 전달""seamless 실행 계속"

부하가 경계값 부근에서 계속 진동하면 Companion과 Main 사이의 전환이 반복되고, 그 오버헤드가 성능을 떨어뜨릴 수 있다. 히스테리시스를 적용해 Companion에서 Main으로 옮길 때는 부하 > 70%, Main에서 Companion으로 돌아갈 때는 부하 < 30%로 서로 다른 임계값을 둔다. 일정 시간 동안 부하가 유지될 때만 전환하도록 시간 필터링을 적용하고, 과거 패턴을 학습해 불필요한 전환을 막는 방식도 사용한다.

배터리 잔량에 따라 전환 임계값을 바꾸고, 애플리케이션별 최적 코어 구성을 저장할 수 있다. 과열 시에는 Main Core의 클럭을 제한하거나 Companion Core로 전환해 온도를 관리한다.

vSMP모바일 프로세서전력 최적화멀티코어캐시 일관성