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.

[参考译文] DRA78XEVM:硬件跟踪报告 MFENCE 需要数千个周期

Guru**** 2551110 points
Other Parts Discussed in Thread: SYSBIOS

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1565083/dra78xevm-hardware-trace-reports-mfence-taking-thousands-of-cycles

器件型号:DRA78XEVM
主题中讨论的其他器件:SYSBIOS

工具/软件:

您好、

我使用的是 DSP1、正在收集硬件跟踪流程、包括 PC 和循环时间。

这些多次等待的原因是什么?

为什么留下跟踪说明?

我使用的是:

SYSBIOS BIOS_6_83_00_18

xdctools_3_61_02_27_core

CCs1040

谢谢

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

    您好、

    MFENCE(记忆栅栏):  该指令将停止运行、直到所有 CPU 触发的存储器事务(即写入/读取、DMA 和高速缓存操作)完成。

    在 https://www.ti.com/lit/ug/sprugh7/sprugh7.pdf? 第 3.8.12.1 节中、您可以查看有关 MFENCE 指令的更多详细信息。

    在 BIOS 软件包中、请参阅“ BIOS_6_83_00_18\packages\ti\sysbios\family\c66\Cache.c

    器件勘误表文档 的链接“ 咨询 27 单一 MFENCE 问题 “--> https://www.ti.com/lit/er/sprz335h/sprz335h.pdf? 源代码以供您参考。

    这些倍数等待的原因是什么?

    您会看到多个等待、因为 SYS/BIOS Cache_wait () 函数是一个循环、它重复调用 MFENCE、直到缓存回写/失效真正完成。 (请参阅上述代码片段。)

    此致、

    Betsy Varughese.

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

    尊敬的 Varughese:

    感谢您强调的要点。

    对于 MFENCE 多次等待时间、我看到 4 个或更多呼叫、但看不到任何循环。 反汇编仅显示两个连续调用。 我正考虑另一种情况、即交易完成、另一种交易刚刚  开始。 这种情况似乎由硬件跟踪中的计数器“BUSY_ON_RESP_LINK"进行“进行跟踪、但这纯粹是推测。

    仍然 MARK0 问题仍然存在。

    就在这些字将被编入索引的情况下,代码中留下的 MARK0 可能是为什么在系统硬件跟踪中,你会发现一个所谓的“MFENCE 变通办法“条目在默认情况下:它没有什么神奇的,只是过滤掉 Mark0,因为否则会淹没小 ETB。 (请参阅下文)

    谢谢

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

    尊敬的 Salvatore Lionetti:

    是的  MFENCE 基本上是阻塞的、直到存储器子系统完成挂起的操作。 例如、 如果有任何待处理的缓存回写、L2/L3 存储器事务排队、所有这些情况下、MFENCE 将停止、直到全部完成。  

    [引述 userid=“614973" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1565083/dra78xevm-hardware-trace-reports-mfence-taking-thousands-of-cycles

    为什么留下跟踪说明?

    [/报价]

    它们用于调试/可追溯性、 您在跟踪工具中看到的“MFENCE 权变措施“是指   就像是 MARK0 过滤器。 (对不起,我错过了前一个答复中的第二个问题)

    此致、

    Betsy Varughese.

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

    我的分析突出了另外两个原因,写这里只是为了个人参考:

    • DDR 刷新
    • 预取事务停止

    最后一个条件可能发生、例如调用 Cache_*。 受影响的存储器区域至少包含一个启用预取的映射区域(MAR 寄存器)的函数。

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

    尊敬的 Salvatore Lionetti:

    分配的工程师今天处于休假状态。 请预计他们的回复会延迟一天。

    此致、
    Sivadeep

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

    尊敬的 Salvatore Lionetti:

    已注意。  感谢您分享其他信息。 它可以帮助其他可能面临同样问题的人。

    此致、
    Betsy Varughese.