WO2022022724A1 - Bit block sending method and device - Google Patents

Bit block sending method and device Download PDF

Info

Publication number
WO2022022724A1
WO2022022724A1 PCT/CN2021/109907 CN2021109907W WO2022022724A1 WO 2022022724 A1 WO2022022724 A1 WO 2022022724A1 CN 2021109907 W CN2021109907 W CN 2021109907W WO 2022022724 A1 WO2022022724 A1 WO 2022022724A1
Authority
WO
WIPO (PCT)
Prior art keywords
bit block
message
packet
block
present application
Prior art date
Application number
PCT/CN2021/109907
Other languages
French (fr)
Chinese (zh)
Inventor
孙德胜
杨春生
丁力
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2022022724A1 publication Critical patent/WO2022022724A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/39Credit based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6275Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/06Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]

Definitions

  • the present application relates to the field of communication technologies, and in particular, to a method and apparatus for sending a bit block.
  • communication devices In order to ensure that data packets can be received accurately and without errors, communication devices generally adopt a flow control mechanism. If the flow control mechanism is adopted, it can be ensured that the sender will not send packets that the receiver cannot receive.
  • Fig. 1a shows a schematic flowchart of credit-based flow control.
  • the receiver can send a credit update message to the sender, and the credit update message includes the number of credits.
  • the sender After the sender receives the credit update message, it can send the message to the receiver according to the number of credits included in the credit update message.
  • Figure 1b shows a schematic flow chart of priority-based flow control.
  • the receiver can send priority-based flow control to the sender according to the buffer conditions of the eight queues. PFC) message. After receiving the PFC message, the sender can stop or delay sending messages to the corresponding queue according to the PFC message.
  • PFC Packet Control
  • the typical length of the message may be 256 bytes, and even the length of the message may be longer, wherein the message includes a credit update message or a PFC message.
  • problems such as packet blocking may occur, so that the sender cannot receive the credit update packet or PFC packet from the receiver in time.
  • the present application provides a method and device for sending a bit block, which can ensure that a communication device feeds back flow control information in a timely manner and avoids problems such as packet blocking.
  • an embodiment of the present application provides a method for sending a bit block.
  • the method can be applied to a communication device.
  • the method includes: generating at least one first bit block, where the at least one first bit block includes an indication field, the The indication field is used to carry flow control information, and the flow control information is obtained according to the buffer situation of the communication device; the at least one first bit block is sent.
  • the communication device feeds back the flow control information to the opposite end in the form of the first bit block, so that the at least one first bit block is more likely to be sent in time, and the feedback manner is more flexible. Since the possibility of at least one first bit block being sent out in time is increased, the delay for the peer to obtain the first bit block is reduced, the delay of the service flow completion time (FCT) is reduced, and the network utilization.
  • the length of the at least one first bit block is less than or equal to the length of the message as much as possible.
  • the length of the at least one first bit block may be 64 bits, 128 bits, 256 bits, etc. It is possible to reduce the transmission delay of the first bit block, so as to avoid that the transmission time of the at least one first bit block is too long and other packets are blocked.
  • the first bit block is a non-message bit block.
  • the first bit block is a non-message bit block
  • the non-message bit block includes a non-message start bit block.
  • the value carried by the preset field in the non-message start bit block is different from the value carried by the preset field in the message start bit block.
  • the non-message start bit block and the message start bit block can be distinguished; or, when at least one first bit block includes at least one 0-bit block, the value carried by the preset field of the 0-bit block is used, the O-bit blocks can also be distinguished from other O-bit blocks.
  • the at least one first bit block can also be inserted into the bit stream of the first message currently being sent by the communication device. It is avoided that the at least one first bit block waits for the first packet to be sent before it can be sent, thereby reducing the waiting delay of the at least one first bit block, reducing the delay of the FCT, and improving the network utilization rate.
  • the first bit block is a packet bit block.
  • the first bit block is a message bit block.
  • the communication apparatus may feed back flow control information in the first packet.
  • the message bit block is the message start bit block, the data bit block corresponding to the message start bit block, the end bit block corresponding to the message start bit block, the message end bit block, At least one of the start bit block corresponding to the message end bit block or the data bit block corresponding to the message end bit block.
  • the message start bit block and the non-message start bit block be distinguished by the preset field
  • the message end bit block corresponding to the message start bit block can be distinguished from the non-message start bit block by the preset field.
  • the non-message end bit block corresponding to the message start bit block can also be distinguished by a preset field.
  • the method further includes: sending a first packet, where the first packet is composed of packet bit blocks.
  • the first packet may include a packet start bit block and a data bit block corresponding to the packet start bit block; or, the first packet may include a packet start bit block, the packet The data bit block corresponding to the message start bit block and the end bit block corresponding to the message start bit block.
  • sending the at least one first bit block includes: sending the at least one first bit block after sending the message start bit block of the first message and the first message has not been sent. piece.
  • the opposite end can obtain the information fed back by the communication apparatus according to the at least one first bit block.
  • the first bit block is inserted into the first message and sent out, which further reduces the waiting delay of the at least one first bit block, reduces the delay of the FCT, and improves the network utilization rate.
  • At least one first bit block includes a non-packet start bit block, and a preset field in the non-packet start bit block carries the first value.
  • a preset field in the packet start bit block carries the third value.
  • At least one first bit block includes at least one sequence ordered set (O) bit block, and a preset field in each O-bit block in the at least one O-bit block carries the second numerical value.
  • O sequence ordered set
  • the communication apparatus may feed back the flow control information through at least one 0-bit block.
  • the at least one 0-bit block may also be inserted into the bit stream of the second packet being sent by the communication apparatus.
  • the at least one 0-bit block may include one 0-bit block, two 0-bit blocks, or three 0-bit blocks, etc., which is not limited in this embodiment of the present application.
  • the at least one first bit block further includes: at least one data bit block corresponding to a non-packet start bit block; or an end bit block corresponding to a non-packet start bit block; or a non-packet start bit block At least one data bit block corresponding to the start bit block and an end bit block corresponding to the non-message start bit block.
  • the data bit block corresponding to the non-message start bit block may also be referred to as a non-message data bit block
  • the end bit block corresponding to the non-message start bit block may also be referred to as a non-message end bit block.
  • sending the at least one first bit block includes: sequentially sending the non-packet start bits block and non-message end bit block; or send non-message end bit block and non-message start bit block in sequence.
  • the non-packet bit block may further include at least one of a non-packet end bit block, a data bit block corresponding to the non-packet end bit block, or a start bit block corresponding to the non-packet end bit block One.
  • the data bit block corresponding to the non-message end bit block may also be called a non-message data bit block
  • the start bit block corresponding to the non-message end bit block may also be called a non-message start bit block
  • the flow control information includes information on the number of credits or the duration information for which at least one queue is stopped from sending packets.
  • At least one of the first bit blocks further includes a cyclic redundancy check (cyclic redundancy check, CRC) field.
  • CRC cyclic redundancy check
  • the CRC field may be used to carry CRC information, and the CRC information may be used to protect flow control information and the like in the at least one first bit block.
  • the first bit block is a P1B/P2B bit block
  • P1 represents the number of payload bits of the first bit block
  • P2 represents the total number of bits of the first bit block
  • P2-P1 represents the number of bits of the first bit block. The number of sync header bits for the first bit block.
  • the value of P1 is any one of the following: 64, 128, 256, or 512; the value of P2-P1 is any one of the following: 1, 2, or 3.
  • the method provided in the first aspect of the present application may be applied to a communication device, and the communication device may include a receiving end.
  • an embodiment of the present application provides a method for receiving a bit block.
  • the method includes: receiving at least one first bit block, where the at least one first bit block includes an indication field, where the indication field is used to carry flow control information , the flow control information is obtained according to the buffering situation of the receiving end; and the sending situation of the second packet is adjusted according to the flow control information.
  • the communication device may also obtain a block type field of at least one first bit block, and adjust the sending situation of the second message according to the type field, the value carried by the preset field, and the indication field .
  • the block type field of at least one first bit block is 0x4B, and the preset field carries 0x06, it means that the obtained at least one first bit block is an 0-bit block, and the function of the 0-bit block is to be used for If the flow control information is fed back, the communication device can adjust the sending situation of the second packet according to the indication field in the 0-bit block.
  • the block type field of at least one first bit block is 0x78, and the preset field carries 0xF5
  • the communication device can adjust the sending situation of the second message according to the indication field in the non-message start bit block.
  • At least one first bit block further includes a CRC field, where the CRC field is used to carry CRC information.
  • adjusting the sending situation of the second packet according to the flow control information includes: adjusting the data volume of the second packet according to the number of credits; or, according to the duration information of at least one queue being stopped from sending the packets Adjust the corresponding queue to stop sending the second packet.
  • adjusting the sending situation of the second packet according to the flow control information includes: adjusting the second packet according to the flow control information when the CRC information in the at least one first bit block is successfully checked. the sending of the text.
  • the method provided in the second aspect of the present application can be applied to a communication device, and the communication device may include a transmitter.
  • the present application provides a communication apparatus for performing the method in the first aspect or any possible implementation manner of the first aspect.
  • the communication apparatus includes corresponding means for performing the method of the first aspect or any possible implementation of the first aspect.
  • the communication device may include a transceiving unit and a processing unit. It can be understood that, for the specific implementation of the transceiver unit and the processing unit, reference may be made to the following specific embodiments, which will not be described in detail here.
  • the present application provides a communication apparatus for performing the method in the second aspect or any possible implementation manner of the second aspect.
  • the communication device includes corresponding means for performing the method of the second aspect or any possible implementation of the second aspect.
  • the communication device may include a transceiving unit and a processing unit. It can be understood that, for the specific implementation of the transceiver unit and the processing unit, reference may be made to the following specific embodiments, which will not be described in detail here.
  • the present application provides a communication device, where the communication device includes a processor, and the processor can be configured to execute the method shown in the first aspect or any possible implementation manner of the first aspect.
  • the process of sending a message, receiving a message, or sending at least one first bit block (hereinafter collectively referred to as information) in the above method can be understood as the information output by the processor process, and the process by which the processor receives input information.
  • the processor In outputting information, the processor outputs the information to the transceiver for transmission by the transceiver. After the information is output by the processor, additional processing may be required before reaching the transceiver.
  • the processor receives incoming information
  • the transceiver receives that information and feeds it into the processor. Further, after the transceiver receives the information, the information may require additional processing before being input to the processor.
  • sending at least one first bit block may be understood as the processor outputting the at least one first bit block.
  • sending the first packet may be understood as the processor outputting the first packet and so on.
  • the above-mentioned processor may be a processor specially used to execute these methods, or may be a processor that executes computer instructions in a memory to execute these methods, such as a general-purpose processor.
  • the processor may also be configured to execute a program stored in the memory, which, when executed, causes the communication apparatus to perform the method shown in the first aspect or any possible implementation of the first aspect.
  • the memory is located outside the above-mentioned communication device.
  • the memory is located within the above-mentioned communication device.
  • the processor and the memory may also be integrated into one device, that is, the processor and the memory may also be integrated together.
  • the communication device further includes a transceiver, where the transceiver is configured to receive a message or send a message, and the like.
  • the processor may be configured to generate at least one first bit block; the transceiver may be configured to send at least one first bit block; or, to send a first packet; or, to receive a second messages, etc.
  • the present application provides a communication device, where the communication device includes a processor, and the processor can be configured to execute the method shown in the second aspect or any possible implementation manner of the second aspect.
  • receiving the at least one first bit block may be understood as the processor receiving the input at least one first bit block.
  • sending the second packet may be understood as the processor outputting the second packet and so on.
  • the above-mentioned processor may be a processor specially used to execute these methods, or may be a processor that executes computer instructions in a memory to execute these methods, such as a general-purpose processor.
  • the processor may also be configured to execute a program stored in the memory which, when executed, causes the communication apparatus to perform the method as shown in the second aspect or any possible implementation of the second aspect above.
  • the memory is located outside the above-mentioned communication device.
  • the memory is located within the above-mentioned communication device.
  • the processor and the memory may also be integrated into one device, that is, the processor and the memory may also be integrated together.
  • the communication device further includes a transceiver, where the transceiver is configured to receive a message or send a message.
  • the processor may be configured to adjust the sending situation of the second packet according to the flow control information included in the at least one first bit block; or, the processor may also be configured to The CRC information in the one-bit block is checked, etc.
  • the transceiver may be configured to receive at least one first bit block; or, receive a first message; or, send a second message, and so on.
  • the present application provides a communication device, the communication device includes a logic circuit and an interface, the logic circuit is configured to generate at least one first bit block, and the interface is configured to output the at least one first bit block.
  • the interface may also be used to output the first packet and/or input the second packet.
  • the present application provides a communication device, the communication device includes a logic circuit and an interface, the interface is used to input at least one first bit block, and the logic circuit can be used to adjust the sending of the first packet according to the flow control information condition.
  • the logic circuit may also be used to check the CRC information in the at least one first bit block.
  • the interface may also be used to input the first packet and/or output the second packet.
  • the present application provides a computer-readable storage medium, the computer-readable storage medium is used to store a computer program, which, when it runs on a computer, enables the first aspect or any possible implementation of the first aspect The method shown is executed.
  • the present application provides a computer-readable storage medium, the computer-readable storage medium is used to store a computer program, which enables the second aspect or any possible implementation manner of the second aspect when it runs on a computer. The method shown is executed.
  • the present application provides a computer program product, the computer program product comprising a computer program or computer code, which, when run on a computer, makes the above-mentioned first aspect or any possible implementation of the first aspect as shown method is executed.
  • the present application provides a computer program product, the computer program product comprising a computer program or computer code, which, when run on a computer, makes the second aspect or any possible implementation of the second aspect described above method is executed.
  • the present application provides a computer program, when the computer program runs on a computer, the method shown in the first aspect or any possible implementation manner of the first aspect is executed.
  • the present application provides a computer program, when the computer program runs on a computer, the method shown in the second aspect or any possible implementation manner of the second aspect is executed.
  • the present application provides a communication system, the communication system includes a sending end and a receiving end, the receiving end can be used to execute the method shown in the first aspect or any possible implementation manner of the first aspect, the The sending end may be configured to execute the method shown in the second aspect or any possible implementation manner of the second aspect.
  • Figure 1a shows a schematic flowchart of a credit-based flow control provided by an embodiment of the present application
  • FIG. 1b shows a schematic flowchart of a priority-based flow control provided by an embodiment of the present application
  • 2a is a schematic diagram of a format of a bit block provided by an embodiment of the present application.
  • FIG. 2b is a schematic diagram of a format of another bit block provided by an embodiment of the present application.
  • 3a is a schematic diagram of the format of a 0-bit block provided by an embodiment of the present application.
  • 3b to 3d are schematic diagrams of a method for distinguishing a message bit block and a non-message bit block provided by an embodiment of the present application;
  • FIG. 4 is a schematic diagram of a layered architecture of a 40G/100G Ethernet provided by an embodiment of the present application
  • FIG. 5 is a schematic flowchart of a method for sending a bit block provided by an embodiment of the present application
  • 6a to 6d are schematic diagrams comparing message bit blocks and non-message bit blocks provided by embodiments of the present application;
  • 7a and 7b are schematic diagrams of formats of a 0-bit block provided by an embodiment of the present application.
  • 7c is a schematic diagram of transmission of a 0-bit block provided by an embodiment of the present application.
  • FIG. 7d is a schematic diagram of changes in packet length and link utilization provided by an embodiment of the present application.
  • 8a is a schematic diagram of the format of at least one first bit block provided by an embodiment of the present application.
  • 8b and 8c are schematic diagrams of transmission of a non-message start bit block and a non-message end bit block provided by an embodiment of the present application;
  • 9a and 9b are schematic diagrams of formats of at least one first bit block provided by an embodiment of the present application.
  • FIG. 9c is a schematic diagram of transmission of at least one first bit block provided by an embodiment of the present application.
  • 10a and 10b are schematic diagrams of formats of at least one first bit block provided by an embodiment of the present application.
  • 10c is a schematic diagram of transmission of at least one first bit block provided by an embodiment of the present application.
  • FIG. 11 is a schematic structural diagram of a communication device provided by an embodiment of the present application.
  • FIG. 12 is a schematic structural diagram of another communication device provided by an embodiment of the present application.
  • FIG. 13 is a schematic structural diagram of another communication apparatus provided by an embodiment of the present application.
  • At least one (item) means one or more
  • plural means two or more
  • at least two (item) means two or three and three
  • “and/or” is used to describe the relationship of related objects, indicating that there can be three kinds of relationships, for example, "A and/or B” can mean: only A exists, only B exists, and both A and B exist three A case where A and B can be singular or plural.
  • the character “/” generally indicates that the associated objects are an “or” relationship.
  • At least one of the following” or similar expressions refers to any combination of these items. For example, at least one (a) of a, b or c, can mean: a, b, c, "a and b", “a and c", “b and c", or "a and b and c" ".
  • the receiving end sends a credit update message to the sending end, and the credit update message includes the credit quantity, and the credit quantity can be determined according to the receiving buffer of the receiving end.
  • the sender can send the message to the receiver according to the number of credits included in the credit update message.
  • the sender can send the message immediately; and when the number of credits is insufficient, the sender can buffer the message and accumulate the number of credits.
  • the number of credits sent by the receiver can be used to instruct the sender to send a message corresponding to the amount of data.
  • the sender and the receiver can respectively include 8 queues.
  • the receiving end may send a PFC message to the sending end, and the PFC message (or may also be referred to as a PFC frame) includes the time when the queue stops sending messages. and the ID of the corresponding queue. Therefore, after receiving the PFC message, the sender stops or delays sending the message through the corresponding queue according to the PFC message. For the receiver, the receiver stops or delays receiving the message through the corresponding queue.
  • a message is a unit of data exchanged and transmitted in a network.
  • the message may include destination MAC address (destination address) information, source MAC address (source address) information, length/type (length/type) information, data information and frame check sequence (frame check sequence, FCS). )Wait.
  • the message may further include a preamble (preamble), a frame start delimiter (startofframedelimiter, SFD) and the like.
  • FIG. 4 shows a schematic diagram of a layered architecture in 40G/100G Ethernet.
  • the function of the media access control (MAC) layer is to verify the packets;
  • the function of the reconciliation sublayer (RS) is to provide a kind of media independent interface (some kind of media independent interface).
  • xMII and the signal mapping mechanism between the MAC layer;
  • the function of the physical coding sublayer (PCS) is to encode the signal received from xMII;
  • the physical media access sublayer physical media attachment, PMA
  • PMA physical media attachment
  • PMD physical media dependent layer
  • the functions introduced in this application are only examples, and in specific implementation, each layer may further include other functions, etc., which are not limited in this application.
  • every 8 bits of the message are sequentially mapped to channel 0 to channel 7 of the xMII interface.
  • the PCS performs 64B/66B encoding based on the signal received from the xMII interface, such as adding a 2-bit sync header to form a 64B/66B bit block.
  • a 7-byte preamble and a 1-byte SFD can be encoded as a start bit block; a 6-byte destination MAC address and a 2-byte partial source MAC address are encoded as the first data bit block, By analogy, several data bit blocks are formed.
  • the PCS will add an end bit block at the end of the packet.
  • the end bit block may contain FCS.
  • the value of the preset field of the start bit block may be set to the first value or the third value.
  • the start bit block may also be called a non-message start bit block, and the value of the preset field of the start bit block is the third value
  • the start bit block may also be referred to as the message start bit block.
  • the value of the preset field of the end bit block may also be set to different values to distinguish the message end bit block and the non-message end bit block.
  • information such as operation management and maintenance may be encoded as 0-bit blocks when 64B/66B encoding is performed through the PCS.
  • the value of the preset field of the 0-bit block may be the second value.
  • the first bit block may be a P1B/P2B bit block, or a P1B/P2B code block, or a P1B/P2B block, or a P1B/P2B encoding block, or a P1B/P2B encoding block. It can be called P1B/P2B bitstream, etc.
  • P1 represents the number of payload bits of the first bit block
  • P2 represents the total number of bits of the first bit block
  • P2-P1 represents the number of synchronization header bits of the first bit block
  • P1 and P2 are positive integers
  • P2 is greater than P1.
  • the P1B/P2B bit block may be a 64B/66B bit block; a 128B/129B bit block; or, alternatively, a 128B/130B bit block; alternatively, a 128B/131B bit block; Or, 256B/258B bit block; Or, 512B/513B bit block; Or, 512B/514B bit block; Or, 512B/515B bit block, etc.
  • Figure 2a shows different types of 64B/66B bit blocks.
  • the two bits “10" or "01" in the header are synchronization header bits
  • the last 64 bits are payload bits, which can be used to carry payload data and the like.
  • Each row in Figure 2a represents a code pattern definition, where D0-D7 represent data bytes, C0-C7 represent control bytes, S0 represent the beginning of a MAC frame, and T0-T7 represent the end of a MAC frame.
  • FIG. 2b shows a 128B/131B bit block, or it may also be called a flow control unit (flow control unit, flit).
  • flow control unit flow control unit
  • flit flow control unit
  • H header
  • H represents the synchronization header of the flit, and different values of H are used to indicate that the flit is a control bit block (also called a control flit) or a data bit block (also called a load) flit (payload flit)), the length of the H can be 1 bit, 2 bits, or 3 bits, etc.
  • the different values of the Type field are used to identify the type of the control bit block, such as the message start bit block (also called message start flit) or O-bit block (also called feedback flit or Oflit, etc.), etc. .
  • the length of the type can be at least 2 bits.
  • different values of the type field can also be used to identify the type of the control bit block as message start flit, credit update flit or PFC flit (credit update flit or PFC flit are collectively referred to as Off), etc.
  • the flit shown in Figure 2b(1) can generally be used to carry request, control or management information.
  • Figures 2b(2) to 2b(4) show that multiple flits carry one packet. The difference between them mainly lies in the protection methods of different CRCs.
  • Figure 2b (3) is the message
  • the start flit is protected by CRC-X
  • Figure 2b(4) shows that both the start flit and the load flit of the message are protected by CRC-Y.
  • the example shown above is illustrated by using different values of the type field to identify the start bit block or the 0-bit block of the message as an example.
  • the different values of the type field can also be used for Identifying the message start bit block, the message end bit block, or the O bit block, etc., will not be described in detail here.
  • the type field can be used to identify the start bit block and the end bit block, and then other fields can be used to distinguish the start bit block as a message start bit block or a non-message start bit block, or, other fields can be used to distinguish the end bit block as the end of the message.
  • the generation position of the first bit block is not limited, and the communication apparatus can either generate at least one first bit block at the xMII interface; or, can also generate at least one first bit block at the PCS layer.
  • at least the first bit block may be a P1B/P2B bit block generated at the PCS; alternatively, the at least one first bit block may also be a bit block including control characters or data characters generated through an xMII interface.
  • Blocks are encoded as P1B/P2B bit blocks after passing through the PCS sublayer.
  • the message bit block may include a boundary bit block and a data bit block, and the boundary bit block may be at least one of a start bit block and an end bit block. Therefore, the bit blocks corresponding to a message may be: A, start bit block + data bit block; B, start bit block + data bit block + end bit block; C, data bit block + end bit block. Exemplarily, if the message bit block is the message start bit block, the data bit block corresponding to the message start bit block, the end bit block corresponding to the message start bit block, the message end bit block, the message end bit block At least one of the start bit block corresponding to the bit block or the data bit block corresponding to the message end bit block.
  • the non-packet bit block may be another bit block other than the packet bit block, for example, it may be an 0-bit block transmitted between packets.
  • the non-message bit block may also be implemented by using a boundary bit block.
  • the non-message bit block may also be implemented by using a boundary bit block and a data bit block together.
  • the preset field of the boundary bit block in the non-message bit block can use a preset value (such as the first value), and the preset field can be used to Distinguish between message boundary bit blocks and non-message boundary bit blocks.
  • the preset field of the start bit block can be used to distinguish, that is, the message start bit block and the non-message start bit block can be distinguished, or the preset field of the end bit block can also be used to distinguish, that is, the message end block can be distinguished. bit blocks and non-end of message bit blocks.
  • the message bit block includes a boundary bit block and a data bit block corresponding to the boundary bit block;
  • the non-message bit block is another bit block other than the message bit block, for example, it may be an 0-bit block.
  • the non-message bit block includes the boundary bit block.
  • the message bit block includes a message boundary bit block and a data bit block corresponding to the message boundary bit block;
  • the non-message bit block is another bit block other than the message bit block, for example, it may be an 0-bit block, a non-message boundary bit block, a data bit block corresponding to a non-message boundary bit block, and a non-message boundary bit block corresponding to The boundary bit block etc.
  • the non-message bit block may include a 0-bit block, a non-message start bit block, a data bit block corresponding to a non-message start bit block, an end bit block corresponding to a non-message start bit block, and a non-message end bit block.
  • the data bit block corresponding to the non-message start bit block may also be called a non-message data bit block
  • the end bit block corresponding to the non-message start bit block may also be called a non-message end bit block
  • the non-message end bit block The start bit block corresponding to the bit block may also be referred to as a non-packet start bit block
  • the data bit block corresponding to the non-packet end bit block may also be referred to as a non-packet data bit block, and so on.
  • the transmission order between the bit blocks can also be adjusted.
  • the end bit block may be sent first, and then the start bit block may be sent, or the end bit block may be sent first, and then the start bit block may be sent.
  • the preset field can be used to identify a block of end-of-message bits or a block of non-end-of-message bits.
  • the message bit block includes a preset field
  • the non-message bit block includes a preset field
  • the value carried by the preset field can be used to identify the message start bit block or the non-message start bit block; or, the The value carried by the preset field can be used to identify the end-of-message block or the non-end-of-message block.
  • the value carried by the preset field may include a first value or a third value, where the first value corresponds to a non-packet bit block, and the third value corresponds to a packet bit block.
  • At least one first bit block includes a preset field
  • the preset field can be used to identify the at least one first bit block as a message bit block or a non-message bit block.
  • the value carried by the preset field may be used to identify the message start bit block or the non-message start bit block; or, the value carried by the preset field may be used to identify the message end bit block or non-message end block. bit block.
  • the preset field may be used to identify the role of the 0-bit block as carrying flow control information or other information.
  • a preset field may be understood as a preset area or a preset position in the bit block, and the preset area or preset position carries a numerical value. This application does not limit which region or position in the bit block the preset field is specifically located in.
  • the preset field may be located in at least one of a start bit block, an end bit block or a data bit block.
  • Figures 3b and 3c show different values of the preset fields in the non-message start bit block.
  • the preset fields in Figure 3b can be carried in the D1 area, and the preset fields in Figure 3c can be carried in the D7 area, or, It may also be said that the preset field in FIG. 3b is located in the D1 area, and the preset field in FIG. 3c is located in the D7 area.
  • the preset field in the non-message start bit block carries 0xE5
  • the preset field in the message start bit block carries 0x55.
  • the preset field in the non-message start bit block carries 0xC5
  • the preset field in the message start bit block carries 0xD5 (bit transmission sequence is 1010 1011).
  • 0xE5 and 0xC5 can be understood as the first value
  • 0x55 and 0xD5 can be understood as the third value.
  • FIG. 3a to FIG. 3c are only an example.
  • the preset field may also be located in other areas.
  • the preset field in FIG. 3b may also be any area or multiple areas in D2 to D6. This application also does not limit the value of the first value carried by the preset field of the non-message bit block, etc., as well.
  • FIG. 3b and FIG. 3c are illustrated by taking the preset field located in the starting bit block as an example, but in this application, the preset field can also be located in the ending bit block, that is, by using the preset field in the ending bit block. Different values of the fields are set to distinguish the end-of-message block and the non-end-of-message block.
  • FIG. 3b and FIG. 3c which will not be described in detail here.
  • various embodiments provided by the present application will be illustrated below by taking the preset field located in the start bit block as an example.
  • Figure 3d shows different values of preset fields in flit.
  • the preset field carries 00001, it means that the flit is a packet start flit.
  • the default field carries 01000, it indicates that the flit is Oflit.
  • the preset field can use two different values to distinguish the start of the packet flit. and Oflit will do. It can be understood that this description is also applicable to the credit update bit block and the PFC bit block in the various embodiments shown below.
  • Table 1 shows an example of a method for distinguishing between non-message bit blocks and message bit blocks.
  • the preset field can not only be used to identify message bit blocks and non-message bit blocks.
  • different values of the preset field may be used to identify the message bit block, the credit update bit block and the PFC bit block.
  • the credit update bit block and the PFC bit block can be understood as non-message bit blocks.
  • the preset field carries 00001, it means that the flit is a packet start flit.
  • the flit is a credit update flit, which can also be called a non-message bit block or an 0-bit block, etc.; when the preset field carries 00110, it means that the flit is a PFC flit, or it can be It is called a non-message bit block or an O-bit block, etc.
  • Table 2 is an example of the method of distinguishing the message bit block, the credit update bit block and the PFC bit block.
  • the values of the preset fields shown above are only examples.
  • the preset fields that distinguish the non-message start bit block and the message start bit block can also be located in other areas, or can also be used for Bearing other numerical values, etc., are not limited in this application. As long as the same field can be used to distinguish non-message bit blocks and message bit blocks by taking different values.
  • the preset fields shown above are mainly used to identify message bit blocks and non-message bit blocks, however, for control bit blocks such as 0-bit blocks, the preset fields can be used to identify the 0-bit block. carried information.
  • the different values carried by the preset fields in the 0-bit block are used to identify that the 0-bit block is used to carry flow control information or retransmission control information.
  • different values carried by the preset fields correspond to different information, and one value corresponds to one type of information. For example, when the preset field in the 0-bit block carries the second value, the 0-bit block is used to carry flow control information.
  • the preset field in the 0-bit block carries the fourth value, the 0-bit block may be used to carry retransmission control information, etc. (only an example).
  • the preset field in the 0-bit block in FIG. 3a may be carried in the 00 area, or it may also be called that the preset field in the 0-bit block is located in the 00 area, or the specific position of the preset field may be located in the 00 area.
  • the preset field may carry a second value, such as 0x06. That is, when the preset field in the 0-bit block carries 0x06, it means that the 0-bit block is used for feeding back flow control information.
  • FIG. 3a only shows the O-bit block corresponding to FIG. 2a, and the specific description of the Offit corresponding to FIG. 2b will not be described in detail here.
  • bit positions 2 to 9 are the D0 area
  • bit positions 10 to 17 8 bits are the D1 area.
  • the 8 bits between the bit positions 2 and 9 are 0x78 (ie, the block type field is 0x78), and the 8 bits between the bit positions 10 and 17 are the D1 area.
  • the 8 bits between the bit positions 2 and 9 are 0xFF (ie, the block type field is 0xFF), and the 8 bits between the bit positions 10 and 17 are the D0 area.
  • the starting bit positions of the bit blocks shown in this application are all 0s. If the start bit position is 1, the bit position occupied by 0x78 of the S0 bit block may be 8 bits between bit positions 3 to 10. In other words, the present application does not limit the starting bit position.
  • bit position Only the description of the bit position is shown here, but the application does not limit the relationship between the bit position and the bit transmission order.
  • the 8 bits between bit positions 2 to 9 are 0x78, but for the specific bit position of the corresponding 8 bits "0111 1000", this application does not limited.
  • the 8 bits whose bit positions are between 2 and 9 in the S0 bit block may be 0111 1000 in sequence, or 0001 1110 in sequence, etc., which is not limited in this application.
  • the receiver sends a credit update message or PFC message to the sender, because the length of the message is generally long, the credit update message or PFC message sent by the receiver may be blocked.
  • the receiving end is sending other messages (such as the first message), in this case, the receiving end needs to wait for the message to be sent before sending the credit update message or the PFC message.
  • the length of the message is 256 bytes, that is, the credit update message or the PFC message needs to wait for a message sending time of 256 bytes.
  • the PFC message may need to wait for a message sending time of the longest Ethernet message length, such as 1518 bytes, before sending the credit update message or PFC message.
  • the length of the credit update message itself also increases the delay for the receiver to send the credit update message. That is, once the credit update message is delayed, the sender cannot send the message in time, so the flow completion time (FCT) of the service flow will be prolonged, resulting in low network utilization.
  • FCT flow completion time
  • the present application provides a method and device for sending a bit block
  • the receiving end can not only indicate its buffer status to the sending end, but also can feed back flow control information in the form of bit blocks, so that the flow control information can be sent out in time is more likely, and the feedback method of flow control information is more flexible. Further, feeding back the flow control information in the form of bit blocks can also interrupt the first packet currently being sent by the receiving end, reduce the delay of the flow control information, reduce the delay of the FCT, and improve the network utilization rate.
  • the method provided in this application can not only be applied to high-speed serial computer expansion bus standard (peripheral component interconnect express, PCIe) or flit-based information technology (information technology, IT) network, but also can be applied to Ethernet, Internet protocol (internet protocol, IP) network, packet transport network (PTN), agile transport network (ATN), sliced packet network (slicing packet network, SPN), etc., for the methods provided in this application can be applied to
  • the network is not limited.
  • the method provided in this application may be applied to a communication device, and the communication device may be a device supporting PCIe, flit, or Ethernet technology, or the like.
  • the communication device may be any form of computer, server, switch (or referred to as switching device, switching chip, etc.), router, network card, etc.
  • the specific form of the communication device is not limited in this application.
  • the method provided in this application may be applied to two communication apparatuses, for example, the two communication apparatuses may include a sending end and a receiving end.
  • the specific form of the transmitting end and the receiving end may refer to the above-mentioned form of the communication device.
  • the sending end and the receiving end may also be understood as any two interfaces.
  • the method provided in this application can be applied to a link-level (also referred to as point-to-point) scenario, where the link-level scenario may include a sender and a receiver, and During the transmission of a packet (such as the first packet or the second packet or at least one first bit block, etc.), the packet will not be lost, but problems such as transmission errors may occur.
  • the sending end may be understood as a communication device that sends the second message, and the receiving end may be understood as a communication device that receives the second message.
  • the sending end may be understood as a communication device that receives the first message, and the receiving end may be understood as a communication device that sends the first message.
  • the message shown in the present application may also be called a packet or a frame, etc., and other names of the message are not limited in this embodiment of the present application.
  • FIG. 5 is a schematic flowchart of a method for sending a bit block provided by an embodiment of the present application. As shown in FIG. 5 , the method includes:
  • the receiving end generates at least one first bit block, where the at least one first bit block includes an indication field, where the indication field is used to carry flow control information, where the flow control information is obtained according to the buffering situation of the receiving end.
  • the buffering situation of the receiving end includes the buffering size of the receiving end, or the buffering size of the buffering queue of the receiving end, and the like.
  • the cache size of the cache queue of the receiving end includes whether the cache size of the cache queue of the receiving end exceeds a cache threshold and the like.
  • the receiving end can obtain the flow control information.
  • the flow control information may include information on the number of credits or the duration of time when at least one queue is stopped from sending packets.
  • the number of credits may be determined according to the buffer size of the receiving end, and one credit (credit) may correspond to a packet of a certain amount of data.
  • one credit may correspond to a 16-byte message, etc., which is not limited in this embodiment of the present application.
  • the duration information of at least one queue being stopped from sending packets may be determined according to the buffer size of the buffer queue of the receiving end.
  • the time unit of the duration information may be the time required for the physical layer chip to send 512-bit data.
  • one time unit of the duration information indicates that the time when the corresponding queue of the receiving end suspends receiving packets is the time required for the physical layer chip of the sending end to send 512-bit data.
  • the maximum time of the duration information may be 0xFFFF.
  • the flow control information may include, in addition to information on the duration of at least one queue that is stopped from sending packets, an identifier of the at least one queue.
  • the flow control information may include information on the duration of a queue being stopped from sending packets and an identifier of the queue.
  • the identifier of the queue may be any one of 0 to 7, or other identifiers, etc. , the embodiments of the present application are not limited.
  • the flow control information may include duration information of the two queues being stopped from sending packets and an identifier of each of the two queues.
  • the flow control information may include information on the duration that each of the eight queues is stopped from sending packets, and may also include an identifier of each of the eight queues.
  • the indication field includes not only duration information, but also a queue identifier corresponding to the duration information.
  • the at least one first bit block further includes a cyclic redundancy check CRC field, where the CRC field is used to carry the CRC information of the at least one first bit block, that is, the CRC field can be used for The at least one first block of bits is checked.
  • the CRC information may be used to protect the flow control information in the at least one first bit block.
  • the length of the CRC field may be 4 bits, 8 bits, 16 bits, or 32 bits, etc. The length of the CRC may be determined according to a CRC check method, etc. The length of the CRC field is not limited in this embodiment of the present application.
  • the receiving end sends at least one first bit block to the transmitting end, and correspondingly, the transmitting end receives the at least one first bit block.
  • the method shown in FIG. 5 may further include step 503 .
  • the receiving end sends a first message to the sending end, where the first message is composed of message bit blocks.
  • the sending end receives the first message.
  • the first packet may include a packet start bit block, a data bit block corresponding to the packet start bit block, and an end bit block corresponding to the packet start bit block (just an example).
  • the first packet may include a packet start bit block (eg S0), a packet data bit block (eg D0-D7) and a packet end bit block (eg T0-T7) as shown in FIG. 2a.
  • the first packet may include a packet start bit block and a data bit block corresponding to the packet start bit block.
  • the first packet may include a packet start bit block and a packet data bit block as shown in FIG. 2b(2).
  • the specific value of the preset field in the message start bit block reference may be made to the above description, which will not be described in detail here.
  • the first bit block may be a non-message bit block, or the first bit block is a message bit block.
  • the specific forms of the first bit block are respectively shown below.
  • the first bit block is a non-message bit block.
  • the first bit block is different from the bit block composing the message (for example, the bit block composing the message may be called the second bit block), for example, the value of the preset field in the non-message start bit block is the same as the message start bit.
  • the values of the preset fields in the block are different.
  • the first bit block is a non-message bit block.
  • at least one first bit block includes a non-message start bit block, as shown in the second diagrams of FIG. 6a to FIG. 6d, respectively.
  • the at least one first bit block may further include a non-packet end bit block, etc.
  • the receiving end may send the at least one first bit block independently.
  • the receiving end sends the first packet after sending the at least one first bit block; or, the receiving end sends the at least one first bit block after sending the first packet.
  • the receiving end may insert the at least one first bit block into the first message sent in. That is, the receiving end can interrupt the first packet currently being sent, and insert the at least one first bit block into the first packet.
  • the above step 503 can also be replaced with: after sending the message start bit block of the first message and the first message has not been sent, the receiving end sends at least one first bit to the sending end piece.
  • the preset fields are located in different areas. Therefore, in implementation manner 1, after receiving the at least one first bit block, the transmitting end can check the at least one bit block according to the CRC information carried in the CRC field in the at least one first bit block. In the case that the verification of the CRC information of the at least one first bit block is successful, the transmitting end may obtain the value carried in the preset field according to the block type field of the at least one first bit block. If the value carried in the preset field in the at least one first bit block is the first value, the sending situation of the second packet is adjusted according to the flow control information in the at least one first bit block.
  • the block type field of the non-packet start bit block is 8 bits whose bit positions are between 2 and 9, and the block type field of the non-packet type field is 8 bits.
  • the value is 0x78.
  • the sender can adjust the value of the second packet by acquiring the value carried by the preset field and indicating the field. delivery situation.
  • the block type field of the at least one 0-bit block is 8 bits whose bit position is between 2 and 9, and the value of the block type field is 0x4B . Then, according to the numerical value carried by the preset field of the at least one 0-bit block, such as the second numerical value, and the indication field, the sending situation of the second packet is adjusted.
  • the first bit block is a message bit block.
  • the receiving end may just need to send the first packet, but the first packet has not been sent. In this case, the receiving end may feed back the flow control information in the first packet. In other words, the receiving end may carry the credit quantity or duration information, etc. in the message start bit block, and send it together with the first message.
  • the value carried by the preset field in the first bit block is the third value, as shown in the first figures of FIG. 6a to FIG. 6d, respectively.
  • At least one first bit block in step 502 is carried in the first packet, and is sent together with the first packet.
  • the first packet shown here and the first packet in step 503 may be understood as different first packets (that is, may be understood as not the same packet).
  • the transmitting end may perform the first bit block according to the CRC information carried in the CRC field (also referred to as the frame check sequence (FCS) field) of the first packet.
  • CRC field also referred to as the frame check sequence (FCS) field
  • FCS frame check sequence
  • the sender also needs to check the CRC information protecting the first packet.
  • the transmitting end may perform step 505 . If another CRC information (eg, FCS) of the first packet fails to be checked, the sender may notify the receiver to retransmit the first packet.
  • FIG. 6a and FIG. 6c are schematic diagrams showing the format of at least one first bit block when the receiving end feeds back the number of credits.
  • FIG. 6b and FIG. 6d are schematic diagrams showing the format of at least one first bit block when the receiving end feeds back the duration information.
  • Figures 6a and 6b show schematic diagrams of the format of at least one first bit block when the receiving end feeds back flow control information in the form of 64B/66B
  • Figures 6c and 6d show the receiving end feeding back in the form of flit
  • flow control information a schematic diagram of the format of at least one first bit block. It can be understood that although the first packets shown in FIGS.
  • 6a to 6d include flow control information, the flow control information is carried in a packet bit block such as a packet start bit block.
  • the message start bit block includes a field for carrying flow control information and a CRC field. It can be understood that, in FIG. 6c and FIG. 6d , when the preset field carries 01000, it is also possible to identify whether the flit includes flow control information through the 2 bits after the preset field. Alternatively, whether the flit includes flow control information and the like may also be identified through 1 bit after the preset field, which is not limited in this embodiment of the present application.
  • the start flit of the first message sent by the receiving end may also include a type field, and the type field may be used to identify the start flit. Whether to include flow control information.
  • This embodiment of the present application does not limit the specific position or length of the field of this type.
  • the specific positions of the fields shown in FIG. 6a to FIG. 6d are only examples, and in a specific implementation, the above fields may also be in other positions.
  • the lengths of the above fields may also be determined according to the lengths of the message bit blocks included in the first message, and the lengths and specific values of the fields shown above are not limited in the embodiments of the present application.
  • Embodiment 1 to Embodiment 4 shown below For the specific description of the non-message bit block, reference may also be made to Embodiment 1 to Embodiment 4 shown below.
  • the method shown in FIG. 5 may further include step 504 and step 505 .
  • the transmitting end performs CRC check on at least one first bit block.
  • step 504 may also be understood as the sending end checking the CRC information in the at least one first bit block.
  • the sending end adjusts the sending situation of the second packet according to the flow control information in the at least one first bit block.
  • the sending end fails to check the CRC information in at least one first bit block
  • the at least one first bit block may be directly discarded.
  • the sending end may distinguish the message bit block and the non-message bit block according to the value carried by the preset field. If the preset field carries the first value, the flow control information can be obtained from the indication field. Alternatively, the sending end can obtain whether the bit block is an 0-bit block through the difference in the block type field of the bit block, and if it is an 0-bit block, the function of the 0-bit block can be obtained through a preset field, such as the preset field carrying For the second value, the flow control information is obtained from the 0-bit block indication field.
  • step 505 reference may also be made to Embodiments 1 to 4 shown below.
  • the sending end may adjust the data volume of the second packet to be sent according to the flow control information, or adjust the corresponding queue to stop sending the second packet, etc., which is not limited in the embodiment of the present application.
  • the sender adjusts the data amount of the second packet according to the number of credits in the at least one first bit block. If the data volume of the at least one second packet to be sent is less than or equal to the data volume corresponding to the credit quantity, the sending end may directly send the at least one second packet.
  • the sender first buffers the second packet, and accumulates the credit quantity until the data volume corresponding to the credit quantity is greater than or equal to the second packet.
  • the data volume of the message is sent, and the second message is sent.
  • the sending end may further adjust the sending rate of the corresponding queue according to the duration information in the at least one first bit block.
  • the receiving end may feed back the flow control information to the transmitting end in the form of a first bit block instead of a message.
  • the transmission delay of the at least one first bit block may be reduced, so as to prevent the transmission time of the at least one first bit block from being too long and other packets being blocked.
  • the first bit block is a non-packet bit block
  • the non-packet Bit blocks and message bit blocks can be distinguished by the receiver or the sender.
  • the value carried by at least one 0-bit block preset field is different from the value borne by other 0-bit block preset fields, so that the transmitting end or the receiving end can distinguish the role of at least one 0-bit block according to the value of the preset field.
  • the at least one first bit block can also be inserted into the first packet and sent out, which further reduces the waiting delay of the at least one first bit block, reduces the delay of the FCT, and improves the network utilization rate.
  • At least one first bit block includes at least one 0-bit block, and a preset field in each 0-bit block carries the second value.
  • the indication field and the CRC field may be located at bit block positions 10 to 33 and 38 to 65 in the 0-bit block, respectively, and the indication field and the CRC field may be located at different bit positions respectively.
  • the length of the indication field may be at least 8 bits, for example, the indication field may be 8 bits, 16 bits, 24 bits, 128 bits, etc.
  • the specific length of the indication field is not limited in this embodiment of the present application.
  • the length of the CRC field may be 4 bits, 8 bits, 16 bits, or 32 bits, etc. Regarding the length of the indication field and the CRC field, etc., the embodiments shown below are also applicable, and will not be described in detail below.
  • the positions and lengths of the indication field, the CRC field and the preset field in the 0-bit block may be as shown in FIG. 7a.
  • the indication field can be located in 8 bits between bit positions 10 to 17 in the 0-bit block
  • the CRC field can be located in the 0-bit block.
  • the positions are 8 bits between 18 and 25.
  • the indication field may be located in 20 bits between bit positions 10 to 29 in the 0-bit block, that is, a part of the indication field carries a queue The duration of the stopped sending packets, and the other part of the indication field carries the identifier of the one queue.
  • the CRC field is located in 4 bits between bit positions 30 to 33 in a block of 0 bits.
  • the positions and lengths of the indication field and the CRC field shown in FIG. 7a are only examples.
  • the indication field and the CRC field may also be located in other areas of the 0-bit block. This is not limited.
  • other positions in the 0-bit block are marked as reserved (reserved, rsvd), but this does not mean that the other positions are not occupied.
  • rsvd reserved (reserved, rsvd)
  • the embodiment of the present application does not limited.
  • other embodiments shown in this application are also applicable.
  • one credit corresponds to 16 bytes, the number of credits is 20, and the schematic diagram shown in Fig. 7a is taken as an example to describe the specific scene of the method for sending the bit block provided by the embodiment of the present application.
  • the format of the 0-bit block may be as shown in the first figure of FIG. 7b, the indication field occupies 8 bits, and the value range of the credit quantity is 0 to 255 (including 0 and 255).
  • the number of credits is equal to 0 it means that the receiving end has no receiving ability, that is, the buffering situation of the receiving end is saturated and the message cannot be buffered any more.
  • the receiving end When the receiving end needs to send the at least one 0-bit block, the receiving end is sending the first packet to the sending end.
  • the first message can be understood as S (the message start bit block) DDD...D (that is, the data bit block corresponding to the message start bit block) T (that is, the message start bit block corresponds to the end bit block) of the message bit block stream.
  • the receiving end may directly send the at least one 0-bit block without sending the message bit block stream of the first message, and FIG. 7c shows one 0-bit block. That is, the receiving end can interrupt the message bit block stream of the first message currently being sent, and insert at least one 0-bit block into the message bit block stream of the first message, so that the at least one 0-bit block send out.
  • the sending end receives the first message from the receiving end.
  • the sending end receives the control bit block and obtains the block type of the control bit block.
  • the format of the 0-bit block may be as shown in the second figure of Figure 7b, the indication field carries 0xFFFF, indicating that the priority queue numbered 7 needs to suspend the maximum time for sending packets, and the indication field also carries 0x7, indicating that the transmission is suspended
  • the queue number of the packet is 7.
  • the receiving end can also generate at least one 0-bit block, and the format of the 0-bit block is as shown in the third figure of Figure 7b. .
  • the method for the receiver to send the at least one 0-bit block and the method for the transmitter to receive the at least one 0-bit block can be referred to the above description, which will not be described in detail here.
  • the link utilization rate may satisfy the following formula.
  • TLP len is used to indicate the payload length of the first packet, that is, the maximum payload length of the first packet; H len is used to indicate the header length of the first packet; ACK len is used to indicate that the receiver receives the second The length of the acknowledgement (acknowledge, ACK) message fed back after the message; FC len is used to indicate the length of at least one first bit block; FC updateFactor is used to indicate the transmission factor of at least one first bit block; ACK updateFactor is used to indicate the length of the at least one first bit block.
  • P bw is used to indicate the blocking degree, such as the delay when the receiver sends at least one first bit block.
  • Fig. 7d shows the change of the link utilization rate according to the difference of the packet length (such as the above-mentioned TLP len ).
  • the packet length such as the above-mentioned TLP len
  • “1", "2" or “3” respectively indicate the change of the packet length and the link utilization rate in the best case, the average case or the worst case. It can be seen from FIG. 7d that the method provided by this embodiment of the present application can not only send at least one first bit block in time, but also improve link utilization.
  • the buffer size that needs to be increased by the receiving end is as follows Show:
  • the buffer size that the receiver needs to increase is only 16 bytes. byte.
  • At least one first bit block includes a non-message start bit block and a non-message end bit block, and a preset field in the non-message start bit block carries the first value.
  • the indication field, the CRC field, and the preset field may be located between 10 and 65 in the non-message start bit block, and between 10 and 65 in the non-message end bit block.
  • bit positions of the preset field, the indication field and the CRC field may be as shown in Figure 8a.
  • the indication field may be located in 8 bits in bit positions 10 to 17 in the non-end of message bit block, and the CRC field in bit positions 18 to 25 in the non-end of message bit block 8 bits between.
  • the indication field may be located in 5 bytes between bit positions 10 and 49 in the non-end of message bit block in which the CRC field is located Positions are 16 bits between 50 and 65.
  • the receiving end in the case that the receiving end needs to feed back flow control information, and the receiving end is currently sending the message bit block stream of the first message.
  • the receiving end may insert the non-message start bit block and the non-message end bit block into the stream of message bit blocks currently being sent. Therefore, after obtaining the non-message start bit block (for example, the block type field is 0x78), the sender can know that the non-message start bit block is not based on 0xE5 carried by the preset field in the non-message start bit block.
  • the message starts a block of bits.
  • the sender obtains the non-message end bit block, it obtains credit quantity or duration information from the indication field of the non-message end bit block. Then, the sending end adjusts the sending situation of the second packet.
  • FIG. 8b shows that the receiving end sequentially inserts a non-message start bit block and a non-message end bit block into the message bit block stream of the first message.
  • the receiving end may also insert a non-message end bit block and a non-message start bit block into the message bit block stream of the first message in sequence.
  • the receiving end may sequentially send a non-message start bit block and a non-message end bit block; or, the receiving end may also sequentially send a non-message end bit block and a non-message start bit block .
  • m and n in Fig. 8a may represent the identification (or number, etc.) of different queues. It can be understood that, for the specific description of FIGS. 8 a to 8 c , reference may be made to FIGS. 5 to 7 c , which will not be described in detail here.
  • At least one first bit block includes a non-packet start bit block, at least one non-packet data bit block corresponding to the non-packet start bit block, and a non-packet end bit block corresponding to the non-packet start bit block, and the The preset field in the non-message start bit block carries the first value.
  • the indication field and the CRC field may be located in non-message data bit blocks, respectively, and occupy different bit positions.
  • the at least one first bit block may include a non-message start bit block, a non-message data bit block, and a non-message end bit block.
  • the preset field is included in the non-message start bit block, and the indication field and the CRC field may be included in the non-message data bit block.
  • the embodiments of the present application do not limited.
  • the at least one first bit block may further include a non-message start bit block, at least two non-message data bit blocks, and a non-message end bit block.
  • the preset field is included in the non-message start bit block
  • the indication field and the CRC field may be included in the same non-message data bit block, or respectively included in different message data bit blocks, etc.
  • the indication field may be contained in the same block of non-message data bits, or the indication field may be contained in a different block of non-message data bits, or the like.
  • the indication field and the CRC field may be included in different non-message data bit blocks, and in Figure 9b, the indication field is included in at least three non-message data bits in the bit block.
  • the at least one first bit block may further include one non-message start bit block, eight non-message data bit blocks, and one non-message end bit block.
  • the CRC field can be understood as the eighth non-message data bit block, and the credit quantity and duration information, etc., are not limited in this embodiment of the present application.
  • the queue identification information with a length of 8 bits such as e[0:7] can be used to indicate the validity of the duration information corresponding to the eight queues respectively.
  • e[0x11](0001 0001) can indicate that the duration information of queue 0 and queue 4 is valid. It can be understood that the correspondence between the e[0:7] pairs of queues shown here is only an example.
  • Fig. 9c shows a method in which the receiving end sends at least one first bit block, and the transmitting end receives the at least one first bit block.
  • the receiving end sends at least one first bit block
  • the transmitting end receives the at least one first bit block.
  • At least one first bit block includes at least one 0-bit block, and a preset field in each 0-bit block carries the second value.
  • Embodiments 1 to 3 shown above are illustrated by taking the bit block shown in FIG. 2 a as an example, and this embodiment of the present application will take the bit block shown in FIG. 2 b as an example to describe the method provided by the embodiment of the present application.
  • the length of H may be 3 bits.
  • H bears 100 it indicates that the flit is a control flit; when H bears 001, it indicates that the flit is a payload flit.
  • the length of the preset field is 5 bits, the preset field carrying 00001 indicates that the type of the flit is the start of the message flit, the preset field carrying 00101 indicates that the flit type is credit update flit, and the preset field carrying 00110 indicates that the flit Type is PFC flit.
  • the preset field carrying 00001 indicates that the type of the flit is the start of the message flit
  • the preset field carrying 00101 indicates that the flit type is credit update flit
  • the preset field carrying 00110 indicates that the flit Type is PFC flit.
  • H carries 100 and the default field carries carries 00101 the flit is a credit update flit
  • 0x81 in Figure 10b is a representation of e[0:7].
  • e[0:7] may indicate the validity of the corresponding queue, for example, the binary value of 0x81 is 1000 0001, which indicates that Time[0] and Time[7] are valid values.
  • the format of the first bit block may be as shown in the third diagram of FIG. 10a, or as shown in the third diagram of FIG. 10b.
  • the receiving end may insert at least one first bit block into the bit block stream, and send the at least one first bit block to the transmitting end.
  • the Oflit shown in FIG. 10c is the at least one first bit block shown in the embodiment of the present application.
  • each flit in the embodiment of the present application includes a synchronization header, thereby ensuring that at least one first bit block is Inserted into the bit block stream of flit, the sender can also identify the at least one first bit block from D flit.
  • the sender may not be able to identify whether the received flit is a D flit or an Off. .
  • the flow control information is obtained according to the buffer status of the receiving end.
  • the buffer status of the receiving end includes the buffer size of the receiving end, or the buffer size of the buffer queue of the receiving end, and the like.
  • the cache size of the cache queue of the receiving end includes whether the cache size of the cache queue of the receiving end exceeds a cache threshold and the like.
  • the buffer size of the receiving end is further described.
  • the buffer size at the receiving end includes one or more of the following:
  • the size of the free buffer at the receiving end when determining the flow control information, the size of the free buffer at the receiving end.
  • the number of packets discharged by the receiving end is the newly added free buffer size. For example, within the time period when the flow control information is sent twice, the amount of packet data discharged by the receiving end is 2KB, so 2KB is the newly added free buffer size.
  • the link since the link is initialized, the sum of the total amount of packet data discharged by the receiver at the current moment and the buffer size is recorded as the cumulative allocable buffer size. For example, if the total number of packets emptied by the receiver is 10KB and the buffer size is 2KB, then the cumulative buffer size that can be allocated by the receiver is 12KB.
  • the buffer size of the buffer queue of the receiving end is further described.
  • the buffer size of the buffer queue at the receiving end may also include any one or more of the following:
  • the flow control information may include, in addition to the duration information that at least one queue is stopped from sending packets, and also includes the identifier of the at least one queue.
  • the flow control information may also include any one or more of the following:
  • the flow control information may include the identifier of each queue in the at least one queue, the buffer status of each queue, and the like.
  • FIG. 11 is a schematic structural diagram of a communication device provided by an embodiment of the present application, where the communication device includes a processing unit 1101 and a transceiver unit 1102 .
  • the communication apparatus shown in FIG. 11 may be used to perform the operations (functions or steps, etc.) performed by the receiving end in the foregoing embodiments.
  • the communication apparatus may be used to perform steps 501 and 502 shown in FIG. 5 , and the like.
  • the processing unit 1101 may be configured to generate at least one first bit block
  • the transceiver unit 1102 may be configured to output the at least one first bit block
  • the transceiver unit 1102 is further configured to output the first packet.
  • the transceiver unit 1102 is specifically configured to output at least one first bit block after the packet start bit block of the first packet is output and the first packet is not output completely .
  • the transceiver unit 1102 may also be used to acquire (or referred to as inputting) the second packet.
  • the communication apparatus shown in FIG. 11 may be used to perform the operations (or functions or steps, etc.) performed by the sender in the foregoing embodiments.
  • the communication apparatus may be used to perform steps 504 and 505 shown in FIG. 5 , and the like.
  • the transceiver unit 1102 is configured to acquire (or input) at least one first bit block; the processing unit 1101 is configured to adjust the sending of the second packet according to the flow control information in the at least one first bit block condition.
  • the transceiver unit 1102 is configured to output the second packet according to the sending situation of the second packet.
  • the processing unit 1101 is further configured to perform a CRC check on the at least one first bit block.
  • the manner in which the processing unit performs the CRC check on the at least one first bit block may also be different.
  • the processing unit may check the CRC information carried in the CRC field in the at least one first bit block. If at least one first bit block is a message bit block, the processing unit not only checks the CRC information carried by the CRC field in the at least one first bit block, but also needs to check another CRC field (for example, the CRC information carried in the FCS field) is checked.
  • transceiver unit and the processing unit shown in the various embodiments of the embodiments of this application are only examples.
  • each functional module or unit in each embodiment of the present application may be integrated in the A processor may also exist physically alone, or two or more modules or units may be integrated into one module or unit.
  • the above-mentioned integrated modules or units may be implemented in the form of hardware, or may be implemented in the form of software function modules.
  • the processing unit 1101 can be one or more processors
  • the transceiver unit 1102 can be a transceiver, or the transceiver unit 1102 can also be A sending unit and a receiving unit, the sending unit may be a transmitter, and the receiving unit may be a receiver, and the sending unit and the receiving unit are integrated into one device, such as a transceiver.
  • the processor and the transceiver may be coupled, etc., and the connection manner of the processor and the transceiver is not limited in the embodiment of the present application.
  • the communication device 120 includes one or more processors 1220 and a transceiver 1212 .
  • the processor and the transceiver may be configured to perform the functions or operations performed when the above-mentioned communication apparatus is used as the receiving end.
  • the processor is configured to generate at least one first bit block; the transceiver is configured to transmit the at least one first bit block.
  • the transceiver is used to send the first message.
  • the transceiver is configured to send the at least one first bit block after sending the message start bit block of the first message and when the first message has not been sent.
  • the transceiver is further configured to receive the second message.
  • the processor and the transceiver may be configured to perform the functions or operations performed when the above-mentioned communication apparatus is used as the sending end.
  • the transceiver is configured to receive at least one first bit block; the processor is configured to adjust the sending situation of the second packet according to the flow control information in the at least one first bit block.
  • the transceiver is further configured to send the second message according to the sending situation of the second message.
  • the processor is further configured to perform a CRC check on the at least one first bit block.
  • a transceiver may include a receiver for performing the function (or operation) of receiving and a transmitter for performing the function (or operation) of transmitting ). And transceivers are used to communicate with other devices/devices over the transmission medium.
  • the communication device 120 may further include one or more memories 1230 for storing program instructions and/or data.
  • Memory 1230 and processor 1220 are coupled.
  • the coupling in the embodiments of the present application is an indirect coupling or communication connection between devices, units or modules, which may be in electrical, mechanical or other forms, and is used for information exchange between devices, units or modules.
  • the processor 1220 may cooperate with the memory 1230.
  • the processor 1220 may execute program instructions stored in the memory 1230 .
  • at least one of the above-mentioned one or more memories may be included in the processor.
  • the specific connection medium between the transceiver 1212 , the processor 1220 , and the memory 1230 is not limited in the embodiments of the present application.
  • the memory 1230, the processor 1220, and the transceiver 1212 are connected through a bus 1240 in FIG. 12.
  • the bus is represented by a thick line in FIG. 12, and the connection between other components is only for schematic illustration. , is not limited.
  • the bus can be divided into an address bus, a data bus, a control bus, and the like. For ease of representation, only one thick line is shown in FIG. 12, but it does not mean that there is only one bus or one type of bus.
  • the processor may be a general-purpose processor, a digital signal processor, an application-specific integrated circuit, a field programmable gate array or other programmable logic device, a discrete gate or transistor logic device, a discrete hardware component, etc.
  • a general purpose processor may be a microprocessor or any conventional processor or the like.
  • the steps of the method disclosed in conjunction with the embodiments of the present application may be directly embodied as being executed by a hardware processor, or executed by a combination of hardware and software modules in the processor, or the like.
  • the memory may include, but is not limited to, a non-volatile memory such as a hard disk drive (HDD) or a solid-state drive (SSD), a random access memory (Random Access Memory, RAM), Erasable Programmable Read-Only Memory (Erasable Programmable ROM, EPROM), Read-Only Memory (Read-Only Memory, ROM) or Portable Read-Only Memory (Compact Disc Read-Only Memory, CD-ROM) and so on.
  • a memory is any storage medium that can be used to carry or store program codes in the form of instructions or data structures, and can be read and/or written by a computer (such as the communication devices shown in this application, etc.), but is not limited thereto.
  • the memory in this embodiment of the present application may also be a circuit or any other device capable of implementing a storage function, for storing program instructions and/or data.
  • the communication device shown in the embodiment of the present application may also have more components and the like than those shown in FIG. 12 , which is not limited in the embodiment of the present application.
  • the processing unit 1101 may be one or more logic circuits, which transmit and receive
  • the unit 1102 may be an input/output interface, also called a communication interface, or an interface circuit, or an interface, and so on.
  • the transceiver unit 1102 may also be a sending unit and a receiving unit, the sending unit may be an output interface, and the receiving unit may be an input interface, the sending unit and the receiving unit are integrated into one unit, such as an input/output interface.
  • the logic circuit 1301 may be a chip, a processing circuit, an integrated circuit or a system on chip (SoC) chip, etc.
  • the interface 1302 may be a communication interface, an input and output interface, and the like.
  • the logic circuit and the interface may also be coupled to each other.
  • the specific connection manner of the logic circuit and the interface is not limited in this embodiment of the present application.
  • the communication device shown in FIG. 13 includes a logic circuit 1301 and an interface 1302 . That is, the above-mentioned processing unit 1101 may be implemented by the logic circuit 1301 , and the transceiver unit 1102 may be implemented by the interface 1302 .
  • the logic circuit and interface may be used to perform the functions or operations performed when the above-mentioned communication apparatus is used as the receiving end.
  • the logic circuit is used for generating at least one first bit block; the interface is used for outputting the at least one first bit block.
  • the interface is used to output the first packet.
  • the interface is configured to output the at least one first bit block after outputting the message start bit block of the first message and in the case that the output of the first message is not completed.
  • the interface is also used to input the second packet.
  • the logic circuit and interface may be used to perform the functions or operations performed when the above-mentioned communication apparatus is used as the sending end.
  • the interface is configured to input at least one first bit block; the logic circuit is configured to adjust the output condition of the second packet according to the flow control information in the at least one first bit block.
  • the interface is further configured to output the second packet according to the output condition of the second packet.
  • the logic circuit is further configured to perform CRC check on the at least one first bit block.
  • the present application also provides a computer program for implementing the operations and/or processing performed by the receiving end in the method provided by the present application.
  • the present application also provides a computer program for implementing the operations and/or processing performed by the sender in the method provided by the present application.
  • the present application also provides a computer-readable storage medium, where computer codes are stored in the computer-readable storage medium, and when the computer codes are run on the computer, the computer is made to perform the operations performed by the receiving end in the method provided by the present application and/or or processing.
  • the present application also provides a computer-readable storage medium, where computer codes are stored in the computer-readable storage medium, and when the computer codes are run on the computer, the computer is made to perform the operations performed by the sender in the method provided by the present application and/or or processing.
  • the present application also provides a computer program product, the computer program product includes computer code or computer program, when the computer code or computer program is run on a computer, the operation performed by the receiving end in the method provided by the present application and/or Processing is executed.
  • the present application also provides a computer program product, the computer program product includes computer code or computer program, when the computer code or computer program is run on a computer, the operation performed by the sending end in the method provided by the present application and/or Processing is executed.
  • the embodiment of the present application also provides a communication system, the communication system includes a sending end and a receiving end, the receiving end can be used to perform step 501 and step 502 (sending step) shown in FIG. 5, etc., the sending end can use In order to perform the receiving steps in steps 502 and 503 shown in FIG. 5 , as well as steps 504 and 505 and so on. It is understandable that the steps performed by the sender and the receiver shown here are only examples, and for other steps performed by the receiver and sender, reference may also be made to the foregoing embodiments, which will not be described in detail here.
  • the disclosed system, apparatus and method may be implemented in other manners.
  • the apparatus embodiments described above are only illustrative.
  • the division of the units is only a logical function division. In actual implementation, there may be other division methods.
  • multiple units or components may be combined or Can be integrated into another system, or some features can be ignored, or not implemented.
  • the shown or discussed mutual coupling or direct coupling or communication connection may be indirect coupling or communication connection through some interfaces, devices or units, and may also be electrical, mechanical or other forms of connection.
  • the units described as separate components may or may not be physically separated, and components displayed as units may or may not be physical units, that is, may be located in one place, or may be distributed to multiple network units. Some or all of the units may be selected according to actual needs to achieve the technical effects of the solutions provided by the embodiments of the present application.
  • each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically alone, or two or more units may be integrated into one unit.
  • the above-mentioned integrated units may be implemented in the form of hardware, or may be implemented in the form of software functional units.
  • the integrated unit if implemented in the form of a software functional unit and sold or used as an independent product, may be stored in a computer-readable storage medium.
  • a computer-readable storage medium includes several instructions to cause a computer device (which may be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of the present application.
  • the aforementioned readable storage medium includes: U disk, mobile hard disk, read-only memory (ROM), random access memory (RAM), magnetic disk or optical disk, etc. that can store program codes medium.

Abstract

The present application discloses a bit block sending method and device. The method comprises: generating at least one first bit block, the at least one first bit block comprising an indication field, the indication field being used for carrying flow control information, and the flow control information being obtained according to the caching situation of a communication device; and then sending the at least one first bit block. The method disclosed in the present application can ensure that the communication device feeds back the flow control information in time, so that the feedback mode is more flexible.

Description

比特块的发送方法及装置Bit block transmission method and device
本申请要求于2020年07月31日提交中国专利局、申请号为202010763618.9、申请名称为“比特块的发送方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。This application claims the priority of the Chinese patent application with the application number of 202010763618.9 and the application title of "Method and Device for Sending Bit Blocks", which was filed with the Chinese Patent Office on July 31, 2020, the entire contents of which are incorporated into this application by reference .
技术领域technical field
本申请涉及通信技术领域,尤其涉及一种比特块的发送方法及装置。The present application relates to the field of communication technologies, and in particular, to a method and apparatus for sending a bit block.
背景技术Background technique
为了保证数据报文能够被准确无误的接收,通信装置一般会采用流量控制(flow control)机制。如采用流量控制机制,可以保证发送端不会发送接收端不能接收的报文。In order to ensure that data packets can be received accurately and without errors, communication devices generally adopt a flow control mechanism. If the flow control mechanism is adopted, it can be ensured that the sender will not send packets that the receiver cannot receive.
图1a示出的是基于信用的流量控制的流程示意图,如图1a所示,接收端可以向发送端发送信用更新报文,该信用更新报文中包括信用数量。发送端接收到该信用更新报文后,可以根据该信用更新报文中包括的信用数量向接收端发送报文。Fig. 1a shows a schematic flowchart of credit-based flow control. As shown in Fig. 1a, the receiver can send a credit update message to the sender, and the credit update message includes the number of credits. After the sender receives the credit update message, it can send the message to the receiver according to the number of credits included in the credit update message.
图1b示出的是基于优先级的流量控制的流程示意图,如图1b所示,接收端可以根据8个队列的缓存情况,向发送端发送基于优先级的流量控制(priority-based flow control,PFC)报文。发送端接收到该PFC报文后,可以根据该PFC报文停止或延迟对应队列发送报文。Figure 1b shows a schematic flow chart of priority-based flow control. As shown in Figure 1b, the receiver can send priority-based flow control to the sender according to the buffer conditions of the eight queues. PFC) message. After receiving the PFC message, the sender can stop or delay sending messages to the corresponding queue according to the PFC message.
一般的,报文的典型长度可以为256字节,甚至报文的长度可能会更长,其中,报文包括信用更新报文或PFC报文。由此,可能会导致报文阻塞等问题,使得发送端无法及时接收到接收端的信用更新报文或PFC报文。Generally, the typical length of the message may be 256 bytes, and even the length of the message may be longer, wherein the message includes a credit update message or a PFC message. As a result, problems such as packet blocking may occur, so that the sender cannot receive the credit update packet or PFC packet from the receiver in time.
发明内容SUMMARY OF THE INVENTION
本申请提供一种比特块的发送方法及装置,可保证通信装置及时反馈流量控制信息,避免报文阻塞等问题。The present application provides a method and device for sending a bit block, which can ensure that a communication device feeds back flow control information in a timely manner and avoids problems such as packet blocking.
第一方面,本申请实施例提供一种比特块的发送方法,该方法可以应用于通信装置,该方法包括:生成至少一个第一比特块,该至少一个第一比特块中包括指示字段,该指示字段用于承载流量控制信息,该流量控制信息根据通信装置的缓存情况得到;发送该至少一个第一比特块。In a first aspect, an embodiment of the present application provides a method for sending a bit block. The method can be applied to a communication device. The method includes: generating at least one first bit block, where the at least one first bit block includes an indication field, the The indication field is used to carry flow control information, and the flow control information is obtained according to the buffer situation of the communication device; the at least one first bit block is sent.
本申请实施例中,通信装置通过以第一比特块的形式向对端反馈流量控制信息,使得该至少一个第一比特块被及时发送出去的可能性更高,且反馈方式更灵活。由于至少一个第一比特块被及时发送出去的可能性被增加,因此减少了对端获取该第一比特块的时延,减少了业务流完成时间(flow completion time,FCT)的时延,提高了网络利用率。另外,该至少一个第一比特块的长度尽可能小于或等于报文的长度,示例性的,该至少一个第一比特块的长度可以为64比特、128比特、256比特等,由此,尽可能减少该第一比特块的传输时延,避免该至少一个第一比特块的传输时间过长,而导致其他报文被阻塞。In the embodiment of the present application, the communication device feeds back the flow control information to the opposite end in the form of the first bit block, so that the at least one first bit block is more likely to be sent in time, and the feedback manner is more flexible. Since the possibility of at least one first bit block being sent out in time is increased, the delay for the peer to obtain the first bit block is reduced, the delay of the service flow completion time (FCT) is reduced, and the network utilization. In addition, the length of the at least one first bit block is less than or equal to the length of the message as much as possible. Exemplarily, the length of the at least one first bit block may be 64 bits, 128 bits, 256 bits, etc. It is possible to reduce the transmission delay of the first bit block, so as to avoid that the transmission time of the at least one first bit block is too long and other packets are blocked.
在一种可能的实现方式中,第一比特块为非报文比特块。In a possible implementation manner, the first bit block is a non-message bit block.
本申请实施例中,该第一比特块为非报文比特块,该非报文比特块包括非报文开始比特块。如非报文开始比特块中预设字段承载的数值与报文开始比特块中预设字段承载的数值不 同。由此,该非报文开始比特块和报文开始比特块能够被区分;或者,当至少一个第一比特块包括至少一个O比特块时,通过该O比特块预设字段承载的数值,该O比特块与其他O比特块也能够被区分。而且该至少一个第一比特块还能够被插入该通信装置当前正在发送的第一报文的比特流中。避免该至少一个第一比特块等待第一报文被发送完毕,才能被发送出去,从而减少了该至少一个第一比特块的等待时延,减少FCT的时延,提高了网络利用率。In this embodiment of the present application, the first bit block is a non-message bit block, and the non-message bit block includes a non-message start bit block. For example, the value carried by the preset field in the non-message start bit block is different from the value carried by the preset field in the message start bit block. Thereby, the non-message start bit block and the message start bit block can be distinguished; or, when at least one first bit block includes at least one 0-bit block, the value carried by the preset field of the 0-bit block is used, the O-bit blocks can also be distinguished from other O-bit blocks. Moreover, the at least one first bit block can also be inserted into the bit stream of the first message currently being sent by the communication device. It is avoided that the at least one first bit block waits for the first packet to be sent before it can be sent, thereby reducing the waiting delay of the at least one first bit block, reducing the delay of the FCT, and improving the network utilization rate.
在一种可能的实现方式中,第一比特块为报文比特块。In a possible implementation manner, the first bit block is a packet bit block.
本申请实施例中,该第一比特块为报文比特块,如在该通信装置需要反馈流量控制信息时,正好需要发送第一报文。该情况下,通信装置可以在该第一报文中反馈流量控制信息。In this embodiment of the present application, the first bit block is a message bit block. For example, when the communication device needs to feed back flow control information, it just needs to send the first message. In this case, the communication apparatus may feed back flow control information in the first packet.
在一种可能的实现方式中,报文比特块为报文开始比特块、该报文开始比特块对应的数据比特块、该报文开始比特块对应的结束比特块、报文结束比特块、该报文结束比特块对应的开始比特块或该报文结束比特块对应的数据比特块中的至少一个。In a possible implementation manner, the message bit block is the message start bit block, the data bit block corresponding to the message start bit block, the end bit block corresponding to the message start bit block, the message end bit block, At least one of the start bit block corresponding to the message end bit block or the data bit block corresponding to the message end bit block.
本申请实施例中,不仅可以通过预设字段区分报文开始比特块和非报文开始比特块,还可以通过该预设字段区分报文开始比特块对应的报文结束比特块,和非报文开始比特块对应的非报文结束比特块。或者,还可以通过预设字段区分报文开始比特块对应的报文数据比特块,和非报文开始比特块对应的非报文数据比特块。In this embodiment of the present application, not only can the message start bit block and the non-message start bit block be distinguished by the preset field, but also the message end bit block corresponding to the message start bit block can be distinguished from the non-message start bit block by the preset field. The non-message end bit block corresponding to the message start bit block. Alternatively, the message data bit block corresponding to the message start bit block and the non-message data bit block corresponding to the non-message start bit block can also be distinguished by a preset field.
在一种可能的实现方式中,所述方法还包括:发送第一报文,该第一报文由报文比特块组成。In a possible implementation manner, the method further includes: sending a first packet, where the first packet is composed of packet bit blocks.
本申请实施例中,示例性的,第一报文可以包括报文开始比特块和该报文开始比特块对应的数据比特块;或者,该第一报文包括报文开始比特块、该报文开始比特块对应的数据比特块和该报文开始比特块对应的结束比特块。In the embodiment of the present application, exemplarily, the first packet may include a packet start bit block and a data bit block corresponding to the packet start bit block; or, the first packet may include a packet start bit block, the packet The data bit block corresponding to the message start bit block and the end bit block corresponding to the message start bit block.
在一种可能的实现方式中,发送至少一个第一比特块包括:在发送第一报文的报文开始比特块之后,且未发送完毕第一报文的情况下,发送至少一个第一比特块。In a possible implementation manner, sending the at least one first bit block includes: sending the at least one first bit block after sending the message start bit block of the first message and the first message has not been sent. piece.
本申请实施例中,由于第一比特块是非报文比特块,而第一报文由报文比特块组成,因此即使将该第一比特块插入到第一报文中,对端也能够从该第一报文中区分出该第一比特块。从而,对端可以根据至少一个第一比特块获得通信装置反馈的信息。同时,将该第一比特块插入到第一报文中被发送出去,进一步减少了该至少一个第一比特块的等待时延,减少FCT的时延,提高了网络利用率。In this embodiment of the present application, since the first bit block is a non-packet bit block, and the first packet is composed of packet bit blocks, even if the first bit block is inserted into the first packet, the opposite end can The first bit block is distinguished from the first message. Therefore, the opposite end can obtain the information fed back by the communication apparatus according to the at least one first bit block. At the same time, the first bit block is inserted into the first message and sent out, which further reduces the waiting delay of the at least one first bit block, reduces the delay of the FCT, and improves the network utilization rate.
在一种可能的实现方式中,至少一个第一比特块中包括非报文开始比特块,该非报文开始比特块中的预设字段承载第一数值。In a possible implementation manner, at least one first bit block includes a non-packet start bit block, and a preset field in the non-packet start bit block carries the first value.
在一种可能的实现方式中,报文开始比特块中的预设字段承载第三数值。In a possible implementation manner, a preset field in the packet start bit block carries the third value.
在一种可能的实现方式中,至少一个第一比特块中包括至少一个序列(sequence ordered set,O)比特块,该至少一个O比特块中每个O比特块中的预设字段承载第二数值。In a possible implementation manner, at least one first bit block includes at least one sequence ordered set (O) bit block, and a preset field in each O-bit block in the at least one O-bit block carries the second numerical value.
本申请实施例中,通信装置可以通过至少一个O比特块反馈流量控制信息。可选的,该至少一个O比特块还可以被插入到通信装置正在发送的第二报文的比特流中。示例性的,该至少一个O比特块可以包括一个O比特块、两个O比特块或三个O比特块等,本申请实施例不作限定。In this embodiment of the present application, the communication apparatus may feed back the flow control information through at least one 0-bit block. Optionally, the at least one 0-bit block may also be inserted into the bit stream of the second packet being sent by the communication apparatus. Exemplarily, the at least one 0-bit block may include one 0-bit block, two 0-bit blocks, or three 0-bit blocks, etc., which is not limited in this embodiment of the present application.
在一种可能的实现方式中,至少一个第一比特块中还包括:非报文开始比特块对应的至少一个数据比特块;或者非报文开始比特块对应的结束比特块;或者非报文开始比特块对应的至少一个数据比特块和该非报文开始比特块对应的结束比特块。In a possible implementation manner, the at least one first bit block further includes: at least one data bit block corresponding to a non-packet start bit block; or an end bit block corresponding to a non-packet start bit block; or a non-packet start bit block At least one data bit block corresponding to the start bit block and an end bit block corresponding to the non-message start bit block.
本申请实施例中,非报文开始比特块对应的数据比特块还可以称为非报文数据比特块,非报文开始比特块对应的结束比特块还可以称为非报文结束比特块。In the embodiment of the present application, the data bit block corresponding to the non-message start bit block may also be referred to as a non-message data bit block, and the end bit block corresponding to the non-message start bit block may also be referred to as a non-message end bit block.
在一种可能的实现方式中,在至少一个第一比特块包括非报文开始比特块和非报文结束比特块的情况下,发送至少一个第一比特块包括:依次发送非报文开始比特块和非报文结束比特块;或者依次发送非报文结束比特块和非报文开始比特块。In a possible implementation manner, when the at least one first bit block includes a non-packet start bit block and a non-packet end bit block, sending the at least one first bit block includes: sequentially sending the non-packet start bits block and non-message end bit block; or send non-message end bit block and non-message start bit block in sequence.
在一种可能的实现方式中,非报文比特块还可以包括非报文结束比特块、非报文结束比特块对应的数据比特块或非报文结束比特块对应的开始比特块中的至少一个。In a possible implementation manner, the non-packet bit block may further include at least one of a non-packet end bit block, a data bit block corresponding to the non-packet end bit block, or a start bit block corresponding to the non-packet end bit block One.
本申请实施例中,非报文结束比特块对应的数据比特块还可以称为非报文数据比特块,非报文结束比特块对应的开始比特块还可以称为非报文开始比特块。In the embodiment of the present application, the data bit block corresponding to the non-message end bit block may also be called a non-message data bit block, and the start bit block corresponding to the non-message end bit block may also be called a non-message start bit block.
在一种可能的实现方式中,流量控制信息包括信用数量或至少一个队列被停止发送报文的时长信息。In a possible implementation manner, the flow control information includes information on the number of credits or the duration information for which at least one queue is stopped from sending packets.
在一种可能的实现方式中,至少一个第一比特块还包括循环冗余校验(cyclic redundancy check,CRC)字段。In a possible implementation manner, at least one of the first bit blocks further includes a cyclic redundancy check (cyclic redundancy check, CRC) field.
本申请实施例中,该CRC字段可以用于承载CRC信息,该CRC信息可以用于保护该至少一个第一比特块中的流量控制信息等。In this embodiment of the present application, the CRC field may be used to carry CRC information, and the CRC information may be used to protect flow control information and the like in the at least one first bit block.
在一种可能的实现方式中,第一比特块为P1B/P2B比特块,P1表示该第一比特块的净荷比特数,P2表示该第一比特块的总比特数,P2-P1表示该第一比特块的同步头比特数。In a possible implementation manner, the first bit block is a P1B/P2B bit block, P1 represents the number of payload bits of the first bit block, P2 represents the total number of bits of the first bit block, and P2-P1 represents the number of bits of the first bit block. The number of sync header bits for the first bit block.
在一种可能的实现方式中,P1的取值为以下任一个:64、128、256或512;P2-P1的取值为以下任一个:1、2或3。In a possible implementation manner, the value of P1 is any one of the following: 64, 128, 256, or 512; the value of P2-P1 is any one of the following: 1, 2, or 3.
本申请第一方面所提供的方法,可应用于通信装置,且该通信装置可以包括接收端。The method provided in the first aspect of the present application may be applied to a communication device, and the communication device may include a receiving end.
第二方面,本申请实施例提供一种比特块的接收方法,该方法包括:接收至少一个第一比特块,该至少一个第一比特块中包括指示字段,该指示字段用于承载流量控制信息,该流量控制信息根据接收端的缓存情况得到;根据该流量控制信息调整第二报文的发送情况。In a second aspect, an embodiment of the present application provides a method for receiving a bit block. The method includes: receiving at least one first bit block, where the at least one first bit block includes an indication field, where the indication field is used to carry flow control information , the flow control information is obtained according to the buffering situation of the receiving end; and the sending situation of the second packet is adjusted according to the flow control information.
本申请实施例中,通信装置还可以获取至少一个第一比特块的块类型域(block type field),根据该类型域、预设字段承载的数值以及指示字段,调整第二报文的发送情况。示例性的,至少一个第一比特块的块类型域为0x4B,且预设字段承载0x06,则说明获取到的至少一个第一比特块为O比特块,且该O比特块的作用是用于反馈流量控制信息,则通信装置可以根据该O比特块中的指示字段调整第二报文的发送情况。示例性的,至少一个第一比特块的块类型域为0x78,且预设字段承载0xF5,则通信装置可以根据该非报文开始比特块中的指示字段调整第二报文的发送情况。In the embodiment of the present application, the communication device may also obtain a block type field of at least one first bit block, and adjust the sending situation of the second message according to the type field, the value carried by the preset field, and the indication field . Exemplarily, if the block type field of at least one first bit block is 0x4B, and the preset field carries 0x06, it means that the obtained at least one first bit block is an 0-bit block, and the function of the 0-bit block is to be used for If the flow control information is fed back, the communication device can adjust the sending situation of the second packet according to the indication field in the 0-bit block. Exemplarily, if the block type field of at least one first bit block is 0x78, and the preset field carries 0xF5, the communication device can adjust the sending situation of the second message according to the indication field in the non-message start bit block.
在一种可能的实现方式中,至少一个第一比特块中还包括CRC字段,该CRC字段用于承载CRC信息。In a possible implementation manner, at least one first bit block further includes a CRC field, where the CRC field is used to carry CRC information.
在一种可能的实现方式中,根据流量控制信息调整第二报文的发送情况包括:根据信用数量调整第二报文的发送数据量;或者,根据至少一个队列被停止发送报文的时长信息调整对应队列停止发送第二报文。In a possible implementation manner, adjusting the sending situation of the second packet according to the flow control information includes: adjusting the data volume of the second packet according to the number of credits; or, according to the duration information of at least one queue being stopped from sending the packets Adjust the corresponding queue to stop sending the second packet.
在一种可能的实现方式中,根据流量控制信息调整第二报文的发送情况包括:在对至少一个第一比特块中的CRC信息校验成功的情况下,根据流量控制信息调整第二报文的发送情况。In a possible implementation manner, adjusting the sending situation of the second packet according to the flow control information includes: adjusting the second packet according to the flow control information when the CRC information in the at least one first bit block is successfully checked. the sending of the text.
本申请实施例中,关于第一比特块、指示字段、报文比特块或非报文比特块等的描述,可参考第一方面的介绍,这里不再详述。In this embodiment of the present application, for the description of the first bit block, the indication field, the message bit block, or the non-message bit block, etc., reference may be made to the introduction of the first aspect, which is not described in detail here.
本申请第二方面所提供的方法,可应用于通信装置,且该通信装置可以包括发送端。The method provided in the second aspect of the present application can be applied to a communication device, and the communication device may include a transmitter.
第二方面的有益效果可参见第一方面的有益效果,在此不赘述。For the beneficial effects of the second aspect, reference may be made to the beneficial effects of the first aspect, which will not be repeated here.
第三方面,本申请提供一种通信装置,用于执行第一方面或第一方面的任意可能的实现 方式中的方法。该通信装置包括具有执行第一方面或第一方面的任意可能的实现方式中的方法的相应单元。In a third aspect, the present application provides a communication apparatus for performing the method in the first aspect or any possible implementation manner of the first aspect. The communication apparatus includes corresponding means for performing the method of the first aspect or any possible implementation of the first aspect.
例如,该通信装置可以包括收发单元和处理单元。可理解,对于收发单元和处理单元的具体实现方式,可参考下文具体实施例,这里先不详述。For example, the communication device may include a transceiving unit and a processing unit. It can be understood that, for the specific implementation of the transceiver unit and the processing unit, reference may be made to the following specific embodiments, which will not be described in detail here.
第四方面,本申请提供一种通信装置,用于执行第二方面或第二方面的任意可能的实现方式中的方法。该通信装置包括具有执行第二方面或第二方面的任意可能的实现方式中的方法的相应单元。In a fourth aspect, the present application provides a communication apparatus for performing the method in the second aspect or any possible implementation manner of the second aspect. The communication device includes corresponding means for performing the method of the second aspect or any possible implementation of the second aspect.
例如,该通信装置可以包括收发单元和处理单元。可理解,对于收发单元和处理单元的具体实现方式,可参考下文具体实施例,这里先不详述。For example, the communication device may include a transceiving unit and a processing unit. It can be understood that, for the specific implementation of the transceiver unit and the processing unit, reference may be made to the following specific embodiments, which will not be described in detail here.
第五方面,本申请提供一种通信装置,该通信装置包括处理器,该处理器可以用于执行上述第一方面或第一方面的任意可能的实现方式所示的方法。In a fifth aspect, the present application provides a communication device, where the communication device includes a processor, and the processor can be configured to execute the method shown in the first aspect or any possible implementation manner of the first aspect.
本申请实施例中,在执行上述方法的过程中,上述方法中有关发送报文、接收报文或发送至少一个第一比特块(以下统称为信息)的过程,可以理解为由处理器输出信息的过程,以及处理器接收输入的信息的过程。在输出信息时,处理器将该信息输出给收发器,以便由收发器进行发射。该信息在由处理器输出之后,还可能需要进行其他的处理,然后到达收发器。类似的,处理器接收输入的信息时,收发器接收该信息,并将其输入处理器。更进一步的,在收发器收到该信息之后,该信息可能需要进行其他的处理,然后才输入处理器。In the embodiments of the present application, in the process of executing the above method, the process of sending a message, receiving a message, or sending at least one first bit block (hereinafter collectively referred to as information) in the above method can be understood as the information output by the processor process, and the process by which the processor receives input information. In outputting information, the processor outputs the information to the transceiver for transmission by the transceiver. After the information is output by the processor, additional processing may be required before reaching the transceiver. Similarly, when the processor receives incoming information, the transceiver receives that information and feeds it into the processor. Further, after the transceiver receives the information, the information may require additional processing before being input to the processor.
基于上述原理,示例性的,例如,发送至少一个第一比特块可以理解为处理器输出该至少一个第一比特块。又例如,发送第一报文可以理解为处理器输出该第一报文等。Based on the above principles, exemplary, for example, sending at least one first bit block may be understood as the processor outputting the at least one first bit block. For another example, sending the first packet may be understood as the processor outputting the first packet and so on.
对于处理器所涉及的发送和/或接收等操作,如果没有特殊说明,或者,如果未与其在相关描述中的实际作用或者内在逻辑相抵触,则可以一般性的理解为处理器输出和接收、输入等操作。For the sending and/or receiving operations involved in the processor, if there is no special description, or if it does not contradict its actual function or internal logic in the relevant description, it can be generally understood as the processor outputting and receiving, input, etc.
在实现过程中,上述处理器可以是专门用于执行这些方法的处理器,也可以是执行存储器中的计算机指令来执行这些方法的处理器,例如通用处理器等。例如,处理器还可以用于执行存储器中存储的程序,当该程序被执行时,使得该通信装置执行如上述第一方面或第一方面的任意可能的实现方式所示的方法。In the implementation process, the above-mentioned processor may be a processor specially used to execute these methods, or may be a processor that executes computer instructions in a memory to execute these methods, such as a general-purpose processor. For example, the processor may also be configured to execute a program stored in the memory, which, when executed, causes the communication apparatus to perform the method shown in the first aspect or any possible implementation of the first aspect.
在一种可能的实现方式中,存储器位于上述通信装置之外。In one possible implementation, the memory is located outside the above-mentioned communication device.
在一种可能的实现方式中,存储器位于上述通信装置之内。In one possible implementation, the memory is located within the above-mentioned communication device.
本申请实施例中,处理器和存储器还可能集成于一个器件中,即处理器和存储器还可能被集成于一起。In this embodiment of the present application, the processor and the memory may also be integrated into one device, that is, the processor and the memory may also be integrated together.
在一种可能的实现方式中,通信装置还包括收发器,该收发器,用于接收报文或发送报文等。In a possible implementation manner, the communication device further includes a transceiver, where the transceiver is configured to receive a message or send a message, and the like.
本申请实施例中,示例性的,处理器,可以用于生成至少一个第一比特块;收发器可以用于发送至少一个第一比特块;或者,发送第一报文;或者,接收第二报文等。In this embodiment of the present application, for example, the processor may be configured to generate at least one first bit block; the transceiver may be configured to send at least one first bit block; or, to send a first packet; or, to receive a second messages, etc.
第六方面,本申请提供一种通信装置,该通信装置包括处理器,该处理器可以用于执行上述第二方面或第二方面的任意可能的实现方式所示的方法。In a sixth aspect, the present application provides a communication device, where the communication device includes a processor, and the processor can be configured to execute the method shown in the second aspect or any possible implementation manner of the second aspect.
本申请实施例中,关于处理器的具体说明可参考上述第五方面的描述,这里不再详述。示例性的,例如,接收至少一个第一比特块可以理解为处理器接收输入的至少一个第一比特块。又例如,发送第二报文可以理解为处理器输出第二报文等。In this embodiment of the present application, for a specific description of the processor, reference may be made to the description of the fifth aspect, which is not described in detail here. Exemplarily, for example, receiving the at least one first bit block may be understood as the processor receiving the input at least one first bit block. For another example, sending the second packet may be understood as the processor outputting the second packet and so on.
在实现过程中,上述处理器可以是专门用于执行这些方法的处理器,也可以是执行存储器中的计算机指令来执行这些方法的处理器,例如通用处理器等。例如,处理器还可以用于 执行存储器中存储的程序,当该程序被执行时,使得该通信装置执行如上述第二方面或第二方面的任意可能的实现方式所示的方法。In the implementation process, the above-mentioned processor may be a processor specially used to execute these methods, or may be a processor that executes computer instructions in a memory to execute these methods, such as a general-purpose processor. For example, the processor may also be configured to execute a program stored in the memory which, when executed, causes the communication apparatus to perform the method as shown in the second aspect or any possible implementation of the second aspect above.
在一种可能的实现方式中,存储器位于上述通信装置之外。In one possible implementation, the memory is located outside the above-mentioned communication device.
在一种可能的实现方式中,存储器位于上述通信装置之内。In one possible implementation, the memory is located within the above-mentioned communication device.
本申请实施例中,处理器和存储器还可能集成于一个器件中,即处理器和存储器还可能被集成于一起。In this embodiment of the present application, the processor and the memory may also be integrated into one device, that is, the processor and the memory may also be integrated together.
在一种可能的实现方式中,通信装置还包括收发器,该收发器,用于接收报文或发送报文。In a possible implementation manner, the communication device further includes a transceiver, where the transceiver is configured to receive a message or send a message.
本申请实施例中,示例性的,处理器,可以用于根据至少一个第一比特块中包括的流量控制信息调整第二报文的发送情况;或者,处理器还可以用于对至少一个第一比特块中的CRC信息进行校验等。收发器可以用于接收至少一个第一比特块;或者,接收第一报文;或者,发送第二报文等。In the embodiment of the present application, for example, the processor may be configured to adjust the sending situation of the second packet according to the flow control information included in the at least one first bit block; or, the processor may also be configured to The CRC information in the one-bit block is checked, etc. The transceiver may be configured to receive at least one first bit block; or, receive a first message; or, send a second message, and so on.
第七方面,本申请提供一种通信装置,该通信装置包括逻辑电路和接口,该逻辑电路,用于生成至少一个第一比特块,该接口,用于输出该至少一个第一比特块。In a seventh aspect, the present application provides a communication device, the communication device includes a logic circuit and an interface, the logic circuit is configured to generate at least one first bit block, and the interface is configured to output the at least one first bit block.
在一种可能的实现方式中,该接口还可以用于输出第一报文,和/或,输入第二报文。In a possible implementation manner, the interface may also be used to output the first packet and/or input the second packet.
第八方面,本申请提供一种通信装置,该通信装置包括逻辑电路和接口,该接口用于输入至少一个第一比特块,该逻辑电路可以用于根据流量控制信息调整第一报文的发送情况。In an eighth aspect, the present application provides a communication device, the communication device includes a logic circuit and an interface, the interface is used to input at least one first bit block, and the logic circuit can be used to adjust the sending of the first packet according to the flow control information condition.
在一种可能的实现方式中,该逻辑电路还可以用于对至少一个第一比特块中的CRC信息进行校验。In a possible implementation manner, the logic circuit may also be used to check the CRC information in the at least one first bit block.
在一种可能的实现方式中,该接口还可以用于输入第一报文,和/或,输出第二报文。In a possible implementation manner, the interface may also be used to input the first packet and/or output the second packet.
第九方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质用于存储计算机程序,当其在计算机上运行时,使得上述第一方面或第一方面的任意可能的实现方式所示的方法被执行。In a ninth aspect, the present application provides a computer-readable storage medium, the computer-readable storage medium is used to store a computer program, which, when it runs on a computer, enables the first aspect or any possible implementation of the first aspect The method shown is executed.
第十方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质用于存储计算机程序,当其在计算机上运行时,使得上述第二方面或第二方面的任意可能的实现方式所示的方法被执行。In a tenth aspect, the present application provides a computer-readable storage medium, the computer-readable storage medium is used to store a computer program, which enables the second aspect or any possible implementation manner of the second aspect when it runs on a computer. The method shown is executed.
第十一方面,本申请提供一种计算机程序产品,该计算机程序产品包括计算机程序或计算机代码,当其在计算机上运行时,使得上述第一方面或第一方面的任意可能的实现方式所示的方法被执行。In an eleventh aspect, the present application provides a computer program product, the computer program product comprising a computer program or computer code, which, when run on a computer, makes the above-mentioned first aspect or any possible implementation of the first aspect as shown method is executed.
第十二方面,本申请提供一种计算机程序产品,该计算机程序产品包括计算机程序或计算机代码,当其在计算机上运行时,使得上述第二方面或第二方面的任意可能的实现方式所示的方法被执行。In a twelfth aspect, the present application provides a computer program product, the computer program product comprising a computer program or computer code, which, when run on a computer, makes the second aspect or any possible implementation of the second aspect described above method is executed.
第十三方面,本申请提供一种计算机程序,该计算机程序在计算机上运行时,上述第一方面或第一方面的任意可能的实现方式所示的方法被执行。In a thirteenth aspect, the present application provides a computer program, when the computer program runs on a computer, the method shown in the first aspect or any possible implementation manner of the first aspect is executed.
第十四方面,本申请提供一种计算机程序,该计算机程序在计算机上运行时,上述第二方面或第二方面的任意可能的实现方式所示的方法被执行。In a fourteenth aspect, the present application provides a computer program, when the computer program runs on a computer, the method shown in the second aspect or any possible implementation manner of the second aspect is executed.
第十五方面,本申请提供一种通信系统,该通信系统包括发送端和接收端,该接收端可以用于执行上述第一方面或第一方面的任意可能的实现方式所示的方法,该发送端可以用于执行上述第二方面或第二方面的任意可能的实现方式所示的方法。A fifteenth aspect, the present application provides a communication system, the communication system includes a sending end and a receiving end, the receiving end can be used to execute the method shown in the first aspect or any possible implementation manner of the first aspect, the The sending end may be configured to execute the method shown in the second aspect or any possible implementation manner of the second aspect.
附图说明Description of drawings
图1a示出的是本申请实施例提供的一种基于信用的流量控制的流程示意图;Figure 1a shows a schematic flowchart of a credit-based flow control provided by an embodiment of the present application;
图1b示出的是本申请实施例提供的一种基于优先级的流量控制的流程示意图;FIG. 1b shows a schematic flowchart of a priority-based flow control provided by an embodiment of the present application;
图2a是本申请实施例提供的一种比特块的格式示意图;2a is a schematic diagram of a format of a bit block provided by an embodiment of the present application;
图2b是本申请实施例提供的另一种比特块的格式示意图;FIG. 2b is a schematic diagram of a format of another bit block provided by an embodiment of the present application;
图3a是本申请实施例提供的一种O比特块的格式示意图;3a is a schematic diagram of the format of a 0-bit block provided by an embodiment of the present application;
图3b至图3d是本申请实施例提供的报文比特块和非报文比特块的区分方法示意图;3b to 3d are schematic diagrams of a method for distinguishing a message bit block and a non-message bit block provided by an embodiment of the present application;
图4是本申请实施例提供的一种40G/100G以太网的分层架构示意图;FIG. 4 is a schematic diagram of a layered architecture of a 40G/100G Ethernet provided by an embodiment of the present application;
图5是本申请实施例提供的一种比特块的发送方法的流程示意图;5 is a schematic flowchart of a method for sending a bit block provided by an embodiment of the present application;
图6a至图6d是本申请实施例提供的报文比特块和非报文比特块的对比示意图;6a to 6d are schematic diagrams comparing message bit blocks and non-message bit blocks provided by embodiments of the present application;
图7a和图7b是本申请实施例提供的一种O比特块的格式示意图;7a and 7b are schematic diagrams of formats of a 0-bit block provided by an embodiment of the present application;
图7c是本申请实施例提供的一种O比特块的传输示意图;7c is a schematic diagram of transmission of a 0-bit block provided by an embodiment of the present application;
图7d是本申请实施例提供的报文长度与链路利用率的变化示意图;FIG. 7d is a schematic diagram of changes in packet length and link utilization provided by an embodiment of the present application;
图8a是本申请实施例提供的至少一个第一比特块的格式示意图;8a is a schematic diagram of the format of at least one first bit block provided by an embodiment of the present application;
图8b和图8c是本申请实施例提供的非报文开始比特块和非报文结束比特块的传输示意图;8b and 8c are schematic diagrams of transmission of a non-message start bit block and a non-message end bit block provided by an embodiment of the present application;
图9a和图9b是本申请实施例提供的至少一个第一比特块的格式示意图;9a and 9b are schematic diagrams of formats of at least one first bit block provided by an embodiment of the present application;
图9c是本申请实施例提供的一种至少一个第一比特块的传输示意图;FIG. 9c is a schematic diagram of transmission of at least one first bit block provided by an embodiment of the present application;
图10a和图10b是本申请实施例提供的至少一个第一比特块的格式示意图;10a and 10b are schematic diagrams of formats of at least one first bit block provided by an embodiment of the present application;
图10c是本申请实施例提供的一种至少一个第一比特块的传输示意图;10c is a schematic diagram of transmission of at least one first bit block provided by an embodiment of the present application;
图11是本申请实施例提供的一种通信装置的结构示意图;FIG. 11 is a schematic structural diagram of a communication device provided by an embodiment of the present application;
图12是本申请实施例提供的另一种通信装置的结构示意图;FIG. 12 is a schematic structural diagram of another communication device provided by an embodiment of the present application;
图13是本申请实施例提供的又一种通信装置的结构示意图。FIG. 13 is a schematic structural diagram of another communication apparatus provided by an embodiment of the present application.
具体实施方式detailed description
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地描述。In order to make the objectives, technical solutions and advantages of the present application clearer, the present application will be further described below with reference to the accompanying drawings.
本申请的说明书、权利要求书及附图中的术语“第一”和“第二”等仅用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备等,没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元等,或可选地还包括对于这些过程、方法、产品或设备等固有的其它步骤或单元。The terms "first" and "second" in the description, claims and drawings of the present application are only used to distinguish different objects, rather than to describe a specific order. Furthermore, the terms "comprising" and "having", and any variations thereof, are intended to cover non-exclusive inclusion. For example, a process, method, system, product or device, etc. that includes a series of steps or units is not limited to the listed steps or units, but optionally also includes unlisted steps or units, etc., or optional It also includes other steps or units inherent to these processes, methods, products or devices, etc.
在本文中提及的“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员可以显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。Reference herein to an "embodiment" means that a particular feature, structure, or characteristic described in connection with the embodiment can be included in at least one embodiment of the present application. The appearances of the phrase in various places in the specification are not necessarily all referring to the same embodiment, nor a separate or alternative embodiment that is mutually exclusive of other embodiments. Those skilled in the art will understand, both explicitly and implicitly, that the embodiments described herein may be combined with other embodiments.
在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上,“至少两个(项)”是指两个或三个及三个以上,“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至 少一项(个)”或其类似表达,是指这些项中的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”。In this application, "at least one (item)" means one or more, "plurality" means two or more, "at least two (item)" means two or three and three In the above, "and/or" is used to describe the relationship of related objects, indicating that there can be three kinds of relationships, for example, "A and/or B" can mean: only A exists, only B exists, and both A and B exist three A case where A and B can be singular or plural. The character "/" generally indicates that the associated objects are an "or" relationship. "At least one of the following" or similar expressions, refers to any combination of these items. For example, at least one (a) of a, b or c, can mean: a, b, c, "a and b", "a and c", "b and c", or "a and b and c" ".
以下详细介绍本申请涉及的术语。The terms involved in this application are introduced in detail below.
1、基于信用(credit)的流量控制1. Credit-based flow control
如图1a所示,接收端向发送端发送信用更新报文,该信用更新报文中包括信用数量,该信用数量可以根据接收端的接收缓存确定。发送端接收到该信用更新报文后,可以根据该信用更新报文中包括的信用数量向接收端发送报文。可选的,在信用数量足够的情况下,发送端可以立即发送报文;而在信用数量不足的情况下,发送端可以缓存报文,累计信用数量。换句话说,接收端发送的信用数量可以用于指示发送端发送对应数据量的报文。例如,一个信用数量可以表示16字节的报文,若信用数量为5,则该发送端可以发送小于或等于80(16*5=80)字节的报文。As shown in FIG. 1a, the receiving end sends a credit update message to the sending end, and the credit update message includes the credit quantity, and the credit quantity can be determined according to the receiving buffer of the receiving end. After the sender receives the credit update message, it can send the message to the receiver according to the number of credits included in the credit update message. Optionally, when the number of credits is sufficient, the sender can send the message immediately; and when the number of credits is insufficient, the sender can buffer the message and accumulate the number of credits. In other words, the number of credits sent by the receiver can be used to instruct the sender to send a message corresponding to the amount of data. For example, a credit amount may represent a 16-byte message. If the credit amount is 5, the sender may send a message with less than or equal to 80 (16*5=80) bytes.
2、基于优先级的流量控制(priority-based flow control,PFC)2. Priority-based flow control (PFC)
在IEEE802.1Qbb标准中,允许在一条以太网链路上创建8个虚通道,并为每个虚通道指定一个IEEE802.1P优先级,即8个具有优先级的队列。如图1b所示,发送端和接收端中可以分别包括8个队列。示例性的,当接收端中队列5的缓存超过缓存阈值,则该接收端可以向发送端发送PFC报文,该PFC报文(或也可以称为PFC帧)包括队列停止发送报文的时间和对应队列的标识。由此,发送端接收到该PFC报文后,根据该PFC报文停止或延迟通过对应队列发送报文,对于接收端来说,该接收端停止或延迟通过对应队列接收报文。In the IEEE802.1Qbb standard, 8 virtual channels are allowed to be created on an Ethernet link, and each virtual channel is assigned an IEEE802.1P priority, that is, 8 queues with priority. As shown in Fig. 1b, the sender and the receiver can respectively include 8 queues. Exemplarily, when the buffer of queue 5 in the receiving end exceeds the buffering threshold, the receiving end may send a PFC message to the sending end, and the PFC message (or may also be referred to as a PFC frame) includes the time when the queue stops sending messages. and the ID of the corresponding queue. Therefore, after receiving the PFC message, the sender stops or delays sending the message through the corresponding queue according to the PFC message. For the receiver, the receiver stops or delays receiving the message through the corresponding queue.
3、报文3. Message
报文(message)是网络中交换与传输的数据单元。示例性的,报文中可以包括目的MAC地址(destination address)信息、源MAC地址(source address)信息、长度/类型(length/type)信息、数据信息和帧校验序列(frame check sequence,FCS)等。或者,报文中还可以包括前导(preamble)和帧起始定界符(startofframedelimiter,SFD)等。A message is a unit of data exchanged and transmitted in a network. Exemplarily, the message may include destination MAC address (destination address) information, source MAC address (source address) information, length/type (length/type) information, data information and frame check sequence (frame check sequence, FCS). )Wait. Alternatively, the message may further include a preamble (preamble), a frame start delimiter (startofframedelimiter, SFD) and the like.
图4示出的是40G/100G以太网中的一种分层架构示意图。其中,媒体接入控制(media access control,MAC)层的功能在于对以报文进行校验;协调子层(reconciliation sublayer,RS)的功能是提供一种媒体独立接口(some kind of media independent interface,xMII)和MAC层之间的信号映射机制;物理编码子层(physical coding sublayer,PCS)的功能是对从xMII接收到的信号进行编码;物理媒介接入子层(physical media attachment,PMA)的功能是负责信号的并串、串并转换等;物理媒介依赖层(physical media dependent,PMD)的功能是完成PMA产生的高速模拟信号和外围介质之间的交互。可理解,本申请介绍的功能仅为示例,在具体实现中,每个层可能还包括其他功能等,本申请不作限定。Figure 4 shows a schematic diagram of a layered architecture in 40G/100G Ethernet. Among them, the function of the media access control (MAC) layer is to verify the packets; the function of the reconciliation sublayer (RS) is to provide a kind of media independent interface (some kind of media independent interface). , xMII) and the signal mapping mechanism between the MAC layer; the function of the physical coding sublayer (PCS) is to encode the signal received from xMII; the physical media access sublayer (physical media attachment, PMA) Its function is to be responsible for parallel-serial and serial-to-parallel conversion of signals; the function of the physical media dependent layer (PMD) is to complete the interaction between the high-speed analog signal generated by the PMA and the peripheral medium. It can be understood that the functions introduced in this application are only examples, and in specific implementation, each layer may further include other functions, etc., which are not limited in this application.
一般的,以8比特为单位,报文的每8比特被依次映射到xMII接口的通道0至通道7上。然后,PCS基于从xMII接口接收到的信号进行64B/66B编码,如增加2比特的同步头,形成64B/66B比特块。示例性,7个字节的前导和1个字节的SFD可以被编码为开始比特块;6字节的目的MAC地址和2字节的部分源MAC地址被编码为第一个数据比特块,依次类推,形成若干个数据比特块。可选的,为标识报文的结束,PCS会在报文的末端增加一个结束比特块。可选的,该结束比特块中可能会包含FCS。Generally, in units of 8 bits, every 8 bits of the message are sequentially mapped to channel 0 to channel 7 of the xMII interface. Then, the PCS performs 64B/66B encoding based on the signal received from the xMII interface, such as adding a 2-bit sync header to form a 64B/66B bit block. Exemplarily, a 7-byte preamble and a 1-byte SFD can be encoded as a start bit block; a 6-byte destination MAC address and a 2-byte partial source MAC address are encoded as the first data bit block, By analogy, several data bit blocks are formed. Optionally, to mark the end of the packet, the PCS will add an end bit block at the end of the packet. Optionally, the end bit block may contain FCS.
本申请中,在PCS进行64B/66B编码时,开始比特块的预设字段的取值可以被设置为第一数值或第三数值。其中,若开始比特块的预设字段的取值为第一数值时,该开始比特块还可以被称为非报文开始比特块,而该开始比特块的预设字段的取值为第三数值时,该开始比 特块还可以被称为报文开始比特块。可选的,PCS进行64B/66B编码时,还可以将结束比特块的预设字段的取值设置为不同数值,区分报文结束比特块和非报文结束比特块。In this application, when the PCS performs 64B/66B encoding, the value of the preset field of the start bit block may be set to the first value or the third value. Wherein, if the value of the preset field of the start bit block is the first value, the start bit block may also be called a non-message start bit block, and the value of the preset field of the start bit block is the third value When the value is set, the start bit block may also be referred to as the message start bit block. Optionally, when the PCS performs 64B/66B encoding, the value of the preset field of the end bit block may also be set to different values to distinguish the message end bit block and the non-message end bit block.
可选的,操作管理和维护等信息经过PCS,进行64B/66B编码时,可能会被编码为O比特块。可选的,该O比特块的预设字段的取值可以为第二数值。Optionally, information such as operation management and maintenance may be encoded as 0-bit blocks when 64B/66B encoding is performed through the PCS. Optionally, the value of the preset field of the 0-bit block may be the second value.
可理解,以上示出的仅为一种编码方式,对于其他类型的编码方式,本申请同样适用。It can be understood that the above-described encoding method is only one encoding method, and the present application is also applicable to other types of encoding methods.
4、第一比特块(bit block)4. The first bit block
本申请中,第一比特块可以为P1B/P2B比特块,或者也可以称为P1B/P2B码块,或者也可以称为P1B/P2B块,或者也可以称为P1B/P2B编码块,或者也可以称为P1B/P2B比特流等。其中,P1表示该第一比特块的净荷比特数,P2表示该第一比特块的总比特数,P2-P1表示该第一比特块的同步头比特数,P1、P2为正整数,且P2大于P1。In this application, the first bit block may be a P1B/P2B bit block, or a P1B/P2B code block, or a P1B/P2B block, or a P1B/P2B encoding block, or a P1B/P2B encoding block. It can be called P1B/P2B bitstream, etc. Among them, P1 represents the number of payload bits of the first bit block, P2 represents the total number of bits of the first bit block, P2-P1 represents the number of synchronization header bits of the first bit block, P1 and P2 are positive integers, and P2 is greater than P1.
在本申请中,该P1B/P2B比特块可以为64B/66B比特块;128B/129B比特块;或者,或者,128B/130B比特块;或者,128B/131B比特块;或者,256B/257B比特块;或者,256B/258B比特块;或者,512B/513B比特块;或者,512B/514B比特块;或者,512B/515B比特块等。In this application, the P1B/P2B bit block may be a 64B/66B bit block; a 128B/129B bit block; or, alternatively, a 128B/130B bit block; alternatively, a 128B/131B bit block; Or, 256B/258B bit block; Or, 512B/513B bit block; Or, 512B/514B bit block; Or, 512B/515B bit block, etc.
作为示例,图2a示出的是64B/66B比特块的不同类型。如图2a所示,首部的2个比特“10”或“01”为同步头比特,后64比特即为净荷比特,可以用于承载净荷数据等。图2a中每一行代表一种码型定义,其中,D0~D7代表数据字节,C0~C7代表控制字节,S0代表MAC帧的开始,T0~T7代表MAC帧的结束。As an example, Figure 2a shows different types of 64B/66B bit blocks. As shown in Figure 2a, the two bits "10" or "01" in the header are synchronization header bits, and the last 64 bits are payload bits, which can be used to carry payload data and the like. Each row in Figure 2a represents a code pattern definition, where D0-D7 represent data bytes, C0-C7 represent control bytes, S0 represent the beginning of a MAC frame, and T0-T7 represent the end of a MAC frame.
作为示例,图2b示出的是128B/131B比特块,或者也可以称为流控单元(flow control unit,flit),下文将以flit为例说明本申请提供的各个实施例。如图2b所示,H(header)表示该flit的同步头,且H的不同取值用于表示该flit是控制比特块(也可以称为控制flit)或数据比特块(也可以称为负载flit(payload flit)),该H的长度可以为1比特、2比特或3比特等。类型(Type)字段的不同取值用于识别控制比特块的类型如为报文开始比特块(也可以称为报文开始flit)或O比特块(也可以称为反馈flit或Oflit等)等。该type的长度至少可以为2比特。可选的,type字段的不同取值还可以用于识别控制比特块的类型为报文开始flit、信用更新flit或PFC flit(信用更新flit或PFC flit统称为O flit)等。As an example, FIG. 2b shows a 128B/131B bit block, or it may also be called a flow control unit (flow control unit, flit). The following will take flit as an example to describe various embodiments provided in this application. As shown in Figure 2b, H (header) represents the synchronization header of the flit, and different values of H are used to indicate that the flit is a control bit block (also called a control flit) or a data bit block (also called a load) flit (payload flit)), the length of the H can be 1 bit, 2 bits, or 3 bits, etc. The different values of the Type field are used to identify the type of the control bit block, such as the message start bit block (also called message start flit) or O-bit block (also called feedback flit or Oflit, etc.), etc. . The length of the type can be at least 2 bits. Optionally, different values of the type field can also be used to identify the type of the control bit block as message start flit, credit update flit or PFC flit (credit update flit or PFC flit are collectively referred to as Off), etc.
可选的,图2b(一)所示的flit一般可以用于承载请求类、控制或管理类信息,图2b(二)至图2b(四)示出的是多个flit承载一个报文的情况,它们之间的区别主要在于不同CRC的保护方式,图2b(二)是每个flit都被CRC-X保护(比如X=16,即CRC-16),图2b(三)是报文开始flit被CRC-X保护,负载flit0~N被CRC-Y保护(比如Y=32,即CRC-32),图2b(四)是报文开始flit和负载flit都被CRC-Y保护。Optionally, the flit shown in Figure 2b(1) can generally be used to carry request, control or management information. Figures 2b(2) to 2b(4) show that multiple flits carry one packet. The difference between them mainly lies in the protection methods of different CRCs. Figure 2b (2) is that each flit is protected by CRC-X (for example, X=16, that is, CRC-16), and Figure 2b (3) is the message The start flit is protected by CRC-X, and the loads flit0 to N are protected by CRC-Y (for example, Y=32, that is, CRC-32). Figure 2b(4) shows that both the start flit and the load flit of the message are protected by CRC-Y.
可理解,以上示出的示例,是以type字段的不同取值用于识别报文开始比特块或O比特块为例示出的,在具体实现中,该type字段的不同取值还可以用于识别报文开始比特块、报文结束比特块或O比特块等,这里不再一一详述。或者,也可以通过type字段识别开始比特块和结束比特块然后通过其他字段区分开始比特块为报文开始比特块或非报文开始比特块,或者,通过其他字段区分结束比特块为报文结束比特块或非报文结束比特块。It can be understood that the example shown above is illustrated by using different values of the type field to identify the start bit block or the 0-bit block of the message as an example. In specific implementation, the different values of the type field can also be used for Identifying the message start bit block, the message end bit block, or the O bit block, etc., will not be described in detail here. Alternatively, the type field can be used to identify the start bit block and the end bit block, and then other fields can be used to distinguish the start bit block as a message start bit block or a non-message start bit block, or, other fields can be used to distinguish the end bit block as the end of the message. A block of bits or a block of non-end of message bits.
本申请中,对第一比特块的生成位置不做限定,通信装置既可以在xMII接口生成至少一个第一比特块;或者,也可以在PCS层生成至少一个第一比特块。换句话说,至少第一比特块可以是在PCS产生的P1B/P2B比特块;或者,该至少一个第一比特块也可以是经过xMII接口生成的包括控制字符或数据字符的比特块,该比特块经过PCS子层后会被编码为P1B/P2B比特块。In this application, the generation position of the first bit block is not limited, and the communication apparatus can either generate at least one first bit block at the xMII interface; or, can also generate at least one first bit block at the PCS layer. In other words, at least the first bit block may be a P1B/P2B bit block generated at the PCS; alternatively, the at least one first bit block may also be a bit block including control characters or data characters generated through an xMII interface. Blocks are encoded as P1B/P2B bit blocks after passing through the PCS sublayer.
5、报文比特块和非报文比特块5. Message bit blocks and non-message bit blocks
本申请中,报文比特块可以包括边界比特块和数据比特块,该边界比特块可以是开始比特块和结束比特块中的至少一个。因此一个报文对应的比特块可以是:A、开始比特块+数据比特块;B、开始比特块+数据比特块+结束比特块;C、数据比特块+结束比特块。示例性的,如报文比特块为报文开始比特块、该报文开始比特块对应的数据比特块、该报文开始比特块对应的结束比特块、报文结束比特块、该报文结束比特块对应的开始比特块或该报文结束比特块对应的数据比特块中的至少一个。In this application, the message bit block may include a boundary bit block and a data bit block, and the boundary bit block may be at least one of a start bit block and an end bit block. Therefore, the bit blocks corresponding to a message may be: A, start bit block + data bit block; B, start bit block + data bit block + end bit block; C, data bit block + end bit block. Exemplarily, if the message bit block is the message start bit block, the data bit block corresponding to the message start bit block, the end bit block corresponding to the message start bit block, the message end bit block, the message end bit block At least one of the start bit block corresponding to the bit block or the data bit block corresponding to the message end bit block.
在一种可能的实现方式中,非报文比特块可以为报文比特块之外的其它比特块,例如可以是报文之间传输的O比特块。In a possible implementation manner, the non-packet bit block may be another bit block other than the packet bit block, for example, it may be an 0-bit block transmitted between packets.
在另一种可能的实现方式中,非报文比特块还可以使用边界比特块来实现,当然,非报文比特块也可以使用边界比特块和数据比特块一起来实现。该情况下,为了区分报文比特块和非报文比特块,非报文比特块中的边界比特块的预设字段可以使用预设取值(如第一数值),通过该预设字段来区分报文边界比特块和非报文边界比特块。如可以使用开始比特块的预设字段来区分,即区分为报文开始比特块和非报文开始比特块,或者,也可以使用结束比特块的预设字段来区分,即区分为报文结束比特块和非报文结束比特块。In another possible implementation manner, the non-message bit block may also be implemented by using a boundary bit block. Of course, the non-message bit block may also be implemented by using a boundary bit block and a data bit block together. In this case, in order to distinguish the message bit block and the non-message bit block, the preset field of the boundary bit block in the non-message bit block can use a preset value (such as the first value), and the preset field can be used to Distinguish between message boundary bit blocks and non-message boundary bit blocks. For example, the preset field of the start bit block can be used to distinguish, that is, the message start bit block and the non-message start bit block can be distinguished, or the preset field of the end bit block can also be used to distinguish, that is, the message end block can be distinguished. bit blocks and non-end of message bit blocks.
下面针对非报文比特块是否包括边界比特块分为两方面具体说明:The following is a detailed description of whether the non-message bit block includes the boundary bit block:
方式一、非报文比特块不包括边界比特块。Manner 1: The non-message bit block does not include the boundary bit block.
报文比特块包括边界比特块和该边界比特块对应的数据比特块;The message bit block includes a boundary bit block and a data bit block corresponding to the boundary bit block;
非报文比特块为报文比特块之外的其它比特块,例如可以是O比特块。The non-message bit block is another bit block other than the message bit block, for example, it may be an 0-bit block.
方式二、非报文比特块包括边界比特块。Manner 2: The non-message bit block includes the boundary bit block.
报文比特块包括报文边界比特块和报文边界比特块对应的数据比特块;The message bit block includes a message boundary bit block and a data bit block corresponding to the message boundary bit block;
非报文比特块为报文比特块之外的其它比特块,例如可以是O比特块、非报文边界比特块、非报文边界比特块对应的数据比特块、非报文边界比特块对应的边界比特块等。具体的,非报文比特块包括可以是O比特块、非报文开始比特块、非报文开始比特块对应的数据比特块、非报文开始比特块对应的结束比特块、非报文结束比特块、非报文结束比特块对应的数据比特块、非报文结束比特块对应的开始比特块等。例如可以是:The non-message bit block is another bit block other than the message bit block, for example, it may be an 0-bit block, a non-message boundary bit block, a data bit block corresponding to a non-message boundary bit block, and a non-message boundary bit block corresponding to The boundary bit block etc. Specifically, the non-message bit block may include a 0-bit block, a non-message start bit block, a data bit block corresponding to a non-message start bit block, an end bit block corresponding to a non-message start bit block, and a non-message end bit block. A bit block, a data bit block corresponding to a non-packet end bit block, a start bit block corresponding to a non-packet end bit block, and the like. For example it could be:
A、非报文开始比特块;A. Non-message start bit block;
B、非报文开始比特块+非报文开始比特块对应的数据比特块;B. The data bit block corresponding to the non-message start bit block + the non-message start bit block;
C、非报文开始比特块+非报文开始比特块对应的数据比特块+非报文开始比特块对应的结束比特块;C, the non-message start bit block + the data bit block corresponding to the non-message start bit block + the end bit block corresponding to the non-message start bit block;
D、非报文开始比特块+非报文开始比特块对应的结束比特块;D. The non-message start bit block + the end bit block corresponding to the non-message start bit block;
E、非报文结束比特块;E. Non-message end bit block;
F、非报文结束比特块对应的数据比特块+非报文结束比特块;F. The data bit block corresponding to the non-message end bit block + the non-message end bit block;
G、非报文结束比特块对应的开始比特块+非报文结束比特块对应的数据比特块+非报文结束比特块;G. The start bit block corresponding to the non-message end bit block + the data bit block corresponding to the non-message end bit block + the non-message end bit block;
H、非报文结束比特块对应的开始比特块+非报文结束比特块;H. The start bit block corresponding to the non-message end bit block + the non-message end bit block;
I、非报文开始比特块+非报文结束比特块;1. Non-message start bit block+non-message end bit block;
J、非报文开始比特块+非报文开始比特块对应的数据比特块+非报文结束比特块;J, non-message start bit block + non-message start bit block corresponding data bit block + non-message end bit block;
这里,非报文开始比特块对应的数据比特块也可以称为非报文数据比特块,非报文开始比特块对应的结束比特块也可以称为非报文结束比特块,非报文结束比特块对应的开始比特块也可以称为非报文开始比特块,非报文结束比特块对应的数据比特块也可以称为非报文数据比特块等。Here, the data bit block corresponding to the non-message start bit block may also be called a non-message data bit block, and the end bit block corresponding to the non-message start bit block may also be called a non-message end bit block, and the non-message end bit block The start bit block corresponding to the bit block may also be referred to as a non-packet start bit block, and the data bit block corresponding to the non-packet end bit block may also be referred to as a non-packet data bit block, and so on.
以上仅为举例,还可以采用其它形式来实现,在此不再赘述。此外需要说明的是,比特块之间的发送顺序也可以调整,例如可以先发送结束比特块,再发送开始比特块,也可以先发送结束比特块,再发送开始比特块。The above is only an example, and other forms may also be used to implement, which will not be repeated here. In addition, it should be noted that the transmission order between the bit blocks can also be adjusted. For example, the end bit block may be sent first, and then the start bit block may be sent, or the end bit block may be sent first, and then the start bit block may be sent.
换句话说,预设字段可以用于识别报文结束比特块或非报文结束比特块。如报文比特块中包括预设字段,非报文比特块中包括预设字段,且该预设字段承载的数值可以用于识别报文开始比特块或非报文开始比特块;或者,该预设字段承载的数值可以用于识别报文结束比特块或非报文结束比特块。示例性的,预设字段承载的数值可以包括第一数值或第三数值,该第一数值对应非报文比特块,该第三数值对应报文比特块。In other words, the preset field can be used to identify a block of end-of-message bits or a block of non-end-of-message bits. For example, the message bit block includes a preset field, and the non-message bit block includes a preset field, and the value carried by the preset field can be used to identify the message start bit block or the non-message start bit block; or, the The value carried by the preset field can be used to identify the end-of-message block or the non-end-of-message block. Exemplarily, the value carried by the preset field may include a first value or a third value, where the first value corresponds to a non-packet bit block, and the third value corresponds to a packet bit block.
对应本申请提供的各个实施例,至少一个第一比特块中包括预设字段,该预设字段可以用于识别该至少一个第一比特块为报文比特块或非报文比特块。示例性的,预设字段承载的数值可以用于识别报文开始比特块或非报文开始比特块;或者,该预设字段承载的数值可以用于识别报文结束比特块或非报文结束比特块。或者,预设字段可以用于识别O比特块的作用为承载流量控制信息或其他信息等。Corresponding to the various embodiments provided in this application, at least one first bit block includes a preset field, and the preset field can be used to identify the at least one first bit block as a message bit block or a non-message bit block. Exemplarily, the value carried by the preset field may be used to identify the message start bit block or the non-message start bit block; or, the value carried by the preset field may be used to identify the message end bit block or non-message end block. bit block. Alternatively, the preset field may be used to identify the role of the 0-bit block as carrying flow control information or other information.
本申请中,预设字段可以理解为比特块中的预设区域或预设位置等,在该预设区域或预设位置承载有数值。本申请对于该预设字段具体在比特块中的哪个区域或位置等,不作限定。该预设字段可以位于开始比特块、结束比特块或数据比特块中的至少一个中。In this application, a preset field may be understood as a preset area or a preset position in the bit block, and the preset area or preset position carries a numerical value. This application does not limit which region or position in the bit block the preset field is specifically located in. The preset field may be located in at least one of a start bit block, an end bit block or a data bit block.
为更形象的理解报文比特块和非报文比特块的区别,如图3b至图3d所示。In order to understand the difference between the message bit block and the non-message bit block more vividly, as shown in Figure 3b to Figure 3d.
图3b和图3c示出的是非报文开始比特块中的预设字段的不同取值,图3b中预设字段可以承载于D1区域,图3c中预设字段可以承载于D7区域,或者,也可以称为图3b中预设字段位于D1区域,图3c中预设字段位于D7区域。如图3b所示,非报文开始比特块中预设字段承载0xE5,报文开始比特块中预设字段承载0x55。如图3c所示,非报文开始比特块中预设字段承载0xC5,报文开始比特块中预设字段承载0xD5(比特传输顺序为1010 1011)。其中,0xE5和0xC5可以理解为第一数值,0x55和0xD5可以理解为第三数值。Figures 3b and 3c show different values of the preset fields in the non-message start bit block. The preset fields in Figure 3b can be carried in the D1 area, and the preset fields in Figure 3c can be carried in the D7 area, or, It may also be said that the preset field in FIG. 3b is located in the D1 area, and the preset field in FIG. 3c is located in the D7 area. As shown in Figure 3b, the preset field in the non-message start bit block carries 0xE5, and the preset field in the message start bit block carries 0x55. As shown in Figure 3c, the preset field in the non-message start bit block carries 0xC5, and the preset field in the message start bit block carries 0xD5 (bit transmission sequence is 1010 1011). Among them, 0xE5 and 0xC5 can be understood as the first value, and 0x55 and 0xD5 can be understood as the third value.
可理解,图3a至图3c仅为一种示例,在具体实现中,预设字段还可以位于其他区域,如图3b中的预设字段还可以为D2至D6中的任一区域或多个区域等,以及对于非报文比特块预设字段承载的第一数值的具体取值,本申请也不作限定。It can be understood that FIG. 3a to FIG. 3c are only an example. In a specific implementation, the preset field may also be located in other areas. The preset field in FIG. 3b may also be any area or multiple areas in D2 to D6. This application also does not limit the value of the first value carried by the preset field of the non-message bit block, etc., as well.
可理解,图3b和图3c示出的对比示意图是以预设字段位于开始比特块为例示出的,但是,本申请中预设字段还可以位于结束比特块,即通过结束比特块中的预设字段的不同取值区分报文结束比特块和非报文结束比特块。对于预设字段位于结束比特块的具体描述,可参考图3b和图3c,这里不再详述。不失一般性,下文将以预设字段位于开始比特块为例示出本申请提供的各个实施例。It can be understood that the comparison schematic diagrams shown in FIG. 3b and FIG. 3c are illustrated by taking the preset field located in the starting bit block as an example, but in this application, the preset field can also be located in the ending bit block, that is, by using the preset field in the ending bit block. Different values of the fields are set to distinguish the end-of-message block and the non-end-of-message block. For the specific description that the preset field is located in the end bit block, reference may be made to FIG. 3b and FIG. 3c, which will not be described in detail here. Without loss of generality, various embodiments provided by the present application will be illustrated below by taking the preset field located in the start bit block as an example.
图3d示出的是flit中预设字段的不同取值。示例性的,当预设字段承载00001时,则表示该flit为报文开始flit。预设字段承载01000时,则表示该flit为Oflit。换句话说,通信装置在反馈其缓存情况时,可能不会同时反馈信用数量和至少一个队列被停止发送报文的时长信息,因此,预设字段可以通过两个不同数值,区分报文开始flit和Oflit即可。可理解,对于该说明,同样适用于下文示出的各个实施例中的信用更新比特块和PFC比特块。对于flit的具体说明,还可以参考图10a,这里不再详述。表1示出的是区分非报文比特块和报文比特块的方法示例。Figure 3d shows different values of preset fields in flit. Exemplarily, when the preset field carries 00001, it means that the flit is a packet start flit. When the default field carries 01000, it indicates that the flit is Oflit. In other words, when the communication device feeds back its buffer status, it may not simultaneously feed back the number of credits and the information on the duration of at least one queue being stopped from sending packets. Therefore, the preset field can use two different values to distinguish the start of the packet flit. and Oflit will do. It can be understood that this description is also applicable to the credit update bit block and the PFC bit block in the various embodiments shown below. For the specific description of flit, reference may also be made to FIG. 10a, which will not be described in detail here. Table 1 shows an example of a method for distinguishing between non-message bit blocks and message bit blocks.
表1Table 1
Figure PCTCN2021109907-appb-000001
Figure PCTCN2021109907-appb-000001
Figure PCTCN2021109907-appb-000002
Figure PCTCN2021109907-appb-000002
本申请中,预设字段不仅可以用于识别报文比特块和非报文比特块。可选的,该预设字段的不同取值可以用于识别报文比特块、信用更新比特块和PFC比特块。其中,信用更新比特块和PFC比特块可以理解为非报文比特块。示例性的,当预设字段承载00001时,则表示该flit为报文开始flit。当预设字段承载00101时,则表示该flit为信用更新flit,也可以称为非报文比特块或O比特块等;当预设字段承载00110时,则表示该flit为PFC flit,也可以称为非报文比特块或O比特块等。如表2示出的是区分报文比特块、信用更新比特块和PFC比特块的方法示例。In this application, the preset field can not only be used to identify message bit blocks and non-message bit blocks. Optionally, different values of the preset field may be used to identify the message bit block, the credit update bit block and the PFC bit block. Among them, the credit update bit block and the PFC bit block can be understood as non-message bit blocks. Exemplarily, when the preset field carries 00001, it means that the flit is a packet start flit. When the preset field carries 00101, it means that the flit is a credit update flit, which can also be called a non-message bit block or an 0-bit block, etc.; when the preset field carries 00110, it means that the flit is a PFC flit, or it can be It is called a non-message bit block or an O-bit block, etc. As shown in Table 2 is an example of the method of distinguishing the message bit block, the credit update bit block and the PFC bit block.
表2Table 2
Figure PCTCN2021109907-appb-000003
Figure PCTCN2021109907-appb-000003
可理解,以上示出的预设字段的取值仅为示例,在具体实现中,区分非报文开始比特块和报文开始比特块的预设字段还可以位于其他区域,或者还可以用于承载其他数值等,本申请不作限定。只要在同一个字段能够通过取不同的数值区分非报文比特块和报文比特块即可。It can be understood that the values of the preset fields shown above are only examples. In specific implementation, the preset fields that distinguish the non-message start bit block and the message start bit block can also be located in other areas, or can also be used for Bearing other numerical values, etc., are not limited in this application. As long as the same field can be used to distinguish non-message bit blocks and message bit blocks by taking different values.
7、O比特块7. O-bit block
上文示出的预设字段主要是用于识别报文比特块和非报文比特块,然而,对于控制比特块如O比特块来说,该预设字段可以用于识别该O比特块所承载的信息。可选的,该O比特块中预设字段承载的不同数值用于识别该O比特块用于承载流量控制信息或重传控制信息等。换句话说,预设字段承载的不同数值对应不同的信息,且一个数值对应一种信息。例如,O比特块中预设字段承载第二数值时,该O比特块用于承载流量控制信息。该O比特块中预设字段承载第四数值时,该O比特块可以用于承载重传控制信息等(仅为示例)。The preset fields shown above are mainly used to identify message bit blocks and non-message bit blocks, however, for control bit blocks such as 0-bit blocks, the preset fields can be used to identify the 0-bit block. carried information. Optionally, the different values carried by the preset fields in the 0-bit block are used to identify that the 0-bit block is used to carry flow control information or retransmission control information. In other words, different values carried by the preset fields correspond to different information, and one value corresponds to one type of information. For example, when the preset field in the 0-bit block carries the second value, the 0-bit block is used to carry flow control information. When the preset field in the 0-bit block carries the fourth value, the 0-bit block may be used to carry retransmission control information, etc. (only an example).
图3a中O比特块中的预设字段可以承载于O0区域,或者也可以称为O比特块中的预设字段位于O0区域,或者也可以称为预设字段的具体位置位于O0区域。且本申请中,该预设字段可以承载第二数值,如0x06。即当O比特块中预设字段承载0x06时,则表示该O比特块用于反馈流量控制信息。The preset field in the 0-bit block in FIG. 3a may be carried in the 00 area, or it may also be called that the preset field in the 0-bit block is located in the 00 area, or the specific position of the preset field may be located in the 00 area. In this application, the preset field may carry a second value, such as 0x06. That is, when the preset field in the 0-bit block carries 0x06, it means that the 0-bit block is used for feeding back flow control information.
可理解,图3a仅示出了与图2a对应的O比特块,对于图2b对应的O flit的具体说明,这里不再详述。It can be understood that FIG. 3a only shows the O-bit block corresponding to FIG. 2a, and the specific description of the Offit corresponding to FIG. 2b will not be described in detail here.
可理解,本申请所描述的某个字段承载某个数值,也可以理解为该某个字段的取值为某个数值,对于该说明,下文各个实施例同样适用。It can be understood that a certain field described in this application carries a certain value, and it can also be understood that the value of the certain field is a certain value. For this description, the following embodiments are also applicable.
7、比特位置(Bit position)7. Bit position
示例性的,如图2a所示,对于数据比特块(图2a中的第一行)来说,比特位置2至9之间的8个比特为D0区域,比特位置为10至17之间的8个比特为D1区域。对于S0比特块来说,比特位置2至9之间的8个比特为0x78(即块类型域为0x78),比特位置为10至17之间的8个比特为D1区域。对于T7比特块来说,比特位置2至9之间的8个比特为0xFF(即块类型域为0xFF),比特位置为10至17之间的8个比特为D0区域。可理解,本申请所示的比特块的起始比特位置均为0。如果起始比特位置为1,则S0比特块的0x78占用的比特位置则可以为比特位置3至10之间的8个比特。换句话说,本申请对于起始比特位置为多少不作限定。Exemplarily, as shown in Figure 2a, for the data bit block (the first row in Figure 2a), 8 bits between bit positions 2 to 9 are the D0 area, and bit positions 10 to 17 8 bits are the D1 area. For the S0 bit block, the 8 bits between the bit positions 2 and 9 are 0x78 (ie, the block type field is 0x78), and the 8 bits between the bit positions 10 and 17 are the D1 area. For the T7 bit block, the 8 bits between the bit positions 2 and 9 are 0xFF (ie, the block type field is 0xFF), and the 8 bits between the bit positions 10 and 17 are the D0 area. It can be understood that the starting bit positions of the bit blocks shown in this application are all 0s. If the start bit position is 1, the bit position occupied by 0x78 of the S0 bit block may be 8 bits between bit positions 3 to 10. In other words, the present application does not limit the starting bit position.
这里仅示出了比特位置的说明,但是对于比特位置与比特传输顺序之间的关系,本申请不作限定。示例性的,如图2b所示的S0比特块来说,比特位置2至9之间的8个比特为0x78,但是对于其对应的8个比特“0111 1000”的具体比特位置,本申请不作限定。例如,该S0比特块中比特位置为2至9之间的8个比特可以依次为0111 1000,或者依次为0001 1110等,本申请对此不作限定。Only the description of the bit position is shown here, but the application does not limit the relationship between the bit position and the bit transmission order. Exemplarily, for the S0 bit block shown in Figure 2b, the 8 bits between bit positions 2 to 9 are 0x78, but for the specific bit position of the corresponding 8 bits "0111 1000", this application does not limited. For example, the 8 bits whose bit positions are between 2 and 9 in the S0 bit block may be 0111 1000 in sequence, or 0001 1110 in sequence, etc., which is not limited in this application.
在接收端向发送端发送信用更新报文或PFC报文时,由于报文的长度一般较长,因此接收端发送的信用更新报文或PFC报文可能会出现报文阻塞。尤其是接收端正在发送其他报文(如第一报文)时,该情况下,接收端则需要等待报文被发送完,才能发送该信用更新报文或该PFC报文。示例性的,报文的长度为256字节,即信用更新报文或PFC报文需要等待256字节的报文发送时间。最差情况(worst case)下,PFC报文可能需要等待一个最长以太网报文的长度如1518字节的报文发送时间,才能将该信用更新报文或PFC报文发送出去。另外,信用更新报文本身的长度,也会增加接收端发送该信用更新报文的时延。即信用更新报文一旦延迟,发送端就无法及时发送报文,由此业务流完成的时间(flow completion time,FCT)将延长,导致网络利用率低下。When the receiver sends a credit update message or PFC message to the sender, because the length of the message is generally long, the credit update message or PFC message sent by the receiver may be blocked. Especially when the receiving end is sending other messages (such as the first message), in this case, the receiving end needs to wait for the message to be sent before sending the credit update message or the PFC message. Exemplarily, the length of the message is 256 bytes, that is, the credit update message or the PFC message needs to wait for a message sending time of 256 bytes. In the worst case (worst case), the PFC message may need to wait for a message sending time of the longest Ethernet message length, such as 1518 bytes, before sending the credit update message or PFC message. In addition, the length of the credit update message itself also increases the delay for the receiver to send the credit update message. That is, once the credit update message is delayed, the sender cannot send the message in time, so the flow completion time (FCT) of the service flow will be prolonged, resulting in low network utilization.
鉴于此,本申请提供一种比特块的发送方法及装置,接收端不仅能够向发送端指示其缓存情况,还能够以比特块的方式反馈流量控制信息,使得该流量控制信息能够被及时发送出去的可能性更高,且流量控制信息的反馈方式更灵活。进一步的,以比特块的方式反馈流量控制信息,还能够打断接收端当前正在发送的第一报文,减少该流量控制信息的时延,以及减少FCT的时延,提高网络利用率。In view of this, the present application provides a method and device for sending a bit block, the receiving end can not only indicate its buffer status to the sending end, but also can feed back flow control information in the form of bit blocks, so that the flow control information can be sent out in time is more likely, and the feedback method of flow control information is more flexible. Further, feeding back the flow control information in the form of bit blocks can also interrupt the first packet currently being sent by the receiving end, reduce the delay of the flow control information, reduce the delay of the FCT, and improve the network utilization rate.
本申请提供的方法不仅可以应用于基于高速串行计算机扩展总线标准(peripheral component interconnect express,PCIe)或基于flit的信息技术(information technology,IT)网络,还可以应用于以太网、互联网协议(internet protocol,IP)网络、分组传送网(packet transport network,PTN)、灵活传送网(agile transport network,ATN)、切片分组网(slicing packet network,SPN)等,对于本申请提供的方法可以应用到的网络不作限定。具体的,本申请提供的方法可以应用于通信装置,该通信装置可以为支持PCIe、flit或以太网技术的装置等。示例性的,该通信装置可以为任意形态的计算机、服务器、交换机(或者称为交换设备、交换芯片等)、路由器、网卡等,本申请对于该通信装置的具体形态不作限定。The method provided in this application can not only be applied to high-speed serial computer expansion bus standard (peripheral component interconnect express, PCIe) or flit-based information technology (information technology, IT) network, but also can be applied to Ethernet, Internet protocol (internet protocol, IP) network, packet transport network (PTN), agile transport network (ATN), sliced packet network (slicing packet network, SPN), etc., for the methods provided in this application can be applied to The network is not limited. Specifically, the method provided in this application may be applied to a communication device, and the communication device may be a device supporting PCIe, flit, or Ethernet technology, or the like. Exemplarily, the communication device may be any form of computer, server, switch (or referred to as switching device, switching chip, etc.), router, network card, etc. The specific form of the communication device is not limited in this application.
可选的,本申请提供的方法可以应用于两个通信装置,如该两个通信装置中可以包括发送端和接收端。可选的,该发送端和该接收端的具体形态可以参考上述通信装置的形态。可 选的,该发送端和该接收端还可以理解为任意两个接口。换句话说,本申请提供的方法可以应用于链路级(也可以称为点到点(point-to-point))场景下,该链路级场景中可以包括发送端和接收端,且在报文(如第一报文或第二报文或至少一个第一比特块等)传输过程中,该报文不会出现丢包的现象,但是可能会出现传输错误等问题。Optionally, the method provided in this application may be applied to two communication apparatuses, for example, the two communication apparatuses may include a sending end and a receiving end. Optionally, the specific form of the transmitting end and the receiving end may refer to the above-mentioned form of the communication device. Optionally, the sending end and the receiving end may also be understood as any two interfaces. In other words, the method provided in this application can be applied to a link-level (also referred to as point-to-point) scenario, where the link-level scenario may include a sender and a receiver, and During the transmission of a packet (such as the first packet or the second packet or at least one first bit block, etc.), the packet will not be lost, but problems such as transmission errors may occur.
本申请实施例中,该发送端可以理解为发送第二报文的通信装置,该接收端可以理解为接收该第二报文的通信装置。或者,本申请中,该发送端可以理解为接收第一报文的通信装置,该接收端可以理解为发送第一报文的通信装置。可理解,本申请示出的报文还可以称为包或帧等,本申请实施例对于报文的其他名称不作限定。In this embodiment of the present application, the sending end may be understood as a communication device that sends the second message, and the receiving end may be understood as a communication device that receives the second message. Alternatively, in this application, the sending end may be understood as a communication device that receives the first message, and the receiving end may be understood as a communication device that sends the first message. It is understandable that the message shown in the present application may also be called a packet or a frame, etc., and other names of the message are not limited in this embodiment of the present application.
图5是本申请实施例提供的一种比特块的发送方法的流程示意图,如图5所示,该方法包括:FIG. 5 is a schematic flowchart of a method for sending a bit block provided by an embodiment of the present application. As shown in FIG. 5 , the method includes:
501、接收端生成至少一个第一比特块,该至少一个第一比特块中包括指示字段,该指示字段用于承载流量控制信息,该流量控制信息根据接收端的缓存情况得到。501. The receiving end generates at least one first bit block, where the at least one first bit block includes an indication field, where the indication field is used to carry flow control information, where the flow control information is obtained according to the buffering situation of the receiving end.
本申请实施例中,接收端的缓存情况包括该接收端的缓存大小,或者该接收端的缓存队列的缓存大小等。或者,该接收端的缓存队列的缓存大小包括该接收端的缓存队列的缓存大小是否超过缓存阈值等。由此,根据接收端的缓存情况,该接收端可以得到流量控制信息。如流量控制信息可以包括信用数量或至少一个队列被停止发送报文的时长信息。可选的,信用数量可以根据该接收端的缓存大小确定,一个信用(credit)可以对应一定数据量的报文。例如,一个信用可以对应16字节的报文等,本申请实施例对此不作限定。可选的,至少一个队列被停止发送报文的时长信息可以根据该接收端的缓存队列的缓存大小确定。该缓存队列的描述可参考上文中图1b的介绍,这里不再详述。该时长信息的时间单位可以为物理层芯片发送512比特数据所需的时间。换句话说,时长信息的一个时间单位表示接收端的对应队列暂停接收报文的时间为该发送端的物理层芯片发送512比特数据所需的时间。本申请实施例中,该时长信息的最大时间可以为0xFFFF。In the embodiment of the present application, the buffering situation of the receiving end includes the buffering size of the receiving end, or the buffering size of the buffering queue of the receiving end, and the like. Or, the cache size of the cache queue of the receiving end includes whether the cache size of the cache queue of the receiving end exceeds a cache threshold and the like. Thus, according to the buffering situation of the receiving end, the receiving end can obtain the flow control information. For example, the flow control information may include information on the number of credits or the duration of time when at least one queue is stopped from sending packets. Optionally, the number of credits may be determined according to the buffer size of the receiving end, and one credit (credit) may correspond to a packet of a certain amount of data. For example, one credit may correspond to a 16-byte message, etc., which is not limited in this embodiment of the present application. Optionally, the duration information of at least one queue being stopped from sending packets may be determined according to the buffer size of the buffer queue of the receiving end. For the description of the cache queue, reference may be made to the description of FIG. 1b above, and details are not described here. The time unit of the duration information may be the time required for the physical layer chip to send 512-bit data. In other words, one time unit of the duration information indicates that the time when the corresponding queue of the receiving end suspends receiving packets is the time required for the physical layer chip of the sending end to send 512-bit data. In this embodiment of the present application, the maximum time of the duration information may be 0xFFFF.
本申请实施例中,流量控制信息除了可以包括至少一个队列被停止发送报文的时长信息,还包括该至少一个队列的标识。例如,该流量控制信息可以包括一个队列被停止发送报文的时长信息和该一个队列的标识,该一个队列的标识如可以为0至7中的任一个,或者还可以为其他方式的标识等,本申请实施例不作限定。又例如,该流量控制信息可以包括两个队列被停止发送报文的时长信息和该两个队列中每个队列的标识。又例如,该流量控制信息中可以包括八个队列中每个队列被停止发送报文的时长信息,还可以包括该八个队列中每个队列的标识。换句话说,指示字段中不仅包括时长信息,还可以包括与时长信息对应的队列标识。In this embodiment of the present application, the flow control information may include, in addition to information on the duration of at least one queue that is stopped from sending packets, an identifier of the at least one queue. For example, the flow control information may include information on the duration of a queue being stopped from sending packets and an identifier of the queue. The identifier of the queue may be any one of 0 to 7, or other identifiers, etc. , the embodiments of the present application are not limited. For another example, the flow control information may include duration information of the two queues being stopped from sending packets and an identifier of each of the two queues. For another example, the flow control information may include information on the duration that each of the eight queues is stopped from sending packets, and may also include an identifier of each of the eight queues. In other words, the indication field includes not only duration information, but also a queue identifier corresponding to the duration information.
在一种可能的实现方式中,至少一个第一比特块中还包括循环冗余校验CRC字段,该CRC字段用于承载该至少一个第一比特块的CRC信息,即该CRC字段可以用于校验该至少一个第一比特块。示例性的,CRC信息可以用于保护该至少一个第一比特块中的流量控制信息。且该CRC字段的长度可以为4比特、8比特、16比特或32比特等,该CRC的长度可以根据CRC校验方式确定等,本申请实施例对于该CRC字段的长度不作限定。In a possible implementation manner, the at least one first bit block further includes a cyclic redundancy check CRC field, where the CRC field is used to carry the CRC information of the at least one first bit block, that is, the CRC field can be used for The at least one first block of bits is checked. Exemplarily, the CRC information may be used to protect the flow control information in the at least one first bit block. And the length of the CRC field may be 4 bits, 8 bits, 16 bits, or 32 bits, etc. The length of the CRC may be determined according to a CRC check method, etc. The length of the CRC field is not limited in this embodiment of the present application.
502、接收端向发送端发送至少一个第一比特块,相应的,发送端接收该至少一个第一比特块。502. The receiving end sends at least one first bit block to the transmitting end, and correspondingly, the transmitting end receives the at least one first bit block.
在一种可能的实现方式中,图5所示的方法还可以包括步骤503。In a possible implementation manner, the method shown in FIG. 5 may further include step 503 .
503、接收端向发送端发送第一报文,该第一报文由报文比特块组成。相应的,发送端接收该第一报文。503. The receiving end sends a first message to the sending end, where the first message is composed of message bit blocks. Correspondingly, the sending end receives the first message.
可选的,该第一报文可以包括报文开始比特块、该报文开始比特块对应的数据比特块以 及该报文开始比特块对应的结束比特块(仅为示例)。作为示例,该第一报文可以包括如图2a所示的报文开始比特块(如S0)、报文数据比特块(如D0~D7)以及报文结束比特块(如T0~T7)。可选的,该第一报文可以包括报文开始比特块和该报文开始比特块对应的数据比特块。作为示例,该第一报文可以包括如图2b(二)所示的报文开始比特块和报文数据比特块。至于报文开始比特块中预设字段的具体取值可参考上文描述,这里不再详述。Optionally, the first packet may include a packet start bit block, a data bit block corresponding to the packet start bit block, and an end bit block corresponding to the packet start bit block (just an example). As an example, the first packet may include a packet start bit block (eg S0), a packet data bit block (eg D0-D7) and a packet end bit block (eg T0-T7) as shown in FIG. 2a. Optionally, the first packet may include a packet start bit block and a data bit block corresponding to the packet start bit block. As an example, the first packet may include a packet start bit block and a packet data bit block as shown in FIG. 2b(2). As for the specific value of the preset field in the message start bit block, reference may be made to the above description, which will not be described in detail here.
本申请实施例中,第一比特块可以为非报文比特块,或者,该第一比特块为报文比特块。以下分别示出该第一比特块的具体形式。In this embodiment of the present application, the first bit block may be a non-message bit block, or the first bit block is a message bit block. The specific forms of the first bit block are respectively shown below.
实现方式一、第一比特块为非报文比特块。Implementation Mode 1: The first bit block is a non-message bit block.
即该第一比特块与组成报文的比特块(如组成报文的比特块可以称为第二比特块)不同,如非报文开始比特块中预设字段的取值与报文开始比特块中预设字段的取值不同。对于该预设字段的具体描述,可参考图3a至图3d的相关说明,这里不再详述。该第一比特块为非报文比特块,如至少一个第一比特块包括非报文开始比特块,分别如图6a至图6d的第二个图所示。可选的,该至少一个第一比特块还可以包括非报文结束比特块等,对于该至少一个第一比特块的其他说明,还可以参考下文示出的实施例一至实施例四。That is, the first bit block is different from the bit block composing the message (for example, the bit block composing the message may be called the second bit block), for example, the value of the preset field in the non-message start bit block is the same as the message start bit. The values of the preset fields in the block are different. For the specific description of the preset field, reference may be made to the related descriptions of FIGS. 3 a to 3 d , which will not be described in detail here. The first bit block is a non-message bit block. For example, at least one first bit block includes a non-message start bit block, as shown in the second diagrams of FIG. 6a to FIG. 6d, respectively. Optionally, the at least one first bit block may further include a non-packet end bit block, etc. For other descriptions of the at least one first bit block, reference may also be made to Embodiments 1 to 4 shown below.
在本申请的一些实现方式中,若接收端在发送该至少一个第一比特块时,未发送有第一报文,则该接收端可以单独发送该至少一个第一比特块。作为示例,接收端在发送完该至少一个第一比特块的情况下,发送第一报文;或者,接收端在发送完毕该第一报文的情况下,发送该至少一个第一比特块。In some implementation manners of the present application, if the receiving end does not send the first packet when sending the at least one first bit block, the receiving end may send the at least one first bit block independently. As an example, the receiving end sends the first packet after sending the at least one first bit block; or, the receiving end sends the at least one first bit block after sending the first packet.
在本申请的另一些实现方式中,若接收端在发送该至少一个第一比特块时,正在发送第一报文,则该接收端可以将该至少一个第一比特块插入到第一报文中发送。即接收端可以打断当前正在发送的第一报文,将该至少一个第一比特块插入到该第一报文中。该情况下,上述步骤503还可以替换为:在发送第一报文的报文开始比特块之后,且未发送完毕该第一报文的情况下,接收端向发送端发送至少一个第一比特块。In other implementation manners of the present application, if the receiving end is sending the first message when sending the at least one first bit block, the receiving end may insert the at least one first bit block into the first message sent in. That is, the receiving end can interrupt the first packet currently being sent, and insert the at least one first bit block into the first packet. In this case, the above step 503 can also be replaced with: after sending the message start bit block of the first message and the first message has not been sent, the receiving end sends at least one first bit to the sending end piece.
对于不同类型的比特块来说,由于预设字段位于不同区域。因此,在实现方式一中,发送端接收到该至少一个第一比特块后,可以根据该至少一个第一比特块中的CRC字段承载的CRC信息对该至少一个比特块进行校验。在对该至少一个第一比特块的CRC信息校验成功的情况下,发送端可以根据该至少一个第一比特块的块类型域获取预设字段中承载的数值。若该至少一个第一比特块中预设字段承载的数值为第一数值,则根据该至少一个第一比特块中的流量控制信息调整第二报文的发送情况。示例性的,若至少一个第一比特块包括非报文开始比特块,则该非报文开始比特块的块类型域为比特位置为2至9之间的8比特,且该块类型域的取值为0x78。可选的,当第一比特块为flit时,由于不同类型的比特块的预设字段可以位于同一区域,根据发送端可以通过获取预设字段承载的数值,以及指示字段调整第二报文的发送情况。或者,若至少一个第一比特块为至少一个O比特块,则该至少一个O比特块的块类型域为比特位置为2至9之间的8比特,且该块类型域的取值为0x4B。然后根据该至少一个O比特块的预设字段承载的数值如第二数值,以及指示字段调整第二报文的发送情况。For different types of bit blocks, the preset fields are located in different areas. Therefore, in implementation manner 1, after receiving the at least one first bit block, the transmitting end can check the at least one bit block according to the CRC information carried in the CRC field in the at least one first bit block. In the case that the verification of the CRC information of the at least one first bit block is successful, the transmitting end may obtain the value carried in the preset field according to the block type field of the at least one first bit block. If the value carried in the preset field in the at least one first bit block is the first value, the sending situation of the second packet is adjusted according to the flow control information in the at least one first bit block. Exemplarily, if at least one first bit block includes a non-packet start bit block, the block type field of the non-packet start bit block is 8 bits whose bit positions are between 2 and 9, and the block type field of the non-packet type field is 8 bits. The value is 0x78. Optionally, when the first bit block is flit, since the preset fields of different types of bit blocks can be located in the same area, the sender can adjust the value of the second packet by acquiring the value carried by the preset field and indicating the field. delivery situation. Or, if at least one first bit block is at least one 0-bit block, the block type field of the at least one 0-bit block is 8 bits whose bit position is between 2 and 9, and the value of the block type field is 0x4B . Then, according to the numerical value carried by the preset field of the at least one 0-bit block, such as the second numerical value, and the indication field, the sending situation of the second packet is adjusted.
实现方式二、第一比特块为报文比特块。Implementation Mode 2: The first bit block is a message bit block.
接收端向发送端反馈流量控制信息时,接收端可能正好需要发送第一报文,但是该第一报文还没被发送出去。该情况下,接收端便可以在该第一报文中反馈该流量控制信息。换句话说,接收端可以将该信用数量或时长信息等承载于报文开始比特块中,随第一报文一起被发送出去。When the receiving end feeds back the flow control information to the sending end, the receiving end may just need to send the first packet, but the first packet has not been sent. In this case, the receiving end may feed back the flow control information in the first packet. In other words, the receiving end may carry the credit quantity or duration information, etc. in the message start bit block, and send it together with the first message.
该实现方式中,第一比特块中预设字段承载的数值为第三数值,分别如图6a至图6d的第一个图所示。步骤502中的至少一个第一比特块被承载于第一报文中,随第一报文被一起发送出去。这里所示的第一报文与步骤503中的第一报文可以理解为不同的第一报文(即可以理解为不是同一个报文)。In this implementation manner, the value carried by the preset field in the first bit block is the third value, as shown in the first figures of FIG. 6a to FIG. 6d, respectively. At least one first bit block in step 502 is carried in the first packet, and is sent together with the first packet. The first packet shown here and the first packet in step 503 may be understood as different first packets (that is, may be understood as not the same packet).
该情况下,发送端接收到至少一个第一比特块后,可以根据第一报文的CRC字段(也可以称为帧校验序列(frame check sequence,FCS)字段)承载的CRC信息对该第一报文进行校验。换句话说,尽管该至少一个第一比特块中包括CRC字段,但是该CRC字段用于对该至少一个第一比特块中包括的流量控制信息等进行CRC校验。但是对于第一报文来说,发送端还需要对保护该第一报文的CRC信息进行校验。本申请实施例中,只要至少一个第一比特块中的CRC信息被校验成功,则发送端便可以执行步骤505。若第一报文的另一个CRC信息(如FCS)被校验失败,则发送端可以通知接收端重传该第一报文。In this case, after receiving the at least one first bit block, the transmitting end may perform the first bit block according to the CRC information carried in the CRC field (also referred to as the frame check sequence (FCS) field) of the first packet. A message is checked. In other words, although the CRC field is included in the at least one first bit block, the CRC field is used to perform CRC check on the flow control information and the like included in the at least one first bit block. However, for the first packet, the sender also needs to check the CRC information protecting the first packet. In this embodiment of the present application, as long as the CRC information in at least one first bit block is successfully verified, the transmitting end may perform step 505 . If another CRC information (eg, FCS) of the first packet fails to be checked, the sender may notify the receiver to retransmit the first packet.
示例性的,图6a和图6c示出的是接收端反馈信用数量时,至少一个第一比特块的格式示意图。图6b和图6d示出的是接收端反馈时长信息时,至少一个第一比特块的格式示意图。图6a和图6b示出的是接收端以64B/66B的形式反馈流量控制信息时,至少一个第一比特块的格式示意图,而图6c和图6d示出的是接收端以flit的形式反馈流量控制信息时,至少一个第一比特块的格式示意图。可理解,图6a至图6d中示出的第一报文中尽管包括流量控制信息,但是该流量控制信息被承载于报文比特块中如报文开始比特块中。该报文开始比特块中包括用于承载流量控制信息的字段和CRC字段。可理解,图6c和图6d中,预设字段承载01000时,还可以通过该预设字段之后的2比特识别该flit中是否包括流量控制信息。或者,还可以通过预设字段之后的1比特识别该flit中是否包括流量控制信息等,本申请实施例对此不作限定。示例性的,接收端发送的第一报文的开始flit中除了包括上述示出的指示字段、CRC字段、预设字段之外,还可以包括类型字段,该类型字段可以用于识别该开始flit中是否包括流量控制信息。本申请实施例对于该类型字段的具体位置或长度等不作限定。Exemplarily, FIG. 6a and FIG. 6c are schematic diagrams showing the format of at least one first bit block when the receiving end feeds back the number of credits. FIG. 6b and FIG. 6d are schematic diagrams showing the format of at least one first bit block when the receiving end feeds back the duration information. Figures 6a and 6b show schematic diagrams of the format of at least one first bit block when the receiving end feeds back flow control information in the form of 64B/66B, while Figures 6c and 6d show the receiving end feeding back in the form of flit In the case of flow control information, a schematic diagram of the format of at least one first bit block. It can be understood that although the first packets shown in FIGS. 6a to 6d include flow control information, the flow control information is carried in a packet bit block such as a packet start bit block. The message start bit block includes a field for carrying flow control information and a CRC field. It can be understood that, in FIG. 6c and FIG. 6d , when the preset field carries 01000, it is also possible to identify whether the flit includes flow control information through the 2 bits after the preset field. Alternatively, whether the flit includes flow control information and the like may also be identified through 1 bit after the preset field, which is not limited in this embodiment of the present application. Exemplarily, in addition to the indication field, CRC field, and preset field shown above, the start flit of the first message sent by the receiving end may also include a type field, and the type field may be used to identify the start flit. Whether to include flow control information. This embodiment of the present application does not limit the specific position or length of the field of this type.
可理解,图6a至图6d所示的各个字段的具体位置仅为示例,在具体实现中,上述各个字段还可能在其他位置。同时,上述各个字段的长度还可以依据第一报文所包括的报文比特块的长度而定,以上所示的各个字段的长度和具体取值,本申请实施例也不作限定。对于该非报文比特块的具体描述,还可以参考下文示出的实施例一至实施例四。It can be understood that the specific positions of the fields shown in FIG. 6a to FIG. 6d are only examples, and in a specific implementation, the above fields may also be in other positions. Meanwhile, the lengths of the above fields may also be determined according to the lengths of the message bit blocks included in the first message, and the lengths and specific values of the fields shown above are not limited in the embodiments of the present application. For the specific description of the non-message bit block, reference may also be made to Embodiment 1 to Embodiment 4 shown below.
在一种可能的实现方式中,图5所示的方法还可以包括步骤504和步骤505。In a possible implementation manner, the method shown in FIG. 5 may further include step 504 and step 505 .
504、发送端对至少一个第一比特块进行CRC校验。504. The transmitting end performs CRC check on at least one first bit block.
本申请实施例中,步骤504还可以理解为发送端对至少一个第一比特块中的CRC信息进行校验。In this embodiment of the present application, step 504 may also be understood as the sending end checking the CRC information in the at least one first bit block.
505、在CRC校验通过的情况下,发送端根据至少一个第一比特块中的流量控制信息调整第二报文的发送情况。505. In the case that the CRC check is passed, the sending end adjusts the sending situation of the second packet according to the flow control information in the at least one first bit block.
本申请实施例中,若发送端对至少一个第一比特块中的CRC信息校验失败,则可以直接丢弃该至少一个第一比特块。In this embodiment of the present application, if the sending end fails to check the CRC information in at least one first bit block, the at least one first bit block may be directly discarded.
本申请实施例中,发送端可以通过预设字段承载的数值,区分报文比特块和非报文比特块。若预设字段承载第一数值,则可以从指示字段获取流量控制信息。或者,发送端可以通过比特块的块类型域的不同,获取该比特块是否为O比特块,若为O比特块,则可以通过预设字段获取该O比特块的作用,如预设字段承载第二数值,则从该O比特块指示字段获取流量控制信息。对于步骤505的具体说明,还可以参考下文示出的实施例一至实施例四。In the embodiment of the present application, the sending end may distinguish the message bit block and the non-message bit block according to the value carried by the preset field. If the preset field carries the first value, the flow control information can be obtained from the indication field. Alternatively, the sending end can obtain whether the bit block is an 0-bit block through the difference in the block type field of the bit block, and if it is an 0-bit block, the function of the 0-bit block can be obtained through a preset field, such as the preset field carrying For the second value, the flow control information is obtained from the 0-bit block indication field. For the specific description of step 505, reference may also be made to Embodiments 1 to 4 shown below.
本申请实施例中,发送端可以根据流量控制信息调整第二报文的发送数据量,或者调整 对应队列停止发送第二报文等,本申请实施例对此不作限定。示例性的,发送端根据至少一个第一比特块中的信用数量调整第二报文的数据量。如待发送的至少一个第二报文的数据量小于或等于信用数量对应的数据量,则该发送端可以直接发送该至少一个第二报文。又如待发送的第二报文的数据量大于信用数量对应的数据量,则该发送端先缓存该第二报文,累计信用数量,直到该信用数量对应的数据量大于或等于第二报文的数据量,发送该第二报文。示例性的,发送端还可以根据至少一个第一比特块中的时长信息调整对应队列的发送速率。In the embodiment of the present application, the sending end may adjust the data volume of the second packet to be sent according to the flow control information, or adjust the corresponding queue to stop sending the second packet, etc., which is not limited in the embodiment of the present application. Exemplarily, the sender adjusts the data amount of the second packet according to the number of credits in the at least one first bit block. If the data volume of the at least one second packet to be sent is less than or equal to the data volume corresponding to the credit quantity, the sending end may directly send the at least one second packet. Another example is that the data volume of the second packet to be sent is greater than the data volume corresponding to the credit quantity, the sender first buffers the second packet, and accumulates the credit quantity until the data volume corresponding to the credit quantity is greater than or equal to the second packet. The data volume of the message is sent, and the second message is sent. Exemplarily, the sending end may further adjust the sending rate of the corresponding queue according to the duration information in the at least one first bit block.
本申请实施例中,接收端可以通过第一比特块的形式,而非报文的形式向发送端反馈流量控制信息,一方面可使得接收端能够及时将至少一个第一比特块发送出去,尽可能减少该至少一个第一比特块的传输时延,避免该至少一个第一比特块的传输时间过长,而导致其他报文被阻塞。另一方面,该第一比特块为非报文比特块时,如非报文开始比特块预设字段承载的数值与报文开始比特块预设字段承载的数值不同,由此该非报文比特块和报文比特块能够被接收端或发送端区分。或者,至少一个O比特块预设字段承载的数值不同于其他O比特块预设字段承载的数值,由此发送端或接收端能够根据该预设字段的取值区分至少一个O比特块的作用。另外,该至少一个第一比特块还能够被插入到第一报文中被发送出去,进一步减少了该至少一个第一比特块的等待时延,减少FCT的时延,提高了网络利用率。In this embodiment of the present application, the receiving end may feed back the flow control information to the transmitting end in the form of a first bit block instead of a message. The transmission delay of the at least one first bit block may be reduced, so as to prevent the transmission time of the at least one first bit block from being too long and other packets being blocked. On the other hand, when the first bit block is a non-packet bit block, if the value carried by the preset field of the non-packet start bit block is different from the value carried by the preset field of the packet start bit block, the non-packet Bit blocks and message bit blocks can be distinguished by the receiver or the sender. Or, the value carried by at least one 0-bit block preset field is different from the value borne by other 0-bit block preset fields, so that the transmitting end or the receiving end can distinguish the role of at least one 0-bit block according to the value of the preset field. . In addition, the at least one first bit block can also be inserted into the first packet and sent out, which further reduces the waiting delay of the at least one first bit block, reduces the delay of the FCT, and improves the network utilization rate.
为更形象理解图5所示的方法,以下将以至少一个第一比特块的不同形式示出具体的实施例。可理解,以下示出的各个实施例中的预设字段的具体说明可参考上文描述,下文对于预设字段不再一一详述。For a better understanding of the method shown in FIG. 5 , specific embodiments will be shown below in different forms of at least one first bit block. It can be understood that, for the specific description of the preset fields in the various embodiments shown below, reference may be made to the above description, and the preset fields will not be described in detail below.
实施例一、 Embodiment 1.
至少一个第一比特块包括至少一个O比特块,且每个O比特块中的预设字段承载第二数值。At least one first bit block includes at least one 0-bit block, and a preset field in each 0-bit block carries the second value.
本申请实施例中,指示字段和CRC字段可以分别位于O比特块中比特块位置为10至33,以及38至65之间,且该指示字段和该CRC字段可以分别位于不同的比特位置。同时,该指示字段的长度至少可以为8比特,如该指示字段可以为8比特、16比特、24比特、128比特等,本申请实施例对于该指示字段的具体长度不作限定。该CRC字段的长度可以为4比特、8比特、16比特或32比特等。关于该指示字段和该CRC字段的长度等,下文示出的各个实施例同样适用,下文不再详述。In this embodiment of the present application, the indication field and the CRC field may be located at bit block positions 10 to 33 and 38 to 65 in the 0-bit block, respectively, and the indication field and the CRC field may be located at different bit positions respectively. Meanwhile, the length of the indication field may be at least 8 bits, for example, the indication field may be 8 bits, 16 bits, 24 bits, 128 bits, etc. The specific length of the indication field is not limited in this embodiment of the present application. The length of the CRC field may be 4 bits, 8 bits, 16 bits, or 32 bits, etc. Regarding the length of the indication field and the CRC field, etc., the embodiments shown below are also applicable, and will not be described in detail below.
作为示例,O比特块中指示字段、CRC字段和预设字段的位置和长度可以如图7a所示。如图7a中的第一个图所示,当流量控制信息为信用数量时,指示字段可以位于O比特块中比特位置为10至17之间的8比特,CRC字段可以位于O比特块中比特位置为18至25之间的8比特。如图7a中的第二个图所示,当流量控制信息为时长信息时,指示字段可以位于O比特块中比特位置为10至29之间的20比特,即该指示字段的一部分承载一个队列被停止发送报文的时长,该指示字段的另一部分承载该一个队列的标识。CRC字段位于O比特块中比特位置为30至33之间的4比特。As an example, the positions and lengths of the indication field, the CRC field and the preset field in the 0-bit block may be as shown in FIG. 7a. As shown in the first diagram in Figure 7a, when the flow control information is the number of credits, the indication field can be located in 8 bits between bit positions 10 to 17 in the 0-bit block, and the CRC field can be located in the 0-bit block. The positions are 8 bits between 18 and 25. As shown in the second diagram in Figure 7a, when the flow control information is duration information, the indication field may be located in 20 bits between bit positions 10 to 29 in the 0-bit block, that is, a part of the indication field carries a queue The duration of the stopped sending packets, and the other part of the indication field carries the identifier of the one queue. The CRC field is located in 4 bits between bit positions 30 to 33 in a block of 0 bits.
可理解,图7a所示的指示字段和CRC字段的位置和长度仅为示例,在具体实现中,该指示字段和该CRC字段还可以位于该O比特块的其他区域等,本申请实施例对此不作限定。在本申请实施例中,将O比特块中的其他位置记为保留(reserved,rsvd),但是并不代表该其他位置未被占用,对于图7a中rsvd的区域的作用,本申请实施例不作限定。对于该说明,本申请示出的其他实施例同样适用。It can be understood that the positions and lengths of the indication field and the CRC field shown in FIG. 7a are only examples. In a specific implementation, the indication field and the CRC field may also be located in other areas of the 0-bit block. This is not limited. In the embodiment of the present application, other positions in the 0-bit block are marked as reserved (reserved, rsvd), but this does not mean that the other positions are not occupied. For the role of the area of rsvd in FIG. 7a, the embodiment of the present application does not limited. For this description, other embodiments shown in this application are also applicable.
以下将以一个信用对应16字节,信用数量为20,且以图7a示出的示意图为例,说明本 申请实施例提供的比特块的发送方法的具体场景。Hereinafter, one credit corresponds to 16 bytes, the number of credits is 20, and the schematic diagram shown in Fig. 7a is taken as an example to describe the specific scene of the method for sending the bit block provided by the embodiment of the present application.
其中,O比特块的格式可如图7b的第一个图所示,指示字段占用8个比特,则信用数量的取值范围为0至255(包括0和255)。当信用数量等于0时,则表示接收端无接收能力,即该接收端的缓存情况已饱和,无法再缓存报文。当信用数量等于266时,则表示接收端的缓存空间最大可能缓存255*16=4080字节。The format of the 0-bit block may be as shown in the first figure of FIG. 7b, the indication field occupies 8 bits, and the value range of the credit quantity is 0 to 255 (including 0 and 255). When the number of credits is equal to 0, it means that the receiving end has no receiving ability, that is, the buffering situation of the receiving end is saturated and the message cannot be buffered any more. When the number of credits is equal to 266, it means that the maximum possible buffer space of the receiving end is 255*16=4080 bytes.
在接收端需要发送该至少一个O比特块的情况下,该接收端正在向发送端发送第一报文。从64B/66B编解码层看,该第一报文可以理解为S(报文开始比特块)DDD…D(即报文开始比特块对应的数据比特块)T(即报文开始比特块对应的结束比特块)的报文比特块流。如图7c所示,接收端可以在未发送完该第一报文的报文比特块流的情况下,直接发送该至少一个O比特块,且图7c中示出的是一个O比特块。即接收端可以打断当前正在发送的第一报文的报文比特块流,将至少一个O比特块插入到该第一报文的报文比特块流中,从而将该至少一个O比特块发送出去。When the receiving end needs to send the at least one 0-bit block, the receiving end is sending the first packet to the sending end. From the 64B/66B codec layer, the first message can be understood as S (the message start bit block) DDD...D (that is, the data bit block corresponding to the message start bit block) T (that is, the message start bit block corresponds to the end bit block) of the message bit block stream. As shown in FIG. 7c, the receiving end may directly send the at least one 0-bit block without sending the message bit block stream of the first message, and FIG. 7c shows one 0-bit block. That is, the receiving end can interrupt the message bit block stream of the first message currently being sent, and insert at least one 0-bit block into the message bit block stream of the first message, so that the at least one 0-bit block send out.
发送端接收来自接收端的第一报文,当发送端在未接收完毕该第一报文的报文比特块流的情况下,该发送端接收控制比特块,并获取该控制比特块的块类型域(block type field)为0x4B,且预设字段承载0x06。若发送端计算的CRC结果与该控制比特块中的CRC结果一致,则从该O比特块的D1区域(即指示字段)提取信用数量为20。如果发送端有小于或等于20*16=320字节的第二报文要发送,则该发送端可以立即发送该第二报文。The sending end receives the first message from the receiving end. When the sending end does not receive the message bit block stream of the first message, the sending end receives the control bit block and obtains the block type of the control bit block. The block type field is 0x4B, and the default field carries 0x06. If the CRC result calculated by the sender is consistent with the CRC result in the control bit block, the number of credits extracted from the D1 area (ie, the indication field) of the 0-bit block is 20. If the sender has a second packet less than or equal to 20*16=320 bytes to send, the sender can immediately send the second packet.
以下将以接收端需要停止编号为7的优先级队列发送报文,且以图7a示出的示意图为例,说明本申请实施例提供的比特块的发送方法的具体场景。The following will describe a specific scenario of the method for sending a bit block provided by this embodiment of the present application by taking the receiving end needing to stop the priority queue numbered 7 from sending messages, and taking the schematic diagram shown in FIG. 7a as an example.
其中,O比特块的格式可如图7b的第二个图所示,指示字段承载0xFFFF,表示编号为7的优先级队列需要暂停发送报文的最大时间,指示字段还承载0x7,表示暂停发送报文的队列编号为7。接收端发送至少一个O比特块的具体说明,可参考上述关于图7c的描述,这里不再详述。The format of the 0-bit block may be as shown in the second figure of Figure 7b, the indication field carries 0xFFFF, indicating that the priority queue numbered 7 needs to suspend the maximum time for sending packets, and the indication field also carries 0x7, indicating that the transmission is suspended The queue number of the packet is 7. For a specific description of the receiving end sending at least one 0-bit block, reference may be made to the above description about FIG. 7c , which will not be described in detail here.
可选的,若接收端需要重启编号为7的优先级队列发送报文,则该接收端还可以生成至少一个O比特块,且该O比特块的格式如图7b的第三个图所示。对于图7b的第三个图的具体说明,接收端发送该至少一个O比特块以及发送端接收该至少一个O比特块的方法,可参考上述描述,这里不再详述。Optionally, if the receiving end needs to restart the priority queue numbered 7 to send the message, the receiving end can also generate at least one 0-bit block, and the format of the 0-bit block is as shown in the third figure of Figure 7b. . For the specific description of the third diagram of FIG. 7b, the method for the receiver to send the at least one 0-bit block and the method for the transmitter to receive the at least one 0-bit block can be referred to the above description, which will not be described in detail here.
针对实施例一以下根据公式简单分析本申请实施例的有益效果。For the first embodiment, the beneficial effects of the embodiments of the present application are briefly analyzed according to the formula below.
示例性的,如以链路利用率模型为例,如链路利用率可以满足如下如公式。Exemplarily, taking the link utilization model as an example, for example, the link utilization rate may satisfy the following formula.
Figure PCTCN2021109907-appb-000004
Figure PCTCN2021109907-appb-000004
其中,TLP len用于表示第一报文的负载长度,即第一报文的最大净荷长度;H len用于表示第一报文的头长度;ACK len用于表示接收端接收到第二报文后反馈的确认应答(acknowledge,ACK)报文的长度;FC len用于表示至少一个第一比特块的长度;FC updateFactor用于表示至少一个第一比特块的发送因子;ACK updateFactor用于表示PCIe标准规范的ACK报文的发送因子;P bw用于表示阻塞程度,如接收端发送至少一个第一比特块时的时延。示例性的,接收端发送至少一个第一比特块时,当前没有发送第一报文,即最好情况(best case)时,P bw=0。而在接收端发送至少一个第一比特块时,若接收端当前正在发送第二报文,如在最差情况(worst case)时,P bw=(TLP len+H len)+FC lenAmong them, TLP len is used to indicate the payload length of the first packet, that is, the maximum payload length of the first packet; H len is used to indicate the header length of the first packet; ACK len is used to indicate that the receiver receives the second The length of the acknowledgement (acknowledge, ACK) message fed back after the message; FC len is used to indicate the length of at least one first bit block; FC updateFactor is used to indicate the transmission factor of at least one first bit block; ACK updateFactor is used to indicate the length of the at least one first bit block. Indicates the sending factor of the ACK packet specified by the PCIe standard; P bw is used to indicate the blocking degree, such as the delay when the receiver sends at least one first bit block. Exemplarily, when the receiving end sends at least one first bit block, it does not currently send the first packet, that is, in the best case (best case), P bw =0. When the receiving end sends at least one first bit block, if the receiving end is currently sending the second packet, such as in a worst case (worst case), P bw =(TLP len +H len )+FC len .
本申请实施例中,在最好情况时,P bw=0;在最差情况时,P bw=8+8=16字节,即阻塞一个比特块的大小(按照100Gbps的以太网接口,传送100G业务,考虑64B/66B编码,实 际接口速率是100*66/64Gbps。如果只考虑100G速率,则一个比特块可以折算为64比特,即8字节)。且其他参数的取值如TLP len=256,头长度为20字节,再考虑8个字节的前导以及12字节帧间隙(即H len=20+8+12=40)。FC updateFactor=2.5、ACK updateFactor=2.5,ACK len=8,FC len=8。 In the embodiment of the present application, in the best case, P bw =0; in the worst case, P bw =8+8=16 bytes, that is, blocking the size of one bit block (according to the 100Gbps Ethernet interface, transmission For 100G services, considering 64B/66B encoding, the actual interface rate is 100*66/64Gbps. If only 100G rate is considered, one bit block can be converted into 64 bits, that is, 8 bytes). And the values of other parameters such as TLP len = 256, the header length is 20 bytes, and then consider the 8-byte preamble and the 12-byte frame gap (ie, H len =20+8+12=40). FC updateFactor =2.5, ACK updateFactor =2.5, ACK len =8, FC len =8.
则应用本申请实施例提供的方法,在最好情况时,U linkutilization=0.979;在最差情况时,U linkutilization=0.959;在平均值(middle case)时,U linkutilization=(0.979+0.959)/2=0.969。从中可以看出,应用本申请实施例提供的方法,接收端向发送端发送至少一个第一比特块的链路的利用率接近1。 Then applying the method provided by the embodiments of the present application, in the best case, U linkutilization =0.979; in the worst case, U linkutilization =0.959; in the middle case, U linkutilization =(0.979+0.959)/ 2=0.969. It can be seen from this that, by applying the method provided by the embodiment of the present application, the utilization rate of the link in which the receiving end sends at least one first bit block to the transmitting end is close to 1.
图7d示出的是根据报文长度(如上述TLP len)的不同,而导致链路利用率的变化情况。其中,“1”、“2”或“3”分别表示最好情况时、平均值时或最差情况时,报文长度与链路利用率的变化示意。从图7d可以看出,本申请实施例提供的方法,不仅能够及时将至少一个第一比特块发送出去,还能够改善链路利用率。 Fig. 7d shows the change of the link utilization rate according to the difference of the packet length (such as the above-mentioned TLP len ). Among them, "1", "2" or "3" respectively indicate the change of the packet length and the link utilization rate in the best case, the average case or the worst case. It can be seen from FIG. 7d that the method provided by this embodiment of the present application can not only send at least one first bit block in time, but also improve link utilization.
以下简单分析本申请实施例提供的方法中,接收端需要增加的缓存大小。The following briefly analyzes the buffer size that needs to be increased at the receiving end in the method provided by the embodiment of the present application.
假设链路速率为R,接收端的发送速率为R 1≤?,承载流量控制信息的至少一个第一比特块长度为L1,被该至少一个第一比特块打断的第一报文已经发送的比特块长度为L2,则接收端需要增加的缓存大小如下所示: Assuming that the link rate is R, the sending rate of the receiver is R 1 ≤? , the length of at least one first bit block carrying flow control information is L1, and the length of the sent bit block of the first packet interrupted by the at least one first bit block is L2, then the buffer size that needs to be increased by the receiving end is as follows Show:
Figure PCTCN2021109907-appb-000005
Figure PCTCN2021109907-appb-000005
因此若至少一个第一比特块的长度L1=8字节,被打断的第一报文如果发送了报文开始比特块如L2=8字节,那么接收端需要增加的缓存大小仅为16字节。Therefore, if the length of at least one first bit block is L1=8 bytes, if the interrupted first message sends the message start bit block such as L2=8 bytes, then the buffer size that the receiver needs to increase is only 16 bytes. byte.
可理解,本申请实施例示出的各个公式或关于公式的说明等,同样适用于下文示出的实施例二至实施例四,下文不再详述。It is understandable that each formula shown in the embodiments of the present application or descriptions about formulas, etc., are also applicable to Embodiments 2 to 4 shown below, and will not be described in detail below.
实施例二、Embodiment two,
至少一个第一比特块包括非报文开始比特块和非报文结束比特块,且该非报文开始比特块中的预设字段承载第一数值。At least one first bit block includes a non-message start bit block and a non-message end bit block, and a preset field in the non-message start bit block carries the first value.
本申请实施例中,指示字段、CRC字段和预设字段可以位于非报文开始比特块中比特位置为10至65之间,以及非报文结束比特块中比特位置为10至65之间。In this embodiment of the present application, the indication field, the CRC field, and the preset field may be located between 10 and 65 in the non-message start bit block, and between 10 and 65 in the non-message end bit block.
作为示例,预设字段、指示字段和CRC字段的比特位置可以如图8a所示。如图8a的第二个图所示,指示字段可以位于非报文结束比特块中比特位置为10至17的8比特,CRC字段位于该非报文结束比特块中比特位置为18至25之间的8比特。或者,如图8c的第三个图所示,指示字段可以位于非报文结束比特块中比特位置为10至49之间的5个字节,CRC字段位于该非报文结束比特块中比特位置为50至65之间的16比特。As an example, the bit positions of the preset field, the indication field and the CRC field may be as shown in Figure 8a. As shown in the second diagram of Figure 8a, the indication field may be located in 8 bits in bit positions 10 to 17 in the non-end of message bit block, and the CRC field in bit positions 18 to 25 in the non-end of message bit block 8 bits between. Alternatively, as shown in the third diagram of Figure 8c, the indication field may be located in 5 bytes between bit positions 10 and 49 in the non-end of message bit block in which the CRC field is located Positions are 16 bits between 50 and 65.
如仍以图7c中的相关描述为例,如图8b所示,在接收端需要反馈流量控制信息的情况下,且当前接收端正在发送第一报文的报文比特块流。该情况下,接收端可以将非报文开始比特块和非报文结束比特块插入到当前正在发送的报文比特块流中。由此,发送端在获取到该非报文开始比特块(如块类型域为0x78)之后,可以根据该非报文开始比特块中预设字段承载的0xE5获知该非报文开始比特块不是报文开始比特块。同时,当发送端获取到非报文结束比特块后,从该非报文结束比特块的指示字段获取信用数量或时长信息等。然后发送端调整第二报文的发送情况。Still taking the related description in FIG. 7c as an example, as shown in FIG. 8b, in the case that the receiving end needs to feed back flow control information, and the receiving end is currently sending the message bit block stream of the first message. In this case, the receiving end may insert the non-message start bit block and the non-message end bit block into the stream of message bit blocks currently being sent. Therefore, after obtaining the non-message start bit block (for example, the block type field is 0x78), the sender can know that the non-message start bit block is not based on 0xE5 carried by the preset field in the non-message start bit block. The message starts a block of bits. At the same time, when the sender obtains the non-message end bit block, it obtains credit quantity or duration information from the indication field of the non-message end bit block. Then, the sending end adjusts the sending situation of the second packet.
可选的,图8b示出的是接收端在第一报文的报文比特块流中依次插入非报文开始比特块和非报文结束比特块。如图8c所示,接收端还可以在该第一报文的报文比特块流中依次插入 非报文结束比特块和非报文开始比特块。换句话说,本申请实施例中,接收端可以依次发送非报文开始比特块和非报文结束比特块;或者,接收端还可以依次发送非报文结束比特块和非报文开始比特块。Optionally, FIG. 8b shows that the receiving end sequentially inserts a non-message start bit block and a non-message end bit block into the message bit block stream of the first message. As shown in Figure 8c, the receiving end may also insert a non-message end bit block and a non-message start bit block into the message bit block stream of the first message in sequence. In other words, in this embodiment of the present application, the receiving end may sequentially send a non-message start bit block and a non-message end bit block; or, the receiving end may also sequentially send a non-message end bit block and a non-message start bit block .
图8a中的m和n可以表示不同队列的标识(或编号等)。可理解,关于图8a至图8c的具体说明,可参考图5至图7c,这里不再详述。m and n in Fig. 8a may represent the identification (or number, etc.) of different queues. It can be understood that, for the specific description of FIGS. 8 a to 8 c , reference may be made to FIGS. 5 to 7 c , which will not be described in detail here.
实施例三、Embodiment three,
至少一个第一比特块包括非报文开始比特块、该非报文开始比特块对应的至少一个非报文数据比特块和该非报文开始比特块对应的非报文结束比特块,且该非报文开始比特块中的预设字段承载第一数值。At least one first bit block includes a non-packet start bit block, at least one non-packet data bit block corresponding to the non-packet start bit block, and a non-packet end bit block corresponding to the non-packet start bit block, and the The preset field in the non-message start bit block carries the first value.
本申请实施例中,指示字段和CRC字段可以分别位于非报文数据比特块中,且分别占用不同的比特位置。In this embodiment of the present application, the indication field and the CRC field may be located in non-message data bit blocks, respectively, and occupy different bit positions.
作为示例,至少一个第一比特块可以包括一个非报文开始比特块、一个非报文数据比特块和一个非报文结束比特块。其中,预设字段包含于该非报文开始比特块中,指示字段和CRC字段可以包含于该非报文数据比特块中,至于该指示字段和该CRC字段的具体位置,本申请实施例不作限定。As an example, the at least one first bit block may include a non-message start bit block, a non-message data bit block, and a non-message end bit block. The preset field is included in the non-message start bit block, and the indication field and the CRC field may be included in the non-message data bit block. As for the specific positions of the indication field and the CRC field, the embodiments of the present application do not limited.
作为示例,至少一个第一比特块还可以包括一个非报文开始比特块、至少两个非报文数据比特块和一个非报文结束比特块。其中,预设字段包含于该非报文开始比特块中,指示字段和CRC字段可以包含于同一个非报文数据比特块中,或者分别包含于不同的报文数据比特块中等。例如,指示字段可以包含于同一非报文数据比特块中,或者,该指示字段可以包含于不同的非报文数据比特块中等。该情况下,如图9a和图9b所示,图9a中,指示字段和CRC字段可以包含于不同的非报文数据比特块中,图9b中,指示字段包含于至少三个非报文数据比特块中。As an example, the at least one first bit block may further include a non-message start bit block, at least two non-message data bit blocks, and a non-message end bit block. Wherein, the preset field is included in the non-message start bit block, and the indication field and the CRC field may be included in the same non-message data bit block, or respectively included in different message data bit blocks, etc. For example, the indication field may be contained in the same block of non-message data bits, or the indication field may be contained in a different block of non-message data bits, or the like. In this case, as shown in Figures 9a and 9b, in Figure 9a, the indication field and the CRC field may be included in different non-message data bit blocks, and in Figure 9b, the indication field is included in at least three non-message data bits in the bit block.
作为示例,至少一个第一比特块还可以包括一个非报文开始比特块、八个非报文数据比特块和一个非报文结束比特块。如图9a和图9b所示,包含CRC字段的可以理解为第八个非报文数据比特块,而对于信用数量和时长信息等,本申请实施例不作限定。图9b中8个比特长度的队列标识信息如e[0:7]可以用于表示8个队列分别对应的时长信息的有效性。如e[0x11](0001 0001)可以表示队列0和队列4的时长信息是有效的。可理解,这里所示的e[0:7]对队列之间的对应关系仅为示例。As an example, the at least one first bit block may further include one non-message start bit block, eight non-message data bit blocks, and one non-message end bit block. As shown in FIG. 9a and FIG. 9b, the CRC field can be understood as the eighth non-message data bit block, and the credit quantity and duration information, etc., are not limited in this embodiment of the present application. In FIG. 9b, the queue identification information with a length of 8 bits, such as e[0:7], can be used to indicate the validity of the duration information corresponding to the eight queues respectively. For example, e[0x11](0001 0001) can indicate that the duration information of queue 0 and queue 4 is valid. It can be understood that the correspondence between the e[0:7] pairs of queues shown here is only an example.
图9c示出的是接收端发送至少一个第一比特块,发送端接收该至少一个第一比特块的方法,对于图9c所示的方法可参考上文介绍的各个实施例,这里不再详述。Fig. 9c shows a method in which the receiving end sends at least one first bit block, and the transmitting end receives the at least one first bit block. For the method shown in Fig. 9c, reference may be made to the various embodiments introduced above, which are not detailed here. described.
实施例四、Embodiment four,
至少一个第一比特块包括至少一个O比特块,且每个O比特块中的预设字段承载第二数值。At least one first bit block includes at least one 0-bit block, and a preset field in each 0-bit block carries the second value.
以上示出的实施例一至实施例三是以图2a所示的比特块为例示出的,本申请实施例将以图2b所示的比特块为例说明本申请实施例提供的方法。 Embodiments 1 to 3 shown above are illustrated by taking the bit block shown in FIG. 2 a as an example, and this embodiment of the present application will take the bit block shown in FIG. 2 b as an example to describe the method provided by the embodiment of the present application.
作为示例,如图10a或图10b所示,H的长度可以为3个比特,如H承载100时,表示该flit为control flit;H承载001时,表示该flit为payload flit。预设字段的长度为5个比特,预设字段承载00001表示该flit的类型为报文开始flit,预设字段承载00101表示该flit的类型为信用更新flit,预设字段承载00110表示该flit的类型为PFC flit。换句话说,当H承载100时,预设字段承载00101时,该flit为信用更新flit;而当H承载100,且预设字段承载00110时,该flit为PFC flit。As an example, as shown in Figure 10a or Figure 10b, the length of H may be 3 bits. For example, when H bears 100, it indicates that the flit is a control flit; when H bears 001, it indicates that the flit is a payload flit. The length of the preset field is 5 bits, the preset field carrying 00001 indicates that the type of the flit is the start of the message flit, the preset field carrying 00101 indicates that the flit type is credit update flit, and the preset field carrying 00110 indicates that the flit Type is PFC flit. In other words, when H carries 100 and the default field carries 00101, the flit is a credit update flit; and when H carries 100 and the default field carries 00110, the flit is a PFC flit.
图10b中的0x81即为e[0:7]的一种表述形式。示例性的,e[0:7]可以表示对应队列的有效性,如0x81的二进制为1000 0001,由此可以表示Time[0]和Time[7]是有效值。0x81 in Figure 10b is a representation of e[0:7]. Exemplarily, e[0:7] may indicate the validity of the corresponding queue, for example, the binary value of 0x81 is 1000 0001, which indicates that Time[0] and Time[7] are valid values.
如仍以图8a中的相关描述为例,第一比特块的格式可以如图10a的第三个图所示,或者如图10b的第三个图所示。接收端可以将至少一个第一比特块插入到比特块流中,将该至少一个第一比特块发送给发送端。可理解,图10c示出的O flit即为本申请实施例中示出的至少一个第一比特块。Taking the related description in FIG. 8a as an example, the format of the first bit block may be as shown in the third diagram of FIG. 10a, or as shown in the third diagram of FIG. 10b. The receiving end may insert at least one first bit block into the bit block stream, and send the at least one first bit block to the transmitting end. It can be understood that the Oflit shown in FIG. 10c is the at least one first bit block shown in the embodiment of the present application.
可理解,图10b示出的Sflit(即报文开始比特块)中的同步头(如H字段)承载100,数据flit(D flit)的同步头承载001。相对于只有S flit中包括同步头,且D flit中不包括同步头的方案来说,本申请实施例中的每个flit中均包括同步头,由此保证了至少一个第一比特块即使被插入到flit的比特块流中,发送端也能够从D flit中识别出该至少一个第一比特块。示例性的,如果D flit中不包括同步头,则若该D flit中某些字段的取值正好与O flit的取值相同,则发送端可能无法识别接收到的flit是D flit还是O flit。It can be understood that the synchronization header (such as the H field) in the Sflit (ie, the packet start bit block) shown in FIG. 10b carries 100, and the synchronization header of the data flit (D flit) carries 001. Compared with the scheme in which only the synchronization header is included in S flit, and the synchronization header is not included in D flit, each flit in the embodiment of the present application includes a synchronization header, thereby ensuring that at least one first bit block is Inserted into the bit block stream of flit, the sender can also identify the at least one first bit block from D flit. Exemplarily, if the synchronization header is not included in the D flit, if the value of some fields in the D flit is exactly the same as the value of the Off, the sender may not be able to identify whether the received flit is a D flit or an Off. .
可理解,本申请示出的不同实施例的侧重点不同,其中一个实施例中未详尽描述的实现方式,还可以参考其他实施例等,这里不再详述。It can be understood that the emphases of different embodiments shown in this application are different, and for an implementation manner that is not described in detail in one embodiment, reference may also be made to other embodiments, etc., which will not be described in detail here.
本申请上文图5所示的方法中,流量控制信息根据接收端的缓存情况得到。该接收端的缓存情况包括该接收端的缓存大小,或者,该接收端的缓存队列的缓存大小等。或者,该接收端的缓存队列的缓存大小包括该接收端的缓存队列的缓存大小是否超过缓存阈值等。In the method shown in FIG. 5 above in the present application, the flow control information is obtained according to the buffer status of the receiving end. The buffer status of the receiving end includes the buffer size of the receiving end, or the buffer size of the buffer queue of the receiving end, and the like. Or, the cache size of the cache queue of the receiving end includes whether the cache size of the cache queue of the receiving end exceeds a cache threshold and the like.
针对上述描述,对接收端的缓存大小进一步进行说明。如接收端的缓存大小包括以下一项或多项:In view of the above description, the buffer size of the receiving end is further described. For example, the buffer size at the receiving end includes one or more of the following:
1、接收端当前的空闲缓存大小;1. The current free buffer size of the receiver;
即确定流量控制信息时,接收端的空闲缓存大小。That is, when determining the flow control information, the size of the free buffer at the receiving end.
2、接收端增加的空闲缓存大小;2. The size of the free buffer increased by the receiver;
即上次流量控制信息发送到本次流量控制信息发送时间段内,接收端排出的报文数量即为新增的空闲缓存大小。例如两次流控控制信息发送时间段内,接收端排出的报文数据量为2KB,那么2KB即为新增的空闲缓存大小。That is, within the time period when the last time the flow control information is sent to the current time when the flow control information is sent, the number of packets discharged by the receiving end is the newly added free buffer size. For example, within the time period when the flow control information is sent twice, the amount of packet data discharged by the receiving end is 2KB, so 2KB is the newly added free buffer size.
3、自初始化累计可分配的缓存大小。3. Self-initialization accumulatively allocates the cache size.
即自链路初始化,当前时刻接收端累计排出的报文数据量与缓存大小之和,记为累计可分配的缓存大小。例如接收端累计排空的报文数量为10KB,缓存大小为2KB,那么接收端累计可分配的缓存大小为12KB。That is, since the link is initialized, the sum of the total amount of packet data discharged by the receiver at the current moment and the buffer size is recorded as the cumulative allocable buffer size. For example, if the total number of packets emptied by the receiver is 10KB and the buffer size is 2KB, then the cumulative buffer size that can be allocated by the receiver is 12KB.
针对上述描述,对接收端的缓存队列的缓存大小进一步进行说明。如接收端的缓存队列的缓存大小还可以包括以下任一项或多项:For the above description, the buffer size of the buffer queue of the receiving end is further described. For example, the buffer size of the buffer queue at the receiving end may also include any one or more of the following:
1、接收端当前占用的缓存大小;1. The size of the buffer currently occupied by the receiver;
2、接收端占用的缓存大小是否超过某个阈值;2. Whether the buffer size occupied by the receiving end exceeds a certain threshold;
3、接收端占用的缓存大小是否小于某个阈值。3. Whether the buffer size occupied by the receiving end is smaller than a certain threshold.
针对上述描述,流量控制信息除了可以包括至少一个队列被停止发送报文的时长信息,还包括该至少一个队列的标识。可选的,流量控制信息还可以包括以下任一项或多项:With regard to the above description, the flow control information may include, in addition to the duration information that at least one queue is stopped from sending packets, and also includes the identifier of the at least one queue. Optionally, the flow control information may also include any one or more of the following:
1、至少一个队列的缓存情况;1. The cache situation of at least one queue;
例如,流量控制信息可以包括至少一个队列中每个队列的标识,和该每个队列的缓存情况等。For example, the flow control information may include the identifier of each queue in the at least one queue, the buffer status of each queue, and the like.
2、至少一个队列被暂停发送报文的时长信息;2. The duration information of at least one queue being suspended for sending packets;
3、至少一个队列重新开始发送报文的时间信息。3. Time information when at least one queue restarts sending packets.
以下将介绍本申请实施例提供的装置。The apparatus provided by the embodiments of the present application will be introduced below.
图11是本申请实施例提供的一种通信装置的结构示意图,该通信装置包括处理单元1101和收发单元1102。FIG. 11 is a schematic structural diagram of a communication device provided by an embodiment of the present application, where the communication device includes a processing unit 1101 and a transceiver unit 1102 .
在本申请的一些实施例中,图11所示的通信装置可以用于执行上述实施例中由接收端执行的操作(功能或步骤等)。示例性的,该通信装置可以用于执行图5所示的步骤501和步骤502等。In some embodiments of the present application, the communication apparatus shown in FIG. 11 may be used to perform the operations (functions or steps, etc.) performed by the receiving end in the foregoing embodiments. Exemplarily, the communication apparatus may be used to perform steps 501 and 502 shown in FIG. 5 , and the like.
本申请实施例中,处理单元1101,可用于生成至少一个第一比特块,收发单元1102,用于输出该至少一个第一比特块。In this embodiment of the present application, the processing unit 1101 may be configured to generate at least one first bit block, and the transceiver unit 1102 may be configured to output the at least one first bit block.
在一种可能的实现方式中,收发单元1102,还用于输出第一报文。In a possible implementation manner, the transceiver unit 1102 is further configured to output the first packet.
在一种可能的实现方式中,收发单元1102,具体用于在输出第一报文的报文开始比特块之后,且未输出完毕该第一报文的情况下,输出至少一个第一比特块。In a possible implementation manner, the transceiver unit 1102 is specifically configured to output at least one first bit block after the packet start bit block of the first packet is output and the first packet is not output completely .
在一种可能的实现方式中,收发单元1102,还可以用于获取(或称为输入)第二报文。In a possible implementation manner, the transceiver unit 1102 may also be used to acquire (or referred to as inputting) the second packet.
可理解,对于第一比特块、报文比特块、非报文比特块、第一报文或第二报文等的描述可参考上述实施例,这里不再一一详述。示例性的,对于报文比特块和非报文比特块的区别可以参考图3a至图3d,或者,也可以参考图6a至图6d等。对于至少一个第一比特块的描述可参考图7a至图10c等。It can be understood that, for the description of the first bit block, the message bit block, the non-message bit block, the first message or the second message, etc., reference may be made to the above-mentioned embodiments, which will not be described in detail here. Exemplarily, for the difference between a message bit block and a non-message bit block, reference may be made to FIG. 3a to FIG. 3d, or, reference may also be made to FIG. 6a to FIG. 6d, etc. FIG. For the description of the at least one first bit block, reference may be made to FIG. 7a to FIG. 10c and so on.
在本申请的另一些实施例中,图11所示的通信装置可以用于执行上述实施例中由发送端执行的操作(或功能或步骤等)。示例性的,该通信装置可以用于执行图5所示的步骤504和步骤505等。In other embodiments of the present application, the communication apparatus shown in FIG. 11 may be used to perform the operations (or functions or steps, etc.) performed by the sender in the foregoing embodiments. Exemplarily, the communication apparatus may be used to perform steps 504 and 505 shown in FIG. 5 , and the like.
本申请实施例中,收发单元1102,用于获取(或称为输入)至少一个第一比特块;处理单元1101,根据该至少一个第一比特块中的流量控制信息调整第二报文的发送情况。In this embodiment of the present application, the transceiver unit 1102 is configured to acquire (or input) at least one first bit block; the processing unit 1101 is configured to adjust the sending of the second packet according to the flow control information in the at least one first bit block condition.
在一种可能的实现方式中,收发单元1102,用于输出根据第二报文的发送情况输出该第二报文。In a possible implementation manner, the transceiver unit 1102 is configured to output the second packet according to the sending situation of the second packet.
在一种可能的实现方式中,处理单元1101,还用于对该至少一个第一比特块进行CRC校验。In a possible implementation manner, the processing unit 1101 is further configured to perform a CRC check on the at least one first bit block.
本申请实施例中,根据至少一个第一比特块为非报文比特块或报文比特块的不同,处理单元对至少一个第一比特块进行CRC校验的方式也可以不同。示例性的,若至少一个第一比特块为非报文比特块,则处理单元可以对该至少一个第一比特块中的CRC字段承载的CRC信息进行校验。若至少一个第一比特块为报文比特块,则处理单元不仅对该至少一个第一比特块中的CRC字段承载的CRC信息进行校验,还需要对第一报文的另一个CRC字段(如FCS字段)中承载的CRC信息进行校验。In this embodiment of the present application, according to whether the at least one first bit block is a non-message bit block or a message bit block, the manner in which the processing unit performs the CRC check on the at least one first bit block may also be different. Exemplarily, if the at least one first bit block is a non-message bit block, the processing unit may check the CRC information carried in the CRC field in the at least one first bit block. If at least one first bit block is a message bit block, the processing unit not only checks the CRC information carried by the CRC field in the at least one first bit block, but also needs to check another CRC field ( For example, the CRC information carried in the FCS field) is checked.
可理解,对于第一比特块、报文比特块、非报文比特块、第一报文或第二报文等的描述可参考上述实施例,这里不再一一详述。示例性的,对于报文比特块和非报文比特块的区别可以参考图3a至图3d,或者,也可以参考图6a至图6d等。对于至少一个第一比特块的描述可参考图7a至图10c等。It can be understood that, for the description of the first bit block, the message bit block, the non-message bit block, the first message or the second message, etc., reference may be made to the above-mentioned embodiments, which will not be described in detail here. Exemplarily, for the difference between a message bit block and a non-message bit block, reference may be made to FIGS. 3a to 3d, or, reference may also be made to FIGS. 6a to 6d, and so on. For the description of the at least one first bit block, reference may be made to FIG. 7a to FIG. 10c and so on.
本申请实施例的各个实施例中示出的收发单元和处理单元的说明仅为示例,对于收发单元和处理单元的具体实现方式,还可以参考本申请示出的各个方法实施例,这里不再一一详述。The descriptions of the transceiver unit and the processing unit shown in the various embodiments of the embodiments of this application are only examples. For the specific implementation of the transceiver unit and the processing unit, reference may also be made to the various method embodiments shown in this application, which are not repeated here. Detailed description.
本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以 有另外的划分方式,另外,在本申请各个实施例中的各功能模块或单元可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块或单元集成在一个模块或单元中。上述集成的模块或单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。The division of modules in the embodiments of the present application is schematic, and is only a logical function division. In actual implementation, there may be other division methods. In addition, each functional module or unit in each embodiment of the present application may be integrated in the A processor may also exist physically alone, or two or more modules or units may be integrated into one module or unit. The above-mentioned integrated modules or units may be implemented in the form of hardware, or may be implemented in the form of software function modules.
在一种可能的实现方式中,当图11所示的通信装置是任意形态的计算机、服务器、交换机、路由器或网卡等;或者是任意形态的计算机、服务器、交换机、路由器或网卡等中的装置,或者是与任意形态的计算机、服务器、交换机、路由器或网卡等匹配使用的装置时,处理单元1101可以是一个或多个处理器,收发单元1102可以是收发器,或者收发单元1102还可以是发送单元和接收单元,发送单元可以是发送器,接收单元可以是接收器,该发送单元和接收单元集成于一个器件,例如收发器。本申请实施例中,处理器和收发器可以被耦合等,对于处理器和收发器的连接方式,本申请实施例不作限定。In a possible implementation, when the communication device shown in FIG. 11 is any form of computer, server, switch, router or network card, etc.; or a device in any form of computer, server, switch, router or network card, etc. , or when it is a device matched with any form of computer, server, switch, router or network card, etc., the processing unit 1101 can be one or more processors, the transceiver unit 1102 can be a transceiver, or the transceiver unit 1102 can also be A sending unit and a receiving unit, the sending unit may be a transmitter, and the receiving unit may be a receiver, and the sending unit and the receiving unit are integrated into one device, such as a transceiver. In the embodiment of the present application, the processor and the transceiver may be coupled, etc., and the connection manner of the processor and the transceiver is not limited in the embodiment of the present application.
如图12所示,该通信装置120包括一个或多个处理器1220和收发器1212。As shown in FIG. 12 , the communication device 120 includes one or more processors 1220 and a transceiver 1212 .
可选的,该处理器和收发器可用于执行上述通信装置作为接收端时所执行的功能或操作等。示例性的,如处理器用于生成至少一个第一比特块;收发器用于发送该至少一个第一比特块。又如,收发器用于发送第一报文。又如,收发器用于在发送第一报文的报文开始比特块之后,且未发送完毕第一报文的情况下,发送该至少一个第一比特块。又如,收发器还用于接收第二报文。Optionally, the processor and the transceiver may be configured to perform the functions or operations performed when the above-mentioned communication apparatus is used as the receiving end. Exemplarily, for example, the processor is configured to generate at least one first bit block; the transceiver is configured to transmit the at least one first bit block. For another example, the transceiver is used to send the first message. For another example, the transceiver is configured to send the at least one first bit block after sending the message start bit block of the first message and when the first message has not been sent. For another example, the transceiver is further configured to receive the second message.
可选的,该处理器和收发器可用于执行上述通信装置作为发送端时所执行的功能或操作等。示例性的,如收发器用于接收至少一个第一比特块;处理器,用于根据该至少一个第一比特块中的流量控制信息调整第二报文的发送情况。又如,收发器,还用于根据第二报文的发送情况发送该第二报文。又如,处理器,还用于对该至少一个第一比特块进行CRC校验。Optionally, the processor and the transceiver may be configured to perform the functions or operations performed when the above-mentioned communication apparatus is used as the sending end. Exemplarily, for example, the transceiver is configured to receive at least one first bit block; the processor is configured to adjust the sending situation of the second packet according to the flow control information in the at least one first bit block. In another example, the transceiver is further configured to send the second message according to the sending situation of the second message. In another example, the processor is further configured to perform a CRC check on the at least one first bit block.
可理解,对于收发器和/或处理器执行的功能或操作等,可以参考图11示出的各个实施例,或者,还可以参考图5所示的方法实施例等,这里不再一一详述。可理解,对于第一比特块、报文比特块、非报文比特块、第一报文或第二报文等的描述可参考上述实施例,这里不再一一详述。示例性的,对于报文比特块和非报文比特块的区别可以参考图3a至图3d,或者,也可以参考图6a至图6d等。对于至少一个第一比特块的描述可参考图7a至图10c等。It can be understood that, for the functions or operations performed by the transceiver and/or the processor, reference may be made to the various embodiments shown in FIG. 11 , or the method embodiment shown in FIG. 5 may also be referred to, which will not be described in detail here. described. It can be understood that, for the description of the first bit block, the message bit block, the non-message bit block, the first message or the second message, etc., reference may be made to the above-mentioned embodiments, which will not be described in detail here. Exemplarily, for the difference between a message bit block and a non-message bit block, reference may be made to FIGS. 3a to 3d, or, reference may also be made to FIGS. 6a to 6d, and so on. For the description of the at least one first bit block, reference may be made to FIG. 7a to FIG. 10c and so on.
在图12所示的通信装置的各个实现方式中,收发器可以包括接收机和发射机,该接收机用于执行接收的功能(或操作),该发射机用于执行发射的功能(或操作)。以及收发器用于通过传输介质和其他设备/装置进行通信。In various implementations of the communication device shown in FIG. 12, a transceiver may include a receiver for performing the function (or operation) of receiving and a transmitter for performing the function (or operation) of transmitting ). And transceivers are used to communicate with other devices/devices over the transmission medium.
可选的,通信装置120还可以包括一个或多个存储器1230,用于存储程序指令和/或数据。存储器1230和处理器1220耦合。本申请实施例中的耦合是装置、单元或模块之间的间接耦合或通信连接,可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。处理器1220可能和存储器1230协同操作。处理器1220可可以执行存储器1230中存储的程序指令。可选的,上述一个或多个存储器中的至少一个可以包括于处理器中。Optionally, the communication device 120 may further include one or more memories 1230 for storing program instructions and/or data. Memory 1230 and processor 1220 are coupled. The coupling in the embodiments of the present application is an indirect coupling or communication connection between devices, units or modules, which may be in electrical, mechanical or other forms, and is used for information exchange between devices, units or modules. The processor 1220 may cooperate with the memory 1230. The processor 1220 may execute program instructions stored in the memory 1230 . Optionally, at least one of the above-mentioned one or more memories may be included in the processor.
本申请实施例中不限定上述收发器1212、处理器1220以及存储器1230之间的具体连接介质。本申请实施例在图12中以存储器1230、处理器1220以及收发器1212之间通过总线1240连接,总线在图12中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图12中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。The specific connection medium between the transceiver 1212 , the processor 1220 , and the memory 1230 is not limited in the embodiments of the present application. In the embodiment of the present application, the memory 1230, the processor 1220, and the transceiver 1212 are connected through a bus 1240 in FIG. 12. The bus is represented by a thick line in FIG. 12, and the connection between other components is only for schematic illustration. , is not limited. The bus can be divided into an address bus, a data bus, a control bus, and the like. For ease of representation, only one thick line is shown in FIG. 12, but it does not mean that there is only one bus or one type of bus.
在本申请实施例中,处理器可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处 理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成等。In the embodiments of the present application, the processor may be a general-purpose processor, a digital signal processor, an application-specific integrated circuit, a field programmable gate array or other programmable logic device, a discrete gate or transistor logic device, a discrete hardware component, etc. Alternatively, each method, step, and logic block diagram disclosed in the embodiments of the present application are executed. A general purpose processor may be a microprocessor or any conventional processor or the like. The steps of the method disclosed in conjunction with the embodiments of the present application may be directly embodied as being executed by a hardware processor, or executed by a combination of hardware and software modules in the processor, or the like.
本申请实施例中,存储器可包括但不限于硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)等非易失性存储器,随机存储记忆体(Random Access Memory,RAM)、可擦除可编程只读存储器(Erasable Programmable ROM,EPROM)、只读存储器(Read-Only Memory,ROM)或便携式只读存储器(Compact Disc Read-Only Memory,CD-ROM)等等。存储器是能够用于携带或存储具有指令或数据结构形式的程序代码,并能够由计算机(如本申请示出的通信装置等)读和/或写的任何存储介质,但不限于此。本申请实施例中的存储器还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。In this embodiment of the present application, the memory may include, but is not limited to, a non-volatile memory such as a hard disk drive (HDD) or a solid-state drive (SSD), a random access memory (Random Access Memory, RAM), Erasable Programmable Read-Only Memory (Erasable Programmable ROM, EPROM), Read-Only Memory (Read-Only Memory, ROM) or Portable Read-Only Memory (Compact Disc Read-Only Memory, CD-ROM) and so on. A memory is any storage medium that can be used to carry or store program codes in the form of instructions or data structures, and can be read and/or written by a computer (such as the communication devices shown in this application, etc.), but is not limited thereto. The memory in this embodiment of the present application may also be a circuit or any other device capable of implementing a storage function, for storing program instructions and/or data.
可理解,本申请实施例示出的通信装置还可以具有比图12更多的元器件等,本申请实施例对此不作限定。It is understandable that the communication device shown in the embodiment of the present application may also have more components and the like than those shown in FIG. 12 , which is not limited in the embodiment of the present application.
可理解,以上所示的处理器和收发器所执行的方法仅为示例,对于该处理器和收发器具体所执行的步骤可参照上文介绍的方法。It can be understood that the method performed by the processor and the transceiver shown above is only an example, and for the specific steps performed by the processor and the transceiver, reference may be made to the method described above.
在另一种可能的实现方式中,当上述通信装置是芯片系统,如服务器、接入设备、交换机、路由器或网卡等中的芯片系统时,处理单元1101可以是一个或多个逻辑电路,收发单元1102可以是输入输出接口,又或者称为通信接口,或者接口电路,或接口等等。或者收发单元1102还可以是发送单元和接收单元,发送单元可以是输出接口,接收单元可以是输入接口,该发送单元和接收单元集成于一个单元,例如输入输出接口。In another possible implementation manner, when the above-mentioned communication device is a chip system, such as a chip system in a server, an access device, a switch, a router or a network card, the processing unit 1101 may be one or more logic circuits, which transmit and receive The unit 1102 may be an input/output interface, also called a communication interface, or an interface circuit, or an interface, and so on. Alternatively, the transceiver unit 1102 may also be a sending unit and a receiving unit, the sending unit may be an output interface, and the receiving unit may be an input interface, the sending unit and the receiving unit are integrated into one unit, such as an input/output interface.
其中,该逻辑电路1301可以为芯片、处理电路、集成电路或片上系统(system on chip,SoC)芯片等,接口1302可以为通信接口、输入输出接口等。本申请实施例中,逻辑电路和接口还可以相互耦合。对于逻辑电路和接口的具体连接方式,本申请实施例不作限定。Wherein, the logic circuit 1301 may be a chip, a processing circuit, an integrated circuit or a system on chip (SoC) chip, etc., and the interface 1302 may be a communication interface, an input and output interface, and the like. In this embodiment of the present application, the logic circuit and the interface may also be coupled to each other. The specific connection manner of the logic circuit and the interface is not limited in this embodiment of the present application.
如图13所示,图13所示的通信装置包括逻辑电路1301和接口1302。即上述处理单元1101可以用逻辑电路1301实现,收发单元1102可以用接口1302实现。As shown in FIG. 13 , the communication device shown in FIG. 13 includes a logic circuit 1301 and an interface 1302 . That is, the above-mentioned processing unit 1101 may be implemented by the logic circuit 1301 , and the transceiver unit 1102 may be implemented by the interface 1302 .
可选的,该逻辑电路和接口可以用于执行上述通信装置作为接收端时所执行的功能或操作等。示例性的,如逻辑电路用于生成至少一个第一比特块;接口用于输出该至少一个第一比特块。又如,接口用于输出第一报文。又如,接口用于在输出第一报文的报文开始比特块之后,且未输出完毕第一报文的情况下,输出该至少一个第一比特块。又如,接口还用于输入第二报文。Optionally, the logic circuit and interface may be used to perform the functions or operations performed when the above-mentioned communication apparatus is used as the receiving end. Exemplarily, the logic circuit is used for generating at least one first bit block; the interface is used for outputting the at least one first bit block. For another example, the interface is used to output the first packet. For another example, the interface is configured to output the at least one first bit block after outputting the message start bit block of the first message and in the case that the output of the first message is not completed. For another example, the interface is also used to input the second packet.
可选的,该逻辑电路和接口可用于执行上述通信装置作为发送端时所执行的功能或操作等。示例性的,如接口用于输入至少一个第一比特块;逻辑电路,用于根据该至少一个第一比特块中的流量控制信息调整第二报文的输出情况。又如,接口,还用于根据第二报文的输出情况输出该第二报文。又如,逻辑电路,还用于对该至少一个第一比特块进行CRC校验。Optionally, the logic circuit and interface may be used to perform the functions or operations performed when the above-mentioned communication apparatus is used as the sending end. Exemplarily, for example, the interface is configured to input at least one first bit block; the logic circuit is configured to adjust the output condition of the second packet according to the flow control information in the at least one first bit block. In another example, the interface is further configured to output the second packet according to the output condition of the second packet. In another example, the logic circuit is further configured to perform CRC check on the at least one first bit block.
可理解,对于接口和/或逻辑电路执行的功能或操作等,可以参考图11示出的各个实施例,或者,还可以参考图5所示的方法实施例等,这里不再一一详述。可理解,对于第一比特块、报文比特块、非报文比特块、第一报文或第二报文等的描述可参考上述实施例,这里不再一一详述。示例性的,对于报文比特块和非报文比特块的区别可以参考图3a至图3d,或者,也可以参考图6a至图6d等。对于至少一个第一比特块的描述可参考图7a至图10c等。It can be understood that, for the functions or operations performed by the interface and/or the logic circuit, reference may be made to the various embodiments shown in FIG. 11 , or the method embodiment shown in FIG. 5 may also be referred to, which will not be described in detail here. . It can be understood that, for the description of the first bit block, the message bit block, the non-message bit block, the first message or the second message, etc., reference may be made to the above-mentioned embodiments, which will not be described in detail here. Exemplarily, for the difference between a message bit block and a non-message bit block, reference may be made to FIGS. 3a to 3d, or, reference may also be made to FIGS. 6a to 6d, and so on. For the description of the at least one first bit block, reference may be made to FIG. 7a to FIG. 10c and so on.
此外,本申请还提供一种计算机程序,该计算机程序用于实现本申请提供的方法中由接收端执行的操作和/或处理。In addition, the present application also provides a computer program for implementing the operations and/or processing performed by the receiving end in the method provided by the present application.
本申请还提供一种计算机程序,该计算机程序用于实现本申请提供的方法中由发送端执行的操作和/或处理。The present application also provides a computer program for implementing the operations and/or processing performed by the sender in the method provided by the present application.
本申请还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机代码,当计算机代码在计算机上运行时,使得计算机执行本申请提供的方法中由接收端执行的操作和/或处理。The present application also provides a computer-readable storage medium, where computer codes are stored in the computer-readable storage medium, and when the computer codes are run on the computer, the computer is made to perform the operations performed by the receiving end in the method provided by the present application and/or or processing.
本申请还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机代码,当计算机代码在计算机上运行时,使得计算机执行本申请提供的方法中由发送端执行的操作和/或处理。The present application also provides a computer-readable storage medium, where computer codes are stored in the computer-readable storage medium, and when the computer codes are run on the computer, the computer is made to perform the operations performed by the sender in the method provided by the present application and/or or processing.
本申请还提供一种计算机程序产品,该计算机程序产品包括计算机代码或计算机程序,当该计算机代码或计算机程序在计算机上运行时,使得本申请提供的方法中由接收端执行的操作和/或处理被执行。The present application also provides a computer program product, the computer program product includes computer code or computer program, when the computer code or computer program is run on a computer, the operation performed by the receiving end in the method provided by the present application and/or Processing is executed.
本申请还提供一种计算机程序产品,该计算机程序产品包括计算机代码或计算机程序,当该计算机代码或计算机程序在计算机上运行时,使得本申请提供的方法中由发送端执行的操作和/或处理被执行。The present application also provides a computer program product, the computer program product includes computer code or computer program, when the computer code or computer program is run on a computer, the operation performed by the sending end in the method provided by the present application and/or Processing is executed.
本申请实施例还提供了一种通信系统,该通信系统包括发送端和接收端,该接收端可以用于执行图5所示的步骤501和步骤502(发送步骤)等,该发送端可以用于执行图5所示的步骤502和步骤503中的接收步骤,以及步骤504和步骤505等。可理解,这里所示的发送端和接收端执行的步骤仅为示例,对于该接收端和发送端执行的其他步骤,还可以参考上述各个实施例,这里不再一一详述。The embodiment of the present application also provides a communication system, the communication system includes a sending end and a receiving end, the receiving end can be used to perform step 501 and step 502 (sending step) shown in FIG. 5, etc., the sending end can use In order to perform the receiving steps in steps 502 and 503 shown in FIG. 5 , as well as steps 504 and 505 and so on. It is understandable that the steps performed by the sender and the receiver shown here are only examples, and for other steps performed by the receiver and sender, reference may also be made to the foregoing embodiments, which will not be described in detail here.
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。In the several embodiments provided in this application, it should be understood that the disclosed system, apparatus and method may be implemented in other manners. For example, the apparatus embodiments described above are only illustrative. For example, the division of the units is only a logical function division. In actual implementation, there may be other division methods. For example, multiple units or components may be combined or Can be integrated into another system, or some features can be ignored, or not implemented. In addition, the shown or discussed mutual coupling or direct coupling or communication connection may be indirect coupling or communication connection through some interfaces, devices or units, and may also be electrical, mechanical or other forms of connection.
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本申请实施例提供的方案的技术效果。The units described as separate components may or may not be physically separated, and components displayed as units may or may not be physical units, that is, may be located in one place, or may be distributed to multiple network units. Some or all of the units may be selected according to actual needs to achieve the technical effects of the solutions provided by the embodiments of the present application.
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically alone, or two or more units may be integrated into one unit. The above-mentioned integrated units may be implemented in the form of hardware, or may be implemented in the form of software functional units.
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个可读存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的可读存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。The integrated unit, if implemented in the form of a software functional unit and sold or used as an independent product, may be stored in a computer-readable storage medium. Based on this understanding, the technical solutions of the present application are essentially or part of contributions to the prior art, or all or part of the technical solutions can be embodied in the form of software products, and the computer software products are stored in a readable The storage medium includes several instructions to cause a computer device (which may be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of the present application. The aforementioned readable storage medium includes: U disk, mobile hard disk, read-only memory (ROM), random access memory (RAM), magnetic disk or optical disk, etc. that can store program codes medium.
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。The above are only specific embodiments of the present application, but the protection scope of the present application is not limited to this. should be covered within the scope of protection of this application. Therefore, the protection scope of the present application should be subject to the protection scope of the claims.

Claims (33)

  1. 一种比特块的发送方法,其特征在于,所述方法应用于通信装置,所述方法包括:A method for sending bit blocks, characterized in that the method is applied to a communication device, and the method includes:
    生成至少一个第一比特块,所述至少一个第一比特块中包括指示字段,所述指示字段用于承载流量控制信息,所述流量控制信息根据所述通信装置的缓存情况得到;generating at least one first bit block, where the at least one first bit block includes an indication field, where the indication field is used to carry flow control information, and the flow control information is obtained according to a cache condition of the communication device;
    发送所述至少一个第一比特块。The at least one first block of bits is sent.
  2. 根据权利要求1所述的方法,其特征在于,所述第一比特块为非报文比特块。The method according to claim 1, wherein the first bit block is a non-message bit block.
  3. 根据权利要求2所述的方法,其特征在于,报文比特块为报文开始比特块、所述报文开始比特块对应的数据比特块、所述报文开始比特块对应的结束比特块、报文结束比特块、所述报文结束比特块对应的开始比特块或所述报文结束比特块对应的数据比特块中的至少一个。The method according to claim 2, wherein the message bit block is a message start bit block, a data bit block corresponding to the message start bit block, an end bit block corresponding to the message start bit block, At least one of the message end bit block, the start bit block corresponding to the message end bit block, or the data bit block corresponding to the message end bit block.
  4. 根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:The method according to any one of claims 1-3, wherein the method further comprises:
    发送第一报文,所述第一报文由报文比特块组成。A first message is sent, where the first message is composed of message bit blocks.
  5. 根据权利要求2-4任一项所述的方法,其特征在于,所述发送所述至少一个第一比特块包括:The method according to any one of claims 2-4, wherein the sending the at least one first bit block comprises:
    在发送第一报文的报文开始比特块之后,且未发送完毕所述第一报文的情况下,发送所述至少一个第一比特块。The at least one first bit block is sent after the message start bit block of the first message is sent and the first message is not sent completely.
  6. 根据权利要求2-5任一项所述的方法,其特征在于,所述至少一个第一比特块中包括非报文开始比特块,所述非报文开始比特块中的预设字段承载第一数值。The method according to any one of claims 2-5, wherein the at least one first bit block includes a non-message start bit block, and a preset field in the non-message start bit block carries the first a value.
  7. 根据权利要求2-5任一项所述的方法,其特征在于,所述至少一个第一比特块中包括至少一个序列O比特块,所述至少一个O比特块中每个O比特块中的预设字段承载第二数值。The method according to any one of claims 2-5, wherein the at least one first bit block includes at least one sequence O-bit block, and the at least one O-bit block in each O-bit block The preset field carries the second value.
  8. 根据权利要求6所述的方法,其特征在于,所述至少一个第一比特块中还包括:The method according to claim 6, wherein the at least one first bit block further comprises:
    所述非报文开始比特块对应的至少一个数据比特块;或者at least one data bit block corresponding to the non-message start bit block; or
    所述非报文开始比特块对应的结束比特块;或者the end bit block corresponding to the non-message start bit block; or
    所述非报文开始比特块对应的至少一个数据比特块和所述非报文开始比特块对应的结束比特块。At least one data bit block corresponding to the non-message start bit block and an end bit block corresponding to the non-message start bit block.
  9. 根据权利要求1-8任一项所述的方法,其特征在于,所述流量控制信息包括信用数量或至少一个队列被停止发送报文的时长信息。The method according to any one of claims 1 to 8, wherein the flow control information includes information on the number of credits or the duration information for which at least one queue is stopped from sending packets.
  10. 根据权利要求1-9任一项所述的方法,其特征在于,所述至少一个第一比特块中还包括循环冗余校验CRC字段。The method according to any one of claims 1-9, wherein the at least one first bit block further includes a cyclic redundancy check (CRC) field.
  11. 根据权利要求1-10任一项所述的方法,其特征在于,所述第一比特块为P1 B/P2 B比特块,所述P1表示所述第一比特块的净荷比特数,所述P2表示所述第一比特块的总比特数,P2-P1表示所述第一比特块的同步头比特数。The method according to any one of claims 1-10, wherein the first bit block is a P1 B/P2 B bit block, the P1 represents the number of payload bits of the first bit block, and the The P2 represents the total number of bits of the first bit block, and P2-P1 represents the number of synchronization header bits of the first bit block.
  12. 根据权利要求11所述的方法,其特征在于,所述P1的取值为以下任一个:The method according to claim 11, wherein the value of the P1 is any one of the following:
    64、128、256或512;64, 128, 256 or 512;
    P2-P1的取值为以下任一个:The value of P2-P1 is any of the following:
    1、2或3。1, 2 or 3.
  13. 根据权利要求3-5任一项所述的方法,其特征在于,所述报文开始比特块中的预设字段承载第三数值。The method according to any one of claims 3-5, wherein a preset field in the packet start bit block carries a third value.
  14. 根据权利要求1所述的方法,其特征在于,所述第一比特块为报文比特块。The method according to claim 1, wherein the first bit block is a message bit block.
  15. 一种通信装置,其特征在于,所述装置包括:A communication device, characterized in that the device comprises:
    处理器,用于生成至少一个第一比特块,所述至少一个第一比特块中包括指示字段,所述指示字段用于承载流量控制信息,所述流量控制信息根据通信装置的缓存情况得到;a processor, configured to generate at least one first bit block, where the at least one first bit block includes an indication field, where the indication field is used to carry flow control information, and the flow control information is obtained according to the cache condition of the communication device;
    收发器,用于发送所述至少一个第一比特块。a transceiver for transmitting the at least one first bit block.
  16. 根据权利要求15所述的装置,其特征在于,所述第一比特块为非报文比特块。The apparatus according to claim 15, wherein the first bit block is a non-message bit block.
  17. 根据权利要求16所述的装置,其特征在于,报文比特块为报文开始比特块、所述报文开始比特块对应的数据比特块、所述报文开始比特块对应的结束比特块、报文结束比特块、所述报文结束比特块对应的开始比特块或所述报文结束比特块对应的数据比特块中的至少一个。The device according to claim 16, wherein the message bit block is a message start bit block, a data bit block corresponding to the message start bit block, an end bit block corresponding to the message start bit block, At least one of the message end bit block, the start bit block corresponding to the message end bit block, or the data bit block corresponding to the message end bit block.
  18. 根据权利要求15-17任一项所述的装置,其特征在于,The device according to any one of claims 15-17, characterized in that,
    所述收发器,还用于发送第一报文,所述第一报文由报文比特块组成。The transceiver is further configured to send a first message, where the first message is composed of message bit blocks.
  19. 根据权利要求16-18任一项所述的装置,其特征在于,The device according to any one of claims 16-18, characterized in that,
    所述收发器,具体用于在发送第一报文的报文开始比特块之后,且未发送完毕所述第一报文的情况下,发送所述至少一个第一比特块。The transceiver is specifically configured to send the at least one first bit block after the message start bit block of the first message is sent and the first message has not been sent completely.
  20. 根据权利要求16-19任一项所述的装置,其特征在于,所述至少一个第一比特块中包括非报文开始比特块,所述非报文开始比特块中的预设字段承载第一数值。The apparatus according to any one of claims 16-19, wherein the at least one first bit block includes a non-message start bit block, and a preset field in the non-message start bit block carries the first a value.
  21. 根据权利要求16-19任一项所述的装置,其特征在于,所述至少一个第一比特块中包括至少一个序列O比特块,所述至少一个O比特块中每个O比特块中的预设字段承载第二数值。The apparatus according to any one of claims 16-19, wherein the at least one first bit block includes at least one sequence O-bit block, and the at least one O-bit block in each O-bit block The preset field carries the second value.
  22. 根据权利要求20所述的装置,其特征在于,所述至少一个第一比特块中还包括:The apparatus according to claim 20, wherein the at least one first bit block further comprises:
    所述非报文开始比特块对应的至少一个数据比特块;或者at least one data bit block corresponding to the non-message start bit block; or
    所述非报文开始比特块对应的结束比特块;或者the end bit block corresponding to the non-message start bit block; or
    所述非报文开始比特块对应的至少一个数据比特块和所述非报文开始比特块对应的结束比特块。At least one data bit block corresponding to the non-message start bit block and an end bit block corresponding to the non-message start bit block.
  23. 根据权利要求15-22任一项所述的装置,其特征在于,所述流量控制信息包括信用数量或至少一个队列被停止发送报文的时长信息。The apparatus according to any one of claims 15 to 22, wherein the flow control information includes information on the number of credits or the duration information for which at least one queue is stopped from sending packets.
  24. 根据权利要求15-23任一项所述的装置,其特征在于,所述至少一个第一比特块中还包括循环冗余校验CRC字段。The apparatus according to any one of claims 15-23, wherein the at least one first bit block further includes a cyclic redundancy check (CRC) field.
  25. 根据权利要求15-24任一项所述的装置,其特征在于,所述第一比特块为P1 B/P2 B比特块,所述P1表示所述第一比特块的净荷比特数,所述P2表示所述第一比特块的总比特数,P2-P1表示所述第一比特块的同步头比特数。The apparatus according to any one of claims 15-24, wherein the first bit block is a P1 B/P2 B bit block, the P1 represents the number of payload bits of the first bit block, and the The P2 represents the total number of bits of the first bit block, and P2-P1 represents the number of synchronization header bits of the first bit block.
  26. 根据权利要求25所述的装置,其特征在于,所述P1的取值为以下任一个:The device according to claim 25, wherein the value of the P1 is any one of the following:
    64、128、256或512;64, 128, 256 or 512;
    P2-P1的取值为以下任一个:The value of P2-P1 is any of the following:
    1、2或3。1, 2 or 3.
  27. 根据权利要求17-19任一项所述的装置,其特征在于,所述报文开始比特块中的预设字段承载第三数值。The apparatus according to any one of claims 17-19, wherein a preset field in the packet start bit block carries a third value.
  28. 根据权利要求15所述的装置,其特征在于,所述第一比特块为报文比特块。The apparatus according to claim 15, wherein the first bit block is a message bit block.
  29. 一种通信装置,其特征在于,所述通信装置用于执行如权利要求1-14任一项所述的方法。A communication device, characterized in that, the communication device is configured to execute the method according to any one of claims 1-14.
  30. 一种通信装置,其特征在于,所述通信装置包括处理单元和收发单元,A communication device, characterized in that the communication device comprises a processing unit and a transceiver unit,
    所述处理单元用于按照如权利要求1-14任一项所述的方法,生成至少一个第一比特块,所述收发单元,用于发送所述至少一个第一比特块。The processing unit is configured to generate at least one first bit block according to the method according to any one of claims 1-14, and the transceiver unit is configured to transmit the at least one first bit block.
  31. 一种通信装置,其特征在于,所述通信装置包括逻辑电路和接口,所述逻辑电路用于按照如权利要求1-14任一项所述的方法,生成至少一个第一比特块,所述接口,用于输出所述至少一个第一比特块。A communication device, characterized in that the communication device comprises a logic circuit and an interface, the logic circuit is configured to generate at least one first bit block according to the method according to any one of claims 1-14, the an interface for outputting the at least one first bit block.
  32. 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储指令,当所述指令被执行时,使如权利要求1-14任一项所述的方法被实现。A computer-readable storage medium, characterized in that, the computer-readable storage medium is used for storing instructions, and when the instructions are executed, the method according to any one of claims 1-14 is implemented.
  33. 一种计算机程序产品,其特征在于,所述计算机程序产品包括指令,当所述指令被执行时,使如权利要求1-14任一项所述的方法被实现。A computer program product, characterized in that the computer program product comprises instructions which, when executed, cause the method according to any one of claims 1-14 to be implemented.
PCT/CN2021/109907 2020-07-31 2021-07-30 Bit block sending method and device WO2022022724A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010763618.9 2020-07-31
CN202010763618.9A CN114095435A (en) 2020-07-31 2020-07-31 Method and device for sending bit block

Publications (1)

Publication Number Publication Date
WO2022022724A1 true WO2022022724A1 (en) 2022-02-03

Family

ID=80037624

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/109907 WO2022022724A1 (en) 2020-07-31 2021-07-30 Bit block sending method and device

Country Status (2)

Country Link
CN (1) CN114095435A (en)
WO (1) WO2022022724A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040085904A1 (en) * 2002-10-31 2004-05-06 Bordogna Mark A. Method for flow control of packets aggregated from multiple logical ports over a transport link
CN101621833A (en) * 2009-08-13 2010-01-06 中兴通讯股份有限公司 Message flux control method and base station controller
CN101867511A (en) * 2009-04-20 2010-10-20 华为技术有限公司 Pause frame sending method, associated equipment and system
CN105871502A (en) * 2015-01-22 2016-08-17 华为技术有限公司 Method of using Ethernet channel to transmit service signal and communication device
CN109379207A (en) * 2017-08-08 2019-02-22 华为技术有限公司 A kind of service multiplexing method, business Deplexing method and relevant device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040085904A1 (en) * 2002-10-31 2004-05-06 Bordogna Mark A. Method for flow control of packets aggregated from multiple logical ports over a transport link
CN101867511A (en) * 2009-04-20 2010-10-20 华为技术有限公司 Pause frame sending method, associated equipment and system
CN101621833A (en) * 2009-08-13 2010-01-06 中兴通讯股份有限公司 Message flux control method and base station controller
CN105871502A (en) * 2015-01-22 2016-08-17 华为技术有限公司 Method of using Ethernet channel to transmit service signal and communication device
CN109379207A (en) * 2017-08-08 2019-02-22 华为技术有限公司 A kind of service multiplexing method, business Deplexing method and relevant device

Also Published As

Publication number Publication date
CN114095435A (en) 2022-02-25

Similar Documents

Publication Publication Date Title
US11063884B2 (en) Ethernet enhancements
US20220197838A1 (en) System and method for facilitating efficient event notification management for a network interface controller (nic)
EP3573297B1 (en) Packet processing method and apparatus
WO2017202158A1 (en) Data forwarding method and device
WO2016033970A1 (en) Traffic management implementation method and apparatus and network device
US9137166B2 (en) In-order traffic aggregation with reduced buffer usage
US8135036B2 (en) Unified data packet for encapsulating data packets having diverse formats
US10592452B1 (en) Low latency interconnect protocol for coherent multi-chip communication
WO2018036173A1 (en) Network load balancing method, device and system
WO2022068633A1 (en) Method and apparatus for sending frame slice
CN113556290B (en) FC frame redundancy receiving method, system, equipment and medium based on frame characteristic symbol
WO2021208694A1 (en) Data transmission method and network device
WO2022022724A1 (en) Bit block sending method and device
US11902172B2 (en) Device and method for transferring identification and/or data flow control information between devices
US20070086479A1 (en) Techniques to buffer traffic in a communications system
TW200521684A (en) A method, system, and apparatus for a credit based flow control in a computer system
WO2022022727A1 (en) Bit block transmitting method and apparatus
WO2020029892A1 (en) Method for receiving code block stream, method for sending code block stream and communication apparatus
WO2023083175A1 (en) Packet transmission method and communication apparatus
US11902403B2 (en) Method for receiving code block stream, method for sending code block stream, and communications apparatus
JP5365417B2 (en) Priority control device and network system using the same
EP3767851B1 (en) Frame error indication
KR100773904B1 (en) LAN switch
WO2019023824A1 (en) Method and device for bit block stream processing, rate matching and exchange

Legal Events

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

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21849549

Country of ref document: EP

Kind code of ref document: A1