基于硬件多线程机制的网络处理器微引擎设计
2022-02-25刘思远任敏华谷航平
微型电脑应用 2022年2期
刘思远, 任敏华, 谷航平
(华东计算技术研究所,先进集成电路研究院, 上海 201808)
0 引言
提高网络处理器性能的方法有很多种,最直接高效的就是并行处理技术[1-2],利用多个结构相同的微引擎能够提高处理并行度,在一个微引擎中采用多个线程同样能够提高处理并行度[3]。路由器往往需要同时处理成百上千用户的信息接受和转发[4],微引擎在接收到数据包后,开始对其进行解析处理,而在程序指令访问外部存储器时,微引擎只能处于等待状态,造成性能资源的浪费[5]。由于网络交换中的各数据包相关性很低,因此可以将软件中常用的多线程调度机制引入微引擎的硬件设计中[6-7]。本文设计了一种8线程微引擎,相较于传统的4线程或单线程微引擎,它能够实现微引擎各线程的高速切换,大大提升微引擎的执行效率,并采用了专用的线程切换指令、信号机制和指令切换存储器,以此来实现一整套微引擎硬件体系结构,并在仿真平台上验证了该设计的高效性。
1 微引擎组介绍
该款网络处理器共有40个微引擎,分为5组,每组8个微引擎核,支持硬件8线程,工作频率500 MHz,可同时做320个数据处理,GPR(General Purpose Registers)为32 bit,其硬件结构示意图如图1所示。

图1 网络处理器结构示意图
这些微引擎组分别执行数据包的主要处理任务,如接收、解析、分类、转发等任务,微引擎之间的通信参数由Scratchpad存储,支持原子操作和环操作,不会被线程调度所打断。以IPv4路由转发为例,该网络处理器各微引擎的工作流程如图2所示。……
登录APP查看全文
