本技术实施例涉及计算机领域,尤其涉及一种数据处理方法、编解码加速器和相关设备。
背景技术:
1、在计算机科学中,编码和解码发挥着重要作用,在计算机通信、存储等场景中,序列化和反序列化作为编解码的一种具体实现,得到了广泛的应用。其中,序列化是指当数据需要传输或者存储时,将内存中分散的数据结构转换为按照特定方式排布的、连续的字节流的过程,而反序列化的功能则与之相反。
2、在一种数据处理方法中,采用多次分配扩容的内存分配方式,进行序列化或者反序列化。具体来说,预先分配一块内存缓冲区用于进行序列化或者反序列化,在执行过程中,如果出现内存不足的情况,会重新申请更大的内存缓冲区,并将原内存缓冲区中的数据集中拷贝到该更大的内存缓冲区中,再释放原内存缓冲区。
3、在这种方法中,可能会出现多次申请内存并再次调用编解码加速器进行序列化或者反序列化,增加了运算负担,浪费了算力资源。
技术实现思路
1、本技术实施例提供了一种数据处理方法、编解码加速器和相关设备。在这种数据处理方法中,对待处理数据进行解析,得到目标模板序号和目标数据分布序号,根据目标数据分布序号对应的目标数据分布信息,确定待处理数据中定长字段对应的第一内存开销;根据目标模板序号对应的目标处理模板和目标数据分布信息,确定待处理数据中变长字段对应的第二内存开销。最后根据第一内存开销和第二内存开销,确定输出数据的目标内存空间。这样能够精确计算出输出数据所需要的内存空间,进行一次内存申请即可,降低了运算负担,节约了算力资源。
2、本技术实施例第一方面提供了一种数据处理方法,包括:
3、编解码加速器获取到待处理数据之后,会对待处理数据进行解析,得到待处理数据所对应的目标模板序号和目标数据分布序号。根据目标模板序号,能够获取到待处理数据对应的目标处理模板,该目标处理模板指示了待处理数据的属性信息,包括待处理数据的类型、定义等信息。根据目标数据分布信息,能够获取待处理数据对应的目标数据分布信息,该目标数据分布信息指示的是待处理数据的数据分布情况,也即待处理数据的结构体,简单来说,即为待处理数据中各部分数据的排布情况。目标数据分布信息还可以绑定该信息所对应的定长字段的内存开销,因此根据目标数据分布信息,能够确定待处理数据中定长字段对应的第一内存开销。在得到第一内存开销和第二内存开销之后,编解码加速器根据这两个内存开销能够计算出用于存储编解码待处理数据之后得到的输出数据的目标内存空间的大小,并申请目标内存空间。
4、从以上技术方案可以看出,本技术实施例具有以下优点:
5、根据目标数据分布序号对应的目标数据分布信息,确定待处理数据中定长字段对应的第一内存开销;根据目标模板序号对应的目标处理模板和目标数据分布信息,确定待处理数据中变长字段对应的第二内存开销。最后根据第一内存开销和第二内存开销,确定输出数据的目标内存空间。这样能够精确计算出输出数据所需要的内存空间,进行一次内存申请即可,降低了运算负担,节约了算力资源。
6、在第一方面一些可选的实施例中,在解析待处理数据之前,编解码加速器能够获取到指示注册信息的存储位置的第一地址信息,并根据第一地址信息获取到初始注册信息。注册信息包括m个处理模板和n个数据分布信息,m和n均为正整数。编解码加速器会建立这m个处理模板与n个数据分布信息之间的对应关系,使得一个处理模板对应至少一个数据分布信息。编解码加速器还可以基于多种方式,确定每个处理模板中每个定长字段的内存开销。具体来说,在实际应用中,编解码加速器可以对处理模板中的成员进行分析,并计算各个模板中每个定长字段的内存开销,由此确定每个处理模板中每个定长字段的内存开销。也可以由处理器或者终端设备在注册处理模板时,直接注明每个定长字段的内存开销,使得编解码加速器可以直接获取处理模板中每个定长字段的内存开销。除此之外,还可以通过其他的方式确定每个处理模板中各个定长字段的内存开销,具体此处不做限定。例如,在配置过程中,注明成员数量少的处理模板中每个定长字段的内存开销,其他未注明内存开销的定长字段由编解码加速器在获取到处理模板之后进行计算,由此获取到每个处理模板中每个定长字段的内存开销。编解码加速器根据每个定长字段的内存开销和m个处理模板与n个数据分布信息之间的对应关系,能够确定出这n个数据分布信息中每个数据分布信息所对应的定长字段的内存开销。
7、本技术实施例中,建立注册信息所包括的m个处理模板和n个数据分布信息之间的对应关系,由于一个处理模板中可以包括多种类型的成员,因此一个处理模板可以对应多个数据分布信息,这为本技术实施例实现以非侵入式的方式进行序列化和/或反序列化提供了技术支持,也即提升了技术方案的可实现性。其中,非侵入式是指不需要使用指定的输入数据结构,便可以实现序列化和/或反序列化功能。这是因为,注册信息中的处理模板囊括了多种情况,编解码加速器根据待处理数据的数据分布信息,便能确定与之对应的处理模板,也就确定了待处理数据的处理方式。同时,如果一个处理模板可以对应多个数据分布信息,也可以减少注册的处理模板的数量,从而降低了内存消耗。另外,根据数据分布信息与处理模板之间的对应关系,和每个处理模板中每个定长字段的内存开销,能够确定的每个数据分布信息所对应的定长内存开销,也即将数据分布信息与定长内存开销进行绑定,使得编解码加速器在后续的处理过程中,能够根据待处理数据的目标数据分布信息快速确定出待处理数据对应的定长内存开销,提升了处理效率。
8、在第一方面一些可选的实施例中,待处理数据对应的目标数据分布信息包含于n个数据分布信息中。在数据分布信息与定长内存开销绑定的情况下,编解码加速器可以直接将目标数据分布信息对应的定长内存开销,确定为待处理数据中定长字段对应的第一内存开销。
9、本技术实施例中,将数据分布信息与定长内存开销进行绑定,使得编解码加速器在数据处理过程中,不需要再进行计算,节约了运算资源。同时,够根据目标数据分布信息直接快速确定出待处理数据对应的定长内存开销,也提升了处理效率。
10、在第一方面一些可选的实施例中,在解析待处理数据之前,编解码加速器能够获取指示注册信息的存储位置的第一地址信息,并根据第一地址信息获取注册信息。该注册信息包括m个处理模板,m为正整数。然后确定这m个处理模板中每个处理模板所包括的每个定长字段的内存开销。编解码加速器确定每个定长字段的内存开销的方式,在上文已经介绍过,此处不再赘述。
11、在第一方面一些可选的实施例中,如果编解码加速器在解析待处理数据之前,仅仅确定了每个处理模板中每个定长字段的内存开销,那么在确定待处理数据中定长字段对应的第一内存开销时,编解码加速器需要根据目标数据分布信息和目标处理模板,确定待处理数据中包括的至少一个定长字段,然后根据至少一个定长字段中每个定长字段的内存开销,确定第一内存开销。
12、本技术实施例中,确定第一内存开销的方式有多种,可以根据实际应用的需要选择,提升了本技术技术方案的灵活性。
13、在第一方面一些可选的实施例中,目标数据分布信息指示待处理数据的成员分布情况,目标处理模板指示待处理数据的属性信息。其中,待处理数据的属性信息包括待处理数据中各个数据成员的类型、处理方式等信息。编解码加速器根据待处理数据的分布情况、待处理数据的属性信息和待处理数据,能够确定待处理数据包括的变长字段,从而计算出变长字段对应的第二内存开销。
14、本技术实施例中,在处理过程中,编解码加速器会结合待处理数据自身的信息精确计算变长字段对应的第二内存开销,使得计算结果准确,提升了本技术技术方案的准确度。
15、在第一方面一些可选的实施例中,在解析待处理数据之前,编解码加速器会获取m个处理模板对应的m个地址信息和m个模板序号,并建立这m个地址信息和m个模板序号之间的映射关系,得到第一映射表。编解码加速器在解析待处理数据得到目标模板序号之后,就可以根据目标模板序号查询第一映射表,得到目标处理模板对应的第二地址信息。然后根据第二地址信息,从内存中获取目标处理模板。
16、本技术实施例中,在编解码加速器中存储指示地址信息和模板序号之间映射关系的第一映射表,通过查询第一映射表的方式,从内存中获取目标处理模板,并不在编解码加速器本地存储各个处理模板,减少了本地资源的占用。
17、在第一方面一些可选的实施例中,在解析待处理数据之前,编解码加速器还会获取n个数据分布信息对应的n个地址信息和n个数据分布序号,并建立这n个地址信息与n个数据分布序号之间的映射关系,得到第二映射表。编解码加速器在解析待处理数据得到目标数据分布序号之后,就可以根据目标数据分布序号查询第二映射表,确定目标数据分布序号对应的第三地址信息。然后根据第三地址信息,从内存中获取目标数据分布信息。
18、本技术实施例中,在编解码加速器中存储指示地址信息和数据分布序号之间映射关系的第二映射表,通过查询第二映射表的方式,从内存中获取目标数据分布信息,并不在编解码加速器本地存储各个数据分布信息,减少了本地资源的占用。
19、在第一方面一些可选的实施例中,编解码加速器可以通过多种方式申请目标内存空间,可以通过编解码加速器外部的内存管理加速器,申请目标内存空间。除此之外,还可以通过其他的方式申请目标内存空间,例如,通过编解码加速器内部的内存管理模块,申请目标内存空间,具体此处不做限定。
20、本技术实施例中,编解码加速器申请目标内存空间的方式有多种,可以适应不同的情况,提升了本技术技术方案的灵活性。
21、本技术实施例第二方面提供了一种编解码加速器,包括:
22、处理单元,用于解析待处理数据,得到待处理数据对应的目标模板序号和目标数据分布序号。
23、获取单元,用于根据目标模板序号,获取待处理数据对应的目标处理模板。
24、获取单元,还用于根据目标数据分布序号,获取待处理数据对应的目标数据分布信息。
25、处理单元,还用于:
26、根据目标数据分布信息,确定待处理数据中定长字段对应的第一内存开销。
27、根据目标数据分布信息、目标处理模板和待处理数据,计算待处理数据中变长字段对应的第二内存开销。
28、根据第一内存开销和第二内存开销,申请目标内存空间,目标内存空间用于存储编解码待处理数据得到的输出数据。
29、编解码加速器用于执行第一方面所述的方法,其有益效果如第一方面所示,此处不再赘述。
30、本技术实施例第三方面提供了一种数据处理系统,该处理系统包括编解码加速器,该编解码加速器用于执行第一方面所述的方法,其有益效果如第一方面所示,此处不再赘述。
31、本技术实施例第四方面提供了一种计算机可读存储介质,计算机可读存储介质中保存有程序,当计算机执行该程序时,执行第一方面的方法。
32、本技术实施例第五方面提供了一种计算机程序产品,其特征在于,当计算机程序产品在计算机上执行时,该计算机执行第一方面的方法。