[发明专利]通信系统消息分类输出方法及控制器有效
申请号: | 201010620123.7 | 申请日: | 2010-12-31 |
公开(公告)号: | CN102111332A | 公开(公告)日: | 2011-06-29 |
发明(设计)人: | 王红春 | 申请(专利权)人: | 中国航空工业集团公司第六三一研究所 |
主分类号: | H04L12/56 | 分类号: | H04L12/56 |
代理公司: | 西安智邦专利商标代理有限公司 61211 | 代理人: | 徐平 |
地址: | 710068 *** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 通信 系统 消息 分类 输出 方法 控制器 | ||
技术领域
本发明属于计算机硬件技术,涉及交换机和通信节点中消息队列管理的硬件电路实现方法。
背景技术
在高速通信系统设计中,为了保证系统的传输效率、通信服务质量、消息通信传输确定性、带宽隔离以及消息传输效率,需要在通信节点中构建多优先级队列,交换机中则需要构建虚拟输出队列,而这些队列的实现需要大量的存储器资源。
通信调度管理必须基于消息的分类存储实现,而在传统通信系统中为每个消息固定分配存储空间,存储资源利用率不够。在交换机和通信节点的硬件往往受限于FPGA的存储资源,难以实现大规模交换和消息确定性调度,FPGA的存储资源已经成为制约通信系统规模和通信带宽的瓶颈。
传统的消息队列存储管理中每个队列采用独立存储器分配,每个队列需要分配固定的存储器资源。例如交换机设计时,为了避免链头堵塞,满足线速传输要求,每个输入端口需要针对每一个输出端口建立一组FIFO队列。通信节点设计中,需要为每个优先级分配一组FIFO。该方法对存储资源需求量大,且利用率不高,FPGA实现难度大,成本高。
发明内容
本发明提供一种通信系统消息分类输出方法及控制器,主要解决了现有方法及控制器对存储资源需求量大、利用率低、实现难度大、成本高的问题。
本发明的技术解决方案如下:
该通信系统消息分类输出方法包括以下步骤:
1]系统初始化
1.1]存储单元划分
1.1.1]存储单元为用于存放消息的一片存储区域,逻辑上划分为多个等长的消息存储块,每个消息存储块区可存放一条消息;
1.1.2]每个消息存储块按照顺序从0开始编号;
1.1.3]每个消息存储块编号与消息存储单元地址建立对应关系;
1.2]消息属性表初始化
建立一个内容关联存储器CAM表,提供消息属性表用以构建消息标识到消息输出队列索引的映射关系;
1.3]空闲消息块索引表初始化
1.3.1]建立一个空闲索引队列,队列深度与消息存储块数目相等,队列中单元用于存放消息编号,队列支持数据读、写操作,并提供队列空、满标记;
1.3.2]将所有的消息存储块编号加入到空闲消息缓冲块索引队列;
1.4]消息查找表初始化
消息查找表为一个二维索引表,二维索引表地址和内容分别对应当前消息存储块编号和下一个消息存储块编号,以当前消息存储块编号作为地址查找二维索引表的内容即为下一个消息存储块编号,而当某个消息的下一个消息块与该消息存储块编号相同,则标识该消息块为消息虚拟输出队列的队尾;
1.5]输出控制表初始化
输出控制表分别记录所有输出队列的消息块个数和队头消息存储块编号,系统初始化时将每个输出队列的消息块个数置0,代表输出队列为空;
2]消息的写入过程
将消息写入到空闲的消息存储块中,并根据消息的标识,更新输出控制表中对应输出队列信息以及消息查找表;
3]消息读取过程
从虚拟输出队列中读取消息,输出控制可采取公平轮转调度算法或,输出控制主要按照输出链表实现分类输出访问,输出队列个数可配置,典型个数为:2-256个。输出控制输出队列深度可配置,典型值为:4、8、16。
以上所述步骤2具体是:
a接收到消息,判断空闲索引队列是否空,如果空闲索引队列为空,表示没有空闲的存储块,则直接丢弃该消息返回,否则进入b;
b.从空闲消息块索引表预取第一个空闲的存储块编号MsgBlockNo;
c.计算空闲存储块的存储单元地址,计算公式:MsgBlockAddr=MsgMaxLen*MsgBlockNo;
d.空闲存储块中预留前4个字节用于存放消息长度,从MsgBlockAddr+4的地址存放消息的内容,将消息写入到空闲存储块中,并进行消息长度计数,待消息接收完后,将消息长度写入到空闲存储块前4个字节处;
e.解析消息标识,根据消息标识查消息属性表,如果命中,则获取输出队列编号,否则丢弃该消息,进入a;
f.根据输出队列编号查找控制表对应消息个数,
f1如果消息个数等于系统设置的输出队列的消息块最大个数时,则进入丢弃该消息,进入a;
f2如果消息个数为0,则将消息个数置1,从空闲消息块索引表取出该空闲的存储块编号MsgBlockNo,将存储块编号MsgBlockNo作为该输出队列的队头;将消息查找表MsgBlockNo处写入MsgBlockNo,代表MsgBlockNo为队尾;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国航空工业集团公司第六三一研究所,未经中国航空工业集团公司第六三一研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010620123.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种评估方法
- 下一篇:一种光纤压力传感器的密封方法