US20140068637A1 - Method and Apparatus for Data Linkage between Heterogeneous Platforms - Google Patents

Method and Apparatus for Data Linkage between Heterogeneous Platforms Download PDF

Info

Publication number
US20140068637A1
US20140068637A1 US13/945,927 US201313945927A US2014068637A1 US 20140068637 A1 US20140068637 A1 US 20140068637A1 US 201313945927 A US201313945927 A US 201313945927A US 2014068637 A1 US2014068637 A1 US 2014068637A1
Authority
US
United States
Prior art keywords
platform
shared information
data packet
data
copy
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
Application number
US13/945,927
Other versions
US9250986B2 (en
Inventor
Jingxiang CHEN
Jie Lu
Shuyi WANG
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Neusoft Corp
Original Assignee
Neusoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Neusoft Corp filed Critical Neusoft Corp
Assigned to NEUSOFT CORPORATION reassignment NEUSOFT CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: LU, JIE, WANG, SHUYI, CHEN, JINGXIANG
Publication of US20140068637A1 publication Critical patent/US20140068637A1/en
Application granted granted Critical
Publication of US9250986B2 publication Critical patent/US9250986B2/en
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Definitions

  • the present invention relates to the field of data processing, and more particularly, to a method and apparatus for data linkage between heterogeneous platforms that is driven by an event.
  • FPGAs namely Field-programmable gate arrays
  • ASICs application specific integrated circuits
  • FPGAs are typically not able to realize complex arithmetic logic in case of controlling costs.
  • X86 architecture platforms In data processing, X86 architecture platforms have an advantage of strong extendibility, i.e., software running on X86 architecture platforms can support relatively complex arithmetic logics, but the arithmetic capability of X86 architecture platforms typically is not high, which limits their development to a high-end market.
  • FIG. 1 shows a view illustrating data interaction between two heterogeneous platforms in a FPGA+X86 architecture system in prior art.
  • logical processing of X86 platform may proceed only after obtaining shared information, therefore data between the two heterogeneous platforms needs to be synchronized.
  • the shared information is used by FPGA under most forwarding cases, and the fewer cross-platform information inquiries occur, the less influence on the overall performance. For this reason, data sets are usually stored on FPGA. In this case, FPGA does not know when X86 platform needs data, and thus most data acquisitions are initiated by X86 platform.
  • the synchronized data interaction process between existing X86 platform and FPGA is as follows: the X86 platform initiates an operation instruction via interrupt, FPGA responds to this operation instruction and executes it, and finally FPGA returns result of execution to X86 platform. Thereafter, X86 platform may proceed with processing of subsequent complex logics.
  • the object of the present invention is to provide a method and apparatus for data linkage driven by an event between heterogeneous platforms, which may be able to ensure that a first platform under X86 architecture (namely, a X86 architecture platform) synchronously acquires data without waiting for feedback of a second platform under FPGA architecture (namely, a FPGA architecture platform), thus reducing processing time of the first platform.
  • a first platform under X86 architecture namely, a X86 architecture platform
  • FPGA architecture platform namely, a FPGA architecture platform
  • a method driven by an event for data linkage used for data interaction between a first platform under a X86 architecture and a second platform under a FPGA architecture, the second platform storing shared information
  • the method being executed by a data linkage module in the first platform, and the data linkage module comprising a corresponding buffer for storing a shared information copy
  • the method comprising: determining which platform the received event is from, the first platform or the second platform; forwarding a data packet from the second platform to the first platform for logical operation processing when the received event is from the second platform; when the received event is information from the first platform that at least includes a shared information operation instruction resulting from logic operation processing of data packets in the first platform, returning a shared information operation instruction completion message to the first platform, and at the same time forwarding the shared information operation instruction to the second platform so as to complete the shared information operation on the second platform.
  • said method may further comprise: after the second platform completes the shared information operation, the data linkage module performs synchronous processing on the shared information copy in the corresponding buffer of the first platform with a shared information operation result returned from the second platform.
  • forwarding the data packet from the second platform to the first platform for logical operation processing may comprise: when the received event is from the second platform, the data linkage module looks up whether there is a shared information copy for the data packet from the second platform in the corresponding buffer; when there is a shared information copy for the data packet from the second platform, the module updates the aging expiration time of the shared information copy and forwards the data packet to the first platform for logical operation processing, or when there is no shared information copy for the data packet from the second platform, forwarding the data packet to the first platform for logical operation processing.
  • forwarding the data packet from the second platform to the first platform for logical operation processing when there is no shared information copy may comprise: when there is no shared information copy for the data packet from the second platform, inquiring whether the event received from the second platform contains a flag indicating there is shared information for the data packet in the whole set of shared information of the second platform; and when there is the flag indicating there is the shared information for the data packet in the whole set of shared information of the second platform in the received event, forwarding the data packet to the first platform for logical operation processing, and at the same time acquiring the shared information from the second platform and storing it into the corresponding buffer, or when there is no flag indicating there is the shared information for the packet in the whole set of shared information of the second platform in the received event, forwarding the data packet to the first platform for logical operation processing.
  • the shared information operation instruction may comprise shared information creation, shared information update, shared information deletion and/or lookup of shared information copy associated with the event.
  • the method may further comprise: traversing shared information copies in the corresponding buffer of the first platform and performing aging expiration processing on the shared information copies, wherein when the aging expiration time of a shared information copy expires, the shared information copy is deleted from the corresponding buffer.
  • the shared information is a session table, a routing table, a permission table or a policy table.
  • a data linkage apparatus driven by an event for data interaction between a first platform under a X86 architecture and a second platform under a FPGA architecture.
  • the second platform stores shared information
  • the data linkage apparatus comprising: a buffer for storing a shared information copy; a determination unit for determining which platform the received event is from, the first platform or the second platform; an event processing unit configured to forward a data packet from the second platform to the first platform for logical operation processing when the determination unit determines that the received event is from the second platform, or return a shared information operation instruction completion message to the first platform and at the same time forward the shared information operation instruction to the second platform to complete the shared information operation on the second platform when the received information is information from the first platform that at least includes a shared information operation instruction resulting from logic operation processing of data packets in the first platform.
  • the data linkage apparatus may further comprise: a shared information copy synchronization unit configured to perform synchronous processing on the shared information copy in the buffer with a shared information operation result returned by the second platform after the second platform completes the shared information operation.
  • a shared information copy synchronization unit configured to perform synchronous processing on the shared information copy in the buffer with a shared information operation result returned by the second platform after the second platform completes the shared information operation.
  • the event processing unit may comprise: a shared information copy look up module configured to look up whether there is a shared information copy for the data packet from the second platform in the buffer when the received event is from the second platform; and an update module configured to update the aging expiration time of the shared information copy when there is a shared information copy for the data packet of the second platform.
  • the event processing unit may comprise: a flag inquiry module configured to inquire whether the event received from the second platform contains a flag indicating there is shared information for the data packet in the whole set of shared information of the second platform; a shared information acquisition module configured to acquire the shared information from the second platform when the received event contains the flag indicating there is the shared information for the data packet in the whole set of shared information of the second platform; and a shared information storage module configured to store the acquired shared information in the buffer, wherein the event processing unit is further configured to forward the data packet from the second platform to the first platform for logic operation processing no matter whether the flag inquiry module finds the flag or not.
  • the data linkage apparatus may further comprise: an aging expiration processing unit configured to traverse shared information copies in the buffer and perform aging expiration processing on the shared information copies, wherein when the aging expiration time of a shared information copy expires, the shared information copy is deleted from said buffer.
  • an aging expiration processing unit configured to traverse shared information copies in the buffer and perform aging expiration processing on the shared information copies, wherein when the aging expiration time of a shared information copy expires, the shared information copy is deleted from said buffer.
  • one or more aspects of the present invention include features that will be described in detail hereinbelow and specifically defined in claims.
  • the following description and accompanying drawings elaborate some illustrative aspects of the present invention. However, these aspects only illustrate some of the various ways in which the principle of the present invention may be applied. Furthermore, it is intended that the present invention comprises all these aspects and their equivalents.
  • FIG. 1 shows a view illustrating data interaction in an architecture system combining X86/FPGA architecture platforms
  • FIG. 2 shows a view illustrating data interaction in an architecture system combining X86/FPGA architecture platforms according to the present invention
  • FIG. 3 shows a flow chart of an example of a method carried out by a data linkage module according to present invention
  • FIG. 4 shows a flow chart of another example of a method carried out by a data linkage module according to the present invention.
  • a session table is used as shared information
  • FIG. 5 shows a flow chart of aging expiration processing according to the present invention
  • FIG. 6 shows a block diagram of the configuration of a data linkage apparatus according to the present invention.
  • FIG. 7 shows a block diagram of the structure of one example of an event processing unit in FIG. 6
  • FIG. 8 shows a block diagram of a heterogeneous platform data linkage system according to the present invention.
  • Term “shared information” means information used by both of the first platform (namely, X86 architecture platform) and the second platform (namely, FPGA architecture platform), which is generated according to data packets.
  • the shared information is a session table.
  • the shared information may also be a routing table a permission table or a policy table.
  • Event means the cause for triggering linkage of shared data, in this embodiment, the event is that the second platform transmits data packets to the first platform and the first platform transmits operation instructions for the shared information. An event may also be that the second platform can not access the shared information, and the first platform transmits operation instructions for the shared information.
  • FIG. 2 shows a view illustrating data interaction triggered based on events in a X86+FPGA architecture system according to the present invention.
  • the first platform is an X86 architecture platform (namely, X86 system)
  • the second platform is an FPGA architecture platform (namely, FPGA).
  • the whole set of the shared information is stored in the FPGA, and is a set of information used by both of the first platform and the second platform, which is generated according to data packets, and the shared information is a session table, a routing table, a permission table or a policy table, for example.
  • the X86 system includes at least two modules, a data linkage module (also referred to as BSP herein) for executing linkage mechanism that is driven by an event between data ; and a software logic executing module (also referred to as NOS herein) for carrying out arithmetic logic analysis on data packets to be processed.
  • a data linkage module also referred to as BSP herein
  • NOS software logic executing module
  • a lookup for the shared information e.g., the session table
  • the whole set of shared information for example, a whole set of session table.
  • the received data packet is processed through interaction between the data linkage module and the software logic executing module via a slow path.
  • corresponding shared information is found in the whole set of shared information.
  • the topology configuration is changed or the data packet still needs to be delivered to the NOS module in X86 system for processing by analyzing contents in the shared information (such as item information in a session table),the received data packet is stilled processed through interaction with the data linkage module and the software logic executing module via a slow path.
  • FIG. 3 shows a flow chart of one example of a method executed by the data linkage module according to the present invention, which is a process executed by the data linkage module when processing is via a slow path.
  • the first platform is an X86 architecture platform and the second platform is a FPGA architecture platform.
  • step S 310 after the data linkage module received an event, in step S 310 , it determines which platform the received event is from, the FGPA architecture platform or the X86 architecture platform. That is, it determines which platform the event received by the data linkage module is from, the FPGA architecture platform or the X86 architecture platform that at least includes a shared information operation instruction resulting from logic operation processing of data packets in the X86 architecture platform, namely, the information from the software logic executing module.
  • the data packet is forwarded to the X86 architecture platform for logic operation processing, such as determining whether to perform shared information operation on the data packet.
  • the shared information operation may include shared information creation, shared information update, shared information deletion and/or shared information copy lookup of associated data packet, and when the shared information operation instruction is shared information creation, shared information update or shared information deletion, the event received from the X86 architecture platform further includes receiving the data packet.
  • the data linkage module also forwards the data packet to the FPGA architecture platform.
  • the shared information may include a session table. In other embodiments of the present invention, the shared information may further include a routing table, a permission table or a policy table.
  • step S 330 When the received information is information from the X86 architecture platform that at least includes a shared information operation instruction resulting from logic operation processing of data packets in the X86 architecture platform, in step S 330 , a shared information operation instruction completion message is returned to the X86 architecture platform, and the shared information operation instruction is forwarded to the FPGA architecture platform at the same time so as to complete the shared information operation on the FPGA architecture platform.
  • the X86 architecture platform NOS module
  • the shared information operation instruction completion message returned from the data linkage module
  • the shared information operation may be asynchronously executed on the FPGA architecture platform.
  • FIG. 4 shows a flow chart of another more preferred example of the method executed by the data linkage module according to the present invention, in which a session table is used as the shared information.
  • step S 410 after the data linkage module receives an event, in step S 410 , it determines which platform the received event is from, the FGPA architecture platform or the X86 architecture platform. That is, it determines which platform the event received by the data linkage module, the FPGA architecture platform or the X86 architecture platform that at least includes shared information operation instruction resulting from logic operation processing of data packets in the X86 architecture platform, namely, the information from the software logic executing module.
  • the data linkage module determines whether there is a session table copy of the data packet in the corresponding buffer of the data linkage module for storing session table copies. For example, when the data linkage module receives the data packet transmitted by the FPGA architecture platform, a lookup is made in the buffer of the session table copies for the session table copy corresponding to the data packet through quintuple information in the received data packet.
  • the quintuple information includes source IP, source port, destination IP, destination port, protocol. It is well known in prior art how to look up in the buffer of the session table copies for the session table copy corresponding to the data packet according to the quintuple information, and no further description will be provided herein.
  • step S 450 the aging expiration time of the session table copy is updated.
  • the aging expiration time refers to the aging time (i.e., the effective time) of the session table copies. In other words, when the aging time of the session table copies expires, the session table copies become invalid.
  • step S 440 the received data packet is forwarded to the X86 architecture platform for logical operation analysis, so as to determine whether to execute session table operation for the data packet.
  • the data packet is subject to logical operation analysis in the software logic executing module of the X86 architecture platform, so as to determine whether to execute session table update operation, session table deletion operation on the data packet or session table copy lookup operation on the associated data packet of the data packet.
  • step S 430 it is inquired whether there is a flag indicating there is the session table of the data packet in the whole set of session table of the FPGA architecture platform in the event received from the FPGA architecture platform (e.g., FPGA), that is, whether the event received from FPGA contains a “session on FPGA flag”.
  • the FPGA architecture platform e.g., FPGA
  • step S 460 the data packet received from the FPGA architecture platform is forwarded to the X86 architecture platform for logical operation analysis so as to determine whether to execute session table operation on the data packet, and at the same time, the session table is acquired from the whole set of session table of the FPGA architecture platform and stored in the corresponding buffer of the session table copies in the data linkage module as the session table copy of the data packet.
  • step S 440 the received data packet is forwarded to the X86 architecture platform for logical operation analysis processing so as to determine whether to execute session table operation on the data packet.
  • step S 470 When the received event is information from the X86 architecture platform that at least includes a shared information operation instruction resulting from logic operation processing of data packets in the X86 architecture platform, in step S 470 , a session table operation instruction completion message is returned to the X86 architecture platform, and at the same time the session table operation instruction is forwarded to the FPGA architecture platform so as to complete the session table operation on the FPGA architecture platform.
  • the session table operation instruction may include session table creation instruction, session table update instruction, session table deletion instruction and/or session table copy lookup instruction of the associated data packet, and when the session table operation instruction is a session table creation, a session table update or a session table deletion, the information received from X86 architecture platform further includes the data packet, and the data linkage module further forwards the data packet to the FPGA architecture platform.
  • the software logic executing module decides to perform a session table creation operation through logical analysis on the received data packet, it transmits a session table creation instruction and forwards the received data packet to the data linkage module, thereby, the software logic executing module invokes the API for creating session table provided by the data linkage module to execute the creation action.
  • the API of data linkage module After the data linkage module receives the session table creation instruction and data packet from the X86 architecture platform, the API of data linkage module immediately returns a session table creation completion message synchronously (when the session table has not been substantially created in the FPGA architecture platform), and at the same time forwards the session table creation instruction and the data packet to the FPGA architecture platform.
  • the software logic executing module After the software logic executing module obtains the session table creation completion message returned by the data linkage module, it will proceed with processing on other data packets. After the FPGA architecture platform receives the session table creation instruction and the data packet forwarded by the data linkage module, it executes the session table creation operation on the data packet asynchronously.
  • the software logic executing module When the software logic executing module decides to perform session table update or deletion operation through logical analysis on the received data packet, it transmits a session table update or deletion instruction and forwards the received data packet to the data linkage module, thereby, the software logic executing module invokes an API for updating or deleting session table provided by the data linkage module to execute the session table update or deletion action.
  • the API of data linkage module When the data linkage module receives the session table update or deletion instruction and the data packet from the X86 architecture platform, the API of data linkage module immediately synchronously returns a session table update or deletion completion message (when the FPGA architecture platform has not substantially updated or deleted the session table yet), and at the same time, forwards the session table update or deletion instruction and the data packet to the FPGA architecture platform.
  • the software logic executing module After the software logic executing module obtains the session table update or deletion completion message returned by the data linkage module, it will proceed with processing on other data packets. After the FPGA architecture platform receives the session table update or deletion instruction and the data packet forwarded by the data linkage module, it executes the session table update or deletion operation on the data packet asynchronously.
  • the software logic executing module When the software logic executing module decides to perform session table copy lookup operation through logical analysis on the received data packet, it transmits a session table copy lookup operation instruction of the associated data packet, thereby, the software logic executing module invokes an API for session table lookup operation of associated packet provided by the data linkage module to execute the session table lookup operation of the associated data packet.
  • the API of data linkage module looks up in the buffer of session table copy for the session table copy. When a session table copy of associated data packet is found, the found session table copy is returned to the software logic executing module. Otherwise, a lookup result that no session table copy is found is returned to the software logic executing module.
  • step S 480 it is determined whether the session table operation of the FPGA architecture platform is successful.
  • the data linkage module determines whether the session table creation, session table update or session table deletion operation in the FPGA architecture platform is successful.
  • the FPGA architecture platform After the session table operation of the FPGA architecture platform is successful, the FPGA architecture platform returns a session table operation result to the data linkage module.
  • the data linkage module performs synchronous processing on the corresponding buffer of the session table copies with the session table operation result received from the FPGA architecture platform.
  • the synchronous processing means that whatever operation the FPGA architecture platform conducts on the session table, the data linkage module also conducts corresponding operation on the session table copy.
  • the processing of the data linkage module ends. For example, if the FPGA architecture platform fails to create a session table, then the data packet will be dropped. In this case, the data packet is retransmitted and the above-mentioned process is repeated for session table creation. If the FPGA architecture platform fails to update or delete a session table, the processing of the data linkage module ends.
  • the method executed by the data linkage module may further include aging expiration processing for the shared information.
  • FIG. 5 shows a flow chart of aging expiration processing according to the present invention.
  • the data linkage module may also perform aging expiration processing on the shared information in the buffer.
  • step S 510 the data linkage module looks up aging time of the shared information stored in the buffer. After the aging time of shared information is found, in step S 520 , it is determined whether the aging time is exceeded, namely, whether the aging time expires. For how to determine expiration of the aging time, refer to the above description in [0050].
  • step S 530 When it is determined that the aging time does not expire, in step S 530 , the shared information is kept unchanged. When it is determined the aging time expires, in step S 540 , the shared information is deleted.
  • step S 540 it is determined whether all shared information in the buffer is traversed. If not, the process returns to step S 510 for looking up aging expiration time of a next piece of shared information and the above-mentioned operation process is repeated. If yes, the process ends.
  • the flow chart of the data linkage method driven by an event between heterogeneous platforms according to the present invention is described above with reference to FIGS. 2 to 5 .
  • the above data linkage method driven by an event between heterogeneous platforms of the present invention may be implemented in software, in hardware or combination of both.
  • FIG. 6 shows a block diagram of the configuration of the data linkage apparatus 600 according to the present invention.
  • the data linkage apparatus 600 includes a determination unit 610 , an event processing unit 620 , a shared information copy synchronization unit 630 and a buffer 640 .
  • the buffer 640 is configured to store a copy of shared information generated according to a data packet (referred to as shared information copy hereinafter).
  • the determination unit 610 is configured to determine which platform the received event is from, a first platform under the X86 architecture (namely X86 architecture platform) or a second platform under the FPGA architecture (namely FPGA architecture platform).
  • the event processing unit 620 is configured to forward the data packet to the first platform for logic operation processing when the determination unit determines the received event is from the second platform.
  • the unit returns a shared information operation instruction completion message to the first platform and at the same time forward the shared information operation instruction to the second platform so as to complete this shared information operation on the second platform.
  • the shared information copy synchronization unit 630 is configured to perform synchronous processing on the shared information copy in the buffer 640 with the shared information operation result returned by the second platform after the second platform completes the shared information operation.
  • the data linkage apparatus 600 may not include the shared information copy synchronization unit 630 .
  • FIG. 7 shows a block diagram of the structure of an example of the event processing unit 620 in FIG. 6 .
  • the event processing unit 620 includes a shared information copy lookup module 621 and an update module 623 .
  • the shared information copy lookup module 621 is configured to look up whether there is a shared information copy for the data packet from the second platform in the buffer when the received event is from the second platform.
  • the update module 623 is configured to update the aging expiration time of the shared information copy when there is the shared information copy.
  • the event processing unit 620 may further include a flag inquiry module 625 , a shared information acquisition module 627 and a shared information storage module 629 .
  • the flag inquiry module 625 is configured to inquire whether the event received from the second platform contains a flag indicating there is shared information for the data packet in the whole set of shared information of the second platform.
  • the shared information acquisition module 627 is configured to acquire the shared information from the second platform when the event received from the second platform contains the flag indicating there is the shared information for the data packet in the whole set of shared information of the second platform.
  • the shared information storage module 629 is configured to store the acquired shared information in the buffer.
  • the event processing unit 620 may be further configured to forward the data packet from the second platform to the first platform for logic operation processing, no matter whether a flag indicating there is the shared information for the packet in the whole set of shared information of the second platform is found in the event received from the second platform.
  • the event processing unit 620 may not include the flag inquiry module 625 , the shared information acquisition module 627 and the shared information storage module 629 , and only include the shared information copy lookup module 621 and the update module 623 .
  • the data linkage apparatus 600 may further include an aging expiration processing unit (not shown) for traversing shared information copies in the buffer and performing aging expiration processing on the shared information copies, wherein a shared information copy is deleted from the buffer when the aging expiration time of the shared information copy is exceeded.
  • an aging expiration processing unit (not shown) for traversing shared information copies in the buffer and performing aging expiration processing on the shared information copies, wherein a shared information copy is deleted from the buffer when the aging expiration time of the shared information copy is exceeded.
  • FIG. 8 shows a block diagram of the software and hardware data linkage system 10 according to the present invention.
  • the software and hardware data linkage system 10 includes an X86 architecture platform 20 and a FPGA architecture platform 30 .
  • the X86 architecture platform 20 includes a software logic executing module 100 and a data linkage apparatus 600 .
  • X86 architecture platform sends a shared information operation instruction (e.g., a session table operation instruction) resulting from logic operation processing of a data packet to the data linkage module and the data linkage module returns a shared information operation instruction completion message to the X86 architecture platform and at the same time forwards a shared information operation instruction to the FPGA architecture platform so as to complete corresponding shared information operation on the FPGA architecture platform, it can be ensured that the X86 architecture platform acquires data synchronously without waiting for feedback from the FPGA architecture platform, and thus processing time of the X86 architecture platform can be reduced.
  • a shared information operation instruction e.g., a session table operation instruction

Abstract

The present invention provides a method for data linkage driven by an event, used for data interaction between a first platform and a second platform. The second platform stores shared information and the method comprises: determining which platform the received event is from; forwarding a data packet from the second platform to the first platform for logical operation processing when the received event is from the second platform; when the received event is information from the first platform that at least includes a shared information operation instruction resulting from logic operation processing of data packets in the first platform, returning a shared information operation instruction completion message to the first platform, meanwhile forwarding the shared information operation instruction to the second platform so as to complete the shared information operation on the second platform. Therefore, the first platform acquires data synchronously without waiting for feedback of the second platform.

Description

    FIELD OF THE INVENTION
  • The present invention relates to the field of data processing, and more particularly, to a method and apparatus for data linkage between heterogeneous platforms that is driven by an event.
  • BACKGROUND OF THE INVENTION
  • FPGAs, namely Field-programmable gate arrays, emerge as a kind of semi-custom circuits in application specific integrated circuits (ASICs), and are widely applied in various fields such as communication, data processing, network, instruments, industrial control, military and aviation due to their favorable performance and programmable ability as well as low power consumption and cost. However, FPGAs are typically not able to realize complex arithmetic logic in case of controlling costs.
  • In data processing, X86 architecture platforms have an advantage of strong extendibility, i.e., software running on X86 architecture platforms can support relatively complex arithmetic logics, but the arithmetic capability of X86 architecture platforms typically is not high, which limits their development to a high-end market.
  • In view of respective features of the above two heterogeneous platforms, an architecture system combining these two heterogeneous platforms, i.e., FPGA+X86 architecture system, has been proposed in prior art.
  • FIG. 1 shows a view illustrating data interaction between two heterogeneous platforms in a FPGA+X86 architecture system in prior art.
  • As shown in FIG. 1, in this architecture system, logical processing of X86 platform may proceed only after obtaining shared information, therefore data between the two heterogeneous platforms needs to be synchronized. The shared information is used by FPGA under most forwarding cases, and the fewer cross-platform information inquiries occur, the less influence on the overall performance. For this reason, data sets are usually stored on FPGA. In this case, FPGA does not know when X86 platform needs data, and thus most data acquisitions are initiated by X86 platform.
  • The synchronized data interaction process between existing X86 platform and FPGA is as follows: the X86 platform initiates an operation instruction via interrupt, FPGA responds to this operation instruction and executes it, and finally FPGA returns result of execution to X86 platform. Thereafter, X86 platform may proceed with processing of subsequent complex logics.
  • However, since the above process takes a long time, the performance of overall system is greatly consumed. Therefore, in a FPGA+X86 architecture system, it is a key technology and also a technology bottle neck for this system how to deal with synchronization of associated data between the two heterogeneous platforms with high efficiency to ensure consistency of shared data set in the two systems.
  • SUMMARY OF THE INVENTION
  • In view of the above, the object of the present invention is to provide a method and apparatus for data linkage driven by an event between heterogeneous platforms, which may be able to ensure that a first platform under X86 architecture (namely, a X86 architecture platform) synchronously acquires data without waiting for feedback of a second platform under FPGA architecture (namely, a FPGA architecture platform), thus reducing processing time of the first platform.
  • According to an aspect of the present invention, there is provided a method driven by an event for data linkage, used for data interaction between a first platform under a X86 architecture and a second platform under a FPGA architecture, the second platform storing shared information, the method being executed by a data linkage module in the first platform, and the data linkage module comprising a corresponding buffer for storing a shared information copy, the method comprising: determining which platform the received event is from, the first platform or the second platform; forwarding a data packet from the second platform to the first platform for logical operation processing when the received event is from the second platform; when the received event is information from the first platform that at least includes a shared information operation instruction resulting from logic operation processing of data packets in the first platform, returning a shared information operation instruction completion message to the first platform, and at the same time forwarding the shared information operation instruction to the second platform so as to complete the shared information operation on the second platform.
  • In one or more examples of the above aspect, said method may further comprise: after the second platform completes the shared information operation, the data linkage module performs synchronous processing on the shared information copy in the corresponding buffer of the first platform with a shared information operation result returned from the second platform.
  • In one or more examples of the above aspect, when the received event is from the second platform, forwarding the data packet from the second platform to the first platform for logical operation processing may comprise: when the received event is from the second platform, the data linkage module looks up whether there is a shared information copy for the data packet from the second platform in the corresponding buffer; when there is a shared information copy for the data packet from the second platform, the module updates the aging expiration time of the shared information copy and forwards the data packet to the first platform for logical operation processing, or when there is no shared information copy for the data packet from the second platform, forwarding the data packet to the first platform for logical operation processing.
  • In one or more examples of the above aspect, forwarding the data packet from the second platform to the first platform for logical operation processing when there is no shared information copy may comprise: when there is no shared information copy for the data packet from the second platform, inquiring whether the event received from the second platform contains a flag indicating there is shared information for the data packet in the whole set of shared information of the second platform; and when there is the flag indicating there is the shared information for the data packet in the whole set of shared information of the second platform in the received event, forwarding the data packet to the first platform for logical operation processing, and at the same time acquiring the shared information from the second platform and storing it into the corresponding buffer, or when there is no flag indicating there is the shared information for the packet in the whole set of shared information of the second platform in the received event, forwarding the data packet to the first platform for logical operation processing.
  • In one or more examples of the above aspect, the shared information operation instruction may comprise shared information creation, shared information update, shared information deletion and/or lookup of shared information copy associated with the event.
  • In one or more examples of the above aspect, the method may further comprise: traversing shared information copies in the corresponding buffer of the first platform and performing aging expiration processing on the shared information copies, wherein when the aging expiration time of a shared information copy expires, the shared information copy is deleted from the corresponding buffer.
  • In one or more examples of the above aspect, the shared information is a session table, a routing table, a permission table or a policy table.
  • According to another aspect of the present invention, there is provided a data linkage apparatus driven by an event for data interaction between a first platform under a X86 architecture and a second platform under a FPGA architecture. The second platform stores shared information, the data linkage apparatus comprising: a buffer for storing a shared information copy; a determination unit for determining which platform the received event is from, the first platform or the second platform; an event processing unit configured to forward a data packet from the second platform to the first platform for logical operation processing when the determination unit determines that the received event is from the second platform, or return a shared information operation instruction completion message to the first platform and at the same time forward the shared information operation instruction to the second platform to complete the shared information operation on the second platform when the received information is information from the first platform that at least includes a shared information operation instruction resulting from logic operation processing of data packets in the first platform.
  • In one or more examples of the above aspect, the data linkage apparatus may further comprise: a shared information copy synchronization unit configured to perform synchronous processing on the shared information copy in the buffer with a shared information operation result returned by the second platform after the second platform completes the shared information operation.
  • In one or more examples of the above aspect, the event processing unit may comprise: a shared information copy look up module configured to look up whether there is a shared information copy for the data packet from the second platform in the buffer when the received event is from the second platform; and an update module configured to update the aging expiration time of the shared information copy when there is a shared information copy for the data packet of the second platform.
  • In one or more examples of the above aspect, the event processing unit may comprise: a flag inquiry module configured to inquire whether the event received from the second platform contains a flag indicating there is shared information for the data packet in the whole set of shared information of the second platform; a shared information acquisition module configured to acquire the shared information from the second platform when the received event contains the flag indicating there is the shared information for the data packet in the whole set of shared information of the second platform; and a shared information storage module configured to store the acquired shared information in the buffer, wherein the event processing unit is further configured to forward the data packet from the second platform to the first platform for logic operation processing no matter whether the flag inquiry module finds the flag or not.
  • In one or more examples of the above aspect, the data linkage apparatus may further comprise: an aging expiration processing unit configured to traverse shared information copies in the buffer and perform aging expiration processing on the shared information copies, wherein when the aging expiration time of a shared information copy expires, the shared information copy is deleted from said buffer.
  • With the above-mentioned method and apparatus for data linkage driven by an event, by setting a data linkage module in a X86 architecture platform such that a shared information operation instruction completion message is returned to the X86 architecture platform and at the same time a shared information operation instruction (e.g., a session table operation instruction) resulting from logic operation processing of a data packet is forwarded to the FPGA architecture platform so as to complete corresponding shared information operation on the FPGA architecture platform when the shared information operation instruction is received from the X86 architecture platform, it can be ensured that the X86 architecture platform acquires data synchronously without waiting for feedback from the FPGA architecture platform, and thus processing time of the X86 architecture platform can be reduced.
  • To achieve the above described and related objects, one or more aspects of the present invention include features that will be described in detail hereinbelow and specifically defined in claims. The following description and accompanying drawings elaborate some illustrative aspects of the present invention. However, these aspects only illustrate some of the various ways in which the principle of the present invention may be applied. Furthermore, it is intended that the present invention comprises all these aspects and their equivalents.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The above-mentioned and other objects, features and advantages of the present invention will become more apparent from the following detailed description made with reference to drawings. In the drawings:
  • FIG. 1 shows a view illustrating data interaction in an architecture system combining X86/FPGA architecture platforms;
  • FIG. 2 shows a view illustrating data interaction in an architecture system combining X86/FPGA architecture platforms according to the present invention;
  • FIG. 3 shows a flow chart of an example of a method carried out by a data linkage module according to present invention;
  • FIG. 4 shows a flow chart of another example of a method carried out by a data linkage module according to the present invention. In this example, a session table is used as shared information;
  • FIG. 5 shows a flow chart of aging expiration processing according to the present invention;
  • FIG. 6 shows a block diagram of the configuration of a data linkage apparatus according to the present invention;
  • FIG. 7 shows a block diagram of the structure of one example of an event processing unit in FIG. 6
  • FIG. 8 shows a block diagram of a heterogeneous platform data linkage system according to the present invention.
  • Identical reference numerals indicate similar or corresponding features or functions throughout the figures.
  • DETAILED DESCRIPTION OF THE INVENTION
  • Aspects of the present disclosure will be described below. It should be appreciated that the teachings of the present invention may be embodied in various forms, and any specific structures, functions or both in the present disclosure are only representative. According to teachings of the present invention, those skilled in the field should understand that one aspect disclosed herein may be implemented independently of any other aspects, and two or more aspects of these aspects may be combined in various manners. For example, an apparatus may be realized or a method may be practiced according to any number of aspects described herein. In addition, the apparatus may be realized or the method may be practiced according to other structures, functions or structures and functions other than those in one or more aspects described herein or not being those in one or more aspects described herein. Furthermore, any aspect described herein may include at least one element of the claims.
  • Before describing embodiments of the present invention in detail, several concepts mentioned in the present invention will be explained first.
  • Term “shared information” means information used by both of the first platform (namely, X86 architecture platform) and the second platform (namely, FPGA architecture platform), which is generated according to data packets. In this embodiment, the shared information is a session table. In other embodiments of the present invention, the shared information may also be a routing table a permission table or a policy table.
  • Term “event” means the cause for triggering linkage of shared data, in this embodiment, the event is that the second platform transmits data packets to the first platform and the first platform transmits operation instructions for the shared information. An event may also be that the second platform can not access the shared information, and the first platform transmits operation instructions for the shared information.
  • FIG. 2 shows a view illustrating data interaction triggered based on events in a X86+FPGA architecture system according to the present invention.
  • As shown in FIG. 2, in the X86+FPGA architecture platform according to the present invention, the first platform is an X86 architecture platform (namely, X86 system), and the second platform is an FPGA architecture platform (namely, FPGA). The whole set of the shared information is stored in the FPGA, and is a set of information used by both of the first platform and the second platform, which is generated according to data packets, and the shared information is a session table, a routing table, a permission table or a policy table, for example. The X86 system includes at least two modules, a data linkage module (also referred to as BSP herein) for executing linkage mechanism that is driven by an event between data ; and a software logic executing module (also referred to as NOS herein) for carrying out arithmetic logic analysis on data packets to be processed.
  • In the architecture shown in FIG. 2, when the FPGA receives a data packet, a lookup for the shared information (e.g., the session table) corresponding to the received data packet is made in the whole set of shared information (for example, a whole set of session table). When corresponding shared information is found in the whole set of shared information and the data packet need not be delivered to the NOS module in the X86 system for processing, the data packet is subject to a fast processing via a fast path.
  • When no corresponding shared information is found in the whole set of shared information, the received data packet is processed through interaction between the data linkage module and the software logic executing module via a slow path.
  • For some data packets, corresponding shared information is found in the whole set of shared information. However, when the topology configuration is changed or the data packet still needs to be delivered to the NOS module in X86 system for processing by analyzing contents in the shared information (such as item information in a session table),the received data packet is stilled processed through interaction with the data linkage module and the software logic executing module via a slow path.
  • FIG. 3 shows a flow chart of one example of a method executed by the data linkage module according to the present invention, which is a process executed by the data linkage module when processing is via a slow path. In this flow chart, the first platform is an X86 architecture platform and the second platform is a FPGA architecture platform.
  • As shown in FIG. 3, after the data linkage module received an event, in step S310, it determines which platform the received event is from, the FGPA architecture platform or the X86 architecture platform. That is, it determines which platform the event received by the data linkage module is from, the FPGA architecture platform or the X86 architecture platform that at least includes a shared information operation instruction resulting from logic operation processing of data packets in the X86 architecture platform, namely, the information from the software logic executing module.
  • When the received event is from the FPGA architecture platform, in step S320, the data packet is forwarded to the X86 architecture platform for logic operation processing, such as determining whether to perform shared information operation on the data packet. Here, the shared information operation may include shared information creation, shared information update, shared information deletion and/or shared information copy lookup of associated data packet, and when the shared information operation instruction is shared information creation, shared information update or shared information deletion, the event received from the X86 architecture platform further includes receiving the data packet. In this case, the data linkage module also forwards the data packet to the FPGA architecture platform. In one example of the present invention, the shared information may include a session table. In other embodiments of the present invention, the shared information may further include a routing table, a permission table or a policy table.
  • When the received information is information from the X86 architecture platform that at least includes a shared information operation instruction resulting from logic operation processing of data packets in the X86 architecture platform, in step S330, a shared information operation instruction completion message is returned to the X86 architecture platform, and the shared information operation instruction is forwarded to the FPGA architecture platform at the same time so as to complete the shared information operation on the FPGA architecture platform. In this case, when the X86 architecture platform (NOS module) receives the shared information operation instruction completion message returned from the data linkage module, it believes that the FPGA architecture platform has completed corresponding shared information operation, and thus start processing other data packets. At the same time, when the FPGA architecture platform receives the shared information operation instruction asynchronously forwarded by the data linkage module, the shared information operation may be asynchronously executed on the FPGA architecture platform.
  • FIG. 4 shows a flow chart of another more preferred example of the method executed by the data linkage module according to the present invention, in which a session table is used as the shared information.
  • As shown in FIG. 4, after the data linkage module receives an event, in step S410, it determines which platform the received event is from, the FGPA architecture platform or the X86 architecture platform. That is, it determines which platform the event received by the data linkage module, the FPGA architecture platform or the X86 architecture platform that at least includes shared information operation instruction resulting from logic operation processing of data packets in the X86 architecture platform, namely, the information from the software logic executing module.
  • When the received event is from the FPGA architecture platform, in step S420, the data linkage module determines whether there is a session table copy of the data packet in the corresponding buffer of the data linkage module for storing session table copies. For example, when the data linkage module receives the data packet transmitted by the FPGA architecture platform, a lookup is made in the buffer of the session table copies for the session table copy corresponding to the data packet through quintuple information in the received data packet. The quintuple information includes source IP, source port, destination IP, destination port, protocol. It is well known in prior art how to look up in the buffer of the session table copies for the session table copy corresponding to the data packet according to the quintuple information, and no further description will be provided herein.
  • When there is a session table copy in the buffer of the session table copies, that is, the determination result in step S420 is Yes, in step S450, the aging expiration time of the session table copy is updated. The aging expiration time refers to the aging time (i.e., the effective time) of the session table copies. In other words, when the aging time of the session table copies expires, the session table copies become invalid.
  • After updating the aging expiration time as above, in step S440, the received data packet is forwarded to the X86 architecture platform for logical operation analysis, so as to determine whether to execute session table operation for the data packet. For example, the data packet is subject to logical operation analysis in the software logic executing module of the X86 architecture platform, so as to determine whether to execute session table update operation, session table deletion operation on the data packet or session table copy lookup operation on the associated data packet of the data packet.
  • When there is no session table copy in the corresponding buffer of the session table copies, i.e., the determination result in step S420 is No, in step S430, it is inquired whether there is a flag indicating there is the session table of the data packet in the whole set of session table of the FPGA architecture platform in the event received from the FPGA architecture platform (e.g., FPGA), that is, whether the event received from FPGA contains a “session on FPGA flag”.
  • When there is a flag indicating there is a session table of the data packet in the whole set of session table of the FPGA architecture platform in the received event, in step S460, the data packet received from the FPGA architecture platform is forwarded to the X86 architecture platform for logical operation analysis so as to determine whether to execute session table operation on the data packet, and at the same time, the session table is acquired from the whole set of session table of the FPGA architecture platform and stored in the corresponding buffer of the session table copies in the data linkage module as the session table copy of the data packet. In this case, there is no association between the operation of forwarding the data packet received from the FPGA architecture platform to the X86 architecture platform for logical operation analysis processing and the operation of acquiring and storing the session table from the whole set of session table of the FPGA architecture platform, so both operations may be carried out synchronously or asynchronously.
  • When there is no flag indicating there is the session table of the data packet in the whole set of session table of the FPGA architecture platform in the event received from the FPGA architecture platform, the process proceeds to step S440. In step S440, the received data packet is forwarded to the X86 architecture platform for logical operation analysis processing so as to determine whether to execute session table operation on the data packet.
  • When the received event is information from the X86 architecture platform that at least includes a shared information operation instruction resulting from logic operation processing of data packets in the X86 architecture platform, in step S470, a session table operation instruction completion message is returned to the X86 architecture platform, and at the same time the session table operation instruction is forwarded to the FPGA architecture platform so as to complete the session table operation on the FPGA architecture platform. Here, the session table operation instruction may include session table creation instruction, session table update instruction, session table deletion instruction and/or session table copy lookup instruction of the associated data packet, and when the session table operation instruction is a session table creation, a session table update or a session table deletion, the information received from X86 architecture platform further includes the data packet, and the data linkage module further forwards the data packet to the FPGA architecture platform.
  • Particularly, when the software logic executing module (NOS module) decides to perform a session table creation operation through logical analysis on the received data packet, it transmits a session table creation instruction and forwards the received data packet to the data linkage module, thereby, the software logic executing module invokes the API for creating session table provided by the data linkage module to execute the creation action. After the data linkage module receives the session table creation instruction and data packet from the X86 architecture platform, the API of data linkage module immediately returns a session table creation completion message synchronously (when the session table has not been substantially created in the FPGA architecture platform), and at the same time forwards the session table creation instruction and the data packet to the FPGA architecture platform. After the software logic executing module obtains the session table creation completion message returned by the data linkage module, it will proceed with processing on other data packets. After the FPGA architecture platform receives the session table creation instruction and the data packet forwarded by the data linkage module, it executes the session table creation operation on the data packet asynchronously.
  • When the software logic executing module decides to perform session table update or deletion operation through logical analysis on the received data packet, it transmits a session table update or deletion instruction and forwards the received data packet to the data linkage module, thereby, the software logic executing module invokes an API for updating or deleting session table provided by the data linkage module to execute the session table update or deletion action. When the data linkage module receives the session table update or deletion instruction and the data packet from the X86 architecture platform, the API of data linkage module immediately synchronously returns a session table update or deletion completion message (when the FPGA architecture platform has not substantially updated or deleted the session table yet), and at the same time, forwards the session table update or deletion instruction and the data packet to the FPGA architecture platform. After the software logic executing module obtains the session table update or deletion completion message returned by the data linkage module, it will proceed with processing on other data packets. After the FPGA architecture platform receives the session table update or deletion instruction and the data packet forwarded by the data linkage module, it executes the session table update or deletion operation on the data packet asynchronously.
  • When the software logic executing module decides to perform session table copy lookup operation through logical analysis on the received data packet, it transmits a session table copy lookup operation instruction of the associated data packet, thereby, the software logic executing module invokes an API for session table lookup operation of associated packet provided by the data linkage module to execute the session table lookup operation of the associated data packet. When the data linkage module receives the session table lookup operation of associated data packet from the X86 architecture platform, the API of data linkage module looks up in the buffer of session table copy for the session table copy. When a session table copy of associated data packet is found, the found session table copy is returned to the software logic executing module. Otherwise, a lookup result that no session table copy is found is returned to the software logic executing module.
  • Next, in step S480, it is determined whether the session table operation of the FPGA architecture platform is successful. For example, the data linkage module determines whether the session table creation, session table update or session table deletion operation in the FPGA architecture platform is successful.
  • After the session table operation of the FPGA architecture platform is successful, the FPGA architecture platform returns a session table operation result to the data linkage module. Next, in step S490, the data linkage module performs synchronous processing on the corresponding buffer of the session table copies with the session table operation result received from the FPGA architecture platform. Here, the synchronous processing means that whatever operation the FPGA architecture platform conducts on the session table, the data linkage module also conducts corresponding operation on the session table copy.
  • If the operation by FPGA architecture platform fails, the processing of the data linkage module ends. For example, if the FPGA architecture platform fails to create a session table, then the data packet will be dropped. In this case, the data packet is retransmitted and the above-mentioned process is repeated for session table creation. If the FPGA architecture platform fails to update or delete a session table, the processing of the data linkage module ends.
  • The flow chart of another more preferred example of the method executed by the data linkage module of the present invention has been described above with reference to FIG. 4. It is to be noted here that the above-mentioned example is only a preferred embodiment of the present invention. In other examples of the present invention, various modifications may be made in the above-mentioned embodiments. For example, some of the steps in the above-mentioned embodiments may be omitted, such as the synchronous operation step. Alternatively, some new steps may be added in the above embodiments.
  • In another example of the present invention, the method executed by the data linkage module may further include aging expiration processing for the shared information. FIG. 5 shows a flow chart of aging expiration processing according to the present invention.
  • When the shared information exists in the corresponding buffer of the data linkage module for storing shared information, the data linkage module may also perform aging expiration processing on the shared information in the buffer.
  • As shown in FIG. 5, in step S510, the data linkage module looks up aging time of the shared information stored in the buffer. After the aging time of shared information is found, in step S520, it is determined whether the aging time is exceeded, namely, whether the aging time expires. For how to determine expiration of the aging time, refer to the above description in [0050].
  • When it is determined that the aging time does not expire, in step S530, the shared information is kept unchanged. When it is determined the aging time expires, in step S540, the shared information is deleted.
  • Next, in step S540, it is determined whether all shared information in the buffer is traversed. If not, the process returns to step S510 for looking up aging expiration time of a next piece of shared information and the above-mentioned operation process is repeated. If yes, the process ends.
  • The flow chart of the data linkage method driven by an event between heterogeneous platforms according to the present invention is described above with reference to FIGS. 2 to 5. The above data linkage method driven by an event between heterogeneous platforms of the present invention may be implemented in software, in hardware or combination of both.
  • FIG. 6 shows a block diagram of the configuration of the data linkage apparatus 600 according to the present invention. As shown in FIG. 6, the data linkage apparatus 600 includes a determination unit 610, an event processing unit 620, a shared information copy synchronization unit 630 and a buffer 640.
  • The buffer 640 is configured to store a copy of shared information generated according to a data packet (referred to as shared information copy hereinafter). The determination unit 610 is configured to determine which platform the received event is from, a first platform under the X86 architecture (namely X86 architecture platform) or a second platform under the FPGA architecture (namely FPGA architecture platform).
  • The event processing unit 620 is configured to forward the data packet to the first platform for logic operation processing when the determination unit determines the received event is from the second platform. When the received event is information from the first platform that at least includes a shared information operation instruction resulting from logic operation processing of data packets in the first platform, the unit returns a shared information operation instruction completion message to the first platform and at the same time forward the shared information operation instruction to the second platform so as to complete this shared information operation on the second platform.
  • The shared information copy synchronization unit 630 is configured to perform synchronous processing on the shared information copy in the buffer 640 with the shared information operation result returned by the second platform after the second platform completes the shared information operation.
  • In another example of the present invention, the data linkage apparatus 600 may not include the shared information copy synchronization unit 630.
  • FIG. 7 shows a block diagram of the structure of an example of the event processing unit 620 in FIG. 6. As shown in FIG. 7, the event processing unit 620 includes a shared information copy lookup module 621 and an update module 623.
  • The shared information copy lookup module 621 is configured to look up whether there is a shared information copy for the data packet from the second platform in the buffer when the received event is from the second platform. The update module 623 is configured to update the aging expiration time of the shared information copy when there is the shared information copy.
  • The event processing unit 620 may further include a flag inquiry module 625, a shared information acquisition module 627 and a shared information storage module 629.
  • The flag inquiry module 625 is configured to inquire whether the event received from the second platform contains a flag indicating there is shared information for the data packet in the whole set of shared information of the second platform. The shared information acquisition module 627 is configured to acquire the shared information from the second platform when the event received from the second platform contains the flag indicating there is the shared information for the data packet in the whole set of shared information of the second platform. The shared information storage module 629 is configured to store the acquired shared information in the buffer. In this case, the event processing unit 620 may be further configured to forward the data packet from the second platform to the first platform for logic operation processing, no matter whether a flag indicating there is the shared information for the packet in the whole set of shared information of the second platform is found in the event received from the second platform.
  • In another example of the present invention, the event processing unit 620 may not include the flag inquiry module 625, the shared information acquisition module 627 and the shared information storage module 629, and only include the shared information copy lookup module 621 and the update module 623.
  • In another example of the present invention, the data linkage apparatus 600 may further include an aging expiration processing unit (not shown) for traversing shared information copies in the buffer and performing aging expiration processing on the shared information copies, wherein a shared information copy is deleted from the buffer when the aging expiration time of the shared information copy is exceeded.
  • FIG. 8 shows a block diagram of the software and hardware data linkage system 10 according to the present invention. As shown in FIG. 8, the software and hardware data linkage system 10 includes an X86 architecture platform 20 and a FPGA architecture platform 30. The X86 architecture platform 20 includes a software logic executing module 100 and a data linkage apparatus 600.
  • With the above-mentioned method and apparatus driven by an event for data linkage between heterogeneous platforms, by setting a data linkage module in a X86 architecture platform, X86 architecture platform sends a shared information operation instruction (e.g., a session table operation instruction) resulting from logic operation processing of a data packet to the data linkage module and the data linkage module returns a shared information operation instruction completion message to the X86 architecture platform and at the same time forwards a shared information operation instruction to the FPGA architecture platform so as to complete corresponding shared information operation on the FPGA architecture platform, it can be ensured that the X86 architecture platform acquires data synchronously without waiting for feedback from the FPGA architecture platform, and thus processing time of the X86 architecture platform can be reduced.
  • While the above disclosure shows illustrative embodiments of the present invention, it should be noted that various changes and modifications may be made without departing from the scope of the present invention as defined in claims. Functions, steps and/or actions of the method claims according to the inventive embodiments described herein are not necessarily executed in any specific order. Furthermore, while elements of the present invention may be described or claimed in singular form, it is also possible to conceive multiple of them, unless they are limited to singular specifically.
  • While embodiments according to the present invention have been described above with reference to drawings, those skilled in the field should appreciate that various modifications may be made to embodiments provided in the above-mentioned present invention without departing from the spirit of the present invention. Therefore, the scope of the present invention should be defined by contents of the appended claims.

Claims (12)

What is claimed is:
1. A method for data linkage driven by an event, used for data interaction between a first platform under a X86 architecture and a second platform under a FPGA architecture, the second platform storing shared information, the method being executed by a data linkage module in the first platform, and the data linkage module comprising a corresponding buffer for storing a shared information copy, the method comprising:
determining which platform the received event is from, the first platform or the second platform;
forwarding a data packet from the second platform to the first platform for logical operation processing when the received event is from the second platform;
when the received event is information from the first platform that at least includes a shared information operation instruction resulting from logic operation processing of data packets in the first platform, returning a shared information operation instruction completion message to the first platform, and at the same time forwarding the shared information operation instruction to the second platform so as to complete the shared information operation on the second platform.
2. The method of claim 1, further comprises: after the second platform completes the shared information operation, performing synchronous processing on the shared information copy in the corresponding buffer of the first platform with a shared information operation result returned from the second platform.
3. The method of claim 1, wherein forwarding a packet from the second platform to the first platform for logical operation processing when the received event is from the second platform comprises:
when the received event is from the second platform, looking up whether there is a shared information copy for the data packet from the second platform in the corresponding buffer;
when there is a shared information copy for the data packet from the second platform, updating an aging expiration time of the shared information copy and forwarding the data packet to the first platform for logical operation processing, or
when there is no shared information copy for the data packet from the second platform, forwarding the data packet to the first platform for logical operation processing.
4. The method of claim 3, wherein forwarding the data packet from the second platform to the first platform for logical operation processing when there is no shared information copy comprises:
when there is no shared information copy for the data packet from the second platform, inquiring whether the event received from the second platform contains a flag indicating there is shared information for the data packet in the whole set of shared information of the second platform; and
when there is the flag indicating there is the shared information for the data packet in the whole set of shared information of the second platform in the received event, forwarding the data packet to the first platform for logical operation processing, and at the same time acquiring the shared information from the second platform and storing it into the corresponding buffer, or
when there is no flag indicating there is the shared information for the packet in the whole set of shared information of the second platform in the received event, forwarding the data packet to the first platform for logical operation processing.
5. The method of claim 1, wherein the shared information operation instruction comprises shared information creation, shared information update, shared information deletion and/or lookup of shared information copy associated with the event.
6. The method of claim 1, further comprises:
traversing shared information copies in the corresponding buffer of the first platform and performing aging expiration processing on the shared information copy,
wherein when the aging time of the shared information copy expires, the shared information copy is deleted from the corresponding buffer.
7. The method of claim 1, wherein the shared information is a session table, a routing table, a permission table or a policy table.
8. A data linkage apparatus driven by an event for data interaction between a first platform under a X86 architecture and a second platform under a FPGA architecture, and the second platform storing shared information. The data linkage apparatus comprises:
a buffer for storing a shared information copy;
a determination unit for determining which platform the received event is from, the first platform or the second platform;
an event processing unit configured to forward a data packet from the second platform to the first platform for logic operation processing when the determination unit determines that the received event is from the second platform, or return a shared information operation instruction completion message to the first platform and at the same time forward the shared information operation instruction to the second platform to complete the shared information operation on the second platform when the received information is information from the first platform that at least includes a shared information operation instruction resulting from logic operation processing of data packets in the first platform.
9. The data linkage apparatus of claim 8, further comprises:
a shared information copy synchronization unit configured to perform synchronous processing on the shared information copy in the buffer with a shared information operation result returned by the second platform after the second platform completes the shared information operation.
10. The data linkage apparatus of claim 8, wherein the event processing unit comprises:
a shared information copy lookup module configured to look up whether there is a shared information copy for the data packet from the second platform in the buffer when the received event is from the second platform; and
an update module configured to update the aging expiration time of the shared information copy when there is a shared information copy for the data packet of the second platform.
11. The data linkage apparatus of claim 10, wherein the event processing unit comprises:
a flag inquiry module configured to inquire whether the event received from the second platform contains a flag indicating there is shared information for the data packet in the whole set of shared information of the second platform;
a shared information acquisition module configured to acquire the shared information from the second platform when the received event contains the flag indicating there is the shared information for the data packet in the whole set of shared information of the second platform; and
a shared information storage module configured to store the acquired shared information in the buffer,
wherein the event processing unit is further configured to forward the data packet from the second platform to the first platform for logic operation processing no matter whether the flag inquiry module finds the flag or not.
12. The data linkage apparatus of claim 8, further comprising:
an aging expiration processing unit configured to traverse shared information copies in the buffer and perform aging expiration processing on the shared information copies,
wherein when the aging time of a shared information copy expires, the shared information copy is deleted from said buffer.
US13/945,927 2012-09-03 2013-07-19 Method and apparatus for data linkage between heterogeneous platforms Active 2033-08-09 US9250986B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201210322432.5 2012-09-03
CN201210322432.5A CN102902654B (en) 2012-09-03 2012-09-03 Data linkage method and device between heterogeneous platform
CN201210322432 2012-09-03

Publications (2)

Publication Number Publication Date
US20140068637A1 true US20140068637A1 (en) 2014-03-06
US9250986B2 US9250986B2 (en) 2016-02-02

Family

ID=47574894

Family Applications (1)

Application Number Title Priority Date Filing Date
US13/945,927 Active 2033-08-09 US9250986B2 (en) 2012-09-03 2013-07-19 Method and apparatus for data linkage between heterogeneous platforms

Country Status (2)

Country Link
US (1) US9250986B2 (en)
CN (1) CN102902654B (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104618329A (en) * 2014-12-26 2015-05-13 曙光信息产业(北京)有限公司 Data processing method and device
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
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

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108958949B (en) * 2018-05-23 2023-04-14 平安科技(深圳)有限公司 Calling method and system of application program
CN109885617A (en) * 2019-01-29 2019-06-14 中国工商银行股份有限公司 The method of data synchronization and device of Distributed Heterogeneous Database system

Citations (6)

* Cited by examiner, † Cited by third party
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
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
US20120179801A1 (en) * 2011-01-07 2012-07-12 Michael Luna System and method for reduction of mobile network traffic used for domain name system (dns) queries
US20120290797A1 (en) * 2011-05-09 2012-11-15 Rodriguez Christopher R Mailbox data communications
US20130046826A1 (en) * 2011-07-29 2013-02-21 Rb.tv., Inc. Devices, Systems, and Methods for Aggregating, Controlling, Enhancing, Archiving, and Analyzing Social Media for Events

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100274550A1 (en) * 2008-01-24 2010-10-28 National Chung Cheng University Integrated development structure having virtual inputs/outputs for embedded hardware/software
CN101551761A (en) * 2009-04-30 2009-10-07 浪潮电子信息产业股份有限公司 Method for sharing stream memory of heterogeneous multi-processor
CN102508712B (en) * 2011-09-29 2014-01-15 中国科学技术大学苏州研究院 Middleware system of heterogeneous multi-core reconfigurable hybrid system and task execution method thereof
CN102360313B (en) * 2011-09-29 2014-03-26 中国科学技术大学苏州研究院 Performance acceleration method of heterogeneous multi-core computing platform on chip

Patent Citations (6)

* Cited by examiner, † Cited by third party
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
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
US20120179801A1 (en) * 2011-01-07 2012-07-12 Michael Luna System and method for reduction of mobile network traffic used for domain name system (dns) queries
US20120290797A1 (en) * 2011-05-09 2012-11-15 Rodriguez Christopher R Mailbox data communications
US20130046826A1 (en) * 2011-07-29 2013-02-21 Rb.tv., Inc. Devices, Systems, and Methods for Aggregating, Controlling, Enhancing, Archiving, and Analyzing Social Media for Events

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104618329A (en) * 2014-12-26 2015-05-13 曙光信息产业(北京)有限公司 Data processing method and device
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
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

Also Published As

Publication number Publication date
CN102902654A (en) 2013-01-30
US9250986B2 (en) 2016-02-02
CN102902654B (en) 2015-08-26

Similar Documents

Publication Publication Date Title
US9250986B2 (en) Method and apparatus for data linkage between heterogeneous platforms
US10567506B2 (en) Data storage method, SDN controller, and distributed network storage system
US10243833B2 (en) Flow table management method, and related device and system
US8584136B2 (en) Context-aware request dispatching in clustered environments
US11172023B2 (en) Data synchronization method and system
KR101969194B1 (en) Offloading packet processing for networking device virtualization
US9401958B2 (en) Method, apparatus, and system for migrating user service
US20230319132A1 (en) Method and system for resource exposure in kubernetes, and device and medium
JP2017518568A (en) System and method for live migration of virtualized network stack
US9361334B2 (en) Addressing cache coherence in updates to a shared database in a network environment
US10447535B2 (en) Consistent processing of transport node network data in a physical sharding architecture
US20140044130A1 (en) Avoiding unknown unicast floods resulting from mac address table overflows
US10326613B2 (en) Method and system for processing spanning tree protocol (STP) state in a multichassis link aggregation (MLAG) domain
US10904201B1 (en) Updating distributed caches in network devices in the event of virtual machine changes in a virtualized network environment
US9386039B2 (en) Security policy enforcement system and security policy enforcement method
US10635480B2 (en) Zero-loss workload mobility with segment routing for virtual machines
US10666509B2 (en) Transporting multi-destination networking traffic by sending repetitive unicast
US20150373135A1 (en) Wide area network optimization
US20240048484A1 (en) Route updating method and user cluster
US20160380876A1 (en) Populating forwarding database tables in a fabric environment
WO2016045056A1 (en) Switch and service request packet processing method
US20140214761A1 (en) Systems and Methods for Accelerating Networking Functionality
CN105262604B (en) Virtual machine migration method and equipment
US20220200952A1 (en) Network address translation between networks
CN104618152A (en) Session table aging method and system

Legal Events

Date Code Title Description
AS Assignment

Owner name: NEUSOFT CORPORATION, CHINA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CHEN, JINGXIANG;LU, JIE;WANG, SHUYI;SIGNING DATES FROM 20130305 TO 20130311;REEL/FRAME:030831/0867

STCF Information on status: patent grant

Free format text: PATENTED CASE

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 4

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 8