CS지식/컴퓨터구조

컴퓨터 구조 Ch.5 CPU 성능 향상 기법

뮤츠 2023. 1. 13. 23:20

5-1. 빠른 CPU를 위한 설계 기법

  • 클럭 속도 단위 : Hz(헤르츠), 1초에 클럭이 반복되는 횟수
  • 코어 : 명령어를 실행하는 부품(의 구성단위)
  • 스레드 : 실행 흐름의 단위
    • 하드웨어적 스레드(논리 프로세서) : 하나의 코어가 동시에 처리하는 명령어 단위
    • 소프트웨어적 스레드 : 하나의 프로그램에서 독립적으로 실행되는 단위

5-2. 명령어 병렬 처리 기법

  • 명령어 파이프 라이닝
    • 명령어 처리 과정은 명령어 인출-명령어 해석-명령어 실행-결과 저장의 과정을 거침.
    • CPU는 각 과정이 겹치지 않는다면 동시에 실행 가능.
    • 공장 생산 라인처럼 명령어들을 명령어 파이프라인에 넣고, 동시에 처리하는 기법.

  • 파이프라인 위험
    • 데이터 위험 : 명령어간 데이터 의존성에 의해 발생, 데이터 의존관계에 있는 두 명령어를 동시에 실행하려는 경우.
    • 제어 위험 : 분기 등으로 인한 프로그램 카운터의 갑작스러운 변화에 의해 발생. (분기예측으로 커버)
    • 구조적 위험(자원 위험) : 명령어들을 겹쳐 실행하는 과정에서 서로 다른 명령어가 동시에 ALU, 레지스터 등과 같은 CPU 부품을 사용하려 할 때 발생.

  • 슈퍼스칼라 : CPU 내부에 여러 개의 명령어 파이프라인을 포함한 구조
  • 비순차적 명령어 처리 (OoOE : Out of Order Execution)
    • 의존관계에 놓이지 않아 순서를 바꿔 실행해도 무방한 명령어를 먼저 실행하여 명령어 파이프라인이 멈추는 것을 방지하는 기법.

5-3. CISC와 RISC

  • 명령어 집합 구조 (ISA) : CPU가 이해할 수 있는 명령어들의 모음
  • CISC (Complex Instruction Set Computer - 복잡한 명령어 집합을 활용하는 컴퓨터)
    • 다양하고 강력한 기능의 명령어 집합을 활용, 가변 길이 명령어 활용.
    • 코드 수가 짧다 = 프로그램 크기가 작다 = 용량이 적다.
    • 활용하는 명령어가 복잡하여 명령어의 크기와 실행까지의 시간이 일정치않다. → 파이프라이닝 최적화 문제.
    • 대다수의 복잡한 명령어의 사용 빈도가 낮음. 20%의 명령어가 전체 사용량의 80%를 차지.

  • RISC (Redued Instruction Set Computer - 감소한 명령어 집합을 활용하는 컴퓨터)
    • 고정 길이 명령어, 하나의 명령어가 1클럭 내외로 실행.
    • 메모리에 직접 접근하는 명령어를 load, store로 제한할 만큼 메모리 접근을 단순화, 최소화. 대신 레지스터 활용에 적극적.
    • 코드량이 많다. (용량 및 메모리 사용량 증가)

참고 : 혼자 공부하는 컴퓨터구조 + 운영체제 (강민철 저)