降低的浮点精度的算术电路制造技术

技术编号:21041044 阅读:39 留言:0更新日期:2019-05-04 09:45
本实施例涉及使用具有更高精度浮点算术电路的专用处理块来执行降低的精度的浮点算术运算。专用处理块可以接收四个浮点数,它们表示两个单精度浮点数,每个被分成LSB部分和MSB部分,或者表示四个半精度浮点数。第一部分乘积生成器可以生成第一和第二输入信号的第一部分乘积,而第二部分乘积生成器可以生成第三和第四输入信号的第二部分乘积。压缩器电路可以基于第一和第二部分乘积生成进位矢量信号及和矢量信号;并且电路可以通过基于进位矢量信号及和矢量信号在执行单精度浮点运算时并行生成至少两个结果并且在执行两个半精度浮点运算时生成至少四个结果来预期舍入和归一化运算。

Arithmetic Circuit for Reducing Floating Point Accuracy

【技术实现步骤摘要】
【国外来华专利技术】降低的浮点精度的算术电路相关申请的交叉引用此专利文档要求2016年9月21日提交的共同待审的共同转让的美国专利申请No.15/272,231的权益,该申请的公开由此通过引用全部结合于本文中。
技术介绍
本实施例涉及集成电路,并且更具体地说,涉及使用具有更高精度浮点算术电路的专用处理块来执行降低的精度的浮点算术运算。随着应用在复杂性方面增加,在集成电路中包含专用处理块已经变得更普遍。这种专用处理块可以部分或全部被硬连线以执行一个或更多个特定任务,诸如逻辑或数学运算。专用处理块还可以包含一个或更多个专用结构,诸如可配置存储器元件阵列。通常在这种专用处理块中实现的结构的示例包括:乘法器、算术逻辑单元(ALU)、桶形移位器、各种存储器元件或存储电路诸如先进先出(FIFO)电路、后进先出(LIFO)电路、串进并出(SIPO)移位寄存器电路、并进串出(PISO)移位寄存器电路、随机存取存储器(RAM)电路、只读存储器(ROM)电路、内容可寻址存储器(CAM)电路和寄存器堆、逻辑和、逻辑与非、逻辑或、逻辑或非阵列等,或其组合。一种特别有用类型的专用处理块(其有时也被称为数字信号处理(DSP)块)可用于处理数字信号,诸如视频信号、音频信号等。这种块时常也被称为乘法累加(MAC)块,因为它们包括执行乘法运算以及乘法运算的求及和/或累加的结构。作为STRATIX®和ARRIA®系列的一部分,诸如由加利福尼亚州圣何塞的Altera公司销售的可编程集成电路的集成电路包括专用处理块,其每一个包括多个乘法器。那些专用处理块中的每个专用处理块还包括加法器和寄存器,以及允许块的各种组件以不同方式被配置的可编程连接器(例如,多路复用器)。通常,这种专用处理块中的算术运算符(加法器和乘法器)已经是定点运算符。如果需要浮点运算符,则它们将使用器件的通用可编程逻辑或者使用专用处理块内部的定点运算符与通用可编程逻辑中的附加逻辑的组合而构造在专用处理块外部。
技术实现思路
执行第一和第二半精度浮点乘法运算的单精度浮点乘法电路可以包括第一、第二和第三算术运算符电路和压缩器电路。第一算术运算符电路可以生成第一和第二半精度浮点数的第一部分乘积,并且第二算术运算符电路可以生成第三和第四半精度浮点数的第二部分乘积。压缩器电路可基于所述第一和第二部分乘积生成进位矢量信号及和矢量信号,并且第三算术运算符电路可基于所述进位矢量信号及和矢量信号并行地生成所述第一半精度浮点乘法运算的至少第一和第二结果以及所述第二半精度浮点乘法运算的至少第三和第四结果以预期(anticipate)舍入和归一化运算。要认识到,本文描述的实施例能以多种方式实现,诸如过程、设备、系统、装置或在处理机器上执行的方法。下面描述几个专利技术实施例。在某些实施例中,上面提到的单精度浮点乘法电路可以包括:第一算术运算符电路中的第一部分乘积生成器,其基于第一和第二半精度浮点数生成第一和第二输出矢量信号;以及第二算术运算符电路中的第二部分乘积生成器,其基于第三和第四半精度浮点数生成第三和第四输出矢量信号。如果期望的话,第一算术运算符电路可以包括:第四算术运算符电路,其执行所述第一、第二、第三和第四输出矢量信号的4:2压缩;以及在所述第四算术运算符电路周围的旁路路径,其将所述第一和第二输出矢量信号作为所述第一部分乘积从所述第一算术运算符电路递送到所述压缩器电路,并且将所述第三和第四输出矢量信号作为所述第二部分乘积从所述第二算术运算符电路递送到所述压缩器电路。在某些实施例中,第三算术运算符电路可以包括:组合电路,其基于所述进位矢量信号及和矢量信号生成输入传播矢量信号和输入生成矢量信号。组合电路可以包括:逻辑异或门,其执行进位矢量信号及和矢量信号的逐位异或运算以生成输入传播矢量信号,其中输入传播矢量信号的最低有效位被设置为1;以及逻辑与门,其执行进位矢量信号及和矢量信号的逐位与运算以生成输入生成矢量信号。本专利技术的另外特征、其性质和各种优点根据附图以及优选实施例的以下详细描述将显而易见。附图说明图1是按照实施例的可配置为执行单精度浮点运算或两个半精度浮点运算的说明性专用处理块的图解。图2是按照实施例的计算用于半精度和单精度浮点乘法运算的和加零、和加一以及和加二信号的说明性算术电路的图解。图3是按照实施例的基于来自3:2压缩器的进位信号及和信号来确定输入生成和传播信号的说明性算术运算符电路的图解。图4A是按照实施例的计算和加零信号的说明性算术运算符电路的图解。图4B是按照实施例的计算和加一信号的说明性算术运算符电路的图解。图4C是按照实施例的计算和加二信号的说明性算术运算符电路的图解。图5是按照实施例的在和加零、和加一及和加二信号之间进行选择的说明性电路的图解。图6是按照实施例的基于来自3:2压缩器的进位信号及和信号来计算和加零、和加一及和加二信号的说明性电路的图解。图7是按照实施例的计算和加零及和加一信号并基于用于半精度和单精度浮点乘法运算的和加一信号确定和加二信号的说明性算术电路的图解。图8是示出按照实施例的用于操作专用处理块的说明性步骤的流程图的图解。具体实施方式本文提供的本实施例涉及集成电路,并且更具体地说,涉及使用具有更高精度浮点算术电路的专用处理块来执行降低的精度的浮点算术运算。执行算术运算的专用处理块可以被优化为支持预定精度的浮点运算。例如,一些专用处理块可以被优化为非常有效地支持单精度浮点运算,但是具有对于半精度浮点运算或双精度浮点运算的差支持。然而,功耗和功能密度在电路设计中是重要的方面,并且许多应用不要求单精度浮点算术。例如,卷积神经网络(CNN)可以与半精度浮点算术(即FP16)和单精度浮点算术电路(即FP32)的混合很好地工作。因此,可能期望专用处理块有效且高效地支持单精度浮点算术和半精度浮点算术二者。将由本领域技术人员认识到,本示范实施例可在没有一些或所有的这些特定细节的情况下实践。在其他实例中,众所周知的操作未详细描述,以免不必要地使本实施例模糊不清。图1中示出了可适于有效地实现定点运算以及单精度和半精度浮点运算的专用处理块100的说明性实施例。在该逻辑表示中,为了简化讨论,省略了实现细节,诸如寄存器和一些可编程路由特征,诸如可以允许具体结构的输出被路由绕过某些组件或者直接离开专用处理块的多路复用器。在图1的逻辑表示中,“左乘法器”101是部分乘积生成器,诸如18×18部分乘积生成器,如果期望的话,其可以被用作例如两个9×18部分乘积生成器。左乘法器101可以产生两个无量纲输出矢量111、121。类似地,“右乘法器”102是部分乘积生成器,诸如18×18部分乘积生成器,其可以被用作例如18×9部分乘积生成器和27×9部分乘积生成器。右乘法器102可以产生两个无量纲输出矢量112、122。在IEEE754-1985标准下,单精度浮点数具有23位的尾数大小,不包括隐含的前导‘1’,而半精度浮点数具有10位的尾数大小,不包括隐含的前导‘1’。从而,左乘法器101和右乘法器102可各实现18x18部分乘积生成器以支持两个半精度浮点乘法运算,或者左乘法器101和右乘法器102一起可实现27x27部分乘积生成器以支持单精确浮点乘法。输入多路复用器阶段103可以根据具体用户逻辑设计的需要在四个与六本文档来自技高网
...

【技术保护点】
1.一种单精度浮点乘法电路,所述单精度浮点乘法电路执行第一和第二半精度浮点乘法运算,所述单精度浮点乘法电路包括:第一算术运算符电路,所述第一算术运算符电路生成第一和第二半精度浮点数的第一部分乘积;第二算术运算符电路,所述第二算术运算符电路生成第三和第四半精度浮点数的第二部分乘积;压缩器电路,所述压缩器电路基于所述第一和第二部分乘积生成进位矢量信号及和矢量信号;以及第三算术运算符电路,所述第三算术运算符电路基于所述进位矢量信号及和矢量信号并行地生成所述第一半精度浮点乘法运算的至少第一和第二结果以及所述第二半精度浮点乘法运算的至少第三和第四结果以预期舍入和归一化运算。

【技术特征摘要】
【国外来华专利技术】2016.09.21 US 15/2722311.一种单精度浮点乘法电路,所述单精度浮点乘法电路执行第一和第二半精度浮点乘法运算,所述单精度浮点乘法电路包括:第一算术运算符电路,所述第一算术运算符电路生成第一和第二半精度浮点数的第一部分乘积;第二算术运算符电路,所述第二算术运算符电路生成第三和第四半精度浮点数的第二部分乘积;压缩器电路,所述压缩器电路基于所述第一和第二部分乘积生成进位矢量信号及和矢量信号;以及第三算术运算符电路,所述第三算术运算符电路基于所述进位矢量信号及和矢量信号并行地生成所述第一半精度浮点乘法运算的至少第一和第二结果以及所述第二半精度浮点乘法运算的至少第三和第四结果以预期舍入和归一化运算。2.如权利要求1所述的单精度浮点乘法电路,进一步包括:所述第一算术运算符电路中的第一部分乘积生成器,所述第一部分乘积生成器基于所述第一和第二半精度浮点数生成第一和第二输出矢量信号;以及所述第二算术运算符电路中的第二部分乘积生成器,所述第二部分乘积生成器基于所述第三和第四半精度浮点数生成第三和第四输出矢量信号。3.如权利要求2所述的单精度浮点乘法电路,其中所述第一算术运算符电路进一步包括:第四算术运算符电路,所述第四算术运算符电路执行所述第一、第二、第三和第四输出矢量信号的4:2压缩;以及绕过所述第四算术运算符电路的旁路路径,所述旁路路径将所述第一和第二输出矢量信号作为所述第一部分乘积从所述第一算术运算符电路递送到所述压缩器电路,并且将所述第三和第四输出矢量信号作为所述第二部分乘积从所述第二算术运算符电路递送到所述压缩器电路。4.如权利要求1-3中任一项所述的单精度浮点乘法电路,进一步包括:旁路多路复用器,其中所述压缩器电路连同所述旁路多路复用器选择性地将零插入到所述第一和第二部分乘积中以生成所述和矢量信号与进位矢量信号。5.如权利要求1-4中任一项所述的单精度浮点乘法电路,其中所述第三算术运算符电路进一步包括:组合电路,所述组合电路基于所述进位矢量信号及和矢量信号生成输入传播矢量信号和输入生成矢量信号。6.如权利要求5所述的单精度浮点乘法电路,其中所述组合电路进一步包括:逻辑异或门,所述逻辑异或门执行所述进位矢量信号与和矢量信号的逐位异或运算以生成所述输入传播矢量信号,其中所述输入传播矢量信号的最低有效位被设置为1;以及逻辑与门,所述逻辑与门执行所述进位矢量信号与和矢量信号的逐位与运算以生成所述输入生成矢量信号。7.如权利要求5-6中任一项所述的单精度浮点乘法电路,其中所述第三算术运算符电路进一步包括:前缀网络,所述前缀网络基于所述输入传播和生成矢量信号来生成输出传播矢量信号和输出生成矢量信号。8.如权利要求7所述的单精度浮点乘法电路,其中所述第三算术运算符电路进一步包括:附加组合电路,所述附加组合电路基于所述输出生成和传播矢量信号以及所述进位矢量信号及和矢量信号来生成和加零、和加一及和加二信号。9.如权利要求8所述的单精度浮点乘法电路,其中所述第三算术运算符电路进一步包括:选择电路,所述选择电路基于预定舍入方案生成控制信号;以及多路复用器,所述多路复用器基于所述控制信号在所述和加零、和加一及和加二信号之间进行选择。10.一种用于操作专用处理块的方法,包括:接收第一、第二、第三和第四半精度浮点数;通过将所述第一和第二半精度浮点数相乘来生成第一部分乘积;通过将所述第三和第四半精度浮点数相乘来生成第二部分乘积;使用压缩器电路基于所述第一和第二部分乘积生成进位矢量信号及和矢量信号;以及基于所述进位矢量信号及和矢量信号并行地生成所述第一半精度浮点乘法运算的至少第一和第二结果以及所述第二半精度浮点乘法运算的至少第三和第四结果以预期舍入和归一化运算。11.如权利要求10所述的方法,其中所述第一部分乘积包含第一和第二输出矢量信号,并且所述第二部分乘积包含第三和第四输出矢量信号,所述方法进一步包括:执行所述第一、第二、第三和第四输出矢量信号的4:2压缩;以及选择性地将所述第一和第二输出矢量信号作为所述第一部分乘积在旁路路径上路由绕过所述4:2压缩器电路到所述压缩器电路。12.如权利要求10-11中任一项所述的方法,其中使用所述压缩器电路生成所述进位矢量信号和所述和矢量信号进一步包括:选择性地将零插入到所述第一和第二部分乘积中。13.如权利要求10-12中任一项所述的方法,其中并行生成所述至少第一和第二结果以及所述至少第三和第四结果进一步包括:执行所述进位矢量信号与和矢量信号的逐位异或运算以生成所述输入传播矢量信号;将所述输入传播矢量信号的最低有效位设置为1;以及执行所述进位矢量信号与和矢量信号的逐位与运算以生成所述输入生成矢量信号。14.如权利要求13所述的方法,进一步包括:使用前缀网络基于所述输入传播和生成矢量信号生成输出传播矢量信号和输出生成矢量信号;以及基于所述输出生成和传播矢量信号以及所述进位矢量信号及和矢量信号来生成和加零、和加一及和加二信号。15.如权利要求14所述的方法,进一步包括:基于...

【专利技术属性】
技术研发人员:M朗哈默
申请(专利权)人:阿尔特拉公司
类型:发明
国别省市:美国,US

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

1