JP4799409B2 - 手持ち式携帯デバイスのための高質・高性能3dグラフィックスアーキテクチャ - Google Patents

手持ち式携帯デバイスのための高質・高性能3dグラフィックスアーキテクチャ Download PDF

Info

Publication number
JP4799409B2
JP4799409B2 JP2006527085A JP2006527085A JP4799409B2 JP 4799409 B2 JP4799409 B2 JP 4799409B2 JP 2006527085 A JP2006527085 A JP 2006527085A JP 2006527085 A JP2006527085 A JP 2006527085A JP 4799409 B2 JP4799409 B2 JP 4799409B2
Authority
JP
Japan
Prior art keywords
circuit
processing
data
data processing
classification
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Lifetime
Application number
JP2006527085A
Other languages
English (en)
Other versions
JP2007514209A5 (ja
JP2007514209A (ja
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 JP2007514209A publication Critical patent/JP2007514209A/ja
Publication of JP2007514209A5 publication Critical patent/JP2007514209A5/ja
Application granted granted Critical
Publication of JP4799409B2 publication Critical patent/JP4799409B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)
  • Power Sources (AREA)
  • Image Processing (AREA)

Description

発明の分野
本発明は、一般にコンピュータシステムに関し、特に、最適な節電を行なうためのコンピュータグラフィックス三角形セットアップ・ラスタ化ユニットに関する。
発明の背景
リアルタイム3次元(3D)イメージングを行なうバッテリ作動の手持ち式携帯デバイス、例えばパーソナルデイタルアシスタント(PDA)、携帯電話、手持ち式電子ゲーム機などは、極めて人気が高くなってきている。これらの人気は、利用可能なネットワーク接続性のオプションによって助長されている。現在、無線データサービスにより、次世代の高性能な電力消費量が低い手持ち式デバイスは、どこでも、いつでも、ネットワーク中心のアプリケーションおよびコンテンツにアクセスすることができる。その結果、これらの手持ち式デバイスは、携帯電話サービスを提供できることに加えて、豊富なウェブ体験以上のものを提供する画像およびビデオクリップを共有する2ウェイビデオをサポートすることができる。
モバイルアプリケーションがリッチで複雑になるにつれて、PDAやスマートフォン(高度自動機能電話)等の手持ち式デバイスにおいては、マルチメディアを随意的に処理する能力が必要になってくる。ビデオメール、マッピングサービス、読み取りPDFファイル、3Dグラフィックスリッチゲーム等のアプリケーションは全て、高質・高性能グラフィックスおよびマルチメディア能力を必要とする。これらの能力は、以前は殆どのハンドヘルドユーザが利用できなかった方法でリッチ画像およびシステムから利益を得る新たなアプリケーションを可能にする。これらの手持ち式携帯デバイスは、全体のシステムエネルギ消費量およびコストを低減しつつ強力なユーザ体験を与えるという課題に直面する。従来、手持ち式携帯デバイスは、デスクトップパーソナルコンピュータ(PC)よりも低い性能の構成要素を有している。これは、主に、バッテリ作動の手持ち式デバイスに固有の電力制限によるものである
一般に、3Dオブジェクトのレンダリングは、極めて難解な計算であり、電力が集中するため、バッテリ作動の手持ち式デバイスの助けとならない。3Dオブジェクトおよび表面は、関連する多角形として、通常は三角形として近似される。多数の小さい三角形を使用してオブジェクトを近似するとともに、テクスチャマップを使用して表面材料特徴をより正確にレンダリングすることにより、十分なリアリズムを得ることができる。各三角形のレンダリングには、複数の複雑な計算の実行が必要である。三角形の数が増えるにつれて、これらの計算を行なうロジックの複雑度および電力消費量も増大する。3Dグラフィックスアプリケーションは、より高い質および性能を持つアプリケーションが出現するにつれて人気を増し続けている。
「Method and Apparatus For A Video Graphics Circuit Having Parallel Pixel Processing」と題された米国特許第6,473,089号(以下、’089特許という)は、3Dグラフィックスピクセル情報の並行処理のためのビデオグラフィックス回路を教示している。’089特許のビデオグラフィックス回路は、セットアップエンジンと、エッジウォーカー回路と、スパン処理回路と、複数のピクセル処理回路とを有している。複数のピクセル処理回路により、ピクセルパラメータの並行処理が可能になる。’089特許は性能が向上したビデオグラフィックス回路を教示しているが、節電の問題を扱っていない。その結果、’089特許のグラフィックス回路は、電力消費量を考慮することが重大となっているバッテリ作動の手持ち式携帯デバイスでの使用に適していない。
「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特許は、性能が向上したビデオグラフィックス回路を教示しているが、節電の問題を扱っていない。その結果、’550特許のグラフィックス回路も、電力消費量を考慮することが重大となっているバッテリ作動の手持ち式携帯デバイスでの使用に適していない。
そのため、電力消費量を考慮することが重大となっている手持ち式携帯デバイスに適した高質および高性能の3Dグラフィックスアーキテクチャの必要性が存在する。
発明の概要
したがって、本発明は、電力消費量を考慮することが重大となっている手持ち式携帯デバイスに適した高質および高性能の3Dグラフィックスアーキテクチャを提供する。
本発明は、メモリおよび中央処理ユニット(CPU)に結合されたグラフィックスエンジンを導入する3Dグラフィックスアーキテクチャを用いて前述した必要性を満たす。グラフィックスエンジンは、レンダリング/ラスタ化エンジンに結合されたプリミティブセットアップエンジンを備える。プリミティブセットアップエンジンは、グラフィックスプリミティブに関連するデータをメモリから受ける。プリミティブセットアップエンジンは、プリミティブを分類する際に使用されるプリミティブ分類回路を有している。プリミティブセットアップエンジンは、分類に基づいて、質および性能を犠牲にすることなく電力消費量を最小限に抑えるようにプリミティブのためのセットアップ方程式を計算するための処理モードを選択する。レンダリング/ラスタ化エンジンは、一般に、プリミティブのピクセルラスタ化を行なう。
本発明において、プリミティブは、そのサイズおよび他の特徴に基づいて分類される。プリミティブは、小さく且つ形が整っているものとして、または、大きくあるいは形が悪いものとして分類される。プリミティブの態様を分類する際、利用される分類基準は、サイズ、テクスチャ、幅、デプスを含むが、これらに限定されない。
以下、前述した一般的な概念の様々な実施を説明するグラフィックスエンジンの多くの実施形態が与えられている。他の更なる特徴についても説明されている。
本発明の特徴および利点の全ては、添付図面と共にその説明がなされる以下の本発明の好ましい実施形態の詳細な説明から明らかとなろう。
発明の詳細説明
本発明の以下の詳細な説明では、本発明を十分に理解できるように多数の特定の内容が述べられている。しかしながら、当業者であれば分かるように、本発明は、これらの特定の内容を伴うことなく実施されてもよい。他の場合においては、本発明の態様を不必要に分かり難くしないように、周知の方法、手段、構成要素、回路を詳細に説明しなかった。本発明の以下の詳細な説明は、3次元(3D)グラフィックスおよび手持ち式の携帯デバイスに関するものであるが、本発明が2次元グラフィックスおよび他のタイプの計算/処理デバイスにも適用できることは言うまでもない。
本発明に係る3Dグラフィックスアーキテクチャは、サイズおよび他の特徴によって多角形を分類するためのモジュール/回路を組み込んでいる。好ましい実施形態においては、多角形が三角形である。一般に、小さくて形の整った三角形は、質や性能(例えば、リアリズム、分解能(解像度)等)を何ら犠牲にすることなく、電力効率のよい回路を有する低精度ユニットを使用して処理できる。分類に基づいて、更に電力効率がよい回路を有する低精度ユニットまたは更に電力を要する高精度ユニットを選択的にONして、レンダリング/ラスタ化プロセスを実行する。1つの実施形態では、高精度ユニットが低精度ユニットから分かれていてもよい。あるいは、高精度ユニットは、低精度ユニットとなるように回路の一部を無効にしおよび/またはクロックゲート化することにより再構成されてもよい。プリミティブを分類するとともに、より電力効率がよい処理ユニットを選択して、プリミティブを処理することにより、質や性能を犠牲にすることなく、電力消費量を最小限に抑えることができる。以下に詳細に説明する様々な実施形態により、3Dグラフィックスアーキテクチャを実施することができる。
データを連続して処理する任意のデータ経路またはデータパイプラインを網羅するために本発明を一般化できることは明らかである。処理されるデータ(例えば、MPEGビデオのマクロブロック)が分類され、また、その分類に応じて、(例えば、電力効率に関して)最も適したデータ経路が(構成可能なデータ経路から)構成されあるいは(複数のデータ経路から)選択され、それにより、質や性能を何ら低下させることなく分類されたデータが処理される。
ここで、本発明が実施されあるいは実行されてもよいコンピュータシステム100の高レベル線図を一例として示す図1を参照する。特に、コンピュータシステム100は、ラップトップコンピュータシステムまたはハンドヘルドコンピュータシステムであってもよい。このコンピュータシステム100は、単なる典型例であり、デスクトップコンピュータシステム、汎用コンピュータシステム、組み込み型コンピュータシステム等を含む多くの異なるコンピュータシステム内で本発明が機能できることは言うまでもない。
図1に示されるように、コンピュータシステム100は、集積プロセッサ回路101と、周辺制御装置102と、読み出し専用メモリ(ROM)103と、ランダムアクセスメモリ(RAM)104とを含む高集積システムである。高集積アーキテクチャにより、電力を節約することができる。集積プロセッサ回路101内に設けられていない複雑なおよび/または高ピンカウントの周辺機器とインタフェースをとる必要がある場合には、周辺制御装置102は任意である。
周辺制御装置102は、集積プロセッサ回路101の一端に接続されているが、ROM103およびRAM104は、集積プロセッサ回路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)、ファイアワイヤ(IEEE 1394)等のシリアルI/Oデバイスが集積プロセッサ回路101に対して接続するためのインタフェースを備える。入力デバイスインタフェース112は、キーボード、マウス、タッチパッド等の入力デバイスが集積プロセッサ回路101に対して接続するためのインタフェースを備える。
DMAコントローラ108は、メモリインタフェース106を介して、RAM104に記憶されたデータに対してアクセスするとともに、CODECインタフェース109、パラレルインタフェース110、シリアルインタフェース111または入力デバイスインタフェース112に接続された周辺デバイスに対してデータを供給する。また、DMAコントローラ108は、CODECインタフェース109、パラレルインタフェース110、シリアルインタフェース111、入力デバイスインタフェース112からのデータを、メモリインタフェース106を介してRAM104へと送る。グラフィックス/ディスプレイコントローラ107は、メモリインタフェース106を介して、RAM104からビデオ/グラフィックスデータを要求し且つ当該データにアクセスする。その後、グラフィックス/ディスプレイコントローラ107は、データを処理して、処理されたデータをフォーマットするとともに、フォーマットされたデータを液晶ディスプレイ(LCD)、ブラウン管(CRT)、または、テレビ(TV)モニタ等の表示装置に対して送る。コンピュータシステム100では、集積プロセッサ回路101をROM103およびRAM104に対して接続するために1つのメモリバスが使用される。
本発明は、グラフィックス/ディスプレイコントローラ107の一部として実施される。ここで、グラフィックス/ディスプレイコントローラ107を詳細に示す図2を参照する。一般に、グラフィックス/ディスプレイコントローラ107は、CPUインタフェースユニット(CIF)201と、SRAM202と、フェーズロックドループ(PLL)回路203と、オシレータ204と、ピクセル処理ロジック208と、2次元(2D)グラフィックスエンジン(GE)206と、メモリインタフェースユニット(MIU)207と、フラットパネルインタフェース(FPI)209と、CRTデジタル・アナログ変換器(DAC)210と、後処理モジュール211と、MPEG−4ビデオデコーダ212と、MPEG−4ビデオエンコーダ213と、3D GE214とを備える。グラフィックス/ディスプレイコントローラ107は、ビデオカメラを受け入れるためのビデオ入力ポートを更に含む。CIF201は、処理ユニット105およびDMAコントローラ108に対するインタフェースを備える。したがって、CIF201は、処理ユニット105から受けた要求およびビデオ/画像データを所望の宛先へと経路指定(ルーティング)する。特に、CIF201は、ホストCPU処理ユニット105およびDMAコントローラ108からのレジスタ読み取り/書き込み要求およびメモリ読み取り/書き込み要求をグラフィックス/ディスプレイコントローラ107内の適切なモジュールへと送る。例えば、メモリ読み取り/書き込み要求がMIU207へと伝えられ、MIU207は、SRAM202内のフレームバッファから/へとデータを読み取る/書き込む。また、CIF201は、DMAコントローラ108との連絡役として機能して、システムメモリ(ROM103およびRAM104)からデータをフェッチする(取り出す)とともに、そのデータをGE206およびMIU207に対して供給する。また、CIF201は、MPEG後処理プロセスを制御するために処理ユニット105内のホストCPUによってプログラム可能な多くの制御レジスタを有している(例えば、制御レジスタのうちの幾つかの内容は、MPEG−4デコーダ212を構成するために使用されてもよい)。また、CIF201は、画像の構成/解凍を行なうために、圧縮されたビデオ/画像ビットストリームをMPEG−4デコーダ212に対して送る。更に、CIF201は、集積プロセッサ回路101に直接的または間接的に接続されたデバイスに対して圧縮されたビットストリームが送信可能となる前に、圧縮を行なうため、コーデックインタフェース109またはシリアルインタフェース111に接続されたソースから受けた圧縮されていないビデオ/画像ビットストリームをMPEG−4エンコーダに対して送る。
SRAM202内のフレームバッファは、モニタ上に表示される画像のピクセルマップ(すなわち、フレームバッファにマッピングされるピクセルパターン)を記憶するため、および様々な目的で一時バッファとしての機能を果たすために使用される。また、SRAM202は、ビデオバッファおよびトランザクションレジスタのために割り当てられたメモリを有していてもよい。2D GE206は、その後にホストCPUによって発せられるコマンドに基づいてSRAM202内のバッファに記憶されるグラフィックス/ビデオ画像データを処理する。GE206は、グラフィックス演算(例えば、BitBLTsおよびROPs、エリアフィル、線画)を行なうとともに、クリッピング、透過、回転、色拡張等のためのハードウェアサポートを行なう。更に、GE206は、内蔵されているストレッチ・ブロック・トランスファ(STRBLT)機能により、ビデオ画像拡張、プログレッシブスキャニング変換、YcbCr(YUV)−RGB色空間変換等を行なう。要するに、2D GE206は、処理ユニット105を、ビデオ/グラフィックス表示レンダリング機能から解放して、処理ユニット105がタイムクリティカルなあるいはリアルタイムな演算を行なえるようにする。
3D GE214が本発明を実施する。ホストCPUのコマンドの下、3D GE214は、表示のために3Dグラフィックスの処理およびレンダリングを実行する。一般に、3D GE214は、データパイプライン(別名:データ経路)態様で3Dグラフィックスを連続して処理する。このような処理としては、プリミティブ頂点情報をフェッチすること、頂点情報をソートすること、プリミティブ面積を計算してプリミティブを分類すること、面積計算および/またはプリミティブ分類を使用して、3Dグラフィックスを処理するための適切な(例えば、最も電力効率がよい)回路を選択または構成すること、ピクセルの位置および属性における初期値および階調を計算すること、三角形プリミティブの各ピクセル毎に位置および属性の値を計算すること、パースペクティブ分割を行なうこと、フィルタモードによって必要とされるテクセルデータをテクスチャキャッシュから取り出すこと、テクスチャと拡散色とを組み合わせて新たな拡散色(dc)を生成すること、アルファ、デプス、ステンシルテストを行なうこと、dcとフレームバッファからのピクセルカラーとを組み合わせてレンダリングされた3Dデータを生成することを挙げることができるが、これらの機能に限定されない。3D GE214は、その後、処理された3Dをフレームバッファ202に対して供給する。プリミティブ面積の計算、プリミティブの分類、3Dグラフィックスデータを処理するための適した回路のその後の選択または構成等のような本発明に関連する機能を除き、3D GE214によって行なわれる残りの機能は、一般に、良く知られており、全てとはいえないにしても殆どの市販されている3Dグラフィックスエンジンで実行される。
MIU207は、SRAM(フレームバッファ)202内のフレームバッファ、ビデオバッファ、トランザクションレジスタから/への全ての読み取りおよび書き込みを制御する。そのような読み取りおよび書き込み要求は、CIF201、2D GE206、3D GE214、ピクセル処理ロジック208、FPI209等を介してホストCPUから成されてもよい。また、MIU207は、メモリアドレッシングやメモリタイミング制御等に関連付けられたタスクを実行する。後処理モジュール211は、解凍されたMPEGビデオ画像データからのブロッキングアーティファクトおよびリンギングアーティファクトを除去して、解凍されたビデオデータの質を向上させる。解凍されたMPEGビデオ画像データは、例えばシリアルインタフェース111またはMPEG−4デコーダ212を介して光メディアプレーヤから受けることができる。その後、フィルタ処理されたビデオ画像データはSRAM202へ送られる。
ピクセル処理ロジック208は、MIU207を介してSRAM202内のバッファからビデオ/グラフィックスデータを取り出して、その画像データをピクセルへとシリアライズ(直列化)するとともに、ピクセルをFPI209またはCRT DAC210へと出力する前に当該ピクセルを所定の形式へとフォーマットする。したがって、ピクセル処理ロジック208は、必要な水平および垂直な表示タイミング信号、メモリアドレス、読み取り要求、SRAM202内に記憶された画像データにアクセスするための制御信号を生成する。関連する表示デバイスがLCDである場合、ピクセル処理ロジック208からのピクセルデータは、LCDへ送られる前にFPI209に対して送られる。また、FPI209は、表示のために異なるカラー色相またはグレイシェイド(灰色影)を更に加えることによりデータを処理する。また、薄膜トランジスタ(TFT)LCD(別名:アクティブマトリクスLCD)または超ねじれネマチック(STN)LCD(別名:パッシブマトリクスLCD)が使用されるかどうかに応じて、FPI209は、ディスプレイのタイプに適するようにデータをフォーマットする。更に、FPI209により、モノクロLCDが使用される場合には、カラーデータをモノクロデータへと変換することができる。逆に、ディスプレイ装置がブラウン管(CRT)である場合、ピクセルデータは、CRTへ送られる前に、CRTデジタル・アナログ変換器(DAC)210に対して供給される。CRT DAC210は、ピクセル処理ロジック208からのデジタルピクセルデータを、CRTモニタ上に表示されるアナログのレッド(赤)、グリーン(緑)、ブルー(青)[RGB]信号へと変換する。
ここで、本発明を実施する3D GE214の第1の実施形態の関連する構成要素を示す図3を参照する。図3に示されるように、3D GE214は、面積計算/分類回路301と、反復子セットアップ計算回路302と、反復子セットアップ計算回路312と、ピクセル反復子回路303と、ピクセル反復子回路313と、パースペクティブ分割回路304と、パースペクティブ分割回路314とを有している。面積計算/分類回路301、反復子セットアップ計算回路302、反復子セットアップ計算回路312は、三角形セットアップエンジン305を形成している。ピクセル反復子回路303と、ピクセル反復子回路313と、パースペクティブ分割回路304と、パースペクティブ分割回路314は、ラスタライジング/レンダリングエンジン306を形成している。しかしながら、反復子セットアップ計算回路302および反復子セットアップ計算回路312は、図3に示されるように三角形セットアップエンジン305の一部とならずに、破線のボックスによって示されるようにラスタライジング/レンダリングエンジン306の一部を成すこともできる。図3に示されるように、反復子セットアップ計算回路302、ピクセル反復子回路303、パースペクティブ分割回路304は、互いに接続されることにより、小さくて形の整った三角形を扱うようになっている第1の経路を形成する。反復子セットアップ計算回路312、ピクセル反復子回路313、パースペクティブ分割回路314は、互いに接続されることにより、大きくて形の悪い三角形を扱うようになっている第2の経路を形成する。この実施形態においては、三角形分類が決定された後、第1の経路または第2の経路によって三角形が処理される。電力を節約するため、選択されない経路中のハードウェアをOFFする(クロックされない)ことができる。
3Dグラフィックスを生成するため、3Dアプリケーションがシーンを作成する(例えば、PCゲームで使用される3Dアニメーションソフトウェア)。各シーンは、パラメトリック曲面を接続することにより形成される多くのオブジェクトを含む。各パラメトリック曲面は、プリミティブと呼ばれる小さい更に簡素な要素に分割される。プリミティブは、多角形、球、円柱、自由造形面等の任意の立体形状またはパターン形状であってもよい。通常、プリミティブは、多角形の1つのタイプである三角形である。データベース中のデータ構造によって表わされる各プリミティブは、それに所望の色、形状、テクスチャ(質感)、透明度等を与えるための属性および(例えば、三角形の3つの頂点からの)頂点座標に関連付けられる。幾何学的処理として知られる3Dパイプラインの次の段階においては、プリミティブデータベースが画像空間へと数学的に変換される。そのような変換としては、翻訳(変換)、回転、クリッピング、投影、スケーリングを挙げることができる。照明効果およびぼかし効果もプリミティブに加えられる。幾何学的処理は、その頂点座標、色、デプス、テクスチャ、他の属性によって表わされる画像空間プリミティブを形成する。
3D GE214は、幾何学的処理によって形成された画像空間プリミティブを受けるとともに、3Dパイプラインのラスタ化段階を実行する。本発明の実施形態は三角形状のプリミティブを対象としているが、本発明が他の形状のプリミティブにも同様に適用できることは明らかである。一般に、三角形セットアップエンジン305は、各三角形毎に調整されたピクセル位置および属性階調を生成するが、ラスタライジング/レンダリングエンジン306は、三角形セットアップエンジン305によって生成された情報を使用して、三角形内の全てのピクセル属性を生成する。ラスタライジング/レンダリングエンジン306は、エッジウォーキングを行なって、エッジに沿うピクセル位置を決定した後、主要エッジに沿うピクセル位置を開始点として使用して処理をスパンし、三角形プリミティブの内側の走査線に沿うピクセルにおいてピクセル位置および属性値をレンダリングする。属性の例としては、色、デプス、テクスチャ座標、ブレンディング等を挙げることができる。各ピクセルの最終的なレンダリングは、アプリケーションによって定められる全ての属性の合成である。ラスタライジング/レンダリングエンジン306自体は多数の計算を実行する。幾つかの更なる下流側での処理の後における各ピクセルの属性は、その後の表示のためにSRAM202内のフレームバッファに対して送られる。
前述したように、三角形セットアップエンジン305は、面積計算/分類回路301と、反復子セットアップ計算回路302と、反復子セットアップ計算回路312とを含むが、これらに限定されない。本発明において、面積計算/分類回路301は、以下の式にしたがってXPを計算する。
XP=[(dx10*dy20)-(dx20*dy10)] (1)
ここで、dxNM=(XN-XM)、dyNM=(YN-YM)であり、|XP|/2は、手元にある三角形の面積に等しい。方程式(1)を計算できる前に、面積計算/分類回路301は、この三角形の主要エッジを決定する。三角形の主要エッジは、最も小さいY座標を有する頂点を最も大きいY座標を有する頂点に接続するエッジとして規定される。主要エッジおよびその対応する接続頂点に基づいて、面積計算/分類回路301は、最も大きいY座標を有する頂点に頂点2というラベルを付け、最も小さいY座標を有する頂点に頂点0というラベルを付け、残りの頂点に頂点1というラベルを付ける。ここで、三角形400の主要エッジ410および本発明にしたがって三角形の頂点にラベルを付ける方法を一例として示す図4を参照する。また、図4は、ラスタライジング/レンダリングプロセスで使用される三角形400内の多くの走査線を示している。
面積計算/分類回路301は、所定の基準に基づいて、プリミティブ三角形を小さい三角形または大きい三角形として分類する。また、面積計算/分類回路301は、他の所定の基準にしたがって、各三角形を「形が整った」三角形または「形が悪い」三角形として分類する。「形が悪い」三角形の一例は、非常に狭い三角形である。三角形が小さく且つ形が整っているかどうかを決定することは重要である。なぜなら、小さく且つ形が整っている三角形を計算することは、大きくあるいは形が悪い三角形を計算することよりも精度をあまり必要としないからである。一般に、より精度が高い三角形計算器は、より大きい乗算器および/または加算器を必要とし、その結果、多くの電力を消費する更に多くの論理ゲートを必要とする。逆に、より精度が低い計算器は、より小さい乗算器および/または加算器あるいは他の数学的論理回路を必要とする。論理ゲートの使用が僅かであれば、電力消費量も少なくて済む。そのため、本発明においては、三角形プリミティブを正確に分類して、電力をあまり消費しない計算器を選択するとともに、「冗長な」精度だけを犠牲にすることにより、ピクセルレンダリング/ラスタ化プロセスにおける質や性能の損失を殆どあるいは全く伴うことなく、電力を節約することができる。
表1は、一例として、三角形が小さくおよび/または形が整っているかどうかを決定するために面積計算/分類回路301によって実施される新しい分類基準をまとめている。表1に示されるように、「サイズ」基準を満たさないことは、三角形が大きいことを示しており、「テクスチャ」基準を満たさないことは、三角形がテクスチャマップ内で非常に長い距離にわたって広がり、したがって、形が悪いことを示しており、「幅」基準を満たさないことは、三角形が狭く、したがって、形が悪いことを示しており、「デプス」基準を満たさないことは、三角形が非常に深い範囲にわたって広がり、したがって、形が悪いことを示している。与えられた用途に応じて、他の基準(表1に示されていない)が定められてもよい。なお、分類規則は、頂点のX,Y,U,V,1/wの値に関して最小値および最大値を必要とする。すなわち、Xmin=min(X0, X1, X2)、Xmax=max(X0, X1, X2)であり、Umin=min(U0, U1, U2)等である。表1に示される全ての基準が満たされる場合、三角形は小さく且つ形が整っている。基準が満たされない場合、三角形は大きくあるいは形が悪い。
Figure 0004799409
本発明の目的を満たすため、分類プロセスは、節約された電力のかなりの部分を使い果たすことができない。必要な処理能力を簡素化し従って減らすため、分類計算の前に複数のステップが行なわれる。幾つかの例を以下に示す。例えば、テクスチャ座標およびデプス座標(u,v)および1/wはそれぞれ浮動小数点値である。分類基準は、評価中に完全な精度を必要としない。計算を劇的に単純化して、テクスチャおよびデプス基準を評価するために必要な電力を減らすために、仮数の限られた数の最上位ビットだけを計算で使用する必要がある。
他の電力節約手段を実施することもできる。サイズ、テクスチャ、デプス分類基準の計算は、三角形の3つの頂点の各分類基準において最小値および最大値の決定を必要とする。すなわち、各分類基準においては、3つの頂点からの3つの値が含まれる。好ましくは、最小値および最大値の決定は、電力節約のために最適化された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)から計算される。
1つの走査線から主要エッジに沿う次の隣接する走査線までの垂直インクリメントのステップ、すなわち、座標の差は、yi=(yi+1)およびxi=(xi+si20)となるように幾何学的に示すことができる。ここで、xiおよびyiは整数値のピクセル座標であり、si20=|dx20/dy20|(すなわち、主要エッジの傾きの整数「底」逆数)である。x座標は、主要エッジの傾きの逆数によって決まる。そのため、現在の走査線の属性値と次の走査線属性値との間の垂直方向の差は、以下のように表わされる。
dt=si20*∂f/∂x+∂f/∂y (3)
ここで、∂f/∂y=[df20*dx10-df10*dx20]/XPである。
反復子セットアップ計算回路302,312は、頂点情報および属性階調をラスタライジング/レンダリングエンジン306に対して送る。スタライジング/レンダリングエンジン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)=f0+(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/wおよびv/w)を、線形に補間されたデプス値(すなわち、1/w)で割る。その後、次の表示のためにSRAM202内のフレームバッファに対して情報を送る前にテクスチャルックアップおよびブレンディング等の幾つかの周知のプロセスを行なうため、パースペクティブ分割回路304,314は、ラスタ化/レンダリングプロセスにおいて、ピクセル位置座標およびそれらの個々の属性のリストを他の回路(図示せず)に対して送る。
一般的な構成の三角形セットアップエンジン(面積計算/分類回路および他の関連する構成要素を使用しない)およびラスタ化/レンダリングエンジンについては、1999年11月のマイクロアーキテクチャに関する第32回年次国際シンポジウムの議事録、第50頁のA. WolfeおよびD. Noonburgによる「A Superscalar 3D Graphics Engine」等の様々な出版物に記載されている。また、一般的な構成の三角形セットアップエンジン(面積計算/分類回路および他の関連する構成要素を使用しない)およびラスタ化/レンダリングエンジンについては、前述した’089特許および’550特許を含む様々な米国特許に記載されている。これらの資料は、その全体が参照として本明細書に組み込まれる。
したがって、本発明の第1の実施形態の主要な態様は、2つの経路、すなわち、精度が低く、複雑度が低く、その結果、演算のために電力をあまり必要としないハードウェアを使用して小さく且つ形が整った三角形を処理するための第1の経路と、精度が高く、より複雑で、その結果、演算のために多くの電力を必要とするハードウェアを使用して大きくあるいは形が悪い三角形を処理するための第2の経路とを使用することである。大きくあるいは形が悪い三角形を処理するための第2の経路のハードウェアは、サイズや態様に関係なく三角形を処理するために市販されている3Dグラフィックスエンジンで現在使用されている従来のハードウェアであってもよい。節電の主要なソースは、小さく形が整った三角形が処理され且つ大きく/形が悪い経路に関連する回路がOFFされる(クロックされない)ときに実現される。
大きくあるいは形が悪い三角形に関しては24ビット仮数を用いて、また、小さく且つ形が整った三角形に関しては16ビット仮数を用いて反復子セットアップ浮動小数点演算が行なわれる場合に、精度、質、性能要件が満たされることがシミュレーションにより分かった。この場合、6ビット指数が両方の分類のために使用される。周知の3段階パイプラインを使用して浮動小数点乗算が行なわれ、また、周知の5段階パイプラインを使用して浮動小数点加算が行なわれる。3段乗算器および5段加算器の両方は、1サイクル当り1演算のスループットを有している。第1の経路の反復子セットアップ計算回路302で16ビット仮数浮動小数点乗算器および加算器を使用すると、反復子セットアップ計算電力消費量が約20%だけ減少する。一方、精度が低く複雑度が低いハードウェアをピクセル反復子回路303およびパースペクティブ分割回路304で使用することにより得られる電力消費量の節約は、小さい三角形で費やされるサイクル数が大きい三角形で費やされるサイクル数の1/10よりも少ないことを主な理由として、最小となる。
ここで、本発明を実施する3D GE214の第2の実施形態の関連する構成要素を示す図5を参照する。図5に示されるように、3D GE214は、面積計算/分類回路501と、反復子セットアップ計算回路502と、反復子セットアップ計算回路512と、ピクセル反復子回路503と、パースペクティブ分割回路504とを含む。反復子セットアップ計算回路502は小さく且つ形が整った三角形のために使用される一方、反復子セットアップ計算回路512は大きくあるいは形が悪い三角形のために使用される。この実施形態においては、三角形分類が決定された後、反復子セットアップ計算回路502または反復子セットアップ計算回路512によって三角形が処理される。電力を節約するため、選択されない経路中のハードウェアをOFFする(クロックされない)ことができる。ピクセル反復子回路503およびパースペクティブ分割回路は、その後、小さく且つ形が整った三角形および大きくあるいは形が悪い三角形の両方を処理するために使用される。その際、ピクセル反復子回路313およびパースペクティブ分割回路314を実施するために第1の実施形態で必要とされる余分なハードウェアが排除され、それにより、余分なコストが節約される。これは、より望ましい設計法である可能性がある。なぜなら、これらの更なるハードウェアの使用は、省力化を著しく向上させることができないからである。
面積計算/分類回路501は面積計算/分類回路301と同一である。反復子セットアップ計算回路502は反復子セットアップ計算回路302と同一である。反復子セットアップ計算回路512は反復子セットアップ計算回路312と同一である。ピクセル反復子回路503は、(第1の実施形態の大きい/形が悪い経路で使用される)ピクセル反復子回路313と同一である。パースペクティブ分割回路504は、(第1の実施形態の大きい/形が悪い経路で使用される)パースペクティブ分割回路314と同一である。なお、反復子セットアップ計算回路502および反復子セットアップ計算回路512は、図5に示されるように三角形セットアップエンジン505の一部とならずに、破線のボックスによって示されるようにラスタライジング/レンダリングエンジン506の一部を成すこともできる。
並列処理の使用により性能向上を実現できることがシミュレーションにより分かった。例えば、(小さく且つ形が整った三角形のために使用される)反復子セットアップ計算回路502において、乗算器および加算器を既に有する回路に対して更なる乗算器が加えられる場合には、5%の性能向上が得られる。これは、小さい三角形が、形成される1ピクセル当りに大きな割合の浮動小数点演算を必要とするからである。
ここで、本発明を実施する3D GE214の第3の実施形態の関連する構成要素を示す図6を参照する。図6に示されるように、3D GE214は、面積計算/分類回路601と、反復子セットアップ計算回路602と、ピクセル反復子回路603と、パースペクティブ分割回路604とを含む。反復子セットアップ計算回路602は、低精度モード(例えば、小さく形が整った三角形が関与している場合)または高精度モード(例えば、大きくあるいは形が悪い三角形が関与している場合)で演算を行なうように動的に構成することができる。より具体的には、低精度モードにおいて、反復子セットアップ計算回路602は、小さく且つ形が整った三角形を処理する際に、仮数の1つ以上のLSBを無効にする(ゼロに設定する)。逆に、高精度モードにおいて、反復子セットアップ計算回路602は、大きくあるいは形が悪い三角形を処理する際に、仮数の全幅を使用する。この実施形態では、三角形分類が決定された後、面積計算/分類回路601は、反復子セットアップ計算回路602を低精度モードまたは高精度モードへと設定する際に使用される三角形の分類を示す制御信号を生成する。これにより、反復子セットアップ計算回路602を三角形毎に動的に構成して電力を節約することができる。その後、小さく且つ形が整った三角形および大きいあるいは形が悪い三角形の両方を処理するために、ピクセル反復子回路603およびパースペクティブ分割回路604が使用される。
面積計算/分類回路601は面積計算/分類回路301と同一である。ピクセル反復子回路603は、(第1の実施形態の大きい/形が悪い経路で使用される)ピクセル反復子回路313と同一である。パースペクティブ分割回路604は、(第1の実施形態の大きい/形が悪い経路で使用される)パースペクティブ分割回路314と同一である。なお、反復子セットアップ計算回路602は、図6に示されるように三角形セットアップエンジン605の一部とならずに、破線のボックスによって示されるようにラスタライジング/レンダリングエンジン606の一部を成すこともできる。
2つの低精度モードおよび高精度モードで動的に演算できることを除き、反復子セットアップ計算回路602は、(第1の実施形態の大きい/形が悪い経路で使用される)反復子セットアップ計算回路312と略同一である。1つの実施形態においては、仮数のLSBをゼロ設定することにより、LSBに関連付けられた論理回路は、0と1との間でトグルする(切り換える)ことができず、したがって、電力を消費していない。1つの実施形態においては、高精度ハードウェアを必要とする大きくあるいは形が悪い三角形を処理するための反復子セットアップ計算回路602の演算論理回路(例えば、乗算器、加算器等)において24ビットの全仮数幅が使用され、また、低精度ハードウェアを必要とする小さく且つ形が整った三角形を処理するための反復子セットアップ計算の演算論理回路において16ビットの少ない仮数幅が使用される。他の節電構成(例えば、高精度モードで有効(使用可能)な仮数ビットの数、無効なLSBの数など)および更なる精度モード(例えば、様々な数の無効LSBを含む)も使用できる。以下の表2は、仮数の全幅(例えば24ビット)が使用される、2つの2進数と乗算器と浮動小数点数の仮数との間の第1の典型的な乗算と、仮数の8個のLSBが使用禁止となっている、2つの2進数と乗算器と浮動小数点数の仮数との間の第2の典型的な乗算とを示している。
Figure 0004799409
例No.1に示されるように、仮数の幅が使用されるため、全てのビットが使用可能(有効)になり、したがって、計算中にゼロ(0)と1との間で自由にトグルすることができる。これに対して、例No.2は、仮数の8個のLSBが無効にされ、したがって、1へと自由にトグルできないときのシナリオを示している。例No.2における乗法演算の最終結果は例No.1のそれよりも精度が低いが、小さく且つ形が整った三角形を処理するためには十分に正確であると思われる。
図7は、高精度モードおよび低精度モードでLSBを有効(使用可能)にし且つ無効にするために反復子セットアップ計算回路602で実施できる仮数レジスタ700を一例として示している。図7に示されるように、仮数レジスタ700は、フリップフロップ712a−712hと、ANDゲート714a−714hと、ANDゲート716a−716hとを有しており、これらは互いに接続されてレジスタ回路710a−710hを形成している。全て同一である各レジスタ回路710a−710hは、ビット0に割り当てられたレジスタ回路710a、LSB、ビット1に割り当てられたレジスタ回路710b等を用いて仮数ビットを制御するように構成されている。したがって、仮数レジスタ700は、8個の仮数ビットを制御するようになっている。より多くのあるいはより少ない仮数ビットを制御するために、仮数レジスタ700に対して更なるレジスタ回路を加えることができあるいは仮数レジスタ700から更なるレジスタ回路を除去できることは明らかである。
次に、全てのレジスタ回路710a−710hの代表であるレジスタ回路710aの動作(演算)について説明する。ANDゲート714aは、入力としてイネーブル信号ENA 0およびクロック信号CLKを受ける。ANDゲート714aは、その出力をクロック入力としてフリップフロップ712aに対して供給する。フリップフロップ712aは、データとして入力信号IN 0を受ける。フリップフロップ712aは、イネーブル信号ENA 0およびクロック信号CLKの両方がアクティブのときに入力信号IN 0を単にラッチして送る。フリップフロップ712aの出力は、イネーブル信号ENA 0と共に、ANDゲート716aに対して入力として与えられる。ANDゲート716aは、ENA 0が非アクティブになると常にその出力BIT 0がゼロに設定されるようにする。クロック信号CLKによってBIT0が0と1との間で切り換わることができない(トグルできない)ようにすることにより、LSBに関与する論理回路は、0と1との間でトグルさせることができず、したがって、電力を消費しない。
1つの実施形態において、イネーブル信号ENA 0−ENA 7は、面積計算/分類回路601(図示せず)内に設けられた8ビットプログラム可能制御レジスタによって供給される。8ビットプログラム可能制御レジスタの内容は、計算/分類プロセスを完了した後に面積計算/分類回路601によって生成される制御信号により設定されている。例えば、三角形が大きくあるいは形が悪いということを示すアクティブ制御信号は、8ビットプログラム可能制御レジスタの内容を全て1に設定し、また、三角形が小さく且つ形が整っているということを示す非アクティブ制御信号は、8ビットプログラム可能制御レジスタの内容を全て0に設定する。信号IN 0−IN 7は、演算機能ユニット(図示せず)によって生成された8個の仮数LSBである。あるいは、仮数レジスタ700は、反復子セットアップ計算回路602内で8個の仮数LSBとして使用されるその出力BIT 0−BIT 7を供給する。当業者であれば分かるように、本発明は、例えば無効な仮数LSBの数を変えることにより極端に小さい三角形、小さい三角形、中程度の三角形、大きい三角形を処理するため、2つの精度モードから更に多くの精度モードへと容易に拡張させることができる。表3は、典型的な仮数レジスタ700における真理値表である。
Figure 0004799409
ここで、本発明を実施する3D GE214の第4の実施形態の関連する構成要素を示す図8を参照する。図8に示されるように、3D GE214は、面積計算/分類回路801と、反復子セットアップ計算回路802と、ピクセル反復子回路803と、パースペクティブ分割回路804とを有している。また、本実施形態は、ユーザインタフェース816および/または電力モニタ817に接続された精度選択回路815を更に含む。精度選択回路815は、3D GE214の外部にあっても良く(図8に示されるように)、あるいは、3D GE214の内部にあってもよい。ユーザインタフェース816により、ユーザは、所望の電力レベル、したがって関連する精度モードを手動で選択することができる。ユーザインタフェース816は、グラフィカルユーザインタフェース(GUI)、コマンドラインインタフェース、タッチスクリーンインタフェース、音声に反応するインタフェース、メニュー方式のインタフェース、手動スイッチ等であってもよい。したがって、ユーザインタフェース816を使用して、ユーザは、選択信号を生成することにより、バッテリ寿命を最大にするための低電力低精度モード、グラフィックスの質を良好にするための高電力高精度モード、あるいは、他の精度モードを選択してもよい。
一般に、電力モニタ817は、手持ち式携帯デバイス100に給電するバッテリ中に残存する利用可能な電力を監視した後、利用可能な電力レベルとアクティブに実行中のアプリケーション(例えば、ゲーム等)の残存する動作時間とを比較して、実行中のアプリケーションの終了まで手持ち式携帯デバイス100の動作を持続可能にするために必要な適切な電力レベルを決定する。1つの実施形態において、電力モニタ817は、バッテリやCPU(ゲームの残存する実行時間を示す)等からの入力を使用して、記憶された電力レベル−動作時間アルゴリズムを実行する状態機械であってもよい。アルゴリズムは、基本的に、入力の比較(例えば、利用可能な電力と、現在の精度モード下で実行中のアプリケーションの終了までの時間とを比較)を行なって、他の利用可能な精度モード下での残存する動作時間を決定するとともに、バッテリの利用可能な電力がアプリケーションを終了させるに足るものとなるようにする精度モードを選択する。
1つの実施形態において、精度選択回路815は、ユーザインタフェース816および/または電力モニタ817から選択信号を受けるとともに、選択された精度モードおよび電力を表わすビット列を生成する。また、精度選択信号回路815は、ユーザインタフェース816または電力モニタ817が起動されたかどうかを示すインジケータ信号も生成する(例えば、新たな選択信号がいずれかのモジュールから受けられるときに)。このビット列およびインジケータ信号は、その後、面積計算/分類回路801内の制御レジスタ(図示しないが、以下で後述する)に対して供給される。
反復子セットアップ計算回路802は、低精度モード(例えば、小さく形が整った三角形が関与している場合)、高精度モード(例えば、大きくあるいは形が悪い三角形が関与している場合)、および他の精度モードで演算を行なうように動的に構成することができる。より具体的には、低精度モードにおいて、反復子セットアップ計算回路802は、小さく且つ形が整った三角形を処理する際に、仮数の1つ以上のLSBを無効にする(ゼロに設定する)。逆に、高精度モードにおいて、反復子セットアップ計算回路802は、大きくあるいは形が悪い三角形を処理する際に、仮数の全幅を使用する。他の精度モードは、仮数の様々な数のLSBの無効化を含む。この実施形態では、三角形分類が決定された後、面積計算/分類回路801は、反復子セットアップ計算回路802を設定(コンフィギュレーション)する際に使用される三角形の分類を示す制御信号を生成する。より具体的には、制御信号は、面積計算/分類回路802内の制御レジスタの内容を設定するために使用される。例えば、制御ビットが00である場合には、制御レジスタの内容が全てゼロ(0)であり、制御ビットが11である場合には、制御レジスタ(8ビットレジスタであるとする)の内容が0000011であるといった具合である。しかしながら、ユーザインタフェース816または電力モニタ817が起動されたことをインジケータ信号が示す場合には、これらのユニットによって生成されるビット列が制御レジスタへロードされる。すなわち、ユーザインタフェース816および電力モニタ817から受けた入力は、面積計算/分類回路801からの分類結果を取り消す。ピクセル反復子回路803およびパースペクティブ分割回路804は、その後、小さく且つ形が整った三角形および大きくあるいは形が悪い三角形の両方を処理するために使用される。電力を節約するために反復子セットアップ計算回路802を三角形毎に動的に構成できることに加え、この実施形態によれば、グラフィックスの質および性能と、電力要件およびバッテリ寿命とのバランスをとることができる。
面積計算/分類回路801は、制御レジスタを除き、面積計算/分類回路801と略同様である。ピクセル反復子回路803はピクセル反復子回路603と同一である。パースペクティブ分割回路804はパースペクティブ分割回路604と同一である。反復子セットアップ計算回路802は反復子セットアップ計算回路602と略同様である。仮数レジスタ700は、更なる精度モードに合わせるように変更されてもよい。そのような変更は、当業者であれば明らかであり、これ以上説明しない。なお、反復子セットアップ計算回路802は、図8に示されるように三角形セットアップエンジン805の一部とならずに、破線のボックスによって示されるようにラスタライジング/レンダリングエンジン806の一部を成すこともできる。
ここで、本発明を実施する3D GE214の第5の実施形態の関連する構成要素を示す図9を参照する。図9に示されるように、3D GE214は、面積計算/分類回路901と、反復子セットアップ計算回路902と、反復子セットアップ計算回路912と、ピクセル反復子回路903と、パースペクティブ分割回路904とを含む。また、本実施形態は、ユーザインタフェース916および/または電力モニタ917に接続された精度選択回路915を更に含む。精度選択回路915は、3D GE214の外部にあっても良く(図9に示されるように)、あるいは、3D GE214の内部にあってもよい。すなわち、この実施形態は、図5に示される第2の実施形態と図8に示される第4の実施形態とを組み合わせたものである。図5および図8における構成要素およびそれらの動作の説明は、図9における対応する構成要素に適用することができ、ここでは繰り返さない。しかしながら、第4の実施形態とは異なり、この実施形態では、ユーザインタフェース916および電力モニタ917は、2つの分類、すなわち、「小さく且つ形が整った三角形」と「大きくあるいは形が悪い三角形」とに個別に対応するように具体的に構成される少なくとも2つの異なる反復子セットアップ計算回路902,912を制御することができる。反復子セットアップ計算回路902,912は、1つの分類のために特別に構成されているため、特定の分類のために三角形を処理する際により効果的で且つ効率的となり得る。また、ユーザインタフェース916および電力モニタ917により、反復子セットアップ計算回路902,912において(すなわち、2つの分類のそれぞれにおいて)異なる精度モードを選択することができる。
一方が三角形セットアップ計算回路902(小さく且つ形が整った三角形のためのもの)に対して割り当てられ且つ他方が三角形セットアップ計算回路912(大きく且つ形が悪い三角形のためのもの)に対して割り当てられるように、どの分類が関与しているかを示すように精度選択回路915によって生成される更なるインジケータ信号、面積計算/分類回路901内の更なる制御レジスタなどとのような幾つかの軽微な変更が必要となる。面積計算/分類回路901が三角形の分類を決定すると、三角形頂点情報および属性を処理するために反復子セットアップ計算回路902または反復子セットアップ計算回路912が使用される。反復子セットアップ計算回路902および反復子セットアップ計算回路912における仮数LSBの無効化は、それぞれの制御レジスタによって制御される。面積計算/分類回路は、その分類決定を行なうと、適切な制御レジスタの内容を設定する。ユーザインタフェース916または電力モニタ917からの入力が受けられると、精度選択回路915からのインジケータ信号は、ユーザインタフェース916または電力モニタ917が起動されたことを示し、その分類に関して(したがって、その反復子セットアップ計算回路に関して)、受けられた入力が指定される。これにより、精度選択回路から生成されたビット列を適切な制御レジスタへと送って、面積計算/分類回路901による分類の結果として設定された内容を取り消すことができる。なお、反復子セットアップ計算回路902および反復子セットアップ計算回路912は、図9に示されるように三角形セットアップエンジン905の一部とならずに、破線のボックスによって示されるようにラスタライジング/レンダリングエンジン906の一部を成すこともできる。
本発明の幾つかの実施形態では、手持ち式携帯デバイスに適した高い品質および性能の3Dグラフィックスアーキテクチャが与えられている。特定の実施形態において本発明を説明してきたが、本発明は、そのような実施形態によって限定されるものと解釈されるべきではなく、むしろ、以下の請求項にしたがって解釈されなければならない。
例えば本発明を実施する手持ち式携帯デバイス100の高レベル線図を示している。 手持ち式携帯デバイス100のグラフィックス/ディスプレイコントローラ107を詳細に示している。 本発明を実施する3D GE214の第1の実施形態の関連する構成要素を示している。 例えば主要エッジ410を有する三角形400およびラスタライジング/レンダリングプロセスで使用される三角形400内の多くの走査線を示している。 本発明を実施する3D GE214の第2の実施形態の関連する構成要素を示している。 本発明を実施する3D GE214の第3の実施形態の関連する構成要素を示している。 例えば高精度モードおよび低精度モードでLSBを有効および無効にするために反復子セットアップ計算回路602で実施できる仮数レジスタ701を示している。 本発明を実施する3D GE214の第4の実施形態の関連する構成要素を示している。 本発明を実施する3D GE214の第5の実施形態の関連する構成要素を示している。

Claims (10)

  1. 受けたデータセットを分類する第1の回路であって、前記データセットを処理するための処理モードを選択するよう動作可能である、前記第1の回路と、
    前記第1の回路に結合されるとともに、前記第1の回路から受けたデータを処理するよう動作可能である第2の回路とを備え、
    前記データセットは、プリミティブのデータを含み、
    前記第1の回路は、前記プリミティブを当該プリミティブのサイズ及び/又は形状に基づき複数の分類のうちの一の分類に分類するよう動作可能であり、
    第1の前記処理モードは、複数の処理モードのうちの1つであって、
    前記複数の処理モードは、第1の分類に分類されたデータセットを処理するための第1の処理モード、及び第2の分類に分類されたデータセットを処理するための第2の処理モードを含み、
    前記第2の処理モードは、前記第1の処理モードより精度が高く、
    前記第2の回路は、前記第1の回路により選択された前記処理モードに従って処理を実行し、前記第1の処理モードにおいて、前記第2の処理モードより少ない電力を消費する、データ処理パイプライン。
  2. 前記第2の回路が、
    第1の分類を有するデータを前記第1の処理モードで処理する第1のデータ処理回路と、
    第2の分類を有するデータを前記第2の処理モードで処理する第2のデータ処理回路と、
    を備える、請求項1に記載のデータ処理パイプライン。
  3. 前記第2の回路が、
    前記第1のデータ処理回路に結合されるとともに、前記第1のデータ処理回路から受けた、前記第1の分類を有する前記データを処理する第3のデータ処理回路と、
    前記第2のデータ処理回路に結合されるとともに、前記第2のデータ処理回路から受けた、前記第2の分類を有する前記データを処理する第4のデータ処理回路とを更に備える、請求項2に記載のデータ処理パイプライン。
  4. 前記第2の回路が、前記第1のデータ処理回路および前記第2のデータ処理回路に結合される第3のデータ処理回路を更に備え、前記第3のデータ処理回路が、前記第1の分類を有する前記データおよび前記第2の分類を有する前記データの少なくとも一方に関してデータ処理を行なうよう動作可能である、請求項2に記載のデータ処理パイプライン。
  5. 前記第1の回路に結合されたユーザインタフェースを更に備え、
    前記ユーザインタフェースが、構成可能な前記データ処理回路を前記第1の処理モードおよび前記第2の処理モードの少なくとも一方で動作するように構成するため、ユーザによる入力情報を前記第1の回路に対して通信する、請求項4に記載のデータ処理パイプライン。
  6. 前記第1の回路に結合された電力モニタを更に備え、
    前記電力モニタが、アクティブに実行中のアプリケーションの終了まで携帯デバイスの動作を持続させるために必要な電力レベルを決定して、適切な処理モードを選択するためのものであり、
    前記電力モニタが、前記選択された処理モードで動作するように前記構成可能なデータ処理回路を構成するために、前記選択された処理モードを前記第1の回路に対して通信する、請求項4に記載のデータ処理パイプライン。
  7. 前記第2の回路が、前記第1の処理モードおよび前記第2の処理モードの少なくとも一方でデータを処理するための構成可能なデータ処理回路を備え、前記構成可能なデータ処理回路が、第1の分類に基づいて前記第1の処理モードでデータを処理するように構成されるとともに、第2の分類に基づいて前記第2の処理モードでデータを処理するように構成される、請求項1に記載のデータ処理パイプライン。
  8. 前記第2の回路が、前記構成可能なデータ処理回路に結合された第3のデータ処理回路を更に備え、前記第3のデータ処理回路が、前記第1の分類を有する前記データおよび前記第2の分類を有する前記データの少なくとも一方に関してデータ処理を行なうよう動作可能である、請求項7に記載のデータ処理パイプライン。
  9. 前記第1の回路に結合されたユーザインタフェースを更に備え、
    前記ユーザインタフェースが、前記構成可能なデータ処理回路を前記第1の処理モードおよび前記第2の処理モードの少なくとも一方で動作するように構成するため、ユーザによる入力情報を前記第1の回路に対して通信する、請求項7に記載のデータ処理パイプライン。
  10. 前記第1の回路に結合された電力モニタを更に備え、
    前記電力モニタが、アクティブに実行中のアプリケーションの終了まで携帯デバイスの動作を持続させるために必要な電力レベルを決定して、適切な処理モードを選択するためのものであり、
    前記電力モニタが、前記選択された処理モードで動作するように前記構成可能なデータ処理回路を構成するために、前記選択された処理モードを前記第1の回路に対して通信する、請求項7に記載のデータ処理パイプライン。
JP2006527085A 2003-09-18 2004-09-17 手持ち式携帯デバイスのための高質・高性能3dグラフィックスアーキテクチャ Expired - Lifetime JP4799409B2 (ja)

Applications Claiming Priority (3)

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

Publications (3)

Publication Number Publication Date
JP2007514209A JP2007514209A (ja) 2007-05-31
JP2007514209A5 JP2007514209A5 (ja) 2007-11-01
JP4799409B2 true JP4799409B2 (ja) 2011-10-26

Family

ID=34313263

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006527085A Expired - Lifetime JP4799409B2 (ja) 2003-09-18 2004-09-17 手持ち式携帯デバイスのための高質・高性能3dグラフィックスアーキテクチャ

Country Status (6)

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

Families Citing this family (80)

* 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
US7190366B2 (en) * 2004-05-14 2007-03-13 Nvidia Corporation Method and system for a general instruction raster stage that generates programmable pixel packets
US8416242B1 (en) 2004-05-14 2013-04-09 Nvidia Corporation Method and system for interpolating level-of-detail in graphics processors
US8411105B1 (en) 2004-05-14 2013-04-02 Nvidia Corporation Method and system for computing pixel parameters
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
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
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 エヌイーシーコンピュータテクノ株式会社 乗算装置、及び演算装置
US8595279B2 (en) * 2006-02-27 2013-11-26 Qualcomm Incorporated Floating-point processor with reduced power requirements for selectable subprecision
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
JP4935619B2 (ja) 2007-10-23 2012-05-23 ヤマハ株式会社 デジタル信号処理装置
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
CN101925952B (zh) * 2008-01-21 2012-06-06 松下电器产业株式会社 音响再现装置
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
JP5309636B2 (ja) * 2008-03-21 2013-10-09 富士通株式会社 演算処理装置及び演算処理装置の制御方法
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
US7958340B2 (en) * 2008-05-09 2011-06-07 International Business Machines Corporation Monitoring software pipeline performance on a network on chip
US8494833B2 (en) * 2008-05-09 2013-07-23 International Business Machines Corporation Emulating a computer run time environment
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
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
US8392664B2 (en) * 2008-05-09 2013-03-05 International Business Machines Corporation Network on chip
US8020168B2 (en) * 2008-05-09 2011-09-13 International Business Machines Corporation Dynamic virtual software pipelining 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
US8918446B2 (en) 2010-12-14 2014-12-23 Intel Corporation Reducing power consumption in multi-precision floating point multipliers
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

Citations (5)

* 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
JP2001202053A (ja) * 1999-11-09 2001-07-27 Matsushita Electric Ind Co Ltd 表示装置及び情報携帯端末
JP2002189539A (ja) * 2000-10-02 2002-07-05 Fujitsu Ltd ソフトウェア処理装置、プログラム及び記録媒体
JP2003187262A (ja) * 2001-12-19 2003-07-04 Mitsubishi Electric Corp レンダリング処理装置およびレンダリング処理方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
KR100408021B1 (ko) * 2000-12-29 2003-12-01 엘지전자 주식회사 엘씨디 시스템의 인터페이스 장치 및 방법
US6720969B2 (en) * 2001-05-18 2004-04-13 Sun Microsystems, Inc. Dirty tag bits for 3D-RAM SRAM
US6778179B2 (en) * 2001-05-18 2004-08-17 Sun Microsystems, Inc. External dirty tag bits for 3D-RAM SRAM
EP1391812A1 (en) * 2002-08-20 2004-02-25 Texas Instruments Incorporated Hardware accelerator for performing division

Patent Citations (5)

* 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
JP2001202053A (ja) * 1999-11-09 2001-07-27 Matsushita Electric Ind Co Ltd 表示装置及び情報携帯端末
JP2002189539A (ja) * 2000-10-02 2002-07-05 Fujitsu Ltd ソフトウェア処理装置、プログラム及び記録媒体
JP2003187262A (ja) * 2001-12-19 2003-07-04 Mitsubishi Electric Corp レンダリング処理装置およびレンダリング処理方法

Also Published As

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

Similar Documents

Publication Publication Date Title
JP4799409B2 (ja) 手持ち式携帯デバイスのための高質・高性能3dグラフィックスアーキテクチャ
CN109643443B (zh) 图形处理器流水线中的高速缓存和压缩互操作性
US8098257B2 (en) Filtering unit for floating-point texture data
US8094164B1 (en) Decompression of block encoded texture data
US9355483B2 (en) Variable fragment shading with surface recasting
JP5866457B2 (ja) オーバドロー・トラッカを用いたグラフィック処理におけるダイレクト・レンダリングとビニングとの切替
US8237739B2 (en) Method and device for performing user-defined clipping in object space
US20140267376A1 (en) System, method, and computer program product for accessing multi-sample surfaces
US8605104B1 (en) Threshold-based lossy reduction color compression
US20090237401A1 (en) Multi-stage tessellation for graphics rendering
US20070268289A1 (en) Graphics system with dynamic reposition of depth engine
JP2010507875A (ja) グラフィック処理ユニットにおける3次元クリッピング
TW200818054A (en) Tile based precision rasterization in graphics pipeline
JP2006515939A (ja) 表示システムのためのベクトルグラフィックス回路
US9111328B2 (en) Texture compression and decompression
JP2006323841A (ja) テクスチャキャッシュメモリ装置及びこれを利用した3次元グラフィック加速器および方法
US20150103252A1 (en) System, method, and computer program product for gamma correction in a video or image processing engine
Krause ftc—floating precision texture compression
Chen et al. A 130.3 mW 16-core mobile GPU with power-aware approximation techniques
Crisu et al. Low cost and latency embedded 3D graphics reciprocation
Kim et al. 3D graphics accelerator platform for mobile devices
Mrochuk et al. Real time 3D rendering patch processing using an embedded SIMD computer architecture

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070913

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070913

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20070913

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100615

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100915

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100924

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101014

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101116

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110315

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110608

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110705

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110802

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140812

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4799409

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250