CN113885833B 用于经融合的乘加的系统、装置和方法 (英特尔公司)_第1页
CN113885833B 用于经融合的乘加的系统、装置和方法 (英特尔公司)_第2页
CN113885833B 用于经融合的乘加的系统、装置和方法 (英特尔公司)_第3页
CN113885833B 用于经融合的乘加的系统、装置和方法 (英特尔公司)_第4页
CN113885833B 用于经融合的乘加的系统、装置和方法 (英特尔公司)_第5页
已阅读5页,还剩110页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

201680089435.52016.10.20M.J.查尼据源操作数的紧缩数据元素具有与第三紧缩数据操作数的紧缩数据元素的第二大小不同的第源的紧缩数据元素定位相对应的M个N大小的紧第三紧缩数据源的紧缩数据元素定位的全大小缩数据源的紧缩数据元素定位相对应的紧缩数据元素定位目的地中,其中M等于全大小紧缩数2数据源操作数的紧缩数据元素具有第一尺寸,并且所述紧缩数据源/目的地操作数的紧缩所述执行逻辑根据所述单条指令的所述操作码、针对所述紧缩数据源/目的地操作数的每对来自所述第一紧缩数据源操作数的对应紧缩数据元素位置的多个紧缩数据字节进对来自所述第二紧缩数据源操作数的对应紧缩数据元素位置的多个紧缩数据字节进将来自所述第一紧缩数据源操作数的经符号扩展的多个紧缩数据字节中的每一个与将所述多个结果与所述紧缩数据源/目的地操作数的对应紧缩数据元素位置的、具有将所述加法结果存储在所述紧缩数据源/目的地操作数的所述对应紧缩数据元素位置4.如权利要求1至3中的任一项所述的装置,其中,所述执5.如权利要求1至3中的任一项所述的装置,在处理器的解码器中对单条指令解码,所述单条指令具有操作3据源操作数的紧缩数据元素具有第一尺寸,并且所述紧缩数据源/目的地操作数的紧缩数在耦合至所述解码器的执行逻辑中,根据所述单条指令的所数据源/目的地操作数的每个紧缩数据元素对来自所述第一紧缩数据源操作数的对应紧缩数据元素位置的多个紧缩数据字节进对来自所述第二紧缩数据源操作数的对应紧缩数据元素位置的多个紧缩数据字节进将来自所述第一紧缩数据源操作数的经符号扩展的多个紧缩数据字节中的每一个与将所述多个结果与所述紧缩数据源/目的地操作数的对应紧缩数据元素位置的、具有将所述加法结果存储在所述紧缩数据源/目的地操作数的所述对应紧缩数据元素位置15.一种非暂时性机器可读介质,包括指令,所述指令当由处理器执行时使所述处理在所述处理器的解码器中对所述指令解码,所述指令具有操作据源操作数的紧缩数据元素具有第一尺寸,并且所述紧缩数据源/目的地操作数的紧缩数所述紧缩数据源/目的地操作数的每个紧缩数据元素位置来对来自所述第一紧缩数据源操作数的对应紧缩数据元素位置的多个紧缩数据字节进4对来自所述第二紧缩数据源操作数的对应紧缩数据元素位置的多个紧缩数据字节进将来自所述第一紧缩数据源操作数的经符号扩展的多个紧缩数据字节中的每一个与将所述多个结果与所述紧缩数据源/目的地操作数的对应紧缩数据元素位置的、具有将所述加法结果存储在所述紧缩数据源/目的地操作数的所述对应紧缩数据元素位置所述处理器执行时使所述处理器对来自所述第一紧缩数据源操作数的多个紧缩数据字节所述处理器执行时使所述处理器对来自所述第二紧缩数据源操作数的多个紧缩数据字节作数的紧缩数据元素具有第一尺寸,并且所述紧缩数据源/目的地操作数的紧缩数据元素执行逻辑根据所述单条指令的所述操作码、针对所述紧缩数据源/目的地操作数的每个紧对来自所述第一紧缩数据源操作数的对应紧缩数据元素位置的多个紧缩数据字节进5对来自所述第二紧缩数据源操作数的对应紧缩数据元素位置的多个紧缩数据字节进将来自所述第一紧缩数据源操作数的经符号扩展的多个紧缩数据字节中的每一个与将所述多个结果与所述紧缩数据源/目的地操作数的对应紧缩数据元素位置的、具有将所述加法结果存储在所述紧缩数据源/目的地操作数的所述对应紧缩数据元素位置27.如权利要求22至24中的任一项所述的系28.如权利要求22至24中的任一项所述的系数据源操作数的紧缩数据元素具有第一尺寸,并且所述紧缩数据源/目的地操作数的紧缩所述执行逻辑根据所述单条指令的所述操作码、针对所述紧缩数据源/目的地操作数的每对来自所述第一紧缩数据源操作数的对应紧缩数据元素位置的多个紧缩数据字进行对来自所述第二紧缩数据源操作数的对应紧缩数据元素位置的多个紧缩数据字进行将来自所述第一紧缩数据源操作数的对应紧缩数据元素位置的多个经符号扩展的紧6缩数据字中的每一个与来自所述第二紧缩数据源操作数的对应紧缩数据元素位置的多个将所述多个结果与所述紧缩数据源/目的地操作数的对应紧缩数据元素位置的、具有将所述加法结果存储在所述紧缩数据源/目的地操作数的所述对应紧缩数据元素位置34.如权利要求29至31中的任一项所述的35.如权利要求29至31中的任一项所述的在处理器的解码器中对单条指令解码,所述单条指令具有操作据源操作数的紧缩数据元素具有第一尺寸,并且所述紧缩数据源/目的地操作数的紧缩数针对所述紧缩数据源/目的地操作数的每个紧缩数据元素对来自所述第一紧缩数据源操作数的对应紧缩数据元素位置的多个紧缩数据字进行对来自所述第二紧缩数据源操作数的对应紧缩数据元素位置的多个紧缩数据字进行将来自所述第一紧缩数据源操作数的对应紧缩数据元素位置的多个经符号扩展的紧缩数据字中的每一个与来自所述第二紧缩数据源操作数的对应紧缩数据元素位置的多个将所述多个结果与所述紧缩数据源/目的地操作数的对应紧缩数据元素位置的、具有将所述加法结果存储在所述紧缩数据源/目的地操作数的所述对应紧缩数据元素位置7缩数据源/目的地操作数的宽度为128位时,执行所述相乘、所述加法和所述存储的4次迭缩数据源/目的地操作数的宽度为256位时,执行所述相乘、所述加法和所述存储的8次迭43.一种非暂时性机器可读介质,包括指令,所述指令当由处理器执行时使所述处理在所述处理器的解码器中对所述指令解码,所述指令具有操作据源操作数的紧缩数据元素具有第一尺寸,并且所述紧缩数据源/目的地操作数的紧缩数所述紧缩数据源/目的地操作数的每个紧缩数据元素位置来对来自所述第一紧缩数据源操作数的对应紧缩数据元素位置的多个紧缩数据字进行对来自所述第二紧缩数据源操作数的对应紧缩数据元素位置的多个紧缩数据字进行将来自所述第一紧缩数据源操作数的对应紧缩数据元素位置的多个经符号扩展的紧缩数据字中的每一个与来自所述第二紧缩数据源操作数的对应紧缩数据元素位置的多个将所述多个结果与所述紧缩数据源/目的地操作数的对应紧缩数据元素位置的、具有将所述加法结果存储在所述紧缩数据源/目的地操作数的所述对应紧缩数据元素位置8所述处理器执行时使所述处理器对来自所述第一紧缩数据源操作数的多个紧缩数据字进作数的紧缩数据元素具有第一尺寸,并且所述紧缩数据源/目的地操作数的紧缩数据元素执行逻辑根据所述单条指令的所述操作码、针对所述紧缩数据源/目的地操作数的每个紧对来自所述第一紧缩数据源操作数的对应紧缩数据元素位置的多个紧缩数据字进行对来自所述第二紧缩数据源操作数的对应紧缩数据元素位置的多个紧缩数据字进行将来自所述第一紧缩数据源操作数的对应紧缩数据元素位置的多个经符号扩展的紧缩数据字中的每一个与来自所述第二紧缩数据源操作数的对应紧缩数据元素位置的多个将所述多个结果与所述紧缩数据源/目的地操作数的对应紧缩数据元素位置的、具有将所述加法结果存储在所述紧缩数据源/目的地操作数的所述对应紧缩数据元素位置53.如权利要求49至51中的任一项所述的954.如权利要求49至51中的任一项所述的数据源操作数的紧缩数据元素具有第一尺寸,并且所述紧缩数据源/目的地操作数的紧缩所述执行逻辑根据所述单条指令的所述操作码、针对所述紧缩数据源/目的地操作数的每对来自所述第一紧缩数据源操作数的对应紧缩数据元素位置的多个紧缩有符号数据对来自所述第二紧缩数据源操作数的对应紧缩数据元素位置的多个紧缩无符号数据将来自所述第一紧缩数据源操作数的经符号扩展的多个紧缩有符号数据字节中的每一个与来自所述第二紧缩数据源操作数的经零扩展的多个紧缩无符号数据字节中的对应将所述多个结果与所述紧缩数据源/目的地操作数的对应紧缩数据元素位置的、具有将所述加法结果或所述饱和的加法结果存储在所述紧缩数据源/目的地操作数的所述58.如权利要求55至57中的任一项所述的59.如权利要求55至57中的任一项所述的在处理器的解码器中对单条指令解码,所述单条指令具有操作据源操作数的紧缩数据元素具有第一尺寸,并且所述紧缩数据源/目的地操作数的紧缩数在耦合至所述解码器的执行逻辑中,根据所述单条指令的所数据源/目的地操作数的每个紧缩数据元素对来自所述第一紧缩数据源操作数的对应紧缩数据元素位置的多个紧缩有符号数据对来自所述第二紧缩数据源操作数的对应紧缩数据元素位置的多个紧缩无符号数据将来自所述第一紧缩数据源操作数的经符号扩展的多个紧缩有符号数据字节中的每一个与来自所述第二紧缩数据源操作数的经零扩展的多个紧缩无符号数据字节中的对应将所述多个结果与所述紧缩数据源/目的地操作数的对应紧缩数据元素位置的、具有将所述加法结果或所述饱和的加法结果存储在所述紧缩数据源/目的地操作数的所述缩数据源/目的地操作数的宽度为128位时,执行所述相乘、所述加法和所述存储的4次迭缩数据源/目的地操作数的宽度为256位时,执行所述相乘、所述加法和所述存储的8次迭65.一种非暂时性机器可读介质,包括指令,所述指令当由处理器执行时使所述处理在所述处理器的解码器中对所述指令解码,所述指令具有操作据源操作数的紧缩数据元素具有第一尺寸,并且所述紧缩数据源/目的地操作数的紧缩数所述紧缩数据源/目的地操作数的每个紧缩数据元素位置来对来自所述第一紧缩数据源操作数的对应紧缩数据元素位置的多个紧缩有符号数据对来自所述第二紧缩数据源操作数的对应紧缩数据元素位置的多个紧缩无符号数据将来自所述第一紧缩数据源操作数的经符号扩展的多个紧缩有符号数据字节中的每一个与来自所述第二紧缩数据源操作数的经零扩展的多个紧缩无符号数据字节中的对应将所述多个结果与所述紧缩数据源/目的地操作数的对应紧缩数据元素位置的、具有将所述加法结果或所述饱和的加法结果存储在所述紧缩数据源/目的地操作数的所述作数的紧缩数据元素具有第一尺寸,并且所述紧缩数据源/目的地操作数的紧缩数据元素执行逻辑根据所述单条指令的所述操作码、针对所述紧缩数据源/目的地操作数的每个紧对来自所述第一紧缩数据源操作数的对应紧缩数据元素位置的多个紧缩有符号数据对来自所述第二紧缩数据源操作数的对应紧缩数据元素位置的多个紧缩无符号数据将来自所述第一紧缩数据源操作数的经符号扩展的多个紧缩有符号数据字节中的每一个与来自所述第二紧缩数据源操作数的经零扩展的多个紧缩无符号数据字节中的对应将所述多个结果与所述紧缩数据源/目的地操作数的对应紧缩数据元素位置的、具有将所述加法结果或所述饱和的加法结果存储在所述紧缩数据源/目的地操作数的所述73.如权利要求70至72中的任一项所述的74.如权利要求70至72中的任一项所述的数据源操作数的紧缩数据元素具有第一尺寸,并且所述紧缩数据源/目的地操作数的紧缩所述执行逻辑根据所述单条指令的所述操作码、针对所述紧缩数据源/目的地操作数的每对来自所述第一紧缩数据源操作数的对应紧缩数据元素位置的多个紧缩有符号数据对来自所述第二紧缩数据源操作数的对应紧缩数据元素位置的多个紧缩有符号数据将来自所述第一紧缩数据源操作数的对应紧缩数据元素位置的多个经符号扩展的紧缩有符号数据字中的每一个与来自所述第二紧缩数据源操作数的对应紧缩数据元素位置将所述多个结果与所述紧缩数据源/目的地操作数的对应紧缩数据元素位置的、具有将所述加法结果或所述饱和的加法结果存储在所述紧缩数据源/目的地操作数的所述78.如权利要求75至77中的任一项所述的79.如权利要求75至77中的任一项所述的在处理器的解码器中对单条指令解码,所述单条指令具有操作据源操作数的紧缩数据元素具有第一尺寸,并且所述紧缩数据源/目的地操作数的紧缩数针对所述紧缩数据源/目的地操作数的每个紧缩数据元素对来自所述第一紧缩数据源操作数的对应紧缩数据元素位置的多个紧缩有符号数据对来自所述第二紧缩数据源操作数的对应紧缩数据元素位置的多个紧缩有符号数据将来自所述第一紧缩数据源操作数的对应紧缩数据元素位置的多个经符号扩展的紧缩有符号数据字中的每一个与来自所述第二紧缩数据源操作数的对应紧缩数据元素位置将所述多个结果与所述紧缩数据源/目的地操作数的对应紧缩数据元素位置的、具有将所述加法结果或所述饱和的加法结果存储在所述紧缩数据源/目的地操作数的所述缩数据源/目的地操作数的宽度为128位时,执行所述相乘、所述加法和所述存储的4次迭缩数据源/目的地操作数的宽度为256位时,执行所述相乘、所述加法和所述存储的8次迭85.一种非暂时性机器可读介质,包括指令,所述指令当由处理器执行时使所述处理在所述处理器的解码器中对所述指令解码,所述指令具有操作据源操作数的紧缩数据元素具有第一尺寸,并且所述紧缩数据源/目的地操作数的紧缩数所述紧缩数据源/目的地操作数的每个紧缩数据元素位置来对来自所述第一紧缩数据源操作数的对应紧缩数据元素位置的多个紧缩有符号数据对来自所述第二紧缩数据源操作数的对应紧缩数据元素位置的多个紧缩有符号数据将来自所述第一紧缩数据源操作数的对应紧缩数据元素位置的多个经符号扩展的紧缩有符号数据字中的每一个与来自所述第二紧缩数据源操作数的对应紧缩数据元素位置将所述多个结果与所述紧缩数据源/目的地操作数的对应紧缩数据元素位置的、具有将所述加法结果或所述饱和的加法结果存储在所述紧缩数据源/目的地操作数的所述作数的紧缩数据元素具有第一尺寸,并且所述紧缩数据源/目的地操作数的紧缩数据元素执行逻辑根据所述单条指令的所述操作码、针对所述紧缩数据源/目的地操作数的每个紧对来自所述第一紧缩数据源操作数的对应紧缩数据元素位置的多个紧缩有符号数据对来自所述第二紧缩数据源操作数的对应紧缩数据元素位置的多个紧缩有符号数据将来自所述第一紧缩数据源操作数的对应紧缩数据元素位置的多个经符号扩展的紧缩有符号数据字中的每一个与来自所述第二紧缩数据源操作数的对应紧缩数据元素位置将所述多个结果与所述紧缩数据源/目的地操作数的对应紧缩数据元素位置的、具有将所述加法结果或所述饱和的加法结果存储在所述紧缩数据源/目的地操作数的所述93.如权利要求90至92中的任一项所述的系统,94.如权利要求90至92中的任一项所述的系统,[0001]本申请是PCT国际申请号为PCT/US2016/057991、国际申请日为2016年10月20日、[0008]图1图示了根据实施例的使用不同大小的操作数的经融合的乘法累加指令的示例[0009]图2图示了根据实施例的二次幂大小的SIMD实现方式,其中累加器使用比到乘法[0022]图14A是一框图,其图示了根据本发明的实施例的示例性的特定向量友好的指令[0023]图14B是一框图,其图示了根据本发明的一个实施例的构成全操作码字段的特定[0024]图14C是一框图,其图示了根据本发明的一个实施例的构成寄存器索引字段的特[0025]图14D是一框图,其图示了根据本发明的一个实施例的构成扩增操作字段的特定[0027]图16A是一框图,其图示了根据本发明的实施例的示例性有序的流水线以及示例[0029]图17A是根据本发明的实施例的单个处理器核的框图,所述单个处理器核连同其与管芯上互连网络1702的连接以及连同其2级(L[0043]图2图示了根据实施例的二次幂大小的SIMD实现方式,其中累加器使用比到乘法两倍大小),表201图示了不同的配置。对于字节大小的源,累加器使用字或半精度浮点紧缩数据元素大小是8位的时候,于是累加器将使用来自源31[0044]对于具有4X输入大小的累加器(换言之,累加器输入值是源的紧缩数据元素大小[0045]对于具有8X输入大小的累加器(换言之,累加器输入值是源的紧缩数据元素大小[0046]本文中详述的是用于经融合的乘法累加的指令和电路的实施例。在一些实施例全大小(相对于N大小的紧缩数据元素)紧缩数据元素,并且将(多个)加法的结果存储在与第三源的紧缩数据元素定位相对应的紧缩数据元素定位目的地中,其中M等于全大小紧缩来自第一源的相继紧缩数据元素被乘到第二源的相应源的全大小(相对于一半大小的紧缩数据元素)紧缩数据元素并且将结果存储在目的地中。第一源的数据元素定位[2i+1]的数据与来自第二源的数据元素定位[2i+1]的数据的乘法第一和第二源的四分之一大小的紧缩数据元素四重件(quartet)的乘法,并且将来自这些乘法的结果加到第三源的全大小(相对于四分之一大小的紧缩数据元素)紧缩数据元素并在来自第一源的数据元素定位[4i]的数据与来自第二源的数据元素定位[4i]的数据的乘素定位[4i+3]的数据与来自第二源的数据元素定位[4i+3]的数据的乘法用以生成第二结题是如何并且在何时进行从整数乘积的转换使得不存在从部分项到最终浮点累加的双凑[0052]图3图示了用于处理诸如经融合的乘法累加指令之类的指令的硬件的实施例。如紧缩数据元素的乘法,将来自这些乘法的结果加到第三源的紧缩数据元素定位的全大小(相对于N大小的紧缩数据元素)紧缩数据元素,并且将(多个)加法的结果存储在与第三源的紧缩数据元素定位相对应的紧缩数据元素定位目的地中,其中M等于全大小紧缩数据元[0054]稍后将详述至少一个指令格式的更详细的实施例。解码电路305将指令解码成一存器(寄存器文件)和/或存储器308存储数据,如将由执行电路309在其上操作的指令的操[0058]用于经融合的乘法累加指令的格式的实施例是FMA[SOURCESIZE{B/W/D/Q}]Q}][DESTSIZE{B/W/D/Q}]是指令的操作码和/或前缀。B/W/D/Q将源/目的地的数据元素大SRC2和SRC3是针对诸如紧缩数据寄存器和/或存储[0059]用于经融合的乘法累加指令的格式的实施例是FMA[SOURCESIZE{B/W/D/Q}]Q}][DESTSIZE{B/W/D/Q}]是指令的操作码和/或前缀。B/W/D/Q将源/目的地的数据元素大FMA[SOURCESIZE{B/W/D/Q}][DESTSIZE{B/W/D/Q}]{k}DSTREG/SRC3,SRC1,SRC2或FMA[SOURCESIZE{B/W/D/Q}][DESTSIZE{B/W/D/Q}]{k}DSTREG,SRC1,SRC2,SRC3)的字段。写掩64)、整数四字(整数64)。操作掩码寄存器的长度MAX_XL足以处置多达其中每元素具有一任何数字或非数字操作以及中间结果向目的地操作数的按元素的更新在操作掩码寄存器对应的操作掩码位没有被设置,则针对元素不执行指令的操作(这意味着不能由操作在被提供用于实现控制流预测的通用构造,因为掩码事实上为向量寄存器目的地提供合并行编码在SIB类型的存储器操作数中,则从索引寄存器的元素中所获得的每个索引值可以乘索引寄存器,所述单独元素中的每一个是32位索引值。向量索引寄存器可以是XMM寄存器z}的SIB类型的存储器操作数可以标识通过使用SIB类型的存储器寻址所指定的存储器操索引值。向量索引寄存器可以是XMM寄存器(vm64x)、YMM寄存器(vm64y)、或ZMM寄存器括操作码,以及针对如以上所详述的紧缩数据源操作数以及紧缩数据目的地操作数的字一和第二源的、与第三源的紧缩数据元素定位相对应的M个N大小的紧缩数据元素的乘法,将来自这些乘法的结果加到第三源的紧缩数据元素定位的全大小(相对于N大小的紧缩数据元素)紧缩数据元素,并且将(多个)加法的结果存储在与第三源的紧缩数据元素定位相[0070]第一有符号的源(源1501)和第二有符号的源(源2503)各自具有四个紧缩数据最高有效紧缩数据元素定位的数据通过使用乘法器电路505而被相乘,并且来自第一和第二有符号的源501和503的第二最高有效紧缩数据元素定位的数据通过使用乘法器电路507过使用为有符号的第三源509的大小的道来进行并行执行。每个乘法的结果通过使用加法[0073]乘法结果相加的结果被加到来自有符号的源3509的最高有效紧缩数据元素定位[0074]最后,第二加法的结果被存储到与从有符号的第三源509中所使用的紧缩数据元[0076]第一有符号的源(源1701)和第二有符号的源(源2703)各自具有四个紧缩数据最高有效紧缩数据元素定位的数据通过使用乘法器电路705而被相乘,并且来自第一和第二有符号的源701和703的第二最高有效紧缩数据元素定位的数据通过使用乘法器电路707累加器711是浮点并且输入项是整数的时候,乘积和以及浮点累加器输入值被转变成无限[0080]加法和饱和检查的结果被存储到与从有符号的第三源709中所使用的紧缩数据元[0082]第一有符号的源(源1901)和第二无符号的源(源2903)各自具有四个紧缩数据元素。这些紧缩数据元素中的每一个,诸如浮点或整数数据之类。第三有符号的源(源3和第二源901和903的第三最高有效紧缩数据元素定位的数据通过使用乘法器电路909而被使用为有符号的第三源915的大小的道来进行并行执行。每个乘法的结果通过使用加法电[0086]乘法结果相加的结果被加到来自有符号的源3915的最高有效紧缩数据元素定位[0087]最后,第二加法的结果被存储到与从有符号的第三源909中所使用的紧缩数据元[0089]第一有符号的源(源11101)和第二无符号的源(源21103)各自具有四个紧缩数高有效紧缩数据元素定位的数据通过使用乘法器电路1107而被相乘,来自第一和第二源1101和1103的第二最高有效紧缩数据元素定位的数据通过使用乘法来自第一和第二源1101和1103的第三最高有效紧缩数据元素定位的数据通过使用乘法器[0094]加法和饱和检查的结果被存储到与从有符号的第三源715中所使用的紧缩数据元加法结果存储在与第三紧缩数据源的紧缩数据元素定位相对应的紧缩数据元素定位目的执行电路在乘法之前零扩展第二源的紧缩数据元素并且符号扩展第一源的紧缩数据元素;的紧缩数据元素定位相对应的紧缩数据元素定位目的地中,其中M等于全大小紧缩数据元执行电路在乘法之前零扩展第二源的紧缩数据元素并且符号扩展第一源的紧缩数据元素;紧缩数据源操作数的紧缩数据元素具有与第三紧缩数据操作数的紧缩数据元素的第二大执行电路在乘法之前零扩展第二源的紧缩数据元素并且符号扩展第一源的紧缩数据元素;执行电路在乘法之前零扩展第二源的紧缩数据元素并且符号扩展第一源的紧缩数据元素;[0106]指令集可以包括一个或多个指令格式。给定的指令格式可以定义各种字段(例如位的数目、位的位置)来除了其它事物之外尤其指定将被执行的操作(例如操作码)以及将在其上执行该操作的(多个)操作数和/或(多个)其它数据字段(例如掩码)。尽管有指令模以被定义成具有指令格式字段的不同子集(所包括的字段典型地以相同的次序,但是至少式的指令模板中的给定一个模板)来被表述,并且包括用于指定操作和操作数的字段。例操作码的操作码字段以及用于选择操作数(源1/目的地和源2)的操作数字段;并且该ADD(加法)指令在指令流中的出现将在操作数字段中具有特定的内容,其选择特定的操作数。被称为高级向量扩展(AVX)(AVX1和AVX2)并且使用向量扩展(VEX)编码方案的SIMD扩展集[0110]向量友好指令格式是适合用于向量指令的指令格式(例如存在特定于向量操作的[0111]图13A-13B是框图,其图示了根据本发明的实施例的通用向量友好的指令格式及作数长度(或大小)与32位(4字节)或64位[0114]通用向量友好指令格式1300包括下文中按图13A-13B中所图示的次序所列出的以[0115]格式字段1340——该字段中的特定值(指令格式标识符值)唯一地标识向量友好[0117]寄存器索引字段1344——其内容直接地或通过地址生成而指定源和目的地操作中N可以多达三个源和一个目的地寄存器,但是可替换的实施例可以支持更多或更少的源和目的地是寄存器)。虽然在一个实施例中该字段还在用于执行存储器地址计算的三种不[0119]扩增操作字段1350——其内容区分除了基本操作之外还将执行各种不同操作中的哪一个。该字段是上下文特定的。在本发明的一个实施例中,该字段被划分成类字段[0120]缩放字段1360——其内容允许缩放索引字段的内容以用于存储器地址生成(例[0122]位移因子字段1362B(注意到将位移字段1362A直接并置在位移因子字段1362B上阶位被忽略并且因此,位移因子字段的内容乘以存储器操作数总大小(N)以便生成将在计在如下意义上是可选的:它们不用于非存储器访问1305指令模板和/或不同的实施例可以[0123]数据元素宽度字段1364——其内容区分将使用多个数据元素宽度中的哪一个(在上是可选的:如果仅支持一个数据元素宽度和/或通过使用操作码的某个方面来支持数据[0124]写掩码字段1370——其内容在按数据元素定位的基础上控制目的地向量操作数字段1370的内容在多个写掩码寄存器中选择包含将被使用的写掩码的一个写掩码寄存器代替地或附加地允许掩码写字段1370的内容直接地指存在于不支持即时的通用向量友好格式的实现方式中并且它不存在于不使用即时的指令值(例如分别在图13A-B中针对类字段1368的A[0128]在A类非存储器访问1305指令模板的情况中,阿尔法字段1352被解释为RS字段操作1310和非存储器访问、数据变换类型操作1315指令模板分别指定凑整1352A.1和数据换的实施例可以支持、可以将这两个概念编码到相同字段中或仅仅具有这些概念/字段中[0132]凑整操作控制字段1358——其内容区分要执行凑整操作群组中的哪一个(例如,[0135]在A类存储器访问1320指令模板的情况中,阿尔法字段1352被解释为逐出提示字[0136]向量存储器指令在具有转换支持的情况下执行从存储器的向量加载以及向存储[0140]非暂时性数据是不太可能足够快地被再用以受益于一级高速缓存中高速缓存的[0143]在B类非存储器访问1305指令模板的情况中,贝塔字段1354的部分被解释为RL字的其余部分区分将执行所指定类型的操作中的哪一个。在非存储器访问1305指令模板中,1354的其余部分被解释为凑整操作字段1359A并且异常事件报告被禁用(给定指令不报告[0145]凑整操作控制字段1359A——正如同凑整操作控制字段1358那样,其内容区分要1354的其余部分被解释为向量长度字段1359B,其内容区分将在多个数据向量长度中的哪[0147]在B类存储器访问1320指令模板的情况中,贝塔字段1354的部分被解释为广播字[0148]关于通用向量友好指令格式1300,示出了全操作码字段1374,其包括格式字段图用于通用计算的高性能通用无序核可以仅仅支持B类,主要意图用于图形和/或科学(吞其具有意图用于仅仅支持B类的通用计算的无序执行和寄存器重命名。没有分离的图形核序将被置于(例如,准时制(justintime)编译或静态地被编译)各种不同的可执行形式流代码,所述控制流代码基于受当前执行代码的处理器所支持的指令而选择要执行的例[0153]图14A是一框图,其图示了根据本发明的实施例的示例性的特定向量友好的指令1400可以用于扩展x86指令集,并且因而字段中的一些与在现有x86指令集及其扩展(例如AVX)中所使用的那些类似或相同。该格式保持与具有扩展的现有x86指令集的前缀编码字特定示例,虽然数据元素宽度字段1364在特定向量友好指令格式1400中被图示为一位字[0155]通用向量友好指令格式1300包括下文中按图14A中所图示的次序所列出的以下字[0157]格式字段1340(EVEX字节0,位[7:0])——第一字节(EVEX字节0)是格式字段1340并且它包含0x62(在本发明的一个实施例[0159]REX字段1405(EVEX字节1、位[7-5])——包括EVEX.R位字段(EVEX字节1、位[7]-其它所指示的位进行存储。值1用于对较低16个寄存器进行编码。换言之,通过组合[0161]操作码映射字段1415(EVEX字节1、位[3:0]-mmmm)——其内容对所暗指的前导操[0162]数据元素宽度字段1364(EVEX字节2、位[7]-W)——其由记号EVEX.W来表示。[0163]EVEX.vvvv1420(EVEX字节2、位[6:3]-vvvv)——EVEX.vvvv的作用可以包括以外不同的EVEX位字段用于将指定符大小扩展到3后被提供到解码器的PLA(因此PLA可以在没有修改的情况下执行这些遗留指令的遗留和EVEX格式二者)。尽管较新的指令可以直接作为操作码扩展而使用EVEX前缀编码字段的内[0167]贝塔字段1354(EVEX字节3、位[6:4]-SSS,也已知为EVEX.s2-0、EVEX.r2-0、位反转格式被存储。值1用于对较低16个寄存器进行编码。换言之,通过组合EVEX.V’、[0170]实操作码字段1430(字节4)也被已知为操作码字节。在该字段中指定操作码的部1444的作用可以被总结成两种情形:对目的地寄存器操作数或源寄存器操作数进行编码,或被看作操作码扩展并且不用于对任何指令操作数进行编码。R/M字段1446的作用可以包存储器地址生成。SIB.xxx1454和SIB.bbb1456——这些字段的内容已经在先前关于寄存[0173]位移字段1362A(字节7-10)——当MOD字段1442包含10时,字节7-10是位移字段1362B。该字段的位置与以字节粒度起作用的遗留x86指令集8位的位移(disp8)的位置相disp32形成对比,位移因子字段1362B是disp8的重解释;当使用位移因子字段1362B的时的位移被称为disp8*N。这缩减平均指令长度(用于位移但是具有大得多的范围的单个字操作数的大小来对位移进行缩放以获得按字节的地址偏移)对位移值的解释中有改变。即[0176]图14B是一框图,其图示了根据本发明的一个实施例的构成全操作码字段1374的[0178]图14C是一框图,其图示了根据本发明的一个实施例的构成寄存器索引字段1344的特定向量友好指令格式1400的字段。特别地,寄存器索引字段1344包括REX字段1405、[0180]图14D是一框图,其图示了根据本发明的一个实施例的构成扩增操作字段1350的特定向量友好指令格式1400的字段。当类(U)字段1368包含0时,它表示EVEX.U0(A类1354的其余部分(EVEX字节3、位[6-5]-S2-1)被解释为凑整操作字段1359A,而当RL字段[0183]图15是根据本发明的一个实施例的寄存器架构1500的框图。在所图示的实施例16个zmm寄存器的较低阶256位被叠覆在寄存器ymm0-16上。较低16个zmm寄存器的较低阶其中每个这样的较短的长度是在前长度的一半长;并且没有向量长度字段1359B的指令模模板在紧缩或标量单精度/双精度浮点数据以及紧缩或标量整数数据上操作。标量操作是在zmm/ymm/xmm寄存器中的最低阶数据元素定位上执行的操作;要么使得较高阶数据元素现有的x86寻址模式一起被使用以对存储器操作数进行寻址。这些寄存器通过名称RAX、图用于图形和/或科学(吞吐量)的专用核。这样的不同的处理器导致不同的计算机系统架在相同管芯上包括所述CPU(有时被称为(多个)应用核或(多个)应用处理器)、上述协处理[0195]图16A是一框图,其图示了根据本发明的实施例的示例性有序的流水线以及示例转换后备缓冲器(TLB)1636耦合到指令取出单元1638,所述指令取出单元1638耦合到解码在解码单元1640中或以其它方式在前端单元1630内)。解码单元1640耦合到执行引擎单元和(多个)执行集群1660被示出为可能是复数的,因为某些实施例为某些类型的数据/操作使用分离的流水线的情况中,这些流水线中的一个或多个可以是无序发布/执行并且其余[0201]作为示例,示例性寄存器重命名、无序发布/执行核架构可以如下实现流水线1600:1)指令取出1638执行取出和长度解码级1602和1604;2)解码单元1640执行解码级1606;3)重命名/分配器单元1652执存器(多个)文件(多个)单元1658执行写回/存储器写入级1618;7)在异常处置级1622中可[0202]核1690可以支持一个或多个指令集(例如x86指令集(具有在较新版本的情况下已[0203]应当理解的是,核可以支持多线程化(执行操作或线程的速缓存单元1634/1674以及共享的L2高速缓存单元1676,但是可替换的实施例可以具有用[0206]图17A-B图示了更特定的示例性有序核架构的框图,所述核将是芯片中若干逻辑[0207]图17A是根据本发明的实施例的单个处理器核的框图,所述单个处理器核连同其与管芯上互连网络1702的连接以及连同其2级(L2)高速缓存1704的局部子集;在一个实施对高速缓存存储器的低等待时间访问进入到标量和向量单元中。虽然在一个实施例中(为1712和向量寄存器1714),并且在它们之间传递的数据被写入到存储器,并且然后从1级(L1)高速缓存1706中读回,但是本发明的可替换的实施例可以使用不同的途径(例[0209]图17B是根据本发明的实施例的图17A中的处理器核的部分的展开视图。图17B包括L1高速缓存1704的L1数据高速缓存1706A部分,以及关于向量单元1710和向量寄存器其执行整数、单精度浮动、以及双精度浮动指令中的一个或多个。VPU支持利用拌和单元1720来拌和寄存器输入,利用数值转换单元1722A-B来进行数值转换,以及利用复制单元通信处理器、压缩引擎、图形处理器、GPGP例中,基于环的互连单元1812互连着集成图形逻辑1808(集成图形逻辑1808是专用逻辑的示例并且在本文中还被称为专用逻辑)、该组共享高速缓存单元1806、以及系统代理单元1810/(多个)集成存储器控制器单元1814,但是可替换的实施例可以使用任何数目的众所够并入如本文中所公开的处理器和/或其它执行逻辑的各种各样的系统或电子设备通常是器中枢1920包括图形存储器控制器中枢(GMCH)1990以及输入/输出中枢(IOH)1950(其可以[0219]存储器1940可以是例如动态随机存取存储器(DRAM)、相变存储器(PCM)或二者的指令内嵌入的可以是协处理器指令。处理器1910将这些协处理器指令识别为具有如下类协处理器1945接受并且执行所接收的协处理线2016可以是外围组件互连(PCI)总线,或是诸如PCI快速总线或另一第三代I/O互连总线[0230]图21图示了处理器2070、2080可以分别包括集成存储器和I/O控制逻辑(“CL”)可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元[0234]程序代码可以用高级过程性或面向对象的编程语言来被实现以与处理系统通

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论