网络处理器(Network Processor,简称NP),根据国际网络处理器会议(Network Processors Conference)的定义:网络处理器是一种可编程器件,它特定的应用于通信领域的各种任务,比如包处理、
协议分析、
路由查找、声音/数据的汇聚、
防火墙、
QoS等。网络协议处理器使用的协议多为TCP/IP协议,TCP/IP协议历来是处理网络上数据传输的通用语言,IP协议是TCP/IP协议族中最核心的协议。
基本概念
网络处理器(Network Processor,简称NP),根据国际网络处理器会议(Network Processors Conference)的定义:网络处理器是一种可编程器件,它特定的应用于通信领域的各种任务,比如包处理、
协议分析、
路由查找、声音/数据的汇聚、
防火墙、
QoS等。
网络协议处理器使用的协议多为TCP/IP协议,TCP/IP协议历来是处理网络上数据传输的通用语言,IP协议是TCP/IP协议族中最核心的协议,所有的TCP,UDP,ICMP以及IGMP数据都以IP数据报格式传输,处理IP协议要耗费大量的CPU资源。
网络传输协议
TCP/IP协议历来是处理网络上数据传输的通用语言,传统的TCP/IP技术在处理数据传输的过程中采用软件实现,需要占用大量的处理器资源。随着网络技术的发展,网络带宽平均每12个月就增长3倍,美国西蒙公司己
经第一个推出了支持lOG到桌面的布线系统。而且,10G BaseTIEEE标准的草案己经于2004年6月出台,最终发布时间预计为2006年6月。同期CPU的处理速度则遵循了摩尔定律即每18个月增长2倍。而基本上1Hz的处理器最多可以处理每秒1 bit数据传送所产生的负载。实验表明,在800Mbit/s的线速度下,1GHz的Pentium3处理器资源占用率为100%,2.4GHz的Pentium4处理器资源占用率为30%。很明显CPU的性能己经日益跟不上网络技术的进步。今后网络运用的瓶颈不再是带宽资源,而是主机CPU处理TCP/IP协议栈的能力。
IP协议是TCP/IP协议族中最核心的协议,所有的TCP,UDP,ICMP以及IGMP数据都以IP数据报格式传输,处理IP协议要耗费大量的CPU资源。为实现减轻处理器负荷、提高网络利用率的目的,可通过硬件卸载IP协议的部分任务。
网络协议处理器的结构和原理
根据IP协议在TCP/IP协议栈分层中所处的位置,IP层协议处理器应包含3个模块:发送端模块、接收端模块和DMA接口电路,如图1所示。当主机发送数据报时,数据经。MA接口到发送端模块进行IP层协议处理再到网卡进行链路层协议处理,最后组装为数据帧发送到网络中。当主机接收到数据报时,数据依次经网卡、接收端模块、DMA接口,最终存入主存储器中。下面详细说明各组成部分的工作原理。
DMA方式,是一种由DMA控制器完成存储器与外部设备或外部存储器之间大量数据传输的方式。由于主存和。MA之间有一条数据通路,因此主存和设备交换信息时,不通过CPU,也不需要CPU暂停现行程序为设备服务,省去了保护现场和恢复现场。这一特点特别适合于高速I/O或辅存与主存之间的信息交换。PCI总线是32位并可升级到64位的独立于CPU的处理总线,总线速度可达33/66MHz。通过将DMA逻辑和PCI接口规范紧密结合起来,构成一个灵活的基于PCI2.2规范的DMA接口电路,通过此接口电路,协议处理器可通过PCI总线与计算机内存直接交换数据。接口电路结构如图2所示,图2中#号表示低电平有效。其工作流程分为读、写两部分。图3是
读操作的流程图,写操作流程图与之类似。
当进行读操作时(即主机发送数据报)依次进行以下操作:
(1)CPU通过PCI总线向DMA写入控制字,此时DMA为从设备状态,DMA接受到FRAME#信号后将输入设备地址和控制字锁存。
(2)判断PCI总线所传设备地址是否为协议处理器地址,若是,则进入数据传输状态,将TRDY、DEVSEL信号置低电平,CPU所传的控制信息(包括内存起始地址、字节数、上层协议号、目的地址等)被写入。MA配置寄存器中。若不是协议处理器地址,则不对其响应,返回初试状态。
(3)控制字传输完后,DMA接口将REQ置低电平向总线请求控制权,此时。MA控制器为主设备状态。
(4)当总线上GNT为低电平时表明。MA接口获得总线控制权,DMA将FRAME置低电平,并发送内存的设备地址和读操作命令。
(5)内存准备好发送数据后,总线发出TRDY#信号,DMA将数据读入缓存,此过程中若内存未准备好,TRDY为高电平,DMA控制器继续等待。
(6)当DMA完成读操作的前一个周期将FRAME置高电平,随后一个周期后IRDY#也跳变为高电平,数据传输结束。
(7)DMA接口发出。REQ#信号询问发送端模块是否空闲,若发送端模块空闲,则将缓存中的数据以及字节数、上层协议号,目的地址输出给发送端模块。
(8)缓存数据空后,向CPU发送中断信号并返回空闲状态。以上与总线进行数据交换的过程中,一旦出现奇偶校验错误,则将PERK置低电平,并返回初始状态,下同。
当进行写操作时(即向主机发送数据报)依次进行以下操作:
(1)接收端模块向DMA接口发请求。
(2)若DMA控制器处于空闲状态,DMA接口将REQ置低电平向总线请求控制权。
(3)GNT为低电平表明DMA控制器获得总线控制权,DMA将FRAME置低电平,并发送内存设备地址和写操作命令。
(4)内存准备好接受数据后,TRDY变为低电平,DMA将数据写入主存中。此过程中若内存未准备好,TRDY为高电平,DMA控制器进入等待状态。
(5)当DMA完成写操作的前一个周期将FRAME置高电平,随后一个周期后IRDY也变为高电平,数据传输结束。
(6)向CPU发送中断信号并返回空闲状态。
以上两个过程的最后,DMA都向CPU发出中断请求,CPU接到中断请求后,将进行一些后处理,包括:校验送入主存的数据是否正确;决定是否继续用DMA方式传送其他数据块,若继续传送,则又要对DMA接口些入信息字,若不需要传送,则停止外设;测试在传送过程中是否发生错误,若出错,则转错误诊断及处理错误程序。
嵌入式网络协议处理器
对于嵌入式网络协议处理器的研究,Intel公司专门投资支持全球100所大学进行协议处理器及其相关应用的研究,并每年召开一次Workshop进行交流与总结。同时,国外一些大公司推出了一系列的网络协议芯片产品,如Xilinx为65rim Virtex.5 LX和LXT FPGA平台增加三款新型小尺寸封装器件,Virtex.5 LX20T将微控制器、波形发生器、网络协议以及其他功能整合在具有高性价比、高性能和低逻辑功耗的FPGA内。韩国WlZnet公司在2009年推出的固件网络协议芯片:W5100、W5300和W7100,该系列芯片将TCP/IP协议栈、以太网MAC和PHY集成为一体,其中,W5100支持TCP,UDP,ICMP,IGMP,口v4,ARP,PPPoE,Ethemet等网络协议;支持4个独立的Socket通信,内部16K字节的发送/接收缓冲区可快速进行数据交换,最大通信速率达到25Mbps;提供多种总线(两种并行总线和SPI总线)接口方式。同年,德州仪器11推出了一款面向ZigBee RF4CE规范的RemoTI网络协议,包含11业界最佳的CC2530IEEE/802.15.4片上系统与软件协议栈。