CN104714918A - 主机环境下高速fc总线数据接收及缓冲方法 - Google Patents

主机环境下高速fc总线数据接收及缓冲方法 Download PDF

Info

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
Application number
CN201310688993.1A
Other languages
English (en)
Other versions
CN104714918B (zh
Inventor
朱志强
黄韬
邓发俊
李健
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
AVIC No 631 Research Institute
Original Assignee
AVIC No 631 Research Institute
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by AVIC No 631 Research Institute filed Critical AVIC No 631 Research Institute
Priority to CN201310688993.1A priority Critical patent/CN104714918B/zh
Publication of CN104714918A publication Critical patent/CN104714918A/zh
Application granted granted Critical
Publication of CN104714918B publication Critical patent/CN104714918B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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总线数据提交主机应用进行处理。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标准总线接口。
CN201310688993.1A 2013-12-15 2013-12-15 主机环境下高速fc总线数据接收及缓冲方法 Active CN104714918B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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及其设计方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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