Bandwidth management system

By optimizing the target transmission rate during data transmission, the data blockage problem caused by insufficient buffer depth is solved, and efficient data transmission and bandwidth utilization are achieved.

CN120336220AActive Publication Date: 2025-07-18METAX INTEGRATED CIRCUITS (SHANGHAI) CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
CN202510820268.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-06-19
Publication Date
2025-07-18
Estimated Expiration
2045-06-19

AI Technical Summary

Technical Problem

In the data reading scenario, in the prior art, due to the different bandwidths of the address channel and the data return channel and the different clock frequency of the engine and system bus, data blockage occurs when the buffer zone is not deep enough, affecting the data transmission efficiency, and the method of expanding the buffer zone capacity increases additional costs.

Method used

The real-time usage of the cache area is obtained through the engine, and the target transmission rate of the target read command set is determined based on the clock frequency ratio, the bandwidth of the address channel and the data channel, and the bus width ratio, and the target transmission rate of the target read command set is optimized to avoid data blockage.

Benefits of technology

It improves data transmission efficiency, avoids data blockage, realizes effective bandwidth utilization, and improves system stability without increasing costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120336220A_ABST
    Figure CN120336220A_ABST
Patent Text Reader

Abstract

The invention relates to the field of data transmission, in particular to a bandwidth management system which determines an average transmission rate according to a clock frequency proportion, a first address channel data reading bandwidth, a second address channel data reading bandwidth, a first reading bandwidth, a second reading bandwidth, a bus width proportion and a clock frequency proportion. The average transmission rate can ensure that the use condition of the cache region is stable under an ideal condition, but the use condition of the cache region is influenced due to delay of data or commands during transmission caused by physical distance limitation, resource conflict and the like, so that the data or commands can be transmitted according to the average transmission rate and the real-time use condition. And the target transmission rate of the target read command set is determined, so that the bandwidth utilization rate can be effectively increased, the condition of data blockage is avoided, and the data transmission efficiency is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of data transmission, and particularly to a bandwidth management system. Background Art

[0002] In a data reading scenario, a chip usually includes an engine, a system bus, and their corresponding buffer areas and memories. The engine sends a read command to the system bus through an address channel. The system bus reads the data corresponding to the read command from the memory and then returns the data to the engine through a data return channel.

[0003] Since the bandwidths of the address channel and the data return channel may be different, and the clock frequencies of the engine and the system bus may be different, when the engine continuously sends read commands, the data read by the system bus may take multiple clock cycles to be returned to the engine. Therefore, existing methods usually use a buffer area to temporarily store the read data. However, when the buffer depth is insufficient, it will cause data congestion in the system bus, resulting in poor data transmission efficiency.

[0004] To address the above problems, the capacity of the buffer area can be expanded, but this method will increase additional costs. Therefore, how to improve data transmission efficiency on the premise of minimizing cost has become an urgent problem to be solved. Summary of the Invention

[0005] In view of the above technical problems, the technical solution adopted by the present invention is as follows: A bandwidth management system, the system includes: a system bus and its corresponding buffer area, an engine, and a memory. Among them, there are a first channel and a second channel between the system bus and the engine. The first channel is used for the engine to send a read command to the system bus, and the second channel is used for the system bus to send the data corresponding to the read command to the engine. There is a third channel between the system bus and the memory. The system bus corresponds to a first clock frequency, the engine corresponds to a second clock frequency, the third channel corresponds to a first bus width, and the second channel corresponds to a second bus width: The engine is further configured to obtain the real-time usage of the buffer area when sending a set of target read commands to the system bus through the first channel. The set of target read commands includes target read commands corresponding to several cycles respectively, and the set of target read commands corresponds to an average access length.

[0006] The engine is further configured to determine a first read bandwidth according to the first bus width and the first clock frequency, and determine a second read bandwidth according to the second bus width and the second clock frequency.

[0007] The engine is also used to determine a first address channel data read bandwidth according to the average access length and the first clock frequency, and to determine a second address channel data read bandwidth according to the average access length and the second clock frequency.

[0008] The engine is also used to determine a bus width ratio according to the first bus width and the second bus width, and to determine a clock frequency ratio according to the first clock frequency and the second clock frequency.

[0009] The engine is also used to determine an average emission rate according to the clock frequency ratio, the first address channel data read bandwidth, the second address channel data read bandwidth, the first read bandwidth, the second read bandwidth, and the bus width ratio.

[0010] The engine is also used to determine a target emission rate of the target read command set according to the average emission rate and the real-time usage of the buffer.

[0011] Compared with the prior art, the present invention has obvious beneficial effects. By means of the above technical solutions, a bandwidth management system provided by the present invention can achieve considerable technical progressiveness and practicality, and has wide industrial utilization value. It has at least the following beneficial effects: The present invention provides a bandwidth management system, which includes a system bus and its corresponding buffer, an engine, and a memory. Among them, there are a first channel and a second channel between the system bus and the engine. The first channel is used for the engine to send a read command to the system bus, and the second channel is used for the system bus to send the data corresponding to the read command to the engine. There is a third channel between the system bus and the memory. The system bus corresponds to a first clock frequency, the engine corresponds to a second clock frequency, the third channel corresponds to a first bus width, and the second channel corresponds to a second bus width. The engine is further configured to obtain the real-time usage of the buffer when sending a set of target read commands to the system bus through the first channel. The set of target read commands includes target read commands corresponding to several cycles respectively, and the set of target read commands corresponds to an average access length. The engine is further configured to determine a first read bandwidth according to the first bus width and the first clock frequency, and determine a second read bandwidth according to the second bus width and the second clock frequency. The engine is further configured to determine a first address channel data read bandwidth according to the average access length and the first clock frequency, and determine a second address channel data read bandwidth according to the average access length and the second clock frequency. The engine is further configured to determine a bus width ratio according to the first bus width and the second bus width, and determine a clock frequency ratio according to the first clock frequency and the second clock frequency. The engine is further configured to determine an average emission rate according to the clock frequency ratio, the first address channel data read bandwidth, the second address channel data read bandwidth, the first read bandwidth, the second read bandwidth, and the bus width ratio. The engine is further configured to determine a target emission rate of the set of target read commands according to the average emission rate and the real-time usage of the buffer.

[0012] It can be seen that the average emission rate is determined according to the clock frequency ratio, the first address channel data read bandwidth, the second address channel data read bandwidth, the first read bandwidth, the second read bandwidth, the bus width ratio, and the clock frequency ratio. In an ideal situation, the average emission rate can ensure the stable usage of the buffer. However, due to physical distance limitations, resource conflicts, etc., there will be delays in the transmission of data or commands, which will affect the usage of the buffer. Therefore, according to the average emission rate and the real-time usage, the target emission rate of the set of target read commands is determined, which can effectively increase the bandwidth utilization rate and avoid data congestion, thereby improving the data transmission efficiency. Description of the Drawings

[0013] To more clearly illustrate the technical solutions in the embodiments of the present invention, the following will briefly introduce the drawings required for the description of the embodiments. Obviously, the drawings in the following description are only some embodiments of the present invention. For those of ordinary skill in the art, other drawings can be obtained based on these drawings without creative efforts.

[0014] Figure 1 It is a schematic structural diagram of a bandwidth management system provided by an embodiment of the present invention. Specific embodiments

[0015] The following will clearly and completely describe the technical solutions in the embodiments of the present invention with reference to the drawings in the embodiments of the present invention. Obviously, the described embodiments are only some embodiments of the present invention, rather than all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative efforts belong to the scope of protection of the present invention.

[0016] This embodiment provides a bandwidth management system. Refer to Figure 1 , which is a schematic structural diagram of a bandwidth management system provided by an embodiment of the present invention. The system includes: a system bus and its corresponding buffer, an engine, and a memory. Among them, there are a first channel and a second channel between the system bus and the engine. The first channel is used for the engine to send a read command to the system bus, and the second channel is used for the system bus to send the data corresponding to the read command to the engine. There is a third channel between the system bus and the memory. The system bus corresponds to a first clock frequency, the engine corresponds to a second clock frequency, the third channel corresponds to a first bus width, and the second channel corresponds to a second bus width: The engine is further configured to obtain the real-time usage of the buffer when sending a set of target read commands to the system bus through the first channel. The set of target read commands includes target read commands corresponding to several cycles respectively, and the set of target read commands corresponds to an average access length; The engine is further configured to determine a first read bandwidth according to the first bus width and the first clock frequency, and determine a second read bandwidth according to the second bus width and the second clock frequency; The engine is further configured to determine a first address channel data read bandwidth according to the average access length and the first clock frequency, and determine a second address channel data read bandwidth according to the average access length and the second clock frequency; The engine is further configured to determine a bus width ratio according to the first bus width and the second bus width, and determine a clock frequency ratio according to the first clock frequency and the second clock frequency; The engine is also used to determine the average emission rate according to the clock frequency ratio, the data read bandwidth of the first address channel, the data read bandwidth of the second address channel, the first read bandwidth, the second read bandwidth, and the bus width ratio; The engine is also used to determine the target emission rate of the target read command set according to the average emission rate and the real-time usage of the buffer.

[0017] Among them, the system bus may refer to the common signal lines that support functions such as data transmission, address addressing, and control signal transmission. The buffer can be used to temporarily store the data read by the system bus from the memory. The memory may refer to a static random access memory, etc. In the system of this embodiment, there may be multiple memories, but all of them read data through the system bus.

[0018] The first channel can be used for the engine to transmit read commands to the system bus. The third channel can be used for the system bus to read data from the memory. The second channel can be used for the system bus to return the read data to the engine.

[0019] Specifically, the real-time usage can refer to the utilization rate of the buffer, and its value range can be [0, 1]. The closer the real-time usage is to 0, the smaller the utilization rate of the buffer, and the emptier the buffer. The closer the real-time usage is to 1, the larger the utilization rate of the buffer, and the fuller the buffer.

[0020] The engine determines the interval at which each target read command is sent to the system bus according to the target emission rate.

[0021] In this embodiment, it is a prior condition that the read command adopts the burst transmission mode, that is, in one clock cycle, the engine sends a target read command to the system bus. The engine sending the target read command set to the system bus through the first channel may refer to the engine continuously sending multiple target read commands to the system bus through the first channel.

[0022] In a specific implementation manner, the target read command corresponds to a first access length, and the calculation method of the average access length is the mean value of the first access lengths of the target read commands corresponding to all cycles. Among them, if there is no target read command in any cycle, the first access length corresponding to this cycle is zero.

[0023] Among them, the first access length may refer to the amount of data required to be read corresponding to the target read command. The amount of data required to be read for different target read commands may be different, such as 256 bytes, 128 bytes, 64 bytes, etc. The average access length may refer to the mean value of the amount of data that each target read command needs to read on average.

[0024] In a specific embodiment, determining the first read bandwidth according to the first bus width and the first clock frequency, and determining the second read bandwidth according to the second bus width and the second clock frequency includes: Multiply the first bus width by the first clock frequency to obtain a first multiplication result, and use the first multiplication result as the first read bandwidth; Multiply the second bus width by the second clock frequency to obtain a second multiplication result, and use the second multiplication result as the second read bandwidth.

[0025] Wherein, the first read bandwidth may refer to the amount of data that the system bus can read per unit time, and the second read bandwidth may refer to the amount of data that the system bus can return to the engine per unit time.

[0026] In a specific embodiment, determining the first address channel data read bandwidth according to the average access length and the first clock frequency, and determining the second address channel data read bandwidth according to the average access length and the second clock frequency includes: Multiply the average access length by the first clock frequency to obtain a third multiplication result, and use the third multiplication result as the first address channel data read bandwidth; Multiply the average access length by the second clock frequency to obtain a fourth multiplication result, and use the fourth multiplication result as the second address channel data read bandwidth.

[0027] Wherein, the first address channel data read bandwidth may refer to the amount of data that the system bus needs to read per unit time, and the second address channel data read bandwidth may refer to the amount of data that the system bus needs to return to the engine per unit time.

[0028] In a specific embodiment, determining the bus width ratio according to the first bus width and the second bus width, and determining the clock frequency ratio according to the first clock frequency and the second clock frequency includes: Divide the second bus width by the first bus width to obtain a first division result, and use the first division result as the bus width ratio; Divide the second clock frequency by the first clock frequency to obtain a second division result, and use the second division result as the clock frequency ratio.

[0029] In a specific embodiment, determining the average emission rate according to the clock frequency ratio, the first address channel data read bandwidth, the second address channel data read bandwidth, the first read bandwidth, the second read bandwidth, and the bus width ratio includes: Take the ratio of the first address channel data read bandwidth to the first read bandwidth as the first reference rate; Take the ratio of the second address channel data read bandwidth to the second read bandwidth as the second reference rate; If the clock frequency ratio is greater than a first preset value, determine the average emission rate according to the first reference rate, the bus width ratio, and the clock frequency ratio; Otherwise, take the second reference rate as the average emission rate.

[0030] Among them, the first reference rate may refer to the emission rate corresponding to when the system bus reads data and can meet the first address channel data read bandwidth. The second reference rate may refer to the emission rate corresponding to when the system bus returns data and can meet the second address channel data read bandwidth. The emission rate may refer to the period between two consecutive target read commands emitted by the engine. The first preset value can be set to 1.

[0031] In a specific implementation manner, the determining the average emission rate according to the first reference rate, the bus width ratio, and the clock frequency ratio includes: Multiply the bus width ratio by the clock frequency ratio to obtain a fifth multiplication result: Divide the first reference rate by the fifth multiplication result to obtain a third division result; If the third division result is greater than a second preset value, determine the first reference rate as the average emission rate; Otherwise, take a preset rate as the average emission rate.

[0032] Among them, the second preset value can be set to 1, and the preset rate can be 1.

[0033] Specifically, taking the first clock frequency as 2 GHz, the first bus width as 64 B, the second clock frequency as 1 GHz, the first bus width as 32 B, the average access length as 128 B as an example, the first read bandwidth is 128 GB / s, the second read bandwidth is 32 GB / s, the first address channel data read bandwidth is 256 GB / s, the second address channel data read bandwidth is 128 GB / s, the bus width ratio is 0.5, the clock frequency ratio is 0.5, then the first reference rate is 2, the second reference rate is 4. Since the clock frequency ratio is less than the first preset value, take the second reference rate 4 as the average emission rate; Taking the first clock frequency of 1 GHz, the first bus width of 64 B, the second clock frequency of 2 GHz, the first bus width of 32 B, and the average access length of 128 B as an example, the first read bandwidth is 64 GB / s, the second read bandwidth is 64 GB / s, the data read bandwidth of the first address channel is 128 GB / s, the data read bandwidth of the second address channel is 256 GB / s, the bus width ratio is 0.5, the clock frequency ratio is 0.5, then the first reference rate is 2, the second reference rate is 4. Since the clock frequency ratio is greater than the first preset value, the fifth multiplication result is 1, the third division result is 2, and the third division result 2 is greater than the second preset value 1, so the first reference rate 2 is used as the average emission rate; Taking the first clock frequency of 1 GHz, the first bus width of 64 B, the second clock frequency of 2 GHz, the first bus width of 256 B, and the average access length of 128 B as an example, the first read bandwidth is 64 GB / s, the second read bandwidth is 512 GB / s, the data read bandwidth of the first address channel is 128 GB / s, the data read bandwidth of the second address channel is 256 GB / s, the bus width ratio is 4, the clock frequency ratio is 2, then the first reference rate is 2, the second reference rate is 0.5. Since the clock frequency ratio is greater than the first preset value, the fifth multiplication result is 8, the third division result is 0.25, and the third division result 0.25 is less than the second preset value 1, so the preset rate 1 is used as the average emission rate.

[0034] In a specific implementation manner, determining the target emission rate of the target read command set according to the average emission rate and the real-time usage includes: If the real-time usage is less than a preset first threshold, then the target emission rate is greater than the average emission rate; If the real-time usage is greater than a preset second threshold, then the target emission rate is less than the average emission rate, where the second preset threshold is greater than the preset first threshold; Otherwise, the target emission rate is equal to the average emission rate.

[0035] Among them, due to the physical distance between the system bus and the memory, resource conflicts caused by the system bus processing read and write commands of multiple engines, etc., data reading will be delayed. Therefore, when the real-time usage is less than the preset first threshold, in order to improve bandwidth utilization, the target emission rate can be greater than the average emission rate. At this time, even if there is data that arrives at the buffer area with a delay, it will basically not exceed the buffer capacity of the buffer area.

[0036] When the target transmission rate is equal to the average transmission rate, theoretically, the depth of the buffer can remain stable. However, due to the existence of data that arrives at the buffer with a delay, when the real-time usage exceeds the preset second threshold, the target transmission rate should be less than the average transmission rate to avoid, as much as possible, the buffer capacity being exceeded when data that arrives at the buffer with a delay occurs.

[0037] Specifically, the preset first threshold can be set to 0.5, and the preset second threshold can be set to 0.8. The implementer can adjust the values of the preset first threshold and the preset second threshold according to the actual situation.

[0038] The method for determining the target transmission rate can be function mapping, pre-configured rate, etc. For example, when using function mapping, the function y = 2×V×(1 - x) can be set, where x represents the real-time usage, V represents the average transmission rate, and y represents the target transmission rate. When the real-time usage is less than the preset first threshold or the real-time usage is greater than the preset second threshold, this function is used to determine the target transmission rate. In one implementation, the implementer can directly determine the target transmission rate according to this function, the average transmission rate, and the real-time usage. It should be noted that this function is only an example, and the implementer can adjust the mapping function according to the actual situation.

[0039] It can be seen that in this embodiment, the average transmission rate is determined according to the clock frequency ratio, the data reading bandwidth of the first address channel, the data reading bandwidth of the second address channel, the first read bandwidth, the second read bandwidth, the bus width ratio, and the clock frequency ratio. The average transmission rate can ensure the stable usage of the buffer in an ideal situation. However, due to physical distance limitations, resource conflicts, etc., there will be a delay in the transmission of data or commands, which will affect the usage of the buffer. Therefore, according to the average transmission rate and the real-time usage, the target transmission rate of the target read command set is determined, which can effectively increase the bandwidth utilization rate and avoid data congestion, thereby improving the data transmission efficiency.

[0040] Although some specific embodiments of the present invention have been described in detail by way of examples, those skilled in the art should understand that the above examples are only for the purpose of illustration and not for the purpose of limiting the scope of the present invention. Those skilled in the art should also understand that various modifications can be made to the embodiments without departing from the scope and spirit of the present invention. The scope disclosed by the present invention is defined by the appended claims.

Claims

1. A bandwidth management system, characterized in that, The system includes: a system bus and its corresponding buffer, an engine, and a memory. Among them, there are a first channel and a second channel between the system bus and the engine. The first channel is used for the engine to send a read command to the system bus, and the second channel is used for the system bus to send data corresponding to the read command to the engine. There is a third channel between the system bus and the memory. The system bus corresponds to a first clock frequency, the engine corresponds to a second clock frequency, the third channel corresponds to a first bus width, and the second channel corresponds to a second bus width: The engine is further configured to obtain the real-time usage of the buffer when sending a set of target read commands to the system bus through the first channel. The set of target read commands includes target read commands corresponding to several cycles respectively, and the set of target read commands corresponds to an average access length; The engine is further configured to determine a first read bandwidth according to the first bus width and the first clock frequency, and determine a second read bandwidth according to the second bus width and the second clock frequency; The engine is further configured to determine a first address channel data read bandwidth according to the average access length and the first clock frequency, and determine a second address channel data read bandwidth according to the average access length and the second clock frequency; The engine is further configured to determine a bus width ratio according to the first bus width and the second bus width, and determine a clock frequency ratio according to the first clock frequency and the second clock frequency; The engine is further configured to determine an average emission rate according to the clock frequency ratio, the first address channel data read bandwidth, the second address channel data read bandwidth, the first read bandwidth, the second read bandwidth, and the bus width ratio; The engine is further configured to determine a target emission rate of the set of target read commands according to the average emission rate and the real-time usage of the buffer.

2. The bandwidth management system according to claim 1, wherein The target read command corresponds to a first access length, and the average access length is calculated as the mean of the first access lengths of the target read commands corresponding to all cycles. Among them, if there is no target read command in any cycle, the first access length corresponding to that cycle is zero.

3. The bandwidth management system according to claim 1, characterized in that The determining the first read bandwidth according to the first bus width and the first clock frequency, and determining the second read bandwidth according to the second bus width and the second clock frequency includes: Multiplying the first bus width and the first clock frequency to obtain a first multiplication result, and using the first multiplication result as the first read bandwidth; Multiplying the second bus width and the second clock frequency to obtain a second multiplication result, and using the second multiplication result as the second read bandwidth.

4. The bandwidth management system according to claim 1, wherein The determining the first address channel data read bandwidth according to the average access length and the first clock frequency, and determining the second address channel data read bandwidth according to the average access length and the second clock frequency includes: Multiply the average access length by the first clock frequency to obtain a third multiplication result, and use the third multiplication result as the data read bandwidth of the first address channel; Multiply the average access length by the second clock frequency to obtain a fourth multiplication result, and use the fourth multiplication result as the data read bandwidth of the second address channel.

5. The bandwidth management system according to claim 1, wherein The determining the bus width ratio according to the first bus width and the second bus width, and determining the clock frequency ratio according to the first clock frequency and the second clock frequency includes: Divide the second bus width by the first bus width to obtain a first division result, and use the first division result as the bus width ratio; Divide the second clock frequency by the first clock frequency to obtain a second division result, and use the second division result as the clock frequency ratio.

6. The bandwidth management system according to claim 1, wherein The determining the average emission rate according to the clock frequency ratio, the data read bandwidth of the first address channel, the data read bandwidth of the second address channel, the first read bandwidth, the second read bandwidth, and the bus width ratio includes: Use the ratio of the data read bandwidth of the first address channel to the first read bandwidth as the first reference rate; Use the ratio of the data read bandwidth of the second address channel to the second read bandwidth as the second reference rate; If the clock frequency ratio is greater than a first preset value, determine the average emission rate according to the first reference rate, the bus width ratio, and the clock frequency ratio; Otherwise, use the second reference rate as the average emission rate.

7. The bandwidth management system according to claim 6, wherein The determining the average emission rate according to the first reference rate, the bus width ratio, and the clock frequency ratio includes: Multiply the bus width ratio by the clock frequency ratio to obtain a fifth multiplication result: Divide the first reference rate by the fifth multiplication result to obtain a third division result; If the third division result is greater than a second preset value, determine the first reference rate as the average emission rate; Otherwise, use a preset rate as the average emission rate.

8. The bandwidth management system according to claim 1, wherein The determining the target emission rate of the target read command set according to the average emission rate and the real-time usage includes: If the real-time usage is less than a preset first threshold, the target emission rate is greater than the average emission rate; If the real-time usage is greater than a preset second threshold, the target emission rate is less than the average emission rate, where the second preset threshold is greater than the preset first threshold; Otherwise, the target emission rate is equal to the average emission rate.

Citation Information

Patent Citations

  • Data interaction method, device and system and readable storage medium

    CN112306924A

  • Clock frequency adjustment method and device, electronic equipment and readable storage medium

    CN114253880A

  • Memory control method and device, storage medium and electronic equipment

    CN114461546A

  • Data writing method, flash memory device and computer readable storage medium

    CN120029536A

  • Media Controller with Response Buffer for Improved Data Bus Transmissions and Method for Use Therewith

    US20180059945A1