一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于mailbox的多处理器通信方法、设备、系统和存储介质与流程

2022-03-16 01:12:01 来源:中国专利 TAG:


1.本发明属于即时通信技术领域,具体涉及一种基于mailbox的多处理器通信方法、设备、系统和存储介质。


背景技术:

2.随着半导体制造工艺的不断进步,为了满足通信、多媒体和数字处理等高端应用,片上系统已经不仅仅集成一个处理器,而是将多个处理器集成到一个系统中,甚至还需要结合片外的处理器共同工作。
3.目前,多处理器之间通信主要使用共享存储器通信机制、直接存储器访问(direct memory access,dma)数据搬运通信机制、串口主从模式通信机制和邮箱mailbox通信机制。其中,共享存储器传输速度较慢、实时性较差、而且相应的软件配置复杂度高;dma数据搬运通信机制虽然可以传输大量数据,但实时性较差;串口主从模式通信机制速度慢、实时性差;mailbox通信机制是一种多处理器间通信的硬件机制,相比于其他通信方式,其速度快,实时性高,整体性能。因此,目前市场大多采用mailbox通信机制。
4.但是,目前市场上的mailbox主要是使用异步fifo来实现的,由于地址和数据属于两个时钟域,直接拿来比较是会出现毛刺的,所以就需要将地址和数据同步,然后再进行比较,由于地址和数据都是多根线,就得使用到格雷码,先将二进制码转换成格雷码,然后用格雷码进行传输,同步到同一时钟域后再将格雷码转换成二进制码进行比较,这种方法虽然可以解决地址和数据同步的问题,但是转换过程也比较费时,通讯效率较低。


技术实现要素:

5.本发明的主要目的是提供一种基于mailbox的多处理器通信方法、设备、系统和存储介质,以解决现有技术中通讯效率较低的问题。
6.针对上述问题,本发明提供了一种基于mailbox的多处理器通信方法,任意两个通信的处理器中,每个处理器在发送状态和接收状态之间进行切换,并在切换状态后,由所述mailbox中与处于发送状态的处理器相对应的fifo存储器执行以下步骤:
7.接收处于发送状态的处理器发送的数据包;
8.若所述数据包的传输信息满足预设的被读取条件,向处于接收状态的处理器发送通知信号;
9.接收所述处于接收状态的处理器针对所述通知信号发送的读取信号;
10.基于同步fifo原理,将所述读取信号进行亚稳态处理后,将所述数据包发送给所述处于接收状态的处理器。
11.进一步地,上述所述的基于mailbox的多处理器通信方法中,所述传输信息包括接收所述数据包的计数值和/或接收所述数据包的计时值;
12.接收处于发送状态的处理器发送的数据包之后,还包括:
13.若所述计数值达到预设计数阈值和/或所述计时值达到预设计时阈值,确定所述
数据包的传输信息满足所述预设的被读取条件;
14.若所述计数值未达到预设计数阈值且所述计时值未达到预设预设计时阈值,确定所述数据包的传输信息不满足所述预设的被读取条件。
15.进一步地,上述所述的基于mailbox的多处理器通信方法中,所述预设计数阈值为预先设定的固定值。
16.进一步地,上述所述的基于mailbox的多处理器通信方法中,所述传输信息包括接收所述数据包的计数值和接收所述数据包的计时值;
17.若所述计数值达到预设计数阈值和/或所述计时值达到预设计时阈值,确定所述数据包的传输信息满足所述预设的被读取条件,包括:
18.若所述计数值达到所述预先设定的固定值,但所述计时值未达到预设计时阈值,确定所述数据包的传输信息满足所述预设的被读取条件;
19.若所述计数值未达到所述预先设定的固定值,但所述计时值达到预设计时阈值,确定所述数据包的传输信息满足所述预设的被读取条件。
20.进一步地,上述所述的基于mailbox的多处理器通信方法中,所述预设计数阈值按照以下步骤设定:
21.提取所述数据包的数据长度;
22.将所述数据包的数据长度对应的数值作为所述预设计数阈值。
23.进一步地,上述所述的基于mailbox的多处理器通信方法中,所述传输信息包括接收所述数据包的计数值和接收所述数据包的计时值;
24.若所述计数值达到预设计数阈值和/或所述计时值达到预设计时阈值,确定所述数据包的传输信息满足所述预设的被读取条件,包括:
25.若所述计数值达到所述预设计数阈值,但所述计时值未达到预设计时阈值,确定所述数据包的传输信息满足所述预设的被读取条件;
26.若所述计时值达到预设计时阈值,且所述计数值达到所述预设计数阈值,确定所述数据包的传输信息满足所述预设的被读取条件。
27.进一步地,上述所述的基于mailbox的多处理器通信方法,还包括:
28.若检测到所述处于发送状态的处理器发送下一个数据包的同时检测到所述处于接收状态的处理器的读取信号的,在将所述数据包发送给所述处于接收状态的处理器后,再接收所述处于发送状态的处理器发送的下一个数据包。
29.本发明还提供了一种基于mailbox的多处理器通信设备,任意两个通信的处理器中,每个处理器在发送状态和接收状态之间进行切换,所述基于mailbox的多处理器通信设备包括:
30.与每个处理器对应的通讯单元,每个通讯单元包括:
31.寄存器;
32.fifo存储器,用于基于所述寄存器对所述fifo存储器的配置信息,实现如上所述的基于mailbox的多处理器通信方法;
33.中断控制器,用于将所述fifo存储器发送的通知信号发送给所述处于接收状态的处理器。
34.本发明还提供了一种基于mailbox的多处理器通信系统,其特征在于,包括至少两
个处理器和如上所述的基于mailbox的多处理器通信设备;
35.任意两个通信的处理器中,每个处理器在发送状态和接收状态之间进行切换,并在切换状态后,由所述基于mailbox的多处理器通信设备实现如上所述的基于mailbox的多处理器通信方法。
36.本发明还提供了一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被控制器执行时实现如上所述的基于mailbox的多处理器通信的步骤。
37.与现有技术相比,上述方案中的一个或多个实施例可以具有如下优点或有益效果:
38.应用本发明的基于mailbox的多处理器通信方法、设备、系统和存储介质,在接收处于发送状态的处理器发送的数据包后,若所述数据包的传输信息满足预设的被读取条件,向处于接收状态的处理器发送通知信号,并接收所述处于接收状态的处理器针对所述通知信号发送的读取信号,基于同步fifo原理,将所述读取信号进行亚稳态处理后,将所述数据包发送给所述处于接收状态的处理器,实现了在同一时钟域写数据和读数据,避免了进行二进制码与格雷码之间的转换,有效的解决了跨时钟域通信的时序延迟,提高了通讯效率较低,同时还降低了设计的复杂度。
39.本发明的其它特征和优点将在随后的说明书中阐述,并且部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
40.附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例共同用于解释本发明,并不构成对本发明的限制。在附图中:
41.图1为本发明的基于mailbox的多处理器通信方法实施例的流程图;
42.图2为本发明的基于mailbox的多处理器通信设备的一种实施例的结构示意;
43.图3为本发明的基于mailbox的多处理器通信设备的另一种实施例的结构示意图。
具体实施方式
44.以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。
45.实施例一
46.为解决现有技术中存在的上述技术问题,本发明实施例提供了一种基于mailbox的多处理器通信方法。其中,任意两个通信的处理器中,每个处理器在发送状态和接收状态之间进行切换,并在切换状态后,由mailbox中与处于发送状态的处理器相对应的fifo存储器实现任意两个通信的处理器之间的数据交互。
47.图1为本发明的基于mailbox的多处理器通信方法实施例的流程图,如图1所示,本实施例的基于mailbox的多处理器通信方法具体可以包括如下步骤:
48.100、接收处于发送状态的处理器发送的数据包;
49.在一个具体实现过程中,任意两个通信的处理器中处于发送状态的处理器可以将需要发送的数据进行打包后,将数据包发送给处于发送状态的处理器对应的fifo存储器。其中,发送的数据包由头部header和数据部分data两部分组成,header由区分头部和数据部分的标识符、用于匹配命令和响应的标识符、用于区别命令或error的标识符、表示数据包长度的length等部分组成。
50.101、若数据包的传输信息满足预设的被读取条件,向处于接收状态的处理器发送通知信号;
51.在接收到处于发送状态的处理器发送的数据包后,可以判断数据包的传输信息是否满足预设的被读取条件,即数据包是否满足被处于接收状态的处理器读取的条件。若数据包的传输信息满足预设的被读取条件,向处于接收状态的处理器发送通知信号,若数据包的传输信息不满足预设的被读取条件,等待数据包继续传输,直到数据包的传输信息满足预设的被读取条件,向处于接收状态的处理器发送通知信号。
52.具体地,数据包的传输信息可以包括接收数据包的计数值和/或接收数据包的计时值;在接收到处于发送状态的处理器发送的数据包后可以通过计数器进行计数,得到接收数据包的计数值,和/或,通过计时器进行计时,得到接收数据包的计时值。若计数值达到预设计数阈值和/或计时值达到预设计时阈值,确定数据包的传输信息满足预设的被读取条件;若计数值未达到预设计数阈值且计时值未达到预设预设计时阈值,确定数据包的传输信息不满足预设的被读取条件。
53.本实施例中,优选为数据包的传输信息可以包括接收数据包的计数值和接收数据包的计时值。其中,预设计数阈值可以为预先设定的固定值。这样,若接收数据包的计数值达到预先设定的固定值,但接收数据包的计时值未达到预设计时阈值,确定数据包的传输信息满足预设的被读取条件;若接收数据包的计数值未达到预先设定的固定值,但接收数据包的计时值达到预设计时阈值,确定数据包的传输信息满足预设的被读取条件。
54.例如,若数据包的总长度大于或等于预先设定的固定值,则在接收数据包时接收数据包的计数值必然能够出现计数值达到预先设定的固定值的情况,如果接收数据包的计数值先达到预先设定的固定值,而接收数据包的计时值未达到预设计时阈值,仍可以确定数据包的传输信息满足预设的被读取条件。若预设计时阈值相对较短,在接收数据包的计数值达到预先设定的固定值之前,接收数据包的计时值已经达到预设计时阈值,也可以确定数据包的传输信息满足预设的被读取条件。
55.若数据包的总长度小于预先设定的固定值,则在接收数据包时接收数据包的计数值必然不能够出现计数值达到预先设定的固定值的情况,也就是说数据包的最后几笔数据无法通过预先设定的固定值触发中断,此时,可以等待接收数据包的计时值达到预设计时阈值后,确定数据包的传输信息满足预设的被读取条件。
56.在实际应用中,将预设计数阈值配置为预先设定的固定值的方式,配置简单,一次配置好就不需再更改了;但是灵活性较差,具体地,当数据包的长度大于预先设定的固定值时,一个包就需要两次或更多次才能传输完,例如,一般预先设定的固定值会设在fifo的深度一半,通常是不会设到最大值的,也就是说,只要预先设定的固定值没有设置到最大,fifo的利用率就没最大化,因此,该方式数据传输效率也比较低。
57.为了解决上述技术问题,本实施例中,预设计数阈值可以为随数据包的数据长度
的变化而变化的数值,具体地,预设计数阈值按照以下步骤设定:提取数据包的数据长度;将数据包的数据长度对应的数值作为预设计数阈值。
58.本实施例中,数据包的传输信息优选为包括接收数据包的计数值和接收数据包的计时值;这样,若接收数据包的计数值达到预设计数阈值,但接收数据包的计时值未达到预设计时阈值,确定数据包的传输信息满足预设的被读取条件;若接收数据包的计时值达到预设计时阈值,且接收数据包的计数值达到预设计数阈值,确定数据包的传输信息满足预设的被读取条件。
59.例如,为了能传输一个或多个完整的数据包,为了避免因为接收数据包的计时值达到预设计时阈值时,接收的数据包不完整,本实施例优选为以接收数据包的计数值达到预设计数阈值作为确定数据包的传输信息满足预设的被读取条件,这样,始终保持接收到完整的数据包后,再由处于接收状态的处理器读取。从而相对于设定一个固定值作为预设计数阈值而言,一个数据包无需多次传输,提高了数据传输效率。
60.102、接收处于接收状态的处理器针对通知信号发送的读取信号;
61.本实施例中,处于发送状态的处理器的fifo的时钟来源于写fifo的时钟域,为了解决fifo读写指针跨时钟域的问题,避免二进制码与格雷码之间的相互转换,本实施例中,处于发送状态的处理器的fifo的时钟也来源于写fifo的时钟域,处于发送状态的处理器可以针对接收的通知信号生成与写fifo的时钟域的读取信号,并可以向fifo存储器发送读取信号,由fifo存储器接收处于接收状态的处理器针对通知信号发送的读取信号。
62.103、基于同步fifo原理,将读取信号进行亚稳态处理后,将数据包发送给处于接收状态的处理器。
63.本实施例中,可以基于同步fifo原理,将读取信号进行亚稳态处理后,将数据包发送给处于接收状态的处理器。具体地,可以将读取信号打两拍即可,将读取信号同步到写fifo的时钟域。
64.本实施例中,只需要一根线进行同步,不需要进行二进制码与格雷码之间的转换,相对于异步fifo原理中利用多跟线并进行二进制码与格雷码之间的相互转换后才能进行同步的方法而言,提高通信性能的同时还降低了设计的复杂度,有效的解决了跨时钟域通信的时序延迟,进而使后端设计版图在布局布线时也更加方便了,mailbox的传输速度也获得了明显的提升。
65.本实施例的基于mailbox的多处理器通信方法,在接收处于发送状态的处理器发送的数据包后,若所述数据包的传输信息满足预设的被读取条件,向处于接收状态的处理器发送通知信号,并接收所述处于接收状态的处理器针对所述通知信号发送的读取信号,基于同步fifo原理,将所述读取信号进行亚稳态处理后,将所述数据包发送给所述处于接收状态的处理器,实现了在同一时钟域写数据和读数据,避免了进行二进制码与格雷码之间的转换,有效的解决了跨时钟域通信的时序延迟,提高了通讯效率较低,同时还降低了设计的复杂度。
66.进一步地,上述实施例中,可能出现处于发送状态的处理器写数据的同时,处于接收状态的处理器读数据,为了避免造成写数据时,造成fifo存储器溢出数据,本实施例优选为以读优先的原则进行处理,即若检测到所述处于发送状态的处理器发送下一个数据包的同时检测到所述处于接收状态的处理器的读取信号的,在将所述数据包发送给所述处于接
收状态的处理器后,再接收所述处于发送状态的处理器发送的下一个数据包。这样,读优先会将fifo存储器中的数据包读取以腾出fifo存储器的空间,使得处于发送状态的处理器能够继续写入数据包,从而不会造成fifo存储器溢出数据。
67.如果是写优先的话,当处于发送状态的处理器有大量的数据需要写时,那就会一直写,而fifo存储器的空间无法及时释放,容易造成fifo存储器溢出数据,且处于接收状态的处理器,也必须延迟等待,等到处于发送状态的处理器不再发送了,处于接收状态的处理器才能从fifo存储器中读取数据,数据传输效率比较低。
68.需要说明的是,本发明实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本发明实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
69.实施例二
70.为解决现有技术中存在的上述技术问题,本发明实施例提供了一种基于mailbox的多处理器通信设备,其中,任意两个通信的处理器中,每个处理器在发送状态和接收状态之间进行切换,并在完成状态切换后,由基于mailbox的多处理器通信设备实现两个处理器的数据交互。
71.图2为本发明的基于mailbox的多处理器通信设备的一种实施例的结构示意图,如图2所示,本实施例的基于mailbox的多处理器通信设备包括与每个处理器10对应的通讯单元20,每个通讯单元20包括寄存器201、fifo存储器202和中断控制器203。其中图2以两个处理器10为例对本发明的技术方案进行描述。
72.寄存器201,用于对fifo存储器202进行配置。
73.fifo存储器202,用于基于寄存器201对fifo存储器202的配置信息,实现上述实施例的基于mailbox的多处理器10通信方法;
74.中断控制器203,用于将fifo存储器202发送的通知信号发送给处于接收状态的处理器10。
75.图3为本发明的基于mailbox的多处理器通信设备的另一种实施例的结构示意图,图3中以两个处理器为例对本发明的技术方案进行说明。如图3所示,本实施例的基于mailbox的多处理器通信设备可以包括主处理器对应的主处理器接口ahb1、主寄存器master reg.file、主fifo存储器、主中断控制器master int.handle。主fifo存储器可以包括主控制模块fifo_ctrl1、主存储模块cmd_fifo1和主同步模块。从处理器对应的从处理器接口ahb2、从寄存器slave reg.file、从fifo存储器、从中断控制器slave int.handle。从fifo存储器可以包括从控制模块fifo_ctrl2、从存储模块rsps_fifo和从同步模块sync2。
76.本实施例中,主处理器接口ahb1、主寄存器master reg.file、主控制模块fifo_ctrl1、主存储模块cmd_fifo1、主同步模块、从中断控制器slave int.handle构成主处理器对应的通讯单元。从处理器接口ahb2、从寄存器slave reg.file、从控制模块fifo_ctrl2、从存储模块rsps_fifo、从同步模块sync2、主中断控制器master int.handle构成从处理器对应的通讯单元。
77.11、主处理器接口ahb1:与主处理器的接口;从处理器接口ahb2,与从处理器的ahb bus的接口。
78.12、主寄存器master reg.file:这个寄存器组是主处理器能够访问的,从处理器不能直接对其进行访问,主处理器需要通过该寄存器组对mailbox进行配置,同时需要通过该寄存器组访问相应的中断状态。
79.13、从寄存器slave reg.file:这个寄存器组是从处理器能够访问的,主处理器不能直接对其进行访问,从处理器需要通过该寄存器组访问相应的中断状态。
80.14、主控制模块fifo_ctrl1和从控制模块fifo_ctrl2:是用于控制两个fifo读写数据的控制器,fifo中的读写指针的变化,读写指针的比较,计数器的变化等都是由这两个控制模块控制。还有读写优先顺序的问题,也是由这两个控制模块控制,本设计中以读优先,即当读写同时发生时,fifo优先进行读数据,读操作结束后再进行写操作。
81.15、主存储模块cmd_fifo1:该模块是主处理器发送命令包或者参数包给从处理器的fifo,主处理器将打包好的数据存入主存储模块cmd_fifo中,然后通知从处理器从主存储模块cmd_fifo中读取数据包。
82.16、从存储模块rsps_fifo:该模块是存放从处理器执行完命令后的返回响应,当从处理器执行完命令后会将响应打包好放入从存储模块rsps_fifo中,然后通知主处理器从从存储模块rsps_fifo中读取响应。
83.17、主中断控制器master int.handle:该模块是将从处理器传来的中断状态位与相应的使能位进行与运算,然后将中断信号(即通知信号)抛给主处理器。
84.18、从中断控制器slave int.handle:该模块是将主处理器传来的中断状态位与相应的使能位进行与运算,然后将中断信号(即通知信号)抛给从处理器。
85.19、主同步模块sync1和从同步模块sync2:该模块是同步模块,因为读取信号的时钟域不是写信号的时钟域,所以当接收方需要从对应的存储模块中读取数据时,首先需要发送读取信号,然后通过主同步模块sync1或从同步模块sync2同步到对应地时钟域后才能读取数据。
86.上述实施例的装置用于实现前述实施例中相应的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
87.实施例三
88.为解决现有技术中存在的上述技术问题,本发明实施例提供了一种基于mailbox的多处理器通信系统。
89.本实施例的基于mailbox的多处理器通信系统包括至少两个处理器和上述的基于mailbox的多处理器通信设备;
90.任意两个通信的处理器中,每个处理器在发送状态和接收状态之间进行切换,并在切换状态后,由基于mailbox的多处理器通信设备实现上述实施例的基于mailbox的多处理器通信方法。
91.实施例四
92.为解决现有技术中存在的上述技术问题,本发明实施例提供了一种存储介质。
93.本发明实施例提供的存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例的基于mailbox的多处理器通信的步骤。
94.可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
95.需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是指至少两个。
96.流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
97.应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
98.本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
99.此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
100.上述提到的存储介质可以是只读存储器,磁盘或光盘等。
101.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
102.虽然本发明所公开的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所公开的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的保护范围,仍须以所附的权利要求书所界定的范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献