【技术实现步骤摘要】
本专利技术涉及通信
, 具体涉及一种基于共享内存的通信方法及装置。
技术介绍
在两个CPU之间通过共享内存通信时,目前较常见的有以下几种方法。第一种方法是将共享内存存分为两块,分别作为两个CPU的发送、接收通道, 如图1所示。每个通道提供一个读写标志位,该标志初始为可写态。发送方发送数据后 将读写标志由可写态修改为可读态,等待接收方接收。接收方接收数据后将读写标志由 可读态修改为可写态,以便发送方可以继续发送。采用这种方法,每一次的数据交互都 需要等待对方读或写完毕,效率很低。第二种方法也是将共享内存分为两块,分别作为两个CPU的发送、接收通道, 每个通道用一个环形队列实现循环读写,如图2所示。环形队列通过存放在邮箱中的读 写指针进行管理。以CPUl发送为例,CPUl有数据需要发送时,首先通过环形队列1的 读、写指针计算是否有足够的剩余空间,如果空间足够,则将消息包写入写指针所指位 置,并更新写指针。CPU2定时轮询环形队列1,发现有新的消息包时,则读取消息包, 并更新读指针。由于发送方和接收方可以同时操作共享内存,比前面的方法效率上大大 提高,但是还是 ...
【技术保护点】
一种基于共享内存的通信方法,其特征在于,该方法包括:发送方将所要发送的内容作为消息体写入内存的通道,并为该消息体配置定长的消息头以构成传输消息,其中,所述消息头中至少携带所述消息体的长度;接收方从所述通道中读取所述消息头,根据所述消息头的起始地址以及消息头的长度确定所述消息体的起始地址,再根据所述消息体的起始地址以及所述消息头中消息体的长度,确定所述消息体在所述内存通道的位置,在该位置上读取所述消息体,进行处理。
【技术特征摘要】
1.一种基于共享内存的通信方法,其特征在于,该方法包括发送方将所要发送的内容作为消息体写入内存的通道,并为该消息体配置定长的消 息头以构成传输消息,其中,所述消息头中至少携带所述消息体的长度;接收方从所述通道中读取所述消息头,根据所述消息头的起始地址以及消息头的长 度确定所述消息体的起始地址,再根据所述消息体的起始地址以及所述消息头中消息体 的长度,确定所述消息体在所述内存通道的位置,在该位置上读取所述消息体,进行处 理。2.如权利要求1所述的方法,其特征在于,在所述发送方将所述消息体写入内存通道 前,该方法还包括;所述发送方与所述接收方将内存划分为多个通道,为各通道配置通道描述符,所述 通道描述符包括通道的基地址、通道的大小以及通道的读写指针。3.如权利要求2所述的方法,其特征在于,发送方将所要发送的消息体写入内存通道时,还将该通道的写指针指向该通道的下 一个可用单元;所述接收方判断所述通道的读、写指针不相等时,才读取所述传输消息,并将所述 通道的读指针指向下一个传输消息。4.如权利要求1至3任一项所述的方法,其特征在于,所述消息头还包括下一跳地址,所述下一跳地址表示下一个传输消息的消息头的起 始地址。5.如权利要求4所述的方法,其特征在于,所述发送方将所述传输消息写入内存的通道时,若所述通道底部空闲空间小于所述 传输消息的长度,且所述通道顶部空闲空间大于所述传输消息的长度,则在所述通道的 底部写入一空消息头,将所述传输消息写入所述通道的顶部,其中,所述空消息头中消 息体的长度为零,下一跳地址为零;若所述接收方从所述通道中读取到所述空消息头,则从所述通道的顶部读取传输消 息,进行处理。6.—种基于共享内存的通信装置,其特征在于,该装置包括发送单元、接收单元, 处理单元,其中所述发送单元,用于将所述处理单元发送的传输消息写入内存的通道;所述接收...
【专利技术属性】
技术研发人员:秦晓辉,
申请(专利权)人:中兴通讯股份有限公司,
类型:发明
国别省市:94[中国|深圳]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。