CN104731747A - 一种高速总线数据接收中的分级缓冲实现方法 - Google Patents
一种高速总线数据接收中的分级缓冲实现方法 Download PDFInfo
- Publication number
- CN104731747A CN104731747A CN201310713708.7A CN201310713708A CN104731747A CN 104731747 A CN104731747 A CN 104731747A CN 201310713708 A CN201310713708 A CN 201310713708A CN 104731747 A CN104731747 A CN 104731747A
- Authority
- CN
- China
- Prior art keywords
- message
- buffer
- controller
- bus
- message sink
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Abstract
本发明提供一种高速总线数据接收中的分级缓冲实现方法,解决由于响应处理过慢而导致的数据丢失问题。本方法建立多消息缓存机制,设计不同的消息接收缓冲区,通过总线接收管理单元实现高速接收管理,将高速消息帧数据按照不同的消息ID存放在相应的消息接收缓冲区中;建立数据缓冲机制,创建与消息接收缓冲区相对应的环形缓冲区及相应管理寄存器,避免数据丢失的情况发生。
Description
技术领域
本发明属于计算机通信技术领域,涉及通信网络中一种高速总线数据接收中的分级缓冲实现装置及方法。
背景技术
随着总线技术不断发展,目前高速总线通信速率多为1Gbps以上,在高速总线接口设计过程中,从高速总线上接收到的数据经常由于接收速率过快但响应处理速度过慢而导致数据覆盖或丢弃。因此,为了避免这种数据丢失的情况,需提供一种高速总线消息接收过程中的分级实时缓冲技术,以解决高速总线数据接收缓冲管理及应用数据丢失问题。
发明内容
本发明的目的:提供一种高速总线数据接收中的分级缓冲实现装置及方法,解决由于接收速率过快但响应处理过慢而导致的数据丢失问题。
本发明的技术方案:
一种高速总线消息接收过程中的分级缓冲实现装置,其特殊之处在于,包括控制器、总线接收管理单元、消息接收缓冲区、环形缓冲区、消息属性寄存器、中断管理寄存器、消息接收缓冲区头尾指针寄存器及环形缓冲区头尾指针寄存器;
总线接收管理单元与控制器相连,向控制器发送消息接收中断;
总线接收管理单元与各个消息接收缓冲区相连,实现从高速总线接收到数据的管理和缓存;
控制器与各个消息接收缓冲区相连,实现接收消息读取;
控制器与各个环形缓冲区相连,实现缓冲消息写入;
控制器与消息属性寄存器相连,读取当前消息属性信息;
控制器与中断管理寄存器相连,实现中断状态管理;
总线接收管理单元与各个缓冲区头尾指针寄存器相连,实现缓冲区状态控制;
控制器与各个消息接收缓冲区头尾指针寄存器相连,实现缓冲区状态管理;
控制器与各个环形缓冲区头指针寄存器相连,实现缓冲区状态管理。
上述消息接收缓冲区采用固定长度,每个消息接收缓冲区的大小为单个高速消息最大帧长度。
环形缓冲区的大小为单个消息帧中有效数据的最大长度。
一种高速总线消息接收过程中的分级缓冲实现方法,其特殊之处在于,包括如下步骤:
步骤1:控制器初始化消息属性寄存器、中断管理寄存器、消息接收缓冲区头尾指针寄存器及环形缓冲区头尾指针寄存器;
步骤2:总线接收管理单元判断当前总线端口是否接收到总线消息;
步骤3:若总线端口接收到总线消息,则总线接收管理单元根据该总线消息的消息属性将接收到的消息数据信息写入相应的消息接收缓冲区,更新对应的消息接收缓冲区尾指针,并将消息接收中断上报控制器;若无接收消息,则重复步骤2;
步骤4:控制器收到消息接收中断后,读取消息接收缓冲区中的数据并写入相应的环形缓冲区,更新当前消息接收缓冲区头指针和环形缓冲区尾指针,清除中断;
步骤5:判断任务执行条件;
步骤6:若当前具备任务执行条件,则转步骤7;若不具备任务执行条件,则重复步骤5;
步骤7:控制器将当前环形缓冲区中的数据取出并提交任务进行处理,更新环形缓冲区头指针。
本发明具有的优点效果:
提供高速总线数据接收分级及缓冲方案,解决由于高速总线数据接收速率过快但响应处理过慢而导致的数据丢失问题;
中断响应,实时处理:采用中断方式实时响应并处理缓冲数据,避免数据丢失;
复用性强:该分级缓冲实现方法适用于各种高速总线接口设计;
无主机接口:无主机接口,基于FPGA内部控制器进行控制;
可升级性强:基于FPGA设计实现,可根据实际需要进行升级开发。
附图说明
图1是高速总线消息接收及缓冲架构图;
图2是高速总线消息接收及缓冲处理流程图。
具体实施方式
本发明的设计思路是:建立多消息缓存机制,设计不同的消息接收缓冲区,通过消息接收管理单元实现高速数据接收管理,将高速总线消息数据按照不同的消息属性存放在相应的消息接收缓冲区中。建立数据缓冲机制,创建与高速消息接收缓冲区相对应的环形缓冲区及相应管理寄存器,解决由于响应处理过慢而导致的数据丢失问题。采用中断方式实时响应并处理缓冲数据,通过控制器实现中断处理及数据管理等操作。
实现原理如图1、图2所示。下面结合附图对实施方式进行具体说明。
首先对高速总线消息接收过程中的分级缓冲实现装置的架构进行介绍,如图1所示。
建立多消息缓存机制。根据消息属性,设计不同高速总线接收消息对应的多个消息接收缓冲区,消息接收缓冲区采用固定长度,每个消息接收缓冲区的大小为单个消息的最大帧长度。针对每个消息接收缓冲区,设置相应的消息接收缓冲区头指针和消息接收缓冲区尾指针,消息接收缓冲区头指针由控制器进行维护,消息接收缓冲区尾指针由消息接收管理单元进行控制,从而实现对消息接收的管理。设计中断管理寄存器,用以实现控制器对消息接收中断的控制和处理;设计消息属性寄存器,控制器通过读取该寄存器的值可判断当前接收到的是哪一条消息。
构建数据缓冲架构,为每个消息接收缓冲区分别设计独立的环形缓冲区以及相应的环形缓冲区管理寄存器。基于存储空间大小,控制器分配和建立固定深度的环形缓冲区,单缓冲区的大小为单个消息帧中有效数据的最大长度,用以存放从高速总线接口接收到但无法及时响应处理的消息数据,以解决由于无法及时处理而导致的数据丢失问题。环形缓冲区管理寄存器包括环形缓冲区头指针寄存器和环形缓冲区尾指针寄存器。环形缓冲区头/尾指针寄存器由控制器进行维护。
消息接收管理单元负责接收高速总线消息数据信息并根据接收到消息的属性判断当前接收到的消息应存放到哪一个消息接收缓冲区,继而将数据写入对应的消息接收缓冲区,完成对相应的消息接收缓冲区尾指针的维护,将消息属性信息写入消息属性寄存器,最后向控制器上报消息接收中断。
控制器负责完成数据管理、缓冲管理和中断处理等工作。
控制器收到消息接收中断,通过读取消息属性寄存器判断当前接收数据所在缓冲区位置,通过读取缓冲区头指针和尾指针判断消息数据在缓冲区中的位置,从消息接收缓冲内相应位置将消息帧的有效数据取出并写入当前缓冲区所对应的环形缓冲区,对中断控制寄存器进行操作以清除中断,更新当前接收缓冲区的头指针,同时更新当前环形缓冲区的尾指针。
控制器根据任务处理要求,查询对应环形缓冲区头指针和尾指针状态,读取当前环形缓冲区内的数据并提交任务进行处理。
高速总线消息接收过程中的分级缓冲实现方法,如图2所示:
步骤1:控制器初始化消息属性寄存器、中断管理寄存器、消息接收缓冲区头尾指针寄存器及环形缓冲区头尾指针寄存器;
步骤2:总线接收管理单元判断当前总线端口是否接收到总线消息;
步骤3:若总线端口接收到总线消息,则总线接收管理单元根据该总线消息的消息属性将接收到的消息数据信息写入相应的消息接收缓冲区,更新对应的消息接收缓冲区尾指针,并将消息接收中断上报控制器;若无接收消息,则重复步骤2;
步骤4:控制器收到消息接收中断后,读取消息接收缓冲区中的数据并写入相应的环形缓冲区,更新当前消息接收缓冲区头指针和环形缓冲区尾指针,清除中断;
步骤5:判断任务执行条件;
步骤6:若当前具备任务执行条件,则转步骤7;若不具备任务执行条件,则重复步骤5;
步骤7:控制器将当前环形缓冲区中的数据取出并提交任务进行处理,更新环形缓冲区头指针。
Claims (4)
1.一种高速总线消息接收过程中的分级缓冲实现装置,其特征在于,包括控制器、总线接收管理单元、消息接收缓冲区、环形缓冲区、消息属性寄存器、中断管理寄存器、消息接收缓冲区头尾指针寄存器及环形缓冲区头尾指针寄存器;
总线接收管理单元与控制器相连,向控制器发送消息接收中断;
总线接收管理单元与各个消息接收缓冲区相连,实现从高速总线接收到数据的管理和缓存;
控制器与各个消息接收缓冲区相连,实现接收消息读取;
控制器与各个环形缓冲区相连,实现缓冲消息写入;
控制器与消息属性寄存器相连,读取当前消息属性信息;
控制器与中断管理寄存器相连,实现中断状态管理;
总线接收管理单元与各个缓冲区头尾指针寄存器相连,实现缓冲区状态控制;
控制器与各个消息接收缓冲区头尾指针寄存器相连,实现缓冲区状态管理;
控制器与各个环形缓冲区头指针寄存器相连,实现缓冲区状态管理。
2.根据权利要求1所述的高速总线数据接收中的分级缓冲实现装置,其特征在于:所述消息接收缓冲区采用固定长度,每个消息接收缓冲区的大小为单个高速消息最大帧长度。
3.根据权利要求1或2所述的高速总线数据接收中的分级缓冲实现装置,其特征在于:环形缓冲区的大小为单个消息帧中有效数据的最大长度。
4.一种高速总线消息接收过程中的分级缓冲实现方法,其特征在于,包括如下步骤:
步骤1:控制器初始化消息属性寄存器、中断管理寄存器、消息接收缓冲区头尾指针寄存器及环形缓冲区头尾指针寄存器;
步骤2:总线接收管理单元判断当前总线端口是否接收到总线消息;
步骤3:若总线端口接收到总线消息,则总线接收管理单元根据该总线消息的消息属性将接收到的消息数据信息写入相应的消息接收缓冲区,更新对应的消息接收缓冲区尾指针,并将消息接收中断上报控制器;若无接收消息,则重复步骤2;
步骤4:控制器收到消息接收中断后,读取消息接收缓冲区中的数据并写入相应的环形缓冲区,更新当前消息接收缓冲区头指针和环形缓冲区尾指针,清除中断;
步骤5:判断任务执行条件;
步骤6:若当前具备任务执行条件,则转步骤7;若不具备任务执行条件,则重复步骤5;
步骤7:控制器将当前环形缓冲区中的数据取出并提交任务进行处理,更新环形缓冲区头指针。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310713708.7A CN104731747A (zh) | 2013-12-20 | 2013-12-20 | 一种高速总线数据接收中的分级缓冲实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310713708.7A CN104731747A (zh) | 2013-12-20 | 2013-12-20 | 一种高速总线数据接收中的分级缓冲实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104731747A true CN104731747A (zh) | 2015-06-24 |
Family
ID=53455651
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310713708.7A Pending CN104731747A (zh) | 2013-12-20 | 2013-12-20 | 一种高速总线数据接收中的分级缓冲实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104731747A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105550142A (zh) * | 2015-12-07 | 2016-05-04 | 中国航空工业集团公司西安航空计算技术研究所 | 一种高低速转换接口中的数据完整性处理方法 |
CN105573923A (zh) * | 2015-12-11 | 2016-05-11 | 中国航空工业集团公司西安航空计算技术研究所 | 一种访问多块存储空间的控制电路 |
CN113608921A (zh) * | 2021-06-25 | 2021-11-05 | 天津津航计算技术研究所 | 一种防阻塞双机热备份系统按键一致响应控制方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102033840A (zh) * | 2009-09-28 | 2011-04-27 | 索尼公司 | 总线协议转换装置和总线协议转换方法 |
US20120151465A1 (en) * | 2004-01-14 | 2012-06-14 | International Business Machines Corporation | Autonomic Method and Apparatus for Hardware Assist for Patching Code |
CN103049414A (zh) * | 2012-12-28 | 2013-04-17 | 中国航空工业集团公司第六三一研究所 | Fc总线与can总线间数据的转换及传输方法 |
-
2013
- 2013-12-20 CN CN201310713708.7A patent/CN104731747A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120151465A1 (en) * | 2004-01-14 | 2012-06-14 | International Business Machines Corporation | Autonomic Method and Apparatus for Hardware Assist for Patching Code |
CN102033840A (zh) * | 2009-09-28 | 2011-04-27 | 索尼公司 | 总线协议转换装置和总线协议转换方法 |
CN103049414A (zh) * | 2012-12-28 | 2013-04-17 | 中国航空工业集团公司第六三一研究所 | Fc总线与can总线间数据的转换及传输方法 |
Non-Patent Citations (1)
Title |
---|
高立娥等: "《智能仪器原理与设计》", 30 September 2011, 西北工业大学出版社 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105550142A (zh) * | 2015-12-07 | 2016-05-04 | 中国航空工业集团公司西安航空计算技术研究所 | 一种高低速转换接口中的数据完整性处理方法 |
CN105573923A (zh) * | 2015-12-11 | 2016-05-11 | 中国航空工业集团公司西安航空计算技术研究所 | 一种访问多块存储空间的控制电路 |
CN113608921A (zh) * | 2021-06-25 | 2021-11-05 | 天津津航计算技术研究所 | 一种防阻塞双机热备份系统按键一致响应控制方法 |
CN113608921B (zh) * | 2021-06-25 | 2024-01-16 | 天津津航计算技术研究所 | 一种防阻塞双机热备份系统按键一致响应控制方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10552352B2 (en) | Methods and apparatus for synchronizing uplink and downlink transactions on an inter-device communication link | |
CN104714918B (zh) | 主机环境下高速fc总线数据接收及缓冲方法 | |
WO2018075182A1 (en) | Gpu remote communication with triggered operations | |
CN102866971A (zh) | 传输数据的装置、系统及方法 | |
CN102541779A (zh) | 一种提高多数据缓冲区dma效率的系统和方法 | |
CN106681949B (zh) | 基于一致性加速接口的直接内存操作实现方法 | |
CN106155960A (zh) | 基于gpio握手和edma的uart串口通信方法 | |
CN104536701A (zh) | 一种nvme协议多命令队列的实现方法及系统 | |
CN103473142A (zh) | 一种云计算操作系统下的虚拟机迁移方法及装置 | |
CN104731747A (zh) | 一种高速总线数据接收中的分级缓冲实现方法 | |
CN103595773A (zh) | 一种基于云桌面的系统性能优化的方法 | |
CN110351270A (zh) | 一种提高并发数据处理效率的方法及系统 | |
CN102750245B (zh) | 报文接收方法、报文接收模块、装置及系统 | |
US8199648B2 (en) | Flow control in a variable latency system | |
CN110059024B (zh) | 一种内存空间数据缓存方法及装置 | |
CN104239232A (zh) | 一种基于fpga内dpram的乒乓缓存操作结构 | |
CN105262604A (zh) | 虚拟机迁移方法及设备 | |
US10505704B1 (en) | Data uploading to asynchronous circuitry using circular buffer control | |
CN110427206B (zh) | 一种基于zynq的算法动态更新方法 | |
CN114902181A (zh) | Gpu包聚合系统 | |
CN106372013B (zh) | 远程内存访问方法、装置和系统 | |
CN108228104B (zh) | 数据传输方法及固态硬盘控制器 | |
CN107908428B (zh) | 一种帧、页同步的gpu图形指令缓冲同步方法 | |
CN105550142A (zh) | 一种高低速转换接口中的数据完整性处理方法 | |
CN105335217A (zh) | 一种服务器静默方法与系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150624 |
|
WD01 | Invention patent application deemed withdrawn after publication |