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共享存储器问题

您好:

C6678的8个核能否同一时刻去访问共享存储器?是否会造成总线冲突?我现在想将共享存储器配置成L2,请问怎么配置?谢谢

  • si cheng,您好

    多个Master是可以同时访问同一个Slave的,但是这时总线会根据协议规定的方法来解决冲突访问。

    您这里的共享存储器指的是什么?

    在C6678上的L2分为私有L2和共享L2,共享的L2在MSMC中控制,地址范围为0x0c000000开始。

  • King Wang,您好:

    我指的共享存储器是MSMC SRAM,手册上说MSMC SRAM既可以配置成共享的L2存储器,也可以配置成共享的L3存储器。我想知道默认是配置成L2还是L3? 实际应用中是否将MSMC SRAM配置成共享的L2比较好?因为L3的数据读取会比L2慢。如果不是,我想知道什么时候需要配置成L2,什么时候需要配置成L3? 谢谢!

  • si cheng,您好:

    我刚刚就你的问题查了下资料,我认为可以这样理解。

    MSMC默认配置为L2,根据用户需要能配置成L3。由于配置为L3只是做了地址映射,所以物理上的访问时间应该还是一个数量级的,相差不大。这里的L2和L3的区别应该是指L2只能被L1D和L1P Cache, L3能被L2、L1D和L1P Cache。

    一般来说,默认使用L2的配置。用户根据自己的应用来决定是否配置为L3。最常见的需要设置MSMC为L3的场景为:需要MSMC内存为non-cacheable,需要将MSMC设置为L3 RAM。

    谢谢!

  • King Wang,您好:

    还有另外一个问题也是关于存储器的。C6678的8个核是否可以同时去访问DDR3存储器,如果可以,是否也是总线根据协议规定来解决冲突!

    谢谢!

  • si cheng,您好!

    C6678的MSMC负责处理系统中所有的master(包括8个核,以及SMS和SES接口)对MSMC SRAM和DDR3的访问请求。4M字节的MSMC SRAM有4个bank,这些bank是独立的slave,也就是说,如果两个master在同一个clock访问两个不同的bank,则两个访问可以同时完成。如果多个master在同一个clock访问同一个bank,则由MSMC内的仲裁逻辑按优先级处理。DDR3只有一个slave端口,如果多个master在同一个clock访问它,也由MSMC内的仲裁逻辑按优先级处理。

    顺便说一下,C6678的资料链接如下:

    www.ti.com/.../tms320c6678

    其中的MSMC用户手册对此有详细描述。