'멀티코어'에 해당되는 글 1건

  1. 2008.12.29 [신기술] 듀얼 & 멀티 코어 CPU의 A부터 Z까지 (1) by coolpeace


PC 세상에 CPU가 두 개 들어 있는 ‘듀얼 코어’ 프로세서가 선 보인지 이제 1년 반이 조금 지났습니다. 눈 깜짝할 사이에 세상이 바뀌는 빠른 변화 앞에 짧다면 짧은 이 기간 동안 듀얼 코어 CPU는 우리나라를 비롯한 전 세계를 휘어 잡았습니다. 싱글 코어 CPU의 신제품 소식은 이제 가뭄에 콩 나듯이 들리지만 듀얼 코어를 비롯한 멀티 코어 CPU는 꾸준히 새로운 모델이 선보이고 있습니다.

이런 듀얼 코어 열풍을 바라보는 사람들의 시선은 기대와 걱정이 섞여 있습니다. 이미 듀얼 코어 CPU를 쓰고 있는 사람들은 그 성능을 직접 몸으로 느끼고 있겠지만, 듀얼 코어 CPU를 사야 할지 말아야 할지 감을 잡지 못하고 있는 사람들은 ‘듀얼 코어니까 뭔가 더 빠르겠지’하는 기대와 ‘그냥 CPU 회사의 마케팅이 아닌가’하는 불안을 머리와 마음속에 담고 있을 것입니다.

도대체 왜 사람들은 듀얼 코어 CPU에 열광하는 것일까요? 도대체 듀얼 코어, 멀티 코어 CPU가 무엇이 좋길래, 앞으로 무엇을 기대할 수 있길래 듀얼 코어를 그렇게 외쳐대며 사람들을 유혹하는 것일까요? 아직 듀얼 코어나 멀티 코어 CPU를 직접 느껴보지 못한 분들을 위해 멀티 코어 CPU가 도대체 무엇이며 어떻게 흘러가는지, 앞으로 어떤 새로운 기술이 나올지 멀티 코어 CPU의 모든 것을 정리해 보았습니다.

멀티 코어 CPU의 시작, 듀얼 CPU

PC용 x86 프로세서 가운데 멀티 코어 설계를 처음 쓰기 시작한 CPU는 인텔 펜티엄 D와 AMD 애슬론 64 X2지만, 그 뿌리는 메인보드 하나에 두 개의 CPU를 꽂은 ‘듀얼 CPU’부터 시작합니다. 메인보드에 똑 같은 CPU 두 개를 꽂아 성능을 높인 듀얼 CPU는 펜티엄 시절부터 워크스테이션, 서버 시장의 주류로서 자리잡았습니다.

듀얼/쿼드 코어도 알고보면 듀얼/쿼드 CPU를 기판 하나에 올린 것에 불과하다

사실 듀얼 CPU를 비롯한 멀티프로세싱(MP) 기술은 PC 또는 x86 CPU만의 것은 아닙니다. 멀티프로세싱은 크게 ‘대칭형 멀티프로세싱(Symmetric Multiprocessing, SMP)’와 ‘비대칭형 멀티프로세싱(Asymmetric Multiprocessing, ASMP)’로 나뉩니다. SMP는 하나의 작업을 스레드 형태로 나누고, 그것을 운영체제가 종류와 속도가 같은 여러 CPU로 나눠 보내 처리하는 형식을, ASMP는 운영체제가 아닌 하나의 프로세서(마스터 프로세서)가 종류 및 속도가 다른 여러 CPU를 직접 제어하며 작업을 나눠줍니다. ASMP는 프로세서의 속도가 달라도 멀티프로세싱을 할 수 있는 장점이 있지만 운영체제 개발이 어렵고 신뢰성이 SMP보다 낮은 단점이 있습니다. 그래서 현재 x86 프로세서를 비롯한 대부분의 프로세서와 운영체제는 SMP 방식 멀티프로세싱을 기본으로 합니다.

지금의 듀얼 또는 쿼드 코어 CPU는 CPU 칩 하나에 CPU의 핵심인 코어를 두 개 또는 네 개를 넣었지만 그 구조는 사실상 듀얼 또는 쿼드 CPU를 쓰던 서버 시절의 SMP 구조를 벗어나지 않습니다. CPU 기판만 하나일 뿐 그 속은 두 개의 CPU를 넣은 것과 다름 없는 ‘듀얼 다이’ 구조의 펜티엄 D나 켄츠필드 코어 코어2 익스트림/쿼드 CPU는 그 구조마저도 듀얼/쿼드 CPU와 다를 것이 없습니다. 듀얼 코어를 비롯한 멀티 코어 CPU의 매력과 한계를 이해하려면 멀티 코어가 전혀 새로운 것이 아닌 ‘멀티 CPU를 CPU 기판 하나로 옮겨 저렴하게 만든 것’임을 알고 있어야 합니다.

멀티 코어 CPU가 걸어온 길

위에서 설명한 대로 메인보드에 CPU 여러 개를 올리는 멀티 CPU 기술은 십 수년 전부터 서버에서 널리 쓰이는 기술입니다. 하지만 그것을 데스크탑과 노트북 PC로 옮길 생각을 한 것은 그리 오래된 일은 아닙니다. 선마이크로시스템즈, IBM을 비롯한 서버 및 수퍼컴퓨터 CPU 제조사들은 같은 크기에 더 강한 서버와 수퍼컴퓨터를 만들고자 듀얼 코어 기술을 가장 먼저 받아들였고, AMD와 인텔을 비롯한 PC용 CPU 회사 또한 비슷한 시기에 듀얼 코어 CPU 개발에 대한 아이디어를 정리하고 조금씩 계획을 세우기 시작했습니다.

AMD 애슬론 64 X2의 다이 사진. K8 아키텍처는 처음부터 듀얼 코어를 생각하고 만든 기술이다

두 CPU 제조사 가운데 먼저 듀얼 코어 CPU에 대한 아이디어를 조금씩 다듬기 시작한 곳은 AMD입니다. AMD는 x86 최초의 64비트 기술 CPU 겸 8세대 프로세서인 애슬론 64를 개발할 때부터 하나의 다이(Die, CPU의 회로를 담은 칩) 안에 두 개의 코어를 담을 수 있도록 여유를 둔 CPU 설계를 썼습니다. 이와 달리 인텔은 작동 속도를 높이는 데 한계를 느끼기 시작한 펜티엄 4의 넷버스트 아키텍처 대신 새로운 기술을 쓴 CPU부터 듀얼 코어를 쓰도록 계획을 잡았습니다. 인텔은 AMD 애슬론 64가 듀얼 코어를 생각하고 만든 CPU 기술임을 알고 있었지만 애슬론 64의 성능을 과소평가하고, 펜티엄 4가 한 두 세대 더 경쟁력을 지킬 수 있다고 믿었기에 ‘눈에 보이지 않는’ 듀얼 코어의 가능성을 무시하고 스스로 정한 스케줄에 맞게 CPU를 만들었습니다.

그렇지만 인텔이 생각했던 ‘애슬론 64의 성능’과 ‘펜티엄 4의 경쟁력’은 2003년 하반기와 2004년 초에 철저히 무너지고 말았습니다. 2003년 9월에 선보인 애슬론 64는 비록 64비트 기술을 알리는 데 실패했지만 새로운 실수 연산 유닛과 내장 메모리 컨트롤러의 힘을 내세우며 펜티엄 4를 크게 뛰어 넘는 성능을 자랑했습니다. 이와 달리 2004년 2월에 선보인 ‘프레스콧 코어’ 펜티엄 4는 종전 노스우드 코어 펜티엄 4보다 두 배 많은 2차 캐시 메모리를 넣고 새로운 90nm 공정을 선보였지만, 오히려 노스우드 코어 CPU보다 낮은 성능과 높은 전력 소비량 때문에 ‘프레스핫’이라는 비아냥을 사고 말았습니다. 프레스콧 코어 펜티엄 4 CPU 안에는 인텔 VT, EM64T 등 미래의 기술의 씨앗이 들어 있었지만 실제로 쓰지 않는 이들 회로는 전력 소비량만 높이는 거추장스러운 것 이상은 되지 못했습니다.

프레스콧 코어 펜티엄 4의 높은 전력 소비량 문제는 하나의 코어가 실패한 것을 넘어 속도를 끌어 올리는 넷버스트 아키텍처의 한계를 드러내며 인텔을 당황하게 만들었습니다. 단순히 공정 기술을 바꾸고 한두 가지 기술을 더하는 것 만으로는 펜티엄 4의 경쟁력을 지킬 수 없다는 것을 깨달은 인텔은 급히 프레스콧 코어에 SSE3 추가 명령, 인텔 VT, 업그레이드 하이퍼스레딩 기술을 넣은 차세대 펜티엄 4인 코드명 ‘테자스’의 개발을 갑자기 포기하는 초 강수를 골랐습니다. 대신 AMD가 개발하고 있던 애슬론 64 기반 듀얼 코어 CPU와 경쟁할 수 있는 듀얼 코어 CPU 개발을 서두르기로 정책을 고쳤습니다.

세계 최초의 듀얼 코어 x86 CPU, 펜티엄 D는 궁여지책의 산물(?)이다

하지만 새로운 아키텍처를 쓴 듀얼 코어 CPU는 AMD가 듀얼 코어 CPU를 내놓을 2005년 5월까지 개발과 생산을 마칠 수 없었기에 인텔은 어쩔 수 없이 프레스콧 코어를 바탕으로 한 듀얼 코어 CPU 개발에 뛰어듭니다. 인텔이 고른 길은 프레스콧 코어 펜티엄 4 CPU 두 개를 기판 하나에 올려둔 너무나 단순한(?) 것이었고, 그 결과 인텔은 CPU 로드맵에도 없던 듀얼 코어 CPU ‘스미스필드’의 개발을 선언한지 세 달도 되기 전에 내놓는 ‘미션 임파서블’을 해냈습니다. 그것이 세계 최초의 x86 방식 듀얼 코어 CPU, 펜티엄 D입니다. 세계 최초의 PC용 듀얼 코어 CPU는 처음부터 듀얼 코어를 꿈꾸며 공들여 만든 CPU가 아닌, 궁여지책으로 계획도 없이 단 세 달 만에 만들어낸 것이었습니다.

위 사진은 싱글 다이와 듀얼 다이 CPU의 모습을 비교한 것이다

사실상 CPU 두 개를 그대로 CPU 기판 하나에 올린 ‘듀얼 다이’ 방식 듀얼 코어 CPU인 펜티엄 D는 그 방식은 그리 새롭지 않았지만 세계 최초의 듀얼 코어 CPU의 이름을 거머쥐는 데 성공했습니다. 그렇지만 처음에 펜티엄 D는 그리 많은 인기를 끌지 못했는데 펜티엄 4를 뛰어 넘는 놀라운(?) 발열량과 가까이 하기엔 너무나 먼(?) 값이 걸림돌이 되었습니다. 그 사이에 AMD가 내놓은 ‘싱글 다이’ 방식 듀얼 코어 프로세서인 애슬론 64 X2는 펜티엄 D와 마찬가지로 비싼 값과 단 하나의 공장에서 만들어낼 수 밖에 없어 수요를 맞추지 못하는 어려움 속에서도 높은 성능을 무기로 조금씩 사람들의 마음을 열었습니다. 펜티엄 D를 내놓고도 여전히 펜티엄 4 판매에 열을 올리던 인텔은 조금씩이나마 시장 점유율을 높여가는 AMD의 움직임을 바라보면서 2005년을 흘려 보냅니다.

인텔이 듀얼 코어 CPU 시장에 송곳니를 드러내며 달려들기 시작한 것은 2006년의 이야기입니다. 그 해 2월에 내놓은 펜티엄 D 805는 ‘펜티엄 4보다 싼 듀얼 코어 CPU’를 내세우며 시장에 폭풍을 불러왔습니다. 시스템 버스 속도를 533MHz로 낮추고 작동 속도 또한 2.66GHz에 그친 펜티엄 D 805는 3GHz 속도를 내는 펜티엄 4 531, 630보다 훨씬 저렴해 듀얼 코어에 관심을 가졌지만 비싼 값에 놀라던 사람들의 마음을 사로잡았습니다. 몇 달 뒤에는 30~40만원대에 팔리던 펜티엄 D 930, 940을 비롯한 핵심 모델들의 값을 하루 아침에 절반 가까이 내리는 ‘혁명’을 일으켜 PC 소비자들을 놀라게 했습니다. 인텔의 가격 공세에 AMD 듀얼 코어 CPU의 성장세는 한 풀 꺾였지만, 여전히 높은 성능을 무기로 실속을 챙기는 사용자들의 관심을 끄는 데 성공했습니다. 2006년 상반기와 여름은 그렇게 인텔과 AMD의 뜨거운 전쟁으로서 듀얼 코어가 널리 퍼지는 시기가 되었습니다.

 
인텔이 진짜 만들고 싶었던 듀얼 코어 CPU, 코어2 시리즈는 시장에서 대박 열풍을 일으켰다

인텔이 CPU 가격을 사람들이 당황할 정도로 내리면서까지 듀얼 코어의 시장 점유율을 높이려 애쓴 이유는 따로 있었습니다. 바로 진정한 인텔의 듀얼 코어 CPU ‘코어2 듀오’ 때문입니다. 펜티엄 III와 펜티엄 M을 거치며 다듬은 저전력 소비, 고성능 CPU 기술인 ‘코어 아키텍처’를 데스크탑 PC에 처음 옮긴 코어2 듀오는 작동 속도는 비록 펜티엄 D보다 절반 가까이 낮았지만, 그 성능은 크게 앞서 출시 전부터 사람들의 큰 관심을 끌었습니다. 성능 면에서 펜티엄 D보다 앞선 AMD 애슬론 64 X2마저도 뛰어 넘은 코어2 듀오는 펜티엄 D의 가장 큰 약점인 높은 전력 소비량 또한 30% 넘게 줄여 ‘조용하고 강한 PC’를 찾는 많은 소비자들을 끌어들였습니다. 펜티엄 D와 애슬론 64 X2가 사이 좋게 나눠 갖던 듀얼 코어 CPU 시장은 코어2 듀오의 등장과 함께 ‘코어2 듀오 일변도’로 바뀌었고, 그런 분위기는 지금도 이어지고 있습니다.

코어2 듀오의 높은 성능과 낮은 전력 소비량에 스트레이트 펀치를 맞고 시장의 주도권을 잃어버린 AMD는 현재 AMD는 듀얼 코어 CPU 값을 인텔보다 4~5만원 이상 싼 13만원대로 낮추고, 높은 전력 소비량 문제는 저전압 모델인 일명 ‘EE’ 시리즈로 맞서고 있습니다. 코어2 듀오가 이끄는 시장은 큰 변화가 없지만 ‘높은 가격 대비 성능’을 내세우며 사용자들을 부르는 AMD는 새로운 CPU 기술인 ‘K8L’을 개발하며 다시 한 번 재기(?)를 노리고 있습니다.


(표 1) 인텔이 만든 멀티 코어 CPU들
 
 
(표 2) AMD가 내놓은 듀얼 코어 CPU들

멀티 코어 CPU에 대한 오해와 진실

1. 멀티 코어 CPU는 정말 2~4배 빠른가요?

지금은 그런 일이 그리 많지 않지만 듀얼 코어 CPU가 처음 나왔을 때만 해도 CPU가 두 개니까 두 배 빠르다고 주장하던 쇼핑몰과 홈쇼핑이 적지 않았습니다. 2.8GHz 듀얼 코어 CPU를 5.6GHz로 표시했던 것이 그리 오래 전 일은 아닙니다. 진짜 듀얼 또는 쿼드 코어 CPU는 그 CPU 개수만큼 빠를까요?

결론부터 말하면 ‘절대 아니다’입니다. 멀티 코어는 하나 또는 여러 작업을 여러 코어가 나눠 처리해 하나의 CPU가 혼자 여러 작업을 할 때 벌어지는 부담을 줄이는 역할을 하지만 더 이상 나눌 수 없는 작업을 두 배 또는 그 이상 빠르게 처리해주지 않습니다. 초등학교나 중학교 때 배우는 전지의 직렬/병렬 연결을 생각하면 이해가 쉬운데, 멀티 코어는 전지의 병렬 연결처럼 속도는 변함이 없지만 많은 부하가 걸릴 때 그것을 줄여주는 역할을 합니다. 아직 x86 멀티 코어 CPU 가운데 전지의 직렬 연결처럼 CPU 코어 개수만큼 작동 속도가 오르는 기술은 나와 있지 않습니다.

그렇다고 멀티 코어 CPU의 가치가 사라지는 것은 아닙니다. 더 이상 나눌 수 없는 하나의 작업(단일 스레드)을 처리할 때는 하나의 코어 이상의 성능을 내지 않지만, 한 번에 여러 작업을 동시에 하거나 작업을 여러 개로 나눌 수 있는(멀티 스레드) 프로그램을 실행하면 하나의 CPU 코어에 주는 부담을 줄여 성능을 높일 수 있습니다. 예를 들어 CPU에 많은 부담을 주는 사진, 동영상 편집을 할 때 멀티 코어 CPU는 같은 속도의 싱글 코어 모델보다 빠른 시간 안에 작업을 끝내고 작업 과정에 다른 일을 해도 지나치게 느려지는 문제가 줄어듭니다.

한 번에 여러 일을 하는 멀티 태스킹과 하나의 프로그램을 여러 개로 쪼개 실행하는 멀티 스레드는 이미 많은 프로그램이 쓰고 있습니다. 운영체제는 윈도우 NT 이후에 나온 윈도우 2000, XP, 비스타는 물론이고 유닉스, 리눅스, BSD, 맥OS X 등 요즘 나온 운영체제는 대부분 듀얼, 쿼드 코어에 맞게 만들었으며, 포토샵, 플래시, SQL 서버, 아파치, MySQL 등 유명한 PC, 서버용 프로그램 또한 멀티 스레드 방식을 씁니다. 이런 프로그램을 많이 쓴다면 멀티 코어 CPU는 더욱 부드럽고 빠른 작업 속도를 보장합니다.

2. 멀티 코어 CPU를 제대로 쓰려면 어떤 운영체제를 써야 하나요?

위에서 잠시 적었지만 듀얼 또는 쿼드 CPU는 새로운 운영체제라면 대부분 잘 작동합니다. CPU 작동 상황을 보면 두 개 또는 네 개의 CPU가 있는 것처럼 나타납니다. 가상 CPU를 만들어 코어 하나의 멀티 스레드 능력을 더욱 높인 ‘하이퍼스레딩’ 기술이 들어간 듀얼 코어 CPU라면 쿼드 코어와 같은 네 개의 CPU 화면이 보일 것입니다.

 
(표 3) 듀얼 코어 CPU를 쓸 수 있는 운영체제들

위 표는 널리 쓰이는 운영체제의 멀티 코어 및 멀티 CPU 기술을 정리한 것입니다. 윈도우 XP 이상의 마이크로소프트 운영체제, 유닉스/리눅스는 멀티 코어도, 하이퍼 스레딩도 마음대로 쓸 수 있습니다. 그렇다고 아무런 제한이 없는 것은 아닌데, 윈도우 2000은 운영체제 커널 안에 하이퍼 스레딩을 인식하는 코드가 없어 아예 하이퍼 스레딩을 쓸 수 없습니다. 가정에서 쓰는 윈도우 XP 홈 에디션과 앞으로 나올 윈도우 비스타 홈 베이식/프리미엄은 멀티 코어 CPU는 문제가 없지만 실제 CPU가 두 개인 듀얼 CPU 기술은 쓰지 못합니다. 듀얼/쿼드 코어 CPU를 여러 개 꽂아 강한 서버를 만들 생각이라면 운영체제를 윈도우 서버 2003 또는 유닉스/리눅스로 꾸며야 합니다.

유닉스/리눅스는 커널에 따라서 듀얼/쿼드 코어 CPU 기술을 쓸 수 있는지 달라집니다. 그러므로 최대한 새로운 커널 소스를 찾아서 컴파일해 설치하면 최고의 멀티 코어, 멀티 CPU 기술을 누릴 수 있습니다. 패키지 설치를 좋아한다면 페도라 코어, 레드햇 엔터프라이즈, 수세, 젠투, 데비안, 우분투 등 패키지 가운데 최신 버전을 설치하면 됩니다.

3. 코어 개수가 늘어나면 전력 소비량도 두 배로 늘지 않나요?

듀얼, 쿼드 코어는 CPU의 핵심인 코어가 늘어난 만큼 전력 소비량도 늘어날 수 밖에 없습니다. 그렇다면 코어가 늘어난 만큼 전력 소비량도 늘어날까요? 이 문제의 답을 내리기 전에 아래 표를 먼저 봐 주십시오.

 
(표 4) 인텔과 AMD의 기본 CPU와 듀얼/쿼드코어화 CPU의 제원 차이

위의 표는 듀얼, 쿼드 코어 CPU와 그 CPU의 뿌리가 되는 같은 속도의 CPU의 제원을 비교한 것입니다. 여기에서 눈 여겨 볼 자료는 열 설계 전력(Thermal Design Power, TDP)입니다. 컴퓨터 부품의 발열량을 표시하는 TDP는 부품 제조사에 따라서 표기 방법이 다르지만, 전력 소비량과 비례합니다. 실제 부품을 돌리고 남은 열이 TDP의 기준이 되기 때문입니다. 그래서 TDP는 CPU 발열과 전력 소비량을 따질 때 가장 먼저 보게 됩니다.

코어2 듀오 E6700을 바탕으로 만든 쿼드 코어 CPU, 코어2 익스트림 QX6700은 정확하게 두 배 많은 TDP 값을 갖습니다. 이 자료만 본다면 코어 개수만큼 전력 소비량과 발열이 늘어난다고 생각할 수 있습니다. 그렇지만 모든 멀티 코어 CPU가 그런 것은 아닙니다. 코어2 듀오 E6700과 코어2 익스트림 QX6700은 각각의 CPU 가운데 가장 빠른 모델로서, 가장 전력 소비량과 발열량이 높은 CPU입니다. 현재 기술로서 만들 수 있는 최고 속도를 짜낸 것으로 봐도 크게 다르지 않은데, 그런 만큼 전력 소비량이 늘어나는 것은 어쩔 수 없습니다.

이와 달리 펜티엄 D 820과 펜티엄 4 531, 애슬론 64 X2 4200+와 애슬론 64 3500+를 비교해 보면 코어는 두 배 늘었지만 열 설계 전력은 13~43% 늘어나는 데 그칩니다. 같은 제조 공정과 제조 방식을 쓰는 CPU는 한계 속도에 가까워질수록 전력 소비량은 늘어나고, 반대로 속도를 낮출수록 전력 소비량은 줄어듭니다. 여기에 싱글 코어를 듀얼 코어로 바꾸면서 조금 제조 방식을 고치면 더욱 전력 소비량을 줄일 수 있습니다.

제조 공정은 그대로 두고 제조 방식과 설계를 조금 고치는 ‘스테핑’ 변화는 같은 CPU라도 전력 소비량을 줄이는 데 큰 도움이 됩니다. 아무런 변화 없이 코어를 두 배로 늘리면 전력 소비량은 두 배 가까이 오르겠지만, 실제로는 싱글 코어를 멀티 코어로 바꾸면서 크고 작은 설계를 바꾸고, 기본이 되는 코어의 한계 속도보다 작동 속도를 낮추면 그 보다 전력 소비량을 낮출 수 있습니다. 지나치게 전기를 많이 먹는 싱글 코어를 만드느니 작동 속도는 그 보다 낮지만 실제 전력 소비량은 그 보다 적은 듀얼 코어 CPU가 성능은 더 낫다는 것이 CPU 개발 회사들의 생각입니다.

4. 멀티 CPU는 라이센스 비용을 더 내야 하는데 멀티 코어 CPU도 그런가요?

서버용 어플리케이션 가운데는 CPU 개수가 늘어날수록 라이센스 비용이 비싸지는 경우가 많습니다. 마이크로소프트의 백오피스 계열 프로그램과 오라클 등 상용 서버 어플리케이션의 상당수는 이런 라이센스 규정을 따릅니다.

그렇다면 멀티 코어 CPU도 멀티 CPU처럼 코어 개수만큼 돈을 낼까요? 아니면 CPU 개수는 하나니까 CPU 하나만큼의 라이센스 요금을 지불할까요? 결론은 ‘그때그때 다르다’입니다. 각 서버 소프트웨어 개발사마다 규정이 달라서 뭐라 한 마디로 정의하기 어렵습니다.

인텔과 AMD를 비롯한 CPU 업체는 멀티 코어 CPU를 쓰는 사용자가 더 많은 돈을 내지 않도록 서버 소프트웨어 개발사들과 협상을 벌였고, 이것은 지금도 이어지고 있습니다. 이 협상의 결과 마이크로소프트는 CPU 개수가 늘지 않으면 아무리 코어가 많아도 물리적인 CPU 만큼만 라이센스 비용을 받기로 했습니다. 예를 들어 SQL 서버를 쿼드 코어 CPU 하나를 꽂은 서버에 설치하면 CPU 4개의 라이센스 요금이 아닌 하나만큼만 내면 됩니다.

이와 달리 오라클은 멀티 코어 CPU를 코어 개수에 따라서 라이센스 요금을 받습니다. 멀티 코어 CPU는 코어 하나에 0.5개의 CPU로서 계산하는데, 듀얼 코어 CPU는 하나 만큼의 라이센스 요금을 내지만, 쿼드 코어는 두 개의 요금을 오라클에 지불해야 합니다. 앞으로 코어 개수가 더 늘어난 새로운 CPU가 나온다면 코어 한 개에 내는 라이센스 요금은 더 저렴해질 수 있지만, 오히려 돈을 받는 회사도 생길 수 있습니다. 이런 정품 서버 어플리케이션을 산다면 반드시 멀티 코어 CPU의 라이센스 조항을 읽어봐야 문제가 생기지 않습니다.

미래의 멀티 코어 기술

2007년에 갓 발을 담근 지금 시점에서 소비자에게 선보인 멀티 코어 기술은 듀얼 다이 방식의 듀얼 코어, 싱글 다이 방식 듀얼 코어, 하드웨어 가상화 기술(VM) 정도로서, 마지막으로 선보인 듀얼 다이 쿼드 코어 CPU가 몇몇 소비자에게 관심을 끄는 정도입니다. 이런 기술은 이미 어느 정도 PC를 사려고 하드웨어 커뮤니티 사이트 또는 쇼핑몰의 제품들을 살펴본 사람이라면 어렴풋이나마 그 뜻을 알고 있는 것입니다. 그렇지만 아직 많은 사람들에게 알려지지 않은, 2007년 봄 이후의 PC 시장에 선보일 기술도 많습니다. 앞으로 멀티 코어 CPU 시장에 선보일 새로운 기술은 무엇인지 짚어 보았습니다.

1. 싱글 다이 방식 쿼드 코어

인텔이 내놓은 코어2 익스트림 QX6700과 코어2 쿼드 CPU는 세계 최초의 x86 쿼드 코어 CPU지만 완벽한 쿼드 코어 CPU라고 부르기엔 약점이 남아 있습니다. 그 이유는 이 CPU가 ‘듀얼 다이’ 방식을 쓰기 때문입니다. 코어2 듀오 CPU 두 개를 하나의 기판 위에 올린 것에 불과한 듀얼 다이 방식 쿼드 코어 CPU는 성능은 뛰어나지만 전력 소비량이 적지 않고 가격 또한 저렴한 편은 못됩니다.

성능은 듀얼 코어 CPU 두 개를 꽂은 것과 같아 쿼드 코어의 이름에 걸맞지만, 굳이 CPU 두 개가 아닌 단일 쿼드 코어 CPU를 쓰는 장점을 전부 누리지 못하는 셈입니다. 값비싼 듀얼 CPU 메인보드가 아닌 데스크탑 PC용 제품을 그대로 쓸 수 있는 장점은 있지만 전력 소비량과 발열량은 같은 속도의 듀얼 코어 CPU보다 두 배 많습니다.

 
AMD는 차세대 쿼드 코어 옵테론이 될 '바르셀로나' 코어의 샘플을 공개한 바 있다

그래서 인텔과 AMD 등 CPU 회사들은 차세대 쿼드 코어로서 네 개의 코어를 단 하나의 다이에 몰아 넣은 ‘싱글 다이 쿼드 코어’ 개발에 열을 올리고 있습니다. 이 방식 CPU 개발에 가장 적극적인 곳은 AMD로서, 이미 2007년 2/4분기를 목표로 차세대 서버 CPU인 코드명 ‘바르셀로나’를 개발하고 있습니다. 바르셀로나는 지금의 산타로사 코어 옵테론의 뒤를 잇는 CPU로서, 종전 K8 아키텍처를 한 단계 업그레이드한 ‘K8L’ 아키텍처를 처음 선보이는 CPU가 됩니다. K8 아키텍처의 성능을 더욱 끌어 올리고 CPU를 이루는 여러 부분을 나눠 모듈 형태로 만든 K8L은 인텔의 코어 아키텍처 이상의 성능을 낼 것으로 기대를 모으고 있습니다.

바르셀로나 코어 옵테론은 하나의 CPU 다이 안에 코어 네 개를 넣은 싱글 다이 방식 쿼드 코어 CPU입니다. CPU 제조 공정을 65nm으로 업그레이드하고 다이 개수를 줄인 바르셀로나는 쿼드 코어다운 성능과 함께 적은 발열과 전력 소비량을 자랑할 것으로 보여 서버 시장에서 기대를 모으고 있습니다. 그밖에 산타 아나 코어 옵테론의 후속 모델인 코드명 ‘부다페스트’, 바르셀로나 코어를 더욱 업그레이드한 코드명 ‘상하이’가 2007년과 2008년에 선보일 예정입니다.

그와 달리 인텔은 당장 싱글 다이 쿼드 코어 CPU를 내놓을 움직임은 보이지 않고 있습니다. AMD보다 뛰어난 CPU 생산 기술과 많은 공장(Fab)을 바탕으로 지금의 코어2 듀오를 45nm 공정 기술로 바꾸고 2차 캐시 메모리 용량을 6MB로 늘린 코드명 ‘울프데일’과 코어2 쿼드의 45nm 모델인 코드명 ‘요크필드’를 빠르면 올해 내놓을 계획이지만, 싱글 다이 쿼드 코어의 정확한 계획이 알려져 있지 않습니다. 요크필드의 다이 개수는 여전히 알려져 있지 않아서 이 CPU가 인텔의 진정한 쿼드 코어 CPU가 될 수 있을지 지금으로서는 알 수 없습니다. 그렇지만 인텔 또한 듀얼 다이 옥타(8개) 코어 CPU를 준비하는 등 싱글 다이 쿼드 코어 기술을 개발하는 것은 사실입니다.

2. 매니 코어(Many Core)

코어2 익스트림 QX6700과 코어2 쿼드 Q6600는 비록 두 개의 CPU를 하나의 기판 위로 올린 단순한 방식이긴 하지만 x86용 CPU 가운데 처음으로 쿼드 코어를 실현했고, AMD 바르셀로나는 그것을 한 단계 끌어 올려 다이 하나에 코어 네 개를 넣는 업적을 이룰 것으로 보입니다. 하지만 인텔과 AMD가 CPU 하나에 들어가는 코어 개수를 끌어 올리려는 노력을 여기서 멈춘 것은 아닙니다. 쿼드 코어는 수 많은 코어가 CPU 하나에 들어가는 ‘매니 코어’로 가는 한 지점에 불과할 뿐 목적지는 아닙니다.

프로세서 코어 하나의 작동 속도를 끌어 올리는 것과 획기적인 프로세서 아키텍처를 만드는 것 모두 어려워진 지금 인텔과 AMD, IBM을 비롯한 프로세서 제조사들은 단일 CPU 코어 하나의 성능을 끌어 올리는 것 보다 코어의 개수를 늘려 여러 작업을 할 때 체감 속도를 높이고, 멀티 스레드 방식으로 만든 어플리케이션을 더욱 빠르게 처리하는 데 힘을 쏟고 있습니다. 소프트웨어 개발사 또한 단일 스레드 처리만 할 수 있도록 하던 소프트웨어를 멀티 스레드에 맞게 바꿔 새롭게 내놓는 준비를 하고 있습니다. 이런 움직임의 대표 주자가 게임 업계입니다. 대부분의 게임은 개발의 어려움과 속도 최적화 문제를 겪으며 싱글 스레드에 맞게 나왔지만, 요즘은 CPU 제조사들과 협력하며 듀얼, 쿼드 코어 CPU에서 더욱 높은 성능을 낼 수 있도록 게임을 새롭게 만들고 있습니다. 앞으로 2, 3년이 지나면 유명한 프로그램은 대부분 멀티 스레드 작업을 할 수 있을 것으로 보입니다.

앞으로 몇 년 동안 개인용 컴퓨터는 듀얼 코어만으로도 충분한 성능을 낼 수 있겠지만, 워크스테이션 및 서버 작업은 끝없이 높은 성능을 바라고 있습니다. 그에 맞게 CPU 회사는 쿼드 코어보다 더 많은 코어를 담은 CPU를 개발하고 있습니다. 인텔은 이미 듀얼 다이 방식 옥타 코어의 개발을 준비하고 있고, AMD는 그 보다 한 발 늦지만 비슷한 옥타 코어에 대한 개발 방향을 세우고 있는 단계입니다. 현재로서는 똑 같은 CPU 코어의 개수를 늘리는 방식이지만, 뒤에서 살펴볼 헤테로지니어스 코어가 널리 퍼지게 되면 수십 개의 코어가 CPU 하나에 들어가는 것도 불가능한 일은 아니게 될 것입니다.

3. 헤테로지니어스 코어

헤테로지니어스 코어(Heterogeneous Core, 혼성 코어)는 PC 부품에 관심이 많은 사람들에게도 널리 알려진 이름은 아닙니다. 그렇지만 이 기술은 다시 뒤에서 이야기를 꺼낼 역 하이퍼스레딩과 함께 차세대 CPU의 철학을 바꾸고 있습니다.

지금까지 나온 x86 방식 멀티 코어 CPU는 똑 같은 방식의 코어로 꽉 차 있습니다. 이런 방식의 코어를 ‘호모지니어스 코어(Homogeneous Core, 동일 코어)’라고 합니다. 호모지니어스 코어는 똑같은 기술을 쓰는 CPU 코어가 많은 만큼 소프트웨어 개발이 쉽고 CPU 개발 또한 복잡하지 않습니다. 반대로 점점 다양해지는 소비자의 입맛에 맞는 CPU를 만드는 데 한계가 있고, 특정 연산 기술을 빠르게 끌어 올리는 데 어려움을 겪습니다. 전체적인 성능을 높이는 데 호모지니어스 코어는 알맞지만, 더 빨라져야 할 곳을 더 빠르게 하는 최적화는 쉽지 않습니다.

일반적인 호모지니어스 코어와 헤테로지니어스 코어의 차이 (실제 이런 CPU는 없습니다)

헤테로지니어스 코어는 그 역할이 다른 여러 CPU 코어를 하나의 칩 안에 넣은 복합 CPU입니다. 예를 들어 여러 궂은 일을 도맡아 하는 CPU 코어 하나와 암호화 작업에 알맞은 수학 연산용 코어 여러 개를 합하면 보안용으로 알맞은 CPU가 태어납니다. 하나의 코어가 부족한 부분을 다른 코어가 채워주는 이런 조합은 지금까지 여러 CPU와 칩이 하던 일을 단 하나의 CPU가 할 수 있게 되어 작업에 딱 맞는 최적의 성능과 전력 소비량을 얻을 수 있습니다.

헤테로지니어스 코어는 이미 우리 곁에 실용화된 제품이 나와 있습니다. 바로 플레이스테이션 3입니다. 이 게임기 안에 들어간 IBM과 SCE가 공동 개발한 프로세서 ‘셀’은 3.2GHz 속도로 작동하는 파워 5 범용 프로세서 하나와 6개의 실수 연산 전용 프로세서(SPE)가 들어 있습니다. 범용 프로세서 코어는 게임기의 전체적인 제어와 기본 연산을, SPE는 게임에 맞는 3D 물리 연산을 맡습니다. 순수하게 게임과 멀티미디어에 초점을 맞춘 헤테로지니어스 코어 CPU가 셀인 셈입니다.

인텔과 AMD를 비롯한 CPU 제조사들이 헤테로지니어스 코어에 관심을 쏟는 것은 성능과 전력 소비량의 두 가지 이유가 있습니다. . 단일 스레드용 고성능 코어와 멀티 스레드 전용 저전력 소비 코어 여러 개를 묶으면 어떤 작업에도 강하고 전력 소비량도 성능보다 적은 만능 PC CPU가 태어납니다. 인텔은 종전 멀티 코어 CPU의 성능 한계를 뛰어 넘어 더욱 강한 데스크탑, 노트북, 서버용 CPU를 만들 수 있도록 상호 보완 역할의 헤테로지니어스 코어를 생각하고 있습니다.

또한 인터넷, 사무용 프로그램에 알맞은 범용 코어와 실수 연산 전용 특수 코어 여러 개를 묶으면 게임과 멀티미디어 컨텐츠 처리에 알맞은 미래의 CPU가 되고, 구형 아키텍처 CPU와 차세대 CPU 코어를 하나로 만들면 호환성과 높은 성능을 모두 잡는 기업용 CPU가 됩니다. 그밖에 하나로 묶는 코어의 특징을 다르게 하면 가정부터 기업, 게임기용 CPU부터 핵 미사일의 제어 프로세서까지 성능은 뛰어나고 값은 저렴한 다양한 제품을 만들어낼 수 있습니다.

몇 개의 CPU 코어를 조합해 다양한 CPU를 만들어내는 생각은 인텔보다 AMD가 앞서 있습니다. AMD는 이런 생각을 현실로 옮기고자 두 가지 준비를 했는데 하나는 K8L의 모듈 설계, 두 번째는 그래픽 프로세서 제조사인 ATI 합병입니다. 올해 선보일 K8L 아키텍처는 CPU의 각 부분을 모듈처럼 만들어 기능을 빼고 더하기 쉽게 만들었습니다. 이 방식은 한 번 설계하기엔 복잡하지만 한 번 만든 모듈은 여러 번 재활용해 여러 CPU를 만들어 낼 수 있습니다. 여기에 ATI를 인수하면서 얻은 그래픽 프로세서의 뛰어난 실수 연산 기술을 더하면 멀티미디어와 과학 연산에 강한 전문 CPU도 꿈이 아닙니다. AMD는 이미 ATI 그래픽 프로세서의 기술을 바탕으로 한 실수 연산 전문 프로세서를 CPU 안에 넣을 계획을 세웠고 그 전 단계로서 386, 486 시대의 코프로세서처럼 실수 전문 프로세서를 따로 꽂을 수 있는 메인보드 계획을 내놓은 바 있습니다.

4. 역 하이퍼스레딩

인텔 펜티엄 4 CPU에서 선보인 하이퍼스레딩(Hyper Threading, HT)은 많은 분들이 들어 봤을 이름입니다. 그렇지만 역 하이퍼스레딩이라는 이름은 들어본 사람이 드물 것인데 아직 그 뚜렷한 모양새가 나오지 않았고 어떤 CPU가 이 기술을 쓸지 정해진 것이 없기 때문에 그만큼 알려진 것이 없습니다. 그렇지만 역 하이퍼스레딩은 지금의 멀티 코어 CPU의 약점을 극복할 수 있는 방법으로서 CPU 개발사들이 눈독을 들이는 기술입니다.

역 하이퍼스레딩을 이해하려면 하이퍼스레딩이 무엇이며 어떻게 작동하는지 알아야 합니다. 예를 들어 PC에서 포토샵이나 GIMP를 실행했다고 생각해 보십시오. 겉보기엔 단 하나의 프로그램을 실행한 것으로 보이며 그냥 ‘포토샵 또는 GIMP를 실행했다’고 하면 누구에게나 이야기가 통합니다. 그렇지만 속을 들여다보면 그렇게 단순하지 않습니다. 실제 컴퓨터 안에서 일어나는 모든 일은 ‘프로세스(Process)’ 또는 ‘작업(Task), 그리고 ‘스레드(Thread)’로서 나뉘어 처리가 됩니다.

프로세스, 작업, 스레드의 차이는 프로그래밍 분야의 전문 서적에서 자세히 설명하고 있지만, 어떤 프로그램을 실행해 하고자 하는 바를 수행하는 것을 통틀어 작업, 실제로 실행중인 프로그램을 ‘프로세스’, 하나의 프로세스를 쪼개 CPU에 처리를 맡기는 단위를 ‘스레드’라고 생각하면 될 것입니다. 하나의 프로세스(작업)은 하나부터 수 십~수 백개의 스레드로 나뉘어 CPU가 하나씩 처리하게 됩니다.

CPU는 모든 것을 스레드 단위로 처리하는 만큼 스레드보다 상위 개념인 작업은 CPU 기반 위에서 작동하는 운영체제의 영역입니다. DOS 같은 운영체제는 기본적으로 단 하나의 작업만을 수행할 수 있는 단일 작업 운영체제입니다. 하지만 윈도우 95 이후의 윈도우 및 리눅스는 한 번에 여러 작업과 프로세스를 처리하는 멀티 작업 운영체제입니다. 포토샵을 실행하면서 MP3 음악을 들을 수 있는 것도 현재의 운영체제가 멀티 작업을 할 수 있도록 뒷받침하기 때문입니다.

그렇지만 현재의 x86 CPU는 하나의 코어가 단 하나의 스레드만을 처리할 수 있는 단일 스레드 프로세서입니다. 아무리 작업을 여러 개 돌려도 실제로 한 번에 건드릴 수 있는 스레드는 오직 하나뿐입니다. 그 스레드가 CPU의 능력을 전부 끌어내는 일이 아니라 할지라도 그 시간만큼은 다른 스레드가 건드릴 수 없습니다. 대신 수 많은 스레드를 시간을 쪼개 처리하는 ‘시분할’ 방식으로서 처리합니다.

이런 한계를 뛰어 넘을 목적으로 인텔이 개발한 기술이 하이퍼스레딩입니다. 하이퍼스레딩은 물리적인 CPU 코어는 하나지만 이것을 가상 CPU 두 개로 쪼개 하나의 스레드가 전부 쓰지 않는 CPU 능력을 다른 스레드가 끌어낼 수 있도록 하는 것입니다. 비록 CPU 코어는 하나지만 하이퍼스레딩 기술을 쓰면 운영체제는 두 개의 CPU가 있는 것으로 생각해 멀티 스레드 작업을 할 때 조금이나마 성능을 높일 수 있습니다. 이렇게 실제 CPU는 하나지만 가상 CPU를 만들어 프로세서의 모든 능력을 끌어내는 기술을 SMT(Simultaneous Multi-Threading, 동시 멀티 스레딩)이라고 하는데, IBM의 CPU 아키텍처인 ‘파워5’ 또한 SMT 기술을 갖고 있습니다. 마이크로소프트가 내놓은 게임기 ‘엑스박스 360’은 IBM 파워5 아키텍처를 쓴 CPU 코어 3개가 들어 있는데 SMT를 써 가상 CPU 6개가 있는 것처럼 작동합니다.

지금까지 하이퍼스레딩이 무엇인지 짧지 않게 설명했습니다만, 역 하이퍼스레딩은 이와 정 반대의 개념에서 출발한 기술입니다. 하이퍼스레딩이 하나의 CPU 코어를 가상으로 쪼갠 기술이라면 역 하이퍼스레딩은 여러 CPU 코어를 하나의 고성능 싱글 CPU처럼 바꿔주는 일을 합니다. 인텔과 AMD가 이 기술에 눈독을 들인 이유는 지금의 멀티 코어 기술의 약점인 싱글 스레드 전용 프로그램의 낮은 성능 때문입니다. 코어가 늘면 멀티 스레드 처리가 잘 되는 프로그램의 처리 속도는 빨라지지만, 단 하나의 스레드로 모든 일을 하는 프로세스는 아무런 혜택을 받지 못합니다. CPU 작동 속도를 빠르게 높이지 못하고 새로운 아키텍처를 만드는 데 어려움을 겪는 지금 멀티 스레드 프로그램을 대세로 만드는 것도 중요한 일이지만 싱글 스레드 작업 속도를 높이는 연구 또한 포기할 수 없는 임무입니다.

싱글 스레드 프로세스의 성능을 높이는 방법은 크게 두 가지 방향으로 이뤄지고 있습니다. 하나는 싱글 스레스 처리를 도맡는 초 고성능 CPU와 멀티 스레드용 저전력 소비 프로세서를 묶은 헤테로지니어스 코어, 두 번째가 역 하이퍼스레딩입니다. 헤테로지니어스 코어는 이미 IBM의 셀 프로세서로서 현실이 되었지만 역 하이퍼스레딩은 아직 그 연구가 끝나기까지 오랜 시간이 걸리는 걸음마 단계의 기술입니다.

이미 헤테로지니어스 코어라는 방법이 있음에도 역 하이퍼스레딩을 연구하는 이유는 현재의 CPU 개발 기술을 크게 바꾸지 않아도 싱글 스레드 처리 성능을 높일 수 있기 때문입니다. 싱글 스레드용 고성능 코어를 만든다고 해도 지금 기술로는 전력 소비량과 발열 한계에 막혀 성능을 높이는 데 어려움이 있습니다. 그렇지만 역 하이퍼스레딩이 현실이 되면 지금의 CPU 아키텍처를 그대로 써도 코어 개수만큼 싱글 스레드 처리 능력이 커져 멀티 코어를 만드는 기술 개발에 힘을 기울이면 됩니다. 아직 갈 길이 멀지만 역 하이퍼스레딩이 CPU 제조사들의 기대를 받고 있는 이유가 여기에 있습니다.

[출처:http://www.iclub.co.kr]

Posted by coolpeace