掌桥专利:专业的专利平台
掌桥专利
首页

数据传输方法、装置、设备、存储介质及程序

文献发布时间:2023-06-19 19:30:30


数据传输方法、装置、设备、存储介质及程序

技术领域

本申请实施例涉及通信技术领域,尤其涉及一种数据传输方法、装置、设备、存储介质及程序。

背景技术

不同电子设备之间可以基于无线保真(wireless fidelity,WiFi)无线网络进行数据传输。例如,第一设备和第二设备之间可以基于WiFi无线网络进行点对点(peer topeer,P2P)数据传输,还可以跨接入点(access point,AP)设备进行数据传输。

在基于WiFi无线网络的通信系统中,通信时延是非常重要的性能指标。在很多应用场景中均具有低时延需求。目前,基于WiFi无线网络的通信时延较高,无法满足各应用场景的低时延需求。

发明内容

本申请提供一种数据传输方法、装置、设备、存储介质及程序,用以提高通信时延。

第一方面,本申请提供一种数据传输方法,以第一设备向第二设备传输数据为例,该方法的执行主体可以为第一设备,或者为第一设备中的处理器、处理器芯片等。下述以执行主体为第一设备为例进行说明。该方法包括:第一设备确定待通过第一连接向第二设备传输的目标数据,所述第一连接为所述第一设备与所述第二设备之间的连接;第一设备获取所述第一连接对应的第一时延需求信息,根据所述第一时延需求信息,通过所述第一连接向所述第二设备传输所述目标数据。

示例性的,第一设备与第二设备接入同一WiFi网络。第一设备与第二设备之间可以基于WiFi无线网络进行点对点数据传输,第一设备与第二设备之间可以基于WiFi无线网络进行跨AP的数据传输。

第一时延需求信息是指用于描述第一连接进行数据传输所需达到的时延要求的相关信息。可选的,第一时延需求信息与第一连接所对应的应用程序相关。不同的应用程序对应的第一时延需求信息不同。每个应用程序对应的第一时延需求信息可以是预设的。这样,第一设备可以根据第一连接对应的应用程序,确定出第一时延需求信息。可选的,第一时延需求信息与第一连接的网络状态相关。当第一连接的网络状态不同时,其对应的第一时延需求信息也可能不同。也就是说,第一设备可以根据第一连接的网络状态,实时动态确定第一时延需求信息。

本申请中,第一设备通过根据第一连接对应的第一时延需求信息,向第二设备传输目标数据,能够降低第一设备对目标数据的发送时延,满足低时延需求。

一种可能的实现方式中,第一设备根据所述第一时延需求信息,通过所述第一连接向所述第二设备传输所述目标数据,可以采用如下方式实现:第一设备根据所述第一时延需求信息,确定传输参数,所述传输参数包括如下至少一种:第一设备的通信芯片的工作频点、通信芯片对应的驱动模块的处理核的类型、第一设备中直接存储器访问DMA响应时延、第一设备的内核的处理策略;第一设备根据所述传输参数,通过所述第一连接向第二设备传输所述目标数据。

其中,第一设备的通信芯片可以为WiFi芯片。WiFi芯片作为数据发送和接收的底层硬件模块,其工作频点很大程度上影响了wifi芯片的数据处理速率。若WiFi芯片的工作频点越高,则WiFi芯片的数据处理速率越高;若WiFi芯片的工作频点越低,则WiFi芯片的数据处理速率越低。因此,可以根据第一时延需求信息,确定WiFi芯片的工作频点。示例性的,在第一连接具有低时延需求时,将WiFi芯片的工作频点设置为较高的预设频点。例如,预设频点大于参考频点。参考频点可以为经验值,或者,参考频点可以为根据当前传输带宽所确定出的工作频点。通过将WiFi芯片的工作频点设置为较高的频点,能够提高WiFi芯片的数据处理速度,从而降低数据传输时延,满足低时延需求。

“第一设备的通信芯片对应的驱动模块”可以为WiFi驱动模块。“通信芯片对应的驱动模块的处理核”可以为WiFi驱动模块的线程(例如发送线程、接收线程等)所绑定的处理核。处理核的类型可以包括:大核、中核和小核。大核的处理性能优于中核的处理性能,中核的处理性能优于小核的处理性能。因此,在第一连接具有低时延需求时,确定将WiFi驱动模块的线程绑定到处理性能较优的处理核上,例如绑定到中核或者大核上。通过将WiFi驱动模块中的线程绑定到中核或者大核,能够提高WiFi驱动模块的数据处理速度,从而降低数据传输时延,满足低时延需求。

在第一连接具有低时延需求时,可以将DMA响应时延确定为较低的预设时延。预设时延小于DMA响应时延的默认值。这样可以提高DMA控制器的响应速度。通过按照较低的DMA响应时延进行数据搬移处理,能够提高DMA控制器的搬移响应速度,降低数据搬移过程所需时长,从而降低数据传输时延,满足低时延需求。

第一设备的内核的处理策略是指第一设备在进行数据传输过程中,第一设备的内核所采用的处理策略。处理策略可以包括功耗优先策略(或者说开启功耗优先策略)、非功耗优先策略(或者说关闭功耗优先策略)。在第一连接具有低时延需求时,可以采用非功耗优先策略。通过采用非功耗优先策略,能够提高WiFi芯片的数据处理速度,从而降低数据传输时延,满足低时延需求。

一种可能的实现方式中,所述第一时延需求信息指示如下至少一种:所述第一连接对应的时延类型为低时延类型或者高时延类型;所述第一连接的低时延档位值;所述第一连接使能的至少一种时延降低策略,所述至少一种时延降低策略包括下述中的至少一种:第一种时延降低策略、第二种时延降低策略、第三种时延降低策略、第四种时延降低策略。

其中,“第一时延需求信息用于指示第一连接对应的时延类型为高时延类型或者低时延类型”的另一种表述形式为“第一时延需求信息用于指示第一连接是否具有低时延需求”。当第一连接对应的时延类型为高时延类型,则第一连接不具有低时延需求。当第一连接对应的时延类型为低时延类型,则第一连接具有低时延需求。第一连接的低时延档位值指示对低时延的需求程度。

本申请中,上述四种传输策略与上述四种传输参数具有对应关系。其中,“第一设备的通信芯片的工作频点”为上述的第一种时延降低策略对应的传输参数。“通信芯片的驱动模块的处理核的类型”为上述的第二种时延降低策略对应的传输参数。“第一设备的DMA响应时延”为上述的第三种时延降低策略对应的传输参数。“第一设备的内核的处理策略”为上述的第四种时延降低策略对应的传输参数。

一种可能的实现方式中,所述第一时延需求信息指示所述第一连接对应的时延类型为低时延类型。该情况下,第一设备根据所述第一时延需求信息,确定传输参数,可以采用如下方式实现:第一设备根据所述第一时延需求信息,执行如下参数设置中的至少一种:将所述第一设备的通信芯片的工作频点设置为预设频点;将所述通信芯片的驱动模块的处理核的类型设置为预设类型;将所述第一设备中DMA响应时延设置为预设时延;将所述第一设备的内核的处理策略设置为非功耗优先策略。

也就是说,在第一连接具有低时延需求时,可以按照上述第一种时延降低策略、第二种时延降低策略、第三种时延降低策略、第四种时延降低策略中的一种或者多种进行数据传输。这样,能够降低数据传输时延。

一种可能的实现方式中,所述第一时延需求信息指示所述第一连接对应的时延类型为低时延类型、以及所述第一连接的低时延档位值。这样,第一设备根据所述第一时延需求信息,确定传输参数,可以采用如下方式实现:第一设备根据所述第一时延需求信息,执行如下参数设置中的至少一种:将所述第一设备的通信芯片的工作频点设置为与所述低时延档位值对应的预设频点;将所述通信芯片的驱动模块的处理核的类型设置为与所述低时延档位值对应的预设类型;所述第一设备中DMA响应时延设置为与所述低时延档位值对应的预设时延;所述第一设备的内核的处理策略设置为非功耗优先策略。

该实现方式中,在设置第一设备的传输参数时,根据第一连接的低时延档位值来进行动态设置,使得设置的传输参数能够更加精确的满足第一连接的低时延需求。

一种可能的实现方式中,第一时延需求信息指示所述第一连接使能的至少一种时延降低策略。这样,第一设备根据所述第一时延需求信息,确定传输参数,可以采用如下方式中的一项或者多项实现:

若所述第一连接使能的时延降低策略中包括第一种时延降低策略,则将所述第一设备的通信芯片的工作频点设置为预设频点;

若所述第一连接使能的时延降低策略中包括第二种时延降低策略,则将所述通信芯片的驱动模块的处理核的类型设置为预设类型;

若所述第一连接使能的时延降低策略中包括第三种时延降低策略,则将所述第一设备中DMA响应时延设置为预设时延;

若所述第一连接使能的时延降低策略中包括第四种时延降低策略,则将所述第一设备的内核的处理策略设置为非功耗优先策略。

该实现方式中,第一设备可以根据不同场景的低时延需求,按需选择上述第一种、第二种、第三种、第四种时延降低策略中的一种或者多种,从而实现不同层级的时延调整,最终达到时延和功耗之间的平衡。

一种可能的实现方式中,第一时延需求信息指示所述第一连接使能的至少一种时延降低策略、以及所述第一连接的低时延档位值。这样,第一设备根据所述第一时延需求信息,确定传输参数,可以采用如下方式中的一项或者多项实现:

若所述第一连接使能的时延降低策略中包括第一时延降低策略,则将所述第一设备的通信芯片的工作频点设置为与所述低时延档位值对应的预设频点;

若所述第一连接使能的时延降低策略中包括第二时延降低策略,则将所述通信芯片的驱动模块的处理核的类型设置为与所述低时延档位值对应的预设类型;

若所述第一连接使能的时延降低策略中包括第三时延降低策略,则将所述第一设备中DMA响应时延设置为与所述低时延档位值对应的预设时延;

若所述第一连接使能的时延降低策略中包括第四时延降低策略,则将所述第一设备的内核的处理策略设置为非功耗优先策略。

该实现方式中,第一设备可以根据不同场景的低时延需求,按需选择上述第一种、第二种、第三种、第四种时延降低策略中的一种或者多种,从而实现不同层级的时延调整,最终达到时延和功耗之间的平衡。并且,在设置各种时延降低策略的传输参数时,根据第一连接的低时延档位值来进行动态设置,使得设置的传输参数能够更加精确的满足第一连接的低时延需求。

一种可能的实现方式中,第一设备根据所述第一时延需求信息,通过所述第一连接向所述第二设备传输所述目标数据,可以采用如下方式实现:第一设备根据所述第一时延需求信息和第二连接对应的第二时延需求信息,确定目标时延需求信息;第二连接为第一设备与第二设备之间的连接,或者为第一设备与第三设备之间的连接;第一设备根据所述目标时延需求信息,通过第一连接向所述第二设备传输所述目标数据。

该实现方式能够实现第一连接与第二连接的时延需求冲突管理。当第一时延需求信息和第二时延需求信息不同时,第一设备根据第一时延需求信息和第二时延需求信息,确定出目标时延需求信息。目标时延需求信息即为经过冲突管理后的时延需求信息。这样,第一设备根据目标时延需求信息,通过第一连接向第二设备传输目标数据。若第一设备还需要通过第二连接向其他设备传输目标数据,则第一设备也根据目标时延需求信息,通过第二连接向其他设备传输目标数据。从而,第一设备针对不同的连接,是基于相同的目标时延需求信息进行数据传输,避免了不同连接之间的冲突。

下面介绍几种时延冲突管理的实现方式。

第一种可能的实现方式中,第一时延需求信息用于指示第一连接是否具有低时延需求,第二时延需求信息用于指示第二连接是否具有低时延需求。若第一时延需求信息指示第一连接不具有低时延需求,且,第二时延需求信息指示第二连接不具有低时延需求,则确定目标时延需求信息指示不具有低时延需求。若第一时延需求信息指示第一连接具有低时延需求,和/或,第二时延需求信息指示第二连接具有低时延需求,则确定目标时延需求信息指示具有低时延需求。

可选的,第一设备可以通过维护一个计数器实现低时延冲突管理。当某个连接使能低时延需求时,计数器的取值加1;当某个连接去使能低时延需求时,计数器的取值减1。这样,当计数器的取值为非零时,表示存在具有低时延需求的连接,该情况下,冲突管理的结果为使能低时延需求。计数器的取值为零时,表示不存在具有低时延需求的连接,该情况下,冲突管理的结果为不使能低时延需求。

第二种可能的实现方式中,第一时延需求信息用于指示第一连接具有低时延需求,以及第一连接对应的低时延档位值,第二时延需求信息用于指示第二连接具有低时延需求,以及第二连接对应的低时延档位值。在进行冲突管理时,需要针对各连接对应的低时延档位值进行冲突管理,可以采用取极值的方式。也就是说,哪个连接对低时延的需求程度最高,则将该连接对应的低时延档位值,确定为时延冲突管理后的低时延档位值。

第三种可能的实现方式中,第一时延需求信息用于指示第一连接使能的至少一种时延降低策略,第二时延需求信息用于指示第二连接使能的至少一种时延降低策略。对第一时延需求信息和第二时延需求信息进行冲突管理,得到目标时延需求信息,目标时延需求信息指示最终需要使能的至少一种时延降低策略。在进行冲突管理时,针对某种时延降低策略,若存在至少一个连接使能它,则该种时延降低策略的冲突管理结果为使能;若所有连接均未使能它,则该种时延降低策略的冲突管理结果为不使能。

可选的,第一设备可以针对每种时延降低策略分别维护一个计数器来实现时延冲突管理。以第一种时延降低策略为例,当某个连接使能第一种时延降低策略时,第一种时延降低策略对应的计数器的取值加1;当某个连接去使能第一种时延降低策略时,第一种时延降低策略对应的计数器的取值减1。这样,当第一种时延降低策略对应的计数器的取值为非零时,表示存在使能第一种时延降低策略的连接,该情况下,冲突管理的结果为使能第一种时延降低策略。第一种时延降低策略对应的计数器的取值为零时,表示不存在使能第一种时延降低策略的连接,该情况下,冲突管理的结果为不使能第一种时延降低策略。

第四种可能的实现方式中,第一时延需求信息用于指示第一连接使能的至少一种时延降低策略,以及第一连接对应的低时延档位,第二时延需求信息用于指示第二连接使能的至少一种时延降低策略,以及第二连接对应的低时延档位。在进行冲突管理时,需要针对各连接所使能的时延降低策略进行冲突管理,还需要针对各连接对应的低时延档位进行冲突管理。其中,针对各连接所使能的时延降低策略的冲突管理方式,与上述第三种可能的实现方式类似,此处不做赘述。针对各连接对应的低时延档位进行冲突管理的方式,与上述第二种可能的实现方式类似,此处不做赘述。

第二方面,本申请提供一种数据传输方法,以第一设备向第二设备传输数据为例,该方法的执行主体可以为第二设备,或者为第二设备中的处理器、处理器芯片等。该方法包括:第二设备通过第一连接从第一设备接收目标数据,所述第一连接为所述第一设备与所述第二设备之间的连接;第二设备获取所述第一连接对应的第一时延需求信息,并根据所述第一时延需求信息,对所述目标数据进行处理。

本申请中,第二设备通过第一连接从第一设备接收到目标数据,通过根据第一连接对应的第一时延需求信息,对目标数据进行处理,能够降低第二设备对目标数据的接收处理时延,满足低时延需求。

一种可能的实现方式中,第二设备根据所述第一时延需求信息,对所述目标数据进行处理,可以采用如下方式实现:第二设备根据所述第一时延需求信息,确定传输参数,所述传输参数包括如下至少一种:所述第二设备的通信芯片的工作频点、所述通信芯片对应的驱动模块的处理核的类型、所述第二设备中直接存储器访问DMA响应时延、所述第二设备的内核的处理策略;所述第二设备根据所述传输参数,对所述目标数据进行处理。

一种可能的实现方式中,所述第一时延需求信息指示如下至少一种:所述第一连接对应的时延类型为低时延类型或者高时延类型;所述第一连接的低时延档位值;所述第一连接使能的至少一种时延降低策略,所述至少一种时延降低策略包括下述中的至少一种:第一种时延降低策略、第二种时延降低策略、第三种时延降低策略、第四种时延降低策略。

一种可能的实现方式中,所述第一时延需求信息指示所述第一连接对应的时延类型为低时延类型。这样,第二设备根据所述第一时延需求信息,确定传输参数,可以采用如下方式实现:第二设备根据所述第一时延需求信息,执行如下参数设置中的至少一种:

将所述第二设备的通信芯片的工作频点设置为预设频点;

将所述通信芯片的驱动模块的处理核的类型设置为预设类型;

将所述第二设备中DMA响应时延设置为预设时延;

将所述第二设备的内核的处理策略设置为非功耗优先策略。

一种可能的实现方式中,所述第一时延需求信息指示所述第一连接对应的时延类型为低时延类型、以及所述第一连接的低时延档位值。这样,第二设备根据所述第一时延需求信息,确定传输参数,可以采用如下方式实现:第二设备根据所述第一时延需求信息,执行如下参数设置中的至少一种:

将所述第二设备的通信芯片的工作频点设置为与所述低时延档位值对应的预设频点;

将所述通信芯片的驱动模块的处理核的类型设置为与所述低时延档位值对应的预设类型;

所述第二设备中DMA响应时延设置为与所述低时延档位值对应的预设时延;

所述第二设备的内核的处理策略设置为非功耗优先策略。

一种可能的实现方式中,所述第一时延需求信息指示所述第一连接使能的至少一种时延降低策略;所述第二设备根据所述第一时延需求信息,确定传输参数,包括下述中的至少一项:

若所述第一连接使能的时延降低策略中包括第一种时延降低策略,则将所述第二设备的通信芯片的工作频点设置为预设频点;

若所述第一连接使能的时延降低策略中包括第二种时延降低策略,则将所述通信芯片的驱动模块的处理核的类型设置为预设类型;

若所述第一连接使能的时延降低策略中包括第三种时延降低策略,则将所述第二设备中DMA响应时延设置为预设时延;

若所述第一连接使能的时延降低策略中包括第四种时延降低策略,则将所述第二设备的内核的处理策略设置为非功耗优先策略。

一种可能的实现方式中,所述第一时延需求信息指示所述第一连接使能的至少一种时延降低策略、以及所述第一连接的低时延档位值;所述第二设备根据所述第一时延需求信息,确定传输参数,包括下述中的至少一项:

若所述第一连接使能的时延降低策略中包括第一时延降低策略,则将所述第二设备的通信芯片的工作频点设置为与所述低时延档位值对应的预设频点;

若所述第一连接使能的时延降低策略中包括第二时延降低策略,则将所述通信芯片的驱动模块的处理核的类型设置为与所述低时延档位值对应的预设类型;

若所述第一连接使能的时延降低策略中包括第三时延降低策略,则将所述第二设备中DMA响应时延设置为与所述低时延档位值对应的预设时延;

若所述第一连接使能的时延降低策略中包括第四时延降低策略,则将所述第二设备的内核的处理策略设置为非功耗优先策略。

一种可能的实现方式中,所述第二设备根据所述第一时延需求信息,对所述目标数据进行处理,可以采用如下方式实现:第二设备根据所述第一时延需求信息和第二连接对应的第二时延需求信息,确定目标时延需求信息;所述第二连接为所述第二设备与所述第一设备之间的连接,或者为所述第二设备与第三设备之间的连接;第二设备根据所述目标时延需求信息,对所述目标数据进行处理。

第三方面,本申请提供一种数据传输装置,该数据传输装置可以为软件和/或硬件的形式。示例性的,数据传输装置可以为第一设备或者第一设备中的芯片、模块或者单元。数据传输装置包括:处理模块和发送模块。其中,

处理模块用于,确定待通过第一连接向第二设备传输的目标数据,所述第一连接为第一设备与所述第二设备之间的连接;

处理模块还用于,获取所述第一连接对应的第一时延需求信息;

发送模块,用于根据所述第一时延需求信息,通过所述第一连接向所述第二设备传输所述目标数据。

一种可能的实现方式中,发送模块具体用于:根据所述第一时延需求信息,确定传输参数,所述传输参数包括如下至少一种:所述第一设备的通信芯片的工作频点、所述通信芯片对应的驱动模块的处理核的类型、所述第一设备中直接存储器访问DMA响应时延、所述第一设备的内核的处理策略;根据所述传输参数,通过所述第一连接向所述第二设备传输所述目标数据。

一种可能的实现方式中,所述第一时延需求信息指示如下至少一种:

所述第一连接对应的时延类型为低时延类型或者高时延类型;

所述第一连接的低时延档位值;

所述第一连接使能的至少一种时延降低策略,所述至少一种时延降低策略包括下述中的至少一种:第一种时延降低策略、第二种时延降低策略、第三种时延降低策略、第四种时延降低策略。

一种可能的实现方式中,所述第一时延需求信息指示所述第一连接对应的时延类型为低时延类型;发送模块具体用于根据所述第一时延需求信息,执行如下参数设置中的至少一种:

将所述第一设备的通信芯片的工作频点设置为预设频点;

将所述通信芯片的驱动模块的处理核的类型设置为预设类型;

将所述第一设备中DMA响应时延设置为预设时延;

将所述第一设备的内核的处理策略设置为非功耗优先策略。

一种可能的实现方式中,所述第一时延需求信息指示所述第一连接对应的时延类型为低时延类型、以及所述第一连接的低时延档位值;发送模块具体用于根据所述第一时延需求信息,执行如下参数设置中的至少一种:

将所述第一设备的通信芯片的工作频点设置为与所述低时延档位值对应的预设频点;

将所述通信芯片的驱动模块的处理核的类型设置为与所述低时延档位值对应的预设类型;

所述第一设备中DMA响应时延设置为与所述低时延档位值对应的预设时延;

所述第一设备的内核的处理策略设置为非功耗优先策略。

一种可能的实现方式中,所述第一时延需求信息指示所述第一连接使能的至少一种时延降低策略;发送模块具体用于执行下述中的至少一项:

若所述第一连接使能的时延降低策略中包括第一种时延降低策略,则将所述第一设备的通信芯片的工作频点设置为预设频点;

若所述第一连接使能的时延降低策略中包括第二种时延降低策略,则将所述通信芯片的驱动模块的处理核的类型设置为预设类型;

若所述第一连接使能的时延降低策略中包括第三种时延降低策略,则将所述第一设备中DMA响应时延设置为预设时延;

若所述第一连接使能的时延降低策略中包括第四种时延降低策略,则将所述第一设备的内核的处理策略设置为非功耗优先策略。

一种可能的实现方式中,所述第一时延需求信息指示所述第一连接使能的至少一种时延降低策略、以及所述第一连接的低时延档位值;所述发送模块具体用于执行下述中的至少一项:

若所述第一连接使能的时延降低策略中包括第一时延降低策略,则将所述第一设备的通信芯片的工作频点设置为与所述低时延档位值对应的预设频点;

若所述第一连接使能的时延降低策略中包括第二时延降低策略,则将所述通信芯片的驱动模块的处理核的类型设置为与所述低时延档位值对应的预设类型;

若所述第一连接使能的时延降低策略中包括第三时延降低策略,则将所述第一设备中DMA响应时延设置为与所述低时延档位值对应的预设时延;

若所述第一连接使能的时延降低策略中包括第四时延降低策略,则将所述第一设备的内核的处理策略设置为非功耗优先策略。

一种可能的实现方式中,发送模块具体用于:根据所述第一时延需求信息和第二连接对应的第二时延需求信息,确定目标时延需求信息;所述第二连接为所述第一设备与所述第二设备之间的连接,或者为所述第一设备与第三设备之间的连接;根据所述目标时延需求信息,通过所述第一连接向所述第二设备传输所述目标数据。

第四方面,本申请提供一种数据传输装置,该数据传输装置可以为软件和/或硬件的形式。示例性的,数据传输装置可以为第一设备或者第一设备中的芯片、模块或者单元。数据传输装置包括:接收模块和处理模块。其中,

接收模块用于,通过第一连接从第一设备接收目标数据,所述第一连接为所述第一设备与第二设备之间的连接;

处理模块用于,获取所述第一连接对应的第一时延需求信息;

处理模块还用于,根据所述第一时延需求信息,对所述目标数据进行处理。

本申请中,第二设备通过第一连接从第一设备接收到目标数据,通过根据第一连接对应的第一时延需求信息,对目标数据进行处理,能够降低第二设备对目标数据的接收处理时延,满足低时延需求。

一种可能的实现方式中,处理模块具体用于:根据所述第一时延需求信息,确定传输参数,所述传输参数包括如下至少一种:所述第二设备的通信芯片的工作频点、所述通信芯片对应的驱动模块的处理核的类型、所述第二设备中直接存储器访问DMA响应时延、所述第二设备的内核的处理策略;根据所述传输参数,对所述目标数据进行处理。

一种可能的实现方式中,所述第一时延需求信息指示如下至少一种:

所述第一连接对应的时延类型为低时延类型或者高时延类型;

所述第一连接的低时延档位值;

所述第一连接使能的至少一种时延降低策略,所述至少一种时延降低策略包括下述中的至少一种:第一种时延降低策略、第二种时延降低策略、第三种时延降低策略、第四种时延降低策略。

一种可能的实现方式中,所述第一时延需求信息指示所述第一连接对应的时延类型为低时延类型;处理模块具体用于根据所述第一时延需求信息,执行如下参数设置中的至少一种:

将所述第二设备的通信芯片的工作频点设置为预设频点;

将所述通信芯片的驱动模块的处理核的类型设置为预设类型;

将所述第二设备中DMA响应时延设置为预设时延;

将所述第二设备的内核的处理策略设置为非功耗优先策略。

一种可能的实现方式中,所述第一时延需求信息指示所述第一连接对应的时延类型为低时延类型、以及所述第一连接的低时延档位值;处理模块具体用于根据所述第一时延需求信息,执行如下参数设置中的至少一种:

将所述第二设备的通信芯片的工作频点设置为与所述低时延档位值对应的预设频点;

将所述通信芯片的驱动模块的处理核的类型设置为与所述低时延档位值对应的预设类型;

所述第二设备中DMA响应时延设置为与所述低时延档位值对应的预设时延;

所述第二设备的内核的处理策略设置为非功耗优先策略。

一种可能的实现方式中,所述第一时延需求信息指示所述第一连接使能的至少一种时延降低策略;处理模块具体用于执行如下至少一项:

若所述第一连接使能的时延降低策略中包括第一种时延降低策略,则将所述第二设备的通信芯片的工作频点设置为预设频点;

若所述第一连接使能的时延降低策略中包括第二种时延降低策略,则将所述通信芯片的驱动模块的处理核的类型设置为预设类型;

若所述第一连接使能的时延降低策略中包括第三种时延降低策略,则将所述第二设备中DMA响应时延设置为预设时延;

若所述第一连接使能的时延降低策略中包括第四种时延降低策略,则将所述第二设备的内核的处理策略设置为非功耗优先策略。

一种可能的实现方式中,所述第一时延需求信息指示所述第一连接使能的至少一种时延降低策略、以及所述第一连接的低时延档位值;处理模块具体用于执行如下至少一项:

若所述第一连接使能的时延降低策略中包括第一时延降低策略,则将所述第二设备的通信芯片的工作频点设置为与所述低时延档位值对应的预设频点;

若所述第一连接使能的时延降低策略中包括第二时延降低策略,则将所述通信芯片的驱动模块的处理核的类型设置为与所述低时延档位值对应的预设类型;

若所述第一连接使能的时延降低策略中包括第三时延降低策略,则将所述第二设备中DMA响应时延设置为与所述低时延档位值对应的预设时延;

若所述第一连接使能的时延降低策略中包括第四时延降低策略,则将所述第二设备的内核的处理策略设置为非功耗优先策略。

一种可能的实现方式中,处理模块具体用于:根据所述第一时延需求信息和第二连接对应的第二时延需求信息,确定目标时延需求信息;所述第二连接为所述第二设备与所述第一设备之间的连接,或者为所述第二设备与第三设备之间的连接;根据所述目标时延需求信息,对所述目标数据进行处理。

第五方面,本申请提供一种电子设备,包括:存储器和处理器;所述处理器用于与所述存储器耦合,读取并执行所述存储器中的指令,以实现第一方面或者第一方面任一种可能的实现方式所述的方法。

第六方面,本申请提供一种电子设备,包括:存储器和处理器;所述处理器用于与所述存储器耦合,读取并执行所述存储器中的指令,以实现第二方面或者第二方面任一种可能的实现方式所述的方法。

第七方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令被执行时,实现第一方面或者第一方面任一种可能的实现方式所述的方法。

第八方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令被执行时,实现第二方面或者第二方面任一种可能的实现方式所述的方法。

第九方面,本申请提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被执行时,实现第一方面或者第一方面任一种可能的实现方式所述的方法。

第十方面,本申请提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被执行时,实现第二方面或者第二方面任一种可能的实现方式所述的方法。

上述第二方面至第十方面的各可能的实现方式,其有益效果可以参见上述第一方面所带来的有益效果,在此不加赘述。

本申请实施例提供一种数据传输方法、装置、设备、存储介质及程序,该方法包括:第一设备确定待通过第一连接向第二设备传输的目标数据,所述第一连接为所述第一设备与所述第二设备之间的连接;第一设备获取所述第一连接对应的第一时延需求信息,根据所述第一时延需求信息,通过所述第一连接向所述第二设备传输所述目标数据。上述过程中,第一设备通过根据第一连接对应的第一时延需求信息,向第二设备传输目标数据,能够降低第一设备对目标数据的传输时延,满足低时延需求。

附图说明

图1A为本申请实施例提供的一种通信系统的示意图;

图1B为本申请实施例提供的另一种通信系统的示意图;

图2A为本申请实施例提供的一组用户界面的示意图;

图2B为本申请实施例提供的另一组用户界面的示意图;

图2C为本申请实施例提供的又一组用户界面的示意图;

图3为本申请实施例涉及的电子设备的系统架构的示意图;

图4为本申请实施例提供的数据传输过程的示意图;

图5为本申请实施例提供的打点分析的示意图;

图6为本申请实施例提供的一种数据传输方法的示意图;

图7A为本申请实施例提供的一种多连接的示意图;

图7B为本申请实施例提供的另一种多连接的示意图;

图8为本申请实施例提供的另一种数据传输方法的示意图;

图9为本申请实施例提供的多连接低时延冲突管理过程的示意图;

图10为本申请实施例提供的一种冲突管理过程的示意图;

图11为本申请实施例提供的又一种数据传输方法的示意图;

图12为本申请实施例提供的再一种数据传输方法的示意图;

图13为本申请实施例提供的一种数据传输装置的结构示意图;

图14为本申请实施例提供的另一种数据传输装置的结构示意图;

图15为本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

首先对本申请中涉及的术语和概念进行解释说明。

分布式文件系统(distributed file system,DFS):是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与其他节点相连;若干不同的逻辑磁盘分区或卷标组合在一起而形成的完整的有层次的文件系统。DFS为分布在网络上任意位置的资源提供一个逻辑上的树形文件系统结构,从而使用户访问分布在网络上的共享文件更加简便。单独的DFS共享文件夹的作用是相对于通过网络上的其他共享文件夹的访问点。

内核态、用户态:用户态提供应用程序运行的空间,应用程序的执行需要依托于内核提供的资源。内核态控制计算机的硬件资源,例如协调处理器资源、分配内存资源等,并且提供稳定的环境供应用程序运行。为了使应用程序访问到内核管理的资源(例如:处理器资源、内存资源,输入/输出(input/output,I/O)资源等),内核必须提供一组通用的访问接口,这些接口就叫系统调用。通过系统调用可以由用户态进入内核态。

内核态与用户态对应操作系统的两种运行级别。当一个任务(进程)执行系统调用而陷入内核代码中执行时,就称进程处于内核态。此时处理器处于特权级最高的内核代码中执行。当进程处于内核态时,执行的内核代码会使用当前进程的内核栈。每个进程都有自己的内核栈。当进程在执行用户自己的代码时,则称其处于用户态。即此时处理器在特权级最低的用户代码中运行。当正在执行用户程序而突然被中断程序中断时,此时用户程序也可以象征性地称为处于进程的内核态。因为中断处理程序将使用当前进程的内核栈。这与处于内核态的进程的状态有些类似。

直接存储器访问(direct memory access,DMA):顾名思义,就是绕开中央处理器(central processing unit,CPU)直接访问存储器的意思。在计算机中,相比CPU,存储器和外设的速度是非常慢的,因而在存储器和存储器(或者存储器和设备)之间搬运数据,非常浪费CPU的时间,造成CPU无法及时处理一些实时事件。因此,提出一种专门用来搬运数据的器件----DMA控制器,协助CPU进行数据搬运。通过DMA控制器将数据从一个地址空间复制到另外一个地址空间。利用DMA控制器可以实现存储器和存储器(或者存储器和设备)之间的高速数据传输。

DMA搬移是由CPU发起的,而数据搬移是由DMA控制器来执行的。在实现DMA传输时,是由DMA控制器直接掌管总线,因此,存在着一个总线控制权转移问题。即DMA传输前,CPU要把总线控制权交给DMA控制器,而在结束DMA传输后,DMA控制器应立即把总线控制权再交回给CPU。

一个完整的DMA传输过程必须经过DMA请求、DMA响应、DMA传输、DMA结束4个步骤。其中,(1)在DMA请求步骤中,CPU向DMA控制器发送搬移请求,即,CPU会告诉DMA控制器,帮忙将第一存储空间的数据搬到第二存储空间。(2)在DMA响应步骤中,DMA控制器对DMA请求判别优先级及屏蔽,向总线裁决逻辑提出总线请求。当CPU执行完当前总线周期即可释放总线控制权。此时,总线裁决逻辑输出总线应答,表示DMA控制器已经响应,DMA控制器开始DMA传输。(3)在DMA传输步骤中,DMA控制器获得总线控制权后,CPU即刻挂起或只执行内部操作,由DMA控制器输出读写命令,在存储器和存储器之间直接进行数据传送,在传送过程中不需要CPU的参与。(4)在DMA结束步骤中,当完成规定的数据传输后,DMA控制器即释放总线控制权。CPU恢复使用总线,检查本次DMA传输操作的正确性。最后,CPU带着本次操作结果及状态继续执行原来的程序。由此可见,DMA传输方式无需CPU直接控制传输,也没有中断处理方式那样保留现场和恢复现场的过程,通过DMA控制器开辟一条直接传送数据的通路,使CPU的效率大为提高。

DMA响应时延:上述DMA搬移过程中,从DMA控制器接收到CPU发起的搬移请求,到DMA控制器对该搬移请求进行响应之间,存在一定的时延,本申请实施例中将该时延称为DMA响应时延。在相关实现中,DMA响应时延通过DMA响应定时器控制,DMA响应定时器的时长为预设的默认时长T1。在DMA控制器接收到某个搬移请求之后,启动DMA响应定时器,该DMA响应定时器的时长为T1。在DMA响应定时器执行期间,DMA控制器可能还会接收到其他的搬移请求。当DMA响应定时器超时后,DMA控制器开始响应这些搬移请求。

为了便于理解,下面对本申请涉及的通信系统和应用场景进行介绍。

目前,不同电子设备之间可以基于无线保真(wireless fidelity,WiFi)无线网络进行数据传输。

示例性的,图1A为本申请实施例提供的一种通信系统的示意图。如图1A所示,该通信系统包括第一设备10和第二设备20。第一设备10和第二设备20接入同一WiFi网络中。第一设备10和第二设备20之间可以直接基于WiFi无线网络进行点对点(peer to peer,P2P)数据传输。例如,第一设备10将待发送数据通过WiFi网络直接发送给第二设备20。该场景下,第一设备10和第二设备20之间的通信模式可以称为P2P通信模式。

示例性的,图1B为本申请实施例提供的另一种通信系统的示意图。如图1B所示,该通信系统包括第一设备10、第二设备20和中转设备30。上述第一设备10、第二设备20和中转设备30接入同一WiFi网络中。第一设备10和第二设备20之间也可以基于WiFi网络进行数据传输,其与图1A所示的通信系统的不同之处在于,第一设备10和第二设备20之间进行数据传输时需要经过中转设备30的转发。例如,第一设备10将待发送数据通过WiFi网络发送给中转设备30,中转设备30将接收到的数据转发至第二设备20。其中,上述中转设备30可以为各种接入点(access point,AP)设备,例如路由器、交换机等。该场景下,第一设备10和第二设备20之间的通信模式可以称为跨AP通信模式。

上述图1A和图1B所示的通信系统,基于WiFi无线网络进行数据传输,具有传输速度快、不需要耗费数据流量等特点,可以被应用于多种应用场景中。下面以几种可能的应用场景为例进行举例说明。

示例性的,一种可能的应用场景中,第一设备可以向第二设备分享例如图片、音频、视频、文件、应用程序等数据。以图片为例,图2A为本申请实施例提供的一组用户界面的示意图。如图2A所示,用户在设备A的界面201中选择待分享的图片之后,点击“分享”按钮,设备A跳转至界面202。在界面202中,用户点击待分享至的目标设备(设备B)之后,设备A显示界面203,在界面203中显示提示信息“等待接收”。此时,如界面205所示,设备B中显示提示信息“设备A想给你分享3张图片,是否接收?”,当用户点击“接收”按钮后,设备A开始向设备B传输数据。当数据传输完成后,设备B的显示界面中显示提示信息“接收成功”,如界面206所示。并且,设备A的显示界面中显示提示信息“发送成功”,如界面204所示。

示例性的,另一种可能的应用场景中,第一设备可以将显示界面投屏显示到第二设备的屏幕。例如,第一设备可以为手机、pad等,第二设备可以为智慧屏、电视机等。图2B为本申请实施例提供的另一组用户界面的示意图。如图2B所示,手机的显示界面被投屏显示到智慧屏上。在投屏过程中,手机将待投屏的界面数据发送至智慧屏,智慧屏对接收到的界面数据进行显示。

示例性的,又一种可能的应用场景中,第一设备和第二设备采用分布式文件系统,第一设备可以搜索、浏览、下载或者分享第二设备中的文件。以分布式图库功能为例,假设设备A和设备B支持分布式图库功能,设备A和设备B登录同一账号后,设备A和设备B可以共享图库。

举例而言,图2C为本申请实施例提供的又一组用户界面的示意图。图2C示例的是设备A的三种可能的用户界面示意图。参见图2C中的界面207所示,用户通过设备A可以浏览到本机(即设备A)中存储的图片。参见图2C中的界面208所示,用户通过设备A还可以浏览设备B中存储的照片。该场景下,用户在设备A的屏幕进行滑动浏览操作时,设备A根据用户的浏览操作,向设备B发送图片获取请求,用以请求当前待显示的图片。设备B接收到图片获取请求后,向设备A发送待显示的图片。参见图2C中的界面209所示,用户还可以通过设备A搜索设备B中存储的图片。例如,用户在图片搜索界面中输入搜索关键词“美食”,设备A在搜索结果中既可以显示在本机(即设备A)中搜索到的图片,还可以显示在设备B中搜索得到的图片。

需要说明的是,上述图2A、图2B和图2C是以几种可能的应用场景为例进行举例说明,并不对本申请实施例的应用场景进行限制。实际应用中,还可以存在其他更多的应用场景,例如,第一设备控制第二设备的场景。以手机控制车机为例,手机向车机发送控制指令,车机根据控制指令执行对应的动作,并将执行结果返回给手机。又例如,手机克隆场景,即,将旧手机中的数据迁移到新手机上,等等。

在基于WiFi无线网络的通信系统中,通信时延是非常重要的性能指标。本申请实施例中的通信时延可以采用往返时延(round-trip time,RTT)来表示。往返时延是指,从发送端发送数据开始,到发送端收到来自接收端的确认(接收端收到数据后便立即发送确认)为止,总共经历的时延。

前述的基于WiFi通信的数据分享、投屏、分布式图库、跨设备控制等应用场景中,对通信时延均具有较高的要求。而目前通信时延较高,无法满足应用场景的需求。

举例而言,在图2A所示的数据分享场景中,由于设备A与设备B之间的通信时延较高,使得待分享数据传输所需时间较长,影响用户体验。在图2B所示的投屏场景中,由于通信时延较高,导致智慧屏显示的投屏画面出现卡顿。在图2C所示的分布式图库场景中,用户通过设备A浏览设备B中存储的图片时,由于设备A与设备B之间的通信时延较高,导致跨设备的数据请求以及数据传输均较慢,可能出现用户在设备A的屏幕上进行滑动浏览操作时,设备A的显示屏幕中出现较大面积的白块的现象,影响用户体验。在跨设备的控制场景中,用户在使用设备A控制设备B时,由于设备A与设备B之间的通信时延较高,导致操作反应慢,影响用户体验。

另外,在分布式文件系统中,通信时延与分布式文件系统的随机读速率、以及跨设备的文件处理(例如创建文件、删除文件、搜索文件等)速率相关。

举例而言,目前,以分布式文件系统为例,如表1所示,当采用P2P模式进行通信时,分布式文件系统的通信时延大约为10ms左右,基于该通信时延,分布式文件系统的随机读速率大约为5.4Mbps,跨设备创建10000个文件所需时间大约为145s,跨设备删除10000个文件所需时间大约为124s。当采用跨AP模式进行通信时,分布式文件系统的通信时延大约为18ms左右,基于该通信时延,分布式文件系统的随机读速率大约为3.2Mbps,跨设备创建10000个文件所需时间大约为207s,跨设备删除10000个文件所需时间大约为203s。

表1

当分布式文件系统的通信时延较高时,还会使得分布式文件系统的随机读速率、以及跨设备的文件处理速率较低。

综上,在基于WiFi的通信系统中,如何降低通信时延,是亟待解决的技术问题。

本申请实施例提供一种数据传输方法,用以降低端到端的通信传输时延,满足低时延传输需求。

本申请实施例中,执行数据传输方法的执行主体可以是电子设备,也可以是电子设备中的装置。示例性地,电子设备可以是手机、平板电脑、笔记本电脑、智慧屏、智能穿戴设备、智能车载设备、智能家居设备、智能音箱等,电子设备中的装置可以是处理器、芯片系统、电路或者模块等,本申请不作限制。

图3为本申请实施例涉及的电子设备的系统架构的示意图。如图3所示,电子设备可以包括硬件资源层、运行在硬件资源层之上的驱动层、运行在驱动层之上的内核态、以及运行在内核态之上的用户态。

参见图3,硬件资源层可以包括:处理器、存储器、以及WiFi芯片等硬件。

其中,处理器可以包括一个或多个处理单元,例如:处理器可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,显示处理单元(displayprocess unit,DPU),和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。在一些实施例中,电子设备也可以包括一个或多个处理器。其中,控制器可以是电子设备的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。处理器中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器中的存储器为高速缓冲存储器。该存储器可以保存处理器刚用过或循环使用的指令或数据。如果处理器需要再次使用该指令或数据,可从所述存储器中直接调用。这就避免了重复存取,减少了处理器的等待时间,因而提高了电子设备的效率。

存储器可以包括外部存储器和/或内部存储器。

外部存储器可以为外部存储卡,例如Micro SD卡,实现扩展电子设备的存储能力。外部存储卡通过外部存储器接口与处理器通信,实现数据存储功能。例如将音乐、照片、视频等数据文件保存在外部存储卡中。

内部存储器可以用于存储一个或多个计算机程序,该一个或多个计算机程序包括指令。处理器可以通过运行存储在内部存储器的上述指令,从而使得电子设备执行各种功能应用以及数据处理等。内部存储器可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统;该存储程序区还可以存储一个或多个应用程序(比如图库、联系人等)等。存储数据区可存储电子设备使用过程中所创建的数据(比如照片,联系人等)等。此外,内部存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。在一些实施例中,处理器可以通过运行存储在内部存储器的指令,和/或存储在设置于处理器中的存储器的指令,来使得电子设备执行各种功能应用及数据处理。

一些示例中,处理器和存储器可以彼此独立。另一些示例中,处理器和存储器可以集成到芯片系统中。

WiFi芯片用于实现电子设备的WiFi通信功能。本申请实施例中,WiFi芯片可以为集成到处理器/处理器芯片中的硬件模块,WiFi芯片还可以为独立于处理器/处理器芯片的单独芯片。

继续参见图3,驱动层的作用是为上层程序提供硬件资源的操作接口,使得上层程序可以不管硬件资源的内部实现,只需要调用接口即可。内核态可以包括链路层、IP层、TCP层等。其中,链路层、IP层、TCP层用于实现通信协议的封装和解析处理功能。

根据电子设备中运行的操作系统的不同,电子设备的内核态可以对应不同操作系统的内核。例如,电子设备运行的是Linux操作系统,则电子设备的内核态为Linux内核。电子设备运行的是Android操作系统,则电子设备的内核态为Android内核。电子设备运行的是iOS操作系统,则电子设备的内核态为iOS内核。电子设备运行的是windows操作系统,则电子设备的内核态为windows内核。

继续参见图3,用户态包括应用层,例如,浏览器、通讯录、文字处理软件、即时通信软件、图库、分享工具、投屏工具等应用。

下面结合图4,描述电子设备之间的数据传输过程。

图4为本申请实施例提供的数据传输过程的示意图。图4中,以第一设备向第二设备传输目标数据为例进行说明。

如图4所示,存储器划分为用户态存储空间和内核态存储空间。用户态存储空间用于存储应用程序在用户态运行时所涉及的数据。内核态存储空间用于存储应用程序在内核态运行时所涉及的数据。

第一设备的内核态包括内核调度模块和发送模块。第二设备的内核态包括内核调度模块和接收模块。

第一设备和第二设备之间进行数据传输时,从上层到下层涉及到用户态、内核态、WiFi驱动模块以及WiFi芯片。下面对第一设备发送目标数据的过程以及第二设备接收目标数据的过程分别进行说明。

第一设备向第二设备发送目标数据的过程如下:

(1)用户态向内核态发送第一指示信息,所述第一指示信息用于指示待向第二设备发送的目标数据。

示例性的,第一指示信息包括所述目标数据在用户态存储空间中的存储位置。

(2)内核态中的内核调度模块根据第一指示信息向DMA控制器发送搬移请求。

(3)DMA控制器根据该搬移请求,将目标数据从用户态存储空间搬移至内核态存储空间。

(4)内核态中的发送模块从内核存储空间获取目标数据,并向WiFi驱动模块发送目标数据。

(5)WiFi驱动模块向WiFi芯片发送目标数据。

(6)WiFi芯片接收到目标数据后,向第二设备发送该目标数据。

第二设备接收目标数据的过程如下:

(1)WiFi芯片从第一设备接收到目标数据。

(2)WiFi芯片向WiFi驱动模块发送目标数据。

(3)WiFi驱动模块向内核态中的接收模块发送目标数据。

(4)内核态中的接收模块接收目标数据,并将目标数据存储至内核态存储空间中。

(5)内核态中的内核调度模块向DMA控制器发送搬移请求。

(6)DMA控制器根据该搬移请求,将目标数据从内核态存储空间搬移至用户态存储空间。

(7)用户态从用户态存储空间中获取目标数据,并对目标数据进行显示处理或者其他处理。

发明人为了解决WiFi通信中时延较高的问题,针对上述数据传输过程中的时延分布进行分析。图5为本申请实施例提供的打点分析的示意图。如图5所示,分别对用户态、内核态、WiFi芯片中的各接口进行打点,并对时延进行统计分析,发现:时延消耗主要分布在内核调度模块、WiFi驱动模块和WiFi芯片中,而上层用户态应用中的时延较低。

举例而言,以第一设备随机读取第二设备4KB数据的场景为例。将数据传输过程分为如下几个阶段:

A.第一设备的文件系统将待发送的4KB数据从磁盘读取到内存。

B.第一设备的应用进程对4KB数据进行处理。

C.第一设备将4KB数据传输至第二设备(即,由第一设备的内存传输至第二设备的内存)。

D.第二设备的应用进程对接收到的4KB数据进行处理。

E.第二设备的文件系统将4KB数据由内存写入磁盘。

各阶段的时延消耗如表2所示。

表2

由表2可见,第一设备随机读取第二设备4KB数据的场景中,总消耗时延为4805μs,其中主要时延消耗在传输阶段(占比93.9%)。

因此,本申请实施例,结合图4所示的数据传输过程,提供了多种时延降低策略,用以降低端到端的通信时延。下面对各种时延降低策略分别进行介绍。

第一种时延降低策略:

WiFi芯片作为数据发送和接收的底层硬件模块,其工作频点很大程度上影响了wifi芯片的数据处理速率。若WiFi芯片的工作频点越高,则WiFi芯片的数据处理速率越高;若WiFi芯片的工作频点越低,则WiFi芯片的数据处理速率越低。

通常,在数据传输过程中,WiFi芯片采用基于传输带宽的频点调整策略。具体而言,根据当前传输带宽自动调整WiFi芯片的工作频点。当传输带宽较大时,将WiFi芯片的工作频点调整地较高,当传输带宽较小时,WiFi芯片的工作频点调整地较低。

而实际应用场景中,在数据传输具有低时延需求时,对应的传输带宽通常较小,因此,按照上述的基于传输带宽的频点调整策略,通常会使得WiFi芯片工作在较低工作频点下。

本申请实施例中,在数据传输具有低时延需求时,不再采用基于传输带宽的频点调整策略,而是将WiFi芯片的工作频点设置为一个较高的频点。示例性的,在确定数据传输具有低时延需求时,可以将WiFi芯片的工作频点设置为预设频点,预设频点大于参考频点。其中,参考频点可以为经验值,或者,参考频点可以为基于传输带宽的频点调整策略中当前传输带宽所对应的工作频点。

通过将WiFi芯片的工作频点设置为较高的频点,能够提高WiFi芯片的数据处理速度,从而降低端到端数据传输时延,满足低时延需求。

可选的,在数据传输具有低时延需求时,还可以根据具体的低时延档位值,动态调整WiFi芯片的工作频点。其中,低时延档位值指示对低时延的需求程度。不同低时延档位值所对应的WiFi芯片的工作频点不同。示例性的,可以预先定义如表3所示的对应关系,即不同低时延档位值所对应的工作频点。这样,可以根据低时延档位值查询该对应关系,确定出WiFi芯片的目标工作频点,并进行调整。

表3

通过根据低时延档位值,动态确定WiFi芯片的工作频点,使得WiFi芯片的数据处理速度可以满足不同档位值的低时延需求。

第二种时延降低策略:

结合图4所示的数据传输过程,电子设备的WiFi驱动模块中包括至少一个线程,例如,包括发送线程和接收线程。发送线程用于将目标数据发送至WiFi芯片。接收线程用于从WiFi芯片接收目标数据。当WiFi芯片的数据处理速度提高后,本申请实施例中,还可以对WiFi驱动模块中的发送线程/接收线程的数据处理速度进行提升,以匹配WiFi芯片的数据处理速度。

通常,电子设备采用多核CPU时,需要对线程进行绑核处理。绑核是指建立线程与CPU的核心之间的绑定关系,使得该线程可以在其绑定的核心上运行。当电子设备的CPU包括多个核心时,该多个核心可以采用不同类型的核心的组合。本申请实施例中,核心的类型可以包括:大核、小核和中核。大核的处理性能优于中核的处理性能,中核的处理性能优于小核的处理性能。举例而言,某款型号的手机的CPU可以包括:1个大核、3个中核、4个小核。

相关技术中,在对WiFi驱动模块中的发送线程/接收线程进行绑核处理时,默认采用基于吞吐量与PPS门限的绑核策略。具体而言,根据吞吐量与PPS门限来确定将WiFi驱动模块中的发送线程/接收线程绑定到哪个核心上。示例性的,当吞吐量与PPS门限较高时,将WiFi驱动模块中的发送线程/接收线程绑定到中核上,当吞吐量与PPS门限较低时,将WiFi驱动模块中的发送线程/接收线程绑定到小核上。

而实际应用场景中,在数据传输具有低时延需求时,对应的吞吐量与PPS门限通常较低,因此,按照上述的基于吞吐量与PPS门限的绑核策略,会使得WiFi驱动模块中的发送线程/接收线程绑定到小核。

本申请实施例中,在数据传输具有低时延需求时,不再采用基于吞吐量与PPS门限的绑核策略,而是将WiFi驱动模块中的发送线程/接收线程绑定到处理性能较高的核心。可选的,将WiFi驱动模块中的发送线程/接收线程绑定到中核或者大核。

通过将WiFi驱动模块中的发送线程/接收线程绑定到中核或者大核,能够提高WiFi驱动模块的数据处理速度,从而降低端到端数据传输时延,满足低时延需求。

第三种时延降低策略:

结合图4所示的数据传输过程,第一设备的内核调度模块通过DMA控制器将目标数据从用户态存储空间搬移至内核态存储空间,第二设备的内核调度模块通过DMA控制器将目标数据从内核态存储空间搬移至用户态存储空间。

相关技术中,在DMA控制器响应内核调度模块的数据搬移请求时,是按照默认的DMA响应时延进行数据搬移处理。本申请实施例中,在数据传输具有低时延需求时,可以按照第一DMA响应时延进行数据搬移处理,第一DMA响应时延小于上述默认的DMA响应时延。这样可以提高DMA控制器的响应速度。示例性的,可以降低DMA响应定时器的时长。

通过按照较低的DMA响应时延进行数据搬移处理,能够提高DMA控制器的搬移响应速度,降低数据搬移过程所需时长,从而降低端到端数据传输时延,满足低时延需求。

可选的,在数据传输具有低时延需求时,还可以根据低时延需求的低时延档位值,动态调整DMA响应时延。其中,低时延档位值指示对低时延的需求程度。不同低时延档位所对应的DMA响应时延不同。当低时延档位值指示对低时延的需求程度较高时,其对应的DMA响应时延较小;当低时延档位值指示对低时延的需求程度较低时,其对应的DMA响应时延较大。示例性的,可以预先定义如表4所示的对应关系,即不同低时延档位值所对应的DMA响应时延。这样,可以根据低时延档位值查询该对应关系,确定出DMA响应时延,并进行调整。

表4

通过根据低时延档位值,动态调整DMA响应时延,使得DAM搬移速度可以满足不同档位的低时延需求。

第四种时延降低策略:

结合图4所示的数据传输过程,内核调度模块还负责WiFi芯片的功耗管理。相关技术中,内核调度模块按照功耗优先策略实现数据包的处理逻辑。示例性的,在传输小数据包的场景中,可以在不同处理环节之间可以设置一定的时延,这样,可以不用对每个数据包进行实时处理,而是累积多个数据包之后,再统一对多个数据包进行处理,以实现降低功耗的目的。

本申请实施例中,在数据传输具有低时延需求时,内核调度模块关闭功耗优先策略,即不再按照功耗优先策略实现数据包的处理逻辑。

通过关闭功耗优先策略,能够提高WiFi芯片的数据处理速度,从而降低端到端数据传输时延,满足低时延需求。

需要说明的是,电子设备在数据传输过程中,可以从上述四种时延降低策略中选择使用其中的一种或者多种,本申请实施例对此不作限定。能够理解的是,使用其中每一种时延降低策略均能够一定程度降低数据传输时延。当结合使用多种方式时,可以提高时延降低的效果。

图6为本申请实施例提供的一种数据传输方法的示意图。本实施例的方法可以由第一设备执行。如图6所示,本实施例的方法包括:

S601:第一设备确定待通过第一连接向第二设备传输的目标数据,所述第一连接为所述第一设备与所述第二设备之间的连接。

在第一设备需要通过第一连接向第二设备发送目标数据时,执行本实施例的方法。在执行本实施例之前,待发送的目标数据可以位于用户态存储空间中。

S602:第一设备获取所述第一连接对应的第一时延需求信息。

其中,第一时延需求信息是指用于描述第一连接进行数据传输所需达到的时延要求的相关信息。

可选的,第一时延需求信息与第一连接所对应的应用程序相关。不同的应用程序对应的第一时延需求信息不同。每个应用程序对应的第一时延需求信息可以是预设的。这样,第一设备可以根据第一连接对应的应用程序,确定出第一时延需求信息。

可选的,第一时延需求信息与第一连接的网络状态相关。当第一连接的网络状态不同时,其对应的第一时延需求信息也可能不同。也就是说,第一设备可以根据第一连接的网络状态,实时动态确定第一时延需求信息。

本实施例的方法可以由第一设备的内核态执行。示例性的,第一设备在需要通过第一连接向第二设备发送目标数据时,第一设备的用户态根据待发送的目标数据生成第一指示信息,第一指示信息用于指示目标数据在用户态存储空间的存储位置。用户态并将第一指示信息传递到内核态。并且,用户态确定第一连接对应的第一时延需求信息,并将第一时延需求信息传递到内核态。从而,内核态获取到第一指示信息和第一连接对应的第一时延需求信息。

S603:第一设备根据所述第一时延需求信息,通过所述第一连接向所述第二设备传输所述目标数据。

本实施例中,第一设备向第二设备传输目标数据的过程包括:内核态中的内核调度模块向DMA控制器发送搬移请求;DMA控制器根据该搬移请求,将目标数据从用户态存储空间搬移至内核态存储空间;内核态中的发送模块从内核存储空间获取目标数据,并向WiFi驱动模块发送目标数据;WiFi驱动模块向WiFi芯片发送目标数据;WiFi芯片接收到目标数据后,向第二设备发送该目标数据。

可选的,第一设备根据第一时延需求信息,确定传输参数,所述传输参数包括如下至少一种:第一设备的WiFi芯片的工作频点、第一设备中的WiFi驱动模块的处理核的类型、第一设备的DMA响应时延、第一设备的内核的处理策略。

上述每种传输参数对应一种时延降低策略。其中,“第一设备的WiFi芯片的工作频点”为上述的第一种时延降低策略对应的传输参数。“第一设备中的WiFi驱动模块的处理核的类型”为上述的第二种时延降低策略对应的传输参数。“第一设备的DMA响应时延”为上述的第三种时延降低策略对应的传输参数。“第一设备的内核的处理策略”为上述的第四种时延降低策略对应的传输参数。

进而,第一设备根据所述传输参数,通过第一连接向所述第二设备传输所述目标数据。

下面介绍几种可能的实现方式。

第一种可能的实现方式中,第一时延需求信息用于指示第一连接是否具有低时延需求。

本申请实施例中,“第一时延需求信息用于指示第一连接是否具有低时延需求”的另一种表述方式为“第一时延需求信息用于指示第一连接对应的时延类型为高时延类型或者低时延类型”。当第一连接对应的时延类型为高时延类型,则第一连接不具有低时延需求。当第一连接对应的时延类型为低时延类型,则第一连接具有低时延需求。后续描述中的“是否具有低时延需求”均应做此理解,后续不再赘述。

若所述第一时延需求信息指示第一连接不具有低时延需求,则可以按照现有的数据传输方式,通过第一连接向第二设备传输目标数据。

若所述第一时延需求信息指示第一连接具有低时延需求,则按照上述第一种、第二种、第三种、第四种时延降低策略中的一种或者多种,向第二设备传输所述目标数据。

可选的,第一设备按照上述第一种时延降低策略,向第二设备传输所述目标数据。

也就是说,将第一设备将WiFi芯片的工作频点设置为预设频点,预设频点大于参考频点。可选的,参考频点可以为基于传输带宽的频点调整策略中当前传输带宽所对应的工作频点。

可选的,第一设备按照上述第二种时延降低策略,向第二设备传输所述目标数据。

也就是说,将第一设备的WiFi驱动模块的处理核的类型设置为预设类型。示例性的,将第一设备的WiFi驱动模块中的至少一个线程绑定至处理器的中核或者大核。示例性的,所述至少一个线程包括发送线程和/或接收线程。

可选的,第一设备按照上述第三种时延降低策略,向第二设备传输所述目标数据。

也就是说,将第一设备中DMA响应时延设置为预设时延,第一设备的内核调度模块向DMA控制器发起搬移请求后,第一设备中的DMA控制器对所述搬移请求的响应时延小于默认的DMA响应时延。

可选的,第一设备按照上述第四种时延降低策略,向第二设备传输所述目标数据。

也就是说,将第一设备的内核的处理策略设置为非功耗优先策略,即,第一设备关闭内核调度的功耗优先策略。

可选的,第一设备按照上述第一种、第二种、第三种、第四种时延降低策略中的任意两种,向第二设备传输所述目标数据。

可选的,第一设备按照上述第一种、第二种、第三种、第四种时延降低策略中的任意三种,向第二设备传输所述目标数据。

可选的,第一设备按照上述第一种、第二种、第三种、第四种时延降低策略中的全部,向第二设备传输所述目标数据。

上述实现方式中,在数据传输具有低时延需求时,通过按照上述第一种、第二种、第三种、第四种时延降低策略中的一种或者多种,进行数据传输,能够降低端到端的传输时延,满足低时延需求。

第二种可能的实现方式中,第一时延需求信息指示第一连接具有低时延需求,以及第一连接的低时延档位值。

该实现方式与上述第一种实现方式类似,不同之处在于,在确定传输参数时依据第一连接的低时延档位值进行确定。

示例性的,在设置WiFi芯片的工作频点时,将WiFi芯片的工作频点设置为与所述低时延档位值对应的预设频点。例如,可以根据低时延档位值查询如表3所示的对应关系,来设置WiFi芯片的工作频点。在设置WiFi驱动模块的处理核的类型时,将WiFi驱动模块的处理核的类型设置为与所述低时延档位值对应的预设类型。在设置DMA响应时延时,将DMA响应时延设置为与所述低时延档位置对应的预设时延。例如,可以根据低时延档位值查询如表4所示的对应关系,来设置DMA响应时延。

该实现方式中,在设置第一设备的传输参数时,根据第一连接的低时延档位值来进行动态设置,使得设置的传输参数能够更加精确的满足第一连接的低时延需求。

考虑到在实际应用场景中,时延越低对功耗的消耗就越高,因此,本申请实施例中还可以根据不同场景对低时延的需求,按需选择上述第一种、第二种、第三种、第四种时延降低策略中的一种或者多种,从而实现不同层级的时延调整,最终达到时延和功耗之间的平衡。下面结合第三种可能的实现方式和第四种可能的实现方式进行说明。

第三种可能的实现方式中,第一时延需求信息用于指示第一连接使能的至少一种时延降低策略。

可选的,第一时延需求信息可以包括至少一种时延降低策略的标识。例如,第一种时延降低策略的标识为A,第二种时延降低策略的标识为B,第三种时延降低策略的标识为C,第四种时延降低策略的标识为D。若第一时延需求信息中包括标识A,则说明需要使能第一种时延降低策略。若第一时延需求信息中包括标识A和B,则说明需要使能第一种时延降低策略和第二种时延降低策略。若第一时延需求信息中包括标识A、B、C、D,则说明需要使能第一种、第二种、第三种、第四种时延降低策略中的全部。

可选的,第一时延需求信息可以包括:每一种时延降低策略的标识以及该种时延降低策略对应的使能状态,例如,0表示不使能,1表示使能。示例性的,假设第一时延需求信息中包括:,,,,则说明需要使能第二种时延降低策略和第四种时延降低策略。假设第一时延需求信息中包括,,,,则说明需要使能第一种、第二种、第三种、第四种时延降低策略中的全部。

需要说明的是,第一时延需求信息还可以采用其他的指示方式,本实施例对此不作限定。

这样,第一设备可以根据第一连接使能的至少一个时延降低策略,确定出传输参数。

示例性的,若所述第一连接使能的时延降低策略中包括第一种时延降低策略,则将所述第一设备的WiFi芯片的工作频点设置为预设频点;

若所述第一连接使能的时延降低策略中包括第二种时延降低策略,则将WiFi驱动模块的处理核的类型设置为预设类型;

若所述第一连接使能的时延降低策略中包括第三种时延降低策略,则将所述第一设备中DMA响应时延设置为预设时延;

若所述第一连接使能的时延降低策略中包括第四种时延降低策略,则将所述第一设备的内核的处理策略设置为非功耗优先策略

上述实现方式中,在数据传输具有低时延需求时,可以根据对实际需求,按需选择上述第一种、第二种、第三种、第四种时延降低策略中的一种或者多种,进行数据传输,能够降低端到端的传输时延,满足不同场景的低时延需求。

第四种可能的实现方式中,第一时延需求信息用于指示第一连接使能的至少一种时延降低策略,以及第一连接对应的低时延档位值。低时延档位值用于指示第一连接对低时延的需求程度。例如,按照对低时延需求程度由高到低的顺序,低时延档位值可以包括档位1、档位2、档位3、档位4等。

这样,第一设备可以采用第一连接使能的至少一种时延降低策略,并根据第一连接对低时延的需求程度,向第二设备传输目标数据。

示例性的,若第一连接使能的至少一种时延降低策略中包括第一种时延降低策略,则可以根据低时延档位值查询如表3所示的对应关系,来动态调整WiFi芯片的工作频点。

示例性的,若第一连接使能的至少一种时延降低策略中包括第二种时延降低策略,则可以根据低时延档位值,确定WiFi驱动模块的处理核的类型。

示例性的,若第一连接使能的至少一种时延降低策略中包括第三种时延降低策略,则可以根据低时延档位值查询如表4所示的对应关系,来动态调整DMA响应时延。

上述实现方式中,在第一连接具有低时延需求时,可以根据实际需求,按需选择上述第一种、第二种、第三种、第四种时延降低策略中的一种或者多种,并且还可以根据第一连接的低时延档位值,按需调整时延降低策略中的相关参数,从而,降低端到端的传输时延,满足不同场景的低时延需求。

本实施例中,第一设备通过根据第一连接对应的第一时延需求信息,向第二设备传输目标数据,能够降低第一设备对目标数据的发送时延,满足低时延需求。

一些应用场景中,第一设备可能与其他设备之间建立有多个连接。

一个示例中,图7A为本申请实施例提供的一种多连接的示意图。如图7A所示,第一设备与第二设备之间可以建立有多个连接。例如,第一设备与第二设备之间通过应用程序1建立有连接1,第一设备与第二设备之间通过应用程序2建立有连接2,第一设备与第二设备之间通过应用程序3建立有连接3。

另一个示例中,图7B为本申请实施例提供的另一种多连接的示意图。如图7B所示,第一设备与第二设备之间建立有连接1,第一设备与第三设备之间建立有连接2,第一设备与第四设备之间建立有连接3。

考虑到各种时延降低策略会涉及到系统资源的使用。当第一设备与其他设备之间存在多个连接时,可能出现不同连接的低时延需求冲突的情况。例如,以两个连接为例,连接1具有低时延需求,连接2不具有低时延需求。又例如,连接1请求使能第一种时延降低策略,连接2请求使能第二种时延降低策略。针对上述冲突情况,本申请实施例还提供一种面向多连接的数据传输方法,能够避免多个连接之间的数据传输产生冲突。

图8为本申请实施例提供的另一种数据传输方法的示意图。如图8所示,本实施例的方法包括:

S801:第一设备确定待通过第一连接向第二设备传输的目标数据。

S802:第一设备获取所述第一连接对应的第一时延需求信息,以及第二连接对应的第二时延需求信息。

应理解的是,本实施例中,第一设备确定待传输的目标数据,以及第一设备获取第一连接对应的第一时延需求信息的实现方式与图6所示实施例类似,此处不做赘述。

本实施例中,第二连接是指第一设备与其他设备(包括第二设备、以及除第二设备之外的其他设备)之间建立的除所述第一连接之外的其他连接。当第二连接的数量有多个时,可以分别获取每个第二连接对应的第二时延需求信息。

在执行本实施例之前,第一设备还通过第二连接向其他设备传输数据(与图6所示实施例提供的数据传输过程类似)。并且,在第一设备通过第二连接向其他设备传输数据的过程中,已经获取到第二连接对应的第二时延需求信息。

S803:第一设备根据所述第一时延需求信息和所述第二时延需求信息,确定目标时延需求信息。

S804:第一设备根据目标时延需求信息,通过所述第一连接向所述第二设备传输所述目标数据。

本实施例中,S803实现的是不同连接的时延需求冲突管理。当第一时延需求信息和第二时延需求信息不同时,第一设备根据第一时延需求信息和第二时延需求信息,确定出目标时延需求信息。目标时延需求信息即为经过冲突管理后的时延需求信息。这样,第一设备根据目标时延需求信息,通过第一连接向第二设备传输目标数据。若第一设备还需要通过第二连接向其他设备传输目标数据,则第一设备也根据目标时延需求信息,通过第二连接向其他设备传输目标数据。从而,第一设备针对不同的连接,是基于相同的目标时延需求信息进行数据传输,避免了不同连接之间的冲突。

下面针对S803的几种可能的实现方式进行介绍。

第一种可能的实现方式中,第一时延需求信息用于指示第一连接是否具有低时延需求,第二时延需求信息用于指示第二连接是否具有低时延需求。对第一时延需求信息和第二时延需求信息进行冲突管理,得到目标时延需求信息。

若第一时延需求信息指示第一连接不具有低时延需求,且,第二时延需求信息指示第二连接不具有低时延需求,则确定目标时延需求信息指示不具有低时延需求。

若第一时延需求信息指示第一连接具有低时延需求,和/或,第二时延需求信息指示第二连接具有低时延需求,则确定目标时延需求信息指示具有低时延需求。

可选的,第一设备可以通过维护一个计数器实现低时延冲突管理。当某个连接使能低时延需求时,计数器的取值加1;当某个连接去使能低时延需求时,计数器的取值减1。这样,当计数器的取值为非零时,表示存在具有低时延需求的连接,该情况下,冲突管理的结果为使能低时延需求。计数器的取值为零时,表示不存在具有低时延需求的连接,该情况下,冲突管理的结果为不使能低时延需求。

举例而言,假设第一设备与其他设备建立有3个连接为例,分别为:连接1、连接2、连接3。首先,计数器置零。

当第一设备通过连接1向其他设备发送目标数据时,连接1使能低时延需求(假设此时连接2、连接3、连接4均未使能低时延需求)。该情况下,计数器加1,此时计数器取值为1,第一设备冲突管理的结果为使能低时延需求。第一设备采用上述的时延降低策略,通过连接1发送目标数据。

当第一设备通过连接2向其他设备发送目标数据时,连接2未使能低时延需求。该情况下,计数器不更新,即,计数器取值为1,冲突管理的结果为使能低时延需求。第一设备采用上述的时延降低策略,通过连接2发送目标数据。

当第一设备通过连接3向其他设备发送目标数据时,连接3使能低时延需求。该情况下,计数器加1,此时计数器取值为2,冲突管理的结果为使能低时延需求。第一设备采用上述的时延降低策略,通过连接3发送目标数据。

当第一设备通过连接1向其他设备发送目标数据时,连接1去使能低时延需求。该情况下,计数器减1,此时计数器取值为1,冲突管理的结果为使能低时延需求。第一设备采用上述的时延降低策略,通过连接1发送目标数据。

当第一设备通过连接3向其他设备发送目标数据时,连接3去使能低时延需求。该情况下,计数器减1,此时计数器取值为0,冲突管理的结果为不使能低时延需求。第一设备不再采用上述的时延降低策略,而是采用相关技术通过连接3发送目标数据。

第二种可能的实现方式中,第一时延需求信息用于指示第一连接具有低时延需求,以及第一连接对应的低时延档位值,第二时延需求信息用于指示第二连接具有低时延需求,以及第二连接对应的低时延档位值。

在进行冲突管理时,需要针对各连接对应的低时延档位值进行冲突管理。针对各连接对应的低时延档位值进行冲突管理时,可以采用取极值的方式。

举例而言,假设低时延档位值可以包括档位1、档位2、档位3、档位4。其中,档位1所指示的对低时延需求程度高于档位2所指示的对低时延需求程度,档位2所指示的对低时延需求程度高于档位3所指示的对低时延需求程度,档位3所指示的对低时延需求程度高于档位4所指示的对低时延需求程度。

若连接1对应的低时延档位值为档位1,连接2对应的低时延档位值为档位2,连接3对应的低时延档位值为档位3,则冲突管理结果中,目标时延需求信息指示的低时延档位值为档位1。

若连接1对应的低时延档位值为档位2,连接2对应的低时延档位值为档位2,连接3对应的低时延档位值为档位3,则冲突管理结果中,目标时延需求信息指示的低时延档位值为档位2。

连接1对应的低时延档位值为档位3,连接2对应的低时延档位值为档位3,连接3对应的低时延档位值为档位3,则冲突管理结果中,目标时延需求信息指示的低时延档位值为档位3。

第三种可能的实现方式中,第一时延需求信息用于指示第一连接使能的至少一种时延降低策略,第二时延需求信息用于指示第二连接使能的至少一种时延降低策略。对第一时延需求信息和第二时延需求信息进行冲突管理,得到目标时延需求信息,目标时延需求信息指示最终需要使能的至少一种时延降低策略。

在进行冲突管理时,针对某种时延降低策略,若存在至少一个连接使能它,则该种时延降低策略的冲突管理结果为使能;若所有连接均未使能它,则该种时延降低策略的冲突管理结果为不使能。

一个示例中,假设第一时延需求信息指示第一连接使能的时延降低策略包括:A、B,第二时延需求信息指示第二连接使能的时延降低策略包括:A、B,则,冲突管理结果中,目标时延需求信息指示需要使能的时延降低策略为:A、B。

另一个示例中,假设第一时延需求信息指示第一连接使能的时延降低策略包括:A、B,第二时延需求信息指示第二连接使能的时延降低策略包括:A、C,则,冲突管理结果中,目标时延需求信息指示需要使能的时延降低策略为:A、B、C。

又一个示例中,假设第一时延需求信息指示第一连接使能的时延降低策略包括:A、B,第二时延需求信息指示第二连接使能的时延降低策略包括:C、D,则,冲突管理结果中,目标时延需求信息指示需要使能的时延降低策略为:A、B、C、D。

可选的,第一设备可以针对每种时延降低策略分别维护一个计数器来实现时延冲突管理。以第一种时延降低策略为例,当某个连接使能第一种时延降低策略时,第一种时延降低策略对应的计数器的取值加1;当某个连接去使能第一种时延降低策略时,第一种时延降低策略对应的计数器的取值减1。这样,当第一种时延降低策略对应的计数器的取值为非零时,表示存在使能第一种时延降低策略的连接,该情况下,冲突管理的结果为使能第一种时延降低策略。第一种时延降低策略对应的计数器的取值为零时,表示不存在使能第一种时延降低策略的连接,该情况下,冲突管理的结果为不使能第一种时延降低策略。

应理解,第二种、第三种、第四种时延降低策略的冲突管理过程与上述第一种时延降低策略的冲突管理过程类似,此处不做赘述。

第四种可能的实现方式中,第一时延需求信息用于指示第一连接使能的至少一种时延降低策略,以及第一连接对应的低时延档位,第二时延需求信息用于指示第二连接使能的至少一种时延降低策略,以及第二连接对应的低时延档位。

在进行冲突管理时,需要针对各连接所使能的时延降低策略进行冲突管理,还需要针对各连接对应的低时延档位进行冲突管理。其中,针对各连接所使能的时延降低策略的冲突管理方式,与上述第三种可能的实现方式类似,此处不做赘述。针对各连接对应的低时延档位进行冲突管理的方式,与上述第二种可能的实现方式类似,此处不做赘述。

本实施例提供的数据传输方法,通过对多个连接对应的低时延需求信息进行冲突管理,在降低端到端传输时延的基础上,还能够避免多个连接的数据传输之间产生冲突。

上述图8所示实施例中,对多个连接的低时延冲突管理功能可以在电子设备的内核态实现。示例性的,电子设备的内核态可以包括:内核调度模块、冲突管理模块和时延管理模块。下面结合图9说明各模块之间的交互过程。

图9为本申请实施例提供的多连接低时延冲突管理过程的示意图。如图9所示,包括:

S901:内核调度模块获取第一连接对应的第一时延需求信息。

示例性的,应用层向内核调度模块上报第一时延需求信息。

S902:内核调度模块将第一时延需求信息发送至冲突管理模块。

S903:冲突管理模块获取第二连接对应的第二时延需求信息。

S904:冲突管理模块根据第一连接对应的第一时延需求信息和第二连接对应的第二时延需求信息,确定出目标时延需求信息。

S905:冲突管理模块向时延管理模块发送目标时延需求信息。

S906:时延管理模块根据目标时延需求信息使能第一种时延降低策略、第二种时延降低策略、第三种时延降低策略、第四种时延降低策略中的一种或者多种。

当应用层不具有低时延传输需求时,应用层向内核调度模块上报的第一时延需求信息指示使能时延降低策略。当应用层不具有低时延传输需求时,应用层向内核调度模块上报的第一时延需求信息指示不使能时延降低策略。

通过图9所示的低时延冲突管理过程,由于时延管理模块在使能时延降低策略时,考虑了第一连接对应的第一时延需求信息,因此,第一设备在通过第一连接传输目标数据时,能够满足低时延需求。

在第一连接使能低时延需求后,可以通过如下可行的方式对低时延需求进行去使能。

一种可能的实现方式中,第一连接对应的应用程序不再具有低时延需求时,应用程序向内核调度模块上报第一时延需求信息,此时第一时延需求信息指示第一连接不具有低时延需求。内核调度模块将第一时延需求信息上报至冲突管理模块。

另一种可能的实现方式中,若内核调度模块检测到在预设时长内未通过第一连接传输数据,则内核调度模块确定第一连接不具有低时延需求。内核调度模块通过第一时延需求信息通知冲突管理模块第一连接不具有低时延需求。

又一种可能的实现方式中,若内核调度模块检测到目标数据传输失败,则内核调度模块确定第一连接不具有低时延需求。内核调度模块通过第一时延需求信息通知冲突管理模块第一连接不具有低时延需求。

本申请实施例中,冲突管理模块可以利用内核中已有的(power managementquality of service,PM-QOS)机制实现。

在上述图8和图9所示实施例的基础上,下面结合一个具体的示例对冲突管理过程进行举例说明。

图10为本申请实施例提供的一种冲突管理过程的示意图。本实施例中,以第一设备与第二设备之间建立有两个连接为例,例如,第一设备通过应用程序1与第二设备建立连接1,第一设备通过应用程序2与第二设备建立连接2。

如图10所示,假设初始状态时,冲突管理模块中时延降低策略为非使能态。

(1)应用程序1向冲突管理模块上报第一使能请求,用于请求对连接1使能时延降低策略。冲突管理模块接收到第一使能请求后,经过冲突管理的结果为:时延降低策略为使能态。因此,冲突管理模块向时延管理模块发送使能指令。时延管理模块接收到使能指令后,使能时延降低策略。

(2)应用程序2向冲突管理模块上报第二使能请求,用于请求对连接2使能时延降低策略。冲突管理模块接收到第二使能请求后,经过冲突管理的结果为:时延降低策略为使能态。该情况下,由于时延管理模块已使能时延降低策略,因此,冲突管理模块无需向时延管理模块发送使能指令。

(3)用户关闭WiFi功能。

(4)应用程序1发现WiFi功能关闭,应用程序1向冲突管理模块发送第一去使能请求,用于请求对连接1去使能时延降低策略。冲突管理模块接收到第一去使能请求后,经过冲突管理的结果为:时延降低策略为使能态,因为此时连接2依然使能了时延降低策略。

(5)应用程序2发现WiFi功能关闭,应用程序2向冲突管理模块发送第二去使能请求,用于请求对连接2去使能时延降低策略。冲突管理模块接收到第二去使能请求后,经过冲突管理的结果为:时延降低策略为非使能态。因此,冲突管理模块向时延管理模块发送去使能指令,以使时延管理模块去使能时延降低策略。

(6)用户打开WiFi功能。

(7)应用程序1发现WiFi功能打开,应用程序1向冲突管理模块上报第一使能请求,用于请求对连接1使能时延降低策略。冲突管理模块接收到第一使能请求后,经过冲突管理的结果为:时延降低策略为使能态。因此,冲突管理模块向时延管理模块发送使能指令,以使时延管理模块使能时延降低策略。

(8)应用程序2发现WiFi功能打开,应用程序2向冲突管理模块上报第二使能请求,用于请求对连接2使能时延降低策略。冲突管理模块接收到第一使能请求后,经过冲突管理的结果为:时延降低策略为使能态。该情况下,由于时延管理模块已使能时延降低策略,因此,冲突管理模块无需向时延管理模块发送使能指令。

应理解的是,本实施例中的时延降低策略可以是上述四种时延降低策略中的一种或者多种。

本实施例中,多个应用同时请求使能时延降低策略时,冲突管理模块根据多个应用的低时延需求进行冲突管理,确保冲突管理结果能够满足多个应用的低时延需求,从而在降低端到端传输时延的基础上,避免出现冲突。另外,图10所示的示例中,当WiFi功能被关闭并重新开启后,能够恢复WiFi功能关闭之前的低时延状态,保证数据传输过程满足低时延需求。

上述实施例是以第一设备向第二设备传输数据的场景为例进行说明的,第一设备在发送目标数据时,可以根据低时延需求信息,降低目标数据的发送时延。本申请实施例中,第二设备在接收目标数据时,也可以根据低时延需求信息,降低目标数据的接收时延。下面结合图11和图12所示的实施例进行介绍。

图11为本申请实施例提供的又一种数据传输方法的示意图。本实施例的方法可以由第二设备执行。如图11所示,本实施例的方法包括:

S1101:第二设备通过第一连接从第一设备接收目标数据。

示例性的,第二设备的WiFi芯片通过第一连接从第一设备的WiFi芯片接收目标数据。

S1102:第二设备获取所述第一连接对应的第一时延需求信息。

可选的,第一时延需求信息可以携带在目标数据中。示例性的,参见图6所示实施例,在S602中第一设备获取到第一连接对应的第一时延需求信息后,在S603中,第一设备将第一时延需求信息携带在目标数据中,将目标数据发送至第二设备。或者,参见图8所示实施例,在S803中,第一设备根据第一时延需求信息和第二时延需求信息,确定出目标时延需求信息后,在S804中,第一设备将目标时延需求信息携带在目标数据中,将目标数据发送至第二设备。

这样,第二设备可以对目标数据进行解析,得到第一时延需求信息。

可选的,第一时延需求信息与第一连接的网络状态相关。当第一连接的网络状态不同时,其对应的第一时延需求信息也可能不同。第二设备可以根据第一连接的网络状态,实时动态确定第一时延需求信息。

S1103:第二设备根据所述第一时延需求信息,对所述目标数据进行处理。

本实施例中,第二设备对目标数据进行处理的过程可以包括:WiFi芯片向WiFi驱动模块发送目标数据;WiFi驱动模块向内核态中的接收模块发送目标数据;内核态中的接收模块接收目标数据,并将目标数据存储至内核态存储空间中;内核态中的内核调度模块向DMA控制器发送搬移请求;DMA控制器根据该搬移请求,将目标数据从内核态存储空间搬移至用户态存储空间;用户态从用户态存储空间中获取目标数据,并对目标数据进行显示处理或者其他处理。

本实施例中,第二设备可以根据第一时延需求信息,确定传输参数,所述传输参数包括如下至少一种:所述第二设备的通信芯片的工作频点、所述通信芯片对应的驱动模块的处理核的类型、所述第二设备中直接存储器访问DMA响应时延、所述第二设备的内核的处理策略。进而,第二设备根据所述传输参数对目标数据进行处理。其中,第二设备确定传输参数的过程可以采用如图6所示实施例中的各种可能的实现方式,此处不做赘述。

本实施例中,第二设备通过根据第一连接对应的第一时延需求,对从第一连接接收到的目标数据进行处理,从而满足低时延需求。

图12为本申请实施例提供的再一种数据传输方法的示意图。如图12所示,本实施例的方法包括:

S1201:第二设备通过第一连接从第一设备接收目标数据。

S1202:第二设备获取所述第一连接对应的第一时延需求信息,以及第二连接对应的第二时延需求信息。

本实施例中,第二连接是指第二设备与其他设备(包括第一设备、以及除第一设备之外的其他设备)之间建立的除所述第一连接之外的其他连接。当第二连接的数量有多个时,可以分别获取每个第二连接对应的第二时延需求信息。

第二设备可以采用如下可选方式获取第一连接对应的第一时延需求信息:

(1)第二设备从目标数据中解析得到第一连接对应的第一时延需求信息。

(2)第二设备根据第一连接的网络状态,确定第一连接对应的第一时延需求信息。

第二设备可以采用如下可选方式获取第二连接对应的第二时延需求信息:

(1)第二设备从通过第二连接接收到的数据中解析得到第二时延需求信息。

(2)第二设备根据第二连接的网络状态,确定第二连接对应的第二时延需求信息。

S1203:第二设备根据所述第一时延需求信息和所述第二时延需求信息,确定目标时延需求信息。

S1204:第二设备根据目标时延需求信息,对所述目标数据进行处理。

本实施例中,S1203实现的是对不同连接的时延需求进行冲突管理。具体冲突管理的方式可以参见图8所示实施例中的各种可能的实现方式。此处不做赘述。

本实施例提供的数据传输方法,通过对多个连接对应的低时延需求信息进行冲突管理,在降低端到端传输时延的基础上,还能够避免多个连接的数据传输之间产生冲突。

下面结合表5和表6说明本申请实施例的时延降低效果。

表5

表6

表5示例的是在P2P通信系统中,采用本申请实施例提供的四种时延降低策略之后的的时延降低效果。如表5所示,分布式文件系统的通信时延由10ms降低至1ms以内。基于该通信时延,分布式文件系统的随机读4KB数据的速率由大约5.4Mbps提升至大约24.0Mbps,分布式文件系统传输4BK文件的速率由大约6.1Mbps提升至大约35.0Mbps,分布式文件系统传输24BK文件的速率由大约16.1Mbps提升至大约63.0Mbps。

表6示例的是在跨AP通信系统中,采用本申请实施例提供的四种时延降低策略之后的的时延降低效果。如表6所示,分布式文件系统的通信时延由18ms降低大约2ms。基于该通信时延,分布式文件系统的随机读4KB数据的速率由大约3.2Mbps提升至大约16.0Mbps,分布式文件系统传输4BK文件的速率由大约3.4Mbps提升至大约21.0Mbps,分布式文件系统传输24BK文件的速率由大约10.1Mbps提升至大约42.0Mbps。

由此可见,本申请实施例提供的四种时延降低策略能够明显降低通信时延,并提升分布式业务的传输性能。

图13为本申请实施例提供的一种数据传输装置的结构示意图。该数据传输装置可以为软件和/或硬件的形式。示例性的,数据传输装置可以为第一设备或者第一设备中的芯片、模块或者单元。如图13所示,本实施例提供的数据传输装置1300包括:处理模块1301和发送模块1302。其中,

处理模块1301用于支持数据传输装置执行上述方法实施例中的S601和S602中的操作,或者上述方法实施例中的S801和S802中的操作。

发送模块1302用于支持数据传输装置执行上述方法实施例中的S603中的操作,或者上述方法实施例中的S803和S804中的操作。

其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。

图14为本申请实施例提供的另一种数据传输装置的结构示意图。该数据传输装置可以为软件和/或硬件的形式。示例性的,数据传输装置可以为第二设备或者第二设备中的芯片、模块或者单元。如图14所示,本实施例提供的数据传输装置1400包括:接收模块1401和处理模块1402。其中,

接收模块1401用于支持数据传输装置执行上述方法实施例中的S1101中的操作,或者上述方法实施例中的S1201中的操作。

处理模块1402用于支持数据传输装置执行上述方法实施例中的S1102和S1103中的操作,或者上述方法实施例中的S1202、S1203、S1204中的操作。

当然,图13和图14所示的数据传输装置包括但不限于上述所列举的单元模块。并且,上述功能单元的具体所能够实现的功能也包括但不限于上述实例所述的方法步骤对应的功能,电子设备的其他单元的详细描述可以参考其所对应方法步骤的详细描述,本申请实施例这里不予赘述。

图15为本申请实施例提供的一种电子设备的结构示意图。如图15所示,该电子设备1500可以包括:一个或者多个处理器1501、存储器1502、收发器1503;上述各器件可以通过一个或多个通信总线1504通信。

其中,一个或多个计算机程序存储在存储器1502中,并被配置为被一个或多个处理器1501执行;一个或多个计算机程序包括指令,指令用于执行上述任意步骤的方法。收发器1503用于向其他电子设备发送数据或者从其他电子设备接收数据。

本实施例提供的电子设备可以执行上述任意方法实施例中由第一设备或者第二设备执行的数据传输方法,其实现原理和技术效果类似,此处不做赘述。

本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令被执行时,实现上述任意方法实施例中由第一设备或者第二设备执行的数据传输方法,其实现原理和技术效果类似,此处不做赘述。

本申请实施例还提供一种计算机程序产品,所述所述计算机程序产品包括计算机程序,所述计算机程序被执行时,实现上述任意方法实施例中由第一设备或者第二设备执行的数据传输方法,其实现原理和技术效果类似,此处不做赘述。

需要说明的是,本申请实施例中的模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个专用集成电路(application specific integratedcircuit,ASIC),或,一个或多个微处理器(digital signal processor,DSP),或,一个或者多个现场可编程门阵列(field programmable gate array,FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(central processing unit,CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,SOC)的形式实现。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。

本文中的术语“多个”是指两个或两个以上。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系;在公式中,字符“/”,表示前后关联对象是一种“相除”的关系。

另外,需要理解的是,在本申请的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。

可以理解的是,在本申请的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。在本申请的实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请的实施例的实施过程构成任何限定。

相关技术
  • 数据传输方法、装置、电子设备及存储介质
  • 基于非授权传输的数据传输方法、装置、设备和存储介质
  • 一种数据传输方法、装置、电子设备及存储介质
  • 数据传输方法、数据传输装置及计算机可读存储介质
  • 小程序的界面渲染方法、装置、电子设备和存储介质
  • 信息处理系统、信息处理设备、外围设备、数据传输方法和存储数据传输程序的非暂时性存储介质
  • 数据传输方法、装置、电子设备、存储介质和程序产品
技术分类

06120115938073