개요
명령어 수준 병렬 처리는 컴퓨터 프로그램에서 동시에 실행할 수있는 명령어 수를 측정 한 것이다. ILP는 하나의 스레드에서 명령어를 동시에 처리한는 것을 말한다.
종류
- Pipelining: CPU의 작동은 fetch->decode->execute->memory->write와 같은 여러 단계를 거친다. 그러나 중요한 것은 각각의 단계가 일어나는 동안 다른 단계가 쉬고 있다는 것이다. 따라서 파이프라이닝을 이용하여 이러한 단계를 동시에 실행함으로써, 명령어를 동시에 실행하는 기술을 말한다.
- Superscalar: 하나의 명령어를 통해서 여러개의 명령어가 처리하는 기능을 수행하는 것이다.
- Out-of-order: 프로그램의 일관성을 해치지 않는 한도에서 명령어의 순서를 바꾸어서 처리 속도의 향상을 기대하는 것이다. 예를 들어서 write명령어가 실행되고 있고 이와 무관한 메모리 cpoy명령어가 그 뒤에 있다면, 메모리 copy명령어를 미리 처리하고 write명령을 주는 것을 들 수 있다.