基于FPGA的千兆(zhao)以太(tai)网交换芯片的设计
发布日期(qi):
2021-12-09

前言:以太网技术属于当前通信领域及信息领域的核心技术内容,其中,千兆以太网技术完美结合了以太网技术的应用优势,有效解决了传统以太网技术存在的不足之处。千兆以太网技术在原有基础上,对传输介质等组成物质进行了适当优化,如使用 8B/10B 的编解码方案、采用载波扩展技术以及分组突发技术等。随着千兆以太网技术的不断成熟与改进,以千兆以太网技术为代表的以太网技术俨然成为我国局域网的主流技术。为进一步强化千兆以太网技术的应用效果,研究人员结合 FPGA 技术及相关内容,对现有千兆以太网交换芯片进行充分优化,以达到提高千兆以太网使用性能的目的。 

千兆以太网(wang)交(jiao)换芯(xin)片的(de)工作原理分析 

     文章(zhang)所介绍的千(qian)兆(zhao)以(yi)太(tai)网交(jiao)换(huan)芯(xin)(xin)片主要(yao)按(an)照 IEEE802.3 标准对现有(you)(you)的 8 个独立千(qian)兆(zhao)端(duan)口(kou)之间的 MAC 帧(zhen)进行交(jiao)换(huan)与(yu)处理。与(yu)此(ci)同(tong)时(shi),该千(qian)兆(zhao)以(yi)太(tai)网交(jiao)换(huan)芯(xin)(xin)片可以(yi)同(tong)时(shi)兼容 10Mb/s 与(yu) 100Mb/s 的 MAC 帧(zhen)交(jiao)换(huan)要(yao)求。结合(he)以(yi)往的经验来看,千(qian)兆(zhao)以(yi)太(tai)网交(jiao)换(huan)芯(xin)(xin)片的工作原理主要(yao)围绕“学(xue)习”与(yu)“转发”两(liang)个方(fang)面(mian)(mian)进行开展(zhan)。一般来说,交(jiao)换(huan)芯(xin)(xin)片内部包含一个 MAC 地址(zhi)表(biao),且每一个 MAC 地址(zhi)表(biao)在(zai)存(cun)储(chu)单元方(fang)面(mian)(mian),主要(yao)以(yi)保(bao)留比(bi)特(te)、老化标志(zhi)、端(duan)口(kou)编(bian)号(hao)、MAC 地质(zhi)以(yi)及有(you)(you)效标志(zhi)等内容为主。根据实践证明,MAC 地址(zhi)表(biao)可以(yi)有(you)(you)效存(cun)储(chu) 4096 条关(guan)于(yu) MAC 地址(zhi)方(fang)面(mian)(mian)的索引(yin)信息。 

      端(duan)口(kou)在接(jie)收(shou) MAC 帧之后(hou),可以自(zi)(zi)动(dong)提取(qu) MAC 帧的(de)源(yuan)地(di)(di)址(zhi)(zhi)。此时(shi)(shi)交换(huan)芯(xin)片可以自(zi)(zi)动(dong)找寻上述地(di)(di)址(zhi)(zhi)索引(yin)信息内(nei)容(rong),如(ru)果没有找到,系统(tong)会(hui)自(zi)(zi)动(dong)将源(yuan)地(di)(di)址(zhi)(zhi)与接(jie)收(shou)到帧端(duan)口(kou)编(bian)号融为一体(ti),并(bing)自(zi)(zi)动(dong)形成(cheng)一条(tiao)全新的(de) MAC 地(di)(di)址(zhi)(zhi)索引(yin)信息。并(bing)在此基础上,自(zi)(zi)动(dong)存(cun)(cun)储到 MAC 地(di)(di)址(zhi)(zhi)索引(yin)内(nei)容(rong)当中(zhong)。欧宝app 一般将这个过程中(zhong)称(cheng)为千兆以太网交换(huan)芯(xin)片的(de)学习(xi)过程,交换(huan)芯(xin)片通过有效的(de)学习(xi)可以及时(shi)(shi)明确(que)主(zhu)机地(di)(di)址(zhi)(zhi)与端(duan)口(kou)之间(jian)的(de)内(nei)部(bu)联系,是否存(cun)(cun)在映射关系等。必要时(shi)(shi),交换(huan)芯(xin)片还会(hui)自(zi)(zi)动(dong)记录 VLAN 与各(ge)端(duan)口(kou)之间(jian)的(de)信息内(nei)容(rong)。 

MAC 帧直接转(zhuan)发(fa)到对应(ying)的端口(kou)位置处。一般来说(shuo),欧宝app  将(jiang)这一过程中成为“转(zhuan)发(fa)过程”。可以说(shuo),千兆网以太网交换芯(xin)片(pian)通过完(wan)成“学习”与“转(zhuan)发(fa)”过程,可以进一步提升(sheng)交换芯(xin)片(pian)的工作效(xiao)率,利(li)于网络性能(neng)的有效(xiao)提升(sheng)[2]。 

千兆(zhao)以(yi)太网交换芯(xin)片(pian)的关键技术 

      千兆以(yi)太(tai)网(wang)(wang)(wang)交换(huan)芯片的(de)(de)关键(jian)技术(shu)在(zai)于实(shi)(shi)现 MAC 帧(zhen)的(de)(de)帧(zhen)头(tou)信息(xi)提取(qu)要(yao)求与 MAC 地(di)址(zhi)(zhi)表管理(li)(li)(li)要(yao)求。其中(zhong),帧(zhen)头(tou)信息(xi)提取(qu)技术(shu)的(de)(de)关键(jian)要(yao)点在(zai)于合(he)理(li)(li)(li)判断(duan)所提取(qu)的(de)(de)是(shi)以(yi)太(tai)网(wang)(wang)(wang)帧(zhen)还是(shi) 802.3 帧(zhen)。另(ling)外,还有提取(qu)源地(di)址(zhi)(zhi)、目的(de)(de)地(di)址(zhi)(zhi)等。在(zai)此基础上,可(ke)以(yi)优先计(ji)算当前帧(zhen)的(de)(de)信息(xi)内容(rong),并根(gen)据具体处(chu)理(li)(li)(li)结果,进(jin)行合(he)理(li)(li)(li)的(de)(de)协调处(chu)理(li)(li)(li)。为进(jin)一步实(shi)(shi)现 1000Mb/s 的(de)(de) MAC 帧(zhen)交换(huan)要(yao)求,建(jian)议设(she)计(ji)人(ren)员(yuan)在(zai)实(shi)(shi)际(ji)设(she)计(ji)过程中(zhong),必须满足千兆以(yi)太(tai)网(wang)(wang)(wang)的(de)(de)高(gao)吞吐量(liang)需求、MAC 帧(zhen)地(di)址(zhi)(zhi)索引信息(xi)以(yi)及在(zai)特定周(zhou)期内寻求到(dao) MAC 地(di)址(zhi)(zhi)对应(ying)端口号的(de)(de)需求。为进(jin)一步实(shi)(shi)现上述要(yao)求,建(jian)议设(she)计(ji)人(ren)员(yuan)可(ke)以(yi)选(xuan)用 HASH 算法进(jin)行处(chu)理(li)(li)(li)。 

     基(ji)(ji)于FPGA的(de)(de)千(qian)(qian)兆(zhao)以(yi)太(tai)(tai)网交(jiao)换(huan)芯(xin)片(pian)(pian)的(de)(de)设(she)(she)计方(fang)案(an)基(ji)(ji)于 FPGA 的(de)(de)千(qian)(qian)兆(zhao)以(yi)太(tai)(tai)网交(jiao)换(huan)芯(xin)片(pian)(pian)的(de)(de)设(she)(she)计方(fang)案(an)可(ke)以(yi)从交(jiao)换(huan)芯(xin)片(pian)(pian)组成方(fang)面进(jin)行优化设(she)(she)计。一(yi)般来说,基(ji)(ji)于 FPGA 的(de)(de)千(qian)(qian)兆(zhao)以(yi)太(tai)(tai)网交(jiao)换(huan)芯(xin)片(pian)(pian)在具体(ti)设(she)(she)计过(guo)程中(zhong),主(zhu)要以(yi)接口帧(zhen)缓存(cun)、MAC 帧(zhen)处理模(mo)块、交(jiao)换(huan)模(mo)块以(yi)及寄(ji)存(cun)器等成分为(wei)(wei)主(zhu)。基(ji)(ji)于 FPGA 的(de)(de)千(qian)(qian)兆(zhao)以(yi)太(tai)(tai)网交(jiao)换(huan)芯(xin)片(pian)(pian)在双端口的(de)(de)选择方(fang)面,主(zhu)要采(cai)用(yong)容(rong)量为(wei)(wei) 108k 字节的(de)(de)双端口 SRAM 的(de)(de)设(she)(she)计方(fang)式。目(mu)的(de)(de)在于可(ke)以(yi)及时(shi)接收到(dao) MAC 帧(zhen)内容(rong),与此同时(shi),内存(cun)管理模(mo)块可(ke)以(yi)利用(yong) SRAM 存(cun)储空(kong)间的(de)(de)性(xing)能优势,如分配、释(shi)放等,进(jin)一(yi)步实现交(jiao)换(huan)芯(xin)片(pian)(pian)的(de)(de)功能。可(ke)以(yi)说,通(tong)过(guo)利用(yong)这种交(jiao)换(huan)功能,可(ke)以(yi)进(jin)一(yi)步强化以(yi)太(tai)(tai)网交(jiao)换(huan)芯(xin)片(pian)(pian)的(de)(de)应用(yong)功能。 

在芯(xin)(xin)片与(yu)用(yong)户(hu)接(jie)(jie)口(kou)(kou)(kou)处(chu)的(de)(de)(de)(de)(de)设计方(fang)面,本(ben)方(fang)案主要采用(yong) RS232 接(jie)(jie)口(kou)(kou)(kou)。通过利用(yong) RS232 接(jie)(jie)口(kou)(kou)(kou)可以(yi)(yi)及时(shi)了解用(yong)户(hu)读取寄存(cun)(cun)器或者芯(xin)(xin)片的(de)(de)(de)(de)(de)运行(xing)(xing)状(zhuang)态(tai)(tai),能(neng)够进一步根据寄存(cun)(cun)器的(de)(de)(de)(de)(de)运行(xing)(xing)状(zhuang)态(tai)(tai)调整芯(xin)(xin)片的(de)(de)(de)(de)(de)工作模(mo)(mo)(mo)式。其中(zhong)(zhong), MAC 帧(zhen)(zhen)处(chu)理(li)(li)模(mo)(mo)(mo)块(kuai)在功能(neng)方(fang)面多呈现出实(shi)现 MAC 帧(zhen)(zhen)接(jie)(jie)收与(yu)发送两个(ge)功能(neng)。其中(zhong)(zhong),GMII/MII 口(kou)(kou)(kou)在接(jie)(jie)收到 MAC 数据帧(zhen)(zhen)之(zhi)后,MAC 帧(zhen)(zhen)处(chu)理(li)(li)模(mo)(mo)(mo)块(kuai)会优先处(chu)理(li)(li)端口(kou)(kou)(kou)接(jie)(jie)收到的(de)(de)(de)(de)(de)数据内容(rong),并(bing)将(jiang)缓(huan)存(cun)(cun)到接(jie)(jie)口(kou)(kou)(kou)帧(zhen)(zhen)模(mo)(mo)(mo)块(kuai)中(zhong)(zhong)的(de)(de)(de)(de)(de)信息内容(rong)放置到 FIFO 当(dang)中(zhong)(zhong)。在此基础上,MAC 帧(zhen)(zhen)处(chu)理(li)(li)模(mo)(mo)(mo)块(kuai)可以(yi)(yi)根据内存(cun)(cun)管(guan)理(li)(li)模(mo)(mo)(mo)块(kuai),释放内部的(de)(de)(de)(de)(de)缓(huan)存(cun)(cun)空间。再得到内存(cun)(cun)管(guan)理(li)(li)模(mo)(mo)(mo)块(kuai)的(de)(de)(de)(de)(de)回执(zhi)命令之(zhi)后,可以(yi)(yi)有效提取出帧(zhen)(zhen)头。 

     与此(ci)同时,帧(zhen)头信(xin)息(xi)(xi)(xi)分(fen)析模(mo)(mo)块在接收到 MAC 帧(zhen)处(chu)理(li)(li)模(mo)(mo)块返置回(hui)(hui)来的(de)信(xin)息(xi)(xi)(xi)之后,会(hui)将优先级信(xin)息(xi)(xi)(xi)提取(qu)出来,如目的(de)地(di)址、源地(di)址以及 IP 头信(xin)息(xi)(xi)(xi)。待(dai)提取(qu)完这些信(xin)息(xi)(xi)(xi)之后,分(fen)析模(mo)(mo)块可(ke)以将其转发(fa)(fa)到学习转发(fa)(fa)模(mo)(mo)块当(dang)中。待(dai)处(chu)理(li)(li)结(jie)束之后,内(nei)部系统可(ke)以参照帧(zhen)头、帧(zhen)尾等方面的(de)信(xin)息(xi)(xi)(xi)内(nei)容(rong)或者相关指(zhi)示(shi)信(xin)号(hao),发(fa)(fa)送到端口记录(lu)(lu)模(mo)(mo)块当(dang)中。发(fa)(fa)送指(zhi)示(shi)信(xin)号(hao)会(hui)根据(ju)端口记录(lu)(lu)信(xin)号(hao)回(hui)(hui)执(zhi)的(de)信(xin)息(xi)(xi)(xi)内(nei)容(rong),完成信(xin)号(hao)处(chu)理(li)(li)工作。并在此(ci)基(ji)(ji)础上,内(nei)存处(chu)理(li)(li)单(dan)(dan)元(yuan)会(hui)结(jie)合(he)信(xin)息(xi)(xi)(xi)的(de)具体内(nei)容(rong)进行合(he)理(li)(li)处(chu)理(li)(li)。此(ci)时,MAC 帧(zhen)处(chu)理(li)(li)单(dan)(dan)元(yuan)会(hui)根据(ju)内(nei)存处(chu)理(li)(li)单(dan)(dan)元(yuan)发(fa)(fa)来的(de)指(zhi)令要求释放信(xin)号(hao),进一(yi)步(bu)优化基(ji)(ji)于FPGA千兆(zhao)以太网(wang)交换芯片的(de)应用功能。 

结论:通(tong)过本文的(de)(de)内容叙述,大致可(ke)以(yi)明确基(ji)于 FPGA 的(de)(de)千(qian)兆以(yi)太网交换芯片(pian)(pian)的(de)(de)方案具(ju)有一定的(de)(de)可(ke)行(xing)性。在具(ju)体设计过程(cheng)中,通(tong)过利用(yong)千(qian)兆全双工模式(shi),优化 8 个端(duan)(duan)口工作模式(shi)。并(bing)在此基(ji)础(chu)上(shang),利用(yong)以(yi)太网测(ce)(ce)试仪对端(duan)(duan)口工作模式(shi)进行(xing)性能方面的(de)(de)测(ce)(ce)试。测(ce)(ce)试结果(guo)明确显示在 10min 中内,8 个端(duan)(duan)口 1000Mb/s 老化测(ce)(ce)试的(de)(de)丢包率满足预期控制范围,均小于百万分之一。由(you)此可(ke)以(yi)证明,基(ji)于 FPGA 的(de)(de)千(qian)兆以(yi)太网交换芯片(pian)(pian)可(ke)以(yi)投(tou)入(ru)正式(shi)使用(yong)。目前,基(ji)于 FPGA 的(de)(de)千(qian)兆以(yi)太网交换芯片(pian)(pian)已(yi)经得到广(guang)泛应用(yong),效果(guo)显著(zhu)。 



相关推荐

暂无数据