다중 프로세서 아키텍처: 메모리 구조와 SMP 운영 이슈
다중 프로세서의 처리량·가용성 특성과 공유·분산 메모리 구조, ASMP·SMP 방식, 캐시 일관성 이슈를 정리한다.
2026-08-14 · 최초 발행 2025-12-25
여러 처리기가 한 시스템에서 나눠 수행하는 작업
다중 프로세서 시스템(Multi-Processor System)은 여러 처리기가 하나의 컴퓨터 시스템 안에서 협력해 작업을 수행하는 아키텍처다. 단일 프로세서의 성능 한계를 넘기 위해 독립적인 작업을 병렬로 처리하며, 처리량을 높이는 동시에 가용성과 신뢰성도 확보한다. 서버와 워크스테이션, 스마트폰까지 폭넓게 사용된다.
이 시스템은 2개 이상의 프로세서와 공유 메모리 또는 분산 메모리, 그리고 처리기 사이를 연결하는 네트워크로 구성된다. 여러 CPU가 단일 시스템 버스를 공유하는 형태가 대표적이며, 병렬 처리 성능과 높은 가용성이 설계 목적이다.
성능, 비용, 가용성에서 얻는 효과
프로세서가 N개라면 이론적으로는 N배의 성능 향상이 가능하다. 다만 실제 환경에서는 병렬화 오버헤드가 있으므로 일반적으로 0.7N ~ 0.9N 수준이 된다. 그럼에도 여러 작업을 동시에 처리할 수 있어 전체 처리 속도를 높일 수 있다.
메모리, 디스크, I/O 같은 주변 자원을 여러 CPU가 함께 사용하므로 경제성도 생긴다. 단일 고성능 프로세서 대신 여러 저전력 프로세서를 쓰는 구성이 비용 측면에서 유리할 수 있고, 유지보수와 업그레이드에도 효율적이다.
처리기 하나에 장애가 생겨도 나머지 처리기로 시스템을 유지할 수 있다. Graceful Degradation은 성능은 낮아져도 시스템 전체가 중단되는 상황을 피하는 방식이며, 이를 바탕으로 Fault Tolerance 시스템을 구성할 수 있다.
메모리를 함께 쓰는 구조와 나눠 갖는 구조
공유 메모리 다중 프로세서(Shared Memory Multiprocessor)는 모든 프로세서가 하나의 물리 메모리를 공유한다. 데이터 교환이 공유 메모리를 통해 이뤄지므로 프로그래밍 모델이 단순하고 통신 속도가 빠르다. 반면 메모리 대역폭 경쟁이 발생하고 확장성에는 제약이 있다. UMA(Uniform Memory Access)와 NUMA(Non-Uniform Memory Access)가 이 계열에 속한다.
분산 메모리 다중 프로세서(Distributed Memory Multiprocessor)는 각 프로세서가 독립적인 로컬 메모리를 가진다. 처리기 간 데이터 교환에는 메시지 패싱을 사용한다. 메모리 대역폭이 독립적이고 확장성이 높지만, 통신 지연과 프로그래밍 복잡도가 커진다. 클러스터 시스템과 MPP(Massively Parallel Processor)가 대표 사례다.
ASMP와 SMP가 작업을 배분하는 방식
비대칭 다중 처리(ASMP: Asymmetric Multiprocessing)는 Master-Slave 구조를 사용한다. Master가 스케줄링을 담당하고 Slave는 작업을 실행하며, 단일 OS도 Master만 실행한다. 구현이 단순하고 동작을 예측하기 쉽지만 Master가 병목이 될 수 있고 부하 분산도 비효율적이다. 초기 멀티프로세서 시스템과 특수 목적 시스템에서 사용된다.
대칭 다중 처리(SMP: Symmetric Multiprocessing)에서는 모든 프로세서가 동등한 역할을 맡는다. 모든 CPU가 OS 코드를 실행할 수 있고 작업 처리에도 참여한다. 부하 분산과 고가용성에는 유리하지만, OS 동기화 복잡도와 캐시 일관성 문제가 따라온다. 현대의 대부분의 멀티코어 CPU와 서버는 SMP 방식을 사용한다.
| 항목 | ASMP | SMP |
|---|---|---|
| 구조 | Master-Slave | Peer-to-Peer |
| OS 실행 | Master만 | 모든 CPU |
| 부하 분산 | 제한적 | 우수 |
| 복잡도 | 낮음 | 높음 |
| 성능 | 제한적 | 우수 |
공유 자원에서 발생하는 조정 문제
여러 CPU가 공유 버스나 메모리에 동시에 접근하면 중재가 필요하다. 버스 중재(Bus Arbitration) 프로토콜은 이 접근을 조정하며, 우선순위 기반, Round-Robin, TDMA 방식이 있다.
병렬 작업은 데이터 교환과 실행 순서 보장도 요구한다. 락, 세마포어, 메시지 패싱 같은 동기화 메커니즘이 쓰이며, 데드락·라이브락·경쟁 조건은 설계와 운영에서 계속 관리해야 하는 과제다.
캐시 일관성은 여러 CPU 캐시에 같은 데이터의 서로 다른 값이 존재할 수 있다는 문제다. MESI, MOESI, MESIF 같은 캐시 일관성 프로토콜로 이를 처리한다. Write-Invalidate는 쓰기 시 다른 캐시의 값을 무효화하고, Write-Update는 다른 캐시의 값을 갱신한다.
멀티코어 이후의 다중 프로세서 구성
멀티코어 프로세서는 하나의 칩 안에 여러 코어를 통합하고 온칩 통신으로 지연 시간을 최소화한다. 데스크톱은 416코어, 서버는 64128코어 구성이 사용된다.
NUMA(Non-Uniform Memory Access)는 각 프로세서가 로컬 메모리를 보유하는 구조다. 원격 메모리 접근에는 지연이 더 발생하며, 대규모 서버 시스템에 적합하다.
하이브리드 아키텍처는 CPU와 GPU를 조합하는 HSA(Heterogeneous System Architecture), 또는 성능 코어와 효율 코어를 결합하는 Intel Alder Lake와 Apple M 시리즈처럼 서로 다른 처리 자원을 함께 활용한다.