CN1952979A - 多重图形处理器***及方法 - Google Patents
多重图形处理器***及方法 Download PDFInfo
- Publication number
- CN1952979A CN1952979A CNA2006101361731A CN200610136173A CN1952979A CN 1952979 A CN1952979 A CN 1952979A CN A2006101361731 A CNA2006101361731 A CN A2006101361731A CN 200610136173 A CN200610136173 A CN 200610136173A CN 1952979 A CN1952979 A CN 1952979A
- Authority
- CN
- China
- Prior art keywords
- processing unit
- graphics processing
- status information
- status message
- status
- 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.)
- Granted
Links
Images
Classifications
-
- 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
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
Abstract
本发明揭示多重图形处理器***及方法实施例,一种多重图形处理器***包含具有第一状态信息的第一图形处理单元以及具有第二状态信息的第二图形处理单元;以及对应于该第一图形处理单元的第一状态消息逻辑电路,该第一状态消息逻辑电路用以比较该第一与该第二状态信息,以及将对应于其中具有最低完成度的处理阶段的状态消息传递至该第一图形处理单元。
Description
技术领域
本发明是有关于数据处理***,尤指关于计算机绘图***及方法。
背景技术
计算机绘图乃以计算机产生图像、影像或其它图形或图像信息的一门艺术和科学,图像、影像的产生常被称为「描绘成像(rendering)」,一般而言,于三维(3D)计算机绘图中,构成场景中的对象表面(或物体)的几何形状经转变为像素(图形单元)后,储存于画面缓冲区(frame buffer)中,接着显示于显示装置上。
描绘成像机制涉及到多个图形处理器(例如图形处理单元(graphicsprocessing unit,GPU))及相关的画面缓冲区等绘图***的使用,每一个图形处理单元及相关的画面缓冲区负责于显示器的指定区域上描绘指定时序或部分的图像/影像,举例来说,四个画面缓冲区可以描绘天空场景,其中最终显示成像通常是由单一图形处理器(亦称为显示控制器)所控制。
许多技术可用来集成多个图形处理单元的描绘成像,如分割画面描绘(split frame rendering)技术,将描绘分为偶数和奇数画面。举例来说,一图形处理单元负责描绘偶数画面,另一图形处理单元则负责描绘奇数画面;于另一种分割画面描绘技术中,一图形处理单元可负责描绘显示器的底部画面,另一图形处理单元则负责描绘显示器的上部画面;另一种习用的技术则是以时域区分多个图形处理单元的工作,通常称为交替画面描绘(alternateframe rendering)。
应用此种用于描绘图像或影像的架构不是毫无困难的,其一便是同步化问题,举例来说,就分割画面描绘而言,最终画面包含来自多个画面框缓冲区的描绘影像,因此,要等到每一个画面缓冲区都完成其处理工作,才能着手进行描绘最终画面。
另一问题则为决定如何分享存储器,举例来说,特殊的纹理(texture)处理可属应用层级而由位于图形处理器(例如产生贴图数据的顶点着色器(vertex shader)程序)前端的主处理器(例如中央处理单元(centralprocessing unit,CPU))决定,或可依照后处理方式(例如经由像素着色器(pixel shader)描绘产生后处理影像)进行。于后者中,描绘成像发生于区域图形处理单元(画面)缓冲区,而此已描绘的纹理面可由多个图形处理单元分享,故应可从若干图形处理单元取得及过滤分割部分的取样,从个别的缓冲区撷取所需的纹理数据必须等到各纹理描绘完成,否则,当一图形处理单元开始读取仍被另一图形处理单元描绘的表面时,可能出现写后读(read afterwrite,RAW)问题。
发明内容
本发明的实施例提供多重图形处理单元的同步***及方法,俾进行待描绘影像的不同部分的处理程序,此种处理程序可包含对于后描绘影像的处理,例如纹理处理。若干实施例揭示使用对应于状态信息的状态消息或状态指针,其是通过一个或多个总线接口单元而于一个或多个图形处理单元之间传递,使不同图形处理单元之间的处理程序同步化,此等状态消息显示对应的图形处理单元所处理程序(例如显示描绘、纹理面处理等)的处理状态的指示,每一个总线接口单元中的状态消息逻辑电路会比较对应于不同图形处理单元的处理状态的各状态消息值,接着状态消息逻辑电路回传状态消息给对应的图形处理单元,并且于此处进行另一比较以决定是否可让显示控制器(即负责最终显示或描绘纹理面的图形处理单元)存取。一旦特定图形处理单元或相关画面缓冲区是可供存取的,特定的图形处理单元即可提供数据给用于显示或纹理面处理的显示控制器或相关缓冲区(例如通过推式或拉式机制)。
简单地说,于此架构中,一种多重图形处理器***包含具有第一状态信息的第一图形处理单元以及具有第二状态信息的第二图形处理单元;以及对应于该第一图形处理单元的第一状态消息逻辑电路,该第一状态消息逻辑电路是用以比较该第一状态信息与该第二状态信息,将对应其中具有最低完成度的处理阶段的状态消息传递至该第一图形处理单元。
本发明亦包含许多方法实施例,就总线接口单元的状态消息逻辑电路观之,可大致归结出以下步骤:接收对应于第一图形处理单元处理完成度的第一状态信息;接收对应于第二图形处理单元处理完成度的第二状态信息;比较该第一及第二状态信息;以及将对应于该第一图形处理单元和该第二图形处理单元中具有最低处理完成度阶段的状态消息传递至该第一图形处理单元。
另一方法实施例是基于图形处理单元的观点,其可大致归结出以下步骤:图形处理单元接收状态消息,该状态消息具有状态消息值,对应于多个图形处理单元中具有最低完成度的处理阶段;比较该状态消息与对应该图形处理单元处理完程度的状态信息;以及倘若该状态消息值大于或等于对应于该状态信息的数值,则允许存取相关的显示描绘数据或纹理面数据。
本领域技术人员于检视以下图式及详细说明之后,当可推演出其它***、方法、特征及优点,所有此等推演的***、方法、特征及优点均属本发明的范围,受到如附申请专利范围的保护。
附图说明
图1为多重图形处理器***的实施例的方块图。
图2为图1中多重图形处理器***的图形处理单元的实施例的功能方块图。
图3为图1中多重图形处理器***的部分方块图,说明于总线接口与图形处理单元之间传递状态消息的方式。
图4为一方法实施例流程图,说明图3中总线接口单元内的状态消息逻辑电路的执行步骤。
图5为一方法实施例流程图,说明图2中图形处理单元的执行步骤。
[主要元件标号说明]
本发明图式中所包含的各元件列式如下:
多重图形处理器***10 10a多重图形处理器***部分
多重图形处理器的运作方法10b、10c
显示装置102 显示接口单元104
区域存储器106、108 存储器接口单元110、112
图形处理单元114、116 总线接口单元118、120
芯片组122 ***存储器124
中央处理单元126 状态消息逻辑电路200a、200b
缓冲控制初始化单元220 顶点着色器222
三角形设置单元224 间距和图块产生单元226
ZL1单元228 ZL1高速缓存230
ZL2单元232 Z高速缓存234
像素着色器单元240 纹理高速缓存242
ZL3单元244 目标单元246
D高速缓存248 寄存器302、304、314
连线310、312
具体实施方式
本发明揭示多种多重图形处理器***及方法,此多重图形处理器***包含多个图形处理单元(graphics processing unit,GPU)及总线接口单元(businterface unit,BIU),每一个图形处理单元具有对应于其内部处理完成度的状态信息,该状态信息是以状态消息(key)或其它状态指针的形式传递至***中的总线接口单元,多重图形处理器***里的总线接口单元均设有状态消息逻辑电路,此状态消息逻辑电路是用以比较及决定哪一个图形处理单元于特定画面的处理尚未进展至可对给定表面进行最终显示成像或描绘目标-纹理(render target-to-texture)处理,因应此比较结果,状态消息逻辑电路产生状态消息,对应于其中具有最低完成度的处理阶段的图形处理单元,并且将该状态消息传递至其相关的图形处理单元,俾与相关图形处理单元的状态信息相比较,根据图形处理单元的比较结果,图形处理单元可决定是否允许存取其相关的描绘或表面数据,此等数据可通过推式或拉式机制传递至显示控制器及/或其画面缓冲区,以进行最终显示成像,或从不同图形处理单元结合最终纹理面以准备进行最终显示成像。通过多重图形处理器***的此等状态消息传递机构,使多个图形处理单元得以同步进行最终显示成像或描绘目标-纹理处理。
于最终显示成像实施例中,每一个图形处理单元负责描绘一部分显示控制器(即负责最终显示成像或描绘纹理面的图形处理单元)欲显示的影像,利用将状态消息值(或仅是状态消息)形式的状态信息写入每一个内嵌总线接口单元中的寄存器,特定图形处理单元的处理状态(例如对应绘图命令顺序的某个特定处理阶段的完成度)则可传递至***中的其它图形处理单元(反之亦然)。总线接口单元比较对应于每一个图形处理单元的状态消息值,于一实施例中,选择具有最小值的状态消息值,将其回传至各图形处理单元,每一个图形处理单元接着比较自身的状态信息与从总线接口单元接收的状态消息值,倘若来自总线接口单元的状态消息值大于或等于图形处理单元本身的状态信息,则允许存取此图形处理单元的数据,如此数据即可传递至显示控制器(或对应的画面缓冲区)以供显示描绘。依此方式,倘若从相关总线接口单元接收的状态消息值大于或等于显示控制器本身的状态信息(状态消息值),则可确保其它图形处理单元的处理进度可供最终显示成像,即显示控制器可达成集成最终显示成像的功能。
除上述实施例所述的方法,于另一实施例中,处理纹理面的工作是由多个图形处理单元的缓冲区(例如画面缓冲区)分工进行,每一表面部分的纹理处理阶段会经由图形处理单元传递至其它的总线接口单元,类似上述机制,每一图形处理单元中的状态消息逻辑电路比较各阶段完成度,并且将具有最低数值的状态消息回传各图形处理单元,俾进一步与各状态信息相比较,进而决定与多重图形处理器***内其它图形处理单元相比的纹理面处理完成度,倘若来自相关总线接口单元的状态消息值大于或等于图形处理单元本身的状态信息,则允许存取有关的纹理面数据,如此,显示控制器可自一个或多个图形处理单元取得所需的数据。于某些实施例中,可从不同图形处理单元(或相关的画面缓冲区)将数据“推”向显示控制器(或相关的画面缓冲区),反之亦然。
举一有关处理阶段完成度的例子,两个图形处理单元(如GPU0和GPU1)将用来进行画面描绘,假设画面有49个描绘目标-纹理面,分别对应至49个绘图命令,另外还包括「绘于显示缓冲区」的两个命令,举个例子,这些命令可为绘图命令0-描绘目标-纹理0(平行指令)、绘图命令1-描绘目标-纹理1(平行指令)、...、绘图命令48-描绘目标-纹理48(平行指令)、绘图命令49-描绘目标-显示(使用纹理0到39)、绘图命令50-描绘目标-显示(使用纹理40到48),通过前述命令顺序,在进行到绘图命令49前,图形处理单元GPU0和GPU1可以平行处理描绘程序,不用等待另外一个图形处理单元的动作,在绘图命令49中,则需要确认前40个描绘目标-纹理程序已完成,如此某一图形处理单元GPU0或GPU1才能进行绘图命令49(即适当的同步程序),如果图形处理单元GPU0还没有完成绘图命令48的描绘目标-纹理处理而图形处理单元GPU1已完成,则具有最低的处理完成阶段就是图形处理单元GPU0,同样地,需要确认第40至48的描绘目标-纹理程序已完成,某一图形处理单元GPU0或GPU1才能进行绘图命令50。
不同于已知的***,本发明的状态信息是由每一个图形处理单元直接处理,不受主处理器(例如中央处理单元)的干预,亦不需专属的总线线以传递状态信息,以达到真正的点对点处理,再者,本发明利用传递状态信息,亦可达成已知***所无法完成的描绘目标-纹理处理同步化。
本发明的多重图形处理器***可由硬件或硬件、软件及/或固件的组合所完成,当以硬件完成时,可单独或结合使用以下已知技术以完成其硬件,例如具有逻辑门可对数据信号实现逻辑功能的离散逻辑电路、具有适当逻辑门组合的特殊用途集成电路(application specific integrated circuit,ASIC)、可编程门阵列(programmable gate array,PGA)、场式可编程门阵列(field programmable gate array,FPGA)等。
虽然于本文中是以图形处理器***进行说明,但其它多处理器环境亦涵括于本发明较佳实施例的范围内。
图1为多重图形处理器***10的实施例的方块图,于某些实施例中,多重图形处理器***10可为计算机***或其它***及装置。多重图形处理器***10包含受到显示接口单元(display interface unit,DIU)104驱动的显示装置102,多重图形处理器***10亦可包含一显示控制器(可为图形处理单元)GPU0 114,与另一图形处理单元GPU1 116信号连接,其中图形处理单元GPU0 114的架构与功能实质上对映于图形处理单元GPU1 116,多重图形处理器***10尚包含区域存储器0 106及区域存储器1 108,此等存储器可包含显示缓冲区、纹理缓冲区及命令缓冲区,本领域技术人员当可理解包含其它缓冲区或高速缓存(cache)的应用,于本发明中,区域存储器0 106及区域存储器1 108亦可为画面缓冲区、储存单元或单纯的存储器。区域存储器0 106是通过存储器接口单元MIU0 110与图形处理单元GPU0 114连接,同样地,区域存储器1 108则通过存储器接口单元MIU1 112与图形处理单元GPU1 116连接。存储器接口单元MIU0 110、图形处理单元GPU0 114及显示接口单元104均连接至可兼容于快速***元件互连接口(peripheralcomponent interconnect express,PCI-E)标准的总线接口单元BIU0 118,同样地,存储器接口单元MIU1 112及图形处理单元GPU1 116则连接至总线接口单元BIU1 120。总线接口单元118及120均包含用以比较表示图形处理单元GPU0 114及GPU1 116的状态信息(例如指针或状态消息)的状态消息逻辑电路200(例如200a、200b),以及一个或多个用以储存状态信息的寄存器,状态消息逻辑电路200亦用以将比较结果(例如状态消息)传递至对应的图形处理单元,举例来说,总线接口单元BIU0 118的状态消息逻辑电路200a是传递状态消息至图形处理单元GPU0 114,而总线接口单元BIU1 120的状态消息逻辑电路200b则传递状态消息至图形处理单元GPU1 116。
总线接口单元BIU0 118是通过芯片组122(例如北桥芯片组)或开关而与总线接口单元BIU1 120连接,芯片组122包含接口电子元件,用以增强来自中央处理单元126(于此中亦称为主处理器)的信号,并且分开***存储器124与输出入装置或元件的来往信号,芯片组122是通过PCI-E总线协议与总线接口单元BIU0 118和BIU1 120连接,然而,在其它实施例中,亦可采取其它连接方式(例如PCI或其它特殊的高速总线等等)。
***存储器124及主处理器126是一同连接于芯片组122。
于某些实施例中,本领域技术人员当可明白,可另外增加图形处理单元(及总线接口单元)。于一实施例中,多重图形处理器***10包含图1中的所有元件,或于某些实施例中包含较少及/或不同的元件。于某些实施例中,可另外增加元件,例如连接于芯片组122的南桥芯片组。
多重图形处理器***10将欲描绘的影像表面和对象暂存于区域存储器0106及区域存储器1 108中,虽然图形处理单元GPU0 114是做为显示控制器,但是在某些实施例中,不管是图形处理单元GPU0 114或是GPU1 116都可做为显示控制器,换言之,于一实施例中,图1中的显示接口单元104和显示装置102的架构可稍加改变,显示装置102是通过显示接口单元104与存储器接口单元MIU1 112连接。
图2为图形处理单元GPU1 116的实施例的功能方块图。某些实施例可包含比图2更多或更少的元件,例如寄存器等其它元件,图形处理单元GPU0 114也有类似的结构,为了简洁的目的则不再赘述。图形处理单元GPU1 116可包含缓冲控制初始化(buffer control initialization,BCI)单元220、顶点着色器VS 222、三角形设置单元(triangle setup unit,TSU)224、间距和图块产生(span and tile generation)单元STG 226、ZL1单元228、ZL1高速缓存230、ZL2单元232、Z高速缓存234、像素着色器单元PS 240、纹理(T)高速缓存242、ZL3单元244、目标(D)单元246及D高速缓存248,于某些实施例中,可合并D单元246及D高速缓存248。BCI单元220是通过总线接口单元(例如BIU1 120)及存储器接口单元(例如MIU1 112)接收数据和命令,并且负责初始化处理顶点数据;ZL1高速缓存230及D高速缓存248亦分别地以存储器接口单元及总线接口单元为接口(以进行读写操作);ZL2单元232及ZL3单元244是存取Z高速缓存234;D单元246是连接于PS单元240及ZL3单元244,并且负责着色功能,并且进一步存取D高速缓存248;PS单元240存取T高速缓存242,此相当于根据已知的纹理取得和过滤机制的纹理处理。
于操作过程中,BCI单元220接收来自应用驱动程序或其它软件(未显示)的命令绘出三角形。BCI单元220亦接收对应于欲绘出的三角形的顶点信息,顶点信息传递至VS 222,在此进行顶点转换,特别是将对象从对象空间变换至工作空间及屏幕空间,成为三角形,然后将三角形传递至TSU 224,以结合原型并进行相关的工作,例如产生边界盒(bounding box)、拣选(culling)、产生边缘功能(edge function generation)及三角形层级(triangle levelrejection)剔除等其它已知功能,再将数据传递至STG单元226,提供图块产生功能,因此,数据对象被分割为图块(例如8×8、16×16等),并且传递至ZL1单元228。
ZL1单元228、ZL2单元232及ZL3单元244分别进行z-值处理,例如z-值的高阶(同样的程序在高阶时消耗的位数比低阶少)剔除,ZL单元228、232及244是分别与ZL1高速缓存230、Z高速缓存234合作;PS单元240包含可程序单元,是接收纹理和管线(pipeline)数据以及提供输出给D单元246及ZL3单元244;D单元246及ZL3单元244是在Z高速缓存234或D高速缓存248中的数值需要更新之前进行α测试及模板测试;于一实施例中,总线接口单元及存储器接口单元是根据PCI-E协议及双倍数据速率(double datarate,DDR)存储器协议来传送数据及接收数据。
图3为图1中所示的多重图形处理器***10的部分方块图,以多重图形处理器***部分10a表示,这里特别强调的是总线接口单元BIU1 120的状态消息处理功能,总线接口单元BIU0 118也有类似的功能。总线接口单元BIU120包含寄存器R0 302及R1 304,分别对应于二个图形处理单元GPU0 114及GPU1 116,虽然这里仅画出两个寄存器,但本领域技术人员当可明白,于某些实施例中可再增加寄存器,而使用超过两个图形处理单元,寄存器R0 302及R1 304均储存有状态信息(例如表示各图形处理单元的处理状态的状态消息或指针),总线接口单元BIU1 120亦包含状态消息逻辑电路200b,将进一步说明如下,总线接口单元BIU1 120是连接于芯片组122,芯片组122再连接于总线接口单元BIU0 118,存储器接口单元BIU0 118则连接于图形处理单元GPU0 114、存储器接口单元MIU0 110及显示接口单元104(如图1所示)。由于有关图形处理单元GPU0 114的连接情形及元件已显示于图1中,并经过相当的说明,为了简洁的目的不再赘述,总线接口单元BIU1 120是连接于图形处理单元GPU1 116,如图1所示,图形处理单元GPU1 116是连接于存储器接口单元MIU1 112,存储器接口单元MIU1 112再连接于区域存储器1 108,所示图形处理单元GPU1 116包含的元件没有图2那么多,有BCI单元220、T高速缓存242及D单元246,还包含数个寄存器,尤其包含对应于D单元246的寄存器314。
于一实施例中,总线接口单元BIU1 120接收来自图形处理单元GPU0114(例如来自对应于图形处理单元GPU0 114的D单元的寄存器)的状态信息,将其储存于寄存器R0 302中,总线接口单元BIU1 120亦通过连线312接收来自图形处理单元GPU1 116(例如来自寄存器314)的状态信息。再者,储存于寄存器314中的D单元246状态信息亦传递(例如通过存储器映像)至总线接口单元BIU0 118,其中有关图形处理单元GPU1 116的状态信息是储存于总线接口单元BIU0 118的寄存器中。状态消息逻辑电路200b比较寄存器R0302及R1 304中的状态消息值,并且选择最低的状态消息值,通过连线310传递至图形处理单元GPU1 116,最低状态消息值表示比最高(或较高)状态消息值对应更低完成度的处理阶段,因而可于多重图形处理器***10的各图形处理单元之间提供处理阶段的相对完成指标。BCI单元220及T高速缓存242均接收此状态消息值,并且将其储存于对应的寄存器中,D单元246亦接收此状态消息值,并且将通过连线310所接收的状态消息值与储存于其内部寄存器314中的状态信息相比较,倘若通过连线310所接收的状态消息值低于储存于寄存器314中的状态信息的数值(即状态消息值),则图形处理单元GPU1 116的描绘数据或表面数据无法供显示控制器114使用(不能存取);倘若通过连线310所接收的状态消息值大于或等于对应于储存于寄存器314中的状态信息的数值,则图形处理单元GPU1 116的描绘数据或纹理面数据可供显示控制器114利用(可存取),以进行描绘或描绘目标-纹理处理。应注意类似的比较同样于图形处理单元GPU0 114及总线接口单元BIU0 118之间进行,使得得以达成显示和描绘纹理面的同步化,亦即,图形处理单元GPU1 116可将显示描绘数据传递至图形处理单元GPU0 114或区域存储器0 106,以供最终显示成像,或图形处理单元GPU0 114可从对应于图形处理单元GPU1 116的区域存储器1 108取得所需的表面数据,以同步显示控制器114与其它图形处理单元(例如GPU1 116)进行显示描绘和其它最终成像程序(例如结合预描绘的纹理面)。
于一实施例中,状态消息值是于状态边界上改变,并且于每一个图形处理单元完成处理之后,重新设定状态消息值为0或已知数(例如,当已完成图形处理单元GPU1 116中的所有阶段时,重新设定图形处理单元GPU1 116的状态消息值)。因此,于一实施例中,图形处理单元GPU0 114及GPU1 116是于状态消息值变化之时更新总线接口单元BIU0 118及BIU1 120的寄存器。
下面以纹理处理为例作进一步的阐释,于某些实施例中,预描绘的影像将被用于最终成像处理,举例来说,于区域存储器0 106内的描绘影像可储存于区域存储器0 106的纹理面中(例如u-v屏幕空间),并且复制(即直接存储器存取)至与图形处理单元GPU1 116对应的区域存储器1 108(反之亦然)中,因此,提供最终画面不同部分的纹理处理功能将分别由图形处理单元GPU0114及GPU1 116进行,图形处理单元GPU0 114及GPU1 116可取得纹理面并将其使用于最终画面的对象部分。于一实施例中,显示控制器114通过将读取操作从其区域存储器0 106重新导向至PCI-E总线,以取得完整或部分纹理面数据。于另一实施例中,图形处理单元GPU1 116复制完整或部分的纹理面数据至图形处理单元GPU0 114的区域存储器0 106,最后,显示控制器114于区域存储器0 106中描绘最终影像画面以供显示。于另一例子中,状态消息处理及传递是如以上所述。
本领域技术人员将可理解,于本发明的说明书中,虽然使用最小状态消息值做为判断相对处理完成度的基准,但某些实施例可使用最大状态消息值作为相对处理完成度的指针,其中最大状态消息值可依类似的方式来表示(或逻辑电路可用来判断)相对处理完成度。
鉴于以上说明,从状态消息逻辑电路200的观点,图4提供一种多重图形处理方法实施例10b。多重图形处理方法10b包含以下步骤:接收对应于第一图形处理单元处理完成度的第一状态信息(402);接收对应于第二图形处理单元处理完成度的第二状态信息(404);比较该第一及第二状态信息(406);以及将对应其中具有最低完成度的处理阶段的状态消息传递至该第一图形处理单元(408)。
从图形处理单元(例如GPU0 114或GPU1 116)的观点,图5提供另一种方法实施例10c。多重图形处理方法10c包含以下步骤:图形处理单元接收状态消息,该状态消息具有状态消息值,对应于多个图形处理单元中具有最低完成度的处理阶段(502);比较该状态消息与对应该图形处理单元处理完成度的状态信息(504);以及倘若该状态消息值大于或等于对应于该状态信息的数值,则允许存取相关的显示描绘数据或纹理面数据(506)。
流程图中的任一程序说明或方块是代表片段或部分的程序代码,其中包含一或多个指令,用以进行特殊逻辑功能,本领域技术人员当可明白,依照其所涉功能,即便更改其执行顺序如同步执行或反向执行,其执行方式仍包含于本发明较佳实施例的范围内。
应强调的是,本发明的上述实施例,尤其任一“较佳”实施例,仅为清楚说明多重图形处理器***及方法的原理,本发明得由本领域技术人员施以变化和修饰,然皆不脱本发明的精神及范围,所有此等变化和修饰仅受限于如附权利要求范围。
Claims (20)
1.一种多重图形处理器***,其包含:
具有第一状态信息的第一图形处理单元以及具有第二状态信息的第二图形处理单元;以及
对应于该第一图形处理单元的第一状态消息逻辑电路,该第一状态消息逻辑电路用以比较该第一状态信息与该第二状态信息,以及将对应于其中具有最低完成度的处理阶段的状态消息传递至该第一图形处理单元。
2.根据权利要求1所述的***,其中该第一图形处理单元用以接收该状态消息,以及比较该状态消息与该第一状态信息。
3.根据权利要求2所述的***,其中因应该状态消息与该第一状态信息的比较结果,倘若该状态消息的值大于或等于对应该第一图形处理单元的状态信息的值,则该第一图形处理单元存取并描绘数据。
4.根据权利要求2所述的***,还包含具有该第一状态消息逻辑电路的第一总线接口单元,该第一总线接口单元是连接于该第一图形处理单元及该第二图形处理单元。
5.根据权利要求4所述的***,更进一步包含具有第二状态消息逻辑电路的第二总线接口单元,该第二状态消息逻辑电路具备该第一状态消息逻辑电路的功能,该第二总线接口单元是连接于该第一图形处理单元、该第二图形处理单元及该第一总线接口单元。
6.根据权利要求5所述的***,其中该第一图形处理单元用以将该第一状态信息传递至该第一总线接口单元及该第二总线接口单元,而该第二图形处理单元用以将该第二状态信息传递至该第一总线接口单元及该第二总线接口单元。
7.根据权利要求5所述的***,其中该第一总线接口单元及该第二总线接口单元均包含寄存器,用以分别储存该第一状态信息及该第二状态信息。
8.根据权利要求1所述的***,其中因应处理完成,该第一图形处理单元及该第二图形处理单元分别更新该第一状态信息及该第二状态信息。
9.根据权利要求1所述的***,其中该第一图形处理单元或该第二图形处理单元包含显示控制器。
10.一种多重图形处理单元的同步方法,其包含步骤:
接收对应于第一图形处理单元处理完成度的第一状态信息;
接收对应于第二图形处理单元处理完成度的第二状态信息;
比较该第一及第二状态信息;以及
将对应于该第一图形处理单元和该第二图形处理单元中具有最低处理完成度阶段的状态消息传递至该第一图形处理单元。
11.根据权利要求10所述的方法,其中该接收第一状态信息及第二状态信息的步骤是由总线接口单元的第一寄存器及第二寄存器所接收。
12.根据权利要求10所述的方法,其中该比较步骤包含:
选择具有较低数值的该第一状态信息或该第二状态信息。
13.根据权利要求10所述的方法,其中该比较步骤是于总线接口单元的逻辑电路中进行。
14.根据权利要求10所述的方法,更进一步包含步骤:
从一个或多个新增图形处理单元接收其它的状态信息;
比较所有图形处理单元的状态信息;以及
将对应于其中具有最低处理完成度的状态消息传递至该第一图形处理单元。
15.根据权利要求10所述的方法,更进一步包含步骤:
比较该状态消息及对应于该第一图形单元处理完程度的该第一状态信息;以及
倘若该状态消息的值大于或等于对应该第一状态信息的值,则允许存取相关的显示描绘数据或纹理面数据。
16.一种同步化多重图形处理单元的方法,其包含步骤:
图形处理单元接收状态消息,该状态消息具有状态消息值,对应于该多个处理单元中具有最低完成度的处理阶段;
比较该状态消息与对应于在该图形处理单元处理完成度的状态信息;以及
倘若该状态消息值大于或等于对应于该状态信息的数值,则允许存取相关的显示描绘数据或纹理面数据。
17.根据权利要求16所述的方法,其中接收该状态消息的步骤包含:
从总线接口单元接收该状态消息。
18.根据权利要求16所述的方法,其中接收该状态消息的步骤包含:
从该图形处理单元的寄存器接收该状态消息。
19.根据权利要求16所述的方法,更进一步包含步骤:
当完成特殊命令顺序的处理时,更新该状态信息。
20.根据权利要求19所述的方法,更进一步包含步骤:
将更新过的状态信息传递至对应于该多个图形处理单元的多个总线接口单元。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US72678705P | 2005-10-14 | 2005-10-14 | |
US60/726,787 | 2005-10-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1952979A true CN1952979A (zh) | 2007-04-25 |
CN1952979B CN1952979B (zh) | 2012-06-27 |
Family
ID=38059310
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006101361731A Active CN1952979B (zh) | 2005-10-14 | 2006-10-13 | 多重图形处理器***及方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8004531B2 (zh) |
CN (1) | CN1952979B (zh) |
TW (1) | TWI366151B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101714247B (zh) * | 2008-09-29 | 2012-06-20 | 辉达公司 | 单通道镶嵌 |
CN102576298A (zh) * | 2009-09-10 | 2012-07-11 | 先进微装置公司 | 读取处理单元的区域内存 |
CN104583933A (zh) * | 2012-08-23 | 2015-04-29 | 微软公司 | Gpu和fpga组件之间的直接通信 |
CN101978352B (zh) * | 2007-12-13 | 2017-11-03 | 先进微装置公司 | 用于具有多重图形子***、减少的功率消耗模式的计算装置的驱动程序架构、软件和方法 |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8775997B2 (en) | 2003-09-15 | 2014-07-08 | Nvidia Corporation | System and method for testing and configuring semiconductor functional circuits |
US8768642B2 (en) | 2003-09-15 | 2014-07-01 | Nvidia Corporation | System and method for remotely configuring semiconductor functional circuits |
US8732644B1 (en) | 2003-09-15 | 2014-05-20 | Nvidia Corporation | Micro electro mechanical switch system and method for testing and configuring semiconductor functional circuits |
US8711161B1 (en) | 2003-12-18 | 2014-04-29 | Nvidia Corporation | Functional component compensation reconfiguration system and method |
US8723231B1 (en) | 2004-09-15 | 2014-05-13 | Nvidia Corporation | Semiconductor die micro electro-mechanical switch management system and method |
US8711156B1 (en) | 2004-09-30 | 2014-04-29 | Nvidia Corporation | Method and system for remapping processing elements in a pipeline of a graphics processing unit |
US8021193B1 (en) | 2005-04-25 | 2011-09-20 | Nvidia Corporation | Controlled impedance display adapter |
US7793029B1 (en) | 2005-05-17 | 2010-09-07 | Nvidia Corporation | Translation device apparatus for configuring printed circuit board connectors |
US8412872B1 (en) * | 2005-12-12 | 2013-04-02 | Nvidia Corporation | Configurable GPU and method for graphics processing using a configurable GPU |
US8417838B2 (en) | 2005-12-12 | 2013-04-09 | Nvidia Corporation | System and method for configurable digital communication |
US8310491B2 (en) * | 2007-06-07 | 2012-11-13 | Apple Inc. | Asynchronous notifications for concurrent graphics operations |
US8724483B2 (en) | 2007-10-22 | 2014-05-13 | Nvidia Corporation | Loopback configuration for bi-directional interfaces |
TWI372352B (en) | 2008-01-04 | 2012-09-11 | Asustek Comp Inc | Method for assisting in calculation of data using display card |
US9331869B2 (en) | 2010-03-04 | 2016-05-03 | Nvidia Corporation | Input/output request packet handling techniques by a device specific kernel mode driver |
TWI498849B (zh) * | 2012-11-05 | 2015-09-01 | Nvidia Corp | 圖形驅動程式層級解耦顯像以及顯示的方法 |
US20140149528A1 (en) * | 2012-11-29 | 2014-05-29 | Nvidia Corporation | Mpi communication of gpu buffers |
US9390462B2 (en) | 2013-03-15 | 2016-07-12 | Intel Corporation | Memory mapping for a graphics processing unit |
US10467796B2 (en) * | 2017-04-17 | 2019-11-05 | Intel Corporation | Graphics system with additional context |
US10474458B2 (en) | 2017-04-28 | 2019-11-12 | Intel Corporation | Instructions and logic to perform floating-point and integer operations for machine learning |
DE112020000850T5 (de) * | 2019-03-15 | 2022-01-20 | Intel Corporation | Cache-Struktur und -Nutzung |
DE112020001249T5 (de) | 2019-03-15 | 2021-12-23 | Intel Corporation | Dünnbesetzt-Optimierungen für eine Matrixbeschleunigerarchitektur |
EP4130988A1 (en) | 2019-03-15 | 2023-02-08 | INTEL Corporation | Systems and methods for cache optimization |
US11934342B2 (en) | 2019-03-15 | 2024-03-19 | Intel Corporation | Assistance for hardware prefetch in cache access |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6760031B1 (en) * | 1999-12-31 | 2004-07-06 | Intel Corporation | Upgrading an integrated graphics subsystem |
CN1228722C (zh) * | 2000-01-04 | 2005-11-23 | 威盛电子股份有限公司 | 具有多工图形总线结构的***控制芯片及电脑*** |
US6747654B1 (en) * | 2000-04-20 | 2004-06-08 | Ati International Srl | Multiple device frame synchronization method and apparatus |
US6809733B2 (en) * | 2000-11-27 | 2004-10-26 | Silicon Graphics, Inc. | Swap buffer synchronization in a distributed rendering system |
CN1963793A (zh) * | 2002-04-30 | 2007-05-16 | 矽统科技股份有限公司 | 在一计算机***中支持多重图形适配器的设备与方法 |
US6885376B2 (en) * | 2002-12-30 | 2005-04-26 | Silicon Graphics, Inc. | System, method, and computer program product for near-real time load balancing across multiple rendering pipelines |
US7075541B2 (en) | 2003-08-18 | 2006-07-11 | Nvidia Corporation | Adaptive load balancing in a multi-processor graphics processing system |
US7545380B1 (en) * | 2004-12-16 | 2009-06-09 | Nvidia Corporation | Sequencing of displayed images for alternate frame rendering in a multi-processor graphics system |
US7372465B1 (en) * | 2004-12-17 | 2008-05-13 | Nvidia Corporation | Scalable graphics processing for remote display |
-
2006
- 2006-10-13 US US11/549,409 patent/US8004531B2/en active Active
- 2006-10-13 CN CN2006101361731A patent/CN1952979B/zh active Active
- 2006-10-13 TW TW095137792A patent/TWI366151B/zh active
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101978352B (zh) * | 2007-12-13 | 2017-11-03 | 先进微装置公司 | 用于具有多重图形子***、减少的功率消耗模式的计算装置的驱动程序架构、软件和方法 |
CN101714247B (zh) * | 2008-09-29 | 2012-06-20 | 辉达公司 | 单通道镶嵌 |
CN102576298A (zh) * | 2009-09-10 | 2012-07-11 | 先进微装置公司 | 读取处理单元的区域内存 |
US8933947B2 (en) | 2009-09-10 | 2015-01-13 | Ati Technologies Ulc | Reading a local memory of a processing unit |
CN102576298B (zh) * | 2009-09-10 | 2016-04-06 | 先进微装置公司 | 读取处理单元区域内存的方法及装置 |
CN104583933A (zh) * | 2012-08-23 | 2015-04-29 | 微软公司 | Gpu和fpga组件之间的直接通信 |
CN104583933B (zh) * | 2012-08-23 | 2018-01-26 | 微软技术许可有限责任公司 | Gpu和fpga组件之间的直接通信的方法和*** |
US9928567B2 (en) | 2012-08-23 | 2018-03-27 | Microsoft Technology Licensing, Llc | Direct communication between GPU and FPGA components |
Also Published As
Publication number | Publication date |
---|---|
TWI366151B (en) | 2012-06-11 |
US20070115291A1 (en) | 2007-05-24 |
CN1952979B (zh) | 2012-06-27 |
TW200731159A (en) | 2007-08-16 |
US8004531B2 (en) | 2011-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1952979B (zh) | 多重图形处理器***及方法 | |
CN101739357B (zh) | 多类数据高速缓存策略 | |
TWI417806B (zh) | 單一通過鑲嵌 | |
CN100442264C (zh) | 封包处理***与方法 | |
US7876328B2 (en) | Managing multiple contexts in a decentralized graphics processing unit | |
US20130145124A1 (en) | System and method for performing shaped memory access operations | |
CN105302524A (zh) | 通过标记cpu流量为特殊来避免死锁 | |
CN103793876A (zh) | 分布式拼接式进行高速缓存 | |
US8108610B1 (en) | Cache-based control of atomic operations in conjunction with an external ALU block | |
CN102981892A (zh) | 用于不同种类处理单元的集中式设备虚拟化层 | |
DE112018005527T5 (de) | Automatisches aufwecken von leistungsdomänen fürgrafikkonfigurationsanforderungen | |
CN103886547A (zh) | 用于存储共享顶点的技术 | |
US6150679A (en) | FIFO architecture with built-in intelligence for use in a graphics memory system for reducing paging overhead | |
EP0893782A2 (en) | Graphics system and method of rendering | |
CN103810743A (zh) | 在上游着色器中设置下游渲染状态 | |
US8341358B1 (en) | System and method for cleaning dirty data in a cache via frame buffer logic | |
CN104050705A (zh) | 处置光栅操作中的post-z覆盖数据 | |
US20200219430A1 (en) | Interrupt-free multiple buffering methods and systems | |
CN103885902A (zh) | 用于经由纹理硬件实施存储器访问操作的技术 | |
CN101178806B (zh) | 计算机中管理纹理数据的***与方法 | |
CN103870213A (zh) | 经由管线化的状态包触发性能事件捕获 | |
US20220121542A1 (en) | Techniques for testing semiconductor devices | |
CN103885903A (zh) | 用于经由纹理硬件实施存储器访问操作的技术 | |
US10409571B1 (en) | Apparatus and method for efficiently accessing memory when performing a horizontal data reduction | |
CN103455468A (zh) | 一种多gpu运算卡及多gpu之间的数据传输方法 |
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 |