【技术实现步骤摘要】
【国外来华专利技术】用于通过分布式算法为可编程数据平面提供LPM实现的系统
[0001]相关申请的交叉引用
[0002]本申请要求于2020年4月28日提交的第16/860,650号美国申请的权益,并且是该第16/860,650号美国申请的延续,该美国申请通过引用以其整体并入本文以用于全部目的。
[0003]背景
[0004]网络流量是指在给定时间点移动通过网络的数据量。网络数据大多封装在网络分组(packet)中,这些分组提供了网络中的负载。网络流量是网络流量测量、网络流量控制和仿真的主要组成部分。网络流量的适当组织有助于确保给定网络中的服务质量。
[0005]概述
[0006]计算环境可以包括主机,诸如服务器,运行一个或更多个进程的计算机,诸如虚拟机或容器。主机和/或进程可以被配置成通过计算网络与其他进程或设备通信。主机系统经由输入/输出(IO)设备(例如,网络接口卡(NIC))与计算网络对接(interface)。
[0007]计算机系统通过指定的一组设备寄存器和基于存储器的数据结构与IO设备对接。对于给定的IO设备,这些寄存器和数据结构通常是固定的,允许特定的设备驱动程序在计算机系统上运行并控制IO设备。在数据通信网络中,网络接口通常是固定定义的控制结构、描述符、寄存器等。联网数据和控制结构是基于存储器的,并使用直接存储器访问(DMA)语义访问存储器。诸如交换机、路由设备的网络系统在一组输入接口中的一个处接收消息或分组,并将它们转发到一组输出接口中的一个或更多个。用户通常要求这样的路由设备尽可能快地操作,以便跟上高 ...
【技术保护点】
【技术特征摘要】
【国外来华专利技术】1.一种可编程输入输出(IO)设备,包括:匹配处理单元(MPU),其包括至少一个算术逻辑单元(ALU);以及存储器单元,所述存储器单元上存储有指令,当所述指令由所述可编程IO设备执行时,使所述可编程IO设备执行包括以下项的操作:从入站接口接收包括用于至少一个基于范围的元素的分组数据的分组;经由所述MPU,通过使用所述分组数据在间隔二叉搜索树上执行经修改的二叉搜索以确定最长前缀匹配(LPM)来确定查找结果,其中,所述间隔二叉搜索树将所述至少一个基于范围的元素映射到相关联的数据元素;以及基于所述查找结果对所述分组进行分类。2.根据权利要求1所述的可编程IO设备,其中,当用于至少一个基于范围的元素的所述分组数据大于或等于分配给所述间隔二叉搜索树的当前选定节点的值时,所述经修改的二叉搜索沿一个方向遍历所述间隔二叉搜索树,并且当用于至少一个基于范围的元素的所述分组数据小于分配给所述当前选定节点的值时,所述经修改的二叉搜索沿相反方向遍历所述间隔二叉搜索树。3.根据权利要求2所述的可编程IO设备,其中,直到完全遍历了所述间隔二叉搜索树,才确定所述经修改的二叉搜索的查找结果。4.根据权利要求2所述的可编程IO设备,其中,所述方向和所述相反方向是根据所述经修改的二叉搜索的配置确定的。5.根据权利要求2所述的可编程IO设备,其中,所述经修改的二叉搜索在其遍历所述间隔二叉搜索树时将数据累积在结果值中。6.根据权利要求5所述的可编程IO设备,其中,仅当所述经修改的二叉搜索沿所述方向移动时,所述经修改的二叉搜索用分配给所述当前选定节点的值覆盖所述结果值,但当所述经修改的二叉搜索沿所述相反方向移动时,所述经修改的二叉搜索不替换所述结果值。7.根据权利要求1所述的可编程IO设备,其中,所述存储器单元包括多个缓存行,并且其中,通过获取存储在所述缓存行的选定一个中的数据来执行所述经修改的二叉搜索。8.根据权利要求7所述的可编程IO设备,其中,选定缓存行是基于地址计算来确定的。9.根据权利要求7所述的可编程IO设备,其中,存储器指针不存储在所述缓存行中。10.根据权利要求7所述的可编程IO设备,其中,查找结果数据不存储在用于所述间隔二叉搜索树的内部节点的缓存行中,并且其中,所述查找结果数据仅存储在用于叶节点的缓存行中。11.根据权利要求7所述的可编程IO设备,其中,存储在所述缓存行中的一个中的所述间隔二叉搜索树的各个节点作为结构成员被直接访问。12.根据权利要求7所述的可编程IO设备,其中,基于当前缓存行的地址和存储在当前缓存行中的所述间隔二叉搜索树的传出分支的索引来计算下一缓存行的地址,其中,所述传出分支的索引根据所述经修改的二叉搜索来确定。13.根据权利要求7所述的可编程IO设备,其中,执行所述经修改的二叉搜索包括执行分布式算法,所述分布式算法包括多个级联级,其中,在所述级联级中的每一个处经由所述至少一个ALU执行算术运算或逻辑运算。14.根据权利要求13所述的可编程IO设备,其中,所述算术运算包括:加、减、乘或除。
15.根据权利要求13所述的可编程IO设备,其中,所述逻辑运算包括:小于、大于或等于。16.根据权利要求13所述的可编程IO设备,其中,所述级联级使用高效的分而治之方法来对处理进行分布,所述处理在每个级处使用高指数扩展和最小处理。17.根据权利要求13所述的可编程IO设备,其中,所述间隔二叉搜索树的多个层次各自被压缩到所述缓存行的相应缓存行中,并且其中,被压缩的多个层次中的每一个在所述级联级中的一个处被处理。18.根据权利要求1所述的可编程IO设备,其中,通过以下步骤将用于所述至少一个基于范围的元素及其相关联的数据元素的配置值转换成所述间隔二叉搜索树:生成用于所述至少一个基于范围的元素的基于范围的值的数字线表示,作为基于范围的元素数字线,以及在另一数字线上生成与所述基于范围的值中的每一个相关联的相应数据元素值,作为表示搜索键的整个数字空间的键空间数字线;将所述基于范围的元素数字线中的每一个投影到所述键空间数字线上,以标记所述基于范围的元素数字线中的每一个的起点和终点,使得所述键空间数字线被划分为不同的间隔,其中,不同的间隔中的每一个包括唯一的数据元素值,并且其中,所述唯一的数据元素值中的每一个表示在相应间隔之上的最深嵌套的基于范围的元素数字线的数据元素值;以及从所述键空间数字线上的不同间隔和与所述不同间隔中的每一个相关联的相应数据元素值导出所述间隔二叉搜索树。19.根据权利要求18所述的可编程IO设备,其中,来自所述间隔二叉搜索树的内部节点的结果数据值被推送到所述间隔二叉搜索树的叶节点。20.根据权利要求18所述的可编程IO设备,其中,在控制平面中离线确定对于所述间隔二叉搜索树的每个出口分支占优的结果数据值,其中,...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。