명령어 수준 병렬성

명령어 수준 병렬성(Instruction-level parallelism, ILP)는 컴퓨터 프로그램에서 일련의 명령을 병렬 또는 동시 실행하는 것이다. 보다 구체적으로 ILP는 이 병렬 실행의 단계당 실행되는 평균 명령 수를 나타낸다.

 논의 
ILP는 병행성과 구별한다. ILP에는 프로세스 실행을 위한 단일 특정 스레드가 있다. 반면, 병행성에는 엄격한 교대로 여러 스레드를 CPU 코어에 할당하거나, CPU 코어가 충분한 경우(이상적으로는 실행 가능한 각 스레드에 하나의 코어가 있는 경우) 실제 병렬 처리가 포함된다.

명령어 수준 병렬성에는 하드웨어와 소프트웨어라는 두 가지 접근 방식이 있다.

하드웨어 수준은 동적 병렬 처리에 대해 작동하는 반면, 소프트웨어 수준은 정적 병렬 처리에 대해 작동한다. 동적 병렬 처리는 프로세서가 병렬로 실행할 명령을 런타임에 결정하는 것을 의미하고, 정적 병렬 처리는 컴파일러가 병렬로 실행할 명령을 결정한다는 것을 의미한다. 펜티엄 프로세서는 동적 병렬 실행 순서로 작동하지만 아이테니엄 프로세서는 정적 수준 병렬 처리에서 작동한다.

 각주 

 더 읽기 
  (276 pages)

 외부 링크 
 Approaches to addressing the Memory Wall
 Wired magazine article that refers to the above paper
 https://www.scribd.com/doc/33700101/Instruction-Level-Parallelism#scribd
 http://www.hpl.hp.com/techreports/92/HPL-92-132.pdf 

분류:명령어 처리
분류:병렬 컴퓨팅