專利名稱:平衡負載與性能的硬件優(yōu)先級隊列實現(xiàn)方法
技術領域:
本發(fā)明涉及硬件優(yōu)先級隊列設計領域,尤其涉及一種平衡負載與性能的硬 件優(yōu)先級隊列實現(xiàn)方法。
背景技術:
當今世界,計算機技術的應用,將人類文明推向了一個新的高度,不僅在 科學與工程領域,人們的生活中,也有融入了越來越多的計算機設備。而在很
多嵌入式設備以及網(wǎng)絡設備中,優(yōu)先級隊列應用的十分廣泛。由于硬件的速度 優(yōu)勢,用硬件實現(xiàn)優(yōu)先級隊列,成為了許多要求快速隊列操作系統(tǒng)的選擇。許 多嵌入式實時系統(tǒng),例如語音播放器等,需要快速的實體隊列響應。許多要求 低延時,高質量的網(wǎng)絡系統(tǒng),例如實時語音交換系統(tǒng),需要快速的網(wǎng)絡包隊列 收發(fā)保證。為了對這些實時要求高,要求調度迅速簡單的實體或服務,優(yōu)先級 調度是其最佳的選擇方案之一,而直接用硬件實現(xiàn)的優(yōu)先級隊列,無疑是該類 系統(tǒng)性能提高的途徑之一,如何設計一個合理有效的硬件結構,實現(xiàn)優(yōu)先級隊 列,成為一個工程領域上研究的課題之一。
目前市場上已經(jīng)有許多嵌入式設備與網(wǎng)絡設備,帶有硬件優(yōu)先級隊列,其 種類大致包括先進先出隊列,并行移項隊列以及逐項傳遞隊列。
先進先出隊列的實現(xiàn)比較簡單,其根據(jù)不同的優(yōu)先級,分配目錄項,相同 優(yōu)先級的實體,將被放入同一目錄項中,目錄項位置靠前的表示優(yōu)先級高,實 體出隊列時,從位置靠前的目錄項開始,按照先進先出的策略出隊列。該種設 計的優(yōu)點是設計簡單,但是缺點是由于目錄項的個數(shù)以及目錄項內部存放實體 信息個數(shù)一定,造成擴展性差,不利于后續(xù)功能的擴充。
并行移項隊列,充分利用了硬件并行能力強的特點,通過獨立的硬件單元, 同時比較所有的硬件單元與新實體的優(yōu)先級比較,進行一定規(guī)則的平移實現(xiàn)優(yōu) 先級隊列。這種設計的硬件優(yōu)先級隊列的優(yōu)點是速度快,硬件并行性與可擴展 性好,但是缺點也十分明顯,由于需要同時將新實體信息傳遞到所有的硬件模 塊上,從VLSI角度分析,將造成硬件負載大的缺點,進一步造成隊列的擴展以 及操作的速度受到限制。
逐項傳遞優(yōu)先級隊列,使用逐項比較的方法,新實體的優(yōu)先級僅僅與隊列 的第一項進行比較,依次逐項傳遞,直到找到正確的位置。這種隊列很好的解決了并行移項隊列負載過大的缺點,但是由于需要逐項比較,造成了隊列性能 的下降,同時,逐項比較,需要在每個硬件單元里,插入暫存模塊,增加了硬
件資源的開銷。
上述三種硬件優(yōu)先級隊列的實現(xiàn)方式,各有優(yōu)缺點,如何設計一種硬件隊 列,既能夠發(fā)揮硬件并行與速度優(yōu)勢,提高性能,又能夠降低硬件負載,節(jié)省 硬件資源,成為了設計硬件優(yōu)先級隊列的焦點。
發(fā)明內容
本發(fā)明的目的在于提供一種平衡負載與性能的硬件優(yōu)先級隊列實現(xiàn)方法。 本發(fā)明解決技術問題所采用的技術方案是
1. 一種平衡負載與性能的硬件優(yōu)先級隊列實現(xiàn)方法,其特征在于-
1) 下層處理單元由若干目錄項組成
每個下層處理單元,由若干相同的目錄項組成,每個目錄項為一個硬件單 元,包括讀寫口,控制信號以及實體信息輸入/輸出口。相鄰項之間,通過與數(shù) 據(jù)位寬相同的數(shù)據(jù)通路,以及一位寬的比較結果信號連接。每一項記錄了實體 信息,包括實體優(yōu)先級以及其他信息;
2) 下層處理單元新實體插入,按照并行移項隊列模式,采用并行比較的方 式實現(xiàn)
當有新的實體到來時,該實體的實體信息將同時被傳送到每個目錄項的實 體輸入口,同時,控制信號告知每個目錄項有新實體到來。目錄項發(fā)現(xiàn)有新實 體到來時,立即比較自己當前記錄的實體優(yōu)先級與新實體的優(yōu)先級,若新實體 的優(yōu)先級高于當前記錄的實體,且上一級目錄項輸出的比較結果為新實體優(yōu)先 級高于其記錄的當前實體,則本目錄項將上一級目錄項當前實體信息記錄內容 讀入,作為當前實體信息,同時將原有實體信息,輸出到與下一級目錄項連接 的數(shù)據(jù)通路上,并且將自身比較結果輸出到比較結果信號上,作為下一級目錄 的輸入;若新實體的優(yōu)先級高于當前記錄實體,且上一級目錄項輸出的比較結 果為新實體優(yōu)先級低于其記錄的當前實體,則本目錄項將新實體信息讀入,作 為當前實體信息,同時將原有實體信息,輸出到與下一級目錄項連接的數(shù)據(jù)通 路上,并且將自身比較結果輸出到比較結果信號上,作為下一級目錄項的輸入;
若新實體優(yōu)先級低于當前記錄實體,則保持原有實體信息不變,同時將自身比 較結果輸出到比較結果信號上,作為下一級目錄項的輸入。 一次插入操作,總
共需要的周期數(shù)為3拍,第一拍輸入新實體,第二拍產(chǎn)生比較結果,第三拍, 根據(jù)比較結果,整個優(yōu)先級隊列進行上述規(guī)則的平移,以達到優(yōu)先級的順序排列;
3) 上層隊列由傳遞優(yōu)先級模型實現(xiàn),每個上層隊列,包括了一個的下層處
理單元,上層隊列之間,按照優(yōu)先級,順序排列
上層隊列按照傳遞優(yōu)先級模型實現(xiàn),每一級之間,由數(shù)據(jù)通路,控制信號, 連接,且按照優(yōu)先級高低順序排列。其內部為一個下層處理單元;
4) 上層隊列之間的實體傳遞,發(fā)生在前一級上層隊列內部下層處理單元的 目錄項耗盡時
當新實體需要插入時,若新實體插入位置的下層處理單元中,優(yōu)先級隊列 目錄項未滿,則按照上文中提到的下層處理單元新實體插入方法插入,上層隊 列之間無須任何動作。當新實體插入位置的下層處理單元中,優(yōu)先級隊列目錄 項己滿,則需要在上層隊列之間傳遞實體信息,此時,將新實體插入需要插入 的位置,同時,將溢出隊列的最低優(yōu)先級的目錄項,遷移到下一級上層隊列中。 實體信息以及控制信號由當前上層隊列輸出,下一級上層隊列收到信號,其內 部下層處理單元幵始新實體的插入,若下層處理單元的目錄項未滿,則插入成
功,操作停止;若由于下層處理單元的目錄項已滿,則需要繼續(xù)與再下一級的 上層隊列發(fā)生實體傳遞,依次進行,直到操作停止;
5) 整條優(yōu)先級隊列,由1條或多條上層隊列組成
整條優(yōu)先級隊列,由1條或多條上層隊列,按照優(yōu)先級順序,串聯(lián)而成, 各個上層隊列內,包括了一個下層處理單元,下層處理單元,包括了多個目錄 項。
6) 常數(shù)時間的最高優(yōu)先級實體出隊列
最高優(yōu)先級的實體信息,總是存放在最高級上層隊列中的下層處理單元最 高級目錄項中,當該實體出隊列時,所有后續(xù)的目錄項向上級平移,上層隊列 直接,下一級上層隊列中的最高優(yōu)先級目錄項將被遷移到上一級的上層隊列中, 完成這一過程所需要的時間為常數(shù);
7) 平衡負載與性能的優(yōu)先級目錄插入-
當新實體插入時,由于其只需送給第一級上層隊列中下層處理單元的所有 目錄項,因此負載較同時送給整條隊列的情況降低;同時,實體的插入,采用 了局部并行比較多方法,較傳遞優(yōu)先級方式,節(jié)省了比較傳遞的時間以及諸項 比較所需的暫存硬件資源,性能上得到了提升。
本發(fā)明與背景技術相比,本發(fā)明具有的有益的效果是
該設計是一種結合了并行移項隊列硬件并行性優(yōu)勢,以及逐項比較隊列負載小的優(yōu)勢,通過并行移項與逐項比較相互結合的方法,設計硬件優(yōu)先級隊列, 從而達到平衡負載與性能的特點。
(1) 模塊化設計,使得優(yōu)先級隊列的擴展性好,無論是需要增加優(yōu)先級還 是增加目錄項,都相對獨立,無須改變整個隊列的結構。
(2) 利用下層處理單元的并行移項隊列,提高了優(yōu)先級隊列的并行性以及 響應速度。
(3) 利用上層隊列的逐項傳遞隊列,使得新實體的插入,僅僅需要與第一
級的上層隊列中所有目錄項進行比較,降低了負載。
圖l是上層隊列示意圖。
圖2是下層處理單元圖。 具體實施方法
方法中涉及到相關的符號解釋
Compare^:實體輸入端口與當前記錄的比較結果,其值為0 (Low)表示當 前輸入實體優(yōu)先級高于當前記錄優(yōu)先級,或1 (High)表示當前輸入實體優(yōu)先級 低于或等于當前目錄項中的實體優(yōu)先級。
Comparer目錄項上一級目錄項的比較結果,其值為1 (High)表示當前 輸入實體優(yōu)先級高于上一級目錄項中實體的優(yōu)先級,或0 (Low)表示當前輸入 實體優(yōu)先級低于或等于上一級目錄項中的實體優(yōu)先級。
一種平衡負載與性能的硬件優(yōu)先級隊列實現(xiàn)方法,其總體結構是由若干個上 層隊列按照優(yōu)先級順序串連組成,每個上層隊列中,有一個下層處理單元,該 單元由若干目錄項組成,目錄項采用并行移項隊列方式實現(xiàn)。平衡負載與性能 的隊列框圖如圖l所示。圖2為下層處理單元內部框圖。目錄項與下層處理單 元的數(shù)量根據(jù)硬件資源與具體使用需求決定,操作關鍵步驟如下
1) 下層處理單元由若干目錄項組成
每個下層處理單元,由若干相同的目錄項組成,每個目錄項為一個硬件單 元,包括讀寫口,控制信號以及實體信息輸入/輸出口。相鄰項之間,通過與數(shù) 據(jù)位寬相同的數(shù)據(jù)通路,以及一位寬的比較結果信號連接。每一項記錄了實體
信息,包括實體優(yōu)先級以及其他信息;
2) 下層處理單元新實體插入,按照并行移項隊列模式,采用并行比較的方 式實現(xiàn)
上層隊列與下層處理單元的初始化,首先將各個上層隊列,串行連接,排在隊列首部的,為最高級的上層隊列。每個的下層處理單元中,目錄項均置于 無效狀態(tài),表示目錄項為空,為空的目錄項是特殊的目錄項,其與實體優(yōu)先級
的比較結果Compare^均為0。當有新的實體到來時,該實體的實體信息將同時 被傳送到每個目錄項的實體輸入口,同時,控制信號告知每個目錄項有新實體 到來。目錄項發(fā)現(xiàn)有新實體到來時,立即比較自己當前記錄的實體優(yōu)先級與新 實體的優(yōu)先級,若新實體的優(yōu)先級高于當前記錄的實體,且上一級目錄項輸出 的比較結果為新實體優(yōu)先級高于其記錄的當前實體,則本目錄項將上一級目錄 項當前實體信息記錄內容讀入,作為當前實體信息,同時將原有實體信息,輸 出到與下一級目錄項連接的數(shù)據(jù)通路上,并且將自身比較結果輸出到比較結果 信號上,作為下一級目錄的輸入;若新實體的優(yōu)先級高于當前記錄實體,且上 一級目錄項輸出的比較結果為新實體優(yōu)先級低于其記錄的當前實體,則本目錄 項將新實體信息讀入,作為當前實體信息,同時將原有實體信息,輸出到與下 一級目錄項連接的數(shù)據(jù)通路上,并且將自身比較結果輸出到比較結果信號上, 作為下一級目錄項的輸入;若新實體優(yōu)先級低丁當前記錄實體,則保持原有實 體信息不變,同時將自身比較結果輸出到比較結果信號上,作為下一級目錄項 的輸入。 一次插入操作,總共需要的周期數(shù)為3拍,第一拍輸入新實體,第二 拍產(chǎn)生比較結果,第三拍,根據(jù)比較結果,整個優(yōu)先級隊列進行上述規(guī)則的平 移,以達到優(yōu)先級的順序排列。具體比較過程,其實體信息與優(yōu)先級將被送到 最高級的上層隊列中,上層隊列中的下層處理單元將其并行的輸入到其內部的 目錄項,進行并行的比較。每個目錄項獨立比較自身記錄實體的優(yōu)先級與輸入 實體的優(yōu)先級,得到Comparese,f,結合從上一級目錄項得到的Compare^值,按 照下述規(guī)則進行移項當Compare-:0并且Compare她O,表示輸入實體已 經(jīng)在上一級目錄項前插入,則當前目錄項從上一級目錄項讀入其記錄的實體信 息,作為當前目錄項的實體信息,同時,將原有實體信息輸出到與下一級目錄 項連接的數(shù)據(jù)通路上;當Compare^尸0并且CompareM-1,表示新實體應該 在當前位置插入,則當前目錄項將新實體信息作為當前信息記錄,同時將原有 實體信息輸出到與下一級目錄項連接的數(shù)據(jù)通路上;當C0mpareself= 1時,表示 新實體應該在當前目錄項的后續(xù)目錄中插入,因此,當前目錄項保持不變。各 個目錄項之間并行操作。
3)上層隊列由傳遞優(yōu)先級模型實現(xiàn),每個上層隊列,包括了一個的下層處 理單元,上層隊列之間,按照優(yōu)先級,順序排列
上層隊列按照傳遞優(yōu)先級模型實現(xiàn),每一級之間,由數(shù)據(jù)通路,控制信號,連接,且按照優(yōu)先級高低順序排列。其內部為一個下層處理單元;
4) 上層隊列之間的實體傳遞,發(fā)生在前一級上層隊列內部下層處理單元的 目錄項耗盡時
當新實體需要插入時,若新實體插入位置的下層處理單元中,優(yōu)先級隊列 目錄項未滿,則按照上文中提到的下層處理單元新實體插入方法插入,上層隊 列之間無須任何動作。當新實體插入位置的下層處理單元中,優(yōu)先級隊列目錄 項已滿,則需要在上層隊列之間傳遞實體信息,此時,將新實體插入需要插入 的位置,同時,將溢出隊列的最低優(yōu)先級的目錄項,遷移到下一級上層隊列中。 實體信息以及控制信號由當前上層隊列輸出,下一級上層隊列收到信號,其內 部下層處理單元開始新實體的插入,若下層處理單元的目錄項未滿,則插入成 功,操作停止;若由于下層處理單元的目錄項已滿,則需要繼續(xù)與再下一級的 上層隊列發(fā)生實體傳遞,依次進行,直到操作停止;
5) 整條優(yōu)先級隊列,由若干上層隊列組成
整條優(yōu)先級隊列,由若干上層隊列,按照優(yōu)先級順序,串聯(lián)而成,各個上 層隊列內,包括了一個下層處理單元,下層處理單元,包括了若干目錄項。
6) 常數(shù)時間的最高優(yōu)先級實體出隊列
最高優(yōu)先級的實體信息,總是存放在最高級上層隊列中的下層處理單元最 高級目錄項中,當該實體出隊列時,所有后續(xù)的目錄項向上級平移,上層隊列 直接,下一級上層隊列中的最高優(yōu)先級目錄項將被遷移到上一級的上層隊列中,
完成這一過程所需要的時間為常數(shù);最高優(yōu)先級隊列出隊列具體實施時,只需 將最高級上層隊列中最高級的目錄項輸出,則得到了最高優(yōu)先級的實體信息, 同時,控制信號發(fā)出到所有上層隊列,使下層處理單元告訴所有目錄項,向高 優(yōu)先級方向平移一個目錄項,上層隊列之間,由低優(yōu)先級向高優(yōu)先級方向遷移。
7) 平衡負載與性能的優(yōu)先級目錄插入
當新實體插入時,由于其只需送給第一級上層隊列中下層處理單元的所有目
錄項,因此負載較同時送給整條隊列的情況降低;同時,實體的插入,采用了 局部并行比較多方法,較傳遞優(yōu)先級方式,節(jié)省了比較傳遞的時間以及諸項比 較所需的暫存硬件資源,性能上得到了提升。
權利要求
1. 一種平衡負載與性能的硬件優(yōu)先級隊列實現(xiàn)方法,其特征在于1)下層處理單元由若干目錄項組成每個下層處理單元,由若干相同的目錄項組成,每個目錄項為一個硬件單元,包括讀寫口,控制信號以及實體信息輸入/輸出口。相鄰項之間,通過與數(shù)據(jù)位寬相同的數(shù)據(jù)通路,以及一位寬的比較結果信號連接。每一項記錄了實體信息,包括實體優(yōu)先級以及其他信息;2)下層處理單元新實體插入,按照并行移項隊列模式,采用并行比較的方式實現(xiàn)當有新的實體到來時,該實體的實體信息將同時被傳送到每個目錄項的實體輸入口,同時,控制信號告知每個目錄項有新實體到來。目錄項發(fā)現(xiàn)有新實體到來時,立即比較自己當前記錄的實體優(yōu)先級與新實體的優(yōu)先級,若新實體的優(yōu)先級高于當前記錄的實體,且上一級目錄項輸出的比較結果為新實體優(yōu)先級高于其記錄的當前實體,則本目錄項將上一級目錄項當前實體信息記錄內容讀入,作為當前實體信息,同時將原有實體信息,輸出到與下一級目錄項連接的數(shù)據(jù)通路上,并且將自身比較結果輸出到比較結果信號上,作為下一級目錄的輸入;若新實體的優(yōu)先級高于當前記錄實體,且上一級目錄項輸出的比較結果為新實體優(yōu)先級低于其記錄的當前實體,則本目錄項將新實體信息讀入,作為當前實體信息,同時將原有實體信息,輸出到與下一級目錄項連接的數(shù)據(jù)通路上,并且將自身比較結果輸出到比較結果信號上,作為下一級目錄項的輸入;若新實體優(yōu)先級低于當前記錄實體,則保持原有實體信息不變,同時將自身比較結果輸出到比較結果信號上,作為下一級目錄項的輸入。一次插入操作,總共需要的周期數(shù)為3拍,第一拍輸入新實體,第二拍產(chǎn)生比較結果,第三拍,根據(jù)比較結果,整個優(yōu)先級隊列進行上述規(guī)則的平移,以達到優(yōu)先級的順序排列;3)上層隊列由傳遞優(yōu)先級模型實現(xiàn),每個上層隊列,包括了一個的下層處理單元,上層隊列之間,按照優(yōu)先級,順序排列上層隊列按照傳遞優(yōu)先級模型實現(xiàn),每一級之間,由數(shù)據(jù)通路,控制信號,連接,且按照優(yōu)先級高低順序排列。其內部為一個下層處理單元;4)上層隊列之間的實體傳遞,發(fā)生在前一級上層隊列內部下層處理單元的目錄項耗盡時當新實體需要插入時,若新實體插入位置的下層處理單元中,優(yōu)先級隊列目錄項未滿,則按照上文中提到的下層處理單元新實體插入方法插入,上層隊列之間無須任何動作。當新實體插入位置的下層處理單元中,優(yōu)先級隊列目錄項已滿,則需要在上層隊列之間傳遞實體信息,此時,將新實體插入需要插入的位置,同時,將溢出隊列的最低優(yōu)先級的目錄項,遷移到下一級上層隊列中。實體信息以及控制信號由當前上層隊列輸出,下一級上層隊列收到信號,其內部下層處理單元開始新實體的插入,若下層處理單元的目錄項未滿,則插入成功,操作停止;若由于下層處理單元的目錄項已滿,則需要繼續(xù)與再下一級的上層隊列發(fā)生實體傳遞,依次進行,直到操作停止;5)整條優(yōu)先級隊列,由1條或多條上層隊列組成整條優(yōu)先級隊列,由1條或多條上層隊列,按照優(yōu)先級順序,串聯(lián)而成,各個上層隊列內,包括了一個下層處理單元,下層處理單元,包括了多個目錄項。6)常數(shù)時間的最高優(yōu)先級實體出隊列最高優(yōu)先級的實體信息,總是存放在最高級上層隊列中的下層處理單元最高級目錄項中,當該實體出隊列時,所有后續(xù)的目錄項向上級平移,上層隊列直接,下一級上層隊列中的最高優(yōu)先級目錄項將被遷移到上一級的上層隊列中,完成這一過程所需要的時間為常數(shù);7)平衡負載與性能的優(yōu)先級目錄插入當新實體插入時,由于其只需送給第一級上層隊列中下層處理單元的所有目錄項,因此負載較同時送給整條隊列的情況降低;同時,實體的插入,采用了局部并行比較多方法,較傳遞優(yōu)先級方式,節(jié)省了比較傳遞的時間以及諸項比較所需的暫存硬件資源,性能上得到了提升;
全文摘要
本發(fā)明公開了一種平衡負載與性能的硬件優(yōu)先級隊列實現(xiàn)方法。是通過結合兩種當前硬件優(yōu)先級隊列較為普遍的實現(xiàn)方法平移型硬件優(yōu)先級隊列以及傳遞行硬件優(yōu)先級隊列,解決了負載與性能的矛盾問題,充分發(fā)揮了硬件并行化的性能優(yōu)勢以及減少了并行化所帶來的負載增加問題。本發(fā)明采樣模塊化設計,使得優(yōu)先級隊列的擴展性好,無論是需要增加優(yōu)先級還是增加目錄項,都相對獨立,無須改變整個隊列的結構。利用下層處理單元的并行移項隊列,提高了優(yōu)先級隊列的并行性以及響應速度。利用上層隊列的逐項傳遞隊列,使得新實體的插入,僅僅需要與第一級的上層隊列中所有目錄項進行比較,降低了負載。
文檔編號G06F9/46GK101419562SQ20081016290
公開日2009年4月29日 申請日期2008年12月4日 優(yōu)先權日2008年12月4日
發(fā)明者馮德貴, 吳斌斌, 罡 王, 威 胡, 度 陳, 陳天洲 申請人:浙江大學