CN112131221A - 一种跟踪数据处理方法、装置、设备及存储介质 - Google Patents
一种跟踪数据处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112131221A CN112131221A CN202010992198.1A CN202010992198A CN112131221A CN 112131221 A CN112131221 A CN 112131221A CN 202010992198 A CN202010992198 A CN 202010992198A CN 112131221 A CN112131221 A CN 112131221A
- Authority
- CN
- China
- Prior art keywords
- data
- tracking data
- target tracking
- target
- original text
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种跟踪数据处理方法,该方法包括:获得目标功能模块发送到跟踪接口的目标跟踪数据;计算目标跟踪数据的目标哈希值;基于目标哈希值,确定哈希表中是否存在目标跟踪数据的重复数据;如果存在,则基于跟踪数据的顺序编号确定目标跟踪数据的原文替代数据,目标跟踪数据的原文替代数据的数据量小于目标跟踪数据的原文的数据量;将目标跟踪数据的原文替代数据替代目标跟踪数据的原文,发送给跟踪数据汇总模块。应用本申请所提供的技术方案,减少了跟踪数据的数据量,减轻了跟踪数据负载,减少了跟踪数据在片内传输中发生溢出和丢失风险。本申请还公开了一种跟踪数据处理装置、设备及存储介质,具有相应技术效果。
Description
技术领域
本申请涉及计算机应用技术领域,特别是涉及一种跟踪数据处理方法、装置、设备及存储介质。
背景技术
随着计算机技术的快速发展,应用需求越来越复杂,芯片的设计也更加复杂。如SoC(System on Chip,片上***)芯片,就是按照应用需求将一个完整的计算机***集成设计在一颗芯片之上,这种集成设计通常会包含多个功能模块,并使用片上互联网络连接所有功能模块进行数据传输。
为了能够观测到一些功能模块的运行状态以及在发生错误时进行分析和修复错误,通常会在一些关键功能模块和复杂功能模块的设计中添加跟踪接口,即Trace接口。每一个具备跟踪接口的功能模块可以将表示该功能模块运行状态的一些值或语句写入跟踪接口,形成跟踪数据,然后经过Trace片上互联网络发送给跟踪数据汇总模块进行汇总处理,最终将跟踪数据统一通过IO(Input/Output,输入/输出)接口发送至芯片外部,以供外部接收者接收和使用。如外部接收者可以通过分析接收到的跟踪数据来了解芯片内部各功能模块的工作状态,分析和排除***中的错误。
在芯片正常运行过程中,各个功能模块产生的跟踪数据的数据量较大,容易发生跟踪数据负载过大的问题,如果数据负载峰值超过跟踪数据传输带宽将导致出现跟踪数据在传输中发生溢出和丢失的风险。综上所述,如何对跟踪数据进行处理,减少跟踪数据的数据量,减轻跟踪数据负载,减少跟踪数据在传输中发生溢出和丢失风险,是目前本领域技术人员急需解决的技术问题。
发明内容
本申请的目的是提供一种跟踪数据处理方法、装置、设备及存储介质,以减少跟踪数据的数据量,减轻跟踪数据负载,减少跟踪数据在传输中发生溢出和丢失风险,使得跟踪数据能够得到有效利用。
为解决上述技术问题,本申请提供如下技术方案:
一种跟踪数据处理方法,包括:
获得目标功能模块发送到跟踪接口的目标跟踪数据;
计算所述目标跟踪数据的目标哈希值;
基于所述目标哈希值,确定哈希表中是否存在所述目标跟踪数据的重复数据;
如果所述哈希表中存在所述目标跟踪数据的重复数据,则基于所述目标跟踪数据的顺序编号和所述目标跟踪数据的重复数据的顺序编号,确定所述目标跟踪数据的原文替代数据,所述目标跟踪数据的原文替代数据的数据量小于所述目标跟踪数据的原文的数据量;
将所述目标跟踪数据的原文替代数据替代所述目标跟踪数据的原文,发送给跟踪数据汇总模块,以使所述跟踪数据汇总模块汇总多路跟踪数据后,发送至芯片外部。
在本申请的一种具体实施方式中,所述哈希表的每一行保存两个元素:跟踪数据的顺序编号和跟踪数据的原文;所述基于所述目标哈希值,确定哈希表中是否存在所述目标跟踪数据的重复数据,包括:
根据所述目标哈希值和哈希表的总行数,确定所述目标跟踪数据在所述哈希表中的待保存位置;
读取所述哈希表中所述待保存位置的内容;
如果读取的内容有效,则将读取到的已有跟踪数据的原文与所述目标跟踪数据的原文进行比较;
如果相同,则确定所述哈希表中存在所述目标跟踪数据的重复数据;
如果不相同,或者读取的内容无效,则确定所述哈希表中不存在所述目标跟踪数据的重复数据。
在本申请的一种具体实施方式中,还包括:
如果所述哈希表中存在所述目标跟踪数据的重复数据,则使用所述目标跟踪数据的顺序编号替换所述哈希表中所述目标跟踪数据的重复数据的顺序编号;
如果所述哈希表中不存在所述目标跟踪数据的重复数据,则在所述哈希表的所述待保存位置记录所述目标跟踪数据的顺序编号和原文。
在本申请的一种具体实施方式中,所述基于所述目标跟踪数据的顺序编号和所述目标跟踪数据的重复数据的顺序编号,确定所述目标跟踪数据的原文替代数据,包括:
获得所述哈希表中所述目标跟踪数据的重复数据的顺序编号;
确定所述目标跟踪数据的顺序编号与所述目标跟踪数据的重复数据的顺序编号的编号偏移量;
将所述编号偏移量确定为所述目标跟踪数据的原文替代数据。
在本申请的一种具体实施方式中,还包括:
如果所述哈希表中不存在所述目标跟踪数据的重复数据,则直接将所述目标跟踪数据的原文发送给所述跟踪数据汇总模块。
在本申请的一种具体实施方式中,还包括:
如果所述哈希表中存在所述目标跟踪数据的重复数据,则在将所述目标跟踪数据的原文替代数据替代所述目标跟踪数据的原文,发送给跟踪数据汇总模块的同时,输出已替换标志,以在使用所述目标跟踪数据时基于所述已替换标志确定所述目标跟踪数据的原文已被替代;
如果所述哈希表中不存在所述目标跟踪数据的重复数据,则在将所述目标跟踪数据的原文发送给所述跟踪数据汇总模块的同时,输出未替换标志,以在使用所述目标跟踪数据时基于所述未替换标志确定所述目标跟踪数据的原文未被替代。
在本申请的一种具体实施方式中,在确定哈希表中是否存在所述目标跟踪数据的重复数据之前,还包括:
确定所述目标跟踪数据的顺序编号是否为0;
如果是,则清空所述哈希表。
一种跟踪数据处理装置,包括:
跟踪数据获得单元,用于获得目标功能模块发送到跟踪接口的目标跟踪数据;
哈希值计算单元,用于计算所述目标跟踪数据的目标哈希值;
重复数据判定单元,用于基于所述目标哈希值,确定哈希表中是否存在所述目标跟踪数据的重复数据;
替代数据确定单元,用于如果所述哈希表中存在所述目标跟踪数据的重复数据,则基于所述目标跟踪数据的顺序编号和所述目标跟踪数据的重复数据的顺序编号,确定所述目标跟踪数据的原文替代数据,所述目标跟踪数据的原文替代数据的数据量小于所述目标跟踪数据的原文的数据量;
数据发送单元,用于将所述目标跟踪数据的原文替代数据替代所述目标跟踪数据的原文,发送给跟踪数据汇总模块,以使所述跟踪数据汇总模块汇总多路跟踪数据后,发送至芯片外部。
一种跟踪数据处理设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述任一项所述跟踪数据处理方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述跟踪数据处理方法的步骤。
应用本申请实施例所提供的技术方案,获得目标功能模块发送到跟踪接口的目标跟踪数据后,计算目标跟踪数据的目标哈希值,基于目标哈希值,在确定哈希表中存在目标跟踪数据的重复数据的情况下,基于目标跟踪数据的顺序编号和其重复数据的顺序编号,确定目标跟踪数据的原文替代数据,使用原文替代数据替代原文后,将目标跟踪数据发送给跟踪数据汇总模块。在生成跟踪数据的接口处,也就是源头处对跟踪数据进行重复判定,可以更好利用单个功能模块的跟踪数据所具备周期重复的特征,对存在重复数据的跟踪数据的原文使用数据量较小的数据替代,减少了跟踪数据的数据量,减轻了跟踪数据负载,减少了跟踪数据在片内传输中发生溢出和丢失风险,使得跟踪数据能够得到有效利用,使得跟踪功能更加稳定。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为相关技术中SoC芯片的结构示意图;
图2为本申请实施例中SoC芯片的结构示意图;
图3为本申请实施例中一种跟踪数据处理方法的实施流程图;
图4为本申请实施例中使用跟踪数据时对跟踪数据进行恢复的示意图;
图5为本申请实施例中跟踪数据处理过程示意图;
图6为本申请实施例中一种跟踪数据处理装置的结构示意图;
图7为本申请实施例中一种跟踪数据处理设备的结构示意图。
具体实施方式
本申请的核心是提供一种跟踪数据处理方法。为便于理解,在对本申请实施例的技术方案进行描述之前,先对相关技术中的SoC芯片的结构进行说明。
如图1所示,该芯片集成了CPU(central processing unit,中央处理器)、DMAC(Direct Memory Access Control,直接内存存取控制,SoC芯片设计中常见功能模块)、PCIe(Peripheral Component Interconnect Express,一种高速串行计算机扩展总线标准,SoC芯片设计中常见高速IO接口功能模块)、算法模块A、算法模块B、LMU(Local MemoryUnit,本地内存单元,SoC芯片设计中常见功能模块)、ROM(Read Only Memory,只读内存,SoC芯片设计中常见功能模块)、DDR(Double Data Rate Synchronous Dynamic RandomAccess Memory双倍速率同步动态随机存储器,SoC芯片设计中常见功能模块)、I2C(InterIntegrated Circuit,一种二线同步串行总线,SoC芯片设计中常见低速IO接口功能模块)、SCU(System Control Unit,***控制单元,SoC芯片设计中常见功能模块)和MON(Monitor Signal Unit,信号观测单元,SoC芯片设计中常见的调试功能模块)等功能模块,这些功能模块经过NoC(Network on Chip,片上互联网络,一种在SoC芯片设计中用于将各个功能模块连接起来的互联网络模块)相连接。其中,在关键功能模块和复杂功能模块,如CPU、DMAC、算法模块A、算法模块B和MON中添加了跟踪接口,即Trace接口(Trace Port)。跟踪数据从跟踪接口传输至Trace片上互联网络(TNoC),再传输到跟踪数据汇总模块。跟踪数据汇总模块将来自不同功能模块的多路跟踪数据汇总处理后,形成一路数据,经过IO接口,如PCIe发送至芯片外部。
其中,图1中AXI全称为Advanced eXtensible Interface,一种超高性能芯片内部总线,AHB全称为Advanced High Performance Bus,一种高性能芯片内部总线,APB全称为Advanced Peripheral Bus,一种***总线。
这种设计思路,存在着背景技术中提到的“各个功能模块产生的跟踪数据的数据量较大,容易发生跟踪数据负载过大的问题,从而导致跟踪数据在传输中发生溢出和丢失的风险较大”等问题。
鉴于此,本申请实施例在芯片设计中,在跟踪接口处增加跟踪数据处理模块,如图2所示,这样可以使得相应功能模块发送到跟踪接口,即Trace接口的跟踪数据,先经过跟踪数据处理模块的处理,再发送给跟踪数据汇总模块。经过跟踪数据处理模块的处理后,可以减小跟踪数据负载,从而可以减少Trace片上互联网络到跟踪数据汇总模块之间发生跟踪数据溢出和丢失的风险。
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参见图3所示,为本申请实施例所提供的一种跟踪数据处理方法的实施流程图,该方法可以包括以下步骤:
S310:获得目标功能模块发送到跟踪接口的目标跟踪数据。
在本申请实施例中,每个具备跟踪接口的功能模块的跟踪接口处均设置有跟踪数据处理模块。每个跟踪数据处理模块可以对其相应功能模块发送到跟踪接口的跟踪数据进行处理后再发送给跟踪数据汇总模块。本申请实施例所提供的方法可以应用于任意一个跟踪数据处理模块。
跟踪数据处理模块可以获得目标功能模块发送到跟踪接口的目标跟踪数据。该跟踪数据处理模块与该目标功能模块相对应,为在该目标功能模块的跟踪接口处设置的跟踪数据处理模块。目标跟踪数据为目标功能模块发送到跟踪接口的任意一条跟踪数据。
对于一个功能模块而言,该功能模块发送到跟踪接口的每一条跟踪数据均包括顺序编号和原文。
S320:计算目标跟踪数据的目标哈希值。
获得目标功能模块发送到跟踪接口的目标跟踪数据后,可以基于目标跟踪数据的原文,计算目标跟踪数据的哈希值,计算得到的哈希值即为目标跟踪模块的目标哈希值。
跟踪数据在多数情况下是字符串形式,可以选择开源的ELF hash哈希算法来对跟踪数据进行哈希计算,如可以对输入字符串中每个字符进行运算后,哈希的值即为输入字符串对应的哈希值。
S330:基于目标哈希值,确定哈希表中是否存在目标跟踪数据的重复数据。
计算得到目标跟踪数据的目标哈希值后,可以基于目标哈希值,确定哈希表中是否存在目标跟踪数据的重复数据。
通常情况下,一个功能模块在工作中往往是周期性的执行某些任务,比如一个数据压缩模块在工作中,会不断地重复四个步骤:(1))读取待压缩数据、(2)读取压缩配置、(3)生成压缩数据、(4)写回已压缩数据。因此,该功能模块产生的跟踪数据,也会具有周期性重复的特征,在哈希表中可能存在重复数据。
在本申请实施例中,哈希表可以为一个具有两列和若干行的表格状存储空间,其行数可以根据某一特定功能模块的跟踪数据的数据量来确定,跟踪数据的数据量越大,行数越多,哈希表行数越多,对数据负载的降低效果越好。如确定总行数为500。哈希表的两列分别记录跟踪数据的顺序编号和原文。
由于跟踪数据的原文的长度并不确定,所以在实际应用中,可以在哈希表中只保存跟踪数据原文的前若干个字符,如前50个字符。哈希表中保存的原文的字符数越多,可以更加有效地防止哈希碰撞发生。但字符数越多,需要的存储空间越多,相应的芯片成本越高。所以,需要保存的字符数可以根据特定功能模块的跟踪数据的数据量的大小确定,跟踪数据的数据量越大,应该保存更多的字符数。
跟踪数据的顺序编号,是跟踪数据处理模块对接收到的每一条跟踪数据按照顺序进行的编号,从零开始,最大值可以为2的32次方,顺序编号计数到最大值后,重新从零开始计数编号。
在本申请的一种具体实施方式中,哈希表的每一行保存两个元素:跟踪数据的顺序编号和跟踪数据的原文,该步骤可以包括以下步骤:
步骤一:根据目标哈希值和哈希表的总行数,确定目标跟踪数据在哈希表中的待保存位置;
步骤二:读取哈希表中待保存位置的内容;
步骤三:如果读取的内容有效,则将读取到的已有跟踪数据的原文与目标跟踪数据的原文进行比较;
步骤四:如果相同,则确定哈希表中存在目标跟踪数据的重复数据;
步骤五:如果不相同,或者读取的内容无效,则确定哈希表中不存在目标跟踪数据的重复数据。
为便于描述,将上述步骤结合起来进行说明。
获得目标功能模块发送到跟踪接口的目标跟踪数据,并计算目标跟踪数据的目标哈希值后,可以根据目标哈希值和哈希表的总行数,确定目标跟踪数据在哈希表中的待保存位置。
在本申请实施例中,每一条跟踪数据在哈希表中具有相应的保存位置。可以通过该条跟踪数据的哈希值与哈希表的总行数进行求模运算来确定。例如,计算某一条跟踪数据的哈希值为123654,哈希表的总行数为500,则根据123654MOD 500=154,可以确定该条跟踪数据应该保存在哈希表的第154行。
确定目标跟踪数据在哈希表中的待保存位置后,进一步可以读取哈希表中该待保存位置的内容。如果哈希表中该待保存位置处已经记录有跟踪数据,则可以认为读取的内容是有效的,如果哈希表中该待保存位置处没有记录跟踪数据,则可以认为读取的内容是无效的。
如果读取的内容有效,则可以将读取到的已有跟踪数据的原文与目标跟踪数据的原文进行比较。二者相同,则比较命中,可以确定哈希表中存在目标跟踪数据的重复数据,即该待保存位置处的跟踪数据即为目标跟踪数据的重复数据。
如果二者不相同,或者读取的内容无效,则比较未命中,可以确定哈希表中不存在目标跟踪数据的重复数据。
这里进行比较的原文可以是哈希表中保存的原文的前若干个字符。
同时使用哈希值和跟踪数据的原文确定哈希表查找命中和不命中,相比于单独使用哈希值查找重复数据,可以更好地避免发生哈希碰撞的情况。
S340:如果哈希表中存在目标跟踪数据的重复数据,则基于目标跟踪数据的顺序编号和目标跟踪数据的重复数据的顺序编号,确定目标跟踪数据的原文替代数据。
目标跟踪数据的原文替代数据的数据量小于目标跟踪数据的原文的数据量。
在确定哈希表中存在目标跟踪数据的重复数据后,可以基于目标跟踪数据的顺序编号和目标跟踪数据的重复数据的顺序编号,确定目标跟踪数据的原文替代数据。目标跟踪数据的原文替代数据的数据量小于目标跟踪数据的原文的数据量。
在本申请的一种具体实施方式中,可以先获得哈希表中目标跟踪数据的重复数据的顺序编号,然后确定目标跟踪数据的顺序编号与目标跟踪数据的重复数据的顺序编号的编号偏移量,再将编号偏移量确定为目标跟踪数据的原文替代数据。
哈希表中每一行记录一条跟踪数据的顺序编号和原文。在确定哈希表中存在目标跟踪数据的重复数据后,可以先获得该重复数据的顺序编号,然后确定出目标跟踪数据的顺序编号与目标跟踪数据的重复数据的顺序编号的编号偏移量。具体的,可以使用目标跟踪数据的重复数据的顺序编号减去目标跟踪数据的顺序编号,得到编号偏移量。如目标跟踪数据的重复数据的顺序编号为A,目标跟踪数据的顺序编号为B,则B-A可以得到编号偏移量。得到编号偏移量后,将该编号偏移量确定为目标跟踪数据的原文替代数据。这样原文替代数据的数据量将小于原文的数据量。
使用编号偏移量作为原文替代数据替代原文,最多占用4字节空间,可以更加节省存储空间。
S350:将目标跟踪数据的原文替代数据替代目标跟踪数据的原文,发送给跟踪数据汇总模块,以使跟踪数据汇总模块汇总多路跟踪数据后,发送至芯片外部。
在哈希表中存在目标跟踪数据的重复数据的情况下,确定出目标跟踪数据的原文替代数据后,可以将该原文替代数据替代目标跟踪数据的原文,将替换原文后的目标跟踪数据发送给跟踪数据汇总模块。
如果哈希表中不存在目标跟踪数据的重复数据,则直接将目标跟踪数据的原文发送给跟踪数据汇总模块。
每个跟踪接口处设置的跟踪数据处理模块均可执行以上操作,对相应功能模块发送到跟踪接口的跟踪数据进行处理后,再发送给跟踪数据汇总模块,这样跟踪数据汇总模块接收到的多路跟踪数据均是在存在其重复数据的情况下经过相应处理的数据,减少了从跟踪接口到跟踪数据汇总模块之间传输的跟踪数据的数据量,减轻了跟踪数据负载。跟踪数据汇总模块汇总多路跟踪数据后,将其发送至芯片外部,以供外部接收者接收使用。
跟踪数据汇总模块还可以在对汇总后的数据进行压缩处理后再发送至芯片外部,以进一步减少跟踪数据负载。
应用本申请实施例所提供的方法,获得目标功能模块发送到跟踪接口的目标跟踪数据后,计算目标跟踪数据的目标哈希值,基于目标哈希值,在确定哈希表中存在目标跟踪数据的重复数据的情况下,基于目标跟踪数据的顺序编号和其重复数据的顺序编号,确定目标跟踪数据的原文替代数据,使用原文替代数据替代原文后,将目标跟踪数据发送给跟踪数据汇总模块。在生成跟踪数据的接口处,也就是源头处对跟踪数据进行重复判定,可以更好利用单个功能模块的跟踪数据所具备周期重复的特征,对存在重复数据的跟踪数据的原文使用数据量较小的数据替代,减少了跟踪数据的数据量,减轻了跟踪数据负载,减少了跟踪数据在片内传输中发生溢出和丢失风险,使得跟踪数据能够得到有效利用,使得跟踪功能更加稳定。
在本申请的一个实施例中,该方法还可以包括以下步骤:
如果哈希表中存在目标跟踪数据的重复数据,则使用目标跟踪数据的顺序编号替换哈希表中目标跟踪数据的重复数据的顺序编号;
如果哈希表中不存在目标跟踪数据的重复数据,则在哈希表的待保存位置记录目标跟踪数据的顺序编号和原文。
在本申请实施例中,可以基于获得的目标跟踪数据对哈希表进行更新,以便后续可以基于更新后的哈希表进行重复数据的准确判定。
如果哈希表中存在目标跟踪数据的重复数据,可以使用目标跟踪数据的顺序编号替换哈希表中目标跟踪数据的重复数据的顺序编号,记录的原文保持不变。如果哈希表中不存在目标跟踪数据的重复数据,则在哈希表的待保存位置记录目标跟踪数据的顺序编号和原文。这里的原文可以是原文的前若干个字符。
在本申请的一个实施例中,该方法还可以包括以下步骤:
如果哈希表中存在目标跟踪数据的重复数据,则在将目标跟踪数据的原文替代数据替代目标跟踪数据的原文,发送给跟踪数据汇总模块的同时,输出已替换标志,以在使用目标跟踪数据时基于已替换标志确定目标跟踪数据的原文已被替代;
如果哈希表中不存在目标跟踪数据的重复数据,则在将目标跟踪数据的原文发送给跟踪数据汇总模块的同时,输出未替换标志,以在使用目标跟踪数据时基于未替换标志确定目标跟踪数据的原文未被替代。
在本申请实施例中,如果哈希表中存在目标跟踪数据的重复数据,则在将目标跟踪数据的原文替代数据替代目标跟踪数据的原文,发送给跟踪数据汇总模块的同时,可以输出已替换标志,表示目标跟踪数据的原文已被替代。这样在需要使用目标跟踪数据时,可以基于已替换标志确定目标跟踪数据的原文已被替代。同样,如果哈希表中不存在目标跟踪数据的重复数据,则在将目标跟踪数据的原文发送给跟踪数据汇总模块的同时,可以输出未替换标志,表示目标跟踪数据的原文未被替代。这样,在需要使用目标跟踪数据时基于未替换标志可以确定目标跟踪数据的原文未被替代。
经过跟踪接口处设置的跟踪数据处理模块处理的跟踪数据,连同已替换标志/未替换标志,被传输到跟踪数据汇总模块。跟踪数据汇总模块需要将从不同功能模块输入的跟踪数据,连同已替换标志/未替换标志,一起进行数据流处理和编码,生成最终的跟踪数据流送至芯片外部供外部接收者使用。
外部接收者在使用跟踪数据时,可以先对跟踪数据逐条进行处理和恢复。外部接收者接收到的每条跟踪数据具有相应的处理顺序编号。对于某一条跟踪数据,如果其对应已替换标志1,则表明该条跟踪数据中所保存的是编号偏移量而非跟踪数据的原文。在这种情况下,可以先读取编号偏移量,再向后回退到编号偏移量所指示的处理顺序编号,读取该处理顺序编号对应的跟踪数据的原文,利用其恢复当前跟踪数据的原文。如果其对应未替换标志0,则表明该条跟踪数据中所保存的是跟踪数据的原文而非编号偏移量,可以直接使用该条跟踪数据。如图4所示,假设处理顺序编号L+200的跟踪数据,即Trace数据对应已替换标志1,则可以确定该条跟踪数据中保存的是编号偏移量198,通过(L+200)-198=L+2,可以利用处理顺序编号L+2的跟踪数据的原文恢复L+200的跟踪数据的原文,即将L+200的跟踪数据的原文恢复为XXXX2。
如图5所示,为对跟踪数据进行处理的总体流程示意图。跟踪数据处理模块获得一条跟踪数据,即Trace数据,对其进行哈希计算,得到哈希值,基于哈希值,进行查表比较,确定哈希表中是否存在该跟踪数据的重复数据,如果存在,则进行偏移替代处理,即使用基于顺序编号确定出的原文替代数据替代原文,得到哈希替换后Trace数据,如果不存在,则不进行偏移替代处理,在向跟踪数据汇总模块发送跟踪数据时,可以同时输出已替换标志或未替换标志。在进行查表比较后,可以根据查表结果更新哈希表。哈希表可以为N行2列的格式。
在本申请的一个实施例中,在确定哈希表中是否存在目标跟踪数据的重复数据之前,该方法还可以包括以下步骤:
确定目标跟踪数据的顺序编号是否为0;
如果是,则清空哈希表。
在本申请实施例中,在获得目标跟踪数据之后,可以先确定目标跟踪数据的顺序编号是否为0,如果为0,则表明目标跟踪数据为新一轮首个数据,在这种情况下,可以清空哈希表。这样在计算目标跟踪数据的目标哈希值后,将确定哈希表中不存在目标跟踪数据的重复数据,可以直接将目标跟踪数据发送给跟踪数据汇总模块,并在哈希表中相应位置记录该目标跟踪数据。如果不为0,则在计算目标跟踪数据的目标哈希值,并将确定哈希表中存在目标跟踪数据的重复数据后,可以确定目标跟踪数据的原文替代数据,并进行原文替代后,发送给跟踪数据汇总模块。
需要说明的是,本申请中的跟踪数据处理模块,是基于跟踪数据的原文的哈希值,在哈希表中查找重复数据,从而完成偏移替代。因此,哈希表中保存的内容,以及如何动态更新哈希表的内容,对最终降低跟踪数据负载的效果有直接影响。在本申请实施例中,哈希表初始内容为空,在芯片运行过程中,会不断地使用每一条当前跟踪数据来更新哈希表内容。在对哈希表内容进行更新时,还可以结合具体应用场景做进一步优化,比如某些功能模块其跟踪数据中有若干条特定跟踪数据出现频率较高,则可以考虑将这些出现频率较高的跟踪数据的原文固定保留在哈希表中,而不对其做动态更新,从而提高查找重复数据时的命中率,改善降低跟踪数据负载的效果。
相应于上面的方法实施例,本申请实施例还提供了一种跟踪数据处理装置,下文描述的跟踪数据处理装置与上文描述的跟踪数据处理方法可相互对应参照。
参见图6所示,该装置可以包括以下模块:
跟踪数据获得单元610,用于获得目标功能模块发送到跟踪接口的目标跟踪数据;
哈希值计算单元620,用于计算目标跟踪数据的目标哈希值;
重复数据判定单元630,用于基于目标哈希值,确定哈希表中是否存在目标跟踪数据的重复数据;
替代数据确定单元640,用于如果哈希表中存在目标跟踪数据的重复数据,则基于目标跟踪数据的顺序编号和目标跟踪数据的重复数据的顺序编号,确定目标跟踪数据的原文替代数据,目标跟踪数据的原文替代数据的数据量小于目标跟踪数据的原文的数据量;
数据发送单元650,用于将目标跟踪数据的原文替代数据替代目标跟踪数据的原文,发送给跟踪数据汇总模块,以使跟踪数据汇总模块汇总多路跟踪数据后,发送至芯片外部。
应用本申请实施例所提供的装置,获得目标功能模块发送到跟踪接口的目标跟踪数据后,计算目标跟踪数据的目标哈希值,基于目标哈希值,在确定哈希表中存在目标跟踪数据的重复数据的情况下,基于目标跟踪数据的顺序编号和其重复数据的顺序编号,确定目标跟踪数据的原文替代数据,使用原文替代数据替代原文后,将目标跟踪数据发送给跟踪数据汇总模块。在生成跟踪数据的接口处,也就是源头处对跟踪数据进行重复判定,可以更好利用单个功能模块的跟踪数据所具备周期重复的特征,对存在重复数据的跟踪数据的原文使用数据量较小的数据替代,减少了跟踪数据的数据量,减轻了跟踪数据负载,减少了跟踪数据在片内传输中发生溢出和丢失风险,使得跟踪数据能够得到有效利用,使得跟踪功能更加稳定。
在本申请的一种具体实施方式中,哈希表的每一行保存两个元素:跟踪数据的顺序编号和跟踪数据的原文;重复数据判定单元630,用于:
根据目标哈希值和哈希表的总行数,确定目标跟踪数据在哈希表中的待保存位置;
读取哈希表中待保存位置的内容;
如果读取的内容有效,则将读取到的已有跟踪数据的原文与目标跟踪数据的原文进行比较;
如果相同,则确定哈希表中存在目标跟踪数据的重复数据;
如果不相同,或者读取的内容无效,则确定哈希表中不存在目标跟踪数据的重复数据。
在本申请的一种具体实施方式中,还包括哈希表更新单元,用于:
如果哈希表中存在目标跟踪数据的重复数据,则使用目标跟踪数据的顺序编号替换哈希表中目标跟踪数据的重复数据的顺序编号;
如果哈希表中不存在目标跟踪数据的重复数据,则在哈希表的待保存位置记录目标跟踪数据的顺序编号和原文。
在本申请的一种具体实施方式中,替代数据确定单元640,用于:
获得哈希表中目标跟踪数据的重复数据的顺序编号;
确定目标跟踪数据的顺序编号与目标跟踪数据的重复数据的顺序编号的编号偏移量;
将编号偏移量确定为目标跟踪数据的原文替代数据。
在本申请的一种具体实施方式中,数据发送单元650,还用于:
如果哈希表中不存在目标跟踪数据的重复数据,则直接将目标跟踪数据的原文发送给跟踪数据汇总模块。
在本申请的一种具体实施方式中,还包括替换标志输出单元,用于:
如果哈希表中存在目标跟踪数据的重复数据,则在将目标跟踪数据的原文替代数据替代目标跟踪数据的原文,发送给跟踪数据汇总模块的同时,输出已替换标志,以在使用目标跟踪数据时基于已替换标志确定目标跟踪数据的原文已被替代;
如果哈希表中不存在目标跟踪数据的重复数据,则在将目标跟踪数据的原文发送给跟踪数据汇总模块的同时,输出未替换标志,以在使用目标跟踪数据时基于未替换标志确定目标跟踪数据的原文未被替代。
在本申请的一种具体实施方式中,还包括哈希表清空单元,用于:
在确定哈希表中是否存在目标跟踪数据的重复数据之前,确定目标跟踪数据的顺序编号是否为0;
如果是,则清空哈希表。
相应于上面的方法实施例,本申请实施例还提供了一种跟踪数据处理设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现上述跟踪数据处理方法的步骤。
如图7所示,为跟踪数据处理设备的组成结构示意图,跟踪数据处理设备可以包括:处理器10、存储器11、通信接口12和通信总线13。处理器10、存储器11、通信接口12均通过通信总线13完成相互间的通信。
在本申请实施例中,处理器10可以为中央处理器(Central Processing Unit,CPU)、特定应用集成电路、数字信号处理器、现场可编程门阵列或者其他可编程逻辑器件等。
处理器10可以调用存储器11中存储的程序,具体的,处理器10可以执行跟踪数据处理方法的实施例中的操作。
存储器11中用于存放一个或者一个以上程序,程序可以包括程序代码,程序代码包括计算机操作指令,在本申请实施例中,存储器11中至少存储有用于实现以下功能的程序:
获得目标功能模块发送到跟踪接口的目标跟踪数据;
计算目标跟踪数据的目标哈希值;
基于目标哈希值,确定哈希表中是否存在目标跟踪数据的重复数据;
如果哈希表中存在目标跟踪数据的重复数据,则基于目标跟踪数据的顺序编号和目标跟踪数据的重复数据的顺序编号,确定目标跟踪数据的原文替代数据,目标跟踪数据的原文替代数据的数据量小于目标跟踪数据的原文的数据量;
将目标跟踪数据的原文替代数据替代目标跟踪数据的原文,发送给跟踪数据汇总模块,以使跟踪数据汇总模块汇总多路跟踪数据后,发送至芯片外部。
在一种可能的实现方式中,存储器11可包括存储程序区和存储数据区,其中,存储程序区可存储操作***,以及至少一个功能(比如哈希计算功能、查询表功能)所需的应用程序等;存储数据区可存储使用过程中所创建的数据,如跟踪数据、哈希表记录数据等。
此外,存储器11可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件或其他易失性固态存储器件。
通信接口13可以为通信模块的接口,用于与其他设备或者***连接。
当然,需要说明的是,图7所示的结构并不构成对本申请实施例中跟踪数据处理设备的限定,在实际应用中跟踪数据处理设备可以包括比图7所示的更多或更少的部件,或者组合某些部件。
相应于上面的方法实施例,本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述跟踪数据处理方法的步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
Claims (10)
1.一种跟踪数据处理方法,其特征在于,包括:
获得目标功能模块发送到跟踪接口的目标跟踪数据;
计算所述目标跟踪数据的目标哈希值;
基于所述目标哈希值,确定哈希表中是否存在所述目标跟踪数据的重复数据;
如果所述哈希表中存在所述目标跟踪数据的重复数据,则基于所述目标跟踪数据的顺序编号和所述目标跟踪数据的重复数据的顺序编号,确定所述目标跟踪数据的原文替代数据,所述目标跟踪数据的原文替代数据的数据量小于所述目标跟踪数据的原文的数据量;
将所述目标跟踪数据的原文替代数据替代所述目标跟踪数据的原文,发送给跟踪数据汇总模块,以使所述跟踪数据汇总模块汇总多路跟踪数据后,发送至芯片外部。
2.根据权利要求1所述的方法,其特征在于,所述哈希表的每一行保存两个元素:跟踪数据的顺序编号和跟踪数据的原文;所述基于所述目标哈希值,确定哈希表中是否存在所述目标跟踪数据的重复数据,包括:
根据所述目标哈希值和哈希表的总行数,确定所述目标跟踪数据在所述哈希表中的待保存位置;
读取所述哈希表中所述待保存位置的内容;
如果读取的内容有效,则将读取到的已有跟踪数据的原文与所述目标跟踪数据的原文进行比较;
如果相同,则确定所述哈希表中存在所述目标跟踪数据的重复数据;
如果不相同,或者读取的内容无效,则确定所述哈希表中不存在所述目标跟踪数据的重复数据。
3.根据权利要求2所述的方法,其特征在于,还包括:
如果所述哈希表中存在所述目标跟踪数据的重复数据,则使用所述目标跟踪数据的顺序编号替换所述哈希表中所述目标跟踪数据的重复数据的顺序编号;
如果所述哈希表中不存在所述目标跟踪数据的重复数据,则在所述哈希表的所述待保存位置记录所述目标跟踪数据的顺序编号和原文。
4.根据权利要求1所述的方法,其特征在于,所述基于所述目标跟踪数据的顺序编号和所述目标跟踪数据的重复数据的顺序编号,确定所述目标跟踪数据的原文替代数据,包括:
获得所述哈希表中所述目标跟踪数据的重复数据的顺序编号;
确定所述目标跟踪数据的顺序编号与所述目标跟踪数据的重复数据的顺序编号的编号偏移量;
将所述编号偏移量确定为所述目标跟踪数据的原文替代数据。
5.根据权利要求1所述的方法,其特征在于,还包括:
如果所述哈希表中不存在所述目标跟踪数据的重复数据,则直接将所述目标跟踪数据的原文发送给所述跟踪数据汇总模块。
6.根据权利要求5所述的方法,其特征在于,还包括:
如果所述哈希表中存在所述目标跟踪数据的重复数据,则在将所述目标跟踪数据的原文替代数据替代所述目标跟踪数据的原文,发送给跟踪数据汇总模块的同时,输出已替换标志,以在使用所述目标跟踪数据时基于所述已替换标志确定所述目标跟踪数据的原文已被替代;
如果所述哈希表中不存在所述目标跟踪数据的重复数据,则在将所述目标跟踪数据的原文发送给所述跟踪数据汇总模块的同时,输出未替换标志,以在使用所述目标跟踪数据时基于所述未替换标志确定所述目标跟踪数据的原文未被替代。
7.根据权利要求1至6之中任一项所述的方法,其特征在于,在确定哈希表中是否存在所述目标跟踪数据的重复数据之前,还包括:
确定所述目标跟踪数据的顺序编号是否为0;
如果是,则清空所述哈希表。
8.一种跟踪数据处理装置,其特征在于,包括:
跟踪数据获得单元,用于获得目标功能模块发送到跟踪接口的目标跟踪数据;
哈希值计算单元,用于计算所述目标跟踪数据的目标哈希值;
重复数据判定单元,用于基于所述目标哈希值,确定哈希表中是否存在所述目标跟踪数据的重复数据;
替代数据确定单元,用于如果所述哈希表中存在所述目标跟踪数据的重复数据,则基于所述目标跟踪数据的顺序编号和所述目标跟踪数据的重复数据的顺序编号,确定所述目标跟踪数据的原文替代数据,所述目标跟踪数据的原文替代数据的数据量小于所述目标跟踪数据的原文的数据量;
数据发送单元,用于将所述目标跟踪数据的原文替代数据替代所述目标跟踪数据的原文,发送给跟踪数据汇总模块,以使所述跟踪数据汇总模块汇总多路跟踪数据后,发送至芯片外部。
9.一种跟踪数据处理设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述跟踪数据处理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述跟踪数据处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010992198.1A CN112131221A (zh) | 2020-09-18 | 2020-09-18 | 一种跟踪数据处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010992198.1A CN112131221A (zh) | 2020-09-18 | 2020-09-18 | 一种跟踪数据处理方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112131221A true CN112131221A (zh) | 2020-12-25 |
Family
ID=73841687
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010992198.1A Withdrawn CN112131221A (zh) | 2020-09-18 | 2020-09-18 | 一种跟踪数据处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112131221A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006121215A (ja) * | 2004-10-19 | 2006-05-11 | Fuji Electric Holdings Co Ltd | 鍵交換方法、及び、鍵交換処理装置 |
US20100211987A1 (en) * | 2009-02-19 | 2010-08-19 | Pixel8 Networks, Inc. | Video deduplication, cache, and virtual private content delivery network |
CN103095843A (zh) * | 2013-01-28 | 2013-05-08 | 刘海峰 | 一种基于版本矢量的数据备份方法及客户端 |
CN103116615A (zh) * | 2013-01-28 | 2013-05-22 | 袁华强 | 一种基于版本矢量的数据索引方法及服务器 |
CN103118104A (zh) * | 2013-01-28 | 2013-05-22 | 刘海峰 | 一种基于版本矢量的数据还原方法及服务器 |
CN103403717A (zh) * | 2013-01-09 | 2013-11-20 | 华为技术有限公司 | 一种数据处理方法及装置 |
CN103902410A (zh) * | 2014-03-28 | 2014-07-02 | 西北工业大学 | 云存储***的数据备份加速方法 |
CN106503250A (zh) * | 2016-11-10 | 2017-03-15 | 广东浪潮大数据研究有限公司 | 一种日志跟踪方法和装置 |
-
2020
- 2020-09-18 CN CN202010992198.1A patent/CN112131221A/zh not_active Withdrawn
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006121215A (ja) * | 2004-10-19 | 2006-05-11 | Fuji Electric Holdings Co Ltd | 鍵交換方法、及び、鍵交換処理装置 |
US20100211987A1 (en) * | 2009-02-19 | 2010-08-19 | Pixel8 Networks, Inc. | Video deduplication, cache, and virtual private content delivery network |
CN103403717A (zh) * | 2013-01-09 | 2013-11-20 | 华为技术有限公司 | 一种数据处理方法及装置 |
WO2014107845A1 (zh) * | 2013-01-09 | 2014-07-17 | 华为技术有限公司 | 一种数据处理方法及装置 |
CN103095843A (zh) * | 2013-01-28 | 2013-05-08 | 刘海峰 | 一种基于版本矢量的数据备份方法及客户端 |
CN103116615A (zh) * | 2013-01-28 | 2013-05-22 | 袁华强 | 一种基于版本矢量的数据索引方法及服务器 |
CN103118104A (zh) * | 2013-01-28 | 2013-05-22 | 刘海峰 | 一种基于版本矢量的数据还原方法及服务器 |
CN103902410A (zh) * | 2014-03-28 | 2014-07-02 | 西北工业大学 | 云存储***的数据备份加速方法 |
CN106503250A (zh) * | 2016-11-10 | 2017-03-15 | 广东浪潮大数据研究有限公司 | 一种日志跟踪方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA1191273A (en) | Memory module selection and reconfiguration apparatus in a data processing system | |
CA2433750A1 (en) | Automatic collection of trace detail and history data | |
CN107204875B (zh) | 数据上报链路监测方法、装置、电子设备及存储介质 | |
CN101478481B (zh) | 缓存管理方法及装置、数据转发*** | |
CN112052010B (zh) | 一种icd字节序自动转换方法 | |
CN116089343A (zh) | 一种基于axi的数据存储方法、装置、存储介质及设备 | |
CN109918221B (zh) | 一种硬盘报错解析方法、***、终端及存储介质 | |
CN102193787B (zh) | 一种序列化和反序列化的方法、装置及*** | |
CN110209605A (zh) | Pcie总线网卡的寄存器读写方法和计算设备 | |
CN108170571B (zh) | 一种芯片追踪调试装置及方法 | |
CN112131221A (zh) | 一种跟踪数据处理方法、装置、设备及存储介质 | |
US8751990B2 (en) | System for determining median values of video data | |
US11847037B2 (en) | Device and method for high performance memory debug record generation and management | |
US9948587B2 (en) | Data deduplication at the network interfaces | |
CN116126763A (zh) | 总线互联***、数据处理方法、装置、电子设备及介质 | |
CN112312396B (zh) | 一种NoC追踪数据的生成方法及相关装置 | |
CN113268395A (zh) | 业务数据的处理方法、处理装置及终端 | |
JP2019125360A (ja) | データ処理システム及びその動作方法 | |
US20060256877A1 (en) | Rapid I/O Compliant Message Mapper | |
US20060282719A1 (en) | Unique Addressable Memory Data Path | |
CN112035391B (zh) | 用于串行通信的接口装置、方法、电子设备 | |
CN113360498A (zh) | 流数据转存处理方法、装置及服务器 | |
CN111857604A (zh) | 分组管理映射反查表快速重建方法、装置、设备及介质 | |
CN112132583A (zh) | 区块链的交易处理方法、装置、电子设备及可读存储介质 | |
CN109408431B (zh) | 半导体装置和用于剖析半导体装置中的事件的方法 |
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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20201225 |