[혼공컴운] ch 5. CPU 성능 향상 기법

제트·2024년 7월 13일
0

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

1. 클럭

  • 클럭 속도 : 1초에 클럭이 몇 번 반복되는가
  • 클럭 속도만으로 CPU 성능을 올리는 것에는 한계가 있음
  • CPU 성능을 올리는 다른 방법 : 코어와 스레드 수를 늘리는 방법

2. 코어와 멀티코어

1) 코어 : 명령어를 실행하는 부품

  • 멀티코어 CPU, 멀티코어 프로세서 : 코어를 여러 개 포함하는 CPU

3. 스레드와 멀티스레드

  • 스레드 : 실행 흐름의 단위
  • 종류 : 하드웨어적 스레드, 소프트웨어적 스레드

(1) 하드웨어적 스레드

  • 논리 프로세서라고 칭하기도 함
  • 하나의 코어가 동시에 처리되는 명령어 단위
  • 하나의 코어로 여러 명렁어 동시 처리하는 CPU : 멀티스레드 프로세서, 멀티스레드 CPU
  • 하이퍼스레딩 : 인텔의 멀티스레드 기술

(2) 소프트웨어적 스레드

  • 하나의 프로그램에서 독립적으로 실행되는 단위

{용어 정리}

  • 코어 : 명령어를 실행하는 하드웨어 부품
  • 스레드 : 명령어를 실행하는 단위
  • 멀티코어 프로세서 : 명령어를 실행할 수 있는 하드웨어 부품이 CPU 안에 두 개 이상 있는 CPU
  • 멀티스레드 프로세서 : 하나의 코어로 여러 개의 명령어를 동시에 실행할 수 있는 CPU

/

5-2. 명령어 병렬 처리 기법(ILP, Instruction-Level Parallelism)

1. 명령어 파이프라인(instruction pipeline)

  • 명령어 처리 과정 클럭 단위 분할 : 인출 - 해석 - 실행 - 저장
  • 여러 개의 명령어를 겹쳐 동시에 실행하는 기법
  • 파이프라인 위험 : 데이터 위험, 제어 위험, 구조적 위험
    • 데이터 위험(data hazard) : 명령어 간 데이터 의존성에 의해 발생
    • 제어 위험(control hazard) : 분기 등으로 인한 프로그램 카운터의 갑작스러운 변화에 의해 발생(분기 예측(branch prediction) 기술 사용 : 프로그램이 어디로 분기할지 미리 예측 후 그 주소로 인출)
    • 구조적 위험(structural hazard) : 명령어를 겹쳐 실행하는 과정에서 서로 다른 명령어가 동시에 CPU 부품을 사용하려 할 때 발생

2. 슈퍼스칼라(super scalar)

  • CPU 내부에 여러 개의 명령어 파이프라인을 포함한 구조
  • 슈퍼스칼라 프로세서(슈퍼스칼라 CPU) : 슈퍼스칼라 구조로 명령어 처리가 가능한 CPU

3. 비순차적 명령어 처리(Out-of-order execution)

  • 명령어 순차적으로 실행하지 않음
  • 순서를 바꿔 실행해도 무방한 명령어를 먼저 실행해 명령어 파이프라인이 멈추는 것을 방지하는 기법

/

5-3. CISC와 RISC

1. 명령어 집합

  • CPU가 이해할 수 있는 명령어의 모음
  • ISA(Instruction Set Architecture) : 명령어 집합, 명령어 집합 구조. CPU마다 ISA가 다를 수 있고, ISA가 다르면 CPU가 이해할 수 있는 명령어, 어셈블리어도 달라짐

2. CISC(Complex Instruction Set Computer)

  • 복잡한 명령어 집합을 활용하는 컴퓨터(CPU)
  • 가변 길이 명령어(명령어의 형태, 크기가 다양) 사용
  • 다양하고 강력한 기능의 명령어 집합을 활용해 상대적으로도 적은 수의 명령어로도 프로그램 실행 가능
  • 복잡한 명령어에 여러 클럭 주기를 필요로 하고, 시간이 일정하지 않다는 문제 발생

3. RISC(Reduced Instruction Set Computer)

  • CISC에 비해 명령어 조유가 적고, 1클럭 내외로 실행되는 명령어, 짧고 규격화된 명령어 지향(고정 길이 명령어 사용)
  • 직접 접근하는 명령어를 load, store 두 개로 제한.(RISC를 load-store 구조라고도 함)

{CISC vs. RISC}
(1) CISC

  • 복잡하고 다양한 명령어
  • 가변 길이 명령어
  • 다양한 주소 지정 방식
  • 프로그램을 이루는 명령어 수 적음
  • 여러 클럭에 걸쳐 명령어 수행
  • 파이프라이닝 어려움

(2) RISC

  • 단순하고 적은 명령어
  • 고정 길이 명령어
  • 적은 주소 지정 방식
  • 프로그램 이루는 명령어 수 많음
  • 1클럭 내외로 명령어 수행
  • 파이프라이닝 쉬움

2주차 과제
Q. 다음 그림은 멀티코어 CPU를 간략하게 도식화한 그림이다. 빈칸에 알맞은 용어를 써넣으라.
A. 코어

추가 과제
해당 페이지 내에 수행

profile
소프트웨어학부 2학년

0개의 댓글