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.

[参考译文] TMS570LC4357:TMS570LC4357:在主器件之间访问 CPU SRAM 的仲裁(新线程)

Guru**** 2394015 points
Other Parts Discussed in Thread: TMS570LC4357

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1176845/tms570lc4357-tms570lc4357-arbitration-to-access-cpu-sram-between-masters-new-thread

器件型号:TMS570LC4357

您能回答我在 Thread 中提出的问题吗? "TMS570LC4357:主机间 CPU SRAM 访问仲裁"

e2e.ti.com/.../tms570lc4357-arbitration-to-access-cpu-sram-between-masters

主题内容:

根据此线程 https://e2e.ti.com/support/microcontrollers/hercules/f/312/p/919525/3397342#3397342:、"CPU SRAM 互连的设计使仲裁条件仅在 CPU 和 DMA 在同一周期内访问相同的64位地址时才存在"。

在哪本用户手册中、我可以找到一条语句、即仅在 CPU SRAM 的同一64位地址中才需要主机之间的仲裁?

谢谢!

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

    您好!

    CPU 互连使用循环仲裁、因此没有主器件阻止其他总线主控访问 SRAM。 我在 DS 和 TRM 中看不到以下陈述:

    "CPU SRAM 互连的设计使仲裁条件仅在 CPU 和 DMA 在同一周期内访问相同的64位地址时存在"

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

    您好!

    https://en.wikipedia.org/wiki/Round-robin_scheduling

    这是否意味着 DMA 和 CPU 有一个固定的时间片、这样、如果它们同时访问 SRAM、它们就不能相互阻断?  

    谢谢  

    Mathieu  

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

    您好、QJ Wang、

    请查看以下主题中的陈述。 在哪里可以获得 有关64位地址仲裁的信息?  

    https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/886793/tms570ls1114-dma-and-cpu-bus-arbitration

    此致

    Mathieu

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="464967" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1176845/tms570lc4357-tms570lc4357-arbitration-to-access-cpu-sram-between-masters-new-thread/4431246 #4431246"]这是否意味着 DMA 和 CPU 有一个固定时间片、因此如果它们同时访问 SRAM、它们不能相互阻断?  [/报价]

    是的、您回答正确。

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

    如果您能回答我的第二个问题、将会非常有帮助。

    "查看您在以下主题中的陈述。  您在哪里获得了有关64位地址仲裁的信息?"

    https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/886793/tms570ls1114-dma-and-cpu-bus-arbitration

    非常感谢!  

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

    您好、Mathieu、

    我对这一混乱的发言感到抱歉。 这条规定只适用于基于 TMS570LSx 和 RM4xLx Cortex-R4的器件。 TMS570LSx 器件包含两个 L1存储器:ATCM (闪存)和 BTCM (SRAM)。 BTCM 接口分为两部分:B0TCM 和 B1TCM、这两部分用于连接到两个 SRAM 组。 BTCM0是偶数地址 SRAM、BTCM1是奇数地址 SRAM。 SCR 使用循环机制来仲裁主机的请求。

    BTCM0/BTCM1上的地址由64b 字(偶数和奇数)交错。 在 CPU 访问 BTCM1时、DMA 可以访问 BTCM0。  

    存储器地址     BTCM0      BTCM1

    --------------------------------------

    0x0800_0000       X

    0x0800_0008                   X

    0x0800_0010       X

    0x0800_0018                   X

    0x0800_0020       X

    0x0800_0028                   X

    0x0800_0030       X

    0x0800_0038                   X

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

    TMS570LC43x 是基于 Cortex-R5的 MCU。 TMS570LC43x 上的 SRAM 是一个2级存储器、它只有一个端口、这意味着我们一次只能读取或写入。 任何两个到 SRAM 的地址都需要仲裁。 例如、如果 CPU 正在访问0x0800_0000、而 DMA 正在访问0x0800_1234、则会进行仲裁。

    CPU 互连使用循环机制进行仲裁。 对于每个 HCLK 周期、SRAM 将按固定顺序在主器件之间进行步进。

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

    感谢您的回答!

    在哪个 cortex 5用户指南中,我可以找到有关循环方案的陈述? 我在 DDI0460D_cortex_R5_r1p2_TRM 中找不到它

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

    器件 TRM 提到循环方案。

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

    哪个版本号? 我在任何 TRM 中都找不到它。 谢谢

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

    https://www.ti.com/lit/ug/spnu563a/spnu563a.pdf?ts=1670370826481&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FTMS570LC4357

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

    感谢您的链接! 我正在对最坏情况下的运行时间进行分析。 在我的例子中、DMA 和 CPU 访问 RAM 是并行的。 我的问题是:如果分配给 CPU 以访问 SRAM 的片不够、并且由于循环方案而从 DMA 访问 SRAM 中抢占、那么 DMA 是否可以阻止 CPU 对 SRAM 的访问?

    是否准确描述了循环方案的工作方式?

    谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="464967" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1176845/tms570lc4357-tms570lc4357-arbitration-to-access-cpu-sram-between-masters-new-thread/4438028 #4438028"]如果分配给 CPU 以访问 SRAM 的片不充分并且由于循环方案而从 DMA 访问 SRAM 中抢占了 CPU,则 DMA 是否可以阻止 CPU 对 SRAM 的访问?

    是的。  

    当多个总线主控(CPU、DMA 等)争用对 SRAM 的访问时、CPU 互连按循环顺序授予它们访问权限。 每个主器件相对于 SRAM 具有一个相等的定时器共享:1个用于 CPU 的 HCLK --> 1个用于 DMA 的 HCLK --> 1个用于 CPU 的 HCLK --> 0.1个用于 DMA 的 HCLK -->……