KR20090079241A - 공유된 산술 논리 유닛을 구비한 그래픽 처리 유닛 - Google Patents

공유된 산술 논리 유닛을 구비한 그래픽 처리 유닛 Download PDF

Info

Publication number
KR20090079241A
KR20090079241A KR1020097010016A KR20097010016A KR20090079241A KR 20090079241 A KR20090079241 A KR 20090079241A KR 1020097010016 A KR1020097010016 A KR 1020097010016A KR 20097010016 A KR20097010016 A KR 20097010016A KR 20090079241 A KR20090079241 A KR 20090079241A
Authority
KR
South Korea
Prior art keywords
stage
attribute
gpu
setup stage
image data
Prior art date
Application number
KR1020097010016A
Other languages
English (en)
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 KR20090079241A publication Critical patent/KR20090079241A/ko

Links

Images

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
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)

Abstract

일반적으로, 본 개시는 하나 이상의 공유된 산술 연산 유닛을 사용하는 그래픽 처리 유닛 (GPU) 파이프라인을 설명한다. ALU 의 공유를 용이하게 하기 위해, 개시된 GPU 파이프라인의 스테이지는 종래의 GPU 파이프라인에 대해 재배열될 수 있다. 또한, GPU 파이프라인의 스테이지를 재조정함으로써, 이미지 프로세싱에 있어서 효율성이 달성될 수 있다. 예를 들어, 종래의 GPU 와는 달리 속성 그래디언트 셋업 스테이지는 파이프라인 상에 훨씬 늦게 위치하며, 속성 간섭기 스테이지는 곧바로 속성 그래디언트 셋업 스테이지 뒤에 올 수 있다. 이는 속성 그래디언트 셋업 및 속성 보간기 스테이지에 의해 ALU의 공유를 가능하게 한다. GPU 파이프라인에 대한, 성능을 개선하고 프로세싱 효율을 달성할 수 있는 수 개의 다른 기술 및 특징들이 또한 설명된다.
그래픽 처리 장치, GPU 파이프라인, 공유된 ALU

Description

공유된 산술 논리 유닛을 구비한 그래픽 처리 유닛 {GRAPHICS PROCESSING UNIT WITH SHARED ARITHMETIC LOGIC UNIT}
기술분야
본 개시는 그래픽 처리 유닛에 관한 것으로서, 더 상세하게는, 이미지 프로세싱을 위한 멀티-스테이지 파이프라인 구성을 갖는 그래픽 처리 유닛에 관한 것이다.
배경기술
그래픽 처리 유닛 (GPU) 은 컴퓨터 그래픽을 조작하고 디스플레이 상에 디스플레이하는데 사용되는 전용 그래픽 렌더링 디바이스이다. GPU는 복잡한 그래픽-관련 알고리즘 (complex graphics-related algorithms) 의 범위의 경우 통상의 범용 중앙 처리 유닛 (CPU)보다 더 효과적인 프로세싱을 제공하는 높은 병렬 구조로 구축된다. 예를 들어, 복잡한 알고리즘은 3차원 컴퓨터그래픽의 표현에 대응할 수 있다. GPU는 CPU를 사용하여 이미지를 바로 디스플레이에 그리는 것보다 더 빠르게, 복잡한 3차원 이미지를 디스플레이에 생성하기 위해, 점, 선, 및 트라이앵글을 형성하는 것과 같은 다수의 소위 "프리미티브 (primitive)" 그래픽 동작을 구현할 수 있다.
정점 셰이딩 (vertex shading) 및 픽셀 셰이딩 (pixel shading) 은 빛 흡수 및 확산, 텍스쳐 맵핑 (texture mapping), 빛 반사 및 굴절, 새도윙 (shadowing), 표면 배치 (displacement) 및 포스트-프로세싱 효과와 같은 컴퓨터 이미지의 최종 표면 성질을 결정하기 위해 비디오 게임 산업에서 자주 이용된다. GPU는 통상 하나 이상의 셰이더 (shader) 스테이지, 셋업 (setup) 스테이지, 래스터라이저 (rasterizer) 스테이지 및 보간 스테이지 같은 다수의 파이프라인 스테이지를 포함한다.
예를 들어, 정점 셰이더는 통상 이미지에 대한 지오메트리 (geometry) 와 같은 이미지 데이터에 적용되고, 정점 셰이더는 이미지 데이터 내의 정점 좌표와 정점의 속성을 생성한다. 정점 속성은 정점과 관련된 색깔, 법선 (normal), 텍스쳐 좌표를 포함한다. 하나 이상의 프리미티브 셋업 및 제거 모듈은 점, 선 또는 트라이앵글 같은 프리미티브 형상을 형성할 수 있고, 이미지 데이터 내의 정점에 기초하여 숨겨진 또는 비가시적인 프리미티브 형상을 제거한다. 속성 셋업 모듈은 이미지 데이터에 대한 프리미티브 형상 내의 속성의 그래디언트를 계산한다. 속성 그래디언트 값이 계산되면, 이미지 데이터에 대한 프리미티브 형상은 픽셀로 변환되고, 숨겨진 프리미티브 형상에 관해 픽셀 제거가 수행될 수 있다.
속성 보간기는 다음으로 속성 그래디언트 값에 기초하여 이미지 데이터에 대한 프리미티브 형상 내의 픽셀에 걸쳐 속성을 보간하고 보간된 속성 값을 픽셀 렌더링을 위해 프래그먼트 셰이더에 보낸다. 프래그먼트 셰이더의 결과는 포스트-프로세싱 블럭 (block) 및 디스플레이에 프로세싱된 이미지의 표현을 위한 프레임 버퍼로 출력된다. 이 프로세스는 GPU 파이프라인의 연속하는 스테이지를 따라 수행된다.
개요
일반적으로, 본 개시는 하나 이상의 공유된 산술 논리 유닛을 사용하는 그래픽 처리 유닛 (GPU) 파이프라인을 설명한다. ALU 의 공유를 용이하게 하기 위해, 개시된 GPU 파이프라인의 스테이지는 종래의 GPU 파이프라인에 대해 재배열될 수 있다. 또한, GPU 파이프라인의 스테이지를 재조정함으로써, 이미지 프로세싱에 있어서 효율성이 달성될 수 있다. 성능을 개선시킬 수 있고 부가적인 프로세싱 효율을 달성할 수 있는 GPU 파이프라인에 대한 수개의 다른 기술 및 특징 또한 설명된다. 예를 들어, GPU 파이프라인의 연속하는 스테이지를 통해 이동되는 데 필요한 데이터의 양을 상당하게 줄일 수 있는 GPU 파이프라인을 위한 확장된 정점 캐쉬가 또한 설명된다.
일 실시형태에서, 본 개시는 GPU 파이프라인 내에서 이미지에 대한 이미지 데이터를 수신하는 단계, 속성 그래디언트 셋업 스테이지 및 속성 보간기 스테이지를 위한 공유된 산술 논리 유닛을 사용하여 GPU 파이프라인 내에서 이미지 데이터를 프로세싱하는 단계를 포함하는 방법을 제공한다.
또 다른 실시형태에서, 본 개시는 이미지에 대한 이미지 데이터를 수신하고 다수의 스테이지 내에서 이미지 데이터를 프로세싱하는 GPU 파이프라인으로서, 다수의 스테이지는 속성 그래디언트 셋업 스테이지 및 속성 보간기 스테이지를 포함하는, 상기 GPU 파이프라인 및, 속성 그래디언트 셋업 스테이지 및 속성 보간기 스테이지 모두와 관련된 속성 그래디언트 셋업 및 속성 보간을 수행하는 공유된 산술 논리 유닛을 포함하는 디바이스를 제공한다.
또 다른 실시형태에서, 본 개시는 이미지에 대한 이미지 데이터를 수신하는 수단, 공유된 산술 논리 유닛을 이용하여 속성 그래디언트 셋업 스테이지에서 이미지 데이터를 프로세싱하는 수단 및 공유된 산술 논리 유닛을 이용하여 속성 보간기 스테이지에서 이미지 데이터를 프로세싱하는 수단을 포함하는 디바이스를 제공한다.
여기에 기재된 기술은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수 있다. 소프트웨어에서 구현되는 경우, 기술은 명령을 포함하는 컴퓨터 판독 가능 매체에 의해 전체적으로 또는 부분적으로 실행될 수 있으며, 프로세서와 같은 머신에 의해 실행되는 경우, 여기 기재된 하나 이상의 방법을 수행한다.
따라서, 본 개시는 실행시 머신으로 하여금 GPU 파이프라인 내에서 이미지에 대한 이미지 데이터를 수신하고, 속성 그래디언트 셋업 스테이지와 속성 보간기 스테이지를 위한 공유된 산술 논리 유닛을 이용하여 GPU 파이프라인 내에서 이미지 데이터를 프로세싱하게 하는 명령을 포함하는 컴퓨터-판독 가능 매체 또한 고려한다.
하나 이상의 실시형태들의 세부 사항은 첨부된 도면 및 이하의 설명에서 상술 된다. 본 발명의 다른 특징, 목적 및 이점들은 상세한 설명 및 도면 및 청구범위로 부터 명백해 질 것이다.
도면의 간단한 설명
도 1 은 하나 이상의 공유된 산술 논리 유닛 (ALU) 및 확장된 정점 캐쉬를 사용하는 그래픽 처리 장치 (GPU)를 포함하는 대표적인 디바이스를 도시하는 블록도이다.
도 2 는 종래의 GPU 파이프라인을 도시하는 블록도이다.
도 3 은 본 발명의 실시형태에 따른 예시적인 GPU 를 도시하는 블록도이다.
도 4 는 본 발명의 또 다른 실시형태에 따른 예시적인 GPU 를 도시하는 블록도이다.
도 5 및 6 은 본 발명의 실시형태에 따라 GPU 파이프라인에서 수행될 수 있는 기술을 도시하는 흐름도이다.
발명의 상세한 설명
도 1 은 컴퓨터 이미지를 프로세싱하는 그래픽 처리 유닛 (GPU) 파이프라인 (18) 을 포함하는 GPU (14) 를 포함하는 디바이스 (10) 를 도시한다. 본 개시에 따르면, GPU 파이프라인 (18) 은 GPU (14) 의 복잡성을 줄이고 이미지 프로세싱에 있어 효율성을 생성하기 위해 하나 이상의 공유된 산술 논리 유닛 (ALU) (15) 을 사용한다. 또한, GPU 파이프라인은 GPU 파이프라인 (18) 을 통해 전송되는 데이터의 양을 줄이기 위해 확장된 정점 캐쉬 (16) 를 구현할 수 있다. 이하에서 보다 자세하게 논의되듯이, 이미지 프로세싱의 프로세스를 개선시키고 공유된 ALU (15) 의 사용을 용이하게 할 수 있는 GPU 파이프라인 (18) 의 각 스테이지는 종래의 GPU 파이프라인에 대하여 재배열될 수 있다. 그러나, 어떤 스테이지는 종래의 GPU 파이프라인의 스테이지에서 사용되는 것과 같이 전용 (공유되지 않는) ALU를 사용할 수도 있다.
도 1 의 예에서, 디바이스 (10) 는 제어기 (12), GPU (14) 및 디스플레이 (20) 를 포함한다. 디바이스 (10) 는 또한 (도시되지 않은) 많은 다른 구성요소들을 포함할 수 있다. 예를 들어, 디바이스 (10) 는 무선 통신 디바이스를 포함할 수 있고 디스플레이 (20) 는 무선 통신 디바이스 내의 디스플레이를 포함할 수 있다. 또 다른 예로, 디바이스 (10) 는 데스크탑 또는 노트북을 포함할 수 있으며, 디스플레이 (20) 는 컴퓨터의 전용 모니터 또는 디스플레이를 포함할 수 있다. 디바이스 (10) 는 유선 통신 디바이스 또는 주로 통신 전용이 아닌 디바이스를 포함할 수 있다. 다른 예들로, 디바이스 (10) 는 디스플레이 (20) 를 포함하는 개인 휴대 정보 단말기 (PDA), 휴대용 비디오 게임 디바이스, 게임 콘솔 또는 텔레비젼 디바이스를 포함할 수 있다. 다양한 실시 형태에서, 컴퓨터 비디오 영상은 비디오 또는 비디오 객체를 생성하는 비디오 서버 또는 저장된 비디오 또는 비디오 객체를 검색하는 비디오 아카이브 (archive) 와 같은 원격 디바이스 또는 로컬 디바이스로부터 획득될 수 있다.
제어기 (12) 는 GPU (14) 의 동작을 제어한다. 제어기 (12) 는 GPU (14) 를 위한 특정 제어기 또는 디바이스 (10) 의 전체 동작을 제어하는 좀 더 일반적인 제어기 일 수 있다. 여기 기재된 기술에 따라, GPU (14) 는 공유된 ALU (15) 를 구현하고 액세스하는 GPU 파이프라인 (18) 을 포함한다. 또한, GPU (14) 는 GPU 파이프라인 (18) 에 연결된 확장된 정점 캐쉬 (16) 를 포함할 수 있다. 또한, 공유된 ALU 는 이미지 프로세싱에 있어 효율성을 생성할 수 있고, 확장된 정점 캐쉬 (16) 의 결합은 GPU (14) 내에서 GPU 파이프라인 (18) 을 통과하는 데이터의 양을 줄일 수 있다. GPU 파이프라인 (18) 은 공유된 ALU (15) 및 확장된 정점 캐쉬 (16) 의 이용을 용이하게 하기 위해 비-종래의 방식으로 배열될 수 있다.
GPU (14) 는 디바이스 (10) 의 제어기 (12) 로부터 이미지에 대한 지오메트리 데이터 및 렌더링 커맨드와 같은 이미지 데이터를 수신한다. 이미지 데이터는 복합, 2D 또는 3D 컴퓨터 그래픽의 표현에 대응한다. GPU (14) 는 이미지 효과, 배경 이미지 또는 비디오 게임 이미지를 예를 들어 디스플레이 (20) 를 통해 디바이스 (10) 의 사용자에게 나타나게 하도록 이미지 데이터를 프로세싱한다. 이 이미지는 비디오 프레임의 시퀀스 내에 비디오 프레임으로서 형성된다. 디스플레이 (20) 는 액정 표시 장치 (LCD), 음극선관 (CRT) 디스플레이, 플라즈마 디스플레이, 또는 디바이스 (10) 에 통합되거나 연결된 디스플레이의 또 다른 타입을 포함할 수 있다.
어떠한 경우에, 제어기 (12) 는 디바이스 (10) 내에서 작동하는 어플리케이션 (applications) 으로 부터 이미지 데이터를 수신할 수 있다. 예를 들어, 디바이스 (10) 는 내부 하드 드라이브 또는 이동식 데이터 저장 디바이스로부터 수신한 이미지 데이터에 기초하여 비디오 게임 어플리케이션을 작동하는 컴퓨팅 디바이스를 포함할 수 있다. 다른 경우에, 제어기 (12) 는 디바이스 (10) 외부에서 동작하는 어플리케이션으로부터 이미지 데이터를 수신할 수 있다. 예를 들어, 디바이스 (10) 는 인터넷과 같은 무선 또는 유선 네트워크를 통해 외부 서버로부터 수신한 이미지 데이터에 기초하여 비디오 게임 어플리케이션을 동작시키는 컴퓨팅 디바이스를 포함할 수 있다. 이미지 데이터는 유선, 무선 또는 이들의 조합일 수 있는 스트리밍 미디어 또는 방송 미디어를 통해 수신될 수 있다.
디바이스 (10) 의 사용자가 이미지 효과를 트리거 (trigger) 하거나 배경 화면을 선택하거나 비디오 게임을 시작할 때, 제어기 (12) 는 어플리케이션으로부터 상응하는 이미지 데이터를 수신하고 이미지 프로세싱를 위해 GPU (14) 로 보낸다. GPU (14) 는 디스플레이 (20) 상의 표현을 위해 대응하는 이미지를 준비하도록 이미지 데이터를 프로세싱한다. 예를 들어, GPU (14) 는 수신된 이미지 데이터에 의해 디스플레이 (20) 상에 표현되는 3차원 이미지를 생성하기 위해, 점, 선 및 트라이 앵글을 형성하는 것과 같은 많은 프리미티브 그래픽 동작을 구현한다.
여기에 기재된 기술에 따라, GPU 파이프라인 (18) 은 이미지에 대한 이미지 데이터를 수신하고 이미지 데이터 내의 정점에 대한 속성을 확장된 정점 캐쉬 (16) 에 저장한다. GPU 파이프라인 (18) 은 단지 정점을 식별하는 정점 좌표 및 확장된 정점 캐쉬 (16) 내의 정점 각각에 대한 속성의 저장 위치를 나타내는 정점 캐쉬 인덱스 값만을 GPU 파이프라인 (18) 을 따라 다른 프로세싱 스테이지로 보낸다. 어떤 실시형태에서, GPU 파이프라인 (18) 은 일시적으로 정점 좌표를 확장된 정점 캐쉬 (16) 에 저장한다. 이러한 방식으로, GPU 파이프라인 (18) 은 스테이지 간의 정점 속성의 전송에 의해 차단되지 않고 증가된 처리량을 지원할 수 있으며, 스테이지 사이의 저장 버퍼는 또한 제거될 수 있거나 사이즈 면에서 감소될 수도 있다. 정점 좌표는 예를 들어 이미지 데이터 내의 정점의 위치를 식별하는 X, Y 및 Z (너비, 높이 및 깊이) 좌표, 및 이미지 데이터에 대한 투시 파라미터 를 포함하는 W 를 구비한 4차원 좌표 시스템에 기초하여 이미지 데이터 내의 정점을 식별한다. 예를 들어, 정점 속성은 정점과 관련된 색깔, 법선, 텍스쳐 좌표를 포함한다.
또한, 본 개시에 따라, GPU 파이프라인 (18) 내에서 이미지 데이터를 프로세싱하는 동안, 하나 이상의 공유된 ALU (15) 가 상이한 스테이지를 위해 사용된다. 한 예로, 공유된 ALU 는 트라이앵글 셋업 스테이지 및 Z-그래디언트 셋업 스테이지 모두를 위해 사용될 수 있다. 상호 동작을 위한 공유된 룩업 (lookup) 테이블이 또한 이 트라이앵글 셋업 스테이지 및 Z-그래디언트 셋업 스테이지에서 사용될 수 있다. 또 다른 예로, 공유된 ALU 는 속성 그래디언트 셋업 스테이지 및 속성 보간기 스테이지 모두를 위해 사용될 수 있다. 종래의 GPU 와는 달리, 속성 그래디언트 셋업 스테이지는 파이프라인에서 훨씬 뒤에 위치하며, 속성 보간기 스테이지가 곧바로 속성 그래디언트 셋업 스테이지 뒤에 올 수 있다. 이는 ALU의 공유를 가능하게 하며, 속성 그래디언트 셋업이 제거되는 숨겨진 프리미티브에 대해 피해질 수 있다는 점에서 부가된 장점을 가질 수 있다. 대조적으로, 종래의 GPU 파이프라인은 통상 숨겨진 프리미티브 제거에 앞서 속성 그래디언트 셋업을 수행하며, 이것은 본 개시의 기술에 의해 피할 수 있는 비효율성을 발생시킨다.
GPU (14) 내의 GPU 파이프라인 (18) 은 정점 셰이더 스테이지, 트라이앵글 셋업 및 Z-그래디언트 셋업과 같은 수 개의 프리미티브 셋업 스테이지, 래스터라이저 스테이지, 프리미티브 제거 스테이지, 속성 그래디언트 셋업 스테이지, 속성 보 간 스테이지, 및 프래그먼트 셰이더 스테이지를 포함한 수 개의 스테이지를 포함한다. 더 많거나 더 적은 스테이지들이 다른 실시형태에서 포함될 수 있다. GPU 파이프라인의 상이한 스테이지의 다양한 것들은 본 발명에서 파이프라인의 "모듈" 로 지칭될 수 있다.
어느 경우에나, 다양한 프리미티브 셋업 스테이지 및 프리미티브 제거 스테이지는 프리미티브를 형성하기 위해 단지 정점 좌표만을 사용하고, 이미지를 위해 필요하지 않은 프리미티브의 서브셋을 폐기할 수 있다. 프리미티브는 점, 선, 트라이앵글 및 다른 다각형을 포함한 지오메트리 도형의 가장 간단한 타입이며, 이미지 데이터 내의 하나 이상의 정점과 함께 형성될 수 있다. 프리미티브 또는 프리미티브의 일부는 프리미티브 또는 프리미티브의 일부가 이미지 프레임 상에서 안 보이거나 (예를 들어, 객체의 후방에 위치하거나), 이미지 프레임상에 숨어 있는 (예를 들어, 또 다른 객체 뒤에 위치하거나 투명한) 경우 이미지의 특정 프레임의 프로세싱 동안 고려 사항에서 제외될 수 있다. 이것은 숨겨진 프리미티브 및 픽셀 제거 스테이지의 목적이다.
속성 그래디언트 셋업 및 속성 보간 스테이지는 속성 그래디언트 값을 계산하기 위해 정점 속성을 사용할 수 있고 속성 그래디언트 값에 기초하여 속성을 보간한다. 여기 기재된 기술은 속성 그래디언트의 계산 집약적인 셋업을 GPU 파이프라인 (18) 내의 속성 보간의 직전으로 연기한다. 이것은 공유된 ALU 로 하여금 속성 그래디언트 셋업 및 속성 보간기 스테이지 모두에 의해 사용될 수 있게 한다. 정점 속성은 GPU 파이프라인 (18) 의 속성 보간 스테이지 전 마지막 스 텝의 하나인 속성 그래디언트 셋업을 위해 확장된 정점 캐쉬 (16) 로부터 검색될 수 있다. 이러한 방식으로, 정점 속성은 프리미티브 셋업 및 프리미티브 제거 전에는 GPU 파이프라인 (18) 에 도입되지 않으며, 이는 제거된 프리미티브에 대한 속성 그래디언트 셋업이 피해질 수 있는 한 효율성을 생성한다.
또한, 이미지 데이터 내의 정점에 대한 속성을 확장된 정점 캐쉬 (16) 에 저장함으로써, GPU 파이프라인 (18) 은 더 효과적이 된다. 상세하게는, 확장된 정점 캐쉬 (16) 는 GPU 파이프라인 (18) 을 통해 많은 양의 속성 데이터를 전달할 필요성을 제거할 수 있고, 다수의 속성을 포함한 프리미티브를 위해 GPU 파이프라인 (18) 내의 병목 현상을 실질적으로 제거할 수 있다. 또한, 속성 그래디언트 셋업을 GPU 파이프라인 (18) 내의 속성 보간 스테이지 직전으로 연기하는 것은 GPU 파이프라인 (18) 내의 이미지 프로세싱 속도를 개선할 수 있다. 더 구체적으로, GPU 파이프라인 (18) 내의 속성 그래디언트 셋업을 이미지를 위해 필요하지 않은 프리미티브의 서브셋의 제거 이후로 연기하는 것은, 속성 그래디언트 셋업이 오직 이미지를 위해 필요한 프리미티브의 서브셋에 기초하여 수행됨에 따라 계산 및 전력 소비를 실질적으로 줄일 수 있다.
디스플레이 (20) 는 무선 혹은 유선 접속으로 디바이스 (10) 에 연결될 수 있다. 예를 들어, 디바이스 (10) 는 서버 또는 무선통신 서비스 제공자의 컴퓨팅 디바이스를 포함할 수 있으며, 디스플레이 (20) 는 무선 통신 디바이스 내에 포함될 수 있다. 이 경우, 예를 들어, 디스플레이 (20) 는 모바일 무선전화, 위성 무선전화, 무선통신 카드를 구비한 휴대용 컴퓨터, 무선 통신 능력을 갖춘 개인 휴대용 정보 단말기 (PDA), 또는 무선 통신이 가능한 임의의 다양한 디바이스 내의 디스플레이를 포함할 수 있다. 다른 예로써, 디바이스 (10) 는 서버 또는 유선 네트워크를 통해 디스플레이 (20) 에 연결된 다른 컴퓨팅 디바이스를 포함할 수 있으며, 디스플레이 (20) 는 유선 통신 디바이스 또는 통신이 주목적이 아닌 디바이스 내에 포함될 수 있다. 다른 실시형태로, 디스플레이 (20) 는 디바이스 (10) 내에 통합될 수 있다.
도 2 는 종래의 GPU 파이프라인 (22) 을 도시하고 있는 블록도이다. 도 2 의 GPU 파이프라인 (22) 은 이하의 순서로 명령 엔진 (24), 정점 셰이더 (26), 트라이앵글 셋업 모듈 (28), Z-그래디언트 셋업 모듈 (29), 속성 그래디언트 셋업 모듈 (30), 래스터라이저 (31), 숨겨진 프리미티브 및 픽셀 제거 모듈 (32), 속성 보간기 (34), 프래그먼트 셰이더 (36) 및 포스트 프로세서 (38) 를 포함한다. 정점 셰이더 (26), 트라이앵글 셋업 모듈 (28), Z-그래디언트 셋업 모듈 (29), 속성 그래디언트 셋업 모듈 (30), 래스터라이저 (31), 숨겨진 프리미티브 및 픽셀 제거 모듈 (32), 속성 보간기 (34) 및 프래그먼트 셰이더 (36) 의 각각은 요소 (25A-25H) 로 각각 라벨링된 전용 산술 논리 유닛 (ALU) 을 포함한다.
명령 엔진 (24) 은 종래의 GPU 파이프라인 (22) 이 내재하는 디바이스의 제어기로 부터 이미지에 대한 이미지 데이터를 수신한다. 이미지 데이터는 복합, 2-D 또는 3-D컴퓨터 그래픽의 표현에 대응할 수 있다. 명령 엔진 (24) 은 이미지 데이터를 GPU 파이프라인 (22) 을 통해 다른 프로세싱 스테이지에 전달한다. 상세하게는, 이미지 데이터의 모든 속성 및 좌표는 GPU 파이프라인 (22) 을 따라 스테이지 사이에 전달된다. 각각의 스테이지는 각각의 ALU 를 사용하며, 병목 현상이 일어나는 경우, 이미지 프로세싱는 각각의 스테이지에서 멈추게 된다.
도 3 은 도 1 의 GPU (14) 의 일 예시적인 실시형태인, GPU 파이프라인 (18A) 을 포함한 GPU (14A)를 도시하고 있는 블록도이다. ALU (45A, 55A, 45B, 45C, 55B 및 45D)의 세트, 및 확장된 정점 캐쉬 (16A) 는 GPU 파이프라인 (18A) 에 연결된다. GPU (14A) 내의 확장된 정점 캐쉬 (16A) 는 GPU (14A) 내의 GPU 파이프라인 (18A) 을 통해 전달되는 데이터의 양을 줄일 수 있다. 또한, ALU (55A 및 55B) 는 공유된 ALU이며, 공유된 ALU 각각은 GPU 파이프라인 (18A) 내에서 두개의 연속되는 상이한 스테이지들에 의해 사용된다. 특히, GPU 파이프라인 (18A) 의 스테이지들은 도 2의 종래의 GPU 파이프라인 (22) 에 대해 재배열되며, 이러한 재배열은 속성 그래디언트 셋업 모듈 (52) 과 속성 보간기 (54) 에 의한 ALU (55B)의 공유를 가능하게 한다. 또한, 속성 그래디언트 셋업 모듈 (52) 이 숨겨진 프리미티브 및 픽셀 제거 모듈 (50) 이후에 실행되기 때문에, 효율성이 얻어진다. 즉, 속성 그래디언트 셋업은 임의의 숨겨지거나 제거된 프리미티브를 위해 피해질 수 있다.
도 3의 도시된 실시형태에서, GPU 파이프라인 (18A) 은 명령엔진 (42), 정점 셰이더 (44), 트라이앵글 셋업 모듈 (46) 및 Z-그래디언트 셋업 모듈 (47), 래스터라이저 (48), 숨겨진 프리미티브 및 픽셀 제거 모듈 (50), 속성 그래디언트 셋업 모듈 (52), 속성 보간기 (54), 프래그먼트 셰이더 (56) 및 포스트 프로세서 (58) 를 포함한다. 또한, 이 스테이지들의 순서는 속성 그래디언트 셋업 모듈 (52) 이 숨겨진 프리미티브 및 픽셀 제거 모듈 (50) 의 다음에 오는 한 비 종래의 것이다. 속성 보간기 (54) 는 속성 그래디언트 셋업 모듈 (52) 의 바로 다음에 온다. 트라이앵글 셋업 모듈 (46) 및 Z-그래디언트 셋업 모듈 (47) 은 총괄하여 프리미티브 셋업 모듈로 지칭 되며, 어떠한 경우 프리미티브 셋업의 다른 유형이 사용될 수 있다.
명령 엔진 (42) 은 렌더링 명령을 포함할 수 있는, 디바이스 (10)의 제어기 (12) 로 부터 받은 이미지에 대한 이미지 데이터를 수신한다. 이미지 데이터는 복합, 2차원 또는 3차원 컴퓨터 그래픽의 표현에 대응할 수 있다. 명령 엔진 (42) 은 이러한 데이터의 서브셋, 즉 확장된 정점 캐쉬 (16A) 에 포함되어 있지 않은 이미지 데이터 내의 정점("미싱된 정점 (missed vertices)")에 대한 정보를 정점 셰이더 (44) 로 전달한다. 명령 엔진 (42) 은 미싱된 정점에 대한 정점 캐쉬 인덱스 정보를 프리미티브 셋업 및 제거 모듈 (46) 로 보낸다. 명령 엔진 (42) 은 이미 확장된 정점 캐쉬 (16A)에 포함된 이미지 데이터 내의 정점("히트 정점 (hit vertices)")에 대한 정점 캐쉬 인덱스 정보를 직접 프리미티브 셋업 및 제거 모듈 (46) 로 보낸다. 히트 정점에 대한 정점 데이터는 통상 정점 셰이더 (44) 로 전달되지 않는다. 이미지 데이터 내의 히트 정점 및 미싱된 정점의 초기 프로세싱은 이하 자세하게 기술된다.
본 개시의 기술은 도시된 스테이지 보다 적을 수도 많을 수도 있는 파이프라인으로 동작할 수 있지만, GPU 파이프라인 (18A) 은 수개의 스테이지를 포함한다. 정점 셰이더 (44) 는 이미지 데이터 내의 미싱된 정점에 적용되며 이미지 데이 터내의 미싱된 정점에서의 이미지의 표면 특성을 결정한다. 이러한 방식으로, 정점 셰이더 (44) 는 이미지 데이터 내의 미싱된 정점의 각각의 정점 좌표 및 속성을 생성한다. 정점 셰이더 (44) 는 미싱된 정점에 대한 속성을 확장된 정점 캐쉬 (16A) 에 저장한다. 이러한 방식으로, 속성은 GPU 파이프라인 (18A) 을 따라 전달될 필요가 없고, GPU 파이프라인 (18A) 의 각각의 스테이지에 의해 확장된 정점 캐쉬 (16A) 로부터 필요에 따라 액세스될 수 있다. 정점 셰이더 (44) 는 히트 정점의 각각의 정점 좌표 및 속성이 이미 생성되고 확장된 정점 캐쉬 (16A) 에 저장되어 있을 수 있음에 따라 이미지 데이터 내의 히트 정점의 각각에 적용 되지 않는다.
정점 좌표는 예를 들어 이미지 데이터 내의 정점의 위치를 식별하는 X, Y 및 Z (너비, 높이 및 깊이) 좌표, 및 이미지 데이터에 대한 투시 파라미터를 포함하는 W 를 구비한 4차원 좌표 시스템에 기초하여 이미지 내의 지오메트리 등의 이미지 데이터 내의 정점을 식별한다. 예를 들어, 정점 속성은 정점과 관련된 색깔, 법선, 텍스쳐 좌표를 포함한다. 확장된 정점 캐쉬 (16A) 는 상이한 다수의 속성 및 프리미티브 유형을 위해 쉽게 구성될 수 있다. 그 후, 이미지 데이터 내의 히트 정점 및 미싱된 정점 모두에 대한 정점 좌표 및 속성의 확장된 정점 캐쉬 (16A) 내의 저장 위치를 가리키는 정점 캐쉬 인덱스 값은 명령 엔진 (42) 및 프리미티브 셋업 및 제거 모듈 (46) 의 사이에 있는 (도시되지 않은) 버퍼 내에 위치된다.
부가적인 프리미티브 셋업 스테이지가 또한 포함될 수 있을지라도, 트라이 앵글 셋업 (46) 및 Z-그래디언트 셋업 (47) 은 예시적인 프리미티브 셋업 스테이지이다. 공유된 ALU (55A) 는 트라이앵글 셋업 (46) 및 Z-그래디언트 셋업 (47) 모두에 의해 사용된다. 상이한 스테이지가 각각의 이미지를 프로세싱하기 위해서 정점 좌표 또는 정점 속성 중 어느 하나를 사용한다. 예를 들어, 트라이앵글 셋업 (46), Z-그래디언트 셋업 (47), 래스터라이저 (48), 숨겨진 프리미티브 및 픽셀 제거 모듈 (50)은 오직 정점 좌표만을 사용한다. 그러나, 속성 그래디언트 셋업 모듈 (52) 및 속성 보간기 (54) 는 정점 속성을 사용한다. 따라서, 본 개시에 따라, 속성 그래디언트 셋업 모듈 (52) 은 GPU 파이프라인 (18A) 의 속성 보간기 (54) 의 직전으로 연기된다. 정점 속성은 속성 보간기 (54) 로 속성을 보간하기 전 GPU 파이프라인 (18A) 의 마지막 스테이지 중 하나인 속성 그래디언트 셋업 모듈 (52)을 위해 확장된 정점 캐쉬 (16A) 로부터 검색될 수 있다. 이러한 방식으로, 정점 속성은 숨겨진 프리미티브 및 픽셀 제거 (50) 후 및 속성 보간기 (54) 직전까지는 GPU 파이프라인 (18A) 으로 도입되지 않으며, 효율에 있어 큰 이득을 제공한다.
또한, 속성 보간기 (54) 는 속성 그래디언트 셋업 모듈 (52) 의 바로 뒤에 오기 때문에, 이 각각의 스테이지는 ALU (55B) 를 공유한다. 큰 사이즈의 프리미티브의 경우, ALU (55B) 는 대부분 보간을 위해 사용될 것이다. 다른 방법으로, 프리미티브가 작은 경우, ALU (55B) 는 주로 속성 셋업을 위해 사용될 것이다. 상대적으로 작은 ALU (55B) 가 그래디언트 셋업에서 실행 속도의 희생으로 전력소비를 줄일 수 있는 반면, 상대적으로 큰 ALU (55B) 는 특히 그래디언트 셋업 에서 프로세싱 속도를 촉진한다.
또한, 이미지 데이터의 정점에 대한 정점 속성을 확장된 정점 캐쉬 (16A) 내에 저장함으로써, 디바이스 (10) 는 GPU 파이프라인 (18A) 를 통해 전달되는 많은 양의 데이터를 제거할 수 있으며, 이는 GPU 파이프라인 (18A) 내에 포함된 내부 데이터 버스의 폭을 감소시킬 수 있다. 데이터 이동량을 감소시킴으로써, 이 기술은 또한 GPU (18A) 내의 전력 소비량을 감소시킬 수 있다. 또한, 명령 엔진 (42) 과 프리미티브 셋업 및 제거 모듈 (46) 의 사이에 위치할 수 있는 버퍼를 제외하고, 프로세싱 스테이지의 각각 사이에 위치한 버퍼는 디바이스 (10) 내의 GPU (14A) 의 면적을 감소시키기 위해 GPU 파이프라인 (18A) 으로부터 제거될 수 있다.
프리미티브 셋업 모듈 (46 및 47) (및 어쩌면 프리미티브 셋업의 다른 유형) 은 이미지 데이터 내의 정점 각각의 속성에 대한 정점 캐쉬 인덱스 값을 수신한다. 그 후, 프리미티브 셋업 모듈 (46 및 47) 은 정점 캐쉬 인덱스 값을 이용하여 이미지 데이터 내의 각각의 정점에 대한 정점 좌표를 검색한다. 프리미티브 셋업 모듈 (46 및 47) 은 이미지 데이터 내의 하나 이상의 정점으로 각각의 프리미티브를 형성한다. 프리미티브는 지오메트리 도형의 가장 간단한 형태이며 점, 선, 트라이앵글 및 다른 다각형을 포함할 수도 있다. 본 개시에 따르면, 트라이앵글 셋업 (46) 및 Z-그래디언트 셋업 (47) 은 효율을 증진하기 위해 ALU (55A) 를 공유할 수 있다. 트라이앵글 셋업 (46) 및 Z-그래디언트 셋업 (47)은 또한 부가적인 효율을 위해 상호 동작을 위한 룩업 테이블을 공유할 수 있다. Z- 그래디언트는 트라이앵글 상의 X 축 방향 또는 Y 축 방향으로 인접한 픽셀의 두 Z 좌표의 차이를 나타낸다. Z-그래디언트 셋업은 트라이앵글의 세개의 오리지널 정점의 Z 값 및 XY 좌표를 이용하여 두 Z 값의 차이를 계산하는데 사용된다.
어떠한 경우, 프리미티브 셋업 모듈 (46 및 47) 은 또한 이미지 데이터 내의 정점의 XY 좌표를 사용하여 씨저링 (scissoring) 및 백페이스 컬링 (backface culling) 으로써 어떤 프리미티브를 제거할 수 있다. 씨저링 및 백페이스 컬링은 프리미티브 및 프리미티브의 일부가 이미지 프레임내에서 보이지 않을 때 이미지의 특정 프레임의 프로세싱 중 프리미티브 및 프리미티브의 일부를 고려대상에서 제외할 수 있다. 예를 들어, 프리미티브 및 프리미티브의 일부는 이미지 프레임 내의 오브젝트의 후방에 위치할 수 있다. 프리미티브 셋업 모듈 (46 및 47) 은 확장된 정점 캐쉬 (16A) 에 제거된 프리미티브와 관련된 속성을 위한 저장 공간을 릴리스 (release) 하도록 요청할 수 있다. 이미지 데이터에 대한 프리미티브, 프리미티브와 관련된 정점 좌표 및 프리미티브 내의 정점 각각에 대한 정점 캐쉬 인덱스 값을 GPU 파이프라인 (18A) 을 통해 이동시키는 것만으로, 디바이스 (10) 는 많은 수의 속성을 포함하는 프리미티브에 대한 GPU 파이프라인 (18A) 내의 병목 현상을 실질적으로 제거할 수 있다.
래스터라이저 (48) 는 프리미티브 내의 정점의 XY좌표 및 프리미티브 내에 포함된 픽셀의 수에 기초하여 이미지 데이터에 대한 프리미티브를 픽셀로 변환한다. 숨겨진 프리미티브 및 픽셀 제거 모듈 (50) 은 프리미티브 내의 정점의 Z 좌표에 기초하여 초기 깊이 및 스텐실 테스트를 이용하여 부가적인 숨겨진 프리미 티브 및 그 프리미티브 내의 숨겨진 픽셀을 제거한다. 숨겨진 프리미티브 및 픽셀 제거 모듈 (50) 이 프리미티브 내의 모든 픽셀을 제거하는 경우, 프리미티브는 자동적으로 제거된다. 프리미티브 또는 프리미티브 내의 픽셀은 프리미티브 또는 프리미티브 내의 픽셀이 이미지 프레임 내의 또 다른 오브젝트의 뒤에 위치하거나 이미지 프레임내에서 투명한 경우, 숨겨진 것으로 간주될 수 있으며 이미지의 특정 프레임의 프로세싱 중 고려대상에서 제외될 수 있다. 숨겨진 프리미티브 및 픽셀 제거 모듈 (50)은 확장된 정점 캐쉬 (16A) 에 제거된 프리미티브와 관련된 속성을 위한 저장 공간을 릴리스하도록 요청할 수 있다.
통상적으로, 프리미티브의 많은 비율은 프리미티브 셋업 및 제거 모듈 (46 및 47) 에 의해 수행되는 씨저링 및 백페이스 컬링 및 숨겨진 프리미티브 및 픽셀 제거 모듈 (50) 에 의해 수행되는 초기 깊이 및 스텐실 테스트에 의해 제거된다. 따라서, 속성 그래디언트 셋업 스테이지 (52) 를 숨겨진 프리미티브 및 픽셀 제거 (50) 이후로 연기함으로써, 숨겨지거나 이미지를 위해 필요하지 않음에 따라 제거되는 프리미티브의 서브셋과 관련된 속성에 대한 계산이 제거될 수 있다.
속성 그래디언트 셋업 모듈 (52) 은 프리미티브 내의 정점 각각의 정점 캐쉬 인덱스 값을 사용하여 확장된 정점 캐쉬 (16A) 로부터 정점 속성을 검색한다. 속성 그래디언트 셋업 모듈 (52) 은 이미지 데이터에 대한 프리미티브와 관련된 속성의 그래디언트를 계산한다. 속성 그래디언트는 수평 (X) 방향 또는 수직 (Y) 방향으로 이동하고 있는 프리미티브 내의 제 1 픽셀의 속성 값 및 제 2 픽셀의 속성값의 차이를 포함한다. 속성 그래디언트 셋업 모듈 (52) 이 이미지 데이터에 대한 프리미티브 내의 모든 정점의 속성의 그래디언트를 계산한 뒤에, 속성 그래디언트 셋업 모듈 (52) 은 확장된 정점 캐쉬 (16A) 에 프리미티브 내의 정점의 속성을 위한 저장공간을 릴리스하도록 요청한다.
속성 그래디언트 값이 일단 계산되면, 속성 보간기 (54) 는 속성 그래디언트 값에 기초하여 프리미티브내의 픽셀에 걸쳐 속성을 보간한다. 또한, 동일한 ALU (55B) 가 속성 그래디언트 셋업 (52) 및 속성 보간기 스테이지 (54) 에 사용된다. 보간된 속성 값은 프리미티브의 픽셀 렌더링을 수행하기 위해 프래그먼트 셰이더 (56) 로 입력된다. 프래그먼트 셰이더 (56) 는 이미지 데이터에 대한 프리미티브 내의 픽셀에서의 이미지의 표면 특성을 결정한다. 그 후, 프래그먼트 셰이더 (56) 의 결과는 디스플레이 (20) 상에 프로세싱된 이미지의 표현을 위해 포스트-프로세서 (58) 로 출력 된다.
어떠한 경우, 정점 셰이더 (44) 는 이미지 데이터 내의 미싱된 정점에 적용되지 않을 수 있다. 이미지 데이터 내의 모든 정점의 정점 좌표 및 속성은 GPU 파이프라인 (18A) 에 대해 외부적인 것으로 결정된다고 가정할 수도 있다. 따라서, 미싱된 정점으로써 형성된 프리미티브는 미싱된 정점의 속성을 계산하기 위해 정점 셰이더 (44) 를 필요로 하지 않는다. 이러한 경우, 확장된 정점 캐쉬 (16A) 는 확장된 정점 버퍼로 동작할 수 있다. 명령 엔진 (42) 은 확장된 정점 버퍼 내의 속성의 저장 위치를 식별하는 정점 인덱스 값을 할당할 수 있고 이미지 데이터 내의 정점 각각의 미리 결정된 정점 좌표 및 속성을 확장된 정점 버퍼로 전송할 수 있다.
도 4 는 도 1 로부터의 GPU (14) 의 또 다른 예시적인 실시형태로, GPU 파이프라인 (18B) 및 GPU 파이프라인 (18B)에 연결된 확장된 정점 캐쉬 (16B) 를 포함하는 GPU (14B) 를 도시하는 블록도이다. 도시된 실시형태에서, GPU 파이프라인 (18B) 은 명령 엔진 (62), 정점 셰이더 (64), 트라이앵글 셋업 모듈 (66) 및 Z-그래디언트 셋업 모듈 (67) (모듈 66 및 67 은 총괄하여 프리미티브 셋업 모듈로 지칭된다), 래스터라이저 (68), 숨겨진 프리미티브 및 픽셀 제거 모듈 (70), 속성 그래디언트 셋업 모듈 (72), 속성 보간기 (74), 프래그먼트 셰이더 (76), 및 포스트-프로세서 (78) 를 포함한다. 도 4 에 도시된 GPU (14B) 는 이미지 데이터 내의 정점의 초기 프로세싱을 제외하고, 도 3 에 도시된 GPU (14A) 와 실질적으로 유사하게 동작한다. 상이한 스테이지가 ALU (65A, 75A, 65B, 65C, 75B 및 65D) 를 각각 이용한다. 특히, ALU (75A 및 75B) 는 GPU 파이프라인 (18B) 의 두 상이한 스테이지를 위해 공유된다.
명령 엔진 (62) 은 디바이스 (10) 의 제어기 (12) 로부터의 이미지에 대한, 지오메트리 및 렌더링 명령을 포함한 이미지 데이터를 수신한다. 명령 엔진 (62) 은 GPU 파이프라인 (18B) 을 따라 이미지 데이터를 다른 프로세싱 스테이지로 전달한다. 바꾸어 말하면, 명령 엔진 (62) 은 이미지 데이터 내의 모든 정점에 대한 정보를 정점 셰이더 (64) 로 전달한다.
도 4 의 실시형태에서, 정점 셰이더 (64) 는 이미지 데이터 내의 모든 정점에 적용된다. 정점 셰이더 (64) 가 이미지 데이터에 적용되며 이미지 데이터 내의 정점에서의 이미지의 표면 특성을 결정한다. 이러한 방식으로, 정점 셰이 더 (64) 는 이미지 데이터 내의 정점 각각에 대한 정점 좌표 및 속성을 생성한다. 그 후 , 정점 셰이더 (64) 는 오직 속성만을 확장된 정점 캐쉬 (16B) 에 저장한다. 정점 셰이더 (64) 는 이미지 데이터 내의 정점 각각에 대한 정점 좌표 및 확장된 정점 캐쉬 (16B) 내의 속성의 저장 위치를 가리키는 정점 캐쉬 인덱스 값을 GPU 파이프라인 (18B) 을 따라 전달한다.
정점 셰이더 (64) 는 이미지 데이터 내의 정점에 대한 정점 좌표 및 정점 캐쉬 인덱스 값을 프리미티브 셋업 모듈 및 제거 모듈 (66) 로 직접 전달하기 때문에, 프로세싱 스테이지 각각에 위치한 모든 버퍼는 GPU 파이프라인 (18B) 으로부터 제거될 수 있다. 프리미티브 셋업 모듈 (66 및 67) 은 이미지 데이터 내의 하나 이상의 정점으로 프리미티브를 형성한다. 이 프리미티브 셋업 모듈 (66 및 67) 은 하나 이상의 ALU 를 공유할 수 있다. 프리미티브 셋업 및 제거 모듈 (66) 은 확장된 정점 캐쉬 (16B) 에 제거된 프리미티브와 관련된 속성을 위한 저장공간을 릴리스하도록 요청할 수 있다.
래스터라이저 (68) 는 프리미티브 내의 정점의 XY좌표 및 프리미티브 내에 포함된 픽셀의 수에 기초하여 이미지 데이터에 대한 프리미티브를 픽셀로 변환한다. 숨겨진 프리미티브 및 픽셀 제거 모듈 (70) 은 프리미티브 내의 정점의 Z 좌표에 기초하여 초기 깊이 및 스텐실 테스트를 이용하여 부가적인 숨겨진 프리미티브 및 프리미티브 내에 숨겨진 픽셀을 제거한다. 숨겨진 프리미티브 및 픽셀 제거 모듈 (70)은 확장된 정점 캐쉬 (16B)에 제거된 프리미티브와 관련된 속성에 대한 저장 공간을 릴리스하도록 요청할 수 있다.
속성 그래디언트 셋업 모듈 (72) 은 프리미티브 내의 정점 각각의 정점 캐쉬 인덱스 값을 사용하여 확장된 정점 캐쉬 (16B) 로부터 정점 속성을 검색한다. 속성 그래디언트 셋업 모듈 (72) 은 이미지 데이터에 대한 프리미티브와 관련된 속성의 그래디언트를 계산한다. 속성 그래디언트 셋업 모듈 (72) 이 이미지 데이터에 대한 프리미티브 내의 모든 정점의 속성의 그래디언트를 계산한 뒤에, 속성 그래디언트 셋업 모듈 (72) 은 확장된 정점 캐쉬 (16B) 에 프리미티브 내의 정점의 속성을 위한 저장공간을 릴리스하도록 요청한다.
속성 그래디언트 값이 일단 계산되면, 속성 보간기 (74) 는 속성 그래디언트 셋업 모듈 (72) 와 함께 하나 이상의 ALU 를 공유함으로써 속성 그래디언트 값에 기초하여 프리미티브 내의 픽셀에 걸쳐 속성을 보간한다. 보간된 속성 값은 프리미티브의 픽셀 렌더링을 수행하기 위해 프래그먼트 셰이더 (76) 로 입력된다. 프래그먼트 셰이더 (76) 는 이미지 데이터에 대한 프리미티브 내의 픽셀에서의 이미지의 표면 특성을 결정한다. 프래그먼트 셰이더 (76) 의 결과는 디스플레이 (20) 상에 프로세싱된 이미지의 표현을 위해 포스트-프로세서 (78) 로 출력된다.
도 5 는 확장된 정점 캐쉬를 이용한 GPU 내에서의 이미지 프로세싱의 예시적인 동작을 도시하는 흐름도이다. 유사한 기술이 다른 GPU와 함께 사용될 수 있음에도 불구하고 도 5의 동작은 도 1 에서의 GPU (14) 에 관하여 설명된다. 확장된 정점 캐쉬 (16) 는 디바이스 (10) 의 제조 중에 GPU (14) 내에 생성될 수 있으며 GPU 파이프라인 (18) 에 연결될 수 있다 (80). 확장된 정점 캐쉬 (16) 는 상이한 수의 속성 및 프리미티브 유형에 대해 쉽게 구성될 수 있다.
GPU (14) 는 렌더링 명령을 포함할 수 있는, 디바이스 (10)의 제어기 (12) 로부터 이미지에 대한 이미지 데이터를 수신한다 (82). 이미지 데이터는 복합, 2-D 또는 3-D 컴퓨터 그래픽의 표현에 대응할 수 있다. GPU (14) 는 디바이스 (10) 에 연결된 디스플레이 (20) 상에 표시를 위해 이미지를 프로세싱하기 위해 이미지 데이터를 GPU 파이프라인 (18) 으로 전송한다. GPU 파이프라인 (18) 은 이미지 데이터 내의 정점에 대한 속성을 확장된 정점 캐쉬 (16) 내에 저장한다(84). 어떤 실시형태에서, GPU 파이프라인 (18) 은 일시적으로 이미지 데이터 내의 정점에 대한 정점 좌표를 확장된 정점 캐쉬 (16)에 저장한다.
그 후, GPU 파이프라인 (18) 은 정점을 식별하는 정점 좌표 및 확장된 정점 캐쉬 (16) 내의 정점 각각에 대한 속성의 저장 위치를 나타내는 정점 캐쉬 인덱스 값을 GPU 파이프라인 (18) 을 따라 다른 프로세싱 스테이지로 전달한다 (86). GPU 파이프라인 (18) 은 이미지 데이터 내의 정점 각각에 대한 정점 좌표 및 정점 캐쉬 인덱스 값에 기초하여 이미지를 프로세싱한다 (88). 그러한 프로세싱 동안, GPU 파이프라인 (18) 은 GPU 파이프라인 (18) 을 따라 하나 이상의 ALU를 재사용한다(89). 구체적으로, 본 개시에 따라, 공유된 ALU 는 속성 그래디언트 셋업 스테이지 및 속성 보간기 스테이지를 위해 사용될 수 있다. GPU 파이프라인의 종래의 것이 아닌 순서는 속성 그래디언트 셋업 스테이지 및 속성 보간기 스테이지가 ALU 를 공유하는 것을 용이하게 한다.
도 6 은 공유된 ALU 를 이용하여 GPU 파이프라인으로 이미지를 프로세싱하는 또 다른 예시적인 동작을 도시하는 흐름도이다. 설명을 위해, 유사한 기술이 다른 GPU 와 함께 사용될 수 있어도, 도 6 에 도시된 동작은 도 3 에서의 GPU (14A) 에 관하여 설명된다. 명령 엔진 (42) 은 이미지에 대한, 지오메트리 및 렌더링 명령을 포함한 이미지 데이터를 수신하며 GPU 파이프라인 (18B) 을 따라 이미지 데이터를 전달한다. 도 6 에 도시된 바와 같이, 정점 셰이더 (44) 는 제 1 ALU (45A) 를 사용하여 정점 셰이딩을 수행한다 (91). 트라이앵글 셋업 모듈 (46) 은 제 2 ALU (55A) 를 사용하여 임의의 트라이앵글 프리미티브를 위한 트라이앵글 셋업을 수행한다 (92) . 이 제 2 ALU (55A) 는 Z-그래디언트 셋업 모듈 (47) 이 제 2 ALU (55A) 를 사용하여 Z-그래디언트 셋업을 수행하는 한, 또 다른 스테이지에 의해 재사용될 수 있다 (93). 그 후, 래스터라이저가 제 3 ALU (45B) 를 이용하여 래스터라이징을 수행한다 (94).
숨겨진 프리미티브 및 픽셀 제거 모듈 (50) 은 최종 이미지 내에서 볼 수 없는 프리미티브를 제거하기 위해 제 4 ALU (45C) 를 사용하여 초기 깊이/스텐실 테스트를 수행한다 (95). 예를 들어, 그러한 볼 수 없는 프리미티브는 다른 오브젝트 또는 형상들에 의해 가려질 수 있으며 어떠한 이미지 품질을 희생시키지 않고이미지로부터 제거될 수 있다. 속성 그래디언트 셋업 모듈은 특히 제거된 프리미티브에 대하여는 발생하지 않는 속성 그래디언트 셋업을 위해 제 5 ALU (55B) 를 사용한다(96). 그 후, 속성 보간기 (54) 는 임의의 보간을 수행하기 위해, 속성 그래디언트 셋업에 이미 사용된 제 5 ALU (55B) 를 사용한다 (97). 프래그먼트 셰이더 (56) 는 프래그먼트 셰이딩을 수행하며 (98), 포스트 프로세서 (58) 는 이미지 디스플레이에 앞서서 임의의 최종 포스트 프로세싱을 수행한다 (99). 상술했듯이, 확장된 정점 캐쉬 (16A) 는 복잡성을 감소시키고 각각의 스테이지를 통해 많은 양의 데이터가 전파될 필요성을 제거하기 위해 GPU 파이프라인 (18A) 을 따라 구현될 수 있다. 그 대신에, 이미지 데이터의 부분을 필요로 하는 각각의 스테이지는 확장된 정점 캐쉬 (16A) 에 저장된 그러한 데이터에 액세스할 수 있다.
많은 실시형태들이 설명되었다. 그러나, 이러한 실시형태들에 대한 다양한 수정이 가능하며, 여기 표현된 원리들은 다른 실시형태에 또한 적용될 수 있다. 여기 기재된 기술 및 방법은 하드웨어, 소프트웨어, 및/또는 펌웨어로 구현될 수 있다. 그러한 방법들의 다양한 태스크 (task) 는 논리 구성요소, 마이크로프로세서, 내장된 제어기 또는 통합된 프로세서 코어의 하나 이상의 배열에 의해 실행될 수 있는 명령의 집합으로 구현될 수 있다. 하나의 예로, 하나 이상의 그러한 태스크는 소위 셀룰러 폰과 같은 개인 통신 디바이스의 다양한 디바이스의 동작을 제어하기 위해 구성된 칩셋 (chipset) 내의 실행을 위해 배열된다.
다양한 예로, 본 개시에 기재된 기술은 범용 마이크로프로세서, 디지털 신호 처리 장치 (DSP), 주문형 반도체 (ASIC), 필드 프로그래머블 게이트 어레이 (FPGA), 또는 다른 상응하는 논리 디바이스 내에서 구현될 수 있다. 소프트웨어로 구현되는 경우, 램 (RAM), 롬 (ROM), 비휘발성 메모리 (NVRAM), 이이피롬 (EEPROM), 플래쉬 메모리 등과 같은 컴퓨터 판독가능 매체에 명령으로서 내장될 수 있다. 명령은 프로그래머블 프로세서와 같은 머신으로 하여금 본 개시에 기재된 기술을 수행하도록 한다.
다른 예로, 실시형태는 하드-와이어드 회로, 주문형 반도체에 제조된 회로 구성으로, 또는 비-휘발성 기억장치에 로딩된 펌웨어 프로그램 또는 마이크로프로세서 또는 다른 신호 처리 유닛과 같은 논리 구성요소의 배열에 의해 실행가능한 명령인, 머신-판독가능한 코드로서 데이터 저장 매체로부터 혹은 데이터 저장 매체로 로딩되는 소프트웨어 프로그램으로서 부분적으로 또는 전체적으로 구현될 수 있다. 데이터 저장 매체는 (제한 없이 동적 또는 정적 램 (RAM), 롬 (ROM), 및/또는 플래쉬 램 (RAM) 을 포함할 수 있는) 반도체 메모리 또는 강유전성 (ferroelectric), 오보닉 (ovonic), 폴리머릭 (polymeric) 또는 상-전이 (phase-change) 메모리 같은 저장 구성요소의 배열 또는 마그네틱 또는 자기디스크 및 광 디스크와 같은 디스크 매체일 수 있다.
본 개시에서, 다양한 기술들이 확장된 정점 캐쉬 및 하나 이상의 공유된 ALU 를 사용하는 GPU로 이미지를 프로세싱하는 것에 대해 설명되었다. 본 기술은 많은 수의 속성을 포함하고 있는 프리미티브에 대한 GPU 파이프라인의 병목현상을 실질적으로 제거할 수 있으며, ALU의 휴지 시간을 실질적으로 감소키는 효율적인 프로세싱을 촉진할 수 있다. 또한, 본 기술은 속성 그래디언트 셋업을 GPU 파이프라인 상의 속성 보간 직전으로 연기함으로써, GPU 파이프라인 내의 이미지 프로세싱 속도를 개선시킬 수 있다. 더 상세하게는, GPU 파이프라인 내의 속성 그래디언트 셋업을 이미지를 위해 필요하지 않은 프리미티브의 서브셋의 제거 이후로 연기하는 것은 속성 그래디언트 셋업이 이미지를 위해 필요로 하는 프리미티브의 서브셋에 대해서만 수행되기 때문에 계산 및 전력 소비를 실질적으로 줄일 수 있다. 스테이지들의 이러한 배열은 속성 그래디언트 셋업 및 속성 보간 스테이 지에 의한 ALU 공유를 가능하게 한다. 이러한 실시형태 및 다른 실시형태는 후술되는 청구항의 범위 내에 있다.

Claims (30)

  1. 그래픽 처리 유닛 (GPU) 파이프라인 내에서 이미지에 대한 이미지 데이터를 수신하는 단계; 및
    속성 그래디언트 셋업 스테이지 및 속성 보간기 스테이지를 위해 공유된 산술 논리 유닛을 사용하여 상기 GPU 파이프라인 내에서 상기 이미지 데이터를 프로세싱하는 단계를 포함하는, 방법.
  2. 제 1 항에 있어서,
    상기 속성 보간기 스테이지는 상기 GPU 파이프라인 내의 상기 속성 그래디언트 셋업 스테이지 바로 다음에 있는, 방법.
  3. 제 1 항에 있어서,
    상기 공유된 산술 논리 유닛은 제 1 공유된 산술 논리 유닛을 포함하고,
    상기 방법은, 트라이앵글 셋업 스테이지를 위해 제 2 공유된 산술 논리 유닛을 사용하는 단계; 및
    Z-그래디언트 (Z-Gradient) 셋업 스테이지를 위해 상기 제 2 공유된 산술 논리 유닛을 사용하는 단계를 더 포함하는, 방법.
  4. 제 3 항에 있어서,
    상기 트라이앵글 셋업 스테이지 및 상기 Z-그래디언트 셋업 스테이지를 위한 상호 동작을 위한 공유된 룩업 테이블을 사용하는 단계를 더 포함하는, 방법.
  5. 제 4 항에 있어서,
    상기 Z-그래디언트 셋업 스테이지는 상기 GPU 파이프라인 내의 상기 트라이앵글 셋업 스테이지 바로 다음에 있고,
    상기 속성 보간기 스테이지는 상기 GPU 파이프라인 내의 상기 속성 그래디언트 셋업 스테이지 바로 다음에 있는, 방법.
  6. 제 5 항에 있어서,
    상기 속성 그래디언트 셋업 스테이지 및 상기 속성 보간기 스테이지는 상기 GPU 파이프라인 내의 숨겨진 프리미티브 및 픽셀 제거 (pixel rejection) 스테이지다음에 있는, 방법.
  7. 제 6 항에 있어서,
    상기 숨겨진 프리미티브 및 픽셀 제거 스테이지는 상기 GPU 파이프라인 내의 상기 Z-그래디언트 셋업 스테이지 및 상기 트라이앵글 셋업 스테이지 다음에 있는, 방법.
  8. 제 1 항에 있어서,
    상기 이미지 데이터 내의 정점에 대한 속성을 상기 GPU 파이프라인에 연결된 확장된 정점 캐쉬에 저장하는 단계; 및
    상기 정점을 식별하는 정점 좌표 및 상기 확장된 정점 캐쉬 내의 상기 이미지 데이터 내의 정점 각각에 대한 속성의 저장 위치를 나타내는 정점 캐쉬 인덱스 값에 기초하여 상기 GPU 파이프라인 내에서 상기 이미지 데이터를 프로세싱하는 단계를 더 포함하는, 방법.
  9. 실행시 머신으로 하여금,
    그래픽 처리 유닛 (GPU) 파이프라인 내에서 이미지에 대한 이미지 데이터를 수신하고,
    속성 그래디언트 셋업 스테이지 및 속성 보간기 스테이지를 위해 공유된 산술 논리 유닛을 사용하여 상기 GPU 파이프라인 내에서 상기 이미지 데이터를 프로세싱하게 하는 명령을 포함하는, 컴퓨터 판독 가능 매체.
  10. 제 9 항에 있어서,
    상기 머신은 프로그래머블 프로세서를 포함하는, 컴퓨터 판독 가능 매체.
  11. 제 9 항에 있어서,
    상기 속성 보간기 스테이지는 상기 GPU 파이프라인 내의 상기 속성 그래디언트 셋업 스테이지 바로 다음에 있는, 컴퓨터 판독 가능 매체.
  12. 제 10 항에 있어서,
    상기 공유된 산술 논리 유닛은 제 1 공유된 산술 논리 유닛을 포함하고,
    상기 명령은 실행시 상기 머신으로 하여금,
    트라이앵글 셋업 스테이지를 위해 제 2 공유된 산술 논리 유닛을 사용하고;
    Z-그래디언트 셋업 스테이지를 위해 상기 제 2 공유된 산술 논리 유닛을 사용하게 하는, 컴퓨터 판독 가능 매체.
  13. 제 12 항에 있어서,
    상기 명령은 실행시 상기 머신으로 하여금, 상기 트라이앵글 셋업 스테이지 및 상기 Z-그래디언트 셋업 스테이지를 위한 상호 동작을 위한 공유된 룩업 테이블을 사용하게 하는, 컴퓨터 판독 가능 매체.
  14. 제 13 항에 있어서,
    상기 Z-그래디언트 셋업 스테이지는 상기 GPU 파이프라인 내의 상기 트라이앵글 셋업 스테이지 바로 다음에 있고,
    상기 속성 보간기 스테이지는 상기 GPU 파이프라인 내의 상기 속성 그래디언트 셋업 스테이지 바로 다음에 있는, 컴퓨터 판독 가능 매체.
  15. 제 14 항에 있어서,
    상기 속성 그래디언트 셋업 스테이지 및 상기 속성 보간기 스테이지는 상기 GPU 파이프라인 내의 숨겨진 프리미티브 및 픽셀 제거 스테이지 다음에 있는, 컴퓨터 판독 가능 매체.
  16. 제 15 항에 있어서,
    상기 숨겨진 프리미티브 및 픽셀 제거 스테이지는 상기 GPU 파이프라인 내의 상기 Z-그래디언트 셋업 스테이지 및 상기 트라이앵글 셋업 스테이지 다음에 있는, 컴퓨터 판독 가능 매체.
  17. 제 9 항에 있어서,
    상기 명령은 실행시 상기 머신으로 하여금,
    상기 이미지 데이터 내의 정점에 대한 속성을 상기 GPU 파이프라인에 연결된 확장된 정점 캐쉬에 저장하고;
    상기 정점을 식별하는 정점 좌표 및 상기 확장된 정점 캐쉬 내의 상기 이미지 데이터 내의 정점 각각에 대한 속성의 저장 위치를 나타내는 정점 캐쉬 인덱스 값에 기초하여 상기 GPU 파이프라인 내에서 상기 이미지 데이터를 프로세싱하게 하는, 컴퓨터 판독 가능 매체.
  18. 이미지에 대한 이미지 데이터를 수신하고 다수의 스테이지 내에서 상기 이미지 데이터를 프로세싱하는 그래픽 처리 유닛 (GPU) 파이프라인으로서, 상기 다수의 스테이지는 속성 그래디언트 셋업 스테이지 및 속성 보간기 스테이지를 포함하는, 상기 GPU 파이프라인; 및
    상기 속성 그래디언트 셋업 스테이지 및 상기 속성 보간기 스테이지 모두에 관련된 속성 그래디언트 셋업 및 속성 보간을 수행하는 공유된 산술 논리 유닛을 포함하는, 디바이스.
  19. 제 18 항에 있어서,
    상기 속성 보간기 스테이지는 상기 GPU 파이프라인 내의 상기 속성 그래디언트 셋업 스테이지 바로 다음에 있는, 디바이스.
  20. 제 18 항에 있어서,
    상기 공유된 산술 논리 유닛은 제 1 공유된 산술 논리 유닛을 포함하고,
    상기 디바이스는, 상기 GPU 파이프라인 내의 트라이앵글 셋업 스테이지 및 Z-그래디언트 셋업 스테이지 모두에 사용되는 제 2 공유된 산술 논리 유닛을 더 포함하는, 디바이스.
  21. 제 20 항에 있어서,
    상기 트라이앵글 셋업 스테이지와 상기 Z-그래디언트 셋업 스테이지 모두에 사용되는 상호 동작을 위한 공유된 룩업 테이블을 더 포함하는, 디바이스.
  22. 제 21 항에 있어서,
    상기 Z-그래디언트 셋업 스테이지는 상기 GPU 파이프라인 내의 상기 트라이앵글 셋업 스테이지 바로 다음에 있고,
    상기 속성 보간기 스테이지는 상기 GPU 파이프라인 내의 상기 속성 그래디언트 셋업 스테이지 바로 다음에 있는, 디바이스.
  23. 제 22 항에 있어서,
    상기 속성 그래디언트 셋업 스테이지 및 상기 속성 보간기 스테이지는 상기 GPU 파이프라인 내의 숨겨진 프리미티브 및 픽셀 제거 스테이지 다음에 있는, 디바이스.
  24. 제 23 항에 있어서,
    상기 숨겨진 프리미티브 및 픽셀 제거 스테이지는 상기 GPU 파이프라인 내의 상기 Z-그래디언트 셋업 스테이지 및 상기 트라이앵글 셋업 스테이지 다음에 있는, 디바이스.
  25. 제 18 항에 있어서,
    상기 GPU 파이프라인에 연결된 확장된 정점 캐쉬를 더 포함하고,
    상기 이미지 데이터 내의 정점에 대한 속성은 상기 확장된 정점 캐쉬에 저장되고, 상기 이미지는 정점을 식별하는 정점 좌표 및 상기 확장된 정점 캐쉬 내의 상기 이미지 데이터 내의 정점 각각에 대한 속성의 저장 위치를 나타내는 정점 캐쉬 인덱스 값에 기초하여 상기 GPU 파이프라인 내에서 프로세싱되는, 디바이스.
  26. 이미지에 대한 이미지 데이터를 수신하는 수단;
    공유된 산술 논리 유닛을 이용하여 속성 그래디언트 셋업 스테이지에서 상기 이미지 데이터를 프로세싱하는 수단; 및
    상기 공유된 산술 논리 유닛을 이용하여 속성 보간기 스테이지에서 상기 이미지 데이터를 프로세싱하는 수단을 포함하는, 디바이스.
  27. 제 26 항에 있어서,
    트라이앵글 셋업 스테이지를 위해 또 다른 공유된 산술 논리 유닛을 사용하는 수단; 및
    Z-그래디언트 셋업 스테이지를 위해 상기 또 다른 공유된 산술 논리 유닛을 사용하는 수단을 더 포함하는, 디바이스.
  28. 제 27 항에 있어서,
    상기 트라이앵글 셋업 스테이지 및 상기 Z-그래디언트 셋업 스테이지를 위한 상호 동작을 위한 공유된 룩업 테이블을 사용하는 수단을 더 포함하는, 디바이스.
  29. 제 28 항에 있어서,
    상기 프로세싱하는 수단은 그래픽 처리 유닛 (GPU) 파이프라인을 포함하고:
    상기 Z-그래디언트 셋업 스테이지는 상기 GPU 파이프라인 내의 상기 트라이앵글 셋업 스테이지 바로 다음에 있고;
    상기 속성 보간기 스테이지는 상기 GPU 파이프라인 내의 상기 속성 그래디언트 셋업 스테이지 바로 다음에 있는, 디바이스.
  30. 제 22 항에 있어서,
    상기 속성 그래디언트 셋업 스테이지 및 상기 속성 보간기 스테이지는 상기 GPU 파이프라인 내의 숨겨진 프리미티브 및 픽셀 제거 스테이지 다음에 있고, 상기 숨겨진 프리미티브 및 픽셀 제거 스테이지는 상기 GPU 파이프라인 내의 상기 Z-그래디언트 셋업 스테이지 및 상기 트라이앵글 셋업 스테이지 다음에 있는, 디바이스.
KR1020097010016A 2006-10-17 2007-10-15 공유된 산술 논리 유닛을 구비한 그래픽 처리 유닛 KR20090079241A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/550,344 2006-10-17
US11/550,344 US8009172B2 (en) 2006-08-03 2006-10-17 Graphics processing unit with shared arithmetic logic unit

Publications (1)

Publication Number Publication Date
KR20090079241A true KR20090079241A (ko) 2009-07-21

Family

ID=39314778

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097010016A KR20090079241A (ko) 2006-10-17 2007-10-15 공유된 산술 논리 유닛을 구비한 그래픽 처리 유닛

Country Status (8)

Country Link
US (1) US8009172B2 (ko)
EP (1) EP2084670A2 (ko)
JP (1) JP2010507175A (ko)
KR (1) KR20090079241A (ko)
CN (1) CN101523442A (ko)
CA (1) CA2666064A1 (ko)
TW (1) TW200830220A (ko)
WO (1) WO2008048940A2 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101270851B1 (ko) * 2010-06-04 2013-06-05 애플 인크. 적응적 렌즈 셰이딩 보정
WO2017007044A1 (ko) * 2015-07-07 2017-01-12 삼성전자 주식회사 신호 처리 장치 및 방법

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8968087B1 (en) * 2009-06-01 2015-03-03 Sony Computer Entertainment America Llc Video game overlay
KR101118594B1 (ko) 2008-12-02 2012-02-27 한국과학기술원 룩업 테이블 공유 장치 및 방법
US20100277488A1 (en) * 2009-04-30 2010-11-04 Kevin Myers Deferred Material Rasterization
US20110043518A1 (en) * 2009-08-21 2011-02-24 Nicolas Galoppo Von Borries Techniques to store and retrieve image data
US20110242115A1 (en) * 2010-03-30 2011-10-06 You-Ming Tsao Method for performing image signal processing with aid of a graphics processing unit, and associated apparatus
CN101976432B (zh) * 2010-11-22 2012-02-08 长沙景嘉微电子有限公司 图形芯片设计中分级裁剪策略的实现
US9524572B2 (en) * 2010-11-23 2016-12-20 Microsoft Technology Licensing, Llc Parallel processing of pixel data
GB201103699D0 (en) 2011-03-03 2011-04-20 Advanced Risc Mach Ltd Graphic processing
GB201103698D0 (en) * 2011-03-03 2011-04-20 Advanced Risc Mach Ltd Graphics processing
US9317892B2 (en) * 2011-12-28 2016-04-19 Intel Corporation Method and device to augment volatile memory in a graphics subsystem with non-volatile memory
CN104025181B (zh) * 2011-12-30 2016-03-23 英特尔公司 用于去耦合采样的基于分类的块延迟着色体系结构
US10699366B1 (en) 2018-08-07 2020-06-30 Apple Inc. Techniques for ALU sharing between threads

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4965750A (en) * 1987-03-31 1990-10-23 Hitachi, Ltd. Graphic processor suitable for graphic data transfer and conversion processes
US4951232A (en) * 1988-09-12 1990-08-21 Silicon Graphics, Inc. Method for updating pipelined, single port Z-buffer by segments on a scan line
US5870509A (en) * 1995-12-12 1999-02-09 Hewlett-Packard Company Texture coordinate alignment system and method
US5886711A (en) * 1997-04-29 1999-03-23 Hewlett-Packard Companu Method and apparatus for processing primitives in a computer graphics display system
US6549209B1 (en) * 1997-05-22 2003-04-15 Kabushiki Kaisha Sega Enterprises Image processing device and image processing method
JP3514945B2 (ja) * 1997-05-26 2004-04-05 株式会社ソニー・コンピュータエンタテインメント 画像作成方法および画像作成装置
US5914726A (en) * 1997-06-27 1999-06-22 Hewlett-Packard Co. Apparatus and method for managing graphic attributes in a memory cache of a programmable hierarchical interactive graphics system
US7038692B1 (en) * 1998-04-07 2006-05-02 Nvidia Corporation Method and apparatus for providing a vertex cache
WO2000004482A2 (en) * 1998-07-17 2000-01-27 Intergraph Corporation Multi-processor graphics accelerator
US6157393A (en) * 1998-07-17 2000-12-05 Intergraph Corporation Apparatus and method of directing graphical data to a display device
AU5686199A (en) * 1998-08-20 2000-03-14 Apple Computer, Inc. Deferred shading graphics pipeline processor
US6717577B1 (en) * 1999-10-28 2004-04-06 Nintendo Co., Ltd. Vertex cache for 3D computer graphics
US6690380B1 (en) * 1999-12-27 2004-02-10 Microsoft Corporation Graphics geometry cache
US6885378B1 (en) * 2000-09-28 2005-04-26 Intel Corporation Method and apparatus for the implementation of full-scene anti-aliasing supersampling
US7098924B2 (en) * 2002-10-19 2006-08-29 Via Technologies, Inc. Method and programmable device for triangle interpolation in homogeneous space
US7036692B2 (en) 2003-02-19 2006-05-02 Graham Packaging Company, L.P. Dispenser with an integrally molded neck finish
US7259765B2 (en) * 2003-04-04 2007-08-21 S3 Graphics Co., Ltd. Head/data scheduling in 3D graphics
US7418606B2 (en) * 2003-09-18 2008-08-26 Nvidia Corporation High quality and high performance three-dimensional graphics architecture for portable handheld devices
US20050206648A1 (en) 2004-03-16 2005-09-22 Perry Ronald N Pipeline and cache for processing data progressively
US7570267B2 (en) 2004-05-03 2009-08-04 Microsoft Corporation Systems and methods for providing an enhanced graphics pipeline
US7710427B1 (en) * 2004-05-14 2010-05-04 Nvidia Corporation Arithmetic logic unit and method for processing data in a graphics pipeline
US7142214B2 (en) * 2004-05-14 2006-11-28 Nvidia Corporation Data format for low power programmable processor
US7505036B1 (en) * 2004-07-30 2009-03-17 3Dlabs Inc. Ltd. Order-independent 3D graphics binning architecture
US7639252B2 (en) * 2004-08-11 2009-12-29 Ati Technologies Ulc Unified tessellation circuit and method therefor
US6972769B1 (en) * 2004-09-02 2005-12-06 Nvidia Corporation Vertex texture cache returning hits out of order
US7233334B1 (en) * 2004-09-29 2007-06-19 Nvidia Corporation Storage buffers with reference counters to improve utilization
EP1883045A4 (en) * 2005-05-20 2016-10-05 Sony Corp SIGNAL PROCESSOR
US7492373B2 (en) * 2005-08-22 2009-02-17 Intel Corporation Reducing memory bandwidth to texture samplers via re-interpolation of texture coordinates

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101270851B1 (ko) * 2010-06-04 2013-06-05 애플 인크. 적응적 렌즈 셰이딩 보정
WO2017007044A1 (ko) * 2015-07-07 2017-01-12 삼성전자 주식회사 신호 처리 장치 및 방법
US10956154B2 (en) 2015-07-07 2021-03-23 Samsung Electronics Co., Ltd. Signal processing device and method

Also Published As

Publication number Publication date
WO2008048940A3 (en) 2009-04-30
TW200830220A (en) 2008-07-16
US8009172B2 (en) 2011-08-30
CN101523442A (zh) 2009-09-02
JP2010507175A (ja) 2010-03-04
US20080030512A1 (en) 2008-02-07
EP2084670A2 (en) 2009-08-05
CA2666064A1 (en) 2008-04-24
WO2008048940A2 (en) 2008-04-24

Similar Documents

Publication Publication Date Title
KR101033779B1 (ko) 확장된 버텍스 캐시를 갖는 그래픽스 프로세싱 유닛을 이용하여 이미지를 프로세싱하는 방법 및 장치
KR20090079241A (ko) 공유된 산술 논리 유닛을 구비한 그래픽 처리 유닛
US8436854B2 (en) Graphics processing unit with deferred vertex shading
US8421794B2 (en) Processor with adaptive multi-shader
US7928990B2 (en) Graphics processing unit with unified vertex cache and shader register file
KR100547258B1 (ko) 안티-에일리어싱 수퍼샘플링을 위한 방법 및 장치
US20140347359A1 (en) Cache-efficient processor and method of rendering indirect illumination using interleaving and sub-image blur
US9224227B2 (en) Tile shader for screen space, a method of rendering and a graphics processing unit employing the tile shader
US10733785B2 (en) Graphics processing
KR20110016938A (ko) 기하 셰이더를 사용하는 테셀레이션 엔진을 위한 시스템, 방법, 및 컴퓨터 프로그램 제품
US10192348B2 (en) Method and apparatus for processing texture
KR20220148814A (ko) 효율적인 다중 뷰 래스터화를 위한 방법들 및 장치
US20100277488A1 (en) Deferred Material Rasterization
US11972518B2 (en) Hybrid binning
US20240212257A1 (en) Workload packing in graphics texture pipeline
US10311627B2 (en) Graphics processing apparatus and method of processing graphics pipeline thereof
WO2024137230A1 (en) Workload packing in graphics texture pipeline
EP4315257A1 (en) Synchronization free cross pass binning through subpass interleaving

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application