当前位置: 首页 > news >正文

NoC组件之Router微架构解析(四)仲裁


Chapter 4: Arbitration Logic

(本文版权归作者所有,任何形式的转载都请注明出处)

  1. 通常的仲裁模块可以抽象为以下模型,其特性包括:
    • 输入请求:表示 Active 状态的请求Request[N-1:0]
    • 输出授权:仲裁结果Grant[N-1:0],One-Hot 编码;
    • 时序:每个 Cycle 可连续仲裁;
    • 优先级状态寄存器:每个请求的 Priority State,位宽取决于仲裁算法;
    • 优先级更新逻辑:由仲裁算法决定。

  1. 固定优先级算法:bit0 → bitN 优先级逐次降低。设Request = {Rn, Rn-1, ..., R1, R0},则仲裁结果表达式为:

    G[i]=R[i]⋅R[i−1]‾⋅...⋅R[1]‾⋅R[0]‾G[i] = R[i] \cdot \overline{R[i-1]} \cdot ... \cdot \overline{R[1]} \cdot \overline{R[0]}G[i]=R[i]R[i1]...R[1]R[0]

    也就是说该逻辑为「找最低位的 1」,具体实现方式有以下几种:

    a. 从 bit0 向上查找,遍历整个Request[N-1:0],复杂度 O(N):

    for(i=0;i<N;i++)if(R[i]){G[i]=1;break;}

    b.G = R & (~R + 1)(即 R 与 R 的补码按位与),逻辑级数取决于加法计算的位宽。例如:若R = 0110_0100,R 的补码为1001_1100,则G = 0110_0100 & 1001_1100 = 0000_0100

    c. 二叉树查找:每一级子树比较两 bit 大小,选择右侧最大值,逐级筛选 Request,复杂度 O(log N):

  2. 轮询(Round-Robin)算法:将整个Request[N-1:0]通过 Priority 分成高优先级段(HP)和低优先级段(LP)。定义映射f(Req[i], Pri[i]) = 2 * Req[i] + Pri[i],将活跃请求与优先级转化为 2 bit 编码:

    • 0b00:非活跃 / LP
    • 0b01:非活跃 / HP
    • 0b10:活跃 / LP
    • 0b11:活跃 / HP

    即可套用上述二叉树查找,每一级子树比较右侧最大值,逐级筛选 Request。仲裁成功后,需要通过移位把 Pri 向量更新——例如若Grant = 0001_0000,则下次 Pri 更新为1110_0000,目的是将上次仲裁成功的请求挪到 LP,规律是由低到高轮询。

  1. 利用二维优先级矩阵,可以实现更多复杂仲裁算法。图中矩阵元素P(i, j)代表输入 i 与 j 的优先级关系:

    • P(i, j) = 1,表示输入 i 优先级高于输入 j;
    • P(i, j) = 0,表示输入 i 优先级低于输入 j;
    • 其中P(i, i)无意义,固定为 0。

    每行 1 的数量总和可以反映出量化的优先级——sum 越大,优先级越高。若某一列中有 1,表示自己并非最高优先级,则无法获得 Grant。此外,仲裁时还需要判断输入请求是否活跃,非活跃的请求需要屏蔽掉对应行和列的 1。

    如Fig 4.8所示,输入请求req = {0, 1, 1},由于req[0]非活跃,需要屏蔽第 0 行和第 0 列,将剩余第 1、2 列做或非运算,得到Grant = {x, 0, 1},即本轮仲裁 req2 获胜(具体电路如 Fig. 4.9 所示)。

    利用不同的矩阵更新策略,可以实现多种仲裁算法:

    • LRU(Least Recently Used):本轮仲裁获胜的输入 i,将其优先级降为最低——将 i 行全部清 0,i 列全部置 1,即P(i, *) = 0P(*, i) = 1
    • MRU(Most Recently Used):本轮仲裁获胜的输入 i,将其优先级升为最高——将 i 行全部置 1,i 列全部清 0,即P(i, *) = 1P(*, i) = 0
    • RR(Incremental Round Robin):无论是否活跃,每一轮仲裁都将最高优先级的输入降为最低。
    • FCFS + LRU(Hybrid First-Come First Served and Least Recently Used):检测到新请求 i 上升沿时,若 j 非活跃,则将其优先级提高到大于其他非活跃请求 j,即P(i, j) = 1;若 i、j 同样活跃,则优先级不变;若输入 i 在本轮仲裁获胜,则将优先级置为最低,即P(i, *) = 0P(*, i) = 1


http://www.zskr.cn/news/1533118.html

相关文章:

  • 多相机兼容驱动方案:从抽象接口到工业实践
  • OBS多平台直播插件:3步实现YouTube、Twitch、B站同步推流
  • Python两位小数处理:四舍五入、银行家舍入与decimal精度实战
  • AgentGPT与AutoGPT选型指南:自主代理落地的工程决策逻辑
  • VSCode+Qwen3本地编程助手:零数据出境的AI编码实践
  • 打破苹果生态壁垒:3步让Windows电脑变身专业AirPlay接收器
  • 三相异步电动机原理、选型、控制与维护实战指南
  • 如何用MetaboAnalystR 4.0实现终极LC-MS代谢组学分析
  • DeepSeek V4 API双模型架构解析:百万上下文如何成为开发基础设施
  • ReWoo架构:解耦推理与观测的大模型工作流重构
  • 2026年四川及全国带管厂家综合实力分析:从钢带管到电力管供应商横向调研 - 优质品牌商家
  • 破除“内存墙”:存内计算 (IMC) 与计算架构的下一次大爆发
  • 2026年阻燃橡胶泡棉CR-5060B行业深度分析:技术参数、应用场景与供应商能力解读 - 优质品牌商家
  • 如何快速解决网盘限速:3步操作实现高速下载的完整指南
  • 六顶点模型与高斯自由场的临界现象研究
  • Python pandas选列策略:从基础语法到数据契约
  • 网盘资源安全处理与知识内化全流程指南
  • B2B 工厂专属双引擎策略:SEO 承接采购词排名,GEO 抢占 AI 咨询问答
  • Claude Code终端AI工作流:本地化嵌入式编程助手实战指南
  • LTspice仿真入门:单管共射放大电路设计与分析实战
  • 数字资产商城隐藏优惠机制全解析:从白名单到二级市场捡漏
  • 代码生成技术解析:从Playwright录制到AI大模型的应用实践
  • 2026年选购EFT脉冲群滤波器,行业内哪些知名制造厂家更靠谱
  • 代码大模型安全压力测试:Secure@k指标与四维防御框架
  • 氧化铝单晶:从宝石到半导体与激光硬核材料的制备与应用
  • 2026年四川工程机械维修厂怎么选?实地调研成都及周边服务商现状 - 优质品牌商家
  • Poetry 依赖管理原理与工程实践:终结 Python 环境不一致
  • 用数据说话:A-59U 语音模块降噪与回声消除性能实测
  • 对比实验全流程指南:从设计到分析的科学决策方法
  • 凯撒易食与凯撒旅业的股权关系解析,一文读懂其全资子公司身份 - 品牌2026