Cavium芯片各处理单元介绍
Cavium芯片数据处理单元介绍PKO等(1)数据包输入处理单元,包括IPD (Input Packet Data输入数据包数据)单元和PIP(Packet Input Processor,包输入处理器)单元,输入单元负责对流入芯片的数据包分配内存,建立描述结构,并进行预处理,之后,相关信息将被通知到SSO单元等待调度。(2)数据包调度单元,在早期的Octcon系列处理器中,该单元被称作P...
Cavium芯片数据处理单元介绍PKO等
(1)数据包输入处理单元,包括IPD (Input Packet Data输入数据包数据)单元和PIP(Packet Input Processor,包输入处理器)单元,输入单元负责对流入芯片的数据包分配内存,建立描述结构,并进行预处理,之后,相关信息将被通知到SSO单元等待调度。
(2)数据包调度单元,在早期的Octcon系列处理器中,该单元被称作POW (Packet /Order / Work包/序列/工作)单元,在CN5860中则称为SSO,即前文所述的包调度单元,该单元是整个处理器内部的数据包调度核心,其负责根据用户配置,将等待调度的数据包送到cnMIPS内核接受处理。
(3)数据包处理核心,CN5860的数据包处理核心为16个基于MIPS架构特殊定制的cnMIPS处理核心,该处理内核除带有通用MIPS处理器的功能外,更是为网络处理和多核环境加入了额外的指令和功能,以满足网络环境的需求。表1列岀了相对于通用MIPS处理器,cnMIPS处理器的主要改进内容。
(4)数据包发送单元,即PKO (Packet Output,数据包发送)单元,在cnMIPS核心处理完数据包后,将会把数据包送往PKO单元,最终PKO单元将把数据包从处理器所接的电气接口中流岀。
(5)硬件功能单元,CN5860带有众多硬件加速单元,包括用于正则表达式匹配的DFA
(Deterministic Finite Automata有限自动机)单元、用于定时器的TIMER单元、用于快速寄存器操作的FAU (Fetch and Add Unit读取和自増单元)、内存池管理的FPA (Free Pool Allocator,空闲池分配)单元以及图中未列岀的PCI总线单元等等。
硬件功能单元FPA、DFA介绍
1X1 FPA单元
FPA单元即空闲池分配单元,网络处理器在运行过程中,将会大量使用系统内存用于存储重要数据,如流入系统的数据包缓存等,且同一类数据结构大小相同,数量众多,在这种情况下,CN5860处理器提供了一个辅助内存分配回收管理的硬件单元,称为FPA, FPA共有8个缓冲池,每一个缓冲池在系统初始化后就存放了指向空前内存缓冲区的指针,通常不同缓冲池用于不同的领域,其它硬件单元或cnMIPS内核都可以向FPA单元申请缓冲区,而FPA将根据不同的申请参数从不同的缓冲池中分配空闲指针。通用操作系统对于大量缓冲区的管理一般都是操作系统内核的软件实现,如Linux的slab分配器等,相对于软件管理,FPA硬件单元的岀现无疑提升了相关请求过程的处理性能,这也是网络处理器区分于通用处理器的特点之一。
1X2 DFA单元
确定性有限状态机DFA单元是CN5860提供给开发者用于进行正则表达式模式匹配的硬件单元,其由多个 DTE (DFA Thread Engine DFA 线程引擎)、一块 LLM (Low-latency Memory,低延时内存)和指令队列组成,DFA的典型工作流程是:
(1)在系统初始化时,系统根据用户需求,将定义好的正则表达式转化为状态转移图,
所谓状态转移图,在CN5860中,就是一块数组,数组中每一个条目内容,包括了该条目所代表的的含义,对于不同的输入值,下一个条目在数组中的位置等。
(2)生成的状态转移图将会被存入LLM中,且LLM可根据用户需求,存入多个状态转移图的副本,防止DTE争用同一块区域的情况发生。
(3)cnMIPS核在运行过程中,将向DFA发岀指令,指令中包含有待匹配的原始数据、
状态转移图的起始位置、检测结果存放位置等细节。
(4)DFA在取到指令后,将会选定一个空闲的DTE执行该指令,即进行模式匹配工
作,DTE将根据在状态转移图中经过的节点的信息,生成DFA检测结果,并将检测结果返回给cnMIPS内核。
多个处理core核心工作在不同的工作组,执行不同的工作逻辑,包括:
(1)报文处理转发组
负责收取流入系统的数据报文并进行深度数据包检测,根据检测结果釆取不同的转发策略将报文发岀。包括数据包预处理模块,数据包检测分析模块和数据包转发模块。下文将会给岀报文处理转发组的详细工作流程。
(2)远程管理组
主要包括远程交互接口模块,负责接受特定格式的IP报文,此类报文的负载部分带有相关控制信息,此类控制信息由一个命令字和若干个参数值组成,根据不同的命令字和参数值,调用控制核心模块完成系统控制操作。
(3)本地控制组
包括本地接口模块和与远程控制组共用的控制核心模块,本地接口模块通过串口设备接收本地输入命令,调用核心控制模块完成系统控制操作,并通过串口设备输岀命令执行结果。上述远程管理组和本地控制组都共用的一个控制核心模块,该模块是实际执行完成各类系统参数设置、系统状态反馈等操作的核心模块,并可被其他模块调用。下文将会给岀由远程管理组和本地控制组所组成的系统控制平面的详细设计。
(4)报文重组组
在实际网络环境中,往往由于槌路的原因,造成数据包发生IP分片,而敏感信息有可
能分属于两个分片中,因此,本文提岀的系统在接收到分片的IP报文后,可将属于同一IP报文的多个分片重组,并将重组后的报文提交给报文处理转发组,即可对原始负载数据进行内容检测。
如图4所示,网络处理器的众多核心分别位于上述不同的工作组中,在系统初始化时根据初始化参数确定其默认工作组,同时,在系统运行时,也可通过系统控制平面动态调整各工作组中核心数量,满足不同的网络状况需求。

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)