WO2024040604A1 - 一种数据传输方法及装置 - Google Patents

一种数据传输方法及装置 Download PDF

Info

Publication number
WO2024040604A1
WO2024040604A1 PCT/CN2022/115264 CN2022115264W WO2024040604A1 WO 2024040604 A1 WO2024040604 A1 WO 2024040604A1 CN 2022115264 W CN2022115264 W CN 2022115264W WO 2024040604 A1 WO2024040604 A1 WO 2024040604A1
Authority
WO
WIPO (PCT)
Prior art keywords
valid data
data
payload
bit width
valid
Prior art date
Application number
PCT/CN2022/115264
Other languages
English (en)
French (fr)
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 华为技术有限公司
Priority to PCT/CN2022/115264 priority Critical patent/WO2024040604A1/zh
Priority to PCT/CN2023/096565 priority patent/WO2024041065A1/zh
Publication of WO2024040604A1 publication Critical patent/WO2024040604A1/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L27/00Modulated-carrier systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/06Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information

Definitions

  • the present application relates to the field of communication technology, and in particular, to a data transmission method and device.
  • a system on chip realizes interconnection between internal subsystems through an on-chip bus.
  • the on-chip bus can be an advanced extensible interface (AXI) bus or an advanced extensible interface consistency extension (AXI).
  • AXI advanced extensible interface coherent expan
  • ACE coherent hub interface
  • CHI coherent hub interface
  • Figure 1 is a schematic structural diagram of a SOC.
  • the SOC includes: media subsystem, central processing unit (CPU) subsystem and artificial intelligence (artificial intelligence, AI) subsystem.
  • the media subsystem includes a video display processor (VDP) module, communication module FI and the first bus;
  • the CPU subsystem includes a CPU, IO module, multiple double data rate (DDR) storage modules and The first bus;
  • the AI subsystem includes multiple network processors (natural processing units, NPUs) and a first bus, where the first bus can be any of the above-mentioned on-chip buses.
  • each module or processor in the media subsystem and AI subsystem is interconnected with the first bus in the CPU subsystem through its own first bus to realize data transmission between multiple subsystems.
  • the SOC shown in Figure 1 is integrated on a bare chip (Die).
  • the AI subsystem includes two NPUs and the CPU subsystem includes 3 DDR memory modules.
  • the on-chip system includes a plurality of mutually coupled dies.
  • the plurality of dies include a first die and a second die.
  • the first die includes a first chip.
  • the second die includes a second die interface, and the first die and the second die can transmit data through the first die interface and the second die interface.
  • the die may be a receiving side die or a sending side die.
  • a data transmission method for a sending side die.
  • the method includes: obtaining first valid data and second valid data.
  • the first valid data includes first data from the first bus channel, and the second valid data is obtained.
  • the valid data includes second data from the second bus channel; the first payload is determined according to the first valid data and the second valid data, wherein the first payload includes the first valid data, padding, and the first valid data that are spliced in sequence. data and at least part of the second payload; encapsulating and sending the first payload.
  • the first valid data and at least part of the second valid data are spliced into a first payload
  • the first payload includes the first valid data, padding data and at least part of the second valid data
  • the first payload is A payload is packaged and sent to the receiving side die, that is, the first valid data and the second valid data are spliced into one payload and sent.
  • the first payload includes the first valid data, padding data and at least part of the second valid data, that is, there is no idle (remaining) bit width in the first payload, that is, there are no idle bits in the first payload, and when the first payload is encapsulated and sent, the increase improve the efficiency of data transmission.
  • the sum of the bit width of the first valid data and the bit width of the padding data is equal to an integer multiple of the alignment bit width, wherein the alignment bit width may be a sliding window bit width.
  • the window size of the sliding window width can be fixed.
  • the alignment bit width may be a sliding window bit width when the first payload is split, and the sliding window bit width may also be called a sliding window read bit width.
  • the starting bit of the first valid data in the first payload is 0 bits
  • the sum of the bit width of the first valid data and the bit width of the filling data is equal to the aligned bit width.
  • the first payload is encapsulated and sent to the receiving side die, and the receiving side die is When splitting the first payload, a sliding window is performed on the first payload according to the alignment bit width (fixed bit) each time to quickly determine the first valid data and at least part of the first payload. the second valid data.
  • the processing delay of the receiving side die is reduced and the processing efficiency is improved.
  • the bit width of the padding data is smaller than the alignment bit width.
  • the bit width of the filling data is smaller than the alignment bit width.
  • the alignment bit width is equal to 8 bits, 16 bits, 32 bits, 64 bits or 128 bits.
  • the receiving side die can quickly determine the first valid data and at least part of the second valid data from the first payload according to the alignment bit width, thereby reducing the processing delay of the receiving side die. , improving processing efficiency.
  • the first valid data includes a first channel identifier and the first data
  • the second valid data includes a second channel identifier and the second data
  • the first The channel identifier is used to indicate the first bus channel
  • the second channel identifier is used to indicate the second bus channel.
  • the first channel identifier determines the bit width of the first data, and the bit width of the second data is determined according to the second channel identifier, so that when the first payload is determined based on the first valid data and the second valid data, it can be quickly determined
  • the bit width of the padding data increases the speed of splicing.
  • the method further includes: determining the sending priority of the first valid data and the second valid data according to the first channel identifier and the second channel identifier.
  • the first valid data and the second valid data are sent according to the sending priority of the first valid data and the second valid data, thereby improving the usage efficiency of the valid data.
  • the bit width of the first channel identifier and the bit width of the second channel identifier are both 4 bits.
  • the bit width of the first valid data and the bit width of the second valid data can be determined according to the bit width of the channel identifier and the bit width of the second channel identifier, so that according to the first valid data
  • the bit width of the padding data can be quickly determined, thereby improving the splicing speed.
  • determining the first payload based on the first valid data and the second valid data includes: if the bit width of the first payload is insufficient to carry the second valid data , then only part of the second valid data is filled into the first payload.
  • the bit width of the first payload is not enough to carry the second valid data, part of the second valid data in the second valid data is filled into the first payload, so that the second valid data is filled into the first payload.
  • There is no free bit width in a payload that is, there are no free bits in the first payload.
  • the method further includes: filling the remaining data in the second valid data except the part of the second valid data into a second payload, and the first payload and the third payload are The two payloads are adjacent.
  • the remaining data in the second valid data except the part of the second valid data is filled into the second payload adjacent to the second payload, and the second payload is encapsulated and sent to
  • the receiving side die can quickly determine the remaining data from the adjacent second payload, which improves the speed of data determination.
  • determining the first payload based on the first valid data and the second valid data includes: if the first payload is removed from the first valid data, the padding If the remaining bit width of the bit width occupied by the data and the second valid data is less than or equal to the bit width of the channel identifier, filler data is written into the remaining bit width.
  • the remaining bit width in the first payload excluding the bit width occupied by the first valid data, the padding data and the second valid data is not enough to carry the bit width of a channel identifier, then the remaining bit width is sent to the first payload. Filling data is written into the remaining bit width so that there are no free bits in the first payload. When the first payload is encapsulated and sent to the receiving side die, there are no free bits in the first payload. Improved data transmission efficiency.
  • the method further includes: if the remaining bit width is greater than the bit width of the channel identifier, obtaining third valid data, where the third valid data includes data from the third bus channel. third data; determining the first payload according to the first valid data and the second valid data includes: determining the first payload according to the first valid data, the second valid data and the third valid data, wherein, The first payload includes the first valid data, the padding data, the second valid data, the padding data and at least part of the third valid data that are spliced in sequence.
  • the first payload is encapsulated and sent to the receiving side die, there are no idle bits in the first payload, which improves data transmission. s efficiency.
  • the encapsulated first payload includes: a message header and a message trailer.
  • the type of the message corresponding to the first payload and related operations can be quickly determined through the message header and the message tail, which improves the processing efficiency of the first payload.
  • a data transmission method for a sending side die.
  • the method includes: obtaining first valid data, where the first valid data includes first data from the first bus channel; and according to the first valid data and the virtual The data determines the first payload, wherein the first payload includes the first valid data, padding data and the dummy data that are spliced in sequence.
  • the dummy data includes a virtual identifier, and the dummy identifier is used to indicate that the dummy data is invalid. of; encapsulate and send the first payload.
  • the first valid data has a higher priority and cannot wait for other valid data for a long time, or other valid data have been spliced at the current moment, there is no other valid data that needs to be spliced, and the first payload contains The remaining bit width excluding the bit width occupied by the first valid data is greater than the alignment bit width.
  • a first payload is determined according to the first valid data and dummy data, wherein the first payload includes the first valid data, padding data and dummy data spliced in sequence, and the dummy data is invalid data, so that the first payload There is no idle (remaining) bit width in a payload, that is, there are no idle bits in the first payload.
  • the first payload is encapsulated into the first target packet, there are no idle bits in the packet. Improved data transmission efficiency.
  • a data transmission method for a receiving side die. The method includes: receiving and parsing the first target message to obtain a first payload; and determining the first valid data and at least part of the first payload based on the first payload. second valid data; sending the first valid data to the first bus channel corresponding to the first valid data, and sending at least part of the second valid data to the second bus channel corresponding to the second valid data.
  • the first payload is obtained by parsing the first target message, and the first valid data and at least part of the second valid data are determined based on the first payload, thereby improving data reception efficiency.
  • determining the first valid data and at least part of the second valid data according to the first payload includes: splitting the first payload according to the alignment bit width to obtain the third a valid data, padding data and at least part of the second valid data.
  • the first payload can be split directly according to the alignment bit width, instead of sequentially accessing each bit in the first payload, which reduces the data processing delay and further improves the data processing efficiency. efficiency.
  • the sum of the bit width of the first valid data and the bit width of the filling data is an integer multiple of the alignment bit width.
  • the starting bit of the first valid data in the first payload is 0 bits
  • the sum of the bit width of the first valid data and the bit width of the filling data is equal to the aligned bit width.
  • An integer multiple so that the starting bit of the second valid data in the first payload is also equal to an integer multiple of the alignment bit width, and the first valid data and at least part of the second valid data can be directly determined based on the alignment bit width, and There is no need to access each bit in the first payload in sequence, which reduces data processing delay and further improves data processing efficiency.
  • the bit width of the padding data is smaller than the alignment bit width.
  • the bit width of the filling data is smaller than the alignment bit width.
  • the alignment bit width is equal to 8 bits, 16 bits, 32 bits, 64 bits or 128 bits.
  • the first valid data and at least part of the second valid data can be quickly determined from the first target message according to the alignment bit width, thereby reducing data processing delay and improving data processing efficiency.
  • the first valid data includes a first channel identifier and first data
  • at least part of the second valid data includes a second channel identifier and at least part of the second data
  • the The first channel identifier is used to indicate the first bus channel
  • the second channel identifier is used to indicate the second bus channel.
  • the method further includes: determining the sending priority of the first valid data and at least part of the second valid data according to the first channel identifier and the second channel identifier.
  • the sending priority of the first data and the second data can be determined according to the first channel identifier and the second channel identifier, thereby improving data usage efficiency.
  • the method before sending the first valid data to the first bus channel corresponding to the first valid data, at least part of the second valid data is sent to the third bus channel corresponding to the second valid data. Before changing the bus channel, the method further includes: deleting the first channel identifier in the first valid data and at least part of the second channel identifier in the second valid data.
  • sending at least part of the second valid data to the second bus channel corresponding to the second valid data includes: if at least part of the second valid data is part of the second valid data data, receive and parse the second target message, and obtain the second payload; according to the second payload, determine the remaining data in the second valid data except the part of the second valid data; according to the remaining data and the part The second valid data is determined and sent.
  • the second valid data is sent, thereby ensuring the accuracy of the sent data.
  • the method further includes: determining the first valid data, the second valid data and at least part of the third valid data according to the first payload; sending the first valid data Data is sent to the first bus channel corresponding to the first valid data, the second valid data is sent to the second bus channel corresponding to the second valid data, and at least part of the third valid data is sent to the third bus channel corresponding to the third valid data.
  • Three bus channels In the above possible implementation manner, different valid data are sent to the bus channels corresponding to the valid data, ensuring the accuracy of the valid data in each bus channel.
  • the target message includes: a message header and a message trailer.
  • the type of the message and related operations can be quickly determined through the message header and message tail, which improves the efficiency of message processing.
  • a data transmission method includes: receiving and parsing a first target message to obtain a first payload; determining first valid data based on the first payload; and sending the first valid data. to the first bus channel corresponding to the first valid data.
  • the first payload is obtained by parsing the first target message, and the first valid data is determined based on the first payload, thereby improving data reception efficiency.
  • a data transmission device in a fifth aspect, includes: an acquisition unit configured to acquire first valid data and second valid data.
  • the first valid data includes first data from the first bus channel, and the first valid data is obtained from the first bus channel.
  • the second valid data includes second data from the second bus channel;
  • the determining unit is configured to determine the first payload according to the first valid data and the second valid data, wherein the first payload includes the sequentially spliced
  • the encapsulation unit is used to encapsulate the first payload;
  • the sending unit is used to send the encapsulated first payload.
  • the sum of the bit width of the first valid data and the bit width of the padding data is equal to an integer multiple of the alignment bit width.
  • the bit width of the padding data is smaller than the alignment bit width.
  • the alignment bit width is equal to 8 bits, 16 bits, 32 bits, 64 bits or 128 bits.
  • the first valid data includes a first channel identifier and the first data
  • the second valid data includes a second channel identifier and the second data
  • the first The channel identifier is used to indicate the first bus channel
  • the second channel identifier is used to indicate the second bus channel
  • the determining unit is further configured to: determine the sending priority of the first valid data and the second valid data according to the first channel identifier and the second channel identifier.
  • bit width of the first channel identifier and the bit width of the second channel identifier are both 4 bits.
  • the determining unit is further configured to: if the bit width of the first payload is insufficient to carry the second valid data, only fill part of the first payload into the first payload. 2. Valid data.
  • the determining unit is also configured to fill the remaining data in the second valid data except the part of the second valid data into the second payload, and the first payload and The second payload is adjacent.
  • the determining unit is further configured to: if the remaining bit width occupied by the first valid data, the padding data and the second valid data is removed from the first payload, If the bit width is less than or equal to the bit width of the channel identifier, fill data is written to the remaining bit width.
  • the acquisition unit is also configured to obtain third valid data if the remaining bit width is greater than or equal to the bit width of the channel identifier, and the third valid data includes data from the third The third data of the bus channel; determining the first payload according to the first valid data and the second valid data includes: determining the first payload according to the first valid data, the second valid data and the third valid data. , wherein the first payload includes the first valid data, padding data, the second valid data, padding data and at least part of the third valid data that are spliced in sequence.
  • the encapsulated first payload includes: a message header and a message trailer.
  • a data transmission device which device includes: an acquisition unit, used to obtain first valid data, where the first valid data includes first data from the first bus channel; and the determination unit, also used to A first payload is determined according to the first valid data and dummy data, wherein the first payload includes the first valid data, padding data and dummy data spliced in sequence, the dummy data includes a virtual identifier, and the virtual identifier It is used to indicate that the dummy data is invalid; the encapsulation unit is used to encapsulate the first payload; the sending unit is used to send the encapsulated first payload.
  • a data transmission device which device includes: a receiving unit for receiving a first target message; an analysis unit for parsing the first target message to obtain a first payload; a determining unit, is used to determine the first valid data and at least part of the second valid data according to the first payload; the sending unit is used to send the first valid data to the first bus channel corresponding to the first valid data, and send at least part of the The second valid data is sent to the second bus channel corresponding to the second valid data.
  • the determining unit is further configured to split the first payload according to the alignment bit width to obtain the first valid data, padding data and at least part of the second valid data.
  • the sum of the bit width of the first valid data and the bit width of the filling data is an integer multiple of the alignment bit width.
  • the bit width of the padding data is smaller than the alignment bit width.
  • the alignment bit width is equal to 8 bits, 16 bits, 32 bits, 64 bits or 128 bits.
  • the first valid data includes a first channel identifier and first data
  • at least part of the second valid data includes a second channel identifier and at least part of the second data
  • the The first channel identifier is used to indicate the first bus channel
  • the second channel identifier is used to indicate the second bus channel
  • the determining unit is further configured to: determine the sending priority of the first valid data and at least part of the second valid data based on the first channel identifier and the second channel identifier. class.
  • bit width of the first channel identifier and the bit width of the second channel identifier are both 4 bits.
  • the device further includes a deletion unit configured to: delete the first channel identifier in the first valid data, and at least part of the second valid data.
  • the second channel identifier configured to: delete the first channel identifier in the first valid data, and at least part of the second valid data.
  • the receiving unit is also configured to receive and parse the second target message to obtain the second payload;
  • the determining unit is also configured to determine the remaining data in the second valid data except the part of the second valid data according to the second payload; the determining unit is also configured to determine the remaining data according to the remaining data and the part of the second valid data. data to determine the second valid data; the sending unit is also used to send the second valid data.
  • the determining unit is further configured to determine the first valid data, the second valid data and at least part of the third valid data according to the first payload; the sending unit , is also used to send the first valid data to the first bus channel corresponding to the first valid data, send the second valid data to the second bus channel corresponding to the second valid data, and send at least part of the third valid data to the third bus channel corresponding to the third valid data.
  • the target message includes: a message header and a message trailer.
  • a data transmission device which device includes: a receiving unit, configured to receive and parse the first target message to obtain a first payload; and a determining unit, configured to determine the first payload based on the first payload.
  • a valid data a sending unit, configured to send the first valid data to the first bus channel corresponding to the first valid data.
  • Another aspect of the present application provides a bare chip, which includes a logic device, and the logic device is used to perform the data transmission method provided by the first aspect or any possible implementation of the first aspect.
  • Another aspect of the present application provides a bare chip, which includes a logic device, and the logic device is used to perform the data transmission method provided in the second aspect.
  • Another aspect of the present application provides a bare chip, which includes a logic device, and the logic device is used to perform the data transmission method provided by the above-mentioned third aspect or any possible implementation of the third aspect.
  • Another aspect of the present application provides a bare chip, which includes a logic device, and the logic device is used to perform the data transmission method provided in the above four aspects.
  • a system-on-chip in another aspect of the present application, includes a plurality of dies coupled to each other.
  • the plurality of dies include a first die and a second die.
  • the first die is used to perform the above-mentioned
  • the data transmission method provided by the first aspect or any possible implementation of the first aspect, or the data transmission method provided by the above-mentioned second aspect; the second die is used to perform the above-mentioned third aspect or the third aspect.
  • the data transmission method provided by any possible implementation of the aspect, or the data transmission method provided by the fourth aspect.
  • a computer-readable storage medium includes computer instructions.
  • the computer instructions When the computer instructions are run on a data transmission device, the relevant steps in the above method embodiments are executed.
  • a computer program product containing instructions is provided.
  • the computer program product When the computer program product is run on a computer device, it causes the data transmission device to perform the relevant steps in the above method embodiment.
  • Figure 1 is a schematic structural diagram of a SOC
  • FIG. 2 is a schematic structural diagram of another SOC
  • Figure 3 is a schematic structural diagram of a system-on-chip provided by an embodiment of the present application.
  • Figure 4 is a schematic structural diagram of a bus adapter provided by an embodiment of the present application.
  • Figure 5 is a flow chart of a data transmission method provided by an embodiment of the present application.
  • Figure 6 is a schematic structural diagram of a first valid data provided by an embodiment of the present application.
  • Figure 7 is a schematic structural diagram of a target message provided by an embodiment of the present application.
  • Figure 8 is a flow chart of another data transmission method provided by an embodiment of the present application.
  • Figure 9 is a schematic structural diagram of a target message provided by this application.
  • Figure 10 is a schematic structural diagram of another target message provided by the embodiment of the present application.
  • Figure 11 is a schematic structural diagram of another target message provided by an embodiment of the present application.
  • Figure 12 is a flow chart of another data transmission method provided by an embodiment of the present application.
  • Figure 13 is a flow chart of another data transmission method provided by an embodiment of the present application.
  • Figure 14 is a schematic structural diagram of a data transmission device provided by an embodiment of the present application.
  • Figure 15 is a schematic structural diagram of another data transmission device provided by an embodiment of the present application.
  • At least one refers to one or more, and “plurality” refers to two or more.
  • “And/or” describes the association of associated objects, indicating that there can be three relationships, for example, A and/or B, which can mean: A exists alone, A and B exist simultaneously, and B exists alone, where A, B can be singular or plural.
  • the character “/” generally indicates that the related objects are in an “or” relationship.
  • “At least one of the following” or similar expressions thereof refers to any combination of these items, including any combination of a single item (items) or a plurality of items (items).
  • At least one of a, b, or c can represent: a, b, c, a-b, a-c, b-c, or a-b-c, where a, b, c can be single or multiple .
  • the embodiments of this application use words such as “first” and “second” to distinguish identical or similar items that have basically the same functions and effects.
  • the first threshold and the second threshold are only used to distinguish different thresholds, and their order is not limited. Those skilled in the art can understand that words such as “first” and “second” do not limit the number and execution order.
  • the system on chip realizes the interconnection between internal subsystems through the on-chip bus.
  • the on-chip bus can include the advanced extensible interface (AXI) bus and the advanced extensible interface consistency extension (AXI).
  • AXI advanced extensible interface coherent expan
  • ACE coherent hub interface
  • CHI coherent hub interface
  • the SOC shown in Figure 1 includes: media subsystem, central processing unit (CPU) subsystem and artificial intelligence (artificial intelligence, AI) subsystem.
  • AI artificial intelligence
  • the AXI bus can define 5 bus channels.
  • Each of the 5 bus channels can be used to transmit data, and the data transmitted by each of the 5 bus channels has a different bit width.
  • the five bus channels include a write address channel and a write data bus channel.
  • the bit width of the write address bus channel may be 101 bits, and the bit width of the write data bus channel may be 152 bits.
  • the five bus channels may not all have data to be transmitted at the same time, that is, the five bus channels may not be valid at the same time.
  • the bus channel can also be called a transmission channel, and the bit width of the data can be called the length of the data.
  • Figure 2 is a schematic structural diagram of a system on a chip, which includes a media die, an AI die, and a CPU die.
  • the media die includes a chiplet interface
  • the AI die includes a chipt interface
  • the CPU die includes two chipt interfaces.
  • the media die and the AI die pass through their respective chip interfaces. Coupled with the corresponding chip interface in the CPU die to achieve interconnection between multiple die.
  • the system-on-chip shown in FIG. 2 also includes a packaging substrate, which can be used to package the plurality of bare chips.
  • the AI die and media die when the AI die and media die transmit data to the corresponding chip interface in the CPU die through their respective chip interfaces, the AI die and media die can be the sending side, and the CPU die can be the receiving side. ;
  • the CPU die when the two chip interfaces in the CPU die transmit data to the chip interfaces in the AI die and media die respectively, the CPU die can be the sending side, and the AI die and media die can be the receiving side.
  • Data transmission between different dies can be achieved in the following two ways.
  • Method 1 The bus in the sending side die transmits data to the core interface through multiple bus channels.
  • the core interface collects the data in each of the multiple bus channels.
  • the multiple bus channels correspond to multiple data.
  • the die interface transmits multiple data to the corresponding die interface in the receiving die.
  • the multiple data collected by the core particle interface include valid data and invalid data, and the transmission of invalid data increases additional power consumption; on the other hand, when the bandwidth of the multiple data is small, the efficiency of the core particle interface is reduced. Bandwidth utilization further reduces transmission efficiency.
  • Method 2 The bus in the sending side die transmits data to the core interface through multiple bus channels.
  • the core interface collects and determines the valid data in each of the multiple bus channels.
  • the multiple bus channels correspond to multiple bus channels. valid data.
  • the chip interface For each valid data in the multiple valid data, the chip interface generates a message with a fixed bit width according to the valid data.
  • the multiple valid data corresponds to multiple messages, and the multiple valid data are The message is transmitted to the corresponding chip interface in the receiving side die.
  • bit width of the message is fixed and the bit widths of the multiple valid data are different, when a message with a fixed bit width is generated based on the valid data, the payload of some of the multiple messages will be There is free bit width, which reduces the bandwidth utilization of the core interface and further reduces the transmission efficiency.
  • inventions of the present application provide a data transmission method and device to improve data transmission efficiency.
  • the method is applied in an on-chip system.
  • the method includes: obtaining first valid data and second valid data.
  • the first valid data includes the first data from the first bus channel.
  • the second valid data includes the second valid data from the second bus channel.
  • the second data determine the first payload according to the first valid data and the second valid data, wherein the first payload includes the first valid data, padding data and at least part of the second valid data spliced in sequence.
  • Data encapsulate and send the first payload.
  • the first payload includes the first valid data, padding data and at least part of the second valid data, so that there is no idle (remaining) bit width in the first payload, and the first payload is encapsulated When sent to the receiving side die, the efficiency of data transmission is improved.
  • FIG. 3 is a schematic structural diagram of an on-chip system provided by an embodiment of the present application.
  • the on-chip system includes a plurality of mutually coupled bare dies.
  • the die can serve as a receiving side.
  • the die can also be used as the die on the sending side.
  • the bare chip includes: a business processing unit 31, a bus 32 and a chip interface 33.
  • two die are taken as an example. The two die are coupled to each other through their respective die interfaces 33 .
  • the business processing unit 31 can be used to generate an access transaction matching the type of the bus 32 according to access requirements, and send the access transaction to the bus 32 .
  • the business processing unit 31 is also used to receive access transactions from the bus 32 and perform corresponding processing according to the access transactions.
  • the bus 32 can be used to receive information.
  • the bus 32 can be used to receive access transactions from the business processing unit 31.
  • the bus 32 is also used to obtain multiple data according to the access transactions.
  • the bus 32 can be used to receive information. 32 can obtain the multiple data after splitting, merging and other related processing on the received access transaction.
  • the bus 32 is also used to send the multiple data to the core interface 33 through multiple bus channels.
  • the bus 32 can be used to receive multiple messages from the chip interface 33 .
  • the bus 32 is also used to generate access transactions based on the multiple data and bus protocols.
  • the bus 32 is also used to send the access transaction to the service processing unit 31 .
  • the core interface 33 can be used to receive data, process data and send data.
  • the core interface 33 may include a bus adapter 331, a data link layer 332, and an input/output interface 333.
  • the input/output interface 333 may include an input interface and an output interface.
  • the bus adapter 331 can be used to receive multiple data and perform corresponding processing on the multiple data to obtain a payload.
  • the data link layer 332 can be used to encapsulate the payload into the message.
  • the output interface in the input/output interface 333 can send the message.
  • the input interface in the input/output interface 333 can be used to receive messages.
  • the data link layer 332 can be used to parse the message to obtain the payload.
  • the bus adapter 331 can be used to split the payload to obtain multiple data.
  • the bus adapter 331 can be used to split the payload according to the aligned bit width to obtain the multiple data.
  • the input/output interface 333 may also be called a physical layer.
  • FIG 4 is a schematic structural diagram of a bus adapter provided by an embodiment of the present application.
  • the bus adapter includes: a receiving module 401, a storage module 402, a scheduling module 403, a splicing module/splitting module 404 and a sending module 405.
  • the receiving module 401 can be used to collect data in each bus channel of multiple bus channels, and correspondingly obtain multiple data. For each data in the multiple data, the receiving module 401 is also used to collect data from the multiple bus channels. The channel information of the bus channel is collected from the bus channel corresponding to the data. The channel information is used to indicate the bus channel type. The multiple data correspond to multiple channel information.
  • the receiving module 401 is also used to receive the payload. For example, the receiving module 401 is also used to receive the payload from the data link layer.
  • the storage module 402 can be used to store the plurality of data and the plurality of channel identifiers.
  • the scheduling module 403 can be used to determine the sending priority of the plurality of data. For example, the scheduling module 403 can be used to determine the sending priority of the data according to the channel identifier corresponding to each data in the plurality of data to determine the sending priority of the multiple data. Data sending priority.
  • the splicing module/splitting module 404 may include a splicing module and a sending module.
  • the splicing module can be used to splice data, and the sending module splits the data. For example, on the sending side, for each new channel message in the multiple channel information, the splicing module can be used to generate a channel identifier corresponding to the channel information, and correspondingly obtain multiple channel identifiers; the splicing module can be used to generate a channel identifier in the multiple channel information.
  • the channel identifier corresponding to the data is set in each data, and multiple valid data are obtained correspondingly; the splicing module is also used to splice the multiple valid data according to the transmission priority and alignment bit width to obtain the payload.
  • the splicing module/splitting module 404 is also used to split the payload according to the alignment bit width to obtain multiple valid data. For each valid data in the multiple valid data, the splicing module/splitting module 404 The sub-module 404 is also used to split the valid data to obtain corresponding data and channel identification.
  • the sending module 405 can be used to send the payload.
  • the sending module 405 can be used to send the payload to the data link layer.
  • the sending module 405 is also used to send the plurality of data.
  • the sending module 405 is also used to send the plurality of data to the bus.
  • Figure 5 is a flow chart of a data transmission method provided by an embodiment of the present application. The method includes:
  • S501 obtains first valid data and second valid data, the first valid data includes the first data from the first bus channel, and the second valid data includes the second data from the second bus channel.
  • the bus adapter can be used to obtain the first valid data and the second valid data.
  • the bus adapter can be used to obtain first data and first channel information from the first bus channel, and obtain second data and second channel information from the second bus channel.
  • the first channel information and the second The channel information is used to respectively indicate the type of the first bus channel and the second bus channel;
  • the bus adapter is also used to generate a first channel identifier according to the first channel information, and generate a second channel identifier according to the second channel information,
  • the first channel identifier is used to indicate the first bus channel, and the second channel identifier is used to indicate the second bus channel; and the first channel identifier and the first channel identifier are set in the first data and the second data respectively.
  • the second channel identifier corresponds to the first valid data and the second valid data.
  • the bus adapter can set the first channel identifier and the second channel identifier before the starting bit positions of the first data and the second data, respectively, to obtain the first valid data and the second valid data. data.
  • the first channel identifier and the second channel identifier can be set after the cutoff bit positions of the first data and the second data to obtain the first valid data and the second valid data. This application does not specifically limit this.
  • first bus channel and the second bus channel may be the same bus channel or different bus channels from the same bus.
  • first bus channel and the second bus channel may both be from the AXI bus.
  • the first bus channel and the second bus channel may be the write address bus channel and the write data bus channel in the AXI bus.
  • the first bus channel and the second bus channel can also be different bus channels from different buses.
  • the first bus channel can be a bus channel in the first bus
  • the second bus channel can be a second bus.
  • the bus channels in , the first bus and the second bus are different.
  • bit width of the first valid data is equal to the sum of the bit width of the first channel identifier and the bit width of the first data
  • bit width of the second valid data is equal to the bit width of the second channel identifier and the second bit width.
  • the sum of the bit widths of the data may be equal.
  • bit width of the first channel identifier and the bit width of the second channel identifier may be equal.
  • bit width of the first channel identifier and the bit width of the second channel identifier The bit width of can all be 4 bits (bit). In the following embodiments, the bit width of the channel identifier is 4 bits.
  • the bit width of the first data is related to the first bus channel
  • the bit width of the second data is related to the second bus channel, that is, the bit width of data in different bus channels is different.
  • the bus channel can be a write address (write address) bus channel, a read address (read address) bus channel, or a write data (write data) bus channel. , read data (read data) bus channel or write response (write response) bus channel.
  • the bit width of the data in the write address bus channel and the read address bus channel can be 101 bit
  • the bit width of the data in the write data bus channel can be 152 bit
  • the bit width of the data in the read data bus channel can be 138 bit.
  • the bit width of the data in the write response bus channel can be 9 bits.
  • the data bit width of the bus channel can be determined based on actual needs and the experience of relevant technical personnel, and this application does not specifically limit this.
  • FIG. 6 is a schematic structural diagram of first valid data provided by an embodiment of the present application.
  • the first valid data includes first data and a first channel identifier.
  • the bit width of the first channel identifier is 4 bits and the bit width of the first data is 101 bits.
  • the method further includes that the bus adapter may be used to determine the sending priority of the first valid data and the second valid data according to the first channel identifier and the second channel identifier.
  • the sending priority may be used to determine the sending order of valid data.
  • the sending priority may be used to indicate the sending order of the first valid data and the second valid data.
  • S502 Determine a first payload based on the first valid data and the second valid data, where the first payload includes the first valid data, padding data and at least part of the second valid data spliced in sequence.
  • the bus adapter can be used to determine the first payload according to the first valid data and the second valid data. Specifically, the bus adapter can be used to sequentially splice the first valid data, padding data and the second valid data according to the alignment bit width to obtain the first payload.
  • the alignment bit width may be a sliding window bit width, and the window size of the sliding window bit width may be fixed.
  • the alignment bit width may be a sliding window bit width when the first payload is split, and the sliding window bit width may also be called a sliding window read bit width.
  • the receiving side die splits the first payload it performs sliding window reading on the first payload according to the alignment bit width (fixed bit) each time to quickly determine the number of bits in the first payload. first valid data and second valid data. Compared with the normal situation where the receiving side die reads the first payload through a sliding window one bit at a time, the efficiency of the receiving side die in splitting the first payload is improved.
  • the alignment bit width can be preset.
  • the alignment bit width can be preset by the sending side die, and the sending side die sends the preset alignment bit width to the receiving side die; or, the alignment bit width can be the receiving side die.
  • the receiving side die sends the preset alignment bit width to the sending side die; or the alignment bit width can be preconfigured for the sending side die and the receiving side die. Filmy.
  • the embodiments of this application do not specifically limit this.
  • the size of the alignment bit width can be determined based on actual needs and the experience of relevant technical personnel, and is not specifically limited in this application. In practical applications, the alignment bit width can usually be equal to 8 bits, 16 bits, 32 bits, 64 bits or 128 bits. In the following embodiments, the alignment bit width is 32 bits as an example.
  • whether there is padding data between the first valid data and the second valid data can be determined according to the alignment bit width, and the bit width of the padding data.
  • the sending side die can be used to determine whether there is padding data between the first valid data and the second valid data according to the alignment bit width, and the bit width of the padding data, so that the first valid data
  • the sum of the bit width of and the bit width of the padding data is equal to an integer multiple of the alignment bit width, that is, the starting bit of the second valid data in the first payload is an integer multiple of the alignment bit width.
  • the alignment bit width is 32 bits and the bit width of the first data is 104 bits
  • the bit width of the first data is 104 bits
  • there is padding data between the first valid data and the second valid data, and the bit width of the padding data is 24 bits.
  • the bit width of the first valid data and the The sum of the bit widths of the padding data is 128 bits, which is 4 times the alignment bit width. Since the starting bit in the first payload is 0 bit, the starting bit of the second valid data in the first payload is 128bit.
  • the bit width of the padding data is smaller than the alignment bit width.
  • the bus adapter may determine the bit width of the filling data based on the bit width of the first valid data and the alignment bit width.
  • the bit width of the filling data is smaller than the alignment bit width, so that the sum of the bit width of the first valid data and the bit width of the filling data is equal to an integer multiple of the alignment bit width, that is, the second valid data While the starting bit width in the first payload is equal to an integer multiple of the alignment bit width, the amount of valid data in the first payload is increased, and the utilization of the first payload is improved.
  • the bus adapter can be used to perform the transmission according to the bit width of the first payload, the bit width of the valid data (including the bit width of the first valid data and the bit width of the second valid data), the alignment bit width and the channel identification.
  • the bit width determines the type of data included in the first payload. Several situations of the types of data included in the first payload will be described below.
  • the remaining bit width in the first payload excluding the bit width occupied by the first valid data and the padding data can Carrying the second valid data (that is, the remaining bit width is greater than the bit width of the second valid data), and the first payload is removed from the first valid data and the padding data (including splicing in the first valid data)
  • the remaining bit width occupied by the subsequent padding data and the padding data spliced after the second valid data) and the second valid data is greater than the bit width of the channel identifier, which means that the first payload can also carry more Lots of valid data.
  • the third valid data can be obtained, the third valid data includes the third data from the third bus channel, and at least part of the third valid data is written into the remaining bit width.
  • the The first payload includes the first valid data, padding data, the second valid data, the padding data and at least part of the third valid data that are spliced in sequence, the bit width of the second valid data and the second valid data
  • the sum of the bit widths of the subsequent padding data is an integer multiple of the alignment bit width.
  • the padding data (including splicing in The remaining bit width of the bit width occupied by the padding data after the first valid data) and the second valid data is greater than the bit width of the channel identifier, then there is no padding data between the second valid data and at least part of the third valid data .
  • the bit width of the first payload can be determined based on actual requirements and the experience of relevant technical personnel, and this application does not specifically limit this.
  • the bit width of the first payload may be 244 bits.
  • the remaining bit width occupied by the first valid data and the padding data (including the padding data spliced after the first valid data) in the first payload is greater than The bit width of the second valid data, and the first payload is excluding the first valid data and the padding data (including the padding data spliced after the first valid data and the padding spliced after the second valid data).
  • the remaining bit width of the bit width occupied by the filling data) and the second valid data is less than or equal to the bit width of the channel identifier, which means that the remaining bit width is not enough to carry more valid data.
  • padding data can be written into the remaining bit widths.
  • the first payload includes the first valid data, padding data, the second valid data and padding data that are spliced in sequence.
  • the remaining bit width in the first payload excluding the bit width occupied by the first valid data and the padding data (including padding data spliced after the first valid data) is greater than The bit width of the second valid data, and the bits occupied by the first valid data, the padding data (including padding data spliced after the first valid data) and the second valid data are excluded from the first payload. If the remaining bit width is less than or equal to the bit width of the channel identifier, padding data is written into the remaining bit width. At this time, the first payload includes the first valid data, padding data, and the first payload spliced in sequence. 2. Valid data and padding data.
  • the remaining bit width in the first payload excluding the bit width occupied by the first valid data and the padding data is insufficient
  • To carry the second valid data that is, the remaining bit width occupied by the first payload excluding the first valid data and the padding data (including the padding data spliced after the first valid data) is smaller than the The bit width of the second valid data is such that only part of the second valid data is filled into the first payload.
  • the first payload includes the first valid data, padding data and the part of the second valid data that are spliced in sequence.
  • the method also includes: the bus adapter fills the remaining data in the second valid data except the part of the second valid data into a second payload, and the first payload is adjacent to the second payload;
  • the data link layer encapsulates the second payload to obtain a second target message.
  • bit width of the first valid data is equal to an integer multiple of the alignment bit width, there is no padding data between the first valid data and the second valid data. At this time, the third valid data The bit width of the padding data between the first valid data and the second valid data is zero.
  • the number of valid data spliced in the first payload is related to the bit width of the valid data, the bit width of the first payload and the alignment bit width.
  • S503 Encapsulate and send the first payload.
  • the data link layer encapsulates the first payload to obtain the first target message.
  • the first target message includes: a message header (header), a first payload (payload) and a message tail (tail).
  • the data link layer generates a message header and a message trailer corresponding to the first payload, and obtains the first target message based on the message header, the first payload and the message trailer.
  • the input/output interface sends the first target message to the input/output interface in the receiving side die.
  • the bit width of the first packet is equal to the sum of the bit width of the packet header, the bit width of the first payload and the bit width of the packet tail.
  • the bit width of the first target message may be 256 bits, in which the bit width of the message header may be 1 bit, and the bit width of the message tail may be 11 bits.
  • the bit width of the first target message may be 256 bits, in which the bit width of the message header may be 1 bit, the bit width of the message tail may be 11 bits, and the bit width of the payload may be 244 bits.
  • Figure 7 is a schematic structural diagram of a target message provided by an embodiment of the present application.
  • the target message includes a message header payload and a message trailer.
  • the bit width of the message header is 1 bit
  • the bit width of the payload is 244 bits
  • the bit width of the message tail is 11 bits.
  • the first valid data has a higher priority and cannot wait for other valid data for a long time, or other valid data have been spliced at the current moment, there is no other valid data that needs to be spliced, and the first valid data cannot be spliced.
  • the remaining bit width in a payload excluding the bit width occupied by the first valid data is greater than the alignment bit width. Since the bit width of the padding data is smaller than the alignment bit width, it is impossible to write all of the remaining bit width at this time. Filling data requires writing dummy data into part of the remaining bit width.
  • Figure 8 is a flow chart of another data transmission method provided by an embodiment of the present application. The method includes:
  • S801 Determine first valid data from the first bus channel, where the first valid data includes first data from the first bus channel.
  • S802 Determine a first payload based on the first valid data and dummy data, where the first payload includes the first valid data, the padding data and dummy data spliced in sequence, the dummy data includes a dummy identifier, and the dummy data Flag used to indicate that the dummy data is invalid.
  • the virtual identifier may be used to indicate that the virtual data is invalid data, and the bit width of the virtual identifier may be equal to the bit width of the channel identifier.
  • the virtual identifier may be "CN:0", and the virtual data may also be called invalid data. This dummy data can be represented as VP.
  • S803 Encapsulate and send the first payload.
  • the data link layer encapsulates the first payload to obtain the first target message.
  • the first target message includes: a message header, a first payload and a message trailer.
  • the remaining bit width in the first payload excluding the bit width occupied by the first valid data is less than or equal to the bit width of the channel identifier, then write to the remaining bit width The padding data, wherein the first payload includes the first valid data and the padding data spliced in sequence.
  • Figure 9 is a schematic structural diagram of a target message provided by this application.
  • the target message includes: a message header, a payload and a message tail.
  • the payload includes the first valid data, padding data and virtual data that are spliced in sequence. data.
  • the first valid data includes a first channel identifier "CN:1" and first data
  • the dummy data includes a virtual identifier "CN:0" and dummy data.
  • the bit width of the first valid data is 12 bits
  • the bit width of the filling data is 20 bits
  • the bit width of the dummy data is 212 bits, for example.
  • Figure 10 is a schematic structural diagram of another target message provided by an embodiment of the present application.
  • the target message includes: a message header, a payload, and a message tail.
  • the payload includes the first valid data and padding that are spliced in sequence. data, second valid data and padding data.
  • the first valid data includes a first channel identifier and first data
  • the second valid data includes a second channel identifier and second data.
  • the first channel is identified as "CN:1”
  • the second channel is identified as "CN:2”
  • the bit width of the first valid data and the bit width of the second valid data are both 104 bits, the For example, the sum of the bit width of the first valid data and the bit width of the padding data is 128 bits.
  • Figure 11 is a schematic structural diagram of another target message provided by an embodiment of the present application.
  • (a) in Figure 11 is a schematic structural diagram of the first target message.
  • (b) in Figure 11 is a schematic diagram of the structure of the first target message. Schematic diagram of the structure of the second target message adjacent to the message.
  • the first target message includes: a message header, a first payload and a message tail, wherein the first payload includes the first valid data and the padding data that are spliced in sequence. and some second valid data.
  • the first valid data includes a first channel identifier and first data
  • the part of the second valid data includes a second channel identifier and part of the second data.
  • the second target message includes: a message header, a second payload and a message trailer, where the second payload includes the part of the second valid data that is spliced in sequence. Remaining data other than the second valid data, padding data and third valid data.
  • the first channel is identified as "CN:1”
  • the second channel is identified as "CN:2”
  • the bit width of the first valid data is 104 bits
  • the bit width of the second valid data is 155 bits. example.
  • This third valid data is not shown in FIG. 10 .
  • Figure 12 is a flow chart of another data transmission method provided by an embodiment of the present application. The method includes:
  • S120 Receive and parse the first target message and obtain the first payload.
  • the input/output interface receives the first target message from the input/output interface of the sending side die, and the data link layer parses the first target message to obtain the first payload.
  • S121 According to the first payload, determine the first valid data and at least part of the second valid data.
  • the bus adapter determines the first valid data and at least part of the second valid data according to the first payload. Specifically, the bus adapter splits the first payload according to the alignment bit width to obtain the first valid data, padding data and at least part of the second valid data.
  • the alignment bit width may be a sliding window bit width, and the window size of the sliding window bit width may be fixed.
  • the bus adapter performs sliding window reading on the first payload according to the aligned bit width (fixed bit) each time to obtain the first valid data, padding data and at least part of the second valid data.
  • the sliding window width can also be called the sliding window read bit width.
  • the alignment bit width can be preset.
  • the alignment bit width can be preset by the sending side die, and the sending side die sends the preset alignment bit width to the receiving side die; or the alignment bit width can be the receiving side die.
  • the receiving side die sends the preset alignment bit width to the sending side die; or the alignment bit width can be preconfigured for the sending side die and the receiving side die. Filmy.
  • the embodiments of this application do not specifically limit this.
  • the size of the alignment bit width can be determined based on actual needs and the experience of relevant technical personnel, and is not specifically limited in this application. In practical applications, the alignment bit width can usually be equal to 8 bits, 16 bits, 32 bits, 64 bits or 128 bits. In the following embodiments, the alignment bit width is 32 bits as an example.
  • the first valid data includes a first channel identifier and first data
  • at least part of the second valid data includes a second channel identifier and at least part of the second data
  • the first channel identifier is used to indicate the first bus channel
  • the second channel identifier is used to indicate the second bus channel
  • S122 Send the first valid data to the first bus channel corresponding to the first valid data, and send at least part of the second valid data to the second bus channel corresponding to the second valid data.
  • the method should include: the bus adapter determines the sending priority of the first valid data and at least part of the second valid data according to the first channel identifier and the second channel identifier.
  • the first valid data and at least part of the second valid data are sent according to the sending priorities of the first valid data and at least part of the second valid data.
  • the second valid data if at least part of the second valid data is part of the second valid data, receive and parse the second target message adjacent to the first target message to obtain the second payload; according to The second payload determines the remaining data in the second valid data except the part of the second valid data; and determines the second valid data based on the remaining data and the part of the second valid data and sends it.
  • the method should include: deleting the first channel identifier in the first valid data and at least part of the second channel identifier in the second valid data.
  • the method further includes: determining the first valid data, the second valid data and at least part of the third valid data according to the first payload; and sending the first valid data to the third valid data. a first bus channel corresponding to the valid data, sending the second valid data to the second bus channel corresponding to the second valid data, and sending at least part of the third valid data to the third bus corresponding to the third valid data aisle.
  • Figure 13 is a flow chart of another data transmission method provided by an embodiment of the present application. The method includes:
  • S130 Receive and parse the first target message and obtain the first payload.
  • S132 Send the first valid data to the first bus channel corresponding to the first valid data.
  • Embodiments of the present application provide a data transmission method, which method includes: determining first valid data from the first bus channel, determining second valid data from the second bus channel; determining based on the first valid data and the second valid data.
  • a first payload wherein the first payload includes the first valid data, padding data and at least part of the second valid data that are spliced in sequence, and the bit width of the first valid data is the sum of the bit width of the padding data. The sum is an integer multiple of the aligned bit width; the first payload is encapsulated into a first target packet, and the first target packet is sent.
  • the first payload includes the first valid data, padding data and at least part of the second valid data, so that there is no idle (remaining) bit width in the first payload, and the first payload is encapsulated
  • the efficiency of data transmission is improved.
  • the receiving side die receives the first target message, it can quickly obtain the first valid data and at least part of the second valid data according to the alignment bit width, thereby reducing the processing delay of the receiving side die. Improved processing efficiency.
  • the data transmission device includes corresponding hardware structures and/or software modules that perform each function.
  • the present application can be implemented in the form of hardware or a combination of hardware and computer software. Whether a function is performed by hardware or computer software driving the hardware depends on the specific application and design constraints of the technical solution. Skilled artisans may implement the described functionality using different methods for each specific application, but such implementations should not be considered beyond the scope of this application.
  • Embodiments of the present application can divide the data transmission device into functional modules according to the above method examples.
  • each functional module can be divided corresponding to each function, or two or more functions can be integrated into one processing module.
  • the above integrated modules can be implemented in the form of hardware or software function modules. It should be noted that the division of modules in the embodiment of the present application is schematic and is only a logical function division. In actual implementation, there may be other division methods.
  • FIG 14 shows a possible structural diagram of the data transmission device involved in the above embodiment.
  • the data transmission device includes: an acquisition unit 100, a determination unit 101. Encapsulating unit 102 and sending unit 103.
  • the acquisition unit 100 is used to support the data transmission device to perform S501 in the above method embodiment;
  • the determination unit 101 is used to support the data transmission device to perform S502 in the above method embodiment;
  • the encapsulation unit 102 and the sending unit 103 used to support the data transmission device to perform S503 in the above method embodiment.
  • the acquisition unit 100 may be the receiving module 401 shown in FIG. 4
  • the determining unit 101 may be the splicing module/splitting module 404 shown in FIG. 4
  • the packaging unit 102 may be the encapsulating unit 102 shown in FIG. 3
  • the sending unit 103 may be the input/output interface 333 shown in FIG. 3 .
  • FIG 15 shows a possible structural diagram of the data transmission device involved in the above embodiment.
  • the data transmission device includes: a receiving unit 201, an analyzing unit 202, a determining unit 203 and a sending unit 204.
  • the receiving unit 201 and the parsing unit 202 are used to support the data transmission device to perform S120 in the above method embodiment;
  • the determining unit 203 is used to support the data transmission device to perform S121 in the above method embodiment;
  • the sending unit 204 It is used to support the data transmission device to perform S122 in the above method embodiment.
  • the receiving unit 201 can be the receiving module 401 shown in Figure 4
  • the parsing unit 202 and the determining unit 203 can be the splicing module/splitting module 404 shown in Figure 4
  • the sending unit 204 can be The input/output interface 333 shown in 3.
  • the disclosed devices and methods can be implemented in other ways.
  • the device embodiments described above are only illustrative.
  • the division of modules or units is only a logical function division.
  • there may be other division methods for example, multiple units or components may be The combination can either be integrated into another device, or some features can be omitted, or not implemented.
  • the coupling or direct coupling or communication connection between each other shown or discussed may be through some interfaces, and the indirect coupling or communication connection of the devices or units may be in electrical, mechanical or other forms.
  • each functional unit in each embodiment of the present application can be integrated into one processing unit, each unit can exist physically alone, or two or more units can be integrated into one unit.
  • the above integrated units can be implemented in the form of hardware or software functional units.
  • the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it may be stored in a readable storage medium.
  • the technical solutions of the embodiments of the present application are essentially or contribute to the existing technology, or all or part of the technical solution can be embodied in the form of a software product, and the software product is stored in a storage medium includes several instructions to cause the device to execute all or part of the steps of the methods described in various embodiments of this application.
  • the aforementioned storage media include: U disk, mobile hard disk, ROM, RAM, magnetic disk or optical disk and other media that can store program codes.
  • Another aspect of the present application provides a bare chip, which includes a logic device, and the logic device is used to perform one or more steps from S501 to S503 in the above method embodiment.
  • Another aspect of the present application provides a bare chip, which includes a logic device, and the logic device is used to perform one or more steps from S801 to S803 in the above method embodiment.
  • a die which includes a logic device, and the logic device is used to perform one or more steps from S120 to S122 in the above method embodiment.
  • Another aspect of the present application provides a die, which includes a logic device for performing one or more steps from S130 to S132 in the above method embodiment.
  • the present application provides a system-on-chip, which system includes a plurality of dies coupled to each other.
  • the plurality of dies include a first die and a second die.
  • the first die is used to perform the above-mentioned One or more steps from S501 to S503 in the method embodiment, or the first die is used to perform one or more steps from S801 to S803 in the above method embodiment;
  • the second die is used to Perform one or more steps from S120 to S122 in the above method embodiment; or, the second die is used to perform one or more steps from S130 to S132 in the above method embodiment.
  • a computer-readable storage medium includes computer instructions.
  • the computer instructions When the computer instructions are run on a data transmission device, the relevant steps in the above method embodiments are executed.
  • a computer program product containing instructions is provided.
  • the computer program product When the computer program product is run on a computer device, it causes the data transmission device to perform the relevant steps in the above method embodiment.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Communication Control (AREA)

Abstract

本申请提供一种数据传输方法及装置,涉及通信技术领域,用于提高数据传输效率。该方法包括:获得第一有效数据和第二有效数据,该第一有效数据包括来自第一总线通道的第一数据,该第二有效数据包括来自第二总线通道的第二数据;根据该第一有效数据和该第二有效数据确定第一净荷,其中,该第一净荷中包括依次拼接的该第一有效数据、填充数据和至少部分该第二有效数据;封装并发送该第一净荷。在此过程中,第一净荷中包括该第一有效数据、填充数据和至少部分该第二有效数据,使得该第一净荷中没有空闲(剩余)的位宽,将第一净荷封装后发送给接收侧裸片时,提高了数据传输的效率。

Description

一种数据传输方法及装置 技术领域
本申请涉及通信技术领域,尤其涉及一种数据传输方法及装置。
背景技术
片上系统(system on chip,SOC)通过片内总线实现内部子系统之间的互联,比如,片内总线可以是高级可扩展接口(advanced extensible interface,AXI)总线、高级可扩展接口一致性扩展(advanced extensible interface coherent expan,ACE)总线和一致性集线器接口(coherent hub interface,CHI)总线等。图1为一种SOC的结构示意图,SOC包括:媒体子系统,中央处理器(central processing unit,CPU)子系统和人工智能(artificial intelligence,AI)子系统。其中,媒体子系统包括视频显示处理(video display processor,VDP)模块、通信模块FI和第一总线;CPU子系统包括CPU、IO模块、多个双倍速率(double data rate,DDR)存储模块和第一总线;AI子系统包括多个网络处理器(natural processing unit,NPU)和第一总线,其中,第一总线可以是上述片内总线中的任意一种总线。具体的,媒体子系统和AI子系统中的每个模块或处理器均通过各自的第一总线与CPU子系统中的第一总线互联,以实现多个子系统之间的数据传输。图1所示的SOC集成在一个裸片(Die)上,以AI子系统包括两个NPU,CPU子系统包括3个DDR存储模块为例。
目前,当图1中所示的媒体子系统、CPU子系统和AI子系统分别集成在不同的裸片上时,可以通过芯粒(chiplet)接口将多个裸片进行拼接,已实现多个裸片之间的互联。但是,如何通过芯粒接口以较高的传输效率实现不同裸片之间的数据传输成为亟需解决的问题。
发明内容
本申请提供一种数据传输方法及装置,涉及通信技术领域,用于提高数据传输效率。其中,该数据传输方法应用于片上系统中,该片上系统包括相互耦合的多个裸片,该多个裸片包括第一裸片和第二裸片,该第一裸片包括第一芯粒接口,该第二裸片包括第二芯粒接口,该第一裸片和第二裸片可以通过该第一芯粒接口和该第二芯粒接口传输数据。对于该第一裸片和第二裸片种的任意一个裸片,该裸片可以为接收侧裸片,也可以为发送侧裸片。
为达到上述目的,本申请采用如下技术方案:
第一方面,对于发送侧裸片提供一种数据传输方法,该方法包括:获得第一有效数据和第二有效数据,该第一有效数据包括来自第一总线通道的第一数据,该第二有效数据包括来自第二总线通道的第二数据;根据该第一有效数据和该第二有效数据确定第一净荷,其中,该第一净荷中包括依次拼接的该第一有效数据、填充数据和至少部分该第二有效数据;封装并发送该第一净荷。
上述技术方案中,将第一有效数据和至少部分该第二有效数据拼接为第一净荷, 第一净荷中包括该第一有效数据、填充数据和至少部分该第二有效数据,将第一净荷封装成后发送给接收侧裸片,即将该第一有效数据和该第二有效数据拼接在一个净荷中发送,另一方面,第一净荷中包括该第一有效数据、填充数据和至少部分该第二有效数据,即该第一净荷中没有空闲(剩余)的位宽,即该第一净荷中没有空闲的比特位,将第一净荷封装后发送时,提高了数据传输的效率。
在第一方面的一种可能的实现方式中,该第一有效数据的位宽和该填充数据的位宽之和等于对齐位宽的整数倍,其中,该对齐位宽可以为滑窗位宽,该滑窗位宽的窗口大小可以是固定的。比如,该对齐位宽可以为拆分该第一净荷时的滑窗位宽,该滑窗位宽也可以称为滑窗读取位宽。上述可能的实现方式中,该第一有效数据在该第一净荷中的起始比特位为0比特,该第一有效数据的位宽和该填充数据的位宽之和等于对齐位宽的整数倍,使得该第二有效数据在该第一净荷中的起始比特位也等于对齐位宽的整数倍,将该第一净荷封装后发送给接收侧裸片,接收侧裸片在拆分该第一净荷时,每次按照该对齐位宽(固定的bit)对该第一净荷进行滑窗读取,以快速确定该第一净荷中的第一有效数据和至少部分该第二有效数据。与通常情况下该接收侧裸片每次按照一个bit对该第一净荷进行滑窗读取相比,降低了接收侧裸片的处理时延,提高了处理效率。
在第一方面的一种可能的实现方式中,该填充数据的位宽小于该对齐位宽。上述可能的实现方式中,该填充数据的位宽小于该对齐位宽,通过在该第一有效数据之后拼接该填充数据,可以使得该第一有效数据的位宽和该填充数据的位宽之和等于对齐位宽的整数倍,即使得该第二有效数据在该第一净荷中的起始比特位也等于对齐位宽的整数倍,将该第一净荷封装后发送给接收侧裸片时,接收侧裸片可以根据该对齐位宽从该第一净荷中快速确定该第一有效数据和至少部分该第二有效数据,降低了接收侧裸片的处理时延,提高了处理效率。
在第一方面的一种可能的实现方式中,该对齐位宽等于8比特(bit)、16bit、32bit、64bit或128bit。上述可能的实现方式中,接收侧裸片可以根据该对齐位宽从该第一净荷中快速确定该第一有效数据和至少部分该第二有效数据,降低了接收侧裸片的处理时延,提高了处理效率。
在第一方面的一种可能的实现方式中,该第一有效数据包括第一通道标识和该第一数据,该第二有效数据包括第二通道标识和该第二数据,其中,该第一通道标识用于指示该第一总线通道,该第二通道标识用于该指示第二总线通道。上述可能的实现方式中,可以根据该第一通道标识和该第二通道标识,确定该第一数据和该第二数据的发送优先级,提高了数据的使用效率;另一方面,可以根据该第一通道标识确定该第一数据的位宽,根据该第二通道标识确定第二数据的位宽,从而根据该第一有效数据和该第二有效数据确定第一净荷时,能快速确定该填充数据的位宽,提高拼接的速度。
在第一方面的一种可能的实现方式中,该方法还包括:根据该第一通道标识和该第二通道标识,确定该第一有效数据和该第二有效数据的发送优先级。上述可能的实现方式中,根据该第一有效数据和该第二有效数据的发送优先级发送该第一有效数据和该第二有效数据,提高了有效数据的使用效率。
在第一方面的一种可能的实现方式中,该第一通道标识的位宽和该第二通道标识的位宽均为4bit。上述可能的实现方式中,根据该通道标识的位宽和该第二通道标识的位宽,可以确定该第一有效数据的位宽和该第二有效数据的位宽,从而根据该第一有效数据和该第二有效数据确定第一净荷时,能快速确定该填充数据的位宽,提高拼接的速度。
在第一方面的一种可能的实现方式中,根据该第一有效数据和该第二有效数据确定第一净荷,包括:若该第一净荷的位宽不足以承载该第二有效数据,则只向该第一净荷中填充部分第二有效数据。上述可能的实现方式中,若该第一净荷的位宽不足以承载该第二有效数据,将该第二有效数据中的部分第二有效数据填充到该第一净荷中,使得该第一净荷中没有空闲的的位宽,即该第一净荷中没有空闲的比特位,将第一净荷封装后发送给接收侧裸片时,该第一净荷中没有空闲的比特位,提高了数据传输的效率。
在第一方面的一种可能的实现方式中,该方法还包括:将该第二有效数据中除该部分第二有效数据的剩余数据填充至第二净荷,该第一净荷与该第二净荷相邻。上述可能的实现方式中,将第二有效数据中除该部分第二有效数据的剩余数据填充至与该第二净荷相邻的第二净荷中,将该第二净荷封装后发送至接收侧裸片中时,接收侧裸片可以从相邻的该第二净荷中快速确定该剩余数据,提高了数据确定的速度。
在第一方面的一种可能的实现方式中,根据该第一有效数据和该第二有效数据确定第一净荷,包括:若该第一净荷中除去被该第一有效数据、该填充数据和该第二有效数据占据的位宽的剩余位宽小于或等于该通道标识的位宽,则向该剩余位宽中写入填充数据。上述可能的实现方式中,该第一净荷中除去被该第一有效数据、该填充数据和该第二有效数据占据的位宽的剩余位宽不足以承载一个通道标识的位宽,则向该剩余位宽中写入填充数据,使得该第一净荷中没有空闲的比特位,将第一净荷封装后发送给接收侧裸片时,该第一净荷中没有空闲的比特位,提高了数据传输的效率。
在第一方面的一种可能的实现方式中,该方法还包括:若该剩余位宽大于该通道标识的位宽,则获得第三有效数据,该第三有效数据包括来自第三总线通道的第三数据;根据该第一有效数据和该第二有效数据确定第一净荷包括:根据该第一有效数据、该第二有效数据和该第三有效数据确定该第一净荷,其中,该第一净荷中包括依次拼接的该第一有效数据、该填充数据、该第二有效数据、该填充数据和至少部分该第三有效数据。上述可能的实现方式中,该第一净荷中没有空闲的比特位,将第一净荷封装后发送给接收侧裸片时,该第一净荷中没有空闲的比特位,提高了数据传输的效率。
在第一方面的一种可能的实现方式中,该封装后的所述第一净荷包括:报文头和报文尾。上述可能的实现方式中,可以通过报文头和报文尾快速确定该第一净荷对应的报文的类型和相关操作,提高了第一净荷的处理效率。
第二方面,对于发送侧裸片提供一种数据传输方法,该方法包括:获得第一有效数据,该第一有效数据包括来自第一总线通道的第一数据;根据该第一有效数据和虚拟数据确定第一净荷,其中,该第一净荷中包括依次拼接的该第一有效数据、填充数据和该虚拟数据,该虚拟数据包括虚拟标识,该虚拟标识用于指示该虚拟数据是无效的;封装并发送该第一净荷。
上述技术方案中,若第一有效数据的优先级较高,无法长时间等待其他有效数据,或者,当前时刻其他有效数据均已完成拼接,没有其他有效数据需要拼接,且该第一净荷中除去被该第一有效数据占据的位宽的剩余位宽大于该对齐位宽,由于该填充数据的位宽小于该对齐位宽,此时无法向该剩余位宽中全部写入填充数据,则根据该第一有效数据和虚拟数据确定第一净荷,其中,该第一净荷中包括依次拼接的该第一有效数据、填充数据和该虚拟数据,该虚拟数据为无效数据,使得该第一净荷中没有空闲(剩余)的位宽,即该第一净荷中没有空闲的比特位,将第一净荷封装成第一目标报文时,该报文中没有空闲的比特位,提高了数据传输的效率。
第三方面,对于接收侧裸片提供一种数据传输方法,该方法包括:接收并解析第一目标报文,得到第一净荷;根据该第一净荷,确定第一有效数据和至少部分第二有效数据;发送该第一有效数据至该第一有效数据对应的第一总线通道,发送至少部分该第二有效数据至该第二有效数据对应的第二总线通道。
上述技术方案中,通过解析该第一目标报文得到第一净荷,并根据该第一净荷确定第一有效数据和至少部分第二有效数据,提高了数据接收效率。
在第三方面的一种可能的实现方式中,根据该第一净荷,确定第一有效数据和至少部分第二有效数据,包括:根据对齐位宽拆分该第一净荷,得到该第一有效数据、填充数据和至少部分该第二有效数据。上述可能的实现方式中,可以直接根据对齐位宽拆分该第一净荷,而不用依次访问该第一净荷中的每个比特位,降低了数据处理时延,进一步,提高了数据处理效率。
在第三方面的一种可能的实现方式中,该第一有效数据的位宽和该填充数据的位宽之和是该对齐位宽的整数倍。上述可能的实现方式中,该第一有效数据在该第一净荷中的起始比特位为0比特,该第一有效数据的位宽和该填充数据的位宽之和等于对齐位宽的整数倍,使得该第二有效数据在该第一净荷中的起始比特位也等于对齐位宽的整数倍,可以根据对齐位宽直接确定第一有效数据和至少部分第二有效数据,而不用依次访问该第一净荷中的每个比特位,降低了数据处理时延,进一步,提高了数据处理效率。
在第三方面的一种可能的实现方式中,该填充数据的位宽小于该对齐位宽。上述可能的实现方式中,该填充数据的位宽小于该对齐位宽,通过在该第一有效数据之后拼接该填充数据,使得该第一有效数据的位宽和该填充数据的位宽之和等于对齐位宽的整数倍,该第二有效数据在该第一净荷中的起始比特位也等于对齐位宽的整数倍,可以根据对齐位宽直接确定第一有效数据和至少部分第二有效数据,而不用依次访问该第一净荷中的每个比特位,降低了数据处理时延,进一步,提高了数据处理效率。
在第三方面的一种可能的实现方式中,该对齐位宽等于8比特(bit)、16bit、32bit、64bit或128bit。上述可能的实现方式中,可以根据该对齐位宽从该第一目标报文中快速确定该第一有效数据和至少部分该第二有效数据,降低了数据处理时延,提高了数据处理效率。
在第三方面的一种可能的实现方式中,该第一有效数据包括第一通道标识和第一数据,至少部分该第二有效数据包括第二通道标识和至少部分第二数据,其中,该第一通道标识用于指示该第一总线通道,该第二通道标识用于指示该第二总线通道。上 述可能的实现方式中,上述可能的实现方式中,可以根据该第一通道标识和该第二通道标识,确定该第数据和该第二数据的发送优先级,提高了数据的使用效率。
在第三方面的一种可能的实现方式中,该方法还包括:根据该第一通道标识和该第二通道标识,确定该第一有效数据和至少部分该第二有效数据的发送优先级。上述可能的实现方式中,可以根据该第一通道标识和该第二通道标识,确定该第数据和该第二数据的发送优先级,提高了数据的使用效率。
在第三方面的一种可能的实现方式中,在发送该第一有效数据至该第一有效数据对应的第一总线通道,发送至少部分该第二有效数据至该第二有效数据对应的第二总线通道之前,该方法还包括:删除该第一有效数据中的该第一通道标识,以及至少部分该第二有效数据中的该第二通道标识。上述可能的实现方式中,保证了发送的数据的准确性。
在第三方面的一种可能的实现方式中,该发送至少部分该第二有效数据至该第二有效数据对应的第二总线通道,包括:若至少部分该第二有效数据为部分第二有效数据,接收并解析第二目标报文,得到第二净荷;根据该第二净荷,确定该第二有效数据中除该部分第二有效数据外的剩余数据;根据该剩余数据和该部分第二有效数据,确定该第二有效数据并发送。上述可能的实现方式中,将该部分第二有效数据和剩余数据确定第二有效数据之后,发送该第二有效数据,保证了发送的数据的准确性。
在第三方面的一种可能的实现方式中,该方法还包括:根据该第一净荷,确定该第一有效数据、该第二有效数据和至少部分第三有效数据;发送该第一有效数据至该第一有效数据对应的第一总线通道,发送该第二有效数据至该第二有效数据对应的第二总线通道,发送至少部分该第三有效数据至该第三有效数据对应的第三总线通道。上述可能的实现方式中,将不同的有效数据发送至该有效数据对应的总线通道,保证了每个总线通道中有效数据的准确性。
在第三方面的一种可能的实现方式中,该目标报文包括:报文头和报文尾。上述可能的实现方式中,可以通过报文头和报文尾快速确定该报文的类型和相关操作,提高了报文处理的效率。
在第四方面,提供一种数据传输方法,该方法包括:接收并解析第一目标报文,得到第一净荷;根据该第一净荷,确定第一有效数据;发送该第一有效数据至该第一有效数据对应的第一总线通道。
上述技术方案中,通过解析该第一目标报文得到第一净荷,并根据该第一净荷确定第一有效数据,提高了数据接收效率。
在第五方面,提供一种数据传输装置,该装置包括:获取单元,用于获得第一有效数据和第二有效数据,该第一有效数据包括来自第一总线通道的第一数据,该第二有效数据包括来自第二总线通道的第二数据;确定单元,用于根据该第一有效数据和该第二有效数据确定第一净荷,其中,该第一净荷中包括依次拼接的该第一有效数据、填充数据和至少部分该第二有效数据;封装单元,用于封装该第一净荷;发送单元,用于发送封装后的该第一净荷。
在第五方面的一种可能的实现方式中,该第一有效数据的位宽和该填充数据的位宽之和等于对齐位宽的整数倍。
在第五方面的一种可能的实现方式中,该填充数据的位宽小于该对齐位宽。
在第五方面的一种可能的实现方式中,该对齐位宽等于8比特(bit)、16bit、32bit、64bit或128bit。
在第五方面的一种可能的实现方式中,该第一有效数据包括第一通道标识和该第一数据,该第二有效数据包括第二通道标识和该第二数据,其中,该第一通道标识用于指示该第一总线通道,该第二通道标识用于该指示第二总线通道。
在第五方面的一种可能的实现方式中,该确定单元还用于:根据该第一通道标识和该第二通道标识,确定该第一有效数据和该第二有效数据的发送优先级。
在第五方面的一种可能的实现方式中,该第一通道标识的位宽和该第二通道标识的位宽均为4bit。
在第五方面的一种可能的实现方式中,该确定单元还用于:若该第一净荷的位宽不足以承载该第二有效数据,则只向该第一净荷中填充部分第二有效数据。
在第五方面的一种可能的实现方式中,该确定单元,还用于将该第二有效数据中除该部分第二有效数据的剩余数据填充至第二净荷,该第一净荷与该第二净荷相邻。
在第五方面的一种可能的实现方式中,该确定单元还用于:若该第一净荷中除去被该第一有效数据、该填充数据和该第二有效数据占据的位宽的剩余位宽小于或等于该通道标识的位宽,则向该剩余位宽中写入填充数据。
在第五方面的一种可能的实现方式中,该获取单元,还用于若该剩余位宽大于或等于该通道标识的位宽,获得第三有效数据,该第三有效数据包括来自第三总线通道的第三数据;根据该第一有效数据和该第二有效数据确定第一净荷包括:根据该第一有效数据、该第二有效数据和该第三有效数据确定该第一净荷,其中,该第一净荷中包括依次拼接的该第一有效数据、填充数据、该第二有效数据、填充数据和至少部分该第三有效数据。
在第五方面的一种可能的实现方式中,封装后的该第一净荷包括:报文头和报文尾。
在第六方面,提供一种数据传输装置,该装置包括:获取单元,用于获得第一有效数据,该第一有效数据包括来自第一总线通道的第一数据;该确定单元,还用于根据该第一有效数据和虚拟数据确定第一净荷,其中,该第一净荷中包括依次拼接的该第一有效数据、填充数据和该虚拟数据,该虚拟数据包括虚拟标识,该虚拟标识用于指示该虚拟数据是无效的;封装单元,用于封装该第一净荷;发送单元,用于发送封装后的该第一净荷。
在第七方面,提供一种数据传输装置,该装置包括:接收单元,用于接收第一目标报文;解析单元,用于解析该第一目标报文,得到第一净荷;确定单元,用于根据该第一净荷,确定第一有效数据和至少部分第二有效数据;发送单元,用于发送该第一有效数据至该第一有效数据对应的第一总线通道,发送至少部分该第二有效数据至该第二有效数据对应的第二总线通道。
在第七方面的一种可能的实现方式中,该确定单元还用于:根据对齐位宽拆分该第一净荷,得到该第一有效数据、填充数据和至少部分该第二有效数据。
在第七方面的一种可能的实现方式中,该第一有效数据的位宽和该填充数据的位 宽之和是该对齐位宽的整数倍。
在第七方面的一种可能的实现方式中,该填充数据的位宽小于该对齐位宽。
在第七方面的一种可能的实现方式中,该对齐位宽等于8比特(bit)、16bit、32bit、64bit或128bit。
在第七方面的一种可能的实现方式中,该第一有效数据包括第一通道标识和第一数据,至少部分该第二有效数据包括第二通道标识和至少部分第二数据,其中,该第一通道标识用于指示该第一总线通道,该第二通道标识用于指示该第二总线通道。
在第七方面的一种可能的实现方式中,该确定单元还用于:根据该第一通道标识和该第二通道标识,确定该第一有效数据和至少部分该第二有效数据的发送优先级。
在第七方面的一种可能的实现方式中,该第一通道标识的位宽和该第二通道标识的位宽均为4bit。
在第七方面的一种可能的实现方式中,该装置还包括删除单元,该删除单元用于:删除该第一有效数据中的该第一通道标识,以及至少部分该第二有效数据中的该第二通道标识。
在第七方面的一种可能的实现方式中,若至少部分该第二有效数据为部分第二有效数据,该接收单元,还用于接收并解析第二目标报文,得到第二净荷;该确定单元,还用于根据该第二净荷,确定该第二有效数据中除该部分第二有效数据外的剩余数据;该确定单元,还用于根据该剩余数据和该部分第二有效数据,确定该第二有效数据;该发送单元,还用于发送该第二有效数据。
在第七方面的一种可能的实现方式中,该确定单元,还用于根据该第一净荷,确定该第一有效数据、该第二有效数据和至少部分第三有效数据;该发送单元,还用于发送该第一有效数据至该第一有效数据对应的第一总线通道,发送该第二有效数据至该第二有效数据对应的第二总线通道,发送至少部分该第三有效数据至该第三有效数据对应的第三总线通道。
在第七方面的一种可能的实现方式中,该目标报文包括:报文头和报文尾。
在第八方面,提供一种数据传输装置,该装置包括:接收单元,用于接收并解析第一目标报文,得到第一净荷;确定单元,用于根据该第一净荷,确定第一有效数据;发送单元,用于发送该第一有效数据至该第一有效数据对应的第一总线通道。
本申请的又一方面,提供一种裸片,该裸片包括逻辑器件,该逻辑器件用于执行第一方面或者第一方面的任一种可能的实现方式所提供的数据传输方法。
本申请的又一方面,提供一种裸片,该裸片包括逻辑器件,该逻辑器件用于执行第二方面所提供的数据传输方法。
本申请的又一方面,提供一种裸片,该裸片包括逻辑器件,该逻辑器件用于执行上述第三方面或者第三方面的任一种可能的实现方式所提供的数据传输方法。
本申请的又一方面,提供一种裸片,该裸片包括逻辑器件,该逻辑器件用于执行上述四方面所提供的数据传输方法。
本申请的又一方面,提供一种片上系统,该片上系统包括相互耦合的多个裸片,该多个裸片包括第一裸片和第二裸片,该第一裸片用于执行上述第一方面或者第一方面的任一种可能的实现方式所提供的数据传输方法,或者,上述第二方面所提供的数 据传输方法;该第二裸片用于执行上述第三方面或者第三方面的任一种可能的实现方式所提供的数据传输方法,或者,上述第四方面所提供的数据传输方法。
在本申请的又一方面,提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当该计算机指令在数据传输装置上运行时,执行上述方法实施例中的相关步骤。
在本申请的又一方面,提供一种包含指令的计算机程序产品,当计算机程序产品在计算机上设备运行时,使得数据传输装置执行上述方法实施例中的相关步骤。
可以理解地,上述提供的一种数据传输装置、片上系统、裸片、计算机可读存储介质和计算机程序产品可用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
附图说明
图1为一种SOC的结构示意图;
图2为另一种SOC的结构示意图;
图3为本申请实施例提供的一种片上系统的结构示意图;
图4为本申请实施例提供的一种总线适配器的结构示意图;
图5为本申请实施例提供的一种数据传输方法的流程图;
图6为本申请实施例提供的一种第一有效数据的结构示意图;
图7为本申请实施例提供的一种目标报文的结构示意图;
图8为本申请实施例提供的另一种数据传输方法的流程图;
图9为本申请提供的一种目标报文的结构示意图;
图10本申请实施例提供的另一种目标报文的结构示意图;
图11为本申请实施例提供的又一种目标报文的结构示意图;
图12为本申请实施例提供的又一种数据传输方法的流程图;
图13为本申请实施例提供的另一种数据传输方法的流程图;
图14为本申请实施例提供的一种数据传输装置的结构示意图;
图15为本申请实施例提供的另一种数据传输装置的结构示意图。
具体实施方式
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a、b、c、a-b、a-c、b-c、或a-b-c,其中a,b,c可以是单个,也可以是多个。另外,本申请实施例采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。例如,第一阈值和第二阈值仅仅是为了区分不同的阈值,并不对其先后顺序进行限定。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定。
需要说明的是,本申请中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不 应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在介绍本申请实施例之前,首先对片上系统(system on chip,SOC)的相关知识进行介绍说明。
片上系统(system on chip,SOC)通过片内总线实现内部子系统之间的互联,比如,片内总线可以包括高级可扩展接口(advanced extensible interface,AXI)总线、高级可扩展接口一致性扩展(advanced extensible interface coherent expan,ACE)总线和一致性集线器接口(coherent hub interface,CHI)总线等。图1所示的SOC包括:媒体子系统,中央处理器(central processing unit,CPU)子系统和人工智能(artificial intelligence,AI)子系统。图1所示的SOC中的多个子系统均集成在一个裸片(Die)上时,媒体子系统和AI子系统中的每个模块或处理器均通过各自的第一总线与CPU子系统中的第一总线互联,以实现多个子系统之间的数据传输。
其中,不同的片内总线(以下简称为总线)由于协议不同,其定义的总线通道的数量和每个总线通道传输的数据的位宽不同。比如,AXI总线可以定义5个总线通道,该5个总线通道中的每个总线通道可以用于传输数据,且该5个总线通道中的每个总线通道传输的数据的位宽不同,比如,该5个总线通道包括写地址通道和写数据总线通道,该写地址总线通道的位宽可以为101比特(bit),该写数据总线通道的位宽可以为152bit。可选的,该5个总线通道不一定同时都有数据需要传输,即该5个总线通道不一定同时有效。该总线通道也可以称为传输通道,数据的位宽可以称为数据的长度。
将图1所示SOC中的多个子系统分别集成在不同的裸片上时,形成的片上系统的示意图如图2所示。图2为一种片上系统的结构示意图,该片上系统包括媒体裸片、AI裸片和CPU裸片。其中,媒体裸片中包括一个芯粒(chiplet)接口,AI裸片中包括一个芯粒接口,CPU裸片中包括两个芯粒接口,媒体裸片和AI裸片分别通过各自的芯粒接口与CPU裸片中对应的芯粒接口耦合,以实现多个裸片之间的互联。图2所述的片上系统还包括分装基板,该分装基板可用于分装该多个裸片。
可选的,当AI裸片和媒体裸片通过各自的芯粒接口向CPU裸片中对应的芯粒接口传输数据时,AI裸片和媒体裸片可以为发送侧,CPU裸片为接收侧;当CPU裸片中的两个芯粒接口分别向AI裸片和媒体裸片中的芯粒接口传输数据时,CPU裸片可以为发送侧,AI裸片和媒体裸片可以为接收侧。
目前,如何通过芯粒接口实现不同裸片之间的数据传输成为亟需解决的问题。可以通过以下两种方式实现不同裸片之间的数据传输。
方式一、发送侧裸片中的总线通过多个总线通道向芯粒接口传输数据,芯粒接口采集多个总线通道中每个总线通道中的数据,该多个总线通道对应得到多个数据,芯粒接口将多个数据传输至接收侧裸片中对应的芯粒接口。但是,芯粒接口采集到的多个数据包括有效数据和无效数据,无效数据的传输增大了额外的功耗;另一方面,当该多个数据的带宽较小时,降低了芯粒接口的带宽利用率,进一步降低了传输效率。
方式二、发送侧裸片中的总线通过多个总线通道向芯粒接口传输数据,芯粒接口采集并确定多个总线通道中每个总线通道中的有效数据,该多个总线通道对应得到多 个有效数据,对于该多个有效数据中的每个有效数据,该芯粒接口根据该有效数据生成固定位宽的报文,该多个有效数据对应得到多个报文,并将该多个报文传输至接收侧裸片中对应的芯粒接口。但是,由于该报文的位宽固定,且该多个有效数据的位宽不同,根据该有效数据生成固定位宽的报文时,使得该多个报文中某些报文的净荷中有空闲位宽,降低了芯粒接口的带宽利用率,进一步降低了传输效率。
基于此,本申请实施例提供一种数据传输方法及装置,用于提高数据传输效率。该方法应用于片上系统中,该方法包括:获得第一有效数据和第二有效数据,该第一有效数据包括来自第一总线通道的第一数据,该第二有效数据包括来自第二总线通道的第二数据;根据该第一有效数据和该第二有效数据确定第一净荷,其中,该第一净荷中包括依次拼接的该第一有效数据、填充数据和至少部分该第二有效数据;封装并发送该第一净荷。在此过程中,第一净荷中包括该第一有效数据、填充数据和至少部分该第二有效数据,使得该第一净荷中没有空闲(剩余)的位宽,将第一净荷封装后发送给接收侧裸片时,提高了数据传输的效率。
下面将片上系统结构进行介绍说明。图3为本申请实施例提供的一种片上系统的结构示意图,该片上系统包括相互耦合的多个裸片,对于该多个裸片中的任意一个裸片,该裸片即可以作为接收侧的裸片,也可以作为发送侧的裸片。该裸片包括:业务处理单元31、总线32和芯粒接口33。图3中以两个裸片为例,两个裸片通过各自的芯粒接口33相互耦合。
其中,在发送侧时,该业务处理单元31可用于根据访问需求生成与该总线32类型匹配的访问事务,并将访问事务发送给该总线32。在接收侧时,该业务处理单元31还用于接收来自该总线32的访问事务,并根据该访问事务进行相应的处理。
在发送侧时,该总线32可用于接收信息,比如,该总线32可用于接收来自该业务处理单元31的访问事务,该总线32还用于根据该访问事务得到多个数据,比如,该总线32可以将接收到的该访问事务进行拆分、合并等相关处理后得到该多个数据。该总线32还用于通过多个总线通道将该多个数据发送给该芯粒接口33。在接收侧时,总线32可用于接收来自该芯粒接口33的多个信息。该总线32还用于根据该多个数据和总线协议生成访问事务。该总线32还用于将该访问事务发送给该业务处理单元31。
芯粒接口33可用于接收数据、处理数据和发送数据。该芯粒接口33可以包括总线适配器331、数据链路层332和输入/输出接口333。其中,该输入/输出接口333可以包括输入接口和输出接口。比如,在发送侧时,该总线适配器331可用于接收多个数据,以及对该多个数据进行相应的处理,得到净荷。该数据链路层332可用于封装该净荷得到报文。该输入/输出接口333中的输出接口可以发送该报文。在接收侧时,该输入/输出接口333中的输入接口可用于接收报文。该数据链路层332可用于解析该报文得到净荷。该总线适配器331可用于拆分该净荷得到多个数据,比如,该总线适配器331可用于根据对齐位宽拆分该净荷,以得到该多个数据。其中,该输入/输出接口333也可以称为物理层。
下面结合图4对图3中的总线适配器的结构进行详细说明。
图4为本申请实施例提供的一种总线适配器的结构示意图,该总线适配器包括:接收模块401、存储模块402、调度模块403、拼接模块/拆分模块404和发送模块405。
其中,在发送侧,该接收模块401可用于采集多个总线通道中每个总线通道中的数据,对应得到多个数据,对于多个数据中的每个数据,该接收模块401还用于从该数据对应的总线通道中采集该总线通道的通道信息,该通道信息用于指示总线通道类型,该多个数据对应得到多个通道信息。在接收侧,该接收模块401还用于接收净荷,比如,该接收模块401还用于接收来自数据链路层的净荷。
该存储模块402可用于存储该多个数据和该多个通道标识。
该调度模块403可用于确定该多个数据的发送优先级,比如,该调度模块403可用于根据该多个数据中每个数据对应的通道标识确定该数据的发送优先级,以确定该多个数据的发送优先级。
该拼接模块/拆分模块404可以包括拼接模块和发送模块,该拼接模块可用于拼接数据,该发送模块拆分数据。比如,在发送侧,对于该多个通道信息中的每个通道新消息,该拼接模块可用于生成该通道信息对应的通道标识,对应得到多个通道标识;该拼接模块可用于在该多个数据的每个数据中设置该数据对应的通道标识,对应得到多个有效数据;该拼接模块还用于根据发送优先级和对齐位宽拼接该多个有效数据,得到净荷。在接收侧,该拼接模块/拆分模块404还用于根据该对齐位宽拆分该净荷,得到多个有效数据,对于该多个有效数据中的每个有效数据,该拼接模块/拆分模块404还用于拆分该有效数据,得到对应的数据和通道标识。
该发送模块405可用于发送该净荷,比如,在发送侧,该发送模块405可用于发送该净荷给数据链路层。该发送模块405还用于发送该多个数据,比如,在接收侧,该发送模块405还用于发送该多个数据给总线。
下面基于图3所示的片上系统,对本申请实施例提供的数据传输方法进行详细的说明。对于该多个裸片中的发送侧裸片,其数据传输方法的流程图如图5所示。
图5为本申请实施例提供的一种数据传输方法的流程图,该方法包括:
S501获得第一有效数据和第二有效数据,该第一有效数据包括来自第一总线通道的第一数据,该第二有效数据包括来自第二总线通道的第二数据。
其中,该总线适配器可用于获得该第一有效数据和该第二有效数据。具体的,该总线适配器可用于从该第一总线通道获得第一数据和第一通道信息,以及从该第二总线通道获得第二数据和第二通道信息,该第一通道信息和该第二通道信息用于分别指示该第一总线通道和该第二总线通道的类型;该总线适配器还用于根据该第一通道信息生成第一通道标识,根据该第二通道信息生成第二通道标识,该第一通道标识用于指示该第一总线通道,该第二通道标识用于该指示该第二总线通道;并分别在该第一数据和该第二数据中设置该第一通道标识和该第二通道标识,对应得到该第一有效数据和该第二有效数据。
可选的,该总线适配器可以分别在该第一数据和该第二数据的起始比特位置前设置该第一通道标识和该第二通道标识,以得到该第一有效数据和该第二有效数据。或者,可以在该第一数据和该第二数据的截止比特位置之后设置该第一通道标识和该第二通道标识,以得到该第一有效数据和该第二有效数据。本申请对此不做具体限定。
另外,该第一总线通道和该第二总线通道可以为来自同一个总线中的相同的总线通道或者不同的总线通道,比如,该第一总线通道和该第二总线通道均可以为AXI总 线中的写地址总线通道,该第一总线通道和该第二总线通道可以为AXI总线中的写地址总线通道和写数据总线通道。该第一总线通道和该第二总线通道也可以为来自不同总线中不同的总线通道,比如,该第一总线通道可以为第一总线中的总线通道,该第二总线通道可以为第二总线中的总线通道,该第一总线和该第二总线不同。
此外,该第一有效数据的位宽等于该第一通道标识的位宽与该第一数据的位宽之和,该第二有效数据的位宽等于该第二通道标识的位宽和第二数据的位宽之和。在实际应用中,该第一通道标识的位宽和该第二通道标识的位宽可以相等,比如,在一种可能的实现方式中,该第一通道标识的位宽和该第二通道标识的位宽可以均为4比特(bit)。以下实施例中均以该通道标识的位宽为4bit为例。
再者,该第一数据的位宽与该第一总线通道有关,该第二数据的位宽与该第二总线通道有关,即不同的总线通道中的数据的位宽不同。对于该第一总线通道和该第二总线通道中的任意一个总线通道,该总线通道可以为写地址(write address)总线通道、读地址(read address)总线通道、写数据(write data)总线通道、读数据(read data)总线通道或写响应(write response)总线通道。其中,该写地址总线通道和读地址总线通道中的数据的位宽可以为101bit,写数据总线通道中的数据的位宽可以为152bit,读数据总线通道中的数据的位宽可以为138bit,写响应总线通道中的数据的位宽可以为9bit。该总线通道的数据的位宽可以根据实际需求和相关技术人员的经验确定,本申请对此不做具体的限定。
图6为本申请实施例提供的一种第一有效数据的结构示意图,如图6所示,该第一有效数据包括第一数据和第一通道标识。图6中以该第一通道标识的位宽为4bit,该第一数据的位宽为101bit为例。
进一步的,该方法还包括,该总线适配器可用于根据该第一通道标识和该第二通道标识,确定该第一有效数据和该第二有效数据的发送优先级。其中,该发送优先级可以被用于决定有效数据的发送顺序,在本发明实施例中,所述发送优先级可以用于指示该第一有效数据和该第二有效数据的发送的先后顺序。
S502:根据该第一有效数据和该第二有效数据确定第一净荷,其中,该第一净荷中包括依次拼接的该第一有效数据、填充数据和至少部分该第二有效数据。
其中,该总线适配器可用于根据该第一有效数据和该第二有效数据确定第一净荷。具体的,该总线适配器可用于根据对齐位宽,依次拼接该第一有效数据、填充数据和该第二有效数据,得到该第一净荷。
另外,该对齐位宽可以为滑窗位宽,该滑窗位宽的窗口大小可以是固定的。比如,该对齐位宽可以为拆分该第一净荷时的滑窗位宽,该滑窗位宽也可以称为滑窗读取位宽。例如,接收侧裸片在拆分该第一净荷时,每次按照该对齐位宽(固定的bit)对该第一净荷进行滑窗读取,以快速确定该第一净荷中的第一有效数据和第二有效数据。与通常情况下该接收侧裸片每次按照一个bit对该第一净荷进行滑窗读取相比,提高了该接收侧裸片拆分该第一净荷的效率。
其次,该对齐位宽可以是预先设定的。比如,该对齐位宽可以是发送侧裸片预先设定的,该发送侧裸片将预先设定好的对齐位宽发送给该接收侧裸片;或者,该对齐位宽可以是接收侧裸片预先设定的,该接收侧裸片将预先设定好的对齐位宽发送给该 发送侧裸片;又或者,该对齐位宽可以是预先配置给该发送侧裸片和该接收侧裸片的。本申请实施例对此不做具体限定。该对齐位宽的大小可以根据实际需求和相关技术人员的经验确定,本申请对此不做具体的限定。在实际应用中,该对齐位宽通常可以等于8比特(bit)、16bit、32bit、64bit或128bit。以下实施例中均为该对齐位宽为32bit为例。
此外,根据该对齐位宽可以确定该第一有效数据和该第二有效数据之间的是否具有填充数据,以及该填充数据的位宽。比如,该发送侧裸片可以用于根据该对齐位宽确定该该第一有效数据和该第二有效数据之间的是否具有填充数据,以及该填充数据的位宽,使得该第一有效数据的位宽和该填充数据的位宽之和等于对齐位宽的整数倍,即使得该第二有效数据在该第一净荷中的起始比特位为该对齐位宽的整数倍。
例性的,当该对齐位宽为32bit,该第一数据的位宽为104bit时,由于104bit不是32bit的整数倍,为了使得该第二有效数据在该第一净荷中的起始比特位是该对齐位宽的整数倍,则该第一有效数据和该第二有效数据之间具有填充数据,且该填充数据的位宽为24bit,此时,该第一有效数据的位宽和该填充数据的位宽之和是128bit,是对齐位宽的4倍,由于第一净荷中的起始比特位是0bit,该第二有效数据在该第一净荷中的起始比特位是128bit。
在一种可能的实现方式中,该填充数据的位宽小于该对齐位宽。比如,当该对齐位宽为32bit时,该填充数据的位宽小于32bit。具体的,该总线适配器可以根据该第一有效数据的位宽和该对齐位宽确定该填充数据的位宽。在该实现方式中,该填充数据的位宽小于该对齐位宽,使得该第一有效数据的位宽和该填充数据的位宽之和等于对齐位宽的整数倍,即使得第二有效数据在该第一净荷中的起始位宽等于该对齐位宽的整数倍的同时,增大了该第一净荷中有效数据的数量,提高了该第一净荷的利用率。
进一步的,该总线适配器可用于根据该第一净荷的位宽、该有效数据的位宽(包括第一有效数据的位宽和第二有效数据的位宽)、对齐位宽和该通道标识的位宽,确定该第一净荷中包括的数据的类型。下面将第一净荷中包括的数据的类型的几种情况进行说明。
在第一种可能的实施例中,若该第一净荷中除去该第一有效数据和该填充数据(包括拼接在该第一有效数据之后的填充数据)占据的位宽的剩余位宽能够承载该第二有效数据(即该剩余位宽大于该第二有效数据的位宽),且该第一净荷中除去被该第一有效数据、该填充数据(包括拼接在该第一有效数据之后的填充数据和拼接在该第二有效数据之后的填充数据)和该第二有效数据占据的位宽的剩余位宽大于通道标识的位宽,这意味着第一净荷中还能够承载更多的有效数据。则在本实施例中,可以获得第三有效数据,该第三有效数据包括来自第三总线通道的第三数据,向该剩余位宽中写入至少部分该第三有效数据,此时,该第一净荷中包括依次拼接的该第一有效数据、填充数据、该第二有效数据、该填充数据和至少部分该第三有效数据,该第二有效数据的位宽和该第二有效数据之后的该填充数据的位宽之和是所述对齐位宽的整数倍。
在一种可能的实现方式中,若该第二有效数据的位宽等于该对齐位宽的整数倍时,且该第一净荷中除去被该第一有效数据、该填充数据(包括拼接在该第一有效数据之后的填充数据)和该第二有效数据占据的位宽的剩余位宽大于该通道标识的位宽,则 该第二有效数据和至少部分第三有效数据之间没有填充数据。
可选的,该第一净荷的位宽可以根据实际需求和相关技术人员的经验确定,本申请对此不做具体的限定。在实际应用中,该第一净荷的位宽可以为244bit。以下实施例中均以该第一净荷的位宽可以为244bit为例。
在第二种可能的实施例中,若该第一净荷中除去该第一有效数据和该填充数据(包括拼接在该第一有效数据之后的填充数据)占据的位宽的剩余位宽大于该第二有效数据的位宽,且该第一净荷中除去被该第一有效数据、该填充数据(包括拼接在该第一有效数据之后的填充数据和拼接在该第二有效数据之后的填充数据)和该第二有效数据占据的位宽的其余位宽小于或等于通道标识的位宽,这意味着其余位宽中不足以承载更多的有效数据。则在本实施例中,可以向其余位宽中写入填充数据,此时,该第一净荷中包括依次拼接的该第一有效数据、填充数据、该第二有效数据和填充数据。
在第三种可能的实施例中,若该第一净荷中除去该第一有效数据和该填充数据(包括拼接在该第一有效数据之后的填充数据)占据的位宽的剩余位宽大于该第二有效数据的位宽,且该第一净荷中除去被该第一有效数据、该填充数据(包括拼接在该第一有效数据之后的填充数据)和该第二有效数据占据的位宽的剩余位宽小于或等于通道标识的位宽,则向该剩余位宽中写入填充数据,此时,该第一净荷中包括依次拼接的该第一有效数据、填充数据、该第二有效数据和填充数据。
在第四种可能的实施例中,若该第一净荷中除去该第一有效数据和该填充数据(包括拼接在该第一有效数据之后的填充数据)占据的位宽的剩余位宽不足以承载所述第二有效数据,即该第一净荷中除去该第一有效数据和该填充数据(包括拼接在该第一有效数据之后的填充数据)占据的位宽的剩余位宽小于该第二有效数据的位宽,则只向所述第一净荷中填充部分第二有效数据。此时,该第一净荷中包括依次拼接的该第一有效数据、填充数据和该部分第二有效数据。
进一步的,该方法还包括:该总线适配器将该第二有效数据中除该部分第二有效数据的剩余数据填充至第二净荷,该第一净荷与所述第二净荷相邻;该数据链路层封装该第二净荷,得到第二目标报文。
在上述可能的实施例中,若该第一有效数据的位宽等于该对齐位宽的整数倍时,该第一有效数据和该第二有效数据之间没有该填充数据,此时,该第一有效数据和该第二有效数据之间的填充数据的位宽为零。
由上述实施例可知,该第一净荷中拼接的有效数据的数量与该有效数据的位宽、该第一净荷的位宽和该对齐位宽有关。
S503:封装并发送该第一净荷。
其中,数据链路层封装该第一净荷,得到第一目标报文。该第一目标报文包括:报文头(header)、第一净荷(payload)和报文尾(tail)。具体的,数据链路层生成该第一净荷对应的报文头和报文尾,并根据该报文头、第一净荷和报文尾得到第一目标报文。输入/输出接口发送该第一目标报文至接收侧裸片中的输入/输出接口。
其次,该第一报文的位宽等于该报文头的位宽、第一净荷的位宽和报文尾的位宽之和。比如,在实际应用中,该第一目标报文的位宽可以为256bit,其中,报文头的位宽可以为1bit,报文尾的位宽可以为11bit。以下实施例中,该第一目标报文的位 宽可以为256bit,其中,报文头的位宽可以为1bit,报文尾的位宽可以为11bit,净荷的位宽为244为例。
图7为本申请实施例提供的一种目标报文的结构示意图,该目标报文包括报文头净荷和报文尾。图7中以该报文头的位宽为1bit,该净荷的位宽为244bit,该报文尾的位宽为11bit为例。
在一种可能的实现方式中,若第一有效数据的优先级较高,无法长时间等待其他有效数据,或者,当前时刻其他有效数据均已完成拼接,没有其他有效数据需要拼接,且该第一净荷中除去被该第一有效数据占据的位宽的剩余位宽大于该对齐位宽,由于该填充数据的位宽小于该对齐位宽,此时无法向该剩余位宽中全部写入填充数据,需要向该剩余位宽的部分位宽中写入虚拟数据。
图8为本申请实施例提供的另一种数据传输方法的流程图,该方法包括:
S801:从第一总线通道确定第一有效数据,该第一有效数据包括来自第一总线通道的第一数据。
S802:根据该第一有效数据和虚拟数据确定第一净荷,其中,该第一净荷中包括依次拼接的该第一有效数据、该填充数据和虚拟数据,虚拟数据包括虚拟标识,该虚拟标识用于指示该虚拟数据是无效的。
其中,该虚拟标识可用于指示该虚拟数据是无效的数据,该虚拟标识的位宽可以与该通道标识的位宽相等。在实际应用中,该虚拟标识可以为“CN:0”,该虚拟数据也可以称为无效数据。该虚拟数据可以表示为VP。
S803:封装并发送该第一净荷。
其中,数据链路层封装该第一净荷,得到第一目标报文。该第一目标报文包括:报文头、第一净荷和报文尾。
在一种可能的实施例中,若该第一净荷中除去被该第一有效数据占据的位宽的剩余位宽小于或等于该通道标识的位宽,则向该剩余位宽中写入该填充数据,其中,该第一净荷中包括依次拼接的该第一有效数据和该填充数据。
图9为本申请提供的一种目标报文的结构示意图,该目标报文包括:报文头、净荷和报文尾,其中,净荷包括依次拼接的第一有效数据、填充数据和虚拟数据。该第一有效数据包括第一通道标识“CN:1”和第一数据,该虚拟数据包括虚拟标识“CN:0”和虚拟数据。图9中该第一有效数据的位宽为12bit,该填充数据的位宽为20bit,该虚拟数据的位宽为212bit为例。
为了便于理解,下面结合图10和图11对本申请提供的数据传输方法进行介绍说明。
图10为本申请实施例提供的另一种目标报文的结构示意图,该目标报文包括:报文头、净荷和报文尾,其中,净荷包括依次拼接的第一有效数据、填充数据、第二有效数据和填充数据。该第一有效数据包括标识第一通道标识和第一数据,该第二有效数据包括第二通道标识和第二数据。图10中以该第一通道标识为“CN:1”,该第二通道标识为“CN:2”,该第一有效数据的位宽和该第二有效数据的位宽均为104bit,该第一有效数据的位宽和该填充数据的位宽之和128bit为例。
图11为本申请实施例提供的又一种目标报文的结构示意图,图11中的(a)为第 一目标报文的的结构示意图,图11中的(b)为与该第一目标报文相邻的第二目标报文的结构示意图。由图11中的(a)可知,该第一目标报文包括:报文头、第一净荷和报文尾,其中,第一净荷包括依次拼接的该第一有效数据、该填充数据和部分第二有效数据。该第一有效数据包括标识第一通道标识和第一数据,该部分第二有效数据包括第二通道标识和部分第二数据。由图11中的(b)可知,该第二目标报文包括:报文头、第二净荷和报文尾,其中,第二净荷包括依次拼接的该第二有效数据中除该部分第二有效数据之外的剩余数据、填充数据和第三有效数据。图11中以该第一通道标识为“CN:1”,该第二通道标识为“CN:2”,该第一有效数据的位宽为104bit,该第二有效数据的位宽为155bit为例。图10中未示出该第三有效数据。
下面基于图3所示的片上系统,对本申请实施例提供的另一种数据传输方法进行详细的说明。对于该多个裸片中的接收侧裸片,其数据传输方法的流程图如图12所示。
图12为本申请实施例提供的另一种数据传输方法的流程图,该方法包括:
S120:接收并解析第一目标报文,得到第一净荷。
其中,输入/输出接口接收来自发送侧裸片的输入/输出接口的第一目标报文,并由的数据链路层解析该第一目标报文,得到该第一净荷。
S121:根据该第一净荷,确定第一有效数据和至少部分第二有效数据。
其中,总线适配器根据该第一净荷,确定第一有效数据和至少部分第二有效数据。具体的,该总线适配器根据该对齐位宽拆分该第一净荷,以得到该第一有效数据、填充数据和至少部分该第二有效数据。
另外,该对齐位宽可以为滑窗位宽,该滑窗位宽的窗口大小可以是固定的。比如,该总线适配器每次按照该对齐位宽(固定的bit)对该第一净荷进行滑窗读取,以得到该第一有效数据、填充数据和至少部分该第二有效数据,该滑窗位宽也可以称为滑窗读取位宽。与通常情况下该总线适配器每次按照一个bit对该第一净荷进行滑窗读取相比,提高了该接收侧裸片拆分该第一净荷的效率;进一步,提高了该接收侧裸片处理报文的效率。
其次,该对齐位宽可以是预先设定的。比如,该对齐位宽可以是发送侧裸片预先设定的,该发送侧裸片将预先设定好的对齐位宽发送给该接收侧裸片;或者,该对齐位宽可以是接收侧裸片预先设定的,该接收侧裸片将预先设定好的对齐位宽发送给该发送侧裸片;又或者,该对齐位宽可以是预先配置给该发送侧裸片和该接收侧裸片的。本申请实施例对此不做具体限定。该对齐位宽的大小可以根据实际需求和相关技术人员的经验确定,本申请对此不做具体的限定。在实际应用中,该对齐位宽通常可以等于8比特(bit)、16bit、32bit、64bit或128bit。以下实施例中均为该对齐位宽为32bit为例。
其中,该第一有效数据包括第一通道标识和第一数据,至少部分该第二有效数据包括第二通道标识和至少部分第二数据,其中,该第一通道标识用于指示该第一总线通道,该第二通道标识用于指示该第二总线通道。
S122:发送该第一有效数据至该第一有效数据对应的第一总线通道,发送至少部分该第二有效数据至该第二有效数据对应的第二总线通道。
进一步的,在步骤S122之前,该方法该包括:总线适配器根据该第一通道标识和 所述第二通道标识,确定该第一有效数据和至少部分该第二有效数据的发送优先级。
具体的,根据该第一有效数据和至少部分该第二有效数据的发送优先级发送该第一有效数据和至少部分该第二有效数据。
在一种可能的实施例中,若至少部分该第二有效数据为部分第二有效数据,接收并解析与该第一目标报文相邻的第二目标报文,得到第二净荷;根据该第二净荷,确定该第二有效数据中除该部分第二有效数据外的剩余数据;根据该剩余数据和该部分第二有效数据,确定该第二有效数据并发送。
进一步的,在步骤S122之前,该方法该包括:删除该第一有效数据中的该第一通道标识,以及至少部分该第二有效数据中的该第二通道标识。
在一种可能的实施例中,该方法还包括:根据该第一净荷,确定第一有效数据、该第二有效数据和至少部分该第三有效数据;发送该第一有效数据至该第一有效数据对应的第一总线通道,发送该第二有效数据至该第二有效数据对应的第二总线通道,发送该至少部分所述第三有效数据至该第三有效数据对应的第三总线通道。
图13为本申请实施例提供的另一种数据传输方法的流程图,该方法包括:
S130:接收并解析第一目标报文,得到第一净荷。
S131:根据该第一净荷,确定第一有效数据。
S132:发送该第一有效数据至该第一有效数据对应的第一总线通道。
本申请实施例提供一种数据传输方法,该方法包括:从第一总线通道确定第一有效数据,从第二总线通道确定第二有效数据;根据该第一有效数据和该第二有效数据确定第一净荷,其中,该第一净荷中包括依次拼接的该第一有效数据、填充数据和至少部分该第二有效数据,该第一有效数据的位宽与该填充数据的位宽之和为该对齐位宽的整数倍;将该第一净荷封装成第一目标报文,并发送该第一目标报文。在此过程中,第一净荷中包括该第一有效数据、填充数据和至少部分该第二有效数据,使得该第一净荷中没有空闲(剩余)的位宽,将第一净荷封装成第一目标报文发送给接收侧裸片时,提高了数据传输的效率。另一方面,接收侧裸片接收到该第一目标报文后,可以根据对齐位宽快速得到该第一有效数据和至少部分该第二有效数据,降低了接收侧裸片的处理时延,提高了处理效率。
可以理解的是,数据传输装置为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中实施例描述的各示例的数据传输方法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对数据传输装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图14示出了一种上述实施例中 所涉及的数据传输装置的一种可能的结构示意图,该数据传输装置包括:获取单元100、确定单元101、封装单元102和发送单元103。该获取单元100,用于支持该数据传输装置执行上述方法实施例中的S501;该确定单元101,用于支持该数据传输装置执行上述方法实施例中的S502;该封装单元102和该发送单元103,用于支持该数据传输装置执行上述方法实施例中的S503。
在硬件实现上,该获取单元100可以为图4所示的接收模块401,该确定单元101可以为图4所示的拼接模块/拆分模块404、该封装单元102可以为图3所示的数据链路层332,该发送单元103可以为图3所示的输入/输出接口333。
图15示出了一种上述实施例中所涉及的数据传输装置的一种可能的结构示意图,该数据传输装置包括:接收单元201、解析单元202、确定单元203和发送单元204。该接收单元201和该解析单元202,用于支持该数据传输装置执行上述方法实施例中的S120;该确定单元203用于支持该数据传输装置执行上述方法实施例中的S121;该发送单元204用于支持该数据传输装置执行上述方法实施例中的S122。
在硬件实现上,该接收单元201可以为图4所示的接收模块401,该解析单元202和该确定单元203可以为图4所示的拼接模块/拆分模块404、发送单元204可以为图3所示的输入/输出接口333。
需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。本申请实施例提供的装置,用于执行上述实施例中对应的功能,因此可以达到与上述方法相同的效果。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得装置执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
本申请的另一方面,提供一种裸片,该裸片包括逻辑器件,该逻辑器件用于执行上述方法实施例中的S501至S503中的一个或者多个步骤。
本申请的另一方面,提供一种裸片,该裸片包括逻辑器件,该逻辑器件用于执行上述方法实施例中的S801至S803中的一个或者多个步骤。
本申请的另一方面,提供一种裸片,该裸片包括逻辑器件,该逻辑器件用于执行 上述方法实施例中的S120至S122中的一个或者多个步骤。
本申请的另一方面,提供一种裸片,该裸片包括逻辑器件,该逻辑器件用于执行上述方法实施例中的S130至S132中的一个或者多个步骤。
本申请的另一方面,提供一种片上系统,该片上系统包括相互耦合的多个裸片,该多个裸片包括第一裸片和第二裸片,该第一裸片用于执行上述方法实施例中的S501至S503中的一个或者多个步骤,或者,该第一裸片用于执行上述方法实施例中的S801至S803中的一个或者多个步骤;该第二裸片用于执行上述方法实施例中的S120至S122中的一个或者多个步骤;或者,该第二裸片用于执行上述方法实施例中的S130至S132中的一个或者多个步骤。
在本申请的又一方面,提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当该计算机指令在数据传输装置上运行时,执行上述方法实施例中的相关步骤。
在本申请的又一方面,提供一种包含指令的计算机程序产品,当计算机程序产品在计算机上设备运行时,使得数据传输装置执行上述方法实施例中的相关步骤。
最后应说明的是:以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (53)

  1. 一种数据传输方法,其特征在于,所述方法包括:
    获得第一有效数据和第二有效数据,所述第一有效数据包括来自第一总线通道的第一数据,所述第二有效数据包括来自第二总线通道的第二数据;
    根据所述第一有效数据和所述第二有效数据确定第一净荷,其中,所述第一净荷中包括依次拼接的所述第一有效数据、填充数据和至少部分所述第二有效数据;
    封装并发送所述第一净荷。
  2. 根据权利要求1所述的方法,其特征在于,所述第一有效数据的位宽和所述填充数据的位宽之和等于对齐位宽的整数倍。
  3. 根据权利要求2所述的方法,其特征在于,所述填充数据的位宽小于所述对齐位宽。
  4. 根据权利要求2或3所述的方法,其特征在于,所述对齐位宽等于8比特(bit)、16bit、32bit、64bit或128bit。
  5. 根据权利要求1-4任一项所述的方法,其特征在于,所述第一有效数据包括第一通道标识和所述第一数据,所述第二有效数据包括第二通道标识和所述第二数据,其中,所述第一通道标识用于指示所述第一总线通道,所述第二通道标识用于指示所述第二总线通道。
  6. 根据权利要求5所述的方法,其特征在于,所述方法还包括:
    根据所述第一通道标识和所述第二通道标识,确定所述第一有效数据和所述第二有效数据的发送优先级。
  7. 根据权利要求5或6所述的方法,其特征在于,所述第一通道标识的位宽和所述第二通道标识的位宽均为4bit。
  8. 根据权利要求1-7任一项所述的方法,其特征在于,所述根据所述第一有效数据和所述第二有效数据确定第一净荷,包括:
    若所述第一净荷的位宽不足以承载所述第二有效数据,则只向所述第一净荷中填充部分第二有效数据。
  9. 根据权利要求8所述的方法,其特征在于,所述方法还包括:
    将所述第二有效数据中除所述部分第二有效数据的剩余数据填充至第二净荷,所述第一净荷与所述第二净荷相邻。
  10. 根据权利要求5-9任一项所述的方法,其特征在于,所述根据所述第一有效数据和所述第二有效数据确定第一净荷,包括:
    若所述第一净荷中除去被所述第一有效数据、所述填充数据和所述第二有效数据占据的位宽的剩余位宽小于或等于所述通道标识的位宽,则向所述剩余位宽中写入填充数据。
  11. 根据权利要求10所述的方法,其特征在于,所述方法还包括:
    若所述剩余位宽大于所述通道标识的位宽,则获得第三有效数据,所述第三有效数据包括来自第三总线通道的第三数据;
    所述根据所述第一有效数据和所述第二有效数据确定第一净荷包括:根据所述第一有效数据、所述第二有效数据和所述第三有效数据确定所述第一净荷,其中,所述 第一净荷中包括依次拼接的所述第一有效数据、所述填充数据、所述第二有效数据、所述填充数据和至少部分所述第三有效数据。
  12. 根据权利要求1-11任一项所述的方法,其特征在于,封装后的所述第一净荷包括:报文头和报文尾。
  13. 一种数据传输方法,其特征在于,所述方法包括:
    获得第一有效数据,所述第一有效数据包括来自第一总线通道的第一数据;
    根据所述第一有效数据和虚拟数据确定第一净荷,其中,所述第一净荷中包括依次拼接的所述第一有效数据、填充数据和所述虚拟数据,所述虚拟数据包括虚拟标识,所述虚拟标识用于指示所述虚拟数据是无效的;
    封装并发送所述第一净荷。
  14. 一种数据传输方法,其特征在于,所述方法包括:
    接收并解析第一目标报文,得到第一净荷;
    根据所述第一净荷,确定第一有效数据和至少部分第二有效数据;
    发送所述第一有效数据至所述第一有效数据对应的第一总线通道,发送至少部分所述第二有效数据至所述第二有效数据对应的第二总线通道。
  15. 根据权利要求14所述的方法,其特征在于,所述根据所述第一净荷,确定第一有效数据和至少部分第二有效数据,包括:
    根据对齐位宽拆分所述第一净荷,得到所述第一有效数据、填充数据和至少部分所述第二有效数据。
  16. 根据权利要求15所述的方法,其特征在于,所述第一有效数据的位宽和所述填充数据的位宽之和等于所述对齐位宽的整数倍。
  17. 根据权利要求15或16所述的方法,其特征在于,所述填充数据的位宽小于所述对齐位宽。
  18. 根据权利要求15-17任一项所述的方法,其特征在于,所述对齐位宽等于8比特(bit)、16bit、32bit、64bit或128bit。
  19. 根据权利要求14-18任一项所述的方法,其特征在于,所述第一有效数据包括第一通道标识和第一数据,至少部分所述第二有效数据包括第二通道标识和至少部分第二数据,其中,所述第一通道标识用于指示所述第一总线通道,所述第二通道标识用于指示所述第二总线通道。
  20. 根据权利要求19所述的方法,其特征在于,所述方法还包括:
    根据所述第一通道标识和所述第二通道标识,确定所述第一有效数据和至少部分所述第二有效数据的发送优先级。
  21. 根据权利要求19或20所述的方法,其特征在于,所述第一通道标识的位宽和所述第二通道标识的位宽均为4bit。
  22. 根据权利要求19-21任一项所述的方法,其特征在于,在发送所述第一有效数据至所述第一有效数据对应的第一总线通道,发送至少部分所述第二有效数据至所述第二有效数据对应的第二总线通道之前,所述方法还包括:
    删除所述第一有效数据中的所述第一通道标识,以及至少部分所述第二有效数据中的所述第二通道标识。
  23. 根据权利要求14-22任一项所述的方法,其特征在于,所述发送至少部分所述第二有效数据至所述第二有效数据对应的第二总线通道,包括:
    若至少部分所述第二有效数据为部分第二有效数据,接收并解析第二目标报文,得到第二净荷;
    根据所述第二净荷,确定所述第二有效数据中除所述部分第二有效数据外的剩余数据;
    根据所述剩余数据和所述部分第二有效数据,确定所述第二有效数据并发送。
  24. 根据权利要求14-23任一项所述的方法,其特征在于,所述根据所述第一净荷,确定第一有效数据和至少部分第二有效数据,包括:
    根据所述第一净荷,确定所述第一有效数据、所述第二有效数据和至少部分第三有效数据;
    发送所述第一有效数据至所述第一有效数据对应的第一总线通道,发送所述第二有效数据至所述第二有效数据对应的第二总线通道,发送至少部分所述第三有效数据至所述第三有效数据对应的第三总线通道。
  25. 根据权利要求14-24任一项所述的方法,其特征在于,所述目标报文包括:报文头和报文尾。
  26. 一种数据传输方法,其特征在于,所述方法包括:
    接收并解析第一目标报文,得到第一净荷;
    根据所述第一净荷,确定第一有效数据;
    发送所述第一有效数据至所述第一有效数据对应的第一总线通道。
  27. 一种数据传输装置,其特征在于,所述装置包括:
    获取单元,用于获得第一有效数据和第二有效数据,所述第一有效数据包括来自第一总线通道的第一数据,所述第二有效数据包括来自第二总线通道的第二数据;
    确定单元,用于根据所述第一有效数据和所述第二有效数据确定第一净荷,其中,所述第一净荷中包括依次拼接的所述第一有效数据、填充数据和至少部分所述第二有效数据;
    封装单元,用于封装所述第一净荷;
    发送单元,用于发送封装后的所述第一净荷。
  28. 根据权利要求27所述的装置,其特征在于,所述第一有效数据的位宽和所述填充数据的位宽之和等于对齐位宽的整数倍。
  29. 根据权利要求28所述的装置,其特征在于,所述填充数据的位宽小于所述对齐位宽。
  30. 根据权利要求27或28所述的装置,其特征在于,所述对齐位宽等于8比特(bit)、16bit、32bit、64bit或128bit。
  31. 根据权利要求27-30任一项所述的装置,其特征在于,所述第一有效数据包括第一通道标识和所述第一数据,所述第二有效数据包括第二通道标识和所述第二数据,其中,所述第一通道标识用于指示所述第一总线通道,所述第二通道标识用于指示所述第二总线通道。
  32. 根据权利要求31所述的装置,其特征在于,所述确定单元还用于:
    根据所述第一通道标识和所述第二通道标识,确定所述第一有效数据和所述第二有效数据的发送优先级。
  33. 根据权利要求31或32所述的装置,其特征在于,所述第一通道标识的位宽和所述第二通道标识的位宽均为4bit。
  34. 根据权利要求27-33任一项所述的装置,其特征在于,所述确定单元还用于:
    若所述第一净荷的位宽不足以承载所述第二有效数据,则只向所述第一净荷中填充部分第二有效数据。
  35. 根据权利要求34所述的装置,其特征在于,
    所述确定单元,还用于将所述第二有效数据中除所述部分第二有效数据的剩余数据填充至第二净荷,所述第一净荷与所述第二净荷相邻。
  36. 根据权利要求31-35任一项所述的装置,其特征在于,所述确定单元还用于:
    若所述第一净荷中除去被所述第一有效数据、所述填充数据和所述第二有效数据占据的位宽的剩余位宽小于或等于所述通道标识的位宽,则向所述剩余位宽中写入填充数据。
  37. 根据权利要求36所述的装置,其特征在于,
    所述获取单元,还用于若所述剩余位宽大于或等于所述通道标识的位宽,获得第三有效数据,所述第三有效数据包括来自第三总线通道的第三数据;
    所述确定单元,还用于根据所述第一有效数据、所述第二有效数据和所述第三有效数据确定所述第一净荷,其中,所述第一净荷中包括依次拼接的所述第一有效数据、填充数据、所述第二有效数据、填充数据和至少部分所述第三有效数据。
  38. 根据权利要求27-37任一项所述的装置,其特征在于,封装后的所述第一净荷包括:报文头和报文尾。
  39. 一种数据传输装置,其特征在于,所述装置包括:
    获取单元,用于获得第一有效数据,所述第一有效数据包括来自第一总线通道的第一数据;
    确定单元,用于根据所述第一有效数据和虚拟数据确定第一净荷,其中,所述第一净荷中包括依次拼接的所述第一有效数据、填充数据和所述虚拟数据,所述虚拟数据包括虚拟标识,所述虚拟标识用于指示所述虚拟数据是无效的;
    封装单元,用封装所述第一净荷;
    发送单元,用于发送封装后的所述第一净荷。
  40. 一种数据传输装置,其特征在于,所述装置包括:
    接收单元,用于接收第一目标报文;
    解析单元,用于解析所述第一目标报文,得到第一净荷;
    确定单元,用于根据所述第一净荷,确定第一有效数据和至少部分第二有效数据;
    发送单元,用于发送所述第一有效数据至所述第一有效数据对应的第一总线通道,发送至少部分所述第二有效数据至所述第二有效数据对应的第二总线通道。
  41. 根据权利要求40所述的装置,其特征在于,所述确定单元还用于:
    根据对齐位宽拆分所述第一净荷,得到所述第一有效数据、填充数据和至少部分所述第二有效数据。
  42. 根据权利要求41所述的装置,其特征在于,所述第一有效数据的位宽和所述填充数据的位宽之和等于所述对齐位宽的整数倍。
  43. 根据权利要求41或42所述的装置,其特征在于,所述填充数据的位宽小于所述对齐位宽。
  44. 根据权利要求41-43任一项所述的装置,其特征在于,所述对齐位宽等于8比特(bit)、16bit、32bit、64bit或128bit。
  45. 根据权利要求41-44任一项所述的装置,其特征在于,所述第一有效数据包括第一通道标识和第一数据,至少部分所述第二有效数据包括第二通道标识和至少部分第二数据,其中,所述第一通道标识用于指示所述第一总线通道,所述第二通道标识用于指示所述第二总线通道。
  46. 根据权利要求45所述的装置,其特征在于,所述确定单元还用于:
    根据所述第一通道标识和所述第二通道标识,确定所述第一有效数据和至少部分所述第二有效数据的发送优先级。
  47. 根据权利要求45或46所述的装置,其特征在于,所述第一通道标识的位宽和所述第二通道标识的位宽均为4bit。
  48. 根据权利要求45-47任一项所述的装置,其特征在于,所述装置还包括删除单元,所述删除单元用于:
    删除所述第一有效数据中的所述第一通道标识,以及至少部分所述第二有效数据中的所述第二通道标识。
  49. 根据权利要求40-48任一项所述的装置,其特征在于,
    若至少部分所述第二有效数据为部分第二有效数据,所述接收单元,还用于接收并解析第二目标报文,得到第二净荷;
    所述确定单元,还用于根据所述第二净荷,确定所述第二有效数据中除所述部分第二有效数据外的剩余数据;
    所述确定单元,还用于根据所述剩余数据和所述部分第二有效数据,确定所述第二有效数据;
    所述发送单元,还用于发送所述第二有效数据。
  50. 根据权利要求40-49任一项所述的装置,其特征在于,
    所述确定单元,还用于根据所述第一净荷,确定所述第一有效数据、所述第二有效数据和至少部分第三有效数据;
    所述发送单元,还用于发送所述第一有效数据至所述第一有效数据对应的第一总线通道,发送所述第二有效数据至所述第二有效数据对应的第二总线通道,发送至少部分所述第三有效数据至所述第三有效数据对应的第三总线通道。
  51. 根据权利要求40-50任一项所述的装置,其特征在于,所述目标报文包括:报文头和报文尾。
  52. 一种数据传输装置,其特征在于,所述装置包括:
    接收单元,用于接收并解析第一目标报文,得到第一净荷;
    确定单元,用于根据所述第一净荷,确定第一有效数据;
    发送单元,用于发送所述第一有效数据至所述第一有效数据对应的第一总线通道。
  53. 一种片上系统,其特征在于,所述片上系统包括相互耦合的多个裸片,所述多个裸片包括第一裸片和第二裸片,所述第一裸片用于执行如权利要求1-12任一项所述的数据传输方法,或,所述第一裸片用于执行如权利要求13所述的数据传输方法;所述第二裸片用于执行如权利要求14-25任一项所述的数据传输方法,或,所述第二裸片用于执行如权利要求26所述的数据传输方法。
PCT/CN2022/115264 2022-08-26 2022-08-26 一种数据传输方法及装置 WO2024040604A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/CN2022/115264 WO2024040604A1 (zh) 2022-08-26 2022-08-26 一种数据传输方法及装置
PCT/CN2023/096565 WO2024041065A1 (zh) 2022-08-26 2023-05-26 一种数据传输方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2022/115264 WO2024040604A1 (zh) 2022-08-26 2022-08-26 一种数据传输方法及装置

Publications (1)

Publication Number Publication Date
WO2024040604A1 true WO2024040604A1 (zh) 2024-02-29

Family

ID=90012230

Family Applications (2)

Application Number Title Priority Date Filing Date
PCT/CN2022/115264 WO2024040604A1 (zh) 2022-08-26 2022-08-26 一种数据传输方法及装置
PCT/CN2023/096565 WO2024041065A1 (zh) 2022-08-26 2023-05-26 一种数据传输方法及装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
PCT/CN2023/096565 WO2024041065A1 (zh) 2022-08-26 2023-05-26 一种数据传输方法及装置

Country Status (1)

Country Link
WO (2) WO2024040604A1 (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102143185A (zh) * 2011-03-31 2011-08-03 北京经纬恒润科技有限公司 数据传输方法和数据传输装置
CN103701566A (zh) * 2013-12-18 2014-04-02 华为技术有限公司 一种校验方法和装置
CN103714038A (zh) * 2012-10-09 2014-04-09 中兴通讯股份有限公司 一种数据处理方法和装置
CN114691596A (zh) * 2022-03-31 2022-07-01 中科芯集成电路有限公司 一种面向cib协议握手的fifo封装结构及方法
CN114844593A (zh) * 2018-02-09 2022-08-02 华为技术有限公司 一种光传送网中业务数据的处理方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7094952B2 (ja) * 2017-06-09 2022-07-04 ソニーセミコンダクタソリューションズ株式会社 受信装置、制御方法、プログラム、および送受信システム
CN111435898B (zh) * 2019-01-14 2022-11-01 中兴通讯股份有限公司 一种信号传输方法及装置、网络设备
CN110474692B (zh) * 2019-08-28 2021-02-26 深圳市科楠科技开发有限公司 一种光通信设备、光通信系统、数据传输方法及存储介质
CN111131091B (zh) * 2019-12-25 2021-05-11 中山大学 一种面向片上网络的片间互连方法和系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102143185A (zh) * 2011-03-31 2011-08-03 北京经纬恒润科技有限公司 数据传输方法和数据传输装置
CN103714038A (zh) * 2012-10-09 2014-04-09 中兴通讯股份有限公司 一种数据处理方法和装置
CN103701566A (zh) * 2013-12-18 2014-04-02 华为技术有限公司 一种校验方法和装置
CN114844593A (zh) * 2018-02-09 2022-08-02 华为技术有限公司 一种光传送网中业务数据的处理方法及装置
CN114691596A (zh) * 2022-03-31 2022-07-01 中科芯集成电路有限公司 一种面向cib协议握手的fifo封装结构及方法

Also Published As

Publication number Publication date
WO2024041065A1 (zh) 2024-02-29

Similar Documents

Publication Publication Date Title
US9736276B2 (en) Packetized interface for coupling agents
JP5922268B2 (ja) 拡張ヘッダを用いたパケット送信
TWI314685B (en) Method and apparatus for use in a host system that intercommunicates with a network interface, computer-readable medium comprising instructions stored thereon, and computing system
CN102185833B (zh) 一种基于fpga的fc i/o并行处理方法
CN114185829B (zh) 用于多种通信业务的共享的资源
JPH06511338A (ja) 並行パケットバスに関する方法及び装置
US11245470B2 (en) Method, device, and system for transmitting data
JP5479709B2 (ja) データを処理するためのサーバ‐プロセッサ・ハイブリッド・システムおよび方法
CN113498596A (zh) 一种基于PCIe的数据传输方法及装置
WO2021147045A1 (zh) 一种基于PCIe的数据传输方法及装置
CN106549869A (zh) 数据包处理方法及装置
CN114244915A (zh) 一种支持多种协议的数据传输方法、装置及存储介质
WO2024040604A1 (zh) 一种数据传输方法及装置
US9128771B1 (en) System, method, and computer program product to distribute workload
CN112291259B (zh) 一种协议转换方法、网关、设备及可读存储介质
CN108614792B (zh) 1394事务层数据包存储管理方法及电路
US11636061B2 (en) On-demand packetization for a chip-to-chip interface
WO2022198357A1 (zh) 数据处理方法及传输设备、数据处理系统
EP2726992B1 (en) Network control model driver
CN112243258A (zh) 一种用户感知速率的确定方法及装置
CN107317773B (zh) 一种片上网络通信接口及通信方法
Varada et al. Data flow and buffer management in multi-channel data link controller
US8054857B2 (en) Task queuing methods and systems for transmitting frame information over an I/O interface
CN117687889B (zh) 一种内存扩展设备的性能测试装置及方法
CN116795763B (zh) 基于axi协议的数据分组传输的方法、片上系统和芯片

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: 22956149

Country of ref document: EP

Kind code of ref document: A1