대표적인 명령어 병렬 처리기법으로
명령어 파이프라이닝, 슈퍼스칼라, 비순차적 명령어처리 가 있다
하나의 명령어를 처리하는 과정을 클럭 단위로 나누면
1. 명령어 인출
2. 명령어 해석
3. 명령어 실행
4. 결과 저장
같은 단계가 겹치지만 않는다면 CPU는 각 단계를 동시에 실행할 수 있다.
하지만 특정 상황에서 성능 향상에 실패하는 경우도 있다.
CPU 내부에 여러개의 명령어 파이프라인이 포함된 구조
매 쿨럭 주기마다 동시에 여러 명령을 인출/실행할 수 있다. (멀티스레드 프로세서 등)
프로그램은 위에서 아래로 차례대로 실행되지만, 어떤 명령어는 곧바로 처리되지 않을수도 있다.
이때 그 명령어가 모두 처리될때까지 기다려야 하므로 속도가 느려진다.
-> 바로 처리할 수 있는 명령어를 먼저 실행하여 속도 개선