《用于合并操作掩码的未经掩码元素的处理器、方法、系统和指令.pdf》由会员分享,可在线阅读,更多相关《用于合并操作掩码的未经掩码元素的处理器、方法、系统和指令.pdf(47页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN104049953A43申请公布日20140917CN104049953A21申请号201410094949222申请日2014031413/842,73020130315USG06F9/3820060171申请人英特尔公司地址美国加利福尼亚州72发明人A杰哈74专利代理机构上海专利商标事务所有限公司31100代理人高见54发明名称用于合并操作掩码的未经掩码元素的处理器、方法、系统和指令57摘要用于合并操作掩码的未经掩码元素的处理器、方法、系统和指令。指令处理装置的方面包括多个操作掩码寄存器。装置还包括用于接收操作掩码合并指令的解码单元。操作掩码合并指令用于指示多个操作掩码寄。
2、存器的源操作掩码寄存器,以及目的地存储位置。源操作掩码寄存器包括源操作掩码,该源操作掩码包括将被布置在多个未经掩码元素内的多个经掩码元素。与所述解码单元耦合的执行单元。响应于操作掩码合并指令,执行单元将经合并操作掩码存储在目的地存储位置中。经合并操作掩码包括合并在一起的来自源操作掩码的未经掩码元素。还公开了其它装置、方法、系统和指令。30优先权数据51INTCL权利要求书3页说明书25页附图18页19中华人民共和国国家知识产权局12发明专利申请权利要求书3页说明书25页附图18页10申请公布号CN104049953ACN104049953A1/3页21一种指令处理装置,包括多个操作掩码寄存器;。
3、用于接收操作掩码合并指令的解码单元,所述操作掩码合并指令用于指示所述多个操作掩码寄存器中的源操作掩码寄存器以及目的地存储位置,所述源操作掩码寄存器包括源操作掩码,所述源操作掩码包括将被布置在多个未经掩码元素内的多个经掩码元素;以及与所述解码单元耦合的执行单元,响应于所述操作掩码合并指令,所述执行单元将经合并操作掩码存储在所述目的地存储位置中,所述经合并操作掩码包括合并在一起的来自所述源操作掩码的所述未经掩码元素。2如权利要求1所述的装置,其特征在于,响应于所述操作掩码合并指令,所述执行单元将所述未经掩码元素合并在一起,以使得所述经掩码元素不被布置在所述经合并的未经掩码元素内。3如权利要求1所述。
4、的装置,其特征在于,响应于所述操作掩码合并指令,所述执行单元将来自所述源操作掩码的所述未经掩码元素一起合并在所述经合并的操作掩码的最低有效部分中。4如权利要求1所述的装置,其特征在于,响应于所述操作掩码合并指令,所述执行单元将来自所述源操作掩码的所述未经掩码元素一起合并在所述经合并的操作掩码的最高有效部分中。5如权利要求1所述的装置,其特征在于,所述解码单元接收所述操作掩码合并指令,所述操作掩码合并指令包括一个或多个比特,所述一个或个比特具有第一值,用于指示来自所述源操作掩码的所述未经掩码元素将被一起合并到经合并操作掩码的最低有效部分中;以及第二值,用于指示来自所述源操作掩码的所述未经掩码元素。
5、将被一起合并到经合并操作掩码的最高有效部分中。6如权利要求1所述的装置,其特征在于,所述源操作掩码寄存器具有所述源操作掩码,其中所述经掩码和所述未经掩码元素中的每一个是不同的单个比特。7如权利要求6所述的装置,其特征在于,每个经掩码元素具有二进制值零,而每个未经掩码元素具有二进制值一。8如权利要求1所述的装置,其特征在于,所述多个操作掩码寄存器包括一组八个操作掩码寄存器,其中所述八个操作掩码寄存器中的每一个存储具有达至少64比特的操作掩码,并且其中所述解码单元接收所述操作掩码合并指令,所述操作掩码合并指令具有用于将所述源操作掩码寄存器指定为所述八个操作掩码寄存器中的一个的3比特字段。9如权利要。
6、求1所述的装置,其特征在于,所述解码单元接收所述操作掩码合并指令,所述操作掩码合并指令显式地指定所述源操作掩码寄存器,以及显式地指定目的地操作掩码寄存器作为目的地存储位置。10如权利要求1所述的装置,其特征在于,所述解码单元接收所述操作掩码合并指令,所述操作掩码合并指令具有操作码,所述操作码指示所述经合并操作掩码将被存储,而不用管所述源操作掩码中所述经掩码和未经掩码元素的任何特定布置。11如权利要求1所述的装置,其特征在于,所述操作掩码寄存器存储将被用来断言打包数据上的操作的操作掩码。权利要求书CN104049953A2/3页312一种处理器内的方法,包括接收操作掩码合并指令,所述操作掩码合并。
7、指令指示源操作掩码和目的地存储位置,所述源操作掩码包括布置在多个未掩码元素内的多个经掩码元素;以及响应于所述操作掩码合并指令将经合并操作掩码存储在所述目的地存储位置中,所述经合并操作掩码包括合并在一起的来自所述源操作掩码的所述未经掩码元素。13如权利要求12所述的方法,其特征在于,来自所述源操作掩码的未经掩码元素被一起合并到所述经合并操作掩码的最低有效部分中。14如权利要求12所述的方法,其特征在于,来自所述源操作掩码的未经掩码元素被一起合并到所述经合并操作掩码的最高有效部分中。15如权利要求1所述的方法,其特征在于,所述操作掩码合并指令包括一个或多个比特,所述一个或多个比特具有第一值,用于指。
8、示来自所述源操作掩码的所述未经掩码元素将被一起合并到经合并操作掩码的最低有效部分中;以及第二值,用于指示来自所述源操作掩码的所述未经掩码元素将被一起合并到经合并操作掩码的最高有效部分中。16如权利要求12所述的方法,其特征在于,接收包括接收指示所述源操作掩码的指令,其中所述经掩码和未经掩码元素中的每一个是不同的单个比特,并且其中每个经掩码元素具有二进制零且每个未经掩码元素具有二进制值一。17如权利要求12所述的方法,其特征在于,接收包括接收具有操作码的所述操作掩码合并指令,所述操作码指示所述经合并操作掩码将被存储,而不用管所述源操作掩码中的所述经掩码和未经掩码元素的任何特定布置。18如权利要求。
9、12所述的方法,其特征在于,所述经掩码和未经掩码元素中的每一个对应于不同打包数据元素且被用来断言相应打包数据元素上的操作。19如权利要求12所述的方法,其特征在于,还包括使用所述经合并操作掩码来向量化代码的编译器。20一种处理指令的系统,包括互连;与所述互连耦合的处理器;以及与所述互连耦合的动态随机存取存储器DRAM,所述DRAM存储操作掩码合并指令,所述操作掩码合并指令指示源操作掩码和目的地存储位置,所述源操作掩码包括多个经掩码元素,所述多个经掩码元素将被布置在多个未经掩码元素内,所述操作掩码合并指令若由所述处理器执行则可操作用于导致所述处理器执行包括以下的操作将经合并操作掩码存储在目的地存。
10、储位置中,所述经合并操作掩码包括合并在一起的来自所述源操作掩码的所述未经掩码元素。21如权利要求20所述的系统,其特征在于,所述源操作掩码被用来断言打包数据上的操作。22如权利要求20所述的系统,其特征在于,所述操作掩码合并指令具有操作码,所述操作码指示所述经合并操作掩码将针对所述源操作掩码的任何值而被存储。23一种制品,包括权利要求书CN104049953A3/3页4存储操作掩码合并指令的非瞬态机器可读存储介质,所述操作掩码合并指令用于指示源操作掩码和目的地,所述源操作掩码包括布置在多个未掩码元素内的多个经掩码元素,以及所述操作掩码合并指令若由机器执行则可操作用于导致所述机器执行包括以下的操。
11、作响应于所述操作掩码合并指令将经合并操作掩码存储在所述目的地中,所述经合并操作掩码包括合并在一起的来自所述源操作掩码的所述未经掩码元素,且没有经掩码元素被布置在它们之间。24如权利要求23所述的制品,其特征在于,接收包括接收具有操作码的所述操作掩码合并指令,所述操作码指示所述经合并操作掩码将针对所述源操作掩码中的所述经掩码和未经掩码元素的许多不同布置而被存储。权利要求书CN104049953A1/25页5用于合并操作掩码的未经掩码元素的处理器、方法、系统和指令技术领域0001本文中描述的实施例一般涉及处理器。具体地,本文中描述的实施例一般涉及用于响应于指令操纵操作掩码的处理器。背景技术0002。
12、许多处理器具有单指令、多数据SIMD架构。在SIMD架构中,与仅在一个数据元素或一对数据元素上操作标量指令不同,打包数据指令、向量指令、或SIMD指令可在多个数据元素、或多对数据元素上同时和/或并行地操作。例如,可将多个数据元素打包在一个寄存器或存储器位置内作为打包数据或向量数据。在打包数据中,寄存器或其他存储器位置的比特可被逻辑地划分成多个通常固定大小的数据元素的序列。数据元素中的每一个可表示个体数据片,该个体数据片连同通常具有相同大小的其他数据元素一起被存储。例如,256比特打包数据寄存器可具有四个64比特数据元素,八个32比特数据元素,十六个16比特数据元素,或三十二个8比特数据元素。打。
13、包数据元素中的每一个可表示单独的个体数据片例如,像素的颜色、浮点值等,可与其他数据元素分开或独立于其他数据元素在该单独的个体数据片上进行操作。处理器可具并行执行硬件,该并行执行硬件有对打包或SIMD指令作出响应以同时或并行地执行多个操作。此类SIMD架构通常有助于显著改进处理速度。附图说明0003通过参考用来说明实施例的以下描述和附图,可最好地理解本发明。在附图中0004图1是用于处理操作掩码合并指令的一个或多个实施例的处理器的示例实施例的框图。0005图2A是融合经掩码打包数据操作的示例实施例的框图。0006图2B是对经掩码打包数据操作填零的示例实施例的框图。0007图3是用于执行操作掩码合。
14、并指令的一个或多个实施例的指令处理装置的示例实施例的框图。0008图4A是操作掩码合并操作的第一示例实施例的框图,该操作可响应于操作掩码合并指令的第一示例实施例和/或作为其结果而被执行。0009图4B是操作掩码合并操作的第二示例实施例的框图,该操作可响应于操作掩码合并指令的第二示例实施例和/或作为其结果而被执行。0010图5是处理操作掩码合并指令的实施例的方法的实施例的流程框图。0011图6是操作掩码合并指令的合适格式的实施例的框图。0012图7是合适打包数据寄存器的示例实施例的框图。0013图8是例示打包数据操作掩码元素的数目依赖于打包数据宽度和打包数据元素宽度的表格。说明书CN104049。
15、953A2/25页60014图9是一组合适的打包数据操作掩码寄存器的示例实施例的框图。0015图10是打包数据操作掩码寄存器的示例实施例的框图,其中操作掩码元素的数目依赖于打包数据宽度和打包数据元素宽度。0016图11A示出示例性AVX指令格式,包括VEX前缀、实际操作码字段、MODR/M字节、SIB字节、置换字段、以及IMM8。0017图11B示出来自图11A的哪些字段构成完整操作码字段和基础操作字段。0018图11C示出来自图11A的哪些字段构成寄存器索引字段。0019图12是根据本发明的一个实施例的寄存器架构的框图。0020图13A是示出根据本发明的实施例的示例性有序流水线以及示例性寄存。
16、器重命名、无序发布/执行流水线的框图。0021图13B是示出根据本发明的实施例的要包括在处理器中的有序架构核示例性实施例以及示例性寄存器重命名、无序发布/执行架构核的框图。0022图14A是根据本发明的实施例的连接到片上ONDIE互联网络且具有二级L2高速缓存的本地子集的单一处理器核的框图。0023图14B是根据本发明的实施例的图14A中的处理器核的一部分的展开图。0024图15是根据本发明的实施例的可具有一个以上核、可具有集成存储器控制器、并且可具有集成图形器件的处理器的框图。0025图16示出根据本发明一个实施例的系统的框图。0026图17示出根据本发明的实施例的第一更具体的示例性系统的框。
17、图。0027图18示出根据本发明的实施例的第二更具体的示例性系统的框图。0028图19示出根据本发明的实施例的片上系统SOC的框图。0029图20是根据本发明的实施例的对比使用软件指令转换器将源指令集中的二进制指令转换为目标指令集中的二进制指令的框图。具体实施方式0030本文中公开的是操作掩码合并指令,用于执行该指令的处理器,在处理或执行该指令时处理器执行的方法,以及包括一个或多个处理器以执行该指令的电子系统。在以下描述中,阐述多个特定细节例如,特定指令操作、操作掩码、数据格式、处理器配置、微架构细节、操作序列等。然而,实施例可在没有这些特定细节的情况下实践。在其他情况下,没有详细示出已知的电。
18、路、结构,以及技术,以便避免对本描述的理解变得模糊。0031图1是用于处理一个或多个操作掩码合并指令104的处理器100的示例实施例的框图。在一些实施例中,处理器可以是通用处理器例如,在台式机、膝上型计算机、服务器等计算机中所使用的类型。替代地,处理器可以是专用处理器。合适的专用处理器的例子包括但不限于,网络处理器、通信处理器、加密处理器、图形处理器、协处理器、嵌入式处理器、数字信号处理器DSP、以及控制器,这里仅给出几个示例。该处理器可以是各种复杂指令集计算CISC处理器、各种精简指令集计算RISC处理器、各种超长指令字VLIW处理器、其各种混合、或完全其他类型的处理器中的任何处理器。003。
19、2处理器具有指令集架构ISA101。ISA表示与编程相关的处理器架构的一部分,并且通常包括处理器的本机指令、架构寄存器、数据类型、寻址模式、存储器架构等。ISA与说明书CN104049953A3/25页7微架构不同,其一般表示被选择用于实现ISA的特定处理器设计技术。0033ISA包括架构上可见寄存器例如,架构寄存器文件105。架构寄存器在本文中也可简称为寄存器。除非另外指定或显见地,短语架构寄存器、寄存器文件、和寄存器在本文中被用于指代这样的寄存器该寄存器对于被微指令或汇编语言指令指定来标识操作数的软件和/或编程器和/或寄存器而言是可见。这些寄存器与给定微架构的非架构或非架构上可见的寄存器例。
20、如,指令所用的临时寄存器、重排缓冲器、引退寄存器等形成对比。寄存器一般表示片上处理器存储位置。所例示的架构寄存器包括打包数据寄存器106。打包数据寄存器中的每一个可操作用于存储打包或向量数据。所例示的架构寄存器还包括打包数据操作掩码寄存器107。打包数据操作掩码寄存器中的每一个可操作用于存储打包数据操作掩码。0034ISA包括指令集102。指令集中的指令表示提供给处理器以供执行的宏指令、汇编语言指令、或机器级指令,其与微指令、微操作、或由于解码宏指令而得到的那些相反。指令集任选地包括一个或多个常规经掩码打包数据指令103。与先前提及的打包数据指令相类似的,经掩码打包数据指令103中的每一个可操。
21、作用于引起或导致处理器对一个或多个打包数据操作数的数据元素执行打包数据操作。打包数据操作数可被存储在打包数据寄存器107中。然而,经掩码打包数据指令中的每一个的不同之处在于,每一个经掩码打包数据指令可指示一个或多个打包数据操作掩码例如,打包数据操作掩码寄存器107中,其掩码、断言、或有条件地控制打包数据处理。打包数据操作掩码可表示操作掩码、断言操作数、或条件操作控制操作数。0035指令集还包括一个或多个操作掩码合并指令104。操作掩码合并指令可导致处理器生成并存储经合并的操作掩码。以下将进一步讨论合适指令/操作的特定示例。0036处理器还包括执行逻辑108。执行逻辑可操作用于执行或处理一个或多。
22、个操作掩码合并指令104。在一些实施例中,执行逻辑可包括用于执行这些指令的特定逻辑例如,与固件潜在组合的特定电路或硬件。0037在进一步讨论操作掩码合并指令104之前,首先讨论可如何使用打包数据操作掩码的几个示例会是有帮助的。图2A是带有融合的经掩码打包数据操作203A的第一示例的框图。经掩码打包数据操作可响应于经掩码打包数据指令例如,图1的经掩码打包数据指令103或者作为该指令的结果来执行。0038经掩码打包数据指令可指示第一源打包数据209A和第二源打包数据210A。其它经掩码打包数据指令例如,打包移位指令可指示仅单个源打包数据,或两个以上源打包数据。在例示中,第一和第二源打包数据具有相同。
23、大小,包含相同宽度的数据元素,并且由此各自包含相同数目的数据元素,但是并不要求是如此。在例示中,第一和第二源打包数据中的每一个具有十六个数据元素。作为一个示例,第一和第二源打包数据可各自为512比特宽,并且可各自包括十六个32比特双字数据元素,但是并不要求是如此。两个源打包数据里相同相对位置中例如,相同垂直位置中的源数据元素表示相应数据元素对。数据元素中的每一个具有表示数据元素的块内示出的数值。例如,第一源打包数据右侧的最低位数据元素具有值3,第一源打包数据的次最低位数据元素具有值7,依此类推。0039指令还指示源打包数据操作掩码211A。操作掩码表示用于断言或有条件地控制打包或向量操作的断言。
24、操作数或条件向量操作控制操作数。打包数据操作掩码包括掩码元说明书CN104049953A4/25页8素、断言元素或条件控制元素。打包数据操作掩码可操作用于在每数据元素粒度下掩码或有条件地控制打包数据处理。可以按与一个或多个相对应源数据元素的一一对应的形式包括掩码元素。例如,如例示中所示的,对于每个相应源数据元素对,可具有一个这样的掩码元素。操作掩码可允许与其他数据元素或相应数据元素对分开地或独立于其他数据元素或相应数据元素对来断言或有条件控制对每个数据元素或每个相应数据元素对的打包数据处理。每个掩码元素可操作用于掩码或不掩码一个或多个相应源打包数据元素上的打包数据操作。例如,在此示例中,每个掩。
25、码元素可掩码相应源打包数据元素对上的操作。0040如例示中所示的,通常每个掩码元素可以是单个比特。单个比特可允许指定两个不同的可能性例如,执行操作相对于不执行操作,存储操作的结果相对于不存储操作的结果等中的任一个。替代地,如果需要在多于两个不同选项中进行选择,则可对每个掩码元素使用两个或更多比特。在例示中,打包数据操作掩码包括十六个比特即,0011100001101011,并且十六个比特中的每一个具有与第一和第二源打包数据中十六个相应数据元素对中之一的有序对应。例如,右侧最低位掩码比特对应于最低位相应数据元素对,左侧最高位掩码比特对应于最高位相应数据元素对,依此类推。0041所例示的经掩码打包。
26、数据操作是经掩码打包数据加法操作,用于根据来自源打包数据操作掩码的掩码、断言或条件控制,有条件地存储打包数据结果212A中来自第一和第二源打包数据的相应数据元素对的和。打包数据操作掩码211A的十六个掩码比特中的每一个被置位即,具有二进制值1或者被清除即,具有二进制值0。根据所例示的协定,每个掩码比特分别被置位即,1或清除即,0,以允许或不允许将在相应源打包数据元素对上执行的打包数据操作在此情形中为加法的结果存储在打包数据结果212A的相应数据元素中。这些置位比特即,1表示未经掩码比特或未经掩码元素,而这些清除比特即,0表示经掩码比特或经掩码元素。例如,次最低位掩码比特被置位即,1,且和即,8。
27、71被存储在打包数据结果的相应次最低位数据元素中。在例示中,和通过下划线标出。0042相反,当给定掩码比特被清除即,0,则相应源数据元素对上的打包数据操作的结果不被存储在相应结果数据元素中。相反地,在例示中,来自第二源打包数据的相应数据元素的值被存储在相应结果数据元素中。例如,打包数据操作掩码中左侧最高位比特被清除即,0,且来自第二源打包数据的最高位数据元素的数值即,15被存储在最高位结果数据元素中。此掩码版本被称为融合掩码。应当理解,相反的协定也是可能的,其中比特被清除即,0以允许存储结果,或被置位即,1以不允许存储结果。0043在一些实施例中,打包数据操作可任选地在第一和第二源打包数据的所。
28、有相应数据元素对上执行,而不用管相应掩码比特被置位还是清除,但是打包数据操作的结果可被存储或可不被存储在打包数据结果中,这依赖于掩码比特的值。替代地,在另一实施例中,如果相应掩码比特指定不存储操作的结果,则打包数据操作可被任选地省去即,不被执行。在一些实施例中,掩码掉MASKEDOFF的元素上的打包数据操作可任选地抑制或不引起异常例如,异常标志或违例。在一些实施例中,对于具有存储操作数的经掩码打包数据指令,可任选地针对掩码掉的数据元素抑制存储器错误。0044图2B是例示带有填零ZEROING的经掩码打包数据元素203B的第二代表性示例实施例的框图。带有填零的经掩码打包数据操作类似于前述带有融合。
29、的经掩码打包数据操说明书CN104049953A5/25页9作。为了避免使描述变得模糊,不再重复相似之处,相反,将主要提及不同之处。一个明显的不同之处在于,与在相应掩码比特被掩码掉时将源打包数据例如,图2A中的第二源打包数据210A的数据元素的值融合或存储到相应结果数据元素中不同,相应结果数据元素被清零。例如,双字结果打包数据元素的所有32比特可具有零值。这称为填零掩码。替换地,也可任选地使用除零之外的其他预定值。0045这些仅仅是经掩码打包数据操作的几个示例性示例。应当理解,处理器可支持宽泛的各种不同类型的经掩码打包数据操作。在其他实施例中,这些可包括仅具有一个源打包数据、两个以上的源打包数。
30、据、不同大小的源打包数据、含不同数目的数据元素的源打包数据、以水平或非垂直对准方式执行的操作等。0046图3是具有执行单元308的指令处理装置300的实施例的框图,该执行单元308可操作用于执行操作掩码合并指令304的实施例。在一些实施例中,指令处理装置可以是处理器和/或可被包括在处理器中。例如,在一些实施例中,指令处理装置可以是图1的处理器,或者可被包括在该处理器中。替换地,指令处理装置可被包括在类似或不同的处理器中。此外,图1的处理器可包括类似或不同的指令处理装置。0047装置300可接收操作掩码合并指令304。例如,可从指令获取单元、指令队列等接收指令。操作掩码合并指令可表示装置的ISA。
31、的机器代码指令、汇编语言指令、微指令、或控制信号。操作掩码合并指令304可显式指定例如,通过一个或多个字段或一组比特或以其他方式指示例如,隐式指示源操作掩码311,并且可指定或以其他方式指示目的地存储位置318。在一些实施例中,指令可显式指定源操作掩码和目的地存储位置,但是并不要求如此。例如,一个实施例的操作掩码合并指令可具有指令格式KCONSOLK1,K2,其中KCONSOL指示操作码,K1指定目的地打包数据操作掩码寄存器,K2指定源打包数据操作掩码寄存器。在一些实施例中,源操作掩码311可包括经掩码元素例如,掩码比特被清除为零,以及未经掩码元素例如,掩码比特被设置为1,并且经掩码元素中的至。
32、少一些可被散布在或以其他方式布置在未经掩码元素的至少一些中。这种情况的示例包括但不限于01010101、00101000、11100111、01100101、以及11000011,这里仅例举几个示例性示例。0048在一些实施例中,源操作掩码311可被存储在可由指令指定或其他方式指示的源打包数据操作掩码寄存器316中。打包数据操作掩码寄存器316可以是一组打包数据操作掩码寄存器307中的一个。类似地,在一些实施例中,目的地存储位置317可以在打包数据操作掩码寄存器307中。在一些实施例中,目的地存储位置可以是与源打包数据操作掩码316相同或不同的寄存器。打包数据操作掩码寄存器可通过使用公知技术以。
33、不同方式实现于不同的微架构中,并且不限于任何已知的特定类型的电路。示例合适类型的寄存器的示例包括但不限于专用物理寄存器、使用寄存器重命名的动态分配物理寄存器、以及其组合。0049所例示的指令处理装置包括解码单元或解码器315。指令解码器可接收和解码微指令、机器代码指令、汇编语言指令、或其他相对高级指令,并且输出一个或多个微指令、微操作、伪代码进入点、或其他相对低级指令或者反映、表示、和/或从接收到的高级指令导出的控制信号。一个或多个低级指令或控制信号可通过一个或多个低级例如,电路级或硬件级操作来实现高级指令。解码器可通过使用各种不同的机构来实现,包括但不限于,伪代码只读存储器ROM、查找表、硬。
34、件实现、可编程逻辑阵列PLA、以及用于实现本领域已知的解码器的其他机构。说明书CN104049953A6/25页100050在其他实施例中,可使用指令仿真器、翻译器、变形器MORPHER、解析器、或其他指令转换逻辑。各种不同类型的指令转换逻辑在本领域中是已知的,并且可以软件、硬件、固件、或其组合的形式来实现。指令转换逻辑可接收指令并仿真、翻译、变形、解析或以其他方式将指令转换成一个或多个相应推导出的指令或控制信号。在其他实施例中,可使用指令转换逻辑和解码器两者。例如,装置可具有指令转换逻辑,用于将接收到的机器代码指令转换成一个或多个中间指令;以及解码器,用于将一个或多个中间指令解码成可由装置的。
35、本地硬件例如,执行单元执行的一个或多个低级指令或控制信号。指令转换逻辑中的一些或全部可位于指令处理装置的外部,诸如例如分开的管芯上和/或存储器中。0051再次参看图3,执行单元308与解码单元315、与源打包数据操作掩码311、以及与目的地存储位置317耦合。执行单元可接收表示和/或从操作掩码合并指令304推导的一个或多个经解码或以其他方式转换的指令或控制信号。如先前所提及的,源操作掩码311可包括经掩码元素,和未经掩码元素,并且经掩码元素中的至少一些可被散布在或以其他方式布置在未经掩码元素的至少一些中。在一些实施例中,执行单元可操作用于响应于操作掩码合并指令304和/或作为其结果,来将经合并。
36、的操作掩码318存储在目的地存储位置317中。在一些实施例中,经合并操作掩码可包括被收集在一起、集合在一起、使得彼此相邻、或以其他方式被合并在一起的来自源操作掩码的未经掩码元素。在一些实施例中,在经合并操作掩码中,可能没有经掩码元素被布置或散布在来自源操作掩码的所有未经掩码元素的经合并集合之间。即,可从未经掩码元素之间移走或以其他方式消去经掩码元素。0052在一些实施例中,经掩码和未经掩码元素中的每一个可以是不同的单个掩码比特,诸如例如,每个经掩码元素可以是具有二进制零值即,被清除为0的单个比特,而每个未经掩码元素可以是具有二进制零1即,被设置为1的单个比特。在一些实施例中,执行单元可操作用于。
37、将来自经合并操作掩码或寄存器的最低有效部分中的源操作掩码的未经掩码元素合并在一起。替代地,在一些实施例中,执行单元可操作用于将来自经合并操作掩码或寄存器的最高有效部分中的源操作掩码的未经掩码元素合并在一起。在一些实施例中,操作掩码合并指令可操作用于指示是否将来自源操作掩码的未经掩码元素合并到经合并操作掩码或寄存器的最低有效或最高有效部分中。例如,在一些实施例中,操作掩码合并指令可包括一个或多个比特,该一个或多个比特可具有第一值单比特二进制值零,用以指示将把未经掩码元素一起合并到有效部分中,或者可具有第二值单比特二进制值一,用以指示将把未经掩码元素一起合并到最高有效部分中。例如,一个实施例的操作。
38、掩码合并指令可具有指令格式KCONSOLK1,K2,位次ORDER,其中KCONSOL指示操作码,K1指定目的地打包数据操作掩码寄存器,K2指定源打包数据操作掩码寄存器,并且位次包括用于指示合并是否指向操作掩码中的最低或最高有效位的一个或多个比特。0053执行单元和/或指令处理装置可包括特定或具体逻辑例如,与固件和/或软件潜在相组合的电路或其他硬件,该逻辑可操作用于执行操作掩码合并指令,并且响应于操作掩码合并指令例如,响应于从操作掩码合并指令解码或以其他方式导出的一个或多个指令或控制信号存储经合并操作掩码。作为示例,执行单元可包括逻辑单元,算术逻辑单元,用于执行逻辑操作的数字电路,包括操作掩码。
39、合并逻辑的执行或功能单元等。0054为了避免混淆描述,已示出和描述了相对简单的指令处理装置300。在其他实施例中,该装置可任选地包括在处理器中找到的其他公知组件。这些组件的示例包括但不限说明书CN104049953A107/25页11于,分支预测单元、指令获取单元、指令和数据的高速缓存、指令和数据的翻译后备缓冲器TRANSLATIONLOOKASIDEBUFFER、预取缓冲器、微指令队列、微指令定序器、寄存器重命名单元、指令调度单元、总线接口单元、第二或更高级高速缓存、引退单元、包括在处理器中的其他组件、以及上述的各种组合。实际上,处理器中的组件有大量不同的组合和配置,并且实施例不限于任何特定。
40、的组合或配置。实施例可被包括在具有多个核的处理器、逻辑处理器、或者执行引擎中,其中至少一个具有可操作用于执行本文中所公开的指令的一个实施例的执行逻辑。0055图4A是可响应于操作掩码合并至最低有效位置指令的示例实施例和/或作为该指令的结果而执行的操作掩码合并至最低有效位置操作404A的示例实施例的框图。指令可显式指定或以其他方式指示例如,隐式指示源操作掩码411A和目的地例如,目的地存储位置。在所例示的实施例中,源操作掩码为8比特宽。在其他实施例中,源操作掩码可以更窄例如,4比特或更宽例如,16比特,32比特,64比特或甚至更宽。在一些方面,操作掩码的宽度可依赖于相应打包数据和数据元素宽度参见。
41、,例如,图8和10的讨论。在一些实施例中,源操作掩码可被包括在操作掩码寄存器中,并且可表示寄存器的比特子集例如,最低位子集,该子集是活跃、有意义的和/或被用于断言。相比之下,寄存器中的另一比特子集例如,最高位剩余部分可以是非活跃、无意义的,和/或不被用于断言。在一些实施例中,源操作掩码可包括布置在多个未经掩码元素内的多个经掩码元素。例如,在例示中,源操作掩码从最低位比特0右侧到最高位比特7左侧包括比特值0,0,1,1,0,0,1,1。此数据仅是一个示例,并且不管源操作掩码中经掩码和未经掩码元素的布置如何,指令/操作都起作用。实际上,多个可能的布置中的任何其它布置也是可行的。根据所例示的协定,置。
42、位或“1”比特值表示未经掩码比特,而清除或“0”比特值表示经掩码比特。在替代实施例中,可替代地使用相反协定。此外,在其他实施例中,可任选地使用多比特掩码元素例如,具有两比特,或相应打包数据元素的宽度。0056响应于指令和/或作为指令的结果,经合并操作掩码418A的实施例可被存储在目的地中。在一些实施例中,经合并操作掩码可包括来自所收集或以其他方式一起合并在目的地中的源操作掩码411A的未经掩码元素例如,根据所例示协定的置位比特或“1”比特值。例如,在此指令/操作的最低有效位置版本中,所有未经掩码元素例如,根据所例示协定的置位比特或“1”比特值在此情形中一共四个,被存储在经合并操作掩码和/或目的。
43、地的最低位比特在此情形中为最低位4比特中。具体地,经合并操作掩码从最低位比特0右侧到最高位比特7左侧包括比特值1,1,1,1,0,0,0,0。可设想各种方式以实现这种情形,包括通过路由、拷贝、选择、或其某一组合,或者以其他方式移动或重排这些未经掩码元素。在一些实施例中,来自源操作掩码的经掩码元素例如,根据所例示协定的清除比特或“0”比特值可仅仅被丢弃或删除,并且可能无需传递到目的地。源操作掩码中比总未经掩码比特数目更高有效的比特可仅仅在目的地中被清零。即,任何被丢弃的经掩码元素例如,清除比特或“0”比特值可用替换经掩码元素例如,清除比特或“0”比特值来填充。替换地,在其他实施例中,可将来自源操。
44、作掩码的经掩码元素移至或重安排至比未经掩码元素更高位次的位置。0057图4B是可响应于操作掩码合并至最高有效位置指令的示例实施例和/或作为该指令的结果而执行的操作掩码合并至最高有效位置操作404B的示例实施例的框图。许多说明书CN104049953A118/25页12特征和特性与先前针对图4A所描述的那些相类似或相同。为了避免使描述变得模糊,讨论将首先着重于不同或附加特征或特性。如同之前所述的,指令可显式指定或以其他方式指示例如,隐式指示源操作掩码411B和目的地例如,目的地存储位置。如之前所述的,响应于指令和/或作为指令的结果,经合并操作掩码418B的实施例可被存储在目的地中。与之前相类似的。
45、,在一些实施例中,经合并操作掩码可包括来自一起合并在目的地中的源操作掩码411B的未经掩码元素例如,根据所例示协定的置位比特或1比特值。然而,在此指令/操作的最高有效位置版本中,所有四个未经掩码元素例如,根据所例示的协定的置位或“1”比特值被存储在经合并操作掩码的最高位或最高有效4比特中。具体地,经合并操作掩码从最低位比特0右侧到最高位比特7左侧包括比特值0,0,0,0,1,1,1,1。0058这些仅仅是合适操作掩码合并操作的几个示例性示例。合适的起始8比特操作掩码左侧以及结果所得的经合并操作掩码右侧从最低位比特0右侧至最高位比特7左侧的其他示例包括但不限于005910000001000000。
46、11最低有效版本00600101010000000111最低有效版本00610010111100011111最低有效版本00621000000111000000最高有效版本00630101010011100000最高有效版本00640010111111111000最高有效版本0065其他实施例涉及在16比特操作掩码上操作的操作掩码合并指令/操作。例如,合适的起始16比特操作掩码左侧以及结果所得的经合并16比特操作掩码右侧从最低位比特0右侧至最高位比特7左侧的其他示例包括但不限于006610000000011000010000000000001111最低有效版本00671000000000000。
47、0010000000000000011最低有效版本006800010100110011101111111000000000最高有效版本006901001111101111001111111111000000最高有效版本0070其他实施例涉及在64比特操作掩码或具有其他比特数的那些上操作的操作掩码合并指令/操作。此外,如果需要的话,可任选地合并至中间例如,中心或中央位置来替代在最低或最高有效比特处开始。0071图5是处理操作掩码合并指令的实施例的方法530的实施例的流程框图。在各种实施例中,该方法由通用、专用处理器、或者其他指令处理装置或数字逻辑设备执行。在一些实施例中,图5的操作和/或方法可由。
48、图1的处理器和/或图3的装置执行,和/或在图1的处理器和/或图3的装置内执行。本文中所描述的用于图1的处理器和图3的装置的组件、特征、以及具体的任选细节还任选地应用于图5的操作和/或方法。替换地,图5的操作和/或方法可由类似的或完全不同的处理器或装置执行,和/或在类似的或完全不同的处理器或装置内执行。此外,图1的处理器和/或图3的装置可执行与图5相同、相似、或者不同的操作和/或方法。0072方法包括在框531处接收操作掩码合并指令。在各个方面,可在处理器、指令处理装置或其部分例如,指令获取单元、解码器、指令转换器等处接收指令。在各个方面,可说明书CN104049953A129/25页13从管芯。
49、外的源例如,从主存储器、盘、或互连或者从管芯上的源例如,从指令获取单元或指令高速缓存接收指令。操作掩码合并指令可指定或以其他方式指示源操作掩码或目的地存储位置。在一些实施例中,源操作掩码可包括布置在多个未经掩码元素例如,设置为二进制一的掩码比特内的多个经掩码元素例如,清除为二进制零的掩码比特。0073在框532,可响应于操作掩码合并指令或作为该指令的结果,可将经合并操作掩码存储在目的地存储位置中。作为代表,执行单元、指令处理装置、或处理器可执行指令所指定的操作并存储结果。在一些实施例中,经合并操作掩码可包括合并在一起的来自源操作掩码的未经掩码元素。0074在一些实施例中,在经合并操作掩码中,可能没有布置在未经掩码元素之间的经掩码元素。在一些实施例中,未经掩码元素可被合并在经合并操作掩码或寄存器的最低有效部分中。替代地,未经掩码元素可被合并在经合并操作掩码或寄存器的最高有效部分中。在一些实施例中,操作掩码合并指令可操作用于指示是否使用最低或更高有效部分例如,通过一个或多个比特或字段。0075所例示的方法涉及架构上可见的操作例如,从软件角度而言可见的那些。在其他实施例中,方法可任选地包括一个或多个微架构操作。作为示例,指令可被获取、解码、无序地调度,源操作数可被访问,可使得执行单元或逻辑能执行或可执行微架构操作以实现指令,结果可被放回到程序命令并被提交等。可设想执。