Data transmission method, data transmission device and electronic device
By allocating different types of shared tokens to the logical channels in the on-chip network and adjusting the token size in real time according to the transmission bandwidth, the problem of mutual blockage of channels on the shared physical link is solved, and the independence of logical channels and efficient data transmission is achieved.
Patent Information
- Application Number
- CN202510058418.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-01-14
- Publication Date
- 2025-05-13
AI Technical Summary
In an on-chip network, with the increase of logical channel data, how to ensure that channels of different functions are shared relatively independently on the shared physical link, avoiding protocol deadlocks and mutual blockages have become an important issue.
Selection arbitration for the occupation of shared physical links is achieved by allocating different types of shared tokens to different logical channels and adjusting the size of the token in real time according to the changes in the transmission bandwidth of specific logical channels by the downstream network.
This method not only ensures the functional and performance independence of the logical channel, but also avoids channel blockage, reduces the area and power consumption of the receiving queue, and improves the user experience.
Smart Images

Figure CN119988308A_ABST
Abstract
Description
Technical Field
[0001] Embodiments of the present disclosure relate to a data transmission method, a data transmission device, and an electronic device. Background Art
[0002] The network on chip (NOC) usually transmits data based on a set transmission protocol. The transmission protocol usually includes multiple logical channels, such as request channels, response channels, data channels, probe channels, etc. The data type can be logically divided into read data, write data, and read data and write data of different virtual channels. Usually, these logically divided channels perform point-to-point data transmission through a set of physical links; as the complexity of the network on chip increases, the logical channel data increases dramatically. At this time, how to ensure that the channels with different logical functions share relatively independent physical links without causing protocol deadlock and mutual congestion becomes important. Usually, a flow control scheme is used to ensure that different logical channels do not get blocked on the shared physical link. Summary of the invention
[0003] At least one embodiment of the present disclosure provides a data transmission method, which is applicable to a downstream end connected to an upstream end of an upstream network via a shared physical link to transmit data, and the downstream end is connected to the downstream network to transmit the data. The data transmission method comprises: allocating a first shared token to a first logical channel and a second shared token to a second logical channel at the downstream end, wherein the first shared token and the second shared token are provided to the upstream end so that the upstream end can perform selection arbitration for the occupancy of the shared physical link; adjusting the size of the first shared token in response to a change in the first transmission bandwidth of the downstream network for the first logical channel; and / or adjusting the size of the second shared token in response to a change in the second transmission bandwidth of the downstream network for the second logical channel.
[0004] For example, the cache management method provided by at least one embodiment of the present disclosure monitors the first transmission bandwidth of the first logical channel to the downstream network to determine whether the first transmission bandwidth has changed, or monitors the second transmission bandwidth of the second logical channel to the downstream network to determine whether the second transmission bandwidth has changed.
[0005] For example, in the cache management method provided by at least one embodiment of the present disclosure, in response to a change in the first transmission bandwidth of the first logical channel for the downstream network, the size of the first shared token is adjusted, including: in response to the first transmission bandwidth being less than a first threshold, the size of the first shared token is reduced; or, in response to a change in the second transmission bandwidth of the second logical channel for the downstream network, the size of the second shared token is adjusted, including: in response to the second transmission bandwidth being less than a second threshold, the size of the second shared token is reduced.
[0006] For example, in the cache management method provided by at least one embodiment of the present disclosure, the monitoring includes: real-time monitoring of data in the first logical channel and the second logical channel by a bandwidth monitoring module pre-configured at the downstream end.
[0007] For example, in the cache management method provided by at least one embodiment of the present disclosure, the size of the first shared token and the size of the second shared token are adjusted in association.
[0008] For example, in the cache management method provided by at least one embodiment of the present disclosure, the associative adjustment of the size of the first shared token and the size of the second shared token includes: reducing the size of the first shared token by a first amount and increasing the size of the second shared token by a second amount, wherein the first amount is greater than or equal to the second amount.
[0009] For example, the cache management method provided by at least one embodiment of the present disclosure further includes: in response to the size of the first shared token being adjusted, notifying the upstream end; or, in response to the size of the second shared token being adjusted, notifying the upstream end.
[0010] For example, the cache management method provided by at least one embodiment of the present disclosure also includes: allocating a first exclusive token to the first logical channel and a second exclusive token to the second logical channel at the downstream end, wherein the first exclusive token and the second exclusive token are provided to the upstream end so that the upstream end can perform selection arbitration for the occupancy of the shared physical link, and are used in preference to the first shared token and the second shared token, respectively.
[0011] For example, the cache management method provided by at least one embodiment of the present disclosure further includes: adjusting the size of the first exclusive token and / or the size of the second exclusive token in response to a configurable number of tokens returned from the upstream end.
[0012] For example, the cache management method provided by at least one embodiment of the present disclosure also includes: in response to the upstream end using the first shared token or the second shared token to transmit the first data, using the shared queue of the downstream end to cache the first data, and modifying the first shared token or the second shared token at the downstream end; in response to the upstream end using the first exclusive token to transmit the second data, using the first queue of the downstream end to cache the second data, and modifying the first exclusive token at the downstream end; or, in response to the upstream end using the second exclusive token to transmit the third data, using the second queue of the downstream side to cache the third data, and modifying the second exclusive token at the downstream end.
[0013] For example, the cache management method provided by at least one embodiment of the present disclosure further includes: in response to any one of the first shared token, the second shared token, the first exclusive token and the second exclusive token being modified, notifying the upstream end.
[0014] At least one embodiment of the present disclosure further provides a data transmission device, adapted to be connected to an upstream end of an upstream network through a shared physical link to transmit data to a downstream end, the downstream end being connected to a downstream network to transmit the data, the data transmission device comprising:
[0015] a shared token allocation unit configured to allocate a first shared token to a first logical channel and a second shared token to a second logical channel at the downstream end, wherein the first shared token and the second shared token are provided to the upstream end for the upstream end to perform selection arbitration for occupation of the shared physical link;
[0016] A first shared token management unit is configured to adjust the size of the first shared token in response to a change in a first transmission bandwidth of the first logical channel for the downstream network; and / or
[0017] The second shared token management unit is configured to adjust the size of the second shared token in response to a change in a second transmission bandwidth of the second logical channel for the downstream network.
[0018] For example, the data transmission device provided by at least one embodiment of the present disclosure also includes: a first transmission bandwidth monitoring module, configured to monitor the first transmission bandwidth of the first logical channel with respect to the downstream network to determine whether the first transmission bandwidth has changed; a second transmission bandwidth monitoring module, configured to monitor the second transmission bandwidth of the second logical channel with respect to the downstream network to determine whether the second transmission bandwidth has changed.
[0019] For example, the data transmission device provided by at least one embodiment of the present disclosure further includes: an exclusive token allocation unit, configured to allocate a first exclusive token to the first logical channel and a second exclusive token to the second logical channel at the downstream end, wherein the first exclusive token and the second exclusive token are provided to the upstream end so that the upstream end can perform selection arbitration for the occupancy of the shared physical link, and are used in priority to the first shared token and the second shared token, respectively.
[0020] For example, the data transmission device provided by at least one embodiment of the present disclosure further includes: an exclusive token management unit configured to adjust the size of the first exclusive token and / or the size of the second exclusive token in response to a configurable number of tokens returned from the upstream end.
[0021] For example, the data transmission device provided by at least one embodiment of the present disclosure also includes: a shared queue, a first queue, and a second queue, which are configured as independent cache queues; a channel distribution unit, which is configured to transmit the data to the shared queue, the first queue, or the second queue in response to receiving the data transmitted by the shared physical link, according to the token type used by the upstream end to transmit the data.
[0022] For example, the data transmission device provided by at least one embodiment of the present disclosure also includes: a first data selector, configured to select the first data cached in the first queue or the shared queue in response to a first instruction, and send it to the downstream network via the first logical channel; a second data selector, configured to select the second data in the second queue or the shared queue in response to a second selection operation, and send it to the downstream network via the second logical channel.
[0023] For example, the data transmission device provided by at least one embodiment of the present disclosure also includes: an exclusive token counter, configured to obtain the size of the first exclusive token based on the second data cached by the first queue, and to obtain the size of the second exclusive token based on the third data cached by the second queue; a shared token counter, configured to obtain the sizes of the first shared token and the second shared token based on the first data cached by the shared queue.
[0024] At least one embodiment of the present disclosure further provides an electronic device, which includes the data transmission device provided by any embodiment of the present disclosure.
[0025] For example, the electronic device provided by at least one embodiment of the present disclosure further includes at least one upstream end; wherein each of the at least one upstream end includes: a data sending device, configured to perform selection arbitration for occupancy of the shared physical link based on the first shared token and the second shared token when the upstream end transmits data through the first logical channel and the second logical channel at the same time. BRIEF DESCRIPTION OF THE DRAWINGS
[0026] In order to more clearly illustrate the technical solutions of the embodiments of the present disclosure, the drawings of the embodiments will be briefly introduced below. Obviously, the drawings in the following description only relate to some embodiments of the present disclosure, but are not intended to limit the present disclosure.
[0027] Figure 1 A flowchart of a data transmission method provided by at least one embodiment of the present disclosure;
[0028] Figure 2 A flowchart of another data transmission method provided for at least one embodiment of the present disclosure;
[0029] Figure 3 A flowchart of another data transmission method provided for at least one embodiment of the present disclosure;
[0030] Figure 4 A schematic block diagram of a data transmission device provided in at least one embodiment of the present disclosure;
[0031] Figure 5 A schematic block diagram of another data transmission device provided for at least one embodiment of the present disclosure;
[0032] Figure 6 A control block diagram of a specific example of a data transmission device provided by at least one embodiment of the present disclosure; and
[0033] Figure 7 A schematic block diagram of an electronic device provided according to at least one embodiment of the present disclosure. DETAILED DESCRIPTION
[0034] In order to make the purpose, technical solution and advantages of the embodiments of the present disclosure clearer, the technical solution of the embodiments of the present disclosure will be clearly and completely described below in conjunction with the drawings of the embodiments of the present disclosure. Obviously, the described embodiments are part of the embodiments of the present disclosure, not all of the embodiments. Based on the described embodiments of the present disclosure, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present disclosure.
[0035] Unless otherwise defined, the technical terms or scientific terms used in the present disclosure should be understood by people with ordinary skills in the field to which the present disclosure belongs. The "first", "second" and similar words used in the present disclosure do not indicate any order, quantity or importance, but are only used to distinguish different components. Similarly, similar words such as "one", "one" or "the" do not indicate quantity restrictions, but indicate that there is at least one. Similar words such as "include" or "comprise" mean that the elements or objects appearing before the word cover the elements or objects listed after the word and their equivalents, without excluding other elements or objects. Similar words such as "connect" or "connected" are not limited to physical or mechanical connections, but can include electrical connections, whether direct or indirect. "Up", "down", "left", "right" and the like are only used to indicate relative positional relationships. When the absolute position of the described object changes, the relative positional relationship may also change accordingly.
[0036] As mentioned above, it is important to ensure that channels with different logical functions can share physical links relatively independently without causing protocol deadlock or mutual congestion. Usually, a flow control scheme is used to ensure that different logical channels do not get blocked on the shared physical link.
[0037] A flow control scheme can be summarized as using tokens (or letters of credit) to perform flow control, allocating exclusive tokens to functionally independent logical channels to ensure that the functionally independent channels are logically independent, and using shared tokens to ensure that the total bandwidth fully utilizes the shared physical link. This flow control scheme is usually used between different virtual channels with the same or similar data. However, when one of the logical channels is blocked and the occupied token cannot be released, other logical channels may also be congested.
[0038] Another flow control solution can be summarized as using tokens for flow control. At the same time, relatively independent logical channels are required for both function and performance. Each logical channel is allocated with enough receive queues to meet the full bandwidth requirements. This flow control solution is usually used between read and write data channels. However, for each logical channel that does not allow congestion, a complete receive queue resource needs to be allocated on the receiving side. As the number of logical channels increases, the receive queue will be too large, which becomes very unfriendly in terms of cost and power consumption.
[0039] In summary, the technical problem of these flow control schemes is that they cannot ensure that logical channels with different functions are not blocked on the shared physical link without increasing the receiving queue.
[0040] At least some embodiments of the present disclosure provide a data transmission method, which is applicable to a downstream end connected to an upstream end of an upstream network via a shared physical link to transmit data, and the downstream end is connected to the downstream network to transmit data. The data transmission method includes: allocating a first shared token to a first logical channel and a second shared token to a second logical channel at the downstream end, wherein the first shared token and the second shared token are provided to the upstream end so that the upstream end can perform selection arbitration for the occupancy of the shared physical link; adjusting the size of the first shared token in response to a change in the first transmission bandwidth of the downstream network for the first logical channel; and / or adjusting the size of the second shared token in response to a change in the second transmission bandwidth of the downstream network for the second logical channel.
[0041] Some embodiments of the present disclosure also provide a data transmission device corresponding to the above method and an electronic device including the data transmission device.
[0042] At least some embodiments of the present disclosure provide a data transmission method, which aims at a scenario where different logical channels from an upstream end to a downstream end share a single shared physical transmission link. By allocating different types of shared tokens to different logical channels and adjusting (for example, in real time) the number of shared tokens of the corresponding type according to the transmission bandwidth of the downstream network for the specific logical channel, it is possible to ensure that the area and power consumption of the downstream end receiving queue are controllable and that logical channels with different functions are not blocked on the shared physical link.
[0043] The data transmission method of at least one embodiment of the present disclosure solves the problem of independence of the functions and performances of the logical channels while taking into account the blockage problem of the logical channels and the preparation cost of the downstream end, thereby effectively improving the user experience.
[0044] The embodiments and examples of the present disclosure are described in detail below with reference to the accompanying drawings.
[0045] The data transmission method provided by at least one embodiment of the present disclosure is applicable to data transmission scenarios of on-chip networks or Ethernet. The embodiments of the present disclosure do not limit the specific types and specifications of on-chip networks or Ethernet. For example, it may include various virtual channel scenarios for reading data, various virtual channel scenarios for writing data, request channel scenarios, response channel scenarios, detection channels or other related virtual channel scenarios.
[0046] For example, the data transmission method of at least one embodiment can be implemented at the downstream end in the form of software, hardware, firmware, or any combination thereof, and loaded and executed by a processor in a user device such as a mobile phone, digital camera, tablet computer, laptop computer, desktop computer, network server, etc., to ensure the flow control effect of different logical channels.
[0047] For example, the data transmission method of at least one embodiment is applicable to electronic devices, such as mobile phones, digital cameras, laptops, tablet computers, desktop computers, network servers, etc., which can load and execute the cache management method, and the embodiments of the present disclosure are not limited to this. For example, the electronic device may include a cache and a central processing unit (CPU) or a graphics processing unit (GPU), a digital signal processor (DSP), and other processing units with data processing capabilities and / or instruction execution capabilities, storage units, etc. For example, the electronic device may also be installed with an operating system, an application programming interface, etc. (for example, OpenGL (Open Graphics Library)), etc., and the data transmission method provided by the embodiments of the present disclosure is implemented by running code or instructions.
[0048] Figure 1 A flowchart of a data transmission method provided by at least one embodiment of the present disclosure. The data transmission method is applicable to a downstream end connected to an upstream end of an upstream network through a shared physical link to transmit data, and the downstream end is connected to a downstream network to transmit data. Figure 1 As shown, the data transmission method includes steps S110 to S130.
[0049] Step S110: Allocate a first shared token for the first logical channel and a second shared token for the second logical channel at the downstream end, wherein the first shared token and the second shared token are provided to the upstream end for the upstream end to select and arbitrate the occupation of the shared physical link.
[0050] Step S120: In response to a change in a first transmission bandwidth of the first logical channel to the downstream network, adjusting a size of the first sharing token.
[0051] Step S130: In response to a change in a second transmission bandwidth of the second logical channel to the downstream network, adjust a size of the second sharing token.
[0052] It should be noted that the number of logical channels used for data transmission between the upstream network and the downstream network may be greater than or equal to 2, and may be different combinations; among the above-mentioned multiple logical channels, the above-mentioned first logical channel and the second logical channel are used to identify different logical channels. The embodiments of the present disclosure may not limit the data transmission methods of other logical channels except the first logical channel and the second logical channel. For example, other logical channels may also adopt the data transmission method described in step S110-step S130, or the data transmission method not described in step S110-step S130. Moreover, in the above-mentioned embodiments of the present disclosure, for example, the above-mentioned step S120 and step S130 may be executed one by one, or both may be executed and the execution order of the two is not restricted.
[0053] For step S110, for example, the types of the first logical channel and the second logical channel may be one for writing data and the other for reading data. In other scenarios, each group of logically independent but transmission-sharing channels may be used, such as various virtual channels for reading data, various virtual channels for writing data, request channels, response channels, detection channels and related virtual channels. The first logical channel and the second logical channel of the upstream network transmit data to the first logical channel and the second logical channel of the downstream network through a shared physical link. For example, the shared physical link may be an on-chip routing or various communication connections between chips.
[0054] For example, at the downstream end, a pre-set shared token allocation strategy includes allocating a first shared token to the first logical channel and allocating a second shared token to the second logical channel.
[0055] The selection of the shared token allocation strategy is not unique, and the embodiments of the present disclosure do not limit this. For example, the shared token allocation strategy may be to first obtain the first transmission bandwidth and the second transmission bandwidth (including the real-time bandwidth or the allocated bandwidth) of the downstream end, and then allocate the first shared token and the second shared token to the upstream end according to the first transmission bandwidth and the second transmission bandwidth, respectively. In addition, for example, the shared token allocation strategy may also be to directly allocate a set number of first shared tokens and second shared tokens to the upstream end. The upstream end obtains the qualification to issue requests and / or responses by consuming tokens, thereby using the first logical channel and the second logical channel, etc.
[0056] For step S120, for example, in at least one embodiment, in response to a change in the first transmission bandwidth of the first logical channel to the downstream network, adjusting the size of the first shared token includes: in response to the first transmission bandwidth being less than a first threshold, reducing the size of the first shared token; or, in response to the first transmission bandwidth being greater than the first threshold, increasing the size of the first shared token. Here, the first threshold is a configurable threshold, for example, it can be configured by the user, or configured by the system according to business processing conditions. If the first transmission bandwidth is less than the first threshold, it means that the number of first shared tokens is too large, and the first shared tokens are reduced according to a configurable number, which can be reduced to zero at the lowest. Similarly, if the first transmission bandwidth is greater than the first threshold, it means that the number of first shared tokens is too small, and a configurable number of first shared tokens can be increased.
[0057] For step S130, for example, in at least one embodiment, in response to a change in the second transmission bandwidth of the second logical channel to the downstream network, adjusting the size of the second shared token includes: in response to the second transmission bandwidth being less than the second threshold, reducing the size of the second shared token; or, in response to the second transmission bandwidth being greater than the second threshold, increasing the size of the second shared token. Here, relative to the first threshold, the second threshold is another configurable threshold. If the second transmission bandwidth is less than the second threshold, it means that the number of second shared tokens is too large, and the second shared tokens are reduced according to a configurable number, which can be reduced to zero at the lowest. Similarly, if the second transmission bandwidth is greater than the second threshold, it means that the number of second shared tokens is too small, and a configurable number of second shared tokens can be increased.
[0058] It should be noted that the first threshold and the second threshold can be set according to needs and can be set to be equal or unequal. For example, the first threshold and the second threshold can be fixedly set at the downstream end, or flexibly set through registers and the like.
[0059] For example, in at least one embodiment, the data transmission method further includes: monitoring the first transmission bandwidth of the first logical channel to the downstream network to determine whether the first transmission bandwidth has changed; or, monitoring the second transmission bandwidth of the second logical channel to the downstream network to determine whether the second transmission bandwidth has changed (not shown in the figure). For example, monitoring the first transmission bandwidth of the first logical channel to the downstream network to determine whether the first transmission bandwidth has changed can be performed between step S110 and step S120. For example, monitoring the second transmission bandwidth of the second logical channel to the downstream network to determine whether the second transmission bandwidth has changed can be performed between step S120 and step S130. By monitoring the bandwidth of the downstream network in real time, the number of the first shared token and the second shared token can be more accurately regulated.
[0060] For example, in at least one embodiment, the above-mentioned monitoring of the transmission bandwidth of the first logical channel and the second logical channel for the downstream network respectively includes: real-time monitoring of the data in the first logical channel and the second logical channel through a bandwidth monitoring module pre-configured at the downstream end. For example, the bandwidth monitoring module monitors the read or write bandwidth of the downstream network, and the bandwidth monitoring means may be but is not limited to: first configure the sampling window used for this sampling, and the sampling window is an adjustable sampling window; through the sampling window, the first logical channel and the second logical channel are sampled multiple times respectively, and the average data bandwidth of the first logical channel and the second logical channel is obtained, which are used as the first transmission bandwidth and the second transmission bandwidth respectively. For example, the sampling window is set to an integer multiple of the round-trip delay of the shared transmission link, and the average data bandwidth is counted and calculated within the sampling window, so as to obtain real-time bandwidth data that meets normal needs.
[0061] For example, the sampling window used by the upstream end and the downstream end is the same, and the number of tokens returned by the upstream end is the same as the number of tokens distributed increased by the downstream end.
[0062] It should be noted that, for example, the above monitoring is real-time bandwidth monitoring based on the bandwidth monitoring module; in addition, the monitoring can also predict the first transmission bandwidth and the second transmission bandwidth according to the usage of the first sharing token and the second sharing token by the upstream end, and perform corresponding operations accordingly. This is because the first transmission bandwidth is usually related to the historical usage of the first sharing token, and the second transmission bandwidth is usually related to the historical usage of the second sharing token.
[0063] For example, in at least one embodiment, the data transmission method may also adjust the size of the first shared token and the second shared token in an associated manner. For example, this associated adjustment operation step may include: reducing the size of the first shared token by a first amount, and increasing the size of the second shared token by a second amount, for example, the first amount is greater than or equal to the second amount. In other words, if the first shared token needs to be reduced, the second shared token needs to be increased, and the amount of the reduced shared token is at least partially allocated to the amount of the other shared token, and vice versa. In this example, the associated adjustment scheme can further prevent the total number of the first shared token and the second shared token from being too large, and the amount of transmitted data from being too large.
[0064] For example, in at least one embodiment, the data transmission method may further include: identifying whether the first shared token and the second shared token need to be reduced or both need to be increased, and adjusting the number of the first shared token and the second shared token in the direction of token balancing. Token balancing is a process of managing and allocating tokens through load balancing technology, and by allocating the size of the first shared token and the size of the second shared token, the traffic of the first logical channel and the second logical channel is relatively balanced to improve the availability and performance of the system, for example, so that the size of the first shared token and the size of the second shared token meet a predetermined ratio.
[0065] For example, the data transmission method may further include: in response to the size of the first shared token being adjusted, notifying the upstream end; or in response to the size of the second shared token being adjusted, notifying the upstream end. By notifying the upstream end, the upstream end can timely adjust the number of tokens of each corresponding logical channel, thereby adjusting the allocation of corresponding data transmission resources.
[0066] Figure 2 A flowchart of another data transmission method provided by at least one embodiment of the present disclosure. Figure 2 The data transmission method is based on Figure 1 For example, in Figure 1 Based on the example shown, the data transmission method further includes steps S140 and S150.
[0067] Step S140: Allocate a first exclusive token for the first logical channel and a second exclusive token for the second logical channel at the downstream end, wherein the first exclusive token and the second exclusive token are provided to the upstream end for the upstream end to perform selection arbitration for the occupation of the shared physical link, and are used in priority to the first shared token and the second shared token, respectively.
[0068] Step S150: In response to the configurable number of tokens returned from the upstream end, adjust the size of the first exclusive token and / or the size of the second exclusive token.
[0069] For step S140, different bandwidth monitoring and distribution strategies may be implemented by dividing exclusive tokens and allocating shared tokens of the downstream receiving queue, which is not limited in the embodiments of the present disclosure.
[0070] For example, the first transmission bandwidth is related to the usage of the first shared token and the first exclusive token, and the second transmission bandwidth is related to the usage of the second shared token and the second exclusive token. In addition, the first transmission bandwidth can be monitored by obtaining the usage of the first shared token and the first exclusive token at the downstream end; the second transmission bandwidth can be monitored by obtaining the usage of the second shared token and the second exclusive token at the downstream end. Therefore, the distribution of the first shared token, the first exclusive token, the second shared token, and the second exclusive token can be adjusted in real time according to the first transmission bandwidth and the second transmission bandwidth.
[0071] For step S150, for example, the upstream end immediately returns the configurable number of tokens to the downstream end after consuming the first exclusive token, the second exclusive token, the first shared token, and the second shared token. After the downstream end reallocates the token to the upstream end according to the resource situation after data transmission, the upstream end can use the new token to perform a new round of write data transmission. The token return strategy of the downstream end can be configured based on the first shared token, the first exclusive token, the second shared token, the second exclusive token, or based on the measured bandwidth.
[0072] During the operation, the upstream end gives priority to using exclusive tokens to obtain the qualification for data transmission. When the exclusive token is consumed, the shared token is used. Similarly, for other resources (such as cache resources), exclusive types are used first, and when the exclusive types are consumed, the shared types are used.
[0073] Figure 3 A flowchart of another data transmission method provided for at least one embodiment of the present disclosure. Figure 3 The data transmission method is based on Figure 2 For example, in Figure 2 Based on the example shown, the data transmission method further includes steps S160 to S180.
[0074] Step S160: In response to the upstream end using the first shared token or the second shared token to transmit the first data, using the shared queue of the downstream end to buffer the first data, and modifying the first shared token or the second shared token at the downstream end.
[0075] Step S170: In response to the upstream end using the first exclusive token to transmit the second data, using the first queue of the downstream end to buffer the second data, and modifying the first exclusive token at the downstream end.
[0076] Step S180: In response to the upstream end using the second exclusive token to transmit the third data, using the second queue of the downstream end to buffer the third data, and modifying the second exclusive token at the downstream end.
[0077] In step S160, data sent by the first shared token or the second shared token is transferred to the shared queue for caching. In step S170, data sent by the first exclusive token is transferred to the first queue for caching. In step S180, data sent by the second exclusive token is transferred to the second queue for caching.
[0078] For example, in Figure 3 Based on the example shown, the data transmission method further includes: in response to any one of the first shared token, the second shared token, the first exclusive token and the second exclusive token being modified, notifying the upstream end. By notifying the upstream end, the upstream end can timely adjust the allocation of data transmission resources of the corresponding logical channel.
[0079] Figure 4 A schematic block diagram of a data transmission device provided in at least one embodiment of the present disclosure. The data transmission device is applicable to a downstream end connected to an upstream end of an upstream network through a shared physical link to transmit data, and the downstream end is connected to a downstream network to transmit data.
[0080] For example, in Figure 4 In the example shown, the data transmission device 100 includes a shared token allocation unit 110 , a first shared token management unit 120 and / or a second shared token management unit 130 .
[0081] The shared token allocation unit 110 is configured to allocate a first shared token to a first logical channel and a second shared token to a second logical channel at the downstream end, wherein the first shared token and the second shared token are provided to the upstream end so that the upstream end performs selection arbitration for occupation of the shared physical link. For example, the shared token allocation unit 110 can implement step S110, and its specific implementation scheme can refer to the relevant description of step S110, which will not be repeated here.
[0082] The first shared token management unit 120 is configured to adjust the size of the first shared token in response to a change in the first transmission bandwidth of the first logical channel to the downstream network. For example, the first shared token management unit 120 may implement step S120, and its specific implementation scheme may refer to the relevant description of step S120, which will not be repeated here.
[0083] The second shared token management unit 130 is configured to adjust the size of the second shared token in response to a change in the second transmission bandwidth of the second logical channel for the downstream network. For example, the second shared token management unit 130 may implement step S130, and its specific implementation scheme may refer to the relevant description of step S130, which will not be repeated here.
[0084] For example, in Figure 4 Based on the example shown, in at least one embodiment, the data transmission device also includes a first transmission bandwidth monitoring module and a second transmission bandwidth monitoring module (not shown in the figure). The first transmission bandwidth monitoring module is configured to monitor the first transmission bandwidth of the first logical channel for the downstream network to determine whether the first transmission bandwidth has changed. The second transmission bandwidth monitoring module is configured to monitor the second transmission bandwidth of the second logical channel for the downstream network to determine whether the second transmission bandwidth has changed. For example, in at least one embodiment, the first transmission bandwidth monitoring module and the second transmission bandwidth monitoring module may adopt the same monitoring module, for example, provided separately or provided as an integrated unit.
[0085] Figure 5 A schematic block diagram of another data transmission device provided for at least one embodiment of the present disclosure. Figure 5 Data transmission device Figure 4 An improved scheme based on a data transmission device.
[0086] For example, Figure 5 As shown, in at least one embodiment, the data transmission device further includes: an exclusive token allocation unit 140 and an exclusive token management unit 150 .
[0087] The exclusive token allocation unit 140 is configured to allocate a first exclusive token to the first logical channel and a second exclusive token to the second logical channel at the downstream end. Here, the first exclusive token and the second exclusive token are provided to the upstream end for the upstream end to select and arbitrate the occupation of the shared physical link, and are used in priority to the first shared token and the second shared token, respectively. For example, the exclusive token allocation unit 140 can implement step S140, and its specific implementation scheme can refer to the relevant description of step S140, which will not be repeated here.
[0088] The exclusive token management unit 150 is configured to adjust the size of the first exclusive token and / or the size of the second exclusive token in response to the configurable number of tokens returned from the upstream end. For example, the exclusive token management unit 150 can implement step S150, and its specific implementation scheme can refer to the relevant description of step S150, which will not be repeated here.
[0089] For example, the data transmission device further includes a shared queue, a first queue, a second queue and a channel distribution unit (not shown in the figure). The shared queue, the first queue and the second queue are each configured as an independent cache queue. The channel distribution unit is configured to respond to receiving data transmitted by the shared physical link and transmit the data to the shared queue, the first queue or the second queue at the downstream end according to the token type used by the upstream end to transmit the data. The specific implementation scheme of the channel distribution unit can refer to the relevant description of steps S160-step S180, which will not be repeated here.
[0090] It should be noted that, for example, after the data is stored in the shared queue, the first queue, and the second queue without blocking at the downstream end, the write data selector selects the prepared write data from the receive queue and sends it to the downstream network, and the operation of reading data is similar. If the data sent to the downstream network comes from the write-exclusive receive queue, the write token on the receiving side is incremented by one; if it comes from the read-exclusive receive queue, the read token on the receiving side is incremented by one; when it is other logical channels, the logical channel can also have an exclusive receive queue and a shared receive queue. If the read or write request comes from the shared queue, the shared token on the receiving side is incremented by 1. For example, the shared queue, the first queue, and the second queue can be physically independent queues or physically shared queues but with static register configuration isolation; the channel distribution unit can perform decompression and unpacking, and distribute one or more data in one shot.
[0091] For example, the data transmission device further includes a first data selector and a second data selector (not shown in the figure). The first data selector is configured to select the first data cached in the first queue or the shared queue to be sent to the downstream network via the first logical channel in response to the first instruction. The second data selector is configured to select the second data in the second queue or the shared queue to be sent to the downstream network via the second logical channel in response to the second selection operation.
[0092] For example, the data transmission device further includes an exclusive token counter and a shared token counter. The exclusive token counter is configured to obtain the size of the first exclusive token based on the second data cached by the first queue, and to obtain the size of the second exclusive token based on the third data cached by the second queue. The shared token counter is configured to obtain the sizes of the first shared token and the second shared token based on the first data cached by the shared queue.
[0093] It should be noted that in at least one embodiment of the present disclosure, the data management device 100 may include more or fewer circuits or units, and the connection relationship between the various circuits or units is not limited and can be determined according to actual needs. The specific configuration of each circuit is not limited and can be composed of analog devices according to circuit principles, or can be composed of digital chips, or in other applicable ways.
[0094] Figure 6A control block diagram of a specific example of a data transmission device provided by at least one embodiment of the present disclosure.
[0095] For example, Figure 6 As shown, the data transmission device includes an upstream end and a downstream end, the upstream end is connected to an upstream network, or belongs to the upstream network; the downstream end is connected to a downstream network, or belongs to the downstream network; the upstream end and the downstream end are connected to each other through a shared physical link. For example, the upstream network and / or the downstream network may be an on-chip network, or may be part of an on-chip network; for example, data is transmitted between the upstream network and the downstream network based on a transmission protocol, and the transmission protocol may include a variety of logical channels, such as a request channel, a response channel, a data channel, a probe channel, etc. The data type is usually logically divided into read data, write data, and read data and write data of different virtual channels, etc., and this embodiment does not limit this.
[0096] The upstream end includes the following components or operation logic: read send queue, write send queue, read send selection, write send selection, shared channel arbitration, read shared token release, write shared token release, the read shared token release operates on the read data buffer token, and the write shared token release operates on the write data buffer token.
[0097] The downstream end includes the following components or operation logic: shared channel distribution, read receive queue, write receive queue, shared queue, read data selection, write data selection, read data transmission, write data transmission, read token count, write token count, shared token count, shared token distribution, read bandwidth monitoring, write bandwidth monitoring, etc. The above logic can be implemented by digital circuits, hard wiring, etc., and the embodiments of the present disclosure are not limited to this.
[0098] At the upstream end, an operation request such as a write request or a read reply first enters the write send queue or the read send queue from the upstream network. The read send queue and the write send queue can be independent queues or shared queues. When the write send queue and the read send queue are not empty, the write send selection and the read send selection can be enabled respectively. The upstream end (corresponding to the first token management module) checks the write receive queue token (for example, corresponding to the first exclusive token or the first shared token) of the downstream end. If the number of tokens is greater than 0, the write request is in a sendable state; the upstream end (corresponding to the second token management module) checks the read receive queue token (for example, corresponding to the second exclusive token or the second shared token). If the number of tokens is greater than 0, the read reply is in a sendable state; other types of logical channels are similar and can have their own independent token counters.
[0099] The shared channel arbitration logic arbitrates based on the read response or write operation data readiness, selects the prepared operation request data to be transmitted on the shared physical link, and the upstream token counter corresponding to the selected operation request is reduced by 1. For example, if a write request is selected for operation, the write request is sent to the downstream end through the shared physical link, and the write data buffer token is reduced by 1 through the write sharing token release, indicating that the data capacity that the downstream end can receive is reduced by 1.
[0100] The principle of shared channel arbitration logic selection may be, for example, a polling-based selection method or a weight-based selection method. The data corresponding to the selected operation request may be transmitted on a shared physical link (e.g., directly transmitted or compressed and then transmitted on the physical link). For example, one or more data transmissions may be selected in one shot.
[0101] The transmitted data reaches the shared channel distribution logic (corresponding to the channel distribution unit) at the downstream end through the shared physical link. The shared channel distribution logic puts the data into the exclusive write receiving queue (corresponding to the first queue) or the read receiving queue (corresponding to the second queue) according to the type of operation request. When the exclusive read receiving queue or the write receiving queue is full, if there is free space in the shared queue, it is put into the shared queue. After the downstream end puts the data of the operation request into the corresponding receiving queue (write receiving queue, read receiving queue or shared queue), for example, the write data selection logic sends the prepared write data in the write receiving queue or the shared queue to the downstream network; similarly, the read data selection logic selects the prepared read data from the read receiving queue or the shared queue and sends it to the downstream network.
[0102] On the one hand, if the data sent to the downstream network comes from the write receive queue, the write token counting logic will increase the write token count by 1 and feed it back to the write data buffer token at the upstream end, that is, release the write token to the write receive queue, and the write data buffer token at the upstream end will increase by 1, indicating that the amount of write data that the write receive queue can send to the downstream end will increase by 1; if it comes from the read receive queue, the read token counting logic will increase the downstream end read token count by 1 and feed it back to the read data buffer token at the upstream end, that is, release the read token to the read receive queue, and the read data buffer token at the upstream end will increase by 1, indicating that the amount of read data that the read receive queue can send to the downstream end will increase by 1.
[0103] On the other hand, if the data sent to the downstream network comes from a shared queue, the shared token counting logic will increase the shared token (corresponding to the first shared token or the second shared token) at the downstream end by 1, and feed it back to the shared token distribution logic. The shared token distribution logic will then feed back to the write token counting logic or the read token counting logic according to the flow control strategy, so as to, for example, select the write token count plus 1 or the read token count plus 1. For example, the write token count (or read token count) can be preferentially increased based on the monitoring results of the downstream bandwidth, and then fed back to the write data buffer token or the read data buffer token at the upstream end, that is, releasing the token to the write receive queue or the read receive queue.
[0104] And at the downstream end, the write width monitoring logic and the read width monitoring logic respectively detect the data transmission bandwidth of the downstream network; if the actual read bandwidth is less than a certain configurable threshold, it means that the number of read tokens is too large, and the read shared tokens are reduced according to the configurable number, which can be reduced to 0 at the lowest; similarly, if the actual write bandwidth is less than a certain configurable threshold, it means that the number of write tokens is too large, and the write shared tokens are reduced according to the configurable number, which can be reduced to 0 at the lowest. If the actual read bandwidth is greater than a certain configurable threshold, it means that there is a possibility of insufficient read tokens, and try to increase the configurable number of read shared tokens; for writes, try to increase shared tokens in the same way. If the read shared token is reduced and the write shared token needs to be increased, the reduced read shared token can be allocated to the write shared token, and vice versa. In addition, if both reading and writing need to reduce shared tokens or both reading and writing need to increase shared tokens, then adjust in the direction of token balance based on the current number of read and write shared tokens. The adjusted shared token is fed back to the write token counting logic or the read token counting logic, for example, to select the write token count plus 1 or the read token count plus 1, and then fed back to the write data buffer token or the read data buffer token of the upstream end, that is, to release the token to the write receive queue or the read receive queue. When the upstream end receives the token for the read and write operation, it can perform a new round of write data transmission or read data transmission according to the size of the token.
[0105] For example, within a configurable sampling window, the write send queue is always empty and the read send queue occupancy is greater than a configurable threshold, which means that the write channel may not need a larger bandwidth in the near future, and the read bandwidth is insufficient. In this case, the write shared token release logic at the upstream end can, for example, periodically return the token to the shared token counter at the downstream end in a configurable quantity, thereby reducing the write data buffer token and increasing the read data cache token. Similar operations can be performed for the read send queue, which will not be described in detail.
[0106] At least some embodiments of the present disclosure further provide an electronic device, which includes the data transmission device of any of the above embodiments.
[0107] Figure 7A schematic block diagram of an electronic device provided by at least one embodiment of the present disclosure. The electronic device includes an on-chip network, the on-chip network includes an upstream network and a downstream network, and the upstream network and the downstream network are communicatively connected through the data transmission device of any of the above embodiments.
[0108] For example, the electronic device 1000 may also include at least one upstream end and at least one downstream end, the upstream end is communicatively connected to the upstream network or belongs to the upstream network, the downstream end is communicatively connected to the downstream network or belongs to the downstream network, and the downstream end includes the above-mentioned data transmission device. The upstream end includes a data sending device, which is communicatively connected to the above-mentioned data transmission device through a shared physical link, and the data sending device is configured to select and arbitrate the occupation of the shared physical link according to the first shared token and the second shared token when the upstream end transmits data through the first logical channel and the second logical channel at the same time.
[0109] The electronic devices in the embodiments of the present disclosure may include but are not limited to mobile terminals such as mobile phones, laptop computers, digital broadcast receivers, PDAs (personal digital assistants), PADs (tablet computers), PMPs (portable multimedia players), vehicle-mounted terminals (such as vehicle-mounted navigation terminals), etc., and fixed terminals such as digital TVs, desktop computers, etc. Figure 7 The electronic device 1000 shown is merely an example and should not bring any limitation to the functions and scope of use of the embodiments of the present disclosure.
[0110] For example, Figure 7 As shown, in some examples, the electronic device 1000 includes a processing device (e.g., a central processing unit, a graphics processor, etc.) 1001, which may include a processor, which can perform various appropriate actions and processes according to a program stored in a read-only memory (ROM) 1002 or a program loaded from a storage device 1008 to a random access memory (RAM) 1003. In RAM 1003, various programs and data required for the operation of the computer system are also stored. The processor 1001, ROM 1002, and RAM 1003 are connected to each other through a bus 1004. An input / output (I / O) interface 1005 is also connected to the bus 1004.
[0111] For example, the following components may be connected to the I / O interface 1005: an input device 1006 including, for example, a touch screen, a touchpad, a keyboard, a mouse, a camera, a microphone, an accelerometer, a gyroscope, etc.; an output device 1007 including, for example, a liquid crystal display (LCD), a speaker, a vibrator, etc.; a storage device 1008 including, for example, a magnetic tape, a hard disk, etc.; and a communication device 1009 which may also include, for example, a network interface card such as a LAN card, a modem, etc. The communication device 1009 may allow the electronic device 1000 to communicate with other devices wirelessly or by wire to exchange data, performing communication processing via a network such as the Internet. The drive 1010 is also connected to the I / O interface 1005 as needed. Removable media 1011, such as magnetic disks, optical disks, magneto-optical disks, semiconductor memories, etc., are installed on the drive 1010 as needed, so that the computer program read therefrom can be installed into the storage device 1008 as needed. Although Figure 7 The electronic device 1000 is shown to include various devices, but it should be understood that it is not required to implement or include all of the devices shown. More or fewer devices may be implemented or included instead.
[0112] For example, the electronic device 1000 may further include a peripheral interface (not shown in the figure), etc. The peripheral interface may be various types of interfaces, such as a USB interface, a lightning interface, etc. The communication device 1009 may communicate with a network and other devices through wireless communication, such as the Internet, an intranet and / or a wireless network such as a cellular phone network, a wireless local area network (LAN) and / or a metropolitan area network (MAN). Wireless communication may use any of a variety of communication standards, protocols, and techniques, including, but not limited to, Global System for Mobile Communications (GSM), Enhanced Data GSM Environment (EDGE), Wideband Code Division Multiple Access (W-CDMA), Code Division Multiple Access (CDMA), Time Division Multiple Access (TDMA), Bluetooth, Wi-Fi (e.g., based on IEEE 802.11a, IEEE 802.11b, IEEE 802.11g and / or IEEE 802.11n standards), Voice over Internet Protocol (VoIP), Wi-MAX, protocols for email, instant messaging and / or Short Message Service (SMS), or any other suitable communication protocol.
[0113] For example, the electronic device 1000 can be any device such as a mobile phone, a tablet computer, a laptop computer, an e-book, a game console, a television, a digital photo frame, a navigator, a server, etc., or it can be any combination of data processing devices and hardware, and the embodiments of the present disclosure are not limited to this.
[0114] It should be noted that, for the sake of clarity and simplicity, the disclosed embodiment does not provide all components of the electronic device 1000. To achieve the necessary functions of the electronic device, those skilled in the art may provide and set other components not shown according to specific needs, and the disclosed embodiment does not limit this.
[0115] Regarding the technical effects of the electronic device 1000 in the above embodiment, reference may be made to the technical effects of the data transmission method provided in the embodiments of the present disclosure, which will not be repeated here.
[0116] There are a few points to note:
[0117] (1) The drawings of the embodiments of the present disclosure only relate to the structures related to the embodiments of the present disclosure, and other structures may refer to the general design.
[0118] (2) In the absence of conflict, the embodiments of the present disclosure and the features therein may be combined with each other to obtain new embodiments.
[0119] The above description is merely an exemplary embodiment of the present disclosure and is not intended to limit the protection scope of the present disclosure. The protection scope of the present disclosure is determined by the appended claims.
Claims
1. A data transmission method, applicable to a downstream end connected to an upstream end of an upstream network via a shared physical link to transmit data, the downstream end being connected to a downstream network to transmit the data, comprising: Allocating a first shared token for a first logical channel and a second shared token for a second logical channel at the downstream end, wherein the first shared token and the second shared token are provided to the upstream end for the upstream end to perform selection arbitration for occupation of the shared physical link; In response to a change in a first transmission bandwidth of the first logical channel to the downstream network, adjusting a size of the first sharing token; and / or In response to a change in a second transmission bandwidth of the second logical channel for the downstream network, a size of the second sharing token is adjusted.
2. The data transmission method according to claim 1, further comprising: monitoring a first transmission bandwidth of the first logical channel to the downstream network to determine whether the first transmission bandwidth changes, or, A second transmission bandwidth of the second logical channel to the downstream network is monitored to determine whether the second transmission bandwidth changes.
3. The data transmission method according to claim 1, wherein: In response to a change in a first transmission bandwidth of the first logical channel to the downstream network, adjusting the size of the first sharing token includes: in response to the first transmission bandwidth being less than a first threshold, reducing the size of the first sharing token; or In response to a change in a second transmission bandwidth of the second logical channel to the downstream network, adjusting the size of the second sharing token includes: in response to the second transmission bandwidth being less than a second threshold, reducing the size of the second sharing token.
4. The data transmission method according to claim 2, wherein: The monitoring includes: The data in the first logical channel and the second logical channel are monitored in real time through a bandwidth monitoring module pre-configured at the downstream end.
5. The data transmission method according to claim 2, wherein: The size of the first shared token and the size of the second shared token are adjusted in association.
6. The data transmission method according to claim 5, wherein: The adjusting the size of the first shared token and the size of the second shared token in a correlated manner includes: The size of the first shared token is reduced by a first amount, while the size of the second shared token is increased by a second amount, wherein the first amount is greater than or equal to the second amount.
7. The data transmission method according to any one of claims 1 to 6, further comprising: In response to the size of the first shared token being adjusted, notifying the upstream end; or In response to the size of the second shared token being adjusted, the upstream end is notified.
8. The data transmission method according to any one of claims 1 to 6, further comprising: allocating a first exclusive token to the first logical channel and a second exclusive token to the second logical channel at the downstream end, The first exclusive token and the second exclusive token are provided to the upstream end so that the upstream end can select and arbitrate the occupation of the shared physical link, and are used in priority to the first shared token and the second shared token, respectively.
9. The data transmission method according to claim 8, further comprising: In response to a configurable number of tokens returned from the upstream end, the size of the first exclusive token and / or the size of the second exclusive token are adjusted.
10. The data transmission method according to claim 8, further comprising: In response to the upstream end using the first shared token or the second shared token to transmit first data, using the shared queue of the downstream end to buffer the first data, and modifying the first shared token or the second shared token at the downstream end; In response to the upstream end using the first exclusive token to transmit second data, using the first queue of the downstream end to buffer the second data, and modifying the first exclusive token at the downstream end; or In response to the upstream end transmitting third data using the second exclusive token, the second queue of the downstream end is used to buffer the third data, and the second exclusive token is modified at the downstream end.
11. The data transmission method according to claim 10, further comprising: In response to any one of the first shared token, the second shared token, the first exclusive token, and the second exclusive token being modified, notifying the upstream end.
12. A data transmission device, adapted to be connected to an upstream end of an upstream network via a shared physical link to transmit data to a downstream end, the downstream end being connected to a downstream network to transmit the data, wherein: The data transmission device comprises: a shared token allocation unit configured to allocate a first shared token to a first logical channel and a second shared token to a second logical channel at the downstream end, wherein the first shared token and the second shared token are provided to the upstream end for the upstream end to perform selection arbitration for occupation of the shared physical link; A first shared token management unit is configured to adjust the size of the first shared token in response to a change in a first transmission bandwidth of the first logical channel for the downstream network; and / or The second shared token management unit is configured to adjust the size of the second shared token in response to a change in a second transmission bandwidth of the second logical channel for the downstream network.
13. The data transmission device according to claim 12, further comprising: A first transmission bandwidth monitoring module, configured to monitor a first transmission bandwidth of the first logical channel to the downstream network to determine whether the first transmission bandwidth changes; The second transmission bandwidth monitoring module is configured to monitor a second transmission bandwidth of the second logical channel to the downstream network to determine whether the second transmission bandwidth changes.
14. The data transmission device according to claim 12, further comprising: an exclusive token allocation unit configured to allocate a first exclusive token to the first logical channel and a second exclusive token to the second logical channel at the downstream end, The first exclusive token and the second exclusive token are provided to the upstream end so that the upstream end can select and arbitrate the occupation of the shared physical link, and are used in priority to the first shared token and the second shared token, respectively.
15. The data transmission device according to any one of claims 12 to 14, further comprising: The exclusive token management unit is configured to adjust the size of the first exclusive token and / or the size of the second exclusive token in response to a configurable number of tokens returned from the upstream end.
16. The data transmission device according to claim 14, further comprising: The shared queue, the first queue, and the second queue are configured as independent cache queues; The channel distribution unit is configured to, in response to receiving the data transmitted by the shared physical link, transmit the data to the shared queue, the first queue or the second queue according to the token type used by the upstream end to send the data.
17. The data transmission device according to claim 16, further comprising: A first data selector is configured to select, in response to a first instruction, first data cached in the first queue or the shared queue and send it to the downstream network via the first logical channel; The second data selector is configured to select the second data in the second queue or the shared queue to be sent to the downstream network via the second logical channel in response to a second selection operation.
18. The data transmission device according to claim 16, further comprising: an exclusive token counter configured to obtain a size of the first exclusive token based on second data cached by the first queue, and to obtain a size of the second exclusive token based on third data cached by the second queue; as well as The shared token counter is configured to obtain the sizes of the first shared token and the second shared token based on the first data buffered by the shared queue.
19. An electronic device comprising the data transmission device according to any one of claims 12-18.
20. The electronic device according to claim 19, further comprising at least one of said upstream ends; wherein, Each of said at least one upstream end comprises: The data sending device is configured to perform selection arbitration for occupation of the shared physical link according to the first shared token and the second shared token when the upstream end transmits data simultaneously through the first logical channel and the second logical channel.