CN1153139C - 多线程处理器中性能监视的方法和系统 - Google Patents
多线程处理器中性能监视的方法和系统 Download PDFInfo
- Publication number
- CN1153139C CN1153139C CNB981043984A CN98104398A CN1153139C CN 1153139 C CN1153139 C CN 1153139C CN B981043984 A CNB981043984 A CN B981043984A CN 98104398 A CN98104398 A CN 98104398A CN 1153139 C CN1153139 C CN 1153139C
- Authority
- CN
- China
- Prior art keywords
- incident
- thread
- counter
- processor
- performance monitor
- 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
-
- 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
-
- 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/3409—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 for performance assessment
-
- 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
-
- 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/88—Monitoring involving counting
-
- 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/885—Monitoring specific for caches
Abstract
提供在一个多线程处理器中的一种性能监视方法和系统。该系统包括一个响应在第一和第二线程之内的指令的处理器和一个性能监视器,后者分别记录由处理器响应第一线程产生的一个第一事件和由处理器响应第二线程产生的一个第二事件。在一个实施例中,处理器具有第一工作方式和第二工作方式。在该实施例中,当性能监视器工作在第一方式,性能监视器中的一个第一计数器响应第一事件的每一次发生递增,和性能监视器中的一个第二计数器响应第二事件的每一次发生递增。另外的可能为,当性能监视器工作在第二方式,第一计数器响应第一事件的每一次发生和响应第二事件的每一次发生递增。
Description
本发明一般来说涉及数据处理,特别地说涉及一个数据处理系统中的性能监视。更具体地说本发明涉及一个多线程处理器内部每个线程的性能监视。
为了从处理器中抽取最佳性能,硬件和软件工程师检测和分析处理器的动态行为。过去,在这种处理器分析中有用的大多数处理器状态可由外部仪器检测。例如,在低集成水平下,大多数机器的状态、总线的事务处理和其它有用的信号可以在模块互连设备、边缘连接器和芯片背板上检测。从而数据可以容易地采集和为处理器性能分析应用施行后处理。
然而,随着集成度的增加,从而使得处理器状态对外部仪器不可检测,因此需要将性能监视电路集成到处理器内部,以便捕获优化硬件和软件需要的经验数据。板上性能监视器通常包括一个或者多个计数器,使得每一个计数器计数指示处理器性能的一个选择事件的发生,诸如处理器周期、执行的指令或者超高速缓冲存储器失中。虽然当前可用的性能监视器可以提供合适的数据来分析常规处理器的动态行为,然而使用单一计数器记录一个选择事件所有发生的一个常规性能监视器不能为给多重并发线程提供硬件支持的多线程处理器提供合适的性能数据。例如,一个常规的性能监视器不能提供指示超高速缓冲存储器可归属于每一线程的失中数目的信息或者由每一线程在一个有意义数目的周期中使用的处理器周期数。
因此,希望提供包括一个硬件性能监视器的多线程处理器,它能独立地监视该处理器内多个线程中的每一个线程。
本发明的一个目的是提供一种改进的数据处理方法和系统。
本发明的另一个目的是提供一种改进的用于数据处理系统中的性能监视的方法和系统。
本发明的再一个目的是提供一种在多线程处理器中对每个线程性能监视的方法和系统。
下面将会叙述上述目的的实现。提供一种在多线程处理器内进行性能监视的方法和系统。该系统包括一个响应第一和第二线程内的指令的处理器和一个性能监视器,该监视器分开记录由处理器响应第一线程产生的第一事件和由处理器响应第二线程产生的第二事件。在一个实施例中,处理器具有第一和第二操作方式。在该实施例中,当性能监视器工作在第一方式时,性能监视器内的第一计数器响应第一事件的每一次发生递增,性能监视器内的第二计数器响应第二事件的每一次发生递增。另外,当性能监视器工作在第二方式时,第一计数器响应第一事件的每一次发生和响应第二事件的每一次发生递增。
本发明的上述目的以及其它目的、特征和优点在下面详细的说明中将十分明显。
相信作为本发明特点的新颖性特征在所附权利要求中说明。然而,参考下述对作为例子的一个实施例的详细说明并参考附图可以最好地理解本发明自身以及一个优选的使用方式、另外的目的和优点。
图1说明包括本发明的性能监视器的一个数据处理系统的示范实施例;
图2是图1所述性能监视器以总体方式运行时的表示;
图3是图1所述性能监视器以多线程方式运行时的表示;
图4是一个逻辑流图,说明当性能监视器工作在全局和多线程方式的每一情况下事件是如何引向该性能监视器的;
图5是一个逻辑流图,说明当性能监视器工作在全局和多线程方式的每一情况下性能监视器中断是如何产生的;
图6是一个逻辑流图,说明当性能监视器工作在全局和多线程方式的每一情况下该性能监视器的计数器是如何存取的。
现在参考附图,特别是参考图1,其中说明了在所附权利要求范围之内的本发明的数据处理系统的一个实施例的一个方框图。在所说明的示意实施例中,处理器10由一个单一的超大规模集成电路微处理器组成,它包括数据处理电路和一个板上性能监视器50。于是,如下面将进一步说明,处理器10的各种执行单元、寄存器、缓冲器、存储器和其它功能单元都由集成电路构成。处理器10优选由国际商业机器公司(IBM)生产的精简指令集计算(RISC)处理器系列中的一种组成,但是熟悉本技术领域的人理解,也可以使用其它适合的处理器来实现本发明。
如图1所示,处理器10经由总线接口单元(BIU)12连接到系统总线11,总线接口单元12通过参与总线仲裁控制在处理器10和连接到系统总线11上的其它设备例如主存储器52和非易失海量存储器54之间的信息传输。图1所示数据处理系统优选包括连接到系统总线11上的其它未示出设备,它们对理解下述说明并非必需,因而为简单起见而省略。
BIU12连接到存储器管理单元14(MMU),它管理由处理器10对存储在处理器10的存储器层次结构的各个部件中的数据和指令的存取。在图示实施例中,处理器10的存储器层次结构不仅包括非易失海量存储器54和主存储器52,而且包括一个通过L2超高速缓冲存储器接口58存取的一个成一体的二级(L2)超高速缓冲存储器56,一个一级(L1)指令超高速缓冲存储器14和一个L1数据超高速缓冲存储器16。于是,MMU14的管理功能包括例如使用变换旁视缓冲器(Translation Lookaside Buffer)(TLB)13执行逻辑到实际地址的变换,使用存储控制(SC)电路23存取L1数据超高速缓冲存储器16和L2超高速缓冲存储器56内的数据以及在行缓冲器(LB)15和BIU12之间传输数据行。熟悉本技术领域的人理解,在渐进高速存储器之内以这种方式升级数据和指令能使处理器10实现对存储在存储器层次结构较高级之内的数据和指令相对快的存取,从而改善数据处理系统的总性能。
L1指令超高速缓冲存储器14又连接到顺序缓冲器17、线程切换缓冲器18、分支缓冲器19和分支单元20,分支单元20与调度单元21一起形成处理器10的指令单元(IU)逻辑部分25。IU25控制处理器10的浮点(FP)逻辑部分26和定点(FX)逻辑部分30之内的多个可能同时出现的硬件线程之一的执行。在本公开说明书中,使用术语“硬件线程”或简称“线程”来说明一组指令(它们与其它并发线程可以属于或可以不属于同一程序),它们的状态可以同时维持在处理器硬件中,同时,一个或多个其它的硬件线程及其执行由处理器硬件控制。于是,对于熟悉本技术领域的人来说十分明显,由处理器10支持的细粒多线程与由许多现有技术的操作系统支持的软件管理粗粒多任务不同。另外,应该理解,虽然后面将要说明处理器10只支持两个并发线程(亦即一个活动的,一个不活动的),但是本发明同样可应用于支持另外活动和不活动线程的多线程处理器。
工作时,顺序缓冲器17在活动线程内从L1指令超高速缓冲存储器14取指令并临时缓冲存储该指令。顺序缓冲器17把取来的指令按接收次序传给调度单元21。调度单元21部分地解码每一条指令,然后传输分支指令到分支处理单元(BPU)20,传输顺序指令到FP26和FX30中合适的一个去执行。响应分支指令的接收,如果取该分支的话分支单元20判定继续执行的目标地址,并将该目标地址供给L1指令超高速缓冲存储器14。当仍在顺序执行路径上向顺序缓冲器17供给指令时,L1指令超高速缓冲存储器14响应目标地址,在目标执行路径中用指令加载分支缓冲器19。其结果,如果随后取该分支,则分支缓冲器19能够在目标执行路径内供给调度单元21指令而不会出现任何延迟。之后,顺序缓冲器17开始在新执行路径内取指令。
IU25以相似方式执行线程切换。线程切换缓冲器18在不活动线程内取下一要执行的指令并缓冲存储。响应一个所选择的事件的出现,例如,对活动线程的L2超高速缓冲存储器未中或TLB未中,不活动线程被指定为活动线程,同时在线程切换缓冲器18中的指令传输到分支缓冲器19中。然后调度单元21开始从新激活的线程中分发指令到BPU20、FP26和FX30。同时顺序缓冲器17开始在新激活的线程中取指令,而线程切换缓冲器18开始在没激活的线程内取指令。
现在参考FP26和FX30,除了分支单元20外,处理器10的执行电路包括双精度浮点单元(FPU)27、加载存储单元(LSU)32、简单和复杂整数单元34和简单整数单元36。执行单元27、32、34和36中的每一个都能够在每一处理器周期内执行一个或多个顺序指令相关类型的一个或多个指令。例如,简单整数单元36执行定点数学运算(例如加或减)和使用从特定整数寄存器38加载的源操作数的比较运算。随着一个定点指令的执行,简单整数单元36把该指令的结果数据存储在一个或多个特定整数寄存器38中。相似地,双精度FPU27执行双精度浮点算术和逻辑运算,诸如对从浮点寄存器(FPR)28加载的源操作数执行浮点乘和除,并将结果数据存储在特定的FPR28中。处理器10的每一个顺序指令执行单元使用流水线操作以进一步改善处理器10的超标量结构的性能。如上所述,每一个FPR28和整数寄存器38都有多个双寄存器集或“路”,它们中的每一个都与由处理器10支持的多个并发线程中的一个相关。
根据本发明,处理器10包括一个性能监视器50,支持对由处理器10支持的多个并发线程的每一个独立的性能监视,有关性能监视器将在后面详述。如上所述,性能监视器50接收由IU25、FP26、FX30、SC23、BIU12和L2超高速缓冲存储器接口58的操作产生的事件发生作为输入。在可能由性能监视器50所接收的大量事件发生之中所选择的事件发生被记录在性能监视器50之内的软件可读和可写性能监视器计数器(PMC)之内。响应指定一个PMC“地址”的结构定义的指令的执行,性能监视器50输出该指定的PMC的值,例如通过存储该指定的PMC的值在所选择的一个整数寄存器38之内。性能监视器50还具有一个性能监视中断输出,它响应一个PMC的溢出而被确定。
根据本发明的一个重要方面,性能监视器50具有两种工作方式:(1)全局方式,其中同一事件的所有发生被记录在一起而不管这些发生是否都是由响应同一线程的处理而产生;(2)多线程方式,其中分别记录与每一线程相关的事件的发生。
现在参考图2,其中说明性能监视器50工作在全局方式时的一个概念图。如上所述,在全局方式下,由处理器10的所有逻辑部分产生的事件发生输入到多路转换器82。然后多路转换器82响应选择输入86为这些事件发生选择路由到在PMC84之内的特定的计数器,输入86是响应在软件可访问控制寄存器80之内的位字段的设定而产生的。控制寄存器80之内的位字段不仅指定事件的发生,而且如果有的话,每一个PMC84记录指定性能监视器50的工作方式(亦即是全局方式还是多线程方式),和什么时候为每一PMC84启动计数和禁止计数。响应一个事件的接收,递增一个所启动的PMC。如图2所示,如果任何PMC84的位0置为1,那么由OR门88产生一个性能监视器中断。
现在参考图3,其中说明性能监视器50工作在多线程方式时的一个概念图。在说明的示范实施例中,处理器10支持最多两个并发线程,它们每一个分配给PMC84的一半。于是,标以参考号码84a的PMC1-PMC4被分配给线程0,而标以参考号码84b的PMC5-PMC8被分配给线程1。如图所示,事件发生由多路转换器82a响应选择输入86a选择路由到PMC1-PMC4,事件发生由多路转换器82b响应选择输入86b选择路由到PMC5-PMC8。选择输入86a和86b以上述参考图2所述的方式响应控制寄存器80内的位字段的值产生。
与工作在全局方式下的性能监视器50的操作相比,当性能监视器50工作在多线程方式时,事件发生并非全部相同处理。反之,一个事件发生以依赖于该事件发生所属事件组的方式处理。第一组事件包括仅与活动线程相关的事件。这些事件的发生可以由IU25、FX30和FP26产生,并包括下列内容:
(1)指令完成
(2)处理器周期
(3)存储等待周期
(4)分支数据
(5)数据相关
(6)未校准存取
(7)L1指令超高速缓冲存储器失中计数
(8)浮点运算
(9)线程切换计数
第二组事件可以或者与活动线程相关,或者与不活动线程相关。这些事件的发生可以由SC23产生,并包括下列内容:
(1)L1数据超高速缓冲存储器失中事件,诸如总计数、等待时间、失中类型等
(2)变换失中事件(例如TLB失中事件)
(3)L2超高速缓冲存储器失中事件
第三(和最后)组事件不与一个特定线程相关。这些事件的发生可以由BIU12、LB15或者L2超高速缓冲存储器接口58产生并包括:
(1)L2超高速缓冲存储器行转换
(2)L2超高速缓冲存储器舍弃(castouts)
(3)L2超高速缓冲存储器窥探计数
(4)行缓冲器使用
(5)系统总线使用
(6)系统总线再试
如图3所示,第一事件组内的事件发生由AND门100和102作为输入接收。第一事件组内的事件发生只在线程0活动时才输入到多路转换器82a,只在线程1活动时才输入到多路转换器82b。与属于第一事件组的事件发生相反,第二事件组内的事件,如上所述,它们由在说明实施例中的MMU14之内的SC23产生,传递给多路转换器82a和82b中适合的一个用于可能的选择,而不管与该事件发生关联的线程是活动线程还是不活动线程。属于第三事件组的事件发生既传递给多路转换器82a也传递给多路转换器82b用于可能的选择。
现在参考图4,其中示出总结性能监视器50为全局和多线程操作方式的每一种处理事件发生的方法的逻辑流图。如图所示,处理过程从框170开始,然后前进到框172,在这里确定性能监视器50是否运行在多线程方式。如果性能监视器50不运行在多线程方式而运行在全局方式,那么处理前进到方框174,这里多路转换器82为由选择输入86选择的事件发生选择路由到PMC84中合适的一个。如上所述,由不同线程产生的同一事件的发生在PMC之内合并,使得为每一选择的事件保持一个单一事件计数。
再次参考框172,如果性能监视器50工作在多线程方式,那么处理前进到框176,在这里确定一个所检测到的事件发生是否是由IU25、FX30或者FP26产生(亦即事件发生是否属于第一事件组)。如果是,则判定线程0是否是活动线程,其由框178表示。如果线程0是活动线程,那么处理前进到方框180,这里事件发生如果被选择的话被传输到PMC1-PMC4中合适的一个。然而,如果线程1是活动的线程,那么处理从框178前进到方框182,方框182表示事件发生如果被选择的话被传输到PMC5-PMC8中合适的一个。
返回框176,如果一个被检测到的事件发生不是由IU25、FX30或者FP26产生的话,那么处理前进到框184。框184判定该事件发生是否由SC23产生。如果是,则处理前进到框186,在这里判定该事件发生是响应处理线程0还是响应处理线程1而产生。如果该事件发生是响应处理线程0而产生,那么处理前进到方框188,方框188表示如果该事件发生被选择就发送该事件发生到PMC1-PMC4中的一个。另外,如果在框186判定该事件发生是响应处理线程1而产生,那么处理前进到方框190,方框190表示如果该事件发生被选择就发送该事件发生到PMC5-PMC8中的一个。
再次参考框184,如果判定该事件发生不是由SC23产生,那么处理前进到方框192,它判定该事件发生是由BIU12、LB15或者L2超高速缓冲存储器接口58产生。响应这一判定,如果该事件发生被选择的话,则其被送到PMC1-PMC8中合适的一个。
现在参考图5,其中说明总结性能监视器50的中断行为的一个逻辑流图。如图所示,该处理从框130开始,之后前进到框132,在这里判定性能监视器50是否工作在多线程方式。框132所示判定例如可以通过检查控制寄存器80之内的一个预定的位字段的值实现。如果性能监视器50不是工作在多线程方式而工作在全局方式的话,则处理前进到框134,这里判定PMC1-PMC8中某一个的位0是否具有值1。如果不是,则处理返回到框132。然而,如果PMC84中至少有一个的位0设定为1,那么如图5方框150所示,产生一个性能监视器中断。
与全局方式相反,当性能监视器50工作在多线程方式时,只有与活动线程相关的中断被提交给软件。于是,参考图5中框136和框138,如果线程0是活动的,那么只提供与PMC84a相关的中断;与PMC84b相关的中断被保存,直到线程1再次活动。另外,如框140和150所示,如果线程1是活动的,那么与PMC84b相关的中断被提交给软件,而与PMC84a相关的中断被保存,直到线程0再次活动。在图3中,这种中断行为由OR门104和108与AND门106和110实现。
现在参考图6,其中表示总结存取性能监视器50内的PMC1-PMC8的方法的一个逻辑流图。如图所示,处理从框200响应LSU32接收从调度单元21来的指令开始,调度单元指定一个特定的要读取的PMC。响应该指令,LSU32把PMC号码交给性能监视器50,其如图所示在框202判定它工作在多线程方式还是全局方式。如方框204所示,响应性能监视器50工作在全局方式的判定,性能监视器50输出指定的PMC的值到整数寄存器38中指定的一个。
再次参考框202,响应性能监视器50工作在多线程方式,处理前进到框206。框206判定,线程0还是线程1是活动线程。如果线程1是活动线程,那么被指定的PMC地址(其有效范围是1-4)映射在PMC5-PMC8中对应的一个,如方框208说明。另外,如果线程0是活动线程,那么使用该指定的PMC地址访问PMC1-PMC4中相应的一个,如方框210所说明。如图3所示,这一PMC地址映射是由寻址逻辑90实现的。
如上所述,本发明提供一个多线程处理器,它包括一个当工作在第一方式时能够单独地监视多个并发线程的性能的性能监视器。另外,该性能监视器可以用软件配置工作在第二方式,在这种方式下集中监视由处理器产生的所有事件发生。虽然本发明是特别参考一个优选实施例表示和说明的,但是熟悉本技术领域的人理解,可以进行各种形式和细节的改变而不离开本发明的精神和范围。
Claims (18)
1.一种在一个多线程处理器中的性能监视系统,包括一个响应在第一线程内的指令和第二线程内的指令的处理器和一个性能监视器,其特征在于:所述性能监视器单独地记录由所述处理器响应所述第一线程产生的一个第一事件发生和由所述处理器响应所述第二线程产生的一个第二事件发生,所述性能监视器包括至少一个第一计数器和一个第二计数器,以及具有第一工作方式和第二工作方式,当所述性能监视器工作在所述第一方式时,所述第一计数器响应所述第一事件发生递增,所述第二计数器响应所述第二事件发生递增;
当所述性能监视器工作在所述第二工作方式时,所述第一计数器既响应所述第一事件发生也响应所述第二事件发生递增。
2.权利要求1的所述系统,其特征在于,所述处理器和所述性能监视器都在一个单一半导体基片形成。
3.权利要求1的所述系统,其特征在于,所述第一事件发生和所述第二事件发生是同一事件的两次发生。
4.权利要求1所述系统,其特征在于,所述处理器响应所述第一和第二线程产生多个不同事件的发生,所述性能监视器包括一个控制器,它选择判定记录其发生的所述多个不同事件的一个子集。
5.权利要求1所述系统,其特征在于,所述多线程处理器一时执行所述第一线程和所述第二线程中的一个,所述处理器在产生所述第一事件发生和响应所述第一线程产生的一个第三事件发生之间至少执行所述第二线程内的一条指令,所述性能监视器把所述第一事件发生和所述第三事件发生记录在一起。
6.权利要求1所述系统,其特征在于,所述处理器在所述第一线程不活动时产生所述第一事件发生。
7.权利要求1所述系统,其特征在于,所述性能监视器包括多个记录事件发生的计数器,所述多个计数器的第一子组分配给所述第一线程,所述多个计数器的第二子组分配给所述第二线程,对于一个特定的事件,只有属于所述第一子组的一个计数器可以响应在所述第一线程活动时产生的所述特定事件的发生递增,只有属于所述第二子组的一个计数器可以响应在所述第二线程活动时产生的所述特定事件的发生递增。
8.权利要求7所述系统,其特征在于,进一步包括寻址逻辑,其中响应从所述第一和第二线程之一来的一个读请求,所述寻址逻辑映射所述读请求到在所述第一和第二计数器子组中相应一组中的一个特定的计数器。
9.权利要求7所述系统,其特征在于,进一步包括中断产生电路,其中所述中断产生电路仅在所述第一线程活动时响应所述第一子组中的一个计数器的状态产生一个中断,和仅在所述第二线程活动时响应所述第二子组中的一个计数器的状态产生一个中断。
10.一种在一个多线程处理器中的性能监视方法,所述方法包括:
在一个多线程处理器中,处理一个第一线程和一个第二线程;
在所述多线程处理器中响应处理所述第一线程产生一个第一事件发生和在所述多线程处理器中响应处理所述第二线程产生一个第二事件发生,所述第一事件发生和所述第二事件发生是同一事件的两次发生;
分别记录所述第一事件发生和所述第二事件发生。
11.权利要求10所述方法,其特征在于,所述多线程处理器具有一个包括第一计数器和第二计数器的性能监视器,所述性能计数器具有第一工作方式,其中,响应所述性能监视器工作在所述第一方式执行分别记录所述第一事件发生和所述第二事件发生的所述步骤,所述记录步骤包括步骤:
响应所述第一事件发生递增所述第一计数器和响应所述第二事件发生递增所述第二计数器。
12.权利要求10所述方法,其特征在于,所述性能监视器具有第二工作方式以及所述方法进一步包括步骤:
响应所述性能监视器工作在所述第二方式,既响应所述第一事件发生也响应所述第二事件发生递增所述第一计数器。
13.权利要求10所述方法,其特征在于,所述多线程处理器响应处理所述第一和第二线程产生多个不同事件的发生,所述方法进一步包括步骤:
选择判定记录其发生的所述多个不同事件的一个子集。
14.权利要求10所述方法,其特征在于,所述多线程处理器一时执行所述第一线程和所述第二线程中的一个,所述处理器在产生所述第一事件发生和响应所述第一线程产生的一个第三事件发生之间至少执行所述第二线程内的一条指令,所述方法进一步包括把所述第一事件发生和所述第三事件发生记录在一起的步骤。
15.权利要求10所述方法,其特征在于,产生所述第一事件发生的所述步骤包括当所述第一线程不活动时产生所述第一事件发生的步骤。
16.权利要求10所述方法,其特征在于,所述多线程处理器包括多个记录事件发生的计数器,其中所述多个计数器的第一子组分配给所述第一线程,所述多个计数器的第二子组分配给所述第二线程,所述第一事件发生和所述第二事件发生是一个特定事件的两次发生,其中分别记录所述第一事件发生和所述第二事件发生的所述步骤包括:
响应所述第一线程活动时产生的所述特定事件的一个发生递增属于所述第一子组的一个计数器;
响应所述第二线程活动时产生的所述特定事件的一个发生递增属于所述第二子组的一个计数器。
17.权利要求16所述方法,其特征在于,进一步包括:
响应由所述第一和第二线程之一的一个读请求,映射所述读请求到在所述第一和第二计数器子组中相应一组中的一个特定的计数器。
18.权利要求16所述方法,其特征在于,进一步包括步骤:
仅在所述第一线程活动时响应所述第一子组中的一个计数器的状态产生一个中断,和仅在所述第二线程活动时响应所述第二子组中的一个计数器的状态产生一个中断。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US814390 | 1997-03-11 | ||
US08/814,390 US5835705A (en) | 1997-03-11 | 1997-03-11 | Method and system for performance per-thread monitoring in a multithreaded processor |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1193144A CN1193144A (zh) | 1998-09-16 |
CN1153139C true CN1153139C (zh) | 2004-06-09 |
Family
ID=25214923
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB981043984A Expired - Fee Related CN1153139C (zh) | 1997-03-11 | 1998-02-09 | 多线程处理器中性能监视的方法和系统 |
Country Status (8)
Country | Link |
---|---|
US (2) | US5835705A (zh) |
JP (1) | JP3609603B2 (zh) |
KR (1) | KR100384263B1 (zh) |
CN (1) | CN1153139C (zh) |
GB (1) | GB2324393B (zh) |
HK (1) | HK1015049A1 (zh) |
SG (1) | SG60202A1 (zh) |
TW (1) | TW385387B (zh) |
Families Citing this family (144)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6073159A (en) * | 1996-12-31 | 2000-06-06 | Compaq Computer Corporation | Thread properties attribute vector based thread selection in multithreading processor |
US5835705A (en) * | 1997-03-11 | 1998-11-10 | International Business Machines Corporation | Method and system for performance per-thread monitoring in a multithreaded processor |
US5991708A (en) * | 1997-07-07 | 1999-11-23 | International Business Machines Corporation | Performance monitor and method for performance monitoring within a data processing system |
US6567839B1 (en) * | 1997-10-23 | 2003-05-20 | International Business Machines Corporation | Thread switch control in a multithreaded processor system |
US6161166A (en) * | 1997-11-10 | 2000-12-12 | International Business Machines Corporation | Instruction cache for multithreaded processor |
US6256775B1 (en) * | 1997-12-11 | 2001-07-03 | International Business Machines Corporation | Facilities for detailed software performance analysis in a multithreaded processor |
US6098169A (en) * | 1997-12-23 | 2000-08-01 | Intel Corporation | Thread performance analysis by monitoring processor performance event registers at thread switch |
US6067643A (en) * | 1997-12-24 | 2000-05-23 | Intel Corporation | Programmable observation system for monitoring the performance of a graphics controller |
US6115682A (en) * | 1997-12-24 | 2000-09-05 | Intel Corporation | Apparatus for analyzing the performance of a computer system |
US6272520B1 (en) * | 1997-12-31 | 2001-08-07 | Intel Corporation | Method for detecting thread switch events |
FI108478B (fi) * | 1998-01-21 | 2002-01-31 | Nokia Corp | Sulautettu jõrjestelmõ |
US6044447A (en) * | 1998-01-30 | 2000-03-28 | International Business Machines Corporation | Method and apparatus for communicating translation command information in a multithreaded environment |
KR100280460B1 (ko) * | 1998-04-08 | 2001-02-01 | 김영환 | 데이터 처리 장치 및 이의 복수의 스레드 처리 방법 |
US6457064B1 (en) * | 1998-04-27 | 2002-09-24 | Sun Microsystems, Inc. | Method and apparatus for detecting input directed to a thread in a multi-threaded process |
US6275782B1 (en) | 1998-05-05 | 2001-08-14 | Advanced Micro Devices, Inc. | Non-intrusive performance monitoring |
US6256637B1 (en) * | 1998-05-05 | 2001-07-03 | Gemstone Systems, Inc. | Transactional virtual machine architecture |
US6243666B1 (en) * | 1998-06-12 | 2001-06-05 | Unisys Corporation | Maintenance system and interface for use in a modularized, high-speed data processing system |
US6301615B1 (en) * | 1998-10-14 | 2001-10-09 | Sun Microsystems, Inc. | Cluster performance monitoring utility |
US7035997B1 (en) | 1998-12-16 | 2006-04-25 | Mips Technologies, Inc. | Methods and apparatus for improving fetching and dispatch of instructions in multithreaded processors |
US6389449B1 (en) | 1998-12-16 | 2002-05-14 | Clearwater Networks, Inc. | Interstream control and communications for multi-streaming digital processors |
US7257814B1 (en) | 1998-12-16 | 2007-08-14 | Mips Technologies, Inc. | Method and apparatus for implementing atomicity of memory operations in dynamic multi-streaming processors |
US7237093B1 (en) | 1998-12-16 | 2007-06-26 | Mips Technologies, Inc. | Instruction fetching system in a multithreaded processor utilizing cache miss predictions to fetch instructions from multiple hardware streams |
US7020879B1 (en) * | 1998-12-16 | 2006-03-28 | Mips Technologies, Inc. | Interrupt and exception handling for multi-streaming digital processors |
US6477562B2 (en) * | 1998-12-16 | 2002-11-05 | Clearwater Networks, Inc. | Prioritized instruction scheduling for multi-streaming processors |
US7529907B2 (en) | 1998-12-16 | 2009-05-05 | Mips Technologies, Inc. | Method and apparatus for improved computer load and store operations |
US6341338B1 (en) * | 1999-02-04 | 2002-01-22 | Sun Microsystems, Inc. | Protocol for coordinating the distribution of shared memory |
US6434714B1 (en) * | 1999-02-04 | 2002-08-13 | Sun Microsystems, Inc. | Methods, systems, and articles of manufacture for analyzing performance of application programs |
US6535905B1 (en) | 1999-04-29 | 2003-03-18 | Intel Corporation | Method and apparatus for thread switching within a multithreaded processor |
US6675371B1 (en) * | 1999-04-30 | 2004-01-06 | Hewlett-Packard Development Company, L.P. | Java and native application window integration |
US6542991B1 (en) | 1999-05-11 | 2003-04-01 | Sun Microsystems, Inc. | Multiple-thread processor with single-thread interface shared among threads |
US7086035B1 (en) * | 1999-05-13 | 2006-08-01 | International Business Machines Corporation | Method and system for counting non-speculative events in a speculative processor |
FI107422B (fi) * | 1999-06-24 | 2001-07-31 | Nokia Corp | Istuntojen hallinta |
US6542921B1 (en) * | 1999-07-08 | 2003-04-01 | Intel Corporation | Method and apparatus for controlling the processing priority between multiple threads in a multithreaded processor |
ATE475930T1 (de) * | 1999-09-01 | 2010-08-15 | Intel Corp | Verzweigungsbefehl für einen mehrfachverarbeitungsprozessor |
US6557167B1 (en) * | 1999-09-03 | 2003-04-29 | International Business Machines Corporation | Apparatus and method for analyzing performance of a computer program |
US6754690B2 (en) * | 1999-09-16 | 2004-06-22 | Honeywell, Inc. | Method for time partitioned application scheduling in a computer operating system |
US7761857B1 (en) * | 1999-10-13 | 2010-07-20 | Robert Bedichek | Method for switching between interpretation and dynamic translation in a processor system based upon code sequence execution counts |
US6714904B1 (en) * | 1999-10-13 | 2004-03-30 | Transmeta Corporation | System for using rate of exception event generation during execution of translated instructions to control optimization of the translated instructions |
US6357016B1 (en) * | 1999-12-09 | 2002-03-12 | Intel Corporation | Method and apparatus for disabling a clock signal within a multithreaded processor |
US6889319B1 (en) * | 1999-12-09 | 2005-05-03 | Intel Corporation | Method and apparatus for entering and exiting multiple threads within a multithreaded processor |
US6496925B1 (en) | 1999-12-09 | 2002-12-17 | Intel Corporation | Method and apparatus for processing an event occurrence within a multithreaded processor |
US7051329B1 (en) | 1999-12-28 | 2006-05-23 | Intel Corporation | Method and apparatus for managing resources in a multithreaded processor |
US6671795B1 (en) * | 2000-01-21 | 2003-12-30 | Intel Corporation | Method and apparatus for pausing execution in a processor or the like |
US7035989B1 (en) | 2000-02-16 | 2006-04-25 | Sun Microsystems, Inc. | Adaptive memory allocation |
US7856633B1 (en) | 2000-03-24 | 2010-12-21 | Intel Corporation | LRU cache replacement for a partitioned set associative cache |
US6594821B1 (en) * | 2000-03-30 | 2003-07-15 | Transmeta Corporation | Translation consistency checking for modified target instructions by comparing to original copy |
US7093109B1 (en) * | 2000-04-04 | 2006-08-15 | International Business Machines Corporation | Network processor which makes thread execution control decisions based on latency event lengths |
US6546359B1 (en) | 2000-04-24 | 2003-04-08 | Sun Microsystems, Inc. | Method and apparatus for multiplexing hardware performance indicators |
US6647546B1 (en) | 2000-05-03 | 2003-11-11 | Sun Microsystems, Inc. | Avoiding gather and scatter when calling Fortran 77 code from Fortran 90 code |
US6802057B1 (en) | 2000-05-03 | 2004-10-05 | Sun Microsystems, Inc. | Automatic generation of fortran 90 interfaces to fortran 77 code |
US6556952B1 (en) | 2000-05-04 | 2003-04-29 | Advanced Micro Devices, Inc. | Performance monitoring and optimizing of controller parameters |
US6615300B1 (en) | 2000-06-19 | 2003-09-02 | Transmeta Corporation | Fast look-up of indirect branch destination in a dynamic translation system |
EP1311947B1 (en) | 2000-07-14 | 2011-01-19 | MIPS Technologies, Inc. | Instruction fetch and dispatch in multithreaded system |
US6986130B1 (en) | 2000-07-28 | 2006-01-10 | Sun Microsystems, Inc. | Methods and apparatus for compiling computer programs using partial function inlining |
US6748556B1 (en) * | 2000-08-15 | 2004-06-08 | International Business Machines Corporation | Changing the thread capacity of a multithreaded computer processor |
US6910107B1 (en) | 2000-08-23 | 2005-06-21 | Sun Microsystems, Inc. | Method and apparatus for invalidation of data in computer systems |
US6701447B1 (en) * | 2000-09-06 | 2004-03-02 | International Business Machines Corporation | System for delaying the counting of occurrences of a plurality of events occurring in a processor until the disposition of the event has been determined |
US6658584B1 (en) * | 2000-09-06 | 2003-12-02 | International Business Machines Corporation | Method and structure for managing large counter arrays |
US6854119B1 (en) * | 2000-09-29 | 2005-02-08 | International Business Machines Corporation | Method, apparatus and article of manufacture for tracking processes |
US7406681B1 (en) | 2000-10-12 | 2008-07-29 | Sun Microsystems, Inc. | Automatic conversion of source code from 32-bit to 64-bit |
US6957208B1 (en) | 2000-10-31 | 2005-10-18 | Sun Microsystems, Inc. | Method, apparatus, and article of manufacture for performance analysis using semantic knowledge |
US7448025B2 (en) * | 2000-12-29 | 2008-11-04 | Intel Corporation | Qualification of event detection by thread ID and thread privilege level |
GB2372847B (en) * | 2001-02-19 | 2004-12-29 | Imagination Tech Ltd | Control of priority and instruction rates on a multithreaded processor |
US7225446B2 (en) * | 2001-02-20 | 2007-05-29 | Pts Corporation | Context preservation |
US7320065B2 (en) | 2001-04-26 | 2008-01-15 | Eleven Engineering Incorporated | Multithread embedded processor with input/output capability |
US6651158B2 (en) * | 2001-06-22 | 2003-11-18 | Intel Corporation | Determination of approaching instruction starvation of threads based on a plurality of conditions |
US7134002B2 (en) * | 2001-08-29 | 2006-11-07 | Intel Corporation | Apparatus and method for switching threads in multi-threading processors |
US7363474B2 (en) * | 2001-12-31 | 2008-04-22 | Intel Corporation | Method and apparatus for suspending execution of a thread until a specified memory access occurs |
WO2003102758A1 (en) * | 2002-05-31 | 2003-12-11 | University Of Delaware | Method and apparatus for real-time multithreading |
US8024735B2 (en) * | 2002-06-14 | 2011-09-20 | Intel Corporation | Method and apparatus for ensuring fairness and forward progress when executing multiple threads of execution |
US7065596B2 (en) * | 2002-09-19 | 2006-06-20 | Intel Corporation | Method and apparatus to resolve instruction starvation |
US7185338B2 (en) * | 2002-10-15 | 2007-02-27 | Sun Microsystems, Inc. | Processor with speculative multithreading and hardware to support multithreading software |
US7360220B2 (en) * | 2002-10-31 | 2008-04-15 | Intel Corporation | Methods and apparatus for multi-threading using differently coded software segments to perform an algorithm |
US7174554B2 (en) * | 2002-12-20 | 2007-02-06 | Microsoft Corporation | Tools and methods for discovering race condition errors |
US7152170B2 (en) * | 2003-02-20 | 2006-12-19 | Samsung Electronics Co., Ltd. | Simultaneous multi-threading processor circuits and computer program products configured to operate at different performance levels based on a number of operating threads and methods of operating |
TWI261198B (en) * | 2003-02-20 | 2006-09-01 | Samsung Electronics Co Ltd | Simultaneous multi-threading processor circuits and computer program products configured to operate at different performance levels based on a number of operating threads and methods of operating |
US7310723B1 (en) | 2003-04-02 | 2007-12-18 | Transmeta Corporation | Methods and systems employing a flag for deferring exception handling to a commit or rollback point |
US7657893B2 (en) * | 2003-04-23 | 2010-02-02 | International Business Machines Corporation | Accounting method and logic for determining per-thread processor resource utilization in a simultaneous multi-threaded (SMT) processor |
US7496915B2 (en) * | 2003-04-24 | 2009-02-24 | International Business Machines Corporation | Dynamic switching of multithreaded processor between single threaded and simultaneous multithreaded modes |
US7143267B2 (en) * | 2003-04-28 | 2006-11-28 | International Business Machines Corporation | Partitioning prefetch registers to prevent at least in part inconsistent prefetch information from being stored in a prefetch register of a multithreading processor |
US7653904B2 (en) * | 2003-09-26 | 2010-01-26 | Intel Corporation | System for forming a critical update loop to continuously reload active thread state from a register storing thread state until another active thread is detected |
US7617488B2 (en) * | 2003-12-30 | 2009-11-10 | Intel Corporation | Method and apparatus and determining processor utilization |
US7406698B2 (en) * | 2003-12-30 | 2008-07-29 | Microsoft Corporation | Driver framework component for synchronizing interactions between a multi-threaded environment and a driver operating in a less-threaded software environment |
US7526757B2 (en) * | 2004-01-14 | 2009-04-28 | International Business Machines Corporation | Method and apparatus for maintaining performance monitoring structures in a page table for use in monitoring performance of a computer program |
US20050183065A1 (en) * | 2004-02-13 | 2005-08-18 | Wolczko Mario I. | Performance counters in a multi-threaded processor |
US8826241B2 (en) | 2004-02-16 | 2014-09-02 | Oracle America, Inc. | Instruction sampling in a multi-threaded processor |
US20050188186A1 (en) * | 2004-02-23 | 2005-08-25 | Wolczko Mario I. | Obtaining execution path information in an instruction sampling system |
US7555753B2 (en) * | 2004-02-26 | 2009-06-30 | International Business Machines Corporation | Measuring processor use in a hardware multithreading processor environment |
US20050198555A1 (en) * | 2004-03-03 | 2005-09-08 | Wolczko Mario I. | Incorporating instruction reissue in an instruction sampling mechanism |
US7154301B2 (en) * | 2004-03-26 | 2006-12-26 | Intel Corporation | Apparatus and method for a low jitter predriver for differential output drivers |
US7216223B2 (en) * | 2004-04-30 | 2007-05-08 | Hewlett-Packard Development Company, L.P. | Configuring multi-thread status |
US7590830B2 (en) * | 2004-05-28 | 2009-09-15 | Sun Microsystems, Inc. | Method and structure for concurrent branch prediction in a processor |
US7702887B1 (en) * | 2004-06-30 | 2010-04-20 | Sun Microsystems, Inc. | Performance instrumentation in a fine grain multithreaded multicore processor |
US20060005083A1 (en) * | 2004-06-30 | 2006-01-05 | International Business Machines Corporation | Performance count tracing |
GB0420442D0 (en) * | 2004-09-14 | 2004-10-20 | Ignios Ltd | Debug in a multicore architecture |
US7552212B2 (en) * | 2004-10-22 | 2009-06-23 | International Business Machines Corporation | Intelligent performance monitoring based on user transactions |
US20060129999A1 (en) * | 2004-11-16 | 2006-06-15 | Sony Computer Entertainment Inc. | Methods and apparatus for using bookmarks in a trace buffer |
US7681196B2 (en) * | 2004-11-18 | 2010-03-16 | Oracle International Corporation | Providing optimal number of threads to applications performing multi-tasking using threads |
US7200522B2 (en) * | 2005-01-27 | 2007-04-03 | International Business Machines Corporation | Method, apparatus, and computer program product in a performance monitor for sampling all performance events generated by a processor |
US20060212840A1 (en) * | 2005-03-16 | 2006-09-21 | Danny Kumamoto | Method and system for efficient use of secondary threads in a multiple execution path processor |
US7774784B2 (en) * | 2005-03-17 | 2010-08-10 | Microsoft Corporation | Determining an actual amount of time a processor consumes in executing a portion of code |
US7917907B2 (en) * | 2005-03-23 | 2011-03-29 | Qualcomm Incorporated | Method and system for variable thread allocation and switching in a multithreaded processor |
US20060271625A1 (en) * | 2005-05-25 | 2006-11-30 | International Business Machines Corporation | Selective monitoring and publishing of discussion threads with membership linking |
US20060277395A1 (en) * | 2005-06-06 | 2006-12-07 | Fowles Richard G | Processor performance monitoring |
US8413162B1 (en) | 2005-06-28 | 2013-04-02 | Guillermo J. Rozas | Multi-threading based on rollback |
US8230419B2 (en) * | 2005-07-26 | 2012-07-24 | International Business Machines Corporation | Method, system and program product for capturing central processing unit (CPU) utilization for a process on a virtual machine |
US7487317B1 (en) * | 2005-11-03 | 2009-02-03 | Sun Microsystems, Inc. | Cache-aware scheduling for a chip multithreading processor |
US20070139421A1 (en) * | 2005-12-21 | 2007-06-21 | Wen Chen | Methods and systems for performance monitoring in a graphics processing unit |
US8001549B2 (en) * | 2006-04-27 | 2011-08-16 | Panasonic Corporation | Multithreaded computer system and multithread execution control method |
JP4971679B2 (ja) * | 2006-05-10 | 2012-07-11 | ルネサスエレクトロニクス株式会社 | プロセッサシステム及びプロセッサシステムの性能測定方法 |
CN100409200C (zh) * | 2006-08-04 | 2008-08-06 | 上海科泰世纪科技有限公司 | 对嵌入式操作系统的性能信息进行实时监测的方法 |
US8380966B2 (en) * | 2006-11-15 | 2013-02-19 | Qualcomm Incorporated | Method and system for instruction stuffing operations during non-intrusive digital signal processor debugging |
US8533530B2 (en) * | 2006-11-15 | 2013-09-10 | Qualcomm Incorporated | Method and system for trusted/untrusted digital signal processor debugging operations |
US8370806B2 (en) | 2006-11-15 | 2013-02-05 | Qualcomm Incorporated | Non-intrusive, thread-selective, debugging method and system for a multi-thread digital signal processor |
US8341604B2 (en) * | 2006-11-15 | 2012-12-25 | Qualcomm Incorporated | Embedded trace macrocell for enhanced digital signal processor debugging operations |
US8264491B1 (en) * | 2007-04-09 | 2012-09-11 | Nvidia Corporation | System, method, and computer program product for controlling a shader to gather statistics |
US8484516B2 (en) * | 2007-04-11 | 2013-07-09 | Qualcomm Incorporated | Inter-thread trace alignment method and system for a multi-threaded processor |
WO2008155845A1 (ja) | 2007-06-20 | 2008-12-24 | Fujitsu Limited | 演算処理装置 |
US20090019797A1 (en) * | 2007-07-19 | 2009-01-22 | Cameron Todd Gunn | Simplified Protective Cover Assembly |
US7987345B2 (en) * | 2007-09-28 | 2011-07-26 | Broadcom Corporation | Performance monitors in a multithreaded processor architecture |
US9098625B2 (en) * | 2008-02-29 | 2015-08-04 | International Business Machines Corporation | Viral trace |
US8161493B2 (en) * | 2008-07-15 | 2012-04-17 | International Business Machines Corporation | Weighted-region cycle accounting for multi-threaded processor cores |
US8892916B2 (en) * | 2008-08-06 | 2014-11-18 | International Business Machines Corporation | Dynamic core pool management |
US20100115494A1 (en) * | 2008-11-03 | 2010-05-06 | Gorton Jr Richard C | System for dynamic program profiling |
US8024719B2 (en) | 2008-11-03 | 2011-09-20 | Advanced Micro Devices, Inc. | Bounded hash table sorting in a dynamic program profiling system |
US8478948B2 (en) | 2008-12-04 | 2013-07-02 | Oracle America, Inc. | Method and system for efficient tracing and profiling of memory accesses during program execution |
US8423972B2 (en) | 2009-02-27 | 2013-04-16 | International Business Machines Corporation | Collecting profile-specified performance data on a multithreaded data processing system |
US8578382B2 (en) * | 2009-05-19 | 2013-11-05 | Qualcomm Incorporated | Associating data for events occurring in software threads with synchronized clock cycle counters |
US9672132B2 (en) * | 2009-11-19 | 2017-06-06 | Qualcomm Incorporated | Methods and apparatus for measuring performance of a multi-thread processor |
KR101635816B1 (ko) | 2010-07-02 | 2016-07-04 | 삼성전자주식회사 | 결정적 프로그레스 인덱스를 이용한 스레드 프로그레스 트래킹 방법 및 장치 |
US9092568B2 (en) * | 2012-04-30 | 2015-07-28 | Nec Laboratories America, Inc. | Method and system for correlated tracing with automated multi-layer function instrumentation localization |
US20130332778A1 (en) * | 2012-06-07 | 2013-12-12 | Vmware, Inc. | Performance-imbalance-monitoring processor features |
US9021172B2 (en) | 2012-07-06 | 2015-04-28 | Arm Limited | Data processing apparatus and method and method for generating performance monitoring interrupt signal based on first event counter and second event counter |
US9471318B2 (en) | 2013-03-15 | 2016-10-18 | International Business Machines Corporation | System management and instruction counting |
US9298651B2 (en) * | 2013-06-24 | 2016-03-29 | International Business Machines Corporation | Continuous in-memory accumulation of hardware performance counter data |
US9799087B2 (en) | 2013-09-09 | 2017-10-24 | Apple Inc. | Shader program profiler |
US9405575B2 (en) * | 2013-09-09 | 2016-08-02 | Apple Inc. | Use of multi-thread hardware for efficient sampling |
US20150120009A1 (en) * | 2013-10-31 | 2015-04-30 | Rockwell Automation Technologies, Inc. | Independent Operation of Control Hardware and a Monitoring System in an Automation Controller |
US9122800B1 (en) * | 2014-05-30 | 2015-09-01 | Honeywell International Inc. | System and method of non-intrusive measurement of memory access profiles of threads in a multi-core processor |
CN104239183B (zh) * | 2014-09-22 | 2017-10-27 | 北京国双科技有限公司 | 监测系统性能的方法及装置 |
US10706101B2 (en) | 2016-04-14 | 2020-07-07 | Advanced Micro Devices, Inc. | Bucketized hash tables with remap entries |
US10909015B2 (en) * | 2016-12-30 | 2021-02-02 | Intel Corporation | Apparatus and method for generating performance monitoring metrics |
US10997048B2 (en) * | 2016-12-30 | 2021-05-04 | Intel Corporation | Apparatus and method for multithreading-aware performance monitoring events |
US10310830B2 (en) | 2017-06-02 | 2019-06-04 | Apple Inc. | Shader profiler |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US529727A (en) * | 1894-11-27 | William griscom | ||
US5694603A (en) * | 1982-09-28 | 1997-12-02 | Reiffin; Martin G. | Computer memory product with preemptive multithreading software |
US4821178A (en) * | 1986-08-15 | 1989-04-11 | International Business Machines Corporation | Internal performance monitoring by event sampling |
US5179702A (en) * | 1989-12-29 | 1993-01-12 | Supercomputer Systems Limited Partnership | System and method for controlling a highly parallel multiprocessor using an anarchy based scheduler for parallel execution thread scheduling |
US5193187A (en) * | 1989-12-29 | 1993-03-09 | Supercomputer Systems Limited Partnership | Fast interrupt mechanism for interrupting processors in parallel in a multiprocessor system wherein processors are assigned process ID numbers |
GB2256296B (en) * | 1991-05-31 | 1995-01-18 | Integrated Device Tech | Multiplexed status and diagnostic pins in a microprocessor with on-chip caches |
JPH0774984B2 (ja) * | 1991-06-10 | 1995-08-09 | インターナショナル・ビジネス・マシーンズ・コーポレイション | システム資源利用率測定方法とデータ処理システム |
US5355484A (en) * | 1991-08-12 | 1994-10-11 | International Business Machines Corporation | Dynamically established event monitors in event management services of a computer system |
JPH05204656A (ja) * | 1991-11-30 | 1993-08-13 | Toshiba Corp | スレッド固有データ保持方法 |
US5657253A (en) * | 1992-05-15 | 1997-08-12 | Intel Corporation | Apparatus for monitoring the performance of a microprocessor |
US5450349A (en) * | 1992-10-27 | 1995-09-12 | Digital Equipment Corporation | Computer system performance evaluation system and method |
US5490272A (en) * | 1994-01-28 | 1996-02-06 | International Business Machines Corporation | Method and apparatus for creating multithreaded time slices in a multitasking operating system |
AU2364095A (en) * | 1994-05-12 | 1995-12-05 | Ast Research, Inc. | Cpu activity monitoring through cache watching |
US5537541A (en) * | 1994-08-16 | 1996-07-16 | Digital Equipment Corporation | System independent interface for performance counters |
US5557548A (en) * | 1994-12-09 | 1996-09-17 | International Business Machines Corporation | Method and system for performance monitoring within a data processing system |
US5717926A (en) * | 1995-02-28 | 1998-02-10 | International Business Machines Corporation | Efficient forking of a process |
JPH096633A (ja) * | 1995-06-07 | 1997-01-10 | Internatl Business Mach Corp <Ibm> | データ処理システムに於ける高性能多重論理経路の動作用の方法とシステム |
US5838976A (en) * | 1995-11-28 | 1998-11-17 | Hewlett-Packard Co. | System and method for profiling code on symmetric multiprocessor architectures |
US5933627A (en) * | 1996-07-01 | 1999-08-03 | Sun Microsystems | Thread switch on blocked load or store using instruction thread field |
US5835705A (en) * | 1997-03-11 | 1998-11-10 | International Business Machines Corporation | Method and system for performance per-thread monitoring in a multithreaded processor |
US5907702A (en) * | 1997-03-28 | 1999-05-25 | International Business Machines Corporation | Method and apparatus for decreasing thread switch latency in a multithread processor |
-
1997
- 1997-03-11 US US08/814,390 patent/US5835705A/en not_active Expired - Lifetime
- 1997-10-23 US US08/955,404 patent/US6052708A/en not_active Expired - Lifetime
- 1997-11-04 TW TW086116367A patent/TW385387B/zh not_active IP Right Cessation
- 1997-11-26 KR KR1019970063192A patent/KR100384263B1/ko not_active IP Right Cessation
-
1998
- 1998-02-09 CN CNB981043984A patent/CN1153139C/zh not_active Expired - Fee Related
- 1998-02-19 SG SG1998000357A patent/SG60202A1/en unknown
- 1998-02-24 GB GB9803673A patent/GB2324393B/en not_active Expired - Lifetime
- 1998-03-02 JP JP04919098A patent/JP3609603B2/ja not_active Expired - Fee Related
-
1999
- 1999-01-05 HK HK99100012A patent/HK1015049A1/xx not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
GB2324393A (en) | 1998-10-21 |
HK1015049A1 (en) | 1999-10-08 |
KR100384263B1 (ko) | 2003-10-10 |
CN1193144A (zh) | 1998-09-16 |
US5835705A (en) | 1998-11-10 |
TW385387B (en) | 2000-03-21 |
GB2324393B (en) | 2002-03-13 |
US6052708A (en) | 2000-04-18 |
SG60202A1 (en) | 1999-02-22 |
GB9803673D0 (en) | 1998-04-15 |
JP3609603B2 (ja) | 2005-01-12 |
JPH10275100A (ja) | 1998-10-13 |
KR19980079486A (ko) | 1998-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1153139C (zh) | 多线程处理器中性能监视的方法和系统 | |
US6256775B1 (en) | Facilities for detailed software performance analysis in a multithreaded processor | |
US7316021B2 (en) | Switching method in a multi-threaded processor | |
US8789028B2 (en) | Memory access monitoring | |
US6061710A (en) | Multithreaded processor incorporating a thread latch register for interrupt service new pending threads | |
Sprunt | Pentium 4 performance-monitoring features | |
US6801997B2 (en) | Multiple-thread processor with single-thread interface shared among threads | |
USRE42213E1 (en) | Dynamic reconfigurable memory hierarchy | |
Peir et al. | Bloom filtering cache misses for accurate data speculation and prefetching | |
Cintra et al. | Eliminating squashes through learning cross-thread violations in speculative parallelization for multiprocessors | |
US6938147B1 (en) | Processor with multiple-thread, vertically-threaded pipeline | |
EP1185939A2 (en) | Vertically-threaded processor with multi-dimensional storage | |
US20030005423A1 (en) | Hardware assisted dynamic optimization of program execution | |
US20050120337A1 (en) | Memory trace buffer | |
Burger et al. | Datascalar architectures | |
Tse et al. | CPU cache prefetching: Timing evaluation of hardware implementations | |
Balasubramonian et al. | A dynamically tunable memory hierarchy | |
Sahuquillo et al. | Splitting the data cache: A survey | |
Oren | A Survey of prefetching techniques | |
Arge et al. | Efficient sorting using registers and caches | |
US20030004974A1 (en) | Configurable system monitoring for dynamic optimization of program execution | |
Lin et al. | Dynamic memory management for real-time embedded Java chips | |
Tanaka et al. | Highly Functional Memory Architecture for Large-Scale Data Applications | |
Chen et al. | Software methods for system address tracing: implementation and validation | |
Castro et al. | A load-store queue design based on predictive state filtering |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: GR Ref document number: 1015049 Country of ref document: HK |
|
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20040609 |