• 카테고리

    질문 & 답변
  • 세부 분야

    기타 (개발 · 프로그래밍)

  • 해결 여부

    해결됨

코어와 하이퍼스레드 관계 질문

24.01.25 11:31 작성 조회수 204

0

안녕하세요.

 

코어와 하이퍼스레드간의 명령어 처리개수에 대해 궁금한점이 있어서 질문드립니다.

 

빠른 CPU를 위한 설계기법 챕터에서 하드웨어 스레드라고 설명주신 하이퍼스레드기술이 적용된 CPU는 4코어 8스레드의 경우, 8개의 명령어를 한 번에 처리할 수 있다고 말씀을 주셨습니다.

 

근데 제가 기존에 알고있던 하이퍼스레드의 경우 CPU내의 다양한 유닛들 (ALU, FPU 등) 중 잉여자원이 있을시 이를 끌어다가 대신 활용하는 방식으로 알고있습니다.

 

즉 경우에 따라서 자원이 남아있다면 사용할 것이고 부족하다면 사용하지 못할텐데 ( 설령 자원이 있더라도 유닛의 목적과 다른 기능을 한다면 정상적인 성능을 뽑아낼지도 의문이긴 합니다. ) 이를 8개의 명령어를 처리할 수 있다고 봐도될지 궁금합니다.

 

질문을 좀 정리하면

 

  1. 제가 이해한 방식이 하이퍼스레딩, 즉 하드웨어 스레드가 맞는걸까요 ?

  2. 하이퍼 스레드가 적용된 4코어 8스레드 CPU의 경우 8개의 명령어가 아닌 '최대' 8개의 명령어까지 처리할 수 있다고 보면될까요 ?

  3. 2번 항목에 의해 8개의 명령어를 처리할 수 있다고 했을때 8코어 8스레드와 동일한 수준으로 봐도 될지 궁금합니다.

 

답변 1

답변을 작성해보세요.

0

 

음.. 단순히 '잉여자원이 남아있을시 이를 끌어다가 대신 활용하는 방식'만으로 정의하기에는 다소 부족해보입니다.

왜냐하면 하이퍼스레딩 자체가 CPU의 설계 기술이기 때문입니다

그 대표 예시로써 레지스터 세트가 두 개 이상 있는 설계를 든 것이구요.

말씀하신대로 명령어를 처리할 기반 부품이 여러 개 있다면 잉여자원이 너 많이 남아 빠르게 많은 명령어를 처리할 수는 있을 것 같습니다.

 

첨언하자면 말씀하신 '잉여자원이 남아있을시 이를 끌어다가 대신 활용하는 방식'은

명령어 병렬처리 기법에 조금 더 가까워보입니다.

'자원이 남아있다면 사용할 것이고 부족하다면 사용하지 못할텐데' 이 부분은 추후 학습하실 파이프라이닝 위험과 유사해보이고요 🙂

 

감사합니다.

채널톡 아이콘