클럭과 코어, 스레드라는 개념을 이해하고 빠른 CPU를 만드는 설계 기법인 멀티코어와 멀티스레드란 무엇인지 알아보자.
클럭
- 컴퓨터 부품들은 '클럭 신호'에 맞춰 일사분란하게 움직인다.
- CPU는 '명령어 사이클'이라는 정해진 흐름에 맞춰 명령어들을 실행한다.
- 클럭 속도가 높아지면? CPU도 명령어 사이클을 더 빠르게 반복한다. 다른 부품들도 그에 발맞춰 더 빠르게 작동한다.
- 클럭 속도는 헤르츠(Hz)단위로 측정한다.
- 클럭이라는 단어만 보고 매번 일정한 속도를 유지할 것이라고 생각하지만, 실제로는 그렇지 않다.
- CPU를 보면 기본 클럭 속도(Base)와 최대 클럭 속도(Max)로 나뉘는데, CPU는 계속 일정한 속도를 유지하기 보다는, 고성능을 요하는 순간에는 순간적으로 클럭 속도를 높이고, 그렇지 않을 때는 유연하게 클럭 속도를 낮춘다.
- 최대 클럭 속도를 강제로 더 끌어올릴 수 있는데, 이런 기법을 '오버 클럭킹'이라고 한다.
코어와 멀티코어
- CPU의 정의로 알고있던 '명령어를 실행하는 부품'은 코어라는 용어로 사용된다.
- 코어를 여러 개 포함하고 있는 CPU를 멀티코어 CPU 또는 멀티코어 프로세서라고 부른다.
- 클럭 속도가 2.4GHz인 단일 코어 CPU와 클럭 속도가 1.9GHz인 멀티코어 CPU를 비교하면? 놀랍게도 후자가 성능이 더 좋다.
- 코어를 두 개, 100개로 늘리면 연산 처리 속도가 그에 비례하게 증가할까? 그렇지는 않다. 처리하고자 하는 작업량보다 코어 수가 지나치게 많아도 성능에는 크게 영향이 없다. 중요한 것은 코어마다 처리할 명령어들을 얼마나 적절하게 분배하느냐이고 그에 다라서 연산 속도는 크게 달라진다.
스레드와 멀티스레드
멀티코어와 멀티스레드의 차이?
- 코어는 명령어를 실행할 수 있는 '하드웨어 부품'
- 스레드는 '명령어를 실행하는 단위'
- 멀티코어 프로세서는 명령어를 실행할 수 있는 하드웨어 부품이 CPU 안에 두 개 이상 있는 CPU를 의미하고, 멀티스레드 프로세서는 하나의 코어로 여러 개의 명령어를 동시에 실행할 수 있는 CPU를 의미한다.