High-performance Hybrid Routing Method and Device Based on IB Protocol
The hybrid routing method optimizes IBA network performance by configuring singlecast and multicast tables based on node count, reducing shared port counts and latency, and prioritizing singlecast outputs, thereby enhancing routing efficiency.
Patent Information
- Application Number
- CN202411149532.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-08-20
- Publication Date
- 2025-07-15
- Estimated Expiration
- 2044-08-20
AI Technical Summary
In IBA networks, the hardware implementation of routing structures has problems such as huge area overhead and low table search efficiency. Especially in large node networks, how to balance the speed and area of hardware implementation is the key.
By configuring unicast tables and multicast tables based on the number of mounted nodes in the target network, using the polling arbitration mechanism to query unicast and multicast table lookup requests respectively, and using multiple static random memory for different aliquots to ensure that the results of unicast and multicast table lookup are cached and output respectively, reducing the number of ports in the shared table, and improving table lookup efficiency.
Without increasing hardware area overhead, unicast table lookup efficiency is improved, table lookup delay is reduced, unicast priority output is not affected by multicast, and the performance of hybrid routing is improved.
Smart Images

Figure CN118827594B_ABST
Abstract
Description
Technical Field
[0001] This application belongs to the field of network routing, and particularly relates to a high-performance hybrid routing method and device based on the IB protocol. Background Art
[0002] A switch is an important interconnection device in a network, and the routing performance of the switch affects the operating performance of the network system. The InfiniBand (IB) protocol is a network communication standard for high-performance computing. The network topology based on the IB protocol consists of devices such as switches, routers, and terminal nodes. Routing in an IB network is the packet exchange between terminal nodes. In an InfiniBand Architecture (IBA) subnet, the Local Identifier (LID) routing method is adopted, and the routing table in the switch is queried using the Destination Local Identifier (DLID) information carried in the packet header to obtain the forwarding egress port number (Port ID) of the packet in the switch for packet exchange.
[0003] The IBA switch supports unicast forwarding and multicast forwarding. Unicast is to send a single packet to a single destination, and multicast is to send a single packet to multiple destinations. Correspondingly, the routing table is also divided into a unicast forwarding table (Linear Forwarding Table, LFT) and a multicast forwarding table (Multicast Forwarding Table, MFT). DLID is used as the index for both unicast and multicast routing queries. The lookup result of unicast is the egress Port ID of the Switch, and the lookup result of multicast is multiple Port IDs in the switch that can be used as forwarding egresses.
[0004] In an IBA network, the number of nodes determines the number of routing table entries. The routing table is implemented using Static Random-Access Memory (SRAM) in hardware. The speed of querying the routing table directly affects the packet forwarding efficiency. Ideally, each port in the switch has a set of routing tables (unicast table + multicast table), but in a large-node network, the hardware area overhead of this implementation is huge. To save area overhead, it is considered to share a routing structure among multiple ports in the Switch, but this will increase the lookup latency and reduce the lookup efficiency. How to balance area and speed is an important issue that needs to be solved in the implementation of the routing structure. Summary of the Invention
[0005] The purpose of this application is to provide a high-performance hybrid routing method and device based on the IB protocol, aiming to solve the problem of low routing efficiency in related routing structures and balance the speed and area of hardware implementation.
[0006] According to the first aspect of this application, a high-performance hybrid routing method based on the IB protocol is provided, including:
[0007] Configuring corresponding unicast tables and multicast tables based on the number of attached nodes in the target network;
[0008] Receiving unicast table lookup requests and multicast table lookup requests;
[0009] Polling and arbitrating unicast table lookup requests based on the identifier corresponding to the unicast table lookup request, querying the configured unicast table, and obtaining the corresponding unicast table lookup result;
[0010] Polling and arbitrating multicast table lookup requests based on the identifier corresponding to the multicast table lookup request, querying the configured multicast table, and obtaining the corresponding multicast table lookup result;
[0011] Caching the unicast table lookup result and the multicast table lookup result respectively, and polling and arbitrating the output to obtain routing information.
[0012] In an alternative embodiment, the configuring of the corresponding unicast table based on the number of attached nodes in the target network further includes:
[0013] When the number of attached nodes in the target network is in the first interval, forming the corresponding unicast table based on a preset multiple of static random access memories;
[0014] When the number of attached nodes in the target network is in the second interval, bisecting the preset multiple of static random access memories to configure the corresponding unicast table;
[0015] When the number of attached nodes in the target network is in the third interval, quartering the preset multiple of static random access memories to configure the corresponding unicast table;
[0016] When the number of attached nodes in the target network is in the fourth interval, octupling the preset multiple of static random access memories to configure the corresponding unicast table;
[0017] Wherein, the number of blocks of the preset multiple of static random access memories is an integer multiple of 8.
[0018] In an alternative embodiment, the polling and arbitrating of the unicast table lookup request based on the identifier corresponding to the unicast table lookup request and querying the configured unicast table further includes:
[0019] When determining that a multi - unicast look - up table request accesses the configured unicast table based on the identifier corresponding to the unicast look - up table request, perform polling arbitration on the multi - unicast look - up table request;
[0020] Query the configured unicast table according to the polling arbitration result of the multi - unicast look - up table request;
[0021] The method of polling and arbitrating the multicast look - up table request based on the identifier corresponding to the multicast look - up table request and querying the configured multicast table further includes:
[0022] When determining that a multi - multicast look - up table request accesses the corresponding multicast table based on the identifier corresponding to the multicast look - up table request, perform polling arbitration on the multi - multicast look - up table request;
[0023] Query the configured multicast table according to the polling arbitration result of the multi - multicast look - up table request.
[0024] In an alternative embodiment, the method of polling and arbitrating the unicast look - up table request based on the identifier corresponding to the unicast look - up table request and querying the configured unicast table when the number of mounted nodes in the target network is in the first interval further includes:
[0025] Based on the identifier corresponding to the unicast look - up table request, determine the number of paths of the unicast look - up table request; based on the unicast table composed of multiple preset static random access memories, read the unicast table for the multi - unicast look - up table requests according to the polling arbitration rule of authorizing one path at a time to obtain the corresponding unicast look - up table result;
[0026] When the number of mounted nodes in the target network is in the second interval, the method of polling and arbitrating the unicast look - up table request based on the identifier corresponding to the unicast look - up table request and querying the configured unicast table further includes:
[0027] Based on the identifier corresponding to the unicast look - up table request, determine the number of paths of the unicast look - up table request; based on the unicast table composed of multiple preset static random access memories bisected, read the unicast table for the multi - unicast look - up table requests according to the polling arbitration rule of authorizing two paths at a time to obtain the corresponding unicast look - up table result;
[0028] When the number of mounted nodes in the target network is in the third interval, the method of polling and arbitrating the unicast look - up table request based on the identifier corresponding to the unicast look - up table request and querying the configured unicast table further includes:
[0029] Based on the identifier corresponding to the unicast look - up table request, determine the number of paths of the unicast look - up table request; based on the unicast table composed of multiple preset static random access memories quartered, read the unicast table for the multi - unicast look - up table requests according to the polling arbitration rule of authorizing four paths at a time to obtain the corresponding unicast look - up table result;
[0030] When the number of mounted nodes in the target network is in the fourth interval, based on the identifier corresponding to the unicast table lookup request, polling and arbitrating the unicast table lookup request, and querying the configured unicast table, which further includes:
[0031] Based on the identifier corresponding to the unicast table lookup request, determine the number of paths of the unicast table lookup request; based on the unicast table composed of multiple blocks of static random access memories preset by eight equal divisions, read the unicast table for multiple unicast table lookup requests according to the polling arbitration rule of authorizing eight paths each time, and obtain the corresponding unicast table lookup result.
[0032] In an alternative embodiment, the unicast table lookup request and the multicast table lookup request are respectively cached using separate cache modules.
[0033] In an alternative embodiment, the unicast table lookup result is output based on a single cycle, and the multicast table lookup result is output based on multiple cycles.
[0034] According to the second aspect of the present application, a high-performance hybrid routing device based on the IB protocol is provided, including:
[0035] A configuration module, configured to configure a corresponding unicast table and multicast table based on the number of mounted nodes in the target network;
[0036] A receiving module, configured to receive unicast table lookup requests and multicast table lookup requests;
[0037] A query module, configured to poll and arbitrate the unicast table lookup request based on the identifier corresponding to the unicast table lookup request, query the configured unicast table, and obtain the corresponding unicast table lookup result;
[0038] The query module is further configured to poll and arbitrate the multicast table lookup request based on the identifier corresponding to the multicast table lookup request, query the configured multicast table, and obtain the corresponding multicast table lookup result;
[0039] An output module, configured to cache the unicast table lookup result and the multicast table lookup result respectively, and poll and arbitrate the output to obtain routing information.
[0040] Compared with the related art, the technical solution of the present application has at least the following advantages:
[0041] Because unicast can configure different unicast tables according to the number of nodes, which can reduce the number of ports of the shared table in as many scenarios as possible, reduce the table lookup delay, and improve the table lookup efficiency; moreover, unicast and multicast can be cached separately, which completely separates the table lookup paths of unicast and multicast. Since the number of ports shared by unicast table lookup is small and the delay is small, and the unicast output is in a single cycle and the speed is fast, this separation allows the fast and mainly system performance-affecting unicast to be output first, and the polling arbitration at the exit will not cause the multicast to starve, improving the performance of the hybrid routing.
[0042] Other features and advantages of the present application will be described in the subsequent specification, and will be partly obvious from the specification, or will be understood by implementing the present application. The objectives and other advantages of the present application can be realized and obtained through the structures and processes pointed out in the specification and the drawings. Description of the Drawings
[0043] In order to more clearly illustrate the technical solutions in the embodiments of the present application or in the related art, the following will briefly introduce the drawings required for use in the description of the embodiments or the related art. Obviously, the drawings in the following description are some embodiments of the present application. For those of ordinary skill in the art, without creative efforts, other drawings can be obtained based on these drawings.
[0044] Figure 1 It is a routing structure design architecture diagram under the actual application scenario of the related art.
[0045] Figure 2 It is a flowchart of a high-performance hybrid routing method based on the IB protocol according to an exemplary embodiment of the present application.
[0046] Figure 3 It is a basic routing structure design architecture diagram according to an exemplary embodiment of the present application.
[0047] Figure 4 It is a schematic diagram of unicast table partitioning according to an exemplary embodiment of the present application.
[0048] Figure 5 It is a routing structure design architecture diagram of non-partitioned unicast table according to an exemplary embodiment of the present application.
[0049] Figure 6 It is a routing structure design architecture diagram of 2-way partitioned unicast table according to an exemplary embodiment of the present application.
[0050] Figure 7 It is a routing structure design architecture diagram of 4-way partitioned unicast table according to an exemplary embodiment of the present application.
[0051] Figure 8 It is a routing structure design architecture diagram of 8-way partitioned unicast table according to an exemplary embodiment of the present application.
[0052] Figure 9 It is a schematic diagram of the process of a high-performance hybrid routing method based on the IB protocol according to an exemplary embodiment of the present application. Detailed Embodiments
[0053] To make the objectives, technical solutions, and advantages of the embodiments of this application clearer, the following will clearly and completely describe the technical solutions in the embodiments of this application with reference to the accompanying drawings in the embodiments of this application. Obviously, the described embodiments are some, but not all, of the embodiments of this application. All other embodiments obtained by those of ordinary skill in the art based on the embodiments in this application without creative efforts shall fall within the scope of protection of this application.
[0054] The method provided by this application can be implemented in the following terminal environment. The terminal may include one or more of the following components: a processor, a memory, and a display screen. Among them, at least one instruction is stored in the memory, and the instruction is loaded and executed by the processor to implement the method described in the following embodiments.
[0055] The processor may include one or more processing cores. The processor uses various interfaces and circuits to connect various parts within the entire terminal. By running or executing instructions, programs, code sets, or instruction sets stored in the memory, and by calling data stored in the memory, it executes various functions of the terminal and processes data.
[0056] The memory may include a random access memory (RAM) and may also include a read-only memory (ROM). The memory can be used to store instructions, programs, code, code sets, or instructions.
[0057] The display screen is used to display the user interfaces of various application programs.
[0058] In addition, those skilled in the art can understand that the structure of the above terminal does not constitute a limitation on the terminal. The terminal may include more or fewer components, or combine certain components, or have different component arrangements. For example, the terminal may also include components such as a radio frequency circuit, an input unit, a sensor, an audio circuit, and a power supply, which will not be elaborated here.
[0059] In related technologies, a switch is an important interconnection device in a network, and the routing performance of the switch will affect the operating performance of the network system. The InfiniBand (IB) protocol is a network communication standard for high-performance computing. The network topology based on the IB protocol consists of devices such as switches, routers, and terminal nodes. Routing in an IB network is the packet exchange between terminal nodes. In an IBA subnet, the LID routing method is adopted, and the routing table in the switch is queried using the DLID information carried in the data packet header to obtain the forwarding egress port number of the data packet in the switch for packet exchange.
[0060] The IBA switch supports unicast forwarding and multicast forwarding. Unicast means sending a single data packet to a single destination, while multicast means sending a single data packet to multiple destinations. Correspondingly, the routing table is also divided into a unicast forwarding table (also known as a linear forwarding table) and a multicast forwarding table. Both unicast and multicast routing lookups use the DLID as an index. The lookup result for unicast is the exit PortID of the switch, and the lookup result for multicast is multiple Port IDs within the switch that can serve as forwarding exits.
[0061] In the IBA network, the number of nodes determines the number of entries in the routing table, and the routing table is implemented using SRAM in hardware. The speed of querying the routing table directly affects the packet forwarding efficiency. Ideally, each port in the switch has a set of routing tables (unicast table + multicast table), but in a large-node network, this implementation incurs a huge hardware area overhead. To save area overhead, it is considered to share a routing structure among multiple ports in the Switch, but this will increase the lookup latency and reduce the lookup efficiency. How to balance area and speed is an important issue that needs to be solved in the implementation of the routing structure.
[0062] Consider the implementation of a routing structure in a practical application scenario: The IB network supports at least 100K nodes (Switches, Routers, HCA / TCAs, etc.) to access, and the switch consists of 40 ports. Based on LID routing, it supports unicast and multicast forwarding. If the capacity of the linear forwarding table is greater than 100K, the unicast address is set to 112K, and the multicast address is set to 16K. In hardware implementation, considering the area overhead, a method of sharing a routing structure among 8 ports is adopted. Each routing structure stores a unicast table and a multicast table, and both routing tables are implemented using SRAM. Considering the line width limitation at the interface between the routing structure and the upstream module, the unicast lookup result is output in a single cycle, and the multicast lookup result is output in multiple cycles (12 cycles). Since multiple ports access the routing table jointly, an arbiter is set, and caches are set at the entrance and exit respectively. Based on the above requirements and conditions, a routing structure in a practical application scenario as Figure 1 shown is designed. As Figure 1 shown, the input is the lookup requests of 8 ports, and the output is the lookup results returned to 8 ports. 8 FIFOs at the entrance cache 8-way lookup requests, and 8 FIFOs at the exit cache 8-way lookup results. 8 ports share a unicast table and a multicast table. Both unicast and multicast lookups have an arbiter and use round-robin arbitration. The unicast lookup result is the Port ID and is output in a single cycle. The multicast lookup result is the bitmap of the Port ID and is output in multiple cycles. Therefore, a state machine is set at the exit to ensure the correct sequential output of unicast and multicast. However, in Figure 1The routing structure shown in the figure still has the following problems: (1) Multiple ports share one table, which will lead to low table lookup efficiency; (2) In the unicast-multicast hybrid routing scenario, multicast will block unicast table lookup because the multicast table lookup results need to be output in multiple cycles.
[0063] Based on the above analysis, the present application proposes a high-performance hybrid routing method and device based on the IB protocol, including: configuring corresponding unicast tables and multicast tables based on the number of mounted nodes in the target network; receiving unicast table lookup requests and multicast table lookup requests; based on the identifier corresponding to the unicast table lookup request, polling the arbitration unicast table lookup request, querying the configured unicast table, and obtaining the corresponding unicast table lookup result; based on the identifier corresponding to the multicast table lookup request, polling the arbitration multicast table lookup request, querying the configured multicast table, and obtaining the corresponding multicast table lookup result; caching the unicast table lookup result and the multicast table lookup result respectively, and polling the arbitration output to obtain routing information. The technical solution of the present application is based on the number of mounted nodes in the network, configuring the corresponding unicast table and multicast table, and then performing routing. Based on the number of mounted nodes in the target network, the number of ports of the shared table can be reduced in more scenarios, the table lookup delay can be reduced, the table lookup efficiency can be improved, and the routing efficiency can be improved.
[0064] See also Figure 2 The high-performance hybrid routing method based on the IB protocol provided by the present application may include:
[0065] Step 201: Based on the number of mounted nodes in the target network, configure corresponding unicast tables and multicast tables.
[0066] In a specific example, Figure 3 This is a basic routing structure proposed in this application. In this routing structure, a cache module is set at each port at the entrance to cache the input table lookup request, where unicast and multicast table lookup requests are cached separately, corresponding to each cache module IN Unicast FIFO and Multicast FIFO in BUFFER. When FIFO is not empty, pop up the table lookup request for subsequent table lookup operation.
[0067] For example, when multiple lookup requests access the routing table at the same time, polling arbitration is required. Unicast arbiter and multicast arbiter are set in front of the unicast table and multicast table respectively. Only the requests successfully authorized by the arbitrator will read the routing table SRAM. The multicast arbitration is an 8 to 1 arbitrator. To cooperate with the segmentation of the unicast SRAM, the unicast arbitration is divided into four modes: 8 to 1, 4 to 1, 2 to 1 and direct (no arbitration).
[0068] Among them, the multicast table is implemented by a piece of SRAM, using the DLID as an index, and the result of looking up the multicast table is a bitmap of a group of Port IDs.
[0069] Based on the above description, combined with Figure 3 the routing structure shown, in some specific embodiments, further configuring the corresponding unicast table based on the number of attached nodes in the target network may include:
[0070] When the number of attached nodes in the target network is in the first interval, configuring the corresponding unicast table based on a preset multiple pieces of static random access memory, where the first interval may be, for example, (56K, 112K];
[0071] When the number of attached nodes in the target network is in the second interval, bisecting the preset multiple pieces of static random access memory to configure the corresponding unicast table, where the second interval may be, for example, (28K, 56K];
[0072] When the number of attached nodes in the target network is in the third interval, quartering the preset multiple pieces of static random access memory to configure the corresponding unicast table, where the third interval may be, for example, (14K, 28K];
[0073] When the number of attached nodes in the target network is in the fourth interval, octupling the preset multiple pieces of static random access memory to configure the corresponding unicast table, where the fourth interval may be, for example, [0K, 14K];
[0074] Among them, the number of the preset multiple pieces of static random access memory can be an integer multiple of 8.
[0075] That is to say, the implementation specification of the unicast table can specifically be 112K table entries, corresponding to the maximum number of attached nodes supported by the network being 112K, and the table entry content is the packet forwarding egress Port ID. The implementation of the unicast table can specifically be composed of 8 pieces of SRAM, and the depth of each piece of SRAM can be 14K. To cope with the scenario of fewer attached nodes, after power-on, as described in the above embodiments of configuring the corresponding unicast table, the implementation specification of the unicast table can be statically configured, and the unicast table can be bisected, quartered, or octupled according to the number of nodes, and the content of the sub-tables is exactly the same.
[0076] Combined with the above embodiments of configuring the corresponding unicast table, in a specific example, the sub-table rule can be as follows:
[0077] (1) 56K < number of nodes ≤ 112K:
[0078] Do not divide the table. There is only one unicast table with a depth of 112K, and 8 ports share one unicast table to configure the corresponding unicast table, as Figure 4 (1) shows;
[0079] (2) 28K < number of nodes ≤ 56K
[0080] Bisect it into two unicast tables, each table with a depth of 56K, and four ports share one unicast table to configure the corresponding unicast table, as Figure 4 shown in (2);
[0081] (3) 14K < number of nodes ≤ 28K
[0082] Quadrisect it into four unicast tables, each table with a depth of 28K, and two ports share one unicast table to configure the corresponding unicast table, as Figure 4 shown in (3);
[0083] (4) number of nodes ≤ 14K
[0084] Octisect it into eight unicast tables, each table with a depth of 14K, and each port has its own exclusive unicast table to configure the corresponding unicast table, as Figure 4 shown in (4).
[0085] Step 202: Receive unicast look-up table requests and multicast look-up table requests.
[0086] Step 203: Based on the identifier corresponding to the unicast look-up table request, poll and arbitrate the unicast look-up table request, query the configured unicast table, and obtain the corresponding unicast look-up table result. Among them, the identifier corresponding to the unicast look-up table request can be the DLID corresponding to the unicast look-up table request.
[0087] In some embodiments, based on the identifier corresponding to the unicast look-up table request, polling and arbitrating the unicast look-up table request, and querying the configured unicast table may further include:
[0088] When it is determined that multiple unicast look-up table requests access the configured unicast table based on the identifier corresponding to the unicast look-up table request, poll and arbitrate the multiple unicast look-up table requests;
[0089] Query the configured unicast table according to the polling arbitration result of the multiple unicast look-up table requests.
[0090] Step 204: Based on the identifier corresponding to the multicast look-up table request, poll and arbitrate the multicast look-up table request, query the configured multicast table, and obtain the corresponding multicast look-up table result. Among them, the identifier corresponding to the multicast look-up table request can be the DLID corresponding to the multicast look-up table request.
[0091] In some embodiments, based on the identifier corresponding to the multicast look-up table request, polling and arbitrating the multicast look-up table request, and querying the configured multicast table may further include:
[0092] When, based on the identifier corresponding to the multicast table lookup request, it is determined that the multiple multicast table lookup requests access the corresponding multicast table, perform polling arbitration on the multiple multicast table lookup requests;
[0093] Query the configured multicast table according to the polling arbitration result of the multiple multicast table lookup requests.
[0094] Specifically, in some embodiments, when the number of mounted nodes in the target network is in the first interval, based on the identifier corresponding to the unicast table lookup request, perform polling arbitration on the unicast table lookup request and query the configured unicast table, which further includes:
[0095] Based on the identifier corresponding to the unicast table lookup request, determine the number of paths of the unicast table lookup request; based on the unicast table composed of multiple preset static random access memories, perform polling arbitration on the multiple unicast table lookup requests according to the polling arbitration rule of authorizing one path at a time to read the unicast table and obtain the corresponding unicast table lookup result;
[0096] When the number of mounted nodes in the target network is in the second interval, based on the identifier corresponding to the unicast table lookup request, perform polling arbitration on the unicast table lookup request and query the configured unicast table, which further includes:
[0097] Based on the identifier corresponding to the unicast table lookup request, determine the number of paths of the unicast table lookup request; based on the unicast table composed of multiple preset static random access memories bisected, perform polling arbitration on the multiple unicast table lookup requests according to the polling arbitration rule of authorizing two paths at a time to read the unicast table and obtain the corresponding unicast table lookup result;
[0098] When the number of mounted nodes in the target network is in the third interval, based on the identifier corresponding to the unicast table lookup request, perform polling arbitration on the unicast table lookup request and query the configured unicast table, which further includes:
[0099] Based on the identifier corresponding to the unicast table lookup request, determine the number of paths of the unicast table lookup request; based on the unicast table composed of multiple preset static random access memories quartered, perform polling arbitration on the multiple unicast table lookup requests according to the polling arbitration rule of authorizing four paths at a time to read the unicast table and obtain the corresponding unicast table lookup result;
[0100] When the number of mounted nodes in the target network is in the fourth interval, based on the identifier corresponding to the unicast table lookup request, perform polling arbitration on the unicast table lookup request and query the configured unicast table, which further includes:
[0101] Based on the identifier corresponding to the unicast table lookup request, determine the number of paths of the unicast table lookup request; based on the unicast table composed of multiple preset static random access memories octupled, perform polling arbitration on the multiple unicast table lookup requests according to the polling arbitration rule of authorizing eight paths at a time to read the unicast table and obtain the corresponding unicast table lookup result.
[0102] In a specific example, in combination with the above implementation structure description and the unicast SRAM partitioning strategy, that is, the strategy for configuring the corresponding unicast table, the routing structure of the present application in scenarios with different numbers of mounted nodes is introduced respectively, as Figures 5 to 8 shown. It should be further noted that Figures 5 to 8 is obtained by Figure 3 different configurations. The specification of the unicast table is selected as static, that is, only one specification can be selected after power-on and cannot be switched, and can be reconfigured and selected after the system is reset.
[0103] Specifically, when the number of mounted nodes in the network is greater than 56K, a configuration without table division is adopted, as Figure 5 shown. At this time, the unicast arbiter switches to an 8-to-1 arbiter to arbitrate the 8-way unicast table lookup requests input, and the authorized one reads the unicast table SRAM. 8 SRAMs form a unicast table, which is encapsulated with a set of read / write interfaces. Before looking up the table, the DLID needs to be decoded into the SRAM address, and the result after looking up the table is sent to the OUT of the corresponding port _ BUFFER. When configuring the table by software, there is only one set of register interfaces, and the register space is the maximum capacity of the unicast table. The hardware maps the registers to the SRAM according to different configuration specifications. Multicast is not affected by the number of nodes. The depth of the multicast table is always 16K, meeting the maximum multicast table lookup requirements. There is only one implementation method of 8-to-1 for the multicast arbiter. The implementation of this configuration is the same as that of the Figure 1 corresponding solution in the related technology in terms of the sharing strategy.
[0104] Exemplarily, when the number of mounted nodes in the network is between 28K and 56K, a configuration with the unicast table bisected is adopted, as Figure 6 shown. At this time, the unicast arbiter switches to two 4-to-1 arbiters to respectively arbitrate the table lookup requests for port 0-3 and port 4-7, and 2 requests will be authorized to read the corresponding unicast tables respectively. 8 SRAMs form 2 unicast tables. SRAM 0-3 forms unicast table LFT0, and SRAM 4-7 forms unicast table LFT1, which are encapsulated with two sets of read / write interfaces. The read operations of the two unicast tables are independent. Before looking up the table, the DLID needs to be decoded into the SRAM address, and the two results after looking up the table are sent to the OUT of the corresponding two ports _ BUFFER. When configuring the table by software, write to the register through the bus, and the hardware writes the content written to the register into the two unicast tables at the same time to ensure that the contents of the two tables are exactly the same. Multicast is not affected by the number of nodes. In this scenario, the number of ports of the shared table is reduced by half compared with the Figure 1 corresponding solution, and the table lookup speed is doubled under full load.
[0105] Exemplarily, when the number of mounted nodes in the network is between 14K and 28K, a configuration of quadruple-equal division of the unicast table is adopted, as Figure 7 shown. At this time, the unicast arbiter switches to 4 arbiters of 2 to 1, which respectively arbitrate the table lookup requests of port0 port1, port2 port3, port4 port5, and port6 port7. There are a total of 4 paths, which are independent of each other. 4 requests will be authorized to read 4 unicast tables respectively. 8 SRAMs form 4 unicast tables LFT0 to 3. Two SRAMs are packaged with a set of read / write interfaces. The read operations of the 4 unicast tables are independent. Before looking up the table, the DLID needs to be decoded into the SRAM address. The 4 results after looking up the table are sent to the OUT of the corresponding 4 ports _ BUFFER. When configuring the table by software, write to the register through the bus. The hardware will write the content written to the register into the 4 unicast tables at the same time to ensure that the content of the 4 tables is exactly the same. Multicast is not affected by the number of nodes. In this scenario, every 2 ports share a table. The number of ports sharing the table is Figure 1 75% less than that of the corresponding solution, and the table lookup speed is increased by 75% under full load.
[0106] Exemplarily, when the number of mounted nodes in the network is less than 14K, a configuration of octuple-equal division of the unicast table is adopted, as Figure 8 shown. At this time, the unicast arbiter switches to the direct-through mode, that is, arbitration is no longer required. The table lookup requests of 8 ports are directly connected to 8 unicast tables. The 8 table lookup paths are independent of each other. As long as there is a request, the table can be directly looked up. Each SRAM is a unicast table, with a total of 8 tables, no packaging is required. Each table uses the read / write interface of the SRAM itself. The DLID can be used as an index to directly look up the table. The 8 tables correspond to 8 output caches OUT _ BUFFER. When configuring the table by software, write to the register through the bus. The hardware will write the content written to the register into the 8 unicast tables at the same time to ensure that the content of the 8 tables is exactly the same. Multicast is not affected by the number of nodes. In this scenario, each port has a dedicated unicast table. Compared with Figure 1 the corresponding solution, when the number of nodes is small, when full load, the delay of sharing does not need to be considered for table lookup, and only the delay of table lookup operation and path is consumed.
[0107] Step 205: Cache the unicast table lookup result and the multicast table lookup result respectively, and poll and arbitrate the output to obtain the routing information.
[0108] In some embodiments, the unicast look-up table request and the multicast look-up table request are cached using separate cache modules respectively. The unicast look-up table result is output based on a single cycle, and the multicast look-up table result is output based on multiple cycles.
[0109] Specifically, at the exit in Figure 3 each Port corresponds to a piece of output cache OUT _ BUFFER for caching the look-up table result, where the look-up table results of unicast and multicast are cached separately. An exit arbiter out arbiter is set before the exit to perform polling arbitration on the cached unicast and multicast look-up table results output. The unicast result is output in a single cycle, and the multicast result is output in multiple cycles.
[0110] Figure 9 is a schematic flow diagram of an exemplary high-performance hybrid routing method based on the IB protocol provided by this application. As Figure 9 shown, in a specific example, the high-performance hybrid routing method based on the IB protocol may specifically include: first, the CPU executes step 201 to configure the routing table. After the configuration is completed, the unicast table and the multicast table are updated, the unicast look-up table request and the multicast look-up table request input by the upstream module are received, and it is determined whether it is a unicast look-up table request or a multicast look-up table request according to the identifier corresponding to the request, and the request is cached separately, and polling arbitration is performed to query the corresponding unicast table and multicast table. After that, the look-up table result is cached, and polling arbitration output is performed to obtain the corresponding routing information.
[0111] The high-performance hybrid routing method based on the IB protocol proposed by this application has at least the following advantages compared with the related technology:
[0112] Since the unicast table is composed of multiple SRAMs of the same size, different unicast tables can be configured according to the number of nodes. In this way, the number of ports of the shared table can be reduced in as many scenarios as possible, the look-up table delay can be reduced, and the look-up table efficiency can be improved; moreover, in IN _ BUFFER and OUT _ BUFFER, unicast and multicast can be cached separately. In this way, the look-up table paths of unicast and multicast are completely separated. Since the number of ports shared by the unicast look-up table is small and the delay is small, and the unicast output is in a single cycle and the speed is fast, this separation can give priority to the output of the fast and mainly system performance-impacting unicast, and the polling arbitration at the exit will not cause the multicast to starve, improving the performance of the hybrid routing. In this application, 8 pieces are specifically used for description, but the number of SRAMs used is not limited.
[0113] Table 1 lists the benefit effects of the exemplary technical solutions of this application compared with the Figure 1 corresponding related solutions in
[0114] Table 1
[0115]
[0116] As shown in Table 1, m is the entry width of the unicast table; T represents the period, and t is the internal logical time of the routing structure, that is, the time required for unicast table lookup without contention.
[0117] The full unicast table lookup delay listed in Table 1 refers to the delay time of the slowest response when 8 ports simultaneously perform only unicast table lookup for a long time, and the data in the table is the table lookup requests at the same moment. This is the time spent participating in arbitration due to sharing. In this application, the method of Memory segmentation is adopted, and multiple unicast routing tables are configured in the scenario of few nodes. Compared with Figure 1 the corresponding scheme, the delay is the same as that of the corresponding scheme without table segmentation, and the table lookup delay is less in the case of table segmentation. Figure 1
[0118] Mixed table lookup refers to the mixed table lookup of unicast and multicast. Only the table lookup response delay in one case is exemplified in the table:
[0119] Only 1 port, port 0, sends the following table lookup request sequence:
[0120] Multicast 0, Multicast 1, Multicast 2, Unicast 0, Unicast 1, Multicast 3, Multicast 4, Unicast 2,...
[0121] Figure 1 The response order of the corresponding scheme is:
[0122] Multicast 0, Multicast 1, Multicast 2, Unicast 0, Unicast 1, Multicast 3, Multicast 4, Unicast 2,...
[0123] The response order of this application is:
[0124] Multicast 0, Unicast 0, Multicast 1, Unicast 1, Multicast 2, Unicast 2, Multicast 3, Multicast 4,...
[0125] The unicast output requires 1T, and the multicast output requires 12T. Except for the first output that requires t, there is no interval between subsequent outputs.
[0126] The mixed table lookup delay listed in Table 1 is the delay required for looking up tables for Unicast 0, Unicast 1, and Unicast 2 in the above sequence. This example is only for intuitively showing the beneficial effect of this application. To control variables, only the case of single-port table lookup is listed to compare and illustrate the benefits of separate caching under mixed table lookup. It holds for other scenarios and other sequences. Only the unicast table lookup data is listed in the table. Compared with Figure 1 the corresponding scheme, the unicast output will not be blocked by multicast.
[0127] From the comparison data in the table, it can be seen that the routing structure of this application improves the unicast look-up efficiency in multiple scenarios, balances the speed and area of hardware implementation, and improves system performance without increasing the overhead of hardware area (mainly Memory area).
[0128] Correspondingly, this application also exemplarily provides a high-performance hybrid routing device based on the IB protocol, including:
[0129] A configuration module, configured to configure corresponding unicast tables and multicast tables based on the number of attached nodes in the target network;
[0130] A receiving module, configured to receive unicast look-up requests and multicast look-up requests;
[0131] A query module, configured to poll and arbitrate unicast look-up requests based on the identifier corresponding to the unicast look-up request, query the configured unicast table, and obtain the corresponding unicast look-up result;
[0132] The query module is further configured to poll and arbitrate multicast look-up requests based on the identifier corresponding to the multicast look-up request, query the configured multicast table, and obtain the corresponding multicast look-up result;
[0133] An output module, configured to cache the unicast look-up result and the multicast look-up result respectively, and poll and arbitrate the output to obtain routing information.
[0134] The above device can be implemented by the high-performance hybrid routing method based on the IB protocol provided in the embodiments of the first aspect. The specific implementation manner can refer to the description in the embodiments of the first aspect and will not be elaborated here.
[0135] It can be understood that the circuit structures, names, and parameters described in the above embodiments are only examples. Those skilled in the art can also easily combine and adjust the structural features of the above multiple embodiments according to the usage needs, and should not limit the concept of this application to the specific details of the above examples.
[0136] Although this application has been described in detail with reference to the foregoing embodiments, those of ordinary skill in the art should understand that they can still modify the technical solutions described in the foregoing embodiments, or perform equivalent replacements for some of the technical features; and these modifications or replacements do not make the essence of the corresponding technical solutions deviate from the spirit and scope of the technical solutions of the embodiments of this application.
Claims
1. A high-performance hybrid routing method based on the IB protocol, characterized in that Including: Configuring corresponding unicast tables and multicast tables based on the number of attached nodes in the target network; Receiving unicast table look-up requests and multicast table look-up requests; Based on the identifier corresponding to the unicast table look-up request, polling and arbitrating the unicast table look-up request, querying the configured unicast table, and obtaining the corresponding unicast table look-up result; Based on the identifier corresponding to the multicast table look-up request, polling and arbitrating the multicast table look-up request, querying the configured multicast table, and obtaining the corresponding multicast table look-up result; Caching the unicast table look-up result and the multicast table look-up result respectively, and polling and arbitrating the output to obtain routing information; Among them, the configuring the corresponding unicast table based on the number of attached nodes in the target network further includes: When the number of attached nodes in the target network is in the first interval, forming the corresponding unicast table based on a plurality of preset static random access memories; When the number of attached nodes in the target network is in the second interval, bisecting the plurality of preset static random access memories and configuring the corresponding unicast table; When the number of attached nodes in the target network is in the third interval, dividing the plurality of preset static random access memories into four equal parts and configuring the corresponding unicast table; When the number of attached nodes in the target network is in the fourth interval, dividing the plurality of preset static random access memories into eight equal parts and configuring the corresponding unicast table; Among them, the number of the plurality of preset static random access memories is an integer multiple of 8.
2. The high-performance hybrid routing method based on the IB protocol according to claim 1, wherein The polling and arbitrating the unicast table look-up request based on the identifier corresponding to the unicast table look-up request and querying the configured unicast table further includes: When it is determined, based on the identifier corresponding to the unicast table look-up request, that multiple unicast table look-up requests access the configured unicast table, polling and arbitrating the multiple unicast table look-up requests; Querying the configured unicast table according to the polling arbitration result of the multiple unicast table look-up requests; The polling and arbitrating the multicast table look-up request based on the identifier corresponding to the multicast table look-up request and querying the configured multicast table further includes: When it is determined, based on the identifier corresponding to the multicast table look-up request, that multiple multicast table look-up requests access the corresponding multicast table, polling and arbitrating the multiple multicast table look-up requests; Querying the configured multicast table according to the polling arbitration result of the multiple multicast table look-up requests.
3. The high-performance hybrid routing method based on the IB protocol according to claim 1 or 2, characterized in that When the number of attached nodes in the target network is in the first interval, the polling and arbitrating the unicast table look-up request based on the identifier corresponding to the unicast table look-up request and querying the configured unicast table further includes: Based on the identifier corresponding to the unicast table look-up request, determining the number of unicast table look-up requests; based on the unicast table formed by a plurality of preset static random access memories, reading the unicast table for the multiple unicast table look-up requests according to the polling arbitration rule of authorizing one path each time, and obtaining the corresponding unicast table look-up result; When the number of attached nodes in the target network is in the second interval, the polling and arbitrating the unicast table look-up request based on the identifier corresponding to the unicast table look-up request and querying the configured unicast table further includes: Based on the identifier corresponding to the unicast table look-up request, determining the number of unicast table look-up requests; based on the unicast table formed by bisecting the plurality of preset static random access memories, reading the unicast table for the multiple unicast table look-up requests according to the polling arbitration rule of authorizing two paths each time, and obtaining the corresponding unicast table look-up result; When the number of attached nodes in the target network is in the third interval, based on the identifier corresponding to the unicast look-up table request, polling arbitration is performed on the unicast look-up table request to query the configured unicast table, which further includes: Based on the identifier corresponding to the unicast look-up table request, determining the number of paths of the unicast look-up table request; based on a unicast table composed of multiple preset static random access memories divided into four equal parts, performing polling arbitration on the multiple unicast look-up table requests according to the polling arbitration rule of authorizing four paths at a time to read the unicast table, and obtaining the corresponding unicast look-up table result; When the number of attached nodes in the target network is in the fourth interval, based on the identifier corresponding to the unicast look-up table request, polling arbitration is performed on the unicast look-up table request to query the configured unicast table, which further includes: Based on the identifier corresponding to the unicast look-up table request, determining the number of paths of the unicast look-up table request; based on a unicast table composed of multiple preset static random access memories divided into eight equal parts, performing polling arbitration on the multiple unicast look-up table requests according to the polling arbitration rule of authorizing eight paths at a time to read the unicast table, and obtaining the corresponding unicast look-up table result.
4. The high-performance hybrid routing method based on the IB protocol according to claim 1, wherein The unicast look-up table request and the multicast look-up table request are respectively cached using separate cache modules.
5. The high-performance hybrid routing method based on the IB protocol according to claim 1, wherein The unicast look-up table result is output based on a single cycle, and the multicast look-up table result is output based on multiple cycles.
6. A high-performance hybrid routing device based on the IB protocol, characterized in that, It includes: A configuration module for configuring the corresponding unicast table and multicast table based on the number of attached nodes in the target network; A receiving module for receiving unicast look-up table requests and multicast look-up table requests; A query module for polling and arbitrating the unicast look-up table request based on the identifier corresponding to the unicast look-up table request and querying the configured unicast table to obtain the corresponding unicast look-up table result; The query module is further configured to: poll and arbitrate the multicast look-up table request based on the identifier corresponding to the multicast look-up table request and query the configured multicast table to obtain the corresponding multicast look-up table result; An output module for caching the unicast look-up table result and the multicast look-up table result respectively and performing polling arbitration for output to obtain routing information; Wherein, the configuration module is further configured to: When the number of attached nodes in the target network is in the first interval, configuring the corresponding unicast table based on multiple preset static random access memories; When the number of attached nodes in the target network is in the second interval, dividing the multiple preset static random access memories into two equal parts and configuring the corresponding unicast table; When the number of attached nodes in the target network is in the third interval, dividing the multiple preset static random access memories into four equal parts and configuring the corresponding unicast table; When the number of attached nodes in the target network is in the fourth interval, dividing the multiple preset static random access memories into eight equal parts and configuring the corresponding unicast table; Wherein, the number of the multiple preset static random access memories is an integer multiple of 8.
7. The high-performance hybrid routing device based on the IB protocol according to claim 6, characterized in that The query module is further configured to: When it is determined based on the identifier corresponding to the unicast look-up table request that multiple unicast look-up table requests access the configured unicast table, performing polling arbitration on the multiple unicast look-up table requests; Querying the configured unicast table according to the polling arbitration result of the multiple unicast look-up table requests to obtain the corresponding unicast look-up table result; When it is determined based on the identifier corresponding to the multicast look-up table request that multiple multicast look-up table requests access the corresponding multicast table, performing polling arbitration on the multiple multicast look-up table requests; According to the polling arbitration result of the multicast table lookup request, query the configured multicast table to obtain the corresponding multicast table lookup result.
8. The high-performance hybrid routing device based on the IB protocol according to claim 6 or 7, characterized in that The query module is further configured to: When the number of mounted nodes in the target network is in the first interval, determine the number of unicast table lookup requests based on the identifier corresponding to the unicast table lookup request; Based on the unicast table composed of a preset multiple of static random access memories, read the unicast table for multiple unicast table lookup requests according to the polling arbitration rule of authorizing one of them each time to obtain the corresponding unicast table lookup result; When the number of mounted nodes in the target network is in the second interval, determine the number of unicast table lookup requests based on the identifier corresponding to the unicast table lookup request; Based on the unicast table composed of a preset multiple of static random access memories divided into two equal parts, read the unicast table for multiple unicast table lookup requests according to the polling arbitration rule of authorizing two of them each time to obtain the corresponding unicast table lookup result; When the number of mounted nodes in the target network is in the third interval, determine the number of unicast table lookup requests based on the identifier corresponding to the unicast table lookup request; Based on the unicast table composed of a preset multiple of static random access memories divided into four equal parts, read the unicast table for multiple unicast table lookup requests according to the polling arbitration rule of authorizing four of them each time to obtain the corresponding unicast table lookup result; When the number of mounted nodes in the target network is in the fourth interval, determine the number of unicast table lookup requests based on the identifier corresponding to the unicast table lookup request; Based on the unicast table composed of a preset multiple of static random access memories divided into eight equal parts, read the unicast table for multiple unicast table lookup requests according to the polling arbitration rule of authorizing eight of them each time to obtain the corresponding unicast table lookup result.
9. The high-performance hybrid routing device based on the IB protocol according to claim 6, characterized in that, The unicast table lookup request and the multicast table lookup request are respectively cached using separate cache modules.
10. The high-performance hybrid routing device based on the IB protocol according to claim 6, characterized in that, The unicast table lookup result is output based on a single cycle, and the multicast table lookup result is output based on multiple cycles.
Citation Information
Patent Citations
Cache management method and cache management apparatus for Ethernet switching chip
CN102857446A
Method and system to process a multicast request pertaining to a packet received at an interconnect device
US7058053B1