CN101261729A - 在分布式图形处理单元内管理多重执行绪的系统与方法 - Google Patents
在分布式图形处理单元内管理多重执行绪的系统与方法 Download PDFInfo
- Publication number
- CN101261729A CN101261729A CNA2007101099688A CN200710109968A CN101261729A CN 101261729 A CN101261729 A CN 101261729A CN A2007101099688 A CNA2007101099688 A CN A2007101099688A CN 200710109968 A CN200710109968 A CN 200710109968A CN 101261729 A CN101261729 A CN 101261729A
- Authority
- CN
- China
- Prior art keywords
- thread
- control module
- data
- processing unit
- texture
- 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
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
Abstract
一种在分布式图形处理单元中管理多重执行绪的系统。该系统包含多重控制单元,可包含执行绪暂存器、执行绪处理器、以及执行绪调度器。此系统也可包含逻辑电路以接收多重执行绪、逻辑电路以判别至少一个该等执行绪、以及逻辑电路以利该等控制单元间的联络。
Description
技术领域
本发明是有关于计算机运算领域,特别是有关于分布式图形处理单元的多重执行绪(multiple contexts)管理。
背景技术
现今计算机应用程序愈来愈强调图形化,而且比以前拥有更高度的图形处理能力。一些应用程序(如游戏)通常包含复杂且高细节的图形绘制,里面有需要大量处理的不同形式显示对象。除了上述的应用程序之外,现今的应用程序也运作在执行多重应用程序的窗口环境中。窗口系统允许单一实体显示装置呈现多重应用程序的图形输出。此输出通常显示于一个或数个窗口,每个窗口可能需要一个唯一的执行绪(context)。每个窗口的执行绪定义了该窗口区域的性质和参数,以便执行某一应用程序。另一种形式的执行绪(例如绘图执行绪)可能与利用某种纹理、表面材质类型、和相关着色程序进行绘制的一个或数个对象有关。以此方式,一个执行绪可能与图形系统利用来控制绘图处理的数据有关。举例而言,显示画面可能包含数个重迭的窗口,每个窗口由不同的应用程序所趋动。纹理数据、着色数据、以及每个窗口的相关状态值可构成这些多重应用程序的执行绪。在背景窗口转换成前景窗口的情形下,显示画面利用与先前应用程序有关的覆盖窗口更新执行绪。在低阶执行绪转换下,图形处理单元(graphic processing unit,GPU)可能先完成一种物体型态的描绘,再切换至使用不同纹理和材质组的其它形态物体。
纹理执行绪可能包含纹理基准地址、取样原则、形态格式等等。着色执行绪可能包含相似的纹理执行绪,以及表面材质特性、常数、着色代码变化、和/或其它着色相关信息。考虑一个图形处理单元的管线(pipeline)有非常长的几个管线阶段之下(可能同时要绘制不同窗口或是物体,以及从不同执行绪提供纹理数据),控制纹理执行绪的集中式系统可能无法避免显著的执行效能降低。
在一个典型集中式控制结构中,调度器可控制执行绪暂存器以及切换任务进出此执行绪暂存器。举例而言,一个像素着色调度器可控制多重描绘执行绪,以及根据着色程序的需求派送纹理服务要求。然而,在纹理撷取控制与着色控制互为独立的状况下,纹理控制时常在着色程序执行之前与执行期间预先处理纹理数据。着色调度器和纹理控制单元的互动产生显著的存储器和时间冗余,以及造成集中式执行绪管理结构的无效率。将这些执行绪暂存器在众多处理阶段中分散开来,将会面临重要的数据协调问题。于是,此领域尚存在未发现的上述需求,以克服上述的缺陷与不足。
发明内容
本发明的一些实施例提供管理分布式图形处理单元内多重执行绪的系统与方法。一个系统架构的实施例中,在图形处理单元内有纹理控制单元(texture control unit)用以处理纹理数据。该纹理控制单元包括主执行绪调度器(master context scheduler),对应于纹理处理而管理执行绪数据,以及纹理执行绪暂存器(texture context buffer),储存纹理控制单元所需的执行绪数据。此系统也可包含着色控制单元(shader control unit),在图形处理单元内处理色彩及纹理数据。该着色控制单元包含副执行绪调度器(slave context scheduler),对应于着色处理而管理执行绪数据,以及包含着色执行绪暂存器(shader context buffer),储存着色控制单元所用的执行绪数据。
本发明的一些实施例也可视为在分布式图形处理单元内管理执行绪数据的一种方法。依此观点,实施例的方法可大约分成下列步骤:接收数个一连串的执行绪到第一控制单元内,在主执行绪调度器里产生数个执行绪识别符(context identifier);处理第一控制单元内该等执行绪的第一部分;从第一控制单元接收执行绪数据到第二控制单元:从第二控制单元接收执行绪状态数据到第一控制单元;以及从第二控制单元产生输出数据。
本发明的一些实施例也可视为在分布式图形处理单元内管理执行绪数据的一种系统。此系统的一个实施例可包含数个控制单元,每个控制单元包含执行绪暂存器、执行绪处理器、以及执行绪调度器。此系统还可包含逻辑电路以接收数个执行绪、逻辑电路以识别每个执行绪、以及逻辑电路供作每个控制单元之间的连络。
还有另一种在分布式图形处理单元内管理执行绪数据的系统实施例可以实现如下:第一控制单元,接收一序列的数个执行绪,其中第一控制单元还用以处理该等执行绪的第一部分;以及第二控制单元,从第一控制单元接收该等执行绪的第二部分,其中第二控制单元还传达执行绪处理状态给第一控制单元,并且第二控制单元更进一步传送处理过的此序列执行绪数据。
本发明的其它系统、方法、特性、与优点,可由所附图标与文字说明使本领域技术人员轻易获知。本发明涵盖的所有系统、方法、特性、与优点,皆不脱离在此所揭露的精神与范畴,并由所附的申请专利范围所保护。
附图说明
本发明所揭露的许多面向可由所附图示作最好诠释。图标所绘的元件并不按照比例,其用意在于清楚解释本发明的原则。此外,在这些图示中,相同的标号表示相对应的部分。
图1为一种处理装置的例子,可实现分布式图形处理环境中多重执行绪数据管理。
图2为一种图形处理单元(graphic processing unit,GPU)的方块图,可实现分布式图形处理环境的多重执行绪数据管理。
图3为一种图像显示的放大示意图,可实现分布式图形处理环境的多重执行绪数据管理。
图4是显示根据本发明一实施例所述的用以管理分布式图形处理环境的多重执行绪的系统方块图。
图5是显示根据本发明一实施例所述的用以管理分布式图形处理环境的多重执行绪的系统方块图。
图6是显示根据本发明另一实施例所述,用以管理分布式图形处理环境的多重执行绪的系统方块图。
图7是显示根据本发明一实施例所述的用以管理分布式图形处理环境的多重执行绪的系统的数据流与控制信号的流程图。
图8是显示根据本发明一实施例所述的分布式图形处理环境的多重执行绪管理方法。
[主要元件标号说明]
10~计算机系统 16~处理单元
18~系统存储器 24~ROM
26~RAM 27~BIOS
29、44~操作系统 31、45~应用程序
33、46~其它程序模块 35、47~程序数据
40~不可移除/非易失性存储器接口
41~硬盘机
50~可移除/非易失性存储器接口
60~使用者输入接口 61~光标装置
62~键盘 70~网络接口
71~局域网络 72~调制解调器
73~广域网络 80~远程计算机
81~硬盘机 82~图形接口
84、100~图形处理单元 85~远程应用程序
86~图像存储器 90~图像接口
91~显示器 95~外围输出接口
96~打印机 97~喇叭
112~前端处理器 113~纹理处理器
114~着色处理器 115~图框暂存器
116~显示装置 120~显示装置
125~显示画面 126、127、128~窗口
129~光标 140、160~系统
142、192~纹理控制单元 144、194~主执行绪调度器
146~纹理执行绪暂存器 148、204~着色控制单元
150~副执行绪调度器 152~着色执行绪暂存器
162~识别符逻辑电路 164~通讯逻辑电路
166~接收逻辑电路 170~多重控制单元
172~执行绪暂存器 174~执行绪调度器
176~执行绪处理器 196~纹理执行绪暂存器
198~纹理处理单元 200~着色执行绪预先处理
202~执行绪数据暂存器 206~副执行绪调度器
208~着色执行绪暂存器 210~着色处理单元
具体实施方式
综合本发明所揭露的许多方面,以下的揭露方式将以图标与文字作细详叙述。当本发明以图示说明时,并不意味着本发明被限制于这些实施例之中。相反地,所有的替代方案、修改方式、以及其相等物,将不脱离所附申请专利范围的精神与范围。
图1为一个有图形显示输出的处理装置,可使用本发明所揭露的诸多特性。图1和以下叙述提供本发明所实施的其中一种处理环境概观。然而,手持式、携带式、或其它处理装置及计算机配备也可应用本发明。因此,在此描述的通用计算机仅是一个例子,本领域技术人员应可以认同本发明可实现于许多其它装置。举例而言,任何一处的数据皆可被储存,或是从其它计算机撷取过来或传送出去,都是本发明可应用的合理、合适环境。
本揭露可实现于操作系统中,供作对象或装置服务开发者的使用,或者包含在具有本揭露技术的应用程序软件中。软件可能被描述或呈现在计算机执行指令的一般执行绪(如程序模块),执行在一台或多台计算机里(如客户端工作站、服务器、或其它装置)。程序模块可能包含例行程序、对象、元件、数据结构、以及可执行特殊工作或实现特殊抽象数据型态等等,如本领域技术人员所知悉。程序模块的功能性可以依众多设定的需要而结合或是分散。
其它计算机系统、环境、和/或设定可能适合本发明的包含(但不限制于)个人计算机、自动柜员机、伺服计算机、手持或轻便装置、多重处理器系统、微处理器系统、可编程消费电子、网络计算机、环境控制元件、迷你计算机、大型计算机等等。本揭露可能应用或分布于这些处理环境中,许多工作可由远程处理装置借着连接网络/总线或其它数据传输媒介而执行。在分布式处理环境中,程序模块可能同时设置在本地端及远程计算机储存媒介(包含存储器储存装置),而用户节点可能轮流变成伺服节点。
图1的处理系统10包括计算机12。计算机12的组成可能包含处理单元16、系统存储器18、以及耦接许多系统元件的系统总线21(包含从系统存储器18连接至处理单元16)。系统总线21可能为任何形式的总线结构,包含存储器总线或是存储器控制器、周边装置总线、以及使用任何总线架构构成的局部总线。举例来说,这样的架构可能包含周边零件连接接口(peripheralcomponent interconnect,PCI)、加速图像处理端口(accelerated graphicsport,AGP),和/或快速周边零件连接接口(PCI Express)总线。
计算机12可能包含许多计算机读取媒介。计算机读取媒介可为任何可存取计算机12的媒介,包含易失性及非易失性存储器、可移除及不可移除存储器。举例而言,计算机读取媒介可能包括计算机储存媒介及传输媒介。计算机储存媒介可能同时包括实现各种储存方法及技术的易失性及非易失性、可移除及不可移除媒介,例如计算机读取指令、数据结构、程序模块、或其它本领域技术人员所知的数据。计算机储存媒介包括随机存取存储器、只读存储器、电子抹除式只读存储器、闪存、或其它存储器技术,光驱、DVD、或其它光学储存盘片,磁匣、磁带、磁盘、或其它磁性储存设备、或其它媒介可储存数据及被计算机12存取。
系统存储器18可包含易失性和/或非易失性存储器的计算机储存媒介,例如只读存储器(ROM)24和随机存取存储器(RAM)26。基本输入/输出系统(BIOS)27可能存在只读存储器24里,包含基本的例行程序可帮助计算机12内部元件间的消息移转(例如开机时)。随机存取存储器26可能包含数据和/或程序模块可被处理单元16存取和/或运作于处理单元16。举例而言,操作系统29、应用程序31、其它程序模块33、以及程序数据35可能包含在随机存取存储器26里。
计算机12可能也包含其它可移除/不可移除、易失性/非易失性计算机储存媒介。举例而言,硬盘机41可能从可移除、非易失性的磁性媒介读取或写入。光驱55可能从可移除、非易失性的光盘读取或写入,像是CDROM或其它光学媒介。其它可移除/不可移除、易失性/非易失性的计算机储存媒介可用在计算机系统10的例子中,包含(但非限制于)磁带匣、快闪存储卡、DVD、数字影带、固态随机存取存储器、固态只读存储器等等。
硬盘机41通常经由如接口40的非易失性存储器接口连接至系统总线21。相似地,磁盘驱动器51和光驱55可能经由如接口50的可移除存储器接口连接至系统总线21。图1与以上描述的这些设备及与它们相关的计算机储存媒介,可能提供计算机读取指令、数据结构、程序模块、以及其它数据给计算机12。举例而言,硬盘机41储存操作系统44、应用程序45、其它程序模块46、以及程序数据47。上述程序可能与操作系统29、应用程序31、其它程序模块33、以及程序数据35相同或相异。如图1所示,这些软件程序的标号不同至少代表他们不为同一份。
使用者可能经由输入装置,如键盘62及光标装置61,输入指令或信息至计算机12。本领域技术人员可知上述装置仅为例子。然而,键盘62和光标装置61可能经由连接系统总线21的使用者输入接口60耦接至处理单元16。再者,本领域技术人员可知其它接口和总线结构如并行端口、游戏端口、或通用串行总线(universal serial bus,USB)可以用作这些装置与计算机12的连接。
图形接口82也可耦接至系统总线21。举例而言,图形接口82可为连接处理单元16的芯片组,并可为加速图像处理端口(AGP)或快速周边零件连接接口(PCI Express)。图形接口82可连接一个或数个图形处理单元(graphicsprocessing units(GPUs)84。举例而言,图形处理单元84可能包含存储器储存芯片,如储存暂存器和高速缓存。图形处理单元84也可连接图像存储器86,而其中上述的应用程序变量可能对此有影响。然而,图形处理单元84仅是协同处理器(coprocessor)的一个例子,许多其它的协同处理器可能还包含在计算机12里。
显示器91或其它显示装置可能也经由图像接口90耦接在系统总线21,图像接口90也可能连接图像存储器86。除了显示器91以外,计算机系统10可能也包含其它外围输出装置,像是打印机96或喇叭97,经由外围输出接口95耦接在一起。
本领域技术人员可知计算机12可利用一个或多个远程计算机(如远程计算机80)以逻辑连接方式操作于网络或分布式环境下。远程计算机80可能为个人计算机、服务器、路由器、网络计算机、端点装置、或其它共同的网络节点。即使图1只出现存储器储存装置81和远程应用程序85,远程计算机80也可能包含上述计算机12的所有或部分元件。图1所述的逻辑连接包含局域网络(LAN)71和广域网络(WAN)73,本领域技术人员也可知可能为其它网络/总线。
以图1来说,远程计算机80可能经由局域网络171及网络接口70连接至计算机12。相同地,调制解调器72可能用作计算机12(经由使用者输出接口60)与远程计算机80的广域网络连接。
图2说明一种图形处理单元的方块图,可实现分布式图形处理环境的多重执行绪数据管理。图形处理单元100处理来自CPU的图形要求并提供前端处理器112。前端处理器112可能包含顶点着色器、几何着色器和描绘器,可产生像素串流以及对应显示装置116的像素坐标。
对应显示装置116的像素坐标产生自前端处理器112并提供给纹理处理器113。举例而言,纹理处理器113处理关于纹理地图或纹理样本及相关纹理过滤功能的信息。纹理处理器113最后产生每个像素的纹理数据。显示装置116的像素坐标的信息也传送至着色处理器114,着色处理器114产生最终的色彩值,可能包含RGB及透明值(α),着色处理器114也可能视着色程序的处理而初始化其它纹理撷取。纹理数据和色彩数据为传送至图框暂存器115的最终色彩数据处理结果的操作数,图框暂存器115储存显示数据供显示装置116使用。
图3为一种图像显示的放大示意图,可实现分布式图形处理环境的多重执行绪数据管理。显示画面125有一个屏幕可提供窗口126、127、和128在运算装置中去执行一段时间的不同程序和/或应用程序。此外,显示画面125可在屏幕的背景有光标129及其它控制按钮或控制列130,一般表示操作系统的信息等等。一些窗口可用二维绘图而一些窗口可用三维绘图。背景、光标129、与每个窗口126、127、和128可视为包含不同的执行绪(context)。当屏幕输出改变时,也需要快速且频繁的执行绪改变来配合。举例而言,当对应第一窗口128的应用程序被带到前景时,第一窗口128的执行绪可以替代其它窗口126、127的一部分。
图4是显示根据本发明一实施例所述的用以管理分布式图形处理环境的多重执行绪的系统方块图。系统140包含纹理控制单元142和着色控制单元148。如图2所述,纹理处理器和着色处理器为图形管线(graphics pipeline)的处理阶段(stages)。纹理控制单元142包含主执行绪调度器144,可处理一连串的多重执行绪并指派唯一识别符(unique identifier),称为每个执行绪的执行绪识别符。纹理控制单元142也包含纹理执行绪暂存器146。纹理执行绪暂存器146用来储存与该一序列执行绪有关的纹理执行绪数据,并且可由执行绪识别符所寻址。举例而言,执行绪可与显示中的不同应用程序有关,也可与绘制不同等级对象的单一应用程序有关。在一些环境中这些可为窗口应用程序,其中一个窗口置于前景,而其余窗口可部分或全部隐匿于前景窗口之后。同样地,许多应用程序可能正在启动,但最多一次只能显示一个应用程序,而其它应用程序仍正在启动并且能随时取代现存的显示画面。
主执行绪调度器144可能会基于纹理执行绪暂存器146的容量,限制由纹理控制单元142所接收的执行绪数量。着色控制单元148包含副执行绪调度器150和着色执行绪暂存器152。副执行绪调度器150可基于着色执行绪暂存器152的容量,限制接收的着色执行绪数量。副执行绪调度器150通过接收由主执行绪调度器144所指派的执行绪识别符,管理着色控制单元148内的着色执行绪数据。当系统140处理每个执行绪时,相同的执行绪识别符可用来协调纹理及着色处理阶段的同时执行绪处理。此外,当着色控制单元148完成给定执行绪的处理时,纹理控制单元142会被告知储存此执行绪的数据可被后来的执行绪数据所覆写。
图5是显示根据本发明一实施例所述的用以管理分布式图形处理环境的多重执行绪的系统方块图。系统160包含多重控制单元170,每个控制单元170有执行绪暂存器172、执行绪调度器174、以及执行绪处理器176。举例而言,多重控制单元170可属于图形管线中不同的独立处理阶段,也可属于多重平行着色处理器。此外,若每个控制单元170可具执行绪调度器174,则一个或数个控制单元170也可以共同包含一执行绪调度器174,并且将其设定成主执行绪调度器。
系统160包含识别逻辑电路162,用以将接收来自多重控制单元170的每个执行绪,并指派给它唯一识别符。此唯一识别符允许多重执行绪同时处理于超过一个的控制单元170。系统160也包含接收逻辑电路166,用以接收与执行绪暂存器172容量一致的多重执行绪。接收逻辑电路166也可产生数个与暂存容量相关的信号,以供通讯逻辑电路164使用。接收逻辑电路166基本上复制通讯逻辑电路164。系统160还包含通讯逻辑电路164以提供多重控制单元170之间的联络。举例而言,通讯逻辑电路164包含被动读取功能以允许反复处理。通讯逻辑电路164也可提供多重控制单元170之间的容量反馈信号,以作为系统内执行绪处理的多种状态信号。
图6是显示根据本发明另一实施例所述,用以管理分布式图形处理环境的多重执行绪的系统方块图。此系统包含具有主执行绪调度器194的纹理控制单元192。主执行绪调度器194接收一序列的多重执行绪190。主执行绪调度器194指派每个执行绪一执行绪识别符并储存执行绪数据至纹理执行绪暂存器196。主执行绪调度器194基于纹理执行绪暂存器196的容量限制其接收的执行绪数量。纹理处理区块198从纹理执行绪暂存器196接收纹理执行绪数据并对应多重执行绪190而处理纹理执行绪数据。
主执行绪调度器194也传送有关着色处理的执行绪数据至着色执行绪预先处理区块200。部分执行绪数据可能在着色执行绪预先处理区块200中先处理,而其它执行绪数据将在执行绪数据合并区块202中与来自纹理处理区块198的数据合并。合并后的数据将接着传送至位于着色控制单元204内的副执行绪调度器206。此外,主执行绪调度器194可允许的执行绪数量大于或等于副执行绪调度器206可允许的执行绪数量。着色执行绪数据从副执行绪调度器206送至着色执行绪暂存器208储存,并接着让着色处理区块210存取。当副执行绪调度器206判断着色执行绪暂存器208缺乏足够空间接收额外的执行绪时,会有回压信号(back pressure signal)传送至纹理控制单元192指示拒绝再接收任何额外的执行绪数据。同样地,当副执行绪调度器206判断给定执行绪已完全处理完毕时,会有释放信号(free signal)传送至主执行绪调度器194指示释放旧的执行绪。以此方式,纹理控制单元192的运算资源可被释放以接收额外执行绪作处理。着色处理区块210可从纹理执行绪暂存器196要求额外的数据,以作接续的处理步骤。介于着色控制单元204和纹理控制单元192之间的处理循环,可根据这些唯一执行绪识别符而同时运作在多重绘制执行绪之间。当这一序列多重执行绪的其中之一被处理完毕时,着色控制单元204会依照序列的顺序输出此执行绪,再由纹理控制单元192所接收。
图7是显示根据本发明一实施例所述的用以管理分布式图形处理环境的多重执行绪的系统的数据流与控制信号的流程图。在阶段222中,纹理控制单元接收一序列的多重执行绪220。纹理控制单元基于纹理执行绪暂存器的容量决定最大可接收的执行绪数量。在阶段224中,于接收多重执行绪后指派执行绪识别符。在阶段226中,若这些多重执行绪包含预先撷取纹理执行绪(pre-fetch texture context),则一个或数个执行绪将会被暂存。此外,在阶段230中,当这些多重执行绪包含着色执行绪时,关于着色处理的执行绪数据会被预先处理。当着色执行绪数据在阶段230中预先处理时,在阶段228中也同时处理纹理执行绪数据。在阶段232中,合并处理完的纹理执行绪数据和预先处理的着色执行绪数据。在阶段234中,着色控制单元接收合并后的着色执行绪数据并且在阶段238中暂存起来。在阶段244中,若着色控制单元判断已经接收或是正在处理执行绪数量达到最大值时,回压信号将会发布出去以指示着色控制单元将不再接收额外的合并数据。
在阶段246中,当给定的执行绪已处理完毕时,释放信号将传送至纹理控制单元以指示所有跟此执行绪有关的数据可以丢弃,因此释放纹理控制单元以接收和处理额外的执行绪。在阶段242中,处理着色执行绪数据,并当需要额外执行绪数据时(循环236),在纹理执行绪暂存器执行读取操作。以此方式,当着色控制单元接收执行绪并开始处理时,着色控制单元可要求并撷取所需的额外纹理执行绪数据,此纹理执行绪数据为多重循环中同一执行绪识别符所指向的相同纹理执行绪。在阶段240中,当着色执行绪处理完毕时,执行绪数据将依多重执行绪的接收顺序输出。
图8是显示根据本发明一实施例所述的分布式图形处理环境的多重执行绪管理方法。在步骤310时,开始接收多重执行绪至第一控制单元。执行绪对应特定绘图并可以包含纹理执行绪、着色执行绪、和其它暂时执行绪数据。第一控制单元在图形处理单元中,可有任何数量的管线处理阶段。在步骤320中,产生执行绪识别符给一个或多个执行绪。该等唯一识别符产生于主控制单元,主控制单元在第一控制单元里,并且可用于经由多重控制单元所处理的相同执行绪。执行绪识别符保证相同的执行绪数据可供正在使用的执行绪执行加载、储存、和处理的操作。
在步骤330中,处理执行绪数据的第一部分。此步骤在第一控制单元里执行,其中此部分的执行绪以第一控制单元的特定功能处理。举例而言,对应预先撷取纹理功能的执行绪数据将会在第一控制单元里处理,而第一控制单元就是一个纹理控制单元。纹理控制单元可包含(但不限制于)纹理地址产生器、纹理快取控制逻辑电路、以及纹理过滤单元。在步骤340中,在第二控制单元里接收执行绪数据的第二部分。此第二部分对应第二控制单元的特定功能。举例而言,当第二控制单元执行着色相关计算时,执行绪数据的第二部分便有关于着色功能。着色有关的数据的例子包含(但不限制于)RGB和α值。着色功能也可能包含先前纹理数据读取(texture dependent read)。
在步骤350中,第一控制单元接收执行绪状态数据(context statusdata)。举例而言,执行绪状态数据可包含一种指示,说明第二控制单元已处理完给定的执行绪,且处理该给定执行绪数据的资源可由接下来的执行绪所取得。此外,执行绪状态数据可包含一种指示,说明第二控制单元没有多余的空间给更多的执行绪,并且直到至少一个现存的执行绪处理完毕才可继续接收执行绪。以此方式,当着色暂存器还有空间时,第二控制单元通过接收额外的数据实现有效的利用。此外,执行绪状态数据可包含额外执行绪数据要求,例如反复计算的处理循环。在步骤360中,执行绪输出数据从第二控制单元产生。执行绪输出数据以第一控制单元接收这些多重执行绪的顺序输出。
本发明所揭露的实施例可实现在硬件、软件、固件、或它们的组合。一些实施例可实施在存于存储器中并执行在合适指令执行系统的软件与固件。若是实施在硬件中,另一种实施例可以通过任何一种下述技术或是其组合而实现:可对数据信号实现逻辑功能且具有逻辑门的离散逻辑电路、具适合的组合逻辑门的特殊应用集成电路(ASIC)、可编程逻辑门阵列(PGA)、以及现场可编程逻辑门阵列(FPGA)等等。
任何处理的描述或流程图里的区块应被视为模块、区段、或包含一个或多个可执行指令以实现程序中特定逻辑功能或步骤的一部分程序代码。其它实现本发明的实施例不一定要按照上述内容所列举的实施步骤依序执行,而可以同时或倒序执行,此取决于所附的功能性而定,并且为本领域技术人员所知悉。
上述的实施例仅是实现本发明的一些应用,只是为了清楚阐明本发明所揭露的精神与原则。许多变化与修改可以根据上述的实施例而作,但不脱离本发明的精神和原则。所有的修改与变化皆不脱离本发明所揭露的范围,并且受到所述的权利要求范围所保护。
Claims (23)
1. 一种在分布式图形处理单元内管理多重执行绪的系统,包括:
纹理控制单元,在图形处理单元内处理纹理数据,该纹理控制单元包括:
主执行绪调度器,用以管理对应于纹理运算的执行绪数据,以及
纹理执行绪暂存器,储存该纹理控制单元所使用的该执行绪数据;以及
着色控制单元,在该图形处理单元内处理色彩数据,该着色控制单元包括:
副执行绪调度器,用以管理对应于着色处理的该执行绪数据;以及
着色执行绪暂存器,储存该着色控制单元所使用的执行绪数据。
2. 根据权利要求1所述的在分布式图形处理单元内管理多重执行绪的系统,其中,该纹理执行绪暂存器和该着色执行绪暂存器分别用以储存对应于多个执行绪的该执行绪数据。
3. 根据权利要求2所述的在分布式图形处理单元内管理多重执行绪的系统,其中,该纹理控制单元分别指派唯一执行绪识别符给各该等执行绪。
4. 根据权利要求1所述的在分布式图形处理单元内管理多重执行绪的系统,其中,该着色控制单元由对应于该等执行绪之一者的该纹理控制单元接收执行绪识别符。
5. 根据权利要求1所述的在分布式图形处理单元内管理多重执行绪的系统,其中,该纹理控制单元还包括如下之一:
着色执行绪预先处理器,用以接收该执行绪数据的一部分;
执行绪数据合并器,用以合并对应于纹理运算的该执行绪数据以及对应于着色处理的该执行绪数据。
6. 根据权利要求1所述的在分布式图形处理单元内管理多重执行绪的系统,其中,该主执行绪调度器最多管理第一数量的该执行绪;该副执行绪调度器最多管理第二数量的该执行绪;以及该第一数量大于或等于该第二数量。
7. 根据权利要求1所述的在分布式图形处理单元内管理多重执行绪的系统,其中,该副执行绪调度器执行如下两种操作之一:
传送回压信号至该纹理控制单元,以指示该着色控制单元不会从该纹理控制单元接收任何执行绪;
传送释放信号至该主执行绪调度器,以指示执行绪已处理完毕。
8. 根据权利要求1所述的在分布式图形处理单元内管理多重执行绪的系统,其中,该执行绪数据包括纹理执行绪数据和着色执行绪数据。
9. 根据权利要求1所述的在分布式图形处理单元内管理多重执行绪的系统,其中,该纹理控制单元还包括纹理处理器以处理该纹理数据。
10. 根据权利要求1所述的在分布式图形处理单元内管理多重执行绪的系统,其中,该着色控制单元还包括着色处理器以处理该着色数据。
11. 一种在分布式图形处理单元内管理多重执行绪的方法,包括:
接收序列的数个执行绪至第一控制单元;
在主执行绪调度器内产生数个执行绪识别符;
在该第一控制单元里处理该等执行绪的第一部分;
从该第一控制单元接收该等执行绪数据至第二控制单元;
从该第二控制单元接收执行绪状态数据至该第一控制单元;以及
从该第二控制单元制造执行绪输出数据。
12. 根据权利要求11所述的在分布式图形处理单元内管理多重执行绪的方法,还包括:
暂存第一数量的该等执行绪在该第一控制单元里;
暂存第二数量的该等执行绪在该第二控制单元里,其中该第一数量大于或等于该第二数量。
13. 根据权利要求11所述的在分布式图形处理单元内管理多重执行绪的方法,还包括在该第一控制单元里预先处理该等执行绪的第二部分。
14. 根据权利要求13所述的在分布式图形处理单元内管理多重执行绪的方法,还包括合并处理过的该等执行绪的该第一部分和预先处理过的该等执行绪的该第二部分。
15. 根据权利要求14所述的在分布式图形处理单元内管理多重执行绪的方法,还包括在该第二控制单元内处理合并数据。
16. 根据权利要求11所述的在分布式图形处理单元内管理多重执行绪的方法,其中,该执行绪状态数据的接收如下之一:
接收回压信号,表示该第二控制单元不再接收任何执行绪;
接收释放信号,表示该第二控制单元内的执行绪已处理完成。
17. 根据权利要求11所述的在分布式图形处理单元内管理多重执行绪的方法,还包括如下之一:
在该第一控制单元内处理纹理执行绪;
在该第二控制单元内处理着色执行绪;
利用该第二控制单元内副执行绪调度器管理该等执行绪;
从该第一控制单元内纹理处理器读取数据至该副执行绪调度器;
从第一控制单元暂存器撷取数据至第二控制单元处理器。
18. 一种在分布式图形处理单元内管理多重执行绪的系统,包括:
数个控制单元,每个该等控制单元包括执行绪暂存器、执行绪处理器、以及执行绪调度器;
第一逻辑电路,用以接收数个执行绪;
第二逻辑电路,用以辨别至少一个该等执行绪;以及
第三逻辑电路,用以协助该等控制单元之间的联络。
19. 根据权利要求18所述的在分布式图形处理单元内管理多重执行绪的系统,其中,该等控制单元包括纹理控制单元或着色控制单元。
20. 根据权利要求19所述的在分布式图形处理单元内管理多重执行绪的系统,其中,该纹理控制单元包括逻辑电路用以执行着色执行绪预先处理。
21. 根据权利要求20所述的在分布式图形处理单元内管理多重执行绪的系统,其中,该纹理控制单元还包括一装置用以合并预先处理过的着色执行绪数据与处理过的纹理执行绪数据。
22. 根据权利要求18所述的在分布式图形处理单元内管理多重执行绪的系统,其中,该等控制单元所用的该等执行绪调度器为主执行绪调度器或副执行绪调度器。
23. 一种在分布式图形处理单元内管理多重执行绪的系统,包括:
第一控制单元,接收具有一序列的数个执行绪,其中该第一控制单元还用以处理该等执行绪的第一部分;以及
第二控制单元,从该第一控制单元接收该等执行绪的第二部分,其中该第二控制单元还用以告知该第一控制单元执行绪处理状态,以及其中该第二控制单元还用以传送符合该序列的处理数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/672,672 US7876328B2 (en) | 2007-02-08 | 2007-02-08 | Managing multiple contexts in a decentralized graphics processing unit |
US11/672,672 | 2007-02-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101261729A true CN101261729A (zh) | 2008-09-10 |
CN101261729B CN101261729B (zh) | 2010-06-16 |
Family
ID=39685455
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101099688A Active CN101261729B (zh) | 2007-02-08 | 2007-06-11 | 在分布式图形处理单元内管理多重执行绪的系统与方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7876328B2 (zh) |
CN (1) | CN101261729B (zh) |
TW (1) | TWI344621B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101686499B (zh) * | 2008-09-22 | 2012-06-13 | 宏达国际电子股份有限公司 | 触发暂存器状态报告及调度请求的方法及相关装置 |
US9704212B2 (en) | 2013-02-07 | 2017-07-11 | Nvidia Corporation | System and method for image processing |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8144149B2 (en) * | 2005-10-14 | 2012-03-27 | Via Technologies, Inc. | System and method for dynamically load balancing multiple shader stages in a shared pool of processing units |
US7844105B2 (en) * | 2007-04-23 | 2010-11-30 | Mitsubishi Electric Research Laboratories, Inc. | Method and system for determining objects poses from range images |
US9582919B2 (en) * | 2009-10-09 | 2017-02-28 | Microsoft Technology Licensing, Llc | Automatic run-time identification of textures |
US8872823B2 (en) * | 2009-10-09 | 2014-10-28 | Microsoft Corporation | Automatic real-time shader modification for texture fetch instrumentation |
US8587594B2 (en) * | 2010-05-21 | 2013-11-19 | International Business Machines Corporation | Allocating resources based on a performance statistic |
US9058675B2 (en) | 2010-05-29 | 2015-06-16 | Intel Corporation | Non-volatile storage for graphics hardware |
US8629867B2 (en) | 2010-06-04 | 2014-01-14 | International Business Machines Corporation | Performing vector multiplication |
US8692825B2 (en) | 2010-06-24 | 2014-04-08 | International Business Machines Corporation | Parallelized streaming accelerated data structure generation |
GB2525778B (en) * | 2013-02-28 | 2020-04-15 | Intel Corp | Context aware power management for graphics devices |
JP6152034B2 (ja) * | 2013-03-22 | 2017-06-21 | 株式会社Screenホールディングス | ラベリング方法、ラベリング装置および欠陥検査装置 |
US11150943B2 (en) * | 2017-04-10 | 2021-10-19 | Intel Corporation | Enabling a single context hardware system to operate as a multi-context system |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6437788B1 (en) | 1999-07-16 | 2002-08-20 | International Business Machines Corporation | Synchronizing graphics texture management in a computer system using threads |
US7173627B2 (en) | 2001-06-29 | 2007-02-06 | Intel Corporation | Apparatus, method and system with a graphics-rendering engine having a graphics context manager |
US6947053B2 (en) | 2001-09-27 | 2005-09-20 | Intel Corporation | Texture engine state variable synchronizer |
US6781588B2 (en) | 2001-09-28 | 2004-08-24 | Intel Corporation | Texture engine memory access synchronizer |
US7673304B2 (en) * | 2003-02-18 | 2010-03-02 | Microsoft Corporation | Multithreaded kernel for graphics processing unit |
ATE487182T1 (de) * | 2003-03-06 | 2010-11-15 | Nxp Bv | Datenverarbeitungssystem mit einem für die verarbeitung von datenflussanwendungen optimierten cache |
US7047337B2 (en) * | 2003-04-24 | 2006-05-16 | International Business Machines Corporation | Concurrent access of shared resources utilizing tracking of request reception and completion order |
US20040255301A1 (en) * | 2003-06-13 | 2004-12-16 | Andrzej Turski | Context association schema for computer system architecture |
US7312801B2 (en) * | 2005-02-25 | 2007-12-25 | Microsoft Corporation | Hardware accelerated blend modes |
US7324113B1 (en) * | 2005-03-09 | 2008-01-29 | Nvidia Corporation | Perspective correction computation optimization |
US8345053B2 (en) * | 2006-09-21 | 2013-01-01 | Qualcomm Incorporated | Graphics processors with parallel scheduling and execution of threads |
-
2007
- 2007-02-08 US US11/672,672 patent/US7876328B2/en active Active
- 2007-06-04 TW TW096119930A patent/TWI344621B/zh active
- 2007-06-11 CN CN2007101099688A patent/CN101261729B/zh active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101686499B (zh) * | 2008-09-22 | 2012-06-13 | 宏达国际电子股份有限公司 | 触发暂存器状态报告及调度请求的方法及相关装置 |
US9704212B2 (en) | 2013-02-07 | 2017-07-11 | Nvidia Corporation | System and method for image processing |
Also Published As
Publication number | Publication date |
---|---|
TWI344621B (en) | 2011-07-01 |
US7876328B2 (en) | 2011-01-25 |
US20080192063A1 (en) | 2008-08-14 |
CN101261729B (zh) | 2010-06-16 |
TW200834463A (en) | 2008-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101261729B (zh) | 在分布式图形处理单元内管理多重执行绪的系统与方法 | |
CN101371247B (zh) | 用于图形处理器的并行阵列结构 | |
KR101422861B1 (ko) | 컴퓨팅 장치 및 컴퓨팅 장치 상에서 가상 머신을 구현하기 위한 컴퓨터 실행 가능 명령들을 저장한 컴퓨터 판독 가능 매체 | |
CN102597950B (zh) | 基于硬件排程gpu工作 | |
CN110704360B (zh) | 一种基于异构fpga数据流的图计算优化方法 | |
US10217183B2 (en) | System, method, and computer program product for simultaneous execution of compute and graphics workloads | |
CN1928918B (zh) | 图形处理装置及于图形处理装置中执行着色操作的方法 | |
CN103019810A (zh) | 具有不同执行优先级的计算任务的调度和管理 | |
CN102870096A (zh) | 子缓冲器对象 | |
KR101609079B1 (ko) | 그래픽 프로세싱 유닛에서의 명령 선별 | |
WO2007149979A2 (en) | Unified virtual addressed register file | |
CN101118643A (zh) | 用于调试图形管线子单元的方法和系统 | |
CN103885893A (zh) | 用于访问内容寻址存储器的技术 | |
US20210343072A1 (en) | Shader binding management in ray tracing | |
CN103885902A (zh) | 用于经由纹理硬件实施存储器访问操作的技术 | |
CN104050706A (zh) | 用于低功率图形渲染的像素着色器旁路 | |
CN101211270A (zh) | 显卡、应用该显卡的虚拟机系统及显示处理方法 | |
CN103885903A (zh) | 用于经由纹理硬件实施存储器访问操作的技术 | |
JP2009505301A (ja) | ベクトル処理用の拡張可能な並列パイプライン浮動小数点数演算ユニット | |
CN103870213A (zh) | 经由管线化的状态包触发性能事件捕获 | |
CN103996216A (zh) | 用于曲面细分和几何着色器的电力高效属性处置 | |
CN103294449B (zh) | 发散操作的预调度重演 | |
US20240005446A1 (en) | Methods, systems, and non-transitory storage media for graphics memory allocation | |
US10896525B2 (en) | Graphics system and method for use of sparse textures | |
CN109558210B (zh) | 一种虚拟机应用主机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 |