KR100550240B1 - Tiled graphics architecture - Google Patents
Tiled graphics architecture Download PDFInfo
- Publication number
- KR100550240B1 KR100550240B1 KR1020027013055A KR20027013055A KR100550240B1 KR 100550240 B1 KR100550240 B1 KR 100550240B1 KR 1020027013055 A KR1020027013055 A KR 1020027013055A KR 20027013055 A KR20027013055 A KR 20027013055A KR 100550240 B1 KR100550240 B1 KR 100550240B1
- Authority
- KR
- South Korea
- Prior art keywords
- graphics
- pointers
- memory
- vertices
- data
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
Abstract
타일형 그래픽스 아키텍쳐(tiled graphics architecture)에서 메모리 대역폭 이용을 감소시키는 장치 및 방법을 발표한다. 일 실시예에서, 마이크로프로세서는 그래픽스 원형의 꼭지점 데이터를 그래픽스 메모리로부터 판독한다. 프로세서는 그래픽스 원형을 가로지르는 빈을 결정한다. 프로세서는 제1 및 제2 빈을 가로지는 그래픽스 원형을 결정하면, 프로세스는 그래픽스 원형에 대한 꼭지점 데이터를 그래픽스 메모리 내의 제1 빈 기억 영역에 기록한다. 이어서 프로세서는 포인터를 제2 빈 기억 영역에 기록한다. 포인터는 실제 꼭지점 데이터의 메모리 내의 위치를 나타낸다.A device and method for reducing memory bandwidth utilization in a tiled graphics architecture are presented. In one embodiment, the microprocessor reads graphics circular vertex data from graphics memory. The processor determines the bin across the graphics circle. The processor determines the graphics primitives across the first and second bins, and the process writes vertex data for the graphics primitives into a first bin storage area in graphics memory. The processor then writes the pointer to the second empty storage area. The pointer represents the location in memory of the actual vertex data.
타일형, 그래픽스 아키텍쳐, 메모리 대역폭, 원형, 원시 데이터, 빈, 포인터Tiled, Graphics Architecture, Memory Bandwidth, Circular, Raw Data, Bin, Pointer
Description
본 발명은 컴퓨터 시스템 분야에 관한 것이다. 특히 본 발명은 타일형 아키텍쳐에서 원형의 기억 요구(primitive storage requirement)를 줄이고 메모리 대역폭 이용을 향상시키기 위한 것이다.The present invention relates to the field of computer systems. In particular, the present invention is directed to reducing the primitive storage requirements and improving memory bandwidth utilization in tiled architectures.
일반적으로 컴퓨터 그래픽스 시스템에서, 디스플레이 스크린에 표현되는 3 차원(three dimensional, 3D) 객체(object)는 삼각형 리스트(triangle list), 사각형 스트립(triangle strip) 및 삼각형 팬(triangle fan) 등의 그래픽스 원형(graphics primitive)으로 이루어진다. 일반적으로, 표현될 3D 객체의 원형들은 호스트 컴퓨터에 의해 원시 데이터(primitive data)의 항(term)으로 규정된다. 예를 들어 원형의 삼각형 각각에 대해, 호스트 컴퓨터는 삼각형의 세 꼭지점을, X, Y, 및 Z 좌표로 공간적 위치를 규정할 뿐만 아니라, 각 꼭지점의 빨간색(R), 녹색(G) 및 파란색(B)의 색 값(color value)을 규정하는 데이터와, 텍스쳐 좌표(texture coordinate)로 규정할 수 있다. 부가적인 원시 데이터가 특정한 애플리케이션에 사용될 수 있다. 그래픽스 컨트롤러(graphics controller) 내의 렌더링 하드웨어(rendering hardware)는 각 원형을 표현하는 디스플레이 스크린 화소(pixel)들과 각 화소에 대한 R, G, B 색 값을 계산하기 위하여 원시 데이터를 보간(interpolate)한다.In general, in computer graphics systems, the three dimensional (3D) objects represented on the display screen are graphics primitives such as triangle lists, triangle strips, and triangle fans. graphics primitive). In general, the prototypes of the 3D object to be represented are defined by the host computer in terms of primitive data. For example, for each circular triangle, the host computer not only defines the spatial location of the three vertices of the triangle in X, Y, and Z coordinates, but also the red (R), green (G), and blue ( Data defining the color value of B) and texture coordinates may be defined. Additional raw data can be used for specific applications. The rendering hardware in the graphics controller interpolates the raw data to calculate the display screen pixels representing each prototype and the R, G and B color values for each pixel. .
메모리 대역폭의 더욱 효율적인 이용을 위하여, 3D 원형들은 "타일(tile)"이라고도 하는 복수의 빈(bin)으로 분류(sort)된다. 잘 알려진 이 기술은 종종 "타일링(tiling)"이라고 한다.For more efficient use of memory bandwidth, 3D primitives are sorted into a plurality of bins, also referred to as "tiles." This well known technique is often referred to as "tiling".
도 1 및 도 2는 그래픽스 원형들을 복수의 빈 또는 "타일"로 분류하는 일례를 나타낸다. 이 예에서, 마이크로프로세서는 원형 기억 영역으로부터 원형들(110, 120, 130)에 대한 데이터를 인출(fetch)한다. 원형 기억 영역은 그래픽스 컨트롤러에 직접 연결된 로컬 그래픽스 메모리 또는 주 시스템 메모리의 일부로서 구현될 수 있다. 이 원형들(110, 120, 130)은 렌더링(rendering)되어 블록(100)으로 나타낸 디스플레이 스크린 상에 표시된다. 이 예의 경우, 블록(100)은 4 개 이상의 빈으로 분할된다. 일반적으로, 디스플레이 데이터의 프레임(frame)은 128 * 64 화소 크기의 전형적인 빈을 가지는 이 예에서 도시한 4 개보다 더 많은 빈으로 분할된다. 이 예에서는 설명을 단순화하기 위하여 4 개의 빈을 사용한다.1 and 2 show an example of classifying graphics circles into a plurality of bins or " tiles. &Quot; In this example, the microprocessor fetches data for the
그래픽스 원형에 대한 데이터를 인출한 후, 프로세서는 어느 빈 또는 "타일"이 원형을 가로지르는지를 결정한다. 예를 들어, 프로세서는 원형(110)이 빈(220)은 물론 빈(210)을 가로지르는 것으로 결정할 수 있다. 이어서 프로세서는 빈(220)에 대한 원시 데이터를 기억시키기 위해서는 물론 빈(210)에 대한 원시 데이터를 기억시키기 위하여 그래픽스 메모리 셋 어사이드(graphics memory set aside)에 원형(110)의 세 꼭지점에 대한 데이터를 기록한다. 유사하게, 프로세서는 원형(120)의 꼭지점 데이터를 빈(220) 및 빈(240)의 기억 영역에 기록하고, 원형(130)의 꼭지점 데이터를 빈(210, 230, 240)의 기억 영역에 기록한다. 일단 원형이 빈들(bins)로 분류되면, 그래픽스 컨트롤러는 원형 데이터를 그래픽스 메모리로부터 인출하여 그 원형을 한번에 하나씩 렌더링한다.After retrieving data for the graphics prototype, the processor determines which bin or "tile" traverses the prototype. For example, the processor may determine that the
도 2는 그래픽 컨트롤러가 원형(110, 120, 130)을 빈(210, 220, 230, 240)에 적합한 여러 원형으로 분할하는 방법을 예시한다. 여러 원형은 그 원형이 어떻게 빈 경계를 가로지르는가에 따라서 복수의 빈으로 분할된다. 예를 들어, 빈(210)의 원시 데이터를 그래픽스 메모리로부터 인출하는 경우, 그래픽스 컨트롤러는 원형(211)을 생성하기 위하여 원형(110)을 분할한다. 원형(130)은 원형(212)을 생성하기 위하여 분할된다. 그래픽스 컨틀롤러는 계속하여 원형(211, 212)을 렌더링한다. 이어서, 그래픽스 컨트롤러는 원형(221, 222)을 생성하기 위하여 원형(110, 120)을 분할하고, 원형(221, 222)을 렌더링하여 빈(220)의 처리를 계속한다.2 illustrates how the graphics controller divides the
도 3은 타일형 그래픽스 아키텍쳐를 구현하는 종래의 컴퓨터 시스템의 블록도이다. 도 3은 프로세서(310), 그래픽스 원형 기억 영역(332)을 포함하는 시스템 메모리(330),그래픽스 컨트롤러(340) 및 디스플레이 모니터(350)를 도시한다.3 is a block diagram of a conventional computer system implementing a tiled graphics architecture. 3 shows a
도 3의 시스템으로 구현되는 것과 같은 종래의 타일형 그래픽스 아키텍쳐는 원시 데이터를 한 장치에서 다른 장치로 이동시킬 때 대량의 메모리 대역폭을 이용하는 단점이 있다. 예를 들어 프로세서(310)가 원형을 처리하는 경우, 프로세서(310)는 원형의 꼭지점 데이터를 그래픽스 원형 기억 영역(332)으로부터 판독한다. 프로세서(310)는 이어서 어떠한 빈들이 그 원형을 가로지르는지를 결정한다. 프로세서(310)는 그 다음에 몇 개의 복사본을 그래픽스 원형 기억 영역(332)에 다시 기록하여야 하며, 기록되는 복사본의 수는 얼마나 많은 빈들이 그 원형을 가로지르는가에 따른다.Conventional tiled graphics architectures, such as those implemented in the system of FIG. 3, have the drawback of using large amounts of memory bandwidth when moving raw data from one device to another. For example, when
메모리 대역폭 이용의 영향은 대략 100 바이트(byte)의 꼭지점 데이터로 표현될 수 있는 전형적인 그래픽스 원형과, 몇 개의 빈들이 가로지를 수 있는 그래픽스 원형을 고려하여 설명할 수 있다. 이 예는 3개의 빈을 가로지는 대표적인 원형을 가정할 것이다. 이 상황에서, 프로세서(310)는 처리되는 각 원형에 대하여 그래픽스 원형 기억 영역(332)에 평균 300 바이트의 꼭지점 데이터를 기록하여야 한다. 2K 그래픽스 원형들로 이루어지는 비교적 간단한 디스플레이의 한 프레임(frame)의 경우, 프로세서(310)는 프레임당 600K 바이트를 전송하여야 한다. 만약 이 프레임 디스플레이 속도(freame display rate)가 초당 60 프레임이면, 프로세서(310)는 초당 360M 바이트의 속도로 데이터를 그래픽스 원형 기억 영역(332)에 전송하여야 한다. 100K 원형으로 이루어지는 더욱 복잡한 디스플레이의 경우, 대역폭의 요구는 초당 1.8G 바이트로 증가한다. 동일한 대역폭 요구가 또한 그래픽스 원형 기억 영역(332)과 그래픽스 컨트롤러(340) 사이에서 충족되어야 한다. 그래픽스 원형 데이터를 프로세서(310)에서 그래픽스 원형 기억 영역(332)으로, 그리고 그래픽스 원형 기억 영역(332)에서 그래픽스 컨트롤러(340)로 이동시키기 위한 높은 메모리 대역폭 이용은 전체 시스템의 성능에 상당히 악영향을 초래할 수 있다.The impact of memory bandwidth utilization can be explained by considering a typical graphics prototype that can be represented by approximately 100 bytes of vertex data and a graphics prototype where several bins can traverse. This example will assume a representative circle across three bins. In this situation, the
이하의 상세한 설명 및 본 발명의 실시예의 첨부 도면으로부터 본 발명을 더욱 완전히 이해할 수 있을 것이다. 그러나, 기술된 특정 실시예는 본 발명의 설명과 이해를 돕기 위한 것일 뿐, 본 발명을 한정하는 것은 아니다.The invention will be more fully understood from the following detailed description and accompanying drawings of embodiments of the invention. However, the specific embodiments described are merely to aid the explanation and understanding of the present invention, but not to limit the present invention.
도 1은 종래의 시스템에 따라서 디스플레이 스크린에 정렬된 수 개의 3D 객체를 나타내는 도면이다.1 is a diagram illustrating several 3D objects arranged on a display screen according to a conventional system.
도 2는 종래의 시스템에 따라 복수의 빈으로 분류된 도 1의 수 개의 3D 객체를 설명하기 위한 도면이다.FIG. 2 is a diagram for describing several 3D objects of FIG. 1 classified into a plurality of bins according to a conventional system.
도 3은 타일형 그래픽스 아키텍쳐를 포함하는 종래 시스템의 블록도이다.3 is a block diagram of a conventional system that includes a tiled graphics architecture.
도 4는 타일형 그래픽스 아키텍쳐에서 메모리 대역폭 이용을 감소시키는 방법의 일 실시예를 나타내는 흐름도이다.4 is a flow diagram illustrating one embodiment of a method of reducing memory bandwidth utilization in a tiled graphics architecture.
도 5는 그래픽스 원형 기억 영역이 시스템 메모리 내에 위치하는 경우에 타일형 그래픽스 아키텍쳐에서 메모리 대역폭 이용을 감소시키는 방법의 일 실시예를 나타내는 흐름도이다.5 is a flow diagram illustrating one embodiment of a method of reducing memory bandwidth utilization in a tiled graphics architecture when a graphics circular storage area is located in system memory.
도 6은 그래픽스 원형 기억 영역이 로컬 그래픽스 메모리 내에 위치하는 경우에 타일형 그래픽스 아키텍쳐에서 메모리 대역폭 이용을 감소시키는 방법의 일 실시예를 나타내는 흐름도이다. FIG. 6 is a flow diagram illustrating one embodiment of a method of reducing memory bandwidth utilization in a tiled graphics architecture when the graphics circular storage area is located in local graphics memory.
도 7은 꼭지점 캐시를 포함하는 그래픽스 컨트롤러의 일 실시예를 포함하는 시스템의 블록도이다.7 is a block diagram of a system including one embodiment of a graphics controller that includes a vertex cache.
타일형 그래픽스 아키텍쳐에서 메모리 대역폭 이용을 감소시키는 장치 및 방법의 일 실시예를 설명한다. 이 실시예에서, 마이크로프로세서는 그래픽스 원형의 꼭지점 데이터를 그래픽스 메모리로부터 판독한다. 마이크로프로세서는 어떤 빈들이 그래픽스 원형을 가로지르는지를 결정한다. 원형의 모든 꼭지점들이 장래의 참조를 위하여 꼭지점 버퍼(vertex buffer)에 기록된다. 꼭지점 버퍼는 주 시스템 메모리 또는 로컬 그래픽스 메모리에 위치할 수 있다. 이 꼭지점 버퍼는 빈 기억 영역의 일부 또는 개별 메모리 위치(separate memory location) 내에 구현될 수 있다. One embodiment of an apparatus and method for reducing memory bandwidth utilization in a tiled graphics architecture is described. In this embodiment, the microprocessor reads the graphics primitive vertex data from the graphics memory. The microprocessor determines which bins cross the graphics circle. All vertices of the prototype are written to the vertex buffer for future reference. Vertex buffers can be located in main system memory or local graphics memory. This vertex buffer may be implemented within a portion of an empty storage area or within a separate memory location.
마이크로프로세서가 제1 및 제2 빈을 가로지르는 그래픽스 원형을 결정하였으면, 마이크로프로세서는 포인터(pointer)를 제1 및 제2 빈 기억 영역에 기록한다. 이 포인터는 실제 꼭지점 데이터의 메모리 위치를 나타낸다. 따라서, 오직 꼭지점 데이터의 하나의 복사본만이 마이크로프로세서로부터 그래픽스 메모리로 이동된다. 때문에 포인터의 크기는 꼭지점 데이터의 크기보다 작고, 마이크로프로세서로부터 그래픽스 메모리로 더 적은 데이터가 이동되어 메모리 대역폭 이용이 향상된다.Once the microprocessor has determined the graphics prototype across the first and second bins, the microprocessor writes a pointer to the first and second bin storage areas. This pointer represents the memory location of the actual vertex data. Thus, only one copy of the vertex data is moved from the microprocessor to graphics memory. Because of this, the size of the pointer is smaller than the size of the vertex data, and less data is moved from the microprocessor to the graphics memory, thus improving memory bandwidth utilization.
상기한 예 및 이하의 실시예에서의 마이크로프로세서는, 마이크로프로세서에 의해 수행되는 것과 같이 동일하게 원형 처리를 취급하는 3D 그래픽스 마이크로 프로세서로 대체될 수 있다. 예를 들어, 추가 실시예는 하드웨어 변환(hard transformation) 및 명암 계산(lighting calculation)을 하드웨어로 수행하는 3D 그래픽스 프로세서를 포함할 수 있다.The microprocessors in the above examples and the following embodiments can be replaced with 3D graphics microprocessors that handle the same circular processing as performed by the microprocessor. For example, further embodiments may include a 3D graphics processor that performs hardware transformation and lighting calculations in hardware.
상기 예 및 이하의 실시예의 그래픽스 메모리는 주 시스템 메모리의 일부로서 포함되거나 그래픽스 컨트롤러에 직접 연결된 로컬 그래픽스 메모리로 구현될 수 있다.The graphics memory of the above examples and the following embodiments may be implemented as local graphics memory included as part of main system memory or directly connected to the graphics controller.
본 명세서에서 사용된 용어 "포인터"는 적어도 일부분은 메모리 주소 및 인덱스(index)를 포함하는 꼭지점 데이터의 위치를 나타내는 모든 수단을 포함하는 것을 의도한다. 예를 들어, 포인터는 꼭지점 데이터의 위치를 나타내는 물리 또는 가상(physical or virtual) 메모리 주소일 수 있다. 이와 달리, 포인터는 꼭지점 데이터의 주소 위치를 계산하는 데 사용될 수 있는 인덱스(index)일 수도 있다. 예를 들어 주소는 "기본 주소(base address) + 인덱스 * 꼭지점 데이터 크기"의 식에 따라 인덱스로부터 계산될 수도 있다.The term "pointer" as used herein is intended to include all means for indicating the location of the vertex data, at least in part, including a memory address and an index. For example, the pointer may be a physical or virtual memory address that indicates the location of the vertex data. Alternatively, the pointer may be an index that can be used to calculate the address location of the vertex data. For example, the address may be calculated from the index according to the formula "base address + index * vertex data size".
비록 상기한 예 및 이하의 예는 그래픽스 원형을 가로지를 수 있는 주어진 수의 빈들을 논의하지만, 다른 예에서는 임의의 수의 빈을 사용할 수 있다. 또한 본 명세서에서 논의된 그래픽스 원형은 세 꼭지점을 포함하는 삼각형을 포함하지만, 다른 형태의 원형도 가능하다.Although the above examples and the following examples discuss a given number of bins that may cross the graphics circle, other examples may use any number of bins. The graphics circles discussed herein also include triangles containing three vertices, although other forms of circles are possible.
또한 본 명세서에서 기술한 실시예는 주소가 32비트 폭(wide)인 것으로 가정하고, 인덱스가 16비트 폭인 것으로 가정하고, 삼각형 그래픽스 원형의 꼭지점 데이터는 대략 100 바이트 길이인 것으로 가정한다. 다른 실시예에서는 넓은 범위의 주소, 인덱스, 데이터 크기 및 길이를 사용할 수 있다.The embodiments described herein also assume that the address is 32 bits wide, the index is 16 bits wide, and the vertex data of the triangle graphics circle is assumed to be approximately 100 bytes long. Other embodiments may use a wide range of addresses, indexes, data sizes and lengths.
도 4는 타일형 그래픽스 아키텍쳐에서 메모리 대역폭 이용을 향상시키기 위한 방법의 일 실시예의 흐름도이다. 블록(410)에서, 그래픽스 원형이 제1 및 제2 빈을 가로지르는지 여부를 결정한다. 만약 그래픽스 원형이 제1 및 제2 빈을 가로지르는 것으로 판정되면, 블록(420)에서는 그래픽스 원형에 대응하는 복수의 꼭지점에 대한 데이터를 메모리 장치에 위치하는 제1 빈 기억 영역에 기록한다. 이 메모리 장치는 주 시스템 메모리 또는 그래픽스 컨트롤러에 직접 연결된 로컬 그래픽스 메모리를 포함할 수 있다.4 is a flow diagram of one embodiment of a method for improving memory bandwidth utilization in a tiled graphics architecture. In
블록(430)에서, 복수의 포인터가 그래픽스 메모리 내에 위치된 제2 빈 기억 영역에 기록된다. 이 복수의 포인터는 복수의 꼭지점 데이터에 대한 메모리 위치를 나타낸다. 꼭지점 데이터를 기록하는 대신에 포인터들을 제2 빈 기억 영역에 기록함으로써, 더 적은 데이터가 프로세서로부터 그래픽스 메모리로 이동되고 메모리 대역폭 이용이 향상된다. 이 포인터들은 그래픽스 컨트롤러에 의해 그 밖의 다른 제2 빈 원형 데이터와 함께 인출될 것이다. 그래픽스 컨트롤러는 이 포인터를 제1 빈 기억 영역으로부터 꼭지점 데이터를 인출하기 위하여 사용할 것이다.At
도 5는 그래픽스 메모리가 주 시스템 메모리 내의 영역으로서 구현되고 그래픽스 컨트롤러가 꼭지점 캐시를 포함하는 컴퓨터 시스템의 타일형 그래픽스 아키텍쳐에서 메모리 대역폭 이용을 향상시키는 방법의 일 실시예를 나타내는 흐름도이다. 꼭지점 캐시는 꼭지점 데이터를 위한 일시적인 기억 장소를 제공하고, 주 시스템 메모리 내에 위치하는 그래픽스 메모리와 그래픽스 컨트롤러 사이에 이동되는 꼭지점 데이터의 양을 감소시켜 시스템 메모리에서 그래픽스 컨트롤러 대역폭 이용을 향상시킬 수 있도록 한다. FIG. 5 is a flow diagram illustrating one embodiment of a method for enhancing memory bandwidth utilization in a tiled graphics architecture of a computer system in which a graphics memory is implemented as an area in main system memory and the graphics controller includes a vertex cache. The vertex cache provides a temporary storage for the vertex data and reduces the amount of vertex data that is moved between the graphics memory and the graphics controller located in the main system memory to improve graphics controller bandwidth utilization in the system memory.
도 5를 참조하면, 블록(505)에서, 프로세서는 그래픽스 원형에 대한 꼭지점 데이터를 시스템 메모리로부터 인출하고, 블록(510)에서 프로세서는 꼭지점 데이터에 대한 계산을 수행한다. 이 예에서, 그래픽스 원형에 대한 꼭지점 데이터는 세 개의 꼭지점을 포함하지만, 다른 실시예에서는 그래픽스 원형에 데이터는 임의 개수의 꼭지점 데이터를 포함할 수 있다.Referring to FIG. 5, at
블록(515)에서, 프로세서는 그래픽스 원형이 제1 빈을 가로지르는지 여부를 결정하고, 가로지르는 것이 있다면 프로세서는 그래픽스 원형의 꼭지점 데이터를 시스템 메모리 내의 제1 빈 기억 영역에 기록한다.At block 515, the processor determines whether the graphics primitive crosses the first bin, and if there is any crossing, the processor writes the vertex data of the graphics primitive to the first bin storage area in system memory.
블록(520)에서, 프로세서는 그래픽스 원형이 제2 빈을 가로지르는지 여부를 결정한다. 만약 그래픽스 원형이 제2 빈을 가로지르는 것으로 판정되면, 블록(525)에서, 프로세서는 세 개의 포인터를 시스템 메모리 내의 제2 빈 기억 영역에 기록한다. 이 포인터들은 미리 시스템 메모리에 기록해둔 세 꼭지점의 메모리 위치를 나타낸다.At
블록(530)에서, 프로세서는 그래픽스 원형이 제3 빈을 가로지르는지 여부를 결정한다. 만약 그래픽스 원형이 제3 빈을 가로지는 것으로 판정되면, 블록(535)에서, 프로세서는 세 개의 포인터를 시스템 메모리 내의 제3 빈 기억 영역에 기록한다. 이 포인터들은 미리 시스템 메모리에 기록해둔 세 꼭지점의 메모리 위치를 나타낸다.At
블록(540)에서, 프로세서는 그래픽스 원형이 제4 빈을 가로지르는지 여부를 결정한다. 만약 그래픽스 원형이 제4 빈을 가로지는 것으로 판정되면, 블록(545)에서, 프로세서는 세 개의 포인터를 시스템 메모리 내의 제4 빈 기억 영역에 기록한다. 이 포인터들은 미리 시스템 메모리에 기록해둔 세 꼭지점의 메모리 위치를 나타낸다.At
비록, 본 실시예가 어쩌면 네 개의 빈을 가로지를 수 있는 그래픽스 원형을 기술하지만, 다른 실시예에서는 그래픽스 원형이 두 개 이상의 빈을 가로지를 수 있다. 또한, 일 실시예에서 빈은 128 * 64 화소의 크기를 가질 수 있지만, 다른 크기의 빈도 가능하다. 또한 빈 가로지름 결정(bin intersection determination)은 전술한 바와 같은 직렬 전근법(serial approach) 대신에 병렬 방식으로 수행될 수 있다.Although the present embodiment describes a graphics circle that may possibly cross four bins, in other embodiments the graphics circle may cross two or more bins. Also, in one embodiment the bin may have a size of 128 * 64 pixels, but other sizes of frequencies are possible. Bin intersection determination may also be performed in a parallel manner instead of the serial approach as described above.
블록(547)에 나타낸 바와 같이 블록(505) 내지 블록(545)은 모든 원형이 복수의 빈으로 분류될 때까지 반복될 수 있다.As shown at
블록(550)에서, 그래픽스 컨트롤러는 데이터를 제1 빈 기억 영역으로부터 인출한다. 제1 빈 기억 영역과 꼭지점 버퍼로부터 인출된 데이터는 블록(515)에서 시스템 메모리에 미리 기록된 그래픽스 원형에 대한 꼭지점 데이터를 포함한다.At
블록(555)에서 그래픽스 컨트롤러는 꼭지점 데이터를 꼭지점 캐시에 기억시킨다. 일 실시예에서, 꼭지점 캐시는 32 바이트의 꼭지점 데이터를 저장할 수 있는 각 엔트리(entry)에 4 방향 인터리브된(4-way interleaved) 16 개의 엔트리를 포함한다. 다른 실시예에서는 상이한 수의 엔트리 및 방향이 가능하고, 각 엔트리가 기억 가능한 꼭지점 데이터의 양이 다를 수 있다. In block 555 the graphics controller stores the vertex data in the vertex cache. In one embodiment, the vertex cache includes sixteen 4-way interleaved entries in each entry that can store 32 bytes of vertex data. In other embodiments, different numbers of entries and orientations are possible, and the amount of vertex data each entry can store may vary.
그래픽스 컨트롤러가 제1 빈 데이터를 인출하여 꼭지점 캐시에 그 꼭지점 데이터를 기억시킨 후에, 블록(560)에서 그래픽스 컨트롤러는 제1 빈 원형들을 렌더링한다. 렌더링 프로세스의 일부로서, 그래픽스 컨트롤러는 제1 빈 데이터에 포함된 각 그래픽스 원형의 어떤 부분이 제1 빈에 포함되는지를 결정하고, 오직 그 부분의 원형만을 렌더링한다.After the graphics controller fetches the first bin data and stores the vertex data in the vertex cache, at block 560 the graphics controller renders the first bin primitives. As part of the rendering process, the graphics controller determines which portion of each graphics prototype contained in the first bin data is included in the first bin and renders only the prototype of that portion.
제1 빈을 렌더링한 다음에, 그래픽스 컨트롤러는 제2 빈의 처리를 계속한다. 제2 빈 처리의 첫 번째 단계로서, 블록(565)에서 그래픽스 컨트롤러는 데이터를 제2 빈 기억 영역으로부터 인출한다. 제2 빈 기억 영역으로 인출된 데이터는 그래픽스 원형의 꼭지점 데이터에 대한 포인터를 포함하며, 블록(520)에서 제2 빈을 가로지르는 것으로 판정된 것이다. 블록(570)에서, 그래픽스 컨트롤러는 블록(555)에서 꼭지점 캐시에 미리 기억된 꼭지점 데이터를 액세스(access)하기 위하여 포인터들을 사용한다. 일단 그래픽스 컨트롤러가 꼭지점 데이터를 액세스하면, 블록(575)에서 그래픽스 컨트롤러는 제2 빈 원형들을 렌더링한다.After rendering the first bean, the graphics controller continues processing of the second bean. As a first step in the second bin process, at
블록(580)에서, 렌더링하여야 추가적인 빈이 남아있는지 여부를 결정한다. 만약, 추가적인 빈이 남아있으면 처리는 블록(565)에서 다시 계속한다. 블록(565) 내지 블록(580)은 모든 빈이 렌더링될 때까지 반복되고, 블록(585)에서 처리는 종료한다. 빈 렌더링의 순서는 연속적(serial) 또는 비연속적일 수 있음을 유의하라. 상기한 실시예는 어떤 발견적 교수법(heuristics)에 의해 일반화(normalize)될 수 있으며, 제2 빈을 먼저, 그리고 이어서 제3, 제1 및 제4 빈을 렌더링할 수 있다. 이것은 전체 시스템 성능의 최적화 방법(optimization measure)을 가능하게 한다.At
도 6은 그래픽스 메모리가 그래픽스 컨트롤러에 직접 연결되는 로컬 그래픽스 메모리로 구현되는 경우에 컴퓨터 시스템의 타일형 그래픽스 아키텍쳐에서 메모리 대역폭 이용을 향상시키는 방법의 일 실시예를 나타내는 흐름도이다. 로컬 그래픽스 메모리는 꼭지점 데이터를 위한 기억 장소를 제공하고, 주 시스템 메모리 내에 위치하는 그래픽스 메모리와 그래픽스 컨트롤러 사이에 이동되는 꼭지점 데이터의 양을 감소시켜 시스템 메모리에서의 그래픽스 컨트롤러 대역폭 이용을 향상시킬 수 있도록 한다. 6 is a flow diagram illustrating one embodiment of a method of improving memory bandwidth utilization in a tiled graphics architecture of a computer system when the graphics memory is implemented with local graphics memory that is directly coupled to a graphics controller. Local graphics memory provides a storage location for the vertex data and reduces the amount of vertex data that is moved between the graphics memory and the graphics controller located in the main system memory to improve graphics controller bandwidth utilization in system memory. .
도 6을 참조하면, 블록(605)에서, 프로세서는 그래픽스 원형에 대한 꼭지점 데이터를 로컬 그래픽스 메모리로부터, 또는 이와는 달리 시스템 메모리로부터 인출하고, 블록(610)에서 프로세서는 꼭지점 데이터에 대한 계산을 수행한다. 이 예에서, 그래픽스 원형에 대한 꼭지점 데이터는 세 개의 꼭지점을 포함하지만, 다른 실시예에서는 그래픽스 원형에 데이터는 임의 개수의 꼭지점 데이터를 포함할 수 있다. 블록(615)에서, 프로세서는 그래픽스 원형이 제1 빈을 가로지르는지 여부를 결정하고, 가로지르는 것이 있다면 프로세서는 그래픽스 원형의 꼭지점 데이터를 로컬 그래픽스 메모리 내의 제1 빈 기억 영역에 기록한다.Referring to FIG. 6, at
블록(620)에서, 프로세서는 그래픽스 원형이 제2 빈을 가로지르는지 여부를 결정한다. 만약 그래픽스 원형이 제2 빈을 가로지르는 것으로 판정되면, 블록(625)에서, 프로세서는 세 개의 포인터를 로컬 그래픽 메모리 내의 제2 빈 기억 영역에 기록한다. 이 포인터들은 미리 로컬 그래픽 메모리에 기록해둔 세 꼭지점의 메모리 위치를 나타낸다.At
블록(630)에서, 프로세서는 그래픽스 원형이 제3 빈을 가로지르는지 여부를 결정한다. 만약 그래픽스 원형이 제3 빈을 가로지는 것으로 판정되면, 블록(635)에서, 프로세서는 세 개의 포인터를 로컬 그래픽 메모리 내의 제3 빈 기억 영역에 기록한다. 이 포인터들은 미리 로컬 그래픽 메모리에 기록해둔 세 꼭지점의 메모리 위치를 나타낸다.At
블록(640)에서, 프로세서는 그래픽스 원형이 제4 빈을 가로지르는지 여부를 결정한다. 만약 그래픽스 원형이 제4 빈을 가로지는 것으로 판정되면, 블록(645)에서, 프로세서는 세 개의 포인터를 로컬 그래픽 메모리 내의 제4 빈 기억 영역에 기록한다. 이 포인터들은 미리 로컬 그래픽 메모리에 기록해둔 세 꼭지점의 메모리 위치를 나타낸다.At
비록, 본 실시예가 어쩌면 네 개의 빈을 가로지를 수 있는 그래픽스 원형을 기술하지만, 다른 실시예에서는 그래픽스 원형이 두 개이상의 빈을 가로지를 수도 있다. 또한, 일 실시예에서 빈은 128 * 64 화소의 크기를 가질 수 있지만, 다른 크기의 빈도 가능하다. 또한 빈 가로지름 결정은 전술한 바와 같은 직렬 접근법 대신에 병렬 방식으로 수행될 수 있다. 예를 들어, 원형의 묶음 상자는 원형을 가로지는 모든 빈을 한꺼번에 발견하는 데 사용될 수 있다.Although the present embodiment describes a graphics circle that may possibly cross four bins, in other embodiments the graphics circle may cross two or more bins. Also, in one embodiment the bin may have a size of 128 * 64 pixels, but other sizes of frequencies are possible. The bin crossing determination may also be performed in a parallel manner instead of the serial approach as described above. For example, a circular bundle box can be used to find all the bins across a circle at once.
블록(647)에 나타낸 바와 같이 블록(605) 내지 블록(645)은 모든 원형이 복수의 빈으로 분류될 때까지 반복될 수 있다.As shown in block 647, blocks 605 through 645 may be repeated until all circles have been classified into a plurality of bins.
블록(650)에서, 그래픽스 컨트롤러는 데이터를 제1 빈 기억 영역으로부터 인출한다. 제1 빈 기억 영역으로부터 인출된 데이터와 꼭지점 버퍼는 블록(615)에서 로컬 그래픽 메모리에 미리 기록된 그래픽스 원형에 대한 꼭지점 데이터를 포함한다.At
그래픽스 컨트롤러가 제1 빈 데이터를 인출한 후, 블록(660)에서 그래픽스 컨트롤러는 제1 빈 원형들을 렌더링한다. 렌더링 프로세스의 일부로서, 그래픽스 컨트롤러는 제1 빈 데이터에 포함된 각 그래픽스 원형의 어떤 부분이 제1 빈에 포함되는지를 결정하고, 오직 그 부분의 원형만을 렌더링한다.After the graphics controller fetches the first bin data, at block 660 the graphics controller renders the first bin primitives. As part of the rendering process, the graphics controller determines which portion of each graphics prototype contained in the first bin data is included in the first bin and renders only the prototype of that portion.
제1 빈의 렌더링한 다음에, 그래픽스 컨트롤러는 제2 빈의 처리하기 위하여 계속한다. 제2 빈 처리의 첫 번째 단계로서, 블록(665)에서 그래픽스 컨트롤러는 데이터를 제2 빈 기억 영역으로부터 인출한다. 제2 빈 기억 영역으로 인출된 데이터는 그래픽스 원형의 꼭지점 데이터에 대한 포인터를 포함하며, 블록(620)에서 제2 빈과 교차한다고 판정된 것이다. 블록(670)에서, 그래픽스 컨트롤러는 블록(615)에서 미리 꼭지점 캐시에 기억된 꼭지점 데이터를 액세스하기 위하여 포인터들을 사용한다. 일단 그래픽스 컨트롤러가 꼭지점 데이터를 액세스하면, 블록(675)에서 그래픽스 컨트롤러는 제2 빈 원형들을 렌더링한다.After rendering of the first bean, the graphics controller continues to process the second bean. As a first step of the second bin process, at
블록(680)에서, 렌더링하여야 할 추가적인 빈이 남아있는지 여부를 결정한다. 만약, 추가적인 빈이 남아있으면 처리는 블록(665)에서 다시 계속한다. 블록(665) 내지 블록(680)은 모든 빈이 렌더링될 때까지 반복되고, 블록(685)에서 처리는 종료된다. 빈 렌더링의 순서는 연속적(serial) 또는 비연속적일 수 있음을 유의하라. 상기한 실시예는 어떤 발견적 교수법에 의해 일반화될 수 있으며, 제2 빈을 먼저, 그리고 이어서 제3, 제1 및 제4 빈을 렌더링할 수 있다. 이것은 전체 시스템 성능의 최적화 측정을 가능하게 한다. 예를 들어, 적재 균형(load balancing)은 그래픽스 컨트롤러에서 전치(front-end) 및 후치(back-end) 처리에 대한 적재를 일반화하는 데 사용될 수 있다.At
도 7은 꼭지점 캐시(742)를 포함하는 그래픽스 컨트롤러(740)를 포함하는 컴퓨터 시스템의 블록도이다. 도 7의 컴퓨터 시스템은 또한 프로세서 버스(715)를 통하여 시스템 논리 장치(720)에 연결된 프로세서(710)를 포함한다. 시스템 논리 장치(720)는 프로세서(710)와 시스템 메모리(730) 사이의 통신을 제공한다. 시스템 메모리(730)는 그래픽스 원형 기억 영역(732)을 포함한다. 그래픽스 원형 기억 영역(732)은 복수의 빈에 대한 기억 영역으로 나뉘어질 수 있다.7 is a block diagram of a computer system including a
시스템 논리 장치(720)는 또한 그래픽스 컨트롤러(740)를 프로세서(710) 및 시스템 메모리(730)에 연결시키는 역할을 한다. 도 7의 시스템은 또한 그래픽스 컨트롤러(740)에 연결되는 디스플레이 모니터(750)를 포함한다.
도 7의 시스템은 도 4 및 도 5와 관련하여 앞서 논의한 바와 같이 메모리 대역폭 이용을 향상시키기 위한 방법의 실시예와 같이 이용될 수 있다. 예를 들어, 프로세서(710)는 그래픽스 원형의 꼭지점 데이터를 그래픽스 원형 기억 영역(732)으로부터 판독할 수 있다. 프로세서(710)는 이어서 어떤 빈들이 그래픽스 원형을 가로지르는지를 결정할 수 있다. 그 다음에, 프로세서(710)는 꼭지점 데이터를 그래픽스 원형 기억 영역(732) 내의 제1 빈 기억 영역에 기록한다. 만약 그래픽스 원형이 다른 빈들을 가로지르는 것으로 판정되면, 프로세서(710)는 포인터를 그래픽스 원형 기억 영역(732) 내의 다른 빈 기억 영역에 포인터들을 기록한다. 이 포인터들은 꼭지점 데이터가 기억되어 있는 제1 빈 기억 영역 내의 위치를 나타낸다. 이 예에서 포인터들은 계산될 꼭지점 데이터의 메모리 위치로부터의 16 비트 인덱스를 포함한다. 또 다른 실시예에서는 상이한 길이의 인덱스 및/또는 주소를 사용할 수 있다.The system of FIG. 7 may be used as an embodiment of a method for improving memory bandwidth utilization as discussed above with respect to FIGS. 4 and 5. For example, the
그래픽스 컨트롤러(740)가 제1 빈을 처리하고자 하는 경우, 그래픽스 컨트롤러(740)는 그래픽스 원형 기억 영역(732)로부터 제1 빈 데이터를 인출한다. 그래픽스 컨트롤러(740)는 그 그래픽스 원형에 대한 꼭지점 데이터를 꼭지점 캐시(742)에 기억시킨다. 그래픽스 컨트롤러(740)는 이어서 제1 빈 영역 내에 포함되는 그래픽스 원형들의 일부를 포함하는 제1 빈을 렌더링한다.When the
이 예의 경우, 빈은 1328 * 64 화소 크기이다. 꼭지점 캐시(742)는 이 예에서 4 방향 셋 어소시어티브(4-way set-associative) 방식이고 32 바이트 꼭지점 데이터를 기억하는 16 엔트리를 포함한다. 다른 실시예에서는 상이한 빈 크기 및/또는 상이한 캐시 배열(cache arrangement)이 가능하다.For this example, the bin is 1328 * 64 pixels in size.
그래픽스 컨트롤러(740)가 제2 빈을 처리할 준비가 된 경우, 그래픽스 컨트롤러(740)는 제2 빈에 대한 데이터를 그래픽스 원형 기억 영역(732)로부터 인출한다. 프로세서(710)가 이전에 그래픽스 원형이 제2 빈을 가로지르는 것으로 결정하였다면, 제2 빈에 대한 데이터는 그래픽스 원형의 꼭지점 데이터에 대한 포인터들을 포함할 것이다. 그래픽스 컨트롤러(740)는 이어서 그 포인터를 꼭지점 캐시(742)에 기억된 꼭지점 데이터를 액세스하기 위하여 사용한다. 꼭지점 캐시(742)는 이 예의 경우처럼, 꼭지점 데이터의 복사본이 꼭지점 캐시(742)에 기억되어 있는 경우에 꼭지점 데이터를 그래픽스 원형 기억 영역(732)으로부터 인출하여야 할 필요성을 제거함으로써 메모리 대역폭 이용을 개선시키는 역할을 한다.When the
일단 꼭지점 데이터가 꼭지점 캐시(742)에서 검색되면, 그래픽스 컨트롤러(740)는 제2 빈을 렌더링할 수 있다. 모든 빈이 렌더링될 때까지 후속하는 빈들이 동일한 방식으로 처리될 수 있다.Once the vertex data is retrieved from the
전술한 명세서에서 본 발명은 특정 실시예들을 참조하여 기술하였다. 그러나 첨부된 청구범위에 기술한 본 발명의 사상과 범위를 벗어나지 않는 다양한 변형과 변경이 가능함은 명백하다. 따라서 본 명세서 및 도면은 제한적이기보다는 예시적인 것으로 간주되어야 한다.In the foregoing specification, the invention has been described with reference to specific embodiments. However, it is apparent that various modifications and changes can be made without departing from the spirit and scope of the invention as set forth in the appended claims. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.
명세서에서 "실시예", "일 실시예", "어떤 실시예" 또는 "다른 실시예"는 실시예와 관련하여 기술된 특정한 특징, 구조 또는 특성이 적어도 어떤 실시예에 포함되지만, 본 발명의 모든 실시예에 반드시 포함되어야 하는 것은 아님을 의미한다. "실시예", "일 실시예" 또는 "어떤 실시예"의 다양한 모습은 반드시 모두 동일한 실시예를 가리키지는 않는다.In the specification, "an embodiment", "an embodiment", "an embodiment" or "another embodiment" includes at least some embodiments of a particular feature, structure, or characteristic described in connection with the embodiment, It is not meant to be included in all embodiments. Various appearances of "an embodiment", "one embodiment" or "an embodiment" do not necessarily all refer to the same embodiment.
Claims (17)
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US54061600A | 2000-03-31 | 2000-03-31 | |
US09/540,616 | 2000-03-31 | ||
PCT/US2001/007225 WO2001075804A1 (en) | 2000-03-31 | 2001-03-06 | Tiled graphics architecture |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20030005253A KR20030005253A (en) | 2003-01-17 |
KR100550240B1 true KR100550240B1 (en) | 2006-02-08 |
Family
ID=24156227
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020027013055A KR100550240B1 (en) | 2000-03-31 | 2001-03-06 | Tiled graphics architecture |
Country Status (8)
Country | Link |
---|---|
EP (1) | EP1269418A1 (en) |
JP (1) | JP2003529860A (en) |
KR (1) | KR100550240B1 (en) |
CN (2) | CN1430769B (en) |
AU (1) | AU2001256955A1 (en) |
HK (1) | HK1049537A1 (en) |
TW (1) | TWI233573B (en) |
WO (1) | WO2001075804A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9013479B2 (en) | 2010-01-06 | 2015-04-21 | Samsung Electronics Co., Ltd. | Apparatus and method for tile-based rendering |
US9159157B2 (en) | 2011-11-09 | 2015-10-13 | Samsung Electronics Co., Ltd. | Apparatus and method for tile binning |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6738069B2 (en) * | 2001-12-31 | 2004-05-18 | Intel Corporation | Efficient graphics state management for zone rendering |
US7765366B2 (en) * | 2005-06-23 | 2010-07-27 | Intel Corporation | Memory micro-tiling |
GB2449399B (en) | 2006-09-29 | 2009-05-06 | Imagination Tech Ltd | Improvements in memory management for systems for generating 3-dimensional computer images |
JP4913823B2 (en) * | 2006-11-01 | 2012-04-11 | 株式会社ディジタルメディアプロフェッショナル | A device to accelerate the processing of the extended primitive vertex cache |
US8139058B2 (en) * | 2006-11-03 | 2012-03-20 | Vivante Corporation | Hierarchical tile-based rasterization algorithm |
GB2458488C (en) | 2008-03-19 | 2018-09-12 | Imagination Tech Ltd | Untransformed display lists in a tile based rendering system |
US20110043518A1 (en) * | 2009-08-21 | 2011-02-24 | Nicolas Galoppo Von Borries | Techniques to store and retrieve image data |
KR101609266B1 (en) | 2009-10-20 | 2016-04-21 | 삼성전자주식회사 | Apparatus and method for rendering tile based |
WO2011161723A1 (en) * | 2010-06-24 | 2011-12-29 | 富士通株式会社 | Drawing device and drawing method |
CN110415161B (en) * | 2019-07-19 | 2023-06-27 | 龙芯中科(合肥)技术有限公司 | Graphics processing method, device, equipment and storage medium |
WO2022150347A1 (en) * | 2021-01-05 | 2022-07-14 | Google Llc | Subsurface display interfaces and associated systems and methods |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5886701A (en) * | 1995-08-04 | 1999-03-23 | Microsoft Corporation | Graphics rendering device and method for operating same |
WO2000011607A1 (en) * | 1998-08-20 | 2000-03-02 | Apple Computer, Inc. | Deferred shading graphics pipeline processor |
US6771264B1 (en) * | 1998-08-20 | 2004-08-03 | Apple Computer, Inc. | Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor |
-
2001
- 2001-03-06 WO PCT/US2001/007225 patent/WO2001075804A1/en active IP Right Grant
- 2001-03-06 EP EP01930417A patent/EP1269418A1/en not_active Withdrawn
- 2001-03-06 CN CN018098916A patent/CN1430769B/en not_active Expired - Fee Related
- 2001-03-06 CN CN201210080502.0A patent/CN102842145B/en not_active Expired - Fee Related
- 2001-03-06 KR KR1020027013055A patent/KR100550240B1/en active IP Right Grant
- 2001-03-06 AU AU2001256955A patent/AU2001256955A1/en not_active Abandoned
- 2001-03-06 JP JP2001573406A patent/JP2003529860A/en active Pending
- 2001-04-17 TW TW090107594A patent/TWI233573B/en not_active IP Right Cessation
-
2003
- 2003-03-07 HK HK03101674.8A patent/HK1049537A1/en unknown
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9013479B2 (en) | 2010-01-06 | 2015-04-21 | Samsung Electronics Co., Ltd. | Apparatus and method for tile-based rendering |
US9159157B2 (en) | 2011-11-09 | 2015-10-13 | Samsung Electronics Co., Ltd. | Apparatus and method for tile binning |
Also Published As
Publication number | Publication date |
---|---|
CN102842145B (en) | 2016-08-24 |
CN1430769B (en) | 2012-05-30 |
JP2003529860A (en) | 2003-10-07 |
EP1269418A1 (en) | 2003-01-02 |
AU2001256955A1 (en) | 2001-10-15 |
HK1049537A1 (en) | 2003-05-16 |
WO2001075804A1 (en) | 2001-10-11 |
CN1430769A (en) | 2003-07-16 |
TWI233573B (en) | 2005-06-01 |
CN102842145A (en) | 2012-12-26 |
KR20030005253A (en) | 2003-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6288730B1 (en) | Method and apparatus for generating texture | |
US7944441B2 (en) | Compression and decompression of data using plane equations | |
US6903737B2 (en) | Method and apparatus for implementing spread memory layout | |
EP1016068B1 (en) | Reordering of memory references for pixels in a page-mode memory architecture | |
KR100301223B1 (en) | Draw processor for high performance 3D graphic accelerators | |
US6160557A (en) | Method and apparatus providing efficient rasterization with data dependent adaptations | |
US6278645B1 (en) | High speed video frame buffer | |
KR101034925B1 (en) | Method and apparatus for encoding texture information | |
US20060164429A1 (en) | 3-D rendering texture caching scheme | |
KR100550240B1 (en) | Tiled graphics architecture | |
US7898551B2 (en) | Systems and methods for performing a bank swizzle operation to reduce bank collisions | |
US20110279465A1 (en) | Memory system having multiple address allocation formats and method for use thereof | |
US7348988B2 (en) | Texture cache control using an adaptive missing data table in a multiple cache computer graphics environment | |
EP2380139A1 (en) | Display list control stream grouping in tile based 3d computer graphics system | |
JP4545242B2 (en) | Non-blocking pipeline cache | |
US6891546B1 (en) | Cache memory for texture mapping process in three-dimensional graphics and method for reducing penalty due to cache miss | |
JP4061697B2 (en) | Image display method and image display apparatus for executing the same | |
US6300953B1 (en) | Apparatus and method for grouping texture cache requests | |
EP1721298A2 (en) | Embedded system with 3d graphics core and local pixel buffer | |
JP4777893B2 (en) | Drawing device | |
JP2882465B2 (en) | Image generation method and apparatus | |
US6778179B2 (en) | External dirty tag bits for 3D-RAM SRAM | |
CN117555465A (en) | Graphic display method and graphic display device for display equipment | |
CN116385253A (en) | Primitive drawing method, device, computer equipment and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20130219 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20140203 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20150130 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20160127 Year of fee payment: 11 |
|
FPAY | Annual fee payment |
Payment date: 20170126 Year of fee payment: 12 |
|
FPAY | Annual fee payment |
Payment date: 20180201 Year of fee payment: 13 |
|
FPAY | Annual fee payment |
Payment date: 20190129 Year of fee payment: 14 |
|
FPAY | Annual fee payment |
Payment date: 20200129 Year of fee payment: 15 |