发明内容
本申请的目的是提供一种NoC追踪数据的生成方法、生成装置、服务器以及计算机可读存储介质,通过当前的数据包头为连续数据时对该数据包头的增量数据进行处理,也就是仅仅对增量数据进行处理,而不是对全部的数据进行处理,降低NoC追踪数据的数据量,提高NoC追踪数据传输时的可靠性。
为解决上述技术问题,本申请提供一种NoC追踪数据的生成方法,包括:
判断前一条数据包头与当前的数据包头是否为连续数据;
若是,则根据NoC追踪数据增量包格式对所述数据包头的增量数据进行处理,得到NoC追踪数据;
若否,则根据NoC追踪数据完整包格式对所述数据包头进行处理,得到NoC追踪数据。
可选的,还包括:
将所述NoC追踪数据发送至数据传输单元,以便所述数据传输单元对所述NoC追踪数据进行传输。
可选的,还包括:
根据NoC追踪数据完整包格式对所述NoC追踪数据进行复制,得到备份NoC追踪数据;
将所述备份NoC追踪数据写入到缓存中。
可选的,根据NoC追踪数据增量包格式对所述数据包头的增量数据进行处理,得到NoC追踪数据,包括:
根据所述前一条数据包头对所述数据包头进行增量计算,得到时间戳增量和目标地址增量;
根据所述NoC追踪数据增量包格式对所述时间戳增量和所述目标地址增量进行处理,得到所述NoC追踪数据。
可选的,还包括:
根据所述时间戳增量的长度对所述NoC追踪数据添加时间戳增量长度。
可选的,还包括:
根据所述目标地址增量的长度对所述NoC追踪数据添加目标地址增量长度。
可选的,根据NoC追踪数据完整包格式对所述数据包头进行处理,得到NoC追踪数据,包括:
对空NoC追踪数据设置时间戳字段、协议转换接口单元标识字以及NoC追踪数据生成单元标识字,得到初始NoC追踪数据;
对所述初始NoC追踪数据写入所述数据包头的数据,得到所述NoC追踪数据。
本申请还提供一种NoC追踪数据的生成装置,包括:
数据连续判断模块,用于判断前一条数据包头与当前的数据包头是否为连续数据;
连续生成模块,用于当为连续数据时,根据NoC追踪数据增量包格式对所述数据包头的增量数据进行处理,得到NoC追踪数据;
非连续生成模块,用于当不为连续数据时,根据NoC追踪数据完整包格式对所述数据包头进行处理,得到NoC追踪数据。
本申请还提供一种服务器,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上所述的生成方法的步骤。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的生成方法的步骤。
本申请所提供的一种NoC追踪数据的生成方法,包括:判断前一条数据包头与当前的数据包头是否为连续数据;若是,则根据NoC追踪数据增量包格式对所述数据包头的增量数据进行处理,得到NoC追踪数据;若否,则根据NoC追踪数据完整包格式对所述数据包头进行处理,得到NoC追踪数据。
通过当前的数据包头为连续数据时对该数据包头的增量数据进行处理,也就是仅仅对增量数据进行处理,另外当前的数据包头不为连续数据的数据包头时,按照正常的完整方式进行处理,而不是对全部的数据包头都进行完整的数据处理,降低NoC追踪数据的数据量,提高NoC追踪数据传输时的可靠性。
本申请还提供一种NoC追踪数据的生成装置、服务器以及计算机可读存储介质,具有以上有益效果,在此不做赘述。
具体实施方式
本申请的核心是提供一种NoC追踪数据的生成方法、生成装置、服务器以及计算机可读存储介质,通过当前的数据包头为连续数据时对该数据包头的增量数据进行处理,也就是仅仅对增量数据进行处理,而不是对全部的数据进行处理,降低NoC追踪数据的数据量,提高NoC追踪数据传输时的可靠性。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
相关技术中,片上互联网络作为SoC中的数据传输通道,所传输的数据包数量巨大,要对其中一部分数据包进行复制并生成NoC追踪数据,其产生的追踪数据量也十分巨大,而SoC中的Trace系统设计数据带宽是相对有限的。在实际的工程操作中,NoC追踪数据在生成和传输环节,相比其它功能模块产生的追踪数据,极易因数据带宽限制而发生溢出和丢数,降低了NoC追踪数据传输时的可靠性。
因此,本申请提供一种NoC追踪数据的生成方法,通过当前的数据包头为连续数据时对该数据包头的增量数据进行处理,也就是仅仅对增量数据进行处理,另外当前的数据包头不为连续数据的数据包头时,按照正常的完整方式进行处理,而不是对全部的数据包头都进行完整的数据处理,降低NoC追踪数据的数据量,提高NoC追踪数据传输时的可靠性。
以下通过一个实施例,对本申请提供的一种NoC追踪数据的生成方法进行说明。
请参考图1,图1为本申请实施例所提供的一种NoC追踪数据的生成方法的流程图。
本实施例中,该方法可以包括:
S101,判断前一条数据包头与当前的数据包头是否为连续数据;若是,则执行S102;若否,则执行S103;
可见,本步骤中主要是判断前一条数据包头与当前的数据包头之间是否为连续数据。其中,连续数据是指该前一条发送的数据包头与当前的数据包头,即本步骤中的前一条数据包头与该当前的数据包头之间除了目标地址不同,其他字段全部相同的,即可以判定为前一条数据包头与该当前的数据包头之间为连续数据。
在相关技术中,请参考图2,图2为本申请实施例所提供的一种NoC追踪数据的传输流程的示意图。
片上互联网络模块使用许多个NIU(NoC Initiator Unit,协议转换接口单元)与不同的功能模块连接,根据数据传输方向不同,分为数据接收NIU和数据发送NIU。为了生成NoC追踪数据,通常会在NoC内部实现一个NoC追踪数据生成单元功能单元,NoC追踪数据生成单元与所有的数据接收NIU相连接,可以从数据接收NIU处,复制NIU接收到的数据包,生成NoC追踪数据,同时并不影响数据包正常传输到某一个数据发送NIU。NoC追踪数据生成单元将从NIU复制到的数据包,进行处理后,生成NoC追踪数据,并经过NIU将NoC追踪数据发送到SoC中的Trace处理模块。
请参考图3,图3为本申请实施例所提供的一种生成方法的原始格式的示意图。
NoC追踪数据生成单元对从NIU复制到的数据包,进行处理,生成NoC追踪数据。在大多数应用场景下,为了数据安全和降低NoC追踪数据量,NoC追踪数据生成单元仅使用数据包的包头来生成NoC追踪数据,而不使用数据包中的负载数据。NoC追踪数据生成单元还会在数据包头的基础上,添加时间戳数据,以及NIU标识字和NoC追踪数据生成单元标识字数据来表示生成该条NoC追踪数据的来源。
经过上述现有技术生成对应的NoC追踪数据,每一条NoC追踪数据由时间戳,NIU标识字,NoC追踪数据生成单元标识字和数据包头组成,数据包头中包含数据包目标地址,源模块标识字和目标模块标识字,数据包长度,以及操作码。源模块标识字表示该数据包由哪一个模块发送。目标模块标识字表示该数据包发送到哪一个模块。操作码表示该数据包是属于读操作,或是写操作,以及其它复杂模式的读或写操作。NoC追踪数据的数据流由格式完全相同的多条NoC追踪数据组成。
进一步的,再参考相关技术在实际的应用环境中,假设SoC中功能模块1向功能模块2写入1024字节数据,且假设片上互联网络内部传输位宽为128位,则片上互联网络内部会生成64个数据包(1204字节*8位/128位=64),NoC追踪数据生成单元对这64个数据包进行复制,会生成64条NoC追踪数据,在这64个数据包中的NIU标识字,NoC追踪数据生成单元标识字,源模块标识字,目标模块标识字,数据包长度和操作码,始终相同未发生变化,而在这64个数据包中的时间戳和目标地址,始终在变化。这也是NoC追踪数据在常见应用场景中的数据特征,即片上互联网络中发生连续数据传输时,NoC追踪数据中有多个字段值保持不变,有少数字段值在不断变化。并且是当出现了连续数据的数据包头时,会出现多个NoC追踪数据中存在多个字段值保持不变的情况,基于该情况可以将NoC追踪数据进行相应的压缩处理。
因此,本步骤中主要是判断该当前的数据包头与前一条数据包头是否为连续数据。
S102,根据NoC追踪数据增量包格式对数据包头的增量数据进行处理,得到NoC追踪数据;
在S101的基础上,本步骤旨在根据NoC追踪数据增量包格式对数据包头的增量数据进行处理,得到NoC追踪数据。也就是,当当前的数据包头为连续数据时,即可仅仅对增量数据进行处理,而不对完整的数据进行处理,降低了此时的NoC追踪数据的数据量,节约了发送NoC追踪数据的数据带宽。
请参考图4,图4为本申请实施例所提供的一种NoC追踪数据的生成方法的格式示意图。
进一步的,基于对NoC追踪数据在连续数据进行发送的情况,本步骤中对NoC追踪数据中出现的不发生变化的数据进行说明。针对该情况可以设计一种新的NoC追踪数据格式,请参考图4,分为NoC追踪数据完整包格式和增量包格式。NoC追踪数据完整包格式在原始NoC追踪数据格式基础上,添加一个字节的控制标识字段。NoC追踪数据增量包格式,包含一个字节的控制标识字段,包含一到四个字节的时间戳增量,包含NIU标识字和NoC追踪数据生成单元标识字,还包含一到八个字节的目标地址增量。控制标识字段包含完整标记或增量标记,占用一位;包含时间戳增量长度,占用两位;包含目标地址增量长度,占用四位;包含目标地址增量方向,占用一位。
按照新设计的NoC追踪数据格式,在NoC追踪数据生成单元中,对从NIU复制来的数据包头,按照规则进行处理,并生成少量NoC追踪数据完整包格式的追踪数据,和生成大量NoC追踪数据增量包格式的追踪数据。由于NoC追踪数据增量包格式相比原始NoC追踪数据格式可以减少大量数据量,所以本发明总体上可以有效对NoC追踪数据进行压缩。
基于上述说明,对本步骤中的操作方式进行说明,本步骤可以包括:
步骤1,根据前一条数据包头对数据包头进行增量计算,得到时间戳增量和目标地址增量;
步骤2,根据NoC追踪数据增量包格式对时间戳增量和目标地址增量进行处理,得到NoC追踪数据。
可见,本可选方案主要是对本实施例中如何对NoC追踪数据进行压缩处理进行说明。本可选方案中首先根据前一条数据包头对数据包头进行增量计算,得到时间戳增量和目标地址增量;然后,根据NoC追踪数据增量包格式对时间戳增量和目标地址增量进行处理,得到NoC追踪数据。也就是,在一般的NoC追踪数据中设置的一个字节的控制标识字段,包含NIU标识字和NoC追踪数据生成单元标识字的基础上,通过数据增量对时间戳进行表示,即包含一到四个字节的时间戳增量。在数据包头的部分采用一到八个字节的目标地址增量对数据包头的增量数据进行表示。可见,将数据包头和时间戳的字节数均进行了缩减,降低了数据量。
为了进一步降低NoC追踪数据中字段之间占据的数据量,上一可选方案中的步骤还可以包括:
根据时间戳增量的长度对NoC追踪数据添加时间戳增量长度。
根据目标地址增量的长度对NoC追踪数据添加目标地址增量长度。
也就是,对NoC追踪数据添加对应的时间戳增量长度和目标地址增量长度,以便在NoC追踪数据中避免及写入过长的时间戳增量和目标地址增量,降低了NoC追踪数据对应字段的长度,进一步减小了NoC追踪数据的数据量,降低了占用的带宽。
S103,根据NoC追踪数据完整包格式对数据包头进行处理,得到NoC追踪数据。
在S101的基础上,本步骤旨在根据NoC追踪数据完整包格式对数据包头进行处理,得到NoC追踪数据。也就是,当该当前的数据包头不为连续数据的数据包头时,直接按照正常的方式对该数据包头进行处理,得到NoC追踪数据。
进一步的,为了对本步骤中的操作方式进行说明,本步骤可以包括:
步骤1,对空NoC追踪数据设置时间戳字段、协议转换接口单元标识字以及NoC追踪数据生成单元标识字,得到初始NoC追踪数据;
步骤2,对初始NoC追踪数据写入数据包头的数据,得到NoC追踪数据。
可见,本可选方案中主要是对如何进行完整的NoC追踪数据处理进行说明。本实施例中首先对空NoC追踪数据设置时间戳字段、协议转换接口单元标识字以及NoC追踪数据生成单元标识字,得到初始NoC追踪数据;然后,对初始NoC追踪数据写入数据包头的数据,得到NoC追踪数据。
进一步的,为了对本实施例进行扩充,本实施例还可以包括:
将NoC追踪数据发送至数据传输单元,以便数据传输单元对NoC追踪数据进行传输。
可见,当获取到NoC追踪数据之后,即可将NoC追踪数据发送至数据传输单元,以便数据传输单元对NoC追踪数据进行传输,以便对该NoC追踪数据进行后一步的处理。
进一步的,为了对本实施例进行扩充,本实施例还可以包括:
根据NoC追踪数据完整包格式对NoC追踪数据进行复制,得到备份NoC追踪数据;将备份NoC追踪数据写入到缓存中。
可见,本可选方案中是将发送的NoC追踪数据在缓存中进行备份,以便在处理下一个NoC追踪数据时进行连续数据的判断操作。
综上,本实施例通过当前的数据包头为连续数据时对该数据包头的增量数据进行处理,也就是仅仅对增量数据进行处理,另外当前的数据包头不为连续数据的数据包头时,按照正常的完整方式进行处理,而不是对全部的数据包头都进行完整的数据处理,降低NoC追踪数据的数据量,提高NoC追踪数据传输时的可靠性。
以下通过一个具体的实施例,对本申请提供的一种NoC追踪数据的生成方法做进一步说明。
本实施例中,该方法可以包括:
步骤一,NoC追踪数据生成单元从某个NIU复制到一个新的数据包头,同时,从缓存区读取已保存的该NIU对应的前一条NoC追踪数据,从中提取旧数据包头,进行比较,如果两个数据包头中,除了目标地址不同之外,其它全部字段都相同,则可以判定新的数据包头与旧数据包头同属一次连续数据传输。如果除目标地址之外还有其它字段存在不同,则判定新的数据包头与旧数据包头为非连续数据传输。
步骤二,如果步骤一判定结果为非连续数据传输,则按照NoC追踪数据完整包格式生成NoC追踪数据具体方式是在首先在NoC追踪数据完整包格式的控制标识字段,写入完整标记即0x0,在时间戳字段,写入32位时钟计数值,并写入NIU标识字和NoC追踪数据生成单元标识字,然后再将步骤一中复制到的新数据包头,整体写入NoC追踪数据完整包格式中。
步骤三,如果步骤一判定结果为连续数据传输,则按照NoC追踪数据增量包格式生成NoC追踪数据。具体方式分四个环节:1,从缓存区读取已保存的该NIU对应的前一条NoC追踪数据,从中提取旧时间戳与旧目标地址;2,读取当前32位时钟计数值,减去旧时间戳,计算出时间戳增量值,确定时间戳增量长度,如果1<时间戳增量值<256,则时间戳增量长度值为1,如果255<时间戳增量值<65536,则时间戳增量长度值为2,如果65535<时间戳增量值<1677216,则时间戳增量长度值为3,如果1677215<时间戳增量值<429496726,则时间戳增量长度值为0;3,从新数据包头中读取新目标地址,减去旧目标地址,得到目标地址差值,目标地址差值取绝对值,得到目标地址增量,并采用与环节2相同方法,确定目标地址增量长度。同时,若目标地址差值大于等于零,则目标地址增量方向值为0,否则目标地址增量方向值为1;4,按照NoC追踪数据增量包格式生成NoC追踪数据,控制标识字段中分别写入增量标记即0x1,和时间戳增量长度,目标地址增量长度,以及目标地址增量方向。在控制标识字段之后,依次写入时间戳增量,NIU标识字和NoC追踪数据生成单元标识字,以及目标地址增量。
步骤四,将步骤二或三生成的NoC追踪数据发送到NIU。同时,按照原始NoC追踪数据格式,生成一条对应的NoC追踪数据,将这条NoC追踪数据写入缓存。
可见,本实施例可以通过当前的数据包头为连续数据时对该数据包头的增量数据进行处理,也就是仅仅对增量数据进行处理,另外当前的数据包头不为连续数据的数据包头时,按照正常的完整方式进行处理,而不是对全部的数据包头都进行完整的数据处理,降低NoC追踪数据的数据量,提高NoC追踪数据传输时的可靠性。
下面对本申请实施例提供的生成装置进行介绍,下文描述的生成装置与上文描述的生成方法可相互对应参照。
请参考图5,图5为本申请实施例所提供的一种NoC追踪数据的生成装置的结构示意图。
本实施例中,该装置可以包括:
数据连续判断模块100,用于判断前一条数据包头与当前的数据包头是否为连续数据;
连续生成模块200,用于当为连续数据时,根据NoC追踪数据增量包格式对数据包头的增量数据进行处理,得到NoC追踪数据;
非连续生成模块300,用于当不为连续数据时,根据NoC追踪数据完整包格式对数据包头进行处理,得到NoC追踪数据。
可选的,该装置可以包括:
数据发送模块,用于将NoC追踪数据发送至数据传输单元,以便数据传输单元对NoC追踪数据进行传输。
可选的,该装置可以包括:
数据备份模块,用于根据NoC追踪数据完整包格式对NoC追踪数据进行复制,得到备份NoC追踪数据;将备份NoC追踪数据写入到缓存中。
可选的,该连续生成模块200,可以包括:
增量计算单元,用于根据前一条数据包头对数据包头进行增量计算,得到时间戳增量和目标地址增量;
增量处理单元,用于根据NoC追踪数据增量包格式对时间戳增量和目标地址增量进行处理,得到NoC追踪数据。
可选的,该连续生成模块200,还可以包括:
时间戳增量长度计算单元,用于根据时间戳增量的长度对NoC追踪数据添加时间戳增量长度。
可选的,该连续生成模块200,还可以包括:
目标地址增量长度计算单元,用于根据目标地址增量的长度对NoC追踪数据添加目标地址增量长度。
可选的,该非连续生成模块300,可以包括:
标识设单元,用于对空NoC追踪数据设置时间戳字段、协议转换接口单元标识字以及NoC追踪数据生成单元标识字,得到初始NoC追踪数据;
包头数据写入单元,用于对初始NoC追踪数据写入数据包头的数据,得到NoC追踪数据。
本申请实例还提供一种服务器,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如以上实施例所述的生成方法的步骤。
本申请实例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如以上实施例所述的生成方法的步骤。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的一种NoC追踪数据的生成方法、生成装置、服务器以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。