HW

CPU 코어(core), 스레드(thread)란???

jungwon3004 2022. 1. 17. 10:55
728x90
반응형

CPU의 '성능'을 보다보면 코어(core) 수, 스레드(thread) 수 같은게 있습니다.

이것들이 무엇인지 확인해보도록 하겠습니다.


이 core와 thread를 이해하기 위해서는 hyper-threading 이라는 기능을 알아야 합니다.

쉽게 설명하자면, 하나의 core에서 일을 할 때 한 가지 일만 하면 남는 잉여자원이 존재하기 때문에 잉여자원을 활용해 동시에 다른 일을 하는 기술입니다.

더 쉽게 말하면

원래는 1core 당 1thread 로 한가지 일만 할 수 있었는데 hyper-threading을 활용하면 1core 당 2thread로 일을 2배로 할 수 있게 된 것입니다.

1차선 도로보다 2차선 도로가 덜 막히는 것과 같은 원리입니다.

예를 들어,

single core는 1 core 2 thread

duel core는 2 core 4 thread

quad core는 4 core 8 thread

이런 식인 것이죠.

물론

4 core 4 thread 와 2 core 4 thread 를

비교하면 전자가 좋습니다.

하나의 core를 쪼개서 2가지 일을 하는 것보다 하나로 1가지 일을 하는 것의 효율이 더 좋죠.

thread에 대해서 조금 더 이야기해보면 thread는 process 보다 작은 단위입니다.

1개의 process는 1개의 program 실행의미합니다.

1개의 프로그램에서 복잡한 동시작업을 하기위해서 process를 더 작은 단위로 나눈 것이 thread입니다.

하나의 process에서 thread를 여러 개로 나눈 뒤 각각의 thread가 memory를 공유하면 정보 교환이 쉽고, 메모리 점유가 적어 속도를 더 올릴 수 있습니다.

이걸 process 입장에서 바라보면 process는 최소 1개의 thread를 가진다고도 할 수 있습니다.

물론 너무 과하게 thread를 나누다보면 여러 문제가 발생합니다.


또 중요한 것은 사용 중인 software, program이 multi-core(다중코어)와 multi-thread (다중스레드)를 지원해야만 의미가 있습니다.

어떤 프로그램들은  multi-core나 multi-thread를 지원하지 않습니다.

만약 한 프로그램이 single core만 지원한다면 core가 1개인 CPU (single core CPU)를 쓴 것과 core가 4개인 quad core CPU를 쓴 것의 성능차이가 무의미해집니다.

심지어 single core CPU가 더 빠를 수도 있습니다.

같은 성능이라면 core 수가 적을수록 clock(클럭)이 높기 때문입니다.

single core의 경우, 하나의 CPU에 한 개의 core만 있기 때문에 하나의 CPU에 4개의 core가 있는 것보다 1개의 core만 비교해보면 효율이 더 높습니다.

좁은 공간에 혼자 일하는 것이 4명이서 비좁게 일하는 것보다 효율이 높다는 비유 정도로 기억하시면 될 것 같습니다.

그렇기 때문에 평소에 dual core까지만 지원하는 program을 대부분 사용한다면 quad core CPU를 구매하는 것보다 dual core CPU를 구매하는것이 나을 수도 있습니다.


참고로 clockcomputer prcessor의 동작속도를 의미하고 초당 몇 회 전기적 신호를 주느냐를 Hz 단위로 표기합니다.

그렇다면 clock이 CPU의 성능을 대표한다고 할 수 있을까요?

반은 맞고 반은 틀린 말입니다.

CPU의 성능을 결정하는 것에는 크게 3가지 정도가 있습니다.

(1) clock 수

(2) core 와 thread 의 개수

(3) IPC (사이클 당 명령어 처리 횟수)


여기서 주의해야 할 점!!

multi core가 single core보다 항상 좋을까??

상식적으로 생각해보면 당연히 single core 보다 dual core가 같은 일을 2배로 할 수 있으니 좋을 것이고 quad core, hexa core, octa core가 더욱 더 좋을 것입니다.

실제로 가격도 core 수가 올라갈수록 높습니다.

하지만 실제 운영에서 꼭 그런 것은 아닙니다.

하나의 CPU에서 여러 개의 core를 가지고 운영하는 것은 전력소모 더 심하고, 발열도 더 많이 생깁니다.

이를 보완하기 우해서 CPU controller 라는 것이 존재하고 이것이 전력소모와 발열을 최소화하기 위해 관리합니다.

728x90
반응형