CPU 코어와 스레드
CPU 코어, 스레드?
코어는 기존에 알고있었던 프로세서의 개념으로 생각하고 넘어갔지만 간혹 CPU에서 나타나는 2코어 4스레드, 4코어 4스레드 등과 같은 표현이 이해가 안갔었다. CPU의 코어와 스레드(Processor Thread) 에 대해 간단히 알아보고 정리해보자.
하이퍼 스레딩
하이퍼스레딩 : 원래 한개의 코어에서 일을 하는 동안 남는 잉여자원을 활용하는 기술이다. 코어를 효율적으로 사용하기 위한 기술로 이를 적용한다면 한 코어를 두 개의 스레드로 나눔으로써 여러 작업을 병렬적으로 처리가 가능하다고 한다. (인텔 기술)
즉 CPU에서 코어는 물리적인 단위이며 스레드는 논리적 단위 이다. 당연하게도 성능은 물리적인 단위인 코어가 많은게 더 높다. (스레드는 상황마다 다르지만 온전한 코어의 연산능력을 나누기 때문에 성능이 떨어진다.)
EX
- 1코어 1하이퍼스레드 CPU에서 두개의 스레드 작업의 실행
- 두개의 스레드가 번갈아가며 실행된다.
- 1코어 2하이퍼스레드 cpu에서 두개의 스레드 작업의 실행
- 각 스레드에서 길행하는 명령이 독립적이면 동시에 실행 (예를 들어 한쪽에서 실수 연산을 하는 동안 다른쪽이 정수 연산을 하면 거의 코어가 2개인 것 처럼 작동한다고 한다, 같은 연산인 경우 순차적으로 실행된다.) —
정리
하이퍼스레딩이라는 인텔의 기술로 CPU의 유휴 자원을 감지, 서로 영향을 주지 않는 명령어를 동시에 실행시키는 기술이며 이 때 논리적인 실행단위가 CPU에서의 스레드를 뜻한다. -> 논리적인 병렬처리
Reference
- https://goodgid.github.io/OS-CPU-and-Thread/
댓글남기기