CN111857650A - 一种基于镜像查找表实现任意浮点型运算的硬件计算系统及其计算方法 - Google Patents

一种基于镜像查找表实现任意浮点型运算的硬件计算系统及其计算方法 Download PDF

Info

Publication number
CN111857650A
CN111857650A CN202010773110.7A CN202010773110A CN111857650A CN 111857650 A CN111857650 A CN 111857650A CN 202010773110 A CN202010773110 A CN 202010773110A CN 111857650 A CN111857650 A CN 111857650A
Authority
CN
China
Prior art keywords
module
data
result
mirror
lookup table
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.)
Granted
Application number
CN202010773110.7A
Other languages
English (en)
Other versions
CN111857650B (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
Original Assignee
Nanjing University
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 University filed Critical Nanjing University
Priority to CN202010773110.7A priority Critical patent/CN111857650B/zh
Publication of CN111857650A publication Critical patent/CN111857650A/zh
Application granted granted Critical
Publication of CN111857650B publication Critical patent/CN111857650B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/487Multiplying; Dividing
    • G06F7/4876Multiplying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • 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
    • G06F7/556Logarithmic or exponential functions
    • 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/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • G06F7/575Basic arithmetic logic units, i.e. devices selectable to perform either addition, subtraction or one of several logical operations, using, at least partially, the same circuitry
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Nonlinear Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Image Processing (AREA)
  • Complex Calculations (AREA)

Abstract

本发明涉及一种基于镜像查找表实现任意浮点型运算的硬件计算系统及其计算方法,计算系统包括调度模块,进行总体任务的调度和连接;镜像查找表模块,存储镜像查找表,实现多分类并行查找;延时模块,对输入数据进行延拍,实现流水计算;分段乘法器模块,将输入32位的定点型乘法因数分别分为4个8位的因子进行计算,对应相乘后,将输出数据整合截位,最终输出32位的乘法结果;数据处理单元模块,包含定浮转换单元和加法单元。有益效果:本发明采用镜像查找表和多段乘法器,内部运用多分类并行执行的方法,在确保硬件计算性能和精度高的前提下,降低算法的硬件资源开销,并降低实际硬件运行功耗和计算运行周期,适用于各种场景下类似
Figure 100004_DEST_PATH_IMAGE002
的计算。

Description

一种基于镜像查找表实现任意浮点型运算的硬件计算系统及 其计算方法
技术领域
本发明涉及函数计算的硬件实现领域,具体涉及一种基于镜像查找表实现任意浮点型运算的硬件计算系统及其计算方法。
背景技术
查找表(Look_Up_Table)简称为LUT,在本质上实现的是一个静态的RAM,目前大量的用于硬件算法和函数的实现中,相较于传统逻辑算法实现,查找表方法在硬件实现中使用更少的时钟周期数以及更高的运行效率。但同时,查找表方法需要占用一部分硬件实现面积用于存储固定数值的点数,一般算法所需要的精度越高,查找表所需要存储的点数就会呈现几何倍数递增,导致硬件实现面积相对于其他类型的实现方式变大。LUT方式多数用于对精度要求不高,但对时序要求较高的硬件实现中,在当前硬件发展工业中,大多用于对幂指数函数、对数函数和神经网络的各类激活函数(sigmoid、tanh、relu等)等函数运算的硬件实现。
Figure 100002_DEST_PATH_IMAGE002
运算作为一种常见的基本运算函数,包含了开根、指数运算等基本运算的实现,在集成电路IP发展和实际工业运用中占据十分重要的地位。
当前对
Figure 325287DEST_PATH_IMAGE002
运算主要的实现方式有线性近似、Talyor展开法以及传统的查找表等方式,这些方法大多存在硬件面积大、时序周期长、精度差等缺点,因此研究一种综合全面的
Figure 362513DEST_PATH_IMAGE002
函数硬件IP实现,对于现代集成电路工业技术发展具有十分重要的意义。
发明内容
发明目的:旨在克服以上现有技术的不足,综合考虑硬件实现的精度、面积功耗和周期方面,提供一种利用镜像查找表和分段乘法器,在保证
Figure 109890DEST_PATH_IMAGE002
函数实现的高精度的同时,降低硬件实现面积和功耗,减少运算时钟周期。
技术方案:一种基于镜像查找表实现任意浮点型运算的硬件计算系统,包括任务调度模块、镜像LUT模块、分段乘法器模块。
所述任务调度模块进行任务的调度和连接。所述任务调度模块按照任务调度调用延时模块和数据处理单元模块,将控制处理的数据送入镜像LUT模块和分段乘法器模块,最终输出指数函数的最终运算结果。
所述镜像LUT模块存储镜像查找表,根据输入模块判决信号判断查找类型是以2为底的对数函数结果,或者是2的指数函数结果。
所述分段乘法器模块对输入32位的乘法因数乘法分别分为4个8位的乘法因子计算,对应相乘后,将输出数据整合截位,最终输出乘法结果。
在进一步的实施例中,镜像查找表分为dataX和dataY ,两种数据的值对于以2为底的对数函数和2的指数函数来说,两者的值域和定义域互为对方的镜像对称映射,其中dataX 存储的数据为
Figure 100002_DEST_PATH_IMAGE004
,dataY存储的数据为
Figure 100002_DEST_PATH_IMAGE006
,以上两种数据在硬件中均采用浮点类型表示。为了保证镜像查找表的运行时序达到1.5Ghz以上,采用对镜像查找表进行多分类,将1024点按照数值范围划分数据域,共分为32类,每一类中采用32路并行查找的方式,极大提高硬件运行能力。
在进一步的实施例中,所述镜像LUT模块包括MUX选通,当选择信号指向
Figure 100002_DEST_PATH_IMAGE008
功能时,则采用以dataX为查找因子,dataY为查找结果;当选择信号指向
Figure 100002_DEST_PATH_IMAGE010
功能时,则翻转镜像,采用以dataY为查找因子,dataX为查找结果。通过该方式减少存储的数据量,降低
Figure 100002_DEST_PATH_IMAGE012
查找表的面积。
基于镜像查找表实现
Figure 100002_DEST_PATH_IMAGE014
的硬件计算系统的具体计算流程如下:
步骤1、对于
Figure 100002_DEST_PATH_IMAGE016
Figure 100002_DEST_PATH_IMAGE018
运算函数输入浮点型数据
Figure 100002_DEST_PATH_IMAGE020
和定点型数据
Figure 100002_DEST_PATH_IMAGE022
,分别送入延时单元,实现硬件全流水;
步骤2、将浮点型数据
Figure 566629DEST_PATH_IMAGE020
分离出阶码
Figure 100002_DEST_PATH_IMAGE024
和尾数
Figure 100002_DEST_PATH_IMAGE026
,将尾数
Figure 512588DEST_PATH_IMAGE026
和MUX选择信号送入镜像LUT模块中,等待计算出的
Figure 100002_DEST_PATH_IMAGE028
的结果和输出有效信号;
步骤3、当镜像查找表模块的输出有效信号有效时,其查找结果与阶码
Figure 783033DEST_PATH_IMAGE024
通过加法单元可得
Figure 100002_DEST_PATH_IMAGE030
的结果,此结果与通过固定延时的定点型数据
Figure 283284DEST_PATH_IMAGE022
同步送入分段乘法模块中;
步骤4、当分段乘法模块的输出有效信号有效时,将得到
Figure 100002_DEST_PATH_IMAGE032
的计算结果,随后分离出整数位
Figure 100002_DEST_PATH_IMAGE034
和正小数位
Figure 100002_DEST_PATH_IMAGE036
,再将
Figure 828535DEST_PATH_IMAGE034
Figure 832263DEST_PATH_IMAGE036
分别送入到延时模块和镜像查找表模块;
步骤5、当镜像查找表模块的输出有效信号有效时,其查找结果作为浮点型输出数据的小数位,之前的
Figure 414554DEST_PATH_IMAGE034
加上偏移阶码127作为浮点型输出数据的整数位, xy的符号位相异或可得到结果的符号位,即最后输出
Figure 873873DEST_PATH_IMAGE018
的浮点型计算结果。
在进一步的实施例中,步骤2中当输入数据
Figure 100002_DEST_PATH_IMAGE038
有效时,通过数据处理单元模块中的定浮转换单元,将输入y转换为定点类型,再从输入x中分离出阶码
Figure 160498DEST_PATH_IMAGE024
和尾数
Figure 18732DEST_PATH_IMAGE026
,延时模块将定点型数据
Figure 99821DEST_PATH_IMAGE022
Figure 43506DEST_PATH_IMAGE020
的阶码
Figure 337084DEST_PATH_IMAGE024
和尾数
Figure 49825DEST_PATH_IMAGE026
分别进行固定延时,尾数
Figure 239498DEST_PATH_IMAGE026
送入镜像查找表模块,用于查找
Figure DEST_PATH_IMAGE040
的计算结果。
在进一步的实施例中,步骤3中当接收到镜像LUT模块的输出有效信号后,将阶码和
Figure DEST_PATH_IMAGE042
的结果送入加法单元,等待经过加法单元的结果和加法器输出有效信号,再将加法结果进行定浮转换,与定点型数据
Figure 529534DEST_PATH_IMAGE022
送入分段乘法器单元,进行乘法操作。
在进一步的实施例中,所述镜像LUT模块分时复用,同时实现以2为底的对数函数计算和以2为底的指数函数计算,通过输入的MUX信号对镜像LUT进行功能选择;镜像LUT模块内部进行多分类并行操作,根据输入的数据进行多路并行查找,首先查找输入数据的所在类别,随后进入该类别的数据池中查找出对应的结果数据。
在进一步的实施例中,所述的分段乘法模块实现浮点型数据的乘法功能,包含有两个乘法因数分别为:从延时模块接收到的定点型数据
Figure DEST_PATH_IMAGE044
从定浮转换单元中输出的
Figure DEST_PATH_IMAGE046
的定点型结果,分别将两个32位的乘法因数分别分为4段,每段数据位宽为8位,对应段进行乘法操作,最后输出为截位的32位定点型结果。
在进一步的实施例中,所述的输出32位浮点结果是由镜像查找表输出的结果、从
Figure DEST_PATH_IMAGE048
之积中分离的整数位加上127,拼接成一个32位的浮点型结果数据。
有益效果:本发明的基于镜像查找表实现的硬件实现方式采用浮点型数据格式,确保精度的条件下,针对工业中
Figure 954699DEST_PATH_IMAGE002
运算所支持的数据范围确定最佳的位宽配置方式。该方法既满足传统LUT设计的低时钟周期,同时通过算法计算和运用函数的数学特性生成特殊镜像查找表,实现降低硬件实现面积、实际功耗以及运行周期数,提高时序性能。对当前各类实现方式进行综合权衡,对当前电子通信领域中
Figure DEST_PATH_IMAGE050
的硬件设计具有综合性的性能提升。
附图说明
图1是本发明基于镜像查找表实现
Figure 870351DEST_PATH_IMAGE014
的硬件计算系统的模块示意图。
图2是实现任意浮点型
Figure DEST_PATH_IMAGE052
计算系统的流程图。
图3是镜像查找表(MIRROR_LUT)架构图。
图4是分段乘法器架构图。
具体实施方式
在下文的描述中,给出了大量具体的细节以便提供对本发明更为彻底的理解。然而,对于本领域技术人员而言显而易见的是,本发明可以无需一个或多个这些细节而得以实施。在其他的例子中,为了避免与本发明发生混淆,对于本领域公知的一些技术特征未进行描述。
申请人认为,当前对
Figure 558821DEST_PATH_IMAGE002
运算主要的实现方式有线性近似、Talyor展开法以及传统的查找表等方式,这些方法大多存在硬件面积大、时序周期长、精度差等缺点,因此研究一种综合全面的
Figure 477098DEST_PATH_IMAGE002
函数硬件IP实现,对于现代集成电路工业技术发展具有十分重要的意义。
为此,申请人综合考虑硬件实现的精度、面积功耗和周期方面,提供一种利用镜像查找表和分段乘法器,在保证
Figure 112479DEST_PATH_IMAGE002
函数实现的高精度的同时,降低硬件实现面积和功耗,减少运算时钟周期,具体由以下技术方案实现。
实施例一:
本实例所述的基于镜像查找表实现
Figure 799812DEST_PATH_IMAGE014
的硬件计算系统,主要是由任务调度模块、镜像LUT模块、延时模块、分段乘法器模块、数据处理单元模块组成,具体结构如图1所示。任务调度模块进行任务的调度和连接。镜像LUT模块存储镜像查找表,根据输入模块判决信号判断查找类型是以2为底的对数函数结果,或者是2的指数函数结果。分段乘法器模块对输入32位的乘法因数乘法分别分为4个8位的乘法因子计算,对应相乘后,将输出数据整合截位,最终输出乘法结果。
实施例二:
在实施例一的基础上,所述任务调度模块按照任务调度调用延时模块和数据处理单元模块,将控制处理的数据送入镜像LUT模块和分段乘法器模块,最终输出指数函数的最终运算结果。
实施例三:
在实施例一和实施例二的基础之上,所述计算系统计算指数函数的过程如下:
i.设定
Figure DEST_PATH_IMAGE054
,其中
Figure DEST_PATH_IMAGE056
Figure DEST_PATH_IMAGE058
的范围为任意的浮点数,
Figure 252659DEST_PATH_IMAGE056
采用浮点型表示为
Figure DEST_PATH_IMAGE060
Figure 923812DEST_PATH_IMAGE026
表示浮点数X的尾数、
Figure 628463DEST_PATH_IMAGE024
表示浮点数X的阶码;
ii.当输入数据
Figure DEST_PATH_IMAGE062
有效时,通过数据处理单元模块中的定浮转换单元,将输入Y转换为定点类型,再从输入X中分离出阶码
Figure 438811DEST_PATH_IMAGE024
和尾数
Figure 937926DEST_PATH_IMAGE026
,延时模块将定点型数据
Figure DEST_PATH_IMAGE064
Figure 96375DEST_PATH_IMAGE056
的阶码
Figure 73558DEST_PATH_IMAGE024
和尾数
Figure 735484DEST_PATH_IMAGE026
分别进行固定延时,尾数
Figure 671079DEST_PATH_IMAGE026
送入镜像查找表模块,用于查找
Figure DEST_PATH_IMAGE066
的计算结果;
iii.当镜像查找表模块(此时计算以2为底的对数函数)的输出有效(valid)信号有效时,其查找结果与阶码
Figure 51244DEST_PATH_IMAGE024
通过加法单元可得
Figure DEST_PATH_IMAGE068
的结果,此结果与通过固定延时的定点型
Figure 363277DEST_PATH_IMAGE058
同步送入分段乘法模块中;
iv.当分段乘法模块的输出有效(valid)信号有效时,将得到
Figure DEST_PATH_IMAGE070
的计算结果,随后分离出整数位
Figure 410867DEST_PATH_IMAGE034
和正小数位
Figure 251784DEST_PATH_IMAGE036
,再将
Figure 853667DEST_PATH_IMAGE034
Figure 435302DEST_PATH_IMAGE036
分别送入到延时模块和镜像查找表模块。
当镜像查找表模块(此时计算以2为底的指数函数)的输出有效(valid)信号有效时,其查找结果作为浮点型输出数据的小数位,之前的
Figure 806241DEST_PATH_IMAGE034
加上偏移阶码127(以单精度浮点型为例)作为浮点型输出数据的整数位, X、Y的符号位相异或可得到结果的符号位,即最后输出
Figure 83639DEST_PATH_IMAGE018
的浮点型计算结果。
实施例四:
在实施例二的基础之上,所述镜像LUT模块可以实现查找以2为底数的对数计算结果和2的指数计算结果,通过输入的MUX信号对镜像LUT进行功能选择,同时,镜像LUT内部进行了多分类并行操作,对输入的数据进行分类操作,当满足分类要求时,则进入该分类池中进行并行查找对应的结果数据。所述的分段乘法模块实现浮点型数据的乘法功能,包含有两个乘法因数分别为:从延时模块接收到的定点型数据
Figure 907238DEST_PATH_IMAGE044
从定浮转换单元中输出的
Figure 295494DEST_PATH_IMAGE046
的定点型结果,分别将两个32位的乘法因数分别分为4段,每段数据位宽为8位,对应段进行乘法操作,最后输出为截位的32位定点型结果。所述的输出32位浮点结果是由镜像查找表输出的结果、从
Figure 724201DEST_PATH_IMAGE048
之积中分离的整数位加上127,拼接成一个32位的浮点型结果数据。
实施例五:
上述实施例所述的基于镜像查找表实现
Figure 906921DEST_PATH_IMAGE014
的硬件计算系统的实现原理如下:
形如
Figure 483396DEST_PATH_IMAGE016
叫做
Figure DEST_PATH_IMAGE072
,其中
Figure 940922DEST_PATH_IMAGE020
和的范围为任意的浮点数。假定
Figure DEST_PATH_IMAGE074
,
Figure DEST_PATH_IMAGE076
,底数
Figure 614349DEST_PATH_IMAGE020
可用浮点型表示为
Figure DEST_PATH_IMAGE078
Figure 764707DEST_PATH_IMAGE026
为尾数、
Figure 562899DEST_PATH_IMAGE024
为阶码),则
Figure DEST_PATH_IMAGE080
Figure DEST_PATH_IMAGE082
其中,
Figure 951680DEST_PATH_IMAGE034
Figure DEST_PATH_IMAGE084
分离出的整数,
Figure 417296DEST_PATH_IMAGE036
Figure 472977DEST_PATH_IMAGE084
分离出的正小数部分。最后输出的结果为镜像LUT输出的
Figure DEST_PATH_IMAGE086
的结果与
Figure 758465DEST_PATH_IMAGE034
+127整合,具体为
Figure 292214DEST_PATH_IMAGE034
+127作为32位浮点数表示的整数位,
Figure 612337DEST_PATH_IMAGE086
的结果作为32位浮点数表示的小数位。
基于上述实施例所述的基于镜像查找表实现
Figure 307761DEST_PATH_IMAGE014
的硬件计算系统,实施例五提出一种具体计算流程(如图2):
步骤一:对于
Figure DEST_PATH_IMAGE088
运算函数输入浮点型数据
Figure 346124DEST_PATH_IMAGE020
和定点型数据
Figure DEST_PATH_IMAGE090
,分别送入延时单元,实现硬件全流水。
步骤二:将浮点型数据
Figure 742951DEST_PATH_IMAGE020
分离出阶码
Figure 855264DEST_PATH_IMAGE024
和尾数
Figure 987168DEST_PATH_IMAGE026
,将尾数
Figure 981669DEST_PATH_IMAGE026
和MUX选择信号送入镜像LUT模块中,等待计算出的
Figure DEST_PATH_IMAGE092
的结果和输出有效(valid)信号。
步骤三:当接收到镜像LUT模块的输出有效(valid)信号后,将阶码
Figure 388379DEST_PATH_IMAGE024
Figure 417515DEST_PATH_IMAGE042
的结果送入加法单元,等待经过加法单元的结果和加法器输出有效(valid)信号,再将加法结果进行定浮转换,与定点型数据
Figure 454741DEST_PATH_IMAGE090
送入分段乘法器单元,进行乘法操作。
步骤四:等待分段乘法器的计算结果和输出有效(valid)信号,将结果分离出整数部分
Figure 202118DEST_PATH_IMAGE034
和正小数部分
Figure 881361DEST_PATH_IMAGE036
,并将正小数部分
Figure 765003DEST_PATH_IMAGE036
和MUX信号送入到镜像LUT模块,等待计算出的
Figure 973130DEST_PATH_IMAGE086
的结果和输出有效(valid)信号。
步骤五:最后,在任务调度模块中,将
Figure 942223DEST_PATH_IMAGE086
的计算结果作为32位浮点数据的小数位,
Figure DEST_PATH_IMAGE094
作为32位浮点数据的整数位,输出最终的指数函数运算结果。
本实例所述的基于镜像查找表实现
Figure 690737DEST_PATH_IMAGE014
的硬件计算系统的镜像查找表(MIRROR_LUT)的设计,如图3所示,镜像查找表分为dataX和dataY ,两种数据的值对于以2为底的对数函数和2的指数函数来说,两者的值域和定义域互为对方的镜像对称映射,其中dataX 存储的数据为
Figure 431815DEST_PATH_IMAGE004
,dataY存储的数据为
Figure 279685DEST_PATH_IMAGE006
,以上两种数据在硬件中均采用浮点类型表示。为了保证镜像查找表的运行时序达到1.5Ghz以上,采用对镜像查找表进行多分类,将图中所示的1024点按照数值范围划分数据域,共分为32类,每一类中采用32路并行查找的方式,极大提高硬件运行能力。另外,镜像查找表模块含有MUX选通,当选择信号指向
Figure 736075DEST_PATH_IMAGE008
功能时,则采用以dataX为查找因子,dataY为查找结果;当选择信号指向
Figure 491541DEST_PATH_IMAGE010
功能时,则翻转镜像,采用以dataY为查找因子,dataX为查找结果。通过该方式减少存储的数据量,降低
Figure 615355DEST_PATH_IMAGE012
查找表的面积。
本实例所述的基于镜像查找表实现
Figure 430864DEST_PATH_IMAGE014
的硬件计算系统的分段乘法器的设计,如图4所示,将输入的32位乘法因子MUL_OP1和MUL_OP2分别分为4段,每段为8位数据,将分段的定点型数乘法因子对应进行乘法操作,每段都会得到16bit的结果数据,对四段结果数据进行截位操作,截取后8位进行位拼接,重新构成最终MUL_OP1和MUL_OP2的乘法结果。
如上所述,尽管参照特定的优选实施例已经表示和表述了本发明,但其不得解释为对本发明自身的限制。在不脱离所附权利要求定义的本发明的精神和范围前提下,可对其在形式上和细节上做出各种变化。

Claims (9)

1.一种基于镜像查找表实现任意浮点型运算的硬件计算系统,其特征在于包括如下模块:
进行总体的任务调度和模块连接的任务调度模块;
用于存储对称映射的镜像查找表的镜像LUT模块;
用于将输出数据整合截位最终输出结果的分段乘法器模块。
2.根据权利要求1所述的一种基于镜像查找表实现任意浮点型运算的硬件计算系统,其特征在于,所述任务调度模块按照任务调度延时单元和数据处理单元模块,控制处理的数据送入镜像LUT模块和分段乘法器模块,最终得到运算结果;
所述镜像LUT模块存储对称映射的镜像查找表,并进一步根据输入模块判决信号判断查找类型;
所述分段乘法器模块进一步用于将输入的32位定点型乘法因数分别分为4个8位的因子进行计算,对应相乘后,将输出数据整合截位,最终输出32位的乘法结果。
3. 根据权利要求1所述的一种基于镜像查找表实现任意浮点型运算的硬件计算系统,其特征在于,所述镜像查找表包括dataX和dataY两种数据,其中dataX 存储的数据为
Figure DEST_PATH_IMAGE002
,dataY存储的数据为
Figure DEST_PATH_IMAGE004
4.根据权利要求3所述的一种基于镜像查找表实现任意浮点型运算的硬件计算系统,其特征在于,所述镜像LUT模块包括MUX选通,当选择信号指向
Figure DEST_PATH_IMAGE006
功能时,则采用以dataX为查找因子,dataY为查找结果;当选择信号指向
Figure DEST_PATH_IMAGE008
功能时,则翻转镜像,采用以dataY为查找因子,dataX为查找结果。
5.一种基于镜像查找表实现任意浮点型运算的硬件计算方法,其特征在于包括如下步骤:
步骤1、对于
Figure DEST_PATH_IMAGE010
Figure DEST_PATH_IMAGE012
运算函数输入浮点型数据
Figure DEST_PATH_IMAGE014
和定点型数据
Figure DEST_PATH_IMAGE016
,分别送入延时单元,实现硬件全流水;
步骤2、将浮点型数据
Figure 220551DEST_PATH_IMAGE014
分离出阶码
Figure DEST_PATH_IMAGE018
和尾数
Figure DEST_PATH_IMAGE020
,将尾数
Figure 97240DEST_PATH_IMAGE020
和MUX选择信号送入镜像LUT模块中,等待计算出的
Figure DEST_PATH_IMAGE022
的结果和输出有效信号;
步骤3、当镜像查找表模块的输出有效信号有效时,其查找结果与阶码
Figure 44336DEST_PATH_IMAGE018
通过加法单元可得
Figure DEST_PATH_IMAGE024
的结果,此结果与通过固定延时的定点型数据
Figure 108107DEST_PATH_IMAGE016
同步送入分段乘法模块中;
步骤4、当分段乘法模块的输出有效信号有效时,将得到
Figure DEST_PATH_IMAGE026
的计算结果,随后分离出整数位
Figure DEST_PATH_IMAGE028
和正小数位
Figure DEST_PATH_IMAGE030
,再将
Figure 965729DEST_PATH_IMAGE028
Figure 900187DEST_PATH_IMAGE030
分别送入到延时模块和镜像查找表模块;
步骤5、当镜像查找表模块的输出有效信号有效时,其查找结果作为浮点型输出数据的小数位,之前的
Figure 690289DEST_PATH_IMAGE028
加上偏移阶码127作为浮点型输出数据的整数位, xy的符号位相异或可得到结果的符号位,即最后输出
Figure 975776DEST_PATH_IMAGE012
的浮点型计算结果。
6. 根据权利要求5所述的一种基于镜像查找表实现任意浮点型运算的硬件计算方法,其特征在于,步骤2中当输入数据
Figure DEST_PATH_IMAGE032
有效时,通过数据处理单元模块中的定浮转换单元,将输入y转换为定点类型,再从输入x中分离出阶码
Figure 571843DEST_PATH_IMAGE018
和尾数
Figure 626387DEST_PATH_IMAGE020
,延时模块将定点型数据
Figure 790652DEST_PATH_IMAGE016
Figure 297856DEST_PATH_IMAGE014
的阶码
Figure 369718DEST_PATH_IMAGE018
和尾数
Figure 544347DEST_PATH_IMAGE020
分别进行固定延时,尾数
Figure 410672DEST_PATH_IMAGE020
送入镜像查找表模块,用于查找
Figure DEST_PATH_IMAGE034
的计算结果。
7.根据权利要求5所述的一种基于镜像查找表实现任意浮点型运算的硬件计算方法,其特征在于,步骤3中当接收到镜像LUT模块的输出有效信号后,将阶码
Figure 201910DEST_PATH_IMAGE018
Figure DEST_PATH_IMAGE036
的结果送入加法单元,等待经过加法单元的结果和加法器输出有效信号,再将加法结果进行定浮转换,与定点型数据
Figure 160287DEST_PATH_IMAGE016
送入分段乘法器单元,进行乘法操作。
8.根据权利要求5所述的一种基于镜像查找表实现任意浮点型运算的硬件计算方法,其特征在于,所述镜像LUT模块分时复用,同时实现以2为底的对数函数计算和以2为底的指数函数计算,通过输入的MUX信号对镜像LUT进行功能选择;镜像LUT模块内部进行多分类并行操作,根据输入的数据进行多路并行查找,首先查找输入数据的所在类别,随后进入该类别的数据池中查找出对应的结果数据。
9.根据权利要求5所述的一种基于镜像查找表实现任意浮点型运算的硬件计算方法,其特征在于,所述分段乘法模块实现32位定点型数据的乘法功能,其两个乘法因数分别为:从延时模块接收到的定点型数据
Figure DEST_PATH_IMAGE038
的定点型结果,两个32位的乘法因数被分为4段,每段数据位宽为8位,对应段进行乘法操作,最后输出为截位的32位定点型结果。
CN202010773110.7A 2020-08-04 2020-08-04 一种基于镜像查找表实现任意浮点型运算的硬件计算系统及其计算方法 Active CN111857650B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010773110.7A CN111857650B (zh) 2020-08-04 2020-08-04 一种基于镜像查找表实现任意浮点型运算的硬件计算系统及其计算方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010773110.7A CN111857650B (zh) 2020-08-04 2020-08-04 一种基于镜像查找表实现任意浮点型运算的硬件计算系统及其计算方法

Publications (2)

Publication Number Publication Date
CN111857650A true CN111857650A (zh) 2020-10-30
CN111857650B CN111857650B (zh) 2023-09-05

Family

ID=72953423

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010773110.7A Active CN111857650B (zh) 2020-08-04 2020-08-04 一种基于镜像查找表实现任意浮点型运算的硬件计算系统及其计算方法

Country Status (1)

Country Link
CN (1) CN111857650B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112907664A (zh) * 2021-02-08 2021-06-04 明峰医疗系统股份有限公司 基于fpga模块的pet探测器的图像像素位置查找方法、系统及计算机可读存储介质
CN113377332A (zh) * 2021-05-28 2021-09-10 南京大学 一种基于线性分段的softmax硬件实现方法
CN114139693A (zh) * 2021-12-03 2022-03-04 安谋科技(中国)有限公司 神经网络模型的数据处理方法、介质和电子设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003337695A (ja) * 2002-05-22 2003-11-28 Fuji Xerox Co Ltd 演算装置及び方法
US20140067889A1 (en) * 2012-09-04 2014-03-06 Analog Devices A/S Datapath circuit for digital signal processors
CN105553443A (zh) * 2015-12-10 2016-05-04 贵州省计量测试院 一种强噪声条件下微弱信号提取及数字处理系统
CN109739470A (zh) * 2018-12-30 2019-05-10 南京大学 一种基于2型双曲cordic任意指数函数的计算系统
CN110187866A (zh) * 2019-06-03 2019-08-30 南京宁麒智能计算芯片研究院有限公司 一种基于双曲cordic的对数乘法计算系统及方法
CN110222305A (zh) * 2019-06-03 2019-09-10 南京宁麒智能计算芯片研究院有限公司 一种基于双曲cordic的对数函数计算系统及方法
US10713013B1 (en) * 2016-02-24 2020-07-14 Xilinx, Inc. Apparatus and method for an exponential operator for a half-precision floating-point format

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003337695A (ja) * 2002-05-22 2003-11-28 Fuji Xerox Co Ltd 演算装置及び方法
US20140067889A1 (en) * 2012-09-04 2014-03-06 Analog Devices A/S Datapath circuit for digital signal processors
CN105553443A (zh) * 2015-12-10 2016-05-04 贵州省计量测试院 一种强噪声条件下微弱信号提取及数字处理系统
US10713013B1 (en) * 2016-02-24 2020-07-14 Xilinx, Inc. Apparatus and method for an exponential operator for a half-precision floating-point format
CN109739470A (zh) * 2018-12-30 2019-05-10 南京大学 一种基于2型双曲cordic任意指数函数的计算系统
CN110187866A (zh) * 2019-06-03 2019-08-30 南京宁麒智能计算芯片研究院有限公司 一种基于双曲cordic的对数乘法计算系统及方法
CN110222305A (zh) * 2019-06-03 2019-09-10 南京宁麒智能计算芯片研究院有限公司 一种基于双曲cordic的对数函数计算系统及方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
SHEIKH F: "A 2.05 GVertices/s 151 mW lighting accelerator for 3D graphics vertex and pixel shading in 32 nm CMOS", 《IEEE JOURNAL OF SOLID-STATE CIRCUITS》, pages 128 - 139 *
张益: "一种高效浮点DCT图像压缩系统研究与FPGA实现", 《中国优秀硕士学位论文全文数据库信息科技辑》, no. 01, pages 138 - 1310 *
李伟: "基于DSP Builder的分布式算法的FIR数字低通滤波器设计", 《计算机应用》, vol. 35, no. 2, pages 335 - 338 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112907664A (zh) * 2021-02-08 2021-06-04 明峰医疗系统股份有限公司 基于fpga模块的pet探测器的图像像素位置查找方法、系统及计算机可读存储介质
CN112907664B (zh) * 2021-02-08 2023-04-25 明峰医疗系统股份有限公司 图像像素位置查找方法、系统及计算机可读存储介质
CN113377332A (zh) * 2021-05-28 2021-09-10 南京大学 一种基于线性分段的softmax硬件实现方法
CN113377332B (zh) * 2021-05-28 2023-08-22 南京大学 一种基于线性分段的softmax硬件实现方法
CN114139693A (zh) * 2021-12-03 2022-03-04 安谋科技(中国)有限公司 神经网络模型的数据处理方法、介质和电子设备

Also Published As

Publication number Publication date
CN111857650B (zh) 2023-09-05

Similar Documents

Publication Publication Date Title
CN111857650A (zh) 一种基于镜像查找表实现任意浮点型运算的硬件计算系统及其计算方法
US20210349692A1 (en) Multiplier and multiplication method
CN110852416B (zh) 基于低精度浮点数数据表现形式的cnn硬件加速计算方法及系统
CN1235160C (zh) 在专用信号处理器中用于饱和乘法和累加的方法和装置
CN110689125A (zh) 计算装置
Juang et al. A lower error and ROM-free logarithmic converter for digital signal processing applications
Chen et al. Design, evaluation and application of approximate high-radix dividers
CN108984149B (zh) 一种高速低功耗的近似4-2压缩器
CN110688088A (zh) 一种面向神经网络的通用非线性激活函数计算装置和方法
CN110222833B (zh) 一种用于神经网络的数据处理电路
WO2022133686A1 (zh) 有/无符号乘累加装置及方法
CN109165006B (zh) Softmax函数的设计优化及硬件实现方法及系统
CN110187866B (zh) 一种基于双曲cordic的对数乘法计算系统及方法
CN113010148B (zh) 一种适用于混合精度神经网络的定点乘加运算单元及方法
WO2018196750A1 (zh) 处理乘加运算的装置和处理乘加运算的方法
CN107783935B (zh) 基于动态精度可配运算的近似计算可重构阵列
CN110879697B (zh) 一种近似计算tanh函数的装置
Tang Area-efficient parallel multiplication units for CNN accelerators with output channel parallelization
Jain et al. High-speed double precision computation of nonlinear functions
CN112558920B (zh) 有/无符号乘累加装置及方法
CN115526131A (zh) 多级编码近似计算Tanh函数的方法及装置
Zhao et al. Optimizing FPGA-Based DNN accelerator with shared exponential floating-point format
CN114860193A (zh) 一种用于计算Power函数的硬件运算电路及数据处理方法
CN110737869B (zh) Dct/idct乘法器电路优化方法及应用
CN113935480A (zh) 面向神经网络在线学习的激活函数加速处理单元

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