面向可编程结构的资源开销优化模型及其优化

2021-10-09 09:44
自动化仪表 2021年9期
关键词:流表表项执行器

赵 雷

(陕西中医药大学图书馆,陕西 咸阳 712046)

0 引言

多种新型网络技术的不断开发和使用,极大地促进了网络功能虚拟化(network function virtualization,NFV)的发展,并在此基础上形成了软件定义网络(software defined network,SDN)和命名数据网络(named data networking,NDN)等众多新网络系统[1-3]。为确保以上各类网络技术得到充分利用并促进软件系统设计效率的提升,有研究人员将可编程技术应用于数据平面的设计过程。到目前为止,学者们对于可编程数据平面的研究还集中于提高编程灵活性与实现逐比特编程的过程等方面,但这些研究内容尚未深入分析因为可编程粒度过细而导致硬件资源开销迅速增加的结果[4-5]。为满足硬件资源有限的运行要求,需在保证基本编程功能的条件下有效压缩硬件资源,由此提高可编程网络设备的设计效率并促进其实现商业化应用的目标。

当前开展的资源优化研究通常根据用户配置情况来完成可编程数据平面结构的优化,需要建立最优的用户配置模式来减小硬件可编程单元的个数。例如:在进行解析器配置时,可通过压缩匹配域偏移量的方法来实现减小解析器可编程单元存储开销的目的[6-8];在配置匹配表的过程中,应构建合适的匹配表并合理选择匹配表项来获得最小的表项存储开销;对于动作执行器的配置,可以利用不同动作单元的相互组合来减小动作单元的个数[9-12]。以上研究内容面临着两个问题:第一个问题是仅从用户配置角度考虑如何优化可编程单元功能,而没有对如何优化硬件结构资源开销开展深入分析;第二个问题是只优化单个模块的资源开销,未全面分析数据处理阶段各模块进行协同编程的情况。

综上所述,如何优化可编程数据平面的整体硬件开销已成为现阶段需要重点考虑的一个关键问题。为了普适性,本文选择在该领域获得广泛应用的全可编程数据平面结构,分别从解析器、动作执行器、匹配表等多个层面来分析资源开销影响因素,并建立资源开销计算模型;同时,进一步给出了对模型进行解析、匹配的具体资源优化方案;之后,在NetFPGA-10G平台上对上述模型实施仿真测试,比较了不同方法获得的优化效果。经测试,本方案能够使硬件资源开销降低近40%。

1 资源开销优化模型建立

为了使研究结果具有普适性,本文选择的交换机硬件具备良好的可编程能力[6],可以有效优化可编程数据的平面资源开销。该结构能够满足可编程的要求,灵活性达到比特级,能够高效设计多级流水线,因此受到众多学者的关注。

本文选择的结构由包头解析器和多级流表组成。可利用包头解析器来高效分辨数据包协议,同时也可以根据数据包协议得到匹配域,之后通过组合方式生成包头域,并实现多级流表输出。可以将各级流表作为一个数据包处理单元,再对其进行“匹配、查找、动作”操作。对于用户的动态匹配,可通过流表匹配域选择器以及动作执行器来实现。不同流表进行信息传输的过程是通过元数据来实现的,最终实现不同匹配表的相互组合过程。

包头解析流程如图1所示。从图1中可以看到,利用状态转移图进行表示的包头解析流程,状态数与协议包头数相对应:以状态转移图边表示包头的叠加结构;以LP表示数据包的包头长度;以KM表示状态转移边数量;协议包头含有的匹配域数最大为NM。其中,匹配域提取模块和类型域识别模块各自的数据包缓冲区宽度依次等于WM和WT。

图1 包头解析流程示意图

总和开销由三元内容可寻址存储器(ternary addressable memory,TAM)的开销和随机存取存储器(random access memory,RAM)的开销组成,表示如下:

C≈εe×LP×KM+ηe×(WM+WT)×NM

(1)

式中:εe、ηe为线性系数。

①根据包头缓冲区开销计算得到提取模块开销。

②根据TAM与RAM的开销计算得到查找模块开销。

③利用提取模块和数据包缓冲区计算得到匹配域提取模块开销。

④利用匹配域组合模块将匹配域输出放在同一输出向量内,因此不需要占用硬件逻辑资源。

2 资源开销优化方法

2.1 解析器资源优化方法

可选择将匹配域和类型域合并的方法来降低开销。图2给出了包头解析优化方法。

图2 包头解析优化方法示意图

对图2进行分析可以发现,当连续类型域都存在固定联系时,可以采用一次类型域对其实施单独匹配。例如,连接VLAN标签和IPv4包头的过程中,可以将两者同时作为一个协议包头进行处理,有效减少类型域TAM表项;当同时出现几个匹配域需提取的情况时,可将其共同取出。

可通过下述算法对包头解析器实施优化处理。此时,输入由图2协议状态转移图组成,各个状态节点分别对应协议包头。其中,状态节点包含了匹配域和类型域。

2.2 匹配单元资源优化方法

当匹配域拥有恒定数量和长度参数时,对于小流表匹配宽度,需要选择多级流表组合的模式。因为各级流表都包含了动作执行器,从而需要占用大量资源开销;同时,其表项粒度也很小,表项具备很高利用率。当匹配宽度很大时不会占用大量资源开销,表项利用率也很低。根据以上分析可知,通过优化流表宽度可以获得更合理的匹配单元资源。

minC(N,WM)=N×[C(WM)+CA]

(2)

式中:N为级流表数;C为成本函数;CA为WM的非线性函数。

式(2)表示优化方程的约束条件,共包含了N级流表数需求,所有需求都具有LP的包头长度。可利用RAM和TAM的处理方法反映其变化规律,不能通过理论计算得到最优流表匹配宽度。对于不同平台,应选择特定的处理方式并经过数据测试得到最优解。

3 仿真结果

本文对自定义偏移结构进行了优化,并采用NetFPGA-10G板卡求解出原型,整个处理系统包含收发单元、配置单元和处理单元3个部分。收发单元包含1个虚拟端口和4个10 GB物理端口,可以通过物理端口与外部网络相连,并通过直接内存存取(direct memory access,DMA)使虚拟端口与主机虚拟网卡形成相连状态,之后由配置单元接收上层用户配置信息并将表项传输到处理单元中。图3给出了拆分合并映射示意图。

图3 拆分合并映射示意图

本文的流表匹配宽度为64比特,先优化处理包头解析器和动作执行器的资源开销,接着优化整体资源开销。

将数据总线位宽设为1 024比特,在验证资源优化效果的时候,依次对包头域长度为256比特、512比特、1 024比特的3种包头解析器资源开销进行仿真分析。包头解析器资源开销优化前后数据如表1所示。

表1 包头解析器资源开销优化前后数据

表1中,“优化结果”为匹配域合并后获得的准确率在99%以上的数据量。根据仿真测试结果可知,在固定的包头域长度下,通过优化处理可以使资源开销降低40%左右。和匹配域合并优化方法进行比较,可以发现,本文对所有状态节点都进行了匹配域合并,因此能够在更大范围内合并匹配域。同时,本文采用类型域合并的优化方法来获得更佳的资源优化效果。

分析动作执行器的资源优化情况,并在256比特、512比特、1 024比特3种包头域长度下对单个动作执行器资源开销进行了测试,动作执行器资源开销优化前后数据如表2所示。对仿真结果进行分析可知,在同样的包头域长度下,经优化处理能够使资源开销减小40%。处理单元数变多后能够进一步降低硬件资源的占用量。

表2 动作执行器资源开销优化前后数据

4 结论

本研究将每一级流表都看成是一个数据包处理单元,完成“匹配”“查找”“动作”各项功能,并利用流表匹配域选择器与动作执行器来完成用户动态配置。同时,利用合并匹配域与类型域的方式来减小开销,采用协议状态转移图来具体表示优化包头解析器的过程,通过选择最佳的流表宽度来达到匹配单元资源优化的目的。

在包头域长度一定的条件下,优化处理资源开销比原先减小了近40%。当包头域长度相同时,优化后可以使资源开销下降近40%。随着处理单元数量的增加,还可以节省更多硬件资源。

猜你喜欢
流表表项执行器
基于匹配动作表模型的可编程数据平面流表归并
一种改进的TCAM路由表项管理算法及实现
基于时序与集合的SDN流表更新策略
基于ARMA模型预测的交换机流表更新算法
双级执行器系统的离散滑模控制
简析yangUI流表控制
软件定义网络中一种两步式多级流表构建算法
飞机装配预连接紧固件自动化安装末端执行器设计
SDN数据中心网络基于流表项转换的流表调度优化
考虑执行器饱和的改进无模型自适应控制