반응형

안녕하세요. 매일 IT, 밀릿입니다. 이번 포스팅에서는 지난 포스팅에서 알아본 CPU 코어에 이어 'CPU 스레드'와 'CPU 클럭'의 개념에 대해 알아보려고 합니다. 앞선 포스팅에서 말씀드렸다시피 조립형 PC를 제가 원하는 성능으로 조립하기 위해 컴퓨터 부품들의 성능을 나타내는 다양한 용어와 지표들의 의미에 대해 공부하고 있는데요. 지난번에 이어 CPU 성능을 나타내는 또 다른 지표인 'CPU 스레드'와 'CPU 클럭'이 각각 무슨 뜻이며 성능에 어떤 영향을 미치는지 살펴보겠습니다.

 

 

CPU 스레드

CPU 스레드는 코어와 밀접한 연관을 가진 용어입니다. 앞선 시간에 CPU에서 코어란 작업을 하는 주체라고 표현했습니다. 한 명의 단일 작업자가 모든 업무를 처리하는 것보다 숙련도가 조금 떨어지더라도 두 명의 작업자가 업무를 나눠서 처리할 때 작업의 효율이 상승하고 부하가 감소하기 때문에 멀티 코어 프로세스를 이용하는 것이 다중 연산 작업이 요구되는 PC 작업에서 유용하다는 설명을 드렸습니다.

 

그렇다면 작업자 한 명이 1분에 처리할 수 있는 업무량은 10인데 비해 1분 동안 기계에 투입할 수 있는 처리량이 5라고 가정해보겠습니다. 작업자는 10의 작업물을 만들어놓고도 기계가 앞선 작업물들을 처리할 동안 기다려야 하고 이는 작업 효율의 저하를 가져옵니다. 이러한 작업 흐름의 정체를 '병목 현상'이라고 부릅니다. 만일 기계나 작업물을 투입할 수 있는 컨베이어 벨트 라인이 두 개라면 작업자는 작업물을 쌓아놓고 기다릴 필요 없이 작업이 완료되는 즉시 공정을 진행할 수 있기 때문에 공정은 정체 없이 진행될 것입니다.

CPU 스레드(Thread)란 CPU가 업무를 수행하는 단위를 의미합니다. 여전히 전산 처리는 코어가 담당하지만, 코어가 처리하는 데이터가 '스레드'라는 하나의 경로를 통해 이동한다는 뜻입니다. 한 개의 코어 당 하나의 스레드를 가지는 것이 원칙입니다. 위 단락의 설명에서처럼 코어와 스레드의 정보 처리 능력 차이가 확연하지는 않지만 코어의 성능이 향상될수록 병목현상은 발생할 수밖에 없습니다. 하지만 기존 논리회로를 통해서는 다중 스레드를 구성하는 것이 불가능했기 때문에 단일 스레드를 이용할 수밖에 없었습니다.

이러한 문제점을 해결하기 위해 '멀티스레딩'이라는 기술이 개발되었습니다. CPU 제조사인 인텔의 경우 '하이퍼스레딩', AMD에서 'SMT'라고도 부르는 이 기술을 통해 단일 코어에 할당되는 쓰레드를 이등분하여 병렬 전산 처리가 가능하게 됩니다. 멀티 코어 프로세싱과의 차이는 멀티 코어가 복수의 프로그램을 동시에 구동하는 데에 효과적이라면, 멀티스레딩 방식은 하나의 프로그램을 구동하는 데 있어 전산 처리를 복수의 경로로 진행하기 때문에 하나의 코어가 가진 성능을 최대한 효율적으로 이용하는 데에 도움을 주는 것으로 이해할 수 있습니다.

인텔에서 추가적으로 설명하는 자료를 살펴보면 하이퍼스레딩(Hyper-Threading Technology)은 운영체제에서 CPU 코어 한 개당 스레드가 하나씩 추가되어 싱글 코어에서 두개의 CPU가, 듀얼 코어에서 네 개의 CPU가 장착된 것으로 인식(코어 당 2개)하는 기술을 말합니다. 이 기술을 사용할 경우 기존의 물리 코어의 개념은 없어지고 논리 코어로만 작동하게 되는데 사용 환경과 프로그램에 따라 성능이 향상되기도 합니다. 특히 다중 작업에서 유리합니다.

 

물리적인 코어의 개수가 늘어난 것은 아니지만 경로 증설로 코어가 가진 성능을 최대한 발휘하게 함으로써 CPU의 성능을 극대화하는 효과를 기대할 수 있습니다. 제조사의 자료에 따르면 이러한 멀티스레딩 기술이 적용된 제품의 경우 단일 스레딩 방식에 비해 최대 40%가량 향상된 성능을 발휘한다고 하며, 일반적으로 약 15% 정도 성능 향상을 기대할 수 있는 것으로 이해되고 있습니다.

2020년 4월 기준 최신 CPU들은 저사양~기본사양 제품들은(인텔 i3, AMD젠 3 이하) 4 스레드, 중급 사양(인텔 i5, AMD젠 5) 6 스레드, 고사양급(인텔 i7, AMD젠 7) 8 스레드 이상으로 구성되어 있습니다. 자신이 사용하는 PC의 CPU가 지원하는 쓰레드 형태를 알고 싶다면 작업 표시줄에서 마우스 오른쪽 버튼을 누른 후 작업 관리자를 실행시키면 볼 수 있습니다.

 

CPU 클럭

CPU 클럭은 CPU가 연산 작업을 처리하는 속도를 의미하며 속도 단위는 Hz단위를 사용합니다. CPU에서 연산 작업, 즉 0과 1의 구분을 초당 몇 회 수행하는지 나타내는 수치로 1 GHz라면 초당 10억 회를 의미합니다. 클럭 수치가 높다면 그만큼 처리속도가 빠르다는 뜻이니 단시간에 많은 정보를 처리해내야 하는 그래픽 작업이나 고사양 게임을 즐길 때 기준이 되는 수치 중의 하나입니다.

하지만 최근에는 클럭 이외에도 클럭 당 명령어를 처리하는 횟수인 'IPC', 하나의 명령어에 의해 복수의 데이터를 처리하는 기술인 'SIMD' 등에 의해서도 연산 처리 능력이 좌우되기 때문에 클럭이 절대적인 CPU의 성능을 대변한다고 보기는 어렵습니다. 또한 코어의 개수가 늘어날 수록 단일 코어의 클럭 사양은 낮아지기 때문에 클럭 수치와 코어, 스레드의 개수를 무조건 높게 맞추기보다는 자신에게 적합한 코어, 스레드의 수와 클럭 사양을 비교해 선택하는 것이 필요합니다.

 

지난 포스팅과 이번 포스팅, 두 번에 걸쳐 CPU 성능을 나타내는 세 가지 요소인 CPU 코어 수, 쓰레드 수, 클럭 수치의 의미와 CPU 성능과의 관계를 살펴보았습니다. 과거에는 복수의 코어를 하나의 장치에 넣기 위해서는 다이의 크기가 커질 수밖에 없었지만 집적회로 처리 기술의 발달로 CPU의 크기 증가 없이도 복수의 코어, 복수의 스레드를 구성하여 PC의 연산 능력 업그레이드가 가능해졌습니다.

다음 포스팅에서는 CPU를 구성하는 캐시 메모리의 의미와 CPU 연산 과정에서의 역할에 대해서 알아보도록 하겠습니다.

 

반응형

'PC' 카테고리의 다른 글

CPU 설계전력을 알아보자  (0) 2020.04.25
CPU 대역폭이란?  (0) 2020.04.25
CPU 연산체계 이해하기  (0) 2020.04.25
CPU 캐시 메모리 뜻/ 구성  (0) 2020.04.24
CPU 코어 뜻 이해하기  (0) 2020.04.24
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기