CN117724664A - 数据写入方法、装置、设备及存储介质 - Google Patents
数据写入方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117724664A CN117724664A CN202410179450.5A CN202410179450A CN117724664A CN 117724664 A CN117724664 A CN 117724664A CN 202410179450 A CN202410179450 A CN 202410179450A CN 117724664 A CN117724664 A CN 117724664A
- Authority
- CN
- China
- Prior art keywords
- trace
- interface
- data stream
- external storage
- writing
- 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
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000004590 computer program Methods 0.000 claims description 26
- 238000012545 processing Methods 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 13
- 230000007547 defect Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请实施例中提供了一种数据写入方法、装置、设备及存储介质,涉及计算机技术领域,该方法包括:获取待处理trace信息;所述待处理trace信息的输入接口为第一接口;所述待处理trace信息包括多个内核的trace数据流;将所述待处理trace信息的所述第一接口转化为第二接口;所述第二接口为符合外部存储区间内数据写入规则的接口;通过所述第二接口将所述trace数据流写入外部存储区间。该方案能够精准地将第一接口转化为第二接口,并通过第二接口将trace数据流写入外部存储区间,其可操作性强,提高了数据灵活性和可扩展性。
Description
技术领域
本申请涉及计算机技术领域,具体地,涉及一种数据写入方法、装置、设备及存储介质。
背景技术
随着计算机设备的快速发展,中央处理器(CPU,Central Processing Unit)作为一台计算机设备的运算和控制核心,其功能主要是完成对计算机指令的执行和对数据的处理。其中,在复杂的系统中,运行在CPU中的程序由于各种因素有时候不会按照预期的情况运行,因此需要用户使用调试器来调试程序,将程序的执行可视化和透明化,以修正语法错误或逻辑错误,etrace就是将运行在CPU上的程序中的分支、异常和终端输出到CPU外部进行分析。为了提高程序运行的正确率,如何通过etrace操作对程序进行写入分析显得尤为重要。
目前,相关技术中的etraceh操作的实现过程是先对获取的trace信息进行编码得到编码结果,然后对编码结果进行解码处理并转化成nexus接口输出到CPU外部。然而该方案中操作较为复杂,导致实现难度大,且处理的灵活性和可扩展性较差。
发明内容
本申请实施例中提供了一种数据写入方法、装置、设备及存储介质。
本申请实施例的第一个方面,提供了一种数据写入方法,包括:
获取待处理trace信息;所述待处理trace信息的输入接口为第一接口;所述待处理trace信息包括多个内核的trace数据流;
将所述待处理trace信息的所述第一接口转化为第二接口;所述第二接口为符合外部存储区间内数据写入规则的接口;
通过所述第二接口将所述trace数据流写入外部存储区间。
在本申请一个可选的实施例中,将所述待处理trace信息的所述第一接口转化为第二接口之前,所述方法还包括:
获取配置信息;所述配置信息包括写入所述外部存储区间的trace数据流的内核数量、起始地址、所述外部存储区间的区间大小、开关响应模式、写入模式、紧凑模式和更新数据流状态信息;
根据所述配置信息执行配置操作。
在本申请一个可选的实施例中,所述开关响应模式包括使能模式和关闭模式,所述方法还包括:
当处于所述使能模式时,控制Etrace模块工作并执行写入操作,以将所述trace数据流写入外部存储区间;
当处于所述关闭模式时,控制所述Etrace模块停止工作并执行停止写入操作。
在本申请一个可选的实施例中,将所述trace数据流写入外部存储区间,包括:
当处于写入模式时,对于任一内核,若当前trace数据流写满所述外部存储区间,获取所述起始地址并从所述起始地址写入下一trace数据流,直至所述内核中trace数据流发送结束或处于关闭模式;
当处于非写入模式时,对于任一内核,若当前trace数据流写满所述外部存储区间后,停止向所述外部存储区间写入下一trace数据流。
在本申请一个可选的实施例中,将所述trace数据流写入外部存储区间,包括:
当处于紧凑模式时,对所述trace数据流进行解析,查找并丢弃无效数据,得到有效数据,将所述有效数据写入所述外部存储区间;
当处于非紧凑模式时,将所有trace数据流写入所述外部存储区间。
在本申请一个可选的实施例中,所述数据流状态信息包括活动状态和运行超时状态;所述方法还包括:
对于任一内核,当接收到trace数据流时,将所述trace数据流所属内核的内核标识对应的状态寄存器更新为活动状态;
当超过预设阈值时间未接收到trace数据流时,将所述trace数据流所属内核的内核标识对应的状态寄存器切换所述活动状态为所述运行超时状态。
在本申请一个可选的实施例中,所述数据流状态信息还包括正在运行状态和运行超限状态,所述方法还包括:
对于任一内核,当未接收到trace数据流且Etrace模块中的数据流均写入到所述外部存储区间时,将所述trace数据流所属内核的内核标识对应的状态寄存器切换所述正在运行状态;
对于任一内核,当所述Etrace模块内的fifo被写满且所述Etrace模块存在缺陷时,将所述trace数据流所属内核的内核标识对应的状态寄存器更新为运行超限状态。
本申请实施例的第二个方面,提供了一种数据写入装置,包括:
获取模块,用于获取待处理trace信息;所述待处理trace信息的输入接口为第一接口;所述待处理trace信息包括多个内核的trace数据流;
处理模块,用于将所述待处理trace信息的所述第一接口转化为第二接口;所述第二接口为符合外部存储区间内数据写入规则的接口;
写入模块,用于通过所述第二接口将所述trace数据流写入外部存储区间。
本申请实施例的第三个方面,提供了一种计算机设备,包括:包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现如上任一项方法的步骤。
本申请实施例的第四个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,计算机程序被处理器执行时实现如上任一项的方法的步骤。
本申请实施例中通过获取待处理trace信息,该待处理trace信息的输入接口为第一接口,待处理trace信息包括多个内核的trace数据流,将待处理trace信息的第一接口转化为第二接口,其第二接口为符合外部存储区间内数据写入规则的接口,通过第二接口将trace数据流写入外部存储区间。本申请中的技术方案一方面,通过获取待处理trace信息和对应的第一接口,能够为后续接口转化为数据指导信息。另一方面,将待处理trace信息的第一接口转化为第二接口,从而便于将接口转化为符合外部存储区间内数据写入规则的第二接口,进而精准地通过第二接口将trace数据流写入外部存储区间,其可操作性强,提高了数据灵活性和可扩展性。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请一个实施例提供的数据写入方法的应用场景示意图;
图2为本申请一个实施例提供的数据写入方法的流程图;
图3为本申请一个实施例提供的根据配置信息执行配置操作方法的流程图;
图4为本申请一个实施例提供的数据写入方法的结构示意图;
图5为本申请一个实施例提供的数据写入装置结构示意图。
具体实施方式
在实现本申请的过程中,发明人发现,目前相关技术中的etraceh操作实现难度大,且处理的灵活性和可扩展性较差。
针对上述问题,本申请实施例中提供了数据写入方法,通过获取待处理trace信息和对应的第一接口,能够为后续接口转化为数据指导信息,并将待处理trace信息的第一接口转化为第二接口,从而便于将接口转化为符合外部存储区间内数据写入规则的第二接口,进而精准地通过第二接口将trace数据流写入外部存储区间,提高了数据灵活性和可扩展性。
本申请实施例中的方案可以采用各种计算机语言实现,例如,面向对象的程序设计语言Java和直译式脚本语言JavaScript等。
为了使本申请实施例中的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
以下对本申请实施例提供的数据写入方法的应用环境作简要说明:
请参见图1,本申请实施例提供的一例计算机设备的结构示意图。该计算机设备可以是终端。如图1所示,该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质例如可以为磁盘。非易失性存储介质中存储有文件(可以为待处理的文件,也可以为处理后的文件)、操作系统和计算机程序等。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据写入方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
请参见图2,以下实施例以上述计算机设备为执行主体,将本申请实施例提供的数据写入方法应用于上述计算机设备来进行数据迁移为例进行具体说明。本申请实施例提供的数据写入方法包括如下步骤201-步骤203:
步骤201、获取待处理trace信息;待处理trace信息的输入接口为第一接口;待处理trace信息包括多个内核的trace数据流。
具体地,上述待处理trace信息可以是需要写入CPU外部存储区域中的数据,该第一接口为获取待处理trace信息的接口,例如可以是atb输入接口,该atb输入接口可以是通过atb总线进行数据传输,通过atb总线进行数据传输可以是采用atb协议,该atb协议定义了跟踪信息(trace信息)如何在跟踪系统的组件之间传输,atb是跟踪组件用来通过CoreSight系统传递与格式无关的跟踪数据的通用总线。该待处理trace信息可以是运行在CPU上的程序中的分支、异常和中断输出。
需要说明的是,该待处理trace信息包括多个内核(core)的trace数据流,每个内核包括内核标识,该内核标识用于唯一表示内核的身份信息,每个内核的trace数据流类型可以相同,也可以不同,每个内核的trace数据流大小可以相同,也可以不同。
可选的,该待处理trace信息可以是通过第一接口获取的,也可以是其他设备导入的,还可以是通过数据库或区块链上获取的,本实施例对此不作限定。
本实施例中通过获取待处理trace信息和对应的第一接口,能够为后续接口的转化提供良好的数据指导信息。
步骤202、将待处理trace信息的第一接口转化为第二接口;第二接口为符合外部存储区间内数据写入规则的接口。
可以理解的是,第二接口为写入外部存储区间的接口,例如可以是AXI接口。该AXI接口可以是通过AXI总线进行数据传输,通过AXI总线进行数据传输可以采用AXI接口协议。
在确定出待处理trace信息的输入接口为第一接口时,例如为atb输入接口,然后可以确定出符合外部存储区间的数据写入规则的第二接口,例如可以为AXI接口,并将atb输入接口转化为AXI接口。
步骤203、通过第二接口将trace数据流写入外部存储区间。
其中,在通过第二接口将数据写入外部存储区间时,是采用第二接口对应的第二接口协议,例如当第二接口为AXI接口时,则对应的第二接口协议为AXI接口协议。外部存储区间是指位于CPU外部的存储空间。
通过第二接口将trace数据流写入外部存储区间的过程中,可以是先确定trace数据流的大小和所属内核(core)的标识,并基于该race数据流的大小和所属内核(core)的标识,将待处理trace信息中的每个trace数据流写入外部存储区间。
本申请实施例中通过获取待处理trace信息,该待处理trace信息的输入接口为第一接口,待处理trace信息包括多个内核的trace数据流,将待处理trace信息的第一接口转化为第二接口,其第二接口为符合外部存储区间内数据写入规则的接口,通过第二接口将trace数据流写入外部存储区间。本申请中的技术方案一方面,通过获取待处理trace信息和对应的第一接口,能够为后续接口转化为数据指导信息。另一方面,将待处理trace信息的第一接口(atb接口)转化为第二接口(AXI接口),从而便于将接口转化为符合外部存储区间内数据写入规则的接口,进而精准地通过第二接口将trace数据流写入外部存储区间,提高了数据灵活性和可扩展性。
在本申请一个可选实施例中,本申请还提供了一种执行配置操作的具体实现方式,请参见图3所示,该方法包括:
步骤301、获取配置信息;配置信息包括写入外部存储区间的trace数据流的内核数量、起始地址、外部存储区间的区间大小、开关响应模式、写入模式、紧凑模式和更新数据流状态信息。
步骤302、根据配置信息执行配置操作。
需要说明的是,上述配置信息可以是对Etrace模块配置的操作信息,写入外部存储区间的trace数据流的内核数量可以是根据外部存储区间的区间大小自定义设置,例如支持32个core(内核)的trace数据流的输入。起始地址是通过第二接口(AXI接口)向外部存储区间写数据的地址,即写起始地址,其写起始地址的位宽最大为64-bit。外部存储区间的区间位宽为32-bit。
上述开关响应模式用于表征数据写入的关闭和开启工作对应的规则,该开关响应模式包括wrap模式和非wrap模式,软件可以开启该Etrace模块让其进行工作,即处于工作状态;当执行关闭模式时,软件可以关闭该Etrace模块让其停止工作,即处于停止工作状态。
上述写入模式用于表征向外部存储区间中写入数据时对应的规则。该写入模式也可以称为wrap模式,当处于写入模式时,如果trace数据流写满了预先配置的外部存储区间的区间大小之后,会继续从起始地址开始继续写trace数据流,直到软件关闭该Etrace模块或者是core(内核)不发trace数据流了。还可以配置有非写入模式,也称为非wrap模式,其中,在处于非wrap模式时,当trace数据流写满我们配置的外部存储区间的区间大小之后就会停止向外部存储区间写trace数据流。
上述紧凑模式用于表征向外部存储区间进行数据传输时对应的规则。该紧凑模式为对trace数据流中的无效的数据进行丢弃,只将有效的数据存进fifo中,然后再进行整合通过AXI输出到外部。还可以配置有非紧凑模式,在非紧凑模式下,会直接将原始的trace数据流中的所有数据通过第二接口(AXI接口输出至外部存储空间中。上述数据流状态信息用于表征数据流在数据传输时所处的状态,更新数据流状态信息可以是根据数据流当前的数据状态进行更新。
其中,上述配置信息可以是用户预先根据实际需求自定义设置的,例如可以是通过外部设备获取的,也可以是区块链或数据库中获取的。可选的,当还有其他需求时,可以设置其他配置信息。在获取到配置信息之后,可以根据配置信息执行配置操作,以根据该配置信息通过第二接口将trace数据流写入外部存储区间。
本实施例中通过获取配置信息,且配置信息包括写入外部存储区间的trace数据流的内核数量、起始地址、外部存储区间的区间大小、开关响应模式、写入模式、紧凑模式和更新数据流状态信息,并根据配置信息执行配置操作,便于后续按照配置信息执行数据写入外部存储区间的操作,提高了数据灵活性和可扩展性。
在本申请一个可选实施例中,上述开关响应模式包括使能模式和关闭模式,该方法包括:
当处于使能模式时,控制Etrace模块工作并执行写入操作,以将trace数据流写入外部存储区间;当处于关闭模式时,控制Etrace模块停止工作并执行停止写入操作。
需要说明的是,上述使能模式和关闭模式为预先配置的,计算机设备可以实时检测是否触发开关响应模式,当检测到触发使能模式时,软件可以开启该Etrace模块以让其工作,并执行写入操作,以将所race数据流写入外部存储区间;当检测到触发关闭模式时,软件可以关闭该Etrace模块让其停止工作,并控制执行停止写入操作。
本实施例中通过当处于使能模式时,控制Etrace模块工作并执行写入操作,以将trace数据流写入外部存储区间,并且当处于关闭模式时,控制Etrace模块停止工作并执行停止写入操作,能够便于灵活地控制数据写入操作的启动和停止。
在本申请一个可选实施例中,本申请还提供了将trace数据流写入外部存储区间的具体实现方式,该方法包括:
当处于写入模式时,对于任一内核,若当前trace数据流写满外部存储区间,获取起始地址并从起始地址写入下一trace数据流,直至内核中trace数据流发送结束或处于关闭模式;当处于非写入模式时,对于任一内核,若当前trace数据流写满外部存储区间后,停止向外部存储区间写入下一trace数据流。
需要说明的是,上述写入模式(wrap模式)和非写入模式(非wrap模式)可以为预先配置的,计算机设备可以实时检测是否触发写入模式。当检测到触发写入模式时,对于任一内核(core),在当前trace数据流写入外部存储区间的过程中,可以判断外部存储区间的区间大小是否写满,具体可以是将已写入外部存储区间的数据流的位宽大小和整个外部存储区间的区间位宽进行比较,当一致时,表示trace数据流已经写满外部存储区间;当已写入外部存储区间的数据流的位宽大小小于整个外部存储区间的区间位宽时,表示trace数据流未写满外部存储区间。
若当前trace数据流写满外部存储区间,获取预先配置的写起始地址并从该写起始地址开始继续写入下一trace数据流,直至内核中trace数据流发送结束或处于关闭模式,即直至检测到触发了关闭模式时停止该写入操作,或者当前内核(core)不发trace数据流时停止该写入操作。
当检测到触发非写入模式时,若当前trace数据流写满外部存储区间后,停止向外部存储区间写入下一trace数据流。其中,当前trace数据流和下一trace数据流的数据流类型可以相同,也可以不同。
本实施例中在将trace数据流写入外部存储区间的过程中,可以判断是否处于写入模式,当处于写入模式时,若当前trace数据流写满外部存储区间,获取起始地址并从起始地址写入下一trace数据流,直至内核中trace数据流发送结束或处于关闭模式;当处于非写入模式时,若当前trace数据流写满外部存储区间后,停止向外部存储区间写入下一trace数据流,能够根据区间大小灵活地控制外部存储区间写入的数据量,防止外部存储区间写满时数据流进入,提高了数据流写入的可扩展性。
在本申请一个可选实施例中,本申请还提供了将trace数据流写入外部存储区间的具体实现方式,该方法包括:
当处于紧凑模式时,对trace数据流进行解析,查找并丢弃无效数据,得到有效数据,将有效数据写入外部存储区间;当处于非紧凑模式时,将所有trace数据流写入外部存储区间。
需要说明的是,上述紧凑模式和非紧凑模式可以为预先设置的,计算机设备可以实时是否触发紧凑模式,当检测到触发紧凑模式时,可以对获取的trace数据流进行解析,得到无效数据,例如可以通过检测trace数据流的字段,然后当trace数据流的字段符合无效数据的字段规则时,将其判定为无效数据;当trace数据流的字段符合有效数据的字段规则时,将其判定为有效数据。在确定出无效数据后,可以丢弃无效数据,将有效数据写入fifio中,然后对该有效数据进行整合处理并通过第二接口(AXI接口)输出至外部存储区间。
当检测到触发非紧凑模式且获取到race数据流时,不会对race数据流进行压缩处理,会将race数据流中的所有数据通过第二接口(AXI接口)输出至外部存储区间。
本实施例中通过将trace数据流写入外部存储区间,当处于紧凑模式时,对trace数据流进行解析,查找并丢弃无效数据,得到有效数据,并将有效数据写入外部存储区间;当处于非紧凑模式时,将所有trace数据流写入外部存储区间,能够精准地确定有效数据,以便于精准地将有效数据写入外部存储区间,提高了数据写入的有效度和准确度。
在本申请一个可选实施例中,上述数据流状态信息包括活动状态(active状态)和运行超时状态(timeout状态)。本申请还提供了一种具体实现方式,该方法还包括:
对于任一内核,当接收到trace数据流时,将trace数据流所属内核的内核标识对应的状态寄存器更新为活动状态(active状态);当超过预设阈值时间未接收到trace数据流时,将trace数据流所属内核的内核标识对应的状态寄存器切换活动状态为运行超时状态。
需要说明的是,在Etrace方案中,每一个内核(core)的trace数据流都对应有自己的一些状态寄存器,该状态寄存器用于表征当前时刻这个内核(core)的trace数据流的状态,可以包括活动状态(active状态)和运行超时状态(timeout状态)。
具体地,每个trace数据流是内核(core)发送的,该内核(core)具有内核标识,当接收到trace数据流时,确定该数据流对应的内核标识,然后将trace数据流所属内核的内核标识对应的状态寄存器更新为活动状态(active状态);当内核(core)有MAXTIME的周期数没有接收到trace数据流之后,那么这个内核(core)的置为运行超时状态(timeout状态),同时active状态就会拉下去。这里的MAXTIME的值是预设阈值时间,是根据实际需求自定义设置的。
本实施例中通过当接收到trace数据流时,将trace数据流所属内核的内核标识对应的状态寄存器更新为活动状态;并当超过预设阈值时间未接收到trace数据流时,将trace数据流所属内核的内核标识对应的状态寄存器切换活动状态,更新为运行超时状态,能够实时更新状态寄存器的数据状态,便于精准地获取状态寄存器的数据状态,为后续数据处理提供良好的数据指导信息。
在本申请一个可选实施例中,该数据流状态信息还包括正在运行状态(ongoing状态)和运行超限状态(overflow状态),该方法还包括:对于任一内核,当未接收到trace数据流且Etrace模块中的数据流均写入到外部存储区间时,将trace数据流所属内核的内核标识对应的状态寄存器切换正在运行状态;对于任一内核,当Etrace模块内的fifo被写满且Etrace模块存在缺陷时,将trace数据流所属内核的内核标识对应的状态寄存器更新为运行超限状态,提高了数据流状态信息的准确度。
需要说明的是,当内核(core)未发送trace数据流,并且Etrace模块内部fifo中的数据流均写入到所述外部存储区间时,将状态寄存器切换正在运行状态,即将(ongoing状态)拉下去。当Etrace模块内部fifo被写满且Etrace模块没有被软件disable掉,那么这个时候overflow状态就会设置(set)起来。这些状态信息都是软件可读的,用户可以实时读取状态寄存器的数据流状态信息,用于帮助软件更好地处理trace信息。
示例性地,请参见图4所示,图4为本申请实施例提供的数据写入方法的结构示意图。图中core0-core31为该模块最大能支持的32个risc-v cpu内核,上述Etrace模块内部可以包括trace_encoder、cdc_fifo、round eobin arbitrition 、multiport fifo、streamenginee、reg单元,第一接口为atb接口,第二接口为axi接口。其中,trace_encoder单元用于将从内核(core)输出的trace数据流转化为atb data数据,每一个core对应一个trace_encoder。cdc_fifo单元是一个异步cdc_fifo,输入时钟为内核(core)时钟,输出时钟为atb2axi的时钟,这个单元的作用就是将core 时钟域的数据接收并存储,然后输出到atb2axi的时钟域。round eobin arbitrition单元为轮询仲裁单元,用于将多个内核(core)的atb data进行仲裁,选择出一个atb data输出到下面的单元。multiport fifo单元是一个多口输入输出的fifo单元,比如说有8个口,每个口为8bit,那么我们可以使用这8个口进行输入和输出,我么也可以使用其中的某几个口进行输入输出。这样做是为了适配我们的压缩模式(compact mode),在后续过程中可以使用压缩模式,节省空间,不用每次都要8个口都要写入数据,也可以写3个口、4个口、5个口类似这样的。stream enginee单元用于将atb data转化为标准的axi接口输出出去。
reg单元用于为配置寄存器和状态寄存器,可以使用该单元配置上述实施例中的一些参数,例如该单元的开关响应模式、起始地址、写入外部存储区间的区间大小、是否为紧凑模式等,还包括状态寄存器,可以让我们的软件更方便地使用,上述寄存器,例如可以是每一个内核(core)对应一个的状态寄存器,也可以是多个内核(core)对应一个的状态寄存器,例如可以是对整个单元全局配置寄存器,该状态寄存器与内核(core)的个数无关。
具体地,当获取待处理trace信息后,该待处理trace信息包括由多个内核(core)输出的trace数据流,例如可以为32个内核,分别为core0、core1、core2、...core31,然后通过trace_encoder单元将从内核(core)输出的trace数据流转化为atb data数据,每一个core对应一个trace_encoder单元,例如将core0输出的core0_trace数据流通过core0_trace_encoder单元转化为core0_atb数据,将core31输出的core31_trace数据流通过core31_trace_encoder单元转化为core31_atb数据。然后通过cdc_fifo单元将每个core时钟域的atb数据输出为atb2axi的时钟域的数据,且每一个core对应一个cdc_fifo单元,例如对于core0,将core0_atb数据通过core0_cdc_fifo单元进行时钟域转化为atb2axi的时钟域;对于core31,将core31_atb数据通过core31_cdc_fifo单元进行时钟域转化为atb2axi的时钟域。
然后将各个内核(core)的atb data数据通过round eobin arbitrition单元进行仲裁,选择出一个atb data数据输出到下面的multiport fifo单元,并将该atb data数据通过multiport fifo单元中的多个口或一个口输出至stream enginee单元,使得streamenginee将atb data数据转换为标准的axi接口输出至外部存储区间。
本实施例中当未接收到trace数据流且Etrace模块中的数据流均写入到外部存储区间时,将trace数据流所属内核的内核标识对应的状态寄存器切换正在运行状态,并当Etrace模块内的fifo被写满且Etrace模块存在缺陷时,将trace数据流所属内核的内核标识对应的状态寄存器更新为运行超限状态,能够灵活地更新数据流状态信息,其可操作性强,提高了数据灵活性和可扩展性。
应该理解的是,虽然流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
请参见图5,本申请一个实施例提供了一种数据写入装置500,包括:
获取模块510,用于获取待处理trace信息;待处理trace信息的输入接口为第一接口;待处理trace信息包括多个内核的trace数据流;
处理模块520,用于将待处理trace信息的第一接口转化为第二接口;第二接口为符合外部存储区间内数据写入规则的接口;
写入模块530,用于通过第二接口将trace数据流写入外部存储区间。
在本申请一个可选实施例中,装置,还用于:
获取配置信息;配置信息包括写入外部存储区间的trace数据流的内核数量、起始地址、外部存储区间的区间大小、开关响应模式、写入模式、紧凑模式和更新数据流状态信息;
根据配置信息执行配置操作。
在本申请一个可选实施例中,装置,还用于:
当处于使能模式时,控制Etrace模块工作并执行写入操作,以将trace数据流写入外部存储区间;
当处于关闭模式时,控制Etrace模块停止工作并执行停止写入操作。
在本申请一个可选实施例中,写入模块530,具体用于:
当处于写入模式时,对于任一内核,若当前trace数据流写满外部存储区间,获取起始地址并从起始地址写入下一trace数据流,直至内核中trace数据流发送结束或处于关闭模式;
当处于非写入模式时,对于任一内核,若当前trace数据流写满外部存储区间后,停止向外部存储区间写入下一trace数据流。
在本申请一个可选实施例中,写入模块530,具体用于:
当处于紧凑模式时,对trace数据流进行解析,查找并丢弃无效数据,得到有效数据,将有效数据写入外部存储区间;
当处于非紧凑模式时,将所有trace数据流写入外部存储区间。
在本申请一个可选实施例中,装置,还用于:
对于任一内核,当接收到trace数据流时,将trace数据流所属内核的内核标识对应的状态寄存器更新为活动状态;
当超过预设阈值时间未接收到trace数据流时,将trace数据流所属内核的内核标识对应的状态寄存器切换活动状态为运行超时状态。
在本申请一个可选实施例中,装置,还用于:
对于任一内核,当未接收到trace数据流且Etrace模块中的数据流均写入到外部存储区间时,将trace数据流所属内核的内核标识对应的状态寄存器切换正在运行状态;
对于任一内核,当Etrace模块内的fifo被写满且Etrace模块存在缺陷时,将trace数据流所属内核的内核标识对应的状态寄存器更新为运行超限状态。
关于上述数据写入装置的具体限定可以参见上文中对于数据写入方法的限定,在此不再赘述。上述数据写入装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备的内部结构图可以如图1所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现如上的一种数据写入方法。包括:包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现如上数据写入方法中的任一步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时可以实现如上数据写入方法中的任一步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种数据写入方法,其特征在于,包括:
获取待处理trace信息;所述待处理trace信息的输入接口为第一接口;所述待处理trace信息包括多个内核的trace数据流;
将所述待处理trace信息的所述第一接口转化为第二接口;所述第二接口为符合外部存储区间内数据写入规则的接口;
通过所述第二接口将所述trace数据流写入外部存储区间。
2.根据权利要求1所述的方法,其特征在于,将所述待处理trace信息的所述第一接口转化为第二接口之前,所述方法还包括:
获取配置信息;所述配置信息包括写入所述外部存储区间的trace数据流的内核数量、起始地址、所述外部存储区间的区间大小、开关响应模式、写入模式、紧凑模式和更新数据流状态信息;
根据所述配置信息执行配置操作。
3.根据权利要求2所述的方法,其特征在于,所述开关响应模式包括使能模式和关闭模式,所述方法还包括:
当处于所述使能模式时,控制Etrace模块工作并执行写入操作,以将所述trace数据流写入外部存储区间;
当处于所述关闭模式时,控制所述Etrace模块停止工作并执行停止写入操作。
4.根据权利要求2所述的方法,其特征在于,将所述trace数据流写入外部存储区间,包括:
当处于写入模式时,对于任一内核,若当前trace数据流写满所述外部存储区间,获取所述起始地址并从所述起始地址写入下一trace数据流,直至所述内核中trace数据流发送结束或处于关闭模式;
当处于非写入模式时,对于任一内核,若当前trace数据流写满所述外部存储区间后,停止向所述外部存储区间写入下一trace数据流。
5.根据权利要求2所述的方法,其特征在于,将所述trace数据流写入外部存储区间,包括:
当处于紧凑模式时,对所述trace数据流进行解析,查找并丢弃无效数据,得到有效数据,将所述有效数据写入所述外部存储区间;
当处于非紧凑模式时,将所有trace数据流写入所述外部存储区间。
6.根据权利要求2所述的方法,其特征在于,所述数据流状态信息包括活动状态和运行超时状态;所述方法还包括:
对于任一内核,当接收到trace数据流时,将所述trace数据流所属内核的内核标识对应的状态寄存器更新为活动状态;
当超过预设阈值时间未接收到trace数据流时,将所述trace数据流所属内核的内核标识对应的状态寄存器切换所述活动状态为所述运行超时状态。
7.根据权利要求6所述的方法,其特征在于,所述数据流状态信息还包括正在运行状态和运行超限状态,所述方法还包括:
对于任一内核,当未接收到trace数据流且Etrace模块中的数据流均写入到所述外部存储区间时,将所述trace数据流所属内核的内核标识对应的状态寄存器切换所述正在运行状态;
对于任一内核,当所述Etrace模块内的fifo被写满且所述Etrace模块存在缺陷时,将所述trace数据流所属内核的内核标识对应的状态寄存器更新为运行超限状态。
8.一种数据写入装置,其特征在于,包括:
获取模块,用于获取待处理trace信息;所述待处理trace信息的输入接口为第一接口;所述待处理trace信息包括多个内核的trace数据流;
处理模块,用于将所述待处理trace信息的所述第一接口转化为第二接口;所述第二接口为符合外部存储区间内数据写入规则的接口;
写入模块,用于通过所述第二接口将所述trace数据流写入外部存储区间。
9.一种计算机设备,包括:包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410179450.5A CN117724664A (zh) | 2024-02-18 | 2024-02-18 | 数据写入方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410179450.5A CN117724664A (zh) | 2024-02-18 | 2024-02-18 | 数据写入方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117724664A true CN117724664A (zh) | 2024-03-19 |
Family
ID=90209278
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410179450.5A Pending CN117724664A (zh) | 2024-02-18 | 2024-02-18 | 数据写入方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117724664A (zh) |
Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5327393A (en) * | 1992-05-27 | 1994-07-05 | Nec Corporation | External memory interface circuit capable of carrying out initialization of external memory with a reduced initialization time duration |
US20050160205A1 (en) * | 2004-01-16 | 2005-07-21 | International Business Machines Corporation | Method, apparatus and program storage device for managing dataflow through a processing system |
WO2005112040A1 (en) * | 2004-05-11 | 2005-11-24 | Qualcomm Incorporated | Compression of data traces for an integrated circuit with multiple memories |
US20070220361A1 (en) * | 2006-02-03 | 2007-09-20 | International Business Machines Corporation | Method and apparatus for guaranteeing memory bandwidth for trace data |
US7340591B1 (en) * | 2004-10-28 | 2008-03-04 | Altera Corporation | Providing parallel operand functions using register file and extra path storage |
US20080155351A1 (en) * | 2006-10-03 | 2008-06-26 | Broadcom Corporation | Method for combining multiple trace sources in an embedded system |
US20080195793A1 (en) * | 2007-02-09 | 2008-08-14 | Texas Instruments Deutschland Gmbh | Microcontroller with memory trace module |
US20130061003A1 (en) * | 2011-09-07 | 2013-03-07 | Timothy J. Millet | Coherence switch for i/o traffic |
JP2013054622A (ja) * | 2011-09-06 | 2013-03-21 | Hitachi Ltd | 記憶方法および記憶装置 |
US20130191693A1 (en) * | 2012-01-23 | 2013-07-25 | Diarmuid P. Ross | Trace Queue for Peripheral Component |
US20160070634A1 (en) * | 2014-09-05 | 2016-03-10 | Qualcomm Incorporated | System and method for system-on-a-chip subsystem trace extraction and analysis |
US9959194B1 (en) * | 2017-03-08 | 2018-05-01 | Microsoft Technology Licensing, Llc | Indexing a trace by insertion of memory snapshots for replay responsiveness |
US20190317770A1 (en) * | 2018-04-16 | 2019-10-17 | SimpleMachines Inc. | Systems and methods for stream-dataflow acceleration |
CN112381220A (zh) * | 2020-12-08 | 2021-02-19 | 厦门壹普智慧科技有限公司 | 一种神经网络张量处理器 |
CN113282560A (zh) * | 2021-06-09 | 2021-08-20 | 中国建设银行股份有限公司 | 一种快应用平台下的日志管理系统、方法及移动终端 |
WO2021190354A1 (zh) * | 2020-03-26 | 2021-09-30 | 华为技术有限公司 | 一种采集追踪trace调用链的方法和电子设备 |
CN113535612A (zh) * | 2020-04-20 | 2021-10-22 | 西部数据技术公司 | 动态存储器控制器及其使用方法 |
CN114595186A (zh) * | 2022-05-09 | 2022-06-07 | 深圳比特微电子科技有限公司 | 一种多核处理器的核间通信方法、通信装置 |
CN115146000A (zh) * | 2022-06-20 | 2022-10-04 | 彩讯科技股份有限公司 | 一种数据库数据同步方法、装置、电子设备及存储介质 |
WO2024006144A1 (en) * | 2022-06-28 | 2024-01-04 | Amazon Technologies, Inc. | Security subsystem for execution verification |
-
2024
- 2024-02-18 CN CN202410179450.5A patent/CN117724664A/zh active Pending
Patent Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5327393A (en) * | 1992-05-27 | 1994-07-05 | Nec Corporation | External memory interface circuit capable of carrying out initialization of external memory with a reduced initialization time duration |
US20050160205A1 (en) * | 2004-01-16 | 2005-07-21 | International Business Machines Corporation | Method, apparatus and program storage device for managing dataflow through a processing system |
WO2005112040A1 (en) * | 2004-05-11 | 2005-11-24 | Qualcomm Incorporated | Compression of data traces for an integrated circuit with multiple memories |
US7340591B1 (en) * | 2004-10-28 | 2008-03-04 | Altera Corporation | Providing parallel operand functions using register file and extra path storage |
US20070220361A1 (en) * | 2006-02-03 | 2007-09-20 | International Business Machines Corporation | Method and apparatus for guaranteeing memory bandwidth for trace data |
US20080155351A1 (en) * | 2006-10-03 | 2008-06-26 | Broadcom Corporation | Method for combining multiple trace sources in an embedded system |
US20080195793A1 (en) * | 2007-02-09 | 2008-08-14 | Texas Instruments Deutschland Gmbh | Microcontroller with memory trace module |
JP2013054622A (ja) * | 2011-09-06 | 2013-03-21 | Hitachi Ltd | 記憶方法および記憶装置 |
US20130061003A1 (en) * | 2011-09-07 | 2013-03-07 | Timothy J. Millet | Coherence switch for i/o traffic |
US20130191693A1 (en) * | 2012-01-23 | 2013-07-25 | Diarmuid P. Ross | Trace Queue for Peripheral Component |
US20160070634A1 (en) * | 2014-09-05 | 2016-03-10 | Qualcomm Incorporated | System and method for system-on-a-chip subsystem trace extraction and analysis |
US9959194B1 (en) * | 2017-03-08 | 2018-05-01 | Microsoft Technology Licensing, Llc | Indexing a trace by insertion of memory snapshots for replay responsiveness |
US20190317770A1 (en) * | 2018-04-16 | 2019-10-17 | SimpleMachines Inc. | Systems and methods for stream-dataflow acceleration |
WO2021190354A1 (zh) * | 2020-03-26 | 2021-09-30 | 华为技术有限公司 | 一种采集追踪trace调用链的方法和电子设备 |
CN113535612A (zh) * | 2020-04-20 | 2021-10-22 | 西部数据技术公司 | 动态存储器控制器及其使用方法 |
CN112381220A (zh) * | 2020-12-08 | 2021-02-19 | 厦门壹普智慧科技有限公司 | 一种神经网络张量处理器 |
CN113282560A (zh) * | 2021-06-09 | 2021-08-20 | 中国建设银行股份有限公司 | 一种快应用平台下的日志管理系统、方法及移动终端 |
CN114595186A (zh) * | 2022-05-09 | 2022-06-07 | 深圳比特微电子科技有限公司 | 一种多核处理器的核间通信方法、通信装置 |
CN115146000A (zh) * | 2022-06-20 | 2022-10-04 | 彩讯科技股份有限公司 | 一种数据库数据同步方法、装置、电子设备及存储介质 |
WO2024006144A1 (en) * | 2022-06-28 | 2024-01-04 | Amazon Technologies, Inc. | Security subsystem for execution verification |
Non-Patent Citations (2)
Title |
---|
陈国庆;张登福;寇明延;: "数字视频压缩的大容量记录系统设计", 单片机与嵌入式系统应用, no. 07, 1 July 2006 (2006-07-01) * |
陈辉;李远;: "基于USB2.0的数据采集卡", 自动化技术与应用, no. 06, 25 June 2008 (2008-06-25) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0241946B1 (en) | Information processing system | |
RU2585969C2 (ru) | Управление в режиме низких привилегий работой средства сбора сведений о ходе вычислений | |
US7533302B2 (en) | Trace and debug method and system for a processor | |
JP6153533B2 (ja) | ランタイム・インストルメンテーション指向サンプリング | |
JP6195572B2 (ja) | ランタイム計装制御の状況の決定のためのコンピュータ・プログラム、方法、およびシステム | |
JP2015515654A (ja) | プログラム・イベント記録イベントのランタイム計装イベントへの変換 | |
JP2015516601A (ja) | 被管理ランタイムのためのハードウェア・ベース・ランタイム計装機構 | |
US20140089737A1 (en) | Psmi using at-speed scan capture | |
JP6153534B2 (ja) | 命令オペレーション・コードによるランタイム計装間接サンプリング | |
CN113849433B (zh) | 一种总线控制器的执行方法、装置、总线控制器、计算机设备和存储介质 | |
CN105094910A (zh) | 一种驱动函数用户态调试系统和方法 | |
US6760864B2 (en) | Data processing system with on-chip FIFO for storing debug information and method therefor | |
US7428661B2 (en) | Test and debug processor and method | |
CN111367742A (zh) | 调试mvp处理器的方法、装置、终端和计算机可读存储介质 | |
CN105824750B (zh) | 一种在NorFlash程序空间调试的软断点模拟方法 | |
CN111177067B (zh) | 一种片上系统 | |
US7110934B2 (en) | Analysis of the performance of a portion of a data processing system | |
CN100474266C (zh) | 一种用于数字信号处理器的调试系统及其调试方法 | |
CN117724664A (zh) | 数据写入方法、装置、设备及存储介质 | |
CN106970825B (zh) | 一种基于gdb可配置框架的arm7仿真目标机实现方法 | |
WO2022235265A1 (en) | Debug channel for communication between a processor and an external debug host | |
US9934035B2 (en) | Device and method for tracing updated predicate values | |
KR20050063023A (ko) | 제이티에이지를 이용한 임베디드 시스템의 디버깅 장치 및방법 | |
US20220147351A1 (en) | Instruction transmitting unit, instruction execution unit, and related apparatus and method | |
JP2000181748A (ja) | マルチメモリ空間プログラムのデバッグシステムおよびそのデバッグ方法 |
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 |