[发明专利]一种使用处理器实现多处理器间通信的方法有效
申请号: | 201810925318.9 | 申请日: | 2018-08-14 |
公开(公告)号: | CN109144749B | 公开(公告)日: | 2021-07-27 |
发明(设计)人: | 葛松芬 | 申请(专利权)人: | 苏州硅岛信息科技有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54;G06F9/52 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 215000 江苏省苏州市相城*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 使用 处理器 实现 通信 方法 | ||
1.一种使用处理器实现多处理器间通信的方法,包括:
使用一个处理器和一个存储器来搭建通信队列实现各处理器间的通信;所述存储器必须能被系统中参与通信的各个处理器都能访问到;所述通信队列由队列控制字和队列中存放消息的消息存储区构成,所述队列控制字存放于队列控制字存储区;
当系统集成多个通信队列时,将多个通信队列组成队列堆;
队列控制字存储区第一个单元存放队列新建锁,第二个单元存放队列个数;
一个队列控制字包括7个:
(1)队列状态字STATE:存放本队列运行状态的说明信息,包括队列状态ST,队列编号ID;ST、ID的位宽可以根据实际情况灵活设定;队列状态ST指示本队列的状态,用于队列需求方和通信处理器之间的握手和通信;
(2)写指针控制字WPTR:记录消息写入方当前在存储器中的写入地址,此地址是下一个要写的单元地址;每当写入方完成写操作后会更新此寄存器;
(3)读指针控制字RPTR:记录消息读取方当前在存储器中的读取地址,此地址是下一个要读的单元地址;每当读取方完成读操作后会更新此控制字;
(4)有效单元数控制字VALIDNUM:记录当前已经写入但还未被读取的单元个数;此控制字的数值是由消息控制器内部逻辑电路计算完成,不需要外部处理器干预;此控制字可供消息写入方和读取方读取;
(5)中断上报控制字INTCTRL:控制是否要向消息读取方发出中断,以及有效单元数达到多少时才会向消息读取方发出中断;
(6)存储器基址控制字QBASE:队列中存放的消息数据是存放在一块存储器中的;存储器基址控制字QBASE用于记录此存储器在系统存储空间中的首地址;
(7)队列容量控制字QSIZE:记录消息存放存储区域的容量;
写入方在写入时要计算“WVALID=QSIZE-VALIDNUM”,WVALID即为最多能写入的队列单元个数,判断WVALID数值是否大于等于本次要写入的数据量,如果大于等于则可写入,并更新WPTR,否则则不能写入,继续等待;
读取方可以通过设置中断上报控制字,通过中断引发中断处理程序完成消息读取操作;也可以通过直接查询的方式;当通过查询的方式时,要判断VALIDNUM是否大于等于本次要读取的数据量,如果大于等于则读取,并更新RPTR,否则继续等待。
2.根据权利要求1所述的一种使用处理器实现多处理器间通信的方法,其特征在于:所述队列状态字其包含的状态有:
(1)队列无效:说明本队列无效且是最后1个队列,由于各个队列的控制字是连续存放的,无效队列永远是位于最后1个,这也说明队列控制字区域的结束;当然当其他处理器需要新增队列时,则需修改ST数值为“队列建立请求”,这样通信处理器就会新增7个控制字,6个是本队列的控制字,最后1个是下一个队列的状态字,下一个队列的状态字的ST继续设置为无效;
(2)队列建立请求:通信处理器如果检测到最后1个队列状态字为“队列建立请求”,则会新建队列,并把新建队列的下一个队列的状态字的ST设置为无效;
(3)队列正常:指示本队列可以正常操作;
(4)队列删除请求:当队列的使用方不再需要此队列时,设置为此状态,通信处理器会回收本队列;回收本队列时,队列控制字不会回收,但其消息存储区可以回收,也可以不回收;如果不回收则留给未来其它通信使用;
(5)队列删除确认:通信处理器已经确认了队列删除请求,并把该队列加入了通信处理器内部维护的“可使用队列编号组”;“可使用队列编号组”用于记录已经删除的队列编号,当需要新建队列时,通信处理器优先把“可使用队列编号组”中记录的队列分配给使用方,并从“可使用队列编号组”删除分配出去的队列;如果“可使用队列编号组”中没有队列记录,则会新建队列;
(6)队列无效但队列ID有效:这种状态出现在如下情况下:当队列需求方发出队列新建请求,即将最后1个队列状态字的ST设置为队列建立请求时,如果通信处理器的“可使用队列编号组”中有之前回收的可再使用的队列,则会把最后1个队列状态字设为本状态数值,同时把“可使用队列编号组”中要分配给队列需求方使用队列的ID写入最后1个队列的状态字的ID字段;队列需求方发现最后1个队列状态字的ST处于此状态时,读取最后1个队列的状态字的ID字段,将最后1个队列状态字的ST设置为队列无效,并使用读到的ID指定的队列;状态字ID字段说明队列的编号。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州硅岛信息科技有限公司,未经苏州硅岛信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810925318.9/1.html,转载请声明来源钻瓜专利网。