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

数据元素比较处理器、方法、系统和指令技术方案

技术编号:17746078 阅读:21 留言:0更新日期:2018-04-18 19:31
处理器包括解码单元,该解码单元用于对指令解码,该指令用于指示将包括至少四个数据元素的第一源紧缩数据操作数,用于指示将包括至少四个数据元素的第二源紧缩数据操作数,并且用于指示一个或多个目的地存储位置。执行单元响应于该指令,用于将至少一个结果掩码操作数存储在(多个)目的地存储位置中。该至少一个结果掩码操作数将包括用于第一和第二源紧缩数据操作数中的一个中的、处于相同的相对位置中的每个对应数据元素的不同的掩码元素。每个掩码元素都用于指示源紧缩数据操作数中的所述一个中的对应数据元素是否等于源紧缩数据操作数中的另一个中的数据元素中的任何数据元素。

【技术实现步骤摘要】
【国外来华专利技术】数据元素比较处理器、方法、系统和指令背景
本文中所述的实施例总体上涉及处理器。具体而言,本文中所述的实施例总体上涉及用于处理紧缩数据操作数的处理器。
技术介绍
许多处理器具有单指令多数据(SIMD)架构。在SIMD架构中,紧缩数据指令、向量指令或SIMD指令可同时或并行地对多个数据元素或对多对数据元素进行操作。处理器可具有并行执行硬件,其响应于紧缩数据指令以同时或并行地执行多个操作。多个数据元素可在一个寄存器或存储器位置内被紧缩为紧缩数据或向量数据。在紧缩数据中,寄存器或其他存储位置的多个位可在逻辑上被划分为数据元素的序列。例如,256位宽的紧缩数据寄存器可具有四个64位宽的数据元素、八个32位数据元素、十六个16位数据元素,等等。数据元素中的每个数据元素可表示分开的单个数据片段(例如,像素颜色、复数的分量等),该分开的单个数据片段可被分别操作和/或独立于彼此被操作。附图说明通过参考以下描述以及用于说明多个实施例的附图,可最佳地理解本专利技术。在附图中:图1是示例稀疏矩阵的部分的框图。图2示出图1中的稀疏矩阵的第1行和第2行的列的子集的经压缩的稀疏行表示。图3是可操作用于执行数据元素比较指令的实施例的处理器的实施例的框图。图4是执行数据元素比较指令的实施例的方法的实施例的流程框图。图5是数据元素比较操作的第一示例实施例的框图。图6是数据元素比较操作的第二示例实施例的框图。图7是数据元素比较操作的第三示例实施例的框图。图8是数据元素比较操作的第四示例实施例的框图。图9是经掩蔽的数据元素合并操作的示例的框图。图10是紧缩数据操作掩码寄存器的合适的集合的示例实施例的框图。图11是紧缩数据寄存器的合适的集合的示例实施例的框图。图12A-C是示出根据本专利技术的实施例的通用向量友好指令格式及其指令模板的框图。图13A-B是示出根据本专利技术的实施例的示例性专用向量友好指令格式和操作码字段的框图。图14A-D是示出根据本专利技术的实施例的示例性专用向量友好指令格式及其多个字段的框图。图15是寄存器架构的实施例的框图。图16A是示出有序流水线的实施例以及寄存器重命名的乱序发布/执行流水线的实施例的框图。图16B是处理器核的实施例的框图,该处理器核包括耦合到执行引擎单元的前端单元,并且前端单元和执行引擎单元两者都耦合到存储器单元。图17A是单个处理器核以及它与管芯上互连网络的连接及其第二级(L2)高速缓存的本地子集的实施例的框图。图17B是图17A的处理器核的部分的展开图的实施例的框图。图18是可具有多于一个的核、可具有集成存储器控制器并且可具有集成图形器件的处理器的实施例的框图。图19是计算机架构的第一实施例的框图。图20是计算机架构的第二实施例的框图。图21是计算机架构的第三实施例的框图。图22是计算机架构的第四实施例的框图。图23是根据本专利技术的实施例的使用软件指令转换器将源指令集中的二进制指令转换成目标指令集中的二进制指令的框图。具体实施方式本文中所公开的是数据元素比较指令、用于执行这些指令的处理器、在处理或执行这些指令时由处理器执行的方法以及包含用于处理或执行这些指令的一个或多个处理器的系统。在以下描述中,阐述多个特定细节(例如,特定指令操作、数据格式、处理器配置、微架构细节、操作序列等)。然而,在没有这些特定细节的情况下,也可实施多个实施例。在其他实例中,未详细示出公知的电路、结构和技术,以避免使对本说明书的理解模糊。本文中公开的数据元素比较指令是通用指令,并且不限于任何已知用途。相反,这些指令可基于编程者、编译器等的创造性被用于各种目的和/或以各种方式来使用。在一些实施例中,这些指令可用于处理与稀疏矩阵相关联的数据,但是本专利技术的范围不限于此。在一些实施例中,这些指令可用于处理与经压缩的稀疏行(CSR)表示相关联的数据,但是本专利技术的范围不限于此。为了进一步说明某些概念,将描述用于处理按CSR格式的索引的这些指令的特定用途,CSR格式可用于表示稀疏矩阵的索引和值,但是将理解,这仅是这些指令的一种可能的用途。具有代表性地,这在数据分析、高性能计算、机器学习、稀疏线性代数问题等方面可以是有用的。在其他实施例中,这些指令可还用于处理除稀疏矩阵和/或CSR格式数据之外的其他类型的数据。例如,这些指令可用于处理各种不同类型的数据,诸如,多媒体数据、图形数据、声音数据、视频数据、像素、文本串数据、字符串数据、金融数据、其他类型的整数数据,等等。此外,对数据的此类处理可用于不同的目的,诸如,用于标识重复的数据元素、选择重复的数据元素、合并重复的数据元素、去除重复的数据元素、更改重复的数据元素,或用于各种其他目的。图1是示例稀疏矩阵100的部分的框图。矩阵一般表示二维数据结构,其中,数据值被布置为行和列。在本文中也可将数据值简称为值或数据元素。所示的示例稀疏矩阵被示出为具有至少三十九列和至少两行,并且任选地具有更多。或者,其他稀疏矩阵可具有更多行和/或更少或更多列。第一行的值被示出为a*值,其中,星号(*)表示具有值的列编号。类似地,第二行的值被示出为b*值,其中,星号(*)表示具有值的列编号。例如,第1行、第7列中的值为a7,第1行第23列中的值为a23,第2行第15列中的值为b15,以此类推。在许多不同的应用中,可能期望对两个向量、例如,对稀疏矩阵的两行进行操作。例如,这可为稀疏向量点积计算执行。此类稀疏向量点积计算常用于例如机器学习应用中。此类机器学习应用的示例为内核化支持向量机(SVM)、开源libSVM、内核化主元分析,等等。在此类应用中频繁被使用的内核是平方距离计算模式,其也称为两个向量之间的L2范数(L2-norm)。两个向量α与β之间的平方距离函数f(||f||)由方程1表示:||α–β||2=α2+β2–2α·β方程1这两个向量α与β(它们可以是稀疏向量)之间的内积(·)被表示为如方程2中所示的点积计算:α·β=Σα(i)*β(i),0≤i≤min(length(α),length(β))方程2此类稀疏向量点积计算趋于对机器学习和其他应用的总计算时间作出显著贡献。相应地,增加执行此类稀疏向量点积计算的性能可趋于帮助改善机器学习和其他应用的性能。再次参见图1,当矩阵的值中的显著数量或比例为零值时,稀疏矩阵100可被称为是稀疏的。此类零值常具有特殊的数学属性,诸如例如,与零相乘产生零积,等等。例如,在将同一列中的不同行中的值相乘时,此类零值可生成值为零的积,而将两个非零值相乘可产生非零值。作为示例,将第2列的第1行和第2行中的数据元素相乘(即,a2*0)生成零积,而将第3列的第1行和第2行中的数据元素相乘(即,a3*b3)生成非零值。此外,在乘法累加或点积型计算的特定情况下,此类零值通常不对总累加值或点积作出贡献。相应地,在这些或某些其他用途中,可能期望忽略稀疏矩阵的这些零值。在该特定示例的稀疏矩阵中,如附图标记102所示,仅具有三对来自第1行和第2行的、占据两行都包括非零值的共同列的值。具体而言,对于a3和b3,对于a7和b7,并且对于a23和b23,都是如此。在一些实施例中,能够高效地标识和/或隔离此类值对可以是有益的。如将在下文中进一步所解释,本文中公开的数据元素比较指令对于此目的是有用的,但是这些指令本文档来自技高网...
数据元素比较处理器、方法、系统和指令

【技术保护点】
一种处理器,包括:解码单元,用于对数据元素比较指令解码,所述数据元素比较指令用于指示将包括至少四个数据元素的第一源紧缩数据操作数,用于指示将包括至少四个数据元素的第二源紧缩数据操作数,并且用于指示一个或多个目的地存储位置;以及执行单元,与所述解码单元耦合,所述执行单元响应于所述数据元素比较指令,用于将至少一个结果掩码操作数存储在所述一个或多个目的地存储位置中,所述至少一个结果掩码操作数将包括用于在所述第一源紧缩数据操作数和所述第二源紧缩数据操作数中的一个中的、处于相同的相对位置中的每个对应数据元素的不同掩码元素,每个掩码元素用于指示所述第一源紧缩数据操作数和所述第二源紧缩数据操作数中的所述一个中的对应数据元素是否等于所述第一源紧缩数据操作数和所述第二源紧缩数据操作数中的另一个中的数据元素中的任何数据元素。

【技术特征摘要】
【国外来华专利技术】2015.09.26 US 14/866,9211.一种处理器,包括:解码单元,用于对数据元素比较指令解码,所述数据元素比较指令用于指示将包括至少四个数据元素的第一源紧缩数据操作数,用于指示将包括至少四个数据元素的第二源紧缩数据操作数,并且用于指示一个或多个目的地存储位置;以及执行单元,与所述解码单元耦合,所述执行单元响应于所述数据元素比较指令,用于将至少一个结果掩码操作数存储在所述一个或多个目的地存储位置中,所述至少一个结果掩码操作数将包括用于在所述第一源紧缩数据操作数和所述第二源紧缩数据操作数中的一个中的、处于相同的相对位置中的每个对应数据元素的不同掩码元素,每个掩码元素用于指示所述第一源紧缩数据操作数和所述第二源紧缩数据操作数中的所述一个中的对应数据元素是否等于所述第一源紧缩数据操作数和所述第二源紧缩数据操作数中的另一个中的数据元素中的任何数据元素。2.如权利要求1所述的处理器,其中,所述执行单元响应于所述指令,用于将两个结果掩码操作数存储在所述一个或多个目的地存储位置中,所述两个结果掩码操作数将包括:第一结果掩码操作数,将包括用于所述第一源紧缩数据操作数中的、处于相同的相对位置中的每个对应数据元素的不同掩码元素,所述第一结果掩码操作数的每个掩码元素用于指示所述第一源紧缩数据操作数中的对应数据元素是否等于所述第二源紧缩数据操作数中的数据元素中的任何数据元素;以及第二结果掩码操作数,将包括用于所述第二源紧缩数据操作数中的、处于相同的相对位置中的每个对应数据元素的不同掩码元素,所述第二结果掩码操作数的每个掩码元素用于指示所述第二源紧缩数据操作数中的对应数据元素是否等于所述第一源紧缩数据操作数中的数据元素中的任何数据元素。3.如权利要求2所述的处理器,其中,所述一个或多个目的地存储位置包括第一掩码寄存器和第二掩码寄存器,并且其中,所述执行单元响应于所述指令,用于将所述第一结果掩码操作数存储在所述第一掩码寄存器中,并用于将所述第二结果掩码操作数存储在所述第二掩码寄存器中。4.如权利要求2所述的处理器,其中,所述一个或多个目的地存储位置包括单个掩码寄存器,并且其中,所述执行单元响应于所述指令,用于将所述第一结果掩码操作数和所述第二结果掩码操作数存储在所述单个掩码寄存器中。5.如权利要求4所述的处理器,其中,所述执行单元响应于所述指令,用于将所述第一结果掩码操作数存储在所述单个掩码寄存器的最低有效部分中,并用于将所述第二结果掩码操作数存储在所述单个掩码寄存器的、比所述最低有效部分更高有效的部分中。6.如权利要求1所述的处理器,其中,所述执行单元响应于所述指令,用于将第一结果掩码操作数和第二结果掩码操作数两者存储在紧缩数据寄存器中,并且其中,所述紧缩数据寄存器中的每个数据元素将具有所述第一结果掩码操作数的掩码元素和所述第二结果掩码操作数的掩码元素两者。7.如权利要求1所述的处理器,其中,所述执行单元响应于所述指令,用于将单个结果掩码操作数存储在单个掩码寄存器中。8.如权利要求1所述的处理器,其中,所述执行单元响应于所述指令,用于将所述至少一个结果掩码操作数存储在至少一个掩码寄存器中,并且其中,所述处理器的指令集包括经掩蔽的紧缩数据指令,所述经掩蔽的紧缩数据指令能操作用于将所述至少一个掩码寄存器指示为用于源掩码操作数的存储位置,所述源掩码操作数将用于对紧缩数据操作进行掩蔽。9.如权利要求1-8中的任一项所述的处理器,其中,所述执行单元响应于所述指令,用于将数量不多于所述第一源紧缩数据操作数和所述第二源紧缩数据操作数中的数据元素的数量的结果掩码位存储在所述至少一个结果掩码操作数中。10.如权利要求1-8中的任一项所述的处理器,其中,所述执行单元响应于所述指令,用于存储所述至少一个结果掩码操作数,在所述至少一个结果掩码操作数中,每个掩码元素都包括单个掩码位。11.如权利要求1-8中的任一项所述的处理器,其中,所述解码单元用于对将用于指示所述第一源紧缩数据操作数并用于指示所述第二源紧缩数据操作数的所述指令进行解码,所述第一源紧缩数据操作数将包括至少八个数据元素,所述第二源紧缩数据操作数将包括至少八个数据元素。12.如权利要求1-8中的任一项所述的处理器,其中,所述解码单元用于对将用于指示所述第一源紧缩数据操作数并用于指示所述第二源紧缩数据操作数的所述指令进行解码,所述第一源紧缩数据操作数将包括至少512位,所述第二源紧缩数据操作数将包括至少512位。13.一种处理器中的方法,包括:接收数据元素比较指令,所述数据元素比较指令指示包括至少四个数据元素的第一源紧缩数据操作数,指示包括至少四个数据元素的第二源紧缩数据操作数,指示一个或多个目的地存储位置;以及响应于所述数据元素比较指令,将至少一个结果掩码操作数存储在所述一个或多个目的地存储位置中,所述至少一个结果掩码操作数包括用于在所述第一源紧缩数据操作数和所述第二源紧缩数据操作数中的一个中的、处于相同的...

【专利技术属性】
技术研发人员:A·K·米什拉E·T·格罗科斯基J·D·皮尔斯D·T·马尔E·科恩E·乌尔德阿迈德瓦尔J·考博尔圣阿德里安R·凡伦天M·J·查尼C·J·休斯M·B·吉尔卡尔
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国,US

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

1