当前位置: 首页 > 专利查询>英特尔公司专利>正文

响应于输入数据值降低FMA单元中的功率消耗制造技术

技术编号:10053693 阅读:144 留言:0更新日期:2014-05-16 02:24
公开了响应于输入数据值降低FMA单元中的功率消耗的技术。在实施例中,融合乘加(FMA)电路被配置为接收多个输入数据值以执行所述输入数据值上的FMA指令。所述电路包括乘法器单元和耦合到所述乘法器单元的输出的加法器单元,和控制逻辑,其接收所述输入数据值并降低切换活动,并由此基于所述输入数据值中的一个或多个的值降低所述电路的一个或多个组件的功率消耗。对其他实施例也予以描述并要求保护。

【技术实现步骤摘要】
响应于输入数据值降低FMA单元中的功率消耗
技术介绍
处理器中一个常见的执行单元是融合乘加(FMA)单元。一般而言,FMA单元可以执行在三个传入操作数上首先将操作数中的两个相乘然后将乘积与第三个数累积的操作。更具体地,FMA算术逻辑单元(ALU)被设计为计算A*B+C,其中A、B和C是任意值。通常A称为乘数输入,B称为被乘数输入,且C称为加数输入。最新的FMAALU将通电和操作设计在同一功率水平而不管呈交给FMAALU的数据输入如何。这会导致过度的功率消耗,特别是因为FMA的乘法单元是高功率消耗件。一些处理器使用这样的单元,通过对第三个操作数的适当选择或经由选择电路路由操作数和结果而执行更多的简单数学操作诸如加法、减法和乘法。因此,在许多处理器中FMA单元可以构成执行单元的骨干,并可以是用以确定处理器的频率、功率和面积的关键电路。之前用来降低FMA单元平均功率的解决方案通常关注于降低覆盖于FMAALU之上的较简单操作的功率,此举往往是通过将这些覆盖操作放置进独立于FMAALU的单独的浮点ALU中。这允许FMAALU对这些较简单操作断电,从而降低这些情况下的功率消耗。然而就面积和泄漏功率而言这很昂贵,因此不是理想的解决方案。而且,这个解决方案不能节省用于FMA指令执行的功率。附图说明图1是根据本专利技术实施例的一般融合乘加(FMA)单元的框图。图2是根据本专利技术实施例的FMA电路的示意图。图2A是根据本专利技术另一实施例的FMA电路的示意图。图3是根据本专利技术另一实施例的FMA电路的示意图。图4是根据本专利技术另一实施例的FMA电路的示意图。图5是根据本专利技术实施例的又一FMA电路的示意图。图6是根据本专利技术实施例的方法的流程图。图7是根据本专利技术一实施例的处理器核的框图。图8是根据本专利技术实施例的多域处理器的框图。图9是根据本专利技术实施例的系统的框图。具体实施方式在各种实施例中,FMA电路的功率消耗可以基于对输入数据值的一个或多个和/或将在电路中执行的指令的分析来控制并降低。例如,对许多数据输入,答案或者是显而易见地已知或者可以用更功率有效的方式计算出。作为一个示例,如果乘数和被乘数输入中一个或两个都是零,那么FMA计算的结果就是显而易见地等于加数。因此为了节省功率,至少部分的FMA单元可以经由时钟门控断电且加数直接旁路到输出。而且,更复杂的优化是可能的。以其中被乘数是2的直幂(例如,1.0×21=2)的情况来说。在这个情况下,计算乘积的乘法器单元可以使用时钟门控来门控关掉,且可以使用移位操作来计算乘积,从而节省在电路的乘法器单元中消耗的大量功率。这样,基于数据输入自身的优化可以用来控制时钟门控和旁路路径以实现有效的操作。而且,许多操作覆盖在FMAALU内的主FMA数据路径之上以便重用尽可能多的数据路径。这些操作可以包括简单算术操作(诸如乘法、加法和减法)、逻辑操作(诸如AND/OR/移位/旋转)、最小函数、最大函数、整数操作、比较操作和转换操作(诸如浮点到整数转换、整数到浮点转换、双精度到单精度和单精度到双精度转换)。各实施例可以对这些操作执行输入数据驱动的时钟门控以在FMA单元内节省额外的平均功率。各实施例可以由此实现精细粒度的、经由相关联的控制和多路复用逻辑所控制的时钟门控,以在检测到这些特殊数据输入和/或指令类型时降低平均功率。以此方式,包括融合乘加操作即AB+C操作的各操作可以更有效地执行。一般而言,FMA单元包括乘法器和加法器,还包括单个舍入器。此FMA单元可以有相对宽的数据宽度以适应有较宽宽度的操作数,诸如向量大小的值。例如,在一实施例中,此FMA单元可以接收64-位操作数并在其上执行FMA操作。尽管本专利技术的范围在此方面并不受限,在许多实现中FMA单元可以执行浮点乘法累加操作并与给定格式的操作数相容,该操作数例如为给定电气和电子工程师协会(IEEE)标准的,诸如关于浮点(FP)算术的IEEE标准754-2008(2008年公布)的操作数。此外,可以使用给定实现来处理各种类型的传入数据,包括可以是单和双精度浮点格式的操作数。在一实施例中,FMA指令句法可以使用三个源操作数定义,其中第一源操作数基于数据元素的算术操作的结果而更新。这样,第一源操作数也可以是目的地操作数。例如,可以存在opcode、x1、x2、x3的指令格式,其中opcode相对应于执行给定算术操作的多个用户级FMA或其它指令中的一个,且x1-x3相对应于在将该操作中处理的操作数。在FMA指令中执行的算术FMA操作可以采取几个形式中的一个,例如:r=(x*y)+z;r=(x*y)-z;r=-(x*y)+z;或者r=-(x*y)-z。在实施例中,压缩FMA指令可以用256-位向量执行八个单精度FMA操作或四个双精度FMA操作。当用向量寄存器实现时,标量FMA指令可以仅执行低序数据元素上的一个算术操作。保留目的地操作数的较低128-位中的数据元素的剩余内容,而目的地操作数的较高128-位可以用零填充。在实施例中,r=(x*y)+z形式的算术FMA操作取两个IEEE-754-2008单(双)精度值并将它们相乘以形成中间值。将此中间值相加到第三个单(双)精度值并进行舍入以生成单(双)精度结果。在不同的实施例中可以实现不同的舍入模式和精度。在一实施例中,向量指令可以在各种压缩数据类型表示上执行。这些数据类型可以包括用于128位宽的操作数的压缩字节、压缩字、以及压缩双字(dword)和压缩四字(quadword)。作为示例,压缩字节格式可以是128位长并包含十六个压缩字节数据元素。这里字节定义为8位的数据。每个字节数据元素的信息存储是字节0在位7到位0中、字节1在位15到位8中、字节2在位23到位16中,最后字节15在位120到位127中。然而应理解各实施例同样应用于标量(个别的或非压缩的)表示。通常,数据元素是与相同长度的其它数据元素一起存储在单个寄存器或存储器位置中的数据的单独部分。在一些压缩数据序列中,存储在寄存器中的数据元素的数目可以是128位除以个别数据元素以位计的长度。尽管数据类型可以是128位长,本专利技术的各实施例也可以用64位宽或其它大小的操作数来操作。可以理解,压缩数据格式可进一步扩展到其它寄存器长度,例如到96-位、160-位、192-位、224-位、256-位或更多。而且,各种有符号和无符号压缩数据类型表示可以根据本专利技术的一个实施例在多媒体寄存器中处理。且各种类型的标量数据格式也可以根据本专利技术的一实施例在寄存器文件的寄存器中处理。现在参考图1,示出的是根据本专利技术实施例的一般融合乘加单元的框图。如图1所示,FMA单元10包括乘法器单元15、加法器单元20和舍入器单元30。在图1所示的实施例中,FMA单元10可以配置为在乘法器单元15中接收多个源操作数。在所示的实施例中,可以接收两个源操作数(例如每个64位宽度),但本专利技术的范围在此方面并不受限。例如,在其它实施例中,源操作数可以是32位或128位的。因此,假定源操作数的输入是双精度值的53位尾数,乘法器单元15可以生成有例如106位宽度的乘积。加法器单元20配置为有108位的宽度以适应此传入乘积。而且,加法器单元20还配置为接收附加源操作数,该操作数在一些实施例中也可以是64位的。由此本文档来自技高网...
响应于输入数据值降低FMA单元中的功率消耗

【技术保护点】

【技术特征摘要】
2012.10.31 US 13/664,6891.一种处理器,包括:核,其包括执行指令的多个执行单元,所述多个执行单元包括:融合乘加FMA电路,用于接收多个输入数据值以在所述输入数据值上执行FMA指令,所述融合乘加FMA电路包括:乘法器单元;加法器单元,耦合到所述乘法器单元的输出;控制逻辑单元,用于接收所述多个输入数据值并基于所述多个输入数据值中的至少一个的值门控所述融合乘加FMA电路的一个或多个组件,还用于接收将在所述融合乘加FMA电路中执行的指令类型并基于所述指令类型门控所述融合乘加FMA电路的至少一个组件;以及异常逻辑单元,所述异常逻辑单元用于接收所述多个输入数据值并确定是否要基于上述多个输入数据值中的至少一个发起异常,其中响应于所述多个输入数据值中的乘数和所述多个输入数据值中的被乘数中的一个是零,所述控制逻辑单元用于使得所述异常逻辑单元作为旁路路径以输出所述多个输入数据值中的加数,同时所述加法器单元和所述乘法器单元被阻止进行切换。2.如权利要求1所述的处理器,其特征在于,所述异常逻辑单元用于输出相对应于异常值的所述多个输入数据值中所选择的一个,同时所述乘法器单元和所述加法器单元被阻止进行切换。3.如权利要求1所述的处理器,其特征在于,所述控制逻辑单元用于:当所述多个输入数据值中的所述加数是零时,使得所述加法器单元被门控关闭。4.如权利要求1所述的处理器,其特征在于,所述控制逻辑单元用于:当所述多个输入数据值中的所述乘数或所述多个输入数据值中的所述被乘数是2N,其中N是整数时,使得所述乘法器单元被门控关闭。5.如权利要求4所述的处理器,其特征在于,所述融合乘加FMA电路还包括移位器,所述移位器用于选择所述乘数和所述被乘数中的一个作为输入并将所述一个移位N位以获得经移位值。6.如权利要求5所述的处理器,其特征在于,所述加法器单元用于将所述多个输入数据值中的加数与所述经移位值相加以获得和。7.如权利要求1所述的处理器,其特征在于,所述融合乘加FMA电路还包括:多个第一选择器,其与所述乘法器单元耦合,并用于从所述乘法器单元接收乘积;移位器,其耦合到所述多个第一选择器中的第一个的输出;第一存储元件,其耦合到所述多个第一选择器中的第二个;第二存储元件,其耦合到所述多个第一选择器中的第三个;第三存储元件,其耦合到所述移位器的输出,其中所述乘积由所述多个第一选择器的所述第一个输出到所述第三存储元件,且所述第一和第二存储元件在乘法指令的执行过程中被时钟门控。8.如权利要求1所述的处理器,其特征在于,所述融合乘加FMA电路还包括:第一组存储元件,包括用于接收所述多个输入数据值中的所述乘数的第一存储元件和第四存储元件、用于接收所述多个输入数据值中的所述被乘数的第二存储元件和用于接收所述多个输入数据值中的所述加数的第三存储元件,其中当所述被乘数等于一时所述第一和第二存储元件被时钟门控。9.如权利要求8所述的处理器,其特征在于,所述控制逻辑单元用于:当所述被乘数等于一时,阻止所述乘法器单元的顺序时钟进行切换,所述多个输入数据值中的所述乘数将从所述第四存储元件被路由到所述加法器单元用于与所述多个输入数据值中的所述加数相加。10.一种降低处理器功耗的方法,包括:接收与将在...

【专利技术属性】
技术研发人员:B·J·希克曼D·R·布拉德福德T·D·弗莱切
申请(专利权)人:英特尔公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1