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

基于Credit的流量控制

流量控制(Flow Control),也叫流控,它是控制组件之间发送和接收信息的过程。在总线中,流控的基本单位称为flit。

在标准同步接口中(比如AXI协议接口),握手信号如果直接采用寄存器打拍的方式容易导致信号在不同的方向上出现偏离。因此,引入了更复杂的FIFO结构替代了寄存器方式来给握手信号打拍,方便后端时序收敛。但是,各种各样的FIFO设计要么引入气泡,要么浪费容量或引入不需要的握手逻辑组合链。为了避免控制电路中的组合逻辑路径,在一个时钟周期内,数据被搬进或搬出FIFO是不允许的,因此存在FIFO气泡。

现在许多NoC设计采用基于credit的流量控制(比如CHI协议接口)。在这种方式中,源端会跟踪目的端有多少资源可以使用。只有源端收到目的端发送的credit,源端才可以发送flit给出去。显然,目的端必须保证发出多少个credit,就必须能收下多少个flit。

下图为一个简单的基于credit流控示例图,源端的up/down counter会对收到的credit进行计数,表示下游Sink目的端可以收多少数据。因此Sink必须有足够的buffer来存放数据。因此,组件之间的数据转发简化为只需要看valid信号就行了。源端每次发送一个数据,就需要up/down counter的计数值减1。

图1 基于credit的流控示例图

http://www.xdnf.cn/news/4773.html

相关文章:

  • SQL知识点总结
  • 【Yolo精读+实践+魔改系列】Yolov3论文超详细精讲(翻译+笔记)
  • 第一次被AI指点出文章的问题
  • 【AXI总线专题】-AXI-LITE总线解读
  • 307.重新格式化电话号码
  • MySQL中MVCC的实现原理
  • WarpDemuX
  • AI开发跃迁指南(第三章:第四维度1——Milvus、weaviate、redis等向量数据库介绍及对比选型)
  • docker镜像误删恢复
  • 网络字节序 - 大端
  • 三格电子—ProfiNet 转 CAN/CANopen 网关应用案例
  • pygame联网飞机大战游戏实现
  • Ubuntu18.04 设置开机服务自启
  • 蓝桥杯FPGA赛道积分赛
  • 【愚公系列】《Manus极简入门》026-市场分析专家:“市场洞察家”
  • Centos系统详解架构详解
  • 深度学习工程化:基于TensorFlow的模型部署全流程详解
  • 力扣刷题Day 42:缺失的第一个正数(238)
  • Linux防火墙
  • DVWA保姆级通关教程--05文件上传
  • LeetCode 热题 100 131. 分割回文串
  • 对 Kotlin 中的 data 关键字的理解,相比于普通类有哪些特点?
  • 在浏览器使用 MCP,纯边缘函数实现 MCP Client Server
  • 软考错题(三)
  • JavaSE核心知识点02面向对象编程02-01(类与对象)
  • Ubuntu 安装 Nginx
  • networkmanager 和 resolv.conf 可能有覆盖需要配置DNS
  • OpenHarmony平台驱动开发(八),MIPI CSI
  • 旧版 Flutter 写的项目, 想要在新的环境上运行?
  • Kotlin 遍历