CN100382533C - 一种调度器的分级轮询方法 - Google Patents
一种调度器的分级轮询方法 Download PDFInfo
- Publication number
- CN100382533C CN100382533C CNB2004100519310A CN200410051931A CN100382533C CN 100382533 C CN100382533 C CN 100382533C CN B2004100519310 A CNB2004100519310 A CN B2004100519310A CN 200410051931 A CN200410051931 A CN 200410051931A CN 100382533 C CN100382533 C CN 100382533C
- Authority
- CN
- China
- Prior art keywords
- signal
- application
- group
- polling
- poll
- 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
Links
Images
Landscapes
- Small-Scale Networks (AREA)
Abstract
本发明的一种调度器的分级轮询方法,其采用分级轮询调度器,当有N个请求,每个周期最多轮询M个请求,用以下方式进行申请信号组织:将这N个请求以M个申请为一组,共N/M组,每组共用1个信号向高一级调度器申请;在高一级的调度器中,将这N/M申请信号又以M个信号为一组,共(N/M)/M组,每组共用1个信号向更高一级调度器申请;在更高一级调度器中,对这(N/M)/M个申请信号再通过上述分级方式组织,直至能够在1个周期内调度本级的申请信号。本发明方法由于采用由上至下的方式分级轮询,轮询时间固定,效率高,所耗硬件资源也不多,所需时间不长,所需资源也不多,因此适用于申请数多,调度时延要求高的场合。
Description
技术领域
本发明涉及通信领域中轮询调度器,尤其涉及的是轮询调度器的一种分级实现方法。
背景技术
现有技术中的轮询是调度算法中最为普通的一种,如何实现对多申请(Request,以下简写为Req)快速轮询,从而调度出一个输出,是轮询算法的关键。
假设在硬件实现中每个时钟最多能轮询16个Req,对于1K个Req,如采用串行轮询调度器最多需要64个时钟才能选出1个。串行轮询调度器逻辑简单,耗费硬件资源少,但其缺点也是显而易见的,就是耗费时间过长。
为了克服串行轮询调度器所需时间过长的缺点,系统可采用多个轮询调度器进行并行轮询,如采用64个轮询调度器,每个轮询调度器模块轮询16个Req,则在1个周期内,可得到64个候选Req,然后再通过1个高层轮询调度器得到1个输出结果,如此耗费时间大大缩短,但并行轮询调度器硬件资源多。
实现轮询的方法很多,串行轮询调度器与并行轮询调度器是两个极端的情况,它们的优劣势非常明显,因此,现有技术都存有缺陷,而有待于改进和发展。
发明内容
本发明的目的在于提供一种调度器的分级轮询方法,是一种新的分级轮询调度器,综合串行轮询调度器与并行轮询调度器的优点,所耗资源不多,耗费时间也不长。
本发明的技术方案如下:
一种调度器的分级轮询方法,其采用分级轮询调度器,当有N个请求,每个周期最多轮询M个请求,该方法包括以下步骤:
步骤1:将这N个请求以M个申请为一组,共N/M组,每组共用1个信号组成上一级申请信号;
步骤2:在上一级申请信号中,将这N/M申请信号又以M个信号为一组,共(N/M)/M组,每组共用1个信号组成高一级申请;
步骤3:在高一级申请信号中,对这(N/M)/M个申请信号再通过上述分级方式组织,每组共用1个信号组成更高一级申请;
步骤4:按照步骤1和步骤2方法继续,直至能够在1个周期内调度本级的申请信号;
其中,N和M为表示请求和分组数目的自然数。
所述的方法,其中,所述分级轮询方法从最高一级的调度器开始轮询,根据上次轮询的现场值,选择信号为真的一组,依次采用下一级的调度器向下一分级进行轮询。
本发明所提供的一种调度器的分级轮询方法,由于采用由上至下的方式分级轮询,轮询时间固定,效率高,所耗硬件资源也不多,所需时间不长,所需资源也不多,因此适用于申请数多,调度时延要求高的场合。
附图说明
图1是本发明方法一具体实施例的三级调度流程图;
图2是本发明方法的4K条申请信号调度系统硬件实现图。
具体实施方式
以下将对本发明的具体实施方式加以详细说明:
本发明所述的调度器的分级轮询方法采用了分级轮询调度器,分级轮询调度器的思想在于将轮询范围逐渐求精,当有N个Req,每个周期最多轮询M个Req,用以下方式进行申请信号组织:
1)将这N个Req以M个申请为一组,共N/M组,每组共用1个信号组成上一级申请信号,该信号为一组中申请信号的或运算(申请信号为高电平有效时),共有N/M个申请信号;
2)在上一级申请信号中,将这N/M申请信号又以M个信号为一组,共(N/M)/M组,每组共用1个信号组成高一级申请信号,该信号为一组中申请信号的或运算(申请信号为高电平有效时),共有(N/M)/M个申请信号;
3)假设申请信号通过第1、2步的方式组织后,到本级后,调度器已经能够在1个时钟内,对(N/M)/M个申请信号进行轮询;
假设通过以上方式,最终有3级申请信号,则对于N个Req,分级轮询调度器通过以下方式进行调度:
1.第一级轮询:该级申请信号共(N/M)/M个。分级轮询调度器首先轮询输入的M个信号,并根据上次轮询的现场值,发现其中1个信号为真,这表示该申请信号所代表的下面M个申请有大于等于1个为真。
2.第二级轮询:该级申请信号共N/M个。分级轮询调度器再轮询下面的M个Req,并根据上次轮询的现场值,发现其中1个信号为真,这表示该申请信号所代表的下面M个申请有大于等于1个为真;
3.第三级轮询:该级申请信号共N个。分级轮询调度器在轮询下面的M个申请,并根据上次轮询的现场值,最终发现其中1个Req为真,该信号为真实的申请信号。
以上的三级调度流程如图1所示:
以下为本发明的另一具体实施例的说明:
如有4K个Req,设每个周期最多能轮询16个Req,如果时钟频率较低,则每个周期可轮询更多的Req,如32个或64个Req,这样使申请信号级别减少,使调度器的轮询效率得到提高。
用以下方式进行申请信号组织:
1)将这4K个Req以16个申请为一组,共256组,每组共用一个信号组成高一级申请信号,该信号为一组中申请信号的或运算(申请信号为高电平有效时),共有256个申请信号;
2)在高一级申请信号中,将这256申请信号又以16个为一组,共16组,每组共用一个信号组成最高级申请信号,该信号为一组中申请信号的或运算(申请信号为高电平有效时),共有16个申请信号;
3)对最高级的16个申请信号进行轮询调度。
根据各级的申请信号,对于4K个Req,分级轮询调度器通过以下方式进行调度:
1)第一级轮询:该级申请信号共16个。分级轮询调度器首先轮询输入的16个申请信号,并根据上次轮询的现场值,发现其中一个信号为真,这表示该申请信号所代表的下面16个申请有超过一个为真。
2)第二级轮询:该级申请信号共256个。分级轮询调度器再轮询下面的16个申请,并根据上次轮询的现场值,发现其中一个信号为真,这表示该申请信号所代表的下面16个申请有超过一个为真;
3)第三级轮询:该级申请信号共4K个。分级轮询调度器在轮询下面的16个申请,并根据上次轮询的现场值,发现其中一个信号为真,该信号为真实的申请信号。
有4K个申请信号,初始情况为所有申请都为假,以低电平表示,这时有第287个申请信号为真(高电平表示),其余申请信号为假。这时有以下表的三级申请信号表示。
表1 三级申请信号表
在表1中,没有括号的数据表示申请信号,有括号的数据表示当前的调度现场值。
第三级申请信号中,第18个数据为0x0002表示第287个申请信号为真,下次开始调度的现场值为0xF表示下次第三级调度开始的位置,当下次调度超过0xF时,现场值又从0x0开始。
第二级申请信号中,第2个数据为0x4000表示第18个申请信号为真,下次开始调度的现场值为0x2表示下次第二级调度开始的位置,当下次调度超过0xF时,现场值又从0x0开始。
第一级申请信号中,数据为0x4000表示第2个申请信号为真,下次开始调度的现场值为0x2表示下次第一级调度开始的位置,当下次调度超过0xF时,现场值又从0x0开始。
分级轮询调度器的工作步骤如下:
1)分级轮询调度器首先调度第一级申请信号,发现数据为0x4000,表示需要进一步轮询第二级申请信号中的第17到第32个数据,即第三级申请信号(实际申请信号)的第256个到第511个申请,此时将第一级调度现场值设为0x2,表示下次对该块数据的轮询从第3个申请信号开始。
2)分级轮询调度器进一步轮询第二级申请信号的第17到第32个数据,发现数据为0x4000,表示需要进一步轮询第三级申请信号(实际申请信号)的第272个到第288个数据,可以看出,这比第1步骤中将第三级申请信号(实际申请信号)的第256个到第511个申请的定位更加准确了。此时将第二级调度现场值设为0x2,表示对该数据下次轮询从第3个申请信号开始。
3)分级轮询调度器进一步轮询第三级申请信号的第272到第288个数据,发现数据为0x0002,表示第287个申请信号有效,此时将第三级调度现场值设为0xF,表示对该数据下次轮询从第16个申请信号开始。
如图2为4K条申请信号调度系统硬件实现图。图2中,“刷新申请信号模块”负责对第三级RAM(存储4K个第三级申请信号)、第二级RAM(存储256个第二级申请信号)、第一级REG(存储16个第一级申请信号)进行刷新。其中,第三级RAM和第二级RAM由双口RAM构成,第一级REG由寄存器构成。
相对应的,图2中的“三级调度模块”读取各级RAM和REG中的信号,通过分级轮询方式,实现对4K个申请信号的实时调度。
分级轮询调度器通过以上逐步求精的方法,在3个时钟周期(不包括从RAM中读取申请信号所需周期)就在4K个申请中得到了调度输出,所耗资源较并行轮询方法大大减少,以上的分级轮询调度器采用由上至下的方式,轮询时间固定,效率高,所耗硬件资源也不多。同理,该调度器可在4个时钟内对64K个申请进行调度,以此类推。
应当理解的是,本发明方法的上述实施例描述比较具体,并不能因此而理解为对本发明方法的专利保护范围的限制,其专利保护范围应以所附权利要求为准。
Claims (1)
1.一种调度器的分级轮询方法,其采用分级轮询调度器,当有N个请求,每个周期最多轮询M个请求,该方法包括以下步骤:
步骤1:将这N个请求以M个申请为一组,共N/M组,每组共用1个信号组成上一级申请信号;
步骤2:在上一级申请信号中,将这N/M申请信号又以M个信号为一组,共(N/M)/M组,每组共用1个信号组成高一级申请;
步骤3:在高一级申请信号中,对这(N/M)/M个申请信号再通过上述分级方式组织,每组共用1个信号组成更高一级申请;
步骤4:按照步骤1和步骤2方法继续,直至能够在1个周期内调度本级的申请信号;从最高一级的调度器开始轮询,根据上次轮询的现场值,选择信号为真的一组,依次采用下一级的调度器向下一分级进行轮询;
其中,N和M为表示请求和分组数目的自然数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100519310A CN100382533C (zh) | 2004-10-26 | 2004-10-26 | 一种调度器的分级轮询方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100519310A CN100382533C (zh) | 2004-10-26 | 2004-10-26 | 一种调度器的分级轮询方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1767489A CN1767489A (zh) | 2006-05-03 |
CN100382533C true CN100382533C (zh) | 2008-04-16 |
Family
ID=36743106
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100519310A Active CN100382533C (zh) | 2004-10-26 | 2004-10-26 | 一种调度器的分级轮询方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100382533C (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109936491B (zh) * | 2019-03-06 | 2020-05-22 | 珠海格力电器股份有限公司 | 用于提高通讯效率的通讯方法 |
CN111561766A (zh) * | 2020-04-14 | 2020-08-21 | 青岛海信日立空调系统有限公司 | 一种物联网空调机 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1338168A (zh) * | 1998-12-22 | 2002-02-27 | 鲍尔·埃克斯有限公司 | 用于带宽分配的分布式分级调度与仲裁 |
CN1457198A (zh) * | 2002-05-10 | 2003-11-19 | 华为技术有限公司 | Ip网络会议电视的会议调度系统与方法 |
US20040064679A1 (en) * | 2002-09-30 | 2004-04-01 | Black Bryan P. | Hierarchical scheduling windows |
US6721796B1 (en) * | 1999-07-22 | 2004-04-13 | Cisco Technology, Inc. | Hierarchical dynamic buffer management system and method |
-
2004
- 2004-10-26 CN CNB2004100519310A patent/CN100382533C/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1338168A (zh) * | 1998-12-22 | 2002-02-27 | 鲍尔·埃克斯有限公司 | 用于带宽分配的分布式分级调度与仲裁 |
US6721796B1 (en) * | 1999-07-22 | 2004-04-13 | Cisco Technology, Inc. | Hierarchical dynamic buffer management system and method |
CN1457198A (zh) * | 2002-05-10 | 2003-11-19 | 华为技术有限公司 | Ip网络会议电视的会议调度系统与方法 |
US20040064679A1 (en) * | 2002-09-30 | 2004-04-01 | Black Bryan P. | Hierarchical scheduling windows |
Also Published As
Publication number | Publication date |
---|---|
CN1767489A (zh) | 2006-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101510164B (zh) | 一种多业务调度方法、装置与系统 | |
US20070150687A1 (en) | Memory system with both single and consolidated commands | |
CN102025639A (zh) | 队列调度方法及系统 | |
CN203386459U (zh) | 一种支持灰度等级扩展的显示控制系统及驱动芯片 | |
CN103765384A (zh) | 数据处理系统和在数据处理系统中进行任务调度的方法 | |
CN101594299A (zh) | 基于链表的交换网络中队列缓冲管理方法 | |
CN102713852A (zh) | 一种多核处理器系统 | |
CN100450102C (zh) | 一种对多用户进行qos调度的方法和装置 | |
CN102880879A (zh) | 基于分布式和svm分类器的室外海量物体识别方法和系统 | |
CN104133777A (zh) | 一种共享存储系统及其使用方法 | |
CN100382533C (zh) | 一种调度器的分级轮询方法 | |
CN104156333A (zh) | 一种基于fpga的uart多接口扩展系统和方法 | |
CN100481048C (zh) | 总线仲裁方法 | |
CN101038574A (zh) | 总线仲裁装置 | |
CN109002342A (zh) | 一种基于OpenStack的计算资源定向调度方法及系统 | |
WO2010096635A1 (en) | Methods and apparatus for resource sharing in a programmable interrupt controller | |
CN100541463C (zh) | 仲裁访问的装置和方法 | |
CN101694648B (zh) | 傅里叶变换处理方法和装置 | |
CN105701048B (zh) | 一种多通道数据动态传输方法 | |
CN102118304B (zh) | 一种信元交换方法和装置 | |
CN102497316B (zh) | Clos交换网络中基于信元的正交多子调度方法 | |
CN101415025B (zh) | 网络数据处理的方法、装置和系统 | |
CN102298782B (zh) | 用于无损视频压缩的参数估计的系统、方法 | |
CN214474972U (zh) | 一种PCIE和RapidIO数据转换装置 | |
CN101587461A (zh) | 存储器访问调度装置、调度方法与存储器访问控制系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |