하이퍼스레딩의 공유 자원 구조와 성능 특성

하이퍼스레딩의 SMT 구조, 논리적 프로세서와 공유 자원, 성능·보안 한계 및 운영 관리 방법을 정리합니다.

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

유휴 파이프라인을 다른 스레드에 쓰는 방식

프로세서는 메모리 접근 대기, 캐시 미스, 파이프라인 스톨 때문에 항상 명령어를 실행하지는 못한다. 하이퍼스레딩(Hyper-Threading)은 이런 유휴 구간을 활용하기 위해 인텔이 개발한 동시 멀티스레딩(SMT, Simultaneous Multi-Threading) 기술이다.

물리적 코어 하나를 운영체제에는 2개의 논리적 프로세서로 노출한다. 각 논리적 프로세서는 별도 스레드를 실행할 수 있고, 한 스레드가 대기하는 동안 다른 스레드가 남은 실행 자원을 사용할 수 있다.

하이퍼스레딩 아키텍처논리적 프로세서 1(레지스터 세트 1)공유 스케줄러논리적 프로세서 2(레지스터 세트 2)ALU 유닛FPU 유닛Load/Store 유닛L1 캐시L2 캐시메모리

하이퍼스레딩의 핵심은 다음과 같다.

  • 하나의 코어에서 여러 스레드를 동시에 실행한다.
  • 물리 코어 1개가 운영체제에는 2개의 가상 프로세서로 인식된다.
  • 실행 유닛, 캐시, 버스 같은 물리 자원은 스레드가 함께 사용한다.
  • 한 스레드의 대기 시간에 다른 스레드를 실행해 코어 활용률을 높인다.

분리되는 상태와 함께 쓰는 실행 자원

논리적 프로세서가 독립적으로 동작하려면 각 스레드의 실행 상태는 분리되어야 한다. 따라서 범용 레지스터 파일, 프로그램 카운터, 플래그 레지스터 같은 아키텍처 상태는 각 논리적 프로세서별로 유지된다. APIC 레지스터도 각 논리적 프로세서가 독립적으로 인터럽트를 처리할 수 있게 한다.

레지스터 복제에 필요한 실리콘 면적은 전체 다이의 5% 미만이다. 반면 실제 연산을 수행하는 자원은 중복하지 않는다.

물리적 코어공유 자원스레드 2 상태스레드 1 상태실행 유닛들범용 레지스터세트 1범용 레지스터세트 2프로그램 카운터 1프로그램 카운터 2플래그 레지스터 1플래그 레지스터 2캐시TLB

공유 대상에는 ALU, FPU, SIMD 유닛 같은 실행 유닛과 L1·L2·L3 캐시, TLB, 메모리 및 I/O 버스 인터페이스, 분기 예측기가 포함된다. 공유 스케줄러는 사용되지 않는 실행 유닛을 실행 가능한 스레드에 동적으로 배정한다. 한 스레드가 파이프라인 스톨에 걸렸을 때 다른 스레드를 진행시키는 이유가 여기에 있다.

처리량은 늘지만 코어가 둘이 되는 것은 아니다

동일한 물리 코어에서 이론적으로는 약 2배의 처리량을 기대할 수 있다. 실제 성능 향상은 워크로드에 따라 1.15배~1.3배이며, 여러 독립 작업을 병렬로 수행할 때 효과가 커진다. 공유 캐시에서 데이터를 재사용할 수 있는 반면, 스레드 간 캐시 경합은 일부 성능 저하를 일으킬 수 있다.

단일 스레드 실행파이프라인 버블(유휴 시간 40%)실제 활용률 60%하이퍼스레딩 실행스레드 1 대기스레드 2 실행실제 활용률 90%+성능 비교1.5~1.3배 성능 향상

운영체제는 논리적 프로세서를 물리적 프로세서처럼 보고 각 논리적 프로세서에 스레드를 따로 할당한다. CPUID 명령어로 하이퍼스레딩 지원 여부를 확인할 수 있으며, 애플리케이션은 특정 논리적 프로세서에 대한 선호도 설정도 할 수 있다.

물리 코어논리 프로세서 2논리 프로세서 1운영체제물리 코어논리 프로세서 2논리 프로세서 1운영체제스레드 A 스케줄링스레드 B 스케줄링명령어 실행 요청명령어 실행 요청자원 동적 할당명령어 실행 완료명령어 실행 완료작업 완료 통지작업 완료 통지

비용 효율성과 멀티태스킹 응답성

물리 코어를 추가하는 방식과 비교하면 하이퍼스레딩은 5% 미만의 실리콘 면적 증가로 구현할 수 있다. 물리 코어 추가보다 전력 소비가 훨씬 낮고 추가 발열도 거의 없어 냉각 시스템 부담을 줄인다.

파이프라인 버블을 줄이고 메모리 대기 시간을 다른 스레드 실행으로 가릴 수 있어 실행 유닛 활용률이 높아진다. 공유 캐시는 데이터 재사용 가능성을 높일 수 있으며, 전체 시스템 처리량은 15~30% 향상될 수 있다.

여러 애플리케이션을 함께 실행하는 환경에서도 이점이 있다. 백그라운드 작업이 수행되는 동안 포그라운드 애플리케이션의 반응성을 유지하는 데 도움이 되며, 다수의 클라이언트 요청을 동시에 처리하는 서버 워크로드에 적합하다.

여러 응용 프로그램OS 스케줄러논리 프로세서 1논리 프로세서 2백그라운드 작업시스템 서비스포그라운드 작업사용자 애플리케이션응답성 향상

공유 자원 때문에 생기는 제약

두 스레드가 같은 캐시를 쓰면 캐시 미스율이 높아질 수 있다. 동일한 유형의 연산을 동시에 요구하면 실행 유닛 경합이 발생하고, 메모리 집약적 워크로드에서는 메모리 대역폭 부족이 나타날 수 있다. 이런 경우 하이퍼스레딩이 오히려 성능을 낮출 가능성도 있다.

단일 스레드 애플리케이션에는 이점이 없으며, CPU 바운드 워크로드의 효과도 제한적이다. 애플리케이션이 멀티스레딩을 효율적으로 활용하도록 설계되어야 한다.

공유 자원은 보안 측면에서도 검토 대상이다. 같은 코어에서 실행되는 다른 스레드의 정보가 공유 자원 공격이나 캐시 접근 시간 측정에 따른 타이밍 공격으로 유출될 수 있다. Spectre, Meltdown, L1TF, MDS 같은 사이드 채널 이슈에 대해 마이크로코드 업데이트와 OS 패치를 적용하고, 일부 환경에서는 하이퍼스레딩 비활성화를 검토한다. 완화 조치는 성능 오버헤드를 수반할 수 있다.

하이퍼스레딩 보안 이슈사이드 채널 공격SpectreMeltdownL1TFMDS완화 기법성능 오버헤드HT 비활성화 권장(일부 환경)

물리 코어 확장과 조합하는 방법

하이퍼스레딩은 물리적 멀티코어와 같은 방식으로 확장되지 않는다. 물리 코어는 독립 실행 자원을 제공하지만, 하이퍼스레딩은 대부분의 실행 자원을 공유한다.

특성 하이퍼스레딩 물리적 멀티코어
하드웨어 비용 매우 낮음 (5%) 높음 (100% x N)
전력 소비 최소 증가 비례적 증가
성능 향상 15~30% 90~100% x N
자원 공유 모든 실행 자원 공유 독립적 실행 자원
적합한 용도 멀티태스킹, I/O 대기 많음 CPU 집약적 병렬 처리

현대 프로세서는 여러 물리 코어에 각각 하이퍼스레딩을 적용하는 구성을 사용한다. 코어 수와 하이퍼스레딩을 조합해 성능을 확장하고, 워크로드에 따라 하이퍼스레딩 활성화 여부를 선택할 수 있다.

현대 프로세서 구조물리 코어 1논리 프로세서 1-1논리 프로세서 1-2물리 코어 2논리 프로세서 2-1논리 프로세서 2-2물리 코어 3논리 프로세서 3-1논리 프로세서 3-2물리 코어 4논리 프로세서 4-1논리 프로세서 4-2운영체제가 8개 프로세서로인식

효과가 드러나는 작업 환경

웹 서버의 동시 HTTP 요청 처리, 많은 트랜잭션을 동시에 다루는 OLTP 데이터베이스, 다수의 가상 머신을 실행하는 가상화 환경, 멀티 테넌트 클라우드 환경은 하이퍼스레딩의 자원 활용 효과를 기대할 수 있는 대상이다.

데스크톱에서는 렌더링과 편집을 함께 하는 멀티미디어 작업, 게임과 스트리밍·녹화를 병행하는 환경, 컴파일 중 코드 편집과 디버깅을 수행하는 개발 환경, 여러 오피스 애플리케이션을 동시에 사용하는 경우에 활용할 수 있다. 병렬 컴파일, 독립 데이터 블록의 압축·암호화, 독립적인 시뮬레이션 인스턴스 실행도 해당한다.

시스템에서 확인하고 제어하기

대부분의 시스템은 BIOS/UEFI에서 하이퍼스레딩을 활성화하거나 비활성화할 수 있으며, 일반적으로 기본 활성화 상태다. 보안 요구가 높은 환경에서는 비활성화를 검토할 수 있다.

# Linux에서 하이퍼스레딩 상태 확인
lscpu | grep -i thread

# Windows에서 작업 관리자를 통한 확인
# 성능 탭 > CPU > 논리 프로세서 수 확인

# 프로세스 친화성 설정 (Linux)
taskset -c 0,1 ./my_application

운영체제 스케줄러는 논리적 프로세서를 인식해 스케줄링하며, 필요하면 특정 애플리케이션을 특정 논리적 프로세서에 바인딩할 수 있다. 성능 모니터링 도구로 논리적 프로세서별 사용률을 추적하는 것도 가능하다.

적응형 SMT를 향한 변화

향후에는 코어당 2개 이상의 논리적 프로세서를 지원하고, 워크로드에 맞춰 논리적 프로세서 수를 동적으로 조절하는 방식이 가능할 수 있다. 논리적 프로세서 간 격리 강화와 머신러닝 기반 동적 자원 할당도 발전 방향에 포함된다.

차세대 SMT는 실행 유닛 수준의 더 세밀한 동적 파티셔닝, 스레드 중요도에 따른 자원 배분, 스레드별 전력 관리 기술을 지향한다.

하이퍼스레딩SMT프로세서운영체제멀티코어