ADSP SC58x SC584 SC587 SC589多核心数据交互的简易教程

ADSP SC58x SC584 SC587 SC589多核心数据交互的简易教程
一、 通过MDMA交互
1、MDMA通道
根据参考手册,SC58x内部提供4个专用DMA通道,可用于数据从内存拷贝到内存。
ADSP SC58x SC584 SC587 SC589多核心数据交互的简易教程

2、MDMA通道源/目的地址
SC58x的两个sharc核,自己访问自己L1内存,是采用私有地址。假如sharc1数据要拷贝到sharc2里面,则使用的为全局地址。以下是sharc1和shrac2的私有地址和全局地址对应关系。
ADSP SC58x SC584 SC587 SC589多核心数据交互的简易教程

二、 共享L2 SRAM
根据官方例程配置,预留了4KB空间,多核心可以进行读和写,主要用于放在调试时,查看变量。当然了官方也提供了封装好了API(函数名以MCAPI命名),用于多核交互数据,更为安全,但交互数据量不能太多。
ADSP SC58x SC584 SC587 SC589多核心数据交互的简易教程

三、 一些猜想
既然可以共享L2 SRAM,那么也应该可以共享L3 SRAM,经过测试,应该没有问题,而且交互数据量可以做得很大。但需要考虑几个问题。
1、A5核和sharc核是有L1 Cache控制器的,当访问L3 SRAM时,需要考虑数据读写一致性的问题。
2、为了避免同一时刻多核心访问同一地址,需要做ping-pong机制

欢迎技术交流QQ 736009573