CN111666139A - Scheduling method and device for MIMO multi-service-class data queue - Google Patents

Scheduling method and device for MIMO multi-service-class data queue Download PDF

Info

Publication number
CN111666139A
CN111666139A CN202010457370.3A CN202010457370A CN111666139A CN 111666139 A CN111666139 A CN 111666139A CN 202010457370 A CN202010457370 A CN 202010457370A CN 111666139 A CN111666139 A CN 111666139A
Authority
CN
China
Prior art keywords
data
token
input
output
arbitration
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010457370.3A
Other languages
Chinese (zh)
Other versions
CN111666139B (en
Inventor
徐金波
常俊胜
庞征斌
张建民
董德尊
黎渊
罗章
欧洋
孙岩
熊泽宇
王子聪
翦杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN202010457370.3A priority Critical patent/CN111666139B/en
Publication of CN111666139A publication Critical patent/CN111666139A/en
Application granted granted Critical
Publication of CN111666139B publication Critical patent/CN111666139B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/484Precedence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Bus Control (AREA)

Abstract

The invention discloses a scheduling method and a device of a multi-input multi-output multi-service level data queue, the method of the invention adopts a random distribution mode or a differentiated service quality mode, all input sources with data requests request to a round-robin arbiter to request to use an output channel, the round-robin arbiter arbitrates the output channel based on an arbitration token round-robin rule, and the output channel in an idle state in the random distribution mode receives the input data of the input sources in turn; all input sources and output channels under the differentiated service quality mode are divided into different priorities, so that a certain group of output channels only receive data of the input sources with the corresponding priorities. The invention can realize the random distribution of the data flow of a plurality of input data sources on a plurality of output channels, can realize the task distribution of service quality differentiation on a plurality of output channels according to the difference of the priority of the input data, has lower hardware realization cost, and is particularly suitable for the logic realization of an ASIC chip.

Description

Scheduling method and device for MIMO multi-service-class data queue
Technical Field
The invention relates to an on-chip data transmission technology in the field of high-performance computing, in particular to a scheduling method and a scheduling device for a multi-input multi-output multi-service-class data queue, which are used for scientifically scheduling data streams of a plurality of input data sources according to the resource occupation conditions of a plurality of output queues to realize fair and efficient task distribution supporting multiple service classes.
Background
With the increasing computing speed of High Performance Computer Systems (HPCs) from the billions level (P-level) to the billions level (E-level), the amount of data required to be processed by microprocessor chips and interconnected network chips has increased exponentially. Typically, each asic (application specific integrated circuit) chip needs to process multiple input data sources using multiple processing components, which involves scheduling issues for multiple data queues.
There are various categories of types and methods of scheduling data queues. Classifying according to the number of output queues, wherein the scheduling comprises multiple-input single-output scheduling and multiple-input multiple-output scheduling; the qos is classified into RR (Round Robin), SP (Strict Priority), DRR (bad Round Robin), WRR (Weighted Round Robin), WDRR (Weighted bad Round Robin), and the like. For the problem of multi-input multi-output scheduling in an ASIC chip, the existing scheduling method has certain limitation or deficiency. Some methods can only complete the scheduling of single output; some methods can not ensure that all input data can obtain reasonable resources and even starve to death; some methods cannot make the input queue with high priority get priority scheduling; some methods are not suitable for ASIC chip logic implementation due to the complexity of the algorithm.
Disclosure of Invention
The technical problems to be solved by the invention are as follows: the invention can realize the random distribution of data streams of a plurality of input data sources on a plurality of output channels, can realize the task distribution of service quality differentiation on a plurality of output channels according to the difference of the priorities of input data, has lower hardware realization cost and is particularly suitable for the logic realization of an ASIC chip.
In order to solve the technical problems, the invention adopts the technical scheme that:
a method for scheduling MIMO multi-class data queue includes controlling parametersmode_selSelecting a random distribution mode or a differentiated service quality mode for scheduling, wherein the random distribution mode and the differentiated service quality mode both request all input sources with data requests to a round-robin arbiter for using output channels, the round-robin arbiter arbitrates the output channels based on an arbitration token round-robin rule, and the output channels in an idle state in the random distribution mode receive input data of the input sources in turn; all input sources and output channels in the differentiated service quality mode are divided into different priorities, and a certain group of output channels only receive data of the input sources with the corresponding priorities.
Optionally, the number of input data sources is recorded asnnThe input sources being sequentiallyI 0 ,I 1 ,I 2 , …,I n-1 The number of output channels ismmThe output channels are sequentiallyO 0 ,O 1 ,O 2 , …,O m-1 }; note the booknA request vector of each input source beingr 0 ,r 1 ,r 2 , …,r n 1-},r i Is 0 or 1, whereini=0, 1, 2, …,n-1,r i When it is 0, it meansiThere is no data request for one input source,r i when 1 is shown asiA data request exists for each input source; note the bookmThe busy-idle state vector of each output channel isv 0 ,v 1 ,v 2 , …,v m-1 },v i Is 0 or 1, whereini=0, 1, 2, …,m-1,v i When it is 0, it meansiThe output channel is busy, cannot receive new data processing request currently,v i when 1 is shown asiEach output channel is in an idle state, and a new data processing request can be received at the moment; in the random distribution mode:
the arbitration token round robin rule of the round robin arbiter is as follows: the arbitration token will pass to the next input source of the currently token-derived input source after completing an arbitration response, assumingI i Get arbitration response, the arbitration token will be passed toI (i+1) mod n (ii) a The execution rule of the arbitration response is as follows: if all ofv i All the input channels are 0, which means that all the output channels are not idle, and all the input sources cannot obtain arbitration response at this time; when at least one existsv i A value of 1 indicates that at least one output channel can receive a data processing request, assuming that the arbitration token is presentI i Position ifr i Is 1, representsI i There is a request for data, thenI i Will get the arbitration response; if it is notr i Is 0, representsI i If there is no data request, then look backwards in turnI i+1 ,I i+2 ,I i+3 , …,I n-1, I 0 ,I 1 ,I i-1 I i The input source of the first existing data request will get the arbitration response; the selection rule of the output channel is as follows: using one output channel selection token to realize the rotation of the output channel, wherein the channel selection token is in the initial stateO 0 In the hand, the first input source to get arbitration response outputs data toO 0 (ii) a The channel selection token then rotates toO 1 In the hand, so on; when the channel selection token turns toO i In the middle of the hand, ifv i Is 1, representsO i In the idle state, the input source currently receiving arbitration response will be selectedO i As an output channel; if it isv i Is 0, representsO i If not, the input source currently receiving arbitration response will be selectedO i The first idle output channel thereafter (e.g.O i+1 When idle, then selectO i+1 ) And meanwhile, the channel selection token turns to the next output channel of the output channels after being selected currently.
Optionally, the dividing of all input sources and output channels into different priorities in the qos mode specifically means by configuring parameterspriority_vector0Configuring the priority of each input source by configuring the parameterspriority_vector1For configuring the priority of each output channel.
Optionally, the number of input data sources is recorded asnnThe input sources being sequentiallyI 0 ,I 1 ,I 2 , …,I n-1 The number of output channels ismmThe output channels are sequentiallyO 0 ,O 1 ,O 2 , …,O m-1 }; note the booknA request vector of each input source beingr 0 ,r 1 ,r 2 , …,r n 1-},r i Is 0 or 1, whereini=0, 1, 2, …,n-1,r i When it is 0, it meansiThere is no data request for one input source,r i when 1 is shown asiA data request exists for each input source; note the bookmThe busy-idle state vector of each output channel isv 0 ,v 1 ,v 2 , …,v m-1 },v i Is 0 or 1, whereini=0, 1, 2, …,m-1,v i When it is 0, it meansiThe output channel is busy, cannot receive new data processing request currently,v i when 1 is shown asiEach output channel is in an idle state, and a new data processing request can be received at the moment; in the differentiated quality of service mode:
the arbitration token round robin rule of the round robin arbiter is as follows: the arbitration token will pass to the next input source of the currently token-derived input source after completing an arbitration response, assumingI i Get arbitration response, the arbitration token will be passed toI (i+1) mod n (ii) a The execution rule of the arbitration response is as follows: if all ofv i All the input channels are 0, which means that all the output channels are not idle, and all the input sources cannot obtain arbitration response at this time; when at least one existsv i A value of 1 indicates that at least one output channel can receive a data processing request, assuming that the arbitration token is presentI i Position ifr i Is 1 and all arep i Same asq j Corresponding output channelO j In which there is a free channel, i.e.v j =1, this meansI i There is one free channel in the output channel where there is a data request and the current priority is supported, thenI i Will get the arbitration response; if it is notr i Is 0, representsI i If there is no data request, then look backwards in turnI i+1 ,I i+2 ,I i+3 , …,I n-1, I 0 ,I 1 ,I i-1 Until one is foundI k The following conditions are met:r k is 1 and all arep k Same asq k Corresponding output channelO k In which there is a free channel, i.e.v k =1, thenI k Will get a response; the selection rule of the output channels is as follows: each group of output channels with the same priority uses respective output channel selection tokens to realize the rotation of the output channels in the group; in an initial state, each group of channel selection tokens with output channels of the same priority is on a first channel of the group of channels; when a certain data source of the group obtains arbitration response, if the channel of the group priority selects the output channel of the tokenv i Is 1, denotes the output channelO i In the idle state, the input source currently receiving arbitration response will be selectedO i As an output channel; if it isv i Is 0, representsO i If not, the input source currently receiving arbitration response will be selectedO i Then the first idle output channel in the group, and the channel selection token turns to the next output channel in the group of the currently selected output channel.
Optionally, said dependent control parametermode_selChoose to use a random distribution mode orThe distinguishing of the quality of service mode for scheduling specifically means: determining control parametersmode_selWhen controlling the parametersmode_selAdopting a random distribution mode for scheduling when the first set value is the first set value; when controlling the parametermode_selAnd adopting a differentiated service quality mode for scheduling when the second set value is the second set value.
In addition, the invention also provides a scheduling device of the MIMO multi-service class data queue, which is programmed or configured to execute the steps of the scheduling method of the MIMO multi-service class data queue. In addition, the present invention also provides a microprocessor comprising a mimo-qos data queue and a scheduler programmed or configured to perform the steps of the method for scheduling the mimo-qos data queue. Furthermore, the present invention provides a computer device comprising at least a microprocessor and a memory, the microprocessor comprising a mimo multi-class of service data queue and a scheduling means, the scheduling means being programmed or configured to perform the steps of the method for scheduling said mimo multi-class of service data queue. Furthermore, the present invention also provides a computer readable storage medium having stored thereon a computer program programmed or configured to perform the method of scheduling of the mimo-qos class data queue.
Compared with the prior art, the invention has the following advantages:
1. the application range is wide. By adjusting configuration parameters, the method can realize a completely fair and balanced random distribution mode and also can realize a mode of distinguishing service quality of various priorities;
2. the hardware is simple to realize and low in cost. All configuration modes (a random distribution mode and a differentiated service quality mode) are realized by using only one round-robin arbiter, and various arbitration control logics in different modes are realized by mapping the resource state information of the output channel to the corresponding input source according to different configurations.
Drawings
FIG. 1 is a schematic diagram of a basic flow of a method according to an embodiment of the present invention.
Fig. 2 is a schematic diagram of an example of a random distribution mode in the embodiment of the present invention.
Fig. 3 is a diagram illustrating an example of differentiated quality of service modes according to an embodiment of the present invention.
Detailed Description
As shown in FIG. 1, the scheduling method of MIMO multi-class data queue of the present embodiment includes the steps of determining a control parameter according to a received signalmode_selSelecting a random distribution mode or a differentiated service quality mode for scheduling, wherein the random distribution mode and the differentiated service quality mode both request all input sources with data requests to a round-robin arbiter for using output channels, the round-robin arbiter arbitrates the output channels based on an arbitration token round-robin rule, and the output channels in an idle state in the random distribution mode receive input data of the input sources in turn; all input sources and output channels under the differentiated service quality mode are divided into different priorities, and a certain group of output channels only receive data of the input sources with the corresponding priorities.
In this embodiment, the resource status information of all the output channels is integrated in the same round-robin arbiter, so that all the input data sources can implement task scheduling to all the output channels by using only one round-robin arbiter. The round-robin arbiter needs to be guided by the resource status information of the output channels when arbitrating multiple requests to decide which request an arbitration response should be returned to and to which output channel the responded input data should be distributed. For the random distribution mode, the resource state information of all output channels has guiding significance to all input sources, and the output channels in the idle state receive input data in turn; for the mode of distinguishing the service quality, different output channels have different priorities, the resource state information of an output channel with a certain priority is only valid for the input source with the corresponding priority, and the output channel only receives the data of the input source with the corresponding priority. For convenience of illustration, the number of input data sources is recorded asnnThe input sources being sequentiallyI 0 ,I 1 ,I 2 , …,I n-1 The number of output channels ismmThe output channels are sequentiallyO 0 ,O 1 ,O 2 , …,O m-1 }; note the booknA request vector of each input source beingr 0 ,r 1 ,r 2 , …,r n 1-},r i Is 0 or 1, whereini=0, 1, 2, …,n-1,r i When it is 0, it meansiThere is no data request for one input source,r i when 1 is shown asiA data request exists for each input source; note the bookmThe busy-idle state vector of each output channel isv 0 ,v 1 ,v 2 , …,v m-1 },v i Is 0 or 1, whereini=0, 1, 2, …,m-1,v i When it is 0, it meansiThe output channel is busy, cannot receive new data processing request currently,v i when 1 is shown asiEach output channel is in an idle state, at which time a new data processing request may be received.
In this embodiment, the control parameter is based onmode_selThe selecting the random distribution mode or the differentiated service quality mode for scheduling specifically includes: determining control parametersmode_selWhen controlling the parametersmode_selAdopting a random distribution mode for scheduling when the first set value is the first set value; when controlling the parametermode_selAnd adopting a differentiated service quality mode for scheduling when the second set value is the second set value. Control parametermode_selWhen the current operating mode is 0, indicating that the current operating mode is a Random channel mode (Random mode), that is, the output channels in the idle state will receive the input data in turn; control parametermode_selWhen the current working mode is 1, the current working mode is indicated as a differentiated quality of service mode (QoS mode), that is, all output channels are divided into a plurality of groups of channels with different priorities, and a certain group of output channels will only receive data of input sources with corresponding priorities.
In this embodiment, the Random distribution mode is simply referred to as the Random mode, and as shown in fig. 2, the Random mode requires control parametersmode_selConfigured as 0 so that all input data sources can fairly use all output channels. In this embodiment, in the random distribution mode:
the arbitration token round robin rule of the round robin arbiter is as follows: the arbitration token will pass to the next input source of the currently token-derived input source after completing an arbitration response, assumingI i Get arbitration response, the arbitration token will be passed toI (i+1) mod n (ii) a The execution rules for arbitration response are as follows: if all ofv i All the input channels are 0, which means that all the output channels are not idle, and all the input sources cannot obtain arbitration response at this time; when at least one existsv i A value of 1 indicates that at least one output channel can receive a data processing request, assuming that the arbitration token is presentI i Position ifr i Is 1, representsI i There is a request for data, thenI i Will get the arbitration response; if it is notr i Is 0, representsI i If there is no data request, then look backwards in turnI i+1 ,I i+2 ,I i+3 ,…,I n-1, I 0 ,I 1 ,I i-1 I i The input source of the first existing data request will get the arbitration response; the selection rule of the output channels is as follows: using one output channel selection token to realize the rotation of the output channel, wherein the channel selection token is in the initial stateO 0 In the hand, the first input source to get arbitration response outputs data toO 0 (ii) a The channel selection token then rotates toO 1 In the hand, so on; when the channel selection token turns toO i In the middle of the hand, ifv i Is 1, representsO i In the idle state, the mobile station is in the idle state,the input source currently receiving an arbitration response will be selectedO i As an output channel; if it isv i Is 0, representsO i If not, the input source currently receiving arbitration response will be selectedO i The first idle output channel thereafter (e.g.O i+1 When idle, then selectO i+1 ) And meanwhile, the channel selection token turns to the next output channel of the output channels after being selected currently.
Hereinafter with 8 inputs and 4 outputs (i.e.n=8、mA mimo-qos queue (Arbiter) of = 4) is used as an example, and a mimo-qos queue scheduling method according to the present embodiment is described.
As shown in fig. 2, in the initial state,r i =0 (whereini=0, 1, 2, …, 7),v i =1 (whereini=0, 1, 2, 3), arbiter token is atI 0 Above, the channel selects the token to be inO 0 The above step (1); will be provided withmode_selThe control parameter is configured to be 0 to enter a Random mode;
1. at time T0 (the case where the arbiter token is on the input source of no data requests),r 1 ,r 2 ,r 4 becomes 1 because the token is inI 0 Above, butr 0 Is 0, thereforeI 1 The arbitration response is obtained and,r 1 will become 0 upon getting a response; since the channel selection token is inO 0 To is disclosed, andv 0 is 1, thus obtaining a responseI 1 Will selectO 0 And outputting the signals to the computer for output,v 0 will become 0; at the same time, the arbiter token rotates toI 2 Up, the channel selection token turns toO 1 The above step (1);
2. at time T1 (the case where the arbiter token is located on the input source with the data request),r 2 ,r 4 are still inWaiting for the round-robin arbiter to acknowledge, and thereforer 2 ,r 4 Still 1, and in addition,r 1 becomes 1 again due to the occurrence of a new data request,r 6 also becomes 1 because of the data request; since the arbiter is onI 2 To is disclosed, andr 2 is 1, thereforeI 2 The arbitration response is obtained and,r 2 will become 0 upon getting a response; since the channel selection token is inO 1 To is disclosed, andv 1 is 1, thus obtaining a responseI 2 Will selectO 1 And outputting the signals to the computer for output,v 1 will become 0; at the same time, the arbiter token rotates toI 3 Up, the channel selection token turns toO 2 The above step (1);
3. at time T2 (in the case where the channel selection token is on a non-idle output channel), since some output channels may become non-idle after a period of time, it is assumed that only the output channel is idle at that timev 0 ,v 2 The number of the molecules is 1, and in addition,r 0 ,r 3 ,r 4 ,r 6 to 1, the arbiter token isI 7 Above, the channel selects the token to be inO 3 The above step (1); due to the fact thatr 7 Is 0, the arbiter token isI 7 To therebyI 0 The arbitration response is obtained and,r 0 will become 0 upon getting a response; since the channel selection token is inO 3 Above, butv 3 Is 0, thus obtaining a responseI 0 Will select the next idleO 0 And outputting the signals to the computer for output,v 0 will become 0; at the same time, the arbiter token rotates toI 1 Up, the channel selection token turns toO 1 The above step (1);
and by parity of reasoning, the round-robin arbiter continues scheduling jobs.
In this embodiment, the area is divided intoThe sub-QoS mode is called QoS mode for short, and as shown in FIG. 3, the QoS mode needs to control parametersmode_selConfigured as 1 so that all input data sources can fairly use all output channels. In this embodiment, the dividing of all input sources and output channels into different priorities in the qos mode specifically means by configuring parameterspriority_vector0Configuring the priority of each input source by configuring the parameterspriority_vector1For configuring the priority of each output channel. All are recordeddDifferent priorities, configuration parameterspriority_vector0For configuring the priority of each input data source, sequentiallyp 0 ,p 1 ,p 2 , …,p n-1 Therein (whereinp i = 0, 1, 2, …,d-1, whereini=0, 1, 2, …,n-1) (ii) a Configuring parameterspriority_vector1For configuring the priority of each output channel, sequentiallyq 0 ,q 1 ,q 2 , …,q m-1 Therein (whereinq i = 0, 1, 2, …,d-1Whereini=0, 1, 2, …,m-1). Will be provided withmode_selThe control parameter is configured to be 1, so that the resource status information of an output channel of a certain priority is only valid for the input source of the corresponding priority, and the output channel only receives the data of the input source of the corresponding priority. In addition, according to application requirementspriority_vector0Configuring parameters while simultaneously performingpriority_vector1The parameters are configured in order to make more output channels available to higher priority tasks. All input sources still use only one arbiter for data scheduling, but input sources with different priorities will be based on differentpriority_vector0/1The parameters are distinguished.
In differentiated quality of service mode:
the arbitration token round robin rule of the round robin arbiter is as follows: the arbitration token will pass to the next input source of the currently token-derived input source after completing an arbitration response, assumingI i An arbitration response is obtained in that,the arbitration token will be passed toI (i+1) mod n (ii) a The execution rules for arbitration response are as follows: if all ofv i All the input channels are 0, which means that all the output channels are not idle, and all the input sources cannot obtain arbitration response at this time; when at least one existsv i A value of 1 indicates that at least one output channel can receive a data processing request, assuming that the arbitration token is presentI i Position ifr i Is 1 and all arep i Same asq j Corresponding output channelO j In which there is a free channel, i.e.v j =1, this meansI i There is one free channel in the output channel where there is a data request and the current priority is supported, thenI i Will get the arbitration response; if it is notr i Is 0, representsI i If there is no data request, then look backwards in turnI i+1 ,I i+2 ,I i+3 , …,I n-1, I 0 ,I 1 ,I i-1 Until one is foundI k The following conditions are met:r k is 1 and all arep k Same asq k Corresponding output channelO k In which there is a free channel, i.e.v k =1, thenI k Will get a response; the selection rule of the output channels is as follows: each group of output channels with the same priority uses respective output channel selection tokens to realize the rotation of the output channels in the group; in an initial state, each group of channel selection tokens with output channels of the same priority is on a first channel of the group of channels; when a certain data source of the group obtains arbitration response, if the channel of the group priority selects the output channel of the tokenv i Is 1, denotes the output channelO i In the idle state, the input source currently receiving arbitration response will be selectedO i As an output channel; if it isv i Is 0, representsO i If not, the input source currently receiving arbitration response will be selectedO i Then the first idle output channel in the group, and the channel selection token turns to the next output channel in the group of the currently selected output channel.
As shown in fig. 3, in the initial state,r i =0 (whereini=0, 1, 2, …, 7),v i =1 (whereini=0, 1, 2, 3), arbiter token is atI 0 Above, the channel selects the token to be inO 0 The above step (1); firstly, the first step is tomode_selThe control parameter is configured to be 1 to enter the QoS mode. Secondly, willpriority_vector0Configured as {0, 0, 0, 0, 1, 1, 1, 1}, i.e.I 0 ,I 1 ,I 2 ,I 3 Is given a priority of 0, and is,I 4 ,I 5 ,I 6 ,I 7 is 1 (assuming a total of 2 priorities are supported); then will bepriority_vector1Configured as {0, 0, 0, 1}, i.e.O 0 ,O 1 ,O 2 Input data having a priority of 0 may be received,O 3 input data with a priority of 1 may be received.
1. At time T0 (the case where the arbiter token is on the input source of no data requests),r 1 ,r 2 ,r 4 becomes 1 because the token is inI 0 Above, butr 0 Is 0, thereforeI 1 The arbitration response is obtained and,r 1 will become 0 upon getting a response; due to the fact thatI 1 Has a priority of 0, and the channel selection token with the priority of 0 is atO 0 To is disclosed, andv 0 is 1, thus obtaining a responseI 1 Will selectO 0 And outputting the signals to the computer for output,v 0 will become 0; at the same time, the arbiter token rotates toI 2 Up, priority 0 channel selection token turns toO 1 Above, the channel selection token of priority 1 is still locatedO 3 The above step (1);
2. at time T1 (the case where the arbiter token is located on the input source with the data request),r 2 ,r 4 still waiting for the round robin arbiter to acknowledge, thereforer 2 ,r 4 Still 1, and in addition,r 1 becomes 1 again due to the occurrence of a new data request,r 6 also becomes 1 because of the data request; since the arbiter is onI 2 To is disclosed, andr 2 is 1, thereforeI 2 The arbitration response is obtained and,r 2 will become 0 upon getting a response; due to the fact thatI 2 Has a priority of 0, and the channel selection token with the priority of 0 is atO 1 To is disclosed, andv 1 is 1, thus obtaining a responseI 2 Will selectO 1 And outputting the signals to the computer for output,v 1 will become 0; at the same time, the arbiter token rotates toI 3 Up, priority 0 channel selection token turns toO 2 Above, the channel selection token of priority 1 is still locatedO 3 The above step (1);
3. at time T2 (in the case of the round robin arbiter responding to a switch from priority 0 to priority 1), ifr 1 ,r 4 ,r 6 Is 1, since the arbiter is onI 3 Above, butr 3 Is 0, thereforeI 4 Get arbitration reply, r4 will become 0 after getting the reply; due to the fact thatI 4 Has a priority of 1, and the channel selection token with the priority of 1 is atO 3 To is disclosed, andv 3 is 1, thus obtaining a responseI 4 Will selectO 3 And outputting the signals to the computer for output,v 3 will becomeIs 0; at the same time, the arbiter token rotates toI 5 Above, the channel selection token of priority 0 remains atO 2 Above, since the output channel of priority 1 is onlyO 3 Thus, the channel selection token of priority 1 is still locatedO 3 The above step (1);
4. time T3 (priority 1 no channel idle condition), ifr 1 ,r 6 Is 1, since the arbiter is onI 5 In the above-mentioned manner,I 5 has a priority of 1, while the output channel that can receive an input request of priority 1 has only oneO 3 And is not in an idle state, thereforer 6 Is 1I 6 Arbitration response is not obtained, and further, the priority is 0I 1 An arbitration response is obtained in that,r 1 will become 0 upon getting a response; due to the fact thatI 1 Has a priority of 0, and the channel selection token with the priority of 0 is atO 2 To is disclosed, andv 2 is 1, thus obtaining a responseI 1 Will selectO 2 And outputting the signals to the computer for output,v 2 will become 0; at the same time, the arbiter token rotates toI 2 Up, priority 0 channel selection token turns toO 0 Above, the channel selection token of priority 1 is still locatedO 3 The above step (1);
and by parity of reasoning, the round-robin arbiter continues scheduling jobs.
In addition, the present embodiment further provides a scheduling apparatus for mimo-qos data queues, which is programmed or configured to perform the steps of the scheduling method for mimo-qos data queues according to the present embodiment. In addition, the present embodiment further provides a microprocessor, which includes a mimo-qos data queue and a scheduling apparatus, wherein the scheduling apparatus is programmed or configured to perform the steps of the scheduling method for the mimo-qos data queue according to the present embodiment. In addition, the present embodiment further provides a computer device, at least comprising a microprocessor and a memory, wherein the microprocessor comprises a mimo-qos queue and a scheduling apparatus, and the scheduling apparatus is programmed or configured to perform the steps of the scheduling method for the mimo-qos queue according to the present embodiment. In addition, the present embodiment also provides a computer readable storage medium, which stores a computer program programmed or configured to execute the scheduling method of the mimo-qos queue according to the present embodiment.
As will be appreciated by one skilled in the art, embodiments of the present application may be provided as a method, system, or computer program product. Accordingly, the present application may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, the present application may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, and the like) having computer-usable program code embodied therein. The present application is directed to methods, apparatus (systems), and computer program products according to embodiments of the application wherein instructions, which execute via a flowchart and/or a processor of the computer program product, create means for implementing functions specified in the flowchart and/or block diagram block or blocks. These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart flow or flows and/or block diagram block or blocks. These computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
The above description is only a preferred embodiment of the present invention, and the protection scope of the present invention is not limited to the above embodiments, and all technical solutions belonging to the idea of the present invention belong to the protection scope of the present invention. It should be noted that modifications and embellishments within the scope of the invention may occur to those skilled in the art without departing from the principle of the invention, and are considered to be within the scope of the invention.

Claims (9)

1. A method for scheduling MIMO multi-class data queues includes the steps of controlling parametersmode_selSelecting a random distribution mode or a differentiated service quality mode for scheduling, wherein the random distribution mode and the differentiated service quality mode both request all input sources with data requests to a round-robin arbiter for using output channels, the round-robin arbiter arbitrates the output channels based on an arbitration token round-robin rule, and the output channels in an idle state in the random distribution mode receive input data of the input sources in turn; all input sources and output channels in the differentiated service quality mode are divided into different priorities, and a certain group of output channels only receive data of the input sources with the corresponding priorities.
2. The MIMO multi-service class data queue scheduling method of claim 1,
number of input data sources is recorded asnnThe input sources being sequentiallyI 0 ,I 1 ,I 2 , …,I n-1 The number of output channels ismmThe output channels are sequentiallyO 0 ,O 1 ,O 2 , …,O m-1 }; note the booknA request vector of each input source beingr 0 ,r 1 ,r 2 ,…,r n 1-},r i Is 0 or 1, whereini=0, 1, 2, …,n-1,r i When it is 0, it meansiThere is no data request for one input source,r i when 1 is shown asiA data request exists for each input source; note the bookmThe busy-idle state vector of each output channel isv 0 ,v 1 ,v 2 ,…,v m-1 },v i Is 0 or 1, whereini=0, 1, 2, …,m-1,v i When it is 0, it meansiThe output channel is busy, cannot receive new data processing request currently,v i when 1 is shown asiEach output channel is in an idle state, and a new data processing request can be received at the moment; in the random distribution mode:
the arbitration token round robin rule of the round robin arbiter is as follows: the arbitration token will pass to the next input source of the currently token-derived input source after completing an arbitration response, assumingI i Get arbitration response, the arbitration token will be passed toI (i+1) mod n (ii) a The execution rule of the arbitration response is as follows: if all ofv i All the input channels are 0, which means that all the output channels are not idle, and all the input sources cannot obtain arbitration response at this time; when at least one existsv i A value of 1 indicates that at least one output channel can receive a data processing request, assuming that the arbitration token is presentI i Position ifr i Is 1, representsI i There is a request for data, thenI i Will get the arbitration response; if it is notr i Is 0, representsI i If there is no data request, then look backwards in turnI i+1 ,I i+2 ,I i+3 , …,I n-1, I 0 ,I 1 ,I i-1 I i The first subsequent input source of the presence data request will be arbitratedCutting and answering; the selection rule of the output channel is as follows: using one output channel selection token to realize the rotation of the output channel, wherein the channel selection token is in the initial stateO 0 In the hand, the first input source to get arbitration response outputs data toO 0 (ii) a The channel selection token then rotates toO 1 In the hand, so on; when the channel selection token turns toO i In the middle of the hand, ifv i Is 1, representsO i In the idle state, the input source currently receiving arbitration response will be selectedO i As an output channel; if it isv i Is 0, representsO i If not, the input source currently receiving arbitration response will be selectedO i The first idle output channel thereafter (e.g.O i+1 When idle, then selectO i+1 ) And meanwhile, the channel selection token turns to the next output channel of the output channels after being selected currently.
3. The method for scheduling mimo-qos data queues according to claim 1, wherein the dividing of all input sources and output channels into different priorities in the qos mode specifically means configuring parameterspriority_vector0Configuring the priority of each input source by configuring the parameterspriority_vector1For configuring the priority of each output channel.
4. The MIMO-SGSB scheduling method as claimed in claim 3, wherein the number of input data sources is recorded asnnThe input sources being sequentiallyI 0 ,I 1 ,I 2 , …,I n-1 The number of output channels ismmThe output channels are sequentiallyO 0 ,O 1 ,O 2 , …,O m-1 }; note the booknA request vector of each input source beingr 0 ,r 1 ,r 2 , …,r n 1-},r i Is 0 or 1, whereini=0, 1, 2, …,n-1,r i When it is 0, it meansiThere is no data request for one input source,r i when 1 is shown asiA data request exists for each input source; note the bookmThe busy-idle state vector of each output channel isv 0 ,v 1 ,v 2 , …,v m-1 },v i Is 0 or 1, whereini=0, 1, 2, …,m-1,v i When it is 0, it meansiThe output channel is busy, cannot receive new data processing request currently,v i when 1 is shown asiEach output channel is in an idle state, and a new data processing request can be received at the moment; in the differentiated quality of service mode:
the arbitration token round robin rule of the round robin arbiter is as follows: the arbitration token will pass to the next input source of the currently token-derived input source after completing an arbitration response, assumingI i Get arbitration response, the arbitration token will be passed toI (i+1) mod n (ii) a The execution rule of the arbitration response is as follows: if all ofv i All the input channels are 0, which means that all the output channels are not idle, and all the input sources cannot obtain arbitration response at this time; when at least one existsv i A value of 1 indicates that at least one output channel can receive a data processing request, assuming that the arbitration token is presentI i Position ifr i Is 1 and all arep i Same asq j Corresponding output channelO j In which there is a free channel, i.e.v j =1, this meansI i There is one free channel in the output channel where there is a data request and the current priority is supported, thenI i Will get the arbitration response; if it is notr i Is 0, representsI i If there is no data request, then look backwards in turnI i+1 ,I i+2 ,I i+3 , …,I n-1, I 0 ,I 1 ,I i-1 Until one is foundI k The following conditions are met:r k is 1 and all arep k Same asq k Corresponding output channelO k In which there is a free channel, i.e.v k =1, thenI k Will get a response; the selection rule of the output channels is as follows: each group of output channels with the same priority uses respective output channel selection tokens to realize the rotation of the output channels in the group; in an initial state, each group of channel selection tokens with output channels of the same priority is on a first channel of the group of channels; when a certain data source of the group obtains arbitration response, if the channel of the group priority selects the output channel of the tokenv i Is 1, denotes the output channelO i In the idle state, the input source currently receiving arbitration response will be selectedO i As an output channel; if it isv i Is 0, representsO i If not, the input source currently receiving arbitration response will be selectedO i Then the first idle output channel in the group, and the channel selection token turns to the next output channel in the group of the currently selected output channel.
5. The method of claim 1, wherein the scheduling is based on a control parametermode_selThe selecting the random distribution mode or the differentiated service quality mode for scheduling specifically includes: determining control parametersmode_selWhen controlling the parametersmode_selRandom when the first setting value is adoptedDispatching a distribution mode; when controlling the parametermode_selAnd adopting a differentiated service quality mode for scheduling when the second set value is the second set value.
6. A scheduling apparatus for a MIMO multi-class-of-service data queue, wherein the scheduling apparatus is programmed or configured to perform the steps of the method for scheduling a MIMO multi-class-of-service data queue according to any of claims 1 to 5.
7. A microprocessor comprising a MIMO multi-class-of-service data queue and scheduling means, wherein the scheduling means is programmed or configured to perform the steps of the method of scheduling a MIMO multi-class-of-service data queue as claimed in any one of claims 1 to 5.
8. A computer device comprising at least a microprocessor and a memory, characterized in that the microprocessor comprises a mimo multi-class of service data queue and scheduling means, characterized in that the scheduling means is programmed or configured to perform the steps of the method for scheduling mimo multi-class of service data queues according to any one of claims 1 to 5.
9. A computer-readable storage medium having stored thereon a computer program programmed or configured to perform a method of scheduling a mimo-qos data queue according to any of claims 1 to 5.
CN202010457370.3A 2020-05-26 2020-05-26 Scheduling method and device for MIMO multi-service-class data queue Active CN111666139B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010457370.3A CN111666139B (en) 2020-05-26 2020-05-26 Scheduling method and device for MIMO multi-service-class data queue

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010457370.3A CN111666139B (en) 2020-05-26 2020-05-26 Scheduling method and device for MIMO multi-service-class data queue

Publications (2)

Publication Number Publication Date
CN111666139A true CN111666139A (en) 2020-09-15
CN111666139B CN111666139B (en) 2022-11-11

Family

ID=72384821

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010457370.3A Active CN111666139B (en) 2020-05-26 2020-05-26 Scheduling method and device for MIMO multi-service-class data queue

Country Status (1)

Country Link
CN (1) CN111666139B (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115580585A (en) * 2022-11-17 2023-01-06 沐曦集成电路(南京)有限公司 Balanced arbitration method based on arbiter
CN115686864A (en) * 2022-11-17 2023-02-03 沐曦集成电路(南京)有限公司 Arbitration system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101923525A (en) * 2010-08-11 2010-12-22 清华大学 General purpose in-out circuit with event capturing function
US20140281081A1 (en) * 2013-03-15 2014-09-18 Franck Lunadier Proactive quality of service in multi-matrix system bus
CN104536921A (en) * 2015-01-19 2015-04-22 浪潮电子信息产业股份有限公司 Design method for separating type parallel data channels of EDMA controller
CN104954254A (en) * 2013-12-27 2015-09-30 凯为公司 Matrix of on-chip routers interconnecting a plurality of processing engines and a method of routing using thereof
CN105320632A (en) * 2015-09-23 2016-02-10 南京磐能电力科技股份有限公司 Implementation method for high-speed differential bus of autonomous arbitration

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101923525A (en) * 2010-08-11 2010-12-22 清华大学 General purpose in-out circuit with event capturing function
US20140281081A1 (en) * 2013-03-15 2014-09-18 Franck Lunadier Proactive quality of service in multi-matrix system bus
CN104954254A (en) * 2013-12-27 2015-09-30 凯为公司 Matrix of on-chip routers interconnecting a plurality of processing engines and a method of routing using thereof
CN104536921A (en) * 2015-01-19 2015-04-22 浪潮电子信息产业股份有限公司 Design method for separating type parallel data channels of EDMA controller
CN105320632A (en) * 2015-09-23 2016-02-10 南京磐能电力科技股份有限公司 Implementation method for high-speed differential bus of autonomous arbitration

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115580585A (en) * 2022-11-17 2023-01-06 沐曦集成电路(南京)有限公司 Balanced arbitration method based on arbiter
CN115686864A (en) * 2022-11-17 2023-02-03 沐曦集成电路(南京)有限公司 Arbitration system
CN115686864B (en) * 2022-11-17 2023-09-15 沐曦集成电路(南京)有限公司 Arbitration system

Also Published As

Publication number Publication date
CN111666139B (en) 2022-11-11

Similar Documents

Publication Publication Date Title
EP1435043B1 (en) Method and apparatus for scheduling a resource to meet quality-of-service restrictions
JP4095032B2 (en) Method and apparatus for scheduling requests to a dynamic random access memory device
US7769936B2 (en) Data processing apparatus and method for arbitrating between messages routed over a communication channel
US7394808B2 (en) Method and apparatus for implementing scheduling algorithms in a network element
US20070174529A1 (en) Queue manager having a multi-level arbitrator
CN111666139B (en) Scheduling method and device for MIMO multi-service-class data queue
US9129060B2 (en) QoS based dynamic execution engine selection
JP2005505854A (en) Method and apparatus for scheduling requests for a resource using configurable thresholds
CN109917705B (en) Multi-task scheduling method
US10110515B2 (en) Packet scheduling using hierarchical scheduling process
CA2399186C (en) Data transfer apparatus and data transfer method
CA2484427C (en) Scheduling using quantum and deficit values
CN110780991A (en) Deep learning task scheduling method and device based on priority
US11113101B2 (en) Method and apparatus for scheduling arbitration among a plurality of service requestors
US11061724B2 (en) Programmable hardware scheduler for digital processing systems
CN113010464A (en) Data processing apparatus and device
US10635497B2 (en) Method and apparatus for job pre-scheduling by distributed job manager in a digital multi-processor system
CN102594670B (en) Multiport multi-flow scheduling method, device and equipment
CN115269157A (en) Task processing system, method, computer equipment and storage medium
US10713089B2 (en) Method and apparatus for load balancing of jobs scheduled for processing
CN108259382A (en) 3 × 256 priority scheduling circuits
Zhang et al. PROSE: Multi-round fair coflow scheduling without prior knowledge
JPH10222462A (en) Mediation device
CN117971734A (en) Multi-selection multi-data channel selector and selection method
CN117098191A (en) Data stream scheduling control method and related equipment

Legal Events

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