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 PDFInfo
- 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
- input
- output
- token
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/5038—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
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
本发明公开了一种多输入多输出多服务等级数据队列的调度方法及装置,本发明方法包括采用随机分发模式或区分服务质量模式,均将所有存在数据请求的输入源向一个轮转仲裁器请求使用输出通道,且轮转仲裁器基于仲裁令牌轮转规则进行输出通道的仲裁,随机分发模式下处于空闲状态的输出通道将会轮流接收输入源的输入数据;区分服务质量模式下所有输入源、输出通道被划分不同优先级,使某组输出通道将只接收对应优先级的输入源的数据。本发明既能够实现多个输入数据源的数据流在多个输出通道上的随机分发,也能够根据输入数据的优先级的不同,在多个输出通道上实现区分服务质量的任务分发,具有较低的硬件实现代价,尤其适用于ASIC芯片逻辑实现。
The invention discloses a multi-input multi-output multi-service level data queue scheduling method and device. The method of the invention includes adopting a random distribution mode or a differentiated service quality mode, and all input sources with data requests are sent to a round-robin arbiter to request The output channel is used, and the round-robin arbiter arbitrates the output channel based on the arbitration token round-robin rule. The output channel in the idle state in the random distribution mode will receive the input data of the input source in turn; distinguish all input sources and outputs in the quality of service mode. The channels are divided into different priorities, so that a certain group of output channels will only receive data from the input source of the corresponding priority. The invention can not only realize the random distribution of the data streams of multiple input data sources on the multiple output channels, but also realize the task distribution of distinguishing the service quality on the multiple output channels according to the different priorities of the input data, and has a relatively high performance. Low hardware implementation cost, especially suitable for ASIC chip logic implementation.
Description
技术领域technical field
本发明涉及高性能计算领域的芯片内数据传输技术,具体涉及一种多输入多输出多服务等级数据队列的调度方法及装置,用于通过将多个输入数据源的数据流根据多个输出队列的资源占用情况进行科学调度,实现公平高效和支持多种服务等级的任务分发。The invention relates to an in-chip data transmission technology in the field of high-performance computing, in particular to a method and device for scheduling multiple-input multiple-output multiple service-level data queues, which are used for scheduling data streams from multiple input data sources according to multiple output queues. The resource occupancy situation is scientifically scheduled to achieve fair and efficient task distribution that supports multiple service levels.
背景技术Background technique
随着高性能计算机系统(HPC,High Performance Computer)计算速度从千万亿次级(P级,Petascale)向百亿亿次级(E级,Exascale)的不断提升,微处理器芯片以及互连网络芯片所需处理的数据量呈指数级上升。通常每个ASIC(Application SpecificIntegrated Circuit)芯片需要使用多个处理部件对多个输入数据源进行处理,这涉及到多个数据队列的调度问题。With the continuous improvement of the computing speed of high-performance computer systems (HPC, High Performance Computer) from petascale (P-level, Petascale) to tens of petascale (E-level, Exascale), microprocessor chips and interconnects The amount of data that network chips need to process increases exponentially. Usually, each ASIC (Application Specific Integrated Circuit) chip needs to use multiple processing components to process multiple input data sources, which involves the scheduling of multiple data queues.
数据队列调度的类型和调度方法有多种分类。按照输出队列数量来分类,有多输入单输出调度、多输入多输出调度;按照服务质量来分类,有RR(Round Robin,循环调度)、SP(Strict Priority,严格优先级)、DRR(Deficit Round Robin,差额循环队列)、WRR(Weighted Round Robin,加权循环调度算法)、WDRR(Weighted Deficit Round Robin,加权差额循环调度)等。对于ASIC芯片片内的多输入多输出调度问题,已有的调度方法存在一定的限制或不足。有的方法仅能完成单输出的调度;有的方法不能保证所有输入数据都能够得到合理的资源,甚至会饿死;有的方法无法使高优先级的输入队列得到优先调度;有的方法由于算法较复杂而不适合于ASIC芯片逻辑实现。There are various classifications of data queue scheduling types and scheduling methods. According to the number of output queues, there are multiple input single output scheduling, multiple input multiple output scheduling; according to the quality of service, there are RR (Round Robin, round-robin scheduling), SP (Strict Priority, strict priority), DRR (Deficit Round Robin, balance round-robin queue), WRR (Weighted Round Robin, weighted round-robin scheduling algorithm), WDRR (Weighted Deficit Round Robin, weighted round-robin scheduling) and so on. For the multiple-input multiple-output scheduling problem in an ASIC chip, the existing scheduling methods have certain limitations or deficiencies. Some methods can only complete the scheduling of single output; some methods cannot guarantee that all input data can get reasonable resources, and even starve to death; some methods cannot make high-priority input queues get priority scheduling; The algorithm is more complex and not suitable for ASIC chip logic implementation.
发明内容SUMMARY OF THE INVENTION
本发明要解决的技术问题:针对现有技术的上述问题,提供一种多输入多输出多服务等级数据队列的调度方法及装置,本发明既能够实现多个输入数据源的数据流在多个输出通道上的随机分发,也能够根据输入数据的优先级的不同,在多个输出通道上实现区分服务质量的任务分发,同时具有较低的硬件实现代价,尤其适用于ASIC芯片逻辑实现。The technical problem to be solved by the present invention: in view of the above-mentioned problems in the prior art, a method and device for scheduling data queues with multiple input, multiple output and multiple service levels are provided. The random distribution on the output channel can also realize the task distribution of differentiated service quality on multiple output channels according to the different priorities of the input data, and at the same time has a low hardware implementation cost, especially suitable for ASIC chip logic implementation.
为了解决上述技术问题,本发明采用的技术方案为:In order to solve the above-mentioned technical problems, the technical scheme adopted in the present invention is:
一种多输入多输出多服务等级数据队列的调度方法,包括根据控制参数mode_sel选择采用随机分发模式或区分服务质量模式进行调度的步骤,所述随机分发模式、区分服务质量模式均将所有存在数据请求的输入源向一个轮转仲裁器请求使用输出通道,且轮转仲裁器基于仲裁令牌轮转规则进行输出通道的仲裁,所述随机分发模式下处于空闲状态的输出通道将会轮流接收输入源的输入数据;所述区分服务质量模式下所有输入源、输出通道被划分为不同优先级,某组输出通道将只接收对应优先级的输入源的数据。A method for scheduling multiple-input multiple-output multiple service-level data queues, comprising the step of selecting a random distribution mode or a differentiated service quality mode for scheduling according to a control parameter mode_sel , wherein the random distribution mode and the differentiated service quality mode both combine all existing data The requested input source requests to use an output channel from a round-robin arbiter, and the round-robin arbiter arbitrates the output channel based on the arbitration token round-robin rule. The output channel in the idle state in the random distribution mode will receive the input of the input source in turn data; in the differentiated service quality mode, all input sources and output channels are divided into different priorities, and a certain group of output channels will only receive data from input sources with corresponding priorities.
可选地,记输入数据源的数量为n,n个输入源依次为{I 0 , I 1 , I 2 , …, I n-1 },输出通道的数量为m,m个输出通道依次为{O 0 , O 1 , O 2 , …, O m-1 };记n个输入源的请求向量为{r 0 , r 1 , r 2 , …, r n-1 },r i 为0或1,其中i=0, 1, 2, …, n-1,r i 为0时表示第i个输入源不存在数据请求,r i 为1时表示第i个输入源存在数据请求;记m个输出通道的忙闲状态向量为{v 0 , v 1 , v 2 , …, v m-1 },v i 为0或1,其中i=0, 1, 2, …, m-1,v i 为0时表示第i个输出通道处于忙碌状态,当前无法接收新的数据处理请求,v i 为1时表示第i个输出通道处于空闲状态,此时可以接收新的数据处理请求;在随机分发模式下:Optionally, denote the number of input data sources as n , the n input sources are { I 0 , I 1 , I 2 , ..., I n-1 } in sequence, the number of output channels is m , and the m output channels are in sequence { O 0 , O 1 , O 2 , …, O m-1 }; denote the request vector of n input sources as { r 0 , r 1 , r 2 , …, r n - 1 } , where ri is 0 or 1, where i = 0, 1, 2, …, n -1, when ri is 0, it means that there is no data request for the ith input source , and when ri is 1, it means that there is a data request for the ith input source; mark m The busy and idle state vectors of the output channels are { v 0 , v 1 , v 2 , …, v m-1 }, v i is 0 or 1, where i = 0, 1, 2, …, m -1, v When i is 0, it means that the ith output channel is in a busy state and cannot currently receive new data processing requests. When v i is 1, it means that the ith output channel is in an idle state, and new data processing requests can be received at this time; In distribution mode:
所述轮转仲裁器的仲裁令牌轮转规则如下:仲裁令牌在完成一次仲裁应答后将会传递给当前得到令牌的输入源的下一个输入源,即假设I i 得到了仲裁应答,仲裁令牌将会传递给I (i+1) mod n ;所述仲裁应答的执行规则如下:如果所有v i 均为0,表示所有输出通道均未空闲,这时所有输入源都无法得到仲裁应答;当存在至少一个v i 为1时,表示至少有一个输出通道可以接收数据处理请求,假设此时仲裁令牌在I i 位置,如果r i 为1,表示I i 存在数据请求,那么I i 将得到仲裁应答;如果r i 为0,表示I i 不存在数据请求,那么依次向后查看I i+1 ,I i+2 , I i+3 , …, I n-1, I 0 , I 1 , I i-1 ,I i 之后的第一个存在数据请求的输入源将得到仲裁应答;所述输出通道的选择规则如下:使用一个输出通道选择令牌实现输出通道的轮转,初始状态下,通道选择令牌在O 0 手中,第一个得到仲裁应答的输入源将数据输出到O 0 ;然后通道选择令牌会轮转到O 1 手中,以此类推;当通道选择令牌轮转到O i 手中时,若v i 为1,表示O i 处于空闲状态,则当前得到仲裁应答的输入源将选择O i 作为输出通道;若v i 为0,表示O i 未处于空闲状态,则当前得到仲裁应答的输入源将选择O i 之后的第一个空闲的输出通道(如O i+1 空闲,则选择O i+1 ),同时,通道选择令牌轮转到当前被选中之后的输出通道的下一个输出通道。The arbitration token rotation rule of the rotation arbiter is as follows: after completing an arbitration response, the arbitration token will be passed to the next input source of the input source that currently obtains the token, that is, assuming that I i has obtained the arbitration response, the arbitration order The card will be passed to I (i+1) mod n ; the execution rules of the arbitration response are as follows: if all v i are 0, it means that all output channels are not idle, then all input sources cannot get the arbitration response; When there is at least one v i is 1, it means that at least one output channel can receive data processing requests, assuming that the arbitration token is at the position of I i , if ri is 1, it means that there is a data request for I i , then I i will Arbitration response is obtained; if ri is 0, it means that there is no data request for I i , then look back at I i +1 , I i+2 , I i+3 , …, I n-1, I 0 , I 1 , I i-1 , the first input source that has a data request after I i will get an arbitration response; the selection rule of the output channel is as follows: use an output channel selection token to realize the rotation of the output channel, in the initial state, The channel selection token is in the hands of O 0 , and the first input source that gets the arbitration response will output data to O 0 ; then the channel selection token will be rotated to O 1 , and so on; when the channel selection token is rotated to O i In hand, if v i is 1, it means O i is in an idle state, then the input source that has received the arbitration response will select O i as the output channel; if v i is 0, it means O i is not in an idle state, then it is currently arbitrated The input source of the answer will select the first idle output channel after O i (if O i+1 is idle, then select O i+1 ), and at the same time, the channel selection token will rotate to the next output channel after the currently selected output channel. an output channel.
可选地,所述区分服务质量模式下所有输入源、输出通道被划分为不同优先级具体是指通过配置参数priority_vector0配置每个输入源的优先级,通过配置参数priority_vector1用于配置每个输出通道的优先级。Optionally, in the differentiated quality of service mode, all input sources and output channels are divided into different priorities. Specifically, the priority of each input source is configured through the configuration parameter priority_vector0 , and the configuration parameter priority_vector1 is used to configure each output channel. priority.
可选地,记输入数据源的数量为n,n个输入源依次为{I 0 , I 1 , I 2 , …, I n-1 },输出通道的数量为m,m个输出通道依次为{O 0 , O 1 , O 2 , …, O m-1 };记n个输入源的请求向量为{r 0 , r 1 , r 2 , …, r n-1 },r i 为0或1,其中i=0, 1, 2, …, n-1,r i 为0时表示第i个输入源不存在数据请求,r i 为1时表示第i个输入源存在数据请求;记m个输出通道的忙闲状态向量为{v 0 , v 1 , v 2 , …, v m-1 },v i 为0或1,其中i=0, 1, 2, …, m-1,v i 为0时表示第i个输出通道处于忙碌状态,当前无法接收新的数据处理请求,v i 为1时表示第i个输出通道处于空闲状态,此时可以接收新的数据处理请求;在所述区分服务质量模式下:Optionally, denote the number of input data sources as n , the n input sources are { I 0 , I 1 , I 2 , ..., I n-1 } in sequence, the number of output channels is m , and the m output channels are in sequence { O 0 , O 1 , O 2 , …, O m-1 }; denote the request vector of n input sources as { r 0 , r 1 , r 2 , …, r n - 1 } , where ri is 0 or 1, where i = 0, 1, 2, …, n -1, when ri is 0, it means that there is no data request for the ith input source , and when ri is 1, it means that there is a data request for the ith input source; mark m The busy and idle state vectors of the output channels are { v 0 , v 1 , v 2 , …, v m-1 }, v i is 0 or 1, where i = 0, 1, 2, …, m -1, v When i is 0, it means that the i -th output channel is in a busy state and cannot currently receive new data processing requests. When v i is 1, it means that the i -th output channel is in an idle state, and new data processing requests can be received at this time; In the differentiated quality of service mode described above:
所述轮转仲裁器的仲裁令牌轮转规则如下:仲裁令牌在完成一次仲裁应答后将会传递给当前得到令牌的输入源的下一个输入源,即假设I i 得到了仲裁应答,仲裁令牌将会传递给I (i+1) mod n ;所述仲裁应答的执行规则如下:如果所有v i 均为0,表示所有输出通道均未空闲,这时所有输入源都无法得到仲裁应答;当存在至少一个v i 为1时,表示至少有一个输出通道可以接收数据处理请求,假设此时仲裁令牌在I i 位置,如果r i 为1且所有与p i 相同的q j 对应的输出通道O j 中存在一个空闲通道,即v j =1,这表示I i 存在数据请求且支持当前优先级的输出通道中存在一个空闲通道,那么I i 将得到仲裁应答;如果r i 为0,表示I i 不存在数据请求,那么依次向后查看I i+1 , I i+2 , I i+3 , …, I n-1, I 0 , I 1 , I i-1 ,直到找到一个I k 符合如下条件:r k 为1且所有与p k 相同的q k 对应的输出通道O k 中存在一个空闲通道,即v k =1,则I k 将得到应答;输出通道的选择规则如下:每组具有相同优先级的输出通道使用各自的输出通道选择令牌实现本组内输出通道的轮转;初始状态下,每组具有相同优先级的输出通道的通道选择令牌在该组通道的第一个通道上;当该组的某个数据源得到仲裁应答后,若该组优先级的通道选择令牌所在的输出通道的v i 为1,表示输出通道O i 处于空闲状态,则当前得到仲裁应答的输入源将选择O i 作为输出通道;若v i 为0,表示O i 未处于空闲状态,则当前得到仲裁应答的输入源将选择O i 之后的本组内的第一个空闲的输出通道,同时通道选择令牌轮转到当前被选中之后的输出通道的本组内的下一个输出通道。The arbitration token rotation rule of the rotation arbiter is as follows: after completing an arbitration response, the arbitration token will be passed to the next input source of the input source that currently obtains the token, that is, assuming that I i has obtained the arbitration response, the arbitration order The card will be passed to I (i+1) mod n ; the execution rules of the arbitration response are as follows: if all v i are 0, it means that all output channels are not idle, then all input sources cannot get the arbitration response; When there is at least one v i is 1, it means that there is at least one output channel that can receive data processing requests, assuming that the arbitration token is at the position I i at this time, if ri is 1 and all outputs corresponding to q j that are the same as p i There is an idle channel in channel O j , that is, v j =1, which means that there is a data request in I i and there is an idle channel in the output channel that supports the current priority, then I i will get an arbitration response; if r i is 0, Indicates that there is no data request for I i , then look back at I i+1 , I i+2 , I i+3 , …, I n-1, I 0 , I 1 , I i-1 in turn, until an I is found k meets the following conditions: r k is 1 and there is an idle channel in all output channels O k corresponding to q k that is the same as p k , that is, v k =1, then I k will be answered; the selection rules of output channels are as follows: Each group of output channels with the same priority uses their own output channel selection tokens to implement the rotation of the output channels in this group; in the initial state, the channel selection tokens of each group of output channels with the same priority are in the first channel of the group. On one channel; when a data source in the group gets the arbitration response, if the output channel where the channel selection token of the priority group is located has v i of 1, it means that the output channel O i is in an idle state, then the current The input source of the arbitration response will select O i as the output channel; if v i is 0, it means that O i is not in an idle state, then the input source that currently gets the arbitration response will select the first idle channel in the group after O i . output channel, and the channel selection token rotates to the next output channel in this group after the currently selected output channel.
可选地,所述根据控制参数mode_sel选择采用随机分发模式或区分服务质量模式进行调度具体是指:判断控制参数mode_sel,当控制参数mode_sel为第一设定值时采用随机分发模式调度;当控制参数mode_sel为第二设定值时采用区分服务质量模式调度。Optionally, the selecting to use the random distribution mode or the differentiated service quality mode for scheduling according to the control parameter mode_sel specifically refers to: judging the control parameter mode_sel , and using the random distribution mode for scheduling when the control parameter mode_sel is a first set value; When the parameter mode_sel is the second set value, the differentiated service quality mode scheduling is adopted.
此外,本发明还提供一种多输入多输出多服务等级数据队列的调度装置,该调度装置被编程或配置以执行所述多输入多输出多服务等级数据队列的调度方法的步骤。此外,本发明还提供一种微处理器,该微处理器中包含多输入多输出多服务等级数据队列以及调度装置,该调度装置被编程或配置以执行所述多输入多输出多服务等级数据队列的调度方法的步骤。此外,本发明还提供一种计算机设备,至少包括微处理器和存储器,该微处理器中包含多输入多输出多服务等级数据队列以及调度装置,该调度装置被编程或配置以执行所述多输入多输出多服务等级数据队列的调度方法的步骤。此外,本发明还提供一种计算机可读存储介质,该计算机可读存储介质上存储有被编程或配置以执行所述多输入多输出多服务等级数据队列的调度方法的计算机程序。In addition, the present invention also provides a scheduling device for multiple-input multiple-output multiple-level-of-service data queues, the scheduling device is programmed or configured to execute the steps of the scheduling method for the multiple-input multiple-output multiple-level-of-service data queues. In addition, the present invention also provides a microprocessor including a multiple-input multiple-output multiple-level-of-service data queue and scheduling means programmed or configured to execute the multiple-input multiple-output multiple-level-of-service data The steps of the queue's scheduling method. In addition, the present invention also provides a computer device comprising at least a microprocessor and a memory, the microprocessor including a multiple input multiple output multiple service level data queue and a scheduling device programmed or configured to execute the multiple Steps of a scheduling method for an input multiple output multiple class of service data queue. In addition, the present invention also provides a computer-readable storage medium on which a computer program programmed or configured to execute the scheduling method of the multiple-input multiple-output multiple-level-of-service data queue is stored.
和现有技术相比,本发明具有下述优点:Compared with the prior art, the present invention has the following advantages:
1、适用范围广。通过调整配置参数,该方法既可以实现完全公平均衡的随机分发模式,也可以实现多种优先级的区分服务质量的模式;1. Wide range of application. By adjusting the configuration parameters, this method can not only realize a completely fair and balanced random distribution mode, but also realize a mode of differentiating the quality of service with multiple priorities;
2、硬件实现简单,代价小。所有配置模式(随机分发模式、区分服务质量模式)都只使用一个轮转仲裁器实现,通过将输出通道的资源状态信息按配置不同来映射到对应的输入源上,实现了不同模式下的多种仲裁控制逻辑。2. Simple hardware implementation and low cost. All configuration modes (random distribution mode, differentiated service quality mode) are implemented with only one round-robin arbiter. By mapping the resource status information of the output channel to the corresponding input source according to different configurations, various modes under different modes are realized. Arbitration control logic.
附图说明Description of drawings
图1为本发明实施例方法的基本流程示意图。FIG. 1 is a schematic diagram of a basic flow of a method according to an embodiment of the present invention.
图2为本发明实施例中随机分发模式的实例示意图。FIG. 2 is a schematic diagram of an example of a random distribution mode in an embodiment of the present invention.
图3为本发明实施例中区分服务质量模式的实例示意图。FIG. 3 is a schematic diagram of an example of differentiating quality of service modes according to an embodiment of the present invention.
具体实施方式Detailed ways
如图1所示,本实施例多输入多输出多服务等级数据队列的调度方法包括根据控制参数mode_sel选择采用随机分发模式或区分服务质量模式进行调度的步骤,随机分发模式、区分服务质量模式均将所有存在数据请求的输入源向一个轮转仲裁器请求使用输出通道,且轮转仲裁器基于仲裁令牌轮转规则进行输出通道的仲裁,随机分发模式下处于空闲状态的输出通道将会轮流接收输入源的输入数据;区分服务质量模式下所有输入源、输出通道被划分为不同优先级,某组输出通道将只接收对应优先级的输入源的数据。As shown in FIG. 1 , the scheduling method of the multiple-input multiple-output multiple service level data queue in this embodiment includes the step of selecting random distribution mode or differentiated service quality mode for scheduling according to the control parameter mode_sel . All input sources with data requests request the use of output channels to a round-robin arbiter, and the round-robin arbiter arbitrates the output channels based on the arbitration token round-robin rule. The output channels in the idle state in random distribution mode will receive input sources in turn All input sources and output channels are divided into different priorities in differentiated service quality mode, and a group of output channels will only receive data from input sources with corresponding priorities.
本实施例中将所有输出通道的资源状态信息整合在同一个轮转仲裁器中,从而使得所有输入数据源只使用一个轮转仲裁器即可实现向所有输出通道的任务调度。该轮转仲裁器在对多个请求进行仲裁的时候,需要以输出通道的资源状态信息为指导,以决定应该将仲裁应答返回给哪一个请求,以及该得到应答的输入数据应该分发到哪一个输出通道。对于随机分发模式,所有输出通道的资源状态信息将对所有的输入源有指导意义,处于空闲状态的输出通道将会轮流接收输入数据;对于区分服务质量的模式,不同的输出通道具有不同的优先级,某一优先级的输出通道的资源状态信息只对对应优先级的输入源有效,这一输出通道将只接收对应优先级的输入源的数据。为了便于说明,本实施例中记输入数据源的数量为n,n个输入源依次为{I 0 , I 1 , I 2 , …, I n-1 },输出通道的数量为m,m个输出通道依次为{O 0 , O 1 , O 2 , …, O m-1 };记n个输入源的请求向量为{r 0 , r 1 , r 2 , …, r n-1 },r i 为0或1,其中i=0, 1, 2, …, n-1,r i 为0时表示第i个输入源不存在数据请求,r i 为1时表示第i个输入源存在数据请求;记m个输出通道的忙闲状态向量为{v 0 , v 1 , v 2 , …, v m-1 },v i 为0或1,其中i=0, 1, 2, …, m-1,v i 为0时表示第i个输出通道处于忙碌状态,当前无法接收新的数据处理请求,v i 为1时表示第i个输出通道处于空闲状态,此时可以接收新的数据处理请求。In this embodiment, the resource status information of all output channels is integrated into the same round-robin arbiter, so that all input data sources only use one round-robin arbiter to implement task scheduling to all output channels. When the round-robin arbiter arbitrates multiple requests, it needs to be guided by the resource status information of the output channel to decide which request the arbitration response should be returned to, and which output the answered input data should be distributed to. aisle. For the random distribution mode, the resource status information of all output channels will guide all input sources, and the output channels in the idle state will receive input data in turn; for the mode of distinguishing service quality, different output channels have different priorities The resource status information of the output channel of a certain priority is only valid for the input source of the corresponding priority, and this output channel will only receive the data of the input source of the corresponding priority. For convenience of description, in this embodiment, the number of input data sources is n , the n input sources are { I 0 , I 1 , I 2 , ..., I n-1 } in sequence, and the number of output channels is m , m The output channels are { O 0 , O 1 , O 2 , …, O m-1 }; the request vector of n input sources is { r 0 , r 1 , r 2 , …, r n - 1 }, r i is 0 or 1, where i = 0, 1, 2, …, n -1, when ri is 0, it means that there is no data request for the ith input source , and when ri is 1, it means that there is data in the ith input source Request; remember the busy and idle state vectors of m output channels as { v 0 , v 1 , v 2 , …, v m-1 }, v i is 0 or 1, where i = 0, 1, 2, …, m -1, when v i is 0, it means that the ith output channel is in a busy state and cannot receive new data processing requests. When v i is 1, it means that the ith output channel is in an idle state, and new data processing can be received at this time. ask.
本实施例中,根据控制参数mode_sel选择采用随机分发模式或区分服务质量模式进行调度具体是指:判断控制参数mode_sel,当控制参数mode_sel为第一设定值时采用随机分发模式调度;当控制参数mode_sel为第二设定值时采用区分服务质量模式调度。控制参数mode_sel为0时,指示当前工作模式为随机通道模式(Random模式),即处于空闲状态的输出通道将会轮流接收输入数据;控制参数mode_sel为1时,指示当前工作模式为区分服务质量模式(QoS模式),即所有输出通道被划分为多组具有不同优先级的通道,某组输出通道将只接收对应优先级的输入源的数据。In this embodiment, selecting the random distribution mode or the differentiated service quality mode for scheduling according to the control parameter mode_sel specifically refers to: judging the control parameter mode_sel , and using the random distribution mode for scheduling when the control parameter mode_sel is the first set value; When mode_sel is the second set value, the differentiated quality of service mode scheduling is adopted. When the control parameter mode_sel is 0, it indicates that the current working mode is the random channel mode (Random mode), that is, the output channel in the idle state will receive input data in turn; when the control parameter mode_sel is 1, it indicates that the current working mode is the differentiated service quality mode. (QoS mode), that is, all output channels are divided into multiple groups of channels with different priorities, and a certain group of output channels will only receive data from the input source of the corresponding priority.
本实施例中将随机分发模式简称为Random模式,如图2所示,Random模式需要将控制参数mode_sel配置为0,使得所有的输入数据源可以公平地使用所有的输出通道。本实施例中,在随机分发模式下:In this embodiment, the random distribution mode is simply referred to as the random mode. As shown in FIG. 2 , in the random mode, the control parameter mode_sel needs to be set to 0, so that all the input data sources can use all the output channels fairly. In this embodiment, in the random distribution mode:
轮转仲裁器的仲裁令牌轮转规则如下:仲裁令牌在完成一次仲裁应答后将会传递给当前得到令牌的输入源的下一个输入源,即假设I i 得到了仲裁应答,仲裁令牌将会传递给I (i+1) mod n ;仲裁应答的执行规则如下:如果所有v i 均为0,表示所有输出通道均未空闲,这时所有输入源都无法得到仲裁应答;当存在至少一个v i 为1时,表示至少有一个输出通道可以接收数据处理请求,假设此时仲裁令牌在I i 位置,如果r i 为1,表示I i 存在数据请求,那么I i 将得到仲裁应答;如果r i 为0,表示I i 不存在数据请求,那么依次向后查看I i+1 , I i+2 , I i+3 ,…, I n-1, I 0 , I 1 , I i-1 ,I i 之后的第一个存在数据请求的输入源将得到仲裁应答;输出通道的选择规则如下:使用一个输出通道选择令牌实现输出通道的轮转,初始状态下,通道选择令牌在O 0 手中,第一个得到仲裁应答的输入源将数据输出到O 0 ;然后通道选择令牌会轮转到O 1 手中,以此类推;当通道选择令牌轮转到O i 手中时,若v i 为1,表示O i 处于空闲状态,则当前得到仲裁应答的输入源将选择O i 作为输出通道;若v i 为0,表示O i 未处于空闲状态,则当前得到仲裁应答的输入源将选择O i 之后的第一个空闲的输出通道(如O i+1 空闲,则选择O i+1 ),同时,通道选择令牌轮转到当前被选中之后的输出通道的下一个输出通道。The arbitration token rotation rules of the round-robin arbiter are as follows: after completing an arbitration response, the arbitration token will be passed to the next input source of the input source that currently obtains the token, that is, assuming that I i has obtained the arbitration response, the arbitration token will be It will be passed to I (i+1) mod n ; the execution rules of the arbitration response are as follows: if all v i are 0, it means that all output channels are not idle, then all input sources cannot get the arbitration response; when there is at least one When v i is 1, it means that at least one output channel can receive data processing requests, assuming that the arbitration token is at the position of I i , if ri is 1, it means that there is a data request for I i , then I i will get an arbitration response; If ri is 0, it means that there is no data request for I i , then look backwards in sequence I i +1 , I i+2 , I i+3 ,..., I n-1, I 0 , I 1 , I i- 1. The first input source with a data request after I i will get an arbitration response; the selection rule of the output channel is as follows: use an output channel selection token to realize the rotation of the output channel. In the initial state, the channel selection token is at 0 . 0 , the first input source that gets the arbitration response will output data to O 0 ; then the channel selection token will be rotated to O 1 , and so on; when the channel selection token is rotated to O i , if v i If it is 1, it means that O i is in an idle state, then the input source that has received the arbitration response will select O i as the output channel; if v i is 0, it means that O i is not in an idle state, then the input source that has received the arbitration response will select O i as the output channel. The first idle output channel after O i (if O i+1 is idle, select O i+1 ), and at the same time, the channel selection token turns to the next output channel after the currently selected output channel.
下文以8输入4输出(即n=8、m=4)的多输入多输出多服务等级数据队列(Arbiter)为例,对本实施例的多输入多输出多服务等级数据队列调度方法进行说明。The following takes the MIMO data queue (Arbiter) with 8 inputs and 4 outputs (ie, n =8, m =4) as an example to describe the scheduling method of the MIMO data queue in this embodiment.
如图2所示,初始状态下,r i =0(其中i=0, 1, 2, …, 7),v i =1(其中i=0, 1, 2,3),仲裁器令牌在I 0 上,通道选择令牌在O 0 上;将mode_sel控制参数配置为0进入Random模式;As shown in Figure 2, in the initial state, ri = 0 (where i = 0, 1, 2, ..., 7), v i =1 (where i = 0, 1, 2, 3), the arbiter token On I 0 , the channel selection token is on O 0 ; configure the mode_sel control parameter to 0 to enter Random mode;
1、T0时刻(仲裁器令牌位于无数据请求的输入源上的情形),r 1 , r 2 , r 4 变为1,由于令牌在I 0 上,但r 0 为0,因此I 1 获得仲裁应答,r 1 在得到应答后将变为0;由于通道选择令牌在O 0 上,且v 0 为1,因此获得应答的I 1 将选择O 0 输出,v 0 将变为0;同时,仲裁器令牌轮转到I 2 上,通道选择令牌轮转到O 1 上;1. At time T0 (the case where the arbiter token is on the input source without data request), r 1 , r 2 , r 4 become 1, since the token is on I 0 , but r 0 is 0, so I 1 Get the arbitration reply, r 1 will become 0 after getting the reply; since the channel selection token is on O 0 , and v 0 is 1, the I 1 that gets the reply will select O 0 output, and v 0 will become 0; At the same time, the arbiter token is rotated to I 2 , and the channel selection token is rotated to O 1 ;
2、T1时刻(仲裁器令牌位于有数据请求的输入源上的情形),r 2 ,r 4 仍在等待轮转仲裁器应答,因此r 2 ,r 4 仍为1,另外,r 1 由于出现了新的数据请求而再次变为1,r 6 也因为有数据请求而变为1;由于仲裁器令牌在I 2 上,且r 2 为1,因此I 2 获得仲裁应答,r 2 在得到应答后将变为0;由于通道选择令牌在O 1 上,且v 1 为1,因此获得应答的I 2 将选择O 1 输出,v 1 将变为0;同时,仲裁器令牌轮转到I 3 上,通道选择令牌轮转到O 2 上;2. At time T1 (the arbiter token is located on the input source with data request), r 2 , r 4 are still waiting for the response of the round-robin arbiter, so r 2 , r 4 are still 1, in addition, r 1 is due to the occurrence of It becomes 1 again due to a new data request, and r 6 also becomes 1 because there is a data request; since the arbiter token is on I 2 , and r 2 is 1, I 2 gets the arbitration response, and r 2 gets the arbitration response. will become 0 after answering; since the channel select token is on O 1 and v 1 is 1, the I 2 that gets the answer will select O 1 output, and v 1 will become 0; at the same time, the arbiter token rotates to On I 3 , the channel selection token is rotated to O 2 ;
3、T2时刻(通道选择令牌位于非空闲的输出通道上的情形),由于经过一段时间后,部分输出通道可能变为非空闲状态,假设此时只有v 0 , v 2 为1,另外,r 0 , r 3 , r 4 , r 6 为1,仲裁器令牌在I 7 上,通道选择令牌在O 3 上;由于r 7 为0,仲裁器令牌在I 7 上,因此I 0 获得仲裁应答,r 0 在得到应答后将变为0;由于通道选择令牌在O 3 上,但v 3 为0,因此获得应答的I 0 将选择下一个空闲的O 0 输出,v 0 将变为0;同时,仲裁器令牌轮转到I 1 上,通道选择令牌轮转到O 1 上;3. At time T2 (when the channel selection token is located on a non-idle output channel), some output channels may become non-idle after a period of time, assuming that only v 0 and v 2 are 1 at this time. In addition, r 0 , r 3 , r 4 , r 6 are 1, the arbiter token is on I 7 , and the channel selection token is on O 3 ; since r 7 is 0, the arbiter token is on I 7 , so I 0 get the arbitration answer, r 0 will become 0 after getting the answer; since the channel select token is on O 3 , but v 3 is 0, the I 0 getting the answer will select the next free O 0 output, v 0 will becomes 0; at the same time, the arbiter token is rotated to I 1 , and the channel selection token is rotated to O 1 ;
以此类推,轮转仲裁器持续进行调度作业。And so on, the round-robin arbiter continues to schedule jobs.
本实施例中将区分服务质量模式简称为QoS模式,如图3所示,QoS模式需要将控制参数mode_sel配置为1,使得所有的输入数据源可以公平地使用所有的输出通道。本实施例中,区分服务质量模式下所有输入源、输出通道被划分为不同优先级具体是指通过配置参数priority_vector0配置每个输入源的优先级,通过配置参数priority_vector1用于配置每个输出通道的优先级。记共有d个不同的优先级,配置参数priority_vector0用于配置每个输入数据源的优先级,依次为{p 0 , p 1 , p 2 , …, p n-1 }(其中p i = 0, 1, 2, …, d-1,其中i=0, 1, 2, …, n-1);配置参数priority_vector1用于配置每个输出通道的优先级,依次为{q 0 , q 1 , q 2 , …, q m-1 }(其中q i = 0, 1, 2, …, d-1,其中i=0, 1, 2, …, m-1)。将mode_sel控制参数配置为1,使得某一优先级的输出通道的资源状态信息只对对应优先级的输入源有效,这一输出通道将只接收对应优先级的输入源的数据。另外,按照应用需求对priority_vector0参数进行配置,同时对priority_vector1参数进行配置,目的是使得优先级较高的任务可以得到更多的输出通道。所有的输入源仍然仅使用一个仲裁器进行数据调度,但不同优先级的输入源将根据不同的priority_vector0/1参数进行区分。In this embodiment, the differentiated quality of service mode is referred to as QoS mode for short. As shown in FIG. 3 , in the QoS mode, the control parameter mode_sel needs to be set to 1, so that all input data sources can use all output channels fairly. In this embodiment, all input sources and output channels are divided into different priorities in the distinguishing quality of service mode. Specifically, the priority of each input source is configured by the configuration parameter priority_vector0 , and the priority of each output channel is configured by the configuration parameter priority_vector1 . priority. There are d different priorities in total. The configuration parameter priority_vector0 is used to configure the priority of each input data source, which is { p 0 , p 1 , p 2 , …, p n-1 } (where p i = 0, 1, 2, …, d- 1, where i = 0, 1, 2, …, n- 1); the configuration parameter priority_vector1 is used to configure the priority of each output channel, in order { q 0 , q 1 , q 2 , …, q m-1 } (where q i = 0, 1, 2, …, d-1 , where i = 0, 1, 2, …, m-1 ). Set the mode_sel control parameter to 1, so that the resource status information of the output channel of a certain priority is only valid for the input source of the corresponding priority, and this output channel will only receive the data of the input source of the corresponding priority. In addition, the priority_vector0 parameter is configured according to the application requirements, and the priority_vector1 parameter is configured at the same time, so that the task with higher priority can obtain more output channels. All input sources still use only one arbiter for data scheduling, but input sources with different priorities will be distinguished according to different priority_vector0/1 parameters.
在区分服务质量模式下:In differentiated quality of service mode:
轮转仲裁器的仲裁令牌轮转规则如下:仲裁令牌在完成一次仲裁应答后将会传递给当前得到令牌的输入源的下一个输入源,即假设I i 得到了仲裁应答,仲裁令牌将会传递给I (i+1) mod n ;仲裁应答的执行规则如下:如果所有v i 均为0,表示所有输出通道均未空闲,这时所有输入源都无法得到仲裁应答;当存在至少一个v i 为1时,表示至少有一个输出通道可以接收数据处理请求,假设此时仲裁令牌在I i 位置,如果r i 为1且所有与p i 相同的q j 对应的输出通道O j 中存在一个空闲通道,即v j =1,这表示I i 存在数据请求且支持当前优先级的输出通道中存在一个空闲通道,那么I i 将得到仲裁应答;如果r i 为0,表示I i 不存在数据请求,那么依次向后查看I i+1 , I i+2 , I i+3 , …, I n-1, I 0 , I 1 , I i-1 ,直到找到一个I k 符合如下条件:r k 为1且所有与p k 相同的q k 对应的输出通道O k 中存在一个空闲通道,即v k =1,则I k 将得到应答;输出通道的选择规则如下:每组具有相同优先级的输出通道使用各自的输出通道选择令牌实现本组内输出通道的轮转;初始状态下,每组具有相同优先级的输出通道的通道选择令牌在该组通道的第一个通道上;当该组的某个数据源得到仲裁应答后,若该组优先级的通道选择令牌所在的输出通道的v i 为1,表示输出通道O i 处于空闲状态,则当前得到仲裁应答的输入源将选择O i 作为输出通道;若v i 为0,表示O i 未处于空闲状态,则当前得到仲裁应答的输入源将选择O i 之后的本组内的第一个空闲的输出通道,同时通道选择令牌轮转到当前被选中之后的输出通道的本组内的下一个输出通道。The arbitration token rotation rules of the round-robin arbiter are as follows: after completing an arbitration response, the arbitration token will be passed to the next input source of the input source that currently obtains the token, that is, assuming that I i has obtained the arbitration response, the arbitration token will be It will be passed to I (i+1) mod n ; the execution rules of the arbitration response are as follows: if all v i are 0, it means that all output channels are not idle, then all input sources cannot get the arbitration response; when there is at least one When v i is 1, it means that at least one output channel can receive data processing requests, assuming that the arbitration token is at the position of I i at this time, if ri is 1 and all the output channels O j corresponding to q j that are the same as p i are in the output channel O j There is an idle channel, that is, v j =1, which means that I i has a data request and there is an idle channel in the output channel that supports the current priority, then I i will get an arbitration response; if ri is 0, it means that I i is not . If there is a data request, then look backwards in sequence I i+1 , I i+2 , I i+3 , ..., I n-1, I 0 , I 1 , I i-1 , until an I k is found that meets the following conditions : If r k is 1 and there is an idle channel in all output channels O k corresponding to the same q k as p k , that is, v k =1, then I k will be answered; the selection rules of output channels are as follows: each group has the same The output channels of the priority use their respective output channel selection tokens to realize the rotation of the output channels in this group; in the initial state, the channel selection tokens of each group of output channels with the same priority are on the first channel of the group. ; After a certain data source of the group gets the arbitration response, if the output channel where the channel selection token of the priority group is located is 1, it means that the output channel O i is in an idle state, then the input of the arbitration response is currently obtained . The source will select O i as the output channel; if v i is 0, indicating that O i is not in an idle state, the input source that has received the arbitration response will select the first idle output channel in the group after O i , and at the same time The channel selection token rotates to the next output channel in the group after the currently selected output channel.
如图3所示,初始状态下,r i =0(其中i=0, 1, 2, …, 7),v i =1(其中i=0, 1, 2,3),仲裁器令牌在I 0 上,通道选择令牌在O 0 上;首先将mode_sel控制参数配置为1以进入QoS模式。其次将priority_vector0配置为{0, 0, 0, 0, 1, 1, 1, 1},即I 0 , I 1 , I 2 , I 3 的优先级为0, I 4 , I 5 , I 6 , I 7 的优先级为1(假设共支持2种优先级);然后将priority_vector1配置为{0, 0, 0, 1},即O 0 , O 1 , O 2 可接收优先级为0的输入数据,O 3 可接收优先级为1的输入数据。As shown in Figure 3, in the initial state, ri = 0 (where i = 0, 1, 2, ..., 7), v i =1 (where i = 0, 1, 2, 3), the arbiter token On I 0 , the channel selection token is on O 0 ; first configure the mode_sel control parameter to 1 to enter QoS mode. Second, configure priority_vector0 as {0, 0, 0, 0, 1, 1, 1, 1}, i.e. priority of I 0 , I 1 , I 2 , I 3 is 0, I 4 , I 5 , I 6 , The priority of I 7 is 1 (assuming a total of 2 priorities are supported); then configure priority_vector1 as {0, 0, 0, 1}, that is, O 0 , O 1 , O 2 can receive input data with
1、T0时刻(仲裁器令牌位于无数据请求的输入源上的情形),r 1 , r 2 , r 4 变为1,由于令牌在I 0 上,但r 0 为0,因此I 1 获得仲裁应答,r 1 在得到应答后将变为0;由于I 1 的优先级为0,而优先级为0的通道选择令牌在O 0 上,且v 0 为1,因此获得应答的I 1 将选择O 0 输出,v 0 将变为0;同时,仲裁器令牌轮转到I 2 上,优先级0的通道选择令牌轮转到O 1 上,优先级1的通道选择令牌仍位于O 3 上;1. At time T0 (the case where the arbiter token is on the input source without data request), r 1 , r 2 , r 4 become 1, since the token is on I 0 , but r 0 is 0, so I 1 get the arbitration reply, r 1 will become 0 after getting the reply; since the priority of I 1 is 0, and the channel selection token with
2、T1时刻(仲裁器令牌位于有数据请求的输入源上的情形),r 2 ,r 4 仍在等待轮转仲裁器应答,因此r 2 ,r 4 仍为1,另外,r 1 由于出现了新的数据请求而再次变为1,r 6 也因为有数据请求而变为1;由于仲裁器令牌在I 2 上,且r 2 为1,因此I 2 获得仲裁应答,r 2 在得到应答后将变为0;由于I 2 的优先级为0,而优先级为0的通道选择令牌在O 1 上,且v 1 为1,因此获得应答的I 2 将选择O 1 输出,v 1 将变为0;同时,仲裁器令牌轮转到I 3 上,优先级0的通道选择令牌轮转到O 2 上,优先级1的通道选择令牌仍位于O 3 上;2. At time T1 (the arbiter token is located on the input source with data request), r 2 , r 4 are still waiting for the response of the round-robin arbiter, so r 2 , r 4 are still 1, in addition, r 1 is due to the occurrence of It becomes 1 again due to a new data request, and r 6 also becomes 1 because there is a data request; since the arbiter token is on I 2 , and r 2 is 1, I 2 gets the arbitration response, and r 2 gets the arbitration response. will become 0 after answer; since I 2 has
3、T2时刻(轮转仲裁器应答从优先级0切换到优先级1的情形),若r 1 , r 4 , r 6 为1,由于仲裁器令牌在I 3 上,但r 3 为0,因此I 4 获得仲裁应答,r4在得到应答后将变为0;由于I 4 的优先级为1,而优先级为1的通道选择令牌在O 3 上,且v 3 为1,因此获得应答的I 4 将选择O 3 输出,v 3 将变为0;同时,仲裁器令牌轮转到I 5 上,优先级0的通道选择令牌仍保持在O 2 上,由于优先级1的输出通道只有O 3 ,因此优先级1的通道选择令牌仍位于O 3 上;3. At time T2 (the case where the round-robin arbiter responds from
4、T3时刻(优先级1无通道空闲的情形),若r 1 , r 6 为1,由于仲裁器令牌在I 5 上,I 5 的优先级为1,而可以接收优先级1的输入请求的输出通道只有O 3 ,且未处于空闲状态,因此r 6 为1的I 6 也无法获得仲裁应答,进而,优先级为0的I 1 得到了仲裁应答,r 1 在得到应答后将变为0;由于I 1 的优先级为0,而优先级为0的通道选择令牌在O 2 上,且v 2 为1,因此获得应答的I 1 将选择O 2 输出,v 2 将变为0;同时,仲裁器令牌轮转到I 2 上,优先级0的通道选择令牌轮转到O 0 上,优先级1的通道选择令牌仍位于O 3 上;4. At time T3 (the case where there is no idle channel for priority 1), if r 1 and r 6 are 1, since the arbiter token is on I 5 , the priority of I 5 is 1, and the input of
以此类推,轮转仲裁器持续进行调度作业。And so on, the round-robin arbiter continues to schedule jobs.
此外,本实施例还提供一种多输入多输出多服务等级数据队列的调度装置,该调度装置被编程或配置以执行本实施例前述多输入多输出多服务等级数据队列的调度方法的步骤。此外,本实施例还提供一种微处理器,该微处理器中包含多输入多输出多服务等级数据队列以及调度装置,该调度装置被编程或配置以执行本实施例前述多输入多输出多服务等级数据队列的调度方法的步骤。此外,本实施例还提供一种计算机设备,至少包括微处理器和存储器,该微处理器中包含多输入多输出多服务等级数据队列以及调度装置,该调度装置被编程或配置以执行本实施例前述多输入多输出多服务等级数据队列的调度方法的步骤。此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有被编程或配置以执行本实施例前述多输入多输出多服务等级数据队列的调度方法的计算机程序。In addition, this embodiment also provides a scheduling apparatus for MIMO multi-level of service data queues, the scheduling apparatus is programmed or configured to execute the steps of the aforementioned scheduling method for MIMO multi-level of service data queues in this embodiment. In addition, the present embodiment also provides a microprocessor, which includes a multiple-input multiple-output multiple service level data queue and a scheduling device, and the scheduling device is programmed or configured to execute the aforementioned multiple-input multiple-output multiple-input multiple-output multiple Steps of a scheduling method for a class of service data queue. In addition, this embodiment also provides a computer device, including at least a microprocessor and a memory, the microprocessor including a multiple-input multiple-output multiple service level data queue and a scheduling device, the scheduling device being programmed or configured to execute the present embodiment For example, the steps of the scheduling method for the multiple-input multiple-output multiple service level data queues are described above. In addition, the present embodiment also provides a computer-readable storage medium, on which is stored a computer program programmed or configured to execute the aforementioned scheduling method of the MIMO multi-level of service data queue of the present embodiment.
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。As will be appreciated by those skilled in the art, the embodiments of the present application may be provided as a method, a system, or a 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, etc.) having computer-usable program code embodied therein. The present application refers to flowcharts of methods, apparatus (systems), and computer program products according to embodiments of the present application and/or processor-executed instructions generated for implementing a process or processes and/or block diagrams in a flowchart. A means for the function specified in a block or blocks. These computer program instructions may also be stored in a computer-readable memory capable of directing a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory result in an article of manufacture comprising instruction means, the instructions An apparatus implements the functions specified in a flow or flows of the flowcharts and/or a block or blocks of the block diagrams. These computer program instructions can also be loaded on a computer or other programmable data processing device to cause a series of operational steps to be performed on the computer or other programmable device to produce a computer-implemented process such that The instructions provide steps for implementing the functions specified in one or more of the flowcharts and/or one or more blocks of the block diagrams.
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。The above are only the preferred embodiments of the present invention, and the protection scope of the present invention is not limited to the above-mentioned embodiments, and all technical solutions under the idea of the present invention belong to the protection scope of the present invention. It should be pointed out that for those skilled in the art, some improvements and modifications without departing from the principle of the present invention should also be regarded as the protection scope of the present invention.
Claims (9)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202010457370.3A CN111666139B (en) | 2020-05-26 | 2020-05-26 | A scheduling method and device for multiple input multiple output multiple service level data queues |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202010457370.3A CN111666139B (en) | 2020-05-26 | 2020-05-26 | A scheduling method and device for multiple input multiple output multiple service level data queues |
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 | A scheduling method and device for multiple input multiple output multiple service level data queues |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN111666139B (en) |
Cited By (2)
| 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)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101923525A (en) * | 2010-08-11 | 2010-12-22 | 清华大学 | A general-purpose input-output circuit with event capture 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 |
-
2020
- 2020-05-26 CN CN202010457370.3A patent/CN111666139B/en active Active
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101923525A (en) * | 2010-08-11 | 2010-12-22 | 清华大学 | A general-purpose input-output circuit with event capture 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)
| 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 |
|---|---|---|
| US20070174529A1 (en) | Queue manager having a multi-level arbitrator | |
| EP1435043B1 (en) | Method and apparatus for scheduling a resource to meet quality-of-service restrictions | |
| US7539199B2 (en) | Switch fabric scheduling with fairness and priority consideration | |
| EP1774714B1 (en) | Hierarchal scheduler with multiple scheduling lanes | |
| JP4095032B2 (en) | Method and apparatus for scheduling requests to a dynamic random access memory device | |
| US8392633B2 (en) | Scheduling requesters of a shared storage resource | |
| CN109408215B (en) | A task scheduling method and device for computing nodes | |
| US20050259574A1 (en) | Method and apparatus for implementing scheduling algorithms in a network element | |
| US8897292B2 (en) | Low pass filter for hierarchical pipelined distributed scheduling traffic manager | |
| US10447608B2 (en) | Packet scheduling using hierarchical scheduling process with priority propagation | |
| US9129060B2 (en) | QoS based dynamic execution engine selection | |
| WO2010125448A1 (en) | Hierarchical pipelined distributed scheduling traffic manager | |
| EP2525534B1 (en) | Network traffic scheduler and associated method, computer program and computer program product | |
| JP2005505854A (en) | Method and apparatus for scheduling requests for a resource using configurable thresholds | |
| US10110515B2 (en) | Packet scheduling using hierarchical scheduling process | |
| CN111666139B (en) | A scheduling method and device for multiple input multiple output multiple service level data queues | |
| Saroj et al. | A novel CPU scheduling with variable time quantum based on mean difference of burst time | |
| CA2484427C (en) | Scheduling using quantum and deficit values | |
| Iqbal et al. | Enhancing task execution: a dual-layer approach with multi-queue adaptive priority scheduling | |
| US11061724B2 (en) | Programmable hardware scheduler for digital processing systems | |
| US10713089B2 (en) | Method and apparatus for load balancing of jobs scheduled for processing | |
| Prajana et al. | Adaptive Multi-Level Feedback Round-Robin | |
| US11113101B2 (en) | Method and apparatus for scheduling arbitration among a plurality of service requestors | |
| EP1335540B1 (en) | Communications system and method utilizing a device that performs per-service queuing | |
| CN118660345A (en) | Multifunctional domain resource scheduling method, device, computer equipment, readable storage medium and program product |
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 |