用于分组处理旋转掩码合并和寄存字段指令的方法及装置制造方法及图纸

技术编号:10308136 阅读:180 留言:0更新日期:2014-08-08 14:40
一种用于分组处理的旋转掩码合并和寄存字段指令。在本发明专利技术的一个实施例中,讨论了在计算机硬件上执行字节旋转合并的方法。字节旋转在第一和第二源操作数上执行,并目分别被按字节旋转第一和第二旋转常数。将第一字节旋转输出和第二字节旋转输出合并在一起。当来自字节掩码的控制比特是逻辑一时,将来自第一字节旋转输出的字节输出到字节旋转合并输出。当来自字节掩码的控制比特是逻辑零时,将来自第二字节旋转输出的字节输出到字节旋转合并输出。

【技术实现步骤摘要】
用于分组处理的旋转掩码合并和寄存字段指令本专利申请要求2013年2月2日提交的题为“Rotate-Mask-Merge andDeposit-Field Instructions for Packet Processing”的美国临时申请61 / 759,661(代理编号T1-73436PS)的优先权,其通过引用合并于此。
技术介绍
计算机硬件可以拦截并记录通过数字网络或一部分数字网络的流量。例如,执行以太网分组交换的计算机硬件单元(通常被称为“交换机”)对于多种功能有要求。一类功能是通常基于将分组与流量表中的条目相匹配来修改分组。这种匹配动作是OpenFlow标准的一部分。存在许多类型的分组操作,这些分组操作是有用的,可能甚至是必需的功能,但未被OpenFlow标准所规定。试图呈现基于匹配动作的用户模型的交换的理想属性是它们能够执行通用的和不同类型的分组操作,以便它们能够实现编程这些交换机的用户所期望的动作。高性能交换机具有有限的时间来处理每个分组。例如,64端口 X IOGb每端口的交换机具有640Gb /秒的总带宽。以大小为64字节的最小以太网分组加上约16字节的分组间间隙,对于这样一个交换机的最大分组速率约为每秒960M分组。例如,以IGHz运行的硬件分组处理流水线每个时钟周期看到一个分组流过流水线(连同约40MHz的备用带宽)。结果,执行分组操作的硬件要么必须在单个时钟周期内完成其功能,要么该硬件必须流水线化。在任一种情况下,对于单独的分组,不能多次重用硬件进行多次计算。这使得有希望保持分组操作硬件简化。此外,在集成电路上可能存在这种硬件的许多拷贝,为保持硬件简化提供进一步的动机。【附图说明】图1A示出了从源操作数中任何位置处获取任何长度字段并将其下移到结果中的比特O的提取指令。(现有技术)图1B示出了获取来自第一源操作数的低阶比特并替换第二(后台)源操作数的字段的寄存字节(deposit-bype)指令。(现有技术)图1C根据本专利技术的一个实施例示出了能够从源操作数中的任何位置获取任何长度字段并将其寄存到后台操作数中的任何位置的寄存字段指令。图2A是示出寄存字节硬件的框图。(现有技术)图2B是根据本专利技术的一个实施例示出寄存字节硬件的框图。图3A是根据本专利技术的一个实施例示出寄存字段硬件的框图。图3B是根据本专利技术的一个实施例示出用于实现字节旋转合并操作的硬件的框图。【具体实施方式】在一个用于分组处理的体系结构的实施例中,其中在分组被解析之后,报头字段被寄存到由多个独立的8比特、16比特和32比特数据时隙组成的分组报头向量中,每个时隙具有一个伴随有效比特。此分组报头向量中的数据被顺序地发送到多个匹配动作处理级,其中在每一级中,分组报头向量中的字段可以用于匹配该级中的表项(tableentry),而作为匹配的结果,可以指定能够修改该分组报头向量的内容的动作。动作引擎是VLIW(超长指令字)体系结构,其针对分组报头向量中的每个独立数据字段具有单独的数据处理单元。针对分组报头向量的每个数据时隙,引导动作引擎的操作的指令具有单独的指令字段。因此,对于分组报头向量的每个时隙,动作由单独的处理指令组成。在包含IPV4 (互联网协议版本4)报头的以太网分组中,32比特IP (互联网协议)的源地址和目的地址通常将各自得到分组报头向量中的一个32比特时隙,而分析器将那些时隙中的值寄存为解析该分组的结果。在包含IPV6 (互联网协议版本6)报头的以太网分组中,128比特的IPV6源地址和目的地址将各自保留在分组报头向量的四个32比特的时隙中。128比特的IPV6被引入是由于IPV4地址的32比特地址空间即将耗尽。在互联网工程任务组IETF RFC6052中给出了用于在IPV4和IPV6格式之间转换地址的一个标准。它规定了用于在IPV4和IPV6之间转换地址的多个安排,如下面来自RFC6052的表1中所示:大字节序:本文档来自技高网...

【技术保护点】
一种用于在计算机硬件上执行字节旋转合并指令的方法,其包括:接收第一源操作数和第二源操作数;将所述第一源操作数按字节旋转由第一旋转常数指定的多个字节而得到第一字节旋转输出;将所述第二源操作数按字节旋转由第二旋转常数指定的多个字节而得到第二字节旋转输出;将所述第一字节旋转输出与所述第二字节旋转输出合并在一起而创建字节旋转合并输出,其中所述字节旋转合并输出包括多个字节,其中所述多个字节中的每个字节具有来自字节掩码的相应控制比特;当来自所述字节掩码的相应控制比特是逻辑一时,为所述字节旋转合并输出中的每个字节选择所述第一字节旋转输出;当来自所述字节掩码的相应控制比特是逻辑零时,为所述字节旋转合并输出中的每个字节选择所述第二字节旋转输出。

【技术特征摘要】
2013.02.01 US 61/759,661;2013.09.12 US 14/025,1771.一种用于在计算机硬件上执行字节旋转合并指令的方法,其包括: 接收第一源操作数和第二源操作数; 将所述第一源操作数按字节旋转由第一旋转常数指定的多个字节而得到第一字节旋转输出; 将所述第二源操作数按字节旋转由第二旋转常数指定的多个字节而得到第二字节旋转输出; 将所述第一字节旋转输出与所述第二字节旋转输出合并在一起而创建字节旋转合并输出,其中所述字节旋转合并输出包括多个字节,其中所述多个字节中的每个字节具有来自字节掩码的相应控制比特; 当来自所述字节掩码的相应控制比特是逻辑一时,为所述字节旋转合并输出中的每个字节选择所述第一字节旋转输出; 当来自所述字节掩码的相应控制比特是逻辑零时,为所述字节旋转合并输出中的每个字节选择所述第二字节旋转输出。2.根据权利要求1所述的方法,其中所述字节旋转掩码被编码为来源于供应低阶字节的操作数的输出字节的数量。3.一种在计算机硬件上执行寄存字段指令的方法,其包括: 接收源操作数和后台操作数; 用来自所述源操作数中指定位置的指定长度替换所述后台操作数中的指定位置,其中所述替换由第一移位常数、第二移位常数和第三移位常数确定。4.根据权利要求3所述的方法,其中所述第一移位常数指定源旋转,所述第二移位常数指定由所述源操作数修改的所述后台操作数的最低有效比特边界,而所述第三移位常数指定由所述源操作数修改的所述后台操作数的最高有效比特边界。5.一种在计算机硬件上执行寄存字段指令的方法,其包括: 接收源操作数和后台操作数; 接收目标位置自变量、源位置自变量和长度自变量; 将所述源操作数旋转ROT自变量而得到字节旋转输出,其中所述ROT自变量等于所述目标位置自变量减去所述源位置自变量; 将所述源位置自变量应用于第一温度计解码器,其中所述第一温度计的输出使...

【专利技术属性】
技术研发人员:P·W·博斯哈特
申请(专利权)人:德克萨斯仪器股份有限公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1