하이퍼스레딩
하이퍼스레딩은 하나의 프로세서 코어가 여러 프로세스 스레드를 동시에 실행할 수 있도록 하는 프로세서 기능입니다. 하이퍼스레딩을 지원하는 CPU는 각 물리적 프로세서 코어를 두 개의 가상 코어로 나누어, 더 많은 작업이 필요한 애플리케이션을 실행할 수 있게 함으로써 컴퓨터의 효율성을 높입니다. 하이퍼스레딩은 Intel에서 개발되어 여러 프로세서에 사용되었으며, AMD는 프로세서에 Simultaneous Multithreading이라는 유사한 기술을 사용합니다.
CPU의 각 프로세서 코어에는 곱셈이나 덧셈처럼 별도의 계산 기능을 수행하는 실행 유닛 집합이 포함되어 있습니다. 하이퍼스레딩이 없으면 각 실행 유닛은 한 번에 하나의 프로세스 스레드만 실행할 수 있으며, 필요한 계산의 종류에 따라 이러한 실행 유닛 중 상당수가 유휴 상태가 됩니다. 하이퍼스레딩은 서로 다른 계산 작업이 필요한 두 스레드를 짝지어 두 개의 별도 스레드가 함께 실행되도록 합니다. 이처럼 스레드를 병렬로 실행하는 방식은 두 개의 물리적 코어를 사용하는 것만큼 빠르지는 않지만, 한 번에 하나의 스레드만 실행하는 것보다는 효율적입니다.
하이퍼스레딩은 컴퓨터가 더 효율적으로 실행되도록 도울 수 있지만, 컴퓨터의 운영 체제와 기타 소프트웨어의 지원이 필요합니다. 먼저 운영 체제는 각 물리적 프로세서 코어에 두 개의 가상 코어 주소를 할당합니다. 그런 다음 가상 코어 간에 계산이 나뉘고 효율성이 최대화되도록 스레드를 할당합니다.
프로그램이 하이퍼스레딩의 이점을 얻으려면 작업을 동시에 실행할 수 있는 별도의 스레드로 나누는 방식으로 작성되어야 합니다. 프로그램에 한 번에 하나의 프로세스 스레드만 있다면 다른 가상 코어로 두 번째 스레드를 보낼 수 없습니다. 그러나 컴퓨터에서 단일 스레드 애플리케이션을 실행하고 있더라도 동시에 다른 애플리케이션의 프로세스 스레드를 실행할 수 있으므로, 멀티태스킹을 수행할 때 컴퓨터가 더 빠르게 작동하는 데 도움이 됩니다.
NOTE: 하이퍼스레딩은 기술적으로 더 복잡하며, 하이퍼스레딩을 사용하지 않는 동급 프로세서보다 더 많은 전력이 필요합니다. Intel은 일반적으로 고급 프로세서에 하이퍼스레딩을 적용합니다.
지식 테스트하기