堆栈在 TCM 上如何降低处理器性能
how could stack on TCM reduce processor performance
我正在使用不同的场景通过 运行 coremark 基准测试来测量 ARM cortex R5f 处理器的性能。一种情况是在 ATCM 内存上设置堆栈。
在没有 inline
标志的情况下编译时,STACK 在 TCM 上获得更好的结果。并且在使用 inline
标志进行编译时,RAM 上的堆栈会获得更好的结果。
鉴于 TCM 更快且更接近处理器,这怎么解释。
在TCM上设置堆栈时我的程序没有堆栈溢出。
How could this be explained given that TCM is faster and closer to processor.
您的 TCM 是否比 L1 数据缓存更快?并非总是如此(许多设计具有单周期 L1 D 缓存,但对 TCM 有两个周期访问)。
TCM 的通常目的不是性能(尽管它很好),而是可预测性 - 您无法在 TCM 中获得缓存未命中,因此实时系统使用它来为关键代码和数据部分计时。
我正在使用不同的场景通过 运行 coremark 基准测试来测量 ARM cortex R5f 处理器的性能。一种情况是在 ATCM 内存上设置堆栈。
在没有 inline
标志的情况下编译时,STACK 在 TCM 上获得更好的结果。并且在使用 inline
标志进行编译时,RAM 上的堆栈会获得更好的结果。
鉴于 TCM 更快且更接近处理器,这怎么解释。
在TCM上设置堆栈时我的程序没有堆栈溢出。
How could this be explained given that TCM is faster and closer to processor.
您的 TCM 是否比 L1 数据缓存更快?并非总是如此(许多设计具有单周期 L1 D 缓存,但对 TCM 有两个周期访问)。
TCM 的通常目的不是性能(尽管它很好),而是可预测性 - 您无法在 TCM 中获得缓存未命中,因此实时系统使用它来为关键代码和数据部分计时。