CN1169052C - 分析图形控制器性能的系统 - Google Patents

分析图形控制器性能的系统 Download PDF

Info

Publication number
CN1169052C
CN1169052C CNB988126842A CN98812684A CN1169052C CN 1169052 C CN1169052 C CN 1169052C CN B988126842 A CNB988126842 A CN B988126842A CN 98812684 A CN98812684 A CN 98812684A CN 1169052 C CN1169052 C CN 1169052C
Authority
CN
China
Prior art keywords
signal
incident
command
graphics controller
data
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.)
Expired - Fee Related
Application number
CNB988126842A
Other languages
English (en)
Other versions
CN1290363A (zh
Inventor
E��T����ķ���ȸ���
E·T·奥姆特兹格特
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN1290363A publication Critical patent/CN1290363A/zh
Application granted granted Critical
Publication of CN1169052C publication Critical patent/CN1169052C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3485Performance evaluation by tracing or monitoring for I/O devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring

Abstract

提供了一种实时观察与图形控制器(140)的操作相关的信号的可编程装置。该装置包括接收事件监视指令的命令接口和连接到该图形控制器的资源(144,150,152,154,158)的观察模块(160)。观察模块监视由在该图形控制器系统内的一个或者多个资源产生的信号,并根据接收到的事件监视指令处理这些信号。

Description

分析图形控制器性能的系统
本发明涉及图形控制器领域,特别涉及分析图形控制器性能的系统。
实时观察图形控制器内的事件/操作,给图形硬件的效能以及控制它的软件提供有用的反馈。诸如队列中图形指令的平均数目、一指定图形操作的延迟、纹理超高速缓冲存储器失中的频率、和专用图形资源停止的频率等信息可以由硬件和软件设计师使用来改进系统性能。例如,对纹理超高速缓冲存储器的80%的命中率可能指示该超高速缓冲存储器的大小需要增加,而在图形资源和图形表面例如Z缓冲器之间的数据传输的较高的延迟可能指示需要修改它们之间的通道。
在许多场合,了解性能瓶颈需要较复杂的操作。例如,精确定位错误的操作可能需要在不同图形资源对之间的检测的“握手”信号或者在不同资源对之间的并发的事务处理。在这些并发事务处理之间的冲突可以指示设备或指令的相互作用,这在单独监视各事件时并不明显。延迟实验必须跟踪在请求信号到达和所请求的动作完成之间的时间差。在多个资源共享一个事务处理队列的场合,可能很难分解为不同资源的信号,而可能需要对可用信号的复杂分析来获得希望的信息。
当前可用的监视图形硬件中的事件的方法受可以观察到的信号的类型和可以进行该种观察的容易程度的限制。逻辑分析器是通用设备,其可以设定在检测到特定指令时监视选择的外部信号的状态。这里,外部信号指在总线或其它易于访问的信号线上传输的信号。指令的详情,诸如对图形控制器内的特定资源的影响,对这些分析器来说一般是不可访问的,而更复杂的操作,诸如检测包括非外部信号的并发事件,更将逻辑分析器排除。这些设备还相对昂贵,操作复杂,仅限于设计和测试硬件的工程师使用。
也可以使用各种可编程逻辑设备(PLD)来监视系统硬件的操作。这些通常是为特定硬件设备设计的,使用复杂。另外,像逻辑分析器,PLD只能访问外部信号。
因此,需要一种透明的系统,它能以足够详细的水平监视图形硬件,对设备性能提供有意义的反馈,而不需复杂的接口和分析过程。
本发明是用于监视图形控制器以说明性能瓶颈等的一种装置。可编程该系统,使之实时观察与图形控制器的操作相关的信号。
按照本发明的装置包括一个接收事件监视指令的命令接口和连接到该命令接口上的一个观察模块。观察模块监视由图形控制器产生的信号,并根据接收到的事件监视指令处理这些信号。
在本发明的一个实施例中,事件监视指令通过在图形硬件中的一个命令流控制器连接到命令接口。观察模块可以包括一个检测在计算机系统中的指定信号并发的并发逻辑单元(CLU)。分析逻辑可以包括一个加数发生器,其可以编程来从指定信号中提取例如通量、带宽和队列深度数据。
可以参考下面的附图理解本发明,附图中用相同的号码指示相同的元件。提供这些附图来说明本发明选择的实施例,而并不打算限制本发明的范围。
图1是可以实现本发明的计算机系统的方框图。
图2是适合于用本发明分析的图形控制器的一个实施例的方框图。
图3A是按照本发明的一个观察系统的方框图。
图3B是图3A的观察系统的一个实施例的方框图。
图4是图3B的事件发生器的一个实施例的方框图。
图5A、5B是图3B的并发逻辑单元的一个实施例的方框图。
图6是图3A的加数发生器的一个实施例的电路图。
图7是图3A、3B的命令接口的一个实施例的方框图。
图8A-8D是表示为本发明的使用而选择的事件监视指令的方框图。
下面的讨论叙述大量专门的细节以提供对本发明的彻底了解。然而,具有本技术领域一般技能的人在掌握本公开后理解,可以不用这些专门的细节来实现本发明。为强调本发明的特征,没有详细说明各种公知的方法、过程、部件和电路。
本发明是一种通过在图形控制器操作期间产生的信号来监视该图形控制器的性能的观察系统。这些信号例如包括控制图形控制器资源之间的数据流的管道互锁信号。观察系统包括一个观察模块和一个按照一个指令集结构(ISA)控制观察模块的命令接口。命令接口响应ISA的事件监视指令产生对观察模块部件的控制信号,并把由指令产生的信号回连到系统。
观察模块监视图形控制器的资源之间的信号,并产生表征被监视信号的信号(事件输入信号)。处理选择的事件输入信号来识别用户定义的事件(事件信号),并分析这些事件以提供关于系统运行更高层次的信息。可以响应外部信号诸如导向图形控制器或从其来的总线事务处理(通用信号),也可以响应对特定图形控制器结构专门的信号(结构专用信号)产生事件输入信号。
观察系统可以直接通过存储器映射的输入/输出(I/O)、或者当可用时通过在图形控制器的接口逻辑内的一个命令流控制器(CSC)来接收事件监视指令。通过命令流控制器的路由选择允许这些指令插入图形命令流内的目标位置。这些指令在图形命令流内的精确放置允许观察系统在响应图形命令序列时监视图形资源。它也便利了由指定数目的给定类型事件的出现激发的采样,例如基于事件的采样。经由存储器映射的(I/O)的指令路由选择允许在更广的条件范围下监视事件,这便利基于时间的采样。
参考一般化的图形控制器及其并发信号来说明观察系统。这样做是为了说明观察系统的特征,而并不打算限制本发明的范围。例如,在没有命令流控制器或类似部件的图形控制器中,观察系统可以通过存储器映射的I/O与系统通信。类似地,计算机系统100(图1)是多种可以实现适合用本发明分析的图形控制器的系统配置中的一种,仅为说明的目的描述。
首先参考图1,图中表示出一个计算机系统100,它包括一个适合用本发明分析的图形子系统。计算机系统100包括处理器110、存储器120、芯片组逻辑130和图形控制器140。芯片组逻辑130分别通过总线112、122和142连接处理器110、存储器120和图形控制器140之间的数据。
图形控制器140包括接口(IF)逻辑144,用于连接各种资源和总线142之间的数据。公开的接口逻辑144的实施例包括一个命令流控制器(CSC)150,用于为命令选择到各图形资源的路由。这些包括2维图形管道(2D管道)152、3维图形管道(3D管道)154和图形存储器156。图中还表示出一个可选的视频引擎158。
3D管道154通常包括为处理多边形、纹理映射、颜色混合和上底纹等的逻辑。2D管道通常包括为在图形存储器158的不同部分之间传输数据块的逻辑。接口逻辑144通常还包括为调节在图形控制器140和存储器120之间的直接存储器存取(DMA)传输的控制器(未示出)。
图1还表示出根据本发明为监视图形控制器140的性能的观察系统160。在公开的实施例中,可以通过总线142经由存储器映射的I/O或通过IF逻辑144的CSC150访问观察系统160。
现在参考图2,图中示出图形控制器140的资源(图形资源)的更详细的方框图。在该公开的实施例中,3D管道154包括一个几何建立引擎210、屏蔽(mask)单元220、彩色管道230、纹理管道240、彩色计算器250和存储器接口260。几何建立引擎210处理用以产生3D图象的多边形。屏蔽单元220包括为选择由建立引擎210提供的多边形数据的一部分用于显示的逻辑。彩色管道230包括彩色内插逻辑,它确定在每一多边形内的象素和为这些象素确定合适的颜色和上底纹。纹理管道240包括为在多边形上映射纹理数据的内插逻辑。还提供纹理超高速缓冲存储器244以存储纹理数据。彩色计算器250处理分别来自彩色和纹理管道230、240的颜色数据(象素)和纹理数据(纹理元素),并通过存储器接口260连接处理过的数据到各个图形表面。
不同的图形资源通过交换管道互锁信号协调它们的操作。这些包括控制在不同图形资源之间的数据流的“握手”信号。例如,当几何建立引擎210完成多边形数据的处理时,它可以给屏蔽单元220断言一个信号。指示处理数据就绪。屏蔽单元220依次断言一个信号,指示它是否有能力接收该数据。当屏蔽单元220缺乏能力,则建立引擎210被停止,而由屏蔽单元220断言以指示它缺乏能力的信号提供这种条件的指示。反之,如果屏蔽单元220指示它有能力而建立引擎210忙于处理数据,则屏蔽单元220将闲置,而从建立引擎210来的忙信号提供该种条件的指示。类似地,颜色管道230和纹理管道240与彩色计算器250交换信号,指示正被处理的数据是否存在及其类型,和确定彩色计算器250处理该数据的能力。
像上面叙述的管道互锁信号通常由与每一图形资源相关的接口逻辑产生。这些信号可以通过专用线或专用总线连接到观察系统160,用以提供各种资源状态的指示。也可以监视用于在这些图形资源内的部件之间通信的信号。在图2中用椭圆指示观察系统160可以由之访问这些信号的点。
现在参考表1A,表中总结了管道互锁信号或者可从它们导出的信号的样本,可以单独或者组合使用这些信号来指定用于监视和分析的事件。这些信号根据接收它们的设备组织。
                                   表1A
   CSC   建立引擎( SU)   屏蔽单元( MU)   彩色管道( CP)   纹理管道( TP)  纹理超高速缓冲存储器( TC)  彩色计算器( CC)
  CSC闲置   SU由CSC闲置   MU由CP停止   CP由SU闲置   TP由SU闲置   TC数据停止   CC由MIF停止
  CSC停止   SU由MU停止   MU由TP停止   CP由CC停止   TP由MU闲置   TC  RFIFO停止   CC由TP闲置
  SU开始多边形   MU完成   CP完成   TP完成   TC  RFIFO停止   CC由CP闲置
  SU结束多边形   TC失中
  SU完成   TC比较
对图形控制器140的存储器区域的信号(负载信号)。负载信号例如包括为检索或存储需要的数据而在纹理管道240和纹理超高速缓冲存储器244的各部件之间交换的信号。
现在参考表1B,表中总结了可以使用本发明监视和分析的负载信号的例子。在第一列中的前5个信号是输入信号,而后5个信号是相应的完成信号。这些信号或者他们的等价信号在许多图形控制器系统中存在,下面详细讨论。
                        表1B
    信号     源     目标
彩色读请求     屏蔽单元     彩色管道
Z缓冲器读请求     屏蔽单元     彩色管道
彩色写请求     彩色计算器     彩色管道
Z缓冲器写请求     彩色计算器     线色管道
纹理元素请求到达     纹理管道 纹理超高速缓冲存储器
彩色读完成     彩色管道     彩色计算器
Z缓冲器读完成     彩色管道     彩色计算器
彩色写完成     彩色管道     彩色计算器
Z缓冲器写完成     彩色管道     彩色计算器
纹理元素请求完成     存储器接口   纹理超高速缓冲存储器
事件输入信号,特别是响应负载指令产生的,可以通过选择的限定信号精选。这些限定信号表示关于支撑的事务处理或者条件的附加信息,诸如在某个请求中的数据类型或数量。另外,某些资源条件也许未由显式状态信号表示,而是这些状态可以从与该资源关联的其它信号导出。限定信息从支撑资源信号中抽取,并通过观察模块使用相应的事件输入信号处理。在观察模块320公开的实施例中,事件输入信号和限定信号由CLU340组合,其在下面讨论。
可以编程观察系统160选择响应任何这种信号而产生的事件输入信号并处理它们以分析在图形控制器140中的特定事件。这些事件可以由观察系统160进一步分析,以提供例如关于图形控制器中资源的延迟、带宽、和队列深度的数据。
现在参考图3A,图中示出观察系统160的一个实施例的方框图。观察系统160包括命令接口310,它在系统100和观察模块320之间传输数据和指令。在本公开的实施例中,命令接口310通过存储器映射的寄存器(未示出)或者通过CSC150从总线142接收事件监视指令。命令接口310包括解码这些指令并为观察模块320产生合适的控制信号的电路。事件监视指令的格式在下面讨论。
观察模块320包括事件发生模块302、选择模块304、信号处理模块306、和信号分析模块308。事件发生模块302产生表示在图形控制器140中检测到的信号的事件输入信号。可以编程选择模块304使之通过选择的事件输入信号到信号处理模块306。可以编程处理模块306以决定事件输入信号和组合它们来定义事件信号。可以编程分析模块308分析事件信号以确定所选择的事件信号的频率、通量、带宽、以及队列深度信息。
现在参考图3B,图中表示出图3A的观察模块320的各种部件的实施例。在公开的实施例中,事件发生模块302包括一个或者多个事件发生器318(1)-318(N)(统称事件发生器318)。选择模块304包括一个或者多个可编程输入选择器320(1)-320(M)(统称输入选择器320)。处理模块306包括一个信号调节(SC)模块330和一个并发逻辑单元(CLU)340,分析模块308包括一个或者多个加数发生器350和分别为低阶和高阶的累加器370、380。竖直框314表示登台(staging)锁存器。
连接发生器318以监视在图2中指示的各个位置处的信号和产生表征被监视信号的事件输入信号。在本公开的实施例中,例如,事件发生器318(1)、318(2)、318(C)可以分别监视由椭圆A、B、C指示位置处的信号。可以使用诸如类型(缺少、停止、超高速缓冲存储器读,等等)和只要可能的话其数量以及正被传输的数据类型来表征被监视的信号。
现在参考图4,图中表示事件发生器318的一个实施例的方框图。在所公开的实施例中,事件发生器318包括解码器410、请求队列管理器420和大小编码器430。解码器410变换在图形控制器140的一个相关位置检测到的信号为相应事件输入信号。只要可能,大小编码器确定正被传输的数据块的大小。请求队列管理器420跟踪各个未解决的事务处理的状态,并合适的话产生新颖的状态信号。
在公开的事件发生器318的实施例中,只要合适的话,解码器410处理信号以确定图形控制器内被传输的数据块的大小。观察模块320的另一可选方案为可以包括一个单独的重映射模块,以产生这一类型的数据大小信息。
选择模块304确定哪一个事件输入信号通过,分别到处理和分析模块306和308进行事件分析。所公开的选择器模块302的实施例(图3B)包括一个或者多个输入选择器320。每一输入选择器320包括多个输入,而连接每个输入用以从相应的事件发生器318接收选择的事件输入信号。控制输入326按照在命令接口310上的事件监视指令传输选择的输入上的信号到处理模块304。输入选择器320可以配对来通过选择的事件输入信号队,而选择的信号可以由调节模块330修改。这种配对/调节便利了带宽、队列深度、和延迟的实验。
可以编程信号调节模块330对选择的事件输入信号执行逻辑操作或变换选择的信号为为观察系统320在以后阶段使用适合的格式。在本发明的一个实施例中,信号调节器330支持对事件输入信号的空操作(NOP)、变换操作、一次操作和逆一次操作。可以例如使用一次单稳态触发器实现这些操作。
CLU接收(调节的,限定的)事件输入信号并在断言(调节的,限定的)事件输入信号的选择的组合时产生事件信号。事件输入信号的选择的组合表示在图形控制器140中感兴趣的事务处理或事件。因为可以通过精选、调节和组合各种事件输入信号来产生事件信号,因此它们可以表示比单独用任何被监视的信号表示的那些事件更复杂和更完全被限定的事件。
在CLU340的一个实施例中,事件信号作为事件输入信号的布尔函数指定,这些事件输入信号的组合表示感兴趣的事件。事件输入信号的布尔组合通过事件监视指令指定。在CLU340的一个实施例中,当表示该感兴趣的事件的布尔函数为真时断言一个事件信号。另外,每一事件输入信号可以与和支撑的事务处理/条件关联的一个或者多个限定器结合来进一步限定被监视的事件。可以组合限定的事件输入信号来更精确地表示一个感兴趣的事件,例如事务处理碰撞。
例如,某个感兴趣的事件可以是一个在象素处理期间的纹理超高速缓冲存储器失中。这一事件的跟踪和分析可以指示需要改变纹理管道240,诸如增加纹理超高速缓冲存储器244的大小。这一事件可以通过并发断言纹理超高速缓冲存储器失中管道互锁信号(TC miss=SigA)和彩色写请求负载信号(Color Write Req.=SigB)来指定。并发事件监视指令给CLU340指定这一事件为SigA AND SigB,而一个事件选择指令编程一对选择器320连接表示SigA和SigB的事件输入信号到处理模块306。通过信号调节器330连接事件输入信号到CLU340,它在并发断言SigA和SigB时断言相应的事件信号。如果例如只对多于32字节的彩色写请求感兴趣,则可以把SigB与数据大小限定器相与,而由CLU340把限定的SigB与SigA相与。
现在参考图5A,图中表示出CLU340的一个实施例的方框图。在公开的实施例中,CLU340包括信号限定器510,组运算器520(A)-520(D)(统称组运算器520),区间标记器540,直方图器550,和信号路由器560。信号限定器510包括结合一个事件输入信号(EIS)与一个限定器信号(QS)以产生一个限定的EIS(QEIS)的电路。信号限定器510最简单的形式可以是一个QS和EIS加在其输入端的与门。可以把QEIS提供给信号路由器560来连接到分析模块308,或可以把它提供给组运算器520,与另一个EIS或QEIS结合。
可以编程组运算器520来产生表示施加到它们输入端的信号的布尔组合的信号。在公开的实施例中,所示CLU340具有4个两输入组运算器,尽管还可以包括另外的组运算器以提供更大的功能。连接组运算器520(B)、520(C)、520(D)以产生直到4个信号的布尔组合。另外,连接区间标记器540来从组运算器520(A)和520(B)接收输入信号和指示在两个输入信号断言之间的时间区间。在该实施例中,区间标记器540是一个一位状态机,它在其一个输入信号断言时断言一个输出信号,而在其另一输入信号断言时解除对该输出信号的断言。
直方图器550包括一个计数器和一个比较器,以分类在其输入端的信号到确定区间。在公开的实施例中,可以由组运算器520(D)或区间标记器540之一的输出驱动直方图器550。相应地,可以用它跟踪由组运算器520(B)、520(C)、520(D)指定的事件的持续时间或在由组运算器520(A)和520(B)指定的事件之间的时间区间。
现在参考图5B,图中表示出组运算器520的一个实施例的方框图。组运算器520包括多路转换器522、524,异或逻辑门526(A)-526(C)(统称为异或门526),以及与门528(A),或门528(B),和异或门528(C)(统称逻辑门528)。多路转换器522、524,异或门526和逻辑门528可通过由命令接口310产生的功能控制信号编程。例如,当(调节的,限定的)事件输入信号(Q)EISC和(Q)EISD使逻辑等式为真时,断言表示EISC OP EISD的信号。所公开的组运算器520的实施例可以单独产生表示(Q)EISC和(Q)EISD的事件信号以及这些EISS的布尔组合,其中运算(OP)是与、非与、或、非或、异或、异非或。
DS表示持续时间信号。这些是电平激发信号,只要指定条件为真,则它们停留在一个指定的状态。与此相反,EIS信号通常是脉冲信号,它们在相关的事件发生时临时改变状态。
来自处理模块306的事件信号可以进一步由观察模块320的分析模块308处理。在公开的实施例中,分析模块308包括加数发生器360和累加器370,可以将其编程来跟踪选择的事件信号的出现或执行基于选择的事件信号的实验。所示器370分别连接到在管道化结构中更高阶的累加器380上。这允许以比单级累加器所能实现的更高的速率跟踪事件数据,但对本发明不需要。
加数发生器360和累加器370、380允许观察模块320同时积累多重事件信号的数据。例如,关于在选择的资源中的寄存器上的队列深度的信息和选择的由这些资源实现的操作的延迟的信息可以从在选择的到达和完成事件之间的差确定。在表1B中的事件输入信号(以及在表1A中的某些)可以用来指示是到达事件(A)还是完成事件(C)。到达事件例如包括指示接收在与图形控制器200中的各种资源关联的队列中的读和写请求的信号。相应的完成事件包括指示完成读和写请求的信号,例如,接收请求的数据或成功传输到目标资源的数据。
与图形控制器140中的资源相关的队列通常服务于多个资源。相应地,通过监视在选择的时间区间上感兴趣的队列中到达和完成的事件而抽取延迟和队列深度数据。例如,请求的平均延迟(S)由给出。
s = Σ i ( A - C ) C
这里,A和C分别是在观察的时间区间T内发生的到达和完成的数目。在每时钟周期(I)的基础上积累A和C之间的差以产生在T期间的忙时间B。C是在T期间完成数目的一个活动计数。
观察系统160通过跟踪到达和完成事件、确定就每一时钟周期存储的值之间的差(忙时间)、在一个第一累加器370内加该差、和在一个第二累加器370内加完成数目,从而产生延迟数据。也可以使用忙时间通过跟踪在第二累加器内到达事件信号的数目来为一个资源确定平均队列深度。通过跟踪在第一累加器370内的到达数据事务处理的大小和在第二累加器370内的到达数目可以产生带宽数据。
现在参考图6,图中表示加数发生器360的一个实施例,其可以编程以实现上述延迟、队列深度和带宽实验。还表示在加数发生器360、CLU340和累加器370之间的连接。
加数发生器360包括一个上/下行计数器,用以跟踪系统中未解决的请求的数目。这些请求用施加在输入端UP、DN上的到达和完成事件信号表示。可以编程MUXS620、630、640、650来连接各个事件信号到累加器370,包括驱动计数器610的UP、DN输入的信号。在公开的实施例中,事件信号表示为通过一对输入选择器318(1)、318(2)提供的到达和完成事件信号。使用这些信号来表示延迟和队列深度实验,同时要理解,其它事件信号,例如使用CLU340定义的事件输入信号组合可以类似分析或用加数发生器360和累加器370累加。
MUXS620和640通过输入AE分别连接选择的事件信号以启用累加器370(1)和370(2)。MUXS630和650连接选择要跟踪的信号分别到累加器370(1)、370(2)的数据输入(IN)。MUXS620、630、640、650的控制输入连接到一个控制信号,它根据要运行的实验类型选择不同的输入信号。MUX660选择输入到MUX640的一个事件信号。
在公开的实施例中,不同的事件信号分析由一个施加在MUXS620、630、640和650上的选择信号(ADD_SEL)触发。例如,如果选择MUXS620、630、640、650的A输入,则事件A和C分别在累加器370(1)和370(2)中被跟踪。如果选择MUXS620、630、640、650的B输入,则在累加器370(1)中跟踪由A事件传输的数据大小,在累加器370(2)中跟踪A事件的数目。可以使用这一数据提供为A事件的带宽数据。
一个由事件A启动的和由事件C完成的操作的延迟可以通过选择MUXS620、630、640、650的C输入和MUX660的A输入确定。在这一场合,累加器370(1)跟踪未解决的请求或忙时间(A和C事件的数目之间的差),而累加器370(2)跟踪C事件。通过为一个时间区间的忙时间对在该时间区期间完成的数目的比率提供该延迟。反之,如果选择MUX660的B输入,则累加器370(2)跟踪A事件,其可以与忙时间(累加器370(1))结合以指示队列深度。
这样,加数发生器370为操作由输入选择器318和,必要的话,CLU340定义的事件信号提供可编程的结构。观察模块320的另一可选实施例可以使用不同的逻辑组合来分析来自CLU340的事件输出信号。例如,可以结合累加器370、380使用计数器和减法逻辑来进一步分析事件输出信号。
现在参考图7,图中表示命令接口310的一个实施例,其用于接收事件监视指令和给观察模块320的部件产生合适的控制信号。一个第一接口连接来自CSC150的指令和相关数据到观察模块320,一个第二接口连接在观察模块320和总线142之间的指令和相关数据。虽然公开的命令接口310的实施例允许通过CSC150和总线142与观察模块320通信,但是另外可选的实施例可以只支持这些事件监视指令源的一种。
通过第一接口连接的信号包括源标识信号(SID)、事件监视指令(EMI)、和一个闪光信号。SID分别根据EMI是通过第一接口(通过CSC150)还是通过第二接口(通过总线142)提供被断言或解除断言。EMI包括指示要由观察模块322执行的操作的类型和包括的观察模块320的部件。闪光信号指示SID和EMI何时有效。
来自CSC150的指令连接到多路转换器(MUX)720的一个输入,连接其另一输入以接收来自第二接口的指令。连接MUX720的控制输入以接收SID。MUX720连接来自由SID指示的输入的数据(EMI)到指令解码器740。指令解码器740包括给观察模块320的部件产生控制信号的逻辑,其由EMI指示。这些信号可以例如复位计数器350(RESET),连接选择器322的一个输入324到信号调节器330(EVENTSELECT),或为CLU340识别要连接到计数器350的一个或者多个信号组合(SET_CO_OCCURENCE)。每当在第一或第二接口检测到一个新命令时就触发指令解码器740。
在命令接口310的一个实施例中,CSC150以16位分段给第一接口提供32位事件监视指令。在这一场合,使用一个去多路转换器和寄存器(未示出)在引导它到MUX720之前链接16位分段为32位指令。
第二接口为存储器映射的I/O连接观察模块320到总线142。在公开的实施例中,第二接口从总线142接收数据,并连接来自观察模块320的数据到总线142。MUX770根据施加在控制电极上的一个信号(P_ADD)的状态引导来自总线142的数据到地址寄存器764或指令寄存器768。来自总线142的数据可以包括地址数据和EMIS。例如,系统100的处理器可以使用存储器映射的I/O通过总线142来给观察接口310提供事件监视指令。
把来自总线142的地址数据引导到地址寄存器764,在这里它被解码以确定总线142上的数据是否是打算给观察模块320的。寻址观察模块320的数据通常是事件监视指令,它通过MUX720提供给指令解码器740。
由观察模块320产生的数据,诸如带宽、延迟、或事件频率信息,通过MUX780提供给总线142。在公开的实施例中,这一数据可以缓冲存储到寄存器784中并由一个施加到MUX780的控制输入的信号对总线142锁存。一般说,通过存储器映射的I/O提供的地址和指令和通过CSC150提供的指令分别缓冲存储到寄存器774、778和724。
表2总结了适合编程观察系统160的事件监视指令的基本集。该表指示在每一指令中指定的参数和该指令的用途。下面结合图8A-8D讨论这些指令。
                                  表2
指令 参数 用途
    1 复位 资源表 同步复位加数发生器/累加器
    2 开始/停止 资源表 开始/停止加数发生器/累加器
    3 采样 资源 采样加数发生器/累加器
    4 采样和复位 资源 采样&复位加数发生器/累加器
    5 采样和停止 资源 采样加数发生器/累加器&禁止
    6 采样溢出 溢出位 采样溢出位
    7 设定采样 资源 设定采样寄存器映像OS数据寄存器
    8 Set_Event_For_Selector 被监视的信号 建立输入信号选择器&相关的信号调节器
    9 Set_Co_Occurrence CLU寄存器&值 建立CLU(功能控制输入)
    10 Set_Addend 加数选择器, 建立加数选择器
延迟/队列位 (MUXs620,630,640,650,660)
11  Set_Latency_Experimennt 延迟选择器对,信号调节,事件 建立延迟实验
12  Set_Queue_Experimennt 队列选择器对,信号调节,事件 建立队列实验
13  Set_Bandwidth_Experimennt 带宽组信号 建立带宽实验
现在参考图8A,图中表示适用于表2的指令1-7的EMI800的方框图。这些指令控制观察系统300的累加器370、380,并为此目的包括操作码(opcode)字段804和一个累加器字段806。操作码字段804指示正被执行指令1-7中的哪一个,而累加器字段806指示目的累加器。例如,Reset指令复位指示的累加器到开始值,其通常为零。Sample & reset读取指示的累加器的内容并使其复位。Sample采样指示的累加器的内容而不复位。
现在参考图8B,图中表示Set_Event_Instruction(SEI)820的方框图。SEI820指示要跟踪哪一个事件输入信号。操作码字段812标识指令的类型,亦即SEI。选择器地址字段814指示使用哪一个选择器320,而信号选择字段818指示选择器的哪一个输入要连接到处理逻辑306。在本发明的一个实施例中,信号选择字段818包括一个组选择子字段和一个信号选择子字段以分别指示信号组中的一般信号组和特殊信号。命令接口310的指令解码器740变换信号选择字段818中的数据为用于选择器320的一个合适的控制信号。条件字段816指示要由信号调节器330对选择的事件输入信号执行的任何逻辑或其它类型的操作。
现在参考图8C,图中表示Set_Co_occurrence指令(SCI)820的方框图,其适合设定CLU340来检测选择的信号组合。SCI820包括一个操作码字段822,一个寄存器地址字段824,和一个寄存器值字段828。操作码字段822给解码器740指示指令类型(SCI)。寄存器地址字段824标识与CLU340的一个资源,例如组运算器520、信号限定器510相关的寄存器,用以编程该资源。寄存器值字段828包括一个值,它编码例如一个要由所标识的资源实现的选择的布尔运算。把该值写入被标识的寄存器以编程该相关资源。
现在参考图8D,图中表示Set_X-Experiment指令(SXI)830的方框图,这里X指使用同样的数据格式例如表2的指令11-13指定的各种实验。在公开的实施例中,X可以指示延迟实验、队列深度实验、或带宽实验。在每种场合,SXI830包括一个操作码字段832,一个选择器对字段834,调节字段836、837,和一个事件选择字段838。操作码字段832标识对解码器740的指令类型(SXI)。选择器字段834指示一组接收目标事件输入信号的输入选择器322,而事件选择字段838指示指定接收目标事件输入信号的输入选择器322的特定输入。这些事件输入信号对可以从一个编码的信号对表中选择。
在延迟实验中,例如,该对的一个选择器320被编程以选择表示一个到达事件的事件输入信号,而该对的另一个选择器320将被编程选择表示一个完成事件的事件输入信号。在带宽实验中,该对的一个选择器320将选择一个事件输入信号,而另一个选择器320将选择提供关于由相关事件传输的数据块大小的信息的数据信号。在公开的观察系统160的实施例中,这一数据块信息是由事件发生器318的大小编码器提供的。调节字段836、837指示要施加到选择的事件输入和数据块信号的任何调节,例如一元逻辑运算。
这样提供了一个为监视和分析图形控制器性能的观察系统。该系统包括一个命令接口和一个观察模块,连接该模块用以接收图形控制器的各种资源的信号。命令接口控制观察模块中的逻辑来根据事件监视指令选择和处理信号。

Claims (8)

1.一种用于监视图形控制器的操作的系统,该系统包括:
一个连接用来接收事件监视指令的命令接口;
一个连接到图形控制器的信号发生模块,用于在该图形控制器中检测到相应信号时产生一个事件输入信号;
一个连接到该命令接口和该信号发生模块的信号选择模块,用于根据事件监视指令来选择事件输入信号;
一个信号调节器,可被该事件监视指令编程来对选定的事件输入信号执行一元操作;
一个并发逻辑单元(CLU),可被事件监视指令编程来检测一个或者多个选定的事件输入指令的选定组合和在检测到该选定组合时产生一个事件信号。
2.如权利要求1所述系统,还包括一个连接到该命令接口和该CLU的分析模块,用于根据事件监视指令来跟踪选定的事件信号。
3.如权利要求1所述系统,其特征在于,该CLU可以被编程来检测以一个指定的布尔关系出现的事件输入信号。
4.如权利要求1所述系统,其特征在于,该图形控制器包括一个命令流控制器,用于路由该图形控制器接收到的指令,其中,该命令接口连接到该命令流控制器,用于通过该图形控制器来接收事件监视指令。
5.如权利要求1所述系统,其特征在于,该命令接口被连接用来通过由处理器写的一个I/O地址接收命令。
6.如权利要求5所述系统,其特征在于,该数据接口包括一个解码器,用于将事件数据路由到一个指示的累加器,以便分析。
7.如权利要求1所述系统,其特征在于,命令接口包括一个指令解码器,用于解码事件监视指令。
8.如权利要求1所述系统,其特征在于,观察模块被通过数据接口连接到该图形控制器。
CNB988126842A 1997-12-24 1998-12-15 分析图形控制器性能的系统 Expired - Fee Related CN1169052C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/998,417 US6067643A (en) 1997-12-24 1997-12-24 Programmable observation system for monitoring the performance of a graphics controller
US08/998,417 1997-12-24
US08/998417 1997-12-24

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100323451A Division CN1332314C (zh) 1997-12-24 1998-12-15 分析图形控制器性能的系统

Publications (2)

Publication Number Publication Date
CN1290363A CN1290363A (zh) 2001-04-04
CN1169052C true CN1169052C (zh) 2004-09-29

Family

ID=25545187

Family Applications (2)

Application Number Title Priority Date Filing Date
CNB2004100323451A Expired - Fee Related CN1332314C (zh) 1997-12-24 1998-12-15 分析图形控制器性能的系统
CNB988126842A Expired - Fee Related CN1169052C (zh) 1997-12-24 1998-12-15 分析图形控制器性能的系统

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CNB2004100323451A Expired - Fee Related CN1332314C (zh) 1997-12-24 1998-12-15 分析图形控制器性能的系统

Country Status (8)

Country Link
US (1) US6067643A (zh)
EP (1) EP1040417B1 (zh)
CN (2) CN1332314C (zh)
AU (1) AU1917799A (zh)
BR (1) BR9814486B1 (zh)
DE (1) DE69839527D1 (zh)
TW (1) TW406231B (zh)
WO (1) WO1999034289A1 (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7287063B2 (en) * 2001-10-05 2007-10-23 International Business Machines Corporation Storage area network methods and apparatus using event notifications with data
US7245302B1 (en) * 2003-10-30 2007-07-17 Nvidia Corporation Processing high numbers of independent textures in a 3-D graphics pipeline
US7644192B2 (en) * 2005-08-25 2010-01-05 Hitachi Global Storage Technologies Netherlands B.V Analyzing the behavior of a storage system
US7809928B1 (en) * 2005-11-29 2010-10-05 Nvidia Corporation Generating event signals for performance register control using non-operative instructions
US8253748B1 (en) 2005-11-29 2012-08-28 Nvidia Corporation Shader performance registers
US20070139421A1 (en) * 2005-12-21 2007-06-21 Wen Chen Methods and systems for performance monitoring in a graphics processing unit
US7974800B2 (en) * 2006-12-12 2011-07-05 International Business Machines Corporation Method, apparatus, and program for detecting the correlation between repeating events
US8264491B1 (en) * 2007-04-09 2012-09-11 Nvidia Corporation System, method, and computer program product for controlling a shader to gather statistics
KR100969322B1 (ko) * 2008-01-10 2010-07-09 엘지전자 주식회사 멀티 그래픽 컨트롤러를 구비한 데이터 처리 장치 및 이를이용한 데이터 처리 방법
US8260991B2 (en) * 2009-09-15 2012-09-04 Arm Limited Data processing apparatus and method for measuring a value of a predetermined property of transactions
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
US8462166B2 (en) 2010-10-01 2013-06-11 Apple Inc. Graphics system which measures CPU and GPU performance
US8527239B2 (en) 2010-10-01 2013-09-03 Apple Inc. Automatic detection of performance bottlenecks in a graphics system
US8504940B1 (en) * 2011-10-03 2013-08-06 Google Inc. Smooth hardware accelerated scrolling
US8935671B2 (en) 2011-10-11 2015-01-13 Apple Inc. Debugging a graphics application executing on a target device
US20130179144A1 (en) * 2012-01-06 2013-07-11 Frank Lu Performance bottleneck detection in scalability testing
US9645916B2 (en) 2014-05-30 2017-05-09 Apple Inc. Performance testing for blocks of code
GB2577708B (en) * 2018-10-03 2022-09-07 Advanced Risc Mach Ltd An apparatus and method for monitoring events in a data processing system

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4872121A (en) * 1987-08-07 1989-10-03 Harris Corporation Method and apparatus for monitoring electronic apparatus activity
US5581482A (en) * 1994-04-26 1996-12-03 Unisys Corporation Performance monitor for digital computer system
US5537541A (en) * 1994-08-16 1996-07-16 Digital Equipment Corporation System independent interface for performance counters
US5687376A (en) * 1994-12-15 1997-11-11 International Business Machines Corporation System for monitoring performance of advanced graphics driver including filter modules for passing supported commands associated with function calls and recording task execution time for graphic operation
US5751945A (en) * 1995-10-02 1998-05-12 International Business Machines Corporation Method and system for performance monitoring stalls to identify pipeline bottlenecks and stalls in a processing system
US5752062A (en) * 1995-10-02 1998-05-12 International Business Machines Corporation Method and system for performance monitoring through monitoring an order of processor events during execution in a processing system
US5740409A (en) * 1996-07-01 1998-04-14 Sun Microsystems, Inc. Command processor for a three-dimensional graphics accelerator which includes geometry decompression capabilities
US5835705A (en) * 1997-03-11 1998-11-10 International Business Machines Corporation Method and system for performance per-thread monitoring in a multithreaded processor

Also Published As

Publication number Publication date
CN1290363A (zh) 2001-04-04
TW406231B (en) 2000-09-21
WO1999034289A1 (en) 1999-07-08
EP1040417B1 (en) 2008-05-21
AU1917799A (en) 1999-07-19
BR9814486A (pt) 2001-10-30
BR9814486B1 (pt) 2010-11-16
EP1040417A1 (en) 2000-10-04
CN1532703A (zh) 2004-09-29
CN1332314C (zh) 2007-08-15
EP1040417A4 (en) 2002-06-19
DE69839527D1 (de) 2008-07-03
US6067643A (en) 2000-05-23

Similar Documents

Publication Publication Date Title
CN1169052C (zh) 分析图形控制器性能的系统
US8990833B2 (en) Indirect inter-thread communication using a shared pool of inboxes
US7174274B2 (en) Gathering I/O measurement data during an I/O operation process
DE69826418T2 (de) Anordnung zum Abtasten mehrerer Instruktionen in einer Prozessorpipeline
DE102012213643B4 (de) Multitthread-Physik-Engine mit Impulsweiterleitung
US7590892B2 (en) Method and system of profiling real-time streaming channels
US20150355996A1 (en) System, method, and computer program product for collecting execution statistics for graphics processing unit workloads
US4485440A (en) Central processor utilization monitor
CN1648871A (zh) 发生中断时按其类型限定性能监视事件收集的方法与装置
US6772097B1 (en) Retrieving I/O processor performance monitor data
CN1282924C (zh) 通过操作系统进行通信的方法
CN1648865A (zh) 为记录事件提供前置与后置处理程序的方法与装置
US20060277395A1 (en) Processor performance monitoring
DE102012222918A1 (de) Verfahren und Apparat zum Planen von Anweisungen ohne Anweisungs-Dekodieren
US20060161720A1 (en) Image data transmission method and system with DMAC
DE102013017980B4 (de) Auslösung einer Leistungsereigniserfassung durch parallele Zustandsbündel
DE102013201195A1 (de) Zuvor-geplante Wiederholungen von divergenten Operationen
CN103455364B (zh) 一种多核环境并行程序Cache性能在线获取系统及方法
CN109191362A (zh) 多个rop的并行调度以及rop的流水设计
US6115682A (en) Apparatus for analyzing the performance of a computer system
CN110209631A (zh) 大数据处理方法及其处理系统
CN115951999A (zh) 一种虚拟域内基于多显卡的分片虚拟化负载均衡调度
US7827543B1 (en) Method and apparatus for profiling data addresses
CN1875350A (zh) 包括用于测量连接其构件块的通信总线的利用率的测量单元的集成电路
US20030046054A1 (en) Providing modeling instrumentation with an application programming interface to a GUI application

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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20040929

Termination date: 20101215