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.

[参考译文] AWRL6844EVM:与 R5F 相比、C66x 需要过多的 CPU

Guru**** 2928980 points

Other Parts Discussed in Thread: AWRL6844, SYSCONFIG

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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1643647/awrl6844evm-c66x-is-taking-too-much-cpu-comparing-to-r5f

器件型号: AWRL6844EVM
Thread: AWRL6844SysConfig 中讨论的其他器件

以下代码片段在 R5F 和 c66x 上运行、但经过的时间显示明显不同。 R5F 显示 1100us、c66x 显示 60000us。 我怀疑 SP 中存在配置问题、但不确定查找位置。 希望 TI 能提供一些见解。

环境:AWRL6844 EVM 通过 USB 电缆供电。

优化:R5F = FAST、c66X =速度

  u64_t StartTime = ClockP_getTimeUssec ();
  适用于 (u16_t ii = 0;ii < 18;i++)
  {
   对于 (sIdx = 0u;sIdx <(16 * 256);sIdx++)
   {
     rawAdcData =*srcData++;

     /*计算 ADC 求和*/
     *dstData +=(s32_t)rawAdcData;
     dstData++;
   
     /*计算原始 ADC 校验和*/
     校验和+=((u32_t) rawAdcData & 0xFFFFu);
   }
  }
  hp_elaped_time = ClockP_getTimeUssec ()- StartTime;
 
此致、
陈方安生
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Tony:

    您能告诉我 srcData 和 dstData 在内存中的位置吗?  它们是在 L3 存储器还是在 APPSS 存储器中? 或 DSP L2 存储器中?

    此致、

    Zigang

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

    尊敬的 Zigang:

    srcData 位于 0x800497A0、dstData 位于 0x8003FA20。 我相信它们位于 DSS_L3 区域、并且也在 512KB 范围内。 函数本身位于 0080f2a0 (DSP_L2)。

    此致、

    Tony

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

    尊敬的 Zigang:

    我做了一些更多的测试:

    *我将 SP.syscfg 中的 DSP 时钟速度更改为 450MHz、360MHz 和 OSC、经过的时间相同。

    *我将软件刷写到 EVM、经过的时间也相同。

    *我一步一步的反汇编代码。 每个加法循环只需要 4 个步长;因此、整个 4096 次加法应该少于 17000 个指令周期。

    谢谢、

    Tony  

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

    您好、Tony:

    您是否 为 DSP 启用了缓存。 例如、将 L1 或部分 L1 配置为缓存。 甚至 L2 可以配置为缓存。  DSP 代码是否也得到了优化、使用 -O3 编译?   

    此致、

    Zigang

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

    尊敬的 Zigang:

    高速缓存未启用。 L1P、L1D 和 L2 的建议值是多少? 默认值为 L1P = 32KB、L1D = 32KB 且 L2 = 0KB。

    我确实使用了优化级别 3 (Interprocedure) 来实现这一性能。 如果没有进行优化、结果会减慢 10 倍 (60ms 与 600ms)。

    后续问题:R5F 是否具有 cahce 设置? 我在 hp.syscfg 文件中看不到这一点。 为什么 HP 在没有缓存设置的情况下运行速度更快? 或者、HP 是否已使用高速缓存运行?

    谢谢、

    Tony

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

    您好、Tony:

    如果更改 DSP 时钟不会更改 经过的时间、则 ClockP_getTimeUsec 函数可能会出现一些问题。  我们的软件专家实际上建议检查 TSCL 是否存在时钟周期。

    T1 = TSCL;

    ......  

    tProc = TSCL - T1;

    获得 tProc 后、您可以 对 DSP 时钟进行分频(默认情况下)400MHz

    如果有用、请告诉我。

    此致、

    Zigang

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

    尊敬的 Zigang:

    ClockP_getTimeUSec 工作正常。 我使用 while 循环来测量开始时的经过时间、以验证 ClockP_getTimeUsec 函数、这有点像计时器停止观察。

    我运行代码与我的停止表,并尝试两个场景(30 秒和 60 秒),两次都非常接近。 因此、我认为这个功能可以正常工作。

    顺便说一句,我也在 HP 中使用相同的功能;所以,更多的证据表明这种 ClockP 功能正常工作。

    此致、

    Tony

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

    您好、Tony:

    DSP 缓存配置可以在 DSS 工程的 example.sysconfig 文件中找到。  所示

    此信息也可以在 linker.cmd 文件中找到

    ",="" roboto,="" arial,="" sans-serif;="" font-size:="" 16px;="" font-weight:="" 400;="" margin:="" 12px="" 0px="" text-decoration:="" none;="" border-bottom:="" rgb(10,="" 10,="" 10);"="">如果可能、我们最多可以为 L1P 缓存使用 32K。

    此致、

    Zigang

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

    暂时关闭此线程。