컴퓨터 과학

[컴퓨터 구조] CPU - 성능 향상을 위한 설계

Data Jun 2025. 11. 23. 12:49

CPU 성능을 결정하는 요소는 단순히 “클럭 속도”만이 아니다.
오늘날의 CPU는 여러 코어와 스레드를 활용하여 더 높은 연산 성능을 발휘하며,
소프트웨어 구조 또한 이러한 하드웨어를 효율적으로 활용할 수 있도록 발전하고 있다.

 

이번 글에서는

  • 클럭 속도
  • 멀티코어
  • 멀티스레드(하드웨어/소프트웨어)
  • 병렬성과 동시성
    을 이미지와 함께 직관적으로 정리한다.

1. CPU 클럭 속도: 기본적인 연산 속도를 결정하는 척도

클럭(clock)은 CPU 내부 회로를 움직이게 만드는 "박자" 역할을 한다.
클럭 속도가 빠를수록 한 단위 시간에 더 많은 연산이 가능하지만,
발열과 전력 문제 때문에 무한정 올릴 수는 없다.

 

그래서 오늘날 CPU는 단순한 클럭 상승이 아닌,
코어와 스레드의 병렬 처리 능력으로 성능을 끌어올린다.

 

2. 멀티코어(Multi-Core) 구조

✔ 코어(core)란?

 

코어는 CPU 내부에서 실제로 명령어를 읽고, 해석하고, 실행하는 "작업자"다.
하나의 CPU 안에 여러 코어가 존재한다면 여러 작업을 동시에 실행할 수 있다.

코어 수 명칭
1 싱글코어
2 듀얼코어
4 쿼드코어
8 옥타코어
12 도데카코어

코어가 많을수록 동시에 처리할 수 있는 작업의 수가 늘어나며,
이는 CPU의 물리적 병렬성을 제공한다.

 

3. 하드웨어 스레드 (Hardware Thread)

1️⃣  하드웨어 스레드란?

`

하나의 코어가 동시에 처리할 수 있는 명령어 실행 단위를 의미한다.
대표적인 기술: 인텔 하이퍼스레딩(HT)

 

2️⃣  1코어 2스레드가 가능한 이유

 

  • 각 스레드는 독립된 레지스터 집합을 가진다
    → 스레드마다 고유한 문맥(context)을 유지할 수 있음
  • 하지만 ALU, 파이프라인 등 실행 장치는 공유
    → CPU는 두 스레드의 명령어를 번갈아 채워 넣으며 효율을 높인다
  • 레지스터 집합이 여러 개 있어야 가능하지만
    단순히 레지스터 개수만의 문제가 아니라 실행 파이프라인 설계 전체가 필요

즉, 1코어 2스레드 = 레지스터 세트 2개 + 실행 장치 공유 설계 의 조합이다.

 

4. 소프트웨어 스레드(Software Thread)

✔ 소프트웨어 스레드는 CPU 코어 수와 무관함

  • 소프트웨어 스레드는 OS 또는 프로그래밍 언어 수준에서 생성되는 논리적 실행 단위
  • 1코어 1스레드 CPU에서도
    여러 소프트웨어 스레드를 동시에 실행하는 것처럼 보일 수 있음

이는 OS가 아래 과정을 통해 "동시에 실행되는 것처럼 보이게" 만들기 때문:

  1. 스레드 A 실행
  2. 아주 짧은 시간 후 스레드 B로 문맥 교환
  3. 다시 A로 전환

이러한 빠른 문맥 교환 덕분에
실제 병렬은 아니지만 동시성(concurrency) 을 제공한다.

 

5. 병렬성 vs 동시성

1️⃣ 병렬성(Parallelism)

  • 물리적으로 여러 작업을 동시에 처리
  • 예: 4코어 CPU가 4개의 명령어를 동시에 실행

2️⃣  동시성(Concurrency)

  • 실제로는 하나씩 번갈아 실행하지만
    빠른 전환을 통해 “동시에 실행되는 것처럼 보이는” 성질
  • 예: 1코어 CPU에서 여러 소프트웨어 스레드를 교대로 실행

3️⃣ 도식도

 

 1) 병렬성과 동시성 도식도

 

🔵 병렬성 (Parallelism)

task1: ██████████████
task2: ██████████████
task3: ██████████████
(실제로 동시에 진행)

 

🟢 동시성 (Concurrency)

task1: ██    ██    ██    ██
task2:    ██    ██    ██
task3:       ██    ██    ██
(빠르게 번갈아 실행되어 동시에 실행되는 것처럼 보임)
 
2) 하드웨어 스레더 그주(1코어 2스레드)
  [코어]
     ├── 실행 장치(ALU/파이프라인)  ← 공유
     ├── 레지스터 세트 #1  ← 스레드 1 문맥
     └── 레지스터 세트 #2  ← 스레드 2 문맥​

 

3)  소프트웨어 스레드 동작 방식(문맥 교환)

시간 →
스레드A: ███       ███       ███
스레드B:     ███       ███
스레드C:        ███       ███
(1코어에서도 여러 스레드가 실행되는 효과)

 

 

정리하면

 

  • 1코어 2스레드는 레지스터 세트가 여러 개 있어 가능하지만,
    실행 장치 공유 설계까지 포함된 구조가 필요하다.
  • 소프트웨어 스레드는 CPU 구조와 독립적으로 여러 개 생성 가능하며,
    1코어에서도 OS가 동시성을 제공할 수 있다.
  • 병렬성은 물리적, 동시성은 논리적 동시 실행 개념이다.