向量友好指令格式及其执行的制作方法

文档序号:6484683阅读:152来源:国知局
向量友好指令格式及其执行的制作方法
【专利摘要】一种向量友好指令格式及其执行。根据本发明的一种实施例,一种处理器被配置为执行指令集。该指令集包括向量友好指令格式。该向量友好指令格式具有多个字段,多个字段包括基操作字段、修饰符字段、增加操作字段和数据元素宽度字段,其中,第一指令格式通过将不同的值放置在基操作字段、修饰符字段、α字段、β字段和数据元素宽度字段中来支持不同版本的基操作和不同的增加操作,且其中,在指令流中以第一指令格式的指令每次出现时,不同值中的仅一个可以被放置在基操作字段、修饰符字段、α字段、β字段和数据元素宽度字段中的每一个中。
【专利说明】向量友好指令格式及其执行
[0001]对相关申请的交叉引用
[0002]本申请要求于2011年4月I日提交的美国临时申请第61/471,043号的权益,该临时申请通过引用合并于此。
[0003]背景
[0004]领域
[0005]本发明的各实施例涉及计算机领域,且尤其涉及受处理器支持的指令集。
[0006]直量
[0007]指令集,或指令集体系结构(ISA),是与编程相关的计算机体系结构的一部分,包括原生数据类型、指令、寄存器体系结构、寻址模式、存储器体系结构、中断和异常处理和外部输入和输出(I/O)。应注意,术语“指令”在此通常是指宏指令——即是说,被提供给处理器以供执行的指令——而不是微指令或微操作码——微指令或微操作码是处理器的解码器解码宏指令的结果。
[0008]指令集体系结构不同于微体系结构,微体系结构是被用来实现指令集的一组处理器设计技术。带有不同微体系结构的处理器可以共享通用指令集。例如,英特尔奔腾4处理器、英特尔酷睿(Core)处理器和加利福尼亚州桑尼维尔市超微半导体有限公司的处理器实现几乎相同的版本的x86指令集(且新近版本已增加了 一些扩展),但具有不同的内部设计。例如,在不同微体系结构中,可以使用公知的技术以不同的方式实现相同的ISA寄存器体系结构,这些公知的技术包括专用物理寄存器、使用寄存器重命名机制(例如,使用如美国专利第5,446,912号中所述的寄存器别名表(RAT)、重新排序缓冲器(ROB)和隐退(retirement)寄存器文件;使用如美国专利第5,207,132号中所描述的寄存器的多个映射和池)的一个或多个动态分配的物理寄存器,等等。除非以另外方式指定,在此使用短语寄存器体系结构、寄存器文件和寄存器来指代对软件/程序员可见的设备和指令指定寄存器的方式。在要求区分时,将使用形容词“逻辑的”、“体系结构的”或“软件可见的”来指示寄存器体系结构中的寄存器/文件,同时使用不同的形容词来指派给定的微体系结构中的寄存器(例如,物理寄存器、重新排序缓冲器、隐退寄存器、寄存器池)。
[0009]指令集包括一种或多种指令格式。给定的指令格式定义各种字段(比特的数量、比特的位置)以便指定要执行的操作和对其执行该操作的(多个)操作数,以及其他。通过指令模板(或子格式)的定义,进一步细分一些指令格式。例如,给定指令格式的指令模板可以被定义为具有指令格式的字段的不同子集(所包括的字段通常是以相同的次序,但是至少一些因为存在较少的所包括的字段而具有不同的比特位置)和/或被定义为具有不同地解释的给定字段。使用给定的指令格式(且,如果已定义,是以该指令格式的指令模板中的给定的一个)来表达给定指令并指定操作和操作数。指令流是特定的指令序列,其中序列中的每一指令是以一种指令格式(且,如果已定义,是以该指令格式的指令模板中的指定的一个)的指令的发生。
[0010]科学、金融、自动向量化通用目的、RMS (识别、挖掘和合成)/可视和多媒体应用(例如,2D/3D图形、图像处理、视频压缩/解压缩、语音识别算法和音频操纵)常常要求对大量的数据项执行相同的操作(被称为“数据并行性”)。单指令多数据(SMD)是指引起处理器对多个数据项执行相同的操作的指令类型。SMD技术尤其适合可以逻辑上将寄存器中的比特分成多个固定大小的数据元素(其中的每一个表示不同的值)的处理器。例如,64-比特寄存器中的比特可以被指定为作为四个不同的16-比特数据元素操作的源操作数,其中的每一个表示不同的16-比特值。这种类型的数据被称为经封装数据类型或向量数据类型,且这种数据类型的操作数被称为经封装数据操作数或向量操作数。换句话说,经封装数据项或向量是指经封装数据元素的序列;且经封装数据操作数或向量操作数是SMD指令(也称为经封装数据指令或向量指令)的源操作数或目的地操作数。
[0011]作为示例,一种类型的SIMD指令指定单个向量操作,以垂直方式对两个源向量操作数执行该单个向量操作,以便生成相同大小的、带有相同数量的数据元素且以相同的数据元素次序的目的地向量操作数(也称为结果向量操作数)。源向量操作数中的数据元素被称为源数据元素,而目的地向量操作数中的数据元素是指目的地或结果数据元素。这些源向量操作数具有相同的大小且包含相同宽度的数据元素,且因而它们包含相同数量的数据元素。两个源向量操作数中的相同的比特位置中的源数据元素形成一对数据元素(也称为相应的数据元素)。对这些源数据元素对中的每一对分别执行由该SIMD指令指定的操作,以便生成匹配数量的结果数据元素,且因而每一对源数据元素具有相应的结果数据元素。由于操作是垂直的,且由于结果向量操作数具有相同的大小、具有相同数量的数据元素,且结果数据元素以相同的数据元素次序被存储为源向量操作数,因此结果数据元素处于结果向量操作数中的、与源向量操作数中它们的相应的源数据元素对的相同的比特位置。除了这种示例性类型的SMD指令之外,存在各种其他类型的SMD指令(例如,具有仅一个或具有多于两个的源向量操作数的SMD指令;以水平方式操作的SMD指令;生成具有不同的大小、具有不同大小的数据元素和/或具有不同的数据元素次序的结果向量操作数的SIMD指令)。应理解,术语“目的地向量操作数(或目的地操作数)”被定义为执行由指令指定的操作的直接结果,该指定的操作包括将该目的地操作数存储在一个位置(该位置是寄存器或处于由该指令指定的存储器地址)以使得它可以作为源操作数由另一指令访问(通过另一指令对该相同的位置的指定)。
[0012]SIMD 技术,例如由具有包括 x86、SMD 扩展(SSE)、SSE2、SSE3、SSE4.1 和SSE4.2指令的指令集的英特尔?酷睿?处理器采用的SMD技术,已经允许显著改善应用性能(酷睿?和MMX?是加利福尼亚州圣克拉拉市的英特尔公司的注册商标或商标)。已经公布被称为高级向量扩展(AVX)且使用VEX编码方案的另外的未来SMD扩展集。
[0013]附图简述
[0014]通过参考下列描述和用来阐释本发明的实施例的附图可以最佳地理解本发明。附图中:
[0015]图1A是阐释根据本发明的一种实施例仅具有以向量友好指令格式的指令的指令流的框图;
[0016]图1B是阐释根据本发明的一种实施例带有以多种指令格式的指令的指令流的框图;
[0017]图2A是阐释根据本发明的实施例的通用向量友好指令格式及其类A指令模板的框图;[0018]图2B是阐释根据本发明的实施例的通用向量友好指令格式及其类B指令模板的框图;
[0019]图3A是阐释根据本发明的实施例的示例性专用向量友好指令格式的框图;
[0020]图3B是阐释根据本发明的一种实施例的、构成完全操作码字段274的专用向量友好指令格式300的字段的框图;
[0021]图3C是阐释根据本发明的一种实施例的、构成寄存器索引字段244的专用向量友好指令格式300的字段的框图;
[0022]图3D是阐释根据本发明的一种实施例的、构成增加操作字段(augmentationoperation) 250的专用向量友好指令格式300的字段的框图;
[0023]图4A是示出根据本发明的一种实施例的向量友好指令格式的字段中的一些字段的相互关系的流程图的一部分;
[0024]图4B是示出根据本发明的一种实施例的向量友好指令格式的字段中的一些字段的相互关系的流程图的第二部分;
[0025]图4C是示出根据本发明的一种实施例的向量友好指令格式的字段中的一些字段的相互关系的流程图的第三部分;
[0026]图4D是示出根据本发明的一种实施例的向量友好指令格式的字段中的一些字段的相互关系的流程图的其余部分;
[0027]图4E是根据本发明的一种实施例的框415A-H中的每一个的分解图;
[0028]图5是根据本发明的一种实施例的寄存器体系结构500的框图;
[0029]图6A是根据本发明的实施例用于无存储器访问类型操作的寄存器索弓I字段244的流程图;
[0030]图6B是阐释根据本发明的实施例的将寄存器索引字段244、比例字段260、位移量字段262A和位移因子字段262B用于存储器访问类型操作的流程图;
[0031]图6C是阐释根据本发明的实施例在disp8、disp32和经缩放位移量的变化之间的差异的表;
[0032]图7A是阐释根据本发明的实施例可以由舍入控制字段254A指定的一组可能的操作的表;
[0033]图7B是阐释根据本发明的实施例可以由舍入控制字段259A指定的一组可能的操作的表;
[0034]图8A是阐释根据本发明的实施例在数据元素宽度是64比特时可以由数据变换字段254B指定的一组可能的数据变换操作的表;
[0035]图SB是阐释根据本发明的实施例在数据元素宽度是32比特时可以由数据变换字段254B指定的一组可能的数据变换操作的表;
[0036]图9是阐释根据本发明的实施例的叉乘调序(swizzle) 815的框图;
[0037]图1OA是阐释根据本发明的实施例跨越4元素分组820广播元素的框图;
[0038]图1OB是阐释根据本发明的实施例广播用于32比特数据元素宽度的I元素粒度的框图;
[0039]图1OC是阐释根据本发明的实施例广播用于32比特数据元素宽度的4元素粒度的框图;[0040]图1lA是阐释根据本发明的实施例可以由操作码映射字段指定的一组可能的操作码映射的表;
[0041]图1lB是阐释根据本发明的实施例可以由操作码映射字段指定的一组可能的前缀编码的表;
[0042]图12A是阐释根据本发明的实施例在数据元素宽度是64比特时可以由数据操纵字段(data manipulation field)254C和广播字段257B指定的用于加载/操作整数(load/op int)的一组可能的数据操纵操作的表;
[0043]图12B是阐释根据本发明的实施例在数据元素宽度是32比特时可以由数据操纵字段254C和广播字段257B指定的用于加载/操作整数的一组可能的数据操纵操作的表;
[0044]图12C是阐释根据本发明的实施例在数据元素宽度是64比特时可以由数据操纵字段254C和广播字段257B指定的用于加载/操作浮点数的一组可能的数据操纵操作的表;
[0045]图12D是阐释根据本发明的实施例在数据元素宽度是32比特时可以由数据操纵字段254C和广播字段257B指定的用于加载/操作浮点数(load/op fp)的一组可能的数据操纵操作的表;
[0046]图13A是阐释根据本发明的实施例在数据元素宽度是64比特时可以由数据操纵字段254C指定的用于加载/操作整数的一组可能的数据操纵操作的表;
[0047]图13B是阐释根据本发明的实施例在数据元素宽度是32比特时可以由数据操纵字段254C指定的用于加载/操作整数的一组可能的数据操纵操作的表;
[0048]图13C是阐释根据本发明的实施例在数据元素宽度是64比特时可以由数据操纵字段254C指定的用于加载/操作浮点数的一组可能的数据操纵操作的表;
[0049]图13D是阐释根据本发明的实施例在数据元素宽度是32比特时可以由数据操纵字段254C指定的用于加载/操作浮点数的一组可能的数据操纵操作的表;
[0050]图14A是阐释根据本发明的实施例在数据元素宽度是64比特时可以由数据操纵字段254C指定的用于存储整数(store int)的一组可能的数据操纵操作的表;
[0051]图14B是阐释根据本发明的实施例在数据元素宽度是32比特时可以由数据操纵字段254C指定的用于存储整数的一组可能的数据操纵操作的表;
[0052]图14C是阐释根据本发明的实施例在数据元素宽度是64比特时可以由数据操纵字段254C指定的用于存储浮点数(store fp)的一组可能的数据操纵操作的表;
[0053]图14D是阐释根据本发明的实施例在数据元素宽度是32比特时可以由数据操纵字段254C指定的用于存储浮点数的一组可能的数据操纵操作的表;
[0054]图15A是阐释根据本发明的实施例在数据元素宽度是32比特时可以由数据操纵字段254C指定的用于加载图形(load graphics)的一组可能的数据操纵操作的表;
[0055]图15B是阐释根据本发明的实施例在数据元素宽度是32比特时可以由数据操纵字段254C指定的用于加载经封装图形(load packed graphics)的一组可能的数据操纵操作的表;
[0056]图15C是阐释根据本发明的实施例在数据元素宽度是32比特时可以由数据操纵字段254C指定的用于存储图形(store graphics)的一组可能的数据操纵操作的表;
[0057]图16A是阐释根据本发明的实施例在数据元素宽度是32比特且第二源和目的地相同时使用写掩码寄存器Kl中的写掩码来归并的示例性操作1600的框图;
[0058]图16B是阐释根据本发明的实施例在数据元素宽度是32比特且第二源和目的地相同时使用全部为I的硬布线掩码(硬布线写掩码由指定写掩码寄存器KO的指令使用)来归并的示例性操作1625的框图;
[0059]图16C是阐释根据本发明的实施例对于8、16、32和64比特数据元素宽度写掩码寄存器中的比特与512比特向量的数据元素位置的对应关系的框图;
[0060]图16D是阐释根据本发明的实施例在数据元素宽度是32比特且第二源和目的地不相同时使用写掩码寄存器Kl中的写掩码来归并的示例性操作1660的框图;
[0061]图16E是阐释根据本发明的实施例在数据元素宽度是32比特且第二源和目的地不相同时使用写掩码寄存器Kl中的写掩码来归零的示例性操作1666的框图;
[0062]图17A阐释根据本发明的实施例的来自示例性专用向量友好指令格式的字段的子集;
[0063]图17B阐释根据本发明的实施例的来自图17A的专用向量友好指令格式中所编码的示例性专用向量友好指令的字段的子集;
[0064]图17C阐释根据本发明的实施例的来自图17A的专用向量友好指令格式中所编码的示例性专用向量友好指令的字段的子集;
[0065]图17D阐释根据本发明的实施例的来自图17A的专用向量友好指令格式中所编码的示例性专用向量友好指令的字段的子集;
[0066]图18A阐释根据本发明的实施例的来自示例性专用向量友好指令格式的字段的子集;
[0067]图18B阐释根据本发明的实施例来自以图18A的专用向量友好指令格式编码的示例性专用向量友好指令的字段的子集;
[0068]图18C阐释根据本发明的实施例来自以图18A的专用向量友好指令格式编码的示例性专用向量友好指令的字段的子集;
[0069]图18D阐释根据本发明的实施例来自以图18A的专用向量友好指令格式编码的示例性专用向量友好指令的字段的子集;
[0070]图18E阐释根据本发明的实施例来自以图18A的专用向量友好指令格式编码的示例性专用向量友好指令的字段的子集;
[0071]图18F阐释根据本发明的实施例来自以图18A的专用向量友好指令格式编码的示例性专用向量友好指令的字段的子集;
[0072]图19A是阐释根据本发明的实施例的无存储器访问、类A的完全舍入控制类型操作210指令模板的哪些字段被用于第一示例性处理器流水线的不同阶段的框图;
[0073]图19B是阐释根据本发明的实施例的无存储器访问、类A的数据变换类型操作215指令模板的哪些字段被用于第一示例性处理器流水线的不同阶段的框图;
[0074]图19C是阐释根据本发明的实施例的类A的存储器访问220指令模板的哪些字段被用于第一示例性处理器流水线的不同阶段的框图;
[0075]图20A是阐释根据本发明的实施例的无存储器访问、类A的完全舍入控制类型操作210指令模板的哪些字段被用于第二示例性处理器流水线的不同阶段的框图;
[0076]图20B是阐释根据本发明的实施例的无存储器访问、类A的数据变换类型操作215指令模板的哪些字段被用于第二示例性处理器流水线的不同阶段的框图;
[0077]图20C是阐释根据本发明的实施例的类A的存储器访问220指令模板的哪些字段被用于第二示例性处理器流水线的不同阶段的框图;
[0078]图21A是阐释根据本发明的实施例的无存储器访问、类A的完全舍入控制类型操作210指令模板的哪些字段被用于第三示例性处理器流水线的不同阶段的框图;
[0079]图21B是阐释根据本发明的实施例的无存储器访问、类A的数据变换类型操作215指令模板的哪些字段被用于第三示例性处理器流水线的不同阶段的框图;
[0080]图21C是阐释根据本发明的实施例的类A的存储器访问220指令模板的哪些字段被用于第三示例性处理器流水线的不同阶段的框图;
[0081]图22A是阐释根据本发明的实施例的无存储器访问、类A的完全舍入控制类型操作210指令模板的哪些字段被用于第四示例性处理器流水线的不同阶段的框图;
[0082]图22B是阐释根据本发明的实施例的无存储器访问、类A的数据变换类型操作215指令模板的哪些字段被用于第四示例性处理器流水线的不同阶段的框图;
[0083]图22C是阐释根据本发明的实施例的类A的存储器访问220指令模板的哪些字段被用于第四示例性处理器流水线的不同阶段的框图;
[0084]图23A是根据本发明的实施例的单个CPU核心及其到片内互连网络2302的连接以及其2级(L2)高速缓存2304的本地子集的框图;
[0085]图23B是根据本发明的实施例图23A中的CPU核心的部分的分解图;
[0086]图24是阐释根据本发明的实施例的示例性乱序体系结构的框图;
[0087]图25是根据本发明的实施例的系统2500的框图;
[0088]图26是根据本发明的实施例的第二系统2600的框图;
[0089]图27是根据本发明的实施例的第三系统2700的框图;
[0090]图28是根据本发明的实施例的SoC2800的框图;
[0091]图29是根据本发明的实施例的带有集成的存储器控制器和图形的单核心处理器和多核心处理器2900的框图;以及
[0092]图30是对照根据本发明的实施例使用软件指令转换器来将源指令集中的二进制指令转换到目标指令集中的二进制指令的框图。
[0093]各实施例的描述
[0094]在下列描述中,陈述了诸如逻辑实现操作码、指定操作数的方式、资源划分/共享/复制实现、系统组件的类型和相互关系以及逻辑划分/集成选择等的众多特定细节,以便提供对本发明的更透彻的理解。然而,本领域中的技术人员应明白,可以不需要这样的特定细节就实践本发明。在其他实例中,没有详细示出控制结构、门级电路和完全软件指令序列,以便不模糊本发明。借助于所包括的描述,本领域中的普通技术人员无需过度的实验就可以实现适当的功能性。
[0095]还应明白,贯穿本说明书例如对“ 一种实施例”、“ 一实施例”或“ 一个或多个实施例”的引用,意味着在本发明的实施例的实践中可以包括具体的特征,但是每一实施例并不必定包括具体的特征。类似地,应明白,出于简化本公开并帮助理解各种创造性方面的目的,在单个实施例、图或其描述中有时将各种特征的描述分组在一起。进一步,在结合实施例描述具体的特征、结构或特性时,无论是否明确地描述,宣布这是在本领域的技术人员实现结合其他实施例来实现这样的特征、结构或特性的知识范围内。然而,这种公开方法不应被解释为反映本发明需要比每一权利要求中明确记载的更多的功能的意图。相反,如下列权利要求所反映的,创造性方面可能存在于少于一个单一公开实施例的所有特征。因而,详细描述之后的权利要求据此明确地被合并该详细描述中,且每一权利要求独立成为本发明的单独的实施例。
[0096]在下列描述和权利要求中,可以使用术语“耦合”和“连接”以及它们的派生词。应理解,这些术语不预期是相互的同义词。“耦合”被用来指示两个或更多个元素,这些两个或更多个元素可以或可以不与彼此直接物理接触或电接触、共操作或相互交互。“连接”用来指示在相互耦合的两个或更多个元素之间的通信的建立。
[0097]将参考各框图的示例性实施例来描述各流程图的操作。然而,应理解,可以由不同于参考框图所讨论的那些实施例的本发明的实施例执行各流程图的操作,且参考框图所讨论的各实施例可以执行不同于参考流程图所讨论的那些操作的操作。
[0098]为便于理解,图中已经使用虚线来表示某些项的可选属性(例如,本发明的给定实现不支持的特征;给定实现所支持的但用于一些情形且不用于其他情形的特征)。
[0099]向暈友好指令格式——图1-16
[0100]向量友好指令格式是适用于向量指令的指令格式(例如,存在向量操作专用的某些字段)。尽管描述了其中通过向量友好指令格式支持向量和标量操作两者的实施例,但备选实施例仅使用向量操作向量友好指令格式。
[0101]指令格式的数量——图1A-1B
[0102]一种指令格式——图1A
[0103]图1A是阐释根据本发明的一种实施例的仅具有以向量友好指令格式的指令的指令流的框图。该指令流包括全都以向量友好格式100A-100J的J个指令的序列。在本发明的一种实施例中,处理器仅支持向量指令格式且可以执行这一指令流。
[0104]多种指令格式-图1B
[0105]图1B是阐释根据本发明的一种实施例的带有以多种指令格式的指令的指令流的框图。以向量友好指令格式、第二格式或第三格式表示该指令流中的每一指令。该指令流包括J指令110A-110J。在本发明的一种实施例中,处理器支持多种指令格式(包括图1B中所示出的格式)且可以执行图1A-1B两者中的指令流。
[0106]示例性通用向量友好指令格式——图2A-B
[0107]图2A-B是阐释根据本发明的实施例的通用向量友好指令格式及其指令模板的框图。图2A是阐释根据本发明的实施例的通用向量友好指令格式及其类A指令模板的框图;而图2B是阐释根据本发明的实施例的通用向量友好指令格式及其类B指令模板的框图。具体地,为通用向量友好指令格式200定义类A和类B指令模板,两者均包括无存储器访问205指令模板和存储器访问220指令模板。向量友好指令格式的上下文中的术语“通用”是指指令格式不是依赖于任何特定的指令集。尽管将描述其中以向量友好指令格式的指令对源自寄存器(无存储器访问205指令模板)或寄存器/存储器(存储器访问220指令模板)的向量操作的实施例,但本发明的备选实施例可以仅支持这些中的一种。而且,尽管将描述其中存在以向量指令格式的加载和存储指令的本发明的实施例,但替代地或附加地,备选实施例具有以将向量移入寄存器和将向量移出寄存器(例如,从存储器进入到寄存器、从寄存器进入到存储器、在寄存器之间)的不同的指令格式的指令。进一步,尽管将描述支持两类的指令模板的本发明的实施例,但备选实施例可以仅支持这些中的一种或多于两种。
[0108]尽管将描述其中向量友好指令格式支持以下的本发明的实施例:带有32比特(4字节)或64比特(8字节)数据元素宽度(或大小)的64字节向量操作数长度(或大小)(且因而,64字节向量由16个双字元大小的元素组成,或替代地由8个四字元大小的元素组成);带有16比特(2字节)或8比特(I字节)数据元素宽度(或大小)的64字节向量操作数长度(或大小);带有32比特(4字节)、64比特(8字节)、16比特(2字节)或8比特(I字节)数据元素宽度(或大小)的32字节向量操作数长度(或大小);以及带有32比特(4字节)、64比特(8字节)、16比特(2字节)或8比特(I字节)数据元素宽度(或大小)的16字节向量操作数长度(或大小);但备选实施例可以支持带有更多、更少、或不同的数据元素宽度(例如,128比特(16字节)数据元素宽度)的更多、更少和/或不同的向量操作数大小(例如,256字节向量操作数)。
[0109]图2A中的类A指令模板包括:1)在无存储器访问205指令模板内示出无存储器访问、完全舍入控制类型操作210指令模板和无存储器访问、数据变换类型操作215指令模板;以及2)在存储器访问220指令模板内示出存储器访问,时间性的225指令模板和存储器访问、非时间性的230指令模板。图2B中的类B指令模板包括:1)在无存储器访问205指令模板内示出无存储器访问、写掩码控制、部分舍入控制类型操作212指令模板和无存储器访问、写掩码控制、vsize类型操作217指令模板;以及2)在存储器访问220指令模板内示出存储器访问、写掩码控制227指令模板。
[0110]格式
[0111]通用向量友好指令格式200包括下面以图2A-B中所阐释的次序列出的下列字段。
[0112]格式字段240——这一字段中的专用值(指令格式标识符值)唯一地标识向量友好指令格式,且因而标识指令流中以向量友好指令格式的指令的发生。因而,格式字段240的内容将以第一指令格式的指令的发生与以其他指令格式的指令的发生区分开来,由此允许将向量友好指令格式引入到具有其他指令格式的指令集中。因而,在仅具有通用向量友好指令格式的指令集不需要这一字段的意义上,这一字段是可选的。
[0113]基操作字段242—其内容区分不同的基操作。如本文稍后描述的,基操作字段242可以包括操作码字段和/或是操作码字段的部分。
[0114]寄存器索引字段244—如果源操作数和目的地操作数是在寄存器或存储器中,则其内容直接地或通过地址生成指定源操作数和目的地操作数的位置。这些包括足够从PxQ (例如32x512)寄存器文件选择N个寄存器的数量的比特。尽管在一种实施例中N可以是多达三个源存器和一个目的地寄存器,但备选实施例可以支持更多或更少源寄存器和目的地寄存器(例如,在两个源中的一个也充当目的地时可以支持多达两个源,在三个源中的一个也充当目的地时可以支持多达三个源,可以支持多达两个源和一个目的地)。尽管在一种实施例中P=32,但备选实施例可以支持更多或更少寄存器(例如,16)。尽管在一种实施例中Q=512比特,但备选实施例可以支持更多或更少比特(例如,128、1024)。
[0115]修饰符字段246——其内容将指定存储器访问的以通用向量指令格式的指令的发生与不指定存储器访问的那些区分开来;即是说,区分无存储器访问205指令模板和存储器访问220指令模板。存储器访问操作读和/或写存储器分层(在一些情况中使用寄存器中的值来指定源地址和/或目的地地址),同时非存储器访问操作不这样做(例如,源和目的地是寄存器)。尽管在一种实施例中这一字段也选择在执行存储器地址计算的三种不同的方式之间,但备选实施例可以支持更多、更少或不同的执行存储器地址计算的方式。
[0116]增加操作字段250—其内容区分除了基操作之外要执行各种不同的操作中的哪一种。这一字段是上下文特异的。在本发明的一种实施例中,这一字段被分割成类字段268、α字段252和β字段254。增加操作字段允许公共的操作组在单个指令而不是2、3或4个指令中执行。下面是使用增加字段250来减少所要求的指令的数量的指令的一些示例(本文中稍后更详细地描述其命名法)。
【权利要求】
1.一种执行以第一指令格式的指令的处理器,包括: 解码单元,所述解码单元用于解码以所述第一指令格式的指令,所述第一指令格式包括基操作字段和增加操作字段,所述基操作字段指定不同的向量操作,所述不同的向量操作中的每一个均生成具有在不同的数据元素位置处的多个数据元素的目的地向量操作数,其中,所述解码单元被配置为对于指定存储器访问的指令中的每一个判别以下: 基于所述基操作字段的内容,判别要执行所述不同的向量操作中的哪一个;以及基于所述要执行的向量操作和所述增加字段的内容两者,判别要执行多个不同的增加操作中的哪一个,其中,对于所述向量操作中的至少一些,所述多个增加操作是不同类型的广播操作和不同类型的转换操作。
2.一种装置,包括: 处理器,被配置为执行指令集,其中,所述指令集包括第一指令格式,其中,所述第一指令格式具有多个字段,所述多个字段包括基操作字段、修饰符字段、类字段、α字段、β字段和数据元素宽度字段,其中,所述第一指令格式通过将不同的值放置在所述基操作字段、所述修饰符字段、所述类字段、所述α字段、所述β字段和所述数据元素宽度字段中来支持不同版本的基操作和不同的增加操作,且其中,在指令流中的所述第一指令格式的指令每次出现时,所述不同的值中的仅一个可以被放置在所述基操作字段、所述修饰符字段、所述类字段、所述α字段、所述β字段和所述数据元素宽度字段中的每一个中,所述处理器包括, 解码单元,所述解码单元以如下方式解码以所述第一指令格式的带有所述类字段的内容的所述指令的发生,所述类字段的内容指定第一类: 基于在那些不同的发生中的所述修饰符字段的内容,将所述指定存储器访问的发生与不指定存储器访问的发生区分开来,其中,在所述修饰符字段的内容指定存储器访问时,所述α字段和所述β字段分别被解释为`驱逐提示字段和数据操纵字段; 对于通过所述修饰符字段的内容指定存储器访问的发生中的每一个,辨别以下: 基于所述α字段的内容及其作为该发生中的所述驱逐提示字段的解释,辨别所述驱逐提示是时间性的还是非时间性的;以及 基于所述基操作字段的内容、所述β字段的内容和所述β字段作为所述数据操纵字段的解释,辨别要执行多个存储器访问操作中的哪一个和要应用多个数据操纵操作中的哪一个; 对于未通过所述修饰符字段的内容指定存储器访问的发生中的每一个,基于该发生中的所述α字段的内容辨别是用舍入类型操作还是用数据变换类型操作来增加,其中,在所述α字段的内容指示所述舍入类型操作时,所述β字段被解释为包括舍入操作字段的舍入控制字段,且其中,在所述α字段的内容指示所述数据变换类型操作时,所述β字段替代地被解释为数据变换字段; 对于未通过所述修饰符字段的内容指定存储器访问的发生和通过所述α字段的内容指定所述舍入类型操作的发生中的每一个,基于所述β字段的内容及其作为所述发生中的所述舍入操作字段的解释,辨别要应用多个舍入操作中的哪一个;以及 对于未通过所述修饰符字段的内容指定存储器访问的发生和通过所述α字段的内容指定所述数据变换类型操作的发生中的每一个,基于所述数据元素宽度字段的内容、所述β字段的内容和所述β字段的作为该发生中的所述数据变换字段的解释,辨别要使用多种数据元素宽度中的哪一个和要应用多个不同的数据变换操作中的哪一个。
3.一种装置,包括: 处理器,被配置为执行指令集,其中,所述指令集包括第一指令格式,其中,所述第一指令格式具有多个字段,所述多个字段包括类字段、α字段和β字段,其中,所述第一指令格式通过将不同的值放置在所述α字段和所述β字段来支持不同的增加操作,其中,在指令流中的所述第一指令格式的指令每次出现时,所述不同的值中的仅一个可以被放置在所述α字段和所述β字段中的每一个中,所述处理器包括, 解码单元,所述解码单元以如下方式解码以所述第一指令格式的带有所述类字段的内容的所述指令的发生,所述类字段的内容指定第一类: 对于未指定存储器访问的发生中的每一个,基于该发生中的所述α字段的内容,辨别是否用舍入类型操作来增加,其中,在所述α字段的内容指示所述舍入类型操作时,所述β字段被解释为抑制所有浮点异常(SAE)字段和舍入操作字段; 对于未指定存储器访问和通过所述α字段的内容指定所述舍入类型操作的发生中的每一个,基于该发生中的所述SAE字段的内容,辨别浮点异常是否将被抑制;以及 对于未指定存储器访问和通过所述α字段的内容指定所述舍入类型操作的发生中的每一个,基于该发生中的所述舍入类型操作字段的内容,辨别要应用多个舍入操作中的哪一个。
4.一种装置,包括: 处理器,被配置为执行指令集,其中,所述指令集包括第一指令格式,其中,所述第一指令格式包括第一多种模板,其中,所述第一指令格式具有多个字段,所述多个字段包括基操作字段、数据元素宽度(W)字段和写掩码字段,其中,所述第一指令格式通过所述基操作字段中的不同的值支持不同的向量操作的指定,其中,所述向量操作中的每一个生成包括在不同的数据元素位置处的多个数据元素的目的地向量操作数,其中,所述第一指令格式通过所述数据元素宽度字段中的不同的值支持不同的数据元素宽度的指定,其中,在指令流中的所述第一指令格式的指令每次出现时,所述基操作字段、所述数据元素宽度字段和所述写掩码字段均可以存储仅一个值,所述处理器包括, 解码单元,所述解码单元以如下方式解码所述第一多个模板中的指令的发生: 对于所述发生中的每一个,基于所述数据元素宽度字段的内容辨别要使用所述数据元素宽度中的哪一个;以及 对于所述发生中的每一个,基于所述发生的所述写掩码字段的内容和所述数据元素宽度,辨别所述发生的向量操作所得到的所述数据元素中的哪些是否在所述目的地操作数的相应数据元素位置中被反映,其中,保留可以被放置在所述写掩码字段中的所述不同的值中的一个,用于指示所述发生的向量操作的全部结果将要在所述目的地向量操作数的相应数据元素位置中被反映,其中,可以被放置在所述写掩码字段中的所述不同的值中的其他值区分存储可配置写掩码的不同的写掩码寄存器,且其中,所述发生的所述数据元素宽度区分哪些数据元素位置对应于所述可配置的写掩码中的哪些比特。
5.一种装置,包括: 处理器,被配置为执行指令集,其中,所述指令集包括第一指令格式,其中,所述第一指令格式包括第一多种模板,所述第一多种模板均包括基操作字段、数据元素宽度(W)字段、向量长度字段和写掩码字段,其中,所述第一指令格式通过所述基操作字段中的不同的值支持多个不同的向量操作的指定,其中,所述多个向量操作中的每一个要求对至少一个源向量操作数的多个不同的数据元素位置中的每一个独立地执行操作以生成至少一个目的地向量操作数,其中,所述第一指令格式通过所述数据元素宽度字段中的不同的值支持32比特和64比特数据元素宽度的指定,其中,所述多个模板通过所述向量长度字段中的不同的值支持多个不同的向量长度的指定,其中,所述第一指令格式通过所述写掩码字段中的不同的值支持不同的写掩码的指定,其中,在指令流中的所述第一指令格式的指令每次出现时,所述不同的值中的仅一个可以被放置在所述基操作字段、所述增加操作字段、所述数据元素宽度字段和所述写掩码字段中的每一个中,所述处理器包括, 解码单元,所述解码单元以如下方式解码所述第一多个模板中的指令的发生: 对于所述发生中的每一个,基于所述基操作字段的内容辨别要执行所述不同的向量操作中的哪一个; 对于所述发生中的每一个,基于所述数据元素宽度字段的内容辨别要使用所述数据元素宽度中的哪一个; 对于所述发生中的每一个,基于所述向量长度字段的内容辨别要使用所述向量长度中的哪一个;以及 对于所述发生中的每一个,基于所述写掩码字段的内容辨别要使用所述不同的写掩码中的哪一个,其中,所述发生的所述数据元素宽度和所述向量长度区分哪些数据元素位置对应于所述发生的写掩码中的哪些比特,且其中,所述发生的所述写掩码按每数据元素位置来指定所述发生的向量操作的所述结果是否在所述目的地向量操作数的相应数据元素位置中被反映。
6.一种装置,包括: 处理器,被配置为执行指令集,其中,所述指令集包括第一指令格式,其中,所述第一指令格式包括第一多种模板,其中,所述第一指令格式具有多个字段,所述多个字段包括基操作字段、修饰符字段、α字段和β字段,其中,所述第一指令格式通过所述基操作字段中的不同的值支持多个不同的向量操作的指定,其中,所述多个向量操作中的每一个从源操作数生成具有在不同的数据元素位置处的多个数据元素的目的地向量操作数,其中,所述第一指令格式通过所述修饰符字段中的不同的值支持存储器访问和无存储器访问操作的指定,其中,所述第一指令格式基于所述修饰符字段的内容支持所述α字段和所述β字段的内容的不同的解释,其中,在指令流中的所述第一指令格式的指令每次出现时,所述基操作字段、所述修饰符字段、所述α字段、所述数据元素宽度字段和所述β字段可以存储仅一个值,所述处理器包括, 解码单元,所述解码单元以如下方式解码所述第一多个模板中的指令的发生: 基于在那些不同的发生中的所述修饰符字段的内容,将所述指定存储器访问的发生与未指定存储器访问的发生区分开来,其中,在所述修饰符字段的内容指定存储器访问时,所述α字段和所述β字段分别被解释为驱逐提示字段和数据操纵字段; 对于通过所述修饰符字段的内容指定存储器访问的发生中的每一个,辨别以下: 基于所述α字段的内容及其作为所述发生中的所述驱逐提示字段的解释,辨别所述驱逐提示是时间性的还是非时间性的;以及 基于所述基操作字段的内容、所述β字段的内容和所述β字段的作为所述数据操纵字段的解释,辨别要执行多个存储器访问操作中的哪一个和要应用多个数据操纵操作中的哪一个,其中,所述多个数据操纵操作包括无转换操作和转换操作,其中,所述转换操作指示从一种数据类型的所述源操作数到不同数据类型的所述目的地向量操作数的转换。
7.一种装置,包括: 处理器,被配置为执行指令集,其中,所述指令集包括第一指令格式,其中,所述第一指令格式具有多个字段,所述多个字段包括基操作字段、修饰符字段、数据元素宽度字段和增加操作字段,其中,所述第一指令格式通过所述基操作字段中的不同的值支持多个不同的向量操作的指定,其中,所述多个向量操作中的每一个生成具有在不同的数据元素位置处的多个数据元素的目的地向量操作数,其中,所述第一指令格式通过所述修饰符字段中的不同的值支持存储器访问和无存储器访问操作的指定,其中,在所述修饰符字段的内容指定带有经缩放位移量的存储器访问操作时,所述第一指令格式包括位移因子字段,其中,在以所述第一指令格式的指令每次出现时,所述基操作字段、所述修饰符字段、所述数据元素宽度字段和所述增加操作字段均可以存储仅一个值,所述处理器包括, 处理器流水线,所述处理器流水线用于执行指令流中发生的以所述第一指令格式的指令,其中,所述流水线被配置为: 基于那些不同的发生中的所述修饰符字段的内容,将指定带有经缩放位移量的存储器访问的以所述第一指令格式的指令的发生与未指定带有经缩放位移量的存储器访问的发生区分开来; 对于通过所述修饰符字段的内容指定带有经缩放位移量的存储器访问的发生,基于所述基操作字段、所述数据元素宽度字段和所述增加操作字段中的两个或更多个的内容,区分多个存储器访问大小;以及` 对于通过所述修饰符字段的内容指定带有经缩放位移量的存储器访问的发生中的每一个,基于所述存储器访问的大小乘以所述位移因子字段的内容,确定经缩放位移量,其中,使用所述经缩放位移量来生成地址。
8.一种装置,包括: 处理器,被配置为执行指令集,其中,所述指令集包括第一指令格式,其中,所述第一指令格式包括第一多种模板,其中,所述第一指令格式具有多个字段,所述多个字段字段包括基操作字段、修饰符字段、α字段、β字段和数据元素宽度字段,其中,所述第一指令格式通过所述基操作字段中的不同的值支持多个不同的向量操作的指定,其中,所述多个向量操作中的每一个生成具有在不同的数据元素位置处的多个数据元素的目的地向量操作数,其中,所述第一指令格式通过所述修饰符字段中的不同的值支持存储器访问和无存储器访问操作的指定,其中,所述第一指令格式通过所述数据元素宽度字段中的不同的值支持不同的数据元素宽度的指定,其中,所述第一指令格式基于所述修饰符字段的内容支持所述α字段和所述β字段的内容的不同的解释,其中,在指令流中的所述第一指令格式的指令每次出现时,所述基操作字段、所述修饰符字段、所述α字段、所述β字段和所述数据元素宽度字段均可以存储仅一个值,所述处理器包括, 解码单元,所述解码单元以如下方式解码所述第一多个模板中的指令的发生:基于那些不同的发生中的所述修饰符字段的内容,将指定存储器访问的发生与未指定存储器访问的发生区分开来; 对于未通过所述修饰符字段的内容指定存储器访问的发生中的每一个发生,基于该发生中的所述α字段的内容辨别是否用数据变换类型操作来增加,其中,在所述α字段的内容指示所述数据变换类型操作时,所述β字段被解释为数据变换字段;以及 对于未指定存储器访问的发生和指定数据变换类型操作的发生中的每一个,辨别以下: 基于所述数据元素宽度字段的内容,辨别要使用所述数据元素宽度中的哪一个;以及基于所述数据变换字段的内容,辨别要执行多个数据变换操作中的哪一个,其中,所述多个数据变换操作包括无调序操作、调序操作和广播操作。
9.一种装置,包括:处理器,包括: 多个体系结构向量寄存器,所述多个体系结构向量寄存器中的每一个的大小为至少512比特, 多个体系结构写掩码寄存器,所述多个体系结构写掩码寄存器大小为至少64比特,以存储可配置的写掩码, 其中,所述处理器被配置为执行指令集,其中,所述指令集包括多种指令格式,所述多个指令格式包括向量友好指令格式,其中,以所述向量友好指令格式的向量指令指定生成具有在不同的数据元素位置处的多个数据元素的目的地向量操作数的向量操作,其中,所述向量友好指令格式包括下列大小且以下列次序的下列字段: 一字节格式字段,用于存储唯一地标识所述向量友好指令格式的值; 一比特R字段,用于存储与第一组三个低阶比特组合的比特以寻址所述体系结构向量寄存器,以得到以所述向量友好指令格式的某些指令; 一比特X字段,用于存储与第二组三个低阶比特组合的比特以寻址所述体系结构向量寄存器,以得到以所述向量友好指令格式的某些指令; 一比特B字段,用于存储与第三组三个低阶比特组合的比特以寻址所述体系结构向量寄存器,以得到以所述向量友好指令格式的某些指令; 一比特R’字段,用于存储作为最重要的比特被添加到所述R字段的比特和所述第一组三个低阶比特的组合的比特以寻址所述体系结构向量寄存器,以得到以所述向量友好指令格式的某些指令; 四比特操作码映射,所述四比特操作码映射是基操作字段的部分; 一比特数据元素宽度(W)字段,用于存储区分32比特数据元素大小和64比特数据元素大小的比特,以便得到以所述向量友好指令格式的某些指令; 四比特V字段,用于存储被用来寻址所述体系结构向量寄存器的低阶四比特,以得到以所述向量友好指令格式的某些指令; 一比特类(U)字段,以便存储被用来区分两类的指令模板的比特; 二比特前缀编码字段,所述二比特前缀编码字段是所述基操作字段的部分; 一比特α字段,所述一比特α字段被解释为舍入类型操作字段、数据变换类型操作字段、驱逐提示字段、写掩码控制字段或保留字段,其中,所述写掩码控制字段的内容在归并写掩码和归零写掩码之间选择;三比特β字段,在所述类字段的内容指示第一类时,取决于所述修饰符字段的内容和所述α字段的内容,所述三比特β字段被解释为完全舍入控制字段、数据变换字段或数据操纵字段,且在所述类字段的内容指示第二类时被解释为包括二比特舍入操作字段、二比特向量长度字段或二比特向量长度字段,后面跟随着以所述向量友好指令格式的某些指令的广播字段; 一比特V’字段,所述一比特V’字段存储作为所述最重要的比特被添加到所述V字段的所述四比特的比特,以寻址所述体系结构向量寄存器,以得到以所述向量友好指令格式的某些指令; 三比特写掩码字段,所述三比特写掩码字段用于存储不同的值,所述不同的值除了被保留的一个值之外全部寻址所述体系结构写掩码寄存器中的不同的体系结构写掩码寄存器,其中,所述可配置的写掩码中的每一个按每数据元素位置指定所述向量指令的向量操作的结果是否在所述目的地向量操作数的相应数据元素位置中被反映,而所述一个已保留值用于指示所述向量指令的向量操作的全部结果是否将在所述目的地向量操作数的相应数据元素位置中被反映; 一字节实际操作码字段,所述一字节实际操作码字段存储字节,所述字节是所述基操作字段的部分,其中,所述基操作字段的内容区分不同的基操作;以及 所述修饰符字段,所述修饰符字段存储被用来区分要求存储器访问的操作和不要求存储器访问的操作的两个比特。
10.如权利要求9所述的装置,其特征在于,所述完全舍入控制字段包括,一比特抑制所有浮点异常(SAE)字段,用于存储被用来区分抑制所有浮点异常和不抑制所有浮点异常的一个比特;以及 二比特舍入操作字段,用于存储区分多个不同的舍入操作的两个比特。
11.一种装置,包括: 处理器,被配置为执行指令集,其中,所述指令集包括第一指令格式,其中,所述第一指令格式具有多个字段,所述多个字段包括基操作字段、修饰符字段、类字段、α字段和β字段,其中,通过将不同的值放置在所述基操作字段、所述修饰符字段、所述类字段、所述α字段和所述β字段中,所述第一指令格式支持不同版本的基操作和不同的增加操作,且其中,在指令流中的所述第一指令格式的指令每次出现时,所述不同的值中的仅一个可以被放置在所述基操作字段、所述修饰符字段、所述类字段、所述α字段和所述β字段中的每一个中,其中,所述类字段中的第一值指定第一类且第二值指定第二类,所述处理器包括, 解码单元,所述解码单元以如下方式解码以所述第一指令格式的带有所述类字段的内容的所述指令的发生,所述类字段的内容指定所述第二类: 基于那些不同的发生中的所述修饰符字段的内容,将指定存储器访问的以所述第一指令格式的指令的发生与未指定存储器访问的指令的发生区分开来,其中,在所述修饰符字段的内容指定存储器访问时,所述β字段被解释为广播字段和向量长度字段,其中,在所述修饰符字段的内容未指定存储器访问时,所述β字段的部分被解释为RL字段; 对于通过所述修饰符字段的内容指定存储器访问的发生中的每一个,基于所述β字段的内容及其作为该发生中的所述广播字段和所述向量长度字段的解释,辨别是否广播以及要使用多个向量长度中的哪一个;以及对于不通过所述修饰符字段的内容指定存储器访问的发生中的每一个,基于该发生中的所述RL字段的内容,辨别是用舍入类型操作还是用向量长度类型操作来增加,其中,在所述RL字段的内容指示所述舍入类型操作时,所述β字段的其余部分被解释为舍入操作字段,且其中,在所述RL字段的内容指示所述向量长度类型操作时,所述β字段的其余部分替代地被解释为所述向量长度字段; 对于未通过所述修饰符字段的内容指定存储器访问和通过所述RL字段的内容指定所述舍入类型操作的发生中的每一个,基于所述β字段的内容及其作为该发生中的所述舍入操作字段的解释,辨别要应用多个舍入操作中的哪一个;以及 对于所述发生中的每一个,基于所述α字段的内容及其作为该发生中的写掩码控制字段的解释,辨别是执行归并写掩码操作还是执行归零写掩码操作。
12.一种装置,包括: 处理器,被配置为执行指令集,其中,所述指令集包括第一指令格式,其中,所述第一指令格式包括第一多种模板,其中,所述第一指令格式具有多个字段,所述多个字段包括基操作字段、α字段、数据元素宽度(W)字段和写掩码字段,其中,所述第一指令格式通过所述基操作字段中的不同的值支持不同的向量操作的指定,其中,所述向量操作中的每一个生成包括在不同的数据元素位置处的多个数据元素的目的地向量操作数,其中,所述第一指令格式通过所述数据元素宽度字段中的不同的值支持不同的数据元素宽度的指定,其中,在指令流中的所述第一指令格式的指令每次出现时,所述基操作字段、所述α字段、所述数据元素宽度字段和所述写掩码字段均可以存储仅一个值,所述处理器包括, 解码单元,所述解码单元以如下方式解码所述第一多个模板中的指令的发生: 对于所述发生中的每一个 ,基于所述数据元素宽度字段的内容辨别要使用所述数据元素宽度中的哪一个, 对于所述发生中的每一个,基于所述α字段的内容及其作为写掩码控制字段的解释,辨别是否执行归并写掩码操作或归零写掩码操作; 对于所述发生中的每一个,基于所述写掩码字段的内容和所述发生的所述数据元素宽度,辨别所述发生的向量操作所得到的所述数据元素中的哪一个在所述目的地操作数的相应数据元素位置中被反映或不反映,其中,保留可以被放置在所述写掩码字段中的所述不同的值中的一个,用于指示所述发生的向量操作的全部结果在所述目的地向量操作数的相应数据元素位置中被反映,其中,可以被放置在所述写掩码字段中的所述不同的值中的其他值辨别存储可配置的写掩码的不同的写掩码寄存器,且其中,所述发生的所述数据元素宽度区分哪些数据元素位置对应于所述可配置的写掩码中的哪些比特。
13.一种装置,包括: 处理器,被配置为执行指令集,其中,所述指令集包括第一指令格式,其中,所述第一指令格式具有多个字段,所述多个字段包括基操作字段、修饰符字段和β字段,其中,所述第一指令格式通过将不同的值放置在所述基操作字段、所述修饰符字段和所述β字段中来支持不同版本的基操作和不同的增加操作,且其中,在以所述第一指令格式的指令每次出现时,所述不同的值中的仅一个可以被放置在所述基操作字段、所述修饰符字段和所述β字段中的每一个中,所述处理器包括, 解码单元,用于解码以所述第一指令格式的多个指令,其中,所述解码单元被配置为以如下方式解码所述以所述第一指令格式的多个指令: 基于那些不同的指令中的所述修饰符字段的内容,将所述多个指令中指定存储器访问的那些指令与未指定存储器访问的那些指令区分开来,其中在所述修饰符字段的内容未指定存储器访问时,所述β字段的部分被解释为RL字段; 对于未通过所述修饰符字段的内容指定存储器访问的所述多个指令中的每一个,基于该指令中的所述RL字段的内容辨别是用舍入类型操作还是用向量长度类型操作来增加,其中,在所述RL字段的内容指示所述舍入类型操作时,所述β字段的其余部分被解释为舍入操作字段,且其中,在所述RL字段的内容指示所述向量长度类型操作时,所述β字段的其余部分替代地被解释为所述向量长度字段; 对于未通过所述修饰符字段的内容指定存储器访问和通过所述RL字段的内容指定所述舍入类型操作的所述多个指令中的每一个,基于所述β字段的内容及其作为该指令中的所述舍入操作字段的解释,辨别要应用多个舍入操作中的哪一个;以及 对于未通过所述修饰符字段的内容指定存储器访问和通过所述RL字段的内容指定所述向量长度类型操作的所述多个指令中的每一个,基于所述β字段的内容及其作为该指令中的所述向量长度字段的解释,辨别要使用多个向量长度中的哪一个。
14.一种装置,包括: 处理器,被配置为执行指令,其中,第一指令格式具有多个字段,所述多个字段包括基操作字段、类字段、α字段和β字段,其中,通过将不同的值放置在所述基操作字段、所述类字段、所述α字段和所述β字段中,所述第一指令格式支持不同版本的基操作和不同的增加操作,其中,所述类字段中的第一值指定所述第一指令格式的第一类模板且第二值指定所述第一指令格式的第二类模板,其中,在所述第一类模板中的完全舍入控制类型操作模板和数据变换类型操作模板之间的差别是基于所述α字段的内容,其中,所述β字段分别被解释为在所述完全舍入控制`类型操作模板中的舍入控制字段和在所述数据变换类型操作模板中的数据变换字段,其中,所述舍入控制字段的内容选择是否抑制异常和舍入模式,以便支持与直接舍入模式的IEEE兼容,其中,所述数据变换字段的内容至少选自向上转换、调序、交换和向下转换,以便减少在对不同的格式的源起作用时所要求的指令的数量,其中,所述α字段的内容被用来在所述第二类的所述模板中的至少一些指令的归零写掩码操作和归并写掩码操作之间选择,其中,所述β字段被解释为至少包括所述第二类的存储器访问模板中的向量长度字段,且其中,在指令流中的所述第一指令格式的指令每次出现时,所述基操作字段、所述类字段、所述α字段和所述β字段均可以存储仅一个值,所述处理器包括, 第一核心,被配置为执行以下中的至少一个: 所述第一类的所述完全舍入控制类型操作模板中的指令, 所述第一类的所述数据变换类型操作模板中的指令, 所述第二类的所述存储器访问模板中的指令,以及 在所述α字段的内容被用来在所述第二类的模板中的所述归零写掩码操作和所述归并写掩码操作之间选择的场合中的指令。
15.如权利要求14所述的装置,其特征在于,所述第一核心被配置为仅执行所述第一类模板中的指令,且其中,所述处理器包括被配置为仅执行所述第二类模板中的指令的第二核心。
16.如权利要求15所述的装置,其特征在于,所述第二核心支持乱序执行和寄存器重命名。
17.如权利要求14所述的装置,其特征在于,所述第一核心被配置为执行所述第一类模板和所述第二类模板两者中的指令。
【文档编号】G06F9/06GK103502935SQ201180070598
【公开日】2014年1月8日 申请日期:2011年9月30日 优先权日:2011年4月1日
【发明者】R·C·凡伦天, J·C·三额詹, R·E·桑斯, R·D·凯文, B·L·托尔, S·G·杜兰, J·G·韦德梅耶, S·萨姆德若拉, M·B·吉尔卡尔, E·T·格罗科斯基, J·C·哈尔, D·R·布拉德福德, E·乌尔德-阿迈德-瓦尔, J·C·阿贝尔, M·查尼, S·阿布拉罕, S·赛尔, A·T·福塞斯, C·扬特, L·吴 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1