DSP简单多核开发1

C66xDSP架构引入了XMC,并详细阐述了多核开发中的IPC中断机制,用于核心间的协作通知。IPCGRx和IPCARx寄存器用于触发和应答中断,而硬件信号量如Semaphore2模块则确保了对共享资源的互斥访问。此外,文章提到了单镜像和多镜像两种程序部署模式。
摘要由CSDN通过智能技术生成

与之前架构相比,C66x新增的就是XMC。

多核开发的基础是,DSP每个核心都可以独立的访问SOC资源, 在CPU内部使用的是32位的逻辑地址,出了CPU用的就是36位的物理地址。

多核共享的通知机制:

多个核心在协作时不能只有数据,需要通过某种机制,通知其他核心数据已经准备就绪,可以开始操作,因为在实际应用中并不是所有处理都是并行的,有的处理是需要串行的,IPC中断就是一种通知机制。主要通过几个寄存器来实现,在CPU SOC内部主要用到IPCGRx和IPCARx这两个寄存器,x代表核心数目,对寄存器相应的位置位就可以触发相应核心的IPC中断,IPC中断对于每个核心来说都有唯一一个事件,将这个事件映射到CPU中断就可以相应这个中断了,每个核心都要配置。

IPCGRx是IPC中断触发寄存器,用于触发对应核心中断,同时还支持传递28种(位)ID不一定用,内存地址为0x0262020240+x*4

第0位用于触发相应核心的IPC中断,想要触发第几个核心的中断就在哪个核心的IPCGRx的IPCG域写1。高4~31位,写1会将置位SRCSx及相应的SRCCx都置为1。

IPCARx是IPC中断应答寄存器,用于应答核心中断,内存地址为0x02620280+x*4

IPCGRH IPC主机中断触发寄存器产生一个主机中断,通过DSP的HOUT引脚输出中断脉冲,宽度是8个CPU/6时钟周期(4高/4低)可以用于多片的DSP通信使用,地址为0x0262027C

IPCARH IPC主机中断应答寄存器用于应答主机中断,地址为0x026202BC

硬件信号量——保证互斥访问

Semaphore2模块

提供对共享资源的互斥访问

最大64个独立信号量

Semaphore有3种请求方式

1、直接请求:请求到了就得到,没有请求到就结束

2、间接请求:申请放到队列里,若成功则产生中断然后处理中断响应请求。

3、混合请求:若申请成功则直接相应,若失败则放入队列等待释放信号量再产生中断。

单镜像/多镜像

单镜像:每个CPU核心运行同样的程序,按单核程序方式启动。

多镜像:每个CPU核心运行不同的程序,将多个应用程序合成一个单镜像烧写或使用二级引导程序为每个核心逐个加载应用程序。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值