CN101221653B - 用于图形处理单元的性能监测方法和系统 - Google Patents

用于图形处理单元的性能监测方法和系统 Download PDF

Info

Publication number
CN101221653B
CN101221653B CN2006101516037A CN200610151603A CN101221653B CN 101221653 B CN101221653 B CN 101221653B CN 2006101516037 A CN2006101516037 A CN 2006101516037A CN 200610151603 A CN200610151603 A CN 200610151603A CN 101221653 B CN101221653 B CN 101221653B
Authority
CN
China
Prior art keywords
performance monitoring
data
block
counter
logic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN2006101516037A
Other languages
English (en)
Other versions
CN101221653A (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.)
Weisheng Electronics (Shanghai) Co.,Ltd.
Original Assignee
Via Technologies 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 Via Technologies Inc filed Critical Via Technologies Inc
Publication of CN101221653A publication Critical patent/CN101221653A/zh
Application granted granted Critical
Publication of CN101221653B publication Critical patent/CN101221653B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Landscapes

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

Abstract

本发明提出一种性能监测系统,适用于图形流水线内具有多个流水线处理区块的计算机图形处理器。该系统包含:性能监测逻辑电路,用以收集与图形流水线性能相关的数据;多个计数逻辑区块,位于性能监测逻辑电路之内;多个逻辑计数器,分别位于每个该多个流水线处理区块之内,用以传送多个计数信号至性能监测逻辑电路;多个计数器配置寄存器,用以将一部份的该多个逻辑计数器对应至该多个计数逻辑区块;以及一指令处理器,用以提供多个指令与性能监测逻辑电路。

Description

用于图形处理单元的性能监测方法和系统
技术领域
本发明关于计算机处理,特别是用于图形处理单元的性能监测方法和系统。
背景技术
如所周知,三维(3-D)计算机图形技术着重在于如何产生或描绘(rendering)三维物体的二维(2-D)图像,以显示或呈现于显示装置或监视器上,诸如阴极射线管(Cathod Ray Tube;CRT)或液晶显示器(Liquid CrystalDisplay;LCD)等。该物体可能是诸如点、线段、三角形、或多边形等的简单几何元素(geometry primitive)。而较为复杂的物体可用一连串彼此相连的平面多边形来表示以描绘于显示装置上,例如,一连串彼此相连的平面三角形。所有的几何元素最终皆可以单一顶点(vertex)或一群顶点的集合来表示,例如,座标(X,Y,Z)的一个点,这个点可能是一线段的端点,或是一多边形的棱角(corner)。
为了产生一数据组以表示一三维元素的二维投影,使该三维元素可显示于计算机监视器或其他显示装置上,该元素的顶点须经过一图形描绘流水线(graphics-rendering pipeline)的一系列运算或处理级(processing stages)处理。一般的流水线仅为一系列串联的处理单元,或称为级(stages),其前一级的输出为后一级的输入。在图形处理器的领域中,该多个所谓的″级″包含诸如逐一顶点运算、元素组合运算、像素(pixel)运算、纹理(texture)组合运算、阵列(rasterization)运算、以及碎形(fragment)运算。
在典型的图形显示系统中,一图像数据库(例如一指令表(command list))可储存对视界内物体的描述。这些物体以一数目的小多边形来描述,这些小多边形覆盖于这些物体的表面上,如同许多小磁砖覆盖于墙面或其他表面的上。每一多边形可由一组顶点座标表(模型座标系中的X,Y,Z)与材料表面性质的某些规格(意即,颜色、纹路、光泽等等)来描述,亦可能包括每一顶点其相对于表面的法线向量(normal vectors)。对于具有复杂曲面的三维物体,前述的多边形一般而言必须是三角形或四边形,其中后者可再分解成一对三角形。
转换引擎(transformation engine)参照使用者所选定的视野角度来转换物体的座标。此外,使用者亦可以指定视野的场景(field of view)、欲产生的图像的大小、和视野空间(viewing volume)之后端(back end)的以依需要包含或移除背景。
一旦该视野区域(viewing area)被选定,裁剪逻辑电路(clip logic)即移除位于视野区域外的多边形(即三角形),并裁剪部分位于视野区域内而部分位于视野区域外的多边形。该多个经裁剪后的多边形对应至原始的多边形于未裁剪前落于视野区域内的部分,并依据视野区域的边线而产生新的边线。接着将多边形顶点传送至下一级,传送之内容为每一顶点对应于屏幕(viewing screen)的座标(以X,Y座标的形式)和其相关的深度(Z座标)。于典型的图形显示系统中,多边形接续进入依据光源建立的照明模型(lightingmodel)进行处理,再将多边形和其颜色值传送至阵列器(rasterizer)。
对于每一多边形而言,阵列器决定哪些像素位于该多边形之内并将其颜色值和深度(Z值)写入帧缓冲器(frame buffer)。描绘器将正在处理的新多边形其深度值(Z值)与一先前像素的深度值进行比较,该先前像素可能已经写入帧缓冲器。假如新多边形像素的深度值较小,即表示其位于已写入帧缓冲器的多边形前方,则新多边形像素的深度值将取代帧缓冲器内原有的数值,因为该新多边形将会遮蔽先前已处理且写入帧缓冲器的多边形。该程序需持续重复直到所有的多边形均阵列处理完毕为止。此时,一视像控制器将帧缓冲器之内容依阵列的顺序逐条扫描线显示于一显示器上。
依据上述的一般技术背景,以下请参见图1,其显示一计算机图形系统的一图形流水线内部份元件的功能流程图。熟习该技术领域者应可知,图形流水线内的元件可能随不同系统而异,且可以用各种不同方式表示。如同所周知的,一主计算机(Host Computer)10(或者是在一主计算机上执行的图形应用介面(API))可以经由一指令流处理器(command stream processor)12产生一指令表(Command List)。该指令表包含一系列图形指令与用于将一″环境″(environment)描绘于图形显示器的数据。图形流水线内的元件可以对指令表内的数据和指令加以运算,以描绘图形显示器的屏幕。
就此而言,一分析器(parser)14可以接收来自指令流处理器12的指令且经由数据的分析解读指令,并将代表图形元素的数据沿图形流水线传送(或进入图形流水线)。依该方式,图形元素可以经由其位置数据(例如,X,Y,Z,和W座标)和光源照明及纹理信息来定义。对于每一元素而言,上述所有信息均可经由分析器14自指令流处理器12提取而得,并传送至顶点遮蔽器(vertex shader)16。如同周知,顶点遮蔽器16可以对自指令表所接收的图形数据执行各种转换。举例而言,这些数据可以由真实世界座标(Worldcoordinates)转换至模型视界座标(Model View coordinates),再到投影座标(Projection coordinates),最后到屏幕座标(Screen coordinates)。顶点遮蔽器16所执行的功能处理为公知技术,此处不须再加赘述。之后,图形数据可被传送入阵列器18,其运作已摘述于上。
上述程序结束后,接着对元素内的每一像素执行一Z-测试20。如同所周知的,Z-测试的执行将目前的Z值(意即目前元素内一特定像素的Z值)和其对应的像素地址内已储存的Z值做比较。已储存的Z值提供一先前描绘的元素于特定像素位置的深度值。假如目前的Z值其深度相对于已存储的Z值较接近观测者的双眼,则目前的Z值将取代已存储的Z值,且目前的图形信息(意即颜色)将取代帧缓冲器中对应的像素位置的颜色信息(其像素地址由像素遮蔽器(pixel shader)22判定)。若目前的Z值相对于已存储的Z值并未较接近目前的观测点,则帧缓冲器和Z-缓冲器之内容均无须置换,因为于该情况下先前描绘的像素将被视为在目前的像素的前方。对于元素内已描绘并被判定较先前存储的像素更接近观测点的像素,与该元素相关的信息将被传送至像素遮蔽器22,以决定该元素内每一个被判定为较接近目前观测点的像素的颜色信息。
对图形流水线性能进行最佳化的程序需要流水线为何缺乏效率的根源的相关信息。流水线内图形数据的数量和复杂性增加意味着流水线的性能将受到流水线的无效率、延迟、和瓶颈等因素的显著影响。就此而言,能指出前述数据流程或处理问题的原因是有助益的。
可用于指出流水线性能问题的一公知技术为沿流水线于某些预设标记点设置计数器。该多个计数器可用来计算诸如周期或数据的流动。以该方式即可于数据在流水线内传递时监测流水线性能。然而,该方法的实用性有限,因为所使用的计数器其合理数量仅供指出流水线中出现效率问题的大约位置,但常常无法对于延迟或无效率的来源提供可靠的识别。
监测流水线性能的另一方法是在流水线的每一处理区块内置放多个计数器。为了提供足够数量的数据,该方法需要大量的计数器,在成本和诸如空间、耗电、和处理器带宽等系统资源的考虑下,难以实现。此外,于一般数据总线传送监测数据的同时耗用了系统带宽,某些情况下亦影响系统的性能。并且,各个流水线处理区块内的多个计数器将会产生变得过度庞大的数据,而可能导致其它系统资源的额外负担。
实际上,在流水线各级之间设置计数器的方式无法提供足够的数据以有意义地评估流水线的性能,而且在流水线多重处理区块内设置大量计数器绘造成成本、资源、和性能上的负面效应。因此,针对前述技术上的无效率和缺失的对策需求虽迄今鲜有提及,其实际上是有必要的。
发明内容
本发明提供一种监测图形流水线性能的系统和方法,适用于图形流水线内具有多个流水线处理区块的计算机图形处理器。本发明的系统包含:性能监测逻辑电路,用以收集与图形流水线性能相关的数据;多个计数逻辑区块,位于性能监测逻辑电路之内;多个逻辑计数器,分别位于每一个多个流水线处理区块之内,用以传送多个计数信号至性能监测逻辑电路;多个计数器配置寄存器,用以将前述多个逻辑计数器的一部份对应至前述多个计数逻辑区块;以及一指令处理器,用以提供多个指令予性能监测逻辑电路。
本发明同时亦提供一种适用于具有多个处理区块的计算机图形处理器的性能监测方法。本方法的实施例可概括成以下步骤:自多个监测模式中选择一种模式;依据选自这些监测模式的该种模式将对应的多个逻辑计数器的部分集结成群;设定选定的该部分多个逻辑计数器使其对应于多个实体计数器;依据该部分的多个逻辑计数器传送一计数信号请求至该多个多个处理区块其中一者;自该多个多个逻辑计数器中至少一者接收一计数信号至该多个多个实体计数器;累积相对于该多个多个实体计数器的多个计数器数值;以及分析该多个多个计数器数值。
其它关于本发明的系统、方法、特征、和优点,于介绍以下的附图和细节说明之后,对于本领域技术人员将更清楚明了。该多个系统、方法、特征、和优点均包含于本说明和本发明所揭示的范畴内,并为所附的权利要求范围所保护。
附图说明
参照以下附图,本揭示的许多特色将更易于理解。附图中的部件除非特别强调否则不一定成比例,原则上以能清楚解说本揭示的原理为主。此外,不同附图中相同的编号表示相同的部分。
图1为用于说明公知技术的图形流水线方块图。
图2为用于说明具有计算机图形处理器性能监测系统的图形流水线实施例的方块图。
图3为用于说明使用于计算机图形处理器性能监测系统的数据总线结构实施例的方块图。
图4为用于说明计算机图形处理器性能监测系统实施例的方块图。
图5为用于说明揭示于此的性能监测系统和方法的状态图(statediagram)一实施例的区块图。
图6为用于说明具有一性能监测器接口的处理区块计数器控制逻辑电路一实施例的方块图。
图7为用于说明一中央性能监测器运算码的一实施例的表列。
图8为用于说明用于计算机图形处理器性能监测的一示范方法的方块图。
主要元件符号说明
100        图形流水线
102        指令流处理器
106-111    处理区块
104/116-121FIFO寄存器
130        性能监测逻辑电路
132        配置寄存器
134        计数器区块
140        通信网路
160        性能监测系统
162        性能监测逻辑电路
164        计数逻辑区块
166        逻辑计数器
168    指令流处理器
170    计数器配置寄存器
200    性能监测系统/方法状态图
240    寄存器/指令入口解码器
242    计数器区块
244    多工器
246    计数器控制区块
248    配置多工器
252    配置寄存器
254    性能监测逻辑电路
260    中央性能监测器运算码列表
具体实施方式
以下将配合附图详细说明本发明的细节。虽然本发明的揭示将配合这些附图说明,并非意味本发明将受限于揭示于此的实施例。相反地,其含义在于涵盖所有权利要求范围所规范的本揭示的精神和范畴所包含的替代、修改、以及等效物。
参见图2,其具有计算机图形处理器性能监测系统的图形流水线一实施例的方块图。如同以上关于图1的说明,指令流处理器102将指令和数据传送至流水线中以利处理区块106-111进行后续的处理。指令流处理器102接收来自主处理器(未显示于图中)的图形和控制指令,并包含一第一FIFO寄存器104,其用于管理来自指令流处理器102的指令和数据的先进先出寄存器(first-in first-out(FIFO)register)。类似地,第一处理区块106包含第二FIFO寄存器116,以管理介于第一处理区块106和第二处理区块107间的数据。处理区块106-111可以包含分析器、顶点遮蔽器、阵列器、Z-测试处理器、像素遮蔽器、和纹理处理器等元件的任意组合。性能监测逻辑130,亦称为中央性能监测器(central performance monitor,CPM),用以接收来自指令流处理器102的控制与恢复数据。控制与恢复数据可以包含性能监测模式并可依据需要请求和清除性能数据。性能监测逻辑电路130包含计数器区块134。计数器区块134用于接收信号以及累积和存储计数器数据。于某些实施例中,其所接收的信号为每一处理区块106-111内的逻辑计数器所产生的计数信号。相对地,逻辑计数器用以产生计数信号,其为对应于一系统时钟周期的输出,该系统时钟周期的持续时间取决于特定状态或事件。例如,当单一逻辑计数器被用来计数一特定的系统状态且该状态持续一千个时钟周期,对应接收该逻辑计数器产生的计数信号的计数器区块将累积一数值,该数值对应于该持续一千个时钟周期的状态。每一个处理区块106-111包含多重逻辑计数器以量测处理区块的处理性能和数据流状态。多重逻辑计数器可以是由二个或二个以上的个别逻辑计数器所组成。计数器区块134为用于累积并存储计数器数据的实体计数器或寄存器,而逻辑计数器仅仅产生一计数信号,该计数信号则可被特定的实体计数器区块134所接收。位于性能监测逻辑电路130内的配置寄存器132可以经由指定特定计数信号对应至特定的计数器区块134的方式来判定哪一个计数信号被计数器区块134所接收。举例而言,当性能监测逻辑电路130运作于一全域监测模式时,小量的计数信号接收自各个处理区块106-111。经由监测整体流水线的部分定点,全域监测模式得以识别显现不良性能特性的约略区域或处理区块。或者,配置寄存器132可用来对应来自例如一或二个处理区块106,107的多重计数器,以决定数据流或无效率程序的精确位置。除了可用以定义监测模式,指令流处理器102亦可知会性能监测逻辑电路130以提供计数器数值的转储(dump),使计数器数值可被传送至指令流处理器102指示的存储器地址内。
以下参见图3,其为一使用于计算机图形处理器的性能监测系统的数据总线结构实施例的方块图。该实施例的图形流水线包含均通连耦接至一通信网路140的指令流处理器102和第一至第六处理区块106-111,用以传递关于图形流水线性能监测的数据。通信网路140亦连接至性能监测逻辑电路130,其包含配置寄存器132和计数器区块134。通信网路140可用以自指令流处理器102传递控制和查询命令至性能监测逻辑电路130。此外,通信网路140亦可以用来传达指令流处理器102所请求的计数器数值。通信网路140同时亦可自性能监测逻辑电路130传送配置信息至处理区块106-111,以识别多重逻辑计数器中何者被规画来产生计数信号。此外,处理区块106-111内产生的计数信号经由通信网路140传送至性能监测逻辑电路130。配置寄存器132将计数信号对应至特定的计数器区块134。当通信网路140实现为一专用总线时,可避免性能监测程序干扰或负面影响流水线内的图形处理运作。当然,于其他实施例中亦可以使用共用总线。其它实施例的通信网路140可以包含一总线,其包含数个具有总线仲裁器(arbiters)的区段,并以一循环方式运作,以提供处理区块106-111和指令流处理器102的存取接口。此外,处理区块106-111内的单纯逻辑计数器可包含累进逻辑电路以调节总线存取上的可能延迟。每一逻辑信号均可使用总线上的一或多条连接线。举例而言,某些实施例可以包含介于处理区块106-111和性能监测逻辑130之间,且使用三十二或更多位的接口。
以下参见图4,其为一用于计算机图形处理器的性能监测系统实施例的方块图。一性能监测系统160包含性能监测逻辑电路162。性能监测逻辑电路162用以管理整体性能监测程序。例如,性能监测逻辑电路162可用来解译由指令流处理器168传送的运算码(operational codes)以判定主处理器选择何种监测模式。性能监测逻辑电路162亦可用以控制计数器配置寄存器170,其用来提供逻辑计数器166和计数逻辑区块164间的对应关系。逻辑计数器166设置于多重处理区块内,而多重处理区块可组成图形流水线并提供一计数信号以对应至计数逻辑区块164。监测模式将决定逻辑计数器166的哪一部份对应至计数逻辑区块164。逻辑计数器166和计数逻辑区块164间的对应乃由计数器配置寄存器170执行。
指令流处理器168亦提供一转储指令至性能监测逻辑电路162,后者包含一用于写入计数器数值的存储器或寄存器地址。此外,指令流处理器168可提供一重置(reset)指令至性能监测逻辑电路162。重置指令可用来将计数器数值自任何先前的性能监测运算重置。以该方式,先前的性能监测运算所留下的计数器数值将不会对之后的性能监测运算产生影响。监测模式可以是全域或局部的。此外,全域或局部模式亦可再细分为多种子模式,取决于欲分析的性能特质为何。于全域模式下,仅自图形流水线中的每一处理区块选择一或二个逻辑计数器166。相对地,于局部模式下,自一或二个处理区块内选择多个逻辑计数器,以提供对应于图形流水线中被选定部分的高解析度数据。
以下参见图5,其为本发明的性能监测系统和方法的一实施例的状态图(state diagram)。于状态202中,对指令流处理器(command streamprocessor,CSP)所传送的指令进行解译。当指令为查询指令时,于状态中212检查其计数器识别码(ID)。查询指令可用来将一个已完成或进行中的性能监测运算的结果回报或写入一存储器位置。若计数器ID是无效的,状态214则转送一查询标记(token),即完成该查询流程。当计数器ID确认为有效时,于状态216中暂时禁止(stall)处理区块接续的输入,直到处理区块被清除(flushed)为止。一旦处理区块被清除,于状态218中传送控制码为01的查询运算码至中央性能监测器(CPM),并接续于状态220传送控制码为10的地址数据至中央性能监测器。当指令为一转储寄存器指令时,暂时禁止该处理区块直到该处理区块被清除为止(该状态未显示于图中)。一旦处理区块恢复清空后,一计数器数值被附加于转储标记并传送出去。当指令为一重置指令时,若存在对应的局部计数器,则于状态228将其重置。当指令为无指令时,于状态210传送控制码00和计数器推进信号。
本发明的部分性能监测方法实施例大致上包含二种基本指令,配置指令与查询指令。配置指令来自于指令流处理器,并于执行性能监测的前设定配置寄存器和相关的逻辑电路。配置指令则用以提供相对于特定性能监测模式的必需状态的配置信息。一旦该状态依据一配置指令建立完毕,逻辑电路和硬件的状态将维持不变直到后续不同配置指令传送为止。例如,配置指令选定性能监测器的运作模式,性能监测器可通过一配置总线和每一处理区块通信。由于配置数据并不特别密集,配置总线可以是在诸如四位的范围。查询指令为来自指令流处理器,并于性能监测运作期间触发性能监测器的某一计数器数值输出端口的数据搜集。该指令可多次重复使用以完成所选择的监测模式的计数器数值搜集。
以下参见图6,其为具有一性能监测器接口的处理区块计数器控制逻辑电路的实施例方块图。指令流处理器指令于寄存器/指令入口解码器区块240被接收。寄存器/指令入口解码器区块240包含一计数器控制区块246,其用以发出一2-位控制码至多工器244和性能监测逻辑电路254。该2-位控制码可被多工器244用来选择计数信号,其自配置寄存器252预先选定的所有逻辑计数信号中选择计数讯号。该2-位控制码同时亦可用以选择查询运算码或查询转储地址以传送至性能监测逻辑电路254。例如,多工器244传送一32-位数据流至性能监测逻辑电路254。该32-位数据流可以包含一查询运算码、一查询地址、选定的逻辑计数信号、或以上的组合。性能监测逻辑电路254同时亦传送配置数据至配置寄存器252,其控制配置多工器248。配置多工器248用以选择逻辑计数信号中何者被传送至多工器244。性能监测逻辑电路254包含计数器区块242,后者可通过配置多工器248和多工器244对应至选定的逻辑计数信号。计数器区块242为多重计数器,其用以接收自处理区块(未显示于图中)内部所产生的计数信号。一查询地址和一查询运算码自寄存器/指令入口解码器区块240传送至多工器244以进一步传送至性能监测逻辑电路254。
此外,计数器区块242自寄存器/指令入口解码器区块240接收二个控制位,用来起始或停止特定的计数器动作。寄存器/指令入口解码器区块240传送一计数器ID值至性能监测逻辑电路254,以通知性能监测逻辑电路254哪一个逻辑计数器将被查询以及有多少连续的计数器需被查询。配置多工器248接收逻辑计数信号,且后续再传送至多工器244。自多工器244传送的32-位数据可以是给计数器区块242的计数信号或是给性能监测逻辑电路254的查询运算码或查询地址,以共用该32-位总线来完成查询指令。以该方式,即可利用该32-位总线来降低硬件复杂度。处理区块的逻辑计数信号可对应至特定的实体计数器区块242,一查询指令亦可经由共用的32-位总线传送至性能监测逻辑电路254。该查询指令知会性能监测逻辑电路254读取来自实体计数器的计数器数值,并将对应的数值写入由查询地址定义的存储器。举例而言,查询指令可以包含逻辑计数器识别数据、实体计数器的数量、一接收地址、和一用以触发计数器数据转储的运算码。于另一实施例中,处理区块(未显示于图中)和计数器区块可以各自分成相互对应的多个群,以使得每一计数器区块群可接收来自其相对应的处理区块群的计数信号。
以下参见图7,其为一中央性能监测器运算码的一实施例的表列。中央性能监测器运算码的一实施例显示于中央性能监测器运算码(CPM运算码)栏262中。于某些实施例中,CPM运算码为四位码,其中的第一位用以识别中央性能监测器是处于检错(debug)模式或是某一监测模式,检错模式的运作此处不予详述。例如,其最高有效位为1时,表示CPM处于检错模式;最高有效位为0时,CPM运作于多个监测模式之一。该四位CPM运算码的第二位表示其处于全域或局部模式。当第二位为0,监测模式为全域模式,当第二位为1,则监测模式为局部模式。
全域模式一般而言用以分析整体图形流水线性能的特性和状态,以判定潜在的瓶颈、延迟、和无效率的可能发生的约略位置。全域模式可以包含数个子模式,如子模式栏266所示,该栏定义流水线的何种性质需于各个子模式中被分析。在每一个全域子模式中,可自处理区块选择数个逻辑计数器,其数量最多可和中央性能监测器计数器池中所含有的实体计数器数目一致。全域子模式包括带宽子模式、流水线流状态子模式、和FIFO寄存器状态子模式。举例而言,带宽子模式监测从流水线总线内部至图形处理器或图形处理器和外部来源间进出的所有数据流通。所监测之内容可以包含,但并不限于,索引(indices)、顶点、元素、像素、纹理、Z值数据(Z-data)、颜色属性(colorattributes)、颜色数据、掩模数据(mask data)、以及任何其它于流水线级内部产生的数据。FIFO寄存器状态子模式监测所有关键FIFO寄存器和缓冲器的状态,以判定上述元件中何者使用不足或使用过度。FIFO寄存器状态子模式可以依据流水线实际含有的FIFO寄存器和缓冲器数目使用一个以上的配置。流水线流状态子模式可用以监测流水线中不同定点的延迟时间以判定何处发生延迟、执行、或是反压(back pressuring)。
如同全域模式,局部模式亦可以包含相同或类似的子模式,以判定流水线内特定区域的不同性能特质。和全域模式不同的是,局部模式于极少数处理区块内使用逻辑计数器。以该方式,可同时监测于选定的处理区块内所包含的大量逻辑计数器,以使得处理区块性能可以被详尽地分析。经由多次执行不同模式,完整的流水线性能状态可以经由全域和局部解析模式的搭配以监测整体流水线及/或特定处理区块的状态而得以判定。流水线所监测的数据可包含但不限于下列各型态,诸如总线流通带宽、流水线级工作周期、流水线级受其它模组延迟的周期、流水线级对其它模组延迟的周期、以及各种与FIFO寄存器相关数据,包括全满周期的数目、全空周期的数目、和FIFO寄存器被占用高于或低于一或多个阈值的周期的数目。当性能监测器接收来自指令流处理器的运算码(配置模式),性能监测器传送一配置码至处理区块。
以下参见图8,其用于计算机图形处理器的性能监测方法的一实施例的流程图。于步骤300首先选择一性能监测模式。该性能监测模式可为全域模式抑或局部模式,其中每一全域模式和局部模式还包含多个子模式,用以识别流水线的不同性能特质。指令处理器区块传送一性能监测配置指令以选择监测模式。接着依据所选择的监测模式,将逻辑计数器集结成群,以自流水线中一或多个处理区块产生计数器信号,如步骤304所示。处理区块内的逻辑计数器可用以产生计数器信号,其可用于增加位于中央模组内的实际计数器。逻辑计数器依据特定的监测模式集结成群。举例而言,于全域监测模式的任一模式中,可自流水线中每一处理区块选择小量计数器,而于执行局部监测时,可自一或多个处理区块中选择较大量的计数器。
随之于步骤308设定逻辑计数器对应至实体计数器。举例而言,可使用一或多个配置寄存器的对应技术来完成设定。以该方式,逻辑计数器产生的计数信号可被实体计数器接收,二者的对应关系乃分别依据不同的性能监测模式而有不同逻辑计数器配置和群设定。在步骤312一计数信号请求自处理区块内被传送至选定的逻辑计数器。该计数信号请求可识别处理区块内的逻辑计数器中何者被指定以提供计数信号。逻辑计数器传送所请求的计数信号,并由计数器区块内的实体计数器所接收,如步骤316所示。该计数信号可自处理区块传送至一专用总线。实体计数器于步骤320中依据逻辑计数器所产生的计数信号累加计数器数值。一查询指令可用以请求一计数器数据转储至一指定的存储器地址。于步骤324计数器数值被查询并分析以判定流水线的特性,诸如总线流通带宽、流水线级工作周期、流水线级受其它处理区块暂时禁止的周期、流水线级对其它处理区块暂时禁止的周期、以及各种FIFO寄存器的统计数据,包括全满周期的数目、全空周期的数目、和FIFO寄存器被占用高于或低于一特定阈值的周期数目等流水线统计数据。全域性能监测模式可用以识别流水线的特定属性和性质,并识别流水线中发生暂时禁止、瓶颈、和无效率所在的大致位置。局部性能监测模式可用以识别流水线内一或多个选定的处理区块发生暂时禁止或无效率的位置。以该方式,所选定的处理区块可于局部模式下被相当详细地分析,如全域性能监测模式所产生的数据所示。
基于以上说明,本发明包含对于先前性能监测技术的效率的改良。举例而言,该多个改良包含使用多重监测模式,其于处理区块内仅使用相当小量的实体计数器以对应至逻辑计数器。此为相异于在每一监测点的每一处理区块之内或之间置放许多实体计数器。本发明因此提供一种弹性且多样化的性能监测逻辑电路,其仅需要极少量额外硬件资源并将执行监测时可能对系统性能造成的影响最小化。并且,可利用全域模式和局部模式的搭配提供一种有效的性能监测功能,以对流水线的不同阶层进行分析,符合图形流水线的串列特质。
本发明的实施例可实作为硬件、软件、固件、或以上的组合。某些实施例可实作于存储于存储器中的软件或固件,而由适当的指令执行系统执行。若以硬件实施,本发明的实施例可由下列任一技术或其组合实施,其皆为此领域所周知:例如具有逻辑门以利用数据信号实现逻辑功能的分散式(discrete)逻辑电路、具有适当组合式逻辑门的特定用途集成电路(application specific integrated circuit;ASIC)、可编程门阵列(programmable gate array;PGA)、现场可编程门阵列(field programmablegate array;FPGA),等等。
流程图内的任何程序说明或区块应被理解为代表模组、区段、或程式码的一部分,其包含一或多个可执行的指令以实施该程序的特定逻辑功能或步骤,替代的实施方式包含于本发明实施例范畴之内,其中的功能可不依照所提示或所说明的顺序实现,包括以平行处理的方式或以相反的顺序进行,取决于所牵涉的功能性,其皆应为熟习本发明的相关领域者所理解。
以上本发明所公开的实施例,特别是所有附图的实施例,仅为可能的实作范例,其于此仅用以帮助对本发明原理的清楚理解,而非用以限定本发明的范围。本发明的上述实施例在不脱离本发明的精神和原理下可以有许多变化和修改。所有这些变化和修改皆应视为包含于本发明的范畴而为以下权利要求范围所保护。

Claims (25)

1.一种性能监测的方法,适用于具有多个处理区块的一计算机图形处理器,该方法包含:
从多个监测模式中选择一种监测模式;
将对应于该监测模式的多个逻辑计数器的一部分逻辑计数器集结成群;
设定该部分的该多个逻辑计数器,使其对应至多个实体计数器;
从对应至该部分的该多个逻辑计数器的该多个处理区块中的一区块传送一计数信号请求;
从该多个逻辑计数器中至少一个接收一计数信号至该多个实体计数器;
累积对应于该多个实体计数器的多个计数器数值;以及
分析该多个计数器数值。
2.如权利要求1所述的性能监测的方法,还包含定义一用于请求计数器数据的一查询指令。
3.如权利要求1所述的性能监测的方法,其中该多个监测模式包含一全域模式且其中每一该多个处理区块内的该部分的该多个逻辑计数器被存取。
4.如权利要求3所述的性能监测的方法,其中将对应于该监测模式的该部分的该多个逻辑计数器集结成群的步骤还包含以下步骤:在该全域模式时,从该多个处理区块中的每一个指派该部分的该多个逻辑计数器。
5.如权利要求3所述的性能监测的方法,还包含从多个全域子模式中选择一全域子模式,其中该全域子模式选自于由下列子模式所组成的群之中:
一带宽子模式,包含监测每一单位时间内的多个数据值的总数,用以监测该多个处理区块内的主要流通量带宽;
一FIFO寄存器状态子模式,用以监测多个FIFO寄存器;以及
一流水线流通状态子模式,用以判定数据延迟的位置。
6.如权利要求5所述的性能监测的方法,其中该多个数据值选自于由下列数值所组成的群之中:顶点、索引、元素、颜色属性、座标属性、纹理属性、像素、像素碎片、Z值数据、图案数据、和颜色数据。
7.如权利要求5所述的性能监测的方法,其中该多个FIFO寄存器的状态选自于由下列状态所组成的群之中:全满周期的数目、全空周期的数目、该多个FI FO寄存器被占用高于一第一预设阈值的周期数目、和该多个FIFO寄存器被占用低于一第二预设阈值的周期数目。
8.如权利要求5所述的性能监测的方法,还包含使用该流水线流通状态子模式以判定下列事件之一:
判定该多个处理区块的一被暂时禁止以等待于该多个处理区块中的下一区块恢复正常状态的周期数目;
判定该多个处理区块的一被暂时禁止以等待来自该多个处理区块中另一区块的数据的周期数目;以及
判定该多个处理区块的一暂时禁止该多个处理区块中的另一区块的周期数目。
9.如权利要求1所述的性能监测的方法,其中该多个监测模式包含一局部模式且其中某一该多个处理区块内的该部分的该多个逻辑计数器被存取。
10.如权利要求9所述的性能监测的方法,其中将对应于该监测模式的该部分的该多个逻辑计数器集结成群的步骤还包含以下步骤:在局部模式时从该多个处理区块中的某一区块指派该部分的该多个逻辑计数器。
11.如权利要求1所述的性能监测的方法,其中从对应至该部分的该多个逻辑计数器的该多个处理区块中的一区块内传送该计数信号请求的步骤还包含识别出该多个处理区块中的该区块内的该多个逻辑计数器中的哪一个提供一计数信号。
12.如权利要求1所述的性能监测的方法,还包含:
从一指令处理器区块接收一性能监测配置指令;以及
依据该性能监测配置指令从该多个监测模式中选择一种监测模式。
13.如权利要求1所述的性能监测的方法,还包含从该多个处理区块的一部分处理区块经由一专用总线接收多个计数信号,使该多个计数信号进入该多个实体计数器的一部分实体计数器。
14.一种适用于一图形流水线内具有多个流水线处理区块的计算机图形处理器的性能监测系统,其包含:
性能监测逻辑电路,用于收集关于图形流水线性能的数据;
多个计数逻辑区块,位于该性能监测逻辑电路之内;
多个逻辑计数器,分别位于每一该多个流水线处理区块之内,用于传送多个计数信号至该性能监测逻辑电路;
多个计数器配置寄存器,用于将该多个逻辑计数器的一部份对应至该多个计数逻辑区块;以及
一指令处理器,用于提供多个指令予该性能监测逻辑电路。
15.如权利要求14所述的性能监测系统,其中该多个指令选自于由以下指令组成的群之中:
一配置指令,包含一运算码,用以定义多个监测模式以决定一模式;以及
一查询指令,用以请求计数器数据,所述查询指令包含选自于由以下数据所组成的群之中的数据:
逻辑计数器识别数据;
该多个计数逻辑区块的数量;
一地址,用以接收计数器数据;以及
一运算码,用以触发一计数器数据转存。
16.如权利要求15所述的性能监测系统,其中该多个监测模式之中包含一全域模式,以存取来自该多个流水线处理区块中每一区块的计数器数据。
17.如权利要求16所述的性能监测系统,其中该全域模式包含选自于下列多个全域子模式:
一带宽子模式,以监测该多个流水线处理区块中每一区块的数据流通量;
一FIFO寄存器状态子模式,以监测对应于多个FIFO寄存器的FIFO寄存器数据;以及
一流水线流通状态子模式,以判定数据延迟的位置。
18.如权利要求17所述的性能监测系统,其中该数据流通量选自于由以下数值所组成的群之中:顶点、三角形、线、点、座标、颜色属性、纹理座标、像素、像素碎片、Z值数据、图案数据、和颜色数据。
19.如权利要求17所述的性能监测系统,其中该FIFO寄存器数据选自于由以下状态所组成的群之中:全满周期的数目、全空周期的数目、该多个FIFO寄存器被占用高于一第一预设阈值的周期数目、和该多个FIFO寄存器被占用低于一第二预设阈值的周期数目。
20.如权利要求17所述的性能监测系统,其中该流水线流通状态子模式包含判定于该多个处理区块中的一区块发生暂时禁止的周期数目。
21.如权利要求20所述的性能监测系统,其中该暂时禁止事件选自于由下列事件所组成的群之中:
等待来自一先前区块所处理的数据;以及
等待一后续区块恢复正常处理状态;以及
该多个处理区块中的一区块造成该多个处理区块中的另一区块等待。
22.如权利要求14所述的性能监测系统,还包含一专用数据总线用以连接该性能监测逻辑电路和每一该多个流水线处理区块。
23.如权利要求14所述的性能监测系统,其中该性能监测逻辑电路包含一装置用以从该多个计数逻辑区块取得计数器数据。
24.如权利要求14所述的性能监测系统,其中该性能监测逻辑电路将计数器数据写入一存储器地址。
25.如权利要求14所述的性能监测系统,还包含:
多个处理区块群;
多个计数逻辑区块群;且
其中每一该多个计数逻辑区块从该多个处理区块中对应的一区块接收该多个计数信号的一部分计数信号。
CN2006101516037A 2005-12-21 2006-09-07 用于图形处理单元的性能监测方法和系统 Active CN101221653B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/314,184 US20070139421A1 (en) 2005-12-21 2005-12-21 Methods and systems for performance monitoring in a graphics processing unit
US11/314,184 2005-12-21

Publications (2)

Publication Number Publication Date
CN101221653A CN101221653A (zh) 2008-07-16
CN101221653B true CN101221653B (zh) 2010-05-19

Family

ID=38172896

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006101516037A Active CN101221653B (zh) 2005-12-21 2006-09-07 用于图形处理单元的性能监测方法和系统

Country Status (3)

Country Link
US (1) US20070139421A1 (zh)
CN (1) CN101221653B (zh)
TW (1) TWI317874B (zh)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7519797B1 (en) * 2006-11-02 2009-04-14 Nividia Corporation Hierarchical multi-precision pipeline counters
US7620840B2 (en) * 2006-12-29 2009-11-17 Intel Corporation Transactional flow management interrupt debug architecture
US8264491B1 (en) * 2007-04-09 2012-09-11 Nvidia Corporation System, method, and computer program product for controlling a shader to gather statistics
GB2461900B (en) 2008-07-16 2012-11-07 Advanced Risc Mach Ltd Monitoring graphics processing
GB2473682B (en) * 2009-09-14 2011-11-16 Sony Comp Entertainment Europe A method of determining the state of a tile based deferred re ndering processor and apparatus thereof
EP2513860B1 (en) * 2009-12-16 2018-08-01 Intel Corporation A graphics pipeline scheduling architecture utilizing performance counters
US9531194B2 (en) * 2010-04-30 2016-12-27 Cornell University Systems and methods for zero-delay wakeup for power gated asynchronous pipelines
US8527239B2 (en) 2010-10-01 2013-09-03 Apple Inc. Automatic detection of performance bottlenecks in a graphics system
US8462166B2 (en) 2010-10-01 2013-06-11 Apple Inc. Graphics system which measures CPU and GPU performance
US8933948B2 (en) 2010-10-01 2015-01-13 Apple Inc. Graphics system which utilizes fine grained analysis to determine performance issues
US8614716B2 (en) 2010-10-01 2013-12-24 Apple Inc. Recording a command stream with a rich encoding format for capture and playback of graphics content
CN102125423B (zh) * 2010-10-13 2012-09-19 深圳市理邦精密仪器股份有限公司 一种集成中央监护功能的医用监护方法及装置
US8595473B2 (en) * 2010-10-14 2013-11-26 Via Technologies, Inc. Method and apparatus for performing control of flow in a graphics processor architecture
WO2012100373A1 (en) 2011-01-28 2012-08-02 Intel Corporation Techniques to request stored data from memory
US8780120B2 (en) * 2011-10-02 2014-07-15 Microsoft Corporation GPU self throttling
US9298586B2 (en) 2011-10-11 2016-03-29 Apple Inc. Suspending and resuming a graphics application executing on a target device for debugging
US20120095607A1 (en) * 2011-12-22 2012-04-19 Wells Ryan D Method, Apparatus, and System for Energy Efficiency and Energy Conservation Through Dynamic Management of Memory and Input/Output Subsystems
CN104115114B (zh) 2011-12-23 2018-06-12 英特尔公司 经改进的提取指令的装置和方法
CN104011616B (zh) 2011-12-23 2017-08-29 英特尔公司 改进置换指令的装置和方法
CN107220029B (zh) 2011-12-23 2020-10-27 英特尔公司 掩码置换指令的装置和方法
US9946540B2 (en) 2011-12-23 2018-04-17 Intel Corporation Apparatus and method of improved permute instructions with multiple granularities
CN111831335A (zh) 2011-12-23 2020-10-27 英特尔公司 经改进的插入指令的装置和方法
US20130173933A1 (en) * 2011-12-29 2013-07-04 Advanced Micro Devices, Inc. Performance of a power constrained processor
US9015428B2 (en) * 2012-09-28 2015-04-21 Hewlett-Packard Development Company, L.P. Physical and logical counters
US9030480B2 (en) * 2012-12-18 2015-05-12 Nvidia Corporation Triggering performance event capture via pipelined state bundles
CN104731519B (zh) * 2013-12-20 2018-03-09 晨星半导体股份有限公司 快取存储器管理装置及应用该快取存储器管理装置的动态影像系统及方法
US9645916B2 (en) 2014-05-30 2017-05-09 Apple Inc. Performance testing for blocks of code
CN104216812B (zh) * 2014-08-29 2017-04-05 杭州华为数字技术有限公司 一种性能监控单元多事件统计的方法和装置
WO2016078069A1 (en) 2014-11-21 2016-05-26 Intel Corporation Apparatus and method for efficient graphics processing in virtual execution environment
CN105430409B (zh) * 2015-12-29 2017-10-31 福州瑞芯微电子股份有限公司 一种基于计数器的流水控制方法和装置
CN106066434B (zh) * 2016-05-31 2018-10-19 国网河北省电力公司电力科学研究院 一种电能表自动化检定流水线健康程度评价方法
US10863138B2 (en) * 2016-05-31 2020-12-08 Intel Corporation Single pass parallel encryption method and apparatus
GB2555586B (en) * 2016-10-31 2019-01-02 Imagination Tech Ltd Performance profiling in a graphics unit
US10386410B2 (en) * 2016-12-12 2019-08-20 Samsung Electronics Co., Ltd. Highly flexible performance counter and system debug module
KR102400556B1 (ko) * 2016-12-12 2022-05-20 삼성전자주식회사 성능 및 디버그 모니터링을 위한 장치, 시스템 및 방법
CN109712061A (zh) * 2018-12-11 2019-05-03 中国航空工业集团公司西安航空计算技术研究所 一种gpu命令处理器健壮性运行管理方法
US11127109B1 (en) * 2020-03-23 2021-09-21 Samsung Electronics Co., Ltd. Methods and apparatus for avoiding lockup in a graphics pipeline
US11508124B2 (en) 2020-12-15 2022-11-22 Advanced Micro Devices, Inc. Throttling hull shaders based on tessellation factors in a graphics pipeline
US11776085B2 (en) * 2020-12-16 2023-10-03 Advanced Micro Devices, Inc. Throttling shaders based on resource usage in a graphics pipeline
US11710207B2 (en) 2021-03-30 2023-07-25 Advanced Micro Devices, Inc. Wave throttling based on a parameter buffer
CN117271249A (zh) * 2022-06-13 2023-12-22 中科寒武纪科技股份有限公司 人工智能加速器流水线性能分析方法及设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5835705A (en) * 1997-03-11 1998-11-10 International Business Machines Corporation Method and system for performance per-thread monitoring in a multithreaded processor
US6067643A (en) * 1997-12-24 2000-05-23 Intel Corporation Programmable observation system for monitoring the performance of a graphics controller
US6574727B1 (en) * 1999-11-04 2003-06-03 International Business Machines Corporation Method and apparatus for instruction sampling for performance monitoring and debug

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5537541A (en) * 1994-08-16 1996-07-16 Digital Equipment Corporation System independent interface for performance counters
US5991708A (en) * 1997-07-07 1999-11-23 International Business Machines Corporation Performance monitor and method for performance monitoring within a data processing system
US6718403B2 (en) * 2000-12-11 2004-04-06 International Business Machines Corporation Hierarchical selection of direct and indirect counting events in a performance monitor unit
US6519310B2 (en) * 2001-03-28 2003-02-11 Intel Corporation Hardware event based flow control of counters
US6857029B2 (en) * 2002-04-30 2005-02-15 International Business Machines Corporation Scalable on-chip bus performance monitoring synchronization mechanism and method of use
TWI284743B (en) * 2002-07-13 2007-08-01 Advantest Corp Event pipeline and summing method and apparatus for event based test system
US20050015568A1 (en) * 2003-07-15 2005-01-20 Noel Karen L. Method and system of writing data in a multiple processor computer system
US7747844B2 (en) * 2005-03-31 2010-06-29 Hewlett-Packard Development Company, L.P. Acquiring instruction addresses associated with performance monitoring events
US7433803B2 (en) * 2005-04-27 2008-10-07 Freescale Semiconductor, Inc. Performance monitor with precise start-stop control

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5835705A (en) * 1997-03-11 1998-11-10 International Business Machines Corporation Method and system for performance per-thread monitoring in a multithreaded processor
US6067643A (en) * 1997-12-24 2000-05-23 Intel Corporation Programmable observation system for monitoring the performance of a graphics controller
US6574727B1 (en) * 1999-11-04 2003-06-03 International Business Machines Corporation Method and apparatus for instruction sampling for performance monitoring and debug

Also Published As

Publication number Publication date
TWI317874B (en) 2009-12-01
CN101221653A (zh) 2008-07-16
US20070139421A1 (en) 2007-06-21
TW200725264A (en) 2007-07-01

Similar Documents

Publication Publication Date Title
CN101221653B (zh) 用于图形处理单元的性能监测方法和系统
CN110827389B (zh) 严密的光线三角形相交
CN110858387B (zh) 鲁棒且高效的多处理器-协处理器接口
CN110827387B (zh) 没有着色器干预下对交点进行连续层次包围盒遍历的方法
CN109472858B (zh) 用于逆向图形的可微分渲染管线
CN102449665B (zh) 显示经渲染的图形元素的性能度量的视觉表示
CN109426519B (zh) 线内数据检查以进行工作量简化
CN111210498B (zh) 降低多边形网格的细节水平以减少被渲染几何的复杂度
CN100354891C (zh) 一种改良的模板阴影锥操作的方法与装置
US8330765B2 (en) Rolling context data structure for maintaining state data in a multithreaded image processing pipeline
US20220114075A1 (en) Liveness as a factor to evaluate memory vulnerability to soft errors
US8711163B2 (en) Reuse of static image data from prior image frames to reduce rasterization requirements
CN103092772B (zh) 电路装置和高速缓存状态数据的方法
US8248412B2 (en) Physical rendering with textured bounding volume primitive mapping
US8773449B2 (en) Rendering of stereoscopic images with multithreaded rendering software pipeline
US8405670B2 (en) Rolling texture context data structure for maintaining texture data in a multithreaded image processing pipeline
CN116050495A (zh) 用稀疏数据训练神经网络的系统和方法
US20100228781A1 (en) Resetting of Dynamically Grown Accelerated Data Structure
CN111143174A (zh) 在共享功率/热约束下操作的硬件的最佳操作点估计器
WO2009048886A1 (en) Method and apparatus for transmission and/or storage of rays for parallelized ray intersection testing
CN114119841A (zh) 光线跟踪系统中的相交测试
CN112041894B (zh) 渲染期间提高涉及水面的场景的真实感
CN103870213A (zh) 经由管线化的状态包触发性能事件捕获
CN113743573B (zh) 用于访问和利用压缩数据及其状态信息的技术
CN104050719A (zh) 生成抗锯齿体素数据

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20201117

Address after: 6 floor, G District, No. 666, Beijing East Road, Huangpu District, Shanghai

Patentee after: Weisheng Electronics (Shanghai) Co.,Ltd.

Address before: Taiwan County, Taipei, China

Patentee before: Via Technologies, Inc.