《使用写掩码将两个源操作数混合进单个目的地的系统、装置和方法.pdf》由会员分享,可在线阅读,更多相关《使用写掩码将两个源操作数混合进单个目的地的系统、装置和方法.pdf(40页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103460182 A(43)申请公布日 2013.12.18CN103460182A*CN103460182A*(21)申请号 201180069936.4(22)申请日 2011.12.1213/078,864 2011.04.01 USG06F 9/30(2006.01)G06F 9/305(2006.01)(71)申请人英特尔公司地址美国加利福尼亚州(72)发明人 JC三额詹 BL托尔RC凡伦天 JG韦德梅耶S萨姆德若拉 MB吉尔卡尔AT福塞斯E乌尔德-阿迈德-瓦尔DR布拉德福德 LK吴(74)专利代理机构上海专利商标事务所有限公司 31100代理人姬利永(5。
2、4) 发明名称使用写掩码将两个源操作数混合进单个目的地的系统、装置和方法(57) 摘要描述了用于在计算机处理器中执行混合指令的系统、装置和方法的实施例。在一些实施例中,混合指令的执行导致使用写掩码的相对应位位置作为第一和第二操作数之间的选择器来进行对第一和第二源操作数的数据元素的逐数据元素的选择,及将所选择的数据元素在目的地的相对应位置处存储进目的地。(30)优先权数据(85)PCT申请进入国家阶段日2013.10.08(86)PCT申请的申请数据PCT/US2011/064486 2011.12.12(87)PCT申请的公布数据WO2012/134560 EN 2012.10.04(51)I。
3、nt.Cl.权利要求书2页 说明书21页 附图16页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书2页 说明书21页 附图16页(10)申请公布号 CN 103460182 ACN 103460182 A1/2页21.在计算机处理器中执行混合指令的方法,所述方法包括:提取所述混合指令,其中所述混合指令包括写掩码操作数、目的地操作数、第一源操作数和第二源操作数;解码所提取的混合指令;执行所解码的混合指令以使用所述写掩码的相对应位位置作为所述第一和第二操作数之间的选择器来执行对第一和第二源操作数的数据元素的逐数据元素选择;以及将所选择的数据元素在所述目的地的相对应位置处存储到目。
4、的地。2.如权利要求1所述的方法,其特征在于,所述写掩码是16-位寄存器。3.如权利要求1所述的方法,其特征在于,所述写掩码是16-位寄存器且仅八个最低有效位位置被用作选择器且所述数据元素的大小是64位。4.如权利要求1所述的方法,其特征在于,所述第一源是512-位寄存器且所述第二源是存储器。5.如权利要求4所述的方法,其特征在于,所述第二源的数据元素是从16-位上转换到32-位的。6.如权利要求1所述的方法,其特征在于,所述第一和第二源是512-位寄存器。7.如权利要求1所述的方法,其特征在于,其中所述判断对所述写掩码的每个位位置并行进行。8.如权利要求1所述的方法,其特征在于,其中所述第一。
5、和第二源操作数是512-位寄存器。9.如权利要求1所述的方法,其特征在于,其中所述第二源操作数是512-位存储器位置且来自该存储器位置的数据元素在所述源的串接之前被加载进临时512-位寄存器。10.如权利要求1所述的方法,其特征在于,所述数据元素是32-位的。11.一种方法,所述方法包括:响应于包括第一和第二源操作数、目的地操作数、写掩码操作数的混合指令,评估所述写掩码在第一位位置处的值,判断所述第一位位置处的值是否指示所述第一源的相对应第一数据元素应被保存在所述目的地的相对应第一数据元素位置或是否所述第二源的相对应第一数据元素应被保存在所述目的地的相对应第一数据元素位置,且将由所述第一位位置。
6、处的值所指示的所述第一数据元素存储进所述目的地的所述第一元素位置。12.如权利要求11所述的方法,其特征在于,还包括:评估所述写掩码在第二位位置处的值,判断所述第二位位置处的值是否指示所述第一源的相对应第二数据元素应被保存在所述目的地的相对应第二数据元素位置或是否所述第二源的相对应第二数据元素应被保存在所述目的地的相对应第二数据元素位置,且将由所述第二位位置处的值所指示的所述第二数据元素存储进所述目的地的所述第二数据元素位置。13.如权利要求12所述的方法,其特征在于,还包括:对所述写掩码的所有位位置已被评估的判断指示所述混合指令的结束。权 利 要 求 书CN 103460182 A2/2页3。
7、14.如权利要求11所述的方法,其特征在于,所述写掩码是16-位寄存器。15.如权利要求11所述的方法,其特征在于,所述写掩码是16-位寄存器且仅八个最低有效位位置被用作选择器且所述数据元素的大小是64位。16.如权利要求11所述的方法,其特征在于,所述第一源是512-位寄存器而所述第二源是存储器。17.如权利要求14所述的方法,其特征在于,所述第二源的数据元素是从16-位上转换到32-位的。18.如权利要求11所述的方法,其特征在于,所述第一和第二源是512-位寄存器。19.如权利要求11所述的方法,其特征在于,其中所述第一和第二源操作数是512-位寄存器。20.如权利要求11所述的方法,其。
8、特征在于,其中所述第二源操作数是512-位存储器位置且来自该存储器位置的数据元素在所述源的串接之前被加载进临时512-位寄存器。21.一种装置,所述包括:用于解码混合指令的硬件解码器,其中所述对准指令包括写掩码操作数、目的地操作数、第一源操作数和第二源操作数;用于使用所述写掩码的相对应位位置作为所述第一和第二操作数之间的选择器来执行对第一和第二源操作数的数据元素的逐数据元素选择并将所选择的数据元素在所述目的地的相对应位置处存储进目的地。22.如权利要求21所述的装置,其特征在于,还包括:用于存储所述写掩码的16-位写掩码寄存器;以及用于存储所述第一和第二源的数据元素的至少两个512-位寄存器。。
9、权 利 要 求 书CN 103460182 A1/21页4使用写掩码将两个源操作数混合进单个目的地的系统、 装置和方法技术领域0001 本发明的领域一般涉及计算机处理器架构,以及更具体地涉及当被执行时导致特定结果的指令。背景技术0002 基于控制流信息合并来自向量源的数据是基于向量的架构的普遍问题。例如,为了将以下代码向量化,需要:1)生成指示ai0是否为真的布尔向量的方法和2)基于该布尔向量从两个源(Ai或Bi)中选择任一值并将内容写入不同目的地(Ci)的方法。0003 附图说明0004 作为示例而非限制,在附图中示出了本发明,附图中相似的附图标记指示相似的元素,附图中:0005 图1示出了。
10、混合指令执行的示例。0006 图2示出了混合指令执行的另一个示例。0007 图3示出了混合指令的伪代码的示例。0008 图4示出了在处理器中使用混合指令的实施例。0009 图5示出了用于处理混合指令的方法的实施例。0010 图6示出了用于处理混合指令的方法的实施例。0011 图7A是示出根据本发明实施例的通用向量友好指令格式和其A类指令模板的框图。0012 图7B是示出根据本发明实施例的通用向量友好指令格式和其B类指令模板的框图。0013 图8A-C示出了根据本发明实施例的示例性特定向量友好指令格式。0014 图9是根据本发明一实施例的寄存器架构的框图。0015 图10A是根据本发明实施例的单。
11、个CPU核以及它与管芯上互连网络的连接和它的2级(L2)高速缓存本地子集的框图。0016 图10B是根据本发明实施例的图10A中的CPU核的一部分的分解图。0017 图11是示出根据本发明实施例的示例性乱序架构的框图。0018 图12是根据本发明一实施例的系统的框图。说 明 书CN 103460182 A2/21页50019 图13是根据本发明实施例的第二系统的框图。0020 图14是根据本发明实施例的第三系统的框图。0021 图15是根据本发明实施例的SoC的框图。0022 图16是根据本发明实施例的具有集成存储器控制器和图形器件的单核处理器和多核处理器的框图。0023 图17是对比根据本发。
12、明实施例使用软件指令转换器将源指令集的二进制指令转换成目标指令集的二进制指令的框图。具体实施方式0024 在以下描述中阐述了众多具体细节。然而应理解,可以在没有这些具体细节的情况下实践本发明的实施例。在其它实例中,为了不妨碍对本描述的理解,没有详细示出公知的电路、结构和技术。0025 说明书中对“一实施例”、“实施例”、“示例实施例”等等的引用指示所描述的实施例可以包括特定特征、结构或特性,但是,并不一定每个实施例都包括该特定特征、结构或特性。此外,这些短语不一定指同一实施例。此外,当结合实施例来描述特定特征、结构或特性时,不管是否被明确描述,结合其他实施例来实现该特征、结构或特性被认为是在本。
13、领域技术人员的知识范围内。0026 混合0027 下面是通常称为“混合”的指令的实施例,以及可以用来执行在包括背景技术中所描述过的数个不同区域中有益的这种指令的系统、架构、指令格式等等的实施例。混合指令的执行有效地应付之前所描述的问题的第二部分,因为它占用包含来自元素向量的比较结果的真/假位的一个掩码寄存器,并且基于这些位,它能够在两个不同的向量源的元素之间选择。换言之,混合指令的执行导致处理器通过使用写掩码作为这些源之间的选择器,执行两个源之间逐个元素的混合。结果被写入目的地寄存器。在一些实施例中,源中的至少一个是寄存器,诸如128-、256-、512-位向量寄存器等。在一些实施例中,源操作。
14、数中的至少一个是与起始存储器位置相关联的数据元素的集合。另外,在一些实施例中,一个或两个源的数据元素在任何混合之前经过诸如调和(swizzle)、广播、转换等数据变换(本文将讨论示例)。稍后将详述写掩码寄存器的示例。0028 这个指令的示例性格式为“VBLENDPS zmm1k1,zmm2,zmm3/m512,offset”,其中操作数zmm1、zmm2和zmm3是向量寄存器(诸如128-、256-、512-位寄存器等),k1是写掩码操作数(诸如那些稍后详述的16-位寄存器),且m512是在寄存器中或作为即值存储的存储器操作数。ZMM1是目的地操作数且ZMM2和ZMM3/m512是源操作数。如。
15、果有的话,偏移(offset)用来从寄存器中的值或即值确定存储器地址。从存储器检索的任何内容都是从存储器地址开始的连续位的集合,且可以是依赖于目的地寄存器的大小的数个大小(128-、256-、512-位等)中的一个该大小通常是与目的地寄存器相同的大小。在一些实施例中,写掩码也有不同的大小(8位、32位等)。另外,在一些实施例中,如以下将详述,不是写掩码位的所有位都被指令利用。VBLENDMPS是指令的操作码。通常每个操作数都在指令中明确地定义。数据元素的大小可以在指令的“前缀”中定义,诸如通过使用如稍后描述的类似“W”的数据粒度位的指示。在大多数实施例中,W指示每个数据元素是32位或64位。如。
16、说 明 书CN 103460182 A3/21页6果数据元素的大小是32位且源的大小是512位,那么每个源有十六(16)个数据元素。0029 图1中示出了混合指令执行的示例。在此示例中,有两个各自有16个数据元素的源。在大多数情况下,这些源中的一个是寄存器(就此示例,源1作为512-位寄存器(诸如有16个32位数据元素的ZMM寄存器)来对待,然而也可以使用其它数据元素和寄存器大小,诸如XMM和YMM寄存器和16-或64-位数据元素)。另一源是寄存器或存储器位置(在此图示中源2是另一源)。如果第二源是存储器位置,那么在大多数实施例中它在源的任何混合之前被放入临时寄存器中。此外,存储器位置的数据元。
17、素可以在放入临时寄存器之前经历数据变换。所示的掩码模式是0x5555。0030 在此示例中,对有“1”值的写掩码的每一个位位置,这指示第一源(源1)的相对应数据元素应被写入目的地寄存器的相对应数据元素位置。因此,源1的第一、三、五等等位位置(A0、A2、A4等)被写入目的地的第一、三、五等等数据元素位置。当写掩码有“0”值时,第二源的数据元素被写入目的地的相对应数据元素位置。当然,依据实现,“1”和“0”的使用可以翻转。此外,尽管此图和以上描述考虑相应的第一位置为最低有效位置,在一些实施例中第一位置是最高有效位置。0031 图2示出了混合指令执行的另一个示例。本图与图1的区别是每个源只有8个数。
18、据元素(例如,各源是每个有8个64-位数据元素的512-位寄存器)。在此情形下,对于16-位写掩码,不是该写掩码的所有位都被使用。在此实例中只使用了最低有效位,因为每个源没有16个数据元素要合并。0032 图3示出了混合指令的伪代码的示例。0033 图4示出了在处理器中使用混合指令的实施例。在401,提取具有目的地操作数、两个源操作数和偏移(如果有的话)的混合指令。在一些实施例中,目的地操作数是512-位向量寄存器(诸如ZMM1)且写掩码是16-位寄存器(诸如稍后详述的“k”写掩码寄存器)。源操作数中的至少一个可以是存储器源操作数。0034 在403,将混合指令解码。依据指令的格式,可以在这个。
19、阶段解释各种数据,诸如如果将有数据变换,对哪个寄存器写入和检索、访问什么存储器地址等。0035 在405,检索/读取源操作数的值。如果两个源都是寄存器则读取这些寄存器。如果源操作数中的一个或两个是存储器操作数则检索与该操作数相关联的数据元素。在一些实施例中,将来自存储器的数据元素存储到临时寄存器中。0036 如果要执行任何数据元素变换(诸如稍后详述的上转换、广播、调和等),可以在407执行。例如,可以将来自存储器的16-位数据元素上转换为32-位数据元素,或者可以将数据元素从一种模式调和为另一种模式(例如,XYZW XYZW XYZWXYZW到XXXXXXXX YYYYYYYY ZZZZZZZ。
20、Z WWWWWWWW)。0037 在409,由执行资源执行混合指令(或包括诸如微操作的这种指令的操作)。此执行通过使用写掩码作为这些源之间的选择器导致在两个源之间的逐个元素的混合。例如,基于写掩码的相对应位的值,选择第一和第二源的数据元素。在图1和2中示出了这种混合的示例。0038 在411,将源操作数的适当数据元素存储进目的地寄存器。同样,在图1和图2中示出了其示例。尽管409和411被分开示出,在一些实施例中它们作为指令执行的一部分一起执行。说 明 书CN 103460182 A4/21页70039 尽管以上是在一种类型的执行环境中示出的,可以很容易地将其修改为适合其它环境,诸如详述的按序。
21、和失序环境。0040 图5示出了用于处理混合指令的方法的实施例。在此实施例中假定操作401-407的一些,如果不是全部的话,已在之前执行了,然而为了不妨碍下面呈现的细节未示出它们。例如,未示出提取和解码,也没有示出操作数(源的和写掩码的)检索。0041 在501,评估写掩码的第一位位置处的值。例如,确定写掩码k10处的值。在一些实施例中,第一位位置是最低有效位位置,而在其它实施例中它是最高有效位位置。余下讨论将描述将第一位位置用作最低有效,然而本领域普通技术人员应容易理解如果它是最高有效时会做出的改变。0042 在503,做出关于写掩码的这一位位置处的值是否指示第一源的相对应数据元素(第一数据。
22、元素)应保存在目的地的相对应位置处的判断。如果第一位位置指示第一源的第一位置中的数据元素应存储在目的地寄存器的第一位置中,则在507对它进行存储。回头看图1,掩码指示这是该情况且第一源的第一数据元素存储在目的地寄存器的第一数据元素位置中。0043 如果第一位位置指示第一源的第一位置中的数据元素不应存储在目的地寄存器的第一位置中,则在507存储第二源的第一位置中的数据元素。回头看图1,掩码指示这不是该情况。0044 在509,做出关于所评估的写掩码位置是否是写掩码的最后位置或目的地的所有数据元素位置是否都已被填充的判断。如果是真,则操作结束。如果不是真,则在511评估写掩码中的下一位位置以确定其。
23、值。0045 在503,做出关于写掩码的该后续位位置处的值是否指示第一源的相对应数据元素(第二数据元素)应保存在目的地的相对应位置处的判断。对此进行重复直到已穷尽了掩码中的所有位或者已填充了目的地的所有数据元素。当例如数据元素大小为64位、目的地为512位且写掩码有16位时,后一情况可能发生。在那个实例中,写掩码的仅8位是必需的,但混合指令应已完成。换言之,要使用的写掩码的位数量依赖于写掩码的大小和每个源中的数据元素的数量。0046 图6示出了用于处理混合指令的方法的实施例。在此实施例中,假定操作401-407中的一些,如果不是全部的话,已在601之前执行了。在601,对将要使用的写掩码的每一。
24、位位置,判断那个位位置处的值是否指示第一源的相对应数据元素应保存在目的地寄存器的相对应位置处。0047 对指示第一源的数据元素应保存在目的地寄存器中的写掩码的每一位位置,在605将它写入适当的位置。对指示第二源的数据元素应保存在目的地寄存器中的写掩码的每一位位置,在603将它写入适当的位置。在一些实施例中,并行执行603和605。0048 尽管图5和图6讨论了基于第一源做出决定,但是可以使用任一个源进行判断。此外,应清楚理解当一个源的数据元素将不被写入时,另一源的相对应数据元素将被写入目的地寄存器。0049 英特尔公司的AVX介绍了BLEND向量指令的其它版本,有基于即值的(VBLENDPS)。
25、或基于第三向量源的元素的符号位的(VBLENDVPS)。第一个的缺点是混合信息为静态,而第二个的缺点是动态混合信息来自其它向量寄存器,导致额外的寄存器读压力、存储浪费(每说 明 书CN 103460182 A5/21页832位中仅1位对布尔表示是实际有用的)和额外的开销(由于预测信息需要被映射进实际数据向量寄存器)。VBLENDMPS介绍了使用包含在实际掩码寄存器中的预测信息将来自两个源的值混合的概念。这有以下优点:允许可变混合、允许使用解耦算术和预测逻辑组件进行混合(算术在向量上执行,预测在掩码上执行;掩码用来基于控制流信息混合算术数据)、减轻向量寄存器文件上的读取压力(掩码读取更便宜且是在。
26、分开的寄存器文件上)并避免浪费存储(在向量上存储布尔值是非常低效的,因为对每个元素只有1位是实际需要的在32-位/64-位中)。0050 以上详述的指令(多个指令)实施例可以体现在下面详述的“通用向量友好指令格式”中。在其它实施例中,没有利用这样的格式而使用了另一指令格式,然而下面关于写掩码寄存器、各种数据变换(调和、广播等)、寻找等的描述可一般地应用于关于以上指令实施例的描述。此外,下面详述了示例性系统、架构和流水线。以上指令实施例可以在这样的系统、架构和流水线上执行,但不限于详述的这些。0051 向量友好指令格式是适合向量指令的指令格式(例如,存在针对向量操作的某些字段)。尽管实施例被描述。
27、为其中向量和标量操作都通过向量友好指令格式支持,但替换实施例仅对向量操作使用向量友好的指令格式。0052 示例性通用向量友好指令格式图7A-B0053 图7A-B是示出根据本发明实施例的通用向量友好指令格式和其指令模板的框图。图7A是示出根据本发明实施例的通用向量友好指令格式和其A类指令模板的框图;而图7B是示出根据本发明实施例的通用向量友好指令格式和其B类指令模板的框图。具体而言,对通用向量友好指令格式700定义了A类和B类指令模板,二者都包括无存储器访问705指令模板和存储器访问720指令模板。向量友好指令格式的上下文中的术语“通用”是指不绑定到任何特定指令集的指令格式。尽管实施例将被描述。
28、为其中向量友好指令格式的指令在源自寄存器(无存储器访问705指令模板)或者寄存器/存储器(存储器访问720指令模板)的向量上操作,本发明的替换实施例也可以仅支持这其中的一种。而且,尽管本发明的实施例将被描述为其中存在向量指令格式的加载和存储指令,替换实施例可以替代地或附加地具有将向量移入和移出寄存器(例如,从存储器到寄存器、从寄存器到存储器、在寄存器之间)的不同指令格式的指令。另外,尽管本发明的实施例将被描述为支持两类指令模板,替换实施例也可以只支持这些中的一个或支持多于两类。0054 尽管本发明的实施例将被描述为其中向量友好指令格式支持以下:具有32位(4字节)或64位(8字节)数据元素宽度。
29、(或大小)的64字节向量操作数长度(或大小)(且因此,64字节向量包括16个双字大小的元素或另选地,8个四字大小的元素);具有16位(2字节)或8位(1字节)数据元素宽度(或大小)的64字节向量操作数长度(或大小);具有32位(4字节)、64位(8字节)、16位(2字节)或8位(1字节)数据元素宽度(或大小)的32字节向量操作数长度(或大小);以及具有32位(4字节)、64位(8字节)、16位(2字节)或8位(1字节)数据元素宽度(或大小)的16字节向量操作数长度(或大小);替换实施例也可以支持具有更多、更少或不同的数据元素宽度(例如128位(16字节)数据元素宽度)的更多、更少和/或不同的向。
30、量操作数大小(例如756字节向量操作数)。0055 图7A中的A类指令模板包括:1)在无存储器访问705指令模板中示出了无存储器访问、完全舍入控制类型操作710指令模板,和无存储器访问、数据变换类型操作715指说 明 书CN 103460182 A6/21页9令模板;和2)在存储器访问720指令模板中示出了存储器访问、临时725指令模板,和存储器访问、非临时730指令模板。图7B中的B类指令模板包括:1)在无存储器访问705指令模板中示出了无存储器访问、写掩码控制、部分舍入控制类型操作712指令模板,和无存储器访问、写掩码控制、vsize类型操作717指令模板;和2)在存储器访问720指令模板。
31、中示出了存储器访问、写掩码控制727指令模板。0056 格式0057 通用向量友好指令格式700包括下面按图7A-B中示出的顺序列出的以下字段。0058 格式字段740这个字段中的特定值(指令格式标识符值)唯一地标识向量友好指令格式,及由此向量友好指令格式的指令在指令流中的出现。因此,格式字段740的内容将第一指令格式的指令的出现与其它指令格式的指令的出现进行区分,由此允许将向量友好指令格式引入有其它指令格式的指令集。故而,这个字段在对于只有通用向量友好指令格式的指令集而言并不需要的意义上是可选的。0059 基本操作字段742其内容区分不同的基本操作。如本文稍后详述的,基本操作字段742可以包。
32、括操作码字段和/或是操作码字段的一部分。0060 寄存器索引(index)字段744直接地或通过地址生成,其内容指定源和目的地操作数的位置,如果它们在寄存器或存储器中。这些包括足够数量的位以从PQ(例如32912)个寄存器文件中选择N个寄存器。尽管在一实施例中N可以是最多达三个源和一个目的地寄存器,替换实施例也可以支持更多或更少的源和目的地寄存器(例如,可以支持多达两个源,其中这些源中的一个还充当目的地,可以支持多达三个源,其中这些源中的一个还充当目的地,可以支持多达两个源和一个目的地)。尽管在一实施例中P=32,替换实施例也可以支持更多或更少的寄存器(例如16个)。尽管在一实施例中Q=912。
33、位,替换实施例也可以支持更多或更少的位(例如,128、1024位)。0061 修改器字段746其内容区分指定存储器访问的通用向量指令格式的指令的出现与那些不指定存储器访问的通用向量指令格式的指令的出现;即在无存储器访问705指令模板和存储器访问720指令模板之间进行区分。存储器访问操作对存储器分层结构进行读取和/或写入(在一些情况下使用寄存器中的值指定源和/或目的地地址),无存储器访问操作则并不如此(例如源和目的地都是寄存器)。尽管在一实施例中这个字段还在三种不同的执行存储器地址计算的方式中选择,替换实施例也可以支持更多、更少或不同的执行存储器地址计算的方式。0062 扩充操作字段750其内容。
34、区分各种不同操作中的哪一个将在除基本操作之外被执行。这个字段是针对上下文的。在本发明的一实施例中,这个字段分成类字段768、(alpha)字段752和(beta)字段754。扩充操作字段允许公共操作组在单个指令而不是2、3或4个指令中执行。下面是使用扩充字段750来减少所要求的指令数量的指令(本文稍后将更详尽地描述其术语)的一些示例。0063 说 明 书CN 103460182 A7/21页100064 其中rax是将用于地址生成的基址(base)指针,且其中指示由数据操纵字段(本文稍后将更详尽描述)指定的转换操作。0065 缩放(scale)字段760其内容允许对用于存储器地址生成的索引字段。
35、内容的缩放(例如用于使用2缩放索引+基址的地址生成)。0066 位移(displacement)字段762A其内容用作存储器地址生成的一部分(例如用于使用2缩放索引+基址+位移的地址生成)。0067 位移因子字段762B(注意,位移字段762A直接并置于位移因子字段762B之上指示使用了其中之一或另外一个)其内容用作地址生成的一部分;它指定将根据存储器访问的大小(N)进行缩放的位移因子其中N是存储器访问中的字节数(例如用于使用2缩放索引+基址+缩放的位移的地址生成)。忽略了冗余的低序位并因此位移因子字段的内容由存储器操作数总大小(N)相乘以便生成将在计算有效地址中使用的最终位移。N的值由处理器硬件在运行时基于全操作码字段774(本文稍后描述)和数据操纵字段754C来确定,如本文稍后描述。位移字段762A和位移因子字段762B在它们未用于无存储器访问705指令模板和/或不同的实施例可以仅实现这两个中之一或两个都不实现的意义上是可选的。说 明 书CN 103460182 A10。