CN102902654A - 异构平台间数据联动方法及装置 - Google Patents
异构平台间数据联动方法及装置 Download PDFInfo
- Publication number
- CN102902654A CN102902654A CN2012103224325A CN201210322432A CN102902654A CN 102902654 A CN102902654 A CN 102902654A CN 2012103224325 A CN2012103224325 A CN 2012103224325A CN 201210322432 A CN201210322432 A CN 201210322432A CN 102902654 A CN102902654 A CN 102902654A
- Authority
- CN
- China
- Prior art keywords
- platform
- information
- shared
- copies
- event
- 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.)
- Granted
Links
Images
Classifications
-
- 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- 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/542—Event management; Broadcasting; Multicasting; Notifications
Abstract
本发明提供了一种基于事件驱动的数据联动方法,用于X86架构下的第一平台、FPGA架构下的第二平台的数据交互,所述第二平台存储共享信息,该方法包括:判断所接收的事件的来源是第一平台还是第二平台;在所接收的事件是来自第二平台时,将来自第二平台的数据包转发到第一平台进行逻辑运算处理;在所接收到的事件是来自第一平台的至少包括对第一平台的数据包进行逻辑运算处理后得到的共享信息操作指令的信息时,向所述第一平台返回共享信息操作指令完成消息,同时向所述第二平台转发该共享信息操作指令,以在所述第二平台完成该共享信息操作。利用该方法,可确保第一平台同步获取数据而无需等待第二平台的反馈,从而缩短第一平台的处理时间。
Description
技术领域
本发明涉及数据处理领域,更为具体地,涉及一种异构平台间基于事件驱动的数据联动方法和装置。
背景技术
FPGA(Field-programmable gate array),即现场可编程门阵列,作为专用集成电路(ASIC)领域中的一种半定制电路而出现,由于FPGA具备良好的性能指标以及一定的可编程能力并且功耗和成本也相对较低,被广泛应用在通信、数据处理、网络、仪器、工业控制、军事和航空等众多领域。但FPGA在控制成本的前提下,通常不能实现过于复杂的运算逻辑。
在进行数据处理时,X86架构平台的优势在于具备很强的可扩展性,也就是运行在X86架构平台上的软件能支持很复杂的运算逻辑,但X86架构平台的运算能力通常不会很高,从而限制其向高端市场发展。
鉴于上述两种异构平台的各自特点,现有技术中提出了一种两种异构平台结合的架构体系:FPGA+X86结合的架构体系。
图1示出了在现有的FPGA+X86结合的架构体系中,两种异构平台间数据交互的体系图。
如图1所示,在该体系中,X86平台的逻辑处理必须在获得共享信息的基础上,才能继续进行,由此两种异构平台间的数据交互需要同步。这部分共享信息在大多数转发下是FPGA使用,跨平台查询信息越少发生,对整体性能影响越小。为此,数据集通常存放在FPGA上。在这种情况下,X86系统何时需要该部分数据FPGA并不知晓,因此大部分数据的获取都是由X86系统发起的。
现有的X86系统和FPGA之间的同步数据交互过程如下:X86系统通过中断异常发起操作指令,FPGA对该操作指令进行响应,并且执行该操作指令,最终FPGA将操作的执行结果返回给X86系统。此后,X86系统才能继续进行后续复杂逻辑的处理。
然而,由于这个逻辑路径非常长,导致非常损耗整个系统的性能。因此,在FPGA+X86结合的架构体系中,如何高效处理两个异构平台间关联数据的同步,以保证两个体系中共享数据集的一致性,是FPGA+X86结合的架构体系的关键技术,也是当前困扰该架构体系的技术瓶颈。
发明内容
鉴于上述,本发明的目的在于提供一种异构平台间的基于事件驱动的数据联动方法及装置,该方法及装置能够确保X86架构下的第一平台(即,X86架构平台)同步获取数据而无需等待FPGA架构下的第二平台(即,FPGA架构平台)的反馈,从而缩短第一平台的处理时间。
根据本发明的一个方面,提供了一种基于事件驱动的数据联动方法,用于X86架构下的第一平台、FPGA架构下的第二平台的数据交互,所述第二平台存储共享信息,该方法由所述第一平台中的数据联动模块执行,该数据联动模块包括用于存储共享信息副本的对应缓存器,所述方法包括:判断所接收的事件的来源是第一平台还是第二平台;在所接收的事件是来自第二平台时,将来自第二平台的数据包转发到第一平台进行逻辑运算处理;在所接收到的事件是来自第一平台的至少包括对第一平台的数据包进行逻辑运算处理后得到的共享信息操作指令的信息时,向所述第一平台返回共享信息操作指令完成消息,同时向所述第二平台转发该共享信息操作指令,以在所述第二平台完成该共享信息操作。
在上述方面的一个或多个示例中,所述方法还可以包括:在第二平台完成该共享信息操作后,根据第二平台返回的共享信息操作结果,对第一平台的对应缓存器中的共享信息副本进行同步处理。
在上述方面的一个或多个示例中,在所接收的事件是来自第二平台时,将来自第二平台的数据包转发到第一平台进行逻辑运算处理可以包括:在所接收的事件是来自第二平台时,在所述共享信息副本的对应缓存器中查找是否存在针对来自第二平台的数据包的共享信息副本;在存在针对来自第二平台的数据包的共享信息副本时,更新该共享信息副本的老化超时时间,并将该数据包转发到第一平台进行逻辑运算处理,或者在不存在针对来自第二平台的数据包的共享信息副本时,将该数据包转发到第一平台进行逻辑运算处理。
在上述方面的一个或多个示例中,在不存在共享信息副本时,将来自第二平台的数据包转发到第一平台进行逻辑运算处理可以包括:在不存在共享信息副本时,查询从第二平台接收的事件中是否包含指示第二平台的共享信息全集中存在针对该数据包的共享信息的标记;以及在所接收的事件中存在指示所述第二平台的共享信息全集中存在针对该数据包括的共享信息的标记时,将该数据包转发到第一平台进行逻辑运算处理,同时从第二平台获取该共享信息并存储到所述共享信息副本的对应缓存器中,或者在所接收的事件中不存在指示所述第二平台的共享信息全集中存在针对该数据包括的共享信息的标记时,将该数据包转发到第一平台进行逻辑运算处理。
在上述方面的一个或多个示例中,所述共享信息操作指令包括共享信息创建、共享信息更新、共享信息删除和/或该事件关联的共享信息副本查找。
在上述方面的一个或多个示例中,所述方法还可以包括:遍历所述第一平台的对应缓存器中的共享信息副本,对共享信息副本进行老化超时处理,其中,在共享信息副本的老化超时时间已经期满时,从所述对应缓存器中删除该共享信息副本。
在上述方面的一个或多个示例中,所述共享信息是会话表、路由表,权限表或策略表。
根据本发明的另一方面,提供了一种基于事件驱动的数据联动装置,用于X86架构下的第一平台、FPGA架构下的第二平台的数据交互,所述第二平台存储共享信息,该数据联动装置包括:缓存器,用于存储共享信息副本;判断单元,用于判断所接收的事件的来源是第一平台还是第二平台;事件处理单元,用于在所述判断单元判断为所接收的事件是来自第二平台时,将来自第二平台的数据包转发到第一平台进行运算逻辑处理,或者在所接收到的信息是来自第一平台的至少包括对所述第一平台的数据包进行运算逻辑处理后得到的共享信息操作指令的信息时,向所述第一平台返回共享信息操作指令完成消息,同时向所述第二平台转发该共享信息操作指令,以在所述第二平台完成该共享信息操作。
在上述方面的一个或多个示例中,所述数据联动装置还可以包括:共享信息副本同步单元,用于在第二平台完成该共享信息操作后,根据第二平台返回的共享信息操作结果,对所述缓存器中的共享信息副本进行同步处理。
在上述方面的一个或多个示例中,所述事件处理单元可以包括:共享信息副本查找模块,用于在所接收的事件是来自所述第二平台时,在所述缓存器中查找是否存在针对来自第二平台的数据包的共享信息副本;以及更新模块,用于在存在针对来自第二平台的数据包的共享信息副本时,更新该共享信息副本的老化超时时间。
在上述方面的一个或多个示例中,所述事件处理单元可以包括:标记查询模块,用于在不存在针对来自第二平台的数据包的共享信息副本时,查询从第二平台接收的事件中是否包含指示第二平台的共享信息全集中存在针对该数据包的共享信息的标记;共享信息获取模块,用于在从第二平台接收的事件中存在指示第二平台的共享信息全集中存在针对该数据包的共享信息的标记时,从第二平台获取该共享信息;以及共享信息存储模块,用于将所获取的共享信息存储到所述缓存器中。在这种情况下,所述事件处理单元还被配置为无论标记查询模块是否查询到所述标记,都将来自第二平台的数据包转发到第一平台进行运算逻辑处理。
在上述方面的一个或多个示例中,所述数据联动装置还可以包括:老化超时处理单元,用于遍历所述缓存器中的共享信息副本,对共享信息副本进行老化超时处理,其中,在共享信息副本的老化超时时间已经期满时,从所述缓存器中删除该共享信息副本。
利用上述基于事件驱动的数据联动方法及装置,可以通过在X86架构下的第一平台中设置数据联动模块,使得在从第一平台中接收到包括对数据包进行运算逻辑处理后得到的共享信息操作指令(例如,会话表操作指令)时,数据联动模块向第一平台返回共享信息操作指令完成消息,并且同时向FPGA架构下的第二平台转发该共享信息操作指令来在第二平台中完成对应的共享信息操作,由此确保第一平台同步获取数据而无需等待第二平台的反馈,从而缩短第一平台的处理时间。
为了实现上述以及相关目的,本发明的一个或多个方面包括后面将详细说明并在权利要求中特别指出的特征。下面的说明以及附图详细说明了本发明的某些示例性方面。然而,这些方面指示的仅仅是可使用本发明的原理的各种方式中的一些方式。此外,本发明旨在包括所有这些方面以及它们的等同物。
附图说明
根据下述参照附图进行的详细描述,本发明的上述和其他目的、特征和优点将变得更加显而易见。在附图中:
图1示出了在X86/FPGA架构平台结合的架构体系中的数据交互的体系图;
图2示出了根据本发明的X86/FPGA架构平台结合的架构体系中的数据交互的体系图;
图3示出了根据本发明的数据联动模块执行的方法的一个示例的流程图;
图4示出了根据本发明的数据联动模块执行的方法的另一示例的流程图,在该示例中,采用会话表作为共享信息;
图5示出了根据本发明的老化超时处理的流程图;
图6示出了根据本发明的数据联动装置的配置的方框图;
图7示出了图6中的事件处理单元的一个示例的结构的方框图;和
图8示出了根据本发明的异构平台数据联动系统的方框图。
在所有附图中相同的标号指示相似或相应的特征或功能。
具体实施方式
下面描述本公开的各个方面。应该明白的是,本文的教导可以以多种多样形式具体体现,并且在本文中公开的任何具体结构、功能或两者仅仅是代表性的。基于本文的教导,本领域技术人员应该明白的是,本文所公开的一个方面可以独立于任何其它方面实现,并且这些方面中的两个或多个方面可以按照各种方式组合。例如,可以使用本文所阐述的任何数目的方面,实现装置或实践方法。另外,可以使用其它结构、功能、或除了本文所阐述的一个或多个方面之外或不是本文所阐述的一个或多个方面的结构和功能,实现这种装置或实践这种方法。此外,本文所描述的任何方面可以包括权利要求的至少一个元素。
在对本发明的实施例进行详细描述之前,首先对本发明中涉及的几个概念进行简要说明。
术语“共享信息”指的是根据数据包生成的被第一平台(即,X86架构平台)和第二平台(即,FPGA架构平台)共同关注的信息。在本实施例中,共享信息为会话表。在本发明的其它实施例中,共享信息还可以是路由表,权限表或策略表等。
术语“事件”是指触发共享数据联动的原因,在本实施例中为所述第二平台将数据包发送到所述第一平台,以及所述第一平台发出的针对共享信息进行的操作指令。事件还可以是第二平台不能访问共享信息,以及所述第一平台发出的对共享信息进行的操作指令。
图2示出了根据本发明的X86/FPGA架构平台结合的架构体系中的基于事件触发的数据交互的体系图。
如图2所示,在根据本发明的X86/FPGA架构平台结合的架构体系中,第一平台为X86架构平台(即,X86系统)。第二平台为FPGA架构平台(即,FPGA),在FPGA中存储有共享信息全集,该共享信息全集是根据数据包生成的被第一平台和第二平台共同关注的信息的集合,所述共享信息比如是会话表、路由表,权限表或策略表等。X86系统至少包括两个模块,一个模块是数据联动模块(在本文中也称为BSP),用于执行基于事件驱动的数据件联动机制;另一个模块是软件逻辑执行模块(在本文中也称为NOS),用于对要处理的数据包执行运算逻辑分析。
在图2中示出的体系中,当FPGA接收到数据包时,在FPGA的共享信息全集(例如,会话表全集)中查找是否存在与所接收的数据包对应的共享信息(例如,会话表)。当在共享信息全集中查找到对应的共享信息并且该数据包不需要提交给X86系统中的NOS模块处理时,经由快速路径,对数据包直接进行快速处理。
当在共享信息全集中没有查找到对应的共享信息时,经由慢速路径,通过与数据联动模块以及软件逻辑执行模块进行交互,对所接收的数据包进行处理。
对于一些数据包,即使在共享信息全集中查找到对应的共享信息,但是由于比如配置拓扑发生改变或者通过分析共享信息中的内容(比如会话表中的表项信息)可知,该数据包仍然需要提交给X86系统中的NOS模块处理。在这种情况下,仍然经由慢速路径,通过与数据联动模块以及软件逻辑执行模块进行交互,对所接收的数据包进行处理。
图3示出了根据本发明的由数据联动模块执行的方法的一个示例的流程图,该流程是经由慢速路径处理时由数据联动模块执行的过程。在该流程图中,第一平台为X86架构平台,第二平台为FPGA架构平台。
如图3所示,在数据联动模块接收到事件后,在步骤S310,判断所接收的事件的来源是FPGA架构平台还是X86架构平台。也就是说,判断数据联动模块所接收的事件是来自FPGA架构平台,还是来自X86架构平台的至少包括对X86架构平台中的数据包进行运算逻辑处理后得到的共享信息操作指令的信息,即,来自软件逻辑执行模块的信息。
在所接收的事件是来自FPGA架构平台时,在步骤S320,将该数据包转发到X86架构平台进行运算逻辑处理,例如,决定是否针对该数据包进行共享信息操作。这里,所述共享信息操作可以包括共享信息创建、共享信息更新、共享信息删除和/或关联数据包的共享信息副本查找,并且在所述共享信息操作指令是共享信息创建、共享信息更新或共享信息删除时,从X86架构平台接收的事件还包括接收数据包。在这种情况下,数据联动模块还向FPGA架构平台转发该数据包。在本发明的一个示例中,共享信息可以包括会话表。在本发明的其它实施例中,共享信息还可以包括路由表,权限表或策略表等。
在所接收到的信息是来自X86架构平台的至少包括对X86架构平台中的数据包进行运算逻辑处理后得到的共享信息操作指令的信息时,在步骤S330,向X86架构平台返回共享信息操作指令完成消息,同时向FPGA架构平台转发该共享信息操作指令,以在FPGA架构平台完成该共享信息操作。在这种情况下,当X86架构平台(NOS模块)接收到数据联动模块返回的共享信息操作指令完成消息后,就认为FPGA架构平台已经完成对应的共享信息操作,从而开始执行针对其他数据包的处理。同时,当FPGA架构平台接收到数据联动模块异步转发的共享信息操作指令后,可以在FPGA架构平台上异步执行该共享信息操作。
图4示出了根据本发明的由数据联动模块执行的方法的另一更为优选的示例的流程图,在该示例中,采用会话表作为共享信息。
如图4所示,在数据联动模块接收到事件后,在步骤S410,判断所接收的事件的来源是FPGA架构平台还是X86架构平台。也就是说,判断数据联动模块所接收的事件是来自FPGA架构平台,还是来自X86架构平台的至少包括对X86架构平台中的数据包进行运算逻辑处理后得到的会话表操作指令的信息,即,来自软件逻辑执行模块的信息。
在所接收到的事件是来自FPGA架构平台时,在步骤S420,判断数据联动模块的用于存储会话表副本的对应缓存器中是否存在该数据包的会话表副本。例如,当数据联动模块接收到FPGA架构平台发送的数据包时,通过所接收的数据包的五元组信息,查找会话表副本的对应缓存器中是否存在该数据包的会话表副本。所述五元组信息例如包括(源IP,源端口,目的IP,目的端口,协议)。如何根据五元组信息在会话表副本的对应缓存器中是否存在该数据包的会话表副本在本领域中是公知的,在此不再赘述。
在会话表副本的对应缓存器中存在会话表副本时,即步骤S420的判断结果为是时,在步骤S450,更新该会话表副本的老化超时时间。所述老化超时时间是指该会话表的老化时间(即,生效时间)。换言之,当该会话表副本的老化时间期满后,该会话表副本变为无效。老化超时时间可以用存在时间段表示,例如,判断会话表副本的存在时间是否超过一个预定时间段。或者,老化超时时间也可以用即时时间表示,例如,会话表的老化超时时间可以用具体时刻表示,例如,2012年5月12日8:00,当进行查找操作时系统时间超过该具体时刻时,即认为会话表副本的老化时间期满,从而该会话表副本变为无效。当老化超时时间采用存在时间段表示时,对老化超时时间的更新可以是将会话表副本的存在时间变为从当前开始计时。当老化超时时间采用具体时刻表示时,对老化超时时间的更新可以是基于当前时刻重新计算老化超时的具体时刻。
在如上对老化超时时间进行更新后,在步骤S440,将所接收的数据包转发到X86架构平台进行逻辑运算分析,以确定是否需要对数据包执行会话表操作。例如,在X86架构平台的软件逻辑执行模块中对数据包进行逻辑运算分析,以确定是否需要对数据包执行会话表更新操作、会话表删除操作或者该数据包的关联数据包的会话表副本查找操作。
在会话表副本的对应缓存器中不存在会话表副本时,即步骤S420的判断结果为是时,在步骤S430,查询从FPGA架构平台(例如,FPGA)接收的事件中是否包含指示FPGA架构平台的会话表全集中存在该数据包的会话表的标记,例如,查询从FPGA接收的事件中是否包含标记“session on FPGAflag”。
当所接收的事件中存在指示FPGA架构平台的会话表全集中存在该数据包的会话表的标记时,在步骤S460,将从FPGA架构平台接收的数据包转发到X86架构平台进行逻辑运算分析处理,以确定是否需要对数据包执行会话表操作,同时从FPGA架构平台的会话表全集中获取该会话表,并将所获取的会话表存储到数据联动模块的会话表副本的对应缓存器中,作为该数据包的会话表副本。在这种情况下,将从FPGA架构平台接收的数据包转发到X86架构平台进行逻辑运算分析处理的操作和从FPGA架构平台的会话表全集中获取该会话表并存储的操作之间没有关联,两个操作可以同步进行,也可以异步进行。
当从FPGA架构平台接收的事件中不存在指示FPGA架构平台的会话表全集中存在该数据包的会话表的标记时,进行到步骤S440。在步骤S440,将所接收的数据包转发到X86架构平台进行逻辑运算分析处理,以确定是否需要对数据包执行会话表操作。
当所接收到的事件是来自X86架构平台的至少包括对X86架构平台中的数据包进行运算逻辑处理后得到的会话表操作指令的信息时,在步骤S470,向X86架构平台返回会话表操作指令完成消息,同时向FPGA架构平台转发该会话表操作指令,以在FPGA架构平台完成该会话表操作。这里,所述会话表操作指令可以包括会话表创建指令、会话表更新指令、会话表删除指令和/或关联数据包的会话表副本查找指令,并且在所述会话表操作指令是会话表创建、会话表更新或会话表删除时,从X86架构平台接收的信息还包括数据包,并且数据联动模块还向FPGA架构平台转发该数据包。
具体地,当软件逻辑执行模块(NOS模块)通过对所接收的数据包进行逻辑分析后,确定需要进行会话表创建操作后,软件逻辑执行模块向数据联动模块发送会话表创建指令并且转发所接收的数据包,由此,软件逻辑执行模块调用数据联动模块提供的创建会话表的API执行创建动作。当数据联动模块接收到来自X86架构平台的会话表创建指令和数据包后,数据联动模块的API立即同步返回会话表创建完成消息(此时会话表并没有实质创建到FPGA架构平台中),同时向FPGA架构平台转发该会话表创建指令和数据包。软件逻辑执行模块获得数据联动模块返回的会话表创建完成消息后,将进行其他数据流的处理。FPGA架构平台接收到数据联动模块转发的会话表创建指令和数据包后,异步执行该数据包的会话表创建操作。
当软件逻辑执行模块通过对所接收的数据包进行逻辑分析后,确定需要进行会话表更新或删除操作后,软件逻辑执行模块向数据联动模块发送会话表更新或删除指令并且转发所接收的数据包,由此,软件逻辑执行模块调用数据联动模块提供的更新或删除会话表的API执行会话表更新或删除动作。当数据联动模块接收到来自X86架构平台的会话表更新或删除指令和数据包后,数据联动模块的API立即同步返回会话表更新或删除完成消息(此时FPGA架构平台中并没有实质进行会话表更新或删除),同时向FPGA架构平台转发该会话表更新或删除指令和数据包。软件逻辑执行模块获得数据联动模块返回的会话表更新或删除完成消息后,将进行针对其他数据包的处理。FPGA架构平台接收到数据联动模块转发的会话表更新或删除指令和数据包后,异步执行该数据包的会话表更新或删除操作。
当软件逻辑执行模块通过对所接收的数据包进行逻辑分析后,确定需要进行关联数据包的会话表副本查找操作后,软件逻辑执行模块向数据联动模块发送关联数据包的会话表副本查找操作指令,由此,软件逻辑执行模块调用数据联动模块提供的关联数据包的会话表查找操作的API执行关联数据包的会话表查找操作。当数据联动模块接收到来自X86架构平台的关联数据包的会话表查找操作后,数据联动模块的API在会话表副本缓存器中进行会话表副本查找。当查找到关联数据包的会话表副本后,将所查找到的会话表副本返回给软件逻辑执行模块。否则,向软件逻辑执行模块返回没有查找到会话表副本的查找结果。
接着,在步骤S480,判断FPGA架构平台的会话表操作是否成功?例如,判断FPGA架构平台中的会话表创建、会话表更新或会话表删除操作是否成功。
当FPGA架构平台的会话表操作成功后,FPGA架构平台将会话表操作结果返回给数据联动模块。接着,在步骤S490,数据联动模块利用从FPGA架构平台接收的会话表操作结果,对会话表副本的对应缓存器进行同步处理。这里,同步处理是指FPGA架构平台对会话表中进行何种操作,数据联动模块也会对会话表副本进行相应的操作。
如果FPGA架构平台的操作失败,则数据联动模块的处理流程结束。例如,如果FPGA架构平台创建会话表失败,那么数据包将被丢弃。在这种情况下,重传该数据包,重复上述流程来进行会话表创建。如果FPGA架构平台更新或删除会话表失败,则结束数据联动模块的处理流程。
如上参照图4描述了本发明的由数据联动模块执行的方法的另一更为优选的示例的流程图。这里要说明的是,上述示例仅仅是本发明的一个优选实施例。在本发明的其它示例中,可以对上述实施例进行各种修改。例如,删除上述实施例中的一部分步骤,比如同步操作步骤等。或者,在上述实施例中增加一些新的步骤。
在本发明的另一示例中,由数据联动模块执行的方法还可以包括共享信息的老化超时处理。图5示出了根据本发明的老化超时处理的流程图。
当数据联动模块的用于存储共享信息的对应缓存器中存在共享信息时,数据联动模块还可以对缓存器中的共享信息进行老化超时处理。
如图5所示,在步骤S510,数据联动模块查找缓存器中存储的共享信息的老化时间。在查找到共享信息的老化时间后,在步骤S520,判断该老化时间是否超时,即,该老化时间是否期满。如何判断该老化时间是否期满,可以参照上面的描述。
在判断出老化时间未超时时,在步骤S530中,保持该共享信息不变。在判断出老化时间超时时,在步骤S540,删除该共享信息。
接着,在步骤S540,判断是否遍历完缓存器中的所有共享信息。如果未遍历完,则返回到步骤S510,查找下一共享信息的老化超时时间,并且重复上述操作过程。如果已经遍历完,则流程结束。
如上参照图2到图5描述了根据本发明的异构平台间的基于事件驱动的数据联动方法的流程图。本发明的上述异构平台间的基于事件驱动的数据联动方法,可以采用软件实现,也可以采用硬件实现,或采用软件和硬件组合的方式实现。
图6示出了根据本发明的数据联动装置600的配置的方框图。如图6所示,数据联动装置600包括判断单元610、事件处理单元620、共享信息副本同步单元630和缓存器640。
缓存器640用于存储根据数据包生成的共享信息的副本(下文中称为共享信息副本)。判断单元610用于判断所接收的事件的来源是X86架构下的第一平台(即,X86架构平台)还是FPGA架构下的第二平台(即,FPGA架构平台)。
事件处理单元620用于在所述判断单元判断为所接收的事件是来自第二平台时,将该数据包转发到第一平台进行运算逻辑处理,或者在所接收到的事件是来自第一平台的至少包括对第一平台中的数据包进行运算逻辑处理后得到的共享信息操作指令的信息时,向第一平台返回共享信息操作指令完成消息,同时向第二平台转发该共享信息操作指令,以在第二平台完成该共享信息操作。
共享信息副本同步单元630用于在第二平台完成该共享信息操作后,根据第二平台返回的共享信息操作结果,对缓存器640中的共享信息副本进行同步处理。
在本发明的另一示例中,数据联动装置600也可以不包括共享信息副本同步单元630。
图7示出了图6中的事件处理单元620的一个示例的结构的方框图。如图7所示,事件处理单元620包括共享信息副本查找模块621和更新模块623。
共享信息副本查找模块621用于在所接收的事件是来自第二平台时,在所述缓存器中查找是否存在针对来自第二平台的数据包的共享信息副本。更新模块623用于在存在共享信息副本时,更新该共享信息副本的老化超时时间。
事件处理单元620还可以包括标记查询模块625、共享信息获取模块627和共享信息存储模块629。
标记查询模块625用于在不存在共享信息副本时,查询从第二平台接收的事件中是否包含指示第二平台的共享信息全集中存在针对该数据包的共享信息的标记。共享信息获取模块627用于在从第二平台接收的事件中存在指示第二平台的共享信息全集中存在针对该数据包的共享信息的标记时,从第二平台获取该共享信息。共享信息存储模块629用于将所获取的共享信息存储到所述缓存器中。在这种情况下,事件处理单元620还被配置为无论在从第二平台接收的事件中是否查询到指示第二平台的共享信息全集中存在针对该数据包的共享信息的标记,都将来自第二平台的数据包转发到第一平台进行运算逻辑处理。
在本发明的另一示例中,事件处理单元620也可以不包括标记查询模块625、共享信息获取模块627和共享信息存储模块629,而仅仅包括共享信息副本查找模块621和更新模块623。
在本发明的另一示例中,数据联动装置600还可以包括老化超时处理单元(未示出),用于遍历所述缓存器中的共享信息副本,对共享信息副本进行老化超时处理,其中,在共享信息副本的老化超时时间已经期满时,从所述缓存器中删除该共享信息副本。
图8示出了根据本发明的软硬件数据联动系统10的方框图。如图8所示,该软硬件数据联动系统10包括X86架构平台20和FPGA架构平台30。X86架构平台20包括软件逻辑执行模块100和数据联动装置600。
利用上述异构平台间的基于事件驱动的数据联动方法及装置,可以通过在X86架构平台中设置数据联动模块,使得在从X86架构平台中接收到包括对数据包进行运算逻辑处理后得到的共享信息操作指令(例如,会话表操作指令)时,数据联动模块向X86架构平台返回共享信息操作指令完成消息,并且同时向FPGA架构平台转发该共享信息操作指令来在FPGA架构平台中完成对应的共享信息操作,由此确保X86架构平台同步获取数据而无需等待FPGA架构平台的反馈,从而缩短X86架构平台的处理时间。
尽管前面公开的内容示出了本发明的示例性实施例,但是应当注意,在不背离权利要求限定的本发明的范围的前提下,可以进行多种改变和修改。根据这里描述的发明实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明的元素可以以个体形式描述或要求,但是也可以设想多个,除非明确限制为单数。
虽然如上参照图描述了根据本发明的各个实施例进行了描述,但是本领域技术人员应当理解,对上述本发明所提出的各个实施例,还可以在不脱离本发明内容的基础上做出各种改进。因此,本发明的保护范围应当由所附的权利要求书的内容确定。
Claims (12)
1.一种基于事件驱动的数据联动方法,用于X86架构下的第一平台、FPGA架构下的第二平台的数据交互,所述第二平台存储共享信息,该方法由所述第一平台中的数据联动模块执行,该数据联动模块包括用于存储共享信息副本的对应缓存器,所述方法包括:
判断所接收的事件的来源是第一平台还是第二平台;
在所接收的事件是来自第二平台时,将来自第二平台的数据包转发到第一平台进行逻辑运算处理;
在所接收到的事件是来自第一平台的至少包括对第一平台的数据包进行逻辑运算处理后得到的共享信息操作指令的信息时,向所述第一平台返回共享信息操作指令完成消息,同时向所述第二平台转发该共享信息操作指令,以在所述第二平台完成该共享信息操作。
2.如权利要求1所述的方法,还包括:在第二平台完成该共享信息操作后,根据第二平台返回的共享信息操作结果,对第一平台的对应缓存器中的共享信息副本进行同步处理。
3.如权利要求1所述的方法,其中,在所接收的事件是来自第二平台时,将来自第二平台的数据包转发到第一平台进行逻辑运算处理包括:
在所接收的事件是来自第二平台时,在所述共享信息副本的对应缓存器中查找是否存在针对来自第二平台的数据包的共享信息副本;
在存在针对来自第二平台的数据包的共享信息副本时,更新该共享信息副本的老化超时时间,并将该数据包转发到第一平台进行逻辑运算处理,或者,
在不存在针对来自第二平台的数据包的共享信息副本时,将该数据包转发到第一平台进行逻辑运算处理。
4.如权利要求3所述的方法,其中,在不存在共享信息副本时,将来自第二平台的数据包转发到第一平台进行逻辑运算处理包括:
在不存在针对来自第二平台的数据包的共享信息副本时,查询从第二平台接收的事件中是否包含指示第二平台的共享信息全集中存在针对该数据包的共享信息的标记;以及
在所接收的事件中存在指示所述第二平台的共享信息全集中存在针对该数据包括的共享信息的标记时,将该数据包转发到第一平台进行逻辑运算处理,同时从第二平台获取该共享信息并存储到所述共享信息副本的对应缓存器中,或者
在所接收的事件中不存在指示所述第二平台的共享信息全集中存在针对该数据包括的共享信息的标记时,将该数据包转发到第一平台进行逻辑运算处理。
5.如权利要求1所述的方法,其中,所述共享信息操作指令包括共享信息创建、共享信息更新、共享信息删除和/或该事件关联的共享信息副本查找。
6.如权利要求1所述的方法,还包括:
遍历所述第一平台的对应缓存器中的共享信息副本,对共享信息副本进行老化超时处理,
其中,在共享信息副本的老化超时时间已经期满时,从所述对应缓存器中删除该共享信息副本。
7.如权利要求1所述的方法,其中,所述共享信息是会话表、路由表,权限表或策略表。
8.一种基于事件驱动的数据联动装置,用于X86架构下的第一平台、FPGA架构下的第二平台的数据交互,所述第二平台存储共享信息,该数据联动装置包括:
缓存器,用于存储共享信息副本;
判断单元,用于判断所接收的事件的来源是第一平台还是第二平台;
事件处理单元,用于在所述判断单元判断为所接收的事件是来自第二平台时,将来自第二平台的数据包转发到第一平台进行运算逻辑处理,或者在所接收到的信息是来自第一平台的至少包括对所述第一平台的数据包进行运算逻辑处理后得到的共享信息操作指令的信息时,向所述第一平台返回共享信息操作指令完成消息,同时向所述第二平台转发该共享信息操作指令,以在所述第二平台完成该共享信息操作。
9.如权利要求8所述的数据联动装置,还包括:
共享信息副本同步单元,用于在第二平台完成该共享信息操作后,根据第二平台返回的共享信息操作结果,对所述缓存器中的共享信息副本进行同步处理。
10.如权利要求8所述的数据联动装置,其中,所述事件处理单元包括:
共享信息副本查找模块,用于在所接收的事件是来自所述第二平台时,在所述缓存器中查找是否存在针对来自第二平台的数据包的共享信息副本;以及
更新模块,用于在存在针对来自第二平台的数据包的共享信息副本时,更新该共享信息副本的老化超时时间。
11.如权利要求10所述的数据联动装置,其中,所述事件处理单元包括:
标记查询模块,用于在不存在针对来自第二平台的数据包的共享信息副本时,查询从所述第二平台接收的事件中是否存在指示所述第二平台的共享信息全集中存在针对该数据包括的共享信息的标记;
共享信息获取模块,用于在所接收的事件中存在指示所述第二平台的共享信息全集中存在针对该数据包括的共享信息的标记时,从第二平台获取该共享信息;以及
共享信息存储模块,用于将所获取的共享信息存储到所述缓存器中,
其中,所述事件处理单元还被配置为无论标记查询模块是否查询到所述标记,都将来自第二平台的数据包转发到第一平台进行运算逻辑处理。
12.如权利要求8所述的数据联动装置,还包括:
老化超时处理单元,用于遍历所述缓存器中的共享信息副本,对共享信息副本进行老化超时处理,
其中,在共享信息副本的老化超时时间已经期满时,从所述缓存器中删除该共享信息副本。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210322432.5A CN102902654B (zh) | 2012-09-03 | 2012-09-03 | 异构平台间数据联动方法及装置 |
US13/945,927 US9250986B2 (en) | 2012-09-03 | 2013-07-19 | Method and apparatus for data linkage between heterogeneous platforms |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210322432.5A CN102902654B (zh) | 2012-09-03 | 2012-09-03 | 异构平台间数据联动方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102902654A true CN102902654A (zh) | 2013-01-30 |
CN102902654B CN102902654B (zh) | 2015-08-26 |
Family
ID=47574894
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210322432.5A Active CN102902654B (zh) | 2012-09-03 | 2012-09-03 | 异构平台间数据联动方法及装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9250986B2 (zh) |
CN (1) | CN102902654B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109885617A (zh) * | 2019-01-29 | 2019-06-14 | 中国工商银行股份有限公司 | 分布式异构数据库系统的数据同步方法及装置 |
WO2019223099A1 (zh) * | 2018-05-23 | 2019-11-28 | 平安科技(深圳)有限公司 | 应用程序的调用方法及系统 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104618329B (zh) * | 2014-12-26 | 2018-06-05 | 曙光信息产业(北京)有限公司 | 数据处理方法及装置 |
US11496483B1 (en) * | 2021-10-22 | 2022-11-08 | Akoya LLC | Systems and methods for managing tokens and filtering data to control data access |
US11641357B1 (en) * | 2021-10-22 | 2023-05-02 | Akoya LLC | Systems and methods for managing tokens and filtering data to control data access |
US11373000B1 (en) | 2021-10-22 | 2022-06-28 | Akoya LLC | Systems and methods for managing tokens and filtering data to control data access |
US11379614B1 (en) | 2021-10-22 | 2022-07-05 | Akoya LLC | Systems and methods for managing tokens and filtering data to control data access |
US11379617B1 (en) | 2021-10-22 | 2022-07-05 | Akoya LLC | Systems and methods for managing tokens and filtering data to control data access |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060004912A1 (en) * | 2001-05-15 | 2006-01-05 | Zahid Najam | Apparatus and method for interfacing with a high speed bi-directional network |
CN101551761A (zh) * | 2009-04-30 | 2009-10-07 | 浪潮电子信息产业股份有限公司 | 一种异构多处理器中共享流内存的方法 |
US20100274550A1 (en) * | 2008-01-24 | 2010-10-28 | National Chung Cheng University | Integrated development structure having virtual inputs/outputs for embedded hardware/software |
US20110087928A1 (en) * | 2008-03-27 | 2011-04-14 | Isilon Systems, Inc. | Systems and methods for managing stalled storage devices |
US20110287764A1 (en) * | 2010-05-21 | 2011-11-24 | Interop Technologies | Home location register query reduction apparatus and methods |
CN102360313A (zh) * | 2011-09-29 | 2012-02-22 | 中国科学技术大学苏州研究院 | 片上异构多核计算平台的性能加速方法 |
CN102508712A (zh) * | 2011-09-29 | 2012-06-20 | 中国科学技术大学苏州研究院 | 异构多核可重构混合系统中的中间件系统及任务执行方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2661697B1 (en) * | 2011-01-07 | 2018-11-21 | Seven Networks, LLC | System and method for reduction of mobile network traffic used for domain name system (dns) queries |
US8819347B2 (en) * | 2011-05-09 | 2014-08-26 | Bae Systems Information And Electronic Systems Integration Inc. | Mailbox data communications |
US9053517B2 (en) * | 2011-07-29 | 2015-06-09 | Rb.tv., Inc. | Devices, systems, and methods for aggregating, controlling, enhancing, archiving, and analyzing social media for events |
-
2012
- 2012-09-03 CN CN201210322432.5A patent/CN102902654B/zh active Active
-
2013
- 2013-07-19 US US13/945,927 patent/US9250986B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060004912A1 (en) * | 2001-05-15 | 2006-01-05 | Zahid Najam | Apparatus and method for interfacing with a high speed bi-directional network |
US20100274550A1 (en) * | 2008-01-24 | 2010-10-28 | National Chung Cheng University | Integrated development structure having virtual inputs/outputs for embedded hardware/software |
US20110087928A1 (en) * | 2008-03-27 | 2011-04-14 | Isilon Systems, Inc. | Systems and methods for managing stalled storage devices |
CN101551761A (zh) * | 2009-04-30 | 2009-10-07 | 浪潮电子信息产业股份有限公司 | 一种异构多处理器中共享流内存的方法 |
US20110287764A1 (en) * | 2010-05-21 | 2011-11-24 | Interop Technologies | Home location register query reduction apparatus and methods |
CN102360313A (zh) * | 2011-09-29 | 2012-02-22 | 中国科学技术大学苏州研究院 | 片上异构多核计算平台的性能加速方法 |
CN102508712A (zh) * | 2011-09-29 | 2012-06-20 | 中国科学技术大学苏州研究院 | 异构多核可重构混合系统中的中间件系统及任务执行方法 |
Non-Patent Citations (2)
Title |
---|
NISHANT GEORGE ET AL.: "Towards Transient Fault Tolerance for Heterogeneous Computing Platforms", 《WORKSHOP ON COMPILER AND ARCHITECTURAL TECHNIQUES FOR APPLICATION RELIABILITY AND SECURITY》 * |
徐新海等: "CPU—GPGPU异构体系结构相关技术综述", 《计算机工程与科学》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019223099A1 (zh) * | 2018-05-23 | 2019-11-28 | 平安科技(深圳)有限公司 | 应用程序的调用方法及系统 |
CN109885617A (zh) * | 2019-01-29 | 2019-06-14 | 中国工商银行股份有限公司 | 分布式异构数据库系统的数据同步方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102902654B (zh) | 2015-08-26 |
US9250986B2 (en) | 2016-02-02 |
US20140068637A1 (en) | 2014-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102902654B (zh) | 异构平台间数据联动方法及装置 | |
EP3232611B1 (en) | Method, device and system for performing bidirectional forwarding detection on an aggregated link | |
CN1311381C (zh) | 实现ospf冗余的方法和系统 | |
US7898943B2 (en) | Method for switching route and network device thereof | |
CN102508713B (zh) | 进程启动方法及装置 | |
RU2574812C9 (ru) | Способ и узел детектирования маршрута в сети передачи данных | |
CN108881158A (zh) | 数据交互系统和方法 | |
CN106878199B (zh) | 一种接入信息的配置方法和装置 | |
CN103795622B (zh) | 一种报文转发方法及其装置 | |
EP2747381B1 (en) | Method, network device and system for implementing network card offloading function | |
US9571379B2 (en) | Computer system, communication control server, communication control method, and program | |
EP3493477B1 (en) | Message monitoring | |
EP2604006A1 (en) | Method and apparatus for packet processing and a preprocessor | |
EP3306873A1 (en) | Routing method, and relevant device and system | |
CN103201987A (zh) | 区分路由信息更新的优先级 | |
CN103608791A (zh) | 通信系统、控制器、交换机、存储器管理设备和通信方法 | |
CN103546556B (zh) | 一种在未来网络xia中虚拟机在线迁移方法 | |
CN110768911B (zh) | 流量高效引流方法、装置、设备、系统及存储介质 | |
CN104509059A (zh) | 主连接表和辅连接表的使用 | |
CN113965508A (zh) | 双路径数据传输方法、电子设备和计算机可读存储介质 | |
CN105144644A (zh) | 通信节点、通信系统、分组处理方法和程序 | |
CN104468343A (zh) | 报文处理方法、sdn转发设备以及sdn控制器 | |
CN111010362B (zh) | 一种异常主机的监控方法及装置 | |
CN103200084A (zh) | 基于网络处理器的报文预处理方法、装置及网络处理器 | |
CN112217687B (zh) | 一种实现任意IP地址ping回复的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C53 | Correction of patent of invention or patent application | ||
CB03 | Change of inventor or designer information |
Inventor after: Chen Jingxiang Inventor after: Lu Jie Inventor after: Wang Shuyi Inventor before: Chen Jingxiang Inventor before: Lu Jie Inventor before: Wang Shuyi |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |