现在很多的芯片都会几个core核,有的用的是Cortex M0+、M4、M7、A53、A73等等,有的是2核、3核、4核甚至6核8核,不同的核的主频支持度不一样,适用的具体应用场景也不同。
那么核间通信Inter-processor communication即IPC,一般作为核间通信使用。
可以看到处理器A和处理器B在进行IPC通信的时候,会用到Channel和Interrupt两个结构体,而且这是是共享的,关于共享可以从AHB总线层面和存储结构体两个层面来理解。
从该图可以看到CPU子系统或者称on-chip,都是挂在AHB总线上的器件,处理器是,flash、rom、ram都是,所以说这些资源是共享的。
而结构体共享,同时也是IPC为了实现shared memory资源互斥而必须采用的结构。如果处理器A想使用IPC通信channel资源,就必须申请一个lock,然后放数据Data,然后通告Notify,处理器B获得通告Notify的Event,并触发Interrupt,开始进行数据Data处理,处理好之后,释放lock。
但是这个过程中的数据寄存器Data Register很小,一个32bit,2个只有6bit,如果传大数据怎