JP5006390B2 - 算術および初等関数ユニットを有する図形プロセッサ - Google Patents

算術および初等関数ユニットを有する図形プロセッサ Download PDF

Info

Publication number
JP5006390B2
JP5006390B2 JP2009512327A JP2009512327A JP5006390B2 JP 5006390 B2 JP5006390 B2 JP 5006390B2 JP 2009512327 A JP2009512327 A JP 2009512327A JP 2009512327 A JP2009512327 A JP 2009512327A JP 5006390 B2 JP5006390 B2 JP 5006390B2
Authority
JP
Japan
Prior art keywords
elementary function
unit
alu
function unit
arithmetic logic
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.)
Active
Application number
JP2009512327A
Other languages
English (en)
Other versions
JP2009538486A (ja
Inventor
ボード、アレクセイ・ブイ.
ドゥ、ユン
ユ、チュン
ジャオ、グオファン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2009538486A publication Critical patent/JP2009538486A/ja
Application granted granted Critical
Publication of JP5006390B2 publication Critical patent/JP5006390B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/383Operand prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)
  • Advance Control (AREA)

Description

[分野]
本開示は一般に回路に関し、そしてより詳しくは図形プロセッサに関する。
[背景]
図形プロセッサはビデオゲーム、図形、計算機利用設計(CAD)、シミュレーションおよび可視化ツール、イメージング、等のような、いろいろなアプリケーションのための2次元(2−D)および3次元(3−D)画像を表現するために広く使用される。3−D画像は表面でモデル化され、そして各表面は多角形(典型的に三角形)で近似されることができる。3−D画像を表すために使用された三角形の数は画像の望ましい解像度と同様に表面の複雑性に左右され、そして非常に大きくなり、例えば、数百万であるかもしれない。各三角形は3つの頂点によって定義され、そして各頂点は空間配位、カラーバリュー、およびテクスチャ配位のようないろいろな属性と関連する。各属性は4コンポーネントまで持つことができる。
図形プロセッサは1画像を表現するためにいろいろな図形演算を実行できる。図形演算はラスター化、ステンシルおよび深さ試験、テクスチャマッピング、シェーディング、等を含んでもよい。画像は多くの三角形よりなり、そして各三角形は画像素子(画素)よりなる。図形プロセッサはその三角形内の各画素のコンポーネント値を決定することによって各三角形を表現する。
図形プロセッサはシェーディングのようなある図形演算を実行するためにシェーダコアを使用してもよい。シェーディングはライティング、シャドーイング、等を含む高度に複雑な図形演算である。シェーダコアは正弦、余弦、逆数、対数、指数、平方根、および逆平方根のような超越初等関数を計算するために必要であるかもしれない。これらの初等関数は多項式で近似されることができ、それは算術論理ユニット(ALU; arithmetic logic unit)によって実行される比較的単純な命令を用いて評価されることができる。しかしながら、シェーダ性能評価はALUを使用しているこの方法で初等関数を計算することに大いに苦しむかもしれない。
[概要]
算術演算(arithmetic operation)を効率的に実行しそして初等関数(elementary function)を計算できる図形プロセッサがこの中に記述される。述語“演算”および“機能”は時には互換的に使用される。図形プロセッサはシェーダコアおよび多分他のユニットを具備する。シェーダコアは算術演算を実行できる少なくとも1つのALUおよび初等関数を計算できる少なくとも1つの初等関数ユニットを有する。ある実施形態では、ALUおよび初等関数ユニットはそれらが処理能力を改善するために同じまたは異なるスレッド(thread)に関する命令上で同時に動作できるように調整および相互接続される。例えば、ALUは1つのスレッドに関する1つの命令を実行でき、そして初等関数ユニットはもう1つのスレッドに関するもう1つの命令を同時に実行できる。これらのスレッドは同じまたは異なる図形アプリケーションのためのものであってもよい。
他の実施形態では、シェーダコアは複数のALU、例えば、4ALUよりも少数の初等関数ユニットと単一の初等関数ユニットとを有する。4ALUは(1)1画素について1属性(attribute)の4コンポーネントまでまたは(2)4画素までについて1属性の1コンポーネントの上で算術演算を実行できる。単一の初等関数ユニットは一度に1画素の1コンポーネントの上で動作できる。単一の初等関数ユニットの使用は、(初等関数は算術演算よりも低い平均使用率を有するので)なお良好な性能を提供する一方で、(初等関数ユニットはALUよりも複雑で高価であるので)コストを低減できる。
図形アプリケーションをサポートする図形プロセッサを示す図。 画素の属性およびコンポーネントを示す図。 4つのスカラーALUを有する画素並列処理を示す図。 1つのカッドALUを有するコンポーネント並列処理を示す図。 4ユニットALUコアおよび4ユニット初等関数(EF)コアを有するシェーダコアを示す図。 並列ALUコアおよびEFコアを有するシェーダコアを示す図。 4ユニットALUコアおよび1ユニットEFコアを有するシェーダコアを示す図。 図形プロセッサを有する無線装置を示すブロック図。
[詳細な説明]
この発明のいろいろな局面および実施形態がさらに詳細に下記される。
本発明の特徴および性質は、全体を通して同じ参照記号が相応に識別される図面とともに採用された時に下に述べられた詳細説明からもっと明白になるであろう。
術語“例示的な”は“一例、事例、または実例として機能すること”を意味すべくこの中で使用されている。ここで“例示的な”として記述された任意の実施形態または構成は必ずしも他の実施形態または構成以上に好ましいとか有利であると解釈されるべきではない。
図1は図形アプリケーション/プログラム110a乃至110n、ここで通常N≧1、をサポートする図形システム100のブロック図を示す。図形システム100はスタンドアローンシステムかまたは計算システム、無線通信装置、等のようなより大きいシステムの部分であってもよい。図形アプリケーション(graphics application)110a乃至110nはビデオゲーム、図形等、のためのものであってもよく、そして同時に動作してもよい。各図形アプリケーション110は望ましい結果を達成するためにスレッドを生成できる。スレッド(または実行のスレッド)は一連の1つまたはそれ以上の命令を用いて実行され得る特定のタスクを指示する。スレッドは図形アプリケーションに異なるユニットによって同時に実行される複数のタスクを持たせ、そしてさらに異なる図形アプリケーションに資源を共有させる。
図形プロセッサ120は図形アプリケーション110a乃至110nからスレッドを受信し、そしてこれらのスレッドによって指示されたタスクを実行する。図1内に示された実施形態では、図形プロセッサ120はシェーダコア/プロセッサ130、テクスチャエンジン140、およびキャッシュメモリシステム150を含む。コアは通常集積回路内の処理ユニットを指す。術語“コア”、“エンジン”、“プロセッサ”および“処理ユニット”はしばしば互換的に使用される。シェーダコア130はシェーディングのようなある図形演算を実行でき、そして超越初等関数を計算できる。テクスチャエンジン140はテクスチャマッピングのような他の図形演算を実行できる。キャッシュメモリシステム150は1つまたはそれ以上のキャッシュを含んでもよく、それはシェーダコア130およびテクスチャエンジン140に関するデータおよび命令を蓄積できる。
図形プロセッサ120は他の処理および制御ユニット、エンジン、およびメモリを含んでもよい。例えば、図形プロセッサ120は三角形セットアップ、ラスター化、ステンシルおよび深さ試験、属性構成、画素補間、等を実行する1つまたはそれ以上の追加のエンジンを含んでもよい。この中に記述されたいろいろな図形演算はこの分野では周知である。追加のエンジンは図形アプリケーション110とシェーダコア130との間に連結されるかあるいはシェーダコア130に連結されてもよい。図形プロセッサ120はオープン図形ライブラリ(OpenGL)、ダイレクト3D等、のようなソフトウェアインターフェイスを実施できる。OpenGLは、公的に使用可能である、2004年10月22日付けの、標題“OpenGL(R)図形システム:仕様書”第2.0版の文書内に記述される。
主記憶160は図形プロセッサ120からさらに離れて配置された(例えば、オフチップ)、大きい、より遅いメモリである。主記憶160はキャッシュメモリシステム150内のキャッシュの中にロードされることができるデータまたは命令を蓄積する。
図2は画素の属性およびコンポーネントを示す。上記したように、2−Dまたは3−D画像は多くの三角形から構成されることができ、そして各三角形は画素から構成されることができる。各画素は空間配位、カラーバリュー、テクスチャ配位、等のようないろいろな属性を持つことができる。各属性は4コンポーネントまで持つことができる。例えば、空間配位は水平と垂直配位(xとy)および深さ(z)に関する3コンポーネントによって、あるいは4コンポーネントx,y,zおよびw、ここでwはホモジニアス配位に関する第4項である、によって与えられることができる。ホモジニアス配位は変換、スケーリング、ローテーション、等のような、ある図形演算のために有用である。カラーバリューは典型的に赤(r)、緑(g)、および青(b)によって与えられる。テクスチャ配位は典型的に水平および垂直配位(uおよびv)によって与えられる。画素はまた他の属性と関連するかもしれない。
多くの場合、表現されるべき1画像内の画素グループ上で演算することが望ましい。グループサイズはハードウェア条件、性能、等のようないろいろなファクタに基づいて選択されることができる。2×2のグループサイズはいろいろなファクタ間に良好なトレードオフを提供できる。2×2グリッド内の4画素上の処理はいくつかの手法で実行されることができる。
図3Aは4つの同じスカラーALUの、ALU1乃至ALU4をそれぞれ有する4つの画素1乃至4上での画素並列処理を示す。この例では、動作中の1属性の4コンポーネントはAp,1,Ap,2,Ap,3およびAp,4として示され、ここでpは画素インデックスであり、そして画素1乃至4に関してp∈{1,2,3,4}である。これらのコンポーネントは空間配位、カラーバリュー、テクスチャ配位、等のためのものであってもよい。4コンポーネントに適用されるべき4オペランドは、p∈{1,2,3,4}に関して、Bp,1,Bp,2,Bp,3およびBp,4として示され、そして定数であってもよい。この例では、ALUは積和(MAC)演算を実行する。各画素の4コンポーネントはこのように4オペランドと掛け合わされ、そして4つの中間結果がこの画素に関する最終結果を生成するために累算される。
図3Aにおける画素並列処理に関して、各スカラーALUは1画素の4コンポーネントについて演算し、そして4ALUは4画素について同時に演算する。ALU1は第1のクロック周期T1 においてコンポーネントA1,1 をB1,1 と掛け合わせ、その後第2のクロック周期T2 においてコンポーネントA1,2 をB1,2 と掛け合わせそしてこの結果を以前の結果と累算し、その後第3のクロック周期T3 においてコンポーネントA1,3 をB1,3 と掛け合わせそしてこの結果を以前の結果と累算し、その後第4のクロック周期T4 においてコンポーネントA1,4 をB1,4 と掛け合わせそしてこの結果を以前の結果と累算する。ALU2乃至ALU4は同様に、それぞれ、画素2乃至4のコンポーネントについて演算する。
図3Bは、ベクトルベースのALUとも呼ばれることができる、1つのカッドALUを有する4画素上のコンポーネント並列処理を示す。コンポーネント並列処理に関して、カッドALUは一度に1画素の全4コンポーネントについて演算する。従って、カッドALUはコンポーネントA1,1,A1,2,A1,3およびA1,4 を、それぞれ、オペランドB1,1,B1,2,B1,3およびB1,4 と掛け合わせ、そして第1のクロック周期T1 において第1の画素に関する最終結果を得るために4つの中間結果を累算する。カッドALUは同様に、それぞれ、クロック周期T2 ,T3 およびT4 における第2,第3および第4の画素のコンポーネントについて演算する。
図3Aおよび図3Bは4画素までについて1属性の4コンポーネントまでの上でカッド処理を実行するための2つのスキームを示す。算術演算のためのカッド処理は単一のカッドALUまたは4スカラーALUによって実行されることができる。以下の説明では、ALUはもしほかに説明がなければスカラーALUであるとみなされる。カッド処理は本質的に性能を改善する。従って、シェーダコア130はカッド処理を実行するための能力で示されてもよい。
図4は4ユニットALUコア440および4ユニット初等関数コア450を有するシェーダコア/プロセッサ130aの1実施形態のブロック図を示す。シェーダコア130aは図1におけるシェーダコア130として使用されることができる。
シェーダコア130a内で、マルチプレクサ(Mux)410は図形アプリケーション110a乃至110nからスレッドを受信し、そしてこれらのスレッドをスレッドスケジューラ(thread scheduler)およびコンテキストレジスタ420に供給する。スレッドスケジューラ420はスレッドの実行の予定を立てて管理するためにいろいろな機能を実行する。スレッドスケジューラ420は新スレッドを受け入れるかどうかを決定し、各受け入れられたスレッドのためのレジスタマップテーブルを生成し、そして資源をこのスレッドに割り当てる。レジスタマップテーブルは実レジスタファイルアドレスへの論理レジスタアドレス間のマッピングを指示する。各スレッドについて、スレッドスケジューラ420はそのスレッドのために必要な資源の準備ができているかどうかを決定し、もしそのスレッドのためにいずれの資源(例えば、命令、レジスタファイル、またはテクスチャリード)も準備ができなければこのスレッドを休止キュー内に押し込み、そして資源のすべての準備ができた時にこのスレッドを休止キューからアクティブキューに移動させる。スレッドスケジューラ420はこのスレッドのための資源をシンクロナイズさせるために負荷制御ユニット(load control unit)460とインターフェイスする。
スレッドスケジューラ420はまたスレッドの実行を管理する。スレッドスケジューラ420は各スレッドに関する命令を命令キャッシュ422から取ってきて、もし必要なら各命令を復号し、そしてこのスレッドについてフロー制御を実行する。スレッドスケジューラ420は実行のためのアクティブスレッドを選択し、この選択されたスレッドの間の読取り/書込みポートの競合についてチェックし、そしてもし競合が無ければ、1つのスレッドに関する命令を処理コア430の中に送り、そしてもう1つのスレッドに関する命令を負荷制御ユニット460に送る。スレッドスケジューラ420は各スレッドに関するプログラム/命令カウンタを維持し、そして命令が実行されるかまたはプログラムフローが変更される時にこのカウンタを更新する。スレッドスケジューラ420はまた紛失した命令について取ってくるように要求を出し、そして完了されるスレッドを取り除く。
命令キャシュ422はスレッドに関する命令を蓄積する。これらの命令は各スレッドについて実行されるべき特定の演算を指示する。各演算は算術演算、初等関数、メモリアクセス演算、等であってもよい。命令キャッシュ422は、必要な時に、負荷制御ユニット460を介して、キャッシュメモリシステム150および/または主記憶160からの命令とともに負荷されてもよい。
図4に示された実施形態では、処理コア430はALUコア440および初等関数コア450を含む。ALUコア440は加算、減算、乗算、積和、絶対、否定、比較、飽和、等のような算術演算を実行する。ALUコア440はまたAND、OR、XOR、等のような論理演算を実行する。ALUコア440はまた書式変換、例えば、整数から浮動小数点数へ、および逆もまた同様に実行する。図4に示された実施形態では、ALUコア440は単一のカッドALUまたは4スカラーALUであってもよい。ALUコア440は、図3Aに示されるように、4画素までについて1属性の1コンポーネント上で画素並列処理を実行できる。あるいは、ALUコア440は、図3Bに示されるように、単一の画素について1属性の4コンポーネントまでの上でコンポーネント並列処理を実行できる。
図4に示された実施形態では、初等関数コア450は4画素(画素並列)までについて1属性の1コンポーネントのための初等関数または1画素(コンポーネント並列)について1属性の4コンポーネントまで計算することができる4つの初等関数ユニットよりなる。初等関数コア450は、シェーダ命令内で広く使用される、正弦、余弦、逆数、対数、指数、平方根、および逆平方根、等のような超越初等関数を計算できる。初等関数コア450は単純命令を使用している初等関数の多項式近似を実行するのに必要な時間よりもずっと少ない時間で初等関数を計算することによってシェーダ性能を改善することができる。
負荷制御ユニット460はシェーダコア130a内のいろいろなユニットに関するデータのフローおよび命令を制御する。負荷制御ユニット460はキャッシュメモリシステム150とインターフェイスし、キャッシュメモリシステム150からのデータおよび命令を用いて命令キャッシュ422、定数バッファ432、およびレジスタファイルバンク/出力バッファ470を負荷する。負荷制御ユニット460はまたキャッシュメモリシステム150への出力バッファ470内のデータを保存する。負荷制御ユニット460はまた命令をテクスチャエンジン140に供給する。
定数バッファ432はALUコア440によって使用された定数値を蓄積する。出力バッファ470はスレッドに関するALUコア440および初等関数コア450からの最終結果と同様に一時的結果を蓄積する。デマルチプレクサ(Demux)480は実行されたスレッドに関する最終結果を出力バッファ470から受信し、そしてこれらの結果を図形アプリケーションに供給する。
図4に示された実施形態では、処理コア430はALUコア440および初等関数コア450の両方を含む。この実施形態はALUコア440および初等関数コア450に、コア440および450をシェーダコア130a内の他のユニット(例えば、スレッドスケジューラ420および出力バッファ470)に連結するバスを共有させる。
初等関数ユニットは通常ALUよりもより複雑である。費用効率の高い実施の形態でさえ、初期関数ユニットは典型的にALUよりも大きい回路面積を占有し、従ってALUよりも高価である。すべてのシェーダ命令について高いシェーダ処理能力を達成するために、初等関数ユニットの数はALUの数に匹敵するように選択されてもよく、それは図4に示された実施形態では4である。しかしながら、研究は、たとえ初等関数が広く使用されるとしても、初等関数の平均使用率はALU演算の平均使用率よりもかなり低いことを示した。より低い平均使用率は、算術演算よりも初等関数によって演算されているより少数のコンポーネントと同様に算術演算ほど度々でないと言われている初等関数に起因する。例えば、初等関数は典型的に算術演算ほど度々でないと言われ、従ってより少ない初等関数ユニットによって適切にサポートされる。さらに、それはその後4ALUを有する恩恵を被るであろう、1属性の全4コンポーネント上で加算または乗算を実行することが一般的でありうる一方で、それは全4コンポーネント上で1初等関数を実行するほど一般的ではない。よって、より少数の初等関数ユニットは、初等関数がサブセットのコンポーネントのみ、例えば、1または2コンポーネントの上で実行される多くの場合に良好な性能を提供することができるかもしれない。より少数の初等関数ユニットを実施することは、なお良好な性能を提供する一方でコストを下げることができる。
図5は4ユニットALUコア540およびLユニット初等関数コア550、ここで1≦L<4、を有するシェーダコア130bの1実施形態のブロック図を示す。シェーダコア130bはまた図1内のシェーダコア130として使用されることもできる。シェーダコア130bは、それぞれ、図4内のユニット410、420、422、432、440、450、460、470および480と同じ方法で動作する、マルチプレクサ510、スレッドスケジューラおよびコンテキストレジスタ520、命令キャッシュ522、定数バッファ532、ALUコア540、初等関数コア550、負荷制御ユニット560、レジスタファイルバンク/出力バッファ570、およびデマルチプレクサ580を含む。
ALUコア540は単一のカッドALUまたは4つのスカラーALUであってもよい。ALUコア540は1組のバスを介してスレッドスケジューラ520、定数バッファ532、および出力バッファ570に連結する。初等関数コア550は1画素のLコンポーネントまたはL画素の1コンポーネントのいずれかに関する初等関数を計算できる1,2または3(L)初等関数ユニットから構成されてもよい。初等関数コア550はもう1組のバスを介してスレッドスケジューラ520、定数バッファ532、および出力バッファ570に連結する。図5に示された実施形態では、ALUコア540および初等関数コア550は互いに別々に実施され、そして別個のバスを介してシェーダコア130b内の他のユニットに連結される。ALUコア540および初等関数コア550はその後異なる命令上で同時に動作できる。これらの命令は同じか異なる図形アプリケーションのためのものであってもよい。
図5に示された実施形態では、初等関数ユニットの数はALUの数よりも少数であり、そしてコストと性能との間の取引に基づいて選択されることができる。多くの場合、初等関数コア550は、初等関数のより低い平均使用率のためにALUコア540と歩調を合わせることができるであろう。スレッドスケジューラ520は、L(4のかわりに)初等関数ユニットが使用可能である認識で初等関数演算を適切にスケジュールする。
図6は4ユニットALUコア640および1ユニット初等関数コア650を有するシェーダコア/プロセッサ130cの1実施形態のブロック図を示す。シェーダコア130cはまた図1内のシェーダコア130として使用されることもできる。シェーダコア130cは、それぞれ、図4内のユニット410、420、422、432、440、450、460、470および480と同じ方法で動作する、マルチプレクサ610、スレッドスケジューラおよびコンテキストレジスタ620、命令キャッシュ622、定数バッファ632、ALUコア640、初等関数コア650、負荷制御ユニット660、レジスタファイルバンク/出力バッファ670、およびデマルチプレクサ680を含む。
ALUコア640は単一のカッドALUまたは4つのスカラーALUであってもよい。ALUコア640は1組のバスを介してスレッドスケジューラ620、定数バッファ632、および出力バッファ670に連結する。初等関数コア650は一度に1画素の1コンポーネントに関する1初等関数を計算できる単一の初等関数ユニットから構成されてもよい。図6に示された実施形態では、初等関数コア650は負荷制御ユニット660および出力バッファ670に連結する。この実施形態は別個のALUコア640および初等関数コア650をサポートするためのバスの数を減少させる。この実施形態はまたレジスタファイル読出し/書込みポート、命令符号化、等のような資源のより効率的な共有のような他の恩恵も提供できる。
初等関数に関する命令(またはEF命令)はシェーダコア130c内の初等関数コア650の配置と同様に構成を与えられた適切な方法で発生されることができる。もしもEFユニットの数がALUユニット(例えば、図4に示されたような)の数に等しいならば、そしてもしもEFユニットがALUユニットと同じパイプライン待ち時間を有するならば、その時EF命令は予測できるパイプライン遅延を有するALU命令とみなされることができる。しかしながら、ALUコア640および初等関数コア650の一様でない実施形態は一様でない処理能力という結果になる。このように、1実施形態では、シェーダコア130cは初等関数コア650を負荷供給源とみなし、そしてEF命令を類似の方法でおよび、例えば、テクスチャ負荷またはメモリ負荷と同じ同期を用いて処理する。例えば、シェーダコンパイラはALU命令としてのかわりにテクスチャ負荷に関する命令としてEF命令をコンパイルしてもよく、それは図4および5に示された実施形態の場合であってもよい。
シェーダコンパイラは適切なように命令内に同期(sync)ビットを含んでもよい。syncビットは、このsyncビットを含む現在の命令が1つまたはそれ以上の以前の命令とデータ従属性を有することを示し、以前の命令は予測不能の遅延または待ち時間を有してもよい。予測不能の待ち時間はいくつかの原因によるかもしれない。第1に、テクスチャ負荷またはメモリ負荷の予測不能の待ち時間はキャッシュヒット/ミス、メモリアクセス能力、メモリアクセスシーケンス、等のような予測不能の実行条件が原因となるかもしれない。第2に、予測不能の待ち時間はALUコアおよび初等関数コアの一様でない実施によって引き起こされるかもしれない。シェーダコンパイラは、予測不能の遅延を有するかもしれない、以前のEF命令とデータ従属性を有する命令内にsyncビットを挿入できる。これらのsyncビットは、この命令がそれらの従属EF命令にフォローし、よって固有のデータについて演算することを保証する。
図6に示された実施形態では、スレッドスケジューラ620はデータ負荷要求(load request)とバスを共有できる初等関数要求を発生することができる。この共有されたバスはスレッドスケジューラ620から負荷制御ユニット660へのバスを具備してもよい。しかしながら、初等関数コア650は負荷制御ユニット660内の負荷命令(load instruction)を用いて同時に実行することができる。もう1つの実施形態では、初等関数コア650は、例えば、図5内に示されたように、専用バスを介してスレッドスケジューラ620に直接連結される。この実施形態では、初等関数要求およびデータ負荷要求は別個のバスを使用できる。両実施形態では、スレッドスケジューラ620、ALUコア640、初等関数コア650、および負荷制御ユニット660は改善された性能のために異なるスレッド上で同時に動作することができる。
図4乃至6はシェーダコア130a、130bおよび130cの特定の実施形態を示す。シェーダコア130a、130bおよび130cの他の変種も可能である。例えば、図4における初等関数コア450は4初等関数ユニットよりも少数の初等関数ユニットを含んでもよい。もう1つの例として、図6における初等関数ユニット650は1つよりも多い初等関数ユニット、例えば、2初等関数ユニットを含んでもよい。
一般に、シェーダコアは、任意の方法で配置されることができる、任意の数の処理、制御およびメモリユニットを含むことができる。これらのユニットはまた他の名称によって参照されるかもしれない。例えば、負荷制御ユニットはまた入力/出力(I/O)インターフェイスユニットと呼ばれるかもしれない。ある実施形態では、性能におけるわずかな劣化でコストを引き下げるためにALUよりも少数の初等関数ユニットを含むかもしれない。他の実施形態では、シェーダコアは同じまたは異なる図形アプリケーションに関する異なる命令上で同時に動作できる別個のALUコアおよび初等関数コアを含むかもしれない。ALUおよび初等関数ユニットはこの分野で既知のいろいろな構成を用いて実施されることができる。シェーダコアはまた同期および/または非同期インターフェイスを介して外部ユニットとインターフェイスすることもできる。
この中に記述された図形プロセッサおよびシェーダコアは無線通信、演算、ネットワーク通信、個人エレクトロニクス、等のために使用されることができる。無線通信用の図形プロセッサの例示的な使用が下記される。
図7は無線通信システム内の無線装置700の1実施形態のブロック図を示す。無線装置700はセルラ電話機、端末、ハンドセット、パーソナルディジタルアシスタント(PDA)、または何か他の装置であってもよい。無線通信システムは符号分割多重アクセス(CDMA)システム、移動通信用グローバルシステム(GSM)、または何か他のシステムであってもよい。
無線装置700は受信パスおよび送信パスを介して双方向通信を提供することが可能である。受信パス上では、基地局によって送信された信号はアンテナ712によって受信され、そして受信器(RCVR)714に供給される。受信器714はこの受信された信号を調節してディジタル化し、そしてさらなる処理のためのディジタルセクション720にサンプルを供給する。送信パス上では、送信器(TMTR)716はディジタルセクション720から送信されるべきデータを受信し、このデータを処理および調節し、そしてアンテナ712を介して基地局に送信される、変調された信号を生成する。
ディジタルセクション720は、例えば、モデムプロセッサ722、ビデオプロセッサ724、アプリケーションプロセッサ726、ディスプレイプロセッサ728、コントローラ/プロセッサ730、図形プロセッサ740、および外部バスインターフェイス(EBI)760のようないろいろな処理およびインターフェイスユニットを含む。モデムプロセッサ722はデータ送受信に関する処理(例えば、符号化、変調、復調、および復号化)を実行する。ビデオプロセッサ724はポータブルビデオカメラ、ビデオ再生、およびビデオ会議のようなビデオ応用に関するビデオ内容(例えば、スチール画像、ムービングビデオ、およびムービングテキスト)上の処理を実行する。アプリケーションプロセッサ726は多元呼、ウェブブラウジング、メディアプレーヤー、およびユーザインターフェイスのようないろいろなアプリケーションに関する処理を実行する。ディスプレイプロセッサ728はディスプレイユニット780上のビデオ、図形、およびテキストの表示を容易とするための処理を実行する。コントローラ/プロセッサ730はディジタルセクション720内のいろいろな処理およびインターフェイスユニットの動作を指示できる。
図形プロセッサ740は図形アプリケーションに関する処理を実行し、そして上述されたように実施されることができる。例えば、図形プロセッサ740は図1内のシェーダコア/プロセッサ130およびテクスチャエンジン140を含んでもよい。キャッシュメモリシステム750は図形プロセッサ740に関するデータおよび/または命令を蓄積する。キャッシュメモリシステム750は(1)図形プロセッサ740内で異なるエンジンに割り当てられることができる構成可能なキャッシュおよび/または(2)特定のエンジンに割り当てられる専用キャッシュを用いて実施されてもよい。EBI760はディジタルセクション720(例えば、キャッシュ)および主記憶770の間のデータ転送を容易とする。
ディジタルセクション720は1つまたはそれ以上のディジタル信号プロセッサ(DSP)、マイクロプロセッサ、既約命令セットコンピュータ(RISC)、等を用いて実施されることができる。ディジタルセクション720はまた1つまたはそれ以上の特定用途向け集積回路(ASIC)または何か他のタイプの集積回路(IC)上に組み立てられてもよい。
この中に記述された図形プロセッサおよびシェーダコア/プロセッサはいろいろなハードウェアユニット内で実施されることができる。例えば、図形システムおよびシェーダコア/プロセッサはASIC、ディジタル信号プロセッサ(DSP)、ディジタル信号処理装置(DSPD)、プログラマブル論理装置(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、プロセッサ、コントローラ、マイクロコントローラ、マイクロプロセッサ、および他の電子ユニット内で実施されてもよい。
図形プロセッサのある部分はファームウェアおよび/またはソフトウェア内で実施されることができる。例えば、スレッドスケジューラおよび/または負荷制御ユニットは、この中に記述された機能を実行するファームウェアおよび/またはソフトウェアモジュール(例えば、手順、機能、等)を用いて実施されることができる。ファームウェアおよび/またはソフトウェア符号はメモリ(例えば、図7内のメモリ750または770)内に蓄積され、そしてプロセッサ(例えば、プロセッサ730)によって実行されることができる。メモリはプロセッサ内でまたはプロセッサと無関係に実施されることができる。
開示された実施形態の前の説明はこの分野における任意の技術者に本発明を製作または使用することを可能にするように提供される。これらの実施形態へのいろいろな変更はこの分野の技術者にはたやすく明白であるだろうし、そしてこの中に定義された包括的な原理はこの発明の精神または範囲から逸脱すること無しに他の実施形態に適用されることができる。従って、本発明はこの中に示された実施形態に限定されるつもりはないが、しかしこの中に開示された原理および新規な特徴と矛盾しない最も広い範囲が許容されるべきである。
付記
[1] 装置であって、算術演算を実行するように動作する少なくとも1つの算術論理ユニット(ALU)と、そして 初等関数を計算するように動作する少なくとも1つの初等関数ユニットとを含み、該少なくとも1つの初等関数ユニットおよび該少なくとも1つのALUが複数スレッド上で同時に動作可能である装置。
[2] 4つの算術論理ユニットを含む[1]記載の装置。
[3] 該4つの算術論理ユニットが1画素について1属性の4コンポーネントまでの上で算術演算を実行するように動作可能である、[2]記載の装置。
[4] 該4つの算術論理ユニットが4画素までについて1属性の1コンポーネントの上で算術演算を実行するように動作可能である、[2]記載の装置。
[5] 算術論理ユニットよりも少数の初等関数ユニットを含む[1]記載の装置。
[6] 単一の初等関数ユニットを含む[1]記載の装置。
[7] 該少なくとも1つの初等関数ユニットに関する命令が負荷命令として同期と共にコンパイルされる、[1]記載の装置。
[8] 制御ビットが該少なくとも1つの初等関数ユニットに関する該命令による他の命令と共に該少なくとも1つの初等関数ユニットに関する命令の同期のために使用される、[1]記載の装置。
[9] 該少なくとも1つの算術論理ユニットが第1のスレッドに関する第1の命令を実行するように動作可能であり、そして該少なくとも1つの初等関数ユニットが第2のスレッドに関する第2の命令を該少なくとも1つの算術論理ユニットと同時に実行するように動作可能である、[1]記載の装置。
[10] 該少なくとも1つの算術論理ユニットおよび該少なくとも1つの初等関数ユニットが異なる待ち時間を有する、[1]記載の装置。
[11] さらに、該少なくとも1つの算術論理ユニットとメモリシステムとの間および該少なくとも1つの初等関数ユニットと該メモリシステムとの間のデータの交換を容易とするように動作する負荷制御ユニットを含む、[1]記載の装置。
[12] 該少なくとも1つの初等関数ユニットが該負荷制御ユニットに連結される、[11]記載の装置。
[13] 該少なくとも1つの初等関数ユニットが該負荷制御ユニットと同時に動作可能である、[11]記載の装置。
[14] 該少なくとも1つの初等関数ユニットに関する要求および該負荷制御ユニットに関する負荷要求がバスを共有し、そして該少なくとも1つの初等関数ユニットおよび該負荷制御ユニットが異なるスレッドを同時に実行するように動作可能である、[12]記載の装置。
[15] さらに少なくとも1つの図形アプリケーションからスレッドを受信するようにおよび該少なくとも1つの算術論理ユニットおよび該少なくとも1つの初等関数ユニットによって該スレッドの実行を予定するように動作するスケジューラを含む、[1]記載の装置。
[16] 該少なくとも1つの初等関数ユニットが該スケジューラに連結される、[15]記載の装置。
[17] さらに、該少なくとも1つの算術論理ユニットおよび該少なくとも1つの初等関数ユニットと連結されたおよび該少なくとも1つのALUおよび該少なくとも1つの初等関数ユニットからの結果を蓄積するように動作する出力バッファを含む、[1]記載の装置。
[18] 集積回路であって、算術演算を実行するように動作する少なくとも1つの算術論理ユニット(ALU)と、そして初等関数を計算するように動作する少なくとも1つの初等関数ユニットとを含み、該少なくとも1つの初等関数ユニットおよび該少なくとも1つのALUが複数スレッド上で同時に動作可能である集積回路。
[19] および、4つの算術論理ユニットおよび4よりも少数の初等関数ユニットを含む[18]記載の集積回路。
[20] 無線装置であって、算術演算を実行するように動作する少なくとも1つの算術論理ユニット(ALU)および初等関数を計算するように動作する少なくとも1つの初等関数ユニットを含む図形プロセッサと、なお該少なくとも1つの初等関数ユニットおよび該少なくとも1つの算術論理ユニットが複数スレッド上で同時に動作可能であり、そして該図形プロセッサに関するデータを蓄積するように動作するメモリシステムと、を含む無線装置。
[21] 該図形プロセッサが4つの算術論理ユニットおよび4よりも少数の初等関数ユニットを含む、[20]記載の無線装置。
[22] 装置であって、算術演算を実行するように動作する少なくとも1つの算術論理ユニット(ALU)と、そして初等関数を計算するように動作する少なくとも1つの初等関数ユニットとを含み、該少なくとも1つの初等関数ユニットの数が該少なくとも1つの算術論理ユニットの該数よりも少数である装置。
[23] 該少なくとも1つの算術論理ユニットが該少なくとも1つの初等関数ユニットと同時に動作可能である、[22]記載の装置。
[24] さらに、該少なくとも1つの算術論理ユニットとメモリシステムとの間および該少なくとも1つの初等関数ユニットと該メモリシステムとの間のデータの交換を容易とするように動作する負荷制御ユニットを含む[22]記載の装置。
[25] 該少なくとも1つの初等関数ユニットが該負荷制御ユニットに連結される、[24]記載の装置。

Claims (17)

  1. 出力バッファと、
    加算、減算、乗算、積和、絶対、否定、比較、飽和を含む算術演算を算術論理ユニット(ALU)命令に基づいて実行するように動作する少なくとも1つの算術論理ユニット(ALU)と、
    正弦、余弦、逆数、対数、指数、平方根、および逆平方根を含む初等関数を初等関数ユニット命令に基づいて計算するように動作する少なくとも1つの初等関数ユニットと、
    を含み、前記少なくとも1つの初等関数ユニットおよび前記少なくとも1つの算術論理ユニットが前記出力バッファに独立して接続され、異なる命令で同時に動作するように構成され、前記ALU命令は同期ビットを含み、前記同期ビットは前記初等関数ユニット命令に従属している前記ALU命令が、前記ALU命令が従属している前記初等関数ユニット命令に従うことを保証する、装置。
  2. 4つの算術論理ユニットを含む、請求項1記載の装置。
  3. 前記4つの算術論理ユニットが1画素について1属性の最大4つのコンポーネント算術演算を実行するように動作可能である、請求項2記載の装置。
  4. 前記4つの算術論理ユニットが4画素までについて1属性の1つのコンポーネント算術演算を実行するように動作可能である、請求項2記載の装置。
  5. 前記4つの算術論理ユニットよりも少数の初等関数ユニットを含む、請求項1記載の装置。
  6. 単一の初等関数ユニットを含む、請求項1記載の装置。
  7. 前記少なくとも1つの算術論理ユニットおよび前記少なくとも1つの初等関数ユニットが異なる待ち時間を有する、請求項1記載の装置。
  8. 前記少なくとも1つの算術論理ユニットとメモリシステムとの間および前記少なくとも1つの初等関数ユニットと前記メモリシステムとの間のデータの交換を容易とするように動作する負荷制御ユニットを更に含む、請求項1記載の装置。
  9. 前記少なくとも1つの初等関数ユニットが前記負荷制御ユニットに接続される、請求項記載の装置。
  10. 前記少なくとも1つの初等関数ユニットが前記負荷制御ユニットと同時に動作可能である、請求項記載の装置。
  11. 前記少なくとも1つの初等関数ユニットに関する要求および前記負荷制御ユニットに関する負荷要求がバスを共有し、前記少なくとも1つの初等関数ユニットおよび前記負荷制御ユニットが異なるスレッドを同時に実行するように動作可能である、請求項記載の装置。
  12. 少なくとも1つの図形アプリケーションからスレッドを受信するようにおよび前記少なくとも1つの算術論理ユニットおよび前記少なくとも1つの初等関数ユニットによって前記スレッドの実行をスケジュールするように動作するスケジューラを更に含む、請求項1記載の装置。
  13. 前記少なくとも1つの初等関数ユニットが前記スケジューラに接続される、請求項12記載の装置。
  14. 出力バッファと、
    ALU命令に基づいて加算、減算、乗算、積和、絶対、否定、比較、飽和を含む算術演算を実行するように動作する少なくとも1つの算術論理ユニット(ALU)と、
    正弦、余弦、逆数、対数、指数、平方根、および逆平方根を含む初等関数を計算するように動作する少なくとも1つの初等関数ユニットと、
    を含み、前記少なくとも1つの初等関数ユニットおよび前記少なくとも1つの算術論理ユニットは前記出力バッファに独立して接続され、異なる命令で同時に動作するように構成され、前記ALU命令は同期ビットを含み、前記同期ビットは前記初等関数ユニット命令に従属している前記ALU命令が、前記ALU命令が従属している前記初等関数ユニット命令に従うことを保証する、集積回路。
  15. 4つの算術論理ユニットおよび4つ未満の初等関数ユニットを含む、請求項14記載の集積回路。
  16. 出力バッファと、ALU命令に基づいて加算、減算、乗算、積和、絶対、否定、比較、飽和を含む算術演算を実行するように動作する少なくとも1つの算術論理ユニット(ALU)および初等関数ユニット命令に基づいて正弦、余弦、逆数、対数、指数、平方根、および逆平方根を含む初等関数を計算するように動作する少なくとも1つの初等関数ユニットを含む図形プロセッサと、前記図形プロセッサのためのデータを記憶するように動作するメモリシステムと、を具備し、前記少なくとも1つの初等関数ユニットと前記少なくとも1つの算術論理ユニットは前記出力バッファに独立して接続され、異なる命令で同時に動作するように構成され、前記ALU命令は同期ビットを含み、前記同期ビットは前記初等関数ユニット命令に従属している前記ALU命令が前記ALU命令が従属している前記初等関数ユニット命令に従うことを保証する、無線装置。
  17. 前記図形プロセッサが4つの算術論理ユニットおよび4よりも少数の初等関数ユニットを含む、請求項16記載の無線装置。
JP2009512327A 2006-05-25 2007-05-25 算術および初等関数ユニットを有する図形プロセッサ Active JP5006390B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/441,696 2006-05-25
US11/441,696 US8884972B2 (en) 2006-05-25 2006-05-25 Graphics processor with arithmetic and elementary function units
PCT/US2007/069803 WO2007140338A2 (en) 2006-05-25 2007-05-25 Graphics processor with arithmetic and elementary function units

Publications (2)

Publication Number Publication Date
JP2009538486A JP2009538486A (ja) 2009-11-05
JP5006390B2 true JP5006390B2 (ja) 2012-08-22

Family

ID=38683594

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009512327A Active JP5006390B2 (ja) 2006-05-25 2007-05-25 算術および初等関数ユニットを有する図形プロセッサ

Country Status (8)

Country Link
US (2) US8884972B2 (ja)
EP (1) EP2024819B1 (ja)
JP (1) JP5006390B2 (ja)
KR (1) KR101012625B1 (ja)
CN (1) CN101449239B (ja)
CA (1) CA2650539A1 (ja)
IN (1) IN266871B (ja)
WO (1) WO2007140338A2 (ja)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8611305B2 (en) 2005-08-22 2013-12-17 Qualcomm Incorporated Interference cancellation for wireless communications
US9071344B2 (en) 2005-08-22 2015-06-30 Qualcomm Incorporated Reverse link interference cancellation
US8766995B2 (en) 2006-04-26 2014-07-01 Qualcomm Incorporated Graphics system with configurable caches
US20070268289A1 (en) * 2006-05-16 2007-11-22 Chun Yu Graphics system with dynamic reposition of depth engine
US8869147B2 (en) 2006-05-31 2014-10-21 Qualcomm Incorporated Multi-threaded processor with deferred thread output control
US8644643B2 (en) * 2006-06-14 2014-02-04 Qualcomm Incorporated Convolution filtering in a graphics processor
US8766996B2 (en) 2006-06-21 2014-07-01 Qualcomm Incorporated Unified virtual addressed register file
US20080122843A1 (en) * 2006-07-20 2008-05-29 Via Technologies, Inc. Multi-thread vertex shader, graphics processing unit and flow control method
US8345053B2 (en) * 2006-09-21 2013-01-01 Qualcomm Incorporated Graphics processors with parallel scheduling and execution of threads
US9135017B2 (en) * 2007-01-16 2015-09-15 Ati Technologies Ulc Configurable shader ALU units
US20080198166A1 (en) * 2007-02-16 2008-08-21 Via Technologies, Inc. Multi-threads vertex shader, graphics processing unit, and flow control method
US20090160867A1 (en) * 2007-12-19 2009-06-25 Advance Micro Devices, Inc. Autonomous Context Scheduler For Graphics Processing Units
US8248422B2 (en) * 2008-01-18 2012-08-21 International Business Machines Corporation Efficient texture processing of pixel groups with SIMD execution unit
US20090189896A1 (en) * 2008-01-25 2009-07-30 Via Technologies, Inc. Graphics Processor having Unified Shader Unit
US8633936B2 (en) 2008-04-21 2014-01-21 Qualcomm Incorporated Programmable streaming processor with mixed precision instruction execution
US20100046660A1 (en) 2008-05-13 2010-02-25 Qualcomm Incorporated Interference cancellation under non-stationary conditions
US9408165B2 (en) 2008-06-09 2016-08-02 Qualcomm Incorporated Increasing capacity in wireless communications
US9277487B2 (en) * 2008-08-01 2016-03-01 Qualcomm Incorporated Cell detection with interference cancellation
US9237515B2 (en) 2008-08-01 2016-01-12 Qualcomm Incorporated Successive detection and cancellation for cell pilot detection
US8509293B2 (en) * 2008-08-19 2013-08-13 Qualcomm Incorporated Semi-coherent timing propagation for GERAN multislot configurations
US8503591B2 (en) * 2008-08-19 2013-08-06 Qualcomm Incorporated Enhanced geran receiver using channel input beamforming
US9160577B2 (en) 2009-04-30 2015-10-13 Qualcomm Incorporated Hybrid SAIC receiver
US8787509B2 (en) 2009-06-04 2014-07-22 Qualcomm Incorporated Iterative interference cancellation receiver
US8831149B2 (en) 2009-09-03 2014-09-09 Qualcomm Incorporated Symbol estimation methods and apparatuses
US8619928B2 (en) * 2009-09-03 2013-12-31 Qualcomm Incorporated Multi-stage interference suppression
US8854381B2 (en) * 2009-09-03 2014-10-07 Advanced Micro Devices, Inc. Processing unit that enables asynchronous task dispatch
CN102668612B (zh) 2009-11-27 2016-03-02 高通股份有限公司 增加无线通信中的容量
BR112012012632B1 (pt) 2009-11-27 2020-12-15 Qualcomm Incorporated Método e equipamento para aumentar a capacidade de transmissão em comunicações sem fio, e memória legível por computador
CN103765376B (zh) * 2011-06-16 2017-05-31 想象技术有限公司 具有无阻塞并行架构的图形处理器
WO2013101119A1 (en) * 2011-12-29 2013-07-04 Intel Corporation Method and apparatus for controlling a mxcsr
CN102622236A (zh) * 2012-01-13 2012-08-01 深圳市妙趣工场信息科技有限公司 一种Geart3D游戏引擎
CN103176948B (zh) * 2013-03-04 2016-06-29 浙江大学 一种低成本的单精度初等函数运算加速器
EP3114560A1 (en) * 2014-03-07 2017-01-11 Sony Corporation Data speculation for array processors
US10324723B2 (en) * 2014-07-02 2019-06-18 Nxp Usa, Inc. Systems and methods for processing both instructions and constant values from a memory of a digital processor accessed by separate pointers
US9552229B2 (en) 2015-05-14 2017-01-24 Atlassian Pty Ltd Systems and methods for task scheduling
US10410311B2 (en) * 2016-03-07 2019-09-10 Intel Corporation Method and apparatus for efficient submission of workload to a high performance graphics sub-system
US10558460B2 (en) 2016-12-14 2020-02-11 Qualcomm Incorporated General purpose register allocation in streaming processor
US10423747B2 (en) * 2017-02-02 2019-09-24 Intel Corporation Method and apparatus for supporting temporal virtualization on a target device
US10417731B2 (en) 2017-04-24 2019-09-17 Intel Corporation Compute optimization mechanism for deep neural networks
US10417734B2 (en) 2017-04-24 2019-09-17 Intel Corporation Compute optimization mechanism for deep neural networks
CN108564644B (zh) * 2017-12-27 2022-04-08 中国科学院光电研究院 机载主被动三维影像实时成像装置及方法
US10402224B2 (en) * 2018-01-03 2019-09-03 Intel Corporation Microcontroller-based flexible thread scheduling launching in computing environments
GB2580178B (en) * 2018-12-21 2021-12-15 Imagination Tech Ltd Scheduling tasks in a processor
US20200264873A1 (en) * 2019-02-20 2020-08-20 Nanjing Iluvatar CoreX Technology Co., Ltd. (DBA ? Iluvatar CoreX Inc. Nanjing?) Scalar unit with high performance in crypto operation
US12066975B2 (en) 2019-03-15 2024-08-20 Intel Corporation Cache structure and utilization
CN117132450B (zh) * 2023-10-24 2024-02-20 芯动微电子科技(武汉)有限公司 一种可实现数据共享的计算装置和图形处理器

Family Cites Families (168)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3304418A (en) * 1964-03-02 1967-02-14 Olivetti & Co Spa Binary-coded decimal adder with radix correction
US4079452A (en) * 1976-06-15 1978-03-14 Bunker Ramo Corporation Programmable controller with modular firmware for communication control
NL7807314A (nl) * 1978-07-06 1980-01-08 Philips Nv Inrichting voor het vergroten van de lengte van een logisch computeradres.
JPH03185521A (ja) * 1989-12-15 1991-08-13 Hitachi Ltd データ処理装置
US5208765A (en) * 1990-07-20 1993-05-04 Advanced Micro Devices, Inc. Computer-based method and system for product development
US6850252B1 (en) 1999-10-05 2005-02-01 Steven M. Hoffberg Intelligent electronic appliance system and method
US5903454A (en) 1991-12-23 1999-05-11 Hoffberg; Linda Irene Human-factored interface corporating adaptive pattern recognition based controller apparatus
US7006881B1 (en) 1991-12-23 2006-02-28 Steven Hoffberg Media recording device with remote graphic user interface
EP0627682B1 (en) 1993-06-04 1999-05-26 Sun Microsystems, Inc. Floating-point processor for a high performance three dimensional graphics accelerator
JPH0784851A (ja) 1993-09-13 1995-03-31 Toshiba Corp 共有データ管理方法
JP3579461B2 (ja) 1993-10-15 2004-10-20 株式会社ルネサステクノロジ データ処理システム及びデータ処理装置
US6339767B1 (en) * 1997-06-02 2002-01-15 Aurigin Systems, Inc. Using hyperbolic trees to visualize data generated by patent-centric and group-oriented data processing
US5509129A (en) * 1993-11-30 1996-04-16 Guttag; Karl M. Long instruction word controlling plural independent processor operations
US6154725A (en) * 1993-12-06 2000-11-28 Donner; Irah H. Intellectual property (IP) computer-implemented audit system optionally over network architecture, and computer program product for same
GB2285524B (en) 1994-01-11 1998-02-04 Advanced Risc Mach Ltd Data memory and processor bus
EP0676691A3 (en) 1994-04-06 1996-12-11 Hewlett Packard Co Device for saving and restoring registers in a digital computer.
US6279099B1 (en) 1994-04-29 2001-08-21 Sun Microsystems, Inc. Central processing unit with integrated graphics functions
US5694143A (en) 1994-06-02 1997-12-02 Accelerix Limited Single chip frame buffer and graphics accelerator
US5598546A (en) * 1994-08-31 1997-01-28 Exponential Technology, Inc. Dual-architecture super-scalar pipeline
US5526257A (en) * 1994-10-31 1996-06-11 Finlay Fine Jewelry Corporation Product evaluation system
CN1312549C (zh) * 1995-02-13 2007-04-25 英特特拉斯特技术公司 用于安全交易管理和电子权利保护的系统和方法
US5777629A (en) * 1995-03-24 1998-07-07 3Dlabs Inc. Ltd. Graphics subsystem with smart direct-memory-access operation
US5798770A (en) 1995-03-24 1998-08-25 3Dlabs Inc. Ltd. Graphics rendering system with reconfigurable pipeline sequence
US5872729A (en) * 1995-11-27 1999-02-16 Sun Microsystems, Inc. Accumulation buffer method and apparatus for graphical image processing
US5774833A (en) * 1995-12-08 1998-06-30 Motorola, Inc. Method for syntactic and semantic analysis of patent text and drawings
US5794016A (en) 1995-12-11 1998-08-11 Dynamic Pictures, Inc. Parallel-processor graphics architecture
US5754840A (en) * 1996-01-23 1998-05-19 Smartpatents, Inc. System, method, and computer program product for developing and maintaining documents which includes analyzing a patent application with regards to the specification and claims
US5944816A (en) 1996-05-17 1999-08-31 Advanced Micro Devices, Inc. Microprocessor configured to execute multiple threads including interrupt service routines
US5793385A (en) 1996-06-12 1998-08-11 Chips And Technologies, Inc. Address translator for a shared memory computing system
US6226604B1 (en) * 1996-08-02 2001-05-01 Matsushita Electric Industrial Co., Ltd. Voice encoder, voice decoder, recording medium on which program for realizing voice encoding/decoding is recorded and mobile communication apparatus
US5949920A (en) 1996-08-13 1999-09-07 Hewlett-Packard Co. Reconfigurable convolver circuit
JP2970553B2 (ja) * 1996-08-30 1999-11-02 日本電気株式会社 マルチスレッド実行方法
TW360823B (en) * 1996-09-30 1999-06-11 Hitachi Ltd Data processor and graphic processor
US6614847B1 (en) 1996-10-25 2003-09-02 Texas Instruments Incorporated Content-based video compression
US5870579A (en) 1996-11-18 1999-02-09 Advanced Micro Devices, Inc. Reorder buffer including a circuit for selecting a designated mask corresponding to an instruction that results in an exception
US6049811A (en) * 1996-11-26 2000-04-11 Petruzzi; James D. Machine for drafting a patent application and process for doing same
US5913925A (en) * 1996-12-16 1999-06-22 International Business Machines Corporation Method and system for constructing a program including out-of-order threads and processor and method for executing threads out-of-order
US6044354A (en) * 1996-12-19 2000-03-28 Sprint Communications Company, L.P. Computer-based product planning system
US5831640A (en) 1996-12-20 1998-11-03 Cirrus Logic, Inc. Enhanced texture map data fetching circuit and method
US5991865A (en) 1996-12-31 1999-11-23 Compaq Computer Corporation MPEG motion compensation using operand routing and performing add and divide in a single instruction
US6697063B1 (en) * 1997-01-03 2004-02-24 Nvidia U.S. Investment Company Rendering pipeline
US6549209B1 (en) * 1997-05-22 2003-04-15 Kabushiki Kaisha Sega Enterprises Image processing device and image processing method
US5958041A (en) * 1997-06-26 1999-09-28 Sun Microsystems, Inc. Latency prediction in a pipelined microarchitecture
US6195734B1 (en) 1997-07-02 2001-02-27 Micron Technology, Inc. System for implementing a graphic address remapping table as a virtual register file in system memory
US6061660A (en) * 1997-10-20 2000-05-09 York Eggleston System and method for incentive programs and award fulfillment
EP0917056B1 (en) 1997-11-04 2008-01-09 Compaq Computer Corporation A multi-processor computer system and a method of operating thereof
US6654428B1 (en) 1998-01-13 2003-11-25 Massachusetts Institute Of Technology Systems and methods for wireless communications
JP3666005B2 (ja) * 1998-03-03 2005-06-29 マツダ株式会社 特許情報検索システム、特許情報検索装置、情報検索中継装置並びに特許情報検索方法
US6092175A (en) * 1998-04-02 2000-07-18 University Of Washington Shared register storage mechanisms for multithreaded computer systems with out-of-order execution
US6188411B1 (en) * 1998-07-02 2001-02-13 Neomagic Corp. Closed-loop reading of index registers using wide read and narrow write for multi-threaded system
US6067531A (en) * 1998-07-21 2000-05-23 Mci Communications Corporation Automated contract negotiator/generation system and method
US7068272B1 (en) * 2000-05-31 2006-06-27 Nvidia Corporation System, method and article of manufacture for Z-value and stencil culling prior to rendering in a computer graphics processing pipeline
JP3869947B2 (ja) * 1998-08-04 2007-01-17 株式会社日立製作所 並列処理プロセッサ、および、並列処理方法
JP3279260B2 (ja) 1998-08-07 2002-04-30 日本電気株式会社 3次元グラフィックス描画装置
US6226618B1 (en) * 1998-08-13 2001-05-01 International Business Machines Corporation Electronic content delivery system
US6771264B1 (en) 1998-08-20 2004-08-03 Apple Computer, Inc. Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor
JP2000148795A (ja) * 1998-08-31 2000-05-30 Canon Inc 画像検索装置及びその方法、コンピュ―タ可読メモリ
US6693719B1 (en) * 1998-09-16 2004-02-17 Texas Instruments Incorporated Path to trapezoid decomposition of polygons for printing files in a page description language
US6163839A (en) 1998-09-30 2000-12-19 Intel Corporation Non-stalling circular counterflow pipeline processor with reorder buffer
GB2343601B (en) 1998-11-06 2002-11-27 Videologic Ltd Shading and texturing 3-dimensional computer generated images
US7088865B2 (en) 1998-11-20 2006-08-08 Nikon Corporation Image processing apparatus having image selection function, and recording medium having image selection function program
US6219769B1 (en) 1998-12-09 2001-04-17 Advanced Micro Devices, Inc. Method and system for origin-sensitive memory control and access in data processing systems
US6236977B1 (en) * 1999-01-04 2001-05-22 Realty One, Inc. Computer implemented marketing system
US7904187B2 (en) * 1999-02-01 2011-03-08 Hoffberg Steven M Internet appliance system and method
US6480941B1 (en) 1999-02-23 2002-11-12 International Business Machines Corporation Secure partitioning of shared memory based multiprocessor system
WO2000056058A1 (en) 1999-03-18 2000-09-21 British Broadcasting Corporation Watermarking
WO2000058863A1 (en) * 1999-03-31 2000-10-05 Verizon Laboratories Inc. Techniques for performing a data query in a computer system
US6594633B1 (en) * 1999-07-07 2003-07-15 Vincent S. Broerman Real estate computer network
US6345239B1 (en) * 1999-08-31 2002-02-05 Accenture Llp Remote demonstration of business capabilities in an e-commerce environment
US6556992B1 (en) * 1999-09-14 2003-04-29 Patent Ratings, Llc Method and system for rating patents and other intangible assets
US6493741B1 (en) 1999-10-01 2002-12-10 Compaq Information Technologies Group, L.P. Method and apparatus to quiesce a portion of a simultaneous multithreaded central processing unit
US6389418B1 (en) * 1999-10-01 2002-05-14 Sandia Corporation Patent data mining method and apparatus
US6859782B2 (en) * 1999-10-06 2005-02-22 Bob F. Harshaw Method for new product development and market introduction
US6542871B1 (en) * 1999-10-06 2003-04-01 Bob F. Harshaw Method for new product development and market introduction
US6964009B2 (en) 1999-10-21 2005-11-08 Automated Media Processing Solutions, Inc. Automated media delivery system
US6792575B1 (en) 1999-10-21 2004-09-14 Equilibrium Technologies Automated processing and delivery of media to web servers
US6577762B1 (en) * 1999-10-26 2003-06-10 Xerox Corporation Background surface thresholding
US6574725B1 (en) * 1999-11-01 2003-06-03 Advanced Micro Devices, Inc. Method and mechanism for speculatively executing threads of instructions
US6417851B1 (en) * 1999-12-06 2002-07-09 Nvidia Corporation Method and apparatus for lighting module in a graphics processor
JP3485052B2 (ja) 1999-12-16 2004-01-13 日本電気株式会社 参照画像作成方法、パターン検査装置及び参照画像作成プログラムを記録した記録媒体
US7389239B1 (en) * 1999-12-30 2008-06-17 At&T Delaware Intellectual Property, Inc. System and method for managing intellectual property
US7801830B1 (en) * 1999-12-30 2010-09-21 At&T Intellectual Property I, L.P. System and method for marketing, managing, and maintaining intellectual property
US7127405B1 (en) * 1999-12-30 2006-10-24 Bellsouth Intellectual Property Corp. System and method for selecting and protecting intellectual property assets
US7346518B1 (en) * 1999-12-30 2008-03-18 At&T Bls Intellectual Property, Inc. System and method for determining the marketability of intellectual property assets
US20020032659A1 (en) * 2000-01-27 2002-03-14 Michael Waters System and method for obtaining and developing technology for market
US6516443B1 (en) * 2000-02-08 2003-02-04 Cirrus Logic, Incorporated Error detection convolution code and post processor for correcting dominant error events of a trellis sequence detector in a sampled amplitude read channel for disk storage systems
JP2001222712A (ja) 2000-02-08 2001-08-17 Sega Corp 画像処理装置、畳み込み積分回路及びその方法
US6807620B1 (en) * 2000-02-11 2004-10-19 Sony Computer Entertainment Inc. Game system with graphics processor
JP2001236221A (ja) 2000-02-21 2001-08-31 Keisuke Shindo マルチスレッドを利用するパイプライン並列プロセッサ
US6738510B2 (en) 2000-02-22 2004-05-18 Olympus Optical Co., Ltd. Image processing apparatus
US6940545B1 (en) 2000-02-28 2005-09-06 Eastman Kodak Company Face detecting camera and method
US20020095368A1 (en) * 2000-02-29 2002-07-18 Bao Tran Systems and methods for trading intellectual property
US6988008B2 (en) 2000-03-10 2006-01-17 Adept Technology, Inc. Smart camera
US6891533B1 (en) 2000-04-11 2005-05-10 Hewlett-Packard Development Company, L.P. Compositing separately-generated three-dimensional images
US6952440B1 (en) 2000-04-18 2005-10-04 Sirf Technology, Inc. Signal detector employing a Doppler phase correction system
WO2002015000A2 (en) 2000-08-16 2002-02-21 Sun Microsystems, Inc. General purpose processor with graphics/media support
US6636214B1 (en) 2000-08-23 2003-10-21 Nintendo Co., Ltd. Method and apparatus for dynamically reconfiguring the order of hidden surface processing based on rendering mode
US7034828B1 (en) * 2000-08-23 2006-04-25 Nintendo Co., Ltd. Recirculating shade tree blender for a graphics system
JP3580789B2 (ja) 2000-10-10 2004-10-27 株式会社ソニー・コンピュータエンタテインメント データ通信システム及び方法、コンピュータプログラム、記録媒体
US20020072995A1 (en) * 2000-11-02 2002-06-13 Smith Frank A. Patent licensing process
GB2369016B (en) * 2000-11-09 2004-06-09 Sony Uk Ltd Receiver
US7188069B2 (en) * 2000-11-30 2007-03-06 Syracuse University Method for valuing intellectual property
US6907520B2 (en) * 2001-01-11 2005-06-14 Sun Microsystems, Inc. Threshold-based load address prediction and new thread identification in a multithreaded microprocessor
US6662178B2 (en) * 2001-03-21 2003-12-09 Knowledge Management Objects, Llc Apparatus for and method of searching and organizing intellectual property information utilizing an IP thesaurus
US6950927B1 (en) * 2001-04-13 2005-09-27 The United States Of America As Represented By The Secretary Of The Navy System and method for instruction-level parallelism in a programmable multiple network processor environment
US6515443B2 (en) * 2001-05-21 2003-02-04 Agere Systems Inc. Programmable pulse width modulated waveform generator for a spindle motor controller
US20040172631A1 (en) 2001-06-20 2004-09-02 Howard James E Concurrent-multitasking processor
US6744433B1 (en) * 2001-08-31 2004-06-01 Nvidia Corporation System and method for using and collecting information from a plurality of depth layers
JP3564445B2 (ja) * 2001-09-20 2004-09-08 松下電器産業株式会社 プロセッサ、コンパイル装置及びコンパイル方法
US8342935B1 (en) 2001-09-28 2013-01-01 Bally Gaming, Inc. Integrated display and input system
US6999076B2 (en) * 2001-10-29 2006-02-14 Ati Technologies, Inc. System, method, and apparatus for early culling
US20030167379A1 (en) 2002-03-01 2003-09-04 Soltis Donald Charles Apparatus and methods for interfacing with cache memory
US6871264B2 (en) 2002-03-06 2005-03-22 Hewlett-Packard Development Company, L.P. System and method for dynamic processor core and cache partitioning on large-scale multithreaded, multiprocessor integrated circuits
AU2003228353A1 (en) 2002-03-22 2003-10-13 Michael F. Deering Scalable high performance 3d graphics
US6825843B2 (en) 2002-07-18 2004-11-30 Nvidia Corporation Method and apparatus for loop and branch instructions in a programmable graphics pipeline
JP3856737B2 (ja) * 2002-07-19 2006-12-13 株式会社ルネサステクノロジ データ処理装置
US6931489B2 (en) * 2002-08-12 2005-08-16 Hewlett-Packard Development Company, L.P. Apparatus and methods for sharing cache among processors
US7360220B2 (en) * 2002-10-31 2008-04-15 Intel Corporation Methods and apparatus for multi-threading using differently coded software segments to perform an algorithm
US7633506B1 (en) 2002-11-27 2009-12-15 Ati Technologies Ulc Parallel pipeline graphics system
US7268785B1 (en) 2002-12-19 2007-09-11 Nvidia Corporation System and method for interfacing graphics program modules
US7268779B2 (en) * 2002-12-24 2007-09-11 Intel Corporation Z-buffering techniques for graphics rendering
KR100510131B1 (ko) 2003-01-29 2005-08-26 삼성전자주식회사 픽셀 캐쉬 및 이를 이용한 3차원 그래픽 가속 장치 및 방법
US7146486B1 (en) * 2003-01-29 2006-12-05 S3 Graphics Co., Ltd. SIMD processor with scalar arithmetic logic units
US7145565B2 (en) 2003-02-27 2006-12-05 Nvidia Corporation Depth bounds testing
US7612803B2 (en) 2003-06-10 2009-11-03 Zoran Corporation Digital camera with reduced image buffer memory and minimal processing for recycling through a service center
US7372484B2 (en) 2003-06-26 2008-05-13 Micron Technology, Inc. Method and apparatus for reducing effects of dark current and defective pixels in an imaging device
US7015913B1 (en) 2003-06-27 2006-03-21 Nvidia Corporation Method and apparatus for multithreaded processing of data in a programmable graphics processor
US7088371B2 (en) 2003-06-27 2006-08-08 Intel Corporation Memory command handler for use in an image signal processor having a data driven architecture
US7239322B2 (en) 2003-09-29 2007-07-03 Ati Technologies Inc Multi-thread graphic processing system
US7702817B2 (en) * 2003-10-28 2010-04-20 Microsoft Corporation Wireless network access technologies for retrieving a virtual resource via a plurality of wireless network interfaces
GB2409061B (en) 2003-12-09 2006-09-13 Advanced Risc Mach Ltd Table lookup operation within a data processing system
US7015914B1 (en) * 2003-12-10 2006-03-21 Nvidia Corporation Multiple data buffers for processing graphics data
US7027062B2 (en) * 2004-02-27 2006-04-11 Nvidia Corporation Register based queuing for texture requests
US20050195198A1 (en) 2004-03-03 2005-09-08 Anderson Michael H. Graphics pipeline and method having early depth detection
US7030878B2 (en) * 2004-03-19 2006-04-18 Via Technologies, Inc. Method and apparatus for generating a shadow effect using shadow volumes
US7196708B2 (en) * 2004-03-31 2007-03-27 Sony Corporation Parallel vector processing
US7330988B2 (en) * 2004-06-30 2008-02-12 Sun Microsystems, Inc. Method and apparatus for power throttling in a multi-thread processor
US7873776B2 (en) * 2004-06-30 2011-01-18 Oracle America, Inc. Multiple-core processor with support for multiple virtual processors
US7339592B2 (en) * 2004-07-13 2008-03-04 Nvidia Corporation Simulating multiported memories using lower port count memories
US7355603B2 (en) * 2004-08-04 2008-04-08 Nvidia Corporation Filtering unit for floating-point texture data
US7538765B2 (en) * 2004-08-10 2009-05-26 Ati International Srl Method and apparatus for generating hierarchical depth culling characteristics
US6972769B1 (en) 2004-09-02 2005-12-06 Nvidia Corporation Vertex texture cache returning hits out of order
US7388588B2 (en) * 2004-09-09 2008-06-17 International Business Machines Corporation Programmable graphics processing engine
JP2006099422A (ja) 2004-09-29 2006-04-13 Konica Minolta Medical & Graphic Inc 画像処理装置、およびプログラム
US7576737B2 (en) * 2004-09-24 2009-08-18 Konica Minolta Medical & Graphic, Inc. Image processing device and program
US7684079B2 (en) * 2004-12-02 2010-03-23 Canon Kabushiki Kaisha Image forming apparatus and its control method
US20060136919A1 (en) 2004-12-17 2006-06-22 Sun Microsystems, Inc. System and method for controlling thread suspension in a multithreaded processor
US7358502B1 (en) * 2005-05-06 2008-04-15 David Appleby Devices, systems, and methods for imaging
US20070030280A1 (en) * 2005-08-08 2007-02-08 Via Technologies, Inc. Global spreader and method for a parallel graphics processor
US7557832B2 (en) 2005-08-12 2009-07-07 Volker Lindenstruth Method and apparatus for electronically stabilizing digital images
US20070073625A1 (en) * 2005-09-27 2007-03-29 Shelton Robert H System and method of licensing intellectual property assets
US7508396B2 (en) * 2005-09-28 2009-03-24 Silicon Integrated Systems Corp. Register-collecting mechanism, method for performing the same and pixel processing system employing the same
US7447873B1 (en) 2005-11-29 2008-11-04 Nvidia Corporation Multithreaded SIMD parallel processor with loading of groups of threads
JP4920966B2 (ja) 2005-12-21 2012-04-18 キヤノン株式会社 画像形成装置
US20070186082A1 (en) * 2006-02-06 2007-08-09 Boris Prokopenko Stream Processor with Variable Single Instruction Multiple Data (SIMD) Factor and Common Special Function
US8860721B2 (en) 2006-03-28 2014-10-14 Ati Technologies Ulc Method and apparatus for processing pixel depth information
US8766995B2 (en) 2006-04-26 2014-07-01 Qualcomm Incorporated Graphics system with configurable caches
US8933933B2 (en) 2006-05-08 2015-01-13 Nvidia Corporation Optimizing a graphics rendering pipeline using early Z-mode
US20070268289A1 (en) 2006-05-16 2007-11-22 Chun Yu Graphics system with dynamic reposition of depth engine
US8869147B2 (en) 2006-05-31 2014-10-21 Qualcomm Incorporated Multi-threaded processor with deferred thread output control
US8644643B2 (en) 2006-06-14 2014-02-04 Qualcomm Incorporated Convolution filtering in a graphics processor
US8766996B2 (en) 2006-06-21 2014-07-01 Qualcomm Incorporated Unified virtual addressed register file
JP4675854B2 (ja) * 2006-07-25 2011-04-27 株式会社東芝 パターン評価方法と評価装置及びパターン評価プログラム
US8345053B2 (en) * 2006-09-21 2013-01-01 Qualcomm Incorporated Graphics processors with parallel scheduling and execution of threads
JP2008219523A (ja) 2007-03-05 2008-09-18 Canon Inc 撮像装置及びその制御方法
US7683962B2 (en) * 2007-03-09 2010-03-23 Eastman Kodak Company Camera using multiple lenses and image sensors in a rangefinder configuration to provide a range map
US8054573B2 (en) 2007-12-14 2011-11-08 Lsi Corporation Systems and methods for fly-height control using servo address mark data
EP2195809A4 (en) * 2007-12-14 2010-11-24 Lsi Corp SYSTEMS AND METHODS FOR ADAPTABLE CHANNEL BIT DENSITY ESTIMATION IN A STORAGE DEVICE

Also Published As

Publication number Publication date
JP2009538486A (ja) 2009-11-05
WO2007140338A3 (en) 2008-03-06
CN101449239B (zh) 2012-07-18
KR101012625B1 (ko) 2011-02-09
CN101449239A (zh) 2009-06-03
WO2007140338A2 (en) 2007-12-06
US20070273698A1 (en) 2007-11-29
EP2024819B1 (en) 2012-06-06
EP2024819A2 (en) 2009-02-18
IN266871B (ja) 2015-06-10
CA2650539A1 (en) 2007-12-06
KR20090021286A (ko) 2009-03-02
US8884972B2 (en) 2014-11-11
US20150022534A1 (en) 2015-01-22

Similar Documents

Publication Publication Date Title
JP5006390B2 (ja) 算術および初等関数ユニットを有する図形プロセッサ
US8644643B2 (en) Convolution filtering in a graphics processor
US10719447B2 (en) Cache and compression interoperability in a graphics processor pipeline
US8345053B2 (en) Graphics processors with parallel scheduling and execution of threads
CA2676184C (en) On-demand multi-thread multimedia processor
US8633936B2 (en) Programmable streaming processor with mixed precision instruction execution
US7805589B2 (en) Relative address generation
US10565670B2 (en) Graphics processor register renaming mechanism
US20110249744A1 (en) Method and System for Video Processing Utilizing N Scalar Cores and a Single Vector Core
US20080204461A1 (en) Auto Software Configurable Register Address Space For Low Power Programmable Processor
US7199799B2 (en) Interleaving of pixels for low power programmable processor
US10387119B2 (en) Processing circuitry for encoded fields of related threads
WO2017105612A1 (en) Interpolated minimum-maximum compression/decompression for efficient processing of graphics data at computing devices
US20230195388A1 (en) Register file virtualization : applications and methods
Anido et al. Interactive ray tracing using a SIMD reconfigurable architecture
US7142214B2 (en) Data format for low power programmable processor
US20080055307A1 (en) Graphics rendering pipeline
US11656877B2 (en) Wavefront selection and execution
Wu et al. Design of a Fully Programmable 3D Graphics Processor for Mobile Applications

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110301

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110601

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110608

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110630

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110726

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111026

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20111102

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111128

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20111205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111221

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: 20120424

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: 20120524

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

Free format text: PAYMENT UNTIL: 20150601

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5006390

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