CN108616411B - 一种fc监控卡 - Google Patents
一种fc监控卡 Download PDFInfo
- Publication number
- CN108616411B CN108616411B CN201611140907.3A CN201611140907A CN108616411B CN 108616411 B CN108616411 B CN 108616411B CN 201611140907 A CN201611140907 A CN 201611140907A CN 108616411 B CN108616411 B CN 108616411B
- Authority
- CN
- China
- Prior art keywords
- frame
- data
- fifo
- memory
- unit
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/12—Network monitoring probes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/20—Support for services
- H04L49/208—Port mirroring
Abstract
本发明属于机载计算机通信技术,提出了一种FC监控卡。本发明通过在FPGA内部开辟两级帧缓存区空间,接收来自FC交换机的多个监控端口的数据,根据CPU在内存分配对应的地址空间,FPGA通过PCIe接口主动将缓存数据搬移到CPU内存空间中,并上报给CPU,完成监控数据的上传。
Description
技术领域
本发明属于计算机通信技术,涉及一种FC监控卡的实现方法,该方法可以推广到其他模式交换机的监控卡设计中。
背景技术
FC交换机中通常包含普通通信端口和监控端口,监控端口用于监控交换机中某个输入端口、某个输出端口或者含特殊消息ID的帧数据,监控端口在维护交换机和分析交换数据等方面有着重要的作用。
本专利创新地提出了一种方案,应用于FC监控卡的设计,可以将交换机监控端口数据接收缓存至PC主机的内存中,PC主机通过FC监控卡可以直接对交换机监控端口的数据进行实时分析处理。
发明内容
本发明的目的是提供一种FC监控卡的实现方法,通过接收FC监控端口的帧数据,缓存在逻辑内部的第一级缓存单元中,通过查询主机分配内存的首地址,将帧数据转存至第二级缓存单元中,并将当前数据帧对应要存储的地址信息和帧长度等信息存储在“帧指示fifo”中。DMA模块根据“帧指示fifo”中的信息,将二级缓存单元中的数据送至PCIe接口,通过PCIe接口直接写入PC主机对应的内存空间中,完成监控端口数据上传。
为达到以上目的,一种FC监控卡,包括若干个监控端口处理单元、DMA状态轮询模块以及PCIe接口模块。
每个监控端口处理单元包括FC Mac接口单元、第一级帧缓存单元、第二级帧缓存单元、接收控制单元、已分配内存指示fifo、已使用内存指示fifo和帧指示fifo。
其中,FC Mac接口单元接收并解析FC帧数据,第一级帧缓存单元对FC帧数据根据已分配内存指示fifo进行第一级缓存,第二级帧缓存单元用于存储即将送到PCIe接口模块的帧数据,接收控制单元用于控制接收数据帧从FC Mac接口单元到PCIe接口模块的控制处理,DMA状态轮询模块用于对各个监控端口处理单元的第二级帧缓存单元数据轮流发送处理。已分配内存指示fifo用于存储主机分配的帧数据存储在内存首地址。已使用内存指示fifo用于通知主机已经存储到主机内存中的帧数据的内存首地址、帧指示fifo用于存储即将DMA至内存的帧数据的内存首地址和帧长度。PCIe接口用于连接主机和监控卡,用于双向数据传输。
一种FC监控数据上传方法,包括以下步骤:
步骤1:上电初始化时候,主机CPU通过PCIe接口将分配的相应的帧存储空间的首地址写入“已分配内存分配fifo”。
步骤2:FC Mac端口接收来自监控端口的监控帧数据,并缓存入第一级接收帧缓冲区中。如果第一级缓冲区满,则丢弃当前帧数据。
步骤3:如果第一级接收帧缓存单元非空,接收调度模块查询“已分配内存指示fifo”状态,如果“已分配内存指示fifo”为空,不做任何操作,直至“已分配内存指示fifo”非空,接收调度模块将从第一级帧缓存单元取出一帧数据,转存储到第二级缓存单元。然后从“已分配内存指示fifo”取出一个数据和当前发送的数据帧的帧长度一起存储到“帧指示fifo”中。
步骤4:DMA轮询模块检测各个监控端口处理单元的“帧指示fifo”,如果fifo非空,DMA模块取出fifo中的数据,根据数据指示,将第二级缓存单元中的帧数据封装成PCIe帧,并发往与主机相连的PCIe接口。如果fifo为空,直接跳转到下个端口。
步骤5:DAM模块发送完当前监控端口处理单元的一帧数据后,将从“帧指示fifo”中取出的内存首地址转存到“已使用内存指示fifo”中,并检测下个监控端口处理单元对应的“帧指示fifo”,看是否有监控数据需要发送。
步骤6:重复步骤4-5的操作。循环轮询发送各个监控端口处理单元的数据。
本发明的有益效果是:
a)使用本发明中实现的监控卡,主机CPU开销小。CPU只需要负责分配内存空间,数据传输完全不需要CPU干预,监控卡直接将监控端口的数据帧上传到分配的内存空间中。
b)本发明中的监控卡扩展灵活,升级方便,在PCIe带宽满足的情况下,可以使用一个PCIe端口同时上传多个监控端口的数据。
c)本发明设计方案简单,易于在可编程逻辑器件内部实现,并且工作稳定可靠。
附图说明
图1监控卡外部连接示意图;
图2监控卡逻辑内部实现框图。
具体实施方式
下面结合附图及具体实例对本发明做进一步的详细说明。
如图2所示,一种FC监控卡,包括若干个监控端口处理单元、DMA状态轮询模块以及PCIe接口模块。
每个监控端口处理单元包括FC Mac接口单元、接收控制单元、第一级帧缓存单元、第二级帧缓存单元,已分配内存指示fifo、已使用内存指示fifo和帧指示fifo。
在上电时刻主机初始化“已分配内存fifo”,根据内存剩余空间大小,将可以分配区间的首地址通过PCIe接口写入该fifo。
FC Mac接口单元负责对FC帧的Mac层解析,包括端口上电初始化,端口状态机跳转,处理光纤通道的原语信号和原语序列,将接收到的帧数据提取出来,并回应RRD原语信号等。
接收控制单元检测到FC Mac单元接收到帧数据后,首先检查第一级帧缓存单元是否为满,如果第一级缓存单元已满,说明第一级缓存单元没有多余的帧存储空间,则直接丢弃当前帧数据。如果第一级帧缓存单元非满,则产生第一级帧缓存单元的写控制信号,并将来自FC Mac的帧数据写入第一级缓存单元。在写第一级缓存单元的同时,对当前帧长度进行统计,并记录帧长度,如果帧长度超过标准帧长度,说明当前帧为异常的超长帧数据,超出标准帧长的数据部分全部丢弃,记录的帧长为实际写入的数据长度。接收帧数据写入第一级缓存单元完毕后,发送一个应答标志信号给FC Mac模块,FC Mac模块往对应的监控端口回应一个RRD原语信号。
第一级缓存单元的存储空间划分为若干个数据帧的存储单元,每个数据帧的存储单元要大于FC最大的帧长度。当前帧数据存储完毕,自动跳转至下一帧的起始地址,直至第一级缓存单元的所有帧存储单元全部被占用。当第一级缓存单元非空的时候(至少存储了一帧数据),查询“已分配内存指示fifo”。“已分配内存指示fifo”用于指示主机分配的可以用于存储监控帧数据的内存区间首地址,如果该fifo非空,说明CPU已经在内存分配了对应帧存储空间,第一级缓存单元开始向第二级缓存单元搬移帧数据,同时从“已分配内存指示fifo”读取该帧存放在内存的首地址,结合当前帧长度一起写入到“帧指示fifo”中。
DMA状态轮询模块循环检测各个监控端口处理单元对应的“帧指示fifo”,如果帧指示fifo为空,说明当前监控端口处理单元没有收到需要上传的监控帧数据,跳过当前监控端口处理单元,检测下个监控端口处理单元的“帧指示fifo”。如果帧指示fifo不为空,则取出当前“帧指示fifo”中的存储数据,并从第二级缓存单元取出对应的帧数据,封装成PCIe数据帧,发往主机。当前帧数据发送完毕后,接收控制单元往“已使用内存fifo”中写入从“帧指示fifo”中取出的帧数据存储在内存的首地址。主机根据“已使用内存指示fifo”中存储的数据,知道哪些内存已经存储了帧数据,可以取走。主机定时检测“已使用内存指示fifo”,如果“已使用内存指示fifo”非空,则读取“已使用内存指示fifo”中的数据,获取已经存储在内存中数据帧的首地址和数据长度,并将内存中对应的帧数据取走后,将该内存区间的首地址重新写入到“已分配内存指示fifo”中,完成内存的回收和重分配。
Claims (2)
1.一种FC监控卡,其特征是,包括若干个监控端口处理单元、DMA状态轮询模块以及PCIe接口模块;
每个监控端口处理单元包括FC Mac接口单元、第一级帧缓存单元、第二级帧缓存单元、接收控制单元、已分配内存指示fifo、已使用内存指示fifo和帧指示fi fo;
其中,FC Mac接口单元接收并解析FC帧数据,第一级帧缓存单元对FC帧数据根据已分配内存指示fifo进行第一级缓存,第二级帧缓存单元用于存储即将送到PCIe接口模块的帧数据,接收控制单元用于控制接收数据帧从FC Mac接口单元到PCIe接口模块的控制处理,DMA状态轮询模块用于对各个监控端口处理单元的第二级帧缓存单元数据轮流发送处理;已分配内存指示fifo用于指示主机分配的可以用于存储监控帧数据的内存区间首地址;已使用内存指示fifo用于通知主机已经存储到主机内存中的帧数据的内存首地址、帧指示fifo用于存储即将DMA至内存的帧数据的内存首地址和帧长度;PCIe接口用于连接主机和监控卡,用于双向数据传输。
2.一种FC监控 数据上传方法,包括以下步骤:
步骤1:上电初始化时候,主机CPU通过PCIe接口将分配的相应的帧存储空间的首地址写入“已分配内存分配fifo”;
步骤2:FC Mac端口接收来自监控端口的监控帧数据,并缓存入第一级帧缓存单元中;如果第一级帧缓存单元满,则丢弃当前帧数据;
步骤3:如果第一级帧缓存单元非空,接收调度模块查询“已分配内存指示fifo”状态,如果“已分配内存指示fifo”为空,不做任何操作,直至“已分配内存指示fifo”非空,接收调度模块将从第一帧缓存单元取出一帧数据,转存储到第二级帧缓存单元;然后从“已分配内存指示fifo”取出一个数据和当前发送的数据帧的帧长度一起存储到“帧指示fifo”中;
步骤4:DMA状态轮询模块检测各个监控端口处理单元的“帧指示fifo”,如果fifo非空,DMA状态轮询模块取出fifo中的数据,根据数据指示,将第二级帧缓存单元中的帧数据封装成PCIe帧,并发往与主机相连的PCIe 接口;如果fifo为空,直接跳转到下个端口;
步骤5:DMA状态轮询模块发送完当前监控端口处理单元的一帧数据后,将从“帧指示fifo”中取出的内存首地址转存到“已使用内存指示fifo”中,并检测下个监控端口处理单元对应的“帧指示fifo”,看是否有监控数据需要发送;
步骤6:重复步骤4-5的操作;循环轮询发送各个监控端口处理单元的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611140907.3A CN108616411B (zh) | 2016-12-12 | 2016-12-12 | 一种fc监控卡 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611140907.3A CN108616411B (zh) | 2016-12-12 | 2016-12-12 | 一种fc监控卡 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108616411A CN108616411A (zh) | 2018-10-02 |
CN108616411B true CN108616411B (zh) | 2021-12-24 |
Family
ID=63656943
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611140907.3A Active CN108616411B (zh) | 2016-12-12 | 2016-12-12 | 一种fc监控卡 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108616411B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105007307A (zh) * | 2015-06-18 | 2015-10-28 | 浪潮(北京)电子信息产业有限公司 | 一种存储控制方法和系统 |
CN105450475A (zh) * | 2015-12-07 | 2016-03-30 | 中国航空工业集团公司西安航空计算技术研究所 | 一种fc交换机测试设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7907532B2 (en) * | 2005-11-23 | 2011-03-15 | Jds Uniphase Corporation | Pool-based network diagnostic systems and methods |
US8599691B2 (en) * | 2010-09-14 | 2013-12-03 | Brocade Communications Systems, Inc. | Manageability tools for lossless networks |
-
2016
- 2016-12-12 CN CN201611140907.3A patent/CN108616411B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105007307A (zh) * | 2015-06-18 | 2015-10-28 | 浪潮(北京)电子信息产业有限公司 | 一种存储控制方法和系统 |
CN105450475A (zh) * | 2015-12-07 | 2016-03-30 | 中国航空工业集团公司西安航空计算技术研究所 | 一种fc交换机测试设备 |
Non-Patent Citations (3)
Title |
---|
A high-reliability PCIe communication system for small FPGAs;H. Kavianipour等;《2013 IEEE Nuclear Science Symposium and Medical Imaging Conference (2013 NSS/MIC)》;20140612;第1-4页 * |
FC交换机中优先级技术的研究和实现;李大鹏等;《测控技术》;20151231;第34卷(第12期);第100-102页 * |
面向数据中心的新一代交换架构;杭州华三通信技术有限公司;《电信工程技术与标准化》;20101031;第23卷(第10期);第67-71页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108616411A (zh) | 2018-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109412914B (zh) | 流数据与axi接口通信装置 | |
KR101378270B1 (ko) | Sas 확장기를 포함하는 저장 시스템에서 데이터 판독을 가능하게 하기 위한 방법, 시스템 및 sas 확장기 디바이스 | |
US8429324B2 (en) | Bus-protocol converting device and bus-protocol converting method | |
US20110119464A1 (en) | Data storage system comprising a mapping bridge for aligning host block size with physical block size of a data storage device | |
US20060174049A1 (en) | USB to SATA bridge system | |
CN107168644B (zh) | 基于sfp光纤接口的高速大容量宽带i/q数据记录仪 | |
KR20180082579A (ko) | 저장된 데이터에 액세스하기 위한 방법, 및 관련 컨트롤러, 장치, 호스트와 시스템 | |
EP3637242A1 (en) | Data access method and apparatus | |
CN101339541B (zh) | 一种dma数据传输方法及dma控制器 | |
CN102073611B (zh) | 一种i2c总线控制系统及方法 | |
CN111506249B (zh) | 一种基于zynq平台的数据交互系统及方法 | |
CN103517085B (zh) | 一种基于视频解码设计实现远程服务器管理的方法 | |
TWI398777B (zh) | 使用資料傳輸率節流來執行序列ata連接的資料傳輸之方法、電腦可讀媒體和計算裝置 | |
CN116225998A (zh) | Dma数据传输系统 | |
CN112765055B (zh) | 存储设备的控制部件 | |
TWI584120B (zh) | 用於動態調適快取的方法及系統 | |
CN107329706B (zh) | 一种多通道can总线数据记录存储设备 | |
CN112764669B (zh) | 一种硬件加速器 | |
CN108616411B (zh) | 一种fc监控卡 | |
WO2020124347A1 (zh) | Fpga芯片和具有该fpga芯片的电子设备 | |
CN114860158A (zh) | 一种高速数据采集记录方法 | |
JP2014167763A (ja) | 電子機器及びその制御方法 | |
CN114691023A (zh) | 读写设备的读写操作方法、读写设备及可读存储介质 | |
CN102469290A (zh) | 摄像机图像传输装置 | |
CN116136748B (zh) | 基于FPGA实现的高带宽NVMe SSD读写系统与方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |