머피의 작업장 이글루본점 매장은 www.mmk.pe.kr
by Muphy 이글루스 피플
rss

skin by 이글루스
듀얼코어 프로세서
PC 사랑 2005년 1월호에 투고하기 위해 작성한 글입니다. 듀얼코어쪽에 대해서 써달라고 하는데, 이쪽은 정리하기도 어수선한지라 제가 써놓고도 횡수만 늘어놓은 것 같아서 암담합니다. 핫핫핫. =ㅂ=

역시 참고하실 분만 보세요. :)







1. 왜 듀얼코어를 만들려고 하나

인텔과 AMD의 경쟁으로 주도되는 프로세서의 기술과 속도의 발전은 그야말로 눈부시다. 자고나면 신기술이 하나씩 튀어나오는 상황이니 최고기술로 만들어진 최고성능의 CPU도 그 자리를 수개월 내에 새로운 CPU에 내어준다. 지난 2001년 인텔과 AMD가 경쟁적으로 1GHz의 장벽을 돌파한 이후 인텔은 이제 4GHz를 바라보는 상황이다. 그런데, 인텔의 4GHz 프로세서 출시가 계속 늦어지는 것에 우리는 주의를 기울여 보아야 한다.

프로세서의 성능은 동작클럭과 IPC의 곱으로 나타낼 수 있다. 여기서 IPC는 Instructions executed per Clock의 약자로, 클럭당 실행되는 명령어의 수를 의미한다. 즉, 클럭당 실행되는 명령어의 개수에 동작 클럭 주파수를 곱하면 1초당 수행되는 명령어의 개수가 나오는 것이다. 프로세서의 성능향상을 위해서는 동작클럭 또는 IPC를 끌어올려야 한다. 여기서 인텔은 동작클럭을 끌어올리는 방법을 선택했고, AMD는 IPC를 끌어올리는 방법을 선택했다. 이것은 AMD의 제품이 인텔의 프로세서에 비해서 동작클럭이 현저하게 낮아도 성능면에서는 동등한 수준을 유지해 주는 이유이다.
더군다나 인텔의 넷버스트 마이크로아키텍쳐는 설계될 때부터 ‘높은 동작클럭’에 최적화되어 있었다. 깊은 파이프라인과 이 파이프라인을 활용하기 위한 다양한 기술들이 적용되어 있기 때문에 동작클럭이 높아지면 높아질수록 제 성능을 발휘한다. AMD 역시 IPC가 아무리 높다 하더라도 동작클럭의 향상이 같이 이루어지지 않으면 성능향상에는 제약이 따를 수밖에 없고 그 때문에 꾸준히 동작클럭을 높여 오고 있다.

인텔의 원래 로드맵은 이랬다


그런데, 동작클럭의 향상은 현재 거의 한계에 부딪혀 있다. 인텔의 경우, 올해 초만 하더라도 2004년 안에 4GHz의 프로세서를 만들 수 있을 것이라고 자신했다. 여름까지도 인텔의 2004년 로드맵의 마지막은 4GHz 프로세서(모델명 580)가 장식하고 있었다. 그러나 가을로 접어들 무렵 인텔은 갑자기 4GHz 프로세서의 출시를 취소하고 이것을 2005년도로 연기하였다. 인텔이 프로세서의 동작클럭을 더이상 높이 끌어올리지 못하는 가장 큰 이유는 발열 때문이다. 이미 프레스캇 프로세서에서 100W를 넘겨버려서 사용자들의 원성을 사고 있는 마당에 동작클럭을 더욱 높이 끌어올리기는 어려운 것이 사실이다. 물론 여기에는 프레스캇 코어의 도입 지연에서 예상되었던 대로 인텔의 90nm 공정이 그리 순탄하지만은 않은 이유도 있다.

그래서 인텔이나 AMD 모두 동작클럭의 향상 이외의 대안을 계속 추구해 왔으며, MMX, SSE, 3DNow! 등의 기술 역시 그러한 대안 중의 하나로 만들어진 것이다. 즉, 수행할 명령어의 수를 줄이면서(동작클럭을 낮추면서) 더욱 많은 데이터를 처리하게 하겠다는 것이다. 캐시 용량의 증가 역시 그러한 대안이다. 캐시의 용량이 늘어나면 늘어날 수록 프로세서가 ‘놀고 있는’ 시간이 줄어들고 그에 따라 동일한 동작클럭, 동일한 동작시간으로도 더욱 많은 일을 수행하는 것이다. 그러나, 이러한 방법으로도 한계를 느낀 프로세서 제조사들이 새로이 눈을 돌린 곳이 바로 ‘멀티프로세싱’이다.

2. 멀티프로세싱

멀티프로세싱은 사실 새로운 기법이 아니다. 이미 오래전부터 수퍼컴퓨터나 메인프레임 등에서 사용되어 왔고(수퍼컴퓨터는 CPU가 수백개~수천개에 이르기도 한다) 인텔 지난 1994년 출시된 ‘넵튠(Neptune, i430NX)’ 칩셋에서부터 듀얼 프로세싱을 지원하기 시작한 바 있다. 듀얼 프로세싱을 지원하는 칩셋은 계보는 이후 430HX나 440LX/BX 등으로 이어져 내려왔으며, 서버를 위한 Xeon 제품군이 별도로 분리되면서는 서버 전용 칩셋도 생겨나서 현재의 7000 계열 칩셋으로 이어졌다. AMD 역시 AthlonMP에서 처음으로 듀얼 프로세싱 플랫폼을 선보였으며, 옵테론은 AthlonMP로 탐색하기 시작한 웍스테이션/서버 시장을 본격적으로 공략하여 그동안 인텔이 맹주로 군림하던 x86 기반 서버/웍스테이션 시장에서 강력한 도전장을 들이밀고 있다.
멀티 프로세싱은 다수의 프로세서를 사용하여 성능을 끌어올리는 것으로 이미 3D 작업이나 공학연산 등에서는 널리 사용되고 있다. 인텔과 AMD가 멀티프로세싱으로 눈을 돌린 것은 이 방법이 ‘프로세서의 클럭을 끌어올리지 않고 높은 성능을 달성하는’ 방법이기 때문이다.

인텔은 이미 오래전부터 듀얼 프로세싱을 지원해 왔다. 사진은 펜티엄 II/III에서 널리 사용된 인텔의 i440BX 칩셋.


그러나 서버/웍스테이션 시장에서는 이미 10여년전부터 사용되어 온 멀티프로세싱을 왜 데스크탑 시장에서는 이제서야 적용하려는 것일까? 바로 OS와 소프트웨어에서 답을 찾을 수 있다. 현재 일반 사용자용 데스크탑 시스템의 OS는 상당부분 WindowsXP로 옮겨왔지만 아직도 Windows98이 일부에서는 굳건히 자리를 지키고 있는 것을 어렵지않게 발견할 수 있다. 물론 MS에서도 지원을 꺼리는 상황이기에 곧 자취를 감출 것이지만 어쨋든 아직도 사용자가 있다는 것은 분명한 사실이다. 문제는 Windows 98이 다수의 프로세서를 인식할 수 없다는 데에 있다. Windows98의 형제뻘인 95, Me 역시 상황은 같다. 이들 운영체제는 SMP(Symmetric MultiProcessing)을 지원하지 못한다. 이를 지원하는 것은 WindowsNT 계열의 운영체제로, WindowsXP가 바로 여기에 해당한다.(WindowsXP의 내부 버전은 WindowsNT 5.1이다)

서버 등에서 멀티프로세싱이 사용된 것은 어제오늘 일이 아니다. 위 일러스트는 4개의 프로세서를 사용하는 시스템의 구조를 보여준다


그렇다면 WindowsXP가 등장한지도 벌써 수 년이 지난 상황은 어떻게 해석해야 할까? 이것은 소프트웨어의 부재가 그 이유가 된다. 멀티프로세싱은 어디에서 이득을 볼 수 있을까? 간단히 생각하면 ‘CPU가 여러개이므로 여러개의 소프트웨어를 동시에 돌리면 효과가 있다’라고 생각할 수 있으며, 이것은 어느정도 정확한 예측이다. 다수의 프로세서를 사용하는 시스템의 경우 수많은 프로그램들을 동시에 동작시키는 멀티태스킹에서 대단히 강력한 성능을 발휘한다. 그러나 보통 사용자가 그렇게 많은 프로그램들을 동시에 사용할 일이 있을까? 여기서 ‘사용한다’라는 것은 단순히 윈도우에 띄워놓는다는 것을 말하는 것이 아니라 해당 프로그램이 CPU를 매우 격렬하게 쓴다는 것을 의미하며, 보통 사용자들에게 있어서 이러한 일은 좀처럼 발생하지 않는다. 그래서 멀티프로세싱은 사실 일반 사용자에게 있어서는 ‘투자 비용만큼의 성능’을 제공해 주지 못한 것이 사실이다.

그러나 3DS MAX를 위시한 각종 3D 어플리케이션이라던가 연구소의 기상시뮬레이션 등의 공학연산에서는 멀티프로세싱이 매우 큰 위력을 발휘한다. 이러한 용도로 사용되는 소프트웨어는 ‘멀티스레딩(Multithreading)'을 지원하고 있기 때문이다.

3. 멀티스레딩

우선, 멀티태스킹(Multitasking)과 멀티스레딩(Multithreading)부터 정리해 보자. 멀티태스킹은 그 표현 그대로 여러개의 작업(task)을 동시에 수행하는 것을 말한다. Windows는 멀티태스킹이 가능한 운영체제인데, 여러개의 프로그램이 동시에 동작하면서 사용자는 그들 프로그램을 왔다갔다 하면서 사용한다. 그러나 여러개의 프로그램이 동시에 수행되는 것은 어디까지나 사용자의 입장이며, CPU의 입장에서는 언제나 한번에 하나씩의 명령어만을 수행하고 있다. CPU는 타임 슬라이싱(time slicing)이라는 기법을 사용하여 모든 프로그램에 약간씩의 시간을 할당하는 것이다. CPU의 수가 늘어나면 각 프로그램에 할당할 수 있는 시간도 늘어나니 전체적인 작업이 매우 부드러워질 수 있으므로 멀티태스킹은 멀티프로세서 환경에서 큰 이득을 얻는다. 인텔의 하이퍼스레딩 기술이 멀티태스킹에서 유리한 것 역시 가상의 프로세서라는 것이 ‘파이프라인의 짜투리를 이용한 가짜 CPU’이지만 어쨌든 이를 통해서 다른 작업에 시간을 나누어 줄 수 있기 때문이다.

멀티태스킹은 CPU가 여러개의 소프트웨어에 ‘시간’을 나눠주어서 여러개의 소프트웨어가 동시에 동작하는 ‘것 처럼 보이게 하는’ 기술이다.


멀티스레딩은 멀티태스킹과는 큰 차이점을 갖는다. 멀티태스킹이 ‘여러개의 소프트웨어를 동작시키는’ 것이라면 ‘멀티스레딩’은 ‘하나의 소프트웨어만을 동작시키는’ 것이다. 이를 위해서는 ‘스레드(thread)’와 ‘프로세스(process)’를 이해해야 한다.
프로세스는 프로그램 내에서 수행되는 프로그램의 단위이다. 작업관리자를 살펴보면 수많은 프로세스들이 실행되고 있는 것을 볼 수 있다.

수많은 프로세스가 실행되고 있다


소프트웨어가 구동되면, ‘실행파일’이 실행되고 각각의 실행파일은 해당 프로세스가 되어서 동작하기 시작한다. 그리고 각각의 프로세스는 필요에 따라 자(子) 프로세스를 생성하기도 한다. 그리고, 프로세스를 잘게 나누면 ‘스레드’로 이루어져 있다.
물을 컵에 따라서 마시는 과정을 생각해보자.

물을 따라 마시는 과정을 프로세스와 스레드에 비교한 것


누군가가 물을 마시고 싶다고 생각하고 그에 필요한 작업을 떠올렸는데, 그 전체적인 작업인 ‘물을 컵에 따라 마시는 것’이 바로 프로세스이다. 프로세스가 수행되기 위해서는 여러가지의 명령어를 실행해야 하는데 그 각각을 스레드라고 할 수 있다. 즉, 프로세스는 스레드의 집합으로 이루어져 있으며 수많은 스레드의 결과에 따라 프로세스의 결과가 만들어진다. 그런데, 모든 작업은 ‘동시에 이루어지지 않는다.’ 주전자를 드는 것과 물을 따르는 작업, 컵을 입으로 옮기는 작업과 물을 마시는 작업은 동시에 이루어질 수 없다. 이것은 일반적인 프로그램과 동일하다. 모든 스레드는 순차적으로 실행되며, 이것을 ‘싱글 스레딩’이라고 한다.
그런데, 스레드 사이에 순차적인 연관성이 없는 작업을 생각해 보자. 예를 들어서 햄과 야채가 들어간 토스트를 만들고자 할 때, 식빵을 꺼내서 굽는 것과 햄/야채를 꺼내서 다듬는 것 사이에는 큰 상관이 없다.

멀티스레딩을 지원하는 어플리케이션은 동시에 여러 스레드를 진행시킬 수 있다.


만약 이 작업을 한 사람이 한다면 뒷처리까지(마무리를 깔끔하게~) 총 10단계를 거쳐야 한다. 그런데, 두사람이 작업을 한다면 어떻게 될까? 한 사람은 식빵을 구우면서 다른 사람은 속재료를 준비할 수 있다. 또, 완성된 것을 먹는 동안 다른 사람은 뒷처리까지 할 수 있다. 그러면 전체 단계는 6단계로 줄어든다.
이것이 멀티스레딩이다.
앞서의 ‘컵에 물을 따라 마시는 작업’은 싱글스레딩만을 지원하는 어플리케이션이다. 혼자서도 할 수 있는 일이지만, 둘이서 한다고 빨라지거나 하지는 않는다. 한편, 토스트를 만들어 먹는 작업은 멀티스레딩을 지원한다. 혼자서 해도 할 수는 있으나 둘이서 하면 더욱 빠르게 일을 할 수 있다.
그리고, ‘혼자서 작업하는 것’이 ‘싱글 프로세싱(single processing)'이라면, 둘이서 작업하는 것은 ’듀얼 프로세싱(dual processing)‘이 된다. 여럿이서 일을 한다면? 물론 멀티프로세싱이라고 생각하면 정확하다.

요약하자면, 하나의 싱글스레딩 작업에서는 CPU가 하나이건 두개이건 별 상관이 없다. 일반적인 게임들에서 CPU가 아무리 많아도 별반 속도의 향상이 없는 것과 같은 이유이다. 그러나 멀티스레딩 작업에서는 CPU가 많아지면 많아질수록 득을 본다. 예를 들어서 3DS MAX나 Maya 등의 3D 어플리케이션에서 완성된 장면을 렌더링할 때 CPU의 개수가 많다면 그만큼 빨리 작업을 끝낼 수 있다. 서버 등에서도 마찬가지다. 서버에서 실행되는 소프트웨어는 ‘각각의 사용자들의 요청’에 대해서 별개의 스레드를 하나씩 생성해 나간다. 그래서 서버에서 돌아가는 소프트웨어는 엄청나게 많은 수의 스레드를 생성하고 이를 실행시킨다. 이 때문에 서버는 프로세서의 수가 많으면 많을수록 데이터의 처리가 쉬워지고 빨라지며 그래서 대기업의 서버는 수십~수백개에 달하는 CPU를 장착하는 경우도 볼 수 있다.

대형 서버는 수많은 CPU를 장착하는 경우도 많다


멀티태스킹은 어떨까? 앞서의 예와 비슷하게 생각해 보자면 멀티프로세싱은 ‘토스트를 만들면서 커피를 끓이고, 동시에 주방 청소까지 하는’ 상황이다. 우리가 흔히 보는 멀티태스킹은 ‘이러한 작업들을 잠깐잠깐 돌아가면서 하는’ 것이다. 그렇다면, 멀티태스킹 환경에서 멀티프로세싱이 적용될 경우도 쉽게 상상할 수 있다. 두명이서 작업한다면 혼자 할 때보다 훨씬 편할 것이며 네명이서 한다면 각자 일을 맡아서 편하고 빠르게 진행할 수 있을 것이다. 그래서 멀티태스킹도 멀티프로세싱의 덕을 매우 크게 본다.

4. 하이퍼스레딩

하이퍼스레딩에 대해서 잠깐 생각하고 넘어가자. 하이퍼스레딩은 ‘파이프라인 상의 짜투리를 이용한다’라는 것이 전제다. 앞서의 토스트를 생각해 보면, 식빵이 순식간에 구워지는 것이 아닌 이상, ‘식빵을 구울 때 남는 시간’에는 분명히 손이 놀고 있다. 그래서 식빵은 식빵을 후라이팬에 엎어놓고 구워질동안 다른 작업을 할 수 있다. 그렇게 되면 식빵을 다 굽고 다른 작업을 하는 것 보다는 더 빨리 토스트를 만들 수 있을 것이다. 대신 CPU는 매우 바쁘게 움직이며, 낭비되는 시간을 최소화해서 최대한의 성능을 발휘한다는 것이다.

토스트를 굽는 동안 햄과 야채를 준비하면 더 빨리 토스트를 만들 수 있다



5. 듀얼코어

듀얼코어 프로세서 자체는 생소한 것이 아니다. 이미 Sun에서 지난해 말 UltraSparc III 코어 2개를 하나의 칩에 집적시킨 UltraSparc IV를 출시한 바 있으며, IBM에서도 듀얼코어의 Power4 프로세서를 출시했다.

Sun사의 울트라스팍 IV 프로세서



IBM Power4 프로세서의 다이 사진


듀얼코어는 하나의 CPU 안에 2개의 코어를 집어넣은 것을 말한다. 마찬가지로 하나의 코어 안에 4개의 코어를 넣은 것은 쿼드 코어(Quad Core)라고 부를 수 있고, 이런 식으로 여러개의 코어를 하나의 CPU 안에 집적시킨 것을 멀티코어(Multicore) 프로세서라고 부른다.

멀티코어 프로세서는 다수의 코어를 하나의 패키지 안에 집적한 것이다


여러개의 코어를 하나의 프로세서에 집적한다는 것은 ‘하나의 프로세서가 차지할 공간에 2개의 프로세서 장착할 수 있다’는 것을 의미한다. 이렇게 장착된 프로세서는 시스템에서 ‘2개의 프로세서가 가지는 역할’을 수행한다. 또한, 일반적인 듀얼 프로세서 구성보다 더 높은 효율성을 보여줄 수 있다. 2개의 프로세서가 동일한 작업을 나누어 수행하기 위해서는 양쪽의 캐시의 내용이 동기화되는 ‘캐시 일치성(cache coherency)’가 필요한데, 기존의 멀티프로세서 구조에서는 바로 이러한 캐시 일치성 구현을 위해서 메모리 대역폭을 낭비했기 때문이다.(단, AMD의 옵테론 프로세서는 프로세서끼리 cHT(coherent HT) 버스로 연결되어 있어서 이러한 문제를 적극적으로 해소하고 있다) 듀얼코어 프로세서에 들어있는 다수의 코어는 서로 매우 가까이 위치하며 밀접하게 연계되어 있기 때문에 캐시일치성을 확보하기가 매우 쉬워지며 이 때문에 더욱 높은 성능을 달성할 수 있다.
AMD에서 시연한 바에 따르면 코어 클럭이 약 3등급(600MHz 정도) 낮은 듀얼코어 프로세서가 높은 클럭의 싱글코어 프로세서에 비해서 약 130~160% 높은 성능을 보여주었다고 한다. 동작클럭을 현행의 싱글코어 프로세서와 유사한 수준으로 높인다면 대단히 높은 성능을 제공해 줄 것이다.

AMD에서 공개한 듀얼코어 프로세서의 성능


또하나의 이득은 인프라스트럭쳐에 있다. 앞서 언급한 선스팍 프로세서와 파워 프로세서는 기존의 시스템에 있던 프로세서를 그대로 대체할 수 있다. 기존의 시스템에 달려 있던 선스팍 III 프로세서를 선스팍 IV 프로세서로 바꿔끼우기만 하면 된다는 것이다. 이것은 서버를 관리하는 시스템관리자들에게 있어서 대단히 행복한 일에 틀림없다.
듀얼 프로세싱을 지원하는 서버를 쿼드(quad) 프로세싱과 같은 성능을 가지는 고성능 서버로 교체하면서도 장비교체라던가 소프트웨어의 재설치/설정이라던가 하는 복잡한 작업을 전혀 필요로 하지 않는 것이다.
그리고, 소프트웨어의 가격에도 큰 영향을 끼친다. 초대형 서버 등에 사용되는 운영체제들은 그 운영체제에서 사용하고 있는 CPU의 개수에 따라 운영체제의 사용비용을 차등화하는 정책을 가지고 있는 경우가 있다. 즉 같은 운영체제라도 CPU를 32개 사용할 때 보다 CPU를 64개 사용할 때에 소프트웨어 가격이 비싸게 책정되는 것이다. 이럴 때 듀얼코어 프로세서는 기업의 재무담당자에게 매우 즐거운 소식을 전해주게 된다. 프로세서 자체 내에 2개의 코어가 내장되어 있어서 32개의 듀얼코어 프로세서를 사용할 경우 64개의 프로세서를 사용할 때와 같은 높은 성능을 보여주면서도, 실제 프로세서의 개수는 32개이기 때문에 운영체제의 사용비용은 32개의 프로세서를 사용할 때와 비슷한 수준으로 유지된다.

그런데 앞서 이야기한 각종 장점은 모두 서버에 치중되어 있다. 성능향상 역시 멀티스레딩 어플리케이션에서 매우 크게 나타난다. 멀티스레딩 어플리케이션이 사실 거의 없는 일반 사용자 환경에서 듀얼코어가 얼마나 높은 성능을 보여줄지는 다시한번 생각해 볼 필요가 있다.

3DS MAX 등의 어플리케이션은 멀티스레딩을 적극적으로 지원한다


물론 기존에도 고성능 프로세서를 필요로 했던 어플리케이션들에서는 멀티스레딩을 지원해고 있었다. 3DS Max, Maya 등의 3D 어플리케이션이 대표적인 사례이다. 그러나 멀티스레딩/멀티프로세싱은 다른 작업에서는 큰 효과를 보지 못했고, CPU를 2개 이상 사용하는 듀얼 프로세서 시스템의 사용자가 극히 일부로 제한되었던 것도 바로 이러한 이유에서이다. 물론 인텔이 하이퍼스레딩을 펜티엄4가 아닌 Xeon에 먼저 적용시킨 것도 같은 맥락이다.
지금 당장은 멀티프로세싱, 듀얼코어 등을 데스크탑 환경에서 써먹을 곳이 딱히 눈에 띄지 않는다. 물론 멀티프로세싱이 멀티태스킹에서도 큰 효과를 발휘하기 때문에 동영상 편집을 하면서 압축을 한다거나 영화를 본다거나 MP3 인코딩을 한다거나 하는 복잡다단한 작업에서 분명한 효과를 보여줄 것이다. 그러나 그렇게 시스템에 이것저것을 항상 동시에 돌려주자면 사용자가 더 피곤할지도 모른다.

그러나 인텔의 하이퍼스레딩이 듀얼코어에 빛을 주고 있다. 인텔 하이퍼스레딩은 ‘가상’이기는 하지만 어쨋건 듀얼 프로세싱을 지원해야지만 제대로 사용할 수 있는 기술이며, 따라서 사실상 시장에서 가장 널리 사용되는 프로세서인 펜티엄4 프로세서(서버 시장을 포함하면 그 비율은 더욱 커진다)에 탑재되어 있는 하이퍼스레딩이라는 기능을 소프트웨어 제조사들이 그냥 버려둘 리는 없다.
실제로, 일부 동영상 편집/인코딩 소프트웨어에서 멀티스레딩을 지원하며, 포토샵 역시 최신 버전에서 멀티스레딩을 통해 필터링의 속도를 더욱 강화하였다.(포토샵은 SSE 역시 가장 먼저 적극적으로 지원해 온 어플리케이션으로 멀티스레딩 지원 역시 인텔의 하이퍼스레딩과 무관하지 않아보인다)
게임 역시 듀얼프로세싱을 지원하는 쪽으로 움직이고 있다.

둠 III는 SMP를 지원한다


Doom III가 대표적인 사례이다. 이미 Quake III에서도 SMP에 대한 지원을 은근히 끼워넣었던 존 카멕인 만큼 퀘이크 III와는 비교도 되지 않는 고사양인 Doom III에 포함시키는 것이 당연할 것이다. 아직까지 큰 효과를 보고 있지 못하는 것 같지만 하이퍼스레딩과 멀티프로세싱을 본격적으로 지원하도록 엔진이 개선된다면 분명한 효과를 볼 것이다. 몇몇 고사양 게임들에서 멀티프로세싱 지원과 관련된 이야기가 나오고 있으므로, 내년 중반 경이면 멀티프로세싱을 지원하는 게임을 볼 수 있을 지도 모른다.

6. AMD와 인텔의 듀얼코어 프로세서

인텔과 AMD 중 듀얼 코어에 더욱 적극적으로 나서고 있는 쪽은 AMD이다. 다양한 어플리케이션들이 멀티스레딩을 지원하게 되면 인텔의 하이퍼스레딩이 주는 성능향상이 두드러질 것이기에 이에 대응하기 위한 서둘러서 듀얼코어를 도입하려는 것으로 보인다.
흥미로운 것은 AMD가 옵테론 및 애슬론64를 개발할 때 부터 듀얼코어를 고려해 두고 설계했다는 점이다. 다음의 다이어그램은 AMD에서 이야기하는 현재의 옵테론 프로세서 구조인데, 코어가 들어갈 자리는 2개이지만 1개만 장착해 놓은 것을 보여준다.

옵테론의 설계는 듀얼코어를 예상한 것이었다


그리고, 이러한 주장은 옵테론 프로세서의 다이 사진을 보면 더욱 쉽게 이해할 수 있다. 다음의 사진을 보자.

옵테론 프로세서의 다이와 각 부분에 대한 설명


이 사진에서 매우 독특하다고 생각되는 것은 바로 하이퍼트랜스포트 컨트롤러와 메모리 컨트롤러가 코어의 나머지 부분을 둘러싸듯이 위치하고 있다는 것, 그리고 코어가 가로로 길게 설계되었다는 것이다. 앞서의 기사에서 보았던 인텔 프로세서의 코어 사진에서 알 수 있듯이 인텔 프로세서의 코어는 정사각형에 가깝다. 이는 프로세서 내부의 배선거리를 최소화하기 위함이다. 그러나 옵테론의 코어는 가로로 길게 생겼고 게다가 하이퍼트랜스포트/메모리 컨트롤러를 제외하면 가로의 길이가 세로보다 거의 두배에 달하는 길이이다.
이러한 형태는 바로 듀얼코어를 배려한 구조로써, 주변을 둘러싼 메모리 컨트롤러와 하이퍼트랜스포트 컨트롤러는 2개의 코어가 이들을 공유하도록, 그리고 가로로 긴 형태는 2개의 코어를 합쳤을 때 정사각형을 이루도록 한 것이다. 그 결과 다음과 같은 코어가 탄생했다.

AMD의 듀얼코어 프로세서 다이 사진


듀얼코어에 기반한 새로운 프로세서의 코드명은 2way, 4way, 8way용이 각각 덴마크, 이탈리, 이집트가 될 것이라고 한다. AMD는 2개에서 8개까지의 프로세서를 사용하는 시스템을 듀얼코어 프로세서를 투입할 대상으로 보고 있어서 위와 같은 구성을 가진다. 이들 프로세서의 제조는 90nm 공정에서 이루어지며, 처음에는 현재 옵테론을 생산하고 있는 Fab30에서 생산하다가 이후 수요량이 커지면 지금 열심히 공사가 진행중인 Fab36이 주 생산지가 될 것으로 보인다.

현재 공사중인 Fab36의 모습. 2005년 중반부터 경 제조설비를 완비하고 2006년 초 경 제품 출하를 시작할 예정이다


많은 사람들이 걱정하는 것은 소비전력이다. 아무리 클럭이 낮아도 트랜지스터의 수가 2배로 증가하면 소비전력과 발열량도 2배로 증가하게 되는데, AMD는 이에 대한 대책도 착실히 준비하고 있다. AMD의 듀얼코어 프로세서에는 총 2억 5백만개의 트랜지스터가 탑재된다. 현재의 0.13μm 공정에 기반한 옵테론 프로세서가 1억 590만개의 트랜지스터를 사용하고 있으니, 거의 2배로 늘어났다. 그러나 공정이 90nm로 미세화되면서 코어의 전체 면적은 현행의 0.13μm 기반 옵테론과 비슷한 수준으로 유지된다.
중요한 것은 소비전력인데, 현행 옵테론보다 약간 높은 수준인 95W 선으로 그친다고 한다. 이정도면 현재의 서멀 솔루션을 그대로 적용시킬 수 있다. 게다가 90nm 공정으로 만들어지는 옵테론 프로세서를 받아들일 수 있는 시스템이라면 듀얼코어 프로세서 역시 그대로 사용할 수 있다.(하드웨어적인 변경은 필요없고 메인보드의 바이오스만 업그레이드해 주면 된다고 한다) 그래서 지금 사용되는 서버들을 듀얼코어 프로세서가 출시된 이후 그대로 업그레이드할 수 있다는 이야기이다. 기존의 경우 고성능 프로세서를 장착하기 위해서는 시스템을 바꾸지 않는다고 하더라도 높은 소비전력과 방열로 인해서 전력설비와 방열설비를 교체해야 했는데 그러한 모든 조치가 필요없다는 것이다.
2004년 11월 이루어진 AMD 애널리스트 데이에서 발표된 내용에 따르면 우선 듀얼코어 프로세서는 2~8way 서버 시장만을 그 대상으로 하고 있다.
그러나 앞서 이야기한대로 데스크탑용 어플리케이션(게임을 포함하여)이 하이퍼스레딩이나 멀티프로세싱을 지원하는 방향으로 움직이고 있는 상황에서 AMD가 이 프로세서를 데스크탑에 투입하지 말라는 법은 없다. AMD는 데스크탑용으로는 코드명 톨레도(Toledo)를 준비하고 있으며 AMD64 기반 프로세서가 서버에 먼저 적용되었듯이, 그리고 하이퍼스레딩이 제온에 먼저 적용되었듯이, 듀얼코어의 옵테론 프로세서가 출시된 이후 시장에 투입될 것으로 보인다.

인텔의 경우 AMD보다는 소극적으로 대응하고 있다. 기존의 서버 시장을 꽉 틀어쥐고 있다는 자신감일 수도 있고 하이퍼스레딩이라는 대안을 가지고 있다는 것 때문일 수도 있다. 그러나 인텔이 듀얼코어를 적용하기 위해서 고려하고 있는 범위는 AMD보다 훨씬 넓다. 인텔은 처음부터 데스크탑과 모바일용의 프로세서를 모두 고려하고 있는데, 내년 경 서버 시장에 듀얼코어의 Xeon을 투입한 이후 데스크탑용으로는 코드명 스미스필드를, 모바일용으로는 코드명 ‘요나’를 투입할 계획이라고 한다.
인텔은 서버/데스크탑용의 프로세서에 듀얼코어와 함께 64bit 기능인 EM64T, 그리고 하이퍼스레딩을 적용시켜서 멀티프로세싱/멀티스레딩 성능을 극대화하여 AMD에 대응할 것으로 보인다.
by Yggdrasill | 2004/12/30 12:05 | 하드웨어 | 트랙백 | 덧글(11)
트랙백 주소 : http://muphy.egloos.com/tb/855350
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Commented by iris at 2004/12/30 12:43
Windows XP의 내부 버전은 5.1이 아닐까요? Windows 2000이 5.0이죠.
Commented by Yggdrasill at 2004/12/30 13:02
▷ iris | 앗. 그렇군. 이런 실수를.. 땡큐. :)
Commented by decathlon at 2004/12/30 13:57
ㅋㅋ 고친거로군.ㅡㅡa
Commented by decathlon at 2004/12/30 13:57
하여간..amd 화팅이다.ㅡㅡa 듀얼나오면 바로 지른다.-_-;
Commented by 로리 at 2004/12/30 15:24
별 쓸데없는 딴지입니다만..

====
Windows98의 형제뻘인 95, Me 역시 상황은 같다. 이들 프로세서는 SMP(Symmetric MultiProcessing)을 지원하지 못한다
====

보다는 멀티 프로세서를 지원하지 못한다로 고쳐야 할 것이 아닌가요? SMP는 제온이나 펜티엄3이 동작하는 방식이고 AMD는 SMP가 아니라 P2였고, 애슬론 64는 NUMA이니까요^^

그나저나 저거 나오면 진짜 지르고 싶은 마음만이 간절... 문제는 작업 효율의 향상이... 있을리가 없군요.(적어도 제게는^^;;)
Commented by Yggdrasill at 2004/12/30 15:31
▷ decathlon | 훗.. 세상이 뭐.. -ㅂ-
▷ 로리 | 모두 SMP입니다. x86 계열에서 비대칭성 다중프로세서 연산을 한다는 것은 들어보지 못했습니다.
Commented by 로리 at 2004/12/30 15:37
헉, 제가 잘 못알고 있었군요^^;; 이런...(먼산)
Commented by Yggdrasill at 2004/12/30 15:46
▷ 로리 | 헉.. 이런 얼어죽을 오타가.. 로리님 리플 보다가 알았네요. '이들 운영체제'인데.. 캬옥.....
Commented by decathlon at 2004/12/30 17:10
거바...또틀리지.ㅋㅋㅋㅋㅋㅋㅋ
Commented by 쉬름 at 2004/12/30 18:07
AMD만세로군요...
Commented by 이승한 at 2005/01/04 11:58
듀얼코어가 활성화된 이후로는 어플리케이션에 대한 라이센스가 바뀔듯합니다.

:         :

:

비공개 덧글

<< 이전 다음 >>