왜 CPU의 스레드는 코어*2 일까?
** 본 게시글은 전문가가 아닌 그저 보고 배운내용의 간단한 요약 공유글입니다 **
컴퓨터를 구매하거나 자신의 컴퓨터의 작업관리자를 보면...
코어가 하나 일 때 논리프로세서(쓰레드)는 항상 두배다 왜 두배일까?
코어가 무엇인가?
코어는 종합 계산기라고 할 수 있다
Tmi // 컴퓨터라는 어원은 컴퓨터가 생기기전 시절, 회계 계산 할 때 자판을 두드려 돈 계산하던 사람을 컴퓨터 라고 불렀다.
종합계산기에 무엇이 들어있냐면
제어장치, 연산장치, 레지스터가 들어있다
각각의 역할은
제어장치 - 메모에 들어있는 값을 해독해서 다른장치에 어떤식으로 처리할지 제어
연산장치 - 입력된 값을 산술연산 하거나 논리연산해서 값을 도출
레지스터 - 동작하는데 필요한 명령어, 값 위치 주소, 데이터등등을 저장하는 공간
이렇게 들어있고 예시 이미지 처럼 코어가 16코어인 CPU는 제어,연산,레지 가 담긴 하나의 코어를 16개를 가지고 있다는 뜻 이기도 하다.
쓰레드의 의미
쓰레드의 정확한 명칭은 Hyper-Threading (하이퍼 쓰레딩) 이다
쓰레드의 탄생배경
초창기에 개발된 CPU들은 코어갯수가 적지만 윈도우 시스템이 생겨남에 따라 처리량이 많아져
어떻게 해야 컴퓨터가 빨라질지 선택을 해야하는데 두가지 선택권이 있었다
1.클럭(동작속도)수치를 높힌다, 단점) 과열이 극심하다
2.코어 수를 늘린다, 단점) 전력량이 증가한다
이 두가지 선택권이 있었는데 이때 AMD라는 회사에서 2번을 선택하는 대신 코어를 늘리는게 아닌 반으로 쪼개서 늘리는 시도를 했다
결과는 성공하여 지금 우리가 쓰는 형태로 설계되고 있다.
동작원리
우리가 소프트웨어를 동작시키면 (게임을 한다던가 동영상을 본다던가) CPU는 연산을 시작한다
근데 CPU가 아닌 코어 입장에서 보면
값을 처리하는데 제어장치가 연상장치에 값을 주고나면 제어장치는 놀게된다
그래서 코어 내부에 연산장치만 두개로 늘린것이 하이퍼 쓰레딩 인것이다
그리고 컴퓨터 내부적으로 하이퍼쓰레딩을 활성화하면 운영제체는 코어가 두배가 된것으로 알게되고 우리가 보는 것처럼 코어가 두배가 된다
어떨 때 하이퍼쓰레딩을 꺼야 할까?
하이퍼쓰레딩은 가볍고 많은 값을 처리 할 때 노는 연산장치를 효율적으로 작업하게 해주는 기술이기 때문에
일반 사용자들은 끌 필요는 없다 오히려 끄는게 더 안좋다
그럼 언재 꺼야 하냐면 주로 서버장치가 이에 해당된다 특히 CPU로 인코딩 디코딩 을 자주하는 서버의 경우는 하이퍼쓰레딩을 꺼야 더욱 빠르게 동작한다
이유가 동작원리에서 설명했듯 연산장치의 처리속도가 제어장치보다 느려서 쓰는 기술이기 때문에
무거운 작업을 하는 경우엔 두개의 연산장치가 제어장치, 레지스터를 동시에 쓰려고 막히기 때문이다
우리 주변에서는 스트리밍서버(라이브 방송송출 서버)가 있다.