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.
如标题:EDMA的意思是增强型直接存储器访问;那么在C6678中使用EDMA访问DDR或者MSM的内存时,是直接对内存进行数据读写还是也经过L1Dcache或者L2cache?即EDMA进行访问时是否需要进行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增强型直接存储器访问,是我所理解的直接对内存进行的这个意思么?
Thomas Yang1 说:而是将cache中的数据刷新到MSM或者DDR3中 --> 是需要core来刷新
建议问题还是放在这里,这样大家都能看到,利于讨论和信息共享。
当然,数据刷新是由core来命令执行的;
那么,EDMA增强型直接存储器访问,是我所理解的直接对内存进行访问的这个意思吧;
谢谢你啊
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进行重映射。
我也正在了解中,可以加个联系方式么,遇到问题可以多交流讨论。