向量伽罗瓦域乘法求和与累加指令的制作方法

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

【发明内容】

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