向量浮点测试数据类立即指令的制作方法

文档序号:9240011阅读:179来源:国知局
向量浮点测试数据类立即指令的制作方法
【技术领域】
[0001] 一个或多个方面一般地设及计算环境内的处理,更具体地说,设及此类环境内的 向量处理。
【背景技术】
[0002] 计算环境内的处理包括控制一个或多个中央处理单元(CPU)的操作。一般而言, 中央处理单元的操作通过存储装置中的指令控制。指令可具有不同的格式并且通常指定要 在执行多种操作时使用的寄存器。
[0003] 取决于中央处理单元的架构,可使用多种类型的寄存器,包括例如通用寄存器、专 用寄存器、浮点寄存器和/或向量寄存器。不同类型的寄存器可与不同类型的指令一起使 用。例如,浮点寄存器存储要由浮点指令使用的浮点数;向量寄存器保存用于由包括向量指 令的单指令多数据(SMID)指令执行的向量处理的数据。

【发明内容】

[0004] 通过提供用于执行机器指令的计算机程序产品,克服了现有技术的缺点并提供了 优点。所述计算机程序产品包括计算机可读存储介质,其可被处理电路读取并且存储由所 述处理电路执行W执行一种方法的指令。所述方法例如包括;由处理器获得用于执行的机 器指令,所述机器指令被定义为用于根据计算机架构的计算机执行,所述机器指令包括:至 少一个操作码字段,其提供操作码,所述操作码标识向量浮点测试数据类立即操作;第一寄 存器字段,其被用于指定第一寄存器,所述第一寄存器包括第一操作数;W及第二寄存器字 段,其被用于指定第二寄存器,所述第二寄存器包括第二操作数;W及执行所述机器指令, 所述执行包括;确定所述第二操作数的已选元素的属性;从到所述机器指令的输入选择表 示所述已选元素的所述属性的选定数据单元,所述输入包括表示一个或多个属性的一个或 多个数据单元;检查所述选定数据单元是否被设置为特定值;W及基于所述检查,设置所 述第一操作数中与所述第二操作数的所述已选元素对应的元素,所述设置基于所述选定数 据单元是否被设置为所述特定值。
[0005] 从第一方面来看,本发明提供一种用于在中央处理单元中执行机器指令的计算机 系统,所述计算机系统包括:存储器;W及处理器,其与所述存储器通信,其中所述计算机 系统被配置为执行一种方法,所述方法包括:
[0006] 由处理器获得用于执行的机器指令,所述机器指令被定义为用于根据计算机架构 的计算机执行,所述机器指令包括;至少一个操作码字段,其提供操作码,所述操作码标识 向量浮点测试数据类立即操作;
[0007] 第一寄存器字段,其被用于指定第一寄存器,所述第一寄存器包括第一操作数;W 及
[000引第二寄存器字段,其被用于指定第二寄存器,所述第二寄存器包括第二操作数;W及执行所述机器指令,所述执行包括;确定所述第二操作数的已选元素的属性;
[0009] 从到所述机器指令的输入选择表示所述已选元素的所述属性的选定数据单元,所 述输入包括表示一个或多个属性的一个或多个数据单元;
[0010] 检查所述选定数据单元是否被设置为特定值;W及基于所述检查,设置所述第一 操作数中与所述第二操作数的所述已选元素对应的元素,所述设置基于所述选定数据单元 是否被设置为所述特定值。
[0011] 优选地,本发明提供一种计算机系统,其中所述第二操作数包括多个元素,其中所 述确定包括确定所述多个元素中的每个元素的属性,并且其中所述设置包括基于所述选定 数据单元是否被设置为所述特定值来设置所述第一操作数中与所述第二操作数中的每个 元素对应的每个元素。
[0012] 优选地,本发明提供一种计算机系统,其中所述设置包括基于指示所述选定数据 单元被设置为所述特定值的检查,将所述第一操作数中的所述元素设置为1,并且基于指示 所述选定数据单元未被设置为所述特定值的检查,将所述第一操作数中的所述元素设置为 0。
[0013] 优选地,本发明提供一种计算机系统,其中所述输入包括多个数据单元,所述多个 数据单元中的每个数据单元表示类和符号。
[0014] 优选地,本发明提供一种计算机系统,其中所述机器指令进一步包括包含所述输 入的字段。
[0015] 优选地,本发明提供一种计算机系统,其中所述机器指令进一步包括被用于指定 一个或多个寄存器的扩展字段,并且其中所述第一寄存器字段与所述扩展字段的第一部分 相组合W指定所述第一寄存器,所述第二寄存器字段与所述扩展字段的第二部分相组合W 指定所述第二寄存器,并且其中所述机器指令进一步包括掩码字段,所述掩码字段用于指 示所述第二操作数的一个或多个元素是否将被包括在所述确定中,并且其中所述机器指令 进一步包括另一掩码字段,所述另一掩码字段用于指示所述第二操作数的元素中的浮点数 的大小。
[0016] 从另一方面来看,本发明提供一种在中央处理单元中执行机器指令的方法,所述 方法包括;由处理器获得用于执行的机器指令,所述机器指令被定义为用于根据计算机架 构的计算机执行,所述机器指令包括;至少一个操作码字段,其提供操作码,所述操作码标 识向量浮点测试数据类立即操作;第一寄存器字段,其被用于指定第一寄存器,所述第一寄 存器包括第一操作数;W及第二寄存器字段,其被用于指定第二寄存器,所述第二寄存器包 括第二操作数;W及执行所述机器指令,所述执行包括;确定所述第二操作数的已选元素 的属性;从到所述机器指令的输入选择表示所述已选元素的所述属性的选定数据单元,所 述输入包括表示一个或多个属性的一个或多个数据单元;检查所述选定数据单元是否被设 置为特定值;W及基于所述检查,设置所述第一操作数中与所述第二操作数的所述已选元 素对应的元素,所述设置基于所述选定数据单元是否被设置为所述特定值。
[0017] 优选地,本发明提供一种方法,其中所述设置包括基于指示所述选定数据单元被 设置为所述特定值的检查,将所述第一操作数中的所述元素设置为1,并且基于指示所述选 定数据单元未被设置为所述特定值的检查,将所述第一操作数中的所述元素设置为0。
[001引优选地,本发明提供一种方法,其中所述机器指令进一步包括被用于指定一个或 多个寄存器的扩展字段,并且其中所述第一寄存器字段与所述扩展字段的第一部分相组合 W指定所述第一寄存器,所述第二寄存器字段与所述扩展字段的第二部分相组合W指定所 述第二寄存器,并且其中所述机器指令进一步包括掩码字段,所述掩码字段用于指示所述 第二操作数的一个或多个元素是否将被包括在所述确定中,并且其中所述机器指令进一步 包括另一掩码字段,所述另一掩码字段用于指示所述第二操作数的元素中的浮点数的大 小。
[0019] 从另一方面来看,本发明提供一种用于在中央处理单元中执行机器指令的计算机 程序产品,所述计算机程序产品包括;计算机可读存储介质,其可被处理电路读取并且存储 由所述处理电路执行W执行一种方法的指令,所述方法包括;由处理器获得用于执行的机 器指令,所述机器指令被定义为用于根据计算机架构的计算机执行,所述机器指令包括:至 少一个操作码字段,其提供操作码,所述操作码标识向量浮点测试数据类立即操作;第一寄 存器字段,其被用于指定第一寄存器,所述第一寄存器包括第一操作数;W及第二寄存器字 段,其被用于指定第二寄存器,所述第二寄存器包括第二操作数;W及执行所述机器指令, 所述执行包括;确定所述第二操作数的已选元素的属性;从到所述机器指令的输入选择表 示所述已选元素的所述属性的选定数据单元,所述输入包括表示一个或多个属性的一个或 多个数据单元;检查所述选定数据单元是否被设置为特定值;W及基于所述检查,设置所 述第一操作数中与所述第二操作数的所述已选元素对应的元素,所述设置基于所述选定数 据单元是否被设置为所述特定值。
[0020] 优选地,本发明提供一种计算机程序产品,其中所述第二操作数包括多个元素,其 中所述确定包括确定所述多个元素中的每个元素的属性,并且其中所述设置包括基于所述 选定数据单元是否被设置为所述特定值来设置所述第一操作数中与所述第二操作数中的 每个元素对应的每个元素。
[0021] 优选地,本发明提供一种计算机程序产品,其中所述设置包括基于指示所述选定 数据单元被设置为所述特定值的检查,将所述第一操作数中的所述元素设置为1,并且基于 指示所述选定数据单元未被设置为所述特定值的检查,将所述第一操作数中的所述元素设 置为0。
[0022] 优选地,本发明提供一种计算机程序产品,其中所述属性包括类和符号。
[0023] 优选地,本发明提供一种计算机程序产品,其中所述输入包括多个数据单元,所述 多个数据单元中的每个数据单元表示类和符号。
[0024] 优选地,本发明提供一种计算机程序产品,其中所述多个数据单元包括多个位,并 且其中每个位表示多个元素类中的一个元素类,所述多个元素类包括0、规范数、非规范数、 无限大、静默非数值、信令非数值,并且每个位表示正号或负号。
[0025] 优选地,本发明提供一种计算机程序产品,其中所述机器指令进一步包括包含所 述输入的字段。
[0026] 优选地,本发明提供一种计算机程序产品,其中所述机器指令进一步包括被用于 指定一个或多个寄存器的扩展字段,并且其中所述第一寄存器字段与所述扩展字段的第一 部分相组合W指定所述第一寄存器,所述第二寄存器字段与所述扩展字段的第二部分相组 合W指定所述第二寄存器。
[0027] 优选地,本发明提供一种计算机程序产品,其中所述机器指令进一步包括掩码字 段,所述掩码字段用于指示所述第二操作数的一个或多个元素是否将被包括在所述确定 中。
[002引优选地,本发明提供一种计算机程序产品,其中所述机器指令进一步包括另一掩 码字段,所述另一掩码字段用于指示所述第二操作数的元素中的浮点数的大小。
[0029] 优选地,本发明提供一种计算机程序产品,其中所述执行进一步包括设置所述机 器指令的条件码,所述条件码用于概述所述第一操作数的所述元素的设置。
[0030] 此处还描述并要求保护与一个或多个方面相关的方法和系统。进一步地,此处还 描述并可W要求保护与一个或多个方面相关的服务。
[0031] 通过一个或多个方面的技术实现其他特征和优点。其他实施例和方面在此做出详 细描述并且被视为权利要求的一部分。
【附图说明】
[0032] 本发明可通过多种方式实施,现在将仅通过实例的方式并参考附图描述各实施 例,该些附图是:
[0033] 图1示出结合和使用一个或多个方面的计算环境的一个实例;
[0034] 图2A示出结合和使用一个或多个方面的计算环境的另一实例;
[0035] 图2B示出图2A的存储器的进一步细节;
[0036] 图3示出寄存器文件的一个实例;
[0037] 图4A示出向量浮点测试数据类立即指令的格式的一个实例;
[003引图4B示出图4A的向量浮点测试数据类立即指令的第S操作数的位值的一个实 例;
[0039] 图4C示出与图4A的向量浮点测试数据类立即指令关联的逻辑的一个实施例;
[0040] 图4D示出图4A的向量浮点测试数据类立即指令的执行的框图的一个实例;
[0041] 图4E示出二进制浮点数据的多种类的定义的一个实例;
[0042] 图5A示出向量校验和指令的格式的一个实例;
[0043] 图5B示出与图5A的向量校验和指令关联的逻辑的一个实施例;
[0044] 图5C示出图5A的向量校验和指令的执行的框图的一个实例;
[0045] 图6A示出向量伽罗瓦域乘法求和与累加指令的格式的一个实例;
[0046] 图6B示出与图6A的向量伽罗瓦域乘法求和与累加指令关联的逻辑的一个实施 例;
[0047] 图6C示出图6A的向量伽罗瓦域乘法求和与累加指令的执行的框图的一个实例;
[0048] 图7A示出向量生成掩码指令的格式的一个实例;
[0049] 图7B示出与图7A的向量生成掩码指令关联的逻辑的一个实施例;
[0050] 图7C示出图7A的向量生成掩码指令的执行的框图的一个实例;
[0051] 图8A示出向量元素旋转和掩码下插入指令的一个实例;
[0052] 图8B示出与图8A的向量元素旋转和掩码下插入指令关联的逻辑的一个实施例;
[0053] 图8C示出图8A的向量元素旋转和掩码下插入指令的执行的框图的一个实例;
[0054] 图9A示出向量异常码的一个实例;
[0055] 图9B示出设置图9A的向量异常码的逻辑的一个实施例;
[0056] 图10示出结合一个或多个方面的计算机程序产品的一个实施例;
[0化7]图11示出主计算机系统的一个实施例;
[0化引 图12示出计算机系统的进一步实例;
[0059] 图13示出包括计算机网络的计算机系统的另一实例;
[0060] 图14示出计算机系统的各种元素的一个实施例;
[0061] 图15A示出图14的计算机系统的执行单元的一个实施例;
[0062] 图15B示出图14的计算机系统的分支单元的一个实施例;
[0063] 图15C示出图14的计算机系统的加载/存储单元的一个实施例;W及
[0064] 图16示出仿真主计算机系统的一个实施例。
【具体实施方式】
[00化]根据一个或多个方面,提供了包括多种向量指令W及向量异常处理的向量工具。 此处描述的每个指令是使用一个或多个向量寄存器(在此也称为向量)的单指令多数据 (SIMD)指令。向量寄存器例如是处理器寄存器(也称为硬件寄存器),它是作为中央处理 单元(CPU)或其他处理器的一部分可用的少量存储(例如,非主存储器)。每个向量寄存器 包含具有一个或多个元素的向量操作数,元素的长度例如为1、2、4或8个字节。在其他实 施例中,元素能够具有其他大小,并且向量指令无需为SIMD指令。
[0066] 参考图1描述结合和使用一个或多个方面的计算环境的一个实施例。计算环境 100例如包括处理器102 (例如,中央处理单元)、存储器104 (例如,主存储器),W及一个 或多个输入/输出(I/O)设备和/或接口 106,该些元件例如经由一个或多个总线108和/ 或其他连接相互禪接。
[0067] 在一个实例中,处理器102基于国际商业机器公司提供的z/Architecture,并 且是诸如SystemZ服务器之类的服务器的一部分,该服务器也由国际商业机器公司提 供并实现z/Architec1:ure。z/Architec1:ure的一个实施例在标题为"z/Architec1:ure PrinciplesofOperation(z/Architec1:ure操作原理,编号为SA22-7832-09 的IBM? 出版物,第十版,2012年9月)的IBM?出版物中描述,该出版物的全部内容在此纳入作 为参考。在一个实例中,执行诸如z/OS的操作系统的处理器也由国际商业机器公司提供。 IBM⑩、Z/ARCHITECTURE?:和Z/OS?,是位于美国纽约阿蒙克的国际商业机 器公司的注册商标。此处使用的其他名称可W是国际商业机器公司或其他公司的注册商 标、商标或产品名。
[00側在进一步实施例中,处理器102基于国际商业机器公司提供的化wer Architec1:ure。PowerArchitec1:ure的一个实施例在叩owerISA?版本 2. 06,修订B(国 际商业机器公司,2010年7月23日)"中描述,该出版物的全部内容在此纳入作为参考。 POWERARCHITECTURE?,是国际商业机器公司的注册商标。
[00例在另一实施例中,处理器102基于英特尔公司提供的Intel架构。Intel架构的一个实施例在"Intel⑩64andIA-32Architec1:uresDeveloper,S Manual:Vol. 2B,InstructionsSetReference,A-L(In化I?64和IA-32架构开发 者指南:卷2B,指令集参考,A-U订单号:253666-04抓S,2013年I月)"和"Intel?64andIA-32ArchitecturesDeveloper'sManual:Vol. 2B,InstructionsSet Reference,M-Z(Intel?64和IA-32架构开发者指南:卷2B,指令集参考,M-Z,订单号; 253667-04抓S,2013年1月)"中描述,它们全部内容均在此纳入作为参考。Imel⑩,是位 于加利福巧亚州圣克拉拉的英特尔公司的注册商标。
[0070] 参考图2A描述结合和使用一个或多个方面的计算环境的另一实施例。在该实例 中,计算环境200例如包括本机中央处理单元202、存储器204,W及一个或多个输入/输 出设备和/或接口 206,该些元件例如经由一个或多个总线208和/或其他连接相互禪接。 例如,计算环境200可W包括位于纽约阿蒙克的国际商业机器公司提供的化werPC处理 器、pSeries服务器或xSeries服务器;位于加利福巧亚帕洛阿尔托的惠普公司提供的带有 IntelItaniumII处理器的HPSuperdome;和/或其他基于国际商业机器公司、惠普公司、 英特尔、化acle或其他公司提供的架构的机器。
[0071] 本机中央处理单元202包括一个或多个本机寄存器210,例如在环境内的处理期 间使用的一个或多个通用寄存器和/或一个或多个专用寄存器。该些寄存器包括表示环境 在任何特定时刻的状态的信息。
[0072] 此外,本机中央处理单元202执行存储在存储器204中的指令和代码。在一个特 定实例中,中央处理单元执行存储在存储器204中的仿真器代码212。该代码使得在一个架 构配置中的处理环境能够仿真另一架构。例如,仿
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1