CN1332314C - 分析图形控制器性能的系统 - Google Patents
分析图形控制器性能的系统 Download PDFInfo
- Publication number
- CN1332314C CN1332314C CNB2004100323451A CN200410032345A CN1332314C CN 1332314 C CN1332314 C CN 1332314C CN B2004100323451 A CNB2004100323451 A CN B2004100323451A CN 200410032345 A CN200410032345 A CN 200410032345A CN 1332314 C CN1332314 C CN 1332314C
- Authority
- CN
- China
- Prior art keywords
- signal
- graphics controller
- command
- incident
- event
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3466—Performance evaluation by tracing or monitoring
- G06F11/3485—Performance evaluation by tracing or monitoring for I/O devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/86—Event-based monitoring
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Image Generation (AREA)
- Testing And Monitoring For Control Systems (AREA)
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)由 给出。这里,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) |
1 1 | 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 (14)
1.一种监视图形控制器的性能的系统,该系统包括:
用于处理事件监视指令的指令译码器;
耦合到图形控制器的数据接口,用于接收来自图形控制器的、指示由在该图形控制器中一个或者多个资源执行的操作的信号;
耦合到数据接口的事件发生器,用于在接收到来自图形控制器的选择的信号时产生事件信号;
处理模块,用于响应接收到在指定组合中的一个或者多个事件信号而产生事件信号;
耦合到事件发生器和处理模块的输入选择模块,用于响应来自指令译码器的信号把一个或者多个事件信号耦合到处理模块。
2.如权利要求1所述的系统,其特征在于还包括分析模块,该分析模块被耦合用于响应事件监视指令跟踪来自处理模块的一个或者多个事件信号。
3.如权利要求2所述的系统,其特征在于,分析模块包括:
一个或者多个累加器;和
与所述一个或者多个累加器和指令译码器相耦合的加数发生器,用于响应由译码器处理的事件监视指令将事件信号路由到一个或者多个累加器。
4.如权利要求1所述的系统,其特征在于,来自图形控制器的信号是管道互锁信号。
5.如权利要求1所述的系统,其特征在于,来自图形控制器的信号是工作负荷信号。
6.一种分析图形控制器性能的系统,该系统包括:
图形控制器,它包括通过内部信号通信的资源;
耦合成用于接收事件监视指令和响应所接收的指令产生控制信号的命令接口;
处理模块,用于响应接收到在指定组合中的一个或者多个事件信号而产生事件信号;
耦合到图形控制器和命令接口的观察模块,用于按照由命令接口提供的控制信号处理来自图形控制器的选择的内部信号以识别事件,该观察模块包括分析模块,该分析模块可通过命令接口编程用以跟踪图形控制器中选择的事件,以提供关于该图形控制器的性能信息。
7.如权利要求6所述系统,其特征在于,图形控制器包括命令流控制器,用于将命令路由到各种资源,并且该命令接口被耦合用于通过该命令流控制器接收事件监视指令。
8.如权利要求6所述系统,其特征在于,性能信息包括事件频率、队列深度、操作等待时间和带宽信息。
9.一种计算机系统,包括:
中央处理机,用于发出图形命令和事件监视指令;
图形控制器,用于响应所发出的图形命令实现图形操作;
处理模块,用于响应接收到在指定组合中的一个或者多个事件信号而产生事件信号;和
与图形控制器相关联的观察系统,该观察系统包括:
命令接口,用于对发出的事件监视指令进行译码并根据收到的指令产生控制信号;和
耦合到命令接口的观察模块,用于响应控制信号来检测所选择的、与图形操作相关联的信号并处理所选择的信号。
10.如权利要求9所述的计算机系统,其特征在于,观察模块包括响应控制信号来跟踪图形控制器中所选择的事件以提供关于图形控制器的性能信息的分析模块。
11.如权利要求9所述的计算机系统,其特征在于,观察模块包括并发逻辑单元,用于识别与图形操作相关联的信号的组合,所识别的组合通过事件监视指令加以规定,以定义一事件。
12.如权利要求11所述的计算机系统,其特征在于,观察模块包括可被编程来监视所定义的事件以提供关于图形控制器的性能信息的分析模块。
13,如权利要求9所述的计算机系统,其特征在于,与图形操作相关联的信号包括管道联锁信号和工作负荷信号,观察模块可编程来检测一个或多个管道联锁和工作负荷信号的出现。
14.如权利要求9所述的计算机系统,还包括一个命令流控制器,用于接收来自处理器的图形命令和事件监视指令并分别将它们路由到图形控制器和观察系统。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/998417 | 1997-12-24 | ||
US08/998,417 US6067643A (en) | 1997-12-24 | 1997-12-24 | Programmable observation system for monitoring the performance of a graphics controller |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB988126842A Division CN1169052C (zh) | 1997-12-24 | 1998-12-15 | 分析图形控制器性能的系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1532703A CN1532703A (zh) | 2004-09-29 |
CN1332314C true CN1332314C (zh) | 2007-08-15 |
Family
ID=25545187
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB988126842A Expired - Fee Related CN1169052C (zh) | 1997-12-24 | 1998-12-15 | 分析图形控制器性能的系统 |
CNB2004100323451A Expired - Fee Related CN1332314C (zh) | 1997-12-24 | 1998-12-15 | 分析图形控制器性能的系统 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB988126842A Expired - Fee Related CN1169052C (zh) | 1997-12-24 | 1998-12-15 | 分析图形控制器性能的系统 |
Country Status (8)
Country | Link |
---|---|
US (1) | US6067643A (zh) |
EP (1) | EP1040417B1 (zh) |
CN (2) | CN1169052C (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)
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 |
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 |
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 |
US8504940B1 (en) * | 2011-10-03 | 2013-08-06 | Google Inc. | Smooth hardware accelerated scrolling |
US9298586B2 (en) | 2011-10-11 | 2016-03-29 | Apple Inc. | Suspending and resuming a graphics application executing on a target device for debugging |
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 |
Citations (3)
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 |
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 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5581482A (en) * | 1994-04-26 | 1996-12-03 | Unisys Corporation | Performance monitor for digital computer 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 |
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 |
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 |
-
1997
- 1997-12-24 US US08/998,417 patent/US6067643A/en not_active Expired - Lifetime
-
1998
- 1998-12-15 BR BRPI9814486-3A patent/BR9814486B1/pt not_active IP Right Cessation
- 1998-12-15 CN CNB988126842A patent/CN1169052C/zh not_active Expired - Fee Related
- 1998-12-15 WO PCT/US1998/026698 patent/WO1999034289A1/en active Application Filing
- 1998-12-15 AU AU19177/99A patent/AU1917799A/en not_active Abandoned
- 1998-12-15 EP EP98963959A patent/EP1040417B1/en not_active Expired - Lifetime
- 1998-12-15 DE DE69839527T patent/DE69839527D1/de not_active Expired - Lifetime
- 1998-12-15 CN CNB2004100323451A patent/CN1332314C/zh not_active Expired - Fee Related
- 1998-12-24 TW TW087121633A patent/TW406231B/zh not_active IP Right Cessation
Patent Citations (3)
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 |
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 |
Also Published As
Publication number | Publication date |
---|---|
DE69839527D1 (de) | 2008-07-03 |
CN1532703A (zh) | 2004-09-29 |
WO1999034289A1 (en) | 1999-07-08 |
EP1040417B1 (en) | 2008-05-21 |
US6067643A (en) | 2000-05-23 |
CN1290363A (zh) | 2001-04-04 |
EP1040417A4 (en) | 2002-06-19 |
BR9814486A (pt) | 2001-10-30 |
CN1169052C (zh) | 2004-09-29 |
EP1040417A1 (en) | 2000-10-04 |
AU1917799A (en) | 1999-07-19 |
BR9814486B1 (pt) | 2010-11-16 |
TW406231B (en) | 2000-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1332314C (zh) | 分析图形控制器性能的系统 | |
US7174274B2 (en) | Gathering I/O measurement data during an I/O operation process | |
US7770155B2 (en) | Debugger apparatus and method for indicating time-correlated position of threads in a multi-threaded computer program | |
DE69826418T2 (de) | Anordnung zum Abtasten mehrerer Instruktionen in einer Prozessorpipeline | |
CN100383754C (zh) | 发生中断时按其类型限定性能监视事件收集的方法与装置 | |
US7590892B2 (en) | Method and system of profiling real-time streaming channels | |
US6772097B1 (en) | Retrieving I/O processor performance monitor data | |
US6757847B1 (en) | Synchronization for system analysis | |
US3763474A (en) | Program activated computer diagnostic system | |
DE69634624T2 (de) | Vorrichtung zur Ereignisverwaltung | |
US7409602B2 (en) | Methodology for debugging RTL simulations of processor based system on chip | |
CN110825731A (zh) | 数据存储方法、装置、电子设备及存储介质 | |
Hsu et al. | Performance measurement and trace driven simulation of parallel CAD and numeric applications on a hypercube multicomputer | |
Roberts et al. | TraceVis: an execution trace visualization tool | |
US20100235159A1 (en) | Power estimation method and device therefor | |
CN105824682B (zh) | 一种虚拟机的监控方法、装置和系统 | |
US6115682A (en) | Apparatus for analyzing the performance of a computer system | |
Akella et al. | Modeling and measurement of the impact of input/output on system performance | |
US6629174B1 (en) | Synchronization using bus arbitration control for system analysis | |
US7519497B2 (en) | Apparatus and method for state selectable trace stream generation | |
Lesage et al. | Exploring and understanding multicore interference from observable factors | |
KR100303188B1 (ko) | 컴퓨터프로그램분석방법및장치 | |
Davies et al. | A CAMAC data collection facility | |
Vemuri | Simulation of a distributed processing system: A case study | |
RU136611U1 (ru) | Система выявления ошибок параллельных программ |
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: 20070815 Termination date: 20101215 |