数据处理方法、FPGA加速卡及计算机可读存储介质与流程

文档序号:28268810发布日期:2021-12-31 19:15阅读:77来源:国知局
数据处理方法、FPGA加速卡及计算机可读存储介质与流程
数据处理方法、fpga加速卡及计算机可读存储介质
技术领域
1.本发明涉及fpga领域,特别涉及一种数据处理方法、fpga加速卡及计算机可读存储介质。


背景技术:

2.为了提升计算系统的并行计算能力,通常会采用fpga加速卡分担cpu计算压力,以提升整个计算系统的性能。相关技术中,fpga加速卡在数据处理前需要将原始数据发送至低速缓存区域进行存储,再根据内核的需求从缓存中读取数据进行处理;在完成处理后,还需将已处理的数据缓存至上述低速缓存区域,再根据需求从缓存中读取数据进行发送。在由多加速卡参与的加速任务中,上述读写低速缓存的操作将耗费大量时间,进而将降低多加速卡整体的加速性能。


技术实现要素:

3.本发明的目的是提供一种数据处理方法、fpga加速卡及计算机可读存储介质,可在数据包处理模块和内核模块之间设置直通的数据通路,确保fpga加速卡能够直接进行数据处理及发送,可避免反复读写低速缓存对多加速卡加速任务的效率损耗,提升多加速卡整体的加速性能。
4.为解决上述技术问题,本发明提供一种数据处理方法,应用于fpga加速卡,包括:
5.数据包处理模块对数据发送端发送的第一数据包进行解包处理得到待处理数据,并将所述待处理数据发送至内核模块;
6.所述内核模块对所述待处理数据进行运算处理得到已处理数据,并将所述已处理数据发送至所述数据包处理模块;
7.所述数据包处理模块对所述已处理数据进行封包处理得到第二数据包,并将所述第二数据包发送至数据接收端。
8.可选地,所述将所述待处理数据发送至内核模块,包括:
9.所述数据包处理模块将所述待处理数据发送至第一时钟模块;
10.所述第一时钟模块对所述待处理数据进行时钟转换,并将转换后的待处理数据发送至所述内核模块;
11.相应的,所述将所述已处理数据发送至所述数据包处理模块,包括:
12.所述内核模块将所述已处理数据发送至第二时钟模块;
13.所述第二时钟模块对所述已处理数据进行所述时钟转换,并缓存转换后的已处理数据,以使所述数据包处理模块从所述第二时钟模块获取所述转换后的已处理数据。
14.可选地,所述第一时钟模块包含缓存队列及第一时钟转换队列,所述第一时钟模块对所述待处理数据进行时钟转换,并将转换后的待处理数据发送至所述内核模块,包括:
15.所述缓存队列缓存所述待处理数据;
16.所述第一时钟转换队列对从所述缓存队列中获取到的待处理数据进行所述时钟
转换,并将转换后的待处理数据发送至所述内核模块。
17.可选地,还包括:
18.所述数据包处理模块获取所述缓存队列的剩余空间信息,并将所述剩余空间信息进行所述封装处理,得到应答数据包;
19.将所述应答数据包发送至所述数据发送端,以使所述数据发送端利用所述剩余空间信息调整发送所述第一数据包的流量。
20.可选地,所述第二时钟模块包含ram及第二时钟转换队列,所述第二时钟模块对所述已处理数据进行所述时钟转换,并缓存转换后的已处理数据,包括:
21.所述第二时钟转换队列对所述已处理数据进行所述时钟转换,并将转换后的已处理数据缓存至所述ram中;
22.相应的,所述数据包处理模块从所述第二时钟模块获取所述转换后的已处理数据,包括:
23.所述数据包处理模块从所述ram中获取所述转换后的已处理数据。
24.可选地,所述数据包处理模块对数据发送端发送的第一数据包进行解包处理得到待处理数据,包括:
25.所述数据包处理模块通过通信控制器获取所述第一数据包;所述通信控制器包括mac控制器或pcie控制器;
26.对所述第一数据包进行解包处理得到待处理数据;
27.相应的,所述将所述第二数据包发送至数据接收端,包括:
28.所述数据包处理模块通过所述通信控制器将所述第二数据包发送至所述数据接收端。
29.可选地,在并将所述待处理数据发送至内核模块之前,还包括:
30.所述数据包处理模块将所述待处理数据发送至数据选择模块;
31.所述数据选择模块根据预设配置信息将所述待处理数据发送至所述内核模块或存储模块;
32.相应的,还包括:
33.所述数据选择模块根据所述预设配置信息从所述内核模块或所述存储模块获取所述已处理数据,并将所述已处理数据发送至所述数据包处理模块。
34.本发明还提供一种fpga加速卡,包括:数据包处理模块和内核模块,其中,
35.所述数据包处理模块,用于对数据发送端发送的第一数据包进行解包处理得到待处理数据,并将所述待处理数据发送至所述内核模块;对所述内核模块发送的已处理数据进行封包处理得到第二数据包,并将所述第二数据包发送至数据接收端;
36.所述内核模块,用于对所述待处理数据进行运算处理得到所述已处理数据,并将所述已处理数据发送至所述数据包处理模块。
37.可选地,还包括:第一时钟模块,其中,
38.所述数据包处理模块,还用于将所述待处理数据发送至第一时钟模块;
39.所述第一时钟模块,用于对所述待处理数据进行时钟转换,并将转换后的待处理数据发送至所述内核模块;
40.相应的,还包括:第二时钟模块,其中,
41.所述内核模块,还用于将所述已处理模块发送至第二时钟模块;
42.所述第二时钟模块,用于对所述已处理数据进行所述时钟转换,并缓存转换后的已处理数据,以使所述数据包处理模块从所述第二时钟模块获取所述转换后的已处理数据。
43.本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上述所述的数据处理方法。
44.本发明提供一种数据处理方法,应用于fpga加速卡,包括:数据包处理模块对数据发送端发送的第一数据包进行解包处理得到待处理数据,并将所述待处理数据发送至内核模块;所述内核模块对所述待处理数据进行运算处理得到已处理数据,并将所述已处理数据发送至所述数据包处理模块;所述数据包处理模块对所述已处理数据进行封包处理得到第二数据包,并将所述第二数据包发送至数据接收端。
45.可见,在本发明中,数据包处理模块在完成对数据发送端所发送的第一数据包的解包处理后,会将得到的待处理数据直接发送到内核模块进行运算处理,而并不会将该数据写入低速缓存,能够避免数据接收与数据处理之间的低速缓存读写操作;此外,内核模块在完成运算处理后,会直接将已处理数据直接发送到数据包处理模块进行封包处理及发送,而并不会将该数据写入低速缓存,能够避免从数据处理到数据发送之间的低速缓存读写操作。换而言之,本发明在数据包处理模块和内核模块之间设置了直通的数据通路,可确保fpga加速卡在数据处理前后均不需要进行低速缓存读写操作,能够有效避免反复的缓存读写操作对多加速卡加速任务的效率损耗,进而提升多加速卡整体的加速性能。本发明还提供一种fpga加速卡及计算机可读存储介质,具有上述有益效果。
附图说明
46.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
47.图1为本发明实施例所提供的一种数据处理方法的流程图;
48.图2为本发明实施例所提供的第一种fpga加速卡的结构框图;
49.图3a为本发明实施例所提供的第二种fpga加速卡的结构框图;
50.图3b为本发明实施例所提供的第三种fpga加速卡的结构框图;
51.图3c为本发明实施例所提供的第一时钟转化队列的结构框图;
52.图3d为本发明实施例所提供的第二时钟转化队列的结构框图;
53.图3e为本发明实施例所提供的第四种fpga加速卡的结构框图;
54.图3f为本发明实施例所提供的第五种fpga加速卡的结构框图。
具体实施方式
55.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是
本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
56.为了提升计算系统的并行计算能力,通常会采用fpga加速卡分担cpu计算压力,以提升整个计算系统的性能。相关技术中,fpga加速卡在数据处理前需要将原始数据发送至低速缓存区域进行存储,再根据内核的需求从缓存中读取数据进行处理;在完成处理后,还需将已处理的数据缓存至上述低速缓存区域,再根据需求从缓存中读取数据进行发送。在由多加速卡参与的加速任务中,上述读写低速缓存的操作将耗费大量时间,进而将降低多加速卡整体的加速性能。有鉴于此,本发明提供一种数据处理方法,可在数据包处理模块和内核模块之间设置直通的数据通路,确保fpga加速卡能够直接进行数据处理及发送,可避免反复读写低速缓存对多加速卡加速任务的效率损耗,提升多加速卡整体的加速性能。请参考图1,图1为本发明实施例所提供的一种数据处理方法的流程图,该方法应用于fpga加速卡,可以包括:
57.s101、数据包处理模块对数据发送端发送的第一数据包进行解包处理得到待处理数据,并将待处理数据发送至内核模块。
58.相关技术中,fpga加速卡在完成对数据发送端发送的第一数据包的解包操作后,并不会直接将得到的待处理数据直接发送至内核进行处理,而是将其写入低速缓存区域,例如通过dma(direct memory access,直接数据存储)技术将其写入主机host缓存区(宿主缓存区),或是写入内部的ddr缓存区,随后再根据内核模块(kernel)的需求将其从缓存区域中取出并处理。换而言之,在相关技术中,内核模块需要反复执行对低速缓存的读取操作才能获得待处理数据,而并非直接接收到待处理数据,可以理解的是,主机host缓存区及ddr缓存区的带宽较小,读写时延较大,在多加速卡任务中,假若每一加速卡的内核都需要执行上述对慢速缓存的读取操作,将耗费大量时间,降低处理效率。而在本发明实施例中,则在数据包处理模块和内核模块之间设置了直通的数据通路,数据包处理模块不需要将待处理数据发送至缓存模块,而内核模块也不需要执行缓存读取操作,只需要接收待处理数据并进行处理即可,能够节省缓存读取操作所耗费的时间,并提升多加速卡的处理效率。
59.需要说明的是,本发明实施例并不限定从数据包处理模块到内核模块的数据通路的具体形式,若数据包处理模块与内核模块采用相同的时钟域进行数据传输,则可采用简单的数据链路作为上述数据通路;若数据包处理模块与内核模块之间采用不同的时钟域进行数据传输,则上述数据通路还可以为时钟模块,由时钟模块将待处理数据由数据包处理模块的时钟域转换为内核模块的时钟域。考虑到在一般的fpga加速卡中,数据包处理模块与内核模块通常会采用不同的时钟域进行数据传输,因此为确保两模块能够正确传输数据,通常需要在其之间设置时钟隔离,因此从数据包处理模块到内核模块的数据通路可以是时钟模块。
60.在一种可能的情况中,将待处理数据发送至内核模块,可以包括:
61.步骤11:数据包处理模块将待处理数据发送至第一时钟模块;
62.步骤12:第一时钟模块对待处理数据进行时钟转换,并将转换后的待处理数据发送至内核模块。
63.需要说明的是,本发明实施例并不限定时钟转换的具体过程,可参考时钟转换的相关技术。进一步,为了方便第一时钟模块有序接收并处理待处理数据,也可以在其内部设
置一个缓存队列,用于有序接收待处理数据,而时钟处理部分也可以设置时钟转换队列,用于有序转换待处理数据。
64.在一种可能的情况中,第一时钟模块包含缓存队列及第一时钟转换队列,第一时钟模块对待处理数据进行时钟转换,并将转换后的待处理数据发送至内核模块,包括:
65.步骤21:缓存队列缓存待处理数据;
66.步骤22:第一时钟转换队列对从缓存队列中获取到的待处理数据进行时钟转换,并将转换后的待处理数据发送至内核模块。
67.需要明确的是,第一时钟转换队列在完成对待处理数据的时钟转换后,便主动将数据发送至内核模块,不需要内核模块再从第一时钟转换队列进行读取。需要说明的是,本发明实施例并不限定缓存队列和第一时钟转换队列所能容纳的数据量(即两队列的深度),可根据实际应用需求进行设置。
68.进一步,需要说明的是,本发明实施例并不限定具体的数据发送端,例如可以为调度fpga加速卡进行工作的宿主机,当然在多加速卡任务中,数据发送端也可以为其他fpga加速卡。数据发送端与fpga加速卡之间传输数据的方式,例如可通过网络形式进行传输,也可以通过pcie形式进行传输,其中pcie(peripheral component interconnect express)是一种高速串行计算机扩展总线标准,可根据实际应用需求进行选择。可以理解的是,为了接受第一数据包,fpga加速卡中需要设置相应的通信控制器,根据上述描述,通信控制器既可以为mac控制器,也可以为pcie控制器,可根据实际应用需求进行选择。
69.在一种可能的情况中,数据包处理模块对数据发送端发送的第一数据包进行解包处理得到待处理数据,包括:
70.步骤31:数据包处理模块通过通信控制器获取第一数据包;通信控制器包括mac控制器或pcie控制器;
71.步骤32:对第一数据包进行解包处理得到待处理数据;
72.进一步,本发明实施例并不限定对第一数据包的解包处理过程,可参考数据封包和解包的相关技术。
73.s102、内核模块对待处理数据进行运算处理得到已处理数据,并将已处理数据发送至数据包处理模块。
74.与fpga加速卡对待处理数据的处理方式类似,在相关技术中,内核模块在完成对待处理数据的运算处理后,并不会直接将其发送至数据包处理模块进行封包处理并发送,而是将其写入缓存区域,如主机host缓存或ddr缓存,再根据管控fpga加速卡的宿主机的需求,将相关数据从缓存中取出进行封包及发送。同样的,在多加速卡任务中,假若每一加速卡在发送已处理数据时,还需反复执行上述对慢速缓存的读取操作,将耗费大量时间,降低处理效率。而在本发明实施例中,则在数据包处理模块和内核模块之间设置了直通的数据通路,内核模块在完整运算处理后,可将得到的已处理数据直接发送至数据包处理模块进行封包及发送操作,可避免数据包处理模块反复记性读写低速缓存的操作,进而可节省低速缓存读取操作所耗费的时间,并提升多加速卡的处理效率。
75.需要说明的是,本发明实施例对从内核模块到数据包处理模块的数据通路的限定描述,与上述对从数据包处理模块到内核模块的数据通路的限定描述类似,此处不再赘述。同样的,与待处理数据从数据包处理模块发送至内核模块的过程类似,在内核模块将已处
理数据发送至数据包处理模块时,也需要进行时钟转换,因此从内核模块到数据包处理模块之间的数据通路同样可以为时钟模块。
76.在一种可能的情况中,将已处理数据发送至数据包处理模块,可以包括:
77.步骤41:内核模块将已处理数据发送至第二时钟模块;
78.步骤42:第二时钟模块对已处理数据进行时钟转换,并缓存转换后的已处理数据,以使数据包处理模块从第二时钟模块获取转换后的已处理数据。
79.同样的,为了对已处理数据进行有序时钟转换,在本发明实施例中,第二时钟模块同样可以包含时钟转换队列,用于对已处理数据进行有序的时钟转换。进一步,为了方便数据包处理模块进行组包,以及在丢包或错包的情况下进行重传,在第二时钟模块中可设置缓存。为了提升缓存读写效率,该缓存可以为fpga加速卡内部的ram,其中ram(random access memory),也叫主存,是与内核模块直接交换数据的内部存储器。可以理解的是,ram的读写速度远快于对主机host缓存区及ddr缓存的读写速度,能够有效降低缓存读写所带来的效率损耗。
80.在一种可能的情况中,第二时钟模块包含ram及第二时钟转换队列,第二时钟模块对已处理数据进行时钟转换,并缓存转换后的已处理数据,可以包括:
81.步骤51:第二时钟转换队列对已处理数据进行时钟转换,并将转换后的已处理数据缓存至ram中;
82.相应的,数据包处理模块从第二时钟模块获取转换后的已处理数据,包括:
83.步骤61:数据包处理模块从ram中获取转换后的已处理数据。
84.s103、数据包处理模块对已处理数据进行封包处理得到第二数据包,并将第二数据包发送至数据接收端。
85.可以理解的是,数据包处理模块同样可通过通信控制器发送第二数据包至数据接收端。
86.在一种可能的情况中,将第二数据包发送至数据接收端,可以包括:
87.步骤71:数据包处理模块通过通信控制器将第二数据包发送至数据接收端。
88.需要说明的是,对通信控制器的限定描述可参考上述实施例,此处不再赘述;本发明实施例也不限定对第一数据包的封包处理过程,可参考数据封包和解包的相关技术;本发明实施例也不限定具体的数据接收端,对数据接收端的限定描述与对数据发送端的限定描述一致,此处不再赘述。需要说明的是,在多加速卡任务中,各fpga加速卡通常由宿主机进行统一调度,换而言之,fpga加速卡所对应的数据接收端信息由宿主机进行统一调度发送,此处并不限定上述调度过程,可参考多加速卡任务的相关技术。
89.基于上述实施例,在本发明中,数据包处理模块在完成对数据发送端所发送的第一数据包的解包处理后,会将得到的待处理数据直接发送到内核模块进行运算处理,而并不会将该数据写入低速缓存,能够避免数据接收与数据处理之间的低速缓存读写操作;此外,内核模块在完成运算处理后,会直接将已处理数据直接发送到数据包处理模块进行封包处理及发送,而并不会将该数据写入低速缓存,能够避免从数据处理到数据发送之间的低速缓存读写操作。换而言之,本发明在数据包处理模块和内核模块之间设置了直通的数据通路,可确保fpga加速卡在数据处理前后均不需要进行低速缓存读写操作,能够有效避免反复的缓存读写操作对多加速卡加速任务的效率损耗,进而提升多加速卡整体的加速性
能。
90.基于上述实施例,考虑到宿主机与fpga加速卡,以及fpga加速卡之间的通信状态可能出现波动,同时各加速卡的处理效率也会出现波动,为避免在某一fpga加速卡出现瓶颈时,由上游设备向其发送大量待处理数据所导致的无法处理或数据丢失问题,在本发明实施例中,fpga加速卡还可收集缓存队列的剩余空间并告知数据发送端,以便数据发送端进行及时调控。在一种可能的情况中,本数据处理方法还可以包括:
91.s201、数据包处理模块获取缓存队列的剩余空间信息,并将剩余空间信息进行封装处理,得到应答数据包。
92.应答数据包(ack,acknowledge)通常为通信某端在接收到对端数据时所发送的反馈信息。在本发明实施例中,为避免数据发送端发送大量本卡无法处理的数据,数据包处理模块会主动收集缓存队列的剩余空间信息,并将该信息封装至应道数据包中返回给数据发送端。这样,数据发送端在获取到该剩余空间信息后,便可了解本fpga加速卡的处理情况,进而调整发送第一数据包的流量。需要说明的是,本发明实施例并不限定应答数据包的具体形式,可参考网络通信的相关技术,只要该应答数据包中能够包含剩余空间信息即可。
93.s202、将应答数据包发送至数据发送端,以使数据发送端利用剩余空间信息调整发送第一数据包的流量。
94.基于上述实施例,在本发明中的数据包处理模块还可收集缓存队列的剩余空间并告知数据发送端,以便数据发送端进行及时调控,可避免在某一fpga加速卡出现瓶颈时,由上游设备向其发送大量待处理数据所导致的无法处理或数据丢失问题。
95.基于上述实施例,为提升fpga加速卡的兼容性,便于其在处理单卡任务时能够兼容现有的慢速缓存读写机制,在本发明实施例中,还可为fpga加速卡中设置数据选择模块,以根据实际需求兼容所需的数据读写模式。在一种可能的情况中,在并将待处理数据发送至内核模块之前,还可以包括:
96.s301、数据包处理模块将待处理数据发送至数据选择模块;
97.s302、数据选择模块根据预设配置信息将待处理数据发送至内核模块或存储模块。
98.数据选择模块(mux,multiplexer)通常的作用为信号切换,其内部设置有对应的寄存器,可根据寄存器配置选择对应的数据通路。本发明实施例可通过设置数据选择模块,实现fpga加速卡对现有慢速缓存的读写机制,当fpga加速卡需要以dma工作模式进行数据处理时,或是需要将数据缓存至ddr缓存时,便可配置数据选择模块,以便数据包处理模块在完成对第一数据包的解包处理后,将待处理数据写入主机host缓存或ddr缓存;当然,若需要提升多加速卡的工作效率,同样可配置数据选择器,以便数据包处理模块在完成对第一数据包的解包处理后,直接将待处理数据发送至内核模块进行处理。需要说明的是,本发明实施例并不限定数据选择模块寄存器配置的具体预设配置信息,可根据实际应用需求进行设置。
99.同样的,对从内核模块到数据包处理模块的数据通路,同样可设置上述数据选择模块,以达到提升fpga加速卡兼容性的效果。
100.相应的,还可以包括:
101.s401、数据选择模块根据预设配置信息从内核模块或存储模块获取已处理数据,
并将已处理数据发送至数据包处理模块。
102.基于上述实施例,在本发明还可为fpga加速卡中设置数据选择模块,以根据实际需求兼容所需的数据读写模式,进而可提升fpga加速卡的兼容性,便于其在处理单卡任务时能够兼容现有的慢速缓存读写机制。
103.下面基于具体的fpga结构图介绍上述数据处理方法。请参考图2,图2为本发明实施例所提供的第一种fpga加速卡的结构框图。
104.1、在发送、接收通道中,增加跨时钟域隔离的时钟转换队列(时钟转换fifo,first in first out,先进先出队列),解决内核模块(kernel)与协议包处理模块之间的异步时钟问题;
105.2、内核模块处理完数据,经过时钟转换队列后,暂存在fpga内部ram中,用于缓存组包,以及丢包错包重传;
106.3、在接收通道中(即接收模块与内核模块之间的通路,接收模块与数据包处理模块相连,数据包处理模块未画出),增加缓存队列(缓存fifo),用于暂存解析后的流式加速数据;同时作为接收端,该缓存队列的剩余深度将作为网络流控的窗口值,通过应答数据包(ack包)的方式反馈给发送端;
107.4、在发送通道中(即发送模块与内核模块之间的通路),增加数据选择模块(mux模块),用于选择发送处理模块的数据包来源,通过寄存器配置切换流数据模式和传统的ddr模式;同理,在接收通道中,增加数据选择模块,用于选择将接收解析后的有效数据存放在板卡ddr中还是流模式的内部ram中。
108.下面对本发明实施例提供的一种fpga加速卡及计算机可读存储介质进行介绍,下文描述的fpga加速卡及计算机可读存储介质与上文描述的数据处理方法可相互对应参照。
109.请参考图3a,图3a为本发明实施例所提供的第二种fpga加速卡的结构框图,该fpga加速卡可以包括:数据包处理模块302和内核模块301,其中,
110.数据包处理模块302,用于对数据发送端发送的第一数据包进行解包处理得到待处理数据,并将待处理数据发送至内核模块301;对内核模块301发送的已处理数据进行封包处理得到第二数据包,并将第二数据包发送至数据接收端;
111.内核模块301,用于对待处理数据进行运算处理得到已处理数据,并将已处理数据发送至数据包处理模块302。
112.可选地,请参考图3b,图3b为本发明实施例所提供的第三种fpga加速卡的结构框图,fpga加速卡还可以包括:第一时钟模块303,其中,
113.数据包处理模块302,还用于将待处理数据发送至第一时钟模块303;
114.第一时钟模块303,用于对待处理数据进行时钟转换,并将转换后的待处理数据发送至内核模块301;
115.相应的,还包括:第二时钟模块304,其中,
116.内核模块301,还用于将已处理模块发送至第二时钟模块304;
117.第二时钟模块304,用于对已处理数据进行时钟转换,并缓存转换后的已处理数据,以使数据包处理模块302从第二时钟模块304获取转换后的已处理数据。
118.可选地,请参考图3c,图3c为本发明实施例所提供的第一时钟转化队列的结构框图,第一时钟模块303可以包含缓存队列3031及第一时钟转换队列3032,其中,
119.缓存队列3031,用于缓存待处理数据;
120.第一时钟转换队列3032,用于对从缓存队列3031中获取到的待处理数据进行时钟转换,并将转换后的待处理数据发送至内核模块301。
121.可选地,
122.数据包处理模块302,还可以获取缓存队列3031的剩余空间信息,并将剩余空间信息进行封装处理,得到应答数据包;将应答数据包发送至数据发送端,以使数据发送端利用剩余空间信息调整发送第一数据包的流量。
123.可选地,请参考图3d,图3d为本发明实施例所提供的第二时钟转化队列的结构框图,第二时钟模块304可以包含ram3042及第二时钟转换队列3041,其中,
124.第二时钟转换队列3041,用于对已处理数据进行时钟转换,并将转换后的已处理数据缓存至ram3042中;
125.相应的,
126.数据包处理模块302,还用于从ram3042中获取转换后的已处理数据。
127.可选地,请参考图3e,图3e为本发明实施例所提供的第四种fpga加速卡的结构框图,fpga加速卡还可以包括:通信控制器305,通信控制器305包括mac控制器或pcie控制器,其中,
128.数据包处理模块302,还可以用于通过通信控制器305获取第一数据包;对第一数据包进行解包处理得到待处理数据;通过通信控制器305将第二数据包发送至数据接收端。
129.可选地,请参考图3f,图3f为本发明实施例所提供的第五种fpga加速卡的结构框图,fpga加速卡还可以包括:数据选择模块306和存储模块307,其中,
130.数据包处理模块302,用于将待处理数据发送至数据选择模块306;
131.数据选择模块306,用于根据预设配置信息将待处理数据发送至内核模块301或存储模块307;
132.相应的,
133.数据选择模块306,还用于根据预设配置信息从内核模块301或存储模块307获取已处理数据,并将已处理数据发送至数据包处理模块302。
134.本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述任意实施例的数据处理方法的步骤。
135.由于计算机可读存储介质部分的实施例与数据处理方法部分的实施例相互对应,因此计算机可读存储介质部分的实施例请参见数据处理方法部分的实施例的描述,这里暂不赘述。
136.说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
137.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业
技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
138.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd

rom、或技术领域内所公知的任意其它形式的存储介质中。
139.以上对本发明所提供的一种数据处理方法、fpga加速卡及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1