CN114374651A - Transport flow control method, network on chip, electronic device, and storage medium - Google Patents

Transport flow control method, network on chip, electronic device, and storage medium Download PDF

Info

Publication number
CN114374651A
CN114374651A CN202111670844.3A CN202111670844A CN114374651A CN 114374651 A CN114374651 A CN 114374651A CN 202111670844 A CN202111670844 A CN 202111670844A CN 114374651 A CN114374651 A CN 114374651A
Authority
CN
China
Prior art keywords
transmission
ports
port
resource
allocation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202111670844.3A
Other languages
Chinese (zh)
Other versions
CN114374651B (en
Inventor
曹俊
林江
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Haiguang Information Technology Co Ltd
Original Assignee
Haiguang Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Haiguang Information Technology Co Ltd filed Critical Haiguang Information Technology Co Ltd
Priority to CN202111670844.3A priority Critical patent/CN114374651B/en
Publication of CN114374651A publication Critical patent/CN114374651A/en
Application granted granted Critical
Publication of CN114374651B publication Critical patent/CN114374651B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7825Globally asynchronous, locally synchronous, e.g. network on chip
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6275Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority

Abstract

A transmission flow control method of a router, a network-on-chip device, an electronic device, and a computer-readable storage medium, the router including a plurality of receiving ports respectively coupled to a plurality of transmitting ports corresponding to an upstream router, wherein the plurality of receiving ports receive a transmission request from the upstream router via the corresponding plurality of transmitting ports, the transmission flow control method comprising: determining a plurality of transmission flow rate pressure information of a plurality of sending ports corresponding to the upstream router, and determining a plurality of transmission allocation indication information used for the plurality of sending ports corresponding to the upstream router based on the plurality of transmission flow rate pressure information; adjusting a number of resource transmission allocations for the plurality of sending ports based on a plurality of transmission allocation indication information, wherein the number of resource transmission allocations represents a number of transmission requests that can be received from the sending ports of the upstream router, and wherein the transmission allocation indication information includes a reclaim indication and a release indication.

Description

Transport flow control method, network on chip, electronic device, and storage medium
Technical Field
Embodiments of the present disclosure relate to a transmission traffic control method for a router, a network-on-chip device, an electronic device, and a computer-readable storage medium.
Background
A Network-on-Chip (NoC) is a new communication method for a System-on-Chip (SoC), which is a main component of a multi-core technology. The NoC method brings a brand new on-chip communication method, and is significantly superior to the performance of the traditional bus system. The NoC-based system can better adapt to a globally asynchronous locally synchronous clock mechanism used in a future complex multi-core SoC design.
Disclosure of Invention
At least one aspect of the present disclosure provides a transmission flow control method of a router, the router including a plurality of receiving ports respectively coupled to a plurality of transmitting ports corresponding to an upstream router, wherein the plurality of receiving ports receive transmission requests from the upstream router via the corresponding plurality of transmitting ports, the method including: determining a plurality of transmission flow pressure information of a plurality of sending ports corresponding to the upstream router, and determining a plurality of transmission allocation indication information for the plurality of sending ports corresponding to the upstream router based on the plurality of transmission flow pressure information; adjusting a number of resource transmission allocations for the plurality of sending ports based on the plurality of transmission allocation indication information, wherein the number of resource transmission allocations represents a number of transmission requests that can be received from the sending ports of the upstream router, and wherein the transmission allocation indication information includes a reclaim indication and a release indication.
For example, in a method provided according to an embodiment of the present disclosure, determining, based on the plurality of transmission traffic pressure information, a plurality of transmission allocation indication information for a plurality of sending ports corresponding to the upstream router includes: calculating a plurality of transmission priorities of a plurality of sending ports corresponding to the upstream router based on the plurality of transmission flow pressure information; and determining a plurality of transmission allocation indications for a plurality of sending ports corresponding to the upstream router based on the plurality of transmission priorities.
For example, in a method provided according to an embodiment of the present disclosure, determining, based on the plurality of transmission traffic pressure information, a plurality of transmission allocation indication information for a plurality of sending ports corresponding to the upstream router further includes: determining a plurality of port status information for the plurality of receive ports; calculating a plurality of transmission priorities of a plurality of sending ports corresponding to the upstream router based on the plurality of transmission flow pressure information; and determining a plurality of transmission allocation indications for a plurality of sending ports corresponding to the upstream router based on the plurality of transmission priorities and the plurality of port state information, wherein the port state information comprises an activated state and an inactivated state.
For example, in a method provided according to an embodiment of the present disclosure, determining a plurality of pieces of transmission traffic pressure information of a plurality of sending ports corresponding to the upstream router includes: acquiring a balance threshold value of a plurality of resource transmission allocation quantities of the plurality of sending ports, and acquiring current values of the plurality of resource transmission allocation quantities of the plurality of sending ports; determining the transmission traffic pressure information for the plurality of transmit ports based on a balance threshold for the plurality of resource transmission allocation quantities and a current value of the plurality of resource transmission allocation quantities.
For example, in a method provided according to an embodiment of the present disclosure, determining the plurality of port status information of the plurality of receiving ports further includes: in an initialization stage, in response to that the resource transmission allocation quantity of at least one of the plurality of sending ports is greater than zero, the resource transmission allocation quantity of the at least one of the plurality of sending ports is recovered, and the plurality of port state information of the plurality of sending ports is set to be in an inactive state.
For example, in a method provided according to an embodiment of the present disclosure, determining, based on the plurality of transmission priorities and the plurality of port status information, a plurality of transmission allocation indications for a plurality of sending ports to which the upstream router corresponds includes: in response to all of the plurality of receiving ports being inactive and a number of resource transmission allocations for at least one of the plurality of transmitting ports being less than the balance threshold, determining a transmission allocation indication for the at least one of the plurality of transmitting ports to be a release indication based on the plurality of transmission priorities of the plurality of transmitting ports or not based on the plurality of transmission priorities of the plurality of transmitting ports.
For example, in a method provided according to an embodiment of the present disclosure, determining, based on the plurality of transmission priorities and the plurality of port status information, a plurality of transmission allocation indications for a plurality of sending ports corresponding to the upstream router further includes: in response to a port status of at least one of the plurality of receiving ports being an active status, determining, based on the plurality of transmission priorities of the plurality of transmitting ports, a transmission allocation indication for a transmitting port corresponding to the receiving port having the port status being the active status to be a release indication; and determining a transmission allocation indication for a transmitting port corresponding to the receiving port whose port state is an inactive state as a reclamation indication based on the plurality of transmission priorities of the plurality of transmitting ports or not based on the plurality of transmission priorities of the plurality of transmitting ports.
For example, in a method provided according to an embodiment of the present disclosure, determining, based on the plurality of transmission priorities and the plurality of port status information, a plurality of transmission allocation indications for a plurality of sending ports corresponding to the upstream router further includes: in response to the number of resource transmission allocations of the transmitting ports corresponding to all receiving ports of which the port status is the activated status being equal to the respective balance threshold, determining, based on the plurality of transmission priorities of the plurality of transmitting ports, a transmission allocation indication for the transmitting port corresponding to at least one of the plurality of receiving ports of which the port status is the inactivated status as a release indication.
For example, in a method provided according to an embodiment of the present disclosure, adjusting the number of resource transmission allocations for the plurality of transmission ports based on the plurality of transmission allocation indication information further includes: in response to the transmission allocation indication for the sending port being a reclaim indication, decrementing a resource transmission allocation number for the sending port by one, and in response to the transmission allocation indication for the sending port being a release indication, incrementing a resource transmission allocation number for the sending port by one.
For example, in a method provided according to an embodiment of the present disclosure, a plurality of resource transmission allocation quantities for the plurality of transmit ports are transmitted to the upstream router.
For example, in a method provided according to an embodiment of the present disclosure, determining the transmission traffic pressure information of the plurality of transmission ports based on the balance threshold of the plurality of resource transmission allocation quantities and the current values of the plurality of resource transmission allocation quantities includes: the transmission traffic pressure information is determined as a difference between a balance threshold value of the resource transmission allocation number of the sending port and a current value of the resource transmission allocation number of the sending port; or the transmission traffic pressure information is determined as a ratio between a current value of the resource transmission allocation number of the transmission port and a balanced threshold value of the resource transmission allocation number of the transmission port.
For example, in a method provided according to an embodiment of the present disclosure, calculating a plurality of transmission priorities of a plurality of sending ports corresponding to the upstream router based on the plurality of transmission traffic pressure information includes: sorting each of the plurality of transmit ports based on the plurality of transmit traffic pressure information and determining the transmit priority based on the sorting; or determining a classification for each of the plurality of transmit ports based on the plurality of transmit traffic pressure information and determining the transmit priority based on the classification.
For example, in a method provided according to an embodiment of the present disclosure, the balance threshold is determined based on a change in the number of transmission requests or the number of resource transmission allocations in each of the plurality of transmission ports.
At least one aspect of the present disclosure also provides a network-on-chip apparatus, including at least one upstream router and at least one downstream router, where the at least one upstream router includes a plurality of transmitting ports, and the at least one downstream router includes a plurality of receiving ports respectively coupled with a plurality of transmitting ports corresponding to the upstream router, where the plurality of receiving ports receive transmission requests from the plurality of transmitting ports corresponding to the upstream router via resource transmission channels, each of the at least one downstream router further includes a resource transmission allocation controller configured to: determining a plurality of transmission flow pressure information of a plurality of sending ports corresponding to the upstream router; determining a plurality of transmission allocation indication information for a plurality of sending ports corresponding to the upstream router based on the plurality of transmission traffic pressure information; and adjusting the number of resource transmission allocations for the plurality of sending ports based on the plurality of transmission allocation indication information, wherein the number of resource transmission allocations represents the number of transmission requests that can be received from the sending ports of the upstream router, and wherein the transmission allocation indication information includes a reclaim indication and a release indication.
For example, in the network-on-chip apparatus provided according to the embodiment of the present disclosure, the resource transmission allocation controller is configured to include a transmission priority determination module and an arbitration module, wherein the transmission priority determination module is configured to calculate a plurality of transmission priorities of a plurality of sending ports corresponding to the upstream router based on the plurality of transmission traffic pressure information; and the arbitration module is configured to determine a plurality of transmission allocation indications for a plurality of transmit ports to which the upstream router corresponds based on the plurality of transmission priorities.
For example, in the network-on-chip apparatus provided according to an embodiment of the present disclosure, the resource transmission allocation controller is configured to include a transmission priority determination module, a port status monitor, and an arbitration module, wherein the port status monitor is configured to determine port status information of each of the plurality of receiving ports as an active status or an inactive status; the transmission priority determination module is configured to calculate a plurality of transmission priorities of a plurality of sending ports corresponding to the upstream router based on the plurality of transmission traffic pressure information; and the arbitration module is configured to determine a plurality of transmission allocation indications for a plurality of transmit ports to which the upstream router corresponds based on the plurality of transmission priorities and the plurality of port status information.
For example, in the network-on-chip apparatus provided according to an embodiment of the present disclosure, each of the plurality of receiving ports further includes an upstream resource transfer allocation counter, and the resource transfer allocation controller further includes a transfer priority determining module, wherein: the upstream resource transfer allocation counter is configured to count a current value of a plurality of resource transfer allocation quantities for the plurality of transmit ports; the transmission priority determination module is configured to obtain a balanced threshold of a plurality of resource transmission allocation quantities for the plurality of transmit ports and obtain a current value of the plurality of resource transmission allocation quantities for the plurality of transmit ports, and determine the transmission traffic pressure information for the plurality of transmit ports based on the balanced threshold of the plurality of resource transmission allocation quantities and the current value of the plurality of resource transmission allocation quantities.
For example, in the network-on-chip apparatus provided according to the embodiment of the present disclosure, the upstream router further includes a transmission pressure control module configured to, in an initialization phase, in response to the number of resource transmission allocations of at least one of the plurality of transmission ports being greater than zero, return the resource transmission allocation of the at least one of the plurality of transmission ports to the downstream router, and set a plurality of port state information of the plurality of transmission ports to an inactive state.
For example, in a network-on-chip apparatus provided according to an embodiment of the present disclosure, the resource transmission allocation controller is configured to include an arbitration module configured to: in response to all of the plurality of receiving ports being inactive and a number of resource transmission allocations for at least one of the plurality of transmitting ports being less than the balance threshold, determining a transmission allocation indication for the at least one of the plurality of transmitting ports to be a release indication based on the plurality of transmission priorities of the plurality of transmitting ports or not based on the plurality of transmission priorities of the plurality of transmitting ports.
For example, in a network-on-chip apparatus provided according to an embodiment of the present disclosure, the resource transmission allocation controller is configured to include an arbitration module configured to: in response to a port status of at least one of the plurality of receiving ports being an active status, determining, based on the plurality of transmission priorities of the plurality of transmitting ports, a transmission allocation indication for a transmitting port corresponding to the receiving port having the port status being the active status to be a release indication; and determining a transmission allocation indication for a transmitting port corresponding to the receiving port whose port state is an inactive state as a reclamation indication based on the plurality of transmission priorities of the plurality of transmitting ports or not based on the plurality of transmission priorities of the plurality of transmitting ports.
For example, in a network-on-chip apparatus provided according to an embodiment of the present disclosure, the arbitration module is further configured to: in response to the number of resource transmission allocations of the transmitting ports corresponding to all receiving ports of which the port status is the activated status being equal to the respective balance threshold, determining, based on the plurality of transmission priorities of the plurality of transmitting ports, a transmission allocation indication for the transmitting port corresponding to at least one of the plurality of receiving ports of which the port status is the inactivated status as a release indication.
For example, in a network-on-chip apparatus provided according to an embodiment of the present disclosure, the arbitration module is further configured to: in response to the transmission allocation indication for the transmit port being a reclaim indication, decrementing a number of resource transmission allocations for the plurality of transmit ports by one, and in response to the transmission allocation indication for the transmit port being a release indication, incrementing a number of resource transmission allocations for the plurality of transmit ports by one.
For example, in the network-on-chip apparatus provided according to the embodiment of the present disclosure, a resource transmission allocation dedicated channel between the upstream router and the downstream router is further included, and the resource transmission allocation controller further includes a resource transmission allocation module configured to: transmitting the resource transmission allocation number for the plurality of transmission ports to the upstream router using the resource transmission allocation dedicated channel or the resource transmission channel.
For example, in the network-on-chip apparatus provided according to an embodiment of the present disclosure, the transmission priority determining module is further configured to: determining the transmission flow pressure information as a difference value between a balance threshold value of the resource transmission allocation quantity of the sending port and a current value of the resource transmission allocation quantity of the sending port; or determining the transmission flow pressure information as a ratio between a current value of the resource transmission allocation quantity of the sending port and a balance threshold value of the resource transmission allocation quantity of the sending port.
For example, in the network-on-chip apparatus provided according to an embodiment of the present disclosure, the transmission priority determining module is further configured to: sorting each of the plurality of transmit ports based on the plurality of transmit traffic pressure information and determining the transmit priority based on the sorting; or determining a classification for each of the plurality of transmit ports based on the plurality of transmit traffic pressure information and determining the transmit priority based on the classification.
For example, in the network-on-chip apparatus provided according to an embodiment of the present disclosure, the resource transmission allocation controller is further configured to determine the balance threshold based on a number of transmission requests or a change in a number of resource transmission allocations in each of the plurality of transmission ports.
At least one aspect of the present disclosure also provides an electronic device including the network-on-chip device according to any one of the embodiments of the present disclosure.
At least one aspect of the present disclosure also provides a computer-readable storage medium having computer-readable instructions stored therein, the computer-readable instructions comprising program code for performing any of the above-described methods.
Drawings
To more clearly illustrate the technical solutions of the embodiments of the present disclosure, the drawings of the embodiments will be briefly introduced below, and it is apparent that the drawings in the following description relate only to some embodiments of the present disclosure and are not limiting to the present disclosure.
Fig. 1 is a block diagram of a network-on-chip device.
Fig. 2 is a schematic diagram illustrating a router in a network-on-chip apparatus provided according to an embodiment of the present disclosure.
Fig. 3 is a schematic diagram illustrating a network-on-chip apparatus provided in accordance with an embodiment of the present disclosure.
Fig. 4 is a flowchart illustrating a method for controlling transmission flow in a router according to an embodiment of the disclosure.
Fig. 5 is a flow diagram illustrating further operations of the method shown in fig. 4 provided in accordance with an embodiment of the present disclosure.
Fig. 6 is a flow diagram of further operations of the method shown in fig. 4 provided in accordance with an embodiment of the present disclosure.
Fig. 7 is a flow diagram of further operations of the method shown in fig. 4 provided in accordance with an embodiment of the present disclosure.
Fig. 8 is a flow diagram of further operations of the method shown in fig. 4 provided in accordance with an embodiment of the present disclosure.
Fig. 9 is a schematic block diagram illustrating an electronic device provided in accordance with an embodiment of the present disclosure.
Fig. 10 is a schematic diagram illustrating a computer-readable storage medium provided in accordance with at least one embodiment of the present disclosure.
Detailed Description
In order to make the objects, technical solutions and advantages of the embodiments of the present disclosure more apparent, the technical solutions of the embodiments of the present disclosure will be described clearly and completely with reference to the drawings of the embodiments of the present disclosure. It is to be understood that the described embodiments are only a few embodiments of the present disclosure, and not all embodiments. All other embodiments, which can be derived by a person skilled in the art from the described embodiments of the disclosure without any inventive step, are within the scope of protection of the disclosure.
Unless otherwise defined, technical or scientific terms used herein shall have the ordinary meaning as understood by one of ordinary skill in the art to which this disclosure belongs. The use of "first," "second," and similar terms in this disclosure is not intended to indicate any order, quantity, or importance, but rather is used to distinguish one element from another. Also, the use of the terms "a," "an," or "the" and similar referents do not denote a limitation of quantity, but rather denote the presence of at least one. The word "comprising" or "comprises", and the like, means that the element or item listed before the word covers the element or item listed after the word and its equivalents, but does not exclude other elements or items. The terms "connected" or "coupled" and the like are not restricted to physical or mechanical connections, but may include electrical connections, whether direct or indirect. "upper", "lower", "left", "right", and the like are used merely to indicate relative positional relationships, and when the absolute position of the object being described is changed, the relative positional relationships may also be changed accordingly.
A network on chip (NoC) refers to an interconnection network implemented on a chip, and is used for interconnecting and communicating modules on the chip. NOC designs typically include a request originator, a receiver, and routing nodes (also referred to as routers). A NOC router is typically a network of input ports, input buffer queues, output ports, and fully interconnected crossbar switches (crossbar). Different connections through different ports of the router form a wide variety of NOC networks.
Fig. 1 is a block diagram of a network-on-chip device. As shown in fig. 1, the network on chip 100 may include a plurality of routers. In one embodiment, the plurality of routers may include at least one upstream router 110 and at least one downstream router 120. The functional modules in the network-on-chip device are connected and communicate through the plurality of routers. For example, module 1 and module 2 may be connected to upstream router 110, and module 3 and module 4 connected to downstream router 120. In one example, the modules 1-4 may be different modules implementing various functions on a network on chip, such as a central processor core (CPU core), a direct memory access module (DMA), or a memory module, among others. For example, module 1 and module 2 may transmit the request to the downstream router 120 through the upstream router 110 via the resource transmission channel, and send the request to module 3 and module 4 through the downstream router 120, so as to implement communication and interconnection between modules on chip. Among the connected routers, the upstream router 110 sends requests to the input ports of the downstream router 120 through the output ports and stores the requests in the input buffer queues (not shown) of the downstream router. The input buffer queue of the router may generate large power consumption, for example, static power consumption when idle and dynamic power consumption when reading and writing. In addition, the input buffer queue also occupies a large chip area, thereby increasing the complexity of system design and resulting in a decrease in system operating frequency. Therefore, the capacity design of the input buffer queue has a strict limitation based on many limitations on the area, cost, power consumption, and the like of the network-on-chip device. Furthermore, when router output is slow or congested, there is a risk that the input buffer queue will overflow and lose packets if there is no mechanism to notify the upstream router. To solve this problem, a concept of router traffic control is proposed to cope with a problem of network delay of the system caused by contention for limited cache queue resources.
At least one embodiment of the present disclosure provides a transmission traffic control method of a router, a network-on-chip device, an electronic device, and a computer-readable storage medium. According to the transmission flow control method provided by at least one embodiment of the present disclosure, more flexible allocation and adjustment of limited buffer queue resources can be achieved by sufficiently sharing tokens, and dynamic adjustment of the transmission priority of the transmission port can be achieved, so as to improve the bandwidth of the transmission request in the port, thereby integrally improving the processing performance of the network-on-chip device.
Embodiments of the present disclosure will be described in detail below with reference to the accompanying drawings. It should be noted that the same reference numerals in different figures will be used to refer to the same elements that have been described.
At least one embodiment of the present disclosure provides a transmission flow control method of a router, the router including a plurality of receiving ports respectively coupled to a plurality of transmitting ports corresponding to an upstream router, wherein the plurality of receiving ports receive transmission requests from the upstream router via the corresponding plurality of transmitting ports, the transmission flow control method including: determining a plurality of transmission flow rate pressure information of a plurality of sending ports corresponding to the upstream router, and determining a plurality of transmission allocation indication information used for the plurality of sending ports corresponding to the upstream router based on the plurality of transmission flow rate pressure information; adjusting a number of resource transmission allocations for the plurality of sending ports based on a plurality of transmission allocation indication information, wherein the number of resource transmission allocations represents a number of transmission requests that can be received from the sending ports of the upstream router, and wherein the transmission allocation indication information includes a reclaim indication and a release indication.
Fig. 2 is a schematic diagram illustrating a router in a network-on-chip apparatus provided according to an embodiment of the present disclosure.
Referring to fig. 2, the router 200 may include a plurality of receiving ports 210, a resource buffer queue 220, a resource transmission allocation controller 230, and a plurality of transmitting ports 240.
The plurality of receive ports 210 may be coupled to a plurality of transmit ports of another router (e.g., an upstream router) for receiving resource transfer requests. Router 200 stores the received resources in resource cache queue 220. In one embodiment, the transmitted resource may be data, a request, an instruction, or a probe.
In one embodiment, each receiving port 210 may also include an upstream resource transfer allocation counter 2101 and each transmitting port may also include a resource transfer allocation counter 2401 and a transmission pressure control module 2402.
As further shown in fig. 2, the resource transmission allocation controller 230 may further include a transmission priority determination module 2301, a port monitor 2302, a port classification module 2303, an arbitration module 2304, a shared resource transmission allocation counter 2305, and a resource transmission allocation module 2306.
Fig. 3 is a schematic diagram illustrating a network-on-chip apparatus provided in accordance with an embodiment of the present disclosure. The method for controlling the router flow provided by the embodiment of the disclosure can be used for the router in the network on chip.
As shown in fig. 3, the network-on-chip apparatus 300 comprises at least one upstream router 310 and at least one downstream router 320. The upstream router 310 includes a plurality of transmitting ports 311, and the downstream router 320 includes a plurality of receiving ports 321. For example, in one embodiment, upstream router 310 may include three transmit ports 311a, 311b, and 311c, and downstream router 320 may include corresponding three receive ports 321a, 321b, and 321 c. Upstream router 310 also includes resource cache queue 312 and downstream router 320 also includes resource cache queue 323. In one embodiment, the plurality of receiving ports of the downstream router 320 may be respectively coupled with the plurality of transmitting ports of the upstream router 310 via resource transmission channels (solid arrows). For example, the three transmitting ports 311a, 311b, and 311c of the upstream router 310 may be coupled with the receiving ports 321a, 321b, and 321c of the downstream router 320, respectively, via resource transmission channels. In addition, a resource transmission allocation dedicated channel (dashed arrow) may be included between the upstream router 310 and the downstream router 320 for token recovery and release. The upstream router 310 stores the request in the resource buffer queue 312 and may send the request to the receive port 321 of the downstream router 320 via the resource transmission channel through the transmit port 311. The downstream router 320 stores the received request in a resource buffer queue 323.
It should be understood that in the embodiments of the present disclosure, the roles of the upstream router and the downstream router are interchangeable, and for a certain router, when the router sends data, it can be used as the upstream router, and when the router receives data, it can be used as the downstream router. Further, for convenience of description, the upstream router in fig. 3 shows only the transmitting port, and the downstream router shows only the receiving port. The plurality of receiving ports of the downstream router may also be coupled with a plurality of transmitting ports (not shown) of other routers for receiving resource transfer requests from other routers.
For example, in one embodiment, the plurality of receiving ports of the downstream router 320 may be respectively coupled with the plurality of sending ports corresponding to other upstream routers via resource transmission channels to receive resource transmission requests from other upstream routers. In one embodiment, any of the transmit ports 311a, 311b, and 311c may be transmit ports located in other one or more routers. In one embodiment, a resource transfer allocation dedicated channel may also be included between the downstream router 320 and other upstream routers for token reclamation and release. In an embodiment, when a problem of contention for cache queue resources occurs during transmission of a request between a plurality of receiving ports of a downstream router and a plurality of sending ports corresponding to other upstream routers, the method for controlling transmission flow provided in the embodiments of the present disclosure may be adopted to increase the utilization rate of tokens among the plurality of ports and increase the bandwidth of request transmission, thereby improving the processing performance of the network-on-chip device as a whole.
With further reference to fig. 3, each transmit port 311 of the upstream router 310 may further include a resource transmission allocation counter 3110 and a transmission pressure control module 3111, wherein the resource transmission allocation counter 3110 is configured for counting a number of resource transmission allocations obtained by the transmit port. For example, when the upstream router 310 receives a resource transmission allocation allocated from the downstream router 320, the resource transmission allocation counter 3110 is incremented by one; and when the upstream router 310 transmits a request to the downstream router 320, the resource transmission allocation counter 3110 is decremented by one. Accordingly, each receiving port 321 of the downstream router 320 may further include an upstream resource transmission allocation counter 3210. The upstream resource transmission allocation counter 3210 remains synchronized with the resource transmission allocation counter 3110 in the sending port 311 of the upstream router 310, i.e. it also counts the number of resource transmission allocations obtained by the sending port. In one embodiment, the resource transfer allocation may be a token (token), and the number of resource transfer allocations allocated to the upstream router 310 may be the number of tokens obtained by the upstream router 310.
In the example of fig. 3, downstream router 320 is shown to also include a resource transmission allocation controller 322. For example, the resource transmission allocation controller 322 of the downstream router 320 is shown to further include a transmission priority determining module 3221, a port monitor 3222, a port classifying module 3223, an arbitration module 3224, a shared resource transmission allocation counter 3225, and a resource transmission allocation module 3226.
Fig. 4 is a flowchart illustrating a method for controlling transmission flow in a router according to an embodiment of the disclosure. This method of flow control is used, for example, in the network-on-chip apparatus 300 shown in fig. 3. A method of controlling transmission flow in a router provided according to an embodiment of the present disclosure will be described below with reference to fig. 3 and 4.
Referring to fig. 4, the method 400 of transmission flow control includes the following operations.
In step S401, a plurality of pieces of transmission traffic pressure information of a plurality of transmission ports corresponding to the upstream router are determined.
In step S402, based on the plurality of pieces of transmission traffic pressure information, a plurality of pieces of transmission allocation indication information for a plurality of transmission ports corresponding to the upstream router are determined.
In step S403, the number of resource transmission allocations for the plurality of transmission ports is adjusted based on the plurality of transmission allocation indication information.
For example, the resource transfer allocation number indicates the number of transmission requests that can be received from the transmitting port of the upstream router. In one embodiment, the number of resource transfer allocations may be represented by the number of transfer allocators, which may be, for example, the number of tokens allocated to the upstream transmit port. It should be understood that the number of resource transmission allocations may be represented by other indications or symbols.
For example, the transmission allocation indication information may include a reclamation indication and a release indication. In one embodiment, the recycle indication indicates that a token for the transmitting port of the upstream router 310 is to be recycled back to the downstream router 320, e.g., to lower the count value of the resource transfer allocation counter in the transmitting port of the upstream router 310, to lower the count value of the upstream resource transfer allocation counter in the receiving port of the downstream router 320, and to increase the count value of the shared resource transfer allocation counter in the downstream router 320; the release indication indicates that the token is released from the downstream router 320 to the transmitting port of the upstream router 310, for example, increasing the count value of the resource transfer allocation counter in the transmitting port of the upstream router 310, increasing the count value of the upstream resource transfer allocation counter in the receiving port of the downstream router 320, and decreasing the count value of the shared resource transfer allocation counter of the downstream router 320.
Referring to fig. 3, the above steps will be exemplarily described in conjunction with the network-on-chip apparatus 300 shown in fig. 3.
For example, in an initialization phase, the resource transmission allocation controller 322 may allocate a token initial value for each transmit port, which may be a current value of the token number for the initiating port. For example, the setting may be made by configuring a resource transfer allocation counter of the transmit port. The initial values assigned to the respective ports may be the same or may be different. The initial value may be any value set according to actual design requirements, and the embodiments of the present disclosure are not limited thereto. In addition, the resource transmission allocation controller 322 may set a balance threshold for the number of tokens for each transmit port, the setting of which will be described in detail below.
For example, the resource transmission allocation controller 322 of the downstream router 320 may determine the transmission traffic pressure information of each of the plurality of sending ports 311 corresponding to the upstream router 310 based on the current value of the token number of the sending port and the balance threshold. And determines transmission allocation indication information for each of the transmitting ports 311 of the upstream router 310 according to the determined transmission traffic pressure information for each of the transmitting ports 311. For example, in one embodiment, when the transmission traffic pressure information of each of the three sending ports 311a, 311b, and 311c of the upstream router 310 indicates that the current value of the token count of the sending port is greater than the balance threshold, it may be determined that the transmission allocation indication information for the sending ports 311a, 311b, 311c is a reclamation indication. Based on the transmission allocation indication information for each transmit port, the number of resource transmission allocations for the plurality of transmit ports 311a, 311b, 311c may be adjusted accordingly. For example, the count value of the resource transfer allocation counter in the transmitting port of the upstream router 310 may be decreased, the count value of the upstream resource transfer allocation counter in the receiving port of the downstream router 320 may be decreased, and the count value of the shared resource transfer allocation counter of the downstream router 320 may be increased. Fig. 5 is a flow chart illustrating further operation of step S401 in the method shown in fig. 4. For example, in some examples, step S401 may further include the following operations.
In step S501: the resource transmission allocation controller 322 obtains a balance threshold of the plurality of resource transmission allocation quantities of the plurality of sending ports of the upstream router 310, and obtains current values of the plurality of resource transmission allocation quantities of the plurality of sending ports of the upstream router 310;
in step S502: the resource transmission allocation controller 322 determines transmission traffic pressure information for the plurality of transmit ports based on the balance threshold for the plurality of resource transmission allocation quantities and the current value for the plurality of resource transmission allocation quantities.
For example, in step S501, the transmission priority determining module 3221 of the resource transmission allocation controller 322 may acquire a balance threshold of the resource transmission allocation number set by each transmission port of the upstream router 310. In some examples, the balance threshold for the number of resource transmission allocations per transmit port may be a fixed value initially set by the system. In other examples, the balance threshold for the number of resource transfer allocations per transmit port may not be fixed, but may be dynamically set based on, for example, a change in the number of transfer requests or the number of resource transfer allocations (number of tokens) per transmit port. Further, in one embodiment, the sum of the balanced thresholds of the resource transfer allocation numbers of all the transmitting ports of the upstream router 310 may be less than or equal to the size of the capacity of the resource buffer queue 323 in the downstream router 320.
For example, in one embodiment, if the capacity of the resource buffer queue 323 in the downstream router 320 is 30, this indicates that the number of buffer units available for the transmission port allocated to the upstream router is 30, and the corresponding number of tokens is also equal to 30. At this time, the balance threshold values may be set to 10 for the three transmission ports 311a, 311b, and 311c of the upstream router 310, respectively. In one embodiment, it may also be dynamically set according to the number of transmission requests of each of the three sending ports 311a, 311b, and 311 c. For example, when the number of transfer requests in the transmission port 311a is greater than the number of transfer requests of the transmission ports 311b and 311c, the balance threshold of the transmission port 311a may be set to be greater than the balance threshold of the transmission ports 311b and 311 c. For example, the balance threshold of the transmitting port 311a may be set to 12, and the balance thresholds of the transmitting ports 311b and 311c may be set to 9, respectively. When the number of transmission requests in the sending port changes, the setting of the balancing threshold can be adjusted accordingly.
For example, in another embodiment, when the number of tokens in the transmitting port 311a changes, for example, when the number of tokens in the transmitting port 311a decreases due to the downstream receiving port 321a being in the inactive state, the balance threshold of the number of tokens in the transmitting port 311a may be decreased accordingly; correspondingly, when the token number of the transmitting port 311a increases due to the downstream receiving port 321a being in the activated state, the balance threshold of the token number of the transmitting port 311a may be increased accordingly.
It should be understood that, in the embodiment of the present disclosure, the setting manner of the balance threshold is not limited to the above-described manner, but any other suitable manner may be adopted according to the actual design requirement, and the embodiment of the present disclosure is not limited thereto.
In one embodiment, the resource transfer allocation controller 322 of the downstream router 320 may obtain a current value of the number of resource transfer allocations per transmit port of the upstream router 310. For example, in some examples, the resource transfer allocation counter 3110 in each port in the upstream router 310 is used to count the current value of the number of tokens per sending port. In the initial state, the current value of the token number is an initial value and will then change dynamically. In one embodiment, the current value of the token count may be synchronized to the upstream resource transmission allocation counter 3210 of the downstream router 320. For example, when the sending port 311a of the upstream router 310 transmits a request to the downstream router, the resource transmission allocation counter 3110 is decremented by one, and the upstream resource transmission allocation counter 3210 of the downstream router 320 is also decremented by one, thereby synchronizing with the resource transmission allocation counter 3110. In one embodiment, the transmission priority determining module 3221 of the downstream router 320 may obtain the current value of the token number of the corresponding upstream sending port from the upstream resource transmission allocation counter 3210 in the receiving port 321.
In step S502: the transmission priority determining module 3221 of the downstream router 320 may determine transmission traffic pressure information of the plurality of sending ports based on the balance threshold value of the plurality of resource transmission allocation quantities and the current value of the plurality of resource transmission allocation quantities.
In one embodiment, the transmission traffic pressure information may be determined as a difference between a balanced threshold value of the number of resource transmission allocations for the transmit port and a current value of the number of resource transmission allocations for the transmit port. For example, assuming that, for the sending port 311a, the balance threshold of the resource transmission allocation number thereof is 10, and the current value of the resource transmission allocation number thereof is 7, the transmission traffic pressure information of the sending port 311a may be 3; for the sending port 311b, the balance threshold of the resource transmission allocation number is 10, and the current value of the resource transmission allocation number is 2, then the transmission traffic pressure information of the sending port 311b may be 8; for the sending port 311c, the balance threshold of the resource transmission allocation number is 10, and the current value of the resource transmission allocation number is 5, then the transmission traffic pressure information of the sending port 311c may be 5. It is understood that, when the difference between the balance threshold value of the resource transmission allocation number of the sending port and the current value of the resource transmission allocation number of the sending port is larger, that is, the larger the value of the transmission traffic pressure information is, the larger the number of tokens is indicated to be required, and thus the transmission traffic pressure is larger.
In one embodiment, the transmission traffic pressure information may be determined as a ratio between a current value of the number of resource transmission allocations for the transmit port and a balanced threshold value of the number of resource transmission allocations for the transmit port. For example, still assuming that in the above example, for the sending port 311a, the balance threshold of the resource transmission allocation number thereof is 10, and the current value of the resource transmission allocation number thereof is 7, the transmission traffic pressure information of the sending port 311a may be 0.7; for the sending port 311b, the balance threshold of the resource transmission allocation number is 10, and the current value of the resource transmission allocation number is 2, then the transmission traffic pressure information of the sending port 311b may be 0.2; for the transmitting port 311c, the balance threshold of the resource transmission allocation number thereof is 10, and the current value of the resource transmission allocation number thereof is 5, the transmission traffic pressure information of the transmitting port 311c may be 0.5. It will be appreciated that when the ratio between the balanced threshold value of the number of resource transfer allocations for the sending port and the current value of the number of resource transfer allocations for the sending port is smaller, the greater the number of tokens required and hence the greater the pressure on the transfer traffic.
It should be understood that, in the embodiment of the present disclosure, the calculation manner of the transmission flow pressure information is not limited to the manner described above, but any other suitable manner may be adopted according to the actual design requirement, and the embodiment of the present disclosure is not limited thereto.
Fig. 6 is a flowchart illustrating further operations of step S402 in the method illustrated in fig. 4, provided in accordance with an embodiment of the present disclosure. For example, in some examples, step S402 may further include the following operations.
In step S601: the transmission priority determining module 3221 calculates a plurality of transmission priorities of the plurality of sending ports 311 corresponding to the upstream router 310 based on the transmission traffic pressure information of the plurality of sending ports 311;
in step S602: the arbitration module 3224 determines a plurality of transmission allocation indications for the plurality of transmission ports 311 corresponding to the upstream router 310 based on the plurality of transmission priorities.
For example, in step S601, the transmission priority determining module 3221 sorts each of the plurality of transmitting ports 311 based on the transmission traffic pressure information of the plurality of transmitting ports 311, and calculates a plurality of transmission priorities of the plurality of transmitting ports 311 based on the sorting. In one embodiment, the plurality of transmit ports 311 may be ordered from large to small, or from small to large, based on the transmission traffic pressure information.
For example, in an embodiment in which the transmission traffic pressure information is determined as the difference between the balance threshold of the resource transmission allocation number of the sending port and the current value of the resource transmission allocation number of the sending port, the transmission traffic pressure information may be sorted in a descending order, for example, for the three sending ports 311a, 311b, and 311c of the upstream router 310, the transmission traffic pressure information is 3, 8, and 5, respectively, and then the three sending ports 311a, 311b, and 311c are sorted in a descending order, 3, 1, and 2, respectively, and the sorting may be directly determined as the transmission priority, for example, see table 1 below.
Figure BDA0003452934730000151
TABLE 1
Wherein, a smaller priority value indicates a higher priority. It will be appreciated that in this implementation, the greater the value of the traffic pressure information, the greater the number of tokens required, and hence the higher the transmission priority.
For example, in the embodiment that the transmission traffic pressure information is determined as the ratio between the current value of the resource transmission allocation number of the sending port and the balance threshold value of the resource transmission allocation number of the sending port, the transmission traffic pressure information may be sorted in the order from small to large, for example, for the three sending ports 311a, 311b, and 311c of the upstream router 310, the transmission traffic pressure information is 0.7, 0.2, and 0.5, respectively, and the order of the three sending ports 311a, 311b, and 311c sorted from large to small is 3, 1, and 2, respectively, and the sorting may be directly determined as the transmission priority, for example, see table 2 below.
Figure BDA0003452934730000161
TABLE 2
Wherein, a smaller priority value indicates a higher priority. It will be appreciated that in this implementation, the smaller the value of the traffic pressure information, the greater the number of tokens required, and hence the higher the transmission priority.
In another embodiment, the transmission priority determining module 3221 may rank each of the plurality of transmitting ports 311 based on the transmission traffic pressure information of the plurality of transmitting ports 311, and calculate the plurality of transmission priorities of the plurality of transmitting ports 311 based on the ranking.
For example, in an embodiment where the transmission traffic pressure information is determined as a difference between a balanced threshold value of the number of resource transmission allocations for the sending port and a current value of the number of resource transmission allocations for the sending port, the transmission priority determination module 3221 may classify the transmission priority into three stages: the transmission flow pressure information 0-3 is level III, the transmission flow pressure information 4-6 is level II, and the transmission flow pressure information 7-10 is level I. For the three sending ports 311a, 311b, and 311c of the upstream router 310, for example, the transmission traffic pressure information is 3, 8, and 5, respectively, and the three sending ports 311a, 311b, and 311c are classified as class III, class I, and class II, respectively, and the transmission priority thereof is determined, for example, as in table 3 below.
Figure BDA0003452934730000162
Figure BDA0003452934730000171
TABLE 3
Wherein, a smaller priority value indicates a higher priority. It will be appreciated that in this implementation, the greater the value of the traffic pressure information, the greater the number of tokens required, and hence the higher the transmission priority.
For example, in an embodiment in which the transmission traffic pressure information is determined as a ratio between a current value of the resource transmission allocation number of the sending port and a balanced threshold value of the resource transmission allocation number of the sending port, the transmission priority determining module 3221 may classify the transmission priority into three stages: the transmission flow pressure information is 0.7-1.0, the transmission flow pressure information is level III, the transmission flow pressure information is 0.4-0.6, the transmission flow pressure information is level II, and the transmission flow pressure information is 0-0.3, the level I. Then the traffic pressure information of the three sending ports 311a, 311b and 311c of the upstream router 310 are 0.7, 0.2 and 0.5 respectively, and the three sending ports 311a, 311b and 311c are classified into the third level, the first level and the second level respectively, and the transmission priority is for example as follows
Table 4.
Figure BDA0003452934730000172
TABLE 4
Wherein, a smaller priority value indicates a higher priority. It will be appreciated that in this implementation, the smaller the value of the traffic pressure information, the greater the number of tokens required, and hence the higher the transmission priority.
It should be understood that, in the embodiment of the present disclosure, the determination manner of the transmission priority is not limited to the manner described above, but may adopt any other suitable manner according to the actual design requirement, for example, a coarser granularity ranking, an ordering, or a non-uniform ranking may be adopted, and the embodiment of the present disclosure is not limited thereto.
In step S602, the arbitration module 3224 may obtain the determined transmission priorities of the plurality of transmission ports from the transmission priority determination module 3221, and the arbitration module 3224 may then determine a plurality of transmission allocation indications for the plurality of transmission ports 311 corresponding to the upstream router 310 based on the plurality of transmission priorities.
For example, in one embodiment, arbitration module 3224 may determine the transmission allocation indication for the transmitting port with the highest priority as the release indication and the transmission allocation indication for the transmitting port with the lowest priority as the reclaim indication. For example, when the transmission priorities of the three transmission ports 311a, 311b, and 311c are 3, 1, and 2, respectively, it may be determined that the transmission allocation indication for the transmission port 311b is a release indication, and the transmission allocation indication for the transmission port 311a is a reclamation indication. Therefore, the token can be released for the port with higher token requirement, and the token in the port with lower token requirement is recycled, so that the full sharing of the token in a plurality of ports is realized.
Fig. 7 is a flowchart illustrating further operations of step S402 in the method shown in fig. 4 according to another embodiment. For example, in some examples, step S402 may also include the following operations.
In step S701: the port status monitor 3222 determines a plurality of port status information of the plurality of receiving ports 321;
in step S702: the transmission priority determining module 3221 may calculate, based on the plurality of transmission traffic pressure information, a plurality of transmission priorities of the plurality of sending ports corresponding to the upstream router;
in step S703: the arbitration module 3224 may determine a plurality of transmission allocation indications for a plurality of sending ports corresponding to the upstream router based on the plurality of transmission priorities and the plurality of port status information.
For example, in step S701, the port status monitor 3222 may determine that the port status information of each of the plurality of receiving ports 321 is in an active state or an inactive state. In one embodiment, when there is a request transmission in a receiving port, the port status information of the receiving port is determined to be active. In contrast, when transmission is not requested in the receiving port, the port state information of the receiving port is determined to be in an inactive state, or idle state.
In step S702, the transmission priority determining module 3221 may calculate a plurality of transmission priorities of the plurality of transmission ports 311 corresponding to the upstream router 310 in the same manner as in step S601 described above.
Furthermore, in another embodiment, before the transmission priority determining module 3221 determines the transmission priorities of the plurality of transmitting ports, the port classifying module 3223 may also separate the activated ports and the deactivated ports based on the port state information of the port monitor 3222 and notify the transmission priority determining module 3221 to calculate the transmission priorities of the transmitting ports 311a, 311b, and 311c corresponding to the activated ports and the deactivated ports, respectively. Or in another embodiment, after the transmission priority determining module 3221 determines the transmission priorities of the multiple transmitting ports, the port classifying module 3223 may also separate the active ports and the inactive ports based on the port state information of the port monitor 3222, and recalculate the transmission priorities of the transmitting ports 311a, 311b, and 311c corresponding to the active ports and the inactive ports, respectively. For example, when the activation states of the receiving ports 321a, 321b, and 321c are respectively inactive, active, and the transmission priorities of the transmitting ports 311a, 311b, and 311c corresponding to the receiving ports 321a, 321b, and 321c are respectively 3, 1, and 2, the transmission priority of the transmitting port 311a corresponding to the inactive receiving port 321a and the transmission priorities of the transmitting ports 311b and 311c corresponding to the active receiving ports 321b and 321c may be calculated separately. In another embodiment, the transmission priority of only the transmitting ports 311b and 311c corresponding to the activated receiving ports 321b and 321c may be calculated. Therefore, the calculation mode of the transmission priority can be simplified, and the overall processing efficiency is improved.
In step S703, the arbitration module 3224 may receive the port state information from each of the plurality of receiving ports 321 determined by the port state monitor 3222 and the plurality of transmission priorities from the plurality of transmitting ports 311 determined by the transmission priority determination module 3221, and based on the port state information and the transmission priorities, the arbitration module 3224 may determine a plurality of transmission allocation indications for the plurality of transmitting ports corresponding to the upstream router.
For example, in the above-mentioned embodiment of three transmitting ports 311a, 311b and 311c, in the initialization stage, the upstream router 310 does not request output to the downstream router 320, and the transmission pressure control modules 3111a, 3111b and 3111c of each transmitting port may determine whether there is a redundant token in the transmitting ports 311a, 311b and 311c, i.e., whether the number of tokens is greater than zero. When there are redundant tokens in the transmitting ports, the transmission pressure control modules 3111a, 3111b and 3111c may periodically return the redundant tokens in the transmitting ports 311a, 311b and 311c to the downstream router 320, i.e., the downstream router 320 may recycle the redundant tokens in the transmitting ports 311a, 311b and 311c, and at the same time, the port status monitor 3222 may mark the port status information of all the receiving ports 321a, 321b and 321c corresponding to the transmitting ports 311a, 311b and 311c as inactive state to complete initialization. In one embodiment, redundant tokens may be returned using a resource transfer allocation dedicated channel or a multiplexed resource transfer channel between the upstream router and the downstream router. When the token of one transmitting port (e.g., 311a) is returned to the downstream router 320 within one cycle, the resource transmission allocation counter 3110a in the transmitting port 311a is decremented by one, the upstream resource transmission allocation counter 3210a in the receiving port 321a corresponding to the transmitting port 311a is also decremented by one, and the shared resource transmission allocation counter 3225 in the downstream router 320 is incremented by one.
In the initialization phase, the transmission pressure control module 3111 may recycle the redundant token of the sending port to the downstream router 320 by periodically returning the redundant token, may balance the number of tokens of each port, and may achieve sufficient sharing of the tokens.
In one embodiment, after initialization is complete, the port status monitor 3222 may send port status information for the receiving ports 321a, 321b, and 321c to the arbitration module 3224. For example, the port status information of the receiving ports 321a, 321b, and 321c is all inactive at this time. In one embodiment, the arbitration module 3224 may also monitor the number of tokens for each of the sending ports in the upstream resource transmission allocation counters 3210a, 3210b, and 3210 c. When the number of tokens of at least one of the transmitting ports 311a, 311b, and 311c is less than the balance threshold, the arbitration module 3224 determines that the transmission allocation indication for the transmitting port of which the number of tokens in the transmitting ports 311a, 311b, and 311c is less than the balance threshold is a release indication. For example, when the number of tokens in the transmitting port 311a is less than the balance threshold value due to being periodically returned, and the number of tokens in the other transmitting ports 311b and 311c is still not less than the balance threshold value, the arbitration module 3224 may determine only the transmission allocation indication for the transmitting port 311a as the release indication, i.e., release the tokens to the transmitting port 311 a. In another embodiment, when the number of resource transmission allocations in the transmitting ports 311a, 311b, and 311c is less than the balance threshold, then the arbitration module 3224 may determine the transmission allocation indications for all transmitting ports 311a, 311b, and 311c as release indications at the same time, i.e., release tokens to all transmitting ports 311a, 311b, and 311c at the same time.
In another embodiment, one or more of the transmission allocation indications for all the transmission ports 311a, 311b and 311c may also be determined as the release indication based on the transmission priorities of the transmission ports 311a, 311b and 311c determined by the transmission priority determining module 3221. For example, when the transmission priorities of the three transmitting ports 311a, 311b and 311c are 3, 1 and 2 respectively, it indicates that the transmitting port 311b has the highest transmission priority, at this time, the arbitration module 3224 may determine that the transmission allocation indication for the transmitting port 311b is a release indication, that is, preferentially release the token to the transmitting port 311b, and after the number of tokens of the transmitting port 311b reaches the balance threshold (at this time, the priority of the transmitting port 311b also decreases correspondingly), the arbitration module 3224 may determine that the transmission allocation indications of the transmitting ports 311a and 311c are release indications again until the numbers of tokens of all transmitting ports reach the balance threshold. It will be appreciated that the above implementation may be such that each sending port has sufficient tokens to quickly respond to a transmission request when the request begins transmission.
In another embodiment, in the normal request transmission state, that is, at least one of the three receiving ports 321a, 321b and 321c is in an active state, at this time, the arbitration module 3224 may determine the transmission allocation indication for the transmitting port corresponding to the receiving port whose port state is in the active state as the release indication based on the transmission priority of the transmitting ports 311a, 311b and 311c, and may also determine the transmission allocation indication for the transmitting port corresponding to the receiving port whose port state is in the inactive state as the recycle indication based on a plurality of transmission priorities of the plurality of transmitting ports or not based on a plurality of transmission priorities of the plurality of transmitting ports.
For example, when the port status information of the receiving ports 321a, 321b and 321c is inactive, active and active, respectively, and for example, the transmission priorities of the transmitting ports 311a, 311b and 311c corresponding to the receiving ports 321a, 321b and 321c are 3, 1 and 2, respectively, in the first time period, since the port status of the receiving port 321a is inactive, the arbitration module 3224 may determine the transmission allocation indication for the transmitting port 311a as the recycling indication, i.e., recycling the token of the transmitting port 311 a. Further, the transmission priority of the transmitting port 311b is higher than that of the transmitting port 311c, and thus, the arbitration module 3224 may determine the allocation indication for the transmitting port 311b as a release indication, i.e., release the token to the transmitting port 311 b. In one embodiment, when the number of tokens of the sending port 311b reaches the balance threshold within the second time period, the arbitration module 3224 may determine the transmission allocation indication for the sending port 311c as the release indication, i.e., release the tokens to the sending port 311c, until the number of tokens of the sending port 311c reaches the balance threshold.
It can be understood that, through the above implementation manner, tokens occupied by the upstream sending port of the inactive port can be recovered in a targeted manner, for example, for the inactive receiving port 321a, the token of the corresponding sending port 311a is recovered, and the recovered token is allocated to the sending port with a requirement according to the transmission pressure and the priority, so that the token is not occupied by the inactive port, thereby increasing the utilization rate of the token among a plurality of ports, increasing the bandwidth of the request transmission, and thus improving the processing performance of the network-on-chip device as a whole.
Further, it should be understood that the implementation of three transmit ports is merely exemplary, and when there are multiple transmit ports of the same priority, the token may be released to the multiple transmit ports of the same priority within the same time period. In addition, the token can be released to a plurality of sending ports with different priorities in the same time period. Embodiments of the present disclosure are not limited in this regard.
In the example described above, for the inactive receiving port 321a, the number of tokens in the upstream transmitting port 311a corresponding to the inactive receiving port 321a may be counted by the upstream resource transmission allocation counter 3210, and the transmission priority determining module 3221 may synchronously calculate the transmission priority of the transmitting port 311 a. For example, in one embodiment, as the number of tokens of the transmitting port 311a decreases, the difference between the number of tokens of the transmitting port and the balance threshold increases gradually, so that the transmission priority of the transmitting port 311a also increases gradually accordingly. For example, after several time periods, the transmission priorities of the transmission ports 311a, 311b, and 311c may become 1, 2, and 3. Then, at this time, when the port status of the inactive receiving port 321a changes to the active status, since the transmitting port 311a has the highest transmission priority at this time, the arbitration module 3224 may preferentially determine the transmission allocation indication for the transmitting port 311a as the release indication, that is, may preferentially release the token to the transmitting port 311a, thereby implementing fast flow of the token to meet the requirement for the burst request transmission, and thus reducing the delay of the request transmission.
In one embodiment, after the number of tokens for the transmitting ports 311b and 311c corresponding to the activated receiving ports reaches the balance threshold, the arbitration module 3224 may determine the transmission allocation indication for the transmitting port 311a corresponding to the non-activated receiving port 321a as the release indication, i.e., release the tokens to the transmitting port 311a, so that there are sufficient tokens to satisfy the transmission request when the receiving port 321a is activated. When there are a plurality of inactive receiving ports, the release indication for the transmitting port may also be determined in the order of the transmission priority of the transmitting port. In another embodiment, the tokens may be released to all the transmitting ports corresponding to the inactive receiving ports after the number of tokens of the transmitting ports corresponding to the active receiving ports reaches the balance threshold, not in the order of the transmission priority, so that each transmitting port has a balanced number of tokens to satisfy the transmission request. It can be appreciated that the above implementation can dynamically adjust token allocation among the ports, and allocate transmission bandwidth based on transmission traffic, thereby improving transmission performance of the network-on-chip device.
In another embodiment, when all of the three receiving ports 321a, 321b, and 321c are in the active state, the arbitration module 3224 may determine the transmission allocation indication for the corresponding sending port based on the transmission priority of the sending ports 311a, 311b, and 311c as described above, and the specific implementation is similar to that described above, and is not described herein again.
Fig. 8 is a flowchart illustrating further operations of step S403 in the method illustrated in fig. 4, provided in accordance with an embodiment of the present disclosure. For example, in some examples, step S403 may further include the following operations.
In step S801, in response to the transmission allocation indication of the transmission port being the reclamation indication, the resource transmission allocation number for the transmission port is decremented by one.
In step S802, in response to the transmission allocation indication of the transmitting port being a release indication, the resource transmission allocation number for the transmitting port is incremented by one.
In one embodiment, for example, after the arbitration module 3224 determines the transmission allocation indication for the sending port 311a as the recycling indication, the arbitration module 3224 may notify the resource transmission allocation module 3226 that the resource transmission allocation module 3226 may decrement the upstream resource transmission allocation counter 3210a in the receiving port 321a by one and decrement the resource transmission allocation counter 3110a in the sending port 311a by one, while incrementing the shared resource transmission allocation counter 3225 by one. In one embodiment, for example, after the arbitration module 3224 determines the transmission allocation indication for the sending port 311c as the release indication, the arbitration module 3224 may notify the resource transmission allocation module 3226, and the resource transmission allocation module 3226 may increment the upstream resource transmission allocation counter 3210c in the receiving port 321c by one, and increment the resource transmission allocation counter 3110c in the sending port 311c by one, while decrementing the shared resource transmission allocation counter 3225 by one. The transmission priority determination module may calculate the priority of each transmit port based on the real-time count in the upstream resource transmission allocation counter, thereby enabling dynamic adjustment of the transmit port priority. Through the implementation mode, the tokens under various working modes can be rapidly distributed through dynamic pressure classification, and under the condition of the same performance, the utilization rate of the tokens is improved, so that the working frequency of the router can be improved, and the number of cache units in the router is reduced, so that the size of the router is correspondingly reduced, and the production cost of a chip is further reduced.
It should be understood that although only the coupling relationship between the receiving port of the downstream router and the transmitting port of one upstream router is shown in fig. 3, a plurality of receiving ports of the downstream router may be coupled with a plurality of transmitting ports (not shown) of other routers, and the method 400 for controlling transmission flow described above is implemented. For example, in one embodiment, a downstream router may determine a plurality of transmission traffic pressure information for a corresponding plurality of transmit ports in each of a plurality of upstream routers. The downstream router may determine a plurality of transmission allocation indication information for a plurality of transmit ports corresponding to each of the plurality of upstream routers based on the plurality of transmission traffic pressure information. The downstream router may adjust the number of resource transmission allocations for the plurality of transmit ports based on the plurality of transmission allocation indication information.
In one embodiment, the downstream router may obtain a balance threshold of the plurality of resource transmission allocation quantities of the plurality of sending ports of each of the plurality of upstream routers and obtain a current value of the plurality of resource transmission allocation quantities of the plurality of sending ports of each of the plurality of upstream routers; the downstream router may determine transmission traffic pressure information for the plurality of transmit ports based on a balance threshold for the plurality of resource transmission allocation quantities and a current value for the plurality of resource transmission allocation quantities.
In one embodiment, the downstream router may calculate a plurality of transmission priorities of a corresponding plurality of sending ports based on transmission traffic pressure information of the plurality of sending ports; the downstream router may determine a plurality of transmission allocation indications for a corresponding plurality of transmit ports of each of the plurality of upstream routers based on the plurality of transmission priorities.
In one embodiment, a downstream router may determine a plurality of port state information for a plurality of receiving ports; the downstream router may calculate a plurality of transmission priorities of a corresponding plurality of transmission ports in each of the plurality of upstream routers based on the plurality of transmission traffic pressure information; the downstream router may determine a plurality of transmission allocation indications for a corresponding plurality of transmit ports of each of the plurality of upstream routers based on the plurality of transmission priorities and the plurality of port state information.
In one embodiment, in response to the transmission allocation indication for the sending port being a reclamation indication, the downstream router may decrement the number of resource transmission allocations for the sending port by one; in response to the transmission allocation indication for the sending port being a release indication, the downstream router may increment the number of resource transmission allocations for the sending port by one.
Through the implementation mode, the tokens under various working modes can be rapidly distributed among the ports of the routers, the utilization rate of the tokens is improved, and the overall processing efficiency is further improved. It should be noted that, in the embodiments of the present disclosure, the method for controlling transmission flow may further include more or fewer steps, and is not limited to the steps described above. The execution order of the steps is not limited, which may be determined according to actual needs, and the embodiments of the present disclosure are not limited thereto.
Fig. 9 is a schematic block diagram of an electronic device provided in accordance with an embodiment of the present disclosure. As shown in fig. 9, the electronic device 900 includes a network-on-chip device 901, and the network-on-chip device 901 may be a network-on-chip device provided in any embodiment of the disclosure, for example, the network-on-chip device 300 described above. For example, the electronic apparatus 900 may be implemented as a chip, an integrated circuit, or the like, or may be implemented as any device capable of routing data transmission, which is not limited by the embodiments of the disclosure.
Fig. 10 is a schematic diagram of a computer-readable storage medium provided in accordance with at least one embodiment of the present disclosure. As shown in fig. 10, a computer-readable storage medium 1000 non-transitory stores computer-readable instructions 1001. For example, the computer readable instructions 1001, when executed by a computer, may perform one or more steps of a method according to the above-described call instruction.
Of course, the above-mentioned embodiments are merely examples and not limitations, and those skilled in the art can combine and combine some steps and apparatuses from the above-mentioned separately described embodiments to achieve the effects of the present invention according to the concepts of the present invention, and such combined and combined embodiments are also included in the present invention, and such combined and combined embodiments are not necessarily described herein.
It is noted that advantages, effects, and the like, which are mentioned in the present disclosure, are only examples and not limitations, and they are not to be considered essential to various embodiments of the present invention. Furthermore, the foregoing disclosure of specific details is for the purpose of illustration and description and is not intended to be limiting, since the invention is not limited to the specific details described above.
The previous description of the disclosed aspects is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these aspects will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other aspects without departing from the scope of the invention. Thus, the present invention is not intended to be limited to the aspects shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.
The foregoing description has been presented for purposes of illustration and description. Furthermore, the description is not intended to limit embodiments of the invention to the form disclosed herein. While a number of example aspects and embodiments have been discussed above, those of skill in the art will recognize certain variations, modifications, alterations, additions and sub-combinations thereof.

Claims (28)

1. A transmission traffic control method of a router, the router including a plurality of receiving ports respectively coupled with a plurality of transmitting ports corresponding to an upstream router, wherein the plurality of receiving ports receive transmission requests from the upstream router via the corresponding plurality of transmitting ports, the method comprising:
determining a plurality of transmission flow pressure information of a plurality of sending ports corresponding to the upstream router,
determining a plurality of transmission allocation indication information for a plurality of sending ports corresponding to the upstream router based on the plurality of transmission traffic pressure information;
adjusting the number of resource transmission allocations for the plurality of transmit ports based on the plurality of transmission allocation indication information,
wherein the resource transmission allocation number represents a number of transmission requests that can be received from a transmission port of the upstream router, and wherein the transmission allocation indication information includes a reclamation indication and a release indication.
2. The method of claim 1, wherein determining, based on the plurality of transport traffic pressure information, a plurality of transport allocation indication information for a plurality of transmit ports to which the upstream router corresponds comprises:
calculating a plurality of transmission priorities of a plurality of sending ports corresponding to the upstream router based on the plurality of transmission flow pressure information; and
determining a plurality of transmission allocation indications for a plurality of sending ports corresponding to the upstream router based on the plurality of transmission priorities.
3. The method of claim 1, wherein determining a plurality of transmission allocation indication information for a plurality of transmit ports to which the upstream router corresponds based on the plurality of transmission traffic pressure information further comprises:
determining a plurality of port status information for the plurality of receive ports;
calculating a plurality of transmission priorities of a plurality of sending ports corresponding to the upstream router based on the plurality of transmission flow pressure information; and
determining a plurality of transmission allocation indications for a plurality of sending ports to which the upstream router corresponds based on the plurality of transmission priorities and the plurality of port status information,
wherein the port state information includes an active state and an inactive state.
4. The method of any of claims 1-3, wherein determining a plurality of transmission traffic pressure information for a plurality of transmit ports to which the upstream router corresponds comprises:
acquiring a balance threshold value of a plurality of resource transmission allocation quantities of the plurality of sending ports, and acquiring current values of the plurality of resource transmission allocation quantities of the plurality of sending ports;
determining the transmission traffic pressure information for the plurality of transmit ports based on a balance threshold for the plurality of resource transmission allocation quantities and a current value of the plurality of resource transmission allocation quantities.
5. The method of claim 3, wherein determining a plurality of port state information for the plurality of receiving ports further comprises:
in an initialization stage, in response to that the resource transmission allocation quantity of at least one of the plurality of sending ports is greater than zero, the resource transmission allocation quantity of the at least one of the plurality of sending ports is recovered, and the plurality of port state information of the plurality of sending ports is set to be in an inactive state.
6. The method of claim 4, wherein determining a plurality of transmission allocation indications for a plurality of transmit ports to which the upstream router corresponds based on the plurality of transmission priorities and the plurality of port state information comprises:
in response to all of the plurality of receiving ports being inactive and a number of resource transmission allocations for at least one of the plurality of transmitting ports being less than the balance threshold, determining a transmission allocation indication for the at least one of the plurality of transmitting ports to be a release indication based on the plurality of transmission priorities of the plurality of transmitting ports or not based on the plurality of transmission priorities of the plurality of transmitting ports.
7. The method of claim 4, wherein determining a plurality of transmission allocation indications for a plurality of transmit ports to which the upstream router corresponds based on the plurality of transmission priorities and the plurality of port state information further comprises:
in response to the port status of at least one of the plurality of receiving ports being an active status,
determining, based on the plurality of transmission priorities of the plurality of transmission ports, that a transmission allocation indication for a transmission port corresponding to the reception port whose port status is an activated status is a release indication; and
determining, based on the plurality of transmission priorities of the plurality of transmitting ports or not based on the plurality of transmission priorities of the plurality of transmitting ports, a transmission allocation indication for a transmitting port corresponding to the receiving port whose port state is an inactive state as a reclamation indication.
8. The method of claim 7, wherein determining a plurality of transmission allocation indications for a plurality of transmit ports to which the upstream router corresponds based on the plurality of transmission priorities and the plurality of port state information further comprises:
in response to the number of resource transmission allocations of the transmitting ports corresponding to all receiving ports of which the port status is the activated status being equal to the respective balance threshold, determining, based on the plurality of transmission priorities of the plurality of transmitting ports, a transmission allocation indication for the transmitting port corresponding to at least one of the plurality of receiving ports of which the port status is the inactivated status as a release indication.
9. The method of any of claims 6-8, wherein adjusting the number of resource transmission allocations for the plurality of transmit ports based on the plurality of transmission allocation indication information further comprises:
in response to the transmission allocation indication for the sending port being a reclaim indication, reducing by one a number of resource transmission allocations for the sending port, an
In response to the transmission allocation indication for the transmit port being a release indication, incrementing a resource transmission allocation quantity for the transmit port by one.
10. The method of claim 9, further comprising transmitting a plurality of resource transmission allocation quantities for the plurality of transmit ports to the upstream router.
11. The method of claim 4, wherein determining the transmission traffic pressure information for the plurality of transmit ports based on the balanced threshold of the plurality of resource transmission allocation quantities and the current value of the plurality of resource transmission allocation quantities comprises:
the transmission traffic pressure information is determined as a difference between a balance threshold value of the resource transmission allocation number of the sending port and a current value of the resource transmission allocation number of the sending port; or
The transmission traffic pressure information is determined as a ratio between a current value of the number of resource transmission allocations of the transmit port and a balanced threshold value of the number of resource transmission allocations of the transmit port.
12. The method of claim 11, wherein calculating a plurality of transmission priorities for a plurality of transmit ports to which the upstream router corresponds based on the plurality of transmission traffic pressure information comprises:
sorting each of the plurality of transmit ports based on the plurality of transmit traffic pressure information and determining the transmit priority based on the sorting; or
Determining a classification for each of the plurality of transmit ports based on the plurality of transmit traffic pressure information and determining the transmit priority based on the classification.
13. The method of claim 4, wherein the balance threshold is determined based on a change in a number of transmission requests or a number of resource transmission allocations in each of the plurality of transmit ports.
14. A network-on-chip apparatus includes at least one upstream router and at least one downstream router,
wherein the at least one upstream router includes a plurality of transmitting ports and the at least one downstream router includes a plurality of receiving ports respectively coupled with a plurality of transmitting ports corresponding to upstream routers, wherein the plurality of receiving ports receive transmission requests from the plurality of transmitting ports corresponding to upstream routers via resource transmission channels,
each of the at least one downstream router further comprises a resource transmission allocation controller configured to:
determining a plurality of transmission flow pressure information of a plurality of sending ports corresponding to the upstream router;
determining a plurality of transmission allocation indication information for a plurality of sending ports corresponding to the upstream router based on the plurality of transmission traffic pressure information; and
adjusting the number of resource transmission allocations for the plurality of transmit ports based on the plurality of transmission allocation indication information,
wherein the resource transmission allocation number represents a number of transmission requests that can be received from a transmission port of the upstream router, and wherein the transmission allocation indication information includes a reclamation indication and a release indication.
15. The apparatus of claim 14, wherein the resource transmission allocation controller is configured to include a transmission priority determination module and an arbitration module, wherein,
the transmission priority determination module is configured to calculate a plurality of transmission priorities of a plurality of sending ports corresponding to the upstream router based on the plurality of transmission traffic pressure information; and is
The arbitration module is configured to determine a plurality of transmission allocation indications for a plurality of transmit ports to which the upstream router corresponds based on the plurality of transmission priorities.
16. The apparatus of claim 14, wherein the resource transmission allocation controller is configured to include a transmission priority determination module, a port status monitor, and an arbitration module, wherein,
the port status monitor is configured to determine port status information for each of the plurality of receiving ports as active or inactive;
the transmission priority determination module is configured to calculate a plurality of transmission priorities of a plurality of sending ports corresponding to the upstream router based on the plurality of transmission traffic pressure information; and is
The arbitration module is configured to determine a plurality of transmission allocation indications for a plurality of transmit ports to which the upstream router corresponds based on the plurality of transmission priorities and the plurality of port state information.
17. The apparatus of any of claims 14-16, wherein each of the plurality of receive ports further comprises an upstream resource transfer allocation counter and the resource transfer allocation controller further comprises a transfer priority determination module, wherein:
the upstream resource transfer allocation counter is configured to count a current value of a plurality of resource transfer allocation quantities for the plurality of transmit ports;
the transmission priority determination module is configured to obtain a balanced threshold of a plurality of resource transmission allocation quantities for the plurality of transmit ports and obtain a current value of the plurality of resource transmission allocation quantities for the plurality of transmit ports, and determine the transmission traffic pressure information for the plurality of transmit ports based on the balanced threshold of the plurality of resource transmission allocation quantities and the current value of the plurality of resource transmission allocation quantities.
18. The apparatus of claim 16, wherein the upstream router further comprises a transmission pressure control module configured to, during an initialization phase, return a resource transmission allocation of at least one of the plurality of transmit ports to the downstream router and set a plurality of port state information of the plurality of transmit ports to an inactive state in response to a number of resource transmission allocations of the at least one of the plurality of transmit ports being greater than zero.
19. The apparatus of claim 17, wherein the resource transmission allocation controller is configured to include an arbitration module configured to: in response to all of the plurality of receiving ports being inactive and a number of resource transmission allocations for at least one of the plurality of transmitting ports being less than the balance threshold, determining a transmission allocation indication for the at least one of the plurality of transmitting ports to be a release indication based on the plurality of transmission priorities of the plurality of transmitting ports or not based on the plurality of transmission priorities of the plurality of transmitting ports.
20. The apparatus of claim 17, wherein the resource transmission allocation controller is configured to include an arbitration module configured to:
in response to the port status of at least one of the plurality of receiving ports being an active status,
determining, based on the plurality of transmission priorities of the plurality of transmission ports, that a transmission allocation indication for a transmission port corresponding to the reception port whose port status is an activated status is a release indication; and
determining, based on the plurality of transmission priorities of the plurality of transmitting ports or not based on the plurality of transmission priorities of the plurality of transmitting ports, a transmission allocation indication for a transmitting port corresponding to the receiving port whose port state is an inactive state as a reclamation indication.
21. The apparatus of claim 20, the arbitration module further configured to:
in response to the number of resource transmission allocations of the transmitting ports corresponding to all receiving ports of which the port status is the activated status being equal to the respective balance threshold, determining, based on the plurality of transmission priorities of the plurality of transmitting ports, a transmission allocation indication for the transmitting port corresponding to at least one of the plurality of receiving ports of which the port status is the inactivated status as a release indication.
22. The apparatus of any of claims 19-21, the arbitration module further configured to:
in response to the transmission allocation indication of the sending port being a reclamation indication, reducing by one a number of resource transmission allocations for the plurality of sending ports, an
In response to the transmission allocation indication for the transmit port being a release indication, incrementing a number of resource transmission allocations for the plurality of transmit ports by one.
23. The apparatus of claim 22, further comprising a resource transmission allocation dedicated channel between the upstream router and the downstream router, and the resource transmission allocation controller further comprises a resource transmission allocation module configured to: transmitting the resource transmission allocation number for the plurality of transmission ports to the upstream router using the resource transmission allocation dedicated channel or the resource transmission channel.
24. The apparatus of claim 17, wherein the transmission priority determination module is further configured to:
determining the transmission flow pressure information as a difference value between a balance threshold value of the resource transmission allocation quantity of the sending port and a current value of the resource transmission allocation quantity of the sending port; or
Determining the transmission flow pressure information as a ratio between a current value of the resource transmission allocation quantity of the sending port and a balance threshold value of the resource transmission allocation quantity of the sending port.
25. The apparatus of claim 24, wherein the transmission priority determination module is further configured to:
sorting each of the plurality of transmit ports based on the plurality of transmit traffic pressure information and determining the transmit priority based on the sorting; or
Determining a classification for each of the plurality of transmit ports based on the plurality of transmit traffic pressure information and determining the transmit priority based on the classification.
26. The apparatus of claim 17, wherein the resource transmission allocation controller is further configured to determine the balance threshold based on a number of transmission requests or a change in a number of resource transmission allocations in each of the plurality of transmit ports.
27. An electronic device comprising the network-on-chip device of any one of claims 14-26.
28. A computer readable storage medium having computer readable instructions stored thereon, the computer readable instructions comprising program code for execution by a processor to perform the method of any of claims 1-13.
CN202111670844.3A 2021-12-31 2021-12-31 Transport flow control method, network on chip, electronic device, and storage medium Active CN114374651B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111670844.3A CN114374651B (en) 2021-12-31 2021-12-31 Transport flow control method, network on chip, electronic device, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111670844.3A CN114374651B (en) 2021-12-31 2021-12-31 Transport flow control method, network on chip, electronic device, and storage medium

Publications (2)

Publication Number Publication Date
CN114374651A true CN114374651A (en) 2022-04-19
CN114374651B CN114374651B (en) 2023-01-20

Family

ID=81142983

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111670844.3A Active CN114374651B (en) 2021-12-31 2021-12-31 Transport flow control method, network on chip, electronic device, and storage medium

Country Status (1)

Country Link
CN (1) CN114374651B (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116192696A (en) * 2023-01-13 2023-05-30 北京信而泰科技股份有限公司 Method, device and storage medium for traffic congestion prevention configuration
CN116405377A (en) * 2023-06-07 2023-07-07 太初(无锡)电子科技有限公司 Network state detection method, protocol conversion component, equipment and storage medium

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1622532A (en) * 2003-11-25 2005-06-01 华为技术有限公司 A dynamic equilibrium distributing method for port data flow
CN1780252A (en) * 2004-11-18 2006-05-31 华为技术有限公司 Buffer resource management for grouping converter
CN101778049A (en) * 2010-03-04 2010-07-14 南京大学 Router and transmission method thereof on packet-circuit switching chip
WO2013038589A1 (en) * 2011-09-14 2013-03-21 パナソニック株式会社 Resource request mediation device, resource request mediation system, resource request mediation method, integrated circuit, and program
US20150036536A1 (en) * 2013-08-05 2015-02-05 Netspeed Systems AUTOMATIC NoC TOPOLOGY GENERATION
CN109587048A (en) * 2017-09-29 2019-04-05 邢筱丹 It is a kind of with balance policy without Virtual Channel Fault-tolerant Routing Algorithm
CN112597075A (en) * 2020-12-28 2021-04-02 海光信息技术股份有限公司 Cache allocation method for router, network on chip and electronic equipment
EP3913872A1 (en) * 2020-05-20 2021-11-24 Tenstorrent Inc. Speculative resource allocation for routing on interconnect fabrics

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1622532A (en) * 2003-11-25 2005-06-01 华为技术有限公司 A dynamic equilibrium distributing method for port data flow
CN1780252A (en) * 2004-11-18 2006-05-31 华为技术有限公司 Buffer resource management for grouping converter
CN101778049A (en) * 2010-03-04 2010-07-14 南京大学 Router and transmission method thereof on packet-circuit switching chip
WO2013038589A1 (en) * 2011-09-14 2013-03-21 パナソニック株式会社 Resource request mediation device, resource request mediation system, resource request mediation method, integrated circuit, and program
US20150036536A1 (en) * 2013-08-05 2015-02-05 Netspeed Systems AUTOMATIC NoC TOPOLOGY GENERATION
CN109587048A (en) * 2017-09-29 2019-04-05 邢筱丹 It is a kind of with balance policy without Virtual Channel Fault-tolerant Routing Algorithm
EP3913872A1 (en) * 2020-05-20 2021-11-24 Tenstorrent Inc. Speculative resource allocation for routing on interconnect fabrics
CN112597075A (en) * 2020-12-28 2021-04-02 海光信息技术股份有限公司 Cache allocation method for router, network on chip and electronic equipment

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116192696A (en) * 2023-01-13 2023-05-30 北京信而泰科技股份有限公司 Method, device and storage medium for traffic congestion prevention configuration
CN116405377A (en) * 2023-06-07 2023-07-07 太初(无锡)电子科技有限公司 Network state detection method, protocol conversion component, equipment and storage medium
CN116405377B (en) * 2023-06-07 2023-08-08 太初(无锡)电子科技有限公司 Network state detection method, protocol conversion component, equipment and storage medium

Also Published As

Publication number Publication date
CN114374651B (en) 2023-01-20

Similar Documents

Publication Publication Date Title
US11500682B1 (en) Configurable logic platform with reconfigurable processing circuitry
CN114374651B (en) Transport flow control method, network on chip, electronic device, and storage medium
US8085801B2 (en) Resource arbitration
US6633580B1 (en) N×N crossbar packet switch
US10749811B2 (en) Interface virtualization and fast path for Network on Chip
US8817619B2 (en) Network system with quality of service management and associated management method
US9606945B2 (en) Access controller, router, access controlling method, and computer program
US11689470B2 (en) Allocation of processors for processing packets
KR20130137539A (en) System for performing data cut-through
Shan et al. Analyzing and enhancing dynamic threshold policy of data center switches
US20070067531A1 (en) Multi-master interconnect arbitration with time division priority circulation and programmable bandwidth/latency allocation
US8018958B1 (en) System and method for fair shared de-queue and drop arbitration in a buffer
Cota et al. NoC basics
US8145823B2 (en) Parallel wrapped wave-front arbiter
US7965705B2 (en) Fast and fair arbitration on a data link
JP2001014243A (en) Reception interrupt processor
US8670454B2 (en) Dynamic assignment of data to switch-ingress buffers
Gopalakrishnan et al. Switch scheduling and network design for real-time systems
CN116414534A (en) Task scheduling method, device, integrated circuit, network equipment and storage medium
CN112491746B (en) Data processing apparatus and method of operating the same
Fasiku et al. A Centralized Token-based Medium Access Control Mechanism for Wireless Network-on-Chip
EP1187422B1 (en) Method and device for tunable packet arbitration
CN111756647B (en) HQoS service transmission method, device and system
WO2013168427A1 (en) Bus control device, bus control system, and network interface
Subhasakthe et al. A Reliable Flexi-Router Architecture for NoC Applications

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant