5장 CPU 성능 향상 기법

2023. 3. 21. 23:37

05-1) 빠른 CPU를 위한 설계 기법

  • 클럭과 코어, 스레드라는 개념을 학습하고, 빠른 CPU를 만드는 설계 기법인 멀티 코어와 멀티 스레드 이해하기

  • 클럭
    • CPU는 명령어 사이클이라는 흐름에 맞춰 명령어를 실행함
    • 컴퓨터 부품은 클럭 신호에 맞춰 움직임
    • 클럭 신호가 빠르게 반복되면 명령어 사이클이 더 빠르게 반복될거임
    • 클럭속도가 높은 CPU가 성능이 좋다
    • 클럭 속도는 헤르츠(Hz)단위로 측정함
      • 1초에 클럭이 몇번 반복되는지 나타냄
      • 1초에 클럭이 100번 반복되면 클럭속도는 100Hz
    • 클럭 속도를 무지막하게 올리면 발열 문제 때문에 무조건적으로 성능이 좋아지는 건 아니다.
  • 코어와 멀티코어
    • 클럭 속도를 높이는 것 외에 CPU 성능을 높이는 방법은 코어와 스레드 수를 늘리는 것이다.
    • 명령어를 실행하는 부품 단위를 코어라고 함
      • 하나의 CPU에 여러 코어가 들어있는걸 멀티코어 CPU라 함 (= 멀티코어 프로세서)
    • 코어마다 처리할 명령어들을 얼마나 적절하게 분배하느냐에 따라 연산속도가 달라짐
  • 스레드와 멀티스레드
    • 스레드의 사전적 의미는 실행 흐름의 단위이다.
    • 하드웨어적 스레드 : CPU에서 사용
      • 하나의 코어가 동시에 처리하는 명령어 단위
      • 하나의 코어로 여러 명령어를 동시에 처리하는 CPU를 멀티스레드 프로세서, 멀티스레드 CPU라 함
    • 소프트웨어적 스레드 : 프로그램에서 사용
      • 하나의 프로그램에서 독립적으로 실행되는 단위를 의미함

05-2) 명령어 병렬 처리 기법 (ILP : Instruction-Level Parallelism)

  • 명령어를 동시에 처리하여 CPU를 한시도 쉬지 않고 작동시키는 기법
  • 종류
    • 명령어 파이프라이닝
    • 슈퍼스칼라
    • 비순차적 명령어 처리

  • 명령어 파이프라인
    • 명령어 처리과정은 다음과 같다
      • 명령어 인출(Instruction Fetch)
      • 명령어 해석(Instruction Decode)
      • 명령어 실행(Execute Instruction)
      • 결과 저장(Write back)
    • CPU는 각 단계를 동시에 실행할 수 있다.
    • 특정상황에서 성능 향상에 실패하는 경우도 있는데, 파이프라인 위험이라 함
      • 데이터 위험 : 데이터 의존성으로 발생
      • 제어 위험 : 프로그램 카운터의 갑작스러운 변화에 의해 발생
      • 구조적 위험 : 명령어들을 겹쳐 실행하는 과정에서 서로 다른 명령어가 동시에 ALU, 레지스터 등과 같은 CPU 부품을 사용하려고 할 때 발생 (= 자원 위험)
  • 슈퍼 스칼라 (superscalar)
    • 오늘날 대부분의 CPU에서는 여러 개의 파이프라인을 이용한다.
    • CPU 내부에 여러개의 명령어 파이프라인을 포함한 구조를 슈퍼 스칼라 라고 함
  • 비 순차적 명령어 처리(Out-of-Order execution : OoOE)
    • 명령어를 순차적으로 실행하지 않는 것을 의미
    • 명령어의 '합법적 새치기'
    • 파이프라인의 중단을 방지하기 위함임
    • 데이터 의존성을 확인해야할 필요가 있음

05-3) CISC와 RISC

  • 명령어 파이프라이닝과 슈퍼스칼라가 CPU에 적용되려면 명령어가 파이프라이닝에 최적화 되어있어야 함
    • CPU가 인출하고 해석하고 실행하는 명령어가 파이프라이닝 하기 쉽게 생겨야한다는 의미
  • CPU의 언어인 ISA와 이를 기반으로 설계된 것이 CISC와 RISC이다.

  • ISA(Instruction Set Architecture)
    • CPU가 이해할 수 있는 명령어들의 모음
  • CISC (Complex Instruction Instruction Set Computer)
    • 복잡한 명령어 집합을 활용하는 컴퓨터 (컴퓨터 = CPU)
    • 명령어의 형태와 크기가 다양한 가변 길이 명령어를 활용한다.
    • 다양하고 강력한 명령어를 사용한다는 것은 상대적으로 적은 수의 명령어로도 프로그램을 실행할 수 있다는 것을 의미
    • 메모리를 최대한 아끼며 개발해야 했던 시절에 인기가 많았음
    • 명령어 실행 주기가 달라서 파이프라인을 구성하기 어려운 단점이 있음
  • RISC (Reduced Instruction Set Computer)
    • CISC에 비해 명령어의 종류가 적고 짧고 규격화된 명령어, 되도록 1클럭 내외로 실행되는 명령어를 지향함
    • 고정길이 명령어를 활용함
    • 메모리 접근을 단순화, 최소화하는 대신 레지스터를 적극 활용함

' > 혼자 공부하는 컴퓨터 구조 + 운영체제' 카테고리의 다른 글

7장 보조기억장치  (0) 2023.03.23
6장 메모리와 캐시 메모리  (0) 2023.03.23
4장 CPU의 작동 원리  (0) 2023.03.21
3장 명령어  (0) 2023.03.20
2장 데이터  (0) 2023.03.20

+ Recent posts