调度装置
技术领域
本发明涉及一种调度装置,尤其涉及一种高速硬件调度器。
背景技术
高速硬件调度器是当今的应用中需要的,尤其是对于业务服务质量(QoS)、CPU核心之间的任务分布以及其它应用。调度器接收请求集合或输入队列状态集合,且根据调度方案产生对那些请求或输入队列的允许。每一允许可被解释为对发送包或数据信息块或者使用共享资源的许可。
调度方案的类型从简单的轮循到具有若干分层、权重和优先级等级的极复杂方案而变化。标准硬件调度器实现最常见的调度方案,但具有过低允许速率的主要缺陷。在这方面中,两个参数是最重要的。第一者是调度器可产生的最大允许速率。第二者是从请求直到所述请求的允许所存在的最小时延。
在先前的现有技术中,硬件调度器通常可每两个时钟周期执行不超过一个允许,而时延可占用几个到甚至一千个周期以便服务于新请求。这是由调度方案的复杂性导致。
发明内容
本发明的目的是提供一种快速调度器,其在低时延下以比系统时钟高的速率允许请求。
独立权利要求的特征可以实现这个目的。进一步的实施形式通过从属权利要求、说明书以及图式清楚可见。
为了详细描述本发明,将使用以下术语、缩写和符号:
QoS: 服务质量(quality of service),
CPU: 中央处理单元(central processing unit),
RR: 轮循(round-robin),
RCS: 速率控制整形器或速率限制单元(rate control shaper or ratelimiting unit),
LVP: 查找向量准备单元(lookup vector prepare unit),
PFF: 前缀森林单元(prefix forest unit),
req_vec: 请求集合或请求向量(set of requests or vector ofrequests),
ack_vec: 确认集合或确认向量(set of acknowledgements or vector ofacknowledgements),
raw_mask: 选择掩码集合或选择掩码向量(set of selection masks orvector of selection masks),
CMP: 比较模块(compare module),
NASO: 与非移一位模块(Not And Shift One module),
TE,Bld,Sel: 指定可具有不同优先级的不同队列群组(designate differentqueue groups which may have different priorities),
PD: 传播延迟(propagation delay),
FA,HA: 实施前缀树的加法器(adders implementing the prefix tree)。
根据第一方面,本发明涉及一种调度装置,用于接收请求集合(a set ofrequests)且提供对所述请求集合的允许集合(a set of grants),所述调度装置包括:查找向量准备单元(a lookup vector prepare unit),用于合并(merge)请求集合和选择掩码(a selection mask)以便提供查找向量准备请求集合(a lookup vector prepared setof requests)且提供对所述请求集合的确认集合(a set of acknowledgements);以及耦合到所述查找向量准备单元的前缀森林单元(a prefix forest unit),其中所述前缀森林单元用于提供作为所述新请求集合(the new set of requests)的函数的所述允许集合且提供基于所述允许集合的所述选择掩码。
所述调度装置可实施为同步硬件电路调度器(a synchronous hardware circuitscheduler)。所述调度装置能够根据调度方案选择N个请求,例如输入队列,且所述调度装置能够在每一时钟周期中执行P个选择(selections)或分发(issues)。因此,所述调度装置允许在低时延下以比系统时钟高的速率处理请求。
所述调度装置可用作CPU之间的任务的调度器,或在交换或路由单元上调度数据包。所述调度装置还可用作用于更复杂的调度器的构建模块以便产生更复杂的调度方案。在此意义上所述调度装置可以是级联的若干任务调度器,所述调度器以不同方式配置以便产生分层式调度方案。
在根据第一方面的调度装置的第一可能的实施形式中,所述调度装置包括耦合到所述查找向量准备单元的速率限制单元(a rate limiting unit),其中所述速率限制单元用于根据调度方案(a scheduling scheme)限制所述请求集合的速率以提供速率受限请求集合(a rate-limited set of requests),相应的,由所述查找向量准备单元合并的所述请求集合是所述速率受限请求集合。
通过根据调度方案对请求集合进行速率限制,所述调度装置能够产生分层式调度方案。
在根据第一方面的第一实施形式的调度装置的第二可能的实施形式中,速率限制单元用于过滤已通过(pass)确认的可配置速率(a configurable rate ofacknowledgments)的请求群组(requestor-groups)的请求(requests)。
所述速率限制机制因此可用于实施可配置速率限制。
当队列已接收到确认时,所述队列被告知将允许请求且所述队列可继续发送下一请求。所述请求,例如所述队列因此被告知调度装置的内部状态。
在根据第一方面的先前实施形式中的任一者的调度装置的第三可能的实施形式中,调度方案是基于请求集合和确认集合所指派给的队列群组。
当在调度方案中实施不同队列群组时,调度装置可实施优先级调度,其中重要请求放置于高优先级的队列群组中。
在根据第一方面的第三实施形式的调度装置的第四可能的实施形式中,速率限制单元包括桶缓冲器的集合(a set of bucket buffers),每一桶缓冲器被指派给所述队列群组中的一者用于存储所述确认集合中的确认,所述确认集合中的确认被指派给所述队列群组中的一者(each bucket buffer assigned to one of the queue groups forstoring acknowledgements of the set of acknowledgements assigned to the oneof the queue groups)。
不同桶缓冲器可实现不同队列群组。桶缓冲器可表示用于根据调度方案进行流量整形的整形器桶,例如整形器存储器。每一桶缓冲器可单独地执行队列群组的整形直到队列群组可遵照流行的流量合同进行发送。这可在指派给队列群组的桶缓冲器为空的情况下立即发生,在指派给队列群组的桶缓冲器填充到某一水平的情况下在某一延迟之后发生,或在桶缓冲器溢出的情况下从不发生。
在根据如此的第一方面或根据第一方面的先前实施形式中的任一者的调度装置的第五可能的实施形式中,查找向量准备单元包括:掩蔽单元,其用于基于选择掩码掩蔽当前请求集合以提供经掩蔽请求集合;联合单元,其用于合并所述经掩蔽请求集合与所述速率受限请求集合以提供当前请求集合;以及移位单元,其用于基于所述选择掩码的经移位版本移位所述当前请求集合以提供所述查找向量准备请求集合。
通过基于选择掩码掩蔽经移位请求集合,未允许的请求由查找向量准备单元以递归方式处理,这是存储器高效的且提供低延迟的快速处理。
在根据第一方面的第五实施形式的调度装置的第六可能的实施形式中,查找向量准备单元用于提供选择掩码的经移位版本以用于轮循所述速率受限请求集合。
通过执行轮循,查找向量准备单元可在指定时间内处理每一请求。最长路径的延迟减少,从而得到低的总延迟。
在根据如此的第一方面或根据第一方面的先前实施形式中的任一者的调度装置的第七可能的实施形式中,前缀森林单元包括前缀树。
前缀树较适合存储许多请求。不同于大多数其它算法,前缀树具有独特特征:代码路径且因此需要的时间对于插入、删除和查找操作来说是几乎相同的。因此,对于其中代码是以相等量度插入、删除和查找的情形,前缀树可胜过对分搜索树,以及提供CPU指令和分支高速缓存的较好基础。
在根据第一方面的第七实施形式的调度装置的第八可能的实施形式中,所述前缀森林单元的输出被确定为数字的集合Z(a set Z of numbers),且对于Z中的每一数字Zi,Xi+Yi=Zi成立。
当森林的输出是称为Z的数字集合且对于Z中的每一数字Zi来说关系Xi+Yi=Zi成立时,替代于执行实际加法,存在的选项是让所述机制的下一阶段、即比较阶段使用Xi和Yi的原料。前缀森林单元可增加其效率且以较高速度产生输出。
在根据第一方面的第八实施形式的调度装置的第九可能的实施形式中,前缀森林单元用于将Z中的一对Xi和Yi与已知选项集合(a known set of options)进行比较。
替代于将Z中的每一数字与相关值进行比较,前缀森林单元将一对与已知选项集合进行比较且通过此做法,前缀森林单元节省了由将Xi和Yi放置到加法装置中造成的时延。因此,调度装置的延迟减少。
在根据第一方面的第八或第九实施形式的调度装置的第十可能的实施形式中,所述前缀树用于针对N数目个输入值(a number of N input values)提供P数目个结果(anumber of P results),其中对于输入v(i)和整数i,所述前缀树的结果fz(i)是根据以下公式确定的:
根据第十实施形式的调度装置通过当接收到N个输入时提供P个输出来实现并行处理。因此,处理是高度高效的。可以用硬件使用VLSI描述、例如通过使用用于实施此函数的简单门来容易地实施前缀树的结果fz(i)。
在根据第一方面的第十实施形式的调度装置的第十一可能的实施形式中,所述前缀树用于提供所述选择掩码以便在大于P的结果与小于或等于P的结果之间进行区分。
选择掩码因此可充当用于所允许请求的最后向量的掩码。在例如二进制逻辑中,选择掩码提供用于控制和调度的高效方式。
根据第二方面,本发明涉及一种用于调度请求集合且提供对所述请求集合的允许集合的方法,所述方法包括:合并请求集合和选择掩码以便提供查找向量准备请求集合和对所述请求集合的确认集合;以及提供作为所述新请求集合的函数的所述允许集合且提供基于所述允许集合的所述选择掩码。
所述调度方法能够根据调度方案选择请求,例如输入队列,且在每一时钟周期中执行选择或问题。因此,所述调度方法允许在低时延下以比系统时钟高的速率处理请求。
在根据第二方面的方法的第一可能的实施形式中,所述方法进一步包括根据调度方案限制所述请求集合的速率以便提供速率受限请求集合,相应的,由所述查找向量准备单元合并的所述请求集合是所述速率受限请求集合。
这允许在选择请求时的灵活性。
在根据第二方面的第一实施形式的方法的第二可能的实施形式中,合并所述请求集合和选择掩码包括:基于所述选择掩码掩蔽(mask)当前请求集合(a current set ofrequests)以提供经掩蔽请求集合(a masked set of requests);合并所述经掩蔽请求集合与所述速率受限请求集合以提供所述当前请求集合;以及基于所述选择掩码的经移位版本(a shifted version)移位(shift)所述当前请求集合以提供所述查找向量准备请求集合。
每一请求得到高效地处理。所述方法允许实施用于请求的基于优先级的处理的优先级方案。
根据第三方面,本发明涉及一种用于接收请求集合且提供对请求集合的允许集合的调度装置,所述调度装置包括:接口1110和处理器1120。接口适合于接收请求集合202,且输出允许集合204和选择掩码210。根据图2到图4的先前实施例的一或多个单元呈处理器1120的形式,处理器1120执行所述单元的对应步骤以便提供其功能性。
附图说明
将关于以下图式描述本发明的其它实施例,其中:
图1展示根据实施形式的调度方案的框图;
图2展示根据实施形式的调度装置的框图;
图3展示根据实施形式的调度装置的框图;
图4展示根据实施形式的调度装置的速率限制单元的框图;
图5展示根据实施形式在调度装置的前缀森林单元中实施的前缀树的示意图;
图6展示根据实施形式的调度方法的示意图;
图7展示根据实施形式的调度方法900的合并903的流程图,以及
图8展示根据另一实施形式的调度装置200的框图。
具体实施方式
图1展示根据实施形式的调度方案100的框图。调度方案100在不同流量类型104a、104b、104c上执行具有聚合带宽限制、调用整形的在请求102之间的轮循(RR)101,但可使用同一机制应用不同类型的调度。
调度器方案100实施简单的调度仲裁,其包含简单的轮循101以及用于固定量的流量类型104a、104b和104c的速率限制机制103a、103b、103c。通过使用例如实施桶的存储器的第一整形器桶105a针对第一流量类型104a执行第一速率限制103a。通过使用例如实施桶的存储器的第二整形器桶105b针对第二流量类型104b执行第二速率限制103b。通过使用例如实施桶的存储器的第三整形器桶105c针对第三流量类型104c执行第三速率限制103c。根据可配置速率限制每一类型带宽,且如果带宽超过其允许的允许带宽,那么所述带宽的请求被掩蔽且将允许给予所有其余未掩蔽的流量类型。
图2展示根据实施形式的调度装置200的框图。在实施形式中,通过调度装置200应用如关于图1所描述的调度方案100。也称为调度器200的调度装置经配置用于接收请求集合“req vec”,即请求向量202,且用于提供对请求集合202的允许集合“Qsel_1、Qsel_2、...、Qsel_p”204。在图2中所描绘的实施形式中,请求集合202的大小是N,即,将N数目个请求输入到调度装置200。在图2中所描绘的实施形式中,允许集合204的大小是P,即,通过调度装置200提供P数目个允许。在实施形式中,通过调度装置200在每一时钟周期中接收N个请求,且通过调度装置200在每一时钟周期中提供P个允许。在实施形式中,通过调度装置200根据P个允许204在每一时钟周期中提供P个确认212。
调度装置200包括也称为速率控制整形器(RCS)201的速率限制单元、查找向量准备单元(LVP)203和前缀森林单元(PFF)205。速率限制单元201经配置用于根据调度方案限制请求集合202的速率。速率限制单元201基于请求集合202提供速率受限请求集合206。查找向量准备单元203耦合到速率限制单元201以使得速率限制单元201的输出是对查找向量准备单元203的输入。在实施形式中,一或多个功能或逻辑单元耦合到在速率限制单元201的输出与查找向量准备单元203的输入之间的路径中。在替代实施形式中,调度装置200并不包括速率限制单元201,在所述实施形式中,请求集合202被直接提供到查找向量准备单元203。
查找向量准备单元203用于取决于速率受限请求集合206与选择掩码“raw_mask”210的组合提供查找向量准备请求集合208。取决于所述组合,查找向量准备单元203提供对请求集合202的确认集合“ack_vec”,即确认向量212。在实施形式中,速率受限请求集合206和选择掩码210经合并以提供查找向量准备请求集合208和确认集合212。在另一实施形式中,查找向量准备单元203用于当请求集合202被直接提供到查找向量准备单元203时取决于请求集合202与选择掩码“raw_mask”210的组合而提供查找向量准备请求集合208。
前缀森林单元205耦合到查找向量准备单元203以使得查找向量准备单元203的输出是前缀森林单元205的输入。在实施形式中,一或多个功能或逻辑单元耦合到在查找向量准备单元203的输出与前缀森林单元205的输入之间的路径中。
前缀森林单元205用于提供作为查找向量准备请求集合208的函数的允许集合204。前缀森林单元205进一步用于基于允许集合204提供选择掩码210。下文关于图5和8描述前缀森林单元205的实施形式。
在实施形式中,调度装置200在N数目个请求202之后即刻提供P数目个允许204,其中数目P小于数目N。在实施形式中,数目P接近数目N以使得在每一时钟周期中调度N个请求中的大部分,且仅将N到P的较小数目的请求存储在调度装置200中用于进一步处理。在实施形式中,速率限制单元201用于取决于确认212的速率限制请求集合202的速率。如果确认的速率较高,那么由速率限制单元201执行的速率限制较小,因此调度装置200的吞吐量较高且调度装置200正处理的请求202的延迟时间较低。如果确认速率较小,那么由速率限制单元201执行的速率限制较高,因此调度装置200的吞吐量较低且调度装置200正处理的请求202的延迟时间较大。调度装置200因此能够灵活地处理进入的请求。
在实施形式中,调度装置200的处理是基于请求集合202和确认集合212所指派给的队列群组。在实施形式中,队列群组用于实施优先级队列,即具有不同优先级并且因此取决于其优先级具有不同延迟时间的队列的群组。请求集合202指派给不同优先级。指派给高优先级的请求202与指派给低优先级的请求相比更快地被处理。
在实施形式中,调度装置200是由N→1仲裁器构造,所述仲裁器从多达N个请求202选择P个输入。在实施形式中,由输入队列状态构成请求202。系统的输入中的每一队列每个时钟发送请求202到调度装置200,且接收指示请求202由调度器200接收且将在接下来的将来被允许的确认212。当队列已接收到确认212时,其可能已经发送下一请求202。在实施形式中,针对输入队列中的每个消息发送请求202到调度器200。
调度器200是基于调度与确认请求之间的分离。此分离使调度器200能够几乎立即为也称为请求者侧的请求者模块供应确认向量212,并且因此使请求者模块能够在每个时钟为调度器200供应新请求202。实际选择在仅单个时钟或可能若干时钟之后完成,但从已确认请求分离。
根据负责群组类型中的每一者的速率限制的速率限制单元201来掩蔽请求向量202。将结果206发送到负责合并最后选定请求与新请求向量206的查找向量准备单元(LVP)203。查找向量准备单元203合并两个向量206和210,发送用于前缀森林单元(PFF)205的新向量208以用于选择,且发送确认向量212到请求者侧。
图3展示根据实施形式的调度装置300的框图。调度装置300经配置用于接收请求集合“req vec”,即请求向量202,且提供对请求集合202的允许集合“Qsel_1、Qsel_2、...、Qsel_p”。调度装置300包括可对应于关于图2描述的速率限制单元201的速率限制单元(RCS)201、可对应于关于图2描述的查找向量准备单元203的查找向量准备单元(LVP)203,以及可为关于图2描述的前缀森林单元205的实施形式的前缀森林单元(PFF)305。
速率限制单元201经配置用于根据调度方案限制请求集合202的速率。速率限制单元201基于请求集合202提供速率受限请求集合206。查找向量准备单元203耦合到速率限制单元201以使得速率限制单元201的输出是对查找向量准备单元203的输入。在实施形式中,一或多个功能或逻辑单元耦合到在速率限制单元201的输出与查找向量准备单元203的输入之间的路径中。查找向量准备单元203用于取决于速率受限请求集合206与选择掩码“raw_mask”210的组合提供查找向量准备请求集合208。取决于所述组合,查找向量准备单元203提供对请求集合202的确认集合“ack_vec”,即确认向量212。
前缀森林单元305包括前缀树307、比较(CMP)模块311a、311b和311c的集合、掩码产生器313以及与非移一位(NASO)模块315a、315b和315c的集合。
前缀树307是有序树数据结构,其用以存储关联阵列,其中键通常是串。不同于对分搜索树,树307中无节点存储与所述节点相关联的键;实际上,节点在树307中的位置界定与节点相关联的键。节点的所有后代具有与所述节点相关联的串的共同前缀,且根与空串相关联。值通常不与每一个节点相关联,仅与对应于所关注的键的叶和一些内部节点相关联。
在前缀树307的实施形式中,查找长度m的键在最差情况中花费约O(m)的时间。前缀树307在查找期间使用的简单运算,例如使用字符的阵列索引,在真实机器上是快速的。前缀树307在含有大量短键时是空间高效的,因为节点在具有共同初始子序列的键之间共享。前缀树307促进最长前缀匹配。从根到叶的内部节点的数目等于键的长度。平衡前缀树307因此并不重要。前缀树307支持有序迭代且促进最长前缀匹配,其结果是执行此类“最接近拟合”查找可取决于实施方案而与精确查找一样快。与哈希表对比,前缀树307在插入时平均比哈希表快,因为哈希表在变满时必须重建其索引,这是代价非常大的操作。前缀树307因此具有好得多的经界定最坏情况时间成本,这对于时延敏感的程序是重要的。由于不使用哈希函数,因此对于小键来说前缀树307大体上比哈希表快。
在图3中所描绘的实施形式中,前缀树307包括用于实施树的位加法器309a、309b和309c的集合。在实施形式中,产生P个结果的前缀树307对输入向量v(i),即查找向量准备向量实施以下函数:
fx(i)和fy(i)是函数符号。此符号用以展示实际实施方案下的数学概念,且展示对于每一输出i计算以上Σ(求和)。通过对fx(i)和fy(i)求和来完成计算以使得实现所需结果。计算出的值是fx(i)和fy(i),使得通过根据前缀树定理组合两者的不同可能结果而实现需要的结果。前缀树过程的输出是由表示对输入向量的函数结果的2*N个数字的两个集合(每一者logN个位)构造。对于每一数字(x,y)的集合,前缀树过程的结果是加法x+y。前缀树过程的延迟复杂性为约O(logN)。
前缀森林单元305的输出是称为Z的数字集合,且对于Z中的每一数字Zi,Xi+Yi=Zi成立。X和Y分别展示x和y的具体实例,Xi表示x的第i个具体实例X,Yi表示y的第i个具体实例Y。替代于执行实际加法,存在的选择是让所述机制的下一阶段、即比较阶段使用Xi和Yi的原料,且替代于将Z中的每一数字与相关值进行比较,其将一对与已知选项集合进行比较且由此可以节省因将Xi和Yi放入加法装置中所造成的时延。
每一比较模块311a、311b、311c接收所有N个集合且提取N位结果向量317。比较模块数J的结果向量317包含输入集合上的多者,使得所述多者的总和是J。比较模块311a、311b、311c通过检查X和Y的所有可能组合完成所述比较。
在实施形式中,对于每一数字,在此实例中从1变化到8的X和Y的可能变化是根据表1。
表1:对于每一数字,X和Y的可能变化。
对于每一输出仅存在最多两个可能的组合。为了构建发送回到查找向量准备单元203的选择掩码“raw_mask”,掩码产生器313接收结果向量317且对输出的其余部分执行逻辑或非运算。这使选择掩码“raw_mask”对于不是0到P、即大于P的每一结果具有‘1’,使得其可充当用于最后向量的掩码。与非移一位模块315a、315b、315c用于执行逻辑与非操作,之后是其输入向量上的1位移位运算。与非移一位模块315a、315b、315c负责找到其输入中所接收的N位向量中的第一位,且将输出提取到请求者侧。与非移一位模块315a、315b、315c的输出形成提供到请求者侧的如关于图2所描述的允许集合204。
在实施形式中,调度装置300的调度过程以对应于速率限制单元201的整形器开始,所述速率限制单元根据整形器201掩蔽属于不合格的队列的位。对应于速率受限请求向量206的结果随后被发送到查找向量准备单元203,所述查找向量准备单元根据最后选择的选择掩蔽、移位且联合速率受限请求向量206。所述移位用以执行请求之间的轮循。对应于查找向量准备请求集合208的移位器的结果被发送到实施为并行计数器森林305的位加法器309a、309b、309c。所述移位器实施为静态移位器。最后的req_vec以掩码向量210掩蔽。
图4展示根据实施形式的调度装置的也称为“速率控制整形器”的速率限制单元400的框图。速率限制单元400是如关于图2和3所描述的速率限制单元201的实施形式。速率限制单元400接收如关于图2和3所描述的请求集合202和确认集合212,且提供如关于图2和3所描述的速率受限请求集合206。速率限制单元400包括桶401a、401b、401c的集合,例如存储器,以用于根据确认212以及桶401a、401b、401c所指派给的特定队列群组而暂时地存储确认集合212。在另一实施形式中,如图1中所描绘的也称为整形器桶的群组整形器105a、105b和105c由速率限制单元400的群组整形器401a、401b和401c实施。
速率限制单元400进一步包括用于对输入执行位加法的位加法器403a、403b、403c的集合,其中每一位加法器根据桶401a、401b和401c的指派而指派给特定队列群组。位加法器403a、403b、403c用于将指派给相应队列群组的桶模块401a、401b、401c的输出404a、404b、404c添加到指派给对应队列群组的请求102。位加法器403a、403b、403c的输出406a、406b、406c形成新请求集合106。
在图4中所描绘的实施形式中,使用三个不同队列群组:第一者“TE”,由TE路径408a处理;第二者“Bld”,由构建路径408b处理;以及第三者“Sel”,由选择路径408c处理。指派给“TE”队列群组的确认集合212中的确认存储在第一桶401a中且由第一位加法器403a处理以用于将“TE”桶401a的输出404a的“TE”路径位添加到指派给“TE”队列群组的请求向量202的对应位。指派给“Bld”队列群组的确认集合212中的确认存储在第二桶401b中且由第二位加法器403b处理以用于将“Bld”桶401b的输出404b的“Bld”路径位添加到指派给“Bld”队列群组的请求向量202的对应位。指派给“Sel”队列群组的确认集合212中的确认存储在第三桶401c中且由第三位加法器403c处理以用于将“Sel”桶401c的输出404c的“Sel”路径位添加到指派给“Sel”队列群组的请求向量202的对应位。由TE路径408a、构建路径408b和选择路径408c的三个位加法器403a、403b和403c添加的经添加位的组合形成速率受限请求集合206。
在实施形式中,速率控制整形器,即速率限制单元400由各自用于一个队列群组的三个整形器桶401a、401b和401c以及掩蔽不合格的非空闲队列的掩码寄存器构造。速率控制整形器400根据其接收的确认向量“ack_vec”212管理整形器桶401a、401b、401c。在每一时钟,从查找向量准备单元203接收的每一群组的确认向量212(这些不被掩蔽)是使用位加法器403a、403b、403c求和且从群组的桶401a、401b、401c减去。在每一时钟上,将表示为“qroup_quanton”的可配置量添加到群组桶401a、401b、401c。当桶大小是0或更小时,从合格向量掩蔽群组。当群组桶大于表示为“qroup_max_quantom”的可配置量时,将所述群组桶指派给qroup_max_quantom。
根据实施形式在调度装置的前缀森林单元中进行门树计算,产生P个结果的前缀树对输入向量v(i)实施以下函数:
计算的值是fx(i)和fy(i),使得通过根据前缀树定理组合两者的不同可能结果而实现需要的结果。前缀树过程的输出是由表示对输入向量的函数结果的2*N个数字的两个集合(每一者logN个位)构造。对于每一数字(x,y)的集合,前缀树过程的结果是加法x+y。前缀树过程的延迟复杂性是O(lgn)。由于Y仅保持两个MSB,因此相关的X和Y的可能组合小得多。
图5展示根据实施形式在调度装置的前缀森林单元中实施的前缀树800的示意图。前缀森林单元可对应于如关于图2所描述的前缀森林单元205或如关于图3所描述的前缀森林单元305。在实施形式中,前缀树800实施如上所提到的门-树计算。
前缀树800包括第一层级801和第二层级802。第一层级801接收三个输入向量803a、803b、803c,每一者在第一算术单元“FA”805a、805b、805c与第二算术单元807a、807b、807c之间分割且提供输出到第二层级802。第二层级802包括第一算术单元“FA”809a、809b、809c、809d以及第二算术单元“HA”811b、811d。第一层级801的第一算术单元“FA”与第二层级802的第一算术单元“FA”之间的互连形成输出x和y,使得前缀树800对输入向量v(i)803a、803b、803c实施以下函数而产生P个结果:
为了确定实施前缀树800的调度装置的性能,必须考虑以下问题。在设计中存在需要解决的一个畅通的最长路径。此最长路径在关于图2和3描述的查找向量准备单元(LVP)203处开始。所述路径经过如图3中所描绘的门树307,通过比较单元311a、311b、311c和图3中所描绘的掩码产生器313,且返回到图3中所描绘的LVP 203。
针对大小为N的输入向量执行传播延迟的估计分析产生随后的每一阶段的延迟时间。LVP输出被记录,因此将其视为零个门,从而得到零延迟时间。门树由FA和HA算术单元构造。这些算数单元实际上由两个简单的门构造,所述门导致2*LgN个门的估计延迟。然而,标准库具有可在一个复杂的门中执行这些标准函数的复杂的门,进而产生LgN的延迟时间。比较阶段由并行完成的若干比较构造,进而产生4个门的延迟时间。回到LVP的返回具有另一门和样本,进而产生1个门的延迟时间。概括来说,延迟时间相加为以下值:
GateTreePD+ComparePD+MaskGenPD+MaskPD+MuxShiftPD=LgN+1+3+1+1=Lg(2*N)+6
表2中概括最差情况传播延迟估计。
表2:根据实施形式的通过前缀树的最差情况传播延迟的计算
在另一实施形式中,调度装置200包括如图8中所描绘的接口1110和处理器1120。接口1110适合于接收请求集合202,且输出允许集合204和选择掩码210。根据图2到图4的先前实施例的一或多个单元呈处理器1120的形式,处理器1120执行所述单元的对应步骤以便提供其功能性。
图6展示根据实施形式的调度方法900的示意图。用于调度请求集合202且提供对请求集合202的允许集合204的调度方法900包括根据调度方案限制901请求集合202的速率以便提供速率受限请求集合206。调度方法900包括合并903请求集合,即202或206,与选择掩码(210)以便提供查找向量准备请求集合208和选择掩码210以及对请求集合202的确认集合212。调度方法900包括提供905作为查找向量准备请求集合208的函数的允许集合204且基于允许集合204提供选择掩码210。如先前调度装置实施例所论述,限制901请求集合的速率的步骤是任选的,当执行所述限制步骤时,合并903是基于速率受限请求集合206,否则合并903在所引导的请求集合202上执行。
在方法900的实施形式中,查找向量准备请求集合208取决于与先前非允许的请求集合202组合的速率受限请求集合206。在方法900的实施形式中,查找向量准备请求集合208是请求集合202中的非允许旧请求和速率受限请求集合中的新请求的超集。
图7展示根据实施形式的调度方法900的合并903的流程图。合并903请求集合202或206与选择掩码210包括:基于选择掩码210掩蔽9031当前请求集合以提供经掩蔽请求集合;合并9032经掩蔽请求集合520与速率受限请求集合206以提供当前请求集合;以及基于选择掩码210的经移位版本移位9033当前请求集合以提供查找向量准备请求集合208。
在实施形式中,调度方法900由如关于图2所描述的调度装置200或由如关于图3所描述的调度装置300实施。