하이퍼스레딩(Hyper-Threading)



    인텔이 만들어낸 기술로 약간의 뻥으로 사람들을 현혹시킨 기술이기도 하다.

    특정 작업환경에서는 좀 더 효율이 발생할 수도 있다.


    예를 들어, 적은 리소스를 사용하는 프로그램들을 여러개 실행 할 경우 이 기능을 끈 것보다는 성능이 좋다. 하지만 동일한 연산을 주로 하는 프로그램에서는 오히려 성능이 줄어들 수 있다.




    자 그럼 하이퍼스레딩이 무엇인지 정확히 알아보자.

    쉽게 이해를 하려면, 사람의 몸으로 설명하는 것이 빠를 것 같아서 사람을 기준으로 설명을 해보겠다.


    어려운 수학문제 4개(프로세스 4개)가 존재한다고 해보자.

    이 문제를 4명이서 각각 하나씩 전담을 하여, 총 1분에 걸쳐서 풀게 되었다.

    이 개념이 멀티프로세스이며, 사람이 4명이니 쿼드코어(4명)다.


    그럼 i3같은 듀얼코어에 하이퍼스레딩을 적용한 경우 어떨까?

    듀얼코어이기 때문에 일단 사람은 2명이다. 하지만 이 사람에게 특별한 처리 방식을 주게 되는데...

    한번에 2문제를 동시에 주면서 풀게하였다.


    자 그렇다면 효과를 어떻게 될까?

    사람이 수학문제를 동시에 2문제를 풀 수 있을까?

    좌뇌, 우뇌를 다르게 사용하면 모를까 수학문제라면 좌뇌를 집중적으로 사용하면서 풀기 때문에 오히려 2문제를 동시에 푸는 것이 헷갈려서 한문제씩 2번 푸는것보다 시간이 더 걸릴 수 있다.


    기술별 이해하기 쉽게 정리된 그림(슈퍼스칼라부터 하이퍼스레딩까지 설명되어 있다.)



    이게 바로 하이퍼스레딩의 독이다.

    이러한 비슷한 연산(여기선 수학문제)이 동시에 일어나게 되면, 오히려 헷갈려서 시간이 더 오래 걸릴 수 있다는 단점이 있다.


    그럼 하이퍼스레딩이 좀 더 효율을 발휘하는 것은 무엇이 있을까?

    수학문제가 아니라, 만약 음악실기문제를 같이 한다면 어떨까?


    물론 수학문제가 너무 어려워서, 다른 것을 하면 손해를 볼 수 있지만 수학문제가 너무 어렵진 않고 일반적인 난이도라면 수학문제를 풀면서 노래 연습을 동시에 진행해 나갈 수도 있을 것이다.


    하이퍼스레딩은 바로 이 공통적인 자원에 동시에 2가지 일을 처리하는 방식이다.

    인텔은 최대 30프로 정도 효과가 발휘된다고 하지만 어떠한 프로그램은 오히려 마이너스 효율이 나올수도 있다. 

    댓글

    Designed by JB FACTORY