CN100382061C - 按照类型对中断计数的方法和装置 - Google Patents
按照类型对中断计数的方法和装置 Download PDFInfo
- Publication number
- CN100382061C CN100382061C CNB2005100046307A CN200510004630A CN100382061C CN 100382061 C CN100382061 C CN 100382061C CN B2005100046307 A CNB2005100046307 A CN B2005100046307A CN 200510004630 A CN200510004630 A CN 200510004630A CN 100382061 C CN100382061 C CN 100382061C
- Authority
- CN
- China
- Prior art keywords
- interrupt
- counting
- type
- count
- interruption
- 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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
Abstract
本发明涉及一种用于按照类型计数中断的方法、装置和计算机指令。当特定类型的中断发生时,使中断计数递增。该计数可以被存储在IDT中,或者被存储在IDT外的中断计数表中。每当特定类型的中断发生时,中断单元使该计数递增。当可能出现计数溢出时,本发明的机制提供用于通知软件以便处理该溢出所需的逻辑。
Description
技术领域
本发明一般涉及一种改进的数据处理系统,尤其涉及一种用于当中断发生时在数据处理系统中监控处理器性能的方法和系统。更具体地讲,本发明涉及一种用于按照类型对中断计数的方法,装置和计算机指令。
背景技术
典型的数据处理系统利用处理器来执行一系列指令,以便执行诸如从主存储器读取特定字符的某种任务。然而,随着需要由处理器执行的任务数量的增加,对于寻求优化系统操作的工程师来说,处理器对存储器的访问模式的效率以及这种访问的特性成为重要的因素。
目前的现有技术中存在能够对数据处理系统中软件可选事件的发生进行计数的机制,诸如高速缓存故障(cache miss)、执行的指令、I/O数据传送请求、以及执行给定进程需要的时间。这样的机制之一是性能监控器。性能监控器通过监控所选的特性和确定系统在某个特定时间的状态来辅助执行对系统的分析。这种分析可以提供关于当执行指令时处理器怎样被使用以及当存储数据时处理器和主存储器的交互的信息。此外,该分析可以提供关于在系统中发生的事件之间经过的时间量的详细信息。于是,可以使用该性能监控器来辅助分析系统性能。
然而,上述的性能监控器不具有使用硬件来对特定类型的中断计数的能力。例如,当一个诸如鼠标或键盘的设备发出中断信号以通知处理器一个事件发生时,就发生了中断。当处理器接受中断请求时,该处理器完成它当前的指令,并且把控制传递给中断处理程序。中断处理程序执行与该中断相关的中断服务例程。中断也可以是由特定的机器语言操作代码造成的,例如,来自摩托罗拉(Motorola)公司的产品:摩托罗拉68000的软中断(TRAP)。在这种情况下,诸如除数为零这样的非期望软件状况导致处理器存储当前的状态、存储关于特定中断的识别信息,以及把控制传递给处理这种非期望软件状况的中断处理程序。
中断描述符表(IDT)是把每个中断和包含相应的中断服务例程的相应中断处理程序相关的系统表。上述的性能监控器也不提供用于按照类型计数中断的硬件支持。具有用于按照类型计数中断并且将该计数存储IDT中或IDT以外的中断计数表(ICT)表中的改进的方法、装置和计算机指令是有利的。此外,具有支持使用硬件可选性能监控器而不是软件可选性能监控器来按照类型计数中断的改进的方法也是有利的。
发明内容
本发明提供了一种用于按照类型计数中断的方法、装置和计算机指令。本发明的机制包括采用硬件计数器来按照类型计数中断和识别中断的中断单元。中断计数可以存储在中断描述符表(IDT)的一个位置中或存储在IDT之外的中断计数表(ICT)中。如果该计数存储在IDT中,则所存储的位置与中断类型相关,因此本发明的中断单元和相关的支持软件了解IDT中存储该计数的位置。可替换地,如果该计数存储在IDT之外,例如存储在中断计数表(ICT)中,则中断单元使用存储在寄存器中的ICT的地址以及使用中断类型,来确定使计数递增的位置。
一方面,本发明提供一种数据处理系统,包括:中断单元,所述中断单元接收用于启动中断的信号;其中,所述中断单元包含多个计数器,该多个计数器分别按照中断类型对多个中断的发生进行计数,每个中断类型的中断计数值被存储在中断描述符表中的与相应的中断服务例程对应的条目中。
另一方面,本发明提供一种用于在信息处理系统上执行指令的方法,包括下列步骤:在中断单元接收中断信号,其中,该中断信号用于在处理器中启动中断;响应于接收到所述中断信号,基于与所述中断信号相关联的中断类型,使第一计数器递增;其中,所述第一计数器是多个计数器中的一个;其中,所述多个计数器按照中断类型对中断的发生进行计数,其中,所述第一计数器的计数值被存储在中断描述符表中的与相应的中断服务例程对应的条目中。
本发明还提供了检测是否发生了计数溢出所需的逻辑。如果发生了计数溢出,则本发明的机制允许支持软件处理该溢出。一旦记录了针对特定中断类型的计数,则支持软件读取和重置该计数值,以便用户可以在其后的时间收集该结果,用于性能分析。
附图说明
在所附的权利要求中阐述了本发明的被认为是新颖性特征的特性。然而,结合附图阅读以下对说明性实施例的详细说明,发明本身及其优选使用模式、以及其目标和优点,将得到最好的理解,其中:
图1是其中实施了本发明的数据处理系统的范例方框图;
图2是根据本发明优选实施例的用于处理信息的处理系统的范例方框图;
图3是说明根据本发明优选实施例的按照类型计数中断的部件的范例方框图;
图4是说明根据本发明优选实施例的用于按照类型计数中断并且把计数存储在IDT之外的部件的范例方框图;
图5是根据本发明优选实施例的用于按照类型计数中断并且把计数存储在IDT之内的部件的范例方框图;和
图6是概括根据本发明优选实施例的按照类型计数中断的范例处理的流程图。
具体实施方式
本发明提供了一种用于按照类型计数中断的一种方法、装置和计算机指令。本发明的用于按照类型计数中断的机制最好使用中断单元来实现。当一个特定类型的中断发生时,使该中断计数递增。该中断计数可以存储在中断描述符表(IDT)或存储在IDT表外的中断计数表(ICT)中。
现在参照图1,示出其中实现了本发明的数据处理系统的范例方框图。客户机100是计算机例子,在其中可以定位实现本发明的处理的代码或指令。客户机100采用一个外设部件互联(PCI)局域总线结构。虽然所描述的范例采用了PCI总线,但是也可以采用诸如图形加速端口(AGP)和工业标准体系结构(ISA)等其他总线结构。处理器102和主存储器104通过PCI桥接器108连接到PCI局域总线106。PCI桥接器108还可以包括用于处理器102的集成存储器控制器和高速缓冲存储器。此外,可以通过直接部件互联或通过附加卡(add-in board)连接到PCI局域总线106。在所描述的例子中,局域网(LAN)适配器110、小型计算机系统接口SCSI主机总线适配器112以及扩展总线接口114通过直接部件连接而被连接到PCI局域总线106。相反,音频适配器116、图形适配器118以及音频/视频适配器119通过插入到扩展槽中的附加卡连接到PCI桥接器108。扩展总线接口114为键盘和鼠标适配器120、调制解调器122以及附加存储器124提供连接。SCSI主机总线适配器112为磁盘驱动器126、磁带驱动器128以及CD-ROM驱动器130提供连接。典型的PCI局域总线实现能支持3个或4个PCI扩展槽或附加连接器。
操作系统运行于处理器102上,并被用来对图1中的数据处理系统100的各个部件进行调节和提供控制。该操作系统可以是商业上可用的操作系统,诸如可从微软公司获得的Windows XP。诸如Java等的面向对象编程系统可以与操作系统一起运行,并提供从在客户机100上执行的Java程序或应用程序到操作系统的调用。“Java”是太阳微系统(Sun Microsystems)公司的商标。用于操作系统、面向对象编程系统以及应用程序或程序的指令位于诸如硬盘驱动器126等的存储设备上,并且可以被装载到主存储器104中以便由处理器102来执行。
本领域的技术人员将可以理解,图1中的硬件取决于如何被实现而变化。除图1中描述的硬件以外或者代替图1中描述的硬件,可以使用诸如闪存只读存储器(ROM)、等效的非易失性存储器或光盘驱动器等其他内部硬件或外部设备。并且,本发明的处理器可以被应用到多处理器数据处理系统中。
例如,如果客户机100被可选地配置成网络计算机,则它可能不包括SCSI主机总线适配器112、硬盘驱动器126、磁带驱动器128以及CD-ROM 130。在这种情况下,该计算机,正确来说应称为客户端计算机,包括某些类型的网络通信接口,诸如LAN适配器110、调制解调器122等。作为另一个例子,不论客户机100是否包括某些类型的网络通信接口,客户机100可以是被配置成可以不依赖于某些类型的网络通信接口而启动的单机系统。作为另一个例子,客户机100可能是个人数字助理(PDA),它配置有ROM和/或闪存ROM以提供用于存储操作系统文件和/或用户生成数据的非易失性存储器。图1中所描述的例子和上述的例子并不意味着对结构的限制。
本发明的处理是由处理器102使用计算机实现的指令来执行的,例如,这些计算机所实现的指令可以位于存储器中,诸如主存储器104、存储器124中或一个或多个外设126-130中。
现在转到图2,描述根据本发明优选实施例的用于处理信息的处理器系统的一个范例方框图。处理器210可以被实现为图1中的处理器102。
在一个优选实施例中,处理器210是一个单一集成电路超标量微处理器。因此,如下面所述,处理器210包括各种单元、寄存器、缓冲器、存储器以及其它部分,而所有这些部分都是由集成电路形成的。并且,在优选实施例中,处理器210根据精简指令集计算机(“RISC”)技术进行操作。如图2所示,系统总线211连接到处理器210的一个总线接口单元(“BIU”)212。BIU 212控制在处理器210和系统总线211之间的信息传送。
BIU 212连接到处理器210的指令高速缓存214和数据高速缓存216。指令高速缓存214输出指令到序列发生器单元218。响应于这种来自指令高速缓存214的指令,序列发生器单元218选择性地输出指令到处理器210的其它执行电路。
在优选实施例中,除了序列发生器单元218,处理器210的执行电路还包括多个执行单元,即分支单元220、定点单元A(“FXUA”)222、定点单元B(“FXUB”)224、复数定点单元(“CFXU”)226、装载/存储单元(“LSU”)228以及浮点单元(“FPU”)230。FXUA 222、FXUB 224、CFXU 226以及LSU 228从通用结构寄存器(“GPR”)232和定点更名缓冲器234输入它们的源操作数信息。而且,FXUA 222和FXUB 224从进位位(“CA”)寄存器239输入一个“进位位”。FXUA 222、FXUB 224、CFXU 226以及LSU 228输出它们操作的结果(目的操作数信息)以便存储在定点更名缓冲器234的所选条目中。而且,CFXU 226从专用寄存器处理单元(“SPR单元”)237输入以及向专用寄存器处理单元(“SPR单元”)237输出源操作数信息和目的操作数信息。
FPU 230从浮点架构寄存器(“FPR”)236和浮点更名缓冲器238输入其源操作数信息。FPU 230输出其操作结果(目的操作数信息),以便存储在浮点更名缓冲器238的所选条目中。
响应于装载指令,LSU 228从数据高速缓存216输入信息并且把这种信息复制到所选的更名缓冲器234和238之一中。如果这种信息没有存储在数据高速缓存216中,则数据高速缓存216从连接到系统总线211的系统存储器239中(通过BIU 212和系统总线211)输入这种信息。而且,数据高速缓存216能够从数据高速缓存216(通过BIU 212和系统总线211)将信息输出到连接到系统总线211的系统存储器239。响应于存储指令,LSU 228从所选的GPR 232和FPR 230之一中输入信息,并且把这种信息复制到数据高速缓存216。
序列发生器单元218从GPR 232和FPR 236输入信息以及向GPR 232和FPR 236输出信息。从序列发生器单元218,分支单元220输入指令和指示处理器210当前状态的信号。响应于这种指令和信号,分支单元220(向序列发生器单元218)输出信号,该信号指示存储由处理器210执行的指令序列的适当存储器地址。响应于这种来自分支单元220的信号,序列发生器单元218从指令高速缓存214输入所指示的指令序列。如果一个或多个指令序列没有存储在指令高速缓存214中,则指令高速缓存214从连接到系统总线211的系统存储器239(通过BIU 212和系统总线211)输入这种指令。
响应于从指令高速缓存214输入的指令,序列发生器单元218选择性地分派(dispatch)指令到执行单元220、222、224、226、228和230中的所选执行单元。每个执行单元执行一或多个用于特定指令类别的指令。例如,FXUA222和FXUB 224对源操作数执行第一类定点数学运算,诸如加、减、与操作、或操作以及异或操作。CFXU 226对源操作数执行第二类定点运算,诸如定点乘法和除法。FPU 230对源操作数执行浮点操作,诸如浮点乘法和除法。
由于该信息被存储在所选择的一个更名缓冲器234中,这种信息与由分配了所选更名缓冲器的指令所规定的存储位置(例如,GPR 232或进位位(CA)寄存器242之一)相关联。响应于来自序列发生器单元218的信号,存储在所选的一个更名缓冲器234中的信息被复制到其相关联的那个GPR 232(或CA寄存器242)中。序列发生器单元218响应于产生该信息的指令的“完成”,命令对存储在所选的一个更名缓冲器234中的信息进行这种复制。这种复制被称为“回写”(writeback)。
由于信息被存储在所选的一个更名缓冲器238中,这种信息与FPR 236之一相关联。响应于来自序列发生器单元218的信号,存储在所选的一个更名缓冲器238中的信息被复制到其相关联的那个FPR 236中。序列发生器单元218响应于产生该信息的指令的“完成”,命令对存储在所选的一个更名缓冲器238中的信息进行这种复制。
处理器210通过在各个执行单元220、222、224、226、228和230中同时处理多个指令来达到高性能。因此,每个指令被作为级的序列来处理,每一级可以与其他指令的级并行执行。这种技术被称为“流水线操作”。在说明性实施例的一个重要方面,指令通常被作为6级处理,即拾取、解码、分派、执行、完成和回写。
在拾取级,序列发生器单元218选择性地从上文结合分支单元220以及序列发生器单元218进一步讨论的存储指令序列的一个或多个存储器地址中输入一个或多个指令。
在解码级,序列发生器单元218至多解码4个拾取的指令。
在分派级,序列发生器单元218在保留用于分配指令结果(目的操作数信息)的更名缓冲器条目后,(响应于在解码级中的解码)选择性地向执行单元220、222、224、226、228和230中所选的那些执行单元分派最多4个解码的指令。在分派级,操作数信息被提供给所选的执行单元,用于分派的指令。处理器210按指令的编程顺序分派这些指令。
在执行级,如上文所述,执行单元执行它们所分派的指令,并且输出它们的操作的结果(目的操作数信息)以便存储在更名缓冲器234和更名缓冲器238的所选条目中。通过这种方式,处理器210能够不按照与它们的编程顺序相关的次序,来执行这些指令。
在完成级,序列发生器单元218指示一个指令已“完成”。处理器210以它们的编程顺序,来“完成”这些指令。
在回写级,序列发生器单元218命令将信息分别从更名缓冲器234和238复制到GPR 232和FPR 236。序列发生器单元218命令对存储在所选的更名缓冲器中的信息进行这种复制。同样,在一个特定指令的回写级,处理器210响应于该特定指令更新其结构状态。处理器210以它们的编程顺序来处理指令的各个“回写级”。在特定的情况下,处理器210有利地把指令的完成级和回写级合并。
在说明性的实施例中,每个指令需要一个机器周期来完成每级的指令处理。然而,某些指令(例如由CFXU 226执行的复数定点指令)可能需要超过一个周期。因此,在一个特定指令的执行级和完成级之间,可能响应于用于完成前一指令所需时间的变化,产生可变延迟。
在序列发生器单元218中配备完成缓冲器248,以跟踪正在执行单元中被执行的多个指令的完成。一旦指示一个指令或一组指令已成功完成,可以利用完成缓冲器248以应用程序规定的序列顺序,来启动把那些已完成指令的结果传送到相关的通用寄存器的操作。
此外,处理器210还包括中断单元250,中断单元250连接到指令高速缓存214。此外,虽然在图2中没有示出,中断单元250连接到处理器210之中的其它功能单元。中断单元250可以从其它功能单元接收信号并启动一个动作,例如开始错误处理或软中断处理。在这些例子中,中断单元250用来产生可能在程序执行期间出现的中断和异常。中断单元250还可以用来按照类型对中断的发生进行计数,并且相应地使计数值递增。
如上所述,本发明提供了一种用于按照类型计数中断的方法、装置和计算机指令。换句话说,本发明提供了一种用于对特定中断类型的发生次数进行计数的机制。一个中断类型可以是例如与中断相关的特定中断向量,诸如虚拟哈希页表(VHPT)指令错误或是翻译后援缓冲器(TLB)数据错误。本发明允许对在一个定义的周期—例如数个时钟周期—内发生这些范例中断类型的次数进行计数。此外,本发明的中断单元,诸如图2中的中断单元250,使用硬件计数器来使计数递增,而不是像现有技术中那样,采用支持软件来执行计数。
转到图3,描述了根据本发明优选实施例的用于按照类型计数中断的说明性部件的范例方框图。在这个范例实施例中,中央处理单元(CPU)302可以被实现为图2中的处理器210。当中断发生时,CPU 302发送信号给中断单元304,来请求中断单元304产生针对特定中断类型的中断信号。当产生该信号时,中断单元304使针对该中断类型的计数递增。所得的数据被存储,并且可以由支持软件在以后的时间进行收集。
在本发明的一个实施例中,本发明的机制在中断描述符表(IDT)中存储该计数。中断描述符表是一个把每个中断和包含相应中断服务例程的相应中断处理程序相关的系统表。当一个特定类型的中断发生时,中断单元使相关的计数递增。每个IDT条目与一个计数存储区域相关。存储区域与中断类型相关,使得本发明的中断单元以及相关的支持软件了解在IDT中存储该计数的位置。当一个特定类型的中断发生时,在中断处理程序执行中断服务例程之前,本发明的中断单元在IDT中定位该计数的存储器地址,并且使该计数值递增。
转到图4,描述了根据本发明实施例的用于按照类型计数中断并且将该计数存储在IDT中的说明性部件的范例图。在这个范例实现中,中断描述符表(IDT)402包括IDT的偏移地址404和内容406。在这个例子中,针对每个中断类型的计数或IDT条目VHPT数据错误计数408存储在IDT 402中,并具有偏移地址例如0x0000410。包含中断服务例程的相应代码,例如VHPT数据错误代码412,也存储在IDT 402中,并具有代码偏移地址0x0008414。在这个例子中,存储在IDT中的计数的大小是8个字节,而针对每个中断类型的代码大小是400字节。然而,针对每个中断类型的代码大小可以改变。于是,中断单元可以针对每个中断类型在IDT中定位计数的地址,以便进行递增。
在本发明的另一个实施例中,计数被存储在IDT之外的中断计数表(ICT)中。ICT存储由一个偏移地址定位(reference)的针对每个中断类型的计数值。首先由支持软件分配ICT,并且将该ICT的存储器地址通知给处理器。ICT的存储器地址可以通过使用寄存器来定位。当一个特定类型的中断发生时,中断单元来到ICT的存储器地址,并且针对该特定中断类型来察看计数被存储在ICT中的偏移地址。依次,中断单元使该存储区域中的计数递增,并且该处理器继续处理该类型的中断服务例程。一旦计数被递增,则支持软件在需要时可以在以后读取该计数值并重置该计数。
转到图5,描述了根据本发明优选实施例的用于按照类型计数中断并且该计数被存储在IDT之外的说明性部件的范例图。在这个范例实现中,中断描述符表(IDT)502包括偏移地址504、中断类型506以及计数偏移508。在IDT 502中表示的中断类型506仅用于说明目的。
在IDT 502中,每个中断类型506对应于标识相关中断服务例程的起始地址的偏移地址,诸如偏移地址504。可以使用诸如方程510等方程来对支持软件编程。方程510获取诸如计数偏移508等计数偏移值,并且乘以8。例如,VHPT数据错误中断具有一个为0的计数偏移值,方程510把0乘以8,其结果值为0。随后,该结果被添加到该例子中的存储器地址0x4000,以得出该计数的偏移地址。存储器地址0x4000是由寄存器指示的ICT 512的存储器地址。在这个例子中,0被添加到存储器地址0x4000,这产生偏移地址0x4000514。使用方程510和计数偏移508,每个中断类型或IDT条目被与其中存储了计数的不同偏移地址相关。于是,中断单元可以针对每个中断类型,使存储在由方程510计算出的偏移地址中的计数递增。
本发明还提供一种用于处理计数溢出的机制。当用于存储计数的位数量将要用尽(wrap)时,可能发生溢出。本发明的机制通过在处理器状态寄存器(PSR)中设置溢出标记,或者通过向处理器发送中断信号以便通知该处理器可能发生溢出,来提供向软件指示可能的溢出所需的机制。在可从英特尔公司获得的英特尔64位处理器结构中,处理器状态寄存器(PSR)是维持当前运行处理的控制信息的64位寄存器。结果,如果设置了溢出标记或者发送了溢出中断信号,支持软件可以相应地处理该溢出,诸如通过读取该计数和重置该计数值。
转到图6,描述了根据本发明优选实施例的概括按照类型计数中断的范例处理的流程图。当发生中断时该处理开始(步骤602),中断单元针对特定中断类型产生中断信号(步骤604)。如果需要,支持软件就分配计数存储存储器(步骤606),并且通知CPU该计数存储存储器的存储器地址(步骤608)。该中断单元定位该计数存储偏移地址(步骤610),并确定该计数是否将要溢出(步骤612)。如果该计数将要溢出,可以调用溢出处理例程(步骤614)来处理溢出,以便读取和重置该计数,该处理随后终止。然而,如果该计数并非将要溢出,则中断单元使该计数递增(步骤616),此后该处理终止。在计数被读取后,支持软件可重置该计数。
于是,本发明提供了一种用于对特定中断类型的发生次数进行计数的机制。该计数可以存储在对应于每个中断类型的IDT中,或者存储在IDT之外的中断计数表中。支持软件和中断单元了解该计数被存储的存储器地址。该中断单元可以在IDT内或IDT外定位存储在特定存储器地址中的该计数。当发生溢出时,可以调用溢出处理例程来相应地处理溢出。
应该注意到,虽然从充分运行的数据处理系统的角度来说明本发明,但是本领域的技术人员将能够理解,本发明的处理能够以指令的计算机可读介质的形式以及多种形式来分发,并且不管事实上使用何种特定类型的信号承载介质来执行该分发,本发明都同样适用。计算机可读介质的例子包括,诸如软盘、硬盘、RAM、CD-ROM、DVD-ROM等的可记录类型的介质,以及诸如数字和模拟通信链路、使用诸如射频和光波传输等传输形式的有线或无线通信链路等的传输类型的介质。计算机可读介质可以采用编码格式的形式,这种编码格式是针对特定数据处理系统中的实际使用而被解码的。
本发明的描述是出于说明和描述的目的而被提出的,并不意味着以所公开的形式穷尽或限制本发明。对于本领域的技术人员来说,很多修改和改变是显而易见的。因为带有各种修改的各种实施例适合于所构思的特定用途,选择和描述这些实施例,是为了最好地说明本发明的宗旨、实际应用,以及为了使得本领域的其他技术人员能够理解本发明。
Claims (16)
1.一种数据处理系统,包括:
中断单元,所述中断单元接收用于启动中断的信号;其中,所述中断单元包含多个计数器,该多个计数器分别按照中断类型对多个中断的发生进行计数,每个中断类型的计数值被存储在中断描述符表中的与相应的中断服务例程对应的条目中。
2.如权利要求1所述的数据处理系统,其中,每个中断类型的中断计数值被存储在中断计数表的条目中。
3.如权利要求2所述的数据处理系统,其中,在中断描述符表中的计数偏移对应于所述中断类型。
4.如权利要求3所述的数据处理系统,其中,在所述中断描述符表中的计数偏移被用于得出在所述中断计数表中的对应于所述中断类型的计数值的偏移地址。
5.如权利要求2所述的数据处理系统,还包括:
寄存器,具有指向所述中断计数表的存储器地址的指针。
6.如权利要求1所述的数据处理系统,还包括按照类型对所述中断的发生进行计数的硬件计数器。
7.如权利要求1所述的数据处理系统,其中,所述中断类型包括翻译后援缓冲器TLB错误和虚拟哈希页表VHPT指令错误。
8.如权利要求1所述的数据处理系统,其中,当计数因用于存储计数的位数量将要用尽而将要溢出时,发送溢出信号。
9.一种用于在信息处理系统上执行指令的方法,包括下列步骤:
在中断单元接收中断信号,其中,该中断信号用于在处理器中启动中断;
响应于接收到所述中断信号,基于与所述中断信号相关联的中断类型,使第一计数器递增;
其中,所述第一计数器是多个计数器中的一个;以及
其中,所述多个计数器按照中断类型对中断的发生进行计数,其中,所述第一计数器的计数值被存储在中断描述符表中的与相应的中断服务例程对应的条目中。
10.如权利要求9所述的方法,其中,所述第一计数器的计数值被存储在中断计数表的条目中。
11.如权利要求10所述的方法,其中,在中断描述符表中的计数偏移对应于所述中断类型。
12.如权利要求11所述的方法,其中,在所述中断描述符表中的计数偏移用于得出在所述中断计数表中的对应于所述中断类型的计数值的偏移地址。
13.如权利要求10所述的方法,还包括:
寄存器,具有指向所述中断计数表的存储器地址的指针。
14.如权利要求9所述的方法,其中,所述多个计数器是硬件计数器。
15.如权利要求9所述的方法,其中,所述中断类型包括翻译后援缓冲器TLB错误和虚拟哈希页表VHPT指令错误。
16.如权利要求9所述的方法,其中,当计数因用于存储计数的位数量将要用尽而将要溢出时,发送溢出信号。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/757,198 US7082486B2 (en) | 2004-01-14 | 2004-01-14 | Method and apparatus for counting interrupts by type |
US10/757,198 | 2004-01-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1641612A CN1641612A (zh) | 2005-07-20 |
CN100382061C true CN100382061C (zh) | 2008-04-16 |
Family
ID=34740007
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100046307A Expired - Fee Related CN100382061C (zh) | 2004-01-14 | 2005-01-14 | 按照类型对中断计数的方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7082486B2 (zh) |
JP (1) | JP2005202964A (zh) |
CN (1) | CN100382061C (zh) |
TW (1) | TWI339355B (zh) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7395527B2 (en) | 2003-09-30 | 2008-07-01 | International Business Machines Corporation | Method and apparatus for counting instruction execution and data accesses |
US7373637B2 (en) | 2003-09-30 | 2008-05-13 | International Business Machines Corporation | Method and apparatus for counting instruction and memory location ranges |
US7421681B2 (en) | 2003-10-09 | 2008-09-02 | International Business Machines Corporation | Method and system for autonomic monitoring of semaphore operation in an application |
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 |
US7415705B2 (en) | 2004-01-14 | 2008-08-19 | International Business Machines Corporation | Autonomic method and apparatus for hardware assist for patching code |
US7895382B2 (en) | 2004-01-14 | 2011-02-22 | International Business Machines Corporation | Method and apparatus for qualifying collection of performance monitoring events by types of interrupt when interrupt occurs |
US7421684B2 (en) | 2004-03-22 | 2008-09-02 | International Business Machines Corporation | Method and apparatus for autonomic test case feedback using hardware assistance for data coverage |
US20060048011A1 (en) * | 2004-08-26 | 2006-03-02 | International Business Machines Corporation | Performance profiling of microprocessor systems using debug hardware and performance monitor |
US20070005742A1 (en) * | 2005-06-30 | 2007-01-04 | Avigdor Eldar | Efficient network communications via directed processor interrupts |
WO2008099238A1 (en) * | 2007-02-16 | 2008-08-21 | Freescale Semiconductor, Inc. | Request controller, processing unit, arrangement, method for controlling requests and computer program product |
JP5074872B2 (ja) * | 2007-09-25 | 2012-11-14 | キヤノン株式会社 | プロトコル処理装置及び制御方法 |
US7657683B2 (en) * | 2008-02-01 | 2010-02-02 | Redpine Signals, Inc. | Cross-thread interrupt controller for a multi-thread processor |
JP5119994B2 (ja) * | 2008-03-14 | 2013-01-16 | 富士通株式会社 | 性能モニタリングプログラム、性能モニタリング方法、性能モニタリング装置 |
US8843899B2 (en) | 2010-10-29 | 2014-09-23 | International Business Machines Corporation | Implementing a step-type operation during debugging of code using internal breakpoints |
US9015676B2 (en) * | 2010-10-29 | 2015-04-21 | International Business Machines Corporation | Varying removal of internal breakpoints during debugging of code |
US8806447B2 (en) | 2010-10-29 | 2014-08-12 | International Business Machines Corporation | Step-type operation processing during debugging by machine instruction stepping concurrent with setting breakpoints |
US8615742B2 (en) | 2010-11-16 | 2013-12-24 | International Business Machines Corporation | Autonomic hotspot profiling using paired performance sampling |
US10331589B2 (en) * | 2013-02-13 | 2019-06-25 | Red Hat Israel, Ltd. | Storing interrupt location for fast interrupt register access in hypervisors |
US9329880B2 (en) * | 2013-02-13 | 2016-05-03 | Red Hat Israel, Ltd. | Counter for fast interrupt register access in hypervisors |
US9594704B1 (en) | 2013-12-17 | 2017-03-14 | Google Inc. | User mode interrupts |
US9495311B1 (en) * | 2013-12-17 | 2016-11-15 | Google Inc. | Red zone avoidance for user mode interrupts |
US9921984B2 (en) | 2014-12-23 | 2018-03-20 | Intel Corporation | Delivering interrupts to user-level applications |
US9495138B1 (en) * | 2016-01-04 | 2016-11-15 | International Business Machines Corporation | Scheme for verifying the effects of program optimizations |
TWI633432B (zh) * | 2016-12-29 | 2018-08-21 | 宏碁股份有限公司 | 檔案統計方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5473763A (en) * | 1993-08-02 | 1995-12-05 | Advanced Micro Devices, Inc. | Interrupt vector method and apparatus |
CN1122043A (zh) * | 1994-09-16 | 1996-05-08 | 联华电子股份有限公司 | 存贮队列装置 |
CN1231743A (zh) * | 1996-08-29 | 1999-10-13 | 诺基亚电信公司 | 业务数据库系统中的事件记录 |
US6185652B1 (en) * | 1998-11-03 | 2001-02-06 | International Business Machin Es Corporation | Interrupt mechanism on NorthBay |
US6275893B1 (en) * | 1998-09-14 | 2001-08-14 | Compaq Computer Corporation | Method and apparatus for providing seamless hooking and intercepting of selected kernel and HAL exported entry points in an operating system |
CN2528080Y (zh) * | 2001-09-28 | 2002-12-25 | 威盛电子股份有限公司 | 支持信息信号式中断的芯片组以及控制器 |
CN1436332A (zh) * | 2000-06-15 | 2003-08-13 | 先进微装置公司 | 转译后备缓冲器清除滤波器 |
Family Cites Families (68)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3707725A (en) * | 1970-06-19 | 1972-12-26 | Ibm | Program execution tracing system improvements |
US4034353A (en) * | 1975-09-15 | 1977-07-05 | Burroughs Corporation | Computer system performance indicator |
US4145735A (en) * | 1977-02-02 | 1979-03-20 | Nippon Steel Corporation | Monitor for priority level of task in information processing system |
US4291371A (en) * | 1979-01-02 | 1981-09-22 | Honeywell Information Systems Inc. | I/O Request interrupt mechanism |
JPS59132070A (ja) * | 1983-01-18 | 1984-07-30 | Mitsubishi Electric Corp | アレイ演算用デ−タ処理装置 |
US5103394A (en) * | 1984-04-30 | 1992-04-07 | Hewlett-Packard Company | Software performance analyzer |
US4794472A (en) * | 1985-07-30 | 1988-12-27 | Matsushita Electric Industrial Co., Ltd. | Video tape reproducing apparatus with a processor that time-shares different operations |
US4821178A (en) * | 1986-08-15 | 1989-04-11 | International Business Machines Corporation | Internal performance monitoring by event sampling |
US5822578A (en) * | 1987-12-22 | 1998-10-13 | Sun Microsystems, Inc. | System for inserting instructions into processor instruction stream in order to perform interrupt processing |
US5113507A (en) * | 1988-10-20 | 1992-05-12 | Universities Space Research Association | Method and apparatus for a sparse distributed memory system |
US5151981A (en) * | 1990-07-13 | 1992-09-29 | International Business Machines Corporation | Instruction sampling instrumentation |
US5193180A (en) * | 1991-06-21 | 1993-03-09 | Pure Software Inc. | System for modifying relocatable object code files to monitor accesses to dynamically allocated memory |
US5548762A (en) * | 1992-01-30 | 1996-08-20 | Digital Equipment Corporation | Implementation efficient interrupt select mechanism |
JP3544214B2 (ja) * | 1992-04-29 | 2004-07-21 | サン・マイクロシステムズ・インコーポレイテッド | プロセッサの状態を監視する方法及び監視システム |
US5404500A (en) * | 1992-12-17 | 1995-04-04 | International Business Machines Corporation | Storage control system with improved system and technique for destaging data from nonvolatile memory |
US5581482A (en) * | 1994-04-26 | 1996-12-03 | Unisys Corporation | Performance monitor for digital computer system |
US6148321A (en) * | 1995-05-05 | 2000-11-14 | Intel Corporation | Processor event recognition |
US6408386B1 (en) * | 1995-06-07 | 2002-06-18 | Intel Corporation | Method and apparatus for providing event handling functionality in a computer system |
US5754839A (en) * | 1995-08-28 | 1998-05-19 | Motorola, Inc. | Apparatus and method for implementing watchpoints and breakpoints in a data processing system |
US5797019A (en) * | 1995-10-02 | 1998-08-18 | International Business Machines Corporation | Method and system for performance monitoring time lengths of disabled interrupts in a processing system |
US5691920A (en) * | 1995-10-02 | 1997-11-25 | International Business Machines Corporation | Method and system for performance monitoring of dispatch unit efficiency in a processing system |
US5757771A (en) * | 1995-11-14 | 1998-05-26 | Yurie Systems, Inc. | Queue management to serve variable and constant bit rate traffic at multiple quality of service levels in a ATM switch |
US5774724A (en) * | 1995-11-20 | 1998-06-30 | International Business Machines Coporation | System and method for acquiring high granularity performance data in a computer system |
US5758168A (en) * | 1996-04-18 | 1998-05-26 | International Business Machines Corporation | Interrupt vectoring for optionally architected facilities in computer systems |
US5937437A (en) * | 1996-10-28 | 1999-08-10 | International Business Machines Corporation | Method and apparatus for monitoring address translation performance |
US5926640A (en) * | 1996-11-01 | 1999-07-20 | Digital Equipment Corporation | Skipping clock interrupts during system inactivity to reduce power consumption |
US5870576A (en) * | 1996-12-16 | 1999-02-09 | Hewlett-Packard Company | Method and apparatus for storing and expanding variable-length program instructions upon detection of a miss condition within an instruction cache containing pointers to compressed instructions for wide instruction word processor architectures |
US5966537A (en) * | 1997-05-28 | 1999-10-12 | Sun Microsystems, Inc. | Method and apparatus for dynamically optimizing an executable computer program using input data |
US5938776A (en) * | 1997-06-27 | 1999-08-17 | Digital Equipment Corporation | Detection of SCSI devices at illegal locations |
US5987250A (en) * | 1997-08-21 | 1999-11-16 | Hewlett-Packard Company | Transparent instrumentation for computer program behavior analysis |
US6101524A (en) * | 1997-10-23 | 2000-08-08 | International Business Machines Corporation | Deterministic replay of multithreaded applications |
US5938778A (en) | 1997-11-10 | 1999-08-17 | International Business Machines Corporation | System and method for tracing instructions in an information handling system without changing the system source code |
US6070009A (en) * | 1997-11-26 | 2000-05-30 | Digital Equipment Corporation | Method for estimating execution rates of program execution paths |
US6163840A (en) * | 1997-11-26 | 2000-12-19 | Compaq Computer Corporation | Method and apparatus for sampling multiple potentially concurrent instructions in a processor pipeline |
US6442585B1 (en) * | 1997-11-26 | 2002-08-27 | Compaq Computer Corporation | Method for scheduling contexts based on statistics of memory system interactions in a computer system |
US6256775B1 (en) * | 1997-12-11 | 2001-07-03 | International Business Machines Corporation | Facilities for detailed software performance analysis in a multithreaded processor |
JPH11194957A (ja) * | 1998-01-07 | 1999-07-21 | Matsushita Electric Ind Co Ltd | デバッグ支援装置、並列実行情報生成装置、及びこれらに適用されるプログラムを記録した記録媒体 |
US6374364B1 (en) * | 1998-01-20 | 2002-04-16 | Honeywell International, Inc. | Fault tolerant computing system using instruction counting |
GB9805485D0 (en) * | 1998-03-13 | 1998-05-13 | Sgs Thomson Microelectronics | Microcomputer |
US6134676A (en) * | 1998-04-30 | 2000-10-17 | International Business Machines Corporation | Programmable hardware event monitoring method |
US6189141B1 (en) * | 1998-05-04 | 2001-02-13 | Hewlett-Packard Company | Control path evaluating trace designator with dynamically adjustable thresholds for activation of tracing for high (hot) activity and low (cold) activity of flow control |
US6317820B1 (en) | 1998-06-05 | 2001-11-13 | Texas Instruments Incorporated | Dual-mode VLIW architecture providing a software-controlled varying mix of instruction-level and task-level parallelism |
US6243804B1 (en) * | 1998-07-22 | 2001-06-05 | Scenix Semiconductor, Inc. | Single cycle transition pipeline processing using shadow registers |
US6324689B1 (en) * | 1998-09-30 | 2001-11-27 | Compaq Computer Corporation | Mechanism for re-writing an executable having mixed code and data |
US6223338B1 (en) * | 1998-09-30 | 2001-04-24 | International Business Machines Corporation | Method and system for software instruction level tracing in a data processing system |
US6192513B1 (en) * | 1998-11-02 | 2001-02-20 | Hewlett-Packard Company | Mechanism for finding spare registers in binary code |
US6351844B1 (en) * | 1998-11-05 | 2002-02-26 | Hewlett-Packard Company | Method for selecting active code traces for translation in a caching dynamic translator |
US6826749B2 (en) * | 1998-12-08 | 2004-11-30 | Nazomi Communications, Inc. | Java hardware accelerator using thread manager |
US6330662B1 (en) * | 1999-02-23 | 2001-12-11 | Sun Microsystems, Inc. | Apparatus including a fetch unit to include branch history information to increase performance of multi-cylce pipelined branch prediction structures |
US6430741B1 (en) * | 1999-02-26 | 2002-08-06 | Hewlett-Packard Company | System and method for data coverage analysis of a computer program |
US7086035B1 (en) | 1999-05-13 | 2006-08-01 | International Business Machines Corporation | Method and system for counting non-speculative events in a speculative processor |
US6446029B1 (en) * | 1999-06-30 | 2002-09-03 | International Business Machines Corporation | Method and system for providing temporal threshold support during performance monitoring of a pipelined processor |
US6574727B1 (en) * | 1999-11-04 | 2003-06-03 | International Business Machines Corporation | Method and apparatus for instruction sampling for performance monitoring and debug |
US6681387B1 (en) * | 1999-12-01 | 2004-01-20 | Board Of Trustees Of The University Of Illinois | Method and apparatus for instruction execution hot spot detection and monitoring in a data processing unit |
US6480966B1 (en) * | 1999-12-07 | 2002-11-12 | International Business Machines Corporation | Performance monitor synchronization in a multiprocessor system |
US6549998B1 (en) * | 2000-01-14 | 2003-04-15 | Agere Systems Inc. | Address generator for interleaving data |
US6865663B2 (en) * | 2000-02-24 | 2005-03-08 | Pts Corporation | Control processor dynamically loading shadow instruction register associated with memory entry of coprocessor in flexible coupling mode |
US6757771B2 (en) | 2000-08-09 | 2004-06-29 | Advanced Micro Devices, Inc. | Stack switching mechanism in a computer system |
US6480938B2 (en) * | 2000-12-15 | 2002-11-12 | Hewlett-Packard Company | Efficient I-cache structure to support instructions crossing line boundaries |
US6857083B2 (en) * | 2000-12-18 | 2005-02-15 | International Business Machines Corporation | Method and system for triggering a debugging unit |
US7448025B2 (en) * | 2000-12-29 | 2008-11-04 | Intel Corporation | Qualification of event detection by thread ID and thread privilege level |
US7093236B2 (en) * | 2001-02-01 | 2006-08-15 | Arm Limited | Tracing out-of-order data |
US20020199179A1 (en) * | 2001-06-21 | 2002-12-26 | Lavery Daniel M. | Method and apparatus for compiler-generated triggering of auxiliary codes |
US7093154B2 (en) * | 2001-10-25 | 2006-08-15 | International Business Machines Corporation | Critical adapter local error handling |
US6775728B2 (en) * | 2001-11-15 | 2004-08-10 | Intel Corporation | Method and system for concurrent handler execution in an SMI and PMI-based dispatch-execution framework |
US20030135720A1 (en) * | 2002-01-14 | 2003-07-17 | International Business Machines Corporation | Method and system using hardware assistance for instruction tracing with secondary set of interruption resources |
US7168067B2 (en) * | 2002-02-08 | 2007-01-23 | Agere Systems Inc. | Multiprocessor system with cache-based software breakpoints |
US6925424B2 (en) * | 2003-10-16 | 2005-08-02 | International Business Machines Corporation | Method, apparatus and computer program product for efficient per thread performance information |
-
2004
- 2004-01-14 US US10/757,198 patent/US7082486B2/en not_active Expired - Fee Related
-
2005
- 2005-01-03 TW TW094100076A patent/TWI339355B/zh not_active IP Right Cessation
- 2005-01-13 JP JP2005006931A patent/JP2005202964A/ja active Pending
- 2005-01-14 CN CNB2005100046307A patent/CN100382061C/zh not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5473763A (en) * | 1993-08-02 | 1995-12-05 | Advanced Micro Devices, Inc. | Interrupt vector method and apparatus |
CN1122043A (zh) * | 1994-09-16 | 1996-05-08 | 联华电子股份有限公司 | 存贮队列装置 |
CN1231743A (zh) * | 1996-08-29 | 1999-10-13 | 诺基亚电信公司 | 业务数据库系统中的事件记录 |
US6275893B1 (en) * | 1998-09-14 | 2001-08-14 | Compaq Computer Corporation | Method and apparatus for providing seamless hooking and intercepting of selected kernel and HAL exported entry points in an operating system |
US6185652B1 (en) * | 1998-11-03 | 2001-02-06 | International Business Machin Es Corporation | Interrupt mechanism on NorthBay |
CN1436332A (zh) * | 2000-06-15 | 2003-08-13 | 先进微装置公司 | 转译后备缓冲器清除滤波器 |
CN2528080Y (zh) * | 2001-09-28 | 2002-12-25 | 威盛电子股份有限公司 | 支持信息信号式中断的芯片组以及控制器 |
Also Published As
Publication number | Publication date |
---|---|
TW200540704A (en) | 2005-12-16 |
CN1641612A (zh) | 2005-07-20 |
US7082486B2 (en) | 2006-07-25 |
JP2005202964A (ja) | 2005-07-28 |
US20050154813A1 (en) | 2005-07-14 |
TWI339355B (en) | 2011-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100382061C (zh) | 按照类型对中断计数的方法和装置 | |
CN100383754C (zh) | 发生中断时按其类型限定性能监视事件收集的方法与装置 | |
CN100407147C (zh) | 为记录事件提供前置与后置处理程序的方法 | |
US9201801B2 (en) | Computing device with asynchronous auxiliary execution unit | |
CN100449499C (zh) | 在微处理器恢复单元中进行写队列读数据的方法和装置 | |
US5887161A (en) | Issuing instructions in a processor supporting out-of-order execution | |
EP1296229B1 (en) | Scoreboarding mechanism in a pipeline that includes replays and redirects | |
CN108205433B (zh) | 用来加速稀疏矩阵乘密集向量以及稀疏向量乘密集向量乘法的存储器到存储器指令 | |
US6393555B1 (en) | Rapid execution of FCMOV following FCOMI by storing comparison result in temporary register in floating point unit | |
US5913048A (en) | Dispatching instructions in a processor supporting out-of-order execution | |
US6405305B1 (en) | Rapid execution of floating point load control word instructions | |
US9135005B2 (en) | History and alignment based cracking for store multiple instructions for optimizing operand store compare penalties | |
US6098167A (en) | Apparatus and method for fast unified interrupt recovery and branch recovery in processors supporting out-of-order execution | |
CN101443738B (zh) | 提取cpu时间工具 | |
KR19980079702A (ko) | 저장 인스트럭션의 결과의 전달하는 방법 및 이를 구현한 프로세서 | |
CN103514009A (zh) | 零周期加载 | |
KR20010075258A (ko) | 간접 분기 목적지 산출 방법 | |
CN101246447A (zh) | 用于测量微处理器中的流水线停顿的方法和装置 | |
CN113535236A (zh) | 基于指令集体系结构的和自动的加载跟踪的方法和装置 | |
US7523152B2 (en) | Methods for supporting extended precision integer divide macroinstructions in a processor | |
US6460130B1 (en) | Detecting full conditions in a queue | |
US6240507B1 (en) | Mechanism for multiple register renaming and method therefor | |
CN116339830B (zh) | 一种寄存器管理方法、装置、电子设备及可读存储介质 | |
US5761469A (en) | Method and apparatus for optimizing signed and unsigned load processing in a pipelined processor | |
US5956503A (en) | Method and system for front-end and back-end gathering of store instructions within a data-processing system |
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: 20080416 Termination date: 20110114 |