CN104899085B - 一种数据处理方法和装置 - Google Patents
一种数据处理方法和装置 Download PDFInfo
- Publication number
- CN104899085B CN104899085B CN201510288092.2A CN201510288092A CN104899085B CN 104899085 B CN104899085 B CN 104899085B CN 201510288092 A CN201510288092 A CN 201510288092A CN 104899085 B CN104899085 B CN 104899085B
- Authority
- CN
- China
- Prior art keywords
- acceleration
- group
- module
- processing
- message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/302—Route determination based on requested QoS
- H04L45/306—Route determination based on the nature of the carried application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/64—Routing or path finding of packets in data switching networks using an overlay routing layer
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供了一种数据处理方法和装置。该数据处理方法,应用于硬件处理单元对主机发送的业务数据进行加速的场景,所述方法由所述硬件处理单元执行,包括:接收来自所述主机业务层发送且透传过所述主机驱动层的请求消息,所述请求消息包括至少一个加速类型标识及待加速处理的业务数据,其中,每个加速类型标识对应于一种加速处理;对所述业务数据进行与所述至少一个加速类型标识一一对应的至少一种加速处理。该方法中主机的业务层与硬件处理单元之间的交互不需要专用的驱动配合,从而可以屏蔽业务层对具体底层驱动的依赖。本方法中硬件处理单元可以运行于不同的业务平台,逻辑的异构能力增强,从而可以提升业务处理过程中的动态性和灵活性。
Description
技术领域
本发明涉及数据处理技术领域,特别是涉及一种数据处理方法和一种数据处理装置。
背景技术
随着互联网技术的发展,各种新型业务不断发展,网络数据类型不断丰富,网络流量剧增,从而对处理设备的处理能力提出了更高的要求。为了提高处理能力,目前的处理设备开始越来越多地使用硬件处理单元(如FPGA、ASIC等)来对一些业务进行加速。
现有的基于CPU+FPGA进行硬件加速的方案的中,CPU(可认为是“主机”)用于执行业务层(一般也可称为“应用层”、“上层”)以及底层驱动的代码,其中,业务层用于产生需要进行加速的原始加速源数据或者用于接收调度过来的其他业务层的原始加速源数据。底层驱动用于配合业务层完成调度指令的解析、数据转换、数据封装、数据传输等工作。FPGA用于接收底层驱动下发的数据,完成对数据的加速处理,并将处理后的数据通过底层驱动返回给业务层。
然而,该方案针对不同的业务类型进行加速时需要依赖于底层驱动,也即业务层必须要通过与不同业务类型配套的专用底层驱动才能完成相应功能的FPGA加速。因此,现有技术方案中每一种需要加速的业务类型都需要定制化的底层驱动,动态性与灵活性差。
发明内容
本发明实施例提供了一种数据处理方法和装置,用于解决现有技术存在着的针对每一种业务加速场景都需要定制化底层驱动,导致动态性与灵活性差的问题。
第一方面,本发明实施例提供一种数据处理方法,应用于硬件处理单元对主机发送的业务数据进行加速的场景,所述方法由所述硬件处理单元执行,包括:
接收来自所述主机业务层发送且透传过所述主机驱动层的请求消息,所述请求消息包括至少一个加速类型标识及待加速处理的业务数据,其中,每个加速类型标识对应于一种加速处理;
对所述业务数据进行与所述至少一个加速类型标识一一对应的至少一种加速处理。
结合上述第一方面,在第一种可能的实现方式中,所述请求消息包括多个加速类型标识,所述请求消息还包括:与每个加速类型标识一一对应的加速次序标识,所述加速次序标识用于指示加速处理的顺序;
所述对所述业务数据进行与所述至少一个加速类型标识分别对应的至少一种加速处理包括:
按所述多个加速次序标识指示的顺序对所述业务数据进行与所述多个加速类型标识一一对应的多个加速处理。
结合上述第一方面,和/或第一种可能的实现方式,在第二种可能的实现方式中,所述硬件处理单元包括接收模块,组间路由模块,至少一个加速处理组;
所述组间路由模块包括组间路由表,所述组间路由表包括加速类型标识与加速处理组之间的对应关系;
所述接收来自所述主机业务层发送且透传过所述主机驱动层的请求消息包括:所述接收模块接收来自所述主机业务层发送且透传过所述主机驱动层的请求消息;
所述对所述业务数据进行与所述至少一个加速类型标识一一对应的至少一种加速处理包括:
所述组间路由模块接收来自所述接收模块发送的所述请求消息;
所述组间路由模块解析出所述请求消息中的加速类型标识;
所述组间路由模块根据解析出的加速类型标识以及所述组间路由表将所述请求消息转发至目的加速处理组;
所述目的加速处理组对所述业务数据进行加速处理。
结合上述第一方面,和/或第一种可能的实现方式,和/或第二种可能的实现方式,在第三种可能的实现方式中,所述加速处理组包括解析模块,组内路由模块,至少一个加速处理模块,其中,各个加速处理模块用于对同一业务进行不同类型的加速处理;
所述组内路由模块包括组内路由表,所述组内路由表包括加速类型标识与加速处理模块之间的对应关系;
所述目的加速处理组对所述业务数据进行加速处理,包括:
所述目的加速处理组的解析模块对所述请求消息进行解析,将业务数据进行缓存,并根据解析结果生成内部转发消息,所述内部转发消息中包括所述加速类型标识及所述业务数据的缓存地址;
所述解析模块将所述内部转发消息发送至所述目的加速处理组的组内路由模块;
所述组内路由模块根据所述加速类型标识及所述组内路由表将所述内部转发消息发送至目的加速处理模块;
所述目的加速处理模块根据所述内部转发消息中包含的所述缓存地址获取所述业务数据并对所述业务数据进行加速处理。
结合上述第一方面,和/或第一种可能的实现方式,和/或第二种可能的实现方式,和/或第三种可能的实现方式,在第四种可能的实现方式中,当所述内部转发消息中包含加速次序标识时,所述目的加速处理组对所述业务数据进行加速处理,还包括:
所述目的加速处理模块将加速处理后的业务数据进行缓存,并通知所述组内路由模块;
所述组内路由模块根据所述加速次序标识将所述内部转发消息发送至下一目的加速处理模块,以使所述下一目的加速处理模块对所述目的加速处理模块缓存的数据进行加速处理,直至所述加速次序标识指示的加速顺序结束。
结合上述第一方面,和/或第一种可能的实现方式,和/或第二种可能的实现方式,和/或第三种可能的实现方式,和/或第四种可能的实现方式,在第五种可能的实现方式中,所述方法还包括:
所述目的加速处理模块将处理后的业务数据进行缓存;
当所述业务数据全部加速处理完毕时,所述目的组内路由模块读取缓存的所述处理后的业务数据;
所述目的组内路由模块根据所述处理后的业务数据生成所述请求消息对应的反馈消息;
所述目的组内路由模块将所述反馈消息发送至所述组间路由模块,以使所述组间路由模块将所述反馈消息发送至所述主机。
结合上述第一方面,和/或第一种可能的实现方式,和/或第二种可能的实现方式,和/或第三种可能的实现方式,和/或第四种可能的实现方式,和/或第五种可能的实现方式,在第六种可能的实现方式中,所述反馈消息与所述请求消息具有相同的消息结构,其中,所述消息结构中包括用于区分所述反馈消息与所述请求消息的消息类型字段。
结合上述第一方面,和/或第一种可能的实现方式,和/或第二种可能的实现方式,和/或第三种可能的实现方式,和/或第四种可能的实现方式,和/或第五种可能的实现方式,和/或第六种可能的实现方式,在第七种可能的实现方式中,所述请求消息中设置有字段域和数据域,所述字段域中包含业务头的字段和控制头的字段,所述业务头的字段中包含所述加速类型标识,所述数据域用于携带所述业务数据。
结合上述第一方面,和/或第一种可能的实现方式,和/或第二种可能的实现方式,和/或第三种可能的实现方式,和/或第四种可能的实现方式,和/或第五种可能的实现方式,和/或第六种可能的实现方式,和/或第七种可能的实现方式,在第八种可能的实现方式中,所述组间路由表还配置有老化开关和老化时间;所述方法还包括:
当所述组间路由表的老化开关开启且到达所述老化时间时,所述组间路由模块上报所述主机,以请求所述主机配置新的组间路由表。
结合上述第一方面,和/或第一种可能的实现方式,和/或第二种可能的实现方式,和/或第三种可能的实现方式,和/或第四种可能的实现方式,和/或第五种可能的实现方式,和/或第六种可能的实现方式,和/或第七种可能的实现方式,和/或第八种可能的实现方式,在第九种可能的实现方式中,所述组内路由表还配置有老化开关和老化时间;所述方法还包括:
当所述组内路由表的老化开关开启且到达所述老化时间时,所述组内路由模块上报所述主机,以请求所述主机配置新的组内路由表。
第二方面,本发明实施例还提供了一种数据处理装置,应用于对主机发送的业务数据进行加速的场景,所述装置包括:
接收模块,用于接收来自所述主机业务层发送且透传过所述主机驱动层的请求消息,所述请求消息包括至少一个加速类型标识及待加速处理的业务数据,其中,每个加速类型标识对应于一种加速处理;
处理模块,用于对所述接收模块接收到的所述业务数据进行与所述至少一个加速类型标识一一对应的至少一种加速处理。
结合上述第二方面,在第一种可能的实现方式中,所述请求消息包括多个加速类型标识,所述请求消息还包括:与每个加速类型标识一一对应的加速次序标识,所述加速次序标识用于指示加速处理的顺序;
所述处理模块,还用于按所述多个加速次序标识指示的顺序对所述业务数据进行与所述多个加速类型标识标分别对应的加速处理。
结合上述第二方面,和/或第一种可能的实现方式,在第二种可能的实现方式中,所述处理模块包括组间路由模块,至少一个加速处理组;
所述组间路由模块包括组间路由表,所述组间路由表包括加速类型标识与加速处理组之间的对应关系;所述组间路由模块,用于接收来自所述接收模块发送的所述请求消息;解析出所述请求消息中的加速类型标识;根据解析出的加速类型标识以及所述组间路由表将所述请求消息转发至目的加速处理组;
所述加速处理组,用于对业务数据进行加速处理。
结合上述第二方面,和/或第一种可能的实现方式,和/或第二种可能的实现方式,在第三种可能的实现方式中,所述加速处理组包括解析模块,组内路由模块,至少一个加速处理模块,其中,各个加速处理模块用于对同一业务进行不同类型的加速处理;
所述解析模块,用于对所述组间路由模块发送的所述请求消息进行解析,将业务数据进行缓存,并根据解析结果生成内部转发消息,所述内部转发消息中包括所述加速类型标识及所述业务数据的缓存地址;将所述内部转发消息发送至所述组内路由模块;
所述组内路由模块包括组内路由表,所述组内路由表包括加速类型标识与加速处理模块之间的对应关系;所述组内路由模块,用于根据所述加速类型标识及所述组内路由表将从所述解析模块接收到的所述内部转发消息发送至目的加速处理模块;
所述加速处理模块,用于根据从所述组内路由模块接收到的所述内部转发消息中包含的所述缓存地址获取所述业务数据并对所述业务数据进行加速处理。
结合上述第二方面,和/或第一种可能的实现方式,和/或第二种可能的实现方式,和/或第三种可能的实现方式,在第四种可能的实现方式中,所述加速处理模块,还用于当所述内部转发消息中包含加速次序标识时,将加速处理后的业务数据进行缓存,并通知所述组内路由模块;
所述组内路由模块,还用于在接收到所述加速处理模块发送的通知后,根据所述加速次序标识将所述内部转发消息发送至下一目的加速处理模块,以使所述下一目的加速处理模块对所述目的加速处理模块缓存的数据进行加速处理,直至所述加速次序标识指示的加速顺序结束。
结合上述第二方面,和/或第一种可能的实现方式,和/或第二种可能的实现方式,和/或第三种可能的实现方式,和/或第四种可能的实现方式,所述加速处理模块,还用于将处理后的业务数据进行缓存;
所述组内路由模块,还用于当所述业务数据全部加速处理完毕时,读取所述加速处理模块缓存的所述处理后的业务数据;根据所述处理后的业务数据生成所述请求消息对应的反馈消息;将所述反馈消息发送至所述组间路由模块,以使所述组间路由模块将所述反馈消息发送至所述主机。
结合上述第二方面,和/或第一种可能的实现方式,和/或第二种可能的实现方式,和/或第三种可能的实现方式,和/或第四种可能的实现方式,和/或第五种可能的实现方式,在第六种可能的实现方式中,所述反馈消息与所述请求消息具有相同的消息结构,其中,所述消息结构中包括用于区分所述反馈消息与所述请求消息的消息类型字段。
结合上述第二方面,和/或第一种可能的实现方式,和/或第二种可能的实现方式,和/或第三种可能的实现方式,和/或第四种可能的实现方式,和/或第五种可能的实现方式,和/或第六种可能的实现方式,在第七种可能的实现方式中,所述请求消息中设置有字段域和数据域,所述字段域中包含业务头的字段和控制头的字段,所述业务头的字段中包含所述加速类型标识,所述数据域用于携带所述业务数据。
结合上述第二方面,和/或第一种可能的实现方式,和/或第二种可能的实现方式,和/或第三种可能的实现方式,和/或第四种可能的实现方式,和/或第五种可能的实现方式,和/或第六种可能的实现方式,和/或第七种可能的实现方式,在第八种可能的实现方式中,所述组间路由表还配置有老化开关和老化时间;
所述组间路由模块,还被配置为当所述组间路由表的老化开关开启且到达所述老化时间时,上报所述主机,以请求所述主机配置新的组间路由表。
结合上述第二方面,和/或第一种可能的实现方式,和/或第二种可能的实现方式,和/或第三种可能的实现方式,和/或第四种可能的实现方式,和/或第五种可能的实现方式,和/或第六种可能的实现方式,和/或第七种可能的实现方式,和/或第八种可能的实现方式,在第九种可能的实现方式中,所述组内路由表还配置有老化开关和老化时间;
所述组内路由模块,还被配置为当所述组内路由表的老化开关开启且到达所述老化时间时,上报所述主机,以请求所述主机配置新的组内路由表。
与现有技术相比,本发明实施例包括以下优点:
本发明实施例通过在主机业务层与硬件处理单元之间约定消息结构,使得主机可以将消息透传过主机驱动层后直接向硬件处理单元发送,并由硬件处理单元根据消息中的相应标识进行加速处理。因此,该方法中主机的业务层与硬件处理单元之间的交互不需要专用的驱动配合,从而可以屏蔽业务层对具体底层驱动的依赖。本方法中硬件处理单元可以运行于不同的业务平台,逻辑的异构能力增强,从而可以提升业务处理过程中的动态性和灵活性。
附图说明
图1是本发明的一种数据处理方法实施例的步骤流程图;
图2是本发明实施例中一种消息的结构示意图;
图3是本发明实施例中一种对业务数据进行加速处理的方法步骤流程图;
图4是本发明实施例中一种组间路由模块的内部结构示意图;
图5是本发明实施例中一种目的加速处理组通知各个加速处理模块对业务数据进行加速处理的方法步骤流程图;
图6是本发明实施例中一种加速处理组的内部结构示意图;
图7是本发明实施例中一种组内路由模块发送反馈消息的方法步骤流程图;
图8是本发明实施例中一种数据处理系统的结构示意图;
图9是本发明实施例中另一种数据处理系统的结构示意图;
图10是本发明的一种数据处理装置实施例的结构框图;
图11是本发明实施例中一种处理模块的结构框图;
图12是本发明实施例中一种加速处理组的结构框图;
图13是本发明实施例中另一种数据处理系统的结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
实施例一
参照图1,为本发明实施例一种数据处理方法的流程图。
该方法应用于硬件处理单元对主机发送的业务数据进行加速的场景,其中,主机以及硬件处理单元的概念与现有技术相同,即主机一般是指主要由一个或多个CPU构成的系统,用于通过CPU执行存储在存储器中的软件代码来实现业务层和驱动层的功能;而硬件处理单元是指由FPGA或ASIC等硬件器件实现的单元,用于对主机业务层发送的数据进行处理(主要是加速处理),主机与硬件处理单元通过互连接口相连。本发明实施例中的数据处理方法由硬件处理单元来完成,可以包括:
步骤101,接收来自所述主机业务层发送且透传过所述主机驱动层的请求消息,该请求消息包括至少一个加速类型标识及待加速处理的业务数据,其中,每个加速类型标识对应于一种加速处理。
其中,本步骤中的“透传”是指请求消息经过主机中的驱动层时,驱动层并不对请求消息的内容进行更改,而是仅仅对消息进行封装,然后传给驱动层。由于在这过程中,无论针对何种加速任务,驱动层作用都只是完成对请求消息的封装及传输,并不会涉及对内容的解析及更改,因此,本实施例中,即使硬件处理单元发生了改变,也不需要改变驱动层的功能,从而可以屏蔽业务层对具体底层驱动的依赖。
本实施例中的“请求消息”是指主机与硬件处理单元之间约定的、具有固定的消息结构的请求消息,主机业务层发送的请求消息无需驱动层对请求消息的具体内容进行感知和数据处理,可“透传”至硬件处理单元,硬件处理单元即可解析该请求消息并根据解析结果进行数据处理。
其中,本实施例中,该请求消息中至少包括加速类型标识和待加速处理的业务数据,其中,每个加速类型标识对应一种加速处理,硬件处理单元根据该加速类型标识可以获知要执行的加速业务。
步骤102,对业务数据进行与至少一个加速类型标识分别对应的至少一种加速处理。
硬件处理单元在解析获得请求消息中的加速类型标识及业务数据后,即可对对业务数据进行与加速类型标识对应的加速处理。
本发明实施例通过在主机与硬件处理单元之间约定消息结构,使得主机可直接向硬件处理单元发送请求消息,由硬件处理单元进行请求消息解析和数据处理。该方法中主机的业务层与硬件处理单元之间的交互不需要专用的驱动配合,从而可以屏蔽业务层对具体底层驱动的依赖。本方法中硬件处理单元可以运行于不同的业务平台,逻辑的异构能力增强,从而可以提升业务处理过程中的动态性和灵活性。
实施例二
基于以上实施例,在本实施例中,若主机发送至硬件处理单元的请求消息中包括多个加速类型标识,需要硬件处理单元进行多种加速处理,则该请求消息中还可以包括与每个加速类型标识一一对应的加速次序标识,该加速次序标识用于指示加速处理的顺序。
硬件处理单元在解析获得业务数据、加速类型标识以及该加速次序标识后,即可按多个加速次序标识指示的顺序对业务数据进行与多个加速类型标识分别对应的加速处理。
本实施例通过在请求消息中增加加速次序标识,使得硬件处理单元可以按多个加速次序标识指示的顺序对业务数据进行与多个加速类型标识分别对应的加速处理,从而实现了对业务数据的流水处理,提高了处理效率。
实施例三
基于以上所有实施例,在本实施例中,主机与硬件处理单元之间传输的消息中可以设置有字段域和数据域,其中,字段域中包含业务头和控制头的字段,数据域用于携带业务数据及处理后的业务数据。
在一具体实施方式中,如图2所示,该消息的消息结构可以包括业务头、控制头和业务数据。当然,在其它实施例中,该消息中还可以包括其它信息。
其中,业务头(Ser_header)中包含了Ser_type字段,Ser_cntn字段,ACC_seqn字段,Type_accn字段,slice_numn字段,port_numn字段。其中,Ser_type字段表明了消息的指向,例如是由主机下发给硬件处理单元的,还是由硬件处理单元反馈至主机的,通过该字段的字段值的不同可以区分主机下发的请求消息及硬件处理单元发送的反馈消息。ACC_seqn字段表示具体的加速次序。Type_accn字段表示具体的加速类型,Ser_cntn表示slice_numn与port_numn的对数。slice_numn字段表示加速处理组的标识,port_numn字段表示加速处理模块的标识。
控制头(Reg_cmd),用于构造虚拟的寄存器读写通道。控制头中包含了Reg_act字段,Reg_cntn字段,Re_err字段,Addrn字段和valuen字段。其中,Reg_act字段表示控制消息的类型,是配置信息还是其他读写信息;Re_err字段表示控制状态正确或错误的标记信息;Reg_cntn字段表示Addrn字段和valuen字段的对数;Addrn字段表示加速逻辑可以操作的地址信息,valuen字段表示对应的Addrn字段的值。
加速数据(Acc_data),是用来承载需要处理的业务数据或者处理完成数据的上报结果。其中,Len表示数据长度,Checksum表示校验。
主机可以将该请求消息通过互连接口发送至硬件处理单元。
实施例四
基于以上所有实施例,在本实施例中,硬件处理单元具体可以包括接收模块,组间路由模块,和至少一个加速处理组。
具体的,组间路由模块可以有一个或多个,每个组间路由模块可以由一个FPGA芯片编程完成,用于选择不同的组内路由模块;组内路由模块也可以是由一个FPGA资源编程完成,每个加速处理组中的组内路由模块连接多个加速处理模块,不同加速处理模块可以实现不同的加速处理,各加速处理模块可以是完全相同或部分相同。
组间路由模块包括组间路由表,该组间路由表包括加速类型标识与加速处理组之间的对应关系。
本实施例中,硬件处理单元在接收主机发送的消息时,具体可以是由硬件处理单元的接收模块接收主机发送的消息。
硬件处理单元对业务数据进行与至少一个加速类型标识分别对应的至少一种加速处理的过程,如图3所示,可以包括:
步骤301,组间路由模块接收来自接收模块发送的请求消息。
本实施例中,组间路由模块可以由一个FPGA芯片编程完成,其结构可以如图4所示,主要由四部分组成:
适配模块(Adaption),主要完成协议栈接口适配工作,用户组间路由适应传输接口协议。
业务头解析引擎,对主机的业务层构造的消息结构进行解析,通过业务头中不同的加速类型标识,业务头解析引擎执行不同的流程操作。
Slice转发表(Slice Table),也即组间路由配置信息,Slice转发表标记的是加速业务在消息结构中的Type_acc与组内路由(Slice_num)之间的转发关系。该转发表可以是由业务层预先通过配置消息发送至该组间路由,并由业务解析引擎从配置消息中获得。
调度模块包括:
业务层下发数据方向(Switch_out):通过转发表的Slice信息将消息转发到对应的业务聚合资源池中的组内路由模块。
加速数据返回方向(Switch_in):从组内路由模块获取上报的加速数据结果,并将结果传递给内部的适配模块。
组间路由模块接收到消息后,执行步骤302。
步骤302,组间路由模块解析出请求消息中的加速类型标识。
组间路由模块通过业务头解析引擎对请求消息进行解析,获得加速类型标识。
步骤303,组间路由模块根据解析出的加速类型标识以及组间路由表将请求消息转发至目的加速处理组。
组间路由模块通过组间路由表即Slice转发表,查找到与加速类型标识对应组内路由模块即目的组内路由模块,具体可以获得该组内路由模块的标识号Slice_num。组间路由模块通过Switch_out将该消息发送至该目的组内路由模块所属的目的加速处理组。当组间路由模块解析出的加速类型标识有多个时,可以按照加速次序标识依次进行处理。
步骤304,目的加速处理组对业务数据进行加速处理。
实施例五
基于以上所有实施例,在本实施例中,加速处理组包括解析模块,组内路由模块,至少一个加速处理模块,其中,各个加速处理模块用于对同一业务进行不同类型的加速处理。组内路由模块包括组内路由表,组内路由表包括加速类型标识与加速处理模块之间的对应关系。
目的加速处理组对业务数据进行加速处理的过程,如图5所示,可以包括:
步骤501,目的加速处理组的解析模块对请求消息进行解析,将业务数据进行缓存,并根据解析结果生成内部转发消息,该内部转发消息中包括加速类型标识及业务数据的缓存地址。
如图6所示,该加速处理组主要由三部分组成:
解析模块,用于完成对请求消息的解析,业务头、控制头、业务数据三部分的分离;加速处理组中设置有统一的缓存空间,解析模块申请缓存空间的缓存地址后,将解析的业务数据按照缓存地址缓存如对应的缓存空间;将申请的缓存地址与业务头、控制头中的业务信息,控制信息生成内部转发消息转发到组内路由模块。其中,该加速处理组中具有统一的缓存空间。
组内路由模块,用于存储组内各个Type_acc与加速处理模块(Port)的对应关系,也即组内路由表(Acc Table),该信息可以是由业务层预先通过配置消息发送至该组内路由模块的。
加速处理模块(FPGAn),也即加速逻辑,是实现具体业务功能或业务逻辑的单元,其入口由数据通道和虚拟的寄存器通道构成,寄存器通道用于内部的寄存器配置与读取,数据通道用于加速数据传入加速逻辑内部做加速处理。
目的加速处理组接收到组间路由模块发送的消息后,数据解析引擎将解析的业务数据申请地址进行缓存;并会将申请的地址信息与业务头、控制头中的业务信息,控制信息生成内部转发消息。
步骤502,解析模块将内部转发消息发送至目的加速处理组的组内路由模块。
步骤503,目的组内路由模块根据加速类型标识及组内路由表将内部转发消息发送至目的加速处理模块。
目的组内路由模块解析接收到的内部转发消息,获知其中的加速类型标识,然后根据组内路由表查找与该加速类型标识对应的加速处理模块(Port),即为目的加速处理模块,然后将内部转发消息发送至该目的加速处理模块。
步骤504,目的加速处理模块根据内部转发消息中包含的缓存地址获取业务数据并对业务数据进行加速处理。
该目的加速处理模块根据内部转发消息中包含的缓存地址从缓存空间中读取业务数据并对该业务数据进行处理,然后将处理后的数据按照该缓存地址缓存至缓存空间中。缓存空间还可以对该目的加速处理模块发送来的处理后的数据进行标识,以表明该缓存地址存储的数据是处理后的数据。
在另一实施例中,当内部转发消息中包含加速次序标识时,目的加速处理模块可以将加速处理后的业务数据进行缓存,并通知组内路由模块,组内路由模块根据加速次序标识将内部转发消息发送至下一目的加速处理模块,下一目的加速处理模块对上一目的加速处理模块缓存的数据进行加速处理,并重复上一目的加速处理模块的动作,直至所述加速次序标识指示的加速顺序结束。
组内路由模块也还可以将该内部转发消息同时或按照业务控制信息中包含的加速次序标识将内部转发消息发送至与该组业务的加速类型标识对应的目的加速处理模块。这些目的加速处理模块依次依据内部转发消息中的缓存地址获取该缓存地址对应的缓存空间中的业务数据进行数据处理,并把处理后的数据再存储至该缓存地址对应的缓存空间,其中,目的加速处理模块可以读取该缓存地址对应的缓存空间中数据的标识信息,以确定加速次序标识中上一目的加速处理模块是否已经对数据处理完毕,在处理完毕后再读取该缓存地址对应的缓存空间的数据进行处理,直至加速次序标识中的所有目的加速处理模块数据处理完毕。
实施例六
基于以上所有实施例,本实施例中,在目的加速处理模块对业务数据处理完毕后,如图7所示,还可以进一步包括以下步骤:
步骤701,目的加速处理模块将处理后的业务数据进行缓存。
步骤702,当业务数据全部加速处理完毕时,目的组内路由模块读取缓存的处理后的业务数据。
当目的组内路由模块根据缓存空间中数据的标识信息获知业务数据已经全部处理完毕时,读取该缓存空间中的处理后的数据。
步骤703,目的组内路由模块根据处理后的业务数据生成请求消息的反馈消息。
目的组内路由模块按照与请求消息相同的固定的消息结构,根据处理后的数据生成反馈消息。
步骤704,目的组内路由模块将反馈消息发送至组间路由模块,以使组间路由模块将反馈消息发送至主机。
目的组内路由模块将该反馈消息按照消息传输路径的逆路径返回至主机业务层。
实施例七
基于以上所有实施例,组间路由表和组内路由表可以通过以下方式获得:
主机业务层向组间路由模块和组内路由模块分别发送消息,该消息中携带有加速类型标识、组内路由模块和加速处理模块之间的对应关系,例如:业务号+Slice号+Port号。
组间路由模块以及组内路由模块在接收到该消息后,分别建立组间路由表及组内路由表。
另外,主机业务层还可以分别配置有组间路由表及组内路由表的老化开关和老化时间。其中,老化时间与老化开关是业务层通过寄存器通道进行配置,寄存器通道的信息是携带在消息的Reg_cmd中。
当组间路由表的老化开关开启且到达老化时间时,组间路由模块上报主机,以请求主机配置新的组间路由表。
同理,当组内路由表的老化开关开启且到达老化时间时,组内路由模块上报主机,以请求主机配置新的组内路由表。
组间路由模块和组内路由模块各自维护路由表的老化开关和老化时间,在某些场景下,若组间路由表或组内路由表的表项被老化掉,而新的业务数据又下发,组间路由模块或组内路由模块会统计该异常场景,向业务层返回该种异常情况,请求业务层再次进行配置消息下发。
实施例八
基于以上所有实施例,在本实施例中,主机与硬件处理单元之间的互连方式可以是PCIe接口,也可以是其他接口协议,组间路由模块的FPGA通过互连接口(可以是PCIE,也可以是其他的互连接口)与加速处理组进行互连,组内路由模块与加速处理模块之间可以采用公共的接口资源进行互连。其具体结构例如图8、图9所示。
如图8所示的应用场景中,一个服务器机框里面有一块底板,底板上安装有多组CPU资源、内存、南桥等芯片,主机与一个作为组间路由模块的FPGA资源进行互连(互连方式可以是PCIe接口,也可以是其他接口协议),组间路由模块的FPGA通过互连接口(可以是PCIe接口,也可以是其他的互连接口)与各组内路由模块的FPGA进行互连,组内路由模块与多个FPGA加速资源也即多个加速处理模块之间采用公共的接口资源进行互连。每个组内路由模块及其加速处理模块可以构成一个加速处理组。
由此可见,上述结构为通过组间路由模块级联组内路由模块的结构,每一个组内路由模块下可以扩展集成新的加速处理模块,每一个组间路由模块下也可以扩展集成新的由组内路由模块和加速处理模块构成的新的加速处理组,整个系统的可持续集成与扩展性增强。
如图9所示的结构中,该结构与如图8所示的结构的区别仅在于:本例中的主机是通过网络或者虚拟云等网元或者是中间设备与组间路由模块互连,从实施的方案中可以看到,与图8所示本地的加速方案不同的是,本例在组间路由模块前端有一个与主机的发送端对等的设备,该设备可以是对等的协议栈,也可以是自定义的其他交互协议,通过该对等设备将接收到的消息通过内部的总线结构与组间路由模块进行互连。消息发送到组间路由模块之后,后续的处理过程完全相同。本实施例中,主机与组间路由模块及加速处理组的整个结构完全分离,因此,网络中可能有多个服务器组会共享加速处理组,因此组间路由模块的层次也可以进行扩展,扩展的类型可以在消息的业务头中定义。
上述实施例中不仅可以屏蔽主机业务层对具体底层驱动的依赖,提升了业务处理过程中的动态性和灵活性。
而且,通过组间路由模块级联组内路由模块的结构,不仅可以对组内路由模块下的加速处理模块进行扩展,也可以在组间路由模块下扩展新的加速处理组,整个系统的可持续集成与扩展性增强。
再者,针对资源有限的业务,主机业务层可以根据业务的需求与加速的紧急程度组织加速处理组,形成不同功能的加速处理组;根据不同的业务,调配不同的资源,可以实现业务精细化的加速能力。
实施例九
基于以上各实施例,本发明实施例公开了一种数据处理装置,参照图10,为本实施例中的数据处理装置的结构框图,本实施例中的数据处理装置应用于对主机发送的业务数据进行加速的场景,该装置包括:
接收模块1001,用于接收来自所述主机业务层发送且透传过所述主机驱动层的请求消息,所述请求消息包括至少一个加速类型标识及待加速处理的业务数据,其中,每个加速类型标识对应于一种加速处理;
处理模块1002,用于对所述接收模块1101接收到的所述业务数据进行与所述至少一个加速类型标识一一对应的至少一种加速处理。
本发明实施例通过在主机与该数据处理装置之间约定消息结构,使得主机可直接向该数据处理装置发送消息,由数据处理装置根据上述单元进行消息解析和数据处理。该数据处理装置与主机之间的交互不需要专用的驱动配合,从而可以屏蔽主机业务层对具体底层驱动的依赖。本数据处理装置可以运行于不同的业务平台,逻辑的异构能力增强,从而可以提升业务处理过程中的动态性和灵活性。
在另一实施例中,该消息可以包括多个加速类型标识,所述消息还包括:与每个加速类型标识一一对应的加速次序标识,所述加速次序标识用于指示加速处理的顺序;
处理模块1002,还用于按所述多个加速次序标识指示的顺序对所述业务数据进行与所述多个加速类型标识标分别对应的加速处理。
在另一实施例中,如图11所示,处理模块1002可以包括:
组间路由模块1101,至少一个加速处理组1102。
组间路由模块1101包括组间路由表,所述组间路由表包括加速类型标识与加速处理组1102之间的对应关系;所述组间路由模块1101,用于接收来自所述接收模块1001发送的所述请求消息;解析出所述请求消息中的加速类型标识;根据解析出的加速类型标识以及所述组间路由表将所述请求消息转发至目的加速处理组1102;
所述加速处理组1102,用于对业务数据进行加速处理。
在另一实施例中,如图12所示,每个加速处理组1102包括解析模块1120,组内路由模块1121,至少一个加速处理模块1122,其中,各个加速处理模块1122用于对同一业务进行不同类型的加速处理;
解析模块1120,用于对所述组间路由模块1101发送的所述请求消息进行解析,将业务数据进行缓存,并根据解析结果生成内部转发消息,所述内部转发消息中包括所述加速类型标识及所述业务数据的缓存地址;将所述内部转发消息发送至所述组内路由模块1121;
所述组内路由模块1121包括组内路由表,所述组内路由表包括加速类型标识与加速处理模块之间的对应关系;所述组内路由模块1121,用于根据所述加速类型标识及所述组内路由表将从所述解析模块接收到的所述内部转发消息发送至目的加速处理模块1122;
所述加速处理模块1122,用于根据从所述组内路由模块1121接收到的所述内部转发消息中包含的所述缓存地址获取所述业务数据并对所述业务数据进行加速处理。
在另一实施例中,加速处理模块1122,还用于当所述内部转发消息中包含加速次序标识时,将加速处理后的业务数据进行缓存,并通知所述组内路由模块1121;
所述组内路由模块1121,还用于在接收到所述加速处理模块发送的通知后,根据所述加速次序标识将所述内部转发消息发送至下一目的加速处理模块,以使所述下一目的加速处理模块对所述目的加速处理模块缓存的数据进行加速处理,直至所述加速次序标识指示的加速顺序结束。
在另一实施例中,加速处理模块1122,还用于将处理后的业务数据进行缓存;
组内路由模块1121,还用于当所述业务数据全部加速处理完毕时,读取所述加速处理模块1122缓存的所述处理后的业务数据;根据所述处理后的业务数据生成所述请求消息对应的反馈消息;将所述反馈消息发送至所述组间路由模块1101,以使所述组间路由模块1101将所述反馈消息发送至所述主机。
在另一实施例中,组间路由表还配置有老化开关和老化时间;
组间路由模块1101,还被配置为当所述组间路由表的老化开关开启且到达所述老化时间时,上报所述主机,以请求所述主机配置新的组间路由表。
所述组内路由表还配置有老化开关和老化时间;
组内路由模块1121,还被配置为当所述组内路由表的老化开关开启且到达所述老化时间时,上报所述主机,以请求所述主机配置新的组内路由表。
在另一实施例中,接收模块1001,具体可以被配置为通过PCIe接口接收所述主机发送的消息;或者,通过网络或虚拟云或中间设备接收所述主机发送的消息。
在另一实施例中,反馈消息与请求消息具有相同的消息结构,其中,消息结构中包括用于区分所述反馈消息与所述请求消息的消息类型字段。
在另一实施例中,请求消息中设置有字段域和数据域,所述字段域中包含业务头的字段和控制头的字段,所述业务头的字段中包含所述加速类型标识,所述数据域用于携带所述业务数据。
实施例十
基于以上各实施例,本发明实施例公开了一种数据处理装置,如图13所示,该装置包括CPU 131、存储器132和硬件处理单元133,CPU分别与存储器、硬件处理单元相连;该硬件处理单元可以是FPGA、ASIC等;
其中,CPU和存储器可认为构成一个主机,CPU读取存储器中的代码来执行程序,执行的程序在软件层面包括主机驱动层以及主机业务层,这些软硬件架构为本领域技术人员所知的技术,这里不再赘述。
硬件处理单元用于接收来自所述主机业务层发送且透传过所述主机驱动层的请求消息,所述请求消息包括至少一个加速类型标识及待加速处理的业务数据,其中,每个加速类型标识对应于一种加速处理;
硬件处理单元还用于对所述业务数据进行与所述至少一个加速类型标识一一对应的至少一种加速处理。
该装置通过在CPU与硬件处理单元之间约定消息结构,使得CPU可直接向硬件处理单元发送请求消息,由硬件处理单元进行请求消息解析和数据处理。该装置中CPU与硬件处理单元之间的交互不需要专用的驱动配合,从而可以屏蔽CPU对具体底层驱动的依赖。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种数据处理方法和一种数据处理装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (20)
1.一种数据处理方法,应用于硬件处理单元对主机发送的业务数据进行加速的场景,其特征在于,所述方法由所述硬件处理单元执行,包括:
接收来自主机业务层发送且透传过主机驱动层的请求消息,所述请求消息包括至少一个加速类型标识及待加速处理的业务数据,其中,每个加速类型标识对应于一种加速处理;
对所述业务数据进行与所述至少一个加速类型标识一一对应的至少一种加速处理。
2.根据权利要求1所述的方法,其特征在于,所述请求消息包括多个加速类型标识,所述请求消息还包括:与每个加速类型标识一一对应的加速次序标识,所述加速次序标识用于指示加速处理的顺序;
所述对所述业务数据进行与所述至少一个加速类型标识分别对应的至少一种加速处理包括:
按所述多个加速次序标识指示的顺序对所述业务数据进行与所述多个加速类型标识一一对应的多个加速处理。
3.根据权利要求1或2所述的方法,其特征在于:所述硬件处理单元包括接收模块,组间路由模块,至少一个加速处理组;
所述组间路由模块包括组间路由表,所述组间路由表包括所述加速类型标识与所述加速处理组之间的对应关系;
所述接收来自所述主机业务层发送且透传过所述主机驱动层的请求消息包括:所述接收模块接收来自所述主机业务层发送且透传过所述主机驱动层的请求消息;
所述对所述业务数据进行与所述至少一个加速类型标识一一对应的至少一种加速处理包括:
所述组间路由模块接收来自所述接收模块发送的所述请求消息;
所述组间路由模块解析出所述请求消息中的加速类型标识;
所述组间路由模块根据解析出的加速类型标识以及所述组间路由表将所述请求消息转发至所述加速处理组;
所述加速处理组对所述业务数据进行加速处理。
4.根据权利要求3所述的方法,其特征在于,所述加速处理组包括解析模块,组内路由模块,至少一个加速处理模块,其中,各个加速处理模块用于对同一业务进行不同类型的加速处理;
所述组内路由模块包括组内路由表,所述组内路由表包括所述加速类型标识与所述加速处理模块之间的对应关系;
所述加速处理组对所述业务数据进行加速处理,包括:
所述解析模块对所述请求消息进行解析,将所述业务数据进行缓存,并根据解析结果生成内部转发消息,所述内部转发消息中包括所述加速类型标识及所述业务数据的缓存地址;
所述解析模块将所述内部转发消息发送至所述组内路由模块;
所述组内路由模块根据所述加速类型标识及所述组内路由表将所述内部转发消息发送至所述加速处理模块;
所述加速处理模块根据所述内部转发消息中包含的所述缓存地址获取所述业务数据并对所述业务数据进行加速处理。
5.根据权利要求4所述的方法,其特征在于,当所述内部转发消息中包含加速次序标识时,所述加速处理组对所述业务数据进行加速处理,还包括:
所述加速处理模块将加速处理后的业务数据进行缓存,并通知所述组内路由模块;
所述组内路由模块根据所述加速次序标识将所述内部转发消息发送至下一加速处理模块,以使所述下一加速处理模块对所述加速处理模块缓存的数据进行加速处理,直至所述加速次序标识指示的加速顺序结束。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
所述加速处理模块将处理后的业务数据进行缓存;
当所述业务数据全部加速处理完毕时,所述组内路由模块读取缓存的所述处理后的业务数据;
所述组内路由模块根据所述处理后的业务数据生成所述请求消息对应的反馈消息;
所述组内路由模块将所述反馈消息发送至所述组间路由模块,以使所述组间路由模块将所述反馈消息发送至所述主机。
7.根据权利要求6所述的方法,其特征在于,所述反馈消息与所述请求消息具有相同的消息结构,其中,所述消息结构中包括用于区分所述反馈消息与所述请求消息的消息类型字段。
8.根据权利要求1或2所述的方法,其特征在于,所述请求消息中设置有字段域和数据域,所述字段域中包含业务头的字段和控制头的字段,所述业务头的字段中包含所述加速类型标识,所述数据域用于携带所述业务数据。
9.根据权利要求3所述的方法,其特征在于,所述组间路由表还配置有老化开关和老化时间;所述方法还包括:
当所述组间路由表的老化开关开启且到达所述老化时间时,所述组间路由模块上报所述主机,以请求所述主机配置新的组间路由表。
10.根据权利要求4所述的方法,其特征在于,所述组内路由表还配置有老化开关和老化时间;所述方法还包括:
当所述组内路由表的老化开关开启且到达所述老化时间时,所述组内路由模块上报所述主机,以请求所述主机配置新的组内路由表。
11.一种数据处理装置,应用于对主机发送的业务数据进行加速的场景,其特征在于,所述装置包括:
接收模块,用于接收来自主机业务层发送且透传过主机驱动层的请求消息,所述请求消息包括至少一个加速类型标识及待加速处理的业务数据,其中,每个加速类型标识对应于一种加速处理;
处理模块,用于对所述接收模块接收到的所述业务数据进行与所述至少一个加速类型标识一一对应的至少一种加速处理。
12.根据权利要求11所述的装置,其特征在于,所述请求消息包括多个加速类型标识,所述请求消息还包括:与每个加速类型标识一一对应的加速次序标识,所述加速次序标识用于指示加速处理的顺序;
所述处理模块,还用于按所述多个加速次序标识指示的顺序对所述业务数据进行与所述多个加速类型标识标分别对应的加速处理。
13.根据权利要求11或12所述的装置,其特征在于:所述处理模块包括组间路由模块,至少一个加速处理组;
所述组间路由模块包括组间路由表,所述组间路由表包括所述加速类型标识与所述加速处理组之间的对应关系;所述组间路由模块,用于接收来自所述接收模块发送的所述请求消息;解析出所述请求消息中的加速类型标识;根据解析出的加速类型标识以及所述组间路由表将所述请求消息转发至所述加速处理组;
所述加速处理组,用于对业务数据进行加速处理。
14.根据权利要求13所述的装置,其特征在于,所述加速处理组包括解析模块,组内路由模块,至少一个加速处理模块,其中,各个加速处理模块用于对同一业务进行不同类型的加速处理;
所述解析模块,用于对所述组间路由模块发送的所述请求消息进行解析,将所述业务数据进行缓存,并根据解析结果生成内部转发消息,所述内部转发消息中包括所述加速类型标识及所述业务数据的缓存地址;将所述内部转发消息发送至所述组内路由模块;
所述组内路由模块包括组内路由表,所述组内路由表包括所述加速类型标识与所述加速处理模块之间的对应关系;所述组内路由模块,用于根据所述加速类型标识及所述组内路由表将从所述解析模块接收到的所述内部转发消息发送至所述加速处理模块;
所述加速处理模块,用于根据从所述组内路由模块接收到的所述内部转发消息中包含的所述缓存地址获取所述业务数据并对所述业务数据进行加速处理。
15.根据权利要求14所述的装置,其特征在于,
所述加速处理模块,还用于当所述内部转发消息中包含加速次序标识时,将加速处理后的业务数据进行缓存,并通知所述组内路由模块;
所述组内路由模块,还用于在接收到所述加速处理模块发送的通知后,根据所述加速次序标识将所述内部转发消息发送至下一加速处理模块,以使所述下一加速处理模块对所述加速处理模块缓存的数据进行加速处理,直至所述加速次序标识指示的加速顺序结束。
16.根据权利要求14所述的装置,其特征在于,
所述加速处理模块,还用于将处理后的业务数据进行缓存;
所述组内路由模块,还用于当所述业务数据全部加速处理完毕时,读取所述加速处理模块缓存的所述处理后的业务数据;根据所述处理后的业务数据生成所述请求消息对应的反馈消息;将所述反馈消息发送至所述组间路由模块,以使所述组间路由模块将所述反馈消息发送至所述主机。
17.根据权利要求16所述的装置,其特征在于,所述反馈消息与所述请求消息具有相同的消息结构,其中,所述消息结构中包括用于区分所述反馈消息与所述请求消息的消息类型字段。
18.根据权利要求11或12所述的装置,其特征在于,所述请求消息中设置有字段域和数据域,所述字段域中包含业务头的字段和控制头的字段,所述业务头的字段中包含所述加速类型标识,所述数据域用于携带所述业务数据。
19.根据权利要求13所述的装置,其特征在于,所述组间路由表还配置有老化开关和老化时间;
所述组间路由模块,还被配置为当所述组间路由表的老化开关开启且到达所述老化时间时,上报所述主机,以请求所述主机配置新的组间路由表。
20.根据权利要求14所述的装置,其特征在于,所述组内路由表还配置有老化开关和老化时间;
所述组内路由模块,还被配置为当所述组内路由表的老化开关开启且到达所述老化时间时,上报所述主机,以请求所述主机配置新的组内路由表。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510288092.2A CN104899085B (zh) | 2015-05-29 | 2015-05-29 | 一种数据处理方法和装置 |
EP16802496.6A EP3291089B1 (en) | 2015-05-29 | 2016-05-26 | Data processing method and apparatus |
PCT/CN2016/083471 WO2016192573A1 (zh) | 2015-05-29 | 2016-05-26 | 一种数据处理方法和装置 |
US15/824,032 US10432506B2 (en) | 2015-05-29 | 2017-11-28 | Data processing method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510288092.2A CN104899085B (zh) | 2015-05-29 | 2015-05-29 | 一种数据处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104899085A CN104899085A (zh) | 2015-09-09 |
CN104899085B true CN104899085B (zh) | 2018-06-26 |
Family
ID=54031763
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510288092.2A Active CN104899085B (zh) | 2015-05-29 | 2015-05-29 | 一种数据处理方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10432506B2 (zh) |
EP (1) | EP3291089B1 (zh) |
CN (1) | CN104899085B (zh) |
WO (1) | WO2016192573A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104899085B (zh) * | 2015-05-29 | 2018-06-26 | 华为技术有限公司 | 一种数据处理方法和装置 |
CN105357258B (zh) | 2015-09-28 | 2020-06-26 | 华为技术有限公司 | 一种加速管理节点、加速节点、客户端及方法 |
CN105373498B (zh) * | 2015-10-09 | 2018-04-06 | 上海瀚之友信息技术服务有限公司 | 一种数据处理系统及方法 |
CN107835125B (zh) * | 2017-10-24 | 2020-12-01 | 郑州市公安局 | 一种用于住宅小区安全防范系统的网关 |
CN109005448B (zh) * | 2018-06-28 | 2021-06-15 | 武汉斗鱼网络科技有限公司 | 弹幕消息分发方法、装置、设备及存储介质 |
CN111404979B (zh) * | 2019-09-29 | 2023-04-07 | 杭州海康威视系统技术有限公司 | 业务请求处理的方法、装置及计算机可读存储介质 |
CN111160546B (zh) * | 2019-12-31 | 2023-06-13 | 深圳云天励飞技术有限公司 | 一种数据处理系统 |
CN111143078B (zh) * | 2019-12-31 | 2023-05-12 | 深圳云天励飞技术有限公司 | 一种数据处理方法、装置及计算机可读存储介质 |
WO2023215960A1 (en) * | 2022-05-09 | 2023-11-16 | Eidetic Communications Inc. | System and method for performing data processing |
US20240095104A1 (en) * | 2022-09-15 | 2024-03-21 | Red Hat, Inc. | Asynchronous communication in cluster infrastructures |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101262352A (zh) * | 2008-03-04 | 2008-09-10 | 浙江大学 | 一体化安全管理中数据统一加速处理方法 |
US7925863B2 (en) * | 2003-03-28 | 2011-04-12 | Lsi Corporation | Hardware device comprising multiple accelerators for performing multiple independent hardware acceleration operations |
CN102769574A (zh) * | 2012-08-06 | 2012-11-07 | 华为技术有限公司 | 一种能够进行业务硬件加速的装置及其方法 |
CN102932458A (zh) * | 2012-11-02 | 2013-02-13 | 上海电机学院 | 一种ppp协议的硬件加速系统及其实现方法 |
CN103399758A (zh) * | 2011-12-31 | 2013-11-20 | 华为数字技术(成都)有限公司 | 硬件加速方法、装置和系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8488446B1 (en) * | 2010-10-27 | 2013-07-16 | Amazon Technologies, Inc. | Managing failure behavior for computing nodes of provided computer networks |
US20130318268A1 (en) * | 2012-05-22 | 2013-11-28 | Xockets IP, LLC | Offloading of computation for rack level servers and corresponding methods and systems |
US10037222B2 (en) * | 2013-09-24 | 2018-07-31 | University Of Ottawa | Virtualization of hardware accelerator allowing simultaneous reading and writing |
US9712491B2 (en) * | 2014-03-03 | 2017-07-18 | Qualcomm Connected Experiences, Inc. | Access control lists for private networks of system agnostic connected devices |
CN104899085B (zh) * | 2015-05-29 | 2018-06-26 | 华为技术有限公司 | 一种数据处理方法和装置 |
-
2015
- 2015-05-29 CN CN201510288092.2A patent/CN104899085B/zh active Active
-
2016
- 2016-05-26 EP EP16802496.6A patent/EP3291089B1/en active Active
- 2016-05-26 WO PCT/CN2016/083471 patent/WO2016192573A1/zh active Application Filing
-
2017
- 2017-11-28 US US15/824,032 patent/US10432506B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7925863B2 (en) * | 2003-03-28 | 2011-04-12 | Lsi Corporation | Hardware device comprising multiple accelerators for performing multiple independent hardware acceleration operations |
CN101262352A (zh) * | 2008-03-04 | 2008-09-10 | 浙江大学 | 一体化安全管理中数据统一加速处理方法 |
CN103399758A (zh) * | 2011-12-31 | 2013-11-20 | 华为数字技术(成都)有限公司 | 硬件加速方法、装置和系统 |
CN102769574A (zh) * | 2012-08-06 | 2012-11-07 | 华为技术有限公司 | 一种能够进行业务硬件加速的装置及其方法 |
CN102932458A (zh) * | 2012-11-02 | 2013-02-13 | 上海电机学院 | 一种ppp协议的硬件加速系统及其实现方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3291089A4 (en) | 2018-04-04 |
US10432506B2 (en) | 2019-10-01 |
WO2016192573A1 (zh) | 2016-12-08 |
US20180083864A1 (en) | 2018-03-22 |
EP3291089B1 (en) | 2021-03-17 |
EP3291089A1 (en) | 2018-03-07 |
CN104899085A (zh) | 2015-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104899085B (zh) | 一种数据处理方法和装置 | |
US8441931B2 (en) | Method and device for managing priority during the transmission of a message | |
CN102334112B (zh) | 用于虚拟机网络的方法和系统 | |
US8566509B2 (en) | Efficiently implementing a plurality of finite state machines | |
CN107766148A (zh) | 一种异构集群及任务处理方法和装置 | |
CN105511954A (zh) | 一种报文处理方法及装置 | |
EP3863240A1 (en) | Method for forwarding packet in hybrid network, device, and system | |
US10621124B2 (en) | Method, device and computer program product for enabling SR-IOV functions in endpoint device | |
CN103238301A (zh) | 用于在路由器处管理话务的技术 | |
CN109992407A (zh) | 一种yarn集群gpu资源调度方法、装置和介质 | |
CN111163052B (zh) | 连接物联网平台方法、装置、介质及电子设备 | |
CN105049464A (zh) | 用于加速网络虚拟化的技术 | |
CN110381051A (zh) | 一种报文解析的方法、系统、设备及计算机可读存储介质 | |
CN106559339B (zh) | 一种报文处理方法及装置 | |
CN116320469A (zh) | 一种虚拟化视频编解码系统及方法、电子设备和存储介质 | |
CN117215989B (zh) | 一种异构加速设备、系统、方法、装置及存储介质 | |
US20230325149A1 (en) | Data processing method and apparatus, computer device, and computer-readable storage medium | |
Arestova et al. | ITANS: Incremental task and network scheduling for time-sensitive networks | |
EP3128437A1 (en) | Data processing method, processor, and data processing device | |
US10216672B2 (en) | System and method for preventing time out in input/output systems | |
CN115567501A (zh) | 基于PoS共识的web3 Dapp跨链系统及方法 | |
CN106161439B (zh) | 一种信息处理方法及电子设备 | |
CN115904488A (zh) | 数据传输方法、系统、装置及设备 | |
CN114979128A (zh) | 跨区域通信方法、装置及电子设备 | |
CN112925739A (zh) | 应用于众核芯片的通信方法、众核芯片及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |