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

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

3天内不再提示

Tsi620缓冲区释放管理:如何避免或限制拥塞情况

电子设计 来源: IDT 作者: IDT 2021-05-27 15:39 次阅读

本文档介绍了称为“桥缓冲区释放管理(BRM)”的Tsi620功能如何避免或限制拥塞情况下可能发生的基于优先级的饥饿。

Tsi620缓冲区释放管理

在基于优先级的协议中,需要重新排序以避免死锁情况。当缓冲区被无法向前处理的事务占用时,就会发生死锁。重新排序通过允许较高优先级的事务在较低优先级的事务之前完成来帮助防止死锁情况。

RapidIO和PCI都允许基于优先级对事务进行重新排序。使用PCI协议,优先级与事务类型相关联:可以在读取响应之前发送写入,并且可以在读取请求之前发送写入和读取响应。RapidIO使用数字优先级方案,最高优先级为3,最低优先级为0。较高优先级的数据包可以先于较低优先级的数据包发送。PCI事务映射到RapidIO优先级,如下所示:

PCI写入– RapidIO优先级2

PCI读取响应– RapidIO优先级1

PCI读取请求– RapidIO优先级0

PCI / RapidIO优先级映射保留了避免死锁所必需的PCI重新排序。

重新排序的副作用是,在拥塞情况下,较高优先级事务的低速率可能会饿死较低优先级的数据包。如图1所示,当较高优先级的事务完成时,它们将释放只能由其他较高优先级的事务占用的缓冲区。在最左侧,缓冲区已完全满,并且高优先级数据包正在传输到RapidIO。在中间,另一个高优先级数据包被传送到RapidIO,而新的高优先级数据包则被接收到上一步清空的缓冲区中。在最右边,再次仅发送和接收高优先级数据包。“乒乓”行为会导致优先级较低的数据包匮乏。

pIYBAGCvS8eAfymkAAFJPmUeAvk432.png

缓冲区管理–高和低优先级数据包

基本机制

Tsi620中的串行RapidIO端点(SREP)根据优先级分配缓冲区空间。水印是缓冲区填充级别,用于确定可将多少个缓冲区用于给定优先级及更高级别的数据包。图2显示了如何为不同的RapidIO数据包优先级和不同类型的PCI事务分配缓冲区。请注意,PCI事务具有三个优先级,而RapidIO数据包具有四个优先级。

o4YBAGCvS9KAEnHPAAFR1jgx3Q8916.png

I2R和R2I水印

Tsi620 BRM功能强制完成多个交易,然后再接受更多交易。这会造成暂时的无拥塞情况,从而防止了重新排序行为。BRM功能基于两个缓冲区填充级别设置,称为STOP和RESUME(请参见图3)。

pIYBAGCvS9yAJrXEAAFwPIyjF74278.png

BRM恢复和停止级别与水印的关系

当缓冲区填充水平达到STOP点时,SREP停止将已完成事务释放的缓冲区通知桥ISF /交换ISF(请参见图4)。网桥ISF /交换机ISF停止转发数据包,并且缓冲区填充级别最终下降到RESUME点。因为STOP设置在高优先级数据包的水印之上,而RESUME设置在低优先级数据包的水印之下,所以当缓冲区填充水平从STOP点下降到RESUME点时,所有优先级的数据包都可以向前转发。

一旦到达RESUME点,就会将实际的缓冲区填充级别通知给桥ISF /交换机ISF,所有优先级的数据包都可以开始流入缓冲区。由于RESUME点位于低优先级数据包的水印之下,并且现在有许多缓冲区可用,因此所有优先级的数据包都可以流入缓冲区。结果,这种缓冲机制有助于防止基于优先级的饥饿。

o4YBAGCvS-iAOUUqAAGeEIZYoaY750.png

缓冲区释放管理操作

在极少数流量情况下,BRM机制可能会通过阻止完成未完成交易所需的更高优先级数据包的转发进程而导致死锁。为避免死锁,BRM将最大时间设置为STOP状态。一旦超时到期,就可以选择两种可能的行为:

在达到RESUME值之前,请勿使用BRM-这将禁用BRM,直到不再存在拥塞情况为止。当拥塞时间很短和/或出现死锁的可能性很高时,这是首选的操作模式。这会导致长时间的基于优先级的饥饿,但是会避免由于BRM而导致长时间不转发任何数据包的情况。

如果再次达到STOP级别,请重新接合BRM。这是当拥塞时间较长且死锁的可能性较低时的首选操作模式。这样就避免了基于优先级的饥饿,这是以较长的时间为代价的,即死锁发生时不会转发任何数据包。

编辑:hfy

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

    关注

    1

    文章

    37

    浏览量

    20748
  • PCI
    PCI
    +关注

    关注

    4

    文章

    608

    浏览量

    129590
  • 数据包
    +关注

    关注

    0

    文章

    229

    浏览量

    24095
收藏 人收藏

    评论

    相关推荐

    使用UART FIFO缓冲区时,缓冲区中的数据有时会损坏的原因?

    = XMC_USIC_CH_PARITY_ MODE_NONE 两个 UART 通道都使用 FIFO 缓冲区,没有任何中断。 缓冲区每 1 毫秒 TLE9243QK_BASE_BOARD 检查一次标志是否有可供读取
    发表于 03-06 06:59

    缓冲区的解释

    板载缓冲区区分开来,板载缓冲区是厂商固定死的,改变不了,不会出现溢出的情况,它的空间可以很小,比如1Kbit以下,但计算机中为数据采集开辟的内存建议是采样率的10左右,即是说即使DAQmx
    发表于 04-07 15:56

    STM32进阶之串口环形缓冲区实现

    缓冲区的数据进行读写操作了,直到缓冲区已满(头尾相接),将数据处理完,可以释放掉数据,又可以进行存储新的数据了。实现的原理:初始化的时候,列队头与列队尾都指向0,当有数据存储的时候,数据存储在‘0’的地址
    发表于 06-08 14:03

    MCU进阶之串口环形缓冲区实现

    ;(Tail)即可对缓冲区的数据进行读写操作了,直到缓冲区已满(头尾相接),将数据处理完,可以释放掉数据,又可以进行存储新的数据了。实现的原理:初始化的时候,列队头与列队尾都指向0,当有数据存储的时候,数据
    发表于 08-17 13:11

    STM32串口环形缓冲区的实现

    ;(Tail)即可对缓冲区的数据进行读写操作了,直到缓冲区已满(头尾相接),将数据处理完,可以释放掉数据,又可以进行存储新的数据了。实现的原理:初始化的时候,列队头与列队尾都指向0,当有数据存储的时候
    发表于 10-16 11:40

    基于ARM和FPGA的环形缓冲区接口设计方案

    高速数据收发情况下,需要设计一种合理的缓冲区进行数据传输速率的匹配和缓冲。另外,对于ARM CPU来说,由于CPU往往需要同时并行处理多种任务,如何尽可能地保证数据的实时接收,也是设计中的一个关键
    发表于 05-30 05:00

    环形缓冲区简介

    STM32串口数据接收 --环形缓冲区环形缓冲区简介  在单片机中串口通信是我们使用最频繁的,使用串口通信就会用到串口的数据接收与发送,环形缓冲区方式接收数据可以更好的保证数据丢帧率第。  在通信
    发表于 08-17 06:56

    缓冲区溢出的危害及避免缓冲区溢出的三种方法

    1. 蠕虫病毒简介2. 缓冲区溢出3. 缓冲区溢出举例4. 缓冲区溢出的危害5. 内存在计算机中的排布方式6. 计算机中越界访问的后果7. 避免缓冲
    发表于 03-02 07:55

    缓冲区溢出的危害及避免缓冲区溢出的三种方法

    1. 蠕虫病毒简介2. 缓冲区溢出3. 缓冲区溢出举例4. 缓冲区溢出的危害5. 内存在计算机中的排布方式6. 计算机中越界访问的后果7. 避免缓冲
    发表于 03-30 14:01

    请问串口的DMA接收缓冲区是不是环形缓冲区

    大家好!请问串口的DMA接收缓冲区是不是环形缓冲区?通过阅读串口部分的代码,我了解到这样几点:1、串口的DMA接收时循环接收,当缓冲区满了会重新从头开始覆盖掉之前的数据,和环形缓冲区
    发表于 08-30 14:27

    DMA循环缓冲区如何重置起点?

    “head_index”,但不会在每次进入中断时将索引重置回 0?否则此时没有真正的方法来管理缓冲区。目前,我可以计算收到的字节数(但会覆盖之前的字节数),或者我可以将数据写入 DMA 缓冲区但无法跟踪传入的字节数。
    发表于 12-13 08:22

    Tsi620 评估板 User 手册

    Tsi620 评估板 User 手册
    发表于 04-20 18:41 0次下载
    <b class='flag-5'>Tsi620</b> 评估板 User 手册

    Tsi620 评估板 原理图s

    Tsi620 评估板 原理图s
    发表于 04-20 18:41 0次下载
    <b class='flag-5'>Tsi620</b> 评估板 原理图s

    Tsi620 User 手册

    Tsi620 User 手册
    发表于 05-15 19:42 0次下载
    <b class='flag-5'>Tsi620</b> User 手册

    Tsi620 User 手册

    Tsi620 User 手册
    发表于 07-12 18:34 0次下载
    <b class='flag-5'>Tsi620</b> User 手册