The 3D graphics is becoming an important part in modern multimedia systems from the architectural design to the desktop games. The 3D graphics pipeline which processes 3D objects and show these images to the 2D screen requires a lot of floating-point and integer operations. The 3D pipeline is composed of 3 stages : i.e, scene modeling, the geometry stage, and the rendering stage. Generally, the geometry stage requires a large number of floating-point operations and is handled by CPU. The rendering stage requires lots of integer operations and is processed at the graphics card which has on-board 3D accelerator such as Voodoo2, RIVA, and i740. These 3D accelerators for rendering stage has been researched and their performances are about 100M pixel/s which is sufficient for real-time 3D image. The bottleneck of the 3D pipeline becomes the geometry stage which is responsible for the transformation, clipping, and lighting of the objects. This thesis presents a new floating-point unit which is designed for 3D graphics geometry engine. It is used in FLOVA which is VLIW architecture. It has fastpow unit which computes the power operation for the lighting of the vertex. The fast vector normalization using Newton-Raphson method and the efficient scheduling of 4x4 matrix multiplication for transformation and clipping are supported in the designed floating-point units.
3차원 그래픽스는 건축 디자인에서 게임 산업에 이르는 현대의 멀티미디어 시스템에서 매우 중요한 위치를 차지하고 있다. 3차원 공간상의 물체를 2차원 상의 스크린에 표시하기 위해서는 많은 수의 부동 소수점 연산과 고정 소수점 연산들이 필요하다. 이 과정을 위해서는 먼저 장면묘사, 지오메트리 단계, 그리고 렌더링 단계가 필요한데 이런 일련의 과정을 3차원 그래픽스 파이프라인이라고 한다. 일반적으로 지오메트리 단계는 많은 수의 부동소수점 연산을 필요로 하고 이 단계는 시스템내의 주 CPU에 의해서 행해진다. 반면에 렌더링 단계는 고정소수점 연산을 많이 요구하는데 이는 주로 Voodoo2, RIVA그리고 i740같은 3차원 그래픽스 가속기가 장착된 그래픽스 카드에서 이루어진다. 과거에는 CPU가 지오메트리 단계와 렌더링 단계를 모두 처리했으나 현재는 CPU에서는 지오메트리 단계를 3차원 그래픽스 가속기가 장착된 카드에서는 렌더링 단계를 맡는 것이 보통이다. 지금까지 렌더링을 위한 가속칩의 개발이 많이 이루어져 왔는데 현재 이런 가속칩의 성능은 100M pixel/s를 상회하고 있고 이것은 실시간 3차원 영상처리를 위해서 충분한 성능이다. 그래서 이제는 지오메트리 단계에서 3차원 파이프라인의 병목현상이 나타나고 있다.
본 논문에서는 3차원 그래픽스 지오메트리 엔진을 위하여 설계된 부동소수점 연산기의 설계를 제시하고, 이것이 FLOVA (FLOating-point Vliw Architecture) 라는 VLIW 구조를 가지는 칩내부의 기능블럭으로서 지오메트리 단계연산에 쓰일 수 있음을 보인다. 설계된 부동소수점 연산기는 내부에 지오메트리 단계중의 하나인 광도계산을 위한 ``FastPow''블럭을 내부에 포함하고 있다. 이것은 네 사이클 만에 부동소수점 수의 멱수 계산을 함으로써 광도계산을 매우 빠르게 할 수 있다. 또한 이 부동소수점 블럭은 벡터정규화를 위해서 제곱근 나눗셈을 근사적으로 빠른 시간내에 계산할 수 있으며 4x4 행렬 연산을 위해서 VLIW 구조에서 효율적인 스케쥴링을 할 수 있음을 보인다.