'듀얼=두배'에 대해서 얘기하려고 합니다. 처음 들은건 고2때쯤 한참 P-100을 사용할때고 셀러론 프로세서가 한참 인기를 끌때 많이 나오던 얘기로 기억합니다. 듀얼프로세서 시스템.....

당시 듀얼을 지원하는 메인 보드도 흔치 않았고 상당히 실험적으로만(?) 나오던 얘기가 이제는 상당히 많은 사람의 입에서도 나오는것을 보게 됩니다.
당시도 그렇고 VIA보드가 듀얼시스템용으로 많이 사용되는데.. 요즘이나 많지 얼마전만해도(LX에 이어 BX가 주축일때) 듀얼시스템용 메인보드는 얼마 없었던걸로 기억합니다.




암튼 이런 CPU를 두개 달수 있는 메인보드에 두개를 달아서 쓰는게 듀얼프로세서 시스템인데.... 일단 결론부터 얘기하면 듀얼 시스템은 대부분의 사람에게는 필요치 않은 시스템이라는것입니다.
그리고 듀얼시스템이 제대로 돌아가는(두배의 성능으로)경우는 한정되어 있다는 것입니다.

먼저 생각해봅시다.
CPU가 두개면 두배의 성능을 낸다는 얘기는 뭘까요?
예...CPU두개가 동시에 작동해서 일을 처리하기 때문이겠죠. 그럼 당연히 두배로 빠르겠죠....하지만.... 만약 CPU두개가 동시에 작동을 안한다면 어떨까요?
두배의 성능은 안나오겠죠?

듀얼시스템이 언제나 두배의 성능을 내지는 못한다는 말은 이런 논리를 근거로 한것입니다.
이해를 돕기 위해 일단 Thread라는 것에 대해서 설명을 하겠습니다. Thread라는것은 운영체제가 나눌수 있는 가장 작은 독립코드단위를 말합니다. 쉽게 말하면 컴퓨터가 하는일의 가장 최소단위라고 할수있죠.

예를 들어 컴에게 시킨일이 '슈퍼가서 과자사와라'라면...
그 일을 하기 위해서는 어떻게 해야할까요? 옷도 입고, 신발도 신고, 나가고, 슈퍼가고, 과자를 집어서, 주인에게 돈내고,돌아오고,....등의 일을 해야하죠?
고로 '슈퍼가서 과자사와라'는 결국 한가지 일을 시킨게아니죠. 컴에서 Process라는것이 바로 '슈퍼가서 과자사와라'입니다.

이런 Process를 여러개 하는게 윈도95의 특징이라는 멀티태스킹(Multi Tasking)이고요....
그리고 '슈퍼가서 과자사오기'를 하기 위해 해야 하는.. 옷입고,신발신고...등 각각의 작업이 바로 Thread입니다.
이제 대강 Thread의 개념이 잡히시죠?

그런데 대부분의 게임이나 우리가 자주 사용하는 워드프로세서등의 프로그램들에서 하나의 CPU는 하나의 Thread만 한번에 진행할수 있습니다. 그런데 듀얼에서 처리를 하면?
CPU하나는놀게 됩니다. 왜냐하면 그 프로그램은 '한번에 하나의 Thread를 수행한다'로 되어있으니까요.
두개의 CPU가 동시에 수행을 하면 한번에 두개의 Thread가 실행되잖아요....그러니까 두개가 동시에 수행은 안되고 하나의 CPU가 하나의 Thread를 수행하고 하나는 노는거죠.

이걸 더 쉽게 말씀드리자면 '대부분의 게임이나 워드프로세서같은 우리가 사용하는 무지 많은 소프트웨어가 듀얼프로세서로 빨리 처리하는 능력을 지원안한다.'가 되네요....
그러면 듀얼이 두배의 성능이라는 소리는 뭐냐?
한번에 하나의 Thread만 받아들이는 소프트웨어가 있는가하면 한번에 다수의 Thread를 받아들이는 소프트웨어도 있죠.
3D MAX같은 프로그램이 그것입니다. 그런 소프트웨어에서 듀얼이 힘을 발휘하는겁니다.

예를 들어 듀얼 시스템에서
1,2,3,4,5,6,7,8,9,10이라는 Thread를 처리해야되는데
이 Thread들이 처리되려고 줄을 서는게.....
MS워드의 경우에는
CPU 1 : 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
CPU 2 :

요렇게 서면
3D MAX의 경우에는
CPU 1 : 1, 3, 5, 7, 9,
CPU 2 : 2, 4, 6, 8, 10

요렇게 선다는 얘기죠....그러면 듀얼시스템은 MS워드에서는 싱글시스템이랑 같은 처리시간이 나오지만 3D MAX에서는 두배로 빠른 시간이 나온다는 얘기죠..
이렇게 듀얼시스템에서 빛을 낼수 있는 프로그램은 많은 3D 그래픽 프로그램이 가장 대표적입니다.
그리고 그외의 프로그램은 거의 그렇지 못하죠... 그래서 듀얼시스템은 3D그래픽을 다루시는 분들이 많이 쓰시죠.
그리고 저렇게 한번에 여러개의 Thread를 작업할수 있는 프로그램을 쓴다고 해도 꼭 두배의 성능이 나오지는 않습니다. 프로그램에 따라서 메모리에 많이 의존하는것도 있으니까요.
3D Max처럼 Cpu의존도가 높은 프로그램이면 거의 두배가까이 속도가 빨라질지도 모르지만 메모리에 의존도가 높다면 그만큼 빠르지는 않겠죠..10%,20% 속도상향같은....
이제 대강아시겠어요?

CPU두개 쓴다고 반드시 2배의 속도가 나오지는않는다는걸..


Posted by BAGE