一种基于随机计算的增函数实现装置制造方法及图纸

技术编号:25636535 阅读:40 留言:0更新日期:2020-09-15 21:29
本发明专利技术公开了一种基于随机计算的增函数实现装置。该装置包括截位单元、部分值λ生成单元、部分值

【技术实现步骤摘要】
一种基于随机计算的增函数实现装置
本专利技术涉及超大规模集成电路设计领域,具体涉及一种基于随机计算的增函数实现装置。
技术介绍
随机计算已广泛应用于机器学习、信号处理、数据挖掘、自动控制、差错控制编码等领域。随机计算方法可以实现各类数值函数,例如,计算tanh和sigmoid等深度神经网络中的非线性激活函数以及sin、cos、sinh和cosh等图像处理与信号处理中的常用函数。随机计算基于概率统计思想,将数值转化为随机序列进行处理,其中单极表示方法适用于取值范围为(0,1)的数据处理。随机计算方式基于随机序列,可以将复杂的乘法器等算术单元改用简单门电路实现,虽然在延迟与精度方面有所损失,但具有更高的容错率与更低的硬件复杂度。此外,随机计算电路具有低功耗特性,在移动终端和嵌入式系统中具有广泛应用前景。目前已有学者提出基于有限状态机(FSM)或Maclaurin多项式和Horner规则或Bernstein多项式或分段线性(PWL)逼近等思想实现各类函数计算的随机电路。然而这些电路的硬件复杂度与拟合精度仍然不够理想。
技术实现思路
本专利技术旨在提供一种可以近似计算在(0,1)区间内的增函数的硬件装置,该装置的实现基于随机计算和分段线性近似方法。本专利技术的技术方案为:一种基于随机计算的增函数实现装置,包括截位单元、部分值λ生成单元、部分值生成单元、随机序列发生单元、逻辑计算单元和计数器,所述截位单元,用于根据分段间距k对输入的二进制数据x截位拆分,k=2-m,m=1,2,3……;并将高m位作为所属分段的标号n,分别输送给部分值λ生成单元和部分值生成单元,剩余的低位数据直接输送给随机序列发生单元;所述部分值λ生成单元,用于将分段标号n转换成目标函数值f(x)的一个部分值λ=f[(n+1)k],并将λ值输出给随机序列发生单元;所述部分值生成单元,用于将分段标号n转换成目标函数值f(x)的一个部分值并将值输出给随机序列发生单元;所述随机序列发生单元,用于生成随机比特流并输送给逻辑计算单元;所述逻辑计算单元,用于将随机比特流转化为目标函数值f(x)的随机比特流结果,并输出给计数器;所述计数器,用于将目标函数值f(x)的随机比特流结果转化为二进制结果输出。本专利技术基于随机计算、分段线性近似方法和组合逻辑映射方法,提供了一种创新地近似计算增函数的装置,该装置仅使用寄存器、简单门电路和一个计数器即可完成目标函数的近似计算,避免了大量查找表、乘法器、加法器等硬件资源的消耗,从而既可以提升拟合计算结果的精度又可以占用更少的硬件资源,更加符合目前各类应用的硬件装置面积更小、功耗更小、性能更佳的设计趋势。因此,相较于已有的算术函数实现装置,本专利技术不仅硬件资源消耗少且计算精度更高。附图说明图1是本专利技术装置的整体架构图。图2是随机序列发生器(SNG)的基本结构示意图。图3是线性反馈移位寄存器(LFSR)的基本结构示意图。图4是逻辑计算单元(LCU)的基本结构示意图。具体实施方式下面结合本专利技术实施例中的附图对本专利技术方案作进一步详细的说明。显然,以下描述的实施例仅仅是本专利技术的一部分实施例,而不是全部实施例。基于本专利技术的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例都属于本专利技术的保护范围。如图1所示,本专利技术的一种基于随机计算的增函数实现装置,包括截位单元(<<m)、λ生成单元(λ-GU)、生成单元随机序列发生单元(SNGU)、逻辑计算单元(LCU)和计数器(Counter)。整个(0,1)区间被划分为段,每段间距均为k(k=2-m,m=1,2,3……)。目标函数值f(x)根据一阶泰勒展开改写为式(1)进行近似计算,其中,x为函数自变量,x∈(0,1),表征自变量x所属分段的序号,x0=(n+1)k为第n段段尾处的自变量值,λ=f[(n+1)k]、和分别为目标函数值f(x)的三个部分值,λ,d∈(0,1)。sin(x)是在(0,1)区间内单调增的一种典型函数,sin(x)的近似计算在信号处理等领域十分重要。例如,在信号发生器中,以周期性变化的相位作为自变量计算sin(x)得到正弦波信号,并根据正弦信号产生三角波、方波等其他类型的信号。下面以sin(x)作为目标函数,将(0,1)区间分为16段进行计算的一个具体实施例如下:根据公式(1),本实施例中采用如下公式对sin函数进行近似:其中,x为函数自变量,x∈(0,1),为分段间距,m=4,表征自变量x所属分段的序号,λ=sin[(n+1)k]、和分别为目标函数值sin(x)的三个部分值,λ,d∈(0,1)。本实施例的近似计算sin函数的装置,其输入x的取值范围为(0,1),输出函数结果的取值范围也为(0,1)。其中,截位单元(<<m)对输入的自变量x进行拆分,高m位表征数据所属的分段序号n,输送给λ生成单元(λ-GU)和生成单元用于产生目标函数的两个部分值λ和对于同一段内的数据即分段序号n不变时λ和的值也不变;x的剩余低位数据即为d,可以表征数据在段内的相对位置,直接输送给随机序列发生单元(SNGU)。λ生成单元根据比特映射原理,将输出数据λ与输入值n的一一对应关系转换为10个逻辑表达式并用简单门电路实现,从而输入的分段标号n可以在λ生成单元(λ-GU)内通过逻辑门映射变换为10bit的λ,并输出给随机序列发生单元(SNGU)。生成单元根据比特映射原理,将输出数据与输入值n的一一对应关系转换为10个逻辑表达式并用简单门电路实现,从而输入的分段标号n可以在生成单元内通过逻辑门映射变换为10bit的并输出给随机序列发生单元(SNGU)。随机序列发生单元(SNGU)包括三个独立且结构相同的随机序列发生器(SNG),三个SNG分别将目标函数值f(x)的三个部分值λ、和d中的一个作为输入转换为三组一定长度的随机序列输出给逻辑计算单元(LCU)。逻辑计算单元(LCU)完成式(1)中两个乘法(*)和两个与1相减(1)的运算,具体为:对目标函数的三个部分值λ、和d对应的三组随机序列进行逻辑运算,d对应的随机序列比特流先通过非门取反得到1d的值,随后和对应的随机比特流作为两个输入送入与非门得到的值,与非门的输出结果再和λ对应的随机序列相“与”,与门的结果即为式(1)结果对应的随机序列。计数器(Counter)利用10bit累加器统计输入的比特流中出现“1”的概率,当目标函数值f(x)对应的随机序列中出现“1”时,累加器加1,从而将随机序列转化得到目标函数值f(x)二进制结果输出。下面详细说明每个单元的功能以及具体实施过程:如图1所示,本实施例中的输入x为14bit无符号定点数。首先在截位单元(<<m)中,输入数据x被拆分为两部分输出。x高4bit的数值为可以表明x所属的分段序号,n有16种可能的取值,x[13:10]将输出至λ生成单元和生成单元;x低10bit本文档来自技高网...

【技术保护点】
1.一种基于随机计算的增函数实现装置,其特征在于,该装置包括截位单元、部分值λ生成单元、部分值

【技术特征摘要】
1.一种基于随机计算的增函数实现装置,其特征在于,该装置包括截位单元、部分值λ生成单元、部分值生成单元、随机序列发生单元、逻辑计算单元和计数器,
所述截位单元,用于根据分段间距k对输入的二进制数据x截位拆分,k=2-m,m=1,2,3......;并将高m位作为所属分段的标号n,分别输送给部分值λ生成单元和部分值生成单元,剩余的低位数据直接输送给随机序列发生单元;
所述部分值λ生成单元,用于将分段标号n转换成目标函数值f(x)的一个部分值λ=f[(n+1)k],并将λ值输出给随机序列发生单元;
所述部分值生成单元,用于将分段标号n转换成目标函数值f(x)的一个部分值并将值输出给随机序列发生单元;
所述随机序列发生单元,用于生成随机比特流并输送给逻辑计算单元;
所述逻辑计算单元,用于将随机比特流转化为目标函数值f(x)的随机比特流结果,并输出给计数器;
所述计数器,用于将目标函数值f(x)的随机比特流结果转化为二进制结果输出。


2.根据权利要求1所述的一种基于随机计算的增函数实现装置,其特征在于,所述部分值λ生成单元采用与或非门电路...

【专利技术属性】
技术研发人员:王瑶邱禹欧秦子迪董虹希郑沐晗王宇宣
申请(专利权)人:南京惟心光电系统有限公司
类型:发明
国别省市:江苏;32

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

1