CN101449239B - 具有算术及初等函数单元的图形处理器 - Google Patents
具有算术及初等函数单元的图形处理器 Download PDFInfo
- Publication number
- CN101449239B CN101449239B CN2007800187302A CN200780018730A CN101449239B CN 101449239 B CN101449239 B CN 101449239B CN 2007800187302 A CN2007800187302 A CN 2007800187302A CN 200780018730 A CN200780018730 A CN 200780018730A CN 101449239 B CN101449239 B CN 101449239B
- Authority
- CN
- China
- Prior art keywords
- alu
- elementary function
- function units
- instruction
- elementary
- 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
Links
- 230000006870 function Effects 0.000 claims abstract description 130
- 238000000034 method Methods 0.000 claims description 28
- 230000008569 process Effects 0.000 claims description 28
- 238000003860 storage Methods 0.000 claims description 7
- 238000012545 processing Methods 0.000 description 24
- 238000004891 communication Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 238000011960 computer-aided design Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000014759 maintenance of location Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/383—Operand prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent 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)
Abstract
本发明说明一种能够有效地执行算术运算并计算初等函数的图形处理器。所述图形处理器具有可执行算术运算的至少一个算术逻辑单元(ALU)及可计算初等函数的至少一个初等函数单元。所述ALU及初等函数单元可经布置使得其可并行操作以改善吞吐量。所述图形处理器还可包括比ALU少的初等函数单元,例如,四个ALU及单个初等函数单元。所述四个ALU可对(1)一个像素的属性的四个分量或(2)四个像素的属性的一个分量执行算术运算。所述单个初等函数单元每次可对一个像素的一个分量进行操作。单个初等函数单元的使用可降低成本,同时仍提供良好的性能。
Description
技术领域
本发明大体来说涉及电路,且更具体来说涉及图形处理器。
背景技术
图形处理器广泛用于再现2维(2-D)及3维(3-D)图像以用于各种应用,例如视频游戏、制图、计算机辅助设计(CAD)、仿真及显像工具、成像等。3-D图像可建模有表面,且每一表面可用多边形(通常为三角形)近似。用于表示3-D图像的三角形的数量取决于表面的复杂性以及图像的所需分辨率且可以相当大,例如数百万个。每一三角形由三个顶点界定,且每一顶点与例如空间坐标、色彩值及纹理坐标等各种属性相关联。每一属性可具有多达四个分量。
图形处理器可执行各种图形操作以再现图像。所述图形操作可包括光栅化、模版及深度测试、纹理映射、着色等。所述图像由许多三角形组成,且每一三角形由图片元素(像素)组成。所述图形处理器通过确定每一三角形内的每一像素的分量值来再现所述三角形。
图形处理器可采用着色器核心来执行某些图形操作,例如着色。着色是高度复杂的图形操作,其涉及照明、遮蔽等。所述着色器核心可需要计算超越初等函数,例如正弦、余弦、倒数、对数、指数、平方根及倒数平方根。这些初等函数可用多项式表达式近似,可通过由算术逻辑单元(ALU)执行的相对简单的指令来评价所述多项式表达式。然而,着色器性能可因使用ALU以此方式计算初等函数而受到损失。
发明内容
本文中说明能够高效地执行算术运算并计算初等函数的图形处理器。术语“操作”与“函数”有时可互换使用。图形处理器包含着色器核心及可能的其它单元。所述着色器核心具有可执行算术运算的至少一个ALU及可计算初等函数的至少一个初等函数单元。在某些实施例中,所述ALU及初等函数单元经布置及互连使得其可并行对相同或不同线程的指令进行操作以改善吞吐量。举例来说,所述ALU可执行一个线程的一个指令,且所述初等函数单元可同时执行另一线程的另一指令。这些线程可用于相同或不同的图形应用程序。
在其它实施例中,所述着色器核心具有比ALU少的初等函数单元,例如四个ALU及单个初等函数单元。所述四个ALU可对(1)一个像素的属性的四个分量或(2)多达四个像素的属性的一个分量执行算术运算。所述单个初等函数单元每次可处理一个像素的一个分量。使用单个初等函数单元可降低成本(因为,初等函数单元比ALU复杂且成本比ALU高),同时仍提供良好的性能(因为初等函数具有比算术运算低的平均使用)。
下文进一步详细说明本发明的各个方面及实施例。
附图说明
结合图式阅读下文所述的详细说明,人们将明了本发明的特征及性质,在所有图式中相同的参考字符对应地进行标识。
图1显示支持图形应用程序的图形处理器。
图2图解说明像素的属性及分量。
图3A显示使用四个标量ALU的像素并行处理。
图3B显示使用一个四元组ALU的分量并行处理。
图4显示具有4单元ALU核心及4单元初等函数(EF)核心的着色器核心。
图5显示具有并行ALU核心及EF核心的着色器核心。
图6显示具有4单元ALU核心及1单元EF核心的着色器核心。
图7显示具有图形处理器的无线装置的框图。
具体实施方式
本文所用“实例性”一词意指“用作实例、示例或例示”。在本文中任何称为“实例性”的实施例或设计未必应视为较其它实施例或设计为优选或有利。
图1显示图形系统100的框图,图形系统100支持N个图形应用程序/程序110a到110n,其中大体来说N>1。图形系统100可以是独立的系统或较大系统(计算系统、无线通信装置等)的部分。图形应用程序110a到110n可用于视频游戏、图形等,且可同时运行。每一图形应用程序110可产生线程以实现所需的结果。线程(或执行线程)指示可通过一个或一个以上指令序列执行的具体任务。线程允许图形应用具有由不同单元同时执行的多个任务且进一步允许不同的图形应用共用资源。
图形处理器120从图形应用程序110a到110n接收线程并执行这些线程所指示的任务。在图1所示的实施例中,图形处理器120包括着色器核心/处理器130、纹理引擎140及高速缓冲存储器系统150。核心通常是指集成电路内的处理单元。术语“核心”、“引擎”、“处理器”及“处理单元”经常可互换使用。着色器核心130可执行某些图形操作(例如,着色)且可计算超越初等函数。纹理引擎140可执行其它图形操作,例如纹理映射。高速缓冲存储器系统150可包括一个或一个以上高速缓存器,其为可存储用于着色器核心130及纹理引擎140的数据及指令的高速存储器。
图形处理器120可包括其它处理及控制单元、引擎及存储器。举例来说,图形处理器120可包括执行三角形设置、光栅化、模版印刷及深度测试、属性设置、像素内插等的一个或一个以上额外引擎。本文中所说明的各种图形操作在所属技术领域中已知。所述额外引擎可耦合在图形应用程序110与着色器核心130之间或可耦合到着色器核心130。图形处理器120可实施软件接口,例如开放性图形库(OpenGL)、Direct3D等。开放性图形库说明于口期为2004年10月22日的标题为“OpenGL图形系统:说明书”的文件的2.0版本中,所述文件公开可得。
主存储器160是离图形处理器120更远定位(例如,芯片外)的大型较慢的存储器。主存储器160存储可加载到高速缓冲存储器系统150内的高速缓存器中的数据及指令。
图2图解说明像素的属性及分量。如上所述,2-D或3-D图像可由许多三角形组成,且每一三角形可由像素组成。每一像素可具有各种属性,例如空间坐标、色彩值、纹理坐标等。每一属性可具有多达四个分量。举例来说,可通过针对水平及垂直坐标(x及y)及深度(z)的三个分量或通过四个分量x、y、z及w给出空间坐标,其中w是齐次坐标的第四项。齐次坐标用于某些图形操作,例如转换、缩放、旋转等。色彩值通常由红色(r)、绿色(g)及蓝色(b)给出。纹理坐标通常由水平及垂直坐标(u及v)给出。像素也可与其它属性相关联。
在许多情况下,需要处理将要再现的图像中的像素群组。可基于各种因素(例如,硬件需要、性能等)来选择群组大小。2x2的群组大小可提供各种因素之间的良好折衷。可以若干种方式执行对2x2格中的四个像素的处理。
图3A显示分别使用四个相同的标量ALU(ALU1到ALU4)对四个像素1到4的像素并行处理。在此实例中,正被处理的属性的四个分量标示为Ap,1、AP,2、AP,3及Ap,4,其中p为像素索引且对于像素1到4来说p∈{1,2,3,4}。这些分量可用于空间坐标、色彩值、纹理坐标等。将要应用到所述四个分量的四个操作数标示为Bp.1、BP,2、BP,3及Bp,4(其中p∈{1,2,3,4})且可以是常数。在此实例中,所述ALU执行相乘与累加(MAC)操作。因此,每一像素的四个分量与所述四个操作数相乘,且累加所述四个中间结果以产生所述像素的最终结果。
对于图3A中的像素并行处理,每一标量ALU处理一个像素的四个分量,且所述四个ALU同时处理所述四个像素。ALU1在第一时钟周期T1中将分量A1,1与B1,1相乘,然后在第二时钟周期T2中将分量A1,2与B1,2相乘且将此结果与现有结果累加,然后在第三时钟周期T3中将分量A1,3与B1,3相乘且将此结果与现有结果累加,然后在第四时钟周期T4中将分量A1,4与B1,4相乘且将此结果与现有结果累加。ALU2到ALU4以类似方式分别对像素2到4的分量进行处理。
图3B显示使用一个四元组ALU对四个像素的分量并行处理,所述ALU还可称为基于向量的ALU。对于分量并行处理,所述四元组ALU每次处理一个像素的所有四个分量。因此,所述四元组ALU将分量A1,1、A1,2、A1,3及A1,4分别与操作数B1,1、B1,2、B1,3及B1,4相乘,且在第一时钟周期T1中将所述四个中间结果累加以获得所述第一像素的最终结果。所述四元组ALU分别在时钟周期T2、T3及T4中以类似方式处理第二、第三及第四像素的分量。
图3A及3B显示用于对多达四个像素的属性的多达四个分量执行四元组处理的两个方案。可通过单个四元组ALU或四个标量ALU执行算术运算的四元组处理。在以下说明中,假设ALU为标量ALU,除非另外陈述。四元组处理可显著改善性能。因此,着色器核心130可设计有用以执行四元组处理的功能。
图4显示具有4单元ALU核心440及4单元初等函数核心450的着色器核心/处理器130a的实施例的框图。着色器核心130a可用于图1中的着色器核心130。
在着色器核心130a内,多路复用器(Mux)410从图形应用程序110a到110n接收线程并将这些线程提供到线程调度器及现场寄存器420。线程调度器420执行各种功能以调度并管理线程的执行。线程调度器420确定是否接受新的线程、是否针对每一接受的线程创建寄存器映射表及是否向所述线程分配资源。所述寄存器映射表指示逻辑寄存器地址到物理寄存器堆地址之间的映射。对于每一线程,线程调度器420确定所述线程所需要的资源是否就绪,如果所述线程的任何资源(例如,指令、寄存器堆或纹理读取)未就绪那么将所述线程推入睡眠队列中,且当所有所述资源就绪时将所述线程从所述睡眠队列移动到活跃队列。线程调度器420与加载控制单元460面接,以使所述线程的资源同步。
线程调度器420还管理线程的执行。线程调度器420从指令高速缓存器422提取每一线程的指令,如果需要将每一指令解码,且执行所述线程的流控制。线程调度器420选择要执行的活跃线程,检查所述所选择线程之间是否存在读取/写入端口冲突,如果不存在冲突,那么将一个线程的指令发送到处理核心430中且将另一线程的指令发送到加载控制单元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或四个标量ALU。ALU核心440可对多达四个像素的属性的一个分量执行像素并行处理,如图3A中所示。另一选择为,ALU核心440可对单个像素的属性的多达四个分量执行分量并行处理,如图3B中所示。
在图4所示的实施例中,初等函数核心450由四个初等函数单元组成,所述初等函数单元可计算多达四个像素的属性的一个分量的初等函数(像素并行)或一个像素的属性的多达四个分量的初等函数(分量并行)。初等函数核心450可计算超越初等函数,例如正弦、余弦、倒数、对数、指数、平方根、倒数平方根等,其广泛用于着色器指令中。初等函数核心450可通过在比使用简单的指令执行初等函数的多项式近似所需要的时间短得多的时间内计算所述初等函数来改善着色器性能。
加载控制单元460控制着色器核心130a内各种单元的数据及指令流。加载控制单元460与高速缓冲存储器系统150面接且用来自高速缓冲存储器系统150的数据及指令加载指令高速缓存器422、常量缓冲器432及寄存器堆组/输出缓冲器470。加载控制单元460还将输出缓冲器470中的数据保存到高速缓冲存储器系统150。加载控制单元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的数量匹配,ALU的数量在图4所示的实施例中为四个。然而,研究已表明即使广泛使用初等函数,初等函数的平均使用也大大低于ALU操作的平均使用。所述较低的平均使用是因为初等函数比算术运算更少地被调用以及由初等函数处理的分量比算术运算少。举例来说,初等函数通常比算术运算更少地被调用且因此可由较少的初等函数单元充分支持。此外,虽然可能常见对属性的所有四个分量执行加法或乘法(那么此将受益于具有四个ALU),但较不常见对所有四个分量执行初等函数。因此,较少的初等函数单元便可能够在许多情况(其中仅对一子组分量(例如,一个或两个分量)执行初等函数)下提供良好的性能。实施较少的初等函数单元可降低成本,同时仍提供良好的性能。
图5显示具有4单元ALU核心540及L单元初等函数核心550的着色器核心130b的实施例的框图,其中1≤L<4。着色器核心130b也可用于图1中的着色器核心130。着色器核心130b包括多路复用器510、线程调度器及现场寄存器520、指令高速缓存器522、常量缓冲器532、ALU核心540、初等函数核心550、加载控制单元560、寄存器堆组/输出缓冲器570及多路分用器580,其分别以类似于图4中的单元410、420、422、432、440、450、460、470及480的方式操作。
ALU核心540可以是单个四元组ALU或四个标量ALU。ALU核心540经由一组总线耦合到线程调度器520、常量缓冲器532及输出缓冲器570。初等函数核心550可由一个、两个或三个(L)初等函数单元组成,所述初等函数单元可计算一个像素的L个分量或L个像素的一个分量的初等函数。初等函数核心550经由另一组总线耦合到线程调度器520、常量缓冲器532及输出缓冲器570。在图5所示的实施例中,ALU核心540及初等函数核心550彼此单独实施且经由单独总线耦合到着色器核心130b内的其它单元。那么,ALU核心540与初等函数核心550可并行对不同的指令进行操作。这些指令可用于相同或不同的图形应用程序。
在图5所示的实施例中,初等函数单元的数量比ALU的数量少且可基于成本与性能之间的折衷选择。在许多情况下,由于初等函数的较低平均使用,初等函数核心550将能够跟上ALU核心540。线程调度器520在知道L个(而不是四个)初等函数单元可供使用的情况下适当调度初等函数操作。
图6显示具有4单元ALU核心640及1单元初等函数核心650的着色器核心/处理器130c的实施例的框图。着色器核心130c也可用于图1中的着色器核心130。着色器核心130c包括多路复用器、线程调度器及现场寄存器620、指令高速缓存器622、常量缓冲器632、ALU核心640、初等函数核心650、加载控制单元660、寄存器堆组/输出缓冲器670及多路分用器680,其以类似于图4中的单元410、420、422、432、440、450、460、470及480的方式操作。
ALU核心640可以是单个四元组ALU或四个标量ALU。ALU核心640经由一组总线耦合到线程调度器620、常量缓冲器632及输出缓冲器670。初等函数核心650可由单个初等函数单元组成,所述初等函数单元每次可计算一个像素的一个分量的初等函数。在图6所示的实施例中,初等函数核心650耦合到加载控制单元660及输出缓冲器670。此实施例减少支持单独的ALU核心640及初等函数核心650的总线数量。此实施例还可提供其它益处,例如更高效的资源(例如,寄存器堆读取/写入端口、指令解码等)共享。
在所述设计以及初等函数核心650置于着色器核心130c内的情况下,可以适当方式产生初等函数的指令(或EF指令)。如果EF单元的数量等于ALU单元的数量(例如,如图4中所示)且如果所述EF单元具有与所述ALU单元相同的管线等待时间,那么可将所述EF指令作为具有可预测管线延迟的ALU指令来对待。然而,ALU核心640与初等函数核心650的不均匀实施可导致不均匀的吞吐量。因此,在一个实施例中,着色器核心130c将初等函数核心650作为加载资源来对待且以与(例如)纹理加载或存储器加载类似的方式及相同的同步来处理EF指令。举例来说,着色器编译器可将EF指令作为与纹理加载相关的指令而不是作为ALU指令编译,此可能是图4及5中所示实施例中的情况。
所述着色器编译器可在指令中适当包括同步(sync)位。同步位可指示包含所述同步位的当前指令具有与一个或一个以上先前指令的数据相依性,其可具有不可预测的延迟或等待时间。所述不可预测的等待时间可因若干原因而产生。首先,纹理加载或存储器加载的不可预测等待时间可因不可预测的执行状况而产生,例如高速缓存器命中/未命中、存储器存取能力。存储器存取序列等。第二,不可预测的等待时间可由ALU核心与初等函数核心的不均匀实施导致。所述着色器编译器可将同步位插入到与先前EF指令具有数据相依性的指令中,其可具有不可预测的延迟。这些同步位确保所述指令跟随其相依的EF指令且因此处理适当的数据。
在图6所示的实施例中,线程调度器620可产生可与数据加载请求共享总线的初等函数请求。此共享的总线可包含从线程调度器620到加载控制单元660的总线。然而,初等函数核心650可与加载控制单元660中的加载指令并行执行。在另一实施例中,初等函数核心650经由专用总线直接耦合到线程调度器620,例如,如图5中所示。在此实施例中,初等函数请求与数据加载请求可使用单独的总线。在两个实施例中,线程调度器620、ALU核心640、初等函数核心650及加载控制单元660可并行对不同的线程进行操作以改善性能。
图4到6显示着色器核心130a、130b及130c的具体实施例。着色器核心130a、130b及130c也可具有其它变化形式。举例来说,图4中的初等函数核心450可包括少于四个初等函数单元。作为另一实例,图6中的初等函数核心650可包括一个以上初等函数单元,例如两个初等函数单元。
一般来说,着色器核心可包括任何数量的处理、控制及存储器单元,且可以任何方式布置所述处理、控制及存储器单元。还可将这些单元称作其它名称。举例来说,加载控制单元还可称为输入/输出(I/O)接口单元。在某些实施例中,着色器核心可包括比ALU少的初等函数单元以在性能很少降级的情况下降低成本。在其它实施例中,着色器核心可包括单独的ALU核心与初等函数核心,所述ALU核心与初等函数核心可并行对相同或不同图形应用程序的不同指令进行操作。可用所属技术领域中已知的各种设计来实施所述ALU及初等函数单元。着色器核心还可经由同步及/或异步接口与外部单元面接。
本文中所说明的图形处理器及着色器核心可用于无线通信、计算、联网、个人电子装置等。下文说明用于无线通信的图形处理器的实例性使用。
图7显示无线通信系统中无线装置700的实施例的框图。无线装置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可用一个或一个以上数字信号处理器(DSP)、微处理器、精简指令集计算机(RISC)等来实施。数字区段720还可制作在一个或一个以上专用集成电路(ASIC)或某种其它类型的集成电路(IC)上。
本文中所说明的图形处理器及着色器核心/处理器可实施于各种硬件单元中。举例来说,所述图形系统及着色器核心/处理器可实施于ASIC、数字信号处理器(DSP)、数字信号处理装置(DSPD)、可编程逻辑装置(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器及其它电子单元中。
图形处理器的某些部分可实施于固件及/或软件中。举例来说,线程调度器及/或加载控制单元可用执行本文中所说明的功能的固件及/或软件模块(例如,程序、功能等)来实施。固件及/或软件代码可存储在存储器(例如,图7中的存储器750或770)中并由处理器(例如,处理器730)执行。所述存储器既可实施于处理器内部也可实施于处理器外部。
提供前文对所揭示实施例的说明旨在使所属技术领域中的技术人员能够制作或使用本发明。所属技术领域中的技术人员将容易地明了这些实施例的各种修改,且本文所定义的一般原理也可在不背离本发明的精神或范围的情况下应用于其它实施例。因此,并非打算将本发明限定为本文所示实施例,而是要赋予其与本文所揭示原理及新颖特征相一致的最宽广范围。
Claims (17)
1.一种用于图像处理器的设备,其包含:
输出缓冲器;
至少一个算术逻辑单元(ALU),其操作以基于ALU指令来执行算术运算;及
至少一个初等函数单元,其操作以基于初等函数单元指令来计算初等函数,其中所述至少一个初等函数单元与所述至少一个ALU独立地耦合至所述输出缓冲器且经配置以并行对不同的指令进行操作,且其中指令包括同步位,所述同步位作为所述ALU指令的一部分,所述同步位确保相依于先前初等函数单元指令的指令跟随所述指令相依的所述先前初等函数单元指令。
2.如权利要求1所述的设备,其包含四个ALU。
3.如权利要求2所述的设备,其中所述四个ALU可操作以对像素的属性的多达四个分量执行算术运算。
4.如权利要求2所述的设备,其中所述四个ALU可操作以对多达四个像素的属性的分量执行算术运算。
5.如权利要求1所述的设备,其包含比ALU少的初等函数单元。
6.如权利要求1所述的设备,其包含单个初等函数单元。
7.如权利要求1所述的设备,其中所述至少一个ALU与所述至少一个初等函数单元具有不同的等待时间。
8.如权利要求1所述的设备,其进一步包含:
加载控制单元,其操作以促进所述至少一个ALU与存储器系统之间及所述至少一个初等函数单元与所述存储器系统之间的数据交换。
9.如权利要求8所述的设备,其中所述至少一个初等函数单元耦合到所述加载控制单元。
10.如权利要求9所述的设备,其中所述至少一个初等函数单元可与所述加载控制单元并行操作。
11.如权利要求9所述的设备,其中对所述至少一个初等函数单元的请求及对所述加载控制单元的加载请求共享总线,且其中所述至少一个初等函数单元及所述加载控制单元可操作以并行执行不同的线程。
12.如权利要求1所述的设备,其进一步包含:
调度器,其操作以从至少一个图形应用程序接收线程并调度所述至少一个ALU及所述至少一个初等函数单元对所述线程的执行。
13.如权利要求12所述的设备,其中所述至少一个初等函数单元耦合到所述调度器。
14.一种集成电路,其包含:
输出缓冲器;
至少一个算术逻辑单元(ALU),其操作以基于ALU指令来执行算术运算;及
至少一个初等函数单元,其操作以给予初等函数单元指令来计算初等函数,其中所述至少一个初等函数单元与所述至少一个ALU独立地耦合至所述输出缓冲器且经配置以并行对不同的指令进行操作,且其中所述指令包括同步位,所述同步位作为所述ALU指令的一部分,所述同步位确保相依于先前初等函数单元指令的指令跟随所述指令相依的所述先前初等函数单元指令。
15.如权利要求14所述的集成电路,其包含四个ALU及少于四个的初等函数单元。
16.一种无线装置,其包含:
图形处理器,其包含输出缓冲器、操作以基于ALU指令来执行算术运算的至少一个算术逻辑单元(ALU)、及操作以基于所述初等函数单元指令来计算初等函数的至少一个初等函数单元,其中所述至少一个初等函数单元与所述至少一个ALU独立地耦合至所述输出缓冲器且经配置以并行对不同的指令进行操作,且其中所述指令包括同步位,所述同步位作为所述ALU指令的一部分,所述同步位确保相依于先前初等函数单元指令的指令跟随所述指令相依的所述先前初等函数单元指令;及
存储器系统,其操作以存储用于所述图形处理器的数据。
17.如权利要求16所述的无线装置,其中所述图形处理器包含四个ALU及少于四个的初等函数单元。
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 |
---|---|
CN101449239A CN101449239A (zh) | 2009-06-03 |
CN101449239B true CN101449239B (zh) | 2012-07-18 |
Family
ID=38683594
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007800187302A Active CN101449239B (zh) | 2006-05-25 | 2007-05-25 | 具有算术及初等函数单元的图形处理器 |
Country Status (8)
Country | Link |
---|---|
US (2) | US8884972B2 (zh) |
EP (1) | EP2024819B1 (zh) |
JP (1) | JP5006390B2 (zh) |
KR (1) | KR101012625B1 (zh) |
CN (1) | CN101449239B (zh) |
CA (1) | CA2650539A1 (zh) |
IN (1) | IN266871B (zh) |
WO (1) | WO2007140338A2 (zh) |
Families Citing this family (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9071344B2 (en) | 2005-08-22 | 2015-06-30 | Qualcomm Incorporated | Reverse link interference cancellation |
US8611305B2 (en) | 2005-08-22 | 2013-12-17 | Qualcomm Incorporated | Interference cancellation for wireless communications |
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 |
US8995417B2 (en) | 2008-06-09 | 2015-03-31 | Qualcomm Incorporated | Increasing capacity in wireless communication |
US9237515B2 (en) | 2008-08-01 | 2016-01-12 | Qualcomm Incorporated | Successive detection and cancellation for cell pilot detection |
US9277487B2 (en) * | 2008-08-01 | 2016-03-01 | Qualcomm Incorporated | Cell detection with interference cancellation |
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 |
US8854381B2 (en) * | 2009-09-03 | 2014-10-07 | Advanced Micro Devices, Inc. | Processing unit that enables asynchronous task dispatch |
US8619928B2 (en) * | 2009-09-03 | 2013-12-31 | Qualcomm Incorporated | Multi-stage interference suppression |
WO2011063568A1 (en) | 2009-11-27 | 2011-06-03 | Qualcomm Incorporated | Increasing capacity in wireless communications |
EP2505017B1 (en) | 2009-11-27 | 2018-10-31 | Qualcomm Incorporated | Increasing capacity in wireless communications |
GB2529075A (en) * | 2011-06-16 | 2016-02-10 | Imagination Tech Ltd | Graphics processor with non-blocking concurrent architecture |
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 | 浙江大学 | 一种低成本的单精度初等函数运算加速器 |
CN106164850B (zh) * | 2014-03-07 | 2018-11-27 | 索尼公司 | 用于阵列处理器的数据推测 |
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 |
CN113396400A (zh) | 2019-03-15 | 2021-09-14 | 英特尔公司 | 用于针对高速缓存操作提供层级开放划分扇区和可变扇区大小的系统和方法 |
CN117132450B (zh) * | 2023-10-24 | 2024-02-20 | 芯动微电子科技(武汉)有限公司 | 一种可实现数据共享的计算装置和图形处理器 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0627682A1 (en) * | 1993-06-04 | 1994-12-07 | Sun Microsystems, Inc. | Floating-point processor for a high performance three dimensional graphics accelerator |
US6279099B1 (en) * | 1994-04-29 | 2001-08-21 | Sun Microsystems, Inc. | Central processing unit with integrated graphics functions |
Family Cites Families (166)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1103383A (en) * | 1964-03-02 | 1968-02-14 | Olivetti & Co Spa | Improvements in or relating to apparatus for performing arithmetic operations in digital computers |
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 |
US7006881B1 (en) | 1991-12-23 | 2006-02-28 | Steven Hoffberg | Media recording device with remote graphic user interface |
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 |
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. |
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 |
EP1526472A3 (en) * | 1995-02-13 | 2006-07-26 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
US5798770A (en) | 1995-03-24 | 1998-08-25 | 3Dlabs Inc. Ltd. | Graphics rendering system with reconfigurable pipeline sequence |
US5777629A (en) | 1995-03-24 | 1998-07-07 | 3Dlabs Inc. Ltd. | Graphics subsystem with smart direct-memory-access operation |
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 |
WO1998006091A1 (fr) | 1996-08-02 | 1998-02-12 | Matsushita Electric Industrial Co., Ltd. | Codec vocal, support sur lequel est enregistre un programme codec vocal, et appareil mobile de telecommunications |
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 |
JP4634548B2 (ja) | 1997-11-04 | 2011-02-16 | ヒューレット・パッカード・カンパニー | マルチプロセッサコンピュータシステム及びその動作方法 |
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 |
AU4328000A (en) * | 1999-03-31 | 2000-10-16 | 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 |
US6389418B1 (en) * | 1999-10-01 | 2002-05-14 | Sandia Corporation | Patent data mining method and apparatus |
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 |
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 |
US6792575B1 (en) | 1999-10-21 | 2004-09-14 | Equilibrium Technologies | Automated processing and delivery of media to web servers |
US6964009B2 (en) | 1999-10-21 | 2005-11-08 | Automated Media Processing Solutions, Inc. | Automated media delivery system |
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 | 日本電気株式会社 | 参照画像作成方法、パターン検査装置及び参照画像作成プログラムを記録した記録媒体 |
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 |
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 |
US7389239B1 (en) * | 1999-12-30 | 2008-06-17 | At&T Delaware Intellectual Property, Inc. | System and method for managing intellectual property |
US7127405B1 (en) * | 1999-12-30 | 2006-10-24 | Bellsouth Intellectual Property Corp. | System and method for selecting and protecting 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 |
AU2001281162A1 (en) | 2000-08-16 | 2002-02-25 | 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 |
CA2480081C (en) | 2002-03-22 | 2007-06-19 | 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 |
US7146486B1 (en) * | 2003-01-29 | 2006-12-05 | S3 Graphics Co., Ltd. | SIMD processor with scalar arithmetic logic units |
KR100510131B1 (ko) | 2003-01-29 | 2005-08-26 | 삼성전자주식회사 | 픽셀 캐쉬 및 이를 이용한 3차원 그래픽 가속 장치 및 방법 |
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 |
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 |
US7015913B1 (en) | 2003-06-27 | 2006-03-21 | Nvidia Corporation | Method and apparatus for multithreaded processing of data in a programmable graphics processor |
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 |
US7873776B2 (en) | 2004-06-30 | 2011-01-18 | Oracle America, Inc. | Multiple-core processor with support for multiple virtual processors |
US7330988B2 (en) | 2004-06-30 | 2008-02-12 | Sun Microsystems, Inc. | Method and apparatus for power throttling in a multi-thread processor |
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 |
US7576737B2 (en) | 2004-09-24 | 2009-08-18 | Konica Minolta Medical & Graphic, Inc. | Image processing device and program |
JP2006099422A (ja) | 2004-09-29 | 2006-04-13 | Konica Minolta Medical & Graphic Inc | 画像処理装置、およびプログラム |
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 | キヤノン株式会社 | 画像形成装置 |
CN101359284B (zh) * | 2006-02-06 | 2011-05-11 | 威盛电子股份有限公司 | 处理数个不同数据格式的乘法累加单元及其方法 |
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 |
CN101743593B (zh) | 2007-12-14 | 2013-07-17 | Lsi公司 | 使用伺服地址标记数据来控制飞行高度的系统和方法 |
CN101743590B (zh) | 2007-12-14 | 2013-05-29 | Lsi公司 | 用于存储装置中自适应cbd估计的系统和方法 |
-
2006
- 2006-05-25 US US11/441,696 patent/US8884972B2/en active Active
-
2007
- 2007-05-25 IN IN2482MUN2008 patent/IN266871B/en unknown
- 2007-05-25 EP EP07797797A patent/EP2024819B1/en active Active
- 2007-05-25 KR KR1020087031222A patent/KR101012625B1/ko active IP Right Grant
- 2007-05-25 WO PCT/US2007/069803 patent/WO2007140338A2/en active Application Filing
- 2007-05-25 CN CN2007800187302A patent/CN101449239B/zh active Active
- 2007-05-25 CA CA002650539A patent/CA2650539A1/en not_active Abandoned
- 2007-05-25 JP JP2009512327A patent/JP5006390B2/ja active Active
-
2014
- 2014-10-06 US US14/506,959 patent/US20150022534A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0627682A1 (en) * | 1993-06-04 | 1994-12-07 | Sun Microsystems, Inc. | Floating-point processor for a high performance three dimensional graphics accelerator |
US6279099B1 (en) * | 1994-04-29 | 2001-08-21 | Sun Microsystems, Inc. | Central processing unit with integrated graphics functions |
Also Published As
Publication number | Publication date |
---|---|
WO2007140338A2 (en) | 2007-12-06 |
IN266871B (zh) | 2015-06-10 |
KR101012625B1 (ko) | 2011-02-09 |
JP2009538486A (ja) | 2009-11-05 |
EP2024819B1 (en) | 2012-06-06 |
CA2650539A1 (en) | 2007-12-06 |
JP5006390B2 (ja) | 2012-08-22 |
WO2007140338A3 (en) | 2008-03-06 |
KR20090021286A (ko) | 2009-03-02 |
US20150022534A1 (en) | 2015-01-22 |
EP2024819A2 (en) | 2009-02-18 |
US8884972B2 (en) | 2014-11-11 |
US20070273698A1 (en) | 2007-11-29 |
CN101449239A (zh) | 2009-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101449239B (zh) | 具有算术及初等函数单元的图形处理器 | |
US8345053B2 (en) | Graphics processors with parallel scheduling and execution of threads | |
KR101076245B1 (ko) | 상대 주소 발생 | |
KR101118486B1 (ko) | 온-디맨드 멀티 스레드 멀티미디어 프로세서 | |
US8049760B2 (en) | System and method for vector computations in arithmetic logic units (ALUs) | |
US8644643B2 (en) | Convolution filtering in a graphics processor | |
US20060152519A1 (en) | Method for operating low power programmable processor | |
CA2721396A1 (en) | Programmable streaming processor with mixed precision instruction execution | |
US20080204461A1 (en) | Auto Software Configurable Register Address Space For Low Power Programmable Processor | |
WO2017155610A1 (en) | Method and apparatus for efficient submission of workload to a high performance graphics sub-system | |
US7693929B2 (en) | Hardware extension for accelerating fractional integer division within 3D graphics and MP3 applications | |
KR102000894B1 (ko) | 이미지 프로세서용 다기능 실행 레인 | |
Anido et al. | Interactive ray tracing using a SIMD reconfigurable architecture | |
US12026801B2 (en) | Filter independent L1 mapping of convolution data into general purpose register | |
CN114489802A (zh) | 数据处理装置、数据处理方法及相关产品 | |
Notarangelo et al. | A Low Power, Scalable and Runtime Customizable Microprocessor Architecture for Image Processing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |