CN117195923A - 一种自适应时钟电路、乘法运算电路及乘法运算的方法 - Google Patents
一种自适应时钟电路、乘法运算电路及乘法运算的方法 Download PDFInfo
- Publication number
- CN117195923A CN117195923A CN202311001065.3A CN202311001065A CN117195923A CN 117195923 A CN117195923 A CN 117195923A CN 202311001065 A CN202311001065 A CN 202311001065A CN 117195923 A CN117195923 A CN 117195923A
- Authority
- CN
- China
- Prior art keywords
- bit
- target
- tail
- decoded
- exponent
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 18
- 230000003044 adaptive effect Effects 0.000 claims abstract description 26
- 238000012545 processing Methods 0.000 claims description 12
- 238000005516 engineering process Methods 0.000 abstract description 7
- 230000005540 biological transmission Effects 0.000 description 5
- 238000009826 distribution Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009827 uniform distribution Methods 0.000 description 1
Landscapes
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
本发明公开了一种自适应时钟电路、乘法运算电路及乘法运算的方法,所述自适应时钟电路包括:捕获单元、异步数据缓冲器以及延时控制链模块;所述捕获单元用于比较第一尾数位以及第二尾数位的位宽,并获取两者之中的最大位宽;所述延时控制链模块用于根据最大位宽匹配所述异步数据缓冲器的延时时钟;所述异步数据缓冲器用于根据延时时钟传输数据。本发明基于Posit独特的数据特性,通过捕获单元获取最大位宽,并应用自适应时钟技术,根据最大位宽匹配所述异步数据缓冲器的延时时钟,以解决Posit乘法器速度慢的问题,同时自适应时钟电路的控制逻辑精简而高效,相比于其他提速方案大大减小了面积以及功耗开销,性能显著提高。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及的是一种自适应时钟电路、乘法运算电路及乘法运算的方法。
背景技术
乘法运算是高性能处理器以及深度学习加速器中使用最频繁的运算之一,乘法器单元的设计很大程度决定了整个电路系统的性能以及面积与功耗开销。一般的浮点数乘法的思路可以概括为:两符号位异或,指数位相加,尾数位相乘。Posit乘法的算法思路与浮点数乘法基本一致,但是需要增加额外的解码模块去表示指数部分,Posit乘法系统通过增加额外的解码模块可以消耗更少的存储空间和更小的传输带宽去完成高精度算法。
为了权衡Posit乘法器解码带来的额外硬件开销,目前关于Posit乘法器硬件电路优化策略的研究主要有两项先进研究,一是利用Posit非均匀精度的特性来支持实时多精度需求的运算,此技术通过只实现一个支持动态识别不同精度的硬件,来替代多精度运算应用中为每个精度单独设计的多套硬件,大大减少了同应用下的面积功耗开销,但是代价却是牺牲了并行计算的速度,只适用于对性能要求不高而对面积和功耗有严格约束的场景。
二是利用Posit动态位宽的特性,实时根据动态位宽去禁用当前有效的数据通路,来达到减少功耗的目的(因为对于不同的Posit数值,权重位和尾数位的位宽是在动态变化的,而在硬件电路设计中,必须为可能出现的最大位宽去设计硬件以满足任何场景下的需求,这导致在实际运行过程中并不是所有数据通路都是有效的。)此方法虽减小了功耗开销,但仍然没有突破Posit乘法器运算速度慢的瓶颈。
因此,现有技术还有待于改进和发展。
发明内容
鉴于上述现有技术的不足,本发明的目的在于提供一种基于自适应时钟的乘法运算电路,以解决现有技术中乘法器不能同时解决面积以及功耗大且运算速度慢的问题。
本发明的技术方案如下:
一种自适应时钟电路,包括:捕获单元、异步数据缓冲器以及延时控制链模块;
所述捕获单元用于比较第一尾数位以及第二尾数位的位宽,并获取两者之中的最大位宽,所述第一尾数位以及所述第二尾数位为浮点数经过解码后的小数;
所述延时控制链模块用于根据最大位宽匹配所述异步数据缓冲器的延时时钟;
所述异步数据缓冲器用于根据延时时钟传输数据。
本发明的进一步设置,所述延时控制链模块包括:
第一判断单元,用于根据最大位宽输出控制信号;
延时链,用于产生不同时钟频率;
第一数据选择器,用于根据控制信号确定延时时钟。
本发明的进一步设置,所述延时链包括若干个原语门,所述原语门包括与门以及若干个反相器;
首个所述原语门中所述与门的第一输入端连接所述第一数据选择器的输出端,首个所述原语门中所述与门的第二输入端接入使能时钟;
所述与门的输出端连接所述原语门中的首个所述反相器的输入端;
所述原语门中尾部的所述反相器的输出端连接次个所述原语门中所述与门的第一输入端;
次个所述原语门中所述与门的第二输入端连接所述第一判断单元的输出端。
一种乘法运算电路,包括:解码器、运算模块、编码器以及如上所述的自适应时钟电路;
所述解码器用于将两个浮点数进行解码,得到解码后的第一符号位、第二符号位、第一权重位、第二权重位、第一指数偏置位、第二指数偏置位、第一尾数位以及第二尾数位;
所述运算模块根据第一符号位、第二符号位、第一权重位、第二权重位、第一指数偏置位、第二指数偏置位、第一尾数位以及第二尾数位进行运算得到两个浮点数相乘后的目标符号位、目标指数数值以及目标尾数位;
所述编码器用于根据目标符号位、目标指数数值以及目标尾数位得到目标运算结果;
所述自适应时钟电路用于比较第一尾数位以及第二尾数位的位宽,并获取两者之中的最大位宽,同时根据最大位宽匹配对应的延时时钟,以改变获取流动数据的速度;其中,所述流动数据包括第一符号位、第二符号位、第一权重位、第二权重位、第一指数偏置位、第二指数偏置位、第一尾数位、第二尾数位、目标符号位、目标指数数值以及目标尾数位。
本发明的进一步设置,所述乘法运算电路还包括:第二判断单元以及第二数据选择器;
所述第二判断单元用于判断两个浮点数中的任一浮点数是否为特殊值,如果两位浮点数中的任一浮点数为特殊值时,则将特殊值输入第二数据选择器;
所述第二数据选择器用于在接收到特殊值时,输出特殊值,否则,输出目标运算结果。
本发明的进一步设置,所述第二数据选择器为三选一多路选择器。
本发明的进一步设置,所述特殊值为无穷大或零。
本发明的进一步设置,所述运算模块包括:异或门,用于将第一符号位以及第二符号位进行异或得到目标符号位;
乘法器,用于将第一尾数位以及第二尾数位进行相乘得到目标尾数位;
最高有效位单元,用于确定所述目标尾数位的最高位,并将目标尾数位的最高位输出至指数处理模块;
指数处理模块,用于将第一权重位、第二权重位、第一指数偏置位、第二偏置位以及目标尾数位的最高位进行处理得到目标指数数值。
一种乘法运算的方法,所述方法包括:
将两个浮点数进行解码,得到解码后的第一符号位、第二符号位、第一权重位、第二权重位、第一指数偏置位、第二指数偏置位、第一尾数位以及第二尾数位;
捕获第一尾数位以及第二尾数位的最大位宽,并根据第一尾数位以及第二尾数位的最大位宽匹配对应的延时时钟,以改变获取流动数据的速度;其中,所述流动数据包括第一符号位、第二符号位、第一权重位、第二权重位、第一指数偏置位、第二指数偏置位、第一尾数位、第二尾数位、目标符号位、目标指数数值以及目标尾数位;
根据第一符号位、第二符号位、第一权重位、第二权重位、第一指数偏置位、第二指数偏置位、第一尾数位以及第二尾数位进行运算得到两个浮点数相乘后的目标符号位、目标指数数值以及目标尾数位;
根据目标符号位、目标指数数值以及目标尾数位得到目标运算结果。
本发明的进一步设置,所述目标尾数位的最高位通过以下方式确定:
将第一尾数位的值与第二尾数位的值相乘,如果存在进位,则确定最高位为1;如果不存在进位,则确定最高位为0
本发明所提供的一种自适应时钟电路、乘法运算电路及乘法运算的方法,所述自适应时钟电路包括:捕获单元、异步数据缓冲器以及延时控制链模块;所述捕获单元用于比较第一尾数位以及第二尾数位的位宽,并获取两者之中的最大位宽,所述第一尾数位以及所述第二尾数位为浮点数经过解码后的小数;所述延时控制链模块用于根据最大位宽匹配所述异步数据缓冲器的延时时钟;所述异步数据缓冲器用于根据延时时钟传输数据。本发明基于Posit独特的数据特性,通过捕获单元获取最大位宽,并应用自适应时钟技术,根据最大位宽匹配所述异步数据缓冲器的延时时钟,以解决Posit乘法器速度慢的问题,同时自适应时钟电路的控制逻辑精简而高效(仅需增加捕获单元以及延时控制链模块),相比于其他提速方案大大减小了面积以及功耗开销,性能显著提高。
附图说明
为了更清楚的说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
图1是本发明中乘法运算电路的结构原理图。
图2是本发明中延时控制链模块的结构原理图。
图3是本发明中乘法运算的方法的流程图。
图4是本发明中乘法运算电路功能波形图。
图5是本发明中四种经典统计学数据分布下采用自适应时钟电路优化前后的总延时对比图。
具体实施方式
本发明提供一种自适应时钟电路、乘法运算电路及乘法运算的方法,为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在实施方式和申请专利范围中,除非文中对于冠词有特别限定,否则“一”、“一个”、“所述”和“该”也可包括复数形式。若本发明实施例中有涉及“第一”、“第二”等的描述,则该“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。
应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
经发明人发现,若是采用常规的浮点数乘法运算,则是通过两符号位异或,两指数位相加,两尾数位相乘得到两个浮点数相乘的结果。但若要消耗更少的存储空间和更小的传输带宽去完成高精度算法,则需要采用Posit乘法运算,即需要增加额外的解码模块,也就是在Posit乘法运算中需要引入权重位以及指数偏置位来确定指数位,其中,权重位代表数值的量级尾数位的位宽代表数值的精度,这导致总位宽不变的情况下量级越小的数精度越大,量级越大的数精度越小,因此,通过利用动态变化的权重位的位宽,使尾数位的位宽也处于动态变化中,以此来满足精度需求。
但是额外增加的解码模块也同时带来了额外硬件开销,现有技术中不管利用Posit非均匀精度的特性来支持实时多精度需求的运算,还是利用Posit动态位宽的特性,都无法在保证的精度同时,解决面积以及功耗大且运算速度慢的问题。
针对上述技术问题,请同时参阅图1至图2,本发明提供了一种自适应时钟电路的较佳实施例。
如图1所示,本发明提供的一种自适应时钟电路100,包括:捕获单元、异步数据缓冲器以及延时控制链模块;所述捕获单元用于比较第一尾数位m1以及第二尾数位m2的位宽,并获取两者之中的最大位宽X1,所述第一尾数位m1以及所述第二尾数位m2为浮点数经过解码后的小数;所述延时控制链模块用于根据最大位宽X1匹配所述异步数据缓冲器的延时时钟;所述异步数据缓冲器用于根据延时时钟传输数据。其中,所述异步数据缓冲器包括第一异步数据缓冲器以及第二异步数据缓冲器,所述第一异步数据缓冲器用于接收解码后输入的数据,所述第二异步数据缓冲器用于接收进行乘法运算后的数据。需要说明的是,图1中F1表示所述第一异步数据缓冲器输出的数据,F2表示所述第二异步数据缓冲器输出的数据。
具体地,两个浮点数以posit数据格式输入至乘法运算电路,乘法运算电路则对两个进行解码,确定两个浮点数的符号位、权重位、指数偏置位以及尾数位。由于尾数位的位宽可以确定乘法运算的精度,因此,通过捕获单元比较第一尾数位m1以及第二尾数位m2的位宽,并获取两者之中的最大位宽X1,以此确定尾数位的位宽来匹配合适的精度。同时通过所述延时控制链根据最大位宽X1匹配所述异步数据缓冲器的延时时钟,以改变获取流动数据的速度,也就是实时改变所述异步数据缓冲器的时钟传输数据的速度,从而达到最大化程度利用资源的目的,同时无需增加额外的部件,即无需在牺牲面积和功耗的基础上,去匹配对应的精度。
其中,若第一尾数位m1的位宽大于第二尾数位m2的位宽,则最大位宽X1为第一尾数位m1的位宽。需要说明的是,若没有根据尾数位的最大位宽X1匹配所述异步数据缓冲器的延时时钟,那么乘法运算电路则可以以可能出现的最大位宽X1对应的逻辑延时作为时钟周期,这导致在小位宽来临时延时减小,而时钟始终是以最大位宽X1对应的最慢的周期运行的,导致时序冗余;而根据最大位宽X1匹配所述异步数据缓冲器的延时时钟,即根据有效位宽来实时改变时钟频率,时钟不再是最慢速度,而是会实时自适应提速,所以会带来性能上的提升。
在一种实施例中,如图2所示,所述延时控制链模块包括:第一判断单元110,用于根据最大位宽X1输出控制信号Y1;延时链120,用于产生不同时钟频率;第一数据选择器130,用于根据控制信号Y1确定延时时钟。
具体地,所述第一判断单元110接收最大位宽X1,其中,由于需要的精度不同,那么输入至第一判断单元110的最大位宽X1则不定变化,因此,通过所述第一判断单元110实时根据最大位宽X1输出控制信号Y1,并将控制信号Y1输出至所述第一数据选择器130,以选择不同的档位,例如,当最大位宽X1大于2,则输出第一指令,当最大位宽X1大于5,则输出第二指令。延时链120可以理解为传输或者存储数据的时钟周期,所述第一判断单元110分别与所述延时链120以及第一数据选择器130连接,当选择档位后,所述第一数据选择器130则会选择信号传播路径,可以理解为延时链120的时钟周期,以此达到实时提速的目的。
在一种实施例中,如图2所示,所述延时链120包括若干个原语门,所述原语门包括与门以及若干个反相器;首个所述原语门中所述与门的第一输入端连接所述第一数据选择器130的输出端,首个所述原语门中所述与门的第二输入端接入使能时钟;所述与门的输出端连接所述原语门中的首个所述反相器的输入端;所述原语门中尾部的所述反相器的输出端连接次个所述原语门中所述与门的第一输入端;次个所述原语门中所述与门的第二输入端连接所述第一判断单元110的输出端。其中,首个所述原语门中所述与门的第一输入端为反向输入端,可以理解为,首个所述原语门中所述与门的第一输入端通过一个反相器与所述第一数据选择器130的输出端连接。
具体地,如图2所示,当所述使能时钟为0时,锁住所述延时链120,此时,所述第一数据选择器130选择的时钟周期恒为0。当所述使能时钟为1时,所述延时链120开始启动,使能时钟经过原语门,所述第一数据选择器130、再经过一个反相器达到首个所述原语门中所述与门时完成一次跳变沿的触发,即产生时钟周期。其中,时钟周期的大小取决于使能时钟所经过的所述原与门的数目,因此,通过所述第一数据选择器130的输出端连接所述延时链120的一端,所述第一数据选择器130的输入端分别连接所述延时链120的另一端以及所述第一判断单元110的输出端,以根据最大位宽X1产生的控制信号Y1决定所述第一数据选择器130的输出那条传输途径,从而确定延时,同时,所述第一判断单元110的输出端还与次个所述原语门中所述与门的第二输入端连接,以锁住没有被所述第一数据选择器130选择的路径上的信号状态。
本发明基于同样的发明构思,如图1所示,提供了一种乘法运算电路,所述乘法运算电路包括解码器、运算模块200、编码器以及自适应时钟电路100;所述解码器用于将两个浮点数进行解码,得到解码后的第一符号位s1、第二符号位s2、第一权重位r1、第二权重位r2、第一指数偏置位e1、第二指数偏置位e2、第一尾数位m1以及第二尾数位m2;所述运算模块200根据第一符号位s1、第二符号位s2、第一权重位r1、第二权重位r2、第一指数偏置位e1、第二指数偏置位e2、第一尾数位m1以及第二尾数位m2进行运算得到两个浮点数相乘后的目标符号位s3、目标指数数值e3以及目标尾数位m3;所述编码器用于根据目标符号位s3、目标指数数值e3以及目标尾数位m3得到目标运算结果;所述自适应时钟电路100用于比较第一尾数位m1以及第二尾数位m2的位宽,并获取两者之中的最大位宽X1,同时根据最大位宽X1匹配对应的延时时钟,以改变获取流动数据的速度;其中,所述流动数据包括第一符号位s1、第二符号位s2、第一权重位r1、第二权重位r2、第一指数偏置位e1、第二指数偏置位e2、第一尾数位m1、第二尾数位m2、目标符号位s3、目标指数数值e3以及目标尾数位m3。
具体的,如图1所示,所述解码器接收posit数据格式的第一浮点数以及posit数据格式的第二浮点数,并对第一浮点数以及第二浮点数进行解码,得到解码后的第一符号位s1、第二符号位s2、第一权重位r1、第二权重位r2、第一指数偏置位e1、第二指数偏置位e2、第一尾数位m1以及第二尾数位m2。其中,所述第一符号位s1以及所述第二符号位s2用来判断数值的正负,所述第一权重位r1以及所述第二权重位r2用来决定指数部分的权重值,即检测相同的1或0的数量,其中,所述第一权重位r1以及所述第二权重位r2的位数可变,以全0或者权1开始,当用完的位数或者出现与前面不同的比特时结束。所述第一指数偏置位e1以及所述第二指数偏置位e2的解码则是直接取所述第一浮点数以及所述第二浮点数的指数位的二进制无符号数值。所述第一尾数位m1以及所述第二尾数位m2表示数值的小数。通过所述运算模块200将第一符号位s1、第二符号位s2、第一权重位r1、第二权重位r2、第一指数偏置位e1、第二指数偏置位e2、第一尾数位m1以及第二尾数位m2进行运算得到两个浮点数相乘后的目标符号位s3、目标指数数值e3以及目标尾数位m3;其中,所述第一权重位r1以及所述第一指数偏置位e1共同决定所述第一浮点数的目标指数数值e3,所述第二权重位r2以及所述第二偏置位共同决定所述第二浮点数的目标指数数值e3,由所述运算模块200进行对所述第一权重位r1、所述第一指数偏置位e1、所述第二权重位r2以及所述第二偏置位进行处理得到两个浮点数相乘后的目标指数值。所述编码器则会根据目标符号位s3、目标指数数值e3以及目标尾数位m3得到目标运算结果。可以理解为将相乘后的两个浮点数进行解码。在数据传输的过程中,会由系统时钟控制所述数据传输的速度,因此,通过自适应时钟电路100根据最大位宽X1匹配对应的延时时钟,以达到精准匹配关键路径动态组合逻辑延时的效果,减小时序冗余,实时自适应提速。
需要说明的是,Posit数据类型解码通项公式为:
其中,s代表代表符号位(第一符号位s1的值或者第二符号位s2的值),es是与Posit总位宽关联的预先设定好的参数(例如,对于Posit-(32,2)数据类型,32代表总位宽,2代表es的值),k代表权重位解码后的权重值(第一权重位r1的值或者第二权重位r2的值),e代表指数偏置位得到的偏置值(第一指数偏置位e1的值或者第二指数偏置位e2的值),m代表尾数位(第一尾数位m1的值或者第二尾数位m2的值),mb代表当前情况下的尾数位宽。
在一种实施例中,如图1所示,所述乘法运算电路还包括:第二判断单元以及第二数据选择器;所述第二判断单元用于判断两个浮点数中的任一浮点数是否为特殊值,如果两位浮点数中的任一浮点数为特殊值时,则将特殊值输入第二数据选择器;所述第二数据选择器用于在接收到特殊值时,输出特殊值,否则,输出目标运算结果。
具体地,如图1所示,当接收到两个posit格式的浮点数输入时,首先对两个浮点数进行判断是否为特殊值,如果是特殊值,所述第二数据选择器则会优先输出特殊值,也就是说,此时即使接收到所述编码器输出的目标运算结果,也会输出特殊值。而在所述第二数据选择器没有接收到特殊值时,则会输出所述目标运算结果。由于在遇到特殊值会优先输出特殊值,而不是再通过所述运算模块200进行运算,因此,减少了数据位宽,从而进一步达到了提速的目的。
在一种实施例中,所述特殊值为无穷大或零。
具体地,在该实施例中,所述第二数据选择器为三选一多路选择器,若当所述特殊值为无穷大或零时,那么两个浮点数相乘的结果只能是无穷大或零。因此,通过第二数据选择器进行优先选择输出,以减少时序冗余,进而进一步达到提速的目的。需要说明的是,考虑到零乘以任何数都为零,因此,所述特殊值为零的优先级大于所述特殊值为零的优先级。
在一种实施例中,所述运算模块200包括:异或门,用于将第一符号位s1以及第二符号位s2进行异或得到目标符号位s3;乘法器,用于将第一尾数位m1以及第二尾数位m2进行相乘得到目标尾数位m3;最高有效位单元MSB,用于确定所述目标尾数位m3的最高位,并将目标尾数位m3的最高位输出至指数处理模块;指数处理模块,用于将第一权重位r1、第二权重位r2、第一指数偏置位e1、第二偏置位以及目标尾数位m3的最高位进行处理得到目标指数数值e3。
具体地,如图1所示,通过将所述第一符号位s1以及所述第二符号位s2异或得到所述第一符号位s1以及所述第二符号相乘后的目标符号位s3。通过乘法器将第一尾数位m1以及第二尾数位m2进行相乘得到目标尾数位m3,而目标尾数位m3则可能存在进位,因此,通过设置最高有效位单元MSB来确定目标尾数位m3的最高位,并输入至所述指数处理模块,由所述指数处理模块将第一权重位r1、第二权重位r2、第一指数偏置位e1、第二偏置位以及目标尾数位m3的最高位进行处理得到目标指数数值e3,以此得到两个浮点数相乘后的二进制代码。
基于同样的发明构思,如图3所示。本发明还提供了一种乘法运算的方法,所述方法包括:
S100、将两个浮点数进行解码,得到解码后的第一符号位、第二符号位、第一权重位、第二权重位、第一指数偏置位、第二指数偏置位、第一尾数位以及第二尾数位;具体如一种乘法运算电路的实施例所述,在此不再赘述。
S200、捕获第一尾数位以及第二尾数位的最大位宽,并根据第一尾数位以及第二尾数位的最大位宽匹配对应的延时时钟,以改变获取流动数据的速度;其中,所述流动数据包括第一符号位、第二符号位、第一权重位、第二权重位、第一指数偏置位、第二指数偏置位、第一尾数位、第二尾数位、目标符号位、目标指数数值以及目标尾数位;具体如一种乘法运算电路的实施例所述,在此不再赘述。
S300、根据第一符号位、第二符号位、第一权重位、第二权重位、第一指数偏置位、第二指数偏置位、第一尾数位以及第二尾数位进行运算得到两个浮点数相乘后的目标符号位、目标指数数值以及目标尾数位;具体如一种乘法运算电路的实施例所述,在此不再赘述。
S400、根据目标符号位、目标指数数值以及目标尾数位得到目标运算结果。具体如一种乘法运算电路的实施例所述,在此不再赘述。
在一种实施例中,所述目标尾数位的最高位通过以下方式确定:
将所述第一尾数位的值与所述第二尾数位的值相乘,如果存在进位,则确定最高位为1;如果不存在进位,则确定最高位为0。
为验证本实施例乘法运算电路的优越性,本实施进行了仿真实验与,仿真结果如图4所示,图4为本实施例中乘法运算电路功能波形图,从图4可以看出在自适应时钟域下,时钟信号aclk会根据输入的有效位宽产生不同时钟周期的时钟信号,在系统时钟域下,输出序列也生成了正确的Posit乘法结果。
本发明相较于常规Posit乘法器架构采用自适应时钟技术,在数据呈现四种经典统计学数据分布下(、正态分布norm(6.5,0.5)、均匀分布uniform、指数分布exp(0.5)、逆指数分布(inv_exp(0.5)),效果如图5所示,其中,pre-opt代表没有自适应时钟电路前的总延时),以微量的额外功耗面积开销带来了最高48%的吞吐量提升,具有在深度学习加速器上的应用价值。
综上所述,本发明所提供的一种自适应时钟电路、乘法运算电路及乘法运算的方法,所述自适应时钟电路包括:捕获单元、异步数据缓冲器以及延时控制链模块;所述捕获单元用于比较第一尾数位以及第二尾数位的位宽,并获取两者之中的最大位宽,所述第一尾数位以及所述第二尾数位为浮点数经过解码后的小数;所述延时控制链模块用于根据最大位宽匹配所述异步数据缓冲器的延时时钟;所述异步数据缓冲器用于根据延时时钟传输数据。本发明基于Posit独特的数据特性,通过捕获单元获取最大位宽,并应用自适应时钟技术,根据最大位宽匹配所述异步数据缓冲器的延时时钟,以解决Posit乘法器速度慢的问题,同时自适应时钟电路的控制逻辑精简而高效,相比于其他提速方案大大减小了面积以及功耗开销,性能显著提高。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (10)
1.一种自适应时钟电路,其特征在于,包括:捕获单元、异步数据缓冲器以及延时控制链模块;
所述捕获单元用于比较第一尾数位以及第二尾数位的位宽,并获取两者之中的最大位宽,所述第一尾数位以及所述第二尾数位为浮点数经过解码后的小数;
所述延时控制链模块用于根据最大位宽匹配所述异步数据缓冲器的延时时钟;
所述异步数据缓冲器用于根据延时时钟传输数据。
2.根据权利要求1所述的自适应时钟电路,其特征在于,所述延时控制链模块包括:
第一判断单元,用于根据最大位宽输出控制信号;
延时链,用于产生不同时钟频率;
第一数据选择器,用于根据控制信号确定延时时钟。
3.根据权利要求2所述的自适应时钟电路,其特征在于,所述延时链包括若干个原语门,所述原语门包括与门以及若干个反相器;
首个所述原语门中所述与门的第一输入端连接所述第一数据选择器的输出端,首个所述原语门中所述与门的第二输入端接入使能时钟;
所述与门的输出端连接所述原语门中的首个所述反相器的输入端;
所述原语门中尾部的所述反相器的输出端连接次个所述原语门中所述与门的第一输入端;
次个所述原语门中所述与门的第二输入端连接所述第一判断单元的输出端。
4.一种乘法运算电路,其特征在于,包括:解码器、运算模块、编码器以及权利要求1-3任一项所述的自适应时钟电路;
所述解码器用于将两个浮点数进行解码,得到解码后的第一符号位、第二符号位、第一权重位、第二权重位、第一指数偏置位、第二指数偏置位、第一尾数位以及第二尾数位;
所述运算模块根据第一符号位、第二符号位、第一权重位、第二权重位、第一指数偏置位、第二指数偏置位、第一尾数位以及第二尾数位进行运算得到两个浮点数相乘后的目标符号位、目标指数数值以及目标尾数位;
所述编码器用于根据目标符号位、目标指数数值以及目标尾数位得到目标运算结果;
所述自适应时钟电路用于比较第一尾数位以及第二尾数位的位宽,并获取两者之中的最大位宽,同时根据最大位宽匹配对应的延时时钟,以改变获取流动数据的速度;其中,所述流动数据包括第一符号位、第二符号位、第一权重位、第二权重位、第一指数偏置位、第二指数偏置位、第一尾数位、第二尾数位、目标符号位、目标指数数值以及目标尾数位。
5.根据权利要求4所述的乘法运算电路,其特征在于,还包括:第二判断单元以及第二数据选择器;
所述第二判断单元用于判断两个浮点数中的任一浮点数是否为特殊值,如果两位浮点数中的任一浮点数为特殊值时,则将特殊值输入第二数据选择器;
所述第二数据选择器用于在接收到特殊值时,输出特殊值,否则,输出目标运算结果。
6.根据权利要求5所述的乘法运算电路,其特征在于,所述第二数据选择器为三选一多路选择器。
7.根据权利要求5所述的乘法运算电路,其特征在于,所述特殊值为无穷大或零。
8.根据权利要求4所述的乘法运算电路,其特征在于,所述运算模块包括:
异或门,用于将第一符号位以及第二符号位进行异或得到目标符号位;
乘法器,用于将第一尾数位以及第二尾数位进行相乘得到目标尾数位;
最高有效位单元,用于确定所述目标尾数位的最高位,并将目标尾数位的最高位输出至指数处理模块;
指数处理模块,用于将第一权重位、第二权重位、第一指数偏置位、第二偏置位以及目标尾数位的最高位进行处理得到目标指数数值。
9.一种乘法运算的方法,其特征在于,所述方法包括:
将两个浮点数进行解码,得到解码后的第一符号位、第二符号位、第一权重位、第二权重位、第一指数偏置位、第二指数偏置位、第一尾数位以及第二尾数位;
捕获第一尾数位以及第二尾数位的最大位宽,并根据第一尾数位以及第二尾数位的最大位宽匹配对应的延时时钟,以改变获取流动数据的速度;其中,所述流动数据包括第一符号位、第二符号位、第一权重位、第二权重位、第一指数偏置位、第二指数偏置位、第一尾数位、第二尾数位、目标符号位、目标指数数值以及目标尾数位;
根据第一符号位、第二符号位、第一权重位、第二权重位、第一指数偏置位、第二指数偏置位、第一尾数位以及第二尾数位进行运算得到两个浮点数相乘后的目标符号位、目标指数数值以及目标尾数位;
根据目标符号位、目标指数数值以及目标尾数位得到目标运算结果。
10.根据权利要求9所述的乘法运算的方法,其特征在于,所述目标尾数位的最高位通过以下方式确定:
将第一尾数位的值与第二尾数位的值相乘,如果存在进位,则确定最高位为1;如果不存在进位,则确定最高位为0。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311001065.3A CN117195923A (zh) | 2023-08-09 | 2023-08-09 | 一种自适应时钟电路、乘法运算电路及乘法运算的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311001065.3A CN117195923A (zh) | 2023-08-09 | 2023-08-09 | 一种自适应时钟电路、乘法运算电路及乘法运算的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117195923A true CN117195923A (zh) | 2023-12-08 |
Family
ID=89000680
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311001065.3A Pending CN117195923A (zh) | 2023-08-09 | 2023-08-09 | 一种自适应时钟电路、乘法运算电路及乘法运算的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117195923A (zh) |
-
2023
- 2023-08-09 CN CN202311001065.3A patent/CN117195923A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111522528B (zh) | 乘法器、乘法运算方法、运算芯片、电子设备及存储介质 | |
CN108139885B (zh) | 浮点数舍入 | |
US5440504A (en) | Arithmetic apparatus for digital signal processor | |
CN114816331B (zh) | 具有时钟选通的用于执行矩阵乘法的硬件单元 | |
EP2057535B1 (en) | Multi-stage floating-point accumulator | |
US5111421A (en) | System for performing addition and subtraction of signed magnitude floating point binary numbers | |
US6988119B2 (en) | Fast single precision floating point accumulator using base 32 system | |
Jothin et al. | High performance significance approximation error tolerance adder for image processing applications | |
CN111507465A (zh) | 一种可配置的卷积神经网络处理器电路 | |
US11609741B2 (en) | Apparatus and method for processing floating-point numbers | |
US11269594B2 (en) | Apparatus and method for processing floating-point numbers | |
US20200192633A1 (en) | Arithmetic processing device and method of controlling arithmetic processing device | |
KR102037043B1 (ko) | 세밀한 정밀도 조정이 가능한 곱셈누적기 | |
CN117195923A (zh) | 一种自适应时钟电路、乘法运算电路及乘法运算的方法 | |
CN115268832A (zh) | 浮点数取整的方法、装置以及电子设备 | |
JPH05204602A (ja) | 制御信号の方法と装置 | |
JPH09222991A (ja) | 加算方法および加算器 | |
WO2014105187A1 (en) | Leading change anticipator logic | |
WO2007083377A1 (ja) | パリティ生成回路、計数回路および計数方法 | |
US6725360B1 (en) | Selectively processing different size data in multiplier and ALU paths in parallel | |
Sarkar et al. | A reconfigurable architecture for posit arithmetic | |
US6044063A (en) | Unsigned integer comparator | |
US20230133360A1 (en) | Compute-In-Memory-Based Floating-Point Processor | |
US20210389931A1 (en) | Context-Aware Bit-Stream Generator for Deterministic Stochastic Computing | |
Pathak | A review of approximate adders for energy-efficient digital signal processing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |