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.

[参考译文] AM6442:R5 TCM 之间的 memcpy 性能优于 DDR 或 DDR 和 TCM 之间的 memcpy 性能

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1304447/am6442-the-memcpy-performance-between-r5-tcm-is-inferior-to-that-between-ddr-or-ddr-and-tcm

器件型号:AM6442

您好!

 我在 R5FSS0_CORE0上进行了 memcpy 性能测试、 将32KB 数据从 TCMA 复制到 TCMB (或从 TCMA 复制到 TCMA、或从 TCMB 复制到 TCMB)、速度  为116Mb/s;以202Mb/s 的速度从 DDR 复制到 TCMB、以189Mb/s 的速度从 DDR 复制到 DDR。 为什么 TCM 之间的性能不如 DDR 或 DDR 与 TCM 之间的性能?

谢谢

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

    您好、Jian:

    您能否分享您的测试代码、以检查您是如何测试上述性能测试用例的?

    此致、

    S.Anil.

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

    您好、Swargam:

    我的测试代码如下、

    谢谢

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

    您好、Jian:

    感谢分享上述代码. 如何配置用于 TCM 记忆复制操作的源缓冲区和目标缓冲区?

    在 TCM 存储器上执行存储器操作时、TCM 存储器的源地址和目标地址是什么?

    您的代码中是否配置了用于 TCMA 存储器的0x78000000存储器和用于 TCMB 存储器的0x78100000存储器?

    您能否确认 TCMA 和 TCMB 存储器使用的地址?

    此致、

    S.Anil.

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

    您好、Swargam:

    很高兴收到您的回复。  

    它在 R5FSS0_CORE0上进行了测试、例如 对于 TCMA、 为0x78000000、对于 TCMB、则为0x78100000、如第53行和第54行所示。

    要测试从 TCMA 到 TCMB 的数据复制时、请启用11行宏定义#define TCM_R5F00、屏蔽行73和74、并启用行53、54、75和76。

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

    您好、Jian:

    请查看以下各图以了解 TCM 存储器。 R5F 可以通过处理器的本地地址空间0x00来访问 TCMA、对于 TCMB、本地地址空间0x41010000。 尝试使用以下 tcma 和 tcmb 的地址进行测试、然后分享结果。

    uint32_t * src_tcma =(uint32_t *) 0x00000040;
    uint32_t * dst_tcmb =(uint32_t *) 0x41010000;

    此致、

    S.Anil.

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

    您好、Swargam:
    非常感谢您的建议,我更改了 TCM 的地址,性能大大提高,达到1386 MB/秒。 但我有两个问题、

    功能方框图显示每个两个 R5内核共用一个128KB TCM、所以我认为4个 R5总共有256KB TCM。 但表2-3显示 TCMA 为64KB 且 TCMB 为64KB、也就是说、TCM 总共为128KB、因此功能方框图中的两个128KB TCM 意味着相同的 TCM?

    如何在下图中解释 R5FSS0_CORE0_ATCM 地址0x78000000? 从图中可以看出、四个 R5的 TCMA 地址不同、TCMB 的地址相同、如何解释这一点? 并且总 TCM 大小与表2-3不一致。

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

    您好、Jian:


    实际上、R5F 内核可在拆分模式和单核模式下运行。 目前、所有 MCU+SDK 示例都在拆分模式下运行。
    在此模式下、每个 R5F 内核都有32KB 的专用 TCMA 和32KB 的专用 TCMB 存储器、每个单个 R5F 内核总共有64KB 的 TCM 存储器、所有4个 R5F 内核总共有64 * 4 = 256KB 的 TCM 存储器。

    现在、根据上表、如果您在单个内核中配置 R5F 内核、那么两个 R5F0_0和 R5F0_1都可以作为单个 CPU 运行。 在这个用例中、TCMA 和 TCMB 大小为64KB、并且 R5F0_1 ATCM 和 BTCM 无效。 如果您在溢出模式下配置 R5F 内核、现在 R5F0_0 TCMA 和 TCMB 的大小仅为32KB 而不是64KB。


    此致、
    S.Anil.

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

    您好、Swargam:

    非常感谢。 关于 TCM 的大小、我已经理解。


    有关 R5FSS0_CORE0_ATCM 地址0x78000000的第二个问题、linker.cmd 中 R5F_VECS 的起始地址0x0是否实际访问0x78000000? 也就是说、虚拟地址不对应于实际地址。

    此致

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

    您好、Jian:

    请查看下图。

    TCMA 地址从0x00开始、在 TCMA 的链接器 cmd 文件中定义了同一地址。 TCMB 地址为0x41018000、同一地址在连接器命令文件中定义。 所有 R5F 内核的该地址空间都相同。

    实际上、R5F 内核可以通过上述地址空间访问 TCM 存储器。 这称为处理器视图地址。

     

     

    现在、0x78000000是主存储器地址空间。 除了主域内核(M4F)想要读取或写入 TCMA 存储器之外,主域内核(M4F)之外,还需要通过 TCMA 的 RAT 检查主地址空间的存储器位置(0x78000000)。

    对于 R5F 内核、您可以在 TCMA 的0x00或0x78000000存储器位置读取或写入数据;没有问题、但通常、链接器 cmd 文件仅使用处理器视图地址空间、即0x00。

    在测试用例中、您正在接触 R5F0_0的矢量表地址空间、该地址空间恰好位于0x78000000或0x00、我们不应接触此地址空间。 这就是我建议检查 TCMA 的0x40存储器位置的原因。

    此致、

    S.Anil.

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

    您好、Swargam:

    非常感谢您的答复。 我已经说完了。

x 出现错误。请重试或与管理员联系。