터미널님의 말씀이 있어서 조금 길어지게 글을 씁니다.(1)
 Tuna☆09 미디어로그가기
 조회 : 3294 , 2011/03/30 21:40

터미널님의 질문이 있으셔서 글을 몇자 적어볼까 합니다.
별것도 아닌 잡지식으로 떠벌이는게 부끄럽기짝이 없습니다만... 말주변이 그다지 좋지 못해서 설명또한 어지럽습니다.

코어i3의 딱지를 붙이기민망하여 붙이지 않고 글을 적습니다.



우선 아래는 약 4년전에 ZDnet에서 병렬처리에 관한 특집으로 제작된 동영상칼럼의 내용을 타이핑 한 내용입니다.  멀티코어와 동시에 전력소모에 대한 괜찮고 가볍게 언급되고 있기에 종종다른데서 예로 들어주는 내용입니다.

사실 동영상쪽이 더 이해하기 쉬운 편입니다만 기사에 대한 접근도 동영상도 전부 중단된 상태입니다.
원 기사가 없으니 링크도 불가하고... 만일 문제가 있다면 내리고 사과드리겠습니다.
더불어 해당 영상을 따로 가지고 계신분은 제게좀;;


멀티코어 프로세서는 그냥 지나가는 일시적인 유행일 뿐인가?
-제임스 랜더스(인텔 국장)
안녕하세요. 제임스 랜더스(인텔 국장) 입니다. 오늘은 최근 많은 주목을 받고 있는 멀티코어 프로세서들에 대해서 이야기해 보는 시간을 가지도록 하겠습니다.
 
사람들이 저에게 흔히 던지는 질문이 있는데요. 이 질문을 여러분들께 드려보겠습니다. 멀티코어 프로세서는 그냥 지나가는 일시적인 유행일 뿐인가요, 아니면 오랫동안 지속적인 인기를 구가할 그런 기술인가요? 과연 멀티코어 프로세서는 우리가 관심을 가지고 지켜 볼만한 것인가요? 물론 이 질문들에 대한 답은 모두 “예스” 입니다. 멀티코어 프로세서들은 한 때 지나가는 유행이 아니죠. 그래서 오늘은 왜 멀티코어 프로세서가 뜰 수 밖에 없는지 대해서 알아보는 시간을 가지겠습니다. 우리 프로그래머들은 반드시 알아야 하는 정보들이라고 할 수 있죠.
 
우선 첫째, 왜 멀티코어 프로세서인가요? 먼저 전력 소모량을 들 수 있습니다. 전력 소모량은 마이크로프로세서가 갈수록 클록속도(clock rate) 증가 속도를 줄일 수 밖에 없는 주요 원인을 제공하고 있습니다. 이 밖에도 두 가지 이유가 더 있는데요. ILP(instruction level parallelism)와 메모리의 한계가 바로 그것입니다. 이 세가지 이유에 대해서 조금 더 자세히 살펴보도록 하겠습니다. 이들이야 말로 사람들로 하여금 멀티코어 프로세서로 전환하게 한 주요 요인들이기 때문입니다.
 
전력 소모 관련 문제는 다른 나머지 요인들 보다 더 널리 알려진 문제인 것 같습니다. 먼저 나머지 두 개 요인에 대해서 설명하겠습니다.
 
한가지는 ILP입니다. ILP는 마이크로프로세서가 효율성 향상을 위해 여러 작업을 동시에 수행하는 경우를 말합니다. 프로세서의 클록 속도를 늘리면, 프로세서는 한 번에 더 많은 작업을 수행할 수 있게 됩니다.
 
문제는 현재 존재하는 프로그램들 중에 병렬 처리 형태로 실행될 수 있는 작업들을 찾는 것 자체가 매우 어렵고, 이 때문에 클록 속도는 갈수록 증가함에도 불구하고 성능이나 효율성 향상 속도는 그에 미치지 못하는 현상이 발생했습니다. 이러한 불균형 적인 변화 양상으로 인해 오히려 클록 속도가 개선되면 개선될수록 상황은 더욱 악화되는 단계까지 간 것이죠. ILP는 우리가 생각해봐야 할 문제들 중 하나입니다.
 
또 다른 문제는 메모리 입니다. 현재 프로세서의 클록 속도의 증가 속도가 메모리 클록 속도의 증가 속도보다 더 빠른 양상을 보이고 있고, 최근까지도 이러한 경향을 계속되고 있습니다. 이 때문에 마이크로프로세서의 형태에서 클록 속도를 향상시켜봤자, 기대만큼의 성능 향상을 일구어 낼 수 없는 것이죠. 결국 프로세서의 클록 속도를 따라가기 위해 더 큰 규모의 캐쉬 메모리들을 추가할 수 밖에 없는 상황입니다. 멀티코어 프로세서에서는 실제로 이러한 클록 속도의 증가 폭을 일정 부분 제한함으로써, 상황이 점점 악화되는 것을 막을 수 있습니다.
 
그리고 전력 문제입니다. 아마 세 가지 이유들 중에서 가장 많이 언급되었던 부분이라고 생각합니다. 마이크로프로세서의 전력 소비량의 증가가 감당할 수 없는 수준까지 올라갔던 것이죠.
 
단적인 예를 들어보죠. 마이크로프로세서가 있습니다. 그리고 일정 수준의 전력 효율성을 보유하고 있겠죠. 가장 기본적인 형태로 시작해 보겠습니다. 어떤 프로세서가 1개 단위의 전력 소모로 1개 단위의 성능을 낼 수 있다고 가정합니다. 1대 1의 비율이죠. 여기서 이 프로세서가 13%의 성능 향상을 일구어 내고자 한다면, 전력 소비량을 얼마나 증가해야 할까요? 보통 13% 정도의 성능 향상 폭을 만들어내려면 전력 소비량은 73% 정도 증가해야 합니다. 똑 같은 마이크로프로세서 임에도 불구하고 점점 효율은 떨어지는 것이죠.
 
마이크로프로세서는 과거에 비해 괄목할만한 성능 향상을 일구어 내왔습니다. 하지만 일정 수준이 지난 후, 성능 향상 속도가 둔화되면서, 클록 속도를 향상시키고, 전력 소모량을 늘려봤자 예전만큼의 기대 상승 폭을 충족시켜주지 못하는 상황에까지 처하게 된 것입니다. 실제로 13%의 성능 향상을 위해 전력 소비량을 73% 늘리는 것은 그리 좋은 방법이 아닙니다.
 
흥미로운 것은 클록 속도를 오히려 감소시키는 것이 더 효율적이라는 연구 결과가 나오고 있고, 또 그 근거가 상당히 신빙성 있다는 점입니다. 실제로 기존 프로세서의 성능의 87%를 구현하기 위해 드는 전력 소모량은 얼마 정도 될까요? 전력 소모량은 평상시 대비 51%에 그친다는 사실을 알 수 있습니다. 즉 87%의 성능을 내기 위해 전력은 51%만 써도 된다는 것이죠.
 
이러한 결과들에서 우리는 왜 사람들이 굳이 2개의 프로세서를 한데 묶어 사용하는 멀티코어 프로세서 방식을 이용하기 시작했는지 이해할 수 있습니다. 거의 비슷한 전력 소모량으로 성능은 73%이상 더 끌어올릴 수 있기 때문이죠.
 
클록 속도를 감소시키는 대신 두 개의 프로세서를 묶어 사용하는 아이디어는 매우 훌륭한 속임수라고 할 수 있습니다. 클록 속도를 감소시킴으로써 전력 소모량을 기존에 한 개를 사용했을 때와 비슷한 수준으로 유지함과 동시에 성능을 두 배 가까이 향상 시킬 수 있는 것이죠. 이러한 조그마한 발견이 실제로 듀얼 코어 프로세서, 그리고 콰드 코어 프로세서들을 개발하게 만든 주요 동기 부여 요인이 되었습니다. 단순히 클록 속도를 줄이자는 아이디어가 말이죠.
 
성능 향상을 유발하는 변화는 이것 이외에도 몇 가지 더 있습니다. 우선 프로세서들의 크기가 점점 작아지면서 우리는 같은 공간 안에, 2년 전보다, 두 배 이상의 프로세서를 넣을 수 있게 되었습니다. 물론 성능이 두 배가 되는 것이겠지요. 클록 속도를 줄이는 것 말고도 이와 같이 여러 성능 향상 방법이 존재합니다.
 
이처럼 성능 향상을 가능케 하는 다른 여러 가지 대체 방안들이 있기 때문에 우리는 영원히 클록 속도를 줄이는 방식으로 성능 향상을 모색하지는 않을 것입니다. 다만 전력 소모량에 변화를 주지 않으면서 주어진 공간을 활용, 최대한의 성능을 뽑아내기 위한 방법을 지속적으로 모색하는 것일 뿐입니다.
 
앞의 3가지 요인들이 멀티코어 프로세서의 성장을 유발할만한 이유가 있다는 사실은 이제 모두 아셨을 겁니다. 이와 더불어 이번 시간에 멀티코어 프로세서에 대한 또 한가지 아이디어를 여러분과 공유하고 싶은데요. 지금까지 듀얼코어, 콰드코어로 불리는 프로세서들은 모두 최신 사양을 프로세서들을 그냥 단순히 결합한 형태라고 볼 수 있습니다. 거의 오늘날 구현할 수 있는 최고의 성능을 보유한 프로세서들을 묶은 것이죠.
 
혹자들은 만약 이들보다 더 저 사양, 즉, 한 10년 전에 출시된 작은 규모의 프로세서들을 다량 활용하면 어떨까라고 저에게 질문하고는 합니다. 규모가 작은 프로세서들을 여러 개 활용하는 것이 더욱 효율적이지 않을까라는 생각을 한 것이지요. 하지만 현실적으로 10년 전의 프로세서들은 오늘날의 프로그램들을 실행시킬 수 있는 능력이 없습니다. 그래서 사람들은 결국 최신 프로세서들을 찾는 것이죠. 하지만 만약 이 둘을 적절하게 혼합하면 어떨까요? 몇몇 최신 프로세서들과, 규모가 작은 저 사양 프로세서들을 한데 섞어 활용하는 것입니다. 빠른 시일 내에는 무리이겠지만, 결국 이러한 형태가 차세대 멀티코어 프로세서 시장을 이끌어 나갈 것이라고 예상합니다. 지금 시중에는 콰드코어 프로세서가 나와 있죠. 전 8코어, 16코어의 제품까지 나올 것이라고 생각합니다. 이러한 발전 양상을 확장해서 생각한다면, 수백 개의 소규모 코어를 한 데 묶은 제품을 상상해보는 것도 나쁘진 않은 것 같습니다.
 
물론 소형 프로세서들만으로 이루어진 제품을 찾아보긴 힘들 것 같습니다. 하지만 둘을 섞어놓은 제품은 충분히 등장할 수 있습니다. 아마 시리즈 후반부에 이러한 형태의 프로세서에서는 어떻게 프로그래밍을 할 것인가에 대해서도 고민해 보아야 할 것 같습니다. 결국 궁극적으로 멀티코어 프로세서 시장은 이와 같은 경향을 따를 것이고, 언젠가는 이러한 형태의 프로세서를 이용해야 할 날이 올 것이기 때문이죠.


글의 요지와 대입해본다면 

오버클럭시에 클럭을 10%올리는데 전력소모가 10%올라가는게 아니라 11%나 그이상이 될 수 있다는 겁니다.
그 폭이 높아질수록 더 올라간다는 말이죠.


그럼 위의 내용대로라면 반대로 87%의 성능내면 전력은 더욱 감소해서 51%정도지 않느냐?
그럼 전압다이어트를 하면 큰폭으로 줄어야 하지 않냐?
라는 의도의 의문이 생길 수도 있습니다.

하지만  몇가지 문제가 있습니다.


1. 클럭은 유지한 상태에서 전압을 줄이는 행위라는 점입니다.
즉 성능자체는 유지하고 전압을 줄이는 행위를 말씀하시는 부분이기때문에 큰 차이가 없을 수 있습니다.
일단 보통 정규전압이라는 게 어느정도 편차를 고려하고 넉넉한 부분이 있어서 조금씩은 줄어 들 수 있지만 한계가 있습니다.

물론 베이스 클럭을 낮추고 배수를 줄이고 한다면 위의 성능을 일부분 줄이고 하신다면 전력소모는 위에 비하면 많이 줄어들겠지요.
하지만 여기에도 다른 문제가 발생할 수 있습니다.


2. 전력관리 기술의 해제입니다.

CPU에는 전력관리 기술이 여러가지가 들어갑니다. 보드단위에서도 조정을 하죠.
EIST, C1E라거나 다른 것들 말이죠.

그리고 그러한 것들은 CPU사용율에 따라 배수를 조정하고 전력을 조정하는 것이 핵심입니다.
적게 쓸때는 그것들을 조절해 전력소모를 줄이고 많이쓸때는 조금 넉넉히 제공합니다.

전압다이어트는 전압을 조절하는 행위나 클럭을 어느정도까지 낮추는 선이기때문에.. 항상 전압을 일정하게 소모하려 한다고 보시면 될것같네요. 전압다이어트를 시도하고 그런경우 보통은 전력관리 기술들을 off하고 씁니다. 안정성의 문제죠.

그말은 반대로 항상 어느성능이 요구하는 전압을 일정히 쓰기때문에...1에 나오는 오류와 같은 경우이며  전력기술이 가지는 메리트를 전혀 받지 못한다는 말도 됩니다.

늘상 100%으로 쓰는것이 아니기에 단순히 웹서핑,  사무 업무등의 간단한 작업이라면 전압다이어트를 한쪽보다 전력관리 기술이 더 도움이 될 수 있다는 점입니다.


3. CPU 전압 90% != 시스템 전압 90%
말그대로 CPU의 전력이 시스템 전체의 전력은 아닙니다.
많은 부분을 차지 할 수도 있는 부분이지만 반대로 조합에 따라 CPU의 전력소모는 전체 시스템에서 얼마든지 변경될 수 있는 부분이고 그 부분의 %로 늘어나는 부분이니까 말입니다.

어느정도 관계는 있지만 절대적이지도 않다. 쯤으로 보시면 될것 같습니다.


---------------------------------------
좀더 자세히 글을 써야 하는데 개인적인 흥미로 여기저기 주워다 들은 내용이라 많이 부족하네요.
그리고 더 길게 써야 하긴 할것 같은데 오늘은 여건이 안되네요.
그래서 우선은 1로만 놔두겠습니다.
2나 3이 써질지는 잘모르겠습니다;;

7
0
121.127.69.xxx
불법 광고글 신고하기
Tuna☆09 님의 다른글 보기
   이 게시물의 댓글 보기
  터미널 uncompress님의 미디어로그 가기  / 11-03-31 0:10/ 이댓글에댓글달기
  TDP 65W에 1.1V 라면... 대충 59A정도가 되고, 1V로 전압을 낮추면 TDP 59W 라는

말도안되는 공식을 적용해 봤습니다. =_=;

시간당 5W 줄이자고 전압다이어트를 하는것도 좀 웃기긴하네요. =_=a;;;

(실제로 저리 될리 없죠 =_=; CPU를 항상 100% 쓰는게 아니니까 ;;)
Tuna☆09 ohye701님의 미디어로그 가기  / 11-03-31 0:20/
그렇게 전압놀이에 끙끙댈때 아는형님의 부인(제게는 형수님이 되시는)분께서 하신 명언이 있었습니다.
"화상아 그럴시간에 그냥 백열전구 하나를 꺼.."(반지하공장이라 상시 불이켜있어야 하는 곳이었다고 하네요.)

그..그러고보니 그렇더군요.;
PC소모 전력 줄이는 것도 좋지만 그보다 다른거에서 줄이는게 더 빠르다는거;
리크 redcurse님의 미디어로그 가기  / 11-03-31 0:32/
그래도 여건이 되는한 해볼렵니다
풀로드 성능 안줄어드는 한도에서 전압낮추면 전력소모도 줄고 발열도 줄어들겠죠
i5-2500k써볼때 이상하리만큼 기본셋팅에 풀로드 전압이
높았던 기억이 있어서 가능성이 조금이라도 있다면 해볼만하다고 봅니다
  허접프로그래머 valkyrie님의 미디어로그 가기  / 11-03-31 19:29/ 이댓글에댓글달기
  멋진 글이로군요....^^ 좋은 참고가 되었습니다...^^
로그인 | 이 페이지의 PC버전
Copyright NexGen Research Corp. 2010