CS

CS) 병렬처리(명령어 파이프라이닝)

zzugest1 2026. 1. 14. 00:23

 

병렬처리란 하나의 큰 문제를 여러 개의 작은 작업으로 나누어, 여러 개의 프로세서를 동시에 처리하여 전체 작업 속도를 향상시키는 기술이다.

 

컴퓨터의 핵심역할을 하는CPU도 이전에는 병렬처리 방식을 하지 않았지만, 이를 보완하기 위해 명령어 파이프라이닝을 적용했다.

 

명령어 파이프라이닝이란

 - CPU의 프로그램 처리 속도를 높이기 위해 처리 과정을 여러 단계로 나누어 동시에 처리하는 기술이다.

 

 

 

CPU는 명령어가 들어오면 아래와 같은 단계를 실행한다.

 

1. Fetch(인출) : 메모리에서 명령어를 가져온다.

2. Decode(해석) : 가져온 명령어가 무슨 뜻인지 해석한다.

3. Excute(실행) : 해석한대로 연산을 하거나 데이터를 이동시킨다.

4. Writeback(기록) 결과를 다시 레지스터나 메모리에 저장한다.

 

만약 명령어 하나가 들어온 다음 인출 ~ 기록 단계까지 모두 끝난 뒤에, 다음 명령어를 받고 인출 ~기록 단계를 실행하면 매우 비효율적일 것이다.

  1 2 3 4 5 6 7 8
명령어 1 인출 해석 실행 기록        
명령어 2         인출 해석 실행 기록

 

 

 

 

 

명령어 파이프라인이 적용된다면

 

첫 번째 명령어가 CPU에 들어와 인출 -> 해석 단계로 넘어가자마자, 비어있는 인출 단계에 두번째 명령어를 가져오는 것이다.

공장의 자동화와 비슷한 느낌으로 볼 수 있다. 이렇게 파이프라이닝을 적용하면 CPU의 처리속도가 비약적으로 상승한다.

  1 2 3 4 5 6 7 8
명령어 1 인출 해석 실행 기록        
명령어 2   인출 해석 실행 기록      
명령어3     인출 해석 실행 기록    

 

.

.

.

 

이러한 파이프라인 과정이 가끔 멈추는 상황이 생기는데 이를 해저드(Hazard)하고 부른다.

 

  • 구조적 해저드 : 두 명령어가 동시에 같은 메모리를 사용하려고 할 때 발생
  • 데이터 해저드 : 다음 명령어가 앞선 명령어의 계산 결과가 나와야만 실행될 수 있을 때 발생
  • 제어 해저드 : 명령어의 순서를 변경하는 if같은 조건문을 만났을 때 발생

 

이 중 제어 해저드 문제를 해결하기 위해 CPU는 '분기 예측'이라는 기술을 사용한다.

 

분기 예측이란 CPU가 프로그램 실행 중 조건 분기문의 결과가 나오기 전에 다음 실행될 명령어를 미리 추측하여 가져오는 기술이다.

 

분기 예측의 성공률이 높을수록 CPU 성능이 향상되지만, 예측 실패시 파이프라인이 멈추고 성능 저하가 발생하여 코드(분기문) 최적화가 중요하다.

'CS' 카테고리의 다른 글

CS) 고급 언어, 저급 언어, 기계어  (1) 2026.01.14
CS) 컴파일(Compile)과 빌드(Build)  (0) 2026.01.14
CS) CISC와 RISC  (0) 2026.01.13
CS) CPU(중앙처리장치)  (0) 2026.01.13
CS) 폰노이만 구조  (0) 2026.01.13