大家好,我的应用场景为:cortex-a7 4核,希望4个核独立运行,即以AMP方式运行。 但Cortex-A7 MPCore Technical Reference Manual(Revision: r0p5 ) 4.3.31 Auxiliary Control Register节明确 ACTLR.SMP SMP Enables coherent requests to the processor: 0 Disables coherent requests to the processor. This is the reset value. 1 Enables coherent requests to the processor. When coherent requests are disabled: • loads to cacheable memory are not cached by the processor. 这意味着,如果4个core如果在amp模式下不能使用cache,系统性能受到极大影响,实测的确如此。 cortex-a7 mpcore压根不支持amp模式吗? 不知哪位专家有好的解决办法?
MPCore 本来设计就是用来 coherency 使用的, 作为 SMP core 使用。
你如果一定要配置成 AMP, 当然就只有 disable SMP 了。
我实际测试过4个core在disable smp模式下运行,像是蜗牛爬,原因是cache不起作用。我估计这和L2 cache有关,可能所有L2集成的mpcore实际上并不能很好地支持amp,而之前的cortex-a9的l2是在核外的就可以很好地支持amp模式。
你还是可以继续enable ACTLR.SMP bit, 但是把两个系统使用的物理内存分开,这样的话地址不会共享。cache coherency协议可以继续用。同时不VMID设置成不一样,避免TLB broadcast的干扰
现在您的 AMP 模式 开启 SMP.bit的模式可以正常使用了?开启了 SMP.bit 内存不能同享了,核间通讯是如何实现的?
您好,按照您的思路的话,是不是核间通讯只能通过外设来通讯了。就不能用 openAMP 之类的协议来实现了