通信系统消息分类输出控制器的制作方法

文档序号:7908677阅读:156来源:国知局
专利名称:通信系统消息分类输出控制器的制作方法
技术领域
本发明属于计算机硬件技术,涉及交换机和通信节点中消息队列管理的控制器。
背景技术
在高速通信系统设计中,为了保证系统的传输效率、通信服务质量、消息通信传输确定性、带宽隔离以及消息传输效率,需要在通信节点中构建多优先级队列,交换机中则需要构建虚拟输出队列,而这些队列的实现需要大量的存储器资源。通信调度管理必须基于消息的分类存储实现,而在传统通信系统中为每个消息固定分配存储空间,存储资源利用率不够。在交换机和通信节点的硬件往往受限于FPGA的存储资源,难以实现大规模交换和消息确定性调度,FPGA的存储资源已经成为制约通信系统规模和通信带宽的瓶颈。传统的消息队列存储管理中每个队列采用独立存储器分配,每个队列需要分配固定的存储器资源。例如交换机设计时,为了避免链头堵塞,满足线速传输要求,每个输入端口需要针对每一个输出端口建立一组FIFO队列。通信节点设计中,需要为每个优先级分配一组FIFO。该方法对存储资源需求量大,且利用率不高,FPGA实现难度大,成本高。
发明内容本发明提供一种通信系统消息分类输出控制器,主要解决了现有控制器对存储资源需求量大、利用率低、实现难度大、成本高的问题。本发明的技术解决方案如下该通信系统消息分类输出控制器,包括输入控制单元1、存储器单元2、输出控制单元3、消息属性表单元4、空闲消息块索引表单元5、消息查找表单元6、输出控制表单元7; 所述输入控制单元1的输入端分别与输入信号、消息属性表单元4的输出端、空闲消息块索引表单元5的输出端连接,输入控制单元1的输出端分别与存储器单元2、消息查找表单元 6的输入端、输出控制表单元7的输入端连接;所述存储器单元2的输入端与输入控制单元 1的输出端连接,存储器单元2的输出端与输出控制单元3的输入端连接;所述输出控制单元3的输入端分别与存储器单元2的输出端、消息属性表单元4、输出控制表单元7的输出端连接;输出控制单元3的输出端与输出信号连接;所述消息属性表的输入端与输入信号连接。以上所述存储器单元2为双端口存储器。本发明的优点如下本发明提供的通信系统消息分类输出控制器,采用链式结构共享存储管理机制, 有效地提高了存储器资源利用率,降低硬件设计难度和成本,提升了单芯片设计规模,保证了通信系统具有很好传输服务质量。本发明提供的通信系统消息分类输出控制器,基于有限存储资源,采用共享存储资源的消息队列管理机制,实现消息分类输出控制器,有效地解决存储资源的瓶颈问题,有利于在现有FPGA芯片基础上实现更大规模交换以及更确定性的消息调度。本发明提供的通信系统消息分类输出控制器传输效率高,采用硬件电路实现消息队列管理控制、满足通信高速传输要求。本发明提供的通信系统消息分类输出控制器资源开销小在共享存储器基础上,采用链式管理管理,提高了存储资源利用率,减少系统设计对存储资源需求。本发明提供的通信系统消息分类输出控制器调度算法灵活,消息队列管理控制器采用消息的分类输出,可支持各种调度算法实现。本发明提供的通信系统消息分类输出控制器设计难度小,有效提高单芯片内通信系统设计规模,系统内部互连实现简单,保证通信系统具有很好传输服务质量,降低通信系统设计难度。本发明提供的通信系统消息分类输出控制器灵活性好,消息队列管理控制器分类的输出端口个数可配置,输出队列深度可配置,具有很好的灵活性。

图1是消息分类输出控制器结构图。
具体实施方式
该通信系统消息分类输出控制器,包括输入控制单元1、存储器单元2、输出控制单元3、消息属性表单元4、空闲消息块索引表单元5、消息查找表单元6、输出控制表单元7; 所述输入控制单元1的输入端分别与输入信号、消息属性表单元4的输出端、空闲消息块索引表单元5的输出端连接,输入控制单元1的输出端分别与存储器单元2、消息查找表单元 6的输入端、输出控制表单元7的输入端连接;所述存储器单元2的输入端与输入控制单元 1的输出端连接,存储器单元2的输出端与输出控制单元3的输入端连接;所述输出控制单元3的输入端分别与存储器单元2的输出端、消息属性表单元4、输出控制表单元7的输出端连接;输出控制单元3的输出端与输出信号连接;所述消息属性表的输入端与输入信号连接。输入控制单元1获取空闲消息块索引,将消息写入空闲消息存储块中,根据消息目标地址构建输出消息链表和输出控制表。存储器单元2采用双端口存储器作为共享存储资源,用于存放消息内容;输出控制单元3可获取多个输出队列状态,可按照一定策略选择读取任意输出队列中的第一条消息;消息属性表单元4提供消息标识到消息输出队列索引的映射关系。空闲消息块索引表单元5主要存放空闲消息存储块编号。消息查找表单元6用于查找当前消息存储块编号的下一个消息存储块编号。输出控制表单元7分别记录消息队列中的队头消息存储块编号和消息块个数。当消息块个数为0,代表队列为空,当消息块个数不为0,代表队列中有消息,队头消息存储块编号为队列中第一条消息,通过查找消息查找表可获取消息队列中的后续消息。本发明的原理如下在网络交换机或通信节点硬件设计中,通信系统消息分类输出控制器采用共享存
4储和链表管理方式,实现消息分类存储和检索。采用共享存储单元用作消息存储,用于存放消息共享存储单元为一片连续的存储区域,逻辑上划分为多个等长的消息存储块,按照顺序进行编号,每个消息存储块区可存放一条消息。在系统初始化时,将所有的消息存储块索引放入到一个空闲消息索引表中;消息写入时,从空闲消息块索引表中获取消息存储块索引,计算消息存储块地址,将消息内容写入到对应的消息存储块,根据消息标识查找消息属性表获取输出队列索引,将消息块索引更新到输出控制表,输出控制表记录每个输出队列队头消息块索引,消息链表记录消息索引的先后关系;消息读取时,输出控制单元3主要按照输出控制表和消息链表实现消息分类输出访问,从输出控制表中可获取消息队列的第一个消息块,查找消息查找表获取后续消息块。从消息存储块中读取消息后将消息存储块索引放回空闲消息索引表中用于接收新的消息。该通信系统消息分类输出控制器的使用方法包括以下步骤1]系统初始化1. 1]存储单元划分1. 1. 1]存储单元为用于存放消息的一片存储区域,逻辑上划分为多个等长的消息存储块,每个消息存储块区可存放一条消息;消息存储块区大小(MsgMaxLen)取值为2η字节,64到4Κ字节;1. 1.2]每个消息存储块按照顺序从0开始编号;消息存储块编号标记为 MsgBlockNo ;1. 1. 3]每个消息存储块编号与消息存储单元地址建立对应关系;消息存储块地址MsgBlockAddr是根据消息存储块编号MsgBlockNo以及消息最大长度MsgMaxLen确定;1. 2]消息属性表初始化建立一个内容关联存储器CAM表,提供消息属性表用以构建消息标识到消息输出队列索引的映射关系;1. 3]空闲消息块索引表初始化1. 3. 1]建立一个空闲索引队列,队列深度与消息存储块数目相等,队列中单元用于存放消息编号,队列支持数据读、写操作,并提供队列空、满标记;1. 3. 2]将所有的消息存储块编号加入到空闲消息缓冲块索引队列;1.4]消息查找表初始化消息查找表为一个二维索引表,二维索引表地址和内容分别对应当前消息存储块编号和下一个消息存储块编号,以当前消息存储块编号作为地址查找二维索引表的内容即为下一个消息存储块编号,而当某个消息的下一个消息块与该消息存储块编号相同,则标识该消息块为消息虚拟输出队列的队尾;其具体是二维表地址和内容分别对应当前消息存储块编号和下一个消息存储块编号,以当前消息存储块编号作为地址查找二维表的内容,即为下一个消息存储块编号,通过消息链表建立消息的先后关系;在系统初始化过程中,将消息查找表地址的值作为内容写入到相对应的地址,表示每个消息块的下一个为其本身,即该消息块为队尾;1. 5]输出控制表初始化[0045]输出控制表分别记录所有输出队列的消息块个数和队头消息存储块编号,系统初始化时将每个输出队列的消息块个数置0,代表输出队列为空;输出队列的消息块最大个数由系统设置,典型值为4、8、16 ;2]消息的写入过程将消息写入到空闲的消息存储块中,并根据消息的标识,更新输出控制表中对应输出队列信息以及消息查找表;其具体是a接收到消息同步头,判断空闲索引队列是否空,如果空闲索引队列为空,表示没有空闲的存储块,则直接丢弃该消息返回,否则进入b ;b.从空闲消息块索引表预取第一个空闲的存储块编号MsgBlockNo ;c.计算空闲存储块的存储单元地址,计算公式=MsgBlockAddr = MsgMaxLen^MsgBlockNo ;d.空闲存储块中预留前4个字节用于存放消息长度,从MsgBlockAddr+4的地址存放消息的内容,将消息写入到空闲存储块中,并进行消息长度计数,待消息接收完后,将消息长度写入到空闲存储块前4个字节处;e.解析消息标识,根据消息标识查消息属性表,如果命中,则获取输出队列编号, 否则丢弃该消息,进入a;f.根据输出队列编号查找控制表对应消息个数,Π如果消息个数等于系统设置的输出队列的消息块最大个数时,则进入丢弃该消息,进入a ;f2如果消息个数为0,则将消息个数置1,从空闲消息块索引表取出该空闲的存储块编号MsgBlockNo,将存储块编号MsgBlockNo作为该输出队列的队头;将消息查找表 MsgBlockNo 处写入 MsgBlockNo,代表 MsgBlockNo 为队尾;f3如果消息个数不为0,则将消息个数加1,从该输出队列队头存储块编号,通过消息查找表获取下一个存储块编号,直到找到队尾MsgTailBlockNo ;查找下一个存储块编号是以当前存储块编号作为地址读取消息查找表内容 MsgNextBlockNo, MsgNextBlockNo为下一个存储块编号;判断队尾的依据是当前消息块编号的下一个存储块编号为其本身,即消息查找表的内容与其地址相等;h.经f2与f3步骤处理后,从空闲消息块索引表取出该空闲的存储块编号 MsgBlockNo,将消息查找表 MsgBlockNo 处写入 MsgBlockNo,代表 MsgBlockNo 为队尾; 将MsgTailBlockNo处写入MsgBlockNo,代表MsgTailBlockNo存储块的下一个存储块为 MsgBlockNo,从而将消息加入到该输出队列的队尾。3]消息读取过程从虚拟输出队列中读取消息,可采用输出控制采用公平轮转调度算法或优先级调度算法,输出控制主要按照输出链表实现分类输出访问,输出队列个数可配置,典型个数为2-256个。输出控制输出队列深度可配置,典型值为4、8、16,其具体是判断虚拟输出队列中消息个数是否为0,如果为0,则退出;从虚拟输出队列中获取队头存储块编号MsgBlockNo ;根据队头存储块编号计算存储块的存储单元地址,计算公式:MsgBlockaddr = MsgMaxLen^MsgBlockNo ;从 MsgBlockaddr 前 4 个字节用于存放消息长度;从MsgBlockaddr+4的地址读取消息的内容;从消息查找表查找MsgBlockNo的下一个存储块编号MsgNextBlockNo ;将虚拟输出队列的消息个数减1,将下一个存储块编号 MsgNextBlockNo置为当前虚拟输出队列的队头。
权利要求1.一种通信系统消息分类输出控制器,其特征在于包括输入控制单元、存储器单元、 输出控制单元、消息属性表单元、空闲消息块索引表单元、消息查找表单元、输出控制表单元;所述输入控制单元的输入端分别与输入信号、消息属性表单元的输出端、空闲消息块索引表单元的输出端连接,输入控制单元的输出端分别与存储器单元、消息查找表单元的输入端、输出控制表单元的输入端连接;所述存储器单元的输入端与输入控制单元的输出端连接,存储器单元的输出端与输出控制单元的输入端连接;所述输出控制单元的输入端分别与存储器单元的输出端、消息属性表单元、输出控制表单元的输出端连接;输出控制单元的输出端与输出信号连接;所述消息属性表的输入端与输入信号连接。
2.根据权利要求1所述通信系统消息分类输出控制器,其特征在于所述存储器单元为双端口存储器。
专利摘要本实用新型提供一种通信系统消息分类输出控制器,主要解决了现有方法及控制器对存储资源需求量大、利用率低、实现难度大、成本高的问题。该通信系统消息分类输出控制器,包括输入控制单元、存储器单元、输出控制单元、消息属性表单元、空闲消息块索引表单元、消息查找表单元、输出控制表单元;本实用新型提供的通信系统消息分类输出方法及控制器灵活性好,消息队列管理控制器分类的输出端口个数可配置,输出队列深度可配置,具有很好的灵活性。
文档编号H04L12/56GK201976132SQ20102069612
公开日2011年9月14日 申请日期2010年12月31日 优先权日2010年12月31日
发明者王红春 申请人:中国航空工业集团公司第六三一研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1