이번 부터는 본격적으로 제가 공부(연구)하는 분야에 대한 이야기를 하려고 합니다.
십수년 전만 해도 학계에서의 아키텍처 관련 연구가 현장(실제 반도체 회사) 보다 10~20년 앞선다고 이야기했다고 합니다. 그런데 요즘에는 상황이 많이 달라졌습니다. 학계에서 심각하게 생각하지 않았거나 학술적으로 별로 재미없거나 흥미없는 문제들이 아주 큰 골치거리로 등장하기 시작하면서부터 상황이 많이 바뀌게 되었죠. 새로운 CPU 제품을 새로 개발하고 상품화하여서 시장에 나오기까지는 오랜 시일이 걸리고 막대한 연구비가 들어가게 됩니다. 그런데 수년전 인텔에서는 새로운 제품라인을 상품화 직전에 취소하고 말아버리는 사태가 발생하였습니다. 바로 CPU에서의 발열 문제를 해결하지 못한 것 때문이었습니다. 지난 번에 언급한 것 처럼 “열” 문제는 상당히 심각해져서, 이 문제가 현장의 방향을 결정하게 되는 중요한 기준이 되린 것 입니다.
이러한 상황에서 두가지 해결책이 제시 되었습니다. 하나는 Simultaneous multi-threading이고 다른 하나는 Chip multi processor였습니다. 결론부터 적자면 후자가 대세를 이루게 되었습니다. (이 부분은 조금 자세한 설명이 필요하니 다음 번에 언급하도록 하겠습니다. ) Chip multi processor를 쉽게 표현하자면 칩 하나에 두개 이상의 CPU를 넣는 것입니다. “Core Duo”라는 이름의 CPU를 들오보신 분들이 있으실 텐데요, 이게 바로 CPU가 두개 들어가 있는 칩입니다. (요즘은 Quad Core가 대세지요? 네, CPU가 4개 들어있습니다.)
이쯤 오면, 이렇게 CPU를 여러개 넣는 것이 “열” 문제랑 어떤 관련이 있는지, 여러개의 CPU를 많이 넣으면 컴퓨터의 성능은 계속 좋아지는 것일 것 같은데 무슨 연구의 여지가 있는지 궁금해지실 법합니다. 아키텍처에서 많이 비유를 하는 세탁기를 가지고 설명해 보겠습니다. 우리가 가진 현재의 문제는 하나의 덩치가 큰 세탁기가 전기를 너무 많이 먹는다는 것이었습니다. (전력 소비량이 열에 비례한다는 것을 소리소문없이 가정하였습니다…) 그래서 더 큰 세탁기를 만드려다 열 문제를 해결하지 못해서 새로운 제품 계획이 표류중인 상황인 것입니다. 그런데 이 상황에서 재미있는 상상을 해봅니다. 이 큰 세탁기를 만들 수 있는 재료로, 조금 작은, 그래서 전력 소비량이 작은, 세탁기를 두 대를 만드는 것입니다. 이 ‘조금’ 작은 세탁기는 덩치가 큰 세탁기에 비해서 전력은 반 밖에 소비하지 않는데, 세탁물은 70%를 소화할 수 있는 것입니다. 그러면 원래의 큰 세탁기가 사용하는 전력으로 140%의 세탁물을 처리할 수 있게 된 것입니다. 흥미가 땡기시나요? 실제로 수식을 사용하고, 현재 상황에 대입해 보자면요, 반도체 칩 하나에 넣을 수 있는 게이트의 수는 2년에 2배가 된다고 하였습니다. 그리고 소비 전력은 칩에 공급하는 전압의 제곱에 비례하구요. 똑같은 CPU에 원래 공급 전압의 70%를 공급하게 되면 소비전력은 49%, 대략 절반 가량으로 줄어듭니다. CPU에 동작 속도는 공급 전압에 비례한다고 보시면 되기 때문에, 두개의 저전압이 공급된 CPU는 원래의 CPU에 비해서 같은 전력을 소비하면서도 140%의 일을 할 수 있는 것이지요. 그러면 왜 굳이 “작은” 세탁기에 비유했는지 궁금하실텐데요, 이부분도 조금 복잡한 개념이 들어가기 때문에 다음에 설명하도록 하겠습니다.
자, 모든게 행복해 보이는 것 같지만, 제가 아직 언급하지 않고 넘어가서 거짓말처럼 보이는 부분이 사실 있습니다 (세상엔 공짜가 없는 법이죠). 과연 두개의 CPU가 함께 있을 때, 진짜 140%의 일을 처리할 수 있냐는 것입니다. 두개 이상의 CPU를 함께 사용하는 것은 병렬처리, 병렬 연산, parallel computing, 뭐 기타 등등으로 표현할 수 있는 것입니다. 사실 지금까지 장황하게 설명한 것은 이 parallel computing이 필수불가결한 선택이 되어버리 현 상황을 설명하기 위해서 였습니다.
자 다음부터 본격적으로 parallel computing의 세계에 대한 이야기를 올려보도록 하겠습니다.