平衡负载与性能的硬件优先级队列实现方法

文档序号:6466976阅读:231来源:国知局
专利名称:平衡负载与性能的硬件优先级队列实现方法
技术领域
本发明涉及硬件优先级队列设计领域,尤其涉及一种平衡负载与性能的硬 件优先级队列实现方法。
背景技术
当今世界,计算机技术的应用,将人类文明推向了一个新的高度,不仅在 科学与工程领域,人们的生活中,也有融入了越来越多的计算机设备。而在很
多嵌入式设备以及网络设备中,优先级队列应用的十分广泛。由于硬件的速度 优势,用硬件实现优先级队列,成为了许多要求快速队列操作系统的选择。许 多嵌入式实时系统,例如语音播放器等,需要快速的实体队列响应。许多要求 低延时,高质量的网络系统,例如实时语音交换系统,需要快速的网络包队列 收发保证。为了对这些实时要求高,要求调度迅速简单的实体或服务,优先级 调度是其最佳的选择方案之一,而直接用硬件实现的优先级队列,无疑是该类 系统性能提高的途径之一,如何设计一个合理有效的硬件结构,实现优先级队 列,成为一个工程领域上研究的课题之一。
目前市场上已经有许多嵌入式设备与网络设备,带有硬件优先级队列,其 种类大致包括先进先出队列,并行移项队列以及逐项传递队列。
先进先出队列的实现比较简单,其根据不同的优先级,分配目录项,相同 优先级的实体,将被放入同一目录项中,目录项位置靠前的表示优先级高,实 体出队列时,从位置靠前的目录项开始,按照先进先出的策略出队列。该种设 计的优点是设计简单,但是缺点是由于目录项的个数以及目录项内部存放实体 信息个数一定,造成扩展性差,不利于后续功能的扩充。
并行移项队列,充分利用了硬件并行能力强的特点,通过独立的硬件单元, 同时比较所有的硬件单元与新实体的优先级比较,进行一定规则的平移实现优 先级队列。这种设计的硬件优先级队列的优点是速度快,硬件并行性与可扩展 性好,但是缺点也十分明显,由于需要同时将新实体信息传递到所有的硬件模 块上,从VLSI角度分析,将造成硬件负载大的缺点,进一步造成队列的扩展以 及操作的速度受到限制。
逐项传递优先级队列,使用逐项比较的方法,新实体的优先级仅仅与队列 的第一项进行比较,依次逐项传递,直到找到正确的位置。这种队列很好的解决了并行移项队列负载过大的缺点,但是由于需要逐项比较,造成了队列性能 的下降,同时,逐项比较,需要在每个硬件单元里,插入暂存模块,增加了硬
件资源的开销。
上述三种硬件优先级队列的实现方式,各有优缺点,如何设计一种硬件队 列,既能够发挥硬件并行与速度优势,提高性能,又能够降低硬件负载,节省 硬件资源,成为了设计硬件优先级队列的焦点。

发明内容
本发明的目的在于提供一种平衡负载与性能的硬件优先级队列实现方法。 本发明解决技术问题所采用的技术方案是
1. 一种平衡负载与性能的硬件优先级队列实现方法,其特征在于-
1) 下层处理单元由若干目录项组成
每个下层处理单元,由若干相同的目录项组成,每个目录项为一个硬件单 元,包括读写口,控制信号以及实体信息输入/输出口。相邻项之间,通过与数 据位宽相同的数据通路,以及一位宽的比较结果信号连接。每一项记录了实体 信息,包括实体优先级以及其他信息;
2) 下层处理单元新实体插入,按照并行移项队列模式,采用并行比较的方 式实现
当有新的实体到来时,该实体的实体信息将同时被传送到每个目录项的实 体输入口,同时,控制信号告知每个目录项有新实体到来。目录项发现有新实 体到来时,立即比较自己当前记录的实体优先级与新实体的优先级,若新实体 的优先级高于当前记录的实体,且上一级目录项输出的比较结果为新实体优先 级高于其记录的当前实体,则本目录项将上一级目录项当前实体信息记录内容 读入,作为当前实体信息,同时将原有实体信息,输出到与下一级目录项连接 的数据通路上,并且将自身比较结果输出到比较结果信号上,作为下一级目录 的输入;若新实体的优先级高于当前记录实体,且上一级目录项输出的比较结 果为新实体优先级低于其记录的当前实体,则本目录项将新实体信息读入,作 为当前实体信息,同时将原有实体信息,输出到与下一级目录项连接的数据通 路上,并且将自身比较结果输出到比较结果信号上,作为下一级目录项的输入;
若新实体优先级低于当前记录实体,则保持原有实体信息不变,同时将自身比 较结果输出到比较结果信号上,作为下一级目录项的输入。 一次插入操作,总
共需要的周期数为3拍,第一拍输入新实体,第二拍产生比较结果,第三拍, 根据比较结果,整个优先级队列进行上述规则的平移,以达到优先级的顺序排列;
3) 上层队列由传递优先级模型实现,每个上层队列,包括了一个的下层处
理单元,上层队列之间,按照优先级,顺序排列
上层队列按照传递优先级模型实现,每一级之间,由数据通路,控制信号, 连接,且按照优先级高低顺序排列。其内部为一个下层处理单元;
4) 上层队列之间的实体传递,发生在前一级上层队列内部下层处理单元的 目录项耗尽时
当新实体需要插入时,若新实体插入位置的下层处理单元中,优先级队列 目录项未满,则按照上文中提到的下层处理单元新实体插入方法插入,上层队 列之间无须任何动作。当新实体插入位置的下层处理单元中,优先级队列目录 项己满,则需要在上层队列之间传递实体信息,此时,将新实体插入需要插入 的位置,同时,将溢出队列的最低优先级的目录项,迁移到下一级上层队列中。 实体信息以及控制信号由当前上层队列输出,下一级上层队列收到信号,其内 部下层处理单元幵始新实体的插入,若下层处理单元的目录项未满,则插入成
功,操作停止;若由于下层处理单元的目录项已满,则需要继续与再下一级的 上层队列发生实体传递,依次进行,直到操作停止;
5) 整条优先级队列,由1条或多条上层队列组成
整条优先级队列,由1条或多条上层队列,按照优先级顺序,串联而成, 各个上层队列内,包括了一个下层处理单元,下层处理单元,包括了多个目录 项。
6) 常数时间的最高优先级实体出队列
最高优先级的实体信息,总是存放在最高级上层队列中的下层处理单元最 高级目录项中,当该实体出队列时,所有后续的目录项向上级平移,上层队列 直接,下一级上层队列中的最高优先级目录项将被迁移到上一级的上层队列中, 完成这一过程所需要的时间为常数;
7) 平衡负载与性能的优先级目录插入-
当新实体插入时,由于其只需送给第一级上层队列中下层处理单元的所有 目录项,因此负载较同时送给整条队列的情况降低;同时,实体的插入,采用 了局部并行比较多方法,较传递优先级方式,节省了比较传递的时间以及诸项 比较所需的暂存硬件资源,性能上得到了提升。
本发明与背景技术相比,本发明具有的有益的效果是
该设计是一种结合了并行移项队列硬件并行性优势,以及逐项比较队列负载小的优势,通过并行移项与逐项比较相互结合的方法,设计硬件优先级队列, 从而达到平衡负载与性能的特点。
(1) 模块化设计,使得优先级队列的扩展性好,无论是需要增加优先级还 是增加目录项,都相对独立,无须改变整个队列的结构。
(2) 利用下层处理单元的并行移项队列,提高了优先级队列的并行性以及 响应速度。
(3) 利用上层队列的逐项传递队列,使得新实体的插入,仅仅需要与第一
级的上层队列中所有目录项进行比较,降低了负载。


图l是上层队列示意图。
图2是下层处理单元图。 具体实施方法
方法中涉及到相关的符号解释
Compare^:实体输入端口与当前记录的比较结果,其值为0 (Low)表示当 前输入实体优先级高于当前记录优先级,或1 (High)表示当前输入实体优先级 低于或等于当前目录项中的实体优先级。
Comparer目录项上一级目录项的比较结果,其值为1 (High)表示当前 输入实体优先级高于上一级目录项中实体的优先级,或0 (Low)表示当前输入 实体优先级低于或等于上一级目录项中的实体优先级。
一种平衡负载与性能的硬件优先级队列实现方法,其总体结构是由若干个上 层队列按照优先级顺序串连组成,每个上层队列中,有一个下层处理单元,该 单元由若干目录项组成,目录项采用并行移项队列方式实现。平衡负载与性能 的队列框图如图l所示。图2为下层处理单元内部框图。目录项与下层处理单 元的数量根据硬件资源与具体使用需求决定,操作关键步骤如下
1) 下层处理单元由若干目录项组成
每个下层处理单元,由若干相同的目录项组成,每个目录项为一个硬件单 元,包括读写口,控制信号以及实体信息输入/输出口。相邻项之间,通过与数 据位宽相同的数据通路,以及一位宽的比较结果信号连接。每一项记录了实体
信息,包括实体优先级以及其他信息;
2) 下层处理单元新实体插入,按照并行移项队列模式,采用并行比较的方 式实现
上层队列与下层处理单元的初始化,首先将各个上层队列,串行连接,排在队列首部的,为最高级的上层队列。每个的下层处理单元中,目录项均置于 无效状态,表示目录项为空,为空的目录项是特殊的目录项,其与实体优先级
的比较结果Compare^均为0。当有新的实体到来时,该实体的实体信息将同时 被传送到每个目录项的实体输入口,同时,控制信号告知每个目录项有新实体 到来。目录项发现有新实体到来时,立即比较自己当前记录的实体优先级与新 实体的优先级,若新实体的优先级高于当前记录的实体,且上一级目录项输出 的比较结果为新实体优先级高于其记录的当前实体,则本目录项将上一级目录 项当前实体信息记录内容读入,作为当前实体信息,同时将原有实体信息,输 出到与下一级目录项连接的数据通路上,并且将自身比较结果输出到比较结果 信号上,作为下一级目录的输入;若新实体的优先级高于当前记录实体,且上 一级目录项输出的比较结果为新实体优先级低于其记录的当前实体,则本目录 项将新实体信息读入,作为当前实体信息,同时将原有实体信息,输出到与下 一级目录项连接的数据通路上,并且将自身比较结果输出到比较结果信号上, 作为下一级目录项的输入;若新实体优先级低丁当前记录实体,则保持原有实 体信息不变,同时将自身比较结果输出到比较结果信号上,作为下一级目录项 的输入。 一次插入操作,总共需要的周期数为3拍,第一拍输入新实体,第二 拍产生比较结果,第三拍,根据比较结果,整个优先级队列进行上述规则的平 移,以达到优先级的顺序排列。具体比较过程,其实体信息与优先级将被送到 最高级的上层队列中,上层队列中的下层处理单元将其并行的输入到其内部的 目录项,进行并行的比较。每个目录项独立比较自身记录实体的优先级与输入 实体的优先级,得到Comparese,f,结合从上一级目录项得到的Compare^值,按 照下述规则进行移项当Compare-:0并且Compare她O,表示输入实体已 经在上一级目录项前插入,则当前目录项从上一级目录项读入其记录的实体信 息,作为当前目录项的实体信息,同时,将原有实体信息输出到与下一级目录 项连接的数据通路上;当Compare^尸0并且CompareM-1,表示新实体应该 在当前位置插入,则当前目录项将新实体信息作为当前信息记录,同时将原有 实体信息输出到与下一级目录项连接的数据通路上;当C0mpareself= 1时,表示 新实体应该在当前目录项的后续目录中插入,因此,当前目录项保持不变。各 个目录项之间并行操作。
3)上层队列由传递优先级模型实现,每个上层队列,包括了一个的下层处 理单元,上层队列之间,按照优先级,顺序排列
上层队列按照传递优先级模型实现,每一级之间,由数据通路,控制信号,连接,且按照优先级高低顺序排列。其内部为一个下层处理单元;
4) 上层队列之间的实体传递,发生在前一级上层队列内部下层处理单元的 目录项耗尽时
当新实体需要插入时,若新实体插入位置的下层处理单元中,优先级队列 目录项未满,则按照上文中提到的下层处理单元新实体插入方法插入,上层队 列之间无须任何动作。当新实体插入位置的下层处理单元中,优先级队列目录 项已满,则需要在上层队列之间传递实体信息,此时,将新实体插入需要插入 的位置,同时,将溢出队列的最低优先级的目录项,迁移到下一级上层队列中。 实体信息以及控制信号由当前上层队列输出,下一级上层队列收到信号,其内 部下层处理单元开始新实体的插入,若下层处理单元的目录项未满,则插入成 功,操作停止;若由于下层处理单元的目录项已满,则需要继续与再下一级的 上层队列发生实体传递,依次进行,直到操作停止;
5) 整条优先级队列,由若干上层队列组成
整条优先级队列,由若干上层队列,按照优先级顺序,串联而成,各个上 层队列内,包括了一个下层处理单元,下层处理单元,包括了若干目录项。
6) 常数时间的最高优先级实体出队列
最高优先级的实体信息,总是存放在最高级上层队列中的下层处理单元最 高级目录项中,当该实体出队列时,所有后续的目录项向上级平移,上层队列 直接,下一级上层队列中的最高优先级目录项将被迁移到上一级的上层队列中,
完成这一过程所需要的时间为常数;最高优先级队列出队列具体实施时,只需 将最高级上层队列中最高级的目录项输出,则得到了最高优先级的实体信息, 同时,控制信号发出到所有上层队列,使下层处理单元告诉所有目录项,向高 优先级方向平移一个目录项,上层队列之间,由低优先级向高优先级方向迁移。
7) 平衡负载与性能的优先级目录插入
当新实体插入时,由于其只需送给第一级上层队列中下层处理单元的所有目
录项,因此负载较同时送给整条队列的情况降低;同时,实体的插入,采用了 局部并行比较多方法,较传递优先级方式,节省了比较传递的时间以及诸项比 较所需的暂存硬件资源,性能上得到了提升。
权利要求
1. 一种平衡负载与性能的硬件优先级队列实现方法,其特征在于1)下层处理单元由若干目录项组成每个下层处理单元,由若干相同的目录项组成,每个目录项为一个硬件单元,包括读写口,控制信号以及实体信息输入/输出口。相邻项之间,通过与数据位宽相同的数据通路,以及一位宽的比较结果信号连接。每一项记录了实体信息,包括实体优先级以及其他信息;2)下层处理单元新实体插入,按照并行移项队列模式,采用并行比较的方式实现当有新的实体到来时,该实体的实体信息将同时被传送到每个目录项的实体输入口,同时,控制信号告知每个目录项有新实体到来。目录项发现有新实体到来时,立即比较自己当前记录的实体优先级与新实体的优先级,若新实体的优先级高于当前记录的实体,且上一级目录项输出的比较结果为新实体优先级高于其记录的当前实体,则本目录项将上一级目录项当前实体信息记录内容读入,作为当前实体信息,同时将原有实体信息,输出到与下一级目录项连接的数据通路上,并且将自身比较结果输出到比较结果信号上,作为下一级目录的输入;若新实体的优先级高于当前记录实体,且上一级目录项输出的比较结果为新实体优先级低于其记录的当前实体,则本目录项将新实体信息读入,作为当前实体信息,同时将原有实体信息,输出到与下一级目录项连接的数据通路上,并且将自身比较结果输出到比较结果信号上,作为下一级目录项的输入;若新实体优先级低于当前记录实体,则保持原有实体信息不变,同时将自身比较结果输出到比较结果信号上,作为下一级目录项的输入。一次插入操作,总共需要的周期数为3拍,第一拍输入新实体,第二拍产生比较结果,第三拍,根据比较结果,整个优先级队列进行上述规则的平移,以达到优先级的顺序排列;3)上层队列由传递优先级模型实现,每个上层队列,包括了一个的下层处理单元,上层队列之间,按照优先级,顺序排列上层队列按照传递优先级模型实现,每一级之间,由数据通路,控制信号,连接,且按照优先级高低顺序排列。其内部为一个下层处理单元;4)上层队列之间的实体传递,发生在前一级上层队列内部下层处理单元的目录项耗尽时当新实体需要插入时,若新实体插入位置的下层处理单元中,优先级队列目录项未满,则按照上文中提到的下层处理单元新实体插入方法插入,上层队列之间无须任何动作。当新实体插入位置的下层处理单元中,优先级队列目录项已满,则需要在上层队列之间传递实体信息,此时,将新实体插入需要插入的位置,同时,将溢出队列的最低优先级的目录项,迁移到下一级上层队列中。实体信息以及控制信号由当前上层队列输出,下一级上层队列收到信号,其内部下层处理单元开始新实体的插入,若下层处理单元的目录项未满,则插入成功,操作停止;若由于下层处理单元的目录项已满,则需要继续与再下一级的上层队列发生实体传递,依次进行,直到操作停止;5)整条优先级队列,由1条或多条上层队列组成整条优先级队列,由1条或多条上层队列,按照优先级顺序,串联而成,各个上层队列内,包括了一个下层处理单元,下层处理单元,包括了多个目录项。6)常数时间的最高优先级实体出队列最高优先级的实体信息,总是存放在最高级上层队列中的下层处理单元最高级目录项中,当该实体出队列时,所有后续的目录项向上级平移,上层队列直接,下一级上层队列中的最高优先级目录项将被迁移到上一级的上层队列中,完成这一过程所需要的时间为常数;7)平衡负载与性能的优先级目录插入当新实体插入时,由于其只需送给第一级上层队列中下层处理单元的所有目录项,因此负载较同时送给整条队列的情况降低;同时,实体的插入,采用了局部并行比较多方法,较传递优先级方式,节省了比较传递的时间以及诸项比较所需的暂存硬件资源,性能上得到了提升;
全文摘要
本发明公开了一种平衡负载与性能的硬件优先级队列实现方法。是通过结合两种当前硬件优先级队列较为普遍的实现方法平移型硬件优先级队列以及传递行硬件优先级队列,解决了负载与性能的矛盾问题,充分发挥了硬件并行化的性能优势以及减少了并行化所带来的负载增加问题。本发明采样模块化设计,使得优先级队列的扩展性好,无论是需要增加优先级还是增加目录项,都相对独立,无须改变整个队列的结构。利用下层处理单元的并行移项队列,提高了优先级队列的并行性以及响应速度。利用上层队列的逐项传递队列,使得新实体的插入,仅仅需要与第一级的上层队列中所有目录项进行比较,降低了负载。
文档编号G06F9/46GK101419562SQ20081016290
公开日2009年4月29日 申请日期2008年12月4日 优先权日2008年12月4日
发明者冯德贵, 吴斌斌, 罡 王, 威 胡, 度 陈, 陈天洲 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1