KR20030005251A - 타일형 그래픽스 아키텍쳐 - Google Patents
타일형 그래픽스 아키텍쳐 Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
-
- 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
Abstract
타일형 그래픽스 아키텍쳐로 2D 연산들을 처리하는 방법을 기술한다. 그래픽스 컨트롤러는 3D 원형 및 2D 블릿 연산을 모두 처리한다. 3D 원형들은 이미 알려져 있는 기술을 사용하여 복수의 빈으로 분류된다. 2D 블릿 연산이 처리되어야 하는 경우, 이 2D 블릿 연산 또한 복수의 빈으로 분류된다. 분류된 3D 원형 및 분류된 2D 블릿 연산들은 그 후 빈 하나씩에 기초하여 블릿 및 렌더링 엔진에 전달된다. 2D 블릿 연산들을 3D 원형들과 함께 복수의 빈으로 분류함으로써 2D 블릿 연산이 처리를 요구할 때마다 복수의 빈을 플러싱(원형들을 렌더링 엔진에 전송)하지 않아도 된다. 2D 블릿 연산들을 복수의 빈으로 분류하는 것은 그래픽스 캐시 적중 실패(miss)의 빈도를 감소시키고 그래픽스 메모리 대역폭 이용을 향상시켜 전체 컴퓨터 시스템의 성능을 향상시킨다.
Description
컴퓨터 그래픽스 시스템은 보통 객체(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)
- 적어도 하나의 3D 원형(three dimensional primitive)과 적어도 하나의 2D 블릿 연산(two dimensional blit operation)을 복수의 빈(bin)으로 분류(sort)하는 저장부(binning unit)를 포함하는 장치.
- 제1항에서,상기 저장부에 연결된 2D 파이프라인(pipeline)을 더 포함하며,상기 저장부는 2D 블릿 연산에 대응하는 복수의 타일형(tiled) 2D 블릿 연산을 상기 2D 파이프라인에 전달하고,상기 2D 파이프라인은 상기 복수의 타일형 2D 블릿 연산을 실행하는 장치.
- 제2항에서,상기 저장부에 연결된 3D 파이프라인을 더 포함하며,상기 저장부는 3D 원형에 대응하는 복수의 타일형 3D 원형 렌더링 연산을 상기 3D 파이프라인에 전달하고,상기 3D 파이프라인은 상기 복수의 타일형 3D 원형 렌더링 연산을 실행하는 장치.
- 제3항에서,중간 3D 렌더링 및 2D 블릿 결과를 기억하는 그래픽스 캐시 메모리를 추가로 포함하며,상기 그래픽스 캐시 메모리는 상기 2D 파이프라인 및 상기 3D 파이프라인에 연결되는 장치.
- 제4항에서,상기 그래픽스 캐시 메모리는 동일한 다이(die)를 마이크로프로세서 캐시 메모리와 공유하는 장치.
- 제4항에서,상기 저장부가 마이크로프로세서인 장치.
- 마이크로프로세서,시스템 메모리, 및상기 마이크로프로세서와 상기 시스템 메모리 사이에 연결된 시스템 논리부를 포함하며,상기 시스템 논리부는상기 시스템 메모리에의 액세스를 제공하는 메모리 컨트롤러(memory controller), 및적어도 하나의 3D 원형 및 적어도 하나의 2D 블릿 연산을 복수의 빈으로 분류하는 저장부를 포함하는 그래픽스 컨트롤러(graphics controller)를 포함하는 시스템.
- 제7항에서,상기 그래픽스 컨트롤러는 상기 저장부에 연결된 2D 파이프라인을 더 포함하며,상기 저장부는 2D 블릿 연산에 대응하는 복수의 타일형 2D 블릿 연산을 상기 2D 파이프라인에 전달하고,상기 2D 파이프라인은 상기 복수의 타일형 2D 블릿 연산을 실행하는 시스템.
- 제8항에서,상기 그래픽스 컨트롤러는 상기 저장부에 연결된 3D 파이프라인을 더 포함하며,상기 저장부는 3D 원형에 대응하는 복수의 타일형 3D 원형 렌더링 연산을 상기 3D 파이프라인에 전달하고,상기 3D 파이프라인은 상기 복수의 타일형 3D 원형 렌더링 연산을 실행하는 시스템.
- 제9항에서,중간 3D 렌더링 및 2D 블릿 결과를 기억하는 그래픽스 캐시 메모리를 더 포함하며,상기 그래픽스 캐시 메모리는 상기 2D 파이프라인 및 상기 3D 파이프라인에 연결되는 시스템.
- 제10항에서,상기 그래픽스 캐시 메모리는 동일한 다이를 마이크로프로세서 캐시 메모리와 공유하는 시스템.
- 3D 원형 및 적어도 하나의 2D 블릿 연산을 복수의 빈으로 분류하는 마이크로프로세서,상기 분류된 3D 원형 및 상기 분류된 2D 블릿 연산을 나타내는 데이터의 복사본을 기억하는 시스템 메모리, 및상기 마이크로프로세서와 상기 시스템 메모리 사이에 연결된 시스템 논리부를 포함하며,상기 시스템 논리부는상기 시스템 메모리에의 액세스를 제공하는 메모리 컨트롤러, 및2D 파이프라인을 포함하는 그래픽스 컨트롤러를 포함하며,상기 그래픽스 컨트롤러는 상기 2D 블릿 연산에 대응하는 복수의 타일형 블릿 연산을 상기 2D 파이프라인에 전달하고,상기 2D 파이프라인은 상기 복수의 타일형 블릿 연산을 실행하는시스템.
- 제12항에서,상기 그래픽스 컨트롤러는 3D 파이프라인을 더 포함하며,상기 마이크로프로세서는 3D 원형에 대응하는 복수의 타일형 3D 원형 렌더링 연산을 상기 3D 파이프라인에 전달하고,상기 3D 파이프라인은 상기 복수의 타일형 3D 원형 렌더링 연산을 실행하는 시스템.
- 제13항에서,중간 3D 렌더링 및 2D 블릿 결과를 기억하는 그래픽스 캐시 메모리를 더 포함하며,상기 그래픽스 캐시 메모리는 상기 2D 파이프라인 및 상기 3D 파이프라인에 연결되는 시스템.
- 제14항에서,상기 그래픽스 캐시 메모리는 동일한 다이를 마이크로프로세서 캐시 메모리와 공유하는 시스템.
- 제1 3D 원형을 복수의 빈 중 적어도 하나로 분류하는 단계,2D 블릿 연산을 복수의 빈 중 적어도 하나로 분류하는 단계,제2 3D 원형을 복수의 빈 중 적어도 하나로 분류하는 단계, 및상기 복수의 빈을 렌더링하는 단계를 포함하는 방법.
- 제1 3D 원형을 복수의 빈 중 적어도 하나로 분류하는 단계,2D 블릿 연산을 복수의 빈 중 적어도 하나로 분류하는 단계,제2 3D 원형을 복수의 빈 중 적어도 하나로 분류하는 단계, 및제1 빈 기억 영역에 기억된 데이터를 렌더링 하는 단계를 포함하며,상기 제1 3D 원형의 일부는 제1 타일을 가로지르고,상기 2D 블릿 연산의 일부는 상기 제1 타일을 가로지르며,상기 제2 3D 원형의 일부는 제1 타일을 가로지르고,상기 제1 빈은 상기 제1 타일에 대응하는방법.
- 제17항에서,상기 제1 기억 영역에 기억된 상기 데이터를 렌더링하는 단계는상기 제1 및 제2 3D 원형의 어느 부분과 상기 2D 블릿 연산의 어느 부분이 상기 제1 타일에 맞는지 판정하는 단계를 포함하는 방법.
- 제18항에서,상기 제1 기억 영역에 기억된 상기 데이터를 렌더링하는 단계는상기 제1 타일에 맞는 상기 제1 3D 원형의 부분을 랜더링하는 단계,상기 제1 타일에 맞는 상기 2D 블릿 연산의 부분을 실행하는 단계, 및상기 제1 타일에 맞는 상기 제2 3D 원형의 상기 부분을 랜더링하는 단계를 더 포함하는 방법.
- 명령어(instruction)들이 기억되며 기계로 판독 가능한 매체(machine-readable medium)로서,컴퓨터 시스템에 의해 실행되는 경우, 상기 명령어들이 상기 컴퓨터 시스템으로 하여금3D 원형을 복수의 빈 중 적어도 하나로 분류하는 단계,2D 블릿 연산을 복수의 빈 중 적어도 하나로 분류하는 단계,상기 복수의 빈을 렌더링하도록 그래픽스 컨트롤러에 명령하는 단계를 포함하는 방법을 수행하도록 하는기계로 판독 가능한 매체.
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)
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)
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)
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 |
-
2000
- 2000-03-31 US US09/540,615 patent/US6819321B1/en not_active Expired - Lifetime
-
2001
- 2001-03-06 DE DE60140661T patent/DE60140661D1/de not_active Expired - Lifetime
- 2001-03-06 AU AU2001240082A patent/AU2001240082A1/en not_active Abandoned
- 2001-03-06 AT AT01914728T patent/ATE450843T1/de not_active IP Right Cessation
- 2001-03-06 WO PCT/US2001/007218 patent/WO2001075803A1/en not_active Application Discontinuation
- 2001-03-06 CN CN201210238545.7A patent/CN103106640B/zh not_active Expired - Fee Related
- 2001-03-06 KR KR1020027013050A patent/KR100560088B1/ko not_active IP Right Cessation
- 2001-03-06 EP EP01914728A patent/EP1269417B1/en not_active Expired - Lifetime
- 2001-03-06 CN CN01807461A patent/CN1421022A/zh active Pending
- 2001-03-06 JP JP2001573405A patent/JP4719399B2/ja not_active Expired - Fee Related
- 2001-03-30 TW TW090107593A patent/TW561422B/zh not_active IP Right Cessation
-
2003
- 2003-03-10 HK HK03101713.1A patent/HK1049724B/zh not_active IP Right Cessation
Cited By (5)
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 |