3D 그래픽의 혁명 Geforce 3! ELSA GLADIAC 920 [3]

중앙일보

입력

Lightspeed Memory Architecture - Crossbar Memory Controller, Z Occlusion Culling

Lightspeed Memory Architecture는 높은 수준의 Fill Rate의 구현을 위해 더 많은 메모리 대역폭을 사용하게 해주면서, 시스템의 부하가 적도록 설계한 Geforce 3에서 새롭게 채택한 메모리 아키텍쳐이다. 전 페이지의 Pixel Shader를 보신 분이라면 메모리 대역폭의 중요성을 알고 계시리라 생각한다.

Crossbar Memory Controller


Crossbar Memory Controller의 원리

Geforce 2나 다른 그래픽 카드 들에서 나타내고 있는 최대 메모리 대역폭은 실행 중간의 최고 성능 수치를 나타내는 것이다. 이는 실제적인 성능의 구현에 있어서는, 시스템의 메모리 응답 지연 시간(memory latency)이 상당히 길어져서 결과적으로는 높은 수준의 Fill Rate의 구현을 위해서는 3D 가속 시간이 길어지고, 시스템의 부하가 크다는 결과를 낳게 된다. 이러한 문제점을 GeForce3에는 어느 정도 해결법을 제시했다. 즉, 메모리 응답 지연 시간을 줄이고 입상(granularity)을 향상시킨 것이다. 이것이 GeForce3의 새로운 크로스바 메모리 컨트롤러(crossbar memory controller)라는 것이다.

GeForce3의 크로스바 메모리 컨트롤러는 4개의 싱글 64비트 폭의 메모리 서브 컨트롤러로 구성되어 있다. 이 서브 컨트롤러들은 기존 SDRAM이나 DDR-RAM에 비해 뛰어난 성능을 발휘하는 데 그 이유는 응답 지연 시간(Latency)와 입상(granularity)을 동시에 다루다는데 있다. 즉 4개의 다른 서브 컨트롤러들은 한꺼번에 페이지를 오픈 할 수 있어 평균 응답 지연 시간을 25% 정도 줄여준다는 것이다 . 또한 서로 간의 메모리 조정(arbitration)이라는 것을 통해 병목 현상으로 시스템의 부하가 커져 문제가 발생하는 경우 상호 작용하여, 메모리 엑세스를 가능한 한 효율적으로 유도하여 준다. 이는 3D 어플리케이션의 버전에 관계없이 유용하게 적용되기 때문에, 당장 GeForce3 사용자들이 크로스바 메모리 컨트롤러(crossbar memory controller)에 의한 이점은 확실히 누릴 수 있다고 생각한다. 이것이 스펙 면으로는 GeForce2 Ultra의 1,000 MPixel/s에 비하여 Geforce 3는 800MPixel/s 밖에 되지 않는 것에 불평을 하는 사람에 대한 해답이며, Geforce 3의 최대 장점이라고 할 수 있는 면이다.

Z Occlusion Culling

Geforce 3의 Z 버퍼 접근법은 바로 Z 버퍼의 읽기 동작을 줄이기 위한 구현 방식이며, Z Occlusion Culling은 기존 ATI RADEON의 HyperZ에서 구현한 Hierarchical-Z를 능가하는데 성공했다고 한다. 이론적인 원리는 3D 파이프 라인 상에서 구현하는 삼각형 설정/레스터라이져(triangle setup/rasterizer)와 Pixel Shader 단계 사이에 이미 렌더링 된 픽셀에 새로운 픽셀이 가려지는지 아닌지를 판별하는 특별한 과정을 말한다. 따라서 시스템과 GPU의 연동을 통해 기존 숨겨진 픽셀을 모두 읽어 픽셀을 구현하여 분석했던 기존의 방식에 비해 Z Occlusion Culling는 특정 영역의 Z 값을 GPU에서 확인을 하여, 숨겨진 픽셀이라고 판단하면, 이 픽셀을 바로 무시해버리고 Pixel Shader로 보내지 않는다. 따라서 픽셀 렌더링 파이프라인의 초기 Z-버퍼 읽기 작업 회수를 줄여주는 효과를 가져온다. 이러한 작업은 3D 어플리케이션의 픽셀 구현 성능에 좌우하는 것이지만 최신의 어플리케이션에서는 속도의 향상을, 구형의 어플리케이션에서는 속도와 좀 더 좋은 3D 그래픽의 구현에 있어서 유리하다는 장점을 가질 수 있다고 생각된다.

High-Resolution Anti-Aliasing – Quincunx AA


AA 방식의 원리

Aliasing이라는 것은 Jaqqies, 즉 외곽선이 톱니 모양으로 일그러지는 현상을 이야기한다. 제작되는 프레임보다 고 해상도에서 이루어지는 경우가 많은 3D 그래픽의 구현에 있어서 달갑지 않은 이 현상을 막기 위해 3D 그래픽을 구성하는 프레임의 필터링(filtering)처리를 통해 화면을 부드럽고 자연스럽게 바꾸는 것을 바로 바로 Anti-Aliasing (이후로는 AA로 표기하기로 한다.) 처리라고 한다. 3dfx와 nVIDIA가 서로 경쟁을 하던 90년대 후반부터, 많은 노력을 기울였던 것이 바로 이 AA의 처리인데, 그 동안은 2x, 4x의 슈퍼 샘플링 방식이나 다중 샘플링 방식의 AA 처리를 통해 이러한 현상을 막아보려했으나, 만족할 만한 수준의 AA 처리가 아니었다는 것이 지배적인 평가였다. 하지만 Geforce 3에서는 기존 샘플링 방식에서 사용되었던 2x, 4x의 AA 방식 대신 Quincunx라는 새로운 다중 샘플링 AA을 사용하여, 기존의 GeForce 계열 칩들과는 다른 방식을 취하고 있다.

Quincunx-AA

Quincunx라는 방식은 2개 샘플의 5개 픽셀을 필터링하여 최종 AA이 적용된 픽셀을 만드는 방법이다. Quincunx의 효과는 거의 4X AA와 같은 수준의 AA 효과를 보여준다고 하는데, 2개의 샘플만을 이용한다는 점이 기존의 AA 방식과의 차이점이다. 기술적인 원리는 다음과 같다.

3D 화면을 렌더링할 때 Pixel Shader는 서로 다른 두 개의 프레임 버퍼 위치에 각 픽셀을 두 번 저장을 한다. 이러한 방식은 AA를 사용하지 않고 렌더링 하는 것에 비하여 리소스 손실이 크지 않다는 장점이 있다. 하지만, 픽셀 렌더링 마지막 단계에 픽셀 기록 작업에 필요한 두 배의 메모리 대역폭이 요구된다는 점인데, 이것은 앞에서 설명한 Light Speed Memory 아키텍쳐를 이용한다면 시스템에 무리한 부하가 걸리지 않는다.

위의 그림과 같이 마지막 프레임 픽셀이 렌더링되는 시점에서 GeForce3의 HRAA 엔진은 하나의 샘플 버퍼에서 가상적으로 픽셀의 x, y, 좌표를 1/2 편이 시킨다. 이러한 방식은 첫 번째 샘플의 각 픽셀들이 두 번째 샘플의 각 픽셀들 4개로 둘러 쌓인 것과 같은 효과를 나타내게 된다. 그림에서 보듯이 첫 번째 샘플과 두 번째 샘플들은 서로 대각선 길이의 1/2 만큼 거리를 두고 있다. HRAA 엔진은 이러한 5개의 픽셀들을 필터링하여 AA이 적용된 픽셀을 만드는 것이다. 다음은 이러한 AA 방식의 차이를 보여주는 그림이다.

Hello Voodoo5 - GeForce3의 다중 샘플링 기능 AA

GeForce3에서도 Hardware적인 다중 샘플링 AA를 사용하고 있다. (3dfx의 기술 인수를 통해 Geforce3에 Voodoo 5의 하드웨어적인 다중 샘플링 기술을 삽입한 것으로 생각된다.) Per-Vertex Motion-Blur의 대안으로 GeForce3는 이 효과를 다중 샘플링 AA을 이용하여 구현할 수 있다. 또 다른 다중 샘플링 효과는 ''Depth-of-Field''로, Zoom In, Zoom Out과 같은 초점이 변하는 현상을 구현할 수 있다.

이중민
자료제공:pcbee(http://www.pcbee.co.kr)

ADVERTISEMENT
ADVERTISEMENT