CN1153139C - 多线程处理器中性能监视的方法和系统 - Google Patents

多线程处理器中性能监视的方法和系统 Download PDF

Info

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
Application number
CNB981043984A
Other languages
English (en)
Other versions
CN1193144A (zh
Inventor
T・D・拉尔森
T·D·拉尔森
拉多尔夫
J·C·拉多尔夫
沃特伦
A·H·沃特伦
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1193144A publication Critical patent/CN1193144A/zh
Application granted granted Critical
Publication of CN1153139C publication Critical patent/CN1153139C/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
    • 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
    • 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/3409Recording 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/885Monitoring 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所述方法,其特征在于,进一步包括步骤:
仅在所述第一线程活动时响应所述第一子组中的一个计数器的状态产生一个中断,和仅在所述第二线程活动时响应所述第二子组中的一个计数器的状态产生一个中断。
CNB981043984A 1997-03-11 1998-02-09 多线程处理器中性能监视的方法和系统 Expired - Fee Related CN1153139C (zh)

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)

* Cited by examiner, † Cited by third party
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
US6256637B1 (en) * 1998-05-05 2001-07-03 Gemstone Systems, Inc. Transactional virtual machine architecture
US6275782B1 (en) 1998-05-05 2001-08-14 Advanced Micro Devices, Inc. Non-intrusive performance monitoring
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
US7529907B2 (en) 1998-12-16 2009-05-05 Mips Technologies, Inc. Method and apparatus for improved computer load and store operations
US6389449B1 (en) 1998-12-16 2002-05-14 Clearwater Networks, Inc. Interstream control and communications for multi-streaming digital processors
US7035997B1 (en) 1998-12-16 2006-04-25 Mips Technologies, Inc. Methods and apparatus for improving fetching and dispatch of instructions in multithreaded 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
US6477562B2 (en) * 1998-12-16 2002-11-05 Clearwater Networks, Inc. Prioritized instruction scheduling for multi-streaming processors
US7020879B1 (en) 1998-12-16 2006-03-28 Mips Technologies, Inc. Interrupt and exception handling for multi-streaming digital processors
US6434714B1 (en) * 1999-02-04 2002-08-13 Sun Microsystems, Inc. Methods, systems, and articles of manufacture for analyzing performance of application programs
US6341338B1 (en) * 1999-02-04 2002-01-22 Sun Microsystems, Inc. Protocol for coordinating the distribution of shared memory
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
EP1236093A4 (en) * 1999-09-01 2006-07-26 Intel Corp BRANCH COMMAND FOR A PROCESSOR ARCHITECTURE
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
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
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
US6889319B1 (en) 1999-12-09 2005-05-03 Intel Corporation Method and apparatus for entering and exiting multiple threads within a multithreaded processor
US6357016B1 (en) * 1999-12-09 2002-03-12 Intel Corporation Method and apparatus for disabling a clock signal 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
US20050188177A1 (en) * 2002-05-31 2005-08-25 The 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
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
US7617488B2 (en) * 2003-12-30 2009-11-10 Intel Corporation Method and apparatus and determining processor utilization
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
US20060005083A1 (en) * 2004-06-30 2006-01-05 International Business Machines Corporation Performance count tracing
US7702887B1 (en) * 2004-06-30 2010-04-20 Sun Microsystems, Inc. Performance instrumentation in a fine grain multithreaded multicore processor
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 上海科泰世纪科技有限公司 对嵌入式操作系统的性能信息进行实时监测的方法
US8533530B2 (en) * 2006-11-15 2013-09-10 Qualcomm Incorporated Method and system for trusted/untrusted digital signal processor debugging operations
US8380966B2 (en) * 2006-11-15 2013-02-19 Qualcomm Incorporated Method and system for instruction stuffing operations during non-intrusive digital signal processor debugging
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
US8024719B2 (en) 2008-11-03 2011-09-20 Advanced Micro Devices, Inc. Bounded hash table sorting in a dynamic program profiling system
US20100115494A1 (en) * 2008-11-03 2010-05-06 Gorton Jr Richard C System for dynamic program profiling
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
US10997048B2 (en) 2016-12-30 2021-05-04 Intel Corporation Apparatus and method for multithreading-aware performance monitoring events
US10909015B2 (en) * 2016-12-30 2021-02-02 Intel Corporation Apparatus and method for generating performance monitoring metrics
US10310830B2 (en) 2017-06-02 2019-06-04 Apple Inc. Shader profiler

Family Cites Families (21)

* Cited by examiner, † Cited by third party
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

Also Published As

Publication number Publication date
KR100384263B1 (ko) 2003-10-10
US6052708A (en) 2000-04-18
GB2324393B (en) 2002-03-13
SG60202A1 (en) 1999-02-22
US5835705A (en) 1998-11-10
JP3609603B2 (ja) 2005-01-12
HK1015049A1 (en) 1999-10-08
GB2324393A (en) 1998-10-21
KR19980079486A (ko) 1998-11-25
JPH10275100A (ja) 1998-10-13
GB9803673D0 (en) 1998-04-15
CN1193144A (zh) 1998-09-16
TW385387B (en) 2000-03-21

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
US6351808B1 (en) Vertically and horizontally threaded processor with multidimensional storage for storing thread data
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
US20030005423A1 (en) Hardware assisted dynamic optimization of program execution
US20050120337A1 (en) Memory trace buffer
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
Soundararajan Dribble-Back registers: A technique for latency tolerance in multiprocessors

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