买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】控制将到处理电路的触发信号设定为有效态的装置及方法_ARM 有限公司;安谋科技(中国)有限公司_201710751793.4 

申请/专利权人:ARM 有限公司;安谋科技(中国)有限公司

申请日:2017-08-28

公开(公告)日:2023-01-06

公开(公告)号:CN107797873B

主分类号:G06F9/54

分类号:G06F9/54;G06F11/30

优先权:["20160831 GB 1614752.2"]

专利状态码:有效-授权

法律状态:2023.01.06#授权;2019.09.20#实质审查的生效;2018.06.19#专利申请权、专利权的转移;2018.03.13#公开

摘要:本公开提供了控制将到处理电路的触发信号设定为有效态的装置及方法。装置具有评估电路,用于接收指示由处理电路执行的程序指令的程序指令执行信息,该评估电路被布置为执行评估操作以参照评估信息来确定程序指令执行信息是否指示触发条件的存在。使用触发信号生成电路来根据触发条件是否被确定为存在,将到处理电路的触发信号设定为有效态。此外,过滤电路被布置为接收指示发生在处理电路内的至少一个事件的事件信息,并且被布置为参照过滤控制信息和事件信息来确定合格条件是否存在。过滤电路被布置为在确定合格条件不存在之后防止将触发条件的存在通知给触发信号生成电路。

主权项:1.一种装置,包括:评估电路,用于接收指示由处理电路执行的程序指令的程序指令执行信息,并且用于执行评估操作以确定触发条件的存在;其中,所述确定是通过将所述程序指令执行信息与预定的评估信息进行比较来执行的;触发信号生成电路,用于根据所述触发条件是否被确定为存在,将到所述处理电路的触发信号设定为有效态;以及过滤电路,用于接收指示发生在所述处理电路内的至少一个事件的事件信息,并且用于参照过滤控制信息和所述事件信息来确定合格条件是否存在;所述过滤电路被布置为在确定所述合格条件不存在之后防止将所述触发条件的存在通知给所述触发信号生成电路;其中由所述事件信息指示的所述至少一个事件不包括直接由所述程序指令的执行定义的事件;其中所述处理电路被布置为执行程序指令序列,所述序列包括指示所述序列内的经识别的程序指令的分路行为设定程序指令,所述分路行为设定程序指令的执行使得分路行为能够与所述经识别的程序指令相关联,所述分路行为使得当在所述序列中遭遇到所述经识别的程序指令时将所述处理电路分路到由所述分路行为设定程序指令识别的目标地址;并且由所述事件信息指示的事件识别在由于所述分路行为设定程序指令的先前执行而遭遇到所述经识别的程序指令之后所述处理电路已在何时采取分路。

全文数据:控制将到处理电路的触发信号设定为有效态的装置及方法技术领域[0001]本技术涉及用于控制将到处理电路的触发信号设定为有效态assertion的装置及方法。背景技术[0002]已知将相关联的监控电路提供给处理电路,该监控电路可被布置为从处理电路接收程序指令执行信息。监控电路可使用要监控的某些信息值来编程,并且通过参照那些经编程的信息值来分析从处理电路所接收的程序指令执行信息,该监控电路可确定何时将到处理电路的触发信号设定为有效态。[0003]作为示例,监控电路可以采取具有一个或多个经编程的监视点值的监视点电路的形式,并且通过监控所接收的程序指令执行信息,该监控电路可确定何时检测到那些监视点值,并且将到处理电路的监视点信号设定为有效态。处理电路可响应于监视点信号而然后采取预定行动,例如进行中断以执行适当的异常例程。[0004]随着处理电路的复杂性增加和处理电路所支持的功能增加,会想要改良此类监控电路的功能以允许监控处理电路的更复杂的行为。发明内容[0005]在一个示例配置中,提供了一种装置,该装置包括:评估电路,用于接收指示由处理电路执行的程序指令的程序指令执行信息,并且用于执行评估操作以参照评估信息来确定程序指令执行信息是否指示触发条件的存在;触发信号生成电路,用于根据所述触发条件是否被确定存在,将到处理电路的触发信号设定为有效态;以及过滤电路,用于接收指示发生在处理电路内的至少一个事件的事件信息,并且用于参照过滤控制信息和所述事件信息来确定合格条件是否存在;过滤电路被布置为在确定合格条件不存在之后防止将触发条件的存在通知给触发信号生成电路。[0006]在另一示例配置中,提供了一种操作装置来控制将到处理电路的触发信号设定为有效态的方法,该方法包括以下步骤:接收指示由处理电路执行的程序指令的程序指令执行信息,并且执行评估操作以参照评估信息来确定程序指令执行信息是否指示触发条件的存在;根据所述触发条件是否被确定为存在,将到处理电路的触发信号设定为有效态;接收指示发生在处理电路内的至少一个事件的事件信息,并且参照过滤控制信息和所述事件信息来确定合格条件是否存在;以及在确定合格条件不存在之后,防止在确定是否将触发条件设定为有效态时考虑触发条件的存在。[0007]在又进一步的示例配置中,提供了一种装置,该装置包括:用于接收指示由处理电路执行的程序指令的程序指令执行信息并且用于执行评估操作以参照评估信息来确定程序指令执行信息是否指示触发条件的存在的评估装置;用于根据所述触发条件是否被确定为存在将到处理电路的触发信号设定为有效态的触发信号生成装置;以及用于接收指示发生在处理电路内的至少一个事件的事件信息并且用于参照过滤控制信息和所述事件信息来确定合格条件是否存在的过滤装置;过滤装置进一步地在确定合格条件不存在时用于防止将触发条件的存在通知给触发信号生成装置。附图说明[0008]仅通过示例的方式,将进一步参照如附图中示出的本技术的实施例来描述本技术,其中:[0009]图1是根据一个实施例的包括监控电路的系统的框图;[0010]图2是示出根据一个实施例的提供在监控电路内的组件的框图;[0011]图3是更详细地示出根据一个实施例的提供在监控电路的各个比较过滤块内的组件的图示;[0012]图4是示出根据一个实施例的各个比较过滤块的操作的流程图,;[0013]图5是示出根据替代性实施例的监控电路的布置的图示;[0014]图6是示出根据一个实施例的在使用图5的监控电路时各个比较过滤块的操作的流程图;[0015]图7是示出根据又进一步的替代性实施例的监控电路的布置的图示;以及[0016]图8是示出根据一个实施例的在使用图7的监控电路时各个比较过滤块的操作的流程图。[0017]在参照附图来讨论实施例之前,提供以下实施例说明。具体实施方式[0018]在一个实施例中,提供了一种装置,该装置包括:评估电路,用于从相关联的处理电路接收程序指令执行信息,该程序指令执行信息指示由处理电路所执行的程序指令。评估电路然后被布置为执行评估操作以参照评估信息来确定程序指令执行信息是否指示触发条件的存在。在一个实施例中,评估信息可被编程进评估电路以识别将程序指令执行信息的什么值或程序指令执行信息的什么值范围确定为指示触发条件的存在。[0019]装置还包括:触发信号生成电路,用于根据触发条件是否被确定为存在,将到处理电路的触发信号设定为有效态。在一个实施例中,可存在评估电路的多个示例,并且触发信号生成电路可在确定是否将触发信号设定为有效态时考虑从那些评估电路中的每一个所接收的信号。[0020]一个实施例的装置还包括:过滤电路,用于接收指示发生在处理电路内的至少一个事件的事件信息,并且被布置为参照过滤控制信息和事件信息来确定合格条件是否存在。如在使用评估信息的情况下,在一个实施例中,过滤控制信息可被事先预编程且用于识别需要存在才能确定合格条件存在的任何事件。[0021]过滤电路然后被布置为在确定合格条件不存在之后防止将触发条件的存在通知给触发信号生成电路。其结果是,过滤电路可用于通过根据由过滤电路所施加的任何事件限制是否还被符合来将触发条件通知给触发信号生成电路,过滤由评估电路检测到触发条件存在的哪些实例实际上被通知给触发信号生成电路。[0022]这提供了非常强力的用于监控相关联的处理电路内的复杂行为组合并且相应地发出触发信号的机制。具体而言,程序指令执行信息一般将提供是执行程序指令的直接后果的信息。在一个示例中,程序指令执行信息提供以下中的至少一者:由处理电路执行的程序指令的指令地址;在执行程序指令时访问的数据值的地址;以及在执行程序指令时访问的数据值。[0023]相较之下,事件信息可采取各式各样的不同形式且涉及不是由程序指令的执行直接界定的事件,其中程序指令由评估电路评估。事件信息因此例如可包括关于任何所需数量的架构的或微架构的事件的信息,其中过滤控制信息是可设定的,使得在所接收的程序指令执行信息会使得评估电路确定触发条件存在时,触发条件实际上仅在编码进过滤控制信息的至少一个架构的或微架构的事件还存在时被通知给触发信号生成电路。[0024]存在着此类方法可提供显著益处的许多示例。例如,在一个实施例中,处理电路可被布置为执行程序指令序列,所述序列包括指示所述序列内的经识别的程序指令的分路行为设定程序指令,分路行为设定程序指令的执行允许分路行为与所述经识别的程序指令相关联,分路行为使得在所述序列中遭遇到经识别的程序指令时将处理电路分路到由分路行为设定程序指令所识别的目标地址。在此类实施例中,由事件信息所指示的事件可识别在由于分路行为设定程序指令的先前执行而遭遇到所述经识别的程序指令之后处理电路已在何时采取分路。[0025]通过特定示例的方式,将理解的是,在此类实施例中,评估电路和过滤电路可被布置为使得评估电路监控程序指令执行信息以确定在程序序列中何时遭遇到经识别的程序指令,但将仅在过滤电路还确定在由于先前执行分路行为设定程序指令而遭遇到经识别的程序指令之后处理电路已采取分路时才将触发条件通知给触发信号生成电路。这允许监控处理电路的非常特定的行为。[0026]然而,由过滤电路所监控的事件并不需要涉及此类分路行为设定程序指令的使用,反而过滤电路内的过滤控制信息可被编程以便监控任何所需的事件,例如缓存未中或其他效能相关的事件例如资源冲突、失速等等)。此类事件的发生将然后通过所接收的事件信息回报至过滤电路,使得过滤电路可确定合格条件是否存在。[0027]可以各种不同方式配置过滤电路,以便在合格条件未被满足时防止将触发条件通知给触发信号生成电路。在一个实施例中,评估电路被布置为发出指示是否已确定触发条件存在的输出信号,并且过滤电路被布置为接收所述输出信号并且生成替换输出信号。在所述合格条件存在的情况下,过滤电路使得所述替换输出信号匹配所述输出信号,并且在所述合格条件不存在的情况下,过滤电路使得所述替换输出信号指示触发条件的不存在。因此,在此类实施例中,过滤电路根据合格条件是否被满足而选择性地修改来自评估电路的输出信号。具体而言,在合格条件不存在的情况下,过滤电路将覆写来自评估电路的输出信号,使得替换输出信号指示触发条件不存在,无论评估电路是否检测到触发条件。[0028]在替代性实施例中,过滤电路可被布置为控制由评估电路所使用的启用信号。具体而言,在一个实施例中,过滤电路被布置为针对评估电路生成启用信号,启用信号在合格条件存在时被设定为有效态asserted并且在合格条件不存在时被设定为非有效态de-asserted。评估电路被布置为在启用信号被设定为有效态时执行评估操作并且发出指示所述触发条件是否已被确定存在的输出信号,但被布置为在启用信号被设定为非有效态时使得输出信号指示触发条件不存在。因此,在启用信号被过滤电路设定为非有效态时,评估电路输出信号将指示触发条件不存在,其中评估操作在此类情况下不被评估电路执行。[0029]作为又进一步的替代方案,过滤电路可被布置为在所述合格条件不存在的情况下修改程序指令执行信息和该评估信息中的一个,使得防止评估电路确定触发条件是存在的。[0030]尽管在一个实施例中,在检测到合格条件不存在之后,过滤电路可修改评估信息以采取不会使得触发条件被评估电路检测到的形式无论程序指令执行信息采取什么样的有效值),然而在替代性实施例中,过滤电路在程序指令执行信息被评估电路考虑之前修改程序指令执行信息。[0031]具体而言,过滤电路可被布置为选择性地修改由评估电路所评估的程序指令执行信息。在一个实施例中,过滤电路被布置为接收如由处理电路所输出的程序指令执行信息并且生成替换程序指令执行信息以用于输入到评估电路。在所述合格条件存在的情况下,过滤电路使得所述替换程序指令执行信息匹配如由处理电路所输出的程序指令执行信息,并且在所述合格条件不存在的情况下,过滤电路使得所述替换程序指令执行信息采取防止评估电路将触发条件确定为存在的形式。因此,在此类实施例中,在合格条件不存在时,过滤电路可被布置为修改程序指令执行信息,使得程序指令执行信息采取一定形式,其中已知在评估电路执行评估电路的评估操作时该形式将不然后允许评估电路检测到匹配。例如,可修改所接收的程序指令执行信息以便采用非法值,其中己知该非法值然后在评估电路执行评估电路的评估操作时将不使得评估电路检测到触发条件。[0032]存在可提供评估信息和过滤控制信息以用于分别由评估电路和过滤电路使用的许多方式。在一个实施例中,装置还包括存储器,该存储器被配置为储存该评估信息及该过滤控制信息。在一个实施例中,存储器的内容是可编程的,例如可由试图在由处理电路所执行的程序指令序列上执行除错操作的除错应用程序用户编程。通过使用评估信息和过滤控制信息两者,可监控非常有针对性的行为,允许不仅监控特定的指令执行行为,而且监控该指令执行行为与发生在处理电路内的一个或多个其他事件重合的特定实例。[0033]在一个实施例中,装置还包括:至少一个进一步的评估电路,每个进一步的评估电路被布置为接收所述程序指令执行信息并且执行相关联的评估操作以参照相关联的评估信息来确定程序指令执行信息是否指示进一步的触发条件的存在。触发信号生成电路然后被布置为根据所述触发条件和每个所述进一步的触发条件中的至少一个是否被确定为存在,将到处理电路的触发信号设定为有效态。因此,可在确定将到触发信号生成电路的触发信号设定为有效态是否适当时考虑来自多个评估电路的触发条件。[0034]在一个实施例中,装置还包括:至少一个进一步的过滤电路,每个进一步的过滤电路与进一步的评估电路相关联,并且每个进一步的过滤电路被布置为接收所述事件信息并且参照相关联的过滤控制信息和所述事件信息来确定进一步的合格条件是否存在。在确定进一步的合格条件不存在之后,进一步的过滤电路防止将由相关联的进一步评估电路所确定的进一步的触发条件的存在被通知给触发信号生成电路。[0035]在一个实施例中,装置还包括结合电路,结合电路被布置为:接收从由评估电路发出的输出信号导出的第一输入信号和从由进一步的评估电路发出的输出信号导出的进一步的输入信号,并且在所述第一输入信号和所述进一步的输入信号上执行逻辑运算以生成被提供到所述触发信号生成电路的结合的输出信号。[0036]因此,可在确定将到触发信号生成电路的触发信号设定为有效态是否适当时逻辑地结合来自多个评估电路的触发条件。此类方法例如允许针对一定范围的指令地址、数据地址或数据值来检测触发条件。然而,再次地,过滤电路可用于合格化任何此类触发条件,使得根据由过滤电路所监控的至少一个事件的存在来将触发信号设定为有效态。进一步的评估电路中的一个或多个还可被提供为具有相关联的过滤电路,使得多个评估电路可然后拥有其由相关联过滤电路的操作所合格化的触发条件。[0037]由结合电路所接收的输入信号可与由相关联的评估电路所发出的输出信号直接对应,但这将根据过滤电路是如何被配置为修改评估电路的行为的。例如,在其中过滤电路选择性地修改来自相关联的评估电路的输出信号的一个实施例中,将理解的是,由于由相关联的过滤电路实现的过滤功能,由结合电路接收的输入信号可不与由相关联的评估电路发出的输出信号直接对应。[0038]评估电路可采取各种形式,但在一个实施例中包括了比较电路,所述评估信息包括匹配值,并且比较电路被布置为将程序指令执行信息的选择的部分例如指令地址、数据地址或数据值与匹配值进行比较以确定触发条件是否存在。[0039]在一个实施例中,过滤控制信息识别是否需要至少一个事件发生才能确定合格条件存在。尽管过滤控制信息可将合格条件限制为需要一个或多个特定事件存在,然而在一个实施例中,还存在着过滤控制信息的可用设定,该设定有效略过过滤操作,允许朝向触发信号生成电路上传播由相关联的评估电路所造成的任何的触发条件发生。[0040]触发信号可采取各种形式,但在一个实施例中为监视点信号,监视点信号在被设定为有效态时向处理电路指示至少一个监视点条件的存在。[0041]现将参照附图来描述特定的实施例。[0042]图1是示出根据一个实施例的系统的图示。提供了处理元件10,该处理元件被布置为执行程序指令序列,其中程序指令执行信息在那些指令的执行期间被输出至监控电路20。程序指令执行信息提供了是执行程序指令的直接结果的信息。例如,程序指令执行信息可识别由处理电路执行的程序指令的指令地址、在执行程序指令时访问的数据值的地址和或在执行程序指令时访问的数据值。在进一步实施例中,还可将循环计数值包括在程序指令执行信息内,例如如由维持N位的计数值的包绕计数器生成的循环计数值。[0043]监控电路20被布置为监控程序指令执行信息,以确定何时在程序指令执行信息内观察到特定值,从而允许在观察到那些值时在路径30上将触发信号发回到处理元件10。这可能在各种情况下是有用的,例如在试图将由处理元件10所执行的程序序列除错时。[0044]处理元件10可采取各种形式,但在一个实施例中是被布置为执行程序指令序列的处理器核心,其中监控电路被提供为与处理器核心相关联以在某些程序执行行为如通过分析程序指令执行信息25所推断地发生时向处理元件发出触发信号。在一个实施例中,监控电路采取除错、监视点及追踪DWT电路的形式,该电路可使用某些监视点值来编程并且可然后监控程序指令执行信息内的那些监视点值的存在。触发信号可然后采取监视点信号的形式,监视点信号在检测到如由各种监视点值所编码的监视点条件时被设定为有效态。监控电路20还可被布置为编码特定的暂停点条件,并且用语监视点将在本文中一般用于指监视点及暂停点两者。[0045]在图1中为了易于说明,监控电路20被示出为与处理元件10分离。然而,在某些实施例中,并不需要监控电路2〇相对于处理元件1〇为实体上离散的项目,并且确实在某些处理器核心中,监控电路20可被提供在处理器核心内,例如朝向处理器核心的执行流水线的末端而定位。[0046]根据本文中所描述的实施例,处理元件10还被布置为在路径35上向监控电路2〇发出事件信息,使得可通过分析程序指令执行信息来检测的某些触发条件可在其不与由事件信息所指示的一个或多个预定事件重合时被过滤掉。[0047]事件信息可采取各种不同的形式而关联于不由程序指令的执行所直接界定的事件,程序指令执行信息与该程序指令相关联。各种架构的及微架构的事件可被编码在事件信息内,其中提供在监控电路内的过滤电路施加通过分析程序指令执行信息来检测的触发条件的选择性过滤。这可因此允许将触发信号设定为有效态的行为与相关联的处理元件10内的复杂行为组合相关联,而不是仅根据程序指令执行信息的分析。[0048]在路径35上路由到监控电路20的事件指示可因此例如指示不是由特定程序指令的执行所预料的事件或非直接与程序指令的执行相关联的事件,其中针对程序指令而在路径25上提供相关联的程序指令执行信息。这些事件例如可以是效能相关的事件,例如资源冲突、失速stall等等,事件可能在执行执行流水线内的某些指令的期间引起,或者这些事件可以是其他效能影响事件,例如缓存未中,例如可能己在从指令高速缓存预提取指令时发生的缓存未中,或可能已在试图访问由特定指令的执行所指定的数据时发生的缓存未中。通过使用由所述实施例所提供的监控电路的过滤功能,基于在路径35上路由的事件指示,这允许了监控电路不仅注意观察特定的指令执行行为例如特定地址处的指令被执行、特定地址处的数据值被访问或特定的数据值被访问),还合格化qualify此类指令执行行为的发生以便仅在该行为与特定的事件重合时将触发信号设定为有效态。因此,这例如会允许在执行引起特定效能影响事件的特定指令时将触发信号设定为有效态。[0049]作为另一示例,由处理元件10所执行的程序指令序列可包括分路行为设定程序指令的一次或多次的发生。此类分路行为设定程序指令的执行可允许分路行为与由该分路行为设定程序指令所识别的另一程序指令相关联,该另一程序指令在本文中称为“经识别的程序指令”。附加于或替代于该经识别的程序指令的正常执行行为,若分路行为与该经识别的程序指令相关联,则这将使得处理电路在程序序列中遭遇到经识别的程序指令时分路到由分路行为设定程序指令所识别的目标地址。这可因此允许分路行为与由分路行为设定程序指令所识别的任何任意的程序指令相关联,这可在某些情境下引起效能益处。[0050]分路行为设定程序指令可采取各种形式。在一个实施例中,分路行为设定程序指令可以是可识别在程序序列中后来出现的任意指令的分路未来指令(branch-futureinstruction,其中是要将分路行为与该任意指令相关联。在分路行为设定指令的执行使得上述的分路行为与经识别的程序指令相关联时,然后在后来遭遇到该经识别的程序指令时,可替代于或附加于经识别的程序指令的正常执行行为而调用该分路行为。分路行为设定程序指令的另一不例是可被提供在零成本循环zerooverheadloop内的最终指令。在此情况下,经识别的程序指令可以是循环内的紧接在前的程序指令,并且目标地址可指向循环的开始。在第一次迭代期间,执行循环末端处的分路行为设定程序指令以将分路行为与循环中的倒数第二个指令相关联,使得在最终迭代以外的所有后续的循环迭代上,并不需要重新执行循环中的最终指令,因为除了执行该倒数第二个指令的正常指令执行行为以夕卜,分路行为反而是在遭遇到循环中的倒数第二个指令时直接触发。这可提供显著的效能益处。[0051]将理解的是,在使用此类分路行为设定程序指令时,变得与经识别的程序指令相关联的分路行为并非是确定性地deterministically与经识别的程序指令本身相关联的行为,而是通过另一程序指令即分路行为设定程序指令与该经识别的程序指令相关联的行为。然而,通过使用在路径25上监控程序指令执行信息的步骤及在路径35上监控事件指示的步骤的组合,监控电路可被设置为使得针对经识别的程序指令的任何实例将触发信号设定为有效态,其中该任何实例还引起如由分路行为设定程序指令所关联的被观察到的分路行为。这可因此在试图将并入此类分路行为设定程序指令的程序序列除错时提供了非常有用的工具。[0052]图2是更详细地示出在一个实施例中提供在图1的监控电路20内的元件的框图。提供了多个比较过滤块100、105、110,每个比较过滤块包括比较电路115、125、135及过滤电路120、130、140。在图2中所示的实施例中,程序指令执行信息直接馈送到各种比较电路115、125、135,而事件指示被提供为过滤电路120、130、140的输入。每个比较电路可被配置为监控程序指令执行信息的特定项目,并且检测该项目的值何时匹配与比较电路相关联而预先储存的匹配值。在值匹配匹配值时,这使得比较电路检测到触发条件,并且将从比较电路输出指示该触发条件存在的信号。[0053]然而,触发条件输出信号首先是由过滤电路120、130、140所处理,而不是将触发条件输出信号直接递送到图2中所示的监控电路的下游组件150、155、160、170、175。具体而言,过滤电路可被布置为根据是否符合任何相关联的事件限制来合格化来自相关联的比较电路的触发条件信号的向前传播。具体而言,在路径35上传递的各种事件指示可被路由到每个过滤电路,并且过滤电路可被配置以便在从所接收的事件指示信息确定预先指定的事件存在时确定合格条件是存在的。在合格条件存在时,来自比较电路的输出就只是传播到监控电路内的其余组件上。然而,若合格条件不存在,则不传播触发条件,并且反而来自过滤电路的输出指示还未识别到触发条件。[0054]在一个实施例中,来自各种过滤电路的输出可被直接路由作为触发信号生成电路175的输入,该触发信号生成电路可然后被布置为根据从过滤电路所接收的输出将触发信号设定为有效态。在一个实施例中,触发信号生成电路可简单地实现0R函数,使得在任何来自过滤电路的输出被设定为有效态即指示检测到触发条件时将触发信号设定为有效态。[0055]然而,在一个实施例中,可提供链接控制块15〇、155、160以允许链接来自一对比较器的输出。具体而言,链接控制元件150、155可被布置为将来自过滤电路120、130的输出路由到结合电路17〇,而不是将那些输出直接路由到触发信号生成电路。链接控制元件160可与跟进一步的比较过滤块相关联的另一链接控制元件以及另一结合电路在附图中未示出)结合而同样地配置。触发信号生成电路然后从结合电路170接收输出。结合电路可在其从链接控制块15〇、155接收的一对输入上执行逻辑组合运算,并且在一个实施例中可被布置为在该两个输入上执行“AND”函数。这允许将一对比较电路布置为检测针对程序指令执行信息的预定项目所接收的值何时落在一定范围内。因此例如比较电路115可在所接收的值大于某个指定的匹配值时发出触发信号,而比较电路125可在所接收的值小于另一指定匹配值时发出触发信号,藉此结合电路170会每在两个条件被满足时(即其中所接收的值落在由两个匹配值合格化的指定范围内)将触发信号设定为有效态。[0056]根据所述的实施例,过滤电路120、130中的一个或两个还可被布置为向来自相关比较电路的输出施加过滤条件,使得可根据是否至少一个事件也被确定存在而作出由于值被检测到是在由比较电路所编码的范围内而将触发信号设定为有效态的行为。[0057]处理元件10可被布置为执行任何所需的同步操作,以便将在路径35上进行的事件指示的传播与在路径25上所提供的相关联的程序指令执行信息同步。应进一步注意的是,在某些实施例中,可能不需要准确的同步化。确实,许多DWT监视点机制已经拥有不准确的本质且由于在额外使用所述实施例的事件指示时的此类DWT监视点机制的不准确本质的任何延误不会是有问题的,并且确实会与现存的行为兼容。[0058]在从触发信号生成电路175将触发信号设定为有效态时,处理元件10可以以各种方式进行反应。在一个实施例中,处理元件可被布置为进行中断以便使合适的异常处置例程执行以进一步分析程序代码。[0059]图3是更详细地示出提供在每个比较过滤块内的组件以及可被提供在任何相关联的链接控制块或结合电路内的组件的框图。为了图3的目的,考虑了图2的比较电路115及过滤电路120,但在一个实施例中,其他的比较电路125、135及过滤电路130、140中的每一个是以相同方式构建的。比较电路115包括了比较器200,该比较器接收来自多任务器210的输出和来自匹配值寄存器205的输出。控制寄存器215被提供为具有一定数量的字段以用于储存控制信息。在字段220中,提供了比较控制信息,该比较控制信息用于控制多任务器210,以便将程序指令执行信息的所需项目路由到比较器200。例如,在一个实施例中,多任务器可被布置为在比较器试图确定何时执行特定的指令时将指令地址信息递送到比较器。匹配值寄存器205然后将使用要由比较器进行比较的匹配值编程,考虑刚刚提到的示例,该匹配值可以是特定的指令地址。在来自多任务器210的输出匹配寄存器205中的匹配值时,在比较器200的输出处将触发条件信号设定为有效态。[0060]应注意的是,尽管在刚刚讨论的示例中,比较器是寻找输入上的相等,然而比较器还可被布置为执行其他类型的比较,例如确定来自多任务器210的输入何时大于寄存器205中的值或小于寄存器205中的值。[0061]过滤电路120被布置为从比较器电路200接收输出信号,并且根据在路径35上所接收的事件指示合格化该信号到链接控制块150的向前传播。在一个实施例中,过滤电路包括AND门240,该AND门接收来自比较器200的输出信号作为一个输入并且接收来自多任务器245的输出信号作为另一输入。多任务器245被布置为接收各种事件指示信号,并且在一个实施例中还具有被设定为逻辑1的值的进一步输入。控制寄存器215的字段225内的过滤控制信息可然后用于控制多任务器245,以便选出输入中的一者以用于输出到AND门240。在不需要过滤时,过滤控制信息可使得将输入到多任务器245的硬线式逻辑1输出到AND门240,使得在比较器的输出端处以逻辑1的值将触发条件设定为有效态时,该触发条件被直接路由到链接控制块150上。然而,替代性地,过滤控制信息可识别特定的事件,使得仅在该事件存在且因此在相关联的事件指示线路上设定了逻辑1的值时,AND门240将允许来自比较器的被设定为有效态的触发条件传播到链接控制块150上。[0062]链接控制块150可然后由控制寄存器215的字段230内的受链接的比较器控制值控制。具体而言,若比较电路115未与其相邻的比较电路链接,则控制字段230中的值将使得链接控制解多任务器250在路径252上输出该解多任务器的输入。反过来,若比较电路II5与其相邻的比较电路125链接,则字段230中的值将使得解多任务器250在路径254上将作为该解多任务器的输入而接收的信号路由到结合电路170。如先前所述,在一个实施例中,结合电路可仅采取AND门26〇的形式,使得仅在还从相邻的比较过滤块105接收到被设定为有效态的触发条件时将到触发信号生成电路的触发条件设定为有效态。[0063]若需要,控制寄存器215还可以可选地包括进一步的控制信息,该控制信息统一由图3中的字段235所示。此控制信息可采取各种形式,例如提供关于可如何使用相关联的比较电路的某些信息、与所接收的程序指令执行信息的项目相关联的数据大小等等。[0064]在图3中,假设被设定为有效态的信号具有逻辑1的值,并且被设定为非有效态的信号具有逻辑0的值。然而,将理解的是,可反转逻辑1及〇的值的意义,并且逻辑门据此依需要而变更。[0065]图4是示出根据一个实施例的图3的电路的操作的流程图。在步骤300处,等待接收程序指令执行信息,并且在接收到之后,在步骤305处选出程序指令执行信息的相关项目通过如由比较控制信息220所控制的多任务器210,并且然后由比较器200将该选出的项目与寄存器205中的匹配值进行比较。若由比较器200所寻找的比较条件被确定为是存在的在图4中称为检测到匹配参照步骤310,则程序继续进行到步骤320,在步骤320处然后确定是否符合合格条件。这是通过由多任务器245的输出控制AND门240来评估的。若符合合格条件,则在步骤325处传播有效的active触发信号,该触发信号在图3的实施例中将然后被链接控制块150接收。[0066]然而,若在步骤310处未检测到匹配,或若检测到匹配但确定未符合合格条件,则程序继续进行到步骤315,在步骤315处传播非有效的(inactive触发信号。[0067]如将通过先前图2的讨论所理解的,若需要,由特定的比较过滤块在步骤325、315处所发出的任何有效的或非有效的触发信号可逻辑地与来自其他比较过滤块的输出结合,以确定是否应由触发信号生成电路175将到处理元件10的触发信号设定为有效态。[0068]图5示出了监控电路的可使用的替代性布置。通过将图5与先前讨论的图2进行比较,将看到的是,构造是非常类似的,但在此实施例中,过滤电路合格化到比较电路的启用输入,而不是在来自比较电路的输出上执行过滤操作。因此,在此实施例中,各个比较过滤块350、355、360包括过滤电路365、370、375,过滤电路各自接收各种事件指示且然后针对相关联的比较电路115、125、135生成启用信号。现将参照图6的流程图来讨论各个比较过滤块的操作。[0069]在步骤400处,等待程序指令执行信息,并且在接收到之后,过滤电路然后在步骤405处通过评估各种事件指示来确定是否符合合格条件。若未符合合格条件,则到比较电路的启用信号不被设定为有效态,由此在步骤425处停用了原本会由比较电路执行的比较运算。其结果是,来自比较电路的输出信号被维持在不被设定为有效态的状态下,使得在步骤430处传播非有效的触发信号。[0070]若在步骤405处,确定的是符合合格条件,则在步骤410处,比较电路选出程序指令执行信息的相关项目且将该项目与匹配值进行比较,之后在步骤415处,确定是否已检测到匹配。若否,则在步骤430处传播非有效的触发信号,但在匹配条件存在的情况下,在步骤420处传播有效的触发信号。[0071]图7示出了又进一步的替代性实施例,其中过滤电路用于在所接收的程序指令执行信息经受由相关联的比较电路进行的比较运算之前在该程序指令执行信息上作用。因此,各个比较过滤块500、505、510包括了过滤电路515、520、525,过滤电路515、520、525接收程序指令执行信息且在将程序指令执行信息提供到相关联的比较电路115、1奶、135之前选择性地修改该信息。现将参照图8来讨论此类实施例中的各个比较过滤块的操作。[0072]在步骤600处,等待程序指令执行信息,并且在接收到之后,过滤电路然后在步骤605处通过分析所接收的事件指示来确定是否符合合格条件。若符合,则于步骤610处,程序指令执行信息被未经变更地递送到比较电路,其中比较电路然后选出程序指令执行信息的相关项目且将该项目与匹配值进行比较。若在步骤615处然后检测到匹配,则在步骤620处传播有效的触发信号,否则在步骤635处传播非有效的触发信号。[0073]若在步骤605处,过滤电路确定的是,未符合合格条件,则在步骤625处,过滤电路以某种预定的方式修改所接收的指令执行信息。具体而言,目标是让过滤电路修改程序指令执行信息,使得程序指令执行信息然后采取不能造成由相关联的比较电路检测到的匹配的形式。例如,对于程序指令执行信息而言可能存在某些非法的值,而过滤电路可在步骤625处将程序指令执行信息设定为那些非法值。[0074]在步骤630处,在比较电路然后接收经修改的指令执行信息时,该比较电路选出程序指令信息的相关项目且以通常的方式将该项目与匹配值进行比较,但由于己在指令执行信息上执行的修改,将没有检测到匹配。其结果是,程序将继续进行到步骤635,在该步骤处传播非有效的触发信号。[0075]通过上述的实施例,可看到的是,通过使用所述实施例的过滤电路,相关联的比较电路的操作可被合格化。因此,若比较器在其正常操作期间匹配了(例如基于程序计数器值、数据地址值或数据值匹配),则比较器将仅在相关联的事件过滤条件还被确定存在时发出被设定为有效态的触发条件。若事件过滤条件不存在,则来自相关联的比较器的被设定为有效态的触发条件被抑制。在一个实施例中,为了允许在需要时关闭过滤功能,过滤控制信息可被设定以便有效地不施加对来自比较电路的输出的过滤。[0076]还如所描述地,可能将过滤功能与链接的比较器结合。例如,若链接的对中的比较器中的一者针对事件进行过滤,则整个监视点触发行为是基于该事件调节的。这例如会允许针对发生在一定地址范围内的任何指定事件触发监视点。[0077]还可能的是,将过滤条件添加到链接的对内的两个比较器,使得将仅在比较器条件和两个事件匹配时触发相对应的监视点。若选择的事件是不同的,则监视点将仅在所有那些事件同时有效时触发。这例如会允许每在两个事件重合在一定地址范围内时(例如在隐含的分路与缓存未中事件在特定范围的指令地址内同时发生时)触发监视点。这允许以低成本进行非常复杂的条件过滤。[0078]作为特定示例使用案例,考虑以下代码段:[0079]OxlOOOBFXRn@0xl00C-???[0080]0x1004...[0081]0x1008...[分路未来触发的分路在此处并行发生][0082]OxlOOC...[0083][0084]0xl054BXRn[0085]在此示例中,分路未来BFX指令的执行设置了与指令地址〇xl〇〇C相关联的未来分路,在该地址处,分路通往包含在寄存器Rn内的未知的位置。相对应的分路若被采取的话与0x1008处的指令的执行并行发生(即在此实施例中是在程序计数器更新到OxlOOC时发生但在执行该地址处的指令之前发生)。若未采取分路本实施方式能够自由决策是否采取此分路),则然后采取回退路径,该回退路径可能包含可或可不以相对应的分路指令终结的许多指令。[0086]假定程序设计师想要在此代码以不想要的方式行为时将此代码除错。这会需要在0x1008及0x1054处设定暂停点以获得必要的洞察。然而,0x1008处的暂停点仅在由分路未来指令所设置的分路被采取时才是必要的。[0087]本文中所述的提出的DWT扩充允许通过在地址0x1054上设定正常暂停点和在地址0x1008上设定暂停点来完成此动作,其中地址0x1008上的暂停点将仅在由BFX指令所建立的分路行为还在该位置处发生时触发。或者,可使用一对比较器来针对地址范围0x1000-0x1054内的任何此类分路未来触发的分路进行暂停,这可允许程序设计师识别分路未来触发的分路区组granule问题例如,若无效程序的结果,则作乱的rogue分路未来触发的分路发生在非预期的位置处)。[0088]通过上述实施例,将理解的是,可以以非常小的成本将过滤功能合并到监控电路内。例如,考虑监控电路是定位在核心流水线末端处的DWT电路的情况,这将已经具有匹配地址及数据值的效能。通过回顾图3,将理解的是,为了合并额外的过滤电路,仅需要添加简单的逻辑功能,例如具有相关联多任务器245的AND门240,该多任务器是由控制寄存器215内的某些额外比特位225所控制的。字段225内所需的比特位数量将取决于所监控的事件指示的数量,但在一个实施例中可能仅需要控制寄存器215内的两个额外比特位。然后,仅需要在额外信号还未存在时从核心向提供事件指示的DWT提供该额外信号。这例如可能每个事件涉及单个比特位的电讯wire。如先前所述,还可在处理元件10内实现延迟机制,以使得事件信息在相关联的程序指令信息被监控电路20接收时与该程序指令信息重合。[0089]如先前所述,通过将此类过滤功能与比较功能结合,这允许监控处理元件10内的复杂行为组合,因此给予了程序开发者及他们所使用的工具用于诊断他们程序内的问题的改良的能力。[0090]在本案中,用词“配置为...”用于意指的是,装置的元件具有能够实现定义的操作的配置。在此背景下,“配置”意指硬件或软件互连的布置或方法。例如,装置可具有提供定义的操作的专用硬件,或处理器或其他处理装置可编程为执行该功能。“配置为”并不暗示的是,装置元件需要以任何方式改变以提供所界定的操作。[0091]尽管已参照附图在本文中详细描述本发明的说明性实施例,要了解的是,本发明不限于那些准确的实施例,并且本领域的技术人员可在实施例中作出各种改变、添加及修改而不脱离如由随附权利要求定义的发明的范围及精神。例如,可将从属权利要求的特征与独立权利要求的特征进行各种组合而不脱离本发明的范围。

权利要求:1.一种装置,包括:评估电路,用于接收指示由处理电路执行的程序指令的程序指令执行信息,并且用于执行评估操作以参照评估信息来确定所述程序指令执行信息是否指示触发条件的存在;触发信号生成电路,用于根据所述触发条件是否被确定为存在,将到所述处理电路的触发信号设定为有效态;以及过滤电路,用于接收指示发生在所述处理电路内的至少一个事件的事件信息,并且用于参照过滤控制信息和所述事件信息来确定合格条件是否存在;所述过滤电路被布置为在确定所述合格条件不存在之后防止将所述触发条件的存在通知给所述触发信号生成电路。2.如权利要求1所述的装置,其中:所述评估电路被布置为发出输出信号,该输出信号指示所述触发条件是否己被确定为存在;并且所述过滤电路被布置为接收所述输出信号并且生成替换输出信号,在所述合格条件存在的情况下,所述过滤电路使得所述替换输出信号匹配所述输出信号,并且在所述合格条件不存在的情况下,所述过滤电路使得所述替换输出信号指示所述触发条件的不存在。3.如权利要求1所述的装置,其中:所述过滤电路被布置为针对所述评估电路生成启用信号,该启用信号在所述合格条件存在时被设定为有效态并且在所述合格条件不存在时被设定为非有效态;所述评估电路被布置为在所述启用信号被设定为有效态时执行所述评估操作并且发出输出信号,该输出信号指示所述触发条件是否已被确定为存在;并且所述评估电路被布置为在所述启用信号被设定为非有效态时使得所述输出信号指示所述触发条件的不存在。4.如权利要求1所述的装置,其中:所述过滤电路被布置为在所述合格条件不存在的情况下修改所述程序指令执行信息和所述评估信息中的一个,使得防止所述评估电路确定所述触发条件是存在的。5.如权利要求4所述的装置,其中:所述过滤电路被布置为接收如由所述处理电路输出的所述程序指令执行信息并且生成替换程序指令执行信息以用于输入到所述评估电路;在所述合格条件存在的情况下,所述过滤电路使得所述替换程序指令执行信息匹配如由所述处理电路输出的所述程序指令执行信息,并且在所述合格条件不存在的情况下,所述过滤电路使得所述替换程序指令执行信息采取防止所述评估电路将所述触发条件确定为存在的形式。6.如权利要求1所述的装置,还包括:存储器,被配置为储存所述评估信息及所述过滤控制信息。7.如权利要求1所述的装置,还包括:至少一个进一步的评估电路,每个进一步的评估电路被布置为接收所述程序指令执行信息并且执行相关联的评估操作以参照相关联的评估信息来确定所述程序指令执行信息是否指示进一步的触发条件的存在;并且所述触发信号生成电路被布置为根据所述触发条件和每个所述进一步的触发条件中的至少一个是否被确定为存在,将到所述处理电路的触发信号设定为有效态。8.如权利要求7所述的装置,还包括:至少一个进一步的过滤电路,每个进一步的过滤电路与进一步的评估电路相关联;每个进一步的过滤电路被布置为:接收所述事件信息,并且参照相关联的过滤控制信息和所述事件信息来确定进一步的合格条件是否存在,并且在确定所述进一步的合格条件不存在之后,防止将由相关联的进一步的评估电路确定的所述进一步的触发条件的存在通知给所述触发信号生成电路。9.如权利要求7所述的装置,还包括结合电路,该结合电路被布置为:接收从由所述评估电路发出的输出信号导出的第一输入信号和从由进一步的评估电路发出的输出信号导出的进一步的输入信号,并且在所述第一输入信号和所述进一步的输入信号上执行逻辑运算以生成被提供到所述触发信号生成电路的结合的输出信号。10.如权利要求1所述的装置,其中,所述程序指令执行信息提供以下中的至少一个:由所述处理电路执行的所述程序指令的指令地址;在执行所述程序指令时访问的数据值的地址;以及在执行所述程序指令时访问的数据值。11.如权利要求1所述的装置,其中,由所述事件信息指示的所述至少一个事件不包括直接由所述程序指令的执行定义的事件。12.如权利要求11所述的装置,其中:所述处理电路被布置为执行程序指令序列,所述序列包括指示所述序列内的经识别的程序指令的分路行为设定程序指令,所述分路行为设定程序指令的执行使得分路行为能够与所述经识别的程序指令相关联,所述分路行为使得当在所述序列中遭遇到所述经识别的程序指令时将所述处理电路分路到由所述分路行为设定程序指令识别的目标地址;及由所述事件信息指示的事件识别在由于所述分路行为设定程序指令的先前执行而遭遇到所述经识别的程序指令之后所述处理电路已在何时采取分路。13.如权利要求11所述的装置,其中,由所述事件信息指示的所述至少一个事件包括至少一个效能相关的事件。14.如权利要求13所述的装置,其中,所述至少一个效能相关的事件至少包括缓存未中事件。15.如权利要求1所述的装置,其中,所述评估电路包括比较电路,所述评估信息包括匹配值,并且所述比较电路被布置为将所述程序指令执行信息的选择的部分与所述匹配值进行比较以确定所述触发条件是否存在。16.如权利要求1所述的装置,其中所述过滤控制信息识别是否需要至少一个事件发生才能确定所述合格条件的存在。17.如权利要求1所述的装置,其中所述触发信号为监视点信号,该监视点信号在被设定为有效态时向所述处理电路指示至少一个监视点条件的存在。18.—种操作装置来控制将到处理电路的触发信号设定为有效态的方法,包括:接收指示由所述处理电路执行的程序指令的程序指令执行信息,并且执行评估操作以参照评估信息来确定所述程序指令执行信息是否指示触发条件的存在;根据所述触发条件是否被确定为存在,将到所述处理电路的触发信号设定为有效态;接收指示发生在所述处理电路内的至少一个事件的事件信息,并且参照过滤控制信息和所述事件信息来确定合格条件是否存在;以及在确定所述合格条件不存在之后,防止在确定是否将所述触发信号设定为有效态时考虑所述触发条件的存在。19.一种装置,包括:用于接收指示由处理电路执行的程序指令的程序指令执行信息并且用于执行评估操作以参照评估信息来确定所述程序指令执行信息是否指示触发条件的存在的评估装置;用于根据所述触发条件是否被确定为存在将到所述处理电路的触发信号设定为有效态的触发信号生成装置;以及用于接收指示发生在所述处理电路内的至少一个事件的事件信息并且用于参照过滤控制信息和所述事件信息来确定合格条件是否存在的过滤装置;所述过滤装置进一步地在确定所述合格条件不存在时用于防止将所述触发条件的存在通知给所述触发信号生成装置。

百度查询: ARM 有限公司;安谋科技(中国)有限公司 控制将到处理电路的触发信号设定为有效态的装置及方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。