파워VR

파워VR(PowerVR)은 이매지네이션 테크놀로지의 그래픽 사업 부문으로, 2D/3D 가속, 비디오 인코딩/디코딩, 이미지 프로세싱, DirectX, OpenGL ES, OpenVG, OpenCL 가속 등을 지원하는 임베디드 그래픽 하드웨어 및 소프트웨어를 개발하고 있다.
초기 PowerVR 제품군은 데스크톱 PC 시장에서 3dfx와 같은 기존 회사의 그래픽 카드보다 더 나은 가격대 성능비로 경쟁하는 제품이었다. PC 그래픽 카드 시장이 OpenGL과 Direct3D 등장 이후로 빠르게 변화하면서, PowerVR과 같은 소규모 업체는 시장에서 퇴출되었었다.
이후 PowerVR은 노트북 컴퓨터를 대상으로 한 저전력 그래픽 카드인 GPU(그래픽 처리 장치)로 방향을 전환하였다. 시간이 지나면서 임베디드 시스템, 핸드헬드 장치, 스마트폰의 급격한 시장확장으로 여기에 사용되는 SoC에 사용될 수 있도록 변화하였다. PowerVR 가속기는 PowerVR에서 직접 제조하지 않으며, 회로 설계 및 특허권은 TI, 인텔, NEC, 삼성, ST마이크로일렉트로닉스, 프리스케일, 애플, NXP 등 반도체 제조 회사에 라이선스된다.
기술.
PowerVR 칩셋은 3D 처리에 타일 기반 지연된 렌더링(Tile-based deferred rendering, TBDR)을 사용한다. 폴리곤을 생성하는 프로그램이 드라이버에 삼각형 정보를 전달해 주면, 드라이버에서는 메모리에 연속된 삼각형이나 인덱스 형식으로 저장한다. 다른 아키텍처와는 다르게, 현재 비디오 프레임에 사용되는 모든 폴리곤 정보가 도착하기 전까지 렌더링이 실행되지 않는다. 또한, 가능한 경우 각각 픽셀에서 어떤 표면이 보이는지를 결정하기 전까지 텍스처와 셰이딩 작업이 지연된다. 지연된 렌더링은 이러한 아키텍처를 이야기한다.
렌더링 과정에서 전체 디스플레이는 작은 사각형 그리드로 나뉘며, 각각의 그리드는 타일로 취급된다. 각각 타일에는 그 타일 내에서 보이는 삼각형 정보가 연결되며, 타일별 렌더링된 이미지가 합쳐져서 전체 이미지가 나타난다. 타일 렌더링 과정은 레이캐스팅과 비슷하게 이루어진다. 각각 광선은 타일별 삼각형에 비쳐지며, 각각 픽셀은 카메라에서 가장 가까운 삼각형에 의해서 그려진다. PowerVR 하드웨어는 개별 타일 행과 연결된 다각형의 깊이 정보를 1 사이클에 계산한다.
이 방식은 안 보이는 폴리곤을 그리지 않아도 된다는 장점을 가지고 있다. 또한 폴리곤 처리 순서와는 관계 없이 반투명 폴리곤의 투명도를 올바르게 처리할 수 있다. (시리즈 2 및 MBX에만 구현되었다. API 지원 문제 및 비용 문제 때문에 일반적으로 포함되지 않는다.) 한 번에 렌더링이 한 타일만 이루어지기 때문에, 전체 타일을 더 빠른 칩 메모리에 저장해 두고 다음 타일을 처리하기 전에 비디오 메모리에 복사할 수 있다. 일반적인 경우 개별 타일은 프레임당 한 번만 처리된다.
현재 PowerVR은 그래픽 시장에서 유일한 TBDR 기반 카드이다. 마이크로소프트는 탤리스먼 프로젝트에서 타일 기반 렌더링을 연구했던 적이 있었다. 타일 기반 3D 그래픽 기술을 개발했던 기가픽셀 사는 3dfx에 인수되었고, 이후 엔비디아에 인수되지만 엔비디아에서는 타일 기반 렌더링을 도입할 계획이 없다. 인텔은 내장 그래픽에서 비슷한 개념인 존 렌더링을 사용하고 있으나, 숨은 공간 삭제(HSR) 및 지연된 텍스처 작업을 완벽하게 실행하지 않는다.
현재 PowerVR 소프트웨어 및 하드웨어는 동영상 인코딩/디코딩, 이미지 프로세싱, DirectX, OpenGL ES, OpenVG, OpenCL 가속 등을 지원한다.
PowerVR 칩셋.
시리즈 1 (NEC).
PCX1(μPD62010) 및 PCX2(μPD62011) 모델이 존재한다. PCX1 모델은 1996년 출시되었고, 초당 30만 폴리곤을 처리할 수 있다. PCX2 모델은 1997년 출시되었고, 초당 45만 폴리곤으로 성능이 향상되었다. PCI 버스 확장 카드는 4MB 전용 비디오 메모리를 탑재하였고, 3D 가속 전용으로 출시되었기 때문에 별도의 2D 카드가 필요하다. 비디오 오버레이 기능 및 그래픽 카드 메모리에 직접 접근하는 기능을 제공한다. Direct3D 및 전용 API인 SGL(Super Graphics Library)를 지원한다. 컴팩과 같은 컴퓨터 회사에 OEM으로 납품되기도 했고, 매트록스와 같은 회사에서 PCI 카드로도 출시되었다.
시리즈 2 (NEC).
2세대 PowerVR2(칩 코드명 CLX2)는 1998년 2월 23일 출시되었다. 2D 표시 기능이 추가되어서 PC 플랫폼에서 독립된 카드로 작동할 수 있다. 세가에서는 새턴의 후속 기종 드림캐스트를 설계하면서 내부 경쟁을 벌였다. 그 결과 3dfx 부두 2를 제치고 PowerVR2가 선정되었다. 그 결과 드림캐스트로 출시된 퀘이크 III 아레나와 같은 게임은 PC 버전에 비해서 성능과 화질이 더 좋았다. PC용으로 출시된 Neon 250은 시장에 늦게 등장하였고, 출시 당시에는 중급형 그래픽 카드 시장에 머물러야 했다.
시리즈 3 (ST).
2001년 ST마이크로일렉트로닉스에서는 PowerVR 3세대를 라이선스하여 STG4000 카이로 및 STG4500 카이로 II 칩에 사용하였다. 당시 경쟁 제품인 ATI 라데온 DDR 및 엔비디아 지포스 2 GTS의 성능을 앞질렀으나, 하드웨어 T&amp;L 기능이 없었다. 많은 게임에서 하드웨어 T&amp;L 기능을 지원하면서 카이로 II의 성능상 이점이 퇴색되었다.
시리즈 4 (ST).
PowerVR 4세대 기반인 STM의 STG5000 칩셋은 하드웨어 T&amp;L을 지원하였으나, 시장에 출시되지는 못하였다. STM에서 그래픽 칩셋 사업을 중단하면서 STG5000 및 카이로 3 칩셋의 출시가 취소되었다.
MBX.
PowerVR은 모바일 그래픽 시장에 저전력 PowerVR MBX를 출시하였다. MBX와 후속작 SGX는 인텔, TI, 삼성, NEC, NXP, 프리스케일, 르네사스, 선플러스에 라이선스되었다. 아이폰 1세대, 노키아 N95, 소니에릭슨 P1, 모토로라 Z8, 아이팟 등 스마트폰 및 미디어 장치에 사용되었다.
MBX는 MBX 및 MBX Lite 두 종류로 출시되었다. 두 제품이 지원하는 기능은 같으나, MBX는 속도에 최적화되었고 MBX Lite는 저전력에 최적화되었다. MBX는 FPU, Lite FPU, VGP, VGP Lite와 함께 사용될 수 있다.
비디오 및 디스플레이 코어.
PowerVR은 비디오 코어(MVED/VXD) 및 비디오/디스플레이 코어(PDP)를 지원하기 시작하였다. HD/SD 동영상 디코딩을 지원한다. PDP 시리즈는 소니 브라비아와 같은 HDTV에 사용되었다.
시리즈 5 (SGX).
PowerVR 시리즈 5 SGX는 픽셀 셰이더, 버텍스 셰이더, 지오메트리 셰이더를 하드웨어에서 지원하며, OpenGL ES 2.0 및 DirectX 10.1, 셰이더 모델 4.1을 지원한다.
SGX GPU 코어는 다양한 포터블 장치의 SoC에 사용되었다. PowerVR이 사용된 장치 SoC는 애플 A4, TI OMAP 3 및 4, 삼성 허밍버드 등이다. 인텔은 메드필드 플랫폼에서 SGX540을 사용하였다.
시리즈 5XT (SGXMP).
PowerVR 시리즈 5XT SGXMP 칩은 SGX 시리즈의 다중 코어 버전으로 추가 개선이 이루어졌다. 플레이스테이션 비타 장치에는 PowerVR SGX543(MP4+) 모델이 채용되었다. 일반적인 MP4 모델과의 차이는 소니 제품을 위해 추가된 기능이 있다. MP4는 쿼드코어, MP8은 옥타코어 기반 칩이다. 애플 A5를 사용하는 아이패드 2세대 및 아이폰 4S 칩에는 듀얼코어 SGX543MP2가 탑재되어 있다. 아이패드 3세대는 쿼드코어 MP4가 탑재되었다.
SGXMP는 단일 및 다중 코어 구성으로 사용될 수 있다.
시리즈 6 (Rogue).
PowerVR 시리즈 6은 코드명 'Rogue'인 새로운 아키텍처를 채용하였다. ST-에릭슨은 개발 중인 NovaThor 프로세서에 PowerVR 시리즈 6을 탑재할 예정이라고 밝혔다. 미디어텍은 태블릿 대상 쿼드코어 MT8135(Cortex-A15 및 A7 각각 2개) 칩에 PowerVR 시리즈 6을 탑재할 것이라고 밝혔다. 시리즈 6 코어를 여러 개 장착한 시리즈 6XT가 현재 개발 중이다.
클러스터당 2개의 TMU를 장착하였고 최대 GFLOPS는 FP32 값에만 해당된다. G6x00 계열은 면적, G6x30 계열은 성능에 최적화되었다.
참조.
모바일 GPU 동향(ETRI-전자통신동향분석, 2013,한진호,변경진,엄낙웅)