[发明专利]一种基于共享存储器的双CPU通信方法有效

专利信息
申请号: 200610103231.0 申请日: 2006-07-14
公开(公告)号: CN101105786A 公开(公告)日: 2008-01-16
发明(设计)人: 江帷;官华伯;张绪广 申请(专利权)人: 中兴通讯股份有限公司
主分类号: G06F15/167 分类号: G06F15/167
代理公司: 北京安信方达知识产权代理有限公司 代理人: 王漪;王继长
地址: 518057广东省深圳市南山*** 国省代码: 广东;44
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 共享 存储器 cpu 通信 方法
【说明书】:

技术领域

发明涉及一种通信技术领域的通信方法,具体涉及的是一种基于共享存储器的双CPU通信方法。

背景技术

在现有技术的两个CPU之间通过共享存储器通信时,目前较常见的有两种方法。

一种方法是将共享存储区划分为两块,分别作为两个CPU的发送、接收通道,如图1所示。每个通道提供一个读写标志位,该标志初始为可写态。发送方发送数据后将读写标志由可写态修改为可读态,等待接收方接收。接收方接收数据后将读写标志由可读态修改为可写态,以便发送方可以继续发送。采用这种方法,每一次的数据交互都需要等待对方读或写完毕,效率很低。

另一种方法也是将共享存储区分为两块,分别作为两个CPU的发送、接收的通道,每个通道用一个环形队列实现循环读写,如图2所示。环形队列通过存放在邮箱中的读写指针进行管理。以CPU1发送为例,CPU1有数据需要发送时,首先通过环形队列1的读、写指针计算是否有足够的剩余空间,如果空间足够,则将消息包写入写指针所指位置,并更新写指针。CPU2定时轮询环形队列1,发现有新的消息包时,则读取消息包,并更新读指针。由于发送方和接收方可以同时操作共享存储区,比前述方法在效率上大大提高。

但是还是存在以下问题:

(1)数据一般按定长打包发送,对于消息包长度相差大,例如最小长度为4字节,最大长度为40字节,都要按最大的40字节打包发送,造成浪费。

(2)数据不按定长打包发送时,需要在消息包中包含长度信息,由于消息包不定长,接收方无法通过读写指针计算出待处理的消息条数。

(3)消息包不定长时,在连续发送消息的过程中,其中某条出现故障将引起后面的读写指针全部紊乱。

(4)在队列尾端空间不够存放新消息包时,一般为了操作方便不允许消息包卷绕,就需要填充特殊值(例如0xFFFF)指示该尾端空间无效,并将消息包放置到队列头部。接收时需要和特殊值比较,判断是正常消息包还是卷绕时的填充值。如果正常消息包中包含特殊值,就会产生冲突。

因此,现有技术还有待于改进和发展。

发明内容

本发明的目的在于提供一种基于共享存储器的双CPU通信方法,针对前述两种方法的缺点,提供了一种支持可变消息长度,高效、可靠的双CPU通信方法。

本发明的技术方案如下:

一种基于共享存储器的双CPU通信方法,在第一CPU和第二CPU之间存在双向传输通道,每一通道使用两个环形队列,一个用于存放消息索引,一个用于存放消息实体;并且每一通道传输过程包括以下步骤:

A、初始化流程:通信前完成本CPU负责的队列读写指针的初始化;

B、发送消息流程:将新消息实体写入消息实体队列,并更新消息实体队列写指针,即指向新消息实体之后的可用单元;更新消息索引队列写指针所指单元的内容,指向消息实体队列中的新消息实体,并更新消息索引队列写指针指向下一单元;

C、接收消息流程:消息索引队列读指针前移一个单元,根据该单元中的索引计算待处理消息实体的读指针,并更新消息索引队列读指针;读取待处理消息实体并处理。

所述的方法,其中,所述步骤A还包括:

写指针指向队列头部第一个单元,读指针指向队列尾部最后一个单元。

所述的方法,其中,所述步骤B还包括:

B01、根据消息实体队列读、写指针和消息实体队列大小,判断是否可以写入新消息实体;是,则继续;否,则延迟后再发;

B02、根据消息索引队列读、写指针和消息索引队列大小,判断是否可以写入新消息索引;是,则继续;否,则延迟后再发。

所述的方法,其中,所述步骤C还包括:

C01、根据消息索引队列读、写指针和消息索引队列大小,计算待处理消息条数,如果没有消息处理则返回。

所述的方法,其中,所述步骤C中,所述消息索引队列读指针前移一个单元时,如果前移到达消息索引队列大小则回绕到0。

所述的方法,其中,所述步骤C中还包括:

C02、更新消息实体队列读指针;

C03、待处理消息条数减1;

循环处理直到待处理消息条数为0。

所述的方法,其中,所述消息索引是大小固定为4字节、指向消息实体的指针;所述消息实体大小可变。

所述的方法,其中,所述每个环形队列通过存放在邮箱中的读写指针管理,写指针表示发送方可写,接收方只读;读指针表示发送方只读,接收方可写。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/200610103231.0/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top