CN111666063B - 一种基于随机计算的增函数实现装置 - Google Patents

一种基于随机计算的增函数实现装置 Download PDF

Info

Publication number
CN111666063B
CN111666063B CN202010322059.8A CN202010322059A CN111666063B CN 111666063 B CN111666063 B CN 111666063B CN 202010322059 A CN202010322059 A CN 202010322059A CN 111666063 B CN111666063 B CN 111666063B
Authority
CN
China
Prior art keywords
value
random
unit
generating unit
random sequence
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.)
Active
Application number
CN202010322059.8A
Other languages
English (en)
Other versions
CN111666063A (zh
Inventor
王瑶
邱禹欧
秦子迪
董虹希
郑沐晗
王宇宣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing University 5d Technology Co ltd
Original Assignee
Nanjing Weixin Photoelectric System Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nanjing Weixin Photoelectric System Co ltd filed Critical Nanjing Weixin Photoelectric System Co ltd
Priority to CN202010322059.8A priority Critical patent/CN111666063B/zh
Publication of CN111666063A publication Critical patent/CN111666063A/zh
Application granted granted Critical
Publication of CN111666063B publication Critical patent/CN111666063B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes

Abstract

本发明公开了一种基于随机计算的增函数实现装置。该装置包括截位单元、部分值λ生成单元、部分值生成单元、随机序列发生单元、逻辑计算单元和计数器,其中,截位单元用于把输入数据拆分为表示分段序号的数据和表示段内位置的剩余有效数据d两部分;部分值λ生成单元用于生成目标函数值的一个部分值λ;部分值生成单元用于生成目标函数值的另一个部分值随机序列发生单元用于将目标函数的三个部分值λ、和d转换为随机序列;逻辑计算单元用于完成随机序列的乘法等基本运算;计数器用于将统计逻辑计算单元产生的随机序列转换为计算结果的二进制表示。相较于已有的增函数实现装置,本发明不仅硬件资源消耗少且计算精度更高。

Description

一种基于随机计算的增函数实现装置
技术领域
本发明涉及超大规模集成电路设计领域,具体涉及一种基于随机计算的增函数实现装置。
背景技术
随机计算已广泛应用于机器学习、信号处理、数据挖掘、自动控制、差错控制编码等领域。随机计算方法可以实现各类数值函数,例如,计算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的数值为/>可以表明x在第n段内的相对大小,x[9:0]将直接输出至随机序列发生单元。
随后,由于对于同一分段内的所有数据,n的值确定后λ固定不变,16种可能的n的取值与16种可能的λ的取值一一对应。因此可以预先计算出n与λ的对应关系,将每一bit的16种λ的值与4bit的n值整理成真值表,通过卡诺图法得到10个化简后的逻辑函数表达式,映射为相应的组合逻辑电路构建为λ生成单元(λ-GU)。在λ生成单元中,输入的4bit的n值可以快速产生10bit的λ值,同时占用很少的硬件资源。当n=0,1,2…15时,将λ(n)的取值罗列如下表:
表1λ的取值情况
本实施例中取λ的高10位作为λ生成单元的输出。当n=0,1,2…15时,λ的每一位与4bit的n值对应的逻辑函数表达式罗列如表2所示:其中A=n[3]、B=n[2]、C=n[1]、D=n[0]分别表示k值的四位,分别表示n值的四位取反,λ[i]表示λ的第i位。
表2λ与n的逻辑函数表达式
此外,由于对于同一分段内的所有数据,n的值确定后/>固定不变,16种可能的n的取值与16种可能的/>的取值一一对应。因此可以预先计算出n与/>的对应关系,将每一bit的16种/>的值与4bit的n值整理成真值表,通过卡诺图法得到10个化简后的逻辑函数表达式,映射为相应的组合逻辑电路构建为/>生成单元/>在/>生成单元中,输入的4bit的n值可以快速产生10bit的/>值,同时占用很少的硬件资源。当n=0,1,2…15时,将/>的取值罗列如下表:
表3的取值情况
本实施例中取的高10位作为/>生成单元的输出。当n=0,1,2…15时,/>的每一位与4bit的n值对应的逻辑函数表达式罗列如表4:其中/>表示/>的第i位。
表4与n的逻辑函数表达式
经前述处理完成后得到三路数据,包括截位单元输出的10bit的d值、λ生成单元输出的10bit的λ值和生成单元输出的10bit的/>值,分别对应为随机序列发生单元(SNGU)中的三个随机序列发生器(SNG)的输入,经过处理后转换为三路随机序列。图2为随机序列发生器的结构示意图,包括10位线性反馈移位寄存器(LFSR)、输入寄存器和比较器,每个时钟周期,线性反馈移位寄存器(LFSR)通过10个D触发器和组合逻辑反馈产生10bit随机数,随后在由与或门构成的比较器中,将生成的随机数与输入值进行比较与概率计算,从而判断随机序列发生器传送给逻辑计算单元的输出应为“1”还是“0”,随机序列发生器发生器产生的随机序列中出现“1”的概率由随机序列发生器的输入数值决定,输入数据为B的N位SNG产生的随机序列中出现“1”的概率为B*2-N。下面以输入为λ的SNG(SNG_λ)为例描述随机序列的产生过程:首先将输入的10bitλ存入输入寄存器;如图3所示的10bit线性反馈移位寄存器(LFSR)的初始值设定为10’b0111_0011_01,随后1024个时钟周期中,LFSR将伪随机地产生一个10bit数;每个时钟周期,LFSR生成的随机数与输入的λ值将在由与或门构成的比较器中进行比较,从而得出随机序列发生器的输出应为“1”还是“0”,比较器输出的BitStream即为SNGU产生的随机序列,具体比较电路如图2所示;等待1024个时钟周期后,随机序列发生器(SNG)即可产生一串长度为1024且出现“1”的概率等于λ*2-10的随机序列。类似地,其余两个随机序列发生器(/>SNG_d)中,移位寄存器的初始值分别设定为10’b0011_1011_00和10’b1110_1011_00,分别可以产生长度为1024且出现“1”的概率等于d*2-10和/>的随机序列。
本实施例计算开始后的1024个时钟周期,逻辑计算单元(LCU)接收到随机序列发生单元(SNGU)传递来的三路随机序列,即每个时钟周期逻辑计算单元的输入为对应λ的1bit比特流、对应的1bit比特流和对应d的1bit比特流。在逻辑计算单元中,三路比特流按照公式(2)中的关系计算,具体过程为:对应d的1bit比特流先通过非门取反完成1d的计算;非门的输出和对应/>的1bit比特流相“与”后取反,完成/>的计算;与非门的输出和对应λ的1bit比特流相“与”,完成乘法运算,与门的结果即为式(2)结果对应的随机序列。
本实施例中,计数器(Counter)的输入为长度为1024的随机序列,每个时钟周期接收随机序列中的1bit,当随机序列中出现“1”时,累加器加1,1024个时钟周期结束后,10bit累加器中的数值可表示输入的随机序列中出现“1”的概率,此时将10bit累加器中的数值作为计数器的输出。经过1024个时钟周期,计数器可以将输入的长度为1024的随机序列转化为sin(x)的10bit实数结果输出。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,本实施例仅对区间划分为16段计算sin(x)的情况进行举例说明,任何在(0,1)区间内单调增的函数都可以采用本发明的方法进行计算,实际应用中,还可以根据精度需要而改变区间的分段数目和随机序列的长度。
以上所述,仅为本发明部分具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

Claims (6)

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所述的一种基于随机计算的增函数实现装置,其特征在于,所述部分值λ生成单元采用与或非门电路实现二进制λ值与标号n的二进制数值的逻辑表达式。
3.根据权利要求1所述的一种基于随机计算的增函数实现装置,其特征在于,所述部分值生成单元采用与或非门实现二进制/>值与标号n的二进制数值的逻辑表达式。
4.根据权利要求1所述的一种基于随机计算的增函数实现装置,其特征在于,所述随机序列发生单元包括三个随机序列发生器,分别生成三组随机比特流,其中每组比特流中出现“1”的概率分别由每个随机序列发生器的输入值决定。
5.根据权利要求4所述的一种基于随机计算的增函数实现装置,其特征在于,所述随机序列发生器包括线性反馈移位寄存器、输入寄存器和比较器,所述线性反馈移位寄存器利用移位寄存器和组合逻辑反馈产生随机数;所述输入寄存器用于存储随机序列发生器的输入数据;所述比较器包括与或门,用于将线性反馈移位寄存器生成的随机数与输入值比较的结果作为比特流的一位输入逻辑计算单元。
6.根据权利要求1所述一种基于随机计算的增函数实现装置,其特征在于,所述逻辑计算单元包括非门、与非门和与门,用于对随机序列发生单元输出的比特流进行逻辑运算。
CN202010322059.8A 2020-04-22 2020-04-22 一种基于随机计算的增函数实现装置 Active CN111666063B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010322059.8A CN111666063B (zh) 2020-04-22 2020-04-22 一种基于随机计算的增函数实现装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010322059.8A CN111666063B (zh) 2020-04-22 2020-04-22 一种基于随机计算的增函数实现装置

Publications (2)

Publication Number Publication Date
CN111666063A CN111666063A (zh) 2020-09-15
CN111666063B true CN111666063B (zh) 2023-09-26

Family

ID=72382689

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010322059.8A Active CN111666063B (zh) 2020-04-22 2020-04-22 一种基于随机计算的增函数实现装置

Country Status (1)

Country Link
CN (1) CN111666063B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113407788B (zh) * 2021-06-30 2023-10-27 上海思朗科技有限公司 一种数据处理方法、装置和系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101038232A (zh) * 2007-02-07 2007-09-19 北京航空航天大学 一种非高斯随机振动激励信号生成方法及其装置
CN104238995A (zh) * 2013-06-21 2014-12-24 中国人民解放军信息工程大学 一种非线性反馈移位寄存器
EP3057079A1 (en) * 2013-10-10 2016-08-17 Nippon Telegraph And Telephone Corporation Secret parallel processing device, secret parallel processing method, and program
CN109508175A (zh) * 2018-11-14 2019-03-22 重庆邮电大学 基于分数阶混沌和祖冲之算法的伪随机数发生器的fpga设计

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101038232A (zh) * 2007-02-07 2007-09-19 北京航空航天大学 一种非高斯随机振动激励信号生成方法及其装置
CN104238995A (zh) * 2013-06-21 2014-12-24 中国人民解放军信息工程大学 一种非线性反馈移位寄存器
EP3057079A1 (en) * 2013-10-10 2016-08-17 Nippon Telegraph And Telephone Corporation Secret parallel processing device, secret parallel processing method, and program
CN109508175A (zh) * 2018-11-14 2019-03-22 重庆邮电大学 基于分数阶混沌和祖冲之算法的伪随机数发生器的fpga设计

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张雪锋 ; 范九伦 ; .基于混沌系统的伪随机序列生成方法.计算机工程与应用.2010,(第29期),全文. *

Also Published As

Publication number Publication date
CN111666063A (zh) 2020-09-15

Similar Documents

Publication Publication Date Title
KR102653822B1 (ko) 혼성 신호 컴퓨팅 시스템 및 방법
CN109816105B (zh) 一种可配置的神经网络激活函数实现装置
US20230359571A1 (en) System and methods for mixed-signal computing
CN105913118A (zh) 一种基于概率计算的人工神经网络硬件实现装置
CN111666063B (zh) 一种基于随机计算的增函数实现装置
Zhang et al. Parallel hybrid stochastic-binary-based neural network accelerators
JP2021517301A (ja) 確率的丸めロジック
CN104038770A (zh) 一种基于随机计算的离散余弦变换实现方法及系统
Premkumar et al. Improved memoryless RNS forward converter based on the periodicity of residues
US11275563B2 (en) Low-discrepancy deterministic bit-stream processing using Sobol sequences
Jain et al. Design of radix-4, 16, 32 approx booth multiplier using error tolerant application
KR102340412B1 (ko) 스토캐스틱 연산을 위한 로그-양자화된 곱셈 및 누적기와 이를 포함하는 가속기
Xu et al. Hardware design of a kind of grid multi-scroll chaotic system based on a MSP430f169 chip
Rafiq et al. An efficient architecture of modified booth multiplier using hybrid adder
CN111428195A (zh) 一种基于随机计算的减函数近似计算装置
KR102263694B1 (ko) 확률컴퓨팅 회로의 정확도를 높이기 위한 장치
TWI387921B (zh) 利用中央極限定理之常態分佈亂數產生器及其亂數產生方法
Semerenko The theory of parallel CRC codes based on automata models
CN113988279A (zh) 一种支持负值激励的存算阵列输出电流读出方法及系统
Sadath Design of a Novel Encoder for Flash Analog to Digital Converter
PV et al. Design and implementation of efficient stochastic number generator
CN111428196A (zh) 一种基于随机计算的非单调函数近似计算装置
RU2081450C1 (ru) Генератор n-значной псевдослучайной последовательности
Acevedo-Mosqueda et al. Complexity of Alpha-Beta bidirectional associative memories
Asadi Energy Efficient Stochastic Computing with Low-discrepancy Sequences

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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20240409

Address after: 210000 floor 13, building 04, accelerator, No. 18, Jialing Jiangdong Street, Jianye District, Nanjing, Jiangsu Province

Patentee after: NANJING UNIVERSITY 5D TECHNOLOGY Co.,Ltd.

Country or region after: China

Address before: 9/F, Building B, No. 100, Tianjiao Road, Qilin Hi-tech Industrial Development Zone, Jiangning District, Nanjing, Jiangsu, 210000

Patentee before: Nanjing Weixin Photoelectric System Co.,Ltd.

Country or region before: China

TR01 Transfer of patent right