半导体集成电路、调试/跟踪电路、以及半导体集成电路操作观测方法

文档序号:6476412阅读:133来源:国知局
专利名称:半导体集成电路、调试/跟踪电路、以及半导体集成电路操作观测方法
技术领域
本发明涉及半导体集成电路中的操作跟踪。
背景技术
随着最近内置器件的复杂度的不断提高,已要求建立一种用于在 开发阶段执行高效调试的技术。对于调试大多数内置器件,已使用了 使用在线仿真器设置断点的方法、执行步骤的方法、以及其他方法。 然而,在许多情况下,在需要系统具有实时特性时,由于不可能使操 作定时与周围电路的定时相适应导致无法使用这些方法。
在这样的环境下,通过跟踪器件内部的操作来观测状态改变和行 为的重要性提高了。
另一方面,为了降低内置器件的制造成本,通常存在以下情况 关于内部存储器容量和CPU性能,这些器件没有太多的余量。因此, 以服务器和个人计算机为代表的一般计算机设备所使用的通过软件处 理来存储操作日志的方法,无法令人满意地由内置器件使用。此外, 在内置器件中,通常使用定制系统LSI,使得对不能通过软件处理来独
自观测的总线行为、外围电路行为等进行观测通常是重要的。
为此,通常提供了一种通过监控终端来提取用于检验系统LSI的 操作状态的信号的技术,这是一种有效的方法,该方法通过使用监控 终端来将操作状态的改变存储为跟踪数据并对该数据进行分析。在日 本专利申请特开2002-24201 (下文中将被称作"文献r,)中公开了使用 这种方法的技术。
图1是示出了文献1中所描述的系统LSI的内部配置的框图。图l中 的系统LSI包括MPU核(控制电路)91;内置RAM (随机存取存储 器、存储电路)92,用于存储操作MPU核91的程序;外围电路93,用 于与MPU核91之间执行信号的发送和接收。系统LSI还与系统LSI外围
5设备5连接,使得在两者之间发送和接收信号。除了用于操作MPU核
91的程序以外,内置RAM92还并入了调试支持功能程序。
此外,在MPU核91内部提供并入了信号选择电路931的调试支持 电路914。外围电路93并入了信号选择电路932。此外,还提供了用于 选择最终监控信号的信号选择电路933。由监控信号控制电路4来控制 信号选择电路931至933中的每一个的选择操作。
文献1中的系统LSI包括信号选择电路931,用于选择MPU核91 中的任一内部信号;信号选择电路932,用于选择外围电路93中的任一 内部信号;以及信号选择电路933,用于选择来自这两个信号选择电路 931和932的输出中的任一个,并且系统LSI可以根据需要任意切换信号 选择电路931至933中的每一个的选择操作。因此,可能实时地对系统 LSI的内部操作进行详细分析。此外,即使监控终端是有限的,也可能 容易地切换和输出多个监控信号。

发明内容
然而,文献l所公开的跟踪系统有一些问题。
文献l所公开的跟踪系统工作的前提是向LSI的外部输出跟踪数 据,使得每单位时间的可观测的跟踪数据量受到至外部的通信线路的 速度、内置缓冲器容量等的限制。因此,会出现以下情况在内部操 作速度高的系统等中不能检査期望的操作。
此外,由于在文献l所公开的跟踪系统中,要观测的信号局限于 那些所选的信号,使得降低了跟踪数据量,所以基于要观测的所有信 号的行为在特定条件下做出判定是不可能的。
本发明的一个目的是提供一种途径,使得在对要观测的任意信号 进行观测的同时能够观测期望的操作,而不受所连接的通信线路和内 置缓冲器容量的限制。
为了实现上述目的,根据本发明一个实施例模式的半导体集成电 路是一种具有调试功能的半导体集成电路,包括-
主功能结构,执行连续的预定操作,以连续地产生与所述操作相 关联的事件;以及调试/跟踪电路,预先存储了控制信息列表,所述控制信息列表顺 序地包括多个条目,以使得基于一系列事件来识别需要进行观测的事 件,其中每个条目包括检测条件指示信息和操作指示信息组成的集合, 所述检测条件指示信息用于检测目标事件的产生,所述操作指示信息 用于根据对所述检测条件指示信息与在所述主功能结构处发生的事件 之间的比较结果来指定操作,以及所述调试/跟踪电路根据所述控制信 息列表连续地执行以下操作将所述主功能结构处发生的事件与所述 控制信息列表中一个条目的检测条件指示信息相比较,以及根据所述 比较的结果来执行由与所述检测条件指示信息配对的所述操作指示信 息所指定的操作,以识别所述事件。
本发明的调试/跟踪电路是一种内置于半导体集成电路中的调试/ 跟踪电路,所述半导体集成电路包括执行连续预定操作以连续产生与 所述操作相关联的事件的主功能结构,所述调试/跟踪电路包括
控制信息列表保持器,预先存储了控制信息列表,所述控制信息 列表顺序地包括多个条目,以使得基于一系列事件来识别需要观测的 事件,其中每个条目包括检测条件指示信息和操作指示信息组成的集 合,所述检测条件指示信息用于检测目标事件的产生,所述操作指示 信息用于根据对所述检测条件指示信息与在所述主功能结构处发生的 事件之间的比较结果来指定操作;
事件检测器,根据所述控制信息列表连续地执行以下操作将所 述主功能结构处发生的事件与所述控制信息列表中一个条目的检测条 件指示信息相比较;以及
控制器,根据来自所述事件检测器的所述比较的结果,来执行由 与所述检测条件指示信息配对的所述操作指示信息所指定的操作。
针对本发明半导体集成电路的操作观测方法是一种针对半导体 集成电路的操作观测方法,通过内置于半导体集成电路中的调试/跟踪 电路来观测主功能结构的操作,所述半导体集成电路包括执行连续预 定操作以连续地产生与所述操作相关联的事件的主功能结构,所述方 法包括以下步骤
预先存储了控制信息列表,所述控制信息列表顺序地包括多个条目,以使得基于一系列事件来识别需要观测的事件,其中每个条目包 括检测条件指示信息和操作指示信息组成的集合,所述检测条件指示 信息用于检测目标事件的产生,所述操作指示信息用于根据对所述检 测条件指示信息与在所述主功能结构处发生的事件之间的比较结果来 指定操作;以及
根据所述控制信息列表连续地执行以下操作将所述主功能结构 处发生的事件与所述控制信息列表中一个条目的检测条件指示信息相 比较,以及根据所述比较的结果来执行由与所述检测条件指示信息配 对的所述操作指示信息所指定的操作,以识别和观测所述事件。


图l是示出了文献l中公开的跟踪系统的配置的框图。
图2是示出了第一示例实施例的配置的框图。
图3是示出了第一示例实施例中控制信息列表的结构图。
图4是示出了第一示例实施例中调试/跟踪系统的处理流程的流程图。
图5是示出了第二示例实施例的配置的框图。
图6是示出了第二示例实施例中控制信息列表的结构图。
图7是示出了第二示例实施例中调试/跟踪系统的处理流程的流程图。
图8是示出了第三实施例的配置的框图。 图9是示出了第三示例实施例中控制信息列表的结构图。 图10是示出了第三示例实施例中调试/跟踪系统的处理流程的流 程图。
图ll是示出了第一示例和第二示例中共同使用的控制器和事件 检测器的特定配置的框图。
图12是示出了第一示例中调试/跟踪系统的处理流程的流程图。 图13是示出了第一示例中控制信息列表的结构图。 图14是示出了第二示例中调试/跟踪系统的处理流程的流程图。 图15是示出了第二示例中控制信息列表的结构图。
8
具体实施例方式
将参照附图来详细描述本发明的示例实施例。 (第一示例实施例)
图2是示出了根据本发明第一示例实施例的调试/跟踪系统的总体 配置的框图。参照图2,系统LSI l包括主功能结构2和调试/跟踪电路3。 这里所提到的系统LSI可以包括其中集成有多个芯片的配置,如SiP(系 统级封装)、MCP (多芯片组件)、PoP (层叠封装)等。还假定系统 LSI具有典型配置,在该配置中,系统LSI内部的通信能力与该SLI外部 的通信能力相比足够高。主功能结构2是用于实现系统LSI l的基本期 望功能的电路,作为典型示例,由MPU核21和外围电路22构成。调试 /跟踪电路3包括事件检测器31、控制器32和控制信息列表保持器33。 控制信息列表保持器33保持控制信息列表4。
图3是示出了第一示例实施例中的控制信息列表的结构图。将使 用图3来对存储于控制信息列表保持器33中的控制信息列表4的细节进 行描述。
控制信息列表4是其中布置有多个条目41的列表,每个条目41包 括检测条件指示符42和操作指示符43。检测条件指示符42描述了对要 观测的事件进行检测的条件。可能通过将发生的事件与检测条件相比 较来检测满足检测条件的事件(目标事件)。操作指示符43描述了在检 测到目标事件时控制器32的操作。所描述的控制器32的操作的示例包 括关于数据输出的指示、关于下一个要参照的条目的改变的指示、结 束测量的指示、向LIS的外部(下文中将简单地称作"外部")输出数据 的指示、向外部输出控制信息的指示等等。
图4是示出了第一示例实施例中调试/跟踪系统的处理流程的流程 图。将基于图4的流程图来描述本示例实施例的调试/跟踪系统的操作。
首先,当控制器32接收来自外部的观测开始命令时,控制器32对 来自控制器32本身所保持的控制信息列表4的条目读出位置进行初始 化(步骤S1)。此时,通常指定控制信息列表4中顶部条目的值,但是 可以根据使用来指定另一值。此后,控制器32从控制信息列表保持器33所保持的控制信息列表
4中读出一个条目41,并保持该条目中的值(步骤S2)。然后,控制器 32根据所获取的条目41的检测条件指示符42来为事件检测器31设置检 测条件(步骤S3)。
此后,事件检测器31继续将事件与设置的检测条件相比较,并且 在检测到满足通知事件发生条件的事件时,向控制器32给出事件检测 通知(步骤S4)。所述通知事件发生条件是指示是否将事件的发生 通知给控制器32的条件。例如,可以仅在事件满足检测条件时给出事 件发生的通知,或者可以在事件满足或不满足检测条件的任一情况下 都给出事件发生的通知。此外,在事件检测器31中保持有与事件有关 的详细信息。
此后,控制器32参照条目41的操作指示符43 (步骤S5),并且根 据操作指示符43的指示来执行控制操作(步骤S6)。控制操作的示例 包括从事件检测器31读取事件的详细信息以将该信息作为事件数据 输出、将写入控制信息列表4中的用户数据输出、输出以错误通知和正 常结束通知为代表的控制信息等等。
控制器32还确定在来自条目41的操作指示符43的指示中是否包 括结束命令(步骤S7)。如果所述指示中包括结束命令,则控制器32 结束测量。如果在所述指示中不包括结束命令,则控制器32根据需要 改变条目读出位置(步骤S8),并返回读出下一个条目41。
为了描述简洁,这里以一次一个步骤来执行操作的形式给出了描 述,然而可以同时执行多个步骤或基于类似流水线的方法以流水线方 式来执行多个步骤,以便实现高速操作。
根据示例实施例,由于预先准备了包括与需要检查的一些列操作 相对应的多个条目41在内的控制信息列表4,并且由于根据控制信息列 表4逐个改变了事件检测条件和控制,所以可能基于许多信号改变来在 内部检查以特定顺序发生的特定事件,并记录跟踪数据。因此,跟踪 系统LSI内部的事件顺序变成可能,从而可能在对高速观测目标的任意 信号进行观测的同时检验期望的操作,而不受通信线路速度和内置缓 冲器容量的影响。(第二示例实施例) 接着,将参照附图详细描述本发明的第二示例实施例。 图5是示出了本发明第二示例实施例的总体配置的框图。在本示
例实施例的系统LSI中,主功能结构21包括诸如MPU核21、 DSP、加速
器等操作单元,每个操作单元执行预定的一系列操作。此外,除了在 图2所示的第一示例实施例以外,本示例实施例的系统LSI在调试/跟踪 电路3中还包括操作单元控制器34。操作单元控制器34发送信号以控制 主功能结构2中的操作单元。
图6是示出了第二示例实施例中控制信息列表的结构图。如图6的 控制信息列表的结构图所示,操作单元控制指示符431存在于控制信息 列表4的操作指示符43内。写入操作单元控制指示符431中的信息是与 以下内容有关的信息对于操作单元控制器34而言,主功能结构2内哪 个操作单元被给出了指示、给出哪种控制指示或没有给出指示。控制 指示的示例包括停止命令、开始命令等等。
图7是示出了第二示例实施例中的调试/跟踪系统的处理流程的流 程图。将基于图7的流程图来描述第二示例实施例的调试/跟踪系统的 操作。
首先,当控制器32接收来自外部的观测开始命令时,控制器32对 来自其自身所保持的控制信息列表的条目读出位置进行初始化(步骤 Sll)。此时,通常指定控制信息列表中的顶部事件,然而可以根据使 用来指定另一值。.
此后,控制器32从控制信息列表保持器33所保持的控制信息列表 4中读出一个条目41,并且保持该条目中的值(步骤S12)。然后,控 制器32根据所获取的条目41的检测条件指示符42来为事件检测器31设 置检测条件(步骤S13)。
此后,事件检测器31继续将事件与所设置的检测条件相比较,并 在事件满足通知事件发生条件时向控制器32给出事件检测通知(步骤 S14)。所述通知事件发生条件是与是否将事件的发生通知给控制器 32有关的条件。例如,可以仅在事件满足检测条件时给出事件发生的 通知,或者可以在事件满足和不满足检测条件的任一情况下都给出事
ii件发生的通知。在事件检测器31中还保持有与事件有关的详细信息。
此后,控制器32参照条目41的操作指示符43 (步骤S15),确定是 否存在对操作单元的任何控制命令(步骤S16)。如果存在对操作单元 的任何控制命令,则控制器32向操作单元控制器34发送操作单元控制 命令。操作单元控制器34根据接收到的操作单元控制命令的指示来对 主功能结构2内的操作单元执行控制操作(步骤S17)。对操作单元的 控制的示例包括操作单元的挂起、激活、状态检査等。
当在步骤S16确定不存在对操作单元的控制命令时,或在步骤S17 的控制操作之后,控制器32根据条目41的操作指示符43的指示来执行 其他控制操作(步骤S18)。其他控制操作的示例包括从事件检测器31 读取事件的详细信息以输出数据、将写入控制信息列表4中的用户数据
输出、执行以错误通知和正常结束通知为代表的控制输出等等。
控制器32还确定来自条目41的操作指示符43的指示中是否包括 结束命令(步骤S19)。如果在所述指示中包括结束命令,则控制器32 结束测量。如果在所述指示中不包括结束命令,则控制器32根据需要 改变条目读出位置(步骤S20),并返回读出下一个条目。
这里为了描述简洁通过一次执行一个步骤来描述操作,然而可以 同时执行多个步骤或可以基于类似流水线的方法以流水线方式执行多 个步骤,以便实现高速操作。
在调试中存在以下情况在程序执行期间发生特定事件时,需要 检查诸如存储器内容等状态。然而,如果操作单元正在进行操作,则 存在以下可能性在操作结束后对需要检査的位置处的存储器内容的 值进行检查时,该值已经改变了。同样,如果简单地基于事件的发生 来执行观测,则将包括需要观测的事件,使得存在以下情况将除了
目标以外的其他事件排除在外是重要的。
为了处理这个问题,除了与第一示例实施例相类似的跟踪事件顺
序的功能以外,本示例实施例还包括操作单元控制器34,在控制信息 列表4中引入操作单元控制指示符431,以使用包括对特定操作单元的 控制命令在内的控制信息列表4,所述特定操作单元适于待检查的事 件。因此,可能以便于观测的方式来控制操作单元。例如,能够在目标事件发生之后立即停止特定的操作单元。因此可能在特定事件发生 之后立即对存储器内容进行检査,并且获得与操作单元相关联的数据。 (第三示例实施例) 图8是示出了本发明第三示例实施例的总体配置的框图。参照图 8,除了图2所示第一示例实施例以外,本示例实施例的系统LSI包括性
能测量部分35。性能测量部分35根据输入命令信息来测量诸如事件发
生的频率、总线业务量、延迟值等性能。
图9是示出了第三示例实施例中控制信息列表的结构图。如在图9 的控制信息列表结构图中所示的,性能测量控制指示符432存在于控制 信息列表4的操作指示符43内。写入性能测量控制指示符432中的是对 性能测量部分35的命令信息以控制性能测量。命令信息的示例包括 用于对指示执行哪种性能测量的参数进行设置的命令,以及用于开始 或结束性能测量的命令。
图10是示出了第三示例实施例中调试/跟踪系统的处理流程的流 程图。将基于图10的流程图来描述第三示例实施例的调试/跟踪系统的 操作。
首先,当控制器32接收来自外部的观测开始命令时,控制器32对 来其自身所保持的控制信息列表的条目读出位置进行初始化(步骤 S21)。此时,通常指定控制信息列表中的顶部条目,然而可以根据使 用来指定另一值。
此后,控制器从控制信息列表保持器33中所保持的控制信息列表 4中读出一个条目41,并保持该条目中的值(步骤S22)。然后,控制 器32根据所获取的条目41的检测条件指示符42来设置事件检测器31的 检测条件(步骤S23)。
此后,事件检测器31继续将事件与所设置的检测条件相比较,并 在事件满足通知事件发生的条件时向控制器32给出事件检测通知(步 骤S24)。所述通知事件发生条件是与是否将事件的发生通知给控制 器32有关的条件。例如,可以仅在事件满足检测条件时给出事件发生 的通知,或者可以在事件满足和不满足检测条件的任一情况下都给出 事件发生的通知。事件检测器31中还保持了与事件有关的详细信息。此后,控制器32参照条目41的操作指示符43 (步骤S25),确定是 否存在与性能测量有关的任何命令信息(步骤S26)。
如果存在关于性能测量的任何命令信息,则控制器32向性能测量 部分35发送关于性能测量的命令信息。性能测量部分35根据从控制器 32接收到的命令信息来控制性能测量(步骤S27)。性能测量控制的示 例包括设置测量目标和测量项、开始和结束测量等等。
当在步骤S26确定不存在与性能测量有关的控制命令时,或在步 骤S27的控制操作之后,控制器32根据条目41的操作指示符43的指示 内容来执行其他控制操作(步骤S28)。其他控制操作的示例包括从 事件检测器31读取事件的详细信息以输出数据、将写入控制信息列表4 中的用户数据输出、执行以错误通知和正常结束通知为代表的控制输 出等等。
控制器32还确定在来自条目41的操作指示符43的指示中是否包 括结束命令(步骤S29)。如果在所述指示的内容中包括结束命令,则 控制器32结束测量。如果在所述指示中不包括结束命令,则控制器32 根据需要改变条目读出位置(步骤S30),并返回读出下一个条目。
为了描述简洁,这里以一次一个步骤来执行操作的形式给出了描 述,然而可以同时执行多个步骤,或可以基于类似流水线的方法以流 水线方式来执行多个步骤,以便实现高速操作。
在调试程序或调节程序的性能中,存在以下情况需要根据程序 执行期间特定事件的发生来改变测量目标和测量目。还存在以下情况 需要根据特定事件的发生来开始和结束测量。如果简单地根据事件的 发生来执行观测,则存在对不需要测量的数据进行测量的情况。在这 样的情况下,重要的是将除了要测量的那些事件以外的不需要测量的 事件移除。
为了处理这个问题,除了与第一示例实施例相类似地跟踪事件顺 序的功能以外,本示例实施例还包括性能测量部分35,在控制信息列 表4中引入性能测量控制指示符432,以使用控制信息列表4,所述控制 信息列表4包括与适于要检验的事件的性能测量有关的控制命令。因 此,可能根据事件来控制测量操作。例如,可能在目标事件的发生之
14后立即开始或结束测量。还可能在要作为目标的事件发生之后立即改 变测量目标和测量的内容。 (第一示例) 接着,将描述上述示例实施例的特定示例。
图11是示出了事件检测器31和控制器32的特定配置的框图。参照
图ll,事件检测器31包括检测条件保持器311、条件确定器312和事件 保持器313。
检测条件保持器331保持用于检测事件的条件。条件确定器312观 测从主功能结构2到控制器32的信号,以确定每个事件是否满足检测条 件保持器311处所保持的检测条件。当事件满足检测条件时,条件确定 器312向控制器32发送事件检测通知。事件保持器313保持由条件确定 器312所检测的事件的细节。
采用这种布置,事件检测器31将来自控制器32的检测条件设置保 持在检测条件保持器311中,如果发生匹配检测条件的事件则在条件确 定器312处检测事件的发生,以及将事件的细节保持在事件保持器313。
另一方面,控制器32包括控制执行器321、条目读出位置保持器 322和条目信息保持器323。
控制执行器321根据控制信息列表来执行控制,并向与该控制信 息列表相关联的每个部分给出操作指示。条目读出位置保持器322保持 接下来要从控制信息列表保持器33读出的控制信息条目4的位置。条目 信息保持器323保持从控制信息列表保持器33读出的条目4的信息。
采用这种配置,控制器32从控制信息列表保持器33中读出由条目 读出位置保持器322处保持的位置信息所指定的条目4,将该条目4保持 在条目信息保持器323中,并根据条目信息保持器323处所保持的条目4 来执行控制。
图12是示出了第一示例中调试/跟踪系统的处理流程的流程图。图 13是示出了第一示例中控制信息列表的结构图。 将基于图12和13来描述该示例中的操作。
这里,图12中的步骤S32至步骤S34与图4中的步骤S2相对应。步 骤S35和步骤S36与图4中的步骤S3相对应。此外,步骤S37至步骤S40与图4中的步骤S4相对应。
在图13中控制信息列表4的示例中,操作指示符43并入了命中控 制指示符433、命中输出指示符434、未命中控制指示符438以及未命中 输出指示符439。
命中控制指示符433是用于规定在检测到满足检测条件的事件时 (在命中时)调试/跟踪电路3内的操作的操作指示。命中输出指示符 434是用于指定是否输出命中时的事件数据的信息。
未命中控制指示符438是用于规定在检测到检测条件以外的事件 时(在未命中时)的操作的操作指示。未命中输出指示符439是用于指 定是否输出未命中时的事件数据的信息。
这里,作为示例,示出了一个命中控制指示符433和一个命中输 出指示符434。然而,本发明不应局限于此。作为另一示例,可能构造 条目41,使得可以在检测条件指示符42中设置多个检测条件,以及可 以在操作指示符43中设置多个命中控制指示符433和命中输出指示符 434。采用这种构造,可能设置条目41,以使根据检测到的事件的内容
来执行不同的处理。
参照图12,首先,在从外部向控制器32输入观测开始命令时,控 制执行器321将初始值设置到条目读出位置保持器322中(步骤S31)。 在利用初始值设置了条目读出位置保持器322时,对从控制信息列表4 读出条目的位置进行初始化。这时,通常指定控制信息列表4中的顶部, 然而可以根据使用来指定另一值。
此后,控制器32向控制信息列表保持器33给出来自条目读出位置 保持器322的读出位置通知(步骤S32)。控制信息列表保持器32输出 与所通知的读出位置相对应的输出条目41 (步骤S33)。控制器32将从 控制信息列表保持器33输出的条目41存储到位于内部的条目信息保持 器323中(步骤S34)。
接着,控制执行器321参照存储于条目信息保持器323中的条目41 的检测条件指示符42 (步骤S35),并且将该检测条件指示符42中所指 示的检测条件写入事件检测器31的检测条件保持器311中(步骤S36)。
此后,当来自主功能结构2的信号发生改变(步骤S37)时,事件
16检测器31中的条件确定器312基于信号的观测结果以及在检测条件保 持器311处保持的检测条件,来确定该改变是否满足通知事件的条件
(步骤S38)。如果在确认通知条件时没有检测到满足通知条件的任何 事件发生,则返回步骤S37,条件确定器312重复相同的处理直到满足 通知条件的事件发生为止。另一方面,如果在确认通知条件时检测到 满足通知条件的事件发生,则条件确定器312向控制器32发送事件检测 通知(步骤S39)。
在接收事件检测通知(步骤S40)时,控制执行器321确定该事件 检测通知是命中通知还是未命中通知(步骤S41)。命中通知是以下的 信息当通知条件包括检测条件得到满足的信息时,给出通知条件(检 测条件)得到满足的通知。未命中通知是以下的信息在通知条件包 括检测条件未得到满足的信息时,给出通知条件未得到满足(即,检 测条件未得到满足)的通知。
如果给出了命中通知,则控制执行器321通过参照存储于条目信 息保持器323中的条目41的命中控制指示符433来获得要执行的控制内 容,以及通过参照命中输出指示符434来获得关于是否需要输出事件数 据的信息(步骤S42)。另一方面,如果给出了未命中通知,则控制执 行器321通过参照存储于条目信息保持器323中的条目41的未命中控制 指示符438来获得要执行的控制内容,以及通过参照未命中输出指示符 439来获得关于是否需要输出事件数据的信息(步骤S43.)。
随后,控制执行器321基于在步骤S42或步骤S43获得的信息来确 定是否需要输出事件数据(步骤S44)。如果需要输出事件数据,则控 制执行器321从事件检测器31的事件保持器313读出与所存储的事件有 关的详细信息,并输出必要的信息作为事件数据(步骤S45)。
当在步骤S44确定不需要输出事件数据时,或在步骤S45输出了事 件数据时,控制执行器321根据在步骤S42或步骤S43获得的控制内容 来执行控制(步骤S46)。在命中控制指示符433中或在未命中控制指 示符438中已给出了控制内容。
当指示是"不改变"时,控制执行器321不作任何处理而返回步骤 S32。如果指示是"至下一个",则控制执行器321将条目读出位置保持器322中的值重写成表示下一个条目的位置的值(步骤S47),并返回 步骤S32。如果指示是"结束",则控制执行器321向外部输出结束通知 (步骤S48)并结束测量。
为了描述简洁,这里以一次一个步骤来执行操作的形式给出了描 述,然而可以同时执行多个步骤,或可以基于类似流水线的方法以流 水线方式执行多个步骤,以便实现高速操作。
这里,图12所示的操作根据如何对事件检测器31的操作进行限定
而在要执行的步骤方面部分地变得有所不同。
例如,如果规定事件检测器31仅在步骤S38中所观测的结果满足 了检测条件时进行操作,例如在步骤S39发送事件检测通知,则在控 制执行器321侧不会发生从步骤S41到步骤S43的转变。
另一方面,如果例如规定事件检测器31在步骤S38所观测的结果 满足了检测条件或不满足检测条件时执行操作,例如发送事件检测通 知,则事件检测器31将不再执行基于"否"路线返回步骤S37的重复操作。
备选地,在将事件检测器31规定为在上述任一情况得到满足时向 控制器32发送事件检测通知的同时,分别限定命中通知条件和未命中 通知条件时,检测器31和控制器32有可能都将执行图12所示的所有步骤。
此外,即使釆用所限定的通知条件,将事件检测器31规定为在所 述通知条件得以满足时向控制器32发送事件检测通知以及将命中通知 的范围限定在通知条件之内,事件检测器3 l和控制器32还是有可能都 将执行图12所示的所有步骤。
接着,将采用图13所示的控制信息列表4的特定示例来描述该示 例中的观测方法。这里将对示例进行说明,在该示例中,来自主功能 结构2的信号与作为检测条件的设置值相符合的事实被作为满足检测 条件的事件来处理。这与访问相关事件相对应。例如,存在以下情况 对总线、存储器、或外围电路的寄存器的访问被看作是满足检测条件 的事件。在访问相关事件中,可以将对特定地址的访问、具有特定值 数据的访问、来自特定操作单元的访问、以及其他设置为要检测的事件。作为另一示例,存在以下情况将采用了预定值的计时器、计数 器或寄存器的值看作是满足检测条件的事件。
可以将一个特定值设置为检测条件,然而也可以应用另一方法。 作为另一示例,存在一种方法,在该方法中设置具有上限和下限的范 围。还存在另一种可以想到的方法,在该方法中指定多个比特的特定 设置值,以及使用掩码值来确定在与观测信号相比较时使所述设置值 的每比特有效还是无效。还存在另一种可以想到的方法,在该方法中 使用位图来确定针对每个存取器使比较有效还是无效。此外,上述多 个方法可以组合使用。
参照图13,控制信息列表4包括三个条目41K 412和413。 以"对地址A的总线访问"来设置条目411的检测条件指示符42。相 应地,如果存在对地址A的总线访问,则其被检测为条目411的事件。 类似地,以"对地址B的总线访问"来设置条目412的检测条件指示符 42。以"对地址C的总线访问"来设置条目413的检测条件指示符42。 以"至下一个"来设置条目411和条目412的命中控制指示符433。
"至下一个"指示向前进行至监控下一个条目。相应地,例如在命中条 目411的事件时,控制进行至监控下一个条目412。类似地,当命中条 目412的事件时,控制进行至监控下一个条目413。
以"结束"来设置条目413的命中控制指示符433。"结束"指示在该 点完成了测量。相应地,如果命中条目413的事件,则在该点结束测量。
以"输出"来设置条目411至413的命中输出指示符434。"输出"指示 输出事件数据。相应地,例如在命中条目411的事件时,输出当时的事 件数据。类似地,当命中条目412的事件时,输出当时的事件数据。当 命中条目413的事件时,输出当时的事件数据。
以"不改变"来设置条目411、 412和413的未命中控制指示符438, 而以"不输出"来设置未命中输出指示符439。"不改变"指示继续监控相
同的条目而不改变条目。"不输出"指示不输出事件数据。相应地,例 如当没有命中条目411的事件时,继续如之前一样监控条目411的事件 而不会输出事件数据。类似地,当没有命中条目412的事件时,继续如 之前一样监控条目412的事件而不会输出事件数据。当没有命中条目413的事件时,继续如之前一样监控条目413的事件而不会输出事件数 据。
当使用如上设置的控制信息列表4来开始测量时,将条目411指定 为要首先参照的条目的初始值。当来自主功能结构2的信号是除了对地 址A的总线访问以外的其他信号时,继续保持对要观测的地址A的总线 访问的等待状态而不改变要被称做监控目标的条目,并且不输出事件 数据。
如果发生对地址A的总线访问,则检测到条目411的事件。因此, 要参照的条目变成了条目412,并且输出在对地址A的访问处的数据值 作为事件数据。
类似地,在参照条目412的观测中,继续保持对要观测的地址B的 总线访问的等待状态。当观测到对地址B的总线访问时,输出其事件 数据,操作进行至参照条目413的观测。在参照条目413的观测中,当 观测到对地址C的总线访问时,输出事件数据以结束测量。
如上所述,从而如图13所设置的控制信息列表4的使用,使得在 与执行特定程序期间的各个事件相混合、以地址A、 B和C的顺序发生 总线访问时,可能获得每个总线访问的事件数据(例如数据值)作为 跟踪数据。由于将不会获得不必要的数据,所以可以显著地削减数据 记录所需的缓冲器容量。此外,因为可以遵照控制信息列表4来执行事 件检测和数据记录,而无需来自系统LSI外部的连续操作,所以操作将 不受到至外部的通信线路的速度的限制。 (第二示例)、
第二示例的事件检测器31和控制器32的特定配置与图11所示的
第一示例的相同。
图14是示出了第二示例中调试/跟踪系统的处理流程的流程图。图 15是示出了第二示例中控制信息列表的结构图。
将基于图14和15来描述该示例中的操作。
这里,图14中的步骤S52和步骤S54与图4中的步骤S2相对应。步 骤S55和步骤S56与图4中的步骤S3相对应。此外,步骤S57和步骤S60 与图4中的步骤S4相对应。在图15所示的控制信息列表4的示例中,类似于图13的示例,操
作指示符43并入了命中控制指示符433、命中输出指示符434、未命中 控制指示符438和未命中输出指示符439。
命中控制指示符433是用于规定在检测到满足检测条件的事件时 (在命中时)在调试/跟踪电路3内部的操作的操作指示。命中输出指 示符434是用于指定是否输出命中时的事件数据的信息。
未命中控制指示符438是用于规定在检测到检测条件以外的事件 时(在未命中时)的操作的操作指示。未命中输出指示符439是用于指 定是否输出未命中时的事件数据的信息。
这里,作为示例,示出了一个命中控制指示符433和一个命中输 出指示符434。然而本发明不应局限于此。作为另一示例,可能构造条 目41,使得可以在检测条件指示符42中设置多个检测条件,以及可以 在操作指示符43中设置多个命中控制指示符433和命中输出指示符 434。采用这种构造,可能设置条目41,以使得基于检测到的事件的内
容来执行不同的处理。
参照图14,首先,当从外部向控制器32输入观测开始命令时,控 制执行器321将初始值设置到条目读出位置保持器322中(步骤S51)。 在利用初始值设置条目读出位置保持器322时,对从控制信息列表4读 出条目的位置进行初始化。这时,通常指定控制信息列表4中的顶部, 然而可以根据使用来指定另一值。
此后,控制器32向控制信息列表保持器33给出来自条目读出位置 保持器322的读出位置的通知(步骤S52)。控制信息列表保持器33输 出与所通知的读出位置相对应的条目41 (步骤S53)。控制器32将从控 制信息列表保持器33输出的条目41存储到位于内部的条目信息保持器 323中(步骤S54)。
接着,控制执行器321参照存储于条目信息保持器323中的条目41 的检测条件指示符42 (步骤S55),并且将检测条件指示符42中所指示 的检测条件写入事件检测器31的检测条件保持器311中(步骤S56)。
此后,当来自主功能结构2的信号发生改变(步骤S57)时,事件 检测器31中的条件确定器312基于信号的观测结果以及在检测条件保
21持器311处保持的检测条件,来确定该改变是否满足用于通知事件的条 件(步骤S58)。如果在确认通知条件时没有检测到满足通知条件的任
何事件发生,则返回步骤S57,条件确定器312重复相同的处理直到满
足通知条件的事件发生为止。另一方面,如果在确认通知条件时检测 到满足通知条件的事件发生,则条件确定器312向控制器32发送事件检 测通知(步骤S59)。
在接收事件检测通知(步骤S60)时,控制执行器321确定该事件 检测通知是命中通知还是未命中通知(步骤S61)。命中通知是以下信 息在通知条件包括检测条件得到满足的信息时,给出通知条件(检
测条件)得到满足的通知。未命中通知是以下信息在通知条件包括
检测条件未得到满足的信息时,给出通知条件未得到满足(即,检测 条件未得到满足)的通知。
如果给出了命中通知,则控制执行器321通过参照存储于条目信 息保持器323中的条目41的命中控制指示符433来获得要执行的控制内 容,以及通过参照命中输出指示符434来获得关于是否需要输出事件数 据的信息(步骤S62)。另一方面,如果给出了未命中通知,则控制执 行器321通过参照存储于条目信息保持器323中的条目41的未命中控制 指示符438来获得要执行的控制内容,以及通过参照未命中输出指示符 439来获得关于是否需要输出事件数据的信息(步骤S63)。
随后,控制执行器321基于在步骤S42或步骤S63获得的信息来确 定是否需要输出事件数据(步骤S44)。如果需要输出事件数据,则控 制执行器321从事件检测器31的事件保持器313中读出与所存储的事件 有关的详细信息,并输出必要的信息作为事件数据(步骤S65)。
当在步骤S64确定不需要输出事件数据时,或在步骤S65输出了事 件数据时,控制执行器321根据在步骤S62或步骤S63获得的控制内容 来执行控制(步骤S66)。在命中控制指示符433中或在未命中控制指 示符438中已给出了控制内容。
当指示是"不改变"时,控制执行器321不作任何处理而返回步骤 S52。如果指示的内容是"至下一个",则控制执行器321将条目读出位 置保持器322中的值重写成表示下一个条目的位置的值(步骤S67),并返回步骤S52。如果指示的内容是"移动",则控制执行器321将条目 读出位置保持器322中的值重写成表示所指定的条目读出位置的值,并 返回步骤S52。如果指示的内容是"结束",则控制执行器321向外部输 出结束通知(步骤S69)并结束测量。如果指示的内容是"错误",则控 制执行器321向外部输出错误通知(步骤S70)并结束测量。
这里为了描述简洁,以一次一个步骤来执行操作的形式给出了描 述,然而可以同时执行多个步骤,或可以基于类似流水线的方法以流 水线方式执行多个步骤,以便实现高速操作。
接着,将采用图15所示的控制信息列表4的特定示例来描述该示
例中的观测方法。这里,这里将对示例进行说明,在该示例中,来自 主功能结构2的特定信号的改变将被作为满足检测条件的事件来处理。 例如,存在以下情况将切入信号或控制信号变成有效或无效的事实 看作是满足检测条件的事件。还存在以下情况在该情况下,将特定 操作单元在状态方面发生改变的事实看作是事件。
尽管可以针对一个特定信号来将事件检测条件设置为检测条件, 然而也可以使用另一方法。作为另一示例,存在另一种可以想到的方 法,在该方法中指定针对多个事件的检测条件值,以及使用位图来设 置针对每个事件使这些检测条件值有效还是无效。该布置使得可能指
定特定的事件组。
参照图15,控制信息列表4包括三个条目414、 415、 416和417。 以"事件A"来设置条目414的检测条件指示符42。相应地,如果发 生事件地址A,则检测到该事件地址A作为条目414的事件。类似地, 以"事件B,,来设置条目415的检测条件指示符42。以"事件C"来设置条 目416的检测条件指示符42。以"事件D"来设置条目417的检测条件指 示符42。
以"至下一个"来设置条目414、条目415和条目416的命中控制指示 符433。"至下一个"指示向前进行至监控下一个条目。相应地,例如在 命中条目414的事件时,控制进行至监控下一个条目415。类似地,当 命中条目415的事件时,控制进行至监控下一个条目416。当命中条目 416的事件时,控制进行至监控下一个条目417。以"结束"来设置条目417的命中控制指示符433。"结束"指示在该 点完成了测量。相应地,如果命中条目417的事件,则在该点处结束测
以"输出"来设置条目414至417的命中输出指示符434和条目415至 417的未命中输出指示符439。"输出"指示输出事件数据。相应地,例 如在命中条目414的事件时,输出当时的事件数据。类似地,当命中条 目415、 416或417的事件时,输出当时的事件数据。当未命中条目415、 416或417的事件时,输出当时的事件数据。
以"不改变"来设置条目414和417的未命中控制指示符438。"不改
变"指示继续监控相同的条目而不改变条目。相应地,当没有命中条目 414或417的事件时,继续如之前一样监控条目414的事件。
以"不输出"来设置条目414的未命中输出指示符439。"不输出"指 示不输出事件数据。相应地,当没有命中条目414的事件时,不会输出 事件数据。
以"错误"来设置条目415的未命中控制指示符438。"错误"指示向 外部给出错误通知并在该点结束测量。相应地,当未命中条目415的事 件时,输出错误通知并在该点结束测量。
以"移动至414"来设置条目416的未命中控制指示符438。"移动" 指示向前进行至监控指定的条目。在这种情况下,将"414"指定为目的 地。相应地,当未命中条目416的事件时,控制进行至监控条目414。
当使用如上设置的控制信息列表4来开始测量时,将条目414指定 为要首先参照的条目的初始值。从而,开始监控事件A。如果检测到 的事件是除了事件A以外的其他事件,则不改变要被称作监控目标的 条目并不输出事件数据,并且继续保持对要观测的事件A的等待状态。 当发生事件A时,检测到条目414的事件。因此,要参照的条目变成条 目415,并且输出事件数据。例如,事件数据是与检测到的事件相关联 的信息。
当在观测到事件A之后观测下一个事件时,参照条目415的内容。 在条目415中,在检测到除了事件B以外的其他事件时输出错误通知, 以及输出事件数据以结束测量。当由于错误而终止测量时,可能通过检查事件数据来检查发生了什么。
另一方面,当观测到事件B时,要参照的条目变成416并输出事件
数据。当在观测到事件B之后检测下一个事件时,参照条目416的内容。 在条目416中,操作返回条目414,使得在检测到除了事件C以外的其 他事件时开始监控事件A。尽管事件是除了事件C以外的其他事件的事 实不是错误,然而由于这也不是跟踪条件,所以从监控事件A开始再 次开始该操作。
当检测到事件C时,参照条目417的内容。在条目417中,当检测 到除了事件D以外的其他事件时,输出事件数据,然而不将会改变要 参照的条目。因此,将所有事件的事件数据记录为跟踪数据,直到检 测到事件D为止。当检测到事件D时,输出结束通知以在该点终止测量。
如上所述,对如图15所设置的控制信息列表4的使用使得可能在 执行特定程序期间连续发生事件A、 B和C时开始跟踪事件,以及在发 生事件D时终止跟踪。
尽管参照示例实施例和示例描述了本发明,然而本发明不应限于 上述示例实施例和示例。本领域技术人员将理解,在本发明的范围之 内,可以对权利要求所限定的本发明的配置和细节进行各种改变。
本申请要求于2007年2月14日提交的日本专利申请2007-033340的
优先权,其全部公开合并于此。
权利要求
1、一种具有调试功能的半导体集成电路,包括主功能结构,执行连续的预定操作,以连续地产生与所述操作相关联的事件;以及调试/跟踪电路,预先存储了控制信息列表,所述控制信息列表顺序地包括多个条目,以使得基于一系列事件来识别需要观测的事件,其中每个条目包括检测条件指示信息和操作指示信息组成的集合,所述检测条件指示信息用于检测目标事件的产生,所述操作指示信息用于根据所述检测条件指示信息与在所述主功能结构处发生的事件之间的比较结果来指定操作;以及所述调试/跟踪电路根据所述控制信息列表连续地执行以下操作将所述主功能结构处发生的事件与所述控制信息列表中一个条目的检测条件指示信息相比较、以及根据所述比较的结果来执行由与所述检测条件指示信息配对的所述操作指示信息所指定的操作,以识别所述事件。
2、 根据权利要求l所述的半导体集成电路,其中,所述操作指示 信息包括输出指示信息,规定是否输出事件数据;以及控制指示信 息,规定所述调试/跟踪电路的内部操作。
3、 根据权利要求l所述的半导体集成电路,其中,所述操作指示 信息包括命中控制指示信息,在发生了满足所述检测条件指示信息 的事件时选择操作;以及未命中操作指示信息,在发生了不满足所述 检测条件指示信息的事件时选择操作。
4、 根据权利要求l所述的半导体集成电路,其中, 所述主功能结构包括操作单元,所述操作指示信息包括操作单元控制指示信息,选择所述操作 单元并指示该操作单元的操作,以及所述调试/跟踪电路根据所述操作单元控制指示信息向所述操作 单元发送控制信号。
5、 根据权利要求l所述的半导体集成电路,其中,所述操作指示信息包括性能测量控制指示信息,指示与测量有关的操作的控制,以及所述调试/跟踪电路根据所述性能测量控制信息来控制与测量有 关的操作。
6、 一种内置于半导体集成电路中的调试/跟踪电路,所述半导体 集成电路包括执行连续预定操作以连续产生与所述操作相关联的事件 的主功能结构,所述调试/跟踪电路包括控制信息列表保持器,预先存储了控制信息列表,所述控制信息 列表顺序地包括多个条目,以使得基于一系列事件来识别需要观测的 事件,其中每个条目包括检测条件指示信息和操作指示信息组成的集 合,所述检测条件指示信息用于检测目标事件的产生,所述操作指示 信息用于根据所述检测条件指示信息与在所述主功能结构处发生的事 件之间的比较结果来指定操作;事件检测器,根据所述控制信息列表连续地执行以下操作将所 述主功能结构处发生的事件与所述控制信息列表中一个条目的检测条 件指示信息相比较;以及控制器,根据来自所述事件检测器的所述比较的结果,来执行由 与所述检测条件指示信息配对的所述操作指示信息所指定的操作。
7、 根据权利要求6所述的调试/跟踪电路,其中,所述操作指示信息包括输出指示信息,规定是否输出事件数据;以及控制指示信息,规定所述调试/跟踪电路的内部操作。
8、 根据权利要求6所述的调试/跟踪电路,其中,所述操作指示信息包括命中控制指示信息,在发生了满足所述检测条件指示信息的 事件时选择操作;以及未命中操作指示信息,在发生了不满足所述检 测条件指示信息的事件时选择操作。
9、 根据权利要求6所述的调试/跟踪电路,其中,所述主功能结构包括操作单元,所述操作指示信息包括操作单元控制指示信息,选择所述操作单元并指示该操作单元的操作,以及所述调试/跟踪电路还包括操作单元控制器,根据所述操作单元 控制指示信息向所述操作单元发送控制信号。
10、 根据权利要求6所述的调试/跟踪电路,其中, 所述操作指示信息包括性能测量控制指示信息,指示与测量有关的操作的控制,以及所述调试/跟踪电路还包括性能测量部分,根据所述性能测量控 制信息来控制与测量有关的操作。
11、 一种针对半导体集成电路的操作观测方法,通过内置于半导 体集成电路中的调试/跟踪电路来观测主功能结构的操作,所述半导体 集成电路包括执行连续预定操作以连续地产生与所述操作相关联的事 件的主功能结构,该方法包括-预先存储了控制信息列表,所述控制信息列表顺序地包括多个条 目,以使得基于一系列事件来识别需要观测的事件,其中每个条目包 括检测条件指示信息和操作指示信息组成的集合,所述检测条件指示 信息用于检测目标事件的产生,所述操作指示信息用于根据所述检测 条件指示信息与在所述主功能结构处发生的事件之间的比较结果来指 定操作;以及根据所述控制信息列表连续地执行以下操作将所述主功能结构 处发生的事件与所述控制信息列表中一个条目的检测条件指示信息相 比较,以及根据所述比较的结果来执行由与所述检测条件指示信息配 对的所述操作指示信息所指定的操作,以识别和观测所述事件。
全文摘要
主功能结构执行连续的预定操作,以连续地产生与所述操作相关联的事件。调试/跟踪电路将主功能结构处发生的事件与控制信息列表中的一个条目的检测条件指示信息相比较,并且根据比较结果来执行由与检测条件指示信息配对的操作指示信息所指定的操作。调试/跟踪电路根据控制信息列表连续地执行该操作,以识别事件。
文档编号G06F11/30GK101606132SQ20088000463
公开日2009年12月16日 申请日期2008年1月25日 优先权日2007年2月14日
发明者铃木纪章, 鸟居淳 申请人:日本电气株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1