잡담 에뮬레이터를 구동하는 성능에 대한 잡담...
2012.03.04 01:35
에뮬레이터
"기기의 원래 성능/기능이 아닌, 다른 기기의 성능/기능을 최대한 원본그대로 구동하는 시스템"
게임 에뮬레이터들은 클럭빨에 영향을 엄청 받습니다.
왜냐구요?
A가 원판이고, B와C가 A를 흉내내는 에뮬레이터를 구동하는 상황이라고 칩시다.
에뮬레이터 환경자체가, 에뮬레이터를 만든 프로그래머가 엄청 머리가 좋아서, A에서만 구현가능한 명령어를 B에서 사용할수 있는명령어로 적절히 대처해놨으면 모를까, 흉내내는 환경입니다.
A에서는 1줄짜리 특수효과 명령어 인데,
B에서 그걸 흉내내려면 몇백줄이 필요할수도 있죠.
C도 엇비슷하게 몇백줄이 필요하겠구요.
그 몇백줄 짜리 명령어를 처리함에 있어서, B와 C는 비슷환 환경입니다. 둘다 A가 아니니, 원래짜여진 프로그램대로라면 A의 프로그램을 실행시킬수가 없죠.
B와 C, 각각이 가지고 있는 특수명령어는, 정말 각각을 위해 짜여진 프로그램에서만 쓸수 있으니, A를 위한 프로그램을 에뮬레이팅하는 과정에있어서는 무용지물입니다.
그럼 뭐가남을까요? 그렇죠. "High클럭, HIgh퍼포먼스"라는 클럭깡패 밖에 남지 않습니다.
PowerVR의 SGX 시리즈는 저전력,저발열을 클럭으로 잡았습니다. 저클럭에서도 고성능을 내기위해선, 특수명령어 밖에 없죠.
SGX의 대부분의 시리즈가 놀랍게도 200mhz이하입니다.[SGX 540의 후기형들은 클럭수가 2배가까이 높아졌습니다만, 이건 우려먹기위해서 늘린것이니 예외로 치구요...] SGX시리즈가 제성능을 제대로 낼수 있었던것은, 메이저 제조사들이 선택해줬기 때문입니다.
OMAP이 선택을 해줬고, 삼성과 애플이 선택해줬습니다. OMAP은 모토로라를 비롯한 대기업들에게 선택을 받았구요.
앱개발사들은 삼성,애플,모토로라 등 대기업들의 하드웨어에 최적화시켜 자신들의 앱을 내놨습니다.
따라서, SGX가 다른GPU들 보다 상대적으로 저클럭에서도 널널하게 앱들을 구동할 수 있었지요.
RK2918에 쓰인 GC800은 특수명령어는 적지만, 고클럭 깡패로 처리합니다.[발열과 배터리효율,전력은 뒷전으로~?]
GC800은 기본 315Mhz, +버전은 575Mhz라는, 엄청난 속도로 작동합니다.
덕분에, 특수명령어 범벅인 안드로이드 네이티브 앱들에서 호환성은 많이 떨어지지만,
모든 칩셋의 특수명령어를 제대로 쓰지못하는 에뮬레이팅 환경에서는 깡패가 됩니다.
에뮬레이터앱이, SGX의 특수명령어를 에뮬레이팅할 환경에 잘 끼워맞춰서 퍼포먼스를 끌어낼수도 있지만, 기본적으로 단순한 명령어를 빠르게 처리할 수 있는 능력을 나타내는 클럭[mhz]가 높은녀석이 에뮬레이팅에 있어서는 짱먹고 들어갑니다. [그런의미에서 엑시노스4210에 쓰인 Mail400 MP4는 267mhz로 작동하는 코어가 4개이니...엄청나죠...ㅡㅡ;;;]
또, 성야무인님께서 언급하셨듯이, 에뮬레이팅에서는 PS1에뮬레이팅에서는 I/O부분이 많이 중요합니다.
PS1은 매체[CD]의 용량압박이 좀 있었습니다. 따라서, 같은 컨텐츠라도 압축해서 넣을 수 밖에 없었죠.
이걸... 수년이 지난 지금, 모바일에서, PS1에만 있는 압축해제 알고리즘을 모바일CPU에서 고클럭 단순명령어로 대체하면서[대체할지, 비슷한 특수명령어를 넣을지는 에뮬레이터를 만드는 제작자의 마음먹기에 달려있습니다만;;;]파일을 읽어와야 합니다.
거기에다가, 콘솔기기들은 엄청나게 빠르게 특수제작된 캐시와 메모리를 가지고 있습니다. 아무리 구형 콘솔이라도 엄청난 속도의 캐시와 메모리를 일반 모바일용 LPDDR램으로 때우려니, I/O가 중요할 수 밖에 없죠... PC기준에서는 별것아닌 알고리즘이고, PC에서 범용적으로 쓰이는 SSE 1,2,3 같은 명령어 셋들이 PS1의 알고리즘들을 넉다운시킬수 있을정도로 효율적이고 빠르기 때문에 별문제가 안됩니다만, 모바일은... 많이 발전했다고는 해도, 아직까지는 무리가 있죠... AP별로 명령어들이 다 다르고... 복잡합니다 ㅡㅡ;
결론.
에뮬레이터 제작자가 천재가 아닌이상, 고클럭칩셋이 에뮬레이팅환경에선 장땡이다 ㅋㅋ~
사실 이런건 고민할 필요없이 좋은 CPU에 좋은 GPU를 가지고 램이 빵빵한 기기면 장땡입니다. 단지 저가 타블렛을 쓰니까 어떻게 하면 최적화를 시킬까라는 고민을 하는것이겠죠. ^^;