-
CS지식 (명령어 병렬처리 기법)CS지식 2025. 9. 3. 19:04
명령어 병렬처리 기법?
명령어 파이프 라인
- 명령어가 처리되는 과정을 비슷한 간격으로 나누면?
1. 명령어 인출
2. 명령어 해석
3. 명령어 실행
4. 결과 저장

- 같은 단계만 겹치지 않는다면 CPU는 "각 단계를 동시에 실행할 수 있다."
이를 명령어 파이프 라인 이라고 한다
👿 파이프 라인 위험 : 명령어 파이프라인이 성능 향상에 실패하는 경우
1. 데이터 위험
2, 제어 위험
3. 구조적 위험데이터 위험
- 명령어간 의존성 때문에 생기는 위험
- 모든 명령어는 동시에 처리할 수 없다 (이전 명령어를 끝까지 실행해야 비로소 실행이 될 떄가 있음)

- 위와 같은 명령어를 실행한다고 했을때 명령어1이 실행이 된 후 2가 실행이 되기 떄문이다.
제어 위험
- 프로그램 카운터의 갑작스러운 변화

구조 위험
- 서로 다른 명령어가 같은 CPU 부품을 쓰려고 할 때 발생
슈퍼 스칼라
- CPU 내부에 여러개의 명령어 파이프라인을 포함한 구조
(오늘날 멀티스레드 프로세서)

- 여러개의 컨베이어 벨프를 둔 느낌이다.
- 이론적으로는 파이프라인 개수에 비례하여 처리속도가 증가한다.
- But 파이프라인 위험도 증가로 인해 파이프라인 개수에 의해 증가하지는 않음
비순차적 명령어 처리
- 합법적인 새치기
- 파이프라인의 중단을 방지하기 위해 명령어를 순차적으로 처리하지 않은 명령어 처리 기법


- 만약 위처럼 3번째 작업을 할 때 1번째 2번째 작업을 필수로 해야할 떄 라면??? 이 때 성능에 문제가 생길 수 있는데 이를 방지하고자 명렁어의 순서를 바꿔버리는 것이다,