0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于RR的多路分發(fā)調(diào)用

Spinal FPGA ? 來源:Spinal FPGA ? 2023-04-15 10:40 ? 次閱讀

》多路一出的場景

在SpinalHDL代碼中,StreamArbiter提供了完善的多入一出的調(diào)度機制。里面可能應(yīng)用的較多的是Round Robin調(diào)度。在之前的文章《你知道如何做多端口仲裁么》中詳細講述了Round Robin調(diào)度思想。然而還有一類應(yīng)用場景就是針對一入多出的情況:

f2fa93ce-db35-11ed-bfe3-dac502259ad0.jpg

這其實也是之前微信群里面群友問的一個類似的場景。在一些應(yīng)用里,來自上游的數(shù)據(jù)或者任務(wù)分發(fā)給多個Kernel來進行執(zhí)行處理(如多個報文解析模塊)。針對每個任務(wù),其具體的執(zhí)行時間會有差異(比如在網(wǎng)絡(luò)報文頭解析中,不同層協(xié)議所需要的時鐘周期數(shù)并不相同)。那么為了盡可能避免Kernel空閑,顯然如果采用簡單的順序分發(fā)至Kernel1~kerneln會存在潛在的Kernel空閑。比如(假定n=3):

Task1——>Kernel1;100 Clock Cycle

Task2——>Kernel2;50 Clock Cycle

Task3——>Kernel3;10 Clock Cycle

Task4——>Kernel1;10 Clock Cycle

顯然,這里如果將Task4分發(fā)至Kernel1將會導致Dispatcher的阻塞。那么針對這種場景,顯然是下游Kernel誰空閑將任務(wù)分發(fā)給誰更合適。 》StreamFragmentRoundRobinDispatcher

不同于StreamArbiter所針對的多入一出的誰有任務(wù)調(diào)度誰的RR調(diào)度,這里是一種一入多出的誰空閑任務(wù)給誰的RR調(diào)度,即Dispatcher By Round。如果你看過之前上面的文章,那么這里可以很容易做實現(xiàn)。考慮到真實的應(yīng)用場景,這里僅針對Stream Fragment形式的調(diào)度實現(xiàn):

f3052474-db35-11ed-bfe3-dac502259ad0.png

相比于StreamArbiter中采用多路輸入信號的valid信號作為調(diào)度請求request相反,這里(Line:19)采用多路輸出端口的ready信號作為roundRobin的request請求,從而實現(xiàn)誰空閑把任務(wù)給誰。

如之前前文所說,Round Robin其實是一種優(yōu)先級位置變化的最低優(yōu)先級調(diào)度,故這里(Line:19)通過mask_locked的循環(huán)左移來實現(xiàn)優(yōu)先級排序。故這里在初始化時將mask_locked的最高位初始化為1。

這里采用mask_route來標識對應(yīng)的端口仲裁結(jié)果。對于一幀F(xiàn)ragment Stream流,其首拍時由于仲裁結(jié)果還未鎖定,故采用mask_arbited來充當仲裁標示,而在隨后報文鎖定后采用mask_locked來執(zhí)行(確保一幀任務(wù)的調(diào)度不會被下游ready信號的變化所影響。如果下游端口能一幀完整報文之間不會拉低ready那么這里還可以進一步進行優(yōu)化)。

對于多Kernel處理結(jié)果需要保序輸出的場景,這里提供了port_sel_oh信號來輸出指示當前報文送至哪個端口。使用時可能需要再例化一個FIFO作為保序結(jié)果存儲,此時在例化該模塊連接port_in端口時可能需要一個continueWhen將保序Fifo的push.ready考慮進去。在port_in.firstFire時將port_sel_oh寫入保序Fifo。






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • HDL
    HDL
    +關(guān)注

    關(guān)注

    8

    文章

    327

    瀏覽量

    47409
  • FIFO存儲
    +關(guān)注

    關(guān)注

    0

    文章

    103

    瀏覽量

    6018

原文標題:Dispatcher By Round Robin

文章出處:【微信號:Spinal FPGA,微信公眾號:Spinal FPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    IC設(shè)計:Verilog是如何實現(xiàn)RR輪詢調(diào)度的?

    在設(shè)計中,我們經(jīng)常會用到RR(Round-Robin,RR)輪詢調(diào)度,用于保證在一個時間段內(nèi)的多個請求信號都能得到公平響應(yīng)。
    的頭像 發(fā)表于 12-13 16:14 ?1856次閱讀

    [求助]誰有RJ45和RR1的封裝

    跪求RJ45和RR1的封裝,,,用在LPC2378上的,,謝謝啦wwh_hn@126.com
    發(fā)表于 08-08 09:06

    心電圖的數(shù)據(jù)處理和波形顯示包括心率,RR值等的參數(shù)顯示..

    心電圖的數(shù)據(jù)處理和波形顯示包括心率,RR值等的參數(shù)顯示....還有波形的存儲與回放,算是一個小系統(tǒng),給大家參考一下
    發(fā)表于 11-29 11:51

    多模輸入事件分發(fā)機制詳解

    多模輸入事件分發(fā)機制詳解一、 多模輸入概述多模輸入服務(wù)旨在支撐開發(fā)者面向用戶提供豐富多樣的人機交互方式,在持續(xù)完善支持傳統(tǒng)輸入的基礎(chǔ)上,多模輸入還會發(fā)揮 OpenAtom OpenHarmony
    發(fā)表于 07-04 11:22

    OZ9RR,pdf datasheet

    OZ9RR MULTIPLE-CCFL INVERTER TRANSFORMER SELECTION/ DESIGN GUIDE1. Choose a transformer from a
    發(fā)表于 11-03 17:26 ?108次下載

    RI-TRP-RR2B, RI-TRP-WR2B, RI-T

    RI-TRP-RR2
    發(fā)表于 06-26 20:49 ?8次下載

    STM32兩路(多路)MPU6050程序

    已經(jīng)實現(xiàn)兩路,邏輯分析儀測試時間為3-4ms,只需調(diào)用初始化和讀取數(shù)據(jù)就可以提取MPU6050多路數(shù)據(jù)
    發(fā)表于 01-19 21:49 ?29次下載

    ASMT-RR45-AQ902 0.45mm基于引線框架的表面貼裝ChipLED

    電子發(fā)燒友網(wǎng)為你提供Broadcom(ti)ASMT-RR45-AQ902相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有ASMT-RR45-AQ902的引腳圖、接線圖、封裝手冊、中文資料、英文資料,ASMT-RR45-AQ902真值表,ASMT-
    發(fā)表于 07-04 11:20
    ASMT-<b class='flag-5'>RR</b>45-AQ902 0.45mm基于引線框架的表面貼裝ChipLED

    Arduino庫直接調(diào)用沒有原庫復雜調(diào)用有用的數(shù)據(jù)

    本文檔的主要內(nèi)容詳細介紹的是Arduino庫直接調(diào)用沒有原庫復雜調(diào)用有用的數(shù)據(jù)免費下載。
    發(fā)表于 03-04 08:00 ?5次下載

    CAT-SE594-M1RR M12 A 編碼 MR-FS 雙頭電纜

    電子發(fā)燒友網(wǎng)為你提供TE(ti)CAT-SE594-M1RR相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有CAT-SE594-M1RR的引腳圖、接線圖、封裝手冊、中文資料、英文資料,CAT-SE594-M1RR真值表,CAT-SE594-M1
    發(fā)表于 07-06 01:00

    方型光電開關(guān)傳感器E3JK-TR-DR-RR11-C-DS3

    方型光電開關(guān)傳感器E3JK-TR-DR-RR11-C-DS3
    發(fā)表于 08-23 18:06 ?5次下載

    PHY1076-01QD-RR PHY1076-01QD-RR - (Maxim Integrated) - PMIC - 激光驅(qū)動器

    電子發(fā)燒友網(wǎng)為你提供()PHY1076-01QD-RR相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有PHY1076-01QD-RR的引腳圖、接線圖、封裝手冊、中文資料、英文資料,PHY1076-01QD-RR真值表,PHY1076-01QD-
    發(fā)表于 11-15 21:43
    PHY1076-01QD-<b class='flag-5'>RR</b> PHY1076-01QD-<b class='flag-5'>RR</b> - (Maxim Integrated) - PMIC - 激光驅(qū)動器

    RR輪詢調(diào)度?Verilog是如何實現(xiàn)RR輪詢調(diào)度的?

    在設(shè)計中,我們經(jīng)常會用到RR(Round-Robin,RR)輪詢調(diào)度,用于保證在一個時間段內(nèi)的多個請求信號都能得到公平響應(yīng)。
    的頭像 發(fā)表于 09-28 09:55 ?3997次閱讀
    <b class='flag-5'>RR</b>輪詢調(diào)度?Verilog是如何實現(xiàn)<b class='flag-5'>RR</b>輪詢調(diào)度的?

    永裕泰 二極管RR264M-400 SOD-123FL A4

    普通整流二極管RR264M-400SOD-123FLA4
    發(fā)表于 10-08 15:45 ?0次下載

    R3G250-RR02-11 EC離心風扇

    R3G250-RR02-11 EC離心風扇
    發(fā)表于 09-18 10:09 ?0次下載