网络处理器(Network Processor,简称NP),又可以称为交换芯片,专用于实现核心交换机高速转发功能。
根据网络处理器会议(Network Processors Conference)的定义:网络处理器是一种可编程器件,它特定的应用于通信领域的各种任务,比如包处理、协议分析、路由查找、声音/数据的汇聚、防火墙、QoS等。
NP芯片内部通常由若干个微码处理器和若干硬件协处理器组成,多个微码处理器在NP芯片内部并行处理,通过预先编制的微码来控制处理流程。而对于一些复杂的标准操作(如内存操作、路由表查找算法、QoS的拥塞控制算法、流量调度算法等)则采用硬件协处理器来进一步提高处理性能,从而实现了业务灵活性和高性能的有机结合。
NP芯片具有丰富的高速I/O接口,包括物理链路接口、交换接口、存储器接口、PCI/PCIE总线接口等,通过内部高速总线连接在一起,提供很强的硬件并行处理能力。因为各种算法和一般的包处理、协议分析都是通过硬件实现,因此,可以达到极高的查找、转发性能,实现“硬转发”。
ASIC、FPGA与网络处理器,三者的区别和优缺点是什么?
ASIC芯片可以使用硬件逻辑实现高性能的网络处理功能。但ASIC芯片一旦开发设计定型后很难扩展其他应用功能,新功能的添加需要芯片研发公司花费较长开发周期重新设计。ASIC芯片适合应用在网络设备中处理一些成熟的网络功能逻辑。
FPGA是可以反复地编程、擦除、使用以及在外围电路不动的情况下用不同软件就可实现不同功能的一种门阵列芯片。但FPGA由于技术的限制,数据处理能力有限并且单芯片的成本单价较高。
NP(网络处理器)保留了ASIC高性能处理数据的特性,同时NP通过微码处理器,能够通过微码编程进行复杂的多业务扩展。通过微码实现新的路由功能,实现对各种网络应用的支持和拥有高度的灵活性。但是NP的报文处理性能和ASIC相比依然还存在一些差距。