기글 하드웨어 위키는 일정 레벨을 충족하는 회원분들께서 직접 참여하실 수 있는 공간입니다. 컴퓨터, 하드웨어, 소프트웨어, 각종 디지털 기기, 즉 IT 관련 정보만 올릴 수 있습니다. 여기에 해당되지 않는 항목은 삭제하고 이용에 재재가 주어집니다.
하이퍼스레딩
조회 수 4051 추천 수 0 2009.10.26 19:56:19하이퍼스레딩 기술(이하 하이퍼스레딩)은 IA-32 프로세서에서 멀티 스레드 OS와 어플리케이션 코드,
또는 멀티 태스킹 환경에서 동작하는 싱글 스레드 어플리케이션이 실행되는 동안에 수행 성능을 향상시키기 위해 개발된 기술이다.
이 기술은 하나의 물리적 프로세서가 둘 또는 그 이상의 나눠진 코드의 실행 흐름(즉, 스레드)을 공유된 실행 자원을 사용함으로써
동시에 실행하는 것을 가능케 한다.
하이퍼스레딩은 IA-32 프로세서군에서 하드웨어적인 멀티 스레딩 기술 중 하나이다.
이것은 멀티 프로세서(다중 CPU)가 물리적으로 스레드를 처리하는 것과는 다르며, 아키텍쳐적으로
하이퍼스레딩을 지원하는 IA-32 프로세서는 두개 또는 그 이상의 논리적인 프로세서가 존재한다.
각각의 논리적인 프로세서는 프로세서 자신의 IA-32 Architectural State를 가진다. 이들은 IA-32의 데이터 레지스터,
세그먼트 레지스터, 컨트롤 레지스터, 디버그 레지스터, 그리고 MSR들중 대부분이 존재하며 APIC도 가지고 있다.
논리적인 프로세서는 실행엔진과 시스템버스 인터페이스를 포함한다. 전원이 인가되어 초기화 된 후에
각각의 논리적인 프로세서는 특정한 스레드, 인터럽트, 또는 중지 명령에의해 독립적으로 지시될 수 있다.
하이퍼스레딩은 하나의 칩으로 둘 또는 그 이상의 논리적 프로세서를 제공함으로써
OS와 고성능 애플리케이션을 동시에 구동하게 되어 프로세스와 스레드 수준 병렬처리에 영향을 준다.
이러한 구성은 한개의 프로세서에서 둘 또는 그 이상의 스레드가 동시에 실행 되는 것을 허용한다.
각각의 논리적 프로세서는 프로세서 코어의 자원을 사용하여 어플리케이션의 스레드로부터 인스트럭션을 실행한다.
각 코어는 이 스레드들을 동시에 실행하며, 클럭 사이클동안 실행 유닛의 효율성을 극대화하고자
비순차 실행(Out-of-order) 수행을 사용하여 명령을 스케줄링한다.
출처 : IA-32 Intel Architecture Software Developer Manual Volume 1: Basic Architecture