网络处理器开发 简介

至于防火墙/ACL等功能,交换芯片都自带的,写几个寄存器就可以搞定的。并且路由器的表项一旦变大,CPU查找的时间会更长,转发速度会更慢的。

采用专用硬件对特定协议操作进行协处理:如CRC、哈希查找、树查找、字符匹配;针对安全产品,提供加/解密、大数运算等硬件单元。

 Intel IXA可移植框架中,将数据的处理分为两个层次:数据面(Data Plane,也称为Fast Path)处理和控制面(Control Plane,也称为Slow Path)处理。

  数据平面主要运行在微引擎处理之上,充分利用数据包的无关性,采取并行处理方式,用于实现高速转发数据包的处理功能,具有线速执行特点。数据面的数据包处理可分为若干微模块Microblock。各个微模块之间相互独立,可实现数据面层次上的可移植性。

  控制平面一般运行在网络处理器核上,处理各种通信协议、更新路由表、管理数据平面任务与状态、完成高层的QoS控制等。这些操作的性能要求低于数据层面,因此通常采用高性能通用处理器硬件平台。为了有效支持网络处理功能,控制平面与数据平面之间存在复杂的信息交互与依赖关系。

网络处理器软件开发的关键环节

1、多线程的分配与调度策略

微线程的分配是否合理是系统性能高低的关键;一般可以分为接收、处理和发送三个阶段。

intel提出三种线程模型:流水、并行和乱序三种模式

2、数据结构的定义和分配

不同的存储位置极大的影响这数据的存取速度,local memory,scratchpad memory, sram,dsram

3、分组调度

分组调度需要对处理时间进行预测。

intel IXP2400平台微代码源文件是*.uc,预处理后是*.ucp,汇编是*.list, 最后生成可以下载安装的image文件。

利用Intel IXA可移植框架来实现Intel IXP2400的一个简单路由转发系统。数据分组在IXP2400中的流动过程如下:以太网MAC器件接收数据,放入MSD单元的接收缓存当中,向微引擎发出信号,表示数据已经收到,微引擎将接收缓存中数据传输到SDRAM,微引擎通过对MSF总线单元的访问命令将前几个字节(分组头)传送到传输寄存器中,微引擎对分组的以太网头进行修改,而将数据分组写入发送队列,然后通知MSF单元将数据分组传送给适当的MAC器件。图3所示为典型路由器应用系统中的数据流。 在图3所示的处理转发结构中,每一个模块代表一个微模块。发送和接收模块和MSF硬件紧密相关。处理器芯片的MSF总线接口单元中有一对BUFFER,即输入BUFFER和输出BUFFER,分别用作接收和发送的缓冲区。开发者通过用这些相应的硬件寄存器,硬件设备可自动进行相应的转发处理。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值