메모리 수준 병렬성

메모리 수준 병렬성(Memory-level parallelism, MLP)은 컴퓨터 구조에서 여러 메모리 작업, 특히 캐시 미스 또는 변환 색인 버퍼(TLB) 미스를 동시에 처리하는 능력이다.

단일 프로세서에서 MLP는 명령어 수준 병렬성(ILP)의 한 형태로 간주될 수 있다. 그러나 ILP는 종종 동시에 둘 이상의 명령을 실행하는 능력인 슈퍼스칼라와 혼동된다. 예를 들어, 인텔 펜티엄 프로와 같은 프로세서는 5방향 슈퍼스칼라 프로세서로, 주어진 사이클에서 5개의 다른 마이크로명령어를 실행할 수 있지만, 언제든지 최대 20개의 다른 로드 마이크로명령어에 대해 4개의 다른 캐시 미스를 처리할 수 있다.

슈퍼스칼라가 아니면서도 높은 MLP를 갖는 기계를 가질 수 있다.

명백히 ILP가 없고 슈퍼스칼라가 아니며 비파이프라인 방식으로 한 번에 하나의 명령을 실행하지만 하드웨어 프리페칭(소프트웨어 명령 수준 프리페칭이 아님)을 수행하는 기계는 MLP(여러 프리페치 미결로 인해)를 나타내지만 ILP는 나타내지 않는다. 이는 여러 메모리 작업이 미결 상태이지만 명령은 아니기 때문이다. 명령은 종종 작업과 혼동된다.

또한, 멀티프로세서 및 멀티스레드 컴퓨터 시스템은 병렬성으로 인해 MLP 및 ILP를 나타낸다고 할 수 있지만, 스레드 내, 단일 프로세스, ILP 및 MLP는 나타내지 않는다. 그러나 종종 MLP 및 ILP라는 용어는 비병렬 단일 스레드 코드처럼 보이는 것에서 이러한 병렬성을 추출하는 것을 의미하도록 제한한다.

 같이 보기 
 메모리 이의 해소
 메모리 의존성 예측
 하드웨어 스카우트
 Runahead

 각주 

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