win98이 발매되기 전의 글이군요.. 그리고 이 글에 나오는 'ATI 레이지 프로'는 'S3 verge'와 같은 1세대 3D 카드로서, Direct 3D가 완전하게 지원되지 않는 그런 카드랍니다.
[AGP에 대하여]
AGP(Accelerated Graphics Port)는 인텔에서 내놓은 차세대 버스방식으로, 기본적으로 비디오카드의 프레임버퍼를 사용하는 대신 시스템 메모리를 텍스처버퍼/ Z버퍼/ 알파버퍼 등의 목적으로 사용할수 있게 함으로써 (일종의 융통성을 강화시킨다는 측면에서는 인텔이 전에 내놓은바 있는 UMA(Unified Memory Architecture)와 비슷한 맥락이라고도 볼 수 있다),
텍스처 관리능력을 대폭 강화시키고 아울러(사실은 더욱 핵심적인) 폴리곤수를 증가시킬수 있도록 데이타 전송 능력을 향상시키기 위해서 기존의 PCI 버스를 개선한 것이다. 버퍼 사용의 융통성을 일례로 설명하자면, 2MB 그래픽 카드의 경우에도 AGP 버스일 경우, (2MB는 프레임버퍼로 놓고) 4-8MB의 텍스쳐버퍼를 할당받아서 사용이 가능하다 . 이밖에도 AGP의 또다른 메리트중의 하나는, 텍스쳐페칭(메모리로부터 텍스쳐데이타를 읽어들이는 것)이 프레임버퍼로 들어가는 다른 억세스(비디오 메모리에 쓰기)가 종료하기를 기다릴 필요없이 독립적으로 처리될 수 있다는 점을 들 수 있다. 따라서 텍스쳐관리는 버퍼상황에 따라 유동적으로 처리할 수 있는 스케일러블 프로그램의 경우에는 고해상도로 갈수록 발군의 성능향상을 보인다.
현재 초고성능 비디오카드들의 상당수도 Z버퍼나 프레임버퍼 할당은 상당히 미온적인 편인데, 이러한 비디오카드를 사용하여 3D게임을 플레이하게 되면 스와핑을 통해 그 비좁은 버퍼안에 무수히 읽고쓰는 작업을 반복해야 하므로 거의 환상적으로 시스템이 느려질수 밖에 없다. 그러나 AGP버스방식의 카드에서는 이러한 현상(texture thrashing)이 대폭 개선되므로 굳이 'AGP대응'이 아니더라도 텍스쳐사용이 빈번한 게임 등의 3D 어플리케이션에서는 "이론적으로는" 상당한 성능향상을 기대할 수 있다고 한다. 시스템 메모리 데이타와 캐시데이타를 검증하는(메모리간의 전 트랜잭션에 대하여 별도로 추가조작이 더해진다) 스누핑의 경우에도 PCI 버스 억세스에 대해서는 프로세서의 검증사이클링에 간섭하는 결과를 초래하여 성능이 크게 저하되는 부작용이 있었으나, AGP에서는 아예 스누핑을 디저블시킴으로써 성능저하요인을 제거했다.
그러면 기존 PCI와 다른점을 구체적으로 들자면 어떤것이 있을까?
AGP자체가 원래 PCI의 일종의 변태버전으로도 생각되어질 수 있으며 실제로도 PCI 2.1(펄스 66MHz) 규약에 기반하여 만들어져있다. 그러나 메모리 읽기/쓰기 기작에 대한 파이프라이닝이 크게 강화되어 메모리억세스 대기상태를 줄이거나 버스효율을 거의 100%에 가깝게 만드는 어드레스/데이타 디멀티플렉싱 및 133MHz의 전송률은 PCI 규약에서는 전혀 정의되어 있지도 않고 지원되지도 않는 기능들이다. 그러나 기존 PCI를 대체하기보다는 설계의도 자체가 비쥬얼 관련기기전용으로 개발된 것이기 때문에, PCI는 PCI대로 존속할 것이 확실시되고는 있으나 역시 별도의 다른 방식으로, 이를테면 64비트 버스의 채용과 같은 식으로 개선될 예정으로 있다.
AGP에서 이루어지는 핵심은 2가지의 전송모드로 구분할 수 있다.
하나는 DMA모드로 프로세싱이 순차적으로 처리됨에 따라서 AGP채널을 통한 데이터의 전송(텍스처데이타 전송)은 렌더링프로세스가 시작되기 전에 반드시 종료되어야만 한다. 또한 DMA모드에서는 AGP버스를 통해 주로 텍스처와 다른 데이타를 시스템 메인 메모리로부터 그래픽프로세서의 로컬프레임 버퍼로 실어 나르는 작업을 하게 되며, 렌더링작업도 그래픽프로세서의 로컬프레임 버퍼에서 이루어지게 된다. 이러한 의미에서 보자면 DMA모드는 기존 PCI 구조와 별다른 차이점이 없는 것으로도 생각할 수 있다 (실제로 거의 같은 것이기도 하다.) 따라서 실용화가 간단한 편이라는 장점이 있기는 하지만, 익스큐트모드보다는 속도가 훨씬 떨어진다는 단점이 있다. 익스큐트모드는 Z버퍼링, 텍스쳐 매핑 등의 일부 3D 작업이 시스템 메모리에서 이루어지게 되므로 데이터 전송이나 렌더링 등의 프로세싱을 동시에 수행할수 있어 성능면에서도 DMA모드보다 월등히 우수한 편이며, 따라서 시스템 메인메모리와 그래픽프로세서를 연계해 주는 버스스피드가 성능에 큰 영향을 끼치게 된다.
현재 익스큐트모드를 공식적으로 지원하고 있는 칩셋은 ATI 레이지 프로 정도일뿐으로 거의 전무한 실정으며, 이는 간단히 말해 풀모드(133MHz x2) AGP가 지원되더라도 막상 제기능을 발휘할 만한 비디오카드가 현재로서는 별로 없는 셈이라고 할 수 있다(사실 x2 133MHz 모드를 스펙상으로 지원하는 칩셋도 레이지 프로를 제외하면 당분간은 "없다"고 해도 완전히 틀린말은 아닐것이다.) 간단히 말해, 익스큐트모드상에서 AGP의 133MHz 클럭이 실클럭으로 기동하게 되어야 흔히들 기대하는 AGP의 성능이 발휘되기 시작하는 셈이고, 실제로 여타의 모드에서는 PCI 2.1과도 별다른 성능격차를 보이지 못하고 있으며 이와 관련된 사례는 바로 아래의 PCI/AGP 카드별 성능비교를 통해서 확인할 수 있을 것이다. 그러면 왜, 하필이면, 어째서, 도대체, 무엇 때문에, 시스템메모리를 대용하는 것이 어떤 면에서 효과가 있다는 것일까? 물론 성능면에서 보자면 그래픽카드에 프레임/텍스쳐 등의 처리를 위한 대용량의 버퍼로 비디오 메모리를 대폭 확장하고 로컬쪽에서 모든 작업을 수행하는 것이 가장 빠른 속도를 구가할 수 있는 방법이긴 하지만, 역시 문제가 되는 것이 가격이기 때문이다. 텍스쳐의 경우. 시스템 메모리에서 처리하는 이유를 들자면 대충 4가지 정도를 들 수 있다.
1. 텍스쳐는 보통 읽어들이기만 하고 변경되는 일이 거의 없기 때문에 특별한 억세스 제어나 간섭 문제등이 발생하지 않는다.
2. 캐싱된 프로세서로 로컬 그래픽 메모리와 시스템메모리간의 전송작업을 수행하는 것이 3D 렌더링 엔진으로 동일한 작업을 수행할 때보다 대역폭에 걸리는 부하가 적다는 점에서 장점으로 작용한다. 특히 텍스처 억세스의 경우 렌더링, 디스플레이및 Z버퍼등의 여타 작업에 비해 메모리대역폭에 의존하는 비중이 대단히 높기는 하지만, 그 대역폭이라는 것이 맨 처음에 사용할때 로딩할때만 필요한 것이기 때문에 시스템 메모리에서 처리하는 편이 더욱 유리하다.
3. 텍스처의 크기는 디스플레이해상도보다는 어플리케이션의 수준에 의존하는 비중이 높은 편이다.
4. 텍스처 데이타 역시 영구적으로 사용되는 것이 아니라 해당 어플리케이션이 구동중인 경우에만 사용되기 때문에, 텍스처 저장용으로 사용된 메모리영역도 그 어플리케이션이 종료되면 다른 용도로 사용할 수 있다.
물론 텍스처외의 데이타도 시스템메모리쪽에서 작업할 수는 있지만 텍스쳐를 사용하는 것이 가장 메리트가 있다. 앞서 설명했던 것처럼, AGP의 가장 큰 목적중의 하나는 시스템메모리를 텍스처버퍼로 대용함으로써 8MB이상의 비디오메모리가 없이도 충분한 성능을 구현할 수 있도록 하는, 즉 가격대 성능비면에서 최상의 솔루션을 제공한다는 점을 들 수 있다.
이와 아울러, 앞서 언급했듯이 PCI의 병목으로는 도저히 수용할 수 없는 폴리곤수의 정보량을 처리할 수 있도록 전송속도를 향상시킴으로써 소위 말하는 1백만 폴리곤의 벽을 뛰어넘음으로서 아케이드게임기 수준의 화면을 구현하겠다는(버파3가 돌아가는 모델3 기판의 경우 풀모드에서 1백만(SGL1.0) - 2백만(SGL 2.0)의 폴리곤수 구동이 가능하다) 의도도 매우 강력하게 내재되어 있는 것으로 보인다.
AGP x1 모드라 함은 AGP 프로토콜이 66MHz의 데이터전송률로 운용됨을 가리키는 것으로, 따라서 x2 모드는 133MHz 의 클럭으로 데이터가 AGP버스를 누비게 된다. 당연한 말이지만, x2 모드의 성능이 훨씬 우수하다. 파이프라이닝은 AGP를 통해 보낸 데이터가 결과값이 돌아오기 전에 멀티플 리드 어드레싱을 지원하는 기능을 가리키는 것으로, PCI와 비교해보면 이점을 쉽게 알 수 있다. PCI 구조는 어드레스가 버스를 경유해 전달되면 해당 어드레스의 데이터가 완전히 처리가 끝나기 전에는 다른 어드레스가 들어올 수 없게 되어 있다.
AGP는 이러한 한계를 개선하여 최대 35개의 어드레스 요청을 한번에 처리할 수 있어 적어도 이론적으로는 지대한 성능 향상이 꾀할수 있게 되었다, AGP에서의 사이드밴딩은 문자그대로 일련의 어드레스군을 별도로 마련해 이 채널을 통해 메인버스와 추가로 연계하며 어드레스전송은 사이드밴드로, 데이터는 메인버스로 전달하는 방식을 사용한다. 따라서 사이드밴딩이 지원되는 AGP의 경우 파이프라이닝방식보다 약간의 성능향상 된다고 볼 수 있다.
그러나 이러한 별도의 어드레스군은 AGP 프로토콜에서만 적용되고 있어 PCI쪽으로는 사용이 불가능하다. 이상과 같은 모드별 전송률 성능비교를 간단히 정리해보면, 이론상으로는 다음과 같은 결과를 얻을 수 있다.
즉 파이프라이닝/사이드밴딩 AGP x2에서는 4-32바이트 데이터 전송시 500MB/sec, 파이프라이닝 AGP x2에서는 4바이트 전송시 210MB/sec(32바이트 전송시 214MB/sec), 파이프라이닝/사이드밴딩 AGP x1에서는 4-32바이트 전송시 260MB/sec, 파이프라이닝 AGP x1에서는 4바이트 전송시 150MB/sec(32바이트 전송시 152MB/sec)가 되는셈으로, 요약하자면, AGP가 PCI에 대하여 갖는 성능향상요인은 다음과 같은 3가지이다.
첫째. 캐시 스누핑의 디저블링으로, PCI의 경우 메인메모리 억세스마다 스누핑이 걸려 성능이 저하되는 면이 있으나 AGP는 스누핑을 아예 디저블시켜 버림으로써 저하요소를 배제했다. 이밖에 파이프라이닝과 사이드밴딩은 PCI에서는 지원이 안되며, AGP에만 적용된다.
AGP는 다이렉트X5를 기본으로 하고는 있으나 마이크로소프트가 다이렉트X 하위호환성을 대단히 강조한 통에 다이렉트X2/3에서도 지원은 되는 것으로 알려져 있다. 따라서 다이렉트X 2/3상에서도 텍스처처리시 AGP를 통한 성능향상이 가능한 셈인데, 다이렉트X5의 경우에는 AGP관련 플래그가 신설되어, 텍스처처리를 비디오카드의 메모리상에서(물론 프레임버퍼로도 사용가능하다) 할 수 있는 것은 물론이거니와(DDSCAPS_LOCAL VIDMEM), 시스템 메모리 등을 AGP 메모리로 선언하여 비디오 메모리외에서의 처리 (DDSCAPS_NONLOCAL VIDMEM)도 가능케 하고 있다.
이러한 플래그를 사용함으로서 텍스처 처리가 보다 융통적이면서 강력하게 수행될 수 있으며, 일반적으로는 이러한 할당권을 드라이버에 넘김으로써 가능한한 많은 텍스처를 프레임 버퍼수준에서 처리하고 넘쳐나는 여분의 데이터는 AGP 메모리에서 처리하게 된다. 그러나 이와 관련하여, 특히 x1 66MHz 모드에서, 텍스처링에 들어가기 전에 텍스처를 AGP 메모리에서 프레임버퍼로 복사할 경우 성능이 크게 저하되는 것으로 보고되고 있으며(사실 당연한 얘기기도 하다), 또한 AGP 지원칩셋의 대다수가 아직은 사이드밴딩을 제대로 지원하지 못하고 있는 것으로 알려져 있어, 전체적으로 크나큰 성능향상을 기대할수 있는 경우는 드문 것으로 보인다.
윈98의 발매시기가 자꾸만 미뤄지는 상황에서 AGP 시스템을 사용할 경우, 특히 윈 95에서의 AGP 지원상황은 중요한 문제가 될 수밖에 없다. AGP는 DiME(Direct Memory Execute : 텍스처처리시 메모리의 텍스처데이타가 복잡한 경로를 거치지 않고 바로 그래픽 칩셋으로 직접전송되는 것으로 AGP의 주요기작중 하나이다)등의 장점이 있으나 이를 활용하기 위해서는 AGP의 메모리 어드레스 매핑방식인 GART(Graphics Address Remapping Table)을 구동할 수 있어야 한다. 즉, AGP 대응 어플리케이션의 경우 GART를 경유하여 프로그래밍이 되기 때문에 OS차원에서 지원이 되지 못하는한 제성능을 발휘하기 힘들다는 이야기가 된다(윈용 어플리케이션 자체는 수정할 필요가 없다.) GART를 OS 코어상에서 제대로 지원하는 윈텔계 OS는 윈 98/NT 5.0부터가 될 것이지만 윈 95의 경우에는 OSR 2.1(4.03.1212 이후의 버전) + 다이렉트드로우5(다이렉트X5) + VGARTD.VxD 파일을 모두 갖추었을 경우 이론적으로는 풀모드 x2 AGP가 지원가능하지만 실제로는 윈98에서나 제대로 된 사이드밴딩의 지원이 있을 것으로 여겨지고 있으며, 윈95의 AGP 지원은 상당히 미약한 수준이라는 점을 상기하기 바란다.
AGP와 PCI VGA의 성능비교는, 현재로서는 "무의미하다." 즉, 성능격차를 "전혀" 찾아볼 수 없으며, 동일카드의 PCI/AGP 버전의 체감성능차는 0에 가깝다.
앞서도 말했지만, AGP와 PCI간의 성능격차는 AGP의 지원이 어느정도로 잘 이루어지느냐에 따라서 큰 격차를 나타내고 있다. 풀모드 AGP 프로토콜을 비디오칩셋이 지원해야 할뿐더러, OS상에서의 지원도 원할해야 가능하다. 우선 현재 나와있는 그래픽 칩셋중에 사이드밴딩을 지원하는 칩셋도 드물뿐더러 133MHz x2 풀모드 AGP가 사용가능한 칩셋도 스펙상으로나마 ATI 레이지 프로가 있을 뿐이다.
또한 메인보드쪽에서도 440LX의 사이드밴딩지원버전이 있어야만 AGP의 사이드밴딩기능을 활용할 수 있게 되므로 사실상 현재의 시스템에서는 x2 AGP의 구현이 상당히 어렵다고 볼 수 있다. 차후 100MHz 시스템버스를 도입하게 될 440BX계열에서나 사이드밴딩 및 133MHz x2 모드의 원활한 지원이 가능해질 전망으로 보이며, 또한 OS의 경우에도 윈95에서는 사이드밴딩의 지원이 사실상 없는것이나 마찬가지다. 이를 보아도 알 수 있듯이, AGP는 칩셋 + 메인보드 + OS의 삼박자가 맞아떨어져야 그 성능을 십분 발휘할 수 있으며, 현재의 66MHz x1 파이프라이닝 모드의 경우에는 근본적으로 PCI 2.1의 펄스 66MHz와 비교했을때 별다른 성능향상이 없는(사실 거의 같은 방식이기도 하다) 것은 당연한 결과라 하겠다. 더욱이 현재로서는 대용량의 텍스쳐를 사용하는 게임쪽의 어플리케이션은 거의 전무한 상황이기 때문에, 당분간은 4MB이하의 메모리를 가진 비디오카드로 고성능 캐드어플리케이션 등의 전문프로그램을 사용할 때에나 이점을 기대할 수 있을 것으로 보인다.
출처 : //myku.hihome.com/doc/hw/agp.html
원본글:
|일단 사양부터...
|
|셀러 600에 보드는 잘 모르겠구요...192램 PCI 라데온 7000 DDR32그래픽 카드입니다.
|
|그런데 겜 할때면 부두 3 2000 PCI 16MB보다 별 차이가 없이 나타나더군요...(특히 FPS류)
|
|그리고 PCI에 꼽으면 AGP의 몇분의 몇 속도로 그래픽 카드가 동작하는지 알고 싶습니다.
|