기글 하드웨어 뉴스 리포트
| 출처: : | http://pc.watch.impress.co.jp/docs/colum...78661.html |
|---|
PowerVR의 새로운 GPU 코어 아키텍처
영국 Imagination Technologies는 PowerVR의 차세대 시리즈 PowerVR Series6(Rogue)를 개발해 OEM에 제공해 왔습니다. 아키텍처를 새로 바꾼 PowerVR 6 계열은 2013년부터 실제 제품이 등장하기 시작하며, 앞으로 나올 아이폰이나 아이패드, 여러 회사의 스마트폰이나 태블릿에서 Rogue 아키텍처의 GPU를 탑재하고 있을 가능성이 있습니다.
Rogue의 목적은 반도체 기술이나 메모리 기술의 진화를 이용해 모바일 GPU의 성능을 수백GFLOPS까지 높이는 것입니다. 특히 대규모 GPU 구성에 최적화해 GPU의 성능/전력/다이 면적의 효율을 끌어올리고, 텍스처가 풍부한 그래픽에 최적화해, 성능을 높일 뿐만 아니라 새로운 모바일SoC(System on a Chip)이나 그래픽 기술의 트렌드에 따르는 아키텍처를 만들어 내는 것입니다.
Imagination Technologies의 GPU 코어는 PowerVR Series5부터 멀티 코어를 대응하는 PowerVR Series5XT로 진화해 왔습니다. PowerVR의 연산 유닛 구성은 2~3년 전까지 는4~8개의 ALU(Arithmetic Logic Unit)가 주류였지만, 지금은 최고 사양이 128 ALU까지 늘어났습니다. 모바일 SoC 중에서는 CPU 코어가 늘어나는 것보다 더 빠른 속도로 GPU 코어의 연산 유닛이 급격히 늘어나고 있습니다.
PowerVR의 로드맵
PowerVR Series6(Rogue)는 이런 흐름에 맞춰 새로 개발한 아키텍처 코어로, 보다 규모가 크고 강력한 코어를 목표로 하고 있습니다. Rogue 계열 중에선 벌써 1세대인 PowerVR G6x00계열 중에 G6400/G6200이 발표되었으며, 지난 11월에는 2세대인 PowerVR G6x30계의 G6630/G6430/G6230까지 3개 계열이 발표됐습니다.
Rogue세대의 명명 규칙은 첫 번째 자리의 숫자인 6이 아키텍처, 그 다음 숫자가 쉐이더 프로세서의 클러스터 구성, 그 다음이 세대를 나타냅니다. PowerVR Series5계에서는 마지막 한자리가 지원하는 API의 차이를 나타냈지만, Rogue 세대에선 어떻게 되는지 알 수 없습니다.
PowerVR Series5계와 비교해서 명명 규칙이 가장 큰 차이를 보이는 부분은, 지금까지는 프로세서 구성의 차이가 코어 수의 차이기 때문에 이름 끝에 MP2 등의 멀티 프로세서 표시를 따로 했던 반면, 이번에는 클러스터 구성의 차이를 직접 표기한 것입니다. 이 명명 규칙의 차이는 아키텍처의 차이를 나타내는 것이기도 합니다. 자세한 건 나중에 설명합니다.
Imagination Technologies는 소프트 매크로로 GPU 코어를 제공하기 때문에, 코어를 발표하고 나서 실제 SoC에 적용하기까지 시간이 1년 이상 걸립니다. Rogue는 아키텍처 개발을 2010년에 발표했고 코어 제공을 2012년 1월에 발표했으니 등장은 2013년이 될 전망입니다.
반도체나 메모리 기술의 진보에 맞춘 아키텍처의 진화
현재까지 알려진 Rogue의 가장 큰 특징은 PowerVR이 이번 세대에서 PC 그래픽과 많이 가까워졌다는 것입니다.
우선 (1) GPU 코어의 구성을 바꿔 보다 대규모의 프로세서 구성을 쉽게 할 수 있도록 했고, (2) GPU 코어 내부의 명령 제어를 큰폭으로 변경해다이 면적이나 전력 당 성능을 끌어 올렸으며, (3 텍스처 파이프를 프로세서와 동기해 측정할 수 있는 구성으로 만들고 텍스처를 많이 쓰는 현대적인 그래픽에 대응한데다, (4) DirectX 10 이후의 최신 API에의 대응까지도 마쳤습니다(아직까진 일부 지원).
그리고 이런 특징은 반도체나 메모리 기술의 진보와 연결된 것입니다. 프로세스의 미세화에 의해 더 많은 연산 유닛을 넣을 수 있게 된 것입니다. PowerVR Series6은 28nm 프로세스 이후를 목표로 하고 있습니다.
그러나 쓸 수 있는 트랜지스터 수는 늘어나도 소비 전력을 줄이는 건 상대적으로 힘들기 때문에 성능/전력을 향상시키지 않으면 안 됩니다. 또 모바일 메모리는 2년마다 2배 주기로 대역을 크게 늘리고 있습니다. 메모리 대역은 예전만큼 큰 제약이 아니기 때문에 텍스처를 많이 읽어 들이는 것도 가능해졌고, 그 결과 쉐이더 성능이나 텍스처를 많이 쓰는 그래픽을 지원하기 쉬워졌습니다.
기존의 PowerVR 아키텍처는 최대 16~32 APU가 1개의 GPU 코어를 구성했습니다. 이보다 규모를 더 늘리는 구성에는 GPU 코어 자체를 여러개로 늘린 멀티코어 구성을 썼습니다. 아래는 PowerVR SGX544의 것으로 추정되는 다이어그램인데, 중앙의 파란색이 연산 유닛 ALU입니다. SGX544는 4 파이프로 구성되어 있습니다.
PowerVR SGX 54x MP4의 블럭 다이어그램
PowerVR SGX 54x의 블럭 다이어그램
PowerVR Series5 계열에서는 코어당 연산 유닛의 수가 4 ALU 정도의 소규모 구성부터 시작해 4파이프 16 APU 구성까지 있으며, 최신인 PowerVR SGX 554에서는 8파이프 32 ALU 구성까지 확대했습니다. 하드웨어의 태스크 스케줄러인 Coarse Grain Scheduler (CGS)가 각각의 ALU를 제어합니다. 그리고 아이패드나 아이폰 같은 고급형 모바일 디바이스에서는 코어를 여러개 넣고, 각각의 코어가 화면의 다른 부분을 렌더링해 멀티 코어 동작을 하게 됩니다.
PowerVR Series5의 파이프라인 확대
PowerVR Series5의 태스크 스케줄러
여러 코어로 화면의 다른 부분을 렌더링
클러스터 구성이 된 Rogue의 GPU
PowerVR Series6은 이 구성을 원점부터 재검토했습니다. 현재의 PowerVR Series5XT는 1개의 GPU 코어에 Coarse Grain Scheduler(CGS)가 제어하는 프로세서 클러스터가 1개인 구성이 됩니다. 그러나 PowerVR Series6은 1개의 GPU 코어 안에 CGS가 제어하는 프로세서 클러스터를 여러개 넣을 수 있습니다. 그 덕분에 GPU 코어를 여러개로 늘리지 않아도 GPU 코어 안의 클러스터를 늘려 연산 프로세서 수를 늘리는 것이 가능합니다.
PowerVR Series5의 태스크 스케줄러
즉, 지금까지는 작은 ALU 구성을 주목적으로 설계한 GPU 코어를 멀티 코어 구성으로 무리하게 만들어 대규모 ALU 구성으로 확대해 왔습니다. 그러나 PowerVR Series6에서는 GPU 코어 자체의 설계가 대규모 ALU 구성을 전제로 해서 만들어지게 됩니다. 구체적으로는 현재 발표된 코어 중에 G6200과 G6230이 2클러스터 구성의 코어고, G6400과 G6430이 4클러스터 구성의 코어입니다. G6630은 6 클러스터 구성의 코어입니다.
PowerVR G6630의 블럭 다이어그램

PowerVR Series6의 개요
아래는 추정 블럭 다이어그램으로 6 클러스터 PowerVR G6630의 예를 나타내고 있습니다. PowerVR Series5에서 클러스터는 Universal Scalable Shader Engine (USSE)라 불렀지만 PowerVR Series6에선 USC(Unified Shading Cluster)라 불립니다. 클러스터와 텍스처 유닛을 묶은 코어가 Unified Shading Cluster Array (USCA)입니다. 각 클러스터가 16 ALU의 구성이라면 PowerVR G6630은 총 96 ALU의 구성이 됩니다.
PowerVR G6630의 블럭 다이어그램
또 PowerVR Series6도 멀티 코어 구성으로 하면 더 대규모의 GPU 구성을 뽑는 것이 가능할 것으로 예측됩니다. ST-Ericsson은 PowerVR Series6을 쓴 최초의 모바일 SoC일 것으로 보이는 Nova A9600을 개발하고 있습니다. Nova A9600은 PowerVR G6400을 내장했을 것으로 추측되지만 연산 성능은 210GFLOPS에 이른다고 발표한 바 있습니다. G6400이 64 ALU구성이라면 일반적인 모바일 GPU의 클럭에서는 이 성능이 나오지 못하기 때문에 Nova A9600은 PowerVR G6400의 멀티 코어 구성일 가능성이 높습니다.
PC용 GPU와 비슷한 접근 방식인 PowerVR Series6
Imagination Technologies의 PowerVR Series6은 GPU 코어 아키텍처가 멀티 클러스터 구성으로 바뀌었습니다. GPU 코어의 구성을 바꿔 보다 많은ALU를 넣은 대형 코어가 됩니다. Imagination Technologies는 지금까지 다양한 SoC의 요구에 응하기 위해 코어 자체의 구성을 유연하게 바꿀 수 있음을 강조했습니다. 코어 당 파이프라인의 수는 로우엔드의 PowerVR SGX520이 싱글 구성이지만, PowerVR Series6은 일정한 규모의 구성으로 높인 것으로 보입니다.
또 PowerVR Series6의 클러스터 방식은 코어를 복제하는 기존 방식과 비교하면 낭비를 줄여 다이 효율이 높아지는 것을 의미합니다. 이런 구성의 변경만으로도 같은 다이 크기에 보다 많은 프로세서를 넣는 것이 가능하게 됩니다. 또 여러 클러스터를 제어하는 하드웨어 스케줄러가 프로세서에 대한 태스크의 할당을 하기 때문에 스케줄링 효율도 향상합니다.
이런 아키텍처는 지금까지 PC용 GPU에선 일반적인 것이었습니다. PC용 GPU는 내부를 클러스터화하고, 클러스터 구성을 줄이고 늘려 로우엔드부터 고급형까지 다양한 제품을 만들었습니다. PowerVR Series6의 아키텍처는 같은 일을 하고 있습니다.
또 GPU 구성 뿐만이 아니라 Imagination Technologies는 GPU 코어 안의 스레드 스케줄링에 대해서도 PC용 GPU적인 방법을 도입합니다. 지금 쓰는 근단적으로 작은 분기 밀도(픽셀이나 버텍스 단위)에서 일정한 크기를 가진 플로우 컨트롤로 바뀔 전망입니다. 이것 역시 GPU 코어의 성능/다이 크기/전력을 높이기 위해 중요한 방법입니다.


