CN1258741C - 可编程事件计数器*** - Google Patents

可编程事件计数器*** Download PDF

Info

Publication number
CN1258741C
CN1258741C CNB008141843A CN00814184A CN1258741C CN 1258741 C CN1258741 C CN 1258741C CN B008141843 A CNB008141843 A CN B008141843A CN 00814184 A CN00814184 A CN 00814184A CN 1258741 C CN1258741 C CN 1258741C
Authority
CN
China
Prior art keywords
output
input
counter
signal
event
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB008141843A
Other languages
English (en)
Other versions
CN1378679A (zh
Inventor
B·库恩
D·凯佩尔
C·R·普莱斯
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.)
Knowledge Risk Fund 100 LLC
Secure access Ltd.
Original Assignee
Transmeta Inc
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 Transmeta Inc filed Critical Transmeta Inc
Publication of CN1378679A publication Critical patent/CN1378679A/zh
Application granted granted Critical
Publication of CN1258741C publication Critical patent/CN1258741C/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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/348Circuit details, i.e. tracer hardware
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Logic Circuits (AREA)
  • Debugging And Monitoring (AREA)
  • Bus Control (AREA)
  • Microcomputers (AREA)

Abstract

在整个微处理器芯片中发生的某些事件由一个计数器***(1)监测,该计数器***包含许多被固定在处理器芯片上的单个位置处的数字电子计数器(3、5、7和9)。那些事件经由电线被传达给计数器***,电线延伸到负责用信号通知事件发生的处理器中的那些功能单元。在程序控制下,每个计数器可以被选择性地连接到(11、13、15和17)各种功能事件产生单元的一个所选单元。通过选择逻辑(19、21、23和25),起源于多个功能单元的分开的事件可以被合乎逻辑地加以组合,从而所计算的事件是多个基础事件的布尔逻辑组合。

Description

可编程事件计数器***
发明领域
本发明涉及数字计算机***,尤其涉及在分析数字计算机***的操作性能和***调试中有用的、以及作为基于事件的中断的源的一种内置式芯片上可编程电子事件计数器***。
背景
电子计数器是众所周知的设备并以许多形式出现。一种作为软件计数器是由微处理器执行的被编程的计数器。另一种作为数字电子计数器。众所周知,这类计数器可以被配置成增加—(即)从规定数目向上计数或减少—向下计数。此外,它们可以被编程或硬连线(hard-wired),以便分别从由各自的软件程序或硬连线设置在那里的特殊数目增加或减少。
计数器长期以来一直被用作数字***(包括与本发明有关的数字处理***)的一个部件。当计数器被用在数字处理***中时,它们经常被“内置”到半导体芯片。也就是说,它被建立在相同的半导体芯片上,数字处理***的其他半导体部件、功能单元被制造在其上,它们在操作期间被使用(例如,处理器)。例如,申请人被告知,“高能奔腾”处理器包含两个寄存器,可以对它们进行编程,以便作为计数器来运行。它们在处理器内用于控制,以便下溢或溢出生成一个控制信号、一个中断,该中断被用在微处理器的操作中。
在一些数字***中,电子计数器一直被用作计时器。通过直接或间接地计算高频的时钟脉冲,减数计数器能够使脉冲重复比率逐步减小到一个较低的比率,在各输出脉冲之间产生一个较大的时间间隔。脉冲-脉冲时间定义了精确的周期。通过被耦合到一个触发器,可以产生所定义的持续时期内的脉冲。
数字电子计数器也已用来计数事件。本发明还涉及数字电子计数器、更加深奥的应用中的事件计数,计数事件以及在微处理器的操作时期内所发生事件的组合。
这样,本发明的主要目的是提供一种更加有效的***,用于从告知在处理器***操作时期内所发生事件的数字处理***内的功能单元收集信息。
本发明的另一个目的是提供一种更加可调整的***,用于通过在微处理器芯片上的单一位置处固定许多事件计数器和允许将产生功能单元的事件的数目(和种类)选择到监视器,来从微处理器的功能单元收集事件信息。
本发明的再一个目的是提供一种可编程的事件计数***,该***能够计算微处理器操作的一个时期内所产生事件的组合,其中的事件根据布尔逻辑的规定被组合起来。
本发明的再一个目的是提供一种处理器***,当一个事件或多个事件的组合的计数达到预定数目时,该***合并一个硬件事件计数器,以便在各个可选择的处理器功能之间进行自动切换,例如通过生产一个中断,从而避免了用软件处理事件的测定与切换功能的必要性。
概要
通过在处理器芯片的一个位置上固定许多可编程的数字电子计数器和多路复用器而建立的一种事件计数器***实现了前述的各个目的。每个多路复用器与计数器中的至少和一个计数器有关。多路复用器用作计数器到在处理器的功能单元处生成的事件信息的通路。
每个多路复用器的多个输入通道都被耦合到处理器的各种功能单元中的多个位置,该处理器的动作将直接或间接地加以计算,每个这样的功能单元包含被耦合到前述多路复用器的输入的多个不同的输出。这允许计算那些功能单元的任何多个事件生成动作。作为一个优点,本发明避免了为独个功能单元的多个事件生成动作中的每个动作合并分开的计数器的必要性。
计数器***用作关于处理器***中所发生事件的信息的一个来源。它是处理器芯片的不可分割的一部分。计数器***用于生成便利于处理器操作的中断。
计数器***在软件控制下可编程。当一个组合信号被合适的总线上所提供的软件选择时,进行计数,为一个事件监测的功能单元(或多个单元),每个功能单元(或多个单元)内的来源将被监测或被组合与监测。计数器***甚至可以由处理器的执行程序“在飞行中”编程或再编程,以便结合一项程序操作来使用计数器硬件。
作为本发明的再一个方面,***包括一个组合逻辑单元(“信号组合器”),以便提供用于计数的一个“组合”事件。该组合逻辑单元能够根据一个布尔逻辑标准来组合至少两个不同的事件,并在软件控制下被选择。多路复用器的输出通过多个信号组合器中的一个有关的信号组合器提供给计数器。不同的事件可以被合乎逻辑地组合,以建立要计数的组合事件。例如,除了由单一功能单元(只是X或只是Y)产生的单独事件以外,这类事件可包括两个所选事件(X和Y)的一个时钟周期内的并发事件、一个事件而不是另一个事件(是X不是Y,或是Y不是X)的发生,以及类似的位布尔函数。作为一个优点,对计算机***内发生的复杂的操作,可以用公式表示成多个事件输入的非常有用的相互关系,用于计数。
通过阅读本说明书中的关于本发明一个较佳实施例的详细描述并结合附图说明,精通该技术领域的人会更了解本发明的前述和额外的目的和优点及其结构特征(只在前文中作简要的概述)。
附图简述
图1是本发明的一较佳实施例的方块图;
图2是图1中的实施例的部件中所用的逻辑选择电路的示意图;
图3示意地展示了图1中的实施例中所用的可切换边缘和电平检测电路;以及,
图4示意地展示了采用图1所示实施例中所用的计数器的输出的门控电路,以生成中断信号。
较佳实施例的详细描述
参考图1,该图用块图的形式展示了计数器***1的一个较佳实施例。计数器包括:四个可编程计数器3、5、7和9;四个计数器控制寄存器11、13、15和17;四个信号组合器19、21、23和25;以及四个多路复用器(“MUXs”)27、29、31和33。如计数器***周围的虚线所表现的,前述部件被按自然法则地归类在一起,在相同半导体芯片上的一个所选的位置被嵌入,微处理器及其有关的功能单元(其中只有一些被象征性地展示)被制造在其上。
一对总线35和37分别连接到控制寄存器和可编程计数器。那些总线中的每个总线包含数据和延伸到各自的寄存器和计数器的地址和数据输入。这些线延伸到在块38处表现的计算机的其他部分,它们可以合并包含计数器***和功能元件的半导体芯片,数字数据和地址信息来源于它们,以便为计数器和控制寄存器编程。
各种计数器的中断输出被耦合到门控电路。中断总线36从门控电路延伸,使由任何计数器生成的一个中断被那个门控电路输出到计算机38中的其他单元。
每个计数器和每个控制寄存器在软件控制下可单独寻址,这在本文后面会更加详细地加以描述。计数器是可编程的。它们可以被写到软件或由软件读取。它们可以是任何尺寸。在本发明的一个应用实施例中,计数器是32位计数器。
每个控制寄存器19、21、23和25分别与四个计数器中的一个计数器有关,并分别与信号组合器电路中的每个信号组合器电路有关。控制寄存器是可寻址的,并在软件控制下被写入。一旦信息被写入/被登记到控制寄存器,控制寄存器将选择的信息提供给有关的信号组合器(这在本文后面会更加详细地描述),并选择有关的MUX将传递哪个输入、要检测的信号类型、中断优先和在事件中要采取的行动,处理器生成一个杀死(停止)信号。
每个MUX 27、29、31和33都包含来自正在***作的处理器中的每个功能单元的多重输入。那些输入被选择性地多路复用到一个信号组合器,从那时起在程序控制下到一个有关的计数器(或一对计数器)(如下文更加详细的描述),以便MUX各自的多重输入中只有一个所选择的输入(只表现多个功能单元12、14、16和18中的一个功能单元,并且用块象征性地展示)是活动的,并能够将一个事件信号传递给计算程序的MUX的输出。
应该认识到,这里所用的术语“功能单元”是指半导体芯片(它在正在数字计算机***中运行的一个软件应用程序的处理过程中执行一项功能)上的任何单独的数字电子部件(例如,共同构成或定义一个微处理器的那些功能元件),并非意在被局限于执行指令的特殊单元。要理解本发明,并不一定要知道功能元件的细节,不需要描述该细节。其中的一些细节在本说明书的背景部分中被简要描述。那些功能单元可以包括程序计数器、数据高速缓冲存储器、总线界面、指令执行、存储缓冲器、整数单元、浮点单元和类似物。
在所说明的特定实施例和应用中,每个MUX从每个功能单元接收四个分开的输入,被应用于每个MUX的输入的总数是16个。如本文其他地方所描述的,应该理解,一些处理器功能单元能够(或可能能够)提供不只四个事件信号,因此,在其他的应用实施例中,更多数量的输入(和更大的MUXs)可以被代替,或者MUXs可以被联结。
到每个MUX的输入经由总线4、6、8和10被提供,每个总线都包含足够的导线,以处理起源于各个功能单元的单独的事件。每个这样的总线的前述导线延伸到处理器的各自单独的功能单元内的不同输出位置,功能单元位于半导体芯片上的其他地方,可以用作事件的单独来源,软件科学家可能希望选择这些单独的来源,用于监测。例如,这些单元可以是程序计数器、数据高速缓冲存储器、总线界面、指令执行、存储缓冲器、整数单元、浮点单元。
通过将每个微处理器功能单元设计成包含至少四个不同的事件输出信号,可以选择和监测其中的任何事件输出信号,用于与其有关的一个事件。因此,在应用实施例总线4、6、8和10中,每个总线包含四个单独的导线,并且从计数器***1延伸到各自的处理器功能单元12、14、16和18。但是,显而易见,如果一个功能单元被设计包含很少的事件信号来源(比如说三个),则总线中的额外导线可以被忽略或不被使用。
该实施例中为每个功能单元所选的位置的数目-4个被认为是足够的。应该理解,***并不局限于只监测四个功能单元,也不局限于只监测每个功能单元中的四个事件生成位置。人们经常会发现,一些功能单元包含四个以上的位置,它们作为有用的事件信息的潜在来源是有价值的。为了在一个给定的功能单元中供应更多的位置,那个功能单元可能包含(或应该被修改,以便包含)有关的地方事件选择逻辑(例如,地方MUX),以便为经由被识别的总线而到事件计数***的传送选择四个事件的特殊集合。与所描述的事件计数器一样,那个地方选择逻辑也应该被软件控制。
此外,当处理器芯片上待监测的可能的独个功能单元的数目超过四个时,功能单元必须包括位于离计数器控制单元很远的半导体芯片上的另一个MUX单元,本质上用树状结构将两个MUX“联系”起来。后者安排由图中的功能单元18展示。
如所示的内容,功能单元18包含一组四个MUXs 20,实际上组成一个“虚拟的”功能单元。该组中的每个单独的MUX通过四个导线总线被连接到实际的功能单元。这样,功能单元20的输出是连接到四个输入中的一个输入的许多实际功能单元中所选择的一个功能单元,这四个输入是到被选择和被启动的四个MUX的组中的一个MUX。进行该选择的装置也较佳地被程序控制。可以用类似的方式来增加要求监测的额外数量的功能单元方面的规定。前述MUX可以被包括在包含所述计数器***的芯片的区域中。
每个MUX也包含被耦合到控制寄存器11、13、15和17的一个选择输入总线28、30、32和34。将由MUX输出的特殊的MUX输入由一种选择代码(二进制代码比较合适,被应用于其各自的选择输入)来选择。该选择代码通过控制寄存器11、13、15和17中各自有关的控制寄存器来被加以应用,这以后将在计数器单元的操作描述中进行讨论。
通过控制寄存器,信号组合器19、21、23和25是可编程的,可定义单独事件的组合的标准。通过一个有关的控制寄存器中的信息,来对那些结合器进行逻辑选择。如所示的内容,控制寄存器11提供在信号组合器单元19中的选择,寄存器13提供在逻辑单元21中的选择,寄存器15提供在单元23中的选择,寄存器17控制在信号组合器单元25中的选择。
信号组合器单元19、21、23和25都包含两个数据输入,每个输入被连接到两个MUX中的一个分开MUX的输出,启动来自独个功能单元中的两个功能单元的事件的一项信号组合功能。为了清楚起见,信号组合器输入被标记有四个MUX 27、29、31和33中特殊两个的圈出的数字,其输出分别被连接到各自信号组合器单元的两个输入,如果需要的话,其事件可以被结合起来,这以后将更全面地加以描述。这样,如图中所示,来自MUX 33的输出连接到信号组合器单元19和21的一个输入,MUX 31的输出连接到信号组合器单元21和23的一个输入,等等。
在这个实施例中,计数器3、5、7和9被配置成从一个设置的数字减小。所需的数字或计数适当地通过计算机38并经由总线35被写入计数器。每当接收到一个输入时,计数就减少。一旦计数器减小到零以下,它就会产生一个输出。该输出是从数字“0”(代表正数)到数字“1”(代表负数)的其MSB处的记号或极性“记号”输出的一个变化。
这种设计的计数器继续减小过零并计算负数,减小具有每个额外输入的负数,直到达到最大的数字。当达到那个最大的数字时,计数器重置,将其MSB或记号输出改变为正,并利用额外的输入脉冲,从那个最大的正数减小。这种计数器配置众所周知,在技术文献中可找到它的设计。
继续参考图1,每个信号组合器19、21、23和25包括一个“位”布尔逻辑电路,该电路提供基于两个输入的所有16项可能的功能。这种逻辑选择电路对于精通该技术领域的人而言众所周知,并在有关“C”编程的文献中有所描述。这种选择电路可包括三个MUX(例如图2中所示意地展示的),可对其加以参考。该硬件包含三个双重通道MUX 47、48和49,选择寄存器50包含被标记有从A到D的块,代表四位的功能选择数据。X和Y代表将被合乎逻辑地组合在一起的两个输入。MUX 49的输出是由选择寄存器中的块A到B的高状态或低状态规定的通道X和Y的组合。
表格1-第1部分
                               信号组合函数的值
  输入值   0   1   2   3   4   5   6   7
  X  Y   失灵(错误)   !(X|Y)   (!X)&Y   !X   X&(!Y)   !Y   X^Y   !(X&Y)   位
  0  0   0   1   0   1   0   1   0   1   0
  0  1   0   0   1   1   0   0   1   1   1
  1  0   0   0   0   0   1   1   1   1   2
1  1 0 0 0 0 0 0 0 0 3
利用这个信号组合器,为通过MUX=s的事件输入信号的四种可能的组合中的每种组合定义一个信号输出值——选择。以下的表格1-第1部分和1-第2部分表现了被用于规定有关两个输入信号的逻辑函数的各个值,表格中指定的X和Y由一对MUX=s提供。计数器3、5、7和9的X-Y个信号对分别是MUX对27&33、31&33、29&31,以及27&29。表格使用C布尔符号表格中的符号“&”代表按位“与”运算;符号“|”代表包含的“或”运算;符号“^”代表排除的“或”运算,符号“!”代表一个“非”运算。
表格1-第2部分
                               信号组合函数的值
  输入值   Ox8   Ox9   Oxa   Oxb   Oxc   Oxd   Oxe   Oxf
  X  Y   X与Y   !(X^Y)   Y   !(X)|Y   X  X|(!Y)   X|Y   真时钟   位
  0  0   0   1   0   1   0  1   0   1   0
  0  1   0   0   1   1   0  0   1   1   1
  1  0   0   0   0   0   1  1   1   1   2
  1  1   1   1   1   1   1  1   1   1   3
信号组合器单元的多功能性允许计算单独的事件和计算组合的事件,这被称作“组合逻辑”。例如,首先假设某人只希望计算发生在功能单元的事件,而不将该事件与任何其他用于计算的事件结合起来,比如由表格中的输入X代表的事件,它对应于来自一个MUX的输出,忽略不计输入Y和第二MUX。定位表格的第2部分中的列Oxc,人们发现一个“仅X”表达。这意味着输出将只是信号输入值中的四个位进行比较,以肯定这种情况。应用于关于那个选择的结合器的信号选择,输入的位代码是1和0的相同的串。利用被输入信号组合器单元19的那个代码,在发生一个事件时,只计算来自MUX 33的输出。
同样,如果将只提供Y处的输入,在表格第2部分的列Oxa(11的十六进制)中发现该运算的位代码,它是该运算的真实表格值。又例如,再考虑逻辑单元19,只有来自MUX 27的输出被计算为一个事件。
但是,如果某人想只在一个事件发生在由X和Y(换言之,是X“与”Y的布尔逻辑值)代表的两个位置时进行计算,则在计算之前,X和Y输入必须是“真”。在列Ox8中可发现该组合逻辑值的选择。如在该列中所示,提供了该布尔关系的正确表格值和位值,以识别“与”运算。X和Y在第四行中都是“真”。
假设将那些选择位值编程入到信号组合器单元19的选择输入,如果事件信号在MUXs 27和33的所选输入处被同时接收和呈现,那么,只计数事件。这样,可以选择各种不同的布尔逻辑运算。如人们所理解的,虽然可用,但不可能将所有那些组合用于每种处理器***中的这个计数器***中。
如以块形式(例如,信号组合器单元19中的块19a和19b、单元21中的21a和21b,以及关于单元23和25的块)所示,信号组合器19、21、23和25也包括传统设计的边缘检测模式和电平检测模式电路。信号组合器在缺省的情况下处于电平检测模式。当需要时,它们被设置为边缘检测模式,也通过软件控制来实现。
术语“边缘”和“电平”可能也被改编成来自脉冲电压测量的技术的简写表达,其中,一个脉冲主要边缘及其持续时间是可观察到的特征,这些术语会使更熟悉测量技术的一些读者最初误解那些电路的操作。为了避免迷惑,应该理解,这里被称作的“边缘”检测可以被更加精确地描述,意在意味着一个事件的发生,即,一个事件已经开始或发生(即使只是很简要的)。这里称作的“电平”检测可以被更加精确地描述为一个事件的持续时间的意思,即一个事件信号(或情况)持续的时间长度。
这样,在“电平”敏感模式—默认模式中,计数器将计算时钟周期(其中,事件被确定为是“真”C逻辑上的“1”)的数目并代表事件的持续时间。当“边缘”检测逻辑事件是“真”但在前面的周期中是“假”(逻辑上的“0”)时,它们在时钟周期方面被加以计算。这样,在“边缘”检测模式中,计数事件从“假”转换为“真”所需的时间数量。
例如,考虑熟悉的高速缓冲存储器错误事件。在层次模式中,计算其中可发现处于高速缓冲存储器错误状态的处理器的时钟周期的总数目。在边缘模式中,计算高速缓冲存储器错误的数目。利用手头的那些计算,人们可以确定每次高速缓冲存储器错误的时钟周期的平均数目。该平均数目是一个有用的性能统计数字。
图3示意地展示了关于边缘和电平检测的电路的执行情况,可对其进行参考。X和Y输入(事件信号)被应用于一个信号组合器19,该信号组合器用于将输出组合到MUX51的输出。触发器52的控制输入被保留在逻辑上的“0”。触发器的输出又应用于“非”门53的输入,“非”门的输出被输入到“与”门54的输入,那个“非”门的输出被输入到“与”门54的一个输入。“与”门54的第二输入也被连接到结合器输出。
在默认的条件下,到MUX51的选择输入55保留在一个逻辑上的“0”,因此,它将结合器的输出传送到MUX输出。但是,当MUX的选择输入被设置为逻辑上的“1”时,其输出通过其第二通道输入被提供,该通道输入被连接到“与”门54的输出。当D触发器52接收一个“1”信号时,它发生变化并重置,即刻将其输出从“1”改变为“0”,然后回到“1”。负走向的脉冲被倒转并被应用于“与”门54的一个输入,利用其另一个输入处呈现的数字“1”,它在触发器“0”输出脉冲的瞬间内将一个输出提供给MUX 51。
只要“1”保留在触发器输入处,触发器就不能生成负脉冲,只有当来自信号组合器19的事件输出终止时,才能够这样做。这样,来自MUX51的输出表现一个组合事件何时开始或发生、边缘检测,而不是事件的持续时间。这些检测单元较佳地被包括在信号组合器单元的输出端处,如果需要的话,它们也可以被放置在输入端处。
除了通过存储在有关的控制寄存器中的代码正在进行的合乎逻辑的选择以外,该寄存器也提供这些代码,以选择边缘检测或电平检测模式。
在必要的情况下,关于正确的操作,在被发送到事件组合逻辑(信号组合器)之前,所有的事件应该被同步到相同的管道阶段。该同步确保事件信号同时被提供给组合逻辑,这些事件信号可能不同步,而且不重叠,从而导致信号在不同的时间达到组合逻辑,因而无法被组合。通过阻止一个事件信号、延迟其传送和/或扩展其持续时间,在其他信号赶上之前,两个信号可以被同时呈现,因此允许有效的组合。这类延迟或保留电路被(或应该被)并入功能单元中,以便处理起源于各个功能单元的那些事件信号,可以发现它们需要这类延迟或抑制。所以,同步对于允许多个事件按一种有意义的方式被组合而言很重要,对于使全局切断信号有意义也很重要。在′205Kelly专利***中,本文后面会更全面地加以描述,一个全局切断信号只由执行阶段中的指令生成。一些事件(例如,中断)本质上是异步的,没有有意义的方法可使它们同步成EM阶段。
参考图4,该图示意地展示了图1中的门40的内容,通过它,如果计数器3、5、7或9中的任何计数器获得各自特殊的被编程数目,则***提供一个中断。这个门包含“或”门41和四个“与”门42-45。那些“与”门的输出被输入到“或”门。每个各自的“与”门的一个输入耦合到MSB或多个计数器中的一个计数器的记号输出。如所指出的内容,计数器3的记号输出耦合到门42的一个输入。到那个“与”门的另一个输入被耦合到与各自的计数器有关的控制寄存器的中断使能终端。在给出的例子中,到“与”门42的第二输入被耦合到控制寄存器11的输出。如图中的导线数目所指出的,来自其他计数器的类似连接和它们有关的控制寄存器被连接到其他“与”门的输入。
当一个特定计数器要生成关于达到一个规定计数的中断时,“中断使能”信息与这里所写的其他数字信息同时被载入有关的控制寄存器。该中断使能是用文字格式被写入控制寄存器的一个特殊位置处的一个“1”,这在本文后面更加全面地加以描述。如果不是这样,则该特殊的位保留在一个“0”。控制寄存器中的中断使能信息出现在寄存器的输出处,并出现在到一个有关的“与”门的一个输入处。例如,假设计数器3可实现中断,则进入“与”门42的导线11是一个数字“1”。只有当“与”门的两个输入都处于数字“1”时,“与”门才能将其输出改变成数字“1”。如果任何一个门输入处于“0”,则“与”门不会改变其输出。它保留“0”。
如较早时候所描述的,当计数器达到其计算(即,减小过0)时,其MSB或记号输出从数字“0”变成数字“1”。当到“与”门42的两个输入都是“1”时,“与”门将其输出改变成数字“1”。“或”门41(如果任何“与”门输出数字“1”,它会输出数字“1”)对应于并提供数字“1”输出(用作中断信号)。当计数器的各个控制寄存器被编程为中断使能时,中断可以按类似的方式由达到计算的任何其他的计数器提供。
对应运算,编程科学家决定将计算什么事件。这个人选择上至四个事件,并决定这些事件是应该被组合用于计算还是进行单独计算。如果决定是组合这些事件,那么,这个人决定怎样将它们组合起来以生成四个计数器信号。这个人将信息编程入文本数据并相应地将该信息发送到计数器控制。
以下图表表现了关于控制寄存器的32位字的一种可能格式的一个例子,展示了每段文字的内容和边界位位置:
31          14 13    10 9                   8 7         6           5              4           3
  0  ES_事件选择单元|电线   IP   IE   GK   M   SCF
如所示内容,在这个例子中,没有使用位位置14~31。
分开的32位字被用于为各个计数器提供计算。计算文字中的32二进制位位置允许在计数器中***一个很大的数字,它有时是需要的,并取决于计数器是被用于生成一个中断还是只是允许某人在一段预定的时间后进行计算。
标记有“事件选择”的字的6位部分从由功能单元发送到所描述的计数器单元的所有那些事件信号中选择事件信号。通过产生信号的功能单元的说明书和电线或电线(该信号在其上被发送到这个计数器单元),来实现选择。
UNIT这个名称是指“单元索引选择”。处理器内的每个功能单元都被分配了标志。这个4位数据识别产生被监测事件的计算机内的功能单元。产生事件的单元在事件描述中被用记忆方法指出。
WIRE这个名称是“连线选择器”。这个块中的2位识别应该为这个事件计数器选择来自所选功能单元的四根电线中的哪些电线。事件在其上被发送的电线由计数器单元中的一个事件选择寄存器确定。
IE这个名称是指“中断使能”。如较早时候所描述的内容,计数器可以被用来生成一个中断。这个位置的数字位指出计数器是否将会生成那个中断。这个位置的一个“0”指示,将不生成中断。那个位置的一个“1”命令计数器生成一个中断。如果计数器最重要的位-MSB,位31是1,则中断应该是“中断优先领域IP”中所规定的优先项,这在本文后面描述。由于控制单元的较佳实施例使用减数计数器,因此,当该文字的CNT块中所规定的计算减小到一个负值时,生成中断,这在本文后面描述。
IP这个名称是指“中断优先”。为增加计数器***的多功能性,可以包括优先层次标识符。这个数据位规定了当该计数器的位31是一个数字1时所要求的计数器中断的优先。高度优先计数器中断比处理器所用的正常的高度优先权更高。应该理解,该计数器***被并入其内的处理器应该具有检测、使用和遵照该优先信息行事的必要的能力。关于代码简介(性能分析)应用,通常使用高度的优先权。监视器定时器应用也会可能使用这项高度优先权。如果中断优先在一个特殊的处理器***中并不重要,则位位置可以保留不用。
名称GK是指“全局切断处理”,这里所用的术语表示取消当前在处理器管道中的所有操作和许多处理器中的一项普通操作的功能,但由其他名称所指。在本发明所在的处理器的操作过程中,该处理器或它的多个功能单元(例如,正在被监测的功能单元)中的一个功能单元可以生成一个全局切断信号。例如,这种全局切断信号起源于′205Kelly等人的专利中所描述的***内的一个功能单元,这在本文的其他地方描述。关于增加的编程多功能性,如文本操作员的要求,本发明被较佳地组织成作出相应的响应或不作出相应的响应。这样,数字文字的这个块中的“0”指出,全局切断信号将被忽略,即,不管本发明所在的处理器发出的一个全局杀死命令存在与否,如果用信号通知,则计数事件。但是,“1”指出杀死信号应用,在哪个事件中,在应用杀死信号的处理器操作的时期内,用信号通知给来自功能单元的计数器的事件不会被加以计算。
名称M代表“计数模式”。这个数据块规定计数器应该何时计算是“信号组合函数”的输出的信号。在这个位置的“0”命令计数器根据被输入信号的持续时间来引发计算,以便在处理器时钟的每个时钟周期内计算出信号是正确的。另一方面,“1”命令计数器根据边缘检测的发生(发生的事件)来引发其计算,也就是说计算被接收的信号何时从“假”变成“真”。
名称SCF代表“信号组合函数”。在这些位位置的数据为两个事件输入信号的四个可能的组合中的每个组合定义一个单一的输出值。例如,与每个计数器有关的数字逻辑电路(这在本文其他地方更加详细地描述)允许两个分开的事件被组合起来。这个计数器单元能够提供该信息。在本文较早陈述的具有一张“事实表格”的“位”布尔逻辑中描述了选择。因为这个逻辑部件被连续地连接到计数器输入,所以,其中的一项命令是允许只来自多个MUX输入中的一个输入的输入,从而只计算与其有关的单独的事件。
每个计数器包含一个32位(二进制)计数寄存器。这个计数寄存器可以经由总线35由软件读取或被写入。通过经由计算机38开始的一项软件读取操作,进行性能分析的软件科学家(或计算机程序本身)可以随时检查计数器中的计算。寄存器根据较早时候所描述的事件选择和处理逻辑来减小寄存器中所包含的数字。当计算减小到0以下(即一个负数)时,已经实现该计算。
如果处理器***在测试时间正在运行,计数器也许已经在计算,它首先应该被停止。为了做到这一点,“0”被写入计数器的“计数器控制寄存器”。通过设置信号组合函数领域以输出一个恒定的“假”信号,这个动作使中断生成和计算无法实现。
运算相对直接了当的。利用被编程入计数器3、5、7和9的规定的计算和被安装在各个控制寄存器11、13、15和17中的所需选择,MUX的选择器建立与被选择用于计算的特殊功能单元中的来源有关的导线,各个信号组合器建立规定的事件或将由一个有关的计数器计算的事件组合。假设计数器3将监测功能单元12中的一个源处的一个事件,MUX 27建立到信号组合器19的一条路径,它已被设置来只允许那个输入27通过到计数器。这些事件因此被计算。当计数器3中所规定的计算被达到时,一个中断信号由计数器提供给门40,那个门又将总线36上的中断发送到计算机。如果控制寄存器被设置成使能中断,则它们只是被生成。
同样,例如,当所需的计数是对事件组合计数时,来自功能单元12的一个来源和来自功能单元16的另一个源MUXs 27和33被选择来监测那些源,并将它们各自的输出应用于信号组合器19。只有当发生在两个源处的事件的输入信号被应用于信号组合器各自的两个输入时,该信号组合器才允许一个输出到计数器。如同以前,当计算被达到时,计数器3输出被应用于门40的一个中断,并从该门被发送到总线36上的计算机38。
应该理解,其他所有的计数器可能正在同时进行计算。本质上与以前一样,该运算不需要加以分开描述。
如精通该技术领域的人所理解的,虽然较佳实施例中所用的信号组合器提供了广泛的可能的选择,但是,在不脱离本发明的范围的前提下,其他的信号组合器可能被代替,允许较少数量或种类的选项。
此外,前述实施例硬连线或连接两个MUXs到两个信号组合器单元,而那些MUXs又被硬连线到处理器内特殊的功能单元。但是,由于每个事件选择MUX树状结构在所展示的应用实施例中的两个计数器之间被分享,因此,为给定的一个计数器选择的每个事件也被输入到一个邻近计数器的信号组合函数,在应用中稍加限制。认为可以修改前述的实施例,以便具有更大的多功能性,另一个选择电路将允许人改变哪些MUX输出被连接到特殊的信号组合器单元。
此外,可以利用附加电平的选择逻辑来进一步改进图1的实施例,以便形成能够监测更加复杂的操作的选择性实施例。每个选择逻辑单元19、21、23和25根据由多个功能单元中的两个功能单元中的各项活动之间的设置组合逻辑定义的规定关系来提供一项计算。通过增加选择逻辑的一个额外的阶段,以便接收和监测来自图的实施例所示的选择逻辑单元中的两个选择逻辑单元(例如,选择逻辑单元19和21)的输出,并通过向多个计数器中的一个计数器呈现那个额外的选择逻辑的输出,人们能够获得基于选择逻辑单元19与21之间的规定关系(由所规定的组合逻辑定义)的一项计算。因此,这种计算基于多个处理器功能单元中的四个处理器功能单元中的一个被监测动作的发生。为了实现这种改进的实施例,有必要增加一个额外的控制寄存器(如同前面所描述的控制寄存器),以便将合适的选择输入提供给该额外的选择逻辑单元。精通该技术领域的人会理解,可以进一步执行事件的所述渐增,用于监测更加复杂的关系,尽管这样做的有意义的理由或必要性目前并不明显。
如果需要的话,人们也可以使用三个或四个输入信号组合函数。一般而言,前述计数器***的结构允许有N个计数器,每个计数器将根据X个独立输入事件的函数来进行计算。这种安排要求N-X个事件选择MUX树状结构。如果为N和X所选的数字很大,则该结构将要求很大数量的逻辑装置,由于被建立在一个半导体芯片上,该结构需要大量的芯片领域。所述的应用实施例以减少多功能性为代价提供了节省芯片面积的一种方法。
新颖的计数器***在应用中是通用的。它对Kelly等人的、于1998年11月3日授予的第5,832,205号美国专利中所描述的***具有特殊的应用。该专利名称为《用于检测与正在被寻址的一个部件的物理性质有关的推测失误的微处理器的存储控制器》(′205Kelly专利),它被受让于本发明的受让人—Transmeta公司。
′205Kelly专利尤其描述了一种新颖的计算机***,该计算机***用作能够执行利用一个指令集设计的软件程序的主机***,意在在具有不同设计的计算机***、目标***,以及包含对于目标***而言是独特的但与主机***不相关的一个指令集的***上运行。这包含被称作“代码变体软件”的软件和硬件,该硬件在其他事物中将包括软件程序“在飞行(运行)中”的指令转换成主机指令集的指令的软件,然后执行那些指令。
Kelly等人的计算机***寻求通过重新计划、记录和取消所发现的不必要的被转换指令来实行优化,以便以一种更有效的顺序来执行一系列指令。为实现该目的,它继续转换指令来产生第一序列的自然转换主机指令,并将该转换保存在一个转换缓冲器中。然后,代码变体软件尝试通过优化该序列来简化转换。
然而,当这种优化的序列由于任何原因而未能执行时,处理器生成一个例外并执行称作“重新运行”的过程,将指令执行返回目标处理器的正确状态已知的一个执行优先点。然后,处理器重新开始使用“自然”转换的转换(包括更多的基本指令),并存储指令序列中每个步骤的目标处理器的状态。当该例外最终重新发生时,这使处理器能够处于正确的状态,以便可以适当地处理该例外。
通过创建执行时间较少的较短且更容易管理的指令转换,′205Kelly***中的处理器经常能够以高于计算机(软件原来为它设计)的操作速度来运行软件程序。
在前述的优化过程中,许多例外或重新运行命令可能最初会频繁发生,然后随着前述人工学习的继续而逐渐停止。监测那些事件允许软件确定是否进一步实行优化。新的计数器可以被并入′205Kelly专利的计算机内,以便允许优化软件来监测那些事件。
当作为一种关键的设备被包括在计算机处理器的功能中时,前述的计数器***可以应用于一个特定事件,以便当进行一项预定的计算时生成一个处理器中断,这可以显示一个事件的发生过于频繁或与***设计者有关的另一个原因。尤其是,通过计算时钟周期(即时间间隔)来检测某些事件的额外活动(例如,重新运行)和提供实时的性能信息,计数器可以被应用于周期性地生成中断。然后,后面的信息可由代码变体软件使用,来动态地改变代码生成的行为。
此外,计数器***可以被应用来监测正常的处理器活动过程中主要处理器事件的发生,以及性能监视器的传统使用。然后,可以分析所获得的信息,以便理解处理器行为和校准性能模拟器。计数器还允许内部的逻辑事件被软件监测,而不影响逻辑的操作。这提供了一项调试功能。
监测这类事件通常使工程师或软件科学家了解潜在的瓶颈,在某个程序和其通过软件的不可见行为的其他方面的运行过程中会遇到这些瓶颈。这是一种性能测量与定时功能,它特别有助于设计者开发硬件或软件的精致附件,以便改进一种新的处理***的操作。
这样,例如,新的计数器可以被进一步应用于根据′205Kelly专利构造的计算机内,以便计算前述的例外和重新运行事件、处理器失速发生的次数、处理器完成有用工作所采取的周期的次数、中断被全局失灵或被防碍的次数、例外失灵的次数、被错误预测的支路和所采用的支路及许多其他事件的次数,这可能与计算机和软件设计者有关,但是不一定要理解本发明。
以上的描述定义了一种独特、新颖的计数器***,该***提供一种***计算功能,其中成对事件被馈入两个输入的任意逻辑块,能够在程序控制下计算两个输入的任何函数。只有简单的事件需要被直接生成。复杂的事件本质上由组合函数同步化。
该行业的人众所周知,计数器***由属于标准设计的各个部件构造而成,这是一个优点。
这可以用于性能简介,以便调试,识别引发某些需要的或不需要的事件的指令。可以分析似乎运行程序太慢的处理器芯片,并确定导致速度减慢的错误或问题。
认为本发明的较佳实施例的前述描述在内容的详细程度方面足以使精通该技术领域的人制作和使用本发明。但是,不言而喻,用于前述目的的元件的细节并非意在限制本发明的范围,精通该技术领域的人在阅读本说明书之后将了解那些元件和其他修改的等同物,它们都在本发明的范围以内。这样,本发明将在所附权利要求的全部范围内被广泛地加以构造。

Claims (17)

1.在半导体芯片中的一种事件计数器***,所述半导体芯片上包括一微处理器,所述微处理器包括多个功能性执行单元,其中,在所述微处理器的操作过程中,所述多个功能性执行单元中的每一个执行单元起事件信号源的作用,其特征在于所述***包括:
多个可编程计数器,所述可编程事件计数器用于对在软件应用程序运行期间由至少一个各自功能性单元所产生的事件计数;
所述多个可编程计数器被合并在所述半导体芯片的一个区域内;
多个电气总线,它们从作电连接的位置延伸到所述多个功能单元中相应功能单元,用于将发生在每个相应功能单元处的事件信号耦合到所述位置;
多个MUXs,每个所述MUX包括多重输入通道、单个输出通道和一个选择器,该选择器可以选择所述输入通道中的一个通过到所述输出通道;这响应于将选择器控制信息应用于所述选择器;以及
多个信号组合逻辑装置,每个所述信号组合逻辑装置能够规定多个可用布尔逻辑关系中任何一个,所述组合逻辑装置用于根据所述布尔逻辑关系中的一种关系合乎逻辑地组合被施加于一对输入的信号,以便只有当所述输入处的信号满足所述一种布尔逻辑关系时才产生一个输出;
每个所述信号组合逻辑装置包括一个选择输入,用于响应于被施加于所述选择输入的控制信息来选择所述多个布尔逻辑关系中的一种关系。
2.如权利要求1中所述的事件计数器***,其中,所述多个MUXs的每个MUX的输出通道仅被连接到所述多个组合逻辑装置中的两个装置的每个装置的输入;以及其中,所述组合逻辑装置的所述成对输入的一个输入被连接到所述多个MUX输出的一个输出,由此当所述多个功能单元中两个功能单元产生具有由所述控制信息所选择的所选布尔逻辑关系的事件信号时,所述组合逻辑装置能够产生一个输出;以及
所述多个组合逻辑装置中每一个的所述输出被连接到所述多个计数器的相应一个的一个输入,从而每个计数器响应于所述组合逻辑装置中相关一个的输出而计算一个事件。
3.如权利要求2中所述的事件计数器***,其中,每个所述MUX的所述选择器响应于数字选择代码的应用来选择一个输入通道;以及
其中,所述控制信息包括数字逻辑代码。
4.如权利要求3中所述的事件计数器***,其特征在于还包括:
多个控制寄存器,每个所述控制寄存器用于存储至少一个数字选择代码和一个数字逻辑代码;
每个所述控制寄存器与所述多个组合逻辑装置中各自一个以及与所述多个MUXs中各自一个相关联,每个所述控制寄存器包含发送所存储数字选择代码的第一输出和发送所存储数字逻辑代码的第二输出以及接收所述数字选择代码和所述数字逻辑代码的一个输入;
所述控制寄存器的所述第一输出被连接到所述各个MUX的所述选择输入,而所述控制寄存器的所述第二输出被连接到所述各个组合逻辑单元的所述选择输入。
5.如权利要求4中所述的事件计数器***,其特征在于还包括:
用于将数字选择代码和数字逻辑代码输入到所述多个控制寄存器的每一个的装置。
6.在半导体芯片中的一种事件计数器***,所述半导体芯片上包括一微处理器,所述微处理器包括多个功能性执行单元,其中,在所述微处理器的操作过程中,所述多个功能性执行单元中的每一个执行单元起事件信号源的作用,其特征在于所述***包括:
多个可编程计数器,所述可编程事件计数器用于对在软件应用程序运行期间由至少一个各自功能性单元所产生的事件计数;
所述多个可编程计数器被合并在所述半导体芯片的一个区域内;以及
多个电气总线,它们从关于电连接的所述位置延伸到所述多个功能单元中相应功能单元,用于将发生在每个相应功能单元处的事件信号耦合到所述位置;
用具有要计数的各个数对所述可编程计数器中至少一些编程的装置;
每个所述的可编程计数器包括一个输出,用于提供达到在其内编程的数字的输出信号;以及
门控装置,用于响应于来自任何所述可编程计数器的输出信号而提供一中断输出。
7.如权利要求6中所述的事件计数器***,其中,每个所述可编程计数器包括一个减数计数器。
8.如权利要求7中所述的事件计数器***,其特征在于还包括:
用于检测信号的持续时间的电平检测电路;以及
用于检测信号的发生的边缘检测电路;
信号类型选择装置用于将串联的所述电平检测电路和所述边缘检测电路中的所选一个电路放于所述组合逻辑装置的输出与所述有关可编程计数器之间,从而任何一种信号可以被呈现给所述可编程计数器用于计数。
9.权利要求7中所述的事件计数器***,其中,每个所述组合逻辑装置提供一输出信号,该输出信号持续一段事件组合被计数的周期;还包括:
多个边缘检测电路,所述边缘检测电路中的一个与多个组合逻辑装置中各自一个相连接;
每个所述边缘检测电路用于检测来自一相关组合逻辑装置的一输出信号的开始,所述边缘检测电路具有从所述相关组合逻辑装置接收所述输出信号的一个输入和提供表现所述被接收输出信号的开始的输出的一个输出;
用于选择性地将与所述组合逻辑装置有关的所述可编程计数器的所述输入从所述各自组合逻辑装置的所述输出切换到来自所述边缘检测电路的所述输出的装置,由此,所述可编程计数器对事件的开始计数。
10.如权利要求4中所述的事件计数器***,其特征在于还包括:用具有待计数的各个数字对所述可编程计数器中至少一些进行编程的装置;
每个所述可编程计数器包括一个输出,用于当达到其内被编程的数字时提供一个输出信号;以及
门控装置,用于响应于来自任何所述可编程计数器的输出信号而提供一个中断输出。
11.如权利要求10中所述的事件计数器***,其中,每个所述组合逻辑装置提供一个持续一段事件组合被计算的周期的输出信号;以及还包括:
多个边缘检测电路,所述边缘检测电路中的一个边缘检测电路与多个组合逻辑装置中各自一个相连接;
每个所述边缘电路用于检测来自一个有关组合逻辑装置的输出信号的开始,所述边缘检测电路具有一个输入和一个输出,该输入用于接收来自所述有关组合逻辑装置的所述输出信号,该输出用于提供表现所述被接收输出信号的开始的输出;
选择性地将与所述组合逻辑装置有关的所述可编程计数器的所述输入从所述各自组合逻辑装置的所述输出切换到来自所述边缘检测电路的所述输出的装置,由此,所述可编程计数器对事件的开始计数。
12.如权利要求10中所述的事件计数器***,其中,每个所述控制寄存器还包括:
用于接收和存储中断“使能”位并提供“使能”位输出的装置,当达到由与所述控制寄存器有关的可编程计数器的计数产生一个中断时,所述“使能”位输出是“真”,否则是“假”;以及
其中,所述门控装置还包括:
多个“与”门,每个所述“与”门包括第一输入、第二输入和一个输出,只有当所述第一和第二输入“真”时提供一个“真”输出;
一个“或”门,所述“或”门具有耦合到每个所述“与”门的输出的输入,当任何所述输入为“真”时提供一个输出;
每个所述“与”门的所述第一输入被连接到所述多个可编程计数器的各自一个的输出;以及
每个所述“与”门的所述第二输入被连接到所述控制寄存器的的各自一个的所述“使能”位输出,所述控制寄存器与所述多个可编程计数器的所述各自一个有关。
13.在一种半导体芯片中的一种事件计数器***,所述半导体芯片上包括一个微处理器,所述微处理器包括多个功能单元,其特征在于:所述***包括:
多个可编程事件计数器,所述可编程事件计数器用于对在一项软件应用程序运行期间由所述多个功能单元中至少一些产生的事件计数,所述多个事件计数器被固定在所述半导体芯片上的一个位置上;
每个所述可编程事件计数器包括一个输出,用于达到其内被编程的各个数字时输出一个信号;
多个输出总线,它们被连接到各个所述多个可编程事件计数器输出;
多个电气总线,它们从作电连接的位置延伸到各个所述的多个功能单元,用于将每个各自的功能单元处的事件耦合到所述位置;
被耦合到所述可编程计数器的一个编程总线,用于将数字输入到用以计数的所述各个可编程计数器;
多个MUXs,每个所述MUX包括多重输入通道、单个输出通道和一个选择器,该选择器能够选择所述输入通道中的一个输入通道通过所述输出通道,这响应于将控制信息应用于所述选择器;
多个信号组合逻辑装置;每个所述信号组合逻辑装置用于合乎逻辑地组合施加于一对输入的信号,以便只有当所述输入处的信号满足一种预定逻辑关系时才产生一个输出;
每个所述信号组合逻辑装置包括一个选择输入,能够响应于控制信息的应用而从多个不同逻辑关系中选择一种逻辑关系;
所述多个不同的逻辑关系至少包括:
输入1“唯真”,输入2“唯真”,输入1和输入2“真”,输入1“非”输入2“真”,输入2“非”输入1“真”,以及输入1“或”输入2“真”;
每个所述多个MUXs包括一个输出,该输出被连接到所述多个组合逻辑装置中的仅两个组合逻辑装置的一个输入;
任何所述组合逻辑装置的每个输入被连接到所述多个MUX输出的单个一个,从而当至少两个功能单元中的每个功能单元的输出所产生的事件满足由所述控制信息选择的逻辑关系时,所述组合逻辑装置能够产生一个输出;
每个所述多个组合逻辑装置具有其输出,该输出被连接到所述多个事件计数器中相关一个的输入,从而每个事件计数器响应于所述组合逻辑装置中的一个有关组合逻辑装置的输出而对事件计数;
每个所述组合逻辑装置,还包括:
用于检测被施加信号的持续时间的电平检测电路、用于检测被施加信号的发生的边缘检测电路,以及选择装置,该选择装置响应于控制信息的选择,用于在所述电平检测与所述边缘检测之间进行选择,以便将串联的所述电平检测电路和所述边缘检测电路中的这一个或那一个电路放置在有关组合逻辑装置的输出与所述有关计数器的所述输入之间;
多个控制寄存器,每个所述控制寄存器与各个所述计数器有关;
被耦合到所述通信总线的每个所述控制寄存器,用于接收和寄存来自外部源的控制信息,所述控制信息包括关于组合逻辑装置的选择的逻辑组合、相关MUX到输出的输入通道、所述电平检测电路与边缘检测电路中的一个电路、以及一个中断“使能”位,当达到与所述控制寄存器有关的可编程计数器的计数产生一个中断时,所述“使能”位输出是“真”,否则是“假”;
用于响应于来自任何所述可编程计数器的输出来提供一个中断的门控装置;
所述门控装置还包括:
多个“与”门,每个所述“与”门包括第一输入、第二输入和一个输出,用于只有当所述第一和第二输入“真”时才提供一个“真”输出;
一个“或”门,所述的“或”门具有被耦合到每个所述“与”门的输出的输入,用于当任何所述输入“真”时提供一个输出;
每个所述的“与”门的所述第一输入被连接到所述多个可编程计数器的各自一个的输出;以及
每个所述的“与”门的所述第二输入被连接到所述控制寄存器的各自一个的所述“使能”位输出,该控制寄存器与所述多个可编程计数器的所述各自一个有关。
14.如权利要求13中所述的事件计数器***,其中,所述多个功能单元包括至少一个存储器单元、第一和第二算术与逻辑单元,以及一个浮点单元。
15.一种事件计数***,用于监测发生在数字处理***内的功能单元的事件,其特征在于所述***包括:多个可编程计数器和相关控制寄存器;同样多个信号组合器装置,每个所述信号组合器装置与所述可编程计数器和相关控制寄存器中的一个相关,每个所述信号组合器装置用于响应于由至少一个所述功能单元的事件的产生满足一预选逻辑标准而产生一个输出,并将那个输出施加于所述可编程计数器中的有关一个计数器;
每个所述控制寄存器用于将逻辑标准选择信息提供给与所述计数器有关的信号组合器;以及
用于对所述控制寄存器和所述可编程计数器编程的装置,其中,选择信息被载入所述控制寄存器,一个计数被载入每个计数器;
每个所述控制寄存器包括将计数信息载入有关寄存器并将选择信息载入有关信号组合器的装置。
16.一种芯片上的中央处理器,其特征在于它包括:
一个微处理器,所述微处理器包括多个功能单元;以及
一个可编程数字电子计数器***,用于对在操作期间发生在所述功能单元中至少一个功能单元中的事件进行计数,所述数字电子计数器***包括至少四个单独的可编程数字电子计数器,所述可编程数字电子计数器具有一输入,能够对该输入编程使其从多个输入源中作选择。
17.一种芯片上的中央处理器,其特征在于它包括:
一个微处理器,所述微处理器包括多个功能单元,所述功能单元定义X个独立输入事件的源,其中X是一个整数;以及
一个可编程数字电子计数器***,用于对在操作期内发生在所述功能单元中的至少一个功能单元的事件进行计数;
所述数字电子计数器***包括至少N个单独的可编程数字电子计数器,其中N是不小于4的数字;
所述数字电子计数器***还包括多个N-X事件选择MUX树状结构,用于允许多个所述X个事件在所述计数器***处被选择性地加以监测;以及
多个N信号组合逻辑装置,一个信号组合逻辑装置与所述N个数字电子计数器中的一个对应数字电子计数器相关;
每个所述的信号组合逻辑装置能够规定多种可用布尔逻辑关系中的任何一种关系,所述组合逻辑装置用于根据所述布尔逻辑关系的一种关系来合乎逻辑地组合被施加于Y个输入的信号,以便只有当所述输入上的信号满足所述一种布尔逻辑关系时才产生一个所需输出,其中Y是大于1、且小于或等于N的一个数字。
CNB008141843A 1999-10-13 2000-09-06 可编程事件计数器*** Expired - Fee Related CN1258741C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/417,930 US6356615B1 (en) 1999-10-13 1999-10-13 Programmable event counter system
US09/417,930 1999-10-13

Publications (2)

Publication Number Publication Date
CN1378679A CN1378679A (zh) 2002-11-06
CN1258741C true CN1258741C (zh) 2006-06-07

Family

ID=23655938

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB008141843A Expired - Fee Related CN1258741C (zh) 1999-10-13 2000-09-06 可编程事件计数器***

Country Status (9)

Country Link
US (1) US6356615B1 (zh)
EP (1) EP1234277B1 (zh)
JP (1) JP2003511800A (zh)
KR (1) KR100596761B1 (zh)
CN (1) CN1258741C (zh)
AT (1) ATE398815T1 (zh)
CA (1) CA2380077C (zh)
DE (1) DE60039251D1 (zh)
WO (1) WO2001027873A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106461413A (zh) * 2014-06-10 2017-02-22 罗伯特·博世有限公司 用于运行事件计数器的方法

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6199152B1 (en) 1996-08-22 2001-03-06 Transmeta Corporation Translated memory protection apparatus for an advanced microprocessor
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
AUPQ542900A0 (en) * 2000-02-04 2000-02-24 Bisinella, Richard Microprocessor
US6594821B1 (en) 2000-03-30 2003-07-15 Transmeta Corporation Translation consistency checking for modified target instructions by comparing to original copy
US6615300B1 (en) 2000-06-19 2003-09-02 Transmeta Corporation Fast look-up of indirect branch destination in a dynamic translation system
US7448025B2 (en) * 2000-12-29 2008-11-04 Intel Corporation Qualification of event detection by thread ID and thread privilege level
US7111179B1 (en) 2001-10-11 2006-09-19 In-Hand Electronics, Inc. Method and apparatus for optimizing performance and battery life of electronic devices based on system and application parameters
GB2380827A (en) * 2001-10-12 2003-04-16 Siroyan Ltd Debugging of processors using two separate event detectors
US7024579B2 (en) * 2002-08-27 2006-04-04 Stmicroelectronics S.R.L. Configurable timing system having a plurality of timing units interconnected via software programmable registers
US7260200B1 (en) 2002-08-30 2007-08-21 Aol Llc, A Delaware Limited Liability Company Enabling interruption of communications and detection of potential responses to an interruption of communications
US20090052608A1 (en) * 2007-08-21 2009-02-26 International Business Machines Corporation Method for dynamically adjusting hardware event counting time-slice windows
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
US7590695B2 (en) 2003-05-09 2009-09-15 Aol Llc Managing electronic messages
US7739602B2 (en) 2003-06-24 2010-06-15 Aol Inc. System and method for community centric resource sharing based on a publishing subscription model
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
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
US20050283669A1 (en) * 2004-06-03 2005-12-22 Adkisson Richard W Edge detect circuit for performance counter
US7676530B2 (en) * 2004-06-03 2010-03-09 Hewlett-Packard Development Company, L.P. Duration minimum and maximum circuit for performance counter
US7624319B2 (en) * 2004-06-03 2009-11-24 Hewlett-Packard Development Company, L.P. Performance monitoring system
JP2006107041A (ja) * 2004-10-04 2006-04-20 Hitachi Ltd ハードウェアイベントハンドルモジュール
US20060129999A1 (en) * 2004-11-16 2006-06-15 Sony Computer Entertainment Inc. Methods and apparatus for using bookmarks in a trace buffer
WO2006109728A1 (ja) * 2005-04-11 2006-10-19 Matsushita Electric Industrial Co., Ltd. システム性能プロファイリング装置
US7788508B1 (en) 2005-05-26 2010-08-31 National Semiconductor Corporation System and method for rapidly increasing a rising slew rate of an adjustable supply voltage in adaptive voltage scaling
US7363471B2 (en) * 2005-06-27 2008-04-22 Intel Corporation Apparatus, system, and method of dynamic binary translation supporting a denormal input handling mechanism
US8413162B1 (en) 2005-06-28 2013-04-02 Guillermo J. Rozas Multi-threading based on rollback
US8253748B1 (en) 2005-11-29 2012-08-28 Nvidia Corporation Shader performance registers
US7809928B1 (en) * 2005-11-29 2010-10-05 Nvidia Corporation Generating event signals for performance register control using non-operative instructions
US7921312B1 (en) 2007-09-14 2011-04-05 National Semiconductor Corporation System and method for providing adaptive voltage scaling with multiple clock domains inside a single voltage domain
US8327179B2 (en) * 2008-06-05 2012-12-04 Realtek Semiconductor Corp. Asynchronous counter based timing error detection
US20100008464A1 (en) * 2008-07-11 2010-01-14 Infineon Technologies Ag System profiling
US8346509B2 (en) * 2009-04-08 2013-01-01 Intel Corporation Context switch sampling
RU2448363C1 (ru) * 2010-08-05 2012-04-20 Федеральное государственное унитарное предприятие "Научно-производственное объединение автоматики имени академика Н.А. Семихатова" Комплекс отладки
DE102010054446A1 (de) * 2010-12-14 2012-06-14 Giesecke & Devrient Gmbh Portabler Datenträger mit Fehlbedienungszähler
FR2982684B1 (fr) 2011-11-10 2014-01-10 Commissariat Energie Atomique Systeme et procede de conception de circuit numerique a capteur d'activite
US9971603B2 (en) * 2011-12-29 2018-05-15 Intel Corporation Causing an interrupt based on event count
US9575766B2 (en) 2011-12-29 2017-02-21 Intel Corporation Causing an interrupt based on event count
US9069629B2 (en) * 2013-03-15 2015-06-30 International Business Machines Corporation Bidirectional counting of dual outcome events
US9742278B2 (en) * 2015-10-13 2017-08-22 Solantro Semiconductor Corp. Event-based switching for power conversion
CN107451038B (zh) * 2016-05-30 2020-05-19 龙芯中科技术有限公司 硬件事件采集方法、处理器和计算***
KR20180124568A (ko) * 2017-05-12 2018-11-21 에스케이하이닉스 주식회사 리페어 회로 및 이를 포함하는 메모리 장치
CN110244590B (zh) * 2018-03-09 2021-09-03 华大半导体有限公司 多功能定时器
CN115391132B (zh) * 2022-06-14 2024-03-29 北京中科昊芯科技有限公司 一种监控诊断的装置以及芯片

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4817118A (en) * 1987-06-29 1989-03-28 Step Engineering Mobile incident logger
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
JP3617686B2 (ja) * 1994-09-26 2005-02-09 株式会社リコー 画像形成装置及び画像形成装置管理システム
US5790625A (en) * 1997-04-14 1998-08-04 International Business Machines Corporation Mechanism for enabling an array of numerous large high speed counters

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106461413A (zh) * 2014-06-10 2017-02-22 罗伯特·博世有限公司 用于运行事件计数器的方法
US10612938B2 (en) 2014-06-10 2020-04-07 Robert Bosch Gmbh Method for operating an event counter

Also Published As

Publication number Publication date
WO2001027873A1 (en) 2001-04-19
ATE398815T1 (de) 2008-07-15
CA2380077C (en) 2007-03-06
CA2380077A1 (en) 2001-04-19
EP1234277B1 (en) 2008-06-18
EP1234277A4 (en) 2004-07-07
EP1234277A1 (en) 2002-08-28
KR100596761B1 (ko) 2006-07-07
JP2003511800A (ja) 2003-03-25
KR20020039684A (ko) 2002-05-27
US6356615B1 (en) 2002-03-12
DE60039251D1 (de) 2008-07-31
CN1378679A (zh) 2002-11-06

Similar Documents

Publication Publication Date Title
CN1258741C (zh) 可编程事件计数器***
EP0897152A2 (en) Performance counters controlled by programmable logic
Papadimitriou et al. An effective framework to evaluate dynamic partial reconfiguration in FPGA systems
CN106227507A (zh) 计算***及其控制器
CN101441674B (zh) 基于fpga的动态可重构***的分片配置方法
CN1125006A (zh) 动态互连于一个动态逻辑内核的现场可编程逻辑设备
CN1881224A (zh) 估计电路时钟树的抖动并合成抖动意识和偏差意识时钟树
CN1759354A (zh) 用于对任意大小的正则表达式估值的方法和装置
CN101051332A (zh) 一种soc芯片***级验证***及方法
CN103440216A (zh) 一种通过i2c从设备调试mcu的芯片及方法
CN1508690A (zh) 使能跟踪重复指令的方法和***
CN101063894A (zh) 动态同步化处理器时钟与总线时钟前缘的方法与***
CN1570907A (zh) 多处理器***
CN1200342C (zh) 指令变换装置和变换方法
KR101761462B1 (ko) 네트워크 패킷의 병렬 처리
CN103116517A (zh) 虚拟化平台下i/o通道的调整方法和调整装置
CN101042685A (zh) 内嵌式***与其控制方法
CN101067797A (zh) 处理器利用率的测量装置及方法
US7913204B2 (en) High-level synthesis apparatus, high-level synthesis system and high-level synthesis method
CN107870779B (zh) 调度方法与装置
US8659318B1 (en) Systems and methods for implementing tristate signaling by using encapsulated unidirectional signals
CN1913549A (zh) 一种单板时钟信号实时监控的***及方法
CN108228242A (zh) 一种可配置且具弹性的指令调度器
CN108028849B (zh) 用于应用和资源可重用性的利用分层抽象的iot服务建模
US20140176571A1 (en) Block-based signal processing

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
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
ASS Succession or assignment of patent right

Owner name: TRANSMITAR CO., LTD

Free format text: FORMER OWNER: TRANSMITAR CO., LTD.

Effective date: 20091030

Owner name: KNOWLEDGE VENTURE CAPITAL ROMPLAST-14 O., LTD

Free format text: FORMER OWNER: TRANSMITAR CO., LTD

Effective date: 20091030

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20091030

Address after: Nevada

Patentee after: TRANSMETA Corp.

Address before: California, USA

Patentee before: Full simeida LLC

Effective date of registration: 20091030

Address after: California, USA

Patentee after: Full simeida LLC

Address before: California, USA

Patentee before: Transmeta Corp.

ASS Succession or assignment of patent right

Owner name: KNOWLEDGE RISK FUND 100 CO., LTD.

Free format text: FORMER OWNER: KNOWLEDGE RISK FUND CO., LTD.

Effective date: 20140814

Owner name: SECURITY ACCESS CO., LTD.

Free format text: FORMER OWNER: KNOWLEDGE RISK FUND 100 CO., LTD.

Effective date: 20140814

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20140814

Address after: Texas, USA

Patentee after: Secure access Ltd.

Address before: Delaware

Patentee before: Knowledge risk fund 100 LLC

Effective date of registration: 20140814

Address after: Delaware

Patentee after: Knowledge risk fund 100 LLC

Address before: Nevada

Patentee before: Transmeta Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20060607

Termination date: 20170906

CF01 Termination of patent right due to non-payment of annual fee