Post

Chapter.05 - CPU 성능 향상 기법

모든 이미지의 저작권은 [혼자 공부하는 컴퓨터 구조 + 운영체제] 도서의 저자 강민철님에게 있습니다.

클럭

클럭이 높으면 명령어가 더 빨리 실행되어 속도가 빨라지지만 발열이 심해진다.

코어와 멀티코어

* 코어

  • 명령어를 실행하는 부품
  • ALU + 제어장치 + 레지스터 세트 : 1코어

* 멀티코어 프로세서

  • 코어를 여러개 포함하고 있는 CPU

코어보다는 코어마다 처리할 명령어를 적절하게 효율적으로 분배하는 것이 중요하다

스레드와 멀티스레드

* 하드웨어적 스레드 (논리 프로세서)

  • 하나의 코어가 동시에 처리하는 명령어 단위

* 소프트웨어적 스레드

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

* 멀티스레드 프로세서

  • 하나의 코어로 여러 명령어를 동시에 처리하는 CPU
  • ALU + 제어장치 + (레지스터 세트 * 2) : 1코어 2스레드

명령어 병렬 처리 기법

* 명령어 파이프라이닝

  • 여러 개의 명령어를 한 줄 씩 겹쳐 실행하는 기법

* 슈퍼스칼라

  • 여러 개의 명령어 파이프라인을 두는 기법
  • 파이프라인 위험을 피하기 까다롭기 때문에 고도로 설계되어야 한다는 단점이 있다.

* 비순차적 명령어 처리

  • 순서를 바꿔 실행해도 무방한 명령어를 먼저 실행하여 파이프라인 위험을 피해 명령어를 실행하는 기법
파이프라인 위험
  1. 데이터 위험 : 각 명령어의 데이터 간 의존에 의한 위험
  2. 제어 위험 : 갑작스런 주소 이동과 같은 변화에 의한 위험
  3. 구조적 위험 : 서로 다른 명령어가 같은 CPU 부품에 동시 접근으로 인한 위험

CISC & RISC

명령어 파이프라이닝과 슈퍼스칼라 기법을 실제로 CPU에 적용하기 위해서는 명령어가 파이프라이닝에 최적화되어 있어야 한다.

* 명령어 집합 구조 (ISA)

  • CPU 가 이해할 수 있는 명령어들의 모음
  • CPU 마다 ISA 가 다를 수 있으며 ISA 가 다르면 CPU 는 명령어를 해석할 수 없다.
  • ISA 는 일종의 CPU 의 언어 같은 셈

* CISC vs RISC

CISC vs RISC.png

This post is licensed under CC BY 4.0 by the author.