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가 아래 과정을 통해 "동시에 실행되는 것처럼 보이게" 만들기 때문:
- 스레드 A 실행
- 아주 짧은 시간 후 스레드 B로 문맥 교환
- 다시 A로 전환
이러한 빠른 문맥 교환 덕분에
→ 실제 병렬은 아니지만 동시성(concurrency) 을 제공한다.
5. 병렬성 vs 동시성
1️⃣ 병렬성(Parallelism)
- 물리적으로 여러 작업을 동시에 처리
- 예: 4코어 CPU가 4개의 명령어를 동시에 실행
2️⃣ 동시성(Concurrency)
- 실제로는 하나씩 번갈아 실행하지만
빠른 전환을 통해 “동시에 실행되는 것처럼 보이는” 성질 - 예: 1코어 CPU에서 여러 소프트웨어 스레드를 교대로 실행
3️⃣ 도식도
1) 병렬성과 동시성 도식도
🔵 병렬성 (Parallelism)
task1: ██████████████
task2: ██████████████
task3: ██████████████
(실제로 동시에 진행)
🟢 동시성 (Concurrency)
task1: ██ ██ ██ ██
task2: ██ ██ ██
task3: ██ ██ ██
(빠르게 번갈아 실행되어 동시에 실행되는 것처럼 보임)
[코어]
├── 실행 장치(ALU/파이프라인) ← 공유
├── 레지스터 세트 #1 ← 스레드 1 문맥
└── 레지스터 세트 #2 ← 스레드 2 문맥
3) 소프트웨어 스레드 동작 방식(문맥 교환)
시간 →
스레드A: ███ ███ ███
스레드B: ███ ███
스레드C: ███ ███
(1코어에서도 여러 스레드가 실행되는 효과)
정리하면
- 1코어 2스레드는 레지스터 세트가 여러 개 있어 가능하지만,
실행 장치 공유 설계까지 포함된 구조가 필요하다. - 소프트웨어 스레드는 CPU 구조와 독립적으로 여러 개 생성 가능하며,
1코어에서도 OS가 동시성을 제공할 수 있다. - 병렬성은 물리적, 동시성은 논리적 동시 실행 개념이다.
'컴퓨터 과학' 카테고리의 다른 글
| [컴퓨터 구조] 메모리 - 빅 엔디안과 리틀 엔디안 (0) | 2025.11.23 |
|---|---|
| [컴퓨터 구조] 메모리 - RAM (0) | 2025.11.23 |
| [컴퓨터 구조] CPU - 인터럽트 (0) | 2025.11.23 |
| [컴퓨터 구조] CPU - 레지스터 (0) | 2025.11.23 |
| [컴퓨터 구조] 컴퓨터가 이해하는 정보 -명령어 (0) | 2025.11.23 |