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

用于加载索引和分散操作的指令和逻辑制造技术

技术编号:18465919 阅读:110 留言:0更新日期:2018-07-18 15:58
一种处理器,包括用于执行指令以便从索引阵列加载索引并且基于那些索引将元素分散到稀疏存储器中的位置的执行单元。所述执行单元包括用于根据需要针对有待通过所述指令被分散的每个数据元素而加载用于计算存储器中特定数据元素将被写入的地址的索引值的逻辑。可以从针对所述指令标识的索引阵列中检索所述索引值。所述执行单元包括用于在使用可选缩放的情况下基于针对所述指令指定的基地址与针对所述数据元素位置所检索的所述索引值之和来计算所述地址的逻辑。所述执行单元包括用于从针对所述指令指定的源向量寄存器中的连续位置中检索数据元素并将其存储到所计算位置的逻辑。

Instructions and logic for loading index and decentralized operation

A processor, including an execution unit used to execute instructions in order to load index from an index array and to disperse the elements to a location in a sparse memory based on those indexes. The execution unit includes the logic of loading the index values for calculating the address of the address that the specific data element will be written in the memory in accordance with each data element that needs to be dispersed by the instructions to be dispersed by the instructions. The index value can be retrieved from an index array for identifying the instruction. The execution unit includes logic for calculating the address based on the sum of the index values that are retrieved for the location of the data element, based on the base address specified by the instructions in the use of optional zoom. The execution unit includes the logic for retrieving data elements from a continuous position in a source vector register specified by the instructions specified by the instructions and storing them to the calculated location.

【技术实现步骤摘要】
【国外来华专利技术】用于加载索引和分散操作的指令和逻辑
本公开涉及处理逻辑、微处理器和相关联的指令集架构领域,所述指令集架构当由处理器或其他处理逻辑执行时执行逻辑、数学或其他功能操作。相关技术说明多处理器系统正变得越来越普遍。多处理器系统的应用包括动态域分区一直延续到桌面计算。为了利用多处理器系统,可以将有待执行的代码分成多个线程以供由各种处理实体执行。可以彼此并行地执行每个线程。当指令在处理器上接收时其可以被解码为原生或更原生的词语或指令字以供在处理器上执行。处理器可以在片上系统中实施。通过存储在阵列中的索引对存储器进行间接的读访问和写访问可用于密码学、简图遍历、分类和稀疏矩阵应用。附图说明实施例以举例的方式被展示并且不限于附图中的图:图1A是根据本公开的实施例的形成有可以包括用于执行指令的执行单元的处理器的示例性计算机系统的框图;图1B展示了根据本公开的实施例的数据处理系统;图1C展示了用于执行文本串比较操作的数据处理系统的其他实施例;图2是根据本公开的实施例的可以包括用于执行指令的逻辑电路的处理器的微架构的框图;图3A展示了根据本公开的实施例的多媒体寄存器中的各种紧缩数据类型表示;图3B展示了根据本公开的实施例的可能的寄存器中数据存储格式(in-registerdatastorageformat);图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是根据本公开的实施例的用于执行从索引阵列加载索引并且基于那些索引将元素分散到稀疏存储器中的一个或多个随机位置的操作的展示;图22A和图22B展示了根据本公开的实施例的对Load-Indices-and-Scatter(加载索引和分散)指令的对应形式的操作;图23展示了根据本公开的实施例的用于从索引阵列加载索引并且基于那些索引将元素分散到稀疏存储器中的一个或多个随机位置的示例方法。具体实施方式以下说明描述了用于执行向量操作以便从索引阵列加载索引并且基于处理设备上的那些索引将元素分散到稀疏存储器中的一个或多个随机位置的指令和处理逻辑。这种处理设备可以包括乱序处理器。在以下具体实施方式中,阐述了诸如处理逻辑、处理器类型、微架构条件、事件、启用机制等许多具体细节以便提供对本公开的实施例的更全面理解。然而,本领域技术人员应理解的是,可以在没有这些具体细节的情况下实践实施例。另外,未详细示出一些熟知的结构、电路等,从而避免不必要地模糊本公开的实施例。虽然下面的实施例是参照处理器进行描述的,但是其他实施例适用于其他类型的集成电路和逻辑装置。本公开的实施例的类似技术和教导可以应用于可以从更高的流水线吞吐量和改进的性能受益的其他类型的电路或半导体装置。本公开的实施例的教导适用于执行数据操纵的任何处理器或机器。然而,实施例不限于执行512位、256位、128位、64位、32位或16位数据操作的处理器或机器,并且可以应用于在其中可以执行数据的操纵或管理的任何处理器和机器。另外,以下描述提供了示例,并且附图示出了用于说明目的的各种示例。然而,这些示例不应在限制性意义上予以解释,因为它们仅旨在提供本公开的实施例的示例,而不是提供本公开的实施例的所有可能的实施方式的详尽列表。虽然以下示例描述了在执行单元和逻辑电路的上下文中的指令处理和分配,但是本公开的其他实施例可以通过存储在机器可读有形介质上的数据或指令来实现,所述数据或指令当由机器执行时使机器执行与本公开的至少一个实施例一致的功能。在一个实施例中,在机器可执行指令中将与本公开的实施例相关联的功能具体化。指令可以用于使可利用这些指令编程的通用或专用处理器执行本公开中的步骤。本公开的实施例可以作为可包括机器或计算机可读介质的计算机程序产品或软件而提供,所述机器或计算机可读介质具有存储于其上的指令,所述指令可以用于对计算机(或其他电子装置)进行编程以便执行根据本公开的实施例的一个或多个操作。此外,本公开的实施例的步骤可以由包含用于执行所述步骤的固定功能逻辑的特定硬件组件或者由经编程的计算机组件与固定功能硬件组件的任何组合来执行。用于对逻辑进行编程以执行本公开的实施例的指令可以存储在系统中的存储器内,例如,DRAM、高速缓存、闪存或其他存储设备。此外,指令可以经由网络或借助于其他计算机可读介质来分配。因此,机器可读介质可以包括用于存储或传输由机器(例如,计算机)可读的形式的信息的任何机制,但是不限于软磁盘、光盘、只读光盘存储器(CD-ROM)和磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪存、或用于经由电、光、声音、或其他形式的传播信号(例如,载波、红外信号、数字信号等)在互联网上传输信息的有形机器可读存储设备。因此,计算机可读介质可以包括适用于存储或传输机器(例如,计算机)可读形式的电子指令或信息的任何类型的有形机器可读介质。设计可以贯穿各个不同的阶段,从产生到仿真到制造。表示设计的数据可用若干方式来表示所述设计。首先,如可以在模拟中有用的,可使用硬件描述语言或其他功能描述语言来表示硬件。另外,可以在设计过程的一些阶段产生具有逻辑和/或晶体管门的电路级模型。此外,设计在一些阶段处可以达到代表在硬件模型中的不同装置的物理布局的数据水平。在使用一些半导体制造技术的情况下,表示硬件模型的数据可本文档来自技高网...

【技术保护点】
1.一种处理器,包括:前端,用于接收指令;解码器,用于对所述指令进行解码;核,用于执行所述指令,所述核包括:第一逻辑,用于从索引阵列中检索第一索引值,其中:所述索引阵列位于存储器中基于所述指令的第一参数的第一地址处;并且所述第一索引值位于所述索引阵列内的最低顺序位置处;第二逻辑,用于基于以下各项计算在所述存储器中有待将第一数据元素分散到的位置的地址:所述第一索引值;以及所述存储器中的一组潜在数据元素位置的基地址,所述基地址基于所述指令的第二参数;第三逻辑,用于从由所述指令的第三参数标识的源向量寄存器中检索所述第一数据元素,其中,所述第一数据元素将从所述源向量寄存器中的最低顺序位置中被检索;以及第四逻辑,用于将所述第一数据元素存储到所述存储器中可使用针对有待将所述第一数据元素分散到的所述位置所计算的所述地址来访问的位置;以及引退单元,用于引退所述指令。

【技术特征摘要】
【国外来华专利技术】2015.12.21 US 14/977,4451.一种处理器,包括:前端,用于接收指令;解码器,用于对所述指令进行解码;核,用于执行所述指令,所述核包括:第一逻辑,用于从索引阵列中检索第一索引值,其中:所述索引阵列位于存储器中基于所述指令的第一参数的第一地址处;并且所述第一索引值位于所述索引阵列内的最低顺序位置处;第二逻辑,用于基于以下各项计算在所述存储器中有待将第一数据元素分散到的位置的地址:所述第一索引值;以及所述存储器中的一组潜在数据元素位置的基地址,所述基地址基于所述指令的第二参数;第三逻辑,用于从由所述指令的第三参数标识的源向量寄存器中检索所述第一数据元素,其中,所述第一数据元素将从所述源向量寄存器中的最低顺序位置中被检索;以及第四逻辑,用于将所述第一数据元素存储到所述存储器中可使用针对有待将所述第一数据元素分散到的所述位置所计算的所述地址来访问的位置;以及引退单元,用于引退所述指令。2.如权利要求1所述的处理器,其特征在于,所述核进一步包括:第五逻辑,用于从所述索引阵列中检索第二索引值,所述第二索引值将在所述阵列内与所述第一索引值相邻;第六逻辑,用于基于以下各项计算在所述存储器中有待将第二数据元素分散到的位置的地址:所述第二索引值;以及所述存储器中的所述一组潜在数据元素位置的所述基地址;第七逻辑,用于从所述源向量寄存器中检索所述第二数据元素,所述第二数据元素在所述源向量寄存器中与所述第一数据元素相邻;以及第八逻辑,用于将所述第二数据元素存储到所述存储器中可使用针对有待将所述第二数据元素分散到的所述位置所计算的所述地址来访问的位置,其中,所述第二数据元素被存储到所述存储器中与所述第一数据元素不相邻的位置。3.如权利要求1所述的处理器,其特征在于,针对有待将所述第一数据元素分散到的所述位置所计算的所述地址与所述存储器中的所述一组潜在数据元素位置的所述基地址不同。4.如权利要求1所述的处理器,其特征在于,所述核进一步包括:第五逻辑,用于针对通过执行所述指令被分散到所述存储器的每个附加数据元素来从所述索引阵列内的下一个连续位置中检索对应索引值;第六逻辑,用于针对所述附加数据元素中的每一个基于以下各项来计算将所述附加数据元素分散到的对应地址:所述对应索引值;以及所述存储器中的所述一组潜在数据元素位置的所述基地址;第七逻辑,用于从所述源向量寄存器中的下一个连续位置中检索每个附加数据元素;以及第八逻辑,用于将每个附加数据元素存储到所述存储器中可使用针对有待将所述附加数据元素分散到的所述位置所计算的所述地址来访问的对应位置,所述附加数据元素将被存储到的所述位置中的至少两个是不相邻的位置;其中,待分散的最大数据元素数量基于所述指令的第四参数。5.如权利要求1所述的处理器,其特征在于,所述核进一步包括:第五逻辑,用于确定掩码寄存器中用于附加索引值的位未被置位,所述掩码寄存器是基于所述指令的第四参数而被标识的;第六逻辑,用于基于确定所述掩码中的所述位未被置位而省略以下操作:检索所述附加索引值;基于所述附加索引值计算有待将附加数据元素分散到的位置的地址;从所述源向量寄存器中检索所述附加数据元素;以及将所述附加数据元素存储到所述存储器中可使用针对有待将所述附加数据元素分散到的所述位置所计算的所述地址来访问的位置;以及第七逻辑,用于基于确定所述掩码中所述位未被置位而保持所述存储器中所述附加数据元素在其他情况下会被存储到的所述位置中的所述值。6.如权利要求1所述的处理器,其特征在于,所述核进一步包括:高速缓存;第五逻辑,用于将附加索引值从所述索引阵列预取到所述高速缓存中;第六逻辑,用于基于所述附加索引值来计算所述存储器中的附加位置的地址;以及第七逻辑,用于将所述存储器中的所述附加位置的内容预取到所述高速缓存中。7.如权利要求1所述的处理器,其特征在于,所述核进一步包括:第五逻辑,用于将所述存储器中待分散的所述第一数据元素的所述地址计算为所述第一索引值与所述存储器中的所述一组潜在数据元素位置的所述基地址之和。8.如权利要求1所述的处理器,其特征在于,所述核进一步包括:第五逻辑,用于判定掩码寄存器中用于附加索引值的位是否被置位,所述掩码寄存器是基于所述指令的第四参数而被标识的;第六逻辑,用于在已经判定了所述位是否已经被置位之后清除所述掩码寄存器中的每一位。9.如权利要求1所述的处理器,其特征在于,所述核进一步包括:第五逻辑,用于确定掩码寄存器中用于附加索引值的位被置位,所述掩码寄存器是基于所述指令的第四参数而被标识的;第六逻辑,用于基于确定所述掩码中的所述位未被置位而省略检索所述附加索引值:基于所述附加索引值计算有待将附加数据元素分散到的位置的地址;以及从所述源向量寄存器中检索所述附加数据元素,并且将所述附加数据元素存储到所述存储器中可使用针对有待将所述附加数据元素分散到的所述位置所计算的所述地址来访问的位置;以及第七逻辑,用于基于确定所述掩码中所述位未被置位来将空值存储在所述存储器中所述附加数据元素在其他情况下会被存储到的所述位置中。10.如权利要求1所述的处理器,其特征在于,所述处理器包括:单指令多数据(SIMD)协处理器,用于实施对所述指令的执行。11.一种方法,所述方法包括在处理器中:接收指令;对所述指令进行解码;执行所述指令,包括:从索引阵列中检索第一索引值,其中:所述索引阵列位于存储器中基于所述指令的第一参数的地址处;并且所述第一索引值位于所述索引阵列内的最低顺序位置处;基于以下各项计算在所述存储器中有待将第一数据元素分散到的位置的地址:所述第一索引值;以及所述存储器中的一组潜在数据元素位置的基地址,所述基地址基于所述指令的第二参数;以及从由所述指令的第三参数标识的源向量寄存器中的最低顺序位置中检索所述第一数据元素;以及将所述第一数据元素存储到所述存储器中可使用针对有待将所述第一数据元素分散到的所述位置所计算的所述地址来访问的位置;以及引退所述指令。12.如权利要求11所述的方法,其特征在于,进一步包括:从所述索引阵列中检索第二索引值,所述第二索引值在所述阵列内与所述第一索引值相邻;基于以下各项计算在所述存储器中有待将第二数据元素分散到的位置的地址:所述第二索引值;以及所述存储器中的所述一组潜在数据元素位置的所述基地址;从所述源向量寄存器中检索所述第二数据元素,所述...

【专利技术属性】
技术研发人员:I·M·戈克豪尔C·R·扬特A·C·瓦利斯E·乌尔德阿迈德瓦尔
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国,US

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

1