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.

C6678中使用EDMA访问DDR或者MSM时,是否涉及cache?

如标题:EDMA的意思是增强型直接存储器访问;那么在C6678中使用EDMA访问DDR或者MSM的内存时,是直接对内存进行数据读写还是也经过L1Dcache或者L2cache?即EDMA进行访问时是否需要进行cache一致性维护???

谢谢!

  • EDMA访问DDR和MSM时,不要EDMA做cache一致性维护,只是CPU core去读写访问这些数据时,需要做cache一致性维护

  • Thomas Yang1 说:

    EDMA访问DDR和MSM时,不要EDMA做cache一致性维护,只是CPU core去读写访问这些数据时,需要做cache一致性维护

    你好。

    如果MSM或DDR设置成cacheable的话,那么当EDMA访问MSM或DDR时,且cache中存在EDMA要访问的内容时,EDMA不会优先对cache中相应内容进行访问么???如果会优先对cache中的内容进行读写访问,但由于cache中内容可能与实际物理地址中的内容不一致,不就造成cache一致性问题了么。

    求指教!

  • 你好。

    如果MSM或DDR设置成cacheable的话,那么当EDMA访问MSM或DDR时,且cache中存在EDMA要访问的内容时,EDMA不会优先对cache中相应内容进行访问么???如果会优先对cache中的内容进行读写访问,但由于cache中内容可能与实际物理地址中的内容不一致,不就造成cache一致性问题了么。

    求指教!

  • 不会,EDMA会直接访问MSM和DDR3中的内容,如果CACHE中有新内容,在EDMA搬移前,CORE需要做cache 一致性维护,将新数据刷新到MSM或者DDR3中,这样EDMA访问的才是新内容。

  • Thomas Yang1 说:

    不会,EDMA会直接访问MSM和DDR3中的内容,如果CACHE中有新内容,在EDMA搬移前,CORE需要做cache 一致性维护,将新数据刷新到MSM或者DDR3中,这样EDMA访问的才是新内容。

    你的意思是:即使MSM或DDR设置成cacheable,cache中存在EDMA要访问的内容,EDMA也不会优先对cache中相应内容进行访问,,而是将cache中的数据刷新到MSM或者DDR3中,然后EDMA再直接对MSM或DDR3进行读写访问是么???

    非常感谢你的耐心回答!请问可以留一下你的邮箱么?我现在研一才开始学,希望可以多向你请教!

  • Thomas Yang1 说:

    不会,EDMA会直接访问MSM和DDR3中的内容,如果CACHE中有新内容,在EDMA搬移前,CORE需要做cache 一致性维护,将新数据刷新到MSM或者DDR3中,这样EDMA访问的才是新内容。

    你好,还有一个问题,,EDMA增强型直接存储器访问,是我所理解的直接对内存进行的这个意思么?

  • 而是将cache中的数据刷新到MSM或者DDR3中  --> 是需要core来刷新

    建议问题还是放在这里,这样大家都能看到,利于讨论和信息共享。

  • Thomas Yang1 说:

    而是将cache中的数据刷新到MSM或者DDR3中  --> 是需要core来刷新

    建议问题还是放在这里,这样大家都能看到,利于讨论和信息共享。

    当然,数据刷新是由core来命令执行的;

    那么,EDMA增强型直接存储器访问,是我所理解的直接对内存进行访问的这个意思吧;

    谢谢你啊

  • Thomas Yang1 说:

    非常感谢耐心解答,3Q~

  • Thomas ,今天突然想到一个问题,如果是利用EDMA在LL2和DDR3之间进行数据搬移,即将L2中的数据搬移到DDR3中存储,

    如果CACHE中有新内容,是不是在EDMA搬移之前不需要软件进行CACHE的一致性维护呢?因为我看到说

    同一个核内,如果数据存放在L2中,其CACHE一致性问题由硬件维护,即L2 SRAM 中内容更新时,L1D CACHE中内容自动更新,反之亦然。

    所以不需要我们软件进行设置维护??

  • 应该是的,我最近也在像cache一致性的问题,L2属于内部存储,自己会维护,只有外部存储需要我们手动维护一致性,顺便我想问你一下,6678中4M的MSMC会经过L2cache吗?

  • 你好,我看的资料上说:MSM直接被L1 cache,不被L2 CACHE所缓存;

    如果想要MSM经过L2 cache,可以利用XMC进行重映射。

    我也正在了解中,可以加个联系方式么,遇到问题可以多交流讨论。