一种高速总线数据接收中的分级缓冲实现方法技术

技术编号:11639235 阅读:147 留言:0更新日期:2015-06-24 14:50
本发明专利技术提供一种高速总线数据接收中的分级缓冲实现方法,解决由于响应处理过慢而导致的数据丢失问题。本方法建立多消息缓存机制,设计不同的消息接收缓冲区,通过总线接收管理单元实现高速接收管理,将高速消息帧数据按照不同的消息ID存放在相应的消息接收缓冲区中;建立数据缓冲机制,创建与消息接收缓冲区相对应的环形缓冲区及相应管理寄存器,避免数据丢失的情况发生。

【技术实现步骤摘要】

本专利技术属于计算机通信
,涉及通信网络中一种高速总线数据接收中的分级缓冲实现装置及方法。
技术介绍
随着总线技术不断发展,目前高速总线通信速率多为IGbps以上,在高速总线接口设计过程中,从高速总线上接收到的数据经常由于接收速率过快但响应处理速度过慢而导致数据覆盖或丢弃。因此,为了避免这种数据丢失的情况,需提供一种高速总线消息接收过程中的分级实时缓冲技术,以解决高速总线数据接收缓冲管理及应用数据丢失问题。
技术实现思路
本专利技术的目的:提供一种高速总线数据接收中的分级缓冲实现装置及方法,解决由于接收速率过快但响应处理过慢而导致的数据丢失问题。本专利技术的技术方案:一种高速总线消息接收过程中的分级缓冲实现装置,其特殊之处在于,包括控制器、总线接收管理单元、消息接收缓冲区、环形缓冲区、消息属性寄存器、中断管理寄存器、消息接收缓冲区头尾指针寄存器及环形缓冲区头尾指针寄存器;总线接收管理单元与控制器相连,向控制器发送消息接收中断;总线接收管理单元与各个消息接收缓冲区相连,实现从高速总线接收到数据的管理和缓存;控制器与各个消息接收缓冲区相连,实现接收消息读取;控制器与各个环形缓冲区相连,实现缓冲消息写入;控制器与消息属性寄存器相连,读取当前消息属性信息;控制器与中断管理寄存器相连,实现中断状态管理;总线接收管理单元与各个缓冲区头尾指针寄存器相连,实现缓冲区状态控制;控制器与各个消息接收缓冲区头尾指针寄存器相连,实现缓冲区状态管理;控制器与各个环形缓冲区头指针寄存器相连,实现缓冲区状态管理。上述消息接收缓冲区采用固定长度,每个消息接收缓冲区的大小为单个高速消息最大帧长度。环形缓冲区的大小为单个消息帧中有效数据的最大长度。一种高速总线消息接收过程中的分级缓冲实现方法,其特殊之处在于,包括如下步骤:步骤1:控制器初始化消息属性寄存器、中断管理寄存器、消息接收缓冲区头尾指针寄存器及环形缓冲区头尾指针寄存器;步骤2:总线接收管理单元判断当前总线端口是否接收到总线消息;步骤3:若总线端口接收到总线消息,则总线接收管理单元根据该总线消息的消息属性将接收到的消息数据信息写入相应的消息接收缓冲区,更新对应的消息接收缓冲区尾指针,并将消息接收中断上报控制器;若无接收消息,则重复步骤2 ;步骤4:控制器收到消息接收中断后,读取消息接收缓冲区中的数据并写入相应的环形缓冲区,更新当前消息接收缓冲区头指针和环形缓冲区尾指针,清除中断;步骤5:判断任务执行条件;步骤6:若当前具备任务执行条件,则转步骤7 ;若不具备任务执行条件,则重复步骤5 ;步骤7:控制器将当前环形缓冲区中的数据取出并提交任务进行处理,更新环形缓冲区头指针。本专利技术具有的优点效果:提供高速总线数据接收分级及缓冲方案,解决由于高速总线数据接收速率过快但响应处理过慢而导致的数据丢失问题;中断响应,实时处理:采用中断方式实时响应并处理缓冲数据,避免数据丢失;复用性强:该分级缓冲实现方法适用于各种高速总线接口设计;无主机接口:无主机接口,基于FPGA内部控制器进行控制;可升级性强:基于FPGA设计实现,可根据实际需要进行升级开发。【附图说明】图1是高速总线消息接收及缓冲架构图;图2是高速总线消息接收及缓冲处理流程图。【具体实施方式】本专利技术的设计思路是:建立多消息缓存机制,设计不同的消息接收缓冲区,通过消息接收管理单元实现高速数据接收管理,将高速总线消息数据按照不同的消息属性存放在相应的消息接收缓冲区中。建立数据缓冲机制,创建与高速消息接收缓冲区相对应的环形缓冲区及相应管理寄存器,解决由于响应处理过慢而导致的数据丢失问题。采用中断方式实时响应并处理缓冲数据,通过控制器实现中断处理及数据管理等操作。实现原理如图1、图2所示。下面结合附图对实施方式进行具体说明。首先对高速总线消息接收过程中的分级缓冲实现装置的架构进行介绍,如图1所/Jn ο建立多消息缓存机制。根据消息属性,设计不同高速总线接收消息对应的多个消息接收缓冲区,消息接收缓冲区采用固定长度,每个消息接收缓冲区的大小为单个消息的最大帧长度。针对每个消息接收缓冲区,设置相应的消息接收缓冲区头指针和消息接收缓冲区尾指针,消息接收缓冲区头指针由控制器进行维护,消息接收缓冲区尾指针由消息接收管理单元进行控制,从而实现对消息接收的管理。设计中断管理寄存器,用以实现控制器对消息接收中断的控制和处理;设计消息属性寄存器,控制器通过读取该寄存器的值可判断当前接收到的是哪一条消息。构建数据缓冲架构,为每个消息接收缓冲区分别设计独立的环形缓冲区以及相应的环形缓冲区管理寄存器。基于存储空间大小,控制器分配和建立固定深度的环形缓冲区,单缓冲区的大小为单个消息帧中有效数据的最大长度,用以存放从高速总线接口接收到但无法及时响应处理的消息数据,以解决由于无法及时处理而导致的数据丢失问题。环形缓冲区管理寄存器包括环形缓冲区头指针寄存器和环形缓冲区尾指针寄存器。环形缓冲区头/尾指针寄存器由控制器进行维护。消息接收管理单元负责接收高速总线消息数据信息并根据接收到消息的属性判断当前接收到的消息应存放到哪一个消息接收缓冲区,继而将数据写入对应的消息接收缓冲区,完成对相应的消息接收缓冲区尾指针的维护,将消息属性信息写入消息属性寄存器,最后向控制器上报消息接收中断。控制器负责完成数据管理、缓冲管理和中断处理等工作。控制器收到消息接收中断,通过读取消息属性寄存器判断当前接收数据所在缓冲区位置,通过读取缓冲区头指针和尾指针判断消息数据在缓冲区中的位置,从消息接收缓冲内相应位置将消息帧的有效数据取出并写入当前缓冲区所对应的环形缓冲区,对中断控制寄存器进行操作以清除中断,更新当前接收缓冲区的头指针,同时更新当前环形缓冲区的尾指针。控制器根据任务处理要求,查询对应环形缓冲区头指针和尾指针状态,读取当前环形缓冲区内的数据并提交任务进行处理。高速总线消息接收过程中的分级缓冲实现方法,如图2所示:步骤1:控制器初始化消息属性寄存器、中断管理寄存器、消息接收缓冲区头尾指针寄存器及环形缓冲区头尾指针寄存器;步骤2:总线接收管理单元判断当前总线端口是否接收到总线消息;步骤3:若总线端口接收到总线消息,则总线接收管理单元根据该总线消息的消息属性将接收到的消息数据信息写入相应的消息接收缓冲区,更新对应的消息接收缓冲区尾指针,并将消息接收中断上报控制器;若无接收消息,则重复步骤2 ;步骤4:控制器收到消息接收中断后,读取消息接收缓冲区中的数据并写入相应的环形缓冲区,更新当前消息接收缓冲区头指针和环形缓冲区尾指针,清除中断;步骤5:判断任务执行条件;步骤6:若当前具备任务执行条件,则转步骤7 ;若不具备任务执行条件,则重复步骤5 ;步骤7:控制器将当前环形缓冲区中的数据取出并提交任务进行处理,更新环形缓冲区头指针。【主权项】1.一种高速总线消息接收过程中的分级缓冲实现装置,其特征在于,包括控制器、总线接收管理单元、消息接收缓冲区、环形缓冲区、消息属性寄存器、中断管理寄存器、消息接收缓冲区头尾指针寄存器及环形缓冲区头尾指针寄存器; 总线接收管理单元与控制器相连,向控制器发送消息接收中断; 总线接收管理单元与各个消息接收缓冲区相连,实现从高速总线接收到数据的管理和缓存; 控制器与本文档来自技高网...

【技术保护点】
一种高速总线消息接收过程中的分级缓冲实现装置,其特征在于,包括控制器、总线接收管理单元、消息接收缓冲区、环形缓冲区、消息属性寄存器、中断管理寄存器、消息接收缓冲区头尾指针寄存器及环形缓冲区头尾指针寄存器;总线接收管理单元与控制器相连,向控制器发送消息接收中断;总线接收管理单元与各个消息接收缓冲区相连,实现从高速总线接收到数据的管理和缓存;控制器与各个消息接收缓冲区相连,实现接收消息读取;控制器与各个环形缓冲区相连,实现缓冲消息写入;控制器与消息属性寄存器相连,读取当前消息属性信息;控制器与中断管理寄存器相连,实现中断状态管理;总线接收管理单元与各个缓冲区头尾指针寄存器相连,实现缓冲区状态控制;控制器与各个消息接收缓冲区头尾指针寄存器相连,实现缓冲区状态管理;控制器与各个环形缓冲区头指针寄存器相连,实现缓冲区状态管理。

【技术特征摘要】

【专利技术属性】
技术研发人员:朱志强黄韬李大鹏李健
申请(专利权)人:中国航空工业集团公司第六三一研究所
类型:发明
国别省市:陕西;61

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

1