일단 "정설"화 되어버린 괴담내용
- Exynos는 동기식 멀티코어라 전기는 좀 더 먹고 성능이 더 좋다. 특히 동기식이라 코어간 협동이 잘 되어서 1개 태스크에 대해서도 두 코어가 협력하여 더 빠른 처리가 가능하다.
- Snapdragon(퀄컴)은 비동기식 멀티코어라 전기를 좀 덜 먹는 대신 코어간 협동이 잘 안되어 성능이 떨어진다.



먼저 이 Context 내에서 동기식 (Synchronous) / 비동기식 (Asynchronous)이 언급하는 대상은 각 core로 주어지는 clock의 frequency control이다.
Asynchronous Multicore라는게 퀄컴에서 내세우는 방식인데, 각 Core별로 Frequency를 다르게 줄 수 있다는 이야기다. 즉, Core 0, 1 이렇게 두개 있을때, Core 0은 1GHz, Core 1은 500MHz 같은 식으로 설정했다가 둘다 1.2GHz로 설정했다가 이런게 된다. 반대로 Synchronous Multicore는 항상 둘의 속도가 같다.

결론부터 이야기 하자면, 양쪽다 제대로 DVFS mechanism을 사용한다고 했을떼, Synchronous multicore는 상대적으로 전력을 더 먹게 되는 점이 있고, 성능에 있어서는 이부분때문에 차이가 나는 경우는 대충 없다고 보면 된다. 따라서 완전 같은 조건에서는 무조건 Asynchronous multicore가 낫다고 해도 될것 같다. (나도 Exynos가 asynchronous가 되었으면 하는 사람인데... 이건 다른 문제고...) 각 코어별로 다른 클럭 줄 수 있게 설계하면 asynch가 되는거고 그냥 하나의 clock source/divider에서 코어들한테 한번에 주면 synch가 되는 것일 뿐.

Exynos4210이 Snapdragon (구체적 제품은 모르겠는데, 대충 4210이랑 같은 세대 제품 기준) 보다 대체적으로 성능이 좋은건 맞는데, 이건 둘이 서로 Synch/Asynch multicore라서 생기는 차이와 무관하고, 버스/메모리/기타IP 들을 봐야 하는 문제다.




또하나 "동기식"이라서 "단일 Task"에 대해 여러 코어가 협력이 가능하다는 이야기는 완전 개뻥인 괴담임.
단일 task에 대해 두 코어에서 협력해서 돌 수있으면 애초에 distributed algorithm이니 뭐니 하고 고민할 이유가 애초에 없음. 그게 진짜 가능한 일이라면 아가님하 포함해 이쪽분야 computer scientist들 전부 다 개삽질 수십년한 것이란 이야기. 그래도 그게 진짜로 가능한 일이라면 실제 내가 담당하는 업무도 상당히 쉬워지긴 하는데, 애초에 불가능한 이야기니 뭐...

두 코어가 협력해서 일을 하기 위해서는 task도 두개 이상으로 쪼개져야 하고, 이 둘이 더 잘 협력하기 위해서는 쪼개진 task들이 서로 연관이 없어질수록 더 좋다. 단언컨데, 논리적으로 하나의 task가 여러 코어에 동시에 동작하는건 안된다. 아니.. 동일 task를 두 코어에 올릴 수는 있는데, 그러면 그냥 한 코어에 한 task올린거보다 느려질걸? ㅋ 그리고, 두 코어에 입력되는 clock이 동일 frequency냐 아니냐는 이 문제에 전혀 무관하다. 두개로 쪼갰는데, 하나는 full frequency 1Ghz기준으로 utilization이 하나는 95%, 하나는 40%면 하나는 1Ghz로 돌고 하나는 대충 500MHz로 돌면서 하는거나 둘다 1GHz로 하는거나 속도면에서는 별 차이 없다. 소모 전력은 좀 많이 차이나겠지만....