[发明专利]一种定点乘累加器有效
申请号: | 201710059453.5 | 申请日: | 2017-01-24 |
公开(公告)号: | CN106897046B | 公开(公告)日: | 2019-04-23 |
发明(设计)人: | 周沈刚;李任伟 | 申请(专利权)人: | 青岛专用集成电路设计工程技术研究中心 |
主分类号: | G06F7/57 | 分类号: | G06F7/57 |
代理公司: | 青岛联智专利商标事务所有限公司 37101 | 代理人: | 陆田 |
地址: | 266200 山东省青岛市*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 定点 累加器 | ||
本发明公开了一种定点乘累加器,包括:Booth编码单元,用于对乘数进行Booth编码;左移逻辑单元,用于当被乘数为小数时,将被乘数左移一位、低位补零;Booth译码/部分积产生单元,用于产生部分积;压缩树,用于压缩部分积,输出两个压缩数据;压缩器,用于压缩累加器和压缩树提供的数据;加法器,用于对压缩器输出的数据进行加法操作,输出结果。本发明的定点乘累加器,实现了定点整数/小数乘法、乘累加/减功能、溢出判断功能,且不增加乘累加器的延时,保证了处理器的性能。
技术领域
本发明涉及处理器技术领域,尤其涉及一种定点乘累加器。
背景技术
乘法操作被用于大部分算法中,特别是在信号处理算法中,乘累加操作是核心操作之一,这使得每秒可执行乘累加操作数(MAC/S)成为简单衡量一个数字信号处理器计算能力的指标之一。不仅是在数字信号处理器中,通用处理器为了中也集成了乘法器,某些通用处理器为了加速图像处理或其他科学计算,也使用了乘累加器。
在现有技术中,一个乘累加器的结构通常是使用Booth编码和压缩树进行乘法的基本操作,而累加器的值一般参与压缩树的最后压缩,在得到两个压缩结果之后,使用超前进位加法器将两者相加,得到最终的乘累加结果。一般情况下,乘法器所在通路是所有计算单元的关键通路所在。
在处理器的设计中,需要使用定点乘累加器完成多种形式的操作:
(1)有符号乘法、无符号乘法,甚至有符号数与无符号数相乘;
(2)定点整数乘法和定点小数乘法;
(3)乘累加和乘累减;
(4)乘法结果饱和操作。
第(1)种操作已经有非常成熟的实现方法,在两位Booth编码中,有无符号数参与的计算会增加一个部分积。
第(2)种操作中,定点整数与定点小数的计算区别仅在于,小数乘法结果需要左移一位。在现在的技术中,一般是在乘法压缩结果得出之后,根据操作类型决定是否对结果进行移位操作。而该移位操作将增加乘累加器关键通路的长度。
第(3)种操作在FFT以及类蝶形运算中出现的较多,乘法结果与累加器之间做加法或减法操作都是算法中较为常用的。在现有的技术中,往往是在乘法结果给出之后,根据操作类型,选择乘法压缩结果的反或者原值,然后与累加器的进行加法操作。其中,仅仅对结果进行取反是不够的,对每一个取反的数仍需要加1,一般情况下压缩结果的进位最低位与加法器的初始进位可以解决该问题。这种方法的缺点同样是在关键通路中增加选择,从而加长累加器的路径长度。
第(4)种操作也较为常见。为了与浮点格式相匹配,一般在处理器中只处理Q(n-1)格式的定点小数(n是数据位宽),即最高位是符号位,其余均是小数的尾数部分,其表示范围是-1~(1-2-(n-1)),精度是2-(n-1)。所以当两个-1相乘时,从表示范围即可看出该操作超出了表示范围。实际上在不做处理的情况下,两个-1相乘得到的仍然是-1,这与实际结果相差太多,所以一般这时候需要在累加前进行饱和处理,将其饱和至最接近1的正数(1-2-(n-1))。在现有的技术中,同样是在乘法结果得出之后进行饱和选择处理,其缺点依然是增加了关键路径的长度。
综上,如果一个乘累加器需要完成上述操作,需要增加多级选择器才可实现,而乘法器作为所有计算单元的关键通路,增加任何一点延时都将导致性能的降低。
发明内容
本发明提供了一种定点乘累加器,在不增加延时的情况下,既可实现定点整数乘法又可实现定点小数乘法。
为解决上述技术问题,本发明采用下述技术方案予以实现:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于青岛专用集成电路设计工程技术研究中心,未经青岛专用集成电路设计工程技术研究中心许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710059453.5/2.html,转载请声明来源钻瓜专利网。