책너두 (컴퓨터 밑바닥의 비밀) 28일차 CPU 진화론(하): 절체절명의 위기에서 반격

  • 프로그래머는 모두 인터페이스 개념을 알고 있음.
  • CPU 에 있어 인터페이스란?
    • 명령어 집합을 의미함.
    • 인터페이스에 해당하는 명령어 집합은 변경할 수 없지만 CPU 내부 구현, 즉 명령어 실행 방식은 변경이 가능함.
    • 이를 이해한 천재적인 엔지니어는 마이크로 명령어 개념을 제시함.

 

  • 이길 수 없다면 함께하라: RISC와 동일한 CISC
  • 축소 명령어 집합의 주요 장점은 파이프라인 기술을 잘 활용할 수 있다는 것이었음.
    • 반면 복잡 명령어 집합은 명령어 실행 시간이 고르지 않아 파이프라인을 활용할 수 없었음.
  • 간단히 생각하면 복잡 명령어 집합이 축소 명령어 집합에 가깝게 변하면 문제가 해결됨.
    • 바로, 복잡 명령어 집합의 명령어를 CPU 내부에서 축소 명령어 집합의 간단한 명령어로 변환하는 것임.
    • 축소 명령어 집합의 간단한 명령어와 유사한 명령어들을 마이크로 명령어(micro-operation)라고 함.
      • 축소 명령어 집합 명령어와 마찬가지로 마이크로 명령어도 매우 간단하며 실행 시간도 거의 같음. → 파이프라인 기술을 충분히 활용할 수 있음.
      • 복잡 명령어 집합의 호환성을 유지하면서 동시에 축소 명령어 집합의 장점을 얻을 수 있음.

 

  • 하이퍼스레딩이라는 필살기
  • 복잡 명령어 집합 진영에서 또 다른 기술이 추가 개발됨.
    • 하이퍼스레딩(hyper-threading) → 하드웨어 스레드(hardware thread)라고도 함.
  • 지금까지는 CPU가 한 번에 한 가지 일만 할 수 있다고 간주할 수 있었음.
    • 즉, CPU가 한 번에 하나의 스레드에 속한 기계 명령어만 실행할 수 있다고 알고 있었음.
    • 시스템에 N개의 CPU 코어가 있으면 운영 체제는 N개의 준비 완료 상태인 스레드를 N개의 CPU 코어에 할당해서 동시에 실행할 수 있음.
  • 하이퍼스레딩을 사용하면 하나의 물리 CPU 코어는 운영 체제에 환각을 심어주게 됨.
    • CPU 코어가 하나만 있지만 운영 체제는 논리적으로 CPU 코어가 여러 개 있는 것으로 인식함.
    • 즉, CPU 코어가 실제로 동시에 스레드 두 개를 실행할 수 있음.
  • 하이퍼스레딩 기술이 가능하게 하려면 파이프라인 기술로 다시 돌아가야 함.
    • 명령어 간 종속성으로 파이프라인이 항상 완벽하게 채워진 상태에서 실행될 수 없음.
    • 결국 ‘빈 공간’이 생김
    • 이때, 추가 명령어 흐름을 도입하여 빈 공간을 채우면 전체 파이프라인을 채워서 실행할 수 있음 → CPU 리소스 최대한 활용 가능.

댓글

Designed by JB FACTORY