-
Core vs. Thread: CPU 성능의 핵심 개념 이해하기CS 공부/Memory 2024. 10. 27. 14:10
CPU 성능을 설명할 때 자주 언급되는 두 가지 용어가 있습니다: “코어(Core)“와 “스레드(Thread)”. 이 두 용어는 CPU가 동시에 얼마나 많은 작업을 처리할 수 있는지를 결정짓는 중요한 요소입니다. 각각의 개념과 그 차이점에 대해 정리해보겠습니다.
1. 코어(Core)란?
코어는 CPU 내부에 있는 독립적인 처리 장치입니다. 과거에는 CPU에 하나의 코어만 있었지만, 최근에는 여러 개의 코어가 하나의 CPU에 포함되어 있습니다. 이를 통해 여러 작업을 동시에 처리할 수 있게 되었습니다. 예를 들어, 쿼드코어(Quad-Core) CPU는 4개의 코어를 가지고 있어, 4개의 서로 다른 작업을 병렬로 처리할 수 있습니다.
비유: 코어를 요리사로 생각해보면, 한 명의 요리사는 동시에 하나의 요리만 할 수 있습니다. 요리사가 많아질수록 더 많은 요리를 동시에 할 수 있듯이, 코어 수가 많을수록 CPU는 더 많은 작업을 동시에 처리할 수 있습니다.2. 스레드(Thread)란?
스레드는 코어가 처리할 수 있는 작업의 단위입니다. 일반적으로 CPU의 코어는 하나의 스레드를 처리할 수 있지만, 하이퍼스레딩(Hyper-Threading) 또는 동시 멀티스레딩(Simultaneous Multithreading, SMT) 기술을 통해 한 코어가 여러 개의 스레드를 처리할 수 있게 설계되었습니다. 예를 들어, 최신의 인텔과 AMD CPU들은 대부분 코어당 2개의 스레드를 지원합니다. 즉, 4코어 CPU가 하이퍼스레딩을 지원한다면 8개의 스레드를 동시에 처리할 수 있는 셈입니다.
비유: 스레드는 요리사의 양손과 같습니다. 한 명의 요리사가 두 손을 사용해 동시에 두 가지 요리를 준비할 수 있듯이, 하이퍼스레딩을 통해 하나의 코어가 두 개의 작업을 동시에 처리할 수 있습니다.3. 하이퍼스레딩과 CPU 활용률
스레드 수가 늘어난다고 해서 무조건 성능이 두 배로 증가하는 것은 아닙니다. CPU는 매우 집약적인 작업을 처리할 때도 L3 캐시, RAM, 디스크에서 데이터를 읽어오기를 기다리는 시간이 있습니다. 이 시간 동안 CPU 코어는 비활성화되거나 절전 모드로 전환되기도 합니다.
하이퍼스레딩은 이러한 비활성화 시간을 줄이기 위한 기술입니다. 한 코어가 두 스레드를 처리하면서, 한 스레드가 메모리 데이터를 기다리는 동안 다른 스레드의 작업을 진행할 수 있도록 합니다. 이론적으로는 두 스레드가 충돌 없이 효율적으로 작업을 나눈다면 성능이 100% 향상될 수 있지만, 현실적으로는 30% 정도의 성능 향상을 기대할 수 있습니다.4. 코어와 스레드의 중요성
코어와 스레드 중 어느 것이 더 중요한지는 사용하는 프로그램의 특성에 따라 달라집니다. 고성능 게임과 같이 실시간 처리 성능이 중요한 작업에서는 물리적인 코어 수가 더 중요할 수 있지만, 영상 편집처럼 여러 작업을 동시에 처리하는 프로그램에서는 스레드 수가 더 큰 영향을 미칠 수 있습니다.