<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>MPC5xxxのトピックRe: Questions about Cache in the MPC5777C</title>
    <link>https://community.nxp.com/t5/MPC5xxx/Questions-about-Cache-in-the-MPC5777C/m-p/659833#M7215</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear Lukas,&lt;/P&gt;&lt;P&gt;According to your explanations above, data writers are stalled if the PCU's cache&lt;BR /&gt;synchronizing queue gets full. This means for repeated writes to a cache coherent memory&lt;BR /&gt;area that the memory bandwidth becomes the minimum of the throughput of memory and of&lt;/P&gt;&lt;P&gt;queue. The likelihood that the queue's throughput is significantly lower than the normal memory&lt;BR /&gt;throughput seems high. Which would mean that the memory throughput is reduced to that of&lt;BR /&gt;the queue.&lt;BR /&gt;&amp;nbsp; Is this correct?&lt;BR /&gt;&amp;nbsp; If yes, then the question arises to which extend the normal memory throughput is higher&lt;BR /&gt;than that of the queue?&lt;BR /&gt;&amp;nbsp; Is setting the property "cache inhibited" of a memory area in the MMU of both the cores an&lt;BR /&gt;equivalent way of ensuring data coherence (besides timing)?&lt;BR /&gt;&amp;nbsp; My final, resulting question: If we want to use bursts of writes of data for cross-core&lt;BR /&gt;communication (e.g. memcpy of a few hundred Byte at once), would it be better to use cache&lt;BR /&gt;inhibited memory instead of cached memory with PCU maintained cache coherence? Is the PCU&lt;BR /&gt;mechanism rather intended for occasional writes?&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Peter&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 25 Nov 2019 20:36:47 GMT</pubDate>
    <dc:creator>peter_vranken</dc:creator>
    <dc:date>2019-11-25T20:36:47Z</dc:date>
    <item>
      <title>Questions about Cache in the MPC5777C</title>
      <link>https://community.nxp.com/t5/MPC5xxx/Questions-about-Cache-in-the-MPC5777C/m-p/659828#M7210</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear Everyone,&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I used MPC5777C for my application.&lt;/P&gt;&lt;P&gt;Our OEM want to disable the cache for SRAM.&lt;/P&gt;&lt;P&gt;I mean SRAM cache inhibited via MMU TLB configuration.&lt;/P&gt;&lt;P&gt;I supposed that their intend(cache inhibit) is data coherency between core 0 and core 1.&lt;/P&gt;&lt;P&gt;But, I think It can be achieved by Data coherency bit at mas2. Isn't it?&lt;/P&gt;&lt;P&gt;In other words, Even though apply cache for SRAM, Prevent some corrupted data between cores If data coherency bit is set.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Actually, I imlemented data copy routine from core 1 to core 0. There is little bit large data and so that copying time is 100us when cacheable. But cache disabled then 230us takes approximately.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So &amp;nbsp;I think I can get more effective performance through the cache.&lt;/P&gt;&lt;P&gt;Or If there is other side effect, Please let me know.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Jan 2017 09:54:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/Questions-about-Cache-in-the-MPC5777C/m-p/659828#M7210</guid>
      <dc:creator>jongminna</dc:creator>
      <dc:date>2017-01-04T09:54:32Z</dc:date>
    </item>
    <item>
      <title>Re: Questions about Cache in the MPC5777C</title>
      <link>https://community.nxp.com/t5/MPC5xxx/Questions-about-Cache-in-the-MPC5777C/m-p/659829#M7211</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;yes, Platform Coherency Unit can be used to maintain the coherency between cores and also DMA. It is necessary to configure the MMU pages with M and W bits set:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_1.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/4214i54DF6EB3D6596CA1/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_1.png" alt="pastedImage_1.png" /&gt;&lt;/span&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_2.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/4264i5EA5080B9AE1093E/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_2.png" alt="pastedImage_2.png" /&gt;&lt;/span&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And then the PCU can be enabled by setting MnWMEN bits (to enable individual masters to be monitored) and ENB (to globally enable PCU monitoring) in PCU_CESR register:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_3.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/4302iBE5A6B611F8A54A5/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_3.png" alt="pastedImage_3.png" /&gt;&lt;/span&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This should help to achieve higher performance.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Lukas&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Jan 2017 15:30:40 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/Questions-about-Cache-in-the-MPC5777C/m-p/659829#M7211</guid>
      <dc:creator>lukaszadrapa</dc:creator>
      <dc:date>2017-01-04T15:30:40Z</dc:date>
    </item>
    <item>
      <title>Re: Questions about Cache in the MPC5777C</title>
      <link>https://community.nxp.com/t5/MPC5xxx/Questions-about-Cache-in-the-MPC5777C/m-p/659830#M7212</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;SPAN class=""&gt;Lukas&lt;/SPAN&gt;,&lt;/P&gt;&lt;P&gt;is setting M2WMEN and M3WMEN required if only coherency between core0 and core1 is needed?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;in the simple case of cache coherency required only between core0 and core1 is needed to check for snooping error (CP1ERR[1:0], CP0ERR[1:0]) and to enable/manage snooping error interrupt?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Francesco&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Feb 2017 10:25:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/Questions-about-Cache-in-the-MPC5777C/m-p/659830#M7212</guid>
      <dc:creator>francescodolcin</dc:creator>
      <dc:date>2017-02-15T10:25:21Z</dc:date>
    </item>
    <item>
      <title>Re: Questions about Cache in the MPC5777C</title>
      <link>https://community.nxp.com/t5/MPC5xxx/Questions-about-Cache-in-the-MPC5777C/m-p/659831#M7213</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Francesco,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It is not necessary to configure M2WMEN and M3WMEN, it's for DMA only.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm not really sure about the error handling. It is not clear from RM. Let me check. I guess it will take some time...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Lukas&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 20 Feb 2017 14:03:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/Questions-about-Cache-in-the-MPC5777C/m-p/659831#M7213</guid>
      <dc:creator>lukaszadrapa</dc:creator>
      <dc:date>2017-02-20T14:03:04Z</dc:date>
    </item>
    <item>
      <title>Re: Questions about Cache in the MPC5777C</title>
      <link>https://community.nxp.com/t5/MPC5xxx/Questions-about-Cache-in-the-MPC5777C/m-p/659832#M7214</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;First, overflow error is not expected to occur. There are safeguard mechanisms in place to prevent the queues from overflowing. Specifically, when the queues fill to a certain capacity, the PCU notifies the cores and DMAs to temporarily stall issuing any stores to shared space until the queue dips below the threshold. This should prevent the queue from ever overflowing. The overflow error condition was installed as a backup mechanism in the unlikely event that the DMAs and/or cores do not respond to the stall request.&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt;"&gt;Yes, user is supposed to check the error flags CP1ERR[1:0] and CP0ERR[1:0]. In case of snooping error, a core can get non-coherent data. In this case, user can invalidate the data cache and reset the PCU by SRST_EN. Before that, user can read more details about the error in error registers. It’s rather application dependent how to react on such error. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt;"&gt;Regards,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.0pt;"&gt;Lukas&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 23 Mar 2017 13:03:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/Questions-about-Cache-in-the-MPC5777C/m-p/659832#M7214</guid>
      <dc:creator>lukaszadrapa</dc:creator>
      <dc:date>2017-03-23T13:03:58Z</dc:date>
    </item>
    <item>
      <title>Re: Questions about Cache in the MPC5777C</title>
      <link>https://community.nxp.com/t5/MPC5xxx/Questions-about-Cache-in-the-MPC5777C/m-p/659833#M7215</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear Lukas,&lt;/P&gt;&lt;P&gt;According to your explanations above, data writers are stalled if the PCU's cache&lt;BR /&gt;synchronizing queue gets full. This means for repeated writes to a cache coherent memory&lt;BR /&gt;area that the memory bandwidth becomes the minimum of the throughput of memory and of&lt;/P&gt;&lt;P&gt;queue. The likelihood that the queue's throughput is significantly lower than the normal memory&lt;BR /&gt;throughput seems high. Which would mean that the memory throughput is reduced to that of&lt;BR /&gt;the queue.&lt;BR /&gt;&amp;nbsp; Is this correct?&lt;BR /&gt;&amp;nbsp; If yes, then the question arises to which extend the normal memory throughput is higher&lt;BR /&gt;than that of the queue?&lt;BR /&gt;&amp;nbsp; Is setting the property "cache inhibited" of a memory area in the MMU of both the cores an&lt;BR /&gt;equivalent way of ensuring data coherence (besides timing)?&lt;BR /&gt;&amp;nbsp; My final, resulting question: If we want to use bursts of writes of data for cross-core&lt;BR /&gt;communication (e.g. memcpy of a few hundred Byte at once), would it be better to use cache&lt;BR /&gt;inhibited memory instead of cached memory with PCU maintained cache coherence? Is the PCU&lt;BR /&gt;mechanism rather intended for occasional writes?&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Peter&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 25 Nov 2019 20:36:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/Questions-about-Cache-in-the-MPC5777C/m-p/659833#M7215</guid>
      <dc:creator>peter_vranken</dc:creator>
      <dc:date>2019-11-25T20:36:47Z</dc:date>
    </item>
  </channel>
</rss>

