Transmission device and method based on stacked network architecture, chip and electronic equipment
By introducing the SifBcn, SifCopyTrip, and SifRacPcs modules into the stacked network architecture, the problem of insufficient stacked network bandwidth was solved, and the bandwidth of the stacked network was improved.
Patent Information
- Application Number
- CN202411626052.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-11-14
- Publication Date
- 2025-11-21
- Estimated Expiration
- 2044-11-14
AI Technical Summary
Currently, the network bandwidth of stacked networks is insufficient to meet the ever-increasing demand for network bandwidth.
The transmission device, which adopts a stacked network architecture, includes a reverse congestion notification (SifBcn) module, a replication stripping (SifCopyTrip) module, a ring access controller (SifRacPcs) module, and a local segment data insertion module. By processing BCN messages and segments, the bandwidth of the stacked network is improved.
By optimizing loop operation in the stacked network architecture, the bandwidth of the stacked network is improved.
Smart Images

Figure CN119484451B_ABST
Abstract
Description
Technical Field
[0001] This disclosure pertains to the field of chip stacking, and relates to ring stacked network architecture, and particularly to transmission apparatus and methods, chips and devices based on stacked network architecture. Background Technology
[0002] Currently, the switching capacity of a single chip can no longer meet the ever-increasing demand for network bandwidth. Multiple switching chips are interconnected through stacking technology to form a large switching chip matrix. However, the network bandwidth of the current stacked network may still be insufficient to meet the network bandwidth requirements, thus there is a problem of insufficient bandwidth in the current stacked network. Summary of the Invention
[0003] The purpose of this disclosure is to provide transmission apparatus and methods, chips and devices based on stacked network architecture to solve the problem of insufficient bandwidth in current stacked networks.
[0004] In a first aspect, embodiments of this disclosure provide a transmission apparatus based on a stacked network architecture, including a reverse congestion notification (SifBcn) module, a replication stripping (SifCopyTrip) module, several ring access controllers (SifRacPcs) modules, and a local segment data insertion module. Each SifRacPcs module corresponds to a logical loop. The SifBcn module comprises: a congestion reverse notification (BCN) message acquisition unit configured to acquire the BCN message, wherein the BCN message is a BCN message in an active queue manager (AQM) or a BCN message in the SifRac module; and a BCN message processing unit configured to send a local message confirmation signal to the SifCopyTrip module based on the BCN message, and receive a local message confirmation result of the BCN message from the SifCopyTrip module. The SifCopyTrip module includes: a local message determination unit configured to receive the fragments from the SifRacPcs module and the BCN message, and process the fragments and the BCN message to obtain the data flow direction of the fragments and the local message determination result, wherein the data flow direction is either sent to a local node or not sent to a local node, and the fragments are packets segmented in the SifRacPcs module; a fragment processing unit configured to process the fragments based on the data flow direction; and a local segment data insertion module configured to insert local segment data into a stack; the SifRacPcs module is configured to obtain the data stream from the receiving side and transmit the data stream from the receiving side and the local segment data to the sending side.
[0005] In the transmission device, the processing of BCN messages and segments by the SifBcn module, the SifCopyTrip module, the SifRacPcs module, and the local segment data insertion module enables high-speed operation of loops in the stacked network architecture, thereby improving the stacked network bandwidth.
[0006] In one embodiment of this disclosure, the local message determination result is either the BCN message is a local message or the BCN message is not a local message. The BCN message processing unit is further configured to: place the BCN message into the active queue manager message queue AQM MessageFifo of the SifBcn module; when the AQM... When MessageFifo is not empty, a local message confirmation signal is sent to the SifCopyTrip module; the local message confirmation result of the BCN message is received from the SifCopyTrip module; when the BCN message is a BCN message in the AQM: if the local message confirmation result indicates that the BCN message is a local message, the relevant fields packaged in the BCN message are sent to the inbound queue scheduler IQS; otherwise, the BCN message is packaged into a BCN loop notification word and sent to the stack; when the BCN message is a BCN message in the SifRacPcs module: if the local message confirmation result indicates that the BCN message is a local message, a first stripping signal is sent to the SifRacPcs module, and the relevant fields packaged in the BCN message are sent to the IQS.
[0007] In one embodiment of this disclosure, the segment processing unit is further configured to: when the data flow is directed to a local node, send a segment copy message to the SifRacPcs module, the copy message causing the SifRacPcs module to copy the segment to the SifReorder module; when the data flow is not directed to a local node, send a second stripping signal to the SifRacPcs module; the SifReorder module is configured to receive the copied segment from the SifRacPcs module and perform realignment processing on the copied segment to obtain a transmission segment, the transmission segment being a segment realigned to a transmission order.
[0008] In one embodiment of this disclosure, the local message determination unit is further configured to: receive a segment from the SifRacPcs module and the BCN message; perform a lookup operation on the segment and the BCN message based on the destination index (destIndex), CPU destination index (cpuDestIndex), and switch port analysis index (SPAN Index) of the segment and the BCN message to obtain a first lookup result; perform a search operation on the first lookup result based on the first hash index and the second hash index of the segment and the BCN message to obtain a second lookup result; and perform parsing operation on the first lookup result and the second lookup result to obtain the data flow direction of the segment and the local message determination result.
[0009] In one embodiment of this disclosure, the local segment data insertion module includes: an inbound data queue SifIngressFifo, configured to store segment data specified for the stack in the inbound data path; and a ring selection SifRingSel module, configured to receive an availability signal sent by the SifRacPcs module and obtain credit availability information of the SifRacPcs module, and based on the availability signal, the credit availability information, and the segment data in the SifIngressFifo, obtain the segment number to be inserted and the segment data to be inserted corresponding to the SifRacPcs module, and send the segment number to be inserted and the segment data to be inserted from the SifIngressFifo to the stack link.
[0010] In one embodiment of this disclosure, the SifRacPcs module is further configured to: acquire the data stream from the receiving side; detect the BCN message and send the detected BCN message to the SifBcn module; receive a first stripping signal sent by the SifBcn module, and after receiving the first stripping signal, delete the BCN message from the stack connection; receive the copy message sent by the SifCopyTrip module, and after receiving the copy message, send the copied fragment to the SifReorder module; receive a second stripping signal sent by the SifCopyTrip module, and after receiving the second stripping signal, delete the fragment from the stack connection; send an availability signal to the SifRingSel module, the availability signal indicating that there is space to insert the local segment data into the stack; and transmit the data stream from the receiving side and the local segment data to the sending side.
[0011] In one embodiment of this disclosure, the SifRacPcs module includes: an insertion SifInsert unit configured to receive local segment data in the SifIngressFifo; a transmission queue SifTransitFifo configured to send the availability signal to the SifRingSel module when the SifTransitFifo is empty; and a multiplexer SifWordMux configured to move the local segment data in the SifInsert unit to the stack.
[0012] Secondly, embodiments of this disclosure provide a chip including the transmission device described in any of the first aspects.
[0013] Thirdly, embodiments of this disclosure provide a transmission method based on a stacked network architecture, comprising: acquiring a BCN message and a data stream from the receiving side; inserting local segment data into a stack; processing the segments and the BCN message to obtain the data flow direction of the segments and the local message determination result, wherein the segments are packets in which the data stream from the receiving side and the local segment data are cut into segments, and the data flow direction is either sent to a local node or not sent to a local node; processing the segments based on the data flow direction; and transmitting the data stream from the receiving side and the local segment data to the sending side.
[0014] Fourthly, embodiments of this disclosure provide an electronic device, including: a memory; and a processor coupled to the memory and configured to perform the transmission method according to any one of the third aspects.
[0015] As described above, the transmission apparatus and method, chip, and electronic device based on the stacked network architecture of this application have the following beneficial effects:
[0016] According to the embodiments of the present disclosure, a transmission apparatus and method, chip and electronic device based on a stacked network architecture, in the transmission apparatus, the processing of BCN messages and segments by the SifBcn module, the SifCopyTrip module, the SifRacPcs module and the local segment data insertion module enables the loop in the stacked network architecture to operate at high speed, thereby improving the stacked network bandwidth. Attached Figure Description
[0017] Figure 1 The diagram shown is a schematic representation of a transmission device based on a stacked network architecture according to an embodiment of this disclosure.
[0018] Figure 2 The diagram shown is a schematic representation of a transmission device based on a stacked network architecture according to an embodiment of this disclosure.
[0019] Figure 3The diagram shown is a structural schematic of the SifBcn module according to an embodiment of this disclosure.
[0020] Figure 4 The diagram shown is a structural schematic of the SifCopyTrip module according to an embodiment of this disclosure.
[0021] Figure 5 The diagram shown is a structural schematic of the PBC according to an embodiment of this disclosure.
[0022] Figure 6 The diagram shown is a schematic representation of the ring selection in an embodiment of this disclosure.
[0023] Figure 7 The diagram shown is a structural schematic of the SifRacPcs module in an embodiment of this disclosure.
[0024] Figure 8 The flowchart shown is a transmission method based on a stacked network architecture, which is not shown in this disclosure embodiment. Detailed Implementation
[0025] The following specific examples illustrate the implementation of this disclosure. Those skilled in the art can easily understand other advantages and effects of this disclosure from the content disclosed in this specification. This disclosure can also be implemented or applied through other different specific embodiments, and various details in this specification can also be modified or changed based on different viewpoints and applications without departing from the spirit of this disclosure. It should be noted that, unless otherwise specified, the following embodiments and features in the embodiments can be combined with each other.
[0026] It should be noted that the illustrations provided in the following embodiments are only schematic representations of the basic concept of this disclosure. Therefore, the illustrations only show the components related to this disclosure and are not drawn according to the number, shape and size of the components in actual implementation. In actual implementation, the form, quantity and proportion of each component can be arbitrarily changed, and the layout of the components may also be more complex.
[0027] The following will describe in detail the principles and implementation methods of the transmission device and transmission method based on the stacked network architecture of this disclosure, so that those skilled in the art can understand the transmission system and transmission method of this disclosure without creative effort.
[0028] Figure 1 This is a schematic diagram illustrating the structure of a transmission apparatus based on a stacked network architecture according to an embodiment of the present disclosure. Figure 1As shown, this embodiment provides a transmission device 10 based on a stacked network architecture, including a SifBcn (reverse congestion notification) module 110, a SifCopyTrip (replication stripping) module 120, several SifRacPcs (ring access controller) modules 130 and a local segment data insertion module 140, each of the SifRacPcs modules 130 corresponding to a logical loop;
[0029] The SifBcn module 110 includes:
[0030] The BCN (Backward Congestion Notification) message acquisition unit is configured to acquire the BCN message, which is either a BCN message in the AQM (Active Queue Manager) or a BCN message in the SifRacPcs module.
[0031] The BCN message processing unit is configured to send a local message determination signal to the SifCopyTrip module based on the BCN message, receive the local message determination result of the BCN message from the SifCopyTrip module, and process the BCN message based on the local message determination result.
[0032] The SifCopyTrip module 120 features:
[0033] The local message determination unit is configured to receive the fragments from the SifRacPcs module and the BCN message, and process the fragments and the BCN message to obtain the data flow direction of the fragments and the local message determination result. The data flow direction is either sent to the local node or not sent to the local node. The fragments are the packets that have been cut into segments in the SifRacPcs module.
[0034] The segmentation processing unit is configured to process the segments based on the data flow direction;
[0035] Local segment data insertion module 140 is configured to insert local segment data into the stack;
[0036] The SifRacPcs module 130 is configured to acquire the data stream from the receiving side and transmit the data stream from the receiving side and the local segment data to the sending side.
[0037] Optionally, the transmission device 10 may have eight SifRacPcs modules, each corresponding to one of the eight loops. The transmission device can be considered as an interface connecting incoming data to the stacking port and connecting the stacking port to the outgoing path.
[0038] Optionally, the message may include Ethernet messages and switch management messages. The segmentation refers to the process where the Ethernet messages and switch management messages are divided into multiple segments during transmission on the Stack Interface (SIF), each segment being 64 bytes long. If the last segment of the message is less than 64 bytes, it is padded with zeros to make it 64 bytes. The segment may include the data stream and the local segment data. The local segment data may refer to the locally located segment, and the data stream is the message data stream.
[0039] Optionally, the local message determination signal may refer to a signal used to determine whether the BCN message is local, and processing the BCN message may include searching the table in the SifCopyTrip module 120 and further parsing based on the search results.
[0040] Optionally, the stack refers to the stack in the SifRacPcs module 130, which is used to store the data stream and the local segment data. The stack link can refer to the linked list of the stack, which will not be elaborated further in this embodiment.
[0041] Optionally, please refer to Figure 2 The data stream on the receiving side can refer to the data stream received by the SifRacPcs module from the Serdes (Serializer / Deserializer). The receiving side can refer to the side of the SifRacPcs module closest to the receiving Serdes, and the sending side can refer to the side of the SifRacPcs module closest to the sending Serdes. In this embodiment, the SIF has 8 SifRacPcs modules. Figure 2 The SifRac (full ring access controller) modules each handle the data flow from four receive Serdes to four send Serdes, with each Rac having four Serdes operating at 112Gbps. This results in a total of 32 Serdes across the entire stack link set, achieving a bandwidth of 3.2TGbps. The receive Serdes correspond to... Figure 2 The Receive Serdes (received serializer / deserializer) corresponds to the Send Serdes. Figure 2 Transmit Serializers (serializers / deserializers) in the context of data transmission. Figure 2In this context, SifBcn refers to the SifBcn module, SifCopyTrip refers to the SifCopyTrip module 120, and SifRacPcs refers to the SifRacPcs module 130.
[0042] Optionally, if the local message determination result is that the BCN message is a local message or the BCN message is not a local message, the BCN message processing unit is further configured to:
[0043] The BCN message is placed into the AQM Message Fifo (Active Queue Manager Message Queue) of the SifBcn module 110;
[0044] When the AQM Message Fifo is not empty, a local message confirmation signal is sent to the SifCopyTrip module 120;
[0045] The local message determination result of receiving the BCN message from the SifCopyTrip module 120;
[0046] When the BCN message is a BCN message in the AQM:
[0047] If the local message determination result is that the BCN message is the local message, send the relevant fields packaged in the BCN message to the IQS (Ingress Queue scheduler); otherwise, package the BCN message into a BCN RingWord and send the BCN RingWord to the stack.
[0048] When the BCN message is a BCN message in the SifRacPcs module 130: if the local message determination result is that the BCN message is the local message, a first stripping signal is sent to the SifRacPcs module 130, and the relevant fields packaged in the BCN message are sent to the IQS.
[0049] Optionally, the related fields being packaged may refer to the fields associated with the BCN message, which are specifically related to the field structure of the BCN message. This embodiment will not elaborate on this further.
[0050] In one embodiment of this disclosure, when the BCN message is a BCN message in the SifRacPcs module 130: if the local message determination result indicates that the BCN message is a local message, a first stripping signal is sent to the SifRacPcs module 130, and the relevant fields packaged in the BCN message are sent to the IQS; otherwise, the BCN message is packaged into a BCN loop notification word and the BCN loop notification word is sent to the stack. The IQS corresponds to... Figure 2 IQS in the context.
[0051] In one embodiment of this disclosure, please refer to Figure 3 The SifBcn module 110 can be an interface block between the IQS and the AQM. The SifBcn module 110 obtains a BCN message from the AQM and sends it to the SifCopyStrip module 120 to determine if the BCN message is a local message. If the BCN message is a local message, the relevant fields are packaged and sent to the IQS. If the BCN is not a local message, it is packaged into a BCN RingWord and sent on the stack. If the SifRacPcs module 110 detects a BCN message, it sends it to the SifBcn module 110, and then returns to the SifCopyStrip module 120 to determine if it is a local message. If it is local, it is removed from the stack link, and the relevant fields are packaged and sent to the IQS. The AQM corresponds to... Figure 2 In AQM, the loop notification word can be a special message used to verify whether the BCN message has been correctly received and processed; this embodiment will not elaborate on this further.
[0052] SifBcn module 110 receives BCN messages from AQM --> SIF and places them into a FIFO queue (16-depth). When this FIFO is not empty, it sends a signal to SifCopyStrip block 120, notifying it to look up the GlobalToLocalPortTable. When SifCopyStrip block 120 is "idle," it can look up the BCN GlobalPortNumber (global port number) to see if the LocalPortNumber (local port number) can be found.
[0053] Figure 3 The BCN IQS Message Fifo mentioned refers to the IQS Message Fifo of the SifBcn module 110. Figure 3In this context, BCN AQM Message Fifo refers to the AQM Message Fifo (Inbound Queue Scheduler Message Queue) in the SifBcn module 110. Global To Local Port Lookup request means a global to local port lookup request, which is the local message confirmation signal mentioned above. Local means local message, From AQM means from AQM, and strip means the first stripping signal.
[0054] Optionally, the segmentation processing unit is further configured to:
[0055] When the data flow is directed to the local node, a fragment copy message is sent to the SifRacPcs module 130. The copy message is used to cause the SifRacPcs module 130 to copy the fragment to the SifReorder module.
[0056] When the data flow is not directed to the local node, a second stripping signal is sent to the SifRacPcs module 130.
[0057] The SifReorder module is configured to receive a copied fragment from the SifRacPcs module 130 and to re-align the copied fragment to obtain a transmission fragment, wherein the transmission fragment is a fragment re-aligned to a transmission order.
[0058] Optionally, the copied segment may refer to the segment copied from the segment.
[0059] In one embodiment of this disclosure, the SifReorder module receives copied segments from the SifRacPcs module 130. Segment information is stored in each memory, enabling the SifReorder module to interpret the order of segment transmission. Segments input from the SifRacPcs module 130 enter the segment storage in the segment data graph, while departing segments deviate from the segment data graph. The SifReorder module performs the function of re-aligning the received segments to a transmission order, which may refer to an ascending order of segment numbers. The SifReorder module corresponds to... Figure 2 SifReorder in [the context of SifReorder].
[0060] Optionally, the local message determination unit is further configured to:
[0061] Receive the segments from the SifRacPcs module 130 and the BCN message;
[0062] Based on the destIndex (destination index), cpuDestIndex (cpu destination index), and SPAN Index (switching port analysis index) of the segment and the BCN message, a table lookup process is performed on the segment and the BCN message to obtain the first table lookup result;
[0063] Based on the segment and the first and second hash indices of the BCN message, the first lookup result is processed to obtain the second lookup result;
[0064] The first lookup result and the second lookup result are parsed to obtain the data flow direction of the segment and the local message determination result.
[0065] In one embodiment of this disclosure, please refer to Figure 4 The table lookup process mentioned above can refer to the process of... Figure 4 The process involves searching the PortDestination Table, GlobalToLocalPortMap, CpuDestination Table, and Span Table. The first lookup result refers to the result of this search process. Based on the segment and the first and second hash indices of the BCN message, the search process on the first lookup result refers to searching the HashTable1 (first hash table) and HashTable2 (second hash table) of the Port Destination Table using hashIndex1 (first hash index) and hashIndex2 (second hash index). The second lookup result refers to the result of this search process. The second lookup result can correspond to... Figure 4 In HashTable1, the Entry (key-value pair) and HashTable2, "Resolution Logic" refers to the parsing process. Figure 4 In this context, "Copy" can refer to the copy information mentioned above, "Strip" can refer to the second stripping signal mentioned above, and "FIFO" represents a queue.
[0066] In one embodiment of this disclosure, the SifCopyStrip module 120 reports the results of all BCN GlobalToLocalPort lookups. This includes lookups performed on BCN messages received from the stack link. If a LocalPortNumber is found, all other received information is copied to the BCN IQS MessageFifo (the IQS message queue in the SifBcn module 110). The BCN message is then sent to the IQS block. If a BCN message is received from the stack link, a stripping signal is sent back to the Rac (Ring Access Control) from which it is stripped.
[0067] The SifCopyStrip module 120 uses a global-to-local port number table, which is also used by normally incoming packets to determine whether they should be copied or stripped from the stack. Normal copy / strip processes have higher priority.
[0068] The SifCopyStrip module 120 determines whether a fragment received from the stack link is sent to the local node. If a fragment is defined locally, the module sends a message to the SifRacPcs module 130 to enable the replication of the fragment to the SifReorder block. If the fragment is to be stripped, a message is returned to the SifRacPcs module 130 to grant the ring an insertion opportunity.
[0069] Optionally, the local segment data insertion module includes:
[0070] SifIngressFifo (inbound data queue) is configured to store segmented data in the inbound data path specified for the stack;
[0071] The SifRingSel module is configured to receive the availability signal sent by the SifRacPcs module 130 and obtain the credit availability information of the SifRacPcs module 130, and based on the availability signal, the credit availability information and the segment data in the SifIngressFifo, obtain the segment number to be inserted and the segment data to be inserted corresponding to the SifRacPcs module 130, and send the segment number to be inserted and the segment data to be inserted from the SifIngressFifo to the stack link.
[0072] Optionally, the segmented data stored in the SifIngressFifo can refer to the local segmented data mentioned above, the available signal can refer to a usable signal, the credit availability information can refer to usable credit information, and the segment number and segmented data to be inserted corresponding to the SifRacPcs module refer to the segment number and segmented data waiting to be inserted corresponding to the SifRacPcs module. The available signal and the credit availability information can be set according to actual conditions, which will not be elaborated in this embodiment. The SifIngressFifo corresponds to Figure 2 The SifIngressFifo module in the SifRingSel module corresponds to... Figure 2 SifRingSel in the middle.
[0073] Optionally, obtaining the segment number to be inserted and the segment data to be inserted corresponding to the SifRacPcs module 130 based on the available signal, the credit availability information, and the segment data in the SifIngressFifo may include: obtaining the full ring availability vector based on the available signal and the credit availability information; and obtaining the segment number to be inserted and the segment data to be inserted based on the full ring availability vector and the segment data in the SifIngressFifo.
[0074] In one embodiment of this disclosure, please refer to Figure 5 The SifIngressFifo stores the segments assigned to the stack in the ingress data path. This FIFO is 16 entries deep by 2048 bits wide, composed of flip-flops, allowing for eight insert selections simultaneously within a clock cycle. The SifRingSel block determines the location of the segments stored here. This module backpressures the IQS and PBC (Packet Buffer Complex) when they are full to ensure no overruns. A very deep storage space is not required because modeling shows that the chance of jumping to multiple rings in the same cycle is small. The PBC corresponds to... Figure 2 In this context, PBC, ZpCrc Check can refer to a specific polynomial CRC (Cyclic Redundancy Check) check, CRC-8Gen can refer to the generation of an 8-bit long CRC checksum, SOP indicates the start of a segment, EOP indicates the end of a segment, ERR indicates an error, SIZE indicates the size, Data indicates the data, 1R / 1W RAM refers to random access memory with one read port and one write port, and FLOPS can refer to the number of floating-point operations per second.
[0075] In one embodiment of this disclosure, please refer to Figure 6 The SifRingSel module selects an available ring from the active rings to send segment data from the SifIngressFifo to the stack links. A key point of this block is that a maximum of eight segments can be sent within a single clock cycle. This forms a set of equations to determine which segments to send where. Given the small window of opportunity on the stack links, it is crucial to stream (burst) as many segments as possible onto the stack links. The module retrieves credit availability information from all eight RACs and uses this information to determine which RACs should have their local data inserted. Figure 6 In this context, CreditAvailable can refer to credit availability information, Ok To Insert can refer to the available signal, LocalData can refer to the segment data in the SifIngressFifo, Data can refer to the segment data to be inserted, Segment Number can refer to the segment number to be inserted, Ring Available can refer to the available ring vector, Total Rings Available can refer to the available ring vector, and Segments Available can refer to the available segment data, i.e., the segments to be sent.
[0076] The data insertion algorithm is described in the pseudocode below. RacsAvailable (accessible ring controller) is the sum of all Racs with creditsAvailable (credit availability information) and insertEnable (ability to insert) set to "1".
[0077] If (#SegmentsToSend >= #RacsAvailable) (when the number of segments to be sent is greater than or equal to all available Racs)
[0078] Send Segment Data to All Available Racs
[0079] else
[0080] foreach segment(#SegementsToSend){(for each segment)
[0081] if (Rac has the highest credits available)
[0082] Send segment data to the ring with the highest credit availability.
[0083] else
[0084] Send segmented data to a random ring among those with creditAvailabletied.
[0085] The segment number needs to be dynamically incremented based on the number of races receiving segment data within a cycle. This requires a significant amount of computation, similar to determining which races receive which segment data. Once the 8-bit vector for the Racs used to receive segment data is calculated, the SegmentNumber (segment number) and data for the Sif IngressFifo are also calculated. The offset calculation is given by the following pseudocode.
[0086] for(i=1;i<8;i++){
[0087] offset[0] = 0; (the offset of index 0 is 0)
[0088] offset[i] = offset[i-1] + RacSelect[i-1] (the offset at index i is equal to the sum of the offset at index i-1 and the ring access controller selection at index i-1);
[0089] }
[0090] Then, the output of the SifRingSel block and the next state component are calculated by this pseudocode.
[0091] for(i=1;i<8;i++){
[0092] Rac[i].SegmentData = SifIngressFifo[rdptr + offset[i]]; (The segment data of the i-th Rac is equal to the segment data corresponding to the sum of the read pointer and the offset at index i in the inbound data queue)
[0093] Rac[i].SegmentNumber = SegmentNumber + offset[i]; (The segment number of the i-th Rac is equal to the sum of the segment number and the offset at index i)
[0094] Rac[i].ValidData = RacSelect[i]; (The valid data of the i-th Rac is equal to the ring access controller selection at index i)
[0095] }
[0096] SegmentNumber.Next = SegmentNumber + offset[7] + RacSelect[7]; (The next segment number is equal to the sum of the segment number, the offset at index 7, and the ring access controller selection at index 7)
[0097] rdptr.next = rdptr + offset[7] + RacSelect[7]; (The next read pointer is equal to the sum of the read pointer, the offset at index 7, and the ring access controller selection at index 7)
[0098] In most cases, the selection of the SifRingSel block will be very simple. When the SifRacPcs is already transmitting a segment, it is busy and will not actively look for new segment data. Obviously, the above logic is very simple when RacSelect (ring access controller selection) is only set to 1 or 2 bits. As things stand, it is expected that the SifRingSel block should be able to calculate RacSelect, output and next state in 1 cycle, and the worst case will be going to Rac[7].
[0099] Optionally, the SifRacPcs module 130 is further configured as follows:
[0100] Obtain the data stream from the receiving side;
[0101] The BCN message is detected, and the detected BCN message is sent to the SifBcn module;
[0102] Receive the first stripping signal sent by the SifBcn module, and after receiving the first stripping signal, remove the BCN message from the stack connection;
[0103] Receive the copy message sent by the SifCopyTrip module, and after receiving the copy message, send the copied fragment to the SifReorder module;
[0104] Receive the second stripping signal sent by the SifCopyTrip module, and after receiving the second stripping signal, remove the segment from the stack connection;
[0105] Send an availability signal to the SifRingSel module, the availability signal indicating that there is space to insert the local segment data into the stack;
[0106] The data stream from the receiving side and the local segment data are transmitted to the sending side.
[0107] Optionally, the first stripping signal refers to the signal used to remove the BCN message from the stack connection, and the second stripping signal refers to the signal used to remove the fragment from the stack connection.
[0108] Optionally, the SifRacPcs module includes:
[0109] The SifInsert unit is configured to receive local segment data from the SifIngressFifo;
[0110] The SifTransitFifo (transmission queue) is configured to send the available signal to the SifRingSel module when the SifTransitFifo is empty;
[0111] SifWordMux (multiplexer) is configured to move local segment data from the SifInsert block to the stack.
[0112] In one embodiment of this disclosure, please refer to Figure 7 SifRacPcs retrieves data from Serdes and aligns it with PCS (Physical Control Sublayer) codewords and RingWords. It interprets specific types of RingWords and sends them to the appropriate blocks for processing. Upon receiving an Idle signal, the specified RingWord or segment sends an availability signal to SifRingSel for inserting segment data onto the stack. The inserted segment data and stream data are returned via PCS codeword generation and output to the transport Serdes. The copied segments are then sent to the SifReorder block.
[0113] Figure 7The SifRacPcs block in the SIF is the "data path" part of the SIF. There are 8 SifRacPcs blocks in the SIF. Each is responsible for the data stream from 4 receive Serdes to 4 send Serdes. When a SifRacPcs sees segmented data, it extracts the fields used to determine whether the segment is needed, copies or removes them from the stack. These fields are then passed to the SifCopyTrip block for determination. The copied segment is moved from the SifTransitIfo block to the SifReorder block. When SifTransitIfo is empty, it indicates to the SifRingSel block that there is space to insert local segment data into the stack. Local segment data is moved from the SifIngressFifo block to the SifInsert block, and then from the SifWordMux block to the stack. The PMA (Physical Medium Adaptation) and PCS functions are processed in the SifPmaRcv (receiver-side physical medium adaptation layer), SifPmaXmit (transmitter-side physical medium adaptation layer), SifPcsRcv (receiver-side physical coding sublayer), and SifPcsXmit (transmitter-side physical coding sublayer) blocks. Figure 7 In this context, Sif Word MUX can represent message selection, Sif Word Parser can represent message parsing, SifDebug can represent finding and fixing defects, SifInit can represent initialization, Odd can represent odd numbers, and even can represent even numbers.
[0114] In one embodiment of this disclosure, a chip is provided, the chip including the transmission device.
[0115] In summary, in the transmission device described in this disclosure, the processing of BCN messages and segments by the SifBcn module, the SifCopyTrip module, the SifRacPcs module, and the data acquisition device enables high-speed operation of loops in the stacked network architecture, thereby improving the stacked network bandwidth.
[0116] Figure 8 This is a flowchart illustrating a transmission method based on a ring-stacked network architecture according to an embodiment of this disclosure. Figure 8 As shown, this embodiment provides a transmission method based on a ring-stacked network architecture, including:
[0117] S11, obtain the BCN message and the data stream from the receiving side.
[0118] S12, insert local segment data into the stack.
[0119] S13, process the segments and the BCN message to obtain the data flow direction and local message determination result of the segments, wherein the segments are the data stream of the receiving side and the local segment data cut into segments, and the data flow direction is sent to the local node or not sent to the local node.
[0120] S14, Based on the data flow direction, process the segment.
[0121] S15, transmit the data stream from the receiving side and the local segment data to the sending side.
[0122] The scope of protection of the transmission method described in this disclosure is not limited to the execution order of the steps listed in this embodiment. Any solution implemented by adding, subtracting, or replacing steps in the prior art based on the principles of this disclosure is included within the scope of protection of this disclosure.
[0123] In the several embodiments provided in this disclosure, it should be understood that the disclosed apparatus or method can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative. For instance, the division of modules / units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple modules or units may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection of apparatuses or modules or units may be electrical, mechanical, or other forms.
[0124] The modules / units described as separate components may or may not be physically separate. The components shown as modules / units may or may not be physical modules; that is, they may be located in one place or distributed across multiple network units. Some or all of the modules / units can be selected to achieve the objectives of the embodiments of this disclosure, depending on actual needs. For example, the functional modules / units in the various embodiments of this disclosure may be integrated into one processing module, or each module / unit may exist physically separately, or two or more modules / units may be integrated into one module / unit.
[0125] Those skilled in the art will further recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of both. To clearly illustrate the interchangeability of hardware and software, the components and steps of the various examples have been generally described in terms of functionality in the foregoing description. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this disclosure.
[0126] This embodiment provides an electronic device, which includes a memory and a processor coupled to the memory and configured to execute... Figure 8 The transmission method shown.
[0127] This disclosure also provides a computer-readable storage medium. Those skilled in the art will understand that all or part of the steps in the methods of the above embodiments can be implemented by a program instructing a processor. The program can be stored in a computer-readable storage medium, which is a non-transitory medium, such as random access memory, read-only memory, flash memory, hard disk, solid-state drive, magnetic tape, floppy disk, optical disk, and any combination thereof. The storage medium can be any available medium accessible to a computer or a data storage device such as a server or data center that integrates one or more available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., digital video disc (DVD)), or a semiconductor medium (e.g., solid-state drive (SSD)).
[0128] This disclosure also provides a computer program product comprising one or more computer instructions. When the computer instructions are loaded and executed on a computing device, all or part of the processes or functions described in this disclosure are generated. The computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions may be transmitted from one website, computer, or data center to another via wired (e.g., coaxial cable, fiber optic, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means.
[0129] When the computer program product is executed by a computer, the computer performs the method described in the foregoing method embodiments. The computer program product can be a software installation package; when the foregoing method is required, the computer program product can be downloaded and executed on the computer.
[0130] The descriptions of the processes or structures corresponding to the above figures each have their own emphasis. For parts of a process or structure that are not described in detail, please refer to the relevant descriptions of other processes or structures.
[0131] The above embodiments are merely illustrative of the principles and effects of this disclosure and are not intended to limit this disclosure. Any person skilled in the art can modify or alter the above embodiments without departing from the spirit and scope of this disclosure. Therefore, all equivalent modifications or alterations made by those skilled in the art without departing from the spirit and technical concept disclosed in this disclosure should still be covered by the claims of this disclosure.
Claims
1. A transmission device based on a stacked network architecture, characterized in that, It includes a reverse congestion notification SifBcn module, a replication stripping SifCopyTrip module, several ring access controllers SifRacPcs modules, and a local segment data insertion module. Each of the SifRacPcs modules corresponds to a logical loop. The SifBcn module has the following features: The congestion reverse notification BCN message acquisition unit is configured to acquire the BCN message, wherein the BCN message is a BCN message in the active queue manager AQM or a BCN message in the SifRacPcs module. The BCN message processing unit is configured to send a local message determination signal to the SifCopyTrip module based on the BCN message, receive the local message determination result of the BCN message from the SifCopyTrip module, and process the BCN message based on the local message determination result. The SifCopyTrip module has the following features: The local message determination unit is configured to receive the data segments and BCN messages from the SifRacPcs module, and process the data segments and BCN messages to obtain the data flow direction of the data segments and the local message determination result. The data flow direction is either sent to the local node or not sent to the local node. The data segments are... The message that has been segmented into fragments in the SifRacPcs module; The segmentation processing unit is configured to process the segments based on the data flow direction; The local segment data insertion module is configured to insert local segment data into the stack; The SifRacPcs module is configured to acquire the data stream from the receiving side and transmit the data stream from the receiving side and the local segment data to the sending side. The local message determination unit is further configured as follows: Receive the segments from the SifRacPcs module and the BCN message; Based on the segment and the destination index destIndex of the BCN message, the CPU destination index cpuDestIndex, and the switch port analysis index SPAN Index, a table lookup process is performed on the segment and the BCN message to obtain the first table lookup result; Based on the segment and the first and second hash indices of the BCN message, the first lookup result is processed to obtain the second lookup result; The first lookup result and the second lookup result are parsed to obtain the data flow direction of the segment and the local message determination result.
2. The transmission device according to claim 1, characterized in that, The local message determination result is either that the BCN message is a local message or that the BCN message is not a local message. The BCN message processing unit is further configured to: The BCN message is placed into the active queue manager message queue AQM Message Fifo of the SifBcn module; When the AQM Message Fifo is not empty, a local message confirmation signal is sent to the SifCopyTrip module; The local message determination result received from the SifCopyTrip module for the BCN message; When the BCN message is a BCN message in the AQM: If the local message determination result is that the BCN message is the local message, send the relevant fields packaged in the BCN message to the inbound queue scheduler IQS; otherwise, package the BCN message into a BCN loop notification word and send the BCN loop notification word to the stack. When the BCN message is a BCN message in the SifRacPcs module: If the local message determination result indicates that the BCN message is a local message, a first stripping signal is sent to the SifRacPcs module, and the relevant fields packaged in the BCN message are sent to the IQS.
3. The transmission device according to claim 2, characterized in that, The segmentation processing unit is further configured as follows: When the data flow is directed to the local node, a fragment copy message is sent to the SifRacPcs module. The copy message is used to cause the SifRacPcs module to copy the fragment to the SifReorder module. When the data flow is not directed to the local node, a second stripping signal is sent to the SifRacPcs module; The SifReorder module is configured to receive a copied fragment from the SifRacPcs module and re-align the copied fragment to obtain a transmission fragment, wherein the transmission fragment is a fragment re-aligned to the transmission order.
4. The transmission device according to claim 3, characterized in that, The local segment data insertion module includes: The inbound data queue SifIngressFifo is configured to store segmented data in the inbound data path specified for the stack; The ring selects the SifRingSel module, which is configured to receive the availability signal sent by the SifRacPcs module and obtain the credit availability information of the SifRacPcs module. Based on the availability signal, the credit availability information, and the segment data in the SifIngressFifo, it obtains the segment number to be inserted and the segment data to be inserted corresponding to the SifRacPcs module, and sends the segment number to be inserted and the segment data to be inserted from the SifIngressFifo to the stack link.
5. The transmission device according to claim 4, characterized in that, The SifRacPcs module is further configured as follows: Obtain the data stream from the receiving side; The BCN message is detected, and the detected BCN message is sent to the SifBcn module; Receive the first stripping signal sent by the SifBcn module, and after receiving the first stripping signal, remove the BCN message from the stack connection; Receive the copy message sent by the SifCopyTrip module, and after receiving the copy message, send the copied fragment to the SifReorder module; Receive the second stripping signal sent by the SifCopyTrip module, and after receiving the second stripping signal, remove the segment from the stack connection; Send an availability signal to the SifRingSel module, the availability signal indicating that there is space to insert the local segment data into the stack; The data stream from the receiving side and the local segment data are transmitted to the sending side.
6. The transmission device according to claim 5, characterized in that, The SifRacPcs module has the following features: A SifInsert unit is inserted and configured to receive local segment data from the SifIngressFifo; The transmission queue SifTransitFifo is configured to send the available signal to the SifRingSel module when the SifTransitFifo is empty; The multiplexer SifWordMux is configured to move local segment data from the SifInsert unit to the stack.
7. A chip, characterized in that, Includes the transmission device according to any one of claims 1-6.
8. A transmission method based on a stacked network architecture, characterized in that, include: Obtain BCN messages and the data stream from the receiving side; Insert local segment data into the stack; The segments and the BCN message are processed to obtain the data flow direction of the segments and the local message determination result. The segments are the data stream of the receiving side and the local segment data that are cut into segments. The data flow direction is either sent to the local node or not sent to the local node. Based on the data flow direction, the segments are processed; The data stream from the receiving side and the local segment data are transmitted to the sending side; Processing the data segments and the BCN messages to obtain the data flow direction and local message determination results of the data segments includes: Receive the segment and the BCN message; Based on the segment and the destination index destIndex of the BCN message, the CPU destination index cpuDestIndex, and the switch port analysis index SPAN Index, a table lookup process is performed on the segment and the BCN message to obtain the first table lookup result; Based on the segment and the first and second hash indices of the BCN message, the first lookup result is processed to obtain the second lookup result; The first lookup result and the second lookup result are parsed to obtain the data flow direction of the segment and the local message determination result.
9. An electronic device, characterized in that, include: Memory; A processor, coupled to the memory, is configured to perform the transfer method according to claim 8.
Citation Information
Patent Citations
Congestion information collection method and system, related equipment and computer storage medium
CN111865810A
Multi-access management service packet classification and priority ranking techniques
CN114173374A