多处理器间的通信方法、装置、系统及存储介质制造方法及图纸

技术编号:26342351 阅读:13 留言:0更新日期:2020-11-13 20:32
本申请公开了一种多处理器间的通信方法、装置、系统及存储介质,当第一处理器中存在需要向第二处理器传输的待传送数据时,通过第一控制模块关闭发送中断服务;向第一命令FIFO模块写入写命令,并向第一数据FIFO模块写入待传送数据;通过第一命令FIFO模块与第二命令FIFO模块之间的通信通道,将写命令和中断通知发送至第二命令FIFO模块,并通过第一数据FIFO模块和第二数据FIFO模块之间的通信通道,将待传送数据发送至第二数据FIFO模块,以在第二控制模块根据中断通知打开接收中断服务之后,第二处理器根据写命令,从第二数据FIFO模块中读取待传送数据进行存储,从而能基于硬件实现核间通信,通信效率高,系统资源占用少。

【技术实现步骤摘要】
多处理器间的通信方法、装置、系统及存储介质
本申请涉及芯片通信
,尤其涉及一种多处理器间的通信方法、装置、系统及存储介质。
技术介绍
为应对越来越丰富的应用场景,处理器设计越来越复杂,在一个指甲大小的芯片上集成多个核心(也即处理器)变得非常普遍。为了完成系统任务,多核之间的通信是不可避免的,核间通信是芯片设计中不可缺少的一部分。目前,比较常见的核间通信主要是采用共享内存+中断同步的方式,即提前预留出专门用于核间通信的共享内存,并采用中断模式确保多个核心之间的信息是同步的,但是这种核间通信模式需要开发复杂的软件并遵循RPMSG(RemoteProcessorMessaging)协议或者移植协议,通信效率不高,且共享内存无法被其他程序使用,占用系统资源。
技术实现思路
本申请实施例提供一种多处理器间的通信方法、装置、系统及存储介质,能基于硬件实现核间通信,无需开发复杂软件和设置共享内存,通信效率高,系统资源占用少。本申请实施例提供了一种多处理器间的通信方法,应用于第一处理器,所述第一处理器中设置有第一邮箱寄存器,所述第一邮箱寄存器包括第一控制模块、第一命令FIFO先进先出队列模块和第一数据FIFO模块,所述通信方法包括:当所述第一处理器中存在需要向第二处理器传输的待传送数据时,通过所述第一控制模块关闭发送中断服务,所述第二处理器中设有第二邮箱寄存器,所述第二邮箱寄存器包括第二控制模块、第二命令FIFO模块和第二数据FIFO模块;在所述发送中断服务关闭之后,向所述第一命令FIFO模块写入写命令,并向所述第一数据FIFO模块写入所述待传送数据;通过所述第一命令FIFO模块与所述第二命令FIFO模块之间的通信通道,将所述写命令和中断通知发送至所述第二命令FIFO模块,并通过所述第一数据FIFO模块和所述第二数据FIFO模块之间的通信通道,将所述待传送数据发送至所述第二数据FIFO模块,以在所述第二控制模块根据所述中断通知打开接收中断服务之后,所述第二处理器根据所述写命令,从所述第二数据FIFO模块中读取所述待传送数据进行存储。本申请实施例还提供了一种多处理器间的通信方法,应用于第二处理器,所述第二处理器中设有第二邮箱寄存器,所述第二邮箱寄存器包括第二控制模块、第二命令FIFO模块和第二数据FIFO模块,所述通信方法包括:当所述第二命令FIFO模块接收到第一处理器发送的中断通知时,通过所述第二控制模块打开接收中断服务,所述第一处理器中设置有第一邮箱寄存器,所述第一邮箱寄存器包括第一控制模块、第一命令FIFO模块和第一数据FIFO模块;在所述接收中断服务打开之后,读取所述第二命令FIFO模块中当前存储的命令进行解析,得到解析命令;当所述解析命令为写命令时,读取所述第二数据FIFO模块中当前存储的数据到所述第二处理器中的预设缓存区。本申请实施例还提供了一种多处理器间的通信装置,应用于第一处理器,所述第一处理器中设置有第一邮箱寄存器,所述第一邮箱寄存器包括第一控制模块、第一命令FIFO模块和第一数据FIFO模块,所述通信装置包括:关闭单元,用于当所述第一处理器中存在需要向第二处理器传输的待传送数据时,通过所述第一控制模块关闭发送中断服务,所述第二处理器中设有第二邮箱寄存器,所述第二邮箱寄存器包括第二控制模块、第二命令FIFO模块和第二数据FIFO模块;写入单元,用于在所述发送中断服务关闭之后,向所述第一命令FIFO模块写入写命令,并向所述第一数据FIFO模块写入所述待传送数据;发送单元,用于通过所述第一命令FIFO模块与所述第二命令FIFO模块之间的通信通道,将所述写命令和中断通知发送至所述第二命令FIFO模块,并通过所述第一数据FIFO模块和所述第二数据FIFO模块之间的通信通道,将所述待传送数据发送至所述第二数据FIFO模块,以在所述第二控制模块根据所述中断通知打开接收中断服务之后,所述第二处理器根据所述写命令,从所述第二数据FIFO模块中读取所述待传送数据进行存储。本申请实施例还提供了一种多处理器间的通信装置,应用于第二处理器,所述第二处理器中设有第二邮箱寄存器,所述第二邮箱寄存器包括第二控制模块、第二命令FIFO先进先出队列模块和第二数据FIFO模块,所述通信装置包括:打开单元,用于当所述第二命令FIFO模块接收到第一处理器发送的中断通知时,通过所述第二控制模块打开接收中断服务,所述第一处理器中设置有第一邮箱寄存器,所述第一邮箱寄存器包括第一控制模块、第一命令FIFO模块和第一数据FIFO模块;解析单元,用于在所述接收中断服务打开之后,读取所述第二命令FIFO模块中当前存储的命令进行解析,得到解析命令;读取单元,用于当所述解析命令为写命令时,读取所述第二数据FIFO模块中当前存储的数据到所述第二处理器中的预设缓存区。本申请实施例还提供了一种多处理器间的通信装置,包括第一处理器和第二处理器,所述第一处理器中设置有第一邮箱寄存器,所述第二处理器中设有第二邮箱寄存器;所述第一邮箱寄存器包括第一控制模块、第一命令FIFO先进先出队列模块和第一数据FIFO模块;所述第二邮箱寄存器包括第二控制模块、第二命令FIFO模块和第二数据FIFO模块,其中,所述第一处理器用于:当存在需要向所述第二处理器传输的待发送数据时,通过所述第一控制模块关闭发送中断服务;在所述发送中断服务关闭之后,向所述第一命令FIFO模块写入写命令,并向所述第一数据FIFO模块写入所述待传送数据;通过所述第一命令FIFO模块与所述第二命令FIFO模块之间的通信通道,将所述写命令和中断通知发送至所述第二命令FIFO模块,并通过所述第一数据FIFO模块和所述第二数据FIFO模块之间的通信通道,将所述待传送数据发送至所述第二数据FIFO模块;所述第二处理器用于:根据所述中断通知,通过所述第二控制模块打开接收中断服务;在所述接收中断服务打开之后,读取所述第二命令FIFO模块中当前存储的命令进行解析,得到解析命令;当所述解析命令为写命令时,读取所述第二数据FIFO模块中当前存储的数据到所述第二处理器中的预设缓存区。本申请实施例还提供了一种计算机可读存储介质,所述存储介质中存储有多条指令,所述指令适于由处理器加载以执行上述任一项多处理器间的通信方法。本申请提供的多处理器间的通信方法、装置、系统及存储介质,当第一处理器中存在需要向第二处理器传输的待传送数据时,通过第一控制模块关闭发送中断服务,之后向第一命令FIFO模块写入写命令,并向第一数据FIFO模块写入待传送数据,之后,通过第一命令FIFO模块与第二命令FIFO模块之间的通信通道,将写命令和中断通知发送至第二命令FIFO模块,并通过第一数据FIFO模块和第二数据FIFO模块之间的通信通道,将待传送数据发送至第二数据FIFO模块,以在第二控制模块根据中断通知打开接收中断服务之后,第二处理器根据写命令,从第二数据FIFO模块中读取待传送数据进行存储,从而本文档来自技高网...

【技术保护点】
1.一种多处理器间的通信方法,应用于第一处理器,其特征在于,所述第一处理器中设置有第一邮箱寄存器,所述第一邮箱寄存器包括第一控制模块、第一命令FIFO先进先出队列模块和第一数据FIFO模块,所述通信方法包括:/n当所述第一处理器中存在需要向第二处理器传输的待传送数据时,通过所述第一控制模块关闭发送中断服务,所述第二处理器中设有第二邮箱寄存器,所述第二邮箱寄存器包括第二控制模块、第二命令FIFO模块和第二数据FIFO模块;/n在所述发送中断服务关闭之后,向所述第一命令FIFO模块写入写命令,并向所述第一数据FIFO模块写入所述待传送数据;/n通过所述第一命令FIFO模块与所述第二命令FIFO模块之间的通信通道,将所述写命令和中断通知发送至所述第二命令FIFO模块,并通过所述第一数据FIFO模块和所述第二数据FIFO模块之间的通信通道,将所述待传送数据发送至所述第二数据FIFO模块,以在所述第二控制模块根据所述中断通知打开接收中断服务之后,所述第二处理器根据所述写命令,从所述第二数据FIFO模块中读取所述待传送数据进行存储。/n

【技术特征摘要】
1.一种多处理器间的通信方法,应用于第一处理器,其特征在于,所述第一处理器中设置有第一邮箱寄存器,所述第一邮箱寄存器包括第一控制模块、第一命令FIFO先进先出队列模块和第一数据FIFO模块,所述通信方法包括:
当所述第一处理器中存在需要向第二处理器传输的待传送数据时,通过所述第一控制模块关闭发送中断服务,所述第二处理器中设有第二邮箱寄存器,所述第二邮箱寄存器包括第二控制模块、第二命令FIFO模块和第二数据FIFO模块;
在所述发送中断服务关闭之后,向所述第一命令FIFO模块写入写命令,并向所述第一数据FIFO模块写入所述待传送数据;
通过所述第一命令FIFO模块与所述第二命令FIFO模块之间的通信通道,将所述写命令和中断通知发送至所述第二命令FIFO模块,并通过所述第一数据FIFO模块和所述第二数据FIFO模块之间的通信通道,将所述待传送数据发送至所述第二数据FIFO模块,以在所述第二控制模块根据所述中断通知打开接收中断服务之后,所述第二处理器根据所述写命令,从所述第二数据FIFO模块中读取所述待传送数据进行存储。


2.根据权利要求1所述的多处理器间的通信方法,其特征在于,所述通过所述第一数据FIFO模块和所述第二数据FIFO模块之间的通信通道,将所述待传送数据发送至所述第二数据FIFO模块,包括:
获取所述第一处理器的第一标识和所述第二处理器的第二标识;
根据所述第一标识和所述第二标识,对所述第一数据FIFO模块中的所述待传送数据进行加密,得到加密数据;
通过所述第一数据FIFO模块与所述第二数据FIFO模块之间的通信通道,将所述加密数据传送至所述第二数据FIFO模块。


3.根据权利要求2所述的多处理器间的通信方法,其特征在于,所述根据所述第一标识和所述第二标识,对所述第一数据FIFO模块中的所述待传送数据进行加密,包括:
对所述第一标识和所述第二标识进行异或,得到第一数据;
对所述第一数据和所述待传送数据进行异或,得到第二数据;
将所述第二数据中的每个字符沿预设方向循环移动预设位,得到加密数据。


4.根据权利要求1所述的多处理器间的通信方法,其特征在于,在通过所述第一控制模块关闭发送中断服务之前,还包括:
检测所述第一数据FIFO模块和所述第一命令FIFO模块中是否存在未发送完的数据;
若是,则清空所述第一数据FIFO模块和所述第一命令FIFO模块中的数据。


5.根据权利要求1所述的多处理器间的通信方法,其特征在于,还包括:
在所述第一命令FIFO模块中写入用于指示通道连接的打开命令;
根据所述打开命令,连通所述第一数据FIFO模块与所述第二数据FIFO模块之间的通信通道,以及连通所述第一命令FIFO模块和所述第二命令FIFO模块之间的通信通道。


6.一种多处理器间的通信方法,应用于第二处理器,其特征在于,所述第二处理器中设有第二邮箱寄存器,所述第二邮箱寄存器包括第二控制模块、第二命令FIFO模块和第二数据FIFO模块,所述通信方法包括:
当所述第二命令FIFO模块接收到第一处理器发送的中断通知时,通过所述第二控制模块打开接收中断服务,所述第一处理器中设置有第一邮箱寄存器,所述第一邮箱寄存器包括第一控制模块、第一命令FIFO模块和第一数据FIFO模块;
在所述接收中断服务打开之后,读取所述第二命令FIFO模块中当前存储的命令进行解析,得到解析命令;
当所述解析命令为写命令时,读取所述第二数据FIFO模块中当前存储的数据到所述第二处理器中的预设缓存区。


7.根据权利要求6所述的多处理器间的通信方法,其特征在于,所述第二处理器中还设有读取接口,还包括:
获取目标应用发送的读取指令,所述读取指令携带目标数据长度;
根据所述应用读取指令确定当前的接口传输模式;
若所述当前的接口传输模式为阻塞模式,则获取预设的传输属性参数;根据所述传输属性参数确定所述预设缓存区中的目标数据,并通过所述读取接口将所述目标数据传输至所述目标应用;
若所述当前的接口传输模式为非阻塞模式,则利用所述读取接口,从所述预设缓存区中读取等于...

【专利技术属性】
技术研发人员:于永庆
申请(专利权)人:湖北芯擎科技有限公司
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1