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.

[参考译文] AMIC110:正在禁用高速缓存、但执行时间发生变化。

Guru**** 2644735 points

Other Parts Discussed in Thread: AMIC110

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1588759/amic110-disabling-cache-but-the-execution-time-is-varied

器件型号: AMIC110

您好、

我收到了一个有关 AMIC110 高速缓存的问题。 您能在下面帮助回答他们的问题吗?

 

<问题>

禁用缓存时、执行时间是否可能因.text 的放置地址而异?

如果是、您能解释原因吗?

 

<背景>

在 AMIC110 (Cortex-A8) 上、我们实现了一个简单的“for"循环“循环、迭代大约 3000 万次、如下所示:

  对于 (int i = 0;i < 33554432;i++){

    //操作简单

  }

即使“for"循环“循环本身没有被修改、更改代码的不相关部分也会导致“for"循环“循环执行时间的差异。

当函数的地址从.text 分成一个具有固定地址的自定义段时、即使修改了不相关的代码、执行时间也不再变化。

 

经过调查、我们发现、如果“for"循环“循环指令适合 32 字节对齐、则执行速度会更快;如果它们跨越 32 字节边界、速度会变慢。

启用指令缓存可消除这种时序差异、因此我们认为这与从内部 SRAM 获取指令时一些特定于硬件的行为有关。

 

<条件>

  • 未使用操作系统。
  • 禁用中断。
  • i-cache 和 D-cache 被禁用。
  • 函数的.text 段放置在内部 SRAM 中。

 

谢谢。此致、

英明

 

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

    Hi Hideaki、他们使用的是哪个 RTOS SDK 版本? 这是一项新的发展吗?

    谢谢您、

    Paula

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

    您好 Paula、

    感谢您的答复。 他们没有使用操作系统、裸机。 这不是新开发、他们正在修改当前模型。

    谢谢。此致、

    英明

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

    您好、

    我可以收到任何更新吗?

    此致、

    英明

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

    Hello Hideaki-san、

    根据 RTOS SDK 的标题、我们无法再为 AMIC110 软件提供设计支持:
    https://www.ti.com/tool/download/AM335X PROCESSOR-SDK-RTOS

    请参阅本公告:
    关于 AM335x、AM437x、OMAP-L13x、C674x、K2G、 AMIC110、AMIC120 器件

    此致、

    Nick

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    启用 i-cache 可消除这种时序差异、因此我们认为这与从
    获取指令时某些特定于硬件的行为有关

    缓存提取行(32 字节)、只要参考位置在那里(在本例中为循环)、它就会保留在缓存中、不会转换为 SRAM 事务