CN103678112A - 用于处理观察点的数据处理器装置及其方法 - Google Patents
用于处理观察点的数据处理器装置及其方法 Download PDFInfo
- Publication number
- CN103678112A CN103678112A CN201310384852.0A CN201310384852A CN103678112A CN 103678112 A CN103678112 A CN 103678112A CN 201310384852 A CN201310384852 A CN 201310384852A CN 103678112 A CN103678112 A CN 103678112A
- Authority
- CN
- China
- Prior art keywords
- observation point
- fifo
- module
- trace information
- tracking
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
Abstract
本发明公开了用于处理观察点的数据处理器装置及其方法。在数据处理器的操作的调试模式期间,启用集成电路的操作的调试跟踪模式。响应于操作的调试跟踪模式被启用,跟踪信息(701)被存储在集成电路的存储器中。如果用跟踪信息将存储器填充到特定水平(702-Y),响应于检测到观察点的发生,从存储器中清除跟踪信息。
Description
技术领域
本公开涉及电子装置,更具体地说,涉及具有调试能力的数据处理装置。
背景技术
调试协议,例如被称为IEEE ISTO5001的IEEE标准,或Nexus调试标准,被用于为可以支持实时调试消息生成的数据处理系统建立实时调试支持。这样的调试标准可以描述在数据处理器的代码开发中使用的调试处理。一种用于实时调试的技术是使用调试消息,该调试消息包括由数据处理系统生成的调试信息。一种类型的调试信息被称为跟踪信息,其可以包含程序跟踪信息和数据跟踪信息。程序跟踪信息可以在程序跟踪消息传送期间生成,其生成了与数据处理器的地址事件相关的程序跟踪消息。数据跟踪信息可以在数据跟踪消息传送期间生成,其生成了与存储在数据处理器的例如寄存器位置的存储位置的数据信息相关的数据跟踪消息。例如,程序跟踪消息传送可以被用于存储程序跟踪信息,该程序跟踪信息在调试操作期间被用于确定哪一个程序由数据处理器执行,以及数据跟踪消息传送可以在数据处理器的调试操作期间被用于存储所存储的数据的改变。
跟踪信息可以被存储在数据处理系统的先进先出(FIFO)缓冲器,直到其被转移到通常在数据处理器系统之外的调试器。然而,当由于数据处理器生成跟踪信息的速率大于数据处理器向外部调试器传送调试跟踪信息的速率而引起FIFO变满的时候,会发生问题。在此类情况下,需要作出一个或多个折衷,每个都可能影响数据处理系统的调试能力。例如,数据处理器可以被停止直到FIFO不再是满的,这可能改变数据处理系统的实时特性。或者,该数据处理系统可以在不存储附加跟踪信息的情况下继续运行,这会导致在数据处理系统继续实时操作时调试消息丢失。
附图说明
通过示例方式图示实施例,但实施例不由附图限制。
图1以方框图的形式图示了根据本公开的实施例的、具有调试消息生成的数据处理系统。
图2以方框图的形式图示了根据本公开的实施例的、图1的调试模块的一部分。
图3以方框图的形式图示了根据本公开的实施例的、被图2的调试模块的一部分使用的存储位置。
图4以流程图的形式图示了根据本公开的实施例的、图2的跟踪FIFO操作的特定方法。
图5以流程图的形式图示了根据本公开的实施例的、图2的跟踪FIFO操作的特定方法。
图6以方框图的形式图示了根据本公开的实施例的、在不同时间内存储在图2的跟踪FIFO的跟踪信息。
图7以流程图的形式图示了根据本公开的实施例的、图1的调试模块的操作的特定方法。
图8图示了图1的系统的程序存储器以及调试寄存器状态的特定实施例。
本领域技术人员将理解,附图中的要素为了简单和清楚而被图示,且没有必要按比例绘制。
详细说明书
在数据处理器的调试操作模式期间,在数据处理器确定观察点事件已经发生,并且作为响应,存储跟踪信息的FIFO(跟踪FIFO)的操作条件发生变化。例如,FIFO清除观察点的发生导致在跟踪信息已经被传送到跟踪分析器之前从跟踪FIFO中清除跟踪信息。通过清除FIFO,还未被传送到外部的在被清除之前存储在FIFO的信息不再能够被传送到FIFO的外部。这通常是通过使还未被传送到FIFO的外部的信息无效来完成的,其中使信息无效可以通过改变对应于FIFO的首部和尾部位置的指针、改变存储在FIFO的实际数据等等来实现。然而,应了解,FIFO被清除的方式可以取决于FIFO的特定实施。通过参考在下面讨论的图1-图8,本公开的各个方面将被更好地理解。
图1所图示的是在操作的调试模式期间,支持跟踪消息传送的示例数据处理系统10。在数据处理系统10内的是全局互连12。在一种形式中,全局互连12是系统总线。可以使用互连的其它形式,包括例如交叉开关、点对点连接、以及光和无线电传输技术。此外,可以还有与互连12相同或不同类型的多个其它互连,其以与在此所描述的使方式相同或相似的方式被使用。总线接口单元(BIU)14通过双向互连被连接到全局互连12。在一种形式中,双向互连是双向多导线总线,其中此处的多导线总线是由导线上的斜线表示的。BIU14被双向地连接到存储器管理单元(MMU)16。MMU16通过双向多导线总线被连接到全局控制模块18的第一输入/输出端子。全局控制模块18的第二输入/输出端子通过双向多导线总线被连接到指令提取单元20的第一输入/输出端子。指令提取单元20具有通过双向多导线总线被连接到指令解码器22的输入的输出。指令解码器22的输出被连接到执行单元24的输入。在一种形式中,执行单元24包括至少一个算术逻辑单元、至少一个浮点单元以及至少一个乘法器模块。在执行单元24内的是寄存器文件25。指令解码器22的输入/输出端子被连接到全局控制模块18的第三输入/输出端子。执行单元24的第一输入/输出端子被连接到全局控制模块18的第四输入/输出端子。执行单元24以及指令提取单元20同样被双向地连接到MMU16。加载/存储单元28具有被双向地连接到全局控制模块18的第六输入/输出端子的第一输入/输出端子。加载/存储单元28具有被连接到BIU14的第一输入/输出端子的第二输入/输出端子。加载/存储单元28具有被连接到执行单元24的第二输入/输出端子的第三输入/输出端子。BIU14的第二输入/输出端子被连接到全局控制模块18的第七输入/输出端子。加载/存储单元28的输出提供了数据虚拟地址(D_VADDR)并且被连接到MMU16的第一输入以及调试模块26的第一输入。指令提取单元20的输出提供了指令虚拟地址(I_VADDR)并且被连接到MMU16的第二输入以及调试模块26的第二输入。MMU16的第一输出提供了数据物理地址(D_PADDR)并且被连接到BIU14的第一输入以及调试模块26的第二输入。MMU16的第二输出提供了指令物理地址(I_PADDR)并且被连接到BIU14的第二输入以及调试模块26的第三输入。
存储器30通过双向互连被连接到全局互连12。调试模块26具有通过双向多导线总线被连接到多个调试端子40的第二输入/输出端子。该多个调试端子40被连接到是通常被称为调试器或外部调试器的外部调试工具的外部开发系统36;该调试器或外部调试器使用各种调试消息以及代码存储器内容的本地图像来重建由系统执行的程序流。在图示的形式中,BIU14、MMU16、全局控制模块18、指令提取单元20、指令解码器22、具有寄存器文件25的执行单元24、调试模块26以及加载/存储单元28共同地形成如图1中虚线组合所指示的数据处理器42。尽管以特定连接在隔离的位置图示出图1以及其它附图中的各个模块,应了解,此类模块也可以以分布的方式被实施并且包含在数据处理系统10的各个其他系统块中。例如,在图2的调试模块26实施例被图示的存储位置71/72可以是寄存器文件25的一部分或数据处理器42的其它部分。而且,在图示的实施例中,全局控制18包括为当前执行的处理存储处理标识符(PID)的处理标识符(PID)寄存器19。全局控制18还向MMU16提供PID。
在操作中,数据处理器42可以通过全局互连12与存储器30和其它装置(未示出)通信。在存储器30和其它装置之间被传送的信息通过BIU14传递。指令提取单元20在全局控制模块18的控制下从BIU14检索数据处理器指令(例如,处理器指令)。被检索的指令继续在全局控制模块18的控制下被传送到指令解码器22进行解码。执行单元24执行指令并且生成被存储在高速缓存(未示出)或者通过全局控制模块18、BIU14以及全局互连12被放置在存储器30的数据。通过使用生成由外部开发系统36分析的调试信息的调试模块26来执行数据处理器42以及数据处理系统10的操作的调试。进入响应于此类外部开发系统36的激活而进入操作的测试或调试模式。
在图示的形式中,调试模块26被配置为从一个或多个全局互连12以及从数据处理器42的内部位置接收包括数据虚拟地址、数据物理地址、程序(指令)虚拟地址、程序物理地址的的地址信息。调试模块26被配置为从BIU14和加载/存储单元28接收数据信息,以及从全局控制18接收信息。数据地址是数据所在的地址,而程序地址是指令所在的地址。从指令提取单元20中将程序虚拟地址提供给调试模块26以及MMU16。虚拟地址是未翻译的地址;该未翻译的地址需要一些进一步处理或翻译以获得信息所在的物理存储单元的翻译地址。MMU16通过将存储器的虚拟页面地址翻译为相应的物理页面地址来向BIU14以及调试模块26提供指令物理地址。存储器页面是被分组的连续位置,并且通常具有2的幂的大小,例如4千字节的页面、16千字节的页面、64千字节的页面等等。加载/存储单元28向调试模块26以及MMU16提供数据虚拟地址。MMU16向BIU14以及调试模块26提供数据物理地址。如在下面将要更详细讨论的,基于在一个或多个接收的地址的信息,调试模块26形成用于外部开发系统36的调试消息。
图2所图示的是图1的调试模块26的一部分的示例实施例,其包括调试控制模块60、跟踪模块62、观察点模块70、调试输入/输出(I/O)模块66、以及跟踪FIFO75。调试控制模块60被用于控制调试模块26的操作,并且可以与图2的各个模块通信。跟踪模块62监视数据处理器42的操作,并且响应于从观察点模块70接收跟踪使能指示符(TRACE_EN),将捕获并且将跟踪信息提供给FIFO75;FIFO75在下一个可用存储位置存储该跟踪信息;该下一个可用存储位置可以实施在存储位置的阵列(未示出)。观察点模块70对于系统10的操作监视启用的观察点事件的发生,并且响应于观察点事件被检测到通知调试模块26的各个部分。尽管观察点可以被很多类型的事件中的任何一个触发,该事件例如特定地址被访问、特定数据值被存储等等,以及其组合,但为了讨论的目的,假定观察点基于特定地址被访问。例如,观察点模块70可以断言信号TRACE_EN、跟踪使能指示符,以促进通过跟踪模块62捕获跟踪信息。为了讨论的目的,关于在此描述的实施例,在图2中图示了调试模块26的各部分之间以及全局互连12之间的各种连接,其中箭头指示数据流的特定方向。然而,应了解,箭头指示不旨在指示连接只可以以单向的方式传输信息。
调试控制模块60包括可以存储用于控制调试控制模块26的各个操作状态的信息的寄存器71。例如,寄存器71可以包括字段DEBUG_EN、字段PGM_TRACE_EN、字段DATA_TRACE_EN等,当字段DEBUG_EN被断言时启用调试模块26的操作,当字段PGM_TRACE_EN被断言时启用程序跟踪消息传送,当DATA_TRACE_EN被断言时启用数据跟踪消息传送。调试控制模块60被连接到(未示出)调试I/O控制模块66。在操作期间,调试控制模块60可以通过调试I/O控制模块66接收外部信息,该外部信息包括由调试控制模块60执行的命令。可以由调试控制模块60执行的命令的例子包括例如,通过对寄存器71进行写入来启用/禁用调试操作的命令。
当被启用的时候,跟踪模块62基于各种调试控制信息来监视数据处理系统10的操作。图2所具体图示的是到全局互连12的连接,其允许在全局互连12的地址和数据被监视,以及到数据处理器42内部的互连的连接,使得在处理器42内被传输的信息可以被监视。根据一个实施例,可响应于于调试控制模块60执行命令由调试控制模块60直接地启用通过跟踪模块62进行的数据跟踪消息传送和程序跟踪消息传送。根据另一个实施例,响应于观察点事件的发生观察点模块70启用/禁用通过跟踪模块62进行的数据跟踪消息传送和程序跟踪消息传送。例如,图3图示了可以用于启用/禁用跟踪消息传送、标示为WP_TRIGGERS的寄存器集合72的特定实施例。所图示的观察点触发寄存器包括标示为WP_T1_EN、WP_T2_EN、WP_T3_EN、以及WP_T4_EN的字段。图3的每个字段被称为观察点类型启用字段,其中不同类型的观察点可以基于不同类型的信息触发、使调试模块执行不同操作等等,以及其组合。
根据一个实施例,图3的每个寄存器字段可以是多位字段,其中图3的寄存器字段的可能的多位值中的一个指示那个寄存器字段的相应的观察点类型被禁用,并且寄存器字段的其它可能的多位值分别标识相应的观察点寄存器,其存储了用于确定相应的观察点类型的观察点事件的发生的值。例如,图3的每个观察点类型启用字段可以是三位字段。具有值为0(000b)的观察点启用字段指示那个字段的相应的观察点类型被禁用;二进制值1(001b)指示字段的相应的观察点类型被启用以及观察点模块70的观察点WP1被用于确定观察点事件的发生;值2(010b)指示对应于字段的观察点类型被启用以及观察点模块的观察点WP2被用于确定观察点事件的发生;可以以类似方式指示其它观察点以使用。
不同观察点类型的例子包括:程序跟踪启用观察点,其响应于其观察点条件被满足,例如响应于被执行的地址匹配存储在被指示的观察点寄存器的值,启用由跟踪模块62进行的程序跟踪;程序跟踪禁用观察点,其响应于其观察点条件被满足,例如响应于被执行的地址匹配存储在被指示的观察点寄存器的值,禁用由跟踪模块62进行的程序跟踪;数据跟踪启用观察点,其响应于其观察点条件被满足,例如响应于被执行的地址匹配存储在被指示的观察点寄存器的值,启用由跟踪模块62进行的数据跟踪消息传送;数据跟踪禁用观察点,其响应于其观察点条件被满足,例如响应于被执行的地址匹配存储在被指示的观察点寄存器的值,禁用由跟踪模块62进行的数据跟踪;FIFO控制观察点,其响应于其观察点条件被满足,例如响应于被执行的地址匹配存储在被指示的观察点寄存器的值,而导致FIFO75操作的改变;等等。一种类型的FIFO控制观察点是FIFO清除观察点,该FIFO清除观察点导致存储在FIFO75中的数据一些或全部被清除而不是被提供给外部开发系统36,如在下面将要更详细讨论的。
当被启动的时候,跟踪模块62可以从各个位置获取跟踪信息,包括来自数据处理器42的内部资源的信息,例如,来自处理器42内的互连的信息;在全局互连12的信息;等等。作为响应,跟踪模块62将使跟踪消息生成器64生成跟踪消息,该跟踪消息在被提供给外部开发系统36(图1)进行跟踪分析之前被提供给跟踪FIFO75进行缓冲。具体地,调试I/O控制模块66可以与跟踪FIFO75对接以访问排队的跟踪信息,例如,跟踪消息,以通过外部互连40向外部开发系统36提供消息。
图4以流程图的形式图示了FIFO75操作的特定实施例的一种方法,其中,响应于满的FIFO75,来自跟踪模框62的新的跟踪数据被丢失。图4的方法在框401等待直到新的跟踪信息准备好例如在跟踪FIFO75被存储。响应于接收新的跟踪信息,流程进行到框402,在该框确定跟踪FIFO75是否是满的。如果是满的,流程返回到框401以等待附加的新的跟踪信息,而不在FIFO75存储当前新的跟踪信息;否则,流程进行到框403。在框403,当前新的跟踪信息被存储在跟踪FIFO75,并且流程返回到框401。
图5的方法在框501等待直到新的跟踪信息准备好被存储在例如跟踪FIFO75。在框502,确定跟踪FIFO75是否是满的。如果跟踪FIFO75不是满的,流程进行到框503,其中使新的跟踪信息被添加到跟踪FIFO75,而不影响任何其它先前存储的跟踪信息;否则,响应于FIFO75是满的,流程进行到框504,其中通过清除包含先前存储的调试消息的现存FIFO条目来将新的跟踪信息存储在跟踪FIFO75。例如,最早的调试信息可以被清除。应了解,也可以以其它方式处理响应于FIFO75是满的的调试模块26的操作方式。例如,响应于FIFO75是满的,数据处理器42可以被停止,从而阻止了下一步指令的执行,直到FIFO75中有空间可用。
在一个实施例中,调试模块26支持一个或多个FIFO观察点类型,包括FIFO清除观察点(FLUSH_FIFO),该FLUSH_FIFO导致了在FIFO75排队的跟踪信息被清除,从而阻止了被清除的跟踪信息通过外部互连40被传送。如上面所描述的,响应于存储在一个或多个观察点寄存器WP1-WPn的观察点值匹配在全局互连12的地址,FIFO清除观察点事件可能发生。响应于该事件的发生,FLUSH_FIFO指示符被断言。为了讨论的目的,假定全局互连12的物理程序地址与FLUSH_FIFO观察点进行比较以确定FLUSH_FIFO事件何时发生,虽然在其它实施例中,该地址可以与其它总线或地址类型相关联。因此,响应于FLUSH_FIFO事件的发生,观察点模块70提供指示符来向跟踪FIFO75和跟踪模块62通知观察点事件的发生。例如,观察点模块70例如可以通过分别驱动在被提供给跟踪FIFO75和跟踪模块62的相应的导电节点的预先定义的信号状态来断言信号FLUSH_REQ和FMSG_REQ,但是应了解,其它指示符可以被用于在观察点模块70和各个其它模块之间传送事件发生。
响应于被断言的FLUSH_REQ指示符,跟踪FIFO75将被清除;以及响应于被断言的FMSG_REQ指示符,跟踪模块62生成指示FIFO75已经被清除的被存储在FIFO中的跟踪消息,从而使任何现存数据无效。根据实施例,如图6所图示的,跟踪FIFO75的全部内容将被清除。
图6以方框图的形式图示了FIFO75在各个时间点的内容。在时间T0,没有调试信息被存储在FIFO75,FIFO75因此被图示为空的,其中FIFO的头指针(H)和尾指针(T)都指向FIFO75的最底部条目。在跟踪消息传送被启用之后,跟踪信息T_INFO_0到T_INFO_9被存储在FIFO75,其中其一直被保留直到被检索用于传送到外部开发系统36。因此,在时间T1,跟踪信息T_INFO_0到T_INFO_9被存储在FIFO75,标识最早的FIFO条目的头指针指向T_INFO_0,以及指向将存储下一个跟踪信息的FIFO位置的FIFO75的尾指针指向在存储T_INFO_9的位置之后的FIFO位置。
在时间T1和时间T2之间,从FIFO75检索跟踪信息T_INFO_0到T_INFO_6并且将其提供给外部开发系统36,并且新的跟踪信息T_INFO_10到T_INFO_60被存储在FIFO75。这导致了FIFO75的头部指向信息T_INFO_7,并且FIFO75的尾部指向在存储T_INFO_60的位置之后的FIFO位置。
在时间T2之后,FLUSH_FIFO观察点事件的发生已经发生,这导致了如在图6时间T3所指示的FIFO75的全部内容被清除,其中头指针和尾指针都指向FIFO75的相同位置。应注意,为了便于理解,在被清除之前的存储在FIFO75的信息在时间T3被图示以指示哪一个信息已经被清除。具体地,信息T_INFO_7到T_INFO_60已经被清除,并且因此将不被传送到外部开发系统36。
响应于接收指示FIFO清除观察点的发生的被断言的FMSG_REQ指示符,跟踪消息生成器64将生成跟踪信息,该跟踪信息在图6中被标示为FLUSH_MSG、并且在跟踪FIFO被清除之后在时间T4被存储在跟踪FIFO75。FLUSH_MSG指示FIFO清除观察点的发生,这将允许外部开发工具确定跟踪信息已经丢失,并且因此一旦其接收FLUSH_MSG,同步其操作。应注意,FIFO的清除不改变操作的跟踪模式,例如,调试模块在FIFO被清除之后继续以与FIFO被清除之前的相同方式将跟踪信息存储在FIFO75。
虽然关于清除跟踪FIFO而描述了上面所描述的实施例,应了解,如在图7的流程图中所图示的,额外类型的FIFO控制观察点可以被实施。具体地,在框701,调试模块26以一种正常方式收集被存储在FIFO75的跟踪信息,而观察点模块70等待FIFO75控制观察点的发生,例如,当调试消息传送被启用的时候控制FIFO操作方式的观察点。响应于FIFO控制观察点事件的发生,流程进行到框702。
在框702,确定已经发生的FIFO控制观察点事件的类型并且在调试模块26中提供适当的指示符以通知受影响的模块。例如,假定存在被称为FLUSH_FIFO_1、清除位于调试模块42的第一类型的FIFO控制观察点,以及被称为FLUSH_FIFO_2、清除位于外部调试模块42的第二类型FIFO控制观察点,框702响应于对应于FLUSH_FIFO_1发生的事件而将转移到框703,以及响应于对应于FLUSH_FIFO_2发生的事件而转移到框704。关于图2的实施例,观察点模框70的操作可以对应于框702,其中多个清除请求以及多个清除消息请求(未示出)中的一个可以被生成。在框703,响应于对应于FLUSH_FIFO_1的事件,调试模块实施特定操作,例如,第一FIFO将被清除,并且程序流将返回框701。在框704,响应于对应于FLUSH_FIFO_2的事件,调试模块实施特定操作,例如,可以位于数据处理器42或外部数据处理器42的第二FIFO将被清除,并且程序流将返回框701。
图8图示了系统10的一部分的方框图,包括被执行的程序代码801的特定序列、观察点触发器启用寄存器831、以及观察点寄存器832。程序代码801的序列包括代码部分810;该代码部分810包括标示为LOOP_1的循环;可以响应于定义了循环的末端的重复指令来重复、连续不断地执行该循环。每当LOOP_1被执行,标示为SUB_811、位于代码部分810的子程序被执行。
当执行从地址ADDR_3开始且在地址位置ADDR_4结束的SUB_811的时候,观察点触发器启用寄存器831和观察点寄存器832已经被配置为执行程序跟踪消息传送和数据跟踪消息传送。具体地,通过将寄存器831的字段位置PGM_T_EN断言为对应于观察点寄存器832的观察点WP_1的值,程序跟踪启用观察点已经被启用。由于已利用在子程序SUB_811的第一指令的位置的值的ADDR_3的值编程了观察点WP_1,当子程序SUB_811的执行开始的时候,程序跟踪消息传送将开始。类似地,当子程序SUB_811的执行开始的时候,通过寄存器831的字段位置DATA_T_EN被断言为对应于观察点WP_1的值,数据跟踪消息传送被启用。当子程序SUB_811退出的时候,通过寄存器831的字段位置PGM_T_ENB和DATA_T_ENB被断言为对应于观察点WP_2的值,程序和数据跟踪消息传送被禁用,该观察点WP_2存储对应于子程序SUB_811的最后的指令(ADDR_4)的地址值ADDR_4。
通过在执行子程序SUB_811的时候启用数据和跟踪消息传送(假定没有其它观察点已经被启用),每当子程序SUB_811被调用,程序和跟踪信息将被存储在调试模块的跟踪FIFO。然而,对于例如与子程序SUB_811相关联的代码之类的非确定性的并且在故障之前被多次执行的问题代码,因为FIFO很可能由于代码太多次且以使得跟踪信息被存储在跟踪FIFO快于其可以被传送到外部调试工具这样的高速率被执行而溢出,捕获硅故障周围的数据就很困难。FLUSH_FIFO观察点可以被用于解决这个问题。具体地,图8图示了通过将寄存器831的字段位置FLUSH_FIFO断言到对应于观察点WP_0的值FIFO清除观察点已经被启用。由于利用作为子程序SUB_811的返回命令的位置的ADDR_4的值编程了观察点WP_0,在从子程序返回时跟踪FIFO将被清除。或者,恰好在调用子程序SUB_811之前的地址可以被用于清除FIFO。应了解,通过以这种方式清除跟踪FIFO,可以确保每当子程序SUB_811被执行,存在可用的存储空间用于存储跟踪信息。
应了解,虽然关于特定实施例描述了本公开,在查阅本公开的时候,许多其它实施例对于本领域所属技术人员来说将很明显。
在第一方面,一种方法可以包括:启用集成电路的操作的跟踪模式;响应于所述操作的跟踪模式被启用,将跟踪信息存储在所述集成电路的存储器中;以及响应于在所述操作的跟踪模式期间检测到第一类型的观察点的发生,从所述存储器清除所述跟踪信息,其中清除所述存储器不改变所述操作的跟踪模式。
在第一方面的一个实施例中,所述存储器是先进先出存储器。在另一个实施例中,所述方法包括在所述集成电路生成指示所述存储器的清除的跟踪消息,其中所述跟踪消息将被提供给所述集成电路的外部接口。在又一个实施例中,所述方法包括生成指示所述观察点的发生的跟踪消息,其中所述跟踪消息将被提供给所述集成电路的外部接口。
在第一方面的特定实施例中,响应于所述存储器是满的,新的跟踪信息在所述操作的跟踪模式期间不被存储在所述存储器中。在更特定实施例中,所述方法包括:响应于检测到第二类型的观察点的发生,启用所述跟踪模式。在另一个特定实施例中,所述方法包括在所述集成电路的外部接口接收命令,以及响应于执行所述命令来启用所述跟踪模式。在更加特定的实施例中,响应于检测到观察点的发生从所述存储器清除所述跟踪信息包括:断言存储器清除指示符。在进一步的实施例中,响应于访问的地址匹配观察点,所述观察点的发生被检测。
在第二方面,一种装置可以包括:包括输出的跟踪模块,所述跟踪模块在所述输出提供数据处理器的跟踪信息;包括输出的观察点模块,所述观察点响应于检测到观察点事件的发生在所述输出提供清除指示符;以及耦合于所述跟踪模块的所述输出和所述观察点模块的所述输出的存储器模块,所述存储器模块响应于所述清除指示符来清除存储在所述存储器模块的缓冲的跟踪信息。
在第一方面的一个实施例中,所述存储器是先进先出存储器。在另一个实施例中,所述跟踪模块耦合于所述观察点模块,并且将生成指示被提供的清除指示符的跟踪消息。在另一个实施例中,指示被提供的所述清除指示符的所述跟踪消息在所缓冲的跟踪消息被清除之后将被存储在所述存储器模块。在另一个实施例中,响应于所述存储器是满的,所述存储器模块将不存储新的跟踪信息。
在所述第二方面的进一步的实施例中,所述观察点事件是第一类型的第一观察点事件,并且所述观察点模块响应于检测到第二类型的第二观察点事件的发生而在所述输出提供跟踪使能指示符,并且响应于所述跟踪使能指示符,所述跟踪模块被启用以提供所述跟踪信息。在更进一步的实施例中,所述装置包括连接到所述观察点模块的地址总线,所述观察点模块将在所述地址总线的值匹配到观察点值以确定所述观察点事件的发生。
在第三方面,一种方法可以包括:启用对跟踪FIFO控制观察点事件的检测,其中所述跟踪FIFO控制观察点将修改存储数据处理器的操作的跟踪信息的FIFO(先进先出)存储器的操作,响应于检测到所述跟踪FIFO控制观察点的发生,将所述FIFO的操作条件从第一操作条件修改为第二操作条件,其中所述FIFO在所述第一以及第二操作条件期间被启用以存储跟踪信息。
在第三方面的一个实施例中,由于存储在所述FIFO的所述跟踪信息已经被清除,所述第二操作条件不同于所述第一操作条件。在另一个实施例中,生成指示所述FIFO的操作条件的修改的跟踪信息。在另一个实施例中,所述跟踪信息被存储在所述FIFO。
此外,可以使用其它实施例或者从本公开推导出其他实施例,以便可以进行结构性替代、逻辑替代、或另一个改变,而不脱离本公开的范围。虽然本文中图示和描述了具体实施例,但应了解,被设计以实现相同或相似目的的任何后续方案可以代替所示出的具体实施例。本公开旨在包括各种实施例的任何以及所有后续改编或变化。在查阅本描述的时候,上述实施例,以及没有在此特定描述的其它实施例的组合对于本领域所属技术人员来说将很明显。应了解,为了清晰,在单独的实施例的上下文中,本文所描述的某些特征也可以在单独的实施例中以组合的形式被提供。相反,为了清晰,在单独的实施例的上下文中所描述的各个特征也可以被单独地或以任何重组的形式被提供。而且,对于在范围内描述的值的参考包括在那个范围内的每个值。
应注意,不是上面在一般描述或例子中所描述的活动都是所需的,特定活动的一部分可能不是所需的,并且除了这些被描述的之外,一个或多个进一步的活动可以被执行。而且,活动被列出的顺序不一定是它们被执行的顺序。
已经关于具体实施例在以上描述了好处、其它优点、以及解决方案。然而,好处、优点、对问题的解决方案、以及可以引起任何好处、优点、或对问题的解决方案或者使其变的更加明显的特征不旨在被解释为任何或所有权利要求的关键的、必需的、或本质特征或元素。
上面公开的主题被认为是说明性的,而不是限定性的,并且所附权利要求旨在包括任何或所有这样的修改、增强、以及在本发明范围之内的其它实施例。因此,为了法律允许的最大程度,本发明的范围将由所附的权利要求以及它们的等同物的最宽泛许可解释来确定,并且将不被限定或限制于前述的具体实施方式。
Claims (20)
1.一种方法,包括:
启用集成电路的操作的跟踪模式;
响应于所述操作的跟踪模式被启用,将跟踪信息存储在所述集成电路的存储器中;以及
响应于在所述操作的跟踪模式期间检测到第一类型的观察点的发生,从所述存储器中清除所述跟踪信息,其中清除所述存储器不改变所述操作的跟踪模式。
2.根据权利要求1所述的方法,其中所述存储器是先进先出存储器。
3.根据权利要求1所述的方法,还包括:
在所述集成电路生成指示所述存储器的清除的跟踪消息,其中所述跟踪消息将被提供给所述集成电路的外部接口。
4.根据权利要求1所述的方法,还包括:
生成指示所述观察点的发生的跟踪消息,其中所述跟踪消息将被提供给所述集成电路的外部接口。
5.根据权利要求1所述的方法,其中,响应于所述存储器是满的,新的跟踪信息在所述操作的跟踪模式期间不被存储在所述存储器中。
6.根据权利要求1所述的方法,还包括:
响应于检测到第二类型的观察点的发生来启用所述跟踪模式。
7.根据权利要求1所述的方法,还包括:
在所述集成电路的外部接口接收命令,以及响应于执行所述命令来启用所述跟踪模式。
8.根据权利要求1所述的方法,其中响应于检测到观察点的发生从所述存储器清除所述跟踪信息包括:断言存储器清除指示符。
9.根据权利要求1所述的方法,其中响应于访问的地址匹配所述观察点而检测所述观察点的发生。
10.一种装置,包括:
包括输出的跟踪模块,所述跟踪模块在所述输出提供数据处理器的跟踪信息;
包括输出的观察点模块,所述观察点响应于检测到观察点事件的发生在所述输出提供清除指示符;以及
耦合于所述跟踪模块的所述输出和所述观察点模块的所述输出的存储器模块,所述存储器模块响应于所述清除指示符来清除存储在所述存储器模块的缓冲的跟踪信息。
11.根据权利要求10所述的装置,其中所述存储器是先进先出存储器。
12.根据权利要求10所述的装置,其中所述跟踪模块耦合于所述观察点模块,以及将生成指示被提供的所述清除指示符的跟踪消息。
13.根据权利要求10所述的装置,其中指示被提供的所述清除指示符的跟踪消息在所述缓冲的跟踪信息被清除之后将被存储在所述存储器模块。
14.根据权利要求10所述的装置,其中响应于所述存储器是满的,所述存储器模块将不存储新的跟踪信息。
15.根据权利要求10所述的装置,其中所述观察点事件是第一类型的第一观察点事件,并且所述观察点模块响应于检测到第二类型的第二观察点事件的发生在所述输出提供跟踪使能指示符,并且响应于所述跟踪使能指示符,所述跟踪模块被启用以提供所述跟踪信息。
16.根据权利要求10所述的装置,还包括:
连接到所述观察点模块的地址总线,所述观察点模块将在所述地址总线的值匹配到观察点值以确定所述观察点事件的发生。
17.一种方法,包括:
启用对跟踪FIFO控制观察点事件的检测,其中所述跟踪FIFO控制观察点将修改存储数据处理器的操作的跟踪信息的FIFO(先进先出)存储器的操作;
响应于检测到所述跟踪FIFO控制观察点的发生,将所述FIFO的操作条件从第一操作条件修改为第二操作条件,其中所述FIFO在所述第一以及第二操作条件期间被启用以存储跟踪信息。
18.根据权利要求17所述的方法,其中由于存储在所述FIFO的所述跟踪信息已经被清除,所述第二操作条件不同于所述第一操作条件。
19.根据权利要求17所述的方法,还包括:
生成指示所述FIFO的操作条件的修改的跟踪信息。
20.根据权利要求19所述的方法,其中所述跟踪信息被存储在所述FIFO中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/598,240 | 2012-08-29 | ||
US13/598,240 US9069896B2 (en) | 2012-08-29 | 2012-08-29 | Data processor device for handling a watchpoint and method thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103678112A true CN103678112A (zh) | 2014-03-26 |
CN103678112B CN103678112B (zh) | 2018-01-30 |
Family
ID=50189197
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310384852.0A Expired - Fee Related CN103678112B (zh) | 2012-08-29 | 2013-08-29 | 用于处理观察点的数据处理器装置及其方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9069896B2 (zh) |
JP (1) | JP6360665B2 (zh) |
CN (1) | CN103678112B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108885577A (zh) * | 2016-03-18 | 2018-11-23 | Arm有限公司 | 跟踪处理活动 |
CN110727577A (zh) * | 2019-08-29 | 2020-01-24 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 嵌入式系统软件中概率复现问题的调试方法、系统及介质 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9047400B2 (en) | 2012-08-29 | 2015-06-02 | Freescale Semiconductor, Inc. | Data processor device for handling a watchpoint and method thereof |
US9639447B2 (en) * | 2013-11-05 | 2017-05-02 | Texas Instruments Incorporated | Trace data export to remote memory using remotely generated reads |
US9753823B2 (en) * | 2015-04-09 | 2017-09-05 | Nxp Usa, Inc. | System and method for providing diagnostic information |
GB2540942B (en) * | 2015-07-31 | 2019-01-23 | Advanced Risc Mach Ltd | Contingent load suppression |
US11016773B2 (en) * | 2019-09-27 | 2021-05-25 | Intel Corporation | Processor trace extensions to facilitate real-time security monitoring |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030097615A1 (en) * | 2001-11-16 | 2003-05-22 | International Business Machines Corporation | On-chip logic analyzer |
US6918065B1 (en) * | 1999-10-01 | 2005-07-12 | Hitachi, Ltd. | Method for compressing and decompressing trace information |
CN101897201A (zh) * | 2007-11-19 | 2010-11-24 | 奥迪康有限公司 | 使用具有不同性能特性的接收器的听力仪器 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0844595A (ja) * | 1994-07-29 | 1996-02-16 | Toshiba Corp | トレース採取/記録装置 |
US5809293A (en) | 1994-07-29 | 1998-09-15 | International Business Machines Corporation | System and method for program execution tracing within an integrated processor |
US6142683A (en) | 1997-04-08 | 2000-11-07 | Advanced Micro Devices, Inc. | Debug interface including data steering between a processor, an input/output port, and a trace logic |
US6094729A (en) | 1997-04-08 | 2000-07-25 | Advanced Micro Devices, Inc. | Debug interface including a compact trace record storage |
US20020087949A1 (en) * | 2000-03-03 | 2002-07-04 | Valery Golender | System and method for software diagnostics using a combination of visual and dynamic tracing |
JP4074057B2 (ja) * | 2000-12-28 | 2008-04-09 | 株式会社東芝 | 耐タンパプロセッサにおける暗号化データ領域のプロセス間共有方法 |
US6877114B2 (en) | 2002-02-14 | 2005-04-05 | Delphi Technologies, Inc. | On-chip instrumentation |
JP2003296136A (ja) * | 2002-04-04 | 2003-10-17 | Mitsubishi Electric Corp | トレース装置 |
GB2389931B (en) * | 2002-06-07 | 2005-12-14 | Advanced Risc Mach Ltd | Generation of trace elements within a data processing apparatus |
US7149926B2 (en) | 2003-05-22 | 2006-12-12 | Infineon Technologies Ag | Configurable real-time trace port for embedded processors |
US20060277435A1 (en) | 2005-06-07 | 2006-12-07 | Pedersen Frode M | Mechanism for storing and extracting trace information using internal memory in microcontrollers |
US7610517B2 (en) | 2006-09-14 | 2009-10-27 | Innovasic, Inc. | Microprocessor with trace functionality |
JP2008191788A (ja) * | 2007-02-01 | 2008-08-21 | Ricoh Co Ltd | 情報処理装置 |
US20090172420A1 (en) * | 2007-12-31 | 2009-07-02 | Kabushiki Kaisha Toshiba | Tamper resistant method and apparatus for a storage device |
GB2461716A (en) | 2008-07-09 | 2010-01-13 | Advanced Risc Mach Ltd | Monitoring circuitry for monitoring accesses to addressable locations in data processing apparatus that occur between the start and end events. |
US9047400B2 (en) | 2012-08-29 | 2015-06-02 | Freescale Semiconductor, Inc. | Data processor device for handling a watchpoint and method thereof |
-
2012
- 2012-08-29 US US13/598,240 patent/US9069896B2/en not_active Expired - Fee Related
-
2013
- 2013-08-28 JP JP2013176861A patent/JP6360665B2/ja active Active
- 2013-08-29 CN CN201310384852.0A patent/CN103678112B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6918065B1 (en) * | 1999-10-01 | 2005-07-12 | Hitachi, Ltd. | Method for compressing and decompressing trace information |
US20030097615A1 (en) * | 2001-11-16 | 2003-05-22 | International Business Machines Corporation | On-chip logic analyzer |
CN101897201A (zh) * | 2007-11-19 | 2010-11-24 | 奥迪康有限公司 | 使用具有不同性能特性的接收器的听力仪器 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108885577A (zh) * | 2016-03-18 | 2018-11-23 | Arm有限公司 | 跟踪处理活动 |
CN110727577A (zh) * | 2019-08-29 | 2020-01-24 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 嵌入式系统软件中概率复现问题的调试方法、系统及介质 |
CN110727577B (zh) * | 2019-08-29 | 2023-06-09 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 嵌入式系统软件中概率复现问题的调试方法、系统及介质 |
Also Published As
Publication number | Publication date |
---|---|
US9069896B2 (en) | 2015-06-30 |
JP6360665B2 (ja) | 2018-07-18 |
CN103678112B (zh) | 2018-01-30 |
JP2014049131A (ja) | 2014-03-17 |
US20140068346A1 (en) | 2014-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103678112A (zh) | 用于处理观察点的数据处理器装置及其方法 | |
US9047400B2 (en) | Data processor device for handling a watchpoint and method thereof | |
US7200776B2 (en) | System and method for generating trace data in a computing system | |
US6963963B2 (en) | Multiprocessor system having a shared main memory accessible by all processor units | |
US8688910B2 (en) | Debug control for snoop operations in a multiprocessor system and method thereof | |
US7689867B2 (en) | Multiprocessor breakpoint | |
US8145874B2 (en) | System and method of data forwarding within an execution unit | |
US8825922B2 (en) | Arrangement for processing trace data information, integrated circuits and a method for processing trace data information | |
US20080065810A1 (en) | Assisted trace facility to improve cpu cache performance | |
US8495344B2 (en) | Simultaneous execution resumption of multiple processor cores after core state information dump to facilitate debugging via multi-core processor simulator using the state information | |
US8200908B2 (en) | Method for debugger initiated coherency transactions using a shared coherency manager | |
US9575816B2 (en) | Deadlock/livelock resolution using service processor | |
JP6005392B2 (ja) | ルーティングのための方法及び装置 | |
US9223678B2 (en) | Data processor device having a debug control module which selectively modifies trace messages | |
CN111324493B (zh) | 针对处理器板级调试的开发系统及方法 | |
JP5756554B2 (ja) | 半導体装置 | |
US8984344B2 (en) | Stack-based trace message generation for debug and device thereof | |
EP1125200B1 (en) | Maintaining object size information concurrent with data optimization for debugging | |
US6347368B1 (en) | Microcomputing device for exchanging data while executing an application | |
US7836283B2 (en) | Data acquisition messaging using special purpose registers | |
CN111742303B (zh) | 用于在调试设备时访问元数据的装置和方法 | |
JP4749812B2 (ja) | 試験装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20180228 Address after: texas Patentee after: NXP America Co Ltd Address before: Texas in the United States Patentee before: Fisical Semiconductor Inc. |
|
TR01 | Transfer of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180130 Termination date: 20190829 |
|
CF01 | Termination of patent right due to non-payment of annual fee |