APP下载

基于硬件多线程机制的网络处理器微引擎设计

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查看全文

猜你喜欢

引擎指令设计
听我指令:大催眠术
ARINC661显控指令快速验证方法
LED照明产品欧盟ErP指令要求解读
瞒天过海——仿生设计萌到家
蓝谷: “涉蓝”新引擎
设计秀
有种设计叫而专
无形的引擎
基于Cocos2d引擎的PuzzleGame开发
坐标系旋转指令数控编程应用