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.

[参考译文] AM2634:针对 FOC 对 F28388D 与 AM2634 进行基准测试

Guru**** 2551300 points
Other Parts Discussed in Thread: TMS320F28388D, AM2634, AM263P4, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1569076/am2634-benchmarking-f28388d-vs-am2634-for-foc

器件型号:AM2634
主题中讨论的其他器件:TMS320F28388DAM263P4C2000WARE

工具/软件:

您好:

我想比较的性能 TMS320F28388D Sitara AM2634 理想之选。
目标是了解哪款器件更适合:

  • 执行 磁场定向控制算法 稳定可靠。

  • 仍然离开 足够的 CPU 余量 可运行额外的 双精度的复杂算法

我正在寻找关于如何建立这样一个基准的提示和最佳做法。

  • 哪些参数与测量最相关?

  • 您会推荐哪种方法?

  • 是否有任何可以提供帮助的 TI 参考材料、现有基准测试或示例工程?

社区或 TI 专家提供的任何指导都会非常有帮助。

提前感谢!

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

    在运行交流感应电机完整信号链基准测试(以 FOC 为核心)时、我对两个器件进行了比较。 这不仅测试 CPU 性能、还测试外设响应和中断延迟。 它在每个器件的其中一个内核上运行。

    请注意、结果适用于包含 TMU 的 AM263P。 AM263 不会、因此在该基准测试上、它比 AM263P 慢得多(至少数百个周期)、因为 TMU 用于 Park 变换、逆向 Park 变换以及多次磁通估算器中的运算。

    代替

    AM263P

    F2837x

    模块

    Cortex-R5F

    C28

    CPU 类型

    8 级流水线、有限双发射、分支预测

    8 级流水线、有限双发射

    CPU 频率

    400

    200

    加速器

    TMU

    TMU

    周期

    705.

    527

    性能 比率(周期数)

    1.

    1.33

    eMHz/内核

    (有效 MHz)

    400

    267.

    谢谢、

    Sira

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

    尊敬的 Sira:

    非常感谢您分享您的结果;他们非常接近我想要的内容、并且他们在我的脑海中提出了更多问题。 如果您能帮助我解决以下问题、我将不胜感激:

    1. 我看到您使用了 AM263P、其中包含一个 TMU。 我一定会考虑它作为我的基准,谢谢! 您认为、AM263P4 是否是 Sitara 基于 Arm 的微控制器中电机控制和实时应用的最佳选择? 从文档中可以看出、AM263P4 似乎是 AM2634 的改进版本。 说 AM263P4 > AM2634 而仅在 P 版本上运行基准测试是否有意义?

    2. f2837x 结果是否足以将 AM263P 与 F28388 进行比较? 归根结底、我们主要评估 C28x 处理器。

    3. 基准是如何组织的? 是否在各器件之间使用了相同的代码、如果是、如何进行调整?

    4. 考虑到 CPU 频率、 结果表明 R5F 比 C28x 快约 33%。 您是否也考虑了 FPU 的使用?

    5. 我当时考虑使用 F28388D 上的 CLA 运行 FOC、将 C28x 卸载以进行其他双精度计算。 对于 FOC ISR 和双精度任务、这种组合是否仍然优于使用 R5F? 在 Sitara 上、是否有办法复制类似于 C28x+CLA 对的架构?

    6. 您用于基准测试的代码是否可共享? 这对我非常有帮助。

    7. 您是如何收集这些结果的、具体而言、您是如何测量时钟周期的? 您是否设计了可重复的基准? 您是使用调度器还是简单的中断来调度任务?

    再次感谢您的时间和支持!

    此致、

    Pasquale

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

    尊敬的 Pasquale:

    答复如下

    1. 我看到您使用了 AM263P、其中包含一个 TMU。 我一定会考虑它作为我的基准,谢谢! 您认为、AM263P4 是否是 Sitara 基于 Arm 的微控制器中电机控制和实时应用的最佳选择? 从文档中可以看出、AM263P4 似乎是 AM2634 的改进版本。 说 AM263P4 > AM2634 而仅在 P 版本上运行基准测试是否有意义?

      P 版本具有 TMU、硬件旋转变压器和一些其他改进功能。 因此它似乎更适合电机控制。  http://www.ti.com/lit/spradb3
    2. f2837x 结果是否足以将 AM263P 与 F28388 进行比较? 归根结底、我们主要评估 C28x 处理器。

      没错。 我没有专门针对 F2838x 的结果、但结果应该相同、至少来自 RAM。 从闪存中、等待状态等可能会影响性能。 但我假设是这样的实时代码将从 RAM 运行。
    3. 基准是如何组织的? 是否在各器件之间使用了相同的代码、如果是、如何进行调整?

      是的、在每个器件上开发并运行了 C 代码。 进行了特定于次要器件的更新。
    4. 考虑到 CPU 频率、 结果表明 R5F 比 C28x 快约 33%。 您是否也考虑了 FPU 的使用?

      是的、这两种情况下都使用了 FPU。 如果仅考虑周期数、C28x 的速度快 33%。 但如果您也获取 CPU 频率、AM263P 的速度快 50%。
    5. 我当时考虑使用 F28388D 上的 CLA 运行 FOC、将 C28x 卸载以进行其他双精度计算。 对于 FOC ISR 和双精度任务、这种组合是否仍然优于使用 R5F? 在 Sitara 上、是否有办法复制类似于 C28x+CLA 对的架构?

      当然、让 CLA 卸载控制任务有助于提高性能、因为与 AM263P 相比、您基本上有一个额外的内核、但同样、这取决于要比较的特定器件型号。 在 C2000 端、您可能有 2 个 C28x 和 2 个 CLA、在 AM263x 上、您可能有 1 个、2 个甚至 4 个 R5F 内核。 在 Sitara 侧、C28 侧没有像我们这样的相应协处理器。 具体在此基准测试上、C28 比 CLA 快约 60%、请参阅 http://www.ti.com/lit/spracw5
    6. 您用于基准测试的代码是否可共享? 这对我非常有帮助。

      是的、它在 C2000Ware 中的 examples\demos\Benchmark\ACI_motor_benchmark 下
    7. 您是如何收集这些结果的、具体而言、您是如何测量时钟周期的? 您是否设计了可重复的基准? 您是使用调度器还是简单的中断来调度任务?

      上面的应用手册 spracw5 介绍了基准测试方法。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Sira:

    非常感谢 您的所有回答!  Slight smileμ s  

    从 http://www.ti.com/lit/spracw5:引述 “许多软件基准测试仅关注处理方面、通常以每秒百万条指令 (MIPS) 表示、而没有充分考虑外设、CPU 和协处理器之间的交互。 这样的基准测试无法提供系统实时性能能力的完整视图。“、 我定义了五个候选配置来比较电机控制用例(FOC 实时循环+理想的双精度运行的独立计算算法):

    1. TI28388D — 独立运行这两个任务的 C28 (FPU + TMU)

    2. TI28388D - C28 + CLA (C28 =轨迹;CLA = FOC)

    3. Sitara AM263P4 — 单个 R5F 运行这两个任务

    4. Sitara AM263P4 - R5FSS0_0 =轨迹;R5FSS0_1 = FOC(同一集群)

    5. Sitara AM263P4—R5FSS0_0 =轨迹;R5FSS1_0 = FOC(不同集群)

    问题:  

    1. 从架构和实时电机控制的角度来看、 您认为以下哪种配置是最佳选择、原因是什么?
    2. 在所有五种配置中运行正式基准测试是否有意义、或者是否有明显更好的配置(不必使用完整基准测试)?

    我试图自己回答他们,这里有我得到的恢复:

    非常感谢您的反馈!  

    此致、

    Pasquale

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

    尊敬的 Pasquale:

    带有优缺点的分析表似乎相当彻底。 我认为我没有很多要补充的、只是建议您可以在 Sitara 情况下使用 TCM 来运行 FOC 代码、因此可以实现 0 等待状态执行。

    如果您的决定仅取决于性能、那么在本例中、由于 400MHz 时钟频率、我认为 Sitara 胜出。 我会尝试使用选项 4、看看是否所有内容都适用于 TCM、这样我就不必处理缓存等。

    谢谢、

    Sira