通信数据处理方法、装置、设备、系统和存储介质与流程

文档序号:20838585发布日期:2020-05-22 17:11阅读:177来源:国知局
通信数据处理方法、装置、设备、系统和存储介质与流程

本申请涉及通信数据处理技术领域,特别是涉及一种通信数据处理方法、装置、设备、系统和存储介质。



背景技术:

在soc+linux设备中,低成本soc(片上系统)内部有一条高速内部总线,通过该总线可以实现soc内部多个内核之间的通信,一般soc可以包括多个内核,例如cpu、dsp、arm等。一般在多个内核之间需要通信时,核间通信的触发通常可以采用中断方式,即可以通过内核之间互相发送中断的形式,并在该中断时间段内进行数据的双向传输。

目前,cpu内核和dsp内核在进行核间通信过程中,以上行为例,dsp需要从总线上将数据拷贝下来进行处理,并在处理完之后将数据传送到总线上,cpu在中断时间内再从总线上将dsp发送过来的数据拷贝下来进行处理,处理之后再发送给服务器等。

但是上述技术在核间通信时,由于cpu处理速度慢,dsp处理速度快,因此会存在通信实时性不高的问题。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种能够通信实时性的通信数据处理方法、装置、设备、系统和存储介质。

一种通信数据处理方法,应用于通信数据处理系统,该通信数据处理系统包括第一内核、第二内核、共享内存、fpga,该方法包括:

控制所述第一内核接收fpga发送的第一触发指令,并根据所述第一触发指令将至少一组通信数据发送至共享内存进行存储;

控制所述第二内核接收fpga发送的第二触发指令,并根据所述第二触发指令在所述共享内存上对所述通信数据进行处理。

在其中一个实施例中,所述在所述共享内存上对所述通信数据进行处理,包括:

执行处理操作,所述处理操作包括:控制所述第二内核在所述共享内存上获取数据处理完成标识,并根据所述数据处理完成标识确定对应的目标地址;控制所述第二内核在所述共享内存上对所述目标地址上的目标通信数据进行处理,并在处理完成之后,将所述目标地址清空。

在其中一个实施例中,所述方法还包括:

控制所述第二内核判断所述共享内存上是否存在数据处理完成标识,若存在,则返回执行所述处理操作,直至所述共享内存上不存在所述数据处理完成标识。

在其中一个实施例中,所述目标通信数据包括目标通信短数据和目标通信长数据,所述共享内存包括核间内存和外部内存;所述控制所述第二内核在所述共享内存上获取数据处理完成标识,并根据所述数据处理完成标识确定对应的目标地址,包括:

控制所述第二内核在所述核间内存上获取所述数据处理完成标识,并根据所述数据处理完成标识确定所述目标地址;所述目标地址用于存储目标通信短数据和传递标识以及目标通信长数据的地址,所述传递标识用于表征目标通信数据是否分布式存储在核间内存和外部内存上;

控制所述第二内核根据所述核间内存上所述目标地址上的传递标识确定所述目标通信数据是否分布式存储在核间内存和外部内存上;

若是,则控制所述第二内核在所述外部内存上获取目标通信长数据。

在其中一个实施例中,所述控制所述第二内核在所述外部内存上获取目标通信长数据,包括:

控制所述第二内核在所述核间内存上获取所述目标地址上的目标通信长数据的地址;

控制所述第二内核根据所述目标通信长数据的地址在所述外部内存上获取对应的所述目标通信长数据。

在其中一个实施例中,所述控制所述第二内核在所述共享内存上对所述目标地址上的目标通信数据进行处理,并在处理完成之后,将所述目标地址清空,包括:

控制所述第二内核对所述目标通信短数据进行处理,并在处理完成之后,将所述核间内存上的所述目标通信短数据的地址清空;

若所述所述目标通信数据分布式存储在所述核间内存和所述外部内存上,则控制所述第二内核对所述目标通信长数据进行处理,并在处理完成之后,将所述外部内存上的所述目标通信长数据的地址清空。

在其中一个实施例中,所述控制所述第二内核在所述共享内存上对所述目标地址上的目标通信数据进行处理,并在处理完成之后,将所述目标地址清空,包括:

若所述目标通信数据存储在所述核间内存上,则控制所述第二内核对所述目标通信短数据进行处理,并在处理完成之后,将所述核间内存上的所述目标通信短数据的地址清空。

在其中一个实施例中,所述第一触发指令和第二触发指令的触发机制不同,所述触发机制用于表征内核的中断频次。

在其中一个实施例中,所述方法还包括:

设置多个流水线状态机,分别用于记录所述第一内核和所述第二内核的各个业务的处理状态。

一种通信数据处理装置,应用于通信数据处理系统,所述通信数据处理系统包括第一内核、第二内核、共享内存、fpga,该装置包括:

第一控制模块,用于控制所述第一内核接收fpga发送的第一触发指令,并根据所述第一触发指令将至少一组通信数据发送至共享内存进行存储;

第二控制模块,用于控制所述第二内核接收fpga发送的第二触发指令,并根据所述第二触发指令在所述共享内存上对所述通信数据进行处理。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

控制所述第一内核接收fpga发送的第一触发指令,并根据所述第一触发指令将至少一组通信数据发送至共享内存进行存储;

控制所述第二内核接收fpga发送的第二触发指令,并根据所述第二触发指令在所述共享内存上对所述通信数据进行处理。

一种通信数据处理系统,包括共享内存、fpga、第一内核和第二内核,其中:

所述第一内核,用于接收fpga发送的第一触发指令,将至少一组通信数据发送至共享内存进行存储;

所述第二内核,用于接收fpga发送的第二触发指令,在所述共享内存上对所述通信数据进行处理;

所述fpga,用于向所述第一内核发送第一触发指令,向所述第二内核发送第二触发指令。

一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

控制所述第一内核接收fpga发送的第一触发指令,并根据所述第一触发指令将至少一组通信数据发送至共享内存进行存储;

控制所述第二内核接收fpga发送的第二触发指令,并根据所述第二触发指令在所述共享内存上对所述通信数据进行处理。

上述通信数据处理方法、装置、设备、系统和存储介质,应用于通信数据处理系统,该通信数据处理系统包括第一内核、第二内核、共享内存、fpga,在该方法中,系统可以控制第一内核接收fpga发送的第一触发指令,并根据第一触发指令将至少一组通信数据发送至共享内存进行存储,控制第二内核接收fpga发送的第二触发指令,并根据第二触发指令在共享内存上对通信数据进行处理。在该方法中,由于第一内核和第二内核之间进行通信数据收发时,可以通过fpga外部中断来进行宏观调度,不需要额外耗费第一内核和第二内核的资源去触发,因此可以减少资源浪费以及第一内核和第二内核的等待时间、减少重复无效中断,从而提高系统的处理效率;另外,由于在第一内核和第二内核进行数据收发时,也不需要从总线上进行拷贝进行处理,可以直接在共享内存上进行处理,因此可以减少第一内核和第二内核处理数据的耗时,节省第一内核和第二内核的额外无用开销,从而可以提高系统的实时处理能力,即提高实时性,达到以空间换时间的目的。

附图说明

图1为一个实施例中通信数据处理系统的结构示意图;

图2a为一个实施例中通信数据处理系统方法的流程示意图;

图2b为一个实施例中流水线状态机的结构示意图;

图2c为一个实施例中上下行通信的流程示意图;

图3为另一个实施例中通信数据处理系统方法的流程示意图;

图4为另一个实施例中通信数据处理系统方法的流程示意图;

图5为另一个实施例中通信数据处理系统方法的流程示意图;

图6为一个实施例中通信数据处理系统装置的结构框图;

图7为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

目前,在soc+linux设备中,低成本soc内部有一条高速内部总线以实现核间通信,核间通信的触发采用中断方式。核间存在不同业务实体的多对中断,每一次的报文处理流程中,数据都要经过以下处理环节:下行:1、cpu通过内核中断获取网络报文,优先级高,不能避免突发;2、业务实体处理数据,分发给dsp或者核内实体,触发中断;3、dsp核中断响应,接收并处理数据;4、dsp核处理数据,转发数据给终端。上行:1、dsp接收终端数据,处理数据;2、dsp核触发中断,分发数据给cpu实体;3、cpu业务实体响应中断,接收数据并处理;4、cpu通过内核中断转发网络数据。cpu运行linux多任务抢占式系统,存在多种内核中断处理,比如:串口、i2c、网口等外设访问,一般情况下优先级比外部中断高,打了实时性补丁的linux系统实时性还是短板,尤其是在低成本soc在低时延、高带宽、高吞吐等场景下,实时性更是不好,而dsp核在boot初始化硬件后,通过优先级+中断方式循环流水处理数据,实时性高。从以上处理流程中可以发现,每处理一个报文,linux所在cpu核都会不可避免的慢于dsp核,因此会影响整个通信系统的通信实时性,带来诸多不利影响。本申请实施例提供一种通信数据处理方法、装置、设备、系统和存储介质,旨在解决上述问题。

本申请实施例提供的通信数据处理方法,可以应用于通信数据处理系统,参见图1所示,该通信数据处理系统包括第一内核101、第二内核102、共享内存103、fpga104,第一内核101用于接收fpga104发送的第一触发指令,将至少一组通信数据发送至共享内存103进行存储;第二内核102,用于接收fpga104发送的第二触发指令,在共享内存103上对通信数据进行处理;fpga104,用于向第一内核101发送第一触发指令,向第二内核102发送第二触发指令。其中,第一内核101和第二内核102均可以是dsp、cpu、arm等,不过第一内核101和第二内核102不同,例如第一内核101是dsp,则第二内核102就可以是cpu、arm等,不会是dsp,另外,第一内核101和第二内核102均可以是soc内部的芯片,即均属于soc的内核,共享内存103可以是soc内部的内存,也可以是soc内部的内存和外部内存共同构成的内存,fpga104可以是soc外部的芯片,可以和第一内核101、第二内核102进行数据通信。另外,本申请实施例中的cpu指的是centralprocessingunit中央处理器,dsp指的是digitalsignalprocessing数字信号处理,fpga指的是fieldprogrammablegatearray现场可编程门阵列。

需要说明的是,本申请实施例的执行主体可以是通信数据处理装置,也可以是通信数据处理系统,当然还可以是通信数据处理系统中的计算机设备,下面就以通信数据处理系统为执行主题进行说明。

在一个实施例中,提供了一种通信数据处理方法,本实施例涉及的是如何通过fpga触发第一内核和第二内核,使第一内核和第二内核完成在共享内存上的数据收发的具体过程。该方法可以应用于通信数据处理系统,该通信数据处理系统包括第一内核、第二内核、共享内存、fpga,如图2a所示,该方法可以包括以下步骤:

s202,控制第一内核接收fpga发送的第一触发指令,并根据第一触发指令将至少一组通信数据发送至共享内存进行存储。

s204,控制第二内核接收fpga发送的第二触发指令,并根据第二触发指令在共享内存上对所述通信数据进行处理。

在本实施例中,以通信上行过程为例,第一内核可以是dsp,第二内核可以是cpu,以下行为例,第一内核可以是cpu,第二内核可以是dsp,一般操作系统linux会在cpu上运行,而dsp上一般不会运行操作系统,所以cpu相对于dsp来说处理数据的速度会比较慢,通常情况下就可以将cpu称为慢核,dsp称为快核。本实施例主要是通过fpga向第一内核和第二内核发送触发指令,从而使第一内核和第二内核进行工作,fpga发送触发指令时,在这里可以是定时触发的,该触发指令可以是中断触发指令,若fpga向dsp发送触发指令,则发送的触发指令可以包括两部分内容,第一部分用于指示dsp开始工作,第二部分用于指示dsp需要工作的内容或需要工作的流程,例如收发数据;若fpga向cpu发送触发指令,则发送的触发指令可以只包括用于指示cpu需要工作的内容,例如收发数据。其次,可选的,在本实施例中,第一触发指令和第二触发指令的触发机制不同,该触发机制用于表征内核的中断频次,也就是说,在通信过程中,第一触发指令和第二触发指令发送的时间间隔也是不同的,即给第一内核和第二内核发送的中断频次是不同的。示例地,假设第一内核为dsp,第二内核为cpu,或者第一内核为cpu,第二内核为dsp,那么fpga给dsp和cpu发送的中断频次是不同的,例如可以是给cpu每隔5分钟发一次触发指令,给dsp每隔1分钟发送一次触发指令。另外,fpga给第一内核和的肉内核发送的触发指令,在使第一内核或第二内核处理数据时,时间需要控制在通信数据的有效时间内,即在fpga给第一内核或第二内核发送的中断之间。

另外,共享内存可以是soc内部的内存,也可以是soc内部的内存和外部内存共同构成的内存,本实施例主要采用的是共享内存为soc内部的内存和外部内存共同构成的内存,外部内存可以是soc外挂的ddr内存(doubledatarate,双倍速率同步动态随机存储器)等,其次,该共享内存可以包括两级环形存储的内存和一个信息管理区,该信息管理区可以保存共享内存内地址空间的使用信息以及供第一内核和第二内核双方获取地址和释放地址,该两级环形存储的内存可以供第一内核和第二内核快速读写,两级环形存储的内存分别为soc内部的内存,即核间内存,记为缓存一,soc外部的内存ddr记为缓存二,缓存一存取速度快,但是空间小,一般用来存放非通信的一些标识、地址、信令、心跳、通知类信息等,缓存二空间大,但是存取速度慢,一般可以用来方法交互的通信数据。进一步地,根据cpu和dsp的通信处理能力,缓存一为每组通信实体双向分配为1024*2个环形队列,每个地址空间为10byte;缓存二为每组通信实体划分为1024*2个环形队列,每个地址空间为1kbyte;这里每组通信实体指的是通信双方互相传输的不同组的通信数据,例如,cpu给dsp发了个a1,dsp给cpu发了个a2,a1和a2可以认为是一组通信实体。

另一方面,在本实施例中,可选的,系统还可以预先设置多个流水线状态机,分别用于记录第一内核和第二内核的各个业务的处理状态。参见图2b所示,每个流水线状态机对应处理一组通信实体,按执行顺序别进行存放数据、等待处理、读取等,以dsp和cpu为例,每组流水线状态机的状态均可以包括对dsp和cpu的处理状态,例如每组流水线状态机对dsp的处理状态可以包括:fpga触发dsp工作、处理空口报文、释放地址、获取可用地址、存放数据等,每组流水线状态机对cpu的处理状态可以包括:fpga定时触发cpu收取、获取可取地址、预取短报文、处理报文数据、释放地址等。在上下行,fpga均可以轮换触发内核,使内核执行该多个流水线状态机的多个处理状态。

具体的,在第一内核和第二内核通信时,在下行通信时,以第一内核为cpu,第二内核为dsp为例,cpu在被fpga定时触发之后(当然下行也可以是cpu由linux调度,不需要fpga触发,两者均可以),可以在共享内存上寻找可用地址空间,并在找到后将处理好的至少一组通信数据发送至该可用地址空间上进行存储,在共享内存中,一般一组通信数据会对应存储在下行队列的一个地址空间上,通过这样可以将cpu发送的各组通信数据存储在共享内存的不同地址空间上,在cpu存储完成之后,cpu可以返回自己当前的程序去执行,不必等待dsp取数据才返回,而dsp在被fpga定时触发之后,可以直接去共享内存上去读取存有通信数据的地址,并将读取到的地址直接导入至dsp程序中,dsp程序直接在该共享内存上运行,直接对该地址对应的地址空间上的数据进行处理,不需要将地址空间上的数据拷贝到dsp程序中去处理,dsp处理之后就可以得到处理结果,一般得到的处理结果可以通过fpga和高速总线传给终端,在不需要下传时,也可以不传处理结果。

另外,在上行通信时,以第一内核为dsp,第二内核为cpu为例,dsp在被fpga定时触发之后,也可以在共享内存上寻找上行队列的可用地址空间,并在找到后将处理好的至少一组通信数据发送至该可用地址空间上进行存储,这里一般一组通信数据也是会对应存储在一个上行队列的地址空间上,通过这样可以将dsp发送的各组通信数据存储在共享内存的不同地址空间上,在dsp存储完成之后,dsp可以返回自己当前的程序去执行,不必等待cpu取数据才返回,而cpu在被fpga定时触发之后,可以直接去共享内存上去读取存有通信数据的地址,并将读取到的地址直接导入至cpu程序中,cpu程序直接在该共享内存上运行,直接对该地址对应的地址空间上的数据进行处理,不要将地址空间上的数据拷贝到cpu程序中去处理,cpu处理之后就可以得到处理结果,之后可以通过总线将处理结果等信息传给服务器等。

上述通信数据处理方法中,应用于通信数据处理系统,该通信数据处理系统包括第一内核、第二内核、共享内存、fpga,在该方法中,系统可以控制第一内核接收fpga发送的第一触发指令,并根据第一触发指令将至少一组通信数据发送至共享内存进行存储,控制第二内核接收fpga发送的第二触发指令,并根据第二触发指令在共享内存上对通信数据进行处理。在该方法中,由于第一内核和第二内核之间进行通信数据收发时,可以通过fpga外部中断来进行宏观调度,不需要额外耗费第一内核和第二内核的资源去触发,因此可以减少资源浪费以及第一内核和第二内核的等待时间、减少重复无效中断,从而提高系统的处理效率;另外,由于在第一内核和第二内核进行数据收发时,也不需要从总线上进行拷贝进行处理,可以直接在共享内存上进行处理,因此可以减少第一内核和第二内核处理数据的耗时,节省第一内核和第二内核的额外无用开销,从而可以提高系统的实时处理能力,即提高实时性,达到以空间换时间的目的。

在另一个实施例中,提供了另一种通信数据处理方法,本实施例涉及的是第二内核如何在共享内存上对通信数据进行处理,并在处理之后将地址清空的具体过程。在上述实施例的基础上,该方法可以包括以下步骤a:

步骤a,执行处理操作,该处理操作包括:控制第二内核在共享内存上获取数据处理完成标识,并根据数据处理完成标识确定对应的目标地址;控制第二内核在共享内存上对目标地址上的目标通信数据进行处理,并在处理完成之后,将目标地址清空。

其中,这里的数据处理完成标识可以是数字、字母、符号等等。另外,这里的数据处理完成标识可以是只有缓存一上有,也可以是缓存一和缓存二都有,本实施例对此不作具体限定。

具体的,第一内核在将处理好的通信数据发送到共享内存上进行存储之后,第一内核可以为每组存储好的出数据添加一个数据处理完成标识,该数据处理完成标识可以是添加在存储数据的地址空间上的,之后,第二内核在定时触发后可以去共享内存上查找是否有数据处理完成标识,如果有,则按照一定的顺序(例如,从前往后的顺序)依次去读取各个数据数据处理完成标识对应的地址,在这里各个数据处理完成标识对应的地址均可以记为目标地址,第二内核在得到目标地址后,就可以得到目标地址对应的地址空间上的通信数据,记为目标通信数据,然后就可以对目标通信数据进行处理,在处理完成后,可以将该目标地址对应的地址空间清空,以备下次存储使用。需要说明的是,如果是找到多组目标通信数据,那么第二内核在处理时,可以是按照一定顺序(例如,从前往后的顺序)对各组目标通信数据进行处理,每处理完一组通信数据,就可以将当前处理完成的通信数据对应的目标地址的地址空间清空。

在将目标地址的地址空间清空之后,可选的,系统还可以控制第二内核判断共享内存上是否存在数据处理完成标识,若存在,则返回执行处理操作,直至共享内存上不存在数据处理完成标识。也就是说,第二内核在将目标地址的地址空间清空之后,因为第一内核会不断往共享内存上存储处理好的数据,因此,第二内核在将当前找到的数据处理完成标识对应的通信数据处理完成之后,还可以继续判断当前是否还存在数据处理完成标识,如果还存,那么第二内核可以返回执行上述步骤a,直至共享内存上不存在处理完成标识,即不存在第一内核存储的处理好的通信数据。

参见图2c所示,在上行通信时,dsp侧,fpga定时触发dsp,dsp在共享内存上获取空地址(即获取可存储的空地址),存放数据;cpu侧,fpga定时触发cpu,cpu去共享内存上取报文地址(即获取带有数据处理完成标识的目标地址),在报文地址处理两级报文(即处理目标地址的地址空间上的数据,两级指的是处理缓存一和缓存二上的数据),清空地址(即清空缓存一和缓存二上数据处理完成标识的目标地址),判断是否还有未取报文(即判断共享内存内是否还存在数据处理完成标识),若有,返回执行取报文地址,若无,则返回定时触发cpu。在下行通信时,cpu则,可以是由linux对cpu进行管理调度,还可以是fpga触发cpu,获取空地址,存放数据;dsp侧,fpga定时触发dsp,dsp去共享内存上取报文地址(即获取带有数据处理完成标识的目标地址),在报文地址处理两级报文(即处理目标地址的地址空间上的数据,两级指的是处理缓存一和缓存二上的数据),清空地址(即清空缓存一和缓存二上数据处理完成标识的目标地址),判断是否还有未取报文(即判断共享内存内是否还存在数据处理完成标识),若有,返回执行取报文地址,若无,则返回定时触发dsp。

本实施例提供的通信数据处理方法,系统可以控制第二内核在共享内存上获取数据处理完成标识,并根据数据处理完成标识确定对应的目标地址,以及控制第二内核在共享内存上对目标地址上的目标通信数据进行处理,并在处理完成之后,将目标地址清空。在本实施例中,由于第二内核可以根据数据处理完成标识去找存储有数据的目标地址,从而可以避免盲目查找,浪费时间,因此,该方法可以节省第二内核的额外开销,从而可以间接提高整个系统的实时性。

在另一个实施例中,提供了另一种通信数据处理方法,本实施例涉及的是若目标通信数据包括目标通信短数据和目标通信长数据,共享内存包括核间内存和外部内存,则第二内核如何根据数据处理完成标识得到核间内存和外部内存上的目标通信数据。在上述实施例的基础上,如图3所示,上述步骤a中的控制第二内核在共享内存上获取数据处理完成标识,并根据数据处理完成标识确定对应的目标地址可以包括以下步骤:

s302,控制第二内核在核间内存上获取数据处理完成标识,并根据数据处理完成标识确定目标地址;目标地址用于存储目标通信短数据和传递标识以及目标通信长数据的地址,传递标识用于表征目标通信数据是否分布式存储在核间内存和外部内存上。

s304,控制第二内核根据核间内存上所述目标地址上的传递标识确定目标通信数据是否分布式存储在核间内存和外部内存上。

在本实施例中,这里的核间内存可以是上述s202-s204中的缓存一,这里的外部内存可以是上述s202-s204中的缓存二。分布式存储指的是目标通信数据中的目标通信短数据存储在核间内存上,目标通信长数据存储在外部内存上,非分布式存储指的是目标通信数据只存储在核间内存上。另外,核间内存上每个地址空间上存储的数据格式为目标通信短数据位+传递标识位+目标通信长数据的地址位,例如目标通信数据包括a+b,a为目标通信短数据,b为目标通信长数据,核间内存上的一个地址空间存储的格式可以表示为a+传递标识+b;传递标识可以是字母、数字、图案等,根据传递标识就可以知道目标通信数据是否分布式存储在核间内存和外部内存上,例如传递标识为数字0或1,若为1,可以认为目标通信数据分布式存储在核间内存和外部内存上,这时目标通信长数据的地址位可以存储目标通信长数据在外部内存上对应的存储地址,若为0,则可以认为目标通信数据只存储在核间内存上,外部内存上没有对应的目标通信数据,这时目标通信长数据的地址位上可以为空。

s306,若是,则控制第二内核在外部内存上获取目标通信长数据。

在本实施例中,在根据传递标识确定目标通信数据是分布式存储在核间内存和外部内存上之后,可选的,可以采用如图4所示的方法步骤去外部内存上获取目标通信长数据,如图4所示,s306可以包括以下s402-s404步骤:

s402,控制第二内核在核间内存上获取目标地址上的目标通信长数据的地址。

s404,控制第二内核根据目标通信长数据的地址在外部内存上获取对应的目标通信长数据。

具体的,第二内核在共享内存上找到数据处理完成标识之后,以找到的任意一个数据处理完成标识来说,可以根据该数据处理完成标识得到其对应的目标地址,这里的目标地址可以是在核间内存上的地址,根据该目标地址就可以找到其对应的地址空间,在该地址空间上,找到目标通信短数据,并通过该地址空间上的传递标识确定外部内存上是否有同一组通信实体对应的目标通信长数据,若外部内存上存在,则可以在传递标识后面的地址位上得到目标通信长数据的地址,并通过该目标通信长数据的地址,在外部内存上,找到对应的目标通信长数据。

本实施例提供的通信数据处理方法,若目标通信数据包括目标通信短数据和目标通信长数据,共享内存包括核间内存和外部内存,则第二内核可以根据数据处理完成标识得到核间内存上的目标通信短数据,以及根据核间内存上的传递标识,在目标通信数据为分布式存储时,得到外部内存上对应的目标通信长数据。在本实施例中,由于可以根据核间内存上的传递标识判断外部内存上后是否有目标通信长数据,而利用标识这种方法比较简单,因此,该方法可以较为简单快速地知道外部内存上是否有目标通信长数据,便于在外部内存上有目标通信长数据时,快速对目标通信长数据进行处理,从而可以节省一部分时间,提高系统整体的实时性。

在另一个实施例中,提供了另一种通信数据处理方法,本实施例涉及的是在得到目标通信短数据和/或目标通信长数据之后,还可以对数据进行处理的具体过程。在上述实施例的基础上,在处理时,可以采用如图5所示的方法步骤来进行数据处理,如图5所示,该处理步骤可以包括以下步骤:

s502,控制第二内核对目标通信短数据进行处理,并在处理完成之后,将核间内存上的目标通信短数据的地址清空。

s504,若所述目标通信数据分布式存储在核间内存和外部内存上,则控制第二内核对目标通信长数据进行处理,并在处理完成之后,将外部内存上的目标通信长数据的地址清空。

在本实施例中,若目标通信数据分布式存储在核间内存和外部内存上,则第二内核可以先对核间内存上的目标通信短数据进行快速处理,并根据目标通信长数据的地址映射到外部内存上,找到目标通信长数据,并对目标通信长数据进行处理,这里不需要拷贝数据,因此可以加快第二内核的处理速度,提高实时性,在处理完之后,可以将该组目标通信数据在核间内存和外部内存上的地址空间均清空,以便后续使用。

另外,可选的,若目标通信数据存储在核间内存上,则控制第二内核对目标通信短数据进行处理,并在处理完成之后,将核间内存上的所述目标通信短数据的地址清空。也就是说,若目标通信数据非分布式存储在核间内存和外部内存上,在这里主要指只存储在核间内存上,则第二内核可以直接对核间内存上的目标通信数据进行快速处理,并在处理完成之后,将该目标通信数据在核间内存上的目标地址的地址空间进行清空,便于后续使用。

本实施例提供的通信数据处理方法,若目标通信数据同时存储在核间内存和外部内存上,则可以在核间内存和外部内存上分别对核间内存和外部内存上的数据进行处理,并在处理完之后,将核间内存和外部内存上对应的地址空间清空,若目标通信数据只存储在核间内存上,则在核间内存上对该目标通信数据处理之后,可以将核间内存上对应的地址空间清空。在本实施例中,由于可以将处理的数据对应的地址空间清空,这样可以便于后续对该地址空间重复使用,间接提高共享内存的存储容量。

应该理解的是,虽然图2a、3-5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2a、3-5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,提供了一种通信数据处理系统,该系统包括共享内存、fpga、第一内核和第二内核,其中:

所述第一内核,用于接收fpga发送的第一触发指令,将至少一组通信数据发送至共享内存进行存储;

所述第二内核,用于接收fpga发送的第二触发指令,在所述共享内存上对所述通信数据进行处理;

所述fpga,用于向所述第一内核发送第一触发指令,向所述第二内核发送第二触发指令。

可选的,所述第一触发指令和第二触发指令的触发机制不同,所述触发机制用于表征内核的中断频次。

可选的,上述系统可以设置多个流水线状态机,分别用于记录所述第一内核和所述第二内核的各个业务的处理状态。

在另一个实施例中,上述第二内核,还用于执行处理操作,所述处理操作包括:在所述共享内存上获取数据处理完成标识,并根据所述数据处理完成标识确定对应的目标地址;控制所述第二内核在所述共享内存上对所述目标地址上的目标通信数据进行处理,并在处理完成之后,将所述目标地址清空。

可选的,上述第二内核,还用于判断所述共享内存上是否存在数据处理完成标识,若存在,则返回执行所述处理操作,直至所述共享内存上不存在所述数据处理完成标识。

在另一个实施例中,所述目标通信数据包括目标通信短数据和目标通信长数据,所述共享内存包括核间内存和外部内存;上述第二内核,还用于在所述核间内存上获取所述数据处理完成标识,并根据所述数据处理完成标识确定所述目标地址;所述目标地址用于存储目标通信短数据和传递标识以及目标通信长数据的地址,所述传递标识用于表征目标通信数据是否分布式存储在核间内存和外部内存上;根据所述核间内存上所述目标地址上的传递标识确定所述目标通信数据是否分布式存储在核间内存和外部内存上;若是,则在所述外部内存上获取目标通信长数据。

可选的,上述第二内核,还用于控制所述第二内核在所述核间内存上获取所述目标地址上的目标通信长数据的地址;控制所述第二内核根据所述目标通信长数据的地址在所述外部内存上获取对应的所述目标通信长数据。

在另一个实施例中,所述第二内核,还用于对所述目标通信短数据进行处理,并在处理完成之后,将所述核间内存上的所述目标通信短数据的地址清空;若所述所述目标通信数据分布式存储在所述核间内存和所述外部内存上,则对所述目标通信长数据进行处理,并在处理完成之后,将所述外部内存上的所述目标通信长数据的地址清空。

可选的,上述第二内核,还用于若所述目标通信数据存储在所述核间内存上,则对所述目标通信短数据进行处理,并在处理完成之后,将所述核间内存上的所述目标通信短数据的地址清空。

关于通信数据处理系统具体限定可以参见上文中对于通信数据处理方法的限定,在此不再赘述。

在一个实施例中,如图6所示,提供了一种通信数据处理装置,包括:第一控制模块10和第二控制模块11,其中:

第一控制模块10,用于控制所述第一内核接收fpga发送的第一触发指令,并根据所述第一触发指令将至少一组通信数据发送至共享内存进行存储;

第二控制模块11,用于控制所述第二内核接收fpga发送的第二触发指令,并根据所述第二触发指令在所述共享内存上对所述通信数据进行处理。

可选的,所述第一触发指令和第二触发指令的触发机制不同,所述触发机制用于表征内核的中断频次。

可选的,上述装置还可以包括设置模块,该设置模块用于设置多个流水线状态机,分别用于记录所述第一内核和所述第二内核的各个业务的处理状态。

关于通信数据处理装置的具体限定可以参见上文中对于通信数据处理方法的限定,在此不再赘述。

在另一个实施例中,提供了另一种通信数据处理装置,上述第二控制模块11可以包括执行单元,该执行单元,用于执行处理操作,所述处理操作包括:控制所述第二内核在所述共享内存上获取数据处理完成标识,并根据所述数据处理完成标识确定对应的目标地址;控制所述第二内核在所述共享内存上对所述目标地址上的目标通信数据进行处理,并在处理完成之后,将所述目标地址清空。

可选的,上述执行单元,还用于控制所述第二内核判断所述共享内存上是否存在数据处理完成标识,若存在,则返回执行所述处理操作,直至所述共享内存上不存在所述数据处理完成标识。

在另一个实施例中,提供了另一种通信数据处理装置,上述执行单元包括第一控制子单元,该第一控制子单元用于控制所述第二内核在所述核间内存上获取所述数据处理完成标识,并根据所述数据处理完成标识确定所述目标地址;所述目标地址用于存储目标通信短数据和传递标识以及目标通信长数据的地址,所述传递标识用于表征目标通信数据是否分布式存储在核间内存和外部内存上;控制所述第二内核根据所述核间内存上所述目标地址上的传递标识确定所述目标通信数据是否分布式存储在核间内存和外部内存上;若是,则控制所述第二内核在所述外部内存上获取目标通信长数据。

可选的,上述第一控制子单元还用于控制所述第二内核在所述核间内存上获取所述目标地址上的目标通信长数据的地址;控制所述第二内核根据所述目标通信长数据的地址在所述外部内存上获取对应的所述目标通信长数据。

在另一个实施例中,提供了另一种通信数据处理装置,上述执行单元包括第二控制子单元,该第二控制子单元,用于控制所述第二内核对所述目标通信短数据进行处理,并在处理完成之后,将所述核间内存上的所述目标通信短数据的地址清空;若所述所述目标通信数据分布式存储在所述核间内存和所述外部内存上,则控制所述第二内核对所述目标通信长数据进行处理,并在处理完成之后,将所述外部内存上的所述目标通信长数据的地址清空。

可选的,上述第二控制子单元还用于若所述目标通信数据存储在所述核间内存上,则控制所述第二内核对所述目标通信短数据进行处理,并在处理完成之后,将所述核间内存上的所述目标通信短数据的地址清空。

关于通信数据处理装置的具体限定可以参见上文中对于通信数据处理方法的限定,在此不再赘述。

上述通信数据处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种通信数据处理方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:

控制所述第一内核接收fpga发送的第一触发指令,并根据所述第一触发指令将至少一组通信数据发送至共享内存进行存储;

控制所述第二内核接收fpga发送的第二触发指令,并根据所述第二触发指令在所述共享内存上对所述通信数据进行处理。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

执行处理操作,所述处理操作包括:控制所述第二内核在所述共享内存上获取数据处理完成标识,并根据所述数据处理完成标识确定对应的目标地址;控制所述第二内核在所述共享内存上对所述目标地址上的目标通信数据进行处理,并在处理完成之后,将所述目标地址清空。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

控制所述第二内核判断所述共享内存上是否存在数据处理完成标识,若存在,则返回执行所述处理操作,直至所述共享内存上不存在所述数据处理完成标识。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

控制所述第二内核在所述核间内存上获取所述数据处理完成标识,并根据所述数据处理完成标识确定所述目标地址;所述目标地址用于存储目标通信短数据和传递标识以及目标通信长数据的地址,所述传递标识用于表征目标通信数据是否分布式存储在核间内存和外部内存上;

控制所述第二内核根据所述核间内存上所述目标地址上的传递标识确定所述目标通信数据是否分布式存储在核间内存和外部内存上;

若是,则控制所述第二内核在所述外部内存上获取目标通信长数据。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

控制所述第二内核在所述核间内存上获取所述目标地址上的目标通信长数据的地址;

控制所述第二内核根据所述目标通信长数据的地址在所述外部内存上获取对应的所述目标通信长数据。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

控制所述第二内核对所述目标通信短数据进行处理,并在处理完成之后,将所述核间内存上的所述目标通信短数据的地址清空;

若所述所述目标通信数据分布式存储在所述核间内存和所述外部内存上,则控制所述第二内核对所述目标通信长数据进行处理,并在处理完成之后,将所述外部内存上的所述目标通信长数据的地址清空。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

若所述目标通信数据存储在所述核间内存上,则控制所述第二内核对所述目标通信短数据进行处理,并在处理完成之后,将所述核间内存上的所述目标通信短数据的地址清空。

在一个实施例中,所述第一触发指令和第二触发指令的触发机制不同,所述触发机制用于表征内核的中断频次。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

设置多个流水线状态机,分别用于记录所述第一内核和所述第二内核的各个业务的处理状态。

在一个实施例中,提供了一种可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

控制所述第一内核接收fpga发送的第一触发指令,并根据所述第一触发指令将至少一组通信数据发送至共享内存进行存储;

控制所述第二内核接收fpga发送的第二触发指令,并根据所述第二触发指令在所述共享内存上对所述通信数据进行处理。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

执行处理操作,所述处理操作包括:控制所述第二内核在所述共享内存上获取数据处理完成标识,并根据所述数据处理完成标识确定对应的目标地址;控制所述第二内核在所述共享内存上对所述目标地址上的目标通信数据进行处理,并在处理完成之后,将所述目标地址清空。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

控制所述第二内核判断所述共享内存上是否存在数据处理完成标识,若存在,则返回执行所述处理操作,直至所述共享内存上不存在所述数据处理完成标识。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

控制所述第二内核在所述核间内存上获取所述数据处理完成标识,并根据所述数据处理完成标识确定所述目标地址;所述目标地址用于存储目标通信短数据和传递标识以及目标通信长数据的地址,所述传递标识用于表征目标通信数据是否分布式存储在核间内存和外部内存上;

控制所述第二内核根据所述核间内存上所述目标地址上的传递标识确定所述目标通信数据是否分布式存储在核间内存和外部内存上;

若是,则控制所述第二内核在所述外部内存上获取目标通信长数据。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

控制所述第二内核在所述核间内存上获取所述目标地址上的目标通信长数据的地址;

控制所述第二内核根据所述目标通信长数据的地址在所述外部内存上获取对应的所述目标通信长数据。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

控制所述第二内核对所述目标通信短数据进行处理,并在处理完成之后,将所述核间内存上的所述目标通信短数据的地址清空;

若所述所述目标通信数据分布式存储在所述核间内存和所述外部内存上,则控制所述第二内核对所述目标通信长数据进行处理,并在处理完成之后,将所述外部内存上的所述目标通信长数据的地址清空。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

若所述目标通信数据存储在所述核间内存上,则控制所述第二内核对所述目标通信短数据进行处理,并在处理完成之后,将所述核间内存上的所述目标通信短数据的地址清空。

在一个实施例中,所述第一触发指令和第二触发指令的触发机制不同,所述触发机制用于表征内核的中断频次。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

设置多个流水线状态机,分别用于记录所述第一内核和所述第二内核的各个业务的处理状态。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1