[发明专利]一种基于共享存储器的双CPU通信方法有效
申请号: | 200610103231.0 | 申请日: | 2006-07-14 |
公开(公告)号: | CN101105786A | 公开(公告)日: | 2008-01-16 |
发明(设计)人: | 江帷;官华伯;张绪广 | 申请(专利权)人: | 中兴通讯股份有限公司 |
主分类号: | G06F15/167 | 分类号: | G06F15/167 |
代理公司: | 北京安信方达知识产权代理有限公司 | 代理人: | 王漪;王继长 |
地址: | 518057广东省深圳市南山*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 共享 存储器 cpu 通信 方法 | ||
1.一种基于共享存储器的双CPU通信方法,在第一CPU和第二CPU之间存在双向传输通道,每一通道使用两个环形队列,一个用于存放消息索引,一个用于存放消息实体;并且每一通道传输过程包括以下步骤:
A、初始化流程:通信前完成本CPU负责的队列读写指针的初始化;
B、发送消息流程:将新消息实体写入消息实体队列,并更新消息实体队列写指针,即指向新消息实体之后的可用单元;更新消息索引队列写指针所指单元的内容,指向消息实体队列中的新消息实体,并更新消息索引队列写指针指向下一单元;
C、接收消息流程:消息索引队列读指针前移一个单元,根据该单元中的索引计算待处理消息实体的读指针,并更新消息索引队列读指针;读取待处理消息实体并处理。
2.根据权利要求1所述的方法,其特征在于,所述步骤A还包括:
写指针指向队列头部第一个单元,读指针指向队列尾部最后一个单元。
3.根据权利要求2所述的方法,其特征在于,所述步骤B还包括:
B01、根据消息实体队列读、写指针和消息实体队列大小,判断是否可以写入新消息实体;是,则继续;否,则延迟后再发;
B02、根据消息索引队列读、写指针和消息索引队列大小,判断是否可以写入新消息索引;是,则继续;否,则延迟后再发。
4.根据权利要求3所述的方法,其特征在于,所述步骤C还包括:
C01、根据消息索引队列读、写指针和消息索引队列大小,计算待处理消息条数,如果没有消息处理则返回。
5.根据权利要求4所述的方法,其特征在于,所述步骤C中,所述消息索引队列读指针前移一个单元时,如果前移到达消息索引队列大小则回绕到0。
6.根据权利要求5所述的方法,其特征在于,所述步骤C中还包括:
C02、更新消息实体队列读指针;
C03、待处理消息条数减1;
循环处理直到待处理消息条数为0。
7.根据权利要求1-6任一所述的方法,其特征在于,所述消息索引是大小固定为4字节、指向消息实体的指针;所述消息实体大小可变。
8.根据权利要求7所述的方法,其特征在于,所述每个环形队列通过存放在邮箱中的读写指针管理,写指针表示发送方可写,接收方只读;读指针表示发送方只读,接收方可写。
9.根据权利要求8所述的方法,其特征在于,对所述邮箱采用镜像保护,以避免指针的同时读写冲突。
10.根据权利要求8所述的方法,其特征在于,所述发送方发送消息的同时,通过中断产生和控制装置设置对方的中断状态标志位;所述接收方通过响应中断接收,或用轮询的方式接收。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200610103231.0/1.html,转载请声明来源钻瓜专利网。