Transmission device and method based on stacked network architecture, chip and electronic equipment
By designing a transmission device including SifBcn, SifCopyTrip, SifRacPcs and local data insertion module in the stacked network, the problem of insufficient bandwidth of the stacked network is solved, and higher network bandwidth and faster data transmission are achieved.
Patent Information
- Application Number
- CN202411626052.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-11-14
- Publication Date
- 2025-02-18
- Estimated Expiration
- 2044-11-14
AI Technical Summary
The existing stacked networks have insufficient network bandwidth and are difficult to meet the growing network bandwidth demand.
A transmission device based on stacking network architecture is designed, including reverse congestion notification SifBcn module, copy-stripping SifCopyTrip module, ring access controller SifRacPcs module and local data insertion module. By processing BCN messages and fragments, stacking is improved. The loop operation in the network architecture is high-speed, thereby increasing network bandwidth.
Through the processing of this device, the loop in the stacked network architecture can be operated at a high speed, significantly improving the bandwidth capability of the stacked network, and meeting the growing network bandwidth requirements.
Smart Images

Figure CN119484451A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure belongs to the field of chip stacking, and relates to a ring stacking network architecture, and in particular to a transmission device and method, a chip, and equipment based on the stacking network architecture. Background Art
[0002] At present, the switching capacity of a single chip can no longer meet the growing demand for network bandwidth. Multiple switching chips are interconnected through stacking technology to form a large switching chip matrix. Since the network bandwidth of the current stacked network may still be difficult to meet the network bandwidth requirements, there is currently a problem of insufficient stacked network bandwidth. Summary of the invention
[0003] The purpose of the present disclosure is to provide a transmission device and method, a chip and a device based on a stacking network architecture, so as to solve the problem of insufficient bandwidth of the current stacking network.
[0004] In a first aspect, an embodiment of the present disclosure provides a transmission device based on a stacked network architecture, including a reverse congestion notification SifBcn module, a copy stripping SifCopyTrip module, a plurality of ring access controllers SifRacPcs modules and a local segment data insertion module, each of the SifRacPcs modules corresponds to a logical loop, and the SifBcn module has: a congestion reverse notification BCN message acquisition unit, configured to acquire the BCN message, the BCN message is a BCN message in an active queue manager AQM or a BCN message in the SifRac module; 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, and based on the local message determination result, processing the BCN message; the SifCopyTrip module comprises: a local message determination unit, configured to receive the fragments and the BCN message of the SifRacPcs module, 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 sent to the local node or not sent to the local node, and the fragment is the message divided into fragments in the SifRacPcs module; a fragment processing unit, configured to process the fragment based on the data flow direction; a local segment data insertion module, configured to insert the local segment data into the stack; the SifRacPcs module is configured to obtain the data flow on the receiving side, and transmit the data flow on the receiving side and the local segment data to the sending side.
[0005] In the transmission device, the processing of BCN messages and fragments by the SifBcn module, the SifCopyTrip module, the SifRacPcs module and the local segment data insertion module can enable the loop in the stacked network architecture to run at high speed, thereby improving the stacked network bandwidth.
[0006] In one embodiment of the present disclosure, the local message determination result is that the BCN message is the local message or the BCN message is not the local message, and the BCN message processing unit is further configured to: put 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 the BCN message in the AQM: if the local message determination result is that the BCN message is the 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 the BCN loop notification word is sent to the stack; when the BCN message is the BCN message in the SifRacPcs module: 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, and the relevant fields packaged in the BCN message are sent to the IQS.
[0007] In one embodiment of the present disclosure, the fragment processing unit is further configured to: when the data flow is sent to a local node, send a fragment copy message to the SifRacPcs module, and the copy message is used to enable the SifRacPcs module to copy the fragment to the reordering SifReorder module; when the data flow is not sent to the local node, send a second stripping signal to the SifRacPcs module; the SifReorder module is configured to receive the copied fragments of the SifRacPcs module, and realign the copied fragments to obtain transmission fragments, and the transmission fragments are fragments realigned to the transmission order.
[0008] In one embodiment of the present disclosure, the local message determination unit is further configured to: receive the fragments of the SifRacPcs module and the BCN message; perform table lookup processing on the fragments and the BCN message based on the destination index destIndex, cpu destination index cpuDestIndex and switching port analysis index SPAN Index of the fragments and the BCN message to obtain a first table lookup result; perform lookup processing on the first table lookup result based on the first hash index and the second hash index of the fragments and the BCN message to obtain a second table lookup result; perform parsing processing on the first table lookup result and the second table lookup result to obtain the data flow direction of the fragments and the local message determination result.
[0009] In one embodiment of the present disclosure, the local segment data insertion module includes: an inbound data queue SifIngressFifo, configured to store segment data designated to the stack in the inbound data path; a ring selection SifRingSel module, configured to receive an available signal sent by the SifRacPcs module and obtain credit availability information of the SifRacPcs module, and based on the available 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 the present disclosure, the SifRacPcs module is further configured to: obtain the data stream on the receiving side; detect the BCN message and send the detected BCN message to the SifBcn module; receive the 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 copy fragment to the SifReorder module; receive the second stripping signal sent by the SifCopyTrip module, and after receiving the second stripping signal, delete the fragment from the stack connection; send an available signal to the SifRingSel module, and the available signal is used to indicate that there is space to insert the local segment data into the stack; transmit the data stream on the receiving side and the local segment data to the sending side.
[0011] In one embodiment of the present disclosure, the SifRacPcs module comprises: an insertion SifInsert unit, configured to receive the local segment data in the SifIngressFifo; a transmission queue SifTransitFifo, configured to send the available 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] In a second aspect, an embodiment of the present disclosure provides a chip, comprising the transmission device described in any one of the first aspects.
[0013] In the third aspect, an embodiment of the present disclosure provides a transmission method based on a stacked network architecture, including: obtaining a BCN message and a data flow on a receiving side; inserting local segment data into a stack; processing the fragments and the BCN message to obtain the data flow direction of the fragments and the local message determination result, the fragments being the data flow on the receiving side and the local segment data being cut into fragments, and the data flow direction being sent to a local node or not to a local node; processing the fragments based on the data flow direction; transmitting the data flow on the receiving side and the local segment data to a sending side.
[0014] In a fourth aspect, an embodiment of the present disclosure provides an electronic device, comprising: a memory; and a processor, coupled to the memory and configured to execute the transmission method according to any one of the third aspects.
[0015] As described above, the transmission device and method, chip and electronic device based on the stacked network architecture of the present application have the following beneficial effects:
[0016] According to the transmission device and method, chip and electronic device based on the stacked network architecture of the embodiments of the present disclosure, in the transmission device, the processing of BCN messages and fragments by the SifBcn module, the SifCopyTrip module, the SifRacPcs module and the local segment data insertion module can enable the loop in the stacked network architecture to run at high speed, thereby improving the stacked network bandwidth. BRIEF DESCRIPTION OF THE DRAWINGS
[0017] Figure 1 Shown is a schematic diagram of the structure of a transmission device based on a stacked network architecture according to an embodiment of the present disclosure.
[0018] Figure 2 Shown is a schematic diagram of the structure of a transmission device based on a stacked network architecture according to an embodiment of the present disclosure.
[0019] Figure 3Shown is a schematic diagram of the structure of the SifBcn module of an embodiment of the present disclosure.
[0020] Figure 4 Shown is a schematic diagram of the structure of the SifCopyTrip module of an embodiment of the present disclosure.
[0021] Figure 5 Shown is a schematic diagram of the structure of the PBC according to an embodiment of the present disclosure.
[0022] Figure 6 Shown is a schematic diagram of ring selection according to an embodiment of the present disclosure.
[0023] Figure 7 Shown is a schematic diagram of the structure of the SifRacPcs module of the embodiment of the present disclosure
[0024] Figure 8 A flow chart showing a transmission method based on a stacked network architecture according to an embodiment of the present disclosure. DETAILED DESCRIPTION
[0025] The following is an explanation of the embodiments of the present disclosure by specific examples, and those skilled in the art can easily understand other advantages and effects of the present disclosure from the contents disclosed in this specification. The present disclosure can also be implemented or applied through other different specific embodiments, and the details in this specification can also be modified or changed in various ways based on different viewpoints and applications without departing from the spirit of the present disclosure. It should be noted that the following embodiments and features in the embodiments can be combined with each other without conflict.
[0026] It should be noted that the illustrations provided in the following embodiments are only used to illustrate the basic concept of the present disclosure in a schematic manner, and thus the illustrations only show components related to the present disclosure rather than being drawn according to the number, shape and size of components in actual implementation. In actual implementation, the type, quantity and proportion of each component may be changed arbitrarily, and the component layout may also be more complicated.
[0027] The principles and implementation methods of the transmission device based on the stacked network architecture and the transmission method based on the stacked network architecture of the embodiments of the present disclosure will be explained in detail below, so that those skilled in the art can understand the transmission system and transmission method of the embodiments of the present disclosure without creative work.
[0028] Figure 1 is a schematic diagram showing the structure of a transmission device 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 (copy stripping) module 120, a plurality of SifRacPcs (ring access controller) modules 130 and a local segment data insertion module 140, each of the SifRacPcs modules 130 corresponds to a logical loop;
[0029] The SifBcn module 110 has:
[0030] A BCN (Backward Congestion Notification) message acquisition unit, configured to acquire the BCN message, wherein the BCN message is a BCN message in an AQM (Active Queue Manager) or a BCN message in the SifRacPcs module;
[0031] A BCN message processing unit configured to send a local message determination signal to the SifCopyTrip module based on the BCN message, receive a 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 has:
[0033] a local message determination unit configured to receive the fragments of the SifRacPcs module and the BCN message, and process the fragments and the BCN message to obtain a data flow direction of the fragments and a local message determination result, wherein the data flow direction is sent to a local node or is not sent to a local node, and the fragments are messages in the SifRacPcs module that are cut into fragments;
[0034] A fragment processing unit, configured to process the fragments based on the data flow direction;
[0035] A local segment data insertion module 140, configured to insert the local segment data into the stack;
[0036] The SifRacPcs module 130 is configured to obtain a data stream on a receiving side, and transmit the data stream on the receiving side and the local segment data to a sending side.
[0037] Optionally, the transmission device 10 may have 8 SifRacPcs modules, corresponding to 8 loops respectively. The transmission device may be regarded as an interface connecting incoming data to a stack port and connecting a stack port to an outgoing path.
[0038] Optionally, the message may include an Ethernet message and a switch management message, and the segment may refer to that the Ethernet message and the switch management message are cut into multiple segments when transmitted on a stack interface (Stack Interface, SIF for short), and each segment is 64 bytes long. When the last segment of the message is less than 64 bytes, 0 is subsequently filled to make up 64 bytes. The segment may include the data stream and the local segment data. The local segment data may refer to the local 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 a table in the SifCopyTrip module 120 and further performing parsing based on the search result.
[0040] Optionally, the stack refers to a stack in the SifRacPcs module 130, which is used to store the data stream and the local segment data, and the stack link may refer to a linked list of the stack, which will not be described in detail in this embodiment.
[0041] Optionally, see Figure 2 The data stream on the receiving side may refer to the data stream received by the SifRacPcs module from Serdes (Serializer / Deserializer), the receiving side may refer to the side of the SifRacPcs module close to the receiving Serdes, and the sending side may refer to the side of the SifRacPcs module close to the sending Serdes. In this embodiment, the SIF has 8 SifRacPcs modules, namely Figure 2 Each SifRac (full ring access controller) module in the stack is responsible for the data flow from 4 receiving Serdes to 4 sending Serdes. Each Rac has 4 Serdes running at 112Gbps. This makes the entire stack link set have 32 Serdes, thus achieving a bandwidth of 3.2TGbps. Among them, the receiving Serdes corresponds to Figure 2 Receive Serdes (receiver serializer / deserializer) in, send Serdes corresponds to Figure 2 Transmit Seredes (sending serializer / deserializer) in, Figure 2The SifBcn in the numeral 1 refers to the SifBcn module, the SifCopyTrip refers to the SifCopyTrip module 120 , and the SifRacPcs refers to the SifRacPcs module 130 .
[0042] Optionally, the local message determination result is that the BCN message is the local message or the BCN message is not the local message, and the BCN message processing unit is further configured to:
[0043] Put the BCN message into the AQM Message Fifo (active queue manager message queue) of the SifBcn module 110;
[0044] When the AQM Message Fifo is not empty, sending a local message confirmation signal to the SifCopyTrip module 120;
[0045] receiving a local message determination result of 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 packaged relevant fields in the BCN message to IQS (Ingress Queue scheduler), otherwise package the BCN message into a BCN ring notification word (RingWord) and send the BCN ring notification word to the stack;
[0048] When the BCN message is the 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 packaged related fields in the BCN message are sent to the IQS.
[0049] Optionally, the packaged related fields may refer to fields associated with the BCN message, which are specifically related to the field structure of the BCN message and will not be elaborated in this embodiment.
[0050] In one embodiment of the present disclosure, 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 packaged related fields 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.
[0051] In one embodiment of the present 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 the BCN message from the AQM and sends it to the SifCopyStrip module 120 to determine whether the BCN message is a local message. If the BCN message is a local message, the relevant fields will be packaged and sent to the IQS. If the BCN is not a local message, it will be packaged into a BCN RingWord (loop notification word) for sending on the stack. If the SifRacPcs module 110 detects a BCN message, it will send it to the SifBcn module 110, and then go to the SifCopyStrip module 120 again to determine whether it is a local message. If it is local, it will be deleted from the stack link, and the relevant fields will be packaged and sent to the IQS. The AQM corresponds to Figure 2 The loop notification word may be a special message, which can be used to verify whether the BCN message is correctly received and processed, and this embodiment will not be described in detail.
[0052] The SifBcn module 110 receives BCN messages received from AQM->SIF and puts them into a Fifo or queue (16 deep). When this Fifo is not empty, a signal is sent to the SifCopyStrip block 120 to notify it that it needs to look in the GlobalToLocalPortTable. When the SifCopyStrip block 120 is "idle", it can look up the BCN GlobalPortNumber to see if the LocalPortNumber can be found.
[0053] Figure 3 The BCN IQS Message Fifo in refers to the IQS Message Fifo of the SifBcn module 110. Figure 3The 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 represents the global to local port query request, that is, the local message confirmation signal mentioned above, Local represents the local message, From AQM represents from AQM, and strip represents the first stripping signal.
[0054] Optionally, the fragment processing unit is further configured to:
[0055] When the data flow is to be sent to the local node, a fragment copy message is sent to the SifRacPcs module 130, wherein the copy message is used to enable the SifRacPcs module 130 to copy the fragments to the SifReorder module;
[0056] When the data flow is not sent to the local node, sending a second stripping signal to the SifRacPcs module 130;
[0057] The SifReorder module is configured to receive the duplicated segments from the SifRacPcs module 130 and perform realignment processing on the duplicated segments to obtain transmission segments, where the transmission segments are segments realigned into a transmission order.
[0058] Optionally, the copied segment may refer to the segment copied from the segment.
[0059] In one embodiment of the present disclosure, the SifReorder module receives the replicated segments from the SifRacPcs module 130. The segment information is stored in each memory, so that the SifReorder module can interpret the order in which the segments are transmitted. The segments input from the SifRacPcs module 130 will enter the segment storage in the segment data map, and the segments leaving will deviate from the segment data map. The SifReorder module performs the function of realigning the received segments into the transmission order, which can refer to the order of the segment numbers from small to large. The SifReorder module corresponds to Figure 2 SifReorder in.
[0060] Optionally, the local message determination unit is further configured to:
[0061] Receiving the segmentation of 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, performing table lookup processing on the segment and the BCN message to obtain a first table lookup result;
[0063] Based on the first hash index and the second hash index of the segment and the BCN message, performing a lookup process on the first table lookup result to obtain a second table lookup result;
[0064] The first table lookup result and the second table lookup result are parsed to obtain the data flow direction of the segment and the local message determination result.
[0065] In one embodiment of the present disclosure, please refer to Figure 4 The table lookup process may refer to Figure 4 The first table lookup result may refer to the result of the lookup process, and based on the first hash index and the second hash index of the segment and the BCN message, the lookup process on the first table lookup result may refer to the lookup process on HashTable1 (first hash table) and HashTable2 (second hash table) of the Port Destination Table according to hashIndex1 (first hash index) and hashIndex2 (second hash index), the second table lookup result refers to the result of the lookup process, and the second table lookup result may correspond to Figure 4 The Entry (key-value pair) of HashTable1 and the Entry of HashTable2, Resolution Logic (logical resolution) can refer to the resolution process, Figure 4 The Copy in it may refer to the copy information mentioned above, the Strip may refer to the second stripping signal mentioned above, and the FIFO represents a queue.
[0066] In one embodiment of the present disclosure, the SifCopyStrip module 120 reports the results of all BCN GlobalToLocalPort lookups. This includes a lookup performed on BCN messages received from a stack link. If the LocalPortNumber is found, all other information received is copied to the BCN IQS MessageFifo (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 a stack link, a strip signal is sent back to the Rac (Ring Access Control) that stripped it.
[0067] The SifCopyStrip module 120 uses a global to local port number table that is also used by normal incoming packets to determine if they should be copied or stripped from the stack. The normal copy / strip process has a higher priority.
[0068] The SifCopyStrip module 120 determines whether the segment received from the stack link is destined for the local node. If a segment is defined locally, the module sends a message to the SifRacPcs module 130 to enable copying of the segment to the SifReorder block. If the segment is to be stripped, a message is returned to the SifRacPcs module 130 to grant an insertion opportunity to this ring.
[0069] Optionally, the local segment data insertion module includes:
[0070] SifIngressFifo (ingress data queue), configured to store segmented data in an ingress data path designated for the stack;
[0071] The SifRingSel (ring selection) module is configured to receive an available signal sent by the SifRacPcs module 130 and obtain the credit availability information of the SifRacPcs module 130, and based on the available 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 may refer to the local segment data described above, the available signal may refer to a signal that can be used, the credit available information may refer to credit information that can be used, and the segment number to be inserted and the segment data to be inserted corresponding to the SifRacPcs module refer to the segment number and segment data to be inserted corresponding to the SifRacPcs module. The available signal and the credit available information can be set according to actual conditions, and this embodiment will not go into details. The SifIngressFifo corresponds to Figure 2 The SifIngressFifo in the SifRingSel module corresponds to Figure 2 SifRingSel in.
[0073] Optionally, based on the available signal, the credit available information and the segment data in the SifIngressFifo, obtaining the segment number to be inserted and the segment data to be inserted corresponding to the SifRacPcs module 130 may include: obtaining the all-ring available vector based on the available signal and the credit available information; obtaining the segment number to be inserted and the segment data to be inserted based on the all-ring available vector and the segment data in the SifIngressFifo.
[0074] In one embodiment of the present disclosure, please refer to Figure 5 , SifIngressFifo stores the segments in the Ingress data path that are assigned to the stack. This fifo is 16 entries deep by 2048 bits wide and consists of flip-flops that allow 8 simultaneous insertion selects in one 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 that there are no overruns. There is no need for deep storage here because modeling shows that the chance of jumping to multiple rings in the same cycle is small. The PBC corresponds to Figure 2 In the PBC, ZpCrc Check may refer to a specific polynomial CRC (Cyclic Redundancy Check) check, CRC-8Gen may refer to 8-bit long CRC check code generation, SOP indicates segment start, EOP indicates segment end, ERR indicates error, SIZE indicates size, Data indicates data, 1R / 1W RAM refers to a random access memory with one read port and one write port, and FLOPS may refer to the number of floating-point operations per second.
[0075] In one embodiment of the present 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 link. The key point of this block is that up to 8 segments can be sent in one clock cycle. This forms a set of equations to determine which segments to send where. There are small windows of opportunity on the stack link and it is important to stream (burst) as many segments as possible onto the stack link. This module takes credit availability information from all 8 Racs and determines which Rac should insert local data based on this information. Figure 6 The CreditAvailable here may refer to the credit availability information, Ok To Insert may refer to the available signal, LocalData may refer to the segmented data in the SifIngressFifo, Data may refer to the segmented data to be inserted, Segment Number may refer to the segment number to be inserted, Ring Available may refer to the ring available vector, Total Rings Available may refer to the total ring available vector, and Segments Available may refer to the available segment data, that is, the segments to be sent.
[0076] The data insertion algorithm is described in the pseudo code below. RacsAvailable (Available Ring Access Controllers) is the sum of all Racs that have creditsAvailable (Credit Available Information) and insertEnable (Enable Insertion) set to "1".
[0077] If (#SegmentsToSend>=#RacsAvailable) (When the segments to be sent are 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 highest creditsAvailable)
[0082] Send Segment Data to Rac with highest creditAvailable
[0083] else
[0084] Send Segment Data to random Rac among those with creditAvailabletied.
[0085] The segment number needs to be dynamically incremented based on the number of races receiving segment data in a cycle. This is computationally intensive as is determining which races get which segment data. Once the 8-bit vector of Racs for receiving segment data is calculated, so is the SegmentNumber (segment number) and data of the Sif IngressFifo. The offset calculation is given by the following pseudo code.
[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 of index i is equal to the sum of the offset of index i-1 and the ring access controller selection of index i-1);
[0089] }
[0090] The output and next state components of the SifRingSel block are then 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 with index i in the ingress 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 with index i)
[0094] Rac[i].ValidData = RacSelect[i]; (valid data of the i-th Rac is equal to the ring access controller selection with index i)
[0095] }
[0096] SegmentNumber.Next = SegmentNumber + offset[7] + RacSelect[7]; (The next segment number is equal to the sum of the segment number and the offset with index 7 and the ring access controller selection with index 7)
[0097] rdptr.next = rdptr + offset[7] + RacSelect[7]; (the next read pointer is equal to the sum of the read pointer and the offset with index 7 and the ring access controller selection with index 7)
[0098] In most cases, the selection by the SifRingSel block will be very simple. When 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 in the case where RacSelect (Ring Access Controller Select) is only set to 1 or 2 bits. As it stands, 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 to go to Rac[7].
[0099] Optionally, the SifRacPcs module 130 is further configured to:
[0100] Get the data stream on the receiving side;
[0101] Detecting the BCN message, and sending the detected BCN message to the SifBcn module;
[0102] receiving a first stripping signal sent by the SifBcn module, and after receiving the first stripping signal, deleting the BCN message from the stack connection;
[0103] receiving the copy message sent by the SifCopyTrip module, and after receiving the copy message, sending the copy fragment to the SifReorder module;
[0104] receiving the second stripping signal sent by the SifCopyTrip module, and after receiving the second stripping signal, deleting the segment from the stack connection;
[0105] Sending an available signal to the SifRingSel module, wherein the available signal is used to indicate that there is space to insert the local segment data into the stack;
[0106] The data stream of the receiving side and the local segment data are transmitted to the sending side.
[0107] Optionally, the first stripping signal refers to a signal used to delete the BCN message from the stack connection, and the second stripping signal refers to a signal used to delete the segment from the stack connection.
[0108] Optionally, the SifRacPcs module has:
[0109] A SifInsert unit configured to receive local segment data in the SifIngressFifo;
[0110] SifTransitFifo (transmission queue), configured to send the available signal to the SifRingSel module when the SifTransitFifo is empty;
[0111] A SifWordMux (multiplexer) is configured to move the local segment data in the SifInsert block to the stack.
[0112] In one embodiment of the present disclosure, please refer to Figure 7 , SifRacPcs takes data from Serdes and aligns it with PCS (Physical Control Sublayer) codewords and RingWords. Interprets the specific type of Ringword and sends it to the appropriate block for processing. After receiving the Idle, the Ringword or segment designation sends an available signal to SifRingSel for inserting segment data on the stack. The inserted segment data and stream data are returned through PCS codeword generation and output to the transmission Serdes. The copied segments are sent to the SifReorder block.
[0113] Figure 7The SifRacPcs block in is the "data path" portion of SIF. There are 8 SifRacPcs blocks in SIF. Each is responsible for the flow of data from the 4 receive Serdes to the 4 transmit Serdes. When SifRacPcs sees segment data, it extracts the fields used to determine if that segment needs to be copied or deleted from the stack. These fields go to the SifCopyTrip block to make that 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 room to insert local segment data into the stack. The local segment data is moved from the SifIngressFifo to the SifInsert block and then to the stack via the SifWordMux. PMA (Physical Medium Adaptation) and PCS functions are processed in the SifPmaRcv (physical medium adaptation layer on the receiving side), SifPmaXmit (physical medium adaptation layer on the transmitting side), SifPcsRcv (physical coding sublayer on the receiving side) and SifPcsXmit (physical coding sublayer on the transmitting side) blocks. Figure 7 Sif Word MUX can represent message selection, Sif Word Parser can represent message parsing, SifDebug can represent finding and repairing defects, SifInit can represent initialization, Odd represents odd number, and even represents even number.
[0114] In one embodiment of the present disclosure, a chip is provided. The chip includes the transmission device.
[0115] To sum up, in the transmission device disclosed in the present invention, the processing of BCN messages and fragments by the SifBcn module, the SifCopyTrip module, the SifRacPcs module and the sending data acquisition device can enable the loop in the stacked network architecture to run at high speed, thereby improving the stacked network bandwidth.
[0116] Figure 8 FIG. 1 is a flow chart showing a transmission method based on a ring stacking network architecture according to an embodiment of the present disclosure. Figure 8 As shown, this embodiment provides a transmission method based on a ring stacking network architecture, including:
[0117] S11, obtaining the BCN message and the data stream on the receiving side.
[0118] S12, inserting the local segment data into the stack.
[0119] S13, processing the fragments and the BCN message to obtain the data flow direction of the fragments and the local message determination result, the fragments are the data flow of the receiving side and the local segment data are cut into fragments of the message, and the data flow direction is sent to the local node or not sent to the local node.
[0120] S14: Process the fragments based on the data flow direction.
[0121] S15, transmitting the data stream of the receiving side and the local segment data to the sending side.
[0122] The protection scope of the transmission method described in the embodiment of the present disclosure is not limited to the execution order of the steps listed in the embodiment. All solutions implemented by adding, reducing or replacing steps in the prior art based on the principles of the present disclosure are included in the protection scope of the present disclosure.
[0123] In the several embodiments provided in the present disclosure, it should be understood that the disclosed device or method can be implemented in other ways. For example, the device embodiments described above are only schematic, for example, the division of modules / units is only a logical function division, and there may be other division methods in actual implementation, such as multiple modules or units can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or modules or units, which can be electrical, mechanical or other forms.
[0124] The modules / units described as separate components may or may not be physically separated, and the components displayed as modules / units may or may not be physical modules, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the modules / units may be selected according to actual needs to achieve the purpose of the embodiments of the present disclosure. For example, the functional modules / units in the various embodiments of the present 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 of ordinary skill in the art should further appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of the two. In order to clearly illustrate the interchangeability of hardware and software, the composition and steps of each example have been generally described in terms of function in the above description. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this disclosure.
[0126] This embodiment provides an electronic device, the electronic device comprising a memory; a processor, coupled to the memory and configured to execute Figure 8 The transmission method shown.
[0127] The present disclosure embodiment also provides a computer-readable storage medium. A person of ordinary skill in the art can understand that all or part of the steps in the method for implementing the above embodiment can be completed by instructing the processor through a program, and the program can be stored in a computer-readable storage medium, and the storage medium is a non-transitory medium, such as a random access memory, a read-only memory, a flash memory, a hard disk, a solid-state hard disk, a magnetic tape, a floppy disk, an optical disc, and any combination thereof. The above storage medium can be any available medium that can be accessed by a computer or a data storage device such as a server or a data center that includes one or more available media integrated. The available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a digital video disc (DVD)), or a semiconductor medium (e.g., a solid-state disk (SSD)), etc.
[0128] The embodiments of the present disclosure may also provide a computer program product, which includes one or more computer instructions. When the computer instructions are loaded and executed on a computing device, the process or function described in the embodiments of the present disclosure is generated in whole or in part. The computer instructions may be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions may be transmitted from one website site, computer or data center to another website site, computer or data center by wired (e.g., coaxial cable, optical fiber, 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 executes the method described in the above method embodiment. The computer program product may be a software installation package, and when the above method is required, the computer program product may be downloaded and executed on a computer.
[0130] The descriptions of the processes or structures corresponding to the above-mentioned figures have different emphases. For parts that are not described in detail in a certain process or structure, please refer to the relevant descriptions of other processes or structures.
[0131] The above embodiments are merely illustrative of the principles and effects of the present disclosure, and are not intended to limit the present disclosure. Anyone familiar with the technology may modify or change the above embodiments without violating the spirit and scope of the present disclosure. Therefore, all equivalent modifications or changes made by a person of ordinary skill in the art without departing from the spirit and technical ideas disclosed in the present disclosure shall still be covered by the claims of the present disclosure.
Claims
1. A transmission device based on a stacked network architecture, characterized in that: It includes a reverse congestion notification SifBcn module, a copy stripping SifCopyTrip module, several ring access controller SifRacPcs modules and a local segment data insertion module, each of the SifRacPcs modules corresponds to a logical loop: The SifBcn module has: A congestion reverse notification BCN message acquisition unit is configured to acquire the BCN message, where the BCN message is a BCN message in an active queue manager AQM or a BCN message in the SifRacPcs module; A BCN message processing unit configured to send a local message determination signal to the SifCopyTrip module based on the BCN message, receive a 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: a local message determination unit configured to receive the fragments of the SifRacPcs module and the BCN message, and process the fragments and the BCN message to obtain a data flow direction of the fragments and a local message determination result, wherein the data flow direction is sent to a local node or is not sent to a local node, and the fragments are messages in the SifRacPcs module that are cut into fragments; A fragment processing unit, configured to process the fragments based on the data flow direction; A local segment data insertion module configured to insert the local segment data into the stack; The SifRacPcs module is configured to obtain a data stream on a receiving side, and transmit the data stream on the receiving side and the local segment data to a sending side.
2. The transmission device according to claim 1, characterized in that: The local message determination result is that the BCN message is the local message or the BCN message is not the local message, and the BCN message processing unit is further configured to: Put the BCN message into the active queue manager message queue AQM Message Fifo of the SifBcn module; When the AQM Message Fifo is not empty, sending a local message confirmation signal to the SifCopyTrip module; Receive a local message determination result of the BCN message from the SifCopyTrip module; 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 packaged relevant fields 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 is that the BCN message is the local message, a first stripping signal is sent to the SifRacPcs module, and the packaged related fields in the BCN message are sent to the IQS.
3. The transmission device according to claim 2, characterized in that: The segment processing unit is further configured to: When the data flows to the local node, a fragment copy message is sent to the SifRacPcs module, wherein the copy message is used to enable the SifRacPcs module to copy the fragments to the reordering SifReorder module; When the data flow is not sent to the local node, sending a second stripping signal to the SifRacPcs module; The SifReorder module is configured to receive the duplicated segments of the SifRacPcs module and perform realignment processing on the duplicated segments to obtain transmission segments, where the transmission segments are segments realigned into a transmission order.
4. The transmission device according to claim 3, characterized in that: The local message determination unit is further configured to: Receiving the fragments of the SifRacPcs module 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, a table lookup process is performed on the segment and the BCN message to obtain a first table lookup result; Based on the first hash index and the second hash index of the segment and the BCN message, performing a lookup process on the first table lookup result to obtain a second table lookup result; The first table lookup result and the second table lookup result are parsed to obtain the data flow direction of the segment and the local message determination result.
5. The transmission device according to claim 4, characterized in that: The local segment data insertion module includes: An ingress data queue SifIngressFifo, configured to store segmented data in an ingress data path designated for the stack; The ring selection SifRingSel module is configured to receive an available signal sent by the SifRacPcs module and obtain the credit availability information of the SifRacPcs module, and based on the available 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.
6. The transmission device according to claim 5, characterized in that: The SifRacPcs module is further configured as: Get the data stream on the receiving side; Detecting the BCN message, and sending the detected BCN message to the SifBcn module; receiving a first stripping signal sent by the SifBcn module, and after receiving the first stripping signal, deleting the BCN message from the stack connection; receiving the copy message sent by the SifCopyTrip module, and after receiving the copy message, sending the copy fragment to the SifReorder module; receiving the second stripping signal sent by the SifCopyTrip module, and after receiving the second stripping signal, deleting the segment from the stack connection; Sending an available signal to the SifRingSel module, wherein the available signal is used to indicate that there is space to insert the local segment data into the stack; The data stream of the receiving side and the local segment data are transmitted to the sending side.
7. The transmission device according to claim 6, characterized in that: The SifRacPcs module has: Inserting a SifInsert unit configured to receive the local segment data in 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 the local segment data in the SifInsert unit to the stack.
8. A chip, characterized in that: Comprising the transmission device according to any one of claims 1-7.
9. A transmission method based on a stacked network architecture, characterized in that: include: Get BCN messages and data streams on the receiving side; Insert local segment data into the stack; Processing the fragments and the BCN message to obtain a data flow direction of the fragments and a local message determination result, wherein the fragments are packets in which the data flow of the receiving side and the local segment data are cut into fragments, and the data flow direction is sent to a local node or not sent to a local node; Based on the data flow direction, processing the segmented parts; The data stream of the receiving side and the local segment data are transmitted to the sending side.
10. An electronic device, characterized in that: include: Memory; A processor is coupled to the memory and configured to execute the transmission method according to claim 9.
Citation Information
Patent Citations
Congestion information collection method and system, related equipment and computer storage medium
CN111865810A
Segmented competitive beacon sending method based on wireless mesh network
CN112153747A
Multi-access management service packet classification and priority ranking techniques
CN114173374A
Message processing method, message forwarding method, device and equipment
CN115914142A
Display congestion notification mark method and stacking system
CN116800678A