本公开涉及计算机,尤其涉及一种数据传输方法、pcie设备以及电子设备。
背景技术:
1、axi协议是一种用于高性能计算系统中的总线标准。它是一种开放式的,可扩展的接口标准,旨在提供高带宽,低延迟的数据传输。axi总线具有多级流水线结构,支持乱序传输和带宽分配,使得系统可以同时处理多个数据请求,提高系统的并发性和效率。
2、pcie是一种高速串行总线标准,用于连接计算机系统的各种外部设备。pcie总线支持多种类型的数据传输,其中之一就是non-posted请求,non-posted请求需要目标设备返回cpld/cpl,即返回响应数据。
3、当axi作为pcie协议应用层接口时,axi协议乱序特性和pcie的non-posted请求响应特性,会造成请求响应被乱序传输,需要对请求响应进行重排序。
技术实现思路
1、本公开的目的是提供一种数据传输方法、pcie设备以及电子设备。
2、根据本公开的一个方面,提供一种数据传输方法,所述方法应用于pcie设备,所述pcie设备的应用层接口为axi协议接口;所述方法包括:
3、在发送请求阶段,针对预设数量的outbound方向的非转发事务请求中的任一非转发事务请求,为所述非转发事务请求分配一个内部标识hid以及一个请求指针;其中,相同axi id的非转发事务请求对应相同的hid,一个非转发事务请求对应一个请求指针;
4、针对对应相同hid的若干outbound方向的非转发事务请求,按照发送顺序进行排序得到该若干非转发事务请求的序列号;将非转发事务请求及其序列号存储到为其分配的请求指针对应的第一存储空间中;
5、在处理响应阶段,针对任一响应数据,确定该响应数据的请求指针,将该响应数据存储到该请求指针对应的第二存储空间中,并将该请求指针标记为已收到响应数据、未返回上层;
6、针对预设数量请求指针中的任一请求指针,执行预定义检测操作:确定该请求指针是否被标记为已收到响应数据、且未返回上层;在是的情况下,进一步确定该请求指针对应的序列号,与记录的所述请求指针对应的hid的、已返回上层的响应数据的累加数是否相同,若相同,则将所述请求指针对应的响应数据返回至上层。
7、在一种实施方式中,将所述请求指针对应的响应数据返回至上层后,还包括:
8、对所述累加数进行更新,将该请求指针标记为未收到响应数据、已返回上层,清空该请求指针对应第一存储空间和第二存储空间。
9、在一种实施方式中,该方法还包括:
10、在将任一hid对应的全部非转发事务请求的响应数据返回至上层后,释放所述hid。
11、在一种实施方式中,该方法还包括:
12、对所述预设数量的请求指针进行分组,每组包括若干请求指针;确定包括至少一个目标请求指针的组为目标组;所述目标请求指针包括:被标记为已收到响应数据、未返回上层的请求指针;
13、所述针对预设数量请求指针中的任一请求指针,执行预定义检测操作,包括
14、依次针对每个目标组,对其中的若干请求指针并行执行所述预定义检测操作。
15、在一种实施方式中,所述预设数量为2^m;所述对所述预设数量的请求指针进行分组,包括:
16、将2^m笔请求指针分为2^(m-n)组,每组2^n个请求指针;
17、所述确定包括至少一个目标请求指针的组为目标组,包括:
18、检测任一组是否包括至少一个目标请求指针,若存在则将该组确定为目标组,在针对所有组进行检测后生成包括2^(m-n)比特的目标组标识信息,其中,任一组对应一个比特,在任一组为目标组时,将该目标组对应的比特置位;
19、利用所述目标组标识信息中每个置位的比特的位置,生成每个目标组地址的基地址,其中,所述基地址包括m-n比特,用于描述2^(m-n)个组的地址;所述目标组地址的固定偏移地址包括n个比特,用于描述每组中2^n个请求指针的地址;
20、所述依次针对每个目标组,对其中的若干请求指针并行执行所述预定义检测操作,包括:
21、根据生成的目标组地址,依次访问每个目标组,对每个目标组中的若干请求指针并行执行所述预定义检测操作。
22、在一种实施方式中,该方法还包括:
23、在发送请求阶段,针对预设数量的inbound方向的非转发事务请求中的任一非转发事务请求,为所述非转发事务请求分配一个axi id;其中,相同tag的非转发事务请求对应相同的axi id;将非转发事务请求存储到为其分配的axi id对应的第三存储空间中;
24、在处理响应阶段,针对任一响应数据,确定该响应数据的axi id,将该响应数据存储到该axi id对应的第四存储空间中;在该axi id对应的响应数据全部存储到第四存储空间后,将该axi id对应的响应数据读出并返回至请求发起方。
25、根据本公开的第二个方面,提供一种pcie设备,所述pcie设备的应用层接口为axi协议接口;所述pcie设备包括outbound转换模块;
26、所述outbound转换模块,用于在发送请求阶段,针对预设数量的outbound方向的非转发事务请求中的任一非转发事务请求,为所述非转发事务请求分配一个内部标识hid以及一个请求指针;其中,相同axi id的非转发事务请求对应相同的hid,一个非转发事务请求对应一个请求指针;
27、针对对应相同hid的若干outbound方向的非转发事务请求,按照发送顺序进行排序得到该若干非转发事务请求的序列号;将非转发事务请求及其序列号存储到为其分配的请求指针对应的第一存储空间中;
28、在处理响应阶段,针对任一响应数据,确定该响应数据的请求指针,将该响应数据存储到该请求指针对应的第二存储空间中,并将该请求指针标记为已收到响应数据、未返回上层;
29、针对预设数量请求指针中的任一请求指针,执行预定义检测操作:确定该请求指针是否被标记为已收到响应数据、且未返回上层;在是的情况下,进一步确定该请求指针对应的序列号,与记录的所述请求指针对应的hid的、已返回上层的响应数据的累加数是否相同,若相同,则将所述请求指针对应的响应数据返回至上层。
30、在一种实施方式中,所述outbound转换模块,还用于对所述累加数进行更新,将该请求指针标记为未收到响应数据、已返回上层,清空该请求指针对应第一存储空间和第二存储空间。
31、在一种实施方式中,所述outbound转换模块,还用于在将任一hid对应的全部非转发事务请求的响应数据返回至上层后,释放所述hid。
32、在一种实施方式中,所述outbound转换模块,还用于对所述预设数量的请求指针进行分组,每组包括若干请求指针;确定包括至少一个目标请求指针的组为目标组;所述目标请求指针包括:被标记为已收到响应数据、未返回上层的请求指针;
33、所述outbound转换模块,具体用于依次针对每个目标组,对其中的若干请求指针并行执行所述预定义检测操作。
34、在一种实施方式中,所述预设数量为2^m;
35、所述outbound转换模块,具体用于将2^m笔请求指针分为2^(m-n)组,每组2^n个请求指针;检测任一组是否包括至少一个目标请求指针,若存在则将该组确定为目标组,在针对所有组进行检测后生成包括2^(m-n)比特的目标组标识信息,其中,任一组对应一个比特,在任一组为目标组时,将该目标组对应的比特置位;
36、利用所述目标组标识信息中每个置位的比特的位置,生成每个目标组地址的基地址,其中,所述基地址包括m-n比特,用于描述2^(m-n)个组的地址;所述目标组地址的固定偏移地址包括n个比特,用于描述每组中2^n个请求指针的地址;
37、根据生成的目标组地址,依次访问每个目标组,对每个目标组中的若干请求指针并行执行所述预定义检测操作。
38、在一种实施方式中,所述pcie设备还包括inbound转换模块以及axi顶层模块;
39、所述inbound转换模块,具体用于在发送请求阶段,针对预设数量的inbound方向的非转发事务请求中的任一非转发事务请求,为所述非转发事务请求分配一个axi id;其中,相同tag的非转发事务请求对应相同的axi id;将非转发事务请求存储到为其分配的axi id对应的第三存储空间中;
40、所述axi顶层模块,具体用于在处理响应阶段,针对任一响应数据,确定该响应数据的axi id,将该响应数据存储到该axi id对应的第四存储空间中;在该axi id对应的响应数据全部存储到第四存储空间后,将该axi id对应的响应数据读出并返回至请求发起方。
41、在一种实施方式中,该pcie设备包括图形处理系统。
42、根据本公开的第三个方面,提供一种电子组件,包括第二方面的pcie设备。
43、根据本公开的第四个方面,提供一种电子设备,包括第三方面的电子组件。
44、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
1.一种数据传输方法,所述方法应用于pcie设备,所述pcie设备的应用层接口为axi协议接口;所述方法包括:
2.根据权利要求1所述的方法,将所述请求指针对应的响应数据返回至上层后,还包括:
3.根据权利要求1所述的方法,还包括:
4.根据权利要求1所述的方法,还包括:
5.根据权利要求4所述的方法,所述预设数量为2^m;所述对所述预设数量的请求指针进行分组,包括:
6.根据权利要求1所述的方法,还包括:
7.一种pcie设备,所述pcie设备的应用层接口为axi协议接口;所述pcie设备包括outbound转换模块;
8.根据权利要求7所述的pcie设备,
9.根据权利要求7所述的pcie设备,
10.根据权利要求7所述的pcie设备,
11.根据权利要求10所述的pcie设备,所述预设数量为2^m;
12.根据权利要求7所述的pcie设备,所述pcie设备还包括inbound转换模块以及axi顶层模块;
13.根据权利要求7-12任一项所述的pcie设备,所述pcie设备包括图形处理系统。
14.一种电子组件,包括权利要求13所述的pcie设备。
15.一种电子设备,包括权利要求14所述的电子组件。
