본문 바로가기
Computer Engineering

명령어 병렬 처리 기법

by KkingKkang 2024. 4. 3.

명령어 처리되는 과정

  1. 명령어 인출
  2. 명령어 해석
  3. 명령어 실행
  4. 결과 저장

 

명령어 파이프라인 - 같은 단계가 겹치지만 않는다면 CPU는 '각 단계를 동시에 실행할 수 있다'

 

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

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

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

 

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

프로그램 카운터가 갑작스럽게 어떤 특정 메모리 주소로 바뀌는 경우 

*분기 예측 : 프로그램 카운터가 어느 번지로 어디로 점프할 것인지 미리 예측하는 기술 

 

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

 

슈퍼스칼라 

- CPU 내부에 여러 개의 명령어 파이프라인을 포함한 구조 (오늘날의 멀티스레드 프로세서)

- 파이프라인 위험도의 증가로 인해 파이프라인 개수에 비례하여 처리 속도가 증가하진 않음.

 

비순차적 명령어 처리 (합법적 새치기)

- 의존성 없는 명령어들 간에 순서를 바꿔서 처리하는 방식 

반응형

댓글