맨위로가기

대칭형 다중 처리

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

대칭형 다중 처리(SMP)는 단일 운영 체제 하에서 작동하며, 2개 이상의 동종 프로세서를 갖춘 공유 메모리를 사용하는 다중 프로세서 병렬 처리 방식이다. 1960년대에 SMP의 초기 개념이 나타났으며, 1990년대에는 유닉스 서버를 중심으로, 2000년대 이후에는 개인용 컴퓨터, 스마트폰, 태블릿 등에도 멀티코어 CPU가 탑재되면서 일반화되었다. SMP는 여러 프로세스를 병렬로 실행하여 성능 향상을 가져오지만, 캐시 일관성 문제와 프로그래밍 복잡성, RAM 접근의 직렬화로 인한 성능 저하 등의 단점도 존재한다. SMP의 대안으로 NUMA, 컴퓨터 클러스터 방식이 있으며, 엔비디아는 모바일 장치를 위해 가변 SMP(vSMP) 기술을 개발했다. SMP는 부트 CPU를 고정하지 않고, CPU 장애 시 정상 CPU만으로 동작하는 내장애성을 갖춘 시스템을 구축할 수 있다.

더 읽어볼만한 페이지

  • 플린 분류 - MIMD
    MIMD는 여러 프로세서가 각기 다른 명령어와 데이터를 처리하는 병렬 컴퓨팅 구조로, 공유 메모리 및 분산 메모리 모델로 나뉘며, 높은 병렬성을 요구하는 다양한 분야에 활용되지만 프로그래밍 복잡성 등의 과제를 안고 있다.
  • 플린 분류 - 폰 노이만 구조
    폰 노이만 구조는 CPU, 주소 지정 메모리, 버스를 핵심 요소로 하는 컴퓨터 아키텍처로, 프로그램 내장 방식을 통해 명령어와 데이터를 동일한 기억 장치에 저장하고 순차적으로 실행하는 특징을 가진다.
  • 정보기술 용어 - 그리드 컴퓨팅
    그리드 컴퓨팅은 지리적으로 분산된 컴퓨터 자원을 연결하여 가상 슈퍼컴퓨터를 구축하는 기술이며, 유휴 자원을 활용하고 과학 연구 등 다양한 분야에 활용된다.
  • 정보기술 용어 - 컴퓨터 클러스터
    컴퓨터 클러스터는 여러 대의 상용 컴퓨터를 고속 네트워크로 연결하여 고성능 컴퓨팅 시스템을 구축하는 방식으로, 슈퍼컴퓨터를 포함한 다양한 분야에서 높은 가용성과 확장성을 제공하며, 클러스터 미들웨어를 통해 시스템 관리, 부하 분산, 통신 방식, 데이터 공유 등을 지원하고 노드 장애 관리를 위한 펜싱 기술을 활용한다.
  • 병렬 컴퓨팅 - 슈퍼컴퓨터
    슈퍼컴퓨터는 일반 컴퓨터보다 훨씬 높은 성능을 가진 컴퓨터로, 복잡한 계산과 시뮬레이션을 수행하며, 프로세서, 메모리, 스토리지, 네트워크 등으로 구성되어 병렬 처리를 통해 높은 성능을 구현하고, 군사, 기상 예측, 과학 기술 분야, 인공지능 등 다양한 분야에서 활용되고 있다.
  • 병렬 컴퓨팅 - 컴퓨터 클러스터
    컴퓨터 클러스터는 여러 대의 상용 컴퓨터를 고속 네트워크로 연결하여 고성능 컴퓨팅 시스템을 구축하는 방식으로, 슈퍼컴퓨터를 포함한 다양한 분야에서 높은 가용성과 확장성을 제공하며, 클러스터 미들웨어를 통해 시스템 관리, 부하 분산, 통신 방식, 데이터 공유 등을 지원하고 노드 장애 관리를 위한 펜싱 기술을 활용한다.
대칭형 다중 처리
개요
유형병렬 처리
특징여러 개의 동일한 프로세서가 모든 자원을 동등하게 공유함
약어SMP
설명
정의대칭형 다중 처리(Symmetric Multi-Processing, SMP)는 다수의 동일한 프로세서가 메모리를 포함한 모든 자원을 동등하게 공유하는 다중 처리 시스템 아키텍처임.
대칭성모든 프로세서가 동일한 기능과 자원에 접근할 수 있다는 점에서 "대칭적"임.
자원 공유프로세서들은 메모리, 입출력 장치 등 시스템 자원을 공유하며, 운영체제는 이 자원들을 효율적으로 관리함.
장점
성능 향상여러 프로세서가 작업을 분담하여 처리하므로 전체적인 시스템 성능이 향상됨.
자원 활용도 증가시스템 자원을 효율적으로 공유하므로 자원 활용도가 높아짐.
유연성작업 부하에 따라 프로세서들이 동적으로 작업을 할당받아 처리하므로 시스템의 유연성이 향상됨.
단점
복잡성 증가여러 프로세서 간의 동기화 및 자원 관리가 복잡해짐.
병목 현상 발생 가능성공유 자원에 대한 접근 경쟁으로 인해 병목 현상이 발생할 수 있음.
확장성 제한프로세서 수가 증가함에 따라 시스템 버스 대역폭 등의 한계로 인해 확장성이 제한될 수 있음.
활용 분야
서버 시스템웹 서버, 데이터베이스 서버 등 높은 처리 능력이 요구되는 서버 시스템에 활용됨.
데스크톱 컴퓨터고성능 데스크톱 컴퓨터에서 멀티미디어 처리, 게임 등 복잡한 작업을 처리하는 데 활용됨.
임베디드 시스템실시간 제어, 신호 처리 등 다양한 기능을 수행하는 임베디드 시스템에 활용됨.
관련 기술
클러스터여러 대의 독립적인 컴퓨터를 연결하여 하나의 시스템처럼 사용하는 기술.
대규모 병렬 프로세싱 (MPP)수백, 수천 개의 프로세서를 사용하여 대규모 데이터를 병렬로 처리하는 기술.
비균등 메모리 액세스 (NUMA)각 프로세서가 로컬 메모리에 빠르게 접근하고, 원격 메모리에는 느리게 접근하는 구조.
같이 보기
관련 기술병렬 컴퓨팅
비대칭형 멀티프로세싱 (AMP)

2. 역사

1960년대 버로스 B5000과 IBM 시스템/360 모델 65, 67 등에서 대칭형 다중 처리(SMP)의 초기 개념이 나타났지만, 당시에는 비대칭형 다중 처리 방식이었다.[4][5][6][7] 1962년 버로스 D825가 최초로 SMP를 구현하였다.[4][5]

1970년대 DEC시스템 1077은 SMP를 실행하는 초기 시스템 중 하나였다.[14]

1980년대에는 시퀀트 컴퓨터 시스템의 밸런스 시리즈[17]와 Honeywell XPS-100[11] 등 상용 유닉스 SMP 구현이 등장했다.

1990년대에는 MIPS R4000 시리즈, SPARC 시리즈 등 멀티프로세싱을 고려한 RISC 프로세서가 등장하면서, 유닉스 서버를 중심으로 SMP 채용이 가속화되었다.

2000년대 이후 개인용 컴퓨터(PC)와 스마트폰, 태블릿에도 멀티코어 CPU가 탑재되면서 SMP 환경이 일반화되었다.

2. 1. 대한민국에서의 발전

1990년대 후반부터 대한민국에서는 대형 서버를 중심으로 SMP 기술이 도입되기 시작했다. 2000년대 초반, 한국전자통신연구원(ETRI) 주도로 개발된 운영체제인 Qplus-SMP는 다중처리기 기반 고성능 서버 시스템 개발에 활용되었다. 현재는 리눅스 기반의 서버 시스템이 널리 사용되며, 클라우드 컴퓨팅 환경의 확산과 함께 SMP 기술의 중요성이 더욱 커지고 있다.

3. 설계

SMP 시스템은 단일 운영 체제 하에서 작동하며, 여러 개의 동종 프로세서가 공유 메모리를 가진다.[20] 각 프로세서는 일반적으로 캐시 메모리를 가지고 있어 메모리 접근 속도를 높이고 시스템 버스 트래픽을 줄인다.[20]

프로세서 간 상호 연결은 버스, 크로스바 스위치, 또는 온칩 메시 네트워크를 사용하여 이루어진다.[20] 버스나 크로스바 스위치를 사용하는 SMP는 상호 연결의 대역폭 및 전력 소비가 확장성의 병목 현상이 될 수 있다.[20] 메시 아키텍처는 이러한 병목 현상을 피하고 확장성을 제공하지만, 프로그래밍의 복잡성을 증가시킨다.

1980년대 후반부터 크로스바 스위치가 양산형 서버에도 채용되면서, 대규모 SMP 구성이 가능해졌다. 초기에는 버스 방식이 주로 사용되었고, 속도도 느려 SMP의 최대 구성은 8 CPU 정도, 실효 성능은 단일 CPU의 5배 정도에 머물렀다.

1990년대 초반부터 MIPS의 R4000 시리즈, SPARC 시리즈와 같은 멀티프로세싱을 전제로 한 RISC 프로세서가 등장하면서, 선 마이크로시스템즈의 Solaris 등에서 채용이 급속도로 진행되었고, 서버에서의 처리 속도 향상 기법의 주류로서 범용화되었다.

2006년 현재, 거의 모든 유닉스 계열 OS 및 윈도우 NT 계열 OS에서 SMP가 채용되고 있다. 개인용 컴퓨터(PC)나 스마트폰/태블릿과 같은 일반 소비자용 기기도 2000년대의 PC, 2010년대의 스마트폰/태블릿은 2개 이상의 물리 코어 또는 SMT에 의한 논리 코어를 탑재한 멀티코어 CPU를 채용하는 SMP 환경이 주류가 되었다.[20]

4. 장단점

대칭형 다중 처리(SMP)는 여러 프로세서가 메모리와 자원을 공유하며 작업을 처리하는 방식이다.

SMP는 병렬 프로그래밍을 통해 여러 프로세서를 활용하여 처리량을 높이는 비용 효율적인 방법이지만, 캐시 일관성 문제와 공유 객체로 인해 확장성에 제약이 있다.

초기 SMP 시스템은 단일 CPU가 큰 공간을 차지했으나, 현재는 모든 프로세서가 하나의 상자 안에 긴밀하게 연결되어 있다. 하나의 운영 체제에서 모든 프로세서를 관리하며, 병렬 프로그래밍을 통해 여러 프로세서가 동시에 작업을 처리한다.

1990년대 RISC 프로세서의 등장과 함께 SMP는 서버에서 처리 속도 향상의 주류 기술로 자리 잡았다. NUMA 아키텍처를 통해 대규모 SMP 구성이 가능해졌으며, 현대에는 대부분의 유닉스 계열 OS와 윈도우 NT 계열 OS에서 SMP를 사용한다. PC와 스마트폰 등 일반 소비자용 기기에도 멀티코어 CPU를 탑재하여 SMP 환경이 보편화되었다.

하지만, 리소스 경합 시 순차 처리가 불가피하며 병렬 최적화가 어렵다는 단점이 있다. 또한, 부팅 과정이나 하드웨어 인터럽트 처리 등에서 완전한 대칭을 이루지 못하는 경우도 있다.

4. 1. 장점

시분할 시스템과 서버 시스템은 애플리케이션 변경 없이도 SMP를 사용하여 여러 프로세스를 병렬로 실행할 수 있다. 여러 프로세스가 실행되는 시스템은 서로 다른 프로세스를 서로 다른 프로세서에서 실행할 수 있기 때문이다.[20]

개인용 컴퓨터에서 SMP는 수정되지 않은 애플리케이션에는 덜 유용하다. 시스템이 한 번에 하나 이상의 프로세스를 실행하는 경우가 드물어, SMP는 멀티스레드 (멀티태스킹) 처리를 위해 수정된 애플리케이션에만 유용하기 때문이다. 하지만, 맞춤형 프로그래밍된 소프트웨어는 여러 스레드를 사용하도록 작성하거나 수정하여 여러 프로세서를 활용할 수 있다.[20]

멀티스레드 프로그램은 멀티스레딩을 지원하는 시분할 및 서버 시스템에서도 사용하여 여러 프로세서를 더 많이 활용할 수 있다. 다수의 프로그램이 동시에 실행될 때, SMP 시스템은 단일 프로세서 시스템보다 성능이 훨씬 우수한데, 이는 서로 다른 프로그램이 서로 다른 CPU에서 동시에 실행될 수 있기 때문이다.[20]

4. 2. 단점

캐시 일관성과 공유 객체로 인해 SMP의 확장성에 몇 가지 제한이 있다.[20] 프로그래밍 방식이 단일 프로세서 시스템에 비해 더 복잡할 수 있다.

5. 프로그래밍

단일 프로세서 및 SMP 시스템은 최대 성능을 달성하기 위해 서로 다른 프로그래밍 방식을 필요로 한다. SMP 시스템에서 실행되는 프로그램은 단일 프로세서 시스템용으로 작성되었더라도 성능 향상을 경험할 수 있다. 이는 일반적으로 하드웨어 인터럽트가 프로그램 실행을 일시 중지하는 동안 이를 처리하는 커널(운영 체제)이 유휴 프로세서에서 실행될 수 있기 때문이다. 대부분의 응용 프로그램(예: 게임)에서 그 효과는 성능 향상이라기보다는 프로그램이 훨씬 더 부드럽게 실행되는 것처럼 보이는 것이다. 일부 응용 프로그램, 특히 소프트웨어 빌드 및 일부 분산 컴퓨팅 프로젝트는 추가 프로세서 수에 (거의) 비례하는 속도로 더 빠르게 실행된다. (컴파일러 자체는 단일 스레드이지만, 여러 컴파일 단위로 소프트웨어 프로젝트를 빌드할 때 각 컴파일 단위가 독립적으로 처리되면 전체 다중 컴파일 단위 프로젝트에서 자명하게 병렬 상황이 생성되어 컴파일 시간이 거의 선형적으로 확장될 수 있다. 분산 컴퓨팅 프로젝트는 본질적으로 설계상 병렬적이다.)

시스템 프로그래머는 SMP에 대한 지원을 운영 체제에 구축해야 한다. 그렇지 않으면 추가 프로세서가 유휴 상태로 유지되고 시스템은 단일 프로세서 시스템으로 작동한다.

SMP 시스템은 명령어 집합과 관련하여 더 많은 복잡성을 초래할 수 있다. 동종 프로세서 시스템은 일반적으로 SIMD(MMX, SSE 등)와 같은 "특수 명령어"에 대한 추가 레지스터가 필요하며, 이종 시스템은 서로 다른 명령어/사용 사례에 대해 서로 다른 유형의 하드웨어를 구현할 수 있다.

6. 대안

NUMA (Non-Uniform Memory Access, 비균일 메모리 접근)는 서로 다른 메모리 뱅크를 서로 다른 프로세서에 할당하는 방식이다. NUMA 아키텍처에서 프로세서는 로컬 메모리에 빠르게 접근하고 원격 메모리에 더 느리게 접근할 수 있다. 이는 데이터가 특정 프로세스(따라서 프로세서)에 국한되어 있는 한 메모리 처리량을 크게 향상시킬 수 있다. 단점은 NUMA가 작업 부하 균형 조정과 같이 데이터를 한 프로세서에서 다른 프로세서로 이동하는 비용을 더 비싸게 만든다는 것이다. NUMA의 이점은 특정 작업 부하, 특히 데이터가 종종 특정 작업 또는 사용자와 강력하게 연관되는 서버에서 제한된다.

모든 메모리를 모든 프로세서에서 사용할 수 없는 컴퓨터 클러스터 다중 처리(예: 베오울프)도 대안으로 제시된다. 클러스터링 기술은 매우 큰 슈퍼컴퓨터를 구축하는 데 상당히 광범위하게 사용된다.

7. 가변 SMP (Variable SMP)

가변 대칭형 다중 처리(vSMP)는 엔비디아(NVIDIA)가 모바일 장치를 위해 개발한 기술이다. 이 기술은 쿼드 코어 장치에 저전력 코어(컴패니언 코어)를 추가하여, 모바일 장치가 활성 대기 모드, 비디오 재생, 음악 재생과 같은 작업을 낮은 주파수로 실행하여 배터리 수명을 늘리는 데 도움을 준다.

엔비디아가 특허를 받은 프로젝트 칼-엘(테그라 3)은 이 vSMP 기술을 구현한 최초의 SoC(System on Chip)였다. 이 기술은 활성 대기 상태에서 모바일 전력 소비를 줄일 뿐만 아니라, 모바일 애플리케이션 사용 시 쿼드 코어 성능을 극대화한다. 이를 통해 모바일 프로세서의 전력 소비를 줄여 활성 및 대기 사용 중 배터리 수명 성능을 향상시킨다.

vSMP 컴패니언 코어는 OS 투명성을 가지는데, 이는 운영 체제와 실행 중인 애플리케이션이 이 추가 코어를 인식하지 못하지만 여전히 활용할 수 있음을 의미한다. vSMP 아키텍처의 장점은 다음과 같다.


  • 캐시 일관성: vSMP는 컴패니언 코어와 주 코어가 동시에 실행되는 것을 허용하지 않아, 다른 주파수로 실행되는 코어 간의 캐시 동기화 문제가 발생하지 않는다.
  • OS 효율성: 여러 CPU 코어가 서로 다른 비동기 주파수로 실행되면 스케줄링 문제가 발생할 수 있지만, vSMP에서는 활성 CPU 코어가 유사한 주파수로 실행되어 OS 스케줄링을 최적화한다.
  • 전력 최적화: 비동기 클럭 기반 아키텍처에서는 각 코어가 다른 작동 주파수에 대한 전압 조정을 위해 다른 전력 평면에 있어 성능에 영향을 줄 수 있다. vSMP 기술은 활성 및 대기 사용을 위해 특정 코어를 동적으로 활성화 및 비활성화하여 전체 전력 소비를 줄인다.


이러한 장점들 덕분에 vSMP 아키텍처는 비동기 클럭 기술을 사용하는 다른 아키텍처보다 상당한 이점을 가진다.

8. 내장애성

모든 SMP 지원 OS/서버에서는 기동 시 CPU 장애가 발견된 경우, 이상 CPU는 시스템에 포함되지 않고 정상 CPU만으로 동작하게 된다. 상업용 유닉스용 상위 클래스 서버 및 기저 시스템 Windows 서버 일부에서는 부트 CPU를 고정하지 않고 정상적으로 동작하는 CPU 중 하나(고장 CPU가 없는 경우에는 고정)에 의해 IPL(초기 프로그램 로더)이 실행되어 부트 처리를 수행한다. 한편, 상업용 유닉스에서 고기능 기저 시스템 서버를 사용하는 경우, OS와 펌웨어 레벨에서 CPU 및 캐시의 기능 검사가 가동 시에 정기적으로 수행되며, 특정 레벨 이상의 CPU 장애 시에는 동적으로 CPU를 분리하여 업무를 지속한다.

참조

[1] 서적 Computer Organisation and Design: The Hardware/Software Interface Morgan Kaufmann 2018
[2] 간행물 Introduction to Parallel Architectures and Pthreads https://parlab.eecs.[...]
[3] 서적 Parallel Computer Architecture: A Hardware/Software Approach https://books.google[...] Morgan Kaufmann
[4] 웹사이트 The History of the Development of Parallel Computing http://ei.cs.vt.edu/[...] 1994-10
[5] 웹사이트 A Fourth Survey of Domestic Electronic Digital Computing Systems http://ed-thelen.org[...] Ballistic Research Laboratories, Aberdeen Proving Grounds 1964-01
[6] 서적 IBM System/360 Model 65 Functional Characteristics http://www.bitsavers[...] IBM 1968-09
[7] 서적 IBM System/360 Model 67 Functional Characteristics http://www.bitsavers[...] IBM 1972-02
[8] 문서 M65MP: An Experiment in OS/360 multiprocessing http://doi.acm.org/1[...]
[9] 서적 Program Logic Manual, OS I/O Supervisor Logic, Release 21 (R21.7) http://bitsavers.org[...] IBM 1973-04
[10] 서적 'Time Sharing Supervisor Programs' https://1a9f2076-a-6[...] 1971-05
[11] 서적 GE-635 System Manual http://www.bitsavers[...] General Electric 1964-07
[12] 서적 GE-645 System Manual http://www.bitsavers[...] General Electric 1968-01
[13] 뉴스 Fear of Multiprocessing? https://groups.googl[...] 1998-05-05
[14] 문서 DEC 1077 and SMP http://www.ultimate.[...]
[15] 문서 VAX Product Sales Guide, pages 1-23 and 1-24 http://www.bitsavers[...]
[16] 문서 VAX 8820/8830/8840 System Hardware User's Guide http://www.bitsavers[...]
[17] 서적 Parallel Computers 2: Architecture, Programming and Algorithms Taylor & Francis
[18] 웹사이트 MUNIX, A Multiprocessing Version Of UNIX https://core.ac.uk/d[...] 2018-11-11
[19] 문서 SMPとAMP マルチコアプロセッサの特徴について解説 - クミコミ https://www.kumikomi[...]
[20] 문서 Energy Aware Scheduling — The Linux Kernel documentation https://www.kernel.o[...]



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com