Traffic control method, apparatus, device, storage medium, and program product

By setting up a flow control unit between the data request end and the on-chip network, the read request transmission time interval is dynamically adjusted, which solves the problems of on-chip network resource shortage and network congestion, and improves the system's read request processing efficiency and resource utilization.

CN121309482BActive Publication Date: 2026-04-10SHANGHAI BIREN TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
SHANGHAI BIREN TECH CO LTD
Filing Date
2025-12-12
Publication Date
2026-04-10

AI Technical Summary

Technical Problem

The lack of effective flow control methods in existing technologies leads to the strain on on-chip network resources, especially when general-purpose graphics processors are communicating, which can easily cause network congestion and low resource utilization.

Method used

By setting up a flow control unit between the data request end and the on-chip network, the data transmission protocol of the read request to be sent and the transmission linewidth of the read request channel are determined, and the read request transmission time interval is dynamically adjusted to achieve cross-clock domain flow control.

Benefits of technology

It effectively reduces the risk of network congestion, improves the efficiency of on-chip system read request processing and resource utilization, and reduces the read data reception pressure on the data request end.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121309482B_ABST
    Figure CN121309482B_ABST
Patent Text Reader

Abstract

The application provides a flow control method, device, equipment, storage medium and program product, and relates to the technical field of computers. The method comprises the following steps: determining a data transmission protocol of a to-be-sent read request and a transmission bandwidth of a read request channel; determining a first read request transmission time interval based on the data transmission protocol and the transmission bandwidth; and performing flow control based on the first read request transmission time interval, and sending the to-be-sent read request to a network on a chip. In the foregoing manner, the read request sending rate of a data request end is dynamically adjusted. In particular, in a scenario where the number of data request ends is large, the possibility of network congestion of the network on a chip due to excessively large read request flow caused by frequent read request sending of different data request ends can be reduced, flow control between the data request end and the network on a chip is realized, and the read request processing efficiency and resource utilization rate of the system on a chip are improved.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of computer, and in particular, to a traffic control method and device, equipment, storage medium and program product. BACKGROUND

[0002] Network-on-Chip (NoC) is a core communication component of System-on-Chip (SoC), which can realize high concurrency communication through distributed routing nodes and time-multiplexed links, thereby solving the problems of insufficient scalability and performance bottleneck in traditional bus architecture.

[0003] Network-on-Chip can realize data transmission between different computing units, between computing units and storage units, and between different SoCs. However, for a General-Purpose computing on Graphics Processing Units (GPGPU, also known as "computing chip") with a large amount of communication data, the network-on-chip resources are very scarce. Therefore, how to realize the reasonable use of network-on-chip resources through scientific traffic control has become one of the hot research directions of network-on-chip.

[0004] At present, different device components (such as computing units, storage units, etc.) of the SoC are provided with network-on-chip interface components (NIU), and the network-on-chip interface components include read request channels. When different device components act as data request ends and initiate read requests to the network-on-chip through the read request channels, the communication of different device components to the network-on-chip is preemptive, and lacks a reasonable traffic control mechanism. When multiple device components simultaneously initiate read requests, it is easy to cause network congestion of the network-on-chip due to too large read request traffic, thereby affecting the processing efficiency of the read requests. At the same time, due to the communication characteristics of the read request channel that a single request returns multiple times, when the device component sends a read request to the network-on-chip, the read data corresponding to the read request may be divided into multiple parts and returned in batches due to large data volume, so the device component may also be congested due to too large read data traffic, thereby occupying too many resources of the SoC and reducing the resource utilization of the SoC. Therefore, how to realize the traffic control between the device component and the network-on-chip has become a problem to be solved.

[0005] However, there is still a lack of traffic control method for device components and network-on-chip. SUMMARY

[0006] The application provides a traffic control method, device, equipment, storage medium and program product, to solve the defect that there is currently lack of traffic control method for device components and network on chip.

[0007] The application provides a traffic control method, applied to a data request end, the data request end being provided with a read request channel, and comprising the following steps of: determining a data transmission protocol of a to-be-sent read request and a transmission line width of the read request channel; determining a first read request transmission time interval based on the data transmission protocol and the transmission line width; and performing traffic control based on the first read request transmission time interval, and sending the to-be-sent read request to a network on chip.

[0008] According to the traffic control method, the data transmission protocol carries a read burst length parameter and a read data width parameter; the first read request transmission time interval is determined based on the data transmission protocol and the transmission line width, and comprises the following steps of: determining a first clock frequency of the data request end and a second clock frequency of the network on chip; determining a first data transmission delay parameter based on the read burst length parameter, the read data width parameter, the first clock frequency, the second clock frequency and the transmission line width; and determining the first read request transmission time interval based on the first data transmission delay parameter.

[0009] According to the traffic control method, the data transmission protocol carries a read burst length parameter and a read data width parameter; the first read request transmission time interval is determined based on the data transmission protocol and the transmission line width, and comprises the following steps of: determining a first data transmission delay parameter based on the read burst length parameter, the read data width parameter and the transmission line width; and determining the first read request transmission time interval based on the first data transmission delay parameter.

[0010] According to the traffic control method, after the to-be-sent read request is sent to the network on chip based on the first read request transmission time interval, the following step is further included: receiving read data corresponding to the to-be-sent read request and sent by the network on chip; and the network on chip is based on a second read request transmission time interval to perform traffic control and send the read data to the data request end.

[0011] According to the traffic control method, the data transmission protocol carries a read burst length parameter; and the second read request transmission time interval is determined by the network on chip based on the read burst length parameter.

[0012] According to the traffic control method, the data transmission protocol carries a read burst length parameter; and the second read request transmission time interval is determined by the network on chip based on the read burst length parameter.

[0013] The application further provides a flow control device applied to a data request end, wherein the data request end is provided with a read request channel, and the flow control device comprises: a first determination module configured to determine a data transmission protocol of a to-be-sent read request and a transmission bandwidth of the read request channel; a second determination module configured to determine a first read request transmission time interval based on the data transmission protocol and the transmission bandwidth; and a flow control module configured to perform flow control based on the first read request transmission time interval and send the to-be-sent read request to a network on chip.

[0014] The application further provides an electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor implements any of the above flow control methods when executing the computer program.

[0015] The application further provides a non-transitory computer readable storage medium having a computer program stored thereon, wherein the computer program is executable by a processor to implement any of the above flow control methods.

[0016] The application further provides a computer program product comprising a computer program, wherein the computer program is executable by a processor to implement any of the above flow control methods.

[0017] The flow control method, device, equipment, storage medium and program product provided by the application first determine the data transmission protocol of a to-be-sent read request and the transmission bandwidth of a read request channel when the data request end is preparing to initiate a read request, then determine a first read request transmission time interval according to the data transmission protocol of the read request and the transmission bandwidth of the read request channel, and finally send the to-be-sent read request to a network on chip according to the first read request transmission time interval, which realizes dynamic adjustment of the read request sending rate of the data request end by dynamically adjusting the read request transmission time interval of the to-be-sent read request, especially in the scenario where the number of data request ends is large, which can reduce the possibility of network congestion of the network on chip caused by too large read request flow of different data request ends, realizes flow control between the data request end and the network on chip, and is beneficial to improving the read request processing efficiency of the system on chip. Meanwhile, the to-be-sent read request needs to be transmitted according to the read request transmission time interval, so that a certain waiting time can be reserved between two continuous read requests of the data request end, the read request sent first can receive the corresponding read data by using the reserved waiting time, the read request sent later cannot occupy the resources of the network on chip to initiate a request when the read request sent first receives the corresponding read data, and cannot cause the data request end to receive more read data due to the success of the read request, which can effectively reduce the read data receiving pressure of the data request end, avoid congestion of the data request end caused by too large read data flow, and be beneficial to improving the data processing efficiency of the data request end and the resource utilization rate of the system on chip. BRIEF DESCRIPTION OF DRAWINGS

[0018] In order to make the technical solutions in the present application or prior art clearer, the accompanying drawings needed in the embodiments or prior art description will be briefly introduced. Obviously, the accompanying drawings in the following description are some embodiments of the present application, and other drawings can be obtained by those skilled in the art without creative effort on the basis of these drawings.

[0019] Figure 1 is one of flowcharts of the flow control method provided by the present application.

[0020] Figure 2 is another flowchart of the flow control method provided by the present application.

[0021] Figure 3 is a structural schematic diagram of the flow control device provided by the present application.

[0022] Figure 4 is a structural schematic diagram of the electronic device provided by the present application. DETAILED DESCRIPTION

[0023] In order to make the technical solutions in the present application or prior art clearer, the accompanying drawings needed in the embodiments or prior art description will be briefly introduced. Obviously, the accompanying drawings in the following description are some embodiments of the present application, and other drawings can be obtained by those skilled in the art without creative effort on the basis of these drawings.

[0024] Please refer to Figure 1 and Figure 2 , Figure 1 is one of flowcharts of the flow control method provided by the present application, Figure 2 is another flowchart of the flow control method provided by the present application.

[0025] As Figure 2 shown, in the present embodiment, the flow control method is mainly used to realize flow control between a data request end and a Network-on-Chip (NoC). The data request end can be a device component of a System-on-Chip (SoC), such as a computing unit, a storage unit, etc. of the System-on-Chip. Since in the System-on-Chip, a device responsible for initiating a data read / write request is regarded as a Master Device, the data request end in the present embodiment is actually a Master Device of the System-on-Chip, which can be simply denoted as mst.

[0026] Specifically, the data request end is provided with a Network Interface Unit (NIU) including a read request channel, and the network-on-chip is also provided with a Network Interface Unit including a read request channel. The data request end and the network-on-chip are the two parties of network communication.

[0027] Currently, the data request end and the network-on-chip adopt an asynchronous (Async) First-in-First-out (FIFO) communication mechanism across clock domains to realize communication, where the asynchronous FIFO communication mechanism refers to that data is written by one clock domain and read by another clock domain, and the writing and reading of data are both performed by the first-in-first-out strategy, thereby solving the signal synchronization problem between different clock domains.

[0028] In the prior art, the flow control across clock domains between the data request end and the network-on-chip has not been realized, and the embodiment proposes a flow control method suitable for the data request end and the network-on-chip across clock domains in view of the problem of the prior art.

[0029] In the embodiment, a first flow control unit is arranged at the data request end, and a second flow control unit is arranged at the network-on-chip. As shown in Figure 1 The flow control method is applied to the first flow control unit of the data request end, the data request end is provided with a Network Interface Unit including a read request channel, and the flow control method includes steps S110 to S130, and each step is specifically as follows:

[0030] S110: Determine the data transmission protocol of the to-be-sent read request and the transmission line width of the read request channel.

[0031] Specifically, the data request end includes at least one to-be-sent read request, and for all to-be-sent read requests of the data request end, the data transmission protocol adopted by these to-be-sent read requests can be determined first.

[0032] Further, the transmission line width of the read request channel of the data request end is determined.

[0033] S120: Determine the first read request transmission time interval based on the data transmission protocol and the transmission line width.

[0034] Specifically, for all to-be-sent read requests of the data request end, the first read request transmission time interval of the data request end is determined according to the data transmission protocol adopted by these to-be-sent read requests and the transmission line width of the read request channel.

[0035] The first read request transmission time interval is actually a delay time interval between two continuous to-be-sent read requests, and the first read request transmission time interval can be used to limit the sending rate of the to-be-sent read request of the data request end, so as to ensure that network congestion does not occur when the read request is sent.

[0036] S130: Based on the first read request transmission time interval, traffic control is performed, and the to-be-sent read request is sent to the network on a chip.

[0037] Specifically, the data request end can send each to-be-sent read request of the data request end to the network on a chip in turn according to the first read request transmission time interval, so as to realize cross-clock-domain traffic control between the data request end and the network on a chip.

[0038] The traffic control method provided in this embodiment can first determine the data transmission protocol of the to-be-sent read request and the transmission line width of the read request channel when the data request end is ready to initiate a read request, then determine the first read request transmission time interval according to the data transmission protocol of the read request and the transmission line width of the read request channel, and finally send the to-be-sent read request to the network on a chip according to the first read request transmission time interval. By dynamically adjusting the read request transmission time interval for the to-be-sent read request, the dynamic adjustment of the read request sending rate of the data request end is realized. Especially in the case where the number of data request ends is large, the possibility of network congestion of the network on a chip caused by too large read request traffic due to frequent read request sending of different data request ends can be reduced, the traffic control between the data request end and the network on a chip is realized, and the read request processing efficiency of the system on a chip is improved. At the same time, since the to-be-sent read request needs to be transmitted according to the read request transmission time interval, a certain waiting time can be reserved between two continuous read requests of the data request end. The read request sent first can use the reserved waiting time to receive the corresponding read data, the read request sent later cannot occupy the resources of the network on a chip to initiate a request when the read request sent first receives the corresponding read data, and cannot cause the data request end to receive more read data due to the success of the read request sending. The read data receiving pressure of the data request end can be effectively reduced, network congestion of the data request end caused by too large read data traffic can be avoided, and the data processing efficiency of the data request end and the resource utilization rate of the system on a chip are improved.

[0039] In some embodiments, the data transmission protocol carries a read burst length parameter and a read data width parameter; based on the data transmission protocol and the transmission line width, the first read request transmission time interval is determined, including: determining a first clock frequency of the data request end and a second clock frequency of the network on a chip; based on the read burst length parameter, the read data width parameter, the first clock frequency, the second clock frequency, and the transmission line width, a first data transmission delay parameter is determined; and based on the first data transmission delay parameter, the first read request transmission time interval is determined.

[0040] Specifically, the data transmission protocol to be used for sending the read request can be an AXI (Advanced eXtensible Interface) protocol, which is a bus protocol widely used for communication between internal device components of a system on chip, has characteristics of high bandwidth, low latency, support for burst transmission, etc., and is often used to connect core components such as processors, memories, peripherals, etc. The AXI protocol carries a read burst length parameter arlen and a read data width parameter arsize.

[0041] It should be noted that in the field definition of the AXI protocol, the read burst length parameter arlen is used to specify the length of the read burst transmission, i.e., the number of data continuously read in one burst transmission; and the read data width parameter arsize is used to specify the number of bytes of data transmission in each data transmission in the read burst transmission. The initiation of one read request to be sent can be regarded as one read burst transmission.

[0042] Further, after determining the data transmission protocol of the read request to be sent and the transmission line width mst_width of the read request channel, the first clock frequency fmst of the data request end and the second clock frequency fnoc of the network on chip can be determined.

[0043] Further, the first flow control unit arranged in the clock domain of the data request end can calculate a first data transmission delay parameter rtn_data_trans1 according to the read burst length parameter arlen, the read data width parameter arsize, the first clock frequency fmst, the second clock frequency fnoc, and the transmission line width mst_width of the read request channel, and calculate a first read request transmission time interval delay_cnt1 according to the first data transmission delay parameter rtn_data_trans1.

[0044] Alternatively, the expressions of the first data transmission delay parameter rtn_data_trans1 and the first read request transmission time interval delay_cnt1 are as follows:

[0045] ;

[0046] ;

[0047] wherein, is a maximum value function.

[0048] Optionally, the first flow control unit arranged in the clock domain of the data request end can first determine the transmission line width noc_width of the read request channel on the network-on-chip side, compare the transmission line width noc_width of the read request channel on the network-on-chip side with the transmission line width mst_width of the read request channel of the data request end, select the minimum value min_width from the two, and then calculate the first data transmission delay parameter rtn_data_trans1 according to the read burst length parameter arlen, the read data width parameter arsize, the first clock frequency fmst, the second clock frequency fnoc and the minimum transmission line width min_width, and calculate the first read request transmission time interval delay_cnt1 according to the first data transmission delay parameter rtn_data_trans1. At this time, the expressions of the first data transmission delay parameter rtn_data_trans1 and the first read request transmission time interval delay_cnt1 are as follows:

[0049] ;

[0050] ;

[0051] wherein, is a maximum value function.

[0052] In some embodiments, the data transmission protocol carries a burst length parameter and a read data width parameter; based on the data transmission protocol and the transmission line width, the first read request transmission time interval is determined, including: based on the burst length parameter, the read data width parameter and the transmission line width, a second data transmission delay parameter is determined; based on the second data transmission delay parameter, the first read request transmission time interval is determined.

[0053] Specifically, the data transmission protocol used by the to-be-sent read request can be an AXI (Advanced eXtensible Interface) protocol, which is a bus protocol widely used for communication between internal device components of a system-on-chip, has the characteristics of high bandwidth, low delay, support for burst transmission, etc., and is commonly used to connect processor, memory, peripherals and other core components. The AXI protocol carries a burst length parameter burst_len and a read data width parameter arsize.

[0054] It should be noted that in the field definition of the AXI protocol, the burst length parameter burst_len, the read burst length parameter arlen and the read data width parameter arsize are three key parameters, and the three are closely related, which together determine the characteristics of burst transmission: the read burst length parameter arlen is used to specify the length of the read burst transmission, that is, the number of data continuously read in one burst transmission; the read data width parameter arsize is used to specify the number of bytes of each data transmission in the read burst transmission; the burst length parameter burst_len is used to specify the number of continuous data transmissions in one burst transmission, which determines the total amount of data in the burst transmission. The initiation of a read request to be sent can be regarded as a read burst transmission.

[0055] wherein the value of the burst length parameter burst_len is one more than the value of the read burst length parameter arlen, that is .

[0056] Further, after determining the data transmission protocol of the read request to be sent and the transmission line width mst_width of the read request channel, the first flow control unit arranged in the clock domain of the data request end can determine the second data transmission delay parameter rtn_data_trans2 according to the burst length parameter burst_len, the read data width parameter arsize and the transmission line width mst_width of the read request channel, and determine the first read request transmission time interval delay_cnt1 based on the second data transmission delay parameter rtn_data_trans2.

[0057] Alternatively, the expressions of the second data transmission delay parameter rtn_data_trans2 and the first read request transmission time interval delay_cnt1 are as follows:

[0058] ;

[0059] ;

[0060] wherein, is the maximum value function.

[0061] Optionally, the first flow control unit arranged in the clock domain of the data request end can first determine the transmission line width noc_width of the read request channel on the network-on-chip side, and compare the transmission line width noc_width of the read request channel on the network-on-chip side with the transmission line width mst_width of the read request channel of the data request end, select the minimum value min_width from the two, and then determine the second data transmission delay parameter rtn_data_trans2 according to the burst length parameter burst_len, the read data width parameter arsize and the minimum transmission line width min_width, and determine the first read request transmission time interval delay_cnt1 based on the second data transmission delay parameter rtn_data_trans2. At this time, the expressions of the second data transmission delay parameter rtn_data_trans2 and the first read request transmission time interval delay_cnt1 are as follows:

[0062] ;

[0063] ;

[0064] wherein, is the maximum value function.

[0065] In some embodiments, based on the first read request transmission time interval, the flow control is performed, and the to-be-sent read request is sent to the network-on-chip, and then the following steps are further included: receiving read data corresponding to the to-be-sent read request sent by the network-on-chip; wherein the network-on-chip is based on the second read request transmission time interval to perform flow control and send the read data to the data request end.

[0066] It can be understood that for each to-be-sent read request sent by the data request end to the network-on-chip, the purpose is to obtain read data corresponding to the to-be-sent read request, and if the data amount of the read data corresponding to the to-be-sent read request is too large, the read data will be divided into multiple parts and returned to the data request end in batches by the network-on-chip.

[0067] Specifically, after the data request end sends the to-be-sent read request to the network-on-chip according to the first read request transmission time interval, the network-on-chip can receive the to-be-sent read request and obtain read data corresponding to the to-be-sent read request.

[0068] Further, the network-on-chip can perform data division processing on the read data corresponding to the to-be-sent read request according to the data amount of the read data corresponding to the to-be-sent read request, and obtain at least one to-be-sent read data.

[0069] Meanwhile, the network-on-chip can determine a data transmission protocol used by the to-be-sent read request, and calculate a second read request transmission time interval of the network-on-chip according to the data transmission protocol used by the to-be-sent read request.

[0070] The second read request transmission time interval is actually a delay time interval between two to-be-sent read data in succession, and the second read request transmission time interval can be used to limit the sending rate of the to-be-sent read data of the network-on-chip, so as to ensure that network congestion does not occur when the read data is sent.

[0071] Further, the network-on-chip can send each to-be-sent read data on the network-on-chip side to the data request end in turn according to the second read request transmission time interval, and further optimize the cross-clock-domain flow control between the data request end and the network-on-chip.

[0072] In some embodiments, the data transmission protocol carries a read burst length parameter; and the second read request transmission time interval is determined by the network-on-chip based on the read burst length parameter.

[0073] Specifically, the data transmission protocol used by the to-be-sent read request can be an AXI (Advanced eXtensible Interface) protocol, which is a bus protocol widely used for communication between internal device components of a system-on-chip, and has the characteristics of high bandwidth, low delay, and support for burst transmission, and is commonly used to connect core components such as processors, memories, and peripherals. The AXI protocol carries a read burst length parameter arlen.

[0074] It should be noted that in the field definition of the AXI protocol, the read burst length parameter arlen is used to specify the length of the read burst transmission, that is, the number of data read in one burst transmission. The initiation of one to-be-sent read request can be regarded as one read burst transmission.

[0075] Further, the second flow control unit arranged in the clock domain of the network-on-chip can calculate the second read request transmission time interval delay_cnt2 according to the read burst length parameter arlen, and send each to-be-sent read data on the network-on-chip side to the data request end in turn according to the second read request transmission time interval delay_cnt2, and further optimize the cross-clock-domain flow control between the data request end and the network-on-chip.

[0076] Alternatively, the expression of the second read request transmission time interval delay_cnt2 is as follows:

[0077] .

[0078] Optionally, in actual application, the first flow control unit arranged in the clock domain of the data request end and the second flow control unit arranged in the clock domain of the network-on-chip side can respectively adopt the first read request transmission time interval delay_cnt1 and the second read request transmission time interval delay_cnt2 to perform bidirectional flow control on the data request end and the network-on-chip.

[0079] Optionally, in actual application, only the first flow control unit arranged in the clock domain of the data request end is used to perform flow control on the data request end through the first read request transmission time interval delay_cnt1.

[0080] Optionally, in actual application, only the second flow control unit arranged in the clock domain of the network-on-chip side is used to perform flow control on the network-on-chip through the second read request transmission time interval delay_cnt2.

[0081] Optionally, in actual application, the transmission line width mst_width of the read request channel of the data request end and the transmission line width noc_width of the read request channel of the network-on-chip side can be determined first, and then compared, and finally the side with smaller transmission line width is selected for flow control.

[0082] For example, if the transmission line width mst_width of the read request channel of the data request end is greater than or equal to the transmission line width noc_width of the read request channel of the network-on-chip side, only the second flow control unit arranged in the clock domain of the network-on-chip side is used to perform flow control on the network-on-chip through the second read request transmission time interval delay_cnt2; if the transmission line width mst_width of the read request channel of the data request end is less than the transmission line width noc_width of the read request channel of the network-on-chip side, only the first flow control unit arranged in the clock domain of the data request end is used to perform flow control on the data request end through the first read request transmission time interval delay_cnt1.

[0083] This design can make the flow control units on both sides of communication only have one real flow control function, and automatic adaptation of the side with smaller transmission line width can ensure that the side with smaller transmission line width will not be congested due to excessive flow.

[0084] Optionally, the AXI protocol carries a read burst length parameter arlen and a read data width parameter arsize; the second flow control unit arranged in the on-chip network side clock domain can first determine the first clock frequency fmst of the data request end, the second clock frequency fnoc of the on-chip network and the transmission line width noc_width of the read request channel of the on-chip network, and then calculate the third data transmission delay parameter rtn_data_trans3 according to the read burst length parameter arlen, the read data width parameter arsize, the first clock frequency fmst, the second clock frequency fnoc and the transmission line width noc_width of the read request channel of the on-chip network, and calculate the second read request transmission time interval delay_cnt2 according to the third data transmission delay parameter rtn_data_trans3.

[0085] Optionally, the third data transmission delay parameter rtn_data_trans3 and the second read request transmission time interval delay_cnt2 have the following expressions:

[0086] ;

[0087] ;

[0088] wherein, is a maximum value function.

[0089] In some embodiments, the data transmission protocol carries a burst length parameter; wherein the second read request transmission time interval is determined by the on-chip network based on the burst length parameter.

[0090] Specifically, the data transmission protocol adopted by the to-be-sent read request can be an AXI (Advanced eXtensible Interface) protocol, which is a bus protocol widely used for communication between internal device components of a system on chip, has the characteristics of high bandwidth, low delay and support for burst transmission, and is commonly used for connecting core components such as processors, memories and peripherals, and the AXI protocol carries a burst length parameter burst_len.

[0091] It should be noted that in the field definition of the AXI protocol, the burst length parameter burst_len, the read burst length parameter arlen and the read data width parameter arsize are three key parameters, which are closely related and jointly determine the characteristics of burst transmission: the read burst length parameter arlen is used to specify the length of read burst transmission, i.e. the number of data continuously read in one burst transmission; the read data width parameter arsize is used to specify the number of bytes of data transmission in each read burst transmission; the burst length parameter burst_len is used to specify the number of continuous data transmissions in one burst transmission, which determines the total amount of data in the burst transmission. The initiation of a read request to be sent can be regarded as a read burst transmission.

[0092] wherein the value of the burst length parameter burst_len is one more than the value of the read burst length parameter arlen, i.e. .

[0093] Further, the second flow control unit arranged in the on-chip network side clock domain can calculate the second read request transmission time interval delay_cnt2 according to the burst length parameter burst_len, and sequentially send each read data to be sent from the on-chip network side to the data request end according to the second read request transmission time interval delay_cnt2, further optimizing the cross-clock domain flow control between the data request end and the on-chip network.

[0094] Optionally, the expression of the second read request transmission time interval delay_cnt2 is as follows:

[0095] .

[0096] Optionally, in actual application, the first flow control unit arranged in the data request end clock domain and the second flow control unit arranged in the on-chip network side clock domain can respectively adopt the first read request transmission time interval delay_cnt1 and the second read request transmission time interval delay_cnt2 to perform bidirectional flow control on the data request end and the on-chip network.

[0097] Optionally, in actual application, only the first flow control unit arranged in the data request end clock domain is adopted to perform flow control on the data request end through the first read request transmission time interval delay_cnt1.

[0098] Optionally, in actual application, only the second flow control unit arranged in the on-chip network side clock domain is adopted to perform flow control on the on-chip network through the second read request transmission time interval delay_cnt2.

[0099] Optionally, in actual application, the transmission line width mst_width of the read request channel of the data request end and the transmission line width noc_width of the read request channel of the on-chip network side can be determined and compared, and the side with smaller transmission line width is selected for flow control.

[0100] For example, if the transmission line width mst_width of the read request channel of the data request end is greater than or equal to the transmission line width noc_width of the read request channel of the on-chip network side, only the second flow control unit arranged in the clock domain of the on-chip network is used to control the flow of the on-chip network through the second read request transmission time interval delay_cnt2; if the transmission line width mst_width of the read request channel of the data request end is less than the transmission line width noc_width of the read request channel of the on-chip network side, only the first flow control unit arranged in the clock domain of the data request end is used to control the flow of the data request end through the first read request transmission time interval delay_cnt1.

[0101] This design can make the flow control units on both sides of the communication only have one real flow control function, and the automatic adaptation of the communication side with smaller transmission line width can ensure that the side with smaller transmission line width will not be congested due to excessive flow.

[0102] Optionally, the AXI protocol carries a burst length parameter burst_len and a read data width parameter arsize; the second flow control unit arranged in the clock domain of the on-chip network can first determine the transmission line width noc_width of the read request channel of the on-chip network, and then determine the fourth data transmission delay parameter rtn_data_trans4 according to the burst length parameter burst_len, the read data width parameter arsize and the transmission line width noc_width of the read request channel of the on-chip network, and determine the second read request transmission time interval delay_cnt2 based on the fourth data transmission delay parameter rtn_data_trans4.

[0103] Optionally, the fourth data transmission delay parameter rtn_data_trans4 and the second read request transmission time interval delay_cnt2 have the following expressions:

[0104] ;

[0105] ;

[0106] Wherein, is the maximum value function.

[0107] The traffic control method provided by the embodiment can control the traffic at the data request end and the network-on-chip side respectively, actively control the sending rate of data traffic, prevent part of read requests or read data from occupying the resources of the system-on-chip unscrupulously, and effectively improve the resource utilization rate of the system-on-chip. Meanwhile, the traffic control method does not need to transform the data request end and the network-on-chip excessively in hardware, can exclude the influence of changes in back-end wiring and process on the performance of the system-on-chip, and is beneficial to further prevent the system-on-chip from being in an unbalanced resource utilization state.

[0108] The application further provides a traffic control device. Figure 3 , Figure 3 is a structural schematic diagram of the traffic control device provided by the application. In the embodiment, the traffic control device is applied to a data request end, the data request end is provided with a read request channel, and the traffic control device comprises a first determination module 310, a second determination module 320 and a traffic control module 330.

[0109] The first determination module 310 is used for determining the data transmission protocol of a to-be-sent read request and the transmission line width of the read request channel.

[0110] The second determination module 320 is used for determining a first read request transmission time interval based on the data transmission protocol and the transmission line width.

[0111] The traffic control module 330 is used for performing traffic control based on the first read request transmission time interval and sending the to-be-sent read request to the network-on-chip.

[0112] In some embodiments, the data transmission protocol carries a read burst length parameter and a read data width parameter; the first read request transmission time interval is determined based on the data transmission protocol and the transmission line width, comprising: determining a first clock frequency of the data request end and a second clock frequency of the network-on-chip; determining a first data transmission delay parameter based on the read burst length parameter, the read data width parameter, the first clock frequency, the second clock frequency and the transmission line width; and determining the first read request transmission time interval based on the first data transmission delay parameter.

[0113] In some embodiments, the data transmission protocol carries a burst length parameter and a read data width parameter; the first read request transmission time interval is determined based on the data transmission protocol and the transmission line width, comprising: determining a second data transmission delay parameter based on the burst length parameter, the read data width parameter and the transmission line width; and determining the first read request transmission time interval based on the second data transmission delay parameter.

[0114] In some embodiments, based on the first read request transmission time interval, the traffic control is performed, and the to-be-sent read request is sent to the on-chip network.

[0115] In some embodiments, the data transmission protocol carries a read burst length parameter; and the second read request transmission time interval is determined by the on-chip network based on the read burst length parameter.

[0116] In some embodiments, the data transmission protocol carries a burst length parameter; and the second read request transmission time interval is determined by the on-chip network based on the burst length parameter.

[0117] The present application also provides an electronic device. Figure 4 is a structural schematic diagram of the electronic device provided by the present application, as Figure 4 shown, the electronic device can include a processor 410, a communication interface 420, a memory 430 and a communication bus 440, wherein the processor 410, the communication interface 420, the memory 430 complete mutual communication through the communication bus 440. The processor 410 can call the logical instructions in the memory 430 to execute the traffic control method, and the traffic control method includes: determining the data transmission protocol of the to-be-sent read request and the transmission line width of the read request channel; based on the data transmission protocol and the transmission line width, determining the first read request transmission time interval; based on the first read request transmission time interval, the traffic control is performed, and the to-be-sent read request is sent to the on-chip network.

[0118] In addition, the logical instructions in the memory 430 described above can be realized in the form of a software function unit and sold or used as an independent product, which can be stored in a computer readable storage medium. Based on such understanding, the technical solutions of the present application essentially or the part that contributes to the prior art or part of the technical solutions can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including a plurality of instructions to make a computer device (which can be a personal computer, a server, or a network device, etc.) execute all or part of the steps of the method described in various embodiments of the present application. The foregoing storage medium includes: a U disk, a mobile hard disk, a read-only memory (Read-Only Memory, ROM), a random access memory (Random Access Memory, RAM), a magnetic disk or an optical disk, and various media that can store program codes.

[0119] The application further provides a non-transitory computer-readable storage medium, which stores a computer program, and the computer program is executed by a processor to implement the flow control method provided by the above method, and the flow control method comprises: determining a data transmission protocol of a read request to be sent and a transmission bandwidth of a read request channel; determining a first read request transmission time interval based on the data transmission protocol and the transmission bandwidth; and performing flow control based on the first read request transmission time interval, and sending the read request to be sent to a network on a chip.

[0120] The application further provides a computer program product, which comprises a computer program, the computer program can be stored on a non-transitory computer-readable storage medium, and the computer program is executed by a processor to enable a computer to execute the flow control method provided by the above method, and the flow control method comprises: determining a data transmission protocol of a read request to be sent and a transmission bandwidth of a read request channel; determining a first read request transmission time interval based on the data transmission protocol and the transmission bandwidth; and performing flow control based on the first read request transmission time interval, and sending the read request to be sent to a network on a chip.

[0121] The device embodiments described above are merely schematic, wherein the units described as separate components can or can not be physically separated, and the components shown as units can or can not be physical units, that is, they can be located in one place or distributed on multiple network units. Part or all of the modules can be selected to achieve the purpose of the embodiment according to actual needs. Those skilled in the art can understand and implement it without creative labor.

[0122] Those skilled in the art can clearly understand from the above description of the embodiments that the embodiments can be realized by means of software and necessary general hardware platforms, and of course, can also be realized by hardware. Based on such understanding, the above technical solutions can be embodied in the form of a software product, which can be stored in a computer readable storage medium, such as ROM / RAM, magnetic disk, optical disk, etc., and includes a plurality of instructions to make a computer device (which can be a personal computer, a server, or a network device, etc.) execute the methods described in each embodiment or some parts of the embodiment.

[0123] Finally, it should be noted that: the above embodiments are only used to illustrate the technical solutions of the application, and not to limit them; although the application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that they can still modify the technical solutions recorded in the foregoing embodiments, or make equivalent replacement to some technical features; and these modifications or replacements do not make the essence of the corresponding technical solutions deviate from the spirit and scope of the technical solutions of the embodiments of the application.

Claims

1. A flow control method, characterized in that, Applied to the data request end, the data request end is equipped with a read request channel, including: Determine the data transmission protocol of the read request to be sent and the transmission line width of the read request channel; Based on the data transmission protocol and the transmission line width, the first read request transmission time interval is determined; Based on the first read request transmission time interval, flow control is performed to send the read request to be sent to the on-chip network; The data transmission protocol carries read burst length parameters and read data width parameters; Determining the first read request transmission time interval based on the data transmission protocol and the transmission line width includes: Determine the first clock frequency of the data request terminal and the second clock frequency of the on-chip network; The first data transmission delay parameter is determined based on the read burst length parameter, the read data width parameter, the first clock frequency, the second clock frequency, and the transmission line width. Based on the first data transmission delay parameter, the first read request transmission time interval is determined.

2. The flow control method according to claim 1, characterized in that, The data transmission protocol carries burst length parameters and read data width parameters; The determination of the first read request transmission time interval based on the data transmission protocol and the transmission line width can also be: The second data transmission delay parameter is determined based on the burst length parameter, the read data width parameter, and the transmission line width; The first read request transmission time interval is determined based on the second data transmission delay parameter.

3. The flow control method according to claim 1, characterized in that, After performing flow control based on the first read request transmission time interval and sending the read request to be sent to the on-chip network, the method further includes: Receive the read data corresponding to the read request to be sent sent by the on-chip network; The on-chip network performs flow control based on the second read request transmission time interval to send the read data to the data requesting end.

4. The flow control method according to claim 3, characterized in that, The data transmission protocol carries a read burst length parameter; The second read request transmission time interval is determined by the on-chip network based on the read burst length parameter.

5. The flow control method according to claim 3, characterized in that, The data transmission protocol carries a burst length parameter; The second read request transmission time interval is determined by the on-chip network based on the burst length parameter.

6. A flow control device, characterized in that, Applied to the data request end, the data request end is equipped with a read request channel, including: The first determining module is used to determine the data transmission protocol of the read request to be sent and the transmission line width of the read request channel; The second determining module is used to determine the first read request transmission time interval based on the data transmission protocol and the transmission line width; The flow control module is used to perform flow control based on the first read request transmission time interval, and send the read request to be sent to the on-chip network; The data transmission protocol carries read burst length parameters and read data width parameters; Determining the first read request transmission time interval based on the data transmission protocol and the transmission line width includes: Determine the first clock frequency of the data request terminal and the second clock frequency of the on-chip network; The first data transmission delay parameter is determined based on the read burst length parameter, the read data width parameter, the first clock frequency, the second clock frequency, and the transmission line width. Based on the first data transmission delay parameter, the first read request transmission time interval is determined.

7. An electronic device comprising a memory, a processor, and a computer program stored in the memory and running on the processor, characterized in that, When the processor executes the computer program, it implements the flow control method as described in any one of claims 1 to 5.

8. A non-transitory computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by a processor, it implements the flow control method as described in any one of claims 1 to 5.

9. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by a processor, it implements the flow control method as described in any one of claims 1 to 5.

Citation Information

Patent Citations

  • AXI bus transmission bandwidth control method based on back pressure type monitoring

    CN117648231A

  • Data transmission method, sender device and receiver device

    WO2015135105A1