Bandwidth allocation method and device for network-on-chip and arbiter
By dynamically adjusting the bandwidth allocation method in the on-chip network, and calculating the deviation value based on the confirmation signal and input weight value of the arbitration request channel, the bandwidth imbalance caused by the difference in active time of the main device is solved, and the system performance and resource utilization are improved.
Patent Information
- Application Number
- CN202510583568.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-05-06
- Publication Date
- 2025-07-11
AI Technical Summary
The prior art bandwidth allocation method in on-chip network fails to fully consider the active time difference of the master device, resulting in wasted bandwidth resources or unbalanced use, affecting system performance.
By obtaining the number of confirmation signals and input weight values of the arbitration request channel, the single-wheel and cumulative deviation values are calculated, and the bandwidth allocation is dynamically adjusted to adapt to the changes in the active state of the main device, and the equalization and utilization of bandwidth resources are achieved.
It improves the utilization rate and balance of bandwidth resources, and improves the overall performance and stability of the system.
Smart Images

Figure CN120301775A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of computer technology, and in particular, to a method, device, and arbiter for bandwidth allocation in a network on chip. Background Art
[0002] In the field of network-on-chip (NoC) architectures, as the system scale continues to expand, the complexity of data flow and processing is increasing day by day. As the core component of modern high-performance computing, data centers, and communication devices, the performance of NoC directly affects the efficiency and stability of the entire system.
[0003] Currently, existing solutions usually rely on static weight configuration to manage bandwidth allocation between each switching node. For example, in an N-to-1 cascaded structure, each master device is assigned a fixed weight value, and the main road weights of each level of nodes are initialized by accumulating the weight values of downstream nodes, aiming to ensure that all master devices obtain the same bandwidth ratio.
[0004] However, this method fails to fully consider the dynamic changes in actual applications, such as the difference in active time of different master devices. For example, if not all master devices remain active during a long period of time, it will cause waste or uneven use of bandwidth resources, thereby affecting the overall performance of the system. Summary of the Invention
[0005] In view of this, the purpose of the embodiments of the present invention is to provide a method, device, and arbiter for bandwidth allocation in a network on chip, which can improve the utilization rate and balance of bandwidth resources, and thereby improve the overall performance of the system.
[0006] In a first aspect, an embodiment of the present invention provides a method for bandwidth allocation in a network on chip, where the network on chip includes at least one cascaded structure, and the cascaded structure includes a plurality of cascaded arbitration request channels. The method includes:
[0007] Obtaining the number of acknowledgment signals received by each arbitration request channel in a target period, where the acknowledgment signal is used to indicate that the arbitration request channel is granted the resource access right;
[0008] Obtaining the input weight value of each arbitration request channel in the target period;
[0009] Determining the single-round deviation value of each arbitration request channel in the target period according to the input weight value and the number of acknowledgment signals;
[0010] Obtaining the cumulative deviation value in the target period according to the single-round deviation value;
[0011] Allocate the bandwidth of each arbitration request channel in the next cycle according to the cumulative deviation value and the input weight value.
[0012] In some embodiments, determining the single-round deviation value of each arbitration request channel in the target cycle according to the input weight value and the number of acknowledgement signals includes:
[0013] Use the difference between the number of acknowledgement signals of each arbitration request channel and the input weight value as the single-round deviation value of each arbitration request channel in the target cycle.
[0014] In some embodiments, obtaining the cumulative deviation value in the target cycle according to the single-round deviation value includes:
[0015] In response to the input weight value remaining unchanged, obtain the cumulative deviation value of the previous cycle, and use the sum of the cumulative deviation value of the previous cycle and the single-round deviation value in the target cycle as the cumulative deviation value in the target cycle;
[0016] In response to the input weight value changing, clear the cumulative deviation value.
[0017] In some embodiments, allocating the bandwidth of each arbitration request channel in the next cycle according to the cumulative deviation value and the input weight value includes:
[0018] Determine the adjustment value;
[0019] In response to the cumulative deviation value being greater than zero, subtract the adjustment value from the input weight value of the corresponding arbitration request channel to obtain the adjusted weight value;
[0020] In response to the cumulative deviation value being less than zero, add the adjustment value to the input weight value of the corresponding arbitration request channel to obtain the adjusted weight value;
[0021] In response to the cumulative deviation value being equal to zero, use the input weight value of the corresponding arbitration request channel as the adjusted weight value.
[0022] In some embodiments, allocating the bandwidth of each arbitration request channel in the next cycle according to the cumulative deviation value and the input weight value further includes:
[0023] Allocate the bandwidth of each arbitration request channel in the next cycle according to the adjusted weight values of each arbitration request channel.
[0024] In some embodiments, determining the adjustment value includes:
[0025] In response to the adjustment step being 1, determine the adjustment value to be 1;
[0026] In response to the adjustment step size not being 1, the adjustment value is the absolute value of the cumulative deviation value within the target period.
[0027] In some embodiments, the method further includes:
[0028] Determine a time window;
[0029] Obtain the number of data packets of each master device within the time window;
[0030] Determine the status of each master device according to the number of data packets;
[0031] Allocate the bandwidth of each master device according to the status.
[0032] In some embodiments, determining the status of each master device according to the number of data packets includes:
[0033] In response to the number of data packets being greater than or equal to a predetermined threshold, determine the status of the master device as an active state;
[0034] In response to the number of data packets being less than the predetermined threshold, determine the status of the master device as an inactive state.
[0035] In some embodiments, allocating the bandwidth of each master device according to the status includes:
[0036] Obtain the master devices with an active status;
[0037] Look up the predetermined weight value of the master device with an active status in a predetermined table;
[0038] Allocate the bandwidth of each master device according to the predetermined weight value.
[0039] In a second aspect, an embodiment of the present invention provides a bandwidth allocation device for a network-on-chip. The network-on-chip includes at least one cascaded structure, and the cascaded structure includes a plurality of cascaded arbitration request channels. The device includes:
[0040] A quantity confirmation unit, configured to obtain the number of confirmation signals received by each arbitration request channel within a target period, where the confirmation signal is used to indicate that the arbitration request channel is granted the resource access permission;
[0041] An input weight value acquisition unit, configured to obtain the input weight value of each arbitration request channel within the target period;
[0042] A single-round deviation value determination unit, configured to determine the single-round deviation value of each arbitration request channel within the target period according to the input weight value and the number of confirmation signals;
[0043] An accumulated deviation value obtaining unit, configured to obtain the accumulated deviation value within the target period according to the single-round deviation value;
[0044] An allocation unit, configured to allocate the bandwidth of each arbitration request channel in the next period according to the accumulated deviation value and the input weight value.
[0045] In a third aspect, an embodiment of the present invention provides an arbiter for implementing the method described in the first aspect.
[0046] The technical solution of the embodiment of the present invention obtains the number of acknowledgement signals received by each arbitration request channel within the target period and the input weight value of each arbitration request channel within the target period, determines the single-round deviation value of each arbitration request channel within the target period according to the input weight value and the number of acknowledgement signals, obtains the accumulated deviation value according to the single-round deviation value, and allocates the bandwidth of each arbitration request channel in the next period according to the accumulated deviation value and the input weight value. Thus, the utilization rate and balance of bandwidth resources can be improved, and further the overall performance of the system can be improved. Description of the Drawings
[0047] Through the following description of the embodiments of the present invention with reference to the drawings, the above and other objects, features and advantages of the present invention will become clearer. In the drawings:
[0048] Figure 1 is a schematic diagram of the NoC architecture of the embodiment of the present invention;
[0049] Figure 2 is a schematic diagram of the cascade structure of the embodiment of the present invention;
[0050] Figure 3 is a flowchart of the bandwidth allocation method according to the first embodiment of the present invention;
[0051] Figure 4 is a flowchart of allocating bandwidth according to the embodiment of the present invention;
[0052] Figure 5 is a flowchart of the bandwidth allocation method according to the second embodiment of the present invention;
[0053] Figure 6 is a schematic diagram of a table according to the embodiment of the present invention;
[0054] Figure 7 is a schematic diagram of the bandwidth allocation device according to the embodiment of the present invention. Detailed Embodiments
[0055] The present application will be described based on embodiments, but the present application is not limited to these embodiments. In the following detailed description of the present application, some specific details are described in detail. Those skilled in the art can fully understand the present application without the description of these details. In order to avoid obscuring the essence of the present application, well-known methods, processes, procedures, components, and circuits are not described in detail.
[0056] In addition, those of ordinary skill in the art should understand that the accompanying drawings provided herein are for illustrative purposes only, and the drawings are not necessarily drawn to scale.
[0057] Unless the context clearly requires otherwise, the words "including", "comprising", and the like in the entire application document should be construed in an inclusive sense rather than an exclusive or exhaustive sense; that is, it is the meaning of "including but not limited to".
[0058] In the description of the present application, it should be understood that the terms "first", "second", etc. are only used for descriptive purposes and cannot be construed as indicating or implying relative importance. In addition, in the description of the present application, unless otherwise specified, the meaning of "plurality" is two or more.
[0059] For the solutions described in this specification and the embodiments, if they involve personal information processing, they will be processed on the premise of having a legal basis (such as obtaining the consent of the personal information subject, or being necessary for performing a contract, etc.), and will only be processed within the specified or agreed scope. If the user refuses to process personal information other than the necessary information required for the basic functions, it will not affect the user's use of the basic functions.
[0060] A Network on Chip (NoC) is a method for designing a communication subsystem for complex single-chip systems. The NoC uses an architecture similar to a computer network to achieve communication between different modules inside the chip. It generally includes components such as routers, links, routing algorithms, and flow control mechanisms. By transmitting data packets from a source node to one or more destination nodes, the NoC can support large-scale parallel processing and efficient communication between modules. The NoC architecture can easily add more nodes and communication paths as needed, thus supporting larger-scale System on Chip (SoC) designs. Through optimized data transmission paths and concurrent communication capabilities, the NoC can provide a higher data transmission rate than traditional buses. Effective routing algorithms and traffic control strategies can reduce data transmission latency. Different functional modules can be connected to the NoC through standard interfaces, improving the flexibility and reusability of the design. Through local communication and optimized power management strategies, the NoC helps to reduce the overall power consumption.
[0061] In a NoC architecture, the switch node is one of the core components, and each switch node usually contains several ports. These ports are responsible for processing data packets entering and leaving the node, including request packets and response packets.
[0062] Among them, the switch node is the basic communication unit of the NoC, responsible for receiving, routing, and forwarding data packets. Each switch node can be regarded as a small router, which is connected to other nodes or functional modules (such as processors, memories, etc.) through its ports. The main tasks of the switch node include: receiving data packets from the input port, determining the next-hop destination of the data packet according to the routing algorithm, and sending the data packet to the correct output port, etc.
[0063] Each switch node contains multiple ports for communicating with adjacent nodes or local functional modules. Ports can be divided into input ports, output ports, and local ports, etc. Among them, the input port is used to receive data packets from other nodes or local modules. The output port is used to send data packets to the next node or local module. The local port is connected to a local functional module (such as a device, processor, memory, etc.) for communicating with that module. The bandwidth of each port is usually shared by request packets and response packets, which means that at the same time, the port may need to process request and response data packets from different directions simultaneously. To cope with traffic peaks and avoid packet loss, the port is usually equipped with a buffer of a certain size. The size of the buffer directly affects the throughput and latency. When multiple data packets compete for the same port, an arbitration mechanism is needed to determine the priority.
[0064] In the NoC, data packets are usually divided into request packets and response packets. Among them, the request packet is generated by the module initiating the communication and is used to request a certain operation (such as reading data, writing data, etc.). The response packet is generated by the target module and is used to respond to the operation result of the request packet (such as returning the read data or confirming the completion of the write). The request packet and the response packet share the bandwidth of the port.
[0065] In bandwidth allocation, weight is usually a value assigned to each data stream or user in the case of shared resources (such as network links, ports, etc.), which is used to determine the bandwidth share they can obtain. Weight is a priority mechanism that helps the system decide how to allocate the available bandwidth among different requests competing for resources. Each port needs to configure the weight according to the routing policy to reflect the bandwidth performance allocation status between different nodes and ensure that all master devices obtain the expected bandwidth ratio.
[0066] In a NoC architecture, it usually includes master devices and slave devices. Among them, the master devices and slave devices are connected to the network or bus through ports. Each master device and slave device has its own interface, and these interfaces contain one or more ports for sending and receiving data packets. Among them, a master device refers to a device that can initiate a communication request, which can be a processor, a DMA (Direct Memory Access) controller, etc. Its main function is to send read and write requests to the slave device to obtain data or control the behavior of other devices. For example, in a system-on-chip (SoC), the CPU is usually the master device because it is responsible for executing programs and may need to access data in memory or other peripherals. A slave device is a device that responds to requests from the master device, such as returning data or performing specific tasks. Slave devices can be memory modules, I / O (input / output) devices, etc.
[0067] In a shared resource environment (such as a shared bus or the case where multiple master devices access the same slave device), when multiple master devices attempt to access the same slave device simultaneously, an arbitration mechanism is required to decide which master device can obtain the access right. The arbitration request channel is a dedicated path for transmitting arbitration information. It allows each master device to send a request signal to the arbiter, indicating that it hopes to use the shared resource. The arbiter decides which master device obtains the current right to use based on a certain algorithm (such as fixed priority, round-robin allocation, etc.) and notifies the master device to start transmitting data. This mechanism ensures that even under high-load conditions, the access to shared resources can be managed orderly, avoiding conflicts and deadlocks.
[0068] Among them, the topology of the NoC can be a mesh, a ring, a tree, a star, or a hybrid formed by multiple shapes, etc.
[0069] Figure 1 It is a schematic diagram of the NoC architecture of the embodiment of the present invention. As Figure 1 shown, the NoC architecture includes multiple master devices and multiple slave devices. In Figure 1In the illustrated embodiment, an example is given where the NoC architecture includes six master devices M1 - M6 and four slave devices S1 - S4. Among them, S1, S2, M1, M2, M3, M4, M5, M6, S3, and S4 are sequentially connected through a bus.
[0070] It should be noted that for the sake of convenience in explanation, Figure 1 the schematic diagram of the illustrated NoC architecture is based on a bus connection mode, rather than a typical on - chip network (NoC) topology such as a mesh, ring, or tree, etc. In an actual NoC design, routers are connected through point - to - point links to form a complex interconnected network, allowing efficient packet routing. Figure 1 In this case, since the communication between the master devices M1 - M6 and the slave devices S1 - S4 all needs to pass through a common path, and this common path is actually a relatively complex interconnected network. For the convenience of explanation in the embodiments of the present invention, a bus is used to replace the complex interconnected network and acts as the main channel for data transmission.
[0071] In the NoC architecture, for the case where multiple master devices (N) access a single slave device, it can be simplified to a cascaded structure of N to 1, where the weight of each level of switching node should accumulate the weight values of its downstream nodes as the weight of the main path of the current node.
[0072] Figure 2 is the schematic diagram of the cascaded structure of the embodiments of the present invention. Specifically, in the embodiments of the present invention, based on Figure 1 the schematic diagram of the NoC architecture, assuming that master devices M1 to M6 access slave device S1, it can be simplified to a cascaded structure of N to 1 as shown in Figure 2 In this structure, each master device is connected to the shared resource (slave device S1) through its respective switching node. To ensure that all master devices can obtain balanced bandwidth allocation when they are all active simultaneously, the weight of each level of switching node should accumulate the weight values of its downstream nodes as the weight of the main path of the current node. Among them, the data transmission direction is from left to right, the value of req represents the request weight, and rsp represents the response weight. In the data stream along the data transmission direction, the request weights req of each level of switching node need to be accumulated in sequence, while the response weight rsp decreases level by level. Such a weight configuration can ensure that all master devices can obtain balanced bandwidth allocation when they are all active simultaneously, thus maintaining the balance and efficiency of the system.
[0073] However, if only a part of the master devices are active starting from a certain moment, the initialization weight setting originally configured for all active master devices will result in unbalanced bandwidth allocation, where the master devices at the far end will obtain a larger bandwidth than those at the near end. For example, assume that only the master devices at the far end (such as M5 and M6) are active, while the master devices at the near end (such as M1 and M2) are inactive. In this case, since the weight configuration is set based on the situation where all master devices are active, the master devices at the far end may obtain a larger bandwidth share than expected, causing the master devices at the near end to be unable to obtain the due bandwidth resources even when they resume activity.
[0074] In addition, if the weight settings of all cascaded switching nodes in the entire NoC network are consistent and stable, but within a relatively long period of time (e.g., more than 1K cycles), the active states of different master devices will change. Specifically, some master devices may be inactive within the first 0.5K cycles and become active in the subsequent 0.5K cycles. During this period, the bandwidth originally allocated to the inactive master devices will be utilized by other active master devices. This deviation will accumulate over multiple time segments, ultimately leading to unfair bandwidth allocation. At the same time, the initial weight configuration of the NoC system is usually set based on the situation where all master devices are active. However, if not all master devices remain active within a period of more than 1K cycles, the default weight configuration will cause unbalanced bandwidth allocation.
[0075] It can be seen from this that as the time granularity increases, the fixed weight setting will lead to unfair bandwidth allocation in different scenarios, thereby affecting the overall performance. To maintain high performance and fairness, it is necessary to consider dynamically adjusting the weight configuration to adapt to changes in the actual active mode. Therefore, the embodiments of the present invention provide a bandwidth allocation method for a network-on-chip to improve the utilization rate and balance of bandwidth resources, thereby enhancing the overall performance of the system.
[0076] Specifically, Figure 3 is a flowchart of the bandwidth allocation method according to the first embodiment of the present invention. As Figure 3 shown, the bandwidth allocation method according to the embodiments of the present invention includes the following steps:
[0077] Step S110: Obtain the number of acknowledgement signals received by each arbitration request channel within the target cycle.
[0078] In this embodiment, the bandwidth allocation method is executed by an arbiter. In a Network-on-Chip (NoC) and other shared resource environments, an arbiter is used to manage the access rights of multiple master devices to the same slave device. When multiple master devices attempt to access the same slave device simultaneously, the arbiter is responsible for determining which master device can obtain the access right to avoid conflicts and ensure orderly data transmission. For an arbiter with N ports, weight_in represents the input weight. Each master device can send a weight value to the arbiter according to its requirements or priorities, and this weight value reflects the bandwidth share or priority that the master device hopes to obtain. And weight_sum represents one arbitration cycle, that is, the sum of the weights of all master devices within one arbitration cycle, which is the basis for calculating the bandwidth ratio that each master device should obtain during the entire arbitration cycle. The target cycle of the embodiment of the present invention is the current arbitration cycle. The bandwidth allocation method of the embodiment of the present invention starts to be executed after the end of the target cycle.
[0079] Among them, the acknowledgment signal is used to indicate that the arbitration request channel is granted the resource access right. Among them, the arbitration request channel refers to a dedicated path or mechanism for transmitting arbitration information in a shared resource environment. Specifically, each master device corresponds to an arbitration request channel. Taking Figure 2 as an example, for each of the master devices M1 - M6, each has its own arbitration request channel for sending a request signal to the arbiter. At the same time, each arbitration request channel has a counter for counting the number of acknowledgment signals (grant) obtained by this master device during the current weight_sum cycle. Grant is the acknowledgment signal sent by the arbiter, indicating that a certain master device is allowed to use the shared resource. Specifically, at the beginning of each new weight_sum cycle, the timers of all master devices are reset to zero. Each master device sends a request signal to the arbiter through its respective arbitration request channel, indicating a desire to access the shared resource. The arbiter decides which master device can obtain the access right during the current cycle according to a predetermined algorithm (such as fixed priority, round-robin scheduling, etc.) and sends an acknowledgment signal (grant) to that master device. Whenever a certain master device receives a grant signal, its corresponding grant_cnt is incremented by 1. At the end of the target cycle, the arbiter counts the number of grant times obtained by each master device during this cycle, that is, the grant_cnt value of each master device.
[0080] In some embodiments, the specific process of generating the acknowledgment signal is as follows:
[0081] Step S111: The master device sends a request signal to the arbiter through its respective arbitration request channel to request the right to use the resource.
[0082] Among them, the request signal includes information such as channel ID, packet priority, and current weight value.
[0083] Step S112: After the arbiter receives all requests, it makes a decision according to a preset scheduling algorithm to select the arbitration request channel for the current sub-cycle.
[0084] Step S113: Send an acknowledgment signal to the arbitration request channel for the current sub-cycle.
[0085] Specifically, the arbiter selects an arbitration request channel to send a grant signal (i.e., the acknowledgment signal) according to the scheduling algorithm, and the grant_cnt of the selected arbitration request channel is incremented by 1. Check whether the sum of grant_cnt of all arbitration request channels reaches weight_sum. If the condition is met, end the current cycle and re-initialize grant_cnt. In the embodiment of the present invention, each selection of an arbitration request channel and sending a grant signal within a cycle is regarded as a sub-cycle.
[0086] Among them, within each sub-cycle, the manner in which the arbiter selects an arbitration request channel and sends a grant signal can be implemented according to various existing methods. For example: preferentially select the arbitration request channel with the largest weight_deficit to send the grant signal, and update the weight_deficit of this arbitration request channel after each allocation. Among them, the update method is as follows: subtract the weight_sum from the current weight_deficit. If the weight_deficit of a certain arbitration request channel is less than 0, temporarily stop allocating grants to it until the grant times of other arbitration request channels reach balance.
[0087] Step S120: Obtain the input weight values of each arbitration request channel within the target cycle.
[0088] In this embodiment, the input weight value within the target cycle is denoted as weight_in. If the target cycle is the first cycle, the input weight value weight_in can be a pre-allocated value. If the target cycle is not the first cycle, the input weight value weight_in is the weight value output in the previous cycle of the target cycle.
[0089] Step S130: Determine the single-round deviation value of each arbitration request channel within the target cycle according to the input weight value and the number of acknowledgment signals.
[0090] In this embodiment, the difference between the number of acknowledgment signals of each arbitration request channel and the input weight value is used as the single-round deviation value of each arbitration request channel within the target cycle. Among them, the calculation formula of the single-round deviation value is as follows:
[0091] delta_gnt = grant_cnt – weight_in;
[0092] Wherein, delta_gnt represents the single-round deviation value, grant_cnt represents the number of confirmation signals, and weight_in represents the input weight value.
[0093] Step S140: Obtain the cumulative deviation value within the target period according to the single-round deviation value.
[0094] In this embodiment, the cumulative deviation value can track the difference between the actual bandwidth obtained by the master device during long-term operation and its expected bandwidth. In response to the input weight value remaining unchanged, obtain the cumulative deviation value of the previous period, and use the sum of the cumulative deviation value of the previous period and the single-round deviation value within the target period as the cumulative deviation value within the target period; in response to the input weight value changing, clear the cumulative deviation value.
[0095] Specifically, for the same period, if the input weight values of each arbitration request channel do not change throughout the period, obtain the cumulative deviation value of the previous period, and use the sum of the cumulative deviation value of the previous period and the single-round deviation value within the target period as the cumulative deviation value within the target period. If the input weight values of some arbitration request channels change due to reasons such as a change in the number of active master devices, clear the cumulative deviation value. The embodiments of the present invention mainly illustrate the case where the input weight value does not change. Each arbitration request channel has a deficit_gnt_cnt accumulator for accumulating the deviation values of multiple rounds. Among them, the calculation formula for the cumulative deviation value is as follows:
[0096] deficit_gnt_cnt = deficit_gnt_cnt + delta_gnt;
[0097] Wherein, delta_gnt represents the single-round deviation value, deficit_gnt_cnt on the right side of the equal sign represents the cumulative deviation value obtained in the previous period, and deficit_gnt_cnt on the left side of the equal sign represents the cumulative deviation value of the target period.
[0098] In some embodiments, it is necessary to set the upper and lower limits of the cumulative deviation value to avoid overflow. Specifically, in hardware implementation, deficit_gnt_cnt is usually a register with a fixed width (such as 32 bits or 64 bits). If the cumulative deviation value exceeds the maximum range of the register, an overflow will occur, resulting in incorrect results. At the same time, if deficit_gnt_cnt increases or decreases without limit, it may cause the weight adjustment of some master devices to be too extreme and lose fairness. Therefore, a reasonable initial range can be selected according to the system scale and the weight value range. At the same time, during the actual operation process, the upper and lower limits can be dynamically adjusted according to the system load and the cumulative deviation situation.
[0099] Step S150: Allocate the bandwidth of each arbitration request channel in the next cycle according to the cumulative deviation value and the input weight value.
[0100] In this embodiment, the bandwidth of each arbitration request channel in the next cycle is allocated by combining the cumulative deviation value and the input weight value.
[0101] Specifically, Figure 4 is the flowchart of bandwidth allocation according to the embodiment of the present invention. As Figure 4 shown, allocating the bandwidth of each arbitration request channel in the next cycle according to the cumulative deviation value and the input weight value includes the following steps:
[0102] Step S151: Determine the adjustment value.
[0103] In this embodiment, the adjustment value is determined according to a preset step size. In response to the adjustment step size being 1, the adjustment value is determined to be 1. In response to the adjustment step size not being 1, the adjustment value is the absolute value of the cumulative deviation value in the target cycle.
[0104] Step S152: In response to the cumulative deviation value being greater than zero, subtract the adjustment value from the input weight value of the corresponding arbitration request channel to obtain the adjusted weight value.
[0105] In this embodiment, when the cumulative deviation value deficit_gnt_cnt > 0, it means that the corresponding arbitration request channel has obtained more bandwidth than its expected value in the past cycle (i.e., there is a positive deviation). Therefore, it is necessary to reduce its weight to compensate for the needs of other master devices.
[0106] When the step size step = 1, the adjustment formula is as follows:
[0107] weight_deficit = max(1, weight_in - 1)
[0108] Among them, weight_deficit is the adjusted weight value, and weight_in is the input weight value.
[0109] The above formula means to select the larger value between 1 and weight_in - 1, which can ensure that the weight will not be lower than the minimum value of 1.
[0110] When the step size step ≠ 1, the step size of weight adjustment is determined by the absolute value of deficit_gnt_cnt, allowing a faster compensation speed. The adjustment formula is as follows:
[0111] weight_deficit = max(1, weight_in - |deficit_gnt_cnt|)
[0112] Among them, weight_deficit is the adjusted weight value, weight_in is the input weight value, and |deficit_gnt_cnt| represents the absolute value of the cumulative deviation value deficit_gnt_cnt.
[0113] The above formula means to select the larger value between 1 and weight_in - |deficit_gnt_cnt|, which can ensure that the weight will not be lower than the minimum value of 1.
[0114] Step S153: In response to the cumulative deviation value being less than zero, add the adjustment value to the input weight value of the corresponding arbitration request channel to obtain the adjusted weight value.
[0115] In this embodiment, when the cumulative deviation value deficit_gnt_cnt < 0, it means that the corresponding arbitration request channel has obtained less bandwidth than its expected value in the past cycle (i.e., there is a negative deviation). Therefore, it is necessary to increase its weight to compensate for the needs of other master devices.
[0116] When the step size step = 1, the adjustment formula is as follows:
[0117] weight_deficit = min(max_weigh, weight_in + 1)
[0118] Among them, weight_deficit is the adjusted weight value, weight_in is the input weight value, and max_weigh represents the maximum allowable weight value that can be set for a single arbitration request channel.
[0119] The above formula means to select the smaller value between max_weigh and weight_in + 1, which can ensure that the weight will not exceed the maximum value max_weigh.
[0120] When the step size step ≠ 1, the step size of weight adjustment is determined by the absolute value of deficit_gnt_cnt, allowing for a faster compensation speed. The adjustment formula is as follows:
[0121] weight_deficit = min(max_weigh, weight_in + |deficit_gnt_cnt|)
[0122] Among them, weight_deficit is the adjusted weight value, weight_in is the input weight value, |deficit_gnt_cnt| represents the absolute value of the cumulative deviation value deficit_gnt_cnt, and max_weigh represents the maximum allowable weight value set for a single arbitration request channel.
[0123] The above formula means that the smaller value between max_weigh and weight_in + |deficit_gnt_cnt| is selected, which can ensure that the weight does not exceed the maximum value max_weigh.
[0124] Step S154: In response to the cumulative deviation value being equal to zero, use the input weight value of the corresponding arbitration request channel as the adjusted weight value.
[0125] In this embodiment, when the cumulative deviation value deficit_gnt_cnt = 0, it means that the bandwidth obtained by the corresponding arbitration request channel in the past cycle is the same as the expected value (i.e., there is no deviation). Therefore, the weight value can be kept unchanged. At this time, the adjustment formula is as follows:
[0126] weight_deficit = weight_in
[0127] Among them, weight_deficit is the adjusted weight value, and weight_in is the input weight value.
[0128] Step S155: Allocate the bandwidth of each arbitration request channel in the next cycle according to the adjusted weight values of each arbitration request channel.
[0129] In this embodiment, after obtaining the adjusted weight values corresponding to all arbitration request channels, the arbiter will accumulate the weight_deficit values of all arbitration request channels to obtain the total weight of the next cycle. The calculation formula of the total weight is as follows:
[0130]
[0131] Among them, weight_sum is the total weight, weight_deficit_i is the adjusted weight value corresponding to the i-th arbitration request channel, and N is the total number of arbitration request channels.
[0132] According to the proportion of the weight_deficit value of each arbitration request channel in the total weight, allocate the bandwidth of the current round. Specifically, the bandwidth ratio allocated to each arbitration request channel is the proportion of its weight_deficit value in the total weight.
[0133] In the embodiment of the present invention, the weights (weight_deficit) of each master device are dynamically adjusted through the cumulative deviation value of deficit_gnt_cnt to ensure the fairness of bandwidth allocation during long-term operation. When step = 1, the adjustment is relatively gentle; when step ≠ 1, a faster compensation speed is allowed. At the same time, the total weight (weight_sum) is calculated using the adjusted weight values, and the bandwidth is allocated according to the weight ratio to ensure the balance and efficiency of the overall system performance. The weight adjustment range is limited by upper and lower limits to prevent some master devices from over-occupying or completely losing bandwidth due to extreme deviations. The selection of the step parameter can be flexibly adjusted according to system requirements. For example, in a scenario with frequent load changes, a larger step value can be selected to accelerate the convergence speed; while in a scenario with relatively stable load, a smaller step value can be selected to maintain stability.
[0134] In a specific example, assume that the arbiter has three ports, denoted as Port_A, Port_B, and Port_C respectively. In the initial state, the input weight values weight_in are a, b, and c respectively, and a > b > c > 1.
[0135] In the first cycle, the workflow and parameter status are as follows:
[0136] Input weight value weight_in:
[0137] weight_in_A = a;
[0138] weight_in_B = b;
[0139] weight_in_C = c;
[0140] Suppose the bandwidth is fairly allocated in the first cycle, that is, Port_A, Port_B, and Port_C each receive a, b, and c arbitrations, and the grant_cnt obtained by each port is equal to its input weight value, that is:
[0141] grant_cnt_A = a;
[0142] grant_cnt_B = b;
[0143] grant_cnt_C = c;
[0144] Calculate the single - round deviation value delta_gnt_cnt:
[0145] delta_gnt_A = a - a = 0;
[0146] delta_gnt_B = b - b = 0;
[0147] delta_gnt_C = c - c = 0;
[0148] At the beginning of the first cycle, the initial cumulative deviation values deficit_gnt_cnt_A, deficit_gnt_cnt_B, and deficit_gnt_cnt_C of each port are all 0. Therefore, sum the single - round deviation value and the initial cumulative deviation value to obtain the cumulative deviation value delta_gnt_cnt of this cycle:
[0149] deficit_gnt_cnt_A = 0;
[0150] deficit_gnt_cnt_B = 0;
[0151] deficit_gnt_cnt_C = 0;
[0152] Adjust the weights:
[0153] According to the adjustment rule in step S150, when deficit_gnt_cnt = 0, keep the current weight unchanged:
[0154] weight_deficit_A = a;
[0155] weight_deficit_B = b;
[0156] weight_deficit_C = c;
[0157] Calculate the weight_sum of the next cycle:
[0158] weight_sum = a + b + c.
[0159] In the second cycle, assume that there are no requests from Port_A and Port_B, and only Port_C is always valid. The workflow and parameter status are as follows:
[0160] The input weight value weight_in is the adjusted weight value output in the previous cycle, that is:
[0161] weight_in_A = a;
[0162] weight_in_B = b;
[0163] weight_in_C = c;
[0164] Since there are no requests from Port_A and Port_B, all bandwidth is allocated to Port_C, that is:
[0165] grant_cnt_A = 0;
[0166] grant_cnt_B = 0;
[0167] grant_cnt_C = a + b + c;
[0168] Calculate the single-round deviation value delta_gnt_cnt:
[0169] delta_gnt_A = 0 - a = -a;
[0170] delta_gnt_B = 0 - b = -b;
[0171] delta_gnt_C = a + b + c - c = a + b;
[0172] Sum the single-round deviation value with the cumulative deviation value of the previous cycle to obtain the cumulative deviation value delta_gnt_cnt of this cycle:
[0173] deficit_gnt_cnt_A = 0 + (-a) = -a;
[0174] deficit_gnt_cnt_B = 0 + (-b) = -b;
[0175] deficit_gnt_cnt_C = 0 + (a + b) = a + b;
[0176] Adjust the weights:
[0177] According to the adjustment rule in step S150, assume step = 1:
[0178] For Port_A, deficit_gnt_cnt_A = -a < 0, so:
[0179] weight_deficit_A = min(max_weight, weight_in_A + 1 = a + 1;
[0180] For Port_B, deficit_gnt_cnt_A = -b < 0, so:
[0181] weight_deficit_B = min(max_weight, weight_in_B + 1 = b + 1;
[0182] For Port_C, deficit_gnt_cnt_C = a + b > 0, so:
[0183] weight_deficit_C = max(1, weight_in_C - 1) = c - 1;
[0184] Calculate the weight_sum for the next cycle:
[0185] weight_sum = a + 1 + b + 1 + c - 1.
[0186] Assume that in a long period of time afterwards, Port_A, Port_B, and Port_C are all always valid. According to the above dynamic adjustment mechanism, the system will gradually return to the initial state. Specifically:
[0187] After the end of the second cycle, after another b cycles (i.e., the 2 + b-th cycle), the cumulative deviation value deficit_gnt_cnt is:
[0188] deficit_gnt_cnt_A = -a + b;
[0189] deficit_gnt_cnt_B = 0;
[0190] deficit_gnt_cnt_C = a;
[0191] The adjusted weight value weight_deficit output is:
[0192] weight_deficit_A = a + 1;
[0193] weight_deficit_B = b;
[0194] weight_deficit_C = c - 1.
[0195] After the end of the 2 + b-th cycle, after another -(-a + b) cycles (i.e., the 2 + a-th cycle), the cumulative deviation value deficit_gnt_cnt is:
[0196] deficit_gnt_cnt_A = 0;
[0197] deficit_gnt_cnt_B = 0;
[0198] deficit_gnt_cnt_C = b;
[0199] The adjusted weight value weight_deficit output is:
[0200] weight_deficit_A = a;
[0201] weight_deficit_B = b;
[0202] weight_deficit_C = c - 1.
[0203] After the end of the (2 + a)-th cycle, and after another b cycles (i.e., the (2 + a + b)-th cycle), the cumulative deviation value deficit_gnt_cnt is:
[0204] deficit_gnt_cnt_A = 0;
[0205] deficit_gnt_cnt_B = 0;
[0206] deficit_gnt_cnt_C = 0;
[0207] The adjusted weight value weight_deficit output is:
[0208] weight_deficit_A = a;
[0209] weight_deficit_B = b;
[0210] weight_deficit_C = c.
[0211] At this time, the arbitration times obtained by each Port within these multiple cycles are:
[0212] Port_A: a + 0 + (a + 1) * b + (a + 1) * (-(-a + b)) + a * b = a * (1 + a + 1 + b);
[0213] Port_B: b + 0 + (b + 1) * b + b * (-(-a + b)) + b * b = b * (1 + a + 1 + b);
[0214] Port_C: c + (a + b + c) + (c - 1) * b + (c - 1) * (-(-a + b)) + (c - 1) * b = c * (1 + a + 1 + b);
[0215] As can be seen from the above, within (1 + a + 1 + b) cycle periods, the arbitration times ratio of Port_A, Port_B, and Port_C is a:b:c, which is the same as the ratio with weight_in, that is, the bandwidth allocation is reasonable during this period. That is to say, differential compensation can be achieved by adjusting the weight to obtain a more fair arbitration result. Thus, through the DWC (Deficit Weight Compensation) mechanism, when the number of active masters remains unchanged and the input weights do not change, DWC ensures that all active masters can obtain the bandwidth matching their weight settings during this period.
[0216] In the embodiment of the present invention, by obtaining the number of acknowledgement signals received by each arbitration request channel during the target period and the input weight value of each arbitration request channel during the target period, determining the single-round deviation value of each arbitration request channel during the target period according to the input weight value and the number of acknowledgement signals, obtaining the cumulative deviation value according to the single-round deviation value, and allocating the bandwidth of each arbitration request channel in the next period according to the cumulative deviation value and the input weight value. Thus, the utilization rate and balance of bandwidth resources can be improved, and further the overall performance of the system can be improved.
[0217] When the number of active masters decreases, that is, some masters complete their tasks in advance and enter the idle state (IDLE), while the remaining active masters are in the trailing scenario. If the weights set when all masters are active are still used, it will cause the remaining active masters to not obtain fair bandwidth allocation, thus resulting in a decline in overall performance. Thus, the embodiment of the present invention provides a bandwidth allocation method to solve the above problems.
[0218] Figure 5 It is a flowchart of the bandwidth allocation method of the second embodiment of the present invention. Figure 5 The shown bandwidth allocation method is executed by an arbiter, and specifically includes the following steps:
[0219] Step S201, the time window starts.
[0220] In this embodiment, a relatively long time window is set, and the value of this time window is set to be much larger than the fixed value of the single-round arbitration period (weight_wum) in the above first embodiment. For example, the time window can be weight_sum * 16, which ensures that the statistical results have sufficient representativeness. When the time window starts, step S202 is executed.
[0221] Step S202, a data packet is received.
[0222] In this embodiment, at the start of the time window, packets sent by each master device are received. Among them, the packets transmitted by each master device on the bus all contain the device identifier of the corresponding master device, and the device identifier is used to represent a unique master device.
[0223] After receiving the packet, step S203 is entered. If no packet is received, wait continuously until a packet is received or the time window ends.
[0224] Step S203: It is a packet of mster_x.
[0225] In this embodiment, after each packet is received, the packet is parsed to obtain the device identifier therein, the master device corresponding to the packet is determined according to the device identifier, and it is detected whether the packet is a packet of mster_x. Among them, mster_x indicates that the packet is a packet of master device x. Among them, x = 1, 2,..., N. N is the total number of master devices.
[0226] Step S204: mster_x_counter ≥ threshold.
[0227] In this embodiment, if the packet is a packet of mster_x, mster_x_counter is incremented by one to obtain the number of packets of mster_x at the current time point, and it is detected whether mster_x_counter is greater than or equal to the predetermined threshold value threshold. Among them, the predetermined threshold value threshold is a pre-set value.
[0228] If mster_x_counter ≥ threshold, step S205 is entered.
[0229] If mster_x_counter < threshold, step S206 is entered.
[0230] Step S205: mster_x_active = 1.
[0231] In this embodiment, in response to the number of packets being greater than or equal to the predetermined threshold, it is determined that the state of the master device is an active state. That is, if mster_x_counter ≥ threshold, then mster_x_active = 1. Among them, mster_x_active represents the state of master device mster_x. When mster_x_active = 1, it means the state is an active state. When mster_x_active = 0, it means the state is an inactive state.
[0232] Step S206: mster_x_active = 0.
[0233] In this embodiment, in response to the number of data packets being less than a predetermined threshold, the state of the master device is determined to be an inactive state. That is, if mster_x_counter < threshold, then mster_x_active = 0.
[0234] Step S207: The time window ends.
[0235] In this embodiment, after step S205 or S206, it is detected whether the time window ends.
[0236] If the time window ends, step S208 is entered.
[0237] If the time window does not end, return to step S202 to continue detecting data packets.
[0238] Step S208: Output the states of each master device.
[0239] In this embodiment, after the time window ends, the states of each master device are output.
[0240] Step S209: Obtain the master devices with an active state.
[0241] Step S210: Look up the predetermined weight values in a predetermined table.
[0242] In this embodiment, the predetermined table includes the predetermined weight values of each master device.
[0243] Figure 6 It is a schematic diagram of the table of the embodiment of the present invention. As Figure 6 shown, the table includes status, number of data packets, master device, and predetermined weight value. Among them, the number of data packets is the number of data packets corresponding to each master device within the time window obtained when the time window ends, the status is the active state and inactive state of the master device determined according to the number of data packets, where 1 represents the active state and 0 represents the inactive state. The predetermined weight value is a pre-set value.
[0244] In Figure 6 the shown embodiment, assuming the predetermined threshold is 4, the master devices with an active state obtained include M2 and M3. Then, looking up the predetermined weight values of the master devices with an active state in the predetermined table includes: the predetermined weight values of M2 and M3 are 3 and 4 respectively.
[0245] Step S211: Allocate bandwidth according to the predetermined weight values.
[0246] In this embodiment, the predetermined weight values of all active master devices are accumulated to obtain the total weight, and bandwidth is allocated to each active master device according to the proportion of the predetermined weight value of each master device in the total weight. Specifically, the bandwidth ratio allocated to each active master device is the ratio of its predetermined weight value to the total weight.
[0247] In the embodiment of the present invention, by determining a time window, the number of data packets of each master device within the time window is obtained. In response to the number of data packets being greater than or equal to a predetermined threshold, the state of the master device is determined to be an active state. In response to the number of data packets being less than the predetermined threshold, the state of the master device is determined to be an inactive state. The master devices with an active state are obtained, and the predetermined weight values of the active master devices are found in a predetermined table, and the bandwidth of each master device is allocated according to the predetermined weight values. Thus, through the AWS (Adaptive Weight Setting) mechanism, the fairness of bandwidth allocation under a larger time granularity is achieved, enabling the NoC system to automatically adapt to more complex and variable working scenarios. This adaptability enhances the flexibility and robustness of the system, ensuring high-performance performance.
[0248] Furthermore, the embodiment of the present invention can also combine the DWC mechanism of the first embodiment and the AWS mechanism of the second embodiment. When the number of active masters remains unchanged and the input weights do not change, DWC is used to ensure that all active masters can obtain bandwidth matching their weight settings during this period. The AWS mechanism focuses on optimizing bandwidth allocation over a longer time span, automatically adjusting the weights of each port according to real-time traffic patterns to adapt to changes in performance requirements in dynamic scenarios.
[0249] Furthermore, the embodiment of the present invention also provides an arbiter. An arbiter is a hardware or software component used to manage the access of multiple requesters to shared resources. It ensures that these requesters can access limited resources, such as system buses, memory controllers, or other key hardware modules, in an orderly and fair manner, avoiding conflicts and improving efficiency. The arbiter is particularly important in a multi-master device system because it determines which device can use the shared resources during a specific time period.
[0250] The arbiter can be set in the bus system, in front of the memory controller, in the I / O subsystem, or in front of other shared resources. When multiple master devices (such as CPU cores, DMA controllers, etc.) need to access the shared bus, the arbiter can be located at the bus interface to determine which master device can obtain the bus usage right. In a multi-processor or multi-core system, multiple processors may simultaneously attempt to access the same memory. At this time, the arbiter is located in front of the memory controller and is responsible for coordinating these access requests. For cases where external devices or shared I / O channels need to be accessed, the arbiter can be used to manage the priority and order between different I / O requests. For resources that need to be shared by multiple entities and cannot be used by multiple entities simultaneously, an arbiter can be set on their access path to manage the access rights.
[0251] In some embodiments, the arbiter includes an input circuit, a logic circuit, and an output circuit.
[0252] Among them, the input circuit is used to receive the request signal sent by the master device. Specifically, each master device can send a request signal to the arbiter through its dedicated request signal line.
[0253] The logic circuit is used to determine which master device obtains the resource usage right based on a predetermined algorithm or strategy (such as fixed priority, polling, weighted fair queuing, etc.), and execute the bandwidth allocation method of the embodiments of the present invention.
[0254] The output circuit is used to notify the selected master device that it has obtained the resource usage right through an acknowledgment signal.
[0255] Figure 7 It is a schematic diagram of the bandwidth allocation device of the embodiments of the present invention. As Figure 7 shown, the bandwidth allocation device of the embodiments of the present invention includes a quantity confirmation unit 71, an input weight value acquisition unit 72, a single-round deviation value determination unit 73, an accumulated deviation value acquisition unit 74, and an allocation unit 75. Among them, the quantity confirmation unit 71 is used to obtain the quantity of acknowledgment signals received by each arbitration request channel within the target period, and the acknowledgment signal is used to represent that the arbitration request channel is granted the resource access right. The input weight value acquisition unit 72 is used to obtain the input weight value of each arbitration request channel within the target period. The single-round deviation value determination unit 73 is used to determine the single-round deviation value of each arbitration request channel within the target period according to the input weight value and the quantity of the acknowledgment signal. The accumulated deviation value acquisition unit 74 is used to obtain the accumulated deviation value within the target period according to the single-round deviation value. The allocation unit 75 is used to allocate the bandwidth of each arbitration request channel in the next period according to the accumulated deviation value and the input weight value.
[0256] In the embodiment of the present invention, the number of confirmation signals received by each arbitration request channel in the target period and the input weight value of each arbitration request channel in the target period are obtained. The single-round deviation value of each arbitration request channel in the target period is determined according to the input weight value and the number of confirmation signals. The cumulative deviation value is obtained according to the single-round deviation value, and the bandwidth of each arbitration request channel in the next period is allocated according to the cumulative deviation value and the input weight value. Thus, the utilization rate and balance of bandwidth resources can be improved, and further the overall performance of the system can be improved.
[0257] The foregoing are only the preferred embodiments of the present application and are not intended to limit the present application. For those skilled in the art, various modifications and changes can be made to the present application. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present application shall be included within the protection scope of the present application.
Claims
1. A bandwidth allocation method for a network-on-chip, characterized in that The on-chip network includes at least one cascaded structure, and the cascaded structure includes a plurality of cascaded arbitration request channels. The method includes: Obtaining the number of acknowledgement signals received by each arbitration request channel during a target period, where the acknowledgement signal is used to indicate that the arbitration request channel is granted resource access permission; Obtaining the input weight value of each arbitration request channel during the target period; Determining the single-round deviation value of each arbitration request channel during the target period according to the input weight value and the number of acknowledgement signals; Obtaining the cumulative deviation value during the target period according to the single-round deviation value; Allocating the bandwidth of each arbitration request channel in the next period according to the cumulative deviation value and the input weight value.
2. The method according to claim 1, characterized in that, The determining the single-round deviation value of each arbitration request channel during the target period according to the input weight value and the number of acknowledgement signals includes: Taking the difference between the number of acknowledgement signals of each arbitration request channel and the input weight value as the single-round deviation value of each arbitration request channel during the target period.
3. The method according to claim 1, wherein The obtaining the cumulative deviation value during the target period according to the single-round deviation value includes: In response to the input weight value not changing, obtaining the cumulative deviation value of the previous period, and taking the sum of the cumulative deviation value of the previous period and the single-round deviation value during the target period as the cumulative deviation value during the target period; In response to the input weight value changing, clearing the cumulative deviation value.
4. The method according to claim 1, wherein The allocating the bandwidth of each arbitration request channel in the next period according to the cumulative deviation value and the input weight value includes: Determining an adjustment value; In response to the cumulative deviation value being greater than zero, subtracting the adjustment value from the input weight value of the corresponding arbitration request channel to obtain an adjusted weight value; In response to the cumulative deviation value being less than zero, adding the adjustment value to the input weight value of the corresponding arbitration request channel to obtain an adjusted weight value; In response to the cumulative deviation value being equal to zero, taking the input weight value of the corresponding arbitration request channel as the adjusted weight value.
5. The method according to claim 4, wherein The allocating the bandwidth of each arbitration request channel in the next period according to the cumulative deviation value and the input weight value further includes: Allocating the bandwidth of each arbitration request channel in the next period according to the adjusted weight values of each arbitration request channel.
6. The method according to claim 4, wherein The determining the adjustment value includes: In response to the adjustment step being 1, determining the adjustment value to be 1; In response to the adjustment step not being 1, the adjustment value is the absolute value of the cumulative deviation value during the target period.
7. The method according to claim 1, wherein The method further includes: Determining a time window; Obtaining the number of data packets of each master device within the time window; Determining the state of each master device according to the number of data packets; Allocating the bandwidth of each master device according to the state.
8. The method according to claim 7, characterized in that, The determining the state of each master device according to the number of data packets includes: In response to the number of data packets being greater than or equal to a predetermined threshold, determining the state of the master device to be an active state; In response to the number of data packets being less than the predetermined threshold, determining the state of the master device to be an inactive state.
9. The method according to claim 7, wherein The allocating the bandwidth of each master device according to the state includes: Obtaining the master devices with an active state; Find the predetermined weight value of the active master device in a predetermined table; Allocate the bandwidth of each master device according to the predetermined weight value.
10. A bandwidth allocation device for a network-on-chip, characterized in that, The on-chip network includes at least one cascaded structure, and the cascaded structure includes a plurality of cascaded arbitration request channels. The device includes: A quantity confirmation unit, configured to obtain the quantity of confirmation signals received by each arbitration request channel in a target period, where the confirmation signal is used to indicate that the arbitration request channel is granted the resource access right; An input weight value acquisition unit, configured to obtain the input weight value of each arbitration request channel in the target period; A single-round deviation value determination unit, configured to determine the single-round deviation value of each arbitration request channel in the target period according to the input weight value and the quantity of the confirmation signals; An accumulated deviation value acquisition unit, configured to obtain the accumulated deviation value in the target period according to the single-round deviation value; An allocation unit, configured to allocate the bandwidth of each arbitration request channel in the next period according to the accumulated deviation value and the input weight value.
11. An arbiter, characterized in that, The arbiter is used to implement the method according to any one of claims 1-9.
Citation Information
Cited By
Weight arbiter based on remapping and arbitration method and chip thereof
CN121636395A