CN114830103A - 跟踪处理程序模块系统和使用所述系统的方法 - Google Patents
跟踪处理程序模块系统和使用所述系统的方法 Download PDFInfo
- Publication number
- CN114830103A CN114830103A CN202080083126.3A CN202080083126A CN114830103A CN 114830103 A CN114830103 A CN 114830103A CN 202080083126 A CN202080083126 A CN 202080083126A CN 114830103 A CN114830103 A CN 114830103A
- Authority
- CN
- China
- Prior art keywords
- trace
- bus
- data
- handler module
- module system
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4208—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3024—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
- G06F11/3068—Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data format conversion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3466—Performance evaluation by tracing or monitoring
- G06F11/348—Circuit details, i.e. tracer hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/88—Monitoring involving counting
Abstract
本发明公开了一种跟踪处理程序模块系统和用于通过使用跟踪处理程序模块系统使用最小处理器指令集从跟踪消息中生成跟踪数据流的方法。本发明的目的是提供一种能够处理从消耗最小控制器带宽的处理器的固件流中提取的跟踪消息并且不引入运行时间变化的跟踪消息的装置和方法,这将通过跟踪处理程序模块系统来解决,该跟踪处理程序模块系统被配置为经由芯片内部总线系统来接管表示在SOC的处理器上运行的固件的内部状态的跟踪消息,其中跟踪消息由通过芯片内部总线系统在总线主设备和总线从设备之间交换的总线数据信号来承载,并且总线地址信号ADDR被用于对跟踪消息的附加跟踪元数据进行编码,其中跟踪处理程序模块系统包括:总线从设备,被配置为将特定总线协议数据转换为基于选通的协议数据;输入逻辑,被配置为添加时间戳以对来自总线从设备的转换数据进行过滤和通道分配;先进先出(FIFO)移位寄存器,被配置为将总线传送速度与跟踪数据流速度解耦并输出FIFO数据格式;以及输出逻辑,被配置为将FIFO数据格式转换为表示跟踪消息的跟踪数据流格式以重构由处理器发出的系统行为。
Description
本发明涉及跟踪处理程序(trace handler)模块系统和用于通过使用跟踪处 理程序模块系统来使用最小处理器指令集从跟踪消息中生成跟踪数据流的方法。
片上系统(SoC)将系统组件集成在单个芯片管芯上;系统组件可以是电源 管理、模拟接口、数字接口和一个或多个处理器。处理器固件与接口和外部组 件高度交互。
芯片内部组件通常经由标准化总线系统(即,高级高性能总线(AHB),参 见:“Advanced microcontroller bus architecture,”2019.[Online].Available: https://en.wikipedia.org/wiki/Advanced_Microcontroller_Bus_Architecture或者 Wishbone,参见:“Wishbone(computer bus)”,2019.[Online].Available: https://en.wikipedia.org/wiki/Wishbone_(computer_bus))链接。存在各种标准和实 施方式。它们所有都具有共同的最小信号集。信号的名称可能因标准而异,功 能相似。
‘CLK’时钟线,由时钟源驱动,
‘ADDR’地址,BUSAWID位(即32)向量,由总线主设备驱动,由总线 从设备消耗,
‘WRITE’读写,在读取或写入传送之间进行选择,由总线主设备驱动, 由总线从设备消耗,
‘TRANS’传送,用信号传递新总线操作的开始,由总线主设备驱动,由 总线从设备消耗,
‘WDATA’要写入的数据,BUSDWID位(即32)向量,由总线主设备驱 动,由总线从设备消耗,
‘RDATA’读取数据,BUSDWID位(即32)向量,由总线从设备驱动, 由总线主设备消耗,
‘READY’就绪,用信号传递总线操作的结束,由总线从设备驱动,由总 线主设备消耗。
图1描绘了单次读取传送。总线主设备应用ADDR、WRITE、TRANS并等 待READY变为高电平。于是读取数据RDATA是有效的。
图2描绘了单次写入传送。总线主设备应用ADDR、WRITE、TRANS、 WDATA并等待READY变为高电平。
确切的信号时序因标准而异。除了列出的信号之外,还存在以下重要的常 见事实:
-传送总是包括地址并且是读取操作或写入操作。
-读取操作将数据从从设备传送到主设备。
-写入操作将数据从主设备传送到从设备。
-传送具有定义的开始,由总线主设备发起。
-传送具有定义的结束,由总线从设备定义/延迟。
-ADDR信号的最高有效位(MSB)用于在从设备之间进行选择。
-ADDR信号的最低有效位(LSB)根据它们的需要在从设备内使用。
一些总线协议还支持不同于数据宽度(BUSDWID)的传送大小。本发明所 需的最小传送粒度为BUSDWID。
芯片内部总线基础设施具有以下参与者:
“主设备”模块,其可以发起总线传送,
“从设备”模块,其响应于总线传送。
主设备模块可以是,即,微控制器或直接存储器存取(DMA)模块。
从设备模块可以是存储器,其是可读取和/或可写入的字的完整矩阵,或者 是寄存器文件,其是可读取和/或可写入的触发器的单个向量或多个向量。这些 触发器控制或观察硬件信号。这些触发器可以一个或多个地址进行总线访问。 还存在其他从模块,即FLASH控制器等等。
片上系统(SoC)的几乎每个芯片内部微控制器都具有总线主设备接口,该 总线主设备接口发起符合总线协议的读取和写入传送。固件只读取和写入地址。
典型的处理器指令集需要两条处理器指令进行读取传送:
1.将地址常量加载到处理器寄存器A。
2.从处理器寄存器A中的地址加载,将读取的值存储到处理器寄存器B。
写入传送需要三条处理器指令:
1.将地址常量加载到处理器寄存器A。
2.将数据常量加载到处理器寄存器B。
3.将处理器寄存器B的内容存储在处理器寄存器A的地址处。
总之,总线传送总是消耗大量指令并且取决于处理器架构消耗甚至更多的 时钟周期。多次传送在下一条加载指令或存储指令之前总是需要地址寄存器A 的更新指令。在某些情况下,甚至更多。有多种方法来缓解这些问题:总线突 发传送、处理器流水线等。
在突发模式传送中,设备重复传送数据,而无需完成在单独事务中传输每 条数据所需的所有步骤。具有突发模式能力或使用突发模式的通常原因是增加 数据吞吐量。
处理器流水线试图通过将传入指令划分为由不同处理器单元执行的一系列 顺序步骤来使处理器的每个部分都忙于某些指令,其中指令的不同部分被并行 处理。它允许在给定时钟速率下比其他方式更快的CPU吞吐量,但可能由于流 水线过程本身的额外开销而增加延迟。
主要问题是在处理器上运行的固件可能包含难以分析的错误,因为它们需 要深入了解固件状态。任何处理器停止和中间读出都影响处理器行为以及随之 的系统交互。在最坏情况的场景下,调试条件会由于中间读出而消失。相反, 跟踪无条件转储内部状态。可以基于跟踪数据来重建系统行为。跟踪消息是具 有诊断信息和静态或动态长度的数据结构。跟踪消息包括跟踪数据和元数据, 并且可以被视为内部固件状态变量值,该内部固件状态变量值表示在片上系统 的处理器上运行的固件的内部状态。每条跟踪消息都具有明确定义的数据格式, 并且在每个程序执行步骤之间都可用。通常,在软件开发过程期间,例如在SoC 的处理器上运行的固件的开发期间,决定在固件中的特定位置处转储处理器的内部状态可能会较好。但是任何具有时间戳、跟踪类型等和跟踪过滤的输出格 式,例如跟踪类型、跟踪级别、通道等消耗控制器带宽并引入运行时变化。
因此,本发明的目的是提供一种装置和方法,其能够处理从处理器的固件 流中提取出的跟踪消息,从而消耗最小控制器带宽并且不引入运行时变化。同 时,为了跟踪片上系统处理器,跟踪消息应该具有时间戳,其允许与内部时序 和类型相关以区分消息及其解释。
本发明的目的将通过跟踪处理程序(trace handler)模块系统来解决,该跟 踪处理程序模块系统被配置为经由芯片内部总线系统来接管表示在片上系统的 处理器上运行的固件的内部状态的跟踪消息,其中跟踪消息由通过芯片内部总 线系统在总线主设备和总线从设备之间交换的总线数据信号来承载,并且总线 地址信号ADDR用于对跟踪消息的附加跟踪元数据进行编码,其中,跟踪处理 程序模块系统包括:总线从设备,被配置为将特定总线协议数据转换为基于选 通的协议数据;输入逻辑,被配置为添加时间戳以对来自总线从设备的转换数 据进行过滤和通道分配;先进先出(FIFO)移位寄存器,被配置为将总线传送 速度与跟踪数据流速度解耦并输出FIFO数据格式;以及输出逻辑,被配置为将 FIFO数据格式转换为表示用于重建由处理器发出的系统行为的跟踪消息的跟踪 数据流格式。
跟踪处理程序模块系统从处理器卸载格式化和过滤。特别是过滤意味着运 行时变化(跟踪或跳过)。处理器跟踪开销是最小的且无条件的。系统行为既不 依赖于跟踪消息,尤其是跟踪数据,也不依赖于跟踪过滤器。
总线从设备将特定的总线协议转换为简单的基于选通的协议。特定的总线 地址空间取决于设计时常量。总线从设备从不插入等待周期(READY始终为高 电平)。
优选的是在跟踪处理程序模块系统的设计时,假设函数所述 函数返回用于对n个不同值进行编码所需的位数,定义以下符号:BUSAWID, 定义芯片内部总线地址宽度,BUSDWID,定义芯片内部总线数据宽度, LEVELWID,定义跟踪消息的跟踪级别的级别宽度,TYPEWID,定义跟踪消息 类型标识符的类型宽度,和CHANWID,定义跟踪通道的通道宽度,所述跟踪 通道作为传输协议层实体以在总线主设备和总线从设备之间的传输期间分离不 同的跟踪消息。b(n)是对n的log2操作的上舍入。
上面提到的符号BUSAWID,总线地址宽度;BUSDWID,总线数据宽度; LEVELWID,级别宽度,其是可选的且可以为0;TYPEWID,类型宽度,其是 可选的且可以为0;和CHANWID,通道宽度,定义了设计时常量,其影响实现 细节并且因此应该在之前被选择。
在本发明的跟踪处理程序模块系统的变体中,跟踪处理程序模块系统使用 总线ADDR信号的不同切片来提取跟踪消息的跟踪元数据以用于生成跟踪数据 流。总线ADDR信号的LSB由总线从设备来解释。跟踪处理程序模块系统使用 它们来提取跟踪元数据。
在本发明的跟踪处理程序模块系统的其他变体中,总线ADDR信号的一个 切片定义了数据标记(IS_DATA),其指定跟踪消息有效载荷字节。总线ADDR 信号的另一个切片定义了结束标记(IS_END),其指定关闭通道。总线ADDR 信号的另一个切片定义了跟踪级别(LEVEL),其指定跟踪消息的类别相关性。 总线ADDR信号的另一个切片定义了跟踪类型(TYPE),其指定跟踪消息类型 标识符。并且总线ADDR信号的一个切片定义了跟踪通道(CHAN),其指定跟 踪通道编号。
图3中的表1描述了要从总线ADDR信号中提取的切片。
在本发明的跟踪处理程序模块系统的另一个变体中,输入逻辑由递送报头 时间戳的时基馈送,该报头时间戳被捕获并被转发到FIFO移位寄存器。输入逻 辑负责时间戳、过滤和通道分配。对于时间戳,时基递送报头时间戳,该报头 时间戳被捕获并被转发到FIFO。跟踪报头包含一条跟踪消息的元信息——时间 戳和跟踪类型。跟踪时间戳是触发跟踪消息的事件的时间戳。
过滤可以以不同的方式完成,它们彼此完全正交。
因此,在本发明的跟踪处理程序模块系统的变体中,输入逻辑根据跟踪级 别来过滤跟踪消息,而取决于配置的最小跟踪级别,特定消息被丢弃或被转发 到FIFO移位寄存器。每个跟踪消息都具有跟踪级别,其是固定的并且在设计时 被定义。跟踪级别将跟踪消息分类为相关性的类别,即,信息(INFO)、警告 (WARN)、错误(ERROR)。取决于运行时配置的最小跟踪级别,特定消息被 丢弃或转发。
并且在本发明的跟踪处理程序模块系统的另一个变体中,输入逻辑根据跟 踪消息类型标识符来过滤跟踪消息,而取决于配置的跟踪消息类型标识符,特 定消息被丢弃或被转发到FIFO移位寄存器。每个跟踪消息都具有在设计时定义 的跟踪类型。跟踪类型标识跟踪消息及其内容。取决于跟踪处理程序模块系统 过滤的运行时配置跟踪类型,特定消息被丢弃或转发。
并且在本发明的跟踪处理程序模块系统的另一进一步变体中,输入逻辑基 于从总线ADDR信号中提取的其他跟踪元数据来过滤跟踪消息。可以使用TYPE 和LEVEL的相同方法对其他跟踪元数据进行编码。处理或多或少的该数据并将 其包括在过滤条件中取决于实施方式。
在本发明的跟踪处理程序模块系统的变体中,跟踪处理程序模块系统包括 跟踪通道状态机,其处理定义数量的跟踪通道,而跟踪通道的数量由(2CHANWID-1) 预定义。跟踪处理程序模块能够处理定义数量的跟踪通道(2CHANWID-1)。每个通 道都具有自己的状态。跟踪通道是传输协议层实体以在传输过程期间分离不同 的跟踪消息。
在本发明的跟踪处理程序模块系统的另一个变体中,跟踪处理程序模块系 统包括计数器,该计数器被配置为每当FIFO移位寄存器已满或超过跟踪通道的 数量时对丢失的跟踪消息的数量进行计数。还可以对丢失消息的数量进行计数。 每当FIFO已满或超过通道数量时,该计数器就会递增。这量化了跟踪负载与可 用跟踪带宽的比率。跟踪过滤减少了跟踪负载。踪迹丢失分析和踪迹过滤可用 于剥离跟踪数据到适当的水平。
在本发明的跟踪处理程序模块系统的另一个变体中,跟踪处理程序模块系 统包括计数器,其被配置为通过对所有传入的有效载荷字节进行计数来对总跟 踪负载进行计数。这量化了绝对跟踪负载。取决于特定时间跨度或总计的计数 器评估。这有助于改进跟踪消息定义及其时间。在本发明的跟踪处理程序模块 系统的另一个变体中,跟踪处理程序模块系统支持多线程、任意数量的中断上 下文和/或交错的跟踪流。跟踪通道方法与通道打开和关闭操作相结合实现多线 程和任意数量的中断上下文。如果分配了所有通道,则数据被安全地丢弃,而 不干扰其他通道。通道打开和关闭操作是原子级的。之前或之后的任何中断或 上下文切换都没有副影响。选择适当数量的通道取决于实施方式。
本发明的目的还将通过使用根据权利要求1至15所述的跟踪处理程序模块 系统来使用最小处理器指令集从跟踪消息中生成跟踪数据流的方法来解决,其 中所述方法包括以下步骤:
-通过读取所述跟踪处理程序模块系统的任何地址来打开通道,而返回 值是用于所有相继动作的通道基地址A,
-根据经由芯片内部总线系统而交换的总线ADDR信号的切片类型,将 地址A中的TYPE位设置为跟踪消息类型,
-根据总线ADDR信号的切片LEVEL将地址A中的LEVEL位设置为 跟踪消息级别,
-如果总线ADDR信号的切片IS_DATA被执行,则将地址A中的 IS_DATA位设置为1,以将所有相继写入的字解释为跟踪消息有效载荷,
-将所述跟踪消息数据写入到地址A,
-将地址A中的IS_END设置为1以准备通道关闭,
-通过向地址A写入一些东西来关闭频道。
固件必须遵循跟踪数据生成的严格顺序。整个过程依赖于地址A的正确处 理。本发明的方法卸载了固件并利用最小处理器指令集来接管时间戳、过滤和 输出格式化。明显的是每个打开的通道都必须关闭。关闭通道操作明确忽略任 何写入的数据。最后的附加写入操作可以忽略不计。整个序列没有条件并且于 是具有恒定执行时间。可以随时重复方法步骤“将跟踪消息数据写入到地址A”。 所有其他方法步骤不允许被重复。
在本发明方法的变体中,除TYPE和LEVEL之外的其他跟踪元数据被写入 到地址A。这可用于引入用于跟踪过滤和/或传输的附加类型的跟踪元数据。
在本发明方法的另一个变体中,如果所有通道被分配,则在地址A上返回 空通道,其被忽略。这确保了在过载场景下跳过所有跟踪数据而不受任何干扰。
因此,在本发明方法的另一进一步变体中,该方法无条件地被执行并且在 恒定执行时间中执行。
将使用示例性实施例更详细地解释本发明。
附图示出
图1:总线读取传送;
图2:总线写入传送;
图3:根据本发明的从芯片内部总线到跟踪的转换;
图4:由总线从设备进行的ADDR信号解释;
图5:本发明的跟踪处理程序模块系统;
图6:根据本发明的方法的用于在总线主设备和总线从设备之间交换的跟踪 消息的跟踪固件协议;
图7:跟踪通道状态机。
图3示出了从芯片内部总线2到跟踪数据流5的转换。跟踪处理程序模块 系统4从处理器卸载格式化和过滤。特别是,过滤意味着运行时变化(跟踪或 跳过)。跟踪开销是最小的且无条件的。系统行为既不依赖于跟踪数据也不依赖 于跟踪过滤器设置。本发明的跟踪处理程序模块系统4将被在图5中更详细地 描述。
图4示出了跟踪处理程序模块系统的总线从设备对总线ADDR信号的解释。 总线ADDR信号被分成不同的切片,其在本发明系统的设计时被定义。切片 ‘BYTESEL’的宽度为b(BUSDWID/8-1),例如位1:0。这些位旨在被忽略, 因为并非所有处理器都支持非字访问。切片‘SKIP’的宽度为b(BUSDWID/8-1), 例如位3:2。该切片标记要跳过的数据字节数。对于BUSDWID=32,如果SKIP =0,则发送4个字节[31:0]并跳过0个字节;如果SKIP=1,则发送3个字节[23:0] 并跳过1个字节;如果SKIP=2,则发送2个字节[15:0]被发送并跳过2个字节; 如果SKIP=4,则发送1个字节[7:0]并跳过2个字节。SKIP属性使得能够处理 除BUSDWID之外的有效载荷。有效载荷源可以以任何对齐方式位于处理器内 存中。SKIP属性还可用于转储字对齐数据之前和字对齐数据前之后的字节。切 片“IS_DATA”的宽度为0或1,例如位4。如果写入的数据作为跟踪有效载荷 来处理,则该切片是数据标记。该位是可选的,并且只有在除TYPE或LEVEL 之后的过滤之外还存在其他过滤时才需要。切片“IS_END”的宽度为1,例如 位5。IS_END是结束标记,其用于关闭通道并且写入的数据被忽略。切片“LEVEL” 具有LEVELWID的宽度,例如8:6,其在跟踪处理程序模块系统的设计时被定 义然后被固定。跟踪级别将跟踪消息分类为相关类别,即,INFO(信息)、WARN (警告)、ERROR(错误)。切片“TYPE”的宽度为TYPEWID,例如14:9,其 在跟踪处理程序模块系统的设计时被定义。跟踪类型标识跟踪消息及其内容。 切片“CHAN”的宽度为CHANWID,例如20:15,其在跟踪处理程序模块系统 的设计时被定义。跟踪通道是传输协议层实体以在传输期间分离不同的跟踪消 息。
上面提到的符号BUSAWID,总线地址宽度,即32位;BUSDWID,总线 数据宽度,即32位;LEVELWID,级别宽度,即3位,其是可选的且可以为0; TYPEWID,类型宽度,即6位,其是可选的且可以为0;和CHANWID,通道 宽度,即6位定义了设计时常量,其影响实现细节并且因此应该在之前被选择。
图5示出了本发明的跟踪处理程序模块系统4,包括总线从设备3、输入逻 辑6、FIFO移位寄存器7和输出逻辑8。总线从设备3将特定总线协议转换为简 单的基于选通的协议。特定的总线地址空间取决于设计时常量。总线从设备3 从不插入等待周期(READY始终为高电平)。输入逻辑6负责打时间戳、过滤 和通道分配。对于时间戳,时基9递送报头时间戳,该时间戳被捕获并转发到 FIFO 7。过滤可以以不同的方式完成,它们彼此完全正交。一种选择是输入逻辑 6根据跟踪级别来过滤跟踪消息,而取决于运行时配置的最小跟踪级别,特定消 息被丢弃或转发到FIFO移位寄存器7。另一种选择是输入逻辑7根据跟踪消息类型标识符来过滤跟踪消息,而取决于运行时配置的跟踪消息类型标识符过滤 器配置,特定消息被丢弃或转发到FIFO移位寄存器7。且最后同样重要的是, 输入逻辑7可以基于从总线ADDR信号中提取的其他跟踪元数据来过滤跟踪消 息。FIFO 7将总线传送速度与跟踪数据流速度解耦。每个条目由跟踪级别、跟 踪类型、跟踪通道、数据字、时间戳和跳过信息组成。输出逻辑将FIFO数据格 式转换为跟踪流格式。
跟踪处理程序能够处理定义数量的跟踪通道(2CHANWID-1)。每个通道都具有 其自己的状态,如图7所示,其示出了跟踪通道状态机。默认情况下,通道处 于空闲。与前一个通道不同的最小编号的通道在总线读取时被分配,从而移动 到分配状态。过滤在这里完成。具有IS_DATA标记的第一次写入将状态机移动 到活动。在任何情况下,具有IS_END标记的写入都会关闭通道并再次转变为 空闲。在分配或活动期间不匹配过滤规则的情况下,状态机移动为空。在这种 状态下,传入的数据不转发到FIFO 7。如果传入的写入由于FIFO 7已满而无法 存储在FIFO 7中,则数据被丢失并且状态机转变为空。如果所有通道被分配, 则在读取时返回空通道。空通道(即2CHANWID-1)是预定义通道编号,其数据始 终被忽略。
图6中的表2示出了固件使用跟踪处理程序模块系统1生成跟踪数据时必 须遵循的严格顺序。整个过程依赖于地址A的正确处理,这符合图4中的表1。 此流程卸载固件,并利用最小处理器指令集来接管打时间戳、过滤和输出格式。 明显的是每个打开的通道都必须关闭。如果所有通道被分配,则在读取时返回 空通道。整个顺序没有条件,于是具有恒定的执行时间。关闭通道操作明确地 忽略任何写入的数据。如果可以在标准循环中发出发送有效载荷操作,则固件 操作更快。最后附加写入操作可忽略不计。
在另一个实施例中,选择设计时常量并改变实施方式取决于用例。除此之 外,可以使用TYPE和LEVEL的方法对其他跟踪元数据进行编码。它们在总线 地址位中编码并转发到FIFO 7。对它们进行过滤是可选的。
在另一个实施例中,可以包括用于过滤的其他数据,如已经通过使用除 TYPE和LEVEL之外的其他跟踪元数据所描绘的。处理或多或少的该数据并将 其包括在过滤条件中取决于实施方式。
还可以通过对所有传入的有效载荷字节进行计数来对总跟踪负载进行计数。 此计数器将忽略过滤条件。
此外,还可以对丢失消息的数量进行计数。每当FIFO 7已满或超过通道数 时,此计数器将递增。
本发明的装置和方法可以用于发布微控制器的所有架构,无论是否是嵌入 式的、片上系统的。
附图标记列表
1 总线主设备
2 总线系统
3 总线从设备
4 跟踪处理程序模块系统
5 跟踪数据流
6 输入逻辑
7 先进先出(FIFO)移位寄存器
8 输出逻辑
9 时基
10 过滤器设置
Claims (19)
1.一种跟踪处理程序模块系统,其被配置为经由芯片内部总线系统来接管表示在片上系统的处理器上运行的固件的内部状态的跟踪消息,其中,所述跟踪消息由通过芯片内部总线系统在总线主设备和总线从设备之间交换的总线数据信号来承载,并且总线地址信号ADDR被用于对所述跟踪消息的附加跟踪元数据进行编码,其中,所述跟踪处理程序模块系统包括:所述总线从设备,被配置为将特定总线协议数据转换为基于选通的协议数据;输入逻辑,被配置为添加时间戳以对来自所述总线从设备的转换数据进行过滤和通道分配;FIFO移位寄存器,被配置为将总线传送速度与跟踪数据流速度解耦并输出FIFO数据格式;以及输出逻辑,被配置为将所述FIFO数据格式转换为表示所述跟踪消息的跟踪数据流格式以重构由处理器发出的系统行为。
3.根据权利要求1所述的跟踪处理程序模块系统,其中,所述跟踪处理程序模块系统使用总线ADDR信号的不同切片来提取所述跟踪消息的所述跟踪元数据。
4.根据权利要求3所述的跟踪处理程序模块系统,其中,所述总线ADDR 信号的一个切片定义了数据标记IS_DATA,其指定跟踪消息有效载荷字节。
5.根据权利要求3所述的跟踪处理程序模块系统,其中,所述总线ADDR信号的一个切片定义了结束标记IS_END,其指定通道的关闭。
6.根据权利要求3所述的跟踪处理程序模块系统,其中,所述总线ADDR信号的一个切片定义了跟踪级别LEVEL,其指定所述跟踪消息的类别相关性。
7.根据权利要求3所述的跟踪处理程序模块系统,其中,所述总线ADDR信号的一个切片定义了跟踪类型TYPE,其指定所述跟踪消息类型标识符。
8.根据权利要求3所述的跟踪处理程序模块系统,其中,所述总线ADDR信号的一个切片定义了所述跟踪通道CHAN,其指定跟踪通道编号。
9.根据权利要求1所述的跟踪处理程序模块系统,其中,所述输入逻辑由递送报头时间戳的时基馈送,所述报头时间戳被捕获并转发到所述FIFO移位寄存器。
10.根据权利要求6所述的跟踪处理程序模块系统,其中,所述输入逻辑根据所述跟踪级别来过滤所述跟踪消息,而取决于运行时配置的最小跟踪级别,特定消息被丢弃或被转发到所述FIFO移位寄存器。
11.根据权利要求7所述的跟踪处理程序模块系统,其中,所述输入逻辑根据所述跟踪消息类型标识符来过滤所述跟踪消息,而取决于运行时配置的跟踪消息类型标识符,特定消息被丢弃或被转发到所述FIFO移位寄存器。
12.根据前述权利要求中任一项所述的跟踪处理程序模块系统,其中,所述输入逻辑基于从所述总线ADDR信号中提取的其他跟踪元数据来过滤所述跟踪消息。
13.根据权利要求1所述的跟踪处理程序模块系统,其中,所述跟踪处理程序模块系统包括跟踪通道状态机,其处理定义数量的跟踪通道,而所述跟踪通道的数量由(2CHANWID-1)预先定义。
14.根据权利要求1所述的跟踪处理程序模块系统,其中,所述跟踪处理程序模块系统包括计数器,所述计数器被配置为每当所述FIFO移位寄存器已满或超过跟踪通道的数量时对丢失的跟踪消息的数量进行计数。
15.根据权利要求1所述的跟踪处理程序模块系统,其中,所述跟踪处理程序模块系统包括计数器,所述计数器被配置为通过对所有传入的有效载荷字节进行计数来对总跟踪负载进行计数。
16.一种用于通过使用根据权利要求1至15所述的跟踪处理程序模块系统来使用最小处理器指令集从跟踪消息中生成跟踪数据流的方法,其中,所述方法包括以下步骤:
-通过读取所述跟踪处理程序模块系统的任何地址来打开通道,而返回值是用于所有相继动作的通道基地址A,
-根据经由芯片内部总线系统交换的总线ADDR信号的切片类型,将地址A中的TYPE位设置为跟踪消息类型,
-根据所述总线ADDR信号的切片LEVEL,将地址A中的LEVEL位设置为跟踪消息级别,
-如果总线ADDR信号的切片IS_DATA被执行,则将地址A中的IS_DATA位设置为1,以用于将所有相继写入的字解释为跟踪消息有效载荷,
-将所述跟踪消息数据写入到地址A,
-将地址A中的IS_END设置为1以准备通道关闭,
-通过向地址A写入一些东西来关闭通道。
17.根据权利要求16所述的方法,其中,除了TYPE和LEVEL之外的其他跟踪元数据被写入地址A。
18.根据权利要求16所述的方法,其中,如果所有通道被分配,则在地址A上返回空通道,所述空通道被忽略。
19.根据权利要求16所述的方法,其中,所述方法无条件地被执行,并且以恒定的执行时间来执行。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP19216688 | 2019-12-16 | ||
EP19216688.2 | 2019-12-16 | ||
PCT/EP2020/084687 WO2021122066A1 (en) | 2019-12-16 | 2020-12-04 | A trace handler module system and a method using said system |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114830103A true CN114830103A (zh) | 2022-07-29 |
Family
ID=73856526
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080083126.3A Pending CN114830103A (zh) | 2019-12-16 | 2020-12-04 | 跟踪处理程序模块系统和使用所述系统的方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114830103A (zh) |
WO (1) | WO2021122066A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115016998A (zh) * | 2022-08-08 | 2022-09-06 | 南京宏泰半导体科技有限公司 | 一种子模块自适配方法、装置、系统及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1130518A1 (en) * | 2000-01-31 | 2001-09-05 | Applied Microsystems Corporation | Software analysis system having an apparatus for selectively collecting analysis data from a target system executing software instrumented with tag statements and method for use thereof |
US6918065B1 (en) * | 1999-10-01 | 2005-07-12 | Hitachi, Ltd. | Method for compressing and decompressing trace information |
US20060256878A1 (en) * | 2005-05-13 | 2006-11-16 | Andre Szczepanek | Out of Order Message Completion Management |
CN102395949A (zh) * | 2009-05-05 | 2012-03-28 | 飞思卡尔半导体公司 | 用于调试的地址转换跟踪消息生成 |
US20150046617A1 (en) * | 2013-08-11 | 2015-02-12 | Qualcomm Incorporated | System and method for scalable trace unit timestamping |
-
2020
- 2020-12-04 WO PCT/EP2020/084687 patent/WO2021122066A1/en active Application Filing
- 2020-12-04 CN CN202080083126.3A patent/CN114830103A/zh active Pending
Patent Citations (5)
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 |
EP1130518A1 (en) * | 2000-01-31 | 2001-09-05 | Applied Microsystems Corporation | Software analysis system having an apparatus for selectively collecting analysis data from a target system executing software instrumented with tag statements and method for use thereof |
US20060256878A1 (en) * | 2005-05-13 | 2006-11-16 | Andre Szczepanek | Out of Order Message Completion Management |
CN102395949A (zh) * | 2009-05-05 | 2012-03-28 | 飞思卡尔半导体公司 | 用于调试的地址转换跟踪消息生成 |
US20150046617A1 (en) * | 2013-08-11 | 2015-02-12 | Qualcomm Incorporated | System and method for scalable trace unit timestamping |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115016998A (zh) * | 2022-08-08 | 2022-09-06 | 南京宏泰半导体科技有限公司 | 一种子模块自适配方法、装置、系统及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2021122066A1 (en) | 2021-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190108177A1 (en) | Method and Apparatus for Accelerated Format Translation of Data in a Delimited Data Format | |
US9483209B2 (en) | Interface system and method | |
US20170220655A1 (en) | Method and Apparatus for Accelerated Format Translation of Data in a Delimited Data Format | |
US7710969B2 (en) | Rapid I/O traffic system | |
US8677045B2 (en) | Transaction reordering system and method with protocol indifference | |
US8825922B2 (en) | Arrangement for processing trace data information, integrated circuits and a method for processing trace data information | |
US10778815B2 (en) | Methods and systems for parsing and executing instructions to retrieve data using autonomous memory | |
GB2404752A (en) | Data processing system trace bus | |
US10504492B2 (en) | Apparatus and methods for generating dynamic trace data on a GPU | |
CN101529404B (zh) | 用于时间戳消息的方法 | |
CN109977052B (zh) | 协议转换方法及应用该方法的系统、介质、芯片与电子设备 | |
CN114830103A (zh) | 跟踪处理程序模块系统和使用所述系统的方法 | |
CN109902000B (zh) | 变速多通道调试追踪系统、方法、设备及存储介质 | |
US20060282719A1 (en) | Unique Addressable Memory Data Path | |
US20060256877A1 (en) | Rapid I/O Compliant Message Mapper | |
CN114328747A (zh) | 数据同步方法、装置、计算机设备和介质 | |
TW202324103A (zh) | 收集用於除錯及分析之運行時間資訊 | |
CN112445743B (zh) | 一种去除毛刺的方法、装置及状态机 | |
CN114328350A (zh) | 一种基于axi总线的通讯方法、装置以及介质 | |
US20060268714A1 (en) | Rapid I/O Compliant Congestion Control | |
US20060256878A1 (en) | Out of Order Message Completion Management | |
US11704218B2 (en) | Information processing apparatus and information processing method to analyze a state of dynamic random access memory (DRAM) | |
CN116049089A (zh) | 基于fpga的数据处理方法、装置、计算机设备和存储介质 | |
CN114328323A (zh) | 一种数据中转单元及基于数据中转单元的数据传输方法 | |
US20060256876A1 (en) | Fast Decode of Pending Interrupts |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |