묻공러
5-2] CPU의 성능 향상 기법: 명령어 병렬 처리 기법
묻공러
묻지마공부
묻공러
전체
오늘
어제
  • 분류 전체보기 (530) N
    • C (54)
      • [코드조선] C 핵심 (35)
      • [언어본색] C 기초 (19)
    • C++ (72)
      • [루키스] C++ (9)
      • [루키스] 콜백함수 (6)
      • [루키스] STL (8)
      • [루키스] Modern C++ (11)
      • [노코프] C++ (10)
      • [노코프] Tips (16)
      • [일지] C++ (12)
    • C# (20)
      • [루키스] C# (9)
      • [루키스] 자료구조 (3)
      • [루키스] 실전 문법 (8)
    • 자료구조 & 알고리즘 (50)
      • [코드조선] C 자료구조 & 알고리즘 (6)
      • [합격자되기] C++ 코딩테스트 (12)
      • [루키스] C++ 자료구조 & 알고리즘 (32)
    • CS (69)
      • [널널한 개발자] CS 개론 (19)
      • [혼자 공부하는] 컴퓨터 구조 (16)
      • [혼자 공부하는] 운영체제 (18)
      • [널널한 개발자] 네트워크 (16)
    • 게임 그래픽스 (46)
      • [전북대] OpenGL (25)
      • [일지] DirectX (21)
    • 게임 엔진 - 언리얼 (123)
      • [코드조선] 언리얼 (53)
      • [코드조선] 언리얼 데디서버 (8)
      • [일지] 언리얼 (59)
      • [일지] 언리얼 (2) (3)
    • 게임 엔진 - 유니티 (23) N
      • [최적화] 유니티 (4)
      • [루키스] 유니티 (19) N
    • 게임 서버 (17)
    • 게임 수학 & 물리 (19)
      • 게임 수학 (12)
      • 게임 물리 (7)
    • GIT & GITHUB (4)
    • 영어 (18)
      • [The Outfit] 대본 공부 (11)
      • the others (7)
    • 그 외 (14)
      • In (5)
      • Out (5)
      • Review (4)

인기 글

최근 글

hELLO · Designed By 정상우.
CS/[혼자 공부하는] 컴퓨터 구조

5-2] CPU의 성능 향상 기법: 명령어 병렬 처리 기법

2023. 3. 31. 10:25

1] 명령어 파이프라인

일반적으로 명령어가 처리되는 단계는

1. 명령어 인출(Instruction Fetch)

2. 명령어 해석(Instruction Decode)

3. 명령어 실행(Execute Instruction)

4. 결과 저장(Write Back)

으로 볼 수 있는데,

 

같은 단계가 겹치지만 않는 다면 CPU는 각 단계를 동시에 실행할 수 있고

동시에 여러 개의 명령어를 겹쳐 실행하는 기법을 명령어 파이프라인이라고 한다

 

2] 파이프라인 위험

명령어 파이프라인이 성능 향상에 실패하는 경우를 파이프라인 위험이라고 한다

그 종류로는 데이터 위험, 제어 위험, 구조적 위험이 있다

 

(1) 데이터 위험: 명령어 간의 의존성에 의해 야기

모든 명령어를 동시에 처리할 수 없는 경우(이전 명령어를 끝까지 실행해야만 비로소 실행할 수 있는 경우)에 발생한다

 

(2) 제어 위험: 프로그램 카운터의 갑작스러운 변화

명령어들은 순차적으로 진행이 되는데 프로그램 카운터가 변화하면, 기존 프로그램 카운터에 따라 순차적으로 명령어를 실행한 만큼 낭비가 발생

이를 방지하기 위해, 프로그램 카운터를 미리 예측하는 기술을 분기 예측(branch prediction)이라 부른다

 

(3) 구조 위험: 서로 다른 명령어가 같은 CPU 부품(ALU, 레지스터)을 쓰려고 할 때

 

3] 슈퍼스칼라

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

이론적으로는 파이프라인 개수에 비례하여 처리 속도가 증가하지만

파이프라인 위험도가 파이프라인 개수에 비례하여 증가하기 때문에,

파이프라인 개수에 비례하여 처리 속도가 무조건 증가하진 않음

 

4] 비순차적 명령어 처리

파이프라인의 중단을 방지하기 위해 명령어를 순차적으로 처리하지 않는 명령어 병렬 처리 기법이다

의존성이 없고 전체 프로그램 실행 흐름에 영향이 없는 명령어들 간의 순서를 적절하게 변경하는 것이다

저작자표시 비영리 변경금지 (새창열림)

'CS > [혼자 공부하는] 컴퓨터 구조' 카테고리의 다른 글

6-1] 메모리와 캐시 메모리: RAM의 특징과 종류  (1) 2023.05.30
5-3] CPU의 성능 향상 기법: 명령어 집합 (CISC와 RISC)  (0) 2023.03.31
5-1] CPU의 성능 향상 기법: 코어와 스레드  (0) 2023.03.31
4-3] CPU의 작동원리: 명령어 사이클과 인터럽트  (1) 2023.03.31
4-2] CPU의 작동원리: 레지스터  (0) 2023.03.31
'CS/[혼자 공부하는] 컴퓨터 구조' 카테고리의 다른 글
  • 6-1] 메모리와 캐시 메모리: RAM의 특징과 종류
  • 5-3] CPU의 성능 향상 기법: 명령어 집합 (CISC와 RISC)
  • 5-1] CPU의 성능 향상 기법: 코어와 스레드
  • 4-3] CPU의 작동원리: 명령어 사이클과 인터럽트
묻공러
묻공러
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.