WO2017144006A1 - 加速器网络中路由报文的方法和装置 - Google Patents

加速器网络中路由报文的方法和装置 Download PDF

Info

Publication number
WO2017144006A1
WO2017144006A1 PCT/CN2017/074705 CN2017074705W WO2017144006A1 WO 2017144006 A1 WO2017144006 A1 WO 2017144006A1 CN 2017074705 W CN2017074705 W CN 2017074705W WO 2017144006 A1 WO2017144006 A1 WO 2017144006A1
Authority
WO
WIPO (PCT)
Prior art keywords
accelerator
acceleration
information
network
sequence
Prior art date
Application number
PCT/CN2017/074705
Other languages
English (en)
French (fr)
Inventor
石仔良
顾华玺
Original Assignee
华为技术有限公司
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 华为技术有限公司 filed Critical 华为技术有限公司
Priority to EP17755835.0A priority Critical patent/EP3410300A4/en
Publication of WO2017144006A1 publication Critical patent/WO2017144006A1/zh
Priority to US16/109,694 priority patent/US10333823B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17312Routing techniques specific to parallel machines, e.g. wormhole, store and forward, shortest path problem congestion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/394Routing
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/26Route discovery packet

Definitions

  • the present application relates to the field of application acceleration and, more particularly, to a method and apparatus for routing messages in an accelerator network.
  • the server of the data center receives the search request, analyzes the content of the search request, and then divides the search task into multiple steps of webpage search keyword extraction, free expression matching, scoring, and the like, and then steps are performed.
  • the corresponding task is distributed to the FPGA.
  • the result is returned to the respective CPU, and the CPU sends the result to the CPU that initiated the request for convergence processing.
  • the present application proposes a method and apparatus for routing messages in an accelerator network to determine a target loop path of an acceleration request message.
  • a method for routing messages in an accelerator network comprising a plurality of accelerators connected to each other, wherein each accelerator is connected to a central processing unit CPU, and each of the accelerators corresponds to one
  • the acceleration type the method includes: the first accelerator receives an acceleration request message from the CPU, the first accelerator is any one of the accelerator networks, and the acceleration request message includes an acceleration sequence and data to be accelerated, The acceleration sequence is used to indicate multiple acceleration types for accelerating the data, and a sequence between the multiple acceleration types; the first accelerator determines the acceleration request message according to the acceleration information table.
  • the method further includes: The first accelerator stores the target loop path in an acceleration path table of the first accelerator, so that the first accelerator acquires the target from the acceleration path table after receiving the acceleration request message Loop path.
  • the first accelerator can obtain the target loop path directly from the acceleration path table after receiving the same acceleration request message again, thereby reducing the repeated calculation. Process that increases efficiency.
  • the method further includes: the first accelerator receives the third a first flooding message sent by the accelerator, where the third accelerator is any accelerator other than the first accelerator in the accelerator network, and the first flooding message includes acceleration of the third accelerator Type information and location information; the first accelerator saves acceleration type information and location information of the third accelerator in a node information table of the first accelerator, and the first accelerator saves according to the node information table
  • the acceleration type information and the position information of the third accelerator update the acceleration information table.
  • the first accelerator first caches the information of the surrounding accelerator.
  • the acceleration information table is then updated according to the information of the surrounding accelerators buffered in the node information table, which can solve the problem that the acceleration information table is updated slowly.
  • the number of accelerator nodes of the same acceleration type in the acceleration information table can be effectively reduced, thereby reducing the calculation according to the acceleration information table.
  • the method further includes: the first accelerator to the The other flooding in the accelerator network sends the second flooding packet, where the flooding distance of the second flooding packet is determined according to the number of acceleration types of the accelerator network, and the second flooding packet includes Acceleration type information and position information of the first accelerator.
  • the accelerator node sends flooding packets to the surrounding accelerator nodes in the form of local flooding, which can effectively avoid the huge traffic generated by global flooding.
  • a method for routing messages in an accelerator network including a plurality of accelerators connected to each other, wherein each accelerator is connected to a central processing unit CPU, and each of the accelerators corresponds to one
  • the acceleration type includes: the first accelerator receives an acceleration request message from the CPU, the first accelerator is any one of the accelerator networks, and the acceleration request message includes an acceleration sequence and data to be accelerated, The acceleration sequence is used to indicate a plurality of acceleration types for accelerating the data, and a sequence between the plurality of acceleration types; the first accelerator sends a probe to a second accelerator in the accelerator network
  • the second accelerator determines a target loop path of the acceleration request message according to the acceleration information table of the second accelerator, where the probe message includes the acceleration sequence, and the acceleration information table Include location information and acceleration type information for a plurality of accelerators in the accelerator network, plus on the target loop path Capable of accelerating the process request packet according to an indication of the acceleration of the acceleration sequence; the first accelerator based on the target acceleration
  • the first accelerator sends a probe message to other accelerators in the accelerator network, and the other looper determines the target loop path of the acceleration request message, which can realize multiple target accelerators in the accelerator network.
  • the acceleration request message quickly determines the loop path.
  • an apparatus for routing messages in an accelerator network comprising means for performing the method of the first aspect.
  • an apparatus for routing messages in an accelerator network comprising means for performing the method of the second aspect.
  • an apparatus for routing messages in an accelerator network comprising a memory, a processor, and a transceiver.
  • the memory is for storing programs
  • the processor is for executing programs
  • the transceiver is for communicating with other accelerators in an accelerator network.
  • the processor performs the method of the second aspect when the program is executed.
  • the accelerator in the accelerator network is an acceleration module based on a field programmable gate array FPGA.
  • the second accelerator is one of a plurality of accelerators corresponding to a plurality of acceleration types indicated by the acceleration sequence.
  • the second accelerator determines a target loop path of the acceleration request message according to an acceleration path table or an acceleration information table of the second accelerator.
  • the second accelerator forwards the probe message to other accelerators in the accelerator network, and the other accelerator determines a target loop path of the acceleration request message.
  • the acceleration type included in the accelerator network is N
  • the local flooding range of each accelerator in the accelerator network is N
  • the local part of each accelerator in the accelerator network The flooding range can be set to 2*N or 4*N.
  • the first accelerator after receiving the flooding message sent by other accelerators in the accelerator network, the first accelerator saves acceleration type information and location information of the other accelerators in the first accelerator.
  • the first accelerator queries the node information table and the acceleration information table of the first accelerator, and if it is determined that the first type of accelerator exists in the node information table, and the acceleration information table does not exist and The first type of accelerator accelerates an accelerator of the same type, and the first accelerator saves position information and acceleration function information of the first type of accelerator in the acceleration information table.
  • the first accelerator acquires location information and acceleration type information of the plurality of accelerators corresponding to the acceleration sequence from the acceleration information table, and then determines a target loop path with the acceleration request message according to the information, and according to the target ring.
  • the path routes the acceleration message. It is possible to determine a loop path for an acceleration request message having multiple target accelerators in an accelerator network.
  • FIG. 2 is a schematic diagram of an accelerator network in an embodiment of the present application.
  • FIG. 3 is a schematic diagram of different loop paths in an accelerator network in an embodiment of the present application.
  • FIG. 4 is a schematic flowchart of a method for routing a message in an accelerator network according to an embodiment of the present application.
  • FIG. 5 is a schematic flowchart of a method for routing a message in an accelerator network according to an embodiment of the present application.
  • FIG. 6 is a schematic diagram of a method for routing messages in an accelerator network according to an embodiment of the present application to reduce the number of traversal paths by avoiding an accelerator in a coverage area.
  • FIG. 7 is a schematic diagram of a coverage area of an accelerator network in an embodiment of the present application.
  • FIG. 8 is a schematic diagram of a method for routing a message in an accelerator network according to an embodiment of the present application to select a target loop path from an accelerator network.
  • FIG. 10 is a schematic flowchart of a method for routing a message in an accelerator network according to an embodiment of the present application.
  • FIG. 13 is a schematic block diagram of an apparatus for routing a message in an accelerator network according to an embodiment of the present application.
  • FIG. 14 is a schematic block diagram of an apparatus for routing a message in an accelerator network according to an embodiment of the present application.
  • FIG. 2 is a schematic diagram of the accelerator network.
  • A, B, C, and D represent the acceleration of four different acceleration types.
  • the accelerator can include an acceleration module and a routing module.
  • the acceleration module can be implemented by programming an FPGA or the like.
  • the accelerator can be plugged into the server through a PCIe card, and each accelerator is connected to a CPU, and each accelerator is separately passed through.
  • the interconnected links are connected into an accelerator network.
  • each accelerator can be connected through a network of topologies such as 2D-Mesh (2D mesh) and 2D-Torus (2D mesh ring).
  • the acceleration module in the accelerator can accelerate the data request, and the routing module can calculate the route between the accelerators.
  • the accelerator network in the embodiment of the present application has the following main features:
  • the destination acceleration node is not unique. Generally, there are multiple accelerators with the same acceleration type in the accelerator network. When the source accelerator in the accelerator network receives some acceleration request message sent by the CPU, there are multiple optional The target accelerator, at which point the most suitable accelerator can be selected as the target accelerator. In addition, for some applications, different types of accelerators are required to accelerate them in a certain order. In this case, there are multiple sources for the source accelerator. Purpose accelerator. For example, if an application requires two types of acceleration in AB, then there are two destination accelerators for the application, namely an accelerator with an A acceleration type and an accelerator with a B acceleration type. In this case, AB indicates that the acceleration request corresponds to the acceleration request.
  • the acceleration sequence that is, the acceleration of the application is accelerated by the type A accelerator, and then the B type accelerator is used to accelerate the application.
  • the acceleration type of the source accelerator may be of type A such that the first acceleration is achieved by the source node during acceleration, and if the acceleration type of the source accelerator is C, then no acceleration is performed at the source accelerator.
  • the accelerator receives an acceleration request message from the CPU, wherein the acceleration request message indicates an acceleration sequence requested by the CPU.
  • the accelerator begins looking for a target loop path corresponding to the acceleration request message.
  • the accelerator first checks whether there is a target loop path corresponding to the acceleration sequence in the acceleration request from the acceleration path table, and if yes, the packet is routed according to the corresponding target loop path, because the acceleration path
  • the shortest loop path corresponding to the acceleration sequence has been pre-stored in the table, so that the shortest loop path corresponding to the acceleration sequence can be directly obtained from the acceleration path table.
  • the accelerator obtains information of the plurality of accelerators corresponding to the acceleration sequence in the acceleration request from the acceleration information table, if
  • the acceleration information table has position information of a plurality of accelerators corresponding to the acceleration sequence in the acceleration request, that is, the position information of the plurality of accelerators can be acquired through the acceleration information table, and then the traversal and the addition can be performed. All the paths corresponding to the acceleration sequence in the speed request, and the path with the shortest distance from Manhattan is selected as the target loop path L, and then the acceleration request message is routed according to L, and L is stored in the acceleration path table of the accelerator.
  • the accelerator may send a probe message to the accelerators around the accelerator, and the accelerators around it determine the target loop path corresponding to the acceleration request according to the acceleration path table or the acceleration information table.
  • the shortest path L corresponding to the acceleration sequence is found, followed by the L route, and L is stored in the acceleration path table.
  • FIG. 5 is a schematic flowchart of a method for selecting a route message in an accelerator network according to an embodiment of the present application. The method can be performed by any one of the accelerators in the accelerator network. The method includes:
  • the first accelerator receives an acceleration request message from the CPU, where the first accelerator is any accelerator in the accelerator network, where the acceleration request message includes an acceleration sequence and data to be accelerated, and the acceleration sequence is used to indicate that the data is accelerated.
  • the type of acceleration and the order between the various types of acceleration.
  • the CPU herein may be a CPU connected to the first accelerator, and an application that needs to be accelerated may be located in the CPU, so that the CPU may send an acceleration request message corresponding to the application to the first accelerator.
  • the above acceleration sequence is used to indicate which types of accelerators need to be accelerated by the acceleration request sent by the CPU. For example, if an acceleration request message includes an acceleration sequence of ABCD, it means that the acceleration request sent by the CPU needs to be accelerated by ABCD.
  • the type of acceleration service that is, in order to implement the acceleration request, needs to be accelerated by an accelerator having four acceleration types of A, B, C, and D respectively in the accelerator network.
  • the first accelerator here can be any one of the accelerator networks.
  • the first accelerator determines, according to the acceleration information table, a target loop path of the acceleration request message, where the acceleration information table includes location information and acceleration type information of other accelerators in the accelerator network, and the accelerator on the target loop path can be accelerated.
  • the indication of the sequence speeds up the acceleration request message.
  • the accelerator may obtain, from the acceleration information table, node coordinate information corresponding to each acceleration type in the acceleration network in the acceleration sequence (each acceleration type may correspond to one or more accelerators), and calculate the first accelerator + Accelerating the Manhattan distance of the loop composed of the accelerator + the first accelerator corresponding to each acceleration type in the sequence request recorded by the information table, selecting the path L with the shortest distance from the Manhattan as the target loop path of the acceleration request message, and each path L
  • the information of the accelerator is added to the routing header of the acceleration message and sent to the corresponding port, so that when other accelerators obtain the acceleration message, the path L can be obtained from the message, and L is saved in the acceleration of the accelerator.
  • the first accelerator may also save the calculated target loop path L to its own acceleration path table. When the first acceleration node receives the same acceleration request next time, it may directly obtain L from the acceleration path table as a target. Loop path.
  • the acceleration information table may be configured to store coordinate information of one or more accelerator nodes corresponding to each acceleration type in the accelerator network according to an acceleration type index (storing a node having a shorter Manhattan distance in each quadrant).
  • the specificity of the acceleration information table may be in the form shown in Table 1.
  • the coverage area of the accelerator N1 is the area where the absolute values of the horizontal and vertical coordinates in the same quadrant are greater than or equal to the N1 horizontal and vertical coordinates, as shown in the upper right corner of FIG. 7 . Is the coverage area of N1. If the N1 accelerator is located in the nth quadrant with the current accelerator S as the coordinate origin, the nth quadrant with the current node N1 as the coordinate origin is called the coverage quadrant with respect to N1. For example, as shown in FIG. 7, the N1 accelerator is located at the current accelerator. S is the first quadrant of the coordinate origin, then the first quadrant with N1 as the coordinate origin is called the coverage quadrant with respect to N1.
  • the half-plane of the direction that is the origin of the N1 coordinate is referred to as the cover half-plane with respect to N1, and the above-mentioned cover quadrant and cover half-plane are collectively referred to as the coverage area.
  • the current accelerator S only the acceleration node information in any coverage area is recorded in its acceleration information table, such as N1 and N3 in FIG.
  • N2 since N1 and N2 are both located in the first quadrant, the Manhattan distance of N1 from the origin of the coordinate is smaller than the Manhattan distance of N2 from the origin of the coordinate. Therefore, only the node information of N1 and N3 is recorded in the acceleration information table of the current accelerator. The information of N2 is not recorded.
  • the current accelerator receives an acceleration request with an acceleration sequence of NM, the current accelerator selects N1 and M as the target loop path. If the current accelerator receives the acceleration sequence as the NK acceleration request, the current accelerator selects N3 and K is the target loop path.
  • the first accelerator acquires location information and acceleration type information of the plurality of accelerators corresponding to the acceleration sequence from the acceleration information table, and then determines a target loop path with the acceleration request message according to the information, and according to the target ring.
  • the path routes the acceleration message. It is possible to determine a loop path for an acceleration request message having multiple target accelerators in an accelerator network.
  • the first accelerator when the first accelerator is unable to determine the acceleration according to the acceleration information table of the first accelerator When requesting the target loop path of the message, the first accelerator may also send a probe message to other accelerators in the accelerator network. Specifically, as shown in FIG. 9, since the route range of the local flooding is 3, E2 can only perceive D9, and A8 is not perceived. After the E2 receives the acceleration request packet with the acceleration sequence of the DA, the first accelerator sends a probe packet, specifically, the probe packet is sent to D9 and D3 respectively, and the acceleration probe packet is sent after D9. Give A8, and then return to E2 a feedback message, which contains the coordinate information of A8 and the total number of hops of acceleration 8.
  • the acceleration probe packet is followed by XY two-dimensional routing, along the path of X7, X11, X10, and D9 to D9, and then to A8.
  • feedback to E2 is a feedback message, which includes the coordinate information of A8 and the total number of hops of acceleration 10.
  • E2 can select the path with the smallest hop count as the target loop path. Since the hop count of the path E2-D9-A8-E2 is small, it can be used as the target loop. The path and store the target loop path in the acceleration path table.
  • the first accelerator may also send a probe message to other accelerators in the accelerator network, and the other accelerator obtains the target loop path according to the acceleration path table or the acceleration information table, and then the target ring.
  • the path is fed back to the first accelerator.
  • E2 may send a probe message to D3, and D3 determines the target ring according to its own acceleration path table or acceleration information table. Path path, then D3 feeds back the target loop path to E2 through the feedback message. If D3 cannot determine the target loop path, D3 can forward the probe packet to X7, and X7 determines the target loop path. Then X7 feeds back the target loop path to E2 through the feedback message.
  • the first accelerator stores the target loop path in the acceleration path table of the first accelerator according to the acceleration sequence, so that the first accelerator receives the acceleration request message from the acceleration path table. Obtain the target loop path.
  • the target loop path pre-stored by the acceleration path table may be a target loop path calculated by the first accelerator during the previous acceleration process, or may be a target loop path obtained by the first accelerator from other accelerators.
  • the first accelerator can directly select the target loop path corresponding to the acceleration sequence according to the acceleration sequence indicated in the acceleration request message, thereby reducing the number of the target loop path corresponding to the acceleration sequence.
  • An accelerator calculation process increases the acceleration efficiency.
  • the acceleration path table may include information such as coordinate information of each accelerator in the loop path, acceleration type information, and loop distance of the loop path, and the specific form may be in the form shown in Table 2.
  • the above node information table will record each acceleration in the accelerator network according to the coordinates (X+Y coordinates) of the accelerator.
  • the acceleration type information of the device which can fill in part of the accelerator information during the initial local flooding, and the node information table can also supplement and update the information of other accelerators according to the information carried in the returned acceleration completion message.
  • the node information table It can also support centralized configuration, and its specific form can be in the form shown in Table 3.
  • the acceleration type of the accelerator a in the node information table and the accelerator b in the acceleration information table are the same, and in the coordinate system in which the first accelerator is the coordinate origin, a and b are located in the same quadrant, then they are respectively determined.
  • the abscissa and the absolute value of the ordinate of a and b are respectively determined. If the abscissa of the a and the absolute value of the ordinate are smaller than the abscissa of the y and the absolute value of the ordinate, respectively, the position information and the acceleration type information of a are saved in The acceleration information table of the first accelerator.
  • the update rate of the acceleration information table may be lower than the rate of receiving the flooding message. If the acceleration information table is not processed in time, it may be Some accelerator related information will be lost. Therefore, in order to solve this problem, after receiving the information of other accelerators, the first accelerator can save the information of other accelerators in the node information table of the first accelerator, and then judge whether it will The information of these other accelerators is updated into the acceleration information table, thus avoiding the problem that the accelerator information is lost because the rate at which the flooding message is received exceeds the update acceleration information table.
  • the flooding message including the self-acceleration type information and the coordinate information is sent to other accelerators in the accelerator network.
  • the range of local flooding is related to the type of acceleration type of the accelerator in the accelerator network.
  • the accelerator network can provide N types of acceleration, and the range of local flooding can be set to N. That is, the first accelerator can transmit its own coordinate information and acceleration type information to an accelerator whose distance is N. If the acceleration type in the accelerator network is small, the range of local flooding can be set to 2*N or 4*N, etc., in order to achieve an optimal path selection within a larger range.
  • any accelerator in the accelerator network can be directed to the first accelerator after going online. Other accelerators around it send flood messages. It should be understood that local flooding is performed during initialization in the embodiment of the present application, which effectively avoids huge traffic caused by global flooding.
  • the acceleration information table may be configured to store coordinate information of one or more accelerator nodes corresponding to each acceleration type in the accelerator network according to an acceleration type index (storing a node having a shorter Manhattan distance in each quadrant).
  • the specificity of the acceleration information table may be in the form shown in Table 1.
  • the first accelerator routes the acceleration request message according to the target loop path.
  • the first accelerator transmits a probe message to other accelerators in the accelerator network, and the other looper determines the target loop path of the acceleration request message, thereby enabling acceleration with multiple target accelerators in the accelerator network. Request packets to quickly determine the loop path.
  • the first accelerator can not only determine the target loop path according to its own acceleration information table, but also send the probe message to the surrounding accelerators, and the other loops determine the target loop path, which can be implemented in the accelerator network.
  • the loop path is quickly determined for the acceleration request message with multiple target accelerators, and the first accelerator determines the target loop path in multiple ways, which can improve the reliability of the system, so that the first accelerator cannot be based on its own acceleration information.
  • the target loop path can still be determined by other accelerators, and then the acceleration request message is routed according to the target loop path.
  • the method for routing messages in the accelerator network according to the embodiment of the present application is described in detail below with reference to FIG. 2 to FIG. 10. The following describes the routing message in the accelerator network according to the embodiment of the present application with reference to FIG. 11 to FIG. Method of device. It should be understood that the apparatus for routing messages described in FIG. 11 to FIG. 14 can implement the steps of the method for routing messages in the accelerator network described in FIG. 2 to FIG. 10, and the repeated description is omitted as appropriate for brevity.
  • FIG. 11 is a schematic block diagram of an apparatus for routing a message in an accelerator network according to an embodiment of the present application.
  • the apparatus of FIG. 11 is capable of implementing the various steps of the method of routing messages in the accelerator network of FIGS. 2-9. To avoid repetition, details are not described herein.
  • the device 300 includes:
  • the receiving module 310 is configured to receive an acceleration request message from the CPU, where the device 300 is any one of the accelerator networks, where the acceleration request message includes an acceleration sequence and data to be accelerated, and the acceleration sequence is used for Determining a plurality of types of acceleration for accelerating the data, and a sequence between the plurality of types of acceleration;
  • a determining module 320 configured to determine, according to the acceleration information table, a target loop path of the acceleration request message, where the acceleration information table includes location information and acceleration type information of multiple accelerators in the accelerator network, where the target The accelerator on the loop path can accelerate the acceleration request message according to the indication of the acceleration sequence;
  • the routing module 330 is configured to route the acceleration request message according to the target loop path determined by the determining module.
  • the above device 300 acquires the positions of the plurality of accelerators corresponding to the acceleration sequence from the acceleration information table. Information and acceleration type information, and then determining a target loop path with the acceleration request message according to the information, and routing the acceleration message according to the target loop path. It is possible to determine a loop path for an acceleration request message having multiple target accelerators in an accelerator network.
  • the determining module 320 is specifically configured to: acquire, according to the acceleration information table, location information of an accelerator corresponding to each acceleration type in the acceleration sequence; determine the device 300 and the The Manhattan distance of the plurality of loops composed of the accelerators corresponding to the acceleration types in the acceleration sequence determines that the shortest loop in the Manhattan distance is the target loop path.
  • the receiving module 310 is further configured to receive a first flooding message sent by the third accelerator, where the third accelerator is any other than the device 300 in the accelerator network.
  • An accelerator the first flooding message includes acceleration type information and location information of the third accelerator;
  • the storage module is configured to save acceleration type information and location information of the third accelerator in the device 300
  • the device further includes: an update module 360, configured to update the acceleration information table according to the acceleration type information and the location information of the third accelerator saved in the node information table.
  • the updating module 360 is specifically configured to: obtain acceleration type information and location information of the third accelerator from the node information table; and determine that the acceleration information table includes the third a fourth accelerator of the same type of acceleration of the accelerator; determining, according to the position of the device 300, whether the third accelerator and the fourth accelerator are in the same quadrant; if the third accelerator and the fourth The accelerator is located in the same quadrant, determining an absolute value of the abscissa and the ordinate of the third accelerator and an absolute value of the abscissa and the ordinate of the fourth accelerator; if the abscissa and the ordinate of the third accelerator are absolute The values are smaller than the absolute values of the abscissa and the ordinate of the fourth accelerator, respectively, and the position information and the acceleration type information of the third accelerator are saved in the acceleration information table, and the saved in the acceleration information table is deleted.
  • the position information and acceleration type information of the fourth accelerator are described.
  • FIG. 12 is a schematic block diagram of an apparatus for routing a message in an accelerator network according to an embodiment of the present application.
  • the apparatus of FIG. 12 is capable of implementing the steps of the method for routing messages in the accelerator network of FIG. 10. To avoid repetition, details are not described herein.
  • the device 400 includes:
  • the receiving module 410 is configured to receive an acceleration request message from the CPU, where the first accelerator is any one of the accelerator networks, and the acceleration request message includes an acceleration sequence and data to be accelerated, and the acceleration sequence is used by And indicating a plurality of types of acceleration for accelerating the data, and a sequence between the plurality of types of acceleration;
  • a sending module 420 configured to send a probe message to a second accelerator in the accelerator network, so that the second accelerator determines a target loop path of the acceleration request message according to the acceleration information table of the second accelerator
  • the probe message includes the acceleration sequence
  • the acceleration information table includes location information and acceleration type information of a plurality of accelerators in the accelerator network
  • an accelerator on the target loop path can be
  • the indication of the acceleration sequence accelerates the acceleration request message
  • the device 400 determines the target loop path of the acceleration request message by sending the probe message to other accelerators in the accelerator network, and can realize the acceleration request with multiple target accelerators in the accelerator network. The message quickly determines the loop path.
  • FIG. 13 is a schematic block diagram of an apparatus for routing a message in an accelerator network according to an embodiment of the present application.
  • the apparatus of FIG. 13 is capable of implementing the various steps of the method of routing messages in the accelerator network of FIGS. 2-9. To avoid repetition, details are not described herein.
  • the device 500 includes:
  • a memory 510 configured to store a program
  • the transceiver 520 is configured to receive an acceleration request message from the CPU, where the apparatus 300 is any one of the accelerator networks, where the acceleration request message includes an acceleration sequence and data to be accelerated, and the acceleration sequence is used for Determining a plurality of types of acceleration for accelerating the data, and a sequence between the plurality of types of acceleration;
  • the processor 530 is configured to determine, according to the acceleration information table, a target loop path of the acceleration request message, where the acceleration information table includes location information and acceleration type information of multiple accelerators in the accelerator network, where the target The accelerator on the loop path can accelerate the acceleration request message according to the indication of the acceleration sequence; and route the acceleration request message according to the target loop path.
  • the device 500 obtains location information and acceleration type information of multiple accelerators corresponding to the acceleration sequence from the acceleration information table, and then determines a target loop path with the acceleration request message according to the information, and according to the target ring.
  • the path routes the acceleration message. It is possible to determine a loop path for an acceleration request message having multiple target accelerators in an accelerator network.
  • the processor 530 is specifically configured to: acquire, according to the acceleration information table, location information of an accelerator corresponding to each acceleration type in the acceleration sequence; determine the device 300 and the The Manhattan distance of the plurality of loops composed of the accelerators corresponding to the acceleration types in the acceleration sequence determines that the shortest loop in the Manhattan distance is the target loop path.
  • the processor 530 is specifically configured to: store the target loop path in an acceleration path table of the apparatus 500, so that the apparatus 500 receives the acceleration request.
  • the target loop path is obtained from the acceleration path table after the message.
  • the processor 530 is specifically configured to: obtain acceleration type information and location information of the third accelerator from the node information table; and determine that the acceleration information table includes the third a fourth accelerator of the same type of acceleration of the accelerator; determining, according to the position of the device 300, whether the third accelerator and the fourth accelerator are in the same quadrant; if the third accelerator and the fourth The accelerator is located in the same quadrant, determining an absolute value of the abscissa and the ordinate of the third accelerator and an absolute value of the abscissa and the ordinate of the fourth accelerator; if the abscissa and the ordinate of the third accelerator are absolute The values are smaller than the absolute values of the abscissa and the ordinate of the fourth accelerator, respectively, and the position information and the acceleration type information of the third accelerator are saved in the acceleration information table, and the saved in the acceleration information table is deleted.
  • the position information and acceleration type information of the fourth accelerator are described.
  • the transceiver 520 is specifically configured to send a second flooding message to other accelerators in the accelerator network, where a flooding distance of the second flooding packet is The number of acceleration types of the accelerator network is determined, and the second flooding message includes acceleration type information and location information of the device.
  • FIG. 14 is a schematic block diagram of an apparatus for routing a message in an accelerator network according to an embodiment of the present application.
  • the apparatus of FIG. 14 is capable of implementing the various steps of the method for routing messages in the accelerator network of FIG. 10. To avoid repetition, details are not described herein.
  • the device 600 includes
  • a memory 610 configured to store a program
  • the transceiver 620 is configured to receive an acceleration request message from the CPU, where the first accelerator is any one of the accelerator networks, and the acceleration request message includes an acceleration sequence and data to be accelerated, and the acceleration sequence is used by And indicating a plurality of types of acceleration for accelerating the data, and a sequence between the plurality of types of acceleration;
  • the device 600 transmits a probe message to other accelerators in the accelerator network, and the target loop path of the acceleration request message is determined by other accelerators, so that an acceleration request with multiple target accelerators in the accelerator network can be realized.
  • the message quickly determines the loop path.
  • the size of the sequence numbers of the foregoing processes does not mean the order of execution sequence, and the order of execution of each process should be determined by its function and internal logic, and should not be applied to the embodiment of the present application.
  • the implementation process constitutes any limitation.
  • the disclosed systems, devices, and methods may be implemented in other manners.
  • the device embodiments described above are merely illustrative.
  • the division of the unit is only a logical function division.
  • there may be another division manner for example, multiple units or components may be combined or Can be integrated into another system, or some features can be ignored or not executed.
  • the mutual coupling or direct coupling or communication connection shown or discussed may be an indirect coupling or communication connection through some interface, device or unit, and may be in an electrical, mechanical or other form.
  • the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, may be located in one place, or may be distributed to multiple On the network unit. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of the embodiment.
  • the functions may be stored in a computer readable storage medium if implemented in the form of a software functional unit and sold or used as a standalone product.
  • the technical solution of the present application which is essential or contributes to the prior art, or a part of the technical solution, may be embodied in the form of a software product, which is stored in a storage medium, including
  • the instructions are used to cause a computer device (which may be a personal computer, server, or network device, etc.) to perform all or part of the steps of the methods described in various embodiments of the present application.
  • the foregoing storage medium includes: a U disk, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk, and the like. .

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Data Mining & Analysis (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请实施例提供一种加速器网络中路由报文的方法和装置,该方法包括:第一加速器从CPU接收加速请求报文,第一加速器为加速器网络中的任意一个加速器,加速请求报文包含加速序列和待加速的数据,加速序列用于指示对数据进行加速的多种加速类型,以及多种加速类型之间的先后顺序;第一加速器根据加速信息表,确定加速请求报文的目标环路路径,加速信息表包含加速器网络中的多个加速器的位置信息和加速类型信息,目标环路路径上的加速器能够按照加速序列的指示对加速请求报文进行加速处理;第一加速器按照目标环路路径路由加速请求报文。本申请实施例能够为加速器网络中具有多个目标加速器的加速请求报文确定环路路径。

Description

加速器网络中路由报文的方法和装置
本申请要求于2016年2月24日提交中国专利局、申请号为201610100867.3,发明名称为“加速器网络中路由报文的方法和装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及应用加速领域,并且更具体地,涉及一种加速器网络中路由报文的方法和装置。
背景技术
硬件加速在计算机领域和电信等领域得到了广泛的应用,目前,微软已经在数据中心部署了现场可编程门阵列(Field Programmable Gate Array,FPGA)用于加速必应搜索。如图1所示,在每个服务器上设有一个外设组件互连标准(Peripheral Component Interconnect Express,PCIe)卡,用来连接中央处理单元(Central Process Unit,CPU)和FPGA。FPGA之间再通过单独的网络互相连接组成FPGA阵列网络,多个FPGA共同完成一个如搜索、深度学习等应用的加速,完成一个应用加速的多个FPGA之间的数据转发端口由对应的CPU指定。具体来说,当数据中心的服务器接收到搜索请求后,对搜索请求的内容进行分析,然后将搜索任务分成网页搜索关键词提取、自由表达的匹配、打分等多个操作步骤,再将各个步骤对应的任务分发到FPGA中,FPGA完成各步骤的处理后将结果返回给各自的CPU,CPU再将结果发送到发起请求的CPU中进行汇聚处理。在该加速方案中,对于应用开发人员来说,需要事先得知FPGA的互联方式,并指定各FPGA处理后中间结果的转发端口。因此,在微软的FPGA加速网络中,路由转发路径是由各个应用对应的一个或多个CPU指定的,FPGA网络自身不具备路由选路功能。此外,传统的路由网络都是根据MAC地址来实现源节点到唯一目的节点的路由,对于存在多种加速类型的加速器组成的网络来说,如果只指定加速序列不指定目的加速器的位置是不能实现将相应的报文路由到多个目的加速器实现对应用的加速。
发明内容
本申请提出一种加速器网络中路由报文的方法和装置,以确定加速请求报文的目标环路路径。
第一方面,提供一种加速器网络中路由报文的方法,所述加速器网络包含相互连接的多个加速器,其中,每个加速器与一个中央处理单元CPU相连,且所述每个加速器对应一种加速类型,所述方法包括:第一加速器从CPU接收加速请求报文,所述第一加速器为所述加速器网络中的任意一个加速器,所述加速请求报文包含加速序列和待加速的数据,所述加速序列用于指示对所述数据进行加速的多种加速类型,以及所述多种加速类型之间的先后顺序;所述第一加速器根据加速信息表,确定所述加速请求报文的目标环路路径,所述加速信息表包含所述加速器网络中的多个加速器的位置信息和加速类型信息,所述目标环路路径上的加速器能够按照所述加速序列的指示对所述加速请求报文进行加速处理;所述第一加速器按照所述目标环路路径路由所述加速请求报文。在本申 请的方案中,第一加速器通过自身的加速信息表来获取与加速序列对应的多个加速器的位置信息和加速类型信息,然后根据这些信息确定加速请求报文的目标环路路径,并且按照该目标环路路径路由该加速报文。能够实现在加速器网络中为具有多个目标加速器的加速请求报文快速确定环路路径。
结合第一方面,在第一方面的第一种实现方式中,所述第一加速器根据所述加速信息表,确定所述加速请求报文的目标环路路径,包括:所述第一加速器根据加速信息表,获取与所述加速序列中各加速类型对应的加速器的位置信息;所述第一加速器确定所述第一加速器与所述加速序列中各加速类型对应的加速器组成的多个环路的曼哈顿距离,确定曼哈顿距离最短的环路为所述目标环路路径。通过选择曼哈顿距离最短的环路作为目标环路路径,能够在最短的路径内实现对加速请求报文的处理,提高了对加速请求报文处理的速度。
结合第一方面或第一方面的第一种实现方式,在第一方面的第二种实现方式中,所述第一加速器在确定所述目标环路路径之后,所述方法还包括:所述第一加速器将所述目标环路路径存储在所述第一加速器的加速路径表中,以便于所述第一加速器在接收到所述加速请求报文后从所述加速路径表获取所述目标环路路径。通过将目标环路路径存储在第一加速器节点的加速路径表中,使得第一加速器再次接收到同样的加速请求报文后能够直接从加速路径表中获取目标环路路径,减少了重复的计算过程,提高了效率。
结合第一方面以及第一方面的第一种至第二种实现方式中的任意一种,在第一方面的第三种实现方式中,所述方法还包括:所述第一加速器接收第三加速器发送的第一泛洪报文,所述第三加速器为所述加速器网络中除所述第一加速器之外的任意一个加速器,所述第一泛洪报文包含所述第三加速器的加速类型信息和位置信息;所述第一加速器将所述第三加速器的加速类型信息和位置信息保存在所述第一加速器的节点信息表中,所述第一加速器根据所述节点信息表中保存的所述第三加速器的加速类型信息和位置信息更新所述加速信息表。
结合第一方面的第三种实现方式,在第一方面的第四种实现方式中,所述第一加速器根据所述节点信息表中保存的所述第三加速器的加速类型信息和位置信息更新所述加速信息表,包括:所述第一加速器从所述节点信息表中获取第三加速器的加速类型信息和位置信息;所述第一加速器确定所述加速信息表中包含与所述第三加速器的加速类型相同的第四加速器;所述第一加速器以所述第一加速器所在的位置为坐标原点,确定所述第三加速器与所述第四加速器是否位于同一象限;如果所述第三加速器与所述第四加速器位于同一象限,确定所述第三加速器的横坐标和纵坐标的绝对值以及所述第四加速器的横坐标和纵坐标的绝对值;如果所述第三加速器的横坐标和纵坐标的绝对值分别小于所述第四加速器的横坐标和纵坐标的绝对值,将所述第三加速器的位置信息和加速类型信息保存在所述加速信息表中,删除所述加速信息表中保存的所述第四加速器的位置信息和加速类型信息。由于加速信息表的更新速度比较慢,可能小于泛洪报文的接收频率,因此,为了避免信息的丢失,在接收到周围加速器的泛洪报文后,第一加速器先将周围加速器的信息缓存在节点信息表中,然后在根据节点信息表中缓存的周围加速器的信息来更新加速信息表,这样能解决加速信息表更新较慢的问题。此外,在更新加速信息表时,通过排除被其他相同加速类型的加速器节点覆盖的加速器节点,能够有效的减少加速信息表中同样加速类型的加速器节点的数量,从而减小了根据加速信息表计算最 短环路路径的复杂度。
结合第一方面以及第一方面的第一种至第四种实现方式中的任意一种,在第一方面的第五种实现方式中,所述方法还包括:所述第一加速器向所述加速器网络中的其它加速器发送第二泛洪报文,其中,所述第二泛洪报文的泛洪距离是根据所述加速器网络的加速类型数目确定的,所述第二泛洪报文包含所述第一加速器的加速类型信息和位置信息。在加速器网络初始化时,加速器节点向周围的加速器节点通过局部泛洪的形式发送泛洪报文,能够有效的避免全局泛洪产生的巨大流量。
第二方面,提供一种加速器网络中路由报文的方法,所述加速器网络包含相互连接的多个加速器,其中,每个加速器与一个中央处理单元CPU相连,且所述每个加速器对应一种加速类型,所述方法包括:第一加速器从CPU接收加速请求报文,所述第一加速器为所述加速器网络中的任意一个加速器,所述加速请求报文包含加速序列和待加速的数据,所述加速序列用于指示对所述数据进行加速的多种加速类型,以及所述多种加速类型之间的先后顺序;所述第一加速器向所述加速器网络中的第二加速器发送探测报文,以便于所述第二加速器根据所述第二加速器的加速信息表确定所述加速请求报文的目标环路路径,其中,所述探测报文包含所述加速序列,所述加速信息表包含所述加速器网络中的多个加速器的位置信息和加速类型信息,所述目标环路路径上的加速器能够按照所述加速序列的指示对所述加速请求报文进行加速处理;所述第一加速器按照所述目标环路路径路由所述加速请求报文。在本申请的方案中,第一加速器通过向加速器网络中的其它加速器发送探测报文,由其它加速器来确定加速请求报文的目标环路路径,能够实现在加速器网络中为具有多个目标加速器的加速请求报文快速确定环路路径。
第三方面,提供一种加速器网络中路由报文的装置,所述装置包括用于执行第一方面的方法的模块。
第四方面,提供一种加速器网络中路由报文的装置,所述装置包括用于执行第二方面的方法的模块。
第五方面,提供一种加速器网络中路由报文的装置,所述装置包括存储器、处理器和收发器。所述存储器用于存储程序,所述处理器用于执行程序,所述收发器用于与加速器网络中的其它加速器进行通信。当所述程序被执行时,所述处理器执行第一方面的方法。
第六方面,提供一种加速器网络中路由报文的装置,所述装置包括存储器、处理器和收发器。所述存储器用于存储程序,所述处理器用于执行程序,所述收发器用于与加速器网络中的其它加速器进行通信。当所述程序被执行时,所述处理器执行第二方面的方法。
在某些实现方式中,所述加速器网络中的加速器是基于现场可编程门阵列FPGA的加速模块。
在某些实现方式中,所述加速器网络中的加速器包括加速模块和路由模块,加速模块用于对应用进行加速,路由模块用于对加速请求报文进行路由。
在某些实现方式中,所述第二加速器为与所述加速序列指示的多种加速类型对应的多个加速器中的一个。
在某些实现方式中,所述第二加速器根据所述第二加速器的加速路径表或者加速信息表确定所述加速请求报文的目标环路路径。
在某些实现方式中,所述第二加速器将所述探测报文转发给所述加速器网络中的其它加速器,由所述其它加速器确定所述加速请求报文的目标环路路径。
在某些实现方式中,所述加速器网络中包含的加速类型为N,所述加速器网络中每个加速器的局部泛洪范围为N,如果N比较小,则加速器网络中的每个加速器的局部泛洪范围可以设置为2*N或4*N。
在某些实现方式中,所述第一加速器在接收所述加速器网络中的其它加速器发送的泛洪报文后,将所述其它加速器的加速类型信息和位置信息保存在所述第一加速器的节点信息表中,接下来,所述第一加速器查询所述第一加速器的节点信息表和加速信息表,如果确定所述节点信息表中存在第一类加速器,且加速信息表不存在与所述第一类加速器加速类型相同的加速器,所述第一加速器将所述第一类加速器的位置信息和加速功能信息保存在所述加速信息表中。
本申请中,第一加速器从加速信息表中获取与加速序列对应的多个加速器的位置信息和加速类型信息,然后根据这些信息确定与加速请求报文的目标环路路径,并且按照该目标环路路径路由该加速报文。能够实现在加速器网络中为具有多个目标加速器的加速请求报文确定环路路径。
附图说明
图1是数据中心中部署的FPGA的结构示意图。
图2是本申请实施例的加速器网络的示意图。
图3是本申请实施例的加速器网络中的不同环路路径的示意图。
图4是本申请实施例的加速器网络中路由报文的方法的示意流程图。
图5是本申请实施例的加速器网络中路由报文的方法的示意流程图。
图6是本申请实施例的加速器网络中路由报文的方法通过避过覆盖区域中的加速器从而减少遍历路径的数量的示意图。
图7是本申请实施例的加速器网络的覆盖区域的示意图。
图8是本申请实施例的加速器网络中路由报文的方法从加速器网络中选择目标环路路径的示意图。
图9是本申请实施例的加速器网络中路由报文的方法利用探测报文获取目标环路路径的示意图。
图10是本申请实施例的加速器网络中路由报文的方法的示意流程图。
图11是本申请实施例的加速器网络中路由报文的装置的示意性框图。
图12是本申请实施例的加速器网络中路由报文的装置的示意性框图。
图13是本申请实施例的加速器网络中路由报文的装置的示意性框图。
图14是本申请实施例的加速器网络中路由报文的装置的示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。为了更好的理解本申请实施例的选择路由报文的方法,下面先对本申请实施例路由报文的方法应用的加速器网络进行详细的介绍。
图2是加速器网络的示意图,在图2中A、B、C、D表示四种不同加速类型的加速 器,加速器可以包含加速模块和路由模块,加速模块可以通过对FPGA或者类似芯片进行编程来实现,加速器可以通过PCIe卡插接在服务器上,每个加速器与一个CPU相连,各个加速器再通过单独的互联链路连接成加速器网络,具体来说,各个加速器之间可以通过2D-Mesh(二维网格),2D-Torus(二维网环)等拓扑结构的网络进行连接。加速器中的加速模块可以实现对数据请求的加速操作,路由模块可以对各个加速器之间的路由进行计算。
与传统的数据路由网络相比,本申请实施例中的加速器网络具有以下几个主要特点:
(1)目的加速节点不唯一,加速器网络中一般都会存在多个具有相同加速类型的加速器,当加速器网络中的源加速器接收到CPU发送的某种加速请求报文时,存在多个可选的目的加速器,这时可以从中选择最合适的加速器作为目的加速器,另外,对于一些应用来说需要不同类型的加速器按照一定的顺序分别对其进行加速,这时对于源加速器来说,也存在多个目的加速器。例如,某个应用需要AB两种类型的加速,那么该应用的目的加速器就有两个,分别是具有A加速类型的加速器和具有B加速类型的加速器,这时AB就表示与该加速请求对应的加速序列,也就是说在对该加速请求进行处理时先采用A类型的加速器对应用进行加速,然后再采用B类型的加速器对应用进行加速。应理解,源加速器的加速类型可以是A类型,这样在加速时由源节点实现第一次加速,如果源加速器的加速类型是C,那么在源加速器处不进行加速。
(2)环路路由,源加速器向目的节点发送加速请求报文,该报文在到达目的加速节点后需要返回源加速器,整个加速路径是一个环路路径。
(3)包含多种加速序列路由,如图3所示,如果要顺序执行ABCD四种类型的加速,那么在加速时就需要按顺序先后路由到分别具有A、B、C、D四种加速类型的加速器进行加速,然后再返回。从图3中可以看出执行ABCD四种类型的加速可以有两种方式,第一种方式是利用加速器网络中第一行的具有ABCD四种加速类型的加速器对应用进行加速,整个加速路径的总跳数是6。而第二种方式是利用加速器网络左上角的具有ABCD四种加速类型的加速器对应用进行加速,整个路径的总跳数为4。由此可见,这两种方式都可以实现对应用的加速,但是第二种方式的跳数更小(路径更短),是更优选的加速路径。
下面先结合图4对本申请实施例的加速器网络中路由报文的方法进行描述。该方法可以由加速器网络中的任意一个加速器来执行。
如图4所示,加速器接收到CPU的加速请求报文,其中,该加速请求报文指示了CPU请求的加速序列。接下来,加速器开始寻找与该加速请求报文对应的目标环路路径。首先,加速器先从其加速路径表中查看是否存在与该加速请求中的加速序列对应的目标环路路径,如果存在话就按照相应的目标环路路径对报文进行路由即可,由于加速路径表中已经预先存储了与加速序列对应的最短环路路径,这样的话就可以直接从加速路径表中获取与加速序列对应的最短环路路径。
其次,如果加速路径表中不存在与加速请求中的加速序列对应的目标环路路径,那么加速器就从其加速信息表中获取与该加速请求中的加速序列对应的多个加速器的信息,如果加速信息表中存在与该加速请求中的加速序列对应的多个加速器的位置信息,也就是说可以通过加速信息表获取上述多个加速器的位置信息,那么就可以遍历与该加 速请求中的加速序列对应的全部路径,并从中选择曼哈顿距离最短的路径作为目标环路路径L,然后按照L路由该加速请求报文,并将L存储在加速器的加速路径表中。
最后,如果加速器的加速路径表中不存在与加速序列对应的目标环路路径,并且加速器的加速信息表中也不存在与加速序列对应的多个加速器的信息,也就是说不能通过加速信息表获取上述多个加速器的全部信息,那么加速器可以向其周围的加速器发送探测报文,由其周围的加速器根据自己的加速路径表或者加速信息表确定与该加速请求对应的目标环路路径,在找到与该加速序列对应的最短路径L之后按照L路由,并将L存储到加速路径表中。
图5是本申请实施例的加速器网络中选择路由报文的方法的示意流程图。该方法可以由加速器网络中的任意一个加速器来执行。该方法包括:
110、第一加速器从CPU接收加速请求报文,第一加速器为加速器网络中的任意一个加速器,该加速请求报文包含加速序列和待加速的数据,加速序列用于指示对数据进行加速的多种加速类型,以及多种加速类型之间的先后顺序。
应理解,这里的CPU可以是与该第一加速器相连的CPU,需要加速的应用可以位于该CPU内,这样CPU就可以向第一加速器发送与该应用对应的加速请求报文。上述加速序列用于指示CPU发出的加速请求需要经过哪些类型的加速器进行加速,例如,某一加速请求报文包含的加速序列为ABCD,那么就表示CPU发出的加速请求需要先后经过ABCD四种加速类型的加速服务,也就是为了实现该加速请求,需要由加速器网络中分别具有A、B、C、D四种加速类型的加速器分别进行加速。这里的第一加速器可以是加速器网络中的任意一个加速器。
120、第一加速器根据加速信息表,确定加速请求报文的目标环路路径,该加速信息表包含加速器网络中的其它加速器的位置信息和加速类型信息,目标环路路径上的加速器能够按照加速序列的指示对加速请求报文进行加速处理。
可选地,作为一个实施例,加速器可以从加速信息表中获取加速序列中各加速类型在加速器网络对应的节点坐标信息(各加速类型可能对应一个或多个加速器),分别计算第一加速器+加速信息表记录的序列请求中各加速类型对应的加速器+第一加速器组成的环路的曼哈顿距离,选择曼哈顿距离最短的路径L作为加速请求报文的目标环路路径,并将路径L中每个加速器的信息添加到加速报文的路由头中发往相应的端口,这样当其它的加速器在获得该加速报文后就可以从报文中获取路径L,并将L保存在该加速器的加速路径表中。此外,第一加速器还可以将计算得到的目标环路路径L保存到自己的加速路径表中,当第一加速节点下次接收到同样的加速请求后可以直接从加速路径表中获取L作为目标环路路径。
上述加速信息表可以是按照加速类型索引,存储加速器网络中各加速类型对应的一个或多个加速器节点的坐标信息(存储各象限中曼哈顿距离更短的节点)。该加速信息表的具体可以是表1所示的形式。
表1加速信息表
Figure PCTCN2017074705-appb-000001
具体来说,选择曼哈顿距离最短的路径L做为当前加速序列请求的路由路径时,可以避开被覆盖区域覆盖的加速节点以减少遍历路径的数量,如图6所示,Npsi被N1si覆盖,因此,在计算加速路由路径时,不需要计算包含Npsi的路径。这样就可以在计算过程中减少计算量,能较快确定路径最短的环路路径。
上述覆盖区域的定义如下:
如图7所示,以当前加速器为坐标原点,加速器N1的覆盖区域为同一象限中横、纵坐标的绝对值都大于等于N1横、纵坐标的区域,如图7右上角所示的阴影区域为N1的覆盖区域。如果N1加速器位于以当前加速器S为坐标原点的第n象限,则以当前节点N1为坐标原点的第n象限称为关于N1的覆盖象限,例如,如图7所示,N1加速器位于以当前加速器S为坐标原点的第一象限,那么以N1为坐标原点的第一象限称为关于N1的覆盖象限。如果N1位于以当前加速器S为坐标原点的某方向坐标半轴上,则以为N1坐标原点的该方向半平面称为关于N1的覆盖半平面,上述覆盖象限和覆盖半平面统称覆盖区域。
对于当前加速器S来说,它的加速信息表中只记录不在任何覆盖区域中的加速节点信息,如图7中的N1、N3。对于N2来说,由于N1和N2都位于第一象限,N1离坐标原点的曼哈顿距离要小于N2离坐标原点的曼哈顿距离,因此,当前加速器的加速信息表中只记录N1和N3的节点信息而不记录N2的信息。具体来说,如果当前加速器接收到加速序列为NM的加速请求,那么当前加速器会选择N1和M为目标环路路径,如果当前加速器接收到加速序列为NK加速请求,那么当前加速器会选择N3和K为目标环路路径。
应理解,本申请实施例在确定环路路径时考虑的是整个加速路径路由的最小值,不是单靠每个加速器计算路径的下一跳。如图8所示,源加速器发出加速序列为DABC的加速请求,在C点D9和D6是等价的,但是D9-A8-B4-C5这条路径的曼哈顿距离最小,显然是最短路径。在当前节点的路由信息表中有D9、A8、B4的路由信息,则会选择D9-A8-B4-C5的最小环路路由。
130、第一加速器按照目标环路路径路由加速请求报文。
本申请中,第一加速器从加速信息表中获取与加速序列对应的多个加速器的位置信息和加速类型信息,然后根据这些信息确定与加速请求报文的目标环路路径,并且按照该目标环路路径路由该加速报文。能够实现在加速器网络中为具有多个目标加速器的加速请求报文确定环路路径。
可选地,作为一个实施例,当第一加速器根据第一加速器的加速信息表不能确定加速 请求报文的目标环路路径时,第一加速器还可以向加速器网络中的其它加速器发送探测报文。具体来说,如图9所示,由于局部泛洪的路由范围距离为3,E2只能感知到D9,感知不到A8。E2接收到加速序列为DA的加速请求报文后,第一加速器会发出一个探测报文,具体来说是将该探测报文分别发送到D9和D3,加速探测报文经过D9之后,会发送给A8,然后返回给E2一个反馈报文,该反馈报文包含A8的坐标信息和加速总跳数8。发送到D3的探测报文由于无法感知到任何A类型的加速器,接下来该加速探测报文就按照XY二维路由方式,顺着X7、X11、X10、D9的路径到D9,然后到A8,最后再反馈给E2一个反馈报文,该反馈报文包含A8的坐标信息和加速总跳数10。E2在收到这两个反馈报文后就可以选择跳数最小的路径作为目标环路路径,这里由于路径E2-D9-A8-E2的跳数较小,因此,可以将其作为目标环路路径,并将该目标环路路径存储到加速路径表中。
可选地,作为一个实施例,第一加速器还可以向加速器网络中的其它加速器发送探测报文,由其它加速器根据自身的加速路径表或者加速信息表获取目标环路路径,然后将该目标环路路径反馈给第一加速器。具体来说,如图9所示,当E2接收到加速序列为DA的加速请求报文后,E2可以向D3发送探测报文,由D3根据自身的加速路径表或者加速信息表来确定目标环路路径,然后D3通过反馈报文将目标环路路径反馈给E2。如果D3不能确定目标环路路径,那么D3可以将探测报文再转发给X7,由X7来确定目标环路路径,然后X7再通过反馈报文将目标环路路径反馈给E2。
可选地,作为一个实施例,第一加速器按照加速序列将目标环路路径存储在所述第一加速器的加速路径表中,以便于第一加速器在接收到加速请求报文后从加速路径表获取所述目标环路路径。
具体来说,上述加速路径表预先存储的目标环路路径可以是第一加速器在之前加速过程中计算得出的目标环路路径,也可以是第一加速器从其它加速器获得的目标环路路径。这样的话,当第一加速器在接收到同样的加速请求报文后,可以直接根据加速请求报文中指示的加速序列去加速路径表中选取与该加速序列对应的目标环路路径,减少了第一加速器的计算过程,提高了加速效率。上述加速路径表可以包含环路路径中各个加速器的坐标信息,加速类型信息以及环路路径的环路距离等信息,其具体形式可以是表2所示的形式。
表2加速路径表
加速类型 加速器坐标 环路距离
ABCD (0,0)->(0,1)->(1,0)->(1,1) 4
AEFG (0,0)->(0,4)->(1,3)->(2,3) 12
…… …… ……
可选地,作为一个实施例,在所述第一加速器接收所述加速请求报文之前,所述方法还包括:第一加速器接收加速器网络中的其它加速器中的任意一个加速器发送的泛洪报文,该泛洪报文包含所述任意一个加速器的加速类型信息和位置信息;接下来,第一加速器再将上述任意一个加速器的加速类型信息和位置信息保存在第一加速器的节点信息表中。
上述节点信息表会根据加速器的坐标(X+Y坐标)索引记录加速器网络中各个加速 器的加速类型信息,它可以在初始化的局部泛洪时填充部分加速器的信息,节点信息表还可以根据返回的加速完成报文携带的信息补充和更新其他加速器的信息,另外,该节点信息表还可以支持集中配置,它的具体形式可以如表3所示的形式。
表3节点信息表
坐标信息 加速类型 曼哈顿距离
(0,0) A 0
(0,1) B 1
(0,2) C 2
…… …… ……
(0,m) B m
(1,0) D 1
(1,1) C 2
…… …… ……
(n,m) X N+m
可选地,作为一个实施例,第一加速器接收到加速器网络中的其它加速器接点发送的泛洪报文后,查询自身的加速信息表,并根据情况是否更新加速信息表。具体来说,假如,具有M加速类型的加速器M_node接收到具有加速类型A的加速器A_node的泛洪报文Ax后,查询自身加速信息表,如果加速信息中加速类型A已有一个或多个节点A0、A1,…,An记录,那么就以节点M_node为坐标原点,判断Ax对应的A_node所在的象限中A-node是否是离M_node曼哈顿路径更短的节点,即A-node节点的各坐标绝对值是否更小,如果是,则将A-node的信息更新到加速信息表中,并删除同象限同加速类型各坐标绝对值更大的其它加速器;如果不是则不需要将其更新到加速信息表中。具体来说,如果节点信息表中的加速器a和加速信息表中的加速器的b的加速类型相同,且在第一加速器为坐标原点的坐标系中,a和b位于同一象限,那么就分别确定a、b的横坐标和纵坐标的绝对值,如果a的横坐标与纵坐标的绝对值分别小于y的横坐标与纵坐标的绝对值,那么就将a的位置信息和加速类型信息保存在第一加速器的加速信息表中。
本申请实施例中,由于加速信息表的更新过程中需要进行一系列的计算,因此加速信息表的更新速率可能要低于接收泛洪报文的速率,加速信息表如果处理不及时的话,可能会丢失一些加速器的相关信息,因此,为了解决这个问题,第一加速器在接收到其它加速器的信息后,可以先将其它加速器的信息保存在第一加速器的节点信息表中,然后再判断是否将这些其它加速器的信息更新到加速信息表中,这样就避免了因为接收泛洪报文的速率超过更新加速信息表导致加速器信息丢失的问题。
可选地,作为一个实施例,第一加速器上线后,向加速器网络中的其它加速器发送包含自身加速类型信息和坐标信息的泛洪报文。应理解,这里进行的是局部泛洪,局部泛洪的范围与加速器网络中的加速器的加速类型的类型有关,例如,加速器网络可以提供N种加速类型,那么局部泛洪的范围可以设置为N,也就是说第一加速器可以将自身的坐标信息和加速类型信息发送给与其距离为N的加速器。如果加速器网络中的加速类型较小时,可以将局部泛洪的范围设置为2*N或4*N等,以便实现在更大范围内选择最优路径。应理解,加速器网络中的任意一个加速器在上线后都可以向第一加速器一样向 周围的其他加速器发送泛洪报文。应理解,本申请实施例中在初始化时进行局部泛洪,有效的避免了全局泛洪所带来的巨大流量。
图10是本申请实施例的加速器网络中选择路由报文的方法的示意流程图。该方法可以由加速器网络中的任意一个加速器来执行。该方法包括:
210、第一加速器从CPU接收加速请求报文,第一加速器为加速器网络中的任意一个加速器,加速请求报文包含加速序列和待加速的数据,加速序列用于指示对数据进行加速的多种加速类型,以及多种加速类型之间的先后顺序。
应理解,这里的CPU可以是与该第一加速器相连的CPU,需要加速的应用可以位于该CPU内,这样CPU就可以向第一加速器发送与该应用对应的加速请求报文。
220、第一加速器根据加速信息表,确定加速请求报文的目标环路路径,加速信息表包含加速器网络中的多个加速器的位置信息和加速类型信息,目标环路路径上的加速器能够按照加速序列的指示对加速请求报文进行加速处理。
上述加速信息表可以是按照加速类型索引,存储加速器网络中各加速类型对应的一个或多个加速器节点的坐标信息(存储各象限中曼哈顿距离更短的节点)。该加速信息表的具体可以是表1所示的形式。
230、第一加速器按照目标环路路径路由加速请求报文。
在本申请中,第一加速器通过向加速器网络中的其它加速器发送探测报文,由其它加速器来确定加速请求报文的目标环路路径,能够实现在加速器网络中为具有多个目标加速器的加速请求报文快速确定环路路径。
应理解,第一加速器不仅仅可以根据自身的加速信息表来确定目标环路路径,也可以向周围的加速器发送探测报文,由其它的加速器来确定目标环路路径,能够实现在加速器网络中为具有多个目标加速器的加速请求报文快速确定环路路径,并且第一加速器确定目标环路路径的方式有多种,能够提高***的可靠性,使得第一加速器在不能根据自身的加速信息表确定目标环路路径时,仍然可以由其它的加速器来确定目标环路路径,进而按照该目标环路路径路由上述加速请求报文。
上文结合图2至图10,详细的描述了根据本申请实施例的加速器网络中路由报文的方法,下面将结合图11至图14,描述本申请实施例的加速器网络中路由报文的方法的装置。应理解,图11至图14描述的路由报文的装置能够实现图2至图10中描述的加速器网络中路由报文的方法的各个步骤,为了简洁,适当省略重复的描述。
图11是本申请实施例的加速器网络中路由报文的装置的示意性框图。图11的装置能够实现图2至图9中的加速器网络中路由报文的方法的各个步骤,为避免重复,此处不再详述。该装置300包括:
接收模块310,用于从CPU接收加速请求报文,所述装置300为所述加速器网络中的任意一个加速器,所述加速请求报文包含加速序列和待加速的数据,所述加速序列用于指示对所述数据进行加速的多种加速类型,以及所述多种加速类型之间的先后顺序;
确定模块320,用于根据加速信息表,确定所述加速请求报文的目标环路路径,所述加速信息表包含所述加速器网络中的多个加速器的位置信息和加速类型信息,所述目标环路路径上的加速器能够按照所述加速序列的指示对所述加速请求报文进行加速处理;
路由模块330,用于按照确定模块确定的所述目标环路路径路由所述加速请求报文。
本申请中,上述装置300从加速信息表中获取与加速序列对应的多个加速器的位置 信息和加速类型信息,然后根据这些信息确定与加速请求报文的目标环路路径,并且按照该目标环路路径路由该加速报文。能够实现在加速器网络中为具有多个目标加速器的加速请求报文确定环路路径。
可选地,作为一个实施例,所述确定模块320具体用于:根据所述加速信息表,获取与所述加速序列中各加速类型对应的加速器的位置信息;确定所述装置300与所述加速序列中各加速类型对应的加速器组成的多个环路的曼哈顿距离,确定曼哈顿距离最短的环路为所述目标环路路径。
可选地,作为一个实施例,所述装置300还包括:存储模块350,用于将所述目标环路路径存储在所述装置300的加速路径表中,以便于所述装置300在接收到所述加速请求报文后从所述加速路径表获取所述目标环路路径。
可选地,作为一个实施例,所述接收模块310还用于接收第三加速器发送的第一泛洪报文,所述第三加速器为所述加速器网络中除所述装置300之外的任意一个加速器,所述第一泛洪报文包含所述第三加速器的加速类型信息和位置信息;所述存储模块用于将所述第三加速器的加速类型信息和位置信息保存在所述装置300的节点信息表中;所述装置还包括:更新模块360,用于根据所述节点信息表中保存的所述第三加速器的加速类型信息和位置信息更新所述加速信息表。
可选地,作为一个实施例,所述更新模块360具体用于:从所述节点信息表中获取第三加速器的加速类型信息和位置信息;确定所述加速信息表中包含与所述第三加速器的加速类型相同的第四加速器;以所述装置300所在的位置为坐标原点,确定所述第三加速器与所述第四加速器是否位于同一象限;如果所述第三加速器与所述第四加速器位于同一象限,确定所述第三加速器的横坐标和纵坐标的绝对值以及所述第四加速器的横坐标和纵坐标的绝对值;如果所述第三加速器的横坐标和纵坐标的绝对值分别小于所述第四加速器的横坐标和纵坐标的绝对值,将所述第三加速器的位置信息和加速类型信息保存在所述加速信息表中,删除所述加速信息表中保存的所述第四加速器的位置信息和加速类型信息。
可选地,作为一个实施例,所述发送模块340还用于向所述加速器网络中的其它加速器发送第二泛洪报文,其中,所述第二泛洪报文的泛洪距离是根据所述加速器网络的加速类型数目确定的,所述第二泛洪报文包含所述装置的加速类型信息和位置信息。
图12是本申请实施例的加速器网络中路由报文的装置的示意性框图。图12的装置能够实现图10中的加速器网络中路由报文的方法的各个步骤,为避免重复,此处不再详述。该装置400包括:
接收模块410,用于从CPU接收加速请求报文,所述第一加速器为所述加速器网络中的任意一个加速器,所述加速请求报文包含加速序列和待加速的数据,所述加速序列用于指示对所述数据进行加速的多种加速类型,以及所述多种加速类型之间的先后顺序;
发送模块420,用于向所述加速器网络中的第二加速器发送探测报文,以便于所述第二加速器根据所述第二加速器的加速信息表确定所述加速请求报文的目标环路路径,其中,所述探测报文包含所述加速序列,所述加速信息表包含所述加速器网络中的多个加速器的位置信息和加速类型信息,所述目标环路路径上的加速器能够按照所述加速序列的指示对所述加速请求报文进行加速处理;
路由模块430,用于按照所述确定模块确定的目标环路路径路由所述加速请求报文。
在本申请中,装置400通过向加速器网络中的其它加速器发送探测报文,由其它加速器来确定加速请求报文的目标环路路径,能够实现在加速器网络中为具有多个目标加速器的加速请求报文快速确定环路路径。
图13是本申请实施例的加速器网络中路由报文的装置的示意性框图。图13的装置能够实现图2至图9中的加速器网络中路由报文的方法的各个步骤,为避免重复,此处不再详述。该装置500包括:
存储器510,用于存储程序;
收发器520,用于从CPU接收加速请求报文,所述装置300为所述加速器网络中的任意一个加速器,所述加速请求报文包含加速序列和待加速的数据,所述加速序列用于指示对所述数据进行加速的多种加速类型,以及所述多种加速类型之间的先后顺序;
处理器530,用于根据加速信息表,确定所述加速请求报文的目标环路路径,所述加速信息表包含所述加速器网络中的多个加速器的位置信息和加速类型信息,所述目标环路路径上的加速器能够按照所述加速序列的指示对所述加速请求报文进行加速处理;按照所述目标环路路径路由所述加速请求报文。
本申请中,上述装置500从加速信息表中获取与加速序列对应的多个加速器的位置信息和加速类型信息,然后根据这些信息确定与加速请求报文的目标环路路径,并且按照该目标环路路径路由该加速报文。能够实现在加速器网络中为具有多个目标加速器的加速请求报文确定环路路径。
可选地,作为一个实施例,所述处理器530具体用于:根据所述加速信息表,获取与所述加速序列中各加速类型对应的加速器的位置信息;确定所述装置300与所述加速序列中各加速类型对应的加速器组成的多个环路的曼哈顿距离,确定曼哈顿距离最短的环路为所述目标环路路径。
可选地,作为一个实施例,所述处理器530具体用于:将所述目标环路路径存储在所述装置500的加速路径表中,以便于所述装置500在接收到所述加速请求报文后从所述加速路径表获取所述目标环路路径。
可选地,作为一个实施例,所述收发器520具体用于:接收第三加速器发送的第一泛洪报文,所述第三加速器为所述加速器网络中除所述装置300之外的任意一个加速器,所述第一泛洪报文包含所述第三加速器的加速类型信息和位置信息;所述存储器510用于将所述第三加速器的加速类型信息和位置信息保存在所述装置500的节点信息表中;所述处理器530用于根据所述节点信息表中保存的所述第三加速器的加速类型信息和位置信息更新所述加速信息表。
可选地,作为一个实施例,所述处理器530具体用于:从所述节点信息表中获取第三加速器的加速类型信息和位置信息;确定所述加速信息表中包含与所述第三加速器的加速类型相同的第四加速器;以所述装置300所在的位置为坐标原点,确定所述第三加速器与所述第四加速器是否位于同一象限;如果所述第三加速器与所述第四加速器位于同一象限,确定所述第三加速器的横坐标和纵坐标的绝对值以及所述第四加速器的横坐标和纵坐标的绝对值;如果所述第三加速器的横坐标和纵坐标的绝对值分别小于所述第四加速器的横坐标和纵坐标的绝对值,将所述第三加速器的位置信息和加速类型信息保存在所述加速信息表中,删除所述加速信息表中保存的所述第四加速器的位置信息和加速类型信息。
可选地,作为一个实施例,所述收发器520具体用于向所述加速器网络中的其它加速器发送第二泛洪报文,其中,所述第二泛洪报文的泛洪距离是根据所述加速器网络的加速类型数目确定的,所述第二泛洪报文包含所述装置的加速类型信息和位置信息。
图14是本申请实施例的加速器网络中路由报文的装置的示意性框图。图14的装置能够实现图10中的加速器网络中路由报文的方法的各个步骤,为避免重复,此处不再详述。该装置600包括
存储器610,用于存储程序;
收发器620,用于从CPU接收加速请求报文,所述第一加速器为所述加速器网络中的任意一个加速器,所述加速请求报文包含加速序列和待加速的数据,所述加速序列用于指示对所述数据进行加速的多种加速类型,以及所述多种加速类型之间的先后顺序;
处理器630,用于向所述加速器网络中的第二加速器发送探测报文,以便于所述第二加速器根据所述第二加速器的加速信息表确定所述加速请求报文的目标环路路径,其中,所述探测报文包含所述加速序列,所述加速信息表包含所述加速器网络中的多个加速器的位置信息和加速类型信息,所述目标环路路径上的加速器能够按照所述加速序列的指示对所述加速请求报文进行加速处理;按照所述确定模块确定的目标环路路径路由所述加速请求报文。
在本申请中,装置600通过向加速器网络中的其它加速器发送探测报文,由其它加速器来确定加速请求报文的目标环路路径,能够实现在加速器网络中为具有多个目标加速器的加速请求报文快速确定环路路径。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个 网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (14)

  1. 一种加速器网络中路由报文的方法,其特征在于,所述加速器网络包含相互连接的多个加速器,其中,每个加速器与一个中央处理单元CPU相连,且所述每个加速器对应一种加速类型,所述方法包括:
    第一加速器从CPU接收加速请求报文,所述第一加速器为所述加速器网络中的任意一个加速器,所述加速请求报文包含加速序列和待加速的数据,所述加速序列用于指示对所述数据进行加速的多种加速类型,以及所述多种加速类型之间的先后顺序;
    所述第一加速器根据加速信息表,确定所述加速请求报文的目标环路路径,所述加速信息表包含所述加速器网络中的多个加速器的位置信息和加速类型信息,所述目标环路路径上的加速器能够按照所述加速序列的指示对所述加速请求报文进行加速处理;
    所述第一加速器按照所述目标环路路径路由所述加速请求报文。
  2. 如权利要求1所述的方法,其特征在于,所述第一加速器根据加速信息表,确定所述加速请求报文的目标环路路径,包括:
    所述第一加速器根据所述加速信息表,获取与所述加速序列中各加速类型对应的加速器的位置信息;
    所述第一加速器确定所述第一加速器与所述加速序列中各加速类型对应的加速器组成的多个环路的曼哈顿距离,确定曼哈顿距离最短的环路为所述目标环路路径。
  3. 如权利要求1或2所述的方法,其特征在于,所述第一加速器在确定所述目标环路路径之后,所述方法还包括:
    所述第一加速器将所述目标环路路径存储在所述第一加速器的加速路径表中,以便于所述第一加速器在接收到所述加速请求报文后从所述加速路径表获取所述目标环路路径。
  4. 如权利要求1-3中任一项所述的方法,其特征在于,所述方法还包括:
    所述第一加速器接收第三加速器发送的第一泛洪报文,所述第三加速器为所述加速器网络中除所述第一加速器之外的任意一个加速器,所述第一泛洪报文包含所述第三加速器的加速类型信息和位置信息;
    所述第一加速器将所述第三加速器的加速类型信息和位置信息保存在所述第一加速器的节点信息表中;
    所述第一加速器根据所述节点信息表中保存的所述第三加速器的加速类型信息和位置信息更新所述加速信息表。
  5. 如权利要求4所述的方法,其特征在于,所述第一加速器根据所述节点信息表中保存的所述第三加速器的加速类型信息和位置信息更新所述加速信息表,包括:
    所述第一加速器从所述节点信息表中获取第三加速器的加速类型信息和位置信息;
    所述第一加速器确定所述加速信息表中包含与所述第三加速器的加速类型相同的第四加速器;
    所述第一加速器以所述第一加速器所在的位置为坐标原点,确定所述第三加速器与所述第四加速器是否位于同一象限;
    如果所述第三加速器与所述第四加速器位于同一象限,确定所述第三加速器的横坐标和纵坐标的绝对值以及所述第四加速器的横坐标和纵坐标的绝对值;
    如果所述第三加速器的横坐标和纵坐标的绝对值分别小于所述第四加速器的横坐标 和纵坐标的绝对值,将所述第三加速器的位置信息和加速类型信息保存在所述加速信息表中,删除所述加速信息表中保存的所述第四加速器的位置信息和加速类型信息。
  6. 如权利要求1-5中任一项所述的方法,其特征在于,所述方法还包括:
    所述第一加速器向所述加速器网络中的其它加速器发送第二泛洪报文,其中,所述第二泛洪报文的泛洪距离是根据所述加速器网络的加速类型数目确定的,所述第二泛洪报文包含所述第一加速器的加速类型信息和位置信息。
  7. 一种加速器网络中路由报文的方法,其特征在于,所述加速器网络包含相互连接的多个加速器,其中,每个加速器与一个中央处理单元CPU相连,且所述每个加速器对应一种加速类型,所述方法包括:
    第一加速器从CPU接收加速请求报文,所述第一加速器为所述加速器网络中的任意一个加速器,所述加速请求报文包含加速序列和待加速的数据,所述加速序列用于指示对所述数据进行加速的多种加速类型,以及所述多种加速类型之间的先后顺序;
    所述第一加速器向所述加速器网络中的第二加速器发送探测报文,以便于所述第二加速器根据所述第二加速器的加速信息表确定所述加速请求报文的目标环路路径,其中,所述探测报文包含所述加速序列,所述加速信息表包含所述加速器网络中的多个加速器的位置信息和加速类型信息,所述目标环路路径上的加速器能够按照所述加速序列的指示对所述加速请求报文进行加速处理;
    所述第一加速器按照所述目标环路路径路由所述加速请求报文。
  8. 一种加速器网络中路由报文的装置,其特征在于,所述装置应用在所述加速器网络中,所述加速器网络包含相互连接的多个加速器,其中,每个加速器与一个中央处理单元CPU相连,且所述每个加速器对应一种加速类型,所述装置包括:
    接收模块,用于从CPU接收加速请求报文,所述装置为所述加速器网络中的任意一个加速器,所述加速请求报文包含加速序列和待加速的数据,所述加速序列用于指示对所述数据进行加速的多种加速类型,以及所述多种加速类型之间的先后顺序;
    确定模块,用于根据加速信息表,确定所述加速请求报文的目标环路路径,所述加速信息表包含所述加速器网络中的多个加速器的位置信息和加速类型信息,所述目标环路路径上的加速器能够按照所述加速序列的指示对所述加速请求报文进行加速处理;
    路由模块,用于按照所述确定模块确定的目标环路路径路由所述加速请求报文。
  9. 如权利要求8所述的装置,其特征在于,所述确定模块具体用于:
    根据所述加速信息表,获取与所述加速序列中各加速类型对应的加速器的位置信息;
    确定所述装置与所述加速序列中各加速类型对应的加速器组成的多个环路的曼哈顿距离,确定曼哈顿距离最短的环路为所述目标环路路径。
  10. 如权利要求8或9所述的装置,其特征在于,所述装置还包括:
    存储模块,用于将所述目标环路路径存储在所述装置的加速路径表中,以便于所述装置在接收到所述加速请求报文后从所述加速路径表获取所述目标环路路径。
  11. 如权利要求8-10中任一项所述的装置,其特征在于,所述接收模块还用于接收第三加速器发送的第一泛洪报文,所述第三加速器为所述加速器网络中除所述装置之外的任意一个加速器,所述第一泛洪报文包含所述第三加速器的加速类型信息和位置信息;
    所述存储模块用于将所述第三加速器的加速类型信息和位置信息保存在所述装置的节点信息表中;
    所述装置还包括:
    更新模块,用于根据所述节点信息表中保存的所述第三加速器的加速类型信息和位置信息更新所述加速信息表。
  12. 如权利要求11所述的装置,其特征在于,所述更新模块具体用于:
    从所述节点信息表中获取第三加速器的加速类型信息和位置信息;
    确定所述加速信息表中包含与所述第三加速器的加速类型相同的第四加速器;
    以所述装置所在的位置为坐标原点,确定所述第三加速器与所述第四加速器是否位于同一象限;
    如果所述第三加速器与所述第四加速器位于同一象限,确定所述第三加速器的横坐标和纵坐标的绝对值以及所述第四加速器的横坐标和纵坐标的绝对值;
    如果所述第三加速器的横坐标和纵坐标的绝对值分别小于所述第四加速器的横坐标和纵坐标的绝对值,将所述第三加速器的位置信息和加速类型信息保存在所述加速信息表中,删除所述加速信息表中保存的所述第四加速器的位置信息和加速类型信息。
  13. 如权利要求8-12中任一项所述的装置,其特征在于,所述发送模块还用于向所述加速器网络中的其它加速器发送第二泛洪报文,其中,所述第二泛洪报文的泛洪距离是根据所述加速器网络的加速类型数目确定的,所述第二泛洪报文包含所述装置的加速类型信息和位置信息。
  14. 一种加速器网络中路由报文的装置,其特征在于,所述装置应用在所述加速器网络中,所述加速器网络包含相互连接的多个加速器,其中,每个加速器与一个中央处理单元CPU相连,且所述每个加速器对应一种加速类型,所述装置包括:
    接收模块,用于从CPU接收加速请求报文,所述第一加速器为所述加速器网络中的任意一个加速器,所述加速请求报文包含加速序列和待加速的数据,所述加速序列用于指示对所述数据进行加速的多种加速类型,以及所述多种加速类型之间的先后顺序;
    发送模块,用于向所述加速器网络中的第二加速器发送探测报文,以便于所述第二加速器根据所述第二加速器的加速信息表确定所述加速请求报文的目标环路路径,其中,所述探测报文包含所述加速序列,所述加速信息表包含所述加速器网络中的多个加速器的位置信息和加速类型信息,所述目标环路路径上的加速器能够按照所述加速序列的指示对所述加速请求报文进行加速处理;
    路由模块,用于按照所述确定模块确定的目标环路路径路由所述加速请求报文。
PCT/CN2017/074705 2016-02-24 2017-02-24 加速器网络中路由报文的方法和装置 WO2017144006A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP17755835.0A EP3410300A4 (en) 2016-02-24 2017-02-24 METHOD AND DEVICE FOR ROUTING PACKAGES IN A ACCELERATOR NETWORK
US16/109,694 US10333823B2 (en) 2016-02-24 2018-08-22 Method and apparatus for routing packet in accelerator network

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201610100867.3A CN105786618B (zh) 2016-02-24 2016-02-24 加速器网络中路由报文的方法和装置
CN201610100867.3 2016-02-24

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/109,694 Continuation US10333823B2 (en) 2016-02-24 2018-08-22 Method and apparatus for routing packet in accelerator network

Publications (1)

Publication Number Publication Date
WO2017144006A1 true WO2017144006A1 (zh) 2017-08-31

Family

ID=56402389

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2017/074705 WO2017144006A1 (zh) 2016-02-24 2017-02-24 加速器网络中路由报文的方法和装置

Country Status (4)

Country Link
US (1) US10333823B2 (zh)
EP (1) EP3410300A4 (zh)
CN (1) CN105786618B (zh)
WO (1) WO2017144006A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105786618B (zh) 2016-02-24 2019-06-18 华为技术有限公司 加速器网络中路由报文的方法和装置
CN108616414B (zh) * 2017-01-26 2021-12-03 华为技术有限公司 一种处理报文的方法和服务器
CN107872545B (zh) * 2017-09-26 2022-12-06 中兴通讯股份有限公司 一种报文传输方法及装置、计算机可读存储介质
CN112486895B (zh) * 2019-09-12 2024-01-09 阿里巴巴集团控股有限公司 一种fpga芯片及其互联控制方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102104544A (zh) * 2011-01-25 2011-06-22 无锡网芯科技有限公司 硬件加速的多核处理器ip隧道分片报文流保序方法
CN103281369A (zh) * 2013-05-24 2013-09-04 华为技术有限公司 报文处理方法及广域网加速控制器woc
CN103986585A (zh) * 2014-05-13 2014-08-13 杭州华三通信技术有限公司 报文预处理方法及其装置
CN104657308A (zh) * 2015-03-04 2015-05-27 浪潮电子信息产业股份有限公司 一种用fpga实现的服务器硬件加速的方法
CN105786618A (zh) * 2016-02-24 2016-07-20 华为技术有限公司 加速器网络中路由报文的方法和装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7103065B1 (en) * 1998-10-30 2006-09-05 Broadcom Corporation Data packet fragmentation in a cable modem system
US7581033B2 (en) * 2003-12-05 2009-08-25 Unisys Corporation Intelligent network interface card (NIC) optimizations
US7457861B1 (en) * 2003-12-05 2008-11-25 Unisys Corporation Optimizing virtual interface architecture (VIA) on multiprocessor servers and physically independent consolidated NICs
US7840914B1 (en) * 2005-05-13 2010-11-23 Massachusetts Institute Of Technology Distributing computations in a parallel processing environment
US7376927B2 (en) * 2005-06-13 2008-05-20 Advanced Micro Devices, Inc. Manhattan routing with minimized distance to destination points
US8094575B1 (en) * 2009-03-24 2012-01-10 Juniper Networks, Inc. Routing protocol extension for network acceleration service-aware path selection within computer networks
US9600429B2 (en) * 2010-12-09 2017-03-21 Solarflare Communications, Inc. Encapsulated accelerator
AU2011380288B2 (en) * 2011-10-31 2015-09-17 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Apparatus and method for transferring event detector processes
US8966457B2 (en) * 2011-11-15 2015-02-24 Global Supercomputing Corporation Method and system for converting a single-threaded software program into an application-specific supercomputer
CN103139068B (zh) * 2011-11-28 2015-12-09 华为技术有限公司 转发报文的方法、路由器和***
US10161993B2 (en) * 2013-02-21 2018-12-25 Advantest Corporation Tester with acceleration on memory and acceleration for automatic pattern generation within a FPGA block
US9588937B2 (en) * 2013-02-28 2017-03-07 International Business Machines Corporation Array of processor core circuits with reversible tiers
US9130872B2 (en) * 2013-03-15 2015-09-08 Cisco Technology, Inc. Workload based service chain insertion in a network environment
US9313134B2 (en) * 2013-10-15 2016-04-12 Cisco Technology, Inc. Leveraging hardware accelerators for scalable distributed stream processing in a network environment
US9300585B2 (en) * 2013-11-15 2016-03-29 Cisco Technology, Inc. Shortening of service paths in service chains in a communications network
US9703743B2 (en) 2014-03-31 2017-07-11 Juniper Networks, Inc. PCIe-based host network accelerators (HNAS) for data center overlay network

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102104544A (zh) * 2011-01-25 2011-06-22 无锡网芯科技有限公司 硬件加速的多核处理器ip隧道分片报文流保序方法
CN103281369A (zh) * 2013-05-24 2013-09-04 华为技术有限公司 报文处理方法及广域网加速控制器woc
CN103986585A (zh) * 2014-05-13 2014-08-13 杭州华三通信技术有限公司 报文预处理方法及其装置
CN104657308A (zh) * 2015-03-04 2015-05-27 浪潮电子信息产业股份有限公司 一种用fpga实现的服务器硬件加速的方法
CN105786618A (zh) * 2016-02-24 2016-07-20 华为技术有限公司 加速器网络中路由报文的方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3410300A4 *

Also Published As

Publication number Publication date
CN105786618B (zh) 2019-06-18
EP3410300A1 (en) 2018-12-05
US20180367443A1 (en) 2018-12-20
EP3410300A4 (en) 2019-04-10
US10333823B2 (en) 2019-06-25
CN105786618A (zh) 2016-07-20

Similar Documents

Publication Publication Date Title
WO2017144006A1 (zh) 加速器网络中路由报文的方法和装置
US10659342B2 (en) Flow entry configuration method, apparatus, and system
CN109510768B (zh) 链路状态通告lsa发送方法、装置和***
US20170099194A1 (en) Service flow processing method, apparatus, and device
KR101717000B1 (ko) 패킷 처리를 위한 방법 및 장치
CN110300115A (zh) 一种基于多通道的数据传输方法以及相关装置
US10218581B2 (en) Generation of network-on-chip layout based on user specified topological constraints
CN107547391A (zh) 一种报文传输方法和装置
CN106131086B (zh) 一种访问控制列表的匹配方法及装置
US10097447B2 (en) Method, apparatus, and system for transmitting data
WO2016095201A1 (zh) 业务链的部署方法和装置
CN108259347A (zh) 一种报文传输方法和装置
US10291510B2 (en) Topology structure discovery method and device
US11070434B2 (en) Communications network node
CN110226159B (zh) 在网络交换机上执行数据库功能的方法
CN108199967A (zh) 路由处理方法及装置
US11627072B2 (en) Routing entry generation method and apparatus and trie generation method and apparatus
CN105282003A (zh) 建立隧道的方法和***以及隧道控制器和虚拟交换机
CN106202485A (zh) 数据操作方法和***
CN106878177B (zh) 一种路由处理方法及装置
CN108353335A (zh) 路由方法、装置、nfcc以及dh
WO2023093513A1 (zh) 路径感知方法、装置及***
CN108632125A (zh) 一种组播表项管理方法、装置、设备及机器可读存储介质
CN110543664B (zh) 一种面向具有特有结构fpga的工艺映射方法
WO2016127892A1 (zh) 一种基于3D-mesh网络的点对多点通信方法及通信节点

Legal Events

Date Code Title Description
NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2017755835

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2017755835

Country of ref document: EP

Effective date: 20180831

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17755835

Country of ref document: EP

Kind code of ref document: A1