KR20060066081A - 휴대용 핸드헬드 장치를 위한 고품질 고성능의 3 차원그래픽 아키텍쳐 - Google Patents

휴대용 핸드헬드 장치를 위한 고품질 고성능의 3 차원그래픽 아키텍쳐 Download PDF

Info

Publication number
KR20060066081A
KR20060066081A KR1020067002303A KR20067002303A KR20060066081A KR 20060066081 A KR20060066081 A KR 20060066081A KR 1020067002303 A KR1020067002303 A KR 1020067002303A KR 20067002303 A KR20067002303 A KR 20067002303A KR 20060066081 A KR20060066081 A KR 20060066081A
Authority
KR
South Korea
Prior art keywords
circuit
classification
data processing
primitive
iterator
Prior art date
Application number
KR1020067002303A
Other languages
English (en)
Other versions
KR101017828B1 (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 KR20060066081A publication Critical patent/KR20060066081A/ko
Application granted granted Critical
Publication of KR101017828B1 publication Critical patent/KR101017828B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49942Significance control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3293Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Computer Graphics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Image Generation (AREA)
  • Power Sources (AREA)
  • Image Processing (AREA)

Abstract

휴대용 핸드헬드 장치에 적합한 고품질 및 고성능의 3D 그래픽 아키텍쳐가 제시된다. 상기 3D 그래픽 아키텍쳐는 다각형을 사이즈 및 다른 특성을 기준으로 분류하는 모듈을 포함하고 있다. 일반적으로, 작고 웰-비헤브드된(well-behaved) 삼각형들은 전력 효율이 좋은 회로를 가진 "저정확" 유닛을 이용하여 어떠한 품질이나 성능의 희생 없이(예를 들어, 현실성, 해상도 등) 처리될 수 있다. 프리미티브를 처리하는데 있어 상기 프미리티브들을 분류하고 더 전력 효율이 좋은 처리 유닛을 선택함으로써, 품질 및 성능의 희생 없이 전력 소비를 줄일 수 있게 된다.
3차원, 그래픽,엔진, 휴대용, 핸드헬드, 저전력

Description

휴대용 핸드헬드 장치를 위한 고품질 고성능의 3 차원 그래픽 아키텍쳐{HIGH QUALITY AND HIGH PERFORMANCE THREE-DIMENSIONAL GRAPHICS ARCHITECTURE FOR PORTABLE HANDHELD DEVICES}
본 발명은 일반적으로 컴퓨터 시스템, 보다 구체적으로는 최적의 전력 절약을 위하여 설계된 컴퓨터 그래픽 삼각형 셋업 및 래스터화 유닛과 관련되어 있다.
Personal Digital Assistants(PDAs), 휴대 전화, 그리고 핸드헬드 전자 게임과 같이, 실시간으로 3 차원(3D) 이미지 처리를 수행하며 배터리로 동작하고 휴대용인 핸드헬드 장치들이 크게 대중화되었다. 이 대중화는 부분적으로는, 사용가능한 네트워크 연결 옵션의 증가에 기인한다. 무선 데이터 서비스는 지금 새로운 세대의 고성능, 저전력 소비 핸드헬드 장치로 하여금 네트워크 중심의 어플리케이션 및 콘텐츠에 때와 장소를 가리지 않고 접속할 수 있게 하고 있다. 그 결과, 상기 핸드헬드 장치들은, 이동 전화 서비스를 제공하는 기능을 갖는 것 뿐만 아니라, 양방향(2-way) 비디오를 지원하고, 그림 및 비디오 클립을 공유하고, 풍부한 웹 경험을 제공하는 것 및 그 이상의 것들을 할 수 있게 한다.
모바일 어플리케이션들이 더욱 풍부해지고 복잡해짐에 따라, 멀티미디어를 최적화하여 처리하는 능력이 PDA 및 스마트 폰과 같은 핸드헬드 장치에 있어서 필 요하게 되었다. 비디오 메일, 매핑 서비스, PDF 읽기, 3D의 그래픽이 많은 게임과 같은 어플리케이션들은 모두 고품질 고성능의 그래픽 및 멀티미디어 능력을 필요로 한다. 이러한 능력을 통해 예전 대부분의 핸드헬드 사용자들은 이용할 수 없었던 방법으로 풍부한 이미지와 시스템 성능을 가지는 새로운 어플리케이션을 구현할 수 있다. 이러한 휴대용 핸드헬드 장치는 전반적인 시스템 에너지 소비와 비용을 줄이면서 사용자의 마음을 끄는 경험을 제공해야 한다는 과제에 직면하게 된다. 전통적으로, 휴대용 핸드헬드 장치는 데스크탑 Personal Computers(PCs)에 비해 본래 저성능의 컴포넌트를 가지고 있는데 이는 배터리로 동작하는 핸드헬드 장치에 있어서의 고유한 전력 제한 때문이다.
일반적으로, 3D 개체를 표현하는 것은 대단히 연산 및 전력 집중적이므로 배터리로 동작하는 핸드헬드 장치에는 적합하지 않다. 3D 개체와 표면은 연결된 다각형, 보통은 삼각형들로 근사화된다. 개체를 근사화하기 위한 다수의 작은 삼각형을 사용하는 것뿐만 아니라 표면 물질의 특징을 더욱 정확히 표현하기 위해 텍스쳐 맵(texture map)을 사용함으로써 보다 나은 현실성을 얻을 수 있다. 삼각형을 각각 표현하기 위해서는 복수의 복잡한 계산 실행이 필요하다. 삼각형의 개수가 증가함에 따라, 이러한 계산을 수행하는 논리의 복잡성과 전력 소비 역시 증가한다. 한편, 3D 그래픽 어플리케이션은 더 높은 품질 및 성능의 어플리케이션들이 출현함에 따라 계속해서 대중화되어가고 있다.
"병렬 픽셀 처리를 하는 비디오 그래픽 회로에 대한 방법 및 장치{Method and Apparatus For A Video Graphics Circuit Having Parallel Pixel Processing}" 라는 제목의 미국 특허 번호 6,473,089(이하 '089 특허)는 3D 그래픽 픽셀 정보를 병렬 처리하기 위한 비디오 그래픽 회로를 교시하고 있다. 상기 특허 '089 특허의 비디오 그래픽 회로는 셋업 엔진, 에지워커 회로(edge-walker circuit), 스팬 처리 회로(span-processing circuit), 그리고 다수의 픽셀 처리 회로를 포함한다. 상기 다수의 픽셀 처리 회로는 픽셀 파라미터의 병렬 처리를 가능하게 한다. 상기 '089 특허가 향상된 성능의 비디오 그래픽 회로를 교시하고 있으나, 전력 관리의 이슈에 대한 언급은 되어있지 않다. 결과적으로, 상기 '089 특허의 그래픽 회로는 전력 관리가 중요한 고려 대상이 되는 배터리 동작 휴대용 핸드헬드 장치에 사용하기 적합하지 않다.
"수퍼스칼라 3D 그래픽 엔진을 위한 별개의 오버랩되지 않는 삼각형을 처리하기 위해 스팬 범위 픽셀 인터록을 가지는 복수의 삼각형 픽셀 파이프라인{Multiple Triangle Pixel-Pipelines With Span-Range Pixel Interlock For Processing Separate Non-Overlapping Triangles for Superscalar 3D Graphics Engine}"이라는 제목의 미국 특허 번호 6,222,550(이하 '550 특허)은 전체 삼각형이 병렬로 처리될 수 있도록 하기 위해 병렬 삼각형 픽셀 파이프라인을 가진 3D 그래픽 프로세서를 교시한다. 또한, 상기 삼각형 픽셀 파이프라인은 삼각형 내에서 인접한 픽셀들을 동시에 처리할 수 있다. '089 특허에서처럼, '550 특허는 개선된 성능을 가진 비디오 그래픽 회로를 교시하고 있으나, 전력 관리의 이슈에 대해서는 언급되지 않는다. 결과적으로, 상기 '055 특허의 그래픽 회로는 전력 관리가 중요한 고려 대상이 되는 배터리 동작 휴대용 핸드헬드 장치에 사용하기 적합하지 않 다.
그러므로, 전력 소비가 중요한 고려 대상이 되는 휴대용 핸드헬드 장치에 적합한, 고품질 고성능의 3D 그래픽 아키텍쳐가 필요하다.
본 발명은 전력 소비가 중요한 고려 대상이 되는 휴대용 핸드헬드 장치에 적합한, 고품질 고성능의 3D 그래픽 아키텍쳐를 제공한다.
본 발명은 메모리 및 중앙 처리 장치(CPU)와 결합된 그래픽 엔진을 구현하는 3D 그래픽 아키텍쳐를 통해 위의 요구를 충족시킨다. 상기 그래픽 엔진은 표현/래스터화 엔진(rendering/rasterization engine)에 결합되는 프리미티브 셋업 엔진을 구성 요소로 한다. 상기 프리미티브 셋업 엔진은 메모리로부터 그래픽 프리미티브와 관련된 데이터를 수신한다. 상기 프리미티브 셋업 엔진은 프리미티브를 분류하는 데 사용되는 프리미티브 분류 회로를 포함한다. 분류에 기초하여, 상기 프리미티브 셋업 엔진은 품질과 성능의 희생 없이 전력의 소비를 최소화하기 위해 프리미티브에 대한 셋업 방정식을 계산하는 처리 모드를 선택한다. 표현/래스터화 엔진은 일반적으로 프리미티브의 픽셀 래스터화를 수행한다.
본 발명에 따라, 상기 프리미티브는 사이즈 및 다른 특성들에 기초하여 분류된다. 프리미티브는 작고 웰-비헤브드된(well-behaved), 큰, 또는 미스비헤브드된(misbehaved) 것 중 하나로 분류된다. 프리미티브의 행동을 분류하는데 있어, 이용되는 분류 기준은 사이즈, 텍스쳐, 너비, 그리고 깊이를 포함하지만 그것에 한정되는 것은 아니다.
상기 일반 개념의 다양한 구현을 기술하는 많은 실시예의 그래픽 엔진 및 다른 부가적 특징이 기술된다.
본 발명의 모든 특징과 이점들은 첨부된 도면과 관련되어 기술되는 바람직한 실시예의 상세한 설명으로부터 명백해 질 것이다.
도 1은, 예를 들어 본 발명을 구현하고 있는 휴대용 핸드헬드 장치(100)의 하이 레벨 도를 나타내고 있다.
도 2는 휴대용 핸드헬드 장치(100)의 그래픽/디스플레이 컨트롤러(107)를 더 자세하게 나타낸다.
도 3은 본 발명을 구현하는 3D GE(214)의 제 1 실시예 관련 컴포넌트를 나타낸다.
도 4는, 예를 들어 주 에지(dominant edge, 410)를 가진 삼각형(400) 및 래스터화/표현 처리에 사용되는 삼각형(400) 내 많은 스캔 라인을 표시한다.
도 5는 본 발명을 구현하는 3D GE(214)의 제 2 실시예 관련 컴포넌트를 나타낸다.
도 6은 본 발명을 구현하는 3D GE(214)의 제 3 실시예 관련 컴포넌트를 나타낸다.
도 7은, 예를 들어 LSBs 를 고정확 모드 및 저정확 모드에서 인에이블 및 디스에이블시키기 위해 반복자 셋업 계산 회로(602)에서 구현될 수 있는 가수 등록기(mantissa register,701)를 나타낸다.
도 8은 본 발명을 구현하는 3D GE(214)의 제 4 실시예 관련 컴포넌트를 나타낸다.
도 9는 본 발명을 구현하는 3D GE(214)의 제 5 실시예 관련 컴포넌트를 나타낸다.
본 발명의 이하 상세한 설명에서, 대단히 많은 특정 상세 설명들이 본 발명의 완전한 이해를 위해 제시되었다. 그러나, 본 발명이 이러한 특정 상세 설명 없이 실시될 수 있다는 것은 당업자에게 있어서 명백할 것이다. 다른 예시에 있어서 주지된 방법, 절차, 컴포넌트, 및 회로는 불필요하게 본 발명의 형태를 모호하게 하지 않기 위하여 상세하게 설명되지 않았다. 이하 본 발명의 상세한 설명은 3 차원(3D) 그래픽 및 휴대용 핸드헬드 장치와 관련된 것이지만, 본 발명은 2 차원 그래픽이나 다른 타입의 연산/처리 장치에도 적용가능하다는 것을 이해하여야 한다.
본 발명에 따른 3D 그래픽 아키텍쳐는 다각형을 사이즈와 다른 특성들로 분류하는 모듈/회로를 포함한다. 바람직한 실시예에서, 상기 다각형은 삼각형들이다. 일반적으로, 작고 웰-비헤브드된(well-behaved) 삼각형들은 어떠한 품질 및 성능 희생 없이도(예를 들어 현실성, 해상도 등) 전력 효율적인 회로를 가지는 저정확 유닛을 통해 처리될 수 있다. 상기 분류에 기초하여, 보다 전력 효율적인 회로를 가진 저정확 유닛 또는 보다 많은 전력을 필요로 하는 고정확 유닛 중 하나가 선택적으로 작동되어 표현/래스터화(rendering/rasterization) 처리를 수행하게 된다. 한 실시예에서, 고정확 유닛과 저정확 유닛을 별도의 유닛으로 구성할 수 있 다. 다른 방법으로서, 고정확 유닛은 회로의 서브세트를 디스에이블 및/또는 클록 게이팅함으로써 저정확 유닛이 되도록 재구성될 수 있다. 프리미티브를 분류하고 프리미티브 처리를 위한 보다 전력-효율적인 처리 유닛을 선택함으로써, 품질 및 성능의 희생 없이 전력 소비를 최소화할 수 있다. 상기 3D 그래픽 아키텍쳐는 이하 보다 상세히 설명된 다양한 실시예들에 의하여 구현될 수 있다.
본 발명이 데이터를 순차로 처리하는 임의의 데이터 경로 혹은 데이터 파이프라인도 포괄할 정도로 일반화될 수 있다는 것은 명백하다. 처리되는 데이터(예를 들어, MPEG 비디오의 매크로블록)는 분류되고 그 분류에 의존하여, 가장 적합한 데이터 경로(전력 효율의 견지에서)가 (설정가능한 데이터 경로로부터) 설정되고 또는 (다수의 데이터 경로로부터) 선택되어 품질과 성능의 저하 없이도 분류된 데이터를 처리하게 된다.
이제 한 예시로서, 본 발명이 구현되거나 실시될 수 있는 컴퓨터 시스템(100)의 하이 레벨 도를 나타내는 도 1을 참조해 보기로 한다. 보다 구체적으로, 컴퓨터 시스템(100)은 랩탑 또는 핸드헬드 컴퓨터 시스템일 수 있다. 컴퓨터 시스템(100)은 단지 예시적인 것일 뿐이며 본 발명은 데스크탑 컴퓨터 시스템, 범용 컴퓨터 시스템, 임베디드 컴퓨터 시스템, 그리고 다른 것들을 포함하는 많은 다른 컴퓨터 시스템 내에서 동작할 수 있다는 것을 이해하여야 할 것이다.
도 1에서 보듯이, 컴퓨터 시스템(100)은 집적 프로세서 회로(101), 주변장치 컨트롤러(102), read-only-memory(ROM)(103), 그리고 random access memory(RAM)(104)를 포함하는 고도로 집적된 시스템이다. 상기 고집적 아키텍쳐는 전력을 절약할 수 있게 한다. 주변장치 컨트롤러(102)는, 집적 프로세서 회로(101)에서 제공하지 않는 복잡한 그리고/또는 높은 핀-카운트 주변장치와의 인터페이스가 필요한지에 따라 선택 사양적이다.
주변장치 컨트롤러(102)가 한쪽 끝에서 집적 프로세서 회로(101)와 연결되는 반면, ROM(103) 및 RAM(104)이 다른 한쪽 끝에서 집적 프로세서 회로(101)와 연결된다. 집적 프로세서(101)는 처리 유닛(105), 메모리 인터페이스(106), 그래픽/디스플레이 컨트롤러(107), 직접 메모리 액세스 (DMA) 컨트롤러(108), 그리고 핵심 논리 함수로서 인코더/디코더(CODEC) 인터페이스(109), 병렬 인터페이스(110), 직렬 인터페이스(111), 그리고 입력 장치 인터페이스(112)를 포함하는 것으로 구성되어 있다. 처리 유닛(105)은 인스트럭션/데이터 캐시와 함께, 중앙 처리 유닛(CPU), 메모리관리 유닛(MMU)을 구성 요소로 한다.
CODEC 인터페이스(109)는 오디오 소스 및/또는 모뎀을 위한 인터페이스를 제공하여 집적 프로세서 회로(101)에 연결한다. 병렬 인터페이스(110)는 하드디스크, 프린터 등과 같은 병렬 입력/출력(I/O) 장치가 집적 프로세서 회로(101)에 연결되도록 한다. 직렬 인터페이스(111)는 범용 비동기식 송수신기(UART), 범용 직렬 버스(USB), 그리고 Firewire(IEEE 1394)와 같은 직렬 I/O 장치를 위한 인터페이스를 제공하여 집적 프로세서 회로(101)에 연결한다. 입력 장치 인터페이스(112)는 키보드, 마우스, 그리고 터치패드와 같은 입력 장치를 위한 인터페이스를 제공하여 집적 프로세서 회로(101)에 연결한다.
DMA 컨트롤러(108)는 메모리 인터페이스(106)를 경유하여 RAM(104)에 저장된 데이터에 액세스하고 데이터를 CODEC 인터페이스(109), 병렬 인터페이스(110), 직렬 인터페이스(111), 또는 입력 장치 인터페이스(112)와 연결된 주변장치들에 제공한다. DMA 컨트롤러(108)는 또한 메모리 인터페이스(106)를 경유하여 CODEC 인터페이스(109), 병렬 인터페이스(110), 직렬 인터페이스(111), 그리고 입력 장치 인터페이스(112)로부터 램(104)으로 데이터를 보낸다. 그래픽/디스플레이 컨트롤러(107)는 메모리 인터페이스(106)를 경유하여 램(104)으로부터 비디오/그래픽 데이터를 요구하고 액세스한다. 그 다음, 그래픽/디스플레이 컨트롤러(107)는 상기 데이터를 처리하고, 처리된 데이터를 구성하고, 구성된 데이터를 액정 디스플레이(LCD), 음극선관(CRT), 혹은 텔레비전 (TV) 모니터와 같은 디스플레이 장치에 보낸다. 컴퓨터 시스템(100)에서, 하나의 메모리 버스가 집적 프로세서 회로(101)를 롬(103) 및 램(104)에 연결하기 위해 사용된다.
본 발명은 그래픽/디스플레이 컨트롤러(107)의 부분으로서 구현되었다. 이제 그래픽/디스플레이 컨트롤러(107)를 보다 자세히 나타내는 도 2에 대해 설명한다. 일반적으로, 그래픽/디스플레이 컨트롤러(107)는 CPU 인터페이스 유닛(CIF)(201), SRAM(202), Phase Lock Loop(PLL) 회로(203), 발진기(204), 픽셀 처리 논리(208), 2 차원(2D) 그래픽 엔진(GE)(206), 메모리 인터페이스 유닛(MIU)(207), 평면 인터페이스(FPI)(209), CRT 디지털-투-아날로그 컨버터(DAC)(210), 사전-처리 모듈(211), MPEG-4 비디오 디코더(212), MPEG-4 비디오 인코더(213), 그리고 3D 엔진(214)을 구성 요소로 한다. 그래픽/디스플레이 컨트롤러(107)는 더 나아가 비디오 카메라를 수용하는 비디오 입력 포트를 포함한다. CIF(201)는 처리 유닛(105) 과 DMA 컨트롤러(108)에 인터페이스를 제공한다. 따라서, CIF(201)는 요구 및 처리 유닛(105)으로부터 수신한 비디오/이미지 데이터를 원하는 목적지에 보낸다. 특히, CIF(201)는 레지스터 읽기/쓰기 요구 및 메모리 읽기/쓰기 요구를 호스트 CPU 처리 유닛(105) 및 DMA 컨트롤러(108)로부터 그래픽/디스플레이 컨트롤러(107)에 있는 적절한 모듈로 보낸다. 예를 들어, 메모리 읽기/쓰기 요구는 MIU(207)에 전달되어 교대로 데이터를 SRAM(202)에 있는 프레임 버퍼에서/로 읽게/쓰게 된다. CIF(201)는 또한 시스템 메모리(ROM(103) 및 RAM(104))에서 데이터를 꺼내오기 위한 연락 기능을 수행하고 상기 데이터를 GE(206) 및 MIU(207)에 제공한다. 더 나아가, CIF(201)는 처리 유닛(105)의 호스트 CPU에 의해 프로그램되어 MPEG 사전-처리 프로세스를 컨트롤하는 많은 컨트롤 레지스터를 가지고 있다.(예를 들어, 일부 컨트롤 레지스터의 내용은 MPEG-4 디코더(212)를 구성하는데 사용될 수 있다.) CIF(201)는 또한 압축된 비디오/이미지 비트스트림을 MPEG-4 디코더(212)에 전달하여 이미지 구성/압축해제를 수행한다. CIF(201)는 더 나아가 코덱 인터페이스(109)나 직렬 인터페이스(111)에 연결된 소스로부터 수신한 압축되지 않은 비디오/이미지 비트스트림을 MPEG-4 인코더에 전달하여 압축된 비트스트림이 집적 프로세서 회로(101)에 직접적으로 혹은 원격 연결된 장치로 전송되기 전에 압축을 수행한다.
SRAM(202)의 프레임 버퍼는 모니터에 디스플레이되는 이미지의 픽스맵(즉, 프레임 버퍼로 매핑된 픽셀 패턴)을 저장하는데 사용될 뿐 아니라 다양한 목적의 임시 버퍼로서 작용할 수 있다. 또한, SRAM(202)는 비디오 버퍼 및 트랜잭션 레지 스터를 위해 할당된 메모리를 가질 수 있다. 2D GE(206)은 호스트 CPU의 명령에 기초하여 SRAM(202)에 있는 버퍼에 저장되는 그래픽/비디오 이미지 데이터를 처리한다. GE(206)는 그래픽 동작(예를 들어, BitBLT 및 ROP, 면 채우기, 선 그리기)을 수행하고 클리핑(clipping), 투명화(transparency), 회전, 색 확장(color expansion) 등을 위한 하드웨어 지원을 제공한다. GE(206)은 고유의 STRBLT(Stretch Block Transfer) 기능을 통하여 비디오 이미지 확장, 진보적 스캐닝 변환, YcbCR(YUV)에서 RGB 색-공간으로의 변환 등을 수행한다. 짧게 말해서, 2D GE(206)는 처리 유닛(105)을 비디오/그래픽 디스플레이 표시 기능으로부터 자유롭게 함으로써 처리 유닛(105)이 시간-결정적인 혹은 실-시간의 동작을 수행하는 것을 가능케 한다.
3D GE(214)는 본 발명을 구현한다. 호스트 CPU의 명령 하에, GE(214)는 디스플레이를 위한 3D 그래픽의 처리와 표시를 수행한다. 일반적으로, 3D GE(214)는 순차적으로 3D 그래픽을 데이터 파이프라인(데이터 경로라고 불리는) 방식으로 처리하는데 본 방식은 다음 기능들을 포함하며 그것에 한정되는 것은 아니다: 프리미티브 정점 정보를 꺼내기, 정점 정보를 정렬하기, 프리미티브 면적을 계산하고 프리미티브를 분류하기, 3D 그래픽을 처리하기 위한 적절한(예를 들어, 가장 전력 효율이 좋은) 회로를 선택하거나 구성하기 위해서 면적 계산을 사용하기 그리고/또는 프리미티브 분류하기, 픽셀 위치와 속성을 위한 초기 값과 구배를 계산하기, 삼각형 프리미티브의 각각의 픽셀에 대한 위치와 속성을 계산하기, 원근제산 수행하기, 텍스쳐 캐시에서 필터 모드에 의해 요구되는 텍셀 데이터(texels data)를 복원하 기, 텍스쳐(texture)와 발산 색(diffuse colors)을 결합하여 새로운 발산 색(dc)을 만들기, 알파, 깊이, 그리고 스텐실 테스트(stencil testing)를 수행하기, 그리고 dc를 프레임 버퍼(202)에서의 픽셀 색과 결합하여 표현된 3D 데이터를 생성하기. 3D GE(214)는 그 다음 처리된 3D를 프레임 버퍼(202)에 제공한다. 프리미티브 넓이 계산, 프리미티브 분류, 그리고 3D 그래픽 데이터를 처리하기 위한 적절한 회로의 연속되는 선택 또는 구성과 같은 본 발명의 관련 기능들을 제외하고, 3D GE(214)에 의해 수행되는 나머지 기능들은 일반적으로 잘 알려져 있으며 상업적으로 이용가능한 3D 그래픽 엔진 대부분에서 수행되는 것들이다.
MIU(207)는 SRAM(프레임 버퍼)(202)의 프레임 버퍼, 비디오 버퍼, 그리고 트랜잭션 레지스터로부터/로 이루어지는 모든 읽기와 쓰기 트랜잭션을 컨트롤한다. 상기 읽기 및 쓰기 요구는 호스트 CPU에서 CIF(201), 2D GE(206), 3D GE(214), 픽셀 처리 논리(208), FPI(209) 등을 경유하여 오게 된다. 또한, MIU(207)는 메모리 어드레싱, 메모리 타이밍 컨트롤 등과 관련된 태스크를 수행한다. 사전 처리 모듈(211)은 압축해제된 MPEG 비디오 이미지 데이터로부터 블로킹(blocking)과 링잉(ringing) 현상을 제거하여 압축해제된 비디오 데이터의 품질을 향상시킨다. 예를 들어 상기 압축해제된 MPEG 비디오 이미지 데이터는 직렬 인터페이스(111)나 MPEG-4 디코더(212)를 경유하여 광학 미디어 플레이어로부터 수신될 수 있다. 여과된 비디오 이미지 데이터는 그 다음 SRAM(202)에 보내진다.
픽셀 처리 논리(208)는 SRAM(202)의 버퍼로부터 비디오/그래픽 데이터를 복원하고, 이미지 데이터를 픽셀로 직렬화하고, FPI(209)나 CRT DAC(210)으로 출력되 기 전에 상기 픽셀을 미리 지정된 포맷으로 구성한다. 따라서, 픽셀 처리 논리(208)는 SRAM(202)에 저장된 이미지 데이터를 액세스하기 위하여 필요한 수평 및 수직 디스플레이 타이밍 신호, 메모리 어드레스, 읽기 요구, 그리고 컨트롤 신호를 생성한다. 내장된 디스플레이 장치가 LCD라면, 픽셀 처리 논리(208)에서 나온 픽셀 데이터는 LCD로 전달되기 전에 FPI(209)로 보내진다. FPI(209)는 디스플레이를 위한 다른 색조나 음영을 추가하여 상기 데이터를 더 처리한다. 또한, 얇은 필름 트랜지스터(TFT) LCD(능동 매트릭스 LCD라고 불림)를 사용하느냐 수퍼 트위스티드 네매틱(STN) LCD(수동 매트릭스 LCD라고 불림)를 사용하느냐에 따라, FPI(209)는 디스플레이 타입에 맞게 데이터를 구성한다. 또한, FPI(209)는 흑백 LCD가 사용되는 경우 컬러 데이터를 흑백 데이터로 변환해 준다. 반대로, 디스플레이 장치가 음극선관(CRT)이라면, 픽셀 데이터는 상기 CRT로 보내지기 전에 CRT 디지털-투-아날로그 컨버터(DAC)(210)에 제공된다. CRT DAC(210)은 픽셀 처리 논리 (208)로부터의 디지털 픽셀 데이터를 CRT 모니터에 표시될 아날로그 빨강, 초록, 및 파랑(RGB) 신호로 변환한다.
이제 본 발명을 구현하는 3D GE(214)의 제 1 실시예의 관련 컴포넌트를 나타내는 도 3을 참조한다. 도 3에서 도시된 바와 같이, 3D GE(214)는 면적 계산/분류 회로(area calculation/classify circuit, 301), 반복자 셋업 계산 회로(iterator setup calculation circuit, 302), 반복자 셋업 계산 회로(iterator setup calculation circuit, 312), 픽셀 반복자 회로(pixel iterator circuit, 303), 픽셀 반복자 회로(pixel iterator circuit, 313), 원근제산 회로(perspective divide circuit, 304), 및 원근제산 회로(perspective divide circuit, 314)를 포함한다. 면적 계산/분류 회로(301), 반복자 셋업 계산 회로(302), 및 반복자 셋업 계산 회로(312)는 삼각형 셋업 엔진(305)을 형성한다. 픽셀 반복자 회로(303), 픽셀 반복자 회로(313), 원근제산 회로(304), 및 원근제산 회로(314)는 래스터화/표현 엔진(306)을 형성한다. 그러나, 반복자 셋업 계산 회로(302) 및 반복자 셋업 계산 회로(312)는 도 3에서 본 바와 같이 삼각형 셋업 엔진(305)의 일부가 되는 대신에, 점선으로 된 박스에 보이는 것과 같이 래스터화/표현 엔진(306)의 일부분이 될 수 있다는 것에 유의하여야 한다. 도 3에 도시된 바와 같이, 반복자 셋업 계산 회로(302), 픽셀 반복자 회로(303), 및 원근제산 회로(304)는 함께 연결되어 작고 웰-비헤브드된(well-behaved) 삼각형을 다루기 위해 설계된 제 1 경로를 형성하고, 반복자 셋업 계산 회로(312), 픽셀 반복자 회로(313), 및 원근제산 회로(314)는 함께 연결되어 크거나 미스비헤브드된(misbehaved) 삼각형을 다루기 위해 설계된 제 2 경로를 형성한다. 상기 실시예에서, 삼각형의 분류가 결정된 후에는, 상기 삼각형은 제 1 경로 또는 제 2 경로 중 하나에 의해 처리된다. 선택되지 않은 경로의 하드웨어는 전력 절약을 위해 꺼질 수(클록되지 않을 수) 있다.
3D 그래픽을 생성하기 위해서, 3D 어플리케이션(예를 들어, PC 게임에 사용되는 3D 애니메이션 소프트웨어)은 장면(scene)을 생성한다. 각각의 장면은 파라미터의 표현을 연결하여 구성되는 많은 수의 개체를 포함한다. 각각의 파라미터의 표면은 프리미티브(primitives)라 불리는 더 작고 더 명료한 요소로 세분화된다. 프리미티브는 다각형, 구, 원통, 자유 형식 표면 등과 같이 입체 또는 패턴화된 모 양을 가질 수 있다. 보통, 프리미티브들은 다각형의 한 종류인 삼각형들이다. 데이터베이스에서 데이터 구조에 의해 표시되는 각각의 프리미티브는 정점 좌표(예를 들어, 세 개의 삼각형 정점들로부터) 및 원하는 컬러, 그림자, 텍스쳐, 투명도 등을 부여하는 속성들과 관련되어 있다. 기하학적 처리로 알려진, 3D 파이프라인의 다음 단계에서, 상기 프리미티브 데이터베이스는 수학적으로 이미지 공간으로 변환된다. 상기 변환은 해석(translation), 회전(rotation), 오려내기(clipping), 투영(projection), 및 스케일링(scaling)을 포함할 수 있다. 조명(lighting) 및 분위기(atmospheric) 효과 또한 프리미티브에 부가된다. 기하학적 처리는 정점 좌표, 컬러, 깊이, 텍스쳐, 및 다른 속성들로 기술되는 이미지 공간 프리미티브를 생산한다.
3D GE(214)는 상기 기하학적 처리를 통해 생산된 이미지 공간 프리미티브를 수신하여 3D 파이프라인의 래스터화 단계를 수행한다. 본 발명의 상기 실시예가 삼각형 모양의 프리미티브에 대해 설계되었으나, 본 발명은 다른 모양의 프리미티브에 또한 적용될 수 있음이 명백하다. 일반적으로, 삼각형 셋업 엔진(305)은 삼각형 각각에 대해 조정된 픽셀 위치 및 속성 구배를 생산하는 반면, 래스터화/표현 엔진(306)은 삼각형 셋업 엔진(305)에 의해 생성된 정보를 사용하여 삼각형 내의 모든 픽셀 속성을 생성한다. 래스터화/표현 엔진(306)은 에지를 따라 픽셀 위치를 결정하기 위해 에지 워킹(edge walking)을 수행한 후, 삼각형 프리미티브 내의 스캔 라인들을 따라 픽셀 위치 및 속성 값을 표시하는 시작점으로서 주 에지(dominant edge)를 따라 픽셀 위치를 사용하는 스팬 처리(span processing)를 수행 한다. 속성의 예시로서 컬러, 깊이, 텍스쳐 좌표, 블렌딩(blending) 등이 있다. 픽셀 각각의 최종 표시는 어플리케이션에 의해 지시된 모든 속성들이 합성된 것이다. 이와 같이, 래스터화/표현 엔진(306)은 많은 수의 연산을 수행한다. 일부 부가적인 다운스트림(downstream) 처리 후 픽셀 각각의 속성들은 다음 디스플레이를 위해 SRAM(202)에 있는 프레임 버퍼로 보내지게 된다.
위에서 논의된 바와 같이, 삼각형 셋업 엔진(305)은 면적 계산/분류 회로(301), 반복자 셋업 계산 회로(302), 및 반복자 셋업 계산 회로(312)를 포함하고 있으나 이에 한정되는 것은 아니다. 본 발명에 따라서, 면적 계산/분류 회로(301)는 XP를 다음에 따라 연산한다:
XP= [(dxlO*dy20)- (dx20*dylO)] (1)
단, dxNM= (XN-XM) 이고 dyNM =(YN-YM)
|XP|/2는 해당 삼각형의 면적과 동일하다. 방정식 (1)이 연산되기 전에, 면적 계산/분류 회로(301)는 현재 삼각형의 주 에지(dominant edge)를 결정한다. 삼각형의 주 에지(dominant edge)는 가장 작은 Y 좌표를 갖는 정점과 가장 큰 Y 좌표를 갖는 정점을 연결하는 에지로 정의된다. 주 에지 및 그것의 대응 정점들에 기초하여, 면적 계산/분류 회로(301)는 가장 큰 Y 좌표의 정점을 2로, 가장 작은 Y 좌표의 정점을 0으로, 그리고 나머지 정점을 1로 라벨을 붙인다. 일례로, 이제 삼각형(400)의 주 에지(410)와 본 발명에 따라 삼각형의 정점들에 라벨을 붙이는 방법에 대해 도 4를 참조한다. 도 4는 또한 래스터화/표현 프로세스에 사용되는 삼각형(400) 내부의 많은 스캔 라인들을 나타낸다.
면적 계산/분류 회로(301)는 미리 결정된 기준에 기초하여 프리미티브 삼각형을 작은 것 또는 큰 것으로 분류한다. 면적 계산/분류 회로(301)는 또한 미리 결정된 다른 기준에 따라 삼각형 각각을 "웰-비헤브드된(well-behaved)" 또는 "미스비헤브드된(misbehaved)"으로 분류한다. "미스비헤브드된" 삼각형의 일례는 매우 폭이 좁은(narrow) 삼각형이다. 작고 웰-비헤브드된 삼각형들을 계산하는 작업은 크거나 미스비헤브드된 삼각형들을 계산하는 것보다 적은 정확도를 필요로 하므로, 삼각형이 작고 웰-비헤브드된 것인지 결정하는 것은 중요하다. 일반적으로, 더 정확한 삼각형 계산기는 더 큰 곱셈기 및/또는 덧셈기 및 결과적으로 전력을 더 소모하는 논리 게이트를 더 필요로 한다. 이와 반대로, 덜 정확한 계산기는 더 작은 곱셈기 그리고/또는 덧셈기 또는 다른 수학적 논리 회로를 필요로 한다. 더 적은 수의 논리 게이트 사용은 더 적은 전력 소모로 나타난다. 그러므로, 본 발명에 따라, 삼각형 프리미티브를 정확하게 분류하고 적은 전력을 소모하는 계산기를 선택하고 "과잉의" 정확도는 희생함으로써, 픽셀 표현/래스터화 프로세스에 있어서 품질 및 성능의 손실이 없거나 거의 없이 전력을 절약할 수 있다.
예를 들어 새로운 분류 기준이, 삼각형이 작은지 그리고/또는 웰-비헤브드된 것인지 결정하는 면적 계산/분류 회로(301)를 통해 구현되어 표 1에 요약되어 있다. 표 1에서 볼 수 있듯이, "사이즈" 기준을 통과하지 못하면 삼각형이 큰 것을 나타내고, "텍스쳐" 기준을 통과하지 못하면 상기 삼각형이 텍스쳐 맵에서 너무 큰 거리까지 연장되어 미스비헤브드된 것을 나타내며, "깊이" 기준을 통과하지 못하면 상기 삼각형이 너무 큰 깊이 범위까지 연장되어 미스비헤브드된 것을 나타낸다. 주어진 어플리케이션에 따라 다른 기준(표 1에 나타내지는 않음)이 세워질 수 있다. 상기 분류 규칙은 정점들의 X, Y, U, V 및 1/w 값에 대한 최소 및 최대 값을 필요로 함을 유의하여야 한다. 다르게 말하면, Xmin = min(X0, X1, X2), Xmax = max(X0, X1, X2), Umin = min(U0, U1, U2) 등이다. 만약 표 1에 나타난 모든 기준을 만족시킨 경우, 삼각형은 작고 웰-비헤브드될 것이다. 만약 하나의 기준을 만족시키지 못한 경우, 상기 삼각형은 크거나 미스비헤브드하게 된다.
<표 1>
분류 기준 문턱 값의 예
사이즈 Xmax - Xmin < 문턱 값 및 Ymax - Ymin < 문턱 값 32
텍스쳐 Umax - Umin < 문턱 값 및 Vmax - Vmin < 문턱 값 1
너비 dy20 * dy20 < 문턱 값 * |XP| 16
깊이 ((1/w)max - (1/w)min) < 문턱 값 * (1/w)max 1/32
발명의 목적을 달성하기 위해, 상기 분류 프로세스는 저장된 전력의 상당 부분을 소모하면 안 된다. 단순화를 위해 단계들은 분류 연산 이전에 이루어지므로 필요한 처리 전력을 줄이게 된다. 일부 예시들이 이하 제시된다. 예를 들어, 텍스쳐 및 깊이 좌표(u,v) 및 1/w 각각은 소수점 값을 갖는다. 상기 분류 기준은 평가 과정 동안에 완전히 정확한 값을 요구하지는 않는다. 연산을 상당히 단순화하고, 텍스쳐 및 깊이 기준을 평가하는데 필요한 전력을 줄이기 위해서, 단지 제한된 수의 가장 중요한 가수(mantissa) 비트만이 연산에서 사용되는 것이 필요하다.
다른 전력 절약 방법들도 구현될 수 있다. 사이즈, 텍스쳐, 및 깊이 분류 기준을 연산하는 데 있어서, 삼각형의 세 정점의 분류 기준 각각에 대하여 최소 및 최대 값을 결정하는 것이 필요하다. 다르게 말하면, 분류 기준 각각에 대하여, 세 정점으로부터의 세 값들이 필요하다. 되도록, 상기 최소 및 최대 값의 결정은 전력 절약을 위해 최적화된 3-입력 최소 및 최대 값 회로(예를 들어 3-입력 비교 회로)를 이용하여 수행된다. 일반적으로, 고정 소수점 수를 제한된 정확도 요건으로 뺄셈 및 비교 동작을 하는 데에는 거의 전력 소모가 되지 않는다. 표 1에서 보듯이, 너비 및 깊이 분류 기준의 연산에는 문턱 값을 이용하는 곱셈 동작이 필요하다. 2의 제곱 형태(예를 들어 32)로 표시될 수 있는 문턱 값을 활용함으로써, 곱셈 동작은 전력 절약 비트 시프트 회로에 의해 수행될 수 있다. 상기 너비 분류 기준을 연산하는데 있어서, (dy20 * dy20) 동작을 수행하기 위해 일반적인 곱셈 회로보다 훨씬 작고, 적은 전력을 소비하는 특정한 제곱 회로가 사용될 수 있다. 이와 달리, (dy20 * dy20)의 연산에 있어서 숫자 dy20의 가장 중요하지 않은 일부 비트를 버리는 방법도 있다.
만약 면적 계산/분류 회로(301)가 한 삼각형이 작고 웰-비헤브드라고 결정한다면, 상기 삼각형의 정점 정보 및 속성이 반복자 셋업 계산 회로(302)에 제공된다. 반대로, 만약 면적 계산/분류 회로(301)가 한 삼각형이 크거나 미스비헤브드라고 결정한다면, 상기 삼각형의 정점 정보 및 속성은 반복자 셋업 계산 회로(312)에 제공된다.
반복자 셋업 계산 회로(302 및 312)는 래스터화/표현 엔진(306)이 요구하는 초기 속성 값 및 구배와 같은 파라미터들을 연산한다. 더 구체적으로 말하면, 반복자 셋업 계산 회로(302)는 잘 알려진 셋업 방정식들을 수행함으로써, 예를 들어, 스캔 라인을 따른 수평 방향의 증가/감소에 대한 속성의 변화를 결정하거나, 인접한 스팬 라인들 사이의 수직 방향의 증가/감소에 대한 속성의 변화를 결정한다. 다음 인접한 스캔 라인까지의 수직 방향 증가/감소는 도 4에서 보여지는 주 에지(410)와 같이 현재 삼각형의 주 에지를 따라 만들어진다. 그러므로 주 에지의 기울기 및 그 역수는 셋업 방정식을 세우는데 사용된다. 반복자 셋업 계산 회로(302 및 312)가 연산에서 사용하고 있는 방정식들이 밑에 제시되어 있다.
픽셀 속성은 선형 함수 f(x,y)에 의해 표시된다고 가정한다. 스캔 라인을 따라 수평 방향으로 증가시켜 가면서, 하나의 픽셀 속성 값과 그 다음 픽셀 속성 값의 수평 방향 차이를 다음과 같이 나타낸다:
∂f/∂x = (df10*dy20 - df20*dy10) /XP (2)
단, XP는 방정식 (1)에서 계산됨.
주 에지를 따라 한 스캔 라인에서부터 인접한 그 다음 스캔 라인까지 수직 방향으로 증가시켜 갈 때, 좌표값의 차이는 기하학적으로 다음과 같이 나타낼 수 있다. yi = (yi +1) 및 xi = (xi + si20) 단, xi 와 yi는 정수의 픽셀 좌표이고 si20 = |dx20/dy20| (즉, 주 에지 기울기의 정수 "플로어(floor)" 역수). 상기 x 좌표는 주 에지 기울기의 역수에 의존한다. 그러므로, 현재의 스캔 라인 속성 값 과 그 다음 스캔 라인 속성 값의 수직 방향 차이는 다음과 같이 표시된다:
df = si20*∂f/∂x + ∂f/∂y (3)
단, ∂f/∂y = [df20*dx10 - df10*dx20]/XP
반복자 셋업 계산 회로(302 및 312)는 정점 정보 및 속성 구배를 래스터화/표현 엔진(306)에 전해주는데, 이전에 언급했던 바와 같이, 상기 엔진은 픽셀 반복자 회로(303), 반복자 회로(313), 원근제산 회로(304), 및 원근제산 회로(314)를 포함하며 이에 한정되는 것은 아니다. 픽셀 반복자 회로(303 및 313)는 삼각형 에지를 따라 픽셀 위치를 정하기 위해 에지 워킹을 수행한다. 주 에지를 따른 상기 정해진 픽셀 위치를 스캔 라인의 시작점으로 사용하여, 픽셀 반복자 회로(303 및 313)는 아래 방정식의 반복을 통하여 스캔 라인 각각을 따라 모든 픽셀의 x-y 위치 좌표 및 속성 값을 결정하게 된다:
f(xi±1,yi) = f(xi,yi) ± ∂f/∂x (4)
여기서 덧셈이냐 또는 뺄셈이냐는 스팬 방향에 의존한다. 에지 워킹 및 스팬 처리는 주지된 프로세스들이다.
픽셀 반복자 회로(303)에 의해 수행되는 스캔 라인 래스터화 프로세스(예를 들어 에지 워킹 및 스팬 처리)는 주지된 방정식을 사용함으로써 도움을 받게 된다. 정수 x 및 y 좌표의 초기 값 그리고 연관된 속성 값은 다음 방정식을 사용하여 결정된다:
f(xi,yi) = f(0) + (yi-y0)*∂f/∂y + (xi-x0)*∂f/∂x (5)
단, yi = |y0| 그리고 xi = x0 + si20*(yi-y0),
만약 dx20*(yi-y0) - dy20*(xi+1-x0) >= 0 이면
xi 는 1 만큼 증가함.
원근제산 회로(304 및 314)는 텍스쳐 좌표(u,v)에 의해 필요한 원근 보정을 제공한다. 원근제산 회로(304 및 314)가 픽셀 반복자 회로(303) 및 픽셀 반복자 회로(313)로부터 픽셀 각각에 대한 픽셀 속성 값을 각각 수신하면, 원근제산 회로(304 및 314)는 텍스쳐 좌표와 깊이 값의 선형적으로 인터폴레이트 된 결과(즉, u/v 그리고 v/w)를 선형적으로 인터폴레이트 된 깊이 값(즉, 1/w)으로 나눈다. 그 다음 원근제산 회로(304 및 314)는 래스터화/표현 프로세스에서 픽셀 위치 좌표 및 그들의 개별 속성에 관한 리스트를 다른 회로들(나타내지는 않았음)로 보내서, 바로 다음 디스플레이를 위한 SRAM(202)의 프레임 버퍼로 상기 정보를 보내기 전, 텍스쳐 검색 및 블렌딩과 같은 잘 알려진 일부 프로세스들을 수행하도록 한다.
삼각형 셋업 엔진(면적 계산/분류 회로 및 다른 관련 컴포넌트 없이) 및 래스터화/표현 엔진의 일반적인 설계는 1999년 11월, 마이크로아키텍쳐에 관한 32번째 연례 국제 심포지움에서, A. Wolfe 및 D. Noonburg의 "수퍼스칼라 3D 그래픽 엔 진(A Superscalar 3D Graphics Engine)" 50페이지의 내용과 같은 다양한 간행물에 기술되어 있다. 부가적으로, 삼각형 셋업 엔진(면적 계산/분류 회로 및 다른 관련 컴포넌트 없이) 및 래스터화/표현 엔진의 일반적인 설계는 이전에 설명하였던 '089 특허 및 '550 특허를 포함하는 다양한 미국 특허들에 기술되었다. 이러한 자료들은 전체로서 여기에 참고자료로 편입되어 있다.
그러므로, 본 발명의 제 1 실시예의 주요 모습은 두 경로의 사용에 있다. 적은 정확성, 적은 복잡성, 및 결과적으로 동작에 있어서 적은 전력을 필요로 하는 하드웨어를 사용하여 작고 웰-비헤브드된 삼격형을 처리하는 제 1 경로, 더 좋은 정확성, 높은 복잡성, 및 결과적으로 동작에 있어서 많은 전력을 필요로 하는 하드웨어를 사용하여 크거나 미스비헤브드된 삼각형을 처리하는 제 2 경로가 그것이다. 크거나 미스비헤브드된 삼각형을 처리하기 위한 제 2 경로의 하드웨어는 사이즈 및 비헤브드된 종류에 상관없이 삼각형을 처리하는 현재 상업적으로 이용가능한 일반적인 하드웨어가 될 수 있다. 전력 절약의 주요한 원천은 작고 웰-비헤브드된 삼각형들이 처리되고 상기 큰/미스비헤브드된 경로와 연관된 회로가 꺼졌을 때(클록하지 않을 때) 실현될 수 있다.
시뮬레이션은, 반복자 셋업 부동 소수점 동작이 크거나 미스비헤브드된 삼각형에 대해서는 24 비트 가수로 이루어지고, 작고 웰-비헤브드된 삼각형에 대해서는 16 비트로 이루어지며, 이 중에서 6 비트 지수는 둘의 분류를 위해 사용된다면 정확성, 품질, 및 성능 요건을 만족함을 나타내고 있다. 부동 소수점 곱셈은 잘 알려진 3-스테이지 파이프라인을 사용하여 수행되고 부동 소수점 덧셈은 잘 알려진 5-스테이지 파이프라인을 사용하여 수행된다. 상기 3-스테이지 곱셈기 및 5-스테이지 덧셈기는 둘다 사이클당 하나의 동작 처리량을 갖는다. 제 1 경로에서의 반복자 셋업 계산 회로(302)에서 16비트 가수 부동 소수점 곱셈기 및 덧셈기의 사용은 반복자 셋업 계산의 전력 소비를 20% 가까이 줄인다. 한편, 픽셀 반복자 회로(303) 및 원근제산 블록(304)에서 덜 정확하고 덜 복잡한 하드웨어를 사용한 결과 생기는 전력 절약은 극히 미미한데 이는 작은 삼각형에 소비되는 사이클 수가 큰 삼각형에 소비되는 사이클 수의 10분의 1보다 작은 것이 주요 원인이 된다.
이제 본 발명을 구현하는 3D GE(214)의 제 2 실시예 관련 컴포넌트를 나타내는 도 5에 관하여 설명한다. 도 5에 도시된 바와 같이, 3D GE(214)는 면적 계산/분류 회로(501), 반복자 셋업 계산 회로(502), 반복자 셋업 계산 회로(512), 픽셀 반복자 회로(503), 및 원근제산 회로(502)를 포함한다. 반복자 셋업 계산 회로(502)가 작고 웰-비헤브드된 삼각형에 대해 사용되는 반면, 반복자 셋업 계산 회로(512)는 크거나 미스비헤브드된 삼각형에 대해 사용된다. 이 실시예에서, 삼각형의 분류가 결정된 후, 상기 삼각형은 반복자 셋업 계산 회로(502) 또는 반복자 셋업 계산 회로(512) 중 하나에 의해 처리된다. 선택되지 않은 경로에 있는 하드웨어는 전력 절약을 위해 꺼질 수 있다(클록되지 않을 수 있다). 그 다음 픽셀 반복자 회로(503) 및 원근제산 회로(504)는 작고 웰-비헤브드된 삼각형 및 크거나 미스비헤브드된 삼각형 둘 모두를 처리하기 위해 사용된다. 상기 과정을 통하여, 제 1 실시예에서 픽셀 반복자 회로(313) 및 원근제산 회로(314)를 구현하기 위해 필요한 여분의 하드웨어가 제거되므로 부가되는 비용을 절약할 수 있게 된다. 상기 부가 적 하드웨어의 사용이 전력을 크게 절약하지 못하기 때문에 이것은 더욱 바람직한 설계 솔루션이라 할 수 있다.
면적 계산/분류 회로(501)는 면적 계산/분류 회로(301)와 동일하다. 반복자 셋업 계산 회로(502)는 반복자 셋업 계산 회로(302)와 동일하다. 반복자 셋업 계산 회로(512)는 반복자 셋업 계산 회로(312)와 동일하다. 픽셀 반복자 회로(503)는 픽셀 반복자 회로(313)(제 1 실시예의 큰/미스비헤브드된 경로에서 사용된)와 동일하다. 원근제산 회로(504)는 원근제산 회로(314)(제 1 실시예의 큰/미스비헤브드된 경로에서 사용된)와 동일하다. 도 5에 도시된 바와 같이 반복자 셋업 계산 회로(502) 및 반복자 셋업 계산 회로(512)는 삼각형 셋업 엔진(505)의 부분이 되는 대신, 점선 박스로 표시된 것처럼 래스터화/표현 엔진(506)의 부분을 구성할 수도 있음을 유의하여야 한다.
시뮬레이션은 병렬 처리를 사용함으로써 성능 이득이 실현될 수 있다는 것은 나타내고 있다. 예를 들어, 반복자 셋업 계산 회로(502)(작고 웰-비헤브드된 삼각형에 대해 사용되는)에서 곱셈기와 덧셈기를 이미 가지고 있는 회로에 부가적인 곱셈기를 부가한다면 5%의 성능 향상이 생긴다. 이것은 작은 삼각형이, 생성된 픽셀당 많은 비율의 부동 소수점 동작을 필요로 하기 때문이다.
이제 본 발명을 구현하는 3D GE(214)의 제 3 실시예 관련 컴포넌트를 나타내는 도 6을 설명한다. 도 6에 도시된 바와 같이, 3D GE(214)는 면적 계산/분류 회로(601), 반복자 셋업 계산 회로(602), 픽셀 반복자 회로(603), 및 원근제산 회로(604)를 포함한다. 반복자 셋업 계산 회로(602)는 저정확 모드(예를 들어, 작고 웰-비헤브드된 삼각형이 포함된 때) 또는 고정확 모드(예를 들어, 크거나 미스비헤브드된 삼각형이 포함된 때)에서 동작하도록 동적으로 구성될 수 있다. 보다 구체적으로, 저정확 모드에서는, 반복자 셋업 계산 회로(602)는 작고 웰-비헤브드된 삼각형을 처리할 때 하나 또는 그 이상의 가수의 LSB를 디스에이블(0으로 설정)시킨다. 반대로, 고정확 모드에서는, 반복자 셋업 계산 회로(602)는 크거나 미스비헤브드된 삼각형을 처리할 때, 완전한 너비의 가수를 사용한다. 상기 실시예에서, 삼각형 분류가 결정된 후, 면적 계산/분류 회로(601)는 컨트롤 신호를 생성하여 삼각형의 분류를 지시함으로써 반복자 셋업 계산 회로(602)를 저정확 모드 또는 고정확 모드 중 하나로 구성하게 한다. 이는 전력을 절약하기 위해 반복자 셋업 계산 회로(602)를 각각의 삼각형을 기초로 동적으로 구성되도록 하는 역할을 한다. 그 다음 픽셀 반복자 회로(603) 및 원근제산 회로(604)는 작고 웰-비헤브드된 삼각형 및 크거나 미스비헤브드된 삼각형 모두를 처리하기 위해 사용된다.
면적 계산/분류 회로(601)는 면적 계산/분류 회로(301)와 동일하다. 픽셀 반복자 회로(603)는 픽셀 반복자 회로(313)(제 1 실시예의 큰/미스비헤브드된 경로에서 사용되는)와 동일하다. 원근제산 회로(604)는 원근제산 회로(314)(제 1 실시예에서 큰/미스비헤브드된 경로에서 사용되는)와 동일하다. 도 6에 도시된 바와 같이 반복자 셋업 계산 회로(602)는 삼각형 셋업 엔진(605)의 부분이 되는 대신, 점선 박스로 표시된 것처럼 래스터화/표현 엔진(606)의 부분을 구성할 수도 있음을 유의하여야 한다.
이중(dual) 저정확 모드 및 고정확 모드로 동적으로 동작하게 하는 능력을 제외하고, 반복자 셋업 계산 회로(602)는 사실상 반복자 셋업 계산 회로(302)(제 1 실시예의 큰/미스비헤브드된 경로에서 사용되는)와 비슷하다. 한 실시예에서, 가수의 LSB를 삭감함으로써(zeroing out), LSB와 연관된 논리 회로는 0과 1 사이에서 토글할 수 없고 결과적으로 전력을 소모하지 않는다. 한 실시예에서, 24 비트의 완전 가수 너비(width)가 반복자 셋업 계산 회로(602)의 수학적 논리 회로(예를 들어 곱셈기, 덧셈기 등)를 위해 사용되어 고정확 하드웨어를 필요로 하는 크거나 미스비헤브드된 삼각형을 처리하게 되고, 16 비트의 감소된 가수 너비는 반복자 셋업 계산 회로의 수학적 논리 회로를 위해 사용되어 저정확 하드웨어를 필요로 하는 작고 웰-비헤브드된 삼각형을 처리하게 된다. 다른 전력 절약 구성들(예를 들어 고정확 모드에서 인에이블된 가수 비트의 수, 디스에이블된 LSB의 수 등) 뿐만 아니라 부가적인 정확도 모드들(예를 들어 다른 수의 디스에이블된 LSB를 포함하기)도 사용될 수 있다. 아래의 표 2는 두 개의 2진수인 승수 및 부동 소수점의 가수 사이의 전형적인 제 1 곱셈으로서 가수의 완전 너비(예를 들어 24 비트)가 사용되고 있고, 두 개의 2진수인 승수 및 부동 소수점의 가수 사이의 전형적인 제 2 곱셈으로서 가수의 8개 LSB들이 디스에이블된 경우를 나타내고 있다.
< 표 2 > 두 2진수의 곱셈 동작 예시
16진수 2진수
예시 1 가수(Mantissa) AAAAAA 0101010101010101010101010
승수(Multiplier) 3 11
결과 1FFFFFE 1111111111111111111111110
예시 2 가수(Mantissa) AAAA00 0101010101010101000000000
승수(Multiplier) 3 11
결과 1FFFE00 1111111111111111000000000
예시 1에서 보듯이, 가수의 너비가 사용되기 때문에, 모든 비트가 인에이블되고, 결과적으로 계산 중에 0과 1 사이를 자유롭게 토글할 수 있게 된다. 이와 달리, 예시 2는 가수의 8개 LSB들이 디스에이블되어 1로 자유롭게 토글할 수 없는 때를 나타내고 있다. 비록 예시 2의 곱셈 동작 결과가 예시 1의 결과보다 덜 정확하지만, 작고 웰-비헤브드된 삼각형을 처리하는데 있어서는 적당히 정확한 것으로 생각된다.
예를 들어, 도 7은 고정확 모드 및 저정확 모드에서 LSB를 인에이블하고 디스에이블하기 위해 반복자 셋업 계산 회로(602)에 구현될 수 있는 가수 레지스터(700)를 나타낸다. 도 7에 도시된 바와 같이, 가수 레지스터(700)는 서로 연결된 플립플롭(712a-712h), AND 게이트(714a-714h), 및 AND 게이트(716a-716h)를 포함하여 레지스터 회로(710a-710h)를 형성한다. 모두 동일한 레지스터 회로(710a-710h) 각각은 레지스터 회로(710a)를 비트 0, 즉 LSB에 할당하고, 레지스터 회로(710b)는 비트 1에 할당하는 등의 방식을 통해 가수를 제어하도록 설계되었다. 이와 같이, 가수 레지스터(700)는 8개의 가수 비트를 제어하도록 설계되었다. 더 많거나 적은 가수 비트를 제어하기 위해서 가수 레지스터(700)에 부가적인 레지스터 회로가 부가되거나 제거될 수 있다는 것에 유의하여야 한다.
레지스터 회로(710a)의 동작이 모든 레지스터 회로(710a-710h)를 대표하여 이하 다음에 기술되었다. AND 게이트(714a)는 인에이블 신호 ENA 0 및 클록 신호 CLK를 입력으로 수신한다. 플립플롭(712)은 AND 게이트(714a)의 출력을 클록 입 력으로 수신하고, 데이터 입력 신호로 IN 0를 수신한다. 플립플롭(712a)는 인에이블 신호 ENA 0와 클록 신호 CLK가 모두 활성 상태일 때 단지 입력 신호 IN 0를 출력으로 래치 및 통과시키는 역할을 한다. 인에이블 신호 ENA 0과 함께 플립플롭(712a)의 출력은 AND 게이트(716a)의 입력으로 제공되어 ENA 0 이 비활성될 때마다 상기 AND 게이트의 출력 BIT 0이 0으로 설정되도록 한다. 클록 신호 CLD가 BIT 0을 0과 1 사이에서 토글하지 않도록 함으로써, LSB와 연관된 상기 논리 회로는 0과 1 사이에서 토글할 수 없고 결과적으로 전력을 소비하지 않게 된다.
한 실시예에서, 인에이블 신호들 ENA 0 - ENA 7은 면적 계산/분류 회로(601)(나타내지는 않음)에 위치한 8 비트 프로그램 가능 컨트롤 레지스터에 의해 공급되는데, 상기 면적 계산/분류 회로의 내용은 계산/분류 프로세스를 완료한 후 면적 계산/분류 회로(601)에 의해 생성된 컨트롤 신호(들)에 의해 설정되었던 것이다. 예를 들어, 삼각형이 크거나 미스비헤브드된 것임을 나타내는 활성 컨트롤 신호는 8 비트 프로그램 가능 컨트롤 레지스터의 내용을 모두 1로 설정하고, 삼각형이 작고 웰-비헤브드된 것임을 나타내는 비활성 컨트롤 신호는 8 비트 프로그램 가능 레지스터를 모두 0으로 설정한다. 신호 IN 0 - IN 7들은 수학적 기능 유닛(나타내지는 않았음)에 의해 생성된 8 개의 가수 LSB이다. 대신에, 가수 레지스터(700)는 그 출력인 BIT 0 - BIT 7 을 공급하여 반복자 셋업 계산 회로(602)에서 8 개의 가수 LSB로 이용되도록 한다. 당업자에게 있어서 디스에이블된 가수 LSB의 수를 변화시킴으로써 예를 들어, 아주 작은, 작은, 중간의, 및 큰 삼각형을 처리할 수 있게 하기 위하여 두 개의 정확도 모드에서 더 많은 수의 정확도 모드로 쉽게 확장할 수 있다는 점은 명확하다. 표 3은 전형적인 가수 레지스터(700)에 대한 진리표이다.
<표 3> 제어 회로에 대한 진리표
"0 이 된 " 가수 비트들 ENA 7 ENA 6 ENA 5 ENA 54 ENA 3 ENA 2 ENA 1 ENA 0
없음 1 1 1 1 1 1 1 1
BIT 0 (LSB) 1 1 1 1 1 1 1 0
BIT 0 및 1 1 1 1 1 1 1 0 0
BIT 0 내지 2 1 1 1 1 1 0 0 0
BIT 0 내지 3 1 1 1 1 0 0 0 0
BIT 0 내지 4 1 1 1 0 0 0 0 0
BIT 0 내지 5 1 1 0 0 0 0 0 0
BIT 0 내지 6 1 0 0 0 0 0 0 0
BIT 0 내지 7 0 0 0 0 0 0 0 0
이제 본 발명을 구현하는 3D GE(214)의 제 4 실시예 관련 컴포넌트를 나타내는 도 8에 대해 설명한다. 도 8에서 보듯이, 3D GE(214)는 면적 계산/분류 회로(801), 반복자 셋업 계산 회로(802), 픽셀 반복자 회로(803), 및 원근 제산 회로(804)를 포함한다. 부가적으로, 현 실시예는 사용자 인터페이스(816) 및/또는 전력 모니터(817)와 연결되어 있는 정확도 선택 회로(815)를 더 포함한다. 정확도 선택 회로(815)는 3D GE(214)의 외부에 있을 수 있고(도 8에서 보듯이) 또는 3D GE(214)의 내부에 있을 수 있다. 사용자 인터페이스(816)는 사용자가 수동으로 원하는 전력 레벨을 선택하는 것을 허용하므로 결과적으로 연관 정확도 모드를 선택할 수 있게 해 준다. 사용자 인터페이스(816)는 그래픽 사용자 인터페이스(GUI), 명령 라인 인터페이스, 터치 스크린 인터페이스, 음성 활성화 인터페이스, 메뉴 구 동 인터페이스, 수동 스위치 등이 될 수 있다. 그러므로, 사용자 인터페이스(816)를 사용할 때, 상기 사용자는 배터리 수명을 최대화하기 위해서 저전력 저정화 모드, 보다 나은 그래픽 품질 및 성능을 위해 고전력 고정확 모드, 또는 선택 신호를 생성함으로써 다른 정확도 모드를 선택할 수도 있다.
일반적으로 전력 모니터(817)는 휴대용 핸드헬드 장치에 전력을 공급하는 배터리의 사용가능한 전력 잔량을 모니터한 다음, 상기 사용가능한 전력 레벨과 활성화되어 실행되고 있는 어플리케이션(예를 들어, 게임 등)의 남은 동작 시간을 비교하고, 휴대용 핸드헬드 장치(100)의 실행중인 어플리케이션을 끝마칠 수 있을 때까지 동작을 계속할 수 있기에 필요한 적정 전력 레벨을 결정하게 된다. 한 실시예에서, 전력 모니터(817)는 저장된 전력 레벨을 실행하는 상태 머신일 수 있고 배터리, CPU(게임의 남은 실행 시간을 지시함), 및 다른 것들로부터의 입력을 이용하는 동작 시간 알고리즘일 수 있다. 상기 알고리즘은 기본적으로 입력들(예를 들어, 사용가능 전력 대 현재의 정확도 모드에서 어플리케이션 실행 완료까지의 시간)의 비교 작업을 수행하고, 다른 사용가능 정확도 모드에서 상기 동작의 남은 시간을 결정하고, 배터리에 있는 사용가능 전력이 어플리케이션을 완료하는데 충분하게 할 수 있도록 만드는 정확도 모드를 선택한다.
한 실시예에서, 정확도 선택 회로(815)는 사용자 인터페이스(816) 그리고/또는 전력 모니터(817)로부터 선택 신호를 수신하여, 선택된 전력 및 정확도 모드를 나타내는 비트 스트링을 생성한다. 정확도 선택 신호 회로(815)는 또한 사용자 인터페이스(816)가 활성화되었는지 또는 전력 모니터(817)가 활성화되었는지(예를 들 어, 새로운 선택 신호가 모듈 중 하나로부터 수신될 때) 지시하는 지시 신호를 생성한다. 그 다음에 상기 비트 스트링 및 지시 신호는 면적 계산/분류 회로(801) 내에 있는 컨트롤 레지스터(나타내지는 않았으나 이하 더 자세히 설명함)에 제공된다.
반복자 셋업 계산 회로(802)는 저정확 모드(예를 들어, 작고 웰-비헤브드된 삼각형이 포함된 때) 또는 고정확 모드(예를 들어, 크거나 미스비헤브드된 삼각형이 포함된 때), 및 다른 정확도 모드들에서 동작하도록 동적으로 구성될 수 있다. 보다 구체적으로, 저정확 모드에서는, 반복자 셋업 계산 회로(802)는 작고 웰-비헤브드된 삼각형을 처리할 때 하나 또는 그 이상의 가수의 LSB를 디스에이블(0으로 설정)시킨다. 반대로, 고정확 모드에서는, 반복자 셋업 계산 회로(802)는 크거나 미스비헤브드된 삼각형을 처리할 때,완전한 너비의 가수를 사용한다. 다른 정확도 모드는 다른 수의 가수 LSB를 디스에이블하는 것을 포함한다. 현재 실시예에서, 삼각형 분류가 결정된 후, 면적 계산/분류 회로(801)는 제어 신호(들)를 생성하여 반복자 셋업 계산 회로(802) 구성에 사용되는 삼각형의 분류를 지시한다. 보다 구체적으로, 상기 컨트롤 신호(들)는 면적 계산/분류 회로(802) 내의 컨트롤 레지스터의 내용을 설정하는데 사용된다. 예를 들어, 컨트롤 비트가 00이면 컨트롤 레지스터의 내용은 모두 0이고, 컨트롤 비트가 11이면, 컨트롤 레지스터의 내용은 모두 1이며, 컨트롤 비트가 01이면 컨트롤 레지스터의 내용은 (8비트 레지스터라고 생각할 때) 00000111 등이 된다. 그러나 지시 신호가 사용자 인터페이스(816) 또는 전력 모니터(817)이 활성화되었음을 나타내면, 상기 유닛들에 의해 생성된 비트 스 트링은 컨트롤 레지스터 안으로 로드된다. 즉, 사용자 인터페이스(816) 및 파워 모니터(817)에서 수신한 입력들이 면적 계산/분류 회로(801)에서 얻은 분류 결과를 오버라이드(override) 한다. 그 다음 픽셀 반복자 회로(803) 및 원근제산 회로(804)는 작고 웰-비헤브드된 삼각형 및 크거나 미스비헤브드된 삼각형 모두를 처리하는데 사용된다. 반복자 셋업 계산 회로(802)로 하여금 전력을 절약하기 위해 각각의 삼각형을 기초로 동적으로 구성되도록 하는 것에 더하여, 상기 실시예는 그래픽 품질 및 성능과, 전력 요구 및 배터리 수명 사이의 균형을 맞출 수 있게 한다.
컨트롤 레지스터를 제외하고, 면적 계산/분류 회로(801)는 사실상 면적 계산/분류 회로(601)와 비슷하다. 픽셀 반복자 회로(803)는 픽셀 반복자 회로(603)와 동일하다. 원근제산 회로(804)는 원근제산 회로(604)와 동일하다. 반복자 셋업 계산 회로(802)는 사실상 반복자 셋업 계산 회로(602)와 동일하다. 가수 레지스터(700)는 부가적인 정확도 모드를 수용하기 위해 변경될 수 있는데 이는 당업자에게 있어 자명한 변경임이 분명하므로 더 논의하지 않는다. 도 8에 도시된 바와 같이, 반복자 셋업 계산 회로(802)는 삼각형 셋업 엔진(805)의 부분이 되는 대신에, 점선으로 표시된 것과 같이 래스터화/표현 엔진(806)의 일부가 될 수도 있다.
이제 본 발명을 구현하는 3D GE(214)의 제 5 실시예 관련 컴포넌트를 나타내는 도 9에 대해 설명한다. 도 9에 도시된 바와 같이, 3D GE(214)는 면적 계산/분류 회로(901), 반복자 셋업 계산 회로(902), 반복자 셋업 계산 회로(912), 픽셀 반복자 회로(903), 및 원근제산 회로(904)를 포함한다. 부가적으로, 현재 실시예는 사용자 인터페이스(916) 및/또는 전력 모니터(917)와 연결된 정확도 선택 회로 (915)를 더 포함한다. 정확도 선택 회로(915)는 3D GE(214)의 외부에 있을 수도 있고(도 9에서 보듯이) 또는 3D GE(214)의 내부에 있을 수도 있다. 그러므로, 상기 실시예는 도 5에서의 제 2 실시예 및 도 8에서의 제 4 실시예의 콤비네이션이다. 도 5 및 8에서의 컴포넌트 및 동작에 대한 설명은 도 9에서의 상응 컴포넌트들에 적용가능하므로 여기서 반복하지는 않는다. 그러나, 제 4 실시예와 다르게 현재 실시예에서는, 사용자 인터페이스(916) 및 전력 모니터(917)는 다른 반복자 셋업 계산 회로(902 및 912)로서 "작고 웰-비헤브드된 삼각형" 및 "크거나 미스비헤브드된 삼각형"을 분리하여 수용하도록 특별히 설계된 두 개 이상의 상기 회로를 제어할 수 있게 한다. 반복자 셋업 회로(902 및 912)는 분류를 위해 특별히 설계되었기 때문에, 특정 분류를 위한 삼각형의 처리에 있어서 보다 효율적이고 능률적일 수 있다. 부가적으로, 사용자 인터페이스(916) 및 전력 모니터(917)는 반복자 셋업 계산 회로(902 및 912)에 대해 다른 정확도 모드가 선택되는 것(즉, 상기 두 분류 각각에 대해서)을 허용한다.
어떤 분류가 포함되었는지 지시하기 위해 정확도 선택 회로(915)에 의해 생성된 부가적 지시 신호, 면적 계산/분류 회로(901)에서 하나는 삼각형 셋업 계산 회로(902)(작고 웰-비헤브드된 삼각형을 위한)에 할당되고, 다른 하나는 삼각형 셋업 계산 회로(912)(크고 미스비헤브드된 삼각형을 위한)에 할당되도록 하는 부가적 컨트롤 레지스터와 같이 작은 수의 변경들이 필요하게 된다. 면적 계산/분류 회로(901)가 삼각형의 분류를 결정할 때, 반복자 셋업 계산 회로(902) 또는 반복자 셋업 계산 회로(912) 중 하나가 삼각형 정점의 정보 및 속성을 처리하기 위해 사용된 다. 반복자 셋업 계산 회로(902) 및 반복자 셋업 계산 회로(912)를 위한 가수 LSB 디스에이블은 각각의 컨트롤 레지스터에 의해 제어된다. 면적 계산/분류 회로가 분류 결정을 내릴 때, 적당한 컨트롤 레지스터의 내용을 설정한다. 만약 사용자 인터페이스(916) 또는 전력 모니터(917)로부터 입력을 수신하면, 정확도 선택 회로(915)로부터 나오는 지시 신호는 사용자 인터페이스(916) 또는 전력 모니터(917) 중 하나가 활성화되었다는 것과 수신된 입력이 어느 분류에 지정되는지를 지시한다. 이는 면적 계산/분류 회로(901)에 의한 분류의 결과 정확도 선택 회로에서 생성된 스트링 비트가 적절한 컨트롤 레지스터로 보내져 내용 세트를 오버라이드하게 해 준다. 반복자 셋업 계산 회로(902) 및 반복자 셋업 계산 회로(912)는 도 9에서 보듯이 삼각형 셋업 엔진(905)의 부분이 되는 대신에, 점선 박스에서 보듯이 래스터화/표현 엔진(906)의 부분이 될 수도 있다.
휴대용 핸드헬드 장치에 적합한 고품질 고성능의 3D 그래픽 아키텍쳐인 본 발명의 몇몇 실시예가 제시되었다. 본 발명이 특정한 실시예로 설명되었으나, 본 발명은 그러한 실시예로 한정되는 것으로 해석되어서는 안되고, 이하 청구의 범위에 따라 해석되어야 한다.

Claims (35)

  1. 데이터 처리 파이프 라인으로서,
    적어도 하나의 기준에 기초하여 수신된 데이터 세트를 분류하고, 분류에 기 초하여 품질 및 성능의 희생 없이 전력 소비를 최소화하기 위해서 상기 데이터 세트를 처리하는 프로세스 모드를 선택하는 제 1 회로와,
    상기 제 1 회로와 결합되어 상기 제 1 회로로부터 수신한 데이터를 처리하는 제 2 회로를 포함하는, 데이터 처리 파이프라인.
  2. 제 1 항에 있어서, 상기 제 2 회로는
    저정확 처리 모드에서 제 1 분류를 가지는 데이터를 처리하는 제 1 데이터 처리 회로와,
    고정확 처리 모드에서 제 2 분류를 가지는 데이터를 처리하는 제 2 데이터 처리 회로
    를 포함하는 데이터 처리 파이프라인.
  3. 제 2 항에 있어서, 상기 제 2 회로는
    상기 제 1 데이터 처리 회로에 결합되어, 상기 제 1 데이터 처리 회로에서 수신한 제 1 분류를 가지는 데이터를 처리하는 제 3 데이터 처리 회로와,
    상기 제 2 데이터 처리 회로에 결합되어, 상기 제 2 데이터 처리 회로에서 수신한 제 2 분류를 가지는 데이터를 처리하는 제 4 데이터 처리 회로를
    더 포함하는 데이터 처리 파이프라인.
  4. 제 2 항에 있어서, 상기 제 2 회로는
    상기 제 1 데이터 처리 회로 및 상기 제 2 데이터 처리 회로와 결합되고, 분류와 관계없이 모든 데이터에 대해 데이터 처리를 수행하는 제 3 데이터 처리 회로를
    더 포함하는 데이터 처리 파이프라인.
  5. 제 1 항에 있어서, 상기 제 2 회로는
    저정확 처리 모드에서 데이터를 처리하기 위해서 제 1 분류에 기초하여 구성되고 고정확 처리 모드에서 데이터를 처리하기 위해서 제 2 분류에 기초하여 구성되는 구성가능한 데이터 처리 회로
    를 포함하는 데이터 처리 파이프라인.
  6. 제 5 항에 있어서, 상기 제 2 회로는
    상기 구성가능한 데이터 처리 회로에 결합되고, 분류에 관계없이 모든 데이터에 대해 데이터 처리를 수행하는 제 3 데이터 처리 회로
    를 더 포함하는 데이터 처리 파이프라인.
  7. 제 6 항에 있어서,
    상기 제 1 회로에 결합되고, 사용자에 의한 입력 정보를 상기 제 1 회로에 전달하여 상기 구성가능한 데이터 처리 회로를 원하는 정확도 동작 모드에서 동작하도록 하는 사용자 인터페이스를
    더 포함하는 데이터 처리 파이프라인.
  8. 제 7 항에 있어서,
    상기 사용자에 의해 선택된 상기 원하는 정확도 모드는 상기 제 1 회로에 의해 선택된 상기 정확도 모드를 오버라이드(override)하는
    데이터 처리 파이프라인.
  9. 제 6 항에 있어서,
    제 1 회로와 결합되고, 활성화되어 실행되고 있는 어플리케이션이 끝날 때까지 휴대용 핸드헬드 장치의 동작을 지속시키는데 필요한 전력 레벨을 결정하고 적절한 정확도 동작 모드를 선택하며, 상기 결정된 정확도 동작 모드를 상기 제 1 회로에 전달하여 상기 구성가능한 데이터 처리 회로가 상기 선택된 정확도 동작 모드에서 동작하도록 구성하는 전력 모니터를
    더 포함하는 데이터 처리 파이프라인.
  10. 제 9 항에 있어서, 상기 선택된 정확도 모드는
    상기 제 1 회로에 의해 선택된 상기 정확도 모드를 오버라이드하는
    데이터 처리 파이프라인.
  11. 제 4 항에 있어서,
    제 1 회로에 결합되고, 사용자에 의한 입력 정보를 상기 제 1 회로에 전달하여 상기 구성가능한 데이터 처리 회로를 원하는 정확도 동작 모드에서 동작하도록 하는 사용자 인터페이스를
    더 포함하는 데이터 처리 파이프라인.
  12. 제 11 항에 있어서, 상기 사용자에 의해 선택된 정확도 모드는
    상기 제 1 회로에 의해 선택된 상기 정확도 모드를 오버라이드하는
    데이터 처리 파이프라인.
  13. 제 4 항에 있어서,
    제 1 회로와 결합되고, 활성화되어 실행되고 있는 어플리케이션이 끝날 때까지 휴대용 핸드헬드 장치의 동작을 지속시키는데 필요한 전력 레벨을 결정하고 적절한 정확도 동작 모드를 선택하며, 상기 결정된 정확도 동작 모드를 상기 제 1 회로에 전달하여 상기 구성가능한 데이터 처리 회로가 선택된 정확도 동작 모드에서 동작하도록 구성하는 전력 모니터를
    더 포함하는 데이터 처리 파이프라인.
  14. 제 13 항에 있어서, 상기 전력 모니터는
    사용가능한 전력 표시자 및 상기 활성화되어 실행중인 어플리케이션의 잔여 동작 시간 표시자를 비교하여 상기 결정을 내리는 데이터 처리 파이프라인.
  15. 메모리 및 중앙처리 장치(CPU)와 결합된 그래픽 엔진으로서,
    메모리로부터 그래픽 프리미티브와 관련된 데이터를 수신하고, 프리미티브를 분류하는 프리미티브 분류 회로를 포함하고, 품질 및 성능의 희생 없이 전력 소비를 최소화하기 위해 처리 모드를 선택하여 프리미티브에 대한 셋업 방정식을 계산하는 프리미티브 셋업 엔진과,
    프리미티브 픽셀 래스터화를 수행하고, 상기 삼각형 셋업 엔진과 결합된 표현/래스터화 엔진을 포함하는
    그래픽 엔진.
  16. 제 15 항에 있어서, 상기 프리미티브는
    사이즈 및 기타 특성들에 기초하여 분류되는
    그래픽 엔진
  17. 제 16 항에 있어서, 상기 프리미티브는
    작고 웰-비헤브드된(well-behaved) 것 또는, 크거나 미스비헤브드된(misbehaved) 것으로 분류되는
    그래픽 엔진.
  18. 제 16 항에 있어서, 상기 다른 특성들에 대한 분류 기준에
    텍스쳐, 너비, 및 깊이가 포함되는 그래픽 엔진.
  19. 제 17 항에 있어서, 상기 프리미티브 셋업 엔진은
    상기 프리미티브 분류 회로와 결합되고, 상기 프리미티브 분류 회로에 의해 지시된 대로 작고 웰-비헤브드된(well-behaved) 것으로 분류된 프리미티브에 대해 저정확 처리 모드에서 상기 셋업 방정식을 연산하는 제 1 반복자 셋업 계산 회로와,
    상기 프리미티브 분류 회로와 결합되고, 상기 프리미티브 분류 회로에 의해 지시된 대로 크거나 미스비헤브드된(misbehaved) 것으로 분류된 프리미티브에 대해 고정확 처리 모드에서 상기 셋업 방정식을 연산하는 제 2 반복자 셋업 계산 회로를
    더 포함하는 그래픽 엔진.
  20. 제 19 항에 있어서,
    상기 저정확 처리 모드는 부동소수점 계산을 위해 16 가수 비트들(mantissa bits)을 포함하고,
    상기 고정확 처리 모드는 부동소수점 계산을 위해 24 가수 비트들을 포함하는
    그래픽 엔진.
  21. 제 19 항에 있어서, 상기 표현/래스터화 엔진은
    작고 웰-비헤브드된(well-behaved) 것으로 분류된 프리미티브들에 대해 스캔 라인 래스터화를 수행하는 제 1 픽셀 반복자 회로와,
    상기 제 1 반복자 셋업 계산 회로에 연결되어 저정확 파이프라인을 형성하는 상기 제 1 픽셀 반복자 회로와 연결되고, 작고 웰-비헤브드된(well-behaved) 것으로 분류된 프리미티브들의 텍스쳐 속성들에 대해 원근 조정을 수행하는 제 1 원근제산 회로와,
    크거나 미스비헤브드된(misbehaved) 것으로 분류된 프리미티브들에 대해 스캔 라인 래스터화를 수행하는 제 2 픽셀 반복자 회로와,
    상기 제 2 반복자 셋업 계산 회로에 연결되어 고정확 파이프라인을 형성하는 상기 제 2 픽셀 반복자 회로와 연결되고, 크거나 미스비헤브드된(misbehaved) 것으로 분류된 프리미티브들의 텍스쳐 속성들에 대해 원근 조정을 수행하는 제 2 원근제산 회로
    를 더 포함하는 그래픽 엔진.
  22. 제 19 항에 있어서, 상기 표현/래스터화 엔진은
    상기 제 1 반복자 셋업 계산 회로 및 제 2 반복자 셋업 계산 회로와 연결되고, 분류에 관계없이 모든 프리미티브들에 대해 스캔 라인 래스터화를 수행하는 픽셀 반복자 회로와,
    상기 픽셀 반복자 회로와 연결되고, 제 1 원근제산 회로의 경우 모든 프리미티브들의 텍스쳐 속성들에 대해 원근 조정을 수행하는 원근제산 회로를
    포함하는 그래픽 엔진.
  23. 제 17 항에 있어서, 상기 프리미티브 셋업 엔진은
    상기 프리미티브 분류 회로와 결합되고, 상기 프리미티브 분류 회로에 의해 구성되어 작고 웰-비헤브드된(well-behaved) 것으로 분류된 프리미티브들에 대해서는 저정확 처리 모드에서 상기 셋업 방정식들을 연산하고, 상기 프리미티브 분류 회로에 의해 구성되어 크고 미스비헤브드된(misbehaved) 것으로 분류된 프리미티브들에 대해서는 고정확 처리 모드에서 상기 셋업 방정식들을 연산하는 구성가능한 반복자 셋업 계산 회로를
    더 포함하는 그래픽 엔진.
  24. 제 23 항에 있어서, 상기 프리미티브 분류 회로는
    상기 구성가능한 반복자 셋업 계산 회로를 부동소수점 계산에 이용가능한 복수의 가수 비트를 디스에이블함으로써 저정확 처리 모드에서 동작하도록 구성하고, 상기 구성가능한 반복자 셋업 계산 회로를 상기 동일한 복수의 가수 비트를 인에이블함으로써 고정확 처리 모드에서 동작하도록 구성하는
    그래픽 엔진.
  25. 제 24 항에 있어서, 상기 표현/래스터화 엔진은
    상기 반복자 셋업 계산 회로에 연결되고, 분류에 관계없이 모든 프리미티브 들에 대해 스캔 라인 래스터화를 수행하는 픽셀 반복자 회로와,
    상기 픽셀 반복자 회로에 연결되고, 제 1 원근제산 회로는 모든 프리미티브들의 텍스쳐 속성에 대해 원근 보정을 수행하는 원근제산 회로를
    포함하는 그래픽 엔진.
  26. 제 25 항에 있어서,
    상기 프리미티브 분류 회로와 결합되고, 사용자에 의한 입력 정보를 상기 프리미티브 분류 회로에 전달하여 상기 프리미티브 분류 회로를 원하는 정확도 동작 모드에서 동작하도록 하는 사용자 인터페이스를
    더 포함하는 그래픽 엔진
  27. 제 26 항에 있어서, 상기 사용자에 의해 선택된 상기 원하는 정확도 모드는
    상기 프리미티브 분류 회로에 의해 선택된 정확도 모드를 오버라이드 하는
    그래픽 엔진.
  28. 제 25 항에 있어서, 그래픽 엔진은
    상기 프리미티브 분류 회로와 결합되고, 활성화되어 실행되고 있는 어플리케이션이 끝날 때까지 휴대용 핸드헬드 장치의 동작을 지속시키는데 필요한 전력 레벨을 결정하고 적절한 정확도 동작 모드를 선택하며, 상기 결정된 정확도 동작 모드를 상기 프리미티브 분류 회로에 전달하여 상기 프리미티브 분류 회로가 선택된 정확도 동작 모드에서 동작하도록 구성하는 전력 모니터를
    더 포함하는 그래픽 엔진.
  29. 제 28 항에 있어서, 상기 전력 모니터는
    사용가능한 전력 표시자 및 상기 활성화되어 실행중인 어플리케이션의 잔여 동작 시간 표시자를 비교하여 상기 결정을 내리는
    그래픽 엔진.
  30. 제 31 항에 있어서, 상기 선택된 정확도 모드는
    상기 프리미티브 분류 회로에 의해 선택된 상기 정확도 모드를 오버라이드 하는
    그래픽 엔진.
  31. 제 22 항에 있어서,
    상기 프리미티브 분류 회로에 결합되고, 사용자에 의한 입력 정보를 상기 프리미티브 분류 회로에 전달하여 상기 프리미티브 분류 회로를 원하는 정확도 동작 모드에서 동작하도록 하는 사용자 인터페이스를
    더 포함하는 그래픽 엔진.
  32. 제 31 항에 있어서, 상기 사용자에 의해 선택된 상기 원하는 정확도 모드는
    상기 프리미티브 분류 회로에 의해 선택된 상기 정확도 모드를 오버라이드하는
    그래픽 엔진.
  33. 제 22 항에 있어서,
    상기 프리미티브 분류 회로와 결합되고, 활성화되어 실행되고 있는 어플리케이션이 끝날 때까지 휴대용 핸드헬드 장치의 동작을 지속시키는데 필요한 전력 레벨을 결정하고 적절한 정확도 동작 모드를 선택하며, 상기 결정된 정확도 동작 모드를 상기 프리미티브 분류 회로에 전달하여 상기 프리미티브 분류 회로가 선택된 정확도 동작 모드에서 동작하도록 구성하는 전력 모니터를
    더 포함하는 그래픽 엔진.
  34. 제 33 항에 있어서, 상기 전력 모니터는
    사용가능한 전력 표시자 및 상기 활성화되어 실행중인 어플리케이션의 잔여 동작 시간 표시자를 비교하여 상기 결정을 내리는
    그래픽 엔진.
  35. 제 33 항에 있어서, 상기 선택된 정확도 동작 모드는
    상기 프리미티브 분류 회로에 의해 선택된 상기 정확도 모드를 오버라이드하는 그래픽 엔진.
KR1020067002303A 2003-09-18 2004-09-17 휴대용 핸드헬드 장치를 위한 고품질 고성능의 3 차원그래픽 아키텍쳐 KR101017828B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/667,098 US7418606B2 (en) 2003-09-18 2003-09-18 High quality and high performance three-dimensional graphics architecture for portable handheld devices
US10/667,098 2003-09-18
US10/677,098 2003-09-18

Publications (2)

Publication Number Publication Date
KR20060066081A true KR20060066081A (ko) 2006-06-15
KR101017828B1 KR101017828B1 (ko) 2011-02-28

Family

ID=34313263

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067002303A KR101017828B1 (ko) 2003-09-18 2004-09-17 휴대용 핸드헬드 장치를 위한 고품질 고성능의 3 차원그래픽 아키텍쳐

Country Status (6)

Country Link
US (3) US7418606B2 (ko)
EP (1) EP1671273B1 (ko)
JP (1) JP4799409B2 (ko)
KR (1) KR101017828B1 (ko)
TW (1) TWI368869B (ko)
WO (1) WO2005029406A2 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101026821B1 (ko) * 2008-03-21 2011-04-04 후지쯔 가부시끼가이샤 단정밀도 부동 소수점 데이터의 저장 방법 및 프로세서
US8346830B2 (en) 2007-10-23 2013-01-01 Yamaha Corporation Digital signal processing apparatus
US8595279B2 (en) 2006-02-27 2013-11-26 Qualcomm Incorporated Floating-point processor with reduced power requirements for selectable subprecision
US8918446B2 (en) 2010-12-14 2014-12-23 Intel Corporation Reducing power consumption in multi-precision floating point multipliers

Families Citing this family (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9330060B1 (en) 2003-04-15 2016-05-03 Nvidia Corporation Method and device for encoding and decoding video image data
US8660182B2 (en) 2003-06-09 2014-02-25 Nvidia Corporation MPEG motion estimation based on dual start points
WO2005037388A1 (ja) * 2003-10-21 2005-04-28 Sony Computer Entertainment Inc. 電子装置
US7868890B2 (en) * 2004-02-24 2011-01-11 Qualcomm Incorporated Display processor for a wireless device
US8411105B1 (en) 2004-05-14 2013-04-02 Nvidia Corporation Method and system for computing pixel parameters
US7538773B1 (en) * 2004-05-14 2009-05-26 Nvidia Corporation Method and system for implementing parameter clamping to a valid range in a raster stage of a graphics pipeline
US7190366B2 (en) * 2004-05-14 2007-03-13 Nvidia Corporation Method and system for a general instruction raster stage that generates programmable pixel packets
US7079156B1 (en) 2004-05-14 2006-07-18 Nvidia Corporation Method and system for implementing multiple high precision and low precision interpolators for a graphics pipeline
US8432394B1 (en) 2004-05-14 2013-04-30 Nvidia Corporation Method and system for implementing clamped z value interpolation in a raster stage of a graphics pipeline
US8416242B1 (en) 2004-05-14 2013-04-09 Nvidia Corporation Method and system for interpolating level-of-detail in graphics processors
US7595806B1 (en) 2004-08-03 2009-09-29 Nvidia Corporation Method and system for implementing level of detail filtering in a cube mapping application
JP2006195945A (ja) * 2004-12-14 2006-07-27 Matsushita Electric Ind Co Ltd 電子装置及びそのピーク電力制御方法
KR100652705B1 (ko) * 2004-12-30 2006-12-01 엘지전자 주식회사 이동 통신 단말기의 영상 화질 개선 장치 및 그 방법
US8773328B2 (en) * 2005-02-12 2014-07-08 Broadcom Corporation Intelligent DMA in a mobile multimedia processor supporting multiple display formats
US7725519B2 (en) * 2005-10-05 2010-05-25 Qualcom Incorporated Floating-point processor with selectable subprecision
US8731071B1 (en) 2005-12-15 2014-05-20 Nvidia Corporation System for performing finite input response (FIR) filtering in motion estimation
JP4355705B2 (ja) * 2006-02-23 2009-11-04 エヌイーシーコンピュータテクノ株式会社 乗算装置、及び演算装置
US8724702B1 (en) 2006-03-29 2014-05-13 Nvidia Corporation Methods and systems for motion estimation used in video coding
US7843468B2 (en) 2006-07-26 2010-11-30 Nvidia Corporation Accellerated start tile search
US8009172B2 (en) * 2006-08-03 2011-08-30 Qualcomm Incorporated Graphics processing unit with shared arithmetic logic unit
KR100829561B1 (ko) * 2006-08-24 2008-05-15 삼성전자주식회사 3차원 그래픽 데이터 렌더링 방법 및 장치
US8660380B2 (en) 2006-08-25 2014-02-25 Nvidia Corporation Method and system for performing two-dimensional transform on data value array with reduced power consumption
KR101272335B1 (ko) * 2006-10-20 2013-06-07 삼성디스플레이 주식회사 표시 장치 및 그의 구동 방법
US20080117223A1 (en) * 2006-11-21 2008-05-22 Peter Mayer Display with memory for storing picture data
US8421794B2 (en) * 2007-03-23 2013-04-16 Qualcomm Incorporated Processor with adaptive multi-shader
KR100919236B1 (ko) * 2007-05-22 2009-09-30 한국전자통신연구원 병렬 프로세서를 이용한 3차원 그래픽 기하 변환 방법
US8756482B2 (en) 2007-05-25 2014-06-17 Nvidia Corporation Efficient encoding/decoding of a sequence of data frames
US20080291209A1 (en) * 2007-05-25 2008-11-27 Nvidia Corporation Encoding Multi-media Signals
US9118927B2 (en) 2007-06-13 2015-08-25 Nvidia Corporation Sub-pixel interpolation and its application in motion compensated encoding of a video signal
US8873625B2 (en) 2007-07-18 2014-10-28 Nvidia Corporation Enhanced compression in representing non-frame-edge blocks of image frames
US8441497B1 (en) 2007-08-07 2013-05-14 Nvidia Corporation Interpolation of vertex attributes in a graphics processor
US20090109996A1 (en) * 2007-10-29 2009-04-30 Hoover Russell D Network on Chip
US20090125706A1 (en) * 2007-11-08 2009-05-14 Hoover Russell D Software Pipelining on a Network on Chip
US20090125703A1 (en) * 2007-11-09 2009-05-14 Mejdrich Eric O Context Switching on a Network On Chip
TWI334798B (en) * 2007-11-14 2010-12-21 Generalplus Technology Inc Method for increasing speed in virtual third dimensional application
US8526422B2 (en) * 2007-11-27 2013-09-03 International Business Machines Corporation Network on chip with partitions
US8473667B2 (en) * 2008-01-11 2013-06-25 International Business Machines Corporation Network on chip that maintains cache coherency with invalidation messages
US8010750B2 (en) * 2008-01-17 2011-08-30 International Business Machines Corporation Network on chip that maintains cache coherency with invalidate commands
US8571879B2 (en) * 2008-01-21 2013-10-29 Panasonic Corporation Sound reproducing device adding audio data to decoded sound using processor selected based on trade-offs
TWI364724B (en) * 2008-02-12 2012-05-21 Generalplus Technology Inc Method for increasing operation speed in virtual three dimensional (3d) application and operational method thereof
US8490110B2 (en) * 2008-02-15 2013-07-16 International Business Machines Corporation Network on chip with a low latency, high bandwidth application messaging interconnect
US20090260013A1 (en) * 2008-04-14 2009-10-15 International Business Machines Corporation Computer Processors With Plural, Pipelined Hardware Threads Of Execution
US8633936B2 (en) * 2008-04-21 2014-01-21 Qualcomm Incorporated Programmable streaming processor with mixed precision instruction execution
US8078850B2 (en) * 2008-04-24 2011-12-13 International Business Machines Corporation Branch prediction technique using instruction for resetting result table pointer
US8392664B2 (en) * 2008-05-09 2013-03-05 International Business Machines Corporation Network on chip
US7991978B2 (en) * 2008-05-09 2011-08-02 International Business Machines Corporation Network on chip with low latency, high bandwidth application messaging interconnects that abstract hardware inter-thread data communications into an architected state of a processor
US8214845B2 (en) * 2008-05-09 2012-07-03 International Business Machines Corporation Context switching in a network on chip by thread saving and restoring pointers to memory arrays containing valid message data
US8494833B2 (en) * 2008-05-09 2013-07-23 International Business Machines Corporation Emulating a computer run time environment
US8020168B2 (en) * 2008-05-09 2011-09-13 International Business Machines Corporation Dynamic virtual software pipelining on a network on chip
US7958340B2 (en) * 2008-05-09 2011-06-07 International Business Machines Corporation Monitoring software pipeline performance on a network on chip
US8230179B2 (en) * 2008-05-15 2012-07-24 International Business Machines Corporation Administering non-cacheable memory load instructions
US8438578B2 (en) * 2008-06-09 2013-05-07 International Business Machines Corporation Network on chip with an I/O accelerator
US20100138677A1 (en) * 2008-12-01 2010-06-03 International Business Machines Corporation Optimization of data distribution and power consumption in a data center
US8666181B2 (en) 2008-12-10 2014-03-04 Nvidia Corporation Adaptive multiple engine image motion detection system and method
US20100309196A1 (en) * 2009-06-08 2010-12-09 Castleman Mark Methods and apparatus for processing related images of an object based on directives
US8286084B2 (en) * 2009-06-08 2012-10-09 Swakker Llc Methods and apparatus for remote interaction using a partitioned display
US20100309094A1 (en) * 2009-06-08 2010-12-09 Castleman Mark Methos and apparatus for remote interaction using a partitioned display
US8860781B2 (en) * 2009-06-30 2014-10-14 Qualcomm Incorporated Texture compression in a video decoder for efficient 2D-3D rendering
US8482574B2 (en) * 2009-10-06 2013-07-09 Nvidia Corporation System, method, and computer program product for calculating statistics associated with a surface to be rendered utilizing a graphics processor
EP2616954B1 (en) * 2010-09-18 2021-03-31 Google LLC A method and mechanism for rendering graphics remotely
US9652016B2 (en) * 2011-04-27 2017-05-16 Nvidia Corporation Techniques for degrading rendering quality to increase operating time of a computing platform
US8671299B2 (en) 2011-05-26 2014-03-11 Google Inc. Delaying the initiation of transitioning to a lower power mode by placing a computer system into an intermediate power mode between a normal power mode and the lower power mode
US9128697B1 (en) * 2011-07-18 2015-09-08 Apple Inc. Computer numerical storage format with precision type indicator
US9019280B2 (en) 2011-07-22 2015-04-28 Qualcomm Incorporated Area-based rasterization techniques for a graphics processing system
US9032467B2 (en) 2011-08-02 2015-05-12 Google Inc. Method and mechanism for efficiently delivering visual data across a network
US9105112B2 (en) 2013-02-21 2015-08-11 Apple Inc. Power management for image scaling circuitry
US9324127B2 (en) 2014-02-14 2016-04-26 Qualcomm Incorporated Techniques for conservative rasterization
KR102444240B1 (ko) 2015-07-29 2022-09-16 삼성전자주식회사 텍스쳐 처리 방법 및 장치
CN106708499B (zh) 2015-11-13 2020-10-27 财团法人工业技术研究院 绘图处理程序的分析方法与分析系统
US20170322808A1 (en) * 2016-05-05 2017-11-09 Cirrus Logic International Semiconductor Ltd. Low-power processor with support for multiple precision modes
US20170337728A1 (en) * 2016-05-17 2017-11-23 Intel Corporation Triangle Rendering Mechanism
US10042774B2 (en) * 2016-09-19 2018-08-07 Advanced Micro Devices, Inc. Method and apparatus for masking and transmitting data
US10467796B2 (en) * 2017-04-17 2019-11-05 Intel Corporation Graphics system with additional context
US11010659B2 (en) * 2017-04-24 2021-05-18 Intel Corporation Dynamic precision for neural network compute operations
US10726514B2 (en) 2017-04-28 2020-07-28 Intel Corporation Compute optimizations for low precision machine learning operations
US11263291B2 (en) * 2020-06-26 2022-03-01 Intel Corporation Systems and methods for combining low-mantissa units to achieve and exceed FP64 emulation of matrix multiplication

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0876949A (ja) * 1994-08-31 1996-03-22 Canon Inc 画像形成装置
US6160557A (en) * 1996-10-17 2000-12-12 International Business Machines Corporation Method and apparatus providing efficient rasterization with data dependent adaptations
JPH10269377A (ja) * 1997-03-27 1998-10-09 Toshiba Corp 表示制御システムおよび3次元グラフィクスデータの表示制御方法
US6473089B1 (en) 1998-03-02 2002-10-29 Ati Technologies, Inc. Method and apparatus for a video graphics circuit having parallel pixel processing
JP3586369B2 (ja) * 1998-03-20 2004-11-10 インターナショナル・ビジネス・マシーンズ・コーポレーション ビデオ・クロックの周波数を下げる方法及びコンピュータ
US6222550B1 (en) 1998-12-17 2001-04-24 Neomagic Corp. Multiple triangle pixel-pipelines with span-range pixel interlock for processing separate non-overlapping triangles for superscalar 3D graphics engine
US6384833B1 (en) 1999-08-10 2002-05-07 International Business Machines Corporation Method and parallelizing geometric processing in a graphics rendering pipeline
JP2001202053A (ja) * 1999-11-09 2001-07-27 Matsushita Electric Ind Co Ltd 表示装置及び情報携帯端末
JP2002189539A (ja) * 2000-10-02 2002-07-05 Fujitsu Ltd ソフトウェア処理装置、プログラム及び記録媒体
KR100408021B1 (ko) * 2000-12-29 2003-12-01 엘지전자 주식회사 엘씨디 시스템의 인터페이스 장치 및 방법
US6778179B2 (en) * 2001-05-18 2004-08-17 Sun Microsystems, Inc. External dirty tag bits for 3D-RAM SRAM
US6720969B2 (en) * 2001-05-18 2004-04-13 Sun Microsystems, Inc. Dirty tag bits for 3D-RAM SRAM
JP4052831B2 (ja) * 2001-12-19 2008-02-27 株式会社ルネサステクノロジ レンダリング処理装置およびレンダリング処理方法
EP1391812A1 (en) * 2002-08-20 2004-02-25 Texas Instruments Incorporated Hardware accelerator for performing division

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8595279B2 (en) 2006-02-27 2013-11-26 Qualcomm Incorporated Floating-point processor with reduced power requirements for selectable subprecision
US8346830B2 (en) 2007-10-23 2013-01-01 Yamaha Corporation Digital signal processing apparatus
KR101026821B1 (ko) * 2008-03-21 2011-04-04 후지쯔 가부시끼가이샤 단정밀도 부동 소수점 데이터의 저장 방법 및 프로세서
US8412761B2 (en) 2008-03-21 2013-04-02 Fujitsu Limited Single precision floating-point data storing method and processor
US8918446B2 (en) 2010-12-14 2014-12-23 Intel Corporation Reducing power consumption in multi-precision floating point multipliers

Also Published As

Publication number Publication date
JP4799409B2 (ja) 2011-10-26
EP1671273A2 (en) 2006-06-21
EP1671273A4 (en) 2009-10-28
EP1671273B1 (en) 2012-11-28
JP2007514209A (ja) 2007-05-31
WO2005029406A3 (en) 2009-02-19
US7328358B1 (en) 2008-02-05
US7313710B1 (en) 2007-12-25
KR101017828B1 (ko) 2011-02-28
US20050066205A1 (en) 2005-03-24
TWI368869B (en) 2012-07-21
TW200519730A (en) 2005-06-16
US7418606B2 (en) 2008-08-26
WO2005029406A2 (en) 2005-03-31

Similar Documents

Publication Publication Date Title
KR101017828B1 (ko) 휴대용 핸드헬드 장치를 위한 고품질 고성능의 3 차원그래픽 아키텍쳐
CN109643443B (zh) 图形处理器流水线中的高速缓存和压缩互操作性
US8094164B1 (en) Decompression of block encoded texture data
US8098257B2 (en) Filtering unit for floating-point texture data
US7633507B2 (en) Graphics texture processing methods, apparatus and computer program products using block overlapping and/or texture filtering
US8605104B1 (en) Threshold-based lossy reduction color compression
US9024969B2 (en) Method and device for performing user-defined clipping in object space
US7898550B2 (en) System and method for memory bandwidth compressor
US11593069B2 (en) Use of a single instruction set architecture (ISA) instruction for vector normalization
Kim et al. An SoC with 1.3 Gtexels/s 3-D graphics full pipeline for consumer applications
US9111328B2 (en) Texture compression and decompression
JP2006323841A (ja) テクスチャキャッシュメモリ装置及びこれを利用した3次元グラフィック加速器および方法
US11934797B2 (en) Mechanism to perform single precision floating point extended math operations
US20210357151A1 (en) Dynamic processing memory core on a single memory chip
Krause ftc—floating precision texture compression
Nam et al. Development of a 3-D graphics rendering engine with lighting acceleration for handheld multimedia systems
Kim et al. 3D graphics accelerator platform for mobile devices
Wu et al. Designing a 3D Graphics Processor for Mobile Applications
Crisu et al. Low cost and latency embedded 3D graphics reciprocation

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140121

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150119

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160201

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170213

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180212

Year of fee payment: 8