指数函数处理单元、方法和神经网络芯片技术

技术编号:32744366 阅读:17 留言:0更新日期:2022-03-20 08:51
本发明专利技术实施例提供了一种指数函数处理单元、方法和神经网络芯片,其中所述指数函数处理单元包括:浮点乘法器,其输入端用于分别获取待计算指数函数的指数和将所述待计算指数函数转换为以2为底数的目标指数函数的转换常数;第一移位模块,其输入端用于获取所述浮点乘法器输出的乘积,并输出乘积的整数部分和小数部分;加法器,其输入端用于分别获取所述小数部分和固定常数1;第二移位模块,其输入端用于分别获取乘积的整数部分和所述加法器的输出值,并根据所述整数部分,对所述加法器的输出值进行移位处理。出值进行移位处理。出值进行移位处理。

【技术实现步骤摘要】
指数函数处理单元、方法和神经网络芯片


[0001]本专利技术涉及电数字数据处理
,具体涉及一种指数函数处理单元、方法和神经网络芯片。

技术介绍

[0002]指数函数是一个特别常见且非常重要的非线性函数,例如在多层神经网络中上层节点的输出和下层节点的输入之间具有一个函数关系,这个函数称为激活函数,诸如sigmoid、tanh等函数,对于这些激活函数而言,指数函数是其关键部分。
[0003]当前,采用硬件方法实现指数函数处理非常消耗系统资源,运算速度慢且占用芯片面积大。例如,现有技术中存在一种通过采用多项式运算来实现指数函数处理的方案,然而该方案需要大量的指令数,且延迟时间长。现有技术中还存在一种指数函数处理方案,其通过查值表并结合其他运算来进行指数函数运算,然而该方案中查值表的存储需要占用芯片面积,并且频繁的查值过程也会造成大量时延。

技术实现思路

[0004]有鉴于此,本专利技术实施例提供了一种指数函数处理单元、方法和神经网络芯片,以解决现有技术中指数函数处理速度慢且占用芯片面积大的问题。
[0005]根据第一方面,本专利技术实施例提供了一种指数函数处理单元,包括:浮点乘法器,所述浮点乘法器的输入端用于分别获取待计算指数函数的指数和将所述待计算指数函数转换为以2为底数的目标指数函数的转换常数,所述浮点乘法器的输出端用于输出所述指数与所述转换常数的乘积;第一移位模块,所述第一移位模块的输入端用于获取所述浮点乘法器输出的所述乘积,并根据所述乘积的阶码,对所述乘积的尾数进行移位处理,所述第一移位模块的输出端用于输出所述乘积的整数部分和小数部分;加法器,所述加法器的输入端用于分别获取所述小数部分和固定常数,所述加法器的输出端用于输出所述小数部分与所述固定常数之和,其中所述固定常数为1;第二移位模块,所述第二移位模块的输入端用于分别获取所述乘积的整数部分和所述加法器的输出值,并根据所述整数部分,对所述加法器的输出值进行移位处理。
[0006]可选地,所述指数函数处理单元还包括:规格化模块,所述规格化模块的输入端与所述第二移位模块的输出端连接,用于将所述第二移位模块的输出值转换为预定格式。
[0007]可选地,所述第一移位模块用于在所述乘积的阶码的真实值为正时,将所述乘积的尾数的小数点向右移动,向右移动的位数等于所述乘积的阶码的真实值,其中所述乘积的阶码的真实值为所述乘积的阶码与偏移值之差;或者所述第一移位模块用于在所述乘积的阶码的真实值为负时,将所述乘积的尾数的小数点向左移动,向左移动的位数等于所述乘积的阶码的真实值。
[0008]可选地,所述第二移位模块用于在所述乘积的真实值为正时,将所述加法器的输出值的小数点向右移动,向右移动的位数等于所述整数部分的值;或者所述第二移位模块
用于在所述乘积的真实值为负时,将所述加法器的输出值的小数点向左移动,向左移动的位数等于所述整数部分的值。
[0009]可选地,所述第一移位模块用于根据所述乘积的阶码的最高位来确定所述乘积的阶码的真实值的符号,在所述乘积的阶码的最高位为1时,确定所述乘积的阶码的真实值为正;在所述乘积的阶码的最高位为0时,确定所述乘积的阶码的真实值为负;或者所述第二移位模块用于根据所述整数部分的最高位来确定所述乘积的真实值的符号,在所述整数部分的最高位为1时,确定所述乘积的真实值为正;在所述整数部分的最高位为0时,确定所述乘积的真实值为负。
[0010]可选地,所述第一移位模块包括:第一多路复用器,包括2
n
个输入端,其中n为所述乘积的阶码的位宽,所述第一多路复用器的第一路输入信号的各个数据位均为0,所述第一多路复用器的第二路至第2
n
路输入信号相对于前一路输入信号依次从数据位低位移入所述乘积的尾数的高位并移出高位的0;第二多路复用器,包括2
n
个输入端,所述第二多路复用器的第一路输入信号为所述乘积的尾数,所述第二多路复用器的第二路至第2
n
路输入信号相对于前一路输入信号依次从数据位高位移出所述乘积的尾数的高位并在低位补0;所述第一多路复用器和所述第二多路复用器的控制端用于获取所述乘积的阶码,以使得所述第一多路复用器和所述第二多路复用器的输出端输出与所述乘积的阶码对应的输入端的输入信号。
[0011]可选地,所述第二移位模块包括:第三多路复用器,包括2
n
个输入端,其中n为所述整数部分的位宽,所述第三多路复用器的第一路输入信号的各个数据位均为0,所述第三多路复用器的第二路至第2
n
路输入信号相对于前一路输入信号依次从数据位低位移入所述加法器的输出值的高位并移出高位的0;第四多路复用器,包括2
n
个输入端,所述第四多路复用器的第一路输入信号为所述加法器的输出值,所述第四多路复用器的第二路至第2
n
路输入信号相对于前一路输入信号依次从数据位高位移出所述加法器的输出值的高位并在低位补0;所述第三多路复用器和所述第四多路复用器的控制端用于获取所述整数部分,以使得所述第三多路复用器和所述第四多路复用器的输出端输出与所述整数部分对应的输入端的输入信号。
[0012]根据第二方面,本专利技术实施例提供了一种指数函数处理方法,包括:通过浮点乘法器,获取待计算指数函数的指数与将所述待计算指数函数转换为以2为底数的目标指数函数的转换常数的乘积;通过第一移位模块,根据所述乘积的阶码,对所述乘积的尾数进行移位处理,以获取所述乘积的整数部分和小数部分;通过加法器,获取所述乘积的小数部分与固定常数之和,其中所述固定常数为1;通过第二移位模块,根据所述乘积的整数部分,对所述加法器的输出值进行移位处理。
[0013]可选地,所述指数函数处理方法还包括:将所述第二移位模块的输出值转换为预定格式。
[0014]可选地,所述通过第一移位模块,根据所述乘积的阶码,对所述乘积的尾数进行移位处理,以获取所述乘积的整数部分和小数部分,包括:在所述乘积的阶码的真实值为正时,将所述乘积的尾数的小数点向右移动,向右移动的位数等于所述乘积的阶码的真实值,其中所述乘积的阶码的真实值为所述乘积的阶码与偏移值之差;或者在所述乘积的阶码的真实值为负时,将所述乘积的尾数的小数点向左移动,向左移动的位数等于所述乘积的阶
码的真实值。
[0015]可选地,所述通过第二移位模块,根据所述乘积的整数部分,对所述加法器的输出值进行移位处理,包括:在所述乘积的真实值为正时,将所述加法器的输出值的小数点向右移动,向右移动的位数等于所述整数部分的值;或者在所述乘积的真实值为负时,将所述加法器的输出值的小数点向左移动,向左移动的位数等于所述整数部分的值。
[0016]可选地,所述第一移位模块根据所述乘积的阶码的最高位来确定所述乘积的阶码的真实值的符号,在所述乘积的阶码的最高位为1时,确定所述乘积的阶码的真实值为正;在所述乘积的阶码的最高位为0时,确定所述乘积的阶码的真实值为负;或者所述第二移位模块根据所述整数部分的最高本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种指数函数处理单元,其特征在于,包括:浮点乘法器,所述浮点乘法器的输入端用于分别获取待计算指数函数的指数和将所述待计算指数函数转换为以2为底数的目标指数函数的转换常数,所述浮点乘法器的输出端用于输出所述指数与所述转换常数的乘积;第一移位模块,所述第一移位模块的输入端用于获取所述浮点乘法器输出的所述乘积,并根据所述乘积的阶码,对所述乘积的尾数进行移位处理,所述第一移位模块的输出端用于输出所述乘积的整数部分和小数部分;加法器,所述加法器的输入端用于分别获取所述小数部分和固定常数,所述加法器的输出端用于输出所述小数部分与所述固定常数之和,其中所述固定常数为1;第二移位模块,所述第二移位模块的输入端用于分别获取所述乘积的整数部分和所述加法器的输出值,并根据所述整数部分,对所述加法器的输出值进行移位处理。2.根据权利要求1所述的指数函数处理单元,其特征在于,还包括:规格化模块,所述规格化模块的输入端与所述第二移位模块的输出端连接,用于将所述第二移位模块的输出值转换为预定格式。3.根据权利要求1所述的指数函数处理单元,其特征在于,所述第一移位模块用于在所述乘积的阶码的真实值为正时,将所述乘积的尾数的小数点向右移动,向右移动的位数等于所述乘积的阶码的真实值,其中所述乘积的阶码的真实值为所述乘积的阶码与偏移值之差;或者所述第一移位模块用于在所述乘积的阶码的真实值为负时,将所述乘积的尾数的小数点向左移动,向左移动的位数等于所述乘积的阶码的真实值。4.根据权利要求1所述的指数函数处理单元,其特征在于,所述第二移位模块用于在所述乘积的真实值为正时,将所述加法器的输出值的小数点向右移动,向右移动的位数等于所述整数部分的值;或者所述第二移位模块用于在所述乘积的真实值为负时,将所述加法器的输出值的小数点向左移动,向左移动的位数等于所述整数部分的值。5.根据权利要求3或4所述的指数函数处理单元,其特征在于,所述第一移位模块用于根据所述乘积的阶码的最高位来确定所述乘积的阶码的真实值的符号,在所述乘积的阶码的最高位为1时,确定所述乘积的阶码的真实值为正;在所述乘积的阶码的最高位为0时,确定所述乘积的阶码的真实值为负;或者所述第二移位模块用于根据所述整数部分的最高位来确定所述乘积的真实值的符号,在所述整数部分的最高位为1时,确定所述乘积的真实值为正;在所述整数部分的最高位为0时,确定所述乘积的真实值为负。6.根据权利要求1

5中任一项所述的指数函数处理单元,其特征在于,所述第一移位模块包括:第一多路复用器,包括2
n
个输入端,其中n为所述乘积的阶码的位宽,所述第一多路复用器的第一路输入信号的各个数据位均为0,所述第一多路复用器的第二路至第2
n
路输入信号相对于前一路输入信号依次从数据位低位移入所述乘积的尾数的高位并移出高位的0;第二多路复用器,包括2
n
个输入端,所述第二多路复用器的第一路输入信号为所述乘积的尾数,所述第二多路复用器的第二路至第2
n
路输入信号相对于前一路输入信号依次从数
据位高位移出所述乘积的尾数的高位并在低位补0;所述第一多路复用器和所述第二多路复用器的控制端用于获取所述乘积的阶码,以使得所述第一多路复用器和所述第二多...

【专利技术属性】
技术研发人员:王巍陈巍杨施洋尚会滨耿云川李冰倩
申请(专利权)人:千芯半导体科技北京有限公司
类型:发明
国别省市:

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

1