一种高速数据帧无冲突入队处理的装置及方法制造方法及图纸

技术编号:17784013 阅读:91 留言:0更新日期:2018-04-22 15:19
本发明专利技术公开一种数据帧无冲突入队处理的装置及方法,其装置包括CPU模块、入队调度模块、冲突检测模块、队列信息管理模块、缓存管理模块、接收总线模块和缓存区模块。方法包括:读取申请入队帧请求,进行门限仲裁,为满足要求的数据帧分配空闲缓存地址,由接收总线将数据帧搬移到缓存区对应地址中;根据冲突检测队首信息更新冲突情况,确定是否提前更新队首信息,以及根据队列长度信息更新冲突情况,修正队列长度更新值,完成数据帧的入队处理。本发明专利技术支持数据帧并行入队出队处理情况下,解决了队列信息更新冲突问题,提高了数据帧入队处理速度。

【技术实现步骤摘要】
一种高速数据帧无冲突入队处理的装置及方法
本专利技术属于通信
,更进一步涉及网络通信
中的一种高速数据帧无冲突入队处理的装置及方法。本专利技术可用于通信网络系统中对大容量交换设备实现高速数据帧的入队处理,同时保证无队列信息更新冲突。
技术介绍
随着科技日新月异发展,人们对网络业务的需求越来越大,对数据传输速率要求越来越高。以太网也从百兆、千兆逐步向万兆不断发展,来适应网络的需求。光纤可以传输10G、40G甚至100G数据,但是仅仅是解决传输问题,网络节点对数据的处理性能是制约网络吞吐率的关键。作为通信网络节点的关键网络设备,以太网交换机或者路由器的性能直接影响网络的整体性能,进而影响用户的通信体验。队列管理技术广泛应用于基于存储转发的交换设备中,如路由器、交换机。存储转发机制中,在输出端口流量控制情况下或者接收的数据帧未能及时调度到发送端口情况下,数据帧就需要存储下来。为了保证服务质量(QualityofService,QoS),交换设备从接口接收数据帧后,会根据需要发送的目的端口或者节点,将数据帧按照优先级分成若干个虚拟输出队列(VOQ)。数据帧的入队处理主要完成数据帧的接收存储,并维护好队列信息。具体包括完成数据帧申请仲裁,将不满足入队条件的数据帧丢弃,常见的是尾部丢弃(Tail-Drop,TD),即队列的深度超过阈值后,将需要链接的队尾的数据帧丢弃;满足入队条件的数据帧分配缓存,更新队列信息,并由总线处理模块将数据帧搬移到分配缓存单元中,入队处理的性能高低直接影响交换机或者路由器线速处理数据帧的能力。中兴通信股份有限公司在其申请的专利文献“数据包入队和出队管理方法及数据包处理装置”(申请号:201110430362.0,公开号:CN103179050A)中提出的数据包入队和出队管理方法及数据包处理装置。该装置包括初始化模块、入队次数更新模块及PMAU回收模块,初始化模块,用于将预设的数据包初始化到外接存储器中;入队次数更新模块用于在数据包入队或者出队时,更新上述数据包的入队次数;PMAU回收模块,用于判断数据包的PMAU是否需要回收,并在需要回收时,回收上述数据包的PMAU。该装置存在的不足之处是,第一是入队次数更新模块只维护一个队列,无法区分数据帧优先级等属性,不能保证服务质量;该方法实施步骤是:第一,根据数据包处理装置支持的数据包最大多播复制份数,为数据包处理装置设置初始入队次数;第二,将初始化入队次数初始化到外接存储器中;第三,数据包入队或者出队时,更新上述数据包的入队次数;第四,判断数据包的PMAU是否需要回收,是则有PMAU回收模块回收。该方法存在的不足之处是,入队和出队操作无法并行更新,同一时刻只能更新处理入队信息或者出队信息,限制了入队处理速率,另一方面当数据帧到达速率提高时,该方式会造成在入队在执行出队操作时数据帧等待,导致拥塞发生甚至丢帧。西安电子科技大学、中国电子科技集团公司第五十四研究所在其申请的专利文献“一种数据帧预入队处理的装置及方法”(申请号:201610473557.6,公开号:CN106130930A)中提出了一种数据帧入队处理的方法及装置。该装置为了解决由于入队处理速度慢,入队结果产生之前总线都在空闲状态,导致数据总线利用率低,采用预入队方式提前申请缓存,总线可以提前开始搬移数据帧,减少了入队处理的等待。其装置包括入队调度模块、总线控制模块、调度结果先入先出队列模块、入队结果先入先出队列模块、缓存分配模块、更新模块、缓存区模块。该装置存在的不足之处是,缺少冲突检测处理模块,在入队和出队操作同时更新操作时,无法解决队列信息更新冲突问题。该方法的实施步骤是,入队调度模块向缓存分配模块预申请一个缓存地址,当数据帧到来时,总线控制模块将数据帧前64字节搬到缓存区模块中,搬移完成后,检测入队结果,若成功,将数据帧剩余部分搬进缓存区模块,更新模块更新优先级队列计数寄存器;若失败,则丢弃数据帧剩余部分。该方法存在的不足之处在于:第一是每次申请空闲缓存,再进行搬移,数据帧需要等待空闲地址分配提供后,才能进行搬移操作,限制了处理速率;另外一方面,该预入队方法,在低速系统中,总线搬移比较慢情况下,可以通总线提前搬移数据帧,提高总线利用率;但在万兆以上高速交换系统中,总线搬移比较快,提前搬完后依旧会等待处理结果,将无法提高总线利用率,进一步限制了入队处理速率。
技术实现思路
本专利技术的目的在于克服上述入队处理的不足,提出一种高速数据帧无冲突入队处理的装置和方法,在入队和出队处理并行操作情况下,解决入队出队并行操作更新冲突问题,实现支持至少20Gbps高速数据帧的线速入队处理。为了实现上述目的,本专利技术方法的思路是:首先初始化队列信息和缓存信息,缓存管理提前将第一个空闲缓存地址给入队调度,缓存地址采用先使用后申请;然后,入队调度从入队申请中提取入队队列号,查询队列门限信息和队列长度信息,满足最大门限要求情况下,将缓存地址、数据帧第一个缓存地址标志、数据帧最后一个地址标志和有效长度等信息写入入队调度结果先入先出队列FIFO中,接收总线根据该入队调度结果先入先出队列FIFO中信息,将数据帧搬移到缓存区中;最后更新队列信息,在处理入队数据帧第一个缓存地址情况下,通过冲突检测是否存在队首更新冲突,确定是否更新队首信息;在处理数据帧数据帧最后一个缓存地址情况下,更新队尾信息,同时根据更新队列长度信息的三种情况,修正更新值,完成队列徐细腻的更新。实现支持至少20Gbps高速数据帧的线速入队处理,并解决入队出队并行操作情况下,无队列信息更新冲突。为了实现上述目的,本专利技术的装置,包括CPU模块、入队调度模块、冲突检测模块、队列信息管理模块、缓存管理模块、接收总线模块和缓存区模块;所述CPU模块输入端与入队调度模块输出端相连,CPU模块的输出端与入队调度模块输入端相连;入队调度模块的输入端与入队申请、CPU模块输出端、缓存管理模块输出端、队列信息管理模块输出端相连;入队调度模块输出端与CPU模块输入端、冲突检测输入端、队列信息管理模块输入端、接收总线模块输入端相连;冲突检测模块输入端与入队调度模块输出端、出队执行更新操作标志信号相连;冲突检测模块输出端与队列信息管理模块输入端相连;队列信息管理模块输入端与入队调度模块输出端、冲突检测模块输出端相连;队列信息管理模块输出端与入队调度模块输入端相连;缓存管理模块输入端与入队调度模块输出端相连;缓存管理模块输出端与入队调度模块输入端相连;接收总线模块输入端与入队数据帧相连;接收总线模块输出端与缓存区输入端相连;缓存区模块输入端与接收总线输出端相连,其中:所述CPU模块,用于初始化时,将队列最大门限值配置到每个队列门限信息中;在接收到入队调度模块查询入队队列号后,将队列最大门限参数发送到入队调度模块中;所述入队调度模块用于读取数据帧入队申请信息,从入队申请信息中分别提取数据帧待发送的端口号、入队数据帧的优先级、入队数据帧的帧长;将申请入队队列号分别发送到中央处理单元CPU模块中、队列信息管理模块中,得到入队数据帧队列的最大门限、队列长度信息和队尾信息;判断入队数据帧的帧长加上队列长度信息中已入队数据帧长度是否小于最大门限;若是,则提取缓存管理模块提供的本文档来自技高网
...
一种高速数据帧无冲突入队处理的装置及方法

【技术保护点】
一种高速数据帧无冲突入队处理的装置,其特征在于,包括CPU模块、入队调度模块、冲突检测模块、队列信息管理模块、缓存管理模块、接收总线模块和缓存区模块;所述CPU模块输入端与入队调度模块输出端相连,CPU模块的输出端与入队调度模块输入端相连;入队调度模块的输入端与入队申请、CPU模块输出端、缓存管理模块输出端、队列信息管理模块输出端相连;入队调度模块输出端与CPU模块输入端、冲突检测输入端、队列信息管理模块输入端、接收总线模块输入端相连;冲突检测模块输入端与入队调度模块输出端、出队执行更新操作标志信号相连;冲突检测模块输出端与队列信息管理模块输入端相连;队列信息管理模块输入端与入队调度模块输出端、冲突检测模块输出端相连;队列信息管理模块输出端与入队调度模块输入端相连;缓存管理模块输入端与入队调度模块输出端相连;缓存管理模块输出端与入队调度模块输入端相连;接收总线模块输入端与入队数据帧相连;接收总线模块输出端与缓存区输入端相连;缓存区模块输入端与接收总线输出端相连;其中,所述CPU模块,用于初始化时,将队列最大门限值配置到每个队列门限信息中;在接收到入队调度模块查询入队队列号后,将队列最大门限参数发送到入队调度模块中;所述入队调度模块用于读取数据帧入队申请信息,从入队申请信息中分别提取数据帧待发送的端口号、入队数据帧的优先级、入队数据帧的帧长;将申请入队队列号分别发送到中央处理单元CPU模块中、队列信息管理模块中,得到入队数据帧队列的最大门限、队列长度信息和队尾信息;判断入队数据帧的帧长加上队列长度信息中已入队数据帧长度是否小于最大门限;若是,则提取缓存管理模块提供的空闲缓存地址,否则,入队失败,丢弃入队数据帧;然后将所提取的空闲缓存地址、入队数据帧的开始标志、入队数据帧的结束标志、缓存有效长度写入入队调度结果信息先入先出队列FIFO中;每次入队调度结果信息FIFO数据写入后,将空闲缓存请求发送到缓存管理模块中,同时将已申请缓存地址计数器加1;当缓存地址是数据帧最后一个缓存地址时,将最后一个缓存地址发送到队列信息管理模块中,更新队尾信息,同时,将入队队列长度更新请求和入队队列长度值通过冲突检测模块发送到对队列信息管理模块中,完成队尾信息的更新和队列长度信息的更新;所述冲突检测模块,用于当入队调度模块处理入队数据帧第一个缓存地址时,判断是否满足队首更新冲突条件,满足队首更新冲突情况下,通知队列信息管理模块更新队首信息;当入队调度模块处理入队数据帧最后一个缓存地址时,根据接收到的入队队列长度更新请求和出队队列长度信息满足冲突条件的三种不同的情况,分别将队列长度信息更新值发送到队列信息管理模块;所述队列信息管理模块,用于初始化时,对自身模块中的队首信息、队尾信息和队列长度信息分别进行清零;收到入队调度模块发送队列查询信息时,根据入队队列号,将该队列号对应队列长度信息和队尾信息发送到入队调度模块;当入队调度模块处理数据帧第一个缓存地址时,当入队队列长度信息为零或者存在队首更新冲突情况下,将入队数据帧的第一个缓存地址和入队数据帧的帧长写入到入队数据帧队列队首信息中;当入队调度模块处理数据帧最后一个缓存地址时,将收到的数据帧最后一个缓存地址,写入到入队数据帧队列队尾信息中,使该队列尾部指向新数据帧最后一个缓存地址;同时,根据队列长度信息冲突条件的三种不同的情况,满足冲突条件1,将收到的冲突条件1修正值,写入到入队数据帧队列长度信息中,完成第一种情况下队列长度信息的更新;满足冲突条件2,将收到的冲突条件2的修正值,写入到入队数据帧队列长度信息中,完成第二种情况下队列长度信息的更新;满足冲突条件3,将收到的入队队列长度值写入到入队数据帧队列队列长度信息中,完成第三种情况下队列长度信息的更新;所述缓存管理模块,用于初始化时,将空闲缓存单元地址写入空闲缓存先入先出队列FIFO中,并将写入空闲缓存先入先出队列FIFO中的第一个空闲缓存单元地址发送到入队调度模块;当入队调度发起链表更新请求时,将入队数据帧的开始标志、入队数据帧的结束标志、缓存有效长度分别写入当前缓存地址对应缓存描述符的信息对应字段中,并且将当前缓存地址写入上一个缓存地址对应缓存描述符信息中下一跳地址信息中,当前缓存地址与上一个缓存地址形成链表;当接收到入队调度空闲缓存地址请求时,将下一个空闲缓存地址发送到入队调度模块中;所述接收总线模块,用于从入队调度结果信息先入先出队列FIFO中读取空闲缓存地址、缓存有效长度,将入队数据帧搬移缓存有效长度个字节到缓存区模块空闲缓存地址中;所述缓存区模块,用于存储入队数据帧。...

【技术特征摘要】
1.一种高速数据帧无冲突入队处理的装置,其特征在于,包括CPU模块、入队调度模块、冲突检测模块、队列信息管理模块、缓存管理模块、接收总线模块和缓存区模块;所述CPU模块输入端与入队调度模块输出端相连,CPU模块的输出端与入队调度模块输入端相连;入队调度模块的输入端与入队申请、CPU模块输出端、缓存管理模块输出端、队列信息管理模块输出端相连;入队调度模块输出端与CPU模块输入端、冲突检测输入端、队列信息管理模块输入端、接收总线模块输入端相连;冲突检测模块输入端与入队调度模块输出端、出队执行更新操作标志信号相连;冲突检测模块输出端与队列信息管理模块输入端相连;队列信息管理模块输入端与入队调度模块输出端、冲突检测模块输出端相连;队列信息管理模块输出端与入队调度模块输入端相连;缓存管理模块输入端与入队调度模块输出端相连;缓存管理模块输出端与入队调度模块输入端相连;接收总线模块输入端与入队数据帧相连;接收总线模块输出端与缓存区输入端相连;缓存区模块输入端与接收总线输出端相连;其中,所述CPU模块,用于初始化时,将队列最大门限值配置到每个队列门限信息中;在接收到入队调度模块查询入队队列号后,将队列最大门限参数发送到入队调度模块中;所述入队调度模块用于读取数据帧入队申请信息,从入队申请信息中分别提取数据帧待发送的端口号、入队数据帧的优先级、入队数据帧的帧长;将申请入队队列号分别发送到中央处理单元CPU模块中、队列信息管理模块中,得到入队数据帧队列的最大门限、队列长度信息和队尾信息;判断入队数据帧的帧长加上队列长度信息中已入队数据帧长度是否小于最大门限;若是,则提取缓存管理模块提供的空闲缓存地址,否则,入队失败,丢弃入队数据帧;然后将所提取的空闲缓存地址、入队数据帧的开始标志、入队数据帧的结束标志、缓存有效长度写入入队调度结果信息先入先出队列FIFO中;每次入队调度结果信息FIFO数据写入后,将空闲缓存请求发送到缓存管理模块中,同时将已申请缓存地址计数器加1;当缓存地址是数据帧最后一个缓存地址时,将最后一个缓存地址发送到队列信息管理模块中,更新队尾信息,同时,将入队队列长度更新请求和入队队列长度值通过冲突检测模块发送到对队列信息管理模块中,完成队尾信息的更新和队列长度信息的更新;所述冲突检测模块,用于当入队调度模块处理入队数据帧第一个缓存地址时,判断是否满足队首更新冲突条件,满足队首更新冲突情况下,通知队列信息管理模块更新队首信息;当入队调度模块处理入队数据帧最后一个缓存地址时,根据接收到的入队队列长度更新请求和出队队列长度信息满足冲突条件的三种不同的情况,分别将队列长度信息更新值发送到队列信息管理模块;所述队列信息管理模块,用于初始化时,对自身模块中的队首信息、队尾信息和队列长度信息分别进行清零;收到入队调度模块发送队列查询信息时,根据入队队列号,将该队列号对应队列长度信息和队尾信息发送到入队调度模块;当入队调度模块处理数据帧第一个缓存地址时,当入队队列长度信息为零或者存在队首更新冲突情况下,将入队数据帧的第一个缓存地址和入队数据帧的帧长写入到入队数据帧队列队首信息中;当入队调度模块处理数据帧最后一个缓存地址时,将收到的数据帧最后一个缓存地址,写入到入队数据帧队列队尾信息中,使该队列尾部指向新数据帧最后一个缓存地址;同时,根据队列长度信息冲突条件的三种不同的情况,满足冲突条件1,将收到的冲突条件1修正值,写入到入队数据帧队列长度信息中,完成第一种情况下队列长度信息的更新;满足冲突条件2,将收到的冲突条件2的修正值,写入到入队数据帧队列长度信息中,完成第二种情况下队列长度信息的更新;满足冲突条件3,将收到的入队队列长度值写入到入队数据帧队列队列长度信息中,完成第三种情况下队列长度信息的更新;所述缓存管理模块,用于初始化时,将空闲缓存单元地址写入空闲缓存先入先出队列FIFO中,并将写入空闲缓存先入先出队列FIFO中的第一个空闲缓存单元地址发送到入队调度模块;当入队调度发起链表更新请求时,将入队数据帧的开始标志、入队数据帧的结束标志、缓存有效长度分别写入当前缓存地址对应缓存描述符的信息对应字段中,并且将当前缓存地址写入上一个缓存地址对应缓存描述符信息中下一跳地址信息中,当前缓存地址与上一个缓存地址形成链表;当接收到入队调度空闲缓存地址请求时,将下一个空闲缓存地址发送到入队调度模块中;所述接收总线模块,用于从入队调度结果信息先入先出队列FIFO中读取空闲缓存地址、缓存有效长度,将入队数据帧搬移缓存有效长度个字节到缓存区模块空闲缓存地址中;所述缓存区模块,用于存储入队数据帧。2.一种高速数据帧无冲突入队处理的方法,其特征在于,使用高速数据帧无冲突入队处理的装置,在通信网络系统中对大容量交换设备实现高速数据帧的入队处理,包括步骤如下:(1)初始化:(1a)队列信息管理模块对自身模块中的队首信息、队尾信息和队列长度信息分别进行清零;(1b)缓存管理模块将空闲缓存单元地址写入空闲缓存先入先出队列FIFO中,并将写入空闲缓存先入先出队列FIFO中的第一个空闲缓存单元地址发送到入队调度模块,将已申请缓存地址计数器清零;(1c)中央处理单元CPU模块,将队列最大门限值配置到每个队列门限信息中;(2)读取申请入队帧信息:(2a)入队调度模块读取数据帧入队申请信息,从入队申请信息中分别提取数据帧待发送的端口号、入队数据帧的优先级、入队数据帧的帧长;(2b)将目的端口号和优先级二进制序列拼接后新序列的值,作为数据帧入队队列号;(2c)将数据帧的帧长除以64的商值向上取整,得到申请64字节空闲缓存个数的参数值;(3)查询队列相关信息:(3a)入队调度模块将申请入队队列号发送到中央处理单元CPU模块;(3b)中央处理单元CPU模块收到入队队列号后,将队列最大门限参数发送到入队调度模块;(3c)入队调度模块将申请入队队列号发送到队列信息管理模块;(3d)队列信息管理模块收到入队队列号后,将当前队列长度信息和队尾信息发送到入队调度模块;(4)入队调度模块判断入队后队列长度的值是否小于最大门限,若是,则执行步骤(6),否则,执行步骤(5);(5)入队失败,丢弃大于最大门限的入队数据帧后执行步骤(16);(6)写入队调度...

【专利技术属性】
技术研发人员:邱智亮赵海峰郑凌陈郝明潘伟涛王伟娜高丽丽张汶汶张森
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:陕西,61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1