컴퓨터는 우리가 알지 못하는 사이에 많은 작업을 동시에 실행하고 있다. 윈도의 작업관리자를 보면 현재 진행되고 있는 작업을 한눈에 볼 수 있다
싱글시스템과 듀얼시스템의 비교 그림. 듀얼시스템은 두개의 CPU로 여러개의 프로세스와 스레드를 동시에 처리한다. 당연히 싱글시스템에 비해 듀얼시스템의 처리 속도와 성능이 월등하다
듀얼 CPU, 즉 SMP는 어떤 원리로 성능 향상을 꾀할까? 두개의 CPU가 하나의 명령어를 하나씩 순차적으로 처리할까? 아니면 독립적으로 하나의 프로그램을 하나의 CPU가 처리할까? 이렇듯 여러가지 가정을 세울 수 있다. 지금부터 SMP의 기본 원리인 멀티스레딩(multi-threading)와 멀티태스킹(multi-tasking)에 대해 알아보기로 하자.
스레드(thread)의 뜻은 처음 올려진 메시지에 대해 올라간 일련의 응답 메시지다. 컴퓨터 프로그래밍에서 스레드의 의미는 프로그램이 CPU에 처리를 요청하는 각각의 정보 하나의 단위를 말한다.
스레드는 CPU가 한번에 처리할 수 있는 하나의 단위로 바꿔 말할 수 있다. 대부분의 프로그램은 여러개의 스레드로 이뤄져 있다고 할 수 있다. 하나의 프로그램이 실행되기 위해서 수많은 스레드가 CPU에 처리를 요청한다. 하나의 프로그램에서 요청하는 수많은 스레드를 하나의 프로세스라고 한다.
멀티스레드는 하나의 프로세스가 실행될 때 여러개의 스레드를 가지고 동시에 처리하는 것을 말한다. 대부분 하나의 스레드가 실행되고 종료된 다음 다른 스레드가 실행되는 것이 보통이다. 일부 소프트웨어에서 프로그램의 실행 속도를 높이기 위해 여러개의 스레드를 동시에 처리하도록 프로그램된 것이 있다. 멀티스레딩으로 실행하기 위해서는 빠르고 성능 좋은 CPU가 필요하다.
멀티스레드와 비슷한 원리지만 좀더 큰 의미로 쓰이는 멀티태스킹이 있다. 여러개의 프로세서가 동시에 처리되는 것을 말한다. 조금 더 쉽게 말하면 여러개의 프로그램이 동시에 돌아가는 것이다. 예를 들면 워드프로세서로 워드를 치면서 MP3을 감상하고 인터넷으로 영화를 보면서 통신을 한다. 또 FTP 프로그램으로는 여러개의 자료를 다운로드하고 있다. 이런 것을 멀티태스킹이라고 한다. 우리가 흔히 많이 쓰는 윈도가 멀티태스킹을 쓰는 대표적 운용체계다.
SMP와 멀티스레딩, 멀티태스킹과 어떤 관계가 있을까? SMP는 멀티스레딩과 멀티태스킹을 쓸 수 없는 운용체계에서는 성능 향상을 기대하기 힘들다. 이제부터 그 이유를 알아보자.
하나의 스레드를 가진 프로세스가 여러개 있다고 생각해 보자. 스레드는 CPU 하나가 한번에 처리할 수 있다. 다시 말해 스레드를 여러개의 CPU가 나눠 처리할 수 없다. 때문에 하나의 스레드로 이뤄진 프로세스가 여러개 있다 하더라도 CPU의 개수에 상관없이 처음으로 CPU가 순차적으로 처리한다. 이럴 때는 싱글 CPU를 쓸 때와 전혀 차이가 없다. 두번째 이하 CPU는 놀고 있는 셈이다.
10개의 멀티스레드를 가진 프로세스가 10개 있다고 가정하자. 한번에 하나의 스레드만 처리 할 수 있는 단일 CPU에서 이 프로세스를 수행하기 위해서는 100개의 스레드를 순차적으로 처리한다. SMP에서 생각해 보자. CPU가 두개 있고 처음의 CPU가 하나의 프로세스를 처리한다. 단일 스레드 프로세서의 경우 앞의 스레드가 처리되어야만 다음 프로세스가 진행된다. 하지만 멀티 프로세스에서는 하나의 프로세스에 하나의 CPU를 할당할 수 있다. CPU 하나가 5개의 프로세스, 50개의 스레드를 나누어 처리한다. 이론적으로는 두배의 성능 향상이 있다. 이것은 멀티스레드를 쓸 수 있는 운영체계와 프로그램에서 이상적으로 실행되었을 때만 가능하다.
SMP로 인하여 여러개의 프로그램을 동시에 실행시키는 멀티태스킹에서 성능 향상은 당연하다. 많은 프로그램이 동시에 실행되는 멀티태스킹에서 성능 향상보다는 더 큰 의미로는 각각의 프로그램을 동시에 원활히 돌릴 수 있다는 것에 있다.
반대로 멀티스레딩으로 프로그램되지 않았다면 SMP에서 성능 향상은 없다. 이런 프로그램이 여러개가 동시에 실행되는 멀티태스킹에서도 성능 향상은 있을 수 없다. CPU에 많이 의존하는 복잡한 연산작업일수록 멀티스레드로 프로그래밍된다. 간단한 통신프로그램이나 워드프로세서보다는 동영상을 편집하는 소프트웨어나 3D 그래픽 소프트웨어에서 훨씬 더 많이 멀티스레드로 프로그래밍된다.
결론을 내리자면 사무용 애플리케이션이나 인터넷 통신용 애플리케이션에서 아무리 듀얼 CPU를 써봤자 성능향상은 미미하다는 것이다. 듀얼 CPU를 제대로 쓸 수 있는 운영체계와 멀티스레드로 프로그래밍된 애플리케이션이 딱 맞아 떨어져야만 듀얼 CPU를 쓰는 참맛을 볼 수 있다.
◆인텔 듀얼시스템과 AMD 듀얼시스템의 차이
인텔이 듀얼시스템에서 쓰는 AGTL+버스 아키텍처는 셰어드 버스 방식이다. 셰어드 버스 방식은 하나의 버스를 다수의 객체가 나누어 쓰는 방식이다. 다수의 객체가 한꺼번에 동작할 때 객체 하나하나가 쓸 수 있는 대역폭은 줄어들게 마련이다. 듀얼시스템에서 ‘1+1=2’라는 공식이 적용되지 않는 이유 가운데 하나기도 하다. 이런 경향은 CPU 개수가 많아질수록 더욱 심해진다.
따라서 일부 시스템이나 프로그램에 따라서는 SMP는 전혀 이득이 없다. 오히려 단일 CPU에 비해 성능이 떨어지는 경우도 생기게 마련이다. SMP라고 해서 무조건 빠르다는 것은 잘못된 생각이다. 두개 이상의 CPU를 제어하기도 힘들 뿐더러 아무리 효율적으로 구성한다고 하더라도 일부 프로그램은 상당부분을 공유하기 때문이다.
잘 알다시피 AMD는 인텔과 달리 EV6라는 아키텍처를 이용한다. 이것은 셰어드 버스가 아닌 이른바 P2P(Peer to Peer)방식이다. P2P라는 이름에서 짐작할 수 있듯이 객체 하나하나가 독립된 버스를 써서 연결된다는 것이다. 셰어드 버스가 프로세서 모두를 같은 버스로 공유하는 것과는 확실히 대비되는 개념으로 듀얼시스템에는 보다 유리한 구조라고 할 수 있다.
이러한 P2P구조의 문제점은 AGTL+버스에 비해서 매우 복잡하고 까다롭다는 것이다. AGTL+버스의 경우 대역폭은 몇개의 CPU를 쓰든지 거의 변화가 없다. 반대로 P2P방식의 EV6 버스는 CPU가 늘어나면 날수록 칩세트의 대역폭이 늘어나야만 한다. 애슬론이 듀얼시스템을 선보이면서 새로운 칩세트 760MP를 내놓은 것도 이런 문제가 있기 때문이다. 반면 인텔은 BX에서 볼 수 있듯 특별한 칩세트를 요구하지는 않는다. 다만 펜티엄4에 이르러서는 860이라는 칩세트가 필요하지만 이것은 CPU 자체보다는 메모리 때문이다.
따라서 AMD의 경우 기존의 시스템으로는 듀얼프로세싱이 매우 어렵게 되었고 무엇인가 새로운 CPU와 메인보드 칩세트가 필요하게 되었다. 애슬론MP가 새롭게 선보인 이유가 바로 여기에 있다.
AMD는 이러한 듀얼 프로세싱 관련 기술을 스마트MP라고 부른다. 이미 설명한 것처럼 P2P방식으로 시스템이 구성되며 보다 고속의 CPU통신을 할 수 있도록 스눕(snoop) 버스라는 독특한 기술을 갖추고 있다.
많이 본 뉴스
-
1
테슬라, 중국산 '뉴 모델 Y' 2분기 韓 출시…1200만원 가격 인상
-
2
'좁쌀보다 작은 통합 반도체'…TI, 극초소형 MCU 출시
-
3
필옵틱스, 유리기판 '싱귤레이션' 장비 1호기 출하
-
4
단독민주당 '과학기술정보통신AI부' 설립·부총리급 격상 추진
-
5
'전고체 시동' 엠플러스, LG엔솔에 패키징 장비 공급
-
6
헌재, 감사원장·검사 3명 탄핵 모두 기각..8명 전원 일치
-
7
모바일 주민등록증 전국 발급 개시…디지털 신분증 시대 도약
-
8
구형 갤럭시도 삼성 '개인비서' 쓴다…내달부터 원UI 7 정식 배포
-
9
제주도에 AI 특화 데이터센터 들어선다…바로AI, 구축 시동
-
10
공공·민간 가리지 않고 사이버공격 기승…'디도스'·'크리덴셜 스터핑' 주의
브랜드 뉴스룸
×