硬件芯片
用于特殊处理的高速集成电路主要有ASIC和FPGA。与CPU处理被称为软件处理相对应,ASIC和FPGA的处理被称为硬件处理。
图:软件处理与硬件处理的不同
ASIC
ASIC(Application Specific Integrated Circuit,专用集成电路)指用于特定目标的IC芯片,是能够高0速进行以太网帧格式的传送处理、路由处理、防火墙处理等特殊处理的集成电路。
与CPU相同,ASIC也是LSI(Large Scale Integration,大规模集成电路)的一种。但与CPU逐条执行命令相比,ASIC的设计则是仅用于高速进行必要的处理。
ASIC由于芯片单价便宜,因此在大规模生产时成本很低,同时剧透高速、高集成度、最合理的电力使用等优点。但另一方面,开发成本高、开发周期成、无法及时应对设计失误或式样变化等也是其不可忽视的缺点。
FPGA
和ASIC一样,用于特定目的的高速运行集成电路,但与ASIC不同的地方在于它的可编程性。
FPGA(现场可编程门阵列)使用了一种被称为HDL(Hardware Description Language,硬件描述语言)的变成语言来描述电路和系统的运行。
与ASIC相比,FPGA因为其可编程性而具有开发风险小、开发周期短和开发成本低等优点。虽然FPGA也有单价高、性能差、功耗高的缺点,但是目前这些方面已经有所改善,所以在网络设备中新开发的硬件芯片几乎都使用了FPGA。
网络处理器
图:网络处理器结构图
网络处理器是使用LSI技术将CPU和分组处理硬件集成于一处,用于网络相关处理的专用处理器,也可以用NP或者NPU(Network Processing Unit)来表示。
在ASIC中无法根据需求灵活更改处理的内容,但在网络处理器中却可以进行编程。分组首部的解析、路径决定表的检索、QoS控制、加密解密等内容单一负载较大的处理由引擎硬件(分组引擎、协议引擎、微引擎等)负责。而对于硬件无法处理的复杂情况,则将其交给网络处理器内部的CPU完成。