[CS] 5. CPU 성능 향상 기법

eunoia73·2025년 4월 2일
1

TIL

목록 보기
22/32

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

1) 클럭 - 클럭 속도가 높은 CPU는 빠르게 동작하지만, 무작정 높이면 발열 문제가 심하다

2) 코어 - CPU 내에서 명령어를 실행하는 부품. 코어마다 처리할 명령어를 얼마나 적절하게 분배하느냐에 따라서 연산속도가 달라진다.

  • 멀티코어 프로세서 - 명령어를 실행할 수 있는 하드웨어 부품이 CPU안에 두 개 이상 있는 CPU

3) 스레드 - 실행 흐름의 단위. 명령어를 실행하는 단위
하드웨어적 스레드 - 하나의 코어가 동시에 처리하는 명령어 단위
멀티 스레드 프로세서 - 여러 개의 하드웨어적 스레드를 지원하는 CPU
소프트웨어적 스레드 - 하나의 프로그램에서 독립적으로 실행되는 단위

2. 명령어 병렬 처리 기법

1. 명령어 파이프라이닝

[명령어 인출 → 해석 → 실행 → 결과 저장] 같은 단계가 겹치치만 않으면 동시에 실행할 수 있는데, 이렇게 동시에 여러 명령어를 겹쳐서 실행하는 기법

** 파이프라인 위험
1) 데이터 위험 - 데이터 의존적인 두 명령어를 동시에 실행하려고 할 때 파이프라인이 작동하지 않는 것
2) 제어 위험 - 분기 등으로 인한 프로그램 카운터의 갑작스러운 변화에 의해 발생
3) 구조적 위험 - 명령어를 겹쳐 실행하는 과정에서 서로 다른 명령어가 동시에 ALU, 레지스터 등 CPU 부품을 사용하려고 할 때 발생

2. 슈퍼스칼라

CPU 내부에 여러 개의 명령어 파이프라인을 포함한 구조
공장 생산 라인 여러 개를 두는 것과 같음

3. 비순차적 명령어 처리

의존성이 없는, 순서를 바꿔 실행해도 무방한 명령어를 먼저 실행하여 명령어 파이프라인이 멈추는 것을 방지하는 기법

3. CISC와 RISC

ISA(Instruction Set Architecture) - 명령어 집합 구조. CPU의 언어이자 하드웨어가 소프트웨어를 어떻게 이해할지에 대한 약속

1. CISC (Complex Instruction Set Computer)

  • ex. x86, x86-64
  • 가변 길이 명령어 사용
  • 상대적으로 적은 수의 명령어로 프로그램 실행가능 → 메모리 절약 가능
  • 명령어의 규격화가 어려워 파이프라이닝이 어려움

2. RISC (Reduced Instruction Set Computer)

  • 단순하고 적은 수의 고정 길이 명령어 사용
  • 자주 쓰이는 기본적인 명령어를 작고 빠르게 만듦
  • 1클럭 내외로 명령어 수행 → 파이프라이닝 쉬움

[혼자 공부하는 컴퓨터구조 + 운영체제] 책을 읽고 정리한 기록입니다.

0개의 댓글