추천, 2024

에디터의 선택

UMA와 NUMA의 차이점

다중 프로세서는 UMA (Uniform Memory Access), NUMA (Non-uniform Memory Access) 및 COMA (Cache-Only Memory Access)의 세 가지 공유 메모리 모델 범주로 나눌 수 있습니다. 모델은 메모리 및 하드웨어 리소스가 분산되는 방식에 따라 차별화됩니다. UMA 모델에서 물리적 메모리는 모든 메모리 단어에 대해 동일한 대기 시간을 갖는 프로세서간에 균등하게 공유되며 NUMA는 프로세서가 메모리에 액세스하는 가변 액세스 시간을 제공합니다.

단일 메모리 컨트롤러를 사용하므로 UMA에서 메모리로 사용되는 대역폭이 제한됩니다. NUMA 시스템의 출현의 주된 동기는 여러 메모리 컨트롤러를 사용하여 메모리에 사용 가능한 대역폭을 향상시키는 것입니다.

비교 차트

비교 근거UMA누마
기본단일 메모리 컨트롤러 사용다중 메모리 컨트롤러
사용 된 버스의 유형단일, 다중 및 크로스바.트리 및 계층 구조
메모리 액세스 시간같은마이크로 프로세서의 거리에 따라 변경됩니다.
적합범용 및 시간 공유 응용 프로그램실시간 및 시간 중심 애플리케이션
속도천천히빨리
대역폭제한된UMA 이상.

UMA의 정의

UMA (Uniform Memory Access) 시스템은 멀티 프로세서를위한 공유 메모리 아키텍처입니다. 이 모델에서는 상호 연결 네트워크의 도움으로 다중 프로세서 시스템을 제공하는 모든 프로세서가 단일 메모리를 사용하고 액세스합니다. 각 프로세서는 동일한 메모리 액세스 시간 (대기 시간) 및 액세스 속도를가집니다. 단일 버스, 다중 버스 또는 크로스바 스위치 중 하나를 사용할 수 있습니다. 균형있는 공유 메모리 액세스를 제공하기 때문에 SMP (Symmetric multiprocessor) 시스템이라고도합니다.

SMP의 일반적인 디자인은 각 프로세서가 처음 캐시에 연결되고 캐시가 버스에 연결되는 위의 그림과 같습니다. 마침내 버스가 메모리에 연결됩니다. 이 UMA 아키텍처는 격리 된 개별 캐시에서 직접 명령어를 가져 와서 버스의 경합을 줄입니다. 또한 각 프로세서에 대한 읽기 및 쓰기에 대해 동일한 확률을 제공합니다. UMA 모델의 전형적인 예는 Sun Starfire 서버, Compaq alpha 서버 및 HP v 시리즈입니다.

NUMA의 정의

NUMA (Non-Uniform Memory Access) 는 각 프로세서가 전용 메모리에 연결된 다중 프로세서 모델이기도합니다. 그러나 메모리의 이러한 작은 부분이 결합되어 단일 주소 공간을 만듭니다. 여기에서 숙고해야 할 요점은 UMA와는 달리 메모리의 액세스 시간은 프로세서가 배치되는 거리에 따라 달라지며 이는 다양한 메모리 액세스 시간을 의미합니다. 물리적 주소를 사용하여 메모리 위치에 액세스 할 수 있습니다.

위에서 언급했듯이 NUMA 아키텍처는 메모리에 사용 가능한 대역폭을 늘리고 다중 메모리 컨트롤러를 사용하기위한 것입니다. 그것은 각 코어가 메모리 컨트롤러를 가지고있는 " 노드 "에 수많은 머신 코어를 결합합니다. NUMA 머신의 로컬 메모리에 액세스하기 위해 코어는 노드에 의해 메모리 컨트롤러가 관리하는 메모리를 검색합니다. 다른 메모리 컨트롤러가 처리하는 원격 메모리에 액세스하는 동안 코어는 상호 연결 링크를 통해 메모리 요청을 보냅니다.

NUMA 아키텍처는 트리 및 계층 적 버스 네트워크를 사용하여 메모리 블록과 프로세서를 상호 연결합니다. BBN, TC-2000, SGI Origin 3000, Cray는 NUMA 아키텍처의 몇 가지 예입니다.

UMA와 NUMA의 주요 차이점

  1. UMA (공유 메모리) 모델은 하나 또는 두 개의 메모리 컨트롤러를 사용합니다. 반대로, NUMA는 메모리에 액세스하기 위해 여러 메모리 컨트롤러를 가질 수 있습니다.
  2. 단일, 다중 및 크로스바 버스는 UMA 아키텍처에서 사용됩니다. 반대로 NUMA는 계층 적 및 트리 유형의 버스와 네트워크 연결을 사용합니다.
  3. UMA에서 각 프로세서의 메모리 액세스 시간은 동일하지만 NUMA의 경우 프로세서에서 메모리 거리가 바뀌면서 메모리 액세스 시간이 변경됩니다.
  4. 범용 및 시간 공유 응용 프로그램은 UMA 시스템에 적합합니다. 반면 NUMA에 대한 적절한 응용 프로그램은 실시간 및 시간 중심의 중심입니다.
  5. UMA 기반 병렬 시스템은 NUMA 시스템보다 느리게 작동합니다.
  6. UMA 대역폭의 경우 대역폭이 제한됩니다. 반대로 NUMA는 UMA보다 대역폭이 더 큽니다.

결론

UMA 아키텍처는 메모리에 액세스하는 프로세서에 대해 동일한 전체 대기 시간을 제공합니다. 대기 시간이 일정하기 때문에 로컬 메모리에 액세스 할 때는 그리 유용하지 않습니다. 반면 NUMA에서는 각 프로세서에 전용 메모리가있어 로컬 메모리에 액세스 할 때 대기 시간이 필요하지 않습니다. 대기 시간은 프로세서와 메모리 사이의 거리가 변경되면 변경됩니다 (즉, 비 균일). 그러나 NUMA는 UMA 아키텍처에 비해 성능을 향상 시켰습니다.

Top