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.

[参考译文] AM623:关于 GPMC 时序的查询

Guru**** 2460850 points
Other Parts Discussed in Thread: AM623

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1473025/am623-inquiry-regarding-gpmc-timing

器件型号:AM623

工具与软件:

您好!

我写信询问 AM623的 GPMC 时序。
我们在 GPMC 中遇到读取访问问题、即两次读取访问之间的延迟极长、大约17-18个时钟周期。
相比之下、两次写访问之间的延迟仅为3个时钟周期、使得读访问间隔明显更长。
GPMC 连接到 FPGA。


GPMC 设置
・GPMC 和 NOR 闪存。 同步单次读取(GPMCFCLKDIVIDER = 0)
・DMA 未使用
・CYCLE2CYCLEDELAY:1.
・CYCLE2CYCLESAMECSEN:1.
・CYCLE2CYCLEDIFFCSEN:1.
・BUSTURNAROUND:1.

请提供以下三个问题的信息:

1.两次读取访问之间的延迟时间是否合理?
2.是否可以减少延迟?
3.使用 DMA 会帮助减少两次读取访问之间的延迟时间吗?

感谢您的帮助。

此致、

Eiji

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

    尊敬的 Eiji:

    首先、我要对这一答复的拖延表示歉意。

    >>两次读取访问之间的延迟很长
    >>两次写访问之间的延迟仅为3个时钟周期

    >> 1. 两次读取访问之间的延迟时间是否合理?
    是的-根据 ARM 内核(A53或 M4)的不同、可能会稍有不同
    >> 2. 是否可以减少延迟?
    是-请参阅下面的
    >> 3. 使用 DMA 是否有助于减少两次读取访问之间的延迟时间?


    由 CPU 或 DMA 启动时、写入将从 VBUS 互连进入(流水线)队列、从而充分利用 GPMC 的带宽。 编译器优化可以控制这个写入流水线功能。
    不过、系统会逐一发出读取命令、因此从 CPU 到 GPMC 模块以及通过 VBUS 互连返回 CPU 的延迟会显著减慢连续访问的速度。

    下面的假设 GPMC 数据总线宽度为16位……
    如果 CPU 的数据类型增加到32位、则两个 GPMC 读取周期一起通过互连传输、并且可以通过 GPMC 引脚背靠背发生、而两次读取访问之间不会出现这种延迟。

    使用 DMA 可避免这种延迟、因此发生连续读取访问、而每次访问之间没有长延迟。

    增加读取吞吐量的另一种方法是使用突发模式、因此发出一个地址、然后进行多达16次连续的16位读取访问。 需要 DMA 才能实现大于2个16位读取的突发(从 CPU 读取32位数据类型可实现2个16位读取突发-地址、16位数据、16位数据)。

    希望这对您有所帮助。 请尝试一下、然后告诉我们。