CN111666139B - 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
CN111666139B
CN111666139B CN202010457370.3A CN202010457370A CN111666139B CN 111666139 B CN111666139 B CN 111666139B CN 202010457370 A CN202010457370 A CN 202010457370A CN 111666139 B CN111666139 B CN 111666139B
Authority
CN
China
Prior art keywords
data
input
output
token
channel
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.)
Active
Application number
CN202010457370.3A
Other languages
Chinese (zh)
Other versions
CN111666139A (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

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 distinguishing the service quality 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 requires multiple processing components to process multiple input data sources, 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 high-priority input queue obtain the 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 the data flow of a plurality of input data sources on a plurality of output channels, can realize the task distribution for distinguishing the service quality 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.
In order to solve the technical problems, the technical scheme adopted by the invention is as follows:
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 bookmThe busy-idle state vector of each output channel isv 0 , v 1 , v 2 , …, v m-1 },v i Is 0 or 1, whichIn (1)i=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 there is at least onev 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 differentiated 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 ismmA plurality of output channels are sequentially aO 0 , O 1 , O 2 , …, O m-1 }; note 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 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 representsFirst, theiThe 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 sources 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 An arbitration response is obtained; 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 A response will be obtained; output channelThe track selection rules are 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_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.
In addition, the invention also provides a scheduling device of the MIMO multi-service class data queue, and the scheduling device 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 an output channel, 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 use the resource status information of the output channels as guidance when arbitrating multiple requests to decide which request an arbitration response should be returned to and to which output channel the input data with the response should be distributed. For the random distribution mode, the resource state information of all output channels has guiding significance for 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 booknThe request vector of each input source isr 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 means the firstiThere is no data request for one input source,r i when 1 is the numberiA 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 means the firstiOne is defeatedThe outbound channel is in a busy state, cannot currently receive new data processing requests,v i when 1 is the numberiEach 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 a random distribution mode or a differentiated service quality mode for scheduling specifically refers to: 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 parametersmode_selAnd adopting a differentiated service quality mode for scheduling when the second set value is the second set value. Control parametermode_selWhen the value is 0, the current working mode is indicated as a Random channel mode (Random mode), that is, the output channels in an 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 to be 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 for the round robin arbiter is as follows: the arbitration token will pass to the next input source of the currently token-derived input sources after completing an arbitration response, i.e., assuming thatI 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 data request, thenI i An arbitration response is obtained; if it is usedr i Is 0, representsI i If there is no data request, then look back in sequenceI 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 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.
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 Upper, channel selection orderCard atO 0 The above step (1); will be provided withmode_selThe control parameter is configured to be 0 to enter a Random mode;
1. time T0 (the case where the arbiter token is on the input source of no data request),r 1 , r 2 , r 4 becomes 1 due to the token beingI 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 C, removing;
2. time T1 (the case where the arbiter token is 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; since the channel selects the token atO 1 To is disclosed, andv 1 is 1, thus obtaining a responseI 2 Will selectO 1 And outputting the signals to a computer, wherein the signals are 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), some output channels may become non-idle after a period of timeSuppose that only thenv 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 C, removing; 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 To do sov 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);
by analogy, the round-robin arbiter continues scheduling jobs.
In the embodiment, the differentiated quality of service mode is simply referred to as the QoS mode, and as shown in fig. 3, the QoS mode requires 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 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 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 usedr i Is 0, representsI i If there is no data request, then look back in sequenceI 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 an 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 beO 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 having a priority of 1 may be received.
1. Time T0 (the case where the arbiter token is on the input source of no data request),r 1 , r 2 , r 4 becomes 1 because the token is inI 0 To do sor 0 Is 0, thereforeI 1 The response to the arbitration is obtained,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 Above, 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. time T1 (the case where the arbiter token is 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; due to arbiter token inI 2 Above, 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 a computer, wherein the signals are 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 C, removing;
3. at time T2 (in the case of the round-robin arbiter responding from priority 0 to priority 1), ifr 1 , r 4 , r 6 Is 1, since the arbiter token isI 3 To do sor 3 Is 0, thereforeI 4 Obtaining an arbitration response, wherein r4 is changed into 0 after obtaining the response; due to the fact thatI 4 Has a priority of 1, and the channel selection token with the priority of 1 is atO 3 Above, andv 3 is 1, thus obtaining a responseI 4 Will selectO 3 And outputting the signals to a computer, wherein the signals are output,v 3 will become 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 case), ifr 1 , r 6 Is 1, since the arbiter is onI 5 In the above-mentioned manner,I 5 has a priority of 1, and the output channel that can receive the input request of priority 1 has only one output channelO 3 And is not in an idle state, thereforer 6 Is 1 ofI 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 has a priority of 0The channel selection token ofO 2 To is disclosed, andv 2 is 1, thus obtaining a responseI 1 Will selectO 2 And outputting the signals to a computer, wherein the signals are 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 C, removing;
by analogy, 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 data queue and a scheduling device, wherein the scheduling device is programmed or configured to perform the steps of the scheduling method for the mimo data queue of 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 multi-class of service data queue and a scheduling device, and the scheduling device is programmed or configured to perform the steps of the scheduling method for the mimo multi-class of service data queue of 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 (8)

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 one round-robin arbiter for using output channels, and the round-robin arbiter performs output channels based on arbitration token round-robin rulesThe output channels in the idle state in the random distribution mode receive the input data of the input source 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;
number of input data sources is recorded asnnThe input data sources are 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 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 means the firstiThere is no data request for one input source,r i when 1 is shown asiA data request exists for each input source; note 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 means the firstiThe output channel is busy, cannot receive new data processing request currently,v i when 1 is the numberiEach 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 sources 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, and at the same time, the channel selection token is turned to the next output channel of the currently selected output channel.
2. The method of claim 1, wherein the zone is a sector of a mimo-qos queueThe method for dividing all input sources and output channels into different priorities in the sub-service quality mode specifically means by configuring parameterspriority_vector0Configuring the priority of each input source by configuring the parameterspriority_vector1Priority for configuring each output channel, commondDifferent priorities, configuration parameterspriority_vector0For configuring the priority of each input data source, sequentiallyp 0 , p 1 , p 2 , …, p n-1 H, any ofiPriority of input data sourcep i = 0, 1, 2, …, d-1, whereini=0, 1, 2, …, n-1; configuring parameterspriority_vector1For configuring the priority of each output channel, sequentiallyq 0 , q 1 , q 2 , …, q m-1 H, any ofiPriority of each output channelq i = 0, 1, 2, …, d-1In whichi=0, 1, 2, …, m-1。
3. The method of claim 2, 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 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 means the firstiThere is no request for data from one input source,r i when 1 is shown asiThe input source has a data request; note the bookmAn outputThe busy-idle state vector of the 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 channels are in a busy state, currently cannot receive new data processing requests,v i when 1 is the numberiEach 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 sources after completing an arbitration response, i.e., assuming thatI 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 sources 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 there is at least onev 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 isq 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 with the same priority is on the 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 And then the first idle output channel in the group, and meanwhile, the channel selection token turns to the next output channel in the group of the currently selected output channel.
4. The method of claim 1, wherein the scheduling is based on a control parametermode_selThe selecting a random distribution mode or a differentiated service quality mode for scheduling specifically refers to: 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.
5. 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 one of claims 1 to 4.
6. A microprocessor comprising a multiple-input multiple-output multiple 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 multiple-input multiple-output multiple class of service data queue as claimed in any one of claims 1 to 4.
7. A computer arrangement 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 are programmed or configured to perform the steps of the method of scheduling mimo multi-class of service data queues according to any one of claims 1 to 4.
8. A computer-readable storage medium having stored thereon a computer program programmed or configured to perform the method of scheduling mimo multi-class of service data queues according to any of claims 1-4.
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 CN111666139A (en) 2020-09-15
CN111666139B true 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)

Families Citing this family (2)

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

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101923525B (en) * 2010-08-11 2012-02-29 清华大学 General purpose in-out circuit with event capturing function
US9372818B2 (en) * 2013-03-15 2016-06-21 Atmel Corporation Proactive quality of service in multi-matrix system bus
US9548945B2 (en) * 2013-12-27 2017-01-17 Cavium, Inc. 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
CN105320632B (en) * 2015-09-23 2018-05-29 南京磐能电力科技股份有限公司 A kind of high-speed-differential bus realization method independently arbitrated

Also Published As

Publication number Publication date
CN111666139A (en) 2020-09-15

Similar Documents

Publication Publication Date Title
CN111666139B (en) Scheduling method and device for MIMO multi-service-class data queue
US9584430B2 (en) Traffic scheduling device
JP4095032B2 (en) Method and apparatus for scheduling requests to a dynamic random access memory device
EP1435043B1 (en) Method and apparatus for scheduling a resource to meet quality-of-service restrictions
US20070174529A1 (en) Queue manager having a multi-level arbitrator
US7769936B2 (en) Data processing apparatus and method for arbitrating between messages routed over a communication channel
US9129060B2 (en) QoS based dynamic execution engine selection
US20050259574A1 (en) Method and apparatus for implementing scheduling algorithms in a network element
US10447608B2 (en) Packet scheduling using hierarchical scheduling process with priority propagation
CN105893126A (en) Task scheduling method and device
US10110515B2 (en) Packet scheduling using hierarchical scheduling process
JP2005505854A (en) Method and apparatus for scheduling requests for a resource using configurable thresholds
WO2010125448A1 (en) Hierarchical pipelined distributed scheduling traffic manager
CN109917705B (en) Multi-task scheduling method
EP2525534B1 (en) Network traffic scheduler and associated method, computer program and computer program product
CA2484427C (en) Scheduling using quantum and deficit values
CA2399186C (en) Data transfer apparatus and data transfer method
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
US9128769B2 (en) Processor with dedicated virtual functions and dynamic assignment of functional resources
US20230342186A1 (en) Priority-based directed acyclic graph scheduling
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
CN105610733B (en) Queue scheduling processing method and system

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