CN116156027B - 一种支持rmt的动作执行引擎及其执行方法 - Google Patents
一种支持rmt的动作执行引擎及其执行方法 Download PDFInfo
- Publication number
- CN116156027B CN116156027B CN202310426848.XA CN202310426848A CN116156027B CN 116156027 B CN116156027 B CN 116156027B CN 202310426848 A CN202310426848 A CN 202310426848A CN 116156027 B CN116156027 B CN 116156027B
- Authority
- CN
- China
- Prior art keywords
- memory
- operation unit
- instruction
- logic operation
- sub
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Complex Calculations (AREA)
Abstract
本发明提供一种支持RMT的动作执行引擎及其执行方法,包括:指令存储器、与所述指令存储器连接的互联结构和逻辑运算单元、以及与所述逻辑运算单元连接的内存;所述指令存储器用于存储待执行的超长指令字;所述互联结构用于根据所述超长指令字中的子指令提取报头首部向量中的字段值并传输至所述逻辑运算单元作为操作数;所述逻辑运算单元用于解析所述超长指令字的子指令,从所述内存中读取状态变量,并根据所述操作数和所述状态变量执行运算,根据运算结果更新报头首部向量。本发明能够支持多种指令操作,支持多种虚拟网络隔离并能适应更高频率、更高复杂度的处理要求。
Description
技术领域
本发明属于数据交换技术领域,具体是涉及到一种支持RMT的动作执行引擎及其执行方法。
背景技术
网络中的传统交换机,实现的路由和转发功能是相互耦合且在出厂前预定义,只提供给用户特定的功能且无法修改,虽然可以实现极高的速度,但无法适应用户需求以及网络不断变化的新要求,而更换设备的经济代价过大。针对传统交换机的缺点,有人将软件设计的思想引入交换机领域,提出了软件定义网络(Software Defined Network,SDN)思想,比如OpenFlow,通过开放的接口将控制平面和转发平面解耦,控制平面被整合进外部的软件中。这种解耦的做法给网络带来了巨大的灵活性,允许用户受限地更改转发平面中配置向网络中添加新的功能。随着网络可编程性持续发展,OpenFlow的提出者斯坦福大学的Nick Mckeown团队则发现了OpenFlow在承载SDN的关键弊病:无法支持自定义协议的解析,并且支持的网络处理行为种类有限。又在SIGCOMM2013提出了可重配置匹配动作表的概念,网络的可编程性更加强大,网络功能定制化变得可以实现。
可重配置对照匹配动作表类交换机的Ingress和Engress均是由报头首部向量、解析器、多个处理阶段和逆解析器构成的多条流水线组成,其中每个阶段由关键字选择器、匹配动作表和超长指令字动作单元组成。现有的可重配置匹配动作类交换机的动作处理单元有如下的缺陷:①动作执行单元仅支持少量的指令类型,如对数据包生存时间值(Time ToLive,TTL)字段自减等简单操作,不兼容RISC-V指令集,不支持乘法运算,而乘法运算在人工智能领域的应用非常广泛,限制了可编程交换机在网络中分担人工智能计算任务的这一场景的应用。②互联结构的设计灵活性不够,不满足未来更高频率、更高复杂度的操作要求。③在公有云数据中心与广域网中不支持不同租户虚拟网络与不同网络切片的网络处理业务隔离。现有动作执行引擎的访存操作没有针对由虚拟局域网(Virtual Local AreaNetwork,VLAN)或虚拟扩展局域网(Virtual Extensible Local Area Network,VXLAN)隔离出的多种不同的虚拟网络进行隔离,导致可能出现不同虚拟网络访问到不属于其合法访问范围的随机存取存储器(Random-Access Memory,RAM)中的数据。
发明内容
本发明提供一种支持RMT的动作执行引擎及其执行方法,以解决现有的支持指令种类较少、互联结构效率较低、虚拟网络无法隔离的问题。
为解决上述技术问题,本发明提出一种支持RMT的动作执行引擎,包括:指令存储器、与所述指令存储器连接的互联结构和逻辑运算单元、以及与所述逻辑运算单元连接的内存;所述指令存储器用于存储待执行的超长指令字;所述互联结构用于根据所述超长指令字中的子指令提取报头首部向量中的字段值并传输至所述逻辑运算单元作为操作数;所述逻辑运算单元用于解析所述超长指令字的子指令,从所述内存中读取状态变量,并根据所述操作数和所述状态变量执行运算,根据运算结果更新报头首部向量。
可选的,所述超长指令字中的子指令的类型包括立即数运算类,非立即数运算类,立即数移位运算类,store类和其他类型。
可选的,所述超长指令字包含33条子指令,子指令并发执行,子指令的长度是32位,其中操作码为7位,操作数为3位,兼容RISC-V指令格式。
可选的,所述超长指令字的报头首部向量中包括33个容器,其中32个所述容器用于报文对应的字段值,作为所述超长指令字中的子指令的操作数,1个容器用于存储元数据。
可选的,所述与所述逻辑运算单元连接的内存采用分散的块RAM组成分布式RAM,分布式RAM同属于一个逻辑地址空间,物理地址空间分散且不连续。
可选的,多个所述逻辑运算单元同时访问分布式RAM中的同一个状态变量时,访问顺序由优先级决定,其中,所述逻辑运算单元的序号越大,所述优先级越高。
可选的,所述分布式RAM采用虚拟网络隔离,每个虚拟网络通过网络标识区分不同的内存空间。
可选的,所述网络标识为VLAN ID标识或基于VXLAN协议的VNI标识。
可选的,所述互联结构采用n输入×n输出的蝶形网络,其中n为操作数的位数,所述蝶形网络包括级二路选择输出元件组,每组包括n个二路选择输出元件,所述互联结构根据与所述逻辑运算单元的编号对应的n个二路选择输出元件的二进制编码确定分支路径,根据所述分支路径将数据传输至所述逻辑运算单元。
基于同一发明构思,本发明还提出了一种支持RMT的动作执行引擎的动作执行方法,所述方法包括:通过指令存储器将于存储的待执行的超长指令字传输至互联结构和逻辑运算单元;所述互联结构根据所述超长指令字中的子指令提取报头首部向量中的字段值并传输至所述逻辑运算单元作为操作数;所述逻辑运算单元解析所述超长指令字的子指令,从内存中读取状态变量;所述逻辑运算单元根据所述操作数和所述状态变量执行运算,并根据运算结果更新报头首部向量。
从上面所述可以看出,本发明提供的技术方案的有益效果是:所述动作执行引擎包括:指令存储器、与所述指令存储器连接的互联结构和逻辑运算单元、以及与所述逻辑运算单元连接的内存;所述指令存储器用于存储待执行的超长指令字;所述互联结构用于根据所述超长指令字提取报头首部向量中的操作数并传输至所述逻辑运算单元;所述逻辑运算单元用于解析所述超长指令字,从所述内存中读取状态变量,并根据所述操作数和所述状态变量执行运算,根据运算结果更新报头首部向量,能够支持多种指令操作与多种虚拟网络隔离,适应日益广泛的人工智能应用场景和更高频率、更高复杂度的处理要求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中的支持RMT的动作执行引擎的结构示意图;
图2为本发明实施例中的支持RMT的动作执行引擎中算数与逻辑指令格式示意图;
图3为本发明实施例中的支持RMT的动作执行引擎的移位与加载指令格式示意图;
图4为本发明实施例中的支持RMT的动作执行引擎的报头首部向量结构示意图;
图5为本发明实施例中的支持RMT的动作执行引擎的逻辑运算单元结构与优先级示意图;
图6为本发明实施例中的支持RMT的动作执行引擎的一种互联结构内部结构示意图;
图7为本发明实施例中的支持RMT的动作执行引擎的又一互联结构蝶形网络示意图;
图8为本发明实施例中的支持RMT的动作执行引擎的二输出元件分支选择示意图;
图9为本发明实施例中的支持RMT的动作执行引擎的互联结构工作流程示意图;
图10为本发明实施例中的支持RMT的动作执行引擎的动作执行方法的步骤流程图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。
需要说明的是,除非另外定义,本发明实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本发明实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
本发明实施例提出了一种支持RMT的动作执行引擎,如图1所示,所述支持RMT(Reconfigurable Match Tables,可重构匹配表)的动作执行引擎包括:指令存储器、与所述指令存储器连接的互联结构和逻辑运算单元、以及与所述逻辑运算单元连接的内存;所述指令存储器用于存储待执行的超长指令字;所述互联结构用于根据所述超长指令字中的子指令提取报头首部向量中的字段值并传输至所述逻辑运算单元作为操作数;所述逻辑运算单元用于解析所述超长指令字的子指令,从所述内存中读取状态变量,并根据所述操作数和所述状态变量执行运算,根据运算结果更新报头首部向量。
可选的,所述超长指令字中的子指令的类型包括立即数运算类,非立即数运算类,立即数移位运算类,store类和其他类型,即所述超长指令字中子指令的类型分为5种。其中,add、sub、xor、or、and、mul分别为加、减、异或、或、与、乘的非立即数运算类、addi、muli、subi、xori、ori、andi分别为对应的立即数运算类,slli、srli、srai分别为左移、右移、算术移位的立即数移位运算类,sll、srl、sra分别为对应的非立即数移位运算类,load、set、port、discard、store分别为加载、集合、端口、丢弃、存储。
所述超长指令字包含的子指令的长度是32位,其中操作码为7位,操作数为3位,兼容RISC-V指令格式,即与RISC-V一样,采用固定长度、7位操作码以及3位操作数的设计。每种类型指令的前7位操作码是相同的,并且指令中各字段的位置划分如图2和图3所示。此处以非立即数加法为例:首先根据对照匹配表的结果,指令存储器将要执行的加法指令发送给互联结构和逻辑运算单元;然后逻辑运算单元先解析指令的操作码字段,根据action[6:0]字段的值,判断指令的类型为非立即数运算类型;通知互联结构编号,使其将action[19:15]和action[24:20]对应的报头首部向量中的容器值送往该逻辑运算单元中等待进一步处理;逻辑运算单元再根据action[14:12]以及action[31:25]这两个字段的值,判断指令为非立即数运算类型中的加法指令,对送入的rs1和rs2做加法运算;最后,逻辑运算单元执行加法指令计算结果值rd = rs1 + rs2的并写回对应的容器action[11:7]中,指令执行完毕。
报头首部向量用于存放所述动作执行引擎所要操作的字段数据。指令中用于指示操作数所放置在特定容器的位数是5位,5位二进制数可寻址的容器数量最多有2的5次方,共32个,所以超长指令字的报头首部向量中包括33个容器,其中32个所述容器用于放置所述超长指令字的操作数,1个容器用于存储元数据,共计位。其中,报头首部向量中有4种不同大小的容器,即2字节、4字节、6字节和8字节容器。本实施例中如图4所示含有2字节和6字节容器各有4个,4字节容器有16个,以及8字节容器有8个,这四种容器的字节数共4×(2+6) + 4×16 + 8×8 B = 160B。此外,还分配并附加了32个字节来存储特定于平台的包括丢弃数据包的指示和目标端口等指示报文状态的元数据,因此报头首部向量的总长度为192字节,该实施例中共包含32+1=33个报头首部向量容器。
所述互联结构用于根据所述超长指令字提取报头首部向量中的操作数并传输至所述逻辑运算单元中,作为指令数据,做计算或者修改。互联结构的设置需要兼顾资源消耗与满足电路的时序计算要求。普遍地,互联结构可以采用交叉开关的结构,交叉开关包括n条水平线和垂直线,每个交叉点上的开关元件决定水平线和垂直线的连接情况,其中n为操作数的位数。图6中所示的交叉开关以8输入、8输出为例,水平线为输入,垂直线为输出,针对同样的8路输入,每个交叉点上开关元件的取值变化时,对应的输出也随之发生变化,显然这是一种将n输入映射到n输出的结构,每种输入和输出的组合都是允许的。采用此种互联结构虽然具有直接将报头首部向量容器中的数据几乎无阻塞的送到逻辑运算单元的输入中、无数据路径冲突问题、且电路设计简单的优势,但电路规模是n2的函数,即复杂度为O(n2),随着输入数n的增长,电路规模急剧增长,资源消耗较大。
为了解决互联结构的资源开销大的问题,互联结构可以采用n输入×n输出的蝶形网络,其中n为操作数的位数,所述蝶形网络包括级二路选择输出元件组,每组包括n个二路选择输出元件,所述互联结构根据与所述逻辑运算单元的编号对应的n个二路选择输出元件的二进制编码确定分支路径,根据所述分支路径将数据传输至所述逻辑运算单元,可以降低资源开销的同时又可保证电路的时序和计算要求。本实施例中采用32输入×32输出的蝶形网络结构,蝶形网络与交叉开关一样,可以在确定的时间延迟后,并发地从报头首部向量中提取多个字段送往对应的计算部件,并且其电路规模的复杂度为O(nlogn),资源消耗相较于交叉开关结构较低。在n输入×n输出的蝶形网络,其中n + 1为报头首部向量中存放操作数的容器个数,n从0开始计数,包括/> 级二路选择输出元件组,每组包括n个二路选择输出元件,总共需要/> 个元件。为了直观理解,以图7所示的蝶形网络为例,互联结构根据指令要将报头首部向量的第一个字段值送往计算部件3中,将数据值提取并作为输入0放入网络,在第0级元件组对应的元件中,选择分支0,经过1拍后,送往第1级元件组,选择分支1,再经过1拍后到达第2级元件组,之后选择分支1,在经过延迟后,从输出3被送往计算部件3中。在该过程中,数据进入每一级选择元件后被暂存,等待选路结果;每个输入字段总是可以在/>拍的确定延迟后,到达对应的计算部件。表1例举了几种不同输入输出情况的分支路径选择,二输出选路元件分支选择如图8所示,在上的为分支0,下边是分支1。由此可知,只需知道是哪个计算部件需要数据,使用计算部件编号对应的二进制编码就可以确定分支路径,从而将数据送往对应的计算部件。
表1 路径分支举例
所需数据位置 | 计算部件位置 | 路径选择 |
输入0 | 输出3 | 0、1、1 |
输入3 | 输出7 | 1、1、1 |
输入4 | 输出7 | 1、1、1 |
输入5 | 输出0 | 0、0、0 |
输入7 | 输出0 | 0、0、0 |
如图9所示,互联结构中每个蝶形网络接收报头首部向量中的操作数并输出三位操作数并传输至对应的逻辑运算单元进行处理,而互联结构中共有32个蝶形网络的输入输出,此外元数据的输入输出通过专门处理,采用蝶形网络的互联结构在小幅度增加确定的处理延迟的基础上,实现了更高的处理频率,并且支持更大的报头首部向量数据位宽。
在本发明实施例中,执行指令的部件即算术逻辑单元,所述逻辑运算单元用于解析所述超长指令字,从所述内存中读取状态变量,并根据所述操作数和所述状态变量执行运算,根据运算结果更新报头首部向量。算术逻辑单元的数量与报头首部向量中的容器数量相等,总有33个算术逻辑单元,其中1个算术逻辑单元专用于处理元数据信息,可以并行地对报头首部向量中每个容器做操作,可实现高速率执行操作。算术逻辑单元和报头首部向量中的容器规格对应,输入的操作数分为4种规格,宽度分别为2B、4B、6B和8B。指令执行单元设置专门的算术逻辑单元根据元数据内部各类计数器或状态寄存器的当前值,如用于记录报文的输入端口号,到达时间戳,报文优先级等信息,并且可携带报文丢弃位,输出端口号位图等对报文行为进行控制。
可选的,所述与所述逻辑运算单元连接的内存采用分散的块RAM组成分布式RAM,分布式RAM同属于一个逻辑地址空间,物理地址空间分散且不连续。
可选的,多个所述逻辑运算单元同时访问分布式RAM中的同一个状态变量时,访问顺序由优先级决定,其中,所述逻辑运算单元的序号越大,所述优先级越高。
算术逻辑单元均可以访问状态内存,由于算术逻辑单元的并行性,需要考虑写后读、读后写以及多个算术逻辑单元同时访问时的顺序问题。为了实现算术逻辑单元访问内存的并行性,且考虑写后读、读后写以及多个算术逻辑单元同时访问时的顺序问题,本发明实施例采用分布式RAM的设计,将算术逻辑单元对内存的访问分散到各种小RAM中。为了规避对状态内存访问过程中的不一致问题,规定不允许同时写或者同时读写,只允许多个算术逻辑单元同时读。在超长指令字发出时,编译器会对指令进行优化,将可能存在同时写或者同时读写的指令分散到不同的超长指令字中,避免数据冒险,这里用到了编译器的指令优化技术。本发明实施例中的内存采用块RAM或分布式RAM,其中,一个容器对应一个块RAM或分布式RAM。分布式RAM,就是将分散的RAM资源组合起来向外提供统一的接口,每一个小RAM都有自己的基地址。多个所述逻辑运算单元同时访问地址分散在不同块RAM或分布式RAM中的状态变量。多个所述逻辑运算单元还可以根据优先级顺序访问同一块RAM或分布式RAM中的状态变量,其中,所述容器的序号越大,所述优先级越高。即当多个算术逻辑单元同时访问状态内存时且地址分散在不同的小RAM中,所有的算术逻辑单元可以并行地同时存储或加载(store/load)数据。如图5所示,当同时访问时有多于两个地址集中在同一个小RAM上时,可以采用优先级来规定不同算术逻辑单元的访问顺序。多个算术逻辑单元并行访问时,有专门的互联结构将特定算术逻辑单元请求的数据送往对应算术逻辑单元。
传统支持RMT模型的可编程交换机在类似无隔离场景下,不同虚拟网络的自定义配置在交换机内无隔离的执行,存在冲突的潜在风险。本实施例中,逻辑运算单元所访问的状态内存采用了分布式的设计,即多个小块内存构成一个在逻辑上以整体形式存在的状态内存,不采用集中式内存的原因是考虑到要在虚拟网络间实现物理上的隔离,且可以尽可能地并行访存。分布式RAM采用虚拟网络隔离,每个虚拟网络通过网络标识区分不同的内存空间。网络标识为VLAN ID标识或基于VXLAN协议的VNI标识。具体的机制为:①地址空间:分布式内存同属于一个逻辑地址空间,但物理地址空间分散且不连续;②设置隔离映射表:每个虚拟网络由VLAN ID标识,可唯一地标记不同的虚拟网络划分,或使用VXLAN协议中的VNI标识符,不同的网络的访存操作被隔离映射表映射到不同的内存空间,即使逻辑运算单元发来相同的逻辑地址偏移量,也只是在该网络对应的内存空间中查找,若逻辑运算单元送来的偏移量超过内存空间的大小长度,则表示访问越界,报错误信息。③实现不同虚拟网络的隔离:每个网络被预先根据服务等级划分了不同的内存空间,且读写操作被限制在自己对应的内存空间,对别的内存空间不可见,即在物理上实现隔离。
本发明实施例提供了一种支持RMT的动作执行引擎,包括指令存储器、与所述指令存储器连接的互联结构和逻辑运算单元、以及与所述逻辑运算单元连接的内存;所述指令存储器用于存储待执行的超长指令字;所述互联结构用于根据所述超长指令字中的子指令提取报头首部向量中的字段值并传输至所述逻辑运算单元作为操作数;所述逻辑运算单元用于解析所述超长指令字的子指令,从所述内存中读取状态变量,并根据所述操作数和所述状态变量执行运算,根据运算结果更新报头首部向量,能够支持虚拟网络隔离,进行有状态和无状态变量运算,指令格式兼容RISC-V指令集,具有强大的动作处理能力,扩宽了动作执行引擎在更大范围内的应用,使得互联结构的资源消耗降低,满足更高处理频率要求。
基于同一发明构思,本发明实施例提供了一种支持RMT的动作执行引擎的动作执行方法,如图10所示,所述方法包括:
步骤S101:通过指令存储器将于存储的待执行的超长指令字传输至互联结构和逻辑运算单元。
超长指令字中的子指令的类型包括立即数运算类,非立即数运算类,立即数移位运算类,store类和其他类型。超长指令字的长度是32位,其中操作码为7位,操作数为3位,兼容RISC-V指令格式。指令存储器根据所需执行任务对着对照匹配表进行指令的索引操作;根据对照匹配表的索引操作结果,所述指令存储器将要执行的超长指令字发送给互联结构和逻辑运算单元。
步骤S102:所述互联结构根据所述超长指令字中的子指令提取报头首部向量中的字段值并传输至所述逻辑运算单元作为操作数。
互联结构的设置需要兼顾资源消耗与满足电路的时序计算要求。互联结构采用n输入×n输出的蝶形网络,使用计算部件编号对应的二进制编码就可以确定分支路径,从而将数据送往对应的计算部件。其中n + 1为报头首部向量中存放操作数的容器个数。互联结构获取超长指令字;所述互联结构根据所述超长指令字中的子指令提取对应的报头首部向量中的字段值;将字段值传输至对应的所述逻辑运算单元进行处理。
步骤S103:所述逻辑运算单元解析所述超长指令字的子指令,从内存中读取状态变量。
逻辑运算单元获取超长指令字的子指令后进行解析,判断指令类型;所述逻辑运算单元从分布式内存中读取状态变量。
步骤S104:所述逻辑运算单元根据所述操作数和所述状态变量执行运算,并根据运算结果更新报头首部向量。
所述逻辑单元获取操作数和所述状态变量;所述逻辑单元根据操作数和所述状态变量进行运算操作;所述逻辑单元将运算结果写回对应的容器中并根据运算结果更新报头首部向量,指令执行完毕。
本发明实施例提供了一种RMT动作执行引擎的动作执行方法,包括:通过指令存储器将于存储的待执行的超长指令字传输至互联结构和逻辑运算单元;所述互联结构根据所述超长指令字中的子指令提取报头首部向量中的字段值并传输至所述逻辑运算单元作为操作数;所述逻辑运算单元解析所述超长指令字的子指令,从所述内存中读取状态变量;所述逻辑运算单元根据所述操作数和所述状态变量执行运算,并根据运算结果更新报头首部向量,能够支持加减乘等算术运算、逻辑运算以及移位运算等,指令功能强大,逻辑运算单元功能更强。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本公开的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
本发明实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (8)
1.一种支持RMT的动作执行装置,其特征是,所述动作执行装置包括:指令存储器、与所述指令存储器连接的互联结构和逻辑运算单元、以及与所述逻辑运算单元连接的内存;所述指令存储器用于存储待执行的超长指令字;所述互联结构用于根据所述超长指令字中的子指令提取报头首部向量中的字段值并传输至所述逻辑运算单元作为操作数;所述逻辑运算单元用于解析所述超长指令字的子指令,从所述内存中读取状态变量,并根据所述操作数和所述状态变量执行运算,根据运算结果更新报头首部向量,所述与所述逻辑运算单元连接的内存采用分散的块RAM组成分布式RAM,分布式RAM同属于一个逻辑地址空间,物理地址空间分散且不连续,所述分布式RAM采用虚拟网络隔离,每个虚拟网络通过网络标识区分不同的内存空间。
2.如权利要求1所述的支持RMT的动作执行装置,其特征是,所述超长指令字中的子指令的类型包括立即数运算类,非立即数运算类,立即数移位运算类和store类。
3.如权利要求2所述的支持RMT的动作执行装置,其特征是,所述超长指令字包含33条子指令,子指令并发执行,子指令的长度是32位,其中操作码为7位,操作数为3位,兼容RISC-V指令格式。
4.如权利要求2所述的支持RMT的动作执行装置,其特征是,所述超长指令字的报头首部向量中包括33个容器,其中32个所述容器用于报文对应的字段值,作为所述超长指令字中的子指令的操作数,1个容器用于存储元数据。
5.如权利要求1所述的支持RMT的动作执行装置,其特征是,多个所述逻辑运算单元同时访问分布式RAM中的同一个状态变量时,访问顺序由优先级决定,其中,所述逻辑运算单元的序号越大,所述优先级越高。
6. 如权利要求1所述的支持RMT的动作执行装置,其特征是,所述网络标识为VLAN ID标识或基于VXLAN协议的VNI标识。
7.如权利要求1所述的支持RMT的动作执行装置,其特征是,所述互联结构采用n输入×n输出的蝶形网络,其中n为操作数的位数,所述蝶形网络包括级二路选择输出元件组,每组包括n个二路选择输出元件,所述互联结构根据与所述逻辑运算单元的编号对应的n个二路选择输出元件的二进制编码确定分支路径,根据所述分支路径将数据传输至所述逻辑运算单元。
8.一种如权利要求1-7中任一项所述的支持RMT的动作执行装置的动作执行方法,其特征是,所述方法包括:
通过指令存储器将于存储的待执行的超长指令字传输至互联结构和逻辑运算单元;
所述互联结构根据所述超长指令字中的子指令提取报头首部向量中的字段值并传输至所述逻辑运算单元作为操作数;
所述逻辑运算单元解析所述超长指令字的子指令,从内存中读取状态变量,所述内存采用分散的块RAM组成分布式RAM,分布式RAM同属于一个逻辑地址空间,物理地址空间分散且不连续,所述分布式RAM采用虚拟网络隔离,每个虚拟网络通过网络标识区分不同的内存空间;
所述逻辑运算单元根据所述操作数和所述状态变量执行运算,并根据运算结果更新报头首部向量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310426848.XA CN116156027B (zh) | 2023-04-20 | 2023-04-20 | 一种支持rmt的动作执行引擎及其执行方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310426848.XA CN116156027B (zh) | 2023-04-20 | 2023-04-20 | 一种支持rmt的动作执行引擎及其执行方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116156027A CN116156027A (zh) | 2023-05-23 |
CN116156027B true CN116156027B (zh) | 2023-07-18 |
Family
ID=86354714
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310426848.XA Active CN116156027B (zh) | 2023-04-20 | 2023-04-20 | 一种支持rmt的动作执行引擎及其执行方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116156027B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7644317B1 (en) * | 2004-06-02 | 2010-01-05 | Cisco Technology, Inc. | Method and apparatus for fault detection/isolation in metro Ethernet service |
EP2958285A2 (en) * | 2014-06-19 | 2015-12-23 | Cavium, Inc. | A method of extracting data from packets and an apparatus thereof |
WO2016107269A1 (zh) * | 2014-12-31 | 2016-07-07 | 华为技术有限公司 | 虚拟可扩展本地区域网络中数据传输的设备和方法 |
CN111273995A (zh) * | 2020-01-09 | 2020-06-12 | 武汉思普崚技术有限公司 | 一种虚拟微隔离网络的安全调度方法及系统 |
CN112787931A (zh) * | 2019-11-06 | 2021-05-11 | 华为技术有限公司 | 报文传输方法、代理节点及存储介质 |
CN113992610A (zh) * | 2021-09-27 | 2022-01-28 | 西安电子科技大学 | 支持网络处理器的数据包包头处理电路系统及其控制方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9826071B2 (en) * | 2015-08-26 | 2017-11-21 | Barefoot Networks, Inc. | Configuring a switch for extracting packet header fields |
US11102079B2 (en) * | 2018-04-17 | 2021-08-24 | Microsoft Technology Licensing, Llc | Cross-regional virtual network peering |
-
2023
- 2023-04-20 CN CN202310426848.XA patent/CN116156027B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7644317B1 (en) * | 2004-06-02 | 2010-01-05 | Cisco Technology, Inc. | Method and apparatus for fault detection/isolation in metro Ethernet service |
EP2958285A2 (en) * | 2014-06-19 | 2015-12-23 | Cavium, Inc. | A method of extracting data from packets and an apparatus thereof |
WO2016107269A1 (zh) * | 2014-12-31 | 2016-07-07 | 华为技术有限公司 | 虚拟可扩展本地区域网络中数据传输的设备和方法 |
CN112787931A (zh) * | 2019-11-06 | 2021-05-11 | 华为技术有限公司 | 报文传输方法、代理节点及存储介质 |
CN111273995A (zh) * | 2020-01-09 | 2020-06-12 | 武汉思普崚技术有限公司 | 一种虚拟微隔离网络的安全调度方法及系统 |
CN113992610A (zh) * | 2021-09-27 | 2022-01-28 | 西安电子科技大学 | 支持网络处理器的数据包包头处理电路系统及其控制方法 |
Non-Patent Citations (1)
Title |
---|
REFINE:一种可重构的SDN转发平面实现模型;赵涛;李韬;孙志刚;卞洪飞;黄金锋;;小型微型计算机系统(10);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116156027A (zh) | 2023-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11038993B2 (en) | Flexible processing of network packets | |
CN102104541B (zh) | 报头处理引擎 | |
CN108833299B (zh) | 一种基于可重构交换芯片架构的大规模网络数据处理方法 | |
KR100466083B1 (ko) | 인터페이스 디바이스를 포함하는 장치 및 데이터 플로우 핸들링 방법 | |
KR100506323B1 (ko) | 네트워크 프로세서를 사용하는 네트워크 스위치 및 그의방법 | |
KR100468800B1 (ko) | 네트워크 프로세서 | |
KR100481258B1 (ko) | 네트워크 프로세서 프로세싱 콤플렉스 및 방법 | |
KR100498824B1 (ko) | Vlsi 네트워크 프로세서 및 방법 | |
US20090245257A1 (en) | Network On Chip | |
EP3684018B1 (en) | Method and network device for handling packets in a network by means of forwarding tables | |
US11258726B2 (en) | Low latency packet switch architecture | |
CN109117270A (zh) | 提高网络数据包处理效率的方法 | |
CN104468401A (zh) | 一种报文处理方法和装置 | |
US20070192572A1 (en) | Minimum processor instruction for implementing weighted fair queuing and other priority queuing | |
CN106170956B (zh) | 一种路由方法和设备 | |
CN111684769A (zh) | 包括基于表的动作的匹配处理单元的网络系统 | |
US11652744B1 (en) | Multi-stage prefix matching enhancements | |
CN103685041A (zh) | 一种基于比特粒度可编程的路由器及路由方法 | |
WO2017084228A1 (zh) | 软件定义网络中流量项目的管理方法 | |
CN116156027B (zh) | 一种支持rmt的动作执行引擎及其执行方法 | |
CN114039894B (zh) | 一种基于矢量包的网络性能优化方法、系统、设备、介质 | |
US9164794B2 (en) | Hardware prefix reduction circuit | |
CN113824781B (zh) | 一种数据中心网络源路由方法与装置 | |
US10554572B1 (en) | Scalable ingress arbitration for merging control and payload | |
US9268600B2 (en) | Picoengine pool transactional memory architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |