当前位置: 首页 > 专利查询>英特尔公司专利>正文

用于加速集合运算的硬件内容关联数据结构制造技术

技术编号:18737499 阅读:28 留言:0更新日期:2018-08-22 05:49
一种处理器包括:前端,用于接收指令;解码器,用于对所述指令进行解码;集合运算逻辑单元(SOLU),用于执行所述指令;以及引退单元。所述SOLU包括用于进行以下操作的逻辑:将第一键值对集合存储在内容关联数据结构中,接收第二键值对集合,以及识别所述两个集合中具有匹配键的键值对。所述SOLU包括用于进行以下操作的逻辑:将所述第二键值对集合添加到所述第一集合中以产生输出集合,以及将运算应用于具有匹配键的键值对的值,从而生成所述匹配键的单个值。所述SOLU包括用于进行以下操作的逻辑:产生包括来自所述第一集合的具有匹配键的输出集合,以及丢弃来自所述第一集合的具有唯一键的键值对。

【技术实现步骤摘要】
【国外来华专利技术】用于加速集合运算的硬件内容关联数据结构
本公开涉及处理逻辑、微处理器和相关联的指令集架构领域,所述指令集架构当由处理器或其他处理逻辑执行时执行逻辑、数学或其他函数运算。相关技术说明多处理器系统正变得越来越普遍。多处理器系统的应用包括动态域分区一直延续到桌面计算。为了利用多处理器系统,可以将待执行的代码分成多个线程以供由各种处理实体执行。可以彼此并行地执行每个线程。当指令在处理器上接收时其可以被解码为原生或更原生的词语或指令字以供在处理器上执行。处理器可以在片上系统中实施。图处理是大数据分析应用的核心。一些图形处理框架基于集合运算,包括集合并运算(setunionoperation)和集合交运算(setintersectionoperation)。附图说明在附图中的诸个图中通过示例而非限制地示出各个实施例:图1A是根据本公开的实施例的示例性计算机系统的框图,该计算机系统被形成为具有可以包括用于执行指令的执行单元的处理器;图1B示出了根据本公开的实施例的数据处理系统;图1C示出了用于执行文本串比较操作的数据处理系统的其他实施例;图2是根据本公开的实施例的处理器的微架构的框图,处理器可以包括用于执行指令的逻辑电路;图3A示出了根据本公开的实施例的多媒体寄存器中的各种紧缩数据类型表示;图3B示出了根据本公开的实施例的可能的寄存器内数据存储格式;图3C示出了根据本公开的实施例的多媒体寄存器中的各种有符号和无符号紧缩数据类型表示;图3D示出了操作编码格式的实施例;图3E示出了根据本公开的实施例的具有四十位或更多位的另一可能的操作编码格式;图3F示出了根据本公开的实施例的又一可能的操作编码格式;图4A是示出根据本公开的实施例的有序流水线以及寄存器重命名级、乱序发布/执行流水线的框图;图4B是示出根据本公开的实施例的、要被包括在处理器中的有序架构核以及寄存器重命名逻辑、乱序发布/执行逻辑的框图;图5A是根据本公开的实施例的处理器的框图;图5B是根据本公开的实施例的核的示例实现的框图;图6是根据本公开的实施例的系统的框图;图7是根据本公开的实施例的第二系统的框图;图8是根据本公开的实施例的第三系统的框图;图9是根据本公开的实施例的芯片上系统的框图;图10示出了根据本公开的实施例的处理器,包括中央处理单元和图形处理单元,该处理器可执行至少一条指令;图11是示出根据本公开的实施例的IP核开发的框图;图12示出了根据本公开的实施例的不同类型的处理器可以如何仿真第一类型的指令;图13示出了根据本公开的实施例的对照使用软件指令转换器将源指令集中的二进制指令转换成目标指令集中的二进制指令的框图;图14是根据本公开的实施例的处理器的指令集架构的框图;图15是根据本公开的实施例的处理器的指令集架构的更具体的框图;图16是根据本公开的实施例的用于处理器的指令集架构的执行流水线的框图;图17是根据本公开的实施例的用于利用处理器的电子设备的框图;图18是根据本公开的实施例的用于加速执行集合运算的示例系统的图示;图19是根据本公开的实施例的用于加速执行集合运算的另一示例系统的图示;图20是框图,展示了根据本公开的实施例的集合运算逻辑单元;图21是根据本公开的实施例的用于将键值对集合添加到硬件内容关联数据结构中的运算的图示;图22是根据本公开的实施例的用于将键值对集合添加到硬件内容关联数据结构(CAM)的内容中的方法的图示;图23是根据本公开的实施例的用于判定输入键值对集合中的键中的任何键是否与当前存储在硬件内容关联数据结构(CAM)中的键值对中的键相匹配的运算的图示;图24是根据本公开的实施例的用于判定输入键值对集合中的键中的任何键是否与当前存储在硬件内容关联数据结构(CAM)中的键值对中的键相匹配的方法的图示;图25是根据本公开的实施例的用于确定硬件内容关联数据结构(CAM)的当前长度的运算的图示;图26是根据本公开的实施例的用于确定硬件内容关联数据结构(CAM)的当前长度的方法的图示;图27是根据本公开的实施例的用于重置硬件内容关联数据结构(CAM)的内容的运算的图示;图28是根据本公开的实施例的用于重置硬件内容关联数据结构(CAM)的内容的方法的图示;图29是根据本公开的实施例的用于将硬件内容关联数据结构(CAM)的内容移动到存储器中的运算的图示;图30是根据本公开的实施例的用于将硬件内容关联数据结构(CAM)的内容移动到存储器中的方法的图示;图31是根据本公开的实施例的用于使用硬件内容关联数据结构(CAM)来选择性地执行集合运算的方法的图示。具体实施方式以下说明描述了用于加速在处理设备上执行集合运算的指令和处理逻辑。这种处理设备可以包括乱序处理器。在以下描述中,阐述了如处理逻辑、处理器类型、微架构条件、事件、启用机制等许多具体细节以便提供对本公开的实施例的更全面理解。然而,本领域的技术人员应理解的是,可以在没有这种具体细节的情况下实践实施例。另外,未详细示出一些熟知的结构、电路等以避免不必要地模糊本公开的实施例。虽然参照处理器来描述下列各实施例,但是,其他实施例也适用于其他类型的集成电路和逻辑器件。本公开的实施例的类似技术和教导可应用于可受益于更高的流水线吞吐量和改善的性能的其他类型的电路或半导体器件。本公开的诸个实施例的教导适用于执行数据操纵的任何处理器或机器。然而,实施例不限于执行512位、256位、128位、64位、32位或16位数据操作的处理器或机器,并可以应用于其中可以执行对数据的操纵或管理的任何处理器和机器。另外,下列描述提供了示例,并且为了进行说明,所附附图示出各种示例。然而,这些示例不应当以限制性意义来解释,因为它们仅仅旨在提供本公开的诸个实施例的示例,而并非对本公开的实施例的所有可能实现方式进行穷举。虽然下述的示例是在执行单元和逻辑电路情境下描述指令处理和分配,但本公开的其他实施例也可通过存储在机器可读有形介质上的数据和/或指令来完成,这些数据和/或指令在被机器执行时使得机器执行与本公开至少一个实施例相一致的功能。在一个实施例中,与本公开的实施例相关联的功能被具体化在机器可执行指令中。这些指令可用来使可以通过这些指令而被编程的通用处理器或专用处理器执行本公开的步骤。本公开的诸个实施例也可以作为计算机程序产品或软件来提供,该计算机程序产品或软件可包括其上存储有指令的机器或计算机可读介质,这些指令可被用来对计算机(或其他电子设备)进行编程来执行根据本公开的实施例的一个或多个操作。此外,本公开的多个实施例的多个步骤可由包含用于执行这些步骤的固定功能逻辑的专用硬件组件来执行,或由经编程的计算机组件以及固定功能硬件组件的任何组合来执行。被用于对逻辑进行编程以执行本公开的诸个实施例的指令可被存储在系统的存储器(诸如,DRAM、高速缓存、闪存、或其他存储器)中。此外,指令可经由网络或通过其他计算机可读介质来分配。因此,机器可读介质可包括用于以机器(诸如,计算机)可读形式存储或发送信息的任何机制,但不限于:软盘、光盘、紧凑盘只读存储器(CD-ROM)、磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪存、或在经由本文档来自技高网...

【技术保护点】
1.一种处理器,包括:前端,用于对至少一个指令进行解码;分配器,用于将所述指令传递至用于执行所述指令的集合运算逻辑单元,所述集合运算逻辑单元包括:内容关联存储器;第一逻辑,用于将第一键值对集合存储在所述内容关联存储器中;第二逻辑,用于从在所述指令中标识的一个或多个输入位置中获得用于表示第二键值对集合的输入;以及第三逻辑,用于识别所述第二键值对集合中其键与所述第一键值对集合中的键值对中的键相匹配的键值对;以及引退单元,用于引退所述指令。

【技术特征摘要】
【国外来华专利技术】2015.12.23 US 14/757,7761.一种处理器,包括:前端,用于对至少一个指令进行解码;分配器,用于将所述指令传递至用于执行所述指令的集合运算逻辑单元,所述集合运算逻辑单元包括:内容关联存储器;第一逻辑,用于将第一键值对集合存储在所述内容关联存储器中;第二逻辑,用于从在所述指令中标识的一个或多个输入位置中获得用于表示第二键值对集合的输入;以及第三逻辑,用于识别所述第二键值对集合中其键与所述第一键值对集合中的键值对中的键相匹配的键值对;以及引退单元,用于引退所述指令。2.如权利要求1所述的处理器,其特征在于,所述集合运算逻辑单元进一步包括:第四逻辑,用于将所述第二键值对集合中其键与所述第一键值对集合中的键值对中的键相匹配的所述键值对的键作为所述识别的结果而存储到在所述指令中标识的第一输出位置中;以及第五逻辑,用于将所述第二键值对集合中其键与所述第一键值对集合中的键值对中的键相匹配的所述键值对的值作为所述识别的结果而存储到在所述指令中标识的第二输出位置中。3.如权利要求1所述的处理器,其特征在于,所述集合运算逻辑单元进一步包括:第四逻辑,用于将用于表示所述第二键值对集合中其键与所述第一键值对集合中的键值对中的键相匹配的键值对的数量的数据作为所述识别的结果而存储到在所述指令中标识的输出位置中。4.如权利要求1所述的处理器,其特征在于,所述集合运算逻辑单元进一步包括:第四逻辑,用于将在所述指令中指定的算术运算或聚合运算应用于:所述第二键值对集合中其键与所述第一键值对集合中的键值对中的键相匹配的每个键值对中的值;以及所述第一键值对集合中具有所述匹配键的所述键值对中的值,以获得所述匹配键的结果值;第五逻辑,用于创建第三键值对集合,所述第三键值对集合包括:包含所述匹配键的所述结果值的每个匹配键的对应键值对;以及所述第一键值对集合中具有唯一键的每个键值对以及所述第二键值对集合中具有唯一键的每个键值对的对应键值对;以及第六逻辑,用于将所述第三键值对集合存储在所述内容关联存储器中。5.如权利要求1所述的处理器,其特征在于,所述集合运算逻辑单元进一步包括:第四逻辑,用于确定所述内容关联存储器的长度,其中,所述长度用于表示存储在所述内容关联存储器中的键值对的数量;以及第五逻辑,用于返回对所述内容关联存储器的所述长度的指示。6.如权利要求1所述的处理器,其特征在于,所述集合运算逻辑单元进一步包括:第四逻辑,用于删除或无效化所述内容关联存储器的内容;以及第五逻辑,用于将所述内容关联存储器的长度指示符重置为零,其中,所述长度用于表示存储在所述内容关联存储器中的键值对的数量。7.如权利要求1所述的处理器,其特征在于,所述集合运算逻辑单元进一步包括:第四逻辑,用于将待存储在所述内容关联存储器中的键值对的键移动到在所述指令中指定的第一输出位置中;以及第五逻辑,用于将待存储在所述内容关联存储器中的键值对的值移动到在所述指令中指定的第二输出位置中。8.如权利要求1所述的处理器,其特征在于:所述第二键值对集合是有序键值对集合,在所述有序键值对集合中,所述键值对根据其对应键而被排序。9.如权利要求1所述的处理器,其特征在于:所述第二键值对集合的键将从在所述指令中标识的第一输入位置中获得;并且所述第二键值对集合的值将从在所述指令中标识的第二输入位置中获得。10.如权利要求1所述的处理器,其特征在于,所述集合运算逻辑单元进一步包括:第四逻辑,用于从所述第一输入位置和所述第二输入位置接收用于将所述第二键值对集合表示为流式输入的所述输入。11.一种方法,包括:接收第一指令;对所述第一指令进行解码;将所述第一指令传递到用于执行所述第一指令的集合运算逻辑单元;由所述集合运算逻辑单元执行所述第一指令,包括:访问存储在内容关联存储器中的第一键值对集合;从在所述第一指令中标识的一个或多个输入位置接收第二键值对集合;针对所述第二键值对集合中的每个键值对,判定所述键值对的键是否与所述第一键值对集合中的键值对中的键相匹配;将所述判定的结果存储到在所述第一指令中标识的输出位置中;以及引退所述第一指令。12.如权利要求11所述的方法,其特征在于,所述判定的所述结果包括:所述第二键值对集合中的所述键值对中被确定为与所述第一键值对集合中的键值对中的键相匹配的所述键;所述第二键值对集合中其键被确定为与所述第一键值对集合中的键值对的键相匹配的所述键值对中的所述值;或者所述第二键值对集合中的所述键值对中被确定为与所述第一键值对集合中的键值对中的键相匹配的键的数量。13.如权利要求11所述的方法,其特征在于,执行所述第一指令进一步包括:将在所述第一指令中指定的运算应用于:所述第二键值对集合中其键...

【专利技术属性】
技术研发人员:M·J·安德森S·R·李J·S·朴M·M·A·帕特瓦里N·R·萨蒂什M·斯密尔安斯基N·森达拉姆
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国,US

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

1