CN117743252A - 基于Mailbox的异构Soc子系统间通信的方法 - Google Patents
基于Mailbox的异构Soc子系统间通信的方法 Download PDFInfo
- Publication number
- CN117743252A CN117743252A CN202311747785.4A CN202311747785A CN117743252A CN 117743252 A CN117743252 A CN 117743252A CN 202311747785 A CN202311747785 A CN 202311747785A CN 117743252 A CN117743252 A CN 117743252A
- Authority
- CN
- China
- Prior art keywords
- data
- module
- subsystem
- mailbox
- soc
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000004891 communication Methods 0.000 title claims abstract description 76
- 238000000034 method Methods 0.000 title claims description 39
- 238000012545 processing Methods 0.000 claims abstract description 41
- 230000005540 biological transmission Effects 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 7
- 230000006870 function Effects 0.000 description 10
- 230000007246 mechanism Effects 0.000 description 9
- 230000002093 peripheral effect Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 230000003993 interaction Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Communication Control (AREA)
Abstract
一种基于Mailbox的通信系统,包括:第一Soc子系统,其包括第一Mailbox模块以及接口模块;第二Soc子系统,其包括第二Mailbox模块以及数据处理模块;以及外置内存模块;其中,所述第一Mailbox模块、所述第二Mailbox模块、所述外置内存模块之间通过总线进行通信,所述接口模块用于接收来自外部设备和传送到外部设备的数据,以及经由所述第一Mailbox模块、所述第二Mailbox模块和所述外置内存模块与所述数据处理模块进行数据传输,所述数据处理模块用于对所接收的外部设备的数据或者要传输到外部设备的数据进行处理。
Description
技术领域
本发明涉及嵌入式通信领域,具体涉及一种基于Mailbox的异构Soc子系统间通信方法。
背景技术
随着计算机技术的不断发展,异构多核系统成为嵌入式应用的主流,在对异构多核系统进行设计时,其中一个研究重点就是如何实现外接接口跨子系统进行通信,跨子系统之间的通信指的是跨不同子系统之间的多核进行通信,主要使用共享存储器通信机制,现有技术中大多采用Mailbox通信机制。
然而目前使用Mailbox通信机制进行跨子系统通信时通常采用的结构是两个子系统共用一个Mailbox模块及其缓存区,通过应用程序发送消息,触发中断,通信时需要发送方先从本地消息队列把数据拷贝到共享内存中,然后接收方再从共享内存中拷贝数据到本地消息队列中进行数据处理,这种实现机制需要经过多次数据拷贝的过程,尤其对于传输像USIM命令、串口命令之类的短数据,这种繁琐的处理过程极大地降低了实时数据处理的效率。
发明内容
基于上述问题,本申请结合数据传输和应用场景进行了优化,提出了一种基于Mailbox的多核子系统通信系统,
本发明提供一种基于Mailbox的通信系统,包括:
第一Soc子系统,其包括第一Mailbox模块以及接口模块;
第二Soc子系统,其包括第二Mailbox模块以及数据处理模块;以及
外置内存模块;
其中,所述第一Mailbox模块、所述第二Mailbox模块、所述外置内存模块之间通过总线进行通信,所述接口模块用于接收来自外部设备和传送到外部设备的数据,以及经由所述第一Mailbox模块、所述第二Mailbox模块和所述外置内存模块与所述数据处理模块进行数据传输,所述数据处理模块用于对所接收的外部设备的数据或者要传输到外部设备的数据进行处理。
根据本发明实施例所述的通信系统,其中,
基于所述接口模块传输的数据/所述处理模块处理后的数据类型选择数据传输方式。
根据本发明实施例所述的通信系统,其中,
所述数据类型分为长数据和短数据,所述长数据为大于128字节的数据,所述短数据为小于128字节的数据。
根据本发明实施例所述的通信系统,其中,
当所述数据类型为短数据时,使用所述第一mailbox模块或第二mailbox模块进行数据传输,
当所述数据类型为长数据时,所述第一mailbox模块或第二mailbox模块经由外置内存模块进行数据传输。
根据本发明实施例所述的通信系统,其中,
所述第一Soc子系统为RISC-V多核子系统,所述第二Soc子系统为RISC-V单核子系统。
本发明还提供一种用于上述任一实施例所述的通信系统的通信方法,包括以下步骤:
步骤1,所述接口模块接收外部设备传输的数据;
步骤2,第一Soc子系统基于所接收的数据类型将所接收到的数据写到第二Mailbox模块指定的第一存储位置,触发第二Soc子系统的中断;
步骤3,所述第二Soc子系统接收到中断后,从第一存储位置读取所述第一Soc子系统写入的数据,并使用数据处理模块对所读取出的数据进行数据处理;
步骤3,所述第二Soc子系统基于处理后的数据类型将处理后的数据写到第一Mailbox模块指定的第二对应位置,触发第一Soc子系统的中断;
步骤4,所述第一Soc子系统接收到中断后,从第二存储位置读取所述第二Soc子系统写入的数据,并将数据经接口模块传输到外部设备。
根据本发明实施例所述的方法,其中,
在步骤4中,当经所述处理模块处理后的数据类型为短数据时,所述第二存储位置为所述第一Mailbox中的共享缓存区,或者
当所接收的数据类型为长数据时,所述第二对应位置为外置内存模块中的共享缓存区。
根据本发明实施例所述的方法,其中,
在步骤2中,当所接收的数据类型为短数据时,所述第一存储位置为所述第二Mailbox中的共享缓存区,或者
当所接收的数据类型为长数据时,所述第一存储位置为外置内存模块中的共享缓存区。
本发明提供一种存储介质,其中存储有计算机程序,在所述计算机程序被处理器执行时,能够用于实现权利要求6-8中任一项所述的方法。
本发明提供一种电子设备,包括处理器和存储器,所述存储器中存储有计算机程序,在所述计算机程序被处理器执行时,能够用于实现权利要求6-8中任一项所述的方法。
基于本申请的方案,可以基于数据类型进行数据传输,并且传输数据时不需要多余的数据复制操作,能够提高数据传输效率,具有通用性强,使用场景丰富的优势。
附图说明
以下参照附图对本发明的实施例作进一步说明,其中:
图1示出了现有技术中使用Mailbox进行跨系统核间通信的通信系统。
图2示出了使用根据本发明的实施例的基于Mailbox的通信系统;
图3示出了基于图2所示的通信系统的基于Mailbox的异构多核Soc子系统间的数据通信的方法的流程图;
图4示出了基于图2所示的通信系统的基于Mailbox异构多核Soc子系统间小块数据/大块数据通信方法的详细流程示意图。
具体实施方式
为了使本发明的目的,技术方案及优点更加清楚明白,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
图1示出了现有技术中使用Mailbox进行跨系统核间通信的通信系统。
从图中可以看出,核1和核2共用一个Mailbox模块及其缓存区,通过应用程序发送消息,触发中断,发送需要先从本地消息队列把数据拷贝到共享内存中,接收需要从共享内存中拷贝数据到本地消息队列中再进行数据处理,这种实现机制需要经过多次数据拷贝的过程,极大降低了实时数据处理的效率。
图2示出了根据本申请的实施例的基于Mailbox的多核子系统之间的通信系统。
该系统包括两个异构Soc子系统,以下简称子系统A和子系统B,两个Soc子系统可以分别是单核或者多核Soc子系统。
在图2中,子系统A为RISC-V(Reduced Instruction Set Computer-RISC,精简指令集计算机)多核子系统,由中断模块、Mailbox1、外设接口模块(图中的串口USIM以太网均为外设接口,外设接口的软件实现称为驱动实现,每一个外设接口都有自己的驱动实现)、外置内存模块(外置内存模块是2通道的LPDDR4x接口,每个通道IO宽度是16-bit)等组成,在子系统A和子系统B需要进行数据交互时,子系统A初始化需要通信的接口类型(如图2中所示的USIM(Universal Subscriber Identity Module,全球用户识别卡)/UART(Universal Asynchronous Receiver/Transmitter,通用异步收发传输器)/SDIO(SecureDigital Input and Output,安全数字输入输出)/RGMII(Reduced Gigabit MediaIndependent Interface,吉比特介质独立接口等中的任一个或多个)。子系统B为RISC-V单核子系统,由中断模块、Mailbox2、数据处理模块(协议栈)等模块组成。两个子系统之间设置有共享内存模块(即图2中的buffer)。子系统A的Mailbox1模块和子系统B的Mailbox2模块之间的消息、中断等通信通过总线实现,Mailbox1模块和Mailbox2模块以及外置内存模块之间的通信也通过总线实现。
在上述系统中,每个子系统中都设计了一个Mailbox模块,通过总线挂载在各自对应的子系统上,每个子系统都支持通过总线访问其他子系统的Mailbox和外置内存模块,相比现有技术的一个Mailbox模块,可支持多种不同类型的数据同时传输,处理业务效率更高;在使用时,根据实际情况给每个Mailbox模块的一个任意通道分配特定大小(例如128字节,根据实际需要设定)的缓存区作为所有Mailbox模块共享的Mailbox缓存区,并且在外置内存模块中也为每个Mailbox模块分配特定大小的缓存区作为所有Mailbox模块共享的内存缓存区。
在传输数据时,根据数据类型使用不同的传输方式,如传输像USIM命令、串口命令之类的短数据,子系统A/子系统B直接向另一个子系统的Mailbox模块进行数据写入/读取,即直接使用另一方的Mailbox缓存区来读/写数据;如传输像以太网这样的长数据,可在外置共享内存中分别为两个子系统分配一块内存区域,子系统A/子系统B直接通过总线访问外置内存模块,进行数据读/写,即使用外置内存模块的缓存区来存储跨子系统传输的数据。
具体地,图3示出了基于图2所示的通信系统的基于Mailbox的异构多核Soc子系统间的数据通信的方法的流程图,包括如下步骤:
(1)复位子系统A的Mailbox1和子系统B的Mailbox2;
(2)子系统A初始化需要通信的所有接口(外设接口模块);
(3)子系统B准备要传输的数据包(即需要传输给子系统A的表示业务流程状态的数据);
(4)子系统A对Mailbox1初始化,包括buffer初始化、Mailbox使能、通道/深度/宽度配置;
(5)子系统B的Mailbox2初始化,包括buffer初始化、Mailbox使能、通道/深度/宽度配置;
(6)子系统A使能Mailbox1中断,注册中断处理函数;
(7)子系统B使能Mailbox2中断,注册中断处理函数;
(8)子系统A创建一个线程C,采用轮询机制,将事件绑定在一个线程上,定期查询数据接收和发送状态,快速响应事件通知消息;
(9)子系统B创建一个线程D,采用轮询机制,将事件绑定在一个线程上,定期查询数据接收和发送状态,快速响应事件通知消息;
(10)子系统A发送事件通知;
(11)如果子系统A的线程C接收到事件通知,在线程C中处理处理子系统A的写数据事件,根据接口类型和数据长度将数据到对应位置:如果是短数据,直接写入Mailbox2中对应的缓存区,如果是长数据,写入外置buffer的共享内存缓存区中Mailbox2对应的缓存区中,利用上述对Mailbox2进行写数据操作,写操作完成触发子系统B的CPU中断;
(12)子系统B收到Mailbox2产生的中断,发送一条读数据的事件;
(13)子系统B的线程收到事件,并根据事件类型,进行读数据操作,并根据对应的接口类型,进行相应的操作;
(14)子系统B根据接口类型和消息类型进行分析,子系统B的数据处理模块对从子系统A接收到的数据进行处理,并将处理后的数据写到对应位置,如果是短数据,直接写入Mailbox1中对应的缓存区,如果是长数据,写入外置buffer的共享内存缓存区中Mailbox1对应的缓存区,并发送事件通知;
(15)子系统B的线程D收到事件通知,在线程D中处理子系统B的写数据事件,对Mailbox1进行写数据操作,写操作完成触发子系统B的CPU中断;
(16)子系统A收到Mailbox1产生的中断,发送一条读数据的事件;
(17)子系统A的线程收到事件,并根据事件类型,进行读数据操作,并通过子系统A侧的外设接口传输到外部连接的终端;
(18)子系统A和B根据需要多次进行数据通信,重复步骤(10)至(17)。
图4示出了基于图2所示的通信系统的基于Mailbox的异构多核Soc子系统间小块数据通信方法的详细流程示意图,本发明以传输USIM数据作为例子进行步骤详解,USIM在子系统A侧,协议栈运行在子系统B上,协议栈和USIM的数据交互需要跨子系统实现,由此提出通过基于Mailbox通信的方法。具体步骤如下:
101、在子系统A复位Mailbox1模块;
102、子系统B复位Mailbox2模块;
103、子系统A初始化USIM,直至USIM PPS(Protocol and parameters selection,协议和参数选择)交互成功;
104、子系统B准备要发送到子系统A的数据包(此处的数据包是需要传给子系统A的关于业务处理流程的一些状态或者流程记录的数据);
105、子系统A初始化配置,根据中断模块设计,配置中断信号为5,根据Mailbox1的设计,配置其通道为0,FIFO深度为8,这个配置仅限于本子系统,如在实际应用过程中断源和Mailbox设计不同,按照实际系统设计配置即可;
106、子系统B初始化配置,配置中断信号为6,Mailbox2通道为0,FIFO深度为8;
107、子系统A使能中断,注册中断处理函数;
108、子系统B使能中断,注册中断处理函数;
109、子系统A创建线程C,创建事件标志组,在线程中采用轮询的方式循环读取事件状态,从事件标志组中等待事件到来;
110、子系统B创建线程D,创建事件标志组,在线程中采用轮询的方式循环读取事件状态,从事件标志组中等待事件到来;
111、如果是第一次通信,子系统A将USIM初始化成功的消息写入Mailbox2中的对应缓存区,否则将要发送给子系统B的USIM数据写入Mailbox2中的对应缓存区,并在事件标志组中设置事件标志为写数据事件;
112、子系统A的线程C等待事件到来,根据事件类型,子系统A对Mailbox2进行写数据操作,写操作完成触发子系统B的CPU产生中断;
113、子系统B的中断处理函数接收到中断后,在事件标志组中设置事件标志为读数据事件;
114、子系统B的线程D接收到事件后,根据事件类型,Mailbox2进行读数据操作,如果是第一次通信,接收到USIM初始化成功的消息,如果不是第一次通信,收到子系统A的USIM数据;
115、如果是第一次通信,子系统B将准备好的数据包的数据写入Mailbox1中的对应缓存区中,并在事件标志组中设置事件标志为写数据事件;如果不是第一次通信,处理模块(协议栈)对从子系统A收到的USIM数据进行处理,并准备要发送给子系统A的处理后数据;
116、子系统B线程D等待事件到来后,根据事件类型,子系统B对Mailbox1进行写消息操作,写操作完成触发子系统A的CPU产生中断;
117、子系统A的中断处理函数接收到中断后,在事件标志组中设置事件标志为读数据事件;
118、子系统A的线程C接收到事件后,根据事件类型,进行Mailbox1读数据操作,从Mailbox1中的对应缓存区将处理后数据读出;并通过子系统A侧的USIM接口传输到外部连接的终端;
119、若需要多次进行数据交互,重复步骤111至118。
以上步骤是以USIM数据为例,说明小块数据传输的流程,并不仅限于USIM接口数据传输,其他传输小块数据的接口均可参考上述步骤进行跨子系统通信。根据本实施例的以USIM为例实现的Mailbox跨子系统通信机制,可以解决异构多核Soc跨子系统通信的技术瓶颈。
图4还示出了基于图2的通信系统的基于Mailbox的异构多核Soc子系统间大块数据(即长数据)通信方法的详细流程示意图,本发明以传输以太网数据作为例子进行步骤详解,以太网接口在子系统A侧,子系统B想要和以太网进行数据交互,通过Mailbox进行。具体步骤如下:
201、在子系统A复位Mailbox1模块;
202、子系统B复位Mailbox2模块;
203、子系统B准备要发送到子系统A的数据包(此处的数据包是需要传给子系统A的关于业务处理流程的一些状态或者流程记录的数据,业务处理例如是通话或者发短信下载等业务);
204、子系统A初始化配置,配置中断信号为5,通道为0,FIFO深度为8,外部共享循环内存1(即外置内存模块中Mailbox1对应的缓存区)初始化,暂定为1.5MB;
205、子系统B初始化配置,配置中断信号为6,通道为0,FIFO深度为8,外部共享循环内存2(即外置内存模块中Mailbox2对应的缓存区)初始化,暂定为1.5MB;
206、子系统A使能中断,注册中断处理函数;
207、子系统B使能中断,注册中断处理函数;
208、子系统A创建线程C,创建事件标志组,在线程中采用轮询的方式,从事件标志组中等待事件到来;
209、子系统B创建线程D,创建事件标志组,在线程中采用轮询的方式,从事件标志组中等待事件到来;
210、子系统A初始化以太网;
211、如果是第一次通信,子系统A将以太网初始化成功的消息写入外部共享内存2,否则将要发送给子系统B的以太网数据写入外部共享内存2,并在事件标志组中设置事件标志为写数据事件;
212、子系统A的线程C等待事件到来,根据事件类型,对Mailbox2进行写数据操作,并将外部共享内存2存储的数据长度和起始地址写在Mailbox2内部的缓存区,写操作完成触发子系统B的CPU产生中断;
213、子系统B的中断处理函数接收到中断后,在事件标志组中设置事件标志为读数据事件;
214、子系统B的线程D接收到事件后,根据事件类型,Mailbox2进行读数据操作,从Mailbox2内部缓存区读出外部共享内存2存储的数据长度和起始地址,根据该地址和数据长度,从外部共享内存2读取以太网数据,如果是第一次通信,接收到以太网初始化成功的消息,如果不是第一次通信,收到子系统A的以太网数据;
215、如果是第一次通信,子系统B将准备好的数据写入外部共享内存1中,并在事件标志组中设置事件标志为写数据事件;如果不是第一次通信,将根据从子系统A收到的以太网数据经协议栈处理(协议栈会在接收到以太网数据包之后再按照自己的格式包头,进行业务处理)之后,准备回复给子系统A的数据写入外部共享内存1;
216、子系统B线程D等待事件到来后,根据事件类型,对Mailbox1进行写消息操作,并将外部共享内存1存储的数据长度和起始地址写在Mailbox1内部的缓存区,写操作完成触发子系统A的CPU产生中断;
217、子系统A的中断处理函数接收到中断后,在事件标志组中设置事件标志为读数据事件;
218、子系统A的线程C接收到读数据事件后,进行Mailbox1读数据操作,从Mailbox1内部缓存区读出外部共享内存1存储的数据长度和起始地址,根据该地址和数据长度,将子系统B存储在外部共享内存1的数据读出;并通过子系统A侧的以太网接口传输到外部连接的终端;
219、若需要多次进行数据交互,重复步骤211至218。
在上述步骤中限定了外部共享内存1和外部共享内存2,但本发明不限于此,可以按需要限定各个Mailbox模块在外设内存模块中的任意存储位置,并且各个Mailbox模块均可对任意存储区域进行读/写操作,只要在该限定的存储区域中不存在未完成的操作。
以上步骤是以以太网数据为例,说明大块数据传输的流程,并不仅限于以太网接口数据传输,其他传输大块数据的外设接口均可参考上述以太网接口的示例实现跨子系统通信。根据本实施例的以以太网为例实现的Mailbox跨子系统通信机制,可以解决异构多核Soc跨子系统通信的技术瓶颈,实现任一外设接口的跨子系统通信,具有传输效率高、使用场景丰富的优点。
上述实施例举出了两个子系统之间基于Mailbox进行通信的示例,但是本发明不限于此,还可以在两个以上子系统上各自设置Mailbox模块进行数据传输。
总体而言,通过本发明所构思的上述技术方案,能够取得如下有益效果:
(1)本发明提供的基于Mailbox的异构多核Soc子系统间通信方法,根据数据大小采用不同的传递数据方式,本发明的应用场景实现小数据包(短数据)的多次传输,采用Mailbox的数据缓冲区进行数据传输;如果需要进行大块数据(长数据)的处理,可以采用共享buffer方式进行跨子系统数据传输,并根据不同数据内容,进行两种方式的切换,提升不同通信场景的数据传输性能;
(2)本发明提供的基于Mailbox的异构多核Soc子系统间通信方法,可通过任一接口与Mailbox结合通信的方式,进行外部设备跨子系统数据传输,该机制具备使用场景丰富的优势。
(3)本发明提供的基于Mailbox的异构多核Soc子系统间通信方法,在数据通信时,一个子系统直接从另一子系统读/写数据,而不需要一个子系统先在本地先拷贝数据,再将数据拷贝至共享存储模块,另一个子系统再从共享存储模块读取并拷贝数据至其本地存储区。因此,本申请的方法极大地提高了数据传输效率。
本领域技术人员可以理解,以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,依然可以根据本实施例所描述的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的包护范围内。在本发明的一个实施例中,可以以计算机程序的形式来实现本发明。计算机程序可以存储于各种存储介质(例如,硬盘、光盘、闪存等)中,当该计算机程序被处理器执行时,能够用于实现本发明的方法。
在本文中,使用第一、第二与第三等等词汇,是用于描述并辨别各个元件。因此,在本文中的第一元件也可被称为第二元件,而不脱离本申请的本意。为易于理解,在各图式中的类似元件将被指定为相同标号。
在本发明的另一个实施例中,可以以电子设备的形式来实现本发明。该电子设备包括处理器和存储器,在存储器中存储有计算机程序,当该计算机程序被处理器执行时,能够用于实现本发明的方法。
本文中针对“各个实施例”、“一些实施例”、“一个实施例”、或“实施例”等的参考指代的是结合所述实施例所描述的特定特征、结构、或性质包括在至少一个实施例中。因此,短语“在各个实施例中”、“在一些实施例中”、“在一个实施例中”、或“在实施例中”等在整个本文中各处的出现并非必须指代相同的实施例。此外,特定特征、结构、或性质可以在一个或多个实施例中以任何合适方式组合。因此,结合一个实施例中所示出或描述的特定特征、结构或性质可以整体地或部分地与一个或多个其他实施例的特征、结构、或性质无限制地组合,只要该组合不是非逻辑性的或不能工作。本文中出现的类似于“根据A”或“基于A”的表述意指非排他性的,也即,“根据A”可以涵盖“仅仅根据A”,也可以涵盖“根据A和B”,除非特别声明或者根据上下文明确可知其含义为“仅仅根据A”。在方法流程中按照一定顺序进行描述的各个步骤并非必须按照该顺序执行,相反,其中的一些步骤的执行顺序可以改变,并且一些步骤可以并发执行,只要不影响方案的实现即可。另外,本申请附图中的各个元素仅仅为了示意说明,并非按比例绘制。
由此描述了本发明的至少一个实施例的几个方面,可以理解,对本领域技术人员来说容易地进行各种改变、修改和改进。这种改变、修改和改进意于在本发明的精神和范围内。
Claims (10)
1.一种基于Mailbox的通信系统,包括:
第一Soc子系统,其包括第一Mailbox模块以及接口模块;
第二Soc子系统,其包括第二Mailbox模块以及数据处理模块;以及
外置内存模块;
其中,所述第一Mailbox模块、所述第二Mailbox模块、所述外置内存模块之间通过总线进行通信,所述接口模块用于接收来自外部设备和传送到外部设备的数据,以及经由所述第一Mailbox模块、所述第二Mailbox模块和所述外置内存模块与所述数据处理模块进行数据传输,所述数据处理模块用于对所接收的外部设备的数据或者要传输到外部设备的数据进行处理。
2.根据权利要求1所述的通信系统,其中,
基于所述接口模块传输的数据/所述处理模块处理后的数据类型选择数据传输方式。
3.根据权利要求2所述的通信系统,其中,
所述数据类型分为长数据和短数据,所述长数据为大于128字节的数据,所述短数据为小于128字节的数据。
4.根据权利要求3所述的通信系统,其中,
当所述数据类型为短数据时,使用所述第一mailbox模块或第二mailbox模块进行数据传输,
当所述数据类型为长数据时,所述第一mailbox模块或第二mailbox模块经由外置内存模块进行数据传输。
5.根据权利要求1所述的通信系统,其中,
所述第一Soc子系统为RISC-V多核子系统,所述第二Soc子系统为RISC-V单核子系统。
6.一种用于权利要求1-5之一的通信系统的通信方法,包括以下步骤:
步骤1,所述接口模块接收外部设备传输的数据;
步骤2,第一Soc子系统基于所接收的数据类型将所接收到的数据写到第二Mailbox模块指定的第一存储位置,触发第二Soc子系统的中断;
步骤3,所述第二Soc子系统接收到中断后,从第一存储位置读取所述第一Soc子系统写入的数据,并使用数据处理模块对所读取出的数据进行数据处理;
步骤3,所述第二Soc子系统基于处理后的数据类型将处理后的数据写到第一Mailbox模块指定的第二对应位置,触发第一Soc子系统的中断;
步骤4,所述第一Soc子系统接收到中断后,从第二存储位置读取所述第二Soc子系统写入的数据,并将数据经接口模块传输到外部设备。
7.根据权利要求6所述的方法,其中,
在步骤4中,当经所述处理模块处理后的数据类型为短数据时,所述第二存储位置为所述第一Mailbox中的共享缓存区,或者
当所接收的数据类型为长数据时,所述第二对应位置为外置内存模块中的共享缓存区。
8.根据权利要求6所述的方法,其中,
在步骤2中,当所接收的数据类型为短数据时,所述第一存储位置为所述第二Mailbox中的共享缓存区,或者
当所接收的数据类型为长数据时,所述第一存储位置为外置内存模块中的共享缓存区。
9.一种存储介质,其中存储有计算机程序,在所述计算机程序被处理器执行时,能够用于实现权利要求6-8中任一项所述的方法。
10.一种电子设备,包括处理器和存储器,所述存储器中存储有计算机程序,在所述计算机程序被处理器执行时,能够用于实现权利要求6-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311747785.4A CN117743252A (zh) | 2023-12-19 | 2023-12-19 | 基于Mailbox的异构Soc子系统间通信的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311747785.4A CN117743252A (zh) | 2023-12-19 | 2023-12-19 | 基于Mailbox的异构Soc子系统间通信的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117743252A true CN117743252A (zh) | 2024-03-22 |
Family
ID=90276709
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311747785.4A Pending CN117743252A (zh) | 2023-12-19 | 2023-12-19 | 基于Mailbox的异构Soc子系统间通信的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117743252A (zh) |
-
2023
- 2023-12-19 CN CN202311747785.4A patent/CN117743252A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6577542B2 (en) | Scratchpad memory | |
US7457845B2 (en) | Method and system for TCP/IP using generic buffers for non-posting TCP applications | |
CN113986791B (zh) | 一种智能网卡快速dma设计方法、系统、设备及终端 | |
US5901328A (en) | System for transferring data between main computer multiport memory and external device in parallel system utilizing memory protection scheme and changing memory protection area | |
US7552232B2 (en) | Speculative method and system for rapid data communications | |
CN115827524A (zh) | 一种数据传输方法以及装置 | |
CN112947857A (zh) | 一种数据搬移方法、装置、设备及计算机可读存储介质 | |
CN109062857B (zh) | 一种能高速实现多处理器间通信的新型消息控制器及其通信方法 | |
CN102843435A (zh) | 一种在集群系统中存储介质的访问、响应方法和系统 | |
US20090292856A1 (en) | Interserver communication mechanism and computer system | |
GB2377138A (en) | Ring Bus Structure For System On Chip Integrated Circuits | |
CN116471242A (zh) | 基于rdma的发送端、接收端、数据传输系统及方法 | |
CN117743252A (zh) | 基于Mailbox的异构Soc子系统间通信的方法 | |
JP4317348B2 (ja) | 情報処理装置及び入出力方法並びにプログラム | |
CN115529275B (zh) | 一种报文处理系统及方法 | |
JPH11149455A (ja) | メモリディスク共有方法及びその実施装置 | |
US8054857B2 (en) | Task queuing methods and systems for transmitting frame information over an I/O interface | |
CN117312202B (zh) | 片上系统和用于片上系统的数据传输方法 | |
WO2024103924A1 (zh) | 一种数据读写方法及相关装置 | |
WO2024077999A1 (zh) | 集合通信方法及计算集群 | |
JP2000022724A (ja) | パケットスイッチシステム、これを含む集積回路、パケットスイッチ制御方法、パケットスイッチ制御プログラム記録媒体 | |
CN117591448A (zh) | 一种支持多进程的FPGA xdma驱动方法 | |
JP2984594B2 (ja) | マルチクラスタ情報処理システム | |
CN117851313A (zh) | 一种适用于片上网络架构芯片的dma控制系统 | |
CN116225742A (zh) | 一种消息分发方法、设备以及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |