This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS320C6678:SRIO Tx 优先级

Guru**** 2582405 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/628272/tms320c6678-srio-tx-priority

器件型号:TMS320C6678
为了测试 Tx 优先级、我进行了以下测试:
两个 DSP 通过 x4模式下的 IDT SRIO 开关连接、每通道3.125G。 其中一个 DSP 是制片人、另一个是消费者。
系统设置:

  • 生产者 DSP 配置:
  • (a)配置了两个 Tx 通道(每个通道都有自己的 Tx 队列)、而每个通道使用不同的优先级(例如通道0的优先级为1、通道1的优先级为2)。 使用 CPPI LLD 函数 Cppi_txChannelOpen 设置优先级
  • (b)禁用 Tx 通道(使用禁用/中断功能)
  • (C)两个 Tx 通道中每一个通道的 Tx 队列都填充了数据包(有两组数据包由源设备 ID 区分,所有其他字段(流 ID、目标设备 ID)是相同的)。  
  • (D)数据包在 Tx 队列中聚合、但不传输、因为此时通道已禁用(或中断)。  
  • 消费类 DSP 配置为提取并打印每个接收到的数据包的源设备 ID。
系统测试:
顾客正在运行并等待数据包到达。 在生成者 Tx 队列被填满(并且使用者正在运行)后、Tx 通道被启用、使用者打印接收到的数据包的源 ID (因为每个 Tx 队列数据包具有不同的源设备 ID、我们可以看到使用者打印的 Tx 传输顺序)
我所期望的行为是、高优先级通道数据包优先于低优先级通道数据包
但是
系统的实际行为是以轮询方式接收数据包-通道0的数据包和通道1的数据包交替接收。 这意味着数据包是以轮询机制而不是基于优先级的机制发送的。
我是否错过了 Tx 优先级的配置、或者我的测试有误(如果有、如何测试 Tx 优先级功能)?  
谢谢
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我已通知软件团队。 他们的反馈将在此处发布。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    是否有更新?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Tzvi、

    根据您的配置、Tx 通道的行为似乎与您预期的一样、即首先传输高优先级通道数据包、然后再传输低优先级通道数据包、这与 TX 通道 N 调度程序配置寄存器:TX 调度优先级中的"优先级"位描述一致。 这些位选择将通道放置在哪个调度箱中以分配 TX DMA 单元的带宽。 箱之间的仲裁以严格的优先级方式执行。 给定库中的所有通道按循环顺序进行服务。

    让我与 CPPI/QMSS 专家核实、看看是否有任何意见。

    此致、Garrett

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果您在真空中考虑 Tx 数据包 DMA 操作、是的、它将耗尽(发送)所有高优先级通道、同时耗尽低优先级通道。

    SRIO 在如何与其数据包 DMA 副本进行交互方面有一些特殊规则。 应在 SRIO 用户指南中讨论这些内容(我不是 SRIO 专家)。 我似乎记得 Rx 端对数据包执行循环。

    如果您可以将消费类设备配置为在单个队列中接收(因此2个 Tx 队列馈入1个 Rx 队列)、则使用 Tx 侧未使用的描述符字段来指示源通道、您将看到传输的真实顺序。 无论在哪种情况下、我都建议您在 SRIO 用户指南中查找有关优先级顺序的此类信息。

    Dave