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.

[参考译文] AM2434:当访问 MSRAM (0x70000000)时、LBBO 命令在 PRU 中需要将近120ns

Guru**** 2393725 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1485851/am2434-lbbo-command-takes-nearly-120ns-in-pru-when-visiting-msram-0x70000000

器件型号:AM2434

工具与软件:

当我用 PRU 读出存储器日期, LBBO 命令成本120ns,这是太长.

我需要我的逻辑能够在100ns 的时钟频率下工作。 在每个周期中、我需要从存储器读取数据、但 LBBO 命令需要近120ns、这是异常的。 当我使用 LBCO 命令时、只需要15ns。 我认为这可能与存储器地址有关。 我将使用0x70000000 MSRAM 区域、从 R5写入、并通过 PRU 读取。 120ns 似乎过长。 是否有办法缩短该命令的执行时间? 我的 PRU 以200MHz 的频率工作、单指令周期时间为5ns。

代码:

LBBO &PIXEL_DATA、SHARED_MEM、0、2; 成本120ns
MOV r30.w0、pixel_data

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

    这不是异常的、也是意料之中的。

    ICSS 内部 RAM、DMEM0 (8KB)、DMEM1 (8KB)和 SMEM (64KB)会为 LBBO 或 LBCO 产生15ns 的延迟。

    MSRAM 更适合32或64字节的突发访问、因为读取惩罚与读取2个字节(!)相同 如果您正在使用 ICSSG 中的 XFR2VBUS RD DMA 小工具、则很快就会停止 PRU。

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

    感谢您的及时回复。

    在本例中、 即使一次读取64个字节也可能无法解决我的问题、因为我需要 PRU 从缓存中读取 数据、然后在数据周期为100ns 时输出大约100KB 的数据。 ICSS 内部 RAM、DMEM0 (8KB)、DMEM1 (8KB)和 SMEM (64KB)的大小不足以满足我的需求。 你有什么建议吗?

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

    也许你可以尝试经典的乒乓方法、例如将 SMEM 拆分为32KB 组并使用 XFR2VBUS 提取(例如使用 RTU)来填充第二个组、同时从 PRU 读取第一个组。 但我不确定采用这种方法后能否维持100kB/100ns => 8Gbps 大小的吞吐量...