工程师您好!
之前发过帖子咨询6678cache一致性的问题,您说的是L1和L2 之间的cache一致性需要软件实现,(帖子地址www.deyisupport.com/.../13476.aspx),今天您又跟我说是硬件实现(帖子地址www.deyisupport.com/.../14185.aspx),到底实现机制是怎么样的呢?能具体说一下吗?
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.
工程师您好!
之前发过帖子咨询6678cache一致性的问题,您说的是L1和L2 之间的cache一致性需要软件实现,(帖子地址www.deyisupport.com/.../13476.aspx),今天您又跟我说是硬件实现(帖子地址www.deyisupport.com/.../14185.aspx),到底实现机制是怎么样的呢?能具体说一下吗?
1.L2指的是每个core内部的memory,并且L2被用作RAM的时候。这里的L2和L1D的cache一致性是由硬件保证的,也就是当有外设(EDMA, SRIO, Ethernet等)向L2读写数据时,core同时也访问这段空间,此时L1D中的数据是由硬件进行更新的。
2. 当L2有部分空间被用作L2 cache,此时访问片外空间,并且该空间通过MAR设置成可cache(SL2,DDR3),此时的cache 一致性需要用软件来维护,例如,EDMA向DDR3写数据,core从该空间读数据,每次读之前必须要用L2 cache invalid,保证读到的数据时最新数据
3.SL2是多个core共享的片内memory, SL2和L1D的cache一致性需要用软件来维护,例如,EDMA写数据到SL2,core从该空间读取,每次读取前要用L1D cache invalid,保证数据时最新的。