-
스마트폰에서의 쿼드코어 싸움. 과연 코어 수가 많다고 해서 속도가 엄청나게 빨라지는 것일까?Mobile topics 2012. 3. 14. 08:30반응형
왼쪽부터 옵티머스 4X, One X, 어센드D HD, Era
그런데 쿼드코어 AP들이 계속 나오고 있으며 지금까지는 듀얼코어가 표준처럼 여겨지듯 쿼드코어도 스마트폰의 표준처럼 될 터인데 과연 그들이 열심히 광고한대로 쿼드코어 AP를 탑재하면 스마트폰의 속도나 만족감이 지금보다 2배 이상으로 나아질까? PC의 경우 이제야 쿼드코어가 PC의 표준처럼 자리 잡고 있지만 모바일은 생각보다 빨리 쿼드코어가 자리를 잡을 듯 보인다. 하지만 PC의 경우도 쿼드코어를 잘 활용하는가 하면 그것도 아니다.
보통 싱글코어(1개의 CPU)와 멀티코어(2개 이상의 CPU)의 차이점을 설명한다고 하면 이렇게 설명한다. 예를 들어 6개의 어플리케이션이 동시에 실행된다고 할 때(이른 바 멀티태스킹으로 작업 될 때) 싱글코어인 경우엔느 6개의 어플리케이션을 1개의 CPU에서 다 처리해야만 한다. 그렇게 하기 위해서 CPU는 각 어플리케이션에 자기의 작업양을 할당해야 하는데 6개에 맞춰서 할당하다보니 시간당 작업 빈도가 낮아질 수 밖에 없다. 즉, 어플리케이션 1개당 100의 작업을 처리해야 하며 1 CPU는 1초에 100의 작업을 할 수 있다고 할 때 6개의 어플리케이션이 실행되기 위해서는 CPU는 600의 작업양이 필요하며 6초가 걸린다. 6초에 맞춰서 6개의 어플리케이션들이 동시에 실행된다는 것이다. 어플리케이션들이 많아지면 많아질수록 CPU의 작업양이 늘어나기 때문에 실행속도는 느려질 수 밖에 없다.
멀티코어의 경우는 어떨까? 위의 예를 다시 들어서 얘기해본다면 6개의 어플리케이션을 듀얼코어, 즉 2 CPU로 작업을 한다고 할 때 3개씩 나눠서 작업할 수 있다. 즉 1 CPU는 300의 작업만 하면 된다는 얘기며 3초의 시간이 걸린다는 얘기다. 듀얼코어인 경우라면 3초의 속도로 일을 처리할 수 있다. 쿼드코어의 경우에는 약간 다르겠지만 6개의 어플리케이션 중 4개를 각기 CPU에서 맡아서 처리하고 나머지 2개는 2개의 CPU가 알아서 나눠서 처리할 것이다. 즉, 최대 2초의 시간이 걸린다는 얘기다. 즉, 코어 수가 많으면 많을 수록 나눠서 처리할 수 있는 힘이 있기 때문에 속도가 빨라진다고 할 수 있을 것이다. 속도도 빨라지고 CPU에서 받는 부담도 줄어드니 여러모로 좋다고 말할 수는 있을 것이다.
하지만 위의 예에는 한 가지 함정이 있다. 어플리케이션이 여러개 동시에 실행되는 멀티태스킹 환경에서는 확실히 멀티코어가 유리하다는 것은 당연한 일이다. 하지만 하나의 어플리케이션이 작업하는 양이 많다고 한다면? 지금의 대부분의 모바일 어플리케이션들은 여러 CPU를 동시에 활용해서 처리하는 분산 처리 기법을 사용하지 않고 단일 CPU만을 사용하는 프로그래밍으로 되어 있다고 한다. 즉, 작업 양이 1000인 어플리케이션도 10인 어플리케이션도 하나의 CPU를 이용해서 처리하지 2~4개의 CPU를 동시에 활용해서 처리하지는 않는다는 얘기다. 물론 1000인 어플리케이션에 CPU 하나를 할당하고 나머지 어플리케이션들은 남은 CPU에 돌려가며 할당하는 방식으로 처리한다면 나름 효율적이라고 할 수는 있겠지만 그렇게 하지 않고 1000인 어플리케이션 자체에서 2~4개의 CPU를 동시에 사용해서 작업 양을 줄인다면 속도를 더 빠르게 할 수 있고 효율적으로 사용할 수 있을 것이다. 멀티코어 프로그래밍 기법이 필요한데 아직까지 모바일에서는 이 기법을 이용해서 프로그래밍이 되어있는 어플리케이션이 거의 없다는 것이 현재의 현실이라는 얘기다. 재밌는 것은 PC용 어플리케이션들 중에서도 멀티코어 프로그래밍이 되어있는 어플리케이션이 그렇게 많지는 않다는 것이다. 물론 PC용 어플리케이션의 경우 CPU 외에도 다른 시스템 자원을 끌어다가 사용해서 나름 효과적으로 작업양을 처리할 수 있겠지만 자원 자체가 한정적일 수 밖에 없는 모바일의 경우에는 AP의 파워가 절대적이라고 할 수 있을 것이다.
물론 모바일에서 멀티코어 프로그래밍이 아주 없는 것은 아니다. 동영상 재생 부분과 게임의 그래픽 처리 부분은 모바일에서 몇 안되는 멀티코어 프로그래밍이 적용된 분야다. 동영상 재생에서는 코덱이 멀티코어를 활용하는 경우가 많은데 코덱의 경우 내부적으로 계산이 많은데 이것을 멀티코어를 이용해서 작업하는 것이 지금은 그런대로 자리를 잡아가고 있기 때문이다. 모바일 게임들 중 일부가 멀티코어 프로그래밍이 되어있기도 하다. 복잡한 그래픽 처리를 위해서다. 하지만 그것도 일부 게임에만 적용되었지 다 적용되어있는 것도 아니며 이것들 이외에는 멀티코어 프로그래밍이 적용된 모바일 앱은 솔직히 손에 꼽을 정도가 아니겠는가 싶다.
모바일 AP에서의 파워는 아마도 속도일 것이다. 속도가 빠르면 그만큼 단위시간 안에 처리할 수 있는 작업 양이 많으니까 그만큼 어플리케이션 실행 속도를 높일 수 있다. 그렇기 때문에 지금의 모바일 환경이라면 1.4GHz 쿼드코어 AP가 달린 스마트폰보다 2GHz 듀얼코어 AP가 달린 스마트폰이 훨신 체감 상 더 빠르게 느껴질 수 있을 것이다(아직까지 2GHz 듀얼코어 AP는 상용화는 되지 않았지만서도 -.-). 즉, 코어수가 많은 것보다 코어 하나가 갖고 있는 속도가 더 높은 것이 아직까지는 유리하다는 얘기다. 1.4 GHz 듀얼코어보다는 2GHz 싱글코어가 더 빠르게 느껴질 수 있으며 1.2GHz 쿼드코어보다는 1.5GHz 듀얼코어가 더 빠르게 느껴질 수 있다는 얘기다. 즉, 마냥 코어수가 올라갔다고 해서 무조건 빠르다고만 볼 수는 없다는 얘기다.
지금의 모바일 AP 업체들의 개발 스케쥴을 살펴보면 예전에는 속도 경쟁으로 갔다. 그러다가 어느 순간부터 속도보다 코어수 경쟁으로 가고 있는 듯 싶다. 아무래도 CPU의 클럭 수(속도라고 보면 된다)를 물리적으로 높이는 것에는 한계가 있으니 코어 자체의 수를 늘려서 분산시켜보자고 하는 전략을 취하는 듯 싶다. CPU의 컨트롤 부분만 더 추가해주면 되기 때문에 그렇다. 물론 코어를 많이 넣을 수록 AP 자체의 크기가 커지고 컨트롤러 크기도 커지기 때문에 크기에 민감한 모바일에서는 그만큼 작게 만드는 것도 기술이기에 의미 있는 작업임은 분명하다. 하지만 늘 그렇듯 마케팅의 내용들처럼 듀얼코어보다 쿼드코어가 더 빠르다라고만 할 수는 없다는 점이다. 그 때, 그 때마다 다른 것이 현실인데 말이다.
이런 글을 쓰게 된 이유는 속도 경쟁에서 코어 경쟁으로 모바일 AP 싸움이 넘어가고 있는 상황에서 제대로 된 정보보다는 마케팅의 우위를 차지하기 위해 오해할 수 있는 내용들이 마케팅 포인트로 잡혀서 나오는 것을 보면서 좀 아쉽다 하는 생각이 들어서다. 즉, 코어 수가 많다고 해서 마냥 빠르다고만 할 수는 없다는 점을 생각하고 스마트폰을 선택할 때 선택 포인트로 잡으면 좀 선택하는데 맘이 편해지지 않을까 싶다. 멀티코어 프로그래밍을 적용한 어플리케이션이 많아진다면? 그 때부터는 코어 수 경쟁이 지금보다 더 의미가 있게 될 것이다.반응형댓글