CS공부/컴퓨터구조 / / 2025. 5. 23. 10:02

5-2. 명령어 병렬 처리

명령어를 동시에 처리하여 CPU를 한시도 쉬지 않고 작동시키는 기법

몀령어 파이프 라이닝, 슈퍼스칼라, 비순차적 명령어 처리가 있다.


명령어 파이프라인

동시에 여러 개의 명령어를 겹쳐 실행하는 기법

명령어 처리를 클럭 단위로 나누면

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

으로 나눌 수 있다(책마다 다를 수 있음)’

하나의 명령어가 인출 단계를 할 때 다른 명령어는 해석, 다른 명령어는 실행, 다른 명령어는 저장을 하여 효율적으로 명령어를 처리한다.

하지만, 특정 상황에서 실패하는 파이프라인 위험 상황이 있다.

대표적으로 데이터 위험, 제어 위험, 구조적 위험이 있다.

데이터 위험

명령어 간 ‘데이터 의존성’에 의해 발생

모든 명령어는 동시에 처리할 수 없다. 명령어1이 실행되고 그 결과를 바탕으로 명령어2를 실행해야 하는 경우 명령어 1과 2를 동시에 실행하려고 하면 파이프라인이 제대로 작동하지 않으며 이를 데이터 위험이라고 한다.

제어 위험

주로 분기 등으로 인한 프로그램 카운터의 갑작스러운 변화에 의해 발생

5번지의 명령어를 수행하며 6, 7번지도 동시에 실행을 하게 되는 상황에서 5번지의 명령어가 60번지로 프로그램 카운터가 변화하면 실행 중이던 6, 7번지 명령어는 필요가 없어지며 이를 제어 위험이라고 한다.

이를 위해 프로그램이 어디로 분기할지 미리 예측한 후 그 주소를 인출하는 분기 예측 기술을 사용한다.

구조적 위험(자원 위험)

명령어들을 겹쳐 실행하는 과정에서 서로 다른 명령어가 동시에 ALU, 레지스터 등과 같은 CPU 부품을 사용하려고 할 때 발생


슈퍼스칼라

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

슈퍼스칼라 구조가 가능한 CPU를 슈퍼스칼라 프로세서(CPU)라고 부른다.

파이프라인의 개수에 비례하여 프로그램이 처리 속도가 빨라지지만 파이프라인 위험 같은 문제들로 인해 개수에 비례하여 빨라지지는 않는다.


비순차적 명령어 처리(OoOE)

오늘날 CPU 성능 향상에 크게 기여한 기법이자 대부분의 CPU가 차용하는 기법.

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

다른 명령어의 간섭을 받지 않아 먼저 실행해도 무방한 명령어들을 먼저 실행하여 명령어 파이프라인이 멈추는 것을 방지한다.

'CS공부 > 컴퓨터구조' 카테고리의 다른 글

6-1. RAM의 종류  (0) 2025.05.27
5-3. CISC, RISC  (0) 2025.05.23
5-1. 클럭 코어 스레드  (0) 2025.05.23
4-3. 명령어 사이클과 인터럽트  (0) 2025.04.23
4-2. 레지스터  (0) 2025.04.23
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유