Data Engineering/혼공컴운

혼자 공부하는 컴퓨터구조 + 운영체제 5장 정리

potatode 2025. 1. 20. 07:13

5장. CPU 성능 향상 기법

5.1 빠른 CPU를 위한 설계 기법

클럭

  • 컴퓨버 부품들은 ‘클럭 신호’에 맞춰 일사불란하게 움직임💡클럭 속도가 높아짐 → CPU는 명령어 사이클 빠르게 반복 → 다른 부품들도 맞춰 빠르게 작동
  • ⇒ 클럭 신호가 빠르게 반복되면 CPU를 비롯한 컴퓨터 부품들은 그만큼 빠른 박자에 맞춰 움직임
  • 클럭 속도가 높은 CPU는 일반적으로 성능 좋음
  • 클럭 속도는 헤르츠(Hz) 단위로 측정
    • 1초에 클럭이 몇번 반복되는지 나타냄
    ex) CPU 기본 속도가 2.5GHz = 1초에 클럭이 25억번 반복됨
  • 하지만 무작정 높인다면 발열 문제가 생김

코어와 멀티코어

  • CPU의 코어와 스레드 수를 늘리는 방법도 CPU의 성능을 높이는 방법
  • 코어 : 명령어를 실행하는 부품
  • ex) 8코어 = 명령어를 실행하는 부품이 8개 포함
  • 코어를 여러개 포함하고 있는 CPU : 멀티코어 CPU
    • 명령어 처리 일꾼이 여러명있는 것 ⇒ 단일코어보다 더 빠름!
  • CPU의 연산속도가 꼭 코어 수에 비례 증가하지는 않음
  • 중요한 것은 코어마다 처리할 명령어들을 얼마나 적절하게 분배하는지

스레드와 멀티스레드

  • 스레드 - 하드웨어적/소프트웨어적
  • 하드웨어적 스레드
    • 여러 스레드 지원 CPU는 하나의 코어로도 여러 명령어 실행 가능
    • ⇒ 멀티스레드 프로세서 : 하나의 코어로 여러 명령어 동시 처리
  • : 하나의 코어가 동시에 처리하는 명령어 단위
  • 소프트웨어적 스레드
  • : 하나의 프로그램에서 독립적으로 실행되는 단위
  • 멀티스레드 프로세서
    • 하나의 코어로 여러 명령어를 동시 처리하는 방법은 ?
    • ⇒ ‘레지스터’를 여러개 가지면 됨

 

5.2 명령어 병렬 처리 기법

  • 빠른 CPU를 위해선 멀티 지원 CPU를 만드는 것도 중요하지만, 놀지 않고 알뜰하게 작동하도록 만드는 것도 중요하다.
  • ⇒ 명령어 병렬 처리 기법

명령어 파이프라인

  • 명령어 처리 과정
    1. 명령어 인출
    2. 명령어 해석
    3. 명령어 실행
    4. 결과 저장
    ⇒ 같은 단계가 아니라면 각 단계를 동시에 실행 가능하다.
  • = 명령어 파이프라이닝
  • 파이프라인 위험
    • 데이터 위험
      • 명령어 간 데이터 의존성에 의해 발생
      • 어떤 명령어는 이전 명령어를 끝까지 실행해야만 실행 가능한 경우 존재
      • ⇒ 의존적인 명령어를 무작정 동시에 실행하는 경우
    • 제어 위험
      • 프로그램 카운터의 갑작스러운 변화에 의해 발생
      • 프로그램 실행 흐름이 바뀌는 경우
      • 분기 예측을 사용하기도 함
    • 구조적 위험
      • 명영어들을 겹쳐 실행하는 과정에서 서로 다른 명령어가 CPU 부품을 사용하는 경우

슈퍼스칼라

: CPU 내부에 여러개의 명령어 파이프라인을 포함한 구조

  • 슈퍼스칼라 구조로 명령어 처리가 가능한 CPU : 슈퍼스칼라 프로세서
    • 매 클럭 주기마다 동시에 여러 명령어 인출, 실행 필요
  • 파이프라인 위험을 방지하기 위해 고도 설계 필요

비순차적 명령어 처리

: 명령어들을 순차적으로 실행하지 않는 기법

  • 예상치 못한 문제들로 인해 바로 처리되지 못하는 경우
  • 순차적으로만 실행하지 않고 바꿔 실행해도 무방한 명령어를 먼저 실행하여 명령어 파이프라인을 멈추는 것을 방지하는 기법
  • ⇒ 가능한 명령어 판단 필요

 

 

5.3 CISC와 RISC

명령어 집합 (ISA)

: CPU가 이해할 수 있는 명령어들의 모음

  • 명령어의 세세한 생김새, 연산 등은 CPU마다 조금씩 차이가 있음 = ISA가 다를 수 있음
    • ISA가 다르면 CPU가 이해할 수 있는 명령어도 어셈블리어도 달라짐
      • 일종의 각 나라의 언어와 비슷한 느낌
  • ISA가 달라지면 사용되는 레지스터 종류, 명령어 해석 방식 등 많은 것이 달라짐

CISC

  • 복잡하고 다양한 명령어들을 활용하는 CPU 설계 방식⇒ 상대적으로 적은 수의 명령어로도 프로그램 실행 가능
  • ⇒ 명령어의 형태와 크기가 다양한 가변 길이 명령어를 활용함
  • 단점 : 복잡, 다양한 기능 제공으로 명령어의 크기와 실행되기까지 시간이 일정하지 않음
    • 명령어 파이프라인 구현에 큰 걸림돌
    • 복잡한 명령어는 보통 사용 빈도가 낮음 → 성장 한계

RISC

  • CISC보다 명령어 종류는 적지만, 짧고 규격화된 명령어 지향
  • ⇒ 고정 길이 명령어 활용
  • 메모리 접근을 최소화하는 대신 레지스터를 적극적으로 활용
  • 많은 명령으로 프로그램 작동 시킴
반응형