CN119484451A - Transmission device and method based on stacked network architecture, chip and electronic equipment - Google Patents
Transmission device and method based on stacked network architecture, chip and electronic equipment Download PDFInfo
- Publication number
- CN119484451A CN119484451A CN202411626052.XA CN202411626052A CN119484451A CN 119484451 A CN119484451 A CN 119484451A CN 202411626052 A CN202411626052 A CN 202411626052A CN 119484451 A CN119484451 A CN 119484451A
- Authority
- CN
- China
- Prior art keywords
- message
- module
- bcn
- local
- sifracpcs
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
The disclosure provides a transmission device and method based on a stacked network architecture, a chip and electronic equipment. The transmission device comprises a SifBcn module, a SifCopyTrip module, a plurality of SIFRACPCS modules and a local segment data insertion module, a BCN message acquisition unit configured to acquire BCN messages, a BCN message processing unit configured to send local message determination signals to the SifCopyTrip module based on the BCN messages and receive local message determination results of the BCN messages from the SifCopyTrip module, a local message determination unit configured to receive fragments of the SIFRACPCS module and the BCN messages and perform search processing on the fragments and the BCN messages to acquire data flow directions of the fragments and local message determination results, a fragment processing unit configured to process the fragments based on the data flow directions, and a local segment data insertion module configured to insert local segment data into a stack. The device can enable loops in the stacked network architecture to run at high speed, and improves the stacked network bandwidth.
Description
Technical Field
The disclosure belongs to the field of chip stacking, relates to a ring-shaped stacking network architecture, and in particular relates to a transmission device and method, a chip and equipment based on the stacking network architecture.
Background
At present, the switching capability of a single chip cannot meet the increasing network bandwidth requirement, and a plurality of switching chips are interconnected together through a stacking technology, so that a large-scale switching chip matrix is formed, and the network bandwidth of the current stacking network is still possibly difficult to meet the network bandwidth requirement, so that the problem of insufficient network bandwidth of the current stacking network exists.
Disclosure of Invention
The disclosure aims to provide a transmission device, a transmission method, a chip and a transmission device based on a stacked network architecture, which are used for solving the problem of insufficient bandwidth of the current stacked network.
In a first aspect, the disclosed embodiments provide a transmission device based on a stacked network architecture, comprising 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 corresponding to a logical loop, the SifBcn module being provided with a congestion reverse notification BCN message acquisition unit configured to acquire the BCN message, the BCN message being 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 determination signal to the SifCopyTrip module based on the BCN message and to receive a local message determination result of the BCN message from the SifCopyTrip module and to process the BCN message based on the local message determination result, the SifCopyTrip module being provided with a local message determination unit configured to receive a segment of the SIFRACPCS module and the BCN message and to process the BCN message and to acquire the segment and the BCN message and to split the segment data to a local segment of the data packet from the SifCopyTrip module and to a local segment data packet from the data packet receiving unit configured to a local segment receiving module and to a local segment data insertion module and to a local segment receiving module configured to send the segment data packet to a local segment receiving module and a local segment data packet from the data insertion module to a local segment receiving module, and a data packet to a local segment receiving module to be a local segment data processing module to be a local segment data packet to be a data packet to be sent to a local segment.
In the transmission device, the SifBcn module, the SifCopyTrip module, the SIFRACPCS module and the local segment data insertion module process BCN messages and fragments, so that loops in the stacked network architecture can be operated at high speed, and the stacked network bandwidth is improved.
In an embodiment of the present disclosure, the local message determination result is that the BCN message is the local message or that the BCN message is not the local message, the BCN message processing unit is further configured to put the BCN message in an active queue manager message queue AQM MessageFifo of the SifBcn module, send a local message determination signal to the SifCopyTrip module when the AQM MESSAGE Fifo is not empty, receive a local message determination result of the BCN message from the SifCopyTrip module, send a relevant field packaged in the BCN message to an inbound queue scheduler IQS if the BCN message determination result is that the BCN message is the local message, otherwise package the BCN message as a BCN loop notification word and send the BCN loop notification word to the stack, send a relevant field packaged in the BCN message to the qs if the BCN message is that the BCN message in the SIFRACPCS module is that the BCN message is the BCN message, and send the relevant field packaged in the BCN message SIFRACPCS if the BCN message is that the BCN message is the BCN message in the AQM.
In an embodiment of the disclosure, the segment processing unit is further configured to send a segment replication message to the SIFRACPCS module when the data flow is addressed to a local node, the replication message being used to cause the SIFRACPCS module to replicate the segments to the reorder SifReorder module, send a second stripping signal to the SIFRACPCS module when the data flow is not addressed to a local node, and the SifReorder module is configured to receive the replicated segment of the SIFRACPCS module and to realign the replicated segment to obtain a transmission segment, the transmission segment being a segment realigned to a transmission order.
In an embodiment of the present disclosure, the local message determining unit is further configured to receive the fragments of the SIFRACPCS module and the BCN message, perform a table lookup process on the fragments and the BCN message based on the destination Index destIndex, cpu destination Index cpuDestIndex and the switch port analysis Index SPAN Index of the fragments and the BCN message to obtain a first table lookup result, perform a table lookup process 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, and perform an parsing process on the first table lookup result and the second table lookup result to obtain a data flow direction of the fragments and the local message determining result.
In one embodiment of the disclosure, the local segment data insertion module includes an inbound data queue SifIngressFifo configured to store segment data assigned to the stack in an inbound data path, a ring selection SIFRINGSEL module configured to receive an available signal sent by the SIFRACPCS module and obtain credit available information of the SIFRACPCS module, and obtain a segment number to be inserted and segment data to be inserted corresponding to the SIFRACPCS module based on the available signal, the credit available information, and the segment data in the SifIngressFifo, and send the segment number to be inserted and the segment data to be inserted from the SifIngressFifo to a stack link.
In an embodiment of the disclosure, the SIFRACPCS module is further configured to obtain a data flow on a 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 delete the BCN message from the stack connection after receiving the first stripping signal, receive the duplicate message sent by the SifCopyTrip module and send the duplicate segment to the SifReorder module after receiving the duplicate message, receive the second stripping signal sent by the SifCopyTrip module and delete the segment from the stack connection after receiving the second stripping signal, send an available signal to the SIFRINGSEL module, the available signal being used to indicate that there is space to insert the local segment data into the stack, and transmit the data flow on the receiving side and the local segment data to a transmitting side.
In an embodiment of the disclosure, the SIFRACPCS module is provided with an insert SIFINSERT unit configured to receive local segment data in the SifIngressFifo, a transmit queue SifTransitFifo configured to send the available signal to the SIFRINGSEL module when the SifTransitFifo is empty, and a multiplexer SifWordMux configured to move local segment data in the SIFINSERT unit to the stack.
In a second aspect, embodiments of the present disclosure provide a chip comprising a transmission device according to any one of the first aspects.
In a 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 of a receiving side, inserting local segment data into a stack, processing a segment and the BCN message to obtain a data flow of the segment and a determination result of the local message, where the segment is a data flow of the receiving side and a packet in which the local segment data is segmented, the data flow is sent to a local node or not, processing the segment based on the data flow, and transmitting the data flow of the receiving side and the local segment data to a transmitting side.
In a fourth aspect, an embodiment of the present disclosure provides an electronic device comprising a memory, a processor coupled to the memory and configured to perform the transmission method according to any one of the third aspects.
As described above, the stacked network architecture-based transmission device and method, chip and electronic device of the present application have the following beneficial effects:
According to the transmission device, the transmission method, the chip and the electronic equipment based on the stacked network architecture, in the transmission device, the SifBcn module, the SifCopyTrip module, the SIFRACPCS module and the local segment data insertion module are used for processing BCN messages and fragments, so that loops in the stacked network architecture can run at high speed, and the stacked network bandwidth is further improved.
Drawings
Fig. 1 is a schematic structural diagram of a transmission device based on a stacked network architecture according to an embodiment of the disclosure.
Fig. 2 is a schematic structural diagram of a transmission device based on a stacked network architecture according to an embodiment of the disclosure.
Fig. 3 shows a schematic structural diagram of a module according to an embodiment SifBcn of the present disclosure.
Fig. 4 shows a schematic structural diagram of a module according to an embodiment SifCopyTrip of the present disclosure.
Fig. 5 shows a schematic structural diagram of a PBC according to an embodiment of the present disclosure.
Fig. 6 shows a ring selection schematic for an embodiment of the present disclosure.
Fig. 7 is a schematic view showing a structure of a SIFRACPCS module according to an embodiment of the present disclosure
Fig. 8 shows a flowchart of a transmission method based on a stacked network architecture, which is not an embodiment of the disclosure.
Detailed Description
Other advantages and effects of the present disclosure will become readily apparent to those skilled in the art from the following disclosure, which describes embodiments of the present disclosure by way of specific examples. The disclosure may be embodied or practiced in other different specific embodiments, and details within the subject specification may be modified or changed from various points of view and applications without departing from the spirit of the disclosure. It should be noted that the following embodiments and features in the embodiments may be combined with each other without conflict.
It should be noted that, the illustrations provided in the following embodiments merely illustrate the basic concepts of the disclosure by way of illustration, and only the components related to the disclosure are shown in the illustrations, rather than being drawn according to the number, shape and size of the components in actual implementation, and the form, number and proportion of each component in actual implementation may be arbitrarily changed, and the layout of the components may be more complex.
The following will explain the principle and implementation of the transmission device based on the stacked network architecture and the transmission method based on the stacked network architecture according to the embodiments of the present disclosure in detail, so that those skilled in the art may understand the transmission system and the transmission method according to the embodiments of the present disclosure without creative effort.
Fig. 1 is a schematic diagram illustrating a structure of a transmission apparatus based on a stacked network architecture according to an embodiment of the present disclosure. As shown in fig. 1, the present embodiment provides a transmission apparatus 10 based on a stacked network architecture, which includes SifBcn (reverse congestion notification) modules 110, sifCopyTrip (copy stripping) modules 120, a plurality of SIFRACPCS (ring access controller) modules 130, and a local segment data insertion module 140, where each SIFRACPCS module 130 corresponds to a logic loop;
the SifBcn module 110 includes:
A BCN (Backward Congestion Notification, congestion reverse notification) message acquisition unit configured to acquire the BCN message, the BCN message being a BCN message in AQM (Active Queue Manager ) or a BCN message in the SIFRACPCS module;
A BCN message processing unit configured to transmit a local message determination signal to the SifCopyTrip module based on the BCN message, and 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;
SifCopyTrip the module 120 includes:
A local message determining 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 determining result, where the data flow direction is a message sent to a local node or not, and the fragments are fragments of the SIFRACPCS module;
A segment processing unit configured to process the segments based on the data flow direction;
a local segment data insertion module 140 configured to insert local segment data into the stack;
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 transmitting side.
Alternatively, the transmission device 10 may have 8 SIFRACPCS modules, corresponding to 8 loops respectively. The transmission means may be regarded as an interface connecting the incoming data to the stack port and the stack port to the outgoing path.
Optionally, the message may include an ethernet message and a switch management message, where the fragments may refer to that the ethernet message and the switch management message are split into multiple fragments when transmitted on a stacking interface (STACK INTERFACE, abbreviated as SIF), each of which has a length of 64 bytes, and when the last fragment of the message is less than 64 bytes, the fragments fill 0 to complement 64 bytes, and 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 a message data stream.
Optionally, the local message determination signal may refer to a signal for determining whether the BCN message is local, and processing the BCN message may include a lookup process of a table in the SifCopyTrip module 120 and a parsing process further according to a lookup result.
Optionally, the stack refers to a stack in the SIFRACPCS module 130, which is used for storing the data stream and the local segment data, and a stack link may refer to a linked list of the stack, which is not described in detail in this embodiment.
Alternatively, referring to fig. 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 near the Serdes, the transmitting side may refer to the side of the SIFRACPCS module near the Serdes, and in this embodiment, the SIF has 8 SIFRACPCS modules, that is, the SifRac (all ring access controller) module in fig. 2, each responsible for receiving from 4 Serdes to 4 data streams transmitting Serdes, and each Rac has 4 Serdes running at 112 Gbps. This allows the entire stack link set to have 32 Serdes, reaching a bandwidth of 3.2 TGbps. Wherein, receiving Serdes corresponds to RECEIVE SERDES (received serializer/deserializer) in fig. 2, transmitting Serdes corresponds to TRANSMIT SEREDES (transmitted serializer/deserializer) in fig. 2, sifBcn in fig. 2 refers to the SifBcn module, sifCopyTrip refers to the SifCopyTrip module 120, and sifracpcs refers to the SIFRACPCS module 130.
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:
Placing the BCN message into AQM MESSAGE Fifo (active queue manager message queue) of the SifBcn module 110;
when the AQM MESSAGE Fifo is not empty, sending a local message-determining signal to the SifCopyTrip module 120;
receiving a local message determination result of the BCN message from the SifCopyTrip module 120;
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, sending the packed relevant fields in the BCN message to an IQS (Ingress Queue scheduler, inbound queue scheduler), otherwise, packing the BCN message into a BCN loop notification word (RingWord) and sending the BCN loop notification word to the stack;
And 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, sending a first stripping signal to the SIFRACPCS module 130, and sending the packed relevant fields in the BCN message to the IQS.
Optionally, the packaged related field may refer to a field associated with the BCN message, specifically related to a field structure of the BCN message, which is not described in detail in this embodiment.
In an embodiment of the present disclosure, 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 a packed relevant field in the BCN message is sent to the IQS, otherwise, the BCN message is packed into a BCN loop notification word and the BCN loop notification word is sent to the stack. The IQS corresponds to the IQS in fig. 2.
In an embodiment of the present disclosure, referring to fig. 3, the SifBcn module 110 may be an interface block of the IQS and the AQM, and the SifBcn module 110 may obtain a BCN message from the AQM and send the BCN message 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 is packed BCN RingWord (Loop Notification word) for sending on the stack. If SIFRACPCS module 110 detects a BCN message, it sends it to SifBcn module 110 and then goes again to SifCopyStrip module 120 to determine if it is a local message. If it is local, then the relevant fields are deleted from the stack link, packed and sent to the IQS. The AQM corresponds to the AQM in fig. 2. The loop notification word may be a special message that can be used to verify whether the BCN message was received and processed correctly, and this embodiment will not be described in detail.
SifBcn module 110 receives BCN messages received from aqm— > SIF and places them in Fifo, i.e., queue (16 deep). When this Fifo is not empty, a signal is sent to SifCopyStrip block 120 informing it that it needs to be looked up in GlobalToLocalPortTable (global to local port table). When SifCopyStrip block 120 is "idle", BCN GlobalPortNumber (global port number) may be looked up, looking up LocalPortNumber (local port number) if it can be found.
BCN IQS MESSAGE Fifo in fig. 3 refers to IQS MESSAGE Fifo of the SifBcn module 110, BCN AQM MESSAGE Fifo in fig. 3 refers to AQM MESSAGE Fifo (inbound queue scheduler message queue) in the SifBcn module 110, global To Local Port Lookup request represents a global to Local port query request, i.e. the Local message determination signal described above, local represents a Local message, from AQM represents the AQM, strip represents the first stripped signal.
Optionally, the fragment processing unit is further configured to:
When the data flow is addressed to a local node, sending a segment replication message to the SIFRACPCS module 130, the replication message being for causing the SIFRACPCS module 130 to replicate the segment to a SifReorder (re-ordering) module;
transmitting a second stripping signal to the SIFRACPCS module 130 when the data flow is not destined for a local node;
The SifReorder module is configured to receive the duplicate segments of the SIFRACPCS module 130 and to realign the duplicate segments to obtain a transmission segment, where the transmission segment is a segment realigned to a transmission order.
Alternatively, the replicated segment may refer to the segment replicated for the split segment.
In an embodiment of the present disclosure, sifReorder module receives the replicated segments from SIFRACPCS module 130. The segmentation information is stored in each memory enabling SifReorder modules to interpret the order of the segmentation transmissions. Segments entered from SIFRACPCS module 130 store segments that entered the segment data map and segments that exited the segment deviation segment data map. The SifReorder module performs the function of realigning the received segments into a transmission order, which may refer to an order from small to large in segment numbers. The SifReorder module corresponds to SifReorder in fig. 2.
Optionally, the local message determination unit is further configured to:
Receiving the fragments of the SIFRACPCS module 130 and the BCN message;
based on destIndex (destination Index), cpuDestIndex (cpu destination Index) and SPAN Index (switch port analysis Index) of the fragments and the BCN message, performing table lookup processing on the fragments and the BCN message to obtain a first table lookup result;
based on the fragments and the first hash index and the second hash index of the BCN message, searching the first table-looking-up result to obtain a second table-looking-up result;
And analyzing 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.
In an embodiment of the disclosure, referring to fig. 4, the lookup process may refer to a lookup process performed on Port Destination Table (port destination Table), globalToLocalPortMap (global to local port Table), cpu Destination Table (Cpu destination Table) and Span Table (switch port analysis Table) in fig. 4, the first lookup result may refer to a result of the lookup process, the lookup process performed on the first lookup result may refer to a lookup process performed on HashTable1 (first hash Table) and HashTable2 (second hash Table) according to hashIndex (first hash index) and hashIndex2 (second hash index), the second lookup result may refer to a result of the lookup process, the second lookup result may refer to an Entry (key value pair) and HashTable in fig. 4, the Resolution Logic loc may refer to a Resolution of the FIFO in fig. 4, and the Resolution Logic loc may refer to a Copy of the above-indicated FIFO in the queue.
In an embodiment of the present disclosure, sifCopyStrip module 120 reports the results of all BCN GlobalToLocalPort (BCN global to local port) lookups. This includes performing a lookup of BCN messages received from the stack links. If LocalPortNumber (local port number) is found, all other information received is copied to BCN IQS MESSAGE Fifo (IQS message queue in module SifBcn 110). The BCN message is then sent to the IQS block. If a BCN message is received from the stack link, a tear-off signal is sent back to the Rac (RING ACCESS Control, ring access controller) that is to tear it off.
SifCopyStrip module 120 uses the 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. The normal replication/stripping process has a higher priority.
SifCopyStrip module 120 determines whether the fragments received from the stack links are destined for a local node. If a fragment is defined locally, the module sends a message to SIFRACPCS module 130 to enable copying of the fragment to SifReorder blocks. If the fragment is to be stripped, a message is returned SIFRACPCS to module 130 to grant the ring an opportunity for insertion.
Optionally, the local segment data insertion module includes:
SifIngressFifo (inbound data queue) configured to store segmented data in an inbound data path assigned to the stack;
SIFRINGSEL (ring selection) module configured to receive the available signal sent by the SIFRACPCS module 130 and obtain credit available information of the SIFRACPCS module 130, and based on the available signal, the credit available information, and the segment data in the SifIngressFifo, obtain a segment number to be inserted and 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 a stack link.
Alternatively, the segment data stored in 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 the segment data to be inserted corresponding to the SIFRACPCS module. The available signals and the credit available information may be set according to actual situations, which will not be described in detail in this embodiment. The SifIngressFifo corresponds to SifIngressFifo in fig. 2, and the SIFRINGSEL module corresponds to SIFRINGSEL in fig. 2.
Optionally, based on the available signal, the credit available information and the segment data in SifIngressFifo, obtaining the to-be-inserted segment number and to-be-inserted segment data corresponding to the SIFRACPCS module 130 may include obtaining all ring available vectors based on the available signal and the credit available information, and obtaining the to-be-inserted segment number and the to-be-inserted segment data based on the all ring available vectors and the segment data in SifIngressFifo.
In one embodiment of the present disclosure, referring to FIG. 5, sifIngressFifo stores the segment assigned to the stack in the Ingress data path. This fifo is 16 entries deep by 2048 bits wide, consisting of flip-flops, allowing 8 insertion choices to be made simultaneously in one clock cycle. The SIFRINGSEL block determines the location of the segment stored therein. This module back-pressures the IQS and PBC (Packet buffer complex, message buffer module) when they are full to ensure that there is no overrun. No deep memory space is required here, as modeling shows that there is little chance of jumping to multiple rings in the same cycle. The PBC corresponds to the PBC in FIG. 2, 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 start of segment, EOP indicates end of segment, ERR indicates error, SIZE indicates SIZE, data indicates Data, 1R/1W RAM refers to random access memory with one read port and one write port, FLOPS may refer to floating point number of operations per second.
In one embodiment of the present disclosure, referring to FIG. 6, the SifRingSel module selects an available ring from the active rings to send segment data from SifIngressFifo to the stack link. The key point of this block is that a maximum of 8 segments can be sent in one clock cycle. This forms a set of equations to determine which segments to send to where. There is a small window of opportunity on the stack link and it is important to stream (burst) as many segments as possible onto the stack link. The module obtains credit availability information from all 8 racs and determines from this information which racs should be plugged into the local data. The Credit Available in fig. 6 may refer To Credit Available information, ok To Insert may refer To the Available signal, local Data may refer To the Segment Data in SifIngressFifo, data may refer To the Segment Data To be inserted, segment Number may refer To the Segment Number To be inserted, ring Available may refer To a Ring Available vector, total Rings Available may refer To an entire Ring Available vector, and Segments Available may refer To Available Segment Data, i.e., segments To be transmitted.
The data insertion algorithm is described in the pseudo code below. RacsAvailable (available ring access controller) is the sum of all Racs with creditsAvailable (credit available information) and insertEnable (capable of insertion) set to "1".
If (# SegmentsToSend > = # RacsAvailable) (when the segment to be transmitted is equal to or greater than all available Rac)
SEND SEGMENT DATA to All Available Racs (transmitting segmented data to all available rac)
else
For each segment, # SegementsToSend)
If (RAC HAS HIGHEST creditsAvailable) (with highest credit available information)
SEND SEGMENT DATA to RAC WITH HIGHEST creditAvailable (transmitting segmented data to the ring with the highest credit available information)
else
SEND SEGMENT DATA to random Rac among those with creditAvailable speed (random sending of segmented data to a ring associated with credit available information)
The segment number needs to be dynamically incremented according to the number of races of the received segment data in one period. This requires a lot of computation as well as determining which ethnicities obtain which segmented data. Once the 8-bit vector Racs for receiving the segment data is calculated, so is the SegmentNumber (segment number) and data of Sif IngressFifo. The offset calculation is given by the following pseudo code.
for(i=1;i<8;i++){
Offset [0] =0; (offset of 0 index is 0)
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);
}
The output of SIFRINGSEL blocks and the next state component are then calculated from the pseudocode.
for(i=1;i<8;i++){
Rac [ i ]. SEGMENTDATA = SifIngressFifo [ rdptr+offset [ i ] ] (i-th Rac's segment data is equal to segment data corresponding to the sum of read pointer and offset index i into data queue)
Rac [ i ]. SegmentNumber = SegmentNumber +offset [ i ] (the segment number of the ith Rac is equal to the sum of the segment number and the offset with index i)
Rac [ i ]. VALIDDATA = RACSELECT [ i ] (the valid data of the ith Rac is equal to the ring access controller choice with index i)
}
Segment number. Next= SegmentNumber +offset [7] + RACSELECT [7] (next segment number is equal to the sum of segment number and offset with index 7 and ring access controller selection with index 7)
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)
In most cases, the selection of SIFRINGSEL blocks will be very simple. When SIFRACPCS is already transmitting a segment, it is busy and does not actively seek new segment data. Obviously, in the case RACSELECT (ring access controller select) sets only 1 or 2 bits, the above logic is very simple. According to the present case, it is expected that SIFRINGSEL blocks should be able to calculate RACSELECT, output and next state in 1 cycle, the worst case would be going to Rac [7].
Optionally, the SIFRACPCS module 130 is further configured to:
acquiring a data stream of a 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 deleting the BCN message from the stack connection after receiving the first stripping signal;
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 deleting the fragments from the stack connection after receiving the second stripping signal;
Transmitting an available signal to the SIFRINGSEL module, the available signal being used to indicate that there is room to insert the local segment data into a stack;
and transmitting the data stream of the receiving side and the local segment data to a transmitting side.
Optionally, the first stripping signal refers to a signal for deleting the BCN message from the stack connection, and the second stripping signal refers to a signal for deleting the segment from the stack connection.
Optionally, the SIFRACPCS module is provided with:
SIFINSERT (insert) unit configured to receive local segment data in the SifIngressFifo;
SifTransitFifo (transmit queue) configured to send the available signal to the SIFRINGSEL module when the SifTransitFifo is empty;
SifWordMux (multiplexer) configured to move local segment data in the SIFINSERT block to the stack.
In one embodiment of the present disclosure, referring to fig. 7, sifracpccs obtains data from Serdes and aligns with PCS (Physical Control Sublayer, physical layer control sublayer) codewords, with RingWords. The particular type Ringword is interpreted and sent to the appropriate block for processing. The assignment of Ringword or fragments upon receipt of Idle sends SIFRINGSEL an available signal for inserting fragment data on the stack. The inserted segment data and stream data are returned by PCS codeword generation and output to the transfer Serdes. The copied segment is sent to SifReorder blocks.
The SIFRACPCS block in fig. 7 is the "datapath" portion of the SIF. There are 8 SIFRACPCS blocks in the SIF. Each responsible for receiving Serde to 4 data streams sent from Serdes from 4. When SIFRACPCS sees fragment data, it extracts the fields to determine if the fragment needs to be copied or deleted from the stack. These fields will go to SifCopyTrip blocks for determination. The copied fragment will move from SifTransitIfo blocks to SifReorder blocks. When SifTransitIfo is empty, it indicates to SIFRINGSEL that there is room to insert local segment data into the stack. The local segment data moves from SifIngressFifo to SIFINSERT blocks and then to the stack through SifWordMux. PMA (Physical Medium Adaptation, physical media adaptation layer) and PCS functions are handled in SIFPMARCV (receive side physical media adaptation layer), sifPmaXmit (transmit side physical media adaptation layer), SIFPCSRCV (receive side physical coding sublayer) and SifPcsXmit (transmit side physical coding sublayer) blocks. The Sif Word MUX in fig. 7 may represent message selection, sif Word Parser may represent message parsing, sifDebug may represent finding and repairing defects, sifInit may represent initialization, odd may represent an Odd number, even may represent an even number.
In an embodiment of the present disclosure, the present embodiment provides a chip, where the chip includes the transmission device.
In summary, in the transmission device of the present disclosure, the SifBcn module, the SifCopyTrip module, the SIFRACPCS module, and the sending data obtaining device process BCN messages and fragments, so that a loop in the stacked network architecture can operate at a high speed, thereby improving the stacked network bandwidth.
Fig. 8 is a flowchart illustrating a transmission method based on a ring stack network architecture according to an embodiment of the present disclosure. As shown in fig. 8, the present embodiment provides a transmission method based on a ring stack network architecture, including:
S11, acquiring the BCN message and the data stream of the receiving side.
S12, inserting the local segment data into the stack.
S13, 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 data flows of the receiving side and messages of the local fragments, the data flows of which are sent to a local node or not, and the local fragments are cut into fragments.
S14, processing the fragments based on the data flow direction.
And S15, transmitting the data stream of the receiving side and the local segment data to a transmitting side.
The protection scope of the transmission method according to the embodiments of the present disclosure is not limited to the execution sequence of the steps listed in the embodiments, and all the schemes implemented by adding or removing steps and replacing steps according to the prior art according to the principles of the present disclosure are included in the protection scope of the present disclosure.
In several embodiments provided in the present disclosure, it should be understood that the disclosed apparatus or method may be implemented in other manners. For example, the apparatus embodiments described above are merely illustrative, e.g., the division of modules/units is merely a logical function division, and there may be additional divisions when actually implemented, e.g., multiple modules or units may be combined or integrated into another system, or some features may be omitted or not performed. Alternatively, the coupling or direct coupling or communication connection shown or discussed with each other may be an indirect coupling or communication connection via some interfaces, devices or modules or units, which may be in electrical, mechanical or other forms.
The modules/units illustrated as separate components may or may not be physically separate, and components shown as modules/units may or may not be physical modules, i.e., may be located in one place, or may be distributed over a plurality of network elements. Some or all of the modules/units may be selected according to actual needs to achieve the objectives of the embodiments of the present disclosure. For example, functional modules/units in various embodiments of the present disclosure may be integrated into one processing module, or each module/unit may exist alone physically, or two or more modules/units may be integrated into one module/unit.
Those of ordinary skill would further appreciate that the elements and algorithm steps of the examples described in connection with the embodiments disclosed herein may be embodied in electronic hardware, in computer software, or in a combination of the two, and that the elements and steps of the examples have been generally described in terms of function in the foregoing description to clearly illustrate the interchangeability of hardware and software. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the solution. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure.
The present embodiment provides an electronic device comprising a memory, a processor coupled to the memory and configured to perform the transmission method shown in fig. 8.
Embodiments of the present disclosure also provide a computer-readable storage medium. Those of ordinary skill in the art will appreciate that all or part of the steps in a method implementing the above embodiments may be implemented by a program to instruct a processor, where the program may be stored in a computer readable storage medium, where the storage medium is a non-transitory (non-transitory) medium, such as a random access memory, a read only memory, a flash memory, a hard disk, a solid state disk, a magnetic tape (MAGNETIC TAPE), a floppy disk (floppy disk), a compact disk (optical disk), and any combination thereof. The storage media may be any available media that can be accessed by a computer or a data storage device such as a server, data center, or the like that contains an integration of one or more available media. The usable medium may be a magnetic medium (e.g., a floppy disk, a hard disk, a magnetic tape), an optical medium (e.g., a digital video disc (digital video disc, DVD)), or a semiconductor medium (e.g., a Solid State Drive (SSD)), or the like.
Embodiments of the present disclosure may also provide a computer program product comprising one or more computer instructions. When the computer instructions are loaded and executed on a computing device, the processes or functions described in accordance with the embodiments of the present disclosure are produced 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, computer, or data center to another website, computer, or data center by a wired (e.g., coaxial cable, fiber optic, digital Subscriber Line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.).
The computer program product is executed by a computer, which performs the method according to the preceding method embodiment. The computer program product may be a software installation package, which may be downloaded and executed on a computer in case the aforementioned method is required.
The descriptions of the processes or structures corresponding to the drawings have emphasis, and the descriptions of other processes or structures may be referred to for the parts of a certain process or structure that are not described in detail.
The above embodiments are merely illustrative of the principles of the present disclosure and its efficacy, and are not intended to limit the disclosure. Modifications and variations may be made to the above-described embodiments by those of ordinary skill in the art without departing from the spirit and scope of the present disclosure. Accordingly, it is intended that all equivalent modifications and variations which a person having ordinary skill in the art would accomplish without departing from the spirit and technical spirit of the present disclosure be covered by the claims of the present disclosure.
Claims (10)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202411626052.XA CN119484451A (en) | 2024-11-14 | 2024-11-14 | Transmission device and method based on stacked network architecture, chip and electronic equipment |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202411626052.XA CN119484451A (en) | 2024-11-14 | 2024-11-14 | Transmission device and method based on stacked network architecture, chip and electronic equipment |
Publications (1)
Publication Number | Publication Date |
---|---|
CN119484451A true CN119484451A (en) | 2025-02-18 |
Family
ID=94574933
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202411626052.XA Pending CN119484451A (en) | 2024-11-14 | 2024-11-14 | Transmission device and method based on stacked network architecture, chip and electronic equipment |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN119484451A (en) |
-
2024
- 2024-11-14 CN CN202411626052.XA patent/CN119484451A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101727874B1 (en) | Method, apparatus and system for qos within high performance fabrics | |
US8396067B2 (en) | Address learning method and address learning switch | |
EP0391583B1 (en) | Dual-path computer interconnect system with four-ported packet memory control | |
US8176385B2 (en) | Apparatus and method for performing cyclic redundancy check (CRC) on partial protocol data units (PDUs) | |
US5187780A (en) | Dual-path computer interconnect system with zone manager for packet memory | |
US20220358070A1 (en) | Pcie-based data transmission method and apparatus | |
JPH11503280A (en) | Window comparator | |
EP3672167A1 (en) | Packet forwarding method and device | |
KR20020060623A (en) | Method and apparatus for providing a reliable protocol for transferring data | |
US6721320B1 (en) | Method and apparatus for fibre channel identification and retrieval | |
US9118597B2 (en) | Method and system for requester virtual cut through | |
CN119484451A (en) | Transmission device and method based on stacked network architecture, chip and electronic equipment | |
US20060047904A1 (en) | Method and system for processing markers, data integrity fields and digests | |
US8090832B1 (en) | Method and apparatus for allocating network protocol operation resources | |
US11636061B2 (en) | On-demand packetization for a chip-to-chip interface | |
CN1266912C (en) | Multiple buffers for removing unwanted header information from received data packets | |
KR100650433B1 (en) | Communicating state information in a network | |
CN119484450A (en) | Message reordering device and method, chip and electronic device | |
CN114124858B (en) | Control method and control device | |
US20200267054A1 (en) | Determining the importance of network devices based on discovered topology, managed endpoints, and activity | |
US20030210684A1 (en) | Packet transceiving method and device | |
CN117971526B (en) | Interrupt trigger equipment determining method and device | |
US20250123985A1 (en) | Autonomous integrated translator for local bus operations | |
CN116366478B (en) | Data packet contrast deduplication method based on FPGA | |
CN113852484B (en) | Terminal equipment network distribution method, device, electronic equipment and computer readable medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |