TI中文支持网
TI专业的中文技术问题搜集分享网站

C6678 多核程序的初始化及L1P cache一致性问题

工程师您好!

       刚开始学习使用EVMC6678LE开发板开发多核DSP程序。遇到两个问题:

1)程序中计划将Core0作为主核负责控制、通信,Core1~7负责跑算法程序。Core0的程序上来后会对EVM板做初始化工作,包括L1、L2、SL2、PLL(main PLL, DDR PLL)、DDR、中断/异常以及配置XMC MPAX的值等。看了C6678的datasheet和资料C66x DSP CorePac User Guide,上面说每一个C66x CorePac都有一个独立的MPAX,那是不是各个核也要去配置自己的MPAX? 请问:除此以外,其它核还需要做哪些模块初始化工作?

2)C66x DSP CorePac User Guide上说了L1D cache和LL2之间的cache一致性是由硬件维护的。但没有提到L1P cache一致性如何维护。现在程序里是L1P 32KB cache,L1D 32KB cache,LL2 全部做SRAM。请问,L1P cache和LL2之间的cache一致性是由硬件还是软件维护?

 补充 —— 看了一篇讲C64x+ DSP CACHE 一致性维护的文章,里面谈到:

      “对于L1P CACHE,存在代码的更新能否被Core读到的问题。代码的更新分成两种情况:一是Core在运行过程中对代码进行修改;二是其它Master对代码的修改。这两种情况下,都会存在CACHE读一致性问题,需要由软件来维护。”

      那么C6678的L1P是不是也是这样? 另外,如果代码在运行过程中不会发生变化(被core或外部master进行修改),是不是就不用考虑L1P CACHE一致性维护操作了?

ziyi ZHOU:

没有人帮忙回答一下吗? 

Thomas Yang1:

1 是的,需要各自配置自己的MPAX,其他模块初始化是根据您的应用决定的,一般来说PLL, CACHE,需要事先配好

2 硬件维护

Thomas Yang1:

回复 ziyi ZHOU:

L1P和L2是由硬件维护的,因为一般只考虑L1D和L2的一致性维护,所以手册中重点提及了L1D,但是L1P也是一样的额、

SL2的CACHE一致性维护需要由软件维护

赞(0)
未经允许不得转载:TI中文支持网 » C6678 多核程序的初始化及L1P cache一致性问题
分享到: 更多 (0)