Data transmission apparatus, data transmission method, processor and electronic device
By using a ring link composed of arbitrators in the on-chip network for data transmission, the bottleneck and latency problems caused by the cross switch matrix are solved, and efficient and reliable data transmission is achieved.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-10-15
- Publication Date
- 2026-03-17
AI Technical Summary
The cross-switch matrix in existing on-chip networks causes data transmission bottlenecks and latency issues, especially performance degradation under high concurrency requests.
Data transmission is achieved using a ring link composed of multiple arbitrators. Each arbitrator monitors bandwidth capacity and controls data packet transmission to prevent data from converging at the central node. The traffic is dynamically adjusted based on feedback information.
It effectively avoids the congestion and latency caused by data centerization, improves data transmission efficiency and reliability, and adapts to changes in the network environment.
Smart Images

Figure CN118964279B_ABST
Abstract
Description
Technical Field
[0001] Embodiments of this disclosure relate to a data transmission apparatus, a data transmission method, a processor, and an electronic device. Background Technology
[0002] With the increasing number of computing cores, Network-on-Chip (NOC) has become an important research area, widely used in servers, smartphones, the Internet of Things (IoT), and other fields. NOC is a network architecture used to achieve efficient data transmission in multi-core processors or large-scale integrated circuits. It replaces the traditional bus structure with a network structure similar to the Internet, connecting various computing cores and other components (such as caches) through routers and communication channels for data transmission. Summary of the Invention
[0003] At least one embodiment of this disclosure provides a data transmission apparatus, including at least one first ring link, wherein the first ring link includes a plurality of arbitrators connected in sequence, each of the plurality of arbitrators being connected to at least one data transmitting unit and / or at least one data receiving unit among a plurality of data transmitting units, the arbitrator being configured to: monitor whether there is bandwidth margin on the first ring link, and in response to the existence of the bandwidth margin, allow the data transmitting unit connected to the arbitrator to send a first data packet to the first ring link and transmit it along the first ring link; and / or receive a second data packet from the first ring link and transmit it along the transmission direction, and determine whether to transmit the second data packet to the data receiving unit connected to the arbitrator.
[0004] In a data transmission apparatus provided in at least one embodiment of this disclosure, the arbitrator is further configured to determine whether to transmit the second data packet to the data receiving unit connected to the arbitrator based on the destination address of the second data packet.
[0005] In the data transmission apparatus provided in at least one embodiment of this disclosure, when the amount of data on a single first ring link is less than a preset traffic threshold, the single first ring link is configured to transmit all data packets.
[0006] In the data transmission apparatus provided in at least one embodiment of this disclosure, when the amount of data on a single first ring link is greater than a preset traffic threshold, the at least one first ring link includes multiple first ring links so that all data packets are distributed to the multiple first ring links.
[0007] In at least one embodiment of the data transmission apparatus provided in this disclosure, at least one arbitrator in the first ring link is connected to only one adjacent arbitrator. The data transmission apparatus further includes a second ring link, the second ring link having a transmission direction opposite to that of the first ring link.
[0008] The second ring link is configured to receive feedback information sent by the data sending unit connected to the downstream arbitrator in the first ring link, and transmit it to the data sending unit connected to the upstream arbitrator in the first ring link, so that the data sending unit connected to the upstream arbitrator can adjust the size of the data packets it needs to send and / or the destination data receiving unit according to the feedback information.
[0009] In at least one embodiment of the data transmission apparatus provided in this disclosure, the feedback information includes the amount of data that the data transmission unit connected to the downstream arbitrator needs to transmit.
[0010] In at least one embodiment of the data transmission apparatus provided in this disclosure, the data sending unit is a computing unit and the data receiving unit is a buffer unit.
[0011] In the data transmission apparatus provided in at least one embodiment of this disclosure, the data sending unit is a buffer unit and the data receiving unit is a computing unit.
[0012] In at least one embodiment of the data transmission apparatus provided in this disclosure, the data transmission apparatus is disposed in an on-chip network.
[0013] This disclosure provides at least one embodiment of a processor, including: the data transmission device provided in the above-described at least one embodiment; a plurality of computing units, serving as the plurality of data sending units or the plurality of data receiving units; and a plurality of cache units, serving as the plurality of data receiving units or the plurality of data sending units.
[0014] This disclosure provides an electronic device in at least one embodiment, including: the processor provided in the at least one embodiment described above.
[0015] This disclosure provides at least one embodiment of a data transmission method implemented based on the data transmission apparatus provided in the above-described at least one embodiment, comprising: each arbitrator monitoring whether there is bandwidth margin on the first ring link where it is located; in response to the existence of the bandwidth margin, allowing the data transmission unit connected to the arbitrator to send the first data packet to the first ring link and transmit it along the first ring link; and each arbitrator receiving the second data packet from the first ring link and transmitting it along the transmission direction, and determining whether to transmit the second data packet to the data receiving unit connected to the arbitrator. Attached Figure Description
[0016] To more clearly illustrate the technical solutions of the embodiments of this disclosure, the accompanying drawings of the embodiments will be briefly described below. Obviously, the drawings described below only relate to some embodiments of this disclosure and are not intended to limit this disclosure.
[0017] Figure 1A This is a schematic diagram of a cross switch matrix;
[0018] Figure 1B This is a schematic diagram of data transmission achieved through a crossbar switch matrix;
[0019] Figure 2 A schematic block diagram of a data transmission apparatus provided in at least one embodiment of this disclosure;
[0020] Figure 3 This is a schematic diagram illustrating a data transmission apparatus according to at least one embodiment of the present disclosure for implementing data transmission;
[0021] Figure 4 This is a schematic diagram illustrating a data transmission apparatus according to at least one embodiment of the present disclosure for implementing data transmission;
[0022] Figure 5 This is a schematic diagram illustrating a data transmission apparatus according to at least one embodiment of the present disclosure for implementing data transmission;
[0023] Figure 6 A flowchart illustrating a data transmission method provided in at least one embodiment of this disclosure;
[0024] Figure 7 A schematic block diagram of a processor provided for at least one embodiment of this disclosure;
[0025] Figure 8 A schematic block diagram of an electronic device provided for at least one embodiment of this disclosure;
[0026] Figure 9 This is a schematic block diagram of another electronic device provided for at least one embodiment of the present disclosure. Detailed Implementation
[0027] To make the objectives, technical solutions, and advantages of the embodiments of this disclosure clearer, the technical solutions of the embodiments of this disclosure will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some, not all, of the embodiments of this disclosure. All other embodiments obtained by those skilled in the art based on the described embodiments of this disclosure without creative effort are within the scope of protection of this disclosure.
[0028] Unless otherwise defined, the technical or scientific terms used in this disclosure shall have the ordinary meaning understood by one of ordinary skill in the art to which this disclosure pertains. The terms “first,” “second,” and similar terms used in this disclosure do not indicate any order, quantity, or importance, but are merely used to distinguish different components. Terms such as “comprising” or “including” mean that the element or object preceding the word encompasses the elements or objects listed following the word and their equivalents, without excluding other elements or objects. Terms such as “connected” or “linked” are not limited to physical or mechanical connections, but can include electrical connections, whether direct or indirect. Terms such as “upper,” “lower,” “left,” and “right” are used only to indicate relative positional relationships, and these relative positional relationships may change accordingly when the absolute position of the described objects changes.
[0029] The present disclosure will now be described through several specific embodiments. To keep the following description of the embodiments of the present disclosure clear and concise, detailed descriptions of known functions and known components may be omitted. When any component of an embodiment of the present disclosure appears in more than one drawing, the component is represented by the same or similar reference numerals in each drawing.
[0030] In high-performance computing systems, efficient data transmission is crucial. A crossbar is a commonly used interconnect technology that allows any input to be directly connected to any output, theoretically providing a fully interconnected network.
[0031] Figure 1A This is a schematic diagram of a cross switch matrix. Figure 1B This is a schematic diagram of data transmission achieved through a crossbar switch matrix.
[0032] like Figure 1A As shown, M inputs (IN1~INM) and N outputs (OUT1~OUTN) are fully connected through a crossbar switch matrix. Figure 1B As shown, data sending units 0 to 3 and data receiving units 0 to 3 are connected to the cross switch matrix. Data packets that the data sending units need to send will first be gathered at the cross switch matrix, and then the arbitration mechanism will determine how to allocate them to the data receiving units.
[0033] The inventors of this disclosure have noted two main drawbacks to using a crossbar switch matrix for data transmission:
[0034] 1. Congestion Issue: Since all data paths converge on the crossbar switch matrix, this makes the crossbar switch matrix a bottleneck for data transmission. A large number of concurrent requests may cause data packets to queue up within the crossbar switch matrix, waiting to be transmitted, thereby reducing the overall performance of the system.
[0035] 2. Delay issue: Since all data packets need to be aggregated into the cross switch matrix before being allocated to the data receiving unit according to the arbitration mechanism, this process adds additional delay.
[0036] At least one embodiment of this disclosure provides a data transmission apparatus, including at least one first ring link, wherein the first ring link includes a plurality of arbitrators connected in sequence, each of the plurality of arbitrators being connected to at least one of a plurality of data transmitting units and / or at least one of a plurality of data receiving units, the arbitrators being configured to: monitor whether there is bandwidth margin on the first ring link, and in response to the existence of bandwidth margin, allow the data transmitting unit to which the arbitrator is connected to to send a first data packet to the first ring link and transmit it along the first ring link; and / or receive a second data packet from the first ring link and transmitted along the transmission direction, and determine whether to transmit the second data packet to the data receiving unit to which the arbitrator is connected.
[0037] The data transmission apparatus provided in at least one embodiment of this disclosure uses a ring link composed of multiple arbitrators to realize data transmission. Each arbitrator is responsible for the data transmission decision of the data sending unit and / or data receiving unit connected to it. Data requests do not need to be aggregated to a central node for processing, which reduces the time of request and response and effectively avoids the congestion and delay problems caused by data centerization.
[0038] Figure 2 This is a schematic block diagram of a data transmission apparatus provided for at least one embodiment of the present disclosure.
[0039] For example, such as Figure 2As shown, the data transmission device 200 includes at least one first ring link 201, wherein the first ring link 201 includes a plurality of arbitrators 2011 connected in sequence, each arbitrator 2011 being connected to at least one data transmitting unit and / or at least one data receiving unit among a plurality of data transmitting units. The arbitrator 2011 is configured to: monitor whether there is bandwidth margin on the first ring link; in response to the existence of bandwidth margin, allow the data transmitting unit connected to the arbitrator to send a first data packet to the first ring link and transmit it along the first ring link; and / or receive a second data packet from the first ring link, transmitted along the transmission direction, and determine whether to transmit the second data packet to the data receiving unit connected to the arbitrator. Here, the second data packet can refer to any data packet transmitted on the first ring link; the second data packet can be the same as or different from the first data packet, and the embodiments of this disclosure do not limit this.
[0040] For example, the arbitrator can be connected to only one data transmission unit and configured to monitor whether there is bandwidth margin on the first ring link. In response to the existence of bandwidth margin, the data transmission unit connected to the arbitrator is allowed to send data packets to the first ring link and transmit them along the first ring link. For example, the arbitrator continuously monitors the bandwidth usage on the first ring link. If it detects bandwidth margin, meaning the first ring link has not yet reached its maximum transmission capacity, it considers that more data packets can be safely and efficiently transmitted, and allows the connected data transmission unit to send data packets to the first ring link and transmit them along the first ring link. The first ring link has a fixed transmission direction.
[0041] For example, the arbitrator can be connected to only one data receiving unit, configured to receive data packets transmitted along the transmission direction from the first ring link, and determine whether to transmit the data packets to the data receiving unit to which the arbitrator is connected. For instance, the arbitrator is responsible for receiving data packets transmitted along the transmission direction from the first ring link. After receiving the data packets, the arbitrator determines whether it is necessary to transmit the data packets to the connected data receiving unit. If not, it continues transmitting the data packets along the transmission direction.
[0042] For example, the arbitrator can be connected to a data sending unit and a data receiving unit, and is configured to monitor whether there is bandwidth margin on the first ring link; in response to the existence of bandwidth margin, allow the data sending unit connected to the arbitrator to send data packets to the first ring link and transmit them along the first ring link; and receive data packets from the first ring link that are transmitted in the transmission direction, and determine whether to transmit the data packets to the data receiving unit connected to the arbitrator.
[0043] The embodiments disclosed herein do not limit the number of first ring links; only a single first ring link or a combination of multiple first ring links is required to cover each data sending unit and data receiving unit with data transmission needs.
[0044] According to the data transmission apparatus provided in the above embodiments of this disclosure, the arbitrator can effectively manage the data traffic on the first ring link by monitoring and controlling the transmission of data packets. Furthermore, by employing multiple distributed arbitrators instead of a cross-connected switch matrix for data transmission, data does not need to be aggregated at a central location, effectively avoiding congestion and latency issues caused by data centralization, and improving data transmission efficiency and reliability.
[0045] In at least one embodiment of the data transmission apparatus provided in this disclosure, the arbitrator is further configured to determine whether to transmit the second data packet to the data receiving unit connected to the arbitrator based on the destination address of the second data packet. Here, the second data packet may refer to any data packet transmitted on the first ring link.
[0046] For example, data packets can carry a destination address, such as destination address information in the packet header. For instance, the arbitrator can have pre-defined forwarding rules that define the correspondence between destination addresses and data receiving units. When a data packet arrives at the arbitrator, if the arbitrator determines that the destination address of the data packet corresponds to the receiving unit connected to the arbitrator, it will transmit the data packet to the corresponding receiving unit; if the arbitrator determines that the destination address of the data packet does not correspond to the receiving unit connected to the arbitrator, the data packet will continue to be transmitted on the first ring link.
[0047] In the data transmission apparatus provided in at least one embodiment of this disclosure, when the amount of data on a single first ring link is less than a preset traffic threshold, the single first ring link is configured to transmit all data packets.
[0048] For example, if only a single ring link is set up for data transmission between all data sending and receiving units, and the data volume on the first ring link is less than a preset traffic threshold, it indicates that the data volume on the first ring link is small and under light load. Using only the first ring link for data transmission will not cause congestion or delay. It should be noted that this embodiment does not limit the size of the preset traffic volume and can be flexibly set according to different application scenarios and requirements.
[0049] Figure 3 This is a schematic diagram illustrating a data transmission apparatus according to at least one embodiment of the present disclosure, which implements data transmission. For example, Figure 3 An example of data transmission based on a single first ring link is shown.
[0050] For example, such as Figure 3As shown, the first ring link includes arbitrators 0 to 3 connected in sequence. Arbitrator 0 is connected to data sending unit 0 and data receiving unit 0; arbitrator 1 is connected to data sending unit 1 and data receiving unit 1; arbitrator 2 is connected to data sending unit 2 and data receiving unit 2; and arbitrator 3 is connected to data sending unit 3 and data receiving unit 3, thereby enabling data transmission between data sending units 0 to 3 and data receiving units 0 to 3. The transmission direction of the first ring link is clockwise, i.e., arbitrator 0 → arbitrator 1 → arbitrator 2 → arbitrator 3 → arbitrator 0.
[0051] For example, such as Figure 3 As shown, taking the example of data sending unit 0 needing to send a target data packet to data receiving unit 3, arbitrator 0 monitors whether there is bandwidth margin on the first ring link. In response to the existence of bandwidth margin, it allows data sending unit 0 to send the target data packet to the first ring link and transmit it clockwise along the first ring link. Arbitrators 1 to 3 receive each data packet from the first ring link, transmitted along the transmission direction, and determine whether to transmit these data packets to the connected data receiving unit. For example, when the target data packet arrives at arbitrator 1, arbitrator 1 determines that it is not necessary to transmit the target data packet to the connected data receiving unit 1, and the target data packet continues to be transmitted along the transmission direction on the first ring link. For example, when the target data packet arrives at arbitrator 3, arbitrator 3 determines that it is necessary to transmit the target data packet to the connected data receiving unit 3, and then transmits the target data packet to the data receiving unit 3, thereby realizing the transmission of the target data packet from data sending unit 0 to data receiving unit 3.
[0052] In the data transmission apparatus provided in at least one embodiment of this disclosure, when the amount of data on a single first ring link is greater than a preset traffic threshold, at least one first ring link includes multiple first ring links so that all data packets are distributed to multiple first ring links.
[0053] For example, if only a single ring link is used for data transmission between all data sending and receiving units, and the data volume on that first ring link exceeds a preset traffic threshold, it indicates that the data volume on the first ring link is large and it is overloaded. Using only the first ring link for data transmission may cause congestion and delays, affecting data transmission efficiency. In this case, multiple first ring links are set up, with each first ring link connecting some data sending units and / or some data receiving units. This allows data packets that would originally be transmitted through a single first ring link to be distributed across multiple first ring links, thereby reducing the data volume on each first ring link.
[0054] For example, when the data volume on multiple first ring links decreases below the preset distributed traffic threshold, the number of first ring links can be reduced to save resources. The preset distributed traffic threshold is lower than the preset traffic threshold and can be flexibly set according to different application scenarios and needs.
[0055] According to the data transmission apparatus provided in the above embodiments of this disclosure, when the amount of data on a single ring link is too large, multiple ring links can be added to distribute the traffic, which can effectively alleviate network congestion and latency, thereby improving the efficiency and reliability of data transmission.
[0056] Figure 4 This is a schematic diagram illustrating a data transmission apparatus according to at least one embodiment of the present disclosure, which implements data transmission. For example, Figure 4 An example of data transmission based on multiple first ring links is shown.
[0057] For example, such as Figure 4 As shown, the first ring link A includes arbitrators 0 to 3 connected in sequence. Arbitrator 0 is connected to data sending unit 0, arbitrator 1 is connected to data sending unit 1 and data receiving unit 1, arbitrator 2 is connected to data sending unit 2, and arbitrator 3 is connected to data sending unit 3 and data receiving unit 3, to realize data transmission between data sending units 0 to 3 and between data receiving units 1 and 3. The first ring link B includes arbitrators 4 to 7 connected in sequence. Arbitrator 4 is connected to data sending unit 0 and data receiving unit 0, arbitrator 5 is connected to data sending unit 1, arbitrator 6 is connected to data sending unit 2 and data receiving unit 2, and arbitrator 7 is connected to data sending unit 3, to realize data transmission between data sending units 0 to 3 and between data receiving units 0 and 2. The transmission direction of the first ring link A is clockwise, i.e., arbitrator 0 → arbitrator 1 → arbitrator 2 → arbitrator 3 → arbitrator 0. The transmission direction of the first ring link B is also clockwise, i.e., arbitrator 4 → arbitrator 5 → arbitrator 6 → arbitrator 7 → arbitrator 4.
[0058] For example, such as Figure 4As shown, taking the example of data sending unit 0 needing to send a target data packet to data receiving unit 3, arbitrator 0 monitors whether there is bandwidth margin on the first ring link A. In response to the existence of bandwidth margin, it allows data sending unit 0 to send the target data packet to the first ring link A and transmit it clockwise along the first ring link A. Arbitrators 1 and 3 receive each data packet transmitted from the first ring link A along the transmission direction and determine whether to transmit these data packets to the connected data receiving unit. For example, when the target data packet arrives at arbitrator 1, arbitrator 1 determines that it is not necessary to transmit the target data packet to the connected data receiving unit 1, and the target data packet continues to be transmitted along the transmission direction on the first ring link A. For example, when the target data packet arrives at arbitrator 3, arbitrator 3 determines that it is necessary to transmit the target data packet to the connected data receiving unit 3, and then transmits the target data packet to the data receiving unit 3, thereby realizing the transmission of the target data packet from data sending unit 0 to data receiving unit 3 on the first data link A.
[0059] For example, such as Figure 4 As shown, taking the example of data sending unit 0 needing to send a target data packet to data receiving unit 2, arbitrator 4 monitors whether there is bandwidth margin on the first ring link B. In response to the existence of bandwidth margin, it allows data sending unit 0 to send the target data packet to the first ring link B and transmit it clockwise along the first ring link B. Arbitrators 4 and 6 receive each data packet transmitted from the first ring link B along the transmission direction and determine whether to transmit these data packets to the connected data receiving unit. For example, when the target data packet arrives at arbitrator 4, arbitrator 4 determines that it is not necessary to transmit the target data packet to the connected data receiving unit 0, and the target data packet continues to be transmitted along the transmission direction on the first ring link B. For example, when the target data packet arrives at arbitrator 6, arbitrator 6 determines that it is necessary to transmit the target data packet to the connected data receiving unit 2, and then transmits the target data packet to the data receiving unit 2, thereby realizing the transmission of the target data packet from data sending unit 0 to data receiving unit 2 on the first data link B.
[0060] In the data transmission apparatus provided in at least one embodiment of this disclosure, at least one arbitrator in the first ring link is connected to only one adjacent arbitrator. The data transmission apparatus further includes a second ring link, which transmits in the opposite direction to the first ring link. The second ring link is configured to receive feedback information sent by the data transmission unit connected to the downstream arbitrator in the first ring link, and transmit it to the data transmission unit connected to the upstream arbitrator in the first ring link, so that the data transmission unit connected to the upstream arbitrator can adjust the size of the data packets it needs to send and / or the destination data receiving unit according to the feedback information.
[0061] For example, the first ring link is a non-closed ring link with a defined start and end point, and data flows in the direction from the start point to the end point. Along the data transmission direction, the first and last arbitrators in the first ring link are each connected to only one adjacent arbitrator. Based on the data transmission direction, the arbitrators in the first ring link can be divided into upstream arbitrators and downstream arbitrators; that is, the arbitrator closer to the start point is the upstream arbitrator, and the arbitrator closer to the end point is the downstream arbitrator.
[0062] For example, a second ring link can be configured with the transmission direction opposite to that of the first ring link to achieve flow control. The second ring link includes multiple arbitrators connected in sequence, and each of the multiple arbitrators is connected to at least one of the multiple data transmission units. The number of arbitrators included in the first ring link and the second ring link can be equal, and the data transmission units connected to corresponding arbitrators in the first ring link and the second ring link can also be the same.
[0063] For example, the feedback information includes the amount of data that the data sending unit connected to the downstream arbitrator needs to send. When the amount of data that the data sending unit connected to the downstream arbitrator needs to send is large, or when there is insufficient bandwidth margin for a long period of time to send data, feedback information can be sent through the second ring link and transmitted to the data sending unit connected to the upstream arbitrator. This notifies the data sending unit connected to the upstream arbitrator to control the amount of data to be sent, reserving more bandwidth margin for the data sending unit connected to the downstream arbitrator. This prevents the sending unit connected to the upstream arbitrator from having a continuous sending advantage, causing the sending unit connected to the downstream arbitrator to be unable to send data, thereby achieving the purpose of traffic balancing.
[0064] For example, the data sending unit connected to the upstream arbitrator can determine the proportion of reserved bandwidth based on feedback information and the total amount of data packets it needs to send, and adjust the size of the data packets it needs to send and / or the destination data receiving unit. For example, it can reduce the size of the data packets to be sent, split them into smaller data packets for multiple transmissions, or select other available data receiving units as the destination data receiving unit.
[0065] For example, if the data transmission device includes multiple first ring links, multiple second ring links can be correspondingly set up to form multiple first ring link-second ring link matching pairs. In each matching pair, the number of arbitrators included in the first ring link and the second ring link can be equal, and the data transmission units connected to the arbitrators can also be the same. That is, the second ring link in each matching pair is used to control the amount of data in the first ring link.
[0066] According to the data transmission apparatus provided in the above embodiments of this disclosure, by setting a second ring link, the data transmission strategy can be dynamically adjusted, which can better adapt to the ever-changing network environment, thereby improving the efficiency and reliability of data transmission.
[0067] Figure 5 This is a schematic diagram illustrating a data transmission apparatus according to at least one embodiment of the present disclosure, which implements data transmission. For example, Figure 5 A second ring link is shown, which has the opposite transmission direction to the first ring link.
[0068] For example, such as Figure 5 As shown, the first ring link includes arbitrators 0 to 3 connected sequentially. Arbitrators 0 and 3 are each connected to only one adjacent arbitrator, serving as the first and last arbitrators of the link, respectively. Arbitrator 0 is connected to data transmission unit 0, arbitrator 1 is connected to data transmission unit 1, arbitrator 2 is connected to data transmission unit 2, and arbitrator 3 is connected to both data transmission unit 3 and data receiving unit 3, thereby enabling data transmission between data transmission units 0, 1, and 3. The transmission direction of the first ring link is clockwise, i.e., arbitrator 0 → arbitrator 1 → arbitrator 2 → arbitrator 3.
[0069] For example, such as Figure 5 As shown, the second ring link includes arbitrators 0' to 3' connected in sequence. Arbitrator 0' is connected to data transmission unit 0, arbitrator 1' is connected to data transmission unit 1, arbitrator 2' is connected to data transmission unit 2, and arbitrator 3' is connected to data transmission unit 3. The transmission direction of the second ring link is counterclockwise, i.e., arbitrator 3' → arbitrator 2' → arbitrator 1' → arbitrator 0'.
[0070] For example, such as Figure 5 As shown, taking the example where both data sending unit 0 and data sending unit 2 need to send data packets to data receiving unit 3, arbitrator 0 is the upstream arbitrator, and arbitrator 2 is the downstream arbitrator. Data sending unit 2 sends feedback information to the second ring link through arbitrator 2', and then transmits it to data sending unit 0 via arbitrator 1' and arbitrator 0'. Data sending unit 0 adjusts the size of the data packets it needs to send based on the received feedback information, reserving more bandwidth for data sending unit 2 to achieve data transmission between data sending unit 2 and data receiving unit 3.
[0071] In the data transmission apparatus provided in at least one embodiment of this disclosure, the data sending unit is a computing unit and the data receiving unit is a buffer unit.
[0072] For example, a computing unit can be an execution unit (EU) that performs computing tasks, and a caching unit can include a first-level cache (L1 cache), a second-level cache (L2 cache), or a last-level cache (LLC), etc.
[0073] For example, when a computing unit sends an access request to a cache unit, the data sending unit is the computing unit, the data receiving unit is the cache unit, and the data packet is the access request. For example, when multiple computing units simultaneously send access requests to the same cache unit, the data transmission apparatus provided according to the embodiments of this disclosure can determine which computing unit will access the cache unit.
[0074] In the data transmission apparatus provided in at least one embodiment of this disclosure, the data sending unit is a buffer unit and the data receiving unit is a computing unit.
[0075] For example, when a cache unit returns read data to a computing unit, the data sending unit is the cache unit, the data receiving unit is the computing unit, and the data packet is the read data. For example, when multiple cache units simultaneously return read data to the same computing unit, the data transmission apparatus provided according to embodiments of this disclosure can determine which cache unit returns the read data to the computing unit.
[0076] In at least one embodiment of the data transmission apparatus provided in this disclosure, the data transmission apparatus is disposed in an on-chip network.
[0077] The data transmission apparatus provided in this disclosure, as part of an on-chip network, can effectively connect multiple data transmission units and data receiving units, providing high-bandwidth, low-latency data transmission.
[0078] Figure 6 This is a flowchart illustrating a data transmission method provided in at least one embodiment of the present disclosure.
[0079] like Figure 6 As shown, at least one embodiment of this disclosure provides a data transmission method implemented based on the data transmission device provided in the above-described at least one embodiment, including the following steps S601 to S602.
[0080] Step S601: Each arbitrator monitors whether there is bandwidth margin on the first ring link it is connected to. In response to the existence of bandwidth margin, the data sending unit connected to the arbitrator is allowed to send the first data packet to the first ring link and transmit it along the first ring link.
[0081] Step S602: Each arbitrator receives a second data packet from the first ring link, which is transmitted along the transmission direction, and determines whether to transmit the second data packet to the data receiving unit connected to the arbitrator.
[0082] For a detailed description of steps S601 and S602, please refer to the embodiments of the data transmission device described above, which will not be repeated here.
[0083] Figure 7 This is a schematic block diagram of a processor provided for at least one embodiment of the present disclosure.
[0084] like Figure 7 As shown, the processor 700 provided in this embodiment includes a data transmission device 701, multiple computing units 702, and multiple cache units 703. The data transmission device 701 can be any of the data transmission devices provided in this embodiment. For details regarding the structure, function, and technical effects of the data transmission device 701, please refer to the relevant content of the data transmission device 200, which will not be repeated here. For example, the processor can be a single-core or multi-core central processing unit (CPU), a graphics processing unit (GPU), a general-purpose graphics processing unit (GPGPU), an artificial intelligence (AI) accelerator, etc., and this disclosure does not limit it.
[0085] For example, the computing unit 702 can be an execution unit (EU) that performs computing tasks. The computing unit 702 can be a data sending unit or a data receiving unit.
[0086] For example, cache unit 703 may include a level 1 cache (L1 cache), a level 2 cache (L2 cache), or a last level cache (LLC). Cache unit 703 can be used as a data sending unit or a data receiving unit.
[0087] For example, when the computing unit sends an access request to the cache unit, the data sending unit is the computing unit and the data receiving unit is the cache unit. Similarly, when the cache unit returns read data to the computing unit, the data sending unit is the cache unit and the data receiving unit is the computing unit.
[0088] Figure 8 This is a schematic block diagram of an electronic device provided for at least one embodiment of the present disclosure.
[0089] like Figure 8 As shown, in some embodiments, the electronic device 800 includes a processor 801, which is a processor provided in any of the embodiments of this disclosure, for example, it can be a processor 801. Figure 7The processor 700. The electronic device 800 can be any device with computing capabilities, such as a computer, server, smartphone, tablet computer, etc., and the embodiments disclosed herein are not limited thereto.
[0090] Figure 9 This is a schematic block diagram of another electronic device provided for at least one embodiment of the present disclosure.
[0091] like Figure 9 As shown, the electronic device 900 includes a processor provided in any of the embodiments of this disclosure. The electronic device 900 is, for example, adapted to implement the data transmission method provided in the embodiments of this disclosure. The electronic device 900 may be a terminal device or a server, etc. It should be noted that... Figure 9 The illustrated electronic device 900 is merely an example and does not impose any limitation on the functionality and scope of use of the embodiments disclosed herein.
[0092] like Figure 9 As shown, the electronic device 900 may include a processing device (e.g., a central processing unit, a graphics processing unit, etc.) 91, which can perform various appropriate actions and processes according to a program stored in a read-only memory (ROM) 92 or a program loaded from a storage device 98 into a random access memory (RAM) 93. For example, the processing device 91 may be a processor provided in any of the embodiments of this disclosure described above. Various programs and data required for the operation of the electronic device 900 are also stored in the RAM 93. The processing device 91, the ROM 92, and the RAM 93 are interconnected via a bus 94. An input / output (I / O) interface 95 is also connected to the bus 94.
[0093] Typically, the following devices can be connected to I / O interface 95: input devices 96 including, for example, touchscreens, touchpads, keyboards, mice, cameras, microphones, accelerometers, gyroscopes, etc.; output devices 97 including, for example, liquid crystal displays (LCDs), speakers, vibrators, etc.; storage devices 98 including, for example, magnetic tapes, hard disks, etc.; and communication devices 99. Communication device 99 allows electronic device 900 to communicate wirelessly or wiredly with other electronic devices to exchange data. Although Figure 9 An electronic device 900 with various devices is shown, but it should be understood that it is not required to implement or have all of the devices shown, and the electronic device 900 may alternatively implement or have more or fewer devices.
[0094] For detailed descriptions and technical effects of the 800 / 900 electronic devices, please refer to the description of the processor and data transmission methods above, which will not be repeated here.
[0095] Although the present disclosure has been described in detail above with general descriptions and specific embodiments, modifications or improvements can be made to the embodiments of the present disclosure, which will be obvious to those skilled in the art. Therefore, all such modifications or improvements made without departing from the spirit of the present disclosure are within the scope of protection claimed by the present disclosure.
[0096] The following points should be noted regarding this disclosure:
[0097] (1) The accompanying drawings of the embodiments of this disclosure only involve the structures involved in the embodiments of this disclosure. Other structures can be referred to the general design.
[0098] (2) For clarity, the thickness of layers or regions in the drawings used to describe embodiments of the present disclosure is enlarged or reduced, i.e., these drawings are not drawn to actual scale.
[0099] (3) Where there is no conflict, the embodiments of this disclosure and the features in the embodiments can be combined with each other to obtain new embodiments.
[0100] The above description is merely a specific embodiment of this disclosure, but the scope of protection of this disclosure is not limited thereto. The scope of protection of this disclosure should be determined by the scope of protection of the claims.
Claims
1. A data transmission apparatus comprising at least one first ring link, wherein, The first ring link comprises a plurality of arbiters connected in sequence, each of the arbiters is connected with at least one data sending unit and / or at least one data receiving unit, The arbiter is configured to: monitor bandwidth usage on the first ring link, and monitor whether there is a bandwidth margin on the first ring link, in response to the existence of the bandwidth margin, allowing the data sending unit connected with the arbiter to send a first data packet to the first ring link and transmit along the first ring link; and / or receive a second data packet transmitted from the first ring link in the transmission direction, and determine whether to transmit the second data packet to the data receiving unit connected with the arbiter, wherein at least one arbiter in the first ring link is connected with only one adjacent arbiter, the data transmission device further comprises a second ring link, the second ring link is opposite to the first ring link in the transmission direction, the second ring link is configured to receive feedback information sent by the data sending unit connected with the downstream arbiter in the first ring link, and transmit to the data sending unit connected with the upstream arbiter in the first ring link, so that the data sending unit connected with the upstream arbiter determines the proportion of reserved bandwidth margin according to the feedback information and the total amount of data packets it needs to send, adjusts the size of data packets it needs to send and / or the destination data receiving unit, wherein the feedback information comprises the amount of data that the data sending unit connected with the downstream arbiter needs to send, wherein in the case that the amount of data on a single first ring link is less than a preset traffic threshold, the single first ring link is configured to deliver all data packets, wherein in the case that the amount of data on a single first ring link is greater than a preset traffic threshold, the at least one first ring link comprises a first number of first ring links, so that all data packets are allocated to the first number of first ring links, wherein when the amount of data on multiple first ring links all decreases to below a preset distribution traffic threshold, the number of first ring links is reduced.
2. The data transmission device of claim 1, wherein, The arbiter is further configured to determine whether to transmit the second data packet to the data receiving unit connected with the arbiter according to the destination address of the second data packet.
3. The data transmission apparatus of claim 1, wherein, The data sending unit is a computing unit, and the data receiving unit is a cache unit.
4. The data transmission device of claim 1, wherein, The data sending unit is a cache unit, and the data receiving unit is a computing unit.
5. The data transmission apparatus of claim 1, wherein, The data transmission device is arranged in a network on a chip.
6. A processor comprising: the data transmission device according to any one of claims 1-5; a plurality of computing units as the plurality of data sending units or the plurality of data receiving units; and a plurality of cache units as the plurality of data receiving units or the plurality of data sending units.
7. An electronic device comprising: the processor according to claim 6.
8. A data transmission method implemented based on the data transmission device according to any one of claims 1-5, comprising: Each arbitrator monitors bandwidth usage on the first ring link in which it is located and monitors whether there is a bandwidth surplus on the first ring link in which it is located, and in response to there being a bandwidth surplus, allows a data sending unit to which the arbitrator is connected to send the first data packets onto and along the first ring link; Each arbitrator receives the second data packets from the first ring link travelling in the direction of travel and determines whether to pass the second data packets to a data receiving unit to which the arbitrator is connected; A data sending unit connected to an upstream arbitrator in the first ring link receives feedback information from a data sending unit connected to a downstream arbitrator in the first ring link and, based on the feedback information and the total amount of data packets that it needs to send, determines a proportion of the reserved bandwidth surplus, and adjusts the size of the data packets that it needs to send and / or the destination data receiving unit, wherein the feedback information is transmitted via the second ring link, wherein the feedback information comprises the amount of data that the data sending unit connected to the downstream arbitrator needs to send.
Citation Information
Patent Citations
Method for allocating bandwidth dynamically to design on-chip network
CN101075959A
Chip and related equipment
CN109995633A
Data collection structure, method, chip and system
CN115905088A