KR20030005251A - 타일형 그래픽스 아키텍쳐 - Google Patents

타일형 그래픽스 아키텍쳐 Download PDF

Info

Publication number
KR20030005251A
KR20030005251A KR1020027013050A KR20027013050A KR20030005251A KR 20030005251 A KR20030005251 A KR 20030005251A KR 1020027013050 A KR1020027013050 A KR 1020027013050A KR 20027013050 A KR20027013050 A KR 20027013050A KR 20030005251 A KR20030005251 A KR 20030005251A
Authority
KR
South Korea
Prior art keywords
pipeline
graphics
bins
rendering
tiled
Prior art date
Application number
KR1020027013050A
Other languages
English (en)
Other versions
KR100560088B1 (ko
Inventor
짜이신추
시에시에쳉
펜트코브스키블라디미르
Original Assignee
인텔 코오퍼레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인텔 코오퍼레이션 filed Critical 인텔 코오퍼레이션
Publication of KR20030005251A publication Critical patent/KR20030005251A/ko
Application granted granted Critical
Publication of KR100560088B1 publication Critical patent/KR100560088B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures

Abstract

타일형 그래픽스 아키텍쳐로 2D 연산들을 처리하는 방법을 기술한다. 그래픽스 컨트롤러는 3D 원형 및 2D 블릿 연산을 모두 처리한다. 3D 원형들은 이미 알려져 있는 기술을 사용하여 복수의 빈으로 분류된다. 2D 블릿 연산이 처리되어야 하는 경우, 이 2D 블릿 연산 또한 복수의 빈으로 분류된다. 분류된 3D 원형 및 분류된 2D 블릿 연산들은 그 후 빈 하나씩에 기초하여 블릿 및 렌더링 엔진에 전달된다. 2D 블릿 연산들을 3D 원형들과 함께 복수의 빈으로 분류함으로써 2D 블릿 연산이 처리를 요구할 때마다 복수의 빈을 플러싱(원형들을 렌더링 엔진에 전송)하지 않아도 된다. 2D 블릿 연산들을 복수의 빈으로 분류하는 것은 그래픽스 캐시 적중 실패(miss)의 빈도를 감소시키고 그래픽스 메모리 대역폭 이용을 향상시켜 전체 컴퓨터 시스템의 성능을 향상시킨다.

Description

타일형 그래픽스 아키텍쳐 {TILED GRAPHICS ARCHITECTURE}
컴퓨터 그래픽스 시스템은 보통 객체(object)의 그래픽 표현을 2 차원 비디오 디스플레이 스크린에 표시하기 위하여 사용된다. 현재의 컴퓨터 그래픽스 시스템은 매우 상세한 표현을 제공하며, 다양한 애플리케이션에 이용된다.
전형적인 컴퓨터 그래픽스 시스템에서, 디스플레이 스크린 상에 표현될 3 차원(3D) 객체는 그래픽스 원형들(primitives)로 나누어져 있다. 일반적으로, 이 표현될 3D 객체의 원형들은 호스트 컴퓨터에 의해 원시 데이터(primitive data)의 항으로 규정된다. 예를 들어, 원형이 삼각형인 경우, 호스트 컴퓨터는 이 원형을 각 꼭지점의 빨간색(R), 녹색(G) 및 파란색(B)의 색 값(color value)은 물론 꼭지점들의 X, Y, 및 Z 좌표의 항으로 규정할 수 있다. 부가적인 원시 데이터가 특정한 애플리케이션에 사용될 수 있다. 렌더링 하드웨어(rendering hardware) 는 각 원형을 표현하는 디스플레이 스크린 화소들과 각 화소에 대한 R, G, B 색 값을 계산하기 위하여 원시 데이터를 보간(interpolate)한다.
대표적인 컴퓨터 그래픽스 시스템은 또한 그래픽스 캐시 메모리(cache memory)를 포함한다. 그래픽스 캐시 메모리의 더욱 효율적인 사용을 위하여, 3D 원형들은 복수의 빈(bin)으로 분류(sort)된다. 널리 알려져 있는 이 기술은 종종 "타일링(tiling)"이라고 한다.
도 1 및 도 2는 3D 원형들을 복수의 빈 또는 "타일링"으로 분류하는 일례를 나타낸다. 이 예에서, 그래픽스 컨트롤러는 원형들(110, 120, 130)에 대한 데이터를 수신한다. 이 원형들(110, 120, 130)은 렌더링되어 디스플레이 스크린(100) 상에 표시된다. 3D 원형을 렌더링 하는 경우, 그래픽스 컨트롤러는 그래픽스 메모리로부터 디스플레이 데이터의 적절한 부분을 그래픽스 캐시 메모리로 읽어들인다. 그런 다음, 그래픽스 컨트롤러는 그 원형을 렌더링하고 렌더링된 원형을 그래픽스 캐시 메모리에 기억되어 있는 디스플레이 데이터와 결합시킨다. 그래픽스 메모리는 주 시스템 메모리(main system memory)에 배치될 수 있다.
비 타일형(non-tiled) 아키텍쳐에서는, 그래픽스 컨트롤러가 원형(110)을 렌더링하면, 그 다음에는 원형(120)을, 또 그 다음에 원형(130)을 렌더링하는 식으로, 매번 그래픽스 컨트롤러는 하나의 원형에서 그래픽스 메모리로부터 검색되어야 할 그 다음 디스플레이 데이터의 새로운 부분으로 이동하였고, 결과적으로 그래픽스 캐시에서 많은 적중 실패(miss)가 발생하여 그래픽스 메모리 대역폭의 이용이 더 현저해졌다.
그래픽스 메모리 대역폭 이용을 향상시키기 위하여, 원형들(110, 120, 130)에 대하여 타일 기능이 수행된다. 이 예의 원형들(110, 120, 130)은 도 2에 도시한 바와 같이 복수의 빈(210, 220, 230, 240)으로 분류된다. 이 분류 기술은 일반적으로 여러 원형들을 가로지르는 복수의 빈이 어떤 것인지를 분석한 후, 그 원시 데이터의 복사본(copies)을 원형들이 가로지르는 복수의 빈에 대한 주 메모리 내의 기억 영역(storage area)에 기록하는 마이크로프로세서를 포함한다. 그래픽스 컨트롤러는 그 후에 빈 기억 영역의 원시 데이터를 판독하여 여러 타일에 맞는 더 작은 원형들을 생성하기 위하여 원형들을 분할한다. 예를 들어, 원형(110)은 빈(210)에 위치하는 원형(211)과 빈(220)에 위치하는 원형(221)을 생성하기 위하여 분할된다. 원형(120)은 빈(220)에 위치하는 원형(222)과 빈(240)에 위치하는 원형(242)을 생성하기 위하여 분할된다. 원형(130)은 빈(210)에 위치하는 원형(212)과 빈(230)에 위치하는 원형(241)을 생성하기 위하여 분할된다.
일단 원형들이 주어진 빈에 대하여 더 작은 원형들로 분할되면, 빈은 랜더링될 수 있다. 일반적으로, 그래픽스 컨트롤러는 복수의 빈을 한번에 하나 처리하였다. 때문에 특정 빈 내에 위치하는 각 원형들에 대한 적절한 디스플레이 데이터는 그래픽스 메모리의 동일한 영역에 기억되어, 원형들을 렌더링하는 경우에 더 적은 적중 실패를 가져올 것이고, 결과적으로 그래픽스 메모리 대역폭 이용이 향상된다.
그러나, 대표적인 그래픽스 시스템에서는 2 차원(2D) 연산과 3 차원(3D) 연산이 혼합되는 것 또한 일반적이다. 예를 들어, 마이크로프로세서는 몇몇 3D 객체에 대한 원시 데이터를 수신할 수 있으며, 그 후에 2D 블릿(blit) 연산을 수행하기 위한 명령(command)을 수신한 다음, 더 많은 3D 원시 데이터를 수신한다.
도 3은 대표적인 종래의 그래픽스 시스템이 타일형 아키텍쳐에서 2D 연산을처리하는 방법을 설명하는 흐름도이다. 단계 310에서, 프로세서는 3D 원시 데이터를 수신하고, 그 원형들을 복수의 빈으로 분류한다. 단계 320에서 2D 블릿 연산이 수신된 경우, 원시 데이터를 포함하는 모든 빈이 플러싱(flushing)된다(렌더링되기 위해 그래픽스 컨트롤러로 전송). 그 다음에 단계 340에서, 2D 블릿 연산이 수행된다. 2D 블릿 연산에 이어, 프로세서는 추가적인 3D 원형들을 복수의 빈으로의 분류를 시작할 수 있다.
2D 연산이 수신될 때마다 플러싱 및 랜더링이 상당 부분 훼손될 수 있으며, 3D 원형들의 타일링의 이점은 그래픽스 캐시 적중 실패에 기인한다. 그 결과는 그래픽스 메모리 대역폭의 더 많이 이용된다. 그래픽스 메모리 대역폭 이용을 증가시키는 이 결과는 시스템 주 메모리의 일부가 그래픽스 메모리로 사용되는 컴퓨터 시스템에서는 특히 의심스러울 수 있으며, 많은 시스템 에이전트(system agent)는 시스템 주 메모리에 접근하기를 원한다. 그래픽스 컨트롤러에 의한 주 메모리 대역폭 이용의 증가는 전체 시스템 성능에 부정적인 영향을 줄 수 있다.
본 발명은 컴퓨터 시스템 분야에 관한 것으로, 더욱 자세하게는 타일형 아키텍쳐를 사용하는 그래픽스 시스템에서의 2D 그래픽스 연산 처리 분야에 관한 것이다.
도 1은 종래의 시스템에 의해 디스플레이 스크린에 정렬된 수 개의 3D 객체를 나타내는 도면이다.
도 2는 종래의 시스템에 따라 복수의 빈으로 분류된 도 1의 수 개의 3D 객체를 설명하기 위한 도면이다.
도 3은 타일형 그래픽스 아키텍쳐에서 2D 연산을 처리하는 종래의 방법을 나타내는 흐름도이다.
도 4는 디스플레이 스크린에 정렬된 수 개의 3D 객체 및 2D 객체를 설명하는 도면이다.
도 5는 본 발명의 실시예에 따라 복수의 빈으로 분류된 도 4의 수 개의 3D 객체 및 2D 객체를 나타내는 도면이다.
도 6은 2D 연산들을 복수의 빈으로 분류하는 방법의 일 실시예를 나타내는 흐름도이다.
도 7은 본 발명의 실시예에 따라 구현되는 그래픽스 컨트롤러를 통합하는 시스템 논리 장치를 포함하는 시스템의 블록도이다.
이하의 상세한 설명 및 본 발명의 실시예의 첨부 도면으로부터 본 발명을 더욱 완전히 이해할 수 있을 것이다. 그러나, 기술된 특정 실시예는 본 발명의 설명과 이해를 돕기 위한 것일 뿐, 본 발명을 한정하는 것은 아니다.
타일형 아키텍쳐에서 2D 연산을 처리하는 방법의 일 실시예에 대하여 설명한다. 이 예에서, 3D 원형들과 2D 블릿 연산이 모두 처리될 것이다. 3D 원형 이미 알려진 기술을 사용하여 복수의 빈으로 분류된다. 2D 블릿 연산이 처리될 경우, 이 3D 블릿 연산 또한 복수의 빈으로 분류된다. 분류된 3D 원형들 및 분류된 2D 블릿 연산들은 그 후 빈 하나씩(bin-by-bin)에 기초하여 드로잉 및 렌더링 엔진(drawing and rendering engine)에 전달된다. 2D 블릿 연산들을 3D 원형들과 함께 분류함으로써 2D 블릿 연산들이 처리를 요구할 때마다 복수의 빈을 플러싱(원형들을 렌더링 엔진으로 전송)하지 않아도 된다. 2D 블릿 연산들을 복수의 빈으로 분류하는 것은 그래픽스 캐시 적중 실패의 빈도를 감소시키고 그래픽스 메모리 대역폭 이용를 향상시켜 전체 컴퓨터 시스템의 성능을 향상시킨다.
여기에 기술된 실시예는 2D 블릿 연산에 대하여 설명한다. 용어 "2D 블릿 연산"은 디스플레이 스크린에 그려져 있는 2차원 객체를 가리키는 임의의 연산을 포함하는 것을 의미한다. 2D 블릿 연산들은 또한 그래픽스 시스템의 색 또는 Z(깊이) 버퍼들을 초기화하는 데 사용될 수 있다. 또한 여기에 기술하는 실시예는 적은 수의 3D 및 2D 연산과 원형을 논의하지만, 본 실시예들은 매수 큰 수의 3D 및 2D 연산과 원형을 처리하도록 의도한다.
도 4는 디스플레이 스크린(400)에 그려진 수 개의 3D 원형 및 2D 객체를 표현한 것이다. 이 예의 경우, 2D 객체(240)에 대한 2D 블릿 연산은 물론 3D 원형들(410, 420, 430)이 마이크로프로세서에 의해 수신된다. 마이크로프로세서는 3D 원형들(410, 420, 430)을 하나 이상의 복수의 빈(510, 520, 530, 540)으로 분류한다.
비록 이 예에서는 본 발명을 보다 명확하게 설명하기 위하여 스크린 디스플레이 영역을 4 개의 빈으로 분할하여 설명하지만, 다른 실시예에서는 이 스크린 디스플레이 영역을 임의의 폭 넓은 범위의 빈 수로 분할할 수 있다. 대개, 빈의 수는 4 개를 훨씬 초과할 것이다.
도 4에 도시된 바와 같이, 3D 원형(410)은 일부는 빈(520)에, 그리고 일부는 빈(540)에 속한다. 3D 원형(420)은 일부는 빈(520)에, 그리고 일부는 빈(540)에속한다. 3D 원형(430)은 일부는 빈(510)에, 그리고 일부는 빈(530)에 속한다. 2D 객체(440)는 일부는 빈(510)에, 그리고 일부는 빈(530)에 속한다.
도 5는 복수의 빈(510, 529, 539, 540)으로 분할된 2D 객체(440)는 물론 3D 원형(410, 420, 430, 440)을 나타낸다. 프로세서는 원형들이 가로지르는 복수의 빈 모두에 대해 여러 원형의 복사본을 그래픽스 메모리 기억 영역들에 전달한다. 예를 들어, 프로세서는 원형(410)에 대한 원시 데이터의 복사본을 복수의 빈(510, 520)에 대한 그래픽스 메모리 기억 영역에 전달할 것이다. 다른 예로서, 프로세서는 2D 객체(440)에 대한 데이터 복사본을 복수의 빈(510, 530)에 대한 그래픽스 기억 영역에 전달한다. 2D 객체(440)를 3D 원형들과 함께 분류함으로써 프로세서가 2D 객체(440)에 대한 블릿 연산을 수신한 경우, 복수의 빈을 플러싱(원형들을 그래픽스 컨트롤러 내의 렌더링 엔진에 전송)하지 않아도 된다. 2D 객체(440)를 복수의 빈으로 분류함으로써 그래픽스 캐시 적중 실패의 빈도를 줄이고 그래픽스 메모리 대역폭 이용을 향상시켜 전체 컴퓨터 시스템 성능을 향상시킨다.
일단 3D 원형들과 2D 객체(440)가 복수의 빈으로 분류되면, 그래픽스 컨트롤러는 각 빈에 대한 데이터를 빈 하나씩을 기초하여 판독하고, 큰 원형들을 각 타일 내에 맞는 더 작은 원형들로 분할한다. 예를 들어, 3D 원형(410)은 그래픽스 컨트롤러에 의해 분할되어 빈(510) 내의 원형(511)과 빈(520) 내의 원형(512)을 생성한다. 3D 원형(420)은 그래픽스 컨트롤러에 의해 분할되어 빈(520) 내의 원형(522)과 빈(540) 내의 원형(542)을 생성한다. 3D 원형(430)은 그래픽스 컨트롤러에 의해 분할되어 빈(530) 내의 원형(531)과 빈(540) 내의 원형(541)을 생성한다. 2D객체(440)은 그래픽스 컨트롤러에 의해 분할되어 빈(510) 내의 객체(513)과 빈(530) 내의 객체(532)를 생성한다. 분할된 3D 원형들 및 분할된 2D 객체는 그런 후 빈 하나씩에 기초하여 드로잉 및 랜더링 엔진으로 전달된다.
도 6은 타일형 그래픽스 아키텍쳐에서 2D 블릿 연산들을 처리하는 방법의 일 실시예를 나타내는 흐름도이다. 단계 610에서, 3D 원형들은 수신되어 복수의 빈으로 분류된다. 이 예에서, 3D 원형들은 프로세서에 전달되고, 프로세서는 분류[비닝(binning)] 처리를 수행한다. 다른 실시예에서는 그래픽스 컨트롤러 내에서 분류 처리가 실행될 수도 있다.
단계 620에서, 2D 블릿 연산이 수신되었는지 여부에 따라 결정이 이루어진다. 만약 2D 블릿 연산이 존재하지 않으면, 프로세스는 단계 610으로 되돌아가고 추가적인 3D 원형들이 수신될 수 있다. 그러나 단계 620에서 2D 블릿 연산이 수신되었으면, 그 2D 연산도 또한 단계 630에서 복수의 빈으로 분류된다.
도 7은 시스템 논리 장치(710)에 배치된 그래픽스 컨트롤러(720)를 포함하는 시스템의 블록도이다. 그래픽스 컨트롤러(720)는 저장부(binning unit)(721), 2D 블릿 엔진(722), 3D 렌더링 엔진(723), 디스플레이 출력부(725), 및 그래픽스 캐시 메모리(724)를 포함한다. 2D 블릿 엔진(722)은 2D 블릿 연산을 수행하기 위하여 사용되는 광범위한 회로들을 나타내도록 되어있다. 3D 렌더링 엔진(723)은 3D 원형들을 처리하기 위하여 사용되는 광범위한 회로들을 나타내도록 되어있다. 유사하게, 디스플레이 출력부(725)는 그래픽스 디스플레이 데이터를 디스플레이 모니터로 전달하기 좋은 적당한 형태로 변환하기 위하여 사용되는 광범위한 회로들을 나타내도록 되어있다. 이 디스플레이 출력부(725)는 디스플레이 모니터(760)에 접속된다.
그래픽스 컨트롤러(720) 외에, 시스템 논리 장치(710)는 호스트 인터페이스부(host interface unit)(712), 시스템 메모리 인터페이스(714), 및 시스템 입/출력 인터페이스부(716)를 포함한다. 호스트 인터페이스부(712)는 저장부(721) 및 시스템 메모리 인터페이스(714)를 포함하는 시스템 논리 장치(710) 내의 여러 부(unit)와 프로세서(705)를 연결하는 역할을 한다. 시스템 메모리 인터페이스(714)는 시스템 논리 장치(710)와 시스템 메모리(75) 사이의 통신을 제공한다. 시스템 메모리(750)는 그래픽스 메모리 공간(graphics memory space)(752)을 포함할 수 있다. 시스템 입/출력 인터페이스부(716)는 시스템 논리 장치(710)를 시스템 입/출력 장치(770)에 연결한다. 시스템 입/출력 장치(770)는 하드 디스크 컨트롤러, 키보드 컨트롤러 등의 광범위한 입/출력 장치를 포함하도록 되어있다.
그 활동 중에, 프로세서(705)는 일련의 그래픽스 명령 및 원형들을 수신할 수 있다. 그래픽스 명령들 및 원형들은 3D 원형 및 2D 블릿 연산들을 포함할 수 있다. 도 4 내지 도 6과 관련하여 전술한 바와 같이, 프로세서(705)는 3D 원형들 및 2D 블릿 연산들을 복수의 빈으로 분류한다. 비닝 처리(binning process)의 일부로써, 프로세서(705)는 3D 원형들 및 2D 객체 데이터의 복사본을 그래픽스 메모리(752)의 빈 기억 영역에 기록한다.
그래픽스 컨트롤러(720)는 3D 원시 데이터 및 2D 객체 데이터를 그래픽스 메모리(752)로부터 한 빈씩에 기초하여 판독한다. 이 빈 데이터는 그래픽스 캐시 메모리(724)에 기억된다. 그래픽스 캐시 메모리(724)는 적어도 하나의 빈으로 처리할 수 있는 충분한 디스플레이 데이터를 기억하기에 충분할 정도로 큰 것이 바람직하다. 그래픽스 캐시 메모리(724)는 시스템 메모리 인터페이스(714)를 통하여 그래픽스 메모리(752)를 액세스한다. 각 빈에 대한 데이터는 저장부(721)로 전달된다. 저장부(721)는 도 4내지 도 6과 관련하여 전술한 바와 같이, 3D 원형들 및 2D 객체들을 그래픽스 컨트롤러(720)가 현재 가지고 있는 어느 빈 내에도 맞는 더 작은 원형들 및 객체들로 분할한다.
이어서 저장부는 그 분할된 3D 원형들 및 2D 블릿 연산들을 2D 블릿 엔진(772)나 3D 렌더링 엔진(723)에 전달한다. 2D 블릿 엔진과 3D 렌더링 엔진은 모두 그래픽스 캐시 메모리(724)에 연결된다. 이 구성은 2D 블릿 엔진(722)이 3D 렌더링 엔진(723)에 의해 그래픽스 캐시 메모리(724)에 기억된 중간 렌더링 결과를 액세스할 수 있게 한다. 다른 실시예에서는 그래픽스 캐시 메모리(724)와 2D 블릿 엔진 사이를 연결하지 않을 수 있다. 그러나, 2D 블릿 엔진(722)과 그래픽스 캐시 메모리(724) 사이가 연결되어 있지 않으면, 2D 블릿 엔진(722)이 디스플레이 데이터의 수정이 필요할 때마다 그래픽 캐시 메모리(724)로부터 그래픽스 메모리(752)로 데이터를 기록하여야 할 것이다. 그 후에, 3D 렌더링 엔진(723)은 3D 원형들을 계속 렌더링하기 위하여 그래픽스 메모리(752)로부터 그래픽 캐시 메모리(724)로 다시 읽어 들여야할 데이터를 발생시킬 필요가 있을 것이다.
이 실시예에서, 시스템 메모리(750)은 그래픽스 메모리 공간(752)을 포함한다. 다른 실시예에서는 개별 그래픽스 메모리를 사용할 수 있다. 추가적인 실시예들에서는 또한 그래픽스 컨트롤러가 비닝 연산을 수행할 수도 있다. 또 다른 실시예에서는 그래픽스 컨트롤러(720)가 시스템 논리 장치에 통합되지 않고 개별 장치로 수용되어 시스템 논리 장치를 통하여 프로세서에 연결될 수도 있다.
전술한 명세서에서 본 발명은 특정 실시예들을 참조하여 기술하였다. 그러나 첨부된 청구범위에 기술한 본 발명의 사상과 범위를 벗어나지 않는 다양한 변형과 변경이 가능함은 명백하다. 따라서 본 명세서 및 도면은 제한적이기보다는 예시적인 것으로 간주되어야 한다.

Claims (20)

  1. 적어도 하나의 3D 원형(three dimensional primitive)과 적어도 하나의 2D 블릿 연산(two dimensional blit operation)을 복수의 빈(bin)으로 분류(sort)하는 저장부(binning unit)를 포함하는 장치.
  2. 제1항에서,
    상기 저장부에 연결된 2D 파이프라인(pipeline)을 더 포함하며,
    상기 저장부는 2D 블릿 연산에 대응하는 복수의 타일형(tiled) 2D 블릿 연산을 상기 2D 파이프라인에 전달하고,
    상기 2D 파이프라인은 상기 복수의 타일형 2D 블릿 연산을 실행하는 장치.
  3. 제2항에서,
    상기 저장부에 연결된 3D 파이프라인을 더 포함하며,
    상기 저장부는 3D 원형에 대응하는 복수의 타일형 3D 원형 렌더링 연산을 상기 3D 파이프라인에 전달하고,
    상기 3D 파이프라인은 상기 복수의 타일형 3D 원형 렌더링 연산을 실행하는 장치.
  4. 제3항에서,
    중간 3D 렌더링 및 2D 블릿 결과를 기억하는 그래픽스 캐시 메모리를 추가로 포함하며,
    상기 그래픽스 캐시 메모리는 상기 2D 파이프라인 및 상기 3D 파이프라인에 연결되는 장치.
  5. 제4항에서,
    상기 그래픽스 캐시 메모리는 동일한 다이(die)를 마이크로프로세서 캐시 메모리와 공유하는 장치.
  6. 제4항에서,
    상기 저장부가 마이크로프로세서인 장치.
  7. 마이크로프로세서,
    시스템 메모리, 및
    상기 마이크로프로세서와 상기 시스템 메모리 사이에 연결된 시스템 논리부
    를 포함하며,
    상기 시스템 논리부는
    상기 시스템 메모리에의 액세스를 제공하는 메모리 컨트롤러(memory controller), 및
    적어도 하나의 3D 원형 및 적어도 하나의 2D 블릿 연산을 복수의 빈으로 분류하는 저장부를 포함하는 그래픽스 컨트롤러(graphics controller)
    를 포함하는 시스템.
  8. 제7항에서,
    상기 그래픽스 컨트롤러는 상기 저장부에 연결된 2D 파이프라인을 더 포함하며,
    상기 저장부는 2D 블릿 연산에 대응하는 복수의 타일형 2D 블릿 연산을 상기 2D 파이프라인에 전달하고,
    상기 2D 파이프라인은 상기 복수의 타일형 2D 블릿 연산을 실행하는 시스템.
  9. 제8항에서,
    상기 그래픽스 컨트롤러는 상기 저장부에 연결된 3D 파이프라인을 더 포함하며,
    상기 저장부는 3D 원형에 대응하는 복수의 타일형 3D 원형 렌더링 연산을 상기 3D 파이프라인에 전달하고,
    상기 3D 파이프라인은 상기 복수의 타일형 3D 원형 렌더링 연산을 실행하는 시스템.
  10. 제9항에서,
    중간 3D 렌더링 및 2D 블릿 결과를 기억하는 그래픽스 캐시 메모리를 더 포함하며,
    상기 그래픽스 캐시 메모리는 상기 2D 파이프라인 및 상기 3D 파이프라인에 연결되는 시스템.
  11. 제10항에서,
    상기 그래픽스 캐시 메모리는 동일한 다이를 마이크로프로세서 캐시 메모리와 공유하는 시스템.
  12. 3D 원형 및 적어도 하나의 2D 블릿 연산을 복수의 빈으로 분류하는 마이크로프로세서,
    상기 분류된 3D 원형 및 상기 분류된 2D 블릿 연산을 나타내는 데이터의 복사본을 기억하는 시스템 메모리, 및
    상기 마이크로프로세서와 상기 시스템 메모리 사이에 연결된 시스템 논리부
    를 포함하며,
    상기 시스템 논리부는
    상기 시스템 메모리에의 액세스를 제공하는 메모리 컨트롤러, 및
    2D 파이프라인을 포함하는 그래픽스 컨트롤러를 포함하며,
    상기 그래픽스 컨트롤러는 상기 2D 블릿 연산에 대응하는 복수의 타일형 블릿 연산을 상기 2D 파이프라인에 전달하고,
    상기 2D 파이프라인은 상기 복수의 타일형 블릿 연산을 실행하는
    시스템.
  13. 제12항에서,
    상기 그래픽스 컨트롤러는 3D 파이프라인을 더 포함하며,
    상기 마이크로프로세서는 3D 원형에 대응하는 복수의 타일형 3D 원형 렌더링 연산을 상기 3D 파이프라인에 전달하고,
    상기 3D 파이프라인은 상기 복수의 타일형 3D 원형 렌더링 연산을 실행하는 시스템.
  14. 제13항에서,
    중간 3D 렌더링 및 2D 블릿 결과를 기억하는 그래픽스 캐시 메모리를 더 포함하며,
    상기 그래픽스 캐시 메모리는 상기 2D 파이프라인 및 상기 3D 파이프라인에 연결되는 시스템.
  15. 제14항에서,
    상기 그래픽스 캐시 메모리는 동일한 다이를 마이크로프로세서 캐시 메모리와 공유하는 시스템.
  16. 제1 3D 원형을 복수의 빈 중 적어도 하나로 분류하는 단계,
    2D 블릿 연산을 복수의 빈 중 적어도 하나로 분류하는 단계,
    제2 3D 원형을 복수의 빈 중 적어도 하나로 분류하는 단계, 및
    상기 복수의 빈을 렌더링하는 단계
    를 포함하는 방법.
  17. 제1 3D 원형을 복수의 빈 중 적어도 하나로 분류하는 단계,
    2D 블릿 연산을 복수의 빈 중 적어도 하나로 분류하는 단계,
    제2 3D 원형을 복수의 빈 중 적어도 하나로 분류하는 단계, 및
    제1 빈 기억 영역에 기억된 데이터를 렌더링 하는 단계
    를 포함하며,
    상기 제1 3D 원형의 일부는 제1 타일을 가로지르고,
    상기 2D 블릿 연산의 일부는 상기 제1 타일을 가로지르며,
    상기 제2 3D 원형의 일부는 제1 타일을 가로지르고,
    상기 제1 빈은 상기 제1 타일에 대응하는
    방법.
  18. 제17항에서,
    상기 제1 기억 영역에 기억된 상기 데이터를 렌더링하는 단계는
    상기 제1 및 제2 3D 원형의 어느 부분과 상기 2D 블릿 연산의 어느 부분이 상기 제1 타일에 맞는지 판정하는 단계를 포함하는 방법.
  19. 제18항에서,
    상기 제1 기억 영역에 기억된 상기 데이터를 렌더링하는 단계는
    상기 제1 타일에 맞는 상기 제1 3D 원형의 부분을 랜더링하는 단계,
    상기 제1 타일에 맞는 상기 2D 블릿 연산의 부분을 실행하는 단계, 및
    상기 제1 타일에 맞는 상기 제2 3D 원형의 상기 부분을 랜더링하는 단계를 더 포함하는 방법.
  20. 명령어(instruction)들이 기억되며 기계로 판독 가능한 매체(machine-readable medium)로서,
    컴퓨터 시스템에 의해 실행되는 경우, 상기 명령어들이 상기 컴퓨터 시스템으로 하여금
    3D 원형을 복수의 빈 중 적어도 하나로 분류하는 단계,
    2D 블릿 연산을 복수의 빈 중 적어도 하나로 분류하는 단계,
    상기 복수의 빈을 렌더링하도록 그래픽스 컨트롤러에 명령하는 단계를 포함하는 방법을 수행하도록 하는
    기계로 판독 가능한 매체.
KR1020027013050A 2000-03-31 2001-03-06 타일형 그래픽스 아키텍쳐 KR100560088B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/540,615 2000-03-31
US09/540,615 US6819321B1 (en) 2000-03-31 2000-03-31 Method and apparatus for processing 2D operations in a tiled graphics architecture
PCT/US2001/007218 WO2001075803A1 (en) 2000-03-31 2001-03-06 Tiled graphics architecture

Publications (2)

Publication Number Publication Date
KR20030005251A true KR20030005251A (ko) 2003-01-17
KR100560088B1 KR100560088B1 (ko) 2006-03-10

Family

ID=24156223

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020027013050A KR100560088B1 (ko) 2000-03-31 2001-03-06 타일형 그래픽스 아키텍쳐

Country Status (11)

Country Link
US (1) US6819321B1 (ko)
EP (1) EP1269417B1 (ko)
JP (1) JP4719399B2 (ko)
KR (1) KR100560088B1 (ko)
CN (2) CN103106640B (ko)
AT (1) ATE450843T1 (ko)
AU (1) AU2001240082A1 (ko)
DE (1) DE60140661D1 (ko)
HK (1) HK1049724B (ko)
TW (1) TW561422B (ko)
WO (1) WO2001075803A1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100793990B1 (ko) * 2006-09-18 2008-01-16 삼성전자주식회사 타일 기반 3차원 렌더링에서의 조기 z 테스트 방법 및시스템
KR100927128B1 (ko) * 2009-04-30 2009-11-18 주식회사 넥서스칩스 타일 더티 테이블을 이용한 3d 그래픽 처리 장치 및 처리 방법
US8345064B2 (en) 2006-07-20 2013-01-01 Samsung Electronics Co., Ltd. Method and system for tile binning using half-plane edge function
US9805502B2 (en) 2012-02-27 2017-10-31 Samsung Electronics Co., Ltd. Rendering system and method

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6741243B2 (en) * 2000-05-01 2004-05-25 Broadcom Corporation Method and system for reducing overflows in a computer graphics system
US6738069B2 (en) * 2001-12-31 2004-05-18 Intel Corporation Efficient graphics state management for zone rendering
US7218317B2 (en) * 2003-08-25 2007-05-15 Via Technologies, Inc. Mechanism for reducing Z buffer traffic in three-dimensional graphics processing
US7266255B1 (en) * 2003-09-26 2007-09-04 Sun Microsystems, Inc. Distributed multi-sample convolution
US7023445B1 (en) * 2004-04-12 2006-04-04 Advanced Micro Devices, Inc. CPU and graphics unit with shared cache
JP4699036B2 (ja) * 2005-01-31 2011-06-08 三菱電機株式会社 グラフィクスハードウェア
GB0524804D0 (en) 2005-12-05 2006-01-11 Falanx Microsystems As Method of and apparatus for processing graphics
US8139058B2 (en) * 2006-11-03 2012-03-20 Vivante Corporation Hierarchical tile-based rasterization algorithm
US9965886B2 (en) 2006-12-04 2018-05-08 Arm Norway As Method of and apparatus for processing graphics
GB0710795D0 (en) * 2007-06-05 2007-07-18 Arm Norway As Method of and apparatus for processing graphics
GB2458488C (en) 2008-03-19 2018-09-12 Imagination Tech Ltd Untransformed display lists in a tile based rendering system
GB0900700D0 (en) 2009-01-15 2009-03-04 Advanced Risc Mach Ltd Methods of and apparatus for processing graphics
KR101683556B1 (ko) * 2010-01-06 2016-12-08 삼성전자주식회사 타일 기반의 렌더링 장치 및 렌더링 방법
GB201004673D0 (en) * 2010-03-19 2010-05-05 Imagination Tech Ltd Processing of 3D computer graphics data on multiple shading engines
WO2011161723A1 (ja) 2010-06-24 2011-12-29 富士通株式会社 描画装置および描画方法
US9342322B2 (en) 2011-09-12 2016-05-17 Microsoft Technology Licensing, Llc System and method for layering using tile-based renderers
JP5910310B2 (ja) * 2012-05-22 2016-04-27 富士通株式会社 描画処理装置及び描画処理方法
US9317948B2 (en) 2012-11-16 2016-04-19 Arm Limited Method of and apparatus for processing graphics
US10204391B2 (en) 2013-06-04 2019-02-12 Arm Limited Method of and apparatus for processing graphics
GB2526598B (en) * 2014-05-29 2018-11-28 Imagination Tech Ltd Allocation of primitives to primitive blocks
GB2537659B (en) * 2015-04-22 2019-05-01 Imagination Tech Ltd Tiling a primitive in a graphics processing system
GB2537661B (en) 2015-04-22 2018-09-26 Imagination Tech Ltd Tiling a primitive in a graphics processing system
US9892058B2 (en) 2015-12-16 2018-02-13 Advanced Micro Devices, Inc. Centrally managed unified shared virtual address space
GB2553744B (en) 2016-04-29 2018-09-05 Advanced Risc Mach Ltd Graphics processing systems
CN106345118B (zh) * 2016-08-24 2019-07-30 网易(杭州)网络有限公司 一种渲染方法及装置
US10970118B2 (en) 2017-08-02 2021-04-06 Advanced Micro Devices, Inc. Shareable FPGA compute engine
US11422812B2 (en) 2019-06-25 2022-08-23 Advanced Micro Devices, Inc. Method and apparatus for efficient programmable instructions in computer systems
US11556133B2 (en) 2019-07-26 2023-01-17 International Business Machines Corporation Inter-vehicle collaboration to modify a parking queue

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4953101A (en) * 1987-11-24 1990-08-28 Digital Equipment Corporation Software configurable memory architecture for data processing system having graphics capability
TW304254B (ko) * 1994-07-08 1997-05-01 Hitachi Ltd
US5835096A (en) * 1995-03-24 1998-11-10 3D Labs Rendering system using 3D texture-processing hardware for accelerated 2D rendering
US5886701A (en) * 1995-08-04 1999-03-23 Microsoft Corporation Graphics rendering device and method for operating same
JPH09265549A (ja) * 1996-03-28 1997-10-07 Hitachi Ltd 画像合成システム
US5945997A (en) * 1997-06-26 1999-08-31 S3 Incorporated Block- and band-oriented traversal in three-dimensional triangle rendering
US6094203A (en) * 1997-09-17 2000-07-25 Hewlett-Packard Company Architecture for a graphics processing unit using main memory
US6002409A (en) * 1997-10-29 1999-12-14 Cirrus Logic, Inc. Arbitration for shared graphics processing resources
US6031550A (en) * 1997-11-12 2000-02-29 Cirrus Logic, Inc. Pixel data X striping in a graphics processor
US6377266B1 (en) * 1997-11-26 2002-04-23 3Dlabs Inc., Ltd. Bit BLT with multiple graphics processors
US6078338A (en) * 1998-03-11 2000-06-20 Compaq Computer Corporation Accelerated graphics port programmable memory access arbiter
JPH11328441A (ja) * 1998-05-11 1999-11-30 Hitachi Ltd グラフィックス表示制御方法およびコンピュータグラフイックス
US6611272B1 (en) * 1998-07-02 2003-08-26 Microsoft Corporation Method and apparatus for rasterizing in a hierarchical tile order
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
US6288730B1 (en) * 1998-08-20 2001-09-11 Apple Computer, Inc. Method and apparatus for generating texture
US6608625B1 (en) * 1998-10-14 2003-08-19 Hitachi, Ltd. Three dimensional graphic processor
US6344852B1 (en) * 1999-03-17 2002-02-05 Nvidia Corporation Optimized system and method for binning of graphics data

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8345064B2 (en) 2006-07-20 2013-01-01 Samsung Electronics Co., Ltd. Method and system for tile binning using half-plane edge function
KR100793990B1 (ko) * 2006-09-18 2008-01-16 삼성전자주식회사 타일 기반 3차원 렌더링에서의 조기 z 테스트 방법 및시스템
US8154547B2 (en) 2006-09-18 2012-04-10 Samsung Electronics, Co., Ltd. Method and system for early Z test in title-based three-dimensional rendering
KR100927128B1 (ko) * 2009-04-30 2009-11-18 주식회사 넥서스칩스 타일 더티 테이블을 이용한 3d 그래픽 처리 장치 및 처리 방법
US9805502B2 (en) 2012-02-27 2017-10-31 Samsung Electronics Co., Ltd. Rendering system and method

Also Published As

Publication number Publication date
ATE450843T1 (de) 2009-12-15
JP4719399B2 (ja) 2011-07-06
TW561422B (en) 2003-11-11
CN103106640A (zh) 2013-05-15
CN103106640B (zh) 2016-11-02
KR100560088B1 (ko) 2006-03-10
HK1049724A1 (en) 2003-05-23
HK1049724B (zh) 2010-07-16
WO2001075803A1 (en) 2001-10-11
EP1269417A1 (en) 2003-01-02
US6819321B1 (en) 2004-11-16
AU2001240082A1 (en) 2001-10-15
JP2003529859A (ja) 2003-10-07
EP1269417B1 (en) 2009-12-02
CN1421022A (zh) 2003-05-28
DE60140661D1 (de) 2010-01-14

Similar Documents

Publication Publication Date Title
KR100560088B1 (ko) 타일형 그래픽스 아키텍쳐
US7030878B2 (en) Method and apparatus for generating a shadow effect using shadow volumes
US7075542B1 (en) Selectable multi-performance configuration
US7202872B2 (en) Apparatus for compressing data in a bit stream or bit pattern
US7920141B2 (en) Method and apparatus for rasterizer interpolation
US7023437B1 (en) System and method for accelerating graphics processing using a post-geometry data stream during multiple-pass rendering
US20060170703A1 (en) Color compression using an edge data bitmask in a multi-sample anti-aliasing scheme
US11657560B2 (en) VRS rate feedback
US7129941B2 (en) Sample replication mode with depth value calculation
US7277098B2 (en) Apparatus and method of an improved stencil shadow volume operation
US7812837B2 (en) Reduced Z-buffer generating method, hidden surface removal method and occlusion culling method
US20070268291A1 (en) Occlusion Culling Method and Rendering Processing Apparatus
JP2009517770A (ja) ディスプレースクリーン上に立体画像をレンダリングするコンピュータグラフィックスプロセッサならびにその方法
US6940515B1 (en) User programmable primitive engine
US6900810B1 (en) User programmable geometry engine
CN112116518A (zh) 合并单元、选择覆盖范围合并方案的方法和深度测试系统
US20030122820A1 (en) Object culling in zone rendering
US6404428B1 (en) Method and apparatus for selectively providing drawing commands to a graphics processor to improve processing efficiency of a video graphics system
JP4624995B2 (ja) 三次元コンピュータグラフィック画像のテクスチャリング
US20220414939A1 (en) Render target compression scheme compatible with variable rate shading
EP1093085B1 (en) Parallel pipelined volume rendering system
EP1107177B1 (en) Method and apparatus for processing portions of primitives that are being rendered
US7061487B2 (en) Method and apparatus for improving depth information communication bandwidth in a computer graphics system
Sußner et al. Hexagonal LOD for interactive terrain rendering
US20230298261A1 (en) Distributed visibility stream generation for coarse grain binning

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130228

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140303

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150227

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160303

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20170302

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee