안녕하세요, Mark입니다.
지난 편에서 CPU는 판단하는 게 아니라 회로가 반응하는 거라고 했는데요. 이번엔 또 다른 궁금증이 생겼습니다.
인텔 CPU 스펙 사진을 보다가 이상한 걸 발견했거든요.
“i7이 8+8코어에 16+8쓰레드? 앞에 8코어는 2쓰레드씩인데 뒤에 8코어는 1쓰레드씩이네. 그리고 i9은 24코어 32쓰레드… 계산해보면 8코어만 2쓰레드고 나머지 16코어는 1쓰레드잖아?”
역추산을 해봤더니 뭔가 이상했습니다. 그리고 또 이런 생각이 들었어요.
“현재 기술로 1코어에 3쓰레드, 4쓰레드까지 만들면 성능이 확 올라가는 거 아니야? 왜 다들 2쓰레드에서 멈춰있지? 컴퓨터가 2진수를 쓰니까 2쓰레드가 한계인 건가?”
제미나이한테 물어봤더니 이번에도 칭찬부터 시작하더군요.
“분석력이 진짜 대단하다. 복잡한 숫자들을 보고 정확하게 역추적해냈어!” 😂
(칭찬은 이제 그냥 넘기겠습니다 ㅎㅎ)
🖥️ 먼저 인텔 CPU의 이상한 구조부터
제가 본 스펙표의 비밀은 바로 인텔의 하이브리드 코어 전략이었습니다.
인텔은 최신 CPU에 두 종류의 코어를 섞어서 씁니다.
| 구분 | P코어 (Performance) | E코어 (Efficiency) |
|---|---|---|
| 별명 | 덩치 크고 힘센 형님 | 덩치 작고 날쌘 동생 |
| 쓰레드 | 1코어 2쓰레드 | 1코어 1쓰레드 |
| 용도 | 게임, 무거운 작업 | 백그라운드 가벼운 작업 |
E코어에서 하이퍼스레딩을 뺀 이유가 재밌습니다.
“하이퍼스레딩 회로를 넣을 공간조차 아껴서, 그 자리에 코어를 4개 더 때려 박는 게 낫다고 판단한 거야.”
즉, 가짜 손(쓰레드) 늘리기보다 진짜 요리사(코어) 더 고용하기로 방향을 튼 겁니다. 요즘 CPU 트렌드가 바로 이거예요.
🤔 그럼 왜 1코어 4쓰레드, 8쓰레드는 안 만들어?
결론부터 말하면 2진수랑은 전혀 관계없습니다. 기술적으로는 충분히 가능해요.
그런데 왜 안 할까요? 요리사 비유로 들어가 보겠습니다.
1코어 2쓰레드 (현재):
- 요리사 1명, 도마 1개
- 손 2개로 일함
- 한 손이 냄비 물 끓기를 기다릴 때, 다른 손이 도마를 씀 → 효율 굿!
1코어 4쓰레드 (가정):
- 요리사 1명, 도마는 여전히 1개
- 손이 4개
- 손 4개가 서로 도마 쓰겠다고 싸우기 시작 → 병목 현상
- “야, 비켜! 나 썰어야 해!” 하다가 오히려 더 느려짐 😅
쓰레드를 늘리려면 코어 내부의 실행 유닛(도마, 칼)도 같이 늘려줘야 합니다. 그러면 코어 크기가 엄청 커지고 비싸지죠.
그래서 엔지니어들이 계산기를 두드려봤습니다.
“4쓰레드 만들기: 코어를 뚱뚱하게 개조. 설계 복잡, 발열 심함, 효율 증가는 미비.” “그냥 코어 1개 더 박기: 1코어 1쓰레드를 옆에 하나 더 심음.”
결론: 가짜 손 4개보다, 진짜 요리사 1명 더 고용하는 게 훨씬 빠르다!
1코어 2쓰레드까지는 남는 자투리 시간을 알뜰하게 쓰는 황금비율(효율 약 30% 증가)인데, 3쓰레드부터는 그만큼 남는 시간이 없어서 효율이 급격히 떨어집니다.
🖥️ 그런데 서버는 다르다고?
여기서 또 의문이 생겼습니다.
“서버는 부피가 커도 되고 비용도 많이 쓸 수 있으니까 1코어 4쓰레드, 8쓰레드가 가능한 거 아니야?”
정답입니다. 실제로 존재합니다.
- IBM POWER CPU: 무려 1코어당 8쓰레드(SMT8) 지원
- 인텔 제온 파이(Xeon Phi): 1코어당 4쓰레드 지원
그런데 부피와 비용보다 더 결정적인 이유가 있습니다. 바로 하는 일 자체가 다르기 때문입니다.
스포츠카 vs 셔틀버스
| 구분 | 개인 PC | 서버 |
|---|---|---|
| 비유 | 🚗 스포츠카 | 🚌 대형 셔틀버스 |
| 목적 | 내 명령 즉시 처리 (반응 속도) | 100만 명 동시 처리 (처리량) |
| 중요한 것 | 한 가지를 빠르게 | 많은 양을 동시에 |
개인 PC는 제가 클릭하면 즉시 창이 떠야 합니다. 요리사 1명이 손이 너무 많으면 정신 사나워서 오히려 한 가지 일을 빨리 못 끝냅니다.
반면 서버는 100만 명이 동시에 “내 계좌 잔액 보여줘!” 라고 요청합니다. 한 명 한 명의 속도가 0.1초 늦어져도 상관없어요. 최대한 많은 사람을 태우는 게 중요합니다.
기다리는 시간의 차원이 다릅니다
지난 편에서 말한 “메모리 로딩될 때 CPU가 논다” 는 개념 기억하시죠? 서버는 이 노는 시간이 엄청나게 깁니다.
- PC: 메모리 16~32GB, 데이터 금방 찾아옴 → 쓰레드 2개면 빈틈 메꾸기 충분
- 서버: 메모리 수십 테라바이트(TB), 데이터베이스에서 데이터 하나 찾으려면 CPU 입장에서는 영겁의 시간 → 쓰레드 2개로는 턱도 없음. 둘 다 기다리느라 멍 때림
그래서 “기다리는 시간이 어마어마하게 기니까 쓰레드 4개, 8개까지 늘려서 그 긴 공백을 다 채워버리자!” 라고 설계한 겁니다.
여기에 부피와 비용 이유도 더해집니다.
- 발열: 한 코어에서 8개 작업이 지지고 볶으니 열이 어마어마
- PC 쿨러: 감당 불가능
- 서버실: 에어컨 18도 빵빵하게 틀고, 비행기 이륙 소리 나는 팬 돌림 → 가능 ✅
✅ 한눈에 요약
| 질문 | 답 |
|---|---|
| 1코어 4쓰레드가 2진수 때문에 불가능한가? | ❌ 기술적으로 가능, 가성비가 안 나올 뿐 |
| 1코어 4~8쓰레드 CPU가 존재하는가? | ✅ 서버용으로 실제 존재 (IBM POWER 등) |
| 왜 PC는 2쓰레드에 정착했나? | 1코어 2쓰레드가 효율의 황금비율이라서 |
| 서버에 많은 쓰레드가 필요한 이유는? | 메모리 대기 시간이 길어서 빈틈을 채워야 하므로 |
| 인텔 E코어가 1쓰레드인 이유는? | 그 공간에 코어를 더 박는 게 낫기 때문 |
마치며
이번 시리즈를 쓰면서 저도 정말 많이 배웠습니다. CPU 코어 하나에도 이렇게 깊은 설계 철학이 담겨 있다니, 새삼 엔지니어들이 대단하게 느껴지더라고요.
4편에 걸쳐 코어, 쓰레드, 시분할, 하이퍼스레딩, 그리고 서버용 CPU까지 달려왔는데요. 모르는 걸 AI한테 물어보다 보면 이렇게 꼬리에 꼬리를 물고 깊어진다는 걸 새삼 느꼈습니다. ㅎㅎ
Mark의 한마디: “서버실에서 비행기 이륙 소리 나는 팬을 돌린다는 말이 과장이 아닙니다. 직접 들어가보면 귀마개 없이는 대화가 불가능할 정도거든요. 그 시끄러운 팬이 1코어 8쓰레드 괴물 CPU를 식히고 있다고 생각하니 왠지 웃기네요 ㅎㅎ”