KR100922780B1 - 그래픽 프로세서를 위한 효율적인 인터페이스 및 어셈블러 - Google Patents

그래픽 프로세서를 위한 효율적인 인터페이스 및 어셈블러 Download PDF

Info

Publication number
KR100922780B1
KR100922780B1 KR1020077009007A KR20077009007A KR100922780B1 KR 100922780 B1 KR100922780 B1 KR 100922780B1 KR 1020077009007 A KR1020077009007 A KR 1020077009007A KR 20077009007 A KR20077009007 A KR 20077009007A KR 100922780 B1 KR100922780 B1 KR 100922780B1
Authority
KR
South Korea
Prior art keywords
information
vertex
vertex information
application processor
batch
Prior art date
Application number
KR1020077009007A
Other languages
English (en)
Other versions
KR20070055610A (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 KR20070055610A publication Critical patent/KR20070055610A/ko
Application granted granted Critical
Publication of KR100922780B1 publication Critical patent/KR100922780B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Generation (AREA)
  • Advance Control (AREA)

Abstract

꼭지점 정보가 애플리케이션 프로세서로부터 검색되고, 이를 이용하여 그래픽 이미지를 나타내는 표면들을 어셈블링 하는 그래픽 프로세서 및 방법이 제시된다. 그리고 나서 어셈블링된 표면들은 픽셀 정보로 렌더링 될 수 있다. 상기 꼭지점 정보는 각각 상기 표면들 중 적어도 하나와 관련된 하나의 꼭지점에 대한 데이터를 갖는 다수의 데이터 블록들을 포함한다. 상기 각각의 데이터 블록은 그 안에 포함된 상기 꼭지점 데이터에 상응하는 가변 길이를 갖는다. 상기 그래픽 프로세서의 적어도 하나의 실시예에서, 상기 꼭지점 정보는 핑퐁 꼭지점 버퍼 설정을 이용하여 상기 애플리케이션 프로세서로부터 배치(batch)로 검색될 수 있다. 상기 그래픽 프로세서와 동일하거나 또는 대안적인 실시예에서, 상기 픽셀 정보는 상기 애플리케이션 프로세서에 의해 생성된 명령들에 의해 제어되는 프레임 버퍼들의 핑퐁 배치를 통해 디스플레이에 제공될 수 있다.

Description

그래픽 프로세서를 위한 효율적인 인터페이스 및 어셈블러{AN EFFICIENT INTERFACE AND ASSEMBLER FOR A GRAPHICS PROCESSOR}
본 명세서는 일반적으로 그래픽 이미징(imaging), 더 자세하게는 그래픽 프로세서를 위한 효율적인 인터페이스 및 어셈블러에 관한 것이다.
전자 게임과 멀티미디어 표현(multi-media presentation)을 퍼스널 컴퓨터, 랩톱, 이동 전화, 개인 휴대 정보 단말(PDA) 및 기타 장치들에 집적하는 것이 오늘날 소비자 전자 시장의 주류가 되었다. 이러한 전자게임과 멀티미디어 표현들은 3차원(three-dimensional, 3D) 그래픽으로 알려진 기술을 통해 지원된다. 3D 그래픽을 이용하여 그래픽 이미지들을 생성하고, 그러한 이미지를 2차원(2D) 디스플레이에 투사한다. 이는 상기 그래픽 이미지들을 삼각형, 사각형, 직사각형, 평행사변형, 또는 다른 적절한 표면(surface)과 같은 기본 구성요소들로 분류함으로써 이뤄질 수 있다. 일반적인 그래픽 이미지는 수천 개의 표면들을 와이어프레임(wireframe)이라고 불리는 구조로 모을 것을 요구한다. 상기 와이어프레임의 면들은 디스플레이를 구동하는데 적절한 픽셀(pixel) 정보로 렌더링(rendering)되기 전에 처리될 것이다.
전통적으로, 전적으로 컴퓨터의 중앙처리정치(CPU)를 이용하여 상기 표면들 을 픽셀 정보로 렌더링하는데 이용되는 하드웨어로써 상기 와이어프레임의 구조들을 처리해 왔다. 이러한 방법이 가능하지만, CPU가 오디오 및 사용자 입력들과 같은 다른 처리 기능들 뿐 아니라, 와이어프레임의 표면들에 대한 상당량의 처리를 해야만 한다. 결과적으로, CPU가 과동작하게 되고 실시간으로 다양한 소프트웨어 요구사항들을 지원할 수 없게 될 수 있다. 이 문제는 현실적인 그래픽에 대한 소비자의 요구가 더 증가할수록 두드러지게 될 것이다.
그래서 필요한 것이 CPU로부터 많은 역할을 덜어주는 그래픽 프로세서이다. 그래픽 프로세서는 그래픽 이미지의 화질을 높이기 위하여 효율적인 인터페이스와 어셈블러를 가져야 한다.
본 발명의 일 특징으로, 그래픽 프로세서는 그래픽 이미지를 표현하는 복수의 표면들과 관련된 꼭지점(vertex) 정보를 수신하도록 설정된 메모리를 포함하고, 상기 꼭지점 정보는 상기 표면들 중 적어도 하나와 관련된 하나의 꼭지점에 대한 데이터를 갖는 복수의 데이터 블록들을 포함하며, 상기 데이터 블록들은 거기에 포함된 상기 꼭지점 데이터에 따라 가변 길이를 갖는다. 상기 그래픽 프로세서는 또한 상기 메모리 내의 꼭지점 정보로부터 상기 표면들을 어셈블하도록 설정된 어셈블러, 그리고 상기 어셈블러에 의해 픽셀 정보로 어셈블되는 상기 표면들을 표현하도록 설정된 픽셀 프로세싱 엔진을 포함한다.
본 발명의 다른 특징으로, 그래픽 이미징 방법은 애플리케이션(application) 프로세서로부터 꼭지점 정보를 검색하는 단계를 포함하고, 상기 꼭지점 정보는 그래픽 이미지를 나타내는 복수의 표면들과 관련되며, 상기 꼭지점 정보는 상기 표면들 중 최소 하나와 관련된 하나의 꼭지점에 대한 데이터를 갖는 복수의 데이터 블록들을 포함하며, 상기 각각의 데이터 블록들은 거기에 포함된 상기 꼭지점 데이터에 따라 가변 길이를 갖는다. 상기 방법은 또한 상기 검색된 꼭지점 정보로부터 표면들을 어셈블하는 단계, 그리고 상기 어셈블된 표면들을 픽셀 정보로 렌더링하는 단계를 포함한다.
본 발명의 또 다른 특징으로, 그래픽 프로세서는 애플리케이션 프로세서로부터 꼭지점 정보를 검색하기 위한 수단을 포함하고, 상기 꼭지점 정보는 그래픽 이미지를 나타내는 복수의 표면들과 관련되며, 상기 꼭지점 정보는 상기 표면들 중 적어도 하나와 관련된 하나의 꼭지점에 관한 데이터를 갖는 복수의 데이터 블록들을 포함하며, 상기 각각의 데이터 블록들은 거기에 포함된 꼭지점 데이터에 따라 가변 길이를 갖는다. 상기 그래픽 프로세서는 또한 상기 검색된 꼭지점 정보로부터 표면들을 어셈블하기 위한 수단, 그리고 상기 어셈블된 표면들을 픽셀 정보로 렌더링하기 위한 수단을 포함한다.
본 발명의 또 다른 특징으로, 그래픽 이미징 방법은 애플리케이션 프로세서로부터 꼭지점 정보를 검색하는 단계를 포함하고, 상기 꼭지점 정보는 그래픽 이미지를 나타내는 복수의 표면들과 관련되며, 상기 꼭지점 정보는 상기 애플리케이션 프로세서로부터 배치(batch)로 검색되고, 상기 꼭지점 정보의 각각의 배치들은 둘 이상의 상기 표면들과 관련된다. 상기 방법은 또한 상기 검색된 꼭지점 정보로부터 표면들을 어셈블하는 단계, 그리고 상기 어셈블된 표면들을 픽셀 정보로 렌더링하는 단계를 포함한다.
본 발명의 또 다른 특징으로, 그래픽 프로세서는 그래픽 이미지를 나타내는 복수의 표면들과 관련된 꼭지점 정보 및 상기 꼭지점 정보와 함께 복수의 명령을 수신하도록 설정된 메모리, 상기 메모리의 꼭지점 정보로부터 상기 표면들을 어셈블하도록 설정된 어셈블러, 그리고 핑퐁 프레임 버퍼(ping-pong frame buffer)들을 포함하는 픽셀 처리 엔진을 포함하며, 또한 상기 픽셀 프로세싱 엔진은 상기 메모리 내의 상기 명령들에 응답하여 상기 어셈블된 표면들 중 제 1 부분으로터 생성된 픽셀 정보를 상기 핑퐁 프레임 버퍼들 중 하나로부터 디스플레이에 제공하고, 그와 동시에, 상기 어셈블된 표면들 중 제 2 부분으로부터 생성된 픽셀 정보를 상기 핑퐁 프레임 버퍼들 중 다른 하나에 기록하도록 설정된다.
본 발명의 또 다른 특징으로, 그래픽 이미징 시스템은 꼭지점 정보에 의해 정의되는 복수의 표면들을 포함하는 그래픽 이미지를 생성하도록 설정된 애플리케이션 프로세서를 포함하고, 상기 애플리케이션 프로세서는 핑퐁 버퍼(ping-pong buffer)들을 포함하며 상기 꼭지점 정보의 제 1 배치를 상기 핑퐁 버퍼들 중 하나에 기록하도록 설정된다. 상기 그래픽 이미징 시스템은 또한 상기 애플리케이션 프로세서가 상기 꼭지점 정보의 제 1 배치를 상기 핑퐁 버퍼들 중 하나에 기록하는 동시에 상기 꼭지점 정보의 제 2 배치를 상기 핑퐁 버퍼들 중 다른 하나로부터 검색하도록 설정된 인터페이스를 갖는 그래픽 프로세서를 포함하며, 상기 그래픽 프로세서는 상기 꼭지점 정보의 제 2 배치로부터 어셈블된 표면들을 픽셀 정보로 렌더링하도록 설정된 픽셀 프로세싱 엔진을 더 포함한다.
본 발명의 다른 실시예들이 이하의 실시예로부터 당해 기술 분야에서 통상의 지식을 가진 자에게 용이하게 파악될 수 있을 것이라는 점을 고려하여야 하며, 여기서 본 발명의 다양한 실시예들이 예시적으로 도시되고 기술된다. 실제로, 본 발명은 다른 실시예들이 있을 수 있으며 그 일부 상세부는 모두 본 발명의 사상과 관점을 벗어나지 않는 범위 내에서 다양한 면에서 변형이 가능하다. 따라서, 도면 및 실시예는 본질적으로 예시적인 것이며 이에 제한하는 것으로 고려되어서는 안 된다.
첨부한 도면들과 함께 본 발명의 실시예들은 예로써 제시되는 것이며 이에 제한하고자 하는 것이 아니다:
도 1은 애플리케이션 프로세서의 동작을 나타내는 3D 그래픽 시스템의 개념 블록 다이어그램이다.
도 2는 그래픽 프로세서의 동작을 나타내는 3D 그래픽 시스템의 개념 블록 다이어그램이다.
도 3은 애플리케이션 프로세서와 그래픽 프로세서 간의 인터페이스를 나타내는 3D 그래픽 시스템의 개념 블록 다이어그램이다.
도 4A는 명령들과 꼭지점 정보가 애플리케이션 프로세서로부터 검색되고 그래픽 프로세서의 메모리에 저장되는 방법을 나타내는 개념 다이어그램이다.
도 4B는 도 4A의 그래픽 프로세서의 메모리 내의 꼭지점 정보의 데이터 구조를 나타내는 개념 다이어그램이다.
첨부한 도면과 함께 이하에 제시된 실시예는 본 발명의 다양한 실시예를 기술하고자 하는 것이며 본 발명이 실시될 수 있는 유일한 실시예들을 나타내고자 하는 것은 아니다. 본 실시예는 본 발명의 완전한 이해를 돕기 위한 목적으로 특정한 세부항목을 포함한다. 그러나, 당해 기술분야에서 통상의 지식을 가진 자에게 본 발명이 그러한 특정한 세부항목들 없이도 실시가능하다는 점은 자명할 것이다. 일부 실시예에서, 공지의 구조 및 구성요소들이 본 발명의 사상을 불명확하게 하는 것을 피하기 위해 제시된다.
도 1은 퍼스널 컴퓨터, 랩톱, 이동 전화, PDA, 또는 기타 적절한 장치에 집적된 3D 그래픽 시스템을 나타내는 개념 블록 다이어그램이다. 상기 3D 그래픽 시스템은 애플리케이션 프로세서(102)를 포함할 수 있다. 상기 애플리케이션 프로세서(102)의 목적은 3D 그래픽 이미지들의 와이어프레임 구조들을 생성하고 그러한 이미지들을 와이어프레임으로 변환하는 것이다.
상기 애플리케이션 프로세서(102)는 임의의 소프트웨어 구현물일 수 있다. 도 1에 제시된 상기 3D 그래픽 시스템의 실시예에서, 상기 애플리케이션 프로세서(102)는 외부 기억장치(106)와 마이크로프로세서(104)를 포함한다. 시스템 버스(108)를 이용하여 상기 둘 간의 교신을 지원할 수 있다. 상기 마이크로프로세서(104)는 전자 게임을 위한 3D 그래픽 소프트웨어와 같은 다양한 소프트웨어 프로그램을 실행하기 위한 플랫폼을 제공하는데 이용될 수 있다. 상기 소프트웨어는 공장에서 외부 기억장치(106)에 프로그램되거나, 또는 대안적으로, 동작 중에 무선 링크, 전화 회선 접속, 케이블 모뎀 접속, 디지털 가입자 회선(DSL), 광섬유 링크, 위성 링크, 또는 여타 적당한 통신 링크를 통해 원격 서버로부터 다운로드될 수 있다.
전자 게임 애플리케이션에서, 상기 소프트웨어를 이용하여 상기 게임이 실행될 물리적 환경을 나타내는 가상 3D 세상을 생성할 수 있다. 사용자는 사용자 인터페이스(110)를 조작함으로써 이 가상 3D 세상을 탐험할 수 있다. 상기 사용자 인터페이스(110)는 키패드, 조이스틱, 트랙볼, 마우스, 또는 여타 적절한 장치로서 상기 사용자로 하여금 상기 가상 3D 세상을 이동 - 전진 또는 후진, 상승 또는 하강, 왼쪽 또는 오른쪽으로 움직이게 할 수 있다. 상기 소프트웨어를 이용하여 그가 이 가상 3D 세상을 이동하면서 보게 되는 것들을 나타내는 일련의 3D 그래픽 이미지를 생성할 수 있다.
상기 애플리케이션 프로세서(102)는 또한 상기 시스템 버스(108)에 연결된 DSP(112)를 포함할 수 있다. 상기 DSP(112)는 애플리케이션 특화 알고리듬을 실행하여 상기 마이크로프로세서(104)에 대한 프로세싱 요구를 감소시키는 내장 그래픽 소프트웨어 계층으로써 구현될 수 있다. 상기 DSP(112)를 이용하여 각각의 3D 그래픽 이미지들을 표면들로 분할하여 와이어프레임 구조를 생성시킬 수 있다. 상기 3D 그래픽 시스템의 동작을 나타내기 위하여, 삼각 표면들이 이하의 실시예에서 이용될 것이다. 그러나, 당해 기술분야에서 통상의 지식을 가진자가 여기 기술된 상기 원리들을 정사각, 직사각, 평행사변형, 또는 다른 적절한 표면들과 같은 다른 표면들에도 용이하게 확장시킬 수 있을 것이다.
또한 상기 DSP(112)는 예컨대, 외부 표면을 상기 와이어프레임 구조에 적용하는 것을 포함한 다른 프로세싱 기능들을 수행할 수 있다. 상기 DSP(112)는 또한 다양한 조명 모델(lighting model)들을 외부 표면 요소들에 적용할 수 있다. 후면 제거(Back face culling)가 상기 와이어프레임의 일부분, 특히 상기 와이어프레임의 뒷부분으로서 사용자에게 보이지 않게 되는 부분을 제거하는데 이용될 수 있다. 또한 상기 와이어프레임 구조를 디스플레이의 외부 이미지 부분들을 제거하도록 잘라낼 수 있다.
그리고 나서 상기 와이어프레임 구조는 그 외부 표면 요소들과 함께, DSP(112)에 의해 3D 수리적 공간에서 2D 디스플레이 공간으로 변환될 수 있다. 2D 디스플레이 공간에서, 각 삼각형은 상기 디스플레이 좌표들 및 그 세개의 꼭지점들의 표면 속성들에 의해 정의될 수 있다. 상기 표면 속성들은 깊이(Z), 색상(R,G,B), 반사색(RS, GS, BS), 텍스처(U, V), 그리고 블렌딩(blending) 정보(A)를 포함할 수 있다. 블렌딩 정보는 투명도와 관련되며 하나가 다른 하나 위로 두 가지가 겹쳐질 때, 픽셀의 색상이 다른 픽셀과 어느 정도로 합쳐져야 할 것인지를 설명한다. 각각의 표면에 대한 상기 디스플레이 좌표들과 표면 속성들은 여기서 "표면 정보"로 칭하기로 한다. 상기 DSP(112)에 의해 생성된 표면 정보는 외부 기억장치(106), 또는 대안적으로 상기 DSP의 내장 메모리에 저장될 수 있다.
상기 표면 정보는 또한 각 삼각형의 면적을 포함할 수 있다. 상기 DSP(112)는 상기 삼각형 내의 어느 두 벡터들의 외적(cross product)을 취함으로써 삼각형 의 면적을 계산할 수 있다. 이 면적은 반시계 방향의 꼭지점 순서인 삼각형에 대해 양의 부호를, 그 외의 경우 음의 부호를 가질 것이다. 상기 면적의 부호를 이용하여 이후 상세히 기술하게 될 방법으로써 상기 삼각형을 픽셀 정보로 렌더링할 수 있다.
그래픽 프로세서(114)는 외부 버스(116)를 통해 상기 애플리케이션 프로세서(102)와 통신한다. 브리지(118)를 이용하여 상기 외부 버스(116)와 상기 시스템 버스(108) 간에 데이터를 전송할 수 있다. 상기 그래픽 프로세서(114)의 목적은 상기 애플리케이션 프로세서(102)에 대한 부하를 감소시키는 것이다. 일 실시예로, 상기 그래픽 프로세서(114)는 특화된 하드웨어 구성요소로써 설계되어 그 프로세싱 기능들을 매우 신속하게 처리할 수 있다.
도 2는 그래픽 프로세서의 개념 블록 다이어그램이다. 상기 그래픽 프로세서(114)는 커맨드 엔진(202), 픽셀 프로세싱 엔진(204), 그리고 프레임 버퍼(206a)와 (206b)를 포함할 수 있다. 상기 커맨드 엔진(202)을 이용하여 상기 애플리케이션 프로세서(102)에 의해 생성된 상기 꼭지점 정보로부터 삼각형들을 어셈블하고 상기 삼각형들을 상기 픽셀 프로세싱 엔진(204)에 제공할 수 있다. 이후 상세히 기술될 방법으로, 상기 삼각형들은 상기 애플리케이션 프로세서(102)로부터 수신하는 제 1 명령어 세트에 근거하여 상기 커맨드 엔진(202)에 의해 어셈블될 수 있다. 상기 픽셀 프로세싱 엔진(204)은 각 삼각형을 픽셀 정보로 렌더링하는데 이용될 수 있다. 상기 프레임 버퍼(206a)와 (206b)는 핑퐁 설정으로 구성될 수 있어서 상기 커맨드 엔진(202)이 디스플레이(120)에 표현하기 위해 다른 프레임버퍼로부터 픽셀 정보를 방출(도 1 참조)하는 동안에 상기 픽셀 프로세싱 엔진(204)은 상기 프레임 버퍼들 중 하나에 기록할 수 있다. 상기 커맨드 엔진(202)은 상기 애플리케이션 프로세서(102)로부터 수신하는 제 2 명령어 세트로부터 상기 프레임 버퍼(206a)와 (206b)의 핑퐁 동작을 제어하는데 이용될 수 있다.
픽셀 프로세싱 엔진(204)은 내삽법(interpolation) 프로세스를 이용하여 상기 삼각형들 내의 픽셀의 위치와 상기 세 꼭지점들에서 정의된 속성들에 근거하여 삼각형의 내부를 채움으로써 각각의 삼각형을 픽셀 정보가 되게 하는데 이용될 수 있다. 꼭지점의 각각의 속성은 다음과 같이 상기 디스플레이 좌표 (x,y)의 함수로써 선형 방정식으로 표현될 수 있다:
K(x,y) = Akx + Bky + Ck (1)
여기서 k = Z, A, R, G, B, RS, GS, BS, U, V.
상기 삼각형의 내부는 에지(edge) 방정식들에 의해 정의될 수 있다. 삼각형의 세 에지들은 다음과 같이 상기 디스플레이 좌표 (x,y)의 함수로써 선형 방정식에 의해 나타낼 수 있다:
E0(x,y) = A0x + B0y + C0 (2)
E1(x,y) = A1x + B1y + C1 (3)
E2(x,y) = A2x + B2y + C2 (4)
상기 그래픽 프로세서(114)의 적어도 하나의 실시예에서, 상기 커맨드 엔진(202)은 한 번에 하나의 삼각형을 상기 픽셀 프로세싱 엔진(204)에 제공한다. 특히, 상기 커맨드 엔진(202)은 셋업(setup) 엔진(208)에 상기 디스플레이 좌표 및 삼각형의 세 꼭지점에 대한 속성은 물론 삼각형의 면적으로 이루어진 삼각형을 제공한다. 상기 셋업 엔진(208)은 이 정보를 이용하여 상기 속성 계수(Ak, Bk, Ck) 및 모서리 계수(A0-2, B0-2, C0-2)를 계산할 수 있다. 불필요한 프로세싱 지연을 방지하기 위해, 상기 커맨드 엔진(202)은 상기 셋업 엔진(208)이 현재의 삼각형에 대한 속성 및 모서리 계수의 계산을 끝낸 후 즉시 새로운 삼각형을 상기 셋업 엔진(208)에 제공하도록 구성될 수 있다.
상기 셋업 엔진(208)은 상기 계수들이 계산되는 삼각형을 따라 상기 속성과 모서리 계수들을 쉐이딩(shading) 엔진(210)에 제공하도록 구성될 수 있다. 상기 쉐이딩 엔진(210)을 이용하여 상기 삼각형 내의 각 픽셀에 대해 선형 내삽법을 수행할 수 있다. 이는 다양한 방식으로 수행될 수 있다. 예를 들어, 상기 쉐이딩 엔진(210)은 상기 삼각형 주위에 바운딩 박스(bounding box)를 생성하고, 그리고 나서, 상기 바운딩 박스를 통해 래스터 스캔(raster scan) 방법으로 한 픽셀씩 진행한다. 각 픽셀에 대해, 상기 쉐이딩 엔진(210)은 상기 픽셀이 상기 삼각형 내에 있는지를 상기 등식 (2) - (4)에 제시된 모서리 등식들을 이용하여 결정한다. 상기 픽셀은 E0(x,y), E1(x,y) 및 E2(x,y)가 모두 영보다 크거나 같으면 상기 삼각형 내부에 있는 것으로 간주 된다. 이 관계는 상기 삼각형이 반시계 꼭지점 순서로 상기 픽셀 프로세싱 엔진(204)에 제공된다는 것을 전제로 한다. 이는 상기 애플리 케이션 프로세서(102) 또는 대안적으로 상기 커맨드 엔진(202)에 의해 소프트웨어로 달성가능하다. 상기 커맨드 엔진(202)이 상기 삼각형들의 적합한 꼭지점 순서를 보장할 책임이 있다면, 커맨드 엔진은 상기 삼각형의 면적의 부호 비트를 평가함으로써 이를 수행할 것이다. 전술한 바와 같이, 상기 애플리케이션 프로세서(102)에 의해 계산되는 상기 삼각형의 면적은 반시계 꼭지점 순으로는 삼각형에 대해 양의 부호를, 그렇지 않으면 음의 부호를 가질 것이다. 따라서, 상기 커맨드 엔진(202)은 상기 부호 비트가 음수라면 상기 꼭지점들이 상기 픽셀 프로세싱 엔진(204)에 제공되는 순서를 반대로 할 수 있다. 어떠한 경우에도, 만일 상기 쉐이딩 엔진(210)이 상기 픽셀이 상기 삼각형 내에 있지 않다고 결정하면, 상기 쉐이딩 엔진은 다음 픽셀로 넘어간다. 그러나, 상기 쉐이딩 엔진(210)이 상기 픽셀이 삼각형 내부에 있다고 결정하면, 상기 쉐이딩 엔진(210)은 등식 (1)로부터 상기 픽셀의 속성들을 계산할 수 있다.
HSR(숨겨진 표면 제거, Hidden Surface Removal) 엔진(212)을 이용하여 한 물체가 다른 물체 앞에 있을 때 숨겨진 픽셀들을 제거할 수 있다. 이는 동일한 디스프레이 좌표를 갖는 이전에 렌더링된 픽셀의 깊이 속성에 대해 새로운 픽셀의 깊이 속성을 비교하고 보이지 않는 픽셀들을 버림으로써 이뤄질 수 있다.
상기 HSR 엔진(212)으로부터 각각의 가시(visible) 픽셀의 속성들이 텍스처 엔진(214)에 제공될 수 있다. 상기 텍스처 엔진(214)은 상기 픽셀의 텍스처 속성들을 이용하여 메모리로부터 텍스처 데이터를 검색(도시하지 않음)할 수 있다. 상기 픽셀의 속성들에 따른 상기 텍스처 데이터는 블렌딩(blending) 엔진(216)에 제 공되어 상기 텍스처 데이터로써 픽셀을 혼합(blend)할 수 있다. 추가적으로 상기 픽셀은 동일한 디스플레이 좌표들을 갖는 이전에 렌더링된 어떠한 픽셀들과도 혼합되어 투명(transparency) 효과를 생성할 수 있다. 그 결과들은 상기 프레임 버퍼들(206a) 및 (206b)에 저장될 수 있다.
도 3은 상기 커맨드 엔진의 개념 블록 다이어그램이다. 상기 애플리케이션 프로세서(102)의 메모리는 핑퐁 설정으로 정렬된 꼭지점 버퍼(310a)와 (310b)로 구성될 수 있어서 상기 DSP(112)는 상기 커맨드 엔진(202)가 하나의 꼭지점 버퍼로부터 읽는 동안 다른 꼭지점 버퍼 중 하나에 기록할 수 있다. 상기 핑퐁 설정은 상기 커맨드 엔진(202)로 하여금 한 번에 하나의 삼각형보다는 배치(batch)씩 꼭지점 정보를 검색할 수 있게 하여 준다. 상기 커맨드 엔진(202)에 의한 단일 삼각형 요청들은 상기 애플리케이션 프로세서(102)에 대한 인터럽트 수를 증가시켜서, 속도를 저하시키고 성능 불량을 야기할 수 있다.
상기 커맨드 엔진(202)은 버스 인터페이스(302)와 데이터 큐(queue)를 포함할 수 있다. 상기 데이터 큐는 어떤 종류의 저장 장치일 수 있는데, 예를 들어 선입선출(first-in-first-out, FIFO) 메모리(304)를 포함한다. 상기 커맨드 엔진(202)은 또한 상기 애플리케이션 프로세서(102)의 꼭지점 버퍼들(310a)와 (310b)에 액세스를 요청하여 명령들과 꼭지점 정보로 상기 FIFO(304)를 채우는데 이용될 수 있는 제어기(306)를 포함할 수 있다. 상기 제어기(306)는 측파대(sideband) 시그널링(signaling)을 이용하여 상기 꼭지점 버퍼(310a)와 (310b)에 엑세스하기 위해 DSP(112)에 인터럽트를 전송할 수 있다. 상기 인터럽트에 응답하여, 상기 DSP(112)는 검색할 꼭지점 정보의 배치(batch)에 대한 시작 및 정지 주소들을 전송함으로써 상기 꼭지점 버퍼들 중 하나에 액세스하는 것을 허용할 수 있다. 상기 DSP(112)가 상기 제어기(306)로부터 인터럽트를 수신할 때 상기 버퍼들 중 하나에 기록중이라면, 이는 상기 커맨드 엔진(202)가 다른 꼭지점 버퍼로부터 명령들 및 꼭지점 정보를 읽는 것을 허용한다. 상기 DSP(112)가 상기 꼭지점 버퍼에 기록하는 것을 끝낼 때, 상기 버퍼는 상기 DSP(112)가 제어기(306)으로부터 다른 인터럽트를 수신할 때까지 DSP(112)에 의해 고정된다. 상기 커맨드 엔진(202)은 더 많은 꼭지점 정보에 대해 상기 DSP(112)로 인터럽트를 전송하기 전에 완전히 상기 꼭지점 버퍼를 읽는다.
상기 명령들과 꼭지점 정보는 도 4A에 도시한 바와 같이 상기 FIFO 메모리에 위치할 수 있다. 상기 FIFO 메모리는 상기 FIFO 메모리의 하단(bottom)으로부터 시프트 인(shift in)되고 상단(top)을 통해 시프트 아웃(shift out)되는 상기 명령들과 꼭지점 정보를 가진 다수의 메모리 블록들을 포함한다. 상기 FIFO 메모리가 첫 두 메모리 블록(401)과 (402)를 점유하는 명령들과 함께 도시되었고, 각각의 꼭지점에 대해 하나의 메모리 블록(403-408)을 차지하는 여섯 꼭지점들에 대한 꼭지점 정보가 이어진다. 다음 두 메모리 블록(409)와 (410)을 차지하는 두 명령들에 이어 다음 일곱 꼭지점들에 대한 꼭지점 정보가 도시되고, 재차 각각의 꼭지점들에 대해 상기 꼭지점 정보는 하나의 메모리 블록(411-417)을 점유한다.
도 4B는 각 메모리 블록의 상기 꼭지점 정보에 대한 데이터 구조의 예를 보 여 준다. 본 예에서, 상기 메모리 블록은 6 × 32 - 비트이다. 제 1 어드레스(A1)는 꼭지점이 속하는 상기 삼각형의 면적을 지시하는 32 - 비트의 데이터를 저장하는데 이용될 수 있다. 제 2 어드레스(A2)는 상기 꼭지점에 대한 디스플레이 좌표들을 저장하는데 이용될 수 있다. 상기 디스플레이 좌표들은 16-비트 x-좌표와 16-비트 y-좌표를 포함한다. 상기 꼭지점의 속성들은 최종 네개의 어드레스들(A3-A6)에 저장될 수 있다. 예를 들어, 상기 꼭지점의 깊이, 또는 z-좌표,는 제 3 어드레스(A3)에 저장될 수 있다. 상기 꼭지점에 대한 8-비트 적(R)색 구성요소와 8-비트 녹(G)색 구성요소가 또한 제 3 어드레스(A3)에 저장될 수 있다. 상기 꼭지점에 대한 8-비트 청(B)색 구성요소는 세개의 8-비트 반사율 구성요소(RS, GS 및 BS)와 함께 제 4 어드레스(A4)에 저장될 수 있다. 8-비트 블렌딩 값(A)은 16-비트 U 텍스처 좌표와 함께 제 5 어드레스(A5)에 저장될 수 있다. 마지막으로, 16-비트 V 텍스처 좌표는 제 6 어드레스(A6)에 저장될 수 있다.
도 4A에서 용이하게 알 수 있듯이, 상기 애플리케이션 프로세서(102)와 커맨드 엔진 간의 외부 버스(116)의 트래픽은 삼각형들을 픽셀정보로 렌더링하는데 요구되는 꼭지점들의 수를 감소시킴으로써 줄어들 수 있다. 이는 상기 삼각형들을 공통의 꼭지점들을 공유하는 다수의 삼각형들로써 삼각형 스트립(strip) 또는 팬(fan)으로 배열함으로써 이뤄질 수 있다. 예를들어, 통상 12 꼭지점들을 필요로 하는 네 삼각형들이 6 꼭지점들을 가진 삼각형 스트립으로 나타낼 수 있다. 또한, 통상 15 꼭지점들을 필요로 하는 다섯 삼각형들이 7 꼭지점으로 된 삼각형 팬으로 나타낼 수 있다.
도 3 및 4A를 참조하면, 어셈블러(308)를 이용하여 상기 명령들을 번역하고 삼각형들을 어셈블할 수 있다. 대안적으로, 상기 제어기(306)는 상기 명령들을 해석하고 상기 어셈블러(308)가 삼각형들을 어셈블하도록 설정하는데 이용될 수 있다. 상기 삼각형들이 스트립 또는 팬들로부터 어셈블되는 방법은 시스템 요구사항 및 전반적인 설계 제약사항들에 따라 달라질 수 있다. 3D 그래픽 시스템의 일 실시예로, 상기 삼각형들의 어셈블리(assembly)는 상기 삼각형 정보가 수신되는 순서에 기초할 수 있다. 이 실시예에서, 상기 꼭지점 정보에 앞선 두 명령들을 이용하여 이어지는 상기 꼭지점 정보가 스트립 또는 팬 형태인지를 식별하고, 상기 프레임 버퍼들 중 어느 하나에 상기 결과적인 픽셀 정보가 쓰여져야 할 것인지를 지시할 수 있다.
상기 어셈블러(308)는 상기 FIFO 메모리(304)로부터 수신하는 첫 세 꼭지점들로써 상기 스트립의 제 1 삼각형을 정의할 수 있다. 상기 제 1 삼각형의 면적은 상기 세 꼭지점 중 어느 것에 대한 꼭지점 정보에 포함될 수 있다. 상기 스트립의 제 2 삼각형은 수신하는 그 다음 꼭지점과 제1 삼각형에 대해 최후로 수신된 두 꼭지점들로부터 상기 어셈블러(308)에 의해 정의될 수 있다. 상기 제 2 삼각형의 면적은 상기 그 다음 꼭지점에 대한 꼭지점 정보에 포함될 수 있다. 상기 제 1 삼각형에 대한 꼭지점들이 반시계 방향으로 상기 어셈블러에 제공되지만, 상기 제 2 삼각형에 대한 꼭지점들은 시계 방향으로 상기 어셈블러에 제공된다. 따라서, 상기 어셈블러(308)를 이용하여 상기 제 2 삼각형을 상기 픽셀 프로세싱 엔진에 제공하기에 앞서 상기 최종 두 꼭지점들의 순서를 반전시킬 수 있다.
상기 스트립의 나머지 삼각형들은 유사한 방식으로 정의될 수 있다. 상기 어셈블러(308)를 이용하여 상기 마지막 두 꼭지점들의 순서를 반전시킴으로써 마지막 삼각형이 반시계 꼭지점 순으로 픽셀 프로세싱 엔진에 제공될 수 있다.
상기 팬의 삼각형들은 유사한 방법으로 구성될 수 있다. 상기 어셈블러(308)는 상기 FIFO 메모리(304)로부터 수신하는 첫 세 꼭지점로써 상기 팬의 제 1 삼각형을 정의할 수 있으며, 상기 제 1 삼각형의 면적은 상기 꼭지점들 중 어느 것에 대한 꼭지점 정보에 포함될 수 있다. 그러나, 상기 팬 배열에서, 상기 수신된 제 1 꼭지점은 모든 삼각형에 대해 공통 꼭지점이다. 따라서, 상기 팬의 제 2 삼각형은 상기 공통 꼭지점, 수신할 다음 꼭지점, 그리고 수신한 마지막 꼭지점로써 상기 어셈블러(308)에 의해 정의될 수 있다. 상기 제 2 삼각형의 면적은 상기 수신할 다음 꼭지점의 꼭지점 정보에 포함될 수 있다. 상기 팬의 제 3 삼각형은 상기 공통 꼭지점, 수신할 다음 꼭지점, 그리고 수신된 마지막 꼭지점으로부터 유사한 방법으로 정의될 수 있다. 상기 제 3 삼각형의 면적은 상기 다음 꼭지점에 대한 꼭지점 정보에 포함될 수 있다. 상기 어셈블러(308)를 이용하여 상기 팬의 각 삼각형에 대한 최종 두 삼각형들의 순서를 반전시킬 수 있어서 각 삼각형이 반시계 꼭지점 순서로 상기 픽셀 프로세싱 엔진에 제공될 수 있다.
도 2를 재참조하면, 상기 커맨드 엔진(202)은 초당 100,000 또는 그 이상의 삼각형을 처리하는 것을 지원하도록 요구받을 수 있다. 이러한 요구를 만족시키는 상기 커맨드 엔진(202)의 능력은 주로 상기 애플리케이션 프로세서(102)에서 상기 그래픽 프로세서(114)로 전송될 수 있는 정보량에 좌우될 수 있다. 삼각형을 스트 립 또는 팬 형태로 묶는 압축 알고리듬을 이용하여 이러한 요구를 충족시키는데 요구되는 버스(bus) 대역폭을 상당히 감소시킬 수 있다. 그러나, 다른 기술들을 채택하여 추가로 상기 애플리케이션 프로세서(102)와 그래픽 프로세서(114) 사이의 데이터 전송 효율을 증가시킬 수 있다. 예를 들어, 가변 길이 데이터 구조가 각 꼭지점에 대해 이용될 수 있다. 상기 꼭지점 데이터 구조의 길이는 상기 상기 렌더링 프로세스 동안 요구되는 속성들에 따라서 바뀔 수 있다. 예를 들어, 어떠한 수의 삼각형의 표면이 텍스처를 요구하지 않을 수 있고, 그래서 텍스처 좌표들은 상기 도 4B의 메모리 블록에서 생략될 수 있다. 그러한 경우, 상기 꼭지점 데이터를 저장하는데 필요한 메모리 블록은 6 × 32 비트 메모리 블록에서 5 × 32 비트 메모리 블록으로 감소될 수 있고 상기 꼭지점에 대해 전송될 필요가 있는 정보량은 23 바이트에서 17 바이트로 줄어들 수 있다. 상기 삼각형의 면적은 스트립 또는 팬 어느 것 중의 제 1 삼각형 내의 세 꼭지점 중 둘에 대한 꼭지점 정보와 함께 전송될 필요가 없기 때문에, 이러한 삼각형들에 대한 상기 메모리 블록 또한 5 × 32 비트 메모리 블록으로 줄어들 수 있다.
여기 개시된 실시예들과 함께 기술된 다양한 예시적 논리 블록, 모듈 및 회로들은 범용 프로세서(general purpose processor), 디지털 신호 처리 장치(DSP), 주문형 반도체(ASIC), 필드 프로그래머블 게이트 어레이(field programmable gate array, FPGA) 또는 다른 프로그램가능 논리 컴포넌트(programmable logic component), 이산 게이트(discrete gate) 또는 트랜지스터 로직(transistor logic), 이산 하드웨어 컴포넌트(discrete hardware component), 또는 여기 기술된 기능들을 수행하도록 설계된 상기의 어떠한 조합으로써 구현되거나 수행될 수 있다. 범용 프로세서는 마이크로프로세서일 수 있지만, 대안으로서, 상기 프로세서는 여하한 종래의 프로세서, 제어기, 마이크로제어기(microcontroller), 또는 상태 머신(state machine)일 수 있다. 프로세서는 또한 컴퓨팅 컴포넌트, 예컨대, DSP와 마이크로프로세서의 조합, 다수의 마이크로프로세서, DSP 코어와 함께 하나 이상의 마이크로프로세서, 또는 임의의 다른 그러한 구성으로 구현가능하다.
여기 개시한 실시예들과 더불어 기술된 방법 및 알고리듬은 하드웨어, 프로세서에 의해 실행되는 소프트웨어 모듈, 또는 상기 둘의 조합에 직접 내장될 수 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터(register), 하드디스크, 분리형 디스크(removable disk), CD-ROM, 또는 당해 기술분야에 공지된 여타 형태의 저장매체에 탑재될 수 있다. 저장매체는 상기 프로세서에 연결될 수 있어서 상기 프로세서가 상기 저장매체로부터 정보를 읽고, 상기 저장매체로 정보를 기록할 수 있다. 대안으로서, 상기 저장매체는 상기 프로세서의 구성요소일 수 있다. 상기 프로세서 및 저장매체는 ASIC에 탑재될 수 있다. 상기 ASIC은 전송 및/또는 수신 컴포넌트, 또는 다른 것에 탑재될 수 있다. 대안으로서, 상기 프로세서 및 상기 저장매체는 상기 전송 및/또는 수신 컴포넌트, 또는 다른 것 내의 이산 컴포넌트로서 탑재될 수 있다.
앞서 상기 개시된 실시예들은 당해 기술분야에서 통상의 지식을 가진 자로 하여금 본 발명을 생산 또는 이용할 수 있게 하기 위한 것이다. 이러한 실시예들에 대해 다양한 변형이 당업자에게 명백할 것이며, 여기에 정의된 일반적인 원리들 은 본 발명의 사상과 범위를 벗어남이 없이 다른 실시예들에 적용될 수 있다. 따라서, 본 발명은 여기 제시된 실시예들에 한정하고자 하는 것이 아니라, 청구범위에 따른 전 범위에 따르고자 하는 것이며, 특별히 언급하지 않은 경우 단수의 구성요소들은 "하나 또는 단 하나"를 의미하기보다는 오히려 "하나 이상"을 의미하는 것이다. 당해 기술분야에서 통상의 지식을 가진 자에게 공지되거나 또는 추후 공지될 수 있는 것으로서 본 명세서를 통틀어 제시된 다양한 실시예들의 구성요소들에 대한 모든 구조적 그리고 기능적 균등물은 여기에 참조로서 명백히 편입되며 청구범위에 포함된다. 또한, 여기에 개시되지 않은 것일지라도 그러한 개시가 명확히 청구범위에 열거되었는지 여부와 무관하게 공중에 제공하고자 하는 것이 아니다. 어떠한 구성요소도 상기 구성요소가 명확히 "수단"이라는 어구를 이용하여 열거되거나 또는, 방법 청구항의 경우에, 상기 구성요소가 "단계"라는 어구를 이용하여 열거되지 않았다면, 35 U.S.C. §112, 6절 조항 하에서 해석되지 않는다.

Claims (56)

  1. 3D 그래픽 이미지를 나타내는 다수의 표면들과 관련된 꼭지점(vertex) 정보를 수신하도록 구성되는 메모리 - 여기서 상기 메모리는 다수의 메모리 블록들을 포함하고, 상기 각각의 메모리 블록은 상기 표면들 중 적어도 하나와 관련된 하나의 꼭지점에 대한 데이터를 가지며, 상기 각각의 메모리 블록은 그 내부에 포함된 상기 꼭지점 정보에 상응하는 가변 길이 데이타 구조를 가짐 - ;
    상기 메모리의 상기 꼭지점 정보로부터 상기 표면들을 어셈블링(assemble)하도록 구성된 어셈블러(assembler); 및
    상기 어셈블러에 의해 어셈블링된 상기 표면들을 픽셀(pixel) 정보로 렌더링(render)하도록 구성된 픽셀 프로세싱 엔진(pixel processing engine)을 포함하는 그래픽 프로세서(graphic processor).
  2. 제 1 항에 있어서,
    상기 어셈블러는 추가로 모든 상기 어셈블링된 표면들을 상기 픽셀 프로세싱 엔진에 시계방향 또는 반시계 방향 꼭지점 순서로 제공하도록 구성된 그래픽 프로세서.
  3. 제 1 항에 있어서,
    상기 각각의 표면은 삼각형을 포함하는 그래픽 프로세서.
  4. 삭제
  5. 제 1 항에 있어서,
    상기 메모리는 추가로 상기 꼭지점 정보와 함께 다수의 명령들을 수신하도록 구성되며, 상기 명령들 중 적어도 하나는 상기 꼭지점 정보의 일부가 삼각형 스트립 또는 삼각형 팬으로 포맷(format)되는지를 지시하고, 상기 어셈블러는 추가로 상기 명령 중 적어도 하나로부터 상기 꼭지점 정보의 상기 일부에 관련된 상기 표면들을 어셈블링하도록 구성된 그래픽 프로세서.
  6. 제 1 항에 있어서,
    상기 각각의 꼭지점들에 대한 상기 데이터는 디스플레이(display) 좌표들과 속성 정보를 포함하고, 상기 각각의 꼭지점들에 대한 상기 메모리 블록에 대한 상기 데이타 구조의 길이는 그 안에 포함된 상기 속성 정보의 양에 상응하는 그래픽 프로세서.
  7. 제 6 항에 있어서,
    상기 속성 정보는 깊이, 색상, 투명도, 반사(specular) 색, 텍스처(texture), 또는 블렌딩(blending) 정보를 포함하는 그래픽 프로세서.
  8. 제 1 항에 있어서,
    상기 메모리는 추가로 상기 꼭지점 정보와 함께 다수의 명령들을 수신하도록 구성되고, 상기 픽셀 프로세싱 엔진은 핑퐁 프레임 버퍼(ping-pong frame buffer)들을 포함하며, 상기 픽셀 프로세싱 엔진은 상기 메모리 내의 명령들에 응답하여, 추가로 상기 어셈블러에 의해 어셈블링된 상기 표면들의 제 1 부분으로부터 생성된 상기 픽셀 정보를 상기 핑퐁 프레임 버퍼들 중 하나로부터 디스플레이로 제공하며, 그와 동시에 상기 어셈블러에 의해 어셈블링된 상기 표면들의 제 2 부분으로부터 생성된 상기 픽셀 정보를 상기 핑퐁 프레임 버퍼들 중 다른 하나에 기록하도록 추가로 구성된 그래픽 프로세서.
  9. 제 1 항에 있어서,
    애플리케이션 프로세서로부터 둘 이상의 상기 표면들과 관련된 상기 꼭지점 정보의 배치(batch)를 검색하여 상기 배치를 상기 메모리에 제공하도록 구성된 인터페이스를 더 포함하는 그래픽 프로세서.
  10. 제 9 항에 있어서,
    상기 인터페이스는 추가로 상기 애플리케이션 프로세서에 상기 배치에 대한 요청을 전송하고, 상기 애플리케이션 프로세서로부터 상기 애플리케이션 프로세서 내에 상기 배치에 대한 버퍼 위치에 관련된 정보를 수신하며, 상기 버퍼 위치로부터 상기 배치를 검색함으로써 상기 애플리케이션 프로세서로부터 상기 꼭지점 정보의 배치를 검색하도록 추가로 구성되는 그래픽 프로세서.
  11. 애플리케이션 프로세서로부터 꼭지점 정보를 검색(retrieve)하고 상기 꼭지점 정보를 메모리에 저장하는 단계 - 상기 꼭지점 정보는 그래픽 이미지를 나타내는 다수의 표면들과 관련되고, 상기 메모리는 다수의 메모리 블록들을 포함하며 상기 각각의 메모리 블록은 각각 상기 표면들 중 적어도 하나와 관련된 하나의 꼭지점에 대한 데이터를 가지며, 상기 각각의 메모리 블록은 그 내부에 포함된 상기 꼭지점 정보에 상응하는 가변 길이 데이타 구조를 가짐 - ;
    상기 검색된 꼭지점 정보로부터 상기 표면들을 어셈블링 하는 단계; 및
    상기 어셈블된 표면들을 픽셀 정보로 렌더링하는 단계를 포함하는 그래픽 이미징(imaging) 방법.
  12. 제 11 항에 있어서,
    상기 모든 표면은 시계방향 또는 반시계 방향 꼭지점 순서로 어셈블링되는 그래픽 이미징 방법.
  13. 제 11 항에 있어서,
    상기 각각의 표면은 삼각형을 포함하는 그래픽 이미징 방법.
  14. 삭제
  15. 제 11 항에 있어서,
    상기 애플리케이션 프로세서로부터 상기 꼭지점 정보와 함께 다수의 명령을 검색하는 단계를 더 포함하며, 여기서 상기 명령 중 적어도 하나는 상기 꼭지점 정보의 일부가 삼각형 스트립 또는 삼각형 팬으로 포맷 되었는지를 지시하고, 상기 꼭지점 정보의 상기 일부에 관련된 상기 표면들은 상기 명령 중 상기 적어도 하나로부터 어셈블링되는 그래픽 이미징 방법.
  16. 제 11 항에 있어서,
    상기 각각의 꼭지점에 대한 상기 정보는 디스플레이 좌표들과 속성 정보를 포함하고, 상기 각각의 꼭지점에 대한 상기 메모리 블록에 대한 상기 데이타 구조의 길이는 그 안에 포함된 상기 속성 정보의 양에 상응하는 그래픽 이미징 방법.
  17. 제 16 항에 있어서,
    상기 속성 정보는 깊이, 색상, 투명도, 반사 색, 텍스처, 또는 블렌딩 정보를 포함하는 그래픽 이미징 방법.
  18. 제 11 항에 있어서,
    상기 애플리케이션 프로세서로부터 상기 꼭지점 정보와 함께 다수의 명령들을 수신하는 단계, 상기 명령들에 응답하여, 상기 어셈블링된 표면들의 제 1 부분으로부터 생성된 상기 픽셀 정보를 제 1 핑퐁 프레임 버퍼로부터 디스플레이에 제공하는 단계, 및 그와 동시에 상기 어셈블링된 표면들의 제 2 부분으로부터 생성된 상기 픽셀 정보를 제 2 핑퐁 프레임 버퍼에 기록하는 단계를 더 포함하는 그래픽 이미징 방법.
  19. 제 11 항에 있어서,
    상기 꼭지점 정보는 상기 애플리케이션 프로세서로부터 배치로 검색되고, 상기 꼭지점 정보의 각각의 배치들은 둘 이상의 상기 표면에 관련된 그래픽 이미징 방법.
  20. 제 19 항에 있어서,
    상기 각각의 배치들은 상기 애플리케이션 프로세서에 상기 배치에 대한 요청을 전송하고, 상기 애플리케이션 프로세서로부터 상기 애플리케이션 프로세서 내의 상기 배치에 대한 버퍼위치에 관련된 정보를 수신하여, 상기 버퍼 위치로부터 상기 배치를 검색함으로써 상기 애플리케이션 프로세서로부터 검색되는 그래픽 이미징 방법.
  21. 제 11 항에 있어서,
    상기 애플리케이션 프로세서는 핑퐁 버퍼들을 포함하고, 상기 방법은 상기 꼭지점 정보의 제 1 배치를 상기 핑퐁 버퍼들 중 하나에 기록하고, 상기 애플리케이션 프로세서가 상기 꼭지점 정보의 상기 제 1 배치를 상기 핑퐁 버퍼들 중 상기 하나에 기록하는 것과 동시에 상기 애플리케이션 프로세서로부터 상기 핑퐁 버퍼들 중 다른 하나로부터의 상기 꼭지점 정보의 제 2 배치를 검색하도록 상기 애플리케이션 프로세서를 이용하는 단계를 더 포함하는 그래픽 이미징 방법.
  22. 애플리케이션 프로세서로부터 꼭지점 정보를 검색하기 위한 수단과 상기 꼭지점 정보를 저장하기 위한 수단을 포함하고,
    상기 꼭지점 정보는 그래픽 이미지를 나타내는 다수의 표면들과 관련되고, 상기 저장 수단은 다수의 메모리 블록들을 포함하며 상기 각각의 메모리 블록은 적어도 하나의 상기 표면들과 관련된 하나의 꼭지점에 대한 데이터를 가지며, 상기 각각의 메모리 블록은 그 내부에 포함된 상기 꼭지점 정보에 상응하는 가변 길이 데이타 구조를 가지며,
    상기 검색된 꼭지점 정보로부터 상기 표면들을 어셈블링하기 위한 수단; 및
    상기 어셈블링된 표면들을 픽셀 정보로 렌더링하기 위한 수단을 포함하는 그래픽 프로세서.
  23. 그래픽 이미지를 나타내는 다수의 표면들과 관련된 꼭지점 정보 및 상기 꼭지점 정보와 함께 다수의 명령들을 저장하도록 구성된 메모리;
    애플리케이션 프로세서로부터 상기 꼭지점 정보의 배치를 검색하고 상기 배치를 상기 메모리에 제공하도록 구성되는 인터페이스로서, 상기 꼭지점 정보의 배치는 둘 이상의 상기 표면들과 관련되는, 인터페이스;
    상기 메모리 내의 상기 꼭지점 정보로부터 상기 표면들을 어셈블링하도록 구성된 어셈블러; 및
    상기 어셈블링된 표면들을 픽셀 정보로 렌더링하도록 구성된 픽셀 프로세싱 엔진을 포함하는 그래픽 프로세서.
  24. 제 23 항에 있어서,
    상기 인터페이스는 추가로 상기 애플리케이션 프로세서에 상기 꼭지점 정보의 배치에 대한 요청을 전송하고, 상기 애플리케이션 프로세서로부터 상기 애플리케이션 프로세서 내의 상기 배치에 대한 버퍼 위치에 관련된 정보를 수신하여, 상기 버퍼 위치로부터 상기 배치를 검색함으로써 상기 꼭지점 정보의 배치를 검색하도록 구성되는 그래픽 프로세서.
  25. 제 23 항에 있어서,
    상기 메모리는 각각이 상기 표면들 중 적어도 하나에 관련된 하나의 꼭지점에 대한 데이터를 갖는 다수의 메모리 블록을 포함하고, 상기 각각의 메모리 블록은 그 안에 포함된 상기 꼭지점 정보에 상응하는 가변 길이 데이타 구조를 갖는 그래픽 프로세서.
  26. 제 25 항에 있어서,
    상기 각각의 꼭지점들에 대한 상기 데이터는 디스플레이 좌표들과 속성 정보를 포함하고, 상기 각각의 꼭지점들에 대한 상기 메모리 블록에 대한 데이타 구조의 길이는 그 안에 포함된 상기 속성 정보의 양에 상응하는 그래픽 프로세서.
  27. 제 26 항에 있어서,
    상기 속성 정보는 깊이, 색상, 투명도, 반사 색, 텍스처, 또는 블렌딩 정보를 포함하는 그래픽 프로세서.
  28. 제 23 항에 있어서,
    상기 각각의 표면들은 삼각형을 포함하는 그래픽 프로세서.
  29. 삭제
  30. 제 28 항에 있어서,
    상기 메모리는 추가로 상기 꼭지점 정보와 함께 제 2 복수의 명령들을 수신하도록 구성되고, 상기 제 2 복수의 명령들 중 적어도 하나는 상기 꼭지점 정보의 일부가 삼각형 스트립 또는 삼각형 팬으로 포맷되었는지를 지시하며, 상기 어셈블러는 추가로 상기 제 2 복수의 명령들 중 적어도 상기 하나로부터 상기 꼭지점 정보의 상기 일부에 관련된 상기 삼각형을 어셈블링하도록 추가로 구성되는 그래픽 프로세서.
  31. 제 23 항에 있어서,
    상기 어셈블러는 추가로 상기 모든 어셈블링된 표면들을 상기 픽셀 프로세싱 엔진에 시계방향 또는 반시계 방향 꼭지점 순서로 제공하도록 추가로 구성되는 그래픽 프로세서.
  32. 애플리케이션 프로세서로부터 꼭지점 정보를 검색하는 단계로서, 여기서 상기 꼭지점 정보는 그래픽 이미지를 나타내는 다수의 표면들과 관련되고, 상기 꼭지점 정보는 상기 애플리케이션 프로세서로부터 배치로 검색되며, 상기 꼭지점 정보의 각각의 상기 배치들은 상기 둘 이상의 표면과 관련되는, 꼭지점 정보를 검색하는 단계;
    상기 검색된 꼭지점 정보로부터 상기 표면들을 어셈블링 하는 단계; 및
    상기 어셈블링된 표면들을 픽셀 정보로 렌더링하는 단계를 포함하는 그래픽 이미징 방법.
  33. 제 32 항에 있어서,
    상기 애플리케이션 프로세서에 대해 상기 배치에 대한 요청을 전송하고, 상기 애플리케이션 프로세서로부터 상기 애플리케이션 프로세서 내의 상기 배치에 대한 버퍼 위치에 관련된 정보를 수신하고, 그리고 상기 버퍼 위치로부터 상기 배치를 검색함으로써 상기 각각의 배치가 상기 애플리케이션 프로세서로부터 검색되는 그래픽 이미징 방법.
  34. 제 32 항에 있어서,
    상기 메모리는 각각 상기 표면들 중 적어도 하나에 관련된 하나의 꼭지점에 대한 데이터를 갖는 다수의 메모리 블록을 포함하고, 상기 각각의 메모리 블록은 그 안에 포함된 상기 꼭지점 데이터에 상응하는 가변 길이 데이타 구조를 갖는 그래픽 이미징 방법.
  35. 제 34 항에 있어서,
    상기 각각의 꼭지점들에 대한 상기 데이터는 디스플레이 좌표들과 속성 정보를 포함하며, 상기 각각의 꼭지점들에 대한 상기 메모리 블록에 대한 상기 데이타 구조의 길이는 그 안에 포함된 상기 속성 정보의 양에 상응하는 그래픽 이미징 방법.
  36. 제 35 항에 있어서,
    상기 속성 정보는 깊이, 색상, 투명도, 반사 색, 텍스처, 또는 블렌딩 정보를 포함하는 그래픽 이미징 방법.
  37. 제 32 항에 있어서,
    상기 각각의 표면들은 삼각형을 포함하는 그래픽 이미징 방법.
  38. 삭제
  39. 제 37 항에 있어서,
    상기 애플리케이션 프로세서로부터의 상기 꼭지점 정보와 함께 다수의 제 2 명령들을 검색하는 단계로서, 상기 제 2 복수의 명령들 중 적어도 하나는 상기 꼭지점 정보의 일부가 삼각형 스트립 또는 삼각형 팬으로 포맷되었는지를 지시하고, 상기 꼭지점 정보의 상기 일부에 관련된 상기 삼각형들은 상기 제 2 복수의 명령들 중 상기 적어도 하나로부터 어셈블링되는, 다수의 제 2 명령들을 검색하는 단계를 더 포함하는 그래픽 이미징 방법.
  40. 제 32 항에 있어서,
    상기 모든 표면들은 시계방향 또는 반시계방향 꼭지점 순서로 어셈블링되는 그래픽 이미징 방법.
  41. 삭제
  42. 꼭지점 정보에 의해 정의된 다수의 표면들을 포함하는 그래픽 이미지를 생성하도록 구성되는 애플리케이션 프로세서로서, 상기 애플리케이션 프로세서는 핑퐁 버퍼들을 포함하고 상기 꼭지점 정보의 제 1 배치를 상기 핑퐁 버퍼들 중 하나에 기록하도록 추가로 구성되는, 애플리케이션 프로세서; 및
    상기 애플리케이션 프로세서가 상기 꼭지점 정보의 제 1 배치를 상기 핑퐁 버퍼들 중 상기 하나에 기록함과 동시에 상기 꼭지점 정보의 제 2 배치를 상기 핑퐁 버퍼들 중 다른 하나로부터 검색하도록 구성된 인터페이스를 갖는 그래픽 프로세서로서, 상기 그래픽 프로세서는 상기 꼭지점 정보의 제 2 배치로부터 어셈블링된 표면들을 픽셀 정보로 렌더링하도록 추가로 구성된 픽셀 프로세싱 엔진을 더 포 함하는, 그래픽 프로세서를 포함하는 그래픽 이미징 시스템.
  43. 제 42 항에 있어서,
    상기 그래픽 프로세서에 연결된 디스플레이를 더 포함하는 그래픽 이미징 시스템.
  44. 제 1 항 내지 제 3 항 및 제 5 항 내지 제 9 항 중 어느 한 항에 따른 그래픽 프로세서를 포함하는 이동 전화.
  45. 제 1 항 내지 제 3 항 및 제 5 항 내지 제 9 항 중 어느 한 항에 따른 그래픽 프로세서를 포함하는 집적 회로 장치.
  46. 컴퓨터에 의해 실행되는 경우, 상기 컴퓨터로 하여금 제 11 항 내지 제 13 항 및 제 15 항 내지 제 21 항 중 어느 한 항에 따른 방법을 수행하도록 하는 프로그램을 포함하는, 컴퓨터 판독 가능 매체.
  47. 제 23 항 내지 제 28 항 및 제 30 항 내지 제 31 항 중 어느 한 항에 따른 그래픽 프로세서를 포함하는 이동 전화.
  48. 제 23 항 내지 제 28 항 및 제 30 항 내지 제 31 항 중 어느 한 항에 따른 그래픽 프로세서를 포함하는 집적 회로 장치.
  49. 컴퓨터에 의해 실행되는 경우, 상기 컴퓨터로 하여금 제 32 항 내지 제 37 항 및 제 39 항 내지 제 40 항 중 어느 한 항에 따른 방법을 수행하도록 하는 프로그램을 포함하는, 컴퓨터 판독 가능 매체.
  50. 제 42 항 또는 제 43 항에 따른 그래픽 프로세서를 포함하는 이동 전화.
  51. 제 42 항 또는 제 43 항에 따른 그래픽 프로세서를 포함하는 집적 회로 장치.
  52. 그래픽 이미지를 나타내는 다수의 표면들과 관련된 꼭지점 정보와, 상기 꼭지점 정보를 갖는 다수의 명령들을 저장하기 위한 수단;
    애플리케이션 프로세서로부터 상기 꼭지점 정보의 배치(batch)를 검색하고 상기 저장 수단에 상기 배치를 제공하기 위한 수단 - 상기 꼭지점 정보의 상기 배치는 둘 이상의 상기 표면들과 관련됨 - ;
    상기 저장 수단의 상기 꼭지점 정보로부터 상기 표면들을 어셈블링하기 위한 수단; 및
    상기 어셈블링된 표면들을 픽셀 정보로 렌더링하기 위한 수단을 포함하는 그래픽 프로세서.
  53. 제 52 항에 따른 그래픽 프로세서를 포함하는 이동 전화.
  54. 제 52 항에 따른 그래픽 프로세서를 포함하는 집적 회로 장치.
  55. 꼭지점 정보에 의해 정의된 다수의 표면들을 갖는 그래픽 이미지를 핑퐁 버퍼들을 포함하는 어플리케이션 프로세서에 의해 생성하는 단계;
    상기 핑퐁 버퍼들중 제1 핑퐁 버퍼에 상기 꼭지점 정보의 제1 배치를 기록하는 단계;
    상기 꼭지점 정보의 상기 제1 배치가 상기 핑퐁 버퍼들중 상기 제1 핑퐁 버퍼에 기록됨과 동시에 상기 핑퐁 버퍼들 중 제 2 핑퐁 버퍼로부터의 상기 꼭지점 정보의 제 2 배치를 그래픽 프로세서의 인터페이스에 의해 검색하는 단계; 및
    상기 꼭지점 정보의 상기 제2 배치로부터 어셈블링된 표면들을 픽셀 정보로 렌더링하는 단계를 포함하는 그래픽 이미징 방법.
  56. 컴퓨터에 의해 실행되는 경우, 상기 컴퓨터로 하여금 제 55 항에 따른 방법을 수행하도록 하는 프로그램을 포함하는, 컴퓨터 판독 가능 매체.
KR1020077009007A 2004-09-22 2005-09-22 그래픽 프로세서를 위한 효율적인 인터페이스 및 어셈블러 KR100922780B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/947,993 2004-09-22
US10/947,993 US20060061577A1 (en) 2004-09-22 2004-09-22 Efficient interface and assembler for a graphics processor

Publications (2)

Publication Number Publication Date
KR20070055610A KR20070055610A (ko) 2007-05-30
KR100922780B1 true KR100922780B1 (ko) 2009-10-21

Family

ID=35680036

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077009007A KR100922780B1 (ko) 2004-09-22 2005-09-22 그래픽 프로세서를 위한 효율적인 인터페이스 및 어셈블러

Country Status (6)

Country Link
US (1) US20060061577A1 (ko)
EP (1) EP1828989A1 (ko)
JP (1) JP2008513910A (ko)
KR (1) KR100922780B1 (ko)
CN (1) CN101061516A (ko)
WO (1) WO2006036901A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100493193C (zh) * 2006-12-08 2009-05-27 北京中星微电子有限公司 对实时数码视频影流进行缓存控制的方法和装置
KR100882842B1 (ko) * 2007-02-26 2009-02-17 삼성전자주식회사 피포를 포스트 버텍스 캐쉬처럼 사용하기 위한 기하학 처리장치와 그 방법
KR101440106B1 (ko) * 2007-09-14 2014-09-17 삼성전자주식회사 정점 데이터 처리 장치 및 방법
KR101445074B1 (ko) 2007-10-24 2014-09-29 삼성전자주식회사 미디어 플레이어에서 미디어 객체 처리 방법 및 그 장치
DE102007061724A1 (de) * 2007-12-20 2009-06-25 Robert Bosch Gmbh Verfahren zum Übertragen von Daten in einem zyklusbasierten Kommunikationssystem
US9390661B2 (en) 2009-09-15 2016-07-12 E Ink California, Llc Display controller system
US20110063314A1 (en) * 2009-09-15 2011-03-17 Wen-Pin Chiu Display controller system
AU2012216432A1 (en) * 2012-08-24 2014-03-13 Canon Kabushiki Kaisha Method, system and apparatus for rendering a graphical object
US9208602B2 (en) 2013-09-27 2015-12-08 Intel Corporation Techniques and architecture for improved vertex processing
US10482570B2 (en) * 2017-09-26 2019-11-19 Disney Enterprises, Inc. Memory allocation for seamless media content presentation

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6184908B1 (en) * 1998-04-27 2001-02-06 Ati Technologies, Inc. Method and apparatus for co-processing video graphics data
KR20010085424A (ko) * 1998-08-20 2001-09-07 알버트 피. 세팔로 지연 쉐이딩을 갖는 그래픽 프로세서

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4839828A (en) * 1986-01-21 1989-06-13 International Business Machines Corporation Memory read/write control system for color graphic display
CA2038412C (en) * 1990-04-26 2001-10-16 Glenn M. Courtright Polygon sort engine
US5408605A (en) * 1993-06-04 1995-04-18 Sun Microsystems, Inc. Command preprocessor for a high performance three dimensional graphics accelerator
US5760792A (en) * 1995-05-01 1998-06-02 Intergraph Corporation Fifo logical addresses for control and error recovery
US5794037A (en) * 1995-05-01 1998-08-11 Intergraph Corporation Direct access to slave processing by unprotected application using context saving and restoration
US6529196B1 (en) * 1995-05-01 2003-03-04 3Dlabs Inc. Led. Efficient stroking of vectors with arbitrary endpoints
US5799204A (en) * 1995-05-01 1998-08-25 Intergraph Corporation System utilizing BIOS-compatible high performance video controller being default controller at boot-up and capable of switching to another graphics controller after boot-up
US5801714A (en) * 1995-05-01 1998-09-01 Intergraph Corporation Vertex list management system
US5878216A (en) * 1995-05-01 1999-03-02 Intergraph Corporation System and method for controlling a slave processor
US5831637A (en) * 1995-05-01 1998-11-03 Intergraph Corporation Video stream data mixing for 3D graphics systems
US5842004A (en) * 1995-08-04 1998-11-24 Sun Microsystems, Inc. Method and apparatus for decompression of compressed geometric three-dimensional graphics data
US7038692B1 (en) * 1998-04-07 2006-05-02 Nvidia Corporation Method and apparatus for providing a vertex cache
JP3326128B2 (ja) * 1998-12-22 2002-09-17 株式会社スクウェア ゲーム装置、画像表示方法、及び、プログラムを記録した機械読み取り可能な情報記録媒体
JP2001134752A (ja) * 1999-11-05 2001-05-18 Mitsubishi Electric Corp グラフィックプロセッサおよびグラフィックプロセッサにおけるデータ処理方法
US6867780B1 (en) * 1999-12-06 2005-03-15 Nvidia Corporation System, method and article of manufacture for allowing direct memory access to graphics vertex data while bypassing a processor
US6807620B1 (en) * 2000-02-11 2004-10-19 Sony Computer Entertainment Inc. Game system with graphics processor
US6624819B1 (en) * 2000-05-01 2003-09-23 Broadcom Corporation Method and system for providing a flexible and efficient processor for use in a graphics processing system
US6947049B2 (en) * 2001-06-01 2005-09-20 Nvidia Corporation Method and system for synchronizing updates of vertex data with a graphics processor that is fetching vertex data
US6943800B2 (en) * 2001-08-13 2005-09-13 Ati Technologies, Inc. Method and apparatus for updating state data
US6847369B2 (en) * 2002-01-30 2005-01-25 Sun Microsystems, Inc. Optimized packing of loose data in a graphics queue
GB2387094B (en) * 2002-03-26 2005-12-07 Imagination Tech Ltd 3-D Computer graphics rendering system
US6985150B2 (en) * 2003-03-31 2006-01-10 Sun Microsystems, Inc. Accelerator control unit configured to manage multiple hardware contexts

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6184908B1 (en) * 1998-04-27 2001-02-06 Ati Technologies, Inc. Method and apparatus for co-processing video graphics data
KR20010085424A (ko) * 1998-08-20 2001-09-07 알버트 피. 세팔로 지연 쉐이딩을 갖는 그래픽 프로세서

Also Published As

Publication number Publication date
EP1828989A1 (en) 2007-09-05
CN101061516A (zh) 2007-10-24
JP2008513910A (ja) 2008-05-01
KR20070055610A (ko) 2007-05-30
WO2006036901A1 (en) 2006-04-06
US20060061577A1 (en) 2006-03-23

Similar Documents

Publication Publication Date Title
KR100922780B1 (ko) 그래픽 프로세서를 위한 효율적인 인터페이스 및 어셈블러
EP3185217B1 (en) Allocation of tiles to processing engines in a graphics processing system
JP3635051B2 (ja) 画像生成方法及び装置、画像処理プログラムを記録した記録媒体、画像処理プログラム
EP1803096B1 (en) Flexible antialiasing in embedded devices
US6700586B1 (en) Low cost graphics with stitching processing hardware support for skeletal animation
US20040075654A1 (en) 3-D digital image processor and method for visibility processing for use in the same
US8441497B1 (en) Interpolation of vertex attributes in a graphics processor
US8009172B2 (en) Graphics processing unit with shared arithmetic logic unit
JP2673101B2 (ja) コンピュータ・グラフィクス装置
US8471851B2 (en) Method and device for rending three-dimensional graphics
CN115147579B (zh) 一种扩展图块边界的分块渲染模式图形处理方法及系统
CN1369849A (zh) 适于创建透明对象的实时阴影的系统和方法
US6927778B2 (en) System for alpha blending and method thereof
US8068120B2 (en) Guard band clipping systems and methods
CN115880408A (zh) 一种分块渲染模式图形处理方法及系统
US6756989B1 (en) Method, system, and computer program product for filtering a texture applied to a surface of a computer generated object
JP4532746B2 (ja) 3dパイプラインを使用したストレッチ・ブリッティングのための方法および装置
WO2023202367A1 (zh) 图形处理器、系统、装置、设备及方法
US6856321B2 (en) Texture rendering method, entertainment apparatus and storage medium
JP2000348196A (ja) 3次元画像生成装置および環境マップの生成方法
JPH1063254A (ja) 3dグラフィクスアクセラレータカードおよび同カードを使用したコンピュータシステム
JP3971448B2 (ja) 描画装置及び描画方法
JP3934111B2 (ja) 描画装置及び描画方法
JP4419480B2 (ja) 画像処理装置およびその方法
JP2003022453A (ja) 描画処理方法及び装置、描画処理プログラムを記録した記録媒体、描画処理プログラム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee