CN1643545A - 优化图形处理的系统和方法 - Google Patents

优化图形处理的系统和方法 Download PDF

Info

Publication number
CN1643545A
CN1643545A CNA038057204A CN03805720A CN1643545A CN 1643545 A CN1643545 A CN 1643545A CN A038057204 A CNA038057204 A CN A038057204A CN 03805720 A CN03805720 A CN 03805720A CN 1643545 A CN1643545 A CN 1643545A
Authority
CN
China
Prior art keywords
process unit
graphic process
processor
geometrical
polygonal
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
Application number
CNA038057204A
Other languages
English (en)
Other versions
CN1317682C (zh
Inventor
佐佐木伸夫
山崎刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Interactive Entertainment Inc
Sony Network Entertainment Platform Inc
Original Assignee
Sony Computer Entertainment Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Computer Entertainment Inc filed Critical Sony Computer Entertainment Inc
Publication of CN1643545A publication Critical patent/CN1643545A/zh
Application granted granted Critical
Publication of CN1317682C publication Critical patent/CN1317682C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/393Arrangements for updating the contents of the bit-mapped memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/501Performance criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/52Parallel processing
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/121Frame memory handling using a cache memory

Abstract

一种系统包括几何处理器(502、504、506)和图形处理器(508、510、512)。通信信道(514)允许几何处理器与图形处理器之间的通信。控制处理器(524)可以通过通信信道与几何处理器和图形处理器进行通信。提供一种在计算机系统中处理图形数据的方法以确定几何处理器和图形处理器是否被有效地利用。如果必要的话,选择性地分配或不分配一个或多个几何处理器和图形处理器,以便在执行图形任务时提高图形处理电路的效率。

Description

优化图形处理的系统和方法
技术领域
本发明通常涉及优化图形处理的方法,尤其涉及一种对于多处理器系统的优化图形处理的方法。
背景技术
当前的计算机系统用于生成图形图像是普通的。这是专业化并且计算昂贵的过程。因此,许多计算机系统利用特定的硬件来执行图形处理的变化部分。
图1示出了这样的当前系统的一个示例。主处理器100是通用处理器。几何处理器102是主处理器100内的特定子处理器,用于在考虑例如透视之类的问题的同时执行将三维图像转换成二维图像所必需的普通变换。这种几何处理器可被用于其他的普通三维图形计算。
几何处理器102也可以与主处理器100分离,或者可以在主处理器100上作为软件程序来执行。几何处理器102的最终结果是显示列表,该显示列表包含了用于创建图形所必需的信息。
典型地,显示列表将包含用于创建多边形的信息。通常三角形为多边形,但是也可能是其他的多边形。显示列表将包含所呈现的多边形的类型,以及生成该多边形所必需的信息。在这种情况下,三角形将被显示出,并且有关该三角形的每个顶点的信息也将包含在显示列表中。
总线104是几何处理器102与图形处理器106之间的通信信道。图形处理器106是用于呈现显示列表的专用电路。图形处理器106将包括多个子电路。输入缓冲器108缓存显示列表。
数字微分分析器112(下文为“DDA 112”)计算多边形的顶点之间的连线。DDA 112包括DDA建立引擎。像素处理器114执行多种功能。主要地,它计算多边形内的每个像素的最终RGB值。这一步骤称作呈现。
在呈现多边形的处理中,像素处理器114将执行纹理处理步骤。确定像素的RGB的部分将取决于对于那个特定多边形已经选择的纹理。通过像素处理器114将这一纹理以纹理图的形式应用到多边形。
帧缓冲器116是动态随机存取存储器或者DRAM,用于累积从多边形重建的帧(frame),直到产生整个帧或场(field)(在双倍缓冲的情况下)。随后通过总线118将那个帧传递到数模转换器,最后传递到监视器。帧缓冲器116将从像素处理器114接收数据,但是像素处理器114也充当帧缓冲器116。
纹理缓冲器118和DRAM帧缓冲器120可位于像素处理器114或帧缓冲器116中,或者与两者分离。该像素处理器通常将从这些缓冲器读取和写入这些缓冲器,如果需要的话,这些缓冲器根据帧缓冲器116被更新。
在计算效率方面,当人们使用上述装置尝试呈现整个帧时可能出现几个问题。例如,当呈现游戏中的场景时,游戏将具有较少细节的背景、较多细节的中景、以及最多细节的前景。两种极端,即背景和前景会产生两种不同的情况。在第一种情况中,使用少量的非常大的多边形来生成背景形状。在第二种情况中,使用大量的小的多边形来生成详细的前景形状。这两种情况中的每一种具有不同的问题。
在第一种情况中处理帧的背景需要处理少量的大的多边形。几何变换所需的处理时间量取决于将被处理的顶点的数目。因此,用于处理背景多边形的几何处理器102所需的处理时间量将相对较短。然而,图形处理器106对于大的多边形具有多个问题。
首先,几何处理器将比图形处理器106能够呈现大尺寸多边形要快得多地发出显示列表。因此,几何处理器在图形处理器106赶上的同时必须保持闲置。
当处理大的多边形时,除了呈现的速度较慢之外,在图形处理器106内会发生其他瓶颈。大的多边形将覆盖纹理地图的大面积。如果这一面积比纹理缓冲器118的尺寸大得多,则通常将发生“纹理丢失”。
像素处理器114在纹理缓冲器118被帧缓冲器内的纹理地图更新的同时将保持闲置,从而可以将适当的纹理应用到多边形的那个部分。而且,大的多边形将覆盖许多DRAM页。当多边形的呈现到达DRAM页的底部时,出现“DRAM页中断”。DRAM页缓冲器120必须将它的内容放置回帧缓冲器中,并且将新的页从帧缓冲器更新到DRAM页缓冲器。在这个处理期间像素处理器114将保持闲置。
大的多边形将频繁出现那样的页中断,因为多边形的大小可能比DRAM页缓冲器的大小大许多倍,因此对于每次呈现时导致DRAM页中断多次。因此,在图形处理器中少量的大的多边形即将处理时,具有大量的减速源由。
图2示出了图形处理器和几何处理器管道尝试处理少量的大的多边形的结果。图形处理器能够在一定时间内以可用或更少的计算能力来处理多边形或者其他图形对象。条202示出了对于给定任务以几何处理器的处理速度处理背景多边形或其他对象所需的计算时间量。图形处理器106由条204表示。阴影条206示出了超过可用的计算时间的处理背景多边形所需的计算时间量。图2清楚地示出了几何处理器102在图形处理器106赶上由阴影条206所示的时间量的同时将保持闲置。因此,图形处理器将起到瓶颈的作用。
在第二种相反的情况中,必须处理和呈现大量小的多边形。这就产生了不同的瓶颈。大量的小的多边形提供更大数目的顶点。因此,几何处理将花费比上述情况长得多的时间。
图3图解说明了这种情况。条302图解说明了以几何处理器的处理速度处理前景多边形或其他图形对象所需的计算时间量。阴影条304示出了几何处理器为了“赶上”图形处理器而必须计算的额外时间量。
图形处理器106将能够比在第一种情况中快得多地呈现前景多边形。这既是因为每个多边形具有更少数目的像素要呈现,又是因为小尺寸的多边形将减少DRAM页中断或纹理丢失的可能性。该增加的处理速度可以用条306看出,条306图解说明了呈现大量的小的多边形需要的减少的计算时间量。而且,阴影条304表示在几何处理器102处理它的计算背景的同时图形处理器106必须保持闲置的时间量。因此,在第二种情况中,几何处理器起到瓶颈的作用。
通过连续使用诸如合格的呈现图像等的更高分辨率图形会恶化上面的问题。那些图像是以如此高分辨率绘制的,其中多边形连线是不可视的并且产生平滑曲线。
图4示出了为计算优化情况的第三种情况。在所示出的情况中,几何处理器102由条402示出用于在给定的时间内处理它的所有显示列表。图形处理器106由条404示出用于在相同时间量中处理和呈现它的所有多边形。因此,几何处理器-图形处理器管道上没有瓶颈。这是负载平衡条件。
发明内容
计算机系统的新结构将包括多个几何处理器和多个图形处理器。这种装置的出现允许用新方式来处理上述问题和由于这种多处理器系统引起的其他问题。
本发明的一方面是一种优化图形处理的方法。优选方法包括分配第一数目的几何处理器来执行至少第一部分的图形任务和分配第二数目的图形处理器来执行第二部分的图形任务。第一数目的几何处理器的数量可以与第二数目的图形处理器的数量相同或不同。最好是在一段时间期间从第二数目的图形处理器收集性能数据,并且用算法分析所收集的性能数据。在所述优选方法中的另一个处理是根据所收集的性能数据的分析结果来改变被分配到图形任务的第一数目的几何处理器和被分配到图形任务的第二数目的图形处理器中的至少一个。
另一种优选方法也包括将第一数目的几何处理器分配给图形任务和将第二数目的图形处理器分配给图形任务。在优选实施例中,由第一数目的几何处理器执行的图形任务部分包括将对象数据变换成多边形的顶点数据,而由第二数目的图形处理器执行的图形测试部分包括将所述多边形呈现到缓冲存储器。
所呈现的多边形可以包括多个像素。所述方法也可以包括在一段时间期间从第二数目的图形处理器收集性能数据,并且随后用算法分析所收集的性能数据。所述方法最好包括:根据所收集的性能数据的分析结果,通过增加将被呈现的对象的镶嵌布置来增加由第一数目的几何处理器生成的多边形的数目和减少由第一数目的几何处理器生成的多边形的平均大小。
另一种优选方法包括将第一数目的几何处理器分配给图形任务和将第二数目的图形处理器分配给图形任务。最好是几何处理器和图形处理器执行不同部分的图形任务,所述图形任务包括创建多边形(例如,将对象数据变换成多边形顶点数据)和在缓冲存储器中呈现多边形。最好是在一段时间期间从第二数目的图形处理器收集性能数据,并且随后用算法分析所收集的性能数据。所述方法还包括:根据所收集的性能数据的分析结果,通过减少将被生成的对象的镶嵌布置来减少由第一数目的几何处理器生成的多边形的数目和增加由第一数目的几何处理器生成的多边形的平均大小。
另一种优选方法也包括将第一数目的几何处理器分配给图形任务和将第二数目的图形处理器分配给图形任务。最好是,第一数目的几何处理器执行第一部分的图形任务,第二数目的图形处理器执行第二部分的图形任务。几何处理器可以将三维对象数据变换成包括x、y和z坐标的多边形的顶点数据。如果z坐标不存在或不必要,则几何处理器也仅生成在x和y坐标上的多边形的顶点数据。
图形处理器可以被用来将多边形呈现到缓冲存储器。可以在一段时间期间从第二数目的图形处理器收集性能数据,并且可以用算法对其进行分析。
所述方法也可以包括改变下列中的至少一个,即,被分配到图形任务的第一数目的几何处理器、被分配到图形任务的第二数据的图形处理器、以及由第一数目的几何处理器应用到图形对象的镶嵌布置的数量中。
优化图形处理的另一种优选方法包括将第一数目的几何处理器分配给图形任务和将第二数目的图形处理器分配给图形任务。在一段时间期间从第二数目的图形处理器收集性能数据,并且随后用算法对其进行分析。在多边形数据被发送到图形处理器之前,所述方法随后可以空间分类由第一数目的几何处理器处理的多边形。
用于在具有图形处理电路的计算机系统中处理图形数据的另一种优选方法包括利用至少一个几何处理器来执行至少一部分图形任务和利用至少一个图形处理器来执行至少另一部分图形任务。所述优选方法还包括确定所述至少一个几何处理器和至少一个图形处理器是否被有效地利用;如果必要的话,选择性地分配或不分配一个或多个几何处理器和图形处理器,以便提高所述图形处理电路在执行图形任务时的效率。
最好是,利用至少一个几何处理器来执行至少一部分图形任务包括执行对象到多边形的顶点数据的3D到2D变换。也最好是,利用至少一个图形处理器来执行至少另一部分图形任务包括:将所述多边形顶点数据呈现到缓冲存储器。
所述多边形最好包括多个像素。确定所述至少一个几何处理器和至少一个图形处理器是否被有效地利用可以包括:计算被呈现的多边形的数量和平均大小。根据优选方法,计算所呈现的多边形的平均大小包括:对所呈现的像素的数量进行计数,并且用所呈现的多边形的数量进行划分。
还最好是,所述方法包括:提供缓冲器组、提供将多个几何处理器连接到缓冲器组的第一十字条信道、和提供将多个的几何处理器连接到缓冲器组的第二十字条信道。所述缓冲器组可以具有初始配置,所述第一和第二十字条信道也可以具有初始配置。
最好是,选择性地分配或不分配一个或多个几何处理器和图形处理器包括:对于第一十字条信道计算新的配置,在对于第二十字条信道计算新的配置时,对于所述缓冲器组计算新的配置。随后对所述缓冲器组以及第一和第二十字条信道重新配置,以便得到新的配置。
本发明的另一方面涉及一种具有用于处理器图形数据的图形处理电路的计算机系统。最好是,所述计算机系统包括用于至少部分执行至少一部分图形任务的至少一个几何处理器。也提供至少一个图形处理器用于至少部分执行至少另一部分所述图形任务;
也提供通信信道用于允许在所述至少一个几何处理器与至少一个图形处理器之间的进行通信。
控制处理器被安排用于通过所述通信信道与所述几何处理器和图形处理器进行通信。所述控制处理器最好确定所述至少一个几何处理器和至少一个图形处理器是否被有效地利用,如果必要的话,选择性地分配或不分配一个或多个几何处理器和图形处理器,以便提高所述图形处理电路在执行所述图形任务时的效率。
在优选实施例中,所述至少一个几何处理器包括多个几何处理器,并且所述至少一个图形处理器包括多个图形处理器。最好是,所述多个几何处理器执行对象到多边形的顶点数据的3D到2D变换。还最好是,所述多个图形处理器将所述多边形呈现到缓冲存储器。所述多边形包括多个像素。
所述通信信道最好包括:具有十字条(cross-bar)结构的第一信道;至少一个缓冲存储器,被连接用于通过所述第一信道从所述多个几何处理器接收数据;和具有一对一十字条结构的第二信道,被安排用于允许所述多个图形处理器与所述至少一个缓冲存储器之间的通信。
在优选实施例中,所述通信信道有助于所述多个图形处理器和所述控制处理器之间的性能数据的通信。
当鉴于优选实施例和附图的下列详细描述进行考虑时,本发明的上面特征和优点将变得更好理解。
附图说明
图1是现有技术的图形处理装置的图;
图2是在一种情况下现有技术的图形处理装置内的计算负载的图;
图3是在另一种情况下现有技术的图形处理装置的计算负载的图;
图4是在负载平衡的条件下现有技术的图形处理装置的计算负载的图;
图5是本发明的图形处理装置的图;
图6是本发明实施例的流程图;
图7是本发明的替换实施例的流程图;以及
图8是图形处理装置的一个实施例的更详细图。
具体实施方式
图5图解说明了一种可能发生图形处理优化的图形处理装置500。多个几何处理器501可以包括几何处理器502、504和506,它们都类似于几何处理器102。多个图形处理器507可以包括类似于图形处理器106的图形处理器508、510和512。几何处理器502、504和506通过可配置的通信信道和缓冲器514连接到图形处理器508、510和512。
可配置的通信信道和缓冲器514允许每个几何处理器将数据发送到图形装置500中的每个图形处理器。图形处理器508、510和512中的每一个具有可通信连接到呈现控制处理器522的通信信道516、518和520。通信信道516、518和520将性能数据从图形处理器508、510和512传送到呈现控制处理器522。
这两组处理器不以预定的管道组连接。呈现控制处理器通过反馈信道526连接到控制处理器524。控制处理器524通过处理器分配信道530可操作地连接到几何处理器502、504和506。控制处理器524通过控制信号信道528也可操作地连接到可配置的通信信道和缓冲器514。
在操作中,将所定义的3-D对象传送到几何处理器502、504和506以便被变换成原始图形的2-D显示列表。随后通过可配置的通信信道和缓冲器514将所述显示列表传送到图形处理器508、510和512。图5的黑实线箭头示出了这种数据传送。图形处理器508、510和512呈现原始图形的2-D显示列表,并且可以在呈现的同时或者在后来的传送中应用纹理和阴影(请参考图8)。图形任务可以被认为是在帧缓冲器中将所定义的一个或多个3-D对象变换成可显示的像素图。“变换”可以包括3-D对象到多边形的顶点数据的显示列表的变换和那些数据的随后呈现到像素物质的变换。
图形处理器508、510和512通过通信信道516、518和520将性能数据传送到呈现控制处理器522。该性能数据在呈现控制处理器522内被处理。在反馈信道526上发送结果。该反馈可以采用高电平性能数据和/或将被控制处理器524执行的指定命令的形式。随后控制处理器524从呈现控制处理器522中取出反馈数据,并且使用它来执行可配置的通信信道和缓冲器514的处理器分配和配置。注意在图5中,空心箭头表示控制信号而不是数据信号。
图8示出了在图5中所示的图形处理器装置500的更详细的实施例。在一个实施例中,呈现控制处理器522和控制处理器524是单个逻辑控制处理器。
在另一个实施例中,控制处理器524和呈现控制处理器522是单集成电路中逻辑上截然不同的处理器。在另一个实施例中,控制处理器524和呈现控制处理器522在分离的集成电路上。
在另一个实施例中,呈现控制处理器522仅充当一个数据穿过通信信道516、518和520的“通路”,并且控制处理器524执行所有的分析和控制功能。在再一个实施例中,呈现控制处理器522执行大部分的分析和控制判定并且通过反馈信道526将它们发送到控制处理器524,该控制处理器524仅充当这些命令的通道。
在一个实施例中,几何处理器502、504和506可以是主处理器的子处理器,该主处理器动态专用于诸如几何变换的特定任务。在另一个实施例中,几何处理器502、504和506是被动态分配用以几何变换的独立的通用处理器。
在一个实施例中,几何处理器502、504和506是对于那些几何变换操作的专用处理器。那些专用处理器既可以在主处理器内也可以是独立的处理器。几何处理器502、504和506不必是相同的类型。例如,几何处理器502可以是子处理器,而几何处理器504可以是执行几何变换的独立的处理器。
所示的图形处理装置500具有三个几何处理器。图形处理装置500可以具有任意多个几何处理器。在优选实施例中,使用八个几何处理器。不论特殊实现或结构,几何处理器501的数目是在给定时间执行几何变换以及类似于图形任务的离散的逻辑处理单元的数目。
所示的图形处理装置500具有三个图形处理器508、510和512。图形处理装置500可以具有任意多个图形处理器。在优选实施例中,使用八个图形处理器。在优选实施例中,每个图形处理器508、510和512在不同的集成电路上。在可替换的实施例中,两个或更多图形处理器502、504和506在单个集成电路上。不论特殊实现或结构,图形处理器507的数目是在给定时间执行呈现以及图形任务的其他相关计算的离散逻辑处理单元的数目。
不必有相同数目的几何处理器501和图形处理器507。这种灵活的结构允许不同数目的几何处理器和图形处理器。
图6A示出了本发明的一个实施例的流程图。图6A所示的方法示出了图5所示的图形处理装置500如何被优化来通过利用多个可用的几何处理器和图形处理器的优点实现负载平衡。通过利用可配置的通信信道和缓冲器514的优点,将一个以上的几何处理器或图形处理器应用到多边形的绘图和呈现或者图形任务避免了现有技术的瓶颈。图6A的方法可以称作配置负载平衡。
在步骤601,呈现控制处理器522从多个图形处理器501收集性能数据。在步骤602,呈现控制处理器分析所述性能数据。由呈现控制处理器522进行的性能数据的收集发生一段时间期间。在优选实施例中,该一段时间期间相当于10000个时钟周期。然而,明显的是,可以应用几乎任意不同的时间期间。但是,配置负载平衡是一种统计处理,因此,该时间期间必须大得足以收集统计上非常多的数据组。
该性能数据的分析602包括确定图形处理器507的数目是否过载、或者几何处理器501的数目是否过载、或者几何处理器501的数目和图形处理器507的数目是否负载平衡。如果性能数据的分析步骤602发现图形处理器507的数目与几何处理器501的数目负载平衡,则对于一段时间再次执行步骤601。
然而,如果对于图形处理器507的数目计算负载是过载,则在步骤603,呈现控制处理器522将反馈发送到控制处理器524。在步骤604,在确定要增加图形处理器的数目之后,控制处理器524增加处理一组图形任务的图形处理器的数目。
在下一步骤605中,控制处理器524在确定配置之后修改可配置的通信信道和缓冲器514。几何处理器的显示列表结果被分解并被发送到一个以上的图形处理器,从而增加了处理该问题的图形处理器的数目。通过在更多个图形处理器之间分割大的多边形的呈现,在多个图形处理器之间共享计算负载。在多个图形处理器内执行呈现的时间总量被减少了。因此,几何处理器必须在更少时间上保持闲置。
如果如在步骤602所确定的几何处理器的计算负载是过载,则下一步骤是步骤606。这种情况的一个示例是呈现大量的小的多边形。这引起了如图3所示的问题。为了解决这些问题,在步骤606,呈现控制处理器将合适的反馈信息发送至控制处理器524。在步骤607,在确定增加多少几何处理器之后,控制处理器524增加从事图形任务的几何处理器的数目。因此,计算工作在大量的几何处理器当中共享。
在步骤608,在确定新的配置之后,控制处理器524修改可配置的通信信道和缓冲器514来创建多个显示列表缓冲器,所述多个显示列表缓冲器具有加入单个显示列表缓冲器的多个几何处理器的输出。该显示列表缓冲器是FIFO缓冲器,或者先进/先出缓冲器。这就允许串行化显示列表,即允许显示列表随后被单个图形处理器处理。
因此,根据在步骤602中确定的分支,增加从事对象的图形处理器的数目,或者增加从事对象的几何处理器的数目。因此,能够实现负载平衡。建立了反馈环路,其中性能数据被呈现控制处理器522在步骤601一直监视。因此,如果需要呈现的对象发生变化,则反馈环路自动调整绘制对象所需的计算负载的分配。
图6B示出了步骤602的一个实施例。步骤610将在一段时间内呈现的多边形的数目与多边形的低阈值数目进行比较。该多边形的低阈值数目可以通过许多不同的方法来确定。在一个实施例中,该多边形的低阈值数目是在图形程序的编程期间通过调整(turning)而确定的。
在另一个实施例中,通过算法来确定多边形的低阈值数目,在该算法中能够实施任何次数。当然,如此算法也可以在编程期间调整。步骤611询问比较的结果。如果存在比多边形的低阈值数目更多的多边形,则进行步骤612。步骤612将在一段时间期间内呈现的多边形的平均大小与多边形的高阈值平均大小进行比较。而且,如此高阈值平均大小既可以通过预先调整来确定,也可以通过以多种方式中的任意一种方式实施的算法来确定,所述方式也可以是在图形程序的编程期间本身和自行调整的。
步骤613查询步骤612的结果。如果步骤613发现所呈现的多边形的平均大小大于多边形的高阈值平均大小,则执行步骤614,表示图形处理器过载。明显地,然后执行步骤603(请参考图6A)。然而,如果步骤611的结果是否定的,则执行步骤615。
步骤615确定是否具有多于多边形的高阈值数目的多边形。如果结果是肯定的,则执行步骤616,将在一段时间期间呈现的多边形的平均大小与低阈值平均大小进行比较。而且,类似于高阈值平均多边形大小,低阈值平均多边形大小是在计算机图形程序的编程期间由调整程序的程序员或者在计算机图形程序的运行期间通过算法预先确定的。所述算法可以具有许多实施中的一种,并且可以在图形程序的初始编程期间本身和自行调整。
步骤617查询步骤616的结果。如果在一段时间期间所呈现的多边形的平均大小小于多边形的低阈值平均大小,则执行步骤617,表示几何处理器过载。然后,明显地,执行步骤606(请参考图6A)。如果步骤615确定的结果是没有多于多边形的高阈值数目的多边形,则执行步骤619,表示几何处理器和图形处理器负载平衡。而且,如先前所提到的,然后再次执行步骤610(请参考图6A)。
注意,这仅仅是由呈现控制处理器522对性能数据执行的许多种可能分析的一个实施例。可以查询其他变量,并且可以应用不同的阈值。例如,在步骤601可以收集有关DRAM页中断的数目和纹理丢失的数目的数据。
在步骤602,大于阈值电平的大量的年结尾页中断(year end page breaks)可被用作测试被分配给图形任务的图形处理器507的数目的过载的部分。类似地,可以将一段时间期间的纹理丢失的数目与阈值电平进行比较作为一种用于测试图形处理器507的数目是否是计算过载的方法。在所有情况下,测试数目是否大于阈值数目。而且,可以通过调整、算法或通过所调整的算法来确定阈值数目。
存在将配置负载平衡应用到图形优化的不优化的情况。如上所述,收集性能数据的时间期间必须足够长以收集统计上相当多的数据量。然而,如果多边形的特性(诸如对于对象正被呈现的多边形的数目以及它们的平均面积或大小)正在快速变化时,则时间期间必须减少,以便实现改变处理器以及缓冲器和信道的配置的反馈环路变化足够快。然而,在步骤602中的性能数据的分析,以及在步骤603、604和605或者在步骤606、607和608执行的确定和重新配置需要重要数量的时间和计算。因此,在正在呈现的帧快速改变多边形特性的形势下,由于计算和重新配置的相关滞后对可以多快形成反馈环路进行了限制。
例如一个特别示例,如在计算机游戏中看到的撞车,在背景中开始的但是朝向前景快速飞过的破碎窗户的碎片将导致对于该图形对象的多边形特性的快速变化组。那样的图形对象的图形处理使用配置负载平衡方法将变得更加困难。解决这个问题的一种办法是使进行收集的时间期间是可变的,并且也可以被算法确定。这与它被预先确定(通过在编程期间调整)是相反的。
然而,数据的统计收集、所述数据的分析、新配置的确定、以及几何处理器和图形处理器数目的重新配置、以及与所述处理器相关的信道和缓冲器的上述方法具有相关的滞后时间,所述滞后时间限制了可变时间期间的使用。
另一种方法是预先确定分析步骤602将能够从一组配置中选择哪一个。这实际上减少了确定几何处理器501的数目、图形处理器507的数目、以及配置信道和缓冲器514的配置的计算负载。因此,对于配置复杂平衡方法的如此预定配置方式容许响应在反馈环路更短的滞后时间,因此能够更好地处理快速改变多边形特性的图形对象。
对于负载平衡几何处理器501的数目和图形处理器507的数目,有替换上述方法的方法。一种镶嵌布置方法。镶嵌布置是将要被显示的图形对象转换成一组多边形的处理器。镶嵌布置通常在数个几何处理器501的数目内执行。镶嵌布置的量可以增加或减少。
增加镶嵌布置量对于特定图形对象增加了将被呈现的多边形的数目,并且对于特定多边形减少了将被呈现的多边形的平均大小。减少镶嵌布置对于呈现特定图形对象减少了将被呈现的多边形的数目,并且当呈现特定图形对象时增加了将被呈现的多边形的平均大小。
当镶嵌布置是对于优化计算机图形的特定有用的方法时,存在几种情况。图7A示出了收集平均多边形大小的步骤701。接着是步骤702,在一段时间期间收集DRAM页中断的数目。接着是步骤703,在一段时间期间收集纹理丢失的数目。
步骤704将平均多边形大小与高阈值多边形大小进行比较。步骤705将DRAM页中断的数目与DRAM页中断的高阈值数目进行比较。步骤706将纹理丢失的数目与纹理丢失的高阈值数目进行比较。如果对于测试704、705和706中任意步骤,一段时间期间上的值小于高阈值,则在镶嵌布置的数量上不发生变化,如在步骤707、708和709所示。然而,如果在每种情况下,一段时间期间上的值在高阈值之上,则进行步骤710,步骤710确定镶嵌布置的数量增加。
在步骤710增加的镶嵌布置的数量取决于可以在广泛的实现中变化的算法。然而,步骤711的棋盘形步骤的增加将导致在下一段时间期间内的小平均多边形大小,这将导致页中断的数目的减少和下一段时间期间上的纹理丢失的数目的减少。
图7B示出了减少镶嵌布置的过程。注意,这是对于不同理由实现的。如果对象的镶嵌布置如此大以致多边形的结果平均大小与像素大小一样小或者小于像素大小,则多边形顶点内的信息将被丢失。因此,镶嵌布置将出现,大量的顶点信息将被产生,但是这一信息在呈现期间不被使用,这在计算上效率非常低。因此,步骤722示出了在一段时间期间将平均多边形大小与图形系统的特定实现的像素大小进行比较。
步骤720在一段时间期间收集平均多边形大小。步骤724查询步骤722的结果。如果多边形大小小于或等于像素大小,则在步骤726计算减少的镶嵌布置的数量。如果多边形大小大于像素大小,则在步骤724不发生变化。在步骤728减少对于图形任务的几何处理器501中的镶嵌布置的数量。注意,可以使用乘数或标量或者像素值使像素值增加一些量,以便增加安全性的边缘并且避免丢失的顶点信息。
即使当图形优化的负载平衡配置方法和镶嵌布置方法看起来相互矛盾,也可以同时应用它们。例如,在几何处理器将结果发送至一个图形处理器的情况下,该几何处理器可以处理超过100000个多边形。在这个示例中,多边形可能太小而不能由像素来求解。因此,在该情况下,尽管看起来矛盾,但是人们可以按照图7B的镶嵌布置方法减少镶嵌布置的数量来增加多边形大小。
然而,这将在一段时间期间使平均多边形大小有小的增加使将被呈现的多边形的数量有小的减少。看起来不会影响十字条(cross-bar)信道和缓冲器514的当前配置,该十字条信道和缓冲器514给出两个几何引擎-一种图形处理器配置。
类似地,在一个几何处理器将它的输出发送至两个图形处理器的情况中,该几何处理器可以处理1210(one two ten)个多边形。在这种情况下,当然期望大的多边形可能导致额外的页中断和纹理丢失,这将引起增加的计算负载。因此,图7A的镶嵌布置方法的应用将增加将被显示的图形对象或对象的镶嵌布置,将增加多边形的数目和减少图像任务中的这些多边形的平均大小。
然而,图7A的镶嵌布置方法的应用例如仅将要被显示的多边形的数目增加到100个多边形。与通过图6A和6B的配置方法触发两个图形处理器-一种图形处理器配置中的变化所需的变化相比较,在一段时间期间中将被呈现的多边形的数目以及这些多边形的平均大小上的这种变化再次为较小。因此,对于图形优化的负载平衡的配置方法和棋盘形方法不是互相矛盾的。该配置方法比可变镶嵌布置方法处理更大数量级的多边形特性。
图8包含与图形处理器装置500相同的组件。相同标记的元件是相似的。以无组成部件的形式示出了可配置的通信信道和缓冲器514。
分割和组合十字信道808将几何处理器502、504和506连接到DLFIFO缓冲器810。控制处理器524通过几何处理器分配通信信道814控制几何处理器502、504和506。控制处理器524通过缓冲器分配信道816控制通信信道808。控制处理器524也通过缓冲器分配信道816控制显示列表FIFO缓冲器810。
图形处理器508、510和512通过一对一十字条信道812连接到DLFIFO缓冲器810。然而,它们所示为更详细。呈现控制处理器522从图形处理器508、510和512收集性能数据,并且通过反馈信道526将其发送至控制处理器524。
分割和组合十字条信道808是可重新配置的,因此诸如几何处理器502的单个几何处理器可以使它的输出显示列表被发送至两个或更多个DLFIFO缓冲器810。或者,两个或更多个几何处理器,例如几何处理器502和几何处理器504可以使它们的显示列表被十字条信道组合成单个DLFIFO缓冲器810。
相反,一对一十字条信道812不能分割或组合在DLFIFO缓冲器810中得到的串行化显示列表,而能够仅将一个FLFIFO缓冲器810的串行化显示列表与诸如图形处理器508的一个图形处理器进行通信。一对一十字条信道是输入/输出ASIC,或者特定用途集成电路。它将由通信信道818进行控制。
从图形处理器508、510和512发送的性能数据取决于图形处理器的结构。如图所示,除了附加了多路控制器820、822和824,图形处理器508、510和512类似于图形处理器106。例如,图形处理器508类似于图形处理器108。图形处理器508具有输入缓冲器826。多路控制器820连接到输入缓冲器826。DDA 828连接到多路控制器820。像素处理器830从DDA 828接收数据。纹理缓冲器832和DRAM页缓冲器834都与像素处理器830通信。帧缓冲器836与纹理缓冲器832和834通信。图形处理器510和512被同样地纹理。
图形处理器508的每个组件将控制信息通信到呈现控制处理器522。输入缓冲器826将它之内的数据量通信到呈现控制处理器522。多路控制器820将通路的数目通信到呈现控制处理器522。
DDA 828将DDA正在绘制的多边形的大小通信到呈现控制处理器522。注意,在许多种实现中,DDA 828的建立引擎将通信要被呈现的多边形的大小。像素处理器830将纹理读取时间通信到呈现控制处理器522。
最后,当DRAM页中断发生时,帧缓冲器836通信到呈现控制处理器522。图形处理器510和512中的每个相同组件同样将相似的信息通信到呈现控制处理器522。呈现控制处理器522处理从图形处理器508、510和512馈送到它的信息,并且生成对于如图5所示的控制处理器524反馈。
在操作中,缓冲器分配通信信道816允许控制处理器524对于由几何处理器生成的显示列表指定存储器的面积以便用作缓冲器。这些缓冲器可以在单个存储器内或者在分布在不同的存储器当中。通信信道818允许控制处理器524利用通信信道812的十字条结构将结果从几何处理器502、504和506引导至图形处理器508、510和512。多路控制器820允许多次呈现相同的多边形。
图形处理器装置800的上述结构,特别是图形处理器508、510和512的内部结构图解说明了将由呈现控制处理器522接收的性能数据的种类。这种性能数据包括输入缓冲器内的数据量、由多路控制器对多边形进行的通路的数目、由数字微分分析器或者DDA绘制的多边形的大小、是否发生纹理缓冲器丢失和是否发生DRAM页缓冲器丢失。可以使用该信息来更准确地确定图形处理器内的计算负载。它也容许替换的优化。
例如,虽然小的多边形较小可能落在确定在帧缓冲器中的DRAM页中断的线上,但是仍可能如此。如果呈现控制处理器522接收表示许多页中断的页中断信息和表示小的多边形大小的平均多边形大小信息,呈现控制处理器522可以指示控制处理器524“删减(clip)”该小的多边形。换句话说,将不会呈现出在一个DRAM页上的小的多边形的更小部分,同时将呈现出在另一DRAM页上的小的多边形的较大部分。对于小的多边形,图形质量的降低相对于计算效率的优点来说是较少的。
在类似的情况下发生独立的图形处理器优化技术而不是删减。虽然对于组合大量DRAM页中断和纹理丢失的小的多边形大小通常发生删减,但是如果条件包括尤其大量的小的多边形并且小的多边形关于帧缓冲器是随机或伪随机分配的,则需要非常大的计算负载。
这是由于DRAM页中断的数目剧烈增加,否则或者可选地要求DRAM页交换。如果正在显示的大量多边形在帧缓冲器830中被随机分配,则DRAM存储器的页将被一直交换进和交换出(swap in and out),从而不管帧缓冲器830的任意宽的带宽,实质上速度将减慢。
再次,实施反馈环路的概念,人们可以通过“平铺(tiling)”来解决这个问题。这是帧缓冲器的页的重要的空间串行化。取代于以取决于初始将被显示的三维对象的顺序呈现将被呈现的对象,在对象被减少为多边形之后,按顺序方式来重新排序将被处理的单个帧的多边形。例如,从左到右,然后从上到下。
为了图解说明,考虑将图形对象呈现成像树一样。在图形装置800的通常操作中,按照多边形在树中出现的顺序来呈现该多边形。在空间串行化之后,将一页接一页地呈现帧,而不管树对象的多边形顺序如何。因此在增加一些用于重新排序的计算时间的同时,平铺导致在所测试的特定条件下计算效率的实质性的增加。
多路控制器820是图1中最初未示出的特殊组件。它利用帧缓冲器836与像素处理器830之间的宽的带宽的优点,以及图形处理器508中的相对较短的总管道来允许多路呈现。例如,第一呈现通路将绘制和填充多边形,第二呈现通路将对其进行纹理处理,第三呈现通路将对其加阴影。可以使用一个、两个或三个通路。
该多路控制器820允许某种类型的预测性负载平衡。该预测性负载平衡取决于多路单元必须具有的大量信息。该大量信息至少包括输入缓冲器826填满的百分比、由多路控制器820形成的通路的数目、已经完成的当前多边形的呈现的百分比、以及正在馈送串行显示列表至图形处理器508的DLFIFO缓冲器810的缓冲器中的多边形的数目。
当对于输入缓冲器需要更多数据时,该信息将允许呈现控制处理器522或控制处理器524进行估计,从而触发几何处理器起动或开始将更多对象变换成原始多边形的显示列表,或者将更多几何处理器分配给已经正在进行的图形任务。虽然用于执行该预测性模式平衡的信息的特征与在配置负载平衡和镶嵌布置优化中使用的信息的特征不同,但是它仍允许进行图形处理优化。
尽管这里已经参考特定实施例描述了本发明,但是应当理解这些实施例仅用于图解说明本发明的原理和应用。因此应当理解在不背离由所附权利要求定义的本发明的精神和范围的情况下,可以对图解性实施例进行许多修改并且可以设计其他结构。
工业实用性
本发明通常可应用于优化图形处理的方法,尤其可应用于对于多处理器系统的优化图形处理的方法。

Claims (25)

1.一种优化图形处理的方法,包括:
a)将第一数目的几何处理器分配给图形任务和将第二数目的图形处理器分配给图形任务;
b)在一段时间期间从第二数目的图形处理器收集性能数据;
c)用算法分析所收集的性能数据;和
d)根据所收集的性能数据的分析结果来改变被分配给特定计算机图形任务的第一数目的几何处理器和被分配给特定计算机图形任务的第二数目的图形处理器中的至少一个。
2.如权利要求1所述的方法,其中所述第一数目的几何处理器将对象数据变换成多边形的顶点数据,并且所述第二数目的图形处理器将所述多边形呈现到缓冲存储器,在一段时间期间收集性能数据包括:
a)对所呈现的多边形的数目进行计数;和
b)计算所呈现的多边形的平均大小。
3.如权利要求2所述的方法,其中所呈现的多边形包括多个像素,计算所呈现的多边形的平均大小包括:对所呈现的像素的数目计数并且划分所呈现的多边形的数目。
4.如权利要求3所述的方法,其中所述分析所收集的性能数据包括:
a)查找小于低阈值数目的多边形的多边形的数目;
b)查找大于高阈值平均大小的平均大小;和
c)确定
i)减少被分配给图形任务的第一数目的图形处理器,或
ii)增加被分配给图形任务的第二数目的图形处理器,或
iii)减少第一数目的几何处理器和增加第二数目的图形处理器。
5.如权利要求4所述的方法,其中改变第一数目的几何处理器和第二数目的图形处理器包括:
a)减少第一数目的几何处理器,或
b)增加第二数目的图形处理器,或
c)减少第一数目的几何处理器和增加第二数目的图形处理器。
6.如权利要求3所述的方法,其中分析所收集的性能数据包括:
a)查找大于高阈值数目的多边形的多边形的数目;
b)查找小于低阈值平均大小的多边形的平均大小;和
c)确定
i)增加第一数目的图形处理器,或
ii)减少第二数目的图形处理器,或
iii)增加第一数目的几何处理器和减少第二数目的图形处理器。
7.如权利要求6所述的方法,其中改变第一数目的几何处理器和第二数目的图形处理器包括:
a)增加第一数目的几何处理器,或
b)减少第二数目的图形处理器,或
c)增加第一数目的几何处理器和减少第二数目的图形处理器。
8.如权利要求1所述的方法,其中所述时间期间包括近似10000个时钟周期。
9.如权利要求1所述的方法,还包括:
a)提供一组缓冲器;
b)将连接第一数目的几何处理器的第一十字条信道提供给所述缓冲器组;和
c)将连接第二数目的几何处理器的第二十字条信道提供给所述缓冲器组。
10.如权利要求9所述的方法,其中改变被分配给图形任务的第一数目的几何处理器和被分配给图形任务的第二数目的图形处理器中的至少一个包括:
a)根据任一任意配置计算第一十字条信道新的配置;
b)根据任一任意配置计算所述缓冲器组新的配置;
c)根据任一任意配置计算第二十字条信道新的配置;
d)将第一十字条信道重新配置成新的配置;
e)将所述缓冲器组重新配置成新的配置;和
f)将第二十字条信道重新配置成新的配置。
11.如权利要求9所述的方法,其中改变被分配给图形任务的第一数目的几何处理器和被分配给图形任务的第二数目的图形处理器中的至少一个包括:
a)对于第一十字条信道、缓冲器组、第二十字条信道,从配置的预定组中选择新的配置;和
b)将第一十字条信道、缓冲器组、第二十字条信道配置成所选择的预定配置。
12.一种优化图形处理的方法,包括:
a)将第一数目的几何处理器分配给图形任务和将第二数目的图形处理器分配给图形任务,所述第一数目的几何处理器将对象数据变换成多边形的顶点数据,所述第二数目的图形处理器将所述多边形呈现到缓冲存储器,所述多边形包括多个像素;
b)在一段时间期间从第二数目的图形处理器收集性能数据;
c)用算法分析所收集的性能数据;和
d)根据所收集的性能数据的分析结果,通过增加将被呈现的对象的镶嵌布置来增加由第一数目的几何处理器生成的多边形的数目和减少由第一数目的几何处理器生成的多边形的平均大小。
13.如权利要求11所述的方法,其中收集性能数据包括:
a)对所呈现的多边形的数目和所呈现的像素的数目计数;
b)计算平均多边形大小;
c)收集纹理丢失的数目;和
d)收集DRAM页中断的数目。
14.如权利要求13所述的方法,其中计算被呈现的多边形的平均多边形大小包括:收集所呈现的像素的数目和划分所呈现的多边形的数目。
15.一种优化图像处理的方法,包括:
a)将第一数目的几何处理器分配给图形任务和将第二数目的图形处理器分配给图形任务,所述第一数目的几何处理器将对象数据变换成多边形的顶点数据,所述第二数目的图形处理器将所述多边形呈现到缓冲存储器,所述多边形包括多个像素;
b)在一段时间期间从第二数目的图形处理器收集性能数据;
c)用算法分析所收集的性能数据;和
d)根据所收集的性能数据的分析结果,通过减少将被生成的对象的镶嵌布置来减少由第一数目的几何处理器生成的多边形的数目和增加由第一数目的几何处理器生成的多边形的平均大小。
16.如权利要求15所述的方法,其中收集性能数据包括收集平均多边形大小。
17.如权利要求15所述的方法,其中收集平均多边形大小包括:
a)对所呈现的多边形的数目和所呈现的像素的数目计数;
b)收集所呈现的像素的数目;和
c)用所呈现的像素的数目来划分所呈现的多边形的数目。
18.如权利要求16所述的方法,其中分析性能数据包括:检查平均多边形大小是否小于指定大小。
19.如权利要求16所述的方法,其中分析性能数据包括检查平均多边形大小是否小于像素大小。
20.一种具有用于处理图形数据的图形处理电路的计算机系统,所述系统包括:
a)至少一个几何处理器,用于至少部分地执行至少一部分的图形任务;
b)至少一个图形处理器,用于至少部分地执行至少另一部分的所述图形任务;
c)通信信道,允许在所述至少一个几何处理器与至少一个图形处理器之间进行通信;和
d)控制处理器,用于通过所述通信信道与所述几何处理器和图形处理器进行通信,所述控制处理器确定所述至少一个几何处理器和至少一个图形处理器是否被有效地利用,如果必要的话,选择性地分配或不分配一个或多个所述至少一个几何处理器和至少一个图形处理器,以便在执行所述图形任务时提高所述图形处理电路的效率。
21.如权利要求20所述的计算机系统,其中所述至少一个几何处理器包括多个几何处理器,并且所述至少一个图形处理器包括多个图形处理器。
22.如权利要求21所述的计算机系统,其中所述多个几何处理器执行对象到多边形的顶点数据的3D到2D变换。
23.如权利要求22所述的计算机系统,其中所述多个图形处理器将所述多边形呈现到缓冲存储器,所述多边形包括多个像素。
24.如权利要求23所述的计算机系统,其中所述通信信道包括:
a)具有十字条结构的第一信道;
b)至少一个缓冲存储器,被连接用于通过所述第一信道从所述多个几何处理器接收数据;和
c)具有一对一十字条结构的第二信道,被安排用于允许所述多个图形处理器与所述至少一个缓冲存储器之间的通信。
25.如权利要求24所述的计算机系统,其中所述通信信道有助于所述多个图形处理器和所述控制处理器之间的性能数据的通信。
CNB038057204A 2002-03-11 2003-03-11 优化图形处理的系统和方法 Expired - Lifetime CN1317682C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/095,213 US6919896B2 (en) 2002-03-11 2002-03-11 System and method of optimizing graphics processing
US10/095,213 2002-03-11

Publications (2)

Publication Number Publication Date
CN1643545A true CN1643545A (zh) 2005-07-20
CN1317682C CN1317682C (zh) 2007-05-23

Family

ID=27788216

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB038057204A Expired - Lifetime CN1317682C (zh) 2002-03-11 2003-03-11 优化图形处理的系统和方法

Country Status (8)

Country Link
US (1) US6919896B2 (zh)
EP (2) EP1662441B1 (zh)
JP (2) JP2005520234A (zh)
KR (1) KR100959468B1 (zh)
CN (1) CN1317682C (zh)
AU (1) AU2003212649A1 (zh)
DE (1) DE60331482D1 (zh)
WO (1) WO2003077120A2 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103946823A (zh) * 2011-11-18 2014-07-23 英特尔公司 棋盘多gpu配置内的可缩放几何形状处理
CN105549929A (zh) * 2008-07-30 2016-05-04 英特尔公司 用于改善图形性能的方法、装置和计算机程序产品
CN108694151A (zh) * 2017-04-09 2018-10-23 英特尔公司 通用图形处理单元内的计算集群抢占
US10217270B2 (en) 2011-11-18 2019-02-26 Intel Corporation Scalable geometry processing within a checkerboard multi-GPU configuration
CN108228337B (zh) * 2016-12-22 2021-08-27 财团法人工业技术研究院 中央处理单元的配置方法及适用此方法的服务器

Families Citing this family (95)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6671407B1 (en) * 1999-10-19 2003-12-30 Microsoft Corporation System and method for hashing digital images
US6973574B2 (en) 2001-04-24 2005-12-06 Microsoft Corp. Recognizer of audio-content in digital signals
US6996273B2 (en) * 2001-04-24 2006-02-07 Microsoft Corporation Robust recognizer of perceptually similar content
US7356188B2 (en) * 2001-04-24 2008-04-08 Microsoft Corporation Recognizer of text-based work
US7020775B2 (en) * 2001-04-24 2006-03-28 Microsoft Corporation Derivation and quantization of robust non-local characteristics for blind watermarking
US7006703B2 (en) * 2002-06-28 2006-02-28 Microsoft Corporation Content recognizer via probabilistic mirror distribution
US8259121B2 (en) * 2002-10-22 2012-09-04 Broadcom Corporation System and method for processing data using a network
US7990390B2 (en) * 2002-10-22 2011-08-02 Broadcom Corporation Multi-pass system and method supporting multiple streams of video
US7075542B1 (en) * 2002-11-12 2006-07-11 Ati Technologies Inc. Selectable multi-performance configuration
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
US7119808B2 (en) * 2003-07-15 2006-10-10 Alienware Labs Corp. Multiple parallel processor computer graphics system
US20080211816A1 (en) * 2003-07-15 2008-09-04 Alienware Labs. Corp. Multiple parallel processor computer graphics system
US7075541B2 (en) * 2003-08-18 2006-07-11 Nvidia Corporation Adaptive load balancing in a multi-processor graphics processing system
US7782325B2 (en) * 2003-10-22 2010-08-24 Alienware Labs Corporation Motherboard for supporting multiple graphics cards
US8860737B2 (en) * 2003-10-29 2014-10-14 Nvidia Corporation Programmable graphics processor for multithreaded execution of programs
US9659339B2 (en) 2003-10-29 2017-05-23 Nvidia Corporation Programmable graphics processor for multithreaded execution of programs
US8174531B1 (en) * 2003-10-29 2012-05-08 Nvidia Corporation Programmable graphics processor for multithreaded execution of programs
US7961194B2 (en) 2003-11-19 2011-06-14 Lucid Information Technology, Ltd. Method of controlling in real time the switching of modes of parallel operation of a multi-mode parallel graphics processing subsystem embodied within a host computing system
CN1890660A (zh) * 2003-11-19 2007-01-03 路西德信息技术有限公司 Pc总线上的多重三维图形管线的方法及系统
US20080094402A1 (en) 2003-11-19 2008-04-24 Reuven Bakalash Computing system having a parallel graphics rendering system employing multiple graphics processing pipelines (GPPLS) dynamically controlled according to time, image and object division modes of parallel operation during the run-time of graphics-based applications running on the computing system
US7015914B1 (en) * 2003-12-10 2006-03-21 Nvidia Corporation Multiple data buffers for processing graphics data
US7831832B2 (en) 2004-01-06 2010-11-09 Microsoft Corporation Digital goods representation based upon matrix invariances
US20050156930A1 (en) * 2004-01-20 2005-07-21 Matsushita Electric Industrial Co., Ltd. Rendering device and rendering method
US20050165690A1 (en) * 2004-01-23 2005-07-28 Microsoft Corporation Watermarking via quantization of rational statistics of regions
US20050275760A1 (en) * 2004-03-02 2005-12-15 Nvidia Corporation Modifying a rasterized surface, such as by trimming
EP2339469A1 (en) 2004-03-13 2011-06-29 Adaptive Computing Enterprises, Inc. System and method for a self-optimizing reservation in time of compute resources
US7890629B2 (en) 2004-03-13 2011-02-15 Adaptive Computing Enterprises, Inc. System and method of providing reservation masks within a compute environment
EP1735706A4 (en) 2004-03-13 2008-08-13 Cluster Resources Inc SYSTEM AND METHOD FOR CO-ASSIGNING RESERVATION ENGLOBING DIFFERENT TYPES OF CALCULATION RESOURCES
US8782654B2 (en) 2004-03-13 2014-07-15 Adaptive Computing Enterprises, Inc. Co-allocating a reservation spanning different compute resources types
EP1725947A4 (en) 2004-03-13 2008-08-06 Cluster Resources Inc SYSTEM AND METHOD FOR ADVANCED RESERVATIONS IN A CALCULATION ENVIRONMENT
US7770014B2 (en) * 2004-04-30 2010-08-03 Microsoft Corporation Randomized signal transforms and their applications
US7570267B2 (en) * 2004-05-03 2009-08-04 Microsoft Corporation Systems and methods for providing an enhanced graphics pipeline
US7978205B1 (en) 2004-05-03 2011-07-12 Microsoft Corporation Systems and methods for providing an enhanced graphics pipeline
US20070266388A1 (en) 2004-06-18 2007-11-15 Cluster Resources, Inc. System and method for providing advanced reservations in a compute environment
US8176490B1 (en) 2004-08-20 2012-05-08 Adaptive Computing Enterprises, Inc. System and method of interfacing a workload manager and scheduler with an identity manager
CN101091175B (zh) * 2004-09-16 2012-03-14 辉达公司 负载均衡
US7721118B1 (en) * 2004-09-27 2010-05-18 Nvidia Corporation Optimizing power and performance for multi-processor graphics processing
CA2586763C (en) 2004-11-08 2013-12-17 Cluster Resources, Inc. System and method of providing system jobs within a compute environment
US8066515B2 (en) * 2004-11-17 2011-11-29 Nvidia Corporation Multiple graphics adapter connection systems
US7576745B1 (en) 2004-11-17 2009-08-18 Nvidia Corporation Connecting graphics adapters
US7477256B1 (en) 2004-11-17 2009-01-13 Nvidia Corporation Connecting graphics adapters for scalable performance
US8212831B1 (en) 2004-12-15 2012-07-03 Nvidia Corporation Broadcast aperture remapping for multiple graphics adapters
US8134568B1 (en) 2004-12-15 2012-03-13 Nvidia Corporation Frame buffer region redirection for multiple graphics adapters
US7372465B1 (en) 2004-12-17 2008-05-13 Nvidia Corporation Scalable graphics processing for remote display
JP2008538620A (ja) 2005-01-25 2008-10-30 ルーシッド インフォメイション テクノロジー リミテッド モノリシック構成のシリコン・チップ上に多数のグラフィックス・コアを用いるグラフィック処理及び表示システム
US8863143B2 (en) 2006-03-16 2014-10-14 Adaptive Computing Enterprises, Inc. System and method for managing a hybrid compute environment
US9075657B2 (en) 2005-04-07 2015-07-07 Adaptive Computing Enterprises, Inc. On-demand access to compute resources
US7996455B2 (en) 2005-06-17 2011-08-09 Adaptive Computing Enterprises, Inc. System and method for providing dynamic roll-back reservations in time
US9231886B2 (en) 2005-03-16 2016-01-05 Adaptive Computing Enterprises, Inc. Simple integration of an on-demand compute environment
US10026140B2 (en) 2005-06-10 2018-07-17 Nvidia Corporation Using a scalable graphics system to enable a general-purpose multi-user computer system
US7886094B1 (en) 2005-06-15 2011-02-08 Nvidia Corporation Method and system for handshaking configuration between core logic components and graphics processors
US20070076869A1 (en) * 2005-10-03 2007-04-05 Microsoft Corporation Digital goods representation based upon matrix invariants using non-negative matrix factorizations
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
TWI322354B (en) * 2005-10-18 2010-03-21 Via Tech Inc Method and system for deferred command issuing in a computer system
US9092170B1 (en) * 2005-10-18 2015-07-28 Nvidia Corporation Method and system for implementing fragment operation processing across a graphics bus interconnect
JP4566120B2 (ja) 2005-11-21 2010-10-20 株式会社バンダイナムコゲームス プログラム、情報記憶媒体及び画像生成システム
US7434032B1 (en) 2005-12-13 2008-10-07 Nvidia Corporation Tracking register usage during multithreaded processing using a scoreboard having separate memory regions and storing sequential register size indicators
US7325086B2 (en) * 2005-12-15 2008-01-29 Via Technologies, Inc. Method and system for multiple GPU support
US7340557B2 (en) * 2005-12-15 2008-03-04 Via Technologies, Inc. Switching method and system for multiple GPU support
US7911467B2 (en) * 2005-12-30 2011-03-22 Hooked Wireless, Inc. Method and system for displaying animation with an embedded system graphics API
EP2023292B1 (en) * 2006-05-11 2020-02-26 Panasonic Intellectual Property Management Co., Ltd. Processing device
US7737984B2 (en) * 2006-06-30 2010-06-15 Honeywell International Inc. Method and system for an external front buffer for a graphical system
US8126993B2 (en) * 2006-07-18 2012-02-28 Nvidia Corporation System, method, and computer program product for communicating sub-device state information
US7768516B1 (en) * 2006-10-16 2010-08-03 Adobe Systems Incorporated Image splitting to use multiple execution channels of a graphics processor to perform an operation on single-channel input
US8108633B2 (en) * 2007-04-11 2012-01-31 Apple Inc. Shared stream memory on multiple processors
US8276164B2 (en) 2007-05-03 2012-09-25 Apple Inc. Data parallel computing on multiple processors
US11836506B2 (en) 2007-04-11 2023-12-05 Apple Inc. Parallel runtime execution on multiple processors
US8286196B2 (en) 2007-05-03 2012-10-09 Apple Inc. Parallel runtime execution on multiple processors
EP2135163B1 (en) 2007-04-11 2018-08-08 Apple Inc. Data parallel computing on multiple processors
US8341611B2 (en) 2007-04-11 2012-12-25 Apple Inc. Application interface on multiple processors
US8041773B2 (en) 2007-09-24 2011-10-18 The Research Foundation Of State University Of New York Automatic clustering for self-organizing grids
US8922565B2 (en) * 2007-11-30 2014-12-30 Qualcomm Incorporated System and method for using a secondary processor in a graphics system
CN102047238B (zh) * 2008-05-29 2013-10-16 先进微装置公司 使用几何着色器的镶嵌引擎的系统及方法
US8286198B2 (en) 2008-06-06 2012-10-09 Apple Inc. Application programming interfaces for data parallel computing on multiple processors
US8225325B2 (en) 2008-06-06 2012-07-17 Apple Inc. Multi-dimensional thread grouping for multiple processors
US9336028B2 (en) * 2009-06-25 2016-05-10 Apple Inc. Virtual graphics device driver
US11720290B2 (en) 2009-10-30 2023-08-08 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US10877695B2 (en) 2009-10-30 2020-12-29 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
KR101651871B1 (ko) * 2009-12-28 2016-09-09 삼성전자주식회사 멀티코어 시스템 상에서 단위 작업을 할당하는 방법 및 그 장치
US8587594B2 (en) * 2010-05-21 2013-11-19 International Business Machines Corporation Allocating resources based on a performance statistic
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
CN103105895A (zh) * 2011-11-15 2013-05-15 辉达公司 计算机系统及其显示卡及该系统进行图形处理的方法
US9152872B2 (en) * 2012-11-12 2015-10-06 Accenture Global Services Limited User experience analysis system to analyze events in a computer desktop
US9019284B2 (en) 2012-12-20 2015-04-28 Nvidia Corporation Input output connector for accessing graphics fixed function units in a software-defined pipeline and a method of operating a pipeline
US9123128B2 (en) * 2012-12-21 2015-09-01 Nvidia Corporation Graphics processing unit employing a standard processing unit and a method of constructing a graphics processing unit
KR101400270B1 (ko) * 2013-02-13 2014-05-28 부경대학교 산학협력단 컴퓨터 구동형 선망 어로 시뮬레이터
US9152601B2 (en) * 2013-05-09 2015-10-06 Advanced Micro Devices, Inc. Power-efficient nested map-reduce execution on a cloud of heterogeneous accelerated processing units
US9183611B2 (en) * 2013-07-03 2015-11-10 Apple Inc. Apparatus implementing instructions that impose pipeline interdependencies
KR101569093B1 (ko) * 2013-08-13 2015-11-13 삼성에스디에스 주식회사 분산 시스템에서 데이터를 처리하는 방법
KR102161742B1 (ko) * 2013-10-11 2020-10-05 삼성전자주식회사 피드백 경로를 포함하는 파이프 라인 시스템 및 그 동작방법
KR20150095144A (ko) * 2014-02-12 2015-08-20 삼성전자주식회사 그래픽스 데이터를 렌더링하는 방법 및 장치
US10147222B2 (en) * 2015-11-25 2018-12-04 Nvidia Corporation Multi-pass rendering in a screen space pipeline
US10825129B2 (en) * 2016-06-12 2020-11-03 Apple Inc. Eliminating off screen passes using memoryless render target
JP2021092934A (ja) 2019-12-09 2021-06-17 富士通株式会社 分析装置、分析プログラムおよびコンピュータシステム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4967375A (en) * 1986-03-17 1990-10-30 Star Technologies, Inc. Fast architecture for graphics processor
US5081575A (en) 1987-11-06 1992-01-14 Oryx Corporation Highly parallel computer architecture employing crossbar switch with selectable pipeline delay
US5408606A (en) * 1993-01-07 1995-04-18 Evans & Sutherland Computer Corp. Computer graphics system with parallel processing using a switch structure
US5574847A (en) 1993-09-29 1996-11-12 Evans & Sutherland Computer Corporation Computer graphics parallel system with temporal priority
US6241610B1 (en) * 1996-09-20 2001-06-05 Nintendo Co., Ltd. Three-dimensional image processing system having dynamically changing character polygon number
TW360823B (en) 1996-09-30 1999-06-11 Hitachi Ltd Data processor and graphic processor
US5852451A (en) * 1997-01-09 1998-12-22 S3 Incorporation Pixel reordering for improved texture mapping
US6313838B1 (en) 1998-02-17 2001-11-06 Sun Microsystems, Inc. Estimating graphics system performance for polygons
US6191800B1 (en) 1998-08-11 2001-02-20 International Business Machines Corporation Dynamic balancing of graphics workloads using a tiling strategy

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105549929A (zh) * 2008-07-30 2016-05-04 英特尔公司 用于改善图形性能的方法、装置和计算机程序产品
CN105549929B (zh) * 2008-07-30 2019-11-15 英特尔公司 用于改善图形性能的方法、装置和计算机可读介质
CN103946823A (zh) * 2011-11-18 2014-07-23 英特尔公司 棋盘多gpu配置内的可缩放几何形状处理
CN103946823B (zh) * 2011-11-18 2017-04-05 英特尔公司 棋盘多gpu配置内的可缩放几何形状处理
US9619855B2 (en) 2011-11-18 2017-04-11 Intel Corporation Scalable geometry processing within a checkerboard multi-GPU configuration
US10217270B2 (en) 2011-11-18 2019-02-26 Intel Corporation Scalable geometry processing within a checkerboard multi-GPU configuration
CN108228337B (zh) * 2016-12-22 2021-08-27 财团法人工业技术研究院 中央处理单元的配置方法及适用此方法的服务器
US11126470B2 (en) 2016-12-22 2021-09-21 Industrial Technology Research Institute Allocation method of central processing units and server using the same
CN108694151A (zh) * 2017-04-09 2018-10-23 英特尔公司 通用图形处理单元内的计算集群抢占

Also Published As

Publication number Publication date
CN1317682C (zh) 2007-05-23
DE60331482D1 (de) 2010-04-08
JP2007179563A (ja) 2007-07-12
WO2003077120A2 (en) 2003-09-18
EP1662441A1 (en) 2006-05-31
KR100959468B1 (ko) 2010-05-25
JP2005520234A (ja) 2005-07-07
EP1662441B1 (en) 2010-02-24
KR20040104510A (ko) 2004-12-10
US6919896B2 (en) 2005-07-19
WO2003077120A3 (en) 2004-11-25
US20030169269A1 (en) 2003-09-11
JP4413936B2 (ja) 2010-02-10
EP1499962A2 (en) 2005-01-26
AU2003212649A1 (en) 2003-09-22
AU2003212649A8 (en) 2003-09-22

Similar Documents

Publication Publication Date Title
CN1317682C (zh) 优化图形处理的系统和方法
US8629877B2 (en) Method of and system for time-division based parallelization of graphics processing units (GPUs) employing a hardware hub with router interfaced between the CPU and the GPUs for the transfer of geometric data and graphics commands and rendered pixel data within the system
DE102018132468A1 (de) Multi-gpu-frame-rendern
CN105139330B (zh) 向图元块分配图元的方法及系统
US10255653B2 (en) Task assembly for SIMD processing
US10249016B2 (en) Graphics processing units and methods using cost indications for sets of tiles of a rendering space
JP5336067B2 (ja) グラフィックスを処理する方法および装置
DE102019103340A1 (de) Simultanes rechen- und grafik-scheduling
Kästner et al. Hardware/software codesign for convolutional neural networks exploiting dynamic partial reconfiguration on PYNQ
US10387990B2 (en) Graphics processing units and methods for subdividing a set of one or more tiles of a rendering space for rendering
EP1581908A2 (en) System, method, and computer program product for near-real time load balancing across multiple rendering pipelines
US20080198166A1 (en) Multi-threads vertex shader, graphics processing unit, and flow control method
CN1957376A (zh) 可缩放着色器结构
US11790480B2 (en) Tiling a primitive in a graphics processing system by edge-specific testing of a subset of tiles in a rendering space
CN1928918A (zh) 图形处理装置及于图形处理装置中执行着色操作的方法
CN101040270A (zh) 命令传输控制装置和命令传输控制方法
CN101051382A (zh) 于图形处理单元中提供共享属性计算电路的系统及方法
US20210042616A1 (en) Arithmetic processing device
DE102020132377A1 (de) Vorrichtung und Verfahren zur Drosselung einer Raytracing-Pipeline
EP3086289A1 (en) Tiling a primitive in a graphics processing system
DE102019123443A1 (de) Mechanismus zum gemeinsamen Benutzen von Registern
CN1955933A (zh) 数据处理设备和方法
US20110052059A1 (en) Generating image histogram by parallel processing
JP2011141703A (ja) 資源配置システム、資源配置方法、及び資源配置用プログラム
JPH10334054A (ja) 並列画像生成方法とそのためのデータ分割手法

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
C56 Change in the name or address of the patentee

Owner name: SONY COMPUTER ENTERTAINMENT, INC.

Free format text: FORMER NAME: SNE PLATFORM INC.

Owner name: SNE PLATFORM INC.

Free format text: FORMER NAME: SONY COMPUTER ENTERTAINMENT INC.

CP01 Change in the name or title of a patent holder

Address after: Tokyo, Japan

Patentee after: SONY COMPUTER ENTERTAINMENT Inc.

Address before: Tokyo, Japan

Patentee before: SNE platform Limited by Share Ltd.

Address after: Tokyo, Japan

Patentee after: SNE platform Limited by Share Ltd.

Address before: Tokyo, Japan

Patentee before: Sony Computer Entertainment Inc.

CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20070523