发明名称 通信系统消息分类输出方法及控制器
摘要 本发明提供一种通信系统消息分类输出方法及控制器,主要解决了现有方法及控制器对存储资源需求量大、利用率低、实现难度大、成本高的问题。该通信系统消息分类输出方法包括以下步骤:1]系统初始化;2]消息的写入过程;3]消息读取过程。该通信系统消息分类输出控制器,包括输入控制单元、存储器单元、输出控制单元、消息属性表单元、空闲消息块索引表单元、消息查找表单元、输出控制表单元;本发明提供的通信系统消息分类输出方法及控制器灵活性好,消息队列管理控制器分类的输出端口个数可配置,输出队列深度可配置,具有很好的灵活性。
申请公布号 CN102111332B 申请公布日期 2013.04.03
申请号 CN201010620123.7 申请日期 2010.12.31
申请人 中国航空工业集团公司第六三一研究所 发明人 王红春
分类号 H04L12/861(2013.01)I;H04L12/741(2013.01)I 主分类号 H04L12/861(2013.01)I
代理机构 西安智邦专利商标代理有限公司 61211 代理人 徐平
主权项 一种通信系统消息分类输出方法,其特征在于,包括以下步骤: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]消息的写入过程将消息写入到空闲的消息存储块中,并根据消息的标识,更新输出控制表中对应输出队列信息以及消息查找表;所述步骤2具体是:a接收到消息后判断空闲索引队列是否空,如果空闲索引队列为空,表示没有空闲的消息存储块,则直接丢弃该消息返回,否则进入b;b.从空闲消息存储块索引表预取第一个空闲的消息存储块编号MsgBlockNo;c.计算空闲消息存储块地址,计算公式:MsgBlockAddr =  MsgMaxLen * MsgBlockNo,MsgMaxLen为消息存储块大小;d.空闲消息存储块中预留前4个字节用于存放消息长度,从MsgBlockAddr+4的地址存放消息的内容,将消息写入到空闲消息存储块中,并进行消息长度计数,待消息接收完后,将消息长度写入到空闲消息存储块前4个字节处;e.解析消息标识,根据消息标识查消息属性表,如果命中,则获取输出队列编号,否则丢弃该消息,进入a;f.根据输出队列编号查找输出控制表对应消息个数;f1如果消息个数等于系统设置的输出队列的消息存储块最大个数时,则丢弃该消息,进入a;f2如果消息个数为0,则将消息个数置1,从空闲消息存储块索引表取出该空闲的消息存储块编号MsgBlockNo,将消息存储块编号MsgBlockNo作为该输出队列的队头;将消息查找表MsgBlockNo处写入MsgBlockNo,代表MsgBlockNo为队尾;f3如果消息个数不为0,则将消息个数加1,该输出队列队头消息存储块编号,通过消息查找表获取下一个消息存储块编号,直到找到队尾MsgTailBlockNo;h.经f2与f3步骤处理后,从空闲消息存储块索引表取出该空闲的消息存储块编号MsgBlockNo,将消息查找表MsgBlockNo处写入MsgBlockNo,代表MsgBlockNo为队尾;将MsgTailBlockNo处写入MsgBlockNo,代表MsgTailBlockNo消息存储块的下一个消息存储块为MsgBlockNo,从而将消息加入到该输出队列的队尾;3]消息读取过程从输出队列中读取消息。
地址 710068 陕西省西安市太白北路156号
您可能感兴趣的专利