CN104714918A - 主机环境下高速fc总线数据接收及缓冲方法 - Google Patents
主机环境下高速fc总线数据接收及缓冲方法 Download PDFInfo
- Publication number
- CN104714918A CN104714918A CN201310688993.1A CN201310688993A CN104714918A CN 104714918 A CN104714918 A CN 104714918A CN 201310688993 A CN201310688993 A CN 201310688993A CN 104714918 A CN104714918 A CN 104714918A
- Authority
- CN
- China
- Prior art keywords
- data
- message
- message sink
- bus
- dma
- 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.)
- Granted
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 true CN104714918A (zh) | 2015-06-17 |
CN104714918B 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) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105550142A (zh) * | 2015-12-07 | 2016-05-04 | 中国航空工业集团公司西安航空计算技术研究所 | 一种高低速转换接口中的数据完整性处理方法 |
CN110011685A (zh) * | 2018-01-03 | 2019-07-12 | 立积电子股份有限公司 | 射频信号处理装置 |
CN110046114A (zh) * | 2019-03-06 | 2019-07-23 | 上海熠知电子科技有限公司 | 基于pcie协议的dma控制器及dma数据传输方法 |
CN110213168A (zh) * | 2018-02-28 | 2019-09-06 | 中航光电科技股份有限公司 | 一种fc转以太网的数据转换流量控制方法及装置 |
CN110462599A (zh) * | 2017-02-13 | 2019-11-15 | 微芯片技术股份有限公司 | 用于循环缓冲器的自主硬件管理的设备和方法 |
CN110727402A (zh) * | 2019-09-12 | 2020-01-24 | 中航光电科技股份有限公司 | 一种高速fc数据实时接收不丢帧存储方法 |
CN114416613A (zh) * | 2021-12-29 | 2022-04-29 | 苏州雄立科技有限公司 | 一种dma数据传输系统及方法 |
Citations (7)
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总线与高速智能统一总线的直接接口方法 |
US20110264855A1 (en) * | 2010-04-27 | 2011-10-27 | Hitachi, Ltd. | Storage apparatus and method for controlling storage apparatus |
US8116206B1 (en) * | 2008-02-26 | 2012-02-14 | Qlogic, Corporation | Method and system for routing frames in a network |
CN103049414A (zh) * | 2012-12-28 | 2013-04-17 | 中国航空工业集团公司第六三一研究所 | Fc总线与can总线间数据的转换及传输方法 |
CN103049413A (zh) * | 2012-12-28 | 2013-04-17 | 中国航空工业集团公司第六三一研究所 | 基于FC与Camlink总线的数据转换与传输方法 |
CN103336745A (zh) * | 2013-07-01 | 2013-10-02 | 无锡众志和达存储技术股份有限公司 | 一种基于ssd缓存的fc hba及其设计方法 |
-
2013
- 2013-12-15 CN CN201310688993.1A patent/CN104714918B/zh active Active
Patent Citations (7)
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 |
US20110264855A1 (en) * | 2010-04-27 | 2011-10-27 | Hitachi, Ltd. | Storage apparatus and method for controlling storage apparatus |
CN102023947A (zh) * | 2010-12-02 | 2011-04-20 | 西北工业大学 | Ieee1394总线与高速智能统一总线的直接接口方法 |
CN103049414A (zh) * | 2012-12-28 | 2013-04-17 | 中国航空工业集团公司第六三一研究所 | Fc总线与can总线间数据的转换及传输方法 |
CN103049413A (zh) * | 2012-12-28 | 2013-04-17 | 中国航空工业集团公司第六三一研究所 | 基于FC与Camlink总线的数据转换与传输方法 |
CN103336745A (zh) * | 2013-07-01 | 2013-10-02 | 无锡众志和达存储技术股份有限公司 | 一种基于ssd缓存的fc hba及其设计方法 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105550142A (zh) * | 2015-12-07 | 2016-05-04 | 中国航空工业集团公司西安航空计算技术研究所 | 一种高低速转换接口中的数据完整性处理方法 |
CN110462599A (zh) * | 2017-02-13 | 2019-11-15 | 微芯片技术股份有限公司 | 用于循环缓冲器的自主硬件管理的设备和方法 |
CN110462599B (zh) * | 2017-02-13 | 2023-08-29 | 微芯片技术股份有限公司 | 用于循环缓冲器的自主硬件管理的设备和方法 |
CN110011685A (zh) * | 2018-01-03 | 2019-07-12 | 立积电子股份有限公司 | 射频信号处理装置 |
CN110213168A (zh) * | 2018-02-28 | 2019-09-06 | 中航光电科技股份有限公司 | 一种fc转以太网的数据转换流量控制方法及装置 |
CN110046114A (zh) * | 2019-03-06 | 2019-07-23 | 上海熠知电子科技有限公司 | 基于pcie协议的dma控制器及dma数据传输方法 |
CN110046114B (zh) * | 2019-03-06 | 2020-08-14 | 上海熠知电子科技有限公司 | 基于pcie协议的dma控制器及dma数据传输方法 |
CN110727402A (zh) * | 2019-09-12 | 2020-01-24 | 中航光电科技股份有限公司 | 一种高速fc数据实时接收不丢帧存储方法 |
CN110727402B (zh) * | 2019-09-12 | 2022-03-15 | 中航光电科技股份有限公司 | 一种高速fc数据实时接收不丢帧存储方法 |
CN114416613A (zh) * | 2021-12-29 | 2022-04-29 | 苏州雄立科技有限公司 | 一种dma数据传输系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104714918B (zh) | 2018-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104714918A (zh) | 主机环境下高速fc总线数据接收及缓冲方法 | |
US20200174953A1 (en) | Methods and apparatus for synchronizing uplink and downlink transactions on an inter-device communication link | |
CN108351813B (zh) | 用于在非易失性存储器快速(NVMe)控制器的不同网络地址上使能个别的NVMe输入/输出(IO)队列的方法和装置 | |
CN102866971B (zh) | 传输数据的装置、系统及方法 | |
CN109271335B (zh) | 一种多通道数据源ddr缓存的fpga实现方法 | |
CN101916236B (zh) | 为邮递性中断事务提供留存机构的方法、装置和系统 | |
CN112527730A (zh) | 用于处理具有设备附接的存储器的远程直接存储器存取操作的系统、装置和方法 | |
CN106681949B (zh) | 基于一致性加速接口的直接内存操作实现方法 | |
KR101298862B1 (ko) | Pci 익스프레스를 통해 ⅰd 기반 스트림을 가능하게 하는 방법 및 장치 | |
US20140250202A1 (en) | Peer-to-peer interrupt signaling between devices coupled via interconnects | |
CN106155960A (zh) | 基于gpio握手和edma的uart串口通信方法 | |
CN101599004B (zh) | 基于fpga的sata控制器 | |
CN105224482A (zh) | 一种fpga加速卡高速存储系统 | |
JP2016076257A5 (zh) | ||
CN104021107A (zh) | 一种支持NVMe PCIE SSD系统设计方法 | |
CN103154920A (zh) | 统一i/o适配器 | |
US9684613B2 (en) | Methods and systems for reducing spurious interrupts in a data storage system | |
US20190121765A1 (en) | System, Apparatus And Method For Hardware-Based Bi-Directional Communication Via Reliable High Performance Half-Duplex Link | |
CN104050133A (zh) | 一种基于fpga实现dsp与pc借助pcie总线进行通信的通信装置与通信方法 | |
WO2022213865A1 (zh) | 计算机设备、虚拟化加速设备、数据传输方法及存储介质 | |
KR20130036727A (ko) | 반도체 저장 장치 기반 시스템에서 메인 메모리가 없는 직접 메모리 엑세스 시스템 | |
TWI528183B (zh) | 使用資料傳輸率節流來執行序列ata連接的資料傳輸之方法、電腦可讀媒體和系統 | |
CN104239252A (zh) | 数据存储系统的数据传输方法、装置及系统 | |
CN204423250U (zh) | 一种具有多路高速智能can的x86嵌入式cpu主板 | |
CN104063345A (zh) | 一种sata桥设备 |
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 |