저도 최근에 들어서 궁금했던 게 있었는데, 바로' x86(x86-64)'와 'ARM Big.Little 솔루션'의
마이크로아키텍처들입니다.
최근에 검색을 해보니 인텔이 12세대(엘더레이크 마이크로아키텍처) CPU부터 ARM 홀딩스의
'ARM Big.Little 솔루션'판 '인텔 하이브리드 테크놀로지'를 도입했다고 얘기한 것도 있구요.
그리고, AMD도 '피닉스 포인트' APU에 하이브리드 CPU 코어 디자인을 채택해서 설계한다는 소식도
들었는데요.
제가 아직 많이 모르는 시점에서 단순하게 보자면 'CPU 코어를 '성능' 및 '효율' 기능 전용으로 분리 및 CPU 다이에 탑재'하는 거 같은데요.
이게 도대체 무슨 차이가 있으며, 어떤 문제점이 있는 건가요?
무조건 빠른 것만 원한다면 가장 힘쎈 코어만 넣으면 됩니다
그런데 현실적으로 그렇게 된다면 전기만 엄청 먹는 비효율적인 CPU가 되지요
모바일에서는 전력대성능비가 중요하니까 먼저 빅.리틀이 도입이 되었습니다
게임같이 퍼포먼스가 필요한 일은 빅코어(많이 먹구 일잘하는)가 하고
백그라운드에서 푸시데이터처리같은 성능이 크게 필요없는 일은 리틀코어(적게먹고 성능이 떨어지는)가 하는거죠
이론상으로는 완벽해 보이지만....
실제로는 어떤 작업을 빅코어에게 주고, 어떤 작업을 리틀코어에게 주는
작업 배치의 알고리즘이 어렵구요
(게임하는데, 게임 쓰레드가 리틀코어에 할당되어서 퍼포먼스가 안나거나)
그리고 백그라운드에 있던 작업을 다시 포그라운드로 돌릴때
리틀코어에서 작업하던 것이 빅코어로 스위치 되어야하는데, 이런 스위치할때의
효율(스위치 될때 미세한 레이턴시가 생기고), 적절한 스위치 타이밍등을 결정하기가 너무 어렵습니다
그럼에도 이제 현재는 빅코어를 때려박아서는 안되는 한계에 왔기때문에
인텔로 빅코어 + 리틀코어로 가는거고
amd는 빅코어만 썼지만, 이제 amd도 한계를 느끼고
(인텔은 많은 리틀코어를 써서 멀티쓰레드 성능을 크게 높였습니다) 리틀코어를 도입한다는거죠