《有限范围向量存储器访问指令、处理器、方法和系统.pdf》由会员分享,可在线阅读,更多相关《有限范围向量存储器访问指令、处理器、方法和系统.pdf(66页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN104049943A43申请公布日20140917CN104049943A21申请号201410097314822申请日2014031713/838,54420130315USG06F9/30200601G06F12/06200601G06F13/1620060171申请人英特尔公司地址美国加利福尼亚州72发明人R凡伦天E乌尔德阿迈德瓦尔74专利代理机构上海专利商标事务所有限公司31100代理人高见54发明名称有限范围向量存储器访问指令、处理器、方法和系统57摘要描述了有限范围向量存储器访问指令、处理器、方法和系统。一方面的处理器包括多个打包数据寄存器。该处理还包括与打包数据。
2、寄存器耦合的单元。该单元响应于有限范围向量存储器访问指令。该指令指示源打包存储器索引,该源打包存储器索引具有选自8位存储器索引和16位存储器索引的多个打包存储器索引。该单元还响应于有限范围向量存储器访问指令访问仅在存储器的有限范围中的存储器位置。还公开了其它处理器、方法、系统和指令。30优先权数据51INTCL权利要求书3页说明书35页附图27页19中华人民共和国国家知识产权局12发明专利申请权利要求书3页说明书35页附图27页10申请公布号CN104049943ACN104049943A1/3页21一种处理器,包括多个打包数据寄存器;以及与所述打包数据寄存器耦合的单元,所述单元响应于有限范围。
3、向量存储器访问指令,所述有限范围向量存储器访问指令指示源打包存储器索引,所述源打包存储器索引具有选自8位存储器索引和16位存储器索引的多个打包存储器索引,所述单元响应于所述有限范围向量存储器访问指令访问仅在存储器的有限范围中的存储器位置。2如权利要求1所述的处理器,其特征在于,所述有限范围向量存储器访问指令指示包括8位存储器索引的源打包存储器索引。3如权利要求1所述的处理器,其特征在于,所述单元响应于所述有限范围向量存储器访问指令访问在包括仅256字节的存储器的有限范围中的存储器位置。4如权利要求1所述的处理器,其特征在于,所述有限范围向量存储器访问指令指示包括至少32个存储器索引的源打包存储。
4、器索引。5如权利要求1所述的处理器,其特征在于,所述单元响应于所述有限范围向量存储器访问指令利用至少32位的存储器地址访问存储器的有限范围。6如权利要求5所述的处理器,其特征在于,所述单元响应于所述有限范围向量存储器访问指令进行符号扩展每个存储器索引;以及将缩放因子施加到每个经符号扩展的存储器索引。7如权利要求1所述的处理器,其特征在于,所述单元响应于所述有限范围向量存储器访问指令执行多数据元素加载,所述多数据元素加载加载多个存储器索引中的存储器索引指示的存储器地址处的至少一个数据元素、以及不是由多个存储器索引中的存储器索引指示的存储器地址处的至少一个数据元素。8如权利要求1所述的处理器,其特。
5、征在于,所述单元响应于所述有限范围向量存储器访问指令将来自存储器的整个有限范围加载到处理器的存储位置。9如权利要求1所述的处理器,其特征在于,所述单元响应于所述有限范围向量存储器访问指令进行执行将加载多个数据元素的多数据元素加载;在以下A和B两者中的一者时A指令不指示打包数据操作掩码;和B指令指示打包数据操作掩码但所述打包数据操作掩码的相应掩码元素未被掩蔽,将第一多个加载的数据元素存储在由所述指令指示的目的地存储位置,而不将第二加载的数据元素存储在所述目的地存储位置。10如权利要求1所述的处理器,其特征在于,所述单元响应于所述有限范围向量存储器访问指令将来自存储器的整个有限范围加载到所述处理器。
6、的存储位置,且其中所述单元响应于所述有限范围向量存储器访问指令基于存储器索引将整个有限范围的数据元素的子集选择性地移动到所述指令指示的目的地存储位置。11如权利要求1所述的处理器,其特征在于,所述有限范围向量存储器访问指令指示目的地存储位置,且其中所述单元响应于所述有限范围向量存储器访问指令将打包数据结果存储在目的地存储位置,所述打包数据结果具有多个数据元素,每个数据元素来自有限范围中由相应的存储器索引指示的存储位置。权利要求书CN104049943A2/3页312如权利要求1所述的处理器,其特征在于,所述有限范围向量存储器访问指令指示具有多个数据元素的源打包数据,且其中所述单元响应于所述有限。
7、范围向量存储器访问指令将所述源打包数据的每个数据元素写入有限范围中由相应存储器索引指示的存储器位置。13如权利要求1所述的处理器,其特征在于,所述有限范围向量存储器访问指令指示打包数据操作掩码。14一种处理器中的方法,包括接收有限范围向量存储器访问指令,所述有限范围向量存储器访问指令指示源打包存储器索引,所述源打包存储器索引具有选自8位存储器索引和16位存储器索引的多个打包存储器索引;以及响应于所述有限范围向量存储器访问指令访问仅在存储器的有限范围中的存储器位置。15如权利要求14所述的方法,其特征在于,接收包括接收指示包括8位存储器索引的源打包存储器索引的指令。16如权利要求14所述的方法,。
8、其特征在于,访问包括访问由256字节构成的有限范围中的存储器位置。17如权利要求14所述的方法,其特征在于,接收包括接收指示目的地存储位置的指令,且还包括响应于所述指令将打包数据结果存储在目的地存储位置中,所述打包数据结果具有多个数据元素,每个数据元素来自有限范围中由相应存储器索引指示的存储器位置。18如权利要求14所述的方法,其特征在于,接收包括接收指示具有多个数据元素的源打包数据的指令,且其中访问包括响应于所述指令将所述源打包数据的每个数据元素写入有限范围中由相应存储器索引指示的存储位置。19如权利要求14所述的方法,其特征在于,访问包括利用至少32位存储器地址进行访问。20如权利要求14。
9、所述的方法,其特征在于,访问包括执行多数据元素加载,包括加载多个存储器索引中的存储器索引指示的存储器地址处的至少一个数据元素、以及不是由多个存储器索引中的存储器索引指示的存储器地址处的至少一个数据元素。21如权利要求14所述的方法,其特征在于,还包括执行加载多个数据元素的多数据元素加载;在以下A和B两者中的一者时A指令不使用打包数据操作掩码;和B指令使用打包数据操作掩码但所述打包数据操作掩码的相应掩码元素未被掩蔽,将第一加载的数据元素存储在由所述指令指示的目的地存储位置中,而不将第二加载的数据元素存储在所述目的地存储位置中。22一种处理指令的系统,包括互连;与所述互连耦合的处理器;以及与所述互。
10、连耦合的动态随机访问存储器DRAM,所述DRAM存储有限范围向量存储器访问指令,所述有限范围向量存储器访问指令指示源打包存储器索引,所述源打包存储器权利要求书CN104049943A3/3页4索引具有选自8位存储器索引和16位存储器索引的多个打包存储器索引,所述有限范围向量存储器访问指令如果被处理器执行则导致处理器执行包括访问仅在存储器的有限范围中的存储器位置的操作。23如权利要求22所述的系统,其特征在于,所述有限范围向量存储器访问指令指示包括8位存储器索引的源打包存储器索引,其中所述指令如果由处理器执行则导致处理器利用至少32位的存储器地址访问有限范围。24一种包括非瞬态机器可读存储介质的。
11、制品,所述非瞬态机器可读介质存储有限范围向量存储器访问指令,所述有限范围向量存储器访问指令指示源打包存储器索引,所述源打包存储器索引具有选自8位存储器索引和16位存储器索引的多个打包存储器索引,并且所述有限范围向量存储器访问指令如果被机器执行则导致机器执行包括访问仅在存储器的有限范围中的存储器位置的操作25如权利要求24所述的制品,其特征在于,所述有限范围向量存储器访问指令指示包括8位存储器索引的源打包存储器索引,其中所述源打包存储器索引包括至少32个存储器索引。权利要求书CN104049943A1/35页5有限范围向量存储器访问指令、处理器、方法和系统背景技术技术领域0001实施例涉及处理器。
12、。具体地,实施例涉及执行存储器访问指令的处理器。0002背景信息0003处理器通常用于执行访问存储器的指令。例如,处理器可执行用于加载或读取来自存储器的数据的加载指令和/或用于向存储器存储或写入数据的存储指令。0004某些处理器用于执行向量加载指令。这些向量加载指令在本领域也被称为向量收集GATHER指令,或简单地称为收集指令在2011年6月公开的高级向量扩展编程参考中,参考文献号319433011,描述了若干向量收集VGATHER指令。示例包括VGATHERDPD、VGATHERQPD、VGATHERDPS、VGATHERQPS、VPGATHERDD、VPGATHERQD、VPGATHERD。
13、Q和VPGATHERQQ。这些向量收集指令可用于利用多个对应的存储器索引从存储器收集、读取或加载多个数据元素。附图说明0005可通过参考以下描述以及用于示出实施例的附图最佳地理解本发明。在附图中0006图1是用于执行一个或多个有限范围向量存储器访问指令的处理器的实施例的框图。0007图2是用于处理一个或多个有限范围向量存储器访问指令的指令处理装置的实施例的框图。0008图3是响应于有限范围向量存储器访问指令访问存储器的有限范围的方法的实施例的流程框图。0009图4是示出有限范围向量收集操作的实施例的框图。0010图5是示出被掩蔽的有限范围向量收集操作的实施例的框图。0011图6是示出有限范围向。
14、量分散操作的实施例的框图。0012图7是示出被掩蔽的有限范围向量分散操作的实施例的框图。0013图8是示出有限范围向量收集操作的示例实现实施例的框图。0014图9是一组合适的打包数据寄存器的示例实施例的框图。0015图10是一组合适的打包数据操作掩码寄存器的示例实施例的框图。0016图11是64位打包数据操作掩码寄存器的示例实施例的图,其中掩码位的数目取决于打包数据宽度和打包数据元素宽度。0017图12A示出示例性AVX指令格式,包括VEX前缀、实操作码字段、MODR/M字节、SIB字节、位移字段以及IMM8。0018图12B示出来自图12A的哪些字段构成完整操作码字段和基础BASE操作字段。。
15、0019图12C示出来自图12A的哪些字段构成寄存器索引字段。0020图13A是示出根据本发明的实施例的通用向量友好指令格式及其A类指令模板的说明书CN104049943A2/35页6方框图。0021图13B是示出根据本发明的实施例的通用向量友好指令格式及其B类指令模板的方框图。0022图14AD是示出根据本发明的实施例的示例性专用向量友好指令格式的框图。0023图15是根据本发明的一个实施例的寄存器架构的框图。0024图16A是示出根据本发明的实施例的示例性有序流水线以及示例性寄存器重命名、无序发布/执行流水线的框图。0025图16B是示出根据本发明的实施例的要包括在处理器中的有序架构核示例。
16、性实施例以及示例性寄存器重命名、无序发布/执行架构核的框图。0026图17A是根据本发明的实施例的连接到管芯上ONDIE互联网络且具有第二级L2高速缓存的本地子集的单一处理器核的框图。0027图17B是根据本发明的实施例的图17A中的处理器内核的一部分的展开图。0028图18是根据本发明的实施例的可具有一个以上内核、可具有集成存储器控制器、并且可具有集成图形的处理器的方框图。0029图19示出根据本发明的实施例的系统的方框图。0030图20示出根据本发明的实施例的第一更具体的示例性系统的方框图。0031图21示出根据本发明的实施例的第二更具体的示例性系统的方框图。0032图22示出根据本发明的。
17、实施例的片上系统SOC的框图。0033图23是对比根据本发明实施例的使用软件指令转换器将源指令集中的二进制指令转换为目标指令集中的二进制指令的框图。0034实施例的详细描述0035本文中公开的是有限范围向量存储器访问指令,用于执行该指令的处理器,在处理或执行该指令时处理器执行的方法,以及合并一个或多个处理器以执行该指令的系统。在以下描述中,阐述多个特定细节例如,专用指令、指令格式、打包数据格式、处理器配置、微架构细节、操作顺序等。然而,在没有这些具体细节的情况下,可实践实施例。在其他实例中,在细节方面未示出公知电路、结构和技术,以避免混淆对该描述的理解。0036图1是用于执行一个或多个有限范围。
18、向量存储器访问指令103的处理器100的实施例的框图。在一些实施例中,处理器可以是通用处理器例如,用在台式机、膝上型计算机、平板计算机、手持式计算机、蜂窝电话以及类似计算设备中使用的类型。替换地,处理器可以是专用处理器。合适的专用处理器的例子包括但不限于,图形处理器、网络处理器、通信处理器、加密处理器、协处理器和数字信号处理器DSP,这里仅给出几个示例。处理器可以是各种复杂指令集计算CISC处理器、各种精简指令集计算RISC处理器、各种超长指令字VLIW处理器、上述处理器的各种混合、或者完全其他类型的处理器中的任一个。0037处理器具有指令集架构ISA101。ISA表示与编程相关的处理器的架构。
19、的一部分,并且包括处理器的本机指令、架构寄存器、数据类型、寻址模式、存储器架构、中断和异常处理以及外部输入和输出I/O等。ISA与微架构不同,微架构表示用于实现ISA的特定设计技术。0038ISA包括架构可视寄存器例如,架构寄存器文件106。架构寄存器通常表示管芯上的处理器存储位置。架构寄存器还可在本文中被简称为寄存器。除非另行指出或显说明书CN104049943A3/35页7而易见,短语架构寄存器、寄存器文件和寄存器在本文中被用于指代这样的寄存器该寄存器对于被宏指令或汇编语言指令指定来标识操作数的软件和/或编程器和/或寄存器而言是可见。这些寄存器与给定微架构例如,由指令使用的临时寄存器、重排。
20、序缓冲器、引退RETIREMENT寄存器等中的其他非架构或非架构上可视寄存器形成对比。所例示的寄存器包括打包数据寄存器107。每个打包数据寄存器可操作用于存储打包数据、向量数据或者SIMD数据。在一些实施例中,寄存器还可任选地包括打包数据操作掩码寄存器108,然而这不是必须的。0039ISA包括处理器支持的指令集101。与微指令或微操作例如,由解码器解码宏指令得到的那些不同,指令集的指令表示汇编语言指令、机器级指令或宏指令例如,提供给处理器以供执行。指令集包括一个或多个有限范围向量存储器访问指令103,这些指令各自可操作用于导致处理器访问外部存储器110的有限范围120。在一些实施例中,有限的。
21、范围120可仅标识外部存储器110的一部分或子集例如连续可索引部分或子集。在一些实施例中,指令103可任选地包括一个或多个有限范围向量收集指令104,该指令可用于导致处理器从外部存储器110的有限范围120中的潜在的非连续位置读取、加载或收集数据元素。在一些实施例中,指令103可任选地包括一个或多个有限范围向量分散指令105,该指令可用于导致处理器向外部存储器110的有限范围120中的潜在的非连续位置写入、存储或分散数据元素。在各实施例中,可具有从单个有限范围向量存储器访问指令至多个或很多这种指令中的任意个。0040处理器还包括执行逻辑109。执行逻辑用于执行或处理有限范围向量存储器访问指令1。
22、03,并且响应于该指令访问有限范围例如,从该有限范围收集元素或向有限范围分散元素。适当的执行逻辑的示例包括但不限于执行单元、功能单元、存储器访问单元、存储器执行单元、收集单元、分散单元等。0041图2是指令处理装置200的实施例的框图。在一些实施例中,指令处理装置200可以是图1的处理器或类似装置,或者可被包括在该处理器或类似装置中。替换地,指令处理装置200可以是或可被包括在不同的处理器中。此外,图1的处理器可包括与图2不同的指令处理装置。0042指令处理器装置200可接收有限范围向量存储器访问指令203。例如,可从指令获取单元、指令队列、存储器等接收该指令。在一些实施例中,指令可表示有限范。
23、围向量收集指令或有限范围向量分散指令。0043该装置包括一组打包数据寄存器207。在一些实施例中,该装置可任选地包括一组打包数据操作掩码寄存器208,然而这不是必须的。寄存器可表示架构处理器上例如管芯上的处理器存储位置。寄存器可使用公知技术在不同的微架构中以不同的方式实现,并且不限于任何特定类型的电路。合适类型的寄存器的示例包括但不限于,专用物理寄存器、使用寄存器重命名的动态分配的物理寄存器、以及其组合。0044有限范围向量存储器访问指令可显式地指定例如,通过一个或多个位或字段或以其它方式指示例如,隐含地指示具有多个打包存储器索引的源打包存储器索引213。在一些实施例中,打包存储器索引可以是经。
24、打包的8位字节存储器索引或经打包的16位字存储器索引。通常,向量收集指令通常实现显著较大的32位或64位存储器索引,因为预期它们能够从存储器的任意位置而不是仅从存储器210内的有限范围220收集。在向量说明书CN104049943A4/35页8收集指令/操作或向量存储器加载指令/操作的情况下,指令可指示目的地存储位置215,在该目的地存储位置中存储包括从存储器210的有限范围220加载或收集的数据元素的结果打包数据。在向量分散指令/操作或向量存储器存储指令/操作的情况下,指令可指示包括将被写入或分散到存储器210的有限范围220的多个数据元素的源打包数据214。如所示,在一些实施例中,源打包存。
25、储器索引213、源打包数据214和目的地存储位置215可以是一组打包数据寄存器207的打包数据寄存器。替换地,其它存储位置可任选地用于这些位置中的一个或多个。0045在一些实施例中,有限范围向量存储器访问指令203可任选地指定或以其它方式指示源打包数据操作掩码216,尽管这不是必须的。以下将进一步讨论打包数据操作掩码及其用于预测和条件控制。其它实施例可任选地再没有掩蔽或预测的情况下执行。0046再次参考图2,所示的指令处理器装置包括解码逻辑211例如,解码单元或解码器。指令解码逻辑可接收和解码较高级机器代码或宏指令例如,指令203,并且输出一个或多个较低级的微操作、微代码入口点、微指令或者反映。
26、和/或源自原始较高级指令的其他较低级指令或控制信号。一个或多个较低级指令或控制信号可通过一个或多个较低级例如,电路级或硬件级操作来实现较高级指令的操作。可使用各种不同的机构来实现解码逻辑,这些机构包括但不限于,微代码只读存储器ROM、查找表、硬件实现、可编程逻辑阵列PLA、以及在本领域中已知的其他机构。在其它实施例中,可使用指令仿真器、翻译器、变形器MORPHER、解释器或者其他指令转换逻辑例如,实现为软件、硬件、固件或组合来取代具有解码逻辑211。在又一个实施例中,可使用指令转换逻辑和解码逻辑的组合。指令转换逻辑中的一些或全部可潜在地位于其余指令处理装置的管芯外,诸如在单独的管芯上或在存储器。
27、中。0047再次参考图2,执行逻辑209与解码逻辑211耦合。指令逻辑还与打包数据寄存器207耦合,且在一些实施例中,任选地与打包数据操作掩码寄存器208耦合。适当的执行逻辑的示例包括但不限于执行单元、功能单元、存储器访问单元、存储器执行单元、收集单元、分散单元等。执行逻辑和/或装置可包括用于执行和/或处理指令203并响应于该指令访问存储器的有限范围的特定或具体逻辑例如,电路、晶体管或潜在地与软件和/或固件结合的其它硬件。在一些实施例中,执行单元包括至少一些集成电路、晶体管或其它半导体管芯的电路或硬件。0048执行逻辑可响应于有限范围向量存储器访问指令203和/或作为有限范围向量存储器访问指令。
28、203的结果例如,响应于从该指令203解码的或以其它方式导出的一个或多个控制信号访问存储器210的有限范围220。例如,在有限范围向量收集指令的实施例中,执行单元可使用源打包存储器索引213以收集或加载来自存储器210的有限范围220中潜在的非连续位置的数据元素,并且将所收集或加载的数据元素存储在目的地存储位置215中。在有限范围向量收集指令的实施例中,执行单元可使用源打包存储器索引213来将来自源打包数据214的数据元素分散或写入存储器210的有限范围220中的潜在的非连续位置中。0049在一些实施例中,有限范围向量存储器访问指令203可用于访问仅存储器210的有限范围220。在一些实施例中。
29、,指令指示仅8位字节或16位字存储器索引。常规的向量收集指令通常允许从存储器的任何位置收集数据元素。结果,通常使用32位或64位存储说明书CN104049943A5/35页9器索引。这些32位或64位存储器索引具有足够多的位来允许从基本上存储器中的任意位置或至少从相对大量的存储器例如能够由32位或64位寻址潜在地收集数据元素。0050此外,使用32位或64位存储器索引的一个潜在的缺点是它们相对较大的尺寸可能倾向于限制可被存储在单个打包数据寄存器被指示为向量收集指令的源操作数中的这种存储器索引的数量。例如,仅四个64位存储器索引或仅八个32位存储器索引可适配FIT在256位寄存器内。此外,在一些。
30、情况下,可能期望收集相对较小的数据元素,诸如8位字节数据元素或16位字元素。然而,相对较大尺寸的存储器索引倾向于限制可被收集的这种8位字节或16位字元素的数量。例如,通常仅收集与打包数据寄存器中适配的32位或64位存储器索引的数量相同数量的数据元素。结果,部分地由于32位或64位存储器索引的大尺寸,通常不可能收集期望那样多的这些元素。0051在一些实施例中,代替这种相对较大的32位或64位存储器索引,有限范围向量存储器访问指令/操作的实施例可使用相对较小的存储器索引,诸如8位字节或64位字存储器索引。有利地,这可有助于增加可被存储在单个打包数据寄存器中作为源打包存储器索引的这种存储器索引的数量。
31、。例如,三十二个8位存储器索引或十六个16位存储器索引可在适配256位寄存器中,而不是仅四个64位存储器索引或八个32位存储器索引。又例如,六十四个8位存储器索引或三十二个16位存储器索引可适配在512位寄存器内。相应地,这可有助于增加单个有限范围向量收集或分散指令/操作的实施例可收集或分散的数据元素的数量。0052在一些实施例中,这些相对较小的8位字节或16位字存储器索引可能不足以从存储器的任何位置访问数据元素。相反,这些较小的8位或16位存储器索引可访问较大整个存储器例如需要通过32位或64位存储器索引寻址的存储器的仅有限范围例如能够被8位或16位存储器索引而索引的连续子集中的数据元素。在。
32、一些实施例中,处理器支持的ISA可包括一个或多个其它存储器访问指令例如向量收集指令,其指示使用32位或64位存储器索引访问来自整个存储器中的任何位置的数据元素。例如,在一些实施例中,对应于8位存储器索引的有限范围可由能够通过8位字节存储器索引唯一地索引的不超过256个数据元素或256个存储位置。作为另一个示例,在一些实施例中,有限范围可由能够被16位字节存储器索引唯一地索引的不超过65536个数据元素或65536个存储位置构成。在其它实施例中,能够被索引的这些数据元素或存储位置的仅一部分或子集可被用作有限范围例如,不是使用16位索引的全范围,而是仅使用该范围的一部分。0053尽管有限范围向量存。
33、储器访问指令/操作不能存储器中的任何位置的数据元素,但存在为什么访问很大的存储器的仅有限范围内的数据元素有利的各种原因。例如,可能是这种情况当表、阵列、数据结构或数据的其它布置或集合可被存储在有限范围内中。通常算法可能需要同时访问表、阵列、数据结构或数据的其它布置或集合内的多个或很多数据元素。例如,算法可转置矩阵或以其它方式重新排列或重写构造数据,在这种情况下可能需要访问很多数据元素。作为另一个示例,算法可访问按恒定跨距STRIDE隔开例如,每个第三、第三、第四或第N数据元素的数据元素。更一般地,有很多实例,其中算法可用于访问被存储在可由8位字节或16位字存储器索引来索引的存储器的有限范围内的。
34、数据布置或集合内的多个或很多数据元素。0054有利地,当在这些实例中使用时,部分地由于较小的8位或16位存储器索引,本文说明书CN104049943A6/35页10公开的有限范围向量存储器访问指令/操作的实施例能够在单个指令/操作内访问例如,收集或分散相对更多的数据元素。不需要可能倾向于限制所访问的这种数据元素的数量的较大的索引,因为仅从有限范围内而不是存储器的任意位置收集数据元素。此外,如以下进一步讨论的,在一些实施例中,有限范围向量存储器访问指令/操作可更高效地实现和/或可比将顺序访问用于每个被访问的数据元素的的常规向量收集指令/操作更快例如,因为可执行较少的存储器访问,每个都涉及多个数据。
35、元素。0055为了避免混淆描述,已经描述了单指令处理装置200,但指令处理装置可任选地包括一个或多个其它常规组件。这种常规组件的实例包括但不限于指令提取单元、指令调度单元、分支预测单元、指令和数据高速缓存、指令和数据的翻译后备缓冲器TRANSLATIONLOOKASIDEBUFFERTLB、预获取缓冲器、微指令队列、微指令定序器、总线接口单元、引退/提交单元、寄存器重命名单元以及处理器中常规采用的其他组件。此外,实施例可具有多个核、逻辑处理器或执行引擎,其具有相同或不同的指令集和/或ISA。实际上,处理器中的这些组件有大量不同的组合和配置,并且实施例不限于任何特定的这种组合或配置。0056图3。
36、是处理指令的实施例的方法330的实施例的流程框图。在各种实施例中,该方法由通用处理器、专用处理器、或者其他指令处理装置或数字逻辑设备执行。在一些实施例中,图3的操作和/或方法可由图1的处理器和/或图2的装置执行,和/或在图1的处理器和/或图2的装置内执行。本文中所描述的用于图12的处理器和装置的组件、特征、以及具体的任选细节还任选地应用于图3的操作和/或方法。替换地,图3的操作和/或方法可由类似的或完全不同的处理器或装置执行,和/或在类似的或完全不同的处理器或装置内执行。此外,图1的处理器和/或图2的装置可执行与图3相同、相似或者完全不同的操作和/或方法。0057方法包括在框331接收有限范围。
37、向量存储器访问指令。在各个方面,该指令可在处理器、指令处理装置或者其一部分例如,指令提取单元、解码器、指令转换器等处接收。在各个方面,该指令可从管芯外的源例如,从DRAM存储器、盘、或互连或者从管芯上的源例如,从指令高速缓存接收。有限范围向量存储器访问指令可指示具有多个打包存储器索引的源打包存储器索引。在一些实施例中,存储器索引可以是8位存储器索引或16位存储器索引之一。在一些实施例中,存储器索引可以是8位存储器索引。在一些实施例中,源打包存储器索引可包括至少32个存储器索引。0058在框332,可响应于有限范围存储器访问指令,访问仅在有限的存储器范围中的存储器位置。在一些实施例中,利用一个或。
38、多个32位或64位的存储器地址每个访问有限范围。在一些实施例中,有限范围可包括仅256字节。在一些实施例中,如以下进一步解释的,通过多个数据元素加载进行访问,这些数据元素加载可加载多个数据元素中的每一个,包括需要和不需要的数据元素。在一些实施中,这种多元素加载可有助于提高速度和效率。在一些实施例中,可将整个有限范围从存储器加载到存储器的存储位置例如,管芯上的寄存器。0059所示方法涉及架构可视操作例如,从软件角度可视的操作。在其他实施例中,该方法可任选地包括一个或多个微架构操作。作为示例,可获取、解码、无序地调度该指令,可访问源操作数,可启用执行逻辑以执行微架构操作从而实现该指令的操作,执行逻。
39、辑可执行微架构操作,可将结果重新输入回到程序次序等。说明书CN104049943A107/35页110060图4是示出可响应于有限范围收集指令的实施例而执行的有限范围收集操作403的一个实施例的框图。有限范围收集指令可指定或以其它方式指示具有多个打包存储器索引的源打包存储器索引413。如图所示,在一些实施例中,存储器索引可以是8位字节存储器索引,且源打包存储器索引可以是512位宽,且可包括六十四个8位字节存储器索引。或者,在其它实施例中,可任选地使用16位字存储器索引或其它小于32位的存储器索引。此外,在其它实施例中,可任选地使用除512位以外的其它打包数据宽度,诸如64位、128位、256位。
40、、1024位打包数据宽度。作为实例,64位、128位和256位宽度可分别能够存储八个、十六个和三十二个8位字节存储器索引,或16位字存储器索引各自的一半。在所示的示例中,存储器索引具有从最低有效位置左边至最高有效位置右边右边的值134,231,20,135,5,21,30,186。这些值仅仅是示例。0061可响应于有限范围收集指令的实施例和/或作为其结果,执行有限范围向量收集操作的实施例。有限范围向量收集操作可从存储器410的有限范围420加载或收集数据元素。如前所讨论的,有限范围可仅表示整个一般的很大存储器例如可由其它指令利用32位或64位存储器索引而索引的小子集例如能够由8位或16位存储器。
41、索引而索引的连续子集。有限范围的限度或尺寸可基于存储器索引的位的宽度。例如,每个8位字节存储器索引可用于唯一地索引或寻址256个不同的位置或数据元素中的任一个,且在一些实施例中,有限范围可包括仅这些256个位置或数据元素例如,256字节或字。所收集的数据元素可通过源打包存储器索引413的相应的存储器索引来指示。每个存储器索引可指向相对应的存储器位置和/或其中存储的数据元素。例如,在所示的实施例中,存储器索引134指向存储数据元素B1的有限范围中的存储器位置,且存储器索引231指向存储数据元素B2的有限范围中的存储器位置,等等。0062可响应于有限范围向量收集指令/操作和/或作为其结果,将打包数。
42、据结果415存储在目的地存储位置中。在一个方面中,指令可指定或以其它方式指示目的地存储位置。在一些实施例中,打包数据结果可包括仅从有限范围420内的潜在的不连续区域收集的数据元素,而不是存储器410的其它部分中。如所示,在一些实施例中,打包数据结果可以是512位宽,且可包括六十四个8位字节数据元素。或者,16位或32位双字数据元素可被收集且可被存储在较宽或较窄的结果打包数据中。在所示的示例中,目的地中的打包数据结果存储从最低有效位置左边至最高有效位置右边右边的数据元素B1,B2,B3,B4,B5,B6,B7,B64。这仅仅是一个示例。0063图5是示出可响应于经掩蔽有限范围收集指令的实施例而执。
43、行的经掩蔽有限范围收集操作503的一个实施例的框图。图5的经掩蔽操作与图4的未经掩蔽操作有一些类似性。为了避免混淆描述,主要描述图5的经掩蔽操作的不同和/或附加特性,而不重复相对于图4的未经掩蔽操作的所有类似或通用的特性。然而,将意识到除非明确指出,否则这些先前描述的未经掩蔽操作的特性也任选地适用于图5。0064经掩蔽有限范围收集指令可指定或以其它方式指示具有多个打包存储器索引的源打包存储器索引513。如图所示,在一些实施例中,存储器索引可以是8位字节存储器索引,且源打包存储器索引可以是512位宽,且可包括六十四个8位字节存储器索引。或者,在其它实施例中,可任选地使用16位字存储器索引或其它小。
44、于32位的存储器索引。此外,在其它实施例中,可任选地使用除512位以外的其它打包数据宽度,诸如64位、128位、256说明书CN104049943A118/35页12位、1024位打包数据宽度。0065在一些实施例中,经掩蔽有限范围收集指令可任选地指定或以其它方式指示源打包数据操作掩码516。打包数据操作掩码还可在本文中被简单地称为操作掩码、断言掩码或掩码。掩码可表示用于掩蔽、断言或条件控制是否执行操作例如,收集操作的断言操作数或条件控制操作数。在一些实施例中,掩蔽或预测可按数据元素粒度,使得可单独地或与其它无关地断言或条件控制不同数据元素上的操作。操作掩码包括多个掩码元素、断言元素或条件控制。
45、元素。在一个方面,可以按与相对应源数据元素和/或结果数据元素的一对一对应的形式包括元素。如所示,在一些实施例中,每个掩码元素可以是单个掩码位。每个掩码位的值可控制是否执行操作例如,收集操作。根据一个可能的协定,每个掩码位可具有用于允许执行收集操作和将结果数据元素存储在目的地存储位置中的第一值例如被设定为二进制1或用于不允许执行收集操作和/或不允许将收集的数据元素存储在目的地存储位置中的第二值例如,被清除为二进制0。0066如所示,在源打包存储器索引513是512位宽且具有六十四个8位存储器索引的情况下,源打包数据操作掩码516可以是64位宽,且每个位表示预测或掩码位。或者,源打包数据操作掩码可。
46、具有其它宽度,例如位宽度等于源打包存储器索引513中的存储器索引的数量例如,八、十六、三十二等。在所示的示例中,从最低有效在左边至最高有效右边的掩码位为1,1,0,1,1,1,0,1。这仅仅是一个示例。根据所示的协定,掩码位值二进制0表示掩蔽掉元素,而掩码位值二进制1表示未经掩蔽元素。对于每个未经掩蔽的元素,将执行相关联的收集操作,且将所收集的数据元素存储在打包数据结果515的相应数据元素中。每个掩码位对应于存储器索引和相应位置中的结果数据元素。例如,在图示中,相应的位置彼此垂直对准。0067可响应于经掩蔽有限范围收集指令的实施例和/或作为其结果,执行经掩蔽有限范围向量收集操作503的实施例。。
47、操作可从受到源打包数据操作掩码516的条件控制的存储器510的有限范围520加载或收集数据元素。可响应于经掩蔽有限范围向量收集指令/操作和/或作为其结果,将打包数据结果515存储在目的地存储位置中。在一些实施例中,如果打包数据操作掩码中的相应掩码位被设定为一,则可仅收集数据。在对应的掩码位被掩蔽掉例如在清除为二进制0的所示示例中的结果打包数据的位置中示出星号。如所示,在一些实施例中,打包数据结果可以是512位宽,且可包括六十四个8位字节数据元素。或者,16位或32位双字数据元素可被收集且可被存储在较宽或较窄的结果打包数据中。在所示的示例中,目的地中的打包数据结果存储从最低有效位置左边至最高有效。
48、位置右边右的数据元素B1,B2,B4,B5,B6,B64。0068在一些实施例中,可执行合并掩蔽。在合并掩蔽中,当给定的目的地数据元素被掩蔽时,目的地存储位置中的最初的或预先存在的数据元素值可保留不变即,不被操作的结果更新。在其它实施例中,可执行归零掩蔽。在归零掩蔽中,当给定的目的地数据元素被掩蔽时,相应的给定目的地数据元素可被归零,或可将零值存储在相应的给定目的地数据元素中。或者,可将其它预定的值存储在掩蔽掉目的地数据元素中。因此,在各实施例中,由星号指示的数据元素位置可具有归零值或在收集操作之前目的地存储位置中最初的数据元素值。0069图6是示出可响应于有限范围分散指令的实施例而执行的有限。
49、范围分散操作605说明书CN104049943A129/35页13的一个实施例的框图。有限范围分散指令可指定或以其它方式指示具有多个打包存储器索引的源打包存储器索引613。如图所示,在一些实施例中,存储器索引可以是8位字节存储器索引,且源打包存储器索引可以是512位宽,且可包括六十四个8位字节存储器索引。或者,在其它实施例中,可任选地使用16位字存储器索引或其它小于32位的存储器索引。此外,在其它实施例中,可任选地使用除512位以外的其它打包数据宽度,诸如64位、128位、256位、1024位打包数据宽度。0070有限范围分散指令还可指定或以其它方式指示具有要分散的多个打包数据元素的源打包数据614。如所示,在一些实施例中,打包数据元素可以是8位字节数据元素,且源打包数据614可以是512位宽,且可包括六十四个这样的8位字节数据元素。或者,在其它实施例中,可任选地使用16位字数据元素或32位双字数据元素。此外,在其它实施例中,除512位以外,还可任选地使用其它打包数据宽度,诸如64位、128位、256位、1024位打包数据宽度。在一些实施例中,存储器索引MA的宽度可与数据元素的宽度相同,但这不是必须的例如,可将比存储器索引宽两倍的寄存器用于数据元素。0071可响应于有限范围分散指令的实施例和/或作为其结果,执行有限范围向量分散操作的实施例。有限范围向量分散操作可向存储器610的。