KR100273267B1 - High speed z-buffer circuit using fifo - Google Patents
High speed z-buffer circuit using fifo Download PDFInfo
- Publication number
- KR100273267B1 KR100273267B1 KR1019970078883A KR19970078883A KR100273267B1 KR 100273267 B1 KR100273267 B1 KR 100273267B1 KR 1019970078883 A KR1019970078883 A KR 1019970078883A KR 19970078883 A KR19970078883 A KR 19970078883A KR 100273267 B1 KR100273267 B1 KR 100273267B1
- Authority
- KR
- South Korea
- Prior art keywords
- address
- buffer
- value
- values
- buffer memory
- Prior art date
Links
Images
Landscapes
- Image Generation (AREA)
- Image Processing (AREA)
Abstract
Description
본 발명은 3차원 그래픽 처리 시스템에서 메모리 리드에 의한 대기시간을 줄이는 기술에 관한 것으로, 특히 제트-비교(Z-Comparing)를 수행하기 이전에 보간이 진행되고 있는 픽셀의 제트-버퍼 메모리의 어드레스를 미리 계산한 다음 해당하는 과거 제트 값(Old Z-value)을 제트-버퍼 메모리로 부터 읽어들여 선입선출기에 저장하도록한 선입선출기를 이용한 고속 제트 버퍼 회로에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a technique for reducing latency caused by memory reads in a three-dimensional graphics processing system. In particular, the present invention relates to an address of a jet-buffer memory of a pixel that is being interpolated before performing Z-Comparing. The present invention relates to a fast jet buffer circuit using a first-in-first-out machine that precalculates and then stores the corresponding old Z-values from the jet-buffer memory and stores them in the first-in, first-out.
3차원 그래픽 시스템에서 3차원 오브젝트(3D Object)들을 2차원 스크린에 디스플레이하고자 할 때 오브젝트의 일부 픽셀들이 앞에 있는 오브젝트에 가려서 디스플레이되지 않을 수 있다. 이렇게 안보이는 픽셀들을 프레임 메모리에 RGB값이 기록되기 전에 찾아내야 하는데, 이러한 동작을 "Z-buffering(제트-버퍼링)" 이라 한다.When a 3D object is to be displayed on a 2D screen in a 3D graphics system, some pixels of the object may be hidden due to the object in front of the object. These invisible pixels must be found before the RGB values are written to the frame memory. This behavior is called "Z-buffering".
도 1은 종래 기술에 의한 Z-버퍼링 회로의 블록도로서 이에 도시한 바와 같이, 현재 입력되고 있는 영상신호에 대해 보간을 수행하는 그래픽 프로세서(1)와; 상기 그래픽 프로세서(1)로 부터 공급받은 현재 디스플레이될 픽셀의 Z 값과 Z-버퍼 메모리(5A-5N)로 부터 읽은 같은 좌표상에 위치한 픽셀의 이전 Z 값을 비교하여 디스플레이 여부를 결정하는 Z-버퍼 로직부(2)와: 상기 Z-버퍼 로직부(2)에서 출력되는 영상신호를 디스플레이하기 위한 디스플레이 인터페이스부(3) 및 디스플레이 장치(4)와; 이전의 Z 값을 저장하고 있는 다수개의 Z-버퍼 메모리(5A-5N)로 구성된 것으로, 이의 작용을 도 2를 참조하여 설명하면 다음과 같다.1 is a block diagram of a Z-buffering circuit according to the prior art, and as shown therein, a graphics processor 1 for performing interpolation on a video signal currently being input; Z- to determine whether to display by comparing the Z value of the pixel to be displayed currently supplied from the graphics processor 1 with the previous Z value of the pixel located on the same coordinates read from the Z-
그래픽 프로세서(1)는 보간이 진행되는 픽셀의 적,녹,청색용 신호R,G,B 값과 X,Y 좌표값 그리고 Z(depth value)을 Z-버퍼 로직부(2)측으로 출력한다. 그런데, 상기 Z-버퍼 로직부(2)가 어떠한 이유로 인하여 기능정지(stall) 상태에 있을 경우, 그 Z-버퍼 로직부(2)는 그래픽 프로세서(1)측에 준비신호(ZRDY)를 출력하여 그로 하여금 자신의 현재 상태를 인식할 수 있도록 한다.The graphics processor 1 outputs the red, green, and blue signals R, G, and B values, X, Y coordinate values, and Z (depth values) of the pixels undergoing interpolation to the Z-
상기 Z-버퍼 로직부(2)가 X,Y 좌표값으로 현재 프레임 버퍼에 저장된 픽셀의 Z 값을 가지고 있는 Z-버퍼 메모리(5A-5N)의 어드레스를 계산하여 그 Z-버퍼 메모리(5A-5N)로 부터 이전의 Z 값을 읽어온다. 이렇게 읽어들인 Z(old Z) 값과 상기 그래픽 프로세서(1)로 부터 공급받은 새로운 Z(new Z)을 비교하여 디스플레이할지의 여부를 아래와 같이 결정한다.The Z-
상기 Z-버퍼 로직부(2)는 상기와 같이 결정된 결과를 디스플레이 인터페이스부(3)측으로 출력하여 디스플레이 할지의 여부를 알려준다.The Z-
도 2는 상기와 같은 처리과정을 나타낸 신호 흐름도로서 이러한 Z-버퍼링을 한 픽셀 단위가 아닌 여러 픽셀 단위로 수행할 수 있으며, 그러기 위해서는 Z-버퍼 로직부(2)에 Z-값과 RGB용 버퍼를 추가시켜야 한다.FIG. 2 is a signal flow diagram illustrating the above-described process, and the Z-buffering may be performed in units of pixels rather than in units of pixels. In order to do this, Z-
이와 같이 종래의 기술에 있어서는 Z- 버퍼링을 수행하기 위해 Z-어드레스 계산 동작, 메모리로 부터 이전의 Z 값을 읽어오는 동작, Z 값 비교동작을 필요로 하게 되는데, 3차원 그래픽에서 Z-버퍼 메모리로 값이 저렴한 디램을 사용할 경우 메모리 리드를 위한 대기시간이 길기 때문에 Z-버퍼링의 성능 저하를 유발시키는 결함이 있다. 또한, 그래픽 프로세서에서 발생된 픽셀들을 한 그룹으로 처리하고 이에 해당되는 Z 값들을 메모리로 부터 한꺼번에 읽어올 경우에도 메모리 억세스 시간동안 Z-버퍼 시스템은 기능정지 상태에 놓이게 되는 결함이 있었다.As described above, in order to perform Z-buffering in the related art, a Z-address calculation operation, an operation of reading a previous Z value from a memory, and a Z value comparison operation are required. Using low-cost DRAMs results in a long latency for memory reads, which leads to a degradation of Z-buffering performance. In addition, even when the pixels generated by the graphics processor are processed as a group and the corresponding Z values are read from the memory at one time, the Z-buffer system is in a malfunction state during the memory access time.
따라서, 본 발명이 이루고자 하는 기술적 과제는 Z-버퍼링을 위해 Z-버퍼 메모리로 부터 데이터를 읽어오는 동작을 픽셀 보간을 수행하는 동안 수행하는 방식으로 이전 Z 값을 선입선출기에 미리 저장하는 고속 제트 버퍼 회로를 제공함에 있다.Therefore, a technical problem to be achieved by the present invention is a high-speed jet buffer in which a previous Z value is pre-stored in the first-in, first-out, in such a manner that an operation of reading data from the Z-buffer memory for Z-buffering is performed during pixel interpolation. In providing a circuit.
도 1은 종래 기술에 의한 Z-버퍼링 회로의 블록도.1 is a block diagram of a Z-buffering circuit according to the prior art.
도 2는 종래기술에 의한 Z-버퍼링과 프레임 버퍼 라이트과정에 대한 신호 흐름도.Figure 2 is a signal flow diagram for the Z-buffered and frame buffer write process according to the prior art.
도 3은 본 발명에 의한 선입선출기를 이용한 고속 제트 버퍼 회로의 예시 블록도.3 is an exemplary block diagram of a high speed jet buffer circuit using a first-in, first-out of the present invention.
도 4는 3차원 파이프라인 처리 신호 흐름도.4 is a three-dimensional pipeline processing signal flow diagram.
도 5는 도 3에서 선입선출기의 일실시 구현예를 보인 블록도.5 is a block diagram illustrating an embodiment of a first-in, first-out machine in FIG.
***도면의 주요 부분에 대한 부호의 설명****** Description of the symbols for the main parts of the drawings ***
101 : 그래픽 프로세서 102 : Z-어드레스 프리페치부101: graphics processor 102: Z-address prefetch unit
103 : Z-선입선출기 104 : Z-어드레스 큐 저장부103: Z-first in, first out 104: Z-address queue storage unit
105 : Z-어드레스 페이지 레지스터 106 : 가산기105: Z-address page register 106: Adder
107 : Z-버퍼 인터페이스 로직부 108A-108N : Z-버퍼 메모리107: Z-buffer
109 : 선입선출 콘트롤러 110 : 프레임버퍼 인터페이스부109: first-in, first-out controller 110: frame buffer interface unit
111 : 디스플레이 인터페이스부111: display interface unit
도 3은 본 발명의 목적을 달성하기 위한 선입선출기를 이용한 고속 제트 버퍼 회로의 일실시 예시 블록도로서 이에 도시한 바와 같이, 입력영상신호에 대해 보간을 수행하는 그래픽 프로세서(101)와; 3차원 파이프라인 중 에지 트래버설 단계에서 보간이 진행되려는 스팬의 좌,우시작점, 끝점의 X,Y값을 상기 그래픽 프로세서(101)로 부터 전달받아 보간이 진행될 스팬 위의 픽셀들의 Z-어드레스를 계산하여 그 결과를 차례대로 Z-어드레스 큐 저장부(104)에 출력함과 아울러 Z-어드레스 페이지 레지스터(105)에 Z-어드레스의 상위 어드레스 비트인 페이지 어드레스를 저장하는 Z-어드레스 프리페치부(102)와; Z-선입선출기(103)의 상태와 Z-버퍼 메모리(108A-108N)를 체크한 후 그들간에 전송이 가능할 경우 Z-버퍼 메모리(108A-108N)로 부터 데이터를 읽어와 그 Z-선입선출기(103)에 라이트하는 Z-버퍼 인터페이스 로직부(107)와; 현재 프레임 버퍼에 있는 픽셀에 대한 Z 값이 저장되는 Z-버퍼 메모리(108A-108N)와; 상기 Z-선입선출기(103)의 상태를 체크하여 엠티인지 풀인지를 다른 처리부에 알려주는 동시에 그 Z-선입선출기(103)의 라이트 어드레스를 발생하는 선입선출 콘트롤러(109)와; 상기 그래픽 프로세서(101)에서 보간이 끝난 Z 값을 공급 받고, 상기 선입선출 콘트롤러(109)로 부터 준비신호(RDY)가 어서트되면 상기 그래픽 프로세서(101)로 부터 새로운 제트값(Znew)과 상기 Z-선입선출기(103)에서 공급받은 이전의 제트값(Zold)을 비교하여 WPIX 신호에 대한 유효/무효를 결정하는 프레임 버퍼 인터페이스부(110)와; 상기 프레임 버퍼 인터페이스부(110)에서 출력되는 영상신호를 디스플레이하거나 외부로 출력하기 위한 디스플레이 인터페이스부(111)로 구성한 것으로, 이와 같이 구성한 본 발명의 작용을 첨부한 도 3 내지 도 5를 참조하여 상세히 설명하면 다음과 같다.3 is a block diagram illustrating an embodiment of a fast jet buffer circuit using a first-in, first-out to achieve the object of the present invention. As shown therein, a graphics processor 101 for performing interpolation on an input image signal; The Z-address of the pixels on the span where the interpolation is to be received from the graphic processor 101 by receiving the X, Y values of the left, right start point, and end point of the span to be interpolated in the edge traversal stage of the 3D pipeline. The Z-address prefetch unit which calculates and outputs the result to the Z-address
Z-어드레스 프리페치부(102)는 3차원 파이프라인 중 에지 트래버설 단계에서 보간이 진행되려는 스팬의 좌,우시작점, 끝점의 X,Y값을 그래픽 프로세서(101)로 부터 전달받아 보간이 진행될 스팬 위의 픽셀들의 Z-어드레스를 계산하여 그 결과를 차례대로 Z-어드레스 큐 저장부(104)에 넣는다. 이때, Z-어드레스 페이지 레지스터(105)에는 Z-어드레스의 상위 어드레스 비트인 페이지 어드레스를 저장한다.The Z-
도 5에서와 같이 디스플레이되는 스크린을 Z-버퍼 메모리(108A-108N)의 페이지 사이즈의 타이틀로 나눈다. 그 이유는 메모리 어드레스를 페이지 단위로 하여 한꺼번에 많은 데이터를 전송하기 위함이며, 또한, Z-어드레스 큐(queue)의 사이즈를 줄이기 위함이다.The screen displayed as in FIG. 5 is divided by the title of the page size of the Z-
Z-버퍼 인터페이스 로직부(107)는 Z-선입선출기(103)의 상태와 Z-버퍼 메모리(108A -108N)를 체크한 후 그들간에 전송이 가능할 경우 Z-버퍼 메모리(108A-108N)로 부터 데이터를 읽어와 그 Z-선입선출기(103)에 라이트(write)한다. 이때, Z-선입선출기(103)의 입력포트는 병렬로 구성되어 있으며, 한꺼번에 여러 Z 값을 라이트할 수 있어야 한다.The Z-buffer
선입선출 콘트롤러(109)는 상기 Z-선입선출기(103)의 상태를 체크하여 엠티(Empty)인지 풀(Full)인지를 다른 처리부에 알려주는 동시에 그 Z-선입선출기(103)의 라이트 어드레스를 발생시킨다.The first-in, first-out
상기 Z-버퍼 메모리(108A-108N)는 주로 디램으로 구현되며, 그 Z-버퍼 메모리(108A -108N)에는 현재 프레임 버퍼에 있는 픽셀에 대한 Z 값이 저장되어 있다.The Z-
프레임 버퍼 인터페이스부(110)는 상기 그래픽 프로세서(101)에서 보간이 끝난 Z 값을 공급 받는다. 상기 선입선출 콘트롤러(109)로 부터 준비신호(RDY)가 어서트(assert)되면 상기 그래픽 프로세서(101)로 부터 새로운 제트값 Znew와 상기 Z-선입선출기(103)에서 공급받은 이전의 제트값 Zold를 비교하여 WPIX 신호에 대한 유효(valid)/무효(invalid)를 결정한다.The
이하, 상기의 설명을 참조하여 전반적인 처리과정을 설명한다.Hereinafter, the overall processing will be described with reference to the above description.
도 4의 일반적인 3차원 파이프 라인에서 다각형(polygon)인 트라이앵글의 정점(vertex) 정보를 공급받은 후 한 픽셀을 최종적으로 프레임 버퍼에 써 넣을때까지 여러 단계를 거치게 된다.In the general three-dimensional pipeline of FIG. 4, after receiving vertex information of a triangle, which is a polygon, a plurality of steps are performed until one pixel is finally written to a frame buffer.
본 발명에서는 에지 트래버설 단계에서 보간이 계속 진행될 스팬의 양쪽 좌,우의 X,Y 좌표들을 Z-어드레스 프리페치부(102)에 읽어들여 스팬 위에 있는 모든 픽셀의 Z-어드레스를 계산한 다음 이를 순서대로 Z-어드레스 큐 저장부(104)에 저장한다.In the present invention, the left and right X, Y coordinates of the span where the interpolation is to be continued in the edge traversal step are read into the Z-
Z-버퍼 인터페이스 로직부(107)는 상기 선입선출 콘트롤러(109)를 통해 Z-선입선출기(103)의 상태를 체크하고, 이와 동시에 Z-버퍼 메모리(108A-108N)를 모니터링하여 이들간의 데이터 전송이 가능한 것으로 판명되면 그 Z-버퍼 메모리(108A-108N)로 부터 Z-어드레스 큐 저장부(104)에 있는 어드레스의 Z 데이터를 읽어와 Z-선입선출기(103)에 저장한다. 이때, 필요한 조건으로서 상기 Z-버퍼 메모리(108A-108N)는 페이지 단위 내지 n byte(n〉0) 단위로 억세스가 가능해야 하며, Z-선입선출기(103)의 입력포트는 다수개 구비되어야 한다.The Z-buffer
이러한 Z-버퍼 메모리(108A-108N)로 부터 데이터를 읽어오는 동작은 항상 Z-선입선출기(103)와 Z-버퍼 메모리(108A-108N)가 사용가능할 때 수행될 수 있으며, 3차원 파이프 라인을 통해 한 픽셀의 RGB가 결정되어 프레임 버퍼에 라이트되기 이전에 먼저 수행하게 되므로 3차원 파이프라인에 영향을 주지 않게 된다.The operation of reading data from the Z-
도 5는 본 발명에서 요구하는 Z-선입선출기(103)의 구조를 보인 것이다. N개의 Z-데이터를 한 번에 순차적인 어드레스 영역에 라이트하는 것이 가능하도록 설계된다.5 shows the structure of the Z-first-in first-out
상기에서 설명한 바와 같이 미리 결정된 Z-어드레스에 해당하는 Zold가 상기 Z-버퍼 메모리(108A-108N)로 부터 Z-선입선출기(103)에 저장된 후 선입선출 콘트롤러(109)는 Zold가 유효하다는 것을 프레임버퍼 인터페이스부(110)에 알린다. 그 프레임버퍼 인터페이스부(110)는 상기 그래픽 프로세서(101)에서 프레임 버퍼에 마지막으로 라이트하려는 픽셀의 X,Y,Z RGB 데이터를 공급받은 후 상기 선입선출 콘트롤러(109)에서 발생된 준비신호(RDY)가 유효한지를 체크한다.As described above, after Z old corresponding to a predetermined Z-address is stored in the Z-first-in first-out 103 from the Z-
상기에서 체크결과 유효한 경우에는 곧바로 Z-비교 동작을 수행하여 Znew〉 Zold인지를 확인한다. Z-비교동작 후 다시 선입선출 콘트롤러(109)에 실행신호(DONE)를 출력하여 Z-선입선출기(103)로 하여금 다음 Z 값을 출력하도록 한다.If the check result is valid, Z-compare operation is performed immediately to check whether Z new > Z old . After the Z-comparison operation, the execution signal DONE is output to the first-in, first-
프레임버퍼 인터페이스부(110)에서 WPIX가 결정되면 그 결과가 디스플레이 인터페이스부(111)로 출력되어 Z-프레임 버퍼(108A-108N)에 라이트할지의 여부를 알려준다.When the WPIX is determined in the frame
상기 Z-어드레스 프리페치부(102)에서 계산된 Z-어드레스를 Z-어드레스 큐 저장부(104)에 저장할 때 스팬 위의 픽셀수에 따라 여러 가지 Z-어드레스 값을 저장할 필요가 있게 된다. 이 때문에 Z-어드레스 큐 저장부(104) 또한 Z-선입선출기(103)와 마찬가지로 N개의 값을 한 번에 라이트할 수 있는 선입선출 구조를 갖아야 한다.When storing the Z-address calculated by the Z-
이상에서 상세히 설명한 바와 같이 본 발명은 Z-버퍼링을 위해 Z-버퍼 메모리로 부터 데이터를 읽어오는 동작을 픽셀 보간을 수행하는 동안 수행하는 방식으로 이전 Z 값을 선입선출기에 미리 저장할 수 있게 함으로써 전체 3차원 파이프 라인 처리단계에서 Z-버퍼링에 해당하는 단계를 생략할 수 있게 되고, 이로 인하여 3차원 그래픽 성능을 향상시킬 수 있는 효과가 있다.As described in detail above, the present invention enables the previous Z value to be previously stored in the first-in, first-out, in such a manner that an operation of reading data from the Z-buffer memory for Z-buffering is performed during pixel interpolation. In the dimensional pipeline processing step, the step corresponding to the Z-buffering can be omitted, thereby improving the 3D graphics performance.
Claims (2)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970078883A KR100273267B1 (en) | 1997-12-30 | 1997-12-30 | High speed z-buffer circuit using fifo |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970078883A KR100273267B1 (en) | 1997-12-30 | 1997-12-30 | High speed z-buffer circuit using fifo |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19990058729A KR19990058729A (en) | 1999-07-15 |
KR100273267B1 true KR100273267B1 (en) | 2000-12-15 |
Family
ID=19529950
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970078883A KR100273267B1 (en) | 1997-12-30 | 1997-12-30 | High speed z-buffer circuit using fifo |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100273267B1 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100372901B1 (en) * | 2000-06-20 | 2003-02-19 | 김세현 | Ray-tracing acceleration method using ZF-buffer |
KR100420857B1 (en) * | 2001-07-12 | 2004-03-02 | 학교법인연세대학교 | method and apparatus for processing pixel rasterization in 3D rendering processor |
-
1997
- 1997-12-30 KR KR1019970078883A patent/KR100273267B1/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR19990058729A (en) | 1999-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2216442C (en) | Image generating apparatus with fifo memory and cache memory | |
US6552723B1 (en) | System, apparatus and method for spatially sorting image data in a three-dimensional graphics pipeline | |
JP3359393B2 (en) | Graphic data parallel processing display device | |
US8446420B2 (en) | Memory system and method for improved utilization of read and write bandwidth of a graphics processing system | |
US9384584B2 (en) | Display list control stream grouping in tile based 3D computer graphics system | |
US6977649B1 (en) | 3D graphics rendering with selective read suspend | |
US7079146B2 (en) | Image producing device | |
JP3645024B2 (en) | Drawing apparatus and drawing method | |
US7898551B2 (en) | Systems and methods for performing a bank swizzle operation to reduce bank collisions | |
JPH09500462A (en) | Computer graphics system with high performance multi-layer z-buffer | |
JP2004280125A (en) | Video/graphic memory system | |
US7170512B2 (en) | Index processor | |
US6313845B1 (en) | Method and apparatus for transporting information to a graphic accelerator card | |
JPH06175646A (en) | Frame buffer and raster processor for graphic system and method for buffering pixel variable | |
US20030030642A1 (en) | Combined floating-point logic core and frame buffer | |
US20060098021A1 (en) | Graphics system and memory device for three-dimensional graphics acceleration and method for three dimensional graphics processing | |
US5966142A (en) | Optimized FIFO memory | |
KR100273267B1 (en) | High speed z-buffer circuit using fifo | |
US7400326B1 (en) | System and method for delivering multiple data streams via multiple buses | |
US6268874B1 (en) | State parser for a multi-stage graphics pipeline | |
US8081182B2 (en) | Depth buffer for rasterization pipeline | |
JPH1069548A (en) | Computer graphics system | |
US6088033A (en) | Method and apparatus for processing picture elements | |
EP0410783B1 (en) | Methods and apparatus for accelerating windows in graphics systems | |
US6489967B1 (en) | Image formation apparatus and image formation method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20050824 Year of fee payment: 6 |
|
LAPS | Lapse due to unpaid annual fee |