CMP vs. SMP

Architecture 2009. 5. 26. 18:35
멀티 코어 이전의 멀티프로세서(multi-processor) 시스템의 구조는 여러 프로세서들이 큰 메모리 용량을 버스를 통해 서 공유하는 방식이었다. 각 프로세서마다 독립적인 캐시가 있다. 이러한 시스템을 SMP(Shared 또는 Symmetric Multiprocessor)라고 부른다. 

메모리가 여러 프로세서 간에 공유되어 있으므로, SMP에서 처리되어야 할 부분은 메모리 데이터의 일관성 유지와 프로 세스 간의 동기성(synchronization)이다. 같은 메모리의 데이터가 둘이나 그 이상의 프로세서 안의 캐시에 동시에 저 장되어 있을 경우, 한 프로세서에서 캐시의 데이터를 바꾸면 그 새로운 데이터가 다른 프로세서의 캐시에도 반영되어 같은 메모리의 데이터가 일관성 있게 유지된다. 잘 알려진 방식으로는 한 캐시에서 데이터가 바뀌는 것을 버스에 알려 서 다른 프로세서들이 같은 데이터를 캐시에 갖고 있는 경우 같이 데이터를 바꾸는 스누피 프로토콜이 있다. 

또한 둘이나 그 이상의 프로세서가 동시에 같은 메모리 데이터를 바꾸려고 하면 한 프로세서가 바꾼 데이터를 다른 프 로세서에 의해 잃어버릴 가능성이 발생한다. 이 프로세스 간의 동기성은 주로 메모리를 록킹하고 다른 프로세스가 같 은 메모리에 데이터를 저장하는 것을 막아 놓는 방법을 사용한다.

멀티 코어 시스템은 SMP의 한 예라고 볼 수 있는데 그림 8에서 여러 코어가 한 칩에 들어가 메모리를 공유하는 것을 보여준다. 다만 L2 캐시가 멀티 코어 칩에 들어감으로써 메모리 계층이 L1, L2, 그리고 RAM의 세 계층으로 구성되어 더 복잡해진다. 이러한 멀티 코어 칩에 의한 시스템을 CMP(Chip Multi-processor)라고 부른다. CMP는 SMP에 비해 코어 들이 같은 칩 안에 들어 있기 때문에 코어 간의 데이터 교환 시간이 훨씬 짧고 한 번에 교환되는 데이터양은 훨씬 많 다. 

CMP도 SMP의 일종으로 볼 수 있으므로 SMP에서 고려해야 하는 메모리 데이터 일관성과 프로세스간의 동기성의 문제점 들을 다루어야 한다. 

이제 멀티 코어 칩들을 여러 개 연결하여 더 큰 시스템을 만들 수 있는데, 이는 그림 9에 보여진 것과 같은 클러스터 시스템이 된다. 이 클러스터 시스템에서는 메모리를 꼭 여러 멀티 코어가 공유할 필요가 없어지며, 각 멀티 코어마다 독립적인 운영 체계(Operating System)를 사용하는 분산 시스템으로 운영될 수 있다.



설명이 잘 되어 있어서 찾아본것. 원문: http://www.epnc.co.kr/article/view_serial.asp?se=8&article_idx=9148

'Architecture' 카테고리의 다른 글

Interconnection Network Topologies  (0) 2009.07.01
PARSEC vs. SPLASH-2  (0) 2009.06.16
The PARSEC Benchmark Suite  (0) 2009.06.05
The SPLASH-2 Programs  (0) 2009.06.05
Evaluating MapReduce for Multi-core and Multiprocessor Systems  (0) 2009.05.25
블로그 이미지

민둥

,