[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

WO2022042396A1 - Data transmission method and system, and chip - Google Patents

Data transmission method and system, and chip Download PDF

Info

Publication number
WO2022042396A1
WO2022042396A1 PCT/CN2021/113286 CN2021113286W WO2022042396A1 WO 2022042396 A1 WO2022042396 A1 WO 2022042396A1 CN 2021113286 W CN2021113286 W CN 2021113286W WO 2022042396 A1 WO2022042396 A1 WO 2022042396A1
Authority
WO
WIPO (PCT)
Prior art keywords
chip
header
ethernet packet
ethernet
valid data
Prior art date
Application number
PCT/CN2021/113286
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 WO2022042396A1 publication Critical patent/WO2022042396A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2854Wide area networks, e.g. public data networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2854Wide area networks, e.g. public data networks
    • H04L12/2856Access arrangements, e.g. Internet access
    • H04L12/2858Access network architectures
    • H04L12/2859Point-to-point connection between the data network and the subscribers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2212/00Encapsulation of packets

Definitions

  • the embodiments of the present disclosure relate to the field of integrated circuit design, and in particular, to a data transmission method, system, and chip.
  • PCIE Peripheral Component Interconnect Express
  • PCIE interface only supports point-to-point access
  • the topology is inflexible and can only support data transfer between on-board chips, and is mainly used in X86 computer systems.
  • the PCIE interface has high operating frequency, complex interface implementation and debugging, and limited single-channel bandwidth.
  • Ethernet packets for inter-chip data transmission will be an important trend.
  • Inter-chip data transfer based on Ethernet packets can utilize the flexible routing characteristics of Ethernet packets to build a flexible topology by relying on independent switching chips on or between boards or switching accelerators embedded in chips.
  • the implementation process of the traditional method of inter-chip data transfer based on Ethernet packets is too complicated, which increases the complexity of chip design, consumes more resources, and has a relatively large chip area and power consumption. , thereby increasing the cost of the chip.
  • Embodiments of the present disclosure provide a data transmission method, system, and chip.
  • an embodiment of the present disclosure provides a data transmission method, which is applied to a first chip.
  • the method includes: receiving an on-chip bus write access request; wherein the on-chip bus write access request includes: valid data; obtaining a package header and encapsulate the valid data into a first Ethernet packet according to the configuration information of the encapsulation header, and send the first Ethernet packet; wherein the first Ethernet packet includes: an encapsulation header and valid data.
  • an embodiment of the present disclosure provides a data transmission method, applied to a second chip, the method includes: receiving a first Ethernet packet; wherein the first Ethernet packet includes: an encapsulation header and valid data;
  • the header includes: a custom header, and the custom header includes: when the valid data length and the access address are obtained, the valid data length and the access address are obtained from the first Ethernet packet; wherein, the access address is that the valid data is in the memory of the second chip. and obtaining valid data from the first Ethernet packet according to the valid data length, and writing the obtained valid data into the access address.
  • an embodiment of the present disclosure provides a chip, where the chip includes: at least one Ethernet sending module.
  • Each Ethernet sending module includes: an on-chip bus write access request receiving sub-module, a configuration information acquiring sub-module and an Ethernet packet encapsulation sending sub-module; wherein, the on-chip bus write access request receiving sub-module is configured to receive the on-chip bus write access request; wherein, the on-chip bus write access request includes: valid data; the configuration information acquisition sub-module is configured to obtain the configuration information of the encapsulation header; The valid data is encapsulated into a first Ethernet packet, and the first Ethernet packet is sent; wherein the first Ethernet packet includes: an encapsulation header and valid data.
  • an embodiment of the present disclosure provides a chip, where the chip includes: at least one Ethernet receiving module.
  • Each Ethernet receiving module includes: an Ethernet packet receiving submodule and a data writing submodule; wherein, the Ethernet packet receiving submodule is configured to receive a first Ethernet packet; wherein the first Ethernet packet includes: an encapsulation header and valid data; wherein, the data writing submodule is configured to obtain the valid data length and access address from the first Ethernet packet when the encapsulation header includes: a custom header, and the custom header includes: valid data length and access address address; wherein, the access address is the address of the valid data in the memory of the second chip; and the valid data is obtained from the first Ethernet packet according to the length of the valid data, and the obtained valid data is written into the address range.
  • an embodiment of the present disclosure provides a chip, including: at least one of the above-mentioned Ethernet sending modules, and at least one of the above-mentioned Ethernet receiving modules.
  • an embodiment of the present disclosure provides a data transmission system, including: a first chip and a third chip.
  • the first chip is configured to receive an on-chip bus write access request; wherein, the on-chip bus write access request includes: valid data; obtain configuration information of the package header; and package the valid data into the first Ethernet according to the configuration information of the package header packet, and send the first Ethernet packet; wherein, the first Ethernet packet includes: an encapsulation header and valid data; the third chip is configured to receive the first Ethernet packet, and write the first Ethernet packet into the memory for random allocation After classifying the first Ethernet packet, it is listed in the queue designated by the central processing unit.
  • an embodiment of the present disclosure provides a data transmission system, including: a first chip and a second chip.
  • the first chip is configured to receive an on-chip bus write access request; wherein, the on-chip bus write access request includes: valid data, valid data length and access address; wherein, the access address is the address of the valid data in the memory of the second chip ;
  • the header includes: a custom header, and the custom header includes: valid data length and access address;
  • the second chip is configured to receive the first Ethernet packet; obtain the valid data length and access address from the first Ethernet packet; According to the valid data The length obtains valid data from the first Ethernet packet, and writes the obtained valid data into the access address.
  • an embodiment of the present disclosure provides a computer-readable medium, where the computer-readable medium stores a computer program, and the computer program is used to execute any one of the foregoing data transmission methods.
  • an embodiment of the present disclosure provides a chip including a CPU and a computer-readable medium, where the computer-readable medium stores a computer program, and when the computer program is run by the CPU, any one of the above data transmissions is performed method.
  • Fig. 1 is the composition block diagram of the traditional inter-chip data mutual transmission system
  • FIG. 2 is a flowchart of a data transmission method provided by an embodiment of the present disclosure
  • FIG. 3 is a flowchart of a data transmission method provided by another embodiment of the present disclosure.
  • FIG. 4 is a block diagram of a chip provided by another embodiment of the present disclosure.
  • FIG. 5 is a block diagram of a chip provided by another embodiment of the present disclosure.
  • FIG. 6 is a block diagram of a data transmission system provided by another embodiment of the present disclosure.
  • FIG. 7 is a block diagram of a data transmission system according to another embodiment of the present disclosure.
  • FIG. 1 is a block diagram of a traditional inter-chip data mutual transmission system. As shown in Figure 1, the data processed by the subsystem (SUBSYS) of chip 1 needs to be transmitted to the memory (MEM, MEMory) of chip 2. The process is as follows:
  • the SUBSYS of chip 1 writes the processed data into the double rate (DDR, Double Data Rate) according to the instructions of the central processing unit (CPU, Central Processing Unit), and the Ethernet packet transmission accelerator (ETH_TX_ACC) according to the instructions of the CPU from the DDR
  • DDR double rate
  • CPU central processing unit
  • ETH_TX_ACC Ethernet packet transmission accelerator
  • Chip 2 receives the Ethernet packet sent by chip 1, and the Ethernet packet receiving accelerator (ETH_RX_ACC) writes the received packet to a randomly assigned address in the memory, parses and classifies the packet and enters it into the queue designated by the CPU.
  • the message queue ID (ID, Identity) is taken out from the queue, and the message is read and processed according to the message queue ID.
  • chip 1 needs to reserve 125Gbps (gigabit per second, Gbit per second) DDR bandwidth for the data mutual transmission channel in design (at 40% DDR utilization rate)
  • 125Gbps gigabit per second, Gbit per second
  • DDR bandwidth for the data mutual transmission channel in design (at 40% DDR utilization rate)
  • the frequency of a DDR controller is 3200 megahertz (MHz) and the data bit width is 32 bits (bit)
  • at least one more DDR controller (not shown in Figure 1) and reserved corresponding
  • This will undoubtedly increase the complexity of the chip design, increase the chip area, and increase the power consumption of the chip, which will lead to an increase in the cost of chip applications (for example, the larger the chip area, the higher the cost of tape-out, and the larger the chip power consumption, the more heat dissipation required more devices, and additional DDR particles are required).
  • chip 2 After chip 2 receives the message, it needs ETH_RX_ACC to parse and classify the message, which will introduce complex logic, increase the complexity of chip design, increase the area of the chip, and increase the power consumption of the chip, thus causing the chip increase in cost.
  • FIG. 2 is a flowchart of a data transmission method provided by an embodiment of the present disclosure.
  • an embodiment of the present disclosure provides a data transmission method, which is applied to a first chip.
  • the first chip refers to a chip that needs to perform inter-chip data transmission, and may be any type of chip, such as Baseband processing chips, CPU chips, etc.
  • the method includes the following steps 200-202.
  • step 200 an on-chip bus write access request is received; wherein, the on-chip bus write access request includes: valid data.
  • the on-chip bus write access request may be initiated by any other data processing module (for example, the aforementioned SUBSYS) in the first chip after processing the data, and the valid data is the The data is obtained after the data is processed and needs to be transmitted to the second chip.
  • any other data processing module for example, the aforementioned SUBSYS
  • the data processing module processes the data, it generally initiates multiple on-chip bus write access requests for the processed data, that is, the valid data in each on-chip bus write access request initiated. Only a small part of the processed data.
  • the data processing module can periodically initiate an on-chip bus write access request. After receiving the on-chip bus write access request, if it is too late to process the on-chip bus write access request, it can temporarily store the on-chip bus write access request in random access memory. (RAM, Random Access Memory). Since the valid data in the on-chip bus write access request is only a small part of the processed data, temporarily storing the on-chip bus write access request in RAM does not take up too much storage space, that is, it does not take up much storage space. Too much storage space needs to be reserved for data transfer.
  • the size of the valid data in each on-chip bus write access request initiated can be set according to the actual situation or set arbitrarily, and can be set to an integer multiple of the bus bit width in general.
  • the on-chip interconnection adopts Advanced eXtensible Interface (AXI, Advanced eXtensible Interface) Therefore, the on-chip bus write access request can be initiated through the AXI bus, so as to realize the combination of the AXI bus and the Ethernet transmission technology, and realize efficient, simple and flexible direct data mutual transmission.
  • RISC Reduced Instruction Set
  • ARM Advanced RISC Machine
  • AXI Advanced eXtensible Interface
  • on-chip bus write access requests can also be initiated through other types of buses.
  • the embodiment of the present disclosure does not limit the specific type of bus used to receive the write access request, and the specific bus type is not used to limit the protection scope of the embodiment of the present disclosure.
  • the on-chip bus write access request includes only valid data.
  • the on-chip bus write access request includes: valid data, valid data length (that is, the data length of the valid data above) and an access address; wherein, the access address is the valid data in the memory of the second chip address, such as an AXI bus write access request.
  • the receiving chip needs to use the existing receiving chip to realize the reception of the first Ethernet packet.
  • the second chip may not be able to write valid data. This is because there is no valid data length and access address in the first Ethernet packet, so the second chip cannot know where the valid data should be written in the memory. ; If the write access request includes the effective data length and the access address, the receiving chip can be implemented by using the second chip proposed by the embodiment of the present disclosure.
  • step 201 configuration information of the encapsulation header is obtained.
  • the encapsulation header includes: a custom header
  • the custom header includes: the valid data length DATA_LEN and the access address DST_ADDR; Including the effective data length DATA_LEN and the access address DST_ADDR, the package header does not include the custom header.
  • the custom header further includes: a reserved field RESERVE. This reserved field can be used to adjust the length of the custom header or fill in other information that needs attention.
  • the specific positions of the valid data length DATA_LEN and the access address DST_ADDR in the custom header in the custom header can be arbitrarily set, and the bit width occupied in the custom header can also be arbitrarily set.
  • the encapsulation header further includes at least one of the following: an Ethernet header, an Internet Protocol (IP, Internet Protocol) header, a User Datagram Protocol (UDP, User Datagram Protocol) header, a Transmission Control Protocol (TCP, Transmission Control Protocol) header.
  • IP Internet Protocol
  • UDP User Datagram Protocol
  • TCP Transmission Control Protocol
  • IP may be Internet Protocol Version 4 (IPV4, Internet Protocol Version 4) or Internet Protocol Version 6 (IPV6, Internet Protocol Version 6).
  • the configuration information of the package header may be obtained from the CPU of the first chip.
  • custom headers may be carried on any layer.
  • custom headers can be carried on top of L2 (ie data link layer) or L3 (ie network layer) or L4 (ie transport layer).
  • the format of the encapsulation header is: Ethernet header + custom header; then, the configuration information of the encapsulation header includes: configuration information of the Ethernet header and configuration information of the custom header.
  • the format of the encapsulation header is: Ethernet header + IP header + custom header; then, the configuration information of the encapsulation header includes: configuration information of the Ethernet header, configuration information of the IP header, and custom header Header configuration information.
  • the format of the encapsulation header is: Ethernet header + IP header + UDP header or TCP header + custom header; then the configuration information of the encapsulation header includes: configuration information of the Ethernet header, configuration information of the IP header Configuration information, configuration information of UDP header or configuration information of TCP header, configuration information of custom header.
  • the configuration information of the Ethernet header includes: a Media Access Control (MAC, Media Access Controll) destination address, a MAC source address, and an EtherType (EtherType) field.
  • MAC Media Access Control
  • EtherType EtherType
  • the configuration information of the IP header includes: IP header type (such as 4 for IPV4, 6 for IPV6), IP header length and specific IP header field content, which will not be described in detail here; the format and content of the configuration IPV4 header conform to the RFC791 protocol, where , the total length (Total Length) field and the header checksum (HeaderChecksum) field can be configured as 0, and updated by the Ethernet sending module in the first chip; the format and content of the configured IPV6 header conform to the RFC8200 protocol, wherein, The payload length (PayloadLength) may be configured as 0, and is updated by the Ethernet sending module in the first chip.
  • IP header type such as 4 for IPV4, 6 for IPV6
  • IP header length and specific IP header field content, which will not be described in detail here
  • the format and content of the configuration IPV4 header conform to the RFC791 protocol, where , the total length (Total Length) field and the header checksum (HeaderChecksum) field can be configured as 0, and updated
  • the format and content of the configured UDP header conform to the RFC768 protocol, wherein the length (Length) and checksum (Checksum) fields are configured as 0, and are updated by the Ethernet sending module in the first chip.
  • the configuration information of the TCP header conforms to the RFC793 protocol.
  • the configuration information of the custom header includes: the length of the custom header, reserved fields, DATA_LEN and DST_ADDR, wherein DATA_LEN and DST_ADDR are configured to be 0, and are updated by the Ethernet sending module in the first chip.
  • step 202 the valid data is encapsulated into a first Ethernet packet according to the configuration information of the encapsulation header, and the first Ethernet packet is sent; wherein the first Ethernet packet includes: an encapsulation header and valid data.
  • custom headers may be carried on any layer.
  • custom headers can be carried on top of L2 (ie data link layer) or L3 (ie network layer) or L4 (ie transport layer).
  • the format of the first Ethernet packet is: Ethernet header + custom header + valid data; if the custom header is carried on L3, the format of the first Ethernet packet is: Ethernet header+IP header+custom header+valid data; if the custom header is carried in L4, the format of the first Ethernet packet is: Ethernet header+IP header+UDP header or TCP header+custom header+valid data.
  • encapsulating the valid data into the first Ethernet packet according to the configuration information of the encapsulation header includes: selecting an Ethernet header, an IP header, a UDP header or a TCP for encapsulating the first Ethernet packet according to the access address At least one of the headers, and at least one of the selected Ethernet header, IP header, UDP header or TCP header and the custom header, and the valid data are encapsulated into a first Ethernet packet.
  • selecting at least one of an Ethernet header, an IP header, a UDP header or a TCP header for encapsulating the first Ethernet packet according to the access address includes: In the correspondence between at least one of the Ethernet header, IP header, UDP header or TCP header of the network packet and the address range, find the Ethernet header used to encapsulate the first Ethernet packet corresponding to the address range where the access address is located. At least one of a net header, an IP header, a UDP header, or a TCP header.
  • different address ranges correspond to different MAC addresses and IP addresses in at least one of the Ethernet header, IP header, UDP header or TCP header used to encapsulate the first Ethernet packet.
  • the chip cannot know the MAC address and IP address of the chip when encapsulating the first Ethernet packet, so the memory addresses of different chips can be changed.
  • the ranges are set to non-overlapping areas so that different chips can be distinguished.
  • sending the first Ethernet packet includes: sending the first Ethernet packet To the media access control (MAC, Media Access Control) layer, the MAC layer obtains the second Ethernet packet after corresponding processing on the first Ethernet packet (such as adding a cyclic redundancy check code (CRC, Cyclic Redundancy Check), adding preamble, stuffing bytes, etc.), the second Ethernet packet is sent to the second chip through the first Ethernet transmission interface of the first chip.
  • MAC media access control
  • CRC Cyclic Redundancy Check
  • sending the first Ethernet packet includes: sending the first Ethernet packet to The first switching module of the first chip, the first switching module of the first chip sends the first Ethernet packet to the MAC layer, and the MAC layer performs corresponding processing on the first Ethernet packet to obtain the second Ethernet packet, and passes the first Ethernet packet.
  • the first Ethernet transmission interface of one chip sends the second Ethernet packet to the second chip.
  • sending the first Ethernet packet includes: sending the first Ethernet packet to The MAC layer obtains a second Ethernet packet after the MAC layer performs corresponding processing on the first Ethernet packet, and sends the second Ethernet packet to the switching chip through the first Ethernet transmission interface of the first chip.
  • the switch chip sends the second Ethernet packet to the second chip.
  • the first Ethernet transmission interface of the first chip may be a standard 50 or 25 or 10 or 5 Gbps Ethernet transmission interface, and may also be an Ethernet transmission interface of other rates.
  • the specific rate of the first Ethernet transmission interface is not limited, and the size of the specific rate is not used to limit the protection scope of the embodiments of the present disclosure.
  • the valid data when valid data needs to be sent, the valid data is directly encapsulated into a first Ethernet packet and sent out, without first writing the valid data into a double rate (DDR, Double Data Packet). Rate), effectively reducing the bandwidth of DDR; no CPU participation is required in the process of transmitting valid data, that is, no additional CPU core resources are occupied; thus reducing the complexity of chip design and effectively reducing the area and power of the chip. consumption, which reduces the cost of the chip.
  • DDR Double Data Packet
  • FIG. 3 is a flowchart of a data transmission method provided by another embodiment of the present disclosure.
  • another embodiment of the present disclosure provides a data transmission method, which is applied to a second chip.
  • the second chip refers to a chip that needs to perform inter-chip data transmission, and may be any type of chip. Such as baseband processing chips, CPU chips, etc.
  • the method includes the following steps 300-302.
  • step 300 a first Ethernet packet is received; wherein the first Ethernet packet includes: an encapsulation header and valid data.
  • the received first Ethernet packet refers to the first Ethernet packet passing through the second chip.
  • the first Ethernet packet is received by the second Ethernet transmission interface and processed by the MAC layer of the second chip, and the Ethernet packet received by the second Ethernet transmission interface of the second chip is sent by the first chip. Second Ethernet packet.
  • the received first Ethernet packet refers to the second Ethernet packet passing through the second chip
  • the network transmission interface receives the first Ethernet packet after corresponding processing by the MAC layer of the second chip, and transmits the first Ethernet packet through the second switching module of the second chip, and the second Ethernet transmission interface of the second chip receives the first Ethernet packet.
  • the Ethernet packet is the second Ethernet packet sent by the first chip.
  • the received first Ethernet packet refers to the second Ethernet packet passing through the second chip.
  • the first Ethernet packet received by the network transmission interface and correspondingly processed by the MAC layer of the second chip, and the Ethernet packets received by the second Ethernet transmission interface of the second chip are the first chip and the second chip.
  • the second Ethernet packet is sent between the switch chips.
  • the second Ethernet transmission interface of the second chip may be a standard 50 or 25 or 10 or 5 Gbps Ethernet transmission interface, and may also be an Ethernet transmission interface of other rates.
  • the specific rate of the second Ethernet transmission interface is not limited, and the size of the specific rate is not used to limit the protection scope of the embodiments of the present disclosure.
  • the first Ethernet packet after receiving the first Ethernet packet, if it is too late to process the first Ethernet packet, the first Ethernet packet may be temporarily stored in RAM.
  • the encapsulation header may or may not include a custom header.
  • the custom header includes: effective data length DATA_LEN and access address DST_ADDR.
  • the custom header further includes: a reserved field RESERVE. This reserved field can be used to adjust the length of the custom header or fill in other information that needs attention.
  • the specific positions of the valid data length DATA_LEN and the access address DST_ADDR in the custom header in the custom header can be arbitrarily set, and the bit width occupied in the custom header can also be arbitrarily set.
  • the encapsulation header further includes at least one of the following: an Ethernet header, an IP header, a UDP header, and a TCP header.
  • the IP may be IPV4 or IPV6.
  • custom headers may be carried on any layer.
  • custom headers can be carried on top of L2 (ie data link layer) or L3 (ie network layer) or L4 (ie transport layer).
  • the format of the first Ethernet packet is: Ethernet header + custom header + valid data; if the custom header is carried on L3, the format of the first Ethernet packet is: Ethernet header+IP header+custom header+valid data; if the custom header is carried in L4, the format of the first Ethernet packet is: Ethernet header+IP header+UDP header or TCP header+custom header+valid data.
  • step 301 when the encapsulation header includes: a custom header, and the custom header includes: valid data length and access address, obtain the valid data length and access address from the first Ethernet packet; wherein, the access address is valid data in Access address in memory.
  • the received first Ethernet packet may be directly discarded.
  • the method before acquiring the effective data length and the access address from the first Ethernet packet, the method further includes: acquiring position offset information of the custom header in the first Ethernet packet.
  • Acquiring the effective data length and the access address from the first Ethernet packet includes: acquiring the effective data length and the access address from the first Ethernet packet according to the position offset information.
  • the user-defined header may be obtained from the first Ethernet packet according to the position offset information, and the effective length and the access address may be obtained from the user-defined header.
  • the position offset information refers to the offset of the custom header from the starting position of the encapsulation header of the first Ethernet packet.
  • the position offset information of the custom header in the first Ethernet packet may be acquired from the CPU.
  • step 302 valid data is obtained from the first Ethernet packet according to the valid data length, and the obtained valid data is written into the access address.
  • obtaining the valid data from the first Ethernet packet according to the valid data length includes: intercepting data whose length is the valid data length from the payload data of the first Ethernet packet, which is the valid data.
  • the obtained valid data can be written into the access address through the AXI bus, thereby realizing the connection between the AXI bus and the Ethernet Network transmission technology is combined to achieve efficient, simple and flexible direct data mutual transmission.
  • non-AXI buses non-AXI buses
  • the obtained valid data can also be written into the access address through other types of buses.
  • the embodiment of the present disclosure does not limit the specific type of bus used to write the obtained valid data into the access address, and the specific bus type is not used to limit the protection scope of the embodiment of the present disclosure.
  • FIG. 4 is a block diagram of a chip provided by another embodiment of the present disclosure.
  • each Ethernet sending module includes: an on-chip bus write access request receiving sub-module 401, a configuration information obtaining sub-module 402 and Ethernet packet encapsulation and transmission sub-module 403 .
  • the on-chip bus write access request receiving sub-module 401 is configured to receive the on-chip bus write access request; wherein, the on-chip bus write access request includes: valid data; the configuration information obtaining sub-module 402 is configured to obtain the configuration of the package header information; the Ethernet packet encapsulation and transmission submodule 403 is configured to encapsulate the valid data into a first Ethernet packet according to the configuration information of the encapsulation header, and send the first Ethernet packet; wherein, the first Ethernet packet includes: the encapsulation header and the valid data.
  • the on-chip bus write access request may be initiated by any other data processing module (for example, the aforementioned SUBSYS) in the first chip after processing the data, and the valid data is the The data is obtained after the data is processed and needs to be transmitted to the second chip.
  • the chip further includes: a data processing module 404, which is configured to perform corresponding processing on the data to obtain valid data, and initiate a write access request to the on-chip bus.
  • the data processing module 404 processes the data, it generally initiates multiple on-chip bus write access requests for the processed data, that is to say, the valid on-chip bus write access request initiated each time is valid.
  • the data is only a small part of the processed data.
  • the data processing module 404 can periodically initiate an on-chip bus write access request. After receiving the on-chip bus write access request, if it is too late to process the on-chip bus write access request, it can temporarily store the on-chip bus write access request to the on-chip bus.
  • the write access request is received in the RAM of the sub-module 401 .
  • the size of the valid data in each on-chip bus write access request initiated can be set according to the actual situation or can be set at will. Generally, it can be set as the bus connecting the data processing module 404 and the Ethernet sending module. Integer multiple of the bit width.
  • an on-chip bus write access request can be initiated through the AXI bus, that is, between the data processing module 404 and the Ethernet sending module. They are interconnected through the AXI bus, so as to realize the combination of the AXI bus and the Ethernet transmission technology to achieve efficient, simple and flexible direct data mutual transmission.
  • non-AXI buses non-AXI buses
  • the data processing module 404 and the Ethernet transmission module may also be connected through other types of buses.
  • the embodiment of the present disclosure does not limit what type of bus is used to connect the data processing module 404 and the Ethernet sending module, and the specific bus type is not used to limit the protection scope of the embodiment of the present disclosure.
  • the on-chip bus write access request includes only valid data.
  • the on-chip bus write access request includes: valid data and an address range of the valid data in the memory of the second chip.
  • the write access request includes valid data.
  • the on-chip bus write access request includes: valid data, valid data length and access address; wherein, the access address is the address of the valid data in the memory of the second chip, such as an AXI bus write access request .
  • the receiving chip needs to use the existing receiving chip to realize the reception of the first Ethernet packet.
  • the second chip cannot realize the writing of valid data, because there is no valid data length and access address in the first Ethernet packet, so the second chip cannot know where the valid data should be written in the memory; If the write access request includes the effective data length and the access address, the receiving chip may be implemented by using the second chip provided by the embodiment of the present disclosure.
  • the encapsulation header includes: a custom header
  • the custom header includes: the valid data length DATA_LEN and the access address DST_ADDR; Including the effective data length DATA_LEN and the access address DST_ADDR, the package header does not include the custom header.
  • the custom header further includes: a reserved field RESERVE. This reserved field can be used to adjust the length of the custom header or fill in other information that needs attention.
  • the specific positions of the valid data length DATA_LEN and the access address DST_ADDR in the custom header in the custom header can be arbitrarily set, and the bit width occupied in the custom header can also be arbitrarily set.
  • the encapsulation header further includes at least one of the following: an Ethernet header, an IP header, a UDP header, and a TCP header.
  • the IP may be IPV4 or IPV6.
  • the configuration information of the package header may be obtained from the CPU of the first chip.
  • custom headers may be carried on any layer.
  • custom headers can be carried on top of L2 (ie data link layer) or L3 (ie network layer) or L4 (ie transport layer).
  • the format of the encapsulation header is: Ethernet header + custom header; then, the configuration information of the encapsulation header includes: configuration information of the Ethernet header and configuration information of the custom header.
  • the format of the encapsulation header is: Ethernet header + IP header + custom header; then, the configuration information of the encapsulation header includes: configuration information of the Ethernet header, configuration information of the IP header, and custom header Header configuration information.
  • the format of the encapsulation header is: Ethernet header + IP header + UDP header or TCP header + custom header; then the configuration information of the encapsulation header includes: configuration information of the Ethernet header, configuration information of the IP header Configuration information, configuration information of UDP header or configuration information of TCP header, configuration information of custom header.
  • the configuration information of the Ethernet header includes: a MAC destination address, a MAC source address, and an EtherType (EtherType) field.
  • the configuration information of the IP header includes: IP header type (such as 4 for IPV4, 6 for IPV6), IP header length and specific IP header field content, which will not be described in detail here; the format and content of the configuration IPV4 header conform to the RFC791 protocol, where , the Total Length field and the HeaderChecksum field can be set to 0, which is updated by the Ethernet sending module in the first chip; the format and content of the configured IPV6 header conform to the RFC8200 protocol, and the PayloadLength can be set to 0, and the first The Ethernet sending module in the chip is updated.
  • IP header type such as 4 for IPV4, 6 for IPV6
  • IP header length and specific IP header field content which will not be described in detail here
  • the format and content of the configuration IPV4 header conform to the RFC791 protocol, where , the Total Length field and the HeaderChecksum field can be set to 0, which is updated by the Ethernet sending module in the first chip
  • the format and content of the configured IPV6 header conform to the RFC8
  • the format and content of the configured UDP header conform to the RFC768 protocol, wherein the Length and Checksum fields are configured as 0, and are updated by the Ethernet sending module in the first chip.
  • the configuration information of the TCP header conforms to the RFC793 protocol.
  • the configuration information of the custom header includes: the length of the custom header, reserved fields, DATA_LEN and DST_ADDR, wherein DATA_LEN and DST_ADDR are configured to be 0, and are updated by the Ethernet sending module in the first chip.
  • custom headers may be carried on any layer.
  • custom headers can be carried on top of L2 (ie data link layer) or L3 (ie network layer) or L4 (ie transport layer).
  • the format of the first Ethernet packet is: Ethernet header + custom header + valid data
  • the format of the first Ethernet packet is: Ethernet header+IP header+custom header+valid data;
  • the format of the first Ethernet packet is: Ethernet header+IP header+UDP header or TCP header+custom header+valid data.
  • the first Ethernet packet encapsulation and transmission sub-module 403 is configured to implement encapsulation of valid data into the first Ethernet packet according to the configuration information of the encapsulation header in the following manner: selecting the first Ethernet packet for encapsulating the first Ethernet packet according to the access address At least one of the Ethernet header, IP header, UDP header or TCP header of the Ethernet packet, at least one of the selected Ethernet header, IP header, UDP header or TCP header and custom header, and valid data Encapsulated into a first Ethernet packet.
  • the first Ethernet packet encapsulation and sending sub-module 403 is configured to select the Ethernet header, IP header, UDP header or TCP header for encapsulating the first Ethernet packet according to the access address in the following manner At least one of: in the preset at least one of the Ethernet header, IP header, UDP header or TCP header for encapsulating the first Ethernet packet, and the corresponding relationship between the address range, find where the access address is located The address range corresponding to at least one of an Ethernet header, an IP header, a UDP header or a TCP header for encapsulating the first Ethernet packet.
  • different address ranges correspond to different MAC addresses and IP addresses in at least one of the Ethernet header, IP header, UDP header or TCP header used to encapsulate the first Ethernet packet.
  • the chip cannot know the MAC address and IP address of the chip when encapsulating the first Ethernet packet, so the memory addresses of different chips can be changed.
  • the ranges are set to non-overlapping areas so that different chips can be distinguished.
  • the Ethernet packet encapsulation sending sub-module 403 is configured to be implemented in the following manner Sending the first Ethernet packet: sending the first Ethernet packet to the MAC layer, and the MAC layer performs corresponding processing on the first Ethernet packet to obtain a second Ethernet packet, and sends the second Ethernet packet through the first Ethernet transmission interface of the first chip.
  • the second Ethernet packet is sent to the second chip.
  • the chip further includes: the first Ethernet transmission interface 405, which is configured to send the second Ethernet packet output by the MAC layer to the second chip.
  • the Ethernet packet encapsulation sending sub-module 403 is configured to implement sending in the following manner The first Ethernet packet: the first Ethernet packet is sent to the first switching module of the first chip, and the first switching module of the first chip sends the first Ethernet packet to the MAC layer, and the MAC layer responds to the first Ethernet packet. After corresponding processing, a second Ethernet packet is obtained, and the second Ethernet packet is sent to the second chip through the first Ethernet transmission interface of the first chip. That is to say, the chip further includes the first switching module 406 and the second Ethernet transmission interface 405 .
  • the first switching module 406 is configured to send the first Ethernet packet output by the Ethernet packet encapsulation and sending sub-module 403 to the MAC layer, and the MAC layer performs corresponding processing on the first Ethernet packet to obtain the second Ethernet packet.
  • the first Ethernet transport interface 405 is configured to send the second Ethernet packet output by the MAC layer to the second chip.
  • the Ethernet packet encapsulation sending sub-module 403 is configured to implement sending in the following manner
  • the first Ethernet packet the first Ethernet packet is sent to the MAC layer, and the MAC layer performs corresponding processing on the Ethernet packet to obtain the second Ethernet packet, and the second Ethernet packet is transmitted through the first Ethernet transmission interface of the first chip.
  • the network packet is sent to the switch chip. That is to say, the chip further includes: the first Ethernet transmission interface 405, which is configured to send the second Ethernet packet output by the MAC layer to the switching chip.
  • the switch chip sends the second Ethernet packet to the second chip.
  • the first Ethernet transmission interface of the first chip may be a standard 50 or 25 or 10 or 5 Gbps Ethernet transmission interface, and may also be an Ethernet transmission interface of other rates.
  • the specific rate of the first Ethernet transmission interface is not limited, and the size of the specific rate is not used to limit the protection scope of the embodiments of the present disclosure.
  • the valid data when valid data needs to be sent, the valid data is directly encapsulated into a first Ethernet packet and sent out, without first writing the valid data into Double Data Rate (DDR, Double Data Rate).
  • DDR Double Data Rate
  • the process of transmitting valid data does not require CPU participation, that is, does not require additional CPU core resources; thus reducing the complexity of chip design, effectively reducing chip area and power consumption, It also reduces the cost of the chip.
  • modules and sub-modules on the chip are implemented in hardware, which can be designed in a hardware description language (such as Verilog or VHDL, Very-High-Speed Integrated Circuit Hardware Description Language) Implementation, specific implementation circuit
  • a hardware description language such as Verilog or VHDL, Very-High-Speed Integrated Circuit Hardware Description Language
  • FIG. 5 is a block diagram of a chip provided by another embodiment of the present disclosure.
  • a chip includes: at least one Ethernet receiving module; each Ethernet receiving module includes: an Ethernet packet receiving submodule 501 and a data writing submodule 502 .
  • the Ethernet packet receiving sub-module 501 is configured to receive a first Ethernet packet, wherein the first Ethernet packet includes: an encapsulation header and valid data.
  • the data writing submodule 502 is configured to obtain the effective data length and the access address from the first Ethernet packet when the encapsulation header includes: a custom header, and the custom header includes: the effective data length and the access address; wherein, the access address is the address of the valid data in the memory; the valid data is obtained from the first Ethernet packet according to the length of the valid data, and the obtained valid data is written into the access address.
  • the received first Ethernet packet refers to the first Ethernet packet passing through the second chip.
  • the first Ethernet packet is received by the second Ethernet transmission interface and processed by the MAC layer of the second chip, and the Ethernet packet received by the second Ethernet transmission interface of the second chip is sent by the first chip.
  • Second Ethernet packet the chip further includes: a second Ethernet transmission interface 503, which is configured to receive the second Ethernet packet sent by the first chip, and send the received second Ethernet packet to the MAC layer, and the MAC layer performs corresponding processing After processing, the first Ethernet packet is obtained, and the first Ethernet packet is sent to the Ethernet packet receiving sub-module 501 .
  • the received first Ethernet packet refers to the second Ethernet packet passing through the second chip
  • the network transmission interface receives the first Ethernet packet after corresponding processing by the MAC layer of the second chip, and transmits the first Ethernet packet through the second switching module of the second chip, and the second Ethernet transmission interface of the second chip receives the first Ethernet packet.
  • the first Ethernet packet is the second Ethernet packet sent by the first chip. That is to say, the chip further includes a second Ethernet transmission interface 503 and a second switching module 504 .
  • the second Ethernet transmission interface 503 is configured to receive the second Ethernet packet sent by the first chip, send the received second Ethernet packet to the MAC layer, and the MAC layer performs corresponding processing to obtain the first Ethernet packet, The first Ethernet is sent to the second switching module 504 .
  • the second switching module 504 is configured to send the first Ethernet packet to the Ethernet packet receiving sub-module 501 .
  • the received first Ethernet packet refers to the second Ethernet packet passing through the second chip.
  • the first Ethernet packet received by the network transmission interface and correspondingly processed by the MAC layer of the second chip, and the Ethernet packets received by the second Ethernet transmission interface of the second chip are the first chip and the second chip.
  • the second Ethernet packet is sent between the switch chips. That is to say, the chip further includes: a second Ethernet transmission interface 503, which is configured to receive the second Ethernet packet sent by the switching chip, and send the received second Ethernet packet to the MAC layer, and the MAC layer performs corresponding processing. After processing, the first Ethernet packet is obtained, and the first Ethernet packet is sent to the Ethernet packet receiving sub-module 501 .
  • the second Ethernet transmission interface 503 of the second chip may be a standard 50 or 25 or 10 or 5 Gbps Ethernet transmission interface, and may also be an Ethernet transmission interface of other rates.
  • the example does not limit the specific rate of the second Ethernet transmission interface 503, and the size of the specific rate is not used to limit the protection scope of the embodiments of the present disclosure.
  • the first Ethernet packet may be temporarily Stored in the RAM of the Ethernet packet receiving sub-module 501 .
  • the encapsulation header may or may not include a custom header.
  • the custom header includes: effective data length DATA_LEN and access address DST_ADDR.
  • the custom header further includes: a reserved field RESERVE. This reserved field can be used to adjust the length of the custom header or fill in other information that needs attention.
  • the specific positions of the valid data length DATA_LEN and the address range DST_ADDR in the custom header can be set arbitrarily in the custom header, and the bit width occupied in the custom header can also be arbitrarily set.
  • the encapsulation header further includes at least one of the following: an Ethernet header, an IP header, a UDP header, and a TCP header.
  • the IP may be IPV4 or IPV6.
  • custom headers may be carried on any layer.
  • custom headers can be carried on top of L2 (ie data link layer) or L3 (ie network layer) or L4 (ie transport layer).
  • the format of the first Ethernet packet is: Ethernet header + custom header + valid data
  • the format of the first Ethernet packet is: Ethernet header+IP header+custom header+valid data;
  • the format of the first Ethernet packet is: Ethernet header+IP header+UDP header or TCP header+custom header+valid data.
  • the data writing sub-module 502 may directly discard the received first Ethernet packet.
  • the chip further includes: a position offset information obtaining module 505, which is configured to obtain position offset information of the custom header in the first Ethernet packet.
  • the data writing sub-module 502 is configured to obtain the effective data length and the access address from the first Ethernet packet according to the position offset information.
  • the user-defined header may be obtained from the first Ethernet packet according to the position offset information, and the effective length and the access address may be obtained from the user-defined header.
  • the position offset information refers to the offset of the custom header from the starting position of the encapsulation header of the first Ethernet packet.
  • the position offset information of the custom header in the first Ethernet packet may be obtained from the CPU.
  • the data writing sub-module 502 and the memory can be connected through the AXI bus, so as to realize the transmission between the AXI bus and the Ethernet Technologies are combined to achieve efficient, simple and flexible direct data transfer.
  • the chip provided by the embodiment of the present disclosure when receiving the first Ethernet packet, directly obtains valid data from the first Ethernet packet and writes it into the corresponding access address, without analyzing and classifying the first Ethernet packet , the implementation logic is relatively simple, thereby reducing the complexity of chip design, effectively reducing the area and power consumption of the chip, and also reducing the cost of the chip.
  • modules and sub-modules on the chip are implemented in hardware, which can be designed and implemented by using a hardware description language (such as Verilog or VHDL). Scope of protection of the embodiments.
  • Another embodiment of the present disclosure provides a chip, including: at least one any of the foregoing Ethernet sending modules, and at least one any of the foregoing Ethernet receiving modules.
  • FIG. 6 is a block diagram of a data transmission system according to another embodiment of the present disclosure.
  • FIG. 6 another embodiment of the present disclosure provides a data transmission system, where the data transmission system includes a first chip 601 and a third chip 602 .
  • the first chip 601 is configured to receive an on-chip bus write access request; wherein, the on-chip bus write access request includes: valid data; obtain configuration information of the package header; package the valid data into a first Ethernet according to the configuration information of the package header packet, and send the first Ethernet packet; wherein, the first Ethernet packet includes: an encapsulation header and valid data.
  • the third chip 602 is configured to receive the first Ethernet packet, write the first Ethernet packet into a randomly assigned address in the memory, classify the first Ethernet packet and enqueue it into a queue designated by the central processing unit.
  • the on-chip bus write access request may be initiated by any other data processing module (for example, the aforementioned SUBSYS) in the first chip after processing the data, and the valid data is the The data is obtained after the data is processed and needs to be transmitted to the second chip. That is to say, the first chip 601 is further configured to: perform corresponding processing on the data to obtain valid data, and initiate an on-chip bus write access request.
  • the first chip 601 is further configured to: perform corresponding processing on the data to obtain valid data, and initiate an on-chip bus write access request.
  • the first chip 601 after processing the data, the first chip 601 generally initiates multiple on-chip bus write access requests for the processed data, that is to say, the valid on-chip bus write access request initiated each time is valid.
  • the data is only a small part of the processed data.
  • the first chip 601 can periodically initiate an on-chip bus write access request. After receiving the on-chip bus write access request, if it is too late to process the on-chip bus write access request, it can temporarily store the on-chip bus write access request to the first chip. 601 in RAM.
  • the size of the valid data in each on-chip bus write access request initiated can be arbitrarily set according to the actual situation. Generally, it can be set to be equal to the bit width of the bus connecting the data processing module 404 and the Ethernet sending module. integer multiples.
  • an on-chip bus write access request can be initiated through the AXI bus, that is, between the data processing module 404 and the Ethernet sending module. They are interconnected through the AXI bus, so as to realize the combination of the AXI bus and the Ethernet transmission technology to achieve efficient, simple and flexible direct data mutual transmission.
  • the data processing module 404 and the Ethernet sending module may also be connected through other types of buses.
  • the embodiment of the present disclosure does not limit what type of bus is used to connect the data processing module 404 and the Ethernet sending module, and the specific bus type is not used to limit the protection scope of the embodiment of the present disclosure.
  • the on-chip bus write access request includes only valid data.
  • the on-chip bus write access request includes: valid data, valid data length and access address.
  • the encapsulation header includes at least one of the following: an Ethernet header, an IP header, a UDP header, and a TCP header.
  • the IP may be IPV4 or IPV6.
  • the configuration information of the package header may be obtained from the CPU of the first chip.
  • the first chip 601 is configured to implement sending the first Ethernet in the following manner Net packet: send the first Ethernet packet to the MAC layer, the MAC layer obtains the second Ethernet packet after corresponding processing of the Ethernet packet, and sends the second Ethernet packet through the first Ethernet transmission interface of the first chip to the third chip.
  • Net packet send the first Ethernet packet to the MAC layer
  • the MAC layer obtains the second Ethernet packet after corresponding processing of the Ethernet packet
  • the first chip 601 is configured to implement sending the first Ethernet in the following manner Packet: send the first Ethernet packet to the first switching module of the first chip, the first switching module of the first chip sends the first Ethernet packet to the MAC layer, and the MAC layer performs corresponding processing on the first Ethernet packet Then, the second Ethernet packet is obtained, and the second Ethernet packet is sent to the third chip through the first Ethernet transmission interface of the first chip.
  • the data transmission system further includes an exchange chip 603 located between the first chip and the third chip.
  • the first chip 601 does not include the first switching module, and the first chip 601 is configured to implement the sending of the first Ethernet packet in the following manner: the first Ethernet packet is sent to the MAC layer, and the MAC layer pairs After the Ethernet packet is processed correspondingly, a second Ethernet packet is obtained, and the second Ethernet packet is sent to the switching chip 603 through the first Ethernet transmission interface of the first chip.
  • Switch chip 603 is configured to send the second Ethernet packet to the third chip.
  • the first Ethernet transmission interface of the first chip may be a standard 50 or 25 or 10 or 5 Gbps Ethernet transmission interface, and may also be an Ethernet transmission interface of other rates.
  • the specific rate of the first Ethernet transmission interface is not limited, and the size of the specific rate is not used to limit the protection scope of the embodiments of the present disclosure.
  • the valid data when valid data needs to be sent, the valid data is directly encapsulated into a first Ethernet packet and sent out, without first writing the valid data into a double rate (DDR, Double Data Packet). Rate), effectively reducing the bandwidth of DDR; no CPU participation is required in the process of transmitting valid data, that is, no additional CPU core resources are occupied; thus reducing the complexity of chip design and effectively reducing the area and power of the chip. consumption, which reduces the cost of the chip.
  • DDR Double Data Packet
  • FIG. 7 is a block diagram of a data transmission system according to another embodiment of the present disclosure.
  • FIG. 7 another embodiment of the present disclosure provides a data transmission system including a first chip 601 and a second chip 701 .
  • the first chip 601 is configured to receive an on-chip bus write access request; wherein, the on-chip bus write access request includes: valid data, valid data length and access address; obtain configuration information of the package header; The data is encapsulated into a first Ethernet packet, and the first Ethernet packet is sent; wherein, the first Ethernet packet includes: an encapsulation header and valid data; the encapsulation header includes: a custom header, and the custom header includes: valid data length and access address.
  • the second chip 701 is configured to receive a first Ethernet packet; wherein the first Ethernet packet includes: an encapsulation header and valid data; when the encapsulation header includes: a custom header, and the custom header includes: an effective data length and an access address , obtain the valid data length and the access address from the first Ethernet packet; obtain valid data from the first Ethernet packet according to the valid data length, and write the obtained valid data into the access address.
  • the write access request may be initiated by any other data processing module (for example, the aforementioned SUBSYS) in the first chip after processing the data, and valid data is the processing of the data. After that, the data that needs to be transmitted to the second chip is obtained. That is to say, the first chip 601 is further configured to: perform corresponding processing on the data to obtain valid data, and initiate a write access request.
  • the first chip 601 is further configured to: perform corresponding processing on the data to obtain valid data, and initiate a write access request.
  • the first chip 601 after processing the data, the first chip 601 generally initiates multiple on-chip bus write access requests for the processed data, that is to say, the valid on-chip bus write access request initiated each time is valid.
  • the data is only a small part of the processed data.
  • the first chip 601 can periodically initiate an on-chip bus write access request. After receiving the on-chip bus write access request, if it is too late to process the on-chip bus write access request, it can The on-chip bus write access request is temporarily stored in the RAM of the first chip 601.
  • the on-chip bus write access request is Temporarily storing in the RAM of the first chip 601 does not take up too much storage space, that is, it does not need to reserve too much storage space for data transmission.
  • the custom header further includes: a reserved field RESERVE. This reserved field can be used to adjust the length of the custom header or fill in other information that needs attention.
  • the specific positions of the valid data length DATA_LEN and the access address DST_ADDR in the custom header in the custom header can be arbitrarily set, and the bit width occupied in the custom header can also be arbitrarily set.
  • the encapsulation header further includes at least one of the following: an Ethernet header, an IP header, a UDP header, and a TCP header.
  • the IP may be IPV4 or IPV6.
  • the configuration information of the package header may be obtained from the CPU of the first chip.
  • custom headers may be carried on any layer.
  • custom headers can be carried on top of L2 (ie data link layer) or L3 (ie network layer) or L4 (ie transport layer).
  • the format of the encapsulation header is: Ethernet header + custom header;
  • the configuration information of the encapsulation header includes: configuration information of the Ethernet header and configuration information of the custom header;
  • the format of the encapsulation header is: Ethernet header + IP header + custom header; then, the configuration information of the encapsulation header includes: configuration information of the Ethernet header, configuration information of the IP header, and custom header header configuration information;
  • the format of the encapsulation header is: Ethernet header + IP header + UDP header or TCP header + custom header; then the configuration information of the encapsulation header includes: configuration information of the Ethernet header, configuration information of the IP header Configuration information, configuration information of UDP header or configuration information of TCP header, configuration information of custom header.
  • the configuration information of the Ethernet header includes: a MAC destination address, a MAC source address, and an EtherType (EtherType) field.
  • the configuration information of the IP header includes: IP header type (such as 4 for IPV4, 6 for IPV6), IP header length and specific IP header field content, which will not be described in detail here; the format and content of the configuration IPV4 header conform to the RFC791 protocol, where , the Total Length field and the HeaderChecksum field can be set to 0, which is updated by the Ethernet sending module in the first chip; the format and content of the configured IPV6 header conform to the RFC8200 protocol, and the PayloadLength can be set to 0, and the first The Ethernet sending module in the chip is updated.
  • IP header type such as 4 for IPV4, 6 for IPV6
  • IP header length and specific IP header field content which will not be described in detail here
  • the format and content of the configuration IPV4 header conform to the RFC791 protocol, where , the Total Length field and the HeaderChecksum field can be set to 0, which is updated by the Ethernet sending module in the first chip
  • the format and content of the configured IPV6 header conform to the RFC8
  • the format and content of the configured UDP header conform to the RFC768 protocol, wherein the Length and Checksum fields are configured as 0, and are updated by the Ethernet sending module in the first chip.
  • the configuration information of the TCP header conforms to the RFC793 protocol.
  • the configuration information of the custom header includes: the length of the custom header, reserved fields, DATA_LEN and DST_ADDR, wherein DATA_LEN and DST_ADDR are configured to be 0, and are updated by the Ethernet sending module in the first chip.
  • custom headers may be carried on any layer.
  • custom headers can be carried on top of L2 (ie data link layer) or L3 (ie network layer) or L4 (ie transport layer).
  • the format of the first Ethernet packet is: Ethernet header + custom header + valid data
  • the format of the first Ethernet packet is: Ethernet header+IP header+custom header+valid data;
  • the format of the first Ethernet packet is: Ethernet header+IP header+UDP header or TCP header+custom header+valid data.
  • the first chip 601 is configured to implement the encapsulation of valid data into a first Ethernet packet according to the configuration information of the encapsulation header in the following manner: selecting an Ethernet packet for encapsulating the first Ethernet packet according to an access address At least one of the network header, IP header, UDP header or TCP header, and at least one of the selected Ethernet header, IP header, UDP header or TCP header and the custom header, and the valid data are encapsulated into the first Ethernet header Net package.
  • the first chip 601 is configured to select at least one of an Ethernet header, an IP header, a UDP header or a TCP header for encapsulating the first Ethernet packet according to the access address in the following manner: In the preset correspondence between at least one of the Ethernet header, IP header, UDP header, or TCP header used to encapsulate the first Ethernet packet and the address range, search for the address corresponding to the address range where the access address is located. At least one of an Ethernet header, an IP header, a UDP header, or a TCP header for encapsulating the first Ethernet packet.
  • different address ranges correspond to different MAC addresses and IP addresses in at least one of the Ethernet header, IP header, UDP header or TCP header used to encapsulate the first Ethernet packet.
  • the chip cannot know the MAC address and IP address of the chip when encapsulating the first Ethernet packet, so the memory addresses of different chips can be changed.
  • the ranges are set to non-overlapping areas so that different chips can be distinguished.
  • the first chip 601 is configured to implement sending the first Ethernet in the following manner Net packet: send the first Ethernet packet to the MAC layer, the MAC layer obtains the second Ethernet packet after corresponding processing of the Ethernet packet, and sends the second Ethernet packet through the first Ethernet transmission interface of the first chip to the second chip.
  • Net packet send the first Ethernet packet to the MAC layer
  • the MAC layer obtains the second Ethernet packet after corresponding processing of the Ethernet packet
  • the first chip 601 is configured to implement sending the first Ethernet in the following manner Packet: send the first Ethernet packet to the first switching module of the first chip, the first switching module of the first chip sends the first Ethernet packet to the MAC layer, and the MAC layer performs corresponding processing on the first Ethernet packet Then, the second Ethernet packet is obtained, and the second Ethernet packet is sent to the second chip through the first Ethernet transmission interface of the first chip.
  • the data transmission system further includes a switch chip 603 located between the first chip 601 and the second chip 701 .
  • the first chip 601 does not include the first switching module, and the first chip 601 is configured to implement the sending of the first Ethernet packet in the following manner: sending the first Ethernet packet to the MAC layer, and the MAC layer to After the Ethernet packet is processed correspondingly, a second Ethernet packet is obtained, and the second Ethernet packet is sent to the switching chip 603 through the first Ethernet transmission interface of the first chip.
  • the switch chip 603 is configured to send the second Ethernet packet to the second chip for the second Ethernet packet.
  • the first Ethernet transmission interface of the first chip may be a standard 50 or 25 or 10 or 5 Gbps Ethernet transmission interface, and may also be an Ethernet transmission interface of other rates.
  • the specific rate of the first Ethernet transmission interface is not limited, and the size of the specific rate is not used to limit the protection scope of the embodiments of the present disclosure.
  • the received first Ethernet packet refers to the first Ethernet packet passing through the second chip.
  • the first Ethernet packet is received by the second Ethernet transmission interface and processed by the MAC layer of the second chip, and the Ethernet packet received by the second Ethernet transmission interface of the second chip is sent by the first chip. Second Ethernet packet.
  • the received first Ethernet packet refers to the second Ethernet packet passing through the second chip
  • the network transmission interface receives the first Ethernet packet after corresponding processing by the MAC layer of the second chip, and transmits the first Ethernet packet through the second switching module of the second chip, and the second Ethernet transmission interface of the second chip receives the first Ethernet packet.
  • the Ethernet packet is the second Ethernet packet sent by the first chip.
  • the received first Ethernet packet refers to the second Ethernet packet passing through the second chip.
  • the first Ethernet packet received by the network transmission interface and correspondingly processed by the MAC layer of the second chip, and the Ethernet packets received by the second Ethernet transmission interface of the second chip are the first chip and the second chip.
  • the second Ethernet packet is sent between the switch chips.
  • the second Ethernet transmission interface 503 of the second chip may be a standard 50 or 25 or 10 or 5 Gbps Ethernet transmission interface, and may also be an Ethernet transmission interface of other rates.
  • the example does not limit the specific rate of the second Ethernet transmission interface 503, and the size of the specific rate is not used to limit the protection scope of the embodiments of the present disclosure.
  • the first Ethernet packet may be temporarily stored to the second chip 701 in the RAM.
  • the second chip 701 may directly discard the received first Ethernet packet.
  • the second chip 701 is further configured to: obtain position offset information of the custom header in the first Ethernet packet, and obtain valid data from the first Ethernet packet according to the position offset information length and access address. Specifically, the second chip 701 can obtain the custom header from the first Ethernet packet according to the position offset information, and obtain the effective length and the access address from the custom header.
  • the position offset information refers to the offset of the custom header from the starting position of the encapsulation header of the first Ethernet packet.
  • the position offset information of the custom header in the first Ethernet packet may be acquired from the CPU.
  • the valid data when valid data needs to be sent, the valid data is directly encapsulated into a first Ethernet packet and sent out, without first writing the valid data into a double rate (DDR, Double Data Packet). Rate), effectively reducing the bandwidth of DDR; no CPU participation is required in the process of transmitting valid data, that is, no additional CPU core resources are occupied; thus reducing the complexity of chip design and effectively reducing the area and power of the chip. consumption, which reduces the cost of the chip.
  • DDR Double Data Packet
  • Another embodiment of the present disclosure provides a computer-readable medium, where a computer program is stored in the computer-readable medium, and the computer program is used to execute any one of the foregoing data transmission methods.
  • Another embodiment of the present disclosure provides a chip, where the chip includes a CPU and a computer-readable medium, where the computer-readable medium stores a computer program, and the computer program executes any one of the above data transmission methods when executed by the CPU.
  • the computer program described above may be distributed on computer-readable media, which may include computer storage media (or non-transitory media) and communication media (or transitory media).
  • computer storage media includes both volatile and nonvolatile implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data flexible, removable and non-removable media.
  • Computer storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disk (DVD) or other optical disk storage, magnetic cartridges, magnetic tape, magnetic disk storage or other magnetic storage, or may Any other medium that stores the desired information and can be accessed by a computer.
  • communication media typically embodies computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism, and can include any information delivery media, as is well known to those of ordinary skill in the art .
  • Example embodiments have been disclosed herein, and although specific terms are employed, they are used and should only be construed in a general descriptive sense and not for purposes of limitation. In some instances, it will be apparent to those skilled in the art that features, characteristics and/or elements described in connection with a particular embodiment/implementation may be used alone or in combination with other embodiments/implementations unless expressly stated otherwise. Features, characteristics and/or elements described in combination are used in combination. Accordingly, it will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from the scope of the present disclosure as set forth in the appended claims.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The present application provides a data transmission method and system, a chip, and a computer readable medium. The data transmission method is applied in a chip, and comprises: receiving an on-chip bus write access request, wherein the on-chip bus write access request comprises valid data; obtaining configuration information of an encapsulation header; and encapsulating the valid data into a first Ethernet packet according to the configuration information of the encapsulation header, and sending the first Ethernet packet, wherein the first Ethernet packet comprises the encapsulation header and the valid data.

Description

数据传输方法和系统、芯片Data transmission method and system, chip
相关申请的交叉引用CROSS-REFERENCE TO RELATED APPLICATIONS
本申请要求于2020年8月28日提交的中国专利申请No.202010902743.3的优先权,该中国专利申请的全部内容通过引用的方式整体合并于此。This application claims priority to Chinese Patent Application No. 202010902743.3 filed on August 28, 2020, the entire contents of which are incorporated herein by reference in their entirety.
技术领域technical field
本公开实施例涉及集成电路设计领域,特别涉及数据传输方法和系统、芯片。The embodiments of the present disclosure relate to the field of integrated circuit design, and in particular, to a data transmission method, system, and chip.
背景技术Background technique
目前片间数据互传(或片间直接数据访问)应用最广泛最成熟的方式是利用高速串行计算机扩展总线标准(PCIE,Peripheral Component Interconnect Express)接口,但是PCIE接口只支持点到点访问,拓扑不灵活,只能支持板上芯片间的数据互传,且主要应用于X86计算机系统中。另外,PCIE接口工作频率高,接口实现和调试复杂,且单通道带宽有限。At present, the most widely used and mature way of inter-chip data transfer (or inter-chip direct data access) is to use the high-speed serial computer expansion bus standard (PCIE, Peripheral Component Interconnect Express) interface, but the PCIE interface only supports point-to-point access, The topology is inflexible and can only support data transfer between on-board chips, and is mainly used in X86 computer systems. In addition, the PCIE interface has high operating frequency, complex interface implementation and debugging, and limited single-channel bandwidth.
随着以太网技术应用越来越广泛,以太网传输带宽越来越高,芯片接口的以太网化越来越明显,采用以太网报文进行片间数据互传将是一个重要趋势,并且具有极大的优势。基于以太网包进行片间数据互传,可以利用以太网包的灵活路由特性,依托板上或板间的独立交换芯片或芯片内嵌的交换加速器,构建灵活的拓扑结构。然而,传统的基于以太网包进行片间数据互传的方法实现过程过于复杂,使得芯片设计的复杂度增加,芯片需要耗费更多的资源,芯片的面积比较大,芯片的功耗也比较大,从而增加了芯片的成本。As Ethernet technology becomes more and more widely used, the transmission bandwidth of Ethernet becomes higher and higher, and the Ethernetization of chip interfaces becomes more and more obvious. The use of Ethernet packets for inter-chip data transmission will be an important trend. Great advantage. Inter-chip data transfer based on Ethernet packets can utilize the flexible routing characteristics of Ethernet packets to build a flexible topology by relying on independent switching chips on or between boards or switching accelerators embedded in chips. However, the implementation process of the traditional method of inter-chip data transfer based on Ethernet packets is too complicated, which increases the complexity of chip design, consumes more resources, and has a relatively large chip area and power consumption. , thereby increasing the cost of the chip.
发明内容SUMMARY OF THE INVENTION
本公开实施例提供一种数据传输方法和系统、芯片。Embodiments of the present disclosure provide a data transmission method, system, and chip.
根据第一方面,本公开实施例提供一种数据传输方法,应用于第一芯片,该方法包括:接收片内总线写访问请求;其中,片内总线写访问请求包括:有效数据;获取封装头的配置信息;以及根据封装头的配置信息将有效数据封装成第一以太网包,并且发送第一以太网包;其中,第一以太网包包括:封装头和有效数据。According to a first aspect, an embodiment of the present disclosure provides a data transmission method, which is applied to a first chip. The method includes: receiving an on-chip bus write access request; wherein the on-chip bus write access request includes: valid data; obtaining a package header and encapsulate the valid data into a first Ethernet packet according to the configuration information of the encapsulation header, and send the first Ethernet packet; wherein the first Ethernet packet includes: an encapsulation header and valid data.
根据第二方面,本公开实施例提供一种数据传输方法,应用于第二芯片,该方法包括:接收第一以太网包;其中,第一以太网包包括:封装头和有效数据;当封装头包括:自定义头,且自定义头包括:有效数据长度和访问地址时,从第一以太网包中获取有效数据长度和访问地址;其中,访问地址为有效数据在第二芯片的内存中的地址;以及根据所述有效数据长度从第一以太网包中获取有效数据,将获取得到的有效数据写入访问地址内。According to a second aspect, an embodiment of the present disclosure provides a data transmission method, applied to a second chip, the method includes: receiving a first Ethernet packet; wherein the first Ethernet packet includes: an encapsulation header and valid data; The header includes: a custom header, and the custom header includes: when the valid data length and the access address are obtained, the valid data length and the access address are obtained from the first Ethernet packet; wherein, the access address is that the valid data is in the memory of the second chip. and obtaining valid data from the first Ethernet packet according to the valid data length, and writing the obtained valid data into the access address.
根据第三方面,本公开实施例提供一种芯片,该芯片包括:至少一个以太网发送模 块。每一个以太网发送模块包括:片内总线写访问请求接收子模块、配置信息获取子模块和以太网包封装发送子模块;其中,片内总线写访问请求接收子模块被配置为接收片内总线写访问请求;其中,片内总线写访问请求包括:有效数据;配置信息获取子模块被配置为获取封装头的配置信息;并且,以太网包封装发送子模块被配置为根据封装头的配置信息将有效数据封装成第一以太网包,并且发送第一以太网包;其中,第一以太网包包括:封装头和有效数据。According to a third aspect, an embodiment of the present disclosure provides a chip, where the chip includes: at least one Ethernet sending module. Each Ethernet sending module includes: an on-chip bus write access request receiving sub-module, a configuration information acquiring sub-module and an Ethernet packet encapsulation sending sub-module; wherein, the on-chip bus write access request receiving sub-module is configured to receive the on-chip bus write access request; wherein, the on-chip bus write access request includes: valid data; the configuration information acquisition sub-module is configured to obtain the configuration information of the encapsulation header; The valid data is encapsulated into a first Ethernet packet, and the first Ethernet packet is sent; wherein the first Ethernet packet includes: an encapsulation header and valid data.
根据第四方面,本公开实施例提供一种芯片,该芯片包括:至少一个以太网接收模块。每一个以太网接收模块包括:以太网包接收子模块和数据写入子模块;其中,以太网包接收子模块被配置为接收第一以太网包;其中,第一以太网包包括:封装头和有效数据;其中,数据写入子模块被配置为当封装头包括:自定义头,且自定义头包括:有效数据长度和访问地址时,从第一以太网包中获取有效数据长度和访问地址;其中,访问地址为有效数据在第二芯片的内存中的地址;并且,根据有效数据长度从第一以太网包中获取有效数据,将获取得到的有效数据写入地址范围内。According to a fourth aspect, an embodiment of the present disclosure provides a chip, where the chip includes: at least one Ethernet receiving module. Each Ethernet receiving module includes: an Ethernet packet receiving submodule and a data writing submodule; wherein, the Ethernet packet receiving submodule is configured to receive a first Ethernet packet; wherein the first Ethernet packet includes: an encapsulation header and valid data; wherein, the data writing submodule is configured to obtain the valid data length and access address from the first Ethernet packet when the encapsulation header includes: a custom header, and the custom header includes: valid data length and access address address; wherein, the access address is the address of the valid data in the memory of the second chip; and the valid data is obtained from the first Ethernet packet according to the length of the valid data, and the obtained valid data is written into the address range.
根据第五方面,本公开实施例提供一种芯片,包括:至少一个上述以太网发送模块,以及至少一个上述以太网接收模块。According to a fifth aspect, an embodiment of the present disclosure provides a chip, including: at least one of the above-mentioned Ethernet sending modules, and at least one of the above-mentioned Ethernet receiving modules.
根据第六方面,本公开实施例提供一种数据传输系统,包括:第一芯片和第三芯片。第一芯片被配置为接收片内总线写访问请求;其中,片内总线写访问请求包括:有效数据;获取封装头的配置信息;并且根据封装头的配置信息将有效数据封装成第一以太网包,并发送第一以太网包;其中,第一以太网包包括:封装头和有效数据;第三芯片被配置为接收第一以太网包,将第一以太网包写入内存中随机分配的地址,对第一以太网包进行分类后入列到中央处理器指定的队列。According to a sixth aspect, an embodiment of the present disclosure provides a data transmission system, including: a first chip and a third chip. The first chip is configured to receive an on-chip bus write access request; wherein, the on-chip bus write access request includes: valid data; obtain configuration information of the package header; and package the valid data into the first Ethernet according to the configuration information of the package header packet, and send the first Ethernet packet; wherein, the first Ethernet packet includes: an encapsulation header and valid data; the third chip is configured to receive the first Ethernet packet, and write the first Ethernet packet into the memory for random allocation After classifying the first Ethernet packet, it is listed in the queue designated by the central processing unit.
根据第七方面,本公开实施例提供一种数据传输系统,包括:第一芯片和第二芯片。第一芯片被配置为接收片内总线写访问请求;其中,片内总线写访问请求包括:有效数据、有效数据长度和访问地址;其中,访问地址为有效数据在第二芯片的内存中的地址;获取封装头的配置信息;并且根据封装头的配置信息将有效数据封装成第一以太网包,并且发送第一以太网包;其中,第一以太网包包括:封装头和有效数据;封装头包括:自定义头,自定义头包括:有效数据长度和访问地址;第二芯片被配置为接收第一以太网包;从第一以太网包中获取有效数据长度和访问地址;根据有效数据长度从第一以太网包中获取有效数据,将获取得到的有效数据写入访问地址内。According to a seventh aspect, an embodiment of the present disclosure provides a data transmission system, including: a first chip and a second chip. The first chip is configured to receive an on-chip bus write access request; wherein, the on-chip bus write access request includes: valid data, valid data length and access address; wherein, the access address is the address of the valid data in the memory of the second chip ; Obtain the configuration information of the encapsulation header; and encapsulate the valid data into a first Ethernet packet according to the configuration information of the encapsulation header, and send the first Ethernet packet; wherein, the first Ethernet packet includes: an encapsulation header and valid data; encapsulation The header includes: a custom header, and the custom header includes: valid data length and access address; the second chip is configured to receive the first Ethernet packet; obtain the valid data length and access address from the first Ethernet packet; According to the valid data The length obtains valid data from the first Ethernet packet, and writes the obtained valid data into the access address.
根据第八方面,本公开实施例提供一种计算机可读介质,该计算机可读介质存储有计算机程序,该计算机程序用于执行上述任意一种数据传输方法。According to an eighth aspect, an embodiment of the present disclosure provides a computer-readable medium, where the computer-readable medium stores a computer program, and the computer program is used to execute any one of the foregoing data transmission methods.
根据第九方面,本公开实施例提供一种芯片,该芯片包括CPU和计算机可读介质,该计算机可读介质存储有计算机程序,该计算机程序在被该CPU运行时执行上述任意一种数据传输方法。According to a ninth aspect, an embodiment of the present disclosure provides a chip including a CPU and a computer-readable medium, where the computer-readable medium stores a computer program, and when the computer program is run by the CPU, any one of the above data transmissions is performed method.
附图说明Description of drawings
图1为传统的片间数据互传系统的组成框图;Fig. 1 is the composition block diagram of the traditional inter-chip data mutual transmission system;
图2为本公开一个实施例提供的数据传输方法的流程图;2 is a flowchart of a data transmission method provided by an embodiment of the present disclosure;
图3为本公开另一个实施例提供的数据传输方法的流程图;3 is a flowchart of a data transmission method provided by another embodiment of the present disclosure;
图4为本公开另一个实施例提供的芯片的组成框图;FIG. 4 is a block diagram of a chip provided by another embodiment of the present disclosure;
图5为本公开另一个实施例提供的芯片的组成框图;FIG. 5 is a block diagram of a chip provided by another embodiment of the present disclosure;
图6为本公开另一个实施例提供的数据传输系统的组成框图;6 is a block diagram of a data transmission system provided by another embodiment of the present disclosure;
图7为本公开另一个实施例提供的数据传输系统的组成框图。FIG. 7 is a block diagram of a data transmission system according to another embodiment of the present disclosure.
具体实施方式detailed description
为使本领域的技术人员更好地理解本公开的技术方案,下面结合附图对本公开提供的数据传输方法和系统、芯片进行详细描述。In order to make those skilled in the art better understand the technical solutions of the present disclosure, the data transmission method, system, and chip provided by the present disclosure will be described in detail below with reference to the accompanying drawings.
在下文中将参考附图更充分地描述示例实施例,但是所述示例实施例可以以不同形式来体现且不应当被解释为限于本文阐述的实施例。反之,提供这些实施例的目的在于使本公开透彻和完整,并将使本领域技术人员充分理解本公开的范围。Example embodiments are described more fully hereinafter with reference to the accompanying drawings, but which may be embodied in different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the disclosure to those skilled in the art.
在不冲突的情况下,本公开各实施例及实施例中的各特征可相互组合。Various embodiments of the present disclosure and various features of the embodiments may be combined with each other without conflict.
如本文所使用的,术语“和/或”包括至少一个相关列举条目的任何和所有组合。As used herein, the term "and/or" includes any and all combinations of at least one of the associated listed items.
本文所使用的术语仅用于描述特定实施例,且不意欲限制本公开。如本文所使用的,单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。还将理解的是,当本说明书中使用术语“包括”和/或“由……制成”时,指定存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加至少一个其它特征、整体、步骤、操作、元件、组件和/或其群组。The terminology used herein is used to describe particular embodiments only and is not intended to limit the present disclosure. As used herein, the singular forms "a" and "the" are intended to include the plural forms as well, unless the context clearly dictates otherwise. It will also be understood that when the terms "comprising" and/or "made of" are used in this specification, the stated features, integers, steps, operations, elements and/or components are specified to be present, but not precluded or Add at least one other feature, integer, step, operation, element, component, and/or group thereof.
除非另外限定,否则本文所用的所有术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本公开的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本文明确如此限定。Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art. It will also be understood that terms such as those defined in common dictionaries should be construed as having meanings consistent with their meanings in the context of the related art and the present disclosure, and will not be construed as having idealized or over-formal meanings, unless expressly so limited herein.
图1为传统的片间数据互传系统的组成框图。如图1所示,芯片1经过子系统(SUBSYS)处理后的数据需要传输给芯片2的内存(MEM,MEMory)中的过程如下:Figure 1 is a block diagram of a traditional inter-chip data mutual transmission system. As shown in Figure 1, the data processed by the subsystem (SUBSYS) of chip 1 needs to be transmitted to the memory (MEM, MEMory) of chip 2. The process is as follows:
芯片1的SUBSYS根据中央处理器(CPU,Central Processing Unit)的指示将处理完的数据写入双倍速率(DDR,Double Data Rate)中,以太网包发送加速器(ETH_TX_ACC)根据CPU的指示从DDR对应的地址中读取需要发送的数据,将读取的数据封装成以太网包发送到芯片2中。The SUBSYS of chip 1 writes the processed data into the double rate (DDR, Double Data Rate) according to the instructions of the central processing unit (CPU, Central Processing Unit), and the Ethernet packet transmission accelerator (ETH_TX_ACC) according to the instructions of the CPU from the DDR The data to be sent is read from the corresponding address, and the read data is encapsulated into an Ethernet packet and sent to chip 2.
芯片2接收到芯片1发送的以太网包,以太网包接收加速器(ETH_RX_ACC)将接收到的报文写入内存中随机分配的地址,对报文进行解析分类后入到CPU指定的队列,CPU从队列中取出报文队列标识(ID,Identity),根据报文队列ID读取报文进行处理。Chip 2 receives the Ethernet packet sent by chip 1, and the Ethernet packet receiving accelerator (ETH_RX_ACC) writes the received packet to a randomly assigned address in the memory, parses and classifies the packet and enters it into the queue designated by the CPU. The message queue ID (ID, Identity) is taken out from the queue, and the message is read and processed according to the message queue ID.
上述片间数据互传的过程中主要存在以下问题:There are the following problems in the process of inter-chip data transfer:
(1)假设数据互传的流量需求为50Gbps,则芯片1在设计上需要预留125Gbps(千兆位每秒,Gbit per second)的DDR带宽给数据互传通道(按40%的DDR利用率进行 评估),假设一个DDR控制器的频率为3200兆赫兹(MHz),数据位宽为32比特(bit),则至少要多设计一个DDR控制器(图1中未示出)以及预留对应的DDR颗粒,这样无疑会提高芯片设计的复杂度,增加芯片面积,提高芯片功耗,从而导致芯片应用的成本提高(例如芯片面积越大流片成本越高,芯片功耗越大需要的散热器件越多,以及需要额外的DDR颗粒)。(1) Assuming that the traffic demand for data mutual transmission is 50Gbps, then chip 1 needs to reserve 125Gbps (gigabit per second, Gbit per second) DDR bandwidth for the data mutual transmission channel in design (at 40% DDR utilization rate) For evaluation), assuming that the frequency of a DDR controller is 3200 megahertz (MHz) and the data bit width is 32 bits (bit), at least one more DDR controller (not shown in Figure 1) and reserved corresponding This will undoubtedly increase the complexity of the chip design, increase the chip area, and increase the power consumption of the chip, which will lead to an increase in the cost of chip applications (for example, the larger the chip area, the higher the cost of tape-out, and the larger the chip power consumption, the more heat dissipation required more devices, and additional DDR particles are required).
(2)芯片1在数据互传过程中,需要CPU全程参与,即CPU需要对ETH_TX_ACC下发发送命令,构造报文发送需要的描述或报文头结构等。考虑到互传的数据流量较大,至少需要一个CPU核去完成该工作,因而芯片1在设计上需要预留一个CPU核给该数据互传通道,引入CPU核的增加,导致芯片设计的复杂度增加,芯片面积的增加,以及芯片功耗的提高,从而导致芯片成本的增加。(2) In the process of data mutual transmission of chip 1, the CPU needs to participate in the whole process, that is, the CPU needs to issue a sending command to ETH_TX_ACC, and construct the description or message header structure required for message sending. Considering that the data flow of mutual transmission is relatively large, at least one CPU core is required to complete the work. Therefore, in the design of chip 1, it is necessary to reserve a CPU core for the data mutual transmission channel, and the introduction of the increase of CPU cores leads to the complexity of chip design. The increase in speed, the increase in the chip area, and the increase in the power consumption of the chip lead to an increase in the cost of the chip.
(3)芯片2在接收到报文后,需要ETH_RX_ACC对报文进行解析分类,会引入复杂的逻辑,导致芯片设计的复杂度增加,芯片面积的增加,以及芯片功耗的提高,从而导致芯片成本的增加。(3) After chip 2 receives the message, it needs ETH_RX_ACC to parse and classify the message, which will introduce complex logic, increase the complexity of chip design, increase the area of the chip, and increase the power consumption of the chip, thus causing the chip increase in cost.
图2为本公开一个实施例提供的数据传输方法的流程图。FIG. 2 is a flowchart of a data transmission method provided by an embodiment of the present disclosure.
参照图2,本公开一个实施例提供一种数据传输方法,应用于第一芯片,需要说明的是,第一芯片是指需要进行片间数据传输的芯片,具体可以是任意类型的芯片,如基带处理芯片、CPU芯片等。Referring to FIG. 2, an embodiment of the present disclosure provides a data transmission method, which is applied to a first chip. It should be noted that the first chip refers to a chip that needs to perform inter-chip data transmission, and may be any type of chip, such as Baseband processing chips, CPU chips, etc.
该方法包括以下步骤200-步骤202。The method includes the following steps 200-202.
在步骤200中,接收片内总线写访问请求;其中,片内总线写访问请求包括:有效数据。In step 200, an on-chip bus write access request is received; wherein, the on-chip bus write access request includes: valid data.
在一些示例性实施方式中,片内总线写访问请求可以是第一芯片中的其他任意一个数据处理模块(例如,前面提到的SUBSYS)在对数据进行处理之后发起的,有效数据即是对数据进行处理之后得到的,需要传输到第二芯片的数据。In some exemplary embodiments, the on-chip bus write access request may be initiated by any other data processing module (for example, the aforementioned SUBSYS) in the first chip after processing the data, and the valid data is the The data is obtained after the data is processed and needs to be transmitted to the second chip.
需要说明的是,数据处理模块在对数据进行处理后,一般会针对处理后的数据发起多次片内总线写访问请求,也就是说,每一次发起的片内总线写访问请求中的有效数据仅仅是处理后的数据中的一小部分。数据处理模块可以定时发起片内总线写访问请求,在接收到片内总线写访问请求后,如果来不及处理片内总线写访问请求,则可以将片内总线写访问请求暂时存储到随机存取存储器(RAM,Random Access Memory)中。由于片内总线写访问请求中的有效数据仅仅是处理后的数据中的一小部分,因此,将片内总线写访问请求暂时存储到RAM中并不会占用太多的存储空间,也就是不需要为数据的传输预留太多的存储空间。It should be noted that after the data processing module processes the data, it generally initiates multiple on-chip bus write access requests for the processed data, that is, the valid data in each on-chip bus write access request initiated. Only a small part of the processed data. The data processing module can periodically initiate an on-chip bus write access request. After receiving the on-chip bus write access request, if it is too late to process the on-chip bus write access request, it can temporarily store the on-chip bus write access request in random access memory. (RAM, Random Access Memory). Since the valid data in the on-chip bus write access request is only a small part of the processed data, temporarily storing the on-chip bus write access request in RAM does not take up too much storage space, that is, it does not take up much storage space. Too much storage space needs to be reserved for data transfer.
需要说明的是,每一次发起的片内总线写访问请求中的有效数据的大小可以根据实际情况设定或随意设定,一般情况下可以设置成总线位宽的整数倍。It should be noted that the size of the valid data in each on-chip bus write access request initiated can be set according to the actual situation or set arbitrarily, and can be set to an integer multiple of the bus bit width in general.
在一些示例性实施方式中,由于目前主流的芯片设计大多基于高级精简指令集(RISC,Reduced Instruction Set Computing)(ARM,Advanced RISC Machine)内核,片上互联采用高级扩展接口(AXI,Advanced eXtensible Interface)总线,因此,可以通过AXI总线发起片内总线写访问请求,从而实现将AXI总线与以太网传输技术结合起 来,实现高效、简单和灵活的直接数据互传。In some exemplary embodiments, since the current mainstream chip designs are mostly based on Advanced Reduced Instruction Set (RISC, Reduced Instruction Set Computing) (ARM, Advanced RISC Machine) cores, the on-chip interconnection adopts Advanced eXtensible Interface (AXI, Advanced eXtensible Interface) Therefore, the on-chip bus write access request can be initiated through the AXI bus, so as to realize the combination of the AXI bus and the Ethernet transmission technology, and realize efficient, simple and flexible direct data mutual transmission.
需要说明的是,随着技术的发展,如果片上互联采用的是其他类型的总线(非AXI总线),也可以通过其他类型的总线发起片内总线写访问请求。本公开实施例对具体通过什么类型的总线来接收写访问请求不做限定,具体的总线类型也不用于限定本公开实施例的保护范围。It should be noted that, with the development of technology, if other types of buses (non-AXI buses) are used for the on-chip interconnection, on-chip bus write access requests can also be initiated through other types of buses. The embodiment of the present disclosure does not limit the specific type of bus used to receive the write access request, and the specific bus type is not used to limit the protection scope of the embodiment of the present disclosure.
在一些示例性实施方式中,片内总线写访问请求仅包括有效数据。In some example embodiments, the on-chip bus write access request includes only valid data.
在另一些示例性实施方式中,片内总线写访问请求包括:有效数据,有效数据长度(即上述有效数据的数据长度)和访问地址;其中,访问地址为该有效数据在第二芯片的内存中的地址,如AXI总线写访问请求。In some other exemplary embodiments, the on-chip bus write access request includes: valid data, valid data length (that is, the data length of the valid data above) and an access address; wherein, the access address is the valid data in the memory of the second chip address, such as an AXI bus write access request.
需要说明的是,如果片内总线写访问请求中不包括有效数据长度和访问地址,那么接收芯片需要采用现有的接收芯片来实现第一以太网包的接收,如果采用本公开实施例提出的第二芯片来实现则可能无法实现对有效数据的写入,这是由于第一以太网包中没有有效数据长度和访问地址,那么第二芯片就无法获知有效数据应该写入内存中的什么位置;如果写访问请求中包括有效数据长度和访问地址,那么接收芯片可以采用本公开实施例提出的第二芯片来实现。It should be noted that if the on-chip bus write access request does not include the effective data length and access address, the receiving chip needs to use the existing receiving chip to realize the reception of the first Ethernet packet. The second chip may not be able to write valid data. This is because there is no valid data length and access address in the first Ethernet packet, so the second chip cannot know where the valid data should be written in the memory. ; If the write access request includes the effective data length and the access address, the receiving chip can be implemented by using the second chip proposed by the embodiment of the present disclosure.
在步骤201中,获取封装头的配置信息。In step 201, configuration information of the encapsulation header is obtained.
在一些示例性实施方式中,如果写访问请求中包括有效数据长度和访问地址,则封装头包括:自定义头,自定义头包括:有效数据长度DATA_LEN和访问地址DST_ADDR;如果写访问请求中不包括有效数据长度DATA_LEN和访问地址DST_ADDR,则封装头也不包括自定义头。In some exemplary embodiments, if the write access request includes the valid data length and the access address, the encapsulation header includes: a custom header, and the custom header includes: the valid data length DATA_LEN and the access address DST_ADDR; Including the effective data length DATA_LEN and the access address DST_ADDR, the package header does not include the custom header.
在一些示例性实施方式中,自定义头还包括:保留字段RESERVE。该保留字段可以用于调整自定义头的长度或填写其他需要关注的信息。In some exemplary embodiments, the custom header further includes: a reserved field RESERVE. This reserved field can be used to adjust the length of the custom header or fill in other information that needs attention.
需要说明的是,自定义头中的有效数据长度DATA_LEN和访问地址DST_ADDR在自定义头中的具体位置可以随意设定,在自定义头中占用的位宽也可以随意设定。It should be noted that the specific positions of the valid data length DATA_LEN and the access address DST_ADDR in the custom header in the custom header can be arbitrarily set, and the bit width occupied in the custom header can also be arbitrarily set.
在一些示例性实施方式中,封装头还包括以下至少之一:以太网头、互联网协议(IP,Internet Protocol)头、用户数据报协议(UDP,User Datagram Protocol)头、传输控制协议(TCP,Transmission Control Protocol)头。In some exemplary embodiments, the encapsulation header further includes at least one of the following: an Ethernet header, an Internet Protocol (IP, Internet Protocol) header, a User Datagram Protocol (UDP, User Datagram Protocol) header, a Transmission Control Protocol (TCP, Transmission Control Protocol) header.
在一些示例性实施方式中,IP可以是互联网协议第四版(IPV4,Internet Protocol Version 4)或互联网协议第六版(IPV6,Internet Protocol Version 6)。In some exemplary embodiments, IP may be Internet Protocol Version 4 (IPV4, Internet Protocol Version 4) or Internet Protocol Version 6 (IPV6, Internet Protocol Version 6).
在一些示例性实施方式中,可以从第一芯片的CPU获取封装头的配置信息。In some exemplary embodiments, the configuration information of the package header may be obtained from the CPU of the first chip.
在一些示例性实施方式中,自定义头可以承载在任意一层。例如,自定义头可以承载在L2(即数据链路层)或L3(即网络层)或L4(即传输层)之上。In some exemplary embodiments, custom headers may be carried on any layer. For example, custom headers can be carried on top of L2 (ie data link layer) or L3 (ie network layer) or L4 (ie transport layer).
具体的,如果自定义头承载在L2,则封装头的格式为:以太网头+自定义头;那么,封装头的配置信息包括:以太网头的配置信息和自定义头的配置信息。Specifically, if the custom header is carried at L2, the format of the encapsulation header is: Ethernet header + custom header; then, the configuration information of the encapsulation header includes: configuration information of the Ethernet header and configuration information of the custom header.
如果自定义头承载在L3,则封装头的格式为:以太网头+IP头+自定义头;那么,封装头的配置信息包括:以太网头的配置信息、IP头的配置信息和自定义头的配置信息。If the custom header is carried at L3, the format of the encapsulation header is: Ethernet header + IP header + custom header; then, the configuration information of the encapsulation header includes: configuration information of the Ethernet header, configuration information of the IP header, and custom header Header configuration information.
如果自定义头承载在L4,则封装头的格式为:以太网头+IP头+UDP头或TCP头+ 自定义头;那么封装头的配置信息包括:以太网头的配置信息、IP头的配置信息、UDP头的配置信息或TCP头的配置信息、自定义头的配置信息。If the custom header is carried at L4, the format of the encapsulation header is: Ethernet header + IP header + UDP header or TCP header + custom header; then the configuration information of the encapsulation header includes: configuration information of the Ethernet header, configuration information of the IP header Configuration information, configuration information of UDP header or configuration information of TCP header, configuration information of custom header.
在一些示例性实施方式中,以太网头的配置信息包括:媒体访问控制(MAC,Media Access Controll)目的地址、MAC源地址,以太网类型(EtherType)字段。In some exemplary embodiments, the configuration information of the Ethernet header includes: a Media Access Control (MAC, Media Access Controll) destination address, a MAC source address, and an EtherType (EtherType) field.
IP头的配置信息包括:IP头类型(如4表示IPV4,6表示IPV6),IP头长度以及具体的IP头字段内容,这里不做详细描述;配置IPV4头的格式和内容符合RFC791协议,其中,总长度(Total Length)字段和头校验和(HeaderChecksum)字段配置为0即可,由第一芯片中的以太网发送模块进行更新;配置的IPV6头的格式和内容符合RFC8200协议,其中,负载长度(PayloadLength)配置为0即可,由第一芯片中的以太网发送模块进行更新。The configuration information of the IP header includes: IP header type (such as 4 for IPV4, 6 for IPV6), IP header length and specific IP header field content, which will not be described in detail here; the format and content of the configuration IPV4 header conform to the RFC791 protocol, where , the total length (Total Length) field and the header checksum (HeaderChecksum) field can be configured as 0, and updated by the Ethernet sending module in the first chip; the format and content of the configured IPV6 header conform to the RFC8200 protocol, wherein, The payload length (PayloadLength) may be configured as 0, and is updated by the Ethernet sending module in the first chip.
配置的UDP头的格式和内容符合RFC768协议,其中,长度(Length)和校验和(Checksum)字段配置为0,由第一芯片中的以太网发送模块进行更新。The format and content of the configured UDP header conform to the RFC768 protocol, wherein the length (Length) and checksum (Checksum) fields are configured as 0, and are updated by the Ethernet sending module in the first chip.
TCP头的配置信息符合RFC793协议。The configuration information of the TCP header conforms to the RFC793 protocol.
自定义头的配置信息包括:自定头的长度,预留字段,DATA_LEN和DST_ADDR,其中DATA_LEN和DST_ADDR配置为0,由第一芯片中的以太网发送模块进行更新。The configuration information of the custom header includes: the length of the custom header, reserved fields, DATA_LEN and DST_ADDR, wherein DATA_LEN and DST_ADDR are configured to be 0, and are updated by the Ethernet sending module in the first chip.
在步骤202中,根据封装头的配置信息将有效数据封装成第一以太网包,并且发送第一以太网包;其中,第一以太网包包括:封装头和有效数据。In step 202, the valid data is encapsulated into a first Ethernet packet according to the configuration information of the encapsulation header, and the first Ethernet packet is sent; wherein the first Ethernet packet includes: an encapsulation header and valid data.
在一些示例性实施方式中,自定义头可以承载在任意一层。例如,自定义头可以承载在L2(即数据链路层)或L3(即网络层)或L4(即传输层)之上。In some exemplary embodiments, custom headers may be carried on any layer. For example, custom headers can be carried on top of L2 (ie data link layer) or L3 (ie network layer) or L4 (ie transport layer).
具体的,如果自定义头承载在L2,则第一以太网包的格式为:以太网头+自定义头+有效数据;如果自定义头承载在L3,则第一以太网包的格式为:以太网头+IP头+自定义头+有效数据;如果自定义头承载在L4,则第一以太网包的格式为:以太网头+IP头+UDP头或TCP头+自定义头+有效数据。Specifically, if the custom header is carried on L2, the format of the first Ethernet packet is: Ethernet header + custom header + valid data; if the custom header is carried on L3, the format of the first Ethernet packet is: Ethernet header+IP header+custom header+valid data; if the custom header is carried in L4, the format of the first Ethernet packet is: Ethernet header+IP header+UDP header or TCP header+custom header+valid data.
在一些示例性实施方式中,根据封装头的配置信息将有效数据封装成第一以太网包包括:根据访问地址选择用于封装第一以太网包的以太网头、IP头、UDP头或TCP头中的至少之一,将选择的以太网头、IP头、UDP头或TCP头中的至少之一和自定义头,以及有效数据封装成第一以太网包。In some exemplary embodiments, encapsulating the valid data into the first Ethernet packet according to the configuration information of the encapsulation header includes: selecting an Ethernet header, an IP header, a UDP header or a TCP for encapsulating the first Ethernet packet according to the access address At least one of the headers, and at least one of the selected Ethernet header, IP header, UDP header or TCP header and the custom header, and the valid data are encapsulated into a first Ethernet packet.
在一些示例性实施方式中,根据访问地址选择用于封装第一以太网包的以太网头、IP头、UDP头或TCP头中的至少之一包括:在预先设置的用于封装第一以太网包的以太网头、IP头、UDP头或TCP头中的至少之一,和地址范围之间的对应关系中,查找访问地址所在的地址范围对应的用于封装第一以太网包的以太网头、IP头、UDP头或TCP头中的至少之一。In some exemplary embodiments, selecting at least one of an Ethernet header, an IP header, a UDP header or a TCP header for encapsulating the first Ethernet packet according to the access address includes: In the correspondence between at least one of the Ethernet header, IP header, UDP header or TCP header of the network packet and the address range, find the Ethernet header used to encapsulate the first Ethernet packet corresponding to the address range where the access address is located. At least one of a net header, an IP header, a UDP header, or a TCP header.
需要说明的是,不同的地址范围对应的用于封装第一以太网包的以太网头、IP头、UDP头或TCP头中的至少之一中的MAC地址和IP地址不同。It should be noted that different address ranges correspond to different MAC addresses and IP addresses in at least one of the Ethernet header, IP header, UDP header or TCP header used to encapsulate the first Ethernet packet.
需要说明的是,由于不同芯片之间的MAC地址和IP地址不同,然而,芯片内部在封装第一以太网包时并无法获知芯片的MAC地址和IP地址,那么可以将不同芯片的内存的地址范围设置成不重叠的区域,从而可以区分不同的芯片。It should be noted that since the MAC address and IP address of different chips are different, however, the chip cannot know the MAC address and IP address of the chip when encapsulating the first Ethernet packet, so the memory addresses of different chips can be changed. The ranges are set to non-overlapping areas so that different chips can be distinguished.
在一些示例性实施方式中,如果第一芯片不包括第一交换模块,第一芯片和第二芯片之间也不包括交换芯片,则发送第一以太网包包括:将第一以太网包发送到媒体访问控制(MAC,Media Access Control)层,MAC层对第一以太网包进行相应的处理后得到第二以太网包(如增加循环冗余校验码(CRC,Cyclic Redundancy Check),增加前导码,加填充字节等),通过第一芯片的第一以太网传输接口将第二以太网包发送给第二芯片。这种方式中,不需要交换芯片或第一交换模块来实现第一以太网包的传输的原因是针对拓扑简单的点到点数据传输的情况。In some exemplary implementations, if the first chip does not include the first switching module, nor does the first chip and the second chip include a switching chip, sending the first Ethernet packet includes: sending the first Ethernet packet To the media access control (MAC, Media Access Control) layer, the MAC layer obtains the second Ethernet packet after corresponding processing on the first Ethernet packet (such as adding a cyclic redundancy check code (CRC, Cyclic Redundancy Check), adding preamble, stuffing bytes, etc.), the second Ethernet packet is sent to the second chip through the first Ethernet transmission interface of the first chip. In this manner, the reason why a switch chip or a first switch module is not required to implement the transmission of the first Ethernet packet is for the case of point-to-point data transmission with a simple topology.
在另一些示例性实施方式中,如果第一芯片包括第一交换模块,第一芯片和第二芯片之间不包括交换芯片,则发送第一以太网包包括:将第一以太网包发送到第一芯片的第一交换模块,第一芯片的第一交换模块将第一以太网包发送到MAC层,MAC层对第一以太网包进行相应的处理后得到第二以太网包,通过第一芯片的第一以太网传输接口将第二以太网包发送给第二芯片。In some other exemplary embodiments, if the first chip includes a first switch module and a switch chip is not included between the first chip and the second chip, sending the first Ethernet packet includes: sending the first Ethernet packet to The first switching module of the first chip, the first switching module of the first chip sends the first Ethernet packet to the MAC layer, and the MAC layer performs corresponding processing on the first Ethernet packet to obtain the second Ethernet packet, and passes the first Ethernet packet. The first Ethernet transmission interface of one chip sends the second Ethernet packet to the second chip.
在另一些示例性实施方式中,如果第一芯片和第二芯片之间包括交换芯片,第一芯片不包括第一交换模块,则发送第一以太网包包括:将第一以太网包发送到MAC层,MAC层对第一以太网包进行相应的处理后得到第二以太网包,通过第一芯片的第一以太网传输接口将第二以太网包发送给交换芯片。In some other exemplary embodiments, if a switch chip is included between the first chip and the second chip, and the first chip does not include the first switch module, sending the first Ethernet packet includes: sending the first Ethernet packet to The MAC layer obtains a second Ethernet packet after the MAC layer performs corresponding processing on the first Ethernet packet, and sends the second Ethernet packet to the switching chip through the first Ethernet transmission interface of the first chip.
交换芯片将第二以太网包发送到第二芯片。The switch chip sends the second Ethernet packet to the second chip.
在一些示例性实施方式中,第一芯片的第一以太网传输接口可以是标准的50或25或10或5Gbps的以太网传输接口,也可以是其他速率的以太网传输接口,本公开实施例对第一以太网传输接口的具体速率不做限定,具体速率的大小也不用于限定本公开实施例的保护范围。In some exemplary implementations, the first Ethernet transmission interface of the first chip may be a standard 50 or 25 or 10 or 5 Gbps Ethernet transmission interface, and may also be an Ethernet transmission interface of other rates. The specific rate of the first Ethernet transmission interface is not limited, and the size of the specific rate is not used to limit the protection scope of the embodiments of the present disclosure.
本公开实施例提供的数据传输方法,在需要发送有效数据时,直接将有效数据封装成第一以太网包,并发送出去,而不需要先将有效数据写入双倍速率(DDR,Double Data Rate),有效的减少了DDR的带宽;传输有效数据过程中也不需要CPU参与,即不需要占用额外的CPU核资源;从而降低了芯片设计的复杂度,有效地减少了芯片的面积和功耗,也就降低了芯片的成本。In the data transmission method provided by the embodiments of the present disclosure, when valid data needs to be sent, the valid data is directly encapsulated into a first Ethernet packet and sent out, without first writing the valid data into a double rate (DDR, Double Data Packet). Rate), effectively reducing the bandwidth of DDR; no CPU participation is required in the process of transmitting valid data, that is, no additional CPU core resources are occupied; thus reducing the complexity of chip design and effectively reducing the area and power of the chip. consumption, which reduces the cost of the chip.
图3为本公开另一个实施例提供的数据传输方法的流程图。FIG. 3 is a flowchart of a data transmission method provided by another embodiment of the present disclosure.
参照图3,本公开另一个实施例提供一种数据传输方法,应用于第二芯片,需要说明的是,第二芯片是指需要进行片间数据传输的芯片,具体可以是任意类型的芯片,如基带处理芯片、CPU芯片等。Referring to FIG. 3 , another embodiment of the present disclosure provides a data transmission method, which is applied to a second chip. It should be noted that the second chip refers to a chip that needs to perform inter-chip data transmission, and may be any type of chip. Such as baseband processing chips, CPU chips, etc.
该方法包括以下步骤300-步骤302。The method includes the following steps 300-302.
在步骤300中,接收第一以太网包;其中,第一以太网包包括:封装头和有效数据。In step 300, a first Ethernet packet is received; wherein the first Ethernet packet includes: an encapsulation header and valid data.
在一些示例性实施方式中,如果第二芯片不包括第二交换模块,第一芯片和第二芯片之间也不包括交换芯片,则接收的第一以太网包是指通过第二芯片的第二以太网传输接口接收,并经过第二芯片的MAC层进行对应的处理之后得到的第一以太网包,并且第二芯片的第二以太网传输接口接收的以太网包是第一芯片发送的第二以太网包。In some exemplary embodiments, if the second chip does not include the second switching module, and the switching chip is not included between the first chip and the second chip, the received first Ethernet packet refers to the first Ethernet packet passing through the second chip. The first Ethernet packet is received by the second Ethernet transmission interface and processed by the MAC layer of the second chip, and the Ethernet packet received by the second Ethernet transmission interface of the second chip is sent by the first chip. Second Ethernet packet.
在一些示例性实施方式中,如果第二芯片包括第二交换模块,第一芯片和第二芯片 之间不包括交换芯片,则接收的第一以太网包是指通过第二芯片的第二以太网传输接口接收,通过第二芯片的MAC层进行对应的处理,并通过第二芯片的第二交换模块传输之后得到的第一以太网包,并且第二芯片的第二以太网传输接口接收的以太网包是第一芯片发送的第二以太网包。In some exemplary embodiments, if the second chip includes a second switch module and no switch chip is included between the first chip and the second chip, the received first Ethernet packet refers to the second Ethernet packet passing through the second chip The network transmission interface receives the first Ethernet packet after corresponding processing by the MAC layer of the second chip, and transmits the first Ethernet packet through the second switching module of the second chip, and the second Ethernet transmission interface of the second chip receives the first Ethernet packet. The Ethernet packet is the second Ethernet packet sent by the first chip.
在一些示例性实施方式中,如果第一芯片和第二芯片之间包括交换芯片,第二芯片不包括第二交换模块,则接收的第一以太网包是指通过第二芯片的第二以太网传输接口接收,并通过第二芯片的MAC层进行对应的处理之后得到的第一以太网包,并且第二芯片的第二以太网传输接口接收的以太网包是第一芯片和第二芯片之间的交换芯片发送的第二以太网包。In some exemplary embodiments, if a switch chip is included between the first chip and the second chip, and the second chip does not include a second switch module, the received first Ethernet packet refers to the second Ethernet packet passing through the second chip. The first Ethernet packet received by the network transmission interface and correspondingly processed by the MAC layer of the second chip, and the Ethernet packets received by the second Ethernet transmission interface of the second chip are the first chip and the second chip. The second Ethernet packet is sent between the switch chips.
在一些示例性实施方式中,第二芯片的第二以太网传输接口可以是标准的50或25或10或5Gbps的以太网传输接口,也可以是其他速率的以太网传输接口,本公开实施例对第二以太网传输接口的具体速率不做限定,具体速率的大小也不用于限定本公开实施例的保护范围。In some exemplary implementations, the second Ethernet transmission interface of the second chip may be a standard 50 or 25 or 10 or 5 Gbps Ethernet transmission interface, and may also be an Ethernet transmission interface of other rates. The specific rate of the second Ethernet transmission interface is not limited, and the size of the specific rate is not used to limit the protection scope of the embodiments of the present disclosure.
在一些示例性实施方式中,在接收到第一以太网包后,如果来不及处理第一以太网包,则可以将第一以太网包暂时存储到RAM中。In some exemplary embodiments, after receiving the first Ethernet packet, if it is too late to process the first Ethernet packet, the first Ethernet packet may be temporarily stored in RAM.
在一些示例性实施方式中,封装头可以包括自定义头,也可以不包括自定义头。In some exemplary embodiments, the encapsulation header may or may not include a custom header.
在一些示例性实施方式中,自定义头包括:有效数据长度DATA_LEN和访问地址DST_ADDR。In some exemplary embodiments, the custom header includes: effective data length DATA_LEN and access address DST_ADDR.
在一些示例性实施方式中,自定义头还包括:保留字段RESERVE。该保留字段可以用于调整自定义头的长度或填写其他需要关注的信息。In some exemplary embodiments, the custom header further includes: a reserved field RESERVE. This reserved field can be used to adjust the length of the custom header or fill in other information that needs attention.
需要说明的是,自定义头中的有效数据长度DATA_LEN和访问地址DST_ADDR在自定义头中的具体位置可以随意设定,在自定义头中占用的位宽也可以随意设定。It should be noted that the specific positions of the valid data length DATA_LEN and the access address DST_ADDR in the custom header in the custom header can be arbitrarily set, and the bit width occupied in the custom header can also be arbitrarily set.
在一些示例性实施方式中,封装头还包括以下至少之一:以太网头、IP头、UDP头、TCP头。In some exemplary embodiments, the encapsulation header further includes at least one of the following: an Ethernet header, an IP header, a UDP header, and a TCP header.
在一些示例性实施方式中,IP可以是IPV4或IPV6。In some exemplary embodiments, the IP may be IPV4 or IPV6.
在一些示例性实施方式中,自定义头可以承载在任意一层。例如,自定义头可以承载在L2(即数据链路层)或L3(即网络层)或L4(即传输层)之上。In some exemplary embodiments, custom headers may be carried on any layer. For example, custom headers can be carried on top of L2 (ie data link layer) or L3 (ie network layer) or L4 (ie transport layer).
具体的,如果自定义头承载在L2,则第一以太网包的格式为:以太网头+自定义头+有效数据;如果自定义头承载在L3,则第一以太网包的格式为:以太网头+IP头+自定义头+有效数据;如果自定义头承载在L4,则第一以太网包的格式为:以太网头+IP头+UDP头或TCP头+自定义头+有效数据。Specifically, if the custom header is carried on L2, the format of the first Ethernet packet is: Ethernet header + custom header + valid data; if the custom header is carried on L3, the format of the first Ethernet packet is: Ethernet header+IP header+custom header+valid data; if the custom header is carried in L4, the format of the first Ethernet packet is: Ethernet header+IP header+UDP header or TCP header+custom header+valid data.
在步骤301中,当封装头包括:自定义头,自定义头包括:有效数据长度和访问地址时,从第一以太网包中获取有效数据长度和访问地址;其中,访问地址为有效数据在内存中的访问地址。In step 301, when the encapsulation header includes: a custom header, and the custom header includes: valid data length and access address, obtain the valid data length and access address from the first Ethernet packet; wherein, the access address is valid data in Access address in memory.
在一些示例性实施方式中,当封装头不包括自定义头时,可以直接丢弃接收到的第一以太网包。In some exemplary embodiments, when the encapsulation header does not include the custom header, the received first Ethernet packet may be directly discarded.
在一些示例性实施方式中,从第一以太网包中获取有效数据长度和访问地址之前, 该方法还包括:获取自定义头在第一以太网包中的位置偏移信息。In some exemplary embodiments, before acquiring the effective data length and the access address from the first Ethernet packet, the method further includes: acquiring position offset information of the custom header in the first Ethernet packet.
从第一以太网包中获取有效数据长度和访问地址包括:根据位置偏移信息从第一以太网包中获取有效数据长度和访问地址。具体的,可以根据位置偏移信息从第一以太网包中获取自定义头,从自定义头中获取有效长度和访问地址。Acquiring the effective data length and the access address from the first Ethernet packet includes: acquiring the effective data length and the access address from the first Ethernet packet according to the position offset information. Specifically, the user-defined header may be obtained from the first Ethernet packet according to the position offset information, and the effective length and the access address may be obtained from the user-defined header.
在一些示例性实施方式中,位置偏移信息是指自定义头距离第一以太网包的封装头的起始位置的偏移量。In some exemplary embodiments, the position offset information refers to the offset of the custom header from the starting position of the encapsulation header of the first Ethernet packet.
在一些示例性实施方式中,可以从CPU获取自定义头在第一以太网包中的位置偏移信息。In some exemplary embodiments, the position offset information of the custom header in the first Ethernet packet may be acquired from the CPU.
在步骤302中,根据有效数据长度从第一以太网包中获取有效数据,将获取得到的有效数据写入访问地址内。In step 302, valid data is obtained from the first Ethernet packet according to the valid data length, and the obtained valid data is written into the access address.
在一些示例性实施方式中,根据有效数据长度从第一以太网包中获取有效数据包括:从第一以太网包的净荷数据中截取长度为有效数据长度的数据即为有效数据。In some exemplary embodiments, obtaining the valid data from the first Ethernet packet according to the valid data length includes: intercepting data whose length is the valid data length from the payload data of the first Ethernet packet, which is the valid data.
在一些示例性实施方式中,由于目前主流的芯片设计大多基于ARM内核,片上互联采用AXI总线,因此,可以通过AXI总线将获取得到的有效数据写入访问地址内,从而实现将AXI总线与以太网传输技术结合起来,实现高效、简单和灵活的直接数据互传。In some exemplary embodiments, since most of the current mainstream chip designs are based on ARM cores, and the on-chip interconnection adopts AXI bus, the obtained valid data can be written into the access address through the AXI bus, thereby realizing the connection between the AXI bus and the Ethernet Network transmission technology is combined to achieve efficient, simple and flexible direct data mutual transmission.
需要说明的是,随着技术的发展,如果片上互联采用的是其他类型的总线(非AXI总线),也可以通过其他类型的总线将获取得到的有效数据写入访问地址内。本公开实施例对具体通过什么类型的总线来将获取得到的有效数据写入访问地址内不做限定,具体的总线类型也不用于限定本公开实施例的保护范围。It should be noted that, with the development of technology, if other types of buses (non-AXI buses) are used for the on-chip interconnection, the obtained valid data can also be written into the access address through other types of buses. The embodiment of the present disclosure does not limit the specific type of bus used to write the obtained valid data into the access address, and the specific bus type is not used to limit the protection scope of the embodiment of the present disclosure.
本公开实施例提供的数据传输方法,在接收到第一以太网包时,直接从第一以太网包中获取有效数据并写入对应的访问地址内,而不需要对第一以太网包进行解析分类,实现逻辑比较简单,从而降低了芯片设计的复杂度,有效地减少了芯片的面积和功耗,也就降低了芯片的成本。In the data transmission method provided by the embodiments of the present disclosure, when the first Ethernet packet is received, valid data is directly obtained from the first Ethernet packet and written into the corresponding access address, without the need to perform any processing on the first Ethernet packet. Analysis and classification, the realization of logic is relatively simple, thereby reducing the complexity of chip design, effectively reducing the area and power consumption of the chip, and also reducing the cost of the chip.
图4为本公开另一个实施例提供的芯片的组成框图。FIG. 4 is a block diagram of a chip provided by another embodiment of the present disclosure.
参照图4,本公开另一个实施例提供一种芯片,包括:至少一个以太网发送模块;每一个以太网发送模块包括:片内总线写访问请求接收子模块401、配置信息获取子模块402和以太网包封装发送子模块403。4, another embodiment of the present disclosure provides a chip, including: at least one Ethernet sending module; each Ethernet sending module includes: an on-chip bus write access request receiving sub-module 401, a configuration information obtaining sub-module 402 and Ethernet packet encapsulation and transmission sub-module 403 .
其中,片内总线写访问请求接收子模块401被配置为接收片内总线写访问请求;其中,片内总线写访问请求包括:有效数据;配置信息获取子模块402被配置为获取封装头的配置信息;以太网包封装发送子模块403被配置为根据封装头的配置信息将有效数据封装成第一以太网包,并且发送第一以太网包;其中,第一以太网包包括:封装头和有效数据。Wherein, the on-chip bus write access request receiving sub-module 401 is configured to receive the on-chip bus write access request; wherein, the on-chip bus write access request includes: valid data; the configuration information obtaining sub-module 402 is configured to obtain the configuration of the package header information; the Ethernet packet encapsulation and transmission submodule 403 is configured to encapsulate the valid data into a first Ethernet packet according to the configuration information of the encapsulation header, and send the first Ethernet packet; wherein, the first Ethernet packet includes: the encapsulation header and the valid data.
在一些示例性实施方式中,片内总线写访问请求可以是第一芯片中的其他任意一个数据处理模块(例如,前面提到的SUBSYS)在对数据进行处理之后发起的,有效数据即是对数据进行处理之后得到的,需要传输到第二芯片的数据。也就是说,芯片还包括:数据处理模块404,其被配置为对数据进行相应的处理得到有效数据,发起片内总线写 访问请求。In some exemplary embodiments, the on-chip bus write access request may be initiated by any other data processing module (for example, the aforementioned SUBSYS) in the first chip after processing the data, and the valid data is the The data is obtained after the data is processed and needs to be transmitted to the second chip. That is to say, the chip further includes: a data processing module 404, which is configured to perform corresponding processing on the data to obtain valid data, and initiate a write access request to the on-chip bus.
需要说明的是,数据处理模块404在对数据进行处理后,一般会针对处理后的数据发起多次片内总线写访问请求,也就是说,每一次发起的片内总线写访问请求中的有效数据仅仅是处理后的数据中的一小部分。数据处理模块404可以定时发起片内总线写访问请求,在接收到片内总线写访问请求后,如果来不及处理片内总线写访问请求,则可以将片内总线写访问请求暂时存储到片内总线写访问请求接收子模块401的RAM中。由于片内总线写访问请求中的有效数据仅仅是处理后的数据中的一小部分,因此,将片内总线写访问请求暂时存储到请求接收子模块401的RAM中并不会占用太多的存储空间,也就是不需要为数据的传输预留太多的存储空间。It should be noted that, after the data processing module 404 processes the data, it generally initiates multiple on-chip bus write access requests for the processed data, that is to say, the valid on-chip bus write access request initiated each time is valid. The data is only a small part of the processed data. The data processing module 404 can periodically initiate an on-chip bus write access request. After receiving the on-chip bus write access request, if it is too late to process the on-chip bus write access request, it can temporarily store the on-chip bus write access request to the on-chip bus. The write access request is received in the RAM of the sub-module 401 . Since the valid data in the on-chip bus write access request is only a small part of the processed data, temporarily storing the on-chip bus write access request in the RAM of the request receiving sub-module 401 will not occupy too much space Storage space, that is, there is no need to reserve too much storage space for data transmission.
需要说明的是,每一次发起的片内总线写访问请求中的有效数据的大小可以根据实际情况设定或随意设定,一般情况下可以设置成连接数据处理模块404和以太网发送模块的总线位宽的整数倍。It should be noted that the size of the valid data in each on-chip bus write access request initiated can be set according to the actual situation or can be set at will. Generally, it can be set as the bus connecting the data processing module 404 and the Ethernet sending module. Integer multiple of the bit width.
在一些示例性实施方式中,由于目前主流的芯片设计大多基于ARM内核,片上互联采用AXI总线,因此,可以通过AXI总线发起片内总线写访问请求,即数据处理模块404和以太网发送模块之间通过AXI总线互连,从而实现将AXI总线与以太网传输技术结合起来,实现高效、简单和灵活的直接数据互传。In some exemplary embodiments, since most of the current mainstream chip designs are based on ARM cores, and the on-chip interconnection adopts AXI bus, therefore, an on-chip bus write access request can be initiated through the AXI bus, that is, between the data processing module 404 and the Ethernet sending module. They are interconnected through the AXI bus, so as to realize the combination of the AXI bus and the Ethernet transmission technology to achieve efficient, simple and flexible direct data mutual transmission.
需要说明的是,随着技术的发展,如果片上互联采用的是其他类型的总线(非AXI总线),也可以通过其他类型的总线连接数据处理模块404和以太网发送模块。本公开实施例对具体通过什么类型的总线来连接数据处理模块404和以太网发送模块不做限定,具体的总线类型也不用于限定本公开实施例的保护范围。It should be noted that, with the development of technology, if other types of buses (non-AXI buses) are used for the on-chip interconnection, the data processing module 404 and the Ethernet transmission module may also be connected through other types of buses. The embodiment of the present disclosure does not limit what type of bus is used to connect the data processing module 404 and the Ethernet sending module, and the specific bus type is not used to limit the protection scope of the embodiment of the present disclosure.
在一些示例性实施方式中,片内总线写访问请求仅包括有效数据。In some example embodiments, the on-chip bus write access request includes only valid data.
在另一些示例性实施方式中,片内总线写访问请求包括:有效数据和有效数据在第二芯片的内存中的地址范围。In other exemplary embodiments, the on-chip bus write access request includes: valid data and an address range of the valid data in the memory of the second chip.
在另一些示例性实施方式中,写访问请求包括:有效数据。In other exemplary embodiments, the write access request includes valid data.
在另一些示例性实施方式中,片内总线写访问请求包括:有效数据,有效数据长度和访问地址;其中,访问地址为有效数据在第二芯片的内存中的地址,如AXI总线写访问请求。In other exemplary embodiments, the on-chip bus write access request includes: valid data, valid data length and access address; wherein, the access address is the address of the valid data in the memory of the second chip, such as an AXI bus write access request .
需要说明的是,如果片内总线写访问请求中不包括有效数据长度和访问地址,那么接收芯片需要采用现有的接收芯片来实现第一以太网包的接收,如果采用本公开实施例提出的第二芯片来实现则无法实现对有效数据的写入,这是由于第一以太网包中没有有效数据长度和访问地址,那么第二芯片就无法获知有效数据应该写入内存中的什么位置;如果写访问请求中包括有效数据长度和访问地址,那么接收芯片可以采用本公开实施例提出的第二芯片来实现。It should be noted that if the on-chip bus write access request does not include the effective data length and access address, the receiving chip needs to use the existing receiving chip to realize the reception of the first Ethernet packet. The second chip cannot realize the writing of valid data, because there is no valid data length and access address in the first Ethernet packet, so the second chip cannot know where the valid data should be written in the memory; If the write access request includes the effective data length and the access address, the receiving chip may be implemented by using the second chip provided by the embodiment of the present disclosure.
在一些示例性实施方式中,如果写访问请求中包括有效数据长度和访问地址,则封装头包括:自定义头,自定义头包括:有效数据长度DATA_LEN和访问地址DST_ADDR;如果写访问请求中不包括有效数据长度DATA_LEN和访问地址DST_ADDR,则封装头也不包括自定义头。In some exemplary embodiments, if the write access request includes the valid data length and the access address, the encapsulation header includes: a custom header, and the custom header includes: the valid data length DATA_LEN and the access address DST_ADDR; Including the effective data length DATA_LEN and the access address DST_ADDR, the package header does not include the custom header.
在一些示例性实施方式中,自定义头还包括:保留字段RESERVE。该保留字段可以用于调整自定义头的长度或填写其他需要关注的信息。In some exemplary embodiments, the custom header further includes: a reserved field RESERVE. This reserved field can be used to adjust the length of the custom header or fill in other information that needs attention.
需要说明的是,自定义头中的有效数据长度DATA_LEN和访问地址DST_ADDR在自定义头中的具体位置可以随意设定,在自定义头中占用的位宽也可以随意设定。It should be noted that the specific positions of the valid data length DATA_LEN and the access address DST_ADDR in the custom header in the custom header can be arbitrarily set, and the bit width occupied in the custom header can also be arbitrarily set.
在一些示例性实施方式中,封装头还包括以下至少之一:以太网头、IP头、UDP头、TCP头。In some exemplary embodiments, the encapsulation header further includes at least one of the following: an Ethernet header, an IP header, a UDP header, and a TCP header.
在一些示例性实施方式中,IP可以是IPV4或IPV6。In some exemplary embodiments, the IP may be IPV4 or IPV6.
在一些示例性实施方式中,可以从第一芯片的CPU获取封装头的配置信息。In some exemplary embodiments, the configuration information of the package header may be obtained from the CPU of the first chip.
在一些示例性实施方式中,自定义头可以承载在任意一层。例如,自定义头可以承载在L2(即数据链路层)或L3(即网络层)或L4(即传输层)之上。In some exemplary embodiments, custom headers may be carried on any layer. For example, custom headers can be carried on top of L2 (ie data link layer) or L3 (ie network layer) or L4 (ie transport layer).
具体的,如果自定义头承载在L2,则封装头的格式为:以太网头+自定义头;那么,封装头的配置信息包括:以太网头的配置信息和自定义头的配置信息。Specifically, if the custom header is carried at L2, the format of the encapsulation header is: Ethernet header + custom header; then, the configuration information of the encapsulation header includes: configuration information of the Ethernet header and configuration information of the custom header.
如果自定义头承载在L3,则封装头的格式为:以太网头+IP头+自定义头;那么,封装头的配置信息包括:以太网头的配置信息、IP头的配置信息和自定义头的配置信息。If the custom header is carried at L3, the format of the encapsulation header is: Ethernet header + IP header + custom header; then, the configuration information of the encapsulation header includes: configuration information of the Ethernet header, configuration information of the IP header, and custom header Header configuration information.
如果自定义头承载在L4,则封装头的格式为:以太网头+IP头+UDP头或TCP头+自定义头;那么封装头的配置信息包括:以太网头的配置信息、IP头的配置信息、UDP头的配置信息或TCP头的配置信息、自定义头的配置信息。If the custom header is carried at L4, the format of the encapsulation header is: Ethernet header + IP header + UDP header or TCP header + custom header; then the configuration information of the encapsulation header includes: configuration information of the Ethernet header, configuration information of the IP header Configuration information, configuration information of UDP header or configuration information of TCP header, configuration information of custom header.
在一些示例性实施方式中,以太网头的配置信息包括:MAC目的地址、MAC源地址,以太网类型(EtherType)字段。In some exemplary embodiments, the configuration information of the Ethernet header includes: a MAC destination address, a MAC source address, and an EtherType (EtherType) field.
IP头的配置信息包括:IP头类型(如4表示IPV4,6表示IPV6),IP头长度以及具体的IP头字段内容,这里不做详细描述;配置IPV4头的格式和内容符合RFC791协议,其中,Total Length字段和HeaderChecksum字段配置为0即可,由第一芯片中的以太网发送模块进行更新;配置的IPV6头的格式和内容符合RFC8200协议,其中,PayloadLength配置为0即可,由第一芯片中的以太网发送模块进行更新。The configuration information of the IP header includes: IP header type (such as 4 for IPV4, 6 for IPV6), IP header length and specific IP header field content, which will not be described in detail here; the format and content of the configuration IPV4 header conform to the RFC791 protocol, where , the Total Length field and the HeaderChecksum field can be set to 0, which is updated by the Ethernet sending module in the first chip; the format and content of the configured IPV6 header conform to the RFC8200 protocol, and the PayloadLength can be set to 0, and the first The Ethernet sending module in the chip is updated.
配置的UDP头的格式和内容符合RFC768协议,其中,Length和Checksum字段配置为0,由第一芯片中的以太网发送模块进行更新。The format and content of the configured UDP header conform to the RFC768 protocol, wherein the Length and Checksum fields are configured as 0, and are updated by the Ethernet sending module in the first chip.
TCP头的配置信息符合RFC793协议。The configuration information of the TCP header conforms to the RFC793 protocol.
自定义头的配置信息包括:自定头的长度,预留字段,DATA_LEN和DST_ADDR,其中DATA_LEN和DST_ADDR配置为0,由第一芯片中的以太网发送模块进行更新。The configuration information of the custom header includes: the length of the custom header, reserved fields, DATA_LEN and DST_ADDR, wherein DATA_LEN and DST_ADDR are configured to be 0, and are updated by the Ethernet sending module in the first chip.
在一些示例性实施方式中,自定义头可以承载在任意一层。例如,自定义头可以承载在L2(即数据链路层)或L3(即网络层)或L4(即传输层)之上。In some exemplary embodiments, custom headers may be carried on any layer. For example, custom headers can be carried on top of L2 (ie data link layer) or L3 (ie network layer) or L4 (ie transport layer).
具体的,如果自定义头承载在L2,则第一以太网包的格式为:以太网头+自定义头+有效数据;Specifically, if the custom header is carried on L2, the format of the first Ethernet packet is: Ethernet header + custom header + valid data;
如果自定义头承载在L3,则第一以太网包的格式为:以太网头+IP头+自定义头+有效数据;If the custom header is carried at L3, the format of the first Ethernet packet is: Ethernet header+IP header+custom header+valid data;
如果自定义头承载在L4,则第一以太网包的格式为:以太网头+IP头+UDP头或TCP头+自定义头+有效数据。If the custom header is carried at L4, the format of the first Ethernet packet is: Ethernet header+IP header+UDP header or TCP header+custom header+valid data.
在一些示例性实施方式中,第一以太网包封装发送子模块403配置为采用以下方式实现根据封装头的配置信息将有效数据封装成第一以太网包:根据访问地址选择用于封装第一以太网包的以太网头、IP头、UDP头或TCP头中的至少之一,将选择的以太网头、IP头、UDP头或TCP头中的至少之一和自定义头,以及有效数据封装成第一以太网包。In some exemplary implementations, the first Ethernet packet encapsulation and transmission sub-module 403 is configured to implement encapsulation of valid data into the first Ethernet packet according to the configuration information of the encapsulation header in the following manner: selecting the first Ethernet packet for encapsulating the first Ethernet packet according to the access address At least one of the Ethernet header, IP header, UDP header or TCP header of the Ethernet packet, at least one of the selected Ethernet header, IP header, UDP header or TCP header and custom header, and valid data Encapsulated into a first Ethernet packet.
在一些示例性实施方式中,第一以太网包封装发送子模块403配置为采用以下方式实现根据访问地址选择用于封装第一以太网包的以太网头、IP头、UDP头或TCP头中的至少之一:在预先设置的用于封装第一以太网包的以太网头、IP头、UDP头或TCP头中的至少之一,和地址范围之间的对应关系中,查找访问地址所在的地址范围对应的用于封装第一以太网包的以太网头、IP头、UDP头或TCP头中的至少之一。In some exemplary implementations, the first Ethernet packet encapsulation and sending sub-module 403 is configured to select the Ethernet header, IP header, UDP header or TCP header for encapsulating the first Ethernet packet according to the access address in the following manner At least one of: in the preset at least one of the Ethernet header, IP header, UDP header or TCP header for encapsulating the first Ethernet packet, and the corresponding relationship between the address range, find where the access address is located The address range corresponding to at least one of an Ethernet header, an IP header, a UDP header or a TCP header for encapsulating the first Ethernet packet.
需要说明的是,不同的地址范围对应的用于封装第一以太网包的以太网头、IP头、UDP头或TCP头中的至少之一中的MAC地址和IP地址不同。It should be noted that different address ranges correspond to different MAC addresses and IP addresses in at least one of the Ethernet header, IP header, UDP header or TCP header used to encapsulate the first Ethernet packet.
需要说明的是,由于不同芯片之间的MAC地址和IP地址不同,然而,芯片内部在封装第一以太网包时并无法获知芯片的MAC地址和IP地址,那么可以将不同芯片的内存的地址范围设置成不重叠的区域,从而可以区分不同的芯片。It should be noted that since the MAC address and IP address of different chips are different, however, the chip cannot know the MAC address and IP address of the chip when encapsulating the first Ethernet packet, so the memory addresses of different chips can be changed. The ranges are set to non-overlapping areas so that different chips can be distinguished.
在一些示例性实施方式中,如果第一芯片不包括第一交换模块,第一芯片和第二芯片之间也不包括交换芯片,则以太网包封装发送子模块403被配置为采用以下方式实现发送第一以太网包:将第一以太网包发送到MAC层,MAC层对第一以太网包进行相应的处理后得到第二以太网包,通过第一芯片的第一以太网传输接口将第二以太网包发送给第二芯片。这种方式中,不需要交换芯片或交换模块来实现第一以太网包的传输的原因是针对拓扑简单的点到点数据传输的情况。也就是说,芯片还包括:第一以太网传输接口405,其被配置为将MAC层输出的第二以太网包发送给第二芯片。In some exemplary embodiments, if the first chip does not include the first switch module, nor does the first chip and the second chip include a switch chip, the Ethernet packet encapsulation sending sub-module 403 is configured to be implemented in the following manner Sending the first Ethernet packet: sending the first Ethernet packet to the MAC layer, and the MAC layer performs corresponding processing on the first Ethernet packet to obtain a second Ethernet packet, and sends the second Ethernet packet through the first Ethernet transmission interface of the first chip. The second Ethernet packet is sent to the second chip. In this manner, the reason why a switch chip or a switch module is not needed to realize the transmission of the first Ethernet packet is for the case of point-to-point data transmission with a simple topology. That is, the chip further includes: the first Ethernet transmission interface 405, which is configured to send the second Ethernet packet output by the MAC layer to the second chip.
在另一些示例性实施方式中,如果第一芯片包括第一交换模块,第一芯片和第二芯片之间不包括交换芯片,则以太网包封装发送子模块403被配置为采用以下方式实现发送第一以太网包:将第一以太网包发送到第一芯片的第一交换模块,第一芯片的第一交换模块将第一以太网包发送到MAC层,MAC层对第一以太网包进行相应的处理后得到第二以太网包,通过第一芯片的第一以太网传输接口将第二以太网包发送给第二芯片。也就是说,芯片还包括第一交换模块406和第二以太网传输接口405。In some other exemplary embodiments, if the first chip includes a first switch module and no switch chip is included between the first chip and the second chip, the Ethernet packet encapsulation sending sub-module 403 is configured to implement sending in the following manner The first Ethernet packet: the first Ethernet packet is sent to the first switching module of the first chip, and the first switching module of the first chip sends the first Ethernet packet to the MAC layer, and the MAC layer responds to the first Ethernet packet. After corresponding processing, a second Ethernet packet is obtained, and the second Ethernet packet is sent to the second chip through the first Ethernet transmission interface of the first chip. That is to say, the chip further includes the first switching module 406 and the second Ethernet transmission interface 405 .
第一交换模块406被配置为将以太网包封装发送子模块403输出的第一以太网包发送到MAC层,由MAC层对第一以太网包进行相应的处理得到第二以太网包。The first switching module 406 is configured to send the first Ethernet packet output by the Ethernet packet encapsulation and sending sub-module 403 to the MAC layer, and the MAC layer performs corresponding processing on the first Ethernet packet to obtain the second Ethernet packet.
第一以太网传输接口405被配置为将MAC层输出的第二以太网包发送给第二芯片。The first Ethernet transport interface 405 is configured to send the second Ethernet packet output by the MAC layer to the second chip.
在另一些示例性实施方式中,如果第一芯片和第二芯片之间包括交换芯片,第一芯片不包括第一交换模块,则以太网包封装发送子模块403被配置为采用以下方式实现发送第一以太网包:将第一以太网包发送到MAC层,MAC层对以太网报进行相应的处理后得到第二以太网包,通过第一芯片的第一以太网传输接口将第二以太网包发送给交换芯片。也就是说,芯片还包括:第一以太网传输接口405,其被配置为将MAC层输出的第二以太网包发送给交换芯片。In other exemplary embodiments, if a switch chip is included between the first chip and the second chip, and the first chip does not include the first switch module, the Ethernet packet encapsulation sending sub-module 403 is configured to implement sending in the following manner The first Ethernet packet: the first Ethernet packet is sent to the MAC layer, and the MAC layer performs corresponding processing on the Ethernet packet to obtain the second Ethernet packet, and the second Ethernet packet is transmitted through the first Ethernet transmission interface of the first chip. The network packet is sent to the switch chip. That is to say, the chip further includes: the first Ethernet transmission interface 405, which is configured to send the second Ethernet packet output by the MAC layer to the switching chip.
交换芯片将第二以太网包发送到第二芯片。The switch chip sends the second Ethernet packet to the second chip.
在一些示例性实施方式中,第一芯片的第一以太网传输接口可以是标准的50或25或10或5Gbps的以太网传输接口,也可以是其他速率的以太网传输接口,本公开实施例对第一以太网传输接口的具体速率不做限定,具体速率的大小也不用于限定本公开实施例的保护范围。In some exemplary implementations, the first Ethernet transmission interface of the first chip may be a standard 50 or 25 or 10 or 5 Gbps Ethernet transmission interface, and may also be an Ethernet transmission interface of other rates. The specific rate of the first Ethernet transmission interface is not limited, and the size of the specific rate is not used to limit the protection scope of the embodiments of the present disclosure.
本公开实施例提供的芯片,在需要发送有效数据时,直接将有效数据封装成第一以太网包,并发送出去,而不需要先将有效数据写入双倍速率(DDR,Double Data Rate),有效的减少了DDR的带宽;传输有效数据过程中也不需要CPU参与,即不需要占用额外的CPU核资源;从而降低了芯片设计的复杂度,有效地减少了芯片的面积和功耗,也就降低了芯片的成本。In the chip provided by the embodiment of the present disclosure, when valid data needs to be sent, the valid data is directly encapsulated into a first Ethernet packet and sent out, without first writing the valid data into Double Data Rate (DDR, Double Data Rate). , effectively reducing the bandwidth of the DDR; the process of transmitting valid data does not require CPU participation, that is, does not require additional CPU core resources; thus reducing the complexity of chip design, effectively reducing chip area and power consumption, It also reduces the cost of the chip.
需要说明的是,芯片上的所有模块和子模块均为硬件实现,具体可以采用硬件描述语言(如Verilog或超高速集成电路硬件描述语言(VHDL,Very-High-Speed Integrated Circuit Hardware Description Language))设计实现,具体的实现电路本公开实施例不做限定,也不用于限定本公开实施例的保护范围。It should be noted that all modules and sub-modules on the chip are implemented in hardware, which can be designed in a hardware description language (such as Verilog or VHDL, Very-High-Speed Integrated Circuit Hardware Description Language) Implementation, specific implementation circuit The embodiments of the present disclosure are not limited, nor are they intended to limit the protection scope of the embodiments of the present disclosure.
图5为本公开另一个实施例提供的芯片的组成框图。FIG. 5 is a block diagram of a chip provided by another embodiment of the present disclosure.
参照图5,本公开另一个实施例提供一种芯片,该芯片包括:至少一个以太网接收模块;每一个以太网接收模块包括:以太网包接收子模块501和数据写入子模块502。5 , another embodiment of the present disclosure provides a chip, the chip includes: at least one Ethernet receiving module; each Ethernet receiving module includes: an Ethernet packet receiving submodule 501 and a data writing submodule 502 .
其中,以太网包接收子模块501被配置为接收第一以太网包;其中,第一以太网包包括:封装头和有效数据。The Ethernet packet receiving sub-module 501 is configured to receive a first Ethernet packet, wherein the first Ethernet packet includes: an encapsulation header and valid data.
数据写入子模块502被配置为当封装头包括:自定义头,自定义头包括:有效数据长度和访问地址时,从第一以太网包中获取有效数据长度和访问地址;其中,访问地址为有效数据在内存中的地址;根据有效数据长度从第一以太网包中获取有效数据,将获取得到的有效数据写入访问地址内。The data writing submodule 502 is configured to obtain the effective data length and the access address from the first Ethernet packet when the encapsulation header includes: a custom header, and the custom header includes: the effective data length and the access address; wherein, the access address is the address of the valid data in the memory; the valid data is obtained from the first Ethernet packet according to the length of the valid data, and the obtained valid data is written into the access address.
在一些示例性实施方式中,如果第二芯片不包括第二交换模块,第一芯片和第二芯片之间也不包括交换芯片,则接收的第一以太网包是指通过第二芯片的第二以太网传输接口接收,并经过第二芯片的MAC层进行对应的处理之后得到的第一以太网包,并且第二芯片的第二以太网传输接口接收的以太网包是第一芯片发送的第二以太网包。也就是说,芯片还包括:第二以太网传输接口503,其被配置为接收第一芯片发送的第二以太网包,将接收的第二以太网包发送给MAC层,由MAC层进行相应的处理后得到第一以太网包,将第一以太网包发送给以太网包接收子模块501。In some exemplary embodiments, if the second chip does not include the second switching module, and the switching chip is not included between the first chip and the second chip, the received first Ethernet packet refers to the first Ethernet packet passing through the second chip. The first Ethernet packet is received by the second Ethernet transmission interface and processed by the MAC layer of the second chip, and the Ethernet packet received by the second Ethernet transmission interface of the second chip is sent by the first chip. Second Ethernet packet. That is to say, the chip further includes: a second Ethernet transmission interface 503, which is configured to receive the second Ethernet packet sent by the first chip, and send the received second Ethernet packet to the MAC layer, and the MAC layer performs corresponding processing After processing, the first Ethernet packet is obtained, and the first Ethernet packet is sent to the Ethernet packet receiving sub-module 501 .
在一些示例性实施方式中,如果第二芯片包括第二交换模块,第一芯片和第二芯片之间不包括交换芯片,则接收的第一以太网包是指通过第二芯片的第二以太网传输接口接收,通过第二芯片的MAC层进行对应的处理,并通过第二芯片的第二交换模块传输之后得到的第一以太网包,并且第二芯片的第二以太网传输接口接收的第一以太网包是第一芯片发送的第二以太网包。也就是说,芯片还包括第二以太网传输接口503和第二交换模块504。In some exemplary embodiments, if the second chip includes a second switch module and no switch chip is included between the first chip and the second chip, the received first Ethernet packet refers to the second Ethernet packet passing through the second chip The network transmission interface receives the first Ethernet packet after corresponding processing by the MAC layer of the second chip, and transmits the first Ethernet packet through the second switching module of the second chip, and the second Ethernet transmission interface of the second chip receives the first Ethernet packet. The first Ethernet packet is the second Ethernet packet sent by the first chip. That is to say, the chip further includes a second Ethernet transmission interface 503 and a second switching module 504 .
第二以太网传输接口503被配置为接收第一芯片发送的第二以太网包,将接收的第 二以太网包发送给MAC层,由MAC层进行相应的处理后得到第一以太网包,将第一以太网发送给第二交换模块504。The second Ethernet transmission interface 503 is configured to receive the second Ethernet packet sent by the first chip, send the received second Ethernet packet to the MAC layer, and the MAC layer performs corresponding processing to obtain the first Ethernet packet, The first Ethernet is sent to the second switching module 504 .
第二交换模块504被配置为将第一以太网包发送给以太网包接收子模块501。The second switching module 504 is configured to send the first Ethernet packet to the Ethernet packet receiving sub-module 501 .
在一些示例性实施方式中,如果第一芯片和第二芯片之间包括交换芯片,第二芯片不包括第二交换模块,则接收的第一以太网包是指通过第二芯片的第二以太网传输接口接收,并通过第二芯片的MAC层进行对应的处理之后得到的第一以太网包,并且第二芯片的第二以太网传输接口接收的以太网包是第一芯片和第二芯片之间的交换芯片发送的第二以太网包。也就是说,芯片还包括:第二以太网传输接口503,其被配置为接收交换芯片发送的第二以太网包,将接收的第二以太网包发送给MAC层,由MAC层进行相应的处理后得到第一以太网包,将第一以太网包发送给以太网包接收子模块501。In some exemplary embodiments, if a switch chip is included between the first chip and the second chip, and the second chip does not include a second switch module, the received first Ethernet packet refers to the second Ethernet packet passing through the second chip. The first Ethernet packet received by the network transmission interface and correspondingly processed by the MAC layer of the second chip, and the Ethernet packets received by the second Ethernet transmission interface of the second chip are the first chip and the second chip. The second Ethernet packet is sent between the switch chips. That is to say, the chip further includes: a second Ethernet transmission interface 503, which is configured to receive the second Ethernet packet sent by the switching chip, and send the received second Ethernet packet to the MAC layer, and the MAC layer performs corresponding processing. After processing, the first Ethernet packet is obtained, and the first Ethernet packet is sent to the Ethernet packet receiving sub-module 501 .
在一些示例性实施方式中,第二芯片的第二以太网传输接口503可以是标准的50或25或10或5Gbps的以太网传输接口,也可以是其他速率的以太网传输接口,本公开实施例对第二以太网传输接口503的具体速率不做限定,具体速率的大小也不用于限定本公开实施例的保护范围。In some exemplary embodiments, the second Ethernet transmission interface 503 of the second chip may be a standard 50 or 25 or 10 or 5 Gbps Ethernet transmission interface, and may also be an Ethernet transmission interface of other rates. The example does not limit the specific rate of the second Ethernet transmission interface 503, and the size of the specific rate is not used to limit the protection scope of the embodiments of the present disclosure.
在一些示例性实施方式中,在以太网包接收子模块501接收到第一以太网包后,如果以太网包接收子模块501来不及处理第一以太网包,则可以将第一以太网包暂时存储到以太网包接收子模块501的RAM中。In some exemplary embodiments, after the Ethernet packet receiving sub-module 501 receives the first Ethernet packet, if the Ethernet packet receiving sub-module 501 is too late to process the first Ethernet packet, the first Ethernet packet may be temporarily Stored in the RAM of the Ethernet packet receiving sub-module 501 .
在一些示例性实施方式中,封装头可以包括自定义头,也可以不包括自定义头。In some exemplary embodiments, the encapsulation header may or may not include a custom header.
在一些示例性实施方式中,自定义头包括:有效数据长度DATA_LEN和访问地址DST_ADDR。In some exemplary embodiments, the custom header includes: effective data length DATA_LEN and access address DST_ADDR.
在一些示例性实施方式中,自定义头还包括:保留字段RESERVE。该保留字段可以用于调整自定义头的长度或填写其他需要关注的信息。In some exemplary embodiments, the custom header further includes: a reserved field RESERVE. This reserved field can be used to adjust the length of the custom header or fill in other information that needs attention.
需要说明的是,自定义头中的有效数据长度DATA_LEN和地址范围DST_ADDR在自定义头中的具体位置可以随意设定,在自定义头中占用的位宽也可以随意设定。It should be noted that the specific positions of the valid data length DATA_LEN and the address range DST_ADDR in the custom header can be set arbitrarily in the custom header, and the bit width occupied in the custom header can also be arbitrarily set.
在一些示例性实施方式中,封装头还包括以下至少之一:以太网头、IP头、UDP头、TCP头。In some exemplary embodiments, the encapsulation header further includes at least one of the following: an Ethernet header, an IP header, a UDP header, and a TCP header.
在一些示例性实施方式中,IP可以是IPV4或IPV6。In some exemplary embodiments, the IP may be IPV4 or IPV6.
在一些示例性实施方式中,自定义头可以承载在任意一层。例如,自定义头可以承载在L2(即数据链路层)或L3(即网络层)或L4(即传输层)之上。In some exemplary embodiments, custom headers may be carried on any layer. For example, custom headers can be carried on top of L2 (ie data link layer) or L3 (ie network layer) or L4 (ie transport layer).
具体的,如果自定义头承载在L2,则第一以太网包的格式为:以太网头+自定义头+有效数据;Specifically, if the custom header is carried on L2, the format of the first Ethernet packet is: Ethernet header + custom header + valid data;
如果自定义头承载在L3,则第一以太网包的格式为:以太网头+IP头+自定义头+有效数据;If the custom header is carried at L3, the format of the first Ethernet packet is: Ethernet header+IP header+custom header+valid data;
如果自定义头承载在L4,则第一以太网包的格式为:以太网头+IP头+UDP头或TCP头+自定义头+有效数据。If the custom header is carried at L4, the format of the first Ethernet packet is: Ethernet header+IP header+UDP header or TCP header+custom header+valid data.
在一些示例性实施方式中,当封装头不包括自定义头时,数据写入子模块502可以直接丢弃接收到的第一以太网包。In some exemplary embodiments, when the encapsulation header does not include a custom header, the data writing sub-module 502 may directly discard the received first Ethernet packet.
在一些示例性实施方式中,芯片还包括:位置偏移信息获取模块505,其被配置为获取自定义头在第一以太网包中的位置偏移信息。In some exemplary embodiments, the chip further includes: a position offset information obtaining module 505, which is configured to obtain position offset information of the custom header in the first Ethernet packet.
相应地,数据写入子模块502被配置为根据位置偏移信息从第一以太网包中获取有效数据长度和访问地址。具体的,可以根据位置偏移信息从第一以太网包中获取自定义头,从自定义头中获取有效长度和访问地址。Correspondingly, the data writing sub-module 502 is configured to obtain the effective data length and the access address from the first Ethernet packet according to the position offset information. Specifically, the user-defined header may be obtained from the first Ethernet packet according to the position offset information, and the effective length and the access address may be obtained from the user-defined header.
在一些示例性实施方式中,位置偏移信息是指自定义头距离第一以太网包的封装头的起始位置的偏移量。In some exemplary embodiments, the position offset information refers to the offset of the custom header from the starting position of the encapsulation header of the first Ethernet packet.
在一些示例性实施方式中,可以从CPU获取自定义头在第一以太网包中的位置偏移信息。In some exemplary embodiments, the position offset information of the custom header in the first Ethernet packet may be obtained from the CPU.
在一些示例性实施方式中,由于目前主流的芯片设计大多基于ARM内核,片上互联采用AXI总线,因此,可以通过AXI总线连接数据写入子模块502和内存,从而实现将AXI总线与以太网传输技术结合起来,实现高效、简单和灵活的直接数据互传。In some exemplary implementations, since most of the current mainstream chip designs are based on ARM cores, and the on-chip interconnection adopts AXI bus, the data writing sub-module 502 and the memory can be connected through the AXI bus, so as to realize the transmission between the AXI bus and the Ethernet Technologies are combined to achieve efficient, simple and flexible direct data transfer.
需要说明的是,随着技术的发展,如果片上互联采用的是其他类型的总线,也可以通过其他类型的总线连接数据写入子模块502和内存。本公开实施例对具体通过什么类型的总线来连接数据写入子模块502和内存不做限定,具体的总线类型也不用于限定本公开实施例的保护范围。It should be noted that, with the development of technology, if other types of buses are used for the on-chip interconnection, data writing to the sub-module 502 and the memory may also be connected through other types of buses. The embodiment of the present disclosure does not limit the specific type of bus used to connect the data writing sub-module 502 and the memory, and the specific bus type is not used to limit the protection scope of the embodiment of the present disclosure.
本公开实施例提供的芯片,在接收到第一以太网包时,直接从第一以太网包中获取有效数据并写入对应的访问地址内,而不需要对第一以太网包进行解析分类,实现逻辑比较简单,从而降低了芯片设计的复杂度,有效地减少了芯片的面积和功耗,也就降低了芯片的成本。The chip provided by the embodiment of the present disclosure, when receiving the first Ethernet packet, directly obtains valid data from the first Ethernet packet and writes it into the corresponding access address, without analyzing and classifying the first Ethernet packet , the implementation logic is relatively simple, thereby reducing the complexity of chip design, effectively reducing the area and power consumption of the chip, and also reducing the cost of the chip.
需要说明的是,芯片上的所有模块和子模块均为硬件实现,具体可以采用硬件描述语言(如Verilog或VHDL)设计实现,具体的实现电路本公开实施例不做限定,也不用于限定本公开实施例的保护范围。It should be noted that all modules and sub-modules on the chip are implemented in hardware, which can be designed and implemented by using a hardware description language (such as Verilog or VHDL). Scope of protection of the embodiments.
本公开另一个实施例提供一种芯片,包括:至少一个上述任意一种以太网发送模块,以及至少一个上述任意一种以太网接收模块。Another embodiment of the present disclosure provides a chip, including: at least one any of the foregoing Ethernet sending modules, and at least one any of the foregoing Ethernet receiving modules.
图6为本公开另一个实施例提供的数据传输系统的组成框图。FIG. 6 is a block diagram of a data transmission system according to another embodiment of the present disclosure.
参照图6,本公开另一个实施例提供一种数据传输系统,该数据传输系统包括第一芯片601和第三芯片602。Referring to FIG. 6 , another embodiment of the present disclosure provides a data transmission system, where the data transmission system includes a first chip 601 and a third chip 602 .
第一芯片601被配置为接收片内总线写访问请求;其中,片内总线写访问请求包括:有效数据;获取封装头的配置信息;根据封装头的配置信息将有效数据封装成第一以太网包,并且发送第一以太网包;其中,第一以太网包包括:封装头和有效数据。The first chip 601 is configured to receive an on-chip bus write access request; wherein, the on-chip bus write access request includes: valid data; obtain configuration information of the package header; package the valid data into a first Ethernet according to the configuration information of the package header packet, and send the first Ethernet packet; wherein, the first Ethernet packet includes: an encapsulation header and valid data.
第三芯片602被配置为接收第一以太网包,将第一以太网包写入内存中随机分配的地址,对第一以太网包进行分类后入列到中央处理器指定的队列。The third chip 602 is configured to receive the first Ethernet packet, write the first Ethernet packet into a randomly assigned address in the memory, classify the first Ethernet packet and enqueue it into a queue designated by the central processing unit.
在一些示例性实施方式中,片内总线写访问请求可以是第一芯片中的其他任意一个数据处理模块(例如,前面提到的SUBSYS)在对数据进行处理之后发起的,有效数据即是对数据进行处理之后得到的,需要传输到第二芯片的数据。也就是说,第一芯片601还被配置为:对数据进行相应的处理得到有效数据,发起片内总线写访问请求。In some exemplary embodiments, the on-chip bus write access request may be initiated by any other data processing module (for example, the aforementioned SUBSYS) in the first chip after processing the data, and the valid data is the The data is obtained after the data is processed and needs to be transmitted to the second chip. That is to say, the first chip 601 is further configured to: perform corresponding processing on the data to obtain valid data, and initiate an on-chip bus write access request.
需要说明的是,第一芯片601在对数据进行处理后,一般会针对处理后的数据发起多次片内总线写访问请求,也就是说,每一次发起的片内总线写访问请求中的有效数据仅仅是处理后的数据中的一小部分。第一芯片601可以定时发起片内总线写访问请求,在接收到片内总线写访问请求后,如果来不及处理片内总线写访问请求,则可以将片内总线写访问请求暂时存储到第一芯片601的RAM中。由于片内总线写访问请求中的有效数据仅仅是处理后的数据中的一小部分,因此,将片内总线写访问请求暂时存储到第一芯片601的RAM中并不会占用太多的存储空间,也就是不需要为数据的传输预留太多的存储空间。It should be noted that, after processing the data, the first chip 601 generally initiates multiple on-chip bus write access requests for the processed data, that is to say, the valid on-chip bus write access request initiated each time is valid. The data is only a small part of the processed data. The first chip 601 can periodically initiate an on-chip bus write access request. After receiving the on-chip bus write access request, if it is too late to process the on-chip bus write access request, it can temporarily store the on-chip bus write access request to the first chip. 601 in RAM. Since the valid data in the on-chip bus write access request is only a small part of the processed data, temporarily storing the on-chip bus write access request in the RAM of the first chip 601 does not take up too much storage Space, that is, there is no need to reserve too much storage space for data transmission.
需要说明的是,每一次发起的片内总线写访问请求中的有效数据的大小可以根据实际情况随意设定,一般情况下可以设置成连接数据处理模块404和以太网发送模块的总线位宽的整数倍。It should be noted that the size of the valid data in each on-chip bus write access request initiated can be arbitrarily set according to the actual situation. Generally, it can be set to be equal to the bit width of the bus connecting the data processing module 404 and the Ethernet sending module. integer multiples.
在一些示例性实施方式中,由于目前主流的芯片设计大多基于ARM内核,片上互联采用AXI总线,因此,可以通过AXI总线发起片内总线写访问请求,即数据处理模块404和以太网发送模块之间通过AXI总线互连,从而实现将AXI总线与以太网传输技术结合起来,实现高效、简单和灵活的直接数据互传。In some exemplary embodiments, since most of the current mainstream chip designs are based on ARM cores, and the on-chip interconnection adopts AXI bus, therefore, an on-chip bus write access request can be initiated through the AXI bus, that is, between the data processing module 404 and the Ethernet sending module. They are interconnected through the AXI bus, so as to realize the combination of the AXI bus and the Ethernet transmission technology to achieve efficient, simple and flexible direct data mutual transmission.
需要说明的是,随着技术的发展,如果片上互联采用的是其他类型的总线,也可以通过其他类型的总线连接数据处理模块404和以太网发送模块。本公开实施例对具体通过什么类型的总线来连接数据处理模块404和以太网发送模块不做限定,具体的总线类型也不用于限定本公开实施例的保护范围。It should be noted that, with the development of technology, if other types of buses are used for the on-chip interconnection, the data processing module 404 and the Ethernet sending module may also be connected through other types of buses. The embodiment of the present disclosure does not limit what type of bus is used to connect the data processing module 404 and the Ethernet sending module, and the specific bus type is not used to limit the protection scope of the embodiment of the present disclosure.
在一些示例性实施方式中,片内总线写访问请求仅包括有效数据。In some example embodiments, the on-chip bus write access request includes only valid data.
在另一些示例性实施方式中,片内总线写访问请求包括:有效数据、有效数据长度和访问地址。In some other exemplary embodiments, the on-chip bus write access request includes: valid data, valid data length and access address.
在一些示例性实施方式中,封装头包括以下至少之一:以太网头、IP头、UDP头、TCP头。In some exemplary embodiments, the encapsulation header includes at least one of the following: an Ethernet header, an IP header, a UDP header, and a TCP header.
在一些示例性实施方式中,IP可以是IPV4或IPV6。In some exemplary embodiments, the IP may be IPV4 or IPV6.
在一些示例性实施方式中,可以从第一芯片的CPU获取封装头的配置信息。In some exemplary embodiments, the configuration information of the package header may be obtained from the CPU of the first chip.
在一些示例性实施方式中,如果第一芯片不包括第一交换模块,第一芯片和第三芯片之间也不包括交换芯片,则第一芯片601被配置为采用以下方式实现发送第一以太网包:将第一以太网包发送到MAC层,MAC层对以太网报进行相应的处理后得到第二以太网包,通过第一芯片的第一以太网传输接口将第二以太网包发送给第三芯片。这种方式中,不需要交换芯片或交换模块来实现第一以太网包的传输的原因是针对拓扑简单的点到点数据传输的情况。In some exemplary implementations, if the first chip does not include the first switching module, nor does the first chip and the third chip include a switching chip, the first chip 601 is configured to implement sending the first Ethernet in the following manner Net packet: send the first Ethernet packet to the MAC layer, the MAC layer obtains the second Ethernet packet after corresponding processing of the Ethernet packet, and sends the second Ethernet packet through the first Ethernet transmission interface of the first chip to the third chip. In this manner, the reason why a switch chip or a switch module is not needed to realize the transmission of the first Ethernet packet is for the case of point-to-point data transmission with a simple topology.
在另一些示例性实施方式中,如果第一芯片包括第一交换模块,第一芯片和第三芯片之间不包括交换芯片,则第一芯片601被配置为采用以下方式实现发送第一以太网包:将第一以太网包发送到第一芯片的第一交换模块,第一芯片的第一交换模块将第一以太网包发送到MAC层,MAC层对第一以太网包进行相应的处理后得到第二以太网包,通过第一芯片的第一以太网传输接口将第二以太网包发送给第三芯片。In some other exemplary embodiments, if the first chip includes a first switch module and no switch chip is included between the first chip and the third chip, the first chip 601 is configured to implement sending the first Ethernet in the following manner Packet: send the first Ethernet packet to the first switching module of the first chip, the first switching module of the first chip sends the first Ethernet packet to the MAC layer, and the MAC layer performs corresponding processing on the first Ethernet packet Then, the second Ethernet packet is obtained, and the second Ethernet packet is sent to the third chip through the first Ethernet transmission interface of the first chip.
在另一些示例性实施方式中,根据本实施例的数据传输系统还包括位于第一芯片和第三芯片之间交换芯片603。在这种情况下,第一芯片601不包括第一交换模块,并且第一芯片601被配置为采用以下方式实现发送第一以太网包:将第一以太网包发送到MAC层,MAC层对以太网报进行相应的处理后得到第二以太网包,通过第一芯片的第一以太网传输接口将第二以太网包发送给交换芯片603。In other exemplary implementations, the data transmission system according to this embodiment further includes an exchange chip 603 located between the first chip and the third chip. In this case, the first chip 601 does not include the first switching module, and the first chip 601 is configured to implement the sending of the first Ethernet packet in the following manner: the first Ethernet packet is sent to the MAC layer, and the MAC layer pairs After the Ethernet packet is processed correspondingly, a second Ethernet packet is obtained, and the second Ethernet packet is sent to the switching chip 603 through the first Ethernet transmission interface of the first chip.
交换芯片603被配置为将第二以太网包发送到第三芯片。 Switch chip 603 is configured to send the second Ethernet packet to the third chip.
在一些示例性实施方式中,第一芯片的第一以太网传输接口可以是标准的50或25或10或5Gbps的以太网传输接口,也可以是其他速率的以太网传输接口,本公开实施例对第一以太网传输接口的具体速率不做限定,具体速率的大小也不用于限定本公开实施例的保护范围。In some exemplary implementations, the first Ethernet transmission interface of the first chip may be a standard 50 or 25 or 10 or 5 Gbps Ethernet transmission interface, and may also be an Ethernet transmission interface of other rates. The specific rate of the first Ethernet transmission interface is not limited, and the size of the specific rate is not used to limit the protection scope of the embodiments of the present disclosure.
本公开实施例提供的数据传输系统,在需要发送有效数据时,直接将有效数据封装成第一以太网包,并发送出去,而不需要先将有效数据写入双倍速率(DDR,Double Data Rate),有效的减少了DDR的带宽;传输有效数据过程中也不需要CPU参与,即不需要占用额外的CPU核资源;从而降低了芯片设计的复杂度,有效地减少了芯片的面积和功耗,也就降低了芯片的成本。In the data transmission system provided by the embodiments of the present disclosure, when valid data needs to be sent, the valid data is directly encapsulated into a first Ethernet packet and sent out, without first writing the valid data into a double rate (DDR, Double Data Packet). Rate), effectively reducing the bandwidth of DDR; no CPU participation is required in the process of transmitting valid data, that is, no additional CPU core resources are occupied; thus reducing the complexity of chip design and effectively reducing the area and power of the chip. consumption, which reduces the cost of the chip.
图7为本公开另一个实施例提供的数据传输系统的组成框图。FIG. 7 is a block diagram of a data transmission system according to another embodiment of the present disclosure.
参照图7,本公开另一个实施例提供一种数据传输系统,包括第一芯片601和第二芯片701。Referring to FIG. 7 , another embodiment of the present disclosure provides a data transmission system including a first chip 601 and a second chip 701 .
第一芯片601被配置为接收片内总线写访问请求;其中,片内总线写访问请求包括:有效数据、有效数据长度和访问地址;获取封装头的配置信息;根据封装头的配置信息将有效数据封装成第一以太网包,并且发送第一以太网包;其中,第一以太网包包括:封装头和有效数据;封装头包括:自定义头,自定义头包括:有效数据长度和访问地址。The first chip 601 is configured to receive an on-chip bus write access request; wherein, the on-chip bus write access request includes: valid data, valid data length and access address; obtain configuration information of the package header; The data is encapsulated into a first Ethernet packet, and the first Ethernet packet is sent; wherein, the first Ethernet packet includes: an encapsulation header and valid data; the encapsulation header includes: a custom header, and the custom header includes: valid data length and access address.
第二芯片701被配置为接收第一以太网包;其中,第一以太网包包括:封装头和有效数据;当封装头包括:自定义头,自定义头包括:有效数据长度和访问地址时,从第一以太网包中获取有效数据长度和访问地址;根据有效数据长度从第一以太网包中获取有效数据,将获取得到的有效数据写入访问地址内。The second chip 701 is configured to receive a first Ethernet packet; wherein the first Ethernet packet includes: an encapsulation header and valid data; when the encapsulation header includes: a custom header, and the custom header includes: an effective data length and an access address , obtain the valid data length and the access address from the first Ethernet packet; obtain valid data from the first Ethernet packet according to the valid data length, and write the obtained valid data into the access address.
在一些示例性实施方式中,写访问请求可以是第一芯片中的其他任意一个数据处理模块(例如,前面提到的SUBSYS)在对数据进行处理之后发起的,有效数据即是对数据进行处理之后得到的,需要传输到第二芯片的数据。也就是说,第一芯片601还被配置为:对数据进行相应的处理得到有效数据,发起写访问请求。In some exemplary embodiments, the write access request may be initiated by any other data processing module (for example, the aforementioned SUBSYS) in the first chip after processing the data, and valid data is the processing of the data. After that, the data that needs to be transmitted to the second chip is obtained. That is to say, the first chip 601 is further configured to: perform corresponding processing on the data to obtain valid data, and initiate a write access request.
需要说明的是,第一芯片601在对数据进行处理后,一般会针对处理后的数据发起多次片内总线写访问请求,也就是说,每一次发起的片内总线写访问请求中的有效数据仅仅是处理后的数据中的一小部分,第一芯片601可以定时发起片内总线写访问请求,在接收到片内总线写访问请求后,如果来不及处理片内总线写访问请求,则可以将片内总线写访问请求暂时存储到第一芯片601的RAM中,由于片内总线写访问请求中的有效数据仅仅是处理后的数据中的一小部分,因此,将片内总线写访问请求暂时存储到第一芯片601的RAM中并不会占用太多的存储空间,也就是不需要为数据的传输预留太 多的存储空间。It should be noted that, after processing the data, the first chip 601 generally initiates multiple on-chip bus write access requests for the processed data, that is to say, the valid on-chip bus write access request initiated each time is valid. The data is only a small part of the processed data. The first chip 601 can periodically initiate an on-chip bus write access request. After receiving the on-chip bus write access request, if it is too late to process the on-chip bus write access request, it can The on-chip bus write access request is temporarily stored in the RAM of the first chip 601. Since the valid data in the on-chip bus write access request is only a small part of the processed data, the on-chip bus write access request is Temporarily storing in the RAM of the first chip 601 does not take up too much storage space, that is, it does not need to reserve too much storage space for data transmission.
在一些示例性实施方式中,自定义头还包括:保留字段RESERVE。该保留字段可以用于调整自定义头的长度或填写其他需要关注的信息。In some exemplary embodiments, the custom header further includes: a reserved field RESERVE. This reserved field can be used to adjust the length of the custom header or fill in other information that needs attention.
需要说明的是,自定义头中的有效数据长度DATA_LEN和访问地址DST_ADDR在自定义头中的具体位置可以随意设定,在自定义头中占用的位宽也可以随意设定。It should be noted that the specific positions of the valid data length DATA_LEN and the access address DST_ADDR in the custom header in the custom header can be arbitrarily set, and the bit width occupied in the custom header can also be arbitrarily set.
在一些示例性实施方式中,封装头还包括以下至少之一:以太网头、IP头、UDP头、TCP头。In some exemplary embodiments, the encapsulation header further includes at least one of the following: an Ethernet header, an IP header, a UDP header, and a TCP header.
在一些示例性实施方式中,IP可以是IPV4或IPV6。In some exemplary embodiments, the IP may be IPV4 or IPV6.
在一些示例性实施方式中,可以从第一芯片的CPU获取封装头的配置信息。In some exemplary embodiments, the configuration information of the package header may be obtained from the CPU of the first chip.
在一些示例性实施方式中,自定义头可以承载在任意一层。例如,自定义头可以承载在L2(即数据链路层)或L3(即网络层)或L4(即传输层)之上。In some exemplary embodiments, custom headers may be carried on any layer. For example, custom headers can be carried on top of L2 (ie data link layer) or L3 (ie network layer) or L4 (ie transport layer).
具体的,如果自定义头承载在L2,则封装头的格式为:以太网头+自定义头;那么,封装头的配置信息包括:以太网头的配置信息和自定义头的配置信息;Specifically, if the custom header is carried on L2, the format of the encapsulation header is: Ethernet header + custom header; then, the configuration information of the encapsulation header includes: configuration information of the Ethernet header and configuration information of the custom header;
如果自定义头承载在L3,则封装头的格式为:以太网头+IP头+自定义头;那么,封装头的配置信息包括:以太网头的配置信息、IP头的配置信息和自定义头的配置信息;If the custom header is carried at L3, the format of the encapsulation header is: Ethernet header + IP header + custom header; then, the configuration information of the encapsulation header includes: configuration information of the Ethernet header, configuration information of the IP header, and custom header header configuration information;
如果自定义头承载在L4,则封装头的格式为:以太网头+IP头+UDP头或TCP头+自定义头;那么封装头的配置信息包括:以太网头的配置信息、IP头的配置信息、UDP头的配置信息或TCP头的配置信息、自定义头的配置信息。If the custom header is carried at L4, the format of the encapsulation header is: Ethernet header + IP header + UDP header or TCP header + custom header; then the configuration information of the encapsulation header includes: configuration information of the Ethernet header, configuration information of the IP header Configuration information, configuration information of UDP header or configuration information of TCP header, configuration information of custom header.
在一些示例性实施方式中,以太网头的配置信息包括:MAC目的地址、MAC源地址,以太网类型(EtherType)字段。In some exemplary embodiments, the configuration information of the Ethernet header includes: a MAC destination address, a MAC source address, and an EtherType (EtherType) field.
IP头的配置信息包括:IP头类型(如4表示IPV4,6表示IPV6),IP头长度以及具体的IP头字段内容,这里不做详细描述;配置IPV4头的格式和内容符合RFC791协议,其中,Total Length字段和HeaderChecksum字段配置为0即可,由第一芯片中的以太网发送模块进行更新;配置的IPV6头的格式和内容符合RFC8200协议,其中,PayloadLength配置为0即可,由第一芯片中的以太网发送模块进行更新。The configuration information of the IP header includes: IP header type (such as 4 for IPV4, 6 for IPV6), IP header length and specific IP header field content, which will not be described in detail here; the format and content of the configuration IPV4 header conform to the RFC791 protocol, where , the Total Length field and the HeaderChecksum field can be set to 0, which is updated by the Ethernet sending module in the first chip; the format and content of the configured IPV6 header conform to the RFC8200 protocol, and the PayloadLength can be set to 0, and the first The Ethernet sending module in the chip is updated.
配置的UDP头的格式和内容符合RFC768协议,其中,Length和Checksum字段配置为0,由第一芯片中的以太网发送模块进行更新。The format and content of the configured UDP header conform to the RFC768 protocol, wherein the Length and Checksum fields are configured as 0, and are updated by the Ethernet sending module in the first chip.
TCP头的配置信息符合RFC793协议。The configuration information of the TCP header conforms to the RFC793 protocol.
自定义头的配置信息包括:自定头的长度,预留字段,DATA_LEN和DST_ADDR,其中DATA_LEN和DST_ADDR配置为0,由第一芯片中的以太网发送模块进行更新。The configuration information of the custom header includes: the length of the custom header, reserved fields, DATA_LEN and DST_ADDR, wherein DATA_LEN and DST_ADDR are configured to be 0, and are updated by the Ethernet sending module in the first chip.
在一些示例性实施方式中,自定义头可以承载在任意一层。例如,自定义头可以承载在L2(即数据链路层)或L3(即网络层)或L4(即传输层)之上。In some exemplary embodiments, custom headers may be carried on any layer. For example, custom headers can be carried on top of L2 (ie data link layer) or L3 (ie network layer) or L4 (ie transport layer).
具体的,如果自定义头承载在L2,则第一以太网包的格式为:以太网头+自定义头+有效数据;Specifically, if the custom header is carried on L2, the format of the first Ethernet packet is: Ethernet header + custom header + valid data;
如果自定义头承载在L3,则第一以太网包的格式为:以太网头+IP头+自定义头+有效数据;If the custom header is carried at L3, the format of the first Ethernet packet is: Ethernet header+IP header+custom header+valid data;
如果自定义头承载在L4,则第一以太网包的格式为:以太网头+IP头+UDP头或TCP 头+自定义头+有效数据。If the custom header is carried at L4, the format of the first Ethernet packet is: Ethernet header+IP header+UDP header or TCP header+custom header+valid data.
在一些示例性实施方式中,第一芯片601被配置为采用以下方式实现根据封装头的配置信息将有效数据封装成第一以太网包:根据访问地址选择用于封装第一以太网包的以太网头、IP头、UDP头或TCP头中的至少之一,将选择的以太网头、IP头、UDP头或TCP头中的至少之一和自定义头,以及有效数据封装成第一以太网包。In some exemplary embodiments, the first chip 601 is configured to implement the encapsulation of valid data into a first Ethernet packet according to the configuration information of the encapsulation header in the following manner: selecting an Ethernet packet for encapsulating the first Ethernet packet according to an access address At least one of the network header, IP header, UDP header or TCP header, and at least one of the selected Ethernet header, IP header, UDP header or TCP header and the custom header, and the valid data are encapsulated into the first Ethernet header Net package.
在一些示例性实施方式中,第一芯片601被配置为采用以下方式实现根据访问地址选择用于封装第一以太网包的以太网头、IP头、UDP头或TCP头中的至少之一:在预先设置的用于封装第一以太网包的以太网头、IP头、UDP头或TCP头中的至少之一,和地址范围之间的对应关系中,查找访问地址所在的地址范围对应的用于封装第一以太网包的以太网头、IP头、UDP头或TCP头中的至少之一。In some exemplary embodiments, the first chip 601 is configured to select at least one of an Ethernet header, an IP header, a UDP header or a TCP header for encapsulating the first Ethernet packet according to the access address in the following manner: In the preset correspondence between at least one of the Ethernet header, IP header, UDP header, or TCP header used to encapsulate the first Ethernet packet and the address range, search for the address corresponding to the address range where the access address is located. At least one of an Ethernet header, an IP header, a UDP header, or a TCP header for encapsulating the first Ethernet packet.
需要说明的是,不同的地址范围对应的用于封装第一以太网包的以太网头、IP头、UDP头或TCP头中的至少之一中的MAC地址和IP地址不同。It should be noted that different address ranges correspond to different MAC addresses and IP addresses in at least one of the Ethernet header, IP header, UDP header or TCP header used to encapsulate the first Ethernet packet.
需要说明的是,由于不同芯片之间的MAC地址和IP地址不同,然而,芯片内部在封装第一以太网包时并无法获知芯片的MAC地址和IP地址,那么可以将不同芯片的内存的地址范围设置成不重叠的区域,从而可以区分不同的芯片。It should be noted that since the MAC address and IP address of different chips are different, however, the chip cannot know the MAC address and IP address of the chip when encapsulating the first Ethernet packet, so the memory addresses of different chips can be changed. The ranges are set to non-overlapping areas so that different chips can be distinguished.
在一些示例性实施方式中,如果第一芯片不包括第一交换模块,第一芯片和第二芯片之间也不包括交换芯片,则第一芯片601被配置为采用以下方式实现发送第一以太网包:将第一以太网包发送到MAC层,MAC层对以太网报进行相应的处理后得到第二以太网包,通过第一芯片的第一以太网传输接口将第二以太网包发送给第二芯片。这种方式中,不需要交换芯片或交换模块来实现第一以太网包的传输的原因是针对拓扑简单的点到点数据传输的情况。In some exemplary embodiments, if the first chip does not include the first switch module, and neither does the first chip and the second chip include a switch chip, the first chip 601 is configured to implement sending the first Ethernet in the following manner Net packet: send the first Ethernet packet to the MAC layer, the MAC layer obtains the second Ethernet packet after corresponding processing of the Ethernet packet, and sends the second Ethernet packet through the first Ethernet transmission interface of the first chip to the second chip. In this manner, the reason why a switch chip or a switch module is not needed to realize the transmission of the first Ethernet packet is for the case of point-to-point data transmission with a simple topology.
在另一些示例性实施方式中,如果第一芯片包括第一交换模块,第一芯片和第二芯片之间不包括交换芯片,则第一芯片601被配置为采用以下方式实现发送第一以太网包:将第一以太网包发送到第一芯片的第一交换模块,第一芯片的第一交换模块将第一以太网包发送到MAC层,MAC层对第一以太网包进行相应的处理后得到第二以太网包,通过第一芯片的第一以太网传输接口将第二以太网包发送给第二芯片。In some other exemplary embodiments, if the first chip includes a first switch module and no switch chip is included between the first chip and the second chip, the first chip 601 is configured to implement sending the first Ethernet in the following manner Packet: send the first Ethernet packet to the first switching module of the first chip, the first switching module of the first chip sends the first Ethernet packet to the MAC layer, and the MAC layer performs corresponding processing on the first Ethernet packet Then, the second Ethernet packet is obtained, and the second Ethernet packet is sent to the second chip through the first Ethernet transmission interface of the first chip.
在另一些示例性实施方式中,根据本实施例的数据传输系统还包括位于第一芯片601和第二芯片701之间的交换芯片603。在这种情况下,第一芯片601不包括第一交换模块,且第一芯片601被配置为采用以下方式实现发送第一以太网包:将第一以太网包发送到MAC层,MAC层对以太网报进行相应的处理后得到第二以太网包,通过第一芯片的第一以太网传输接口将第二以太网包发送给交换芯片603。In other exemplary embodiments, the data transmission system according to this embodiment further includes a switch chip 603 located between the first chip 601 and the second chip 701 . In this case, the first chip 601 does not include the first switching module, and the first chip 601 is configured to implement the sending of the first Ethernet packet in the following manner: sending the first Ethernet packet to the MAC layer, and the MAC layer to After the Ethernet packet is processed correspondingly, a second Ethernet packet is obtained, and the second Ethernet packet is sent to the switching chip 603 through the first Ethernet transmission interface of the first chip.
交换芯片603被配置为对第二以太网包将第二以太网包发送到第二芯片。The switch chip 603 is configured to send the second Ethernet packet to the second chip for the second Ethernet packet.
在一些示例性实施方式中,第一芯片的第一以太网传输接口可以是标准的50或25或10或5Gbps的以太网传输接口,也可以是其他速率的以太网传输接口,本公开实施例对第一以太网传输接口的具体速率不做限定,具体速率的大小也不用于限定本公开实施例的保护范围。In some exemplary implementations, the first Ethernet transmission interface of the first chip may be a standard 50 or 25 or 10 or 5 Gbps Ethernet transmission interface, and may also be an Ethernet transmission interface of other rates. The specific rate of the first Ethernet transmission interface is not limited, and the size of the specific rate is not used to limit the protection scope of the embodiments of the present disclosure.
在一些示例性实施方式中,如果第二芯片不包括第二交换模块,第一芯片和第二芯 片之间也不包括交换芯片,则接收的第一以太网包是指通过第二芯片的第二以太网传输接口接收,并经过第二芯片的MAC层进行对应的处理之后得到的第一以太网包,并且第二芯片的第二以太网传输接口接收的以太网包是第一芯片发送的第二以太网包。In some exemplary embodiments, if the second chip does not include the second switching module, and the switching chip is not included between the first chip and the second chip, the received first Ethernet packet refers to the first Ethernet packet passing through the second chip. The first Ethernet packet is received by the second Ethernet transmission interface and processed by the MAC layer of the second chip, and the Ethernet packet received by the second Ethernet transmission interface of the second chip is sent by the first chip. Second Ethernet packet.
在一些示例性实施方式中,如果第二芯片包括第二交换模块,第一芯片和第二芯片之间不包括交换芯片,则接收的第一以太网包是指通过第二芯片的第二以太网传输接口接收,通过第二芯片的MAC层进行对应的处理,并通过第二芯片的第二交换模块传输之后得到的第一以太网包,并且第二芯片的第二以太网传输接口接收的以太网包是第一芯片发送的第二以太网包。In some exemplary embodiments, if the second chip includes a second switch module and no switch chip is included between the first chip and the second chip, the received first Ethernet packet refers to the second Ethernet packet passing through the second chip The network transmission interface receives the first Ethernet packet after corresponding processing by the MAC layer of the second chip, and transmits the first Ethernet packet through the second switching module of the second chip, and the second Ethernet transmission interface of the second chip receives the first Ethernet packet. The Ethernet packet is the second Ethernet packet sent by the first chip.
在一些示例性实施方式中,如果第一芯片和第二芯片之间包括交换芯片,第二芯片不包括第二交换模块,则接收的第一以太网包是指通过第二芯片的第二以太网传输接口接收,并通过第二芯片的MAC层进行对应的处理之后得到的第一以太网包,并且第二芯片的第二以太网传输接口接收的以太网包是第一芯片和第二芯片之间的交换芯片发送的第二以太网包。In some exemplary embodiments, if a switch chip is included between the first chip and the second chip, and the second chip does not include a second switch module, the received first Ethernet packet refers to the second Ethernet packet passing through the second chip. The first Ethernet packet received by the network transmission interface and correspondingly processed by the MAC layer of the second chip, and the Ethernet packets received by the second Ethernet transmission interface of the second chip are the first chip and the second chip. The second Ethernet packet is sent between the switch chips.
在一些示例性实施方式中,第二芯片的第二以太网传输接口503可以是标准的50或25或10或5Gbps的以太网传输接口,也可以是其他速率的以太网传输接口,本公开实施例对第二以太网传输接口503的具体速率不做限定,具体速率的大小也不用于限定本公开实施例的保护范围。In some exemplary embodiments, the second Ethernet transmission interface 503 of the second chip may be a standard 50 or 25 or 10 or 5 Gbps Ethernet transmission interface, and may also be an Ethernet transmission interface of other rates. The example does not limit the specific rate of the second Ethernet transmission interface 503, and the size of the specific rate is not used to limit the protection scope of the embodiments of the present disclosure.
在一些示例性实施方式中,在第二芯片701接收到第一以太网包后,如果第二芯片701来不及处理第一以太网包,则可以将第一以太网包暂时存储到第二芯片701的RAM中。In some exemplary embodiments, after the second chip 701 receives the first Ethernet packet, if the second chip 701 is too late to process the first Ethernet packet, the first Ethernet packet may be temporarily stored to the second chip 701 in the RAM.
在一些示例性实施方式中,当封装头不包括自定义头时,第二芯片701可以直接丢弃接收到的第一以太网包。In some exemplary embodiments, when the encapsulation header does not include the custom header, the second chip 701 may directly discard the received first Ethernet packet.
在一些示例性实施方式中,第二芯片701还被配置为:获取自定义头在第一以太网包中的位置偏移信息,并且根据位置偏移信息从第一以太网包中获取有效数据长度和访问地址。具体的,第二芯片701可以根据位置偏移信息从第一以太网包中获取自定义头,从自定义头中获取有效长度和访问地址。In some exemplary embodiments, the second chip 701 is further configured to: obtain position offset information of the custom header in the first Ethernet packet, and obtain valid data from the first Ethernet packet according to the position offset information length and access address. Specifically, the second chip 701 can obtain the custom header from the first Ethernet packet according to the position offset information, and obtain the effective length and the access address from the custom header.
在一些示例性实施方式中,位置偏移信息是指自定义头距离第一以太网包的封装头的起始位置的偏移量。In some exemplary embodiments, the position offset information refers to the offset of the custom header from the starting position of the encapsulation header of the first Ethernet packet.
在一些示例性实施方式中,可以从CPU获取自定义头在第一以太网包中的位置偏移信息。In some exemplary embodiments, the position offset information of the custom header in the first Ethernet packet may be acquired from the CPU.
本公开实施例提供的数据传输系统,在需要发送有效数据时,直接将有效数据封装成第一以太网包,并发送出去,而不需要先将有效数据写入双倍速率(DDR,Double Data Rate),有效的减少了DDR的带宽;传输有效数据过程中也不需要CPU参与,即不需要占用额外的CPU核资源;从而降低了芯片设计的复杂度,有效地减少了芯片的面积和功耗,也就降低了芯片的成本。在接收到第一以太网包时,直接从第一以太网包中获取有效数据并写入对应的访问地址内,而不需要对第一以太网包进行解析分类,实现逻辑比较简单,从而降低了芯片设计的复杂度,有效地减少了芯片的面积和功耗,也就降 低了芯片的成本。In the data transmission system provided by the embodiments of the present disclosure, when valid data needs to be sent, the valid data is directly encapsulated into a first Ethernet packet and sent out, without first writing the valid data into a double rate (DDR, Double Data Packet). Rate), effectively reducing the bandwidth of DDR; no CPU participation is required in the process of transmitting valid data, that is, no additional CPU core resources are occupied; thus reducing the complexity of chip design and effectively reducing the area and power of the chip. consumption, which reduces the cost of the chip. When the first Ethernet packet is received, valid data is directly obtained from the first Ethernet packet and written into the corresponding access address, without the need to parse and classify the first Ethernet packet, and the implementation logic is relatively simple, thereby reducing the cost of The complexity of chip design is reduced, the area and power consumption of the chip are effectively reduced, and the cost of the chip is also reduced.
本公开另一个实施例提供一种计算机可读介质,该计算机可读介质存储有计算机程序,该计算机程序用于执行上述任意一种数据传输方法。Another embodiment of the present disclosure provides a computer-readable medium, where a computer program is stored in the computer-readable medium, and the computer program is used to execute any one of the foregoing data transmission methods.
本公开另一个实施例提供一种芯片,该芯片包括CPU和计算机可读介质,该计算机可读介质存储有计算机程序,该计算机程序在被该CPU运行时执行上述任意一种数据传输方法。Another embodiment of the present disclosure provides a chip, where the chip includes a CPU and a computer-readable medium, where the computer-readable medium stores a computer program, and the computer program executes any one of the above data transmission methods when executed by the CPU.
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为计算机程序、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为硬件,或者被实施为电路,如专用集成电路。特别地,除非特别指出或存在矛盾,否则上文中所公开的系统、子系统、芯片、模块、子模块均可以被实施为电路,如集成电路。上述计算机程序可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其它数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储器、或者可以用于存储期望的信息并且可以被计算机访问的任何其它的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其它传输机制之类的调制数据信号中的其它数据,并且可包括任何信息递送介质。Those of ordinary skill in the art can understand that all or some of the steps in the methods disclosed above, functional modules/units in the system, and the apparatus can be implemented as computer programs, firmware, hardware, and appropriate combinations thereof. In a hardware implementation, the division between functional modules/units mentioned in the above description does not necessarily correspond to the division of physical components; for example, one physical component may have multiple functions, or one function or step may be composed of several physical components Components execute cooperatively. Some or all of the physical components may be implemented as hardware, or as circuits, such as application specific integrated circuits. In particular, unless otherwise indicated or contradicted, the systems, subsystems, chips, modules, sub-modules disclosed above may all be implemented as circuits, such as integrated circuits. The computer program described above may be distributed on computer-readable media, which may include computer storage media (or non-transitory media) and communication media (or transitory media). As is known to those of ordinary skill in the art, the term computer storage media includes both volatile and nonvolatile implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data flexible, removable and non-removable media. Computer storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disk (DVD) or other optical disk storage, magnetic cartridges, magnetic tape, magnetic disk storage or other magnetic storage, or may Any other medium that stores the desired information and can be accessed by a computer. In addition, communication media typically embodies computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism, and can include any information delivery media, as is well known to those of ordinary skill in the art .
本文已经公开了示例实施例,并且虽然采用了具体术语,但它们仅用于并仅应当被解释为一般说明性含义,并且不用于限制的目的。在一些实例中,对本领域技术人员显而易见的是,除非另外明确指出,否则可单独使用与特定实施例/实施方式相结合描述的特征、特性和/或元素,或可与其它实施例/实施方式相结合描述的特征、特性和/或元件组合使用。因此,本领域技术人员将理解,在不脱离由所附的权利要求阐明的本公开的范围的情况下,可进行各种形式和细节上的改变。Example embodiments have been disclosed herein, and although specific terms are employed, they are used and should only be construed in a general descriptive sense and not for purposes of limitation. In some instances, it will be apparent to those skilled in the art that features, characteristics and/or elements described in connection with a particular embodiment/implementation may be used alone or in combination with other embodiments/implementations unless expressly stated otherwise. Features, characteristics and/or elements described in combination are used in combination. Accordingly, it will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from the scope of the present disclosure as set forth in the appended claims.

Claims (15)

  1. 一种数据传输方法,应用于第一芯片,该方法包括:A data transmission method applied to a first chip, the method comprising:
    接收片内总线写访问请求;其中,所述片内总线写访问请求包括:有效数据;Receive an on-chip bus write access request; wherein, the on-chip bus write access request includes: valid data;
    获取封装头的配置信息;以及Get configuration information for the wrapper header; and
    根据所述封装头的配置信息将所述有效数据封装成第一以太网包,并且发送所述第一以太网包;其中,所述第一以太网包包括:所述封装头和所述有效数据。The valid data is encapsulated into a first Ethernet packet according to the configuration information of the encapsulation header, and the first Ethernet packet is sent; wherein the first Ethernet packet includes: the encapsulation header and the valid data data.
  2. 根据权利要求1所述的数据传输方法,其中,所述片内总线写访问请求还包括:访问地址和有效数据长度;其中,所述访问地址为所述有效数据在第二芯片的内存中的地址;The data transmission method according to claim 1, wherein the on-chip bus write access request further comprises: an access address and a valid data length; wherein, the access address is the address of the valid data in the memory of the second chip address;
    所述封装头包括:自定义头,所述自定义头包括:所述有效数据长度和所述访问地址。The encapsulation header includes: a custom header, and the custom header includes: the effective data length and the access address.
  3. 根据权利要求2所述的数据传输方法,其中,所述自定义头还包括:保留字段。The data transmission method according to claim 2, wherein the custom header further comprises: a reserved field.
  4. 根据权利要求2所述的数据传输方法,其中,所述封装头还包括以下至少之一:The data transmission method according to claim 2, wherein the encapsulation header further comprises at least one of the following:
    以太网头、互联网协议头、用户数据报协议头、传输控制协议头。Ethernet header, Internet Protocol header, User Datagram Protocol header, Transmission Control Protocol header.
  5. 一种数据传输方法,应用于第二芯片,该方法包括:A data transmission method applied to a second chip, the method comprising:
    接收第一以太网包;其中,所述第一以太网包包括:封装头和有效数据;receiving a first Ethernet packet; wherein, the first Ethernet packet includes: an encapsulation header and valid data;
    当所述封装头包括:自定义头,且所述自定义头包括:有效数据长度和访问地址时,从所述第一以太网包中获取所述有效数据长度和所述访问地址;其中,所述访问地址为所述有效数据在所述第二芯片的内存中的地址;以及When the encapsulation header includes: a custom header, and the custom header includes: an effective data length and an access address, the effective data length and the access address are obtained from the first Ethernet packet; wherein, The access address is the address of the valid data in the memory of the second chip; and
    根据所述有效数据长度从所述第一以太网包中获取所述有效数据,将获取得到的所述有效数据写入所述访问地址内。The valid data is obtained from the first Ethernet packet according to the valid data length, and the obtained valid data is written into the access address.
  6. 根据权利要求5所述的数据传输方法,其中,在所述从第一以太网包中获取有效数据长度和访问地址的步骤之前,该方法还包括:获取所述自定义头在所述第一以太网包中的位置偏移信息;并且The data transmission method according to claim 5, wherein, before the step of obtaining the effective data length and the access address from the first Ethernet packet, the method further comprises: obtaining the user-defined header in the first Ethernet packet. position offset information in the Ethernet packet; and
    所述从第一以太网包中获取有效数据长度和访问地址的步骤包括:根据所述位置偏移信息从所述第一以太网包中获取所述有效数据长度和所述访问地址。The step of acquiring the effective data length and the access address from the first Ethernet packet includes: acquiring the effective data length and the access address from the first Ethernet packet according to the position offset information.
  7. 一种芯片,包括:至少一个以太网发送模块;每一个所述以太网发送模块包括:片内总线写访问请求接收子模块、配置信息获取子模块和以太网包封装发送子模块;A chip, comprising: at least one Ethernet transmission module; each of the Ethernet transmission modules includes: an on-chip bus write access request receiving submodule, a configuration information acquiring submodule, and an Ethernet packet encapsulation sending submodule;
    其中,所述片内总线写访问请求接收子模块被配置为接收片内总线写访问请求;其中,所述片内总线写访问请求包括:有效数据;Wherein, the on-chip bus write access request receiving sub-module is configured to receive the on-chip bus write access request; wherein, the on-chip bus write access request includes: valid data;
    所述配置信息获取子模块被配置为获取封装头的配置信息;并且The configuration information obtaining submodule is configured to obtain configuration information of the encapsulation header; and
    所述以太网包封装发送子模块被配置为根据所述封装头的配置信息将所述有效数据封装成第一以太网包,并且发送所述第一以太网包;其中,所述第一以太网包包括:所述封装头和所述有效数据。The Ethernet packet encapsulation and sending submodule is configured to encapsulate the valid data into a first Ethernet packet according to the configuration information of the encapsulation header, and send the first Ethernet packet; wherein the first Ethernet packet is The net packet includes: the encapsulation header and the valid data.
  8. 根据权利要求7所述的芯片,其中,所述片内总线写访问请求还包括:访问地址和有效数据长度;其中,所述访问地址为所述有效数据在第二芯片的内存中的地址;The chip according to claim 7, wherein the on-chip bus write access request further comprises: an access address and a valid data length; wherein, the access address is an address of the valid data in the memory of the second chip;
    所述封装头包括:自定义头,所述自定义头包括:所述有效数据长度和所述访问地址。The encapsulation header includes: a custom header, and the custom header includes: the effective data length and the access address.
  9. 一种芯片,包括:至少一个以太网接收模块;每一个所述以太网接收模块包括:以太网包接收子模块和数据写入子模块;A chip, comprising: at least one Ethernet receiving module; each of the Ethernet receiving modules includes: an Ethernet packet receiving submodule and a data writing submodule;
    其中,所述以太网包接收子模块被配置为接收第一以太网包;其中,所述第一以太网包 包括:封装头和有效数据;Wherein, the Ethernet packet receiving submodule is configured to receive the first Ethernet packet; Wherein, the first Ethernet packet includes: an encapsulation header and valid data;
    所述数据写入子模块被配置为:The data writing submodule is configured to:
    当所述封装头包括:自定义头,且所述自定义头包括:有效数据长度和访问地址时,从所述第一以太网包中获取所述有效数据长度和所述访问地址;其中,所述访问地址为所述有效数据在第二芯片的内存中的地址;并且When the encapsulation header includes: a custom header, and the custom header includes: an effective data length and an access address, the effective data length and the access address are obtained from the first Ethernet packet; wherein, The access address is the address of the valid data in the memory of the second chip; and
    根据所述有效数据长度从所述第一以太网包中获取有效数据,将获取得到的所述有效数据写入所述访问地址内。Obtain valid data from the first Ethernet packet according to the valid data length, and write the obtained valid data into the access address.
  10. 根据权利要求9所述的芯片,其中,所述以太网接收模块还包括:位置偏移信息获取子模块;The chip according to claim 9, wherein the Ethernet receiving module further comprises: a position offset information acquisition sub-module;
    所述位置偏移信息获取子模块被配置为获取所述自定义头在所述第一以太网包中的位置偏移信息;The position offset information obtaining submodule is configured to obtain the position offset information of the custom header in the first Ethernet packet;
    所述数据写入子模块被配置为根据所述位置偏移信息从所述第一以太网包中获取所述有效数据长度和所述访问地址。The data writing submodule is configured to acquire the effective data length and the access address from the first Ethernet packet according to the position offset information.
  11. 一种芯片,包括:至少一个权利要求7-8任一项所述的以太网发送模块,以及至少一个权利要求9-10任一项所述的以太网接收模块。A chip, comprising: at least one Ethernet sending module according to any one of claims 7-8, and at least one Ethernet receiving module according to any one of claims 9-10.
  12. 一种数据传输系统,包括:A data transmission system comprising:
    第一芯片,其被配置为:The first chip, which is configured to:
    接收片内总线写访问请求;其中,所述片内总线写访问请求包括:有效数据;Receive an on-chip bus write access request; wherein, the on-chip bus write access request includes: valid data;
    获取封装头的配置信息;并且obtain configuration information for the encapsulation header; and
    根据所述封装头的配置信息将所述有效数据封装成第一以太网包,并且发送所述第一以太网包;其中,所述第一以太网包包括:所述封装头和所述有效数据;以及The valid data is encapsulated into a first Ethernet packet according to the configuration information of the encapsulation header, and the first Ethernet packet is sent; wherein the first Ethernet packet includes: the encapsulation header and the valid data data; and
    第三芯片,其被配置为:The third chip, which is configured to:
    接收所述第一以太网包,将所述第一以太网包写入内存中随机分配的地址,对所述第一以太网包进行分类后入列到中央处理器指定的队列。Receive the first Ethernet packet, write the first Ethernet packet into a randomly assigned address in the memory, classify the first Ethernet packet and enqueue it into a queue designated by the central processing unit.
  13. 一种数据传输系统,包括:A data transmission system comprising:
    第一芯片,其被配置为:The first chip, which is configured to:
    接收片内总线写访问请求;其中,所述片内总线写访问请求包括:有效数据、有效数据长度和访问地址;其中,所述访问地址为所述有效数据在第二芯片的内存中的地址;Receive an on-chip bus write access request; wherein, the on-chip bus write access request includes: valid data, valid data length and access address; wherein, the access address is the address of the valid data in the memory of the second chip ;
    获取封装头的配置信息;并且obtain configuration information for the encapsulation header; and
    根据所述封装头的配置信息将所述有效数据封装成第一以太网包,并且发送所述第一以太网包;其中,所述第一以太网包包括:所述封装头和所述有效数据;所述封装头包括:自定义头,所述自定义头包括:所述有效数据长度和所述访问地址;以及The valid data is encapsulated into a first Ethernet packet according to the configuration information of the encapsulation header, and the first Ethernet packet is sent; wherein the first Ethernet packet includes: the encapsulation header and the valid data data; the encapsulation header includes: a custom header, and the custom header includes: the effective data length and the access address; and
    所述第二芯片,其被配置为:The second chip, which is configured to:
    接收第一以太网包;receive the first Ethernet packet;
    从所述第一以太网包中获取所述有效数据长度和所述访问地址;并且obtain the effective data length and the access address from the first Ethernet packet; and
    根据所述有效数据长度从所述第一以太网包中获取有效数据,将获取得到的所述有效数据写入所述访问地址内。Obtain valid data from the first Ethernet packet according to the valid data length, and write the obtained valid data into the access address.
  14. 一种计算机可读介质,其存储有计算机程序,该计算机程序用于执行根据权利要求1-6中任一项所述的数据传输方法。A computer-readable medium storing a computer program for executing the data transmission method according to any one of claims 1-6.
  15. 一种芯片,包括CPU和计算机可读介质,所述计算机可读介质存储有计算机程序,所述计算机程序在被所述CPU运行时执行根据权利要求1-6中任一项所述的数据传输方法。A chip comprising a CPU and a computer-readable medium, the computer-readable medium storing a computer program, the computer program executing the data transmission according to any one of claims 1-6 when executed by the CPU method.
PCT/CN2021/113286 2020-08-28 2021-08-18 Data transmission method and system, and chip WO2022042396A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010902743.3 2020-08-28
CN202010902743.3A CN114124594A (en) 2020-08-28 2020-08-28 Data transmission method and system, and chip

Publications (1)

Publication Number Publication Date
WO2022042396A1 true WO2022042396A1 (en) 2022-03-03

Family

ID=80360648

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/113286 WO2022042396A1 (en) 2020-08-28 2021-08-18 Data transmission method and system, and chip

Country Status (2)

Country Link
CN (1) CN114124594A (en)
WO (1) WO2022042396A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114579487A (en) * 2022-03-10 2022-06-03 上海登临科技有限公司 Computing chip, electronic equipment and data transmission method between computing chips
CN115550104B (en) * 2022-12-06 2023-08-15 北京华环电子股份有限公司 AXI bus expansion method, device, electronic equipment and storage medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8767757B1 (en) * 2012-02-15 2014-07-01 Applied Micro Circuits Corporation Packet forwarding system and method using patricia trie configured hardware
CN109634881A (en) * 2018-11-16 2019-04-16 中国航空工业集团公司洛阳电光设备研究所 A kind of gigabit Ethernet DMA data transfer design device based on FPGA
CN110798479A (en) * 2019-11-07 2020-02-14 首都师范大学 Interoperation device and method for dynamically reconfigurable high-speed serial bus and Ethernet
CN111541518A (en) * 2020-04-17 2020-08-14 展讯通信(上海)有限公司 Data transmission method and communication device of serial bus
WO2020168522A1 (en) * 2019-02-21 2020-08-27 华为技术有限公司 System on chip, routing method for access command and terminal

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8767757B1 (en) * 2012-02-15 2014-07-01 Applied Micro Circuits Corporation Packet forwarding system and method using patricia trie configured hardware
CN109634881A (en) * 2018-11-16 2019-04-16 中国航空工业集团公司洛阳电光设备研究所 A kind of gigabit Ethernet DMA data transfer design device based on FPGA
WO2020168522A1 (en) * 2019-02-21 2020-08-27 华为技术有限公司 System on chip, routing method for access command and terminal
CN110798479A (en) * 2019-11-07 2020-02-14 首都师范大学 Interoperation device and method for dynamically reconfigurable high-speed serial bus and Ethernet
CN111541518A (en) * 2020-04-17 2020-08-14 展讯通信(上海)有限公司 Data transmission method and communication device of serial bus

Also Published As

Publication number Publication date
CN114124594A (en) 2022-03-01

Similar Documents

Publication Publication Date Title
US8208470B2 (en) Connectionless packet data transport over a connection-based point-to-point link
US11296807B2 (en) Techniques to operate a time division multiplexing(TDM) media access control (MAC)
US10057387B2 (en) Communication traffic processing architectures and methods
US9654406B2 (en) Communication traffic processing architectures and methods
US20240195740A1 (en) Receiver-based precision congestion control
US20210320866A1 (en) Flow control technologies
WO2016191990A1 (en) Packet conversion method and device
US11089140B2 (en) Intelligent controller and sensor network bus, system and method including generic encapsulation mode
US20220078119A1 (en) Network interface device with flow control capability
WO2022042396A1 (en) Data transmission method and system, and chip
JP2008546298A (en) Electronic device and communication resource allocation method
JP2022547143A (en) DATA TRANSMISSION CONTROL METHOD, DEVICE, AND STORAGE MEDIUM
US11010165B2 (en) Buffer allocation with memory-based configuration
US10657074B2 (en) Connecting an external PHY device to a MAC device using a management data input/output interface
TW201717039A (en) Method and system for USB 2.0 bandwidth reservation
US10877911B1 (en) Pattern generation using a direct memory access engine
US7346078B2 (en) Processing of received data within a multiple processor device
US9274586B2 (en) Intelligent memory interface
US11902403B2 (en) Method for receiving code block stream, method for sending code block stream, and communications apparatus
CN116266800A (en) Multicast transmission method, device and system
WO2021055205A1 (en) Intelligent controller and sensor network bus, system and method including generic encapsulation mode
US11768630B1 (en) Credit based memory scheduler
WO2023005723A1 (en) Packet transmission method and communication apparatus
CN112988633A (en) Electronic equipment and data transmission method
WO2024137185A1 (en) Congestion notification in a multi-queue environment

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21860234

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21860234

Country of ref document: EP

Kind code of ref document: A1