[강좌] 3D에서 SGRAM의 Block Writing역할

많은 사람들이 알고 있듯이 SGRAM은 Block Writing기능을 가지고 있는 점이 SDRAM과 다르다. 과거에는 저가형 VGA에는 SDRAM이나 EDO램이 쓰였고, 고가형에는 WRAM 이나 VRAM이 주로 사용되어 왔었으나, 빨라진 칩셋의 클럭에의하여 메모리에서 병목(Bottle Neck) 이 생기게 되어 2D에서 좋은 성능을 보여주던 WRAM과 VRAM은 더 이상 3D에서는 사용할 수 없게 되었다. 듀얼 포트를 가졌지만 WRAM이나 VRAM의 경우는 66Mhz가 최대동작성능이다. 이에 반하여 SDRAM이나 SGRAM은 100Mhz, 125Mhz등으로 동작이 가능하기 때문에 그래픽카드에서의 메모리는 SDRAM이나 SGRAM으로 대세가 이미 바뀐지 오래이다.

SDRAM과 SGRAM

    싱크로너스 (Synchronous, 동기화) DRAM램은 주로 요즘에는 메인메모리와 그래픽카드의 로칼메모리로 사용된다. 이에 반하여 SGRAM은 싱크로너스 (Synchronous, 동기화) Graphic 메모리로서 VGA전용으로 사용되는 메모리인 셈이다. 원래 SDRAM이 값이 더 저렴했었는데, 중저가형 3D칩이 대거 출시되어 SDRAM의 수요가 급증하자 요즘은 SGRAM과 SDRAM의 가격차이가 거의 없어졌다. SDRAM은 현재 일반적으로 속도가 100Mhz의 제품이 대종을 이루고 있고 간혹 125Mhz제품도 생산되고 있다. SGRAM은 좀 더 빠른 125Mhz제품도 많이 나오고 있고 143Mhz제품(7ns)도 상용화되고 있어 SDRAM보다는 좀 더 빠르게 움직이고 있는 편이다.

3D에서 Block Writing

    2D와 달리 3D에서는 보통 2개의 framebuffer와 하나의 Z buffer로 구성된다고 가정을 하면 쉽다. 하나의 3D화면을 나타내게 하기 위하여 3개의 버퍼를 쓴다는 말이다. 만약에 해상도를 640x480x16비트로 쓰고 16비트 Z-buffer로 세팅한다면, 1.8메가 로칼메모리에 640x480x16 bpp, 16bit Z buffer를 가진 double buffer가 저장된다. 하나의 화면(raster)을 보여주기 위하여 1.8메가 메모리가 쓰이는 셈이다.

    Block Writing가속기능은 3D에서는 커다란 이득을 주지 못하는 것으로 알려졌다. 특정화상이 보여진 다음에는 (다음화상을 위하여) 보여준 framebuffer를 지우고 다음에 Z-buffer를 지우게 되는데, 3D칩은 Block Writing 기능을 framebuffer를 지우는데 사용한다. 이때 다른 기능과 중복되어 가속기능에 의한 프레임제거 효과가 크지 않게 된다고 한다. 그래픽 프로쎄싱은 하나의 그림을 완전히 그린다음에, 다음 그림을 그리기를 준비한다. 다음 화상의 첫 프래임을 그릴려면 반드시 그전에 이전의 Z-buffer를 (메모리에서)삭제하여야 한다. 여기에서 구조적으로 보통 최저 1.15ms의 지연이 발생한다. Z-buffer를 빨리 삭제하기 위하여 framebuffer를 보다 빨리 삭제하는 가속기능은 구조적이 딜레이로 인하여 성능이 매우 줄어든다는 것이다.

같은 값이면 SGRAM

    SGRAM에서의 Block Writing기능은 앞서 설명한 삭제가속에 있어서 겨우 0.86%의 과부하를 줄여 준다고 한다. 이론적으로 이는 2.59%의 성능을 향상시키는 것으로 알려졌다. 한편 Block Writing를 위하여 전기회로상 5%정도 다이가 커지고 가격도 올라가게 된다. 실제로 부두II 게임 프로그래머에 말에 따르면 부두II에서는 Block Writing기술을 전혀 사용하고 있지 않다고 한다..... 따라서 소비자의 입장에서는 동일한 조건이라면 SGRAM를 선택하는 것이 더 나은 것이 분명하나, SGRAM이 SDRAM에 비하여 3D에서 월등한 성능을 내는 것은 아니다.