包括乘累加模块的芯片、终端及控制方法技术

技术编号:21089029 阅读:43 留言:0更新日期:2019-05-11 09:46
本申请公开了一种包括乘累加模块的芯片、终端及控制方法,涉及芯片领域。上述芯片包括乘累加模块,乘累加模块包括定点通用单元、浮点专用单元和输出选择单元;定点通用单元和浮点专用单元分别与输出选择单元连接;定点通用单元还与浮点专用单元连接,定点通用单元与浮点专用单元共用一组乘法器。通过在芯片的乘累加模块中,将定点运算和浮点运算集成在一个电路上,使该乘累加模块在一个电路中实现定点运算,同时能够实现浮点运算;定点运算单元与浮点运算单元的乘法器的共用,减少了使用的器件总数,从而减少了定点运算单元与浮点运算单元在芯片上的占用面积、以及运算时的功耗。

【技术实现步骤摘要】
包括乘累加模块的芯片、终端及控制方法
本申请涉及芯片领域,特别涉及一种包括乘累加模块的芯片、终端及控制方法。
技术介绍
乘累加模块是芯片上的一种基本计算模块,广泛应用于诸如中央处理器(CentralProcessingUnit,CPU)、现场可编程门阵列(Field-ProgrammableGateArray,FPGA)、专用集成电路(ApplicationSpecificIntergratedCircuits,ASIC)、图形处理器(GraphicsProcessingUnit,GPU)或其他人工智能(ArtificialIntelligence,AI)芯片之类的芯片上。以用于神经网络模型计算的芯片为例,该芯片上同时存在两种乘累加模块:用于定点运算(也称整数运算)的第一种乘累加模块,和,用于浮点运算的第二种乘累加模块。当需要定点运算时,调用第一种乘累加模块进行运算;当需要浮点运算时,调用第二种乘累加模块进行运算。由于需要在芯片上同时实现两种乘累加模块,导致该芯片的芯片面积和功耗较大。
技术实现思路
本申请实施例提供了一种包括乘累加模块的芯片、终端及控制方法,可以解决。所述技术方案如下:本文档来自技高网...

【技术保护点】
1.一种包括乘累加模块的芯片,其特征在于,所述芯片中包括乘累加模块;所述乘累加模块包括:用于输入乘法数的第一输入端和第二输入端、用于输入加法数的上级输入端、用于选择定点计算模式或浮点计算模式的模式选择端和模块输出端;所述乘累加模块还包括:定点通用单元、浮点专用单元和输出选择单元;所述定点通用单元与所述第一输入端、所述第二输入端、所述上级输入端和所述模式选择端分别相连,所述定点通用单元的定点输出端分别与所述输出选择单元以及所述浮点专用单元相连;所述浮点专用单元与所述第一输入端、所述第二输入端、所述上级输入端、所述定点输出端和所述模式选择端分别相连,所述浮点专用单元的浮点输出端与所述输出选择单元相...

【技术特征摘要】
1.一种包括乘累加模块的芯片,其特征在于,所述芯片中包括乘累加模块;所述乘累加模块包括:用于输入乘法数的第一输入端和第二输入端、用于输入加法数的上级输入端、用于选择定点计算模式或浮点计算模式的模式选择端和模块输出端;所述乘累加模块还包括:定点通用单元、浮点专用单元和输出选择单元;所述定点通用单元与所述第一输入端、所述第二输入端、所述上级输入端和所述模式选择端分别相连,所述定点通用单元的定点输出端分别与所述输出选择单元以及所述浮点专用单元相连;所述浮点专用单元与所述第一输入端、所述第二输入端、所述上级输入端、所述定点输出端和所述模式选择端分别相连,所述浮点专用单元的浮点输出端与所述输出选择单元相连;所述输出选择单元,用于在所述模式选择端所指示的计算模式为定点计算模式时,将所述定点输出端与模块输出端导通;在所述计算模式为浮点计算模式时,将所述浮点输出端与所述模块输出端导通。2.根据权利要求1所述的芯片,其特征在于,在所述计算模式为所述定点计算模式时,所述定点通用单元用于将所述第一输入端输入的第一操作数A和所述第二输入端输入的第二操作数B相乘后与所述上级输入端输入的第三操作数C累加,从所述定点输出端输出定点运算结果;在所述计算模式为所述浮点计算模式时,所述定点通用单元用于对所述第一输入端输入的所述第一操作数A和所述第二输入端输入的第二操作数B进行浮点乘累加运算中的乘法部分计算,从所述定点输出端输出第一中间结果;所述浮点专用单元用于将所述第一输入端输入的所述第一操作数A、所述第二输入端输入的所述第二操作数B、所述上级输入端输入的所述第三操作数C和所述定点输出端输入的所述第一中间结果进行所述浮点乘累加运算中的加法部分运算后,从所述浮点输出端输出浮点运算结果。3.根据权利要求2所述的芯片,其特征在于,所述浮点专用单元包括:加法器A、加法器B、加法器C、移位单元、搜索单元和浮点结果输出单元;所述加法器A的输入端与所述定点通用单元的输出端、所述上级输入端分别相连,所述加法器B的输入端与所述定点通用单元的所述定点输出端、所述上级输入端、所述移位单元的输出端分别相连,所述加法器C的输入端与所述定点通用单元的输出端、所述搜索单元的输出端分别相连;所述移位单元的输入端与所述加法器A的输出端、所述加法器B的输出端分别相连,所述搜索单元的输入端与所述加法器B的输出端、所述加法器C的输出端分别相连,所述浮点结果输出单元与所述加法器B的输出端、所述搜索单元的输出端分别相连。4.根据权利要求3所述的芯片,其特征在于,所述第一操作数A、所述第二操作数B和所述第三操作数C为浮点数,所述浮点数包括指数部分和小数部分;所述定点通用单元,用于将所述第一操作数A的小数部分和所述第二操作数B的小数部分相乘,得到所述第一中间结果;还用与将所述第一操作数A指数部分与所述第二操作数B的指数部分相加,得到第一指数和;所述加法器A,用于将所述第一指数和与所述第三操作数C的指数部分的负值相加,得到第二指数和;所述移位单元,用于根据所述第二指数和得到移位对象和移位位数,所述移位对象是所述第一中间结果或者所述第三操作数C的小数部分;当所述移位对象是所述第一中间结果时,根据所述移位位数对所述第一中间结果移位得到所述移位后的第一中间结果;或者,当所述移位对象是所述第三操作数C的小数部分时,根据所述移位位数对所述第三操作数C的小数部分移位得到所述移位后的所述第三操作数C的小数部分;所述加法器B,用于当所述移位对象是所述第一中间结果时,将移位后的第一中间结果与所述第三操作数C的小数部分相加得到小数和;或者,当所述移位对象是所述第三操作数C的小数部分时,将所述第一中间结果与移位后的所述第三操作数C的小数部分相加得到所述小数和;所述搜索单元,用于根据所述小数和得到小数结果、以及计算得到指数的相对偏移值,并从所述加法器C得到浮点结果的指数结果;所述加法器C,用于将所述相对偏移值与所述第一指数和相加,得到所述指数结果;所述浮点结果输出单元,用于根据所述小数和的符号位确定所述浮点结果的符号位;将所述浮点结果的符号位、所述小数结果和所述指数结果拼接在一起生成所述浮点运算结果。5.根据权利要求1至4任一所述的芯片,其特征在于,所述乘累加模块还包括:数据重组器;所述第一输入端和所述第二输入端通过所述数据重组器与所述定点通用单元相连;所述数据重组器,用于在所述计算模式为第一定点计算模式时,将来自所述第一输入端的第一操作数A和来自所述第二输入端的第二操作数B分别重组为m组第一子操作数A和第二子操作数B,第一/第二子操作数的比特位宽k=第一/第二操作数的第一比特位宽2N/m;在所述计算模式为第二定点计算模式时,将所述第一操作数A和所述第二操作数B拆分为m组第四子操作数D和第五子操作数E,第四/第五子操作数的比特位宽k=第四/第五操作数的第二比特位宽2N/m;其中,所述第二比特位宽/所述第一比特位宽=2M,m、k、N为正整数,M是小于N的任意正整数。所述定点通用单元,还用于在所述计算模式为所述第一定点计算模式时,将所述m组第一子操作数A和第二子操作数B相乘后与所述上级输入端输入的m个第三子操作数C分别累加,从所述定点输出端输出定点运算结果;所述定点通用单元,还用于在所述计算模式为所述第二定点计算模式时,将所述m组第四子操作数D和第五子操作数E相乘后与所述上级输入端输入的m个第三子操作数C分别累加,从所述定点输出端输出定点运算结果。6.根据权利要求5所述的芯片,其特征在于,所述数据重组器包括m组重组输出端,所述m组重组输出端中的第i组重组输出端包括第一重组输出端Ai和第二重组输出端Bi;所述定点通用单元包括个乘法器和个加法器,所述h为所述第二比特位宽的最小取值,h、X为正整数;所述个乘法器中的第j个乘法器的第一输入端与第f组重组输出端中的第一重组输出端Af相连,所述第...

【专利技术属性】
技术研发人员:李嘉昕
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东,44

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

1