0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于RR的多路分发调用

Spinal FPGA 来源:Spinal FPGA 2023-04-15 10:40 次阅读

》多路一出的场景

在SpinalHDL代码中,StreamArbiter提供了完善的多入一出的调度机制。里面可能应用的较多的是Round Robin调度。在之前的文章《你知道如何做多端口仲裁么》中详细讲述了Round Robin调度思想。然而还有一类应用场景就是针对一入多出的情况:

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

这其实也是之前微信群里面群友问的一个类似的场景。在一些应用里,来自上游的数据或者任务分发给多个Kernel来进行执行处理(如多个报文解析模块)。针对每个任务,其具体的执行时间会有差异(比如在网络报文头解析中,不同层协议所需要的时钟周期数并不相同)。那么为了尽可能避免Kernel空闲,显然如果采用简单的顺序分发至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分发至Kernel1将会导致Dispatcher的阻塞。那么针对这种场景,显然是下游Kernel谁空闲将任务分发给谁更合适。 》StreamFragmentRoundRobinDispatcher

不同于StreamArbiter所针对的多入一出的谁有任务调度谁的RR调度,这里是一种一入多出的谁空闲任务给谁的RR调度,即Dispatcher By Round。如果你看过之前上面的文章,那么这里可以很容易做实现。考虑到真实的应用场景,这里仅针对Stream Fragment形式的调度实现:

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

相比于StreamArbiter中采用多路输入信号的valid信号作为调度请求request相反,这里(Line:19)采用多路输出端口的ready信号作为roundRobin的request请求,从而实现谁空闲把任务给谁。

如之前前文所说,Round Robin其实是一种优先级位置变化的最低优先级调度,故这里(Line:19)通过mask_locked的循环左移来实现优先级排序。故这里在初始化时将mask_locked的最高位初始化为1。

这里采用mask_route来标识对应的端口仲裁结果。对于一帧Fragment Stream流,其首拍时由于仲裁结果还未锁定,故采用mask_arbited来充当仲裁标示,而在随后报文锁定后采用mask_locked来执行(确保一帧任务的调度不会被下游ready信号的变化所影响。如果下游端口能一帧完整报文之间不会拉低ready那么这里还可以进一步进行优化)。

对于多Kernel处理结果需要保序输出的场景,这里提供了port_sel_oh信号来输出指示当前报文送至哪个端口。使用时可能需要再例化一个FIFO作为保序结果存储,此时在例化该模块连接port_in端口时可能需要一个continueWhen将保序Fifo的push.ready考虑进去。在port_in.firstFire时将port_sel_oh写入保序Fifo。






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • HDL
    HDL
    +关注

    关注

    8

    文章

    326

    浏览量

    47302
  • FIFO存储
    +关注

    关注

    0

    文章

    103

    浏览量

    5955

原文标题:Dispatcher By Round Robin

文章出处:【微信号:Spinal FPGA,微信公众号:Spinal FPGA】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    IC设计:Verilog是如何实现RR轮询调度的?

    在设计中,我们经常会用到RR(Round-Robin,RR)轮询调度,用于保证在一个时间段内的多个请求信号都能得到公平响应。
    的头像 发表于 12-13 16:14 1666次阅读

    [求助]谁有RJ45和RR1的封装

    跪求RJ45和RR1的封装,,,用在LPC2378上的,,谢谢啦wwh_hn@126.com
    发表于 08-08 09:06

    心电图的数据处理和波形显示包括心率,RR值等的参数显示..

    心电图的数据处理和波形显示包括心率,RR值等的参数显示....还有波形的存储与回放,算是一个小系统,给大家参考一下
    发表于 11-29 11:51

    多模输入事件分发机制详解

    多模输入事件分发机制详解一、 多模输入概述多模输入服务旨在支撑开发者面向用户提供丰富多样的人机交互方式,在持续完善支持传统输入的基础上,多模输入还会发挥 OpenAtom OpenHarmony
    发表于 07-04 11:22

    OZ9RR,pdf datasheet

    OZ9RR MULTIPLE-CCFL INVERTER TRANSFORMER SELECTION/ DESIGN GUIDE1. Choose a transformer from a
    发表于 11-03 17:26 108次下载

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

    RI-TRP-RR2
    发表于 06-26 20:49 8次下载

    STM32两路(多路)MPU6050程序

    已经实现两路,逻辑分析仪测试时间为3-4ms,只需调用初始化和读取数据就可以提取MPU6050多路数据
    发表于 01-19 21:49 29次下载

    ASMT-RR45-AQ902 0.45mm基于引线框架的表面贴装ChipLED

    电子发烧友网为你提供Broadcom(ti)ASMT-RR45-AQ902相关产品参数、数据手册,更有ASMT-RR45-AQ902的引脚图、接线图、封装手册、中文资料、英文资料,ASMT-RR45-AQ902真值表,ASMT-
    发表于 07-04 11:20
    ASMT-<b class='flag-5'>RR</b>45-AQ902 0.45mm基于引线框架的表面贴装ChipLED

    Arduino库直接调用没有原库复杂调用有用的数据

    本文档的主要内容详细介绍的是Arduino库直接调用没有原库复杂调用有用的数据免费下载。
    发表于 03-04 08:00 5次下载

    CAT-SE594-M1RR M12 A 编码 MR-FS 双头电缆

    电子发烧友网为你提供TE(ti)CAT-SE594-M1RR相关产品参数、数据手册,更有CAT-SE594-M1RR的引脚图、接线图、封装手册、中文资料、英文资料,CAT-SE594-M1RR真值表,CAT-SE594-M1
    发表于 07-06 01:00

    方型光电开关传感器E3JK-TR-DR-RR11-C-DS3

    方型光电开关传感器E3JK-TR-DR-RR11-C-DS3
    发表于 08-23 18:06 5次下载

    PHY1076-01QD-RR PHY1076-01QD-RR - (Maxim Integrated) - PMIC - 激光驱动器

    电子发烧友网为你提供()PHY1076-01QD-RR相关产品参数、数据手册,更有PHY1076-01QD-RR的引脚图、接线图、封装手册、中文资料、英文资料,PHY1076-01QD-RR真值表,PHY1076-01QD-
    发表于 11-15 21:43
    PHY1076-01QD-<b class='flag-5'>RR</b> PHY1076-01QD-<b class='flag-5'>RR</b> - (Maxim Integrated) - PMIC - 激光驱动器

    SCL中调用函数的示例

    在此,可插入函数 (FC) 调用和函数块 (FB) 调用。函数块可作为单实例、多重实例或参数实例进行调用
    的头像 发表于 06-06 10:18 2033次阅读

    RR轮询调度?Verilog是如何实现RR轮询调度的?

    在设计中,我们经常会用到RR(Round-Robin,RR)轮询调度,用于保证在一个时间段内的多个请求信号都能得到公平响应。
    的头像 发表于 09-28 09:55 3758次阅读
    <b class='flag-5'>RR</b>轮询调度?Verilog是如何实现<b class='flag-5'>RR</b>轮询调度的?

    R3G250-RR02-11 EC离心风扇

    R3G250-RR02-11 EC离心风扇
    发表于 09-18 10:09 0次下载