一种FC监控卡制造技术

技术编号:19101647 阅读:44 留言:0更新日期:2018-10-03 03:49
本发明专利技术属于机载计算机通信技术,提出了一种FC监控卡。本发明专利技术通过在FPGA内部开辟两级帧缓存区空间,接收来自FC交换机的多个监控端口的数据,根据CPU在内存分配对应的地址空间,FPGA通过PCIe接口主动将缓存数据搬移到CPU内存空间中,并上报给CPU,完成监控数据的上传。

【技术实现步骤摘要】
一种FC监控卡
本专利技术属于计算机通信技术,涉及一种FC监控卡的实现方法,该方法可以推广到其他模式交换机的监控卡设计中。
技术介绍
FC交换机中通常包含普通通信端口和监控端口,监控端口用于监控交换机中某个输入端口、某个输出端口或者含特殊消息ID的帧数据,监控端口在维护交换机和分析交换数据等方面有着重要的作用。本专利创新地提出了一种方案,应用于FC监控卡的设计,可以将交换机监控端口数据接收缓存至PC主机的内存中,PC主机通过FC监控卡可以直接对交换机监控端口的数据进行实时分析处理。
技术实现思路
本专利技术的目的是提供一种FC监控卡的实现方法,通过接收FC监控端口的帧数据,缓存在逻辑内部的第一级缓存单元中,通过查询主机分配内存的首地址,将帧数据转存至第二级缓存单元中,并将当前数据帧对应要存储的地址信息和帧长度等信息存储在“帧指示fifo”中。DMA模块根据“帧指示fifo”中的信息,将二级缓存单元中的数据送至PCIe接口,通过PCIe接口直接写入PC主机对应的内存空间中,完成监控端口数据上传。为达到以上目的,一种FC监控卡,包括若干个监控端口处理单元、DMA状态轮询模块以及PCIe接口模块。每个监控端口处理单元包括FCMac接口单元、第一级帧缓存单元、第二级帧缓存单元、接收控制单元、已分配内存指示fifo、已使用内存指示fifo和帧指示fifo。其中,FCMac接口单元接收并解析FC帧数据,第一级帧缓存单元对FC帧数据根据已分配内存指示fifo进行第一级缓存,第二级帧缓存单元用于存储即将送到PCIe接口模块的帧数据,接收控制单元用于控制接收数据帧从FCMac接口单元到PCIe接口模块的控制处理,DMA状态轮询模块用于对各个监控端口处理单元的第二级帧缓存单元数据轮流发送处理。已分配内存指示fifo用于存储主机分配的帧数据存储在内存首地址。已使用内存指示fifo用于通知主机已经存储到主机内存中的帧数据的内存首地址、帧指示fifo用于存储即将DMA至内存的帧数据的内存首地址和帧长度。PCIe接口用于连接主机和监控卡,用于双向数据传输。一种FC监控数据上传方法,包括以下步骤:步骤1:上电初始化时候,主机CPU通过PCIe接口将分配的相应的帧存储空间的首地址写入“已分配内存分配fifo”。步骤2:FCMac端口接收来自监控端口的监控帧数据,并缓存入第一级接收帧缓冲区中。如果第一级缓冲区满,则丢弃当前帧数据。步骤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接口模块。每个监控端口处理单元包括FCMac接口单元、接收控制单元、第一级帧缓存单元、第二级帧缓存单元,已分配内存指示fifo、已使用内存指示fifo和帧指示fifo。在上电时刻主机初始化“已分配内存fifo”,根据内存剩余空间大小,将可以分配区间的首地址通过PCIe接口写入该fifo。FCMac接口单元负责对FC帧的Mac层解析,包括端口上电初始化,端口状态机跳转,处理光纤通道的原语信号和原语序列,将接收到的帧数据提取出来,并回应RRD原语信号等。接收控制单元检测到FCMac单元接收到帧数据后,首先检查第一级帧缓存单元是否为满,如果第一级缓存单元已满,说明第一级缓存单元没有多余的帧存储空间,则直接丢弃当前帧数据。如果第一级帧缓存单元非满,则产生第一级帧缓存单元的写控制信号,并将来自FCMac的帧数据写入第一级缓存单元。在写第一级缓存单元的同时,对当前帧长度进行统计,并记录帧长度,如果帧长度超过标准帧长度,说明当前帧为异常的超长帧数据,超出标准帧长的数据部分全部丢弃,记录的帧长为实际写入的数据长度。接收帧数据写入第一级缓存单元完毕后,发送一个应答标志信号给FCMac模块,FCMac模块往对应的监控端口回应一个RRD原语信号。第一级缓存单元的存储空间划分为若干个数据帧的存储单元,每个数据帧的存储单元要大于FC最大的帧长度。当前帧数据存储完毕,自动跳转至下一帧的起始地址,直至第一级缓存单元的所有帧存储单元全部被占用。当第一级缓存单元非空的时候(至少存储了一帧数据),查询“已分配内存指示fifo”。“已分配内存指示fifo”用于指示主机分配的可以用于存储监控帧数据的内存区间首地址,如果该fifo非空,说明CPU已经在内存分配了对应帧存储空间,第一级缓存单元开始向第二级缓存单元搬移帧数据,同时从“已分配内存指示fifo”读取该帧存放在内存的首地址,结合当前帧长度一起写入到“帧指示fifo”中。DMA状态轮询模块循环检测各个监控端口处理单元对应的“帧指示fifo”,如果帧指示fifo为空,说明当前监控端口处理单元没有收到需要上传的监控帧数据,跳过当前监控端口处理单元,检测下个监控端口处理单元的“帧指示fifo”。如果帧指示fifo不为空,则取出当前“帧指示fifo”中的存储数据,并从第二级缓存单元取出对应的帧数据,封装成PCIe数据帧,发往主机。当前帧数据发送完毕后,接收控制单元往“已使用内存fifo”中写入从“帧指示fifo”中取出的帧数据存储在内存的首地址。主机根据“已使用内存指示fifo”中存储的数据,知道哪些内存已经存储了帧数据,可以取走。主机定时检测“已使用内存指示fifo”,如果“已使用内存指示fifo”非空,则读取“已使用内存指示fifo”中的数据,获取已经存储在内存中数据帧的首地址和数据长度,并将内存中对应的帧数据取走后,将该内存区间的首地址重新写入到“已分配内存指示fifo”中,完成内存的回收和重分配。本文档来自技高网...

【技术保护点】
1.一种FC监控卡,其特征是,包括若干个监控端口处理单元、DMA状态轮询模块以及PCIe接口模块;每个监控端口处理单元包括FC Mac接口单元、第一级帧缓存单元、第二级帧缓存单元、接收控制单元、已分配内存指示fifo、已使用内存指示fifo和帧指示fifo;其中,FC Mac接口单元接收并解析FC帧数据,第一级帧缓存单元对FC帧数据根据已分配内存指示fifo进行第一级缓存,第二级帧缓存单元用于存储即将送到PCIe接口模块的帧数据,接收控制单元用于控制接收数据帧从FC Mac接口单元到PCIe接口模块的控制处理,DMA状态轮询模块用于对各个监控端口处理单元的第二级帧缓存单元数据轮流发送处理;已分配内存指示fifo用于存储主机分配的帧数据存储在内存首地址;已使用内存指示fifo用于通知主机已经存储到主机内存中的帧数据的内存首地址、帧指示fifo用于存储即将DMA至内存的帧数据的内存首地址和帧长度;PCIe接口用于连接主机和监控卡,用于双向数据传输。

【技术特征摘要】
1.一种FC监控卡,其特征是,包括若干个监控端口处理单元、DMA状态轮询模块以及PCIe接口模块;每个监控端口处理单元包括FCMac接口单元、第一级帧缓存单元、第二级帧缓存单元、接收控制单元、已分配内存指示fifo、已使用内存指示fifo和帧指示fifo;其中,FCMac接口单元接收并解析FC帧数据,第一级帧缓存单元对FC帧数据根据已分配内存指示fifo进行第一级缓存,第二级帧缓存单元用于存储即将送到PCIe接口模块的帧数据,接收控制单元用于控制接收数据帧从FCMac接口单元到PCIe接口模块的控制处理,DMA状态轮询模块用于对各个监控端口处理单元的第二级帧缓存单元数据轮流发送处理;已分配内存指示fifo用于存储主机分配的帧数据存储在内存首地址;已使用内存指示fifo用于通知主机已经存储到主机内存中的帧数据的内存首地址、帧指示fifo用于存储即将DMA至内存的帧数据的内存首地址和帧长度;PCIe接口用于连接主机和监控卡,用于双向数据传输。2.一种FC监控数据上传方法,包括以下步骤:步骤1:上电初始化时候,主机CPU通过PCIe接口将分配的相应的帧存储空间的首地址写入“已分配内存分配fi...

【专利技术属性】
技术研发人员:雷红蒲恺李大鹏田园李玉发季雷
申请(专利权)人:中国航空工业集团公司西安航空计算技术研究所
类型:发明
国别省市:陕西,61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1