調度裝置的制造方法
【技術領域】
[0001] 本發明涉及一種調度裝置,尤其涉及一種高速硬件調度器。
【背景技術】
[0002]高速硬件調度器是當今的應用中需要的,尤其是對于業務服務質量(QoS)、CPU核 心之間的任務分布以及其它應用。調度器接收請求集合或輸入隊列狀態集合,且根據調度 方案產生對那些請求或輸入隊列的允許。每一允許可被解釋為對發送包或數據信息塊或者 使用共享資源的許可。
[0003]調度方案的類型從簡單的輪循到具有若干分層、權重和優先級等級的極復雜方案 而變化。標準硬件調度器實現最常見的調度方案,但具有過低允許速率的主要缺陷。在這 方面中,兩個參數是最重要的。第一者是調度器可產生的最大允許速率。第二者是從請求 直到所述請求的允許所存在的最小時延。
[0004] 在先前的現有技術中,硬件調度器通常可每兩個時鐘周期執行不超過一個允許, 而時延可占用幾個到甚至一千個周期以便服務于新請求。這是由調度方案的復雜性導致。
【發明內容】
[0005] 本發明的目的是提供一種快速調度器,其在低時延下以比系統時鐘高的速率允許 請求。
[0006] 獨立權利要求的特征可以實現這個目的。進一步的實施形式通過從屬權利要求、 說明書以及圖式清楚可見。
[0007] 為了詳細描述本發明,將使用以下術語、縮寫和符號:
[0008]QoS:服務質量(qualityofservice),
[0009]CPU:中央處理單元(centralprocessingunit),
[0010]RR:輪循(round-robin),
[0011]RCS:速率控制整形器或速率限制單元(ratecontrolshaperorratelimiting unit),
[0012] LVP:查找向量準備單元(lookupvectorprepareunit),
[0013]PFF:前綴森林單元(prefixforestunit),
[0014]req_vec:請求集合或請求向量(setofrequestsorvectorofrequests),
[0015]ack_vec:確認集合或確認向量(setofacknowledgementsorvectorof acknowledgements),
[0016]raw_mask:選擇掩碼集合或選擇掩碼向量(setofselectionmasksorvector ofselectionmasks),
[0017]CMP:比較模塊(comparemodule),
[0018]NASO:與非移一位模塊(NotAndShiftOnemodule),
[0019]TE,Bld,Sel:指定可具有不同優先級的不同隊列群組(designatedifferent queuegroupswhichmayhavedifferentpriorities),
[0020]PD:傳播延遲(propagationdelay),
[0021]FA,HA:實施前綴樹的加法器(addersimplementingtheprefixtree)〇
[0022] 根據第一方面,本發明涉及一種調度裝置,用于接收請求集合(asetof requests)且提供對所述請求集合的允許集合(asetofgrants),所述調度裝置包括:查 找向量準備單元(alookupvectorprepareunit),用于合并(merge)請求集合和選擇掩 碼(aselectionmask)以便提供查找向量準備請求集合(alookupvectorpreparedset ofrequests)且提供對所述請求集合的確認集合(asetofacknowledgements);以及親 合到所述查找向量準備單元的前綴森林單元(aprefixforestunit),其中所述前綴森林 單元用于提供作為所述新請求集合(thenewsetofrequests)的函數的所述允許集合且 提供基于所述允許集合的所述選擇掩碼。
[0023] 所述調度裝置可實施為同步硬件電路調度器(asynchronoushardwarecircuit scheduler)。所述調度裝置能夠根據調度方案選擇N個請求,例如輸入隊列,且所述調度裝 置能夠在每一時鐘周期中執行P個選擇(selections)或分發(issues)。因此,所述調度裝 置允許在低時延下以比系統時鐘高的速率處理請求。
[0024] 所述調度裝置可用作CPU之間的任務的調度器,或在交換或路由單元上調度數據 包。所述調度裝置還可用作用于更復雜的調度器的構建模塊以便產生更復雜的調度方案。 在此意義上所述調度裝置可以是級聯的若干任務調度器,所述調度器以不同方式配置以便 產生分層式調度方案。
[0025] 在根據第一方面的調度裝置的第一可能的實施形式中,所述調度裝置包括耦合到 所述查找向量準備單元的速率限制單元(aratelimitingunit),其中所述速率限制單元 用于根據調度方案(aschedulingscheme)限制所述請求集合的速率以提供速率受限請求 集合(arate-limitedsetofrequests),相應的,由所述查找向量準備單元合并的所述請 求集合是所述速率受限請求集合。
[0026] 通過根據調度方案對請求集合進行速率限制,所述調度裝置能夠產生分層式調度 方案。
[0027] 在根據第一方面的第一實施形式的調度裝置的第二可能的實施形式中,速 率限制單元用于過濾已通過(pass)確認的可配置速率(aconfigurablerateof acknowledgments)的請求群組(requestor-groups)的請求(requests) 〇
[0028] 所述速率限制機制因此可用于實施可配置速率限制。
[0029] 當隊列已接收到確認時,所述隊列被告知將允許請求且所述隊列可繼續發送下一 請求。所述請求,例如所述隊列因此被告知調度裝置的內部狀態。
[0030] 在根據第一方面的先前實施形式中的任一者的調度裝置的第三可能的實施形式 中,調度方案是基于請求集合和確認集合所指派給的隊列群組。
[0031] 當在調度方案中實施不同隊列群組時,調度裝置可實施優先級調度,其中重要請 求放置于高優先級的隊列群組中。
[0032] 在根據第一方面的第三實施形式的調度裝置的第四可能的實施形式中,速率限制 單元包括桶緩沖器的集合(asetofbucketbuffers),每一桶緩沖器被指派給所述隊列群 組中的一者用于存儲所述確認集合中的確認,所述確認集合中的確認被指派給所述隊列群 組中的一者(eachbucketbufferassignedtooneofthequeuegroupsforstoring acknowledgementsofthesetofacknowledgementsassignedtotheoneofthequeue groups)〇
[0033] 不同桶緩沖器可實現不同隊列群組。桶緩沖器可表示用于根據調度方案進行流量 整形的整形器桶,例如整形器存儲器。每一桶緩沖器可單獨地執行隊列群組的整形直到隊 列群組可遵照流行的流量合同進行發送。這可在指派給隊列群組的桶緩沖器為空的情況下 立即發生,在指派給隊列群組的桶緩沖器填充到某一水平的情況下在某一延遲之后發生, 或在桶緩沖器溢出的情況下從不發生。
[0034] 在根據如此的第一方面或根據第一方面的先前實施形式中的任一者的調度裝置 的第五可能的實施形式中,查找向量準備單元包括:掩蔽單元,其用于基于選擇掩碼掩蔽當 前請求集合以提供經掩蔽請求集合;聯合單元,其用于合并所述經掩蔽請求集合與所述速 率受限請求集合以提供當前請求集合;以及移位單元,其用于基于所述選擇掩碼的經移位 版本移位所述當前請求集合以提供所述查找向量準備請求集合。
[0035] 通過基于選擇掩碼掩蔽經移位請求集合,未允許的請求由查找向量準備單元以遞 歸方式處理,這是存儲器高效的且提供低延遲的快速處理。
[0036] 在根據第一方面的第五實施形式的調度裝置的第六可能的實施形式中,查找向量 準備單元用于提供選擇掩碼的經移位版本以用于輪循所述速率受限請求集合。
[0037] 通過執行輪循,查找向量準備單元可在指定時間內處理每一請求。最長路徑的延 遲減少,從而得到低的總延遲。
[0038] 在根據如此的第一方面或根據第一方面的先前實施形式中的任一者的調度裝置 的第七可能的實施形式中,前綴森林單元包括前綴樹。
[0039] 前綴樹較適合存儲許多請求。不同于大多數其它算法,前綴樹具有獨特特征:代碼 路徑且因此需要的時間對于插入、刪除和查找操作來說是幾乎相同的。因此,對于其中代碼 是以相等量度插入、刪除和查找的情形,前綴樹可勝過對分搜索樹,以及提供CPU指令和分 支高速緩存的較好基礎。
[0040] 在根據第一方面的第七實施形式的調度裝置的第八可能的實施形式中,所述前綴 森林單元的輸出被確定為數字的集合z(asetZofnumbers),且對于Z中的每一數字Zi, XfYf Z工成立。
[0041]當森林的輸出是稱為Z的數字集合且對于Z中的每一數字21來說關系Xi+YiiZi 成立時,替代于執行實際加法,存在的選項是讓所述機制的下一階段、即比較階段使用&和 t的原料。前綴森林單元可增加其效率且以較高速度產生輸出。
[0042] 在根據第一方面的第八實施形式的調度裝置的第九可能的實施形式中,前綴森林 單元用于將Z中的一對乂;和¥;與已知選項集合(aknownsetofoptions)進行比較。
[0043] 替代于將Z中的每一數字與相關值進行比較,前綴森林單元將一對與已知選項集 合進行比較且通過此做法,前綴森林單元節省了由將&和Yi放置到加法