MSI 프로토콜

MSI 프로토콜(MSI protocol)은 멀티프로세서 시스템에서 사용되는 기초적인 캐시 일관성 프로토콜이다. MSI 프로토콜은 메모리가 가질 수 있는 세 가지의 캐시 상태를 정의하며, MSI라는 이름은 캐시 상태의 이니셜에서 따온 것이다. MSI에서 메모리 블록이 가지는 상태는 다음과 같다.

 Modified: 블록이 캐시에서 수정된 상태이다. 메모리는 수정되지 않았으며 캐시만 수정되었기 때문에 캐시와 메모리는 다른 데이터를 가지고 있다. 이러한 캐시 블록을 캐시에서 내보낼 때(evict) 메모리에 그 변경된 내용을 반영해야 한다.
 Shared: 블록이 캐시로 공유된 상태이다. 캐시와 메모리의 상태가 동일하기 때문에 해당 블록을 캐시에서 내보낼 때 메모리에 쓰기 작업을 할 필요가 없다.
 Invalid: 블록이 유효하지 않은 상태이다. 해당 블록의 내용을 캐시로 올리기 위해서는 메모리나 다른 캐시에서 갱신된 내용을 확인할 필요가 있다.

프로그램이 M 상태나 S 상태에 있는 블록을 읽으려고 하는 경우에는 별다른 조치 없이 캐시에서 읽을 수 있다. 만약 I 상태의 메모리 블록을 읽으려고 하는 경우에는 다른 캐시에서 그 메모리를 M 상태로 가지고 있는지를 확인하며, 그에 따른 갱신 작업이 추가적으로 이루어진다.

     M    S    I   M             S             I           

 유사한 프로토콜 
MSI 프로토콜에 다른 상태를 가지는 확장 프로토콜이 여럿 존재한다. 대표적으로 "Exclusive" 상태를 추가한 MESI 프로토콜과 "Owned" 상태를 가지는 MOSI 프로토콜 그리고 이 두 상태를 모두 추가한 MOESI 프로토콜이 있다.

 같이 보기 
 캐시 일관성
 MESI 프로토콜
 MOSI 프로토콜
 MOESI 프로토콜

 각주 

분류:캐시 일관성