浅谈基于SOPC技术的光纤通道网络接口卡的实现
潘洋
摘要:文章介绍了一种基于SPOC系统的光纤通道网络接口卡的方案,该设计以NiosⅡ作为软核处理器,将其与网络接口卡控制逻辑集成在FPGA芯片中,采用流水技术实现数据的发送以及接收。测试结果显示,该设计通信协议简单,具有可靠的通信性能,使系统的稳定性大大提高。此外自定义功能促进了NIC的快速开发。
关键词:SPOC;光纤通道;网络接口卡
光纤通道最早是由美国开发出来的,属于一套技术标准,不仅具有较高的带宽和可靠性,而且误码率低,数据传输速率快,高达Gbps数量级。但是光纤通道一个最大的问题在于帧格式冗长,受到帧格式的影响,在通信时就会出现非常严重的延迟现象,为了解决这一问题,有的高校根据光纤通道标准提出了信令寻径式交换技术的高速光纤传输交换网络,这一改进不仅提高了网络的效率,而且成本也比较低。本文所设计的网络接口卡就是在这一集群网络上开发出来的,优势显著,发展前景广阔。最初网卡是基于FPGA实现的,简单来说就是将网络接口卡的全部功能都集中在FPGA芯片上,由技术人员自己对控制逻辑部分进行设计,近年来,高集群系统对节点机通信性能的要求越来越高,而另—方面,Altera公司开发出了NiosⅡ嵌入式处理器,这也意味着对更加智能化的网络接口卡进行研究尤为必要。
1 SPOC与Nios Ⅱ技术介绍
SPOC,简单来说就是一种系统设计技术,是在FPGA基础上实现系统设计的。该技术不仅灵活,而且高效地将I/O、存储器和处理器以及系统开发所涉及到的其它部件全都集中在一个PLD上,从而形成可编程片上系统。
NiosⅡ是在第一代Nios软核处理器基础上发展而来的。该处理器最大的特点在于用户可以根据自身需求对其功能进行定制,灵活性更高,速度也更快一些。该公司推出的软件以及硬件能够使设计者在尽可能短的时间内设计出功能强大的处理器系统。在SPOC下,设计者侧重于系统的功能以及整体构架,对于电路设计等细节部分则不需要进行长时间的考虑,并且设计出来的系统更可靠、稳定。
2 NIC方案设计
网络接口卡主要是由3部分组成的,分别是FPGA(基于嵌入式Nios软核)芯片、光收发器、串并信号转换器件。芯片是由NIC、CPU组成,NIC由3部分组成,分别是收发控制逻辑、PCI接口控制以及8b/10b转换。PCI接口控制和PCI总线、收发控制逻辑和片外存储器相连、8b/10b转换和并信号转换器件分别连接到一起。其数据传输串行速率为1.0625Gbps,信号的传输是由光纤实现的。首先,光收发器自动接收光信号,然后将其转换为电信号,通过差分电路将电信号传送至串并转换器件,对信号进行转换,生成10bit并行信号,最后再将信号传送至FPGA芯片,按照要求进行处理,将处理完的数据传送至总线传回节点机内存。发送过程正好与NIC接收过程相反。此次设计将所有逻辑电路全都集中在一片FPGA中,不仅结构更加紧凑,而且延迟比较小,起到了优化系统的重要作用,使NIC传输速率得以大大提高。
3 NIC结构设计
3.1 功能部件
光收发器简单来说就是负责接收光信号的功能部件,对接收到的信号进行转换之后,再输出到指定器件,同时还包括待发送电信号的转换和发送。
在该设计中首先需要解决的一个问题就是字同步,接下来的功能设计都是以此为基础的,因此,解决好这一问题尤为重要。光纤传输的信号都是并行信号,借助光接收器件将其转变为串行信号,然后由串并转换器件进行转换就可以实现字同步。但需要注意的是,元语系列和帧定界符全部为一个字,并且总线也是以字为单位对数据进行传输,所以,字同步是非常重要的,可以说是整个设计的关键。
NIC控制逻辑:(1)接口控制。这不仅是设计的难点,同时也是重点之一。接口控制的主要任务就是建立起主机对网卡的控制关系,一般来说是通过网卡专有命令实现控制的。在不同时间,网卡都要以主/从模式进行工作,由VHDL语言描述实现这一部分控制逻辑。在主模式状态下,主要是对DMA下数据传输进行控制;而在从模式状态下,就需要对网卡设备进行配置,在该模式下,需要解决的问题有,读取网卡状态,向网卡发送控制信号等。
8B/10B编解码逻辑的主要功能就是对8B/10B编解码进行控制。一个字为8bit,通过8B/10B就可以将8bit转换为10bit,以光纤为媒介,将字发送至接收方,接收与这一过程正好完全相反,在接收到10bit的编码之后,通过10B/8B将接受到的信号转换成8bit编码,存储在接收缓冲区中。
3.2 硬件结构
以Nios Ⅱ为基础对网络接口卡进行设计,结构的组成一共包括3个层次:分别是硬件层、应用层以及抽象层,硬件层设计硬件系统,应用层设计应用程序,抽象层为硬件驱动。
本次设计一共选取了3种型号,分别是经济、标准、快速,每一种型号占用的逻辑单元数目都是不同的,并且这3种型号都优化了性能以及价格,应用范围也比较广阔。本文选择的是经济型。添加Avalon slave port接口,主要功能是实现对Nios Ⅱ的访问和控制片外SRAM。这样一来就能够对数据传输进行控制,从而实现对整个系统的控制。SRAM通过三态桥得以从总线接口到加入到系统。具体步骤:对相关信息进行设置,然后再设置建立、保持、等待时间等,这些操作完成之后就可以将SRAM添加到系统中。在调试时需要对建立、保持、等待时间进行反复修改,直到能够正确访问方可停止修改。为了能够将JTAG、SRAM以及ROM与总线连接到一起,需要添加三态桥,只有这样,构建的嵌入式系统才完整。
在.bdf文件中将信号连接到一起,按照要求进行布局布线,然后可以对系统进行仿真测试,将.pof文件下载到硬件电路板上,进行多次调试和方案修改,直到能够满足设计要求。系统采用主动串行模式AS方式进行配置,将文件下载到EPCS中,这样一来,系统的自动配置功能即可实现,完成之后就可以进行通信。系统时钟是由晶振提供的,系统配置是由全部配置器件实现的。
4 测试结果分析
通过表1能够直观看出,在通信延迟方面,信令寻径式光纤传输交换网要优于千兆以太网;在带宽方面,前者明显高于后者,近3倍;在数据传输率方面前者也要高于后者,但是并不明显。通过表2测试数据能够看出,本文设计的网络接口卡能够确保逻辑的可实现性,并且通信性能优越,系统稳定、可靠。
5 结语
综上所述,本文对基于SOPC技术的光纤通道网络接口卡的实现进行了研究。本文所设计的网络接口卡是基于SOPC技术实现的,与以往设计技术相比,系统效率更高,也更稳定。缓冲区的扩展使发送和接收实现了流水操作,通信协议变得更加简单。另外,本设计采用的是嵌入式设计技术,这样一来今后开发智能网卡就比较简单,这也是本次设计一个最大的亮点。