基于网络处理器IXP1200的以太网上联卡设计
javascript:window.open(this.src);" style="cursor:pointer;"/>
网络处理器IXP1200的软件开发主要基于两个层面,一个是高层软件,通常指运行在网络处理器IXP1200 StrongArm内核上的管理软件、路由协议软件以及所有的系统所需任务,这部分软件通常需要一个嵌入式操作系统,目前的开发主要基于Linux操作系统。另一个层面是底层软件,这部分软件主要运行于六个微引擎之上,可用于完成包的快速处理,包括包的快速转发和基本的二层协议处理等,这部分软件采用微码形式来完成,但应特别注意软件部分的代码优化,即用尽可能少的指令来完成处理。在网络处理器IXP1200中,每个微引擎提供有2k字大小的代码存储空间。此外,每个微引擎中也包含四个线程,这四个线程可构成硬件多线程。由于微引擎内部包含有大量的GPR以及SRAM、SDRAM传输寄存器,因此,在采用微线程进行相对寻址模式时,每个线程都具有自己特定的寄存器组,从而极大地加快了线程切换的速度。在IXP1200中进行微码设计有一个重要原则:即当一个线程在等待资源时,应将该线程切换出去,以让其它线程占用微引擎的处理,这样可进行快速切换,以保证各个线程都能够充分利用微引擎的处理机,而不会因为一个在等待资源线程,造成处理器的浪费。微码的组织也是按照这一原则来进行的。图4所示是高层软件的程序主流程图。高层软件的目的是完成整个硬件和软件的初始化,同时将微码程序加载到网络处理器的六个微引擎中,并启动运行。
底层软件的微码流程分为两个部分,其任务分配和以上讨论的六个微引擎的任务分配一致。它也分为两个方向,即ATM到以太网方向和以太网到ATM方向。图5所示是其微码的软件流程图。
5 结束语
本文介绍的基于网络处理器IXP1200的以太网上联卡,已经成功应用于DSLAM设备中,并解决了DSLAM设备与IP网络的高速互联问题。经过测试本卡性能良好,系统运行稳定。
Tags:
作者:佚名评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论