Notice
Recent Posts
Recent Comments
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Archives
Today
Total
관리 메뉴

SYDev

Chapter 05-2 : 명령어 병렬 처리 기법 본문

Computer Architecture + Operating System/Computer Architecture

Chapter 05-2 : 명령어 병렬 처리 기법

시데브 2023. 8. 4. 23:29
명령어를 빠르고 효율적으로 처리하는 대표적인 명령어 병렬 처리 기법명령어 파이프라이닝, 슈퍼 스칼라, 비순차적 명령어 처리에 대해 알아보자.

 

 

명령어 파이프라인

  • 명령어 파이프라이닝: 동시에 여러 개의 명령어를 겹쳐 실행하는 기법

https://www.robotstory.co.kr/raspberry/?vid=144

  • 단계가 겹치지만 않으면 명령어를 동시에 처리할 수 있다.

 

파이프라인 위험

데이터 위험

  • 데이터 위험(data harzard): 명령어 간 '데이터 의존성'에 의해 발생
명령어1: R2 레지스터와 R3 레지스터에 저장된 값을 더한 값을 레지스터 R1에 저장
명령어2: R1 레지스터와 R5 레지스터에 저장된 값을 더한 값을 레지스터 R4에 저장
-> 명령어2는 명령어1보다 먼저 실행될 수 없음

 

제어 위험

  • 제어 위험(control harzard): 분기 등으로 인한 '프로그램 카운터의 갑작스러운 변화'에 의해 발생
기본적으로 프로그램 카운터는 '현재 실행중인 명령어의 다음 주소'로 갱신 -> 프로그램 카운터의 변화로 명령어 주소가 바뀌면 실행중이던 파이프라인은 의미가 없어짐
  • 분기 예측(branch prediction): 프로그램이 어디로 분기할지 미리 예측한 후 그 주소를 인출하는 기술

 

https://www.robotstory.co.kr/raspberry/?vid=144

구조적 위험

  • 구조적 위험(structural harzard): 명령어들을 겹쳐 실행하는 과정에서 서로 다른 명령어가 동시에 ALU, 레지스터 등과 같은 CPU 부품을 사용하려고 할 때 발생. 자원 위험(resource harzard)라고도 부름

 

슈퍼 스칼라

  • 슈퍼 스칼라(superscalar): CPU 내부에 여러 개의 명령어 파이프라인을 포함한 구조

 

https://www.robotstory.co.kr/raspberry/?vid=144

 

  • 슈퍼스칼라 구조로 명령어 처리가 가능한 CPU를 슈퍼스칼라 프로세서 혹은 슈퍼스칼라 CPU라고 함

 

 

비순차적 명령어 처리

  • 비순차적 명령어 처리(OoOE; Out-of-Order execution): 파이프라인의 중단을 방지하기 위해 명령어를 순차적으로 처리하지 않는 기법
  • CPU가 데이터 의존성이 있는지, 순서를 바꿔 실행할 수 있는 명령어에는 어떤 것들이 있는지 판단하여 명령어의 순서를 바꿔서 처리

 

 


참고자료

 

컴퓨터의 구조: 명령어 파이프라인

1. 명령어 파이프라인(Instruction Pipeline)명령어 파이프라인(Instruction Pipeline)은 CPU의 성능을 향상시키기 위해 명령어 처리를 여러 단계로 나누어 동시에 실행하는 명령어 병렬 처리 기법입니다.CPU

www.robotstory.co.kr