Three-level arbitration circuit in multi-service scene
Through the design of the three-level arbitration circuit, combined with polling, fixed priority and weighted polling arbitration, the problem that traditional arbitration circuit cannot adapt to resource allocation in multiple business scenarios is solved, and efficient, fair allocation and optimal bandwidth allocation of resources are achieved.
Patent Information
- Application Number
- CN202411106423.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-08-13
- Publication Date
- 2024-12-10
AI Technical Summary
Traditional arbitration circuit design cannot adapt to resource allocation needs in multiple business scenarios and cannot achieve efficient, fair and flexible resource sharing.
A three-level arbitration circuit is designed, combining a polling arbitrator, a fixed priority arbitrator and a weighted polling arbitrator. Through the progressive processing of the three-level arbitration module, efficient, fair and flexible allocation of resources is achieved. Specifically, it includes queue identification module, first-level arbitration module, second-level arbitration module, third-level arbitration module and monitoring feedback module. Resource arbitration is carried out using mixed numbering, polling, fixed priority and weighted polling arbitration methods.
The optimal bandwidth allocation of resources in multiple business scenarios is achieved, ensuring the efficiency and fairness of resource allocation and adapting to different business needs.
Smart Images

Figure CN119105978A_ABST
Abstract
Description
Technical Field
[0001] The present invention belongs to the field of integrated circuit digital design, and in particular to a resource allocation circuit design for multiple business scenarios. Background Art
[0002] In current electronic systems, resource sharing in multi-business scenarios has become the norm, and how to efficiently and fairly allocate shared resources has become a technical challenge. Traditional arbitration circuit designs often adopt a single arbitration strategy, which cannot adapt to the needs of different business scenarios. Therefore, this patent proposes a three-level arbitration circuit design suitable for multi-business scenarios. This design combines the advantages of polling arbitrators, fixed priority arbitrators, and weighted polling arbitrators, and achieves efficient, fair, and flexible resource sharing through progressive processing of three-level arbitration modules.
[0003] Many documents currently provide arbitration circuit designs, for example, Chinese patent document CN101887382B dynamic priority arbitration method and device, patent CN107193761A queue priority arbitration method and device, patent CN102467474A arbitration circuit and control method thereof, patent CN105530207A switch port arbitration circuit and method supporting multiple types of data frames, etc. Compared with these patents, this patent adopts a three-level arbitration circuit, and adopts a polling arbitration algorithm through the first-level arbitration module, and the second-level arbitration module adopts a fixed priority arbitration combined with a polling arbitration method to arbitrate requests from different queue groups. The third-level arbitration module adopts a weighted polling arbitration method, integrating the characteristics of polling arbitration, fixed priority arbitration and weighted polling arbitration methods, to achieve efficient management and allocation of shared resources in multiple business scenarios and achieve optimal bandwidth allocation. Summary of the invention
[0004] The purpose of the present invention is to provide a three-level arbitration circuit design suitable for multi-business scenario requirements, the arbitration circuit includes a queue identification module, a first-level arbitration module, a second-level arbitration module, a third-level arbitration module, a monitoring feedback module and a configuration module.
[0005] The queue identification module identifies the queue request from the source, obtains the function, access target and other attribute information of the queue request, and then groups and numbers the queue request based on this information, and updates the queue request based on the queue request authorization information fed back by the three-level arbitration circuit. The numbering of the queue request is a mixed numbering of the combination of "access target (VT) + queue group (QG) + queue number (AQ)". The access target represents the target resource number accessed by the queue request; the queue group is a collection of queue requests, grouped by business function (FUNC); the queue number represents the number of the queue request within the queue group.
[0006] The first-level arbitration module is connected to the queue identification module and receives the queue requests identified by the queue identification module. The first-level arbitration module is composed of multiple polling arbitrators, and the number of polling arbitrators is consistent with the number of queue groups. The first-level arbitration module connects queue requests with the same queue group number to the same polling arbitrator. The polling arbitrator responds to the queue requests in sequence according to the queue number and outputs these queue requests to the second-level arbitration module.
[0007] The secondary arbitration module uses fixed priority arbitration combined with polling arbitration to arbitrate input queue requests. The secondary arbitration module assigns queue requests with the same access target number to the same queue group arbitrator; the secondary arbitration module contains multiple queue group arbitrators, and the number of queue group arbitrators is consistent with the number of access targets.
[0008] The queue group arbitrator consists of a fixed priority arbitrator and a polling arbitrator. The queue group arbitrator assigns queue requests with the same business function number to the same fixed priority arbitrator. The fixed priority arbitrator performs priority arbitration according to the queue group number of the queue request, and outputs the arbitrated queue requests with different business function numbers to the polling arbitrator for arbitration; the polling arbitrator responds to the queue requests in a cyclic manner according to the order of the business function numbers, and outputs the arbitrated queue requests to the three-level arbitration module.
[0009] The three-level arbitration module uses weighted round-robin arbitration to arbitrate input queue requests. The three-level arbitration module receives the queue request weight value from the configuration module, and determines the frequency at which the input queue request is authorized based on the weight value of each queue request. The three-level arbitration module responds to the queue request in a loop according to the access target number sequence of the queue request; the three-level arbitration module outputs the arbitrated queue to the corresponding destination based on the access target number of the authorized queue request, and feeds back the arbitration result to the queue identification module.
[0010] The monitoring feedback module sets a programmable evaluation period register, counts the authorization frequency of each access target within the evaluation period, calculates the actual bandwidth used by each access target, and outputs the result to the configuration module;
[0011] The configuration module sets the pre-allocated bandwidth and weight value for each access target of the three-level arbitration module according to the bandwidth requirements of the queue request access target; at the same time, the actual used bandwidth of each access target is compared with the pre-allocated bandwidth, and the weight value is adjusted in real time according to the bandwidth utilization rate of each access target, and the weight value is output to the three-level arbitration module. BRIEF DESCRIPTION OF THE DRAWINGS
[0012] Figure 1 Three-level arbitration circuit structure.
[0013] Figure 2 Queue group arbitrator. DETAILED DESCRIPTION
[0014] The present invention is described in detail below with reference to the accompanying drawings and embodiments.
[0015] This embodiment designs a three-level arbitrator suitable for multi-service scenarios, supports 16 access targets, 8 queue groups, 8 queues in the queue group, and supports 4 types of service functions;
[0016] Figure 1 The present invention is a three-level arbitration circuit structure diagram supporting multiple business scenarios. The circuit includes a queue identification module, a first-level arbitration module, a second-level arbitration module, a third-level arbitration module and a monitoring feedback module.
[0017] The queue identification module identifies the queue request from the source, obtains the function, access target and other attribute information of the queue request, and then groups and numbers the queue request based on this information, and updates the queue request based on the queue request authorization information fed back by the three-level arbitration circuit. The queue request number is a mixed numbering method using the combination of "access target (VT) + queue group (QG) + queue number (AQ)". The access target represents the target resource number accessed by the queue request; the queue group is a collection of queue requests, grouped by business function (FUNC); the queue number represents the number of the queue request within the queue group; each queue request is identified by VTp.QGm.AQn. The queue identification module sets the configurable business function register to set the business function corresponding to the QG number of the queue request.
[0018] The first-level arbitration module is connected to the queue identification module and receives the queue request identified by the queue identification module; this module consists of 128 polling arbiters. Each polling arbiter corresponds to a queue group, responding to queue requests in order from low to high queue numbers, outputting AQ0, AQ1, ..., AQ15 in sequence, and then restarting the cycle. The first-level arbitration module arbitrates 128 queues;
[0019] The secondary arbitration module is connected to the primary arbitration module and uses fixed priority arbitration combined with polling arbitration to arbitrate input queue requests. The secondary arbitration module classifies the input queue requests according to the access target number and assigns queue requests with the same access target number to the same queue group arbitrator. The secondary arbitration module contains 16 queue group arbitrators.
[0020] Figure 2It is a structural diagram of a queue group arbitrator of an embodiment of the present invention, and each queue group arbitrator is composed of 4 fixed priority arbitrators and 1 polling arbitrator. The queue group arbitrator classifies the input queues according to the service function number of the queue group, and then outputs the queue requests with the same service function number to the same fixed priority arbitrator. The fixed priority arbitrator performs priority arbitration according to the queue group number of the queue request, and outputs the queue with the highest priority first. The smaller the queue group number, the higher the priority. The arbitration response output order is QG0, QG1, ..., QG7; the fixed priority arbitrator outputs the arbitrated queue request to the polling arbitrator for arbitration. The polling arbitrator responds to the queue request in order from low to high according to the service function number. The arbitration order is FUNC0, FUNC1, FUNC2, FUNC3.
[0021] The secondary arbitration module arbitrates 16 queue requests with different access target numbers, and outputs these queue requests to the tertiary arbitration module.
[0022] The three-level arbitration module uses weighted polling arbitration to arbitrate input queue requests. The three-level arbitration module arbitrates sequentially from small to large according to the access target number of the queue request, and repeats the cycle; the input weight value of each queue request determines the number of times the input queue request is authorized in a single cycle; each queue request is configured with a weight counter, and the initial value of the weight counter is determined by the input weight value. When the queue request VT0 is authorized, the weight counter is reduced by 1. When the weight counter is reduced to 0, the arbitrator switches to the next queue request VT1, and the weight counter corresponding to the queue request VT0 reloads the weight value; the three-level arbitration module outputs the queue request to the corresponding destination according to the access target number of the authorized queue, and feeds back the arbitration result to the queue identification module.
[0023] The monitoring feedback module sets a programmable evaluation period register, counts the number of authorizations for each access target within the evaluation period, calculates the actual bandwidth used for each access target, and outputs the result to the configuration module;
[0024] The configuration module sets the weight value of the queue request input to the three-level arbitration module. The configuration module configures the pre-allocated bandwidth and weight value for each access target, compares the actual bandwidth used by each access target with the pre-allocated bandwidth, and reduces the weight of the queue request with the access target number when the access target uses more bandwidth than the pre-allocated bandwidth. When the access target uses less bandwidth than the pre-allocated bandwidth, the weight value of the queue request with the access target number is increased; and the weight value is output to the three-level arbitration module.
Claims
1. A three-level arbitration circuit in a multi-service scenario, It is characterized in that It includes a queue identification module, a primary arbitration module, a secondary arbitration module, a tertiary arbitration module, a monitoring feedback module and a configuration module; The queue identification module identifies the queue request from the source, obtains the attribute information of the queue request such as function and access target, and then groups and numbers the queue requests according to the information, and updates the queue request according to the queue request authorization information fed back by the three-level arbitration circuit; The first-level arbitration module is connected to the queue identification module and receives the queue request identified by the queue identification module; the first-level arbitration module is composed of multiple polling arbitrators, and the number of polling arbitrators is consistent with the number of queue groups; the first-level arbitration module connects the queue requests with the same queue group number to the same polling arbitrator I; the polling arbitrator I responds to the queue requests in sequence according to the queue number, and outputs these queue requests to the second-level arbitration module; The secondary arbitration module contains multiple queue group arbitrators, and the number of queue group arbitrators is consistent with the number of access targets; the secondary arbitration module assigns queue requests with the same access target number to the same queue group arbitrator; the queue group arbitrator consists of a fixed priority arbitrator and a polling arbitrator II. The queue group arbitrator assigns queue requests with the same business function number to the same fixed priority arbitrator, and the fixed priority arbitrator performs priority arbitration according to the queue group number of the queue request, and outputs the arbitrated queue requests with different business function numbers to the polling arbitrator II for arbitration; the polling arbitrator II responds to the queue requests in a cyclic manner in the order of the business function numbers, and outputs the arbitrated queue requests to the tertiary arbitration module; The three-level arbitration module uses a weighted polling arbitration method to arbitrate input queue requests; the three-level arbitration module receives the queue request weight value from the configuration module, and determines the frequency at which the input queue request is authorized according to the weight value of each queue request; the three-level arbitration module responds to the queue request in a loop according to the access target number sequence of the queue request; the three-level arbitration module outputs the arbitrated queue to the corresponding destination according to the access target number of the authorized queue request, and feeds back the arbitration result to the queue identification module; The monitoring feedback module sets a programmable evaluation period register, counts the authorization frequency of each access target within the evaluation period, calculates the actual bandwidth used by each access target, and outputs the result to the configuration module; The configuration module sets the pre-allocated bandwidth and weight value for each access target of the three-level arbitration module according to the bandwidth requirements of the queue request access target; at the same time, the actual used bandwidth of each access target is compared with the pre-allocated bandwidth, and the weight value is adjusted in real time according to the bandwidth utilization rate of each access target, and the weight value is output to the three-level arbitration module.
2. The three-level arbitration circuit in a multi-service scenario according to claim 1, It is characterized in that The queue request is numbered by a combination of "access target + queue group + queue number". The access target represents the target resource number accessed by the queue request; the queue group is a collection of queue requests, grouped by business function; the queue number represents the number of the queue request within the queue group.
