CN104714918B - 主机环境下高速fc总线数据接收及缓冲方法 - Google Patents
主机环境下高速fc总线数据接收及缓冲方法 Download PDFInfo
- Publication number
- CN104714918B CN104714918B CN201310688993.1A CN201310688993A CN104714918B CN 104714918 B CN104714918 B CN 104714918B CN 201310688993 A CN201310688993 A CN 201310688993A CN 104714918 B CN104714918 B CN 104714918B
- Authority
- CN
- China
- Prior art keywords
- message
- datas
- high speed
- reception
- bus
- 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.)
- Active
Links
Landscapes
- Computer And Data Communications (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明涉及主机环境下高速FC总线数据接收及缓冲方法,避免高速FC总线数据在低速主机应用过程中的数据丢失。本发明是这样实现的:FC接口单元与主机单元之间通过标准总线进行互联,根据不同FC消息数据在主机存储器建立对应的FC消息接收缓冲区,FC接口单元通过DMA方式共享主机存储器以实现FC接口数据的高速接收;同时,建立数据缓冲机制,在主机存储器开辟环形缓冲区,实现高速FC总线数据缓冲,保证提交主机处理数据的完整性。本发明机制设计简单、效率高、移植性强;采用标准化主机接口设计,大大提高了FC总线接口的集成开发与兼容性。
Description
技术领域
本发明属于计算机通信技术,具体涉及通信网络中一种主机环境下高速FC总线数据接收及缓冲方法。
背景技术
在通信***开发过程中,需要实现将接收到的高速FC总线数据提交主机应用进行处理。FC总线传输速率在1.0625Gbps以上,但很多主机应用需要实现的是低速数据处理,如将接收到FC消息数据发送至CAN、1553B、RS422、以太网等传输速率比FC总线低很多的网络上,这就容易造成由于主机无法及时处理而导致的FC原始数据丢失。因此,为了避免这种情况,需要提供一种高速FC总线数据接收及缓冲的实现方法。
发明内容
本发明的目的是,提供一种主机环境下高速FC总线数据接收及缓冲方法,避免高速FC总线数据在低速主机应用过程中的数据丢失。
本发明的技术解决方案是,
主机环境下高速FC总线数据接收及缓冲方法,其特殊之处在于:包括以下步骤:
1】将FC接口单元的主机接口与主机单元的处理器通过标准总线进行互联;所述FC接口单元还包括与主机接口相连的DMA引擎、DMA控制寄存器、中断管理寄存器和接收管理逻辑,以及与接收管理逻辑相连的接收管理寄存器组,DMA引擎与DMA控制寄存器连接,DMA引擎还与接收管理逻辑连接;所述接收管理寄存器组包括消息ID寄存器、FC消息接收缓冲区头指针和FC消息接收缓冲区尾指针;
2】处理器对主机接口进行初始化操作;处理器通过主机接口对DMA控制寄存器进行配置,并根据配置信息在主机单元的存储器内部建立FC消息接收缓冲区和环形缓冲区;
3】FC接口单元的接收管理逻辑判断是否有新的FC消息数据发来;
4】若有新的FC消息数据信息发来,接收管理逻辑启动DMA引擎,将接收到的FC消息数据由主机接口经标准总线写入主机单元存储器内的FC消息接收缓冲区,中断管理寄存器经主机接口向处理器上报FC消息接收中断,更新对应的FC消息接收缓冲区尾指针,继续步骤5】;若未接收到FC消息数据,则重复步骤3】;
5】处理器响应FC消息接收中断,通过读取接收管理寄存器组中的消息ID寄存器判断当前接收到的是哪一条FC消息数据,根据FC消息接收缓冲区头指针,从对应的FC消息接收缓冲区读取接收到的FC消息数据并写入环形缓冲区,更新当前FC消息接收缓冲区头指针和环形缓冲区尾指针;环形缓冲区内的数据等待应用处理;
6】判断主机单元的处理器是否具备应用处理条件;
7】若主机单元的处理器具备应用处理条件,则转步骤8】;若不具备应用处理条件,则重复步骤6】;
8】处理器查询环形缓冲区头指针和环形缓冲区尾指针,根据环形缓冲区头指针读取环形缓冲区内待处理的FC消息数据,并将该数据提交给相应的主机应用处理,更新环形缓冲区头指针。
上述FC消息接收缓冲区的大小为FC最大帧长,采用固定缓冲深度,所述FC消息接收缓冲区的数量与FC消息数据的数量一致。
DMA控制寄存器包括DMA源地址寄存器、DMA目的地址寄存器、DMA数据长度寄存器。
上述环形缓冲区的大小为单个FC消息数据最大帧长,用以存放多个FC消息接收缓冲区内部主机无法及时处理的数据。
上述主机接口为PCI或PCIe或RapidIO标准总线接口。
本发明的优点是:
主动DMA方式共享主机存储器,实现FC消息数据高速接收:FC消息接收缓冲区位于主机存储器,通过主动DMA方式共享主机存储空间,FC接口与处理器采用高速标准串行总线进行互联,通过主动DMA方式共享主机存储器,将接收到的FC消息DMA写入主机存储器中对应的FC消息接收缓冲区,实现FC消息数据高速接收;
基于标准主机接口设计:FC接口与处理器采用高速标准串行总线进行耦合,提高FC总线接口的集成开发与兼容性;
建立特有缓冲机制:建立主机环境下数据缓冲机制,实现高速FC总线数据缓冲,保证提交应用处理数据的完整性。
附图说明
图1是主机环境下高速FC总线数据接收及缓冲实现框图;
图2是主机环境下高速FC总线数据接收管理流程图。
具体实施方式
下面结合附图对实施方式进行具体说明。
首先对实现架构进行介绍,如图1所示:
主机环境下高速FC总线数据接收管理是通过建立在FC接口单元与主机单元上的专有机制进行实现。
FC接口单元包括主机接口,以及与主机接口连接的DMA引擎、DMA控制寄存器、中断管理寄存器和接收管理逻辑,以及与接收管理逻辑连接的接收管理寄存器组,DMA引擎与DMA控制寄存器和接收管理逻辑连接;接收管理寄存器组包括消息ID寄存器、FC消息接收缓冲区头指针和FC消息接收缓冲区尾指针。
主机单元包括处理器以及存储器,所述存储器内部开辟有FC消息接收缓冲区和环形缓冲区;
将FC接口单元的主机接口与主机单元的处理器通过标准总线PCIe或RapdiIO或PCI进行互联。
FC接口单元内部设计接收管理逻辑,实现对FC消息数据接收的管理和控制。
FC接口单元集成DMA引擎,并设计DMA控制寄存器,通过主动DMA方式实现共享主机单元的存储器,将接收到的FC消息数据DMA写入主机单元的存储器中的FC消息接收缓冲区,实现FC接口数据的高速收发。
DMA控制寄存器包括DMA源地址寄存器、DMA目的地址寄存器、DMA数据长度寄存器。处理器在对FC接口初始化过程中,通过主机接口对DMA控制寄存器进行配置。当接收到FC消息数据时,接收管理逻辑启动DMA引擎。DMA引擎根据DMA控制寄存器中的源地址、目的地址、数据长度信息、FC消息数据ID信息以及当前FC消息接收缓冲区头尾指针信息,计算当前DMA操作的目的地址,将接收到的FC消息数据DMA写入到当前消息对应的主机存储器内部的FC消息接收缓冲区。待DMA发送完毕,接收管理逻辑更新当前FC消息接收缓冲区的尾指针,向处理器上报FC消息接收中断。由于标准总线上DMA操作提供的高带宽数据传输,保证了从FC接口到FC消息接收缓冲区过程中FC消息数据的高速接收。
接收管理寄存器组包括与n个FC消息数据对应的n组接收缓冲区头指针和n组接收缓冲区尾指针;处理器通过读取消息ID寄存器的值可判断当前接收到的是哪一条FC消息数据;FC消息接收缓冲区头指针由处理器进行维护,FC消息接收缓冲区尾指针由接收管理逻辑进行控制,以实现对FC消息接收的管理。
FC接口单元内部设计中断管理寄存器,处理FC消息接收中断。
FC接口单元通过主动DMA方式共享主机单元的存储器,实现FC消息数据高速接收;同时基于主机存储器建立缓冲机制,保证应用处理数据的完整。
FC消息接收缓冲区位于主机存储器。对应n个不同消息ID的FC消息数据,在存储器内部建立n个FC消息接收缓冲区,每个缓冲区的大小为FC最大帧长,采用固定缓冲深度。
处理器结合主机存储器大小,在主机单元的存储器内部开辟1个独立的满足应用深度要求的环形缓冲区,单个缓冲区的大小为单个FC最大帧长,用以存放多个FC消息接收缓冲区内部主机无法及时处理的数据。同时,在处理器程序中为环形缓冲区建立头指针和尾指针变量,用以维护环形缓冲区数据状态。
下面结合图2对本发明的方法进行描述,步骤如下:
1】将FC接口单元的主机接口与主机单元的处理器通过标准总线进行互联;所述FC接口单元还包括与主机接口相连的DMA引擎、DMA控制寄存器、中断管理寄存器和接收管理逻辑,以及与接收管理逻辑相连的接收管理寄存器组,DMA引擎与DMA控制寄存器连接,DMA引擎还与接收管理逻辑连接;
2】处理器对主机接口进行初始化操作;处理器通过主机接口对DMA控制寄存器进行配置,并根据配置信息在主机单元的存储器内部建立FC消息接收缓冲区和环形缓冲区;
3】FC接口单元的接收管理逻辑判断是否有新的FC消息数据发来;
4】若有新的FC消息数据信息发来,接收管理逻辑启动DMA引擎,将接收到的FC消息数据由主机接口经标准总线写入主机单元存储器内的FC消息接收缓冲区,中断管理寄存器经主机接口向处理器上报FC消息接收中断,更新对应的FC消息接收缓冲区尾指针,继续步骤5】;若未接收到FC消息数据,则重复步骤3】;
5】处理器响应FC消息接收中断,通过读取接收管理寄存器组中的消息ID寄存器判断当前接收到的是哪一条FC消息数据,根据FC消息接收缓冲区头指针,从对应的FC消息接收缓冲区读取接收到的FC消息数据信息并写入环形缓冲区,更新当前FC消息接收缓冲区头指针和环形缓冲区尾指针;环形缓冲区内的数据等待应用处理;
6】判断主机单元的处理器是否具备应用处理条件;
7】若主机单元的处理器具备应用处理条件,则转步骤8】;若不具备应用处理条件,则重复步骤6】;
8】处理器查询环形缓冲区头指针和环形缓冲区尾指针,根据环形缓冲区头指针读取环形缓冲区内待处理的FC消息数据,并将该数据提交给相应的主机应用处理,更新环形缓冲区头指针。
Claims (5)
1.主机环境下高速FC总线数据接收及缓冲方法,其特征在于:包括以下步骤:
1】将FC接口单元的主机接口与主机单元的处理器通过标准总线进行互联;所述FC接口单元还包括与主机接口相连的DMA引擎、DMA控制寄存器、中断管理寄存器和接收管理逻辑,以及与接收管理逻辑相连的接收管理寄存器组,DMA引擎与DMA控制寄存器连接,DMA引擎还与接收管理逻辑连接;所述接收管理寄存器组包括消息ID寄存器、FC消息接收缓冲区头指针和FC消息接收缓冲区尾指针;
2】处理器对主机接口进行初始化操作;处理器通过主机接口对DMA控制寄存器进行配置,并根据配置信息在主机单元的存储器内部建立FC消息接收缓冲区和环形缓冲区;
3】FC接口单元的接收管理逻辑判断是否有新的FC消息数据发来;
4】若有新的FC消息数据信息发来,接收管理逻辑启动DMA引擎,将接收到的FC消息数据由主机接口经标准总线写入主机单元存储器内的FC消息接收缓冲区,中断管理寄存器经主机接口向处理器上报FC消息接收中断,更新对应的FC消息接收缓冲区尾指针,继续步骤5】;若未接收到FC消息数据,则重复步骤3】;
5】处理器响应FC消息接收中断,通过读取接收管理寄存器组中的消息ID寄存器判断当前接收到的是哪一条FC消息数据,根据FC消息接收缓冲区头指针,从对应的FC消息接收缓冲区读取接收到的FC消息数据并写入环形缓冲区,更新当前FC消息接收缓冲区头指针和环形缓冲区尾指针;环形缓冲区内的数据等待应用处理;
6】判断主机单元的处理器是否具备应用处理条件;
7】若主机单元的处理器具备应用处理条件,则转步骤8】;若不具备应用处理条件,则重复步骤6】;
8】处理器查询环形缓冲区头指针和环形缓冲区尾指针,根据环形缓冲区头指针读取环形缓冲区内待处理的FC消息数据,并将该数据提交给相应的主机应用处理,更新环形缓冲区头指针。
2.根据权利要求1所述的主机环境下高速FC总线数据接收及缓冲方法,其特征在于:所述FC消息接收缓冲区的大小为FC最大帧长,采用固定缓冲深度,所述FC消息接收缓冲区的数量与FC消息数据的数量一致。
3.根据权利要求1或2所述的主机环境下高速FC总线数据接收及缓冲方法,其特征在于:DMA控制寄存器包括DMA源地址寄存器、DMA目的地址寄存器、DMA数据长度寄存器。
4.根据权利要求3所述的主机环境下高速FC总线数据接收及缓冲方法,其特征在于:所述环形缓冲区的大小为单个FC消息数据最大帧长,用以存放多个FC消息接收缓冲区内部主机无法及时处理的数据。
5.根据权利要求4所述的主机环境下高速FC总线数据接收及缓冲方法,其特征在于:所述主机接口为PCI或PCIe或RapidIO标准总线接口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310688993.1A CN104714918B (zh) | 2013-12-15 | 2013-12-15 | 主机环境下高速fc总线数据接收及缓冲方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310688993.1A CN104714918B (zh) | 2013-12-15 | 2013-12-15 | 主机环境下高速fc总线数据接收及缓冲方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104714918A CN104714918A (zh) | 2015-06-17 |
CN104714918B true CN104714918B (zh) | 2018-01-12 |
Family
ID=53414267
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310688993.1A Active CN104714918B (zh) | 2013-12-15 | 2013-12-15 | 主机环境下高速fc总线数据接收及缓冲方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104714918B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105550142A (zh) * | 2015-12-07 | 2016-05-04 | 中国航空工业集团公司西安航空计算技术研究所 | 一种高低速转换接口中的数据完整性处理方法 |
US10346324B2 (en) * | 2017-02-13 | 2019-07-09 | Microchip Technology Incorporated | Devices and methods for autonomous hardware management of circular buffers |
TWI680651B (zh) * | 2018-01-03 | 2019-12-21 | 立積電子股份有限公司 | 射頻訊號處理裝置 |
CN110213168B (zh) * | 2018-02-28 | 2022-04-22 | 中航光电科技股份有限公司 | 一种fc转以太网的数据转换流量控制方法及装置 |
CN110046114B (zh) * | 2019-03-06 | 2020-08-14 | 上海熠知电子科技有限公司 | 基于pcie协议的dma控制器及dma数据传输方法 |
CN110727402B (zh) * | 2019-09-12 | 2022-03-15 | 中航光电科技股份有限公司 | 一种高速fc数据实时接收不丢帧存储方法 |
CN114416613A (zh) * | 2021-12-29 | 2022-04-29 | 苏州雄立科技有限公司 | 一种dma数据传输***及方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1690944A (zh) * | 2004-04-21 | 2005-11-02 | 华为技术有限公司 | 一种磁盘阵列*** |
CN102023947A (zh) * | 2010-12-02 | 2011-04-20 | 西北工业大学 | Ieee1394总线与高速智能统一总线的直接接口方法 |
US8116206B1 (en) * | 2008-02-26 | 2012-02-14 | Qlogic, Corporation | Method and system for routing frames in a network |
CN103049413A (zh) * | 2012-12-28 | 2013-04-17 | 中国航空工业集团公司第六三一研究所 | 基于FC与Camlink总线的数据转换与传输方法 |
CN103049414A (zh) * | 2012-12-28 | 2013-04-17 | 中国航空工业集团公司第六三一研究所 | Fc总线与can总线间数据的转换及传输方法 |
CN103336745A (zh) * | 2013-07-01 | 2013-10-02 | 无锡众志和达存储技术股份有限公司 | 一种基于ssd缓存的fc hba及其设计方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8521978B2 (en) * | 2010-04-27 | 2013-08-27 | Hitachi, Ltd. | Storage apparatus and method for controlling storage apparatus |
-
2013
- 2013-12-15 CN CN201310688993.1A patent/CN104714918B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1690944A (zh) * | 2004-04-21 | 2005-11-02 | 华为技术有限公司 | 一种磁盘阵列*** |
US8116206B1 (en) * | 2008-02-26 | 2012-02-14 | Qlogic, Corporation | Method and system for routing frames in a network |
CN102023947A (zh) * | 2010-12-02 | 2011-04-20 | 西北工业大学 | Ieee1394总线与高速智能统一总线的直接接口方法 |
CN103049413A (zh) * | 2012-12-28 | 2013-04-17 | 中国航空工业集团公司第六三一研究所 | 基于FC与Camlink总线的数据转换与传输方法 |
CN103049414A (zh) * | 2012-12-28 | 2013-04-17 | 中国航空工业集团公司第六三一研究所 | Fc总线与can总线间数据的转换及传输方法 |
CN103336745A (zh) * | 2013-07-01 | 2013-10-02 | 无锡众志和达存储技术股份有限公司 | 一种基于ssd缓存的fc hba及其设计方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104714918A (zh) | 2015-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104714918B (zh) | 主机环境下高速fc总线数据接收及缓冲方法 | |
US20200174953A1 (en) | Methods and apparatus for synchronizing uplink and downlink transactions on an inter-device communication link | |
US10845868B2 (en) | Methods and apparatus for running and booting an inter-processor communication link between independently operable processors | |
CN101916236B (zh) | 为邮递性中断事务提供留存机构的方法、装置和*** | |
US9749413B2 (en) | Peer-to-peer interrupt signaling between devices coupled via interconnects | |
CN106155960B (zh) | 基于gpio握手和edma的uart串口通信方法 | |
CN102541779B (zh) | 一种提高多数据缓冲区dma效率的***和方法 | |
CN104915303B (zh) | 基于PXIe总线的高速数字I/O*** | |
US20150026368A1 (en) | Direct memory access to storage devices | |
CN102420877B (zh) | 一种多模式高速智能异步串口通信模块及实现方法 | |
CN109189716A (zh) | 一种基于fpga的数据传输***及传输方法 | |
CN114662136B (zh) | 一种基于pcie通道的多算法ip核的高速加解密***及方法 | |
US9684613B2 (en) | Methods and systems for reducing spurious interrupts in a data storage system | |
KR20130009926A (ko) | 유연한 플래시 명령어 | |
CN108932207A (zh) | 带有缓存区的sdio-wifi数据传输方法及*** | |
CN104050133A (zh) | 一种基于fpga实现dsp与pc借助pcie总线进行通信的通信装置与通信方法 | |
CN110188059A (zh) | 数据有效位统一配置的流控式fifo缓存结构及方法 | |
CN109634901A (zh) | 一种基于uart的数据传输***及其控制方法 | |
CN105676689A (zh) | 实时软件接收机中采集数据循环存储与分发方法 | |
CN103838694B (zh) | 一种fpga高速读取usb接口数据的方法 | |
CN109840233A (zh) | 基于fpga的60x总线桥接***、方法及介质 | |
CN109582619A (zh) | 一种高速串行总线与低速串行总线数据传输和转换方法 | |
CN110427206B (zh) | 一种基于zynq的算法动态更新方法 | |
CN104731747A (zh) | 一种高速总线数据接收中的分级缓冲实现方法 | |
CN115328832B (zh) | 一种基于pcie dma的数据调度***与方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |