用于执行多个乘法操作的方法和装置的制造方法_6

文档序号:9235256阅读:来源:国知局
在通过硬件对位移值的解释中有变化(该需要按存储器操 作数的尺寸按比例缩放位移量W获得字节式地址偏移量)。立即数字段1672如先前所述地 操作。
[01化]完整操作码字段
[0166] 图12B是示出根据本发明的一个实施例的构成完整操作码字段1674的具有专用 向量友好指令格式1600的字段的框图。具体地,完整操作码字段1674包括格式字段1640、 基础操作字段1642、W及数据元素宽度(W)字段1664。基础操作字段1642包括前缀编码 字段1625、操作码映射字段1615 W及实操作码字段1630。
[0167] 寄存器索引字段
[0168] 图12C是示出根据本发明的一个实施例的构成寄存器索引字段1644的具有专用 向量友好指令格式1600的字段的框图。具体地,寄存器索引字段1644包括REX字段1605、 REX' 字段 1610、M0DR/M. reg 字段 1644、M0DR/M. r/m 字段 1646、VVVV 字段 1620、XXX 字段 1654 W及化b字段1656。
[0169] 扩充操作字段
[0170] 图12D是示出根据本发明的一个实施例的构成扩充操作字段1650的具有专用向 量友好指令格式1600的字段的框图。当类扣)字段1668包含0时,它表明EVEX.U0(A类 1668A);当它包含1时,它表明EVEX. U1炬类1668B)。当U = 0且MOD字段1642包含11(表 明无存储器访问操作)时,6字段1652巧VEX字节3,位[7] - EH)被解释为rs字段1652A。 当rs字段1652A包含1 (舍入1652A. 1)时,0字段1654巧VEX字节3,位[6:4] - SS巧被 解释为舍入控制字段1654A。舍入控制字段1654A包括一位SAE字段1656和两位舍入操 作字段1658。当rs字段1652A包含0 (数据变换1652A. 2)时,0字段1654巧VEX字节3, 位[6:4] - SSS)被解释为S位数据变换字段1654B。当U = 0且MOD字段1642包含00、0! 或1〇(表明存储器访问操作)时,6字段1652巧VEX字节3,位[7] -EH)被解释为驱逐提示 巧H)字段1652B且3字段1654巧VEX字节3,位[6:4] -SS巧被解释为S位数据操纵字段 1654C。
[0171] 当U= 1时,a字段1652巧VEX字节3,位[7] -EH)被解释为写掩码控制狂)字 段1652C。当U= 1且MOD字段1642包含11 (表明无存储器访问操作)时,0字段1654 的一部分巧VEX字节3,位[4] -S。)被解释为化字段1657A;当它包含1(舍入1657A. 1) 时,0字段1654的其余部分巧VEX字节3,位[6-引-S2_i)被解释为舍入操作字段1659A, 而当化字段1657A包含0(VSIZE1657.A2)时,0字段1654的其余部分巧VEX字节3,位 [6-引-S2_i)被解释为向量长度字段1659B(EVEX字节3,位[6-5] -Li_。)。当U= 1且M孤字 段1642包含00、01或10 (表明存储器访问操作)时,0字段1654巧VEX字节3,位[6:4] -SS巧被解释为向量长度字段1659B(EVEX字节3,位[6-引-Li_。)和广播字段1657B(EVEX字 节 3,位[4] -B)。
[0172] 图13是根据本发明的一个实施例的寄存器架构1700的框图。在所示出的实施 例中,有32个516位宽的向量寄存器1710 ;该些寄存器被引用为zmmO至Ijzmm31。较低的 16zmm寄存器的较低阶256个位覆盖在寄存器ymmO-16上。较低的16zmm寄存器的较低阶 168个位(ymm寄存器的较低阶168个位)覆盖在寄存器xmmO-15上。专用向量友好指令格 式1600对该些覆盖的寄存器组操作,如在W下表格中所示的。
[0173]
[0174] 换句话说,向量长度字段1559B在最大长度与一个或多个其他较短长度之间进行 选择,其中每一该种较短长度是前一长度的一半,并且不具有向量长度字段1559B的指令 模板在最大向量长度上操作。此外,在一个实施例中,专用向量友好指令格式1600的B类 指令模板对紧缩或标量单/双精度浮点数据W及紧缩或标量整数数据操作。标量操作是对 zmm/ymm/xmm寄存器中的最低阶数据元素位置执行的操作;取决于本实施例,较高阶数据 元素位置保持与在指令之前相同或者归零。
[0175] 写掩码寄存器1715-在所示的实施例中,存在8个写掩码寄存器化0至k7),每一 写掩码寄存器的尺寸是64位。在替代实施例中,写掩码寄存器1715的尺寸是16位。如先 前所述的,在本发明的一个实施例中,向量掩码寄存器kO无法用作写掩码;当正常指示kO 的编码用作写掩码时,它选择硬连线的写掩码OxFFFF,从而有效地停用该指令的写掩码操 作。
[0176] 通用寄存器1725--在所示出的实施例中,有十六个64位通用寄存器,该些寄存 器与现有的x86寻址模式一起使用来寻址存储器操作数。该些寄存器通过名称RAX、RBX、 RCX、畑X、RBP、RSI、畑I、RSP W及 R8 到 R15 来引用。
[0177] 标量浮点堆找寄存器组(x87堆找)1745,在其上面重叠了 MMX紧缩整数平坦寄存 器组1750-一在所示出的实施例中,x87堆找是用于使用x87指令集扩展来对32/64/80位 浮点数据执行标量浮点运算的八元素堆找;而使用MMX寄存器来对64位紧缩整数数据执行 操作,W及为在MMX和XMM寄存器之间执行的一些操作保存操作数。
[017引本发明的替代实施例可W使用较宽的或较窄的寄存器。另外,本发明的替代实施 例可W使用更多、更少或不同的寄存器组和寄存器。
[0179] 在上述说明书中,已经参考特定示例性实施例描述了本发明。然而,显然可对该 些实施例作出各种修改和改变,而不背离如所附权利要求所述的本发明的更宽泛精神和范 围。因此,说明书和附图应被认为是说明性而非限制性意义。
[0180] 本发明的实施例可W包括W上描述的各个步骤。该些步骤可在用于致使通用或专 用处理器执行所述步骤的机器可执行指令中实现。另选地,该些步骤可由包含用于执行该 些步骤的硬连线逻辑的专用硬件组件来执行,或由经编程的计算机组件和自定义的硬件组 件的任何组合来执行。
[0181] 如本文中所述,指令可W指硬件的具体配置,如被配置成执行特定操作或具有预 定功能的专用集成电路(ASIC)或者存储在具体化在非瞬态计算机可读介质中的存储器中 的软件指令。因而,附图中示出的技术可W使用存储在一个或多个电子设备(例如,终端 站、网络元件等等)并在其上执行的代码和数据来实现。此类电子设备通过使用诸如非 瞬态计算机机器可读存储介质(例如,磁盘;光盘;随机存取存储器;只读存储器;闪存设 备;相变存储器)和瞬态计算机机器可读通信介质(例如,电、光、声或其他形式的传播信 号一一诸如载波、红外信号、数字信号等)之类的计算机机器可读介质来(内部地和/或在 网络上与其他电子设备)存储和传递代码和数据。另外,此类电子设备一般包括禪合至一 个或多个其他组件的一个或多个处理器的集合,所述一个或多个其他组件例如是一个或多 个存储设备(非瞬态机器可读存储介质)、用户输入/输出设备(例如键盘、触摸屏和/或 显示器)W及网络连接。该处理器集合和其他组件的禪合一般是通过一个或多个总线和桥 (也称总线控制器)实现的。存储设备和携带网络话务的信号分别表示一个或多个机器可 读存储介质w及机器可读通信介质。因此,给定电子设备的存储设备通常存储代码和/或 数据W供在该电子设备的一个或多个处理器的集合上执行。当然,本发明的实施例的一个 或多个部分可使用软件、固件和/或硬件的不同组合来实现。贯穿此详细描述,为解释起 见,阐明了众多具体细节W提供对本发明的全面理解。然而,对本领域技术人员显而易见的 是,没有该些具体细节中的一些细节也可实践本发明。在某些实例中,并不详细描述公知的 结构和功能W免本发明的主题不清楚。因此,本发明的范围和精神应根据所附权利要求书 来判断。
【主权项】
1. 一种处理器,包括: 指令取出单元,所述指令取出单元用于从存储器子系统中取出双乘法指令,所述双乘 法指令具有三个源操作数值; 解码单元,所述解码单元用于解码所述双乘法指令以生成至少一个U〇P ;以及 执行单元,所述执行单元用于第一次执行所述uop以将所述三个源操作数值中的第一 和第二操作数值相乘,从而生成第一中间结果,并且第二次执行所述UOP以将所述中间结 果与所述三个源操作数中的第三操作数值相乘,从而生成最终结果。2. 如权利要求1所述的处理器,其特征在于,所述执行单元包括用于在第二次执行所 述uop之前延迟所述uop的延迟缓冲器。3. 如权利要求2所述的处理器,其特征在于,所述执行单元进一步包括: 预留站,所述预留站用于调度所述双乘法指令以供至少一个功能单元执行,其中,将所 述uop从所述预留站传送到第一功能单元,并且在功能单元执行之前向所述延迟缓冲器提 供所述uop 〇4. 如权利要求3所述的处理器,其特征在于,所述功能单元包括融合的乘法和加法功 能单元。5. 如权利要求3所述的处理器,其特征在于,当所述第一功能单元已完成所述uop的第 一执行并已生成所述中间结果时,进一步将所述uop从所述延迟缓冲器传送到第二功能单 元,所述第二功能单元将所述中间结果乘以所述三个源操作数值中的第三源操作数值以生 成所述最终结果。6. 如权利要求5所述的处理器,其特征在于,当依次执行了来自单条双乘法指令的单 个uop两次时,生成了所述最终结果。7. 如权利要求1所述的处理器,其特征在于,所述双乘法指令的所述第一、第二和第三 源操作数是浮点值。8. 如权利要求7所述的处理器,其特征在于,所述浮点值包括单精度浮点值或双精度 浮点值。9. 如权利要求1所述的处理器,其特征在于,所述双乘法指令包括用于指示所述第一 源操作数、第二源操作数和第三源操作数中的每一个的符号的立即数值。10. 如权利要求9所述的处理器,其特征在于,所述立即数值包括三位的值,其中每一 位的值指示所述第一源操作数、第二源操作数和第三源操作数的符号。11. 如权利要求3所述的处理器,其特征在于,所述预留站包括:用于在第一执行端口 上调度所述uop的第一执行的第一预留站分区以及用于在第二执行端口上调度所述uop的 第二执行的第二预留站分区。12. -种方法,包括: 从存储器子系统中取出双乘法指令,所述双乘法指令具有三个源操作数值; 解码所述双乘法指令以生成至少一个uop ;以及 第一次执行所述uop以将所述三个源操作数值中的第一和第二操作数值相乘,从而生 成第一中间结果,并且第二次执行所述UOP以将所述中间结果与所述三个源操作数中的第 三操作数值相乘,从而生成最终结果。13. 如权利要求12所述的方法,其特征在于,进一步包括,在第二次执行所述uop之前 在延迟缓冲器中延迟所述UOPo14. 如权利要求13所述的方法,其特征在于,进一步包括: 调度所述双乘法指令以供至少一个功能单元执行,其中,将所述uop传送到第一功能 单元,并且在功能单元执行之前向所述延迟缓冲器提供所述uop。15. 如权利要求14所述的方法,其特征在于,所述功能单元包括融合的乘法和加法功 能单元。16. 如权利要求14所述的方法,其特征在于,当所述第一功能单元已完成所述uop的第 一执行并已生成所述中间结果时,进一步将所述uop从所述延迟缓冲器传送到第二功能单 元,所述第二功能单元将所述中间结果乘以所述三个源操作数值中的第三源操作数值以生 成所述最终结果。17. 如权利要求16所述的方法,其特征在于,当依次执行了来自单条双乘法指令的单 个uop两次时,生成了所述最终结果。18. 如权利要求12所述的方法,其特征在于,所述双乘法指令的所述第一、第二和第三 源操作数是浮点值。19. 如权利要求18所述的方法,其特征在于,所述浮点值包括单精度浮点值或双精度 浮点值。20. 如权利要求12所述的方法,其特征在于,所述双乘法指令包括用于指示所述第一 源操作数、第二源操作数和第三源操作数中的每一个的符号的立即数值。21. 如权利要求20所述的方法,其特征在于,所述立即数值包括三位的值,其中每一位 的值指示所述第一源操作数、第二源操作数和第三源操作数的符号。22. 如权利要求14所述的方法,其特征在于,由预留站执行调度,所述预留站包括:用 于在第一执行端口上调度所述uop的第一执行的第一预留站分区以及用于在第二执行端 口上调度所述uop的第二执行的第二预留站分区。
【专利摘要】本申请公开了用于执行多个乘法操作的方法和装置。描述了用于执行多个乘法操作的装置和方法。例如,处理器的一个实施例包括:指令取出单元,该指令取出单元用于从存储器子系统中取出双乘法指令,该双乘法指令具有三个源操作数值;解码单元,该解码单元用于解码该双乘法指令以生成至少一个uop;以及执行单元,该执行单元用于第一次执行该uop以将三个源操作数值中的第一和第二操作数值相乘,从而生成第一中间结果,并且第二次执行该uop以将该中间结果与三个源操作数中的第三操作数值相乘,从而生成最终结果。
【IPC分类】G06F9/302
【公开号】CN104951278
【申请号】CN201510090366
【发明人】R·艾斯帕萨, G·索尔, M·费尔南德斯
【申请人】英特尔公司
【公开日】2015年9月30日
【申请日】2015年2月28日
【公告号】DE102015002253A1, US20150277904
当前第6页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1