text: ENP重定义以太转发技术
  以太转发技术的困境
  衡量交换机性能的指标很多，如吞吐量、延时、可管理性、安全性等，而其中最本质的一点，则是交换机的转发技术。
  从多年前的十兆到百兆、千兆直至万兆，以太网交换机的转发能力在飞速发展，而ASIC芯片则是为以太交换机的转发能力提供源动力的核心。随着视频、移动、BYOD、云计算、物联网等业务的迅猛发展，以太网本身也在发生巨变。这种变化体现在以太网不仅要具备大规模转发能力，且网络本身要具备弹性、智能控制、管理简易等特性，这就要求以太网交换机的功能要进行灵活、敏捷的扩充。目前，虽然交换机的功能已经由最初的仅二层交换发展到全面支持路由交换，但需求仍然集中在为企业终端提供联通性方面，不能满足云计算下新业务的快速变化，其根本原因就在于ASIC芯片只能识别预先定义的协议类型且转发流程固定。
  ASIC的先天缺陷：固定架构无法随需应变
  图1: ASIC芯片组成架构
  ASIC面临的最大挑战，就是无法灵活扩展。因为ASIC只能解析预先定义的应用协议，如果要支持新的应用协议，模块内的数字电路必须重新设计，对芯片来说哪怕是增加一个寄存器，整个芯片就需要重新设计。这意味着，每新增一项业务就需要新增一个模块，也就意味着整个芯片需要从头再来。而一个芯片从设计到样片返回，再从样片测试到设备上市一般需要两年以上的时间，这种开发模式阻碍了设备厂商对业务的快速响应。
  于是，市场上就应运而生一种ASIC的替代方案——商用NP。那么，商用NP是否能够补上ASIC的短板，成为一种理想的以太网交换机转发核心呢？
  商用NP：编程灵活，功耗较高
  图2: NP芯片组成架构
  商用NP一般由五个部分组成：NPU、指令Memory、Table Memory(片内)、Packet Memory(片内)和Table DRAM(片外)。这种设计思路使每个模块的灵活性得到了提高，但是，在实际部署业务时，需要细致地考虑如何进行业务流程切分，而每个NPU组的指令空间都是有限的，如果某个指令空间即将耗尽，则无法支持新的业务。如果业务切分不好，则会导致某些NPU组负载过重，产生业务处理瓶颈，所以实际上NP芯片的总体灵活性并没有比ASIC提高多少，总体性能仍然不能令人满意。
  可编程ASIC的诞生，虽然在一定程度上缓解了业务扩展性的迫切需求，但可编程ASIC无法实现完全可编程，只能算是一个过渡方案。到底是继续发展ASIC，还是采取其他的技术？交换机转发芯片的前进之路究竟在何方？
  ENP：性能和灵活性的完美结合
  ASIC性能高、功耗小，但架构固化不灵活，无法适应企业IT应用的快速发展;商用NP虽然灵活，但性能和功耗却成为瓶颈。针对这种现状，华为公司立足于二十多年芯片研发积累，开创性地推出了以太网络处理器ENP，其性能和功耗比平ASIC，同时具有商用NP的灵活性，是性能和灵活性的完美结合。该芯片具有以下一些卓尔不群的特点：
  图3: ENP芯片组成架构
  1、 完整的指令空间与硬加速，克服了商用NP的性能短板
  ENP中的NPU与商用NP中的NPU有所不同，可访问完整的指令空间，因此每个NPU组都能执行从Parse到Modify的任何指令。这样就不需要像商用NP那样，将业务处理切分到不同的NPU组上，节省了开发过程，可以快速开发出新业务。另外，ENP采用了多线程技术，有效降低了IO访问延时对NPU性能的影响。
  2、 华为SmartMemory，解决了内存访问的性能瓶颈
  商用NP或商用ASIC在架构上将计算与存储严格分离开来，导致计算逻辑单元与存储单元物理距离增大，计算单元和存储单元交互增多，进而导致访问延时大，功耗高。如果多个源对同一地址进行读写操作，为保证数据的一致性，必须锁存地址，这样很容易形成访问瓶颈。针对这种情况，华为ENP集成了SmartMemory，让存储单元集成了一些计算和判断处理的能力，用以减少主计算单元与SmartMemory之间的操作交互，大大提高了计算单元与存储单元之间的访问效率。
  另外，SmartMemory还集成了华为自研的查找算法引擎(Search Engine)、协处理器(Co-Processor)和流量管理器(Traffic Management)，囊括了商用NP或ASIC对内存操作的所有算法，如查找、运算、读写等等，可以被ENP任何功能单元(如流量限速、统计)所调用。
  3、 百万级别流表，全面支持Hybrid Openflow
  基于Hybrid Openflow的SDN网络方案，采用Openflow和传统路由双平面来进行不同的转发控制，用于传统网络向SDN进行过渡。通过可编程的方式和高达16M的流表资源，基于ENP的交换机可同时支持Openflow和传统以太数据包转发，帮助用户实现从传统网络向SDN的迁移 。
  4、 先进的降功耗措施使得ENP具有和ASIC比平的能耗表现
  ENP可以从三个方面降低设备功耗。
  首先，ENP集成度高，一个ENP可完成多个芯片的功能。交换机的功耗主要来源于设备内的芯片，芯片数量越多整机的功耗就越高。一般来说，完成大表项和大缓存功能需要用分离的两个芯片来完成，一个完成转发，另一个用于报文缓存。而华为ENP将两颗芯片集成为一颗芯片，有效地降低了功耗。
  其次，通过业界先进的电压控制器来减少静态功耗。芯片的功耗由两部分组成，一部分是静态功耗，另一部分是动态功耗，前者占总体功耗的40%，后者占60%。静态功耗与晶体管工作电压成正比，晶体管工作电压可根据各芯片在加工过程中形成独特的电气属性来调整。
  最后，可通过改变晶体管工作电压和时钟频率来降低动态功耗。ENP集成华为独创的测速器，可以检测芯片内部流量，自动调整工作时钟频率。例如原有的时钟频率是400MHz，若降低到300MHz，则动态功耗会降低到原有的75%。另外，当流量减少时，还可以关闭空闲的NPU组来减少功耗。
  选择ENP 选择未来
  以太网在向更敏捷、更智能、更安全、更高速、更高服务品质的方向持续演进，新一代以太网产品和技术山雨欲来，灵活敏捷、智能应对业务需求是新一代以太网络的核心竞争力。而以太网交换机对于数据、语音、通信、视频、移动等综合的敏捷支持迫在眉睫，华为站在市场前沿，以前瞻性创新为起点所带来的ENP芯片，既能像商用ASIC那样提供线速的转发能力并保持低功耗，同时又比商用NP更灵活，必将重新定义以太网转发技术，成为新一代以太网交换机的核心转发技术标准。